(57)【特許請求の範囲】
【請求項１】
入力される８点の離散コサイン変換係数データのうちの偶数番目のデータを２点ずつ同時に入力して逆離散コサイン変換処理を行う第１の部分逆ＤＣＴ回路と、前記８点の離散コサイン変換係数データのうちの奇数番目のデータを２点ずつ同時に入力して逆離散コサイン変換処理を行う第２の部分逆ＤＣＴ回路と、前記第１及び第２の部分逆ＤＣＴ回路からの出力データを加減算して８点の逆離散コサイン変換データを得る出力演算回路とを備え、
前記第１の部分逆ＤＣＴ回路は、第１及び第２の入力端子に同時に入力される２点の離散コサイン変換データの加減算を行う第１の加減算回路と、第１及び第２の入力端子に同時に入力される２点の離散コサイン変換データの積和演算を行う第１の積和回路と、前記第１の加減算回路の出力データと前記第１の積和回路の出力データとの加減算を互いに異なるタイミングで行う第２及び第３の加減算回路とを有し、前記第１の積和回路は固定係数の乗算と四捨五入処理を行う固定係数乗算器を有することを特徴とする逆離散コサイン変換回路。
【請求項２】
入力される８点の離散コサイン変換係数データのうちの偶数番目のデータを２点ずつ同時に入力して逆離散コサイン変換処理を行う第１の部分逆ＤＣＴ回路と、前記８点の離散コサイン変換係数データのうちの奇数番目のデータを２点ずつ同時に入力して逆離散コサイン変換処理を行う第２の部分逆ＤＣＴ回路と、前記第１及び第２の部分逆ＤＣＴ回路からの出力データを加減算して８点の逆離散コサイン変換データを得る出力演算回路とを備え、
前記第２の部分逆ＤＣＴ回路は、第３及び第４の入力端子に同時に入力される２点の離散コサイン変換データを多重する多重処理回路と、第３及び第４の入力端子に同時に入力される２点の離散コサイン変換データの積和演算を行う第２の積和回路と、前記多重処理回路の出力データと前記第２の積和回路の出力データとの加減算を互いに異なるタイミングで行う第４及び第５の加減算回路と、前記第４及び第５の加減算回路の出力データの積和演算を互いに異なるタイミングで行う第３及び第４の積和回路とを有し、前記第２、第３及び第４の積和回路は固定係数の乗算と四捨五入処理を行う固定係数乗算器を有することを特徴とする逆離散コサイン変換回路。
【請求項３】
入力される８点の離散コサイン変換係数データのうちの偶数番目のデータを２点ずつ同時に入力して逆離散コサイン変換処理を行う第１の部分逆ＤＣＴ回路と、前記８点の離散コサイン変換係数データのうちの奇数番目のデータを２点ずつ同時に入力して逆離散コサイン変換処理を行う第２の部分逆ＤＣＴ回路と、前記第１及び第２の部分逆ＤＣＴ回路からの出力データを加減算して８点の逆離散コサイン変換データを得る出力演算回路とを備え、
前記第１の部分逆ＤＣＴ回路は、第１及び第２の入力端子に同時に入力される２点の離散コサイン変換データの加減算を行う第１の加減算回路と、第１及び第２の入力端子に同時に入力される２点の離散コサイン変換データの積和演算を行う第１の積和回路と、前記第１の加減算回路の出力データと前記第１の積和回路の出力データとの加減算を互いに異なるタイミングで行う第２及び第３の加減算回路とを有し、
前記第２の部分逆ＤＣＴ回路は、第３及び第４の入力端子に同時に入力される２点の離散コサイン変換データを多重する多重処理回路と、第３及び第４の入力端子に同時に入力される２点の離散コサイン変換データの積和演算を行う第２の積和回路と、前記多重処理回路の出力データと前記第２の積和回路の出力データとの加減算を互いに異なるタイミングで行う第４及び第５の加減算回路と、前記第４及び第５の加減算回路の出力データの積和演算を互いに異なるタイミングで行う第３及び第４の積和回路とを有し、
前記第１、第２、第３及び第４の積和回路は固定係数の乗算と四捨五入処理を行う固定係数乗算器を有することを特徴とする逆離散コサイン変換回路。
【請求項４】
前記出力演算回路は、前記第２の加減算回路の出力データと前記第３の積和回路の出力データとの加減算を互いに異なるタイミングで行う第６及び第７の加減算回路と、前記第３の加減算回路の出力データと前記第４の積和回路の出力データとの加減算を互いに異なるタイミングで行う第７及び第８の加減算回路とを有することを特徴とする請求項３記載の逆離散コサイン変換回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像データの伸長時や圧縮時に使用される逆離散コサイン変換回路に係り、特に８点の逆離散コサイン変換回路に関する。
【０００２】
【従来の技術】
現在、複数チャネルのＴＶ放送番組の同時表示が可能なＴＶ受信機が普及している。地上波や衛星によるディジタルＴＶ放送においても、ＴＶ受信機では複数チャンネルの放送番組の同時表示を可能とすることが望まれる。
【０００３】
ディジタルＴＶ放送においては、ＭＰＥＧ方式による画像データの圧縮が用いられ、ＴＶ受信機側では圧縮された画像データを伸長して元の画像データに戻す伸長処理装置(デコーダ)が用いられる。ディジタル放送用のＴＶ受信機において複数チャネルの放送番組の同時表示を実現しようとする場合、複数チャネルに対応して複数のデコーダを用意することが考えられるが、装置の規模が大きくなるという問題がある。従って、複数チャンネルの圧縮画像データを短時間に伸張処理可能な小規模なデコーダが望まれる。さらに、高精細ＴＶ放送(いわゆるハイビジョン放送)の複数画面の同時表示においても対応可能にするためには、デコーダにはさらに高速性も要求される。
【０００４】
ＭＰＥＧ方式は基本的に、動き補償予測と離散コサイン変換(以下、ＤＣＴという)及び可変長符号化の３つの要素の組み合わせで画像データの圧縮を行う技術であり、デコーダ側ではエンコーダ側とは逆に、可変長復号化と逆離散コサイン変換(以下、逆ＤＣＴという)及び動き補償予測の組み合わせで圧縮画像データの伸長を行う。逆ＤＣＴは、エンコーダの局部復号系にも用いられる。ＭＰＥＧ方式のエンコーダやデコーダでは、逆ＤＣＴ回路の高速化と回路規模削減が大きな課題の一つとなる。
【０００５】
この要求に対応した従来の技術として、特開平５−１８１８９６号公報に小規模で高速処理可能なＤＣＴ／逆ＤＣＴ回路の例が示されている。この回路は８点のＤＣＴと逆ＤＣＴを可能とするものであり、前段の９個の加減算器はＤＣＴ専用で、逆ＤＣＴのみの機能は７個の固定係数乗算器と９個の加減算器で構成可能である。しかし、この回路構成では固定係数乗算器の処理速度の２倍の画素レートの画像データにまでしか対応できず、高精細ＴＶ放送の複数画面の同時表示のためには、固定係数乗算器や加減算器の途中演算結果を保持するためのレジスタの挿入が必要になり、回路規模が増大するという問題があった。
【０００６】
【発明が解決しようとする課題】
上述したように、従来の技術では逆ＤＣＴに際して固定係数乗算器の処理速度の２倍の画素レートの画像データにまでしか対応できず、高精細ＴＶ放送の複数画面を同時表示しようとすると、固定係数乗算器や加減算器の途中演算結果を保持するためのレジスタが必要になるため回路規模が増大し、コストが高くなるという問題があった。
【０００７】
本発明は、複数の高精細画像等の復号に必要な高速処理を小規模な回路で実現可能にする逆離散コサイン変換回路を提供することを目的とする。
【０００８】
【課題を解決するための手段】
本発明は、高速演算アルゴリズムを使用して４つのパスに分けて並列処理することにより固定係数乗算器の使用を可能にし、４つの積和回路と９個の加減算回路からなる構成で、乗算器の動作速度の４倍の画素レートの画像処理を可能にするようにしたものである。
【０００９】
すなわち、本発明に係る逆離散コサイン変換回路は、入力される８点の離散コサイン変換係数データのうちの偶数番目のデータを２点ずつ同時に入力して逆離散コサイン変換処理を行う第１の部分逆ＤＣＴ回路と、８点の離散コサイン変換係数データのうちの奇数番目のデータを２点ずつ同時に入力して逆離散コサイン変換処理を行う第２の部分逆ＤＣＴ回路と、第１及び第２の部分逆ＤＣＴ回路からの出力データを加減算して８点の逆離散コサイン変換データを得る出力演算回路とを備えたことを特徴とする。
【００１０】
より具体的には、第１の部分逆ＤＣＴ回路は、第１及び第２の入力端子に同時に入力される２点の離散コサイン変換データの加減算を行う第１の加減算回路と、第１及び第２の入力端子に同時に入力される２点の離散コサイン変換データの積和演算を行う第１の積和回路と、第１の加減算回路の出力データと第１の積和回路の出力データとの加減算を互いに異なるタイミングで行う第２及び第３の加減算回路とにより構成される。
【００１１】
また、第２の部分逆ＤＣＴ回路は、第３及び第４の入力端子に同時に入力される２点の離散コサイン変換データを多重する多重処理回路と、第３及び第４の入力端子に同時に入力される２点の離散コサイン変換データの積和演算を行う第２の積和回路と、多重処理回路の出力データと第２の積和回路の出力データとの加減算を互いに異なるタイミングで行う第４及び第５の加減算回路と、第４及び第５の加減算回路の出力データの積和演算を互いに異なるタイミングで行う第３及び第４の積和回路とにより構成される。
【００１２】
さらに、出力演算回路は、第２の加減算回路の出力データと第３の積和回路の出力データとの加減算を互いに異なるタイミングで行う第６及び第７の加減算回路と、第３の加減算回路の出力データと第４の積和回路の出力データとの加減算を互いに異なるタイミングで行う第７及び第８の加減算回路とにより構成される。
【００１３】
また、第１乃至第４の積和回路は固定係数乗算器を有し、二つの入力データに対して該固定係数乗算器により固定係数の乗算と四捨五入処理を行うことを特徴とする。
【００１４】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を説明する。
図１に、本発明の一実施形態に係る逆ＤＣＴ回路の構成を示す。この逆ＤＣＴ回路は、大きく分けて、第１の部分逆ＤＣＴ回路１０、第２の部分逆ＤＣＴ回路２０及び出力演算回路３０から構成される。
【００１５】
この逆ＤＣＴ回路は、図２の演算フローグラフに示す演算アルゴリズムを実行するものであり、第１の部分逆ＤＣＴ回路１０の処理は図２の１０Ａの部分、第２の部分逆ＤＣＴ回路２０の処理は図２の２０Ａの部分、出力演算回路３０の処理は図２の３０Ａの部分にそれぞれ相当している。図３(ａ)(ｂ)(ｃ)は、図２の演算フローグラフで使用している部分演算の内容の説明図である。この演算フローを数式で表すと、次の通りである。
【００１６】
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)
さらに、これらの和差の計算により、８倍の画素値が再生されるが、３ビットシフトにより正常な画素値となる。このビットシフトは、２次元処理完了後に纏めて行う。
【００１７】
本実施形態では、図示しないＤＣＴ回路により８点の画素配列{x0,x1,…,x6,x7}を１ブロックとしてブロック単位にＤＣＴを行って得られた８点のＤＣＴ係数データ{f0,f1,…,f6,f7}が逆ＤＣＴ回路に入力され、この８点ＤＣＴ係数データに対して逆ＤＣＴを行う場合について説明する。
【００１８】
ここで、f0,f1,…,f6,f7は１ブロック内の画像の各周波数成分のＤＣＴ係数データであり、f0は画像のＤＣ成分に対応し、f1,f2,…と順次高い周波数成分に対応し、f7が最高周波数成分に対応する。また、f0,f2,f4,f6,f8を偶数番目のデータ、f1,f3,f5,f7を奇数番目のデータとする。
【００１９】
図１において、入力端子Ａinには８点ＤＣＴ係数データのデータf2とf0が交互に入力され、入力端子Ｂinには８点ＤＣＴ係数データのデータf3とf1が交互に入力され、入力端子Ｃinには８点ＤＣＴ係数データのデータf6とf4が交互に入力され、そして入力端子Ｄinには８点ＤＣＴ係数データのデータf5とf7が交互に入力される。
【００２０】
第１の部分逆ＤＣＴ回路１０は入力端子Ａin，Ｃinに入力される偶数番目のデータに対する逆ＤＣＴを行い、第２の部分逆ＤＣＴ回路２０は、入力端子Ｂin，Ｄinに入力される奇数番目のデータに対する逆ＤＣＴを行う。出力演算回路３０は、第１及び第２の部分逆ＤＣＴ回路１０，２０からの出力データを加減算して、８点の逆ＤＣＴデータを出力端子Ａout，Ｂout，Ｃout，Ｄoutへ出力する。
【００２１】
以下、図１の各部の詳細な構成を図４〜図２９により説明する。図４〜図１８は図１の各部の詳細な構成を示し、図１９〜図２８は積和回路で使用される固定係数乗算器の構成を示し、図２９は積和回路で使用される加算器の構成を示している。
【００２２】
［第１の部分逆ＤＣＴ回路１０について］
第１の部分逆ＤＣＴ回路１０は、遅延回路１１，１２、加減算回路１３、積和回路１４、加減算回路１５及び加減算回路１６からなり、入力端子Ａin，Ｃinに入力される偶数番目のデータ(f0,f4またはf2,f6)に対する逆ＤＣＴを行う。この第１の部分逆ＤＣＴ回路１０の１次元目の入力順序及び出力順序を表１及び表２に示す。
【００２３】
【表１】
0003749826.tif 000002
【００２４】
【表２】
0003749826.tif 000003
【００２５】
また、表２を数式で表すと次のようになる。
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)
(遅延回路１１及び１２)
遅延回路１１及び１２は、例えば図４に示すようにいずれも３個のＤ型フリップフロップ(ＤＦＦ)１０１〜１０３を縦続接続して構成され、それぞれ入力端子Ａin，Ｃinから入力されるデータ(f0,f4またはf2,f6)を３クロック期間遅延させて出力する。これらの遅延回路１１及び１２は、第１の部分逆ＤＣＴ回路０の出力データを後述する第２の部分逆ＤＣＴ回路２０の出力データとタイミングを合わせて出力するためのいわゆる遅延補償用である。遅延回路１１及び１２の入出力及び内部状態の関係をそれぞれ表３及び表４に示す。
【００２６】
【表３】
0003749826.tif 000004
【００２７】
【表４】
0003749826.tif 000005
【００２８】
(加減算回路１３)
加減算回路１３は、図５に示すように切替器１１１，１１２、ＤＦＦ１１３，１１４、ビット反転器１１５及び加算器１１６から構成され、遅延回路１１及び１２により３クロック期間遅延されて同時に入力されるデータf0,f4またはf2,f6を切替器１１１，１１２を介してＤＦＦ１１３，１１４により２クロック期間保持し、それらのデータの和(f0+f4＝d13a)と差(f0-f4＝d13b)をビット反転器１１５を介して加算器１１６により時分割で演算し、和(d13a)、差(d13b)を順次出力する。
【００２９】
切替器１１１，１１２は、制御信号en4eが高レベルのときＨ側に入力される遅延回路１１１，１１２の出力データを選択し、en4eが低レベルのときＬ側に入力されるＤＦＦ１１３，１１４の出力データを選択する。ビット反転器１１５は、制御信号Tg2eが高レベルのときビット反転を行って加算器１１６から差のデータを出力させ、Tg2eが低レベルのときはビット反転を行わず、加算器１１６から和のデータを出力させる。
【００３０】
この加減算回路１３は、１次元目の演算ではＤＣＴ係数データの量子化誤差を考慮してダイナミックレンジが増加するため、１２ビット入力に対して１３ビット出力となるが、２次元目の演算ではその量子化誤差の考慮が不要なので、ダイナミックレンジは変化せず、１６ビット入力に対して１６ビットの出力となる。加減算回路１３の入出力及び内部状態の関係を表５に示す。
【００３１】
【表５】
0003749826.tif 000006
【００３２】
(積和回路１４)
積和回路１４(Ｔ1/8)は、図６に示すように切替器１２１，１２２、ＤＦＦ１２３，１２４、切替器１２５，１２６、固定乗算器１２７，１２８、ＤＦＦ１２９，１３０、ビット反転器１３１及び加算器１３２により構成される。
【００３３】
この積和回路１４では、遅延回路１１及び１２により３クロック期間遅延されて同時に入力されるデータｆ２，ｆ６を切替器１２１，１２２を介してＤＦＦ１２３，１２４により２クロック期間保持し、それらのデータに対して切替器１２５，１２６を介して固定乗算器１２７，１２８により固定の乗算係数√2*sin(π/8)，√2*cos(π/8)の乗算を交互に行って、各乗算結果をＤＦＦ１２９，１３０に保持する。
【００３４】
そして、ビット反転器１３１及び加算器１３２により各々の乗算結果の和(f6*√2*sin(π/8)＋f2*√2*cos(π/8)＝ｄ14a)及び差(f2*√2*sin(π/8)-f6*√2*cos(π/8)＝ｄ14b)を時分割で演算し、和(ｄ14a)、差(ｄ14b)を順次出力する。
【００３５】
切替器１２１，１２２，１２５，１２６及びビット反転器１３１の動作は、図５で説明した切替器１１１，１１１２及びビット反転器１１５の動作と同様である(以下、同様とする)。
【００３６】
【表６】
0003749826.tif 000007
【００３７】
固定乗算器１２７，１２８は、固定乗算係数を表１に示す様な１５ビットのデータとすると、１次元目の演算ではＤＣＴ係数データの量子化誤差を考慮して図１９及び図２１に示す様な回路構成になるが、２次元目の演算ではその量子化誤差の考慮が不要なので、図１９や図２１の回路に比べ演算結果の最上位ビットの位置が下がり、図２０や図２２に示す様な回路構成になる。
【００３８】
また、ビット反転器１３１及び加算器１３２による加減算においてはダイナミックレンジの変化は無いが、ここでは図２９に示すように２０ビットの演算結果に対して正方向の四捨五入を行い、１６ビットで出力する加算回路を加算器１３２に用いるものとする。この積和回路１４の入出力及び内部状態の関係を表７に示す。
【００３９】
【表７】
0003749826.tif 000008
【００４０】
(加減算回路１５)
加減算回路１５は、図５に示した加減算回路１３と同様、図７に示すように切替器１４１，１４２、ＤＦＦ１４３，１４４、ビット反転器１４５及び加算器１４６からなる。
【００４１】
この加減算回路１５では、加減算回路１３及び積和回路１４から同時に入力される加算結果ｄ13a，ｄ14aを切替器１４１，１４２を介してＤＦＦ１４３，１４４で２クロック期間保持し、それらのデータの和(ｄ13a＋ｄ14a＝ｄ15a)と差(ｄ13a−ｄ14a＝ｄ15b)をビット反転器１４５を介して加算器１４６により時分割で演算し、和(ｄ15a)、差(ｄ15b)を順次出力する。
【００４２】
この加減算においては、１次元目の演算では加減算回路１３からの入力データが１３ビットであり、３ビット左シフト(８倍)して積和回路１４からの入力データを加減算するが、２次元目の演算では加減算回路１３及び積和回路１４からの入力データはいずれも１６ビットであるので、ビットシフトせずにそのまま加減算を行う。尚、これらの演算によるダイナミックレンジの変化は無い。加減算回路１５の入出力及び内部状態の関係を表８に示す。
【００４３】
【表８】
0003749826.tif 000009
【００４４】
(加減算回路１６)
加減算回路１６も同様に、図８に示すように切替器１５１，１５２、ＤＦＦ１５３，１５４、ビット反転器１５５及び加算器１５６から構成される。
この加減算回路１６では、加減算回路１３及び積和回路１４から同時に入力される減算結果ｄ13b，ｄ14bを２クロック期間保持し、それらのデータの和(ｄ13b＋ｄ14b＝ｄ16a)と差(ｄ13b-ｄ14b＝ｄ16b)をビット反転器１５５を介して加算器１５６により時分割で演算し、和(ｄ16a)、差(ｄ16b)を順次出力する。このように加減算回路１６の加減算の処理内容は加減算回路１５と同じであり、演算タイミングのみが加減算回路１５と異なる。加減算回路１６の入出力及び内部状態の関係を表９に示す。
【００４５】
【表９】
0003749826.tif 000010
【００４６】
［第２の部分逆ＤＣＴ回路２０について］
第２の部分逆ＤＣＴ回路２０は、多重処理回路２１、積和回路２２、加減算回路２３、加減算回路２４、積和回路２５及び積和回路２６からなり、入力端子Ｂin，Ｄinに入力される奇数番目のデータ(f1,f7またはf3,f7)に対する逆ＤＣＴを行う。この第２の部分逆ＤＣＴ回路２０の１次元目の入力順序及び出力順序を表１０及び表１１に示す。
【００４７】
【表１０】
0003749826.tif 000011
【００４８】
【表１１】
0003749826.tif 000012
【００４９】
(多重処理回路２１)
多重処理回路２１は、図９に示すように切替器１６１，１６２、ＤＦＦ１６３及び切替器１６４により構成され、入力端子Ｂin，Ｄinから同時に入力されるデータf1,f7を２クロック期間保持し、f1、f7の順序で時分割出力する。この多重処理回路２１の入出力及び内部状態の関係を表１２に示す。
【００５０】
【表１２】
0003749826.tif 000013
【００５１】
(積和回路２２)
積和回路２２(Ｔ1/4)は、図１０に示すように切替器１７１，１７２、ＤＦＦ１７３，１７４、ビット反転器１７５、加算器１７６、ＤＦＦ１７７及び固定乗算器１７８により構成される。
【００５２】
この積和回路２２では、入力端子Ｂin及びＤinから同時に入力されるデータｆ３，ｆ５を切替器１７１，１７２を介してＤＦＦ１７３，１７４により２クロック期間保持し、これらのデータの和(f3＋f5)と差(f3−f5)をビット反転器１７５を介して加算器１７６により時分割で演算する。そして、これらの演算結果をＤＦＦ１７７により保持して、固定乗算器１７７で乗算係数cos(π/4)を乗じ、（ｆ３＋f5)*cos(π/4)、(f3−f5)*cos(π/4)を順次出力する。
【００５３】
この１次元目のＩＤＣＴ演算では、入力が１２ビットであり、加減算結果(f3＋f5),(f3−f5)は１３ビットであるが、２次元目のＩＤＣＴ演算では、演算精度を確保するために入力が１６ビット程度必要であり、加減算結果は１７ビット程度になる。
【００５４】
また、固定乗算器１７８は乗算結果に対して正方向の四捨五入を含む機構にすることが可能であり、乗算係数を表６に示したような１５ビットのデータとすると、１次元目の演算ではＤＣＴ係数の量子化誤差を考慮して図２３に示す様な回路構成になるが、２次元目の演算ではその量子化誤差の考慮が不要なので、図２３の回路に比べ演算結果の最上位ビットの位置が下がり、図２４に示す様な回路構成になる。積和回路２２の入出力及び内部状態の関係を表１３に示す。
【００５５】
【表１３】
0003749826.tif 000014
【００５６】
(加減算回路２３)
加減算回路２３は、図１１に示すよう切替器１８１，１８２、ＤＦＦ１８３，１８４、ビット反転器１８５、加算器１８６及びＤＦＦ１８７から構成され、多重処理回路２１及び積和回路２２から同時に入力されるデータｆ１と乗算結果(f3＋f5)*cos(π/4)を切替器１８１，１８２を介してＤＦＦ１８３，１８４により２クロック期間保持し、それらのデータの和(f1＋(f3＋f5)*cos(π/4)＝ｄ23a)と差(f1−(f3＋f5)*cos(π/4)＝ｄ23b)をビット反転器１８５を介して加算器１８６により時分割で演算し、ＤＦＦ１８７を介して和(ｄ23a)、差(ｄ23b)を順次出力する。
【００５７】
この加減算においては、１次元目の演算では多重処理回路２１からの入力データが１２ビットであり、このデータを１ビット符号拡張し、さらに３ビット左シフト(８倍)した後に積和回路２２からの入力データと加減算するが、２次元目の演算では多重処理回路２１及び積和回路２２からの入力データはいずれも１６ビットであるので、符号拡張やビットシフトを行わずに、そのまま加減算を行う。なお、これらの演算によるダイナミックレンジの変化は無い。また、後述する加減算回路２４の出力タイミングと合わせるために、加減算結果はＤＦＦ１８７により１クロック期間遅延されて出力される。加減算回路２３の入出力及び内部状態の関係を表１４に示す。
【００５８】
【表１４】
0003749826.tif 000015
【００５９】
(加減算回路２４)
加減算回路２４は、図１２に示すように切替器１９１，１９２、ＤＦＦ１９３，１９４、ビット反転器１９５及び加算器１９６から構成され、多重処理回路２１及び積和回路２２から同時に入力されるデータf7と乗算結果(f3−f5)*cos(π/4)を切替器１９１，１９２を介してＤＦＦ１９３，１９４により２クロック期間保持し、それらのデータの和(f7＋(f3−f5)*cos(π/4)＝ｄ24a)と差(f7−(f3−f5)*cos(π/4)＝ｄ24b)をビット反転器１９５を介して加算器１９６により時分割で演算し、和(ｄ24a)、差(ｄ24b)を順次出力する。
【００６０】
この加減算においては、１次元目の演算では多重処理回路２１からの入力データが１２ビットであり、このデータを１ビット符号拡張し、積和回路２２からの１６ビットの入力データの上位１３ビットと加減算し、積和回路２２からの入力データの下位３ビットと合わせて出力するが、２次元目の演算では多重処理回路２１及び積和回路２２からの入力データはいずれも１６ビットであるため、ビットシフトを行わずに、そのまま加減算を行う。なお、これらの演算によるダイナミックレンジの変化は無い。この加減算回路２４の入出力及び内部状態の関係を表１５に示す。
【００６１】
【表１５】
0003749826.tif 000016
【００６２】
(積和回路２５)
積和回路２５(Ｔ1/16)は、図１３に示すように切替器２０１，２０２、ＤＦＦ２０３，２０４、切替器２０５，２０６、固定乗算器２０７，２０８、ＤＦＦ２０９，２１０、ビット反転器２１１及び加算器２１２により構成される。
【００６３】
この積和回路２５では、加減算回路２３及び２４から同時に入力される加算結果ｄ23a，ｄ24aを切替器２０１，２０２を介してＤＦＦ２０３，２０４により２クロック期間保持し、それらのデータに対して切替器２０５，２０６を介して固定乗算器２０７，２０８により固定の乗算係数√2*sin(π/16),√2*cos(π/16)の乗算を交互に行って、各乗算結果をＤＦＦ２０９，２１０に保持する。
【００６４】
そして、ビット反転器２１１及び加算器２１２により各々の乗算結果の和(ｄ24a*√2*sin(π/16)＋ｄ23a*√2*cos(π/16)＝ｄ25a)及び差(ｄ23a*√2*sin(π/16)−ｄ24a*√2*cos(π/16)＝ｄ25b)を時分割で演算し、和(ｄ25a)、差(ｄ25b)を順次出力する。
【００６５】
固定乗算器２０７，２０８は、ＤＣＴ係数データの量子化誤差の考慮が不要なので、固定乗算係数を表１に示す様な１５ビットのデータとすると、図２５及び図２６に示す様な回路構成になる。
【００６６】
また、ビット反転器２１１及び加算器２１２による加減算においてはダイナミックレンジの変化は無く、ここでも図２９に示すように２０ビットの演算結果に対して正方向の四捨五入を行い、１６ビットで出力する加算回路を加算器２１２に用いている。積和回路２５の入出力及び内部状態の関係を表１６に示す。
【００６７】
【表１６】
0003749826.tif 000017
【００６８】
(積和回路２６)
積和回路２６(Ｔ3/16)は、図１３に示した積和回路２５と同様、図１４に示すように切替器２２１，２２２、ＤＦＦ２２３，２２４、切替器２２５，２２６、固定乗算器２２７，２２８、ＤＦＦ２２９，２３０、ビット反転器２３１及び加算器２３２により構成される。
【００６９】
この積和回路２６では、加減算回路２３及び２４から同時に入力される減算結果ｄ23b，ｄ24bを切替器２２１，２２２を介してＤＦＦ２２３，２２４により２クロック期間保持し、それらのデータに対して切替器２２５，２２６を介して固定乗算器２２７，２２８により固定の乗算係数√2*sin(3π/16)と√2*cos(3π/16)の乗算を交互に行い、各乗算結果をＤＦＦ２２９，２３０に保持する。
【００７０】
そして、ビット反転器２３１及び加算器２３２により各々の乗算結果の和(ｄ24b*√2*sin(3π/16)＋ｄ23b*√2*cos(3π/16)＝ｄ26a)及び差(ｄ23b*√2*sin(3π/16)−ｄ24b*√2*cos(3π/16)＝ｄ26b)を時分割で演算し、和(ｄ26a)、差(ｄ26b)を順次出力する。
【００７１】
固定乗算器２２７，２２８は、ＤＣＴ係数データの量子化誤差の考慮が不要なので、固定乗算係数を表１に示す様な１５ビットのデータとすると、図２７及び図２８に示す様な回路構成になる。
【００７２】
また、ビット反転器２３１及び加算器２３２による加減算においてはダイナミックレンジの変化は無く、ここでも図２９に示すように２０ビットの演算結果に対して正方向の四捨五入を行い、１６ビットで出力する加算回路を加算器２１２に用いている。積和回路２６の入出力及び内部状態の関係を表１７に示す。
【００７３】
【表１７】
0003749826.tif 000018
【００７４】
［出力演算回路３０について］
出力演算回路３０は、４つの加減算回路３１，３２，３３，３４からなり、第１及び第２の部分逆ＤＣＴ回路１０，２０からの出力データに対して加減算処理を行うことにより、最終的な逆ＤＣＴデータとして８点の画素配列{x0,x1,…,x6,x7}を出力端子Aout,Bout,Cout,Doutへ出力する。この出力演算回路３０の１次元目の入力順序及び出力順序を表１８及び表１９に示す。
【００７５】
【表１８】
0003749826.tif 000019
【００７６】
【表１９】
0003749826.tif 000020
【００７７】
また、表１９を数式で表すと次のようになる。
0003749826.tif 000021
(加減算回路３１)
加減算回路３１は、図１５に示すように切替器２４１，２４２、ＤＦＦ２４３，２４４、ビット反転器２４５、加算器２４６及びＤＦＦ２４７，２４８から構成され、加減算回路１５及び積和回路２５から同時に入力される加算結果ｄ15a，ｄ16aを切替器２４１，２４２を介してＤＦＦ２４３，２４４により２クロック期間保持し、それらのデータの和(ｄ15a＋ｄ16a＝ｘ０)と差(ｄ15a−ｄ16a＝ｘ７)をビット反転器２４５を介して加算器２４６により時分割で演算し、和(ｘ０)、差(ｘ７)を順次出力する。この加減算結果は、後述する加減算回路３４の出力タイミングと合わせるためにＤＦＦ２４７，２４８により２クロック期間遅延されて出力される。加減算回路３１の入出力及び内部状態の関係を表２０に示す。
【００７８】
【表２０】
0003749826.tif 000022
【００７９】
(加減算回路３２)
加減算回路３２は、図１６に示すように切替器２５１，２５２、ＤＦＦ２５３，２５４、ビット反転器２５５、加算器２５６及びＤＦＦ２５７から構成され、加減算回路１５及び積和回路２５から同時に入力される減算結果ｄ15b，ｄ16bを切替器２５１，２５２を介してＤＦＦ２５３，２５４により２クロック期間保持し、それらのデータの和(ｄ15b＋ｄ16b＝ｘ３)と差(ｄ15b−ｄ16b＝ｘ４)をビット反転器２５５を介して加算器２５６により時分割で演算し、和(ｘ３)、差(ｘ４)を順次ＤＦＦ２４７，２４８を介して出力する。この加減算結果は、後述する加減算回路３４の出力タイミングと合わせるためにＤＦＦ２５７により１クロック期間遅延されて出力される。この加減算回路３２の入出力及び内部状態の関係を表２１に示す。
【００８０】
【表２１】
0003749826.tif 000023
【００８１】
(加減算回路３３)
加減算回路３３は、図１７に示すように切替器２６１，２６２、ＤＦＦ２６３，２６４、ビット反転器２６５、加算器２６６及びＤＦＦ２６７から構成され、加減算回路１６及び積和回路２６から同時に入力される加算結果ｄ16a，ｄ26aを切替器２６１，２６２を介してＤＦＦ２６３，２６４により２クロック期間保持し、それらのデータの和(ｄ16a＋ｄ26a＝ｘ１)と差(ｄ16a−ｄ26a＝ｘ６)をビット反転器２６５を介して加算器２６６により時分割で演算し、和(x1)、差(x6)を順次出力する。この加減算結果は、後述する加減算回路３４の出力タイミングと合わせるためにＤＦＦ２６７により１クロック期間遅延されて出力される。加減算回路３３の入出力及び内部状態の関係を表２２に示す。
【００８２】
【表２２】
0003749826.tif 000024
【００８３】
(加減算回路３４)
加減算回路３４は、図１８に示すように切替器２７１，２７２、ＤＦＦ２７３，２７４、ビット反転器２７５及び加算器２７６から構成され、加減算回路１６及び積和回路２６から同時に入力される減算結果ｄ16b，ｄ26bを切替器２７１，２７２を介してＤＦＦ２７３，２７４により２クロック期間保持し、それらのデータの和(ｄ16b＋ｄ26b＝x2)と差(ｄ16b−ｄ26b＝x5)をビット反転器２７５を介して加算器２７６により時分割で演算し、和(x2)、差(x5)を順次出力する。加減算回路３４の入出力及び内部状態の関係を表２３に示す。
【００８４】
【表２３】
0003749826.tif 000025
【００８５】
図３０〜図３３は、本実施形態の動作をタイミングチャートで表したものであり、図３０は遅延回路１１，１２と多重処理回路２１及び積和回路２２の動作タイミング、図３１は加減算回路１３と積和回路１４及び加減算回路２３，２４の動作タイミング、図３２は加減算回路１５，１６と積和回路２５，２６の動作タイミング、図３３は加減算回路４１〜４４の動作タイミングをそれぞれ示している。
【００８６】
上述した本実施形態に係る逆離散コサイン変換回路の演算方法によれば、乗算器の演算速度の４倍の速度で変換処理が可能になり、表２４に示す様な順序で入力される２次元ＤＣＴ係数に対して、１次元目のＩＤＣＴ結果が、表２５に示すような順序で出力される。
【００８７】
【表２４】
0003749826.tif 000026
【００８８】
【表２５】
0003749826.tif 000027
【００８９】
２次元ＩＤＣＴ回路は、図３４に示すように制御部１００による制御の下で第１の１次元ＩＤＣＴ回路１０１により１次元（８点）ＩＤＣＴを８ライン処理した後、転置処理部１０２で行列を転置して、第２の１次元ＩＤＣＴ回路１０３により再度１次元（８点）ＩＤＣＴを８ライン処理することによって実現される。ここで、上述の式で使用したｊはライン番号となる。
【００９０】
【発明の効果】
以上説明したように本発明によれば、高速演算アルゴリズムを使用し、４つのパスに分けて並列処理することにより、回路規模の小さな固定係数乗算器の使用を可能にし、４つの積和回路と９個の加減算回路からなる小規模の回路構成で、固定乗算器の動作速度の４倍の画素レートの逆ＤＣＴ処理が可能になる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係る逆ＤＣＴ回路の全体構成を示すブロック図
【図２】同実施形態における逆ＤＣＴ演算フローを示す図
【図３】図２の逆ＤＣＴ演算フロー図で使用した詳細な演算内容を示す図
【図４】同実施形態における遅延回路１１及び１２の詳細回路を示す図
【図５】同実施形態における加減算回路１３の詳細回路を示す図
【図６】同実施形態における積和回路１４の詳細回路を示す図
【図７】同実施形態における加減算回路１５の詳細回路を示す図
【図８】同実施形態における加減算回路１６の詳細回路を示す図
【図９】同実施形態における多重処理回路２１の詳細回路を示す図
【図１０】同実施形態における積和回路２２の詳細回路を示す図
【図１１】同実施形態における加減算回路２３の詳細回路を示す図
【図１２】同実施形態における加減算回路２４の詳細回路を示す図
【図１３】同実施形態における積和回路２５の詳細回路を示す図
【図１４】同実施形態における積和回路２６の詳細回路を示す図
【図１５】同実施形態における加減算回路３１の詳細回路を示す図
【図１６】同実施形態における加減算回路３２の詳細回路を示す図
【図１７】同実施形態における加減算回路３３の詳細回路を示す図
【図１８】同実施形態における加減算回路３４の詳細回路を示す図
【図１９】同実施形態における１次元目の積和回路１４内の第１の固定乗算器を示す図
【図２０】同実施形態における２次元目の積和回路１４内の第１の固定乗算器を示す図
【図２１】同実施形態における１次元目の積和回路１４内の第２の固定乗算器を示す図
【図２２】同実施形態における２次元目の積和回路１４内の第２の固定乗算器を示す図
【図２３】同実施形態における１次元目の積和回路２２内の固定乗算器を示す図
【図２４】同実施形態における２次元目の積和回路２２内の固定乗算器を示す図
【図２５】同実施形態における積和回路２５内の第１の固定乗算器を示す図
【図２６】同実施形態における積和回路２５内の第２の固定乗算器を示す図
【図２７】同実施形態における積和回路２６内の第１の固定乗算器を示す図
【図２８】同実施形態における積和回路２６内の第２の固定乗算器を示す図
【図２９】同実施形態における積和回路１４，２５及び２６で使用される加算器を示す図
【図３０】同実施形態における遅延回路１１，１２と多重処理回路２１及び積和回路２２の動作タイミングを示す図
【図３１】同実施形態における加減算回路１３と積和回路１４及び加減算回路２３，２４の動作タイミングを示す図
【図３２】同実施形態における加減算回路１５，１６と積和回路２５，２６の動作タイミングを示す図
【図３３】同実施形態における加減算回路４１〜４４の動作タイミングを示す図
【図３４】２次元逆ＤＣＴ回路の概略構成を示すブロック図
【符号の説明】
１０…第１の部分逆ＤＣＴ回路
１１，１２…３クロック遅延回路
１３，１５，１６…加減算回路
１４…２つの加減算器と１つの固定乗算器で構成される積和回路
２０…第２の部分逆ＤＣＴ回路
２１…多重処理回路
２２…１つの加減算器と１つの固定乗算器で構成される積和回路
２３，２４…加減算回路
２５，２６…２つの固定乗算器と１つの加減算器で構成される積和回路
３０…出力演算回路
３１〜３３…加減算回路
【図１】
0003749826.tif 000028
【図２】
0003749826.tif 000029
【図３】
0003749826.tif 000030
【図４】
0003749826.tif 000031
【図５】
0003749826.tif 000032
【図６】
0003749826.tif 000033
【図７】
0003749826.tif 000034
【図８】
0003749826.tif 000035
【図９】
0003749826.tif 000036
【図１０】
0003749826.tif 000037
【図１１】
0003749826.tif 000038
【図１２】
0003749826.tif 000039
【図１３】
0003749826.tif 000040
【図１４】
0003749826.tif 000041
【図１５】
0003749826.tif 000042
【図１６】
0003749826.tif 000043
【図１７】
0003749826.tif 000044
【図１８】
0003749826.tif 000045
【図１９】
0003749826.tif 000046
【図２０】
0003749826.tif 000047
【図２１】
0003749826.tif 000048
【図２２】
0003749826.tif 000049
【図２３】
0003749826.tif 000050
【図２４】
0003749826.tif 000051
【図２５】
0003749826.tif 000052
【図２６】
0003749826.tif 000053
【図２７】
0003749826.tif 000054
【図２８】
0003749826.tif 000055
【図２９】
0003749826.tif 000056
【図３０】
0003749826.tif 000057
【図３１】
0003749826.tif 000058
【図３２】
0003749826.tif 000059
【図３３】
0003749826.tif 000060
【図３４】
0003749826.tif 000061