《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 一種H.264/AVC快速分?jǐn)?shù)運(yùn)動(dòng)估計(jì)算法*
一種H.264/AVC快速分?jǐn)?shù)運(yùn)動(dòng)估計(jì)算法*
2014年微型機(jī)與應(yīng)用第10期
馬世銀, 蔣 林
西安郵電大學(xué) 研究生院, 陜西 西安
摘要: H.264/AVC是ITU-T視頻編碼專家組和ISO/IEC運(yùn)動(dòng)圖像專家組共同制定的視頻編碼標(biāo)準(zhǔn)[1]。在保證圖像質(zhì)量不變的情況下,H.264/AVC的壓縮效率期望比之前視頻編碼標(biāo)準(zhǔn)高一倍,高數(shù)據(jù)壓縮率必然要求H.264/AVC編碼方式較之前標(biāo)準(zhǔn)更為復(fù)雜。在H.264/AVC中,幀間預(yù)測(cè)占用60%以上編碼時(shí)間,是影響編碼器整體性能最重要的一個(gè)組成部分[2]。為了縮短運(yùn)動(dòng)估計(jì)時(shí)間,研究人員提出了不同的快速算法,其出發(fā)點(diǎn)都是在視頻質(zhì)量下降不大的情況下大幅度縮短編碼時(shí)間,本文依據(jù)該思想提出一種通過減少分割模式來縮短編碼時(shí)間的快速分?jǐn)?shù)運(yùn)動(dòng)估計(jì)算法。
Abstract:
Key words :

摘  要: 基于對(duì)快速分?jǐn)?shù)運(yùn)動(dòng)估計(jì)算法和參考軟件JM18.4中分?jǐn)?shù)運(yùn)動(dòng)估計(jì)算法的研究,針對(duì)H.264/AVC提出了一種快速分?jǐn)?shù)運(yùn)動(dòng)估計(jì)算法。實(shí)驗(yàn)結(jié)果表明,該算法能夠有效減少H.264/AVC 編碼器的計(jì)算復(fù)雜度,并能夠保證峰值信噪比降低(<0.045 dB),視頻質(zhì)量下降微乎其微。

關(guān)鍵詞: H.264/AVC; 快速算法; 分?jǐn)?shù)運(yùn)動(dòng)估計(jì)

       H.264/AVC是ITU-T視頻編碼專家組和ISO/IEC運(yùn)動(dòng)圖像專家組共同制定的視頻編碼標(biāo)準(zhǔn)[1]。在保證圖像質(zhì)量不變的情況下,H.264/AVC的壓縮效率期望比之前視頻編碼標(biāo)準(zhǔn)高一倍,高數(shù)據(jù)壓縮率必然要求H.264/AVC編碼方式較之前標(biāo)準(zhǔn)更為復(fù)雜。在H.264/AVC中,幀間預(yù)測(cè)占用60%以上編碼時(shí)間,是影響編碼器整體性能最重要的一個(gè)組成部分[2]。為了縮短運(yùn)動(dòng)估計(jì)時(shí)間,研究人員提出了不同的快速算法,其出發(fā)點(diǎn)都是在視頻質(zhì)量下降不大的情況下大幅度縮短編碼時(shí)間,本文依據(jù)該思想提出一種通過減少分割模式來縮短編碼時(shí)間的快速分?jǐn)?shù)運(yùn)動(dòng)估計(jì)算法。

       1 快速分?jǐn)?shù)運(yùn)動(dòng)估計(jì)算法分析

       1.1 JM18.4參考軟件分?jǐn)?shù)運(yùn)動(dòng)估計(jì)

      H.264/AVC 采用塊尺寸可變的運(yùn)動(dòng)估計(jì),JM18.4中采用圖1所示的7種模式來描述H.264/AVC中宏塊的分割方式[3]。分?jǐn)?shù)運(yùn)動(dòng)估計(jì)分為1/2像素運(yùn)動(dòng)估計(jì)和1/4像素運(yùn)動(dòng)估計(jì)兩個(gè)階段。1/2像素運(yùn)動(dòng)估計(jì)利用6抽頭濾波器插值半像素點(diǎn),然后在整數(shù)運(yùn)動(dòng)向量所指向區(qū)域內(nèi)進(jìn)一步細(xì)化整數(shù)運(yùn)動(dòng)向量,從而得到41個(gè)1/2像素運(yùn)動(dòng)向量;緊接著執(zhí)行1/4像素運(yùn)動(dòng)估計(jì),從而得到41個(gè)1/4像素運(yùn)動(dòng)向量。接下來就要確定宏塊的最終分割模式,即模式選擇。模式選擇首先為每一個(gè)8×8子宏塊找到最優(yōu)的分割方式,然后為宏塊找到最優(yōu)的分割方式。

       1.2 基于減少模式的分?jǐn)?shù)運(yùn)動(dòng)估計(jì)

       在分?jǐn)?shù)運(yùn)動(dòng)估計(jì)階段,為了找到41個(gè)宏塊和子宏塊的分?jǐn)?shù)運(yùn)動(dòng)向量,分?jǐn)?shù)運(yùn)動(dòng)估計(jì)本應(yīng)該像整數(shù)運(yùn)動(dòng)估計(jì)一樣要遍歷宏塊的7種模式,但為了降低分?jǐn)?shù)運(yùn)動(dòng)估計(jì)的復(fù)雜度,本分?jǐn)?shù)運(yùn)動(dòng)估計(jì)算法僅遍歷其中部分模式。通過對(duì)JM18.4做大量的實(shí)驗(yàn),發(fā)現(xiàn)單方面大幅度減少分割模式,視頻的峰值性噪比會(huì)急劇下降。為了保證編碼效率不會(huì)大幅度降低,可通過其他方法將最可能的模式限定在少數(shù)的模式之中,這樣既能保證編碼效率又能降低分?jǐn)?shù)運(yùn)動(dòng)估計(jì)復(fù)雜度。

       1.3 基于模式相關(guān)的分?jǐn)?shù)運(yùn)動(dòng)估計(jì)

     實(shí)驗(yàn)發(fā)現(xiàn),不同幀中的宏塊分割模式存在很大的差異,但是在同一幀中宏塊分割模式的分布卻呈現(xiàn)一定的局部性,即宏塊的分割模式與其相鄰宏塊的分割模式有很大的關(guān)系,對(duì)于子宏塊也呈現(xiàn)這種規(guī)律。表1給出了相鄰宏塊的分割全為16×16時(shí),在不同測(cè)試序列中當(dāng)前宏塊編碼模式為16×16以及編碼模式為16×16、16×8或者8×16所占百分比。由表1可以看出,當(dāng)前宏塊編碼模式為16×16的概率高達(dá)90%以上,當(dāng)前宏塊編碼模式為16×16、16×8或者8×16的概率比16×16略高。

6XF3YHTI5797EMWPC55JQGF.jpg

      從以上分析中可看出,宏塊的編碼模式之間有很強(qiáng)的相關(guān)性,因此可以利用這種相關(guān)性來預(yù)測(cè)宏塊的編碼模式,利用這種方法可以將編碼模式限定在為數(shù)不多的幾個(gè)模式中,從而減少編碼器的計(jì)算復(fù)雜度。

       2 快速分?jǐn)?shù)運(yùn)動(dòng)估計(jì)算法描述

      通過以上分析可知,當(dāng)前宏塊和子宏塊的最優(yōu)分割模式與相鄰宏塊和子宏塊的分割模式密切相關(guān),基于此,本文提出了一種快速分?jǐn)?shù)運(yùn)動(dòng)估計(jì)算法,利用該算法能夠?qū)⒋幚淼?種模式減少到兩種模式,從理論上應(yīng)該可以減少 71%的計(jì)算量。該算法步驟具體如下。

       (1) 根據(jù)相鄰宏塊的分割模式預(yù)測(cè)當(dāng)前宏塊的分割模式;

       (2) 如果當(dāng)前宏塊的分割模式為8×8,則利用相鄰子宏塊的分割模式進(jìn)一步確定當(dāng)前子宏塊的分割模式;

       (3) 考慮到宏塊或者子宏塊的分割模式并不總是與其相鄰塊的分割模式一致,因此可在整數(shù)運(yùn)動(dòng)估計(jì)結(jié)束后,根據(jù)殘差代價(jià)和運(yùn)動(dòng)向量殘差代價(jià)確定宏塊和子宏塊的另一種分割模式;

       (4) 優(yōu)化整數(shù)運(yùn)動(dòng)向量,得到分?jǐn)?shù)運(yùn)動(dòng)向量,并從這兩種模式中找到一種最優(yōu)的分割方式。

       2.1 當(dāng)前宏塊預(yù)測(cè)模式

     表2給出了當(dāng)前宏塊的預(yù)測(cè)模式,具體預(yù)測(cè)方法為:(1)相鄰左邊宏塊的分割模式為16×16或者8×16,相鄰右邊宏塊的分割模式16×16或者16×8,則當(dāng)前宏塊的預(yù)測(cè)模式為16×16;(2)相鄰左邊宏塊的模式為16×8或者8×8,相鄰右邊宏塊的分割模式16×16或者16×8,則當(dāng)前宏塊的預(yù)測(cè)模式為16×8; (3)相鄰左邊宏塊的分割模式為16×16或者8×16,相鄰右邊宏塊的分割模式為8×16或者8×8,則當(dāng)前宏塊的預(yù)測(cè)模式為8×16;(4)相鄰左邊宏塊的分割模式為16×8或者8×8,相鄰右邊宏塊的分割模式為8×16或者8×8,則當(dāng)前宏塊的預(yù)測(cè)模式為8×8。

KK87XIP2356GQ0L`I@Y[(UG.jpg

       2.2 當(dāng)前子宏塊預(yù)測(cè)模式

     表3給出了當(dāng)前子宏塊的預(yù)測(cè)模式。子宏塊預(yù)測(cè)模式的預(yù)測(cè)方法與宏塊預(yù)測(cè)模式的預(yù)測(cè)方法非常類似,只是其對(duì)應(yīng)模式的高度和寬度僅為對(duì)應(yīng)宏塊的一半。

PQ(1%QJAL3{C`W02}T(94ZF.jpg

       3 實(shí)驗(yàn)結(jié)果及分析

      為了驗(yàn)證本文提出的快速分?jǐn)?shù)運(yùn)動(dòng)估計(jì)算法,對(duì)JM18.4作了相應(yīng)的修改并采用BUS和CREW兩個(gè)測(cè)試序列來驗(yàn)證本算法,每個(gè)測(cè)試序列為100幀,寬高比為352×288,Y:U:V格式為4:2:0。測(cè)試環(huán)境為Pentium(R) Dual Core E5300 2.60 GHz CPU,2 GB內(nèi)存的PC, Windows 7 Ultimate操作系統(tǒng)。實(shí)驗(yàn)結(jié)果如表4和圖2所示。從表4可以看出,本文提出的優(yōu)化算法可以在PSNR降低小于0.045 dB、比特率增加不超過2.0%的前提下,整體編碼速率提高25%~31%。同時(shí),從圖2可以看出,利用該算法編碼的視頻PSNR基本上沒有降低。

XWUUZ)V(D0_BK[7USS4M%}7.jpg

       本文為解決H.264/AVC分?jǐn)?shù)運(yùn)動(dòng)估計(jì)運(yùn)算量大的問題,根據(jù)其相鄰分割和子分割模式之間相關(guān)性強(qiáng)的特點(diǎn),提出了一種快速分?jǐn)?shù)運(yùn)動(dòng)估計(jì)算法。該算法充分利用已編碼宏塊和子宏塊的分割模式來預(yù)測(cè)當(dāng)前宏塊和子宏塊的編碼模式,使得宏塊和子宏塊的最終分割模式與全模式的宏塊和子宏塊的分割模式更為接近,從而保證了在圖像質(zhì)量基本不變的情況下大幅度降低編碼器計(jì)算復(fù)雜度。

參考文獻(xiàn)

[1] ITU-T. H.264, ITU-T rec advanced video coding for generic audio visual[S].2012.

[2] 凃成,余諒.運(yùn)動(dòng)估計(jì)UMHexagonS算法的研究與改進(jìn)[J].微型機(jī)與應(yīng)用, 2013,32(7):40-45.

[3] Song Hongtao, Gao Zhiyong, Zhang Xiaoyun. Novel fastmotion estimation and mode decision for H.264 real-timehigh-definition encoding[J]. IEEE Transations on Circuits Systems for Video Technology, 2012,22(13):43-48.

[4] 朱凱迪,陳一民,譚志鵬,等.H.264 運(yùn)動(dòng)估計(jì)算法研究[J].計(jì)算機(jī)工程,2011,37(19):286-28.

[5] 姜有田,李金良.一種適用于H.264的分?jǐn)?shù)像素快速運(yùn)動(dòng)估計(jì)算法[J].計(jì)算機(jī)工程與設(shè)計(jì), 2006,27(19):3682-3685.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。