(57)【特許請求の範囲】
【請求項１】
Ｎ個の入力データに対して所定の演算を実行する第１の演算手段と、
第１の演算手段から出力される演算結果に対して所定の演算を実行する第２の演算手段と、
第２の演算手段から出力される演算結果に対して所定の演算を実行する第３の演算手段とを備えた離散コサイン変換装置であって、
前記第１の演算手段が、入力データに対して加減算を実行する第１の加減算手段と第１の加減算手段から出力される演算結果に対して加減算を実行する第２の加減算手段から構成され、
前記第２の演算手段が、前記第１の演算手段から出力されるＮ個の演算結果をＮ／４行１列の行列データの組として４組に分け、前記４組の行列データに対して各々、Ｎ／４行Ｎ／４列の係数行列を乗じる第１の行列演算手段から構成され、
前記第３の演算手段が、前記第２の演算手段から出力されるＮ個の演算結果の内のＮ／２個の演算結果をＮ／４行１列の行列データの組として２組に分け、２組の行列データに対して各々、Ｎ／４行Ｎ／４列の係数行列を乗じる第２の行列演算手段から構成されていることを特徴とする離散コサイン変換装置。
【請求項２】
Ｎ個の入力データに対して所定の演算を実行する第１の演算手段と、
第１の演算手段から出力される演算結果に対して所定の演算を実行する第２の演算手段と、
第２の演算手段から出力される演算結果に対して所定の演算を実行する第３の演算手段とを備えた逆離散コサイン変換装置であって、
前記第１の演算手段が、Ｎ個の入力データの内のＮ／２個の入力データをＮ／４行１列の行列データの組として２組に分け、２組の行列データに対して各々、Ｎ／４行Ｎ／４列の係数行列を乗じる第１の行列演算手段から構成され、
前記第２の演算手段が、前記第１の演算手段から出力される演算結果及びＮ個の入力データの内第１の演算手段で用いられていないＮ／２個の入力データとをＮ／４行１列の行列データの組として４組に分け、４組の行列データに対して各々、Ｎ／４行Ｎ／４列の係数行列を乗じる第２の行列演算手段から構成され、
前記第３の演算手段が、前記第２の演算手段から出力される演算結果に対して加減算を実行する第１の加減算手段と、第１の加減算手段から出力される演算結果に対して加減算を実行する第２の加減算手段とから構成されていることを特徴とする逆離散コサイン変換装置。
【請求項３】
選択信号が離散コサイン変換を指示した場合には、Ｎ個の入力データに対して所定の演算を実行する第１の演算手段と、
第１の演算手段から出力される演算結果に対して所定の演算を実行する第２の演算手段と、
第２の演算手段から出力される演算結果に対して所定の演算を実行する第３の演算手段とを備えた離散コサイン変換装置として動作し、
前記選択信号が逆離散コサイン変換を指示した場合には、Ｎ個の入力データに対して所定の演算を実行する第４の演算手段と、
第４の演算手段から出力される演算結果に対して所定の演算を実行する第５の演算手段と、
第５の演算手段から出力される演算結果に対して所定の演算を実行する第６の演算手段とを備えた逆離散コサイン変換装置として動作する、離散コサイン／逆離散コサイン変換装置において、
前記第１の演算手段が、入力データに対して加減算を実行する第１の加減算手段と第１の加減算手段から出力される演算結果に対して加減算を実行する第２の加減算手段から構成され、
前記第２の演算手段が、前記第１の演算手段から出力されるＮ個の演算結果をＮ／４行１列の行列データの組として４組に分け、前記４組の行列データに対して各々、Ｎ／４行Ｎ／４列の係数行列を乗じる第１の行列演算手段から構成され、
前記第３の演算手段が、前記第２の演算手段から出力されるＮ個の演算結果の内のＮ／２個の演算結果をＮ／４行１列の行列データの組として２組に分け、２組の行列データに対して各々、Ｎ／４行Ｎ／４列の係数行列を乗じる第２の行列演算手段から構成されており、
前記第４の演算手段が、Ｎ個の入力データの内のＮ／２個の入力データをＮ／４行１列の行列データの組として２組に分け、２組の行列データに対して各々、Ｎ／４行Ｎ／４列の係数行列を乗じる第３の行列演算手段から構成され、
前記第５の演算手段が、前記第２の演算手段に含まれる第１の行列演算手段から構成構成され、
前記第６の演算手段が、前記第５の演算手段から出力される演算結果に対して加減算を実行する第３の加減算手段と、第３の加減算手段から出力される演算結果に対して加減算を実行する第４の加減算手段とから構成されている、ことを特徴とする離散コサイン／逆離散コサイン変換装置。
【請求項４】
選択信号が離散コサイン変換を指示した場合には、Ｎ個の入力データに対して所定の演算を実行する第１の演算手段と、
第１の演算手段から出力される演算結果に対して所定の演算を実行する第２の演算手段と、
第２の演算手段から出力される演算結果に対して所定の演算を実行する第３の演算手段とを備えた離散コサイン変換装置として動作し、
前記選択信号が逆離散コサイン変換を指示した場合には、Ｎ個の入力データに対して所定の演算を実行する第４の演算手段と、
第４の演算手段から出力される演算結果に対して所定の演算を実行する第５の演算手段と、
第５の演算手段から出力される演算結果に対して所定の演算を実行する第６の演算手段とを備えた逆離散コサイン変換装置として動作する、離散コサイン／逆離散コサイン変換装置において、
前記第１の演算手段が、入力データに対して加減算を実行する第１の加減算手段と第１の加減算手段から出力される演算結果に対して加減算を実行する第２の加減算手段から構成され、
前記第２の演算手段が、前記第１の演算手段から出力される演算結果をＮ／４行１列の行列データの組として４組に分け、４組の行列データに対して各々、所定のＮ／４行Ｎ／４列の係数行列を乗じる第１の行列演算手段から構成され、
前記第３の演算手段が、前記第２の演算手段から出力されるＮ個の演算結果の内のＮ／２個の演算結果に対して加減算処理を実行する第３の加減算手段と、第３の加減算手段から出力される演算結果に対して所定の乗算を実行する第１の乗算手段とから構成されており、
前記第４の演算手段が、Ｎ個の入力データの内のＮ／２個の入力データに対して所定の乗算を実行する第２の乗算手段と第２の乗算手段から出力される演算結果及びＮ個の入力データの内第１の演算手段で用いられていないＮ／２個の入力データとに対して所定の加減算を実行する第４の加減算手段とから構成され、
前記第５の演算手段が、前記第２の演算手段に含まれる前記第１の行列演算手段から構成され、
前記第６の演算手段が、前記第５の演算手段から出力される演算結果に対して所定の加減算を実行する第５の加減算手段と、第５の加減算手段から出力される演算結果に対して所定の加減算を実行する第６の加減算手段とから構成されていることを特徴とする離散コサイン／逆離散コサイン変換装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像信号の符号化やフィルタ処理などに使用される離散コサイン変換（ＤＣＴ）装置および逆離散コサイン変換（ＩＤＣＴ）装置に関するものである。
【０００２】
【従来の技術】
画像信号の圧縮処理や拡大縮小処理およびフィルタ処理などにおいて下記の（１）式および（２）式に示すようなＮ点の離散コサイン変換や逆離散コサイン変換の演算が用いられる。１次元Ｎ点ＤＣＴ演算は、Ｎ個の入力データをｘk（ｋ＝０，１，２，・・・，Ｎ−１）、Ｎ個の出力データをＸn（ｎ＝０，１，２，・・・，Ｎ−１）とすると、
Ｎ点１次元ＤＣＴの定義式：
【０００３】
【数１】
0003970442.tif 000002
【０００４】
で表される。また、１次元Ｎ点ＩＤＣＴは、Ｎ個の入力データをＸn（ｎ＝０，１，２，・・・，Ｎ−１）、Ｎ個の出力データをｘk（ｋ＝０，１，２，・・・，Ｎ−１）とすると、
Ｎ点１次元ＩＤＣＴの定義式：
【０００５】
【数２】
0003970442.tif 000003
【０００６】
で表される。このようなＮ点のＤＣＴおよびＩＤＣＴの演算を前述の（１）式および（２）式のままで計算するとＮ行Ｎ列の係数行列とＮ行１列の入力行列との乗算が必要になる。そのため、その演算回数を削減する方法として、次に示すように偶数行と奇数行とに分割する方法が広く用いられている。（１）式をｎ＝２ｌ（ｌ＝０，１，２，・・・，（Ｎ／２）−１）である偶数行とｎ＝２ｌ＋１（ｌ＝０，１，２，・・・，（Ｎ／２）−１）である奇数行とに分割すると、
Ｎ点１次元ＤＣＴの偶数ｎ行：
【０００７】
【数３】
0003970442.tif 000004
【０００８】
Ｎ点１次元ＤＣＴの奇数ｎ行：
【０００９】
【数４】
0003970442.tif 000005
【００１０】
となる。同様に、（２）式をｎ＝２ｌ（ｌ＝０，１，２，・・・，（Ｎ／２）−１）である偶数行とｎ＝２ｌ＋１（ｌ＝０，１，２，・・・，（Ｎ／２）−１）である奇数行とに分割すると、
ＩＤＣＴの偶数ｎ行：
【００１１】
【数５】
0003970442.tif 000006
【００１２】
ＩＤＣＴの奇数ｎ行：
【００１３】
【数６】
0003970442.tif 000007
【００１４】
となる。（３）式，（４）式，（５）式，（６）式に従えば、Ｎ点の１次元ＤＣＴおよび１次元ＩＤＣＴはともにＮ／２行Ｎ／２列の係数行列とＮ／２行１列の入力行列との乗算を、偶数行と奇数行とについて実行すればよいことになる。ＤＣＴについては演算回数をさらに削減する方法として、Yeonsik Jeong,et.al.,Electronics Letters,vol.34,No8,pp723-724,April 1998に示された方法がある。
【００１５】
このＪｅｏｎｇの方法について、以下に説明する。上述の方法と同様に、ＤＣＴ変換式を偶数行と奇数行に分割する。さらに、ＤＣＴの奇数行の変換式（４）式について、三角関数の積和公式：
【００１６】
【数７】
0003970442.tif 000008
【００１７】
を用いると、ＤＣＴの奇数ｎ行（Ｊｅｏｎｇ）：
【００１８】
【数８】
0003970442.tif 000009
【００１９】
となる。このようにして、ＤＣＴの変換式として（３）式と（８）式を用いる。ＤＣＴの偶数ｎ行の（３）式は（Ｎ／２）点ＤＣＴの式
ｙkからＹlへのＮ／２点ＤＣＴの定義式：
【００２０】
【数９】
0003970442.tif 000010
【００２１】
と比べると、
【００２２】
【数１０】
0003970442.tif 000011
【００２３】
であるから、（３）式と（８）式においてＮ→Ｎ／２と置き換えるとｌが偶数の行とｌが奇数の行とに分解することができる。さらに、ｌが偶数の行については（３）式と（８）式においてＮ→Ｎ／４と置き換えて分解することができるので、偶数行は再帰的に分解を行うことができる。
【００２４】
一般に画像データを符号化する場合には、画像データを８行８列のブロックごとに分割し、２次元離散コサイン変換を行うことが行われている。ここでは、Ｎ＝８の場合について具体的に説明する。
【００２５】
すなわち、８点１次元ＤＣＴは８点１次元ＤＣＴの偶数ｎ行：
【００２６】
【数１１】
0003970442.tif 000012
【００２７】
８点１次元ＤＣＴの奇数ｎ行：
【００２８】
【数１２】
0003970442.tif 000013
【００２９】
と分解し、更に、４点１次元ＤＣＴの偶数ｌ行（ｌ＝２ｊ）：
【００３０】
【数１３】
0003970442.tif 000014
【００３１】
４点１次元ＤＣＴの奇数ｌ行（ｌ＝２ｊ＋１）：
【００３２】
【数１４】
0003970442.tif 000015
【００３３】
から、ｎが偶数の行（１１）式は４点１次元ＤＣＴの（１３）式、（１４）式で表現できる。係数をまとめて式を整理すると、
【００３４】
【数１５】
0003970442.tif 000016
【００３５】
【数１６】
0003970442.tif 000017
【００３６】
【数１７】
0003970442.tif 000018
【００３７】
【数１８】
0003970442.tif 000019
【００３８】
（３）式と（８）式を用いた従来の方法による演算フロー図を図５に示す。（１２）式と（１５）〜（１８）式に従えば、８点１次元ＤＣＴは加減算が２８回、乗算が１３回で行える。汎用の計算機を用いて計算する場合、一般に乗算は加減算に比べて計算に大幅に時間がかかるので、この計算方法を用いると全体の計算回数が少ないだけでなく、各変換結果Ｘnを得るために必要な乗算回数が最大でも２回しか必要でないので、計算結果を得るまでの手順が少なくてすむという特徴を有する。
【００３９】
【発明が解決しようとする課題】
しかしながら、離散コサイン変換および逆離散コサイン変換はそれだけで計算量が多いため、携帯機器等の小型情報処理装置においては、汎用演算装置で処理されることは少なく、集積回路内部の専用回路ブロックとして実現される場合が多い。集積回路内部の専用回路として実現しようとした場合には、計算量そのものよりも回路規模が問題となる。
【００４０】
上述したような従来（Ｊｅｏｎｇ）の方法では、上記の（１２）式と（１５）〜（１８）式に従うことにより、計算手順そのものは少ない計算結果を得るまでの手順が少なくてすむという特徴をもつが、乗算及び加減算の回数に着目した手順としてしか与えられておらず、規則性が少なく、また逆離散コサイン変換については何ら考慮されていないため、専用回路としては回路規模を小さくできないという問題点があった。つまり、集積回路においてはできるだけ同一回路の繰り返し構造で実現されるような規則性を持つ方法の方が回路の共通化によって回路規模を小さくできるので、低消費電力化にも有効である。また、設計・検証の容易さという観点からも望ましい。
【００４１】
従って、本発明の目的は、演算手順を変更することによって、離散コサイン変換と逆離散コサイン変換のすべての係数行列の大きさをＮ／４行Ｎ／４列とし、演算回路の構造を小規模な行列演算回路の繰り返し構造で実現することによって離散コサイン変換及び逆離散コサイン変換装置の回路規模を小型化することを目的とする。
【００４２】
【課題を解決するための手段】
上記目的を達成するために本発明においては、まずＮ点１次元ＤＣＴおよびＮ点１次元ＩＤＣＴの定義式の変形を行う。
Ｎ個の入力数列ｘk（ｋ＝０，１，２，・・・，Ｎ−１）からＮ個の出力数列Ｘn（ｎ＝０，１，２，・・・，Ｎ−１）へのＮ点１次元ＤＣＴの（１）式において、Ｎはｒを３以上の自然数としてＮ＝２rとする。
【００４３】
（ＤＣＴの変形１（従来と同じ））
従来の方法と同様に、ｎが偶数行（ｎ＝２ｌとする）と奇数行（ｎ＝２ｌ＋１とする）に分割し、（３）式と（４）式を得る。
【００４４】
（ＤＣＴの変形２（偶数ｎ行の分割））
偶数ｎ行の（３）式はさらにｌの偶数行（ｌ＝２ｍとする）と奇数行（ｌ＝２ｍ＋１とする）に分割して（ｍ＝０，１，２，・・・（Ｎ／４）＋１），
：ＤＣＴの偶数ｎ行の分割：
【００４５】
【数１９】
0003970442.tif 000020
【００４６】
【数２０】
0003970442.tif 000021
【００４７】
を得る。（１９）式と（２０）式を行列表示すると、
【００４８】
【数２１】
0003970442.tif 000022
【００４９】
【数２２】
0003970442.tif 000023
【００５０】
と分解できる。
【００５１】
（ＤＣＴの変形３（奇数ｎ行の分割））
奇数ｎ行の変換式（４）はζk≡ｘk−ｘN-1-kと置きなおし、Ｊｅｏｎｇの方法と同様に三角関数の積和公式を用いて、
【００５２】
【数２３】
0003970442.tif 000024
【００５３】
と変形できる。（２３）式において、ζk-1とζkの係数を考えて同じｃｏｓ係数で括り、ｃｏｓ関数の性質を考慮すると、
【００５４】
【数２４】
0003970442.tif 000025
【００５５】
と書ける。（２４）式の右辺のｃｏｓ関数をｋが偶数の場合（ｋ＝２ｊとする）と奇数の場合（ｋ＝２ｊ＋１とする）に分割する（ｊ＝０，１，２，・・・，（Ｎ／４）−１）。
【００５６】
【数２５】
0003970442.tif 000026
【００５７】
（２５）式から、変換式の第（Ｎ／２）−１−ｌ行は
【００５８】
【数２６】
0003970442.tif 000027
【００５９】
（２５）式と（２６）式から次の２式を得る。
【００６０】
【数２７】
0003970442.tif 000028
【００６１】
【数２８】
0003970442.tif 000029
【００６２】
（２７）式と（２８）式を行列表記すると、
【００６３】
【数２９】
0003970442.tif 000030
【００６４】
【数３０】
0003970442.tif 000031
【００６５】
（２９）式と（３０）式の演算結果（即ち左辺）から、
【００６６】
【数３１】
0003970442.tif 000032
【００６７】
を得ることができる。
【００６８】
以上の手順によって、Ｎ点１次元ＤＣＴのすべての係数行列をＮ／４行Ｎ／４列の行列に分解できる。さらに、以上の手順をｒ−１回繰り返して適用すると、Ｎ点１次元ＤＣＴのすべての係数行列を２行２列の行列に分解できる。
【００６９】
次に、逆離散コサイン変換装置に用いる分解方法について説明する。Ｎ個の入力数列Ｘn（ｎ＝０，１，２，・・・，Ｎ−１）からＮ個の出力数列ｘk（ｋ＝０，１，２，・・・，Ｎ−１）へのＮ点１次元ＩＤＣＴの（２）式においても同様に、Ｎはｒを３以上の自然数としてＮ＝２rとする。
【００７０】
（ＩＤＣＴの変形１（従来と同じ））
従来の方法と同様に、ｎが偶数のとき（ｎ＝２ｌとする）と奇数の時（ｎ＝２ｌ＋１とする）に分割し、（５）式と（６）式を得る。
【００７１】
（ＩＤＣＴの変形２（偶数ｎ項の分割））
ＩＤＣＴの偶数ｎ項の（５）式においてはＤＣＴの場合と同様にして、ｙk≡ｘk＋ｘN-1-kを使うと、
【００７２】
【数３２】
0003970442.tif 000033
【００７３】
【数３３】
0003970442.tif 000034
【００７４】
を得ることができる。（３２）式，（３３）式を行列表示すると、
【００７５】
【数３４】
0003970442.tif 000035
【００７６】
【数３５】
0003970442.tif 000036
【００７７】
以上で、ＩＤＣＴの偶数項の係数行列は（Ｎ／４）×（Ｎ／４）の行列２個に分解できた。
【００７８】
（ＩＤＣＴの変形３（奇数ｎ項の分割））
ＩＤＣＴの奇数項の（６）式において、ＤＣＴの奇数行の変換と同様に、
【００７９】
【数３６】
0003970442.tif 000037
【００８０】
と書き直すと、（６）式は、
【００８１】
【数３７】
0003970442.tif 000038
【００８２】
（３７）式から、
【００８３】
【数３８】
0003970442.tif 000039
【００８４】
を得る。ここで、三角関数の積和公式を用いると、
【００８５】
【数３９】
0003970442.tif 000040
【００８６】
となる。（３９）式において、２項めのｃｏｓ関数はｋを含まないのでＸ2l+1とまとめて扱うことにする。Ｘ2l+1Ｃ2l+1のｃｏｓ係数はｃｏｓ｛２ｋ（２ｌ＋１）π／２Ｎ｝であり、Ｘ2{(N/2-1)-(2l-1)}Ｃ2{(N/2-1)-(2l-1)}のｃｏｓ係数を考えると、式（３９）はｋが偶数の時（ｋ＝２ｊとする）とｋが奇数の時（ｋ＝２ｊ＋１とする）に分割できて、
【００８７】
【数４０】
0003970442.tif 000041
【００８８】
【数４１】
0003970442.tif 000042
【００８９】
となる。式（４０）と（４１）を行列表示すると、
【００９０】
【数４２】
0003970442.tif 000043
【００９１】
【数４３】
0003970442.tif 000044
【００９２】
以上で、ＩＤＣＴの奇数項の係数行列もＮ／４行Ｎ／４列の行列に分解できた。
【００９３】
以上のような手順によって導き出された関係から、離散コサイン変換装置は、Ｎ個の入力データに対して所定の演算を実行する第１の演算手段と、第１の演算手段から出力される演算結果に対して所定の演算を実行する第２の演算手段と、第２の演算手段から出力される演算結果に対して所定の演算を実行する第３の演算手段とを備えた離散コサイン変換装置であって、前記第１の演算手段が、入力データに対して加減算を実行する第１の加減算手段と第１の加減算手段から出力される演算結果に対して加減算を実行する第２の加減算手段から構成され、前記第２の演算手段が、前記第１の演算手段から出力されるＮ個の演算結果をＮ／４行１列の行列データの組として４組に分け、前記４組の行列データに対して各々、Ｎ／４行Ｎ／４列の係数行列を乗じる行列演算手段から構成され、前記第３の演算手段が、前記第２の演算手段から出力されるＮ個の演算結果の内のＮ／２個の演算結果に対して加減算処理を実行する第３の加減算手段と、第３の加減算手段から出力される演算結果に対して乗算を実行する第１の乗算手段とから構成し得る。
【００９４】
本発明に係る離散コサイン変換装置は、Ｎ個の入力データに対して所定の演算を実行する第１の演算手段と、第１の演算手段から出力される演算結果に対して所定の演算を実行する第２の演算手段と、第２の演算手段から出力される演算結果に対して所定の演算を実行する第３の演算手段とを備えた離散コサイン変換装置であって、前記第１の演算手段が、入力データに対して加減算を実行する第１の加減算手段と第１の加減算手段から出力される演算結果に対して加減算を実行する第２の加減算手段から構成され、前記第２の演算手段が、前記第１の演算手段から出力されるＮ個の演算結果をＮ／４行１列の行列データの組として４組に分け、前記４組の行列データに対して各々、Ｎ／４行Ｎ／４列の係数行列を乗じる第１の行列演算手段から構成され、前記第３の演算手段が、前記第２の演算手段から出力されるＮ個の演算結果の内のＮ／２個の演算結果をＮ／４行１列の行列データの組として２組に分け、２組の行列データに対して各々、Ｎ／４行Ｎ／４列の係数行列を乗じる第２の行列演算手段から構成されていることを特徴としている。
【００９５】
また、逆離散コサイン変換装置は、Ｎ個の入力データに対して所定の演算を実行する第１の演算手段と、第１の演算手段から出力される演算結果に対して所定の演算を実行する第２の演算手段と、第２の演算手段から出力される演算結果に対して所定の演算を実行する第３の演算手段とを備えた逆離散コサイン変換装置であって、前記第１の演算手段が、Ｎ個の入力データの内のＮ／２個の入力データに対して乗算を実行する第１の乗算手段と第１の乗算手段から出力される演算結果に対して加減算を実行する第１の加減算手段とから構成され、前記第２の演算手段が、前記第１の演算手段から出力される演算結果及びＮ個の入力データの内第１の演算手段で用いられていないＮ／２個の入力データとをＮ／４行１列の行列データの組として４組に分け、４組の行列データに対して各々、Ｎ／４行Ｎ／４列の係数行列を乗じる第１の行列演算手段から構成され、前記第３の演算手段が、前記第２の演算手段から出力される演算結果に対して加減算を実行する第２の加減算手段と、第２の加減算手段から出力される演算結果に対して加減算を実行する第３の加減算手段とから構成し得る。
【００９６】
本発明に係る逆離散コサイン変換装置は、Ｎ個の入力データに対して所定の演算を実行する第１の演算手段と、第１の演算手段から出力される演算結果に対して所定の演算を実行する第２の演算手段と、第２の演算手段から出力される演算結果に対して所定の演算を実行する第３の演算手段とを備えた逆離散コサイン変換装置であって、前記第１の演算手段が、Ｎ個の入力データの内のＮ／２個の入力データをＮ／４行１列の行列データの組として２組に分け、２組の行列データに対して各々、Ｎ／４行Ｎ／４列の係数行列を乗じる第１の行列演算手段から構成され、前記第２の演算手段が、前記第１の演算手段から出力される演算結果及びＮ個の入力データの内第１の演算手段で用いられていないＮ／２個の入力データとをＮ／４行１列の行列データの組として４組に分け、４組の行列データに対して各々、Ｎ／４行Ｎ／４列の係数行列を乗じる第２の行列演算手段から構成され、前記第３の演算手段が、前記第２の演算手段から出力される演算結果に対して加減算を実行する第１の加減算手段と、第１の加減算手段から出力される演算結果に対して加減算を実行する第２の加減算手段とから構成されていることを特徴としている。
【００９７】
本発明に係る離散コサイン／逆離散コサイン変換装置は、選択信号が離散コサイン変換を指示した場合には、Ｎ個の入力データに対して所定の演算を実行する第１の演算手段と、
第１の演算手段から出力される演算結果に対して所定の演算を実行する第２の演算手段と、第２の演算手段から出力される演算結果に対して所定の演算を実行する第３の演算手段とを備えた離散コサイン変換装置として動作し、前記選択信号が逆離散コサイン変換を指示した場合には、Ｎ個の入力データに対して所定の演算を実行する第４の演算手段と、
第４の演算手段から出力される演算結果に対して所定の演算を実行する第５の演算手段と、第５の演算手段から出力される演算結果に対して所定の演算を実行する第６の演算手段とを備えた逆離散コサイン変換装置として動作する、離散コサイン／逆離散コサイン変換装置において、前記第１の演算手段が、入力データに対して加減算を実行する第１の加減算手段と第１の加減算手段から出力される演算結果に対して加減算を実行する第２の加減算手段から構成され、前記第２の演算手段が、前記第１の演算手段から出力されるＮ個の演算結果をＮ／４行１列の行列データの組として４組に分け、前記４組の行列データに対して各々、Ｎ／４行Ｎ／４列の係数行列を乗じる第１の行列演算手段から構成され、前記第３の演算手段が、前記第２の演算手段から出力されるＮ個の演算結果の内のＮ／２個の演算結果をＮ／４行１列の行列データの組として２組に分け、２組の行列データに対して各々、Ｎ／４行Ｎ／４列の係数行列を乗じる第２の行列演算手段から構成されており、前記第４の演算手段が、Ｎ個の入力データの内のＮ／２個の入力データをＮ／４行１列の行列データの組として２組に分け、２組の行列データに対して各々、Ｎ／４行Ｎ／４列の係数行列を乗じる第３の行列演算手段から構成され、前記第５の演算手段が、前記第２の演算手段に含まれる第１の行列演算手段から構成構成され、前記第６の演算手段が、前記第５の演算手段から出力される演算結果に対して加減算を実行する第３の加減算手段と、第３の加減算手段から出力される演算結果に対して加減算を実行する第４の加減算手段とから構成されている、ことを特徴としている。また、本発明に係る離散コサイン／逆離散コサイン変換装置は、選択信号が離散コサイン変換を指示した場合には、Ｎ個の入力データに対して所定の演算を実行する第１の演算手段と、第１の演算手段から出力される演算結果に対して所定の演算を実行する第２の演算手段と、第２の演算手段から出力される演算結果に対して所定の演算を実行する第３の演算手段とを備えた離散コサイン変換装置として動作し、前記選択信号が逆離散コサイン変換を指示した場合には、Ｎ個の入力データに対して所定の演算を実行する第４の演算手段と、第４の演算手段から出力される演算結果に対して所定の演算を実行する第５の演算手段と、第５の演算手段から出力される演算結果に対して所定の演算を実行する第６の演算手段とを備えた逆離散コサイン変換装置として動作する、離散コサイン／逆離散コサイン変換装置において、前記第１の演算手段が、入力データに対して加減算を実行する第１の加減算手段と第１の加減算手段から出力される演算結果に対して加減算を実行する第２の加減算手段から構成され、前記第２の演算手段が、前記第１の演算手段から出力される演算結果をＮ／４行１列の行列データの組として４組に分け、４組の行列データに対して各々、所定のＮ／４行Ｎ／４列の係数行列を乗じる第１の行列演算手段から構成され、前記第３の演算手段が、前記第２の演算手段から出力されるＮ個の演算結果の内のＮ／２個の演算結果に対して加減算処理を実行する第３の加減算手段と、第３の加減算手段から出力される演算結果に対して所定の乗算を実行する第１の乗算手段とから構成されており、前記第４の演算手段が、Ｎ個の入力データの内のＮ／２個の入力データに対して所定の乗算を実行する第２の乗算手段と第２の乗算手段から出力される演算結果及びＮ個の入力データの内第１の演算手段で用いられていないＮ／２個の入力データとに対して所定の加減算を実行する第４の加減算手段とから構成され、前記第５の演算手段が、前記第２の演算手段に含まれる前記第１の行列演算手段から構成され、前記第６の演算手段が、前記第５の演算手段から出力される演算結果に対して所定の加減算を実行する第５の加減算手段と、第５の加減算手段から出力される演算結果に対して所定の加減算を実行する第６の加減算手段とから構成されていることを特徴としている。
【００９８】
また、離散コサイン／逆離散コサイン変換装置は、選択信号が離散コサイン変換を指示している場合には、Ｎ個の入力データに対して所定の演算を実行する第１の演算手段と、第１の演算手段から出力される演算結果に対して所定の演算を実行する第２の演算手段と、第２の演算手段から出力される演算結果に対して所定の演算を実行する第３の演算手段とを備えた離散コサイン変換装置として動作し、前記選択信号が逆離散コサイン変換を指示している場合には、Ｎ個の入力データに対して所定の演算を実行する第４の演算手段と、第４の演算手段から出力される演算結果に対して所定の演算を実行する第５の演算手段と、第５の演算手段から出力される演算結果に対して所定の演算を実行する第６の演算手段とを備えた逆離散コサイン変換装置として動作する、離散コサイン／逆離散コサイン変換装置であって、前記第１の演算手段が、入力データに対して加減算を実行する第１の加減算手段と第１の加減算手段から出力される演算結果に対して加減算を実行する第２の加減算手段から構成され、前記第２の演算手段が、前記第１の演算手段から出力される演算結果をＮ／４行１列の行列データの組として４組に分け、４組の行列データに対して各々、所定のＮ／４行Ｎ／４列の係数行列を乗じる前記第１の行列演算手段から構成され、前記第３の演算手段が、前記第２の演算手段から出力されるＮ個の演算結果の内のＮ／２個の演算結果に対して加減算処理を実行する第３の加減算手段と、第３の加減算手段から出力される演算結果に対して所定の乗算を実行する第１の乗算手段とから構成されており、前記第４の演算手段が、Ｎ個の入力データの内のＮ／２個の入力データに対して所定の乗算を実行する第２の乗算手段と第２の乗算手段から出力される演算結果及びＮ個の入力データの内第１の演算手段で用いられていないＮ／２個の入力データとに対して所定の加減算を実行する第４の加減算手段とから構成され、前記第５の演算手段が、前記第４の演算手段から出力される演算結果をＮ／４行１列の行列データの組として４組に分け、前記４組の行列データに対して各々、所定のＮ／４行Ｎ／４列の係数行列を乗じる前記第１の行列演算手段から構成され、前記第６の演算手段が、前記第２の演算手段から出力される演算結果に対して所定の加減算を実行する第３の加減算手段と、第３の加減算手段から出力される演算結果に対して所定の加減算を実行する第４の加減算手段とから構成し得る。
【００９９】
【発明の実施の形態】
以下、本発明を実施例に従って詳細な説明を行う。近年、急速に普及しつつあるＭＰＥＧ方式やディジタルＶＣＲ方式など、映像信号のディジタル画像処理ではＮ＝８のＤＣＴおよびＩＤＣＴが使用されることが多いので、以下の実施例ではＮ＝８の場合について説明する。Ｎ＝８の場合の１次元ＤＣＴは上記手段の結果、（２１），（２２），（２９），（３０）式から
【０１００】
【数４４】
0003970442.tif 000045
【０１０１】
【数４５】
0003970442.tif 000046
【０１０２】
【数４６】
0003970442.tif 000047
【０１０３】
【数４７】
0003970442.tif 000048
【０１０４】
と表される。
【０１０５】
また、Ｎ＝８の場合の１次元ＩＤＣＴは、（３４），（３５），（４２），（４３）式から
【０１０６】
【数４８】
0003970442.tif 000049
【０１０７】
【数４９】
0003970442.tif 000050
【０１０８】
【数５０】
0003970442.tif 000051
【０１０９】
【数５１】
0003970442.tif 000052
【０１１０】
である。
【０１１１】
（第１の実施例）
図１は本発明の第１実施例である１次元離散コサイン変換器の演算フロー図であって、この回路は入力されたｘk（ｋ＝０〜７）に対して、第１の演算手段においては、前処理として、
【０１１２】
【数５２】
0003970442.tif 000053
【０１１３】
【数５３】
0003970442.tif 000054
【０１１４】
【数５４】
0003970442.tif 000055
【０１１５】
【数５５】
0003970442.tif 000056
【０１１６】
【数５６】
0003970442.tif 000057
【０１１７】
【数５７】
0003970442.tif 000058
【０１１８】
【数５８】
0003970442.tif 000059
【０１１９】
【数５９】
0003970442.tif 000060
【０１２０】
の演算を行い、第２の演算手段においては、（４４）〜（４７）式に示した行列演算を行う。最後に、第３の演算手段においては後処理として、
【０１２１】
【数６０】
0003970442.tif 000061
【０１２２】
【数６１】
0003970442.tif 000062
【０１２３】
【数６２】
0003970442.tif 000063
【０１２４】
【数６３】
0003970442.tif 000064
【０１２５】
の演算を行う。
【０１２６】
図６は本発明の第１実施例の基本回路構成を示すブロック図である。以下に、この回路の動作について説明する。第１の演算手段６２２は第１の加減算手段６２３と第２の加減算手段６２４とからなり、入力端子６０１から第１の演算手段６２２に入力された８個のデータｘ0〜ｘ7は入力順に第１の加減算手段６２３の中のレジスタ６０２〜６０９へ順次転送され、それぞれレジスタ６０９〜６０２に保持される。レジスタ６０９〜６０２のそれぞれの出力ｘ0〜ｘ7は加算器／減算器６１０で加算あるいは減算されて加算結果ｙ0≡ｘ0＋ｘ7，ｙ1ｘ1＋ｘ6，ｙ2≡ｘ2＋ｘ5，ｙ3≡ｘ3＋ｘ4がそれぞれレジスタ６１１〜６１４に保持され、減算結果ζ0≡ｘ0−ｘ7，ζ1≡ｘ1−ｘ6，ζ2≡ｘ2−ｘ5，ζ3≡ｘ3−ｘ4がそれぞれレジスタ６１５〜６１８に保持される。次にレジスタ６１１〜６１８のそれぞれの出力ｙ0，ｙ1，ｙ2，ｙ3，ζ0，ζ1，ζ2，ζ3は加算器／減算器６１９で加算あるいは減算されて，加算結果ｚ0≡ｙ0＋ｙ3，ｚ2≡ｙ1＋ｙ2，ｚ5≡ζ0＋ζ1，ｚ3≡ζ1＋ζ2，ｚ7≡ζ2＋ζ3，とｚ1≡ζ0および減算結果ｚ4≡ｙ0−ｙ3，ｚ6≡ｙ1−ｙ2が第２の演算手段６２０へ出力される。
【０１２７】
次に、図７に第２の演算手段６２０の回路構成を示すブロック図を示す。第２の演算手段６２０では図６に示した第１の演算手段６２２からの出力ｚ0〜ｚ7がそれぞれレジスタ７００〜７０７に保持され、ビット分配器７０８において各ビット位置ごとに分解されて読み出し専用メモリ（ＲＯＭ）７１０〜７２０へ入力される。ＲＯＭ７１０〜７２０にはあらかじめ式（４４）〜（４７）に示した行列演算の係数行列と任意の２ビット数との乗算結果が記憶されており、ビット分配器７０８の出力と行列選択回路７０９の出力の組み合わせによってＲＯＭ７１０〜７２０の出力が決まる。ＲＯＭ７１０〜７２０の出力は各桁の積和演算結果になっており、桁位置を考慮したうえでこれらを加算すると式（４４）〜（４７）に示した行列演算の結果が得られるようになっている。この図では出力ｚ0〜ｚ7がそれぞれ１１ビットの数値の場合を示しているが、ビット長が異なる場合にも基本的には同じ方法で演算できる。
【０１２８】
次に、レジスタ７００〜７０７のそれぞれの出力ｚ0〜ｚ7を入力するビット分配器７０８の動作について、この構成を示す図８を用いて説明する。ビット分配器７０８において、レジスタ７００と７０２のそれぞれの出力は、ビット操作部８００により、それぞれ最上位ビットから最下位ビットまでの１１本の信号線（最上位［１０］〜最下位［０］）に分けられ、同一ビット位置の２本の信号線が組み合わされた２ビットの信号線が１１組構成されて、信号線［１０］の２ビットの信号線はセレクタ８０４に、信号線［９］の２ビットの信号線はセレクタ８０５に、・・・、信号線［０］の２ビットの信号線はセレクタ８１４にというようにそれぞれセレクタ８０４〜８１４に入力される。
【０１２９】
同様に、レジスタ７０４と７０６のそれぞれの出力は、ビット操作部８０１により、それぞれ最上位ビットから最下位ビットまでの１１本の信号線（最上位［１０］〜最下位［０］）に分けられ、同一ビット位置の２本の信号線が組み合わされた２ビットの信号線が１１組構成されて、信号線［１０］の２ビットの信号線はセレクタ８０４に、信号線［９］の２ビットの信号線はセレクタ８０５に、・・・、信号線［０］の２ビットの信号線はセレクタ８１４にというようにそれぞれセレクタ８０４〜８１４に入力される。
【０１３０】
同様に、レジスタ７０１と７０３のそれぞれの出力は、ビット操作部８０２により、それぞれ最上位ビットから最下位ビットまでの１１本の信号線（最上位［１０］〜最下位［０］）に分けられ、同一ビット位置の２本の信号線が組み合わされた２ビットの信号線が１１組構成されて、信号線［１０］の２ビットの信号線はセレクタ８０４に、信号線［９］の２ビットの信号線はセレクタ８０５に、・・・、信号線［０］の２ビットの信号線はセレクタ８１４にというようにそれぞれセレクタ８０４〜８１４に入力される。
【０１３１】
同様に、レジスタ７０５と７０７のそれぞれの出力は、ビット操作部８０３により、それぞれ最上位ビットから最下位ビットまでの１１本の信号線（最上位［１０］〜最下位［０］）に分けられ、同一ビット位置の２本の信号線が組み合わされた２ビットの信号線が１１組構成されて、信号線［１０］の２ビットの信号線はセレクタ８０４に、信号線［９］の２ビットの信号線はセレクタ８０５に、・・・、信号線［０］の２ビットの信号線はセレクタ８１４にというようにそれぞれセレクタ８０４〜８１４に入力される。
【０１３２】
このようにセレクタ８０４〜８１４はＸ0、Ｘ4を算出する場合にはｚ0、ｚ2の同一ビット位置のビットからなる２ビット列をＲＯＭ７１０〜７２０に出力し、Ｘ2，Ｘ6を算出する場合にはｚ4，ｚ6の同一ビット位置のビットからなる２ビット列をＲＯＭ７１０〜７２０に出力し、ζ1，ζ3を算出する場合にはｚ1，ｚ3の同一ビット位置のビットからなる２ビット列をＲＯＭ７１０〜７２０に出力し、ζ5，ζ7を算出する場合にはｚ5，ｚ7の同一ビット位置のビットからなる２ビット列をＲＯＭ７１０〜７２０に出力するようになっている。以上が、ビット分配器７０８の動作である。
【０１３３】
次に、積和演算ブロック７２１の動作について図７を用いて説明する。積和演算ブロック７２１はビット分配器７０８から１１組の２ビット列を同時に入力して、式（４４）、（４５）および式（４６），（４７）に示した行列演算を構成する８個の積和演算を所定の順に行い、Ｘ0，Ｘ4，Ｘ2，Ｘ6，ζ1，ζ3，ζ5，ζ7を順次計算する。積和演算ブロック７２１に設けられたＲＯＭ７１０〜７２０は，行選択回路７０９からの３ビットの行選択番号と、この行選択番号とは別に２ビット列を入力し、行選択信号が（０００）であれば、２ビット列が、（００）であるときは０を、（０１）であるときはＣ4を、（１０）であるときはＣ4を、（１１）であるときは２Ｃ4を、それぞれ出力し、また行選択信号が（００１）であれば、２ビット列が、（００）であるときは０を、（０１）であるときは−Ｃ4を、（１０）であるときはＣ4を、（１１）であるときは０を、それぞれ出力し、・・・また行選択信号が（１１１）であれば、２ビット列が、（００）であるときは０を、（０１）であるときは−Ｃ2を、（１０）であるときはＣ6を、（１１）であるときはＣ6−Ｃ2を、それぞれ出力するようになっている。これにより、式（４４）、（４５）および式（４６）、（４７）からして、入力する行選択信号が（０００）で２ビット列がｚ0、ｚ2の同一ビット位置のビットからなるものであれば、Ｘ0の部分和を出力することになり、入力する行選択信号が（００１）で２ビット列がｚ0、ｚ2の同一ビット位置のビットからなるものであれば、Ｘ4の部分和を出力することになり、・・・・、入力する行選択信号が（１１１）で２ビット列がｚ5、ｚ7の同一ビット位置のビットからなるものであればζ7の部分和を出力することになる。
【０１３４】
以下、式（４４）に示した第１行目の演算、つまり、Ｘ0を計算する動作を例にとって説明を行う。
まず、行選択回路７０９から行選択信号として（０００）がＲＯＭ７１０〜７２０に入力されるとともに、ビット分配器７０８からｚ0、ｚ2の、最上位ビットからなる２ビット列がＲＯＭ７１０に、ビット位置１のビットからなる２ビット列がＲＯＭ７１１に、・・・、最下位ビット（ビット位置１０のビット）からなる２ビット列がＲＯＭ７２０に、それぞれ入力され、これにより、ＲＯＭ７１０からは最上位ビットからなる２ビット列を構成要素とするＸ0の部分和が、ＲＯＭ７１１からはビット位置１のビットからなる２ビット列を構成要素とするＸ0の部分和が、・・・、ＲＯＭ７２０からは最下位ビットからなる２ビット列を構成要素とするＸ0の部分和が、それぞれ出力されることになる。
【０１３５】
次に、ＲＯＭ７１１、７１３、７１５、７１７、７１９の出力は、それぞれ、シフタ７２２、７２３、７２４、７２５、７２６にて１ビット上にシフトされた後、加算器７２７、７２８、７２９、７３０、７３１において、ＲＯＭ７１２、７１４、７１６、７１８、７２０の出力と加算される。従って、加算器７２７、７２８、７２９、７３０、７３１の出力は、それぞれ、ビット位置１のビットからなる２ビット列を構成要素とするＸ0の部分和（１ビット上にシフトされている）とビット位置２のビットからなる２ビット列を構成要素とするＸ0の部分和との加算結果、ビット位置３のビットからなる２ビット列を構成要素とするＸ0の部分和（１ビット上にシフトされている）とビット位置４のビットからなる２ビット列を構成要素とするＸ0の部分和との加算結果、・・・ビット位置９のビットからなる２ビット列を構成要素とするＸ0の部分和（１ビット上にシフトされている）と最下位ビット（ビット位置１０）のビットからなる２ビット列を構成要素とするＸ0の部分和との加算結果となる。
【０１３６】
次に、ＲＯＭ７１０および加算器７２８、７３０の出力はそれぞれ、シフタ７３２、７３３、７３４にて２ビット上にシフトされた後、加算器７３５、７３６、７３７において、加算器７２７、７２９、７３１の出力と加算される。従って、加算器７３５の出力はビット位置０のビットからなる２ビット列を構成要素とするＸ0の部分和（２ビット上にシフトされている）と、ビット位置１のビットからなる２ビット列を構成要素とするＸ0の部分和（１ビット上にシフトされている）と、ビット位置２のビットからなる２ビット列を構成要素とするＸ0の部分和との加算結果となり、加算器７３６の出力はビット位置３のビットからなる２ビット列を構成要素とするＸ0の部分和（３ビット上にシフトされている）と、ビット位置４のビットからなる２ビット列を構成要素とするＸ0の部分和（２ビット上にシフトされている）と、ビット位置５のビットからなる２ビット列を構成要素とするＸ0の部分和（１ビット上にシフトされている）と、ビット位置６のビットからなる２ビット列を構成要素とするＸ0の部分和との加算結果となり、更に、加算器７３７の出力は、ビット位置７のビットからなる２ビット列を構成要素とするＸ0の部分和（３ビット上にシフトされている）と、ビット位置８のビットからなる２ビット列を構成要素とするＸ0の部分和（２ビット上にシフトされている）と、ビット位置９のビットからなる２ビット列を構成要素とするＸ0の部分和（１ビット上にシフトされている）と、最下位ビットからなる２ビット列を構成要素とするＸ0の部分和との加算結果となる。同様にして、加算器７３６の出力は、シフタ７３８で４ビット上にシフトされた後、加算器７３９において、加算器７３７の出力と加算される。
【０１３７】
次に、加算器７３５の出力はシフタ７４０で８ビット上にシフトされた後、加算器７４１において、加算器７３９の出力と加算される。そして、加算器７４１の出力は丸め、回路７４２で９ビットに丸められ、積和演算ブロック７２１からの出力端子７４３へ出力される。以上の動作により、ｚ0とｚ2の各同一ビット位置からなる１１組の２ビット列をそれぞれ構成要素とするＸ0の１１個の部分和（すべての部分和）が同時に生成され、これらがビット位置に応じてシフトされて加算されるのでＸ0が計算されることになる。また、積和演算ブロック７２１において、ビット分配器７０８からはｚ0とｚ2の最上位ビットからなる２ビット列〜最下位ビットからなる２ビット列の１１組の２ビット列がそれぞれＲＯＭ７１０〜７２０に入力され、行選択回路７０９からＲＯＭ７１０〜７２０に入力される行選択信号が（００１）である場合はＸ4が計算されることになる。
【０１３８】
また、積和演算ブロック７２１において、ビット分配器７０８からはｚ4とｚ6の最上位ビットからなる２ビット列〜最下位ビットからなる２ビット列の１１組の２ビット列がそれぞれＲＯＭ７１０〜７２０に入力され、行選択回路７０９からＲＯＭ７１０〜７２０に入力される行選択信号が（０１０）あるいは（０１１）である場合はそれぞれＸ2あるいはＸ6が計算されることになる。また、積和演算ブロック７２１において、ビット分配器７０８からはｚ1とｚ3の最上位ビットからなる２ビット列〜最下位ビットからなる２ビット列の１１組の２ビット列がそれぞれＲＯＭ７１０〜７２０に入力され、行選択回路７０９からＲＯＭ７１０〜７２０に入力される行選択信号が（１００）あるいは（１０１）である場合はそれぞれζ1あるいはζ3が計算されることになる。
【０１３９】
また、積和演算ブロック７２１において、ビット分配器７０８からはｚ5とｚ7の最上位ビットからなる２ビット列〜最下位ビットからなる２ビット列の１１組の２ビット列がそれぞれＲＯＭ７１０〜７２０に入力され、行選択回路７０９からＲＯＭ７１０〜７２０に入力される行選択信号が（１１０）あるいは（１１１）である場合はそれぞれζ5あるいはζ7が計算されることになる。そして、行選択回路７０９から３ビットの行選択信号として（０００）、（００１）、・・・、（１１１）のどれが出力されるか、および、ビット分配器７０８から１１組の２ビット列として、レジスタ７００、７０２のそれぞれの出力であるｚ0とｚ2の各同一ビット位置のビットからなるものが同時に出力されるか、あるいはレジスタ７０４、７０６のそれぞれの出力であるｚ4とｚ6の各同一ビット位置のビットからなるものが同時に出力されるか、あるいはレジスタ７０１、７０３のそれぞれの出力であるｚ1とｚ3の各同一ビット位置のビットからなるものが同時に出力されるか、あるいはレジスタ７０５、７０７のそれぞれの出力であるｚ5とｚ7の各同一ビット位置のビットからなるものが同時に出力されるかが、それぞれ適切に切り替わるようになっており、Ｘ0、Ｘ4、Ｘ2、Ｘ6、ζ1、ζ3、ζ5、ζ7の計算が完了する。この計算結果は端子７４３から第３の演算手段へ出力される。
【０１４０】
第１の実施例の第３の演算手段の構成例を図９に示す。第２の演算手段における計算結果は端子７４３からセレクタ９０１を通じてＸ0、Ｘ4、Ｘ2、Ｘ6がそれぞれレジスタ９０２〜９０５へ転送され、ζ1、ζ3、ζ5、ζ7がそれぞれレジスタ９０６〜９０９へ転送される。レジスタ９０６〜９０９のデータは加算器／減算器９１０へ入力され、ζ1＋ζ5すなわち２Ｃ1Ｘ1がレジスタ９１１へ、ζ1−ζ5すなわち２Ｃ7Ｘ7がレジスタ９１２へ、ζ3＋ζ7すなわち２Ｃ3Ｘ3がレジスタ９１３へ、ζ3−ζ7すなわち２Ｃ5Ｘ5がレジスタ９１４へ、それぞれ転送される。レジスタ９１１〜９１４のデータはセレクタ９１５によって２Ｃ1Ｘ1、２Ｃ7Ｘ7、２Ｃ3Ｘ3、２Ｃ5Ｘ5がひとつずつ、乗算回路９１６へ転送され、行選択回路９１７の指定によって、それぞれ１／２Ｃ1倍、１／２Ｃ7倍、１／２Ｃ3倍、１／２Ｃ5倍されて、順次レジスタ９１８〜９２１へＸ1、Ｘ7、Ｘ3、Ｘ5が転送される。最後にセレクタ９２２によって、Ｘ0、Ｘ1、Ｘ2、Ｘ3、Ｘ4、Ｘ5、Ｘ6、Ｘ7が順次、出力端子９２３から出力されて、８点１次元ＤＣＴ演算が完了する。この例では、第２の演算手段６２０における積和演算ブロック７２１は、１行毎に演算を行う場合を示したが、積和演算ブロック７２１の構成要素を２個、並列に設置することによって、２行２列の係数行列演算を同時に実行するようにも構成できる。その場合、行選択回路からの出力は２ビットであり、行選択信号として（００）、（０１）、（１０）、（１１）のときに、それぞれ、Ｘ0とＸ4、Ｘ2とＸ6、ζ1とζ3、ζ5とζ7を計算する。
【０１４１】
（第２の実施例）
図２は本発明の第２実施例である１次元離散コサイン変換器の演算フロー図であって、この回路は入力されたｘk（ｋ＝０〜７）に対して、第１の演算手段においては、前処理として第１実施例と同様に、式（５２）〜（５９）の演算を行い、第２の演算手段においては、式（４４）〜（４７）に示した行列演算を行う。最後に第３の演算手段においては後処理として、
【０１４２】
【数６４】
0003970442.tif 000065
【０１４３】
【数６５】
0003970442.tif 000066
【０１４４】
の演算を行う。
【０１４５】
図６は本発明の第２実施例の基本回路構成を示すブロック図であって、これは第１実施例と同じである。第１の演算手段６２２および第２の演算手段６２０の構成は第１実施例と同じである。第３の演算手段の構成例を図１０に示す。第２の演算手段における計算結果は端子７４３からＸ0、Ｘ4、Ｘ2、Ｘ6、ζ1、ζ3、ζ5、ζ7がそれぞれレジスタ１００１〜１００８へ転送される。レジスタ１００５〜１００８のデータはビット分配器１００９へ入力される。ビット分配器１００９の構成は、基本的には第１実施例のビット分配器７０８と同じで、図１１にその構成を示す。本実施例では、第２の演算手段６２０の出力７４３は丸め回路７４２において９ビットに丸められているので、レジスタ１００５〜１００８の出力は９ビットである。レジスタ１００５とレジスタ１００７の出力はビット操作部１１０１へ入力され、ビット分配器１００９において、レジスタ１００５と１００７のそれぞれの出力は、ビット操作部１１０１により、それぞれ最上位ビットから最下位ビットまでの９本の信号線（最上位［８］〜最下位［０］）に分けられ、同一ビット位置の２本の信号線が組み合わされた２ビットの信号線が９組構成されて、信号線［８］の２ビットの信号線はセレクタ１１０３に、信号線［７］の２ビットの信号線はセレクタ１１０４に、・・・、信号線［０］の２ビットの信号線はセレクタ１１１１にというようにそれぞれセレクタ１１０３〜１１１１に入力される。このようにしてビット分配器１００９において各ビット位置ごとに分解されて第２の行列演算手段１０１０の読み出し専用メモリ（ＲＯＭ）１０１１〜１０１９へ入力される。第２の行列演算手段１０１０では、第２の演算手段６２０と同様の動作によってＸ1、Ｘ7、Ｘ3、Ｘ5が計算され、レジスタ１０２１〜１０２４へ順次転送される。最後にセレクタ１０２５によって、Ｘ0、Ｘ1、Ｘ2、Ｘ3、Ｘ4、Ｘ5、Ｘ6、Ｘ7が順次、出力端子１０１６から出力されて、８点１次元ＤＣＴ演算が完了する。第１実施例での第２の演算手段６２０における積和演算ブロック７２１と同様に、第２の行列演算手段１０１０では構成要素を２個、並列に設置することによって、２行２列の係数行列演算を同時に実行するようにも構成できる。その場合、行選択回路からの出力は１ビットであり、行選択信号として（０）、（１）のときに、それぞれ、Ｘ1とＸ7、Ｘ3とＸ5を計算する。
【０１４６】
（第３の実施例）
図３は本発明の第３実施例である１次元逆離散コサイン変換器の演算フロー図であって、この回路は入力されたＸn（ｎ＝０〜７）に対して、第１の演算手段においては、前処理として、
【０１４７】
【数６６】
0003970442.tif 000067
【０１４８】
【数６７】
0003970442.tif 000068
【０１４９】
【数６８】
0003970442.tif 000069
【０１５０】
【数６９】
0003970442.tif 000070
【０１５１】
の演算を行い、第２の演算手段においては式（４８）〜（５１）に示した行列演算を行う。最後に、第３の演算手段においては後処理として、
【０１５２】
【数７０】
0003970442.tif 000071
【０１５３】
【数７１】
0003970442.tif 000072
【０１５４】
【数７２】
0003970442.tif 000073
【０１５５】
【数７３】
0003970442.tif 000074
【０１５６】
【数７４】
0003970442.tif 000075
【０１５７】
【数７５】
0003970442.tif 000076
【０１５８】
【数７６】
0003970442.tif 000077
【０１５９】
【数７７】
0003970442.tif 000078
【０１６０】
を行う。
【０１６１】
図１２は本発明の第３実施例の基本回路構成を示すブロック図である。図１３には第３実施例の第１の演算手段１２０２の回路構成を、図１４には第３実施例の第２の演算手段１２０３の回路構成を示す。以下に、この回路の動作について説明する。入力端子１２０１から第１の演算手段１２０２に入力された８個のデータＸ0〜Ｘ7は入力順に図１３のレジスタ１３０１〜１３０８へ順次転送され、それぞれレジスタ１３０８〜１３０１に保持される。レジスタ１３０１、１３０３、１３０５、１３０７からそれぞれＸ7、Ｘ5、Ｘ3、Ｘ1がセレクタ１３１１を通じて、Ｘ1、Ｘ3、Ｘ5、Ｘ7が順次乗算回路１３１２へ転送され、行選択回路１３１３の指定によって、それぞれＣ1倍、Ｃ3倍、Ｃ5倍、Ｃ7倍されて、順次レジスタ１３１４〜１３１７へＣ1Ｘ1、Ｃ3Ｘ3、Ｃ5Ｘ5、Ｃ7Ｘ7が転送される。
【０１６２】
レジスタ１３１４〜１３１７のデータは加算器／減算器１３１８へ入力され、ζ1すなわちＣ1Ｘ1＋Ｃ7Ｘ7がレジスタ１３１９へ、ζ3すなわちＣ3Ｘ3＋Ｃ5Ｘ5がレジスタ１３２０へ、ζ7すなわちＣ3Ｘ3−Ｃ5Ｘ5がレジスタ１３２１へ、ζ5すなわちＣ1Ｘ1−Ｃ7Ｘ7がレジスタ１３２２へ、それぞれ転送される。レジスタ１３０２、１３０４、１３０６、１３０８および１３１９〜１３２２のデータＸ6、Ｘ4、Ｘ2、Ｘ0、ζ1、ζ3、ζ7、ζ5は第２の演算手段１２０３に転送される。
【０１６３】
図１４に示した第２の演算手段１２０３は図７と同様にして行列演算を行い、ｚ0、ｚ2、ｚ4、ｚ6、ｚ1、ｚ3、ｚ5、ｚ7を順次出力する。
【０１６４】
次に、第２の演算手段１２０３から第３の演算手段１２０４に入力された８個のデータｚ0、ｚ2、ｚ4、ｚ6、ｚ1、ｚ3、ｚ5、ｚ7入力順に第２の加減算手段１２０５の中のレジスタ１２０７〜１２１４へ順次転送され、それぞれレジスタ１２１４〜１２０７に保持される。レジスタ１２１４〜１２０７のそれぞれの出力ｚ0、ｚ2、ｚ4、ｚ6、ｚ1、ｚ3、ｚ5、ｚ7は加算器／減算器１２１５で加算あるいは減算されて加算結果ｙ0すなわちｘ0＋ｘ7、ｙ1すなわちｘ1＋ｘ6、ｙ2すなわちｘ2＋ｘ5、ｙ3すなわちｘ3＋ｘ4がそれぞれレジスタ１２１６〜１２１９に保持され、減算結果ζ0すなわちｘ0−ｘ7、ζ1すなわちｘ1−ｘ6、ζ2すなわちｘ2−ｘ5、ζ3すなわちｘ3−ｘ4がそれぞれレジスタ１２２０〜１２２３に保持される。
【０１６５】
次にレジスタ１２１６〜１２２３のそれぞれの出力ｙ0、ｙ1、ｙ2、ｙ3、ζ0、ζ1、ζ2、ζ3は加算器／減算器１２２４で加算あるいは減算されて、加算結果ｘ0〜ｘ3および減算結果ｘ4〜ｘ7がレジスタ１２２５〜１２３２へ出力される。最後にｘ0、ｘ1、ｘ2、ｘ3、ｘ4、ｘ5、ｘ6、ｘ7が順次、出力端子１２３３から出力されて、８点１次元ＩＤＣＴ演算が完了する。
【０１６６】
（第４の実施例）
図４は本発明の第４実施例である１次元逆離散コサイン変換器の演算フロー図であって、この回路は入力されたＸn（ｎ＝０〜７）に対して、第１の演算手段においては、前処理として、
【０１６７】
【数７８】
0003970442.tif 000079
【０１６８】
【数７９】
0003970442.tif 000080
【０１６９】
の演算を行い、第２の演算手段においては第３実施例と同じく式（４８）〜（５１）に示した行列演算を行う。最後に第３の演算手段において第３実施例と同じく（７０）〜（７７）に示した演算を行う。第４実施例が第３実施例と異なるのは第１の演算手段１２０２の構成であって、図１５にその構成を示す。
【０１７０】
第４実施例においては、入力端子１２０１から第１の演算手段１２０２に入力された８個のデータＸ0〜Ｘ7は入力順に図１５のレジスタ１５０１〜１５０８へ順次転送され、それぞれレジスタ１５０８〜１５０１に保持される。レジスタ１５０１、１５０３、１５０５、１５０７からそれぞれＸ7、Ｘ5、Ｘ3、Ｘ1が第１の行列演算手段１５０９へ転送され、式（７８）、（７９）の行列演算を行い、演算結果ζ1、ζ5、ζ3、ζ5を順次レジスタ１５１０〜１５１３へ転送する。
【０１７１】
第１の行列演算手段１５０９の構成は、図１６に示されるように、図７や図１４と同様の構成であり、ＲＯＭの記憶内容が、係数行列に従って異なるだけである。以上の実施例から明らかなように、ＤＣＴおよびＩＤＣＴを一つの回路で実行できるＤＣＴ／ＩＤＣＴ回路を実現しようとした場合、本発明の第１実施例あるいは第２実施例と、本発明の第３実施例あるいは第４実施例を組み合わせて、選択信号によって切り替えることができればよい。
【０１７２】
この場合には、第２の演算手段におけるＲＯＭはＤＣＴの４個の係数行列
【０１７３】
【数８０】
0003970442.tif 000081
【０１７４】
とＩＤＣＴの４個の係数行列
【０１７５】
【数８１】
0003970442.tif 000082
【０１７６】
は３個の係数行列が同じ値であり、また、ＤＣＴもＩＤＣＴもそれぞれ４つの係数行列の内、
【０１７７】
【数８２】
0003970442.tif 000083
【０１７８】
を２つ含むので、本来、８種類の２行２列の係数行列であるべきところが４種類の２行２列の係数行列
【０１７９】
【数８３】
0003970442.tif 000084
【０１８０】
を記憶しておくだけでよい。このような係数行列を記憶させることによって、第２の演算手段における第１の行列演算手段をＤＣＴとＩＤＣＴとの時とで、共有化することができ、回路規模を小さくすることができる。
【０１８１】
【発明の効果】
以上、説明したように、本発明に係る離散コサイン変換装置、逆離散コサイン変換装置、および離散コサイン／逆離散コサイン変換装置は、Ｎ／４行Ｎ／４列の行列演算を実行することによって計算できるので、回路規模が小さくなり、消費電力の低減にも効果がある。また、本発明に係る離散コサイン／逆離散コサイン変換装置は、共通する係数行列を共用できるので、必要となるメモリの記憶容量が小さくて済み、全体の回路規模が小さくなるとともに、消費電力の低減にも効果がある。
【図面の簡単な説明】
【図１】本発明の第１の実施例である。
【図２】本発明の第２の実施例である。
【図３】本発明の第３の実施例である。
【図４】本発明の第４の実施例である。
【図５】従来の例である。
【図６】第１の実施例および第２の実施例の基本構成例である。
【図７】第１の実施例および第２の実施例における第２の演算手段の構成例である。
【図８】図７におけるビット分配器の構成例である。
【図９】第１の実施例における第３の演算手段の構成例である。
【図１０】第２の実施例における第３の演算手段の構成例である。
【図１１】図１０におけるビット分配器２の構成例である。
【図１２】第３の実施例および第４の実施例の基本構成例である。
【図１３】第３の実施例における第１の演算手段の構成例である。
【図１４】第３の実施例における第２の演算手段の構成例である。
【図１５】第４の実施例における第１の演算手段の構成例である。
【図１６】図１５における第１の行列演算手段の構成例である。
【符号の説明】
６０１  入力端子
６１０、６１９  加算器／減算器
６０２〜６０９、６１１〜６１８  レジスタ
６２２  第１の演算手段
６２３  第１の加算減手段
６２４  第２の加算減手段
７００〜７０７  レジスタ
７０８  ビット分配器
７０９  行選択回路
７１０〜７２０  ＲＯＭ
７２２〜７２６、７３２〜７３４、７３８、７４０  シフタ
７２７〜７３１、７３５〜７３７、７３９、７４１  加算器
７４２  丸め回路
７４３  出力端子
８００〜８０３  ビット操作部
８０４〜８１４  セレクタ
９０１  セレクタ
９０２〜９０９、９１１〜９１４、９１８〜９２１  レジスタ
９１０  加算器／減算器
９１５  セレクタ
９１６  乗算器
９１７  行選択回路
９２２  セレクタ
９２３  出力
１００１〜１００８  レジスタ
１００９  ビット分配器
１０１０  第２の行列演算手段
１０１１〜１０１９  読み出し専用メモリ
１０２１〜１０２４  レジスタ
１０２５  セレクタ
１１０１、１１０２  ビット操作部
１１０３〜１１１１  セレクタ
１２０２  第１の演算手段
１２０３  第２の演算手段
１２０４  第３の演算手段
１２０５  第２の加減算手段
１２０６  第３の加減算手段
１２０７〜１２１４、１２１６〜１２２３、１２２５〜１２３２  レジスタ
１２１５、１２２４  加算器／減算器
１３０１〜１３０８  レジスタ
１３１１  セレクタ
１３１２  乗算回路
１３１３  行選択回路
１３１４〜１３１７、１３１９〜１３２２  レジスタ
１３１８  加算器／減算器
１５０１〜１５０８、１５１０〜１５１３  レジスタ
１５０９  第１の行列演算手段
【図１】
0003970442.tif 000085
【図２】
0003970442.tif 000086
【図３】
0003970442.tif 000087
【図４】
0003970442.tif 000088
【図５】
0003970442.tif 000089
【図６】
0003970442.tif 000090
【図７】
0003970442.tif 000091
【図８】
0003970442.tif 000092
【図９】
0003970442.tif 000093
【図１０】
0003970442.tif 000094
【図１１】
0003970442.tif 000095
【図１２】
0003970442.tif 000096
【図１３】
0003970442.tif 000097
【図１４】
0003970442.tif 000098
【図１５】
0003970442.tif 000099
【図１６】
0003970442.tif 000100