Google開源新演算法,可將JPEG大小縮小35%

Google開源新演算法,可將JPEG大小縮小35%
Google開源新演算法,可將JPEG大小縮小35%

一圖勝千言。Web與過去冷冰冰的互聯網最大的區別就在於多了豐富的圖片。而web上面最流行的靜態圖片格式非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。
編碼器對比:左為原圖,中為libjpeg的處理,右為Guetzli。
左為原圖,中為libjpeg的處理,右為Guetzli。
左為原圖,中為libjpeg的處理,右為Guetzli。

雖然Guetzli的主要用途是減少檔大小,但Google研究院認為該編碼器也可以在保持大小不變的同時用來提高JPEG可感知的畫質。在於另一款流行的開源編碼器libjpeg進行對比時,Google稱“75%的打分更偏好Guetzli。這意味著Butteraugli的精神性視覺圖像類似性指標在高畫質方面接近於人類感知。”
不管是減少大小還是提高品質,Guetzli的開源對於JPEG這款高度流行的圖片格式的作用都是深遠的。不過,Google要實現這些效果也不是說沒有任何代價,跟libjpeg相比,其編碼需要的時間還是要多一些。
原創文章,作者:boxi,如若轉載,請注明出處:http://36kr.com/p/5067258.html