揭月馨,劉 浩
東華大學(xué) 信息科學(xué)與技術(shù)學(xué)院,上海 201620
融合有向圖集與并行架構(gòu)的HEVC去塊濾波*
揭月馨,劉浩+
東華大學(xué) 信息科學(xué)與技術(shù)學(xué)院,上海 201620
去塊濾波;有向無(wú)環(huán)圖集;并行處理;多核平臺(tái);通用并行計(jì)算架構(gòu)
在解碼視頻中,人眼察覺(jué)到的圖像塊邊界處的不連續(xù)現(xiàn)象,稱為塊效應(yīng)。塊效應(yīng)是由于視頻編碼的分塊處理造成的,會(huì)引起視覺(jué)感知質(zhì)量的下降。為了消除塊效應(yīng),MPEG系列標(biāo)準(zhǔn)引入了去塊濾波器,對(duì)解碼的圖像塊進(jìn)行平滑處理,來(lái)消除虛假邊緣并提高壓縮比[1]。H.264/AVC運(yùn)用環(huán)路濾波器來(lái)去除塊效應(yīng),環(huán)路濾波器位于運(yùn)動(dòng)矢量補(bǔ)償環(huán)內(nèi),屬于線性濾波[2]。面向高清應(yīng)用的高效視頻編碼(high efficiency video coding,HEVC)壓縮率較H.264/AVC提高了一倍,復(fù)雜度則增加了數(shù)倍[3]。HEVC重建像素在被寫(xiě)入解碼圖像緩沖區(qū)之前,需要進(jìn)行兩個(gè)處理步驟:去塊濾波、采樣點(diǎn)自適應(yīng)補(bǔ)償[4]。相比于H.264/ AVC,HEVC簡(jiǎn)化了去塊濾波的決策過(guò)程,以易于壓縮數(shù)據(jù)的并行處理[5]。
視頻解碼程序?qū)τ布蠛芨?,隨著多核處理器的普及,多核環(huán)境下的動(dòng)態(tài)并行加速已成為提高解碼性能的有效方式[6]。有向無(wú)環(huán)圖(directed acyclic graph,DAG)是描述動(dòng)態(tài)系統(tǒng)時(shí)序過(guò)程的有效工具。文獻(xiàn)[7]應(yīng)用有向無(wú)環(huán)圖的理論,提出了基于多核處理器體系結(jié)構(gòu)的多視點(diǎn)視頻編碼時(shí)空數(shù)據(jù)并行算法,能夠在多種硬件平臺(tái)上獲得接近線性的加速比。文獻(xiàn)[8]提出了一種基于DAG的并行解碼方法,將視頻環(huán)路濾波結(jié)構(gòu)視為DAG進(jìn)行處理。在實(shí)現(xiàn)去塊濾波時(shí),壓縮數(shù)據(jù)之間存在復(fù)雜的依賴性,現(xiàn)有的并行處理方案存在并行度小,同步互斥開(kāi)銷大等不足。文獻(xiàn)[9]結(jié)合H.264/AVC去塊濾波算法及眾核處理器的結(jié)構(gòu)特性,提出了一種可減少數(shù)據(jù)依賴性的去塊濾波并行優(yōu)化方案。該并行方案在算法上增大了并行度,減少了同步開(kāi)銷,同時(shí)通過(guò)片上眾核處理器的硬件支持,采用計(jì)算與通信重疊等優(yōu)化策略,使得優(yōu)化后的實(shí)現(xiàn)方案達(dá)到了數(shù)倍的性能提升。
HEVC提供了易于數(shù)據(jù)并行處理的結(jié)構(gòu)單元,如片(Slice)和Tile,在不同的Slice和Tile中,數(shù)據(jù)信息是相互獨(dú)立的,這樣有利于將其分配給不同的運(yùn)算單元來(lái)處理。HEVC采用環(huán)路去塊濾波器來(lái)去除塊效應(yīng),使得解碼后的圖像具有較好的視覺(jué)效果,然而由于環(huán)路去塊濾波器的處理過(guò)程具有一定的數(shù)據(jù)依賴性,導(dǎo)致濾波時(shí)間較長(zhǎng)。在去塊濾波器中,乘法運(yùn)算次數(shù)多且濾波系數(shù)不確定的特點(diǎn)為濾波結(jié)構(gòu)的設(shè)計(jì)帶來(lái)極大挑戰(zhàn)。文獻(xiàn)[10]提出了一種濾波單元數(shù)可配置的HEVC去塊濾波VLSI(very large scale integration)結(jié)構(gòu),針對(duì)濾波塊間相互獨(dú)立進(jìn)行濾波的特性,設(shè)計(jì)了濾波單元數(shù)可配置的流水級(jí)并行結(jié)構(gòu),該結(jié)構(gòu)將濾波單元設(shè)計(jì)成基本調(diào)度單元,且數(shù)量可調(diào)節(jié)。
隨著圖形處理器(graphics processing unit,GPU)的快速發(fā)展,GPU的并行處理能力和可編程能力得到了很大程度的提高。HEVC去塊濾波具有一定的并行性,當(dāng)GPU處理核心數(shù)目增多時(shí),可通過(guò)增加并行度來(lái)提升處理速率[11]。CPU、GPU、ASCI等硬件平臺(tái)具有各自的優(yōu)缺點(diǎn)以及不同的應(yīng)用領(lǐng)域,文獻(xiàn)[12]對(duì)這些平臺(tái)的濾波實(shí)現(xiàn)性能進(jìn)行了初步的比較。現(xiàn)有的文獻(xiàn)并沒(méi)有深入研究HEVC去塊濾波算法層和硬件平臺(tái)層之間的跨層并行實(shí)現(xiàn)機(jī)制?;谒惴▽拥挠邢驘o(wú)環(huán)圖集(directed acyclic graph set,DAGS)和硬件平臺(tái)層的通用并行計(jì)算架構(gòu)(compute unified device architecture,CUDA),本文針對(duì)HEVC去塊濾波提出了一種跨層并行處理機(jī)制,充分利用圖像幀的獨(dú)立像素區(qū)域(independent pixel region,IPR)減少對(duì)緩存的調(diào)度訪問(wèn)。所提方案降低了HEVC濾波過(guò)程中的數(shù)據(jù)依賴性,便于多核平臺(tái)的并行處理。本文比較了“串行”、“DAGS+多核CPU”、“DAGS+ GPU”3種不同的HEVC去塊濾波實(shí)現(xiàn)機(jī)制,結(jié)果表明,所提“DAGS+GPU”機(jī)制平均取得了11~24倍的解碼加速比,在保證率失真性能相當(dāng)?shù)那闆r下顯著減少了解碼時(shí)間。
HEVC在Slice的基礎(chǔ)上引入了Tile的概念。如圖1所示,Tile被定義為由圖像中垂直和水平邊界的交點(diǎn)所分割得到的矩形區(qū)域。一幀圖像中的各個(gè)Tile在編碼時(shí)共享頭信息,每個(gè)Tile可以獨(dú)立解碼。在支持Tile的同時(shí),HEVC同樣支持Slice處理。在同一幅圖像中,Slice和Tile可同時(shí)使用,且兩者的分割互不干擾,一個(gè)Slice可包含若干個(gè)Tile。
Fig.1 Segmentation map for Tile圖1 Tile分割示意圖
顯卡廠商N(yùn)VIDIA推出了一種將GPU作為數(shù)據(jù)并行運(yùn)算平臺(tái)的CUDA架構(gòu),作為一項(xiàng)同時(shí)支持硬件和軟件的技術(shù),CUDA利用圖形處理器中的多顆計(jì)算核心進(jìn)行通用計(jì)算,使得并行處理的性能得到了顯著的提升[13]。CUDA架構(gòu)分為兩個(gè)部分,主機(jī)Host和設(shè)備Device,通常CPU被看作是主機(jī),而GPU則被認(rèn)為是設(shè)備,一個(gè)系統(tǒng)中可以存在一個(gè)主機(jī)和若干個(gè)設(shè)備。CPU主要針對(duì)執(zhí)行大量離散而相互獨(dú)立任務(wù)的系統(tǒng),通過(guò)提高單個(gè)線程的性能來(lái)減少執(zhí)行和通信延遲?;贑UDA的GPU應(yīng)用技術(shù)具有計(jì)算密集、高度并行及控制簡(jiǎn)單等特點(diǎn),近年來(lái)得到了迅速發(fā)展。
3.1基于DAGS的算法層并行處理
如圖2所示,在HEVC中,每幀被分成編碼樹(shù)結(jié)構(gòu)(coding tree unit,CTU),可以通過(guò)遞歸的四叉樹(shù)分割成更小的編碼單元(coding unit,CU)。去塊濾波遵循如圖2(a)和圖2(b)所示的CTU和CU結(jié)構(gòu),圖中數(shù)字表示編解碼順序。CU能夠進(jìn)一步地再分割成預(yù)測(cè)單元(prediction unit,PU)和變換單元(transform unit,TU)。每個(gè)邊緣由一個(gè)或多個(gè)部分組成,而一個(gè)部分是由8×8像素集中的亮度分量和4×4像素集中的色度分量組成。如圖2(c)所示,若一個(gè)CU有16× 16像素集的亮度分量,那么這個(gè)CU將有4個(gè)垂直邊緣v1、v2、v3和v4,并且有4個(gè)水平邊緣h1、h2、h3和h4。對(duì)于每個(gè)CU,垂直邊緣的處理都在水平邊緣之前,濾波垂直邊緣和水平邊緣的順序是從頂部到底部,從左邊到右邊。
HEVC去塊濾波器的處理流程為:首先對(duì)整個(gè)圖像的垂直邊緣進(jìn)行水平濾波,然后對(duì)水平邊緣進(jìn)行垂直濾波。該順序使得多次水平(垂直)濾波可以并行展開(kāi),采用多個(gè)CTU聯(lián)合解碼的方式進(jìn)行濾波,這樣可以減少處理時(shí)延。HEVC濾波過(guò)程的數(shù)據(jù)依賴關(guān)系原本由3個(gè)子任務(wù)構(gòu)成:邊緣鑒別(edge discrimination,ED)、邊界強(qiáng)度計(jì)算(boundary strength computation,BSC)和濾波(deblocking filtering,DF)[14]。ED主要用來(lái)確定是否進(jìn)行濾波,而B(niǎo)SC用來(lái)決定濾波時(shí)是強(qiáng)濾波還是普通濾波,每個(gè)濾波處理得出的結(jié)果都可以被當(dāng)作輸入用于后續(xù)的ED和DF。在保持不改變?yōu)V波順序的前提下,可考慮將ED子任務(wù)和DF子任務(wù)合并為邊緣鑒別濾波(edge discrimination filtering,EDF),步驟如下:
步驟1 把整個(gè)濾波過(guò)程分成EDF和BSC兩部分,且為了增加并行性,在EDF同時(shí)進(jìn)行BSC。
步驟2 采用Markov過(guò)渡概率矩陣和哈夫曼樹(shù)相結(jié)合的方法,解決BSC負(fù)載不平衡的問(wèn)題。
步驟3 基于DAGS和CUDA的并行EDF過(guò)程。
Fig.2 Processing order of deblocking filter圖2 去塊濾波器的處理順序
HEVC標(biāo)準(zhǔn)規(guī)定了待濾波像素及各自評(píng)測(cè)像素的細(xì)節(jié)。圖3給出了一個(gè)16×16 CU中濾波像素的分類樣例,白色像素既不會(huì)被垂直濾波也不會(huì)被水平濾波,濾波器一次處理的像素集合Donce位于濾波區(qū)域的中間,濾波器兩次處理的像素集合Dtwice位于濾波區(qū)域的邊緣。濾波像素集表示如下:
其中,Dc為濾波像素的完整集合;Donce和Dtwice分別為Dc的子集。集合Donce是由垂直邊緣或水平邊緣的僅一次濾波像素組成,集合Dtwice是由垂直和水平邊緣濾波像素組成。在EDF中,像素集合Donce和像素集合Dtwice沒(méi)有數(shù)據(jù)依賴性,因此Donce可以在Dtwice之前被并行處理。
Dtwice分為4種情況:如圖4所示的一個(gè)大小為N×N的CU,N表示亮度分量8個(gè)連續(xù)像素或色度分量4個(gè)連續(xù)像素的水平或垂直數(shù)量。v1,v2,…,v(n×n)為垂直濾波,h1,h2,…,h(n×n)為水平濾波,灰色區(qū)域代表兩次濾波像素,屬于Dtwice。把這些區(qū)域根據(jù)濾波條件分為4種情況,分別標(biāo)記為A、B、C、D。這些像素集合包括亮度分量的6×6像素集、色度分量的2×2像素集。情況A、B和C分別位于CTU的左上、上和左邊界,這幾種情況中的像素都有相似的濾波條件。
Fig.3 Classification example of filtered pixels for 16×16 CU圖3 16×16 CU的濾波像素分類樣例
Fig.4 ClassifyingDtwiceinto4casesmarkedasA,B,CandD圖4 將Dtwice分成4種情況(分別標(biāo)記為A,B,CD)
根據(jù)DAGS并行度,Dtwice亮度分量和色度分量的依賴性分析是相似的。為了便于解釋,只分析了情況A、B、C、D中像素集合標(biāo)記為a,b,…,n,p的亮度分量。每一種情況都有4個(gè)像素集合,并且每一個(gè)像素集合都是3×3的像素集。例如,情況A中像素集為a,b,c,d。像素集之間的依賴性如圖5中的DAGS所示。每個(gè)節(jié)點(diǎn)表示獨(dú)立像素區(qū)域進(jìn)行邊緣濾波的某一子任務(wù)。例如,節(jié)點(diǎn)av1意味著該像素集a是由邊緣v1濾波。該數(shù)據(jù)依賴性在4種情況中是彼此不同的。EDF任務(wù)之間的依賴性取決于DAGS的時(shí)序關(guān)系。例如,任務(wù)ah1與任務(wù)av1之間有一定的依賴性。色度分量的DAGS與那些亮度分量是相同的,唯一區(qū)別是像素集a,b,…,n,p代表1×1像素集的色度分量。所提算法對(duì)于色度分量的Dtwice進(jìn)行相似的處理。當(dāng)DAGS中的一些節(jié)點(diǎn)入度為0時(shí),這些節(jié)點(diǎn)可并行處理。在后續(xù)階段中,那些處理過(guò)的節(jié)點(diǎn)將會(huì)從DAGS中移除,并且該數(shù)據(jù)依賴性也將更新。在算法層的DAGS并行處理中,濾波像素之間的邏輯關(guān)系并未改變。
Fig.5 Dependencies among IPRs are represented as DAGS圖5DAGS:獨(dú)立像素區(qū)域的時(shí)序依賴關(guān)系
3.2基于CUDA的平臺(tái)層并行處理
前文使用DAGS來(lái)降低濾波過(guò)程中的時(shí)序依賴性,還需要結(jié)合多核平臺(tái)實(shí)現(xiàn)并行濾波,本節(jié)將應(yīng)用多核CPU或GPU平臺(tái)來(lái)提高濾波加速比。在執(zhí)行濾波前,塊濾波的邊界強(qiáng)度(boundary strength,BS)條件由已獲取的解碼數(shù)據(jù)來(lái)估計(jì)[4]。每個(gè)BS條件被存儲(chǔ)在一個(gè)比特位中,當(dāng)條件是假時(shí)為0,是真時(shí)為1。8個(gè)BS條件與其對(duì)應(yīng)的比特位如表1所述。從而邊界條件被存儲(chǔ)在兩個(gè)字節(jié)中,一個(gè)字節(jié)用于水平濾波,另一個(gè)字節(jié)用于垂直濾波。該方式減少了對(duì)CPU的緩存訪問(wèn),可直接采用GPU處理。在CPU或GPU中,對(duì)于每個(gè)邊界最后的BS值可以通過(guò)位操作快速獲得。
Table 1 Boundary strength condition and its bit position表1 濾波的邊界強(qiáng)度條件及其比特位
因?yàn)閮H需要4個(gè)像素,8×8像素集邊界的網(wǎng)格中3個(gè)像素可能會(huì)被濾波,幾個(gè)非重疊的塊可以進(jìn)行并行濾波。將那些基于DAGS的EDF任務(wù)劃分為IPR,它們?cè)?×8像素網(wǎng)格的相對(duì)位置如圖6所示。圖中IPR標(biāo)為灰色正方形,需要濾波的8×8邊界標(biāo)為實(shí)線。在這些區(qū)域的內(nèi)部,進(jìn)行水平邊界的垂直濾波之前必須先執(zhí)行垂直邊界的水平濾波。對(duì)于一個(gè)8× 8像素網(wǎng)格中的塊邊界,色度分量也會(huì)被濾波,同樣是使用這種方式,IPR濾波準(zhǔn)則是相同的,但是BS條件必須根據(jù)色度二次抽樣的結(jié)果格式讀取。接著,每個(gè)IPR(由4個(gè)邊界組成)在CPU或者GPU上的一個(gè)線程中濾波。為了計(jì)算色度分量的BS值,會(huì)使用不同IPR的BS條件。由于內(nèi)存的內(nèi)容沒(méi)有更新,存儲(chǔ)器不會(huì)被寫(xiě)入,各IPR之間沒(méi)有數(shù)據(jù)依賴性。在使用CPU執(zhí)行濾波方案時(shí),獨(dú)立濾波的IPR通過(guò)使用POSIX線程的API均勻分布在CPU內(nèi)核中[15]。
Fig.6 Relative position of IPRs in 8×8 grid圖6 IPR在8×8像素網(wǎng)格的相對(duì)位置
在GPU中執(zhí)行去塊濾波時(shí),每個(gè)GPU線程負(fù)責(zé)濾波一個(gè)IPR。因此,若每個(gè)GPU線程塊由32個(gè)GPU線程(32個(gè)GPU線程為1個(gè)warp,warp是CUDA中每個(gè)核的最小執(zhí)行單位)組成,將會(huì)對(duì)一行中的32 個(gè)IPR進(jìn)行濾波。GPU線程塊被配置成二維的線程格(Grid),其規(guī)模為:
其中,WF代表一幀的寬度;HF代表一幀的高度。所有的GPU全局存儲(chǔ)器訪問(wèn)都是在warp級(jí)執(zhí)行的。然而,若一個(gè)warp內(nèi)部的GPU線程需要使用大塊的內(nèi)存地址,總內(nèi)存訪問(wèn)就會(huì)變得序列化。為了避免這一缺陷,所使用的存儲(chǔ)器地址被適當(dāng)?shù)貙?duì)準(zhǔn),使得對(duì)于整個(gè)warp的處理只需要一個(gè)特定的內(nèi)存區(qū)域。另一方面,如果幀和BS條件數(shù)據(jù)能夠滿足GPU的全局內(nèi)存,則以一個(gè)光柵掃描順序的矢量形式進(jìn)行存儲(chǔ),并且warp被限制在IPR中的單一行,GPU的全局內(nèi)存可以減小。GPU共享高速緩存也可以用來(lái)存儲(chǔ)臨時(shí)像素以增加效率。在GPU去塊濾波器中,內(nèi)存轉(zhuǎn)移(從主機(jī)到設(shè)備和從設(shè)備到主機(jī))是最耗時(shí)的過(guò)程。不過(guò),多個(gè)CUDA流可以用于異步重疊內(nèi)存?zhèn)鬏敽虶PU內(nèi)核。用這種方法,GPU線程塊被分布在所定義的CUDA流之間。圖7解釋了如何使用異步CUDA流實(shí)現(xiàn)并行化,減少整個(gè)處理時(shí)間。
由于GPU內(nèi)核處理可以由內(nèi)存轉(zhuǎn)移來(lái)完全重疊,在GPU中執(zhí)行的總處理時(shí)間只取決于該幀的分辨率,通過(guò)實(shí)驗(yàn)得到針對(duì)不同分辨率幀的并行CUDA流的最佳數(shù)目,通過(guò)并行的CUDA流來(lái)減少內(nèi)存從主機(jī)到設(shè)備的轉(zhuǎn)移時(shí)間。下文將分別測(cè)量CPU或GPU處理各類測(cè)試序列所用的平均濾波時(shí)間,并比較哪種方案能獲得更高的加速比。
Fig.7 Example of asynchronous CUDA streams processing圖7異步CUDA流處理范例
下面評(píng)估所提方案在不同硬件平臺(tái)上的執(zhí)行效果。測(cè)試序列包括HEVC通用測(cè)試條件規(guī)定的A類、B類和E類序列,還包括由CrowRun、ParkJoy和DucksTakeOff組成的分辨率為3 840×2 160(超高清4K)的S類序列。實(shí)驗(yàn)比較了“串行”、“DAGS+多核CPU”、“DAGS+GPU”3種不同的去塊濾波實(shí)現(xiàn)機(jī)制。源代碼為HEVC測(cè)試模型HM12.0,它的“串行”實(shí)現(xiàn)被作為基準(zhǔn)方案[16-17]。硬件平臺(tái)是英特爾i5-4570K@CPU 3.20 GHz,使用P線程庫(kù)分配4個(gè)CPU核心之間的負(fù)載。在GPU方面,使用NVIDIA的Tesla K20c 706 MHz、CUDA5.5。
為了直觀比較不同去塊濾波方案的重建質(zhì)量,選取測(cè)試序列BasketballDrive中的一幀來(lái)觀察解碼圖像質(zhì)量。圖8(a)、(b)、(c)分別為HM12.0解碼器采用“串行”、“DAGS+多核CPU”和“DAGS+GPU”去塊濾波的解碼圖像,可以看出,所提去塊濾波方案的圖像解碼質(zhì)量與基準(zhǔn)方案基本相當(dāng)。
Fig.8 Comparison of BasketballDrive deblocking effect(QP=32)圖8 BasketballDrive去塊濾波的效果(QP=32)
表2給出了各HVEC去塊濾波方案在不同分辨率和量化參數(shù)(quantization parameter,QP)條件下的平均執(zhí)行時(shí)間。正如人們所期望的,在多核平臺(tái)上執(zhí)行去塊濾波能夠有效地減少濾波時(shí)間,得到較高的加速比。從表2中可以看出,對(duì)于各種類型的視頻序列,多核CPU方案大幅提高了解碼速度,平均加速比為14.1,通過(guò)使用4個(gè)內(nèi)核達(dá)到了14.1/4=3.53的單核效率,克服了以往HEVC多核去塊濾波器效率低下的問(wèn)題,具有一定的實(shí)用性。
Table 2 Average time for HEVC deblocking filter表2各方案HEVC去塊濾波的平均時(shí)間
為了進(jìn)一步評(píng)估所提方案的擴(kuò)展性,圖9描述了相對(duì)于HM12.0的“串行”基準(zhǔn)方案來(lái)觀測(cè)所提并行方案的平均加速比,測(cè)試序列選取S類CrowRun、A 類Traffic、B類ParkScene、E類FourPeople,其中QP 取22。由圖9可以看出,融合DAGS和CUDA可降低濾波過(guò)程中的數(shù)據(jù)依賴性,使得濾波處理能夠并行化,在使用多核CPU或GPU平臺(tái)優(yōu)化后,HEVC濾波處理能達(dá)到一個(gè)很好的加速比,尤其適用于GPU平臺(tái),加速比可高達(dá)24倍左右。
Fig.9 Speedupofparallelschemesagainstserialbenchmark圖9 并行方案相對(duì)于“串行”基準(zhǔn)方案的加速比
基于算法層的有向無(wú)環(huán)圖集和平臺(tái)層的通用并行計(jì)算架構(gòu),本文針對(duì)HEVC去塊濾波的實(shí)現(xiàn)提出了一種跨層并行處理方案,利用圖像幀的獨(dú)立像素區(qū)域減少對(duì)緩存的訪問(wèn)。所提跨層機(jī)制降低了HEVC濾波過(guò)程中的時(shí)序依賴性,便于多核GPU平臺(tái)的并行處理。實(shí)驗(yàn)表明,在重建視頻質(zhì)量相當(dāng)?shù)那疤嵯滤岵⑿蟹桨革@著提高了解碼速度。
References:
[1]Tai Shenchuan,Chen Yenyu,Sheu Shinfeng.Deblocking filter for low bit rate MPEG-4 video[J].IEEE Transactions on Circuits and Systems for Video Technology,2005,15 (6):733-741.
[2]Parlak M,Hamzaoglu I.Low power H.264 deblocking filter hardware implementations[J].IEEE Transactions on Consumer Electronics,2008,54(2):808-816.
[3]Shen Yanfei,Li Jintao,Zhu Zhenmin,et al.High efficiency video coding[J].Chinese Journal of Computers,2013,36(11):2340-2355.
[4]Norkin A,Bjontegaard G,Fuldseth A.HEVC deblocking filter[J].IEEE Transactions on Circuits and Systems for Video Technology,2012,22(12):1746-1754.
[5]Tang Huamin,Du Jianchao,Wang Qinglei.Analysis of inloop filter technique in video coding standard HEVC[J]. Video Engineering,2014,38(11):1-4.
[6]Pang Yi,Zhang Fengyan,Sun Lifeng,et al.Survey of parallel acceleration algorithms of video coding on multi-core processor[J].Journal of Frontiers of Computer Science and Technology,2009,3(4):337-346.
[7]Pang Yi,Sun Lifeng,Wen Jiangtao,et al.A framework for heuristic scheduling for parallel processing on multi-core architecture—a case study with multi-view video coding[J]. IEEE Transactions on Circuits and Systems for Video Technology,2009,19(11):1658-1666.
[8]Yan Chenggang,Zhang Yongdong,Dai Feng,et al.Parallel deblocking filter for HEVC on many-core processor[J]. Electronics Letters,2014,50(5):367-368.
[9]Fan Lingjun,Yan Chenggang,Song Fenglong,et al.Optimizing H.264 deblocking filter on many-core architectures[J]. Journal of Chinese Computer Systems,2011,32(11):2263-2267.
[10]Lu Wei,Yu Ningmei,Nan Jianghan,et al.Configurable and parallel VLSI design for deblocking filter of HEVC[J].Journal of Xi’an University of Technology,2014,30(1):46-51.
[11]Souza D F,Roma N,Sousa L.Cooperative CPU+GPU deblocking filter parallelization for high performance HEVC video codecs[C]//Proceedings of the 2014 International Conference on Acoustics,Speech and Signal Processing, Florence,Italy,May 4-9,2014.Piscataway,USA:IEEE, 2014:5026-5030.
[12]Kotra A M,Raulet M,Deforge O.Comparison of different parallel implementations for deblocking filter of HEVC[C]// Proceedings of the 2013 International Conference on Acoustics, Speech and Signal Processing,Vancouver,Canada,May 26-31,2013.Piscataway,USA:IEEE,2013:2721-2725.
[13]Han T D,Abdelrahman T S.hiCUDA:a high-level directivebased language for GPU programming[C]//Proceedings of the 2nd Workshop on General Purpose Processing on Graphics Processing Units,Washington,USA,Mar 8,2009.New York,USA:ACM,2009:52-61.
[14]Norkin A.Deblocking filter simplifications:BS computation and strong filtering decision,JCTVC-H0473[R].San Jose,Joint Collaborative Team on Video Coding,2012.
[15]Yin Jian,Yu Hui,Xu Weizhi,et al.Highly parallel GEMV with register blocking method on GPU architecture[J].Journal of Visual Communication and Image Representation, 2014,25(7):1566-1573.
[16]McCann K,Bross B,Han W J,et al.High efficiency video coding(HEVC)test model 12(HM12)encoder description, JCTVC-N1002[R].Vienna,Joint Collaborative Team on Video Coding,2013.
[17]Bossen F.Common HM test conditions and software reference configurations,JCTVC-L1100[R].Geneva,Joint Collaborative Team on Video Coding,2013.
附中文參考文獻(xiàn):
[3]沈燕飛,李錦濤,朱珍民,等.高效視頻編碼[J].計(jì)算機(jī)學(xué)報(bào),2013,36(11):2340-2355.
[5]唐華敏,杜建超,王慶雷.視頻編碼標(biāo)準(zhǔn)HEVC中的環(huán)路濾波技術(shù)分析[J].電視技術(shù),2014,38(11):1-4.
[6]龐一,張鳳妍,孫立峰,等.面向多核處理器的視頻編碼并行加速算法綜述[J].計(jì)算機(jī)科學(xué)與探索,2009,3(4):337-346.
[9]范靈俊,顏成鋼,宋風(fēng)龍,等.H.264去塊濾波算法在眾核結(jié)構(gòu)上的并行優(yōu)化[J].小型微型計(jì)算機(jī)系統(tǒng),2011,32 (11):2263-2267.
[10]路偉,余寧梅,南江涵,等.可配置并行HEVC去塊濾波VLSI設(shè)計(jì)[J].西安理工大學(xué)學(xué)報(bào),2014,30(1):46-51.
JIE Yuexin was born in 1989.She received the M.S.degree in electrical engineering from Donghua University in 2015.Her research interests include video coding and multimedia communications.
揭月馨(1989—),女,山東臨沂人,2015年于東華大學(xué)電氣工程專業(yè)獲得碩士學(xué)位,主要研究領(lǐng)域?yàn)橐曨l編碼,多媒體通信。
LIU Hao was born in 1977.He received the Ph.D.degree in electronic engineering from Shanghai Jiao Tong University in 2006.Now he is an associate professor at Donghua University.His research interest is image processing and communications.
劉浩(1977—),男,四川達(dá)州人,2006年于上海交通大學(xué)獲得博士學(xué)位,現(xiàn)為東華大學(xué)副教授,主要研究領(lǐng)域?yàn)閳D像處理與通信,已發(fā)表SCI/EI論文20余篇。
HEVC Deblocking Filter with Directed Graphs and Parallel Architecture?
JIE Yuexin,LIU Hao+
College of Information Science and Technology,Donghua University,Shanghai 201620,China
+Corresponding author:E-mail:liuhao@dhu.edu.cn
JIE Yuexin,LIU Hao.HEVC deblocking filter with directed graphs and parallel architecture.Journal of Frontiers of Computer Science and Technology,2016,10(9):1221-1228.
For the deblocking filter of high efficiency video coding(HEVC),current literatures lack the in-depth research on the cross-layer parallel implementation between algorithm layer and platform layer.Based on the directed acyclic graph set(DAGS)at algorithm layer and the compute unified device architecture(CUDA)at platform layer, this paper proposes a cross-layer parallel decoding scheme for HEVC deblocking filter.The proposed scheme exploits the independent pixel regions to reduce cache accesses,and weakens the sequential dependence of filtering process to facilitate the parallel optimization.By evaluating three implementation schemes of HEVC deblocking filter:“serial, “DAGS+multi-core CPU”and“DAGS+GPU”,the experimental results demonstrate that the proposed“DAGS+ GPU”scheme can achieve the speedup as high as 11~24 times,and thus significantly save the decoding time while maintaining similar rate-distortion performance.
deblocking filter;directed acyclic graph set;parallel processing;multi-core platform;compute unified device architecture
針對(duì)高效視頻編碼(high efficiency video coding,HEVC)的去塊濾波,現(xiàn)有文獻(xiàn)并沒(méi)有深入研究其算法層和平臺(tái)層之間的跨層并行實(shí)現(xiàn)機(jī)制?;谒惴▽拥挠邢驘o(wú)環(huán)圖集(directed acyclic graph set,DAGS)和
2015-06,Accepted 2015-08.
*The National Natural Science Foundation of China under Grant No.41401486(國(guó)家自然科學(xué)基金);the Natural Science Foundation of Shanghai under Grant No.14ZR1400500(上海市自然科學(xué)基金).
A
TN919.8