国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

H.265解碼器去塊濾波并行化設(shè)計(jì)與性能優(yōu)化

2015-10-20 09:13周建政劉華平
電視技術(shù) 2015年14期
關(guān)鍵詞:解碼器方塊解碼

周建政,劉華平

(1.天格科技(杭州)有限公司,浙江 杭州 310011;2.上海格譜信息科技有限公司,上海 200072)

1 H.265標(biāo)準(zhǔn)

H.265同H.264/AVC一樣采用的變換算法是基于宏塊的DCT算法,因此,當(dāng)壓縮率很高時(shí),就會(huì)導(dǎo)致嚴(yán)重的塊效應(yīng)。為了提高主觀和客觀視覺效果,H.265中同樣引入去塊效應(yīng)濾波系統(tǒng),可以很好地消除塊效應(yīng)的影響,并且濾波后的幀可用于后續(xù)幀的運(yùn)動(dòng)補(bǔ)償預(yù)測(cè),從而避免了由于虛假邊界積累誤差而導(dǎo)致的圖像質(zhì)量進(jìn)一步降低,但同時(shí),去塊效應(yīng)濾波系統(tǒng)也帶來了大量的復(fù)雜運(yùn)算[1-2],特別是大分辨率視頻,去塊效應(yīng)相關(guān)參數(shù)都是跨越多行,這樣導(dǎo)致對(duì)數(shù)據(jù)讀寫內(nèi)存Cache Miss,對(duì)于1 080p視頻去塊效應(yīng)濾波計(jì)算量占據(jù)H.265解碼器25%~30%,因此去塊效應(yīng)濾波系統(tǒng)成為H.265在實(shí)時(shí)應(yīng)用中的主要瓶頸之一。

近一年,移動(dòng)終端設(shè)備CPU技術(shù)朝高主頻,多核和低功耗方向發(fā)展,這就為大視頻在移動(dòng)設(shè)備上的流暢播放提供硬件資源基礎(chǔ)。H.265是最新一代視頻編解碼器技術(shù),其市場(chǎng)應(yīng)用響應(yīng)相應(yīng)比H.264要快速,目前互聯(lián)上就有很多H.265壓制的視頻源,H.265解碼性能優(yōu)化就成為一件急迫的事。

本文先對(duì)H.265標(biāo)準(zhǔn)中的去方塊濾波進(jìn)行詳細(xì)的介紹,分析在HM14.0現(xiàn)在的架構(gòu)中不能并行化處理的原因,然后對(duì)HM14.0的軟件結(jié)構(gòu)進(jìn)行設(shè)計(jì),讓H.265去塊效應(yīng)濾波能做到基于CU行并行處理,這樣就可以充分利用移動(dòng)終端多核并行處理,大大提升解碼器的速度。在每個(gè)宏塊行內(nèi)每個(gè)像素行,進(jìn)一步用ARMv7 SIMD匯編指令去優(yōu)化,最后給出性能優(yōu)化前后的數(shù)據(jù)。

2 H.265標(biāo)準(zhǔn)中的去方塊效應(yīng)濾波

H.265去方塊效應(yīng)濾波采用與H.264/AVC類似的方法,但H.265邊界情況比H.264要復(fù)雜,所以考慮所有邊界條件的情況下,H.265整體去方塊效應(yīng)濾波復(fù)雜度比H.264高一點(diǎn)。H.265去方塊效應(yīng)濾波處理單元是CU,其處理順序與解碼過程一致,所有垂直邊緣先做濾波處理,然后再做所有水平邊緣的濾波處理。去方塊效應(yīng)濾波流程圖如圖1所示[2-4]。

圖1 去方塊效應(yīng)濾波流程圖

2.1 方塊邊緣檢測(cè)

去方塊效應(yīng)濾波涉及到3類邊界,分別是編碼單元邊界(CU boundary)、變換單元邊界(TU boundary)和預(yù)測(cè)單元邊界(PU boundary),這些邊界都會(huì)直接影響到去方塊效應(yīng)濾波器的操作。例如有時(shí)CU的邊界與PU或TU的邊界重疊,邊界確定后就是計(jì)算邊界的強(qiáng)度,邊界的強(qiáng)度直接影響邊界濾波的選擇。目前這些所有的邊界信息解析和判斷都是嵌入在解碼過程中,往往要整個(gè)幀解碼完成才能知道各個(gè)邊界的消息,這樣導(dǎo)致去方塊效應(yīng)濾波只能放到最后完整的去做,不利于幀內(nèi)宏塊行的并行操作。邊界強(qiáng)度的計(jì)算流程圖如圖2所示。

2.2 濾波器關(guān)/開判斷

引入2個(gè)閾值變量β和tC,這2個(gè)變量結(jié)合邊界相鄰的像素決定了濾波器的關(guān)開,強(qiáng)弱濾波器的選擇以及弱濾波處理。β和tC的選擇是根據(jù)相鄰像素,然后查閱參數(shù)文獻(xiàn)[4]。濾波器開關(guān)和強(qiáng)弱判斷涉及到4行邊界左右6個(gè)像素,如圖3所示。

圖2 邊界強(qiáng)度計(jì)算流程圖

圖3 框中的像素用于濾波關(guān)開和強(qiáng)弱選擇(截圖)

2.3 濾波器[5]

H.265去塊效應(yīng)濾波分強(qiáng)濾波和弱濾波,強(qiáng)濾波器會(huì)用到邊界相鄰塊各4個(gè)像素值,通過如下方程式去更新邊界相鄰塊各3個(gè)像素值。方程式如下

式(1)~(3)是強(qiáng)濾波更新垂直邊界左邊或水平邊界上方相鄰3個(gè)像素值,式(4)~(6)是強(qiáng)濾波更新垂直邊界右邊或水平邊界下方相鄰3個(gè)像素值。弱濾波器會(huì)用到邊界相鄰塊各3個(gè)像素值,通過如下方程式去更新邊界相鄰塊各2個(gè)像素值。方程式如下

式(7)、(8)是弱濾波更新垂直邊界左邊或水平邊界上方相鄰二個(gè)像素值,式(9)、(10)弱濾波更新垂直邊界右邊或水平邊界下方相鄰二個(gè)像素值。

其中

3 去方塊效應(yīng)濾波并行算法設(shè)計(jì)

圖4是HM14.0編解碼器流程,以LCU為單元,采用遞歸的方式把整個(gè)個(gè)幀解碼出來,然后整幀來進(jìn)行后處理,包括去塊效應(yīng)濾波和自適應(yīng)校點(diǎn)補(bǔ)償處理。

圖4 H.265算法框架圖

這種結(jié)構(gòu)導(dǎo)致無法做幀內(nèi)基于LCU行的并行,去塊效應(yīng)濾波器沒有基于LCU行并行,也會(huì)影響到自適應(yīng)校點(diǎn)補(bǔ)償(SAO)并行處理。去塊效應(yīng)濾波配合整個(gè)解碼器的幀內(nèi)按LCU行的并行處理進(jìn)行修改,處理過程流程圖如圖5所示。

圖5 解碼器流程圖

HM14.0結(jié)構(gòu)就是先把一幀數(shù)據(jù)全部解碼出來,然后整幀進(jìn)入后處理模塊,這個(gè)缺點(diǎn)是不能基于LCU行的并行處理,而基于LCU并行化處理,當(dāng)一個(gè)線程在解碼后面的LCU單元時(shí),另一個(gè)線程就能處理已經(jīng)做好準(zhǔn)備LCU行的去塊效應(yīng)濾波和SAO。基于LCU并行化處理過程說明:解碼器仍然是以LCU為單元進(jìn)行解碼,同時(shí)建立以4×4為最小塊的結(jié)構(gòu)數(shù)組用于存放當(dāng)前最小處理宏塊的邊界情況。去塊效應(yīng)濾波較解碼器要延遲一LCU行去做濾波處理,例如解碼器第一LCU行解碼完成,不會(huì)去做去塊效應(yīng)濾波,因?yàn)闀?huì)影響第二行處理過程。當(dāng)?shù)诙﨤CU解碼完成后才進(jìn)行去塊效應(yīng)處理。幀內(nèi)基于LCU并行去做去塊濾波要注意保留一些數(shù)據(jù),例如幀間預(yù)測(cè)就要保留一行LCU的像素?cái)?shù)據(jù),以備幀間預(yù)測(cè)使用。

4 ARM平臺(tái)性能優(yōu)化[6]

ARM Cortex系列的處理器,支持并行的高效指令集(NEON),Cortex-A系列增加了16個(gè)128 bit的Q寄存器單元,這些寄存器單元可以靈活當(dāng)作 8 bit,16 bit,32 bit,64 bit和128 bit單元使用,NEON寄存器結(jié)構(gòu)如圖6所示。

與128 bit寄存器配對(duì),NEON指令集有很多并行的加、減、乘和相關(guān)的邏輯指令,例如處理8 bit像素,通過NEON指令集可以一次性處理16個(gè)像素。通過SIMD指令優(yōu)化,并行的處理指令數(shù)就會(huì)是原來的1/16。

圖6 NEON寄存器結(jié)構(gòu)圖

從本文的第二部分詳細(xì)分析了H.265去塊效應(yīng)濾波器,例如水平強(qiáng)濾波器會(huì)用到邊界上下各4個(gè)像素點(diǎn),然后通過一系列的并行運(yùn)算后,最后更新邊界上下各3個(gè)像素點(diǎn),這種結(jié)構(gòu)很利于應(yīng)用NEON并行指令,其數(shù)據(jù)讀取和存儲(chǔ)如下:

vld1.32 {d6[0]},[r4],r1 @p10,p20,p30,p40

vld1.32 {d7[0]},[r4],r1 @p11,p21,p31,p41

vld1.32 {d8[0]},[r4],r1 @p12,p22,p32,p42

vld1.32 {d9[0]},[r4],r1 @p13,p23,p33,p43

vld1.32 {d10[0]},[r4],r1 @p14,p24,p34,p44

vld1.32 {d11[0]},[r4],r1 @p15,p25,p35,p45

vld1.32 {d12[0]},[r4],r1 @p16,p26,p36,p46

vld1.32 {d13[0]},[r4] @p17,p27,p37,p47

這幾條指令就把4行,每行左右各4個(gè)共8個(gè)像素都取到寄存器中,接下來的所有運(yùn)行都是一次處理4個(gè)像素,最后處理完用vst1.32一次存儲(chǔ)4個(gè)像素,這樣4個(gè)像素并行處理,所有的指令處理周期數(shù)是原來的1/4。

進(jìn)一步優(yōu)化,濾波器的關(guān)開和強(qiáng)弱是基于4行像素內(nèi)容去判斷,這樣的結(jié)果是4×4的塊間可能去塊效應(yīng)濾波器的強(qiáng)弱不致,如果在上面加個(gè)判斷,如相鄰的8行像素都是使用強(qiáng)濾波或都是弱濾波,這樣就可以將上面的并行處理擴(kuò)展到基于8行8個(gè)像素并行處理,這樣處理速度會(huì)提升8倍。

5 對(duì)比分析

H.265主要應(yīng)用場(chǎng)景是大視頻和高幀率,算法復(fù)雜增加,同時(shí)處理數(shù)據(jù)量多,這樣就要充分利用處理器多核并行去處理數(shù)據(jù)。本文就是闡述如何將原來在視頻幀全部解碼出來后整幀做去塊效應(yīng)濾波處理,通過解碼處理過程中,并行化處理得到各個(gè)處理單元的邊界信息,實(shí)現(xiàn)了幀內(nèi)基于宏塊行級(jí)的并行化處理。同時(shí)針對(duì)ARM平臺(tái)進(jìn)行了SIMD匯編優(yōu)化,使得去塊效應(yīng)濾波在整個(gè)解碼器算法復(fù)雜度降低了一半,大大提升了解碼器處理能力。圖7是優(yōu)化前后,去塊效應(yīng)濾波在整個(gè)解碼器復(fù)雜度的比例優(yōu)化前后比較圖。

圖7 去塊效應(yīng)濾波占解碼器時(shí)間比例

測(cè)試序列覆蓋H.265 ClassA~ClassE,分析統(tǒng)計(jì)去塊效應(yīng)濾波在對(duì)應(yīng)序列中占整個(gè)解碼器優(yōu)化前后比倒的變化。

從圖7可以看出,并行化優(yōu)化去塊效應(yīng)濾波性能能整體提升解碼器近13%的性能,使得解碼器能在移動(dòng)設(shè)備上能實(shí)現(xiàn)更大分辨率的視頻播放。

[1]FRANK B,BENJAMIN B,KARSTEN S,et al.HEVC complexity and implementation analysis[J].IEEE Trans.Circuits and Systems for Video Technoligy,2012,22(12):1685-1696.

[2] 唐添,王進(jìn),劉運(yùn)強(qiáng),等.去塊效應(yīng)方法的研究[J].電視技術(shù),2008,32(2):16-18.

[3] SULLIVAN G J,OHM J R,HAN W J,et al.Overview of the high efficiency video coding(HEVC)standard[J].IEEE Trans.Circuits and System for Video Technology,2012,22(12):1649-1668.

[4] Recommendation ITU-T H.265,Audiovisual and multimedia systems,infrastructure of audiovisual services coding of moving vide,high efficiency video coding[S].2013.

[5]HAN W J,OHM J R,SULLIVAN G J,et al.High efficiency video coding(HEVC)text specification draft 6[C]//Proc.8th JCT-VC Meeting.San Jose,CA,USA:[s.n.],2012:56-59.

[6] Cortex-A8 Technical Reference Manual[EB/OL].[2014-09-28].http://www.docin.com/p-97569305.htm l.

猜你喜歡
解碼器方塊解碼
有多少個(gè)方塊
《解碼萬噸站》
科學(xué)解碼器(一)
不一樣的方塊橋
科學(xué)解碼器(二)
科學(xué)解碼器(三)
謎題方塊
線圣AudioQuest 發(fā)布第三代Dragonfly Cobalt藍(lán)蜻蜓解碼器
解碼eUCP2.0
NAD C368解碼/放大器一體機(jī)