專利名稱:Dct運算裝置的制作方法
技術領域:
本發(fā)明涉及實現(xiàn)在圖象信號處理等的信息壓縮中使用的離散余弦變換(以下稱為“DCT”。)的DCT運算裝置,涉及對于大小不同的單位塊的圖象數(shù)據(jù),進行DCT運算或者反DCT運算的至少一種運算的DCT運算裝置。
在圖象信號等的信息壓縮中,多使用DCT。在運動圖象中的信息壓縮中,一般,利用畫面內(nèi)(空間性)相關關系進行信息壓縮,和利用畫面間(時間性)相關關系進行信息壓縮,而DCT就是前者。該DCT,是頻率變換法的一種,對于變換前隨機分布的像素值,通過利用變換后低頻成分大的值集中的性質(zhì)消除高頻成分進行信息壓縮。
在DCT中,首先,把1幅的圖象分為由一定數(shù)的像素(例如8×8)組成的一定形狀的多個單位塊,對每個塊執(zhí)行DCT處理。2維DCT,是通過進行2次1維DCT執(zhí)行,例如,通過對在單位塊的列方向上進行1維DCT后的中間結(jié)果,在其行方向上進行1維DCT執(zhí)行。
另外,由DCT壓縮的圖象信號,通過反DCT解壓。 是定義在N×N單位塊中的2維DCT,以及2維反DCT的式子。另外,X(u)=2/N·C(u)·Σi=0N-1x(i)cos((2i+1)uπ/2N)]]>…式(3)是定義由上述式(1)以及式(2)導出的1維DCT的式子。其中,x(i,j)(i,j=0,1,2,……,N-1)是像素,X(u,v)(C(0)=1/2,]]>C(u)=C(v)=1(u,v=1,2…,N-1))是變換系數(shù)。
在N=8的情況下,采用上述式(3)的1維DCT行列運算用以下的行列式表示。
另外,N=7,N=6,N=5,N=4,N=3,N=2的情況,分別用下式表示。
另一方面,1維反DCT的行列運算,在N=8的情況下,用下式表示。
在N=7,N=6,N=5,N=4,N=3,N=2的情況下,分別用下式表示。
圖8是用于說明以往的DCT運算裝置的一例的圖,是展示該裝置的構(gòu)成的方框圖。在圖中,DCT運算裝置1由以下部分組成8位的輸入寄存器2a、2b、2c、2d、2e、2f、2g、2h,它們用來鎖存輸入像素數(shù)據(jù);8位的保持寄存器3a、3b、3c、3d、3e、3f、3g、3h,它們在分別鎖存寄存器2a、2b、2c、2d、2e、2f、2g、2h的各輸出數(shù)據(jù)之后,從各輸出數(shù)據(jù)的最低位位(以后稱為“LSB”。)開始每次一位移位輸出;ROM累加器(以下稱為“RAC”)4a、4b、4c、4d、4f、4e、4f、4g、4h,它們把上述各保持寄存器3a、3b、3c、3d、3e、3f、3g、3h的輸出數(shù)據(jù)作為8位的地址,在累加器42a~42h中累加ROM(只讀存儲器)41a~41h的數(shù)據(jù)輸出;輸出寄存器5a、5b、5c、5d、5e、5f、5g、5h,它們鎖存上述各RAC4a、4b、4c、4d、4f、4e、4f、4g、4h的輸出數(shù)據(jù)并輸出。
另外,上述各RAC4a、4b、4c、4d、4f、4e、4f、4g、4h,分別由以下部分構(gòu)成ROM41a~41h,它們具有包含對于在行列運算中的列系數(shù),乘法運算構(gòu)成被輸入的行或者列的各像素數(shù)據(jù)的各位的結(jié)果的和的2的8次方個數(shù)據(jù)表;累加器42a~42b,它們累加該ROM41a~41h的輸出。
這種傳統(tǒng)技術的DCT運算電路,在行列運算中使用所謂的DA(distributed arithmetic)法。該DA法,是能夠高效地進行固定系數(shù)的積和運算的運算方法,是以位列單位,而不是以通常的字單位處理各輸入像素數(shù)據(jù)和固定系數(shù)的積和運算的方法。把由各輸入像素數(shù)據(jù)的各自的位構(gòu)成的位列作為地址,從預先把部分積的計算結(jié)果作為表存儲的ROM中讀出與此地址對應的部分積,通過從LSB(LeastSignificant Bit最低位位)累加到MSB(Most Significant Bit最高位位)實現(xiàn)固定系數(shù)的積和運算。該傳統(tǒng)的DCT運算電路,通過把由N或者M像素的輸入像素數(shù)據(jù)的各自的1位構(gòu)成的位列和DCT系數(shù)的行系數(shù)進行乘法運算后的部分積的計算結(jié)果,與DCT系數(shù)的各行系數(shù)對應地作為表存儲在RAC4a~4h各自的ROM41a~41h中,把由N或者M像素的輸入像素數(shù)據(jù)的各自的1位構(gòu)成的N或者M位的位列作為地址輸入到各ROM41a~41h中,由此從ROM41a~41h輸出部分積,把該部分積從各像素數(shù)據(jù)的LSB到MSB順序輸出并累加,就可以得到1維的DCT運算結(jié)果。
接著說明有關動作。
輸入寄存器2a,鎖存8位的輸入像素數(shù)據(jù),在每個輸入周期從輸入寄存器2a到輸入寄存器2b、從輸入寄存器2b到輸入寄存器2c,進行把全部像素數(shù)據(jù)鎖存在各輸入寄存器2a、2b、2c、2d、2e、2f、2g、2h中的移位動作。其后,各輸入寄存器2a、2b、2c、2d、2e、2f、2g、2h,向分別對應的各保持寄存器3a、3b、3c、3d、3e、3f、3g、3h輸出鎖存的像素數(shù)據(jù)。和以下的8個輸入像素數(shù)據(jù)被鎖存到各輸入寄存器2a、2b、2c、2d、2e、2f、2g、2h的同時,各保持寄存器3a、3b、3c、3d、3e、3f、3g、3h,從鎖存著的8位像素數(shù)據(jù)的最低位位開始,每次一位移位輸出。各ROM41a、41b、41c、41d、41e、41f、41g、41h,把上述保持寄存器3a、3b、3c、3d、3e、3f、3g、3h輸出的8位數(shù)據(jù)作為地址,輸出與該地址對應的ROM數(shù)據(jù)。各累加器ROM42a、42b、42c、42d、42e、42f、42g、42h,累加分別對應的各ROM41a、41b、41c、41d、41e、41f、41g、41h輸出的相當于8位大小程度的ROM數(shù)據(jù),即,作為8位的數(shù)據(jù)輸出。與各RAC4a、4b、4c、4d、4f、4e、4f、4g、4h對應的輸出寄存器5a、5b、5c、5d、5e、5f、5g、5h,從輸出寄存器5h向輸出寄存器5g、從輸出寄存器5g向輸出寄存器5f,順序進行上述各累加器42a、42b、42c、42d、42e、42f、42g、42h輸出的數(shù)據(jù)的移位動作,輸出被鎖存的數(shù)據(jù)。
使用上述DCT運算裝置1,例如在把8×8作為單位塊進行像素數(shù)據(jù)的2維DCT運算的情況下,首先,通過對每一列方向的8個像素數(shù)據(jù)反復進行8次一連串的運算輸出64個中間結(jié)果,其后,對該64個中間結(jié)果在行方向上進行1維DCT。
但是,傳統(tǒng)的DCT運算裝置,例如在把8×8作為單位塊進行1維DCT運算或者反DCT運算的情況下,如果輸入像素數(shù)據(jù)是8位則需要8個具備256個的ROM表數(shù)據(jù),為了在1個裝置中進行DCT運算和反DCT運算就需要8個具備512個的ROM數(shù)據(jù)表。另外,近年,根據(jù)像素信息的壓縮標準,要求單位塊的大小可變,但上述DCT裝置因為只能對應把8×8作為單位塊的像素數(shù)據(jù),所以為了與8×8以外的例如以7×7、6×6、5×5、4×4等為單位塊的像素數(shù)據(jù)對應,就分別需要7個具備256個ROM表、6個具備128個的ROM表、5個具備64個ROM表、4個具備32個ROM表的DCT裝置。因而,為了對任意選擇N×M的單位塊的像素數(shù)據(jù)進行DCT運算以及反DCT運算,需要多個DCT運算裝置,存在這些電路面積非常大的問題。
本發(fā)明就是為了解決上述問題而提出的,其目的在于提供一種電路面積小的DCT運算裝置,它可以對不同尺寸的單位塊的像素數(shù)據(jù)進行DCT運算或者反DCT運算。
本發(fā)明,是對N×M單位塊(N以及M是從1至8的任意整數(shù))的圖象數(shù)據(jù)的像素數(shù)據(jù)進行1維DCT運算或者反DCT運算的DCT運算裝置,包括位限制單元,它以每次1行,或者每次一列輸入N×M單位塊的圖象數(shù)據(jù)的像素數(shù)據(jù),以每次一位限制輸出構(gòu)成被輸入的行或者列的各像素數(shù)據(jù);控制單元,它輸出包含表示作為構(gòu)成上述被輸入的各行或者各列的像素數(shù)據(jù)的輸入像素數(shù)據(jù)數(shù),以及,表示是進行DCT運算或者反DCT運算之一的值的控制信號;第1蝶式運算單元,它在上述控制單元輸出的控制信號,表示上述輸入像素數(shù)據(jù)數(shù)是2的冪的值,并且表示進行DCT運算的情況下,對上述位限制單元的輸出進行蝶式運算,輸出其運算結(jié)果,在其它情況下,不進行蝶式運算,直接輸出上述位限制單元的輸出;地址發(fā)生單元,它根據(jù)從上述第1蝶式運算單元的輸出得到的位列,和被包含在上述控制信號中的表示輸入像素數(shù)據(jù)數(shù),以及表示是進行DCT運算或者反DCT運算之一的值,生成地址并輸出;運算單元,它具有8組與上述地址對應地輸出用于求得1維DCT運算結(jié)果以及反DCT運算結(jié)果的乘法運算結(jié)果的乘法運算結(jié)果輸出單元,和累加該乘法運算結(jié)果輸出單元的輸出的累加單元;第2蝶式運算單元,它在上述控制單元輸出的控制信號,表示上述輸入像素數(shù)據(jù)數(shù)是2的冪的值,并且表示進行DCT運算的情況下,對上述運算單元的輸出進行蝶式運算,把其運算結(jié)果與輸入像素數(shù)據(jù)的順序?qū)嘏帕刑鎿Q輸出,在其它情況下,不進行蝶式運算,而使上述運算單元的輸出與輸入像素數(shù)據(jù)的順序?qū)嘏帕刑鎿Q輸出。由此,可以減小用于求DCT運算結(jié)果以及反DCT運算結(jié)果所使用的乘法運算結(jié)果的數(shù)據(jù)的量,可以減小輸出該數(shù)據(jù)的乘法運算結(jié)果輸出單元的數(shù)據(jù)容量,可以得到回路面積小的DCT運算裝置。
另外,本發(fā)明設置成,上述地址發(fā)生單元進行如下操作從而根據(jù)上述第1蝶式運算單元的輸出、輸入像素數(shù)據(jù)數(shù)、表示是進行DCT運算或者反DCT運算之一的值生成地址,在上述控制信號,表示上述輸入像素數(shù)據(jù)數(shù)的值是7、6、5、3之一的情況下,對根據(jù)上述第1蝶式運算裝置的輸出構(gòu)成的7、6、5、3位的各個位列,生成附加了包含表示是否進行DCT運算或者反DCT運算之一的值并且表示上述輸入像素數(shù)據(jù)數(shù)的值的2、3、4、6位的各自的頭地址的地址;在上述控制信號,表示上述輸入像素數(shù)據(jù)數(shù)是8、4、2之一的情況下,并且表示進行DCT運算的情況下,對通過上述第1蝶式運算單元蝶式運算的加法運算結(jié)果構(gòu)成的4、2、1位的各自的位列,以及根據(jù)減法運算結(jié)果構(gòu)成的4、2、1位的各自的位列,生成附加了包含用于表示進行DCT運算的值并且表示上述輸入像素數(shù)據(jù)數(shù)的值的5、7、8位的各自的頭地址的地址;在上述控制信號,表示上述輸入像素數(shù)據(jù)數(shù)是8、4、2之一的情況下,并且表示進行反DCT運算的情況下,對根據(jù)上述第1蝶式運算單元的8、4、2位的各自的輸出構(gòu)成的4、2、1位的各自的位列,生成附加了包含用于表示進行反DCT運算的值并且表示上述輸入像素數(shù)據(jù)數(shù)的值的5、7、8位的各自的頭地址的地址,并且,作為上述頭地址,對于根據(jù)上述第1蝶式運算單元的輸出構(gòu)成的地址,附加這樣的位列,即通過附加該頭地址得到的全部地址,成為連續(xù)的地址。由此,可以以在乘法運算結(jié)果輸出單元內(nèi)不產(chǎn)生多余區(qū)域那樣的高效率變換乘法運算輸出單元,可以消減乘法運算結(jié)果輸出單元的大小,可以使DCT運算裝置的電路面積更小。
另外,本發(fā)明設置成,上述乘法運算結(jié)果輸出單元通過如下操作生成上述乘法運算結(jié)果,在上述控制單元輸出的控制信號,表示上述輸入像素數(shù)據(jù)數(shù)是2的冪,并且表示進行DCT運算的情況下,輸出在進行了快速傅立葉變換的DCT的行列運算中的從上述第1蝶式運算單元的輸出得到的與位列有關的乘法運算結(jié)果;在上述控制單元輸出的控制信號,表示上述輸入像素數(shù)據(jù)數(shù)是2的冪以外的值,并且表示進行DCT運算的情況下,輸出在DCT的行列運算中的與從上述第1蝶式運算單元的輸出得到的有關位列的乘法運算結(jié)果;在上述控制單元輸出的控制信號,表示上述輸入像素數(shù)據(jù)數(shù)是2的冪的值,并且表示進行反DCT運算的情況下,輸出在進行了快速傅立葉變換的反DCT的行列運算中的與從上述第1蝶式運算單元的輸出得到的與位列有關的乘法運算結(jié)果;在上述控制單元輸出的控制信號,表示上述輸入像素數(shù)據(jù)數(shù)是2的冪以外的值,并且表示進行反DCT運算的情況下,輸出在反DCT行列運算中的與從上述第1蝶式運算單元輸出中得到的與列位有關的乘法運算結(jié)果。由此,可以使DCT運算裝置的電路面積更小。
另外,本發(fā)明設置成,上述DCT運算裝置,在控制信號表示輸入像素數(shù)據(jù)數(shù)是8以外的值的情況下,停止在運算中尚未使用的單元的動作。由此,可以消減消耗電力。
另外,本發(fā)明,是對N×M單位塊(N以及M是1以上的任意整數(shù))的圖象數(shù)據(jù)的像素數(shù)據(jù)進行1維的DCT運算的DCT運算裝置,包括位限制單元,它以每次1行或者每次1列輸入N×M單位塊的圖象數(shù)據(jù)的像素數(shù)據(jù),把構(gòu)成輸入的行或者列的各像素數(shù)據(jù)限制為每次輸出1位;控制單元,它輸出表示作為構(gòu)成上述輸入的各行或者各列的像素數(shù)據(jù)數(shù)的輸入像素數(shù)據(jù)數(shù)的控制信號;蝶式運算單元,它在該控制單元輸出的控制信號,表示上述輸入像素數(shù)據(jù)數(shù)是2的冪的情況下,對上述位限制單元的輸出進行蝶式運算,輸出其運算結(jié)果,在其它的去,不進行蝶式運算,而直接輸出上述位限制單元的輸出;地址發(fā)生單元,它使用從上述蝶式單元的輸出中得到的位列和包含在上述控制信號中的輸入像素數(shù)據(jù)數(shù)生成地址并輸出;運算單元,它具備與上述地址對應輸出用于求1維的DCT運算結(jié)果的乘法運算結(jié)果的乘法運算結(jié)果輸出單元,以及累加上述乘法運算結(jié)果輸出單元輸出的乘法運算結(jié)果并輸出的累加電路的組,組數(shù)與上述輸入像素數(shù)據(jù)數(shù)的最大值對應;輸出單元,它對應輸入的素數(shù)據(jù)的順序排列替換上述運算單元的輸出,作為1維DCT運算結(jié)果輸出。由此,可以減小成為用于求DCT運算結(jié)果的乘法運算結(jié)果的數(shù)據(jù)的量,可以減小輸出該數(shù)據(jù)的乘法運算結(jié)果輸出單元的數(shù)據(jù)容量,可以得到電路面積小的DCT運算裝置。
另外,本發(fā)明設置成,上述地址發(fā)生單元,進行如下操作從而生成作為根據(jù)上述第1蝶式運算單元的輸出和上述輸入像素數(shù)據(jù)數(shù)生成的地址,在上述控制信號,表示上述輸入像素數(shù)據(jù)數(shù)是2的冪以外的值的前情況下,對根據(jù)上述第1蝶式運算單元的輸出構(gòu)成的和輸入像素數(shù)據(jù)數(shù)具有相同位數(shù)的地址,生成附加了用于表示上述輸入像素數(shù)據(jù)數(shù)的值的頭地址的地址;在上述控制信號,表示上述輸入像素數(shù)據(jù)數(shù)是2的冪的情況下,對根據(jù)由上述第1蝶式運算單元蝶式運算出的加法運算結(jié)果構(gòu)成和上述輸入像素數(shù)據(jù)數(shù)的一半具有同樣位數(shù)的位列,以及根據(jù)減法運算結(jié)果構(gòu)成和上述輸入像素數(shù)據(jù)數(shù)的一半具有相同位數(shù)的位列的各自,生成附加了用于表示上述像素輸入像素數(shù)據(jù)數(shù)的值的頭地址的地址,并且,作為上述頭地址,對根據(jù)上述第1蝶式運算單元的輸出構(gòu)成的地址,附加這樣的位列,即通過附加該頭地址得到的全部的地址成為連續(xù)的地址,并且其位數(shù)成為和上述輸入像素數(shù)據(jù)數(shù)的最大值是相同位數(shù)。由此,可以以在乘法運算結(jié)果輸出單元內(nèi)不發(fā)生多余區(qū)域那樣的高效率,變換乘法運算結(jié)果輸出單元,可以消減乘法運算結(jié)果輸出單元的大小,可以使DCT運算裝置的電路面積更小。
另外,本發(fā)明設置成,上述蝶式運算裝置,對像素數(shù)據(jù)進行順序相互加法運算,以及順序相互減法運算,所謂順序相互加法運算以及順序相互減法運算,是把以每次一行或者每次一列輸入到位限制電路中并且以每次限制一位輸出的像素數(shù)據(jù),從被輸入的列或者行的兩端向內(nèi)側(cè)順序相互加法運算以及減法運算。
另外,本發(fā)明設置成,上述乘法運算結(jié)果輸出單元,進行如下操作以生成乘法運算結(jié)果,在上述控制單元輸出的控制信號,表示上述輸入像素數(shù)據(jù)數(shù)是2的冪的情況下,輸出在進行了快速傅立葉變換的DCT的行列運算中的從上述第1蝶式運算單元的輸出得到的與位列有關的乘法運算結(jié)果;在上述控制單元輸出的控制信號,表示上述輸入像素數(shù)據(jù)數(shù)是2的冪以外的值的情況下,輸出在DCT的行列運算中,從上述第1蝶式運算單元的輸出得到的與位列有關的乘法運算結(jié)果。由此,可以使DCT運算裝置的電路面積更小。
另外,本發(fā)明,是對N×M單位塊(N以及M是1以上的任意的整數(shù))的圖象數(shù)據(jù)的像素數(shù)據(jù)進行1維的反DCT運算的DCT運算裝置,包括位限制單元,它把N×M單位塊的圖象數(shù)據(jù)的像素數(shù)據(jù)以每次一行或者每次一列輸入,把構(gòu)成輸入的行或者列的各像素數(shù)據(jù)限制為每次輸出一位;控制單元,它輸出表示作為構(gòu)成上述輸入的各行或者各列的像素數(shù)據(jù)數(shù)的輸入像素數(shù)據(jù)數(shù)的控制信號;地址發(fā)生單元,它用從上述位限制單元的輸出中得到的位列和被包含在上述控制信號中的輸入像素數(shù)據(jù)數(shù)生成地址并輸出;運算單元,它具備與上述地址對應輸出用于求1維的DCT運算結(jié)果的乘法運算結(jié)果輸出單元,以及累加上述乘法運算結(jié)果輸出單元輸出的乘法運算結(jié)果并輸出的累加電路的組,其組數(shù)與上述輸入像素數(shù)據(jù)數(shù)的最大值對應;蝶式運算單元,它在上述控制單元輸出的控制信號,表示上述輸入像素數(shù)據(jù)數(shù)是2的冪的情況下,對上述運算單元的輸出進行蝶式運算,把其運算結(jié)果與輸入像素數(shù)據(jù)的順序?qū)嘏帕刑鎿Q輸出,在其它情況下,不進行蝶式運算,而使上述運算單元的輸出與輸入像素數(shù)據(jù)的順序?qū)嘏帕刑鎿Q輸出。由此,可以使成為用于求反DCT運算結(jié)果的乘法運算結(jié)果的數(shù)據(jù)的量減小,可以使輸出該數(shù)據(jù)的乘法運算結(jié)果輸出單元的數(shù)據(jù)容量減小,可以得到電路面積小的的DCT運算裝置。
另外,本發(fā)明設置成,上述地址發(fā)生單元,進行如下操作根據(jù)上述位限制單元的輸出和上述輸入像素數(shù)據(jù)數(shù)生成地址,在上述控制信號,表示上述輸入像素數(shù)據(jù)數(shù)是2的冪以外的值的情況下,對根據(jù)上述位限制單元的輸出構(gòu)成的成為和上述輸入像素數(shù)據(jù)數(shù)相同位數(shù)的位列,生成附加了用于表示上述輸入像素數(shù)據(jù)數(shù)的值的頭地址的地址;在上述控制信號,表示上述輸入像素數(shù)據(jù)數(shù)是2的冪的情況下,對根據(jù)上述位限制單元的輸出構(gòu)成的,成為和上述輸入像素數(shù)據(jù)數(shù)的一半具有相同位數(shù)的位列的各自,生成附加了用于表示上述輸入像素數(shù)據(jù)數(shù)的值的頭地址的地址,并且,作為上述頭地址,對于根據(jù)上述位限制單元的輸出構(gòu)成的地址,附加這樣的位列,即,通過附加該頭地址得到全部的地址成為連續(xù)的地址,并且其位數(shù),成為和構(gòu)成上述被輸入的行或者列的輸入像素數(shù)據(jù)數(shù)的最大值同樣的位數(shù)。由此,可以以在乘法運算結(jié)果輸出單元內(nèi)不產(chǎn)生多余區(qū)域那樣的高效率,變換乘法運算輸出單元,可以消減乘法運算結(jié)果輸出單元的大小,可以使DCT運算裝置的電路面積更小。
另外,本發(fā)明設置成,上述蝶式運算單元,對根據(jù)上述運算單元輸出的以每次一行或者每次一列輸入的像素數(shù)據(jù)中的根據(jù)在奇數(shù)位的像素數(shù)據(jù)求得的上述乘法運算結(jié)果進行了累加的值,和根據(jù)在偶數(shù)位的像素數(shù)據(jù)求得的上述乘法運算結(jié)果進行了累加的值進行加法運算以及減法運算。由此,可以進一步縮小DCT運算裝置的電路面積。
另外,本發(fā)明設置成,上述乘法運算結(jié)果輸出單元,作為上述乘法運算結(jié)果,在上述控制單元輸出的控制信號,表示上述輸入像素數(shù)據(jù)數(shù)是2的冪的情況下,輸出在進行快速傅立葉變換的反DCT行列運算中的從上述第1蝶式運算單元的輸出得到的與位列有關的乘法運算結(jié)果,在上述控制單元輸出的控制信號,表示上述輸入像素數(shù)據(jù)數(shù)是2的冪以外的值的情況下,輸出在反DCT行列運算中的從上述第1蝶式運算單元輸出得到的與位列有關的乘法運算結(jié)果。由此,可以進一步減小DCT運算裝置的電路面積。
另外,本發(fā)明,其中,輸入到上述位限制單元的像素數(shù)據(jù)單位塊是N×M單位塊(N以及M是從1到8的任意的值),上述運算單元中所具備的包含乘法運算結(jié)果輸出單元和累加單元的組,具有作為上述輸入像素數(shù)據(jù)數(shù)的最大值的8組。由此,可以使DCT運算裝置的電路面積更小。
另外,本發(fā)明設置成,上述位限制單元,在作為被輸入的各像素數(shù)據(jù)輸入16位的數(shù)據(jù)的同時,把該16位的數(shù)據(jù)限制為每次輸出2位,上述運算單元,作為上述各乘法運算結(jié)果輸出單元,具備相互并列設置的分別輸出上述乘法運算結(jié)果的2個乘法運算結(jié)果輸出部分,用上述累加單元累加對這2個乘法運算結(jié)果輸出部分的輸出進行加法運算后的數(shù)據(jù)。由此,在輸入像素數(shù)據(jù)是16位的數(shù)據(jù)的情況下,可以進一步減小DCT運算單元的電路面積。
另外,本發(fā)明中的上述DCT運算單元,在控制信息表示構(gòu)成被輸入的行或者列的輸入像素數(shù)據(jù)數(shù)的值是上述輸入像素數(shù)據(jù)數(shù)的最大值以外的值的情況下,停止尚未使用的單元的動作。由此,可以消減消耗電力。
圖1是本發(fā)明的實施例1的DCT運算裝置的構(gòu)成的方框圖。
圖2是本發(fā)明的實施例1的第1蝶式運算電路的內(nèi)部構(gòu)成的圖。
圖3是本發(fā)明的實施例1的第2蝶式運算電路的內(nèi)部構(gòu)成的圖。
圖4是本發(fā)明的實施例1的ROM地址的變換圖。
圖5是本發(fā)明的實施例1的ROM使用數(shù)據(jù)容量的變換圖。
圖6是用于說明對于本發(fā)明的實施例1的8×7像素塊的DCT運算的概略圖。
圖7是用于說明對于本發(fā)明的實施例1的6×4像素塊的反DCT運算的概略圖。
圖8是以往的DCT運算裝置的構(gòu)成的方框圖。
圖9是本發(fā)明的實施例4的DCT運算裝置的構(gòu)成的方框圖。
圖10是本發(fā)明的實施例4的運算裝置的構(gòu)成的方框圖。
圖11是本發(fā)明的實施例4的DCT運算裝置的構(gòu)成的方框圖。
本實施例1的DCT裝置,以每次一列或者每次一行輸入以N×M(N,M是從1至8的任意整數(shù))的像素數(shù)據(jù)構(gòu)成的單位塊的像素數(shù)據(jù),在對它們進行DCT運算或者反DCT運算的同時,尤其在N或者M是2的冪的情況下,即,在N=8、N=4、N=2的情況下,利用頻移形快速傅立葉變換(以下,稱為“FFT”。)。
如果使用上述FFT,則上述DCT的行列運算,在N=8的情況下用下式表示。 在N=4的情況下,用下式表示。 在N=2的情況下,用下式表示。 另一方面,反DCT的行列運算,在N=8的情況下,用下式表示。 在N=4的情況下,用下式表示。 在N=2的情況下,用下式表示。 如這些算式所示,通過利用FFT,就可以大幅度消減行列運算的運算量。
在本實施例1中,通過利用所謂的蝶式運算,就可以對DCT運算或者反DCT運算的行列式適用FFT,可以用少的運算量執(zhí)行DCT運算或者反DCT運算。
以下,說明有關本DCT運算裝置的構(gòu)成。
圖1,是用于說明本實施例1的DCT運算裝置的圖,是展示該裝置的構(gòu)成的方框圖。在圖中,DCT運算裝置100由以下部分構(gòu)成控制電路101,它輸出表示構(gòu)成N×M的單位塊的像素數(shù)據(jù)的個數(shù)N以及M的信號;位限制電路102,它對被輸入的8位的各像素數(shù)據(jù)的LSB限制每次輸出1位;第1蝶式運算電路103,它對該位限制電路102的輸出進行蝶式運算;ROM地址發(fā)生電路104,它根據(jù)該第1蝶式運算電路103的輸出,生成ROM地址;RAC105,它讀出與該ROM地址對應的ROM數(shù)據(jù)并累加;第2蝶式運算電路106,它對該RAC105的輸出進行蝶式運算。
另外,上述RAC105由以下部分構(gòu)成ROM0、ROM1、ROM2、ROM3、ROM4、ROM5、ROM6、ROM7,它們用于進行DCT運算以及反DCT運算;累加電路51a、51b、51c、51d、51e、51f、51g、51h,它們累加各ROM的輸出。在本實施例1中,ROM0~7是1個ROM內(nèi)的多個ROM區(qū)域。
該DCT運算電路設置成,在行列運算中使用DA法,把在DCT的行列運算、反DCT的行列運算、快速傅立葉變換后的DCT的行列運算,以及快速傅立葉變換后的反DCT的行列運算的各自中的,通過從第1蝶式運算電路103的各輸出中以每次1位取出數(shù)據(jù)得到的與位列有關的乘法運算結(jié)果,在ROM0~ROM7的各自中作為表存儲,把從第1蝶式運算電路103的各輸出得到的位列作為地址輸入各ROM,由此通過從ROM輸出上述乘法運算結(jié)果,把該乘法運算結(jié)果從各像素數(shù)據(jù)的LSB到MSB順序輸出,在累加電路51a~51h中累加,就可以得到行列運算結(jié)果。
進而,在上述ROM0~ROM7中,存儲作為與上述像素數(shù)據(jù)的數(shù)N或者M是2的冪的情況有關的乘法運算結(jié)果,在進行了快速傅立葉變換的DCT以及反DCT的行列運算中的從第1蝶式運算電路103的輸出得到的與位列有關的乘法運算結(jié)果;存儲作為與上述像素數(shù)據(jù)的數(shù)N或者M是2的冪以外的值的情況有關的乘法運算結(jié)果,在不進行快速傅立葉變換的通常的DCT以及反DCT的行列運算中的從第1蝶式運算電路103的輸出得到的與位列有關的乘法運算結(jié)果。
即,從第1蝶式運算電路103的以位為單位的輸出得到的位列和在上述的式(5)~式(7)、式(9)、式(12)~式(14)、式(16)以及式(18)~式(23)中所示的行列運算的系數(shù)的部分積的計算結(jié)果作為表被存儲在ROM0~ROM7中。
進而,因為成為輸入像素數(shù)據(jù)數(shù)的N或者M的值可變,所以ROM和累加電路的組數(shù)被設置成N或者M的值的最大數(shù),在此是8組。另外,在本實施例1中,因為N或者M的值可變,在DCT運算以及反DCT運算中使用的系數(shù)也改變,所以在各ROM0~ROM7中,分別存儲與N或者M的值變化的情況適應的部分積的結(jié)果。
圖2,是上述第1蝶式運算電路103的內(nèi)部構(gòu)成的一例的方框圖。該第1蝶式運算電路103,在控制信號是進行DCT運算的情況下,表示像素數(shù)據(jù)的個數(shù)N或者M是2的冪,即在2、4、8的情況下進行蝶式運算,在除此以外的情況下不進行蝶式運算輸出數(shù)據(jù),其構(gòu)成包括數(shù)據(jù)線30a、30b、30c、30d、30e、30f、30g、30h,它們以上述位限制電路102輸出的各像素數(shù)據(jù)的位信號作為輸入;第1選擇電路31a,它在控制信號表示N或者M是8的情況下選擇數(shù)據(jù)線30h,在控制信號表示N或者M是4的情況下選擇數(shù)據(jù)線30d,在控制信號表示N或者M是2的情況下選擇數(shù)據(jù)線30d;第2選擇電路31b,它在控制信號表示N或者M是8的情況下選擇數(shù)據(jù)線30g,在控制信號表示N或者M是4的情況下選擇數(shù)據(jù)線30c;第1加法運算電路32a,它加法運算從數(shù)據(jù)線30a和第1選擇電路31a輸入的數(shù)據(jù);第2加法運算電路32b,它加法運算從數(shù)據(jù)線30b和第2選擇電路31b輸入的數(shù)據(jù);第3加法運算電路32c,它加法運算從數(shù)據(jù)線30c和數(shù)據(jù)線30d輸入的數(shù)據(jù);第4加法運算電路32d,它加法運算從數(shù)據(jù)線30d和數(shù)據(jù)線30e輸入的數(shù)據(jù);第1減法運算電路33a,它減法運算從數(shù)據(jù)線30d和數(shù)據(jù)線30e輸入的信號;第2減法運算電路33b,它減法運算從數(shù)據(jù)線30c和數(shù)據(jù)線30f輸入的數(shù)據(jù);第3減法運算電路33b,它減法運算從數(shù)據(jù)線30b和第2選擇電路31b輸入的數(shù)據(jù);第4減法運算電路33d,它減法運算從數(shù)據(jù)線30a和第1選擇電路31a輸入的數(shù)據(jù)。該第1蝶式運算電路104,輸出順序相互加法運算像素數(shù)據(jù)的值,以及順序相互減法運算像素數(shù)據(jù)的值的蝶式運算,所謂順序相互加法運算以及順序相互減法運算像素數(shù)據(jù),是把以每次1行或者每次1列輸入到位限制電路102中,并且以每次1位限制輸出的像素數(shù)據(jù),從被輸入的列或者行的兩端向內(nèi)側(cè)順序相互進行加法運算以及減法運算。
圖3是上述第2蝶式運算電路106的內(nèi)部構(gòu)成的一例的方框圖。該第2蝶式運算電路106,在控制信號表示進行反DCT運算的情況,表示像素數(shù)據(jù)的個數(shù)的N或者M是2的冪,即在2、4、8的情況下進行蝶式運算,在除此以外的情況下不進行蝶式運算輸出數(shù)據(jù),其構(gòu)成包括寄存器60a、60b、60c、60d、60e、60f、60g、60h,它們鎖存上述RAC105的各累加電路51a、51b、51c、51d、51e、51f、51g、51h的輸出;寄存器61a,它鎖存上述各寄存器60a、60c、60e、60g的輸出;寄存器61b,它鎖存上述各寄存器60b、60d、60f、60h的輸出;加法運算器,62,它加法運算從上述寄存器61a和寄存器61b輸入的數(shù)據(jù);寄存器63,它鎖存該加法運算器62的輸出。該第2蝶式運算電路106,將上述RAC105輸出的在以上述每次1行或者每次1列輸入的像素數(shù)據(jù)中的奇數(shù)位上的像素數(shù)據(jù)和由FFT得到的行列系數(shù)的運算結(jié)果,和偶數(shù)位上的像素數(shù)據(jù)和由FFT得到的行列系數(shù)的運算結(jié)果進行加法運算和減法運算,并輸出結(jié)果值。
接著,說明由ROM地址發(fā)生電路104生成的ROM地址。該ROM地址發(fā)生電路104,直接利用由第1蝶式運算電路104的輸出構(gòu)成的位列,通過在其上加頭地址設置成地址,進而就是加這樣的頭地址,即,加上該頭地址的結(jié)果,得到的全部的地址,就成為連續(xù)的地址。該頭地址,根據(jù)控制電路101輸出的控制信號表示的,表示N或者M的值,和表示進行DCT運算或者反DCT運算之一的值確定。
如圖4所示,在N或者M的值是7的情況下的DCT運算中,在根據(jù)從第1蝶式運算電路103的各數(shù)據(jù)線30g、30f、30e、30d、30c、30b、30a輸出的信號A6、A5、A4、A3、A2、A1、A0構(gòu)成的7位的信號上,在作為其高位位的A7上附加0,進而,在由信號A7、A6、A5、A4、A3、A2、A1、A0組成的8位的信號上,附加表示進行DCT運算的值0組成9位的信號,把它作為ROM地址生成。
同樣,在N或者M的值是6的情況下的DCT運算中,在根據(jù)從第1蝶式運算電路103的各數(shù)據(jù)線30f、30e、30d、30c、30b、30a輸出的信號A6、A5、A4、A3、A2、A1、A0構(gòu)成的6位的信號上,在作為其高位位的A7、A6上分別附加1、0,在N或者M的值是5的情況下,在根據(jù)從第1蝶式運算電路103的各數(shù)據(jù)線30e、30d、30c、30b、30a輸出的信號A4、A3、A2、A1、A0構(gòu)成的5位的信號上,在作為其高位位的A7、A6、A5上分別附加1、1、0,在N或者M的值是8的情況下,在根據(jù)從第1蝶式運算電路103的數(shù)據(jù)線34a、34b、34c、34d,或者數(shù)據(jù)線34e、34f、34g、34h輸出的信號A3、A2、A1、A0構(gòu)成的4位信號上,在作為其高位位的A7、A6、A5、A4上分別附加1、1、1、0,在N或者M的值是3的情況下,在根據(jù)從第1蝶式運算電路103的各數(shù)據(jù)線30c、30b、30a輸出的信號A2、A1、A0構(gòu)成的3位信號上,在作為其高位位的A7、A6、A5、A4、A3上分別附加1、1、1、1、0,在N或者M的值是4的情況下,在根據(jù)從第1蝶式運算電路103的數(shù)據(jù)線34a、34b,或者34e、34f輸出的信號A1、A0構(gòu)成的2位信號上,在作為其高位位的A7、A6、A5、A4、A3、A2上分別附加1、1、1、1、1、0,在N或者M的值是2的情況下,在基于從第1蝶式運算電路103的數(shù)據(jù)線34a,或者數(shù)據(jù)線34e輸出的信號A0的1位信號上,在作為其高位位的A7、A6、A5、A4、A3、A2、A1上分別附加1、1、1、1、1、1、0,進而,把在由上述各A7、A6、A5、A4、A3、A2、A1、A0組成的8位信號上,附加表示是DCT運算的0組成的9位的信號作為ROM地址生成。
當進行反DCT運算的情況下,在由各A7、A6、A5、A4、A3、A2、A1、A0組成的8位的信號上,在其最高位上附加1,生成ROM地址。
即,在N或者M的值是7的情況下的反DCT運算中,在根據(jù)從第1蝶式運算電路103的各數(shù)據(jù)線30g、30f、30e、30d、30c、30b、30a輸出的信號A6、A5、A4、A3、A2、A1、A0構(gòu)成的7位的信號上,在作為其高位位的A7上附加0,進而,把在由該信號A7、A6、A5、A4、A3、A2、A1、A0組成的8位的信號上,附加表示是反DCT運算的1組成的9位的信號作為ROM地址生成。
同樣,在N或者M的值是6的情況下的反DCT運算中,在根據(jù)從第1蝶式運算電路103的各數(shù)據(jù)線30f、30e、30d、30c、30b、30a輸出的信號A6、A5、A4、A3、A2、A1、A0構(gòu)成的6位的信號上,在作為其高位位的A7、A6上分別附加1、0,在N或者M的值是5的情況下,在根據(jù)從第1蝶式運算電路103的各數(shù)據(jù)線30e、30d、30c、30b、30a輸出的信號A4、A3、A2、A1、A0構(gòu)成的5位的信號上,在作為其高位位的A7、A6、A5上分別附加1、1、0,在N或者M的值是8的情況下,在根據(jù)從第1蝶式運算電路103的數(shù)據(jù)線30g、30e、30c、30a,或者數(shù)據(jù)線30h、30f、30d、30b輸出的信號A3、A2、A1、A0構(gòu)成的4位的信號上,在作為高位位的A7、A6、A5、A4上分別附加1、1、1、0,在N或者M的值是3的情況下,在根據(jù)從第1蝶式運算電路103的各數(shù)據(jù)線30c、30b、30a輸出的信號A2、A1、A0構(gòu)成的3位的信號上,在作為其高位位的A7、A6、A5、A4、A3上分別附加1、1、1、1、0,在N或者M的值是4的情況下,在根據(jù)從第1蝶式運算電路103的各數(shù)據(jù)線30c、30a,或者30d、30b輸出的信號A1、A0構(gòu)成的2位的信號上,在作為其高位位的A7、A6、A5、A4、A3、A2上分別附加1、1、1、1、1、0,在N或者M的值是2的情況下,在基于從第1蝶式運算電路103輸出的數(shù)據(jù)線30a,或者30b輸出的信號A0的1位的信號上,在作為其高位位的A7、A6、A5、A4、A3、A2、A1上分別附加1、1、1、1、1、1、0,進而,把在由上述各A7、A6、A5、A4、A3、A2、A1、A0組成的8位的信號上,附加表示是反DCT運算的1組成的9位的信號作為ROM地址生成。
在ROM地址發(fā)生電路104中,通過生成上述那樣的地址,就可以把RAC具有的對各ROM的地址的數(shù)據(jù)數(shù)設置成512個。但是,包含圖3所示的4個未使用地址的數(shù)據(jù)部分。
圖5是被記錄在RAC105的各ROM中的ROM數(shù)據(jù)的變換圖。在N或者M為從1到8的情況下的用于進行DCT運算或者反DCT運算的乘法運算結(jié)果,對應ROM地址,被存儲在ROM0、ROM1、ROM2、ROM3、ROM4、ROM5、ROM6、ROM7中。
以下,說明該DCT運算裝置100的動作。
在此,說明以8×7構(gòu)成的像素數(shù)據(jù)為輸入,用該DCT裝置100進行DCT運算的情況。
首先,控制電路101,輸出表示輸入像素數(shù)據(jù)的個數(shù)N或者M,和進行DCT運算或者反DCT運算的信號。這種情況下,是表示N=8、M=7、進行DCT運算的信號。接著,位限制電路102,把輸入的列方向的8個像素數(shù)據(jù),從各像素數(shù)據(jù)的LSB開始以每次1位輸出。第1蝶式運算電路103,接收表示N=8的信號,進行用式(18)表示的蝶式運算。即,第1選擇電路31a選擇數(shù)據(jù)線30h,第2選擇電路31b選擇數(shù)據(jù)線30g。第1加法運算電路32a加法運算由被第1選擇電路31a選擇出的數(shù)據(jù)線30h輸入的信號,和由數(shù)據(jù)線30a輸入的信號。另外,第2加法運算電路32b加法運算由被第2選擇電路31b選擇出的數(shù)據(jù)線30g輸入的信號,和由數(shù)據(jù)線30b輸入的信號。進而,第3加法運算電路32c加法運算從數(shù)據(jù)線30c和數(shù)據(jù)線30f輸入的數(shù)據(jù),第4加法運算電路32d加法運算從數(shù)據(jù)線30d和數(shù)據(jù)線30e輸入的數(shù)據(jù)。
另一方面,第1減法運算電路33a減法運算從數(shù)據(jù)線30d和數(shù)據(jù)線30e輸入的信號,第2減法運算電路33b減法運算從數(shù)據(jù)線30c和數(shù)據(jù)線30f輸入的數(shù)據(jù)。進而,第3減法運算電路33c減法運算從被上述第2選擇電路31b選擇出的數(shù)據(jù)線30g,和由數(shù)據(jù)線30b輸入的數(shù)據(jù),第4減法運算電路33d,減法運算從被上述第1選擇電路31a選擇出的數(shù)據(jù)線30h,和數(shù)據(jù)線30a輸入的數(shù)據(jù)。
第1蝶式運算電路103這樣進行蝶式運算。該算式,執(zhí)行式(18)的右邊所示的,x0+x7、x1+x6、x2+x5、x3+x4、x0-x7、x1-x6、x2-x5、x3-x4的加減運算。
ROM地址發(fā)生電路104,根據(jù)上述第1蝶式運算電路103的輸出,生成ROM地址信號輸出。即,ROM地址發(fā)生電路104,在以上述x0+x7、x1+x6、x2+x5、x3+x4所表示的信號順序構(gòu)成的4位的信號上,在該4位信號的高位5位上附加01110,生成9位的ROM地址。該ROM地址,被輸出到RAC105的ROM0、ROM2、ROM4、ROM6中。另外,ROM地址發(fā)生電路104,在以上述x0-x7、x1-x6、x2-x5、x3-x4所表示的信號順序構(gòu)成的4位的信號上,在第4位的高位5位上附加01110,生成9位的ROM地址。該ROM地址,被輸出到RAC的ROM1、ROM3、ROM5、ROM7中。
RAC105的ROM0、ROM1、ROM2、ROM3、ROM4、ROM5、ROM6、ROM7,輸出由ROM地址發(fā)生電路104生成的與ROM地址對應的數(shù)據(jù),累加各ROM的輸出的累加電路51a、51b、51c、51d、51e、51f、51g、51h,累加各ROM的輸出后輸出。由此,算出式(18)所示的X0、X2、X4、X6、X3、X5、X7。
第2蝶式運算電路106,把RAC的各累加電路51a、51b、51c、51d、51e、51f、51g、51h的輸出,作為DCT運算后的8個像素數(shù)據(jù)輸出。即,第2蝶式運算電路106的各寄存器60a、60b、60c、60d、60e、60f、60g、60h,鎖存RAC105的各累加電路51a、51b、51c、51d、51e、51f、51g、51h的輸出信號,按照被輸入的順序從上述各寄存器輸出。
這樣,重復7次對在列方向上每次輸入的8個像素數(shù)據(jù)的一連串的運算(圖6(a)),由此輸出相對56個像素數(shù)據(jù)的中間結(jié)果結(jié)束1維DCT運算(圖6(b))。
接著,對于上述56個中間結(jié)果(圖6(b)),在行方向上每次以7個像素數(shù)據(jù)輸入DCT運算裝置100。這種情況下,執(zhí)行式(5)所示的運算。用和上述相同的動作,重復8次對每輸入7個像素數(shù)據(jù)的一連串運算(圖6(c)),由此結(jié)束對56個像素數(shù)據(jù)的2維DCT運算(圖6(d))。
進而,在這種情況下,因為第8個像素數(shù)據(jù)不存在,所以上述位限制電路102,對應7個輸入像素數(shù)據(jù)進行位限制動作,另外,RAC105的ROM7以及累加電路51h,不進行動作。
接著,說明以用6×4構(gòu)成的像素數(shù)據(jù)作為輸入,由該DCT裝置100進行反DCT運算的情況。
首先,控制電路101,輸出表示輸入像素數(shù)據(jù)的個數(shù)N或者M,和進行DCT運算或者反DCT運算的信號。這種情況下,是表示N=6、N=4、進行反DCT運算的信號。接著,位限制電路102,從各像素數(shù)據(jù)的LSB開始以每次1位輸出已被輸入的列方向的6個像素數(shù)據(jù)。第1蝶式運算電路103,接收N=6以及表示反DCT的信號,不進行蝶式運算,而直接輸出輸入像素數(shù)據(jù)。
ROM地址發(fā)生電路104,根據(jù)上述第1數(shù)據(jù)運算電路103的輸出,生成ROM地址信號并輸出。
當N=6的情況下,ROM地址發(fā)生電路104,在按照信號A5、A4、A3、A2、A1、A0的順序構(gòu)成的6位信號上,在該6位信號的高位3位上附加110,生成9位的ROM地址。該ROM地址,被輸出到RAC105的ROM0、ROM1、ROM2、ROM3、ROM4、ROM5。
RAC105的ROM0、ROM1、ROM2、ROM3、ROM4、ROM5,輸出由ROM地址發(fā)生電路104生成的與ROM地址對應的數(shù)據(jù),累加各ROM輸出的累加電路51a、51b、51c、51d、51e、51f,累加各ROM的輸出后輸出。由此算出式(13)所示的X0、X1、X2、X3、X4、X5。
進而,RAC105的ROM6、ROM7,以及累加電路51g、51h,因為對應的輸入像素數(shù)據(jù)不存在,所以不動作。
第2蝶式運算電路,接收N=6以及表示反DCT運算的控制信號,把RAC105的各累加電路51a、51b、51c、51d、51e、51f的輸出,作為被反DCT運算后的6個像素數(shù)據(jù)輸出。即,第2蝶式運算電路106的各寄存器60a、60b、60c、60d、60e、60f,鎖存RAC105的各累加電路51a、51b、51c、51d、51e、51f的輸出信號,按照被輸入的順序從各寄存器輸出。
這樣,重復4次對在列方向上每輸入6個像素數(shù)據(jù)的一連串運算(圖7(a)),由此輸出相對24個像素數(shù)據(jù)的中間結(jié)果結(jié)束1位DCT運算(圖7(b))。
接著,上述24個中間結(jié)果(圖7(b)),在行方向上以每次4個像素數(shù)據(jù)輸入DCT運算裝置100。在此,也和上述的動作一樣,重復6次對輸入的每4個像素數(shù)據(jù)的一連串的運算(圖7(c)),由此,結(jié)束對于24個像素數(shù)據(jù)的2維DCT運算(圖7(d))。
即,控制電路101,輸出表示M=4、進行反DCT運算的信號。接著,位限制電路102,從各像素數(shù)據(jù)的LSB開始以每次一位輸出已被輸入的行方向的4的像素數(shù)據(jù)。第1蝶式運算電路103,接收表示M=4以及反DCT的信號,不進行蝶式運算,而直接輸出被限制為每次一位的輸入像素數(shù)據(jù)。
ROM地址發(fā)生電路104,根據(jù)上述第1蝶式運算電路103的輸出,生成并輸出ROM地址信號。即,在作為RAC105的數(shù)據(jù)線30c、30a,或者數(shù)據(jù)線30d、30b的輸出的2位信號上,在該2位信號的高位7位上附加0111110,生成9位的ROM地址。該ROM地址,被輸出到RAC的ROM0、ROM2,或者ROM1、ROM3。
RAC105的ROM0、ROM1、ROM2、ROM3,輸出由ROM地址發(fā)生電路104生成的與ROM地址對應的數(shù)據(jù),累加各ROM的輸出的累加電路51a、51b、51c、51d,累加各ROM的輸出后輸出。
第2蝶式運算電路,接收表示M=4以及反DCT運算的控制信號,蝶式運算并輸出RAC105的各累加電路51a、51b、51c、51d的輸出。即,在各寄存器60a、60b、60c、60d中鎖存RAC105的各累加電路51a、51b、51c、51d的輸出。寄存器61a,按照寄存器60a的輸出、寄存器60c的輸出、寄存器60a的輸出、寄存器60c的輸出的順序,進行4次數(shù)據(jù)的鎖存。另一方面,寄存器61b,按照寄存器60b的輸出、寄存器60d的輸出、寄存器60b的反轉(zhuǎn)輸出、寄存器60d的反轉(zhuǎn)輸出的順序,進行4次數(shù)據(jù)的鎖存。加法運算器62,順序加法運算寄存器61a的輸出和寄存器61b的輸出。由此,可以算出式(22)所示的x0、x1、x2、x3。寄存器63順序鎖存上述加法運算器62的輸出后輸出。
這樣一來,如果采用本實施例1的DCT運算裝置,則通過用表示N或者M的值,以及表示DCT運算或者反DCT運算的控制信號,控制第1蝶式運算電路103以及第2蝶式運算電路106進行的蝶式運算,ROM地址生成電路104生成與N或者M單位塊的像素數(shù)據(jù)的DCT運算或者反DCT運算對應的ROM地址,就可以在1個DCT運算裝置中,進行由從1到8的任意整數(shù)構(gòu)成的N×M單位塊的像素數(shù)據(jù)的DCT運算以及反DCT運算。由此,可以得到電路面積小的上述DCT運算裝置。
另外,因為,設置第1蝶式運算電路103以及第2蝶式運算電路106,在N或者M的值是2的冪的情況下,利用蝶式運算,所以,具有以下效果可以通過在行列運算中利用FFT減少運算量,可以減少被存儲在ROM中的成為用于求DCT運算結(jié)果以及反DCT運算結(jié)果的乘法運算結(jié)果的數(shù)據(jù),即,乘法運算了由N或者M像素的輸入像素數(shù)據(jù)的各1位構(gòu)成的N或者M位的位列,和用于求DCT運算結(jié)果以及反DCT運算結(jié)果的系數(shù)的部分積的計算結(jié)果的量,可以減小記錄該數(shù)據(jù)的ROM的數(shù)據(jù)容量,可以得到電路面積小的DCT運算裝置。
另外,雖然可以通過使用FFT消減存儲在ROM0~7內(nèi)的數(shù)據(jù)的量,但在作為1個ROM內(nèi)的多個區(qū)域?qū)崿F(xiàn)ROM0~7的情況下,為了消減ROM的整個容量,就需要縮短消減后的數(shù)據(jù)部分。但是,如果把單純消減由FFT進行數(shù)據(jù)數(shù)的消減后的數(shù)據(jù)的數(shù)據(jù)部分直接按照其順序縮短存儲在ROM中,則作為在使用DA法的情況下的特征之一的把輸入數(shù)據(jù)的各位作為地址的方法是不可能的,需要使得用于排列替換從輸入像素數(shù)據(jù)的各位得到的位列的裝置是使地址生成復雜化。對此,在本實施例1中,ROM地址發(fā)生電路104使用如下的位列作為為了對從第1蝶式運算電路103得到的位列生成地址而附加的頭地址,即,通過附加該頭地址得到的全部地址是連續(xù)的地址,由此,就可以從第1蝶式運算電路103中把位列作為地址的一部分直接使用,并且可以在ROM內(nèi)不產(chǎn)生無用的區(qū)域而高效率地在ROM中存儲數(shù)據(jù),可以消減ROM容量。由此,可以得到使DCT運算裝置的電路面積更小的效果。
圖10是本發(fā)明的實施例2的DCT運算裝置,在圖中,和圖1相同的符號表示相同或者相當?shù)牟糠?。實施?的DCT運算裝置200,設置成在上述實施例1的DCT運算裝置100中,代替第2蝶式運算電路,具備與輸入像素數(shù)據(jù)的順序?qū)敵鲞\算裝置的輸出的輸出電路206,使得只進行DCT運算。在該DCT運算裝置200中,在控制電路101輸出的控制信號中表示是進行DCT運算,還是進行反DCT運算的值已不需要,ROM地址發(fā)生電路104生成的ROM地址,因為不需要包含表示是進行DCT運算,還是進行反DCT運算的值,所以設置為在位限制輸入像素數(shù)據(jù)的值上,附加了表示N或者M的值的頭地址的8位的地址。另外,ROM10~ROM17,從在上述實施例1中說明的ROM0~ROM7中,分別除去存儲在反DCT運算中使用的數(shù)據(jù)的區(qū)域。進而,有關該DCT運算裝置200的動作,因為和上述實施例1中的DCT運算裝置中進行DCT運算的動作相同,因而在此省略其說明。
在這樣的實施例2中,也和上述實施例1一樣,用表示N或者M的值的控制信號,控制第1蝶式運算電路103進行的蝶式運算,ROM地址發(fā)生電路104根據(jù)第1蝶式運算電路103的輸出生成與N或者M的單位的塊的像素數(shù)據(jù)的DCT運算對應的ROM地址,由此,就可以在一個DCT運算裝置中,進行行數(shù)或者列數(shù)為由1至8的任意整數(shù)構(gòu)成的N×M單位塊的像素數(shù)據(jù)的DCT運算,可以得到電路面積小的上述DCT運算裝置。
另外,因為設置成在N或者M的值是2的冪的情況下進行蝶式運算,因此具有可以通過在行列運算中利用FFT減少運算量,可以減小記錄成為用于求DCT運算結(jié)果的乘法運算結(jié)果的數(shù)據(jù)的ROM的數(shù)據(jù)容量,可以得到電路面積小的DCT運算裝置的效果。
另外,如把從第1蝶式運算電路103中得到的位列作為地址的一部分直接使用,并且在ROM內(nèi)不產(chǎn)生無用的區(qū)域,則可以高效率地在ROM內(nèi)變換數(shù)據(jù),可以消減ROM容量,可以使DCT運算裝置的電路面積更小的效果。
圖11是本發(fā)明的實施例3的DCT運算裝置,在圖中,和圖1相同的符號表示相同或者相當?shù)牟糠?。本實施?的DCT運算裝置300,設置成在上述實施例1的DCT運算裝置100中,不設第1蝶式運算電路,位限制單元102的輸出直接輸入ROM地址發(fā)生電路104,只進行反DCT運算。在該DCT運算裝置300中,在控制電路101輸出的控制信號中不需要表示是進行DCT運算,還是進行反DCT運算的值,ROM地址發(fā)生電路104生成的ROM地址,因為不需要包含表示是進行DCT運算,還是進行反DCT運算的值,所以設置成在位限制輸入像素數(shù)據(jù)的值上,附加了表示N或者M的值的頭地址的8位的地址。另外,ROM20~ROM27,從在上述實施例1中說明的ROM~ROM7中,分別除去了用于DCT運算的數(shù)據(jù)。進而,有關該DCT300的動作,因為和上述實施例1的DCT運算裝置中的進行反DCT運算的動作相同,因而在此省略其說明。
在這種實施例3中,也和上述實施例1一樣,用表示N或者M的值的控制信號,控制第2蝶式運算電路106進行的蝶式運算,ROM地址發(fā)生電路從位限制電路102的輸出中生成與N或者M的單位塊的像素數(shù)據(jù)的反運算對應的ROM地址,由此,就可以在一個DCT運算裝置中,進行行數(shù)和列數(shù)由1至8的任意整數(shù)構(gòu)成的N×M單位塊的像素數(shù)據(jù)的反DCT運算,可以得到電路面積小的上述DCT運算裝置。
另外,因為設置成在N或者M的值是2的冪的情況下進行蝶式運算,所以具有可以在行列運算中利用FFT減少運算量,可以減小記錄成為用于求反DCT運算結(jié)果的乘法運算結(jié)果的數(shù)據(jù)的ROM的數(shù)據(jù)容量,可以得到電路面積小的DCT運算裝置的效果。
另外,如把從位限制電路102中得到的位列作為地址的一部分直接使用,并且在ROM內(nèi)不產(chǎn)生無用的區(qū)域,則可以高效率地在ROM內(nèi)變換數(shù)據(jù),可以消減ROM容量,可以使DCT運算裝置的電路面積更小的效果。
圖9是展示本發(fā)明的實施例4的DCT運算裝置的構(gòu)成的方框圖,在圖中,位限制電路112,把上述實施例1的位限制電路102的輸入設置為16位的像素數(shù)據(jù),把限制該像素數(shù)據(jù)的單位設置為2位。另外,第1蝶式運算電路113,設置成在上述實施例1的第1蝶式運算電路103中,對2位的數(shù)據(jù)進行蝶式運算,并以2位為單位輸出。ROM地址發(fā)生電路114,對由作為第1蝶式運算電路113的輸出的2位的數(shù)據(jù)的各位表示的地址,分別附加頭地址,制成9位的地址,作為該頭地址,使用和上述實施例1的ROM地址發(fā)生電路104附加的數(shù)據(jù)一樣的數(shù)據(jù),即,使用這樣的位列,使得通過對第1蝶式運算電路113的輸出附加該頭地址得到的全部的地址被排列替換為連續(xù)的地址。RAC115,和上述實施例1所示的RAC105一樣,包括ROM,它把從上述第1蝶式運算電路113的位單位的輸出得到位列和在上述實施例1中式(5)~式(7),式(9),式(12)~式(14),式(16)以及式(18)~式(23)所示的行列運算的系數(shù)的部分積的計算結(jié)果作為表保持;累加電路,它累加根據(jù)從ROM地址發(fā)生電路114輸出的地址從該ROM輸出的數(shù)據(jù)。但是,位限制電路112以2位為單位限制像素數(shù)據(jù),因為需要各自獨立地保持相對從各位得到的2個地址的上述部分積的計算結(jié)果的表,所以代替上述實施例1所示的RAC105的ROM0~ROM7,設置成具有和ROM0~ROM7同樣的構(gòu)成的,每1個相互并列設置的ROM0a~ROM7a和ROMb~ROM7b。進而,在此,雖然把ROM0a~ROM7a以及ROM0b~ROM7b內(nèi)的數(shù)據(jù)設置為16位,但該數(shù)據(jù)的位數(shù)也可以是其它的位數(shù)。累加電路52a~52h,把ROM0a和ROM0b的輸出、ROM1a和ROM1b的輸出、ROM2a和ROM2b的輸出、ROM3a和ROM3b的輸出、ROM4a和ROM4b的輸出、ROM5a和ROM5b的輸出、ROM6a和ROM6b的輸出、ROM7a和ROM7b的輸出分別作為16位的數(shù)據(jù)輸入,把累加的結(jié)果,在DCT運算的情況下作為DCT運算的結(jié)果輸出,另外,在反DCT的情況下作為為了求反DCT運算的結(jié)果而被輸入到第2蝶式運算電路116中的數(shù)據(jù)輸出。第2蝶式運算電路116,在上述實施例1的第2蝶式運算電路106中,把輸出的數(shù)據(jù)設置為16位。
在本實施例4的DCT運算電路中,把從N×M單位塊的圖象數(shù)據(jù)中以行為單位,或者以列為單位輸入的像素數(shù)據(jù)限制為每次2位,第1蝶式運算電路113,在進行DCT運算的情況下,當作為被輸入的行或者列的像素數(shù)據(jù)數(shù)的N或者M是2的冪的情況下,對上述限制的2位的數(shù)據(jù)進行和上述實施例1同樣的蝶式運算。另外,在除此以外的情況下,不進行蝶式運算。ROM地址發(fā)生電路114在由第1蝶式運算電路113的每次2位的多個輸出中的各1位的數(shù)據(jù)分別構(gòu)成的2個位列上附加頭地址,生成2個地址,其中一個對ROM0a~ROM7a,另一個對ROM0b~ROM7b輸出。ROM0a~ROM7a以及ROM0b~ROM7b,分別輸出與輸入的地址對應的,用于DCT運算或者反DCT運算的部分積的計算結(jié)果。累加電路52a~52h累加被排列設置的ROM之間的輸出后輸出,第2蝶式運算電路116在進行DCT運算的情況下,當作為輸入的行或者列的像素數(shù)據(jù)的N或者M是2的冪的情況下,對從累加電路52a~52h輸出的數(shù)據(jù)進行和上述實施例1一樣的反DCT運算,與輸入像素數(shù)據(jù)的順序?qū)嘏帕刑鎿Q輸出其運算結(jié)果,在其它情況下不進行蝶式運算,把從累加電路52a~52h輸出的數(shù)據(jù)與輸入數(shù)據(jù)的順序?qū)嘏帕刑鎿Q輸出。
如果采用這樣的實施例4,因為,設置成在輸入的行或者列的像素數(shù)據(jù)數(shù)的N或者M是2的冪的情況下進行蝶式運算,所以,具有可以在行列運算中利用FFT,可以減少用于求存儲在ROM0a~ROM7a、ROM0a~ROM7a中的DCT運算以及反DCT運算的數(shù)據(jù)數(shù),可以和上述實施例1一樣消減ROM容量的效果。
另外,因為對于由從第1蝶式運算電路113輸出的2位組成的多個像素數(shù)據(jù)的各位構(gòu)成的地址,附加頭地址使得全部地址連續(xù)排列,所以具有可以高效率地進行ROM內(nèi)的數(shù)據(jù)的變換,即使在輸入的像素數(shù)據(jù)是16位的情況下,也和上述實施例1一樣,可以消減ROM容量的效果。
進而,雖然在上述實施例4中,說明了把上述實施例1中的DCT運算裝置變形為其輸入是16位的情況,但在本發(fā)明中,在上述實施例2以及實施例3的DCT運算裝置中,也可以把其輸入設置為16位,在這種情況下,也具有和上述實施例4同樣的效果。
另外,雖然在上述實施例1~4中,把輸入到位限制電路的數(shù)據(jù)設置為8位或者16位,但在本發(fā)明中,輸入像素數(shù)據(jù)的位數(shù)可以是任何位數(shù),通過調(diào)整由位限制電路限制的位的單位,和包含在RAC中的ROM數(shù),就可以起到和上述各實施例同樣的效果。
進而,在上述各實施例1~4的DCT運算裝置中,當N或者M的值在8以外,即在其上限以外的情況下,也可以使尚未使用的ROM以及累加電路等的單元的動作停止。這樣一來,就可以消減由不需要的ROM以及累加電路等的單元消耗的電力。
另外,在上述實施例1~4中,作為用于輸出乘法運算結(jié)果的單元,使用ROM,但在本發(fā)明中,也可以代替ROM,使用在輸入地址時,輸出與之對應的乘法運算結(jié)果的組合電路,在這種情況下,也起到了和上述各實施例同樣的效果。
另外,在上述實施例1~4中,說明了輸入的圖象數(shù)據(jù)的單位塊可以對應最大到8×8像素的情況,但單位塊的最大的大小,可以是8×8以外的任何值,這種情況下,通過組合單位塊的最大的大小,增減ROM和累加電路的組數(shù)以及各ROM的尺寸等,起到和上述實施例一樣的效果。
如上所述,本發(fā)明的DCT運算裝置,可以用作運動圖象數(shù)據(jù)的編碼裝置,或者譯碼裝置內(nèi)的DCT運算裝置,特別適用于采用MPEG(運動圖象編碼專家組)方式進行編碼或者譯碼的裝置內(nèi)的DCT運算裝置。
權利要求
1.一種DCT運算裝置,用于對N×M單位塊(N及M是從1到8的任意整數(shù))的圖象數(shù)據(jù)的像素數(shù)據(jù)進行1維DCT運算或者反DCT運算,其特征在于包括位限制單元,它以每次一行,或者每次一列輸入N×M單位塊的圖象數(shù)據(jù)的像素數(shù)據(jù),把被輸入的構(gòu)成行或者列的各像素數(shù)據(jù)限制為每次輸出一位;控制單元,它輸出包含表示作為構(gòu)成上述被輸入的各行或者各列的像素數(shù)據(jù)數(shù)的輸入像素數(shù)據(jù)數(shù),以及進行DCT運算或者反DCT運算之一的值的控制信號;第1蝶式運算單元,它在上述控制單元輸出的控制信號表示上述輸入像素數(shù)據(jù)數(shù)是2的冪并且表示進行DCT運算的情況下,對上述位限制單元的輸出進行蝶式運算,輸出其運算結(jié)果,在其它的情況下,不進行蝶式運算,直接輸出上述位限制單元的輸出;地址發(fā)生單元,它根據(jù)從上述第1蝶式運算單元的輸出得到的位列,和表示被包含在上述控制信號中的輸入像素數(shù)據(jù)數(shù),以及表示進行DCT運算或者反DCT運算之一的值,生成地址并輸出;運算單元,具有8組與上述地址對應地輸出用于求1維DCT運算結(jié)果以及反DCT運算結(jié)果的乘法運算結(jié)果的乘法運算結(jié)果輸出單元,以及累加乘法運算結(jié)果輸出單元的輸出并將結(jié)果輸出的累加單元;第2蝶式運算單元,它在上述控制單元輸出的控制信號表示上述輸入像素數(shù)據(jù)數(shù)是2的冪并且表示進行反DCT運算的情況下,對上述運算單元的輸出進行蝶式運算,對應輸入像素數(shù)據(jù)的順序排列替換輸出其運算結(jié)果,在其它情況下,不進行蝶式運算,而與輸入像素數(shù)據(jù)的順序?qū)嘏帕刑鎿Q輸出上述運算單元的輸出。
2.如權利要求1所述的DCT運算裝置,其特征在于上述地址發(fā)生單元進行如下操作從而根據(jù)上述第1蝶式運算單元的輸出、輸入像素數(shù)據(jù)數(shù)、表示進行DCT運算或者反DCT運算之一的值生成地址,在上述控制信號表示上述輸入像素數(shù)據(jù)數(shù)的值是7、6、5、3之一的情況下,對根據(jù)上述第1蝶式運算單元的輸出構(gòu)成的7、6、5、3位的各個位列,生成附加了包含表示進行DCT運算或者反DCT運算之一的值并且表示上述輸入像素數(shù)據(jù)數(shù)的值的2、3、4、6位的各個頭地址的地址;在上述控制信號表示上述輸入像素數(shù)據(jù)數(shù)是8、4、2之一的情況下,并且表示進行DCT運算的情況下,對根據(jù)被上述第1蝶式運算單元蝶式運算后的加法運算結(jié)果構(gòu)成的4、2、1位的各個位列,以及根據(jù)減法運算結(jié)果構(gòu)成的4、2、1位的各個位列的各自,生成附加了包含用于表示進行DCT運算的值并且表示上述輸入像素數(shù)據(jù)的值的5、7、8位的各自的頭地址的地址;在上述控制信號,表示上述輸入像素數(shù)據(jù)數(shù)是8、4、2之一的情況下,并且表示進行反DCT運算的情況下,對根據(jù)上述第1蝶式運算單元的8、4、2位的各自的輸出構(gòu)成的4、2、1位的各自的位列,生成附加了包含用于表示進行反DCT運算的值并且表示上述輸入像素數(shù)據(jù)數(shù)的5、7、8位的各自的頭地址的地址;并且,作為上述頭地址,就是附加這樣的位列,即使得對于根據(jù)上述第1蝶式運算單元的輸出構(gòu)成的地址,通過附加該頭地址得到的全部地址成為連續(xù)的地址。
3.如權利要求1所述的DCT運算裝置,其特征在于上述乘法運算結(jié)果輸出單元通過如下操作生成上述乘法運算結(jié)果,在上述控制單元輸出的控制信號表示上述輸入像素數(shù)據(jù)數(shù)是2的冪,并且表示進行DCT運算的情況下,輸出在進行了快速傅立葉變換的DCT的行列運算中的與從上述第1蝶式運算單元的輸出得到的位列有關的乘法運算結(jié)果;在上述控制單元輸出的控制信號表示上述輸入像素數(shù)據(jù)數(shù)是2的冪以外的值,并且表示進行DCT運算的情況下,輸出在DCT的行列運算中的與從上述第1蝶式運算單元輸出得到的位列有關的乘法運算結(jié)果;在上述控制單元輸出的控制信號表示上述輸入像素數(shù)據(jù)數(shù)是2的冪,并且表示進行反DCT運算的情況下,輸出在進行了快速傅立葉變換的反DCT的行列運算中的與從上述第1蝶式運算單元的輸出得到的位列有關的乘法運算結(jié)果;在上述控制單元輸出的控制信號表示上述輸入像素數(shù)據(jù)數(shù)是2的冪以外的值,并且表示進行反DCT運算的情況下,輸出在反DCT的行列運算中的與從上述第1蝶式運算單元的輸出得到的位列有關的乘法運算結(jié)果。
4.如權利要求1所述的DCT運算裝置,其特征在于上述DCT運算單元,在控制信號表示輸入像素數(shù)據(jù)數(shù)是8以外的值的情況下,停止在運算中尚未使用的單元的動作。
5.一種DCT運算裝置,用于對N×M塊單位(N及M是1以上的任意的整數(shù))的圖象數(shù)據(jù)的像素數(shù)據(jù)進行1維DCT運算,其特征在于包括位限制單元,它以每次一行,或者每次一列輸入N×M單位塊的圖象數(shù)據(jù)的像素數(shù)據(jù),把被輸入的構(gòu)成行或者列的各像素數(shù)據(jù)限制為每次輸出一位;控制單元,它輸出表示作為構(gòu)成上述被輸入的各行或者各列的像素數(shù)據(jù)數(shù)的輸入像素數(shù)據(jù)數(shù)的控制信號;蝶式運算單元,它在上述控制單元輸出的控制信號表示上述輸入像素數(shù)據(jù)數(shù)是2的冪的情況下,對上述位限制單元的輸出進行蝶式運算,輸出其運算結(jié)果,在其它的情況下,不進行蝶式運算,直接輸出上述位限制單元的輸出;地址發(fā)生單元,它使用從上述蝶式運算單元的輸出得到的位列和被包含在上述控制信號中的輸入像素數(shù)據(jù)數(shù)生成地址并輸出;運算單元,它具有和上述輸入像素數(shù)據(jù)數(shù)的最大值對應的組數(shù)的乘法運算結(jié)果輸出單元以及累加電路,其中,乘法運算結(jié)果輸出單元與上述地址對應地輸出用于求1維DCT運算結(jié)果的乘法運算結(jié)果,累加電路累加上述乘法運算結(jié)果輸出單元輸出的乘法運算結(jié)果后輸出;輸出單元,它對應被輸入的像素數(shù)據(jù)的順序排列替換上述運算單元的輸出,作為1維的DCT運算結(jié)果輸出。
6.如權利要求5所述的DCT運算裝置,其特征在于上述地址發(fā)生單元,進行如下操作從而生成作為根據(jù)上述第1蝶式運算單元的輸出和上述輸入像素數(shù)據(jù)數(shù)生成的地址,在上述控制信號表示上述輸入像素數(shù)據(jù)數(shù)是2的冪以外的值的情況下,對根據(jù)上述第1蝶式運算單元的輸出構(gòu)成的與輸入像素數(shù)據(jù)數(shù)具有同樣位數(shù)的地址生成附加了用于表示上述輸入像素數(shù)據(jù)數(shù)的值的頭地址的地址;在上述控制信號表示上述輸入像素數(shù)據(jù)數(shù)是2的冪的情況下,對根據(jù)由上述第1蝶式運算單元進行蝶式運算后的加法運算結(jié)果構(gòu)成的和上述輸入像素數(shù)據(jù)數(shù)的一半具有相同的位數(shù)的位列,以及根據(jù)減法運算結(jié)果構(gòu)成的和上述輸入像素數(shù)據(jù)數(shù)的一半具有相同位數(shù)的位列的各自,生成附加了用于表示上述輸入像素數(shù)據(jù)的值的頭地址的地址;并且,作為上述頭地址,對根據(jù)上述第1蝶式運算單元的輸出構(gòu)成的地址,附加這樣的位列,即使得通過附加該頭地址得到的全部地址成為連續(xù)的地址,并且其位數(shù)是和上述輸入像素數(shù)據(jù)數(shù)的最大值相同的位數(shù)。
7.如權利要求5所述的DCT運算裝置,其特征在于上述蝶式運算單元對像素數(shù)據(jù)進行順序相互加法運算以及順序相互減法運算并輸出結(jié)果值,所謂對像素數(shù)據(jù)進行順序相互加法運算以及順序相互減法運算,是把在上述位限制單元中以每次一行或者每次一列被輸入并且被限制為每次輸出一位的像素數(shù)據(jù),從被輸入的列或者行的兩端一側(cè)向內(nèi)側(cè)進行順序相互加法運算,以及順序相互減法運算。
8.如權利要求5所述的DCT運算裝置,其特征在于上述乘法運算結(jié)果輸出單元,進行如下操作以生成上述乘法運算結(jié)果,在上述控制單元輸出的控制信號表示上述輸入像素數(shù)據(jù)數(shù)是2的冪的情況下,輸出在進行了快速傅立葉變換的DCT的行列運算中的與從上述第1蝶式運算單元的輸出得到的位列有關的乘法運算結(jié)果;在上述控制單元輸出的控制信號表示上述輸入像素數(shù)據(jù)數(shù)是2的冪以外的值情況下,輸出在DCT的行列運算中的與從上述第1蝶式運算單元的輸出得到的位列有關的乘法運算結(jié)果。
9.一種DCT運算裝置,用于對N×M塊單位(N及M是1以上的任意的整數(shù))的圖象數(shù)據(jù)的像素數(shù)據(jù)進行1維反DCT運算,其特征在于包括位限制單元,它以每次一行,或者每次一列輸入N×M單位塊的圖象數(shù)據(jù)的像素數(shù)據(jù),把被輸入的構(gòu)成行或者列的各像素數(shù)據(jù)限制為每次輸出一位;控制單元,它輸出表示作為構(gòu)成上述被輸入的各行或者各列的像素數(shù)據(jù)數(shù)的輸入像素數(shù)據(jù)數(shù)的控制信號;地址發(fā)生單元,它使用從上述位限制單元的輸出得到的位列和被包含在上述控制信號中的輸入像素數(shù)據(jù)數(shù)生成地址并輸出;運算單元,它具有和上述輸入像素數(shù)據(jù)數(shù)的最大值對應組數(shù)的乘法運算結(jié)果輸出單元以及累加電路,其中,乘法運算結(jié)果輸出單元與上述地址對應地輸出用于求1維DCT運算結(jié)果的乘法運算結(jié)果,累加電路累加上述乘法運算結(jié)果輸出單元輸出的乘法運算結(jié)果后輸出;蝶式運算單元,它在上述控制單元輸出的控制信號表示上述輸入像素數(shù)據(jù)數(shù)是2的冪的情況下,對上述運算單元的輸出進行蝶式運算,對應輸入像素數(shù)據(jù)的順序排列替換輸出其運算結(jié)果,在其它的情況下,不進行蝶式運算,對應輸入的像素數(shù)據(jù)的順序排列替換并輸出上述各運算單元的輸出。
10.如權利要求9所述的DCT運算裝置,其特征在于上述地址發(fā)生單元,進行如下操作以根據(jù)上述位限制單元的輸出和上述輸入像素數(shù)據(jù)數(shù)生成地址,在上述控制信號表示上述輸入像素數(shù)據(jù)數(shù)是2的冪以外的值的情況下,對根據(jù)上述位限制單元的輸出構(gòu)成的和成為和上述輸入像素數(shù)據(jù)數(shù)同樣位數(shù)的位列,生成附加了表示上述輸入像素數(shù)據(jù)數(shù)的值的頭地址的地址;在上述控制信號表示上述輸入像素數(shù)據(jù)數(shù)是2的冪的情況下,對根據(jù)上述位限制單元的輸出構(gòu)成的和上述輸入像素數(shù)據(jù)數(shù)的一半具有同樣位數(shù)的位列的各自,生成附加了用于表示上述輸入像素數(shù)據(jù)數(shù)的值的頭地址的地址;并且,作為上述頭地址,對根據(jù)上述位限制單元的輸出構(gòu)成的地址,附加這樣的位列,使得通過附加該頭地址得到的全部的地址成為連續(xù)的地址,并且其位數(shù)和構(gòu)成上述被輸入的行或者列的輸入像素數(shù)據(jù)的最大值的位數(shù)相同。
11.如權利要求9所述的DCT運算裝置,其特征在于上述蝶式運算單元,對根據(jù)上述運算單元輸出的以每次一行或者每次一列輸入的像素數(shù)據(jù)中的奇數(shù)位的像素數(shù)據(jù)求得的上述乘法運算結(jié)果進行了累加的值,和根據(jù)偶數(shù)位的像素數(shù)據(jù)求得的上述乘法運算結(jié)果進行了累加的值進行加法運算以及減法運算并輸出。
12.如權利要求9所述的DCT運算裝置,其特征在于上述乘法運算結(jié)果輸出單元,在上述控制單元輸出的信號表示上述輸入像素數(shù)是2的冪的情況下,輸出在進行了快速傅立葉變換的反DCT行列運算中的與從上述第1蝶式運算單元的輸出得到的位列有關的乘法運算結(jié)果作為上述乘法運算結(jié)果;在上述控制單元輸出的信號表示上述輸入像素數(shù)是2的冪以外的值情況下,輸出在進行反DCT行列運算中的與從上述第1蝶式運算單元的輸出得到的位列有關的乘法運算結(jié)果作為上述乘法運算結(jié)果。
13.如權利要求5或者權利要求9之一所述的DCT運算裝置,其特征在于被輸入到上述位限制單元中的圖象數(shù)據(jù)的單位塊,是N×M單位塊(N以及M是從1至8的任意的值),上述運算單元中所具備的包含乘法運算結(jié)果輸出單元和累加單元的組,具有作為上述輸入像素數(shù)據(jù)數(shù)的最大值的8組。
14.如權利要求1、5或者9的任意項所述的DCT運算裝置,其特征在于上述位限制單元,在作為被輸入的各像素數(shù)據(jù)輸入16位的數(shù)據(jù)的同時,把該16位的數(shù)據(jù)限制為每次輸出2位,上述運算單元,作為上述各乘法運算結(jié)果輸出單元,具備相互并列設置的分別輸出上述乘法運算結(jié)果的2個乘法運算結(jié)果輸出部分,在上述累加單元中累加對這2個乘法運算結(jié)果輸出部分的輸出進行加法運算后的數(shù)據(jù)。
15.如權利要求5或者9的任意項所述的DCT運算單元,其特征在于上述DCT運算單元,在控制信號表示輸入像素數(shù)據(jù)數(shù)的值是上述輸入像素數(shù)據(jù)數(shù)的最大值以外的值的情況下,停止尚未使用的單元的動作。
全文摘要
本發(fā)明是對不同大小的塊單位的圖象數(shù)據(jù)進行DCT運算或者反DCT運算的至少一種運算的DCT運算裝置。包括:位限制電路(102),它把以每次一列或者每次一行輸入的各像素數(shù)據(jù)以每次1位輸出;第1蝶式運算電路(103),它對位限制電路(102)的輸出進行蝶式運算;ROM地址發(fā)生電路(104),它根據(jù)第1蝶式運算電路(103)的輸出,生成連續(xù)的ROM地址;RAC(105),它從ROM(ROM0~ROM7)中讀出與該ROM地址對應的數(shù)據(jù)在累加電路(51a~51h)中累加;第2蝶式運算電路(106),它對RAC(105)的輸出進行蝶式運算。
文檔編號H04N7/30GK1290455SQ99802947
公開日2001年4月4日 申請日期1999年12月14日 優(yōu)先權日1998年12月14日
發(fā)明者大橋政宏, 中村剛 申請人:松下電器產(chǎn)業(yè)株式會社