竇世鵬
(北方工業(yè)大學(xué) 電子信息工程學(xué)院,北京 100144)
高效視頻編碼環(huán)境幀內(nèi)塊拷貝技術(shù)研究
竇世鵬
(北方工業(yè)大學(xué) 電子信息工程學(xué)院,北京 100144)
國(guó)際標(biāo)準(zhǔn)化組織推出新一代高效視頻編碼標(biāo)準(zhǔn)以來(lái),隨著視頻處理需求的迅猛發(fā)展,云處理技術(shù)的日漸推廣,終端設(shè)備的圖形化界面也日漸成為多媒體傳輸不可或缺的重要內(nèi)容,促進(jìn)了屏幕內(nèi)容編碼技術(shù)的發(fā)展。終端設(shè)備產(chǎn)生的屏幕視頻既包括自然圖像,也含有文字、圖表等人造內(nèi)容,往往由于自身的紋理及其邊緣有著比較特殊的特點(diǎn)而難以使用現(xiàn)存的幀內(nèi)預(yù)測(cè)模式進(jìn)行預(yù)測(cè)。JCT-VC引入的幀內(nèi)塊拷貝技術(shù)(intra block copy—intraBC),利用一幅圖片幀內(nèi)文字、圖片之間很強(qiáng)的相關(guān)性進(jìn)行預(yù)測(cè),從而大大提高了視頻編碼質(zhì)量。
屏幕內(nèi)容編碼;幀內(nèi)預(yù)測(cè);幀內(nèi)塊拷貝
隨著云處理技術(shù)的迅猛發(fā)展,現(xiàn)代社會(huì)對(duì)遠(yuǎn)程監(jiān)視、控制、計(jì)算機(jī)協(xié)同工作等的要求越來(lái)越高,單一媒體傳輸已經(jīng)不能滿足人們的使用需求,這些使得屏幕內(nèi)容編碼技術(shù)的應(yīng)用越來(lái)越廣泛。屏幕內(nèi)容編碼技術(shù)的應(yīng)用(如桌面共享,遠(yuǎn)程桌面等)可以實(shí)現(xiàn)當(dāng)前的數(shù)字設(shè)備與其他計(jì)算機(jī)終端的遠(yuǎn)程信息交互,并且可以遠(yuǎn)程操控其他計(jì)算機(jī)終端來(lái)解決當(dāng)前資源無(wú)法解決的問(wèn)題,從而實(shí)現(xiàn)廣泛的資源(包括軟件資源和硬件資源)共享[1]。
由于屏幕內(nèi)容的數(shù)據(jù)量十分巨大,例如終端設(shè)備是23寸1920×1080分辨率的顯示器的話,每個(gè)像素點(diǎn)有3個(gè)8位的顏色分量(也就是每個(gè)像素有24位數(shù)據(jù)),那么一幀屏幕圖像的數(shù)據(jù)為24×1920×1080÷8÷1024÷1024,即6MB。若使用的幀率是15幀/秒(這往往還不是視覺(jué)質(zhì)量較高的幀率),1秒內(nèi)產(chǎn)生數(shù)據(jù)為6×15=90MB。這是十分巨大的數(shù)據(jù)量,如果直接在當(dāng)前常用的10M/100M的網(wǎng)絡(luò)上傳輸,很有可能會(huì)引起網(wǎng)絡(luò)擁塞或者傳輸延時(shí),所以使用屏幕內(nèi)容視頻的高效的壓縮編碼是十分必要的[2]。因此,ITU-T VCEG和ISO/IEC MPEG標(biāo)準(zhǔn)組織與JCT-VC聯(lián)合推出了高效視頻編碼標(biāo)準(zhǔn)(High Efficiency Video Coding—HEVC,下面簡(jiǎn)稱HEVC)。而文字及圖形編碼使用HEVC中傳統(tǒng)幀內(nèi)編碼方式存在預(yù)測(cè)困難,同時(shí)一幀內(nèi)的文字和圖形之間具有極強(qiáng)的相關(guān)性,因此幀內(nèi)塊拷貝技術(shù)應(yīng)用在屏幕內(nèi)容的幀內(nèi)編碼中有著十分重要的作用。
衛(wèi)星、有線電視網(wǎng)絡(luò)的HD電視信號(hào),地面?zhèn)鬏斚到y(tǒng)中視頻內(nèi)容的采集和編輯系統(tǒng)、攝像機(jī)、安全應(yīng)用、因特網(wǎng)和移動(dòng)網(wǎng)絡(luò)的視頻、藍(lán)光光盤(pán)播放,以及實(shí)時(shí)對(duì)話應(yīng)用(諸如視頻聊天、視頻會(huì)議和遠(yuǎn)程監(jiān)控系統(tǒng)等)的大規(guī)模使用,對(duì)高清視頻傳輸?shù)囊笕找嫣岣撸琁TU-T VCEG和 ISO/IEC MPEG標(biāo)準(zhǔn)組織與JCT-VC聯(lián)合推出的最新的編碼標(biāo)準(zhǔn)HEVC標(biāo)準(zhǔn)為其提供了有力保障。
HEVC針對(duì)不同的內(nèi)容編碼可以使用幀間預(yù)測(cè)和幀內(nèi)預(yù)測(cè)方式來(lái)進(jìn)行。幀內(nèi)預(yù)測(cè)指利用與當(dāng)前塊相鄰的已經(jīng)解碼出來(lái)的邊界樣本來(lái)預(yù)測(cè)當(dāng)前塊,這減少了視頻中的空間冗余。在H.264/AVC中,4×4大小的編碼塊有9種預(yù)測(cè)模式,16×16的編碼塊有4種預(yù)測(cè)模式。為了更精準(zhǔn)地反應(yīng)紋理信息,在HEVC中預(yù)測(cè)模式增加到了35種,大大降低了預(yù)測(cè)誤差。幀間預(yù)測(cè)是指利用視頻時(shí)域的相關(guān)性,使用鄰近幀的已編碼的圖像像素來(lái)預(yù)測(cè)當(dāng)前幀圖像的像素,以達(dá)到有效去除視頻時(shí)間冗余的目的。每個(gè)幀間預(yù)測(cè)的預(yù)測(cè)單元都有一系列運(yùn)動(dòng)參數(shù),如運(yùn)動(dòng)矢量、參考圖像索引、參考圖像列表以及各種標(biāo)志位等。而這些參數(shù)要通過(guò)運(yùn)動(dòng)估計(jì)來(lái)得到。運(yùn)動(dòng)估計(jì)的運(yùn)動(dòng)搜索是最重要也是最耗時(shí)的一個(gè)環(huán)節(jié),編碼器往往采用快速搜索算法來(lái)進(jìn)行運(yùn)動(dòng)搜索。HEVC采用AMVP技術(shù)來(lái)確定起始搜索位置,在快速搜索算法中往往采用幾步搜索,每步只有最優(yōu)的一個(gè)或幾個(gè)位置才會(huì)進(jìn)入下一步,從而跟全搜索相比大大減少了搜索位置。
針對(duì)現(xiàn)在使用越來(lái)越頻繁的屏幕內(nèi)容,JCTVC提出了兩項(xiàng)新技術(shù):一是幀內(nèi)塊拷貝技術(shù),二是調(diào)色板模式。由于屏幕內(nèi)容中往往有重復(fù)的信息,幀內(nèi)塊拷貝技術(shù)對(duì)屏幕內(nèi)容編碼來(lái)說(shuō)是十分有效的編碼工具。調(diào)色板模式,這種模式對(duì)文字區(qū)域比較有效,由于文字區(qū)域內(nèi)容一般只有有限的顏色組成,使用相應(yīng)的基本色代替其本來(lái)的顏色相對(duì)來(lái)講可以節(jié)省很多碼率并且也不會(huì)有太大失真。
幀內(nèi)塊拷貝技術(shù)(intraBC)是為了屏幕內(nèi)容而研發(fā)的新工具[3]。最初提出幀內(nèi)運(yùn)動(dòng)補(bǔ)償只取左邊一個(gè)CTU或者取左邊一個(gè)CTU最右四列,并且取整色度的運(yùn)動(dòng)矢量(motion vector—MV),這樣就可以去除內(nèi)插濾波器,并使用指數(shù)Golomb來(lái)編碼其MV[4]。后經(jīng)進(jìn)一步發(fā)展,漸漸發(fā)展為幀內(nèi)塊拷貝技術(shù),其性能和復(fù)雜度取決于幀內(nèi)運(yùn)動(dòng)向量的變化范圍,最初只在當(dāng)前LCU(largest code unit)進(jìn)行搜索[5]??傮w來(lái)說(shuō),幀內(nèi)塊拷貝技術(shù)就是使用匹配的相鄰塊的已重構(gòu)區(qū)域來(lái)代替當(dāng)前區(qū)域的技術(shù)。由于幀內(nèi)塊拷貝技術(shù)清除了在文本區(qū)域和圖表區(qū)域多次重復(fù)出現(xiàn)的內(nèi)容冗余(如圖1所示),因此,它應(yīng)用在屏幕內(nèi)容編碼方面表現(xiàn)出了十分優(yōu)越的性能。在屏幕內(nèi)容序列中IntraBC平均節(jié)約2%-44%的Bit-rate。但同時(shí)也增加了編碼時(shí)間,因?yàn)樗阉饕淹瓿删幋a的區(qū)域來(lái)尋找匹配的塊。
圖1 sc_map視頻序列中混合自然圖像、文字、圖表的視頻圖像示例
IntraBC技術(shù)最早是基于H.264/AVC提出的,用于宏模塊的預(yù)測(cè)使用重構(gòu)圖像來(lái)預(yù)測(cè)當(dāng)前圖像,但是基于復(fù)雜度還有需要增加的存儲(chǔ)記憶量而放棄使用此技術(shù)[6]。后來(lái)基于HEVC提出了一個(gè)基于字典的查詢技術(shù),但是對(duì)于塊中不規(guī)則的圖形大大增加了其復(fù)雜度[7]。
3.1 一維MV的搜索
初期幀內(nèi)運(yùn)動(dòng)補(bǔ)償技術(shù)中使用一維運(yùn)動(dòng)矢量[8],主要采用以下技術(shù):
對(duì)于幀內(nèi)拷貝塊的參考?jí)K應(yīng)該完全在當(dāng)前LCU和左邊的N個(gè)LCU中,用此技術(shù)可以淘汰消耗巨大的線緩沖器,而僅需存儲(chǔ)左邊的N個(gè)LCU的像素來(lái)對(duì)當(dāng)前預(yù)測(cè)塊進(jìn)行參考,如圖2所示。
圖2 參考左2及當(dāng)前塊進(jìn)行預(yù)測(cè)
塊拷貝不使用插值計(jì)算,對(duì)于亮度及4:4:4的色度塊都使用整像素預(yù)測(cè)其運(yùn)動(dòng)矢量,并且它不允許參考?jí)K覆蓋當(dāng)前塊,也不允許參考?jí)K超過(guò)邊界,因此不需要使用邊界填充。
對(duì)于當(dāng)前塊而言,其參考?jí)K應(yīng)如圖2所示,正好是其右側(cè)的塊或正好位于其正上方,只有正好是水平的或垂直的幀內(nèi)運(yùn)動(dòng)矢量才是一維搜索。
3.2 二維運(yùn)動(dòng)矢量
雖然一維搜索復(fù)雜度比較低,但是較難找到其匹配的像素塊,所以使用二維運(yùn)動(dòng)矢量來(lái)尋找其參考像素塊,從而使其擁有更好的效果[9]。如圖3所示,二維運(yùn)動(dòng)矢量的IntraBC允許從當(dāng)前LCU和前一個(gè)LCU的任何位置來(lái)尋找其匹配的對(duì)應(yīng)參考像素塊。同時(shí)由于它會(huì)搜索所有它允許的區(qū)域,所以會(huì)大大增加其編碼性能,提升其質(zhì)量。
圖3 二維運(yùn)動(dòng)矢量
4.1 減少搜索塊算法
由于二維的IntraBC需要對(duì)全部像素對(duì)應(yīng)的塊進(jìn)行搜索,大大增加了其復(fù)雜度,使整個(gè)編碼過(guò)程的運(yùn)算時(shí)間大大增加,因此需要一定的快速算法來(lái)提高其效率。在提出2D運(yùn)動(dòng)矢量的同時(shí),也提出了相應(yīng)的快速算法[9]。
(1)由于IntraBC很少應(yīng)用于大的CU,所以在執(zhí)行的時(shí)候大于16×16的塊不進(jìn)行IntraBC的搜索。
(2)對(duì)于16×16的塊只進(jìn)行一維的垂直和水平方向的搜索。
(3)只在8×8的CU執(zhí)行二維IntraBC。
4.2 提前跳過(guò)IntraBC快速算法
由于IntraBC的應(yīng)用位于幀間預(yù)測(cè)和幀內(nèi)預(yù)測(cè)之后,[10]提出可以應(yīng)用前面的算法來(lái)對(duì)是否應(yīng)用IntraBC進(jìn)行預(yù)測(cè)。
(1)對(duì)于16×16以及8×8塊來(lái)說(shuō),如果幀內(nèi)的RDcost足夠小的話就不會(huì)應(yīng)用IntraBC的算法,而只需設(shè)定一個(gè)預(yù)值,如果計(jì)算幀內(nèi)的cost小于預(yù)值則跳過(guò)IntraBC的搜索。
(2)若16×16不適用IntraBC,那么其子塊的8×8區(qū)域只有10%~15%適用于幀內(nèi)塊拷貝模式,同時(shí)如果8×8塊相對(duì)平滑則也很少使用幀內(nèi)塊拷貝模式,而相對(duì)含有較高頻的信息如文字內(nèi)容的塊常被選用幀內(nèi)塊拷貝模式,因此如果16×16不是幀內(nèi)塊拷貝模式,同時(shí)其像素垂直和水平的活動(dòng)性小于閾值,則直接跳過(guò)幀內(nèi)塊拷貝模式。
4.3 減少搜索范圍大小
由于當(dāng)垂直塊拷貝矢量如果大于CU大小的時(shí)候,只有左側(cè)和左下區(qū)域會(huì)被用于當(dāng)前塊的參考,因此只使用左側(cè)及左下以及垂直的CU大小的距離作為其搜索矢量的大小,這樣大大減少了編碼所用的時(shí)間,降低了運(yùn)算的復(fù)雜度[11]。
4.4 快速搜索及搜索區(qū)域限制
當(dāng)搜索當(dāng)前塊以及左側(cè)塊時(shí),同時(shí)幀內(nèi)塊拷貝的大小要小于32×32,當(dāng)CU大小為16×16時(shí)只進(jìn)行一維的搜索,當(dāng)CU大小為8×8時(shí)使用一維和二維搜索;一維搜索只在相鄰塊不使用幀內(nèi)塊拷貝模式時(shí)執(zhí)行,在計(jì)算每個(gè)可能候選位置的RDcost之后可提前終止搜索,如果超過(guò)基本色種類的像素的百分比低于閾值,則不執(zhí)行幀內(nèi)塊拷貝搜索[12]。
4.5 幀內(nèi)塊拷貝的擴(kuò)展算法
4.5.1 線狀I(lǐng)ntraBC搜索
JCT-VC的 15次會(huì)議上提出了一種線狀(line-based)IntraBC[13]。它的核心思想是在比2N×2N更小的分塊上實(shí)行IntraBC。每一個(gè)2N×2N的塊均勻的分成2N×M或者M(jìn)×2N大小,被稱為線條(line)。每一個(gè)線條可以找到自己最優(yōu)預(yù)測(cè)并傳輸各種不同的DV。這種劃分雖然大大增加了計(jì)算的復(fù)雜度,但能大大提高圖片效果,減少Bit-rate。
4.5.2 減少IntraBC存儲(chǔ)帶寬
減少記憶帶寬的最新算法是:一個(gè)CTU被編碼完成后,計(jì)算它一共有多少像素是采用IntraBC和PLT算法的,如果總數(shù)超過(guò)500像素則定義這個(gè)CTU為IBC資源的CTU[14]。搜索IBC資源排除那些不完全符合的資源,剩下的關(guān)閉去除塊效應(yīng)處理和SAO,就可減少整個(gè)系統(tǒng)的存儲(chǔ)帶寬。
4.5.3 對(duì)稱IntraBC處理
由于屏幕內(nèi)容中有很多內(nèi)容如文字、圖表等信息是對(duì)稱的,所以針對(duì)對(duì)稱塊的處理最新的算法是:在2N×2N的區(qū)域選擇此塊是對(duì)稱幀內(nèi)塊拷貝還是普通的情況,若是普通情況就按照HEVC標(biāo)準(zhǔn)進(jìn)行處理,若是對(duì)稱幀內(nèi)塊拷貝則對(duì)稱的部分垂直或水平翻轉(zhuǎn)后作為參考?jí)K來(lái)使用[15]。
4.5.4 對(duì)IntraBC的部分區(qū)域預(yù)測(cè)
由于屏幕內(nèi)容有很多塊是突變的兩個(gè)部分或者多個(gè)部分,這使得IntraBC的編碼效率大大降低。采用對(duì)塊劃分區(qū)域進(jìn)行預(yù)測(cè)的方法來(lái)獲得更加精準(zhǔn)的預(yù)測(cè)信息,根據(jù)計(jì)算其內(nèi)容中的邊界值來(lái)分塊,并填充像素,預(yù)測(cè)其參考?jí)K,從而獲得不錯(cuò)的效果,減少其預(yù)測(cè)BD-rate[16]。
幀內(nèi)塊拷貝技術(shù)經(jīng)過(guò)多年發(fā)展,已日漸成熟,在屏幕內(nèi)容編碼中的地位日漸重要。它對(duì)于文字、圖表等內(nèi)容的預(yù)測(cè)編碼起到了十分重要的作用,可以大幅減少編碼后的傳輸數(shù)據(jù)量,使得視頻整體質(zhì)量得到顯著提升。同時(shí)各種快速算法的應(yīng)用也在一定程度上減少了預(yù)測(cè)消耗的時(shí)間,為應(yīng)用提供了更好的條件,從而使其應(yīng)用越來(lái)越廣泛。
[1]Gary J.Sullivan,Jens-Rainer Ohm,Woo-Jin Han and Thomas Wiegand.Overview of the High Efficiency Video Coding(HEVC)Standard[J].Circuits and Systems for Video Technology,IEEE Transactions on.2012:1649-1668.
[2]吳婧.桌面圖像序列編碼方法的研究[D].杭州:浙江大學(xué),2009.
[3]D.Flynn,J.Sole,T.Suzuki.Range Extensions Draft 4[R]. Document of Joint Collaborative Team on Video Coding. JCTVC-N1005,Vienna,AT,July 2013.
[4]ChaoPang,JoelSole,LiweiGuo,Marta.Non-RCE3:Pipeline Friendly Intra Motion Compensation[R].Document of Joint Collaborative Team on Video Coding. JCTVC-N0254,San Diego,USA,July 2013.
[5]E.Alshina,A.Alshin,S.Lee.AhG5:Intra block copy within one LCU[R].Document of Joint Collaborative Team on Video Coding.JCTVC-O0074,Suwon,KR,October 2013.
[6]S.-L.Yu and C.Chrysafis.New intra prediction using intra-macroblock motion compensation[R].May.2002.
[7]T.Lin,S.Wang,P.Zhang and K.Zhou.AHG8:P2M based dual coder extension of HEVC[R].Document of Joint Collaborative Team on Video Coding.JCTVC-L0303,Geneva,CH,Jan.2013.
[8]M.Budagavi and D.-K.Kwon.AHG8:Video coding using Intra motion compensation[R]//Document of Joint Collaborative Team on Video Coding.JCTVC-M0230,Incheon,KR,Apr.2013.
[9]C.Pang,J.Sole,L.Guo,M.Karczewicz and R.Joshi. Non-RCE3:Intra motion compensation with 2-D MVs[R].Document of Joint Collaborative Team on Video Coding.JCTVC-N0256,Vienna,AT,Aug.2013.
[10]Do-Kyoung Kwon.AHG5:Fast encoding using early skipping of Intra block copy(IntraBC)search[R].Document of Joint Collaborative Team on Video Coding. JCTVC-O0245,2013.
[11]B.Li,J.Xu,G.J.Sullivan.On Intra BC mode[R].Document of Joint Collaborative Team on Video Coding. JCTVC O0183,Geneva,CH,Oct.2013.
[12]Chao Pang,Joel Sole,Liwei Guo,Rajan Joshi,Marta Karczewicz.AhG5:Fast encoder search and search region restriction for intra block copying[R].Document of Joint Collaborative Team on Video Coding.JCTVC O0156,Geneva,CH,Oct.2013.
[13]C.C.Chen,T.S.Chang,R.L.Liao,W.H.Peng,H.M. Hang,C.L.Lin and F.D.Jou,.AHG8:Line-based Intra Block Copy[R].Document of Joint Collaborative Team on Video Coding.JCTVC-O0205,2013.
[14]Jani Lainema.AHG10:Memory bandwidth reduction for intra block copy[R].Document of Joint Collaborative Team on Video Coding.JCTVC-T0045,2015.
[15]KaiZhang,JichengAn,XianguoZhang,HanHuang,Shawmin Lei.SCCE1 Test 4.1:Symmetric intra block copy[R].Document of Joint Collaborative Team on Video Coding.JCTVC-R0116,2014.
[16]KaiZhang,JichengAn,XianguoZhang,HanHuang,Shawmin Lei.CE3 Test 1.2:Segmental prediction for intra block copy[R].Document of Joint Collaborative Team on Video Coding.JCTVC-S0107,2014.
Research on the Technology of Intra-block Copy of the High Efficiency Video Encoding
DOU Shi-peng
(North China University of Technology,Beijing 100144, China)
After a new generation of highly efficient video encoding standards was introduced by International Standards Organization,with the rapid development of requirements of video processing,the increasing popularization of cloud processing technology,the graphical interface of terminal equipment has become an increasing important content of multimedia transmission,which directly led to the development of the screen content encoding technology.The screen video produced by the terminal equipment includes natural images as well as text,graphics,and other manmade content,which is often difficult to use the existing intra prediction model to the predict the content,because of the existing frame's texture and edge's feature.The intra block copy—intraBC introduced by the JCT-VC use the strong correlation between the text and images in a picture frame,thus greatly improves the quality of video encoding.
screen content encoding;micro study;microlecture;distance education
TN919.8
A
1673-2022(2015)04-0027-04
2015-08-25
竇世鵬(1991-),男,河北邢臺(tái)人,碩士研究生,主要研究方向?yàn)樾乱淮咝б曨l編碼技術(shù)擴(kuò)展及快速算法。
河北軟件職業(yè)技術(shù)學(xué)院學(xué)報(bào)2015年4期