www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 電源 > 數(shù)字電源
[導(dǎo)讀]分析了宏塊自適應(yīng)幀場模式(MBAFF)在P幀和B幀的幀間預(yù)測算法,提出了可行的數(shù)據(jù)組織結(jié)構(gòu)和硬件實現(xiàn)方法。作為完整的解碼器的一部分,其RTL代碼已經(jīng)完成了功能驗證和仿真,證明該設(shè)計是行之有效的。

H.264/AVC支持3種圖像編碼模式:幀模式、場模式和宏塊自適應(yīng)幀場(MBAFF)模式。在幀模式下,1幅圖像被劃分成由16×16宏塊組成的幀;H.264是一種高性能的視頻編解碼技術(shù)。目前國際上制定視頻編解碼技術(shù)的組織有兩個,一個是“國際電聯(lián)(ITU-T)”,它制定的標(biāo)準(zhǔn)有H.261、H.263、H.263+等,另一個是“國際標(biāo)準(zhǔn)化組織(ISO)”它制定的標(biāo)準(zhǔn)有MPEG-1、MPEG-2、MPEG-4等。H.264最大的優(yōu)勢是具有很高的數(shù)據(jù)壓縮比率,在同等圖像質(zhì)量的條件下,H.264的壓縮比是MPEG-2的2倍以上,是MPEG-4的1.5~2倍。本文將探討在解碼的過程中MBAFF模式在P幀和B幀的幀間預(yù)測算法和硬件設(shè)計。

1 幀間預(yù)測技術(shù)

幀間預(yù)測是利用視頻圖像幀間的相關(guān)性,即時間相關(guān)性,來達(dá)到圖像壓縮的目的,廣泛用于普通電視、會議電視、視頻電話、高清晰度電視的壓縮編碼。在圖像傳輸技術(shù)中,活動圖像特別是電視圖像是關(guān)注的主要對象。活動圖像是由時間上以幀周期為間隔的連續(xù)圖像幀組成的時間圖像序列,它在時間上比在空間上具有更大的相關(guān)性。大多數(shù)電視圖像相鄰幀間細(xì)節(jié)變化是很小的,即視頻圖像幀間具有很強的相關(guān)性,利用幀所具有的相關(guān)性的特點進(jìn)行幀間編碼,可獲得比幀內(nèi)編碼高得多的壓縮比。在解碼時,解碼器只需要采用同樣的算法先預(yù)測出運動矢量的預(yù)測值MVp,而后將其與殘差MVd相加便可以恢復(fù)出運動矢量的實際值MV[1]供運動補償使用。MVp[1]取決于運動補償?shù)某叽绾袜徑麺V的有無。

在幀間預(yù)測模式下,宏塊有16×16、16×8、8×16、8×8、8×4、4×8、4×4這7種運動矢量的分割方法。為方便描述,把參考宏塊相應(yīng)分割的運動矢量命名為MVLXN[2],參考索引命名為refIdxLXN,當(dāng)前宏塊分割的運動矢量MVpLX[2]就是通過MVLXN和refIdxLXN預(yù)測得到的。圖1所示為非MBAFF模式時當(dāng)前宏塊分割為16×16的情況,E為當(dāng)前宏塊或宏塊分割,A、B、C分別為E的左、上、右上方的3個相對應(yīng)分割塊。因為人眼對圖像中靜止或活動慢的部分,要求有較高的空間分辨率,而對時間分辨率的要求可低些。這種方法叫幀重復(fù)方法,廣泛應(yīng)用于視頻電話、視頻會議系統(tǒng)中,其圖像幀速率一般為1~15幀/秒。

 

 

1.1 預(yù)測運動矢量MVp的計算

在宏塊分割為16×16、8×8、8×4、4×8和4×4時,運動矢量的預(yù)測值是由參考宏塊分割A(yù)、B、C的運動矢量計算得到的:

(1)如果分割B和C不可用,而分割A(yù)可用,則會對MVLXB、MVLXC、refIdxLXB、refIdxLXC重新賦值:MVLXB=‘MVLXA、MVLXC=MVLXA、refIdxLXB=refIdxLXA、refIdx-LXC=refIdxLXA。

(2)根據(jù)refIdxLXA、refIdxLXB和refIdxLXC的取值計算mvpLX:

①如果分割A(yù)、B、C的參考索引refIdxLXA、 refIdxLXB或refIdxLXC中的一個等于當(dāng)前分割的索引號refIdxLX,則當(dāng)前分割的矢量預(yù)測值由相應(yīng)分割的運動矢量得到:MVpLX=mvLXN。

②如果分割A(yù)、B、C的參考索引refIdxLXA、 refIdxLXB或refIdxLXC都不等于當(dāng)前分割的索引號refIdxLX,則通過取A、B、C的運動矢量中值得到:

MVpLX[0]=Median(MVLXA[0],MVLXB[0],MVLXC[0])

MVpLX[1]=Median(MVLXA[1],MVLXB[1],MVLXC[1])

運動矢量的預(yù)測在當(dāng)前宏塊分割為16×8和8×16的時候會先做如下的判斷,如果不滿足則通過上述取中值的方法得到預(yù)測值:

(1)對于1個宏塊被分割成2個16×8子宏塊的情況

①計算mbPartIdx等于0的子宏塊如圖2(a)所示。如果refIdxLXB等于當(dāng)前分割的refIdxLX,則當(dāng)前塊的矢量預(yù)測值由B宏塊的相應(yīng)分割的矢量得到:MVpLX= MVLXB。

 

 

②計算mbPartIdx等于1的子宏塊如圖2所示,如果refIdxLXA等于當(dāng)前分割的refIdxLX,則當(dāng)前塊的矢量預(yù)測值由A宏塊的相應(yīng)分割的矢量得到:MVpLX=MVLXA。

(2)對于1個宏塊被分割成2個8×16子宏塊的情況:

①計算mbPartIdx等于0的子宏塊如圖2(b)所示。如果refIdxLXA等于當(dāng)前分割的refIdxLX,則當(dāng)前塊的矢量預(yù)測值由B宏塊的相應(yīng)分割的矢量得到:MVpLX=MVLXA。

②計算mbPartIdx等于1的子宏塊如圖2(b)所示,如果refIdxLXC等于當(dāng)前分割的refIdxLX,則當(dāng)前塊的矢量預(yù)測值由C宏塊的相應(yīng)分割的矢量得到:MVpLX=MVLXC。

1.2 參考宏塊分割的運動矢量MVLXN和參考索引refIdxLXN的計算

在計算參考宏塊分割A(yù)、B、C的運動矢量MVLXN和參考索引refIdxLXN之前,應(yīng)先檢測分割C是否可用,如果C不可用,則用分割D的信息代替。A、B、C的運動矢量MVLXN和參考索引refIdxLXN的計算:

(1)如果宏塊mbAddrN不可用或者宏塊mbAddrN為幀內(nèi)編碼,或者mbAddrN相應(yīng)分割或者子宏塊分割的predFlagLX等于0,則對MVLXN置0,對refIdxLXN置-1。

(2)MVLXN為mbAddrN相應(yīng)宏塊分割或者子宏塊分割的運動矢量,refIdxLXN為mbAddrN相應(yīng)宏塊分割的參考索引值:

MVLXN=MvLX[mbPartIdxN][subMbPartIdxN]

refIdxLXN=RefIdxLX[mbPartIdxN]

(3)在MBAFF模式時,需要對MVLXN和refIdxLXN再做1次計算:

①如果當(dāng)前宏塊為場宏塊,而mbAddrN為幀宏塊,則:

MVLXN[1]=MVLXN[1]/2

refIdxLXN=refIdxLXN×2

②如果當(dāng)前宏塊為幀宏塊,而mbAddrN為場宏塊,則:

MVLXN[1]=MVLXN[1]×2

refIdxLXN=refIdxLXN/2

1.3 空間相鄰參考宏塊分割的選擇

在非MBAFF模式時,當(dāng)前宏塊的空間相鄰宏塊地址A、B、C、D的位置如圖3所示??臻g參考宏塊mbAddrN可以是MbAddrA、MbAddrB、MbAddrC、MbAddrD或者CurrMbAddr。

 

 

在MBAFF模式時,當(dāng)前宏塊的空間相鄰宏塊地址A、B、C、D的位置如圖4所示。此時會根據(jù)當(dāng)前宏塊是幀宏塊或者場宏塊currMbFrameFlag以及當(dāng)前宏塊是頂宏塊或者底宏塊mbIsTopMbFlag來計算1個中間值mbAddrX,并根據(jù)mbAddrX的幀場信息mbAddrXFrameFlag來得到最終的參考宏塊MbAddrN。參考宏塊mbAddrN可以是MbAddrA、MbAddrA+1、MbAddrB、MbAddrB+1、MbAddrC、MbAddrC+1、MbAddrD、MbAddrD+1、CurrMbAddr或者CurrMbAddr-1。

1.4 運動矢量預(yù)測所需數(shù)據(jù)的組織

運動矢量的預(yù)測需要當(dāng)前分割的左邊、上邊、左上和右上相應(yīng)分割的MVLXN和refIdxLXN信息來計算得到當(dāng)前分割的MVLX。1個宏塊需要存儲16個block的運動矢量MVLX和參考索引refIdxLX,當(dāng)采用其他分割類型時,每個分割內(nèi)所有block的運動矢量和參考索引為相同值。

幀間預(yù)測按照block存儲和使用數(shù)據(jù)。當(dāng)前宏塊分割的運動矢量和參考索引需要按照block來存儲以用于后面宏塊的預(yù)測。每個分割內(nèi)所有block的運動矢量和參考索引為相同值,所以參考分割的MVLXN和refIdxLXN的引用也可以按照block來進(jìn)行。

因為同一分割內(nèi)所有block的運動矢量和參考索引為相同值,因此,參考分割的MVLXN和refIdx-LXN也就是參考宏塊相應(yīng)的block的MVLX和refIdx-LX。圖5(a)~(d)分別表明了當(dāng)前宏塊采用不同劃分時A、B、C、D 4個參考塊的取值情況。在預(yù)測時一般選取A、B、C塊對當(dāng)前的運動矢量進(jìn)行預(yù)測,當(dāng)C不可用時則選用A、B、D進(jìn)行預(yù)測。在MBAFF模式時,由于參考宏塊的位置不同會作相應(yīng)變化。H.264為了提高碼率控制的能力,量化步長的變化的幅度控制在12.5%左右,而不是以不變的增幅變化。變換系數(shù)幅度的歸一化被放在反量化過程中處理以減少計算的復(fù)雜性。為了強調(diào)彩色的逼真性,對色度系數(shù)采用了較小量化步長。[!--empirenews.page--]

 

 

2 直接預(yù)測模式和硬件設(shè)計

H.264/AVC對運動矢量的重建引入了直接預(yù)測模式,在該模式下運動矢量殘差沒有被傳送,只有宏塊的預(yù)測模式會被傳送。解碼器根據(jù)預(yù)測模式以及其余宏塊的信息對當(dāng)前的運動矢量進(jìn)行恢復(fù)。運動矢量的重建流程如圖6所示。在直接預(yù)測模式下,H.264分別采用3種不同的方式對運動矢量進(jìn)行重建。

 

 

在先前的H.26x系列和MPEG-x系列標(biāo)準(zhǔn)中,都是采用的幀間預(yù)測的方式。在H.264中,當(dāng)編碼Intra圖像時可用幀內(nèi)預(yù)測。對于每個4×4塊(除了邊緣塊特別處置以外),每個像素都可用17個最接近的先前已編碼的像素的不同加權(quán)和(有的權(quán)值可為0)來預(yù)測,即此像素所在塊的左上角的17個像素。顯然,這種幀內(nèi)預(yù)測不是在時間上,而是在空間域上進(jìn)行的預(yù)測編碼算法,可以除去相鄰塊之間的空間冗余度,取得更為有效的壓縮。

(1)復(fù)制模式。在P類型的宏塊中,利用空間上相鄰分割的運動矢量對當(dāng)前的運動矢量進(jìn)行預(yù)測。

(2)空間模式。在B類型的宏塊中,利用空間上相鄰分割的運動矢量對當(dāng)前的運動矢量進(jìn)行預(yù)測。

(3)時間模式。在B類型的宏塊中,通過將時間上相鄰而且在空間上位置相同的8×8分割的運動矢量進(jìn)行重量化來預(yù)測出當(dāng)前的運動矢量。

其中復(fù)制模式和空間模式在算法上具有一定的相似性,差別在于復(fù)制模式只需要重建1個方向的運動矢量,而空間模式需要重建雙向的運動矢量。

2.1 空間模式及復(fù)制模式重建算法和硬件設(shè)計

在這2種模式下:(1)宏塊只能劃分成1個16×16分割或者4個8×8分割。在劃分成4個8×8時,每1個8×8分割可以獨立地被設(shè)置成直接模式或者ReadMV模式;(2)計算當(dāng)前的運動矢量需要借助在空間上相鄰分割的運動矢量來對當(dāng)前分割的運動矢量進(jìn)行重建。此時運動矢量的預(yù)測算法與前面介紹的預(yù)測運動矢量的算法基本相同,所不同的是此時宏塊中的任意1個分割預(yù)測時所使用的相鄰塊信息均由圖7所示的A、B、C、D 4個塊預(yù)測。

 

 

Direct 8×8用A、B、C、D 4個塊進(jìn)行預(yù)測。預(yù)測的基本算法流程如圖8所示。由圖可見,在預(yù)測時首先檢測參考塊C是否可用,如不可用,則C塊的參數(shù)用D塊的參數(shù)代替;而后利用A、B、C塊的參考索引RefIdxA[f/b]、RefIdxB[f/b]、RefIdxC[f/b]中大于0的最小值來預(yù)測出當(dāng)前分割的參考索引號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)行對比,如果ReFrame[f/b]只是A、B、C其中的1個,現(xiàn)令其為SelectedBlk的索引號相同,則當(dāng)前分割的運動矢量中,(MVx,MVy)取SelectedBlk的(MVxS,MVyS);否則取A、B、C塊運動矢量的中值。

 

 

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

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

 

 

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

 

 

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

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

 

 

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

由圖可見,時間模式運動矢量重建的步驟為:

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

(2)找出List[1][0]圖像中與當(dāng)前分割位置相對應(yīng)的分割指向List[0][x]的運動矢量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]圖像的運動矢量MVL0以及指向List[1][0]的運動矢量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)前圖像是幀或場圖像標(biāo)志field_pic_flag以及當(dāng)前宏塊是幀宏塊或場宏塊來計算refIdxL0:

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

refIdxL1=0

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

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

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

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

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

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

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

綜合性IP產(chǎn)品系列可支持H.264的基本/主流/高性能配置和H.265的主流/主流10/主流靜態(tài)圖像配置,提供了跨越不同應(yīng)用的無縫集成和無與倫比的靈活性

關(guān)鍵字: 編碼器 解碼器

中國深圳,2025年5月——全球領(lǐng)先的邊緣AI和智能音頻解決方案提供商XMOS宣布:將于5月27-30日亮相第23屆廣州國際專業(yè)燈光、音響展覽會(prolight + sound Guangzhou,以下簡稱“廣州展”,...

關(guān)鍵字: 智能音頻 邊緣AI 解碼器

使用該套“免開發(fā)固件方案”可將開發(fā)周期從三個月縮短到14天

關(guān)鍵字: 數(shù)字接口 解碼器 核心板

2024年MWC上海展會是一場令人難忘的科技盛宴。今年ST展出了超過30種創(chuàng)新產(chǎn)品,覆蓋9個領(lǐng)域的應(yīng)用解決方案,并有50多位行業(yè)專家親臨現(xiàn)場,為參觀者提供深入的解答和交流。我們不僅將展示尖端技術(shù)的最新成果,更將展現(xiàn)科技如...

關(guān)鍵字: 揚聲器 解碼器

以更低的功耗和成本在各種應(yīng)用中高效地實現(xiàn)更高質(zhì)量的音頻流

關(guān)鍵字: 低功耗藍(lán)牙 解碼器 物聯(lián)網(wǎng)

【2024年1月29日,德國慕尼黑訊】英飛凌科技股份公司(FSE代碼:IFX / OTCQX代碼:IFNNY)將自身久經(jīng)驗證的磁性位置傳感器技術(shù)專長與成熟的線性隧道磁阻(TMR)技術(shù)合二為一,推出XENSIV? TLI5...

關(guān)鍵字: 傳感器 光學(xué)編碼器 解碼器

一切電子設(shè)備都要用電,電源也就無處不在。電源在我們印象中就是輸入端進(jìn)電,輸出端對用電設(shè)備供電,它的電路是由一堆的電阻、電容、電感還有變壓器、風(fēng)扇之類構(gòu)成。

關(guān)鍵字: 處理器 電源管理 模塊設(shè)計

為8K超高清、3D全景視頻、流媒體和實時視頻通信等應(yīng)用提供靈活可配置的視頻解決方案

關(guān)鍵字: 解碼器 8K超高清 流媒體

上海2022年11月9日 /美通社/ -- 2022年11月2日至4日,第十四屆東西部小動物臨床獸醫(yī)師大會在廈門國際會議展覽中心舉辦,富士膠片(中國)投資有限公司(以下簡稱富士膠片(中國))攜旗下全自動干式生化...

關(guān)鍵字: 富士 全自動 AVC BSP

摘要:結(jié)合無線充電產(chǎn)品設(shè)計經(jīng)驗,對無線充電設(shè)計細(xì)節(jié)進(jìn)行探究。介紹了無線充電劃分及電磁感應(yīng)無線充電結(jié)構(gòu)、測試指標(biāo),在此基礎(chǔ)上對電磁感應(yīng)無線充電設(shè)計進(jìn)行了分析,并總結(jié)了電磁感應(yīng)無線充電產(chǎn)品常見問題及改善措施,闡述了電磁感應(yīng)無...

關(guān)鍵字: 模塊設(shè)計 線圈 散熱
關(guān)閉