專利名稱:高速逆離散余弦變換方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種高速逆離散余弦變換方法和裝置。
背景技術(shù):
諸如圖像信號(hào)的數(shù)字?jǐn)?shù)據(jù)的壓縮,在支持多媒體應(yīng)用的環(huán)境中是最重要的技術(shù)之一。由于圖像信號(hào)一般包括相當(dāng)數(shù)量的數(shù)據(jù),從而限制了有效地傳輸、存儲(chǔ)以及處理圖像信號(hào)。為了克服所述約束,通過諸如MPEG-2、MPEG-4、H.263和H.26L之類的各種國(guó)際標(biāo)準(zhǔn)而提出了許多壓縮流量算法和譯碼技術(shù)。
現(xiàn)有兩種不同類型的壓縮技術(shù),也就是,無損失壓縮技術(shù)和有損失壓縮技術(shù)。當(dāng)采用無損失壓縮技術(shù)時(shí),諸如字符、圖形或其他一般數(shù)據(jù)之類的數(shù)據(jù)可以以2∶1的平均壓縮率被壓縮,并且壓縮過的數(shù)據(jù)能夠被完整地恢復(fù)。另一方面,當(dāng)采用有損失壓縮技術(shù)時(shí),也就是,當(dāng)壓縮圖像數(shù)據(jù)、語音數(shù)據(jù)或聲音數(shù)據(jù)時(shí),對(duì)于個(gè)人來說,允許難以察覺的較小的數(shù)據(jù)損失,并且能夠達(dá)到10∶1的壓縮率。最普通的有損失壓縮技術(shù)之一是轉(zhuǎn)換編碼。在轉(zhuǎn)換編碼中,以相互間具有高空間相關(guān)的預(yù)定方式排列數(shù)據(jù),并且對(duì)所述數(shù)據(jù)進(jìn)行正交轉(zhuǎn)換。在正交轉(zhuǎn)換期間,數(shù)據(jù)被劃分為從低頻分量變化到高頻分量排列的多個(gè)頻率分量,然后量化每一頻率分量。通過上述操作,頻率分量之間的相關(guān)性幾乎消失,并且信號(hào)能量集中在低頻范圍。在由正交轉(zhuǎn)換得到的低頻分量中,在其上集中了更多的能量的分量,即具有較高色散值的分量,將通過附加位的使用而得到更準(zhǔn)確地表示。給具有比其他分量色散值大四倍的色散值的低頻分量(也就是,具有比其他分量幅度大兩倍的幅度的低頻分量)分配一個(gè)附加位。最終,期望所有的頻率分量具有相同的量化誤差特性。
在多種類型的正交轉(zhuǎn)換中,因?yàn)槭芸赜贙arhunen-Loeve變換技術(shù)的圖像信號(hào)具有較高的能量集中特性,所以該變換技術(shù)被認(rèn)為是最有效的壓縮技術(shù)之一。然而,Karhunen-Loeve變換對(duì)于不同的圖像需要不同的轉(zhuǎn)換函數(shù),從而為Karhunen-Loeve變換的執(zhí)行施加了很大的限制。作為難于應(yīng)用的Karhunen-Loeve變換的一種選擇,提出了離散余弦變換(DCT)。由于DCT表現(xiàn)出與Karhunen-Loeve變換幾乎相同的執(zhí)行效果,所述執(zhí)行結(jié)果能夠?qū)嶋H的應(yīng)用,并且可以實(shí)現(xiàn),因而,它被認(rèn)為是眾多國(guó)際標(biāo)準(zhǔn)中的核心技術(shù)之一。在DCT技術(shù)中,8×8象素被集合成一個(gè)塊,并且對(duì)每一個(gè)塊進(jìn)行離散余弦變換。隨著塊的大小的增加,數(shù)據(jù)壓縮的效率變得更高,但是變得難于在每一個(gè)塊上執(zhí)行DCT。經(jīng)過多次實(shí)驗(yàn),確定將8×8的塊作為DCT單元,該DCT單元符合有效數(shù)據(jù)壓縮和容易執(zhí)行的要求。
傳統(tǒng)的數(shù)據(jù)壓縮技術(shù)使用離散余弦變換來消除在壓縮圖像時(shí)所獲得的空間冗余。使用運(yùn)動(dòng)估計(jì)(ME,motion estimation)和運(yùn)動(dòng)補(bǔ)償(MC,motioncompensation)來消除時(shí)間冗余。
圖1是說明傳統(tǒng)二維逆離散余弦變換(2D-IDCT)的框圖。通過減少用于IDCT的必要的計(jì)算量來獲得高速IDCT。如圖1所示,2D IDCT的特征在于對(duì)一個(gè)塊的每一行和每一列執(zhí)行一維(1D)IDCT。特別是,圖1所示的2D IDCT的特征在于沿兩個(gè)不同的方向執(zhí)行的1D IDCT、位移、和行列算法。換句話說,在2D IDCT中,在行方向上對(duì)塊執(zhí)行N次1D IDCT,所述塊被移動(dòng),然后在列方向上對(duì)所述移動(dòng)的塊執(zhí)行N次IDCT。
圖2是比較不同的傳統(tǒng)IDCT算法的計(jì)算量的圖表。圖1中有4種在2D IDCT中使用的不同的傳統(tǒng)IDCT算法,即基于稀疏矩陣因式分解的Chen’s算法、Wang’s算法、基于離散傅立葉變換的Lee’s算法、以及AAN算法。圖2示出了每一傳統(tǒng)IDCT算法所要求的乘法和加法的數(shù)量。
圖3是說明作為高速IDCT算法之一的Wang’s算法的框圖。參考圖3,響應(yīng)輸入信號(hào)x(0)至x(7)而分別輸出信號(hào)X(0)至X(7)。在輸出信號(hào)X(0)至X(7)的處理中,在接觸點(diǎn)上所實(shí)現(xiàn)的計(jì)算結(jié)果必須傳遞給隨后的接觸點(diǎn)。通過將前一接觸點(diǎn)乘以在C0至C7之間的一個(gè)常數(shù),來獲得一接觸點(diǎn)。例如,C0=x(1)+x(7)。Wang’s算法需要16個(gè)加法器和26個(gè)乘法器。大部分高速算法或多或少的類似于上述的Wang’s算法。
傳統(tǒng)的高速IDCT算法一般能夠減少IDCT所必須的計(jì)算的復(fù)雜度。然而,在恢復(fù)壓縮數(shù)據(jù)的處理中,傳統(tǒng)的高速IDCT算法需要大量的計(jì)算。在當(dāng)前能夠提供多種多媒體服務(wù)的移動(dòng)環(huán)境中,譯碼器,即諸如移動(dòng)電話或個(gè)人數(shù)字助理(PDAs)之類的移動(dòng)通信設(shè)備,受到大小和功耗上的約束,然而編碼器,即多媒體服務(wù)提供者的服務(wù)系統(tǒng)則相對(duì)地不受那些約束的影響。因此,存在減少在譯碼器中執(zhí)行IDCT所需計(jì)算量的需求。
發(fā)明內(nèi)容
本發(fā)明提供一種高速逆離散余弦變換(IDCT)方法和裝置,該方法和裝置可通過依賴于具有有效值的元素的數(shù)量而以逐元素或逐矩陣為基礎(chǔ)對(duì)離散余弦變換(DCT)矩陣執(zhí)行二維(2D)IDCT,來顯著地減少IDCT期間的計(jì)算量。
根據(jù)本發(fā)明的一個(gè)方面,提供一種高速逆離散余弦變換(IDCT)方法,該方法包括(a)當(dāng)具有除0以外值的元素總數(shù)不大于一預(yù)定臨界值時(shí),以預(yù)定順序在離散余弦變換(DCT)矩陣的所有元素中查找具有除0以外值的元素;(b)對(duì)在(a)中查找到的具有除0以外值的元素執(zhí)行二維(2D)IDCT;以及(c)當(dāng)具有除0以外值的元素的總數(shù)大于所述預(yù)定臨界值時(shí),對(duì)DCT矩陣執(zhí)行2D IDCT。
根據(jù)本發(fā)明的另一方面,提供一種高速IDCT裝置,該裝置包括元素查找單元、元素方式2D IDCT單元、和矩陣方式2D IDCT單元。當(dāng)具有除0以外值的元素的總數(shù)不大于一預(yù)定臨界值時(shí),元素查找單元以預(yù)定順序在離散余弦變換(DCT)矩陣的所有元素中查找具有除0以外值的元素。元素方式2D IDCT單元對(duì)通過元素查找單元所查找到的、具有除0以外值的元素執(zhí)行2D IDCT。當(dāng)具有除0以外值的元素的總數(shù)大于所述預(yù)定臨界值時(shí),矩陣方式2D IDCT單元對(duì)DCT矩陣上執(zhí)行2D IDCT。
通過參考附圖對(duì)典型實(shí)施例進(jìn)行詳細(xì)描述,使得本發(fā)明的上述和其他特征以及優(yōu)點(diǎn)變得更加的明顯,其中圖1是說明傳統(tǒng)二維逆離散余弦變換的框圖;圖2是表明不同的傳統(tǒng)逆離散余弦變換(IDCT)算法的計(jì)算量的圖表;圖3是說明作為傳統(tǒng)高速IDCT算法之一的Wang’s算法的框圖;圖4是根據(jù)本發(fā)明優(yōu)選實(shí)施例的高速IDCT裝置的方框圖;圖5是說明典型的8×8離散余弦變換(DCT)矩陣的示例的框圖;圖6是圖4中元素方式(element-wise)2D IDCT單元的方框圖;圖7是根據(jù)本發(fā)明優(yōu)選實(shí)施例的一種高速IDCT方法的流程圖;以及圖8是將根據(jù)本發(fā)明的高速IDCT所使用的計(jì)算量與傳統(tǒng)高速IDCT所使用的計(jì)算量進(jìn)行比較的圖表。
具體實(shí)施例方式
以下,通過參考在其中示出了本發(fā)明優(yōu)選實(shí)施例的附圖,更加詳細(xì)地描述本發(fā)明。
圖4是根據(jù)本發(fā)明優(yōu)選實(shí)施例的一種高速逆離散余弦變換(IDCT)裝置的方框圖。參考圖4,高速IDCT裝置包括有效元素?cái)?shù)量計(jì)算單元40、元素查找單元41、元素方式二維(2D)IDCT單元42,和矩陣方式2D IDCT單元43。
如下所示是用于壓縮圖像數(shù)據(jù)的過程。首先,對(duì)一個(gè)圖像信號(hào)進(jìn)行離散余弦變換,以將該圖像信號(hào)劃分為多個(gè)頻率范圍。在此,圖像數(shù)據(jù)的能量一般集中在低頻范圍。因此,通過量化圖像數(shù)據(jù),有可能使用減少的位數(shù)來壓縮圖像數(shù)據(jù)。之后,對(duì)圖像數(shù)據(jù)進(jìn)行量化,從而將圖像數(shù)據(jù)劃分為相等大小的量子。然后,由一個(gè)小于預(yù)定數(shù)量的值所表示的多個(gè)量子被賦予0值,以代替他們各自的原始數(shù)據(jù)值,以便減少整個(gè)數(shù)據(jù)的大小。同時(shí),由于賦予0值則可能出現(xiàn)數(shù)據(jù)損失。此后,執(zhí)行游程長(zhǎng)度(run-length)編碼,其中字符的重復(fù)用相同字符的數(shù)量和一個(gè)單獨(dú)字符來代替。當(dāng)構(gòu)成每一游程的字符數(shù)量增加,并且游程出現(xiàn)的數(shù)量增加時(shí),壓縮效率增加。此后,執(zhí)行Huffman編碼,在所述Huffman編碼中通過鋸齒形掃描所獲得的整數(shù)序列被轉(zhuǎn)換成二進(jìn)制值。通過這樣做,一個(gè)8×8矩陣被壓縮成許多0和1的組合。為了對(duì)這樣壓縮過的圖像數(shù)據(jù)譯碼,必須逆向執(zhí)行上述的壓縮處理。
如上所述,在根據(jù)對(duì)圖像數(shù)據(jù)執(zhí)行DCT和量化的處理來壓縮圖像數(shù)據(jù)的情況中,被壓縮數(shù)據(jù)主要地集中在低頻范圍,而在高頻范圍內(nèi)幾乎不存在。當(dāng)量化尺度變大時(shí),具有0值的元素的數(shù)量增加,同時(shí)具有除0以外值的元素的數(shù)量減少。相反,當(dāng)量化尺度變小時(shí),具有除0以外值的元素的數(shù)量增加。在具有大的量化尺度的情況中,DCT矩陣中具有除0以外值的元素?cái)?shù)量將變少。利用傳統(tǒng)高速IDCT算法,通過使用傳統(tǒng)高速IDCT算法,僅僅對(duì)這些元素進(jìn)行逆離散余弦變換,而不需要對(duì)DCT矩陣的所有元素進(jìn)行逆離散余弦變換。另一方面,在具有小的量化尺度的情況中,存在許多具有除0以外的值的元素,并且使用傳統(tǒng)高速IDCT算法是有效的。
在DCT矩陣中具有除0以外值的元素的數(shù)量不大于一預(yù)定臨界值的情況下,元素查找單元41以預(yù)定的順序查找具有除0以外值的元素。元素方式2DIDCT單元42對(duì)查找到的元素執(zhí)行2D IDCT。如上所述,將具有除0以外的值的元素?cái)?shù)量與所述預(yù)定臨界值進(jìn)行比較,以確定是以逐元素為基礎(chǔ)還是以逐矩陣為基礎(chǔ)來執(zhí)行IDCT。所述預(yù)定臨界值表示具有除0以外值的元素的最大數(shù)量,在該值上用于元素方式IDCT的計(jì)算量小于用于矩陣方式IDCT的計(jì)算量。多次實(shí)驗(yàn)已經(jīng)確定,在量化尺度不大于10時(shí),當(dāng)臨界值設(shè)定為15時(shí)能夠獲得最高壓縮效率;并且在量化尺度大于10時(shí),當(dāng)臨界值設(shè)定為10時(shí)能夠獲得最高壓縮效率。
如上所述,對(duì)一個(gè)壓縮文件的譯碼處理正好與將一個(gè)文件編碼成壓縮文件的處理相反。因此,通過對(duì)已壓縮的文件順序地執(zhí)行Huffman譯碼、游程長(zhǎng)度譯碼、逆向量化和IDCT來完成譯碼處理。可以在先于IDCT而執(zhí)行的游程長(zhǎng)度譯碼期間預(yù)先確定DCT矩陣中具有除0以外值的元素的數(shù)量。由于游程長(zhǎng)度編碼用單個(gè)0和0序列的長(zhǎng)度來代替0序列,因此能夠在游程長(zhǎng)度譯碼中算出0序列的長(zhǎng)度。通過游程長(zhǎng)度譯碼,也可能識(shí)別出具有除0以外的值的元素?cái)?shù)量。
換句話說,有效元素?cái)?shù)量計(jì)算單元40在游程長(zhǎng)度譯碼處理中,僅計(jì)數(shù)具有除0以外值的元素。例如,假定在編碼處理中量化尺度不大于10并且臨界值設(shè)定為15,以及具有除0以外值的元素的數(shù)量不大于15,則以逐元素為基礎(chǔ)來執(zhí)行IDCT要優(yōu)于以逐矩陣為基礎(chǔ)來執(zhí)行IDCT。
在DCT矩陣中具有除0以外值的元素的數(shù)量大于所述預(yù)定臨界值的情況下,矩陣方式2D IDCT單元43對(duì)DCT矩陣執(zhí)行2D IDCT。在編碼處理中量化尺度不大于10并且臨界值設(shè)定為15,以及具有除0以外值的元素的數(shù)量大于15的情況中,則以逐矩陣為基礎(chǔ)執(zhí)行IDCT要優(yōu)于以逐元素為基礎(chǔ)來執(zhí)行IDCT。矩陣方式2D IDCT單元43使用諸如Wang’s算法、Chen’s算法、Lee’s算法或AAN算法之類的傳統(tǒng)高速IDCT算法對(duì)DCT矩陣執(zhí)行諸如2D IDCT。
圖5是說明作為典型例子的8×8DCT矩陣的框圖。在圖5中,表示較多集中的圖像數(shù)據(jù)的元素較暗。屬于最低頻率范圍的元素A1是8×8DCT矩陣中最暗的一個(gè)。在8×8DCT矩陣中,元素A1的值被稱為一個(gè)直流(DC)值,并且其他63個(gè)元素A2-A64的值被稱為交流(AC)值。DC值和與元素A1相鄰的元素的值對(duì)于判定整個(gè)圖像的亮度是很重要的。
就元素查找單元41在查找具有除0以外值的元素時(shí)所使用的預(yù)定順序而言,元素查找單元41沿著水平方向或垂直方向?qū)CT矩陣進(jìn)行查找。由于大部分具有除0以外值的元素集中在DCT矩陣的左上角附近,因此元素查找單元41最好以鋸齒形方式,也就是以A1,A2,A3...,A64的順序去查找DCT矩陣的元素,借此減少計(jì)算量。
圖6是圖4中元素方式2D IDCT單元42的方框圖。參考圖6,該2D IDCT單元42包括一個(gè)部分值計(jì)算器61和一個(gè)完整值計(jì)算器62。
通常,使用以下等式(1)執(zhí)行2D IDCT。
V(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)=2N]]>如果i=0或j=0,C(i,j)=1N]]>在等式(1)中,T(i,j)表示位于DCT矩陣T中(i+1,j+1)的元素的值,并且V(x,y)表示位于矩陣V的(x+1,y+1)的元素的值,其中矩陣V表示通過對(duì)DCT矩陣T進(jìn)行IDCT所獲得的恢復(fù)的矩陣。如果DCT矩陣T是一個(gè)8×8矩陣,則i,j,x和y的每一個(gè)均具有0-7之間的值,并且N=8。
采用一種疊加原則,以選擇性地處理DCT矩陣中具有除0以外值的元素。根據(jù)該疊加原則,對(duì)每一個(gè)DCT系數(shù)塊或每一預(yù)定數(shù)量的DCT系數(shù)塊進(jìn)行逆離散余弦變換,然后對(duì)所有IDCT結(jié)果進(jìn)行求和。該處理得到與對(duì)所有DCT矩陣的DCT系數(shù)塊同時(shí)執(zhí)行IDCT之后相同的結(jié)果。在本發(fā)明中,以逐個(gè)的方式查找DCT系數(shù)塊值,對(duì)具有有效值的DCT系數(shù)塊進(jìn)行逆離散余弦變換,并且對(duì)IDCT結(jié)果求和,從而獲得一個(gè)恢復(fù)的矩陣(恢復(fù)該DCT矩陣的原始形式)。為了以逐元素為基礎(chǔ)執(zhí)行2D IDCT,必須對(duì)DCT矩陣中具有除0以外值的元素執(zhí)行等式(2)所示的預(yù)定計(jì)算處理。
IDCT(T)=IDCT(T(0,0))+IDCT(T(0,1))+IDCT(T(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)在等式(2)中,IDCT(T)表示一個(gè)從8×8DCT矩陣T所恢復(fù)的8×8矩陣V。IDCT(T(0,0))表示一個(gè)8×8矩陣,該8×8矩陣是通過用DCT矩陣T中第一行和第一列上的元素的坐標(biāo)(i=0并且j=0)和值T(0,0)以及恢復(fù)的8×8矩陣V中每一個(gè)元素的坐標(biāo)(x和y在0-7之間取值)來替代等式(1)中的變量而得到的。IDCT(T(0,0))說明恢復(fù)的8×8矩陣V的一部分。換句話說,根據(jù)所述疊加原則,通過對(duì)為具有除0以外值的元素而產(chǎn)生的所有矩陣進(jìn)行求和,來獲得恢復(fù)的矩陣V。在本發(fā)明中,為具有除0以外值的元素而產(chǎn)生的每一矩陣以表格的形式存儲(chǔ)在存儲(chǔ)器中,并且對(duì)定位在存儲(chǔ)器地址上的值以及對(duì)應(yīng)于存儲(chǔ)器中所存儲(chǔ)的所有表格的值進(jìn)行求和,從而獲得恢復(fù)的矩陣V。
上述算法可以應(yīng)用在以下情況具有除0以外值的元素的數(shù)量不大于臨界值,所述臨界值取決于量化尺度可以是6,10或15,該臨界值用于確定是以逐元素為基礎(chǔ)來執(zhí)行IDCT,還是以逐矩陣為基礎(chǔ)來執(zhí)行IDCT。在具有除0以外值的元素?cái)?shù)量大于臨界值的情況下,能夠使用傳統(tǒng)的高速算法。諸如MPEG-2,MPEG-4以及H.261之類的各種圖像壓縮算法一般產(chǎn)生不多于10個(gè)具有除0以外值的元素。
例如,當(dāng)具有除0以外值的元素的數(shù)量是10時(shí),通過以下等式(3)來表示元素方式2D IDCT。
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)部分值計(jì)算器61,通過用由圖4中元素查找單元41所查找到的具有除0以外值的元素的坐標(biāo)(i,j)和恢復(fù)的矩陣V中每一元素的坐標(biāo)(x,y)代替公式(1)中的變量,而獲得構(gòu)成恢復(fù)的矩陣V一部分的IDCT(T(i,j))。完整值計(jì)算器62使用疊加原則并且獲得一個(gè)對(duì)應(yīng)于恢復(fù)的矩陣V中每一個(gè)元素的完整值V(x,y)。通過對(duì)IDCT((T(i,j))求和來獲得該完整值,所述IDCT(T(i,j))是由部分值計(jì)算器61關(guān)于由元素查找單元41所查找到的、具有除0以外的值的每一元素而產(chǎn)生的。
圖7是一個(gè)根據(jù)本發(fā)明優(yōu)選實(shí)施例的高速IDCT方法的流程圖。參考圖7,在步驟70,在游程長(zhǎng)度譯碼期間,計(jì)數(shù)DCT矩陣中具有除0以外值的元素的數(shù)量,所述游程長(zhǎng)度譯碼是預(yù)定壓縮文件的譯碼處理過程的一部分,并且在IDCT之前被執(zhí)行。
在步驟71中,如果具有除0以外值的元素的數(shù)量不大于一預(yù)定臨界值,則在步驟72中以預(yù)定的順序逐個(gè)查找具有除0以外的值的元素。在此,在IDCT之前執(zhí)行的游程長(zhǎng)度譯碼處理中發(fā)現(xiàn)具有除0以外值的元素的數(shù)量。另外,將臨界值設(shè)定成具有除0以外值的元素的最大數(shù)量,在該值上,元素方式IDCT的計(jì)算量小于矩陣方式IDCT的計(jì)算量。而且,對(duì)具有除0以外值的元素的查找包括一個(gè)從DCT矩陣第一列和第一行的元素開始越過DCT矩陣所有元素的鋸齒形查找。
此后,在步驟73中,對(duì)具有除0以外值的元素進(jìn)行逆離散余弦變換。換句話說,通過用具有除0以外值的元素的值和坐標(biāo)以及恢復(fù)的矩陣中每一元素的坐標(biāo)來代替IDCT公式中的變量,而獲得恢復(fù)的矩陣中每一元素的部分值。此后,根據(jù)疊加原則,對(duì)關(guān)于恢復(fù)的矩陣的所有元素而得到的部分值進(jìn)行求和,從而獲得恢復(fù)的矩陣的每一元素的完整值。
在步驟71中,如果DCT矩陣中具有除0以外值的元素的數(shù)量大于臨界值,則在步驟74對(duì)DCT矩陣進(jìn)行2D IDCT。換句話說,使用諸如Wang’s算法、Chen’s算法、Lee’s算法或AAN算法之類的傳統(tǒng)高速IDCT算法對(duì)DCT矩陣執(zhí)行二維逆離散余弦變換。
圖8是用于將根據(jù)本發(fā)明的高速IDCT所必需的計(jì)算量與傳統(tǒng)高速IDCT所必需的計(jì)算量進(jìn)行比較的表。圖8表示當(dāng)量化尺度較大時(shí)的實(shí)驗(yàn)結(jié)果。如上所述,在小量化尺度的情況中,需要使用傳統(tǒng)的2D IDCT算法。
本發(fā)明的上述實(shí)施例能夠以計(jì)算機(jī)程序的形式實(shí)現(xiàn),該計(jì)算機(jī)程序能夠被記錄在計(jì)算機(jī)可讀記錄介質(zhì)上,并且能夠在數(shù)字計(jì)算機(jī)上執(zhí)行。
計(jì)算機(jī)可讀記錄介質(zhì)包括諸如ROM、軟盤或硬盤之類的磁存儲(chǔ)介質(zhì);諸如CD-ROM或DVD之類的光記錄介質(zhì);以及諸如經(jīng)由Internet的數(shù)據(jù)傳輸之類的載波。
根據(jù)本發(fā)明,可以通過消除對(duì)于占DCT矩陣元素大部分的具有0值的元素的不必要的計(jì)算來最小化計(jì)算量。另外,本發(fā)明提供一種用于不同量化尺度的最佳IDCT算法。例如,當(dāng)數(shù)據(jù)壓縮率低并且具有除0以外值的元素的數(shù)量少時(shí),采用傳統(tǒng)高速IDCT算法。即使本發(fā)明的元素方式2D IDCT算法和傳統(tǒng)IDCT算法都被使用,因?yàn)閹缀?0%的目標(biāo)圖像信號(hào)使用本發(fā)明的元素方式2D IDCT算法,因此IDCT的計(jì)算量仍將顯著地減少??墒褂脙?yōu)于傳統(tǒng)高速IDCT算法的本發(fā)明的元素方式2D IDCT算法進(jìn)行處理的圖像數(shù)據(jù)的百分比基于情況而變化。此外,根據(jù)本發(fā)明,可以通過顯著地減少由IDCT模式執(zhí)行的計(jì)算量來設(shè)計(jì)一種具有增強(qiáng)的性能的固定視頻譯碼器或具有減低的功耗的緊湊型移動(dòng)視頻譯碼器,所述計(jì)算量相當(dāng)于在視頻譯碼器中所執(zhí)行的全部計(jì)算量的25-30%。
在現(xiàn)有技術(shù)中,高速DCT算法中的計(jì)算均參考?jí)K結(jié)束符(EOB)來執(zhí)行,并且對(duì)于不同的掃描方法要求不同的高速IDCT算法。然而,本發(fā)明能夠不考慮掃描的類型而得到應(yīng)用,無論所述掃描類型是鋸齒形掃描、水平掃描或垂直掃描。另外,本發(fā)明最大化了在計(jì)算中其所應(yīng)用的有效數(shù)量。換句話說,因?yàn)樵诒景l(fā)明中IDCT僅執(zhí)行了一輪,因而,本發(fā)明的峰值信噪比將高于現(xiàn)有技術(shù)中的峰值信噪比。
雖然已經(jīng)通過參考典型實(shí)施例特別示出和描述了本發(fā)明,但是本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,可以在不脫離由隨后的權(quán)利要求書所限定的本發(fā)明的精神和范圍的情況下,對(duì)本發(fā)明在形式和細(xì)節(jié)上作出變化。
權(quán)利要求
1.一種高速逆離散余弦變換(IDCT)的方法,包括(a)當(dāng)具有除0以外值的元素的總數(shù)不大于一個(gè)預(yù)定臨界值時(shí),以預(yù)定的順序從離散余弦變換(DCT)矩陣的所有元素中查找具有除0以外值的元素;(b)對(duì)在(a)中查找到的具有除0以外值的元素執(zhí)行二維(2D)IDCT;和(c)當(dāng)具有除0以外值的元素的總數(shù)大于所述預(yù)定臨界值時(shí),對(duì)DCT矩陣執(zhí)行2D IDCT。
2.如權(quán)利要求1所述的方法,其中(b)包括(b1)通過用具有除0以外值的每一元素各自的值和各自的坐標(biāo)以及恢復(fù)的矩陣中每一元素各自的坐標(biāo)代替IDCT公式中的變量,來獲得與DCT矩陣相對(duì)應(yīng)的恢復(fù)的矩陣中每一元素各自的部分值;以及(b2)通過對(duì)在(b1)中獲得的關(guān)于恢復(fù)的矩陣的元素的部分值進(jìn)行求和,得到恢復(fù)的矩陣的元素的完整值。
3.如權(quán)利要求1所述的方法,其中在(c)中,使用一種高速IDCT算法對(duì)DCT矩陣執(zhí)行2D IDCT,其中所述高速IDCT算法是Wang’s算法、Chen’s算法、Lee’s算法和AAN算法之一。
4.如權(quán)利要求1所述的方法,進(jìn)一步包括(a-1)通過在對(duì)預(yù)定的壓縮文件進(jìn)行游程長(zhǎng)度譯碼期間計(jì)數(shù)具有除0以外值的元素的數(shù)量來獲得具有除0以外值的元素的總數(shù),所述游程長(zhǎng)度譯碼在進(jìn)行從離散余弦變換(DCT)矩陣的所有元素中查找具有除0以外值的元素之前執(zhí)行。
5.如權(quán)利要求1所述的方法,其中所述預(yù)定臨界值設(shè)定為具有除0以外值的元素的最大數(shù),在該值上,用于元素方式IDCT的計(jì)算量少于用于矩陣方式IDCT的計(jì)算量。
6.如權(quán)利要求1所述的方法,其中從DCT矩陣的第一列和第一行的元素開始,以鋸齒形方式順次查找DCT矩陣的元素。
7.一種高速IDCT裝置,包括元素查找單元,當(dāng)具有除0以外值的元素的總數(shù)不大于一預(yù)定臨界值時(shí),以預(yù)定的順序從離散余弦變換(DCT)矩陣的所有元素中查找具有除0以外值的元素;元素方式2D IDCT單元,對(duì)由元素查找單元查找到的具有除0以外值的元素執(zhí)行二維2D IDCT;以及矩陣方式2D IDCT單元,當(dāng)具有除0以外值的元素的總數(shù)大于所述預(yù)定臨界值時(shí),對(duì)DCT矩陣執(zhí)行2D IDCT。
8.如權(quán)利要求7所述的裝置,其中所述元素方式2D IDCT單元包括部分值計(jì)算器,其通過用具有除0以外值的每一元素各自的值和各自的坐標(biāo)以及恢復(fù)的矩陣中每一元素各自的坐標(biāo)代替IDCT公式中的變量,來獲得與DCT矩陣相對(duì)應(yīng)的恢復(fù)的矩陣中每一元素各自的部分值;以及完整值計(jì)算器,其通過對(duì)由所述部分值計(jì)算器獲得的恢復(fù)的矩陣的元素的部分值進(jìn)行求和,而得到恢復(fù)的矩陣的元素的完整值。
9.如權(quán)利要求7所述的裝置,其中矩陣方式2D IDCT單元使用高速IDCT算法對(duì)DCT矩陣執(zhí)行2D IDCT,其中所述傳統(tǒng)高速IDCT算法是Wang’s算法、Chen’s算法、Lee’s算法和AAN算法之一。
10.如權(quán)利要求7所述的裝置,進(jìn)一步包括一個(gè)有效元素?cái)?shù)量計(jì)算單元,其在游程長(zhǎng)度譯碼處理期間,通過計(jì)數(shù)具有除0以外值的元素來獲得具有除0以外值的元素的總數(shù),所述游程長(zhǎng)度譯碼處理是預(yù)定壓縮文件譯碼處理的一部分,并且在IDCT之前被執(zhí)行。
11.如權(quán)利要求7所述的裝置,其中所述預(yù)定臨界值被設(shè)定為具有除0以外值的元素的最大數(shù)量,在該數(shù)量上,元素方式IDCT的計(jì)算量少于矩陣方式IDCT的計(jì)算量。
12.如權(quán)利要求7所述的裝置,其中從所述DCT矩陣的第一列和第一行的元素開始,以鋸齒形方式依次查找該DCT矩陣的元素。
13.一種用于記錄計(jì)算機(jī)程序代碼的計(jì)算機(jī)可讀記錄介質(zhì),所述計(jì)算機(jī)程序代碼用于使能計(jì)算機(jī)提供高速逆離散余弦變換(IDCT)服務(wù),所述服務(wù)包括(a)當(dāng)具有除0以外值的元素的總數(shù)不大于一預(yù)定臨界值時(shí),以預(yù)定的順序從離散余弦變換(DCT)矩陣的所有元素中查找具有除0以外值的元素;(b)對(duì)在(a)中查找到的具有除0以外值的元素執(zhí)行二維(2D)IDCT;和(c)當(dāng)具有除0以外值的元素的總數(shù)大于預(yù)定臨界值時(shí),對(duì)DCT矩陣執(zhí)行2D IDCT。
14.如權(quán)利要求13所述的計(jì)算機(jī)可讀記錄介質(zhì),其中(b)包括(b1)通過用具有除0以外值的每一元素各自的值和各自的坐標(biāo)以及恢復(fù)的矩陣中每一元素各自的坐標(biāo)代替IDCT公式中的變量,來獲得一個(gè)與DCT矩陣相對(duì)應(yīng)的恢復(fù)的矩陣中每一元素各自的部分值;以及(b2)通過對(duì)在(b1)中獲得的關(guān)于恢復(fù)的矩陣的元素的部分值進(jìn)行求和,得到恢復(fù)的矩陣的元素的完整值。
15.如權(quán)利要求13所述的計(jì)算機(jī)可讀記錄介質(zhì),其中在(c)中使用高速IDCT算法對(duì)DCT矩陣執(zhí)行2D IDCT,其中所述高速IDCT算法是Wang’s算法、Chen’s算法、Lee’s算法和AAN算法之一。
16.如權(quán)利要求13所述的計(jì)算機(jī)可讀記錄介質(zhì),進(jìn)一步包括(a-1)通過在對(duì)預(yù)定的壓縮文件進(jìn)行游程長(zhǎng)度譯碼期間計(jì)數(shù)具有除0以外值的元素的數(shù)量來獲得具有除0以外值的元素的總數(shù),所述游程長(zhǎng)度譯碼在進(jìn)行從離散余弦變換(DCT)矩陣的所有元素中查找具有除0以外值的元素之前執(zhí)行。
17.如權(quán)利要求13所述的計(jì)算機(jī)可讀記錄介質(zhì),其中所述預(yù)定臨界值被設(shè)定為具有除0以外值的元素的最大數(shù)量,在該數(shù)量上,用于元素方式IDCT的計(jì)算量少于用于矩陣方式IDCT的計(jì)算量。
18.如權(quán)利要求13所述的計(jì)算機(jī)可讀記錄介質(zhì),其中從所述DCT矩陣的第一列和第一行的元素開始,以鋸齒形方式依次查找該DCT矩陣的元素。
全文摘要
提供一種高速逆離散余弦變換的方法和裝置。當(dāng)具有除0以外值的元素的總數(shù)不大于一預(yù)定臨界值時(shí),以預(yù)定的順序從離散余弦變換(DCT)矩陣的所有元素中,查找具有除0以外值的元素。對(duì)具有除0以外值的元素執(zhí)行二維(2D)IDCT。當(dāng)具有除0以外值的元素的總數(shù)大于所述預(yù)定臨界值時(shí),對(duì)DCT矩陣執(zhí)行2D IDCT。
文檔編號(hào)H04N1/41GK1520186SQ20031011478
公開日2004年8月11日 申請(qǐng)日期2003年11月20日 優(yōu)先權(quán)日2002年11月20日
發(fā)明者車尚昌, 安鐘學(xué) 申請(qǐng)人:三星電子株式會(huì)社