許珊珊,馬幼鳴,顧長海
(1.北京理工大學 信息與電子學院,北京100081;2.北京中盛益華科技有限公司,北京 100098)
HEVC并行解碼器設計
許珊珊1,馬幼鳴1,顧長海2
(1.北京理工大學 信息與電子學院,北京100081;2.北京中盛益華科技有限公司,北京 100098)
新一代視頻編碼標準HEVC(High Efficiency Video Coding)主要面向高清及超高清視頻編碼,壓縮效率相比之前的編碼標準H.264有較大提高。但壓縮效率的提高必然會帶來計算的復雜化,為提高HEVC的解碼效率,降低時延,提出了一種并行解碼器架構。該并行解碼器的設計是基于HEVC中熵片(Entropy slice)和波前并行處理(Wavefront Parallel Processing,WPP)技術的引入以及濾波器(Deblocking Filter)無相關性的特點。實驗結果表明,該并行解碼器能夠充分利用硬件資源,提高解碼效率。
HEVC;并行化;熵片;波前并行處理;濾波
High Efficiency Video Coding(HEVC)是由視頻編碼聯合協作小組(Joint Collaborative Team on Video Coding,JCT-VC)制定的新一代視頻編碼標準[1],其目的是將碼率相較H.264/AVC High Profile降低50%。HEVC最典型的應用是編碼4K超高清分辨率視頻,同時也支持其他普通高清視頻。
2010年JCT正式發出提案征集[2],并在同年4月確定HEVC作為標準名稱,公布測試軟件HM(HEVC Model)和標準草案文本。此后舉行了多次JCT會議,對HEVC的技術內容進行不斷改進、增刪和完善。2013年1月完成了HEVC的FD(Final Draft)版,并經表決通過成為正式國際標準。
HEVC采用與H.264相同的混合編碼框架[1],圖像幀的編碼模式主要有幀內和幀間兩種方式。幀內編碼包括預測、變換、量化和熵編碼等,幀間編碼包括運動估計、運動補償、變換、量化和熵編碼等。在此編碼框架下,HEVC的創新主要有:基于大尺寸四叉樹塊的編碼結構,多角度幀內預測技術、自適應環路濾波技術等。
HEVC依然采用H.264所采用的分塊編碼方式,定義了編碼塊(Coding Tree Blocks,CTB)的概念,CTB的大小可以為16×16,32×32和64×64。CTB可以按照四叉樹的形式進一步劃分為編碼單元CU(Coding Unit)。CU又可以被進一步劃分為預測單元PU(Prediction Unit)和變換單元TU(Transform Unit)。
HEVC的幀內預測技術和H.264類似,采用多方向幀內預測方式消除圖像的空間冗余。為了提高幀內預測的準確性,HEVC已將H.264中的8種預測方向擴張到33種。HEVC中的去塊效應濾波器(Deblocking Filter)在H.264的基礎上增加了自適應采樣點補償濾波(Sample Adaptive Offset,SAO)來減少重建圖像的失真。
2.1 Tile
HEVC在slice的基礎上引入Tile的概念[3]。Tile被定義為由圖像中垂直和水平邊界的交點所分割得到的矩形區域,如圖1所示。1幀圖像中的各個Tile在編碼時共享頭信息,每個Tile都是獨立可解碼的。在支持Tile的同時,HEVC同樣支持Slice處理。在同1幅圖像中,Slice和Tile可同時使用,且兩者的分割互不干擾。1個Slice里可以有若干個Tile。

圖1 Tile分割示意圖
2.2 波前并行處理(WPP)
在HEVC 中,Tile 的引入使并行處理得以實現。但是,這種機制的引入在一定程度上是以提高編碼的計算復雜度為代價的。這是由于在Tile處理過程中,邊界間的預測依賴性被破壞,同時熵編碼中用到的上下文模型需在每個Tile中都進行初始化,這些都在一定程度上對碼率造成影響。為了解決這些問題,波前并行處理(Wavefront Parallel Processing,WPP)技術[3]被引入HEVC 標準中。波前處理是一種在不需要破壞預測依賴性前提下實現并行編解碼的技術。當采用波前并行處理時,1個slice被分成若干行CTB。第一行CTB按正常方式處理,當第一行中有2個CTB完成處理時,開始并行處理第二行中的CTB,當第二行中處理完2個CTB中時,再開始并行處理第三行中的CTB,以此類推,如圖2所示。需要完成上一行的2個CTB處理是因為幀內預測和運動矢量預測是基于當前CTB的上側和左側CTB實現的。熵編碼參數的初始化所需要的信息是從這兩個完全編碼的CTB中得到的。WPP技術比Tile技術能提供更好的壓縮效率,并且可以避免由于Tile的引入而造成的人為視覺效果。

圖2 波前并行處理示意圖
2.3 去塊效應濾波器(Deblocking Filter)
去塊效應濾波的作用是,消除經反量化和反變化后重建圖像中由于預測誤差產生的塊效應,從而一方面改善圖像的主觀質量,另一方面減少預測誤差[4]。
HEVC中的去塊效應濾波包含對垂直邊界的水平濾波和對水平邊界的垂直濾波兩部分。與H.264/AVC中4×4大小的濾波塊不同,HEVC中濾波塊的大小為8×8。濾波步驟如下[5]。
1)對垂直邊界進行水平濾波。
(1)首先計算8×8濾波塊中所有PU和TU的BS(Boundary Strength);
(2)如果BS>0,則對靠近邊界的4個像素點判斷其濾波模式,濾波模式[5]有weak filter,strong filter和no filter這3種,然后根據相應的濾波模式對其濾波。
2)對水平邊界進行垂直濾波,濾波過程與水平濾波類似[6]。
8×8單元及邊界示意圖如圖3所示。

圖3 8×8單元其邊界示意圖
濾波過程最多能改變3個像素點的值,如圖中的A55,A56,A57,A65,A66,A67,A75,A76,A77可能被修改。如圖3所示濾波塊的大小為8×8[7],因此在對垂直邊界的水平濾波過程中,塊與塊之間并無數據重疊,即各個濾波塊之間的數據沒有依賴性,因此對各個濾波塊的水平濾波可以并行進行。
對垂直邊界的水平濾波有可能改變A55,A56,A57,A65,A66,A67,A75,A76,A77的值,而對水平邊界的垂直濾波會用到這些數據,即垂直邊界的水平濾波后的輸出數據是水平邊界的垂直濾波的輸入數據,因此對水平邊界的垂直濾波需在對垂直邊界的水平濾波完成后進行[8]。
此論文中將HEVC解碼分為兩部分,第一部分為pixel decoding,即從entropy decoding到Deblocking filter之前的解碼過程。第二部分為Deblocking filter。解碼流程如圖4所示。本文分別對這兩部分做了并行化設計。

圖4 HEVC解碼器框圖
3.1 Pixel decoding并行設計
因為WPP技術比Tile技術能提供更好的壓縮效率,并且可以避免由于Tile的引入而造成的人為視覺效果的特點,本文利用HEVC中的WPP技術設計并行解碼器結構。在多線程方面,本文采用線程池(Thread Pool)技術[9]。利用線程池可以減少創建和銷毀線程的次數,每個工作線程都可以被重復利用,可執行多個任務。并行解碼示意圖如圖5所示。

圖5 Pixel decoding并行設計圖
每一行中,解碼CTB的順序為從左向右,第N行CTB進行解碼的觸發條件為第N-1行已經解碼完2個CTB。然后該行CTB便進入任務隊列,等待工作線程對其解碼。由于數據依賴性的特點,線程解碼第N行第M個CTB的觸發條件為第N-1行第M+2個CTB已經解碼完畢。線程解碼完一行CTB后,即轉入任務隊列中的其他行CTB進行解碼。
3.2 Deblocking Filter并行設計
每一行CTB的Pixel Decoding過程結束后,即可進入Deblocking Filter階段。根據圖2所示數據依賴性的特點,第N-1行垂直邊界的水平濾波輸出數據會影響到第N行水平邊界的垂直濾波輸入數據,因此第N行水平邊界的垂直濾波需在第N-1行垂直邊界的水平濾波完成后進行。
線程執行步驟為:每個線程首先對第N行CTB的垂直邊界進行水平濾波,完成后線程進入等待狀態,使線程結束等待狀態的條件為第N-1行CTB的垂直邊界水平濾波完成,進而觸發線程對第N行CTB的水平邊界做垂直濾波。Deblocking Filter的并行設計圖如圖6所示。

圖6 Deblocking Filter并行設計圖
此論文中提出的HEVC并行解碼器架構是在測試軟件HM-9.0的基礎上改進得到的。實驗測試了用HM進行解碼的幀率(Frame Per Second,FPS)以及本文中提出的并行解碼器進行解碼的幀率。
4.1 測試環境
HEVC主要面向高清及超高清視頻的編碼,因此此次實驗所用碼流均為1 920×1 080和2 560×1 600超高清碼流。測試軟件為HM-9.0和本文提出的基于HM-9.0改進的并行解碼器。編譯環境為Visual Studio 2010,release模式。測試環境如表1所示。

表1 測試環境表
本文中提出的并行解碼器利用了HEVC中的WPP技術,因此實驗所用碼流必須支持WPP,此次實驗所用碼流均為用測試軟件HM編碼得到的。主要編碼參數值如表2所示。

表2 編碼參數表
4.2 測試結果
本文中定義了加速比來測試并行解碼器性能

(1)
式中:FPSprposed為利用改進后的解碼器解碼所得的幀率;FPSorig為利用HM-9.0解碼所得的幀率。每次解碼得到的幀率可能會稍有偏差,因此此次實驗中對每個碼流解碼10次,取幀率的平均值來計算加速比。實驗結果如表3所示。

表3 實驗結果表
本文提出了一種HEVC并行解碼器結構。此并行解碼器包含Pixel decoding和Deblocking filter兩個部分的并行,Pixel decoding的并行是以HEVC中的WPP技術為基礎的,Deblocking filter的并行則利用了濾波數據的無相關性。實驗表明,本文設計的HEVC并行解碼器可以提高解碼速度,降低時延。使用者可以根據處理器的核心數量來選擇合適的線程數,以達到較高的解碼效率,充分利用硬件資源。
[1]蔡曉霞,崔巖松,鄧中亮,等.下一代視頻編碼標準關鍵技術[J].電視技術,2012,36(2):80-84.
[2]劉昱,胡曉爽,段繼忠.新一代視頻編碼技術HEVC算法分析及比較[J].電視技術,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,FULDSETH 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.
責任編輯:時 雯
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
【本文獻信息】許珊珊,馬幼鳴,顧長海.HEVC并行解碼器設計[J].電視技術,2015,39(5).