JPEG 質素 80 與 90 有何分別?從 DCT、量化看檔案大小
GDESIGN
設計發布: 8 分鐘閱讀

JPEG 質素 80 與 90 有何分別?從 DCT、量化看檔案大小

匯出 JPEG 時選「質素 80」,並不等於保留原圖八成畫質。對不少編碼器而言,這個數字是控制量化表的參數;壓縮後有多大、失真有多明顯,還要視乎圖像內容和其他設定。

接續WebP、AVIF 與 JPEG 的比較,本文解釋 JPEG 為何適合照片,以及文字和線條為何容易受損。範圍限於常見的 DCT、量化及 Huffman 編碼有損流程。T.81 亦包括無損方式和算術編碼,不能用同一流程概括所有 JPEG。

日文原文發布: 2026-06-06

DCT 把圖像分成甚麼?

這類 JPEG 會把每個圖像分量的樣本分成 8 × 8 區塊,再以離散餘弦變換(DCT)表示平均成分及不同頻率的空間變化。若色度已經減少抽樣,一個分量區塊覆蓋的範圍,未必等於原圖的 8 × 8 像素。

低頻對應平緩的明暗或顏色變化;高頻則包含細小紋理、雜訊和銳利邊緣。照片的部分高頻即使減少,也可能不太顯眼,但細字與線條十分依賴這些細節。

天空、牆面和失焦背景通常較容易壓縮。屏幕截圖、圖表和介面圖示有較多突變邊緣,用照片的壓縮設定處理,失真往往更明顯。

量化才是主要的有損步驟

DCT 在數學上可逆,實際運算的有限精度則可能引入捨入誤差。主要的資訊捨棄發生在量化:用量化步長除 DCT 係數,再捨入至整數。

量化後係數 = round(DCT 係數 / 量化步長)

步長越大,越多不同的原值會得到相同結果。資料量可能減少,代價是區塊邊界、邊緣周圍的振鈴,以及漸變中的色階斷層。

常見量化表對低頻較精細、對高頻較粗略。這是利用視覺特性的取捨,並非高頻永遠不重要;文字圖像正好是需要保留高頻的例子。

讀懂 8 × 8 量化表

量化表的每個位置對應一個 DCT 係數。左上方接近低頻,右下角則代表水平和垂直方向都變化很快的成分。最左上角的 DC 係數與區塊平均值有關。

DC 步長太大,可能令區塊明暗明顯改變;高頻步長太大,則會犧牲細節。常見亮度範例表因此在左上方使用較小數值,在右下方使用較大數值,但 JPEG 沒有規定所有編碼器必須使用同一張表。

文字、格線和插圖的邊緣需要細緻處理。邊緣附近出現的振鈴或蚊狀雜訊,說明適合照片的設定未必適合圖表。

80、90、95 如何改變量化步長?

以常見的 IJG 品質尺度為例,Q 在 50 至 100 之間時,基準表可按以下方式縮放。最後把數值限制在基準方式相容的 1 至 255:

scale = 200 - 2 * Q
step = floor((base * scale + 50) / 100)
step = max(1, min(255, step))

把 T.81 Annex K 亮度範例表的 64 個數值代入,結果如下:

如表格未能完整顯示,可左右捲動。

質素scale左上 DC右下高頻平均步長
804064023.08
902032011.50
95102105.77

平均值是 64 個步長的算術平均,四捨五入至小數點後兩位。在此例中,80 升至 90、90 升至 95,步長都大致減半。較小的步長令更多係數保留下來,不會變成零,編碼資料量因此可能增加。

Q 為 100 時,這套尺度的量化表數值會變成 1,但色彩轉換及有限精度等因素仍可能改變樣本,並不保證無損。步長減半,也不能直接換算成檔案大小的固定倍數。

不同軟件的質素數字不能直接比較

IJG libjpeg、mozjpeg、圖像編輯軟件、瀏覽器 Canvas 和網上優化服務,可能採用不同量化表、色度抽樣、trellis quantization 及元數據處理方式。「質素 85」並非跨編碼器通用的畫質標準。

比較時應使用同一張原圖、同一個編碼器,再匯出多個設定。甲工具的 80 和乙工具的 90,不能只憑數字判斷高下。

把質素選項當作該編碼器的調節參數,同時觀察畫面和實際位元組數。它既不是畫質百分比,也不代表目標檔案大小。

零係數與檔案大小的關係

量化後,部分高頻係數會變成零。常見 JPEG 流程把係數按 zigzag 次序排列,以較精簡的方式表示連續的零,再用 Huffman 編碼縮短符號表示。

所以壓縮結果也取決於係數的數量和分佈。平滑的天空或牆面容易產生較多零;樹葉、頭髮、砂石和布料紋理,則可能在相同質素設定下保留更多係數。

從 90 調至 95,原本被量化成零的細微成分可能重新保留下來。即使肉眼覺得差異不大,資料量仍可能明顯增加,增幅要按內容及編碼選項判斷。

用固定條件檢查實際效果

先固定原圖、編碼器、色度抽樣、元數據政策,以及漸進式或循序式模式。否則比較到的可能是軟件預設值,而不只是質素數字。

可匯出 75、80、85、90、95 等候選版本,記錄檔案大小,分別以 100% 比例和實際展示尺寸檢查。逐像素看得到的差異,縮小至手機上的顯示尺寸後未必顯眼。

除了照片中央,也要查看暗部、漸變、文字、邊緣及細密紋理,留意區塊界線、振鈴、滲色和細節流失。

色度抽樣:另一個獨立設定

JPEG 照片通常會由 RGB 轉至 YCbCr。Y 是亮度訊號,Cb 和 Cr 是色差分量。降低色度解像度可以減少資料量,但也可能損失顏色邊界的細節。

  • 4:4:4:不降低色度抽樣密度。
  • 4:2:2:水平方向的色度抽樣密度減半。
  • 4:2:0:水平和垂直方向都降低色度抽樣密度。

4:2:0 常用於照片,但彩色細字、介面線條和銳利色塊邊界可能出現滲色。調高質素數字,不能保證補回抽樣時已捨棄的色彩資訊。

如果高質素 JPEG 的彩色文字仍然模糊,應同時檢查色度設定。4:4:4 較能保留這類邊界,通常亦需要較多資料。

照片和文字圖像的起步設定

以下只是在 IJG 類型尺度上開始比較的範圍,不是畫質保證:

  • 一般照片:先試 80–85,再檢查畫面。
  • 商品照片:重視材質與細節時,可試 85–90。
  • 屏幕截圖及圖表:考慮 PNG 或無損 WebP;AVIF 亦要檢查色度抽樣及編碼設定。
  • 有文字的橫額:考慮 4:4:4、較高質素,或其他格式。
  • 仍需編輯的素材:保留原檔,避免反覆匯出有損 JPEG。

JPEG 的解碼兼容性和成熟工具仍有價值,但沒有一個數字適合所有圖像,也不應把某編碼器的數字直接搬到另一個。

重新編碼不等於複製檔案

把 JPEG 解碼成像素,再編成有損 JPEG,可能累積量化和其他損失。反覆編輯後,文字、邊緣和區塊界線的失真可能變得明顯。

逐位元組複製、只修改元數據,或符合條件的 JPEG 係數域無損變換,則不屬於上述重新編碼。不能把每一次「儲存」都說成重新量化。

需要多次裁切、加字或調色時,應保留原始檔或適當的無損工作檔,最後才匯出交付用 JPEG。網誌或網店的 CMS 也可能把上載圖片重新壓縮;下載最終送到讀者裝置的版本,才能確認實際效果。

參考資料及來源

編輯說明

本文使用 AI 協助編輯,並在發布前由編輯核對。內容仍可能包含事實、理解或時效上的錯誤;作出重要決定前,請查閱所列的一手資料或官方文件。

相關文章