技術(shù)宅
格式背后的故事 認(rèn)識常見圖片格式
無論是在手機上還是電腦上,我們幾乎天天都要面對各種各樣的圖片。常見的圖片格式有BMP、JPG(JPEG)、PNG、WEBP等,那么這些圖片格式有什么不同?這些圖片格式從直觀的角度看,最大的不同就是體積大小不一樣。大家可以使用系統(tǒng)自帶的“畫圖”組件測試,對于同一張圖片使用“畫圖”打開后,依次將其另存為上述三種格式,可以看到體積從小到大依次為JPG、PNG和BMP,其中BMP大小≈40倍JPG(圖1)。
那么為什么會出現(xiàn)這種情況?其中原因就是由于這些圖片格式使用了不同的壓縮算法(其中BMP未壓縮)。和我們常見的RAR、ZIP壓縮格式一樣,我們在壓縮同一個文件的時候,如果使用不同的壓縮率,最終得到的文件體積也不一樣。因為對于很多高品質(zhì)格式的圖片,其中包含很多冗余信息,而對這些信息的壓縮不會對肉眼觀看這些圖片帶來明顯的影響。比如上述例子,PNG格式體積大約只有BMP的十分之一,但是圖片顯示質(zhì)量在我們看來并沒有降低多少,原因就在于PNG格式中將原本BMP中的很多冗余色彩信息進(jìn)行了壓縮(圖2)。
體小質(zhì)大 TPG背后的秘密
如上所述,采用不同的壓縮算法可以在不影響圖片品質(zhì)的前提下大大降低文件的體積。這次騰訊推出的TPG其實也是一種圖片壓縮算法,據(jù)官方介紹,此項專利技術(shù)由騰訊音視頻實驗室基于AVS2內(nèi)核自主研發(fā)。那么這個算法和常見的圖片壓縮又有什么區(qū)別?
對于一種壓縮算法好壞的判斷指標(biāo),一是壓縮后圖片質(zhì)量比較,對同一張源圖,分別使用不同算法進(jìn)行壓縮轉(zhuǎn)換,然后比較壓縮后的質(zhì)量,在質(zhì)量相差無幾情況下,體積越小則表明壓縮算法越好。在官方提供的測試樣片中可以看到,TPG和目前高品質(zhì)壓縮格式webP(無損壓縮后的webP比PNG文件少45%)對決中,對于同一張源圖轉(zhuǎn)換為TPG文件要比轉(zhuǎn)換為webP小29%,而且圖片質(zhì)量幾乎沒有多大區(qū)別,顯然TPG算法要比webP好得多(圖3)。
壓縮算法好壞的另一個指標(biāo)則是壓縮率的比較,比較的方法是使用同等大小的圖片進(jìn)行顯示質(zhì)量的比較。目前主流圖片格式中,JPG的壓縮率是較高的,在和JPG格式的對比中,對于體積大小基本相同(JPG 7.4KB、TPG7.3KB),也就是使用同等壓縮率的前提下,TPG壓縮后的顯示質(zhì)量明顯比JPG的效果要好(圖4)。
在實際測試中,TPG比PNG小50%以上,比GIF小90%以上,比JPG/JPEG格式圖片(采用Libjpeg-Turbo編碼)小40%以上,比采用Guetzli編碼的JPG/JPEG格式則小了41.7%。相比于Google推出的WEBP格式,TPG的文件大小減少了近30%(圖5)。
當(dāng)然除了在體積方面的優(yōu)勢外,TPG圖片格式在動態(tài)格式、高清、無損其他核心要求上全部支持,而目前主流的壓縮格式總是有部分不支持。比如JPG不支持透明通道,這樣一些透明背景的圖片保存為JPG格式就無法顯示背景。相比之下,TPG則完全支持常見壓縮算法中的全部指標(biāo),因此TPG在圖片格式處理中可以有更多的作用(圖6)。
顯然無論是從壓縮率、圖片質(zhì)量還是支持指標(biāo)上來看,TPG比目前主流的圖片編碼都要好,這主要得益于騰訊公司強大的研發(fā)能力,開發(fā)出業(yè)界先進(jìn)的圖片壓縮算法才能實現(xiàn)上述效果。
不僅僅是簡單壓縮 TPG給我們帶來的便利
看了上面的介紹可以知道,TPG的最大優(yōu)勢是在壓縮后體積占比上。對于常見圖片,TPG只是節(jié)約了幾十KB的存儲空間,對于我們來說似乎并沒有多大的用處,不過大家可別小看這種壓縮帶來的實際利益。
一方面,對于網(wǎng)絡(luò)服務(wù)商來說,由于目前各種圖片充斥著網(wǎng)絡(luò),一家網(wǎng)站的服務(wù)器可能要存儲數(shù)以億計的圖片。以淘寶為例,根據(jù)統(tǒng)計淘寶目前保存的圖片文件數(shù)量達(dá)到286億多個,平均圖片大小只有17.45KB,占用空間達(dá)到1PB(注:1PB=1024TB= 1073741824MB)。顯然如果類似的服務(wù)器,它的圖片格式假設(shè)原來是JPG,現(xiàn)在轉(zhuǎn)換為TPG(體積縮小40%),想一想這個存儲成本能夠降下來多少?當(dāng)然TPG目前是騰訊專利格式,但是按照微信、QQ用戶數(shù)量,騰訊服務(wù)器保存的圖片也不會比淘寶要少。
另一方面,在這個“讀圖”時代,我們很多的信息都是通過圖片完成。比如微信里很多信息、QQ表情等都是通過圖片實現(xiàn),如果網(wǎng)站服務(wù)器存儲圖片過多,在微信里就不容易快速打開這些圖片,給我們的閱讀、存儲和信息交流帶來極大的不便。TPG的出現(xiàn)則可以有效緩解圖片過多的難題,可以讓我們獲得更流暢的“讀圖”體驗!