專利名稱::視頻解碼過程中反離散余弦變換的硬件實現(xiàn)裝置及方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種數(shù)字視頻編解碼
技術(shù)領(lǐng)域:
的裝置及方法,具體是一種視頻解碼過程中反離散余弦變換的硬件實現(xiàn)裝置及方法。
背景技術(shù):
:MPEG2是由國際標(biāo)準(zhǔn)化組織(ISO)于1994年為實現(xiàn)視/音頻服務(wù)與應(yīng)用互操作的可能性而推出的壓縮標(biāo)準(zhǔn)。MPEG2是較早推出的適合于廣播級數(shù)字電視編碼和傳送的標(biāo)準(zhǔn)。AVS(數(shù)字音視頻編解碼技術(shù)標(biāo)準(zhǔn))是由AVS工作組制定的一種多媒體信源編碼標(biāo)準(zhǔn)。該技術(shù)標(biāo)準(zhǔn)的視頻部分于2006年2月22日被頒布為中華人民共和國國家標(biāo)準(zhǔn),標(biāo)準(zhǔn)號GB/T20090.2-2006,于2006年3月1日起實施。H.264是由國際電信聯(lián)盟(ITU)和國際標(biāo)準(zhǔn)化組織(ISO)于2003年5月共同發(fā)布的新一代視頻壓縮編解碼標(biāo)準(zhǔn)。它目前己經(jīng)得到了業(yè)界的廣泛支持,不僅出現(xiàn)在了不同的行業(yè)應(yīng)用中,而且也涉及各個國家、各個組織。MPEG2、AVS和H.264具有相似的技術(shù)特點,三者都要對預(yù)測編碼產(chǎn)生的殘差進行變換編碼。變換編碼把預(yù)測殘差時域信號變換成頻域信號。頻域中,預(yù)測殘差的頻域信號能量大部分集中在低頻區(qū)域,相對于時域信號碼率有較大的下降。在MPEG2標(biāo)準(zhǔn)的視頻部分中,對預(yù)測殘差的變換編碼的解碼與IEEE的8x8反離散余弦變換標(biāo)準(zhǔn)規(guī)范Std1180-1990—致,采用浮點的反離散余弦變換。AVS標(biāo)準(zhǔn)的視頻部分中,對預(yù)測殘差的變換編碼的解碼采用了8x8整數(shù)反離散余弦變換。H.264標(biāo)準(zhǔn)中,對預(yù)測殘差的變換編碼的解碼采用了4x4整數(shù)反離散余弦變換和8x8整數(shù)反離散余弦變換的方法。按照MPEG2標(biāo)準(zhǔn)視頻部分和AVS標(biāo)準(zhǔn)視頻部分對反變換的規(guī)定,每計算一個像素點需要16次乘法和14次加法,代價非常高。而H.264標(biāo)準(zhǔn)實現(xiàn)反變換是一個效率很高且代價很低的移位加過程。由于三種標(biāo)準(zhǔn)反變換都是對反離散余弦變換直接應(yīng)用或改進后再應(yīng)用的,有很大相似性。為了使視頻解碼器支持MPEG2、AVS和H.264三種標(biāo)準(zhǔn),如果分別采用3個只支持單一標(biāo)準(zhǔn)的反變換模塊,模塊中會有三套相似的部分,這樣會大大浪費資源。因此有必要尋找一種兼容三種標(biāo)準(zhǔn)的架構(gòu)和代替運用大量乘法器來實現(xiàn)MPEG2標(biāo)準(zhǔn)視頻部分和AVS標(biāo)準(zhǔn)視頻部分規(guī)定的反離散余弦變換的方法。經(jīng)對現(xiàn)有技術(shù)文獻的檢索發(fā)現(xiàn),李莉等人在"基于DA算法的二維DCT的FPGA實現(xiàn)"(《現(xiàn)代電子技術(shù)》2006年第10期)中提出了一種實現(xiàn)離散余弦變換的架構(gòu)。該架構(gòu)通過利用DA算法(分布式算法),達到了用査找表模塊和累加移位寄存器代替大量乘法器的效果。但是仍存在如下缺點1、査找表的表值有很大的冗余,沒有充分利用査找表表值的對稱性,因而不是最優(yōu)化的。2、只提出了8x8的離散余弦變換的方法和裝置,沒有考慮到對H.264標(biāo)準(zhǔn)中4x4離散余弦變換的兼容。
發(fā)明內(nèi)容本發(fā)明的目的在于針對現(xiàn)有技術(shù)的不足,提供一種視頻解碼過程中反離散余弦變換的硬件實現(xiàn)裝置及方法,要解決的技術(shù)問題是,尋找一種比較簡單的方法代替原來的乘加運算,并提出一種硬件架構(gòu)兼容MPEG2、AVS和H.264三種視頻編解碼標(biāo)準(zhǔn)中規(guī)定的反離散余弦變換,從而達到節(jié)省資源的目的。本發(fā)明是通過以下技術(shù)方案實現(xiàn)的本發(fā)明所涉及的視頻解碼過程中反離散余弦變換的硬件實現(xiàn)裝置,包括行變換運算模塊、行變換控制模塊、列變換運算模塊、列變換控制模塊和轉(zhuǎn)置RAM,其中行變換運算模塊接收反量化后的預(yù)測殘差變換系數(shù),對預(yù)測殘差系數(shù)通過査找表、累加移位處理完成一次8x8的反離散余弦變換,并把得到的行變換輸出送給轉(zhuǎn)置RAM;列變換運算模塊從轉(zhuǎn)置RAM讀出已經(jīng)轉(zhuǎn)置的8x8行變換輸出,對行變換結(jié)果通過查找表、累加移位處理完成一次8x8的反離散余弦變換,得到反變換結(jié)果,即8x8個預(yù)測殘差;行變換控制模塊控制行變換運算模塊接收數(shù)據(jù),以及完成一次8x8反離散余弦變換和把行變換結(jié)果存進轉(zhuǎn)置RAM中;列變換控制模塊控制列變換運算模塊從轉(zhuǎn)置RAM中讀出轉(zhuǎn)置的行變換結(jié)果,以及完成一次8x8反離散余弦變換和把最終反離散余弦變換結(jié)果輸出。所述的一個行變換運算模塊是指完成一次一維8x8反離散余弦變換的模塊。它由一個取數(shù)據(jù)模塊,16個不同的查找表,8個累加移位模塊和一個后處理模塊組成,其中取數(shù)據(jù)模塊是在行變換控制模塊的控制下完成一次讀取8個16比特數(shù)據(jù)并產(chǎn)生查找表索引值的功能;16個不同的查找表是存儲了由MPEG2/AVS/H.264三個標(biāo)準(zhǔn)得到的反離散余弦變換系數(shù)矩陣算出的表值;累加移位模塊是完成對每次査出的表值累加移位的模塊,并且所有累加移位寄存器在每次輸入不同的8個數(shù)據(jù)前其中數(shù)據(jù)初始化為0;后處理模塊是完成對8個累加移位模塊的輸出進行蝶形運算并把結(jié)果按要求形式輸出給轉(zhuǎn)置RAM的模塊。所述的轉(zhuǎn)置RAM是一個16x64x2的雙口RAM,通過讀寫地址的順序關(guān)系完成8x8轉(zhuǎn)置。所述的一個列變換運算模塊是指完成一次一維8x8反離散余弦變換的模塊。它由一個取數(shù)據(jù)模塊,16個不同査找表,8個累加移位模塊和一個后處理模塊組成。列變換的取數(shù)據(jù)模塊、16個不同查找表、8個累加移位模塊與行變換運算模塊中的一樣。列變換的后處理模塊除了完成對8個累加移位模塊的輸出進行蝶形運算外,還要把結(jié)果按照要求輸出給在視頻解碼系統(tǒng)中反離散余弦變換模塊的后級模塊。所述的累加移位寄存器,是指用于把一次一維8x8點反離散余弦變換的中間結(jié)果與當(dāng)前累加移位寄存器中的數(shù)據(jù)相加,并把相加結(jié)果右移兩位后再存入累加移位寄存器的寄存器。本發(fā)明所涉及的視頻解碼過程中反離散余弦變換的硬件實現(xiàn)方法,包括如下歩驟第一歩,從視頻解碼系統(tǒng)中反離散余弦變換裝置的前級裝置接收預(yù)測殘差變換系數(shù);所述的預(yù)測殘差變換系數(shù),是指在視頻編碼時,預(yù)測編碼產(chǎn)生的預(yù)測殘差經(jīng)過變換編碼得到的變換系數(shù)。第二步,對輸入的預(yù)測殘差系數(shù)采用査找表、累加移位寄存器和行變換后處理模塊進行一次8x8行變換,即一次一維的8x8反離散余弦變換,得到8x8個行變換結(jié)果;所述的査找表,其表值是通過對8x8反離散余弦變換系數(shù)矩陣進行計算得到的。所述的8x8反離散余弦變換系數(shù)矩陣是由MPEG2、AVS和H.264標(biāo)準(zhǔn)中規(guī)定的反離散余弦變換方法推導(dǎo)出的8x8矩陣。第三步,將8x8個行變換輸出結(jié)果按0到63的自然順序存入轉(zhuǎn)置RAM中,后續(xù)列變換時,以轉(zhuǎn)置的地址順序讀入行變換結(jié)果。第四步,對轉(zhuǎn)置后的結(jié)果采用査找表、累加移位寄存器和行變換后處理模塊進行一次8x8列變換,即一次一維8x8反離散余弦變換;第五步,輸出列變換結(jié)果,即是預(yù)測殘差。所述的預(yù)測殘差,是指在視頻編碼時,對視頻圖像進行預(yù)測編碼而得到的殘差值。一次反離散余弦變換過程只計算一個8x8預(yù)測殘差系數(shù)塊。第二歩和第四歩所述的行變換和列變換是進行了兩次相同的一維8x8點反離散余弦變換。所述的一次一維8x8點反離散余弦變換,包括如下步驟步驟一,初始化8個累加移位寄存器中數(shù)據(jù)為0。步驟二,讀入8個16比特預(yù)測殘差變換系數(shù)。步驟三,從8個預(yù)測殘差變換系數(shù)產(chǎn)生查找表的索引值。歩驟四,對讀入的每個預(yù)測殘差變換系數(shù)進行算術(shù)右移兩位操作。歩驟五,第三步產(chǎn)生的査找表索引值送入查找表中,得到査找表結(jié)果。歩驟六,把從査找表得到的結(jié)果與累加移位寄存器中的數(shù)據(jù)相加,并把相加結(jié)果算術(shù)右移2位后再存入累加移位寄存器中。步驟七,重復(fù)步驟一歩到歩驟六8次。歩驟八,把各移位累加寄存器中的數(shù)據(jù)與初始值相加,并把得到的相加結(jié)果再存入累加移位寄存器中。所述的初始值,是指對從MPEG2、AVS和H.264標(biāo)準(zhǔn)中得到的反離散余弦變換系數(shù)矩陣進行計算得到的常數(shù)。歩驟九,對8個累加移位寄存器中的數(shù)據(jù)進行蝶形運算。蝶形運算的結(jié)果就是8個一維反離散余弦變換結(jié)果。步驟十,重復(fù)步驟一到步驟九8次,完成一次一維8x8反離散余弦變換,得到64個一次一維8x8反離散余弦變換的輸出。本發(fā)明充分利用了MPEG2、AVS和H.264三種標(biāo)準(zhǔn)對反離散余弦變換定義的相似性,只需通過改變查找表的表值和初始值完成對三種標(biāo)準(zhǔn)的兼容。特別地,用本發(fā)明與李莉等人論文中的方案進行比較,能夠發(fā)現(xiàn),李莉等人并沒有給出如何實現(xiàn)對不同標(biāo)準(zhǔn)的兼容,特別其提出的方案很難兼容H.264標(biāo)準(zhǔn)中4x4的反離散余弦變換。而本發(fā)明只需要通過加入4x4反離散余弦變換系數(shù)矩陣對應(yīng)的表值就能夠兼容&264標(biāo)準(zhǔn)中4"的反離散余弦變換。而且,本發(fā)明產(chǎn)生的查找表的大小是李莉等人論文所提出的方法產(chǎn)生的查找表大小的一半。圖1一次一維8x8反離散余弦變換被描述成一次8x8的矩陣乘法示意圖中利用MPEG2/AVS/H.264三種標(biāo)準(zhǔn)的反離散余弦變換系數(shù)矩陣的共同具有的特征奇數(shù)行奇對稱,偶數(shù)行偶對稱,把一次8x8矩陣乘法運三等價變換為2次4x4矩陣乘法運算。圖2是視頻解碼過程中支持MPEG2、AVS和H.264三種標(biāo)準(zhǔn)所規(guī)定的反離散余弦變換裝置結(jié)構(gòu)框圖。圖3是一維8x8點反離散余弦變換裝置(行變換運算模塊/列變換運算模塊)結(jié)構(gòu)框圖。圖4是表值由反離散余弦變換系數(shù)矩陣一列系數(shù)算出的一組高址和低址査找表的結(jié)構(gòu)框圖。具體實現(xiàn)方式下面結(jié)合附圖對本發(fā)明的實施例作詳細說明本實施例在以本發(fā)明技術(shù)方案為前提下進行實施,給出了詳細的實施方式和具體的操作過程,但本發(fā)明的保護范圍不限于下述的實施例。本實施例所用到的反離散余弦變換系數(shù)矩陣是由MPEG2、AVS和H.264三個標(biāo)準(zhǔn)規(guī)定的反離散余弦變換方法推導(dǎo)而出。MPEG2標(biāo)準(zhǔn)視頻部分規(guī)定的反離散余弦變換方法為浮點形式,硬件實現(xiàn)時可對其定點化形成一個8x8整數(shù)反離散佘弦變換的系數(shù)矩陣。A即eg2-invsb8是由MPEG2標(biāo)準(zhǔn)規(guī)定的反離散余弦變換推導(dǎo)出的8x8反離散余弦變換系數(shù)矩陣,如下所示92682128553121095108982926827282050159255719268210898250159-25571-92682-128553-121095-728209268272820—50159-128553-9268225571121095108982mpeg2-invsb89268225571-121095-7282092682108982—50159—12855392682—25571-1210957282092682-108982—5015912855392682-72820-50159128553-92682-25571121095-10898292682—1089825015925571-92682128553-1210957282092682-128553121095-10898292682—7282050159—25571AVS標(biāo)準(zhǔn)視頻部分規(guī)定的反離散余弦變換系數(shù)矩陣為一8x8矩陣,如下所示:8101098642-9-2-8-10-10-686-4-10_8210982-10-69-4-10S_2-1068_9-4108-6_410—8-210-9-942-g10-1068-1010_98_64-2_Ah.264-invsb8為由H.264標(biāo)準(zhǔn)中對8x8反離散余弦變換的規(guī)定推導(dǎo)出的8x8反離散佘弦變換系數(shù)矩陣,如下所示h.264—invsb88128108643"8104-3-8-12-8_686-4-12-8381083-8_6810-4-12-3-86-10-4128_6-412-8_3-108-1043-812_868-128-108_64-3_Ah.264-invsb4為由H.264標(biāo)準(zhǔn)中對4x4反離散余弦變換的規(guī)定推導(dǎo)出的8x8反離散余弦變換系數(shù)矩陣。H.264中規(guī)定了兩種反離散余弦變換方法8x8反離散余弦變換和4x4反離散余弦變換。為了使4x4反離散余弦變換系數(shù)矩陣兼容在8x8反離散余弦變換的方法里,對4x4矩陣進行等價變換得到一個8x8矩陣,如下所示<formula>formulaseeoriginaldocumentpage11</formula>如圖1所示,一次一維8x8反離散余弦變換被描述成一次8x8的矩陣乘法。其中,X到X[l]是輸入的8x8預(yù)測殘差變換系數(shù)矩陣的某一列;Y[O]到Y(jié)[l]是一次一維8x8反離散余弦變換所得到的8x8矩陣的一列。根據(jù)由MPEG2、AVS和H.264標(biāo)準(zhǔn)中規(guī)定的反離散余弦變換方法推導(dǎo)出的8x8反離散余弦變換系數(shù)矩陣的特點偶數(shù)行偶對稱奇數(shù)行奇對稱,可以把8x8矩陣乘法等價變換成做兩個4x4矩陣乘法。偶數(shù)列4x4矩陣是由原8x8矩陣的第0、2、4、6列的第0到第3行組成。奇數(shù)列4x4矩陣是由原8x8矩陣的第1、3、5、7列的第0到第3行組成。把兩次4x4矩陣乘法得到的4x4矩陣,做一次4x4矩陣加法和一次4x4矩陣減法并按如圖所示的組合方式組合所得結(jié)果,就得到一次8x8矩陣乘法的結(jié)果。如圖2所示,視頻解碼過程中支持MPEG2、AVS和H.264三個標(biāo)準(zhǔn)所規(guī)定的反離散余弦變換的硬件實現(xiàn)裝置,包括行變換運算模塊,行變換控制模塊,列變換運算模塊,列變換控制模塊和轉(zhuǎn)置RAM,其中行變換運算單元和列變換運算單元均采用査找表和累加移位相配合的方法完成一次一維的反離散余弦變換。行變換運算單元的輸出經(jīng)過轉(zhuǎn)置RAM的8x8矩陣轉(zhuǎn)置送入列變換運算單元中完成第二次的一維反離散余弦變換。列變換運算單元的輸出為預(yù)測殘差值。所述的一個行變換運算模塊是指完成一次一維8x8反離散余弦變換的模塊。它由一個取數(shù)據(jù)模塊,16個不同的査找表,8個累加移位模塊和一個后處理模塊組成,其中取數(shù)據(jù)模塊是在行變換控制模塊的控制下完成一次讀取8個16比特數(shù)據(jù)并產(chǎn)生查找表索引值的功能;16個不同的査找表是存儲了由MPEG2/AVS/H.264三個標(biāo)準(zhǔn)得到的反離散余弦變換系數(shù)矩陣算出的表值;累加移位模塊是完成對每次査出的表值累加移位的模塊,并且所有累加移位寄存器在每次輸入不同的8個數(shù)據(jù)前其中數(shù)據(jù)初始化為0;后處理模塊是完成對8個累加移位模塊的輸出進行蝶形運算并把結(jié)果按要求形式輸出給轉(zhuǎn)置RAM的模塊。所述的轉(zhuǎn)置RAM是一個16x64x2的雙口RAM,通過讀寫地址的順序關(guān)系完成8x8轉(zhuǎn)置。所述的一個列變換運算模塊是指完成一次一維8x8反離散余弦變換的模塊。它由一個取數(shù)據(jù)模塊,16個不同查找表,8個累加移位模塊和一個后處理模塊組成。列變換的取數(shù)據(jù)模塊,16個不同查找表,8個累加移位模塊與行變換運算模塊中的一樣。列變換的后處理模塊除了完成對8個累加移位模塊的輸出進行蝶形運算外,還要把結(jié)果按照要求輸出給在視頻解碼系統(tǒng)中反離散余弦變換模塊的后級模塊。下面結(jié)合圖2和圖3,對本實施例進一步詳細描述本實施例處理的象素塊大小為8x8,處理過程簡述如下第一歩,從視頻解碼系統(tǒng)中反離散余弦變換裝置的前級裝置接收預(yù)測殘差變換系數(shù)。第二步,對輸入的預(yù)測殘差系數(shù)進行一次8x8行變換。如圖2所示,行變換運算模塊在行變換控制模塊的控制下讀取預(yù)測殘差系數(shù)開始進行一次一維8x8反離散余弦變換。如圖3所示,步驟一,初始化8個累加移位寄存器mac—reg0到mac—reg7的數(shù)據(jù)為0。歩驟二,行變換的取數(shù)據(jù)模塊中的8個16比特接收寄存器順序接收8個預(yù)測殘差的變換系數(shù)X。、Z,、義2、……、Z6、義7后,把這8個數(shù)據(jù)放到另外8個16比特索引產(chǎn)生寄存器中。步驟三,每個索引產(chǎn)生寄存器收到數(shù)據(jù)后,開始一個時鐘周期移出2比特二進制數(shù)據(jù)并完成移位操作。8個索引產(chǎn)生寄存器的輸出按照如下要求組成4組不同的索引值進入16個查找表模塊。索引值按如下方式求得偶類低地址索引值偶類高地址索引值奇類低地址索引值奇類高地址索引值其中I=U0,X2,Z4,16}表示取1。,X2,X4,X6的第o個二進制位,組成一個4比特數(shù)據(jù)i。;^[o]為i的最高位。步驟四,對8個索引產(chǎn)生寄存器的數(shù)據(jù)進行邏輯右移2位后再存入原索引產(chǎn)生寄存器中。歩驟五,歩驟三產(chǎn)生的索引值送入對應(yīng)的查找表中得到相應(yīng)的査找表結(jié)果。所述的對應(yīng)的查找表,是指16個查找表和索引值對應(yīng)的分為四類偶類低地址查找表、偶類高地址查找表、奇類低地址查找表和奇類高地址查找表。分類方法如下首先16個査找表分為兩類偶類査找表,奇類查找表。偶類査找表表值由MPEG2、AVS和H.264標(biāo)準(zhǔn)中得到的反離散余弦變換系數(shù)矩陣的偶數(shù)列系數(shù)得到。奇類查找表表值由MPEG2、AVS和H.264標(biāo)準(zhǔn)中得到的反離散余弦變換系數(shù)矩陣的奇數(shù)列系數(shù)得到。偶類查找表又分為偶類高址查找表和偶類低址查找表。偶類高址査找表輸入的索引值是由輸入的預(yù)測殘差變換系數(shù)的二進制第1位組成。偶類低址査找表輸入的索引值是由輸入的預(yù)測殘差變換系數(shù)的二進制第0位組成。同偶類查找表的分類依據(jù)一樣,奇類查找表也分為奇類高址查找表和奇類低址查找表。由反離散余弦變換系數(shù)矩陣相同列產(chǎn)生的高址査找表表值比低址查找表相應(yīng)表值乘以2。同時當(dāng)索引值是由輸入的預(yù)測殘差系數(shù)的符號位組成,查找表輸出的結(jié)果是表值的相反數(shù)。反離散余弦變換系數(shù)矩陣的一列系數(shù)對應(yīng)一套查找表表值。:idx—1—even={10,X2,JT4,16};:idx—h一even=U0[l],X2[l],JT4[1],義6[1]};:idx丄odd={《,X3,X5,X7};:idx—h—odd={XJl],X3[l],X5[l],Jf7[l]}。如圖4所示,表值由反離散余弦變換系數(shù)矩陣一列系數(shù)算出的一組高址和低址査找表的結(jié)構(gòu)圖。偶類或奇類的高地址査找表表值計算方法當(dāng)CC",G2,(^3分別為-1,1,1,1;1,1,1,-1;1,1,-1,1;1,1,-1,-1;1,-1,1,1;1,_1,1,-1;1,-1,-1,1;1,-1,-1,_1時,按如下式子算出相應(yīng)表值A(chǔ)VS/H.264:("0)。.0+a^.C"+a2yC;2+"3y。3)x2";MPEG2:(。0+C;1+a2y.C/2+C/3)。其中"。7到表示四個反離散余弦變換系數(shù)矩陣中第J列的第0到第3行4個數(shù)據(jù)。當(dāng)」=0時,該査找表就是偶類高地址查找表O。偶類低低地址査找表O的表值是偶類高地址查找表0對應(yīng)索引表值的一半。如此得到兩個査找表表值。同理,當(dāng)j=0到7時可以得到16組不同表值的査找表。步驟六,步驟五中得到的16個査找表結(jié)果并行進入對應(yīng)的8個累加移位單元中進行累加移位。所述的對應(yīng)關(guān)系,是指在步驟五中」=0得到的兩個查找表對應(yīng)著累加移位寄存器maC_regO;j=l時得到的兩個查找表對應(yīng)著mac—regl;j=2時對應(yīng)著mac—reg2;......;j二7時對應(yīng)著mac_reg7。累加移位單元中數(shù)據(jù)與所對應(yīng)的高地址査表和低地址查找表表值相加,并把相加結(jié)果右移兩位再存入累加移位單元中。當(dāng)輸入的預(yù)測殘差系數(shù)符號位作為索引值的查找表結(jié)果到達時,給累加移位寄存器不僅要做相應(yīng)的累加移位操作,還要對每個累加移位結(jié)果加上一個初始值,并把加上初始值的累加移位結(jié)果再存入累加移位寄存器中。該初始值由反離散余弦系數(shù)矩陣計算產(chǎn)生。每列系數(shù)產(chǎn)生一個初始值。所述的初始值按(-丄t^P計算。其中ay.為四個反離散余弦系數(shù)矩陣的第i2,.=0'乂行、第j列。j=0時算得初值對應(yīng)著累加移位寄存器mac_regO;j=l時對應(yīng)著mac—regl;......j二7時對應(yīng)著mac—reg7。步驟七,重復(fù)步驟一到步驟六8次,移位累加單元開始并行輸出8點累加移位結(jié)果,并把累加結(jié)果送入后處理單元。后處理單元在完成對這8點數(shù)據(jù)的蝶形運算后得到一次一維8x8反離散余弦變換的8點數(shù)據(jù)。蝶形運算按如下方式進行:pos_reg0二mac_reg0-mac—reg7;pos—regl=mac_regl+mac—reg6;pos—reg2二mac_reg2-mac—reg5;pos_reg3=mac—reg3+mac—reg4;pos_reg4二mac—reg4-mac—reg3;pos_reg5二mac_reg5+mac—reg2;pos—reg6=mac—reg6-mac—regl;pos—reg7二腿c—reg7+mac—reg0。如此運算再對pos—regO到pos—regl按照不同視頻標(biāo)準(zhǔn)進行相應(yīng)輸出就得到8個一維8x8反離散余弦變換結(jié)果。在圖2中,8x8預(yù)測殘差系數(shù)矩陣完成一次行變換后得到的結(jié)果按自然順序?qū)懭朕D(zhuǎn)置RAM中,列變換運算模塊按如下的地址映射讀取轉(zhuǎn)置RAM中的行變換結(jié)果完成一次8x8矩陣轉(zhuǎn)置<table>tableseeoriginaldocumentpage15</column></row><table>如果當(dāng)前進行的是MPEG2或AVS或H.264標(biāo)準(zhǔn)中規(guī)定的8x8反離散余弦變換時按左面映射關(guān)系進行轉(zhuǎn)置操作。0到63為行變換模塊按自然順序?qū)戅D(zhuǎn)置RAM地址。列變換運算模塊讀取時從第1列開始自上而下讀取數(shù)據(jù)即0、8、16、24、32、40、48、56。讀完第1列后依次按讀第1列方式讀取第2列到第7列數(shù)據(jù)。如果當(dāng)前進行的是H.264標(biāo)準(zhǔn)中規(guī)定的4x4反離散余弦變換時按右面映射關(guān)系進行轉(zhuǎn)置操作。0到63依然為行變換模塊按自然順序?qū)戅D(zhuǎn)置RAM地址。列變換運算模塊讀取時從第1列開始自上而下讀取第0行到第3行數(shù)據(jù)。然后依次按讀第1列方式讀取第2列到第7列的第0行到第3行數(shù)據(jù)。當(dāng)讀完第1列到第7列的第0行到第3行數(shù)據(jù)時,開始讀取第1列的第4行到第7行數(shù)據(jù)即32、36、40、44。讀完第1列的第4行到第7行數(shù)據(jù)后,按照讀取第1列的第4行到第7行數(shù)據(jù)的方法依次讀取第2列到第7列的第4行到第7行數(shù)據(jù)。如此完成轉(zhuǎn)置操作。列變換運算模塊從轉(zhuǎn)置RAM中讀出行變換結(jié)果后完成一次一維8x8反離散余弦變換的方法和步驟與行變換運算模塊相同。列變換運算模塊在后處理模塊部分,對蝶形運算結(jié)果根據(jù)不同視頻標(biāo)準(zhǔn)進行相應(yīng)右移后開始輸出,輸出就是反離散余弦變換的結(jié)果預(yù)測殘差。本實施例通過對按照MPEG2、AVS和H.264標(biāo)準(zhǔn)規(guī)定壓縮的12個高清視頻碼流進行測試,可以順利完成相應(yīng)標(biāo)準(zhǔn)規(guī)定的反離散余弦變換操作。本發(fā)明所提供的裝置可以很好的兼容MPEG2、AVS和H.264標(biāo)準(zhǔn)規(guī)定的不同反離散余弦變換。并且能保證平均1個時鐘周期處理完1個預(yù)測殘差變換系數(shù),即滿足高清視頻解碼時的實時解碼要求。權(quán)利要求1.一種視頻解碼過程中反離散余弦變換的硬件實現(xiàn)裝置,其特征在于包括行變換運算模塊、行變換控制模塊、列變換運算模塊、列變換控制模塊和轉(zhuǎn)置RAM,其中行變換運算模塊接收反量化后的預(yù)測殘差變換系數(shù),對預(yù)測殘差系數(shù)通過查找表、累加移位處理完成一次8×8的反離散余弦變換,并把得到的行變換輸出送給轉(zhuǎn)置RAM;列變換運算模塊從轉(zhuǎn)置RAM讀出已經(jīng)轉(zhuǎn)置的8×8行變換輸出,對行變換結(jié)果通過查找表、累加移位處理完成一次8×8的反離散余弦變換,得到反變換結(jié)果,即8×8個預(yù)測殘差;行變換控制模塊控制行變換運算模塊接收數(shù)據(jù),以及完成一次8×8反離散余弦變換和把行變換結(jié)果存進轉(zhuǎn)置RAM中;列變換控制模塊控制列變換運算模塊從轉(zhuǎn)置RAM中讀出轉(zhuǎn)置的行變換結(jié)果,以及完成一次8×8反離散余弦變換和把最終反離散余弦變換結(jié)果輸出。2.根據(jù)權(quán)利要求1所述的視頻解碼過程中反離散余弦變換的硬件實現(xiàn)裝置,其特征是,所述的一個行變換運算模塊由一個取數(shù)據(jù)模塊、16個不同的查找表、8個累加移位模塊和一個后處理模塊組成,其中取數(shù)據(jù)模塊是在行變換控制模塊的控制下完成一次讀取8個16比特數(shù)據(jù)并產(chǎn)生查找表索引值的功能;16個不同的査找表是存儲了由MPEG2/AVS/H.264三個標(biāo)準(zhǔn)得到的反離散余弦變換系數(shù)矩陣算出的表值;累加移位模塊是完成對每次査出的表值累加移位的模塊,并且其中所有累加移位寄存器在每次輸入不同的8個數(shù)據(jù)前,其中數(shù)據(jù)初始化為0;后處理模塊是完成對8個累加移位模塊的輸出進行蝶形運算并把結(jié)果按要求形式輸出給轉(zhuǎn)置RAM的模塊。3.根據(jù)權(quán)利要求1或2所述的視頻解碼過程中反離散余弦變換的硬件實現(xiàn)裝置,其特征是,所述的轉(zhuǎn)置RAM是一個16x64x2的雙口RAM,通過讀寫地址的順序關(guān)系完成8x8轉(zhuǎn)置。4.根據(jù)權(quán)利要求1所述的視頻解碼過程中反離散余弦變換的硬件實現(xiàn)裝置,其特征是,所述的一個列變換運算模塊由一個取數(shù)據(jù)模塊、16個不同査找表、8個累加移位模塊和一個后處理模塊組成,列變換運算模塊的取數(shù)據(jù)模塊、16個不同查找表、8個累加移位模塊與行變換運算模塊中的相同,列變換運算模塊的后處理模塊除了完成對8個累加移位模塊的輸出進行蝶形運算外,還要把結(jié)果按照要求輸出給在視頻解碼系統(tǒng)中反離散余弦變換模塊的后級模塊。5.根據(jù)權(quán)利要求1或2所述的視頻解碼過程中反離散余弦變換的硬件實現(xiàn)方法,其特征是,所述的累加移位寄存器,是指用于把一次一維8x8點反離散余弦變換的中間結(jié)果與當(dāng)前累加移位寄存器中的數(shù)據(jù)相加,并把相加結(jié)果右移兩位后再存入累加移位寄存器的寄存器。6.—種視頻解碼過程中反離散余弦變換的硬件實現(xiàn)方法,其特征在于,包括以下歩驟.-第一步,從視頻解碼系統(tǒng)中反離散余弦變換裝置的前級裝置接收預(yù)測殘差變換系數(shù);第二步,對輸入的預(yù)測殘差系數(shù)采用査找表、累加移位寄存器和行變換后處理模塊進行一次8x8行變換,即一次一維的8x8反離散余弦變換,得到8x8個行變換結(jié)果;第三步,將8x8個行變換輸出結(jié)果按0到63的自然順序存入轉(zhuǎn)置RAM中,后續(xù)列變換時,以轉(zhuǎn)置的地址順序讀入行變換結(jié)果;第四步,對轉(zhuǎn)置后的結(jié)果采用查找表、累加移位寄存器和行變換后處理模塊進行一次8x8列變換,即一次一維8x8反離散余弦變換;第五歩,輸出列變換結(jié)果,即是對視頻圖像進行預(yù)測編碼而得到的殘差值。7.根據(jù)權(quán)利要求6所述的視頻解碼過程中反離散余弦變換的硬件實現(xiàn)方法,其特征是,所述的一次一維8x8點反離散余弦變換,包括如下步驟歩驟一,初始化8個累加移位寄存器中數(shù)據(jù)為0;歩驟二,讀入8個16比特預(yù)測殘差變換系數(shù);步驟三,從8個預(yù)測殘差變換系數(shù)產(chǎn)生查找表的索引值;歩驟四,對讀入的每個預(yù)測殘差變換系數(shù)進行算術(shù)右移兩位操作;表索引值送入査找表中,得到査找表結(jié)果;步驟六,把從査找表得到的結(jié)果與累加移位寄存器中的數(shù)據(jù)相加,并把相加結(jié)果算術(shù)右移2位后再存入累加移位寄存器中;步驟七,重復(fù)步驟一步到步驟六8次;步驟八,把各移位累加寄存器中的數(shù)據(jù)與初始值相加,并把得到的相加結(jié)果再存入累加移位寄存器中;步驟九,對8個累加移位寄存器中的數(shù)據(jù)進行蝶形運算,蝶形運算的結(jié)果就是8個一維反離散余弦變換結(jié)果;步驟十,重復(fù)步驟一到步驟九8次,完成一次一維8x8反離散余弦變換,得到64個一次一維8x8反離散余弦變換的輸出。8.根據(jù)權(quán)利要求7所述的視頻解碼過程中反離散余弦變換的硬件實現(xiàn)方法,其特征是,步驟八中,所述的初始值,是指對從MPEG2、AVS和H.264標(biāo)準(zhǔn)中得到的反離散余弦變換系數(shù)矩陣進行計算得到的常數(shù)。9.根據(jù)權(quán)利要求6或7所述的視頻解碼過程中反離散余弦變換的硬件實現(xiàn)方法,其特征是,所述的預(yù)測殘差變換系數(shù),是指在視頻編碼時,預(yù)測編碼產(chǎn)生的預(yù)測殘差經(jīng)過變換編碼得到的變換系數(shù)。10.根據(jù)權(quán)利要求6或7所述的視頻解碼過程中反離散余弦變換的硬件實現(xiàn)方法,其特征是,所述的查找表,其表值是通過對8x8反離散余弦變換系數(shù)矩陣進行計算得到的,其中8x8反離散余弦變換系數(shù)矩陣是由MPEG2、AVS和H.264標(biāo)準(zhǔn)中規(guī)定的反離散余弦變換方法推導(dǎo)出的8x8矩陣。全文摘要本發(fā)明涉及一種視頻解碼過程中反離散余弦變換的硬件實現(xiàn)裝置及方法。裝置包括行變換運算單元、行變換控制單元、列變換運算單元、列變換控制單元及轉(zhuǎn)置RAM。行變換運算單元和列變換運算單元均采用查找表和累加移位相配合的方法完成一次一維的反離散余弦變換。行變換運算單元的輸出經(jīng)過轉(zhuǎn)置RAM的8×8矩陣轉(zhuǎn)置送入列變換運算單元中完成第二次的一維反離散余弦變換。列變換運算單元的輸出為預(yù)測殘差值。所述方法以8×8反離散余弦變換為基礎(chǔ),利用查找表和累加移位方法代替乘加運算,兼容MPEG2/AVS/H.264標(biāo)準(zhǔn)。本發(fā)明通過對查找表表值的不同兼容MPEG2、AVS、H.264的4×4和8×8反離散余弦變換。文檔編號H04N7/50GK101330616SQ200810041209公開日2008年12月24日申請日期2008年7月31日優(yōu)先權(quán)日2008年7月31日發(fā)明者劉佩林,周金佳,航張,宇洪申請人:上海交通大學(xué)