JPEG 品質 80 與 90 差在哪?DCT、量化與檔案大小的關係
GDESIGN
設計發布: 8 分鐘閱讀

JPEG 品質 80 與 90 差在哪?DCT、量化與檔案大小的關係

JPEG 的「品質 80」不是保留原圖 80% 的畫質。在許多編碼器中,品質值是調整量化表的參數;影像內容與編碼設定,才共同決定檔案大小和失真的樣貌。

本文延續WebP、AVIF 與 JPEG 比較,說明 JPEG 為何適合許多照片,卻容易讓文字和線條變得模糊。討論範圍是常見的 DCT、量化與霍夫曼編碼有損流程;T.81 也包含無損方式及算術編碼,不能把所有 JPEG 都當成同一種流程。

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

DCT 如何處理 8 × 8 區塊?

在這裡討論的 DCT 流程中,每個影像分量會切成 8 × 8 個樣本的區塊。若色度已經降低取樣密度,一個分量區塊涵蓋的範圍,不一定等於原圖的 8 × 8 像素。

離散餘弦轉換(DCT)把區塊拆成平均成分與不同頻率的空間變化。低頻描述較平緩的變化;高頻則包含細節、紋理、雜訊和邊緣。照片中的部分高頻資訊即使減少,也可能不易察覺,但文字和細線往往很依賴這些資訊。

天空、牆面、失焦背景等平滑區域通常較容易壓縮。螢幕截圖、圖表、介面圖示與細字有許多突變邊緣,JPEG 的失真就比較顯眼。

主要的資訊損失發生在量化

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,步階都大致減半。更細的量化讓係數較不容易變成零,因此可能留下更多需要編碼的資料。

品質 100 會讓這套尺度的表格值變成 1,卻不保證無損:色彩轉換、有限精度等仍可能改變樣本。平均步階減半,也不代表檔案大小一定增加為某個固定倍數。

不同編碼器的品質數字不能直接排名

「品質 85」不是通用的 JPEG 品質保證。IJG libjpeg、mozjpeg、影像編輯軟體、瀏覽器 Canvas 和線上最佳化服務,在量化表、色度取樣、網格量化(trellis quantization)及中繼資料處理上,都可能採用不同設定。

要比較品質,應固定原圖與編碼器,再輸出多個候選設定。只看數字,無法判定甲工具的品質 80 是否比乙工具的品質 90 差。

把品質控制項視為該編碼器的調整參數,並同時查看影像與實際位元組數。它既不是畫質百分比,也不是目標檔案大小。

零係數增加,為何可能讓檔案變小?

量化後,許多高頻係數可能變成零。常見 JPEG 流程以鋸齒順序排列係數,精簡表示連續的零,再用霍夫曼編碼壓縮符號。

因此,影響大小的不只是品質值,還包括係數的數量與分布。平滑的天空和牆面可能很容易縮小;樹葉、頭髮、碎石和布料紋理,則可能在相同設定下留下許多係數。

品質從 90 提高到 95,可能保留原本被捨去的細節。視覺改善有時不大,資料量卻明顯增加;增幅仍取決於輸入內容及編碼選項。

固定條件,再比較同一張圖

比較時應固定原始影像、編碼器、色度取樣、中繼資料政策,以及漸進式或循序式模式。否則測到的可能是不同預設值,而不是品質參數本身。

可以輸出 75、80、85、90、95 等候選版本,記錄檔案大小,在 100% 檢視比例與實際展示尺寸下並排觀察。逐像素可見的差異,縮成手機上的圖片後可能不明顯。

不要只看照片中央。請分別檢查暗部、漸層、文字、邊緣與細緻紋理,注意區塊邊界、振鈴、色彩滲出及細節流失。

色度取樣是另一個獨立的取捨

JPEG 照片常以 YCbCr 處理影像,而非直接編碼 RGB。Y 是亮度訊號,Cb/Cr 是色差分量。降低色度解析度,也能減少資料量。

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

4:2:0 常適合照片,但彩色細字、介面細線和銳利色彩邊界可能出現滲色。提高品質數值,不一定能補回取樣時已捨去的色彩細節。

若高品質輸出仍讓彩色文字模糊,請一起檢查色度設定。4:4:4 有助於保留色彩邊界,但通常也需要更多資料。

實用起點:依照片、文字與用途選擇

對 IJG 類型的品質尺度,可以從以下設定開始比較,而不是直接視為品質保證:

  • 一般照片:先試 80~85,再檢查結果。
  • 商品照片:重視細節和質感時,可試 85~90。
  • 螢幕截圖與圖表:考慮 PNG 或無損 WebP;使用 AVIF 時也要確認色度取樣與編碼設定。
  • 含文字的橫幅:考慮 4:4:4、較高品質,或改用其他格式。
  • 還要編輯的素材:保留原始檔,不要反覆把工作檔輸出成有損 JPEG。

JPEG 的解碼相容性與成熟工具仍有優勢,但同一個數字不能套用到每個編碼器,也沒有適合所有圖片的單一設定。

重新編碼和複製 JPEG 並不相同

把 JPEG 解碼成像素,再編碼成另一張有損 JPEG,可能增加量化及其他損失。反覆操作後,文字周圍、邊緣及區塊邊界可能累積失真。

逐位元組複製檔案、只編輯中繼資料,或在符合條件時對 JPEG 係數進行無損轉換,與上述重新編碼不同。不能斷言每一次「儲存」都一定重新量化。

要多次裁切、加字或調色,應保留適當的原始檔或無損工作檔,最後才輸出交付用 JPEG。部落格或購物網站的 CMS 也可能重新編碼上傳圖片,所以還要下載實際傳送給讀者的版本,確認最終結果。

參考資料與來源

編輯說明

本文使用 AI 協助編輯,並於發布前由編輯確認。內容仍可能包含事實、解讀或時效上的錯誤;進行重要判斷前,請查閱所列的一手資料或官方文件。

相關文章