專利名稱::一種avs快速幀內(nèi)預(yù)測(cè)方法及裝置的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及在圖像信號(hào)處理等的信息壓縮技術(shù)中使用的幀內(nèi)預(yù)測(cè)插值的基于FPGA的方法及硬件實(shí)現(xiàn)結(jié)構(gòu)。技術(shù)背景隨著微電子技術(shù)的發(fā)展,電子信息類產(chǎn)品的開(kāi)發(fā)出現(xiàn)了兩個(gè)明顯的特點(diǎn)一是產(chǎn)品的復(fù)雜程度加深,二是產(chǎn)品的上市時(shí)限緊迫。針對(duì)這種情況,出現(xiàn)了現(xiàn)場(chǎng)可編程邏輯器件(FPLD),其中應(yīng)用最廣泛的當(dāng)屬現(xiàn)場(chǎng)可編程門陣列(FPGA)和復(fù)雜可編程邏輯器件(CPLD)。同樣的,用于圖像信號(hào)處理的各類大規(guī)模電路的設(shè)計(jì)也不再時(shí)興采用全定制電路設(shè)計(jì)方法或者是半定制電路設(shè)計(jì)方法,而采用現(xiàn)場(chǎng)可編程邏輯器件的系統(tǒng)級(jí)設(shè)計(jì)方法已成為視頻技術(shù)發(fā)展的一種新趨勢(shì)。幀內(nèi)預(yù)測(cè)插值是新一代視頻壓縮中的核心技術(shù),因此尋找一種適合于用FPGA來(lái)實(shí)現(xiàn)的快速幀內(nèi)預(yù)測(cè)插值是非常有必要的。AVS(AudioVideoCodingStandard)標(biāo)準(zhǔn)是《信息技術(shù)先進(jìn)音視頻編碼》系列標(biāo)準(zhǔn)的簡(jiǎn)稱,是我國(guó)自主提出的第一個(gè)音視頻編碼標(biāo)準(zhǔn)。該標(biāo)準(zhǔn)面向中國(guó)的信息產(chǎn)業(yè)需求,服務(wù)于高分辨率數(shù)字廣播、高密度激光數(shù)字存儲(chǔ)媒體、無(wú)線寬帶多媒體通訊、互聯(lián)網(wǎng)寬帶流媒體等重大信息產(chǎn)業(yè)應(yīng)用。AVS標(biāo)準(zhǔn)的第二部分(視頻)采用了一系列技術(shù)來(lái)達(dá)到高效率的視頻編碼,包括幀內(nèi)預(yù)測(cè)、幀間預(yù)測(cè)、變換、量化和熵編碼等。幀內(nèi)預(yù)測(cè)使用空間預(yù)測(cè)模式來(lái)消除圖象內(nèi)的冗余,它不需要參考其他圖象,采用幀內(nèi)預(yù)測(cè)編碼的圖象可作為編碼后序列的隨機(jī)訪問(wèn)點(diǎn)。AVS幀內(nèi)亮度預(yù)測(cè)和色度預(yù)測(cè)都是以8x8的宏塊為單位,亮度預(yù)測(cè)模式共5種(如表l所示)Vertical預(yù)測(cè)模式(模式值0)、Horizontal預(yù)測(cè)模式(模式值l)、DC預(yù)測(cè)模式(模式值2)、Down-Left預(yù)測(cè)模式(模式值3)、Down-Right預(yù)測(cè)模式(模式值4)。色度預(yù)測(cè)模式共有4種Vertical預(yù)測(cè)模式、Horizontal預(yù)測(cè)模式、DC預(yù)測(cè)模式和Plane預(yù)測(cè)模式。幀內(nèi)預(yù)測(cè)根據(jù)與當(dāng)前塊相鄰的塊的數(shù)據(jù),這些數(shù)據(jù)最多包括33個(gè)樣本點(diǎn),根據(jù)這些樣本點(diǎn)和幀內(nèi)預(yù)測(cè)模式,產(chǎn)生相應(yīng)的幀內(nèi)預(yù)測(cè)矩陣。幀內(nèi)預(yù)測(cè)矩陣的結(jié)果也就是幀內(nèi)預(yù)測(cè)模塊的輸出,然后與反變化模塊的輸出一起得到重建樣本值-表l由此得到各個(gè)模式的樣本點(diǎn)數(shù)據(jù)轉(zhuǎn)換后的形式c模式0:Intra—8x8—Vertical表22CM19c18^22p22"'22*:'22一22p22"22"22"23:'23p23*:23^23^23+'23*,24*:'24p24^24"2424^24,24(25^25一25"25,"25*:'25*'26一2(W2&p26')26*,27*,27:27^27:'27*'27*:28v28^,28*:28一2S*,28^30"31(32*'33一'34v'35^36^5模式1:Intra8x8—Horizontal20w1£m18*,17^16*,14^13—12^21*1^,18*,17,'16,,12^ISM18*,15+,1#13,'23^1S^17^16*,15v14一13v12w24w18^17^16p15p14p12^25p18*,17;'16,15^14*,13+,12+',26',15M17一115"'l斗p17p15一28"16*)15^l鐘1>-,25^30^31*,32^33^34v35^3&1";10+,5^■4^模式2:Intra_8x8_DC。根據(jù)左塊上塊是否存在(這里判斷存在的條件除了圖象邊界外還需要4慮是否屬于同一個(gè)條帶)分為四種情況(1)左塊、上塊都不存在DCO表46<table>tableseeoriginaldocumentpage7</column></row><table>(2)左塊不存在,上塊存在DC2<table>tableseeoriginaldocumentpage7</column></row><table>(3)左塊存在,上塊不存在DCl表6<table>tableseeoriginaldocumentpage8</column></row><table><table>tableseeoriginaldocumentpage9</column></row><table>2CV21-22^23-24*,2&27^2^xijXij&&、jXuX"Xij&XijXU17—1XijXij&XijXUXUXij&、JXUXijXUXUXi〕&xuXUXU14,,、]X"、]xu&XW13—:Xij、jxu、jXU12+''XUxij表IOh[a]h[1]h[2]h[3]ti[JOh[5]h[6]h[7]hhh={h[4]-h[2]}+2*{h[5]-h[l]}+3*{h[6]-h}+4*{h[7]-ori}vvv={v[4]-v[2]}+2*{v[5]-v[l]}+3*{v[6]-v}+4*{v[7]-ori}bbb=(17*hhh+16)》5;ccc=(17*vw+16)》5;aaa=16*(h[7]+v[7]);for(j=0;j<8;j++)for(i=0;i<8;i++)Xij=max(O,min(255,(aaa+Wb[j,i]*bbb+Wc[j,i]*ccc十16)/32))其中wb[j,i:-3-2-101234-3-2-l01234-3-2國(guó)l01234-3-2-101234-3-2-101234-3-2-l01234-3-2-101234-3-201234Wc[j,i]-3-3—3-3—3墨3-3-3-2-2-2-2-2-2-2-2-1-1-l-l-l-1-1-1000000001111111110c0u1u2u3U7u5u6u7222222223333333344444444幀內(nèi)預(yù)測(cè)的模式繁多,且每種模式所需要用到的樣本點(diǎn)數(shù)據(jù)也都不一樣,需要存儲(chǔ)大量的樣本點(diǎn),并考慮到在27M時(shí)鐘下實(shí)現(xiàn)CIF格式大小的解碼,單一的存儲(chǔ)插值模式已經(jīng)不適合。
發(fā)明內(nèi)容本發(fā)明要解決的是現(xiàn)有技術(shù)存在的上述問(wèn)題,根據(jù)AVS自身的特點(diǎn),針對(duì)幀內(nèi)預(yù)測(cè)部分可能實(shí)現(xiàn)的方案進(jìn)行分析,提供一種電路面積小的、快速的幀內(nèi)預(yù)測(cè)插值方法及其結(jié)構(gòu)。解決上述問(wèn)題采用的技術(shù)方案是一種AVS快速幀內(nèi)預(yù)測(cè)方法,其特征在于包括以下步驟K階哥倫布指數(shù)解碼模塊對(duì)當(dāng)前子塊幀碼流進(jìn)行解碼得到IDCT/IQ、pred—mode—flag、intra_pred—mode和Imgximgyslice數(shù)據(jù);幀內(nèi)預(yù)測(cè)模式判斷模塊根據(jù)解碼出來(lái)的pred_mode_flag、intra_pred_mode和Imgximgyslice數(shù)據(jù)運(yùn)算后得到當(dāng)前子塊幀內(nèi)預(yù)測(cè)模式;幀內(nèi)預(yù)測(cè)計(jì)算模塊根據(jù)當(dāng)前子塊的幀內(nèi)預(yù)測(cè)模式和存儲(chǔ)的相鄰塊一行一列的樣本點(diǎn)進(jìn)行插值;IDCT/IQ模塊運(yùn)算出殘差數(shù)據(jù);殘差疊加重構(gòu)模塊把插值得到的插值矩陣跟經(jīng)IDCT/IQ模塊得到的殘差矩陣進(jìn)行疊加得到最后的當(dāng)前幀圖象數(shù)據(jù),并控制返回下一個(gè)塊插值需要的一行一列樣本點(diǎn)。本發(fā)明還要提供一種AVS快速幀內(nèi)預(yù)測(cè)裝置,包括K階哥倫布指數(shù)解碼模塊、幀內(nèi)預(yù)測(cè)模式判斷模塊、幀內(nèi)預(yù)測(cè)計(jì)算模塊、IDCT/IQ模塊、殘差疊加重構(gòu)模塊和幀內(nèi)預(yù)測(cè)專用RAM模塊,其特征在于所述的K階哥倫布指數(shù)解碼模塊,用于對(duì)當(dāng)前子塊幀碼流進(jìn)行解碼得到IDCT/IQ、pred—mode—flag、intra_pred—mode禾卩Imgximgyslice數(shù)據(jù);所述的幀內(nèi)預(yù)測(cè)模式判斷模塊輸出端接K階哥倫布指數(shù)解碼模塊的輸出端,根據(jù)K階哥倫布指數(shù)解碼模塊解碼出來(lái)的pred—mode—flag、intra_pred—mode禾BImgximgyslice數(shù)據(jù)運(yùn)算后得到當(dāng)前子塊幀內(nèi)預(yù)測(cè)模式;所述的幀內(nèi)預(yù)測(cè)計(jì)算模塊輸入端接幀內(nèi)預(yù)測(cè)模式判斷模塊的輸出端,根據(jù)當(dāng)前子塊的幀內(nèi)預(yù)測(cè)模式和存儲(chǔ)的相鄰塊一行一列的樣本點(diǎn)進(jìn)行插值;所述的IDCT/IQ模塊輸入端接K階哥倫布指數(shù)解碼模塊的輸出端,根據(jù)K階哥倫布指數(shù)解碼模塊解碼出的IDCT/IQ數(shù)據(jù)運(yùn)算出殘-差數(shù)據(jù);所述的殘差疊加重構(gòu)模塊輸入端接幀內(nèi)預(yù)測(cè)計(jì)算模塊和IDCT/IQ模塊的輸出端,把插值得到的插值矩陣跟經(jīng)IDCT/IQ模塊得到的殘差矩陣進(jìn)行疊加得到最后的當(dāng)前幀圖象數(shù)據(jù),并控制返回下一個(gè)塊插值需要的一行一列樣本點(diǎn);所述的幀內(nèi)預(yù)測(cè)專用RAM模塊輸入端接殘差疊加重構(gòu)模塊的輸出端,輸出端接幀內(nèi)預(yù)測(cè)計(jì)算模塊的輸入端,用來(lái)存儲(chǔ)幀內(nèi)預(yù)測(cè)插值所需要的一行一列樣本點(diǎn)。本發(fā)明的快速幀內(nèi)預(yù)測(cè)插值方法及其結(jié)構(gòu)采用模塊復(fù)用、模塊間最大限度的并行處理等設(shè)計(jì)思想,大大提高了運(yùn)算速度,數(shù)據(jù)可以連續(xù)輸入,同時(shí)在每個(gè)時(shí)鐘周期都能得到一個(gè)運(yùn)算結(jié)果。本發(fā)明結(jié)構(gòu)規(guī)整,非常適合用FPGA來(lái)實(shí)現(xiàn),所需資源比傳統(tǒng)的實(shí)現(xiàn)結(jié)構(gòu)節(jié)省20%以上。本發(fā)明可以應(yīng)用于各種采用了幀內(nèi)預(yù)測(cè)插值方法的圖像數(shù)據(jù)壓縮技術(shù)屮,尤其是在對(duì)壓縮的速度和質(zhì)量要求較高的AVS、H.264中能發(fā)揮重要的作用。作為本發(fā)明的進(jìn)一步改進(jìn),所述的幀內(nèi)預(yù)測(cè)計(jì)算模塊完成基本的低通濾波功能采用三抽頭濾波器,大大提高運(yùn)算速度的同時(shí),也節(jié)約了布線資源,縮小整個(gè)電路的面積,更加適合用FPGA來(lái)實(shí)現(xiàn)。圖1是本發(fā)明的幀內(nèi)預(yù)測(cè)模塊的結(jié)構(gòu)框圖。圖2是本發(fā)明的幀內(nèi)預(yù)測(cè)插值計(jì)算模塊的電路結(jié)構(gòu)圖。具體實(shí)施例方式下面說(shuō)明本發(fā)明的運(yùn)算結(jié)構(gòu)的構(gòu)成。圖1是用來(lái)說(shuō)明幀內(nèi)預(yù)測(cè)插值模塊結(jié)構(gòu)的框圖。在圖中,整個(gè)系統(tǒng)框圖由以下幾部分構(gòu)成K階哥倫布指數(shù)解碼模塊,它對(duì)碼流進(jìn)行解碼得到IDCT/IQ以及幀內(nèi)預(yù)測(cè)插值需要的模式等數(shù)據(jù);幀內(nèi)預(yù)測(cè)模式判斷模塊,它根據(jù)解碼出來(lái)的pred—mode一flag、intra_pred_mode和Imgximgyslice運(yùn)算后得到當(dāng)前子塊幀內(nèi)預(yù)測(cè)模式,5個(gè)時(shí)鐘輸出幀內(nèi)預(yù)測(cè)模式;幀內(nèi)預(yù)測(cè)計(jì)算模塊,它根據(jù)當(dāng)前子塊的幀內(nèi)預(yù)測(cè)模式和存儲(chǔ)的相鄰塊一行一列的樣本點(diǎn)進(jìn)行插值;IDCT/IQ模塊,它運(yùn)算出殘差數(shù)據(jù);殘差疊加重構(gòu)模塊,它把插值得到的插值矩陣跟經(jīng)IDCT得到的殘差矩陣進(jìn)行疊加得到最后的當(dāng)前幀圖象數(shù)據(jù),并控制返回下一個(gè)塊插值需要的一行一列樣本點(diǎn);幀內(nèi)預(yù)測(cè)專用RAM模塊,12它用來(lái)存儲(chǔ)幀內(nèi)預(yù)測(cè)插值所需要的一行一列樣本點(diǎn)。拿當(dāng)前一個(gè)8x8子塊來(lái)具體說(shuō)明此發(fā)明的具體步驟由于是硬件實(shí)現(xiàn),所以這里采用大量并行運(yùn)算,所以把IDCT/IQ模塊與幀內(nèi)預(yù)測(cè)整體模塊并行處理,通過(guò)K階哥倫布指數(shù)解碼得到二個(gè)模塊各自需要的數(shù)據(jù),最后進(jìn)行疊加。其中IDCT/IQ模塊直接就根據(jù)運(yùn)算式操作,這里著重說(shuō)下幀內(nèi)預(yù)測(cè)部分的操作,首先要通過(guò)幀內(nèi)預(yù)測(cè)模式判斷模塊,把得到的pred_mode—flag跟intra_pred_mode轉(zhuǎn)換成當(dāng)前子塊的幀內(nèi)預(yù)測(cè)插值計(jì)算模式。然后根據(jù)模式的判斷采用不同的樣本點(diǎn)進(jìn)行低通濾波插值,其中DC模式還需要根據(jù)上邊界和左邊界是否可用來(lái)判斷模式,最后把得到的插值矩陣送到殘差疊加重構(gòu)模塊進(jìn)行疊加后,這里由殘差疊加重構(gòu)模塊控制,在往SDRAM回傳重構(gòu)數(shù)據(jù)的同時(shí),往幀內(nèi)預(yù)測(cè)專用RAM模塊傳遞下一子塊插值所需要的一行一列樣本點(diǎn),這樣節(jié)省了從SDRAM重新提取參考樣本點(diǎn)的復(fù)雜度,節(jié)省了時(shí)間。這里采用三組RAM分別用來(lái)存儲(chǔ)當(dāng)前子塊插值所需樣本點(diǎn)的一行、一列以及左塊存在時(shí)的最后一個(gè)點(diǎn)。圖2是上述幀內(nèi)預(yù)測(cè)計(jì)算模塊的內(nèi)部電路圖。參考樣本點(diǎn)r[x+l]與1相加后經(jīng)過(guò)一個(gè)左移位,r[x]與r[x+2]相加,然后把各自結(jié)果再經(jīng)過(guò)一個(gè)相加,最后經(jīng)過(guò)一個(gè)右移位得到最終的插值數(shù)據(jù),依次循環(huán)64次,完成一個(gè)子塊的插值運(yùn)算。應(yīng)該理解到的是上述實(shí)施例只是對(duì)本發(fā)明的說(shuō)明,而不是對(duì)本發(fā)明的限制,任何不超出本發(fā)明實(shí)質(zhì)精神范圍內(nèi)的發(fā)明創(chuàng)造,均落入本發(fā)明的保護(hù)范圍之內(nèi)。權(quán)利要求1、一種AVS快速幀內(nèi)預(yù)測(cè)方法,其特征在于包括以下步驟K階哥倫布指數(shù)解碼模塊對(duì)當(dāng)前子塊幀碼流進(jìn)行解碼得到IDCT/IQ、pred_mode_flag、intra_pred_mode和Imgximgyslice數(shù)據(jù);幀內(nèi)預(yù)測(cè)模式判斷模塊根據(jù)解碼出來(lái)的pred_mode_flag、intra_pred_mode和Imgximgyslice數(shù)據(jù)運(yùn)算后得到當(dāng)前子塊幀內(nèi)預(yù)測(cè)模式;幀內(nèi)預(yù)測(cè)計(jì)算模塊根據(jù)當(dāng)前子塊的幀內(nèi)預(yù)測(cè)模式和存儲(chǔ)的相鄰塊一行一列的樣本點(diǎn)進(jìn)行插值;IDCT/IQ模塊運(yùn)算出殘差數(shù)據(jù);殘差疊加重構(gòu)模塊把插值得到的插值矩陣跟經(jīng)IDCT/IQ模塊得到的殘差矩陣進(jìn)行疊加得到最后的當(dāng)前幀圖象數(shù)據(jù),并控制返回下一個(gè)塊插值需要的一行一列樣本點(diǎn)。2、如權(quán)利要求1所述的AVS快速幀內(nèi)預(yù)測(cè)方法,其特征在于所述的幀內(nèi)預(yù)測(cè)模式判斷模塊5個(gè)時(shí)鐘輸出幀內(nèi)預(yù)測(cè)模式。3、如權(quán)利要求1所述的AVS快速幀內(nèi)預(yù)測(cè)方法,其特征在于所述的幀內(nèi)預(yù)測(cè)模式判斷模塊采用移位和加法運(yùn)算。4、如權(quán)利要求1-3任何一項(xiàng)所述的AVS快速幀內(nèi)預(yù)測(cè)方法,其特征在于時(shí)時(shí)連續(xù)輸入當(dāng)前子塊樣本點(diǎn)數(shù)據(jù),不間斷進(jìn)行幀內(nèi)插值運(yùn)算。5、一種AVS快速幀內(nèi)預(yù)測(cè)裝置,包括K階哥倫布指數(shù)解碼模塊、幀內(nèi)預(yù)測(cè)模式判斷模塊、幀內(nèi)預(yù)測(cè)計(jì)算模塊、IDCT/IQ模塊、殘差疊加重構(gòu)模塊和幀內(nèi)預(yù)測(cè)專用RAM模塊,其特征在于所述的K階哥倫布指數(shù)解碼模塊,用于對(duì)當(dāng)前子塊幀碼流進(jìn)行解碼得到IDCT/IQ、pred_mode—flag、intra_pred_mode禾卩Imgximgyslice數(shù)據(jù);所述的幀內(nèi)預(yù)測(cè)模式判斷模塊輸出端接K階哥倫布指數(shù)解碼模塊的輸出端,根據(jù)K階哥倫布指數(shù)解碼模塊解碼出來(lái)的pred—mode—flag、intra_pred—mode和Imgximgyslice數(shù)據(jù)運(yùn)算后得到當(dāng)前子塊幀內(nèi)預(yù)測(cè)模式;所述的幀內(nèi)預(yù)測(cè)計(jì)算模塊輸入端接幀內(nèi)預(yù)測(cè)模式判斷模塊的輸出端,根據(jù)當(dāng)前子塊的幀內(nèi)預(yù)測(cè)模式和存儲(chǔ)的相鄰塊一行一列的樣本點(diǎn)進(jìn)行插值;所述的IDCT/IQ模塊輸入端接K階哥倫布指數(shù)解碼模塊的輸出端,根據(jù)K階哥倫布指數(shù)解碼模塊解碼出的IDCT/IQ數(shù)據(jù)運(yùn)算出殘差數(shù)據(jù);所述的殘差疊加重構(gòu)模塊輸入端接幀內(nèi)預(yù)測(cè)計(jì)算模塊和IDCT/IQ模塊的輸出端,把插值得到的插值矩陣跟經(jīng)IDCT/IQ模塊得到的殘差矩陣進(jìn)行疊加得到最后的當(dāng)前幀圖象數(shù)據(jù),并控制返回下一個(gè)塊插值需要的一行一列樣本點(diǎn);所述的幀內(nèi)預(yù)測(cè)專用RAM模塊輸入端接殘差疊加重構(gòu)模塊的輸出端,輸出端接幀內(nèi)預(yù)測(cè)計(jì)算模塊的輸入端,用來(lái)存儲(chǔ)幀內(nèi)預(yù)測(cè)插值所需要的一行一列樣本點(diǎn)。6、如權(quán)利要求5所述的AVS快速幀內(nèi)預(yù)測(cè)裝置,其特征在于所述的幀內(nèi)預(yù)測(cè)計(jì)算模塊采用抽頭濾波電路。全文摘要本發(fā)明涉公開(kāi)了一種AVS快速幀內(nèi)預(yù)測(cè)方法和裝置,其特點(diǎn)是解碼模塊對(duì)當(dāng)前子塊幀碼流進(jìn)行解碼;幀內(nèi)預(yù)測(cè)模式判斷模塊根據(jù)解碼出來(lái)的數(shù)據(jù)運(yùn)算后得到當(dāng)前子塊幀內(nèi)預(yù)測(cè)模式;幀內(nèi)預(yù)測(cè)計(jì)算模塊根據(jù)當(dāng)前子塊的幀內(nèi)預(yù)測(cè)模式和存儲(chǔ)的相鄰塊一行一列的樣本點(diǎn)進(jìn)行插值;IDCT/IQ模塊運(yùn)算出殘差數(shù)據(jù);殘差疊加重構(gòu)模塊把插值得到的插值矩陣跟經(jīng)IDCT/IQ模塊得到的殘差矩陣進(jìn)行疊加得到最后的當(dāng)前幀圖象數(shù)據(jù),并控制返回下一個(gè)塊插值需要的一行一列樣本點(diǎn)。本發(fā)明采用模塊復(fù)用、模塊間最大限度的并行處理等設(shè)計(jì)思想,大大提高了運(yùn)算速度,非常適合用FPGA來(lái)實(shí)現(xiàn)。文檔編號(hào)H04N7/26GK101646081SQ200910099558公開(kāi)日2010年2月10日申請(qǐng)日期2009年6月18日優(yōu)先權(quán)日2009年6月18日發(fā)明者亮劉,陳日儀申請(qǐng)人:杭州高特信息技術(shù)有限公司