新聞中心

EEPW首頁 > 電源與新能源 > 設(shè)計(jì)應(yīng)用 > H.264/AVC解碼器運(yùn)動(dòng)矢量預(yù)測(cè)模塊設(shè)計(jì)與應(yīng)用

H.264/AVC解碼器運(yùn)動(dòng)矢量預(yù)測(cè)模塊設(shè)計(jì)與應(yīng)用

作者: 時(shí)間:2016-12-09 來源:網(wǎng)絡(luò) 收藏

、C塊的參考索引RefIdxA[f/b]、RefIdxB[f/b]、RefIdxC[f/b]中大于0的最小值來預(yù)測(cè)出當(dāng)前分割的參考索引號(hào)ReFrame[f/b],如果RefIdxA[f/b]、RefIdxB[f/b]、RefIdxC[f/b]全部小于0,則ReFrame[f/b]取-1;然后用ReFrame[f/b]與A、B、C塊的參考索引進(jìn)行對(duì)比,如果ReFrame[f/b]只是A、B、C其中的1個(gè),現(xiàn)令其為SelectedBlk的索引號(hào)相同,則當(dāng)前分割的運(yùn)動(dòng)矢量中,(MVx,MVy)取SelectedBlk的(MVxS,MVyS);否則取A、B、C塊運(yùn)動(dòng)矢量的中值。

本文引用地址:http://butianyuan.cn/article/201612/328516.htm

在空間模式及復(fù)制模式下,需要使用空間上相鄰的上邊及左邊的4×4塊的運(yùn)動(dòng)矢量信息來對(duì)空間模式、復(fù)制模式中的運(yùn)動(dòng)矢量以及ReadMV模式中的MVp進(jìn)行計(jì)算。針對(duì)非MBAFF模式和MBAFF模式所需要的block的運(yùn)動(dòng)矢量信息分析如下:

(1)在非MBAFF模式時(shí),硬件實(shí)現(xiàn)需要維持1個(gè)4×4 block行,以及當(dāng)前待解碼宏塊的左邊4個(gè)block列的運(yùn)動(dòng)矢量信息。解碼器如果需要支持1 920×1 280分辨率視頻流的解碼,則就要存儲(chǔ)(1 920/4+4+1)=485個(gè)4×4 block的運(yùn)動(dòng)矢量信息。

(2)在MBAFF模式時(shí),由于宏塊對(duì)的出現(xiàn)使得所需要的block信息相比非MBAFF模式的情況更加復(fù)雜。硬件實(shí)現(xiàn)時(shí)需要維持2個(gè)4×4 block行,以及當(dāng)前待解碼宏塊的左邊宏塊對(duì)的8個(gè)block列的運(yùn)動(dòng)矢量信息。解碼器如果需要支持1 920×1 280分辨率視頻流的解碼,則就要存儲(chǔ)(2×(1920/4)+8+1)=969個(gè)4×4 block的運(yùn)動(dòng)矢量信息。

設(shè)計(jì)中將這部分信息存放在片內(nèi)SRAM中。此外,為了便于讀取以及節(jié)省存取時(shí)間,設(shè)計(jì)中將1個(gè)block的運(yùn)動(dòng)矢量信息存放于SRAM 1個(gè)地址單元中。1個(gè)地址單元的數(shù)據(jù)結(jié)構(gòu)需要存放前向參考索引RefIdxF、后向參考索引RefIdxB、前向水平運(yùn)動(dòng)矢量MVxF、前向垂直運(yùn)動(dòng)矢量MVyF、后向水平運(yùn)動(dòng)矢量MVxB、后向垂直運(yùn)動(dòng)矢量MVyB。

通過以上分析在硬件實(shí)現(xiàn)時(shí)采用如圖11所示的結(jié)構(gòu)對(duì)該模塊進(jìn)行設(shè)計(jì)。設(shè)計(jì)中使用1個(gè)Local Sram作為1個(gè)Line buffer來對(duì)空間模式及復(fù)制模式下需要使用到的空間上相鄰塊的運(yùn)動(dòng)矢量信息進(jìn)行存儲(chǔ)。計(jì)算完畢后得出完成信號(hào)給地址生成器以便其產(chǎn)生相應(yīng)的地址將解碼好的數(shù)據(jù)存回Local Sram中供后續(xù)解碼使用。

2.2 時(shí)間模式重建算法和硬件設(shè)計(jì)

由圖可見,時(shí)間模式運(yùn)動(dòng)矢量重建的步驟為:

(1)當(dāng)前待解的分割先在List[1][0]中找到與自己位置相對(duì)應(yīng)的分割相應(yīng)的、在List[0]中的參考圖像List[0][x],將該參考圖像作為當(dāng)前分割的List[0]參考。

(2)找出List[1][0]圖像中與當(dāng)前分割位置相對(duì)應(yīng)的分割指向List[0][x]的運(yùn)動(dòng)矢量MVCol[2]和參考索引refIdxCol[2]。

(3)根據(jù)當(dāng)前分割所在圖像與List[0][x]圖像的播放順序POC的差值tb[2]、List[0][x]與List[1][0]的POC的差值td[2],通過如下公式量化出當(dāng)前分割指向List[0][x]圖像的運(yùn)動(dòng)矢量MVL0以及指向List[1][0]的運(yùn)動(dòng)矢量MVL1。

tb=Clip3(-128,127,DiffPicOrderCnt(currPicOrField, pic0))

td=Clip3(-128,127,DiffPicOrderCnt(pic1,pic0))

tx=(16 384+Abs(td/2))/td

DistScaleFactor=Clip3(-1024,1023,(tb*tx+32)》6)

MVL0=(DistScaleFactor*mvCol+128)》8

MVL1=MVL0-MVCol

(4) 根據(jù)refIdxCol和當(dāng)前圖像是幀或場(chǎng)圖像標(biāo)志field_pic_flag以及當(dāng)前宏塊是幀宏塊或場(chǎng)宏塊來計(jì)算refIdxL0:

refIdxL0=((refIdxCol<0)?0:MapColToList0(refIdxCol))

refIdxL1=0

在非MBAFF模式時(shí),圖像類型可以是FRM和FLD表示當(dāng)前是幀或場(chǎng);在MBAFF模式時(shí),圖像類型以AFRM表示當(dāng)前圖像是宏塊級(jí)幀場(chǎng)自適應(yīng)。

在MBAFF模式時(shí),首先根據(jù)當(dāng)前圖像類型PicCodingStruct(CurrPic)[2]和參考圖像類型PicCodingStruct(colPic)[2]來計(jì)算1個(gè)宏塊地址mbAddrX,然后再根據(jù)mbAddrX是否為場(chǎng)宏塊以及當(dāng)前宏塊是否為場(chǎng)宏塊來計(jì)算出在List[1][0]中與當(dāng)前分割位置相對(duì)應(yīng)的宏塊mbAddrCol,最后得到其中相應(yīng)宏塊分割mbAddrColmbPartIdxColsubMbPartIdxCol的運(yùn)動(dòng)矢量MVCol和參考索引refIdxCol,MVCol和refIdxCol取值為mbAddrCol相應(yīng)分割的前向或者后向運(yùn)動(dòng)矢量和參考索引。

因此,對(duì)于已經(jīng)解碼的圖像需要存儲(chǔ)每個(gè)宏塊的運(yùn)動(dòng)矢量、參考索引、宏塊類型(mbType、subMbType)和宏塊的幀場(chǎng)標(biāo)志mb_field_decoding_flag[2],以用于當(dāng)前圖像宏塊的運(yùn)動(dòng)矢量預(yù)測(cè)。

時(shí)間模式下運(yùn)動(dòng)矢量重建的硬件實(shí)現(xiàn)框圖如圖13所示。設(shè)計(jì)中采用了空間模式以及復(fù)制模式硬件實(shí)現(xiàn)所用的Local Sram。這里還在Local Sram中開辟了一段新的存儲(chǔ)空間,用于存放所需要的圖像層信息。與空間及復(fù)制模式一樣,重建后的運(yùn)動(dòng)矢量信息寫回到Local Sram中供后續(xù)解碼使用。

由運(yùn)算公式可見時(shí)間模式下運(yùn)動(dòng)矢量的重建涉及乘法、除法、加法以及減法運(yùn)算,這些運(yùn)算對(duì)于硬件實(shí)現(xiàn)將會(huì)帶來很大的開銷,所以設(shè)計(jì)中將差值運(yùn)算拆分成流水線的形式進(jìn)行運(yùn)算。

本文介紹了H.264/AVC的宏塊自適應(yīng)幀場(chǎng)模式在P幀和B幀的幀間預(yù)測(cè)算法,H.264支持1/4或1/8像素精度的運(yùn)動(dòng)矢量。在1/4像素精度時(shí)可使用6抽頭濾波器來減少高頻噪聲,對(duì)于1/8像素精度的運(yùn)動(dòng)矢量,可使用更為復(fù)雜的8抽頭的濾波器。在進(jìn)行運(yùn)動(dòng)估計(jì)時(shí),編碼器還可選擇"增強(qiáng)"內(nèi)插濾波器來提高預(yù)測(cè)的效果。分析了運(yùn)動(dòng)矢量預(yù)測(cè)模塊的硬件實(shí)現(xiàn),提出了可行的數(shù)據(jù)組織結(jié)構(gòu)和硬件實(shí)現(xiàn)方法。


上一頁 1 2 下一頁

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉