Mặc dù file JPEG có thểđược mã hóa theo nhiều cách khác nhau, nhưng hầu hết
chúng đều theo dạng mã hóa JFIF. Quá trình mã hóa gồm các bước sau:
1. Chuyển đổi mô hình màu từ RGB model sang YCbCr model gồm 1 thành
phần luminance(Y) tượng trưng cho độ sáng và 2 thành phần chrominance
(Cb và Cr) tượng trưng cho màu sắc.
2. Chroma subsampling bởi hàm mũ của cơ số2. Điều này được phản ánh bới tính chất của mắt người ít nhạy cảm với màu sắc hơn là độ sáng.
3. Dữ liệu ảnh sẽđược chia thành các block 8x8 pixel; mỗi block gồm các thành phần Y, Cb và Cr sẽ chuyển qua giai đoạn biến đổi cosin rời rạc (DCT-
discrete cosine transform). Quá trình DCT diễn ra tương tự với phép biến đổi
Fourier để chuyển từ miền không gian sang miền tần số.
4. Các biên độ của thành phần tần số sẽđược lượng tử hóa tại bước này. Thị
một vùng rộng lớn (tần số thấp) hơn là ở vùng tấn số cao. Vì vậy, các thành phần tần số cao sẽđược lưu ở vùng thấp hơn các thành phần tần số thấp. Khi
đó các chương trình encoder sẽ cho phép thiết lập chất lượng ảnh (ví dụnhư
50 hoặc 95 trong khoảng từ 0 → 100 theo chuẩn cua JPEG group) để tác
động đến các thành phần tần số này. Nếu thiết lập với chất lượng càng thấp thì khi đó các thành phần tần số cao sẽ bị loại bỏ càng nhiều.
5. Kết quảsau khi chuyên đổi, block 8x8 sẽđược nén với kỹ thuật lossless, Huffman encoding.
Quá trình giải mã sẽ được thực hiện ngược lại với 5 bước trên. Dưới đây là chi
tiết quá trình mã hóa và giải mã một ảnh.