專利名稱:一種基于avs的幀間預(yù)測(cè)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信源編碼技術(shù)領(lǐng)域,具體地說(shuō),本發(fā)明涉及一種幀間預(yù)測(cè)方法。
背景技術(shù):
先進(jìn)音視頻編碼標(biāo)準(zhǔn)(英文為Audio Video Coding Standard,本文中簡(jiǎn)稱為AVS標(biāo)準(zhǔn))是我國(guó)具備自主知識(shí)產(chǎn)權(quán)的第二代信源編碼標(biāo)準(zhǔn)?!靶旁础笔切畔⒌摹霸搭^”,信源編碼技術(shù)解決的重點(diǎn)問題是數(shù)字音視頻海量數(shù)據(jù)(即初始數(shù)據(jù)、信源)的編碼壓縮問題,故也稱數(shù)字音視頻編解碼技術(shù)。顯而易見,它是其后數(shù)字信息傳輸、存儲(chǔ)、播放等環(huán)節(jié)的前提,因此信源編碼標(biāo)準(zhǔn)是數(shù)字音視頻產(chǎn)業(yè)的共性基礎(chǔ)標(biāo)準(zhǔn)。在AVS標(biāo)準(zhǔn)中,幀(frame)是視頻信號(hào)空間信息的表示,由一個(gè)亮度樣本矩陣(Y)和兩個(gè)色度樣本矩陣(Cb和Cr)構(gòu)成。巾貞間預(yù)測(cè)(inter prediction)是使用先前解碼圖像(或場(chǎng))生成當(dāng)前圖像(或場(chǎng))樣本預(yù)測(cè)值的過程。典型的AVS解碼結(jié)構(gòu)采用了時(shí)間及空間的運(yùn)動(dòng)預(yù)測(cè)補(bǔ)償、反變換、反量化和熵解碼。在待解碼的視頻碼流中包含有下述三種編碼圖像幀內(nèi)編碼圖像(I圖像)僅使用圖像本身信息進(jìn)行編碼,在解碼時(shí)不參照其他圖像;前向預(yù)測(cè)編碼圖像(P圖像)P圖像是向前預(yù)測(cè)一個(gè)或多個(gè)I圖像或者P圖像,因此若前面的某個(gè)參考I圖像或者P圖像不存在,則該P(yáng)圖像不能解碼;雙向預(yù)測(cè)編碼圖像(B圖像)可以同時(shí)向前和后向預(yù)測(cè)一幀或多幀已解碼I圖像或者P圖像;因此在解碼B圖像時(shí),需要先解碼獲得在顯示順序上其后的I圖像或者P圖像數(shù)據(jù),這樣會(huì)導(dǎo)致解碼順序與顯示順序的不一致??梢钥闯?,P圖像和B圖像的編解碼過程都需要經(jīng)過幀間預(yù)測(cè)處理。在編碼過程中,如果當(dāng)前圖像是P圖像或B圖像,需要根據(jù)相應(yīng)的參考圖像進(jìn)行幀間預(yù)測(cè),計(jì)算并存儲(chǔ)當(dāng)前圖像相對(duì)于參考圖像的運(yùn)動(dòng)矢量(運(yùn)動(dòng)矢量是由當(dāng)前圖像指向參考圖像,其值為當(dāng)前塊和參考?jí)K在圖像中坐標(biāo)的偏移)。這樣在解碼時(shí),只需要根據(jù)所述運(yùn)動(dòng)矢量和參考圖像,就可恢復(fù)出所述當(dāng)前圖像。幀間預(yù)測(cè)技術(shù)可以有效的降低時(shí)間冗余,而在AVS標(biāo)準(zhǔn)中,還針對(duì)運(yùn)動(dòng)補(bǔ)償進(jìn)一步引入了變塊尺寸、多參考幀、直接和對(duì)稱預(yù)測(cè)模式、無(wú)限制運(yùn)動(dòng)矢量、像素插值等新的技術(shù)手段,從而獲得了更高的編碼效率。然而上述新的技術(shù)手段在提高編碼效率的同時(shí)也增加了計(jì)算量和存儲(chǔ)帶寬。目前,高性能的AVS解碼器一般使用硬件實(shí)現(xiàn),已解碼的幀會(huì)被存入外存作為解碼其它幀的參考數(shù)據(jù),在幀間預(yù)測(cè)時(shí)就從外存中讀取這些參考數(shù)據(jù)。在AVS標(biāo)準(zhǔn)中,解碼器將一幀圖像分為若干個(gè)宏塊,依次對(duì)每個(gè)宏塊進(jìn)行幀間預(yù)測(cè)。每個(gè)宏塊有四種劃分模式。如圖I所示,四種劃分模式分別是1個(gè)16X 16亮度塊和相應(yīng)的色度塊,2個(gè)16 X 8亮度塊和相應(yīng)的色度塊,2個(gè)8 X 16亮度塊和相應(yīng)的色度塊,4個(gè)8X8亮度塊和相應(yīng)的色度塊。每個(gè)亮度塊和色度塊均對(duì)應(yīng)各自的運(yùn)動(dòng)矢量,以便用于運(yùn)動(dòng)補(bǔ)償。AVS標(biāo)準(zhǔn)采用四種宏塊劃分模式,能夠提高編碼效率。但由于不同的模式的宏塊,進(jìn)行幀間預(yù)測(cè)時(shí)所需讀取的參考圖像的像素位置和數(shù)目各不相同,因此,這種變塊尺寸也給幀間預(yù)測(cè)帶來(lái)能更多挑戰(zhàn)。
在現(xiàn)有技術(shù)中,不論當(dāng)前宏塊是什么格式,解碼器均固定按照4個(gè)8X8塊的模式讀取參考圖像,即統(tǒng)一成8X8塊進(jìn)行運(yùn)動(dòng)補(bǔ)償。這種方式易于實(shí)現(xiàn),但存在訪問外存次數(shù)多,從外存中讀取的數(shù)據(jù)總量大等缺陷。其原因是當(dāng)運(yùn)動(dòng)矢量是1/2像素或1/4像素時(shí),需要對(duì)亮度(色度)進(jìn)行二分之一樣本和四分之一樣本的插值,而二分之一樣本和四分之一樣本的插值所需的參考圖像較多,在某些插值位置,需要的讀取12X12的個(gè)參考像素,因此,在雙向預(yù)測(cè)時(shí),對(duì)一個(gè)宏塊進(jìn)行幀間預(yù)測(cè)需要讀取12X12X4X2 = 1152個(gè)像素,即1152bytes的數(shù)據(jù)。也就是說(shuō),對(duì)一個(gè)宏塊進(jìn)行巾貞間預(yù)測(cè),就需要從外存中讀取1152bytes的數(shù)據(jù),而這1152bytes的數(shù)據(jù)中實(shí)際上存在一些冗余數(shù)據(jù),導(dǎo)致訪存帶寬的浪費(fèi),硬件開銷增大。另一方面,由于每次都案4個(gè)8X8塊的模式讀取數(shù)據(jù),使得解碼器訪問外存的次數(shù)增多,這會(huì)導(dǎo)致訪存總延時(shí)的增加。目前,幀間預(yù)測(cè)的訪存量占到解碼器總訪存量的50%,而其中亞像素插值運(yùn)算的處理時(shí)間則占到總解碼時(shí)間的25%??梢钥闯觯瑤g預(yù)測(cè)已成為AVS編解碼器中數(shù)據(jù)量最密集的部分之一,同時(shí)也是整個(gè)系統(tǒng)的瓶頸所在。綜上所述,當(dāng)前迫切需要一種在保證AVS標(biāo)準(zhǔn)的編碼效率的前提下,能夠避免讀取冗余數(shù)據(jù)、減少訪問外存次數(shù)的基于AVS的幀間預(yù)測(cè)方法。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種在保證AVS標(biāo)準(zhǔn)的編碼效率的前提下,能夠避免讀取冗余數(shù)據(jù)、減少訪問外存次數(shù)的基于AVS的幀間預(yù)測(cè)方法。為實(shí)現(xiàn)上述發(fā)明目的,本發(fā)明提供了一種基于AVS的幀間預(yù)測(cè)方法,該方法包括將需要進(jìn)行幀間預(yù)測(cè)的幀分為若干個(gè)宏塊,依次對(duì)每個(gè)宏塊進(jìn)行幀間預(yù)測(cè),對(duì)于每個(gè)宏塊,幀間預(yù)測(cè)包括下列步驟I)從AVS碼流中讀取當(dāng)前宏塊相應(yīng)的運(yùn)動(dòng)矢量;2)根據(jù)運(yùn)動(dòng)矢量讀取參考圖像;包括下列子步驟21)將當(dāng)前宏塊劃分為與運(yùn)動(dòng)矢量相應(yīng)的若干子塊進(jìn)行運(yùn)動(dòng)補(bǔ)償,22)對(duì)于每個(gè)子塊,根據(jù)其相應(yīng)的運(yùn)動(dòng)矢量所指向的插值位置(包括整像素插值位置,1/2像素插值位置和1/4像素插值位置)確定其參考圖像的最小尺寸;按照所述參考圖像的最小尺寸申請(qǐng)外存并從外存中讀取所述參考圖像;3)根據(jù)參考圖像和運(yùn)動(dòng)矢量進(jìn)行插值運(yùn)算,恢復(fù)出當(dāng)前宏塊。其中,所述步驟I)中,還包括從AVS碼流中讀取當(dāng)前宏塊的子塊劃分模式;所述步驟21)中,按照所讀取的當(dāng)前宏塊的子塊劃分模式劃分子塊。其中,所述步驟22)中,根據(jù)運(yùn)動(dòng)矢量得出當(dāng)前塊的插值位置,對(duì)不同插值位置分別調(diào)整所申請(qǐng)的外存的行數(shù)和列數(shù)。其中,所述步驟21)中,將當(dāng)前宏塊的亮度塊統(tǒng)一劃分為4個(gè)8X8亮度子塊;將當(dāng)前宏塊的Cb色度塊也統(tǒng)一劃分為4個(gè)相同尺寸的Cb色度子塊;將當(dāng)前宏塊的Cr色度塊也統(tǒng)一劃分為4個(gè)相同尺寸的Cr色度子塊。其中,所述步驟22)中,對(duì)于所述宏塊中的第一個(gè)子塊,從外存中讀取參考圖像的全部數(shù)據(jù),并將所讀取的數(shù)據(jù)存入緩存mem中;對(duì)于該宏塊中其它子塊,則從緩存mem的相應(yīng)地址中讀取參考圖像的部分?jǐn)?shù)據(jù),而從外存中讀取參考圖像的其余數(shù)據(jù);所述子塊為亮度子塊和/或色度子塊。其中,所述基于AVS的幀間預(yù)測(cè)方法還包括將AVS碼流中的Cb色度和Cr色度數(shù)據(jù)交織存儲(chǔ)到外存,所述步驟22)中,以交織的方式將每對(duì)Cb和Cr色度子塊的參考圖像從外存中一次讀取。其中,所述步驟22)中,當(dāng)運(yùn)動(dòng)矢量所指向的位置超出幀邊界時(shí),從外存中讀取參考圖像中位于幀邊界內(nèi)的數(shù)據(jù),然后根據(jù)運(yùn)動(dòng)矢量和所讀取的位于幀邊界內(nèi)的數(shù)據(jù)進(jìn)行數(shù)據(jù)增補(bǔ),從而得到完整的參考圖像。與現(xiàn)有技術(shù)相比,本發(fā)明具有下列技術(shù)效果 I、大大減少了訪問外存所占的帶寬。2、能夠減少訪問外存的次數(shù)。3、減少了存儲(chǔ)參考巾貞所占用的外存空間。
圖I示出了 AVS標(biāo)準(zhǔn)中一個(gè)宏塊的子塊劃分模式;圖2示出了每個(gè)子塊讀取參考圖像時(shí)出現(xiàn)的重復(fù)的交疊數(shù)據(jù);實(shí)線方框表示需要進(jìn)行運(yùn)動(dòng)補(bǔ)償?shù)淖訅K,虛線方框表示子塊所對(duì)應(yīng)的參考圖像,灰色部分表示重復(fù)的交疊數(shù)據(jù);圖3示出了 AVS標(biāo)準(zhǔn)中的亮度塊插值示意圖;圖4示出了 AVS標(biāo)準(zhǔn)中的色度塊插值示意圖;圖5示出了本發(fā)明實(shí)施例5中的數(shù)據(jù)交織結(jié)構(gòu)示意圖;圖6示出了本發(fā)明實(shí)施例6中的數(shù)據(jù)增補(bǔ)結(jié)構(gòu)示意圖。
具體實(shí)施例方式下面,結(jié)合附圖和實(shí)施例對(duì)本發(fā)明做進(jìn)一步地描述。實(shí)施例I根據(jù)本發(fā)明的一個(gè)實(shí)施例,提供了一種基于AVS的幀間預(yù)測(cè)方法。該方法中,解碼器將需要進(jìn)行幀間預(yù)測(cè)的幀分為若干個(gè)宏塊,依次對(duì)每個(gè)宏塊進(jìn)行幀間預(yù)測(cè)。對(duì)于每個(gè)宏塊,幀間預(yù)測(cè)過程包括下列步驟第一步從AVS碼流中讀取當(dāng)前宏塊的模式和相應(yīng)的運(yùn)動(dòng)矢量;第二步根據(jù)當(dāng)前宏塊的模式和運(yùn)動(dòng)矢量從外存中讀取進(jìn)行幀間預(yù)測(cè)所需的參考圖像;第三步根據(jù)參考圖像和運(yùn)動(dòng)矢量進(jìn)行插值運(yùn)算,恢復(fù)出當(dāng)前宏塊。下面分別詳細(xì)介紹上述步驟。一、從AVS碼流中讀取當(dāng)前宏塊的劃分模式和相應(yīng)的運(yùn)動(dòng)矢量在AVS標(biāo)準(zhǔn)中,單個(gè)宏塊可劃分為1個(gè)16X16亮度塊和相應(yīng)的色度塊,2個(gè)16X8亮度塊和相應(yīng)的色度塊,2個(gè)8 X 16亮度塊和相應(yīng)的色度塊,或者4個(gè)8 X 8亮度塊和相應(yīng)的色度塊。其劃分模式可從AVS碼流中讀出。同時(shí)還讀出每個(gè)亮度塊和色度塊均對(duì)應(yīng)各自的運(yùn)動(dòng)矢量,以便用于運(yùn)動(dòng)補(bǔ)償(即幀間預(yù)測(cè))。二、根據(jù)當(dāng)前宏塊的模式和運(yùn)動(dòng)矢量從外存中讀取進(jìn)行幀間預(yù)測(cè)所需的參考圖像本實(shí)施例采用了塊間 數(shù)據(jù)重用的方式從外存中讀取參考圖像,這樣可以避免在一個(gè)宏塊中重復(fù)讀取部分交疊的參考數(shù)據(jù),能夠有效地降低訪問外存的帶寬(訪存帶寬)。AVS標(biāo)準(zhǔn)中,一個(gè)宏塊包括亮度塊(Y)和色度塊(Cb和Cr),亮度塊(Y)和色度塊(Cb和Cr)均需要進(jìn)行運(yùn)動(dòng)補(bǔ)償以得出幀間預(yù)測(cè)結(jié)果。AVS標(biāo)準(zhǔn)中采用樹狀變塊尺寸運(yùn)動(dòng)補(bǔ)償,最小塊尺寸為8X8塊,需要讀取12X12的參考數(shù)據(jù)。如果統(tǒng)一成8X8塊進(jìn)行運(yùn)動(dòng)補(bǔ)償,在進(jìn)行雙向預(yù)測(cè)時(shí),需要讀取12X12X4X2 = 1152bytes的數(shù)據(jù)量。而實(shí)際上,任何兩個(gè)8X8塊所對(duì)應(yīng)的12X12的參考數(shù)據(jù)均存在交疊部分(如圖2所示),即存在重復(fù)讀取的數(shù)據(jù),這樣就消耗了更多的訪存帶寬。因此,本實(shí)施例設(shè)計(jì)了數(shù)據(jù)重用機(jī)制,使得在進(jìn)行插值運(yùn)算時(shí),能夠重用兩個(gè)8X8塊的參考數(shù)據(jù)之間的交疊部分。本實(shí)施例40X96 (40行96列)大小的緩存mem,mem在亞像素插值亮度和色度時(shí)共用。對(duì)于亮度塊,緩存mem的地址空間分配如下I). O 11行用于存儲(chǔ)前向block O或block 2,以及交疊列的部分?jǐn)?shù)據(jù);2). 12 23行用于存儲(chǔ)后向block O或block 2,以及交疊列的部分?jǐn)?shù)據(jù);3). 24 27行用于存儲(chǔ)前向block I的交疊行的部分?jǐn)?shù)據(jù);4). 28 31行用于存儲(chǔ)后向block I的交疊行的部分?jǐn)?shù)據(jù)。這樣,第一個(gè)8X8亮度塊插值時(shí),仍然從外存中讀取其對(duì)應(yīng)的12X12的參考數(shù)據(jù),其它8X8亮度塊插值時(shí),則從緩存mem的相應(yīng)地址中讀取部分參考數(shù)據(jù),而從外存中讀取其余參考數(shù)據(jù)。這樣就大大節(jié)省了解碼器的訪存帶寬。對(duì)于色度塊Cb,緩存mem的地址空間分配如下I). O 4行存儲(chǔ)色度Cb前向的block O的數(shù)據(jù);2). 5 9行存儲(chǔ)色度Cb后向的block O的數(shù)據(jù);3). 10 14行存儲(chǔ)色度Cb前向的block I的數(shù)據(jù);4). 15 19行存儲(chǔ)色度Cb后向的block I的數(shù)據(jù);5) · 20 24行存儲(chǔ)色度Cb前向的block 2的數(shù)據(jù);6) · 25 29行存儲(chǔ)色度Cb后向的block 2的數(shù)據(jù);7) · 30 34行存儲(chǔ)色度Cb前向的block 3的數(shù)據(jù);8). 35 39行存儲(chǔ)色度Cb后向的block 3的數(shù)據(jù)。對(duì)于色度塊Cr,緩存mem的地址空間分配如下I). O 4行存儲(chǔ)色度Cr前向的block O的數(shù)據(jù);2) · 5 9行存儲(chǔ)色度Cr后向的block O的數(shù)據(jù);3). 10 14行存儲(chǔ)色度Cr前向的block I的數(shù)據(jù);4) · 15 19行存儲(chǔ)色度Cr后向的block I的數(shù)據(jù);5). 20 24行存儲(chǔ)色度Cr前向的block 2的數(shù)據(jù);6) · 25 29行存儲(chǔ)色度Cr后向的block 2的數(shù)據(jù);7) · 30 34行存儲(chǔ)色度Cr前向的block 3的數(shù)據(jù);8). 35 39行存儲(chǔ)色度Cr后向的block 3的數(shù)據(jù)。
于亮度塊的插值類似,對(duì)第一個(gè)色度塊插值時(shí),從外存中讀取所需的全部參考數(shù)據(jù)。對(duì)其它色度塊插值時(shí),則從緩存mem的相應(yīng)地址中讀取部分參考數(shù)據(jù),而從外存中讀取其余參考數(shù)據(jù),從而節(jié)省解碼器的訪存帶寬。三、根據(jù)參考圖像和運(yùn)動(dòng)矢量進(jìn)行插值運(yùn)算,恢復(fù)出當(dāng)前宏塊。在讀取全部參考數(shù)據(jù)和運(yùn)動(dòng)矢量后,即可根據(jù)AVS標(biāo)準(zhǔn)9. 9. 2. I部分的描述進(jìn)行插值運(yùn)算,依次恢復(fù)當(dāng)前宏塊的每個(gè)亮度塊和色度塊,從而恢復(fù)出整個(gè)當(dāng)前宏塊。此時(shí),對(duì)當(dāng)前宏塊的幀間預(yù)測(cè)完成。實(shí)施例2根據(jù)本發(fā)明的實(shí)施例2,提供了一種基于AVS的幀間預(yù)測(cè)方法。該方法中,解碼器將需要進(jìn)行幀間預(yù)測(cè)的幀分為若干個(gè)宏塊,依次對(duì)每個(gè)宏塊進(jìn)行幀間預(yù)測(cè)。對(duì)于每個(gè)宏塊,幀間預(yù)測(cè)過程包括下列步驟第一步從AVS碼流中讀取當(dāng)前宏塊的模式和相應(yīng)的運(yùn)動(dòng)矢量;第二步根據(jù)當(dāng)前宏塊的模式和運(yùn)動(dòng)矢量從外存中讀取進(jìn)行幀間預(yù)測(cè)所需的參考圖像;第三步根據(jù)參考圖像和運(yùn)動(dòng)矢量進(jìn)行插值運(yùn)算,恢復(fù)出當(dāng)前宏塊。其中,第一步、第三步均與實(shí)施例I 一致,不再贅述。第二步中,本實(shí)施例采用變塊尺寸讀取的方式從外存中讀取參考數(shù)據(jù)。從AVS標(biāo)準(zhǔn)9. 9. 2. I部分中,可以看出,在進(jìn)行亞像素插值時(shí),對(duì)于不同的運(yùn)動(dòng)矢量和不同的亞像素插值位置,需要的參考數(shù)據(jù)的個(gè)數(shù)是截然不同的。例如在插值整像素樣本,只需要8X8的參考數(shù)據(jù),而插值1/4像素樣本,則需要11X11的參考數(shù)據(jù)。本實(shí)施例將插值位置分為6種不同的類型,每種類型需要的參考數(shù)據(jù)量是不同的,但在解碼過程中,只有其中的一種類型在同一時(shí)刻被執(zhí)行。因此可以根據(jù)運(yùn)動(dòng)矢量的值,判斷此次屬于何種插值類型,從而決定本次的訪存量,以達(dá)到減小帶寬的目的。亮度塊的變塊尺寸讀取如圖3所示,AVS標(biāo)準(zhǔn)中各插值點(diǎn)(即插值位置)所需的參考像素?cái)?shù)目如下對(duì)于D點(diǎn)的插值,需要的參考像素為(0,0),相應(yīng)8X8塊的插值需要的參考像素矩陣大小為8X8 ;對(duì)于b點(diǎn)的插值,需要的參考像素為(_1,0),(0,0),(1,0),(2,0),相應(yīng)8X8塊的插值需要的參考像素矩陣大小為11X8 ;對(duì)于h點(diǎn)的插值,需要的參考像素為(0,_1),(0,0),(0,1),(0,2),對(duì)應(yīng)8X8塊的插值需要的參考像素矩陣大小為8X11 ;對(duì)于 j 點(diǎn)的插值,需要的參考像素為(-1,-1),(0,-1), (1,-1), (2,-1), (-1,0),(0,0), (1,0), (2,0), (-1,1), (0,1), (1,1), (2,1), (-1,2), (0,2), (1,2), (2,2),對(duì)應(yīng) 8X8
塊的插值需要的參考像素矩陣大小為11X11 ;對(duì)于a點(diǎn)的插值,需要的參考像素為(-2,0), (-1,0), (0,0), (1,0), (2,0),對(duì)應(yīng)8X8塊的插值需要的參考像素矩陣大小為12X8 ;對(duì)于c點(diǎn)的插值,需要的參考像素為(-1,0), (0,0), (1,0), (2,0), (3,0),對(duì)應(yīng)8X8塊的插值需要的參考像素矩陣大小為12X8 ;對(duì)于d點(diǎn)的插值,需要的參考像素為(0,-2),(O, -I), (0,0), (0,1), (0,2),對(duì)應(yīng)8X8塊的插值需要的參考像素矩陣大小為8X12 ;對(duì)于η點(diǎn)的插值,需要的參考像素為(0,-1),(0,0), (0,1), (0,2), (0,3),對(duì)應(yīng)8X8塊的插值需要的參考像素矩陣大小為8X12 ;對(duì)于e,g,p,r點(diǎn)的插值,需要的參考像素與j點(diǎn)相同,對(duì)應(yīng)8X8塊的插值需要的參考像素矩陣大小為11X11 ;對(duì)于f 點(diǎn)的插值,需要的參考像素為(_1,_2), (O, -2), (I, -2), (2, _2), (-1, -I),(0,-1), (1,-1), (2,-1), (-1,0), (0,0), (1,0), (2,0), (-1,1), (0,1), (1,1), (2,1), (_1,2),(0,2), (1,2), (2,2),對(duì)應(yīng)8X8塊的插值需要的參考像素矩陣大小為11X12 ;對(duì)于i 點(diǎn)的插值,需要的參考像素為(-2,-1), (-2,0), (-2,1), (-2,2), (-1,-1),(-1,0), (-1,1), (-1,2), (O, -I), (0,0), (0,1), (0,2), (I, -I), (1,0), (1,1), (1,2), (2,-1),(2,0), (2,1), (2,2),對(duì)應(yīng)8X8塊的插值需要的參考像素矩陣大小為12X11;對(duì)于k 點(diǎn)的插值,需要的參考像素為(-1,-1), (-1,0), (-1,1), (-1,2), (0,-1),(0,0), (0,1), (0,2), (1,-1), (1,0), (1,1), (1,2), (2,-1), (2,0), (2,1), (2,2), (3,-1),(3,0), (3,1), (3,2),對(duì)應(yīng)8X8塊的插值需要的參考像素矩陣大小為12X11;對(duì)于q 點(diǎn)的插值,需要的參考像素為(-1,-1),(0,-1), (1,-1), (2,-1), (-1,0),(0,0), (1,0), (2,0), (-1,1), (0,1), (1,1), (2,1), (-1,2), (0,2), (1,2), (2,2), (-1,3),(0,3), (1,3), (2,3),對(duì)應(yīng)8X8塊的插值需要的參考像素矩陣大小為11X12。在讀取外存的過程中,為了減少對(duì)外存的訪問量,本實(shí)施例對(duì)讀取的尺寸做出一定的優(yōu)化。在亮度插值中,不同插值位置所需像素個(gè)數(shù)不同,如果采用最大像素個(gè)數(shù),自然能滿足要求,但這樣增加了外存的訪問量。本實(shí)施例為了節(jié)省外存的帶寬,根據(jù)運(yùn)動(dòng)矢量得出當(dāng)前塊的插值位置,對(duì)不同插值位置,分別調(diào)整所申請(qǐng)的外存的line(行)和size(本發(fā)明中size代表列)的大小。表3給出了在亮度申請(qǐng)外存情況下,設(shè)定每次向外存申請(qǐng)的基礎(chǔ)塊大小為8X8,同時(shí)對(duì)不同運(yùn)動(dòng)矢量分別設(shè)定對(duì)應(yīng)不同的申請(qǐng)外存的行、列增量。由基礎(chǔ)塊行、列加上對(duì)應(yīng)的增量行、列便可得到本次申請(qǐng)的行、列信息。通過深入研究,本實(shí)施例總結(jié)出如下規(guī)律公式I).請(qǐng)求外存的列數(shù)增量_req_plus_wid
O ;X = O
req_plus_wid = < 4 ;(少=O || 少=1/2)&&(χ = 1/4 || x = 3/4)
3;other2).請(qǐng)求外存的行數(shù)增量_req_plus_hei
O;少=0
req_plus_hei = < 4;(少=1/4 || 少=3/4)&&(x = O || x = 1/2)
3;other式中,X為水平位置,即插值點(diǎn)在水平方向上的編號(hào);y為垂直位置,即插值點(diǎn)在垂直方向上的編號(hào)。下面的表I更直觀地給出了本實(shí)施例的亮度塊變塊尺寸讀取方案。表I
權(quán)利要求
1.一種基于AVS的幀間預(yù)測(cè)方法,需要進(jìn)行幀間預(yù)測(cè)的幀包括若干個(gè)宏塊,對(duì)于每個(gè)宏塊,幀間預(yù)測(cè)包括下列步驟 1)讀取當(dāng)前宏塊相應(yīng)的運(yùn)動(dòng)矢量; 2)將當(dāng)前宏塊劃分為與運(yùn)動(dòng)矢量相應(yīng)的若干子塊進(jìn)行運(yùn)動(dòng)補(bǔ)償, 3)對(duì)于每個(gè)子塊,根據(jù)其相應(yīng)的運(yùn)動(dòng)矢量所指向的插值位置確定其參考圖像的最小尺寸;按照所述參考圖像的最小尺寸 申請(qǐng)外存并從外存中讀取所述參考圖像; 4)根據(jù)參考圖像和運(yùn)動(dòng)矢量進(jìn)行插值運(yùn)算,恢復(fù)出當(dāng)前宏塊。
2.根據(jù)權(quán)利要求I所述的基于AVS的幀間預(yù)測(cè)方法,其特征在于,所述步驟I)中,還包括從AVS碼流中讀取當(dāng)前宏塊的子塊劃分模式; 所述步驟2)中,按照所讀取的當(dāng)前宏塊的子塊劃分模式劃分子塊。
3.根據(jù)權(quán)利要求I所述的基于AVS的幀間預(yù)測(cè)方法,其特征在于,所述步驟3)中,根據(jù)運(yùn)動(dòng)矢量得出當(dāng)前塊的插值位置,對(duì)不同插值位置分別調(diào)整所申請(qǐng)的外存的行數(shù)和列數(shù)。
4.根據(jù)權(quán)利要求3所述的基于AVS的幀間預(yù)測(cè)方法,其特征在于,所述步驟3)中,所述當(dāng)前宏塊為亮度塊時(shí),每次向外存申請(qǐng)的基礎(chǔ)塊大小為8X8,對(duì)不同運(yùn)動(dòng)矢量分別設(shè)定申請(qǐng)外存的行、列增量從而得出對(duì)應(yīng)該運(yùn)動(dòng)矢量所需申請(qǐng)的外存的行數(shù)和列數(shù)。
5.根據(jù)權(quán)利要求4所述的基于AVS的幀間預(yù)測(cè)方法,其特征在于,所述步驟3)中, 請(qǐng)求外存的列數(shù)增量req_plus_wid滿足O ;X = Oreq_plus_wid = < 4 ;(少=O || 少=1/2)&&(χ = 1/4 || x = 3/4)3 ;other 請(qǐng)求外存的行數(shù)增量req_plus_hei滿足O ;少=0req_plus_hei = < 4 ;(少=1/4 || 少=3/4)&&(x = O || x = 1/2)3 ;other 式中,X為水平位置,y為垂直位置。
6.根據(jù)權(quán)利要求4所述的基于AVS的幀間預(yù)測(cè)方法,其特征在于,所述步驟3)中,所述當(dāng)前宏塊為色度塊時(shí),每次向外存申請(qǐng)的基礎(chǔ)塊大小為4X4,對(duì)不同運(yùn)動(dòng)矢量分別設(shè)定申請(qǐng)外存的行、列增量從而得出對(duì)應(yīng)該運(yùn)動(dòng)矢量所需申請(qǐng)的外存的行數(shù)和列數(shù)。
7.根據(jù)權(quán)利要求6所述的基于AVS的幀間預(yù)測(cè)方法,其特征在于,所述步驟3)中, 請(qǐng)求外存的列數(shù)增量req_plus_wid滿足 fO ; X = Oreq_plus_wid =<—[I ; other 請(qǐng)求外存的行數(shù)增量req_plus_hei滿足 fO ; y = 0req_plus_hei = <—[I ; other 式中,X為水平位置,y為垂直位置。
全文摘要
本發(fā)明提供一種基于AVS的幀間預(yù)測(cè)方法,該方法包括將需要進(jìn)行幀間預(yù)測(cè)的幀分為若干個(gè)宏塊,依次對(duì)每個(gè)宏塊進(jìn)行幀間預(yù)測(cè),對(duì)于每個(gè)宏塊,幀間預(yù)測(cè)包括下列步驟從AVS碼流中讀取當(dāng)前宏塊相應(yīng)的運(yùn)動(dòng)矢量;將當(dāng)前宏塊劃分為與運(yùn)動(dòng)矢量相應(yīng)的若干子塊進(jìn)行運(yùn)動(dòng)補(bǔ)償,對(duì)于每個(gè)子塊,根據(jù)其相應(yīng)的運(yùn)動(dòng)矢量所指向的插值位置確定其參考圖像的最小尺寸,按照所述最小尺寸從外存中讀取參考圖像;根據(jù)參考圖像和運(yùn)動(dòng)矢量進(jìn)行插值運(yùn)算,恢復(fù)出當(dāng)前宏塊。本發(fā)明具有下列技術(shù)效果大大減少了訪問外存所占的帶寬。能夠減少訪問外存的次數(shù)。減少了存儲(chǔ)參考幀所占用的外存空間。
文檔編號(hào)H04N7/46GK102625095SQ20111003039
公開日2012年8月1日 申請(qǐng)日期2011年1月27日 優(yōu)先權(quán)日2011年1月27日
發(fā)明者呼大明, 宋益波, 鄧?yán)? 鄭海鷗, 陳淼 申請(qǐng)人:聯(lián)合信源數(shù)字音視頻技術(shù)(北京)有限公司