專利名稱::修改型離散余弦反轉換與方法以及相關余數計算電路的制作方法
技術領域:
:本發明提供一種處理多種音頻格式的修改型離散余弦反轉換與多種視頻格式的離散余弦反轉換的方法,尤指一種以同樣硬件處理多種音頻格式的修改型離散余弦反轉換與多種視頻格式的離散余弦反轉換的方法。
背景技術:
:在許多可用來處理音頻與視頻的硬件中,離散余弦反轉換或修改型離散余弦反轉換的運算是相當重要的,因此提高其效率與輸出量也是各種影音處理用硬件的主要設計目的之一。一般的影音處理用硬件內部的運算大多會因為離散余弦反轉換及修改型離散余弦反轉換的關系而變得復雜且龐大,因此大部分設計出來的影音處理用硬件都會試圖簡化這些運算,例如以減少運算中所需要處理的變量等方式來實行。目前處理效率與輸出量最好的離散余弦反轉換處理硬件為在1995年,由AvanindraMadisettiandAlanN.Wilson所提出的論文"一種在100MHz下處理二維8x8離散余弦轉換或離散余弦反轉換以用于高畫質電視接口設備的處理器"("A100MHz2_D8x8DCT/IDCTProcessorforHDTVApplications")中所提出的離散余弦反轉換處理電路。該處理電路的產出率原則上是在一個時鐘中輸出一個圖像輸出數據,且該處理電路中的各區塊間完全不需要閑置時間。該處理電路的主要原理是利用離散余弦轉換與離散余弦反轉換中余弦函數的對偶性,將轉換函數中相同的變量提出來,以減少該處理電路實際的處理量。該論文中離散余弦轉換所使用的8x8矩陣如以下所定義<formula>formulaseeoriginaldocumentpage6</formula>(2)等式(2)中所示的正整數W為矩陣^的維度,其值為8。矩陣^是可用來計算下列離散余弦反轉換處理等式<formula>formulaseeoriginaldocumentpage6</formula><formula>formulaseeoriginaldocumentpage6</formula>各自代表一個位。在該篇論文中,將以上所述的對偶性運用于等式(l),則可將等式(3)化簡為下列表達式<formula>formulaseeoriginaldocumentpage6</formula>,(3乖_Z>--d_增卯),)"/——+-t/Z(3)X(2)+C2,a_/-aZ(4)_e6-g-dZ(5)Z(4)義(5)7(4)-一/-—,—陽—g£—_義(7)—_Z(6)_7(7)ca/一/—o—cZ(2)一g—6—e1(3)a_/—acZ(4)一6gX(5)aZ(6)一一g—6—義(7)一(7)等式(6)中的系數矩陣A是由矩陣^中依序取出第(0,0)、(l,O)、(2,0)、(3,0)、(0,2)、(1,2)、(2,2)、(3,2)、(0,4)、(1,4)、(2,4)、(3,4)、(0,6)、(1,6)、(2,6)、(3,6)項元素(假設矩陣^中最左上角的元素為第(0,0)項元素,且第(a,b)項是代表矩陣^中第a列第b行的元素),并依行的順序加以排列所得到。等式(6)中的系數矩陣Ci亦為由矩陣^中依序取出第(0,1)、(1,1)、(2,1)、(3,1)、(0,3)、(1,3)、(2,3)、(3,3)、(0,5)、(1,5)、(2,5)、(3,5)、(0,7)、(1,7)、(2,7)、(3,7)項元素,并依行的順序加以排列所得到。等式(7)中的系數矩陣A是由矩陣^中依序取出第(7,0)、(6,0)、(5,0)、(4,0)、(7,2)、(6,2)、(5,2)、(4,2)、(7,4)、(6,4)、(5,4)、(4,4)、(7,2)、(6,2)、(5.2)、(4,2)項元素,并依行的順序加以排列所得到。等式(7)中的系數矩陣q是由矩陣^依序取出第(7,1)、(6,1)、(5,1)、(4,1)、(7,3)、(6,3)、(5,3)、(4.3)、(7,5)、(6,5)、(5,5)、(4,5)、(7,7)、(6,7)、(5,7)、(4,7)項元素,并依行的順序加以排列所得到。比對等式(6)與C7)可發現以下關系A=A(8)C1=-C2(9)此皆因利用上述離散余弦反轉換中佘弦函數的對偶性,將轉換函數中相同的變量提出來所導出的結果,通過這種方式,可減少原本離散余弦反轉換約一半的計算量。除此以外,在處理余散離弦反轉換時,亦需要執行下列運算Z=(10)其中<formula>formulaseeoriginaldocumentpage8</formula>(11)在該篇論文中,根據上述的特征,提出了一種可同時處理離散余弦轉換以及離散余弦反轉換的處理器。請參閱圖1,其為該處理器的功能方塊圖。如圖l所示,處理器IOO包含數據重排序單元(DataReorderUnit,,102、轉置存儲器(TransposeMemory)104、反向數據重排序單元(InverseDataReorderUnit,IDRU)106、第一矩陣向量乘法器(ACFMatrixVectorMultiplier)108、以及第二矩陣向量乘法器(BDEGMatrixVectorMultiplier)110。在處理器100中,矩陣向量義與r(亦可簡稱向量義與F)是由數據重排序單元102所讀入,其中矩陣向量y在輸入數據重排序單元102之前,會先經由轉置存儲器104作矩陣的轉置運算,以使得矩陣向量X與y可以對應的行向量與列向量的形式在數據重排序單元102中做矩陣向量的乘法運算。請注意,由以上討論可知,經由簡化以后,在離散余弦反轉換的單一運算過程中,需要處理兩個4x4矩陣乘以4xl矩陣的運算,也就是等式(6)與(7)中的運算,且對于同一組矩陣向量I與r作向量乘法的運算時,等式(6)與等式(7)必須平行處理以增加處理器100的處理效率。々H殳數據重排序單元102處理的單一時鐘周期包含八個時鐘,則在前四個時鐘中,數據重排序單元102會先讀取等式(6)與(7)中矩陣向量Z的包含四個元素的二個子向量,接著在后四個時鐘中,會讀取等式(6)與(7)中矩陣向量y的包含四個元素的二個子向量,也就是說,矩陣向量y所包含的子向量需要延遲四個時鐘,以配合矩陣向量X的對應子向量的讀取。請參閱圖2,其為數據重排序單元102的功能方塊圖。如圖2所示,數據重排序單元102包含第一多工器202、第二多工器204、第三多工器206、第四多工器208、后進先出緩沖器210、加法器212、以及減法器214。以上所述的矩陣向量I與r輸入的過程是通過圖2所示的選擇信號INSEL所完成,因此在前四個時鐘中,第一乘法器202讀取矩陣向量x的子向量,意即x(o),x(l),xp),義("等四個元素,并同時將y(0),X(l),義(",Z("依序寫入后進先出緩沖器21()中,同時第二乘法器204讀取矩陣向量F的子向量(該子向量是與目前第一乘法器202所讀取矩陣向量Z一子向量無關,且相關于上一時鐘周期中的矩陣向量義)。接著在后四個時鐘中,寫入矩陣向量r的子向量(意即y(o),ni),f(2),r(3)等四個元素)至第一乘法器202與后入先出緩沖器210中。最后,在前四個時鐘中,第三乘法器206依序得到Z(4),Z(2),X(6),I(0),并在第四乘法器208依序得到Z(3),X(5),Z(7),X(1);而在后四個時鐘中,第三乘法器206依序得到Y(4)J(2)J(6),,),并在第四乘法器208依序得到y(3),y(5)J(7)J(1),以符合處理器100中離散余弦反轉換的需要。加法器212與減法器214是用來處理離散余弦轉換的運算,故此處不予以詳述。如前述對等式(6)與(7)的敘述可知,系數矩陣^與A中的元素僅包含"、c、與/,且系數矩陣Ci與C2中的元素僅包含6、d、e、與g。因此在處理矩陣乘法時,便可利用等式(6)與(7)的特性,將與系數。、c、/相關的矩陣乘法和與系數6、"、e、g相關的矩陣乘法分開來處理,以減少不必要的運算量與讀取量。在該篇論文中,便將與系數"、c、與/相關的矩陣乘法以圖1所示的第一矩陣向量乘法器108來處理,因此第一矩陣向量乘法器108又可稱為ACF矩陣向量乘法器。同理,與系數卜"、e、g相關的矩陣乘法是以圖1所示的第二矩陣向量乘法器110來處理,因此第二矩陣向量乘法器110又可稱為BDEG矩陣向量乘法器。請參閱圖3,其為第一矩陣向量乘法器108的功能方塊圖。如圖3所示,第一矩陣向量乘法器108包含第一乘法器302、第二乘法器304、第三乘法器306、第一累加器308、第二累加器310、第三累加器312、第四累加器314、多工器316、以及時鐘控制單元318。如圖3所示,在每一時鐘中,都會有變量由數據重排序單元102輸入至第一矩陣向量乘法器108,并同時輸入第一乘法器302、第二乘法器3(M、以及第三乘法器306;其中第一乘法器302是固定輸入另一常數",以將該變量與"做乘法運算;同理,第二乘法器304是固定輸入c,且第三乘法器306是固定輸入/。在上述的例子中,輸入該多個乘法器的變量順序應為X(4),X(2),Z(6),Z(0),y(4)J(2)J(6),F(0)。接著,第一乘法器302、第二乘法器304、及第三乘法器306都會將其運算結果輸入至第一累加器308、第二累加器310、第三累加器312、及第四累加器314的每一累加器,并在每一時鐘中將每一累加器的運算結果輸入至多工器316,再經由多工器由四個累加器中根據當時的時鐘決定選取哪一個累加器的運算結果,以完成等式(6)與(7)的運算。其中多工器316與各個累加器的時鐘控管都需要通過時鐘控制單元318來同步管理,以保證多工器316可在正確的時鐘下選取當時應選取的累加器輸出。請參閱圖4,其為第二矩陣向量乘法器110的功能方塊圖。如圖4所示,第二矩陣向量乘法器110包含第一乘法器402、第二乘法器404、第三乘法器406、第四乘法器407、第一累加器408、第二累加器410、第三累加器412、第四累加器414、多工器416、以及時鐘控制單元418。第二矩陣向量乘法器110與第一矩陣向量乘法器108相同,也是基于等式(6)與(7)來加以設計,因此其運作方式與第一矩陣向量乘法器108相似,故不加以贅述。根據上述的例子,輸入各乘法器的變量順序應為1(3),郡)J(7)J(D,卬),y(S)J(7),,。反向數據重排序單元106是用來處理第一矩陣向量乘法器108與第二矩陣向量乘法器110的運算結果,在此亦不加以詳述。請注意,轉置存儲器104可存放已處理好的列向量的數據,并同時讀取上一個已處理好的列向量的數據,行向量亦然。因此轉置存儲器104可同時處理列向量與行向量的數據。舉例來說,在某一時鐘周期的前四個時鐘內,當第一矩陣向量乘法器108處理列向量的數據的同時,第二矩陣向量乘法器110可處理對應的行向量的數據;反之,在后四個時鐘內,第一矩陣向量乘法器108處理行向量的數據的同時,第二矩陣向量乘法器110可處理對應的列向量的數據。在此架構下,可達到平均一個時鐘便有一個元素(亦即像素)的產出率。上述的論文主要是用來處理8x8矩陣的離散余弦反轉換,因此用于同樣是應用8x8矩陣的MPEG協議來說,亦相當的適合。然而,當應用某些并非使用8x8矩陣為處理單位的影音協議時,例如麗V或者是H.264,該論文中所述的方法便無法直接加以應用,因為這些協議所使用的處理單位可為8x4矩陣、4x8矩陣、甚或是4x4矩陣等。若要強行應用該方法,則需要將對應的硬件加以修改,也就是將圖1至圖4中所圖標的相關硬件加以修改以符合上述的規則。然而針對不同的格式作修改后所得到的硬件,雖然可支持較多的格式,但是其芯片面積與耗電量必然也會與之倶增。上述皆為針對視頻所做的運算與處理,然而,由于亦可使用修改型離散余弦反轉換來處理音頻相關的運算,若想同時處理視頻與音頻,則所設計出來的硬件在芯片面積與耗電量上的負擔又會較上述集成各種格式的硬件來的更重。
發明內容本發明提供一種處理多種音頻格式的修改型離散余弦反轉換與多種視頻格式的離散余弦反轉換的方法。該方法包含根據音頻格式或視頻格式,提供轉換函數,其中該轉換函數包含多個系數矩陣與對應于該多個系數矩陣的多個變量矩陣;根據該轉換函數更換輸入數據串行的輸入順序;根據該轉換函數更換輸出數據串行的輸出順序;及暫存處理該轉換函數中所產生的多個變量。本發明還提供一種于視頻格式中進行余數運算的余數運算電路,包含第一多工器,包含第一輸入端,用來輸入加法數據,以及第二輸入端,用來輸入減法數據;加法器,包含第一輸入端,耦接于該第一多工器的輸出端;減法器,包含第一輸入端,耦接于該第一多工器的輸出端;第二多工器,其輸出端是耦接于該加法器的第二輸入端;第三多工器,包含第一輸入端,耦接于該第一多工器的輸入端,以及第二輸入端,耦接于該加法器的輸入端;第四多工器,包含第一輸入端,耦接于該第一多工器的輸出端,第二輸入端,耦接于該減法器的輸出端,以及第三輸入端,耦接于該加法器的輸出端;第一暫存器,其輸入端是耦接于該第三多工器的輸出端,且輸出端是耦接于該第二多工器的第一輸入端;第二暫存器,其輸入端是耦接于該第四多工器的輸出端,且輸出端是耦接于該減法器的第二輸入端;第三暫存器,其輸入端是耦接于該第一暫存器的輸出端;第四暫存器,其輸入端是耦接于該第一暫存器的輸出端;第五暫存器,其輸入端是耦接于該第二暫存器的輸出端;及第六暫存器,其輸入端是耦接于該第二暫存器的輸出端;其中,該余數運算電路所應用的視頻格式為麗V影音協議。圖1為先前技術中一種可同時處理離散余弦轉換以及離散余弦反轉換的處理器的功能方塊圖。圖2為圖1所示的數據重排序單元的功能方塊圖。圖3為圖1所示的ACF矩陣向量乘法器的功能方塊圖。圖4為圖1所示的BDEG矩陣向量乘法器的功能方塊圖。圖5為本發明所提供的可在同一硬件上處理多種視頻格式的離散余弦反轉換與多種音頻格式的修改型離散余弦反轉換的運算的方法的示意圖。圖6為根據本發明的方法,所推導出在麗V格式下執行余數計算的余數計算電路的示意圖。[主要元件標號說明]100處理器102數據重排序單元104轉置存儲器106反向數據重排序單元108、110矩陣向量乘法器202、204、206、208、316、416、多工器502、504、506、508210后進先出緩沖器212、510加法器214、512減法器302、304、306、402、404、406、乘法器407308、310、312、314、408、410、累加器412、414318、418時間控制單元500余數計算電路514、516、518、520、522、524暫存器602、604、606步驟具體實施方式為了可使單一硬件同時支持上述的音頻或不同視頻格式的轉換函數,本發明是以先前技術中提到的論文為基礎,提供一種可在同一硬件上處理多種視頻格式的離散余弦反轉換與多種音頻格式的修改型離散余弦反轉換的運算的方法。請參閱圖5,其為本發明所提供的可在同一硬件上處理多種視頻格式的離散余弦反轉換與多種音頻格式的修改型離散余弦反轉換的運算的方法的示意圖。圖5所示的方法包含下列步驟步驟602:根據所應用的音頻格式或視頻格式,提供轉換函數,其中該轉換函數包含多個系數矩陣與對應于該多個系數矩陣的多個變量矩陣。步驟604:根據該轉換函數更換輸入數據串行與輸出數據串行的順序。步驟606:暫存處理該轉換函數中所產生的多個變量。上述的步驟是可簡述如下首先根據欲應用的視頻或音頻協議中離散余弦反轉換或修改型離散余弦反轉換的參數格式,將原本協議中的系數矩陣(如前述的"加以分解或提出共同變量,轉換成類似等式(6)與(7)的格式以簡化電路設計;接著配合筒化后的電路,更改輸入數據串行與輸出數據串行(例如義(0),X(1),Z(2),1(3)等)的輸入或輸出順序,以滿足管線(pipeline)排程最佳化的需要;在實施上述的管線排程時,亦需要預備額外的緩沖器以暫存會馬上被再次參考的變量。首先以視頻用的WMV格式為例,麗V格式可應用于8x4、4x8、及4x4的離散余弦反轉換運算,以下先詳述本發明的方法應用于麗V格式,使得原本8x8的離散余弦反轉換運算可應用于8x4離散余弦反轉換運算的過程。窗V格式原本在8x4的離散余弦反轉換函數如下<formula>formulaseeoriginaldocumentpage13</formula>將等式(12)依照矩陣"中元素的對稱性加以分解以后,可得到以下函數:<formula>formulaseeoriginaldocumentpage14</formula>將等式(13)與(14)依照矩陣^與A中元素的對稱性加以分解以后,可得到以下函數<formula>formulaseeoriginaldocumentpage14</formula>以等式(17)至(20)為例,并請同時參閱圖2、圖3、圖4。等式(1"與(l8)皆為離散余弦反轉換中前四個像素的運算,且等式(19)與(20)為離散余弦反轉換中后四個像素的運算。將等式(17)、(18)與等式(19)、G0)視為一體來看時,等式(17)至(20)是等效于單一離散余弦反轉換中共八個像素的運算。而當執行等式(13)與(14)時,根據矩陣向量《與^的編排方式,需要以r(4),y(5)j(o),y(i),r(2)j(3),r(6),iT7)的輸入順序,以正確地得到矩陣^與z2。將等式(17)與(19)歸類為一組,并將等式(18)與G0)歸類為一組,再以水平方式加以觀察,便可推導出上述的輸入順序。為了實現上述的輸入順序,需要調整圖2中所示的數據重排序單元102中數據的輸入順序。在單一時鐘周期的前四個時鐘中,需要先輸入^1),y(0),y(5),7(4),以通過后進先出緩沖器210將輸入順序轉換為"4)^(5),,),^1),接著并將多工器206與208的輸出順序調整為n2),y(3)J(6)'y(7),以符合上述所需的輸入順序。若應用于麗V協議時,依循上述的輸入順序便可以將最后輸出的矩陣向量Z",Zu,^,Z"以將圖3或圖4所示的各累加器加以簡單的加減運算來得到。以等式(17)與(18)為例,使用上述的輸入順序,并請參照圖3,在單一時鐘周期中的第一個時鐘時,第一累加器308的值會變成8*"2),第二累加器310的值會變成(-8)"(2),第三累加器312的值會變成U"(1),第四累加器314的值會變成S^W;當進入第二個時鐘時,第一累加器308的值會變成8*"2)+84(0),第二累加器310的值會變成(-8)*7(2)+8"(0),第三累加器312的值會變成ll*y(l)+5*y(3),第四累加器314的值會變成5"(1)-u*r(3)。將第二個時鐘結束時各累加器的值與等式(17)與(18)比對,則可得到下列關系式<formula>formulaseeoriginaldocumentpage15</formula>其中^X0"CC1^CCHC3各自代表第一累加器308、第二累加器310、第三累加器312、第四累加器314所暫存的值。在先前未經過本發明所提供的方法處理前,離散余弦反轉換中四個像素必須耗費四個時鐘才能夠一次得到四個完整的矩陣向量,在此例中即為矩陣向量Z",Zu'Z",乙,然而經由上述改變輸入數據串行以及改變邏輯電路設計等操作以后,可僅以二個時鐘先行得到二個矩陣向量2,212。雖然產出率仍然是一個時鐘輸出一個像素,但是原先四個時鐘形成一個循環的方式轉變成二個時鐘即可形成一個循環。此點對于運算中間需要某些特定暫存器以在管線中支持的其它運算來說,可大幅增進其效率。同理可在后四個時鐘推導出以下關系式<formula>formulaseeoriginaldocumentpage15</formula>其中等式(21)至(24)可形成一個循環,等式(25)至(28)亦可形成一個循環,且兩個循環可平行執行。應用本發明的方法,亦可以應用于麗V格式中4x8離散余弦反轉換的運算,因此亦可以得到跟以上類似的關系式<formula>formulaseeoriginaldocumentpage15</formula>r(7).,)一fx(o)1(2),).X(6)++Z(3)-"i義(7).—踏義(7)其中等式(29)至(32)為水平運算的部分以化簡如下z(o)A:y(o)Z(l)A:一g一/z,Z(2)_A一g7(4)Z(3)—;g_、_r(6)—Z(7),/zgA:一Y(O)Z(6)A:一g_/z7(2)Z(5)一A;一g7(4)Z(4)g一/2g_、7(6)+-/一/7/一/一/2—附(30)(31)(32)而矩陣垂直方向的矩陣運算可w7(3)y(7)」(33)y(5)-如)」(34)在等式(29)至(32)中,亦使用將兩個四像素的離散余弦反轉換合為一個八像素的離散余弦反轉換的方法。因此需要在后進先出緩沖器中將輸入順序改為X(化X(S),Z(0),X(1),則前四個時鐘的輸出就會變成卯)J(0),X(5),1(4),接著再將多工器的輸入順序變成義(2),X(3),義(6),X(7)。參閱圖3與上述執行8x4離散余弦反轉換的推導過程可知,經過第一個時鐘后,第一累加器308的值就會變成175^(2),第二累加器310的值就會變成(—17)*義(2),第三累加器312的值就會變成224(1),第四累加器314的值就會變成104(1)。經過第二個時鐘后,第一累加器308的值就會變成17*1(2)+17*^(0),第二累加器310的值就會變成(—17)*X(2)+17*X(0),第三累加器312的值就會變成22*X(1)+10*X(3),第四累加器314的值就會變成(-10)^^(1)。根據這四個累加器的值,可以如等式(21)至(24)^:推導出下列關系式F(0)"CC0+爿CC2(35)"CC1+爿CC3(36)y(3)=^CC0-爿CC2同理,亦可得到y(4)=^CC0+爿CC2(州y(5)=」CCl+JCC3(40)y(6)"CC1-爿CC3(42)由以上等式觀察可知,與WMV格式中8x4離散余弦反轉換的矩陣垂直方向運算推導結果相同,二個時鐘即可形成一個循環。總結來說,在麗V格式中,8x4離散余弦反轉換的矩陣水平方向運算可化簡為四個時鐘形成一個循環,矩陣垂直方向運算可化簡為二個時鐘形成一個循環;4x8離散余弦反轉換的矩陣水平方向運算可化簡為二個時鐘形成一個循環,矩陣垂直方向運算可化簡為四個時鐘形成一個循環。將等式(21)至(28)及等式(35)至(42)相互比較,可發現兩者的硬件架構是相同的,也就是說,可以僅設計出一種電路來同時實現WMV格式中離散余弦反轉換4x8的矩陣水平方向運算或8x4的矩陣垂直方向運算。以上所述的方法雖然是應用于麗V格式在離散余弦反轉換的8x4或4x8矩陣運算,并推導出相關的運算公式和硬件設計方法,但是同樣的推導方法亦可運用在麗V格式在離散余弦反轉換的4x4矩陣運算,且僅需要通過變更輸入數據串行的排列順序的方式就可以實現。因此WMV格式在4x4離散余弦反轉換的矩陣水平方向運算可化簡為兩個時鐘產生一個循環,且矩陣垂直方向運算亦可化簡為兩個時鐘產生一個循環。同理,對于H.264的4x4離散余弦反轉換同樣也可以應用本發明提供的方法。在此是再針對麗V格式在4x4離散余弦反轉換加以說明如下。WMV格式在4x4離散余弦反轉換的公式是如以下所述K=<formula>formulaseeoriginaldocumentpage17</formula>17<formula>formulaseeoriginaldocumentpage18</formula>,根據上述本發明所提及的做法,一樣可以類似的方式,依據對偶性再把上述公式(43)至(46)所示的矩陣以2x2矩陣的方式分解為如下所示<formula>formulaseeoriginaldocumentpage18</formula>因此需要在后進先出緩沖器中將輸入順序改為I(4),I(5),X(0)J(1),再把累加器變成二循環,就可以得到水平方向的答案,在垂直方向也是一樣只要把后進先出緩沖器中將輸入順序改為"4)7(5)^(0)^(1),再把累加器變成二循環,就可以得到垂直方向的答案,如此一來就可以使用本發明所提供的方法完整實現觀V格式在4x4離散余弦反轉換的公式。而以麗V格式在8x8余散離弦反轉換來看,其運作方式和MPEG格式的8X8余散離弦反轉換是一模一樣的,只需要把乘法器所要相乘的系數從MPEG所規定的系數變成麗V所規定的系數就可以了,因此一樣可以使用本發明所提供的方法實施MPEG格式下的相關運算。在聰V協議中有另外定義其余數的做法,并需要用到"3)+}^5)以及7(1)+7(7)的暫存值來做運算。因此,使用上述可另外增加四個暫存器用來暫存yp)+;r(s)以及y(i)+;ra)在離散余弦反轉換的運算中所產生的值,并傳遞至與上述矩陣平行運算方向不同的矩陣垂直方向運算以做參考。假設該四個暫存器為Regl、Reg2、Reg3、Reg4。舉例來說,在數據重排序單元102中,在第一個時鐘時,后進先出緩沖器210輸出y(3),則暫存器Regl直接暫存"3)。接著在第二個時鐘中,當多工器的輸出為"5)時,可通過加法器產生y(3)+F(5),并將其再次暫存于暫存器Regl。在第三個時鐘中,后進先出緩沖器系輸出^1),并馬上由暫存器Reg2加以暫存。在第四個時鐘中,當多工器的輸出為^7)時,可通過加法器產生^)+r(7),并再次由暫存器Reg2暫存y(D+y(7)。由于在矩陣向量乘法器中,累加器與乘法器的輸出都會產生延遲,因此需要準備兩個暫存器Reg3與Reg4來存取暫存器Regl與Reg2的值,使得暫存器Regi與Reg2可再去存取下一個時鐘周期的叩),W),yO0,ni),并使得暫存器Reg3與Reg4的值可直接供應麗V格式中余數運算的需要。請參閱圖6,其為根據麗V格式所需要的余數計算所推導出來的余數計算電路500的示意圖。余數計算電路500包含第一多工器502、第二多工器504、第三多工器506、第四多工器508、加法器510、減法器512、第一暫存器514、第二暫存器516、第三暫存器518、第四暫存器520、第五暫存器5"、以及第六暫存器524。在上述所提及的設計中,原先是利用四個暫存器來處理四個像素的離散余弦反轉換,然而若再加上另外兩個暫存器,便可直接以平行處理二種的四個像素的離散余弦反轉換的方式,直接執行八個像素的余數計算。其中加法器510與減法器512用來處理麗V格式中的加法與減法。而在WMV格式中處理八個像素的余數計算時,雖然原則上只需要使用加法器,但是由于應用了本發明的方法以調整輸入數據串行的排列的緣故,因此仍然需要增加一個減法器來完成八個像素的余數計算,其原理與等式(1"至(20)相同,故不加以贅述。第一多工器502是用來切換加法與減法的運算,其它的多工器是用來切換運算中所需要的各種輸入值。本發明所提供的方法亦可應用于音頻的修改型離散余弦反轉換矩陣運算。音頻的修改型離散余弦反轉換的公式為<formula>formulaseeoriginaldocumentpage19</formula>(55)其中,^的值可為12或是36,也就是兩種不同狀況的運算。在W的值為12的情況下,等式(55)可轉化為下列表達式<formula>formulaseeoriginaldocumentpage5</formula>242424。展開等式(56)以后,便可發現下列的關系y(3)=—y(2),r(4)=—r(5)=-;r(o)(57)y(9)=,),r(10)=r(7),HI1)=7(6)(58)找出等式(57)與(58)中的對稱性后,同樣地應用本發明的方法,對X(0),J(l),Z(",xp),X(化義(S)的輸入順序做調整。首先將輸入后進先出緩沖器的輸入數據序列改為義(2),義(1),義(0),并將多工器的輸出數據序列設計為Z(5),則可在最后得到義(0),義(1),義(2),1(3),1(4),1(5)的數據序列。并根據之前在麗V格式中所使用的各系數矩陣,將系數矩陣內的元素改為a,6,c乂e,/,則最后可得到各累加器的內容為」CC0=^(0)t/—義(2)/-X(4)e(59)JCC2=Z(0)e+X(2)H(4)e(60)」CC4=X(0)/+Z(2)flf+J(4)6(61)JCCl=-+義(3)"_Z(5)c(62)爿CC3=-Z(1)6-JT(3)e+義(5》(63)」CC5=-Z(l)e—義(3)c-X(5)a(64)接著根據先前使用于麗V格式的討論,亦可以將y(0)J(l),叩),…J(ll)中各像素以各累加器的合理組合來產生。除此以外,由于上述的推導過程是以管線技術為基礎,因此可將上述推導出的等式再加以應用于windows運算,只需要再增加一個乘法器即可。因為在管線中的重迭(overlap)部分需要將經過windows運算的結果相力口起來。在W的值為36的情況下,等式(55)可轉化為下列系數表示式:Y0=j,-h,-.1,f,n,--d,-p,b,r,一a,q,c,—'o,—■6,m,g,一k,--iYl=k,—6,一-q,b,-n,--h,h,n,--b,q,e,--k,-.k,已,q,一b,n,hY2=1,一b,o,i,-6,r,f,--p,c,-k,-—m,a,—.n,--j,d,-q,--gY3=m,-b,j,P,-e,g,一r,-七,d,—0,-k,a,_1,-.n,c,—i,一q,fY4=n,e,—n,_n,6,一s,n,n,_6,e,--n,-力,e,-—6,o,n,-一6Y5=o,-h,a,—g,n,P,-i,b,.-f,m,q,--j,c,一1,r,-k,dY6=P,-k,f,一a,e,--j,o,q,.-1,g,-b,d,--i,n,r,一ra,h,.—cY7=q,一n,k,-h,e,--b,b,-h,-k,n,-—q,—-q,Q,'-k,h,-e,bY8=r,一q,p,—o,n,--m,1,--k,j,-i,h,-_g,f,--e,d,-c,b,一aY9=--r,q,--p,o,-n,m,-1,k,-j,i,-h,g,--f,s,■-d,c,-b,aY10:=_q,n,—k,h,-e:,b,—b,s,—h,k,-n.,q,q,_n,k,一h,e,—bYll=-p,k,-f,a,-e,j,-o,-q,l,-g,b,-d,i,_n,_r,ra,-h,cY12=-o,h,-a,g,-n,-p,i,-b,f,_m,-q,j,-c,e,-l,-r,k,_dYU=_n,e,-e,11,n,—6,e,_n,-n,e,—e,n,n,_e,e,-n,-n,eY14=-m,b,-j,_p,e,-g,r,h,-d,o,k,-a,1,n,-c,i,q,-fY15=-1,b,-o,-i,e,-r,-f,h,p,-c,k,ra,-a,n,j,-d,q,gY16=-k,e,q,-b,n,h,-h,-n,b,-q,-e,k,k,-e,-q,b,-n,-hY17=-j,h,1,-f,_n,d,p,-b,-r,a,-q,-c,o,e,-m,-g,k,iY18=_i,k,g,-m,-e,o,c,-q,-a,-r,b,p,_d,-n,f,l,-h,-jY19=-h,n,b,q,-e,-k,k,e,-q,-b,-n,h,h,-n,-b,-q,e,kY20=-g,q,d,j,-n,-a,-tn,k,c,p,-h,-f,r,e,i,-o,-b,-1Y21=_f,-q,i,c,n,-l,-a,-k,o,d,h,_r,-g,-e,-p,j,b,mY22=—e,_n,n,e,e,n,-n,-e,_e,_ri,n,e,e,n,-n,-e,-e,-nY23=_d,-k,_r,1,e,c,j,q,-m,-f,-b,-i,-p,n,g,a,h,oY24=_c,-h,-m,-r,n,i,d,b,g,1,q,-o,-j,-e,_a,-f,-k,_pY25=-b,-e,-h,-k,-n,-q,q,n,k,h,e,b,b,e,h,k,n,qY26=_a,-b,_c,-d,-e,-f,_g,-h,-i,-j,-k,_1,-m,-n,-o,-p,-q,-rY27=—a,-b,—c,一d,一e,-f,-g,-h,-i,-j,-k,-l,—m,_n,-o,-p,-q,-rY28=_b,-e,-h,-k,-n,-q,q,n,k,h,e,b,b,e,h,k,n,qY29=-c,-h,_m,_r,n,i,d,b,g,1,q,-o,一j,—e,-a,-f,-k,_p<table>tableseeoriginaldocumentpage22</column></row><table>《—ec^iV—eos^^。應用本發明的方法,可以得到與W為12時的修改型離散余弦反轉換運算類似的關系式Y9=-Y8,Y10=-Y7,Yll=-Y6,Y12=-Y5,Y13=-Y4,Y14=-Y3,Y15=-Y2,Y16:-Y1,Y17=-YQ(66)Y27=Y26,Y28=Y25,Y29=Y24,Y30=Y23,Y31=Y22,Y32=Y21,Y33=Y20,Y34=Y19,Y35-Y18(67)由等式(66)與(67)所顯示出的對稱性,亦可將輸入數據序列做對應的調整首先將后進先出緩沖器的輸入數據序列設定為X0,XI,X2,X3,X4,X5,X6,X7,X8,則可得到X8,X7,X6,X5,X4,X3,X2,XI,XO的輸出數據序歹寸,并配合設定多工器的輸出數據序列為X9,X10,Xll,X12,X13,X14,X15,X16,X17,以及#4居以上推導的等式修改乘法系數矩陣。因應上述的設計,需要再另外增加兩組累加器、兩組乘法器、以及兩組暫存器,以產生以下所列的累加器的輸出_X6jp+X8r+X10g-Jf12o+X14w-X16Kacc2=I。A:—Z2《—Z4"+Z6/z—Z86+^10e—I12A+X14《+^16wflcc4=JT0/+X2o_Z4e+Jf6/—Z8/_X10A;+X12a—D—X6《flcc6=X0m+12_/-X4e-X6r+X8d_Z10A;_義12/+X14c—義16《acc8=X0w+X2e—X4"-JT6e+X8"+X10e_112"-Z,4e+義16"acd=+義3/—Z5c/+176-Z9ot+Zc—JT13e+I15g—X17/acc3=—義'e+義36—^T5/z+Z7m+義9—A^A:+Jf13e—義156+Z17/zacc5=—義々+Z3/+Z5r—Z7A+Z9c——X13"+I15of—Jf17gocc7=—X々+義3/+X5g_Z7/2-義90+義ufl-X13w—Z15/+《7/由等式(68)中各暫存器的值,可得到YO,Yl,Y2,Y3,Y4和Y17,Y16,Y15,Y14,Y13的值,并依序輸出。由于36個像素的修改型離散余弦反轉換是以輸入18個像素并輸出36個像素的方式運作,為了能夠更佳地運用管線以將時鐘的輸出率提高,會將某些輸入數據加以延遲,以供計算出其它變量。在此將X9,X10,Xll,X12,X13,X14,X15,X16,X17加以延遲,并配合后進先出緩沖器的運算得到下列關系式acc0=Z。o+I2a+—Z6/—Z8/+I10g+Z12c+義14/—^f16^occ2=Z。p+Z2/+Z4e+Z6o-X8/—Z106—Z12/+X14r+X16/zacc4=義(^+Z2A:++166+義8/+—112《—義14^:—義16£<3cc6=+X2_/-—Jf6r+X8<i—X10A;_X12/+Z14c—Z16gaccl=—Z々-Z3g+Jf5/+Z76+19附—J!^j'—Jf13e+義15/"+JT17fi<3cc3="ZA;—I3a-Jf5_/+X7g+Z9《+義13"—X,5附_Z17c<3cc5=-Z,/7—Z3A—JST56—Z7e—I9A:—+義13/7+義15/2+X,76(69)根據等式(69)的結果,可依序推導出Y5,Y6,Y7,Y8和Y12,Yll,Y10,Y9。總合等式(68)與(69)可得到一個長度為九個時鐘的循環,其中一個時鐘周期包含18個時鐘,意即輸入XO,XI,X2,X3,X4,X5,X6,X7,X8,X9,XIO,Xll,X12,X13,X14,X15,X16,X17的時間。因此,最后可得到的輸出數據序列為YO,Yl,Y2,Y3,Y17,Y16,Y15,Y14,Y4,Y5,Y6,Y7,Y8,Y12,Yll,Y10,Y9,Y13。同理,在該時鐘周期中后九個時鐘的循環的第一階段中,亦可得到Y18,Y19,Y20,Y21,Y22和Y35,Y34,Y33,Y32等數據,所以最后可在第一階段得到輸出數據序列依序為Y18,Y19,Y20,Y21,Y35,Y34,Y33,Y32;而在后九個時鐘的循環的第二階段中可依序得到Y23,Y24,Y25,Y26和Y30,Y29,Y28,Y27,Y31等像素,因此最后可得到的輸出數據串行為Y23,Y24,Y25,Y26,Y30,Y29,Y28,Y27,Y31。至此已可得到36個像素的修改型離散余弦反轉換的所有輸出像素,因此為了將上述兩個循環加以集成起來,應用本發明所提供的方法并再增加兩組乘法器、兩組累加器、及兩組暫存器,便可處理36個像素的修改型離散余弦反轉換。再者,與先前12個像素的運算相同,只要再增加一組乘法器便可同樣地處理windows的運算。本發明是提供一種可通過單一硬件實施不同視頻格式的離散余弦反轉換運算與不同音頻格式的修改型離散余弦反轉換運算的方法,以改進先前技術中,當需要在同一芯片或硬件上實施多種上述的運算時,會大幅增加芯片面積及耗電率的缺點。在本發明的方法中,包含了改變暫存緩沖器的輸出順序、改變量據來源的輸入順序、及對應于不同的格式修改所使用的系數矩陣等方式,以達到應用同一硬件來實施不同視頻格式或音頻格式的目的。本發明的方法應用于麗V格式的余數運算時,可另外提供圖5所示的余數計算電路來支持,以輔助舍去值的計算,且該余數計算電路僅需一個加法器、一個減法器、六個暫存器、以及四個多工器就可以完成該余數計算。而本發明的方法應用于12個像素與36個像素的修改型離散余弦反轉換運算時,可直接將12個像素的修改型離散余弦反轉換運算所使用的電路外加兩個乘法器、兩個累加器、以及兩個暫存器,便可以直接支持36個像素的修改型離散余弦反轉換運算。以上所述僅為本發明的較佳實施例,凡依本發明權利要求范圍所做的均等變化與修飾,皆應屬本發明的涵蓋范圍。權利要求1.一種處理多種音頻格式的修改型離散余弦反轉換與多種視頻格式的離散余弦反轉換的方法,包含根據音頻格式或視頻格式,提供轉換函數,其中該轉換函數包含多個系數矩陣與對應于該多個系數矩陣的多個變量矩陣;根據該轉換函數與前級硬件更換輸入數據串行的輸入順序;根據該轉換函數與該前級硬件更換輸出數據串行的輸出順序;及在該前級硬件中暫存處理該轉換函數中所產生的多個變量。2.根據權利要求1所述的方法,其中根據該轉換函數與該前級硬件更換輸入數據串行的輸入順序包含8x4離散余弦反轉換函數產生函數z,<formula>formulaseeoriginaldocumentpage2</formula>與,并將對應的元素輸入順序由(Y(0),Y(1),Y(2),Y(3),Y(4),Y(5),Y(6),Y(7))更改為(Y(4),Y(5),Y(0),Y(1),Y(2),Y(3),Y(6),Y(7)),以實施額V格式下的8x4離散余弦反轉換函數。3.根據權利要求1所述的方法,其中根據該轉換函數與該前級硬件更換輸入數據串行的輸入順序包含根據在麗V格式下的4x8離散余弦反轉換函數產生函數<formula>formulaseeoriginaldocumentpage2</formula>將元素輸入順序由(X(0),X(1),X(2),X(3),X(4),X(5),X(6),X(7))更改為(X(4),X(5),X(0),X(1),X(2),X(3),X(6),X(7)),以實施WMV格式中4x8離散余弦反轉換的運算。4.根據權利要求1所述的方法,其中根據該轉換函數與該前級硬件更換輸入數據串行的輸入順序包含根據在麵V格式下的4x4離散余弦反轉換函數產生函數<formula>formulaseeoriginaldocumentpage3</formula>,并將對應的元素輸入順序由Y(7))更改為Y(7))和X(7))更改為X(7)),以實施WMV格式下的4x4離(Y(0),Y(1),Y(2),Y(3),Y(4),Y(5),Y(6)(Y(4),Y(5),Y(0),Y(1),Y(2),Y(3),Y(6)(X(0),X(1),X(2),X(3),X(4),X(5),X(6)(X(4),X(5),X(0),X(1),X(2),X(3),X(6)散余弦反轉換函數。5.根據權利要求1所述的方法,其中根據該轉換函數與該前級硬件更換輸入數據串行的輸入順序包含將MPEG格式下的8x8離散余弦反轉換函數所使用的乘法系數矩陣更改為在麗V格式下所使用的8x8離散余弦反轉換函數,且所使用的元素輸入順序保持在(X(0),X(1),X(2),X(3),X(4),X(5),X(6),X(7)),以實施麗格式中8x8離散余弦反轉換的運算。6.根據權利要求1所述的方法,還包含根據該音頻格式或該視頻格式,在該前級硬件中提供多個加法器、多個減法器、多個多工器、或多個乘法器,以支持該音頻格式或該視頻格式的運算。7.根據權利要求1所述的方法,其中在該前級硬件中暫存處理轉換函數中所產生的多個變量包含根據該音頻格式或該視頻格式,在該前級硬件中以暫存緩沖器來儲存該多個變量,以支持該音頻格式或該視頻格式中余數的運算。8.—種于視頻格式中進行余數運算的余數運算電路,包含第一多工器,包含第一輸入端,用來輸入加法數據,以及第二輸入端,用來輸入減法數據;加法器,包含第一輸入端,耦接于該第一多工器的輸出端;減法器,包含第一輸入端,耦接于該第一多工器的輸出端;第二多工器,其輸出端是耦接于該加法器的第二輸入端;第三多工器,包含第一輸入端,耦接于該第一多工器的輸入端,以及第二輸入端,耦接于該加法器的輸入端;第四多工器,包含第一輸入端,耦接于該第一多工器的輸出端,第二輸入端,耦接于該減法器的輸出端,以及第三輸入端,耦接于該加法器的輸出端;第一暫存器,其輸入端是耦接于該第三多工器的輸出端,且輸出端是耦接于該第二多工器的第一輸入端;第二暫存器,其輸入端是耦接于該第四多工器的輸出端,且輸出端是耦接于該減法器的第二輸入端;第三暫存器,其輸入端是耦接于該第一暫存器的輸出端;第四暫存器,其輸入端是耦接于該第一暫存器的輸出端;第五暫存器,其輸入端是耦接于該第二暫存器的輸出端;及第六暫存器,其輸入端是耦接于該第二暫存器的輸出端;其中,該余數運算電路所應用的視頻格式為麗V影音協議。全文摘要為了可使用同一種硬件以處理多種音頻格式的修改型離散余弦反轉換與多種視頻格式的離散余弦反轉換,需要根據所應用的音頻格式或視頻格式來提供轉換函數,并根據該轉換函數更換輸入數據串行與輸出數據串行的數據排列順序,并加上額外的暫存器以暫存該轉換函數中產生的多個變量。該轉換函數可通過修改系數矩陣排列方式來完成,且原本WMV格式下的各種離散余弦反轉換運算可因此由四個時鐘產生一次循環轉為二個時鐘產生一次循環。除此以外,可還提供一種簡化的余數計算電路以支持WMV格式下的余數計算。文檔編號G06F17/14GK101246468SQ20071000578公開日2008年8月20日申請日期2007年2月13日優先權日2007年2月13日發明者紀富中申請人:揚智科技股份有限公司