劉爭(zhēng)艷,李勁禾,李 絮
(阜陽(yáng)師范學(xué)院計(jì)算機(jī)與信息工程學(xué)院,安徽阜陽(yáng) 236037)
基于HEVC視頻編碼標(biāo)準(zhǔn)的并行解碼策略研究
劉爭(zhēng)艷,李勁禾,李 絮
(阜陽(yáng)師范學(xué)院計(jì)算機(jī)與信息工程學(xué)院,安徽阜陽(yáng) 236037)
將并行化策略引入到新一代HEVC視頻編碼的標(biāo)準(zhǔn)中,提出一種在解碼階段的熵片中應(yīng)用并行策略的算法。通過(guò)將每行最大編碼單元(LCU)作為一個(gè)熵片來(lái)編碼視頻,以波陣面并行的方式解碼多行LCU。算法在配置為12 Intel Xeon Cores、3.3 GHz的PC機(jī)上進(jìn)行了評(píng)估測(cè)試。其結(jié)果顯示,在視頻分辨率為1 920×1 080 p(53.1 fps)和2 560×1 600 (29.5 fps)引入并行化策略后的執(zhí)行速度與采用順序執(zhí)行時(shí)的執(zhí)行速度相比較有了顯著的提高,并且能夠達(dá)到很好的實(shí)時(shí)性效果。
視頻編解碼;HEVC;并行處理;高清視頻
隨著終端處理能力以及人們對(duì)多媒體數(shù)據(jù)體驗(yàn)的要求越來(lái)越高,4K視頻、3D藍(lán)光、高清電視等已經(jīng)逐漸成為視頻應(yīng)用的主流趨勢(shì)。而現(xiàn)有的H.264/AVC編碼標(biāo)準(zhǔn)的壓縮效率針對(duì)高清、超高清視頻的應(yīng)用需求已顯得力不從心。因此,國(guó)際電聯(lián)組織(ITU-T)和移動(dòng)視頻專家組(MPEG)成立了視頻編碼聯(lián)合小組(Joint Collaborative Team on Video Coding,JCT-VC)[1],已經(jīng)研究并制定新一代視頻壓縮標(biāo) 準(zhǔn) HEVC(HighEfficientVideoCoding,HEVC)。該標(biāo)準(zhǔn)已于2013年1月26日發(fā)布并正式成為國(guó)際標(biāo)準(zhǔn),并且JCT-VC小組已把相關(guān)技術(shù)集成到一個(gè)軟件代碼庫(kù)中,形成該標(biāo)準(zhǔn)的測(cè)試平臺(tái)HM。HEVC標(biāo)準(zhǔn)的提出主要面向高清電視(HDTV)以及視頻捕獲系統(tǒng)的應(yīng)用,提供從QVGA至1 080 p以至超高清電視(7 680×4 320)不同級(jí)別的視頻應(yīng)用。其核心目標(biāo)在于:在H.264/AVC High Profile的基礎(chǔ)上,壓縮效率提高1倍,即在保證相同視頻圖像質(zhì)量的前提下,視頻流的碼率減少50%[2-3]。HEVC同樣采用預(yù)測(cè)加變換的混合編碼結(jié)構(gòu),然而HEVC的編碼結(jié)構(gòu)更為靈活。其中,將編碼單元(CU)作為編碼的基本單元,類似于H.264的宏塊;將預(yù)測(cè)單元(PU)作為預(yù)測(cè)的基本單元,是在CU基礎(chǔ)上進(jìn)一步分割得到;將轉(zhuǎn)換單元(TU)作為變換的基本單元,更能適合不同圖像的內(nèi)容[3-5]。本文針對(duì)HEVC標(biāo)準(zhǔn)的特點(diǎn),在視頻解碼階段引入并行化策略以實(shí)現(xiàn)支持實(shí)時(shí)高清和近實(shí)時(shí)的4k標(biāo)準(zhǔn)畫(huà)面的PC平臺(tái)。
HEVC標(biāo)準(zhǔn)繼續(xù)采用之前H.264/AVC標(biāo)準(zhǔn)的混合編碼框架結(jié)構(gòu)[6-9]。其技術(shù)框架仍然基于以塊為單元的預(yù)測(cè)加變換的混合編碼框架。在此混合編碼結(jié)構(gòu)下,HEVC在對(duì)編解碼時(shí)每個(gè)編碼階段都進(jìn)行了大量的技術(shù)創(chuàng)新,其中包括多角度幀內(nèi)預(yù)測(cè),運(yùn)動(dòng)估計(jì)融合,基于大尺寸四叉樹(shù)塊的分割結(jié)構(gòu),高精度運(yùn)動(dòng)補(bǔ)償,自適應(yīng)環(huán)路濾波以及基于語(yǔ)意的熵編碼技術(shù)[8]。圖1描述了HEVC的基本框架。
圖1 HEVC解碼器的基本框架
相對(duì)于H.264/AVC標(biāo)準(zhǔn)來(lái)說(shuō),HEVC標(biāo)準(zhǔn)與其存在一個(gè)重要的差異就是幀編碼結(jié)構(gòu)不同。在HEVC中定義了一套新的圖像劃分語(yǔ)法單元,主要包括編碼單元(Coding Unit,CU)、預(yù)測(cè)單元(Prediction Unit,PU)和變換單元(Transform Unit,TU)。CU類似于H.264/AVC中的宏塊或子宏塊,但又略有不同。在H.264/AVC標(biāo)準(zhǔn)中,一個(gè)編碼單元的尺寸是從8×8至16×16,而在HEVC中規(guī)定了一個(gè)CU的尺寸范圍可以從8×8到64×64。從而可以為高清視頻圖像的有效表示提供有力支持。此外,為了更方便地表示CU,還定義了最大編碼單元(Largest coding unit,LCU)和最小編碼單元(Smallest coding unit,SCU)。LCU是一幀圖像劃分過(guò)程中的基本單位,而一個(gè)CU可以從其最大編碼單元的尺寸開(kāi)始,按照四叉樹(shù)的形式被不斷分割為更小的CU,直到達(dá)到最小編碼單元,其間分割的次數(shù)稱為深度。這樣可以利用LCU尺寸和分割深度值來(lái)表征一個(gè)CU的尺寸。為了降低重構(gòu)幀和原始幀像素之間的失真,HEVC技術(shù)標(biāo)準(zhǔn)中新增加了兩類新的濾波器:一類是自適應(yīng)環(huán)路濾波器(A-daptive Loop Filter,ALF)、一類是自適應(yīng)樣本偏置(Sample Adaptive Offset,SAO)。SAO是以圖像按四叉樹(shù)分割之后的亞區(qū)域?yàn)閱卧?,?duì)每個(gè)亞區(qū)域經(jīng)去塊濾波后的重構(gòu)像素進(jìn)行自適應(yīng)補(bǔ)償,以進(jìn)一步減少失真。ALF是對(duì)SAO處理過(guò)的重構(gòu)像素進(jìn)行濾波。這兩類濾波器的使用,進(jìn)一步提升了重構(gòu)幀的質(zhì)量。
2.1 片與塊級(jí)并行性分析
在以往的視頻編碼器H.264/AVC中,并行策略是基于片級(jí)或塊級(jí)之上的。在基于片級(jí)并行策略中,一幀被分成彼此獨(dú)立的幾個(gè)片。然后利用多個(gè)線程來(lái)并行處理獨(dú)立的片,利用這種方法可以達(dá)到在提高吞吐量的同時(shí)減少幀延遲的目的。然而,若將一幀劃分為多個(gè)片必然會(huì)引起編碼效率的顯著降低。原因是如下:首先,這種方法破壞了上下文模型的訓(xùn)練,無(wú)法跨越片的邊界來(lái)進(jìn)行上下文的選擇。因此,熵編碼效率并不高。其次,在預(yù)測(cè)階段,不能很好的利用相鄰片像素來(lái)進(jìn)行預(yù)測(cè)。最后,對(duì)于每片還需要在比特流中存在一個(gè)額外的片頭起始碼。
此外,在塊級(jí)中實(shí)現(xiàn)并行性是不依賴于幀中的多個(gè)片,也沒(méi)有相關(guān)的編碼損失。在幀內(nèi)編碼塊中,如H.264/AVC中的宏塊和HEVC中的最大編碼單元LCU是通過(guò)使用波陣面方法來(lái)滿足預(yù)測(cè)和濾波的需求,以此在并行中得到重建幀。但是,在熵解碼過(guò)程中不能在塊級(jí)層面進(jìn)行并行化處理,必須在整個(gè)幀中按順序執(zhí)行。然而,對(duì)于多個(gè)幀來(lái)說(shuō)可以并行進(jìn)行熵解碼。但是,這種并行方法需要幀緩沖來(lái)保持熵解碼的語(yǔ)法元素,并且只能通過(guò)減少幀重建和濾波階段的幀延遲來(lái)實(shí)現(xiàn)。
2.2 熵片
HEVC引入了一種新的編碼工具即熵片。熵片不同于常規(guī)的片,其本身已被設(shè)計(jì)為并行執(zhí)行以取代錯(cuò)誤恢復(fù)。在熵片和普通片中,每一個(gè)片開(kāi)始時(shí)執(zhí)行包括上下文模型變量和解碼引擎的初始化。其主要區(qū)別在于重建和濾波階段,在HEVC中使用熵片允許跨越片界使用相鄰塊中的數(shù)據(jù)。熵片的片頭數(shù)據(jù)要小于常規(guī)片頭數(shù)據(jù),因?yàn)樵贖EVC中僅僅發(fā)送視頻一幀中的第一片的頭部數(shù)據(jù)信息。
目前,熵片僅僅被看作熵解碼階段的一種并行性工具。有了熵片,多個(gè)線程可以利用塊的并行性來(lái)熵解碼同一幀,這樣有利于降低幀延遲。但是,熵解碼階段是脫離幀重建和濾波階段,所以一個(gè)大的幀緩沖仍需要存儲(chǔ)熵解碼中的數(shù)據(jù)。本文使用的方法中,在不降低并行性和編碼效率的前提下,幀緩沖是不需要將熵解碼與幀重建和濾波階段結(jié)合的。
把熵解碼與重建和過(guò)濾階段連接一起,熵解碼依賴性必須符合重建和過(guò)濾階段的依賴性。HEVC中的重建和過(guò)濾階段展示的波陣面的依賴性與其在H.264/AVC中所展示的相同,僅僅是編碼塊大小不同。波陣面依賴性把并行性限制到每排一塊。目前,根據(jù)LCU的固定數(shù)量或字節(jié)大小,可任意選擇每個(gè)幀內(nèi)熵片數(shù)量。這會(huì)導(dǎo)致不規(guī)則片狀與波陣面依賴性并不匹配。相反,要想匹配波陣面依賴性,必須要強(qiáng)制采用每行一個(gè)熵片的編碼方法。對(duì)分辨率為2 560×1 600和1 920×1080的視頻來(lái)說(shuō),使用每行一個(gè)熵片,亮度分量的BD率[2]損失率分別是5.4%和6.3%。使用每行一個(gè)熵片的編碼方法,使得LCU行之間的上下文傳播以波陣面方式出現(xiàn),但在HM基礎(chǔ)代碼中不會(huì)出現(xiàn)。實(shí)驗(yàn)仿真結(jié)果顯示,使用相同上下文傳播時(shí),同樣分辨率下的BD率的損失可以降到1.7%和1.3%。
圖2 解碼順序以及相應(yīng)的修改后的LCU像素(每個(gè)正方形代表4×4像素塊)
在本文的方法中,HEVC解碼器可以通過(guò)給每行LCU分配一個(gè)線程來(lái)達(dá)到并行。在每一個(gè)稱之為線解碼器中,逐一處理每一行中的LCU。熵解碼、重建、垂直邊緣解塊濾波器可以在當(dāng)前LCU中執(zhí)行。在HM3.0中,水平邊緣解塊必須超過(guò)垂直邊緣的解塊,因此,必須存在一個(gè)LCU延遲。反過(guò)來(lái),在解碼輸出圖像上操作時(shí),也延遲了SAO濾波器,以至于只有右邊較低邊緣被解碼時(shí)才能操作。SAO過(guò)濾器要在左上方LCU上操作,其能使用所有解碼后的圖像數(shù)據(jù)。此階段解碼順序以及相應(yīng)的一個(gè)修改后的LCU像素見(jiàn)圖2。
為了保證波陣面的依賴性,利用環(huán)線策略使線性解碼進(jìn)程得到同步。使用環(huán)線策略,任意數(shù)量的線程都能夠以線路交叉方式應(yīng)用于圖片解碼中。應(yīng)用環(huán)同步方法,能夠維持波陣面的依賴性。圖3顯示了使用4個(gè)解碼線程時(shí)波陣面的進(jìn)程。
圖3 使用4個(gè)解碼線程時(shí)波陣面的進(jìn)程
ALF是在編解碼環(huán)路內(nèi),位于Deblock和SAO之后,用于恢復(fù)重建圖像以達(dá)到重建圖像與原始圖像之間的均方差(MSE)最小。它是在獨(dú)立的通道為整個(gè)圖片執(zhí)行操作。在ALF中的LCU獨(dú)立,可以并行處理每個(gè)塊。在我們的操作中,為了減少高速緩存線沖突和同步開(kāi)銷,將8個(gè)連續(xù)的LCU分在一個(gè)單元組,由一個(gè)獨(dú)立核來(lái)處理。
4.1 實(shí)驗(yàn)配置
在HM3.0參考譯碼器[1]上,我們驗(yàn)證并行HEVC解碼器。針對(duì)當(dāng)前HEVC標(biāo)準(zhǔn)中最為苛刻的應(yīng)用場(chǎng)景的要求,選擇了高效的隨機(jī)存取“配置文件”。表1顯示了 JCT-VC主要的編碼參數(shù)。HEVC測(cè)試序列中所有視頻,使用HM 3.0參考編碼器的參數(shù)。由于空間原因,以及主要是對(duì)高分辨率的應(yīng)用程序感興趣,將結(jié)果按照A類(2 560×1 600)、B類(1 920×1 080)和S類(3 840×2 160)的順序呈現(xiàn)。在并行解碼實(shí)驗(yàn)中,本文使用了基于Intel Xeon X5680的處理器。編碼參數(shù)配置如表1,主要的硬件和系統(tǒng)參數(shù)設(shè)置如表2。
4.2 加速測(cè)試
表1 編碼參數(shù)設(shè)置
圖4顯示了所研究的3個(gè)順序級(jí)別下的平均加速度。平均加速度代表著各個(gè)順序在4種不同QP值下各執(zhí)行5次后的平均加速度。各個(gè)順序的加速度最多偏離平均值的6%。加速曲線顯示,核心數(shù)在4核的時(shí)候,并行效率可以達(dá)到82%,可以獲得相對(duì)較高的效率。而當(dāng)核心數(shù)達(dá)到12核的時(shí)候,并行效率下降到53%。另外,分辨率越高,加速度就越大。
圖4 三類順序級(jí)別下的平均加速度
表2 實(shí)驗(yàn)硬軟件系統(tǒng)設(shè)置
4.3 執(zhí)行配置文件和性能分析
圖5 A類序列的執(zhí)行時(shí)間分析
圖5顯示了順序執(zhí)行、波陣面部分(熵解碼(ED)、重構(gòu)(REC)、去塊濾波(DF)、SAO以及ALF的平均執(zhí)行時(shí)間。從圖中可以看出對(duì)于十二核來(lái)說(shuō),整個(gè)執(zhí)行時(shí)間分別是19%、63%和18%。由于其大規(guī)模并行特點(diǎn),ALF部分隨著線程數(shù)量的增加呈直線減少。而波陣面部分也會(huì)下降,但最終趨于飽和。對(duì)于順序部分,主要由字節(jié)流解析和頭部解碼組成,其數(shù)保持不變。但是根據(jù)阿姆達(dá)爾定律可知,這將會(huì)帶來(lái)整體執(zhí)行時(shí)間的增加。
本文提出了并行化策略在新一代視頻編碼標(biāo)準(zhǔn)HEVC中的應(yīng)用,并對(duì)其進(jìn)行評(píng)估。所提的策略中具有幾個(gè)理想化的特性。首先,它在多核處理器上實(shí)現(xiàn)了良好的擴(kuò)展效果。其次,可以根據(jù)硬件的處理能力和性能要求來(lái)選擇線性解碼器的數(shù)量。第三,使用多核增加了吞吐量的同時(shí)降低了幀延遲,這樣既能適應(yīng)低延遲又能適應(yīng)高吞吐量的應(yīng)用場(chǎng)景。
[1]Itu T.Joint collaborative team on video coding[EB/ OL].(2011-07-20)[2015-01-06].http://www.itu.int/en/ITU-T/studygroups/com16/video/Pages/jctvc.aspx.
[2]蔡曉霞,崔巖松,鄧中亮,等.下一代視頻編碼標(biāo)準(zhǔn)關(guān)鍵技術(shù)[J].電視技術(shù),2012,36(2):80-84.
[3]Sullivan G J,Ohm J,Han W,et al.Overview of the high efficiency video coding(HEVC)standard[J].Circuits and Systems for Video Technology,IEEE Transactions on,2012,22(12):1649-1668.
[4]雷海軍,楊忠旺,陳 驍,等.一種快速HEVC編碼單元決策算法[J].計(jì)算機(jī)工程,2014,40(3):270-273.
[5]Wiegand T,Ohm J R,Sullivan G J,et al.Special section on the joint call for proposals on high efficiency video coding(HEVC)standardization[J].Circuits and Systems for Video Technology,IEEE Transactions on,2010,20(12):1661-1666.
[6]夏 齡,舒 濤.一種H.264/AVC視頻編碼并行算法[J].計(jì)算機(jī)工程,2013,39(4):314-317.
[7]朱秀昌,李 欣,陳 杰.新一代視頻編碼標(biāo)準(zhǔn)——HEVC[J].南京郵電大學(xué)學(xué)報(bào)(自然科學(xué)版),2013,33(3):1-11.
[8]夏 齡,舒 濤.一種H.264/AVC視頻編碼并行算法[J].計(jì)算機(jī)工程,2013,39(4):314-317.
[9]劉爭(zhēng)艷,李 絮,陳 蘊(yùn).基于二維映射關(guān)系的視頻信息隱藏算法[J].計(jì)算機(jī)工程,2010,36(22):225-227.
Research on parallel decoding strategy based on HEVC video coding standard
LIU Zheng-yan,LI Jin-he,LI Xu
(School of Computer and Information Engineering,F(xiàn)uyang Teachers College,F(xiàn)uyang Anhui236041,China)
The parallel strategy is introduced to a new generation of HEVC video coding standard.A decoding stage used in the entropy in the parallel strategy algorithm is proposed.The maximum per line coding unit(LCU)as entropy to video coding,the wave front parallel manner decode multi line LCU.Tests carried out to evaluate the algorithm in the configuration for the PC Intel 12 Xeon cores,3.3 GHz,The results show that the execution speed in video resolution is 1 920×1 080 p(53.1 fps),and 2 560× 1 600(29.5 fps)after the introduction of the parallel strategy execution speed when compared with the sequential execution has been significantly improved,and can achieve real-time effect.
video codec;HEVC;parallel processing;HD video
TP311.52
:A
:1004-4329(2015)01-054-04
2014-05-20
安徽省教育廳自然科學(xué)基金項(xiàng)目(KJ2013Z259);阜陽(yáng)師范學(xué)院自然科學(xué)基金項(xiàng)目(2013FSKJ02ZD,2014FSKJ09);大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計(jì)劃項(xiàng)目(FS201310371115);全國(guó)統(tǒng)計(jì)科學(xué)研究重點(diǎn)項(xiàng)目(2014LZ32)資助。
劉爭(zhēng)艷(1981-),男,碩士,講師。研究方向:視頻編碼與圖像處理。