(57)【要約】【課題】演算速度をより高速化することができる離散コサイン変換装置および逆離散コサイン変換装置を提供する。【解決手段】離散コサイン変換対象の８点のデータは所定の順番を有しており、ラッチＦＦ１およびＦＦ２には、この順番における先頭からの順番と末尾からの順番とが等しい一対のデータが順次入力される。入力された一対のデータは、加算部１０において互いに加算され、減算部２０において一方から他方が減算される。加算部１０の加算結果および減算部２０の減算結果には、乗算部Ｍ０〜Ｍ７においてそれぞれ所定のコサイン係数が乗算され、この乗算結果が第１の選択部３１および第２の選択部３２における選択処理、および積算部４０における積算処理により、離散コサイン変換係数へ変換される。１対のデータを単位として処理が行われるため、１データ単位の処理に比べて演算を高速できる。【選択図】      図１
2004265346.tif 000002
【特許請求の範囲】
【請求項１】
所定の順番を有した複数の入力データと複数のコサイン係数とを乗算して得られるコサイン係数積を合成して、複数の離散コサイン変換データを生成する離散コサイン変換装置であって、
上記複数の入力データのうち、先頭からの順番と末尾からの順番とが等しい一対の入力データを互いに加算する加算手段と、
上記一対の入力データの一方から他方を減算する減算手段と、
上記加算手段の加算結果および上記減算手段の減算結果にそれぞれ上記コサイン係数を乗算し、上記コサイン係数積の和として出力する乗算手段と
を有する離散コサイン変換装置。
【請求項２】
上記乗算手段は、
上記複数のコサイン係数のうち所定の係数グループに含まれるコサイン係数と、上記加算手段の加算結果とを乗算する第１の乗算手段と、
上記複数のコサイン係数のうち上記所定の係数グループに含まれない残りのコサイン係数と、上記減算手段の減算結果とを乗算する第２の乗算手段とを含む、
請求項１に記載の離散コサイン変換装置。
【請求項３】
生成すべき上記複数の離散コサイン変換データのうち、所定の変換データ・グループに含まれる離散コサイン変換データのそれぞれに対して、上記第１の乗算手段から出力される複数の乗算結果の中から、乗算元の入力データの上記順番に応じた乗算結果を選択する第１の選択手段と、
生成すべき上記複数の離散コサイン変換データのうち、上記所定の変換データ・グループに含まれない残りの離散コサイン変換データのそれぞれに対して、上記第２の乗算手段から出力される複数の乗算結果の中から、乗算元の入力データの上記順番に応じた乗算結果を選択する第２の選択手段と、
上記第１の選択手段および上記第２の選択手段において選択された乗算結果をそれぞれ積算して、上記複数の離散コサイン変換データを生成する積算手段とを有する、
請求項２に記載の離散コサイン変換装置。
【請求項４】
上記第１の選択手段および上記第２の選択手段は、選択する乗算結果に対して、乗算元の入力データの上記順番に応じた符号を与える、
請求項３に記載の離散コサイン変換装置。
【請求項５】
上記一対の入力データを順次入力して保持し、当該保持したデータを上記加算手段および上記減算手段に供給するデータ保持手段を有する、
請求項１に記載の離散コサイン変換装置。
【請求項６】
所定の順番を有した複数の入力データと複数のコサイン係数とを乗算して得られるコサイン係数積を合成して、複数の逆離散コサイン変換データを生成する逆離散コサイン変換装置であって、
上記複数の入力データのうち、上記順番が１つおきに離れた所定の入力データ・グループに含まれる入力データと上記複数のコサイン係数とをそれぞれ乗算し、上記コサイン係数積として出力する第１の乗算手段と、
上記複数の入力データのうち、上記所定の入力データ・グループに含まれない残りの入力データと上記複数のコサイン係数とをそれぞれ乗算し、上記コサイン係数積として出力する第２の乗算手段と
を有する逆離散コサイン変換装置。
【請求項７】
上記第１の乗算手段は、上記複数のコサイン係数のうち所定の係数グループに含まれるコサイン係数と、上記所定の入力データ・グループに含まれる入力データとを乗算し、
上記第２の乗算手段は、上記複数のコサイン係数のうち上記所定の係数グループに含まれない残りのコサイン係数と、上記残りの入力データとを乗算する、
請求項６に記載の逆離散コサイン変換装置。
【請求項８】
生成すべき上記複数の逆離散コサイン変換のそれぞれに対して、上記第１の乗算手段から出力される複数の乗算結果の中から、乗算元の入力データの上記順番に応じた乗算結果を選択する第１の選択手段と、
生成すべき上記複数の逆離散コサイン変換のそれぞれに対して、上記第２の乗算手段から出力される複数の乗算結果の中から、乗算元の入力データの上記順番に応じた乗算結果を選択する第２の選択手段と、
上記第１の選択手段において選択された乗算結果と、上記第２の選択手段において選択された乗算結果との和をそれぞれ積算して、上記複数の逆離散コサイン変換データを生成する積算手段とを有する、
請求項７に記載の逆離散コサイン変換装置。
【請求項９】
上記第１の選択手段および上記第２の選択手段は、選択する乗算結果に対して、乗算元の入力データの上記順番に応じた符号を与える、
請求項８に記載の逆離散コサイン変換装置。
【請求項１０】
上記所定の入力データ・グループに含まれる入力データを順次入力して保持し、当該保持したデータを上記第１の乗算手段に供給する第１のデータ保持手段と、
上記所定の入力データ・グループに含まれない残りの入力データを順次入力して保持し、当該保持したデータを上記第２の乗算手段に供給する第２のデータ保持手段とを有する、
請求項６に記載の逆離散コサイン変換装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、離散コサイン変換装置および逆離散コサイン変換装置に係り、たとえば、画像データの圧縮・伸張装置に用いられる離散コサイン変換装置および逆離散コサイン変換装置に関するものである。
【０００２】
【従来の技術】
一般に自然画像は、隣接する画素間の相関性が高いため、ある微小な領域内で見た場合、画素値の空間的な変動（空間周波数）が比較的小さい。すなわち、周波数領域におけるスペクトル分布が低周波域に偏る傾向がある。このため、周波数領域の画像データを低周波側ほど短い符号長で符号化することにより、データの欠落を抑えながら全体の平均符号長を圧縮することができる。
【０００３】
画像圧縮符号化の国際標準化方式であるＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）やＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）では、画像データを周波数領域へ変換する方法として、離散コサイン変換（ｄｉｓｃｒｅｔｅ  ｃｏｓｉｎｅ  ｔｒａｎｓｆｏｒｍ）が採用されている。また、周波数領域に変換されたデータを元の空間領域へ戻す方法としては、逆離散コサイン変換（ｉｎｖｅｒｓｅ  ｄｉｓｃｒｅｔｅ  ｃｏｓｉｎｅ  ｔｒａｎｓｆｏｒｍ）が用いられる。
【０００４】
これらの圧縮・伸長方式では、符号化対象の画像データが８×８画素ごとにブロック化され、このブロックを単位として２次元の離散コサイン変換／逆離散コサイン変換が実行される。また、２次元の離散コサイン変換／逆離散コサイン変換は、１次元の離散コサイン変換／逆離散コサイン変換を２回に分けて実行することにより演算可能である。そのため、一般にこれらの方式の圧縮・伸長装置では、８点の１次元離散コサイン変換／逆離散コサイン変換を列方向の８本のデータに対して実行し、得られた実行結果に対して、さらに８点の１次元離散コサイン変換／逆離散コサイン変換を行方向の８本のデータに対して実行することにより、２次元の離散コサイン変換／逆離散コサイン変換を行っている。
【０００５】
ＪＰＥＧおよびＭＰＥＧにおいて通常用いられる８点の離散コサイン変換演算は、次式で表される。
【０００６】
【数１】
2004265346.tif 000003
【０００７】
また、式（１）に対応する逆離散コサイン変換演算は、次式で表される。
【０００８】
【数２】
2004265346.tif 000004
【０００９】
式（１）〜（４）において、記号Ａｕは変換前または後の画像データを、記号ａｘは離散コサイン変換係数を示す。また、記号ｕ、ｘは０から７までの整数を示す。
【００１０】
式（１）および式（３）の右辺におけるコサイン係数
ｃｏｓ｛（２ｘ＋１）ｕπ／１６｝
の絶対値は、余弦関数の性質から、８種類の値を持つ。すなわち、
ｃｏｓ（０π／１６）、ｃｏｓ（１π／１６）、ｃｏｓ（２π／１６）、
ｃｏｓ（３π／１６）、ｃｏｓ（４π／１６）、ｃｏｓ（５π／１６）、
ｃｏｓ（６π／１６）、ｃｏｓ（７π／１６）、
の何れかの値を持つ。離散コサイン変換／逆離散コサイン変換の演算においては、この８つのコサイン係数と入力データとの積を合成することにより、変換結果（Ａｕ、ａｘ）が得られる。
【００１１】
たとえば、８つのデータを１つずつ入力し、入力したデータと８つの係数とをそれぞれ乗算し、得られた８つの乗算結果から１つを選択し、これに所定の符号を与えて積算することにより、１つの変換結果（Ａｕ、ａｘ）が得られる。
【００１２】
図９は、一般的な１次元の離散コサイン変換／逆離散コサイン変換装置の構成の一例を示すブロック図である。
図９に示す離散コサイン変換／逆離散コサイン変換装置は、ラッチＦＦ１０と、乗算部Ｍ１０〜Ｍ１７と、選択部１０１と、積算部１０２とを有する。
【００１３】
シリアルに入力される変換元のデータＤｉｎ（画像データまたは離散コサイン変換係数）は、ラッチＦＦ１０において一旦保持される。ラッチＦＦ１０に保持されたデータは、乗算部Ｍ１０〜Ｍ１７においてそれぞれ係数Ｋ０〜Ｋ７を乗ぜられる。係数Ｋ０〜Ｋ７は、上述したコサイン係数を示し、次式で表される。
【００１４】
【数３】
2004265346.tif 000005
【００１５】
乗算部Ｍ１０〜Ｍ１７において各係数を乗ぜられたデータは、選択部１０１に入力される。選択部１０１では、変換結果として出力すべき８つのデータＤｏｕｔ０〜Ｄｏｕｔ７のそれぞれに対して、乗算部Ｍ１０〜Ｍ１７の乗算結果が選択される。選択されたデータには、正または負の符号が与えられて、積算部１０２に出力される。
【００１６】
積算部１０２では、選択部１０２から出力されるデータがそれぞれ積算される。８つの入力データに対応する選択部１０１の出力データが全て積算された場合に、その積算結果として、変換結果を示す８つのデータＤｏｕｔ０〜Ｄｏｕｔ７が得られる。
【００１７】
図１０は、図９に示す離散コサイン変換／逆離散コサイン変換装置の動作を示すタイミング図である。
図１０（Ａ）は図示しないクロック信号ＣＬＫを示す。ラッチＦＦ１０における入力データの保持や、積算部１０２におけるデータの積算は、このクロック信号ＣＬＫに同期して実行される。
また、図１０（Ａ）および（Ｂ）は、ラッチＦＦ１０に入力されるデータとラッチＦＦ１０に保持されるデータを示し、図１０（Ｃ）は、積算部１０２における積算結果を示す。
【００１８】
順次入力されるデータＤ００，Ｄ０１，…，Ｄ０７（図１０（Ｂ））は、クロック信号ＣＬＫ（図１０（Ａ））に同期して、ラッチＦＦ１０に順次保持される（図１０（Ｃ））。１つのデータがラッチＦＦ１０に保持される１クロックサイクルにおいて、乗算部Ｍ１０〜Ｍ１７における係数の乗算、選択部１０１におけるデータの選択と符号の設定、積算部１０２における累積値との加算が完了し、次のクロックサイクルの始まりにおいて、積算部１０２の積算結果が更新される（図１０（Ｄ））。最後の入力データＤ０７に応じて積算部１０２の積算結果が更新される時点で、離散コサイン変換／逆離散コサイン変換の変換結果が確定する。
【００１９】
離散コサイン変換／逆離散コサイン変換装置に関しては、上述した方式の他に、たとえば特許文献１や特許文献２に記載された方式が存在する。
【００２０】
【特許文献１】
特許２５５５９３７号公報
【特許文献２】
特開２００２−９１９４２号公報
【００２１】
【発明が解決しようとする課題】
ところで、図９に示す離散コサイン変換／逆離散コサイン変換装置は、特許文献１や特許文献２に記載される方式に比べて構成を簡易化できる利点があるものの、８つの入力データの逐次的な処理によって演算が実行されるため、複数の入力データが並列処理される上記文献の方式に比べて変換速度が低速になる不利益を有する。クロック信号の周波数を上げて動作速度を高速化することも可能であるが、その場合、消費電力が増大してしまう不利益を生じる。
また、選択部１０１においては８入力１出力のセレクタが８つも必要となるため、さらに構成を簡易化することが望まれる。
【００２２】
本発明はかかる事情に鑑みてなされたものであり、その目的は、消費電力の増大を抑えながら、演算速度をより高速化することができる離散コサイン変換装置および逆離散コサイン変換装置を提供することにある。
【００２３】
【課題を解決するための手段】
上記の目的を達成するため、本発明の第１の観点の離散コサイン変換装置は、所定の順番を有した複数の入力データと複数のコサイン係数とを乗算して得られるコサイン係数積を合成して、複数の離散コサイン変換データを生成する離散コサイン変換装置であって、上記複数の入力データのうち、先頭からの順番と末尾からの順番とが等しい一対の入力データを互いに加算する加算手段と、この一対の入力データの一方から他方を減算する減算手段と、加算手段の加算結果および減算手段の減算結果にそれぞれコサイン係数を乗算し、コサイン係数積の和として出力する乗算手段とを有する。
【００２４】
本発明の第１の観点によれば、加算手段において、先頭からの順番と末尾からの順番とが等しい一対の入力データが互いに加算され、減算手段において、この一対の入力データの一方から他方が減算される。加算手段の加算結果および減算手段の減算結果には、乗算手段においてコサイン係数がそれぞれ乗算され、この乗算結果がコサイン係数積の和として出力される。離散コサイン変換データは、コサイン係数積が合成されることによって生成される。
１対の入力データを単位とした処理によって離散コサイン変換データが生成されるため、個々の入力データを逐次処理することによって離散コサイン変換データが生成される場合に比べて、変換速度を高速化することが可能になる。
【００２５】
また、乗算手段は、上記複数のコサイン係数のうち所定の係数グループに含まれるコサイン係数と、加算手段の加算結果とを乗算する第１の乗算手段と、上記複数のコサイン係数のうち所定の係数グループに含まれない残りのコサイン係数と、減算手段の減算結果とを乗算する第２の乗算手段とを含んでも良い。
これにより、加算手段の加算結果および減算手段の減算結果に対して、上記複数のコサイン係数の乗算手段がそれぞれ設けられる場合に比べて、乗算手段の数が削減される。
【００２６】
また、第１の観点の離散コサイン変換装置は、第１の選択手段と、第２の選択手段と、積算手段とを有しても良い。
第１の選択手段では、生成すべき上記複数の離散コサイン変換データのうち、所定の変換データ・グループに含まれる離散コサイン変換データのそれぞれに対して、第１の乗算手段から出力される複数の乗算結果の中から、乗算元の入力データの上記順番に応じた乗算結果が選択される。
第２の選択手段では、生成すべき上記複数の離散コサイン変換データのうち、所定の変換データ・グループに含まれない残りの離散コサイン変換データのそれぞれに対して、第２の乗算手段から出力される複数の乗算結果の中から、乗算元の入力データの上記順番に応じた乗算結果が選択される。
積算手段では、第１の選択手段および第２の選択手段において選択された乗算結果がそれぞれ積算されて、上記複数の離散コサイン変換データが生成される。
このように、第１の選択手段では第１の乗算手段の乗算結果が、第２の選択手段では第２の乗算手段の乗算結果が、それぞれ選択対象となる。このため、乗算手段の全ての乗算結果が選択対象となる場合に比べて、選択手段における選択対象のデータ数を削減できる。
【００２７】
本発明の第２の観点の逆離散コサイン変換装置は、所定の順番を有した複数の入力データと複数のコサイン係数とを乗算して得られるコサイン係数積を合成して、複数の逆離散コサイン変換データを生成する逆離散コサイン変換装置であって、上記複数の入力データのうち、上記順番が１つおきに離れた所定の入力データ・グループに含まれる入力データと上記複数のコサイン係数とをそれぞれ乗算し、コサイン係数積として出力する第１の乗算手段と、上記複数の入力データのうち、所定の入力データ・グループに含まれない残りの入力データと上記複数のコサイン係数とをそれぞれ乗算し、コサイン係数積として出力する第２の乗算手段とを有する。
【００２８】
本発明の第２の観点によれば、第１の乗算手段において、上記複数の入力データのうち、上記順番が１つおきに離れた所定の入力データ・グループに含まれる入力データと上記複数のコサイン係数とがそれぞれ乗算され、コサイン係数積として出力される。また、上記複数の入力データのうち、所定の入力データ・グループに含まれない残りの入力データと上記複数のコサイン係数とがそれぞれ乗算され、コサイン係数積として出力される。
所定の入力データ・グループに含まれる入力データと、残りの入力データとに対して、それぞれ並列にコサイン係数積を演算することができるため、個々の入力データを逐次処理することによって逆離散コサイン変換データが生成される場合に比べて、変換速度を高速化することが可能になる。
【００２９】
また、第１の乗算手段は、上記複数のコサイン係数のうち所定の係数グループに含まれるコサイン係数と、所定の入力データ・グループに含まれる入力データとを乗算し、第２の乗算手段は、上記複数のコサイン係数のうち所定の係数グループに含まれない残りのコサイン係数と、上記残りの入力データとを乗算しても良い。
これにより、第１の乗算手段および第２の乗算手段において、上記複数のコサイン係数の全てが乗算される場合に比べて、乗算手段の数が削減される。
【００３０】
また、本発明の第２の観点の逆離散コサイン変換装置は、第１の選択手段と、第２の選択手段と、積算手段とを有しても良い。
第１の選択手段では、生成すべき上記複数の逆離散コサイン変換のそれぞれに対して、第１の乗算手段から出力される複数の乗算結果の中から、乗算元の入力データの上記順番に応じた乗算結果が選択される。
第２の選択手段では、生成すべき上記複数の逆離散コサイン変換のそれぞれに対して、第２の乗算手段から出力される複数の乗算結果の中から、乗算元の入力データの上記順番に応じた乗算結果が選択される。
積算手段では、第１の選択手段において選択された乗算結果と、第２の選択手段において選択された乗算結果との和がそれぞれ積算されて、上記複数の逆離散コサイン変換データが生成される。
【００３１】
【発明の実施の形態】
＜第１の実施形態＞
図１は、本発明の第１の実施形態に係る離散コサイン変換装置の構成の一例を示すブロック図である。
図１に示す離散コサイン変換装置は、ラッチＦＦ１、ＦＦ２と、加算部１０と、減算部２０と、乗算部Ｍ０〜Ｍ７と、第１の選択部３１および第２の選択部３２と、積算部４０とを有する。
加算部１０は、本発明の加算手段の一実施形態である。
減算部２０は、本発明の減算手段の一実施形態である。
乗算部Ｍ０〜Ｍ３を含むユニットは、本発明の第１の乗算手段の一実施形態である。
乗算部Ｍ４〜Ｍ７を含むユニットは、本発明の第２の乗算手段の一実施形態である。
第１の選択部３１は、本発明の第１の選択手段の一実施形態である。
第２の選択部３２は、本発明の第２の選択手段の一実施形態である。
積算部４０は、本発明の積算手段の一実施形態である。
ラッチＦＦ１、ＦＦ２は、本発明のデータ保持手段の一実施形態である。
【００３２】
（ラッチＦＦ１、ＦＦ２）
ラッチＦＦ１およびＦＦ２は、図示しないクロック信号ＣＬＫに同期して、１対のデータを順次入力して保持し、保持したデータを加算部１０および減算部２０に出力する。
すなわち、式（１）に示すデータａｘを、
（ａ０，ａ７）、
（ａ１，ａ６）、
（ａ２，ａ５）、
（ａ３，ａ４）、
の組み合わせで順次入力し、加算部１０および減算部２０に出力する。
【００３３】
このデータの組み合わせは、データａ０，ａ１，…，ａ７の順にデータを並べた場合における先頭からの順番と末尾からの順番とが等しくなる組み合わせである。たとえば、データａ２は先頭のデータ（ａ０）から数えて３番目、データａ５は末尾のデータ（ａ７）から数えて３番目のデータであり、両者の順番は等しい。
【００３４】
（加算部１０、減算部２０）
加算部１０は、ラッチＦＦ１およびＦＦ２に保持された一対のデータを互いに加算する。
減算部２０は、ラッチＦＦ１およびＦＦ２に保持された一対のデータの一方から他方を減算する。たとえば、ラッチＦＦ１に保持されたデータからラッチＦＦ２に保持されたデータを減算する。
【００３５】
（乗算部Ｍ０〜Ｍ７）
乗算部Ｍ０〜Ｍ３は、加算部１０の加算結果Ｓ１０と、式（５）に示すコサイン係数Ｋ０、Ｋ２、Ｋ４、Ｋ６とを乗算し、その乗算結果Ｓ＿Ｋ０、Ｓ＿Ｋ２、Ｓ＿Ｋ４、Ｓ＿Ｋ６を第１の選択部３１に出力する。
乗算部Ｍ４〜Ｍ７は、減算部２０の減算結果Ｓ２０と、式（５）に示すコサイン係数Ｋ１、Ｋ３、Ｋ５、Ｋ７とを乗算し、その乗算結果Ｓ＿Ｋ１、Ｓ＿Ｋ３、ｓ＿Ｋ５、Ｓ＿Ｋ７を第２の選択部３２に出力する。
【００３６】
（第１の選択部３１、第２の選択部３２）
第１の選択部３１は、離散コサイン変換の結果として生成すべき離散コサイン変換データＡ０、Ａ２、Ａ４、Ａ６のそれぞれに対して、乗算部Ｍ０〜Ｍ３から出力される乗算結果Ｓ＿Ｋ０、Ｓ＿Ｋ２、Ｓ＿Ｋ４、Ｓ＿Ｋ６の中から、乗算元の入力データの順番に応じた乗算結果を選択し、その選択結果Ｓ＿ｕ０、Ｓ＿ｕ２、Ｓ＿ｕ４、Ｓ＿ｕ６を積算部４０に出力する。
【００３７】
ここでいう入力データの順番とは、離散コサイン変換の対象となる１次元データの配列順序を示し、式（１）における変数ｘの値に対応する。第１の選択部３１は、入力データの変数ｘの値に応じて、すなわち、乗算元の入力データの組が（ａ０，ａ７）、（ａ１，ａ６）、（ａ２，ａ５）、または（ａ３，ａ４）の何れであるかに応じて、乗算結果の選択を行う。
【００３８】
また第１の選択部３１は、選択する乗算結果に対して、乗算元の入力データの順番に応じた符号（正または負）を与える。すなわち、乗算元の入力データの組が（ａ０，ａ７）、（ａ１，ａ６）、（ａ２，ａ５）、または（ａ３，ａ４）の何れであるかに応じて、選択する乗算結果に正または負の符号を与える。
【００３９】
図２は、第１の選択部３１の構成の一例を示すブロック図である。
図２の例において、第１の選択部３１は、選択部３１１〜３１４と、符号設定部３１５〜３１８とを有する。
【００４０】
選択部３１１〜３１４は、乗算結果Ｓ＿Ｋ０、Ｓ＿Ｋ２、Ｓ＿Ｋ４、Ｓ＿Ｋ６の中から、それぞれ１つの乗算結果を選択する。何れの乗算結果を選択するかは、乗算元の入力データの組が（ａ０，ａ７）、（ａ１，ａ６）、（ａ２，ａ５）、または（ａ３，ａ４）の何れであるかに応じて決定する。
【００４１】
符号設定部３１５〜３１８は、選択部３１１〜３１４において選択された乗算結果に対して、正または負の符号を与える。たとえば、正の符号を与える場合には、入力されるデータをそのまま出力し、負の符号を与える場合には、入力されるデータを２の補数形式の負数に変換して出力する。
なお、正または負の何れに設定するかは、乗算元の入力データの組が（ａ０，ａ７）、（ａ１，ａ６）、（ａ２，ａ５）、または（ａ３，ａ４）の何れであるかに応じて決定する。
【００４２】
以上は、第１の選択部３１の説明であるが、第２の選択部３２においても同様な選択動作が行われる。
すなわち、選択部３２は、離散コサイン変換の結果として生成すべき離散コサイン変換データＡ１、Ａ３、Ａ５、Ａ７のそれぞれに対して、乗算部Ｍ４〜Ｍ７から出力される乗算結果Ｓ＿Ｋ１、Ｓ＿Ｋ３、Ｓ＿Ｋ５、Ｓ＿Ｋ７の中から、乗算元の入力データの順番に応じた乗算結果を選択し、当該順番に応じた正または負の符号を与えて、選択結果Ｓ＿ｕ１、Ｓ＿ｕ３、Ｓ＿ｕ５、Ｓ＿ｕ７として積算部４０に出力する。
第２の選択部３２についても、図２と同様な構成で実現可能である。
【００４３】
（積算部４０）
積算部４０は、第１の選択部３１および第２の選択部３２において選択された乗算結果をそれぞれ積算して、式（１）に示す離散コサイン変換データＡ０〜Ａ７を生成する。
【００４４】
図３は、積算部４０の構成の一例を示すブロック図である。
図３の例において、積算部４０は、加算部４０１〜４０８と、ラッチ４０９、４０１０〜４０１６とを有する。
加算部４０１，…，４０８は、ラッチ４０９，４０１０…，４０１６の保持データと、選択部の選択結果Ｓ＿ｕ０，…Ｓ＿ｕ７とを入力する。そして、入力したデータを互いに加算し、その加算結果をラッチ４０９，４０１０，…，４０１６へ出力する。
ラッチ４０９，４０１０，…，４０１６は、加算部４０１，…，４０８における加算結果を図示しないクロック信号ＣＬＫに同期して保持する。
【００４５】
積算が開始される前に、初期化信号ＣＬＲによってラッチ（４０９、４０１０〜４０１６）の保持データはゼロに初期化される。この状態で、選択部の選択結果（Ｓ＿ｕ０〜Ｓ＿ｕ７）が順次入力されると、加算部（４０１〜４０８）において、ラッチ（４０９、４０１０〜４０１６）に保持された累積値に選択結果（Ｓ＿ｕ０〜Ｓ＿ｕ７）が加算され、この加算結果が新たな累積値としてラッチ（４０９、４０１０〜４０１６）に保持される。結果として、ラッチ（４０９、４０１０〜４０１６）には、それぞれの選択結果（Ｓ＿ｕ０〜Ｓ＿ｕ７）を積算した値が保持される。この積算値が、離散コサイン変換データ（Ａ０〜Ａ７）として、ラッチ（４０９、４０１０〜４０１６）から出力される。
【００４６】
ここで、上述した構成を有する図１に示す離散コサイン変換装置の動作について、入力データの組み合わせと係数Ｋｎとの関係を示す表１および表２を参照しながら説明する。
以下に示す表１は、式（１）におけるコサイン係数
ｃｏｓ｛（２ｘ＋１）ｕπ／１６｝
の値と、変数ｘおよびｕとの関係を示す表である。この表において、コサイン係数の値は、式（５）で計算される係数Ｋｎに符号を付して示している。
【００４７】
【表１】
2004265346.tif 000006
【００４８】
また、以下に示す表２は、表１において、変数ｘの並びを上から順に、
０，７，１，６，２，５，３，４；
という順番に並べ替えたものである。
【００４９】
【表２】
2004265346.tif 000007
【００５０】
表２を見ると、
ｘ＝０，７の場合、
ｘ＝１，６の場合、
ｘ＝２，５の場合、
ｘ＝３，４の場合、
のそれぞれにおいて、変数ｕが同一値のとき、コサイン係数の絶対値が等しくなっている。
また、この場合、変数ｕが偶数のコサイン係数は、符号が互いに等しくなっており、変数ｕが奇数のコサイン係数は、符号が互いに異なっている。
さらに、変数ｕが偶数のコサイン係数の値は、絶対値が係数Ｋ０、Ｋ２、Ｋ４またはＫ６と等しく、変数ｕが奇数のコサイン係数の値は、絶対値が係数Ｋ１、Ｋ３、Ｋ５またはＫ７と等しい。
【００５１】
コサイン係数を乗ぜられた後のデータは、式（１）に示すように、最終的には積算されるため、上述した組み合わせのデータについては、コサイン係数の乗算前に加算または減算を行ってから積算しても、個々の乗算結果を合算する場合と同一の積算値を得ることができる。
【００５２】
そこで、図１に示す離散コサイン変換装置では、変数ｕが偶数の離散コサイン変換データＡ０、Ａ２、Ａ４、Ａ６を生成するために、まず加算部１０において、上述した組み合わせで入力されるデータの加算が行われる。
その加算結果Ｓ１０には、乗算部Ｍ０〜Ｍ３において、４種類の係数Ｋ０、Ｋ２、Ｋ４、Ｋ６が乗ぜられる。
第１の選択部３１では、入力データの組が、（ａ０，ａ７）、（ａ１，ａ６）、（ａ２，ａ５）、または（ａ３，ａ４）の何れであるかに応じて、これら４つの乗算結果のうちの１つが、生成すべき離散コサイン変換データＡ０、Ａ２、Ａ４、Ａ６のそれぞれに対して選択され、正または負の符号を与えられて出力される。
第１の選択部３１の選択結果Ｓ＿ｕ０、Ｓ＿ｕ２、Ｓ＿ｕ４、Ｓ＿ｕ６は、それぞれ積算部４０に入力され、離散コサイン変換データＡ０、Ａ２、Ａ４、Ａ６を生成するために積算される。
【００５３】
また、変数ｕが奇数の離散コサイン変換データＡ１、Ａ３、Ａ５、Ａ７を生成するために、まず減算部２０において、上述した組み合わせで入力されるデータの減算が行われる。
その減算結果Ｓ２０には、乗算部Ｍ４〜Ｍ７において、４種類の係数Ｋ１、Ｋ３、Ｋ５、Ｋ７が乗ぜられる。
第２の選択部３２では、入力データの組が、（ａ０，ａ７）、（ａ１，ａ６）、（ａ２，ａ５）、または（ａ３，ａ４）の何れであるかに応じて、これら４つの乗算結果のうちの１つが、生成すべき離散コサイン変換データＡ１、Ａ３、Ａ５、Ａ７のそれぞれに対して選択され、正または負の符号を与えられて出力される。
第２の選択部３２の選択結果Ｓ＿ｕ１、Ｓ＿ｕ３、Ｓ＿ｕ５、Ｓ＿ｕ７は、それぞれ積算部４０に入力され、離散コサイン変換データＡ１、Ａ３、Ａ５、Ａ７を生成するために積算される。
【００５４】
図４は、図１に示す離散コサイン変換装置の動作を示すタイミング図である。図４（Ａ）はクロック信号ＣＬＫを、図４（Ｂ）および図４（Ｄ）はラッチＦＦ１の入力データおよび保持データを、図４（Ｃ）および図４（Ｅ）はラッチＦＦ２の入力データおよび保持データを、図４（Ｆ）は積算部４０における積算結果を示す。
【００５５】
図４におけるデータＤ００，Ｄ０１，…，Ｄ０７は、式（１）におけるデータａ０，ａ１，…ａ７にそれぞれ対応する。離散コサイン変換装置には、これらのデータが上述した組み合わせ、すなわち（Ｄ００，Ｄ０７）、（Ｄ０１，Ｄ０６）、（Ｄ０２，Ｄ０５）、（Ｄ０３，Ｄ０４）の組み合わせで入力される。
入力されるデータ（図４（Ｂ）および図４（Ｃ））は、クロック信号ＣＬＫ（図４（Ａ））に同期して、ラッチＦＦ１およびＦＦ２に順次保持される（図４（Ｄ）および図４（Ｅ））。１組のデータがラッチＦＦ１およびＦＦ２に保持される１クロックサイクルにおいて、乗算部Ｍ０〜Ｍ７における係数の乗算、第１の選択部３１および第２の選択部３２におけるデータの選択と符号の設定、積算部４０における累積値との加算が完了し、次のクロックサイクルの始まりにおいて、積算部４０の積算結果が更新される（図４（Ｆ））。最後の入力データ（Ｄ０３，Ｄ０４）に応じて積算部４０の積算結果が更新される時点で、離散コサイン変換の変換結果が確定する。
【００５６】
以上説明したように、図１に示す離散コサイン変換装置によれば、離散コサイン変換対象となる８のデータが２つずつ処理されて離散コサイン変換データの生成が行われるため、１つずつデータが処理される図９に示す離散コサイン変換装置に比べて、変換速度を高速化することができる。
図４および図１０のタイミング図を比較して分かるように、図９に示す離散コサイン変換装置では、ラッチＦＦ１０に入力データが保持されてから変換結果Ｄｏｕｔが確定するまでに９クロックサイクルを要するのに対して、図１に示す離散コサイン変換装置では５クロックサイクルで変換結果が確定する。すなわち、変換速度を約２倍に高速化することができる。
【００５７】
また、変換速度を同等にして両者を比較すると、図１に示す離散コサイン変換装置ではクロック周波数を下げたり電源電圧を低くしたりすることが可能なため、消費電力を大幅に削減することができる。
【００５８】
また、図１に示す離散コサイン変換装置では、図９に示す離散コサイン変換装置に対して、入力データのラッチや、加算部１０、減算部２０の回路が追加されるのみである。
さらに、図９における選択部１０１と図１における選択部３１、３２とを比較すると、前者では８つの出力においてそれぞれ８対１の選択が行われるのに対し、後者では８つの出力においてそれぞれ４対１の選択が行われる。すなわち、図１に示す離散コサイン変換装置では、選択部における選択対象のデータ数が少なくなり、回路を削減できる。
以上のことから、図１に示す離散コサイン変換装置によれば、回路面積の増大を抑えながら、変換速度を高速化することができる。
【００５９】
＜第２の実施形態＞
図５は、本発明の第２の実施形態に係る逆離散コサイン変換装置の構成の一例を示すブロック図である。
図５に示す逆離散コサイン変換装置は、ラッチＦＦ３、ＦＦ４と、乗算部Ｍ８〜Ｍ１５と、第１の選択部３３と、第２の選択部３４と、積算部４１とを有する。
乗算部Ｍ８〜Ｍ１１を含むユニットは、本発明の第１の乗算手段の一実施形態である。
乗算部Ｍ１２〜Ｍ１５を含むユニットは、本発明の第２の乗算手段の一実施形態である。
第１の選択部３３は、本発明の第１の選択手段の一実施形態である。
第２の選択部３４は、本発明の第２の選択手段の一実施形態である。
積算部４１は、本発明の積算手段の一実施形態である。
ラッチＦＦ３は、本発明の第１のデータ保持手段の一実施形態である。
ラッチＦＦ４は、本発明の第２のデータ保持手段の一実施形態である。
【００６０】
（ラッチＦＦ３、ＦＦ４）
ラッチＦＦ３は、クロック信号ＣＬＫに同期して、離散コサイン変換データＡ０，Ａ２，Ａ４，Ａ６を順次入力して保持し、保持したデータを乗算部Ｍ８〜Ｍ１１に出力する。
ラッチＦＦ４は、クロック信号ＣＬＫに同期して、離散コサイン変換データＡ１，Ａ３，Ａ５，Ａ７を順次入力して保持し、保持したデータを乗算部Ｍ１２〜Ｍ１５に出力する。
すなわち、ラッチＦＦ３は、式（３）における変数ｕが偶数のデータを入力し、ラッチＦＦ４は変数ｕが奇数のデータを入力する。
【００６１】
（乗算部Ｍ８〜Ｍ１５）
乗算部Ｍ８〜Ｍ１１は、ラッチＦＦ３に保持された離散コサイン変換データとコサイン係数Ｋ０、Ｋ２、Ｋ４、Ｋ６とを乗算し、その乗算結果Ｓ＿Ｋ０、Ｓ＿Ｋ２、Ｓ＿Ｋ４、Ｓ＿Ｋ６を第１の選択部３３に出力する。
乗算部Ｍ１２〜Ｍ１５は、ラッチＦＦ４に保持された離散コサイン変換データとコサイン係数Ｋ１、Ｋ３、Ｋ５、Ｋ７とを乗算し、その乗算結果Ｓ＿Ｋ１、Ｓ＿Ｋ３、ｓ＿Ｋ５、Ｓ＿Ｋ７を第２の選択部３４に出力する。
【００６２】
（第１の選択部３３、第２の選択部３４）
第１の選択部３３は、逆離散コサイン変換の結果として生成すべきデータａ０〜ａ７のそれぞれに対して、乗算部Ｍ８〜Ｍ１１から出力される乗算結果Ｓ＿Ｋ０、Ｓ＿Ｋ２、Ｓ＿Ｋ４、Ｓ＿Ｋ６の中から、乗算元の入力データの順番に応じた乗算結果を選択し、その選択結果Ｓｅ＿ｘ０〜Ｓｅ＿ｘ７を積算部４１に出力する。すなわち、乗算元の入力データが離散コサイン変換データＡ０、Ａ２、Ａ４、Ａ６の何れであるかに応じて、乗算結果の選択を行う。
また、選択する乗算結果に対して、乗算元の入力データの順番に応じた符号（正または負）を与える。すなわち、乗算元の入力データが離散コサイン変換データＡ０、Ａ２、Ａ４、Ａ６の何れであるかに応じて、選択する乗算結果に正または負の符号を与える。
【００６３】
図６は、第１の選択部３３の構成の一例を示すブロック図である。
図６の例において、第１の選択部３３は、選択部３３１〜３３８と、符号設定部３３９，３３１０〜３３１６とを有する。
【００６４】
選択部３３１〜３３８は、乗算結果Ｓ＿Ｋ０、Ｓ＿Ｋ２、Ｓ＿Ｋ４、Ｓ＿Ｋ６の中から、それぞれ１つの乗算結果を選択する。何れの乗算結果を選択するかは、乗算元の入力データが離散コサイン変換データＡ０、Ａ２、Ａ４、Ａ６の何れであるかに応じて決定する。
【００６５】
符号設定部３３９，３３１０〜３３１６は、選択部３３１〜３３８において選択された乗算結果に対して、正または負の符号を与える。たとえば、正の符号を与える場合には、入力されるデータをそのまま出力し、負の符号を与える場合には、入力されるデータを２の補数形式の負数に変換して出力する。
なお、正または負の何れに設定するかは、乗算元の入力データが離散コサイン変換データＡ０、Ａ２、Ａ４、Ａ６の何れであるかに応じて決定する。
【００６６】
以上は、第１の選択部３３の説明であるが、第２の選択部３４においても同様な選択動作が行われる。
すなわち、第２の選択部３４は、逆離散コサイン変換の結果として生成すべきデータａ０〜ａ７のそれぞれに対して、乗算部Ｍ１２〜Ｍ１５から出力される乗算結果Ｓ＿Ｋ１、Ｓ＿Ｋ３、Ｓ＿Ｋ５、Ｓ＿Ｋ７の中から、乗算元の入力データの順番に応じた乗算結果を選択し、その選択結果Ｓｏ＿ｘ０〜Ｓｏ＿ｘ７を積算部４１に出力する。また、選択する乗算結果に対して、乗算元の入力データの順番に応じた符号（正または負）を与える。
第２の選択部３４についても、図６と同様な構成で実現可能である。
【００６７】
（積算部４１）
積算部４１は、第１の選択部３３において選択された乗算結果Ｓｅ＿ｘ０〜Ｓｅ＿ｘ７と、第２の選択部３４において選択された乗算結果Ｓｏ＿ｘ０〜Ｓｏ＿ｘ７との和をそれぞれ積算して、式（３）に示す逆離散コサイン変換データａ０〜ａ７を生成する。
【００６８】
図７は、積算部４１の構成の一例を示すブロック図である。
図７の例において、積算部４１は、加算部４１１〜４１９，４１１０〜４１１６と、ラッチ４１１７〜４１２４とを有する。
加算部４１１，…，４１８は、第１の選択部３３において選択されたＳｅ＿ｘ０，…，Ｓｅ＿ｘ７と、第２の選択部３４において選択された乗算結果Ｓｏ＿ｘ０，…，Ｓｏ＿ｘ７とを入力し、入力した２つのデータを加算する。
加算部４１９，４１１０，…，４１１６は、加算部４１１，…，４１８の加算結果と、ラッチ４１１７，…，４１２４の保持データとを入力する。そして、入力したデータを互いに加算し、その加算結果をラッチ４１１７，…，４１２４へ出力する。
ラッチ４１１７，…，４１２４は、加算部４１９，４１１０，…，４１１６における加算結果を図示しないクロック信号ＣＬＫに同期して保持する。
【００６９】
積算が開始される前に、初期化信号ＣＬＲによってラッチ（４１１７〜４１２４）の保持データはゼロに初期化される。この状態で、選択結果（Ｓｅ＿ｘ０〜Ｓｅ＿ｘ７、Ｓｏ＿ｘ０〜Ｓｏ＿ｘ７）が順次入力されると、前段の加算部（４１１〜４１８）において、選択結果Ｓｅ＿ｘｎとＳｏ＿ｘｎ（ｎ＝０，…，７）とが加算され、この加算結果が次段の加算部（４１９、４１１０〜４１１６）に出力される。次段の加算部（４１９、４１１０〜４１１６）において、前段の加算部（４１１〜４１８）の加算結果とラッチ（４１１７〜４１２４）の保持データとが加算され、この加算結果が新たな累積値としてラッチ（４１１７〜４１２４）に保持される。結果として、ラッチ（４１１７〜４１２４）には、第１の選択部３３の選択結果Ｓｅ＿ｘｎと第２の選択部３４の選択結果Ｓｏ＿ｘｎとの和を積算した値が保持される。この積算値が、逆離散コサイン変換データ（ａ０〜ａ７）として、ラッチ（４１１７〜４１２４）から出力される。
【００７０】
ここで、上述した構成を有する図５に示す逆離散コサイン変換装置の動作について、入力データと係数Ｋｎとの関係を示す表３〜表５を参照しながら説明する。
表３は、式（３）におけるコサイン係数
ｃｏｓ｛（２ｘ＋１）ｕπ／１６｝
の値と、変数ｕおよびｘとの関係を示す表である。この表において、コサイン係数の値は、式（５）で計算される係数Ｋｎに符号を付して示している。
【００７１】
【表３】
2004265346.tif 000008
【００７２】
この表３を基にして、図９に示す逆離散コサイン変換装置の乗算部（Ｍ１０〜Ｍ１７）の使用状況を示した表が、表４である。表中の丸印は、離散コサイン変換データＡｕと係数Ｋｎとの乗算結果が、選択部１０１において選択され、積算部１０２において積算されることを示している。
【００７３】
【表４】
2004265346.tif 000009
【００７４】
表４を見ると、ある１つの離散コサイン変換データＡｕが図９に示す逆離散コサイン変換装置において処理される場合、未使用の乗算部が多く存在することが分かる。たとえば変数ｕ＝２の離散コサイン変換データＡ２が入力された場合、係数Ｋ０、Ｋ１、Ｋ３〜Ｋ５、Ｋ７の乗算部が未使用になる。このように、図９に示す逆離散コサイン変換装置においては、乗算部が効率良く使用されていない。
【００７５】
表３において、離散コサイン変換データＡｕと、これに乗ぜられる係数Ｋｎとの関係をまとめると、次のようになる。
【００７６】
Ａ０                    …  Ｋ０；
Ａ４                    …  Ｋ４；
Ａ２，Ａ６              …  Ｋ２，Ｋ６；
Ａ１，Ａ３，Ａ５，Ａ７  …  Ｋ１，Ｋ３，Ｋ５，Ｋ７；
【００７７】
このように、変数ｕが偶数の場合、変数ｎが偶数である係数Ｋｎの乗算部が使用され、変数ｕが奇数の場合は、変数ｎが奇数である係数Ｋｎの乗算部が使用される。
【００７８】
そこで、図５に示す逆離散コサイン変換装置では、変数ｕが偶数の離散コサイン変換データＡ０、Ａ２、Ａ４、Ａ６と、変数ｕが奇数の離散コサイン変換Ａ１，Ａ３，Ａ５，Ａ７とが、それぞれ並列に入力されて処理される。
【００７９】
すなわち、ラッチＦＦ３には、離散コサイン変換データＡ０、Ａ２、Ａ４、Ａ６が順次入力されて保持される。
ラッチＦＦ３に保持されたデータには、乗算部Ｍ８〜Ｍ１１において係数Ｋ０、Ｋ２、Ｋ４、Ｋ６が乗ぜられる。
第１の選択部３３では、乗算元の入力データが離散コサイン変換データＡ０、Ａ２、Ａ４、Ａ６の何れであるかに応じて、これら４つの乗算結果のうちの１つが、生成すべき逆離散コサイン変換データａ０〜ａ７のそれぞれに対して選択され、正または負の符号を与えられて出力される。
【００８０】
ラッチＦＦ４には、離散コサイン変換Ａ１，Ａ３，Ａ５，Ａ７が順次入力されて保持される。
ラッチＦＦ４に保持されたデータには、乗算部Ｍ１２〜Ｍ１５において係数Ｋ１、Ｋ３、Ｋ５、Ｋ７が乗ぜられる。
第２の選択部３４では、乗算元の入力データが離散コサイン変換データＡ１、Ａ３、Ａ５、Ａ７の何れであるかに応じて、これら４つの乗算結果のうちの１つが、生成すべき逆離散コサイン変換データａ０〜ａ７のそれぞれに対して選択され、正または負の符号を与えられて出力される。
【００８１】
第１の選択部３３から出力される選択結果Ｓｅ＿ｘ０〜Ｓｅ＿ｘ７と、第２の選択部３４から出力される選択結果Ｓｏ＿ｘ０〜Ｓｏ＿ｘ７は、積算部４１において互いに加算される。すなわち、共通の逆離散コサイン変換データに対して選択された選択結果どうし（Ｓｅ＿ｘｎおよびＳｏ＿ｘｎ）が互いに加算される。そして、この加算結果が、逆離散コサイン変換データａ０〜ａ７を生成するためにそれぞれ積算される。
【００８２】
表５は、図５に示す逆離散コサイン変換装置における乗算部（Ｍ８〜Ｍ１５）の使用状況の一例を示す。表５に示す例では、ラッチＦＦ３およびＦＦ４に対し、（Ａ０，Ａ１）、（Ａ２，Ａ３）、（Ａ４，Ａ５）、（Ａ６，Ａ７）の組み合わせで離散コサイン変換データが入力される。なお、表中の数値は、離散コサイン変換データＡｕの変数ｕの値を示す。
表４と表５を比較して分かるように、図５に示す逆離散コサイン変換装置では、未使用の乗算部が少なくなり、乗算部の使用効率が向上する。
【００８３】
【表５】
2004265346.tif 000010
【００８４】
図８は、図５に示す逆離散コサイン変換装置の動作を示すタイミング図である。
図８（Ａ）はクロック信号ＣＬＫを、図８（Ｂ）および図８（Ｄ）はラッチＦＦ３の入力データおよび保持データを、図８（Ｃ）および図４（Ｅ）はラッチＦＦ４の入力データおよび保持データを、図８（Ｆ）は積算部４１における積算結果を示す。
【００８５】
図８におけるデータＤ００，Ｄ０１，…，Ｄ０７は、式（３）における離散コサイン変換データＡ０，Ａ１，…Ａ７にそれぞれ対応する。逆離散コサイン変換装置には、変数ｕが偶数の離散コサイン変換データＡ０、Ａ２、Ａ４、Ａ６と、変数ｕが奇数の離散コサイン変換データＡ１、Ａ３、Ａ５、Ａ７とが、並列に入力される。図８の例では、（Ｄ００，Ｄ０１）、（Ｄ０２，Ｄ０３）、（Ｄ０４，Ｄ０５）、（Ｄ０６，Ｄ０７）の組み合わせで並列に入力される。
入力されるデータ（図８（Ｂ）および図８（Ｃ））は、クロック信号ＣＬＫ（図８（Ａ））に同期して、ラッチＦＦ３およびＦＦ４に順次保持される（図８（Ｄ）および図８（Ｅ））。１組のデータがラッチＦＦ３およびＦＦ４に保持される１クロックサイクルにおいて、乗算部Ｍ８〜Ｍ１５における係数の乗算、第１の選択部３３および第２の選択部３４におけるデータの選択と符号の設定、積算部４１における累積値との加算が完了し、次のクロックサイクルの始まりにおいて、積算部４１の積算結果が更新される（図８（Ｆ））。最後の入力データ（Ｄ０６，Ｄ０７）に応じて積算部４１の積算結果が更新される時点で、逆離散コサイン変換の変換結果が確定する。
【００８６】
以上説明したように、図５に示す逆離散コサイン変換装置によれば、逆離散コサイン変換対象となる８のデータのうち、変数ｕが偶数の離散コサイン変換データＡ０、Ａ２、Ａ４、Ａ６と、変数ｕが奇数の離散コサイン変換データＡ１、Ａ３、Ａ５、Ａ７とが並列に処理されて逆離散コサイン変換データの生成が行われるため、１づつデータが処理される図９に示す逆離散コサイン変換装置に比べて、変換速度を高速化することができる。
図８および図１０のタイミング図を比較して分かるように、図９に示す逆離散コサイン変換装置では、ラッチＦＦ１０に入力データが保持されてから変換結果Ｄｏｕｔが確定するまでに９クロックサイクルを要するのに対して、図５に示す逆離散コサイン変換装置では５クロックサイクルで変換結果が確定する。すなわち、変換速度を約２倍に高速化することができる。
【００８７】
また、変換速度を同等にして両者を比較すると、図５に示す逆離散コサイン変換装置ではクロック周波数を下げたり電源電圧を低くしたりすることが可能なため、消費電力を大幅に削減することができる。
【００８８】
また、図５に示す逆離散コサイン変換装置では、図９に示す逆離散コサイン変換装置に対して、入力データのラッチが追加されるのみである。
さらに、図９における選択部１０１と図１における選択部３３、３４とを比較すると、前者では８つの出力においてそれぞれ８対１の選択が行われるのに対し、後者では１６つの出力においてそれぞれ４対１の選択が行われる。すなわち、図５に示す逆離散コサイン変換装置では、選択部の出力数が２倍に増えるものの、各出力に対する選択対象のデータ数は半分になる。
以上のことから、図５に示す逆離散コサイン変換装置によれば、回路面積の増大を抑えながら、変換速度を高速化することができる。
【００８９】
なお、上述した実施形態は、本発明を説明するために与えた一例に過ぎず、本発明はこれに限定されるものではない。
【００９０】
たとえば、図１に示す離散コサイン変換装置では、８点の１次元離散コサイン変換を行う装置の例が示されているが、変換対象のデータ数は任意の偶数に設定可能である。本方式を使って奇数点の入力データを処理する場合、たとえば、最終データに０を加えて偶数点に拡張する処理を設けることにより、正しい結果を得ることができる。
【００９１】
一般に、データ数Ｎの離散コサイン変換は次式で表される。
【００９２】
【数４】
2004265346.tif 000011
【００９３】
式（６）において、先頭データａ０から（ｊ＋１）番目のデータａｊに対し乗ぜられるコサイン係数ＣＫ（ｊ）は、次式のように表される。
【００９４】
【数５】
2004265346.tif 000012
【００９５】
式（６）において、末尾データａ（Ｎ−１）から（ｊ＋１）番目のデータａ（Ｎ−１−ｊ）に対し乗ぜられるコサイン係数ＣＫ（Ｎ−１−ｊ）は、次式のように表される。
【００９６】
【数６】
2004265346.tif 000013
【００９７】
式（９）から分かるように、所定の順番を有した、離散コサイン変換の対象となるＮ個のデータａ０，…，ａ（Ｎ−１）のうち、先頭からの順番と末尾からの順番とが等しい一対のデータに対しては、離散コサイン変換の過程において、絶対値の等しいコサイン係数が乗ぜられる。
したがって、Ｎ点の離散コサイン変換装置においても、図１に示す離散コサイン変換と同様に、先頭からの順番と末尾からの順番とが等しい一対の入力データを互いに加算する加算部と、この一対の入力データの一方から他方を減算する減算部と、加算部の加算結果および減算部の減算結果にそれぞれ所定のコサイン係数を乗算する乗算部とを設けて、入力データを２つずつ処理することができるため、変換処理の高速化を図ることが可能である。
【００９８】
また、図５に示す逆離散コサイン変換装置では、８点の１次元逆離散コサイン変換を行う装置の例が示されているが、この場合においても、変換対象のデータ数は任意の偶数に設定可能である。本方式を使って奇数点の入力データを処理する場合、たとえば、最終データに０を加えて偶数点に拡張する処理を設けることにより、正しい結果を得ることができる。
【００９９】
一般に、データ数Ｎの逆離散コサイン変換は次式で表される。
【０１００】
【数７】
2004265346.tif 000014
【０１０１】
式（１０）においてコサイン係数
ｃｏｓ｛（２ｘ＋１）ｕπ／１６｝
の絶対値は、余弦関数の性質から、Ｎ種類の値を持つ。すなわち、０からＮ−１までの整数ｋを
ｃｏｓ｛ｋ×（π／２Ｎ）｝
に代入して得られるＮ種類の値を持つ。
【０１０２】
変数ｕが奇数とすると、積（２ｘ＋１）ｕの値は、奇数と奇数との積になるため、奇数となる。したがって、コサイン係数
ｃｏｓ｛（２ｘ＋１）ｕπ／１６｝
の位相は、定数（π／１６）の奇数倍となる。
【０１０３】
一方、変数ｕが偶数とすると、積（２ｘ＋１）ｕの値は、奇数と偶数との積になるため、偶数となる。したがって、コサイン係数
ｃｏｓ｛（２ｘ＋１）ｕπ／１６｝
の位相は、定数（π／１６）の偶数倍となる。
【０１０４】
このことから、変数ｕが奇数の場合、コサイン係数の絶対値は、
ｃｏｓ｛ｋ×（π／２Ｎ）｝
において整数ｋに奇数を代入して得られる値を有する。
また、変数ｕが偶数の場合、コサイン係数の絶対値は、
ｃｏｓ｛ｋ×（π／２Ｎ）｝
において整数ｋに偶数を代入して得られる値を有する。
【０１０５】
したがって、Ｎ点の逆離散コサイン変換装置においても、図５に示す逆離散コサイン変換と同様に、入力データＡｕ（ｕ＝０，…，Ｎ−１）のうち変数ｕが偶数のグループに含まれる入力データに所定のコサイン係数を乗じる乗算部と、変数ｕが奇数のグループに含まれる入力データに所定のコサイン係数を乗じる乗算部とを設けて、これら２つのグループの入力データを並列に処理することができるため、変換処理の高速化を図ることが可能である。
【０１０６】
また、図７に示す積算部では、第１の選択部３３および第２の選択部３４の出力を加算した結果に対して積算が行われているが、たとえば、第１の選択部３３および第２の選択部３４の出力をそれぞれ積算した後で、その積算結果を加算することにより、逆離散コサイン変換データを生成しても良い。
【０１０７】
【発明の効果】
本発明の離散コサイン変換装置および逆離散コサイン変換装置によれば、消費電力の増大を抑えながら、演算速度を高速化することができる。また、演算速度の低下を抑えながら、消費電力の削減を図ることができる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態に係る離散コサイン変換装置の構成の一例を示すブロック図である。
【図２】図１に示す離散コサイン変換装置における、第１の選択部の構成の一例を示すブロック図である。
【図３】図１に示す離散コサイン変換装置における、積算部の構成の一例を示すブロック図である。
【図４】図１に示す離散コサイン変換装置の動作を示すタイミング図である。
【図５】本発明の第２の実施形態に係る逆離散コサイン変換装置の構成の一例を示すブロック図である。
【図６】図５に示す逆離散コサイン変換装置における、第１の選択部の構成の一例を示すブロック図である。
【図７】図５に示す逆離散コサイン変換装置における、積算部の構成の一例を示すブロック図である。
【図８】図５に示す逆離散コサイン変換装置の動作を示すタイミング図である。
【図９】一般的な１次元の離散コサイン変換／逆離散コサイン変換装置の構成の一例を示すブロック図である。
【図１０】図９に示す離散コサイン変換／逆離散コサイン変換装置の動作を示すタイミング図である。
【符号の説明】
ＦＦ１〜ＦＦ４…ラッチ、Ｍ０〜Ｍ１５…乗算部、１０…加算部、２０…減算部、３１，３３…第１の選択部、３２，３４…第２の選択部、４０，４１…積算部
【図１】
2004265346.tif 000015
【図２】
2004265346.tif 000016
【図３】
2004265346.tif 000017
【図４】
2004265346.tif 000018
【図５】
2004265346.tif 000019
【図６】
2004265346.tif 000020
【図７】
2004265346.tif 000021
【図８】
2004265346.tif 000022
【図９】
2004265346.tif 000023
【図１０】
2004265346.tif 000024