專利名稱:用于提取像素值的方法和裝置的制作方法
技術領域:
本發(fā)明涉及一種用于直接從離散余弦變換(DCT)系數(shù)中提取像素值的方法、裝置和計算機程序,更具體地,涉及無需執(zhí)行逆DCT變換而提取這些值的方法、裝置和計算機程序。
背景技術:
隨著因特網(wǎng)的迅速擴展以及多媒體信息技術在電子商務中以及在各種商業(yè)部門間應用的快速發(fā)展,數(shù)字式存儲的成本正在以驚人的速度降低。目前豐富的內(nèi)容信息不僅可以以文本形式存儲,還可以以數(shù)字圖像、數(shù)字視頻、3-D計算機圖形以及其他多種數(shù)字數(shù)據(jù)格式的形式存儲。萬維網(wǎng)到來后,信息的交換和生成發(fā)生了革命性的變化,這使得因特網(wǎng)可訪問的信息倉庫越來越普遍。對于整個信息相關學科領域的沖擊是需要開發(fā)出新技術來有效率、有效果和高可靠性地處理、管理和歸檔多媒體信息內(nèi)容。在此過程中,可以對上百萬的圖像、視頻剪輯進行處理、搜索、索引和檢索,且其大部分可能已是壓縮格式。在目前所有使用的壓縮格式中,離散余弦變換(DCT)得到了廣泛采用,其原因在于(a)離散余弦變換接近最優(yōu)Karhunen-Loève變換(KLT);(b)DCT不受信號的制約,并且能夠克服KLT的缺點;以及(c)它具有實系數(shù),并且在實踐中可以有高效實施的快速算法。因此,DCT被廣泛應用于圖像/視頻壓縮標準(JPEG/MPEG,和H261/H263)(參見J.Jiang‘A parallel algorithmfor 4×4 DCT’Journal of Parallel and Distributed Computing,Vol.57,1999,pp 257-269,ISDN0743-7315和V.Bhaskaran和K.Konstanti,Image and Video Compression StandardsAlgorithms andArchitectures,Kluwer Academic Publications,Boston,1997)。在此情況下,全世界研究領域掀起了一股對于壓縮域中的圖像處理或數(shù)據(jù)壓縮內(nèi)的內(nèi)容描述進行研究的新潮,如在A.Abdel-Malek和J.E.Hershely,“Feature cueing in the discrete cosine domain”,Journal ofElectronic Imaging,vol.3,pp.71-80,Jan,1994;B.Shen and IshwarK.Sethi,“Direct feature extraction from compressed images”,SPIEVol.2670 Storage &Retrieval for Image and Video DatabasesIV,1996;以及R.Reeve,K.Kubik和W.Osberger,“Texturecharacterization of compressed aerial images using DCTcoefficients”,Proc.Of SPIEStorage and Retrival for Image andVideo Databases V,Vol.3022,pp.398-407,F(xiàn)eb,1997中進行了描述。
由上可見,運動和靜止圖像的MPEG和JPEG編碼是本領域公知的,并且在圖1中示出了普通的編碼器和解碼器的結構。要對MPEG(和JPEG)圖像進行編碼,首先將源像素圖像分割成多個8×8塊,然后對每個塊進行離散余弦變換(DCT)。這將產(chǎn)生64個DCT系數(shù),其中DC分量位于左上角,漸高的高階AC分量從左上角開始向外分布在整個像素塊上。然后使用碼本(codebook)中的二進制碼對這些分量進行量化,以表示這些實數(shù)DCT系數(shù)中的每一個,并去除那些值低于量化閾值的系數(shù),然后以“之”字形的方式(如圖2所示)將這些分量轉換為串行數(shù)據(jù)碼字,以便能夠有效地對那些被量化為零的分量進行游程編碼,隨后在傳輸之前進行熵編碼。對于圖像中的每個8×8像素塊重復此過程。
要在解碼器中對圖像進行解碼,傳統(tǒng)地要進行相反的處理,即對接收到的數(shù)據(jù)進行熵解碼和游程解碼,將圖2的“之”字形路徑反過來,重構8×8塊中的DCT系數(shù),并進行逆DCT(IDCT)變換來求得實際像素值。該逆DCT步驟計算強度大,且其執(zhí)行費時費力。雖然一些實際的實現(xiàn)對于每個8×8像素塊只需1024次乘法運算和896次加法運算,但是通常對于標準完全解壓(IDCT)而言,計算成本是4096次乘法運算和4032次加法運算(進一步的比較參見“結果”部分中的表)。
盡管多年來圖像處理領域一直是研究和開發(fā)的焦點(作為代表有諸如增強、分段、特征提取和模式分類等的任務),但是這些開發(fā)都是像素域內(nèi)的。雖然基于DCT的數(shù)據(jù)壓縮大大地提高了傳輸效率并改善了有限存儲空間的管理,但是必須在顯示、進一步處理或者打印之前將壓縮視頻數(shù)據(jù)處理回像素域。一些經(jīng)常使用的處理功能包括圖像縮放、過濾、旋轉、變換、特征提取以及分類。為此目的,傳統(tǒng)方法必須在應用那些現(xiàn)有算法之前將數(shù)據(jù)從DCT域轉換(解壓)到像素域。這個處理將大大增加圖像處理和壓縮的整個鏈中的計算開銷和存儲費用,從前面的計算強度數(shù)據(jù)即可看出。因此在本領域中迫切需要一種低計算強度的方法來處理大量圖像介質(zhì),而在執(zhí)行圖像操作(搜索、過濾、顯示等)時無需使用IDCT操作對各個圖像進行完全解壓縮。
發(fā)明內(nèi)容
本發(fā)明提供了一種無需執(zhí)行逆離散余弦變換而對MPEG或JPEG編碼圖像進行解碼的方法、計算機程序和裝置來解決上述問題。也就是說,針對圖1所示的現(xiàn)有技術的解碼器,本發(fā)明提供了一種方法、計算機程序和裝置來代替逆離散余弦變換模塊10,并通過使用一組預定義的、簡單的、線性方程從DCT系數(shù)中直接提取像素值,該方程組通過一組參數(shù)將所提取的像素值與DCT系數(shù)直接關聯(lián)起來。因此,為了從MPEG或JPEG編碼域中提取源圖像,解碼器所要計算的只是該預定方程組對于給定的輸入DCT系數(shù)集的解,因此不再需要執(zhí)行具有高計算強度的逆DCT變換。
鑒于此,根據(jù)本發(fā)明的第一方面提供了一種從包含多個離散余弦變換(DCT)系數(shù)的信號中提取像素值的方法,其中該多個離散余弦變換系數(shù)是由源圖像中的像素值得到的,該方法包括以下步驟存儲多個預先計算的參數(shù),這些參數(shù)各與要提取值的特定像素相關聯(lián);以及對于要提取的任一特定像素值,利用與該像素值相關聯(lián)的預先計算的參數(shù)以及一個或更多個DCT系數(shù)來計算該像素值。
能夠利用預先計算的參數(shù)和一個或更多個DCT系數(shù)來計算像素值意味著計算強度降低了很多。基于所采用的具體實施,對于原始圖像中的一個8×8像素塊而言,只需進行8次加法運算和4次除法運算就可以從MPEG或JPEG編碼圖像中提取像素值。很顯然,與以前使用的完全逆離散余弦變換相比,計算量大大降低了。
另外,優(yōu)選地,利用預先選擇的DCT系數(shù)子集來計算像素值。從具體實施例顯而易見,只需任一特定像素塊的相對較小的DCT系數(shù)子集來進行本發(fā)明的操作。在一個實施例中,只需四個系數(shù),而在另一實施例中,可能使用9或16個系數(shù)。無論選擇哪個實施例,都可以看到,所使用的DCT系數(shù)的數(shù)量都比傳統(tǒng)上完全逆離散余弦變換中使用的64個系數(shù)少了很多。這是一個非常重要的成果,因為這有利于極低帶寬的視頻傳輸。
另外,所述預先計算的參數(shù)根據(jù)多個預定關系將要提取的像素值與DCT系數(shù)關聯(lián)起來。這些關系非常簡單,所以進一步減小了計算強度。
優(yōu)選地,在計算步驟中使用的DCT系數(shù)具有為零的下標值(indexvalue)。另外,優(yōu)選地,在計算步驟中使用的DCT系數(shù)是那些代表了對于DCT轉換的最高能量的系數(shù)。這些特征的優(yōu)點在于降低了用于尋找像素值的方程的復雜度,并可以最大限度地節(jié)約計算成本。
另外,與原始圖像相比,可以對每個輸入像素塊提取更少數(shù)目的像素,從而可以方便地降低分辨率。如果將所提取的圖像顯示在小屏幕上時,例如安裝在個人數(shù)字助理(PDA)或移動電話上的小屏幕,這一點可能很有用。
根據(jù)另一方面,本發(fā)明還提供了一種用于從包含多個離散余弦變換系數(shù)的信號中提取像素值的計算機程序,其中該多個離散余弦變換系數(shù)是由源圖像中的像素值得到的,該計算機程序由多個指令構成,當在計算機上執(zhí)行這些指令時會使計算機根據(jù)第一方面的方法來工作。
這種計算機程序的優(yōu)點在于能夠使本發(fā)明的方法在計算機上運行。
優(yōu)選地,根據(jù)第二方面的計算機程序存儲在計算機可讀存儲介質(zhì)上。該計算機可讀存儲介質(zhì)可以是磁、光、磁光、固態(tài)、或任何其它本領域公知的計算機可讀存儲介質(zhì)的任何一種。
根據(jù)第三方面,本發(fā)明還提供了一種用于從包含多個離散余弦變換(DCT)系數(shù)的信號中提取像素值的裝置,其中該多個離散余弦變換系數(shù)來源于源圖像中的多個像素值,該裝置包括
用于存儲多個預先計算的參數(shù)的存儲裝置,其中每個參數(shù)與要提取其值的特定像素相關聯(lián);以及計算裝置,其對于要提取的任一特定像素值,利用與該像素相關的預先計算的參數(shù)以及一個或多個DCT系數(shù)來計算該像素值。
本發(fā)明的第三方面還提供了與前述第一方面相似的特征和優(yōu)點。
通過下面以示例方式提供的實施例,并參照附圖,可以更清楚地理解本發(fā)明的其他特征和優(yōu)點,圖中相同的標號表示相同的部件,其中圖1是一個框圖,顯示了現(xiàn)有技術的MPEG編碼器和解碼器;圖2解釋了在MPEG編碼中如何以“之”字形方式讀取由8×8像素塊生成的DCT系數(shù);圖3是一個框圖,顯示了根據(jù)本發(fā)明第一實施例從DCT系數(shù)中提取像素值所需的數(shù)學運算;圖4是一個框圖,顯示了在本發(fā)明第二實施例中從DCT系數(shù)中直接提取像素值所需的至少一部分數(shù)學運算;圖5是一個框圖,顯示了在本發(fā)明第三實施例中從DCT系數(shù)中提取像素值所需的一些數(shù)學運算;圖6是可以在本發(fā)明的一個實施例中使用的值矩陣;圖7(a)和(b)一起顯示了可以在本發(fā)明的一個實施例使用的另一值矩陣;圖8是根據(jù)本發(fā)明一個實施例的裝置的方框圖;圖9是可用于實施本發(fā)明實施例的另選裝置的方框圖;圖10是一個流程圖,顯示了根據(jù)各個實施例,本發(fā)明的操作中包含的步驟;圖11(a)、(b)和(c)分別是利用本發(fā)明第一實施例提取的幀;圖12(a)、(b)和(c)分別是利用本發(fā)明第二實施例提取的幀;圖13(a)、(b)和(c)分別是利用本發(fā)明第三實施例提取的圖像幀
圖14(a)、(b)和(c)分別是利用現(xiàn)有技術的逆離散余弦變換所產(chǎn)生的圖像幀。
具體實施例方式
本發(fā)明取代了以前在MPEG和JPEG解碼器中所需的逆離散余弦變換操作。這是通過利用一組預定義的方程來實現(xiàn)的,通過分析正DCT變換而以數(shù)學的方式推導出了該方程組。對于各個像素塊,該方程組將圖像的多個像素值與MPEG和JPEG編碼中生成的一個DCT系數(shù)子集關聯(lián)起來。通過將這些接收到的DCT系數(shù)的值簡單地帶入方程式,就可以通過MPEG或JPEG解碼器直接提取解碼圖像的像素值,而無需執(zhí)行完全逆離散余弦變換。因此本發(fā)明具有很大的潛力,因為它能夠實現(xiàn)極其簡化的MPEG解碼器設計,與以前的情況相比可以降低能耗和計算復雜度。
下面將介紹本發(fā)明中使用的方程組的推導的理論基礎,隨后描述本發(fā)明的具體實施例。
理論基礎對8×8像素的圖像塊進行基于DCT的MPEG壓縮算法,以有效地探求同一圖像中相鄰像素間的空間相關性。前面描述并在圖1中顯示的編碼器側的典型操作包括塊的DCT變換(DCT)、可控步長(sz)的DCT系數(shù)(Q)量化,以及由游程編碼和熵編碼組成的可變長度編碼(VLC)。
因此,給定一MPEG壓縮比特流,本發(fā)明的視頻提取技術首先需要進行正常的熵解碼(VLD)和重構(Q*)來轉換到量化DCT系數(shù)域。隨后執(zhí)行一組非常簡單的運算,而不是逆DCT運算,來在降低的分辨率下提取所需的視頻圖像。下面將描述這些運算的理論基礎。
為了設計這種直接提取算法,起點自然地似乎應為在原始MPEG解碼器中設計的IDCT運算。然而,本發(fā)明的提取算法主要目的在于提取近似的像素信息,事實表明以IDCT本身作為起點是很困難的且不能實現(xiàn)所期望的結果。這是由于IDCT的輸入值就是DCT系數(shù)本身,且它們已經(jīng)去相關了。結果,任何近似都將導致嚴重的失真。因此,優(yōu)選地任何近似都應該在像素域中進行,因為相鄰像素是相關的且通常存在大量冗余。為此目的,本發(fā)明的視頻提取的起點要選擇為正向DCT運算。另外,雖然顯然可以理解本發(fā)明可以根據(jù)需要應用于不同尺寸的像素塊,但是為了利用標準的MPEG解碼設計,我們將此處的討論限于8×8的像素塊。
根據(jù)在J.Jiang‘A parallel algorithm for 4×4 DCT’Journalof Parallel and Distributed Computing,Vol.57,1999,pp257-269,ISDN0743-7315中給出的DCT定義,一個8×8的像素塊x(i,j),i,j=0,…7可以通過下面的方程轉換到DCT域C(u,v),u,v=0,…7中C(u,v)=14α(u)α(v)Σi=07Σj=07x(i,j)cos((2i+1)uπ16)cos((2j+1)vπ16)---(1)]]>其中 理論上此方程可以表示成矩陣的形式[Cuv]=[A][xij]其中[Cuv]是一個包含按照C00,C01,…C77順序設置的64個DCT系數(shù)的向量, 是一個包含該8×8像素塊的向量。注意,如果最后不使用原始8×8像素的全分辨率并且不需要所有DCT系數(shù),則削減后的方程為[C‾uv]=[A~][x‾ij]]]>例如, 可以是包含4×4平均像素的16維向量,而[Cuv]最多包含前16個非零DCT系數(shù), 是16×16的矩陣。
此研究的最終目的是生成緊湊簡潔的矩陣 以獲得具有更低分辨率的多個近似像素值。
=[A~]-1[C‾uv]]]>視覺效果和計算效率取決于對所使用的DCT系數(shù)的選擇和DCT系數(shù)的個數(shù)。
為了設計方便,可以重新調(diào)整方程(1)C(u,v)=14α(u)α(v)Σi=07cos((2i+1)uπ16)Σj=07x(i,j)cos((2j+1)vπ16)]]>
=14α(u)α(v)Σi=07cos((2i+1)uπ16)Σj=07x(i,j)ζj(v)---(2)]]>從三角學的相互關系來看,所有由ζj(v)中的 表示的角都可以映射到第一象限。隨著S=
中j的變化,該角度映射的細節(jié)可以如下解出令S=S1US2,其中S1=
,S2=[4,7],有 分別在S1和S2中對于k重復上述過程,S還可以進一步分為四部分,如下所示S=S11US12US21US22(4)其中S11=
,S12=[2,3],S21=[4,5]和S22=[6,7]。
有 將(5)代入(2)中,ζj(v)現(xiàn)在可以改寫為下列形式 當v∈[1,7]時,方程(6)變?yōu)?
由上可見,余弦函數(shù)內(nèi)的所有角都限于第一象限。所以,當進行泰勒級數(shù)展開以在x0=π4]]>處展開cos(x)時,應保留較接近的近似。執(zhí)行這個展開得到cos(x)=cos(x0)+cos(1)(x0)(x-x0)+cos(2)(x0)(x-x0)22!+...cos(n)(x0)(x-x0)nn!---(11)]]>=cosπ4-sinπ4(x-π4)+...=22(1-(x-π4)+...)]]>
忽略階數(shù)大于1的項,方程(11)變?yōu)閏os(x)≈22(1-(x-π4))---(12)]]>考慮到ζj(v)包含作為關鍵要素的 方程(12)可相應地調(diào)整為cos(x)≈22{1-(y-4π16)}---(13)]]>其中從方程(7)到(10)可得y∈[π,2π,3π,4π,5π,6π,7π]。
所以,利用(13),方程(7)到(10)可改寫為
最后得到Σj=07x(i,j)ζj(0)=x(i,0)+x(i,1)+x(i,2)+x(i,3)+x(i,4)+x(i,5)+x(i,6)+x(i,7)---(18)]]>Σj=07x(i,j)ζj(1)=22{(1+3π16)x(i,0)+(1+π16)x(i,1)+(1-π16)x(i,2)+(1-3π16)x(i,3)]]>-(1-3π16)x(i,4)-(1-π16)x(i,5)-(1+3π16)x(i,6)-(1+3π16)x(i,7)}---(19)]]>Σj=07x(i,j)ζj(2)=22{(1+2π16)x(i,0)+(1-2π16)x(i,1)-(1-2π16)x(i,2)-(1+2π16)x(i,3)]]>-(1+2π16)x(i,4)-(1-2π16)x(i,5)+(1-2π16)x(i,6)+(1+2π16)x(i,7)}---(20)]]>Σj=07x(i,j)ζj(3)=22{(1+π16)x(i,0)-(1-3π16)x(i,1)-(1+3π16)x(i,2)-(1-π16)x(i,3)]]>+(1-π16)x(i,4)+(1+3π16)x(i,5)+(1-3π16)x(i,6)-(1+π16)x(i,7)}---(21)]]>Σj=07x(i,j)ζj(4)=22{x(i,0)-x(i,1)-x(i,2)+x(i,3)+x(i,4)-x(i,5)-x(i,6)+x(i,7)}---(22)]]>
Σj=07x(i,j)ζj(5)=22{(1-π16)x(i,0)-(1+3π16)x(i,1)+(1-3π16)x(i,2)+(1+π16)x(i,3)]]>-(1+π16)x(i,4)-(1-3π16)x(i,5)+(1+3π16)x(i,6)-(1-π16)x(i,7)}---(23)]]>Σj=07x(i,j)ζj(6)=22{(1-2π16)x(i,0)-(1+2π16)x(i,1)+(1+2π16)x(i,2)-(1-2π16)x(i,3)]]>-(1-2π16)x(i,4)+(1+2π16)x(i,5)-(1+2π16)x(i,6)+(1-2π16)x(i,7)}---(24)]]>Σj=07x(i,j)ζj(7)=22{(1-3π16)x(i,0)-(1-π16)x(i,1)+(1+π16)x(i,2)-(1+3π16)x(i,3)]]>+(1+3π16)x(i,4)-(1+π16)x(i,5)+(1-π16)x(i,6)-(1-2π16)x(i,7)}---(25)]]>第一實施例——2×2塊的視頻提取上面已經(jīng)描述了本發(fā)明的理論背景,現(xiàn)在描述本發(fā)明的第一實施例,對于每個輸入的8×8塊提取2×2像素塊。
為了快速訪問壓縮視頻的內(nèi)容并實現(xiàn)各個視頻幀的低成本提取,可以沿著水平方向和垂直方向通過對塊尺寸除以2MM∈[1,3]的因子來對8×8的像素塊進行下采樣。這將產(chǎn)生三種不同尺寸,即,一個塊被分別提取為1個像素,2×2個像素和4×4個像素。實際上,對于一個塊提取1個像素而言,該幀只提取了DC系數(shù),從而所得值表示了該塊內(nèi)所有像素的平均值。當重構像素塊時,這基本上忽略了所有其他AC系數(shù)。根據(jù)應用場合,這種提取視頻幀的質(zhì)量通常是無法接受的。這樣就只剩下兩種選擇以2×2個像素提取該塊或者以4×4個像素提取該塊。以2×2個像素提取需要解包括四個方程的方程組,以4×4個像素提取需要解包括16個方程的方程組。
對于第一實施例選擇2×2的像素塊,通過將{x(i,0),x(i,1),x(i,2),x(i,3)}合并為一個值{x(i,0)},以及將{x(i,4),x(i,5),x(i,6),x(i,7)}合并為{x(i,1)},j的下標值可以映射到k∈
中。這可以通過將(18-25)式中的各個方程視為加權和來實現(xiàn)。雖然在這些方程間加權值各不相同,但是總的平均像素可大致視為相同,所以可以對相應的四個像素取平均值并表示為單個值。另外,由于這種情況下最大下標值為1,所以只需(18)和(19)兩個方程即可得到這些平均像素值,這兩個方程可變?yōu)?amp;Sigma;j=07x(i,j)ζj(0)=4(x(i,0)+x(i,1)+x(i,2)+x(i,3)4)+4(x(i,4)+x(i,5)+x(i,6)+x(i,7)4)]]>=4(x‾(i,0)+x‾(i,1))---(26)]]>Σj=07x(i,j)ζj(1)=22{4×(1+3π16)x(i,0)+(1+π16)x(i,1)+(1-π16)x(i,2)+(1-3π16)x(i,3)(1+3π16)+(1+π16)+(1-π16)+(1-3π16)}]]>-{4×(1-3π16)x(i,4)+(1-π16)x(i,5)+(1+3π16)x(i,6)+(1+3π16)x(i,7)(1-3π16)+(1-π16)+(1+3π16)+(1+3π16)}]]>≈22(x‾(i,0)-x‾(i,1))---(27)]]>由于該提取只需四個方程,所以只需四個系數(shù)。然而,為了使所提取的視頻質(zhì)量最佳且使成本最低,對于這些所選的DCT系數(shù)應該滿足下面兩個條件(i)一個下標值優(yōu)選地應為零,以減小該方程中乘數(shù)的個數(shù);(ii)該系數(shù)應該包括沿圖2中所示的“之”字形路線的最高可能能量。
通過沿著行和列的方向分別使用方程(26-27),可以產(chǎn)生下面四個式子C(0,0)=14×12×12×4×4{x‾(0,0)+x‾(1,0)+x‾(0,1)+x‾(1,1)}---(28)]]>C(0,1)=14×12×4×22{x‾(0,0)+x‾(1,0)-x‾(0,1)-x‾(1,1)}---(29)]]>C(1,0)=14×12×22×4{x‾(0,0)-x‾(1,0)+x‾(0,1)-x‾(1,1)}---(30)]]>C(1,1)=14×22×22{x‾(0,0)-x‾(1,0)-x‾(0,1)+x‾(1,1)}---(31)]]>
解這四個方程,得到下面的平均像素x‾(0,0)=18{C(0,0)+C(1,0)+C(0,1)+C(1,1)}]]>x‾(0,1)=18{C(0,0)+C(1,0)-C(1,1)-C(0,1)}---(32)]]>x‾(1,0)=18{C(0,0)-C(1,0)+C(0,1)-C(1,1)}]]>x‾(1,1)=18{C(0,0)-C(1,0)-C(0,1)+C(1,1)}]]>令A1=(C00+C10)>>3;A2=(C00-C10)>>3;B1=(C01+C11)>>3;B2=(C01-C11)>>3;然后,用短表達式xij代替x(i,j),有x00=A1+B1;x01=A1-B1;x10=A2+B2;x11=A2-B2;在圖3中示出了實施方框圖,其顯示了根據(jù)第一實施例解碼器所要執(zhí)行的數(shù)學加法和減法運算。注意,這些運算只是根據(jù)第一實施例的解碼器所要執(zhí)行的運算,其目的是代替?zhèn)鹘y(tǒng)中使用的逆DCT變換,并且直接對所示的這些DCT系數(shù)值執(zhí)行這些運算,以獲得像素值Xab。很顯然,只用了8次加法運算和4次右移運算便可從MPEG壓縮碼中提取出一個2×2平均像素塊。注意,如果在方程(32)中只使用三個DCT系數(shù),則可以進一步降低計算成本。根據(jù)多次實驗,這個變化只會導致輕微的失真,這在大部分情況下是很難注意到的。但是此時計算成本減少到6次加法和4次右移運算。因此,本發(fā)明的第一實施例規(guī)定,在MPEG或JPEG解碼器內(nèi),如圖1所示的整個IDCT模塊10可以由只執(zhí)行圖3中所示的數(shù)學運算的硬件或軟件功能組件來代替。
另外,應該注意該方程組不但可以應用于所要提取的像素的亮度值,還可以應用于色度值。因此,分別利用適當?shù)姆匠探M可以從各個相關DCT系數(shù)中直接提取出特定像素的各個亮度和色度值。
雖然圖3示出了根據(jù)本發(fā)明第一實施例所要執(zhí)行的數(shù)學運算和指令,但是應該理解可以以硬件或軟件方式來實現(xiàn)本發(fā)明。更具體地,我們期望可以設計出專用集成電路來執(zhí)行圖3的運算,但是本發(fā)明的該實施例同樣也可以通過諸如EPROM、EEPROM、現(xiàn)場可編程門陣列(EPGA)等的可編程邏輯設備來實現(xiàn)。另外,本發(fā)明也可以容易地以軟件形式在已有的計算機系統(tǒng)上運行來實現(xiàn)。圖8和9分別示出了可以應用于本發(fā)明任一實施例的可能實現(xiàn)的例子。圖10進一步示出了可以通過本發(fā)明任一實施例執(zhí)行的步驟?,F(xiàn)在將具體描述圖8、9和10。
圖8是顯示本發(fā)明硬件實現(xiàn)所需要的功能組件的方框圖。注意,本發(fā)明旨在替代現(xiàn)有技術的MPEG解碼器的逆DCT運算,但是該解碼器內(nèi)的其他運算,諸如游程和熵解碼、逆量化以及運動補償仍然保持不變。因此,在本發(fā)明中,我們假設MPEG或JPEG解碼器的其他傳統(tǒng)組件可以將各個像素塊的實際DCT系數(shù)值作為輸入提供給本發(fā)明,隨后本發(fā)明輸出所提取的像素值。
因此,如圖8所示,根據(jù)本發(fā)明任一實施例的裝置接收多個DCT系數(shù)作為輸入,并將接收到的系數(shù)送入DCT選擇器80。DCT選擇器80選擇那些計算像素值時實際需要的系數(shù),并丟棄其余的系數(shù)。但是,可能這些送入該選擇器的DCT系數(shù)實際上是一組已縮減的系數(shù),則在這種情況下不丟棄任何系數(shù)。在這種情況下,如果預先知道作為輸入所提供的是一組已縮減的系數(shù),則可以不需要選擇器80。因此選擇器80對于本發(fā)明的工作并不是必要的。
DCT選擇器80將所選擇的DCT系數(shù)送入DCT系數(shù)存儲器82,在此進行存儲。將DCT系數(shù)存儲器82設置為受控于像素值計算器84,并根據(jù)指令將DCT系數(shù)傳給像素值計算器。將像素值計算器84進一步設置為控制參數(shù)和方程存儲器86,該參數(shù)和方程存儲器86存儲諸如第一實施例中的方程組(32)的多個預定方程,這些方程將DCT系數(shù)值直接與要輸出的像素值關聯(lián)起來。參數(shù)和方程存儲器86根據(jù)像素值計算器的指令將參數(shù)和方程傳給像素值計算器。
像素值計算器84根據(jù)從DCT系數(shù)存儲器傳來的DCT系數(shù)值,利用存儲在方程存儲器86中的多個參數(shù)和方程來直接計算像素值。計算出像素值后,從像素值計算器84輸出。
盡管本來圖8是本發(fā)明的硬件實現(xiàn),但是如在本發(fā)明的前述實施例中一樣,本發(fā)明也可以以軟件形式在計算機系統(tǒng)上運行來實現(xiàn),在圖9中示出了本發(fā)明針對計算機系統(tǒng)的關鍵組件。顯然,對于本領域技術人員而言,圖9并沒有示出計算機系統(tǒng)工作所需的所有組件,其只是要顯示本發(fā)明實施例所特別需要的計算機系統(tǒng)組件。
參照圖9,運行本發(fā)明的計算機系統(tǒng)包括用于執(zhí)行算術和邏輯運算的中央處理單元90,其通過中央數(shù)據(jù)總線94與別的系統(tǒng)組件通信。提供了與數(shù)據(jù)總線94連接的輸入輸出端口92,使得可以輸入DCT系數(shù)以及輸出計算出的像素值。提供了存儲介質(zhì)96,可為固態(tài)存儲器、硬盤、光盤等,其中存儲有運行該計算機系統(tǒng)所需的常規(guī)操作系統(tǒng)組件,以及控制程序98、用于存儲DCT系數(shù)的存儲區(qū)97,和用于存儲預定義的將DCT系數(shù)與像素值直接關聯(lián)起來的方程和參數(shù)的存儲區(qū)域95。當控制程序98在CPU 90上運行時,使得該CPU訪問DCT存儲器97以及方程和參數(shù)存儲器95,并利用作為輸入所接收的DCT系數(shù)計算輸出的像素值。
圖10是顯示圖8或圖9的可選實現(xiàn)的操作的流程圖,其可用于本發(fā)明的任一實施例。
首先,在步驟10.1,接收要從中提取像素值的多個DCT系數(shù)。隨后,在步驟10.2中檢查一個像素塊所接收的DCT系數(shù)集是縮減后的系數(shù)集(在縮減后的系數(shù)集中只含有實際計算中所用的那些DCT系數(shù)),還是仍為64個系數(shù)的完整塊。如果判定所接受的DCT系數(shù)是縮減后的系數(shù)集,則處理進入步驟10.4,如果所接收的DCT系數(shù)是完整的系數(shù)集,則處理進入步驟10.3。
在步驟10.3,由于接收到了完整的DCT系數(shù)集,且只需一個子集來計算像素值,所以選擇計算所需的系數(shù)并丟棄其余的系數(shù)。隨后處理進入步驟10.4,在該步驟將計算像素值所需的系數(shù)存儲在DCT系數(shù)存儲器82或97中。
接下來,在步驟10.5,將兩個計數(shù)器a和b初始化為零。計數(shù)器a和b用于在參數(shù)和方程存儲器86或95中進行索引來檢索用于計算各個像素值的適當方程。
計數(shù)器初始化之后,在步驟10.6對參數(shù)和方程存儲器86或85進行訪問,并檢索到用于像素x(a,b)的合適方程。檢索到的方程將包含計算特定像素值所需的某些DCT系數(shù),并在步驟10.7,從DCT系數(shù)存儲器82或97中讀出這些系數(shù)。然后,由于已經(jīng)檢索到用于正在計算值的特定像素的方程,以及所檢索到的方程所需的適當?shù)腄CT系數(shù),在步驟10.8中使用該方程和系數(shù)來計算像素x(a,b)的值并存儲該值。
步驟10.8之后,在步驟10.9進行判定,以檢查計數(shù)器a是否已達到其最大值a_max。該最大值a_max取決于針對所輸入的DCT系數(shù)塊所要提取的像素塊的尺寸。例如,在第一實施例的情況下,對于每個8×8的DCT系數(shù)塊提取一個2×2的像素塊,則a_max等于2。然而,在對每個輸入DCT系數(shù)塊提取更多像素的情況下,a_max將等于更大尺寸的像素塊的一個維數(shù)。
如果步驟10.9的判定確定a不等于a_max,則在步驟10.10中將計數(shù)器a加1,隨后處理返回到步驟10.6,在步驟10.6重復對于用于像素x(a,b)的方程的檢索和處理。
但是,如果在步驟10.9中判定a達到了其最大值,則處理進行到步驟10.11,在步驟10.11為計數(shù)器b進行類似的判定,即,判斷計數(shù)器b是否達到其最大值b_max。同樣,與計數(shù)器a一樣,計數(shù)器b表示對于給定的輸入DCT系數(shù)塊所要提取的像素塊的一個維數(shù),且取最大值,例如,在第一實施例中為2,或者在第二與第三實施例中為4。
如果步驟10.11的判定返回的是b已達到其最大值,則一定已經(jīng)計算出了所有要提取的像素值,在該情況下,處理進行到步驟10.14,其中將該多個像素值作為一個尺寸為a×b的塊輸出。但是,如果步驟10.11的判定返回的是b沒有達到其最大值,則在步驟10.12將b加1,并隨后在步驟10.13將計數(shù)器a初始化為零,在此基礎上處理返回到步驟6。這種嵌套循環(huán)配置對于本領域技術人員而言是熟悉的,并可以通過各個像素x(a,b)的適當?shù)姆匠虂碛嬎闼邢袼豿(a,b),以輸出一包含多個像素的輸出像素塊,其中該多個像素的值已經(jīng)根據(jù)本發(fā)明的實施例而計算出。
現(xiàn)在描述本發(fā)明的其它實施例。應該注意到其它實施例將基本上按與前面在圖8、9和10中所描述的相同方式來工作,不同之處僅在于每個輸入DCT系數(shù)塊所提取的像素的個數(shù)(即,不同之處在于用于計算多個輸出像素值的方程組),或在于在計算中實際所需要的特定DCT系數(shù)的個數(shù)。
第二實施例——4×4塊的視頻提取現(xiàn)在描述本發(fā)明的第二實施例,其從一8×8的輸入塊中提取一4×4的像素塊。
為了提取4×4像素,只需方程(18-21),因為此時最大下標值為3。
通過求平均運算x‾(i,0)=x(i,0)+x(i,1)2,x‾(i,1)=x(i,2)+x(i,3)2,x‾(i,2)=x(i,4)+x(i,5)2,]]>x‾(i,3)=x(i,6)+x(i,7)2]]>可以類似地將方程(18-21)改寫為Σj=07x(i,j)ζj(0)=2(x‾(i,0)+x‾(i,1)+x‾(i,2)+x‾(i,3))---(33)]]>Σj=07x(i,j)ζj(1)=22{(2+π4)x‾(i,0)+(2-π4)x-(i,1)-(2-π4)x‾(i,2)-(2+π4)x‾(i,3)}]]>≈22×(2-π4){2x‾(i,0)+x‾(i,1)-x‾(i,2)-2x‾(i,3)}---(34)]]>Σj=07x(i,j)ζj(2)=2{x‾(i,0)-x‾(i,1)-x‾(i,2)+x‾(i,3)}---(35)]]>Σj=07x(i,j)ζj(3)≈π24×2{x‾(i,0)-3x‾(i,1)+3x‾(i,2)-x‾(i,3)}---(36)]]>為了獲得一組16個方程,我們需要使用16個DCT系數(shù)C(u,v)(u,v)∈
。對于每個系數(shù),通過簡單地將方程(33-36)中的一個分別應用于水平和垂直方向,可以得出相應的方程。例如,為了獲得用于C(3,2)的方程,我們首先選擇(35)作為基本方程,然后將(36)應用于(35)來得到下面的展開,其中使用短表達式xij來代替x(i,j)C(3,2)=π16{(x‾00-3x‾10+3x‾20-x‾30)-(x‾01-3x‾11+3x‾21-x‾31)]]>-(x‾02-3x‾12+3x‾22-a32)+(x‾03-3x‾13+3x‾23-x‾33)}---(37)]]>或者,為了提高效率,將非整數(shù)乘數(shù)放入左邊,則此時方程(37)表示為16πC(3,2)={(x‾00-3x‾10+3x‾20-x‾30)-(x‾01-3x‾11+3x‾21-x‾31)]]>-(x‾02-3x‾12+3x‾22-x‾32)+(x‾03-3x‾13+3x‾23-x‾33)}]]>通過類似的運算可以得到所有16個DCT系數(shù)??梢砸韵旅娴木仃囆问讲贾么司€性方程組的結果集[CT]=[A~][x‾]---(38)]]>其中[CT]是包含如方程(39)所示的變換后的16個DCT系數(shù)的向量,[CT]=[2C00,4C10(2-π4),2C20,16C30π,4C01(2-π4),8C11(2-π4)2,4C21(2-π4),32C31(2-π4)π,]]>2C02,4C12(2-π4),2C22,16C32π,16C03π,32C13(2-π4)π,16C23π,16×8C33π2]---(39)]]>[x]是包含按照x00到x33順序布置的多個加權平均像素的16維向量, 是所得到的16×16參數(shù)矩陣,如圖6所示。
所以,[CT]=[T][Cuv],在方程(38)的兩邊乘以逆矩陣 后,可以通過下式提取像素向量[x]=[B][Cuv](40)其中[B]=[A~]-1[T]]]>在圖7(a)和(b)中列出,從圖中有0.125=1/8、0.0625=1/16、0.25=1/4,這其實是分別右移3、4和2位的運算。結果,4×4塊的視頻提取可以在三種可選方案中實現(xiàn)。
第一種方案僅考慮四個系數(shù)Cuv(u,v)∈{(0,0),(0,1),(1,0),(2,0)}??梢酝ㄟ^下面的多個方程提取所有像素x00=C00>>3+0.176C10+C20>>3+0.176C01x10=C00>>3+(C10>>4)-(C20>>3)+0.176C01x20=C00>>3-(C10>>3)-(C20>>3)+0.176C01x30=C00>>3-0.176C10+(C20>>3)+0.176C01x01=C00>>3+0.176C10+(C20>>3)+(C01>>4)x11=C00>>3+(C10>>4)-(C20>>3)+(C01>>4)x21=C00>>3-(C10>>4)+(C20>>3)+(C01>>4)x31=C00>>3-0.176C10+(C20>>3)+(C01>>4)x02=C00>>3+0.176C10-(C20>>3)-(C01>>4)x12=C00>>3+(C10>>4)-(C20>>3)-(C01>>4)x22=C00>>3-(C10>>4)-(C20>>3)-(C01>>4)x32=C00>>3-0.176C10+(C20>>3)-(C01>>4)x03=C00>>3+0.176C10+(C20>>3)-0.176Cx13=C00>>3+C10>>4-(C20>>3)-0.176C01x23=C00>>3-(C10>>4)-(C20>>3)-0.176C01x33=C00>>3-0.176C10-(C20>>3)-0.176C01(41)在上面的方程中,Cab>>x表示將DCT系數(shù)Cab的二進制表示右移x位,從而有效地丟棄x個最低位。本領域的讀者會明白,這種運算相當于DCT系數(shù)的值除以2x,而不必執(zhí)行實際的數(shù)學除法運算。
在圖4中給出了第二實施例的不完全三級實現(xiàn)框圖,其中顯示了實現(xiàn)上面的方程組所需的一些數(shù)學運算。顯而易見,上面的方程組還需要其它運算。與第一實施例相同,上面的方程組替代了在MPEG解碼器中所需的逆DCT,因此根據(jù)本發(fā)明的第二實施例,如圖1所示的MPEG或JPEG解碼器中的完全IDCT模塊10可由僅執(zhí)行圖4中部分示出并由上述方程完整描述的數(shù)學運算的硬件和軟件功能組件來代替。這種方案只需2次乘法和28次加法運算,且提取的視頻幀的質(zhì)量比在2×2的塊中提取的視頻幀的質(zhì)量要好的多,其中也使用了四個系數(shù),但是所使用的第四個系數(shù)有所不同。下面會對本發(fā)明所得的結果的示例進行更具體的介紹。
第三實施例第三實施例與第二實施例的相似之處在于它也對于每個輸入其中的8×8DCT系數(shù)塊提取4×4的像素塊,但其與第二實施例的不同之處在于它考慮了9個系數(shù),Cuv(u,v)∈
??赏ㄟ^下面的方程提取16個像素x00=A1+3>>3+0.176(B3+B1+C11)x10=A2+4>>3+0.176B2+(B3>>4)+(C11>>4)x20=A2+4>>3+0.176B2-(B3>>4)-(C11>>4)x30=A1+3>>3-(B3-B1)>>4-(C11>>4)x01=A1-3>>3+0.176B3+(B1>>4)+(C11>>4)x11=A2-4>>3+(B4+B2)>>4x21=A2-4>>3-(B4-B2)>>4x31=A1-3>>3-0.176B4+(B1>>4)+(C11>>4)x02=A1-3>>3+0.176B4-(B1>>4)-(C11>>4)x12=A2-4>>3+(B4>>4)-(B2>>4)x22=A2-4>>3-(B4+B2)>>4x32=A1-3>>3-0.176B4-(B1>>4)+(C11>>4)x03=A1+3>>3+0.176(B4-B1-C11)x13=A2+4>>3-0.176B2+B3>>4-(C11>>4)x23=A2+4>>3-0.176B2-(B3>>4)+(C11>>4)x33=A1+3>>3-0.176(B4+B1-C11) (42)其中A1+3=A1+A3;A1-3=A1-A3;A2+4=A2+A4;A2-4=A2-A4;A1=C(0,0)+C(2,0);A2=C(0,0)-C(2,0);A3=C(0,2)+C(2,2);A4=C(0,2)-C(2,2);B1=C(0,1)+C(2,1);B2=C(0,1)-C(2,1);B3=C(1,0)+C(1,2);B4=C(1,0)-C(1,2);圖5中給出了一個不完整實現(xiàn)框圖,從中可以看出結構極其簡單。與第二實施例相同,圖5未示出的運算從前面的方程組中可以得知。與第一和第二實施例相同,上面的方程組代替了在MPEG解碼器中所需執(zhí)行的逆DCT,因此,根據(jù)本發(fā)明第三實施例,在圖1中所示的MPEG或JPEG解碼器內(nèi)的完全IDCT模塊10可以由一個僅執(zhí)行圖5中部分示出并由上述方程完整描述的數(shù)學運算的硬件或軟件功能組件來代替。第三實施例的總計算成本是5次乘法、42次加法和9次右移運算。如果0.176x由(x>>3)+(x>>5)來近似表示,則計算成本變?yōu)?7次加法和19次右移運算,但沒有乘法運算。從視覺觀察來看,這兩個實施方式?jīng)]有顯著不同。
第四實施例第四實施例與第三實施例緊密相關,但是考慮了所有的16個系數(shù)Cuv(u,v)∈
。然而,包含所有16個系數(shù)幾乎使加法和乘法運算的次數(shù)加倍。這兩種方案間的幾乎注意不到的視覺質(zhì)量差異并不能與計算復雜度的增加相平衡,因此第四實施例不是優(yōu)選的。
為了包含其它七個前面丟棄的系數(shù),將像素提取方程修改為x‾00=0.085(C30+C32)+0.085(C03+C23)+18(C31+C13)+116C33]]>x‾10=-0.18(C30+C32)+0.085(C03-C23)-14C31+0.042C13-18C33]]>x‾20=0.18(C30+C32)+0.085(C03-C23)+14C31-0.042C13+18C33]]>x‾30=-0.085(C30+C32)+0.085(C03+C23)+18(C31+C13)-116C33]]>x‾01=0.085(C30-C32)-0.18(C03+C23)+0.042C31-14C13+18C33]]>x‾11=-0.18(C30-C32)-0.18(C03-C23)-0.085(C31+C13)+14C33]]>x‾21=0.18(C30-C32)-0.18(C03-C23)+0.085(C31+C13)-14C33]]>x‾31=-0.085(C30-C32)-0.18(C03+C23)-0.042C31+14C13+18C33]]>x‾02=0.085(C30-C32)+0.18(C03+C23)-0.042C31+14C13+18C33]]>x‾12=-0.18(C30-C32)+0.18(C03-C23)+0.085(C31+C13)-14C33]]>x‾22=0.18(C30-C32)+0.18(C03-C23)-0.085(C31+C13)+14C33]]>x‾32=-0.085(C30-C32)+0.18(C03+C23)+0.042C31-14C13-18C33]]>x‾03=0.085(C30+C32)-0.085(C03+C23)+18(C31+C13)-116C33]]>x‾13=-0.18(C30+C32)-0.085(C03-C23)+14C31-0.042C13+18C33]]>x‾23=0.18(C30+C32)-0.085(C03-C23)-14C31+0.042C13-18C33]]>x‾33=-0.085(C30+C32)-0.085(C03+C23)+18(C31+C13)+116C33]]>
與前面的實施例相同,上述方程組代替了在MPEG解碼器中所需執(zhí)行的逆DCT,因此,根據(jù)本發(fā)明第四實施例,如圖1中所示的MPEG或JPEG解碼器中的整個IDCT模塊10可以由僅執(zhí)行以上方程所述的數(shù)學運算的硬件或軟件功能組件來代替。如果三個實數(shù)0.085、0.042和0.18分別由1/16、1/32、和1/8來近似表示,則上面方程的實現(xiàn)成本是45次加法和17次右移運算。但是,如前所述,使用這些額外的七個系數(shù)并未產(chǎn)生所提取幀的質(zhì)量的顯著改善,因此不再進一步討論本方案。
所以,總而言之,根據(jù)本發(fā)明的實施例提供了四種視頻提取方案,其中三種方案分別使用4個、9個和16個DCT系數(shù)來提取4×4塊中的視頻幀,一種方案使用4個DCT系數(shù)來提取2×2塊中的視頻幀。應該理解該四個實施例只是示例性的,通過采用這里所描述的本發(fā)明的數(shù)學原理可以設計出使用更多或更少DCT系數(shù)來產(chǎn)生不同尺寸的塊的類似方案,且這些另選方案包含在本發(fā)明之內(nèi)。
結果現(xiàn)在結合圖11、12、13和14中的各個示例幀(a)、(b)和(c)對本發(fā)明第一至第三實施例提供的結果進行描述。更具體地,圖11示出了本發(fā)明第一實施例所產(chǎn)生的三個幀,圖12示出了第二實施例所產(chǎn)生的相同的三個幀,圖13示出了根據(jù)第三實施例所產(chǎn)生的幀。為了對比,圖14示出了利用現(xiàn)有技術的完全IDCT來提取的相同幀,以2的系數(shù)對288×352的原始尺寸進行下采樣,以與所提取的相同尺寸的幀進行比較。
為了產(chǎn)生上述多個圖像,基于從因特網(wǎng)上下載的原始MPEG-2解碼器的C源代碼,在Microsoft Visual C++環(huán)境下執(zhí)行每個實施例。因此在此方面,各個實施例的具體執(zhí)行對應于前述的針對圖9的軟件實現(xiàn)。另外,為了保證公平比較,每幀都放大到相同的尺寸,通過簡單地分別沿著水平和垂直方向重復相同像素直至達到所要的尺寸來完成該放大。因此,在為每個輸入該幀的8×8DCT系數(shù)塊提取一個2×2像素塊的情況下,為了把所提取的圖像放大到源圖像的相同尺寸,把每個像素在水平方向上重復四次并在垂直方向上重復四次,產(chǎn)生16個相同的像素。在提取4×4塊時,每個像素只需在各個方向上重復兩次。本發(fā)明提供的這種簡單重復像素來進行放大的模式在計算上很簡單,且需要非常少的開銷,因此可以在不影響由本發(fā)明的直接像素提取技術獲得的計算效率提高的情況下執(zhí)行放大。
在靜止視頻幀間進行廣泛的回放和比較之后,可以觀察到如果所提取的視頻以所提取的尺寸進行回放,則在視頻感知方面,視頻圖像的質(zhì)量幾乎與使用所有的64個DCT系數(shù)解壓的完全IDCT的質(zhì)量相同。對于放大的尺寸回放而言,即使有些幀能夠觀察到輕微的失真,但是圖像質(zhì)量是可以接受的。例如,從由第一實施例產(chǎn)生的圖11可知,分辨率明顯低于其他示例。然而,從采用第三實施例所產(chǎn)生的圖13來看,與采用全IDCT所產(chǎn)生的幀相比,幾乎沒有任何顯著的不同。
從實驗結果和視覺比較而言,對于這些視頻提取算法可有下面的其他結論 第一和第三實施例的兩個視頻提取算法對于所提取尺寸的回放獲得了接近完全解壓的視頻圖像質(zhì)量,或者對于第一實施例是H/4×W/4以及對于第三實施例是H/2×W/2。
對于第二實施例,與完全解壓視頻幀相比,所提取尺寸的回放具有可接受的感知質(zhì)量,且獲得了比第一實施例更好的質(zhì)量。注意,兩種方案都使用了4個DCT系數(shù),但是第四個系數(shù)不一樣,分別為C20和G11; 2×2塊的視頻提取(或者第一實施例)能夠保持對于H/2×W/2回放的可接受的感知質(zhì)量; 4×4塊的視頻提取(或者第三實施例)能夠提供具有可接受的感知質(zhì)量的全尺寸視頻幀回放。
為了示例,表1總結了所研究的三種視頻提取方案的計算成本(不是復雜度),以及本文中所引用的其它快速IDCT計算算法的計算成本。
表1各種算法的計算成本總結
表中,標號[a]、[b]和[c]分別與現(xiàn)有的發(fā)表過的文章有關M.Vetterli于1985年3月在Proc.ICASSP’85中發(fā)表的“Fast 2-Ddiscrete cosine transform”;P.Duhamel和C.Guillemot于1990年4月在Proc.ICASSP’90 pp.1515-1518中發(fā)表的“Polynomialtransform computation of 2-D DCT”;以及N.1.Cho和S.U.Lee于1991年4月在IEEE Trans.Circuits Syst.vol.CAS-40,pp.259-266中發(fā)表的“Fast algorithm and implementation of 2-D discrete cosinetransform”。這些文章分別描述了快速逆DCT運算的現(xiàn)有技術的示例。
對表中結果值評述如下要特別注意,需要通過理論檢驗以及軟件實現(xiàn)對標號[a-c]中的快速IDCT實現(xiàn)進行仔細驗證??焖俨⒉灰欢ㄒ馕吨蛯崿F(xiàn)復雜度??焖買DCT計算的主要部分仍然具有高計算復雜度。這是由于快速只是通過乘法和加法運算的數(shù)量來衡量的,而忽略了其他后臺計算,如這些系數(shù)或像素的重排序、大量實數(shù)的預先計算或預先存儲等。結果,需要耗費大量內(nèi)存。所以,大部分已發(fā)表的IDCT計算算法必需為實現(xiàn)快速而付出代價。相比而言,可以證實本發(fā)明的技術具有真正的低成本,這只是由于其實現(xiàn)結構很簡單,以至于不了解DCT的任何人都可以容易地實現(xiàn)。本發(fā)明的實現(xiàn)沒有后臺計算,沒有這些系數(shù)或像素的任何其它移動,也沒有額外的內(nèi)存消耗。另外,第三實施例所需的五次乘法運算可由10次右移運算來代替。這意味著根本不需要乘法運算。而且,本發(fā)明的實現(xiàn)的感知質(zhì)量非常具有競爭力,且非常接近于以所提取尺寸顯示的完全解壓的感知質(zhì)量。我們認為任何基于快速IDCT的快速計算都不能達到這種效果。
因此本發(fā)明提供了在不必經(jīng)過逆DCT的情況下能夠從編碼MPEG或JPEG圖像的DCT系數(shù)中直接提取像素值的方法和裝置。本發(fā)明的計算效率相對于現(xiàn)有技術的快速IDCT技術有了很大提高,并且能夠僅使用所產(chǎn)生的DCT系數(shù)的一個子集意味著將來傳輸MPEG和JPEG編碼圖像和視頻所需的帶寬將大大減少。本發(fā)明有很多潛在的未來應用,我們期望本發(fā)明所提供的技術在任何將來的用于實現(xiàn)從DCT域中快速和有效地提取圖像的設備中得到應用。
權利要求
1.一種用于從包含源自源圖像的像素值的多個離散余弦變換(DCT)系數(shù)的信號中提取像素值的方法,所述方法包括以下步驟存儲多個預先計算的參數(shù),各個所述參數(shù)與要提取值的特定像素相關聯(lián);以及對于任何要提取的特定像素值,利用與其相關聯(lián)的所述預先計算的參數(shù)和一個或更多個所述DCT系數(shù)來計算所述像素值。
2.根據(jù)權利要求1所述的方法,其中所述預先計算的參數(shù)根據(jù)多個預定關系將所述要提取的像素值與所述DCT系數(shù)關聯(lián)起來。
3.根據(jù)以上權利要求中任何一項所述的方法,其中所提取的像素值是源圖像中一組像素中的各個像素值的平均值。
4.根據(jù)以上權利要求中任何一項所述的方法,其中所述計算步驟還包括利用預定的線性方程來直接計算所要提取的像素值,其中所述預定的線性方程包含一個或更多個所述預定參數(shù)作為一個或更多個所述DCT系數(shù)的系數(shù)。
5.根據(jù)以上權利要求中任何一項所述的方法,其中所述DCT系數(shù)源自源圖像中的一個a×b的像素塊,且對于這個塊總共提取a/x×b/y個像素。
6.根據(jù)權利要求5所述的方法,其中a=b=8,且x=y(tǒng)∈{2,4}。
7.根據(jù)以上權利要求中任何一項所述的方法,還包括僅選擇所述計算步驟中使用的信號中所包含的那些DCT系數(shù);以及丟棄其余的系數(shù)。
8.根據(jù)以上權利要求中任何一項所述的方法,其中在所述計算步驟中使用的DCT系數(shù)中的至少一個具有下標值0。
9.根據(jù)以上權利要求中任何一項所述的方法,其中在所述計算步驟中使用的所述DCT系數(shù)是代表對于DCT變換的最高能量的系數(shù)。
10.根據(jù)以上權利要求中任何一項所述的方法,其中使用所述DCT系數(shù)的一個預先選擇的子集來計算所述像素值。
11.根據(jù)以上權利要求中任何一項所述的方法,其中對于一個8×8的DCT系數(shù)塊提取一個2×2的像素塊,根據(jù)下面的多個方程來計算所述像素值x‾=(0,0)=18{C(0,0)+C(1,0)+C(0,1)+C(1,1)}]]>x‾(0,1)=18{C(0,0)+C(1,0)+C(1,1)+C(0,1)}]]>x‾(1,0)=18{C(0,0)+C(1,0)+C(0,1)+C(1,1)}]]>x‾(1,1)=18{C(0,0)+C(1,0)+C(0,1)+C(1,1)}]]>其中x(i,j)是像素(i,j)的提取值,C(u,v)是對于DCT系數(shù)塊的DCT系數(shù)(u,v)。
12.根據(jù)權利要求1到10中任何一項所述的方法,其中對于一個8×8的DCT系數(shù)塊,提取一個4×4的像素塊,根據(jù)下面的多個方程來計算所述像素值,其中x(i,j)是像素(i,j)的提取值,C(u,v)是對于DCT系數(shù)塊的DCT系數(shù)(u,v),>>x表示除以2x的效果x00=C00>>3+0.176C10+C20>>3+0.176C01x10=C00>>3+(C10>>4)-(C20>>3)+0.176C01x20=C00>>3-(C10>>3)-(C20>>3)+0.176C01x30=C00>>3-0.176C10+(C20>>3)+0.176C01x01=C00>>3+0.176C10+(C20>>3)+(C01>>4)x11=C00>>3+(C10>>4)-(C20>>3)+(C01>>4)x21=C00>>3-(C10>>4)+(C20>>3)+(C01>>4)x31=C00>>3-0.176C10+(C20>>3)+(C01>>4)x02=C00>>3+0.176C10-(C20>>3)-(C01>>4)x12=C00>>3+(C10>>4)-(C20>>3)-(C01>>4)x22=C00>>3-(C10>>4)-(C20>>3)-(C01>>4)x32=C00>>3-0.176C10+(C20>>3)-(C01>>4)x03=C00>>3+0.176C10+(C20>>3)-0.176C01x13=C00>>3+C10>>4-(C20>>3)-0.176C01x23=C00>>3-(C10>>4)-(C20>>3)-0.176C01x33=C00>>3-0.176C10-(C20>>3)-0.176C01
13.根據(jù)權利要求1到10中任何一項所述的方法,其中對于一個8×8的DCT系數(shù)塊,提取一個4×4的像素塊,根據(jù)下面的多個方程來計算所述像素值,其中x(i,j)是像素(i,j)的提取值,C(u,v)是對于DCT系數(shù)塊的DCT系數(shù)(u,v),>>x表示除以2x的效果x00=A1+3>>3+0.176(B3+B1+C11)x10=A2+4>>3+0.176B2+(B3>>4)+(C11>>4)x20=A2+4>>3+0.176B2-(B3>>4)-(C11>>4)x30=A1+3>>3-(B3-B1)>>4-(C11>>4)x01=A1-3>>3+0.176B3+(B1>>4)+(C11>>4)x11=A2-4>>3+(B4+B2)>>4x21=A2-4>>3-(B4-B2)>>4x31=A1-3>>3-0.176B4+(B1>>4)+(C11>>4)x02=A1-3>>3+0.176B4-(B1>>4)-(C11>>4)x12=A2-4>>3+(B4>>4)-(B2>>4)x22=A2-4>>3-(B4+B2)>>4x32=A1-3>>3-0.176B4-(B1>>4)+(C11>>4)x03=A1+3>>3+0.176(B4-B1-C11)x13=A2+4>>3-0.176B2+B3>>4-(C11>>4)x23=A2+4>>3-0.176B2-(B3>>4)+(C11>>4)x33=A1+3>>3-0.176(B4+B1-C11)其中A1+3=A1+A3;A1-3=A1-A3;A2+4=A2+A4;A2-4=A2-A4;A1=C(0,0)+C(2,0);A2=C(0,0)-C(2,0);A3=C(0,2)+C(2,2);A4=C(0,2)-C(2,2);B1=C(0,1)+C(2,1);B2=C(0,1)-C(2,1);B3=C(1,0)+C(1,2);B4=C(1,0)-C(1,2);
14.一種計算機程序,用于從包含源自源圖像的像素值的多個離散余弦變換(DCT)系數(shù)的信號中提取像素值,所述計算機程序包括多個指令,當在計算機上執(zhí)行這些指令時將使計算機根據(jù)任何一項上述權利要求的方法來工作。
15.一種計算機可讀存儲介質(zhì),存儲有根據(jù)權利要求14的計算機程序。
16.一種提取像素值的裝置,用于從包含源自源圖像的像素值的多個離散余弦變換(DCT)系數(shù)的信號中提取像素值,所述裝置包括存儲裝置,用于存儲多個預先計算的參數(shù),其中每個所述的參數(shù)與要提取值的特定像素相關聯(lián);以及計算裝置,用于對于任何要提取的特定像素值,利用與其相關聯(lián)的所述預先計算的參數(shù)和一個或更多個所述DCT系數(shù)來計算所述像素值。
17.根據(jù)權利要求16所述的裝置,其中所述預先計算的參數(shù)根據(jù)多個預定關系使要提取的像素值與所述DCT系數(shù)相關聯(lián),所述預定關系存儲在所述存儲裝置中。
18.根據(jù)權利要求16或17所述的裝置,其中所提取的像素值是所述源圖像中的一組像素的各個像素值的平均值。
19.根據(jù)權利要求16到18中的任何一項所述的裝置,其中所述計算裝置進一步設置為利用預定的線性方程來直接計算所要提取的像素值,其中所述預定線性方程包含一個或更多個所述預定義參數(shù)作為一個或更多個所述DCT系數(shù)的系數(shù)。
20.根據(jù)以上權利要求中任何一項所述的裝置,其中所述DCT系數(shù)來自源圖像中的a×b像素塊,且對于各個塊總共提取a/x×b/y個像素。
21.根據(jù)權利要求5所述的裝置,其中a=b=8,且x=y(tǒng)∈{2,4}。
22.根據(jù)權利要求16到21中的任何一項所述的裝置,還包括DCT系數(shù)選擇裝置,用于僅選擇所述計算裝置使用的信號中所包含的那些DCT系數(shù),并丟棄其余的系數(shù)。
23.根據(jù)權利要求16到22中的任何一項所述的裝置,其中所述計算裝置所使用的DCT系數(shù)中的至少一個具有下標值0。
24.根據(jù)權利要求16到23中的任何一項所述的裝置,其中所述計算裝置所使用的DCT系數(shù)是那些代表對于所述DCT變換的最高能量的系數(shù)。
25.根據(jù)權利要求16到24中的任何一項所述的裝置,其中所述計算裝置使用所述DCT系數(shù)的一個預先選擇的子集來計算所述像素值。
26.根據(jù)權利要求16到25中的任何一項所述的裝置,進一步設置為對于一個8×8的DCT系數(shù)塊提取一個2×2的像素塊,根據(jù)下面的多個方程通過所述計算裝置來計算所述像素值x‾(0,0)=18{C(0,0)+C(1,0)+C(0,1)+C(1,1)}]]>x‾(0,1)=18{C(0,0)+C(1,0)+C(1,1)+C(0,1)}]]>x‾(1,0)=18{C(0,0)+C(1,0)+C(0,1)+C(1,1)}]]>x‾(1,1)=18{C(0,0)+C(1,0)+C(0,1)+C(1,1)}]]>其中x(i,j)是像素(i,j)的提取值,C(u,v)是對于DCT系數(shù)塊的DCT系數(shù)(u,v)。
27.根據(jù)權利要求16到25中的任何一項所述的裝置,進一步設置為對于一個8×8的DCT系數(shù)塊提取一個4×4的像素塊,根據(jù)下面的多個方程通過所述計算裝置來計算所述像素值,其中x(i,j)是像素(i,j)的提取值,C(u,v)是對于DCT系數(shù)塊的DCT系數(shù)(u,v),>>x表示除以2x的效果x00=C00>>3+0.176C10+C20>>3+0.176C01x10=C00>>3+(C10>>4)-(C20>>3)+0.176C01x20=C00>>3-(C10>>3)-(C20>>3)+0.176C01x30=C00>>3-0.176C10+(C20>>3)+0.176C01x01=C00>>3+0.176C10+(C20>>3)+(C01>>4)x11=C00>>3+(C10>>4)-(C20>>3)+(C01>>4)x21=C00>>3-(C10>>4)+(C20>>3)+(C01>>4)x31=C00>>3-0.176C10+(C20>>3)+(C01>>4)x02=C00>>3+0.176C10-(C20>>3)-(C01>>4)x12=C00>>3+(C10>>4)-(C20>>3)-(C01>>4)x22=C00>>3-(C10>>4)-(C20>>3)-(C01>>4)x32=C00>>3-0.176C10+(C20>>3)-(C01>>4)x03=C00>>3+0.176C10+(C20>>3)-0.176C01x13=C00>>3+C10>>4-(C20>>3)-0.176C01x23=C00>>3-(C10>>4)-(C20>>3)-0.176C01x33=C00>>3-0.176C10-(C20>>3)-0.176C01
28.根據(jù)權利要求16到25中任何一項所述的裝置,進一步設置為對于一個8×8的DCT系數(shù)塊提取一個4×4的像素塊,根據(jù)下面的多個方程通過所述計算裝置來計算所述像素值,其中x(i,j)是像素(i,j)的提取值,C(u,v)是對于DCT系數(shù)塊的DCT系數(shù)(u,v),>>x表示除以2x的效果x00=A1+3>>3+0.176(B3+B1+C11)x10=A2+4>>3+0.176B2+(B3>>4)+(C11>>4)x20=A2+4>>3+0.176B2-(B3>>4)-(C11>>4)x30=A1+3>>3-(B3-B1)>>4-(C11>>4)x01=A1-3>>3+0.176B3+(B1>>4)+(C11>>4)x11=A2-4>>3+(B4+B2)>>4x21=A2-4>>3-(B4-B2)>>4x31=A1-3>>3-0.176B4+(B1>>4)+(C11>>4)x02=A1-3>>3+0.176B4-(B1>>4)-(C11>>4)x12=A2-4>>3+(B4>>4)-(B2>>4)x22=A2-4>>3-(B4+B2)>>4x32=A1-3>>3-0.176B4-(B1>>4)+(C11>>4)x03=A1+3>>3+0.176(B4-B1-C11)x13=A2+4>>3-0.176B2+B3>>4-(C11>>4)x23=A2+4>>3-0.176B2-(B3>>4)+(C11>>4)x33=A1+3>>3-0.176(B4+B1-C11)其中A1+3=A1+A3;A1-3=A1-A3;A2+4=A2+A4;A2-4=A2-A4;A1=C(0,0)+C(2,0);A2=C(0,0)-C(2,0);A3=C(0,2)+C(2,2);A4=C(0,2)-C(2,2);B1=C(0,1)+C(2,1);B2=C(0,1)-C(2,1);B3=C(1,0)+C(1,2);B4=C(1,0)-C(1,2);
全文摘要
本發(fā)明提供了一種提取根據(jù)MPEG或JPEG編碼利用正向離散弦變換(DCT)進行編碼的多個像素的亮度和色度值的方法和裝置。本發(fā)明采用理論研究來對MPEG編碼中所使用的正向DCT進行分析,以產(chǎn)生一組方程,所述方程組使編碼圖像中的像素值與在通常的圖像編碼過程中通過正向DCT變換獲得的一個或多個DCT系數(shù)相關。本發(fā)明中使用這些預定的方程,以使得可以極其快速和高計算效率地從編碼像素塊的DCT系數(shù)中提取像素值,而不需執(zhí)行逆DCT變換。本發(fā)明可以用于任何需要以快速有效的方式從MPEG和JPEG編碼圖像中提取原始圖像的應用。
文檔編號G06T9/00GK1613260SQ02826873
公開日2005年5月4日 申請日期2002年12月24日 優(yōu)先權日2002年1月7日
發(fā)明者江健明, 許利群 申請人:英國電訊有限公司