JPEG, viết tắt của Joint Photographic Experts Group, là một phương pháp nén mất dữ liệu thường được sử dụng cho hình ảnh kỹ thuật số, đặc biệt là đối với những hình ảnh được tạo ra bằng nhiếp ảnh kỹ thuật số. Mức độ nén có thể được điều chỉnh, cho phép lựa chọn sự cân bằng giữa kích thước lưu trữ và chất lượng hình ảnh. JPEG thường đạt tỷ lệ nén 10:1 với ít mất mát đáng kể về chất lượng hình ảnh.
Thuật toán nén JPEG là cốt lõi của tiêu chuẩn JPEG. Quá trình bắt đầu bằng việc chuyển đổi một hình ảnh kỹ thuật số từ không gian màu RGB thông thường của nó sang một không gian màu khác được gọi là YCbCr. Không gian màu YCbCr tách hình ảnh thành độ sáng (Y), biểu thị mức độ sáng và sắc độ (Cb và Cr), biểu thị thông tin màu sắc. Sự tách biệt này có lợi vì mắt người nhạy cảm hơn với các biến thể về độ sáng so với màu sắc, cho phép nén tận dụng lợi thế này bằng cách nén thông tin màu nhiều hơn độ sáng.
Khi hình ảnh ở trong không gian màu YCbCr, bước tiếp theo trong quá trình nén JPEG là hạ mẫu các kênh sắc độ. Hạ mẫu làm giảm độ phân giải của thông tin sắc độ, thường không ảnh hưởng đáng kể đến chất lượng nhận thức của hình ảnh, do mắt người ít nhạy cảm hơn với chi tiết màu sắc. Bước này là tùy chọn và có thể được điều chỉnh tùy thuộc vào sự cân bằng mong muốn giữa chất lượng hình ảnh và kích thước tệp.
Sau khi hạ mẫu, hình ảnh được chia thành các khối, thường có kích thước 8x8 pixel. Sau đó, mỗi khối được xử lý riêng. Bước đầu tiên trong quá trình xử lý từng khối là áp dụng Biến đổi Cosine rời rạc (DCT). DCT là một phép toán chuyển đổi dữ liệu miền không gian (giá trị pixel) thành miền tần số. Kết quả là một ma trận các hệ số tần số biểu diễn dữ liệu của khối hình ảnh theo các thành phần tần số không gian của nó.
Các hệ số tần số thu được từ DCT sau đó được lượng tử hóa. Lượng tử hóa là quá trình ánh xạ một tập hợp lớn các giá trị đầu vào thành một tập hợp nhỏ hơn - trong trường hợp của JPEG, điều này có nghĩa là giảm độ chính xác của các hệ số tần số. Đây là nơi xảy ra phần mất dữ liệu của quá trình nén, vì một số thông tin hình ảnh bị loại bỏ. Bước lượng tử hóa được điều khiển bởi một bảng lượng tử hóa, bảng này xác định mức độ nén được áp dụng cho từng thành phần tần số. Các bảng lượng tử hóa có thể được điều chỉnh để ưu tiên chất lượng hình ảnh cao hơn (ít nén hơn) hoặc kích thước tệp nhỏ hơn (nén nhiều hơn).
Sau khi lượng tử hóa, các hệ số được sắp xếp theo thứ tự ziczac, bắt đầu từ góc trên cùng bên trái và theo một mẫu ưu tiên các thành phần tần số thấp hơn so với các thành phần tần số cao hơn. Điều này là do các thành phần tần số thấp hơn (biểu thị các phần đồng nhất hơn của hình ảnh) quan trọng hơn đối với diện mạo tổng thể so với các thành phần tần số cao hơn (biểu thị các chi tiết và cạnh nhỏ hơn).
Bước tiếp theo trong quá trình nén JPEG là mã hóa entropy, đây là một phương pháp nén không mất dữ liệu. Hình thức mã hóa entropy phổ biến nhất được sử dụng trong JPEG là mã hóa Huffman, mặc dù mã hóa số học cũng là một tùy chọn. Mã hóa Huffman hoạt động bằng cách gán các mã ngắn hơn cho các lần xuất hiện thường xuyên hơn và các mã dài hơn cho các lần xuất hiện ít thường xuyên hơn. Vì thứ tự ziczac có xu hướng nhóm các hệ số tần số tương tự lại với nhau, nên nó làm tăng hiệu quả của mã hóa Huffman.
Khi mã hóa entropy hoàn tất, dữ liệu đã nén được lưu trữ trong một định dạng tệp tuân theo tiêu chuẩn JPEG. Định dạng tệp này bao gồm một tiêu đề chứa thông tin về hình ảnh, chẳng hạn như kích thước và các bảng lượng tử hóa được sử dụng, theo sau là dữ liệu hình ảnh được mã hóa Huffman. Định dạng tệp cũng hỗ trợ việc đưa vào siêu dữ liệu, chẳng hạn như dữ liệu EXIF, có thể chứa thông tin về cài đặt máy ảnh được sử dụng để chụp ảnh, ngày và giờ chụp và các chi tiết liên quan khác.
Khi mở một hình ảnh JPEG, quá trình giải nén về cơ bản đảo ngược các bước nén. Dữ liệu được mã hóa Huffman được giải mã, các hệ số tần số được lượng tử hóa được khử lượng tử hóa bằng cách sử dụng cùng các bảng lượng tử hóa đã được sử dụng trong quá trình nén và Biến đổi Cosine rời rạc nghịch đảo (IDCT) được áp dụng cho từng khối để chuyển đổi dữ liệu miền tần số trở lại thành các giá trị pixel miền không gian.
Các quá trình khử lượng tử hóa và IDCT gây ra một số lỗi do bản chất mất dữ liệu của quá trình nén, đó là lý do tại sao JPEG không lý tưởng cho những hình ảnh sẽ trải qua nhiều lần chỉnh sửa và lưu lại. Mỗi lần lưu một hình ảnh JPEG, nó lại trải qua quá trình nén một lần nữa và thông tin hình ảnh bổ sung sẽ bị mất. Điều này có thể dẫn đến sự suy giảm đáng kể về chất lượng hình ảnh theo thời gian, một hiện tượng được gọi là 'mất thế hệ'.
Mặc dù có bản ch ất mất dữ liệu của nén JPEG, nhưng nó vẫn là một định dạng hình ảnh phổ biến do tính linh hoạt và hiệu quả của nó. Hình ảnh JPEG có thể có kích thước tệp rất nhỏ, khiến chúng lý tưởng để sử dụng trên web, nơi băng thông và thời gian tải là những cân nhắc quan trọng. Ngoài ra, tiêu chuẩn JPEG bao gồm một chế độ tiến bộ, cho phép mã hóa một hình ảnh theo cách mà nó có thể được giải mã theo nhiều lần, mỗi lần cải thiện độ phân giải của hình ảnh. Điều này đặc biệt hữu ích cho hình ảnh web, vì nó cho phép hiển thị nhanh chóng phiên bản chất lượng thấp của hình ảnh, với chất lượng được cải thiện khi tải xuống nhiều dữ liệu hơn.
JPEG cũng có một số hạn chế và không phải lúc nào cũng là lựa chọn tốt nhất cho mọi loại hình ảnh. Ví dụ, nó không phù hợp với những hình ảnh có các cạnh sắc nét hoặc văn bản có độ tương phản cao, vì quá trình nén có thể tạo ra các hiện vật đáng chú ý xung quanh các khu vực này. Ngoài ra, JPEG không hỗ trợ tính trong suốt, đây là một tính năng được cung cấp bởi các định dạng khác như PNG và GIF.
Để giải quyết một số hạn chế của tiêu chuẩn JPEG ban đầu, các định dạng mới đã được phát triển, chẳng hạn như JPEG 2000 và JPEG XR. Các định dạng này cung cấp hiệu quả nén được cải thiện, hỗ trợ độ sâu bit cao hơn và các tính năng bổ sung như tính trong suốt và nén không mất dữ liệu. Tuy nhiên, chúng vẫn chưa đạt được mức độ phổ biến rộng rãi như định dạng JPEG ban đầu.
Tóm lại, định dạng hình ảnh JPEG là sự cân bằng phức tạp giữa toán học, tâm lý thị giác của con người và khoa học máy tính. Việc sử dụng rộng rãi của nó là minh chứng cho hiệu quả của nó trong việc giảm kích thước tệp trong khi vẫn duy trì mức chất lượng hình ảnh có thể chấp nhận được cho hầu hết các ứng dụng. Hiểu được các khía cạnh kỹ thuật của JPEG có thể giúp người dùng đưa ra quyết định sáng suốt về thời điểm sử dụng định dạng này và cách tối ưu hóa hình ảnh của họ để cân bằng giữa chất lượng và kích thước tệp phù hợp nhất với nhu cầu của họ.