跳過(guò)肉眼?全面解讀Google最新發(fā)布的JPEG壓縮算法Guetzli
推薦 + 挑錯(cuò) + 收藏(0) + 用戶評(píng)論(0)
本文介紹了Google的圖片壓縮軟件Guetzli,并通過(guò)一些測(cè)試指出了該軟件的使用注意點(diǎn)。
你可能已經(jīng)知道,現(xiàn)在網(wǎng)頁(yè)文件的平均大小比Doom游戲的安裝文件還還大。
文件變大的原因之一是圖片的增加,并且還需要支持更高的分辨率。
Google來(lái)拯救了
Google剛剛發(fā)布了一種新的JPEG壓縮算法:Guetzli。該算法的主要思想是重點(diǎn)保留人眼可以輕松識(shí)別的細(xì)節(jié),同時(shí)跳過(guò)眼睛無(wú)法注意的細(xì)節(jié)。
我不是專家,但預(yù)期的結(jié)果是獲得一個(gè)感知質(zhì)量相同,但文件大小更小的圖像。
這不是一種新的圖像格式,而是一種壓縮JPEG圖像的新方法。這意味著不需要一個(gè)定制的圖像查看器,而是可以由任何一個(gè)能渲染JPEG的軟件來(lái)顯示。
現(xiàn)實(shí)生活中Guetzli
在我的一個(gè)項(xiàng)目中,有一個(gè)包含很多圖片的主頁(yè)(僅主頁(yè)就有大約30Mb,其中27M是圖片)。
我決定給Guetzli一個(gè)嘗試的機(jī)會(huì),為了說(shuō)服我們的產(chǎn)品所有者和設(shè)計(jì)師質(zhì)量損失是可以接受的,我試著把這個(gè)新的算法應(yīng)用在一張沒(méi)有使用的高分辨率的圖片上(一張8574×5715,22MB的JPEG圖片) 。
它崩潰了。
根據(jù)google所說(shuō)(并且我的經(jīng)驗(yàn)證實(shí)了這些數(shù)字),Guetzli每一百萬(wàn)像素的圖像大約需要占用300MB的內(nèi)存(因此,我的圖像大約需要15GB),而當(dāng)時(shí)我沒(méi)有這么大的內(nèi)存(六個(gè)節(jié)點(diǎn)服務(wù)器,兩個(gè)docker容器,chromium和幾個(gè)electron實(shí)例所占用的內(nèi)存使得我的電腦不符合要求)。
在清理了一些不重要的進(jìn)程之后,我重新試了一次,Guetzli占用了12GB的內(nèi)存,但是成功了。
Google還表示,Guetzli處理一張圖片每一百萬(wàn)像素大概需要一分鐘的時(shí)間,我差不多也花了這么多時(shí)間(總時(shí)間略超過(guò)40分鐘)。
壓縮后的圖像不到7MB(原始大小為22MB),我無(wú)法通過(guò)肉眼來(lái)確定哪個(gè)是壓縮過(guò)的(我們的設(shè)計(jì)師可以,但是承認(rèn)差異“小到令人難以置信”)。
6.9M home-guetzli.jpg
22M home-raw.jpg
我使用的是Guetzli默認(rèn)的品質(zhì)設(shè)置(從84到100,如果要低于84,你需要自己編譯并更改這個(gè)最小值)進(jìn)行的壓縮。
更多的測(cè)試以及一些成功的例子
然后,我決定為該圖像嘗試使用不同的品質(zhì)設(shè)置(我寫了一個(gè)非常簡(jiǎn)單的腳本,從而無(wú)需每40分鐘重新啟動(dòng)一次,并且在我睡覺(jué)的時(shí)候也能夠運(yùn)行)。
結(jié)果在這里(Guetzli的默認(rèn)品質(zhì)因素似乎是95)。
6.9M 。/home-guetzli.jpg
22M 。/home-raw.jpg
3.0M 。/home-raw.jpg.guetzli84.jpg
3.4M 。/home-raw.jpg.guetzli87.jpg
4.2M 。/home-raw.jpg.guetzli90.jpg
5.5M 。/home-raw.jpg.guetzli93.jpg
8.8M 。/home-raw.jpg.guetzli96.jpg
18M 。/home-raw.jpg.guetzli99.jpg
產(chǎn)品所有者和設(shè)計(jì)師均同意使用84這個(gè)品質(zhì)因素。然后我轉(zhuǎn)換了所有的圖片,我們從主頁(yè)從30MB變?yōu)椴坏?MB(其中3MB是CSS和腳本)。
應(yīng)該注意到的是,我們的圖片之前并沒(méi)有進(jìn)行任何形式的壓縮。
附加說(shuō)明
在我的機(jī)器上安裝Guetzli很順利(有人在archlinux上創(chuàng)建了一個(gè)包含Guetzli的AUR包,非常感謝這個(gè)人),并且可以直接運(yùn)行它(只要你擁有足夠的內(nèi)存)。
似乎還有一個(gè)brew包(針對(duì)Mac OS用戶),但是我沒(méi)有測(cè)試它。
對(duì)于超大的圖片,Guetzli需要占用大量的內(nèi)存和CPU時(shí)間(很多時(shí)候是相對(duì)的,不要指望著在運(yùn)行的時(shí)候能夠做其他事情)。如果RAM不是你的瓶頸,那你甚至可以考慮針對(duì)不同的圖片并行運(yùn)行多個(gè)Guetzli實(shí)例,因?yàn)樗鼉H占用一個(gè)核心(僅作為寫入)。
作為一個(gè)JPEG編碼器,它不能輸出PNG(因此沒(méi)有透明度),但它可以轉(zhuǎn)換和壓縮PNG圖片。
運(yùn)行效率與圖片的初始質(zhì)量有關(guān):我注意到壓縮比范圍大約為大圖像上的7倍到小圖像上的2倍之間。在小圖片上,質(zhì)量損失也更加明顯。
在少數(shù)情況下,我也發(fā)現(xiàn)色飽和度存在損失(在我這個(gè)案例中,這個(gè)是可以接受的)。
長(zhǎng)話短說(shuō)
給Guetzli一個(gè)嘗試,它可能會(huì)給你一個(gè)不可接受的結(jié)果(特別是低品質(zhì)),但它也會(huì)讓你的網(wǎng)站減少幾MB的大小。
非常好我支持^.^
(0) 0%
不好我反對(duì)
(0) 0%
下載地址
跳過(guò)肉眼?全面解讀Google最新發(fā)布的JPEG壓縮算法Guetzli下載
相關(guān)電子資料下載
- zSwap 技術(shù)壓縮算法介紹 506
- 基于深度學(xué)習(xí)的圖像/視頻壓縮算法 1094
- 數(shù)據(jù)壓縮算法的介紹 523
- PostgreSQL 14中TOAST的新壓縮算法LZ4,它能有多快? 623
- AMD開(kāi)源Brotli-G壓縮格式,可使用GPU加速Brotli壓縮 907
- JSON壓縮算法解讀 2934
- 有趣!史記:數(shù)據(jù)壓縮算法列傳 372
- 模型壓縮算法的設(shè)計(jì)思路、實(shí)現(xiàn)方式及效果 473
- 基于開(kāi)源CNN的圖像壓縮算法項(xiàng)目介紹及實(shí)現(xiàn) 1202
- 改變世界的無(wú)損壓縮算法發(fā)展史 2620