Google開源新算法,可將JPEG文件縮小35%

36氪 於 18/03/2017 發表 收藏文章

一圖勝千言。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。

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



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


資料來源:36Kr

留言


請按此登錄後留言。未成為會員? 立即註冊
    快捷鍵:←
    快捷鍵:→