「How JPEG Works」相關筆記

總結

問:JPEG 到底是什麼? 答:實際上是一種壓縮影像的演算法

問:JPEG 如何壓縮影像? 簡答:將影像從 RGB 轉換為 Y’CbCr,捨棄多餘的顏色資訊、壓縮人眼不易察覺的部分(影像中高頻率變化的部分)後,輸出為.jpg 檔案

內收關於影片組「How JPEG Works」的相關筆記、JPEG 詳細的壓縮過程,與其他參考資料來源。

Part 0: color spaces

Color spaces

Y’CbCr

Part 1: files and color

JFIF

frequency

筆記:人眼對於高頻率的變化並不敏銳,所以影像裡面高頻率的部分可以捨棄(壓縮)。 影像的頻率:指「像素變化」的程度。 使用越少的像素完成變化,頻率越;使用越多的像素完成變化,頻率越

補充:對人眼來說,察覺「大範圍中小小的顏色或亮度變化」比發現「高頻率的亮度變化」容易。

Compression steps

  1. Transform the image into Y’CbCr color space
    • Y’CbCr separate each pixel’s intensity (Y’) from color (Cb, Cr)
  2. Down-sampling (chroma sub-sampling)
    • Wiki: reduce the spatial(空間性的) resolution of the Cb and Cr components
    • 白話文:減少影像使用的顏色數量
  3. Block splitting
    • Wiki: depending on chroma sub-sampling, this yields Minimum Coded Unit (MCU) blocks of size 8×8 (4:4:4 when no sub-sampling), 16×8 (4:2:2), or most commonly 16×16 (4:2:0).
  4. Apply DCT (discrete cosine transform)
  5. Quantization (the lossy part in JPEG compression)
  6. Huffman encoding, get the .JPG file

Down-sampling

Part 2: DCT (Discrete Cosine Transform)

DCT

Quantization

Quantization matrix (quantization table)

Wiki: the quantization matrix is designed to provide more resolution to more perceivable frequency components over less perceivable components (usually lower frequencies over high frequencies) in addition to transforming as many components to 0, which can be encoded with greatest efficiency.

白話文:quantization matrix 會盡可能保留人眼可察覺的部分(通常是低頻率的部分),捨棄人眼察覺不出來的部分(高頻率的部分)

Huffman encoding

參考文件