騙過人類雙眼!Google 開源新 JPEG 編碼器,大小壓縮 35% 還讓你看不出來

評論
評論
▲左為原圖,中為 libjpeg 的處理結果,右為 Guetzli,photo credit: Google Research。

原文刊登於 合作媒體 36Kr,INSIDE 獲授權轉載。

一圖勝千言。新網路時代與過去冷冰冰的網際網路最大的區別就在於多了豐富的圖片。而網路上面最流行的靜態圖片格式非 JPEG 莫屬,但 JPEG 文件的多寡往往會影響頁面的載入速度。為此,Google 開發了一種新的 JPEG 演算法,可將文件大小減少 35%,這會確實提高網站的載入速度;此外,新演算法還可以在保持大小不變的情況下顯著改善圖片品質。更重要的是,Google 的這種 JPEG 格式跟 WebP、WebM 等圖像壓縮法不同,它可以完全與現有的瀏覽器、裝置、圖片編輯應用以及 JPEG 標準相容。而且,Google 還把它給開源出來了。

Google 的這個新的 JPEG 編碼器叫做 Guetzli,由 Google 研究院蘇黎世辦公室領導開發。Guetzli 在瑞士德語中是餅乾的意思,不過專案內容似乎跟餅乾並沒有太大的關聯,這也許是 Google 命名傳統的延伸,就像 Android 系統都是以糖果名稱來命名那樣。

一般而言,優化 JPEG 圖片品質與大小有好幾種手段,不過 Guetzli 聚焦的是量化階段的壓縮。簡而言之,量化就是把大量難以壓縮的無序數據縮減為易於壓縮的有序數據的過程。在 JPEG 的編碼中,這過程往往是通過將漸變的顏色簡化為色塊而把小的細節完全抹除掉。

不過這個過程的困難之處在於,要在抹除細節與縮小文件大小之間找到平衡。每一種有損編碼器(比如 libjpeg、x264、lame)的做法都不一樣。

而 Guetzli 的做法是利用一種新的視覺心裡模型(參考人類的視覺處理系統原理)來確定應該保留和丟棄哪些顏色和細節,它的名字叫做 Butteraugli。Butteraugli 的具體細節淹沒在一堆精密的常數之中,這些常數可以生成一個「近似於顏色感知和視覺」的模型,而且比其他的編碼器更加透徹和詳細。

至於 Google 研究院是如何發現這些常數就不得而知了。不過似乎是電腦生成的,或者至少是經過電腦優化的。之前 Google 曾經推出過一款可以 將有碼變成無碼的 AI 軟體 ,它可以利用兩種神經網路從已知的圖片中尋找與待補充細節匹配的新像素,並將添加進去。也許給神經網路提供夠豐富的圖像資料庫的話,AI 就能概括出這種視覺心裡模型。

▲編碼器對比:左為原圖,中為 libjpeg 的處理結果,右為 Guetzli,photo credit: Google Research。

雖然 Guetzli 的主要用途是減少文件大小,但 Google 研究院認為該編碼器也可以在保持大小不變的同時用來提高 JPEG 可感知的畫質。在與另一款流行的開源編碼器 libjpeg 進行比較時,Google 稱「75% 的人類評分偏好 Guetzli。這意味著 Butteraugli 的視覺心裡圖像相似度指標在高畫質方面接近於人類感官。」

不管是減少大小還是提高品質,Guetzli 的開源對於 JPEG 這款高度流行的圖片格式的作用都是深遠的。不過,Google 要實現這些效果也不是說沒有任何代價,跟 libjpeg 相比,其編碼需要的時間還是要多一些。

延伸閱讀:

相關文章

評論