亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

用于執(zhí)行反向離散余弦變換的方法和裝置的制作方法

文檔序號:7564495閱讀:189來源:國知局
專利名稱:用于執(zhí)行反向離散余弦變換的方法和裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種用于執(zhí)行快速離散余弦變換(DCT)的方法和裝置。
背景技術(shù)
數(shù)字型數(shù)據(jù)壓縮,尤其是,視頻信號的壓縮是各種多媒體應用環(huán)境的一個主要組成部分。然而,由于一個視頻信號包含大量必須處理的信息,所以在有效傳輸、存儲或處理數(shù)據(jù)方面都有很多限制。為了解決這些限制,例如運動圖像專家組(MPEG)-2、MPEG-4、H.263、H.26L等的國際標準制定了壓縮流語法和解碼處理。
壓縮方法可以分為無損壓縮方法和有損壓縮方法。如果將無損壓縮用于字符、圖表以及普通數(shù)據(jù),則可以完全再現(xiàn),但是該壓縮比平均為2∶1。同時,如果通過允許人類的眼睛和耳朵所不易察覺的少量損失來壓縮例如視頻、語音和聲音之類的數(shù)據(jù),就能很容易地獲得10∶1或更高的壓縮比。變換編碼技術(shù)是用于有效壓縮視頻數(shù)據(jù)的應用最廣泛的有損編碼技術(shù)中的一種。在這種方法的一個基本框架(basic frame)中,被安排成具有高空間關(guān)聯(lián)性的數(shù)據(jù)被變換為頻率分量,范圍為從低頻率分量至高頻率分量。對每個頻率分量進行量化。每個頻率分量之間的空間相關(guān)性幾乎都消失了,并且該信號的能量都集中在了低頻部分。在通過正交變換所得到的頻域數(shù)據(jù)中,分配了更多的位,用于其中集中了更多能量(即,其中分布值更大)的頻率分量,以便能夠連續(xù)地表示該頻率分量。無論何時分布值增加四倍(即,無論何時該幅值加一倍),那么就會向具有該分布值的頻率分量再分配一位,以便所有的頻率分量都具有相同的量化誤差特征。在多種正交變換中,Karhunen-Loeve變換(KLT)具有最高的能量集中特性并且理論上可以提供最有效的壓縮。然而,由于在這種方法中對不同的圖像應當重新定義所述變換功能,所以實際上這種KLT變換是不能用的。一種具有近似該KLT的特性并且能夠?qū)嶋H運用的方法就是離散余弦變換(DCT)。在作為多種國際標準的核心的DCT變換中,多個8×8圖像元素組成一個塊并且以塊為單元來執(zhí)行變換。該壓縮比相對于一個塊的大小有所增加,但該變換的實現(xiàn)隨著該塊的大小的增加而變困難了。根據(jù)實驗,按照性能和實現(xiàn)的難易程度之間的一個折中選擇了8×8的圖像元素規(guī)模。
通常,在現(xiàn)有技術(shù)的壓縮技術(shù)中,為了在壓縮圖像時消除空間冗余,使用了DCT變換。為了消除時間冗余,使用了運動預測(ME)和運動補償(MC)。


圖1是示出了現(xiàn)有技術(shù)中2-維(D)-反向離散余弦變換(IDCT)的方向的框圖。
在一種通過減少IDCT處理中的運算量來執(zhí)行快速IDCT的現(xiàn)有技術(shù)中,分別在水平方向和垂直方向上執(zhí)行1D-IDCT,如圖1所示。這被稱作是2D-IDCT。尤其是,圖1示出了一種采用利用N個水平IDCT、代入以及N個垂直IDCT的行列算法(RCA)的2D-IDCT變換。也就是說,在行方向上執(zhí)行1D IDCT,代入結(jié)果值以計算多個列,然后在列方向上執(zhí)行1D-IDCT。
圖2是一個比較現(xiàn)有技術(shù)IDCT算法中計算量的表。
用于實現(xiàn)圖1中的2D-IDCT的IDCT算法包括都是基于稀疏矩陣因式分解的陳氏(Chen)算法和王氏(Wang)算法以及都是基于離散傅立葉變換的李氏(Lee)算法和AAN算法。圖2示出了在執(zhí)行這些算法時所需的乘法和加法運算的數(shù)量。
圖3示出了王氏算法,這是一種傳統(tǒng)的快速IDCT算法?;谳斎胄盘杧(0)至x(7),輸出輸出信號X(0)至X(7)。在這個處理中,在前接觸點的計算結(jié)果應當傳送給每個接觸點。常數(shù)C0至C7置于該接觸點之間。每個常數(shù)是在下一個接觸點計算時前一接觸點應當與之相乘的值。例如,C0可以按照C0=x(1)+x(7)來計算。如果以這種方式執(zhí)行所有的運算,那么就會發(fā)現(xiàn)需要用16個乘法器和26個加法器。盡管實施這種處理的方式中可能存在些許不同,但大多快速算法都采用類似的結(jié)構(gòu)。
傳統(tǒng)的快速IDCT算法可以充分地減少IDCT運算的復雜度。然而,在執(zhí)行解壓縮的還原中,該IDCT處理就要求巨大的運算量。在當前提供了多種多媒體服務的移動通信環(huán)境中,對編碼器的大小和功耗沒有太大的限制,其中,這些編碼器置于服務提供商的服務系統(tǒng)中。與此同時,由于解碼器通常置于移動通信設備例如移動電話和個人數(shù)字助理(PDA)中而使得解碼器在其大小和功耗上都有所限制。因此,應當減少在解碼器中所執(zhí)行的IDCT的運算量。

發(fā)明內(nèi)容
本發(fā)明提供了一種裝置和方法,通過這種裝置和方法,通過利用IDCT公式的對稱性來對一個DCT矩陣中的每個元素都執(zhí)行2D-IDCT而使得在IDCT處理中的運算量極大地減少。
按照本發(fā)明的一個方面,提供了一種快速反向離散余弦變換方法,包括(a)以一種預定順序搜索與非0(0)元素相關(guān)的一個離散余弦變換(DCT)矩陣中的所有元素,以及(b)通過利用一種IDCT公式的對稱性來對一個DCT矩陣中的非0元素執(zhí)行2維-反向DCT(2D-IDCT)變換從而計算該還原矩陣的每個元素的還原值。
按照本發(fā)明的另一方面,提供了一種快速反向離散余弦變換(IDCT)裝置,包括一個元素搜索單元,以一種預定順序搜索與非0(0)元素相關(guān)的一個離散余弦變換(DCT)矩陣中的所有元素;以及一個個體元素2維(2D)-IDCT單元,通過利用一種IDCT公式的對稱性來對元素搜索單元找到的DCT矩陣中的非0元素執(zhí)行2D-IDCT變換從而計算一個還原矩陣的每個元素的還原值。
附圖簡述通過參照其附圖詳細描述示例性實施例,將使本發(fā)明的上述目的和優(yōu)點變得更加明顯,其中圖1是示出了一種傳統(tǒng)的2維(D)-反向離散余弦變換(IDCT)的方向的框圖;圖2是比較現(xiàn)有技術(shù)中的IDCT算法的運算量的表;圖3是示出了王氏算法,一種傳統(tǒng)的快速IDCT算法,的框圖;圖4是示出了針對不同量化參數(shù)的DCT矩陣的元素值的分布的框圖;圖5是示出了針對不同量化參數(shù)的該DCT矩陣中不同的非0元素值的出現(xiàn)概率的圖表;圖6是按照本發(fā)明的一種快速IDCT裝置的結(jié)構(gòu)的框圖;圖7是一種二進制8×8DCT矩陣的一個例子的框圖;
圖8是示出了包含在一個IDCT公式中的余弦因子的值的表;圖9是示出了有關(guān)需要執(zhí)行IDCT變換的一個DCT矩陣的每個元素位置的乘法次數(shù)的格柵圖;圖10是圖6中的一個參考值計算存儲單元的結(jié)構(gòu)的詳細框圖;圖11是示出了通過對一個DCT矩陣進行IDCT變換而獲得的一個還原矩陣的對稱性的框圖;圖12是示出了有關(guān)一個DCT矩陣的元素位置的各種類型的對稱性的表;圖13是圖6中的一個參考值迭代加法單元的結(jié)構(gòu)的詳細框圖;圖14是用于說明圖6中的參考值迭代加法單元所使用的多種相加方法的框圖;圖15是用于說明對各個元素進行DCT變換的整個過程的框圖;圖16是示出了有關(guān)量化參數(shù)的乘法次數(shù)的實驗結(jié)果的圖表;圖17是示出了有關(guān)量化參數(shù)的加法次數(shù)的實驗結(jié)果的圖表;圖18是按照本發(fā)明的一種快速DCT方法所執(zhí)行的步驟的流程圖;圖19是對圖18中的每個元素進行2D-DCT變換的一個步驟中所執(zhí)行的子步驟的詳細流程圖;圖20是圖19中用于計算和存儲參考值的一個步驟中所執(zhí)行的子步驟的詳細流程圖;以及圖21是按照這種對稱性用于對參考值進行迭代相加的一個步驟中所執(zhí)行的子步驟的詳細流程圖。
具體實施例方式
圖4示出了當在一個IDCT步驟之前對使用不同的量化參數(shù)(Qp)對MPEG4測試運動圖像(Akiyo、Foreman和Mobile)進行編碼所獲得的MPEG4流進行解碼時所出現(xiàn)的DCT矩陣中的“DCT系數(shù)”的分布。在此,該Qp越小,壓縮比就越低,也就能以更高的傳輸率進行編碼。已經(jīng)證明,DCT矩陣中大約30%的元素值都集中分布在一個DCT矩陣的某個區(qū)域(2×2、4×4)中。這是由于在DCT矩陣元素值的一般分布中,這些值都集中在一個低頻帶上。然而,該Qp越小,即圖像質(zhì)量越好,該DCT矩陣元素值的分布就越寬,這些值是從低頻帶至高頻帶上。
圖5示出了通過利用不同量化參數(shù)所獲得的DCT矩陣中的不同數(shù)量的非0元素值的出現(xiàn)概率的曲線圖。
圖5用于分析來自與圖4中相同的輸入的該DCT矩陣中的不同數(shù)量的非0元素值的出現(xiàn)概率。該分析是關(guān)于該Qp來執(zhí)行的。從圖5中可以看出,當一個編碼的MPEG4流被解碼時一個DCT矩陣中的有效的非0元素值的數(shù)量小于等于10的概率大約為90%。與圖4相比,這就表示甚至當DCT矩陣元素值的塊結(jié)束值(EOB,在一個塊中要計算的系數(shù)的數(shù)量)大時該概率也是高的,0元素值也包含在這種情況中。
由此,不管一個塊中DCT矩陣元素值的位置在何處,當元素值的數(shù)量小于等于10時,就需要一種算法來減少運算。然而,系數(shù)的位置并不規(guī)律并且現(xiàn)有技術(shù)中的快速算法也不能使這種特性最佳化。
圖6是按照本發(fā)明的一種快速IDCT裝置的結(jié)構(gòu)的框圖。
該快速IDCT裝置包括一個元素搜索單元61和一個個體元素2D-IDCT單元62。
在用于壓縮視頻數(shù)據(jù)的一般過程中,首先執(zhí)行一個DCT變換,在該變換中,一個時域視頻信號被分為從高頻到低頻分布信號功率的多個頻域。由于該視頻信號的功率集中在低頻帶上,所以如果在適當分配了一些比特之后執(zhí)行量化,數(shù)據(jù)就會以更小的總比特數(shù)來進行壓縮。然后,執(zhí)行量化來減少整個數(shù)據(jù)量。在該量化中,該頻率被分為量化值,并且較小的值就變成0以便減少整個數(shù)據(jù)量。然而,由于該值變成了0并且消失了,所以就丟失了一些信息。接著,執(zhí)行游程長度編碼,這是一種壓縮算法,它將重復字符(在此為0)的序列(“游程”)置換為單個字符和該游程的長度。該游程越長頻率越頻繁,所獲得的壓縮比就越高。接下來,執(zhí)行霍夫曼編碼,通過這種編碼,通過折線掃描所產(chǎn)生的一個整數(shù)串就被變換為一個二進制數(shù)。在上述步驟之后,該8×8矩陣就減少為0和1的組合。為了解壓縮這種壓縮視頻數(shù)據(jù),就要反向執(zhí)行上述壓縮過程。
如上所述,如果視頻數(shù)據(jù)執(zhí)行DCT變換然后進行量化,那么大部分壓縮信息就都集中在了該低頻帶上,而該高頻帶就幾乎變?yōu)榱?。該量化比例越高,值就越頻繁地變?yōu)?,因此,在該DCT矩陣中非0元素值的數(shù)量就得以減少。該量化比例越低,非0元素的數(shù)量就越大。通常,一個運動圖像中的一個DCT矩陣的大多數(shù)元素值都是0并且只有一些元素值具有有效值。因此,如果僅在具有有效值的元素上執(zhí)行IDCT變換,那么就可以減少運算量。此外,當僅對具有有效值的元素執(zhí)行IDCT變換時,如果利用該IDCT公式的對稱性,那么就可以進一步減少運算量。也就是說,該元素搜索單元61以一個預定順序經(jīng)由該DCT矩陣的元素來搜索非0元素值。該個體元素2D-IDCT單元62通過利用該IDCT公式的對稱性來對該元素搜索單元61所發(fā)現(xiàn)的非0元素進行IDCT變換,以便計算該還原矩陣的每個元素的還原值。通常,2D-IDCT變換使用下面的等式1V(x,y)=Σi=0N-1Σj=0N-1C(i,j)T(i,j)cos((2x+1)iπ2N)cos((2y+1)jπ2N).......(1)]]>此處,如果i≠0且j≠0,則C(i,j)=2/N,并且,如果i=0或j=0,則C(i,j)=1/N在等式1中,T(i,j)表示DCT矩陣T的坐標i+1、j+1處的一個元素的值,而且,V(x,y)表示執(zhí)行了IDCT變換并且從該DCT矩陣還原來的矩陣V的坐標x+1、y+1處的元素的值。如果該DCT矩陣T是一個8×8矩陣,這是通常使用的大小,那么每個i、j、x和y都具有從0至7的一個值并且N為8。
為了只處理DCT矩陣中的非0元素而使用了一種疊加原理。也就是說,根據(jù)該疊加原理,該DCT矩陣中的元素值的一個塊被劃分為部分元素或個體元素,在每個單元上都執(zhí)行IDCT變換,并且然后計算這些結(jié)果的和以便使這個和值與整個矩陣的該IDCT變換的結(jié)果相同。本發(fā)明中,一個DCT矩陣的元素值的塊值一個個地單獨進行搜索,而只有具有有效值的部分進行IDCT變換。接著,最后計算這些結(jié)果的和以便獲得一個還原矩陣。為了對各個元素進行2D-IDCT變換,該DCT矩陣中的每個非0元素都按照下面的等式2來進行計算IDCT(T)=IDCT(T(0,0))+IDCT(T(0,1))+IDCT(r(0,2))+...+IDCT(T(0,7))+IDCT(T(1,0))+IDCT(T(1,1))+IDCT(T(1,2))+...+IDCT(T(1,7))+IDCT(T(2,0))+IDCT(T(2,1))+IDCT(T(2,2))+...+IDCT(T(2,7))+...++IDCT(T(7,0))+IDCT(T(7,1))+IDCT(T(7,2))+...+IDCT(T(7,7))...............(2)此處,IDCT(T)表示對一個8×8DCT矩陣T進行IDCT變換所獲得的還原的8×8矩陣V。IDCT(T(0,0))是一個8×8矩陣,其中當將T(0,0),即該DCT矩陣的第一行和第一列的元素值,與該坐標值i=0、j=0都代入等式1,然后,代入該還原矩陣V的各個坐標值x=0-7、y=0-7的時候,結(jié)果值就是坐標x、y的元素值。IDCT(T(0,0))是該還原的8×8矩陣V的一個局部值。也就是說,如果對于該DCT矩陣T中的所有非0元素,獲得所有作為該還原矩陣V的局部值的矩陣并計算其和,就可以得到所期望的還原矩陣的值。當實際實施本發(fā)明時,作為該還原矩陣V的一個局部值的矩陣以表格的形式存儲在存儲器中,然后,對置于按照所有存儲的表格的存儲器地址中的值計算其和以便獲得該還原矩陣值。
如果一個DCT矩陣中的非0元素的數(shù)量在一個DCT變換中為10,則一個個體元素2D-IDCT變換就基于下面的等式3來執(zhí)行IDCT(T)=IDCT(T(0,0))+IDCT(T(0,1))+IDCT(T(0,2))+IDCT(T(0,3))+IDCT(T(1,0))+IDCT(T(1,1))+IDCT(T(1,2))+IDCT(T(2,0))+IDCT(T(2,1))+IDCT(T(3,0)) ......................(3)該個體元素2D-IDCT單元62包括一個參考值計算存儲單元621和一個參考值迭代加法單元622。
該IDCT變換公式中,也就是在等式1中,其中代入由該元素搜索單元61所發(fā)現(xiàn)的一個非0元素的一個值T(i,j),該參考值計算存儲單元621將該非0元素的坐標i、j與由該IDCT公式的對稱性所確定的參考值的坐標值x、y代入。如此一來,對于非0元素的該還原矩陣的各個元素的參考值都得以計算和存儲。由于包含在等式1的IDCT公式中的余弦的周期性,該IDCT公式具有對稱性。因此,如果該非0元素的值T(i,j)及其坐標值i、j都代入該IDCT公式中,并且代入該還原矩陣的所有元素的坐標值x=0-7、y=0-7,就得到對稱的局部值。如果利用這種對稱性,該IDCT中所需的運算量就會大大減少。在本發(fā)明中,在所存儲的矩陣中具有該對稱的局部值的一個元素確定為一個參考元素,并且僅獲得該參考元素的局部值。然后,通過將該參考值的局部值向左或向右旋轉(zhuǎn)、向上和向下旋轉(zhuǎn)或者使該符號相反,就可獲得其它元素的局部值。在此,該參考元素的局部值是指該參考元素的參考值。
通過按照這種有關(guān)該參考元素的坐標的對稱性來將該參考值計算存儲單元621中所存儲的該參考值與該還原矩陣的每個元素的值進行迭代相加,該參考值迭代加法單元622計算該還原矩陣的每個元素的還原值。如上所述,如果對于該DCT矩陣中的所有非0元素,獲得所有作為該還原矩陣的局部值的矩陣然后計算其和,就可以通過該疊加原理而得到所期望的還原矩陣的值。因此,如果為了該DCT矩陣中的所有非0元素而獲得作為參考元素的局部值的參考值然后計算其和,那么就可以獲得該參考值的IDCT值。通過將每個參考值的局部值向左或向右旋轉(zhuǎn)、向上和向下旋轉(zhuǎn)或者使該符號相反,然后計算其和,就可以獲得元素的IDCT值而不是該參考元素的值。也就是說,不必獲得作為該還原矩陣的局部值的矩陣的所有元素。
圖7是示出了一個普通的8×8DCT矩陣的一個例子的框圖。
包含在一個元素中的視頻信息越多,用于表示該元素的陰影就越黑。其中包含的視頻信息最多的一個元素A1,也就是位于該最低頻帶上的一個元素,用最黑的陰影來表示。A1的值稱為一個DC(低頻)值,而剩余的63個元素的值稱為AC(高頻)值。該DC值和相鄰元素值,也就是該矩陣的左上角的元素,包含用于確定整個圖像的亮度的非常重要的信息。
該元素搜索單元61可以在水平方向和垂直方向上搜索該DCT矩陣中的非0元素。然而,因為非0元素集中在該矩陣的左上角,所以從該元素A1開始以一種折線順序搜索該非0元素。也就是說,以A1、A2、A3......的順序來對元素進行搜索,就可以以最少的處理量搜索到最多的非0元素。
圖8是示出了包括在一個IDCT公式中的余弦因子的值的表。
對于一個8×8DCT矩陣,如果T(i,j),即該DCT矩陣的一個元素的值,不包括在等式1中,其中該等式1是該IDCT公式,那么該公式就可以簡化為下面的等式4sign×C×cos(kπ16)×cos(pπ16)......(4)]]>此處,k=(2x+1)i,p=(2y+1)j,且C=C(i,j)。
如果該等式的結(jié)果值與該DCT矩陣的一個元素的值相乘,則它就變成一個局部值。由此,等式3的結(jié)果值就可成為一個標準值。圖8是一個余弦因子值表,其中,包含在等式3中的余弦函數(shù)的因子值k、p是按照該8×8DCT矩陣的一個元素的坐標m、n來確定的。此處,m、n是該8×8DCT矩陣中的一個元素的實際坐標值,因此m、n就比代入等式1中的元素的坐標值大1。也就是i=m-1、j=n-1。
例如,如果一個DCT矩陣的元素值的坐標是m=6、n=4(也就是,i=5,j=3),則就應當產(chǎn)生16個常數(shù)(4×4=16)來作為cos(5π16),-cos(1π16),cos(7π16),cos(3π16)]]>與cos(3π16),-cos(7π16),-cos(1π16),-cos(5π16)]]>的組合產(chǎn)物。然而,因為有重疊值,所以應當把重疊值去掉。此處,重疊值的數(shù)量為pC2。該p表示按照行坐標值的余弦因子值和按照圖8的表中具有相同值的列坐標值的余弦因子值的數(shù)量。在上述i=6和j=4的情況下,p=1,3,5,7。由此,去掉這些重疊的4C2個值,即6個重疊值,就產(chǎn)生了10個常數(shù)。對該DCT矩陣的所有元素,以下的說明都是適用的。
首先,如果該DCT矩陣的行和列都是偶數(shù),k=1,3,5,7且p=1,3,5,7,那么就應當產(chǎn)生16(=4×4)個常數(shù)。但是,如果去掉這些重疊的4C2個值,即6個重疊值,就一共產(chǎn)生10個常數(shù)。
其次,如果該DCT矩陣的行和列都是奇數(shù),k=2,6且p=2,6,那么就應當產(chǎn)生4(=2×2)個常數(shù)。但是,如果去掉這些重疊的2C2個值,即1個重疊值,就一共產(chǎn)生3個常數(shù)。
第三,在其它沒有重疊的情況下,就分別產(chǎn)生8(=4×2)個、4(=4×1)個、2(=2×1)個以及1(=1×1)個常數(shù)。
圖9是示出了有關(guān)IDCT變換所需的一個DCT矩陣的元素的位置的乘法次數(shù)的框圖。
如圖8所示,如果去掉重疊值來產(chǎn)生常數(shù),則根據(jù)該DCT矩陣的一個元素的值的位置就需要圖9中所示的相同數(shù)量的常數(shù)。如上所述,因為該常數(shù)是通過對該DCT矩陣的一個元素的值進行標準化而獲得的一個DCT值,所以如果將該常數(shù)與該DCT矩陣的每個元素的值相乘,則可以獲得該DCT矩陣的元素的IDCT值。由此,圖9中示出了計算該DCT矩陣的每個元素的該IDCT值所需的乘法次數(shù)。
圖10是圖6中的參考值計算存儲單元的結(jié)構(gòu)的詳細框圖。
圖6中的該參考值計算存儲單元621包括一個第一參考值計算存儲單元101、一個第二參考值列計算存儲單元102、一個第三參考值行計算存儲單元103、一個第四參考值矩陣計算存儲單元104、一個第五參考值矩陣計算存儲單元105、一個第六參考值矩陣計算存儲單元106以及一個第七參考值矩陣計算存儲單元107。
如果一個非0元素的坐標值是第一行和第一列,也就是i=0、j=0,則該第一參考值計算存儲單元101就輸入一個參考元素的坐標值(x=0,y=0)按照等式1的該IDCT公式來確定作為該第一行和第一列的元素,如此一來,計算并存儲了該第一參考值。
如果一個非0元素的坐標值是任意一行和第一列,去掉該第一行和第一列,也就是(i=1,j=0)、(i=2,j=0)......(i=5,j=0)或(i=7,j=0),則該第二參考值列計算存儲單元1 02就輸入?yún)⒖荚氐淖鴺酥担簿褪?x=0,y=0)......(x=6,y=0)和(x=7,y=0),按照等式1的該IDCT公式來確定作為該任意一行和第一列的元素,如此一來,計算并存儲了該第二參考值列。
如果一個非0元素的坐標值是第一行和任意一列,去掉該第一行和第一列,也就是(i=0,j=1)、(i=0,j=2)......(i=0,j=6)或(i=0,j=7),則該第三參考值行計算存儲單元103就輸入?yún)⒖荚氐淖鴺酥?,也就?x=0,y=0)、(x=0,y=1)......(x=6,y=0)和(x=7,y=0),按照等式1的該IDCT公式來確定作為該第一行和任意一列的元素,如此一來,計算并存儲了該第三參考值行。
如果一個非0元素的坐標值是具有A-型對稱性的元素的坐標值中的一個,也就是(i=2,j=2)等,則該第四參考值矩陣計算存儲單元104就在等式1的IDCT公式中輸入被確定為第一象限元素的輸入?yún)⒖荚氐淖鴺酥担簿褪?x=0,y=0)、(x=0,y=1)、(x=0,y=2)、(x=0,y=3)、(x=1,y=0)、(x=1,y=1)、(x=1,y=2)、(x=1,y=3)、(x=2,y=0)、(x=2,y=1)、(x=2,y=2)、(x=2,y=3)、(x=3,y=0)、(x=3,y=1)、(x=3,y=2)、(x=3,y=3),如此一來,計算并存儲了該第四參考值矩陣。
如果一個非0元素的坐標值是具有B-型對稱性的元素的坐標值中的一個,也就是(i=2,j=1)等,則該第五參考值矩陣計算存儲單元105就在等式1的IDCT公式中輸入被確定為第一象限元素的參考元素的坐標值,也就是(x=0,y=0)、(x=0,y=1)、(x=0,y=2)、(x=0,y=3)、(x=1,y=0)、(x=1,y=1)、(x=1,y=2)、(x=1,y=3)、(x=2,y=0)、(x=2,y=1)、(x=2,y=2)、(x=2,y=3)、(x=3,y=0)、(x=3,y=1)、(x=3,y=2)、(x=3,y=3),如此一來,計算并存儲了該第五參考值矩陣。
如果一個非0元素的坐標值是具有C-型對稱性的元素的坐標值中的一個,也就是(i=1,j=2)等,則該第六參考值矩陣計算存儲單元106就在等式1的IDCT公式中輸入被確定為第一象限元素的參考元素的坐標值,也就是(x=0,y=0)、(x=0,y=1)、(x=0,y=2)、(x=0,y=3)、(x=1,y=0)、(x=1,y=1)、(x=1,y=2)、(x=1,y=3)、(x=2,y=0)、(x=2,y=1)、(x=2,y=2)、(x=2,y=3)、(x=3,y=0)、(x=3,y=1)、(x=3,y=2)、(x=3,y=3),如此一來,計算并存儲了該第六參考值矩陣。
如果一個非0元素的坐標值是具有D一型對稱性的元素的坐標值中的一個,也就是(i=1,j=1)等,則該第七參考值矩陣計算存儲單元105就在等式1的IDCT公式中輸入被確定為第一象限元素的參考元素的坐標值,也就是(x=0,y=0)、(x=0,y=1)、(x=0,y=2)、(x=0,y=3)、(x=1,y=0)、(x=1,y=1)、(x=1,y=2)、(x=1,y=3)、(x=2,y=0)、(x=2,y=1)、(x=2,y=2)、(x=2,y=3)、(x=3,y=0)、(x=3,y=1)、(x=3,y=2)、(x=3,y=3),如此一來,計算并存儲了該第七參考值矩陣。
圖11是示出了通過對一個DCT矩陣進行IDCT變換所獲得的一個還原矩陣的對稱性的框圖。
由于包含在等式1的該DCT公式中的余弦的周期性,所以該IDCT公式具有對稱性。由此,如果對該DCT矩陣進行IDCT變換,則作為該還原矩陣的局部值的矩陣就具有所示出的(如上所述,通過該疊加原理,如果獲得所有的作為該還原矩陣的局部值的矩陣并計算其和,那么該結(jié)果就是該整個還原矩陣)對稱性值。假設作為該還原矩陣的局部值的所有矩陣都被分為4個象限,并且左上部分、右上部分、左下部分以及右下部分就分別是指第一象限、第二象限、第三象限以及第四象限。如果對應該第一象限的一個小的4×4矩陣是R,如圖11所示,那么第二象限與R關(guān)于該垂直線對稱,第四象限與R關(guān)于該水平線對稱,以及該第三象限與R關(guān)于中心對稱。
還有,至于該還原矩陣的元素的位置,上述象限的正負變換示出了不同的模式,這些模式可以分為4種,也就是A型、B型、C型和D型。如圖11所示,所有象限在A型中都具有正號,該第二和第三象限在B型中都具有正號而該第一和第四象限在B型中都具有負號,第一和第二象限在C型中都具有正號而第三和第四象限在C型中都具有負號,并且第一和第四象限都具有正號而第二和第三象限都具有負號。
圖12是示出了有關(guān)一個DCT矩陣的元素的位置的對稱性的類型的表。
圖12是示出了有關(guān)一個8×8DCT矩陣的元素的位置的對稱性的不同類型,也就是A、B、C和D型的表。在第一行和第一列上的元素具有一個DC值。因為在第一列中的元素的值,去掉在第一行和第一列上的元素,可以看作每一行中的該DC值,所以通過在水平方向上對這些值進行IDCT變換所獲得的結(jié)果值都是相同的。也就是說,對8列進行DCT變換所獲得的結(jié)果值都是相同的。因為在第一行中的元素的值,去掉在第一行和第一列上的元素,可以看作每一列中的該DC值,所以通過在垂直方向上對這些值進行IDCT變換所獲得的結(jié)果值都是相同的。也就是說,對8行進行DCT變換所獲得的結(jié)果值都是相同的。其余元素都是A型至D型中的任何一種。
圖13是圖6中的該參考值迭代加法單元622的結(jié)構(gòu)的詳細框圖。
圖6中的該參考值迭代加法單元622包括一個第一參考值初始化單元131、一個第二參考值列加法單元132、一個第三參考值行加法單元133、一個第四參考值矩陣加法單元134、一個第五參考值矩陣加法單元135、一個第六參考值矩陣加法單元136以及一個第七參考值矩陣加法單元137。
該第一參考值初始化單元131將一個還原矩陣的每個元素的值初始化為該第一參考值計算存儲單元101中所存儲的該第一參考值。該第二參考值列加法單元132將該第二參考值列計算存儲單元102中所存儲的該第二參考值列與該還原矩陣的每一列的元素相加。該第三參考值行加法單元133將該第三參考值行計算存儲單元103中所存儲的該第三參考值行與該還原矩陣的每一行的元素相加。按照A型的對稱性,該第四參考值矩陣加法單元134將該第四參考值矩陣計算存儲單元104中所存儲的該第四參考值矩陣與沒有改變的該還原矩陣的第一象限的元素進行相加;與該參考值矩陣在水平方向進行了反轉(zhuǎn)之后的該第二象限的元素進行相加;與該參考值矩陣在垂直方向進行了反轉(zhuǎn)之后的該第三象限的元素進行相加;以及與該參考值矩陣以180度進行了旋轉(zhuǎn)之后的該第四象限的元素進行相加。按照B型的對稱性,該第五參考值矩陣加法單元135將該第五參考值矩陣計算存儲單元105中所存儲的該第五參考值矩陣與沒有改變的該還原矩陣的第一象限的元素進行相加;與該參考值矩陣在水平方向進行了反轉(zhuǎn)并進行符號相反之后的該第二象限的元素進行相加;與該參考值矩陣在垂直方向進行了反轉(zhuǎn)之后的該第三象限的元素進行相加;以及與該參考值矩陣以180度進行了旋轉(zhuǎn)并進行符號相反之后的該第四象限的元素進行相加。按照C型的對稱性,該第六參考值矩陣加法單元136將該第六參考值矩陣計算存儲單元106中所存儲的該第六參考值矩陣與沒有改變的該還原矩陣的第一象限的元素進行相加;與該參考值矩陣在水平方向進行了反轉(zhuǎn)之后的該第二象限的元素進行相加;與該參考值矩陣在垂直方向進行了反轉(zhuǎn)并進行符號相反之后的該第三象限的元素進行相加;以及與該參考值矩陣以180度進行了旋轉(zhuǎn)并進行符號相反之后的該第四象限的元素進行相加。按照D型的對稱性,該第七參考值矩陣加法單元137將該第七參考值矩陣計算存儲單元107中所存儲的該第七參考值矩陣與沒有改變的該還原矩陣的第一象限的元素進行相加;與該參考值矩陣在水平方向進行了反轉(zhuǎn)并進行符號相反之后的該第二象限的元素進行相加;與該參考值矩陣在垂直方向進行了反轉(zhuǎn)并進行符號相反之后的該第三象限的元素進行相加;以及與該參考值矩陣以180度進行了反轉(zhuǎn)之后的該第四象限的元素進行相加。
如圖12所示,在對該DCT矩陣進行IDCT變換所獲得的該還原矩陣的元素中,去掉該還原矩陣的該第一行或第一列,包含在偶數(shù)行中的元素的對稱性在D型對稱性和C型對稱性之間進行交替(也就是D,C,D,C,...),而,包含在奇數(shù)行中的元素的對稱性在B型對稱性和A型對稱性之間進行交替(也就是B,A,B,A,...)。
圖14是用于說明圖6中的該參考值迭代加法單元所使用的多種相加方法的框圖。
如上所述,該參考值迭代加法單元622相對于該輸入的DCT矩陣的一個元素的位置執(zhí)行不同的加法。如圖12所示,按照該DCT矩陣的該元素的位置,該矩陣被劃分為DC、第一列、第一行、A、B、C以及D,然后該矩陣由以下3種相加方法來處理。
首先,如果該DCT矩陣的一個元素的位置位于該第一列或第一行中,則只有作為一個參考元素的一個局部值的一個第一參考值,也就是DC值,可以從該DCT公式中得到,并且存儲在圖10的第一參考值計算存儲單元101和圖14的第一參考值計算存儲單元141中。該還原矩陣的一個參考元素的坐標是(x=0,y=0),并且該第一參考值計算存儲單元101、141的存儲容量是1(也就是一個相對大小)。圖13中的該第一參考值初始化單元131將該還原矩陣的每個元素的值都初始化為存儲在該第一參考值計算存儲單元101、141中的該第一參考值。也就是,該還原矩陣的所有元素都記錄為該DC值。因為其余元素,也就是63(=64-1)個元素的坐標值,不必代入該DCT公式并計算,所以極大地減少了運算量。
其次,如果該DCT矩陣的一個元素的位置是在該第一行或第一列中(此處,去掉了上述具有該DC值的位于該第一行和第一列上的元素),那么就可以從該DCT公式中獲得8個值,并且將它們都存儲在圖10的第二參考值列計算存儲單元102和圖14的第二參考值列計算存儲單元142中,或者存儲在圖10的第三參考值行計算存儲單元103和圖14的第三參考值行計算存儲單元143中。該第二參考值列計算存儲單元102、142或該第三參考值行計算存儲單元103、143的存儲容量為8。在此,如果該DCT矩陣的一個元素位于該第一列中,則來自DCT的結(jié)果值就具有一個在水平方向上的相同的值,如上所述。也就是說,從該第一列至第八列的8個值都是相同的。因此,如該圖中所示,該還原矩陣的參考元素的坐標值為(x=0,y=0)、(x=1,y=1)、......、(x=0,y=7),并且該坐標數(shù)為8。同樣,如果該DCT矩陣的一個元素置于該第一行中,則來自DCT的結(jié)果值就具有一個在垂直方向上的相同的值,如上所述。也就是說,從該第一列至第八列的8個值都是相同的。因此,如該圖中所示,該還原矩陣的參考元素的坐標值為(x=0,y=0)、(x=0,y=1)、......、(x=0,y=7),并且該坐標數(shù)為8。圖13中的該第二參考值列加法單元132將存儲在該第二參考值列計算存儲單元102、104中的該第二參考值列與該還原矩陣的每列的元素相加。例如,如果該DCT矩陣中的一個非0元素的坐標為(i=1,j=0),則該還原矩陣的參考元素的坐標就是(x=0,y=0)、(x=0,y=1)、......、(x=0,y=7),因此,從DCT中所得到的結(jié)果值的數(shù)量為8,并將這些值存儲起來作為該第二參考值列計算存儲單元102、104中的一列,如該圖中所示。如果存儲起來作為一列的這些值從第一列至第八列迭代相加8次,則該水平方向上的其它元素的坐標值,也就是56(=64-8)個坐標值不需要進行代入和計算。因此,極大地減少了運算量。同樣地,圖13中的該第三參考值加法單元133將存儲在該第三參考值行計算存儲單元103、143中的該第三參考值行與該還原矩陣的每行的元素相加。例如,如果該DCT矩陣中的一個非0元素的坐標為(i=0,j=1),則該還原矩陣的參考元素的坐標就是(x=0,y=0)、(x=1,y=0)、......、(x=7,y=0),因此,從DCT中所得到的結(jié)果值的數(shù)量為8,并將這些值存儲起來作為該第二參考值列計算存儲單元102、104中的一行,如該圖中所示。如果存儲起來作為一列的這些值從第一行至第八行迭代相加8次,則該垂直方向上的其它元素的坐標值,也就是56(=64-8)個坐標值不需要進行代入和計算。因此,極大地減少了運算量。
第三,如果該DCT矩陣的一個元素不在該第一列或第一行上,則從該DCT公式中就獲得了16個值,并且將這16個值存儲在該第四參考值矩陣計算存儲單元104(圖10)與144(圖14)、該第五參考值矩陣計算存儲單元105(圖10)與145(圖14)、該第六參考值矩陣計算存儲單元106(圖10)與146(圖14)或該第七參考值矩陣計算存儲單元107(圖10)與147(圖14)中。該第四參考值矩陣計算存儲單元104與144、該第五參考值矩陣計算存儲單元105與145、該第六參考值矩陣計算存儲單元106與146或該第七參考值矩陣計算存儲單元107與147的存儲容量都是16。然而,與以一種相同的方式執(zhí)行加法的該第一和第二種情況不同的是,要通過利用如圖14所示的這四種模式的對稱性來執(zhí)行加法。也就是說,按照該各個模式,只有16個值,這只是整個結(jié)果的1/4,存儲在該第四參考值矩陣計算存儲單元104與144、該第五參考值矩陣計算存儲單元105與145、該第六參考值矩陣計算存儲單元106與146或該第七參考值矩陣計算存儲單元107與147中,這些計算存儲單元是不同的臨時存儲區(qū)。因為以這種方式存儲的參考值是根據(jù)其對稱性來相加的,所以當所有元素都一個個進行了IDCT變換時運算量也就減少到了1/4。
如果該DCT矩陣中的一個元素的位置包含在圖12中的A中,則按照該A型的對稱性,圖13中的該第四參考值矩陣加法單元134就將該第四參考值矩陣,也就是存儲在該第四參考值矩陣計算存儲單元104、144中的16個值,與沒有改變的該還原矩陣的該第一象限的元素進行相加;與該參考值矩陣在水平方向進行了反轉(zhuǎn)之后的該第二象限的元素進行相加;與該參考值矩陣在垂直方向進行了反轉(zhuǎn)之后的該第三象限的元素進行相加;以及與該參考值矩陣以180度進行了旋轉(zhuǎn)之后的該第四象限的元素進行相加。例如,如果該DCT矩陣中的一個非0元素的坐標為(i=2,j=2),則該還原矩陣的該參考元素的坐標為(x=0,y=0)、(x=0,y=1)、(x=0,y=2)、(x=0,y=3)、(x=1,y=0)、(x=1,y=1)、(x=1,y=2)、(x=1,y=3)、(x=2,y=0)、(x=2,y=1)、(x=2,y=2)、(x=2,y=3)、(x=3,y=0)、(x=3,y=1)、(x=3,y=2)、(x=3,y=3)。由此,從DCT得到的結(jié)果值的數(shù)量為16并且將這些值作為一個4×4矩陣存儲在該第四參考值矩陣計算存儲單元104、144中,如該圖中所示。如果將該矩陣與沒有改變的該第一象限的元素、與該參考值矩陣在水平方向進行了反轉(zhuǎn)之后的該第二象限的元素、與該參考值矩陣在垂直方向進行了反轉(zhuǎn)之后的該第三象限的元素以及與該參考值矩陣以180度進行了旋轉(zhuǎn)之后的該第四象限的元素進行相加,那么其它象限中的其它元素的坐標值,也就是48(=64-16)個坐標值,就不必進行代入和計算。因此,極大地減少了運算量。
如果該DCT矩陣中的一個元素的位置包含在圖12中的B中,則按照該B型的對稱性,圖13中的該第五參考值矩陣加法單元135就將該第五參考值矩陣,也就是存儲在該第五參考值矩陣計算存儲單元105中的16個值,與沒有改變的該還原矩陣的該第一象限的元素進行相加;與該參考值矩陣在水平方向進行了反轉(zhuǎn)并進行符號相反之后的該第二象限的元素進行相加;與該參考值矩陣在垂直方向進行了反轉(zhuǎn)之后的該第三象限的元素進行相加;以及與該參考值矩陣以180度進行了旋轉(zhuǎn)并進行符號相反之后的該第四象限的元素進行相加。例如,如果該DCT矩陣中的一個非0元素的坐標為(i=2,j=1),則該還原矩陣的該參考元素的坐標為(x=0,y=0)、(x=0,y=1)、(x=0,y=2)、(x=0,y=3)、(x=1,y=0)、(x=1,y=1)、(x=1,y=2)、(x=1,y=3)、(x=2,y=0)、(x=2,y=1)、(x=2,y=2)、(x=2,y=3)、(x=3,y=0)、(x=3,y=1)、(x=3,y=2)、(x=3,y=3)。由此,從DCT得到的結(jié)果值的數(shù)量為16并且將這些值作為一個4×4矩陣存儲在該第五參考值矩陣計算存儲單元105、145中,如該圖中所示。如果將該矩陣與沒有改變的該第一象限的元素、與該參考值矩陣在水平方向進行了反轉(zhuǎn)并進行符號相反之后的該第二象限的元素、與該參考值矩陣在垂直方向進行了反轉(zhuǎn)之后的該第三象限的元素以及與該參考值矩陣以180度進行了旋轉(zhuǎn)并進行符號相反之后的該第四象限的元素進行相加,那么其它象限中的其它元素的坐標值,也就是48(=64-16)個坐標值,就不必進行代入和計算。因此,極大地減少了運算量。
如果該DCT矩陣中的一個元素的位置包含在圖12中的C中,則按照該C型的對稱性,圖13中的該第六參考值矩陣加法單元136就將該第六參考值矩陣,也就是存儲在該第六參考值矩陣計算存儲單元106、146中的16個值,與沒有改變的該還原矩陣的該第一象限的元素進行相加;與該參考值矩陣在水平方向進行了反轉(zhuǎn)之后的該第二象限的元素進行相加;與該參考值矩陣在垂直方向進行了反轉(zhuǎn)并進行符號相反之后的該第三象限的元素進行相加;以及與該參考值矩陣以180度進行了旋轉(zhuǎn)并進行符號相反之后的該第四象限的元素進行相加。例如,如果該DCT矩陣中的一個非0元素的坐標為(i=1,j=2),則該還原矩陣的該參考元素的坐標為(x=0,y=0)、(x=0,y=1)、(x=0,y=2)、(x=0,y=3)、(x=1,y=0)、(x=1,y=1)、(x=1,y=2)、(x=1,y=3)、(x=2,y=0)、(x=2,y=1)、(x=2,y=2)、(x=2,y=3)、(x=3,y=0)、(x=3,y=1)、(x=3,y=2)、(x=3,y=3)。由此,從DCT得到的結(jié)果值的數(shù)量為16并且將這些值作為一個4×4矩陣存儲在該第六參考值矩陣計算存儲單元106、146中,如該圖中所示。如果將該矩陣與沒有改變的該第一象限的元素、與該參考值矩陣在水平方向進行了反轉(zhuǎn)之后的該第二象限的元素、與該參考值矩陣在垂直方向進行了反轉(zhuǎn)并進行符號相反之后的該第三象限的元素以及與該參考值矩陣以180度進行了旋轉(zhuǎn)并進行符號相反之后的該第四象限的元素進行相加,那么其它象限中的其它元素的坐標值,也就是48(=64-16)個坐標值,就不必進行代入和計算。因此,極大地減少了運算量。
如果該DCT矩陣中的一個元素的位置包含在圖12中的D中,按照該D型的對稱性,則圖13中的該第七參考值矩陣加法單元137就將該第七參考值矩陣,也就是存儲在該第七參考值矩陣計算存儲單元107、147中的16個值,與沒有改變的該還原矩陣的該第一象限的元素進行相加;與該參考值矩陣在水平方向進行了反轉(zhuǎn)并進行符號相反之后的該第二象限的元素進行相加;與該參考值矩陣在垂直方向進行了反轉(zhuǎn)并進行符號相反之后的該第三象限的元素進行相加;以及與該參考值矩陣以180度進行了旋轉(zhuǎn)之后的該第四象限的元素進行相加。例如,如果該DCT矩陣中的一個非0元素的坐標為(i=1,j=1),則該還原矩陣的該參考元素的坐標為(x=0,y=0)、(x=0,y=1)、(x=0,y=2)、(x=0,y=3)、(x=1,y=0)、(x=1,y=1)、(x=1,y=2)、(x=1,y=3)、(x=2,y=0)、(x=2,y=1)、(x=2,y=2)、(x=2,y=3)、(x=3,y=0)、(x=3,y=1)、(x=3,y=2)、(x=3,y=3)。由此,來自DCT的結(jié)果值的數(shù)量為16并且這些值存儲來作為該第七參考值矩陣計算存儲單元107、147中的一個4×4矩陣,如該圖中所示。如果將該矩陣與沒有改變的該第一象限的元素、與該參考值矩陣在水平方向進行了反轉(zhuǎn)之后的該第二象限的元素、與該參考值矩陣在垂直方向進行了反轉(zhuǎn)之后的該第三象限的元素以及與該參考值矩陣以180度進行了旋轉(zhuǎn)之后的該第四象限的元素進行相加,那么其它象限中的其它元素的坐標值,也就是48(=64-16)個坐標值,就不必進行代入和計算。因此,極大地減少了運算量。
此處,如圖12所示,在作為將該DCT矩陣進行IDCT變換的結(jié)果的并且去掉了該還原矩陣的該第一行或第一列的該還原矩陣的元素中,包含在該偶數(shù)行的元素的對稱性在D型對稱性和C型對稱性之間交替(也就是D,C,D,C,...),而且,飽含在該奇數(shù)行的元素的對稱性在B型對稱性和A型對稱性之間交替(也就是B,A,B,A,...)。
圖15是用于說明對各個元素進行DCT變換的整個處理的框圖。
七個參考值計算存儲單元151至157代入非0元素的坐標值和參考元素的該IDCT公式中的坐標值,其中在參考元素的該IDCT公式中的坐標值是基于該還原矩陣的元素中的該IDCT公式的對稱性來確定的,在IDCT中,代入由該元素搜索單元所發(fā)現(xiàn)的非0元素的值,如此一來,就為該非0元素得到了該還原矩陣的各個元素的參考值并將所獲得的值進行存儲。
按照相對于該DCT矩陣的一個元素的坐標的對稱性的類型,存儲在這七個參考值計算存儲單元151至157中的參考值都與該還原矩陣的各個元素的值進行迭代相加,以便計算該還原矩陣的每個元素的值。
圖16是示出了對有關(guān)量化參數(shù)的乘法次數(shù)的實驗的結(jié)果的圖表。
為了這些實驗,本發(fā)明用C語言來實現(xiàn)并且在一個具有512M字節(jié)存儲器的P III 866的計算機上運行。通過輸入三個典型的視頻測試文件,也就是Akiyo、Foreman和Mobile(Akiyo精度最低,Mobile精度最高,而Foreman精度居中),來測定其性能。在每個測試文件中,4∶2∶0格式的數(shù)據(jù)的每200幀都利用MPEG4單一標準CODEC(MS編碼器V6.0)來進行模擬。在該GOP結(jié)構(gòu)中,I∶P=1∶30,幀頻為30幀/秒。乘法和加法的次數(shù)都作為該比較標準被采用。該比較算法為Z.Wang 2D-DCT算法。在所比較的Z.Wang DCT碼中,量化參數(shù)Qp的大小在該DCT矩陣中被調(diào)整,乘法次數(shù)可通過利用一種旋轉(zhuǎn)技術(shù)來減少,并且通過利用稀疏(rarity)執(zhí)行該變換,以便,當必要時,只對1、2、4坐標進行IDCT變換。
圖16示出了Qp=5,12,20的乘法次數(shù)。與現(xiàn)有技術(shù)的快速算法相比,按照該輸入,也就是在該DCT矩陣中具有的有效值的元素的稀疏,本發(fā)明只執(zhí)行必要的計算,并且如此一來,本發(fā)明示出了具有多種復雜度和平均的輸入圖像的圖像質(zhì)量的極佳的性能。尤其是,當Qp很大時,也就是當該傳輸率很低時,本發(fā)明示出了比現(xiàn)有技術(shù)的快速算法更高的性能。此外,為了以高的復雜度來移動圖像,也就是對于Mobile的高質(zhì)量輸入,本發(fā)明的乘法次數(shù)能減少35%。
圖17是示出了對有關(guān)量化參數(shù)的加法次數(shù)的實驗的結(jié)果的圖表。
類似于平均乘法次數(shù),本發(fā)明還示出了具有多種復雜度和平均的輸入圖像的圖形質(zhì)量的極佳的性能。尤其是,當Qp很大時,也就是當該傳輸率很低時,本發(fā)明示出了比現(xiàn)有技術(shù)的快速算法更高的性能。此外,為了以高的復雜度來移動圖像,也就是對于Mobile的高質(zhì)量輸入,本發(fā)明的加法次數(shù)能減少5%。
圖18是按照本發(fā)明的由一個快速DCT方法來執(zhí)行的步驟的流程圖。
在該DCT矩陣的所有元素中,在步驟181中以一個預定的順序來搜索非0元素。該順序是遵循一種從一個位于該DCT矩陣的第一行和第一列的元素開始的折線線路。接著,在步驟182中,找出非0元素并且通過利用該IDCT公式的對稱性來對這些非0元素進行2D-IDCT變換,并且如此一來,就計算出了該還原矩陣的每個元素的還原值。
圖19是對圖18中的每個元素進行2D-IDCT變換的步驟181的詳細流程圖。在該IDCT公式中,其中非0元素的值被找出并且被代入,代入非0元素的坐標值,并且代入按照該還原矩陣的元素中的IDCT公式的對稱性所確定的參考元素的坐標值,以便在步驟191中為非0元素獲得該還原矩陣的各個元素的參考值并將其存儲。接著,按照有關(guān)該參考元素的坐標的對稱性類型來將所存儲的參考值與該還原矩陣的各個元素的值進行迭代相加,并且如此一來,就在步驟192中獲得了該還原矩陣的每個元素的還原值。
圖20是用于計算和存儲圖19中的參考值的步驟191的詳細流程圖。
如果一個非0元素的坐標值為第一行和第一列,則輸入確定為該IDCT公式中的該第一行和第一列的元素的參考元素的坐標以便在步驟201中計算并存儲該第一參考值。接下來,如果一個非0元素的坐標值為任意一行和第一列,去掉第一行和第一列,則輸入確定為該IDCT公式中的該任意一行和第一列的元素的參考元素的坐標以便在步驟202中計算并存儲該第二參考值列。接下來,如果一個非0元素的坐標值為第一行和任意一列,去掉第一行和第一列,則輸入確定為該IDCT公式中的該第一行和任意一列的元素的參考元素的坐標以便在步驟203中計算并存儲該第三參考值行。接下來,如果一個非0元素的坐標值為具有A型對稱性的元素的坐標,則輸入確定為該IDCT公式中的該第一象限的元素的參考元素的坐標值以便在步驟204中計算并存儲該第四參考值矩陣。接下來,如果一個非0元素的坐標值為具有B型對稱性的元素的坐標,則輸入確定為該IDCT公式中的該第一象限的元素的參考元素的坐標值以便在步驟205中計算并存儲該第五參考值矩陣。接下來,如果一個非0元素的坐標值為具有C型對稱性的元素的坐標,則輸入確定為該IDCT公式中的該第一象限的元素的參考元素的坐標值以便在步驟206中計算并存儲該第六參考值矩陣。接下來,如果一個非0元素的坐標值為具有D型對稱性的元素的坐標,則輸入確定為該IDCT公式中的該第一象限的元素的參考元素的坐標值以便在步驟207中計算并存儲該第七參考值矩陣。
圖21是按照對稱類型來將參考值進行迭代相加的步驟191的詳細流程圖。
在步驟211中,該還原矩陣的每個元素的值都用所存儲的第一參考值來進行初始化。接著,在步驟212中,將所存儲的第二參考值列與該還原矩陣的每一列的元素相加。接著,在步驟213中,將所存儲的第三參考值行與該還原矩陣的每一行的元素相加。接著,在步驟214中,按照該A型對稱性,將所存儲的第四參考值矩陣與沒有改變的該還原矩陣的第一象限的元素相加、與該參考值矩陣在水平方向進行了反轉(zhuǎn)之后的該第二象限的元素進行相加、與該參考值矩陣在垂直方向進行了反轉(zhuǎn)之后的該第三象限的元素進行相加、以及與該參考值矩陣以180度進行了旋轉(zhuǎn)之后的該第四象限的元素進行相加。接著,在步驟215中,按照該B型對稱性,將所存儲的第五參考值矩陣與沒有改變的該還原矩陣的該第一象限的元素進行相加、與該參考值矩陣在水平方向進行了反轉(zhuǎn)并進行符號相反之后的該第二象限的元素進行相加、與該參考值矩陣在垂直方向進行了反轉(zhuǎn)之后的該第三象限的元素進行相加、以及與該參考值矩陣以180度進行了旋轉(zhuǎn)并進行符號相反之后的該第四象限的元素進行相加。接著,在步驟216中,按照該C型對稱性,將所存儲的第六參考值矩陣與沒有改變的該還原矩陣的該第一象限的元素進行相加、與該參考值矩陣在水平方向進行了反轉(zhuǎn)之后的該第二象限的元素進行相加、與該參考值矩陣在垂直方向進行了反轉(zhuǎn)并進行符號相反之后的該第三象限的元素進行相加、以及與該參考值矩陣以180度進行了旋轉(zhuǎn)并進行符號相反之后的該第四象限的元素進行相加。接著,在步驟217中,按照該D型對稱性,將所存儲的第七參考值矩陣與沒有改變的該還原矩陣的該第一象限的元素進行相加、與該參考值矩陣在水平方向進行了反轉(zhuǎn)并進行符號相反之后的該第二象限的元素進行相加、與該參考值矩陣在垂直方向進行了反轉(zhuǎn)并進行符號相反之后的該第三象限的元素進行相加、以及與該參考值矩陣以180度進行了旋轉(zhuǎn)之后的該第四象限的元素進行相加。
如圖12所示,在作為對該DCT矩陣進行IDCT變換的結(jié)果的該還原矩陣的元素中,去掉該還原矩陣的第一行或第一列,包含在該偶數(shù)行的元素的對稱性在D型對稱性和C型對稱性之間交替(也就是D,C,D,C,...),包含在該奇數(shù)行的元素的對稱性在B型對稱性和A型對稱性之間交替(也就是B,A,B,A,...)。
本發(fā)明可以具體化為一個位于一個計算機可讀記錄介質(zhì)上的一個計算機可讀的碼。該計算機可讀記錄介質(zhì)包括所有類型的其上可以存儲計算機可讀數(shù)據(jù)的記錄裝置。
該計算機可讀記錄介質(zhì)包括例如磁存儲器介質(zhì)(例如,ROM、軟盤、硬盤等)、光可讀介質(zhì)(例如,CD-ROM、DVD等)以及載波(例如,因特網(wǎng)上的傳輸)之類的存儲介質(zhì)。
以上已經(jīng)說明并示出了最佳實施例。然而,本發(fā)明并不限于上述示例性實施例,顯然,本領(lǐng)域技術(shù)人員可以在后附的權(quán)利要求中所限定的本發(fā)明的精神和范圍內(nèi)進行改變和修改。因此,本發(fā)明的范圍并不是由上述說明來確定的,而是由后附權(quán)利要求來限定的。
按照本發(fā)明,對于構(gòu)成一個DCT矩陣中的元素的大部分的0的不必要的計算,可以在執(zhí)行該IDCT變換中減小到最小值。因為一個DCT矩陣中具有有效值的元素的數(shù)量少于10-15的概率為大于或等于90%,所以本發(fā)明的運算量與現(xiàn)有技術(shù)中的快速DCT算法的運算量相比極大地減少了。此外,按照本發(fā)明,即使當一個DCT矩陣中具有有效值的元素的數(shù)量很大時,通過利用DCT公式的對稱性來將運算量極大地減少,也使該方法示出了統(tǒng)計上比傳統(tǒng)的快速DCT算法更好的性能。而且,通過由該IDCT模塊極大地減少該運算量,該運算量相當于一個視頻解碼器的整個運算量的25-30%,可以設計一種更穩(wěn)定的改進的視頻解碼器,并且功耗的減少使得設計出用于移動用途的一種更小的視頻解碼器成為可能。
此外,當涉及一種塊結(jié)束(EOB)的執(zhí)行計算的其它快速DCT算法應當使用依賴于掃描方法的不同方法時,不考慮掃描方法也就是不考慮折線掃描、水平方向先掃描還是垂直方向先掃描的掃描方法就可以使用本發(fā)明。還有,有效數(shù)字在該計算處理中最大限度地進行了使用。也就是說,因為舍入成整數(shù)的數(shù)量只有一個,所以本發(fā)明的峰值信號-噪音比(PSNR)比現(xiàn)有技術(shù)的IDCT方法的信號-噪音比極大地優(yōu)化了。
權(quán)利要求
1.一種快速反向離散余弦變換方法,包括(a)以一種預定順序在一個離散余弦變換(DCT)矩陣中搜索與非0元素相關(guān)的所有元素;以及(b)通過利用一個IDCT公式的一種對稱性來對該DCT矩陣中的該非0元素執(zhí)行2維-反向DCT(2D-IDCT)變換從而計算一個還原矩陣的每個元素的一個還原值。
2.根據(jù)權(quán)利要求1的方法,其中,該預定順序包括一種遵循從位于該DCT矩陣的一個第一行和一個第一列上的一個元素開始的折線線路的順序。
3.根據(jù)權(quán)利要求1的方法,其中,該步驟(b)包括(b1)通過將非0元素的坐標值和按照該還原矩陣的元素中的該IDCT公式的對稱性所確定的該IDCT公式中的參考元素的坐標值,來計算并存儲該還原矩陣的每個非0元素的參考值,其中,在該IDCT公式中輸入非0元素的該坐標值;以及(b2)按照有關(guān)該參考元素的坐標值的對稱性的類型,通過將所存儲的參考值與該還原矩陣的各個元素的值進行迭代相加來獲得該還原矩陣的每個元素的還原值。
4.根據(jù)權(quán)利要求3的方法,其中,步驟(b1)包括(b11)如果一個第一非0元素的坐標值為該第一行和該第一列,則通過在所述IDCT公式中輸入將被確定是所述第一行和所述第一列的元素的第一參考元素的坐標值計算和存儲第一參考值;(b12)如果該第一非0元素的坐標值為任意一行和該第一列,去掉該第一行和該第一列,則通過在所述IDCT公式中輸入將被確定是所述任意行和所述第一列的參考元素的坐標值計算和存儲第二參考值列;以及(b13)如果該第一非0元素的坐標值為該第一行和任意一列,去掉該第一行和該第一列,則通過在所述IDCT公式中輸入將被確定是所述第一行和所述任意列的所述元素的參考元素的坐標值計算和存儲第三參考值行。
5.根據(jù)權(quán)利要求4的方法,其中,步驟(b1)還包括(b14)如果該第一非0元素的坐標值為具有A型對稱性的元素的坐標值,則通過在所述IDCT公式中輸入將被確定是第一象限的所述元素的參考元素的坐標值計算和存儲第四參考值矩陣;(b15)如果該第一非0元素的坐標值為具有B型對稱性的元素的坐標值,則通過在所述IDCT公式中輸入將被確定是所述第一象限的所述元素的參考元素的坐標值來計算并存儲一個第五參考值矩陣;(b16)如果該第一非0元素的坐標值為具有C型對稱性的元素的坐標值,則通過在所述IDCT公式中輸入將被確定是所述第一象限的元素的參考元素的坐標值來計算并存儲一個第六參考值矩陣;以及(b17)如果該第一非0元素的坐標值為具有D型對稱性的元素的坐標值,則通過在所述IDCT公式中輸入將被確定是所述第一象限的元素的參考元素的坐標值來計算并存儲一個第七參考值矩陣。
6.根據(jù)權(quán)利要求5的方法,其中,步驟(b2)包括(b21)將該還原矩陣的每個元素的值初始化為所存儲的該第一參考值;(b22)將所存儲的第二參考值列與該還原矩陣的每一列的元素相加;以及(b23)將所存儲的第三參考值行與該還原矩陣的每一行的元素相加。
7.根據(jù)權(quán)利要求6的方法,其中,步驟(b2)還包括(b24)根據(jù)該A型對稱性,將所存儲的第四參考值矩陣與沒有改變的該還原矩陣的第一象限的元素相加、與該參考值矩陣在水平方向進行了反轉(zhuǎn)之后的第二象限的元素進行相加、與該參考值矩陣在垂直方向進行了反轉(zhuǎn)之后的第三象限的元素進行相加、以及與該參考值矩陣以180度進行了旋轉(zhuǎn)之后的第四象限的元素進行相加;(b25)根據(jù)該B型對稱性,將所存儲的第五參考值矩陣與沒有改變的該還原矩陣的該第一象限的元素進行相加、與該參考值矩陣在水平方向進行了反轉(zhuǎn)并進行符號相反之后的該第二象限的元素進行相加、與該參考值矩降在垂直方向進行了反轉(zhuǎn)之后的該第三象限的元素進行相加、以及與該參考值矩陣以180度進行了旋轉(zhuǎn)并進行符號相反之后的該第四象限的元素進行相加;(b26)根據(jù)該C型對稱性,將所存儲的第六參考值矩陣與沒有改變的該還原矩陣的該第一象限的元素進行相加、與該參考值矩陣在水平方向進行了反轉(zhuǎn)之后的該第二象限的元素進行相加、與該參考值矩陣在垂直方向進行了反轉(zhuǎn)并進行符號相反之后的該第三象限的元素進行相加、以及與該參考值矩陣以180度進行了旋轉(zhuǎn)并進行符號反轉(zhuǎn)之后的該第四象限的元素進行相加;以及(b27)根據(jù)該D型對稱性,將所存儲的第七參考值矩陣與沒有改變的該還原矩陣的該第一象限的元素進行相加、與該參考值矩陣在水平方向進行了反轉(zhuǎn)并進行符號相反之后的該第二象限的元素進行相加、與該參考值矩陣在垂直方向進行了反轉(zhuǎn)并進行符號反轉(zhuǎn)之后的該第三象限的元素進行相加、以及與該參考值矩陣以180度進行了旋轉(zhuǎn)之后的該第四象限的元素進行相加。
8.根據(jù)權(quán)利要求7的方法,其中,去掉該還原矩陣的該第一行或該第一列,包含在該偶數(shù)行中的元素都具有不斷重復的輪流更替的該D型對稱性和該C型對稱性,而包含在該奇數(shù)行中的元素都具有不斷重復的輪流更替的該B型對稱性和該A型對稱性。
9.一種快速反向離散余弦變換(IDCT)裝置,包括一個元素搜索單元,用于以一個預定順序在一個離散余弦變換(DCT)矩陣中搜索與非0元素相關(guān)的所有元素;以及一個個體元素2維(2D)-反向DCT(IDCT)單元,通過利用一個IDCT公式的一種對稱性來對從該元素搜索單元得到的該DCT矩陣中的該非0元素執(zhí)行2D-IDCT變換從而計算一個還原矩陣的每個元素的一個還原值。
10.根據(jù)權(quán)利要求9的裝置,其中,該預定順序包括一種遵循從位于該DCT矩陣的一個第一行和一個第一列上的一個元素開始的折線線路的順序。
11.根據(jù)權(quán)利要求9的裝置,其中,該個體元素2D-IDCT單元包括一個參考值計算存儲單元,通過輸入該非0元素的坐標值和按照該還原矩陣的元素中的該IDCT公式的對稱性所確定的該IDCT公式中的參考元素的坐標值,來計算并存儲該還原矩陣的每個非0元素的參考值,其中在該IDCT公式中的非0元素的該坐標值是由該元素搜索單元搜索到的;以及一個參考值迭代加法單元,按照有關(guān)該參考元素的坐標值的一種對稱性類型,通過將存儲在該參考值計算和存儲單元中的參考值與該還原矩陣的各個元素的值進行迭代相加來獲得該還原矩陣的每個元素的還原值。
12.根據(jù)權(quán)利要求11的裝置,其中,該參考值計算存儲單元包括一個第一參考值計算存儲單元,如果一個第一非0元素的坐標值為該第一行和該第一列,則通過將確定作為該IDCT公式中的該第一行和該第一列的一個元素的一個參考元素的坐標值輸入來計算并存儲一個第一參考值;一個第二參考值列計算存儲單元,如果該第一非0元素的坐標值為任意一行和該第一列,則通過將確定作為該IDCT公式中的該任意一行和該第一列的元素的參考元素的坐標值輸入來計算并存儲一個第二參考值列;以及一個第三參考值行計算存儲單元,如果該第一非0元素的坐標值為該第一行和任意一列,則通過將確定作為該IDCT公式中的該第一行和該任意一列的元素的參考元素的坐標值輸入來計算并存儲一個第三參考值行。
13.根據(jù)權(quán)利要求12的裝置,其中,該參考值計算存儲單元還包括一個第四參考值計算存儲單元,如果該第一非0元素的坐標值為具有A型對稱性的元素的坐標值,則通過將確定作為該IDCT公式中的第一象限的元素的參考元素的坐標值輸入來計算并存儲一個第四參考值矩陣;一個第五參考值計算存儲單元,如果該第一非0元素的坐標值為具有B型對稱性的元素的坐標值,則通過將確定作為該IDCT公式中的第一象限的元素的參考元素的坐標值輸入來計算并存儲一個第五參考值矩陣;一個第六參考值計算存儲單元,如果該第一非0元素的坐標值為具有C型對稱性的元素的坐標值,則通過將確定作為該IDCT公式中的第一象限的元素的參考元素的坐標值輸入來計算并存儲一個第六參考值矩陣;以及一個第七參考值計算存儲單元,如果該第一非0元素的坐標值為具有D型對稱性的元素的坐標值,則通過將確定作為該IDCT公式中的第一象限的元素的參考元素的坐標值輸入來計算并存儲一個第七參考值矩陣。
14.根據(jù)權(quán)利要求13的裝置,其中,該參考值迭代加法單元包括一個第一參考值初始化單元,將該還原矩陣的每個元素的值初始化為存儲在該第一參考值計算存儲單元中的該第一參考值;一個第二參考值列加法單元,將存儲在該第二參考值列計算存儲單元中的第二參考值列與該還原矩陣的每一列的元素相加;以及一個第三參考值行加法單元,將存儲在該第三參考值行計算存儲單元中的第三參考值行與該還原矩陣的每一行的元素相加。
15.根據(jù)權(quán)利要求14的裝置,其中,該參考值迭代加法單元還包括一個第四參考值矩陣加法單元,按照該A型對稱性,將存儲在該第四參考值矩陣計算存儲單元中的第四參考值矩陣與沒有改變的該還原矩陣的第一象限的元素相加、與該參考值矩陣在水平方向進行了反轉(zhuǎn)之后的第二象限的元素進行相加、與該參考值矩陣在垂直方向進行了反轉(zhuǎn)之后的第三象限的元素進行相加、以及與該參考值矩陣以180度進行了旋轉(zhuǎn)之后的第四象限的元素進行相加;一個第五參考值矩陣加法單元,按照該B型對稱性,將存儲在該第五參考值矩陣計算存儲單元中的第五參考值矩陣與沒有改變的該還原矩陣的該第一象限的元素進行相加、與該參考值矩陣在水平方向進行了反轉(zhuǎn)并進行符號相反之后的該第二象限的元素進行相加、與該參考值矩陣在垂直方向進行了反轉(zhuǎn)之后的該第三象限的元素進行相加、以及與該參考值矩陣以180度進行了旋轉(zhuǎn)并進行符號相反之后的該第四象限的元素進行相加;一個第六參考值矩陣加法單元,按照該C型對稱性,將存儲在該第六參考值矩陣計算存儲單元中的第六參考值矩陣與沒有改變的該還原矩陣的該第一象限的元素進行相加、與該參考值矩陣在水平方向進行了反轉(zhuǎn)之后的該第二象限的元素進行相加、與該參考值矩陣在垂直方向進行了反轉(zhuǎn)并進行符號相反之后的該第三象限的元素進行相加、以及與該參考值矩陣以180度進行了旋轉(zhuǎn)并進行符號相反的該第四象限的元素進行相加;以及一個第七參考值矩陣加法單元,按照該D型對稱性,將存儲在該第七參考值矩陣計算存儲單元中的第七參考值矩陣與沒有改變的該還原矩陣的該第一象限的元素進行相加、與該參考值矩陣在水平方向進行了反轉(zhuǎn)并進行符號相反之后的該第二象限的元素進行相加、與該參考值矩陣在垂直方向進行了反轉(zhuǎn)并進行符號相反之后的該第三象限的元素進行相加、以及與該參考值矩陣以180度進行了旋轉(zhuǎn)之后的該第四象限的元素進行相加。
16.根據(jù)權(quán)利要求15的裝置,其中,去掉該還原矩陣的該第一行或該第一列,包含在該偶數(shù)行中的元素都具有不斷重復的輪流更替的該D型對稱性和該C型對稱性,而包含在該奇數(shù)行中的元素都具有不斷重復的輪流更替的該B型對稱性和該A型對稱性。
17.一種計算機可讀介質(zhì),具有在其上插入的一個用于一種快速IDCT方法的計算機程序,該快速IDCT方法包括(a)以一種預定順序為了非0的元素而搜索一個DCT矩陣中的所有元素;以及(b)通過利用一個IDCT公式的對稱性來對該DCT矩陣中的該非0元素執(zhí)行2D-IDCT變換從而計算一個還原矩陣的每個元素的一個還原值。
全文摘要
提供了一種用于快速反向離散余弦變換(IDCT)的方法和裝置。該快速IDCT方法包括(a)以一種預定順序在一個離散余弦變換(DCT)矩陣中搜索與非0的元素相關(guān)的所有元素;以及(b)通過利用一個IDCT公式的對稱性來對該DCT矩陣中的該非0元素執(zhí)行2維-反向DCT(2D-IDCT)變換從而計算一個還原矩陣的每個元素的一個還原值。按照該方法和裝置,對于構(gòu)成一個DCT矩陣中的元素的大部分的0的不必要的計算,可以在執(zhí)行該IDCT變換中減少到最小值。此外,即使當一個DCT矩陣中具有有效值的元素的數(shù)量很大時,通過利用一個DCT公式的對稱性來將運算量極大地減少,從而該方法示出了統(tǒng)計上比傳統(tǒng)的快速DCT算法更好的運行性能。
文檔編號H04N1/41GK1503573SQ200310123169
公開日2004年6月9日 申請日期2003年11月20日 優(yōu)先權(quán)日2002年11月20日
發(fā)明者車尚昌, 安鐘學 申請人:三星電子株式會社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1