深度解析

HEIC vs JPG 品質:轉換會損失細節嗎?(附實例)

koboshiCo-founder
·1 分鐘閱讀
概述

把 HEIC 轉成 JPG 確實會損失資料,因為 JPG 無法容納 HEIC 能儲存的一切。本文說明一次高品質轉換能保留什麼、品質下降時什麼最先浮現,以及如何轉換才不會留下肉眼可見的損失。

拍一張照片,用兩種方式儲存。存成 HEIC 約 1.8 MB,存成品質 90 的 JPG 約 3.4 MB。在正常尺寸下並排觀看,你看不出兩者有任何區別。放大到 400%,JPG 在頭髮、草地、主體後方的暗牆上會看起來稍微柔和一些。

這種變柔,正是標題那個問題的誠實答案:是,轉換在像素層級確實會損失資料;不,它通常不會損失你的眼睛能看到的東西。真正有用的問題是,那個「是」什麼時候會變成肉眼可見。這篇文章用真實數字展示,並告訴你如何轉換而不越過那條線。

轉換實際上做了什麼

HEIC 用 HEVC(H.265)儲存影像,這是一個為影片而生的編解碼器。JPG 用 DCT 區塊轉換加上色度子取樣來儲存。當你把 HEIC 轉成 JPG,影像會被解碼、再以另一套機制重新編碼,而重新編碼是有損的。部分資訊無法在這一來一回中存活。

有兩件事會改變。第一,壓縮方式會產生不同的瑕疵。在相同位元率下,HEVC 比 JPG 更善於隱藏損失,這正是 HEIC 檔案比較小的根本原因。第二,色深下降。HEIC 支援 10 位元或 16 位元的色深通道;JPG 固定為 8 位元。如果你的照片每個通道存了 10 位元,轉成 JPG 就會永久丟棄多餘的色調。

如果你想知道 HEIC 在位元組層級是如何組成的,HEIC 技術深度解析會帶你走一遍容器 box 與檔案簽名。

為什麼細節藏在位元深度裡

一個 8 位元通道各持有 256 階的紅、綠、藍。10 位元通道持有 1,024 階,每個顏色的精確度是 16 倍。在多數手機照片上你看不出差異,因為照片很少用平滑漸層填滿整個範圍。差異出現在顯而易見的地方:夕陽的天空應該從深橘漸變到淡黃,或窗邊逆光的肖像。這些平滑的漸層,正是 8 位元檔案開始出現色帶的地方,明顯的階梯取代了連續的漸層。

所以損失是真實的,但它不是隨機的。它先落在漸層和低光雜訊上,然後才落到臉孔或建築物的銳利邊緣。如果你以高品質轉換,其他損失(區塊雜訊、振鈴、模糊)會維持在夠小的程度,讓你不放大就察覺不到。

三種品質設定下的 HEIC vs JPG

同一張 1200 萬畫素的照片,四種儲存方式,以 HEIC 為基準:

檔案大小與 HEIC 相比的變化
HEIC(來源)1.8 MB基準
JPG 品質 954.1 MB正常縮放下無可見差異
JPG 品質 903.4 MB400% 下細緻紋理稍微變柔
JPG 品質 752.1 MB天空出現色帶,文字周圍出現振鈴

這些數字是典型值,不是精確值;你的照片與相機會改變它們。但規律不會變。你可以轉出與原始 HEIC 相近的大小,同時保留可見細節。只有當品質滑桿低到編碼器開始偷工減料時,你才開始付出代價。

損失最先出現在哪裡

如果你想知道一次糟糕的轉換會付出什麼代價,依序檢查這三項:

  • 色帶。 平滑漸層塌陷成階梯。這是位元深度損失,也是最先出現的現象。
  • 振鈴。 高對比邊緣周圍的細薄光暈,在文字與窗框上最明顯。
  • 區塊雜訊。 平坦區域出現看得見的 8 × 8 格狀方塊,通常品質 80 以上就會消失。

單次高品質轉換在多數照片上不會觸發任何一項。會讓它們疊加的是重複編碼:每一次轉換都會加一點量化雜訊,而雜訊會累積。這就是有損與無損壓縮一文詳述的重複編碼損失效應。

如何轉換而不損失可見細節

規則很短:只轉一次,從原始 HEIC 以高品質轉換。不要從已經通過一次編碼器的 JPG 轉換,也不要之後再對結果做第二次轉換。

我們的 HEIC 轉 JPG 轉換器在你的瀏覽器中執行轉換,品質設定由你控制,而且直接讀取原始檔案。把 HEIC 拖進去,選品質 90 以上,你得到的已經是 JPG 能承載的極限。

如果你需要無損輸出或透明背景,無論品質多高,JPG 都不是正確目標;那是 PNG 的工作。HEIC vs PNG說明何時值得切換,而 HEIC 轉 WebP 指南則涵蓋要把圖片放上網頁的人該用的格式。

簡短總結

把 HEIC 轉成 JPG 確實會損失資料,因為 JPG 無法容納 HEIC 能儲存的一切。品質 90 以上時,損失幾乎在所有照片上都低於正常觀看尺寸下你能察覺的程度。如果有人告訴你轉換一定會毀掉畫質,他們描述的是低品質的轉換,而不是轉換本身。

更多推薦閱讀