許珊珊,馬幼鳴,顧長海
(1.北京理工大學(xué) 信息與電子學(xué)院,北京100081;2.北京中盛益華科技有限公司,北京 100098)
HEVC并行解碼器設(shè)計(jì)
許珊珊1,馬幼鳴1,顧長海2
(1.北京理工大學(xué) 信息與電子學(xué)院,北京100081;2.北京中盛益華科技有限公司,北京 100098)
新一代視頻編碼標(biāo)準(zhǔn)HEVC(High Efficiency Video Coding)主要面向高清及超高清視頻編碼,壓縮效率相比之前的編碼標(biāo)準(zhǔn)H.264有較大提高。但壓縮效率的提高必然會帶來計(jì)算的復(fù)雜化,為提高HEVC的解碼效率,降低時(shí)延,提出了一種并行解碼器架構(gòu)。該并行解碼器的設(shè)計(jì)是基于HEVC中熵片(Entropy slice)和波前并行處理(Wavefront Parallel Processing,WPP)技術(shù)的引入以及濾波器(Deblocking Filter)無相關(guān)性的特點(diǎn)。實(shí)驗(yàn)結(jié)果表明,該并行解碼器能夠充分利用硬件資源,提高解碼效率。
HEVC;并行化;熵片;波前并行處理;濾波
High Efficiency Video Coding(HEVC)是由視頻編碼聯(lián)合協(xié)作小組(Joint Collaborative Team on Video Coding,JCT-VC)制定的新一代視頻編碼標(biāo)準(zhǔn)[1],其目的是將碼率相較H.264/AVC High Profile降低50%。HEVC最典型的應(yīng)用是編碼4K超高清分辨率視頻,同時(shí)也支持其他普通高清視頻。
2010年JCT正式發(fā)出提案征集[2],并在同年4月確定HEVC作為標(biāo)準(zhǔn)名稱,公布測試軟件HM(HEVC Model)和標(biāo)準(zhǔn)草案文本。此后舉行了多次JCT會議,對HEVC的技術(shù)內(nèi)容進(jìn)行不斷改進(jìn)、增刪和完善。2013年1月完成了HEVC的FD(Final Draft)版,并經(jīng)表決通過成為正式國際標(biāo)準(zhǔn)。
HEVC采用與H.264相同的混合編碼框架[1],圖像幀的編碼模式主要有幀內(nèi)和幀間兩種方式。幀內(nèi)編碼包括預(yù)測、變換、量化和熵編碼等,幀間編碼包括運(yùn)動估計(jì)、運(yùn)動補(bǔ)償、變換、量化和熵編碼等。在此編碼框架下,HEVC的創(chuàng)新主要有:基于大尺寸四叉樹塊的編碼結(jié)構(gòu),多角度幀內(nèi)預(yù)測技術(shù)、自適應(yīng)環(huán)路濾波技術(shù)等。
HEVC依然采用H.264所采用的分塊編碼方式,定義了編碼塊(Coding Tree Blocks,CTB)的概念,CTB的大小可以為16×16,32×32和64×64。CTB可以按照四叉樹的形式進(jìn)一步劃分為編碼單元CU(Coding Unit)。CU又可以被進(jìn)一步劃分為預(yù)測單元PU(Prediction Unit)和變換單元TU(Transform Unit)。
HEVC的幀內(nèi)預(yù)測技術(shù)和H.264類似,采用多方向幀內(nèi)預(yù)測方式消除圖像的空間冗余。為了提高幀內(nèi)預(yù)測的準(zhǔn)確性,HEVC已將H.264中的8種預(yù)測方向擴(kuò)張到33種。HEVC中的去塊效應(yīng)濾波器(Deblocking Filter)在H.264的基礎(chǔ)上增加了自適應(yīng)采樣點(diǎn)補(bǔ)償濾波(Sample Adaptive Offset,SAO)來減少重建圖像的失真。
2.1 Tile
HEVC在slice的基礎(chǔ)上引入Tile的概念[3]。Tile被定義為由圖像中垂直和水平邊界的交點(diǎn)所分割得到的矩形區(qū)域,如圖1所示。1幀圖像中的各個Tile在編碼時(shí)共享頭信息,每個Tile都是獨(dú)立可解碼的。在支持Tile的同時(shí),HEVC同樣支持Slice處理。在同1幅圖像中,Slice和Tile可同時(shí)使用,且兩者的分割互不干擾。1個Slice里可以有若干個Tile。
圖1 Tile分割示意圖
2.2 波前并行處理(WPP)
在HEVC 中,Tile 的引入使并行處理得以實(shí)現(xiàn)。但是,這種機(jī)制的引入在一定程度上是以提高編碼的計(jì)算復(fù)雜度為代價(jià)的。這是由于在Tile處理過程中,邊界間的預(yù)測依賴性被破壞,同時(shí)熵編碼中用到的上下文模型需在每個Tile中都進(jìn)行初始化,這些都在一定程度上對碼率造成影響。為了解決這些問題,波前并行處理(Wavefront Parallel Processing,WPP)技術(shù)[3]被引入HEVC 標(biāo)準(zhǔn)中。波前處理是一種在不需要破壞預(yù)測依賴性前提下實(shí)現(xiàn)并行編解碼的技術(shù)。當(dāng)采用波前并行處理時(shí),1個slice被分成若干行CTB。第一行CTB按正常方式處理,當(dāng)?shù)谝恍兄杏?個CTB完成處理時(shí),開始并行處理第二行中的CTB,當(dāng)?shù)诙兄刑幚硗?個CTB中時(shí),再開始并行處理第三行中的CTB,以此類推,如圖2所示。需要完成上一行的2個CTB處理是因?yàn)閹瑑?nèi)預(yù)測和運(yùn)動矢量預(yù)測是基于當(dāng)前CTB的上側(cè)和左側(cè)CTB實(shí)現(xiàn)的。熵編碼參數(shù)的初始化所需要的信息是從這兩個完全編碼的CTB中得到的。WPP技術(shù)比Tile技術(shù)能提供更好的壓縮效率,并且可以避免由于Tile的引入而造成的人為視覺效果。
圖2 波前并行處理示意圖
2.3 去塊效應(yīng)濾波器(Deblocking Filter)
去塊效應(yīng)濾波的作用是,消除經(jīng)反量化和反變化后重建圖像中由于預(yù)測誤差產(chǎn)生的塊效應(yīng),從而一方面改善圖像的主觀質(zhì)量,另一方面減少預(yù)測誤差[4]。
HEVC中的去塊效應(yīng)濾波包含對垂直邊界的水平濾波和對水平邊界的垂直濾波兩部分。與H.264/AVC中4×4大小的濾波塊不同,HEVC中濾波塊的大小為8×8。濾波步驟如下[5]。
1)對垂直邊界進(jìn)行水平濾波。
(1)首先計(jì)算8×8濾波塊中所有PU和TU的BS(Boundary Strength);
(2)如果BS>0,則對靠近邊界的4個像素點(diǎn)判斷其濾波模式,濾波模式[5]有weak filter,strong filter和no filter這3種,然后根據(jù)相應(yīng)的濾波模式對其濾波。
2)對水平邊界進(jìn)行垂直濾波,濾波過程與水平濾波類似[6]。
8×8單元及邊界示意圖如圖3所示。
圖3 8×8單元其邊界示意圖
濾波過程最多能改變3個像素點(diǎn)的值,如圖中的A55,A56,A57,A65,A66,A67,A75,A76,A77可能被修改。如圖3所示濾波塊的大小為8×8[7],因此在對垂直邊界的水平濾波過程中,塊與塊之間并無數(shù)據(jù)重疊,即各個濾波塊之間的數(shù)據(jù)沒有依賴性,因此對各個濾波塊的水平濾波可以并行進(jìn)行。
對垂直邊界的水平濾波有可能改變A55,A56,A57,A65,A66,A67,A75,A76,A77的值,而對水平邊界的垂直濾波會用到這些數(shù)據(jù),即垂直邊界的水平濾波后的輸出數(shù)據(jù)是水平邊界的垂直濾波的輸入數(shù)據(jù),因此對水平邊界的垂直濾波需在對垂直邊界的水平濾波完成后進(jìn)行[8]。
此論文中將HEVC解碼分為兩部分,第一部分為pixel decoding,即從entropy decoding到Deblocking filter之前的解碼過程。第二部分為Deblocking filter。解碼流程如圖4所示。本文分別對這兩部分做了并行化設(shè)計(jì)。
圖4 HEVC解碼器框圖
3.1 Pixel decoding并行設(shè)計(jì)
因?yàn)閃PP技術(shù)比Tile技術(shù)能提供更好的壓縮效率,并且可以避免由于Tile的引入而造成的人為視覺效果的特點(diǎn),本文利用HEVC中的WPP技術(shù)設(shè)計(jì)并行解碼器結(jié)構(gòu)。在多線程方面,本文采用線程池(Thread Pool)技術(shù)[9]。利用線程池可以減少創(chuàng)建和銷毀線程的次數(shù),每個工作線程都可以被重復(fù)利用,可執(zhí)行多個任務(wù)。并行解碼示意圖如圖5所示。
圖5 Pixel decoding并行設(shè)計(jì)圖
每一行中,解碼CTB的順序?yàn)閺淖笙蛴?,第N行CTB進(jìn)行解碼的觸發(fā)條件為第N-1行已經(jīng)解碼完2個CTB。然后該行CTB便進(jìn)入任務(wù)隊(duì)列,等待工作線程對其解碼。由于數(shù)據(jù)依賴性的特點(diǎn),線程解碼第N行第M個CTB的觸發(fā)條件為第N-1行第M+2個CTB已經(jīng)解碼完畢。線程解碼完一行CTB后,即轉(zhuǎn)入任務(wù)隊(duì)列中的其他行CTB進(jìn)行解碼。
3.2 Deblocking Filter并行設(shè)計(jì)
每一行CTB的Pixel Decoding過程結(jié)束后,即可進(jìn)入Deblocking Filter階段。根據(jù)圖2所示數(shù)據(jù)依賴性的特點(diǎn),第N-1行垂直邊界的水平濾波輸出數(shù)據(jù)會影響到第N行水平邊界的垂直濾波輸入數(shù)據(jù),因此第N行水平邊界的垂直濾波需在第N-1行垂直邊界的水平濾波完成后進(jìn)行。
線程執(zhí)行步驟為:每個線程首先對第N行CTB的垂直邊界進(jìn)行水平濾波,完成后線程進(jìn)入等待狀態(tài),使線程結(jié)束等待狀態(tài)的條件為第N-1行CTB的垂直邊界水平濾波完成,進(jìn)而觸發(fā)線程對第N行CTB的水平邊界做垂直濾波。Deblocking Filter的并行設(shè)計(jì)圖如圖6所示。
圖6 Deblocking Filter并行設(shè)計(jì)圖
此論文中提出的HEVC并行解碼器架構(gòu)是在測試軟件HM-9.0的基礎(chǔ)上改進(jìn)得到的。實(shí)驗(yàn)測試了用HM進(jìn)行解碼的幀率(Frame Per Second,F(xiàn)PS)以及本文中提出的并行解碼器進(jìn)行解碼的幀率。
4.1 測試環(huán)境
HEVC主要面向高清及超高清視頻的編碼,因此此次實(shí)驗(yàn)所用碼流均為1 920×1 080和2 560×1 600超高清碼流。測試軟件為HM-9.0和本文提出的基于HM-9.0改進(jìn)的并行解碼器。編譯環(huán)境為Visual Studio 2010,release模式。測試環(huán)境如表1所示。
表1 測試環(huán)境表
本文中提出的并行解碼器利用了HEVC中的WPP技術(shù),因此實(shí)驗(yàn)所用碼流必須支持WPP,此次實(shí)驗(yàn)所用碼流均為用測試軟件HM編碼得到的。主要編碼參數(shù)值如表2所示。
表2 編碼參數(shù)表
4.2 測試結(jié)果
本文中定義了加速比來測試并行解碼器性能
(1)
式中:FPSprposed為利用改進(jìn)后的解碼器解碼所得的幀率;FPSorig為利用HM-9.0解碼所得的幀率。每次解碼得到的幀率可能會稍有偏差,因此此次實(shí)驗(yàn)中對每個碼流解碼10次,取幀率的平均值來計(jì)算加速比。實(shí)驗(yàn)結(jié)果如表3所示。
表3 實(shí)驗(yàn)結(jié)果表
本文提出了一種HEVC并行解碼器結(jié)構(gòu)。此并行解碼器包含Pixel decoding和Deblocking filter兩個部分的并行,Pixel decoding的并行是以HEVC中的WPP技術(shù)為基礎(chǔ)的,Deblocking filter的并行則利用了濾波數(shù)據(jù)的無相關(guān)性。實(shí)驗(yàn)表明,本文設(shè)計(jì)的HEVC并行解碼器可以提高解碼速度,降低時(shí)延。使用者可以根據(jù)處理器的核心數(shù)量來選擇合適的線程數(shù),以達(dá)到較高的解碼效率,充分利用硬件資源。
[1]蔡曉霞,崔巖松,鄧中亮,等.下一代視頻編碼標(biāo)準(zhǔn)關(guān)鍵技術(shù)[J].電視技術(shù),2012,36(2):80-84.
[2]劉昱,胡曉爽,段繼忠.新一代視頻編碼技術(shù)HEVC算法分析及比較[J].電視技術(shù),2012,36(20):45-49.
[3]SULLIVAN G J,OHM J,HAN W J,et al.Overview of the high efficiency video coding (HEVC)standard[J].IEEE Trans.Circuits and Systems for Video Technology,2012,22(12):1649-1668.
[4]NORKIN A,BJONTEGAARD G,F(xiàn)ULDSETH A,et al.HEVC deblocking filter[J].IEEE Trans.Circuits and Systems for Video Technology,2012,22(12):1746-1754.
[5]CHI C C,ALVAREZ-MESA M,LUCAS J,et al.Parallel HEVC decoding on multi-and many-core architectures[J].Journal of Signal Processing Systems,2013,71(3):247-260.
[6]KOTRA A M,RAULET M,DEFORGES O.Comparison of different parallel implementations for deblocking filter of HEVC[C]//Proc.2013 IEEE International Conference on Acoustics, Speech and Signal Processing(ICASSP 2013).[S.l.]:IEEE Press,2013:2721-2725.
[7]ALVAREZ-MESA M,CHI C C,JUURLINK B,et al.Parallel video decoding in the emerging HEVC standard[C]//Proc.2012 IEEE International Conference on Acoustics,Speech and Signal Processing(ICASSP 2012).[S.l.]:IEEE Press,2012:1545-1548.
[8]CHI C C,ALVAREZ-MESA M,JUURLINK B,et al.Parallel scalability and efficiency of HEVC parallelization approaches[J].IEEE Trans.Circuits and Systems for Video Technology,2012,22(12):1827-1838.
[9]ALVAREZ-MESA M,CHI C C,JUURLINK B, et al.Parallel video decoding in the emerging HEVC standard[C]//Proc.2012 IEEE International Conference on Acoustics,Speech and Signal Processing(ICASSP 2012).[S.l.]:IEEE Press,2012:1545-1548.
責(zé)任編輯:時(shí) 雯
Parallel HEVC Decoder Design
XU Shanshan1,MA Youming1,GU Changhai2
(1.SchoolofInformationandElectronics,BeijingInstituteofTechnology,Beijing100081,China;2.BeijingCsvisionLtd.,Beijing100098,China)
HEVC(High Efficiency Video Coding) is the latest video coding standard.It aims at the high definition video and the ultra high definition video and its compression efficiency increased significantly compared with H.264 .But the increase of the compression efficiency can result in more complex operation.To increase the decoding efficiency, a parallel optimization algorithm is proposed in this paper.The parallel architecture is based on the entropy slice ,WPP and dependent data of deblocking filter in HEVC.The experimental result indicates that the parallel HEVC decoder can increase the decoding efficiency significantly.
HEVC;parallelization;entropy slice;WPP;deblocking filter
TN919.8
A
10.16280/j.videoe.2015.05.005
【本文獻(xiàn)信息】許珊珊,馬幼鳴,顧長海.HEVC并行解碼器設(shè)計(jì)[J].電視技術(shù),2015,39(5).