第6章 影像壓縮#
一張未壓縮的 1080p 彩色照片要 6 MB,手機相簿幾千張照片早該塞爆硬碟——但實際上一張 JPEG 只要幾百 KB。本章揭開壓縮的原理:它不是魔術,而是找出並去除冗餘。冗餘有三種:編碼冗餘(常用符號給短碼)、空間冗餘(相鄰像素相似)、視覺冗餘(人眼看不出的差異)。只去除前兩種稱無損壓縮(解壓後與原圖逐位元相同),去除第三種則是有損壓縮(犧牲一點保真度換取數十倍的壓縮率)。
我們的路線:先學無損壓縮的兩大支柱——RLE 與 Huffman 編碼,理解 PNG 為何能在不失真的情況下縮小影像;再走進 JPEG 的完整流水線——色彩轉換、8×8 DCT、量化、Zigzag 掃描與熵編碼,看「有損」的三個環節各丟掉了什麼;最後建立品質評估的科學:PSNR 用均方誤差量化失真,SSIM 則試著模擬人眼對結構、亮度、對比的敏感度,解釋為什麼 PSNR 高的影像不一定看起來更好。
壓縮是「影像演算法」最成功的商業應用:每張你傳的圖、每部你看的影片,背後都是本章的數學。學完後你應能自己寫出一個迷你的 JPEG 編解碼器,並用 PSNR/SSIM 客觀地評估它。