圖片壓縮解析:有損與無損壓縮的原理與使用時機
有損壓縮丟棄影像資訊以減少大小;無損壓縮更有效率地表示解碼像素以便還原。節省幅度取決於來源、編碼器、設定與先前處理。有些格式只有一種模式,有些兩種都有。 判斷「可還原」時必須區分像素資料與整個檔案:無損像素編碼不保證中繼資料、色彩描述檔、方向資訊或輔助區塊逐位元相同。有損結果是否可接受也不是由副檔名或單一品質數字決定,而要在實際顯示尺寸、重要螢幕與較高縮放下檢查文字、邊緣、紋理、漸層和色彩。若檔案曾經過有損處理,之後改存無損格式只能保存目前解碼結果,不能重建已丟棄的資訊。因此實務流程應保留合適母版,為每個用途產生候選,測量實際位元組,確認接收端支援,再選擇最適合的輸出。對代表性圖片逐一檢視,也能避免把單一設定錯誤套用到整批素材。
像素發生了什麼:核心差異
想像一張夕陽照片,其中數百萬像素有許多相鄰的橘色幾乎相同。壓縮演算法以不同方式利用這些重複資訊。
無損壓縮找出編碼像素的模式並簡短表示,例如「橘色 ×4」。解碼可恢復像素值。中繼資料、色彩描述檔、深度、方向與檔案結構是分開的,仍可能改變。PNG 與無損 WebP 提供無損像素編碼。
有損壓縮會轉換或預測資訊,並量化部分表示。漸層、紋理、色彩或邊緣可能改變,丟棄的資訊無法重建。JPEG、有損 WebP 與有損 AVIF 使用不同技術。
沒有任何方法永遠較好。它們解決不同問題,良好流程會依內容使用兩者。
有損壓縮如何運作
基準 JPEG 是有損流程的具體例子:
- 色彩空間轉換 — 常見編碼器將 RGB 轉為亮度/色度;矩陣、範圍與色彩管理會影響結果。
- 可選色度次取樣 — 色彩可用低於亮度的空間解析度儲存。是否可見取決於內容、模式、螢幕與觀察者,文字和飽和邊緣可能顯露變化。
- 區塊轉換 — 基準 JPEG 對 8×8 區塊使用離散餘弦轉換。WebP 與 AVIF 結構不同,不能照搬此描述。
- 量化 — 以較低精度表示轉換值。品質控制影響多項決策,不是標準物理尺度。
- 熵編碼 — 對剩餘資料進行無損壓縮。
相同品質數字在不同編碼器可能產生不同結果,已壓縮來源也可能比未壓縮母版少縮很多。匯出代表檔案並在目的環境比較大小與瑕疵。
無損壓縮如何運作
無損編碼描述像素而不丟棄,但外層工具仍可能在編碼前轉換圖片:
- 濾波與預測 — 由鄰近像素預測並儲存差值;平滑區域差值較小。
- 字典編碼——重複出現的圖案只儲存一次,之後以短指標引用,原理類似 ZIP 壓縮。
- 熵編碼 — 常見值使用較短二進位表示。
節省幅度很依賴內容。重複平面區域與可預測邊緣常壓縮良好,雜訊與複雜紋理則不然。因此圖形常用無損,照片發布則常用仔細挑選的有損輸出。
示意結果:來源很重要
| 原始格式 | 常見無損表現 | 常見有損表現 |
|---|---|---|
| 未壓縮照片 | 保留像素但可能仍很大 | 可大幅縮小;檢查紋理與邊緣 |
| 含文字截圖 | 常可有效壓縮並保持文字銳利 | 可能較小但產生振鈴或模糊 |
| 透明標誌 | 常適合;向量圖可能更適合 SVG | 有損 Alpha 格式存在;檢查邊緣與色彩 |
| 已壓縮 JPEG | PNG 可能變大且無法恢復細節 | 可能再縮小但新增有損世代 |
最後一列說明常見錯誤:JPEG 轉 PNG 不會恢復細節,而且常產生更大檔案。結果取決於內容與編碼器;表格是應測試的行為,不是固定基準。
各格式對應的壓縮類型
| 格式 | 有損 | 無損 | 常見用途 |
|---|---|---|---|
| JPEG | 是(僅有) | 否 | 照片與主圖 |
| PNG | 否 | 是(僅有) | 截圖、標誌與文字圖形 |
| WebP | 是 | 是 | 已測試的現代 Web 發布 |
| AVIF | 是 | 是 | 可測試相容性的現代流程 |
| GIF | 建立調色盤可能有損 | LZW 保留索引值 | 需要 GIF 時的簡單互通動畫 |
| TIFF | 取決於壓縮與內容 | 多種無損或未壓縮選項 | 特定應用的影像、印刷或保存流程 |
WebP 與 AVIF 都有兩種模式,但工具可能只提供一種。請依實際能力、內容、接收端支援與測試輸出選擇。另見WebP 與 AVIF 比較。
實用指南:何時用哪種壓縮
適合有損壓縮的情況:
- 照片與自然影像(風景、人像、商品拍攝)
- 網站主橫幅與背景圖
- 社群媒體圖片與縮圖
- 小檔案比保留每個解碼像素更重要的發布圖
品質約 75–85 可作為許多編碼器的起點,不是保證或共同尺度。使用JPEG 壓縮或WebP 壓縮測試,在目的尺寸與更高縮放檢查並保留原本。
適合無損壓縮的情況:
- 有損壓縮可能模糊文字的螢幕截圖
- Logo 與品牌素材(需要精確的色彩還原)
- 技術圖表與插圖
- 編碼器支援時,同時需要 Alpha 與保留像素的圖片
- 流程、精度、中繼資料與保存政策皆已定義的點陣母版
PNG 壓縮會解碼並以無損 PNG 像素重新編碼,目的是保留點陣內容,但可能改變中繼資料、描述檔、輔助區塊與完全透明下的 RGB;若重要請檢查。
常見問題
看得出有損與無損的差異嗎?
有時可以。這取決於圖片、編碼器、設定、顯示尺寸、螢幕、縮放與觀察者。高品質有損輸出即使不同於來源,也可能適合用途。SSIM 有助比較,但單一分數無法證明所有人都看不出差異。
PNG 一定是無損嗎?
標準 PNG 可精確保留解碼像素,但中繼資料與輔助區塊可能改變。「有損 PNG」通常指調色盤量化:把全彩限制為最多 256 項會丟棄色彩。它可能適合平面圖形,但漸層、反鋸齒與透明度必須檢查。
網站圖片哪種壓縮較好?
有損格式常適合照片;無損格式常適合文字、銳利邊緣、中間素材或必須保留像素的情況。現代格式在兩種模式都能提供透明度。請以實際發布尺寸測試來源,而非套用單一規則。
重複壓縮會讓圖片變差嗎?
重複有損編碼可能累積世代損失。保留高品質或無損母版並由它產生發布檔。無損重新編碼不會劣化像素,但中繼資料、描述檔、深度、調色盤或軟體轉換仍可能改變。
WebP 可以有損也可以無損嗎?
可以。WebP 與 AVIF 規格都包含兩種模式。實際編碼器或介面可能只提供部分模式。請檢查產生的檔案,不要只由檔名推斷。