教學
JPEG 壓縮痕跡:是什麼、為什麼會出現、怎麼修復
JPEG 壓縮痕跡,就是圖片被壓縮過頭時出現的方塊、光暈、階梯狀漸層和色彩暈染。這是網路上流傳的圖片最常見的損傷。這篇指南會說明每一種類型、為什麼聊天和社群 App 會不斷加上這些痕跡、為什麼轉成 PNG 沒有幫助,以及哪些能修復、哪些不能。
最後更新:
JPEG 壓縮原理簡介
JPEG 讓圖片變小的方式,是丟掉人眼不太會注意到的資訊。這分成三個步驟。
第一,它通常會用比亮度更低的解析度來儲存色彩,因為人眼對細微色彩不那麼敏感,這稱為色度抽樣(chroma subsampling)。第二,它把圖片切成 8 × 8 像素的區塊,再把每個區塊描述成一組由平滑到細密的簡單波形組合。第三,它把這些描述四捨五入。平滑的波形保留得相當準確,細密的波形則大多被丟棄。
品質設定控制的就是這個四捨五入的程度。品質高時損失很少,成果幾乎和原圖分不出來。品質低時,每個 8 × 8 區塊只剩下幾種粗略的波形。所有 JPEG 壓縮痕跡都來自這個過程,而被丟掉的資訊並沒有存在檔案的任何地方。
四種主要的 JPEG 壓縮痕跡
方塊(blocking)最容易辨認。每個 8 × 8 區塊是各自壓縮的,所以相鄰區塊在交界處會對不上,出現一層淡淡的方格。在天空、牆面、皮膚等平滑區域,以及暗部陰影中最明顯。
振鈴(ringing)又稱蚊式雜訊(mosquito noise),出現在銳利的邊緣周圍。清楚的邊緣需要細密的波形,這些波形被丟掉後,邊緣會帶著漣漪,擴散到旁邊的平坦區域。結果就是文字、標誌、天空前的頭髮和建築輪廓周圍出現一圈斑點。截圖和圖形最受影響,因為裡面充滿清楚的邊緣。
色階斷層(banding)會把平滑的漸層變成明顯的階梯。由亮到暗漸變的天空,會變成一條條平坦的色帶。大幅編輯 8 位元(8-bit)圖片也可能造成色階斷層,但強烈的 JPEG 壓縮會讓它更容易出現。
色彩溢出(colour bleeding)來自色度抽樣,以及色彩被壓縮得比亮度更重。鮮豔的顏色會溢出物體邊緣,紅色和藍色的細節變得模糊,輪廓卻依然清楚,彩色小字也會變得難以閱讀。
為什麼 LINE、WhatsApp、Instagram 和 Facebook 會再壓縮照片
處理大量照片的平台需要讓照片變小。檔案小,儲存成本就低、載入更快,也更省行動數據。所以大多數平台會把上傳的照片縮小到它顯示的最大尺寸,再以自己決定的品質重新存成 JPEG。例如 Instagram 的說明中心提到,照片會以最多 1080 像素的寬度保存。WhatsApp 的說明中心則提到,媒體在分享時通常會被壓縮,所以品質可能比原檔低。
以合理的品質壓縮一次,通常沒什麼問題。問題在於世代損失(generation loss)。每次把 JPEG 打開再存成 JPEG,就會在舊的損傷上再四捨五入一次。一張用 LINE 或 WhatsApp 傳送、存檔、發到 Instagram、截圖後再分享的照片,可能已經被壓縮了四、五次。
編輯也會增加壓縮次數。打開 JPEG、調整亮度、再存成 JPEG,就又多了一輪。在不同 App 裡反覆這麼做,是好照片變得斑駁最常見的原因之一。
為什麼存成 PNG 無法去除壓縮痕跡
常見的建議是把 JPEG 轉成 PNG 來提升畫質。PNG 是無損格式,會精確保存每一個像素。這能避免產生新的損傷,但也會把現有的方塊、光暈和暈染原封不動地保存下來。你只會得到一張一樣受損、檔案卻大得多的圖片。
PNG 適合用來儲存修復後的圖片,以及一開始就該用 PNG 的截圖和圖形。它無法消除已經存在於像素中的損傷。
如何修復 JPEG 壓縮痕跡
傳統的去方塊濾鏡會把區塊之間的交界抹平,並把振鈴模糊掉。對輕微的損傷有幫助,但會讓整張圖片變軟,因為簡單的濾鏡分不出區塊邊緣和真正的邊緣。
AI 去除壓縮痕跡的模型,是用大量「壓縮過」與「乾淨」的圖片配對訓練而成。它學會辨認損傷的樣子(8 × 8 方格、邊緣旁的漣漪、階梯狀漸層、偏移的色彩),把這些圖樣去除,同時保留真正的邊緣。
該用哪個工具,取決於圖片的內容:
- 截圖、圖形、標誌和任何含有文字的圖片:畫質增強會在不改變尺寸的情況下去除壓縮,偵測到的文字會受到保護,不會被重新描繪。它是為照片打造的,所以請把平塗區域和每個重要的字都和原圖對照;能取得新的 PNG 副本時,請使用它。
- 在聊天 App 中畫質變差的手機照片(常常還疊著夜拍顆粒):使用畫質增強,它能一次去除壓縮和雜訊。LINE 照片畫質變差的修復方法有完整的步驟說明。
- 圖片本身也太小:先去除壓縮痕跡,再放大。放大工具會把方塊和光暈連同其他內容一起放大,放大 4× 後,8 像素的方塊會變成 32 像素的方塊。
簡單的處理流程
找出你手上壓縮最少的版本:最初上傳的原檔、聊天中的第一份,而不是轉傳或截圖。從上面的清單中選擇合適的工具處理,並以 100% 縮放比例(而不是符合螢幕大小)和原圖比較。
把修復後的版本存成 PNG,或以高品質設定存成 JPEG。否則下一次存檔,又會在乾淨的成果上加上一輪新的壓縮痕跡。
無法復原的部分
去除壓縮痕跡可以移除損傷,但不一定能找回壓縮時丟掉的內容。在壓縮嚴重的圖片中,頭髮、草地或布料織紋等細微質感可能已經變成平坦的色塊。不添加質感的工具會把這些色塊清乾淨,並保留剩下的邊緣,但它們依然是平滑的。
有些工具,包括我們的畫質增強模型,會在照片失去質感的地方補上自然的細微質感。這能讓照片看起來不那麼死板,但這些質感只是合理的推測,並不是原本的樣子。用在旅遊照片沒問題,但不能作為證據。
小字是最明顯的極限。如果壓縮已經把文字變成一團糊,去除壓縮痕跡只會讓那團糊變乾淨,不會變得可以閱讀。我們的工具都不會猜測文字。
如何避免 JPEG 壓縮痕跡
只要養成幾個習慣,大部分 JPEG 損傷都能避免:
- 保留相機或手機拍出的原始檔案,並從原檔分享,而不是從存下來的副本分享。
- 在 WhatsApp 傳送時選擇 HD 畫質,或把照片當作文件附加,以傳送原始檔案。
- 使用能把編輯內容和原檔分開保存的 App 編輯,最後只匯出一次 JPEG。
- 以高品質設定匯出 JPEG。檔案會比較大,但壓縮痕跡的差異也很大。
- 截圖、圖形和任何含有文字的圖片都存成 PNG。
- 上傳到社群平台時使用平台顯示的尺寸,讓平台少做一些縮放。
試用工具
你每天可獲得 3 點免費點數,不需註冊,也不用綁信用卡。一張照片使用一個工具扣 1 點,放大 8× 則扣 2 點。免費方案可上傳 3 MB、8 MP 以內的 JPG、PNG 或 WebP 檔案,成果會加上浮水印。Pro(每月 9.99 美元,200 點)和 Pro+(每月 19.99 美元,500 點)沒有浮水印,可上傳最大 20 MB、30 MP 的檔案。上傳的檔案和處理成果會在 24 小時內刪除,絕不會用來訓練 AI。
畫質增強
修復雜訊、壓縮痕跡和失焦模糊,尺寸不變
常見問題
什麼是 JPEG 壓縮痕跡?
JPEG 壓縮留下的可見損傷:8 × 8 的方格、邊緣周圍的光暈或斑點(振鈴或蚊式雜訊)、階梯狀漸層(色階斷層),以及溢出邊緣的色彩。
為什麼照片傳出去後會變得一格一格的?
聊天和社群 App 會縮小並重新壓縮照片,以節省儲存空間和數據流量。每轉傳一次,就會在上一次的基礎上再多一輪壓縮。
把 JPEG 轉成 PNG 能提升畫質嗎?
不能。PNG 會把現有的壓縮痕跡原封不動地保存下來,只能避免下次存檔時產生新的損傷。
JPEG 壓縮痕跡可以去除嗎?
大部分可以。AI 去除壓縮痕跡能移除方塊、振鈴和色階斷層,同時保留真正的邊緣。被壓縮完全丟掉的細節則無法找回。
截圖或含有文字的圖片該用哪個工具?
畫質增強會在不改變尺寸的情況下去除壓縮,偵測到的文字會受到保護,不會被重新描繪。非常小或密集的文字偶爾可能沒被偵測到,所以請和原圖對照。已經無法閱讀的文字,處理後依然無法閱讀。
應該在放大之前還是之後去除 JPEG 壓縮痕跡?
之前。放大會把壓縮痕跡一起放大,讓它們更難去除。
JPEG 壓縮痕跡和雜訊有什麼不同?
雜訊是相機感光元件產生的隨機顆粒,在低光源下最嚴重。JPEG 壓縮痕跡則是壓縮造成的規則圖樣:方塊、光暈和階梯。從聊天 App 取得的手機照片常常兩者都有,而畫質增強正是為此打造的。
JPEG 品質要設多少才不會有壓縮痕跡?
越高越好。品質設定高時壓縮痕跡很難察覺,設定低時就非常明顯。避免把同一張圖片一再存成 JPEG。