姜 峰,姜 東,劉 芳
(中國科學(xué)院微電子研究所,北京100029)
H.264/AVC視頻壓縮標(biāo)準(zhǔn)與早期視頻編碼標(biāo)準(zhǔn)(如MPEG-4,H.263 等)相比,具有更優(yōu)異的壓縮性能[1-4]。H.264標(biāo)準(zhǔn)中采用了多種新技術(shù)提高編碼效率,例如多參考幀預(yù)測(cè)、1/4像素精度的運(yùn)動(dòng)補(bǔ)償、自適應(yīng)環(huán)路去塊濾波等。其中多參考幀的使用提高了最匹配編碼塊的搜索概率,因而對(duì)于整體編碼效率的提升有很大貢獻(xiàn)。幾個(gè)參考幀共同用于運(yùn)動(dòng)估計(jì)和運(yùn)動(dòng)補(bǔ)償,在編碼端和解碼端分別存儲(chǔ)多個(gè)參考幀。根據(jù)碼流中指定的存儲(chǔ)管理操作在解碼端重現(xiàn)編碼端設(shè)置的參考幀,通過提高運(yùn)動(dòng)估計(jì)時(shí)最佳匹配的檢索概率來提升壓縮效率。
本文提出了一種新型多參考幀預(yù)測(cè)方法——基于擴(kuò)展幀的多參考幀預(yù)測(cè):根據(jù)已解碼幀預(yù)測(cè)或插入一幀新的數(shù)據(jù)作為后續(xù)圖像的參考幀。這樣就提高了原始序列的時(shí)域分辨率,使后續(xù)編碼圖像和參考圖像更加接近,進(jìn)而提高了運(yùn)動(dòng)估計(jì)的精確性,提升了編碼性能。
在 MPEG-4[5],H.263[6]和 H.264/AVC 中,使用了時(shí)域直接(direct)模式來提高B幀圖像的編碼效率,時(shí)域直接模式不需要傳輸運(yùn)動(dòng)矢量,而是通過雙向預(yù)測(cè)的后向參考幀的共同位置塊得到運(yùn)動(dòng)矢量[7-9]。如圖1,假設(shè)目標(biāo)物體勻速運(yùn)動(dòng),通過前向、后向參考幀中共同位置(co-located)塊的運(yùn)動(dòng)矢量可以得到當(dāng)前塊的運(yùn)動(dòng)矢量,而不需要編碼該運(yùn)動(dòng)矢量。用List0和List1來索引雙向預(yù)測(cè)的參考幀。前向、后向運(yùn)動(dòng)矢量可以通過如下公式得到
圖1 B幀圖像的直接模式
因此,壓縮比特流中不需要傳輸任何運(yùn)動(dòng)矢量的信息。解碼端使用與編碼端相同的算法便可恢復(fù)出當(dāng)前塊的運(yùn)動(dòng)矢量。對(duì)于一些特別情況如未覆蓋的圖像邊界、重疊塊等,運(yùn)動(dòng)矢量設(shè)為零[6]。
這種方法大大節(jié)省了傳輸運(yùn)動(dòng)矢量的信息量進(jìn)而占據(jù)了B幀編碼的絕大部分。統(tǒng)計(jì)結(jié)果表明,約40%~50%塊的編碼模式為直接(direct)模式。
受B幀直接預(yù)測(cè)模式的啟發(fā),筆者提出一種新的多參考幀預(yù)測(cè)方法——基于擴(kuò)展幀的多參考幀預(yù)測(cè)。
類似B幀直接(direct)預(yù)測(cè)模式,可以采取時(shí)域上直接預(yù)測(cè)模式擴(kuò)展或插入一個(gè)新的參考幀,用做后續(xù)圖像的參考幀。與B幀圖像直接模式不同的是,擴(kuò)展幀預(yù)測(cè)只從已有幀中擴(kuò)展一幀新的數(shù)據(jù)作為參考幀序列中進(jìn)行運(yùn)動(dòng)估計(jì)時(shí)額外可選的一幀參考數(shù)據(jù),在碼流中仍然需要傳輸運(yùn)動(dòng)矢量信息。將編碼流程進(jìn)行修改后可以得到使用擴(kuò)展幀預(yù)測(cè)的編碼器原理圖(見圖2)。
圖2 編碼端的擴(kuò)展幀預(yù)測(cè)
在解碼端采取相同的方法可以得到使用擴(kuò)展幀預(yù)測(cè)的解碼器原理圖(見圖3)。
圖3 解碼端的擴(kuò)展幀預(yù)測(cè)
基于擴(kuò)展幀的多參考幀預(yù)測(cè)方法主要包括以下幾個(gè)步驟:首先,進(jìn)行運(yùn)動(dòng)矢量的預(yù)處理,由于一些運(yùn)動(dòng)矢量不能反映實(shí)際的運(yùn)動(dòng)情況,所以首先對(duì)運(yùn)動(dòng)矢量進(jìn)行濾波;然后,使用處理后的運(yùn)動(dòng)矢量擴(kuò)展出新的一個(gè)參考幀;最后,將新的擴(kuò)展參考幀插入在參考幀列表中進(jìn)行運(yùn)動(dòng)估計(jì)。
多數(shù)視頻編碼標(biāo)準(zhǔn)中,運(yùn)動(dòng)估計(jì)過程力求得到最小誤差(如SAD,MSE)的最小化,雖然這樣減少了傳輸碼流的比特率,卻并不能完全反映實(shí)際的幀間運(yùn)動(dòng)情況,尤其是運(yùn)動(dòng)非常劇烈的視頻序列。同時(shí),編碼端過于復(fù)雜的運(yùn)動(dòng)估計(jì)會(huì)在解碼端引起很大的計(jì)算開銷。所以,為更加充分利用碼流中傳輸?shù)倪\(yùn)動(dòng)信息,以獲得高質(zhì)量的擴(kuò)展幀或插入幀,對(duì)運(yùn)動(dòng)矢量信息進(jìn)行一次預(yù)處理。
對(duì)于一些運(yùn)動(dòng)矢量非常大的序列,可以使用平滑濾波濾除異常的運(yùn)動(dòng)矢量,平滑濾波器不局限于中值濾波器,如圖4所示,最簡單常用的是中值濾波器,通過相鄰的8個(gè)運(yùn)動(dòng)矢量得到當(dāng)前的運(yùn)動(dòng)矢量MVi,j。即
圖4 運(yùn)動(dòng)矢量的中值濾波
擴(kuò)展或插入一幀新的參考幀有不同的幾種實(shí)現(xiàn)方法,包括使用兩個(gè)參考幀的直接插入法,使用一個(gè)參考幀的直接擴(kuò)展法和使用兩個(gè)參考幀的直接擴(kuò)展法。插入的一幀位于可選的兩個(gè)參考幀中間。和插入幀相比擴(kuò)展幀將更接近于相鄰的P幀,得到更好的運(yùn)動(dòng)估計(jì)的結(jié)果。本文主要介紹兩種基于擴(kuò)展幀的多參考幀預(yù)測(cè)的實(shí)現(xiàn)方法:
1)基于假設(shè)的直接擴(kuò)展法
如前所述,擴(kuò)展幀將被放在參考幀序列中作為可選的新的參考幀,擴(kuò)展幀越接近當(dāng)前幀則越利于運(yùn)動(dòng)估計(jì)?;谶@樣的假設(shè),可以得到直接擴(kuò)展法如圖5所示,擴(kuò)展幀的運(yùn)動(dòng)矢量的計(jì)算,首先找到共同位置塊,由共同位置塊的運(yùn)動(dòng)矢量進(jìn)而得到歸一化的運(yùn)動(dòng)矢量MV1和MV2。則擴(kuò)展幀的運(yùn)動(dòng)矢量的計(jì)算公式為
式中:TD1和TD1+TD2分別代表擴(kuò)展幀與參考幀1和參考幀2之間的時(shí)域距離;MV是共同位置塊的運(yùn)動(dòng)矢量;MV1和MV2分別代表擴(kuò)展幀與參考幀1和參考幀2之間的運(yùn)動(dòng)矢量。
2)使用反向運(yùn)動(dòng)矢量的直接擴(kuò)展法
這種方法是使用共同位置塊的反向運(yùn)動(dòng)矢量得到擴(kuò)展塊的運(yùn)動(dòng)矢量。如圖6虛線所示。擴(kuò)展塊的運(yùn)動(dòng)矢量計(jì)算公式為
式中:TD1和TD2分別代表擴(kuò)展幀與參考幀1和參考幀2之間的時(shí)域距離。MV是共同位置塊的運(yùn)動(dòng)矢量,MV1是由MV計(jì)算出的反向運(yùn)動(dòng)矢量。
需要注意的是使用此方法得到的運(yùn)動(dòng)矢量可能會(huì)出現(xiàn)如圖7所示的一些問題。
圖7 閉塞區(qū)域和未覆蓋區(qū)域
例如,擴(kuò)展幀中的閉塞區(qū)域和未覆蓋區(qū)域。MV1和MV2分別代表指向前一參考幀的A塊和B塊的運(yùn)動(dòng)矢量,通過虛線所示的運(yùn)動(dòng)矢量反向以后得到擴(kuò)展塊A’和B’。所以擴(kuò)展幀中會(huì)出現(xiàn)一個(gè)未覆蓋的區(qū)域Ui,同時(shí)也會(huì)出現(xiàn)一些被覆蓋多次或閉塞的區(qū)域,例如Oi。本文對(duì)未覆蓋區(qū)域以及重疊、閉塞區(qū)域的情況進(jìn)行了對(duì)應(yīng)的特殊處理。針對(duì)未覆蓋區(qū)域,定義塊Ui代表參考幀t和擴(kuò)展幀t+1中出現(xiàn)的未覆蓋區(qū)域,當(dāng)F(t+1)中出現(xiàn)的Ui塊被編碼為intra類型時(shí)表明在F(t-1)中沒有對(duì)應(yīng)的匹配塊。所以Ui是從F(t-1)到F(t+1)的未覆蓋域。因未覆蓋區(qū)域并沒有任何運(yùn)動(dòng)信息,可使用啟發(fā)式算法,如果像素源自Intra類型的塊并且沒有和其他塊進(jìn)行運(yùn)動(dòng)補(bǔ)償,則可以得到它的表達(dá)式
因?yàn)樵搲K是intra類型編碼,則沒有相關(guān)運(yùn)動(dòng)信息,可得到其運(yùn)動(dòng)矢量為0的假設(shè)。因?yàn)殚]塞的區(qū)域和重疊的區(qū)域經(jīng)常出現(xiàn)在背景中,而背景往往是靜止的。所以將閉塞區(qū)域和重疊區(qū)域的個(gè)別塊的運(yùn)動(dòng)矢量設(shè)為0。針對(duì)閉塞區(qū)域,定義塊Oi表示在F(t+1),F(xiàn)(t-1)以及F(t)幀出現(xiàn)的閉塞區(qū)域。閉塞區(qū)域外的其他所有區(qū)域都可以使用運(yùn)動(dòng)補(bǔ)償。^I(p,t)沒有使用任何參考幀數(shù)據(jù),這樣的閉塞的區(qū)域可采取共同位置像素給相應(yīng)像素賦值。
針對(duì)擴(kuò)展幀中運(yùn)動(dòng)補(bǔ)償后會(huì)出現(xiàn)一些重疊的區(qū)域,可將其表示為
綜上所述,可以得到所提出算法的流程如圖8所示。
圖8 擴(kuò)展幀獲取算法流程
采用如下配置對(duì)本文提出算法進(jìn)行測(cè)試:測(cè)試代碼H.264參考軟件JM12;測(cè)試序列foreman_qcif,silent_qcif,mobile_qcif和container_qcif;幀數(shù)為300幀;幀率為30 f/s(幀/秒);編碼幀格式為 I…14P;QP 值為24,28,32,36。
表1列出了本文算法與參考軟件JM12相比平均PSNR的提升以及比特率的節(jié)省。圖9是本文提出方法與H.264/AVC參考軟件的R-D性能的對(duì)比。可以看出,本文算法對(duì)于container,silent等運(yùn)動(dòng)不劇烈的序列的RD性能提升相比mobile等運(yùn)動(dòng)較為劇烈的視頻序列來說更加明顯,這表明在運(yùn)動(dòng)矢量的預(yù)處理上進(jìn)行進(jìn)一步優(yōu)化是本文算法進(jìn)一步提升的方向。
表1 與H.264參考軟件相比平均PSNR值提升和比特率的節(jié)省
本文提出了一種新型基于擴(kuò)展幀的多參考幀預(yù)測(cè)方法,該算法提升了原圖像序列的時(shí)域分辨率,使得擴(kuò)展幀與當(dāng)前編碼幀更加接近,增大了運(yùn)動(dòng)估計(jì)中得到最佳匹配的概率。進(jìn)而提升了編碼效率。測(cè)試結(jié)果表明,本文算法和H.264/AVC參考軟件相比獲得了PSNR值的提升和比特率的降低。測(cè)試序列的R-D性能均有顯著提高,尤其是對(duì)運(yùn)動(dòng)不劇烈的序列有明顯優(yōu)勢(shì)。對(duì)于運(yùn)動(dòng)較為劇烈的序列,對(duì)本文擴(kuò)展幀算法步驟做進(jìn)一步優(yōu)化,對(duì)運(yùn)動(dòng)矢量進(jìn)行進(jìn)一步歸類篩選后,將會(huì)得到更好的性能提升,這也是下一步工作的努力方向。
圖9 本文算法對(duì)幾種常用測(cè)試序列的R-D性能提升
[1]WIEGAND T,SULLIVAN G J,BJ?NTEGAARD G,et al.Overview of the H.264/AVC video coding standard[J].IEEE Trans.Circuits and Systems for Video Technology,2003,13(7):560-576.
[2]WENGER S.H.264/AVC over IP[J].IEEE Trans.Circuits and Systems for Video Technology,2003,13:645-656.
[3]ITU-T.ITU-T Rec.H.264/ISO/IEC 14496-10 AVC[S].2003.
[4]袁曉雷,魏江,張鵬.嵌入式平臺(tái)H.264軟件解碼器的優(yōu)化[J].電視技術(shù),2010,34(5):36-39.
[5]ISO/IEC JTC1.Coding of audio and visual objects-part:2 visual[S].2000.
[6]ITU-T.Video coding for low bitrate communication[S].1998.
[7]FLIERL M,GIROD B.Generalized B pictures and the draft H.264/AVC video compression standard[J].IEEE Trans.Circuits and Systems for Video Technology,2003,13:587-597.
[8]TOURAPIS A M,WU Feng,LI Shipeng.Direct macroblock coding for predictive(P)pictures in the H.264 standard[J].SPIE Visual Communications and Image Processing(VCIP),2004,5308:364-371.
[9]JI Xiangyang,LU Yan,ZHAO Debin,et al.Enhanced direct mode coding for bi-predictive pictures[C]//Proc.ISCAS 2004.[S.l.]:IEEE Press,2004:785-788.