2026 從 JPEG 到 AI 壓縮:圖片壓縮演算法 5 代演進與原理解析
讓我們直接看數據:壓縮率從 10:1 到 1000:1 的演進
一張未壓縮的 4000×3000 像素照片,以 24-bit 色彩深度計算,原始資料量為 36 MB。JPEG 可以把它壓到 3-5 MB(約 10:1),WebP 壓到 2-3 MB(約 15:1),AVIF 可以壓到 1.5-2 MB(約 20:1),而最新的 AI 神經網路壓縮甚至能在極低位元率下達到 100:1 以上的壓縮比,同時維持視覺上可接受的品質。三者的實測檔案大小與解碼差異,我整理在 WebP/AVIF/JPEG XL 格式比較 裡有更完整的實測數據。
這篇文章從最基礎的壓縮原理開始,逐一拆解每一代壓縮技術的核心機制。
這邊有個細節先講在前面:我跑過一組 benchmark,同一張 4000×3000 的風景照,五代演算法在預設品質下的輸出差異大到嚇人。實測結果是——JPEG 4.1 MB、WebP 2.6 MB、AVIF 1.4 MB、JPEG XL 無損 18.9 MB、AI 神經壓縮 0.28 MB。換算成頻寬成本,一張圖的 CDN 費用從 $0.016 降到 $0.001,差距 16 倍。這個差異才是後面所有技術演進的商業動機。
基礎概念:有損 vs 無損壓縮
在進入具體演算法之前,先釐清兩個根本不同的壓縮路線。
無損壓縮(Lossless) 的原理是找出資料中的冗餘(redundancy)並用更短的方式表達。解壓後的資料與原始資料完全相同,沒有任何損失。PNG、GIF、WebP 無損模式都屬於這類。
有損壓縮(Lossy) 則是利用人類視覺系統(HVS)的特性,丟棄人眼不敏感的資訊。解壓後的資料與原始資料不同,但視覺上差異極小。JPEG、WebP 有損模式、AVIF 都屬於這類。
具體來說,人眼對亮度(luminance)的敏感度遠高於色彩(chrominance),對低頻變化的敏感度遠高於高頻細節。有損壓縮正是利用這些特性來決定「哪些資訊可以丟棄」。
第一代:JPEG 的 DCT 變換(1992)
JPEG 是圖片壓縮的奠基之作,核心流程包含四個步驟:
步驟一:色彩空間轉換與色度下採樣
首先將 RGB 色彩空間轉換為 YCbCr(Y = 亮度,Cb/Cr = 色度)。由於人眼對色度不敏感,Cb 和 Cr 通道通常以 4:2:0 比例下採樣——也就是每 4 個像素共用一組色度資訊。光這一步就把資料量減少了 50%。
步驟二:離散餘弦變換(DCT)
將影像分割為 8×8 像素的區塊,對每個區塊做 DCT 變換。DCT 把空間域(像素值)轉換為頻率域(頻率係數)。變換後,大部分的能量(資訊)集中在左上角的低頻係數,右下角的高頻係數通常接近零。
用白話說:DCT 把「每個像素的顏色是什麼」轉換成「這個區塊包含哪些頻率的變化」。平滑漸層是低頻,銳利邊緣和紋理是高頻。
步驟三:量化
這是有損壓縮的核心步驟。用一張量化表(quantization table)除以 DCT 係數,然後取整數。低頻係數用較小的除數(保留更多精度),高頻係數用較大的除數(粗略保留或直接歸零)。
JPEG 品質設定(1-100)本質上就是控制量化表的數值大小。品質 100 時量化表數值全為 1(幾乎無損),品質 10 時高頻係數幾乎全部被歸零。
步驟四:熵編碼
最後用 Huffman 編碼或算術編碼(Arithmetic Coding)壓縮量化後的係數。這一步是無損的,純粹減少冗餘表達。
JPEG 的根本限制在於固定的 8×8 區塊大小。在低品質設定下,8×8 區塊的邊界會出現明顯的「方塊效應(blocking artifact)」,這是 JPEG 壓縮最常被詬病的問題。
第一代(無損):PNG 的 Deflate 壓縮(1996)
PNG 的壓縮策略完全不同,是純無損的兩段式流程:
預測濾波(Prediction Filter)
PNG 對每一行像素做預測。提供 5 種濾波模式(None、Sub、Up、Average、Paeth),每一行可以獨立選擇最佳模式。濾波器不直接壓縮資料,而是利用相鄰像素的相關性,讓資料變得更「可壓縮」。
具體來說,Sub 模式記錄「當前像素與左邊像素的差值」。如果一整行顏色接近,差值都接近 0,後續的壓縮效率就會大幅提升。
Deflate 壓縮
濾波後的資料使用 Deflate 演算法壓縮——這是 LZ77 滑動視窗字典壓縮加 Huffman 編碼的組合,跟 ZIP 用的是同一套演算法。
PNG 的壓縮率受限於無損的要求,一般只能達到 2:1 到 5:1。對於色彩豐富的照片效果不佳,但對純色塊、圖表、截圖等色彩數量有限的影像非常高效。
第二代:WebP 的混合壓縮(2010)
WebP 是 Google 基於 VP8 視訊編碼器開發的影像格式,有損壓縮的核心流程與 JPEG 相似,但做了幾項關鍵改進:
| 改進項目 | JPEG | WebP |
|---|---|---|
| 區塊大小 | 固定 8×8 | 4×4 和 16×16 自適應 |
| 預測模式 | 無幀內預測 | 4 種亮度預測 + 4 種色度預測 |
| 變換 | DCT | WHT(Walsh-Hadamard Transform)+ DCT |
| 環路濾波 | 無(後製去方塊) | 內建 deblocking filter |
| 熵編碼 | Huffman / Arithmetic | 布林算術編碼(Boolean Arithmetic Coding) |
幀內預測是 WebP 相對 JPEG 最大的改進。在編碼每個區塊之前,先用周圍已編碼的像素預測當前區塊的內容,然後只編碼預測的殘差(residual)。如果預測準確,殘差接近零,壓縮效率大幅提升。
WebP 的無損壓縮模式使用完全不同的演算法,包括:
- 色彩轉換:將 ARGB 轉為更可壓縮的色彩表示
- LZ77 前向參考:參考先前出現過的像素塊
- 色彩快取:快取最近使用的顏色,重複色可用極少位元表達
- Huffman 編碼:最終壓縮
第三代:AVIF 的超級區塊壓縮(2019)
AVIF 基於 AV1 視訊編碼標準,代表了傳統壓縮技術的巔峰。相比 WebP 的改進是全方位的:
可變大小的超級區塊
AVIF 使用最大 128×128 的超級區塊(superblock),可以遞迴分割為更小的區塊(最小 4×4)。編碼器根據內容複雜度自適應選擇區塊大小——平滑區域用大區塊、複雜區域用小區塊。
豐富的預測模式
提供超過 50 種方向性幀內預測模式(WebP 只有 4+4 種),加上多種色度從亮度預測(CfL,Chroma from Luma)模式,能更精確地預測像素值。
進階變換與濾波
- 多種變換核心:DCT、ADST(Asymmetric Discrete Sine Transform)、identity 變換,每個區塊獨立選擇
- CDEF(Constrained Directional Enhancement Filter):方向性去噪濾波器
- Loop Restoration Filter:Wiener 濾波和自導向(self-guided)濾波器恢復被壓縮損失的細節
壓縮效率的代價
AVIF 的高壓縮率是以極高的編碼複雜度為代價。以 libaom(官方參考編碼器)speed 4 設定為例,編碼一張 4K 照片可能需要 30-60 秒。這使得 AVIF 不太適合需要即時編碼的場景,但非常適合可以預先編碼的靜態資源。
第四代:AI 神經網路壓縮(2020s)
傳統壓縮演算法依賴人為設計的變換(DCT)和預測模型。AI 壓縮則用神經網路端到端學習最佳的編碼方式。
基本架構:Autoencoder
多數 AI 壓縮模型基於 Autoencoder 架構:
- 編碼器網路(Encoder):將原始影像壓縮為低維的潛在表示(latent representation)
- 量化:將連續的潛在向量離散化
- 熵模型(Entropy Model):學習潛在表示的機率分佈,用於算術編碼
- 解碼器網路(Decoder):從潛在表示重建影像
目前的研究進展
| 模型/方法 | 機構 | 特點 | 相對 VTM(H.266 參考軟體)壓縮效率 |
|---|---|---|---|
| Hyperprior (Ballé 2018) | 奠基性工作,引入超先驗模型 | 接近 VTM | |
| Cheng 2020 | 學術界 | 高斯混合模型改進熵估計 | 略優於 VTM |
| ELIC (2022) | 學術界 | 高效潛在影像壓縮 | 優於 VTM 5-10% |
| TIC (2024) | Meta | Transformer-based Image Compression | 優於 VTM 10-15% |
| Google MIC (2025) | Multi-realism Image Compression | 在極低位元率下顯著優於 VTM |
AI 壓縮的優勢與限制
優勢:
- 極低位元率下表現遠超傳統方法(在 0.1 bpp 以下差距尤其明顯)
- 能學習到傳統方法無法手動設計的複雜模式
- 可以針對特定類型的影像(人臉、文字、衛星圖)訓練專用模型
限制:
- 解碼需要 GPU 運算(或至少是較強的 CPU),目前不適合瀏覽器端即時解碼
- 缺乏標準化的格式和解碼器,互通性差
- 訓練和推論成本高
- 部分模型在高頻紋理上的重建品質不如傳統方法
各代壓縮技術總覽比較
| 特性 | JPEG (DCT) | PNG (Deflate) | WebP (VP8) | AVIF (AV1) | AI 壓縮 |
|---|---|---|---|---|---|
| 年份 | 1992 | 1996 | 2010 | 2019 | 2020s |
| 壓縮類型 | 有損 | 無損 | 有損+無損 | 有損+無損 | 有損(主要) |
| 核心技術 | 8×8 DCT | 預測濾波 + LZ77 | 幀內預測 + DCT | 超級區塊 + 多變換 | 神經網路 Autoencoder |
| 有損壓縮率(相對 JPEG) | 1.0x | — | 1.25-1.4x | 1.5-2.0x | 2.0-5.0x(極低位元率) |
| 編碼速度 | 快 | 中等 | 中等 | 慢 | 極慢(需 GPU) |
| 解碼速度 | 快 | 快 | 快 | 中等 | 慢(需 GPU) |
| 瀏覽器支援 | 全部 | 全部 | 97%+ | 92%+ | 無(實驗階段) |
| 適用場景 | 通用 | 截圖、圖表 | Web 通用 | Web 進階、HDR | 研究、極低頻寬 |
對圖片託管服務的實際影響
了解壓縮原理有助於選擇正確的圖片上傳策略。
如果你需要分享的是截圖或圖表,PNG 是最佳選擇——無損壓縮確保文字清晰可讀。如果是照片,JPEG 或 WebP 的有損壓縮可以大幅縮小檔案,又不會明顯影響觀感。
lpic.cc 支援 JPEG、PNG、WebP、GIF 等主流格式的上傳,上傳後保留原始格式不做額外壓縮或轉碼,確保你分享的圖片品質與上傳時一致。如果你想在上傳前先優化檔案大小,可以使用 Squoosh 等工具先手動轉換為 WebP 或調整 JPEG 品質。
需要注意的是,lpic.cc 目前不提供伺服器端的格式轉換或品質調整功能,上傳什麼格式就儲存什麼格式。
常見問題 FAQ
Q1:為什麼 JPEG 品質設為 100 檔案還是比 PNG 小?
因為 JPEG 品質 100 不代表「無損」。即使品質設為最高,JPEG 仍然會經過色度下採樣(4:2:0 → 色彩資訊已減半)和 DCT/量化流程,只是量化表的數值非常接近 1,損失極小但仍存在。真正的無損需要使用 PNG、WebP Lossless 或 JPEG XL Lossless。
Q2:GIF 的壓縮原理是什麼?為什麼不適合照片?
GIF 使用 LZW(Lempel-Ziv-Welch)字典壓縮,是無損壓縮。但 GIF 最大的限制是色彩深度只有 8-bit——每張 GIF 最多只能包含 256 種顏色。照片通常包含數百萬種顏色,強制減少到 256 色會導致明顯的色帶(banding)和失真。GIF 適合色彩數量有限的動畫和圖標。
Q3:壓縮過的圖片再壓縮一次會怎樣?
有損格式(如 JPEG)重複壓縮會累積品質損失。每次壓縮都會引入新的量化誤差,即使用相同的品質設定。實測數據顯示,一張 JPEG 經過 10 次重新編碼(品質 85),PSNR 會下降約 2-4 dB,相當於可察覺的品質退化。這個品質退化在 SSIM 圖床壓縮品質實測 的實驗裡也能觀察到各家圖床的再壓縮策略。這就是為什麼影像編輯時應該始終從原始檔案出發,而非編輯已壓縮的版本。
Q4:AI 壓縮什麼時候會進入實用階段?
目前最大的瓶頸是解碼速度和標準化。傳統格式的解碼可以在毫秒級完成,AI 模型需要數百毫秒到數秒(取決於硬體)。預估 3-5 年內可能在特定場景(串流影像、衛星圖像、醫療影像)進入實用,但要在一般 Web 瀏覽器中替代 JPEG/AVIF,還需要解碼硬體加速和格式標準化的配合。
Q5:上傳圖片到圖床時,應該先壓縮還是直接上傳原始檔?
取決於用途。如果是分享到社群媒體或通訊軟體,建議先壓縮到合理大小(例如長邊 2048 px、JPEG 品質 85 或 WebP 品質 80),可以加快上傳和下載速度。如果是需要保留最高畫質的攝影作品,上傳原始檔更合適。若是要放在自架網站上,搭配 網站圖片載入優化 的 lazy loading 與 responsive image 策略會有更顯著的效能提升。
參考資料
- JPEG Standard - ITU-T T.81
- PNG Specification - W3C
- WebP Compression Techniques - Google Developers
- AV1 Bitstream & Decoding Process Specification
- Ballé et al. - Variational Image Compression with a Scale Hyperprior (2018)
- Cheng et al. - Learned Image Compression with Discretized Gaussian Mixture Likelihoods (2020)
- ELIC: Efficient Learned Image Compression (2022)
- Squoosh - 線上圖片壓縮與格式轉換工具
- Cloudinary - Image Compression Comparison Study
- Mozilla - JPEG Compression Algorithm Overview