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 giữa kích thước lưu trữ và chất lượng hình ảnh. JPEG thường đạt độ 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 định dạng tệp JPEG, được gọi chính thức là Định dạng trao đổi JPEG (JIF). Tuy nhiên, thuật ngữ 'JPEG' thường được sử dụng để chỉ định dạng tệp thực tế được chuẩn hóa là Định dạng trao đổi tệp JPEG (JFIF).
Định dạng JPEG hỗ trợ nhiều không gian màu, nhưng phổ biến nhất được sử dụng trong nhiếp ảnh kỹ thuật số và đồ họa web là màu 24 bit, bao gồm 8 bit cho mỗi thành phần đỏ, lục và lam (RGB). Điều này cho phép có hơn 16 triệu màu khác nhau, cung cấp chất lượng hình ảnh phong phú và sống động phù hợp với nhiều ứng dụng. Các tệp JPEG cũng có thể hỗ trợ hình ảnh thang độ xám và không gian màu như YCbCr, thường được sử dụng trong nén video.
Thuật toán nén JPEG dựa trên Biến đổi Cosin rời rạc (DCT), một loại biến đổi Fourier. DCT được áp dụng cho các khối nhỏ của hình ảnh, thường là 8x8 pixel, biến đổi dữ liệu miền không gian thành dữ liệu miền tần số. Quá trình này có lợi vì nó có xu hướng tập trung năng lượng của hình ảnh vào một vài thành phần tần số thấp, quan trọng hơn đối với diện mạo tổng thể của hình ảnh, trong khi các thành phần tần số cao, góp phần tạo nên các chi tiết tinh tế và có thể bị loại bỏ với ít tác động hơn đến chất lượng nhận thức, sẽ bị giảm.
Sau khi áp dụng DCT, các hệ số kết quả sẽ đượ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, về cơ bản là giảm độ chính xác của các hệ số DCT. Đây là nơi khía cạnh mất dữ liệu của JPEG phát huy tác dụng. Mức độ lượng tử hóa được xác định bởi bảng lượng tử hóa, có thể được điều chỉnh để cân bằng chất lượng hình ảnh và tỷ lệ nén. Mức lượng tử hóa cao hơn dẫn đến nén cao hơn và chất lượng hình ảnh thấp hơn, trong khi mức lượng tử hóa thấp hơn dẫn đến nén thấp hơn và chất lượng hình ảnh cao hơn.
Khi các hệ số đã được lượng tử hóa, chúng sẽ được tuần tự hóa theo thứ tự ziczac, bắt đầu từ góc trên cùng bên trái và theo một mẫu ziczac qua khối 8x8. Bước này được thiết kế để đặt các hệ số tần số thấp vào đầu khối và các hệ số tần số cao về phía cuối. Vì nhiều hệ số tần số cao có khả năng bằng hoặc gần bằng không sau khi lượng tử hóa, nên thứ tự này giúp nén dữ liệu thêm bằng cách nhóm các giá trị tương tự lại với nhau.
Bước tiếp theo trong quá trình nén JPEG là mã hóa entropy, 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 giá trị thường gặp hơn và các mã dài hơn cho các giá trị ít gặp hơn. Vì các hệ số DCT được lượng tử hóa được sắp xếp theo cách nhóm các giá trị bằng không và tần số thấp, nên mã hóa Huffman có thể giảm hiệu quả kích thước của dữ liệu.
Định dạng tệp JPEG cũng cho phép lưu trữ siêu dữ liệu trong tệp, chẳng hạn như dữ liệu Exif bao gồm thông tin về cài đặt máy ảnh, ngày và giờ chụp và các chi tiết liên quan khác. Siêu dữ liệu này được lưu trữ trong các phân đoạn cụ thể của ứng dụng trong tệp JPEG, có thể được đọc bởi nhiều phần mềm khác nhau để hiển thị hoặc xử lý thông tin hình ảnh.
Một trong những tính năng chính của định dạng JPEG là hỗ trợ mã hóa tiến bộ. Trong JPEG tiến bộ, hình ảnh được mã hóa trong nhiều lần truyền với độ chi tiết tăng dần. Điều này có nghĩa là ngay cả khi hình ảnh chưa được tải xuống hoàn toàn, một phiên bản thô của toàn bộ hình ảnh vẫn có thể được hiển thị, dần dần cải thiện chất lượng khi nhận được nhiều dữ liệu hơn. Điều này đặc biệt hữu ích cho hình ảnh web, cho phép người dùng có thể hiểu được nội dung hình ảnh mà không cần phải đợi toàn bộ tệp tải xuống.
Mặc dù được sử dụng rộng rãi và có nhiều ưu điểm, nhưng định dạng JPEG vẫn có một số hạn chế. Một trong những hạn chế đáng kể nhất là vấn đề về hiện vật, là những biến dạng hoặc bất thường về hình ảnh có thể xảy ra do nén mất dữ liệu. Các hiện vật này có thể bao gồm mờ, khối và 'vòng' xung quanh các cạnh. Tính khả kiến của hiện vật bị ảnh hưởng bởi mức độ nén và nội dung của hình ảnh. Hình ảnh có độ dốc mượt hoặc thay đổi màu sắc tinh tế dễ bị hiện vật nén hơn.
Một hạn chế khác của JPEG là không hỗ trợ độ trong suốt hoặc kênh alpha. Điều này có nghĩa là hình ảnh JPEG không thể có nền trong suốt, có thể là một nhược điểm đối với một số ứng dụng như thiết kế web, nơi việc chồng hình ảnh trên các nền khác nhau là phổ biến. Đối với những mục đích này, các định dạng như PNG hoặc GIF, hỗ trợ độ trong suốt, thường được sử dụng thay thế.
JPEG cũng không hỗ trợ các lớp hoặc hoạt ảnh. Không giống như các định dạng như TIFF cho các lớp hoặc GIF cho hoạt ảnh, JPEG chỉ là định dạng hình ảnh đơn. Điều này khiến nó không phù hợp với các hình ảnh yêu cầu chỉnh sửa theo lớp hoặc để tạo hình ảnh động. Đối với những người dùng cần làm việc với các lớp hoặc hoạt ảnh, họ phải sử dụng các định dạng khác trong quá trình chỉnh sửa và sau đó có thể chuyển đổi sang JPEG để phân phối nếu cần.
Mặc dù có những hạn chế này, JPEG vẫn là một trong những định dạng hình ảnh phổ biến nhất do khả năng nén hiệu quả và tương thích với hầu hết mọi phần mềm xem và chỉnh sửa hình ảnh. Nó đặc biệt phù hợp với ảnh chụp và hình ảnh phức tạp có tông màu và màu sắc liên tục. Đối với mục đích sử dụng trên web, hình ảnh JPEG có thể được tối ưu hóa để cân bằng chất lượng và kích thước tệp, khiến chúng trở nên lý tưởng cho thời gian tải nhanh trong khi vẫn cung cấp kết quả trực quan đẹp mắt.
Định dạng JPEG cũng đã phát triển theo thời gian với sự phát triển của các biến thể như JPEG 2000 và JPEG XR. JPEG 2000 cung cấp hiệu quả nén được cải thiện, xử lý tốt hơn các hiện vật hình ảnh và khả năng xử lý độ trong suốt. Mặt khác, JPEG XR cung cấp khả năng nén tốt hơn ở mức chất lượng cao hơn và hỗ trợ nhiều độ sâu màu và không gian màu hơn. Tuy nhiên, những định dạng mới hơn này vẫn chưa đạt được mức độ phổ biến như định dạng JPEG ban đầu.
Tóm lại, định dạng hình ảnh JPEG là một định dạng linh hoạt và được hỗ trợ rộng rãi, tạo sự cân bằng giữa chất lượng hình ảnh và kích thước tệp. Việc sử dụng DCT và lượng tử hóa của nó cho phép giảm đáng kể kích thước tệp với tác động có thể tùy chỉnh đối với chất lượng hình ảnh. Mặc dù có một số hạn chế, chẳng hạn như thiếu hỗ trợ độ trong suốt, các lớp và hoạt ảnh, nhưng những ưu điểm về khả năng tương thích và hiệu quả của nó khiến nó trở thành một yếu tố chính trong hình ảnh kỹ thuật số. Khi công nghệ tiến bộ, các định dạng mới hơn có thể cung cấp những cải tiến, nhưng di sản và sự phổ biến rộng rãi của JPEG đảm bảo rằng nó sẽ vẫn là một phần cơ bản của hình ảnh kỹ thuật số trong tương lai gần.