Định dạng tệp
JPG là gì? Cách định dạng JPEG hoạt động và khi nào nên dùng
JPG là định dạng ảnh nén có mất dữ liệu đã lưu giữ ảnh chụp của cả thế giới suốt hơn ba thập kỷ. Đây là cách nén JPEG hoạt động, nơi nó tỏa sáng, chỗ nó thất bại và những điều cần lưu ý khi chuyển đổi.
Tác giả: Hemen Dönüştür Editör EkibiNgày đăng: 10 phút đọc

JPG (hay JPEG) là định dạng ảnh nén có mất dữ liệu, được thiết kế để lưu ảnh chụp trong những tệp nhỏ. Phần lớn hình ảnh bạn bắt gặp, từ ảnh điện thoại chụp đến ảnh trên trang tin tức, đều dùng định dạng này. Bài viết giải thích JPG ra đời từ đâu, làm thế nào nó giữ tệp nhỏ, nó giỏi và kém ở điểm nào, và cần lưu ý gì khi chuyển sang hoặc từ JPG.
JPG và JPEG có phải là một?
Đúng vậy. JPEG là viết tắt của Joint Photographic Experts Group, ủy ban đã soạn ra tiêu chuẩn này. Phần mở rộng .jpg trở nên phổ biến vì hệ thống tệp của Windows và DOS thời đầu giới hạn phần mở rộng ở ba ký tự. Các tệp có đuôi .jpg, .jpeg, .jpe và .jfif dùng cùng một cách nén và phần lớn phần mềm mở chúng như nhau. Kiểu MIME luôn là image/jpeg.
Sơ lược lịch sử
Theo ủy ban JPEG, công việc chuẩn hóa bắt đầu năm 1986. Văn bản hoàn thiện được CCITT (tên gọi khi đó của cơ quan tiêu chuẩn thuộc ITU) phê duyệt ngày 18 tháng 9 năm 1992 với tên Khuyến nghị T.81, và văn bản giống hệt được công bố thành tiêu chuẩn quốc tế ISO/IEC 10918-1. Tên chính thức của nó là "Digital compression and coding of continuous-tone still images" (Nén và mã hóa số ảnh tĩnh có tông màu liên tục).
T.81 định nghĩa phương pháp nén nhưng không quy định đầy đủ cách một tệp diễn giải màu sắc. JFIF (JPEG File Interchange Format) đã lấp khoảng trống đó. Theo mô tả định dạng của Library of Congress, JFIF ban đầu do Eric Hamilton của C-Cube Microsystems phát triển và được công bố năm 1992. Về cơ bản cùng tài liệu đó đã trở thành Khuyến nghị ITU-T T.871 năm 2011 và ISO/IEC 10918-5 năm 2013. Thứ mà ngày nay ta gọi là "tệp JPG" thường là một luồng JPEG được bọc trong JFIF hoặc trong cấu trúc EXIF mà máy ảnh sử dụng.
Cách nén JPEG hoạt động
JPEG thu nhỏ tệp bằng cách loại bỏ những chi tiết mà mắt người khó nhận ra. Các bước chính gồm:
1. Chuyển đổi màu và lấy mẫu màu thưa (chroma subsampling)
Ảnh được chuyển từ RGB sang một thành phần độ sáng (Y) và hai thành phần chênh lệch màu (Cb và Cr). Vì mắt nhạy với thay đổi độ sáng hơn nhiều so với thay đổi màu, các thành phần màu thường được lưu ở độ phân giải thấp hơn. Với sơ đồ phổ biến nhất, 4:2:0, mỗi khối 2x2 điểm ảnh chỉ giữ một giá trị màu. Trong ảnh chụp, điều này gần như không thấy được, nhưng những chỗ chuyển màu sắc nét như chữ màu đỏ hay đường kẻ màu mảnh có thể trông bị nhòe.
2. Khối 8x8 và DCT
Như T.81 mô tả, mỗi thành phần được chia thành các khối mẫu 8x8, và mỗi khối được biến đổi bằng phép biến đổi cosin rời rạc (DCT) thành các hệ số tần số. Bước này tách vùng phẳng (tần số thấp) khỏi chi tiết nhỏ (tần số cao).
3. Lượng tử hóa, nơi xảy ra mất dữ liệu
Các hệ số được chia cho một bảng lượng tử hóa rồi làm tròn. Phần lớn hệ số tần số cao trở thành 0, và đây chính là nơi thông tin thực sự bị loại bỏ. Thanh trượt "chất lượng" trong trình chỉnh sửa điều khiển mức độ mạnh tay của các bảng đó: chất lượng thấp hơn đưa nhiều hệ số về 0 hơn và cho tệp nhỏ hơn.
4. Mã hóa entropy
Các hệ số còn lại được đọc theo thứ tự zigzag và mã hóa không mất dữ liệu. Quy trình cơ bản (baseline) dùng mã Huffman; tiêu chuẩn cũng cho phép mã hóa số học, nhưng trên thực tế tùy chọn này hiếm khi được hỗ trợ. Quy trình cơ bản dùng độ chính xác 8 bit cho mỗi thành phần, còn các quy trình mở rộng có thể dùng đến 12 bit.
JPEG lũy tiến (progressive)
Tiêu chuẩn cũng định nghĩa chế độ lũy tiến, trong đó ảnh được mã hóa qua nhiều lượt quét, bắt đầu mờ rồi rõ dần, thay vì một lượt duy nhất từ trên xuống dưới. Trên kết nối chậm, trang trông đầy đủ sớm hơn, và tệp thường nhỏ hơn một chút.
Ưu điểm và nhược điểm
| Đặc điểm | JPG |
|---|---|
| Nén | Có mất dữ liệu; thiết lập chất lượng đánh đổi giữa dung lượng tệp và chất lượng ảnh |
| Độ trong suốt (alpha) | Không có |
| Ảnh động | Không có |
| Độ sâu màu | 8 bit mỗi thành phần (màu 24 bit) trong sử dụng phổ biến |
| Khả năng tương thích | Được hầu như mọi trình duyệt, hệ điều hành, máy ảnh, máy in và biểu mẫu tải lên hỗ trợ |
| Phù hợp nhất cho | Ảnh chụp và hình ảnh có dải chuyển màu mượt |
| Kém ở | Chữ, ảnh chụp màn hình, logo và đồ họa có cạnh sắc |
Hướng dẫn định dạng ảnh của MDN mô tả JPEG là lựa chọn tốt để nén có mất dữ liệu cho ảnh tĩnh, và khuyên dùng PNG khi cần tái hiện chính xác hơn, hoặc WebP và AVIF khi bạn muốn vừa tái hiện tốt hơn vừa nén mạnh hơn.
JPG được dùng rộng rãi đến mức nào?
Dữ liệu W3Techs tháng 10 năm 2026 cho thấy JPEG có mặt trên 68,8% số trang web được theo dõi, chỉ sau PNG (74,9%). Chương về phương tiện trong Web Almanac 2024 của HTTP Archive cho biết 32,4% hình ảnh trên trang di động là JPEG, vẫn là tỷ lệ lớn nhất trong mọi định dạng. Cùng báo cáo ghi nhận JPEG giảm từ khoảng 40% tổng số hình ảnh năm 2022 xuống 32% năm 2024, tức giảm tám điểm phần trăm, trong khi WebP tăng khoảng ba điểm, SVG gần hai điểm và AVIF gần một điểm.
Almanac cũng so sánh hiệu quả: tệp JPEG trung vị trên di động dùng 2,0 bit mỗi điểm ảnh, so với 1,3 của WebP, 1,4 của AVIF và 3,8 của PNG. Đây là giá trị trung vị của các hình ảnh thực tế được phục vụ trên web, không phải cùng một bức ảnh được mã hóa ở từng định dạng, nhưng chúng cho thấy vì sao các định dạng mới đang dần chiếm ưu thế.
Các vấn đề thường gặp
Vùng trong suốt biến thành trắng hoặc đen
JPG không có kênh alpha, nên khi chuyển một ảnh PNG trong suốt sang JPG, các điểm ảnh trong suốt phải trở thành một màu đặc. Có chương trình dùng màu đen, có chương trình dùng màu trắng. Nếu logo của bạn sẽ nằm trên nền màu, hãy giữ nó ở dạng PNG hoặc chọn màu nền khi chuyển đổi.
Nhiễu quanh chữ và đường kẻ
Việc xử lý theo khối 8x8 và loại bỏ tần số cao gây ra hiện tượng "ringing", những vệt mờ quanh các cạnh có độ tương phản cao. Ở chất lượng thấp, chính đường biên giữa các khối cũng lộ ra. Với ảnh chụp màn hình và đồ họa có chữ, PNG hoặc WebP không mất dữ liệu là lựa chọn đúng.
Cái giá của việc lưu đi lưu lại
Mỗi lần bạn mở một tệp JPG rồi lưu lại thành JPG, ảnh lại bị lượng tử hóa thêm một lần và những mất mát nhỏ cứ thế cộng dồn. Nếu đang chỉnh sửa, hãy giữ bản gốc, hoặc giữ bản làm việc ở định dạng không mất dữ liệu như PNG.
Ảnh hiển thị bị xoay ngang
Máy ảnh thường lưu một giá trị "hướng" (orientation) trong EXIF thay vì xoay chính các điểm ảnh. Phần mềm cũ bỏ qua giá trị này sẽ hiển thị ảnh bị xoay ngang hoặc lộn ngược.
Mẹo khi chuyển đổi sang và từ JPG
- Chất lượng từ 80 đến 90 phù hợp với hầu hết ảnh chụp. Công cụ chuyển PNG sang JPG của chúng tôi bắt đầu ở mức 90; kéo thanh trượt xuống để có tệp nhỏ hơn. Chất lượng 100 làm tệp nặng hơn nhiều nhưng không biến nó thành không mất dữ liệu.
- Chọn màu nền cho vùng trong suốt. Công cụ của chúng tôi mặc định tô vùng trong suốt bằng màu trắng, và bạn có thể chọn màu của trang mà hình ảnh sẽ được đặt lên.
- Chuyển JPG sang PNG không lấy lại được chất lượng đã mất. Chuyển JPG sang PNG ngăn mất mát thêm khi chỉnh sửa, nhưng tệp thường nặng hơn.
- Để có ảnh web nhỏ hơn, hãy thử chuyển JPG sang WebP hoặc JPG sang AVIF. Để thu nhỏ một tệp JPG mà vẫn giữ định dạng JPG, hãy dùng công cụ nén ảnh, công cụ này mặc định mã hóa lại JPG ở chất lượng 75 và hiển thị dung lượng trước và sau.
- Dữ liệu vị trí và máy ảnh. Các công cụ hình ảnh của chúng tôi không ghi dữ liệu EXIF, vị trí hay máy ảnh vào tệp kết quả, và hướng ảnh đúng được áp dụng trước khi mã hóa. Các chuyển đổi này chạy ngay trong trình duyệt của bạn, nên tệp vẫn ở trên thiết bị của bạn và không bao giờ rời khỏi đó.
Câu hỏi thường gặp
JPG và JPEG có khác nhau về chất lượng không?
Không. Chúng là cùng một định dạng với phần mở rộng khác nhau. Đổi tên tệp từ .jpeg sang .jpg không làm thay đổi nội dung.
Có lưu JPG không mất dữ liệu được không?
T.81 có định nghĩa một quy trình không mất dữ liệu, nhưng phần mềm phổ biến và trình duyệt gần như không bao giờ hỗ trợ. Trên thực tế JPG là định dạng có mất dữ liệu: ngay cả chất lượng 100 cũng không phải bản sao chính xác, do lượng tử hóa và lấy mẫu màu thưa.
JPG có hỗ trợ nền trong suốt không?
Không. Nếu cần độ trong suốt, hãy dùng PNG, WebP hoặc AVIF. Khi một ảnh trong suốt được chuyển sang JPG, vùng trong suốt sẽ được tô bằng một màu đặc do bạn chọn.
Nên chọn giá trị chất lượng nào?
Với ảnh chụp, 80 đến 90 thường là mức cân bằng tốt. Với hình ảnh có chữ hoặc cạnh sắc, hãy dùng 90 trở lên, hoặc giữ ở dạng PNG. Con số chất lượng không mang ý nghĩa giống hệt nhau ở mọi chương trình, nên tự mắt kiểm tra kết quả là cách đáng tin cậy nhất.
Nên dùng JPG hay WebP?
Nếu hình ảnh chỉ dùng cho website của bạn, WebP thường cho tệp nhỏ hơn ở cùng chất lượng và mở được trên mọi trình duyệt hiện nay. Nếu bạn sẽ gửi email, in hoặc tải ảnh lên phần mềm cũ, JPG là lựa chọn an toàn hơn.
Nguồn tham khảo
- Khuyến nghị ITU-T (CCITT) T.81 (09/92), bản sao của W3C
- Ủy ban JPEG: tổng quan JPEG 1 (ISO/IEC 10918)
- Library of Congress: JPEG File Interchange Format (JFIF)
- ITU-T T.871: JPEG File Interchange Format
- MDN: Image file type and format guide
- W3Techs: Usage statistics of image file formats for websites
- HTTP Archive Web Almanac 2024: Media


