JP3749826B2 - Inverse discrete cosine transform circuit - Google Patents
Inverse discrete cosine transform circuit Download PDFInfo
- Publication number
- JP3749826B2 JP3749826B2 JP2000280824A JP2000280824A JP3749826B2 JP 3749826 B2 JP3749826 B2 JP 3749826B2 JP 2000280824 A JP2000280824 A JP 2000280824A JP 2000280824 A JP2000280824 A JP 2000280824A JP 3749826 B2 JP3749826 B2 JP 3749826B2
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- data
- addition
- sum
- subtraction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Complex Calculations (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、画像データの伸長時や圧縮時に使用される逆離散コサイン変換回路に係り、特に8点の逆離散コサイン変換回路に関する。
【0002】
【従来の技術】
現在、複数チャネルのTV放送番組の同時表示が可能なTV受信機が普及している。地上波や衛星によるディジタルTV放送においても、TV受信機では複数チャンネルの放送番組の同時表示を可能とすることが望まれる。
【0003】
ディジタルTV放送においては、MPEG方式による画像データの圧縮が用いられ、TV受信機側では圧縮された画像データを伸長して元の画像データに戻す伸長処理装置(デコーダ)が用いられる。ディジタル放送用のTV受信機において複数チャネルの放送番組の同時表示を実現しようとする場合、複数チャネルに対応して複数のデコーダを用意することが考えられるが、装置の規模が大きくなるという問題がある。従って、複数チャンネルの圧縮画像データを短時間に伸張処理可能な小規模なデコーダが望まれる。さらに、高精細TV放送(いわゆるハイビジョン放送)の複数画面の同時表示においても対応可能にするためには、デコーダにはさらに高速性も要求される。
【0004】
MPEG方式は基本的に、動き補償予測と離散コサイン変換(以下、DCTという)及び可変長符号化の3つの要素の組み合わせで画像データの圧縮を行う技術であり、デコーダ側ではエンコーダ側とは逆に、可変長復号化と逆離散コサイン変換(以下、逆DCTという)及び動き補償予測の組み合わせで圧縮画像データの伸長を行う。逆DCTは、エンコーダの局部復号系にも用いられる。MPEG方式のエンコーダやデコーダでは、逆DCT回路の高速化と回路規模削減が大きな課題の一つとなる。
【0005】
この要求に対応した従来の技術として、特開平5−181896号公報に小規模で高速処理可能なDCT/逆DCT回路の例が示されている。この回路は8点のDCTと逆DCTを可能とするものであり、前段の9個の加減算器はDCT専用で、逆DCTのみの機能は7個の固定係数乗算器と9個の加減算器で構成可能である。しかし、この回路構成では固定係数乗算器の処理速度の2倍の画素レートの画像データにまでしか対応できず、高精細TV放送の複数画面の同時表示のためには、固定係数乗算器や加減算器の途中演算結果を保持するためのレジスタの挿入が必要になり、回路規模が増大するという問題があった。
【0006】
【発明が解決しようとする課題】
上述したように、従来の技術では逆DCTに際して固定係数乗算器の処理速度の2倍の画素レートの画像データにまでしか対応できず、高精細TV放送の複数画面を同時表示しようとすると、固定係数乗算器や加減算器の途中演算結果を保持するためのレジスタが必要になるため回路規模が増大し、コストが高くなるという問題があった。
【0007】
本発明は、複数の高精細画像等の復号に必要な高速処理を小規模な回路で実現可能にする逆離散コサイン変換回路を提供することを目的とする。
【0008】
【課題を解決するための手段】
本発明は、高速演算アルゴリズムを使用して4つのパスに分けて並列処理することにより固定係数乗算器の使用を可能にし、4つの積和回路と9個の加減算回路からなる構成で、乗算器の動作速度の4倍の画素レートの画像処理を可能にするようにしたものである。
【0009】
すなわち、本発明に係る逆離散コサイン変換回路は、入力される8点の離散コサイン変換係数データのうちの偶数番目のデータを2点ずつ同時に入力して逆離散コサイン変換処理を行う第1の部分逆DCT回路と、8点の離散コサイン変換係数データのうちの奇数番目のデータを2点ずつ同時に入力して逆離散コサイン変換処理を行う第2の部分逆DCT回路と、第1及び第2の部分逆DCT回路からの出力データを加減算して8点の逆離散コサイン変換データを得る出力演算回路とを備えたことを特徴とする。
【0010】
より具体的には、第1の部分逆DCT回路は、第1及び第2の入力端子に同時に入力される2点の離散コサイン変換データの加減算を行う第1の加減算回路と、第1及び第2の入力端子に同時に入力される2点の離散コサイン変換データの積和演算を行う第1の積和回路と、第1の加減算回路の出力データと第1の積和回路の出力データとの加減算を互いに異なるタイミングで行う第2及び第3の加減算回路とにより構成される。
【0011】
また、第2の部分逆DCT回路は、第3及び第4の入力端子に同時に入力される2点の離散コサイン変換データを多重する多重処理回路と、第3及び第4の入力端子に同時に入力される2点の離散コサイン変換データの積和演算を行う第2の積和回路と、多重処理回路の出力データと第2の積和回路の出力データとの加減算を互いに異なるタイミングで行う第4及び第5の加減算回路と、第4及び第5の加減算回路の出力データの積和演算を互いに異なるタイミングで行う第3及び第4の積和回路とにより構成される。
【0012】
さらに、出力演算回路は、第2の加減算回路の出力データと第3の積和回路の出力データとの加減算を互いに異なるタイミングで行う第6及び第7の加減算回路と、第3の加減算回路の出力データと第4の積和回路の出力データとの加減算を互いに異なるタイミングで行う第7及び第8の加減算回路とにより構成される。
【0013】
また、第1乃至第4の積和回路は固定係数乗算器を有し、二つの入力データに対して該固定係数乗算器により固定係数の乗算と四捨五入処理を行うことを特徴とする。
【0014】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を説明する。
図1に、本発明の一実施形態に係る逆DCT回路の構成を示す。この逆DCT回路は、大きく分けて、第1の部分逆DCT回路10、第2の部分逆DCT回路20及び出力演算回路30から構成される。
【0015】
この逆DCT回路は、図2の演算フローグラフに示す演算アルゴリズムを実行するものであり、第1の部分逆DCT回路10の処理は図2の10Aの部分、第2の部分逆DCT回路20の処理は図2の20Aの部分、出力演算回路30の処理は図2の30Aの部分にそれぞれ相当している。図3(a)(b)(c)は、図2の演算フローグラフで使用している部分演算の内容の説明図である。この演算フローを数式で表すと、次の通りである。
【0016】
cos(α+β)=cosα・cosβ−sinα・sinβ
cos(α−β)=cosα・cosβ+sinα・sinβ
2cosα・cosβ=cos(α−β)+cos(α+β)
2sinα・sinβ=cos(α−β)−cos(α+β)
cos2α+cos2β=2cos(α−β)・cos(α+β)
cos2α−cos2β=−2sin(α−β)・sin(α+β)
2・(cosα)2=1+cos2α
2・(sinα)2=1−cos2α
cos(π/4+β)=cosπ/4・(cosβ-sinβ)
cos(π/4-β)=cosπ/4・(cosβ+sinβ)
cosπ/4=1/sq(2)
--------------dct--------------------
A=x0+x7
B=x3+x4
C=x1+x6
D=x2+x5
f0=(A+B)+(C+D)
f4=(A+B)-(C+D)
f2=sq(2)*{(A-B)cosπ/8+(C-D)sinπ/8}
f6=sq(2)*{(A-B)sinπ/8−(C-D)cosπ/8}
J=x0-x7
K=x3-x4
L=x1-x6
M=x2-x5
f1=sq(2)*(J・cosπ/16+K・sinπ/16+L・cos3π/16+M・sin3π/16)
f3=sq(2)*(J・cos3π/16-K・sin3π/16-L・sinπ/16-M・cosπ/16)
f5=sq(2)*(J・sin3π/16+K・cos3π/16-L・cosπ/16+M・sinπ/16)
f7=sq(2)*(J・sinπ/16-K・cosπ/16-L・sin3π/16+M・cos3π/16)
--------------idct--------------------
f0+f4=2*(A+B)
f0-f4=2*(C+D)
f2*sq(2)*cosπ/8+f6*sq(2)*sinπ/8
=2*(A-B)*{(cosπ/8)2+(sinπ/8)2}=2*(A-B)
f2*sq(2)*cosπ/8-f6*sq(2)*sinπ/8
=2*(C-D)*{(sinπ/8)2+(cosπ/8)2}=2*(C-D)
2*(A+B)+2*(A-B)=4*A=4*(x0+x7)
2*(A+B)-2*(A-B)=4*B=4*(x3+x4)
2*(C+D)+2*(C-D)=4*C=4*(x1+x6)
2*(C+D)-2*(C-D)=4*D=4*(x2+x5)
(f3-f5)・cosπ/4
=sq(2)・cosπ/4・{J・(cos3π/16-sin3π/16)-K・(cos3π/16+sin3π/16)+L・(cosπ/16-sinπ/16)-M・(cosπ/16+sinπ/16)}
=sq(2)*{J・cos7π/16-K・cosπ/16+L・cos5π/16-M・cos3π/16}
=sq(2)*{J・sinπ/16-K・cosπ/16+L・sin3π/16-M・cos3π/16}
(f3+f5)・cosπ/4
=sq(2)*{J・cosπ/16+K・cos7π/16-L・cos3π/16-M・cos5π/16}
=sq(2)*{J・cosπ/16+K・sinπ/16-L・cos3π/16-M・sin3π/16}
f1+(f3+f5)・cosπ/4
=sq(2)*(J・cosπ/16+K・sinπ/16+L・cos3π/16+M・sin3π/16)+sq(2)*(J・cosπ/16+K・sinπ/16-L・cos3π/16-M・sin3π/16)
=2*sq(2)*(J・cosπ/16+K・sinπ/16)f1-(f3+f5)・cosπ/4
=sq(2)*(J・cosπ/16+K・sinπ/16+L・cos3π/16+M・sin3π/16)-sq(2)*(J・cosπ/16+K・sinπ/16-L・cos3π/16-M・sin3π/16)
=2*sq(2)*(L・cos3π/16+M・sin3π/16)
(f3-f5)・cosπ/4+f7
=sq(2)*(J・sinπ/16-K・cosπ/16+L・sin3π/16-M・cos3π/16)
+sq(2)*(J・sinπ/16-K・cosπ/16-L・sin3π/16+M・cos3π/16)
=2*sq(2)*(J・sinπ/16-K・cosπ/16)
(f3-f5)・cosπ/4-f7
=sq(2)*(J・sinπ/16-K・cosπ/16+L・sin3π/16-M・cos3π/16)
-sq(2)*(J・sinπ/16-K・cosπ/16-L・sin3π/16+M・cos3π/16)
=2*sq(2)*(L・sin3π/16-M・cos3π/16)
2*sq(2)*(J・cosπ/16+K・sinπ/16)*sq(2)*cosπ/16
+2*sq(2)*(J・sinπ/16-K・cosπ/16)*sq(2)*sinπ/16
=4*J*{(cosπ/16)2+(sinπ/16)2}
=4*J=4*(x0-x7)
2*sq(2)*(J・cosπ/16+K・sinπ/16)*sq(2)*sinπ/16-2*sq(2)*(J・sinπ/16-K・cosπ/16)*sq(2)*cosπ/16
=4*K*{(sinπ/16)2+(cosπ/16)2}
=4*K=4*(x3-x4)
2*sq(2)*(L・cos3π/16+M・sin3π/16)*sq(2)*cos3π/16
+2*sq(2)*(L・sin3π/16-M・cos3π/16)*sq(2)*sin3π/16
=4*L*{(cosπ/16)2+(sinπ/16)2}
=4*L=4*(x1-x6)
2*sq(2)*(L・cos3π/16+M・sin3π/16)*sq(2)*sin3π/16
+2*sq(2)*(L・sin3π/16-M・cos3π/16)*sq(2)*cos3π/16
=4*M*{(sinπ/16)2+(cosπ/16)2}
=4*M=4*(x3-x4)
さらに、これらの和差の計算により、8倍の画素値が再生されるが、3ビットシフトにより正常な画素値となる。このビットシフトは、2次元処理完了後に纏めて行う。
【0017】
本実施形態では、図示しないDCT回路により8点の画素配列{x0,x1,…,x6,x7}を1ブロックとしてブロック単位にDCTを行って得られた8点のDCT係数データ{f0,f1,…,f6,f7}が逆DCT回路に入力され、この8点DCT係数データに対して逆DCTを行う場合について説明する。
【0018】
ここで、f0,f1,…,f6,f7は1ブロック内の画像の各周波数成分のDCT係数データであり、f0は画像のDC成分に対応し、f1,f2,…と順次高い周波数成分に対応し、f7が最高周波数成分に対応する。また、f0,f2,f4,f6,f8を偶数番目のデータ、f1,f3,f5,f7を奇数番目のデータとする。
【0019】
図1において、入力端子Ainには8点DCT係数データのデータf2とf0が交互に入力され、入力端子Binには8点DCT係数データのデータf3とf1が交互に入力され、入力端子Cinには8点DCT係数データのデータf6とf4が交互に入力され、そして入力端子Dinには8点DCT係数データのデータf5とf7が交互に入力される。
【0020】
第1の部分逆DCT回路10は入力端子Ain,Cinに入力される偶数番目のデータに対する逆DCTを行い、第2の部分逆DCT回路20は、入力端子Bin,Dinに入力される奇数番目のデータに対する逆DCTを行う。出力演算回路30は、第1及び第2の部分逆DCT回路10,20からの出力データを加減算して、8点の逆DCTデータを出力端子Aout,Bout,Cout,Doutへ出力する。
【0021】
以下、図1の各部の詳細な構成を図4〜図29により説明する。図4〜図18は図1の各部の詳細な構成を示し、図19〜図28は積和回路で使用される固定係数乗算器の構成を示し、図29は積和回路で使用される加算器の構成を示している。
【0022】
[第1の部分逆DCT回路10について]
第1の部分逆DCT回路10は、遅延回路11,12、加減算回路13、積和回路14、加減算回路15及び加減算回路16からなり、入力端子Ain,Cinに入力される偶数番目のデータ(f0,f4またはf2,f6)に対する逆DCTを行う。この第1の部分逆DCT回路10の1次元目の入力順序及び出力順序を表1及び表2に示す。
【0023】
【表1】
【0024】
【表2】
【0025】
また、表2を数式で表すと次のようになる。
jd15a={jf0+jf4}+{jf6*√2*sin(π/8)+jf2*√2*cos(π/8)}
jd15b={jf0+jf4}−{jf6*√2*sin(π/8)+jf2*√2*cos(π/8)}
jd16a={jf0−jf4}+{jf2*√2*sin(π/8)−jf6*√2*cos(π/8)}
jd16b={jf0−jf4}−{jf2*√2*sin(π/8)−jf6*√2*cos(π/8)}
(j=0, 1, ・・・, 7)
(遅延回路11及び12)
遅延回路11及び12は、例えば図4に示すようにいずれも3個のD型フリップフロップ(DFF)101〜103を縦続接続して構成され、それぞれ入力端子Ain,Cinから入力されるデータ(f0,f4またはf2,f6)を3クロック期間遅延させて出力する。これらの遅延回路11及び12は、第1の部分逆DCT回路0の出力データを後述する第2の部分逆DCT回路20の出力データとタイミングを合わせて出力するためのいわゆる遅延補償用である。遅延回路11及び12の入出力及び内部状態の関係をそれぞれ表3及び表4に示す。
【0026】
【表3】
【0027】
【表4】
【0028】
(加減算回路13)
加減算回路13は、図5に示すように切替器111,112、DFF113,114、ビット反転器115及び加算器116から構成され、遅延回路11及び12により3クロック期間遅延されて同時に入力されるデータf0,f4またはf2,f6を切替器111,112を介してDFF113,114により2クロック期間保持し、それらのデータの和(f0+f4=d13a)と差(f0-f4=d13b)をビット反転器115を介して加算器116により時分割で演算し、和(d13a)、差(d13b)を順次出力する。
【0029】
切替器111,112は、制御信号en4eが高レベルのときH側に入力される遅延回路111,112の出力データを選択し、en4eが低レベルのときL側に入力されるDFF113,114の出力データを選択する。ビット反転器115は、制御信号Tg2eが高レベルのときビット反転を行って加算器116から差のデータを出力させ、Tg2eが低レベルのときはビット反転を行わず、加算器116から和のデータを出力させる。
【0030】
この加減算回路13は、1次元目の演算ではDCT係数データの量子化誤差を考慮してダイナミックレンジが増加するため、12ビット入力に対して13ビット出力となるが、2次元目の演算ではその量子化誤差の考慮が不要なので、ダイナミックレンジは変化せず、16ビット入力に対して16ビットの出力となる。加減算回路13の入出力及び内部状態の関係を表5に示す。
【0031】
【表5】
【0032】
(積和回路14)
積和回路14(T1/8)は、図6に示すように切替器121,122、DFF123,124、切替器125,126、固定乗算器127,128、DFF129,130、ビット反転器131及び加算器132により構成される。
【0033】
この積和回路14では、遅延回路11及び12により3クロック期間遅延されて同時に入力されるデータf2,f6を切替器121,122を介してDFF123,124により2クロック期間保持し、それらのデータに対して切替器125,126を介して固定乗算器127,128により固定の乗算係数√2*sin(π/8),√2*cos(π/8)の乗算を交互に行って、各乗算結果をDFF129,130に保持する。
【0034】
そして、ビット反転器131及び加算器132により各々の乗算結果の和(f6*√2*sin(π/8)+f2*√2*cos(π/8)=d14a)及び差(f2*√2*sin(π/8)-f6*√2*cos(π/8)=d14b)を時分割で演算し、和(d14a)、差(d14b)を順次出力する。
【0035】
切替器121,122,125,126及びビット反転器131の動作は、図5で説明した切替器111,1112及びビット反転器115の動作と同様である(以下、同様とする)。
【0036】
【表6】
【0037】
固定乗算器127,128は、固定乗算係数を表1に示す様な15ビットのデータとすると、1次元目の演算ではDCT係数データの量子化誤差を考慮して図19及び図21に示す様な回路構成になるが、2次元目の演算ではその量子化誤差の考慮が不要なので、図19や図21の回路に比べ演算結果の最上位ビットの位置が下がり、図20や図22に示す様な回路構成になる。
【0038】
また、ビット反転器131及び加算器132による加減算においてはダイナミックレンジの変化は無いが、ここでは図29に示すように20ビットの演算結果に対して正方向の四捨五入を行い、16ビットで出力する加算回路を加算器132に用いるものとする。この積和回路14の入出力及び内部状態の関係を表7に示す。
【0039】
【表7】
【0040】
(加減算回路15)
加減算回路15は、図5に示した加減算回路13と同様、図7に示すように切替器141,142、DFF143,144、ビット反転器145及び加算器146からなる。
【0041】
この加減算回路15では、加減算回路13及び積和回路14から同時に入力される加算結果d13a,d14aを切替器141,142を介してDFF143,144で2クロック期間保持し、それらのデータの和(d13a+d14a=d15a)と差(d13a−d14a=d15b)をビット反転器145を介して加算器146により時分割で演算し、和(d15a)、差(d15b)を順次出力する。
【0042】
この加減算においては、1次元目の演算では加減算回路13からの入力データが13ビットであり、3ビット左シフト(8倍)して積和回路14からの入力データを加減算するが、2次元目の演算では加減算回路13及び積和回路14からの入力データはいずれも16ビットであるので、ビットシフトせずにそのまま加減算を行う。尚、これらの演算によるダイナミックレンジの変化は無い。加減算回路15の入出力及び内部状態の関係を表8に示す。
【0043】
【表8】
【0044】
(加減算回路16)
加減算回路16も同様に、図8に示すように切替器151,152、DFF153,154、ビット反転器155及び加算器156から構成される。
この加減算回路16では、加減算回路13及び積和回路14から同時に入力される減算結果d13b,d14bを2クロック期間保持し、それらのデータの和(d13b+d14b=d16a)と差(d13b-d14b=d16b)をビット反転器155を介して加算器156により時分割で演算し、和(d16a)、差(d16b)を順次出力する。このように加減算回路16の加減算の処理内容は加減算回路15と同じであり、演算タイミングのみが加減算回路15と異なる。加減算回路16の入出力及び内部状態の関係を表9に示す。
【0045】
【表9】
【0046】
[第2の部分逆DCT回路20について]
第2の部分逆DCT回路20は、多重処理回路21、積和回路22、加減算回路23、加減算回路24、積和回路25及び積和回路26からなり、入力端子Bin,Dinに入力される奇数番目のデータ(f1,f7またはf3,f7)に対する逆DCTを行う。この第2の部分逆DCT回路20の1次元目の入力順序及び出力順序を表10及び表11に示す。
【0047】
【表10】
【0048】
【表11】
【0049】
(多重処理回路21)
多重処理回路21は、図9に示すように切替器161,162、DFF163及び切替器164により構成され、入力端子Bin,Dinから同時に入力されるデータf1,f7を2クロック期間保持し、f1、f7の順序で時分割出力する。この多重処理回路21の入出力及び内部状態の関係を表12に示す。
【0050】
【表12】
【0051】
(積和回路22)
積和回路22(T1/4)は、図10に示すように切替器171,172、DFF173,174、ビット反転器175、加算器176、DFF177及び固定乗算器178により構成される。
【0052】
この積和回路22では、入力端子Bin及びDinから同時に入力されるデータf3,f5を切替器171,172を介してDFF173,174により2クロック期間保持し、これらのデータの和(f3+f5)と差(f3−f5)をビット反転器175を介して加算器176により時分割で演算する。そして、これらの演算結果をDFF177により保持して、固定乗算器177で乗算係数cos(π/4)を乗じ、(f3+f5)*cos(π/4)、(f3−f5)*cos(π/4)を順次出力する。
【0053】
この1次元目のIDCT演算では、入力が12ビットであり、加減算結果(f3+f5),(f3−f5)は13ビットであるが、2次元目のIDCT演算では、演算精度を確保するために入力が16ビット程度必要であり、加減算結果は17ビット程度になる。
【0054】
また、固定乗算器178は乗算結果に対して正方向の四捨五入を含む機構にすることが可能であり、乗算係数を表6に示したような15ビットのデータとすると、1次元目の演算ではDCT係数の量子化誤差を考慮して図23に示す様な回路構成になるが、2次元目の演算ではその量子化誤差の考慮が不要なので、図23の回路に比べ演算結果の最上位ビットの位置が下がり、図24に示す様な回路構成になる。積和回路22の入出力及び内部状態の関係を表13に示す。
【0055】
【表13】
【0056】
(加減算回路23)
加減算回路23は、図11に示すよう切替器181,182、DFF183,184、ビット反転器185、加算器186及びDFF187から構成され、多重処理回路21及び積和回路22から同時に入力されるデータf1と乗算結果(f3+f5)*cos(π/4)を切替器181,182を介してDFF183,184により2クロック期間保持し、それらのデータの和(f1+(f3+f5)*cos(π/4)=d23a)と差(f1−(f3+f5)*cos(π/4)=d23b)をビット反転器185を介して加算器186により時分割で演算し、DFF187を介して和(d23a)、差(d23b)を順次出力する。
【0057】
この加減算においては、1次元目の演算では多重処理回路21からの入力データが12ビットであり、このデータを1ビット符号拡張し、さらに3ビット左シフト(8倍)した後に積和回路22からの入力データと加減算するが、2次元目の演算では多重処理回路21及び積和回路22からの入力データはいずれも16ビットであるので、符号拡張やビットシフトを行わずに、そのまま加減算を行う。なお、これらの演算によるダイナミックレンジの変化は無い。また、後述する加減算回路24の出力タイミングと合わせるために、加減算結果はDFF187により1クロック期間遅延されて出力される。加減算回路23の入出力及び内部状態の関係を表14に示す。
【0058】
【表14】
【0059】
(加減算回路24)
加減算回路24は、図12に示すように切替器191,192、DFF193,194、ビット反転器195及び加算器196から構成され、多重処理回路21及び積和回路22から同時に入力されるデータf7と乗算結果(f3−f5)*cos(π/4)を切替器191,192を介してDFF193,194により2クロック期間保持し、それらのデータの和(f7+(f3−f5)*cos(π/4)=d24a)と差(f7−(f3−f5)*cos(π/4)=d24b)をビット反転器195を介して加算器196により時分割で演算し、和(d24a)、差(d24b)を順次出力する。
【0060】
この加減算においては、1次元目の演算では多重処理回路21からの入力データが12ビットであり、このデータを1ビット符号拡張し、積和回路22からの16ビットの入力データの上位13ビットと加減算し、積和回路22からの入力データの下位3ビットと合わせて出力するが、2次元目の演算では多重処理回路21及び積和回路22からの入力データはいずれも16ビットであるため、ビットシフトを行わずに、そのまま加減算を行う。なお、これらの演算によるダイナミックレンジの変化は無い。この加減算回路24の入出力及び内部状態の関係を表15に示す。
【0061】
【表15】
【0062】
(積和回路25)
積和回路25(T1/16)は、図13に示すように切替器201,202、DFF203,204、切替器205,206、固定乗算器207,208、DFF209,210、ビット反転器211及び加算器212により構成される。
【0063】
この積和回路25では、加減算回路23及び24から同時に入力される加算結果d23a,d24aを切替器201,202を介してDFF203,204により2クロック期間保持し、それらのデータに対して切替器205,206を介して固定乗算器207,208により固定の乗算係数√2*sin(π/16),√2*cos(π/16)の乗算を交互に行って、各乗算結果をDFF209,210に保持する。
【0064】
そして、ビット反転器211及び加算器212により各々の乗算結果の和(d24a*√2*sin(π/16)+d23a*√2*cos(π/16)=d25a)及び差(d23a*√2*sin(π/16)−d24a*√2*cos(π/16)=d25b)を時分割で演算し、和(d25a)、差(d25b)を順次出力する。
【0065】
固定乗算器207,208は、DCT係数データの量子化誤差の考慮が不要なので、固定乗算係数を表1に示す様な15ビットのデータとすると、図25及び図26に示す様な回路構成になる。
【0066】
また、ビット反転器211及び加算器212による加減算においてはダイナミックレンジの変化は無く、ここでも図29に示すように20ビットの演算結果に対して正方向の四捨五入を行い、16ビットで出力する加算回路を加算器212に用いている。積和回路25の入出力及び内部状態の関係を表16に示す。
【0067】
【表16】
【0068】
(積和回路26)
積和回路26(T3/16)は、図13に示した積和回路25と同様、図14に示すように切替器221,222、DFF223,224、切替器225,226、固定乗算器227,228、DFF229,230、ビット反転器231及び加算器232により構成される。
【0069】
この積和回路26では、加減算回路23及び24から同時に入力される減算結果d23b,d24bを切替器221,222を介してDFF223,224により2クロック期間保持し、それらのデータに対して切替器225,226を介して固定乗算器227,228により固定の乗算係数√2*sin(3π/16)と√2*cos(3π/16)の乗算を交互に行い、各乗算結果をDFF229,230に保持する。
【0070】
そして、ビット反転器231及び加算器232により各々の乗算結果の和(d24b*√2*sin(3π/16)+d23b*√2*cos(3π/16)=d26a)及び差(d23b*√2*sin(3π/16)−d24b*√2*cos(3π/16)=d26b)を時分割で演算し、和(d26a)、差(d26b)を順次出力する。
【0071】
固定乗算器227,228は、DCT係数データの量子化誤差の考慮が不要なので、固定乗算係数を表1に示す様な15ビットのデータとすると、図27及び図28に示す様な回路構成になる。
【0072】
また、ビット反転器231及び加算器232による加減算においてはダイナミックレンジの変化は無く、ここでも図29に示すように20ビットの演算結果に対して正方向の四捨五入を行い、16ビットで出力する加算回路を加算器212に用いている。積和回路26の入出力及び内部状態の関係を表17に示す。
【0073】
【表17】
【0074】
[出力演算回路30について]
出力演算回路30は、4つの加減算回路31,32,33,34からなり、第1及び第2の部分逆DCT回路10,20からの出力データに対して加減算処理を行うことにより、最終的な逆DCTデータとして8点の画素配列{x0,x1,…,x6,x7}を出力端子Aout,Bout,Cout,Doutへ出力する。この出力演算回路30の1次元目の入力順序及び出力順序を表18及び表19に示す。
【0075】
【表18】
【0076】
【表19】
【0077】
また、表19を数式で表すと次のようになる。
(加減算回路31)
加減算回路31は、図15に示すように切替器241,242、DFF243,244、ビット反転器245、加算器246及びDFF247,248から構成され、加減算回路15及び積和回路25から同時に入力される加算結果d15a,d16aを切替器241,242を介してDFF243,244により2クロック期間保持し、それらのデータの和(d15a+d16a=x0)と差(d15a−d16a=x7)をビット反転器245を介して加算器246により時分割で演算し、和(x0)、差(x7)を順次出力する。この加減算結果は、後述する加減算回路34の出力タイミングと合わせるためにDFF247,248により2クロック期間遅延されて出力される。加減算回路31の入出力及び内部状態の関係を表20に示す。
【0078】
【表20】
【0079】
(加減算回路32)
加減算回路32は、図16に示すように切替器251,252、DFF253,254、ビット反転器255、加算器256及びDFF257から構成され、加減算回路15及び積和回路25から同時に入力される減算結果d15b,d16bを切替器251,252を介してDFF253,254により2クロック期間保持し、それらのデータの和(d15b+d16b=x3)と差(d15b−d16b=x4)をビット反転器255を介して加算器256により時分割で演算し、和(x3)、差(x4)を順次DFF247,248を介して出力する。この加減算結果は、後述する加減算回路34の出力タイミングと合わせるためにDFF257により1クロック期間遅延されて出力される。この加減算回路32の入出力及び内部状態の関係を表21に示す。
【0080】
【表21】
【0081】
(加減算回路33)
加減算回路33は、図17に示すように切替器261,262、DFF263,264、ビット反転器265、加算器266及びDFF267から構成され、加減算回路16及び積和回路26から同時に入力される加算結果d16a,d26aを切替器261,262を介してDFF263,264により2クロック期間保持し、それらのデータの和(d16a+d26a=x1)と差(d16a−d26a=x6)をビット反転器265を介して加算器266により時分割で演算し、和(x1)、差(x6)を順次出力する。この加減算結果は、後述する加減算回路34の出力タイミングと合わせるためにDFF267により1クロック期間遅延されて出力される。加減算回路33の入出力及び内部状態の関係を表22に示す。
【0082】
【表22】
【0083】
(加減算回路34)
加減算回路34は、図18に示すように切替器271,272、DFF273,274、ビット反転器275及び加算器276から構成され、加減算回路16及び積和回路26から同時に入力される減算結果d16b,d26bを切替器271,272を介してDFF273,274により2クロック期間保持し、それらのデータの和(d16b+d26b=x2)と差(d16b−d26b=x5)をビット反転器275を介して加算器276により時分割で演算し、和(x2)、差(x5)を順次出力する。加減算回路34の入出力及び内部状態の関係を表23に示す。
【0084】
【表23】
【0085】
図30〜図33は、本実施形態の動作をタイミングチャートで表したものであり、図30は遅延回路11,12と多重処理回路21及び積和回路22の動作タイミング、図31は加減算回路13と積和回路14及び加減算回路23,24の動作タイミング、図32は加減算回路15,16と積和回路25,26の動作タイミング、図33は加減算回路41〜44の動作タイミングをそれぞれ示している。
【0086】
上述した本実施形態に係る逆離散コサイン変換回路の演算方法によれば、乗算器の演算速度の4倍の速度で変換処理が可能になり、表24に示す様な順序で入力される2次元DCT係数に対して、1次元目のIDCT結果が、表25に示すような順序で出力される。
【0087】
【表24】
【0088】
【表25】
【0089】
2次元IDCT回路は、図34に示すように制御部100による制御の下で第1の1次元IDCT回路101により1次元(8点)IDCTを8ライン処理した後、転置処理部102で行列を転置して、第2の1次元IDCT回路103により再度1次元(8点)IDCTを8ライン処理することによって実現される。ここで、上述の式で使用したjはライン番号となる。
【0090】
【発明の効果】
以上説明したように本発明によれば、高速演算アルゴリズムを使用し、4つのパスに分けて並列処理することにより、回路規模の小さな固定係数乗算器の使用を可能にし、4つの積和回路と9個の加減算回路からなる小規模の回路構成で、固定乗算器の動作速度の4倍の画素レートの逆DCT処理が可能になる。
【図面の簡単な説明】
【図1】本発明の一実施形態に係る逆DCT回路の全体構成を示すブロック図
【図2】同実施形態における逆DCT演算フローを示す図
【図3】図2の逆DCT演算フロー図で使用した詳細な演算内容を示す図
【図4】同実施形態における遅延回路11及び12の詳細回路を示す図
【図5】同実施形態における加減算回路13の詳細回路を示す図
【図6】同実施形態における積和回路14の詳細回路を示す図
【図7】同実施形態における加減算回路15の詳細回路を示す図
【図8】同実施形態における加減算回路16の詳細回路を示す図
【図9】同実施形態における多重処理回路21の詳細回路を示す図
【図10】同実施形態における積和回路22の詳細回路を示す図
【図11】同実施形態における加減算回路23の詳細回路を示す図
【図12】同実施形態における加減算回路24の詳細回路を示す図
【図13】同実施形態における積和回路25の詳細回路を示す図
【図14】同実施形態における積和回路26の詳細回路を示す図
【図15】同実施形態における加減算回路31の詳細回路を示す図
【図16】同実施形態における加減算回路32の詳細回路を示す図
【図17】同実施形態における加減算回路33の詳細回路を示す図
【図18】同実施形態における加減算回路34の詳細回路を示す図
【図19】同実施形態における1次元目の積和回路14内の第1の固定乗算器を示す図
【図20】同実施形態における2次元目の積和回路14内の第1の固定乗算器を示す図
【図21】同実施形態における1次元目の積和回路14内の第2の固定乗算器を示す図
【図22】同実施形態における2次元目の積和回路14内の第2の固定乗算器を示す図
【図23】同実施形態における1次元目の積和回路22内の固定乗算器を示す図
【図24】同実施形態における2次元目の積和回路22内の固定乗算器を示す図
【図25】同実施形態における積和回路25内の第1の固定乗算器を示す図
【図26】同実施形態における積和回路25内の第2の固定乗算器を示す図
【図27】同実施形態における積和回路26内の第1の固定乗算器を示す図
【図28】同実施形態における積和回路26内の第2の固定乗算器を示す図
【図29】同実施形態における積和回路14,25及び26で使用される加算器を示す図
【図30】同実施形態における遅延回路11,12と多重処理回路21及び積和回路22の動作タイミングを示す図
【図31】同実施形態における加減算回路13と積和回路14及び加減算回路23,24の動作タイミングを示す図
【図32】同実施形態における加減算回路15,16と積和回路25,26の動作タイミングを示す図
【図33】同実施形態における加減算回路41〜44の動作タイミングを示す図
【図34】2次元逆DCT回路の概略構成を示すブロック図
【符号の説明】
10…第1の部分逆DCT回路
11,12…3クロック遅延回路
13,15,16…加減算回路
14…2つの加減算器と1つの固定乗算器で構成される積和回路
20…第2の部分逆DCT回路
21…多重処理回路
22…1つの加減算器と1つの固定乗算器で構成される積和回路
23,24…加減算回路
25,26…2つの固定乗算器と1つの加減算器で構成される積和回路
30…出力演算回路
31〜33…加減算回路[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an inverse discrete cosine transform circuit used when decompressing or compressing image data, and more particularly to an 8-point inverse discrete cosine transform circuit.
[0002]
[Prior art]
Currently, TV receivers capable of simultaneously displaying TV broadcast programs of a plurality of channels are in widespread use. Even in digital TV broadcasting by terrestrial or satellite, it is desired that a TV receiver can simultaneously display a broadcast program of a plurality of channels.
[0003]
In digital TV broadcasting, compression of image data by the MPEG method is used, and a decompression processing device (decoder) that decompresses the compressed image data and restores the original image data is used on the TV receiver side. When simultaneously displaying a broadcast program of a plurality of channels in a digital broadcast TV receiver, it is conceivable to prepare a plurality of decoders corresponding to the plurality of channels. However, there is a problem that the scale of the apparatus increases. is there. Accordingly, a small-scale decoder capable of decompressing a plurality of channels of compressed image data in a short time is desired. Furthermore, in order to be able to cope with simultaneous display of a plurality of screens of high-definition TV broadcasting (so-called high-vision broadcasting), the decoder is also required to have higher speed.
[0004]
The MPEG system is basically a technique for compressing image data by combining three elements of motion compensated prediction, discrete cosine transform (hereinafter referred to as DCT) and variable length coding, and the decoder side is opposite to the encoder side. In addition, decompression of compressed image data is performed by a combination of variable length decoding, inverse discrete cosine transform (hereinafter referred to as inverse DCT) and motion compensation prediction. The inverse DCT is also used for the local decoding system of the encoder. In MPEG encoders and decoders, increasing the speed of the inverse DCT circuit and reducing the circuit scale are major issues.
[0005]
An example of a DCT / inverse DCT circuit capable of high-speed processing on a small scale is disclosed in Japanese Patent Application Laid-Open No. 5-181896 as a conventional technique that meets this requirement. This circuit enables 8-point DCT and inverse DCT. The 9 adders / subtracters in the previous stage are dedicated to DCT, and the function of only inverse DCT is 7 fixed coefficient multipliers and 9 adders / subtractors. It is configurable. However, this circuit configuration can only handle image data with a pixel rate twice that of the processing speed of the fixed coefficient multiplier. For simultaneous display of multiple screens of high-definition TV broadcasts, a fixed coefficient multiplier or addition / subtraction is possible. Therefore, it is necessary to insert a register for holding the operation result in the middle of the device, resulting in a problem that the circuit scale increases.
[0006]
[Problems to be solved by the invention]
As described above, the conventional technique can deal only with image data having a pixel rate twice as high as the processing speed of the fixed coefficient multiplier during inverse DCT. There is a problem that the circuit scale is increased and the cost is increased because a register for holding the intermediate calculation results of the coefficient multiplier and the adder / subtracter is required.
[0007]
An object of the present invention is to provide an inverse discrete cosine transform circuit that enables high-speed processing necessary for decoding a plurality of high-definition images or the like with a small-scale circuit.
[0008]
[Means for Solving the Problems]
The present invention makes it possible to use a fixed coefficient multiplier by performing parallel processing by dividing into four paths using a high-speed arithmetic algorithm, and is configured with four product-sum circuits and nine adder / subtractors. This enables image processing at a pixel rate four times as high as the operation speed.
[0009]
That is, the inverse discrete cosine transform circuit according to the present invention performs the inverse discrete cosine transform processing by simultaneously inputting even-numbered data of 8 points of input discrete cosine transform coefficient data two by two simultaneously. An inverse DCT circuit, a second partial inverse DCT circuit that performs an inverse discrete cosine transform process by inputting odd-numbered data of 8 points of discrete cosine transform coefficient data two by two simultaneously, and the first and second And an output arithmetic circuit for obtaining 8-point inverse discrete cosine transform data by adding / subtracting output data from the partial inverse DCT circuit.
[0010]
More specifically, the first partial inverse DCT circuit includes a first addition / subtraction circuit that performs addition / subtraction of two points of discrete cosine transform data input to the first and second input terminals at the same time; A product-sum operation of two points of discrete cosine transform data input simultaneously to two input terminals. Sum of products circuit And second 1 Output data of the adder / subtractor circuit First product-sum circuit Addition / subtraction with output data at different timings 2nd and 3rd And an addition / subtraction circuit.
[0011]
The second partial inverse DCT circuit is a multiprocessing circuit that multiplexes two points of discrete cosine transform data that are simultaneously input to the third and fourth input terminals, and is simultaneously input to the third and fourth input terminals. A second sum of products of the discrete cosine transform data of the two points Sum of products circuit When, Multiple processing Circuit output data and Second product-sum circuit Addition / subtraction with output data at different timings 4th and 5th An addition / subtraction circuit of 4th and 5th 3rd and 4th which perform the product-sum operation of the output data of the adder / subtracter circuit at different timings Sum of products circuit It consists of.
[0012]
Further, the output arithmetic circuit outputs the output data of the second addition / subtraction circuit and the third data Sum of products circuit The sixth and seventh addition / subtraction circuits that perform addition / subtraction with the output data at different timings, the output data of the third addition / subtraction circuit, and the fourth Sum of products circuit The seventh and eighth addition / subtraction circuits perform addition / subtraction with the output data at different timings.
[0013]
Also, First to fourth product-sum circuits Has a fixed coefficient multiplier And two A fixed coefficient multiplier and a rounding process are performed on one input data by the fixed coefficient multiplier.
[0014]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of the present invention will be described below with reference to the drawings.
FIG. 1 shows a configuration of an inverse DCT circuit according to an embodiment of the present invention. This inverse DCT circuit is roughly composed of a first partial
[0015]
This inverse DCT circuit executes the computation algorithm shown in the computation flow graph of FIG. 2, and the processing of the first partial
[0016]
cos (α + β) = cosα ・ cosβ−sinα ・ sinβ
cos (α−β) = cosα ・ cosβ + sinα ・ sinβ
2cosα ・ cosβ = cos (α−β) + cos (α + β)
2sinα ・ sinβ = cos (α-β) -cos (α + β)
cos2α + cos2β = 2cos (α−β) ・ cos (α + β)
cos2α-cos2β = -2sin (α-β) ・ sin (α + β)
2 ・ (cosα) 2 = 1 + cos2α
2 ・ (sinα) 2 = 1−cos2α
cos (π / 4 + β) = cosπ / 4 ・ (cosβ-sinβ)
cos (π / 4-β) = cosπ / 4 ・ (cosβ + sinβ)
cosπ / 4 = 1 / sq (2)
-------------- dct --------------------
A = x0 + x7
B = x3 + x4
C = x1 + x6
D = x2 + x5
f0 = (A + B) + (C + D)
f4 = (A + B)-(C + D)
f2 = sq (2) * {(AB) cosπ / 8 + (CD) sinπ / 8}
f6 = sq (2) * {(AB) sinπ / 8− (CD) cosπ / 8}
J = x0-x7
K = x3-x4
L = x1-x6
M = x2-x5
f1 = sq (2) * (J ・ cosπ / 16 + K ・ sinπ / 16 + L ・ cos3π / 16 + M ・ sin3π / 16)
f3 = sq (2) * (J ・ cos3π / 16-K ・ sin3π / 16-L ・ sinπ / 16-M ・ cosπ / 16)
f5 = sq (2) * (J ・ sin3π / 16 + K ・ cos3π / 16-L ・ cosπ / 16 + M ・ sinπ / 16)
f7 = sq (2) * (J ・ sinπ / 16-K ・ cosπ / 16-L ・ sin3π / 16 + M ・ cos3π / 16)
-------------- idct --------------------
f0 + f4 = 2 * (A + B)
f0-f4 = 2 * (C + D)
f2 * sq (2) * cosπ / 8 + f6 * sq (2) * sinπ / 8
= 2 * (AB) * {(cosπ / 8) 2 + (sinπ / 8) 2 } = 2 * (AB)
f2 * sq (2) * cosπ / 8-f6 * sq (2) * sinπ / 8
= 2 * (CD) * {(sinπ / 8) 2 + (cosπ / 8) 2 } = 2 * (CD)
2 * (A + B) + 2 * (AB) = 4 * A = 4 * (x0 + x7)
2 * (A + B) -2 * (AB) = 4 * B = 4 * (x3 + x4)
2 * (C + D) + 2 * (CD) = 4 * C = 4 * (x1 + x6)
2 * (C + D) -2 * (CD) = 4 * D = 4 * (x2 + x5)
(f3-f5) ・ cosπ / 4
= sq (2) ・ cosπ / 4 ・ {J ・ (cos3π / 16-sin3π / 16) -K ・ (cos3π / 16 + sin3π / 16) + L ・ (cosπ / 16-sinπ / 16) -M ・ ( cosπ / 16 + sinπ / 16)}
= sq (2) * {J ・ cos7π / 16-K ・ cosπ / 16 + L ・ cos5π / 16-M ・ cos3π / 16}
= sq (2) * {J ・ sinπ / 16-K ・ cosπ / 16 + L ・ sin3π / 16-M ・ cos3π / 16}
(f3 + f5) ・ cosπ / 4
= sq (2) * {J ・ cosπ / 16 + K ・ cos7π / 16-L ・ cos3π / 16-M ・ cos5π / 16}
= sq (2) * {J ・ cosπ / 16 + K ・ sinπ / 16-L ・ cos3π / 16-M ・ sin3π / 16}
f1 + (f3 + f5) ・ cosπ / 4
= sq (2) * (J ・ cosπ / 16 + K ・ sinπ / 16 + L ・ cos3π / 16 + M ・ sin3π / 16) + sq (2) * (J ・ cosπ / 16 + K ・ sinπ / 16- L ・ cos3π / 16-M ・ sin3π / 16)
= 2 * sq (2) * (J ・ cosπ / 16 + K ・ sinπ / 16) f1- (f3 + f5) ・ cosπ / 4
= sq (2) * (J ・ cosπ / 16 + K ・ sinπ / 16 + L ・ cos3π / 16 + M ・ sin3π / 16) -sq (2) * (J ・ cosπ / 16 + K ・ sinπ / 16- L ・ cos3π / 16-M ・ sin3π / 16)
= 2 * sq (2) * (L ・ cos3π / 16 + M ・ sin3π / 16)
(f3-f5) ・ cosπ / 4 + f7
= Sq (2) * (J ・ sinπ / 16-K ・ cosπ / 16 + L ・ sin3π / 16-M ・ cos3π / 16)
+ sq (2) * (J ・ sinπ / 16-K ・ cosπ / 16-L ・ sin3π / 16 + M ・ cos3π / 16)
= 2 * sq (2) * (J ・ sinπ / 16-K ・ cosπ / 16)
(f3-f5) ・ cosπ / 4-f7
= Sq (2) * (J ・ sinπ / 16-K ・ cosπ / 16 + L ・ sin3π / 16-M ・ cos3π / 16)
-sq (2) * (J ・ sinπ / 16-K ・ cosπ / 16-L ・ sin3π / 16 + M ・ cos3π / 16)
= 2 * sq (2) * (L ・ sin3π / 16-M ・ cos3π / 16)
2 * sq (2) * (J ・ cosπ / 16 + K ・ sinπ / 16) * sq (2) * cosπ / 16
+ 2 * sq (2) * (J ・ sinπ / 16-K ・ cosπ / 16) * sq (2) * sinπ / 16
= 4 * J * {(cosπ / 16) 2 + (sinπ / 16) 2 }
= 4 * J = 4 * (x0-x7)
2 * sq (2) * (J ・ cosπ / 16 + K ・ sinπ / 16) * sq (2) * sinπ / 16-2 * sq (2) * (J ・ sinπ / 16-K ・ cosπ / 16) * sq (2) * cosπ / 16
= 4 * K * {(sinπ / 16) 2 + (cosπ / 16) 2 }
= 4 * K = 4 * (x3-x4)
2 * sq (2) * (L ・ cos3π / 16 + M ・ sin3π / 16) * sq (2) * cos3π / 16
+ 2 * sq (2) * (L ・ sin3π / 16-M ・ cos3π / 16) * sq (2) * sin3π / 16
= 4 * L * {(cosπ / 16) 2 + (sinπ / 16) 2 }
= 4 * L = 4 * (x1-x6)
2 * sq (2) * (L ・ cos3π / 16 + M ・ sin3π / 16) * sq (2) * sin3π / 16
+ 2 * sq (2) * (L ・ sin3π / 16-M ・ cos3π / 16) * sq (2) * cos3π / 16
= 4 * M * {(sinπ / 16) 2 + (cosπ / 16) 2 }
= 4 * M = 4 * (x3-x4)
Further, by calculating these sums and differences, eight times the pixel value is reproduced, but a normal pixel value is obtained by the 3-bit shift. This bit shift is performed collectively after the two-dimensional processing is completed.
[0017]
In the present embodiment, 8-point DCT coefficient data {f0, f1 obtained by performing DCT on a block basis by using a DCT circuit (not shown) as an 8-point pixel array {x0, x1,..., X6, x7} as one block. ,..., F6, f7} are input to the inverse DCT circuit, and a case where inverse DCT is performed on the 8-point DCT coefficient data will be described.
[0018]
Here, f0, f1,..., F6, f7 are DCT coefficient data of each frequency component of the image in one block, and f0 corresponds to the DC component of the image, and f1, f2,. F7 corresponds to the highest frequency component. Further, f0, f2, f4, f6, and f8 are even-numbered data, and f1, f3, f5, and f7 are odd-numbered data.
[0019]
In FIG. 1, 8-point DCT coefficient data f2 and f0 are alternately input to the input terminal Ain, and 8-point DCT coefficient data data f3 and f1 are alternately input to the input terminal Bin. The 8-point DCT coefficient data f6 and f4 are alternately input, and the 8-point DCT coefficient data f5 and f7 are alternately input to the input terminal Din.
[0020]
The first partial
[0021]
The detailed configuration of each part in FIG. 1 will be described below with reference to FIGS. 4 to 18 show the detailed configuration of each part of FIG. 1, and FIGS. Sum of products circuit FIG. 29 shows the configuration of the fixed coefficient multiplier used in FIG. Sum of
[0022]
[First Partial Inverse DCT Circuit 10]
The first partial
[0023]
[Table 1]
[0024]
[Table 2]
[0025]
Table 2 is expressed as follows.
jd15a = {jf0 + jf4} + {jf6 * √2 * sin (π / 8) + jf2 * √2 * cos (π / 8)}
jd15b = {jf0 + jf4} − {jf6 * √2 * sin (π / 8) + jf2 * √2 * cos (π / 8)}
jd16a = {jf0−jf4} + {jf2 * √2 * sin (π / 8) −jf6 * √2 * cos (π / 8)}
jd16b = {jf0−jf4} − {jf2 * √2 * sin (π / 8) −jf6 * √2 * cos (π / 8)}
(j = 0, 1, ..., 7)
(Delay
For example, as shown in FIG. 4, each of the
[0026]
[Table 3]
[0027]
[Table 4]
[0028]
(Addition / subtraction circuit 13)
As shown in FIG. 5, the adder /
[0029]
The
[0030]
This addition /
[0031]
[Table 5]
[0032]
(Product-sum circuit 14)
As shown in FIG. 6, the product-sum circuit 14 (T1 / 8) includes
[0033]
In the product-
[0034]
Then, the sum (f6 * √2 * sin (π / 8) + f2 * √2 * cos (π / 8) = d14a) and the difference (f2 * √2) of the respective multiplication results are obtained by the
[0035]
The operations of the
[0036]
[Table 6]
[0037]
If the fixed
[0038]
In addition, there is no change in the dynamic range in the addition / subtraction by the
[0039]
[Table 7]
[0040]
(Addition / subtraction circuit 15)
Like the addition /
[0041]
In the addition /
[0042]
In this addition / subtraction, the input data from the addition /
[0043]
[Table 8]
[0044]
(Addition / subtraction circuit 16)
Similarly, the adder /
The addition /
[0045]
[Table 9]
[0046]
[About Second Partial Inverse DCT Circuit 20]
The second partial
[0047]
[Table 10]
[0048]
[Table 11]
[0049]
(Multiple processing circuit 21)
As shown in FIG. 9, the
[0050]
[Table 12]
[0051]
(Product-sum circuit 22)
As shown in FIG. 10, the product-sum circuit 22 (T1 / 4) includes
[0052]
In the product-
[0053]
In this first-dimensional IDCT calculation, the input is 12 bits, and the addition / subtraction results (f3 + f5) and (f3-f5) are 13 bits. In the second-dimensional IDCT calculation, the input is performed to ensure the calculation accuracy. Is about 16 bits, and the addition / subtraction result is about 17 bits.
[0054]
Further, the fixed
[0055]
[Table 13]
[0056]
(Addition / subtraction circuit 23)
As shown in FIG. 11, the adder /
[0057]
In this addition / subtraction, the input data from the
[0058]
[Table 14]
[0059]
(Addition / subtraction circuit 24)
As shown in FIG. 12, the adder /
[0060]
In this addition / subtraction, the input data from the
[0061]
[Table 15]
[0062]
(Product-sum circuit 25)
As shown in FIG. 13, the product-sum circuit 25 (T1 / 16) includes
[0063]
In the product-
[0064]
Then, the sum (d24a * √2 * sin (π / 16) + d23a * √2 * cos (π / 16) = d25a) and the difference (d23a * √2) of the respective multiplication results are obtained by the
[0065]
Since the fixed
[0066]
In addition, there is no change in the dynamic range in the addition / subtraction by the
[0067]
[Table 16]
[0068]
(Product-sum circuit 26)
As in the product-
[0069]
In the product-
[0070]
Then, the sum (d24b * √2 * sin (3π / 16) + d23b * √2 * cos (3π / 16) = d26a) and difference (d23b * √2) of the multiplication results are obtained by the
[0071]
Since the fixed
[0072]
In addition, there is no change in the dynamic range in the addition / subtraction by the
[0073]
[Table 17]
[0074]
[About the output arithmetic circuit 30]
The
[0075]
[Table 18]
[0076]
[Table 19]
[0077]
Table 19 is represented by the following formula.
(Addition / subtraction circuit 31)
As shown in FIG. 15, the adder /
[0078]
[Table 20]
[0079]
(Addition / subtraction circuit 32)
As shown in FIG. 16, the adder /
[0080]
[Table 21]
[0081]
(Addition / subtraction circuit 33)
As shown in FIG. 17, the adder /
[0082]
[Table 22]
[0083]
(Addition / subtraction circuit 34)
As shown in FIG. 18, the adder /
[0084]
[Table 23]
[0085]
30 to 33 are timing charts showing the operation of this embodiment. FIG. 30 shows the operation timing of the
[0086]
According to the calculation method of the inverse discrete cosine transform circuit according to the present embodiment described above, the conversion process can be performed at a speed four times the calculation speed of the multiplier, and two-dimensional input is performed in the order shown in Table 24. For the DCT coefficient, the IDCT results of the first dimension are output in the order shown in Table 25.
[0087]
[Table 24]
[0088]
[Table 25]
[0089]
34, the two-dimensional IDCT circuit processes eight lines of one-dimensional (8-point) IDCT by the first one-
[0090]
【The invention's effect】
As described above, according to the present invention, it is possible to use a fixed coefficient multiplier having a small circuit scale by using a high-speed arithmetic algorithm and performing parallel processing by dividing into four paths. With a small circuit configuration composed of nine adder / subtracters, it is possible to perform inverse DCT processing at a pixel rate four times the operating speed of the fixed multiplier.
[Brief description of the drawings]
FIG. 1 is a block diagram showing the overall configuration of an inverse DCT circuit according to an embodiment of the present invention.
FIG. 2 is a diagram showing an inverse DCT calculation flow in the embodiment;
FIG. 3 is a diagram showing detailed calculation contents used in the inverse DCT calculation flowchart of FIG. 2;
FIG. 4 is a diagram showing a detailed circuit of
FIG. 5 is a diagram showing a detailed circuit of an addition /
FIG. 6 is a view showing a detailed circuit of a product-
FIG. 7 is a diagram showing a detailed circuit of an addition /
FIG. 8 is a diagram showing a detailed circuit of an addition /
FIG. 9 is a view showing a detailed circuit of a
FIG. 10 is a diagram showing a detailed circuit of a product-
FIG. 11 is a diagram showing a detailed circuit of an addition /
FIG. 12 is a diagram showing a detailed circuit of an addition /
FIG. 13 is a diagram showing a detailed circuit of a product-
FIG. 14 is a diagram showing a detailed circuit of a product-
FIG. 15 is a diagram showing a detailed circuit of an addition /
FIG. 16 is a diagram showing a detailed circuit of an addition /
FIG. 17 is a diagram showing a detailed circuit of an addition /
18 is a diagram showing a detailed circuit of an addition /
FIG. 19 is a diagram showing a first fixed multiplier in the first-dimensional product-
FIG. 20 is a diagram showing a first fixed multiplier in the second-dimensional product-
FIG. 21 is a diagram showing a second fixed multiplier in the first-dimensional product-
FIG. 22 is a diagram showing a second fixed multiplier in the second-dimensional product-
FIG. 23 is a diagram showing a fixed multiplier in the first-dimensional product-
FIG. 24 is a diagram showing a fixed multiplier in the second-dimensional product-
FIG. 25 is a diagram showing a first fixed multiplier in the product-
FIG. 26 is a diagram showing a second fixed multiplier in the product-
FIG. 27 is a diagram showing a first fixed multiplier in the product-
FIG. 28 is a diagram showing a second fixed multiplier in the product-
FIG. 29 is a diagram showing an adder used in the product-
30 is a diagram showing operation timings of the
31 is a diagram showing operation timings of the addition /
FIG. 32 is a view showing the operation timing of the addition /
33 is a diagram showing the operation timing of the addition / subtraction circuits 41 to 44 in the same embodiment. FIG.
FIG. 34 is a block diagram showing a schematic configuration of a two-dimensional inverse DCT circuit.
[Explanation of symbols]
10: First partial inverse DCT circuit
11, 12 ... 3 clock delay circuit
13, 15, 16 ... addition / subtraction circuit
14: Product-sum circuit composed of two adders / subtracters and one fixed multiplier
20 ... Second partial inverse DCT circuit
21. Multiple processing circuit
22... Product-sum circuit composed of one adder / subtracter and one fixed multiplier
23, 24 ... Addition / subtraction circuit
25, 26... Product-sum circuit composed of two fixed multipliers and one adder / subtracter
30: Output arithmetic circuit
31-33 ... addition / subtraction circuit
Claims (4)
前記第1の部分逆DCT回路は、第1及び第2の入力端子に同時に入力される2点の離散コサイン変換データの加減算を行う第1の加減算回路と、第1及び第2の入力端子に同時に入力される2点の離散コサイン変換データの積和演算を行う第1の積和回路と、前記第1の加減算回路の出力データと前記第1の積和回路の出力データとの加減算を互いに異なるタイミングで行う第2及び第3の加減算回路とを有し、前記第1の積和回路は固定係数の乗算と四捨五入処理を行う固定係数乗算器を有することを特徴とする逆離散コサイン変換回路。A first partial inverse DCT circuit for performing inverse discrete cosine transform processing by simultaneously inputting even-numbered data of 8 points of input discrete cosine transform coefficient data two by two, and the 8-point discrete cosine transform coefficient Add and subtract output data from a second partial inverse DCT circuit that performs inverse discrete cosine transform processing by simultaneously inputting odd-numbered data of two points at a time, and the first and second partial inverse DCT circuits. And an output arithmetic circuit for obtaining inverse discrete cosine transform data of 8 points ,
The first partial inverse DCT circuit includes a first addition / subtraction circuit that performs addition / subtraction of two points of discrete cosine transform data input simultaneously to the first and second input terminals, and first and second input terminals. A first product-sum circuit that performs a product-sum operation of two points of discrete cosine transform data that are input simultaneously, and an addition / subtraction of the output data of the first addition-subtraction circuit and the output data of the first product-sum circuit are mutually performed An inverse discrete cosine transform circuit comprising: a second and a third add / subtract circuit that perform at different timings, wherein the first product-sum circuit includes a fixed coefficient multiplier that performs multiplication and rounding of a fixed coefficient .
前記第2の部分逆DCT回路は、第3及び第4の入力端子に同時に入力される2点の離散コサイン変換データを多重する多重処理回路と、第3及び第4の入力端子に同時に入力される2点の離散コサイン変換データの積和演算を行う第2の積和回路と、前記多重処理回路の出力データと前記第2の積和回路の出力データとの加減算を互いに異なるタイミングで行う第4及び第5の加減算回路と、前記第4及び第5の加減算回路の出力データの積和演算を互いに異なるタイミングで行う第3及び第4の積和回路とを有し、前記第2、第3及び第4の積和回路は固定係数の乗算と四捨五入処理を行う固定係数乗算器を有することを特徴とする逆離散コサイン変換回路。 The second partial inverse DCT circuit is simultaneously input to a multiprocessing circuit that multiplexes two points of discrete cosine transform data input simultaneously to the third and fourth input terminals, and to the third and fourth input terminals. A second product-sum circuit that performs a product-sum operation on the two discrete cosine transform data, and an addition / subtraction of the output data of the multiprocessing circuit and the output data of the second product-sum circuit at different timings. 4 and the fifth addition / subtraction circuit, and the third and fourth product / sum circuits that perform the product-sum operation on the output data of the fourth and fifth addition / subtraction circuits at different timings, respectively. 3. The inverse discrete cosine transform circuit according to claim 3, wherein each of the third and fourth product-sum circuits includes a fixed coefficient multiplier that performs multiplication and rounding of a fixed coefficient.
前記第1の部分逆DCT回路は、第1及び第2の入力端子に同時に入力される2点の離散コサイン変換データの加減算を行う第1の加減算回路と、第1及び第2の入力端子に同時に入力される2点の離散コサイン変換データの積和演算を行う第1の積和回路と、前記第1の加減算回路の出力データと前記第1の積和回路の出力データとの加減算を互いに異なるタイミングで行う第2及び第3の加減算回路とを有し、 The first partial inverse DCT circuit includes a first addition / subtraction circuit that performs addition / subtraction of two points of discrete cosine transform data input simultaneously to the first and second input terminals, and first and second input terminals. A first product-sum circuit that performs a product-sum operation of two points of discrete cosine transform data that are input simultaneously, and an addition / subtraction of the output data of the first addition-subtraction circuit and the output data of the first product-sum circuit are mutually performed Second and third addition / subtraction circuits that perform at different timings,
前記第2の部分逆DCT回路は、第3及び第4の入力端子に同時に入力される2点の離散コサイン変換データを多重する多重処理回路と、第3及び第4の入力端子に同時に入力される2点の離散コサイン変換データの積和演算を行う第2の積和回路と、前記多重処理回路の出力データと前記第2の積和回路の出力データとの加減算を互いに異なるタイミングで行う第4及び第5の加減算回路と、前記第4及び第5の加減算回路の出力データの積和演算を互いに異なるタイミングで行う第3及び第4の積和回路とを有し、 The second partial inverse DCT circuit is simultaneously input to a multiprocessing circuit that multiplexes two points of discrete cosine transform data input simultaneously to the third and fourth input terminals, and to the third and fourth input terminals. A second product-sum circuit that performs a product-sum operation on the two discrete cosine transform data, and an addition / subtraction of the output data of the multiprocessing circuit and the output data of the second product-sum circuit at different timings. 4 and 5th addition / subtraction circuit, and third and fourth product / sum circuits that perform product-sum operations on output data of the fourth and fifth addition / subtraction circuits at different timings,
前記第1、第2、第3及び第4の積和回路は固定係数の乗算と四捨五入処理を行う固定係数乗算器を有することを特徴とする逆離散コサイン変換回路。 The inverse discrete cosine transform circuit characterized in that each of the first, second, third and fourth product-sum circuits has a fixed coefficient multiplier for performing multiplication and rounding processing of a fixed coefficient.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2000280824A JP3749826B2 (en) | 2000-09-14 | 2000-09-14 | Inverse discrete cosine transform circuit |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2000280824A JP3749826B2 (en) | 2000-09-14 | 2000-09-14 | Inverse discrete cosine transform circuit |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2002091942A JP2002091942A (en) | 2002-03-29 |
| JP3749826B2 true JP3749826B2 (en) | 2006-03-01 |
Family
ID=18765582
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2000280824A Expired - Fee Related JP3749826B2 (en) | 2000-09-14 | 2000-09-14 | Inverse discrete cosine transform circuit |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3749826B2 (en) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP4772607B2 (en) * | 2006-07-10 | 2011-09-14 | パナソニック株式会社 | Two-dimensional orthogonal transformation device, two-dimensional orthogonal transformation method, and imaging system |
| JP4389182B2 (en) | 2007-05-08 | 2009-12-24 | ブラザー工業株式会社 | Development device |
| CN113596472B (en) * | 2021-07-27 | 2023-12-22 | 安谋科技(中国)有限公司 | Data processing method and device |
-
2000
- 2000-09-14 JP JP2000280824A patent/JP3749826B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2002091942A (en) | 2002-03-29 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CA2653692C (en) | Reduction of errors during computation of inverse discrete cosine transform | |
| KR100965704B1 (en) | 2D conversion for image and video coding | |
| KR101131757B1 (en) | Transform design with scaled and non-scaled interfaces | |
| AU2007204645B2 (en) | Transforms with common factors | |
| KR100451035B1 (en) | VSLI Execution Services Discrete Cosine Transform Processor | |
| JPH0373689A (en) | Method and apparatus for compressing image data by means of low-cost mathematical transformations for low-speed transmission of image sequences | |
| KR20000008477A (en) | Inverse discrete cosine transform system for mpeg decoder | |
| JP3749826B2 (en) | Inverse discrete cosine transform circuit | |
| KR20010072420A (en) | Circuit and method for performing a two-dimensional transform during the processing of an image | |
| JP2009159287A (en) | Semiconductor device and signal processing method | |
| US5748514A (en) | Forward and inverse discrete cosine transform circuits | |
| KR100777930B1 (en) | Decoding Device and Decoding Method | |
| JPH07143488A (en) | Image data decoding method and apparatus | |
| KR20030057425A (en) | An adaptive inverse transformation device | |
| KR101601864B1 (en) | Inverse transform method and apparatus for video codec | |
| JP2007312369A (en) | Block noise removal device | |
| US8194988B2 (en) | Methods for calculating video inverse transform | |
| JP4217408B2 (en) | Filter processing device | |
| JPH10308672A (en) | Decoding operation method and decoding computing element | |
| KR100221657B1 (en) | Inverse Discrete Cosine Converter | |
| JP5451171B2 (en) | Data conversion processing device and data conversion processing method | |
| JP2007526508A (en) | Method and apparatus for conversion of digital audio signal and inverse conversion of converted digital audio signal | |
| JP2010154577A (en) | Image signal conversion method, image encoder, image encoding method, image encoding program, image decoder, image decoding method, and image decoding program | |
| KR20040002115A (en) | Inverse Discrete Cosine Transform Appartus | |
| JPH05268481A (en) | Image compression / decompression device |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050315 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050322 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050523 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20051129 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051205 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091209 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091209 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101209 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111209 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121209 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121209 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131209 Year of fee payment: 8 |
|
| LAPS | Cancellation because of no payment of annual fees |