欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

在圖像處理期間執(zhí)行二維變換的電路和方法

文檔序號:1659251閱讀:265來源:國知局
專利名稱:在圖像處理期間執(zhí)行二維變換的電路和方法
技術(shù)領(lǐng)域
本發(fā)明涉及圖像處理電路和技術(shù),尤其涉及圖像處理期間執(zhí)行離散余弦反變換(IDCT)之類的二維變換的電路和方法。這種電路和方法能夠比現(xiàn)有技術(shù)的電路和方法更高效率地執(zhí)行IDCT。
人們通常希望減小壓縮和解壓縮圖像數(shù)據(jù)的圖像處理器的復雜性。由于圖像數(shù)據(jù)經(jīng)常是排列在二維(2-D)數(shù)據(jù)塊中,因而處理器通常執(zhí)行2-D數(shù)學功能以處理圖像數(shù)據(jù)。不幸的是,一般需要具有相對復雜結(jié)構(gòu)的處理器來執(zhí)行這些復雜的圖像處理功能。復雜的構(gòu)造通常會增大處理器算術(shù)單元和它內(nèi)部數(shù)據(jù)總線的尺寸,因而與標準處理器相比,增大了處理器的成本和總體尺寸。
一種有效減小圖像處理器構(gòu)造的復雜性的技術(shù)是把復雜的圖形處理功能分解成一系列較簡單構(gòu)造能夠執(zhí)行的較簡單的功能。例如,Masaki等的論文披露了一種將8點向量乘法分解成一系列4點向量乘法以簡化2-D IDCT的技術(shù),這篇論文結(jié)合于此作為參考“視頻技術(shù)電路和系統(tǒng)”IEEE會刊,1995年10月第五號第五卷中的“離散余弦反變換器的VLSI實現(xiàn)和MPEG2 HDTV視頻解碼的運動補償”。
不幸的是,盡管這種技術(shù)使得處理器能夠具有比較簡單的構(gòu)造,但是它通常增大了處理器處理圖像數(shù)據(jù)所需的時間。因此,一般規(guī)律是,處理器構(gòu)造越簡單,處理時間越慢,而處理器構(gòu)造越復雜,處理時間越快。
為了幫助讀者理解上面討論的概念和以下本發(fā)明的說明書中所討論的內(nèi)容,下面是傳統(tǒng)圖像壓縮/解壓縮技術(shù),2-DDCT功能和2-D及1-D IDCT功能基本概念,和用于簡化1-D IDCT功能的Masaki技術(shù)的討論。
為了通過比較低的帶寬信道電子地發(fā)送比較高解析度的圖像,或為了把這種圖像電子地存儲在比較小的存儲空間中,通常需要壓縮代表圖像的數(shù)字數(shù)據(jù)。這種圖像壓縮一般涉及減少代表圖像所需的數(shù)據(jù)比特的數(shù)量。例如,壓縮高清晰度電視(HDTV)視頻圖像使它們能夠通過現(xiàn)有電視頻道傳輸。不進行壓縮,HDTV視頻圖像將需要具有比現(xiàn)有電視頻道帶寬大得多的帶寬的傳輸信道。此外,為了將數(shù)據(jù)業(yè)務(wù)量和傳輸時間減少到可接受的水平,可以在通過互聯(lián)網(wǎng)發(fā)送圖像之前壓縮圖像?;驗榱嗽龃驝D-ROM或服務(wù)器的圖像存儲容量,可以在存儲圖像之前壓縮之。
參考

圖1A-6,討論現(xiàn)在流行的基于數(shù)據(jù)塊的運動圖像專家組(MPEG)壓縮標準的基礎(chǔ),標準包括MPEG-1和MPEG-2。為了進行說明,討論根據(jù)使用MPEG 4∶2∶0格式壓縮在Y-CB-CR彩色空間表示的視頻圖像。但是,討論的概念也適用于其它MPEG格式,以其它彩色空間表示的圖像,以及適用于其它基于數(shù)據(jù)塊的壓縮標準,例如,通常用于壓縮靜止圖像的聯(lián)合照相專家組(JPEG)標準。此外,盡管為了簡潔而省略了MPEG標準和Y-CB-CR色彩空間的許多細節(jié),但這些細節(jié)是眾所周知的,并且可以在大量可用參考資料中找到。
參考圖1A-1D,MPEG標準經(jīng)常用于壓縮暫態(tài)圖像序列——用于這里討論的視頻幀——例如,可以在電視廣播中所見的視頻幀。每個視頻幀被分割成多個稱為宏數(shù)據(jù)塊的子區(qū),每個宏數(shù)據(jù)塊包括一個或多個像素。圖1A是一個具有256個像素12的16像素乘16像素的宏數(shù)據(jù)塊10(未按比例畫出)。宏數(shù)據(jù)塊10也可以具有其它尺度。在原始視頻幀中,即,在壓縮前的視頻幀中,每個像素12具有各自的亮度值Y和各自的一對彩色差值,即,一對色差值CB和CR(“B”代表“藍色”,“R”代表“紅色”)。
在視頻幀壓縮之前,從原始幀的原始Y,CB和CR產(chǎn)生用于壓縮的數(shù)字亮度(Y)和色差(CB和CR)值,即,預壓縮值。在MPEG 4∶2∶0格式中,預壓縮Y值與原始Y值相同。因此,每個像素12只是保持它的原始亮度值Y。但是,為了減少要壓縮的數(shù)據(jù)量,MPEG 4∶2∶0格式僅允許每個四像素12的組14有一個預壓縮CB值和一個預壓縮CR值。預壓縮CB和CR值的每一個是分別從對應(yīng)的組14中的四個像素12的原始CB和CR值導出的。例如,預壓縮CB值可以等于對應(yīng)的組14中的四個像素12的原始CB值的平均值。因此,參考圖1B-1D,針對宏數(shù)據(jù)塊10產(chǎn)生的預壓縮Y,CB和CR值被排列成一個預壓縮Y值(等于像素12的原始Y值)的16×16矩陣16,一個預壓縮CB值(等于每個四像素12的組14的一個導出CB值)的8×8矩陣18,和一個預壓縮CR值(等于每個四像素12的組14的一個導出CR值)的8×8矩陣20。矩陣16,18和20通常被稱為值的“數(shù)據(jù)塊”。此外,由于MPEG標準需要執(zhí)行有關(guān)像素值的8×8數(shù)據(jù)塊的壓縮變換,而不是有關(guān)16×16數(shù)據(jù)塊的變換,因此,將預壓縮Y值的數(shù)據(jù)塊16再細分成四個8×8數(shù)據(jù)塊22a-22d,這四個數(shù)據(jù)塊分別對應(yīng)于宏數(shù)據(jù)塊10中的8×8像素數(shù)據(jù)塊A-D。因此,參考圖1A-1D,為每個宏數(shù)據(jù)塊10產(chǎn)生了六個預壓縮像素數(shù)據(jù)的8×8數(shù)據(jù)塊四個預壓縮Y值的8×8數(shù)據(jù)塊22a-22d,一個預壓縮CB值的8×8數(shù)據(jù)塊18,和一個預壓縮CR值的8×8數(shù)據(jù)塊20。
圖2是一個更常被稱為編碼器的MPEG壓縮器30的方框圖。編碼器30一般將一個幀或一個幀序列的預壓縮數(shù)據(jù)轉(zhuǎn)換成代表具有比預壓縮數(shù)據(jù)顯著減少的數(shù)據(jù)比特的相同的一個幀或多個幀的編碼數(shù)據(jù)。為了執(zhí)行這種轉(zhuǎn)換,編碼器30減少或刪除預壓縮數(shù)據(jù)中的冗余數(shù)據(jù),并利用有效變換和編碼技術(shù)重新格式化其余的數(shù)據(jù)。
更具體地講,編碼器30包括一個幀序重排緩沖器32,幀序重排緩沖器32接收一個或多個視頻幀的一個序列的預壓縮數(shù)據(jù),并在一個用于編碼的適當?shù)男蛄兄兄匦陆o幀排序。重排序的幀序列一般與其中產(chǎn)生出幀并顯示該幀的序列不同。編碼器30將每個存儲的幀分配到一個對應(yīng)的組,稱為圖像組(GOP),并且把每個幀標記為一個內(nèi)(Ⅰ)幀(intra frame)或非內(nèi)(non-Ⅰ)幀。例如,每個GOP可以包括三個Ⅰ幀和十二個non-Ⅰ幀,總共十五個幀。編碼器30總是編碼一個Ⅰ幀的宏數(shù)據(jù)塊,而不考慮其它的幀,但是可以并且通常的確是參考GOP中一個或多個其它幀編碼一個non-Ⅰ幀的宏數(shù)據(jù)塊。然而,編碼器30不參考不同GOP中的一個幀編碼non-Ⅰ幀的宏數(shù)據(jù)塊。
參考圖2和3,在一個Ⅰ幀的編碼過程中,代表Ⅰ幀的預壓縮Y,CB和CR值的8×8數(shù)據(jù)塊(圖1B-1D)通過一個加法器34到達一個離散余弦變換器(DCT)36,DCT36將像素值的這些數(shù)據(jù)塊變換成一個DC(零頻率)變換值D00和六十三個AC(非零頻率)變換值D01-D77的對應(yīng)8×8數(shù)據(jù)塊。參考圖3,這些DCT變換值排列在一個8×8變換數(shù)據(jù)塊37中,它對應(yīng)于預壓縮像素值的一個數(shù)據(jù)塊,例如,圖1B-1D的預壓縮數(shù)據(jù)塊中的一個。例如,數(shù)據(jù)塊37可以包括對應(yīng)于圖1B的預壓縮數(shù)據(jù)塊22a中預壓縮亮度值Y(0,0)A-Y(7,7)A的亮度變換值DY00-DY77。此外,由于編碼器30不使用加法器34編碼Ⅰ幀,因而預壓縮Y,CB和CR值通過加法器34而不與任何其它值相加。但是,如下面將討論的,編碼器30使用加法器34運動編碼non-Ⅰ幀的宏數(shù)據(jù)塊。
參考圖2和4,量化器和折線掃描器38把來自DCT36的每個變換值D限制到各自的最大值,并且以一種折線方式在各自路徑40和42上提供量化的AC和DC變換值。圖4是一個量化器和折線掃描器38能夠?qū)崿F(xiàn)的一種折線掃描方式43的示例。更具體地講,量化器和折線掃描器38以指定的順序在各自路徑40和42上提供來自變換數(shù)據(jù)塊37(圖3)的變換值D。也就是說,量化器和折線掃描器38首先在路徑42上提供“0”位置上的變換值D,即,D00。接著,量化器和掃描器38在路徑40上提供“1”位置上的變換值D,即,D01。然后,量化器和掃描器38在路徑40上提供“2”位置上的變換值D,即,D10,以此類推,直到最后它在路徑40上提供“63”位置上的變換值D,即,D77。這樣的折線掃描方式減少了代表編碼圖像數(shù)據(jù)所需的比特數(shù),因而提高了編碼器30的編碼效率。盡管討論了一種特定的折線掃描方式,但量化器和掃描器38可以根據(jù)編碼技術(shù)和編碼的圖形類型使用其它掃描圖形。
再參考圖2,一個預測編碼器44預測地編碼DC變換值,并且一個可變長度編碼器46把量化AC變換值和量化及預測編碼的DC變換值轉(zhuǎn)換成霍夫曼碼之類的可變長度碼。這些代碼形成了代表已編碼的Ⅰ幀像素值的編碼數(shù)據(jù)。
一個發(fā)送緩沖器48暫存這些代碼,以便能夠把編碼數(shù)據(jù)同步發(fā)送到一個解碼器(以下結(jié)合圖5討論)。另外,如果準備存儲編碼數(shù)據(jù)而不是發(fā)送,則編碼器46可以把可變長度碼直接提供到一個CD-ROM之類的存儲介質(zhì)。
一個速率控制器50保證通常以固定速率發(fā)送編碼幀數(shù)據(jù)的發(fā)送緩沖器48不會上溢或清空,即,下溢。如果產(chǎn)生這兩種情況的任何之一都可能在編碼數(shù)據(jù)流中導致錯誤。例如,如果緩沖器48上溢,將丟失來自編碼器46的數(shù)據(jù)。因此,速率控制器50利用反饋,根據(jù)發(fā)送緩沖器48的充滿度而調(diào)節(jié)量化器和折線掃描器38使用的量化比例因數(shù)。具體地講,緩沖器48越滿,控制器50使比例因數(shù)越大,編碼器46產(chǎn)生的數(shù)據(jù)比特越少。相反,緩沖器48越空,控制器50使比例因數(shù)越小,編碼器46產(chǎn)生的數(shù)據(jù)比特越多。這種連續(xù)調(diào)節(jié)保證了緩沖器48既不會上溢也不會下溢。
還是參考圖2,編碼器30利用一個去量化器和逆折線掃描器52,一個逆DCT54,一個加法器56,一個基準幀緩沖器58,和一個運動預測器60運動編碼non-Ⅰ幀的宏數(shù)據(jù)塊。
圖5是一個現(xiàn)有MPEG解壓縮器62的方框圖,解壓縮器62通常稱為解碼器并且可以對圖2的編碼器30編碼的幀解碼。
參考圖5和6,對于Ⅰ幀和不是運動預測的non-Ⅰ幀的宏數(shù)據(jù)塊,用一個可變長度解碼器64解碼從編碼器30接收的可變長度碼。一個預測解碼器66解碼預測編碼的DC變換值,和一個與圖2的去量化器和逆掃描器52類似或相同的去量化器和逆折線掃描器67去量化和重排解碼的AC和DC變換值。一個與圖2的逆DCT 54類似或相同的逆DCT68將去量化變換值變換為逆變換(IDCT)值,即,復原像素值。圖6是逆變換值100-I77的一個8×8逆變換數(shù)據(jù)塊70,它是逆DCT68從變換值D00-D77的數(shù)據(jù)塊37(圖3)產(chǎn)生的。例如,如果數(shù)據(jù)塊37對應(yīng)于預壓縮亮度值YA的數(shù)據(jù)塊22a(圖1B),那么逆變換值100-I77是8×8數(shù)據(jù)塊A(圖1)中的像素的解碼亮度值。但是,由于量化和去量化造成的信息丟失,逆變換值Ⅰ通常與它們代表的對應(yīng)預壓縮像素值不同。幸好,這些丟失一般很少而不會對解碼視頻幀造成可見劣變。
仍然參考圖5,來自逆DCT68的解碼像素值通過一個加法器72——在如以下討論的non-Ⅰ幀的運動預測宏數(shù)據(jù)塊的解碼期間使用的——進入一個幀序重排緩沖器74,幀序重排緩沖器74存儲解碼幀,并以在視頻顯示單元76上顯示的適當順序排列。如果一個解碼幀也被用作運動預測目的的基準幀,那么該解碼幀也被存儲在基準幀緩沖器78中。
解碼器62利用運動內(nèi)插器80,預測編碼器66,和基準幀緩沖器78解碼non-Ⅰ幀的運動編碼宏數(shù)據(jù)塊。
參考圖2和5,盡管被描述為包括多個功能電路模塊,但可用硬件,軟件或它們的組合來實現(xiàn)編碼器30和解碼器62。例如,設(shè)計者經(jīng)常用執(zhí)行上述電路塊的各個功能的各自的處理器實現(xiàn)編碼器30和解碼器62。
圖2和5的MPEG編碼器30和MPEG解碼器62、運動編碼和解碼以及通常的MPEG標準的更詳細的討論分別存在于許多出版的文獻中,包括Peter D.Symes,McGraw-Hill在1998年所寫的“視頻壓縮”,該文獻結(jié)合于此作為參考。此外,還有許多已知的基于數(shù)據(jù)塊的壓縮技術(shù)可用于編碼和解碼視頻幀和靜止圖像。離散余弦變換和離散余弦反變換下面的方程式給出了2-D DCT F(v,u)1)F(v,u)=2NC(v)C(u)Σy=0N-1Σx=0N-1f(y,x)cos((2x+1)vΠ16)cos((2x+1)uΠ16)]]>C(v)=12]]>對于v=0,C(v)=1否則C(u)=12]]>對于u=0,C(u)=1否則其中v和u分別是對應(yīng)變換數(shù)據(jù)塊的行和列。例如,如果F(v,u)代表變換值的數(shù)據(jù)塊37(圖3),那么F(1,3)=D13。類似地,f(y,x)是對應(yīng)預壓縮數(shù)據(jù)塊的行y,列x中的像素值。例如,如果f(y,x)代表預壓縮亮度值的數(shù)據(jù)塊22a(圖1B),那么f(0,0)=Y(0,0)A。因此,每個變換值F(v,u)取決于對應(yīng)預壓縮數(shù)據(jù)塊中的所有像素值f(y,x)。
下面的方程式給出了F(v,u)的2-D矩陣形式2)F(v,u)=f·Rvu其中f是一個包括像素值f(y,x)的2-D矩陣,Rvu是一個可以從方程式(1)計算出的并且對于每個對應(yīng)的座標對v和u是唯一的2-D矩陣。
下面的方程式給出IDCT f(y,x),它只是DCT F(v,u)的逆變換3)f(y,x)=2NΣv=0N-1Σu=0N-1C(v)C(u)F(v,u)cos((2y+1)vΠ2N)cos((2x+1)uΠ2N)]]>C(u)=12]]>對于u=0,C(u)=1否則C(v)=12]]>對于v=0,C(v)=1否則其中y和x分別是逆變換數(shù)據(jù)塊的行和列。例如,如果f(y,x)代表逆變換值的數(shù)據(jù)塊70(圖6),那么f(7,4)=I74。
下面方程式給出了f(y,x)的2-D矩陣形成4)f(y,x)=F·Ryx其中F是包括變換值F(v,u)的一個2-D矩陣,Ryx是一個可以從方程式(3)計算出的并且對于每個對應(yīng)座標對y和x是唯一的一個2-D矩陣。
為了簡化方程式(3)和(4)的2-D IDCT,可以將f(y,x)的每個分別的行表示為一個1-D變換,并把f(y,x)作為一系列1-D IDCT計算。下面的方程式給出了1-D IDCT5)fy(x)=2NΣu=0N-1C(u)Fv(u)cos((2x+1)uΠ2N)|x=0,...,7y=v=rcw#]]>為了舉例說明,討論利用1-D IDCT方程式(5)從數(shù)據(jù)塊37的變換值D00-D77(圖3)計算數(shù)據(jù)塊70的逆變換值I00-I77(圖6)。下面的方程式給出了各自以數(shù)學形式表示的8×8數(shù)據(jù)塊37和70的8×8矩陣F和f6)F=F(v,u)F7(u):F0(u)=F1(u)D07D06D05D04D03D02D01D00D17D16D15D14D13D12D11D10........................D77D76D75D74D73D72D71D70]]>7)f=f(y,x)f7(x):f0(x)=f1(x)I07I06I05I04I03I02I01I00I17I16I15I14I13I12I11I10........................I77I76I75I74I73I72I71I70]]>F0(u)-F7(u)是矩陣F的行,因而代表數(shù)據(jù)塊37的各行,f0(x)-f7(x)是矩陣f的行,因而代表數(shù)據(jù)塊70的各行。
首先,根據(jù)下面的方程式計算用1-D變換f′v(x)表示的中間逆變換值I′的中間8×8數(shù)據(jù)塊,下面的方程式是矩陣形式的方程式(5)8)f′0(x)=Ryv·F0(u)R07R06R05R04R03R02R01R00R17R16R15R14R13R12R11R10........................R77R76R75R74R73R72R71R70·D00D01D02D03D04D05D06D07]]>f′1(x)=Ryv·F1(u):
.
f′7(x)=Ryv·F7(u)Ryv是一個可以從方程式(5)計算的并且對于每個對應(yīng)的座標對y和v是唯一的2-D矩陣。因此,下面的方程式給出了中間矩陣f′ 為了計算數(shù)據(jù)塊70(圖6)的逆變換值I00-I77的最后矩陣f,轉(zhuǎn)置中間矩陣f′,以獲得f′T,用f′T的行f′T0(x)-f′T7(x)替代方程式(8)中的變換行F0(u)-F7(u),然后重新計算方程式(8)。下面的方程式給出了f′T 方程式(10)中的逆變換值I′的下標座標與方程式(9)中的相同,以清楚地顯示出該轉(zhuǎn)置。即,方程式(10)的I′10對于方程式(9)的I′10。因此,為了對一個矩陣轉(zhuǎn)置,只要把矩陣中的行與對應(yīng)的列互換。例如,f′的第一行成為f′T的第一列,f′的第二行成為f′T的第二列,等等。下面的方程式示出了逆變換矩陣f的計算 f′1(x)=Ryv·f′T1(x)f′7(x)=Ryv·f′T7(x)因此,方程式(11)給出了數(shù)據(jù)塊70(圖6)的逆變換值I00-I77。
參考方程式(8)-(11),盡管將2-D IDCT分解成兩個1-D IDCT系列而簡化其數(shù)學運算,但是這些方程式仍然涉及了用于將變換值的8×8數(shù)據(jù)塊37(圖3)轉(zhuǎn)換成逆變換值的8×8數(shù)據(jù)塊70(圖7)的大量8-點-向量乘8-點-向量乘法。例如,一個8-值矩陣行乘8-值矩陣列(例如,方程式(11))是一個8-點-向量乘法。不幸的是,處理器一般需要相對復雜的結(jié)構(gòu)來處理這種大小的向量乘法。Masaki的IDCT技術(shù)如他的論文中所述,Masaki通過將8-點-向量乘法分解成4-點-向量乘法進一步簡化了1-D IDCT方程式(8)-(11)。這將實現(xiàn)該處理器具有比較簡單的結(jié)構(gòu),而能夠?qū)⒆儞Q值的數(shù)據(jù)塊37(圖3)轉(zhuǎn)換成逆變換值的數(shù)據(jù)塊70(圖7)。
下面的方程式給出了可以用其從方程式(9)的矩陣計算出中間逆變換值I′00-I′77的第一行的偶數(shù)和奇數(shù)Masaki值de和do的第一行12)QDe=de00de01de02de03·Me3Me2Me1Me0Me7Me6Me5Me4MebMeaMe9Me8MefMeeMedMec·Do0Do2Do4Do6]]>PDo=do00do01do02do03=Mo3Mo2Mo1Mo0Mo7Mo6Mo5Mo4MobMoaMo9Mo8MefMeeMedMec·Do1Do3Do5Do7]]>D00-D07是變換數(shù)據(jù)塊37的第一行中的值,Me0-Mef是偶數(shù)Masaki系數(shù),Mo0-Mof是奇數(shù)Masaki系數(shù)。在Masaki論文中給出了偶數(shù)和奇數(shù)Masaki系數(shù)值,結(jié)合于此作為參考。可以用相同的方式計算Masaki值的剩余行——七行,對應(yīng)數(shù)據(jù)塊37中的變換值的每一剩余行。
根據(jù)下面的方程式可以從方程式(12)的偶數(shù)和奇數(shù)Masaki值de和do計算中間逆變換值I′00-I′0713)I00′I01′I02′I03′=1/2PDo+1/2QDe=(PDo+QDe)2]]>I07′I06′I05′I04′=1/2PDo-1/2QDe=(PDo-QDe)2]]>以相似的方式計算中間逆變換值I′的剩余行。
圖7是通過由方程式(13)代表的Masaki方程組產(chǎn)生的值I′的數(shù)據(jù)塊82。因此,每一行中的最后四個值,即,I′y4-I′y7是相反的順序。
參考圖8,通過以適當?shù)捻樞蚍胖肐′y4-I′y7可以產(chǎn)生值I′的恰當排序的數(shù)據(jù)塊84。不幸的是,這種重排序要花費相當長的處理時間。
接下來,參考圖9,用結(jié)合方程式(9)和(10)說明的相同的方式,可以通過對數(shù)據(jù)塊84(圖8)進行轉(zhuǎn)置而產(chǎn)生轉(zhuǎn)置數(shù)據(jù)塊86,并且用轉(zhuǎn)置數(shù)據(jù)塊86的對應(yīng)行替代方程式(12)中的變換值D00-D07的行,計算最終逆變換值Iyx。
但是參考圖10,方程式(12)需要將變換值D的行分離成偶數(shù)組D00,D02,D04和D06和奇數(shù)組D01,D03,D05和D07。因此,也必須將中間逆變換值I′的行分離成相應(yīng)的偶數(shù)組I′y0,I′y2,I′y4和I′y6,以及奇數(shù)組I′y1,I′y3,I′y5和I′y7。因此,要執(zhí)行對于數(shù)據(jù)塊86(圖9)的這種偶數(shù)-奇數(shù)分離,以產(chǎn)生中間值I′的偶數(shù)-奇數(shù)分離的數(shù)據(jù)塊88。用數(shù)據(jù)塊88的對應(yīng)的行替代方程式(12)中的變換值D00-D07的行,可以產(chǎn)生中間Masaki向量P′Do和 Q′De,和根據(jù)下面的方程式產(chǎn)生最終逆變換值I14)I00I01I02I03=1/2P′Do+1/2Q′De=(P′Do+Q′De)2]]>I07I06I05I04=1/2P′Do-1/2Q′De=(P′Do-D′De)2]]>參考圖11,針s對中間Masaki向量的每一集而應(yīng)用方程式(14)產(chǎn)生一個數(shù)據(jù)塊90,數(shù)據(jù)塊90中每一行中的最后四個逆變換值Iy4-Iy7是反順序的。因此,通過以適當順序放置Iy4-Iy7可以產(chǎn)生恰當排序的數(shù)據(jù)塊70(圖3)。不幸的是,這種重排序要花費相當長的處理時間。
因此,盡管Masaki技術(shù)可以通過將8-點-向量乘法分解成4-點-向量乘法而簡化處理器構(gòu)造,但是由于Masaki技術(shù)的耗費時間的數(shù)據(jù)塊轉(zhuǎn)置和重排序,它一般需要比比8-點技術(shù)更長的處理時間。
根據(jù)本發(fā)明的一個方面,一種圖像解碼器包括一個存儲器和一個耦合到存儲器的處理器。處理器可操作地將中間值的一列作為中間值的一行存儲在存儲器中,組合存儲的行內(nèi)的中間值,以產(chǎn)生得到值的一列,并將得到值作為得到值的一行存儲在存儲器中。
這樣一種圖像解碼器可以把Masaki值存儲在一個存儲寄存器中,從而當處理器組合這些值以產(chǎn)生中間逆變換值時,它能夠以轉(zhuǎn)置的方式存儲這些值。因此,這樣一種圖像解碼器通過把值I′的產(chǎn)生和轉(zhuǎn)置組合在一個單一步驟中而減少了圖像處理時間。
在本發(fā)明的一個有關(guān)方面,中間值包括一個第一偶數(shù)位置偶數(shù)中間值,和一個奇數(shù)位置偶數(shù)中間值,一個第二偶數(shù)位置偶數(shù)中間值,一個第一偶數(shù)位置奇數(shù)中間值,一個奇數(shù)位置奇數(shù)中間值,和一個第二偶數(shù)位置奇數(shù)中間值。處理器把第一偶數(shù)位置偶數(shù)中間值和第一偶數(shù)位置奇數(shù)中間值存儲在第一對相鄰存儲單元中。處理器也把第二偶數(shù)位置偶數(shù)中間值和第二偶數(shù)位置奇數(shù)中間值存儲在第二對相鄰存儲單元中,第二對存儲單元與第一對存儲單元相鄰。
這樣一種圖像解碼器可以將Masaki值存儲在一個存儲寄存器中,從而當處理器組合這些值以產(chǎn)生中間逆變換值時,它可以以轉(zhuǎn)置和偶-奇分離的方式存儲這些值。因此,這種圖像解碼器通過把值I′的產(chǎn)生、轉(zhuǎn)置和偶-奇分離組合在一個單一步驟中而減少了圖像處理時間。
圖1A是圖像中像素的慣用宏數(shù)據(jù)塊的示意圖;圖1B是分別對應(yīng)于圖1A的宏數(shù)據(jù)塊中的像素的預壓縮亮度值的慣用數(shù)據(jù)塊的示意圖;圖1C和1D是分別對應(yīng)于圖1A的宏數(shù)據(jù)塊中的像素組的預壓縮色度值的慣用數(shù)據(jù)塊的示意圖;圖2是一個慣用MPEG編碼器的方框圖;圖3是一個圖2編碼器產(chǎn)生的變換值數(shù)據(jù)塊;圖4是圖2的量化器和折線掃描器實現(xiàn)的慣用折線掃描方式;圖5是一種慣用MPEG解碼器的方框圖;圖6是圖5的解碼器產(chǎn)生的逆變換值數(shù)據(jù)塊;圖7是根據(jù)Masaki技術(shù)的中間逆變換值數(shù)據(jù)塊;圖8是一個具有順序排列的行中的圖7的中間逆變換值的數(shù)據(jù)塊;圖9是一個具有轉(zhuǎn)置排列的圖8的中間逆變換值的數(shù)據(jù)塊;圖10是一個具有以偶-奇分離排列的圖9的中間逆變換值的數(shù)據(jù)塊;圖11是根據(jù)Masaki技術(shù)的最終逆變換值的數(shù)據(jù)塊;圖12是根據(jù)本發(fā)明的一個實施例的圖像解碼器的方框圖;圖13是根據(jù)本發(fā)明的一個實施例的圖12的處理器的方框圖;圖14A示出了根據(jù)本發(fā)明的一個實施例的圖13的處理器執(zhí)行的成對加法運算;圖14B示出了根據(jù)本發(fā)明的一個實施例的圖13的處理器執(zhí)行的成對減法運算;圖15示出了根據(jù)本發(fā)明的一個實施例的圖13的處理器執(zhí)行的寄存器映射功能;圖16示出了根據(jù)本發(fā)明的一個實施例的圖13的處理器執(zhí)行的雙-4-點向量乘法功能;圖17示出了根據(jù)本發(fā)明的一個實施例的圖13的處理器執(zhí)行的隱含矩陣轉(zhuǎn)置功能;和圖18示出了根據(jù)本發(fā)明的一個實施例的圖13的處理器執(zhí)行的隱含矩陣轉(zhuǎn)置和偶奇分離功能。
圖12是根據(jù)本發(fā)明的一個實施例的一個圖像解碼器100的方框圖。解碼器100通過如同以下結(jié)合圖17所述的在同一步驟中計算和轉(zhuǎn)置中間逆變換值I′顯著地減少了Masaki IDCT時間。即,解碼器100直接從方程式(13)產(chǎn)生轉(zhuǎn)置的值I′的數(shù)據(jù)塊86(圖9),因而省略了數(shù)據(jù)塊82(圖7)和84(圖8)的產(chǎn)生。解碼器100通過如同以下結(jié)合圖18所述的在同一步驟中計算、轉(zhuǎn)置和偶-奇分離中間逆變換值I′可以進一步減少Masaki的IDCT轉(zhuǎn)換時間。即,解碼器100直接從方程式(13)產(chǎn)生轉(zhuǎn)置的值I′的數(shù)據(jù)塊88(圖10),因而省略了數(shù)據(jù)塊82,84和86的產(chǎn)生。
解碼器100包括一個輸入緩沖器102,一個處理器單元104,和一個任選幀緩沖器106。輸入緩沖器102接收和存儲代表一個或多個編碼圖像的編碼數(shù)據(jù)。處理器單元104包括一個用于解碼該已編碼圖像數(shù)據(jù)的處理器108,并且包括一個存儲器110。如果接收的編碼圖像數(shù)據(jù)代表視頻幀,那么解碼器100包括用于把來自處理單元104的解碼幀以適當?shù)拇鎯蝻@示順序存儲的任選幀緩沖器106。
圖13是根據(jù)本發(fā)明的一個實施例的處理器108(圖12)的計算單元112的方框圖。單元112包括兩個相同的計算組件114a和114b,它們一般是并行操作的。為了簡潔,僅討論組件114a的結(jié)構(gòu)和操作,應(yīng)當知道組件114b的結(jié)構(gòu)和操作是相似的。此外,組件114a和114b可以包括為了簡潔而從圖13中省略的附屬電路。
在一個實施例中,組件114a包括一個整數(shù)計算單元(I-單元)116a,和一個整數(shù)浮點圖形計算單元(IFG-單元)118a。I-單元116a執(zhí)行存儲器裝載和存儲器存儲操作,和有關(guān)32位整數(shù)據(jù)的簡單算術(shù)運算。IFG-單元118a進行有關(guān)64位數(shù)據(jù)的操作,并能夠執(zhí)行適用于多媒體和3-D圖形應(yīng)用的復數(shù)數(shù)學運算。組件114a還包括一個具有三十二個64位寄存器Reg0-Reg31的寄存器堆120a。I-單元116a和IFG-單元118a可以存取這些寄存器中的每一個,作為各自的上和下32位分區(qū),并且IFG-單元118a也可以存取這些寄存器中的每一個作為一個單一64位分區(qū)。I-單元116a經(jīng)過32位總線124a和126a接收來自寄存器堆120a的數(shù)據(jù),和經(jīng)過一個32位總線128a向寄存器堆120a提供數(shù)據(jù)。類似地,IFG-單元118a經(jīng)過64位總線130a,132a和134a接收來自存儲器堆120a的數(shù)據(jù),并經(jīng)過64位總線135a向寄存器堆120a提供數(shù)據(jù)。
仍然參考圖13,在另一個實施例中,組件114a包括一個128位分區(qū)的長常數(shù)(PLC)寄存器136a,和一個128位分區(qū)的長變量(PLV)寄存器138a。PLC和PLV寄存器136a和138a提高了組件114a的計算能力,而不顯著增大它的尺寸。寄存器136a和138a分別經(jīng)過總線132a和134a接收來自寄存器堆120a的數(shù)據(jù),和分別經(jīng)過128位總線140a和142a向IFG單元118a提供數(shù)據(jù)。在IFG-單元118a在致使IFG-單元118a產(chǎn)生一個32位或64位結(jié)果并把結(jié)果存儲在寄存器Reg0-Reg31之一中的特定多媒體指令的執(zhí)行過程中,它一般對存儲在寄存器136a和138a中的數(shù)據(jù)進行操作。此外,這些特定指令可以使寄存器堆120a修改寄存器138a的內(nèi)容。
在一個實施例中,在存儲器108(圖12)與PLC和PLV寄存器136a和138a之間沒有直接通路。因此,組件114a在IFG-單元118a對它們的內(nèi)容操作之前從寄存器堆120a初始化這些寄存器。盡管初始化這些寄存器所需的額外時鐘周期可能看上去是低效率的,但大部分多媒體應(yīng)用程序通過在重新裝載寄存器136a和138a之前將存儲在這些寄存器中的數(shù)據(jù)用于幾種不同的操作而使這種額外開銷減到最小。此外,一些指令致使組件114a在執(zhí)行另一種操作的同時更新PLV寄存器138a,因而省去了裝載或重新裝載寄存器138a所需的額外時鐘周期。
圖14A示出了根據(jù)本發(fā)明的一個實施例的圖13的組件114a能夠執(zhí)行的成對加法運算。為了舉例說明,寄存器堆120a的Reg0(圖13)存儲四個16位的值a-d,而Reg1存儲四個16位的值e-h。IFG-單元118a分別相加Reg0和Reg1的相鄰分區(qū)的內(nèi)容,并且在一個時鐘周期中將得到的和裝載到Reg2的對應(yīng)16位分區(qū)中。具體地講,單元118a將a和b相加,并把結(jié)果a+b裝載到Reg2的第一16位分區(qū)中。同樣地,單元118a將c和d,e和f,以及g和h相加,并把得到的和c+d,e+f和g+h分別裝載到Reg2的第二,第三和第四分區(qū)中。此外,單元118a可以在把它們存儲到Reg2的對應(yīng)分區(qū)中之前用2除每個得到的和a+b,c+d,e+f和g+h.。單元118a將每個得到的和向右移動一位,以執(zhí)行這個除法。
圖14B示出了根據(jù)本發(fā)明的一個實施例的圖13的組件114a能夠執(zhí)行的成對減法運算。Reg0存儲四個16位的值a-d,而Reg1存儲四個16位的值e-h。IFG-單元118a從相鄰分區(qū)的內(nèi)容減去一個分區(qū)的內(nèi)容,并在一個時鐘周期中將所得的差裝載到Reg2的對應(yīng)16位分區(qū)中。具體地講,單元118a從a減去b,并把結(jié)果a-b裝載到Reg2的第一16位分區(qū)中。類似地,單元118a從c減去d,從e減去f,和從g減去h,并分別把所得的差a-b,c-d,e-f和g-h裝載到Reg2的第一,第二,第三和第四分區(qū)中。此外,單元118a可以在把它們存儲在Reg2的對應(yīng)分區(qū)之前,可以用2除每個所得的差a-b,c-d,e-f和g-h。單元118a將所得的差向右移動一位,以執(zhí)行這個除法。
參考圖14A和14B,盡管Reg0,Reg1和Reg2被示為分割成16位的分區(qū),但在其它實施例中,IFG-單元118a在具有其它尺寸的分區(qū)上執(zhí)行成對加法和減法運算。例如,可以把Reg0,Reg1和Reg2分割成八個8位的分區(qū),兩個32位的分區(qū),或十六個4位的分區(qū)。此外,IFG-單元118a可以利用不是Reg0,Reg1和Reg2的寄存器執(zhí)行成對加法和減法運算。
如以下結(jié)合圖16-18討論的,成對加法和減法以及用2除的特征使得IFG-單元118a能夠如方程式(13)和(14)中所示,從Masaki值計算中間和最終逆變換值I′和I。
圖15示出了根據(jù)本發(fā)明的一個實施例的圖13的組件114a能夠執(zhí)行的映射操作。例如,一個源寄存器Reg0被分割成八個8位的分區(qū)0-7,并且包含組件114a要映射到一個目的寄存器Reg1的數(shù)據(jù),目的寄存器Reg1也被分割成八個8位的分區(qū)0-7。一個控制寄存器Reg2的一個32位的分區(qū)(為了簡明起見,僅示出一個32位分區(qū))被分割成八個4位的分區(qū)0-7,并且包含控制從源寄存器Reg0到目的寄存器Reg1的數(shù)據(jù)映射的標識值。具體地講,控制寄存器Reg2的每個分區(qū)對應(yīng)于目的寄存器Reg1的一個對應(yīng)分區(qū),并且包含一個標識目的寄存器Reg1的對應(yīng)分區(qū)要從其接收數(shù)據(jù)的源寄存器Reg0的分區(qū)的對應(yīng)標識值。例如,控制寄存器Reg2的分區(qū)0對應(yīng)于目的寄存器Reg1的分區(qū)0,并且包含一個標識值“2”。因此,如這兩個分區(qū)之間的對應(yīng)指針所指示,組件114a把源寄存器Reg0的分區(qū)2的內(nèi)容裝載到目的寄存器Reg1的分區(qū)0中。類似地,控制控制寄存器Reg2的分區(qū)1對應(yīng)于目的寄存器Reg1的分區(qū)1,并且包含標識值“5”。因此,組件114a把源寄存器Reg0的分區(qū)5的內(nèi)容裝載到目的寄存器Reg1的分區(qū)1。組件114a也可以把源分區(qū)之一的內(nèi)容裝載到多個目的分區(qū)中。例如,控制寄存器Reg2的分區(qū)3和4都包括標識值“6”。因此,組件114a把源寄存器Reg0的分區(qū)6的內(nèi)容裝載到目的寄存器Reg1的分區(qū)3和4中。此外,組件114a可能不把一個源分區(qū)的內(nèi)容裝載到任何目的分區(qū)。例如,沒有控制寄存器Reg2的分區(qū)包含標識值“7”。因此,組件114a不把源寄存器Reg0的分區(qū)7的內(nèi)容裝載到目的寄存器Reg1的一個分區(qū)中。
如以下結(jié)合圖17-18所討論的,組件114a執(zhí)行執(zhí)行映射操作以給數(shù)據(jù)塊90(圖11)中的逆變換值I重新排序,獲得數(shù)據(jù)塊70(圖3)。
圖16示出了根據(jù)本發(fā)明的一個實施例的組件114a(圖13)可以執(zhí)行的4點向量乘積運算。組件114a把兩個4點向量從寄存器堆120a裝載到PLC寄存器136a,并且把兩個4點向量裝載到寄存器PLV138a,其中每個向量值是16位。例如,在第一時鐘周期中,組件114a把數(shù)據(jù)塊37(圖3)中的變換值的偶-奇分離第一行D00,D02,D04,D06,D01,D03,D05和D07如圖所示地裝載到PLC寄存器136a中。在一個第二時鐘周期中,組件114a把Masaki的四個16位偶常數(shù)的第一行(方程式(12))和Masaki的四個16位奇常數(shù)的第一行如圖所示地裝載到PLV寄存器138a中。在一個第三時鐘周期,IFG-單元118a把寄存器136a和138a的每個對應(yīng)的分區(qū)對的內(nèi)容相乘,相加對應(yīng)的乘積,并把結(jié)果裝載到Reg0的32位分區(qū)中(為了簡潔,僅示出一個32位分區(qū))。即,單元118a將D00乘以Me3,D02乘以Me2,D04乘以Me1,D06乘以Me0,D01乘以M03,D03乘以M02,D05乘以Mo1,和D07乘以M00,相加乘積D00×Me3,D02×Me2,D04×Me1,D06×Me0以產(chǎn)生偶數(shù)Masaki值de00,相加乘積D01×M03,D03×M02,D05×Mo1和D07×Mo0以產(chǎn)生奇數(shù)Masaki值do00,并把de00和do00裝載到Reg0的32位分區(qū)的各自的一半中。如下面結(jié)合圖17和18所討論的,單元118a可以在Reg0上利用成對加法和減法以及用2除運算(圖14A-14B),產(chǎn)生方程式(13)的中間逆變換值I′00和I′07。
參考圖13和16,由于組件114a和114b都可以同時進行四個4點向量乘法運算,因而,根據(jù)本發(fā)明的一個實施例,計算單元112可以在五個時鐘周期中計算兩行變換值D的QDe和PDo(方程式(13))。在第一時鐘周期中,組件114a和114b分別把變換值D的第一偶-奇分離行裝載到PLC寄存器136a,和把變換值的第二偶-奇分離行裝載到PLC寄存器136b。(處理器108利用映射操作或如下面討論的那樣,偶-奇分離變換值。)在第二時鐘周期中,組件114a和114b分別將偶數(shù)和奇數(shù)Masaki常數(shù)的第一行(Me0-Me3和Mo0-M03)裝載到PLV寄存器138a和138b中,并且如前面所討論的,分別計算de00和do00,以及de10和do10。在第三時鐘周期中,組件114a和114b把偶數(shù)和奇數(shù)Masaki常數(shù)的第二行(Me4-Me7和Mo4-Mo7)分別裝載到PLV寄存器138a和138b中,并分別計算de01和do01,以及de11和do11。在第四時鐘周期中,組件114a和114b把偶數(shù)和奇數(shù)Masaki常數(shù)的第三行(Me8-Meb和Mo8-Mob)分別裝載到PLV寄存器138a和138b中,并分別計算de02和do02,以及de12和do12。在第五時鐘周期中,組件114a和114b把偶數(shù)和奇數(shù)Masaki常數(shù)的第四行(Mec-Mef和Moc-Mof)分別裝載到PLV寄存器138a和138b中,并分別計算de03和do03,以及de13和do13。因而,計算單元112可以比Masaki說明的現(xiàn)有處理電路更快地計算QDe和PDo。
在一個實施例中,為了節(jié)省計算QDe和PDo期間的處理時間,處理器108(圖12)在圖像數(shù)據(jù)的逆折線掃描期間,為了與方程式(12)一致,偶-奇分離變換數(shù)據(jù)塊37(圖3)的行。例如,處理器108當它從輸入緩沖器102讀出這一行時,以偶-奇分離的順序存儲第一變換行,即,D00,D02,D04,D06,D01,D03,D05和D07。因此,處理器108實現(xiàn)了一種以偶-奇分離順序存儲數(shù)據(jù)塊37的行的逆折線掃描。由于處理器108執(zhí)行了逆折線掃描,因此偶-奇分離技術(shù)并不增加額外的處理時間。相反,映射的執(zhí)行的確增加處理時間。
圖17和18示出了用于存儲Masaki值從而使計算單元112能夠直接從單元112對Masaki值進行的成對加法和減法以及用2除運算產(chǎn)生轉(zhuǎn)置數(shù)據(jù)塊86(圖9)或轉(zhuǎn)置和偶-奇分離的數(shù)據(jù)塊88(圖10)的技術(shù)。因此,這些技術(shù)與用分離步驟進行重排序(分別重排序圖7和8的數(shù)據(jù)塊82和84)、轉(zhuǎn)置和偶-奇分離的現(xiàn)有技術(shù)相比節(jié)省了大量的處理時間。
圖17示出了根據(jù)本發(fā)明的一個實施例的計算單元112執(zhí)行的隱含數(shù)據(jù)塊轉(zhuǎn)置。如前面所討論的,這種隱含轉(zhuǎn)置使得單元112能夠直接從成對加法和減法以及用2除運算(方程式(13)和(14))產(chǎn)生值I′的轉(zhuǎn)置數(shù)據(jù)塊86(圖9)。方括號代表寄存器堆120a的64位寄存器,圓括號代表這些寄存器的各32位分區(qū)。此外,Masaki值的雙下標指示在它們自身行內(nèi)的它們的位置,和標識它們從中產(chǎn)生的變換值D的行。例如,de00是在從數(shù)據(jù)塊37(圖3)的第一行變換值D00-D07產(chǎn)生的Masaki值的行中的第一偶數(shù)Masaki值,即QDe。同樣地,de10是從數(shù)據(jù)塊37的第二行變換值D10-D17產(chǎn)生的Masaki值的行中的第一偶數(shù)Masaki值。
仍然參考圖17,計算單元112通過把由4點向量乘法運算產(chǎn)生的de和do的組合存儲在寄存器Reg的適當32位分區(qū)中隱含地產(chǎn)生轉(zhuǎn)置數(shù)據(jù)塊86(圖9)。具體地講,如前面結(jié)合圖16所討論的,組件114a和114b把對應(yīng)的de和do對存儲在各自的32位寄存器分區(qū)中。一個對的半和(由成對加法并用2除運算產(chǎn)生的)產(chǎn)生一個中間或最終逆變換值,同一對的半差(由成對減法并用2除運算產(chǎn)生的)產(chǎn)生另一個中間或最終逆變換值。例如,單元112把do00和de00存儲在寄存器Reg0的一個32位分區(qū)170中,并把do10和de10存儲在寄存器Reg0的一個第二分區(qū)172中。因此,它們各自的半和產(chǎn)生I′00和I′10,而它們各自的半差產(chǎn)生I′07和I′17。參考圖9,這些值分別是轉(zhuǎn)置數(shù)據(jù)塊86的第一和最后一行中的第一和第二值I′。由于希望把值存儲在同一寄存器的同一行中,單元112將I′00和I′10存儲在寄存器Reg1的分區(qū)174中,而把I′07和I′17存儲在寄存器Reg2的分區(qū)176中。單元112如圖所示將其它de和do對裝載到分區(qū)中,并且執(zhí)行成對加法和減法并用2除運算,以把所得的中間逆變換值I′存儲到如圖所示的對應(yīng)寄存器中。因此,單元112把轉(zhuǎn)置數(shù)據(jù)塊86的每一半行存儲在對應(yīng)的寄存器中。例如,數(shù)據(jù)塊86的第一行的第一半,即,I′00-I′30存儲在Reg1中。類似地,這個第一行的后半行,即,I′40-I′70存儲在寄存器Reg3中。因此,單元112在產(chǎn)生值I′的相同周期中有效地轉(zhuǎn)置數(shù)據(jù)塊84,以產(chǎn)生數(shù)據(jù)塊86。由于單元112計算和存儲值I′,因而單元112無需額外的周期來進行隱含轉(zhuǎn)置。
接下來,計算單元112映射操作,以偶-奇分離數(shù)據(jù)塊86(圖9)的行,因而產(chǎn)生轉(zhuǎn)置偶-奇分離的數(shù)據(jù)塊88(圖10)。
圖18示出了根據(jù)本發(fā)明的一個實施例的計算單元112執(zhí)行的隱含數(shù)據(jù)塊轉(zhuǎn)置和偶-奇分離。這種隱含轉(zhuǎn)置和偶-奇分離使得單元112能夠直接從成對加法和減法以及用2除運算(方程式(13)和(14))產(chǎn)生值I′的轉(zhuǎn)置和偶-奇分離的數(shù)據(jù)塊88(圖10)。
具體地講,除了在圖17中把Masaki值以不同的順序存儲之外,結(jié)合圖18說明的技術(shù)與前面結(jié)合圖17所述的技術(shù)類似。例如,單元112把do00和de00存儲在Reg0的32位分區(qū)170中,而把do20和de20存儲在Reg0的第二分區(qū)172中。因此,它們各自的半和產(chǎn)生I′00和I′20,而它們各自的半差產(chǎn)生I′07和I′27。參考圖10,這些值分別是轉(zhuǎn)置數(shù)據(jù)塊88的第一和最后行中的第一和第二值I′。由于希望把值存儲在同一寄存器中的同一行中,因而單元112把I′00和I′20存儲在Reg1的分區(qū)174中,而把I′07和I′27存儲在Reg2的分區(qū)176中。單元112如圖所示把其它de和do對存儲在各分區(qū)中,并執(zhí)行成對加法和減法以及用2除運算,以把所得的中間逆變換值I′存儲在如圖所示的對應(yīng)寄存器中。因此,單元112把轉(zhuǎn)置的數(shù)據(jù)塊88的每個半行存儲在一個對應(yīng)的寄存器中。例如,數(shù)據(jù)塊88的第一行的第一半,即,I′00,I′20,I′40和I′60存儲在Reg1中。類似地,第一行的后半行,即,I′10,I′30,I′50和I′70存儲在Reg3中。因此,單元112在產(chǎn)生值I′的相同周期中有效地移和偶-奇分離了數(shù)據(jù)塊84(圖8),以產(chǎn)生數(shù)據(jù)塊88。由于單元112總是計算和存儲值I′,因而單元112無需額外的周期進行隱含轉(zhuǎn)置和偶-奇分離。
參考圖17和18,在計算單元112(圖13)產(chǎn)生了數(shù)據(jù)塊88(圖10)之后,它用數(shù)據(jù)塊88的行替換方程式(12)中的值D的行,并產(chǎn)生了根據(jù)方程式(14)的最終逆變換值的數(shù)據(jù)塊90(圖11)。然后,單元112執(zhí)行映射操作,以重排序數(shù)據(jù)塊90的行,產(chǎn)生數(shù)據(jù)塊37(圖30)的行。然后,處理器108(圖12)將數(shù)據(jù)塊37與解碼的圖像的其它解碼數(shù)據(jù)塊一同存儲。
從上述說明中可以知道,盡管為了說明的目的在這里解釋了本發(fā)明的特定實施例,但可以進行各種修改而不脫離本發(fā)明的精神和范圍。例如,上述技術(shù)可以用來加快DCT的速度。
權(quán)利要求
1.一種圖像解碼器,包括存儲器;和耦合到存儲器的處理器,并且可操作用于把一列中間值作為一行中間值存儲在存儲器中,組合存儲的行中的中間值以產(chǎn)生一列結(jié)果值,和把結(jié)果值作為一行結(jié)果值存儲在存儲器中。
2.根據(jù)權(quán)利要求1所述的圖像解碼器,其中中間值包括Masaki值。
3.根據(jù)權(quán)利要求1所述的圖像處理電路,其中存儲器包括第一和第二存儲單元行;和處理器可操作用于把中間值存儲在第一存儲單元行,和把結(jié)果值存儲在第二存儲單元行。
4.根據(jù)權(quán)利要求1的所述的圖像處理電路,其中處理器可以操作用于產(chǎn)生中間值的列。
5.根據(jù)權(quán)利要求1所述的圖像解碼器,其中中間值包括偶數(shù)位置偶數(shù)中間值,和奇數(shù)位置偶數(shù)中間值,偶數(shù)位置奇數(shù)中間值,和奇數(shù)位置奇數(shù)中間值;行具有多個存儲單元;和處理器可操作用于把偶數(shù)位置偶數(shù)中間值和偶數(shù)位置奇數(shù)中間值存儲在對應(yīng)的相鄰存儲單元中;和把奇數(shù)位置偶數(shù)中間值和奇數(shù)位置奇數(shù)中間值存儲在對應(yīng)的相鄰存儲單元中。
6.根據(jù)權(quán)利要求1所述的圖像解碼器,其中中間值包括偶數(shù)位置偶數(shù)中間值,奇數(shù)位置偶數(shù)中間值,偶數(shù)位置奇數(shù)中間值,和奇數(shù)位置奇數(shù)中間值;行具有多個存儲單元;和處理器可操作用于把偶數(shù)位置偶數(shù)中間值和偶數(shù)位置奇數(shù)中間值存儲在第一對相鄰存儲單元中,和把奇數(shù)位置偶數(shù)中間值和奇數(shù)位置奇數(shù)中間值存儲在第二對相鄰存儲單元中,第二對存儲單元與第一對存儲單元相鄰。
7.根據(jù)權(quán)利要求1所述的圖像解碼器,其中中間值包括第一偶數(shù)位置偶數(shù)中間值,奇數(shù)位置偶數(shù)中間值,第二偶數(shù)位置偶數(shù)中間值,第一偶數(shù)位置奇數(shù)中間值,奇數(shù)位置奇數(shù)中間值,和第二偶數(shù)位置奇數(shù)中間值;行具有多個存儲單元;和處理器可操作用于把第一偶數(shù)位置偶數(shù)中間值和第一偶數(shù)位置奇數(shù)中間值存儲在第一對相鄰存儲單元中,把第二偶數(shù)位置偶數(shù)中間值和第二偶數(shù)位置奇數(shù)中間值存儲在第二對相鄰存儲單元中,第二對存儲單元與第一對存儲單元相鄰,和把奇數(shù)位置偶數(shù)中間值和奇數(shù)位置奇數(shù)中間值存儲在第三對相鄰存儲單元中。
8.根據(jù)權(quán)利要求1所述的圖像解碼器,其中結(jié)果值包括各自的部分逆變換值。
9.一種圖像解碼器,包括第一存儲寄存器;和耦合到寄存器的處理器,并且可操作用于把第一中間值的第一列與第二中間值的第二列組合,以產(chǎn)生一個結(jié)果值集;和把結(jié)果值集存儲在第一存儲寄存器中。
10.根據(jù)權(quán)利要求9所述的圖像解碼器,其中第一中間值包括偶數(shù)Masaki值;和第二中間值包括奇數(shù)Masaki值。
11.根據(jù)權(quán)利要求9所述的圖像處理電路,進一步包括第二存儲寄存器;和其中處理器可以操作用于把第一和第二列的第一和第二中間值存儲在第二存儲寄存器中。
12.根據(jù)權(quán)利要求9所述的圖像處理電路,其中處理器可以操作用于通過把第一中間值加到第二中間值組合第一中間值的第一列和第二中間值的第二列。
13.根據(jù)權(quán)利要求9所述的圖像處理電路,其中處理器可以操作用于通過從第二中間值減去第一中間值組合第一中間值的第一列和第二中間值的第二列。
14.根據(jù)權(quán)利要求9所述的圖像處理電路,其中處理器可以操作用于產(chǎn)生第一中間值的第一列和第二中間值的第二列。
15.一種圖像解碼器,包括具有各自的存儲單元的第一和第二存儲寄存器;和耦合到寄存器的處理器,并且可操作用于把第一中間值集中的每個值存儲在第一存儲寄存器的每隔一個對應(yīng)的存儲單元中,第一中間值的集對應(yīng)于一個初始值的集,把第二中間值集中的每一個值存儲在第一存儲寄存器的剩余存儲單元中,第二中間值的集對應(yīng)于初始值的集,把每個第一中間值與一個占據(jù)一個對應(yīng)相鄰存單元的第二中間值組合以產(chǎn)生對應(yīng)的結(jié)果值;和把每個結(jié)果值存儲在第二存儲寄存器的一個對應(yīng)存儲單元中。
16.根據(jù)權(quán)利要求15所述的圖像解碼器,其中第一中間值包括偶數(shù)Masaki值;和第二中間值包括奇數(shù)Masaki值。
17.根據(jù)權(quán)利要求15所述的圖像解碼器,其中初始值集包括一個離散余弦變換系數(shù)數(shù)據(jù)塊。
18.根據(jù)權(quán)利要求15所述的圖像解碼器,其中第一中間值集對應(yīng)于初始值集的一個第一子集;和第二中間值集對應(yīng)于初始值集的一個第二子集。
19.根據(jù)權(quán)利要求15所述的圖像解碼器,其中初始值集包括多行離散余弦變換系數(shù);每個第一中間值對應(yīng)于占據(jù)一個對應(yīng)行的偶數(shù)位置的離散余弦變換系數(shù);和每個第二中間值對應(yīng)于占據(jù)該對應(yīng)行的奇數(shù)位置的離散余弦變換系數(shù)。
20.根據(jù)權(quán)利要求15所述的圖像解碼器,其中初始值集包括多行離散余弦變換系數(shù),每行具有各自的偶數(shù)和奇數(shù)位置;處理器可以操作用于從占據(jù)一個對應(yīng)行的偶數(shù)位置的離散余弦變換系數(shù)產(chǎn)生每個第一中間值;和處理器可以操作用于從占據(jù)該對應(yīng)行的奇數(shù)位置的離散余弦變換系數(shù)產(chǎn)生每個第二中間值。
21.根據(jù)權(quán)利要求15所述的圖像處理電路,其中處理器可以操作用于通過把每個第一中間值加到占據(jù)對應(yīng)相鄰存儲單元的第二中間值組合每個第一中間值和一個第二中間值。
22.根據(jù)權(quán)利要求15所述的圖像處理電路,其中處理器可以操作用于通過從占據(jù)該對應(yīng)相鄰存儲單元的第二中間值減去每個第一中間值組合每個第一中間值和一個第二中間值。
23.根據(jù)權(quán)利要求15所述的圖像處理電路,其中處理器可以操作用于通過把第一中間值的第一和第二個值分別存儲在第一存儲寄存器的第一和第三存儲單元中存儲第一中間值集中的每個值;通過把第二中間值的第一和第二個值分別存儲在第一存儲寄存器的第二和第四存儲單元中存儲第二中間值集中的每個值;通過把第一中間值的第一和第二個值分別與第二中間值的第一和第二個值組合而把每個第一中間值與一個第二中間值組合,以產(chǎn)生對應(yīng)的第一和第二結(jié)果值;和通過把第一和第二結(jié)果值分別存儲在第二存儲寄存器的第一和第二單元中而存儲每個結(jié)果值。
24.根據(jù)權(quán)利要求15所述圖像處理電路,其中處理器可以操作用于通過把第一中間值的第一和第三個值分別存儲在第一存儲寄存器的第一和第三存儲單元中存儲第一中間值集中的每個值;通過把第二中間值的第一和第三個值分別存儲在第一存儲寄存器的第二和第四存儲單元中存儲第二中間值集中的每個值;通過把第一中間值的第一和第三個值分別與第二中間值的第一和第三個值組合而將每個第一中間值與一個第二中間值組合,以產(chǎn)生對應(yīng)的第一和第二結(jié)果值;和通過把第一和第二結(jié)果值分別存儲在第二存儲寄存器的第一和第二存儲單元中存儲每個結(jié)果值。
25.一種圖像解碼器,包括處理器,處理器可以操作用于接收每個占據(jù)一個像素值原始行中的一個對應(yīng)位置的像素值,把分別占據(jù)該行每隔一個位置的像素值存儲在寄存器的第一連續(xù)部分,和把分別占據(jù)該行剩余位置的像素值存儲在寄存器的第二連續(xù)部分。
26.根據(jù)權(quán)利要求25所述的圖像解碼器,其中每隔一個的行位置包括行中的偶數(shù)位置;和剩余位置包括行中的奇數(shù)位置。
27.根據(jù)權(quán)利要求25所述的圖像解碼器,其中像素值每個包括一個對應(yīng)的編碼像素值。
28.根據(jù)權(quán)利要求25所述的圖像解碼器,其中像素值每個包括一個對應(yīng)的離散余弦變換系數(shù)。
29.根據(jù)權(quán)利要求25所述的圖像解碼器,其中處理器進一步可以操作用于接收像素值數(shù)據(jù)塊,數(shù)據(jù)塊包括像素值行,像素值以折線方式排列。
30.一種方法,包括把一列中間值作為一行中間值存儲;通過組合存儲的行中的中間值產(chǎn)生一列結(jié)果值;和把結(jié)果值作為一行結(jié)果值存儲。
31.根據(jù)權(quán)利要求30所述的方法,其中中間值包括Masaki值。
32.根據(jù)權(quán)利要求30所述的方法,其中存儲中間值的列包括把中間值存儲在一行存儲單元中;和存儲結(jié)果值包括把結(jié)果值存儲在另一行存儲單元中。
33.根據(jù)權(quán)利要求30所述的方法,進一步包括產(chǎn)生中間值的列。
34.根據(jù)權(quán)利要求30所述的方法,其中中間值包括偶數(shù)位置偶數(shù)中間值,奇數(shù)位置偶數(shù)中間值,偶數(shù)位置奇數(shù)中間值,和奇數(shù)位置奇數(shù)中間值;和存儲中間值的列包括把偶數(shù)位置偶數(shù)中間值和偶數(shù)位置奇數(shù)中間值存儲在一行的對應(yīng)相鄰存儲單元中,和把奇數(shù)位置偶數(shù)中間值和奇數(shù)位置奇數(shù)中間值存儲在該行的其它對應(yīng)相鄰存儲單元中。
35.根據(jù)權(quán)利要求30所述的方法,其中中間值包括偶數(shù)位置偶數(shù)中間值,奇數(shù)位置偶數(shù)中間值,偶數(shù)位置奇數(shù)中間值,和奇數(shù)位置奇數(shù)中間值;和存儲中間值的列包括把偶數(shù)位置偶數(shù)中間值和偶數(shù)位置奇數(shù)中間值存儲在第一對相鄰存儲單元中,和把奇數(shù)位置偶數(shù)中間值和奇數(shù)位置奇數(shù)中間值存儲在第二對相鄰存儲單元中,第二對存儲單元與第一對相鄰存儲單元相鄰。
36.根據(jù)權(quán)利要求30所述的方法,其中中間值包括第一偶數(shù)位置偶數(shù)中間值,奇數(shù)位置偶數(shù)中間值,第二偶數(shù)位置偶數(shù)中間值,第一偶數(shù)位置奇數(shù)中間值,奇數(shù)位置奇數(shù)中間值,和第二偶數(shù)位置奇數(shù)中間值;和存儲中間值的列包括把第一偶數(shù)位置偶數(shù)中間值和第一偶數(shù)位置奇數(shù)中間值存儲在第一對相鄰存儲單元中,把第二偶數(shù)位置偶數(shù)中間值和第二偶數(shù)位置奇數(shù)中間值存儲在第二對相鄰存儲單元中,第二對存儲單元與第一對存儲單元相鄰,和把奇數(shù)位置偶數(shù)中間值和奇數(shù)位置奇數(shù)中間值存儲在第三對相鄰存儲單元中。
37.一種方法,包括將第一中間值的第一列與第二中間值的第二列組合,以產(chǎn)生一個結(jié)果值的集;和把結(jié)果值的集存儲在第一存儲寄存器中。
38.根據(jù)權(quán)利要求37所述的方法,其中第一中間值包括偶數(shù)Masaki值;和第二中間值包括奇數(shù)Masaki值。
39.根據(jù)權(quán)利要求37所述的方法,進一步包括把第一和第二列中的第一和第二中間值存儲在第二存儲寄存器中。
40.根據(jù)權(quán)利要求37所述的方法,其中組合包括將第一中間值與第二中間值相加。
41.根據(jù)權(quán)利要求37所述的方法,其中組合包括從第二中間值減去第一中間值。
42.根據(jù)權(quán)利要求37所述的方法,進一步包括產(chǎn)生第一中間值的第一列;和產(chǎn)生第二中間值的第二列。
43.一種方法,包括把第一中間值集中的每個中間值存儲在第一存儲寄存器的每隔一個對應(yīng)的存儲單元中,第一中間值的集對應(yīng)于一個初始值集;把第二中間值集中的每個中間值存儲在第一存儲寄存器的剩余存儲單元中,第二中間值集對應(yīng)于初始值集;通過把每個第一中間值與占據(jù)第一存儲寄存器的一個對應(yīng)相鄰存儲單元的一個第二中間值組合產(chǎn)生對應(yīng)的結(jié)果值;和把每個結(jié)果值存儲在第二存儲寄存器的對應(yīng)存儲單元中。
44.根據(jù)權(quán)利要求43所述的方法,其中第一中間值包括偶數(shù)Masaki值;和第二中間值包括奇數(shù)Masaki值。
45.根據(jù)權(quán)利要求43所述的方法,其中初始值集包括一個離散余弦變換系數(shù)數(shù)據(jù)塊。
46.根據(jù)權(quán)利要求43所述的方法,其中第一中間值集對應(yīng)于初始值集的一個第一子集;和第二中間值集對應(yīng)于初始值集的一個第二子集。
47.根據(jù)權(quán)利要求43所述的方法,其中初始值集包括多行離散余弦變換系數(shù);每個第一中間值對應(yīng)于占據(jù)一個對應(yīng)行的偶數(shù)位置的離散余弦變換系數(shù);和每個第二中間值對應(yīng)于占據(jù)對應(yīng)行的奇數(shù)位置的離散余弦變換系數(shù)。
48.根據(jù)權(quán)利要求43所述的方法,進一步包括其中初始值集包括多行離散余弦變換系數(shù),每一行具有各自的偶數(shù)和奇數(shù)位置;從占據(jù)一個對應(yīng)行的偶數(shù)位置的離散余弦變換系數(shù)產(chǎn)生每個第一中間值;和從占據(jù)對應(yīng)行的奇數(shù)位置的離散余弦變換系數(shù)產(chǎn)生每個第二中間值。
49.根據(jù)權(quán)利要求43所述的方法,其中產(chǎn)生包括把每個第一中間值與占據(jù)第一存儲寄存器的對應(yīng)相鄰存儲單元的第二中間值相加。
50.根據(jù)權(quán)利要求43所述的方法,其中產(chǎn)生包括從占據(jù)第一存儲寄存器的對應(yīng)相鄰存儲單元的第二中間值減去每個第一中間值。
51.根據(jù)權(quán)利要求43所述的方法,其中存儲第一中間值包括把第一中間值的第一和第二個值分別存儲在第一存儲寄存器的第一和第三存儲單元中;存儲第二中間值包括把第二中間值的第一和第二個值分別存儲在第一存儲寄存器的第二和第四存儲單元中;產(chǎn)生包括把第一中間值的第一和第二個值分別與第二中間值的第一和第二個值組合,以產(chǎn)生對應(yīng)的第一和第二結(jié)果值;和存儲結(jié)果值包括把第一和第二結(jié)果值分別存儲在第二存儲寄存器的第一和第二存儲單元中。
52.根據(jù)權(quán)利要求43所述的方法,其中存儲第一中間值包括把第一中間值的第一和第三個值分別存儲在第一存儲寄存器的第一和第三存儲單元中;存儲第二中間值包括把第二中間值的第一和第三個值分別存儲在第一存儲寄存器的第二和第四存儲單元中;產(chǎn)生包括把第一中間值的第一和第三個值分別與第二中間值的第一和第三個值組合,以產(chǎn)生對應(yīng)的第一和第二結(jié)果值;和存儲結(jié)果值包括把第一和第二結(jié)果值分別存儲在第二存儲寄存器的第一和第二存儲單元中。
53.一種方法,包括把分別占據(jù)一個像素值行的每隔一個位置的像素值存儲在一個寄存器的第一連續(xù)部分中;和把分別占據(jù)該行的剩余位置的像素值存儲在該寄存器的第二連續(xù)部分中。
54.根據(jù)權(quán)利要求53所述的方法,其中每隔一個的行位置包括行中的偶數(shù)位置;和剩余位置包括行中的奇數(shù)位置。
55.根據(jù)權(quán)利要求53所述的方法,其中像素值每個包括一個對應(yīng)的編碼像素值。
56.根據(jù)權(quán)利要求53所述的方法,其中像素值每個包括一個對應(yīng)的離散余弦變換系數(shù)。
57.根據(jù)權(quán)利要求53所述的方法,進一步包括從像素值的折線編碼數(shù)據(jù)塊提取像素值的行。
全文摘要
一種圖像解碼器將2-D變換作為一系列1-D變換進行,并且是以一種比現(xiàn)有技術(shù)解碼器更有效率的方式進行。解碼器包括存儲器和耦合到存儲器的處理器。處理器可以操作用于:把一列值作為一行值存儲在存儲器中,組合存儲的行內(nèi)的值以產(chǎn)生結(jié)果值的列,并且把結(jié)果值作為一行結(jié)果值存儲在存儲器中。這樣一種解碼器可以把值存儲在一個存儲寄存器中,從而當處理器組合這些值以產(chǎn)生中間IDCT值時,它能夠以轉(zhuǎn)置方式存儲這些中間值。因此,這種圖像解碼器通過把中間IDCT值的組合和轉(zhuǎn)置組合到一個單一步驟中而減少了圖像處理時間。圖像解碼器能夠把值存儲在一個存儲寄存器中,從而當處理器組合這些值以產(chǎn)生中間IDCT值時,它能夠以轉(zhuǎn)置和偶-奇分離的方式存儲這些中間IDCT值。因此,這種解碼器通過把中間IDCT值的產(chǎn)生、轉(zhuǎn)置和偶-奇分離組合到一個單一步驟中而減少了圖像處理時間。
文檔編號G06T9/00GK1315023SQ99809627
公開日2001年9月26日 申請日期1999年8月13日 優(yōu)先權(quán)日1998年8月13日
發(fā)明者李愚彬 申請人:赤道技術(shù)公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
弥渡县| 林西县| 富顺县| 乌拉特后旗| 安化县| 石门县| 安吉县| 宜城市| 宜春市| 彰化县| 济阳县| 万源市| 宝坻区| 乌拉特前旗| 南和县| 林口县| 博爱县| 伊春市| 泽普县| 淮滨县| 侯马市| 鹿泉市| 汉川市| 左贡县| 桐乡市| 莱阳市| 平远县| 青海省| 新泰市| 韶关市| 宿松县| 华坪县| 台州市| 蛟河市| 娱乐| 肥东县| 澎湖县| 蛟河市| 万盛区| 偏关县| 将乐县|