Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP3749826B2 - Inverse discrete cosine transform circuit - Google Patents
[go: Go Back, main page]

JP3749826B2 - Inverse discrete cosine transform circuit - Google Patents

Inverse discrete cosine transform circuit Download PDF

Info

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
Application number
JP2000280824A
Other languages
Japanese (ja)
Other versions
JP2002091942A (en
Inventor
義治 上谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2000280824A priority Critical patent/JP3749826B2/en
Publication of JP2002091942A publication Critical patent/JP2002091942A/en
Application granted granted Critical
Publication of JP3749826B2 publication Critical patent/JP3749826B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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の積和回路の出力データとの加減算を互いに異なるタイミングで行う第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】

Figure 0003749826
【0024】
【表2】
Figure 0003749826
【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】
Figure 0003749826
【0027】
【表4】
Figure 0003749826
【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】
Figure 0003749826
【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】
Figure 0003749826
【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】
Figure 0003749826
【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】
Figure 0003749826
【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】
Figure 0003749826
【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】
Figure 0003749826
【0048】
【表11】
Figure 0003749826
【0049】
(多重処理回路21)
多重処理回路21は、図9に示すように切替器161,162、DFF163及び切替器164により構成され、入力端子Bin,Dinから同時に入力されるデータf1,f7を2クロック期間保持し、f1、f7の順序で時分割出力する。この多重処理回路21の入出力及び内部状態の関係を表12に示す。
【0050】
【表12】
Figure 0003749826
【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】
Figure 0003749826
【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】
Figure 0003749826
【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】
Figure 0003749826
【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】
Figure 0003749826
【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】
Figure 0003749826
【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】
Figure 0003749826
【0076】
【表19】
Figure 0003749826
【0077】
また、表19を数式で表すと次のようになる。
Figure 0003749826
(加減算回路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】
Figure 0003749826
【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】
Figure 0003749826
【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】
Figure 0003749826
【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】
Figure 0003749826
【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】
Figure 0003749826
【0088】
【表25】
Figure 0003749826
【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 inverse DCT circuit 10, a second partial inverse DCT circuit 20, and an output arithmetic circuit 30.
[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 inverse DCT circuit 10 is the portion 10A of FIG. The processing corresponds to the portion 20A in FIG. 2, and the processing of the output arithmetic circuit 30 corresponds to the portion 30A in FIG. FIGS. 3A, 3B, and 3C are explanatory diagrams of the contents of the partial calculation used in the calculation flow graph of FIG. This calculation flow is expressed as follows.
[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 inverse DCT circuit 10 performs inverse DCT on the even-numbered data input to the input terminals Ain and Cin, and the second partial inverse DCT circuit 20 is the odd-numbered odd number input to the input terminals Bin and Din. Perform inverse DCT on the data. The output arithmetic circuit 30 adds and subtracts the output data from the first and second partial inverse DCT circuits 10 and 20 and outputs eight points of inverse DCT data to the output terminals Aout, Bout, Cout and Dout.
[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 products circuit 2 shows the configuration of an adder used in FIG.
[0022]
[First Partial Inverse DCT Circuit 10]
The first partial inverse DCT circuit 10 includes delay circuits 11 and 12, an addition / subtraction circuit 13, a product-sum circuit 14, an addition / subtraction circuit 15 and an addition / subtraction circuit 16, and includes even-numbered data (f0) input to input terminals Ain and Cin. , f4 or f2, f6). Tables 1 and 2 show the input order and output order of the first dimension of the first partial inverse DCT circuit 10.
[0023]
[Table 1]
Figure 0003749826
[0024]
[Table 2]
Figure 0003749826
[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 circuits 11 and 12)
For example, as shown in FIG. 4, each of the delay circuits 11 and 12 includes three D-type flip-flops (DFF) 101 to 103 connected in cascade, and data (f0) input from input terminals Ain and Cin, respectively. , f4 or f2, f6) are delayed by 3 clock periods and output. These delay circuits 11 and 12 are for so-called delay compensation for outputting the output data of the first partial inverse DCT circuit 0 in synchronization with the output data of the second partial inverse DCT circuit 20 described later. Tables 3 and 4 show the relationship between the input / output and internal states of the delay circuits 11 and 12, respectively.
[0026]
[Table 3]
Figure 0003749826
[0027]
[Table 4]
Figure 0003749826
[0028]
(Addition / subtraction circuit 13)
As shown in FIG. 5, the adder / subtractor circuit 13 is composed of switches 111 and 112, DFFs 113 and 114, a bit inverter 115 and an adder 116, and is delayed by three clock periods by the delay circuits 11 and 12 and input simultaneously. f0, f4 or f2, f6 are held by DFF 113, 114 via switchers 111, 112 for two clock periods, and the sum (f0 + f4 = d13a) and difference (f0-f4 = d13b) of those data are bit-inverted The adder 116 performs time division calculation via the unit 115, and sequentially outputs the sum (d13a) and the difference (d13b).
[0029]
The selectors 111 and 112 select the output data of the delay circuits 111 and 112 input to the H side when the control signal en4e is at the high level, and the outputs of the DFFs 113 and 114 input to the L side when the en4e is at the low level. Select data. The bit inverter 115 performs bit inversion when the control signal Tg2e is at a high level and outputs difference data from the adder 116, and does not perform bit inversion when the Tg2e is at a low level, and the sum data from the adder 116. Is output.
[0030]
This addition / subtraction circuit 13 increases the dynamic range in consideration of the quantization error of the DCT coefficient data in the first-dimensional operation, so that the 13-bit output is obtained with respect to the 12-bit input. Since it is not necessary to consider the quantization error, the dynamic range does not change and a 16-bit output is obtained for a 16-bit input. Table 5 shows the relationship between the input / output and the internal state of the adder / subtractor circuit 13.
[0031]
[Table 5]
Figure 0003749826
[0032]
(Product-sum circuit 14)
As shown in FIG. 6, the product-sum circuit 14 (T1 / 8) includes switches 121 and 122, DFFs 123 and 124, switches 125 and 126, fixed multipliers 127 and 128, DFFs 129 and 130, a bit inverter 131, and an addition. The device 132 is configured.
[0033]
In the product-sum circuit 14, the data f 2 and f 6 that are delayed for 3 clock periods by the delay circuits 11 and 12 and simultaneously input are held by the DFFs 123 and 124 via the switches 121 and 122 for 2 clock periods. On the other hand, fixed multipliers 127 and 128 via switchers 125 and 126 alternately perform fixed multiplication coefficients √2 * sin (π / 8) and √2 * cos (π / 8), respectively. The result is held in DFF 129 and 130.
[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 bit inverter 131 and the adder 132. * sin (π / 8) −f6 * √2 * cos (π / 8) = d14b) is calculated in a time division manner, and the sum (d14a) and the difference (d14b) are sequentially output.
[0035]
The operations of the switches 121, 122, 125, 126 and the bit inverter 131 are the same as the operations of the switches 111, 1112 and the bit inverter 115 described in FIG. 5 (hereinafter the same).
[0036]
[Table 6]
Figure 0003749826
[0037]
If the fixed multipliers 127 and 128 are 15-bit data as shown in Table 1, the fixed multipliers 127 and 128 take the quantization error of the DCT coefficient data into consideration in the first dimension calculation as shown in FIGS. However, since the quantization error need not be considered in the second-dimensional calculation, the position of the most significant bit of the calculation result is lower than that of the circuits of FIGS. 19 and 21, as shown in FIGS. 20 and 22. The circuit configuration is as follows.
[0038]
In addition, there is no change in the dynamic range in the addition / subtraction by the bit inverter 131 and the adder 132, but here, as shown in FIG. 29, the 20-bit calculation result is rounded in the positive direction and output in 16 bits. Assume that an adder circuit is used for the adder 132. Table 7 shows the relationship between the input / output and the internal state of the product-sum circuit 14.
[0039]
[Table 7]
Figure 0003749826
[0040]
(Addition / subtraction circuit 15)
Like the addition / subtraction circuit 13 shown in FIG. 5, the addition / subtraction circuit 15 includes switches 141 and 142, DFFs 143 and 144, a bit inverter 145, and an adder 146 as shown in FIG. 7.
[0041]
In the addition / subtraction circuit 15, the addition results d13a and d14a simultaneously input from the addition / subtraction circuit 13 and the product-sum circuit 14 are held in the DFFs 143 and 144 via the switches 141 and 142 for two clock periods, and the sum of these data (d13a + d14a = D15a) and the difference (d13a-d14a = d15b) are calculated by the adder 146 via the bit inverter 145 in a time division manner, and the sum (d15a) and the difference (d15b) are sequentially output.
[0042]
In this addition / subtraction, the input data from the addition / subtraction circuit 13 is 13 bits in the first dimension operation, and the input data from the product-sum circuit 14 is added / subtracted by shifting left by 3 bits (8 times). In this calculation, since the input data from the adder / subtractor circuit 13 and the product-sum circuit 14 are both 16 bits, addition / subtraction is performed as it is without bit shift. There is no change in the dynamic range due to these calculations. Table 8 shows the relationship between the input / output and the internal state of the adder / subtractor circuit 15.
[0043]
[Table 8]
Figure 0003749826
[0044]
(Addition / subtraction circuit 16)
Similarly, the adder / subtractor circuit 16 is composed of switches 151 and 152, DFFs 153 and 154, a bit inverter 155, and an adder 156 as shown in FIG.
The addition / subtraction circuit 16 holds the subtraction results d13b and d14b input simultaneously from the addition / subtraction circuit 13 and the product-sum circuit 14 for two clock periods, and the sum (d13b + d14b = d16a) and difference (d13b-d14b = d16b) of these data. Is calculated by the adder 156 via the bit inverter 155 in a time division manner, and the sum (d16a) and the difference (d16b) are sequentially output. As described above, the addition / subtraction processing content of the addition / subtraction circuit 16 is the same as that of the addition / subtraction circuit 15, and only the operation timing is different from that of the addition / subtraction circuit 15. Table 9 shows the relationship between the input / output and the internal state of the adder / subtractor circuit 16.
[0045]
[Table 9]
Figure 0003749826
[0046]
[About Second Partial Inverse DCT Circuit 20]
The second partial inverse DCT circuit 20 includes a multiprocessing circuit 21, a product-sum circuit 22, an addition / subtraction circuit 23, an addition / subtraction circuit 24, a product-sum circuit 25, and a product-sum circuit 26, and is input to input terminals Bin and Din. Perform inverse DCT on the second data (f1, f7 or f3, f7). The first order input order and output order of the second partial inverse DCT circuit 20 are shown in Table 10 and Table 11.
[0047]
[Table 10]
Figure 0003749826
[0048]
[Table 11]
Figure 0003749826
[0049]
(Multiple processing circuit 21)
As shown in FIG. 9, the multi-processing circuit 21 includes switchers 161 and 162, a DFF 163, and a switch 164, and holds data f1 and f7 input simultaneously from the input terminals Bin and Din for two clock periods, f1, Output time division in the order of f7. Table 12 shows the relationship between the input / output and the internal state of the multiprocessing circuit 21.
[0050]
[Table 12]
Figure 0003749826
[0051]
(Product-sum circuit 22)
As shown in FIG. 10, the product-sum circuit 22 (T1 / 4) includes switchers 171, 172, DFFs 173, 174, a bit inverter 175, an adder 176, a DFF 177, and a fixed multiplier 178.
[0052]
In the product-sum circuit 22, the data f3 and f5 input simultaneously from the input terminals Bin and Din are held by the DFFs 173 and 174 via the switches 171 and 172 for two clock periods, and the sum (f3 + f5) and difference of these data are stored. (f3−f5) is calculated by the adder 176 via the bit inverter 175 in a time division manner. These calculation results are held by the DFF 177 and multiplied by the multiplication coefficient cos (π / 4) by the fixed multiplier 177 to obtain (f3 + f5) * cos (π / 4), (f3−f5) * cos (π / 4) are output sequentially.
[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 multiplier 178 can be configured to include a rounding in the positive direction with respect to the multiplication result. If the multiplication coefficient is 15-bit data as shown in Table 6, the first-dimensional operation Considering the quantization error of the DCT coefficient, the circuit configuration is as shown in FIG. 23. However, since the quantization error need not be considered in the second-dimensional operation, the most significant bit of the operation result compared to the circuit of FIG. As a result, the circuit configuration as shown in FIG. Table 13 shows the relationship between the input / output and the internal state of the product-sum circuit 22.
[0055]
[Table 13]
Figure 0003749826
[0056]
(Addition / subtraction circuit 23)
As shown in FIG. 11, the adder / subtracter circuit 23 includes switches 181, 182, DFFs 183, 184, a bit inverter 185, an adder 186, and a DFF 187, and data f1 input simultaneously from the multiprocessing circuit 21 and the product-sum circuit 22 And the multiplication result (f3 + f5) * cos (π / 4) are held by the DFFs 183 and 184 via the switches 181 and 182 for two clock periods, and the sum (f1 + (f3 + f5) * cos (π / 4) = d23a) and the difference (f1− (f3 + f5) * cos (π / 4) = d23b) are calculated by the adder 186 via the bit inverter 185 in a time division manner, and the sum (d23a) and the difference (d23b) are obtained via the DFF187. ) Are output sequentially.
[0057]
In this addition / subtraction, the input data from the multi-processing circuit 21 is 12 bits in the first-dimensional operation, and this data is subjected to 1-bit code extension and further shifted left by 3 bits (8 times). However, since the input data from the multiprocessing circuit 21 and the product-sum circuit 22 are both 16 bits in the second-dimensional operation, the addition / subtraction is performed without performing sign extension or bit shift. . There is no change in the dynamic range due to these calculations. Further, in order to match the output timing of the addition / subtraction circuit 24 described later, the addition / subtraction result is delayed by one clock period and output by the DFF 187. Table 14 shows the relationship between the input / output of the adder / subtractor circuit 23 and the internal state.
[0058]
[Table 14]
Figure 0003749826
[0059]
(Addition / subtraction circuit 24)
As shown in FIG. 12, the adder / subtractor circuit 24 is composed of switches 191, 192, DFFs 193, 194, a bit inverter 195, and an adder 196, and data f7 input simultaneously from the multiprocessing circuit 21 and the product-sum circuit 22 The multiplication result (f3−f5) * cos (π / 4) is held by the DFFs 193 and 194 via the switches 191 and 192 for two clock periods, and the sum (f7 + (f3−f5) * cos (π / 4) = d24a) and the difference (f7− (f3−f5) * cos (π / 4) = d24b) are calculated by the adder 196 through the bit inverter 195 in a time division manner, and the sum (d24a), difference ( d24b) are sequentially output.
[0060]
In this addition / subtraction, the input data from the multi-processing circuit 21 is 12 bits in the first dimension operation, and this data is subjected to 1-bit code extension, and the upper 13 bits of the 16-bit input data from the product-sum circuit 22 Addition / subtraction and output together with the lower 3 bits of the input data from the product-sum circuit 22, but since the input data from the multiplex processing circuit 21 and the product-sum circuit 22 are both 16 bits in the second dimension operation, Addition / subtraction is performed without performing bit shift. There is no change in the dynamic range due to these calculations. Table 15 shows the relationship between the input / output and the internal state of the adder / subtractor circuit 24.
[0061]
[Table 15]
Figure 0003749826
[0062]
(Product-sum circuit 25)
As shown in FIG. 13, the product-sum circuit 25 (T1 / 16) includes switches 201 and 202, DFFs 203 and 204, switches 205 and 206, fixed multipliers 207 and 208, DFFs 209 and 210, a bit inverter 211, and an adder. The device 212 is configured.
[0063]
In the product-sum circuit 25, the addition results d23a and d24a simultaneously input from the adder / subtractor circuits 23 and 24 are held by the DFFs 203 and 204 via the switchers 201 and 202 for two clock periods, and the switcher 205 is used for these data. , 206, fixed multipliers 207, 208 are alternately multiplied by fixed multiplication coefficients √2 * sin (π / 16), √2 * cos (π / 16), and the multiplication results are converted into DFFs 209, 210. Hold on.
[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 bit inverter 211 and the adder 212. * sin (π / 16) −d24a * √2 * cos (π / 16) = d25b) is calculated in a time division manner, and the sum (d25a) and the difference (d25b) are sequentially output.
[0065]
Since the fixed multipliers 207 and 208 do not need to consider the quantization error of the DCT coefficient data, assuming that the fixed multiplication coefficient is 15-bit data as shown in Table 1, the circuit configuration is as shown in FIGS. Become.
[0066]
In addition, there is no change in the dynamic range in the addition / subtraction by the bit inverter 211 and the adder 212, and here, as shown in FIG. 29, the 20-bit calculation result is rounded in the positive direction and output in 16 bits. A circuit is used for the adder 212. Table 16 shows the relationship between the input and output of the product-sum circuit 25 and the internal state.
[0067]
[Table 16]
Figure 0003749826
[0068]
(Product-sum circuit 26)
As in the product-sum circuit 25 shown in FIG. 13, the product-sum circuit 26 (T 3/16) has switching units 221, 222, DFFs 223, 224, switching units 225, 226, fixed multipliers 227, 228, DFFs 229 and 230, a bit inverter 231, and an adder 232.
[0069]
In the product-sum circuit 26, the subtraction results d23b and d24b input simultaneously from the adder / subtractor circuits 23 and 24 are held by the DFFs 223 and 224 via the switchers 221 and 222 for two clock periods, and the switch 225 is used for these data. , 226 and fixed multipliers 227 and 228 are alternately multiplied by fixed multiplication coefficients √2 * sin (3π / 16) and √2 * cos (3π / 16), and the multiplication results are sent to DFFs 229 and 230, respectively. Hold.
[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 bit inverter 231 and the adder 232. * sin (3π / 16) −d24b * √2 * cos (3π / 16) = d26b) is calculated in a time division manner, and the sum (d26a) and the difference (d26b) are sequentially output.
[0071]
Since the fixed multipliers 227 and 228 do not need to consider the quantization error of the DCT coefficient data, if the fixed multiplication coefficient is 15-bit data as shown in Table 1, the circuit configuration as shown in FIGS. 27 and 28 is obtained. Become.
[0072]
In addition, there is no change in the dynamic range in the addition / subtraction by the bit inverter 231 and the adder 232, and here, as shown in FIG. 29, the 20-bit operation result is rounded in the positive direction, and the addition is output in 16 bits. A circuit is used for the adder 212. Table 17 shows the relationship between the input / output and the internal state of the product-sum circuit 26.
[0073]
[Table 17]
Figure 0003749826
[0074]
[About the output arithmetic circuit 30]
The output arithmetic circuit 30 includes four addition / subtraction circuits 31, 32, 33, and 34. By performing addition / subtraction processing on the output data from the first and second partial inverse DCT circuits 10 and 20, the final result is obtained. An eight-point pixel array {x0, x1,..., X6, x7} is output to the output terminals Aout, Bout, Cout, Dout as inverse DCT data. Tables 18 and 19 show the first order input order and output order of the output arithmetic circuit 30.
[0075]
[Table 18]
Figure 0003749826
[0076]
[Table 19]
Figure 0003749826
[0077]
Table 19 is represented by the following formula.
Figure 0003749826
(Addition / subtraction circuit 31)
As shown in FIG. 15, the adder / subtracter circuit 31 includes switchers 241 and 242, DFFs 243 and 244, a bit inverter 245, an adder 246 and DFFs 247 and 248, and is simultaneously input from the adder / subtractor circuit 15 and the product-sum circuit 25. The addition results d15a and d16a are held by the DFFs 243 and 244 via the switches 241 and 242 for two clock periods, and the sum (d15a + d16a = x0) and the difference (d15a-d16a = x7) of these data are sent via the bit inverter 245. The adder 246 performs time division calculation and sequentially outputs the sum (x0) and the difference (x7). The addition / subtraction results are output after being delayed by two clock periods by the DFFs 247 and 248 in order to match the output timing of the addition / subtraction circuit 34 described later. Table 20 shows the relationship between the input and output of the adder / subtractor circuit 31 and the internal state.
[0078]
[Table 20]
Figure 0003749826
[0079]
(Addition / subtraction circuit 32)
As shown in FIG. 16, the adder / subtracter circuit 32 includes switchers 251 and 252, DFFs 253 and 254, a bit inverter 255, an adder 256 and a DFF 257, and a subtraction result input simultaneously from the adder / subtractor circuit 15 and the product-sum circuit 25. d15b and d16b are held by the DFFs 253 and 254 via the switchers 251 and 252 for two clock periods, and the sum (d15b + d16b = x3) and the difference (d15b−d16b = x4) are added via the bit inverter 255. The unit 256 performs time division calculation, and outputs the sum (x3) and the difference (x4) sequentially through the DFFs 247 and 248. This addition / subtraction result is output after being delayed by one clock period by the DFF 257 in order to match the output timing of the addition / subtraction circuit 34 described later. Table 21 shows the relationship between the input / output and the internal state of the adder / subtractor circuit 32.
[0080]
[Table 21]
Figure 0003749826
[0081]
(Addition / subtraction circuit 33)
As shown in FIG. 17, the adder / subtracter circuit 33 includes switchers 261 and 262, DFFs 263 and 264, a bit inverter 265, an adder 266 and a DFF 267, and an addition result input simultaneously from the adder / subtracter circuit 16 and the product-sum circuit 26. d16a and d26a are held by the DFFs 263 and 264 via the switches 261 and 262 for two clock periods, and the sum (d16a + d26a = x1) and the difference (d16a-d26a = x6) of these data are added via the bit inverter 265. The calculation is performed in a time-sharing manner by the device 266, and the sum (x1) and the difference (x6) are sequentially output. This addition / subtraction result is output after being delayed by one clock period by the DFF 267 in order to match the output timing of the addition / subtraction circuit 34 described later. Table 22 shows the relationship between the input / output and the internal state of the addition / subtraction circuit 33.
[0082]
[Table 22]
Figure 0003749826
[0083]
(Addition / subtraction circuit 34)
As shown in FIG. 18, the adder / subtracter circuit 34 includes switchers 271, 272, DFFs 273, 274, a bit inverter 275, and an adder 276. Subtraction results d16b, which are simultaneously input from the adder / subtractor circuit 16 and the product-sum circuit 26, d26b is held by the DFFs 273 and 274 via the switches 271 and 272 for two clock periods, and the sum (d16b + d26b = x2) and the difference (d16b−d26b = x5) of the data are added via the bit inverter 275 to the adder 276. To calculate in a time-sharing manner, and sequentially output the sum (x2) and difference (x5). Table 23 shows the relationship between the input / output and the internal state of the addition / subtraction circuit 34.
[0084]
[Table 23]
Figure 0003749826
[0085]
30 to 33 are timing charts showing the operation of this embodiment. FIG. 30 shows the operation timing of the delay circuits 11 and 12, the multiprocessing circuit 21 and the product-sum circuit 22, and FIG. FIG. 32 shows the operation timings of the addition / subtraction circuits 15 and 16 and the product-sum circuits 25 and 26, and FIG. 33 shows the operation timings of the addition / subtraction circuits 41 to 44, respectively. .
[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]
Figure 0003749826
[0088]
[Table 25]
Figure 0003749826
[0089]
34, the two-dimensional IDCT circuit processes eight lines of one-dimensional (8-point) IDCT by the first one-dimensional IDCT circuit 101 under the control of the control unit 100 as shown in FIG. This is realized by transposing and processing the one-dimensional (8-point) IDCT for eight lines again by the second one-dimensional IDCT circuit 103. Here, j used in the above equation is a line number.
[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 delay circuits 11 and 12 in the same embodiment;
FIG. 5 is a diagram showing a detailed circuit of an addition / subtraction circuit 13 in the same embodiment;
FIG. 6 is a view showing a detailed circuit of a product-sum circuit 14 in the same embodiment;
FIG. 7 is a diagram showing a detailed circuit of an addition / subtraction circuit 15 in the same embodiment;
FIG. 8 is a diagram showing a detailed circuit of an addition / subtraction circuit 16 in the same embodiment;
FIG. 9 is a view showing a detailed circuit of a multiprocessing circuit 21 in the embodiment;
FIG. 10 is a diagram showing a detailed circuit of a product-sum circuit 22 in the same embodiment;
FIG. 11 is a diagram showing a detailed circuit of an addition / subtraction circuit 23 in the same embodiment;
FIG. 12 is a diagram showing a detailed circuit of an addition / subtraction circuit 24 in the same embodiment;
FIG. 13 is a diagram showing a detailed circuit of a product-sum circuit 25 in the same embodiment;
FIG. 14 is a diagram showing a detailed circuit of a product-sum circuit 26 in the same embodiment;
FIG. 15 is a diagram showing a detailed circuit of an addition / subtraction circuit 31 in the same embodiment;
FIG. 16 is a diagram showing a detailed circuit of an addition / subtraction circuit 32 in the same embodiment;
FIG. 17 is a diagram showing a detailed circuit of an addition / subtraction circuit 33 in the same embodiment;
18 is a diagram showing a detailed circuit of an addition / subtraction circuit 34 in the same embodiment; FIG.
FIG. 19 is a diagram showing a first fixed multiplier in the first-dimensional product-sum circuit 14 in the same embodiment;
FIG. 20 is a diagram showing a first fixed multiplier in the second-dimensional product-sum circuit 14 in the same embodiment;
FIG. 21 is a diagram showing a second fixed multiplier in the first-dimensional product-sum circuit 14 in the same embodiment;
FIG. 22 is a diagram showing a second fixed multiplier in the second-dimensional product-sum circuit 14 in the same embodiment;
FIG. 23 is a diagram showing a fixed multiplier in the first-dimensional product-sum circuit 22 in the same embodiment;
FIG. 24 is a diagram showing a fixed multiplier in the second-dimensional product-sum circuit 22 in the same embodiment;
FIG. 25 is a diagram showing a first fixed multiplier in the product-sum circuit 25 in the same embodiment;
FIG. 26 is a diagram showing a second fixed multiplier in the product-sum circuit 25 in the same embodiment;
FIG. 27 is a diagram showing a first fixed multiplier in the product-sum circuit 26 in the same embodiment;
FIG. 28 is a diagram showing a second fixed multiplier in the product-sum circuit 26 in the same embodiment;
FIG. 29 is a diagram showing an adder used in the product-sum circuits 14, 25 and 26 in the same embodiment;
30 is a diagram showing operation timings of the delay circuits 11 and 12, the multiprocessing circuit 21, and the product-sum circuit 22 in the same embodiment. FIG.
31 is a diagram showing operation timings of the addition / subtraction circuit 13, the product-sum circuit 14, and the addition / subtraction circuits 23 and 24 in the embodiment.
FIG. 32 is a view showing the operation timing of the addition / subtraction circuits 15 and 16 and the product-sum circuits 25 and 26 in the same embodiment;
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)

入力される8点の離散コサイン変換係数データのうちの偶数番目のデータを2点ずつ同時に入力して逆離散コサイン変換処理を行う第1の部分逆DCT回路と、前記8点の離散コサイン変換係数データのうちの奇数番目のデータを2点ずつ同時に入力して逆離散コサイン変換処理を行う第2の部分逆DCT回路と、前記第1及び第2の部分逆DCT回路からの出力データを加減算して8点の逆離散コサイン変換データを得る出力演算回路とを備え
前記第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 .
入力される8点の離散コサイン変換係数データのうちの偶数番目のデータを2点ずつ同時に入力して逆離散コサイン変換処理を行う第1の部分逆DCT回路と、前記8点の離散コサイン変換係数データのうちの奇数番目のデータを2点ずつ同時に入力して逆離散コサイン変換処理を行う第2の部分逆DCT回路と、前記第1及び第2の部分逆DCT回路からの出力データを加減算して8点の逆離散コサイン変換データを得る出力演算回路とを備え、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. An output arithmetic circuit for obtaining inverse discrete cosine transform data of 8 points,
前記第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.
入力される8点の離散コサイン変換係数データのうちの偶数番目のデータを2点ずつ同時に入力して逆離散コサイン変換処理を行う第1の部分逆DCT回路と、前記8点の離散コサイン変換係数データのうちの奇数番目のデータを2点ずつ同時に入力して逆離散コサイン変換処理を行う第2の部分逆DCT回路と、前記第1及び第2の部分逆DCT回路からの出力データを加減算して8点の逆離散コサイン変換データを得る出力演算回路とを備え、  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. An output arithmetic circuit for obtaining inverse discrete cosine transform data of 8 points,
前記第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.
前記出力演算回路は、前記第2の加減算回路の出力データと前記第3の積和回路の出力データとの加減算を互いに異なるタイミングで行う第6及び第7の加減算回路と、前記第3の加減算回路の出力データと前記第4の積和回路の出力データとの加減算を互いに異なるタイミングで行う第7及び第8の加減算回路とを有することを特徴とする請求項記載の逆離散コサイン変換回路。The output arithmetic circuit includes sixth and seventh addition / subtraction circuits for adding / subtracting the output data of the second addition / subtraction circuit and the output data of the third product-sum circuit at different timings, and the third addition / subtraction circuit. 4. The inverse discrete cosine transform circuit according to claim 3, further comprising seventh and eighth addition / subtraction circuits for performing addition / subtraction between output data of the circuit and output data of the fourth product-sum circuit at different timings. .
JP2000280824A 2000-09-14 2000-09-14 Inverse discrete cosine transform circuit Expired - Fee Related JP3749826B2 (en)

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)

* Cited by examiner, † Cited by third party
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

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