王詩濤,丁飄,黃曉政,劉海軍,羅斌姬,陳新星,吳友寶,王榮剛
(1. 騰訊科技(深圳)有限公司,廣東 深圳 518057;2. 北京大學信息工程學院,廣東 深圳 518055)
TPG圖像壓縮技術
王詩濤1,丁飄1,黃曉政1,劉海軍1,羅斌姬1,陳新星1,吳友寶1,王榮剛2
(1. 騰訊科技(深圳)有限公司,廣東 深圳 518057;2. 北京大學信息工程學院,廣東 深圳 518055)
TPG(tiny portable graphic)是基于AVS2視頻編碼標準推出的圖像壓縮技術,該圖片格式壓縮效率明顯高于JPG、PNG、GIF等其他傳統(tǒng)格式。介紹了TPG圖像編碼技術的編碼原理以及技術特點,對比了TPG圖片格式與傳統(tǒng)圖片格式的壓縮效率,結果顯示,TPG圖片格式具有明顯編碼增益。
TPG;AVS2;圖像壓縮
隨著移動互聯(lián)網(wǎng)的發(fā)展,終端設備的下載流量大幅增長,用戶下載流量中,圖片流量占據(jù)很大比例。圖片流量的快速增長,給企業(yè)帶來非常大的成本壓力,很多企業(yè)都在嘗試各種優(yōu)化來降低圖片流量成本。
以互聯(lián)網(wǎng)圖片為例,對于新聞網(wǎng)頁、QQ空間、朋友圈等應用場景中的圖片,通常會在后臺將原圖轉碼成更小的圖片供用戶下載,從而節(jié)省流量帶寬成本。
如何減小圖片大小呢?一種方法是降低圖片質量,比如將 JPEG圖片質量由JPEG80降低到JPEG70甚至更低,這樣雖然能節(jié)省帶寬,但是圖片質量也大大下降,很影響用戶體驗;另一種方法就是采用更高效的圖片壓縮方法,在保證圖片質量的同時將圖片壓得更小,相比第一種方法,顯然這種方法更優(yōu)。
目前的主流圖片格式有 JPEG、PNG和 GIF等。JPEG誕生于1992年,是最常見的圖片格式。目前很多學者基于 JPEG標準對圖像壓縮算法進行改進,如參考文獻[1],但是由于 JPEG算法本身的不足,其總體壓縮效率并不高。PNG誕生在 1995 年,它只支持無損壓縮,所以它的壓縮比是有上限的,尤其是對于顏色和細節(jié)豐富的圖像,PNG文件通常會很大。GIF誕生于1987年,隨著互聯(lián)網(wǎng)流行開來。它有很多缺點,比如通常情況下只支持256種顏色、透明通道只有1 bit、文件壓縮比不高,它唯一的優(yōu)勢就是支持多幀動畫。
為了提升壓縮效率,很多公司也推出了自己的圖片格式,比如Firefox的APNG、微軟的JPEG XR以及Google的WebP。這其中以WebP的應用最多。2010年,Google公司推出了WebP圖片格式,號稱壓縮效率相比JPEG可以提升40%,但是根據(jù)Mozilla的評測結果,WebP相對JPEG的優(yōu)勢并沒有宣傳中那么明顯,反而是 HEVC(又稱H.265)在評測中大幅領先于其他幾種格式。另外,根據(jù)JCTVC-I0595文檔中的統(tǒng)計數(shù)據(jù),H.265的 I幀壓縮效率也遠遠高于 WebP和 JPEG,比WebP高31%,比JPEG高43%。
AVS2是國產(chǎn)新一代視頻壓縮編碼標準,其壓縮效率與HEVC相當,在I幀壓縮效率方面甚至優(yōu)于HEVC。由于AVS2高效的壓縮效率,基于AVS2視頻編碼標準推出了TGP圖像壓縮技術。
AVS2采用了混合編碼框架,整個編碼過程包括幀內(nèi)預測、幀間預測、變換量化、反量化反變換、環(huán)路濾波和熵編碼等模塊[2]。AVS2編碼框架如圖1所示。
圖1 AVS2編碼框架
2.1 靈活的編碼結構劃分
AVS2采用了基于四叉樹的塊劃分結構,包括編碼單元(coding unit,CU)、預測單元(prediction unit,PU)和變換單元(transform unit,TU)。一幅圖像被分割成固定大小的最大編碼單元(largest coding unit,LCU),最大編碼單元按照四叉樹的方式迭代劃分為一系列的CU。每個CU包含一個亮度編碼塊和兩個對應的色度編碼塊(下文中塊單元的大小指亮度編碼塊)。與傳統(tǒng)的宏塊相比,基于四叉樹的劃分結構更加靈活,CU大小從8 bit×8 bit擴展到64 bit×64 bit[3]。
圖2 原始圖像、LCU和CU之間的關系以及四叉樹的劃分結構
PU規(guī)定了CU的所有預測模式,是進行預測的基本單元,包括幀內(nèi)和幀間預測。PU的最大尺寸不能超過當前所屬CU。在AVS1正方形幀內(nèi)預測塊的基礎上,增加了非正方形的幀內(nèi)預測塊劃分,同時,幀間預測也在對稱預測塊劃分的基礎上,增加了4種非對稱的劃分方式。
除了CU和PU,AVS2還定義了用于預測殘差變換和量化的變換單元(TU)。TU是變換和量化的基本單元,與PU一樣,定義在CU之中。其尺寸的選擇與對應的 PU形狀有關,如果當前CU被劃分為非方形PU,那么對應的TU將使用非方形的劃分;否則,使用方形的劃分類型。需要注意的是,TU的尺寸可以大于PU的尺寸,但不能超過所在的CU尺寸[4]。
2.2 幀內(nèi)預測編碼
AVS2在亮度塊的幀內(nèi)預測編碼上設計了33種模式,如圖3所示,包括DC預測模式、plane(平面)預測模式、bilinear(雙線性)濾波預測模式和30種角度預測模式。在色度塊上有5種模式:DC模式、水平預測模式、垂直預測模式、雙線性插值模式以及新增的亮度導出(derived mode,DM)模式[5]。
圖3 亮度塊幀內(nèi)預測模式
2.3 幀間預測編碼
AVS2的幀間預測技術在參考幀管理、幀間預測模式和插值方面進行了加強和創(chuàng)新[6,7]。
參考幀管理方面,AVS2的候選參考幀的最大數(shù)量可以到4個,以適應多層次的參考幀管理。為了滿足多種參考幀管理方式的要求,AVS2采用了一種多層次的參考幀管理模式。在這個模式中,根據(jù)幀與幀之間的參考關系和每個編碼圖像組(group of picture,GOP)中的幀被分成了多個層次。圖4展示了3種典型的參考關系和分類。
幀間預測模式方面,AVS2在I、P、B 3種圖像類型的基礎上,增加了前向多假設預測F圖像。F幀圖像的編碼塊可以參考前向兩個參考塊,相當于P幀的雙假設預測模式[8]。對于B幀,除了傳統(tǒng)的前向、后向、雙向和 skip(跳過)/direct(直接)模式,新增了對稱模式。
插值濾波方面,為了簡化運動補償,AVS2采用了8抽頭基于DCT(discrete cosine transform)的插值濾波器,只需要進行一次濾波,而且支持生成比1/4像素更高的運動矢量精度。
2.4 變換
AVS2中的變換編碼主要使用整數(shù)DCT。對于4 bit×4 bit、8 bit×8 bit、16 bit×16 bit、32 bit×32 bit大小的變換塊直接進行整數(shù)DCT。而對于64 bit× 64 bit大小的變換塊,則采用一種邏輯變換,先進行小波變換,再進行整數(shù) DCT。在 DCT完成后,AVS2對低頻系數(shù)的4 bit×4 bit塊再進行二次4 bit×4 bit變換,從而進一步降低系數(shù)之間的相關性,使能量更集中[9]。
圖4 3種典型的參考關系和分類
2.5 熵編碼
AVS2的熵編碼首先將變換系數(shù)分為4 bit×4 bit大小的系數(shù)組(coefficient group,CG),然后根據(jù)系數(shù)組進行編碼和 Zig-Zag掃描。先編碼含有最后一個非零系數(shù)的 CG位置,接著編碼每一個CG,直到CG系數(shù)都編碼完為止,這樣可以使得零系數(shù)在編碼過程中更集中。AVS2中仍使用基于上下文的二元算術編碼和基于上下文的二維變長編碼[10]。
2.6 環(huán)路濾波
AVS2的環(huán)路濾波模塊包含3個部分:去塊濾波、自適應樣點偏移和樣本補償濾波。去塊濾波的濾波塊尺寸為8 bit×8 bit,首先對垂直邊界進行濾波,然后是水平邊界。對每條邊界根據(jù)濾波強度不同選擇不同的濾波方式。在去塊濾波之后,采用自適應樣本偏移補償進一步減小失真。AVS2在去塊濾波和樣本偏移補償之后又添加了自適應濾波器,一種7×7十字+3×3方形中心對稱的維納濾波,利用原始無失真圖像和編碼重構圖像計算最小二乘濾波器系數(shù),并對解碼重構圖像進行濾波,降低解碼圖像中的壓縮失真,提升參考圖像質量[11,12]。
3.1 靜態(tài)圖像編碼
一幅靜態(tài)圖像對于視頻編碼來說,就相當于一個I幀,因此,可以采用I幀壓縮的方式壓縮一張靜態(tài)圖片。不過,傳統(tǒng)視頻壓縮編碼針對的是YUV空間域的數(shù)據(jù),而圖像壓縮一般是針對RGB域數(shù)據(jù),所以,編碼端進行 I幀編碼之前需要先將原始數(shù)據(jù)從RGB域轉換到YUV空間域。解碼端解碼得到YUV數(shù)據(jù)后需要將YUV數(shù)據(jù)轉換到RGB域。靜態(tài)圖像編碼過程如圖5所示。
圖5 靜態(tài)圖像編碼過程
對于RGB轉YUV,先將RGB轉換到YUV444空間域,然后再對UV下采樣得到YUV420數(shù)據(jù)作為視頻編碼器輸入,轉換過程符合 ITU-R BT.601標準。
解碼端先進行UV上采樣,將YUV420數(shù)據(jù)擴展到YUV444空間,然后再將YUV444數(shù)據(jù)轉換成RGB數(shù)據(jù)。
3.2 Alpha通道編碼
對于普通JPG圖片,直接將其RGB數(shù)據(jù)轉換成YUV數(shù)據(jù)進行編碼即可。但是,對于帶Alpha通道的PNG圖片,其輸出數(shù)據(jù)是RGBA形式的,采用一個YUV空間域數(shù)據(jù)無法完整描述RGBA數(shù)據(jù),必須對其做特殊處理。
編碼時,將RGBA數(shù)據(jù)分離成RGB數(shù)據(jù)和Alpha通道兩組數(shù)據(jù),然后分別對RGB和Alpha數(shù)據(jù)進行編碼。對于RGB數(shù)據(jù),按照前述方法進行編碼。對于 Alpha通道數(shù)據(jù),將其視為另一個Y通道數(shù)據(jù)以YUV400或者YUV420(UV數(shù)據(jù)置為常量)格式的形式進行編碼,然后將RGB數(shù)據(jù)幀和Alpha數(shù)據(jù)幀碼流合并生成一個TPG圖片格式碼流。
解碼端解碼出RGB數(shù)據(jù)幀,輸出 YUV數(shù)據(jù),將YUV數(shù)據(jù)轉換成RGB數(shù)據(jù),然后繼續(xù)解碼輸出YUV’數(shù)據(jù),其輸出的Y’與前面的RGB數(shù)據(jù)合并輸出RGBA數(shù)據(jù)。具體編解碼過程如圖6所示。
3.3 動態(tài)圖片支持
目前,互聯(lián)網(wǎng)應用中,動態(tài)圖片越來越多,比如表情圖片以及網(wǎng)頁中的GIF圖片等。GIF圖片雖然總量不大,但是由于每個GIF圖通常比較大,GIF圖在圖片總流量中的占比是很大的。如果能減小GIF文件大小,不僅能幫企業(yè)和用戶節(jié)省流量帶寬,還能減少GIF下載的等待時間,提升用戶體驗。
GIF編碼采用的256色編碼,GIF圖像幀之間是不會相互參考的,也就是說,GIF沒有利用幀間相關性,其編碼效果相比視頻壓縮效率更低。
TPG采用視頻壓縮方式來進行動態(tài)圖片的壓縮。將GIF、APNG等解碼得到的RGB或者RGBA數(shù)據(jù)按照前面所述方法進行編碼得到視頻幀數(shù)據(jù)。但是,由于 GIF、APNG等圖像格式的某些特征信息,比如時延信息、透明色等,在視頻編碼標準里面并沒有相關語法元素來描述,因此,需要在視頻幀數(shù)據(jù)前面加入圖像幀頭,幀頭里增加對這些特征信息的描述。這樣就能完整地還原一幅動態(tài)圖像。具體編碼過程如圖7所示。
圖6 帶Alpha通道圖像編解碼過程
圖7 動態(tài)圖片格式編碼過程
3.4 TPG格式介紹
一個完整TPG文件的組成結構如圖8所示,其主要包括圖片頭信息數(shù)據(jù)段、圖像幀數(shù)據(jù)段以及透明通道幀數(shù)據(jù)段,其中,透明通道幀數(shù)據(jù)段只有在圖像有Alpha數(shù)據(jù)時才有。
圖8 TPG文件數(shù)據(jù)結構
圖8中,視頻幀數(shù)據(jù)段是由AVS2編碼產(chǎn)生的標準碼流。在標準視頻碼流的基礎上對其做了圖像格式封裝,以實現(xiàn)圖像的一些特有功能。
圖片頭信息數(shù)據(jù)段是TPG文件的起始字段,其主要包括圖像文件的標識、圖像特征信息(比如圖像寬高及透明度等)、圖像輔助信息(比如EXIF信息等)。
圖像幀數(shù)據(jù)段是圖像 RGB數(shù)據(jù)編碼產(chǎn)生的碼流數(shù)據(jù),包括圖像幀頭數(shù)據(jù)段和視頻幀數(shù)據(jù)段兩部分,圖像幀頭數(shù)據(jù)段用來表示圖像序列中每一幅圖像的特征信息,每個圖像幀都帶有一個圖像幀頭。
透明通道幀數(shù)據(jù)段是圖像 Alpha通道數(shù)據(jù)編碼產(chǎn)生的碼流數(shù)據(jù),它包括透明通道幀頭數(shù)據(jù)段和視頻幀數(shù)據(jù)段兩部分。透明通道幀頭數(shù)據(jù)段用來描述Alpha通道數(shù)據(jù)幀的特征信息,每個透明通道幀都帶有一個透明通道幀頭。
3.5 TPG解碼
TPG解碼過程主要包括文件頭解析、AVS2解碼、YUV色度分量上采樣以及YUV到RGB顏色空間轉換幾個步驟,其流程如圖9所示。
圖9 TPG解碼流程
3.5.1 色度分量上采樣
當AVS2解碼輸出是YUV4:2:0格式時,需要對UV分量進行上采樣得到YUV4:4:4格式,然后再進行YUV到RGB的轉換。轉換過程如圖10所示。src(x,y)代表輸入的U或者V分量,dst(x,y)代表上采樣后得到的U或者V分量。假定原始U、V分量的寬為W,高為H,則經(jīng)過下采樣得到的新的U’、V’分量的寬為2W,高為2H。
圖10 色度分量上采樣示意
邊界像素和非邊界像素采用不同的上采樣算法,下面分別介紹。
(1)dst(x,y)非邊界像素
非邊界像素每個上采樣的值由輸入圖像對應位置相鄰4個像素共同決定。具體計算規(guī)則如下:
(2)dst(x,y)為邊界像素
對于4個角點位置的像素值由輸入圖像的4個角點像素決定:
第一行和最后一行除角點外的像素,其值由輸入圖像的第一行和最后一行對應位置的兩個相鄰像素點決定。
第一列和最后一列除角點外的像素,其值由輸入圖像的第一列和最后一列對應位置的兩個相鄰像素點決定。
3.5.2 YUV與RGB顏色空間轉換
由于圖像原始數(shù)據(jù)都是RGB域數(shù)據(jù),所以需要將解碼輸出數(shù)據(jù)由 YUV顏色空間轉換到RGB顏色空間。顏色空間轉換根據(jù)YUV標準制式的不同,其轉換過程也不一樣。采用 ITU-R BT.601標準的YUV值域范圍,其YUV轉RGB過程如下:
將 TPG圖片格式與傳統(tǒng)圖片格式進行了對比,接下來將介紹相關的對比統(tǒng)計數(shù)據(jù)。
4.1 主觀質量對比
分別將JPEG、PNG和GIF圖片格式轉換為TPG格式,然后再將TPG解碼還原成PNG(如果是動態(tài)圖片格式則還原出 GIF)圖片對比其主觀質量。對比效果如圖11~圖13所示。
圖11 靜態(tài)圖片格式效果對比
圖12 帶Alpha通道靜態(tài)圖片格式效果對比
圖13 動態(tài)圖片格式效果對比
圖11~圖13分別對比了JPEG、PNG以及GIF 3種圖片格式和TPG的主觀效果??梢钥闯?,TPG圖片與源圖肉眼看幾乎沒有區(qū)別。但是相比JPEG源圖,TPG減小了44%以上;相比PNG源圖,大小減小了80%以上;相比GIF源圖,大小減小了90%以上。
4.2 客觀質量對比
除了主觀質量方面的對比,還在客觀質量方面對這幾種圖片格式進行了對比。對比了在PSNR對齊的情況下,TPG與JPEG的壓縮效率,具體結果如圖14~圖16所示。
圖14 TPG & WebP & LibJPEG編碼效率對比
如圖 14所示,TPG的編碼效率比 WebP高23.5%,比LibJPEG高46.8%。如圖15所示,Windows平臺下 TPG的編碼速度是 WebP的 1.6倍,是LibJPEG的37.6倍;Linux平臺下TPG的編碼速度是WebP的2.4倍,是LibJPEG的38.4倍。如圖16所示,Linux平臺下TPG的解碼速度是WebP的0.7倍,是LibJPEG的6倍;iOS平臺下TPG的解碼速度是WebP的2.2倍,是LibJPEG的2.6倍。
圖15 TPG & WebP & LibJPEG編碼速度對比
圖16 TPG & WebP & LibJPEG解碼速度對比
本文提出了一種新的圖片格式TPG,TPG基于AVS2視頻編碼標準,通過視頻編碼的方法來實現(xiàn)圖像壓縮。TPG的壓縮效率明顯高于JPEG、GIF、PNG等傳統(tǒng)格式,采用TPG能幫企業(yè)和用戶節(jié)省大量圖片流量帶寬。同時,減少了用戶下載圖片的等待時間,具有重要意義?,F(xiàn)今,越來越多的企業(yè)開始關注如何節(jié)省圖片流量,TPG為省流量提供了一套很好的解決方案。TPG推出后,也得到了業(yè)界的廣泛關注,相信未來TPG一定會得到很好的推廣和應用。
[1]徐妮妮, 李晨光. 基于JPEG標準的16 bit圖像有損壓縮應用[J].電信科學, 2016, 32(4): 103-108. XU N N, LI C G. Application of 16 bit image lossy compression based on the JPEG standard[J]. Telecommunications Science, 2016, 32(4): 103-108.
[2]黃鐵軍. AVS2標準及未來展望[J]. 電視技術, 2014, 38(22): 7-10. HUANG T J. AVS2 standards and future prospects[J]. Video Engineering, 2014, 38(22): 7-10.
[3]周蕓, 郭曉強, 王強. AVS2視頻編碼關鍵技術[J]. 廣播電視信息, 2015(9): 18-21. ZHOU Y, GUO X Q, WANG Q. AVS2 video coding key technology[J]. Radio & Television Information, 2015(9): 18-21.
[4]林琪. AVS2幀間預測技術及快速算法研究[D]. 上海: 上海大學, 2015. LIN Q. Research on AVS2 inter - frame prediction technology and fast algorithm[D]. Shanghai: Shanghai University, 2015.
[5]PIAO Y, CHEN J, LEE S, et al. Intra coding of AVS2 video coding standard[C]//IEEE International Conference on Multimedia and Expo Workshops, July 14-18, 2014, Chengdu, China. New Jersey: IEEE Press, 2014: 1-5.
[6]HE Z, YU L, ZHENG X, et al. Framework of AVS2-video coding[C]//IEEE International Conference on Image Processing, Sept. 15-18, 2013, Melbourne, VIC, Australia. New Jersey: IEEE Press, 2014: 1515-1519.
[7]MA S, HUANG T, READER C, et al. AVS2? making video coding smarter[J]. IEEE Signal Processing Magazine, 2015, 32(2): 172-183.
[8]SHAO Z, YU L. Multi-directional skip and direct modes design in bi-predictive slices for AVS2 standard[C]//2014 IEEE International Conference on Multimedia and Expo Workshops (ICMEW), July 14-18, 2014, Chengdu, China. New Jersey: IEEE Press, 2014: 1-5.
[9]韓宏凱. AVS2幀內(nèi)預測編碼的CU劃分快速算法及RDO優(yōu)化研究[D]. 成都: 西南交通大學, 2016. HAN H K. Research on fast algorithm and RDO optimization of CU partition in AVS2 intra prediction code[D]. Chengdu: Southwest Jiaotong University, 2016.
[10]GAO W, MA S. Advanced video coding systems[M]. Berlin: Springer Publishing Company, 2015.
[11]FAN K, WANG R G, WANG Z Y, et al. iAVS2: a fast intra encoding platform for IEEE 1857.4[J]. IEEE Transactions on Circuits and Systems for Video Technology, Early Access, 2016(99): 1.
[12]WANG Z Y, WANG R G, FAN K, et al. uAVS2—fast encoder for the 2nd generation IEEE 1857 video coding standard[J]. Signal Processing: Image Communication, 2017, 53(5): 13-23.
TPG image compression technology
WANG Shitao1, DING Piao1, HUANG Xiaozheng1, LIU Haijun1, LUO Binji1, CHEN Xinxing1, WU Youbao1, WANG Ronggang2
1. Tencent Technology (Shenzhen) Co., Ltd., Shenzhen 518057, China 2. School of Electronic and Computer Engineering, Peking University, Shenzhen 518055, China
TPG(tiny portable graphic) is a new image compression technology based on the video part of AVS2 standard, whose compression efficiency is notably higher than traditional image formats like JPG, PNG and GIF. Theory and feature of TPG image compression technology were introduced. Then, the compression efficiency of TPG and traditional image formats was compared. Results show that TPG has overwhelming advantage.
tiny portable graphic, AVS2, image compression
TN919
A
10.11959/j.issn.1000?0801.2017238
王詩濤(1983?),男,騰訊科技(深圳)有限公司高級工程師,主要研究方向為視頻編解碼、圖像壓縮、實時視頻通信。
丁飄(1983?),男,騰訊科技(深圳)有限公司高級工程師,主要研究方向為實時視頻通信、網(wǎng)絡技術。
黃曉政(1986?),男,騰訊科技(深圳)有限公司高級工程師,主要研究方向為視頻編解碼和視頻通信。
劉海軍(1988?),男,騰訊科技(深圳)有限公司高級工程師,主要研究方向為實時視頻通信以及視頻編解碼算法。
羅斌姬(1989?),女,騰訊科技(深圳)有限公司工程師,主要研究方向為視頻編解碼、圖像編解碼、實時通信。
陳新星(1982?),男,騰訊科技(深圳)有限公司高級工程師,主要研究方向為實時視頻通信以及視頻編解碼算法。
吳友寶(1990?),男,騰訊科技(深圳)有限公司助理工程師,主要研究方向為音視頻質量評測工具開發(fā)。
王榮剛(1976?),男,博士,北京大學信息工程學院副教授,主要研究方向為視頻編碼、虛擬現(xiàn)實以及圖像增強。
2017?07?15;
2017?07?26