(57)【要約】静止画／動画符号化処理における基幹処理である直交変換に関し、１つの直交変換手段で変換基底の異なる複数の直交変換の処理を実現し、新規符号化規格処理への対応を実現する。一部の入力信号に２点の積和演算を行う２点基本演算部を有する第１バタフライ演算部（１００）と、残りの入力信号に４点の積和演算を行う４点基本演算部を有する第２バタフライ演算部（１０１）と、後者の後段で２点の積和演算を行う２点基本演算部を有する第３バタフライ演算部（１０２）と、第１、３バタフライ演算部（１００、１０２）等の後段に各々ある第１及び第２の遅延部（２０３、２０２）等と、第１、２の選択部（３０３、３０２）等で選択されたデータに２点の積和演算を行う２点基本演算部を有する第４バタフライ演算部（１０３）と、変換係数供給部（４０１）とを備え、前記４点基本演算部が行う積和演算が切り替えられる直交変換装置。
2009095959.tif 000002
【特許請求の範囲】
【請求項１】
複数点の入力信号に対して直交変換を行う直交変換装置であって、
前記複数点の入力信号のうちの一部の入力信号に対して、２点の積和演算を行う２点基本演算部を有する第１のバタフライ演算手段と、
前記複数点の入力信号のうちの残りの入力信号に対して、４点の積和演算を行う４点基本演算部を有する第２のバタフライ演算手段と、
前記第２のバタフライ演算手段での演算結果に対して、２点の積和演算を行う２点基本演算部を有する第３のバタフライ演算手段と、
前記第１のバタフライ演算手段での演算結果を保持する第１の遅延手段と、
前記第１のバタフライ演算手段での演算結果及び前記第１の遅延手段に保持された演算結果からデータを選択する第１の選択手段と、
前記第３のバタフライ演算手段での演算結果を保持する第２の遅延手段と、
前記第３のバタフライ演算手段での演算結果及び前記第２の遅延手段に保持された演算結果からデータを選択する第２の選択手段と、
前記第１の選択手段で選択されたデータ及び前記第２の選択手段で選択されたデータに対して、２点の積和演算を行う２点基本演算部を有する第４のバタフライ演算手段と、
前記第１〜４のバタフライ演算手段での積和演算に用いられる変換係数を前記第１〜４のバタフライ演算手段に供給する変換係数供給手段とを備え、
前記第２のバタフライ演算手段は、当該第２のバタフライ演算手段の前記４点基本演算部が行う積和演算を、前記第１〜４のバタフライ演算手段が複数種類の直交変換を行うための、所定の３点演算および２点演算の間で切り替える
ことを特徴とする直交変換装置。
【請求項２】
前記直交変換装置はさらに、
前記複数点の入力信号のうちの残りの入力信号を保持する第３の遅延手段と、
前記複数点の入力信号のうちの残りの入力信号及び前記第３の遅延手段に保持された入力信号からデータを選択する第３の選択手段とを備え、
前記第２のバタフライ演算手段は、前記第３の選択手段で選択されたデータに対して前記積和演算を行う
ことを特徴とする請求項１記載の直交変換装置。
【請求項３】
前記直交変換装置はさらに、
前記複数点の入力信号のうちの残りの入力信号に対して、４点の積和演算を行う４点基本演算部を有する第５のバタフライ演算手段と、
前記第２及び第５のバタフライ演算手段での演算結果からデータを選択する第４の選択手段とを備え、
前記第３のバタフライ演算手段は、前記第４の選択手段で選択されたデータに対して前記積和演算を行い、
前記変換係数供給手段は、前記第５のバタフライ演算手段での積和演算に用いられる変換係数を前記第５のバタフライ演算手段に供給する
ことを特徴とする請求項１記載の直交変換装置。
【請求項４】
前記第１〜４のバタフライ演算手段は、Ｃｈｅｎの高速アルゴリズムに基づく直交変換のための積和演算を行う
ことを特徴とする請求項１記載の直交変換装置。
【請求項５】
前記変換係数供給手段は、前記第１〜４のバタフライ演算手段で繰り返される積和演算の毎処理単位で、前記第１〜４のバタフライ演算手段に供給する変換係数を変更する
ことを特徴とする請求項１記載の直交変換装置。
【請求項６】
前記第１〜４のバタフライ演算手段は、積和演算の対象となる入力信号又は変換係数が０であった場合に、当該入力信号及び変換係数を乗算することに代えて、出力結果として選択した０を出力する
ことを特徴とする請求項１記載の直交変換装置。
【請求項７】
前記第１〜４のバタフライ演算手段は、積和演算の対象となる入力信号又は変換係数が０であった場合に、当該入力信号及び変換係数を乗算すること、及び、前記乗算に代えて出力結果として選択した０を出力することを選択的に行う
ことを特徴とする請求項１記載の直交変換装置。
【請求項８】
前記第２のバタフライ演算手段は、４点の入力信号のうちの２点の入力信号に対して、変換係数を０とする乗算を行うこと、又は、乗算に代えて演算結果として０を選択することにより、２点基本演算部として機能する
ことを特徴とする請求項１記載の直交変換装置。
【請求項９】
前記第１のバタフライ演算手段は、４点の高速直交変換を行う
ことを特徴とする請求項１記載の直交変換装置。
【請求項１０】
前記第１〜４のバタフライ演算手段は、積和演算に用いられる変換係数が２のべき乗であった場合に、ビットシフタとして動作する
ことを特徴とする請求項１記載の直交変換装置。
【請求項１１】
前記直交変換装置はさらに、当該直交変換装置の入力と出力とを入れ換えることで、当該直交変換装置に正直交変換及び逆直交変換を選択的に行わせる制御手段を備える
ことを特徴とする請求項１記載の直交変換装置。
【請求項１２】
複数点の入力信号に対して直交変換を行う集積回路であって、
請求項１記載の手段として機能する回路を備える
ことを特徴とする集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は動画像符号化などの画像符号化に関するものである。特に、画像符号／復号化処理における基幹処理である直交変換を行う直交変換装置、集積回路に関するものである。
【背景技術】
【０００２】
従来、画像符号／復号化処理における基幹処理である直交変換を行う直交変換装置がある。【０００３】
現行の動画圧縮/伸張は、動画符号化規格としてＭＰＥＧ１，ＭＰＥＧ２，ＭＰＥＧ４，Ｈ．２６４／ＡＶＣ，ＶＣ−１等のＭＰＥＧ(Moving picture expert group)が存在し、画像の大きさや利用媒体などの違いによって、それぞれに対応できるように規格で定められている。例えば、ＭＰＥＧ１、ＭＰＥＧ２であればＤＶＤ等の比較的画像サイズの大きな媒体に対して使用され、ＭＰＥＧ４やＨ．２６４／ＡＶＣの一方式では携帯電話や１ｓｅｇ等の比較的画像サイズの小さい媒体に対して使用され、Ｈ．２６４／ＡＶＣ，ＶＣ−１ではＨＤＴＶ等の画像サイズが非常に大きい媒体に対して使用される。【０００４】
動画符号化を行う場合は、動画像をマクロブロック（ＭＢ）と呼ばれる処理単位に分割し処理を行う。ＭＢは輝度成分と色差成分とで構成されており、輝度成分はＹ０、Ｙ１、Ｙ２、Ｙ３の４個で成り、また色差成分はＣｂ，Ｃｒの２個で成っている。各Ｙ、Ｃ成分は８×８のブロックの６４個の画素成分で構成されている。【０００５】
ＭＰＥＧ１，ＭＰＥＧ２，ＭＰＥＧ４，Ｈ．２６４／ＡＶＣ，ＶＣ−１に共通する処理として直交変換処理がある。直交変換処理はＹ０，Ｙ１，Ｙ２，Ｙ３，Ｃｂ，Ｃｒ成分毎に行われる処理であり、空間成分である動画像信号を周波数成分に変換する技術である。直交変換処理を行うことによって、自然画像などは周波数成分に変換した際にデータの偏りが発生し、可変長符号化等でのデータ圧縮に有効に作用する。また、この直交変換の技術は動画像の符号化以外にも音声圧縮や信号処理に用いられる基幹処理である。【０００６】
直交変換処理は、上記で示した符号化規格ごとに異なる。まず、ＭＰＥＧ１，ＭＰＥＧ２，ＭＰＥＧ４ではＤＣＴ（離散コサイン変換）を用いる。また、Ｈ．２６４／ＡＶＣやＶＣ−１といった新規の符号化規格では、アダマール変換や整数精度直交変換を用いる。なお、ＤＣＴは、最も一般的な直交変換の一つであり、変換基底が小数精度を含むため変換前と変換後に誤差を生じる非可逆変換であるのに対して、Ｈ．２６４／ＡＶＣやＶＣ−１で行う直交変換は、変換基底が整数であるため変換前後での誤差が生じない特徴を有している。【０００７】
図１〜８は従来技術を示す図である。【０００８】
図１、２は、直交変換の変換行列を示す図である。図１の変換行列は、Ｈ．２６４／ＡＶＣにおける整数精度直交変換の変換行列である。また、図２の変換行列は、ＶＣ−１における整数精度直交変換の変換行列である。なお、後者の図２の変換行列は、Ｈ．２６４／ＡＶＣ規格の規格書に記載されている式を元に行列表現したものである。【０００９】
図３、図４は、４×４の変換行列を示す図である。【００１０】
Ｈ．２６４／ＡＶＣやＶＣ−１においては、８×８単位での直交変換に加えて、復号後の画像の誤差を低減するために、４×４単位での直交変換も行う。図３の変換行列は、Ｈ．２６４／ＡＶＣにおける誤差を低減するための４×４単位での直交変換行列である。他方、図４の変換行列は、ＶＣ−１の４×４単位での直交変換行列である。【００１１】
直交変換処理は、このように行列式で表現されるが、単純な行列演算を行って実現する場合、膨大な演算量が必要となり処理時間や回路規模増大の要因となりうることは既知の問題である。そのため、一般的には行列式の性質を利用して行列の展開を行い、演算回数を減らす高速アルゴリズムで処理する。高速アルゴリズムには、ＣｈｅｎやＷａｎｇといった方式が知られている。【００１２】
図５は、前記した、直交変換の高速アルゴリズムを処理単位で分割した従来の構成である（特許文献１参照）。図５において、並べ換え器３で入力信号の並べ替えを行う。並べ替えされた入力信号は、バタフライ器５、７、９にて加減算または乗算の処理を行い、直交変換を実現する。【００１３】
図６は、図５に示したバタフライ器の中身を示す図である。【００１４】
図６に記載されているバタフライ器の中身は、図６から明らかなように、全ていくつかの２点入力の襷がけ演算器で構成されている。【００１５】
図７は、２点入力の襷がけ演算器（２点基本演算器）２０を示す図である。【００１６】
図７における左側の図は、２点基本演算器２０を示す記号である。上述の図６は、この記号により２点入力の襷がけ演算器を示している。また、後の説明により参照される各図も、この記号により２点基本演算器を図示している。【００１７】
他方、図７の右側の図は、２点基本演算器２０が行う２点の積和演算の処理内容を示している。【００１８】
２点基本演算器２０は、当該２点基本演算器２０への第１入力（左上の黒丸での入力）と第２入力（左下の黒丸での入力）の積和演算をして、第１出力（右上の黒丸）を出力する。２点基本演算器２０は、より具体的には、（第１入力）×ａ１１＋（第２入力）×ａ１２の積和演算を行い、演算結果を第１出力として出力する。ここで、上記の式におけるａ１１、ａ１２は、２点基本演算器２０が、図７に示された変換係数メモリ２１その他の積和演算の係数を供給する係数供給部より取得する係数である。同様に、２点基本演算器２０は、（第１入力）×ａ１１＋（第２入力）×ａ１２の積和演算を行い、その積和演算の結果を第２出力として出力する。図７の左の記号において、各出力の黒丸へと接続された複数の矢印は、かかる積和演算をそれぞれ示している。【００１９】
ＭＰＥＧ２といった既存の符号化規格では上記のような高速直交変換アルゴリズムを用いてＤＣＴ処理を実現している。また、Ｈ．２６４／ＡＶＣでは、規格書に記載された手順にて処理を実現するのが一般的で、ＶＣ−１に関しては、その高速アルゴリズムが一般的には知られていないため、行列演算を直接実施することで処理を実現するのが一般的である。【００２０】
ここで、図６に記載されているバタフライ器の中身は、全ていくつかの２点入力の襷がけ演算器で構成されている。このため、従来の構成により実現できる直交変換は、ＤＣＴやアダマールといった全て２点入力の襷がけ演算に展開できるものに限定される。【００２１】
一方、Ｈ．２６４／ＡＶＣでは３点入力の演算器が必要になる。【００２２】
図８は、Ｈ．２６４／ＡＶＣ直交変換において必要な３点入力の演算器を示す図である。【００２３】
そこで、Ｈ．２６４／ＡＶＣでは、この、図８に示すような構成に展開される３点入力の襷がけ演算を行う演算器を用いた直交変換装置が用いられる。なお、ＶＣ−１に関しては、２点入力の襷がけ演算で構成することが可能である。ただし、従来構成の接続と異なる。
【特許文献１】特開平４−２２９７２４号公報
【発明の開示】
【発明が解決しようとする課題】
【００２４】
しかしながら、複数の符号化規格を何れも処理するプログラムや回路を実現したい場合がある。かかる場合、それぞれの符号化規格で別々のプログラムや回路を個別に持つ必要がある。例えば、昨今の半導体集積回路では複雑かつ様々な動画符号化処理を実現することが要求されている。また、低消費電力化も必須である。このような背景の中で、符号化規格毎に回路を持つことは、半導体集積回路全体の面積を増加させることになり複数の動画符号化処理の実現を妨げることとなる。また、回路規模の増加は電力消費も増加し、低消費電力化の実現をも妨げることとなる。また、演算手段の観点からも個別に演算方法を分けることは、処理の共通化ができず非効率であるとともに、プログラムの管理においても間違いを発生する要因となる。【００２５】
本発明は上記の問題を解決するものであり、複数の直交変換処理を１つの共通の高速直交変換アルゴリズム演算手段もしくは回路構成で実現することにより、プログラムの共通化や半導体集積回路全体の面積削減を実現する直交変換装置を提供することを目的としている。【００２６】
つまり、より具体的には、本発明の目的は、従来構成のように基本的な演算手段、演算器の接続関係を変更することなく、Ｈ．２６４／ＡＶＣやＶＣ−１といった新規の符号化規格の直交変換を処理するとともに、ＭＰＥＧ２といった既存のＤＣＴの処理も変換係数の変更だけで実現できる共通の高速直交変換アルゴリズムを行う直交変換装置を提供することである。
【課題を解決するための手段】
【００２７】
この目的を達成するために、本発明の直交変換装置は、複数点の入力信号に対して直交変換を行う直交変換装置であって、前記複数点の入力信号のうちの一部の入力信号に対して、２点の積和演算を行う２点基本演算部を有する第１のバタフライ演算手段と、前記複数点の入力信号のうちの残りの入力信号に対して、４点の積和演算を行う４点基本演算部を有する第２のバタフライ演算手段と、前記第２のバタフライ演算手段での演算結果に対して、２点の積和演算を行う２点基本演算部を有する第３のバタフライ演算手段と、前記第１のバタフライ演算手段での演算結果を保持する第１の遅延手段と、前記第１のバタフライ演算手段での演算結果及び前記第１の遅延手段に保持された演算結果からデータを選択する第１の選択手段と、前記第３のバタフライ演算手段での演算結果を保持する第２の遅延手段と、前記第３のバタフライ演算手段での演算結果及び前記第２の遅延手段に保持された演算結果からデータを選択する第２の選択手段と、前記第１の選択手段で選択されたデータ及び前記第２の選択手段で選択されたデータに対して、２点の積和演算を行う２点基本演算部を有する第４のバタフライ演算手段と、前記第１〜４のバタフライ演算手段での積和演算に用いられる変換係数を前記第１〜４のバタフライ演算手段に供給する変換係数供給手段とを備え、前記第２のバタフライ演算手段は、当該第２のバタフライ演算手段の前記４点基本演算部が行う積和演算を、前記第１〜４のバタフライ演算手段が複数種類の直交変換を行うための、所定の３点演算および２点演算の間で切り替えることを特徴とする。【００２８】
これにより、従来構成のように基本的な演算手段、演算器の接続関係を変更することなく、第２のバタフライ演算手段が有する４点基本演算部が行う積和演算が所定の３点演算および２点演算の間で切り替えられることで、Ｈ．２６４／ＡＶＣやＶＣ−１といった新規の符号化規格の直交変換を処理するとともに、ＭＰＥＧ２といった既存のＤＣＴの処理も変換係数の変更だけで実現でき、複数の処理に共通の高速直交変換アルゴリズムを行う直交変換装置を提供することができる。【００２９】
そして、こうして複数の直交変換処理を１つの共通の高速直交変換アルゴリズム演算手段もしくは回路構成で実現することができることで、プログラムの共通化や半導体集積回路全体の面積削減、低消費電力化、複数の動画符号化処理の実現の容易化、プログラムの管理における間違い発生の抑止を実現することができる。
【発明の効果】
【００３０】
前記構成によって、共通の直交変換手段を用いて、複数の直交変換、特に基底の性質が異なる直交変換の処理を実現できる。その効果は、特にプログラムの共通化や半導体集積回路全体の面積削減を実現することを可能とする。
【図面の簡単な説明】
【００３１】
【図１】図１は、Ｈ．２６４／ＡＶＣにおける整数精度直交変換の変換行列を示す図である。
【図２】図２は、ＶＣ−１における整数精度直交変換の変換行列を示す図である。
【図３】図３は、Ｈ．２６４／ＡＶＣにおける４×４の変換行列を示す図である。
【図４】図４は、ＶＣ−１における４×４の変換行列を示す図である。
【図５】図５は、従来の構成を示す図である。
【図６】図６は、従来の構成が有するバタフライ器の中身を示す図である。
【図７】図７は、２点入力の襷がけ演算器（２点基本演算器）を示す図である。
【図８】図８は、Ｈ．２６４／ＡＶＣ直交変換において必要な３点入力の演算器を示す図である。
【図９】図９は、直交変換装置５０を示す図である。
【図１０】図１０は、直交変換装置５０が有する４つのバタフライ演算部の詳細を示す図である。
【図１１】図１１は、４段パイプライン演算回路を示す図である。
【図１２】図１２は、第２バタフライ演算部のＡ型およびＢ型を示す図である。
【図１３】図１３は、Ｈ．２６４／ＡＶＣ用の直交変換演算構成を示す図である。
【図１４】図１４は、直交変換装置がＶＣ−１の直交変換を行う場合に第２バタフライ演算部が行う２回の演算を説明する図である。
【図１５】図１５は、直交変換装置がＶＣ−１の直交変換を行う場合に第２バタフライ演算部が行う２回の演算の式を示した図である。
【図１６】図１６は、直交変換装置を示す図である。
【図１７】図１７は、直交変換装置がＶＣ−１の直交変換をする際の演算の流れを示す図である。
【図１８】図１８は、４×４直交変換を行う実施の形態を示す図である。
【図１９】図１９は、集積回路を示す図である。
【符号の説明】
【００３２】
１１  従来の構成
２０  ２点基本演算器
５０  直交変換装置
５０ａ  直交変換装置
５０ｃ  集積回路
５１  ４段パイプライン演算回路
１００  第１バタフライ演算部
１０１  第２バタフライ演算部
１０１Ａ  第２バタフライ演算部のＡ型
１０１Ｂ  第２バタフライ演算部のＢ型
１０２  第３バタフライ演算部
１０３  第４バタフライ演算部
１０４  第５バタフライ演算部
２０１  第３遅延部
２０２  第２遅延部
２０３  第１遅延部
３０１  第３選択部
３０２  第２選択部
３０３  第１選択部
３０４  第４選択部
４０１  変換係数供給部
５００  Ｈ．２６４／ＡＶＣ用の直交変換演算構成
５０１  ３点入力の襷がけ演算が行われる演算回路
６０１  直交変換回路
６０２  制御部
【発明を実施するための最良の形態】
【００３３】
以下、本発明の直交変換装置、集積回路の実施の形態について、図面を参照しながら説明する。【００３４】
（実施の形態１）
図９は、直交変換装置５０を示す図である。【００３５】
直交変換装置５０は、複数点の入力信号に対して直交変換を行う。直交変換装置５０は、構成が簡単でありながらも、ＤＣＴの直交変換、Ｈ．２６４／ＡＶＣの直交変換およびＶＣ−１の直交変換の３種類の直交変換のうちの何れの直交変換も行う。なお、直交変換装置５０は、基本となるアルゴリズムにＣｈｅｎの方式を採用した演算を行うものである。【００３６】
具体的には、直交変換装置５０は、第１バタフライ演算部１００と、第２バタフライ演算部１０１と、第３バタフライ演算部１０２と、第４バタフライ演算部１０３と、第５バタフライ演算部１０４と、第３遅延部２０１と、第２遅延部２０２と、第１遅延部２０３と、第３選択部３０１と、第２選択部３０２と、第１選択部３０３と、第４選択部３０４と、変換係数供給部４０１とを備える。【００３７】
図１０は、図９に示される第１バタフライ演算部１００〜第４バタフライ演算部１０３の詳細を示す図である。図１０（ａ）〜（ｄ）は、それぞれ、第１バタフライ演算部１００、第２バタフライ演算部１０１、第３バタフライ演算部１０２、第４バタフライ演算部１０３の詳細を示す。【００３８】
なお、直交変換装置５０は、例えば、直交変換を行って動画を表示するテレビ等の画像表示装置であってもよいし、動画を記録するために直交変換を行うＤＶＤレコーダその他の動画記録装置であってもよいし、撮像した動画を記録するために直交変換を行うムービーカメラなどの動画撮像装置であってもよいし、動画符号化装置であってもよい。【００３９】
第１バタフライ演算部１００は（図１０（ａ）、図９）、直交変換装置５０への複数点の入力信号のうちの一部の入力信号に対して、２点の積和演算を行う２点基本演算部を有する。なお、ここで、２点基本演算部とは、図７で説明した２点基本演算器２０である。第１バタフライ演算部１００は、具体的には、図１０（ａ）に示されるよう構成された４個の２点基本演算部を備える。第１バタフライ演算部１００は、直交変換装置５０への複数点の入力信号のうちの、偶数番の入力信号に対して、これら４個の２点基本演算部によって演算を行う。【００４０】
第３遅延部２０１は（図９）、直交変換装置５０への複数点の入力信号のうちの残りの入力信号を保持する。ここで、残りの入力信号とは、直交変換装置５０への入力信号のうちで、上述した偶数番の入力信号つまり第１バタフライ演算部１００により演算される入力信号を除いた、残りの入力信号、すなわち、奇数番の入力信号である。第３選択部３０１は（図９）、直交変換装置５０への複数点の入力信号のうちの残りの入力信号及び第１遅延部２０３に保持された入力信号からデータを選択する。ここで、残りの入力信号とは、上述の場合と同じであり、奇数番の入力信号である。第３選択部３０１は、直交変換装置５０が、上記の３種類の直交変換のうちで、ＤＣＴの直交変換をする場合、および、Ｈ．２６４／ＡＶＣの直交変換をする場合には、直交変換装置５０へのこの奇数番の入力信号を選択する一方で、直交変換装置５０がＶＣ−１の直交変換をする場合には、直交変換装置５０への奇数番の入力信号を選択するときと、第１遅延部２０３に保持された入力信号を選択するときとを切り替える。【００４１】
第２バタフライ演算部１０１は（図１０（ｂ）、図９）、直交変換装置５０への複数点の入力信号のうちの残りの入力信号に対して、４点の積和演算を行う４点基本演算部を有する。第２バタフライ演算部１０１は、第３選択部３０１（図９）で選択されたデータに対して積和演算を行う。第２バタフライ演算部１０１は、第３選択部３０１が、直交変換装置５０への複数点の入力信号のうちの残りの入力信号を選択すると、残りの入力信号に対する演算を行い、第１遅延部２０３に保持された入力信号を選択すると、第１遅延部２０３に保持された入力信号に対する演算を行う。【００４２】
ここで、４点基本演算部は、図７が示す２点基本演算部（２点基本演算器）が２点入力である基本演算部であるのに対して、４点入力にされた基本演算部である。４点基本演算部は、第１〜第４の入力（図１０（ｂ）の第２バタフライ演算部１０１に示された左側の４つの黒丸での入力）に基づいて、それら４つの入力を積和演算した演算結果を、第１〜第４の出力（右側の４つの黒丸での出力）としてそれぞれ出力する。換言すれば、４点基本演算部は、４点の入力信号と４つの変換係数を演算した結果を加算する構成を４個備え、それら４個の結果をそれぞれ４つの出力とする。【００４３】
第３バタフライ演算部１０２は（図１０（ｃ）、図９）、第２バタフライ演算部１０１での演算結果に対して、２点の積和演算を行う２点基本演算部を有する。第３バタフライ演算部１０２は、図１０（ｃ）に示されるよう構成された３個の２点基本演算部を有する。【００４４】
第１遅延部２０３は（図９）、第１バタフライ演算部１００での演算結果を保持する。【００４５】
第２遅延部２０２は（図９）、第３バタフライ演算部１０２での演算結果を保持する。【００４６】
第１選択部３０３は（図９）、第１バタフライ演算部１００での演算結果及び第１遅延部２０３に保持された演算結果からデータを選択する。第１選択部３０３は、直交変換装置５０が３種類の直交変換のうちでＤＣＴの直交変換をする場合およびＨ．２６４／ＡＶＣの直交変換をする場合には、第１バタフライ演算部１００での演算結果を選択する一方で、ＶＣ−１の直交変換をする場合には、第１遅延部２０３に保持された演算結果を選択する。【００４７】
第２選択部３０２は（図９）、第３バタフライ演算部１０２での演算結果及び第２遅延部２０２に保持された演算結果からデータを選択する。第２選択部３０２は、３種類の直交変換のうちで、直交変換装置５０がＤＣＴの直交変換をする場合およびＨ．２６４／ＡＶＣの直交変換をする場合には、第３バタフライ演算部１０２での演算結果を選択し、ＶＣ−１の直交変換をする場合には、第３バタフライ演算部１０２での演算結果の一部を第１の部分に有すると共に第２遅延部２０２に保持された演算結果を第２の部分に有するそれら第１および第２の２つの部分を集めてなるデータを選択する。この点の詳細については後の説明により示される（図１４、図１５参照）。【００４８】
第４バタフライ演算部１０３は（図１０（ｄ）、図９）、第１選択部３０３で選択されたデータ及び第２選択部３０２で選択されたデータに対して、２点の積和演算を行う２点基本演算部を有する。第３バタフライ演算部１０２は、図１０（ｃ）に示されるよう構成された４個の２点基本演算部を有する。【００４９】
変換係数供給部４０１（図９）は、第１バタフライ演算部１００〜第４バタフライ演算部１０３での積和演算に用いられる変換係数をそれら第１バタフライ演算部１００〜第４バタフライ演算部１０３に供給する。変換係数供給部４０１は、第１バタフライ演算部１００〜第４バタフライ演算部１０３で繰り返される積和演算の毎処理単位で、それら第１バタフライ演算部１００〜第４バタフライ演算部１０３に供給する変換係数を変更する。変換係数供給部４０１は、直交変換装置５０がＤＣＴの直交変換をする場合には、第１バタフライ演算部１００〜第４バタフライ演算部１０３が直交変換をするための変換係数を供給し、Ｈ．２６４／ＡＶＣの直交変換をする場合には、Ｈ．２６４／ＡＶＣの直交変換をするための変換係数を供給し、ＶＣ−１の直交変換をする場合には、ＶＣ−１の直交変換をするための変換係数を供給する。つまり、変換係数供給部４０１は、直交変換装置５０が行う直交変換の種類に応じて、それぞれ、行われる種類の直交変換のための変換係数を提供する。【００５０】
なお、第１遅延部２０３、第２遅延部２０２、第３遅延部２０１の少なくとも一部は、たとえば、バッファや、メモリ、レジスタによって構成されていてもよい。【００５１】
ここに、第１選択部３０３は、換言すれば、第１バタフライ演算部１００での演算結果及び第１遅延部２０３に保持された演算結果からいずれかを選択するものといえる。同様に、第２選択部３０２は、第３バタフライ演算部１０２での演算結果及び第２遅延部２０２に保持された演算結果からいずれかを選択するものといえる。また、第３選択部３０１は、当該直交変換装置５０への複数点の入力信号のうちの残りの入力信号及び第１遅延部２０３に保持された入力信号からいずれかを選択するものといえる。【００５２】
第１バタフライ演算部１００〜第４バタフライ演算部１０３の４つの演算部の全体は、４段パイプライン演算回路５１（図１１）を構成する。【００５３】
図１１は、４段パイプライン演算回路５１を示す図である。【００５４】
４段パイプライン演算回路５１は、第１バタフライ演算部１００と、第２バタフライ演算部１０１と、第３バタフライ演算部１０２と、第４バタフライ演算部１０３との全体よりなる。なお、図９は、４段パイプライン演算回路５１の図示を省略している。４段パイプライン演算回路５１は、Ｃｈｅｎの高速アルゴリズムによるＤＣＴの直交変換の４段パイプライン演算回路と、第２バタフライ演算部１０１の部分が異なり、他の部分、つまり第１バタフライ演算部１００と、第３バタフライ演算部１０２と、第４バタフライ演算部１０３との各部分は、それぞれ、Ｃｈｅｎの４段パイプライン演算回路におけるそれらの部分に対応する各部分とそれぞれ同じである。したがって、４段パイプライン演算回路５１は、Ｃｈｅｎの高速アルゴリズムによる４段パイプライン演算回路を第１バタフライ演算部１００と、第２バタフライ演算部１０１と、第３バタフライ演算部１０２と、第４バタフライ演算部１０３との４つの部分に対応する箇所で分割して、第２バタフライ演算部１０１に対応する箇所は、第２バタフライ演算部１０１に置き換えたものである。【００５５】
以下の説明は、Ｃｈｅｎの４段パイプライン演算回路との関係により、第１バタフライ演算部１００〜第４バタフライ演算部１０３の更に詳細を示す。第１バタフライ演算部１００は、Ｃｈｅｎの４段パイプライン演算回路の第１〜３段目のうちで、偶数番目の入力信号を処理する箇所の回路と同じ回路である。第２バタフライ演算部１０１は、Ｃｈｅｎの４段パイプライン演算回路の第１段目のうちで、奇数番目の入力信号を処理する部分と同じ回路である。第３バタフライ演算部１０２は、Ｃｈｅｎの４段パイプライン演算回路の第２〜３段目の部分のうちで、奇数番目の入力信号を処理する部分と同じである。第４バタフライ演算部１０３は、Ｃｈｅｎの４段パイプライン演算回路の第４段目の部分と同じである。【００５６】
以上のように、直交変換装置５０は、何らかの処理を施した入力信号に対して直交変換処理を行う高速アルゴリズム直交変換装置を、積和演算処理を行う２点基本演算部と４点基本演算部で構成した１００〜１０３で示す４つのバタフライ演算部に分割して構成され、前記バタフライ演算部１０１、１０３の入力に、入力信号を遅延させる遅延部２０３、２０２、２０１と、前記遅延部からの出力と前記入力信号ないしバタフライ演算部の演算結果とを選択し、バタフライ演算部１０１ないしは１０３への入力を選択する選択部３０１、３０２、３０３と、前記各バタフライ演算部に直交変換の変換係数を供給する変換係数供給部４０１とを備える。【００５７】
次の説明は、このような構成を備える直交変換装置５０の動作を述べる。まず、直交変換装置５０がＤＣＴの直交変換を行う動作について説明する。【００５８】
図１２は、第２バタフライ演算部１０１が変形してなる、第２バタフライ演算部のＡ型１０１Ａおよび第２バタフライ演算部のＢ型１０１Ｂを示す図である。図１２（ａ）は、図１０（ｂ）および図１１に示された第２バタフライ演算部１０１の構成を再掲する図である。図１２（ｂ）は、第２バタフライ演算部１０１が変形した第２バタフライ演算部のＡ型１０１Ａ（図１２（ｂ）右側）を示す図である。図１２（ｃ）は、第２バタフライ演算部１０１が変形した第２バタフライ演算部のＢ型１０１Ｂ（図１２（ｃ）右側）を示す図である。【００５９】
第２バタフライ演算部１０１は、直交変換装置５０がＤＣＴの直交変換を行う時には、図１２（ｂ）に示された第２バタフライ演算部のＡ型１０１Ａに変形する。【００６０】
第２バタフライ演算部のＡ型１０１Ａは、２個の２点基本演算部を組み合わせた演算回路であり、つまり、それら２個の２点基本演算部のうちで一方の基本演算部はこの第２バタフライ演算部１０１への第２入力および第３入力を当該一方の２点基本演算部の第１入力および第２入力にするのと共に、当該第２バタフライ演算部１０１の第２出力および第３出力を当該２点基本演算部の第１出力および第２出力とするものである。また、もう一方の２点基本演算部は、当該第２バタフライ演算部１０１への第１入力、第４入力、第１出力および第４出力をそれぞれ、当該もう一方の２点基本演算部の第１入力、第２入力、第１出力および第２出力とするものである。【００６１】
ここで、この、第２バタフライ演算部のＡ型１０１Ａは、Ｃｈｅｎの４段パイプライン演算回路における当該第２バタフライ演算部１０１に対応した部分と同じ構成を有するものである。【００６２】
このため、変換係数供給部４０１によりDCTの変換係数が供給されるとともに、この第２バタフライ演算部１０１が図１２（ｂ）を参照して上記に説明された第２バタフライ演算部のＡ型１０１Ａの形に変形することによって、第１バタフライ演算部１００〜第４バタフライ演算部１０３つまり４段パイプライン演算回路５１がＣｈｅｎの高速アルゴリズムに基づく直交変換のための積和演算を行い、ＭＰＥＧ１，ＭＰＥＧ２，ＭＰＥＧ４で使用されているＤＣＴの直交変換を実現することができる。【００６３】
なお、第２バタフライ演算部１０１は、第２バタフライ演算部のＡ型１０１Ａに変形する方法として、例えば、変換係数供給部４０１が供給する変換係数０に基づいて変形する方法を行うものとしてもよいし、演算結果を出力するのではなく０を選択して出力することで変形する方法を行うものであってもよいし、他の方法により変形を行うものであってもよい。【００６４】
ここで、第２バタフライ演算部１０１は、変換係数０を受けて変形をする場合には、全ての変換係数のうちで、図１２（ｂ）左側の第２バタフライ演算部１０１に含まれる破線が示す乗算の変換係数に、値０を変換係数供給部４０１から受けることで、変形を行う（図７参照）。【００６５】
次に、Ｈ．２６４／ＡＶＣの動作について説明する。【００６６】
第２バタフライ演算部１０１は、直交変換装置５０がＤＣＴの直交変換を行う時には、図１２（ｃ）に示された第２バタフライ演算部のＢ型１０１Ｂに変形する。【００６７】
第２バタフライ演算部のＢ型１０１Ｂは、前述の図８により示される、Ｈ．２６４／ＡＶＣの直交変換に必要となる、３点入力の襷がけ演算が行われる演算回路５０１と同じ回路である。【００６８】
図１３は、Ｈ．２６４／ＡＶＣの直交変換を行う４段パイプライン演算回路である、Ｈ．２６４／ＡＶＣ用の直交変換演算構成５００を示す図である。【００６９】
Ｈ．２６４／ＡＶＣ用の直交変換演算構成５００は、図１３の左下の図示する箇所、すなわち、第２バタフライ演算部１０１の位置に対応する箇所に、先述の図８に示される３点入力の襷がけ演算が行われる演算回路５０１を有する。【００７０】
本実施形態の４段パイプライン演算回路５１は、第２バタフライ演算部１０１が、この図１３の演算回路５０１と同じものである第２バタフライ演算部のＢ型１０１Ｂに変形することにより、図５に示されたＨ．２６４／ＡＶＣ直交変換演算構成と等価になる。【００７１】
このため、変換係数供給部４０１よりＨ．２６４／ＡＶＣの変換係数を供給するとともに、第２バタフライ演算部１０１が図１２（ｃ）に示す第２バタフライ演算部のＢ型１０１Ｂの形に変形することによって、Ｈ．２６４／ＡＶＣで使用されている直交変換（整数精度直交変換）を実現できる。【００７２】
なお、第２バタフライ演算部１０１は、図１２（ｃ）の第２バタフライ演算部のＢ型１０１Ｂに変形する方法として、変換係数供給部４０１が当該第２バタフライ演算部１０１に供給する変換係数０に基づいて変形する方法を行ってもよいし、演算結果を出力するのではなく０を選択して出力することにより変形する方法を行ってもよいし、他の方法によって変形を行うものであってもよい。【００７３】
次に、ＶＣ−１の直交変換の動作を説明する。【００７４】
第２バタフライ演算部１０１は、直交変換装置５０がＶＣ−１の直交変換を行う場合には、第１回目および第２回目の２回の演算を行う。【００７５】
図１４は、直交変換装置５０がＶＣ−１の直交変換を行う場合に第２バタフライ演算部１０１が行う２回の演算を説明する図である。【００７６】
図１５は、直交変換装置５０がＶＣ−１の直交変換を行う場合に第２バタフライ演算部１０１が行う２回の演算の式を示す図である。【００７７】
図１４の最左端の上段に示されるｘ１、ｘ３、ｘ５、ｘ７は、直交変換装置５０への入力信号の奇数番のものである。他方、図１４の最左端の下段に示されたｘ１＿ｄ、ｘ５＿ｄ、ｘ３＿ｄ、ｘ７＿ｄは、第３遅延部２０１（図９）に保持された入力信号である。そして、図１５におけるｄ１、ｄ３、ｄ５、ｄ７は、それぞれ、図１４において、ｘ１、ｘ３、ｘ５、ｘ７により図示した入力信号と同じ信号を指す。【００７８】
図１４の上段は、第２バタフライ演算部１０１が行う１回目の演算を示し、下段は、第２バタフライ演算部１０１が行う２回目の演算を示している。なお、図１４の上下段における第２バタフライ演算部１０１は、直交変換装置５０がＶＣ−１の直交変換を行うため、第２バタフライ演算部のＡ型１０１Ａに変形している。【００７９】
第２バタフライ演算部１０１が行う１回目の演算は次の通りである。【００８０】
第３選択部３０１は、第２バタフライ演算部１０１が１回目の演算を行う時に、第１遅延部２０３に保持された入力信号ではなく、直交変換装置５０への入力信号の方を、第２バタフライ演算部１０１が演算をするデータとして選択する。つまり、第３選択部３０１は、第一回目の演算の時に、図１４の左端上段に示されたｘ１、ｘ５、ｘ３、ｘ７を選択する。第２バタフライ演算部１０１は、１回目の演算の時に、図１５の最左に示された、４×ｄ１−１６×ｄ７と、１５×ｄ５−９×ｄ３と、９×ｄ５+１５×ｄ３と、１６×ｄ１＋４×ｄ７との積和演算をそれぞれ行う。変換係数供給部４０１は、かかる演算を行う第２バタフライ演算部１０１が変換係数を１回目の演算の際に第２バタフライ演算部１０１に供給する。【００８１】
第３バタフライ演算部１０２は、この１回目の演算の時に、上述した第２バタフライ演算部１０１の演算の演算結果に対して演算を行い、具体的には、図１５中央のｙ１＝（４×ｄ１−１６×ｄ７）＋（１５×ｄ５−９×ｄ３）と、ｙ２＝（９×ｄ５＋１５×ｄ３）＋（１６×ｄ１＋４×ｄ７）の演算を行う。なお、第３バタフライ演算部１０２は、このとき、図１４上段の第２バタフライ演算部１０１に示される０が表すように、第１出力および第４出力に上述の演算結果ｙ１およびｙ２を出力すると共に、第２出力および第３出力は０とする。変換係数供給部４０１は、かかる演算を行わせる変換係数を、１回目の演算の時に第３バタフライ演算部１０２に供給する。【００８２】
第３遅延部２０１は、かかる第２バタフライ演算部１０１および第３バタフライ演算部１０２による１回目の演算の間、上述したｄ１、ｄ３、ｄ５、ｄ７、換言するならばｘ１、ｘ３、ｘ５、ｘ７（図１４左端の上段）を保持する。【００８３】
他方、第２バタフライ演算部１０１が行う２回目の演算は次の通りである。【００８４】
第３選択部３０１は、上述した演算の間第３遅延部２０１に保持されたｄ１、ｄ３、ｄ５、ｄ７を、第２バタフライ演算部１０１および第３バタフライ演算部１０２が２回目の演算を行う時に選択する。なお、図１４下段の左端に示されるｘ１＿ｄ、ｘ３＿ｄ、ｘ５＿ｄ、ｘ７＿ｄは、このとき選択されるｄ１、ｄ３、ｄ５、ｄ７をそれぞれ示す。【００８５】
第２バタフライ演算部１０１は、２回目の演算の時、図１５の最下段に示されるように、９×ｄ１＋１５×ｄ７、４×ｄ５−１６×ｄ３、−１６×ｄ５−４×ｄ３、１５×ｄ１−９×ｄ７の演算を行う。変換係数供給部４０１は、かかる演算を行う第２バタフライ演算部１０１にさせる変換係数を第２バタフライ演算部１０１に２回目の演算の時に供給する。【００８６】
第３バタフライ演算部１０２は、この第２バタフライ演算部１０１の演算結果に基づいて、ｙ３＝（９×ｄ１＋１５×ｄ７）＋（４×ｄ５−１６×ｄ３）、ｙ４＝（−１６×ｄ５−４×ｄ３）＋（１５×ｄ１−９×ｄ７）の演算を、２回目の演算として、行う。【００８７】
なお、変換係数供給部４０１は、第２バタフライ演算部１０１に対して、１回目の演算で第２バタフライ演算部１０１に供給する演算係数とは異なる演算係数を供給する。同様に、変換係数供給部４０１は、第３バタフライ演算部１０２に対しても、１回目の演算と２回目の演算との間で、互いに異なる変換係数を供給する。【００８８】
第１遅延部２０３（図９）は、第２バタフライ演算部１０１および第３バタフライ演算部１０２が１回目の演算を行う時に、その演算と並行して第１バタフライ演算部１００が行った演算の演算結果を保持する。【００８９】
第２遅延部２０２は、１回目の演算での第２バタフライ演算部１０１および第３バタフライ演算部１０２がした演算の演算結果、つまり１回目の演算での第３バタフライ演算部１０２の出力たる演算結果を保持する。第２遅延部２０２は、第２バタフライ演算部１０１および第３バタフライ演算部１０２が２回目の演算を終えるまで、この保持を行う。【００９０】
第１選択部３０３は、第２バタフライ演算部１０１が２回目の演算を行う時に、直交変換装置５０はＶＣ−１の直交変換をするので、第１遅延部２０３に保持された演算結果を選択する。【００９１】
第２選択部３０２は、２回目の演算で第３バタフライ演算部１０２が出力する、図１５および図１４下段に示されたｙ３、ｙ４と、１回目の演算の時から第２遅延部２０２が保持する図１５および図１４上段に示されたｙ１、ｙ２とを、第４バタフライ演算部１０３が演算に用いるデータとして選択する。つまり、第２選択部３０２は、ｙ１、ｙ２を有する第１の部分と、ｙ３、ｙ４を有する第２の部分とを集めてなるデータ、つまりｙ１、ｙ２、ｙ３、ｙ４からなるデータを、第４バタフライ演算部１０３が用いるデータに選択する。【００９２】
第４バタフライ演算部１０３は、第２選択部３０２がこうして選択したデータを用いることで、第２バタフライ演算部１０１および第３バタフライ演算部１０２による演算結果のデータのうち、ｙ１、ｙ２、ｙ３、ｙ４の４つのデータを演算に用いる。【００９３】
これにより、変換係数供給部４０１よりＶＣ−１の変換係数を供給するとともに、第２バタフライ演算部１０１を図１２に示すような第２バタフライ演算部のＡ型１０１Ａの形に変形し、更に、図１４に示すように第３遅延部２０１を用いて、入力信号を２回入力するとともに変換係数供給部４０１より１回目と２回目の変換係数を変更して供給し、演算させることによって、ＶＣ−１で使用されている直交変換（整数精度直交変換）を実現できる。【００９４】
なお、第２バタフライ演算部１０１は、第２バタフライ演算部のＡ型１０１Ａに変形する方法として、変換係数供給部４０１が供給する変換係数０に基づいて変形する方法を行うものとしてもよいし、演算結果を出力するのではなく０を選択して出力することで変形する方法を行うものとしてもよいし、他の方法により変形をするものであってもよい。【００９５】
なお、このように、直交変換装置５０は、第２バタフライ演算部１０１と第３遅延部２０１とを用いて、奇数側の入力信号を当該第２バタフライ演算部１０１に２度入力し、その都度、変換係数を逐次切り替える構成によって、下段側（奇数側）の演算をバタフライ処理ではなく、直接行列演算を行う。【００９６】
また、第２バタフライ演算部１０１は、第２バタフライ演算部１０１の４点基本演算部が行う積和演算を、４段パイプライン演算回路５１が複数種類の直交変換を行うための、所定の３点演算（図１２（ｂ）での演算）および２点演算（図１２（ａ）での演算）の間で切り替える。【００９７】
（実施の形態２）
続けて、以下の説明は、実施の形態２について述べる。【００９８】
図１６は、実施の形態２に係る直交変換装置５０ａを示す図である。【００９９】
直交変換装置５０ａは、実施の形態１の構成に加えて、更に、第５バタフライ演算部１０４と、第４選択部３０４とを備える。【０１００】
第５バタフライ演算部１０４は、前記複数点の入力信号のうちの残りの入力信号に対して、４点の積和演算を行う４点基本演算部を有する。第５バタフライ演算部１０４は、実施形態１で説明される第２バタフライ演算部１０１と並列に配置され、第２バタフライ演算部１０１が有する構成と同じ構成を有する（図１０（ｂ）参照）。【０１０１】
第４選択部３０４は、第２バタフライ演算部１０１及び第５バタフライ演算部１０４での演算結果からデータを選択し、変換係数供給部４０１は、第５バタフライ演算部１０４での積和演算に用いられる変換係数を第５バタフライ演算部１０４に供給し、第３バタフライ演算部１０２は、第４選択部３０４で選択されたデータに対して積和演算を行う。【０１０２】
第２バタフライ演算部１０１は、先述した実施の形態１において第２バタフライ演算部１０１がした１回目の演算を行う。【０１０３】
第５バタフライ演算部１０４は、他方の、実施の形態１において第２バタフライ演算部１０１がした２回目の演算を行う。【０１０４】
図１７は、直交変換装置５０ａがＶＣ−１の直交変換をする際の演算の流れを示す図である。図１７中段に示された第２バタフライ演算部１０１および第３バタフライ演算部１０２は、それらが行う実施の形態１における１回目の演算、つまり、ｙ１およびｙ２が演算結果たる演算（図１４、図１５を参照）を示す。図１７下段の第５バタフライ演算部１０４および第３バタフライ演算部１０２は、それらが行う実施の形態１における２回目の演算、つまり、ｙ３およびｙ４が演算結果たる演算（図１４、図１５を参照）を示す。【０１０５】
第４バタフライ演算部１０３は、これら、図１７中段および下段の両者の演算結果、つまりｙ１、ｙ２と、ｙ３、ｙ４に基づいて演算を行う。【０１０６】
かかる直交変換装置５０ａによれば、何らかの処理を施した入力信号に対して直交変換処理を行う高速アルゴリズム直交変換装置を、積和演算処理を行う２点基本演算部と４点基本演算部で構成した１０１、１０４、１０２、１０３、１００で示す５つのバタフライ演算部と、第４バタフライ演算部１０３の入力に設けられた、入力信号を遅延させる第２遅延部２０２および第１遅延部２０３と、遅延部からの出力とバタフライ演算部からの出力とからデータを選択し、バタフライ演算部１０２ないしは１０３への入力を選択する選択部３０２、３０３、３０４と、各バタフライ演算部に変換係数を供給する変換係数供給部４０１とで構成する。このとき前記第５バタフライ演算部１０４は前記第２バタフライ演算部１０１と同じものである。そして、実施の形態１で入力信号を２回遅延させて入力する代わりに、入力信号を同時に同じものである第２バタフライ演算部１０１および第５バタフライ演算部１０４との２つのバタフライ演算部に供給し、変換係数供給部４０１からも同時に別々の変換係数をそれぞれに供給し、演算することによって、ＶＣ−１の直交変換を実現する。これにより、２回目の演算での第５バタフライ演算部１０４の処理が、１回目の演算での第２バタフライ演算部での処理と同時並列に行われて、第１回および第２回の両者の演算の演算結果を共に用いた第４バタフライ演算部１０３の演算結果を早く出力できるようになり、ＶＣ−１の直交変換を高速にできる。【０１０７】
（実施の形態３）
次に、以下の説明は、４×４の変換行列の直交変換（先述の図３、図４参照）が行われる場合の実施の形態３を述べる。【０１０８】
図１８は、４×４直交変換を行う実施の形態３を示す図である。図１８（ａ）は、図４に示された、ＶＣ−１における誤差を低減するための４×４の直交変換の変換行列を再掲するものである。図１８（ｂ）は、図１８（ａ）の変換行列の第２行と第３行を入れ替えた行列を左辺に、左辺の式を変形した式を右辺に示す行列の式を示すものである。図１８（ｃ）は、第１バタフライ演算部１００が図１８（ｂ）の行列の演算を行う際の変換係数を示す図である。【０１０９】
第１バタフライ演算部１００は、４点の高速直交変換を行う。第１バタフライ演算部１００は、直交変換装置５０がＶＣ−１の直交変換をする場合に、変換係数供給部４０１から供給される図１８（ｃ）の変換係数の演算、つまり図１８（ｂ）により示される行列の演算をして、ＶＣ−１の誤差を低減させる４点の高速直交変換の演算を行う。【０１１０】
なお、第１バタフライ演算部１００は、上述した、図４に示されたＶＣ−１の４×４の変換行列に基づいた、ＶＣ−１の誤差を低減させるための４点の高速直交変換を行うのと同様に、図３に示されたＨ．２６４／ＡＶＣの４×４の変換行列に基づいた、Ｈ．２６４／ＡＶＣの誤差を低減させるための４点の高速直交変換の演算も行う。【０１１１】
この実施の形態３であれば、第１バタフライ演算部１００は、図３もしくは図４により示された４×４の直交変換を実現することが可能であり、第１バタフライ演算部１００に４つの入力信号を供給するとともに、変換係数供給部４０１から４×４の変換係数を第１バタフライ演算部１００に入力することによって、Ｈ．２６４／ＡＶＣおよびＶＣ−１の4×4の直交変換を実現することができ、直交変換装置５０だけでＨ．２６４／ＡＶＣおよびＶＣ−１の４×４の直交変換まで実現できる。【０１１２】
以上説明した実施の形態１〜３の直交変換装置５０、５０ａであれば、従来構成のように基本的な演算手段、演算器の接続関係を変更することなく、第２バタフライ演算部１０１が有する４点基本演算部が行う演算が切り替えられることで、Ｈ．２６４／ＡＶＣやＶＣ−１といった新規の符号化規格の直交変換を処理するとともに、ＭＰＥＧ２といった既存のＤＣＴの直交変換の処理も変換係数の変更だけで実現でき、複数の処理に共通の高速直交変換アルゴリズムを行う直交変換装置を提供することができる。【０１１３】
そして、これにより、複数の直交変換を１つの共通の高速直交変換アルゴリズム演算手段もしくは回路構成（４段パイプライン演算回路５１）で実現することができて、プログラムの共通化や半導体集積回路全体の面積削減、低消費電力化、複数の動画符号化処理の実現の容易化、プログラムの管理における間違い発生の抑止を実現することができる。【０１１４】
なお、実施の形態１の直交変換装置５０（図９）は、何らかの処理を施した入力信号に対して、バタフライ演算手段構成をもととして、直交変換処理を行う高速アルゴリズム直交変換手段を、積和演算処理を行う２点基本演算部と４点基本演算部で構成した４つのバタフライ演算部１００〜１０３に分割し、前記バタフライ演算部１０１、１０３の入力には、入力信号を遅延させる遅延部２０１〜２０３と、前記遅延部２０１〜２０３からの出力と前記入力信号とを選択し、前記バタフライ演算部への入力を選択する選択部３０１〜３０３とを有し、前記バタフライ演算部に直交変換係数を供給する変換係数供給部４０１を備える。【０１１５】
他方、実施の形態２の直交変換装置５０ａ（図１６）は、何らかの処理を施した入力信号に対して直交変換処理を行う高速アルゴリズム直交変換手段を、積和演算処理を行う２点基本演算部と４点基本演算部で構成した４つのバタフライ演算部１００〜１０３に分割し、前記第４バタフライ演算部１０３の入力には、入力信号を遅延させる遅延部２０２、２０３と、前記遅延部２０２、２０３からの出力と前記入力信号とを選択し、前記第４バタフライ演算部１０３への入力を選択する選択部３０２、３０３とを有し、前記第２バタフライ演算部１０１の箇所を並列に第２バタフライ演算部１０１と第５バタフライ演算部１０４の２つとして配置し、前記第２バタフライ演算部１０１と第５バタフライ演算部１０４を選択する第４選択部３０４と、前記各バタフライ演算部に直交変換の変換係数を供給する変換係数供給部４０１とを備える。【０１１６】
前記構成によって、前記変換係数供給部４０１よりＤＣＴの変換係数および、前記４点基本演算部を２点基本演算部と等価なものにするために変換係数０を供給することによってＭＰＥＧ１、ＭＰＥＧ２、ＭＰＥＧ４を処理するための直交変換手段を実現し、また、前記変換係数供給部よりＨ．２６４／ＡＶＣの変換係数および、前記４点基本演算部を３点演算部と等価なものにするために変換係数０を供給することによりＨ．２６４／ＡＶＣを処理するための直交変換手段を実現する（図３参照）。更に、前記変換係数供給部４０１よりＶＣ−１の変換係数および、前記４点基本演算部を２点演算部と等価なものにするために変換係数０を供給することに加えて、前記遅延部により入力データを２回入力することとその都度変換係数を入れ替えることによって、奇数側の演算を直接行列演算することでＶＣ−１の直交変換を処理するための直交変換手段を実現する（図１４参照）。【０１１７】
これにより、直交変換装置５０、５０ａによれば、共通の直交変換手段を用いて、複数の直交変換、特に基底の性質が異なる直交変換の処理を実現できる。【０１１８】
なお、本発明は、かかる実施の形態に限定されるものではない。【０１１９】
たとえば、本発明は１チップの半導体集積回路として、次のように実施してもよい。【０１２０】
図１９は、集積回路５０ｃを示す図である。【０１２１】
集積回路５０ｃは、複数点の入力信号に対して直交変換を行う集積回路である。【０１２２】
なお、集積回路５０ｃは、請求の範囲に記載される「集積回路」の一例であり、かつ、同じく請求の範囲に記載される「直交変換装置」の一例でもある。【０１２３】
集積回路５０ｃは、直交変換回路６０１と制御部６０２とを備える。【０１２４】
直交変換回路６０１は、実施の形態１における直交変換装置５０の各部分（図９）を備え、すなわち、第１バタフライ演算部１００と、第２バタフライ演算部１０１と、第３バタフライ演算部１０２と、第４バタフライ演算部１０３と、第５バタフライ演算部１０４と、第３遅延部２０１と、第２遅延部２０２と、第１遅延部２０３と、第３選択部３０１と、第２選択部３０２と、第１選択部３０３と、第４選択部３０４と、変換係数供給部４０１と、を備える。なお、図１９では、集積回路５０ｃのこれらの構成の図示は省略されている。【０１２５】
なお、実施の形態４においては、これらの各部は、集積回路５０ｃ上に実現された配線によって実現されるが、各部は、ソフトウェアにより実現された機能部にしてもよいし、ハードウェアによって実現された機能部にしてもよいし、他の方法により実現されたものにしてもよい。【０１２６】
制御部６０２は、集積回路５０ｃの入力と出力とを入れ換えることで、集積回路５０ｃが有する直交変換回路６０１に、正直交変換及び逆直交変換を選択的に行わせるものである。【０１２７】
また、上記の各実施の形態において、第１バタフライ演算部１００〜第４バタフライ演算部１０３は（第１バタフライ演算部１００〜第５バタフライ演算部１０４は）、それぞれ、積和演算に用いられる変換係数が２のべき乗であった場合に、ビットシフタとして動作するものであってもよい。こうすれば、多様な変換係数の乗算がされるにも関わらず、各バタフライ演算部の構成を簡潔にし、また、演算の速度を高速にできる。【０１２８】
また、上記の各実施の形態において、第１バタフライ演算部１００〜第４バタフライ演算部１０３は（第１バタフライ演算部１００〜第５バタフライ演算部１０４は）、それぞれ、積和演算の対象となる入力信号又は変換係数が０であった場合に、当該入力信号及び変換係数を乗算することに代えて、出力結果として選択した０を出力するものであってもよい。こうすれば、無駄な乗算がされず、消費電力を減らしたり、装置の構成を簡単にしたり、演算を高速化したりできる。【０１２９】
また、上記の各実施の形態において、第１バタフライ演算部１００〜第４バタフライ演算部１０３は（第１バタフライ演算部１００〜第５バタフライ演算部１０４は）、積和演算の対象となる入力信号又は変換係数が０であった場合に、当該入力信号及び変換係数を乗算すること、及び、前記乗算に代えて出力結果として選択した０を出力することを選択的に行うものであってもよい。【０１３０】
また、上記の各実施の形態において、第２バタフライ演算部１０１は、４点の入力信号のうちの２点の入力信号に対して、変換係数を０とする乗算を行うこと、又は、乗算に代えて演算結果として０を選択することにより、２点基本演算部として機能するものであってもよい。第２バタフライ演算部１０１は、例えばかかる構成をとることにより、図１２（ｂ）に示された第２バタフライ演算部のＡ型１０１Ａに変形する。
【産業上の利用可能性】
【０１３１】
本発明にかかる直交変換装置及び集積回路は、ＭＰＥＧ１，ＭＰＥＧ２，ＭＰＥＧ４，Ｈ．２６４／ＡＶＣ、ＶＣ−１の動画像符号化規格の直交変換処理を１つの高速アルゴリズム直交変換手段で可能とするため動画像符号化などの画像符号化の分野において有用である。
【図１】
2009095959.tif 000003
【図２】
2009095959.tif 000004
【図３】
2009095959.tif 000005
【図４】
2009095959.tif 000006
【図５】
2009095959.tif 000007
【図６】
2009095959.tif 000008
【図７】
2009095959.tif 000009
【図８】
2009095959.tif 000010
【図９】
2009095959.tif 000011
【図１０】
2009095959.tif 000012
【図１１】
2009095959.tif 000013
【図１２】
2009095959.tif 000014
【図１３】
2009095959.tif 000015
【図１４】
2009095959.tif 000016
【図１５】
2009095959.tif 000017
【図１６】
2009095959.tif 000018
【図１７】
2009095959.tif 000019
【図１８】
2009095959.tif 000020
【図１９】
2009095959.tif 000021
【手続補正書】
【提出日】平成21年3月19日(2009.3.19)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は動画像符号化などの画像符号化に関するものである。特に、画像符号／復号化処理における基幹処理である直交変換を行う直交変換装置、集積回路に関するものである。
【背景技術】
【０００２】
従来、画像符号／復号化処理における基幹処理である直交変換を行う直交変換装置がある。
【０００３】
現行の動画圧縮/伸張は、動画符号化規格としてＭＰＥＧ１，ＭＰＥＧ２，ＭＰＥＧ４，Ｈ．２６４／ＡＶＣ，ＶＣ−１等のＭＰＥＧ(Moving picture expert group)が存在し、画像の大きさや利用媒体などの違いによって、それぞれに対応できるように規格で定められている。例えば、ＭＰＥＧ１、ＭＰＥＧ２であればＤＶＤ等の比較的画像サイズの大きな媒体に対して使用され、ＭＰＥＧ４やＨ．２６４／ＡＶＣの一方式では携帯電話や１ｓｅｇ等の比較的画像サイズの小さい媒体に対して使用され、Ｈ．２６４／ＡＶＣ，ＶＣ−１ではＨＤＴＶ等の画像サイズが非常に大きい媒体に対して使用される。
【０００４】
動画符号化を行う場合は、動画像をマクロブロック（ＭＢ）と呼ばれる処理単位に分割し処理を行う。ＭＢは輝度成分と色差成分とで構成されており、輝度成分はＹ０、Ｙ１、Ｙ２、Ｙ３の４個で成り、また色差成分はＣｂ，Ｃｒの２個で成っている。各Ｙ、Ｃ成分は８×８のブロックの６４個の画素成分で構成されている。
【０００５】
ＭＰＥＧ１，ＭＰＥＧ２，ＭＰＥＧ４，Ｈ．２６４／ＡＶＣ，ＶＣ−１に共通する処理として直交変換処理がある。直交変換処理はＹ０，Ｙ１，Ｙ２，Ｙ３，Ｃｂ，Ｃｒ成分毎に行われる処理であり、空間成分である動画像信号を周波数成分に変換する技術である。直交変換処理を行うことによって、自然画像などは周波数成分に変換した際にデータの偏りが発生し、可変長符号化等でのデータ圧縮に有効に作用する。また、この直交変換の技術は動画像の符号化以外にも音声圧縮や信号処理に用いられる基幹処理である。
【０００６】
直交変換処理は、上記で示した符号化規格ごとに異なる。まず、ＭＰＥＧ１，ＭＰＥＧ２，ＭＰＥＧ４ではＤＣＴ（離散コサイン変換）を用いる。また、Ｈ．２６４／ＡＶＣやＶＣ−１といった新規の符号化規格では、アダマール変換や整数精度直交変換を用いる。なお、ＤＣＴは、最も一般的な直交変換の一つであり、変換基底が小数精度を含むため変換前と変換後に誤差を生じる非可逆変換であるのに対して、Ｈ．２６４／ＡＶＣやＶＣ−１で行う直交変換は、変換基底が整数であるため変換前後での誤差が生じない特徴を有している。
【０００７】
図１〜８は従来技術を示す図である。
【０００８】
図１、２は、直交変換の変換行列を示す図である。図１の変換行列は、Ｈ．２６４／ＡＶＣにおける整数精度直交変換の変換行列である。また、図２の変換行列は、ＶＣ−１における整数精度直交変換の変換行列である。なお、後者の図２の変換行列は、Ｈ．２６４／ＡＶＣ規格の規格書に記載されている式を元に行列表現したものである。
【０００９】
図３、図４は、４×４の変換行列を示す図である。
【００１０】
Ｈ．２６４／ＡＶＣやＶＣ−１においては、８×８単位での直交変換に加えて、復号後の画像の誤差を低減するために、４×４単位での直交変換も行う。図３の変換行列は、Ｈ．２６４／ＡＶＣにおける誤差を低減するための４×４単位での直交変換行列である。他方、図４の変換行列は、ＶＣ−１の４×４単位での直交変換行列である。
【００１１】
直交変換処理は、このように行列式で表現されるが、単純な行列演算を行って実現する場合、膨大な演算量が必要となり処理時間や回路規模増大の要因となりうることは既知の問題である。そのため、一般的には行列式の性質を利用して行列の展開を行い、演算回数を減らす高速アルゴリズムで処理する。高速アルゴリズムには、ＣｈｅｎやＷａｎｇといった方式が知られている。
【００１２】
図５は、前記した、直交変換の高速アルゴリズムを処理単位で分割した従来の構成である（特許文献１参照）。図５において、並べ換え器３で入力信号の並べ替えを行う。並べ替えされた入力信号は、バタフライ器５、７、９にて加減算または乗算の処理を行い、直交変換を実現する。
【００１３】
図６は、図５に示したバタフライ器の中身を示す図である。
【００１４】
図６に記載されているバタフライ器の中身は、図６から明らかなように、全ていくつかの２点入力の襷がけ演算器で構成されている。
【００１５】
図７は、２点入力の襷がけ演算器（２点基本演算器）２０を示す図である。
【００１６】
図７における左側の図は、２点基本演算器２０を示す記号である。上述の図６は、この記号により２点入力の襷がけ演算器を示している。また、後の説明により参照される各図も、この記号により２点基本演算器を図示している。
【００１７】
他方、図７の右側の図は、２点基本演算器２０が行う２点の積和演算の処理内容を示している。
【００１８】
２点基本演算器２０は、当該２点基本演算器２０への第１入力（左上の黒丸での入力）と第２入力（左下の黒丸での入力）の積和演算をして、第１出力（右上の黒丸）を出力する。２点基本演算器２０は、より具体的には、（第１入力）×ａ１１＋（第２入力）×ａ１２の積和演算を行い、演算結果を第１出力として出力する。ここで、上記の式におけるａ１１、ａ１２は、２点基本演算器２０が、図７に示された変換係数メモリ２１その他の積和演算の係数を供給する係数供給部より取得する係数である。同様に、２点基本演算器２０は、（第１入力）×ａ１１＋（第２入力）×ａ１２の積和演算を行い、その積和演算の結果を第２出力として出力する。図７の左の記号において、各出力の黒丸へと接続された複数の矢印は、かかる積和演算をそれぞれ示している。
【００１９】
ＭＰＥＧ２といった既存の符号化規格では上記のような高速直交変換アルゴリズムを用いてＤＣＴ処理を実現している。また、Ｈ．２６４／ＡＶＣでは、規格書に記載された手順にて処理を実現するのが一般的で、ＶＣ−１に関しては、その高速アルゴリズムが一般的には知られていないため、行列演算を直接実施することで処理を実現するのが一般的である。
【００２０】
ここで、図６に記載されているバタフライ器の中身は、全ていくつかの２点入力の襷がけ演算器で構成されている。このため、従来の構成により実現できる直交変換は、ＤＣＴやアダマールといった全て２点入力の襷がけ演算に展開できるものに限定される。
【００２１】
一方、Ｈ．２６４／ＡＶＣでは３点入力の演算器が必要になる。
【００２２】
図８は、Ｈ．２６４／ＡＶＣ直交変換において必要な３点入力の演算器を示す図である。
【００２３】
そこで、Ｈ．２６４／ＡＶＣでは、この、図８に示すような構成に展開される３点入力の襷がけ演算を行う演算器を用いた直交変換装置が用いられる。なお、ＶＣ−１に関しては、２点入力の襷がけ演算で構成することが可能である。ただし、従来構成の接続と異なる。
【特許文献１】特開平４−２２９７２４号公報
【発明の開示】
【発明が解決しようとする課題】
【００２４】
しかしながら、複数の符号化規格を何れも処理するプログラムや回路を実現したい場合がある。かかる場合、それぞれの符号化規格で別々のプログラムや回路を個別に持つ必要がある。例えば、昨今の半導体集積回路では複雑かつ様々な動画符号化処理を実現することが要求されている。また、低消費電力化も必須である。このような背景の中で、符号化規格毎に回路を持つことは、半導体集積回路全体の面積を増加させることになり複数の動画符号化処理の実現を妨げることとなる。また、回路規模の増加は電力消費も増加し、低消費電力化の実現をも妨げることとなる。また、演算手段の観点からも個別に演算方法を分けることは、処理の共通化ができず非効率であるとともに、プログラムの管理においても間違いを発生する要因となる。
【００２５】
本発明は上記の問題を解決するものであり、複数の直交変換処理を１つの共通の高速直交変換アルゴリズム演算手段もしくは回路構成で実現することにより、プログラムの共通化や半導体集積回路全体の面積削減を実現する直交変換装置を提供することを目的としている。
【００２６】
つまり、より具体的には、本発明の目的は、従来構成のように基本的な演算手段、演算器の接続関係を変更することなく、Ｈ．２６４／ＡＶＣやＶＣ−１といった新規の符号化規格の直交変換を処理するとともに、ＭＰＥＧ２といった既存のＤＣＴの処理も変換係数の変更だけで実現できる共通の高速直交変換アルゴリズムを行う直交変換装置を提供することである。
【課題を解決するための手段】
【００２７】
この目的を達成するために、本発明の直交変換装置は、複数点の入力信号に対して直交変換を行う直交変換装置であって、前記複数点の入力信号のうちの一部の入力信号に対して、２点の積和演算を行う２点基本演算部を有する第１のバタフライ演算手段と、前記複数点の入力信号のうちの残りの入力信号に対して、４点の積和演算を行う４点基本演算部を有する第２のバタフライ演算手段と、前記第２のバタフライ演算手段での演算結果に対して、２点の積和演算を行う２点基本演算部を有する第３のバタフライ演算手段と、前記第１のバタフライ演算手段での演算結果を保持する第１の遅延手段と、前記第１のバタフライ演算手段での演算結果及び前記第１の遅延手段に保持された演算結果からデータを選択する第１の選択手段と、前記第３のバタフライ演算手段での演算結果を保持する第２の遅延手段と、前記第３のバタフライ演算手段での演算結果及び前記第２の遅延手段に保持された演算結果からデータを選択する第２の選択手段と、前記第１の選択手段で選択されたデータ及び前記第２の選択手段で選択されたデータに対して、２点の積和演算を行う２点基本演算部を有する第４のバタフライ演算手段と、前記第１〜４のバタフライ演算手段での積和演算に用いられる変換係数を前記第１〜４のバタフライ演算手段に供給する変換係数供給手段とを備え、前記第２のバタフライ演算手段は、当該第２のバタフライ演算手段の前記４点基本演算部が行う積和演算を、前記第１〜４のバタフライ演算手段が複数種類の直交変換を行うための、所定の３点演算および２点演算の間で切り替えることを特徴とする。
【００２８】
これにより、従来構成のように基本的な演算手段、演算器の接続関係を変更することなく、第２のバタフライ演算手段が有する４点基本演算部が行う積和演算が所定の３点演算および２点演算の間で切り替えられることで、Ｈ．２６４／ＡＶＣやＶＣ−１といった新規の符号化規格の直交変換を処理するとともに、ＭＰＥＧ２といった既存のＤＣＴの処理も変換係数の変更だけで実現でき、複数の処理に共通の高速直交変換アルゴリズムを行う直交変換装置を提供することができる。
【００２９】
そして、こうして複数の直交変換処理を１つの共通の高速直交変換アルゴリズム演算手段もしくは回路構成で実現することができることで、プログラムの共通化や半導体集積回路全体の面積削減、低消費電力化、複数の動画符号化処理の実現の容易化、プログラムの管理における間違い発生の抑止を実現することができる。
【発明の効果】
【００３０】
前記構成によって、共通の直交変換手段を用いて、複数の直交変換、特に基底の性質が異なる直交変換の処理を実現できる。その効果は、特にプログラムの共通化や半導体集積回路全体の面積削減を実現することを可能とする。
【発明を実施するための最良の形態】
【００３１】
以下、本発明の直交変換装置、集積回路の実施の形態について、図面を参照しながら説明する。
【００３２】
（実施の形態１）
図９は、直交変換装置５０を示す図である。
【００３３】
直交変換装置５０は、複数点の入力信号に対して直交変換を行う。直交変換装置５０は、構成が簡単でありながらも、ＤＣＴの直交変換、Ｈ．２６４／ＡＶＣの直交変換およびＶＣ−１の直交変換の３種類の直交変換のうちの何れの直交変換も行う。なお、直交変換装置５０は、基本となるアルゴリズムにＣｈｅｎの方式を採用した演算を行うものである。
【００３４】
具体的には、直交変換装置５０は、第１バタフライ演算部１００と、第２バタフライ演算部１０１と、第３バタフライ演算部１０２と、第４バタフライ演算部１０３と、第５バタフライ演算部１０４と、第３遅延部２０１と、第２遅延部２０２と、第１遅延部２０３と、第３選択部３０１と、第２選択部３０２と、第１選択部３０３と、第４選択部３０４と、変換係数供給部４０１とを備える。
【００３５】
図１０は、図９に示される第１バタフライ演算部１００〜第４バタフライ演算部１０３の詳細を示す図である。図１０（ａ）〜（ｄ）は、それぞれ、第１バタフライ演算部１００、第２バタフライ演算部１０１、第３バタフライ演算部１０２、第４バタフライ演算部１０３の詳細を示す。
【００３６】
なお、直交変換装置５０は、例えば、直交変換を行って動画を表示するテレビ等の画像表示装置であってもよいし、動画を記録するために直交変換を行うＤＶＤレコーダその他の動画記録装置であってもよいし、撮像した動画を記録するために直交変換を行うムービーカメラなどの動画撮像装置であってもよいし、動画符号化装置であってもよい。
【００３７】
第１バタフライ演算部１００は（図１０（ａ）、図９）、直交変換装置５０への複数点の入力信号のうちの一部の入力信号に対して、２点の積和演算を行う２点基本演算部を有する。なお、ここで、２点基本演算部とは、図７で説明した２点基本演算器２０である。第１バタフライ演算部１００は、具体的には、図１０（ａ）に示されるように構成された４個の２点基本演算部を備える。第１バタフライ演算部１００は、直交変換装置５０への複数点の入力信号のうちの、偶数番の入力信号に対して、これら４個の２点基本演算部によって演算を行う。
【００３８】
第３遅延部２０１は（図９）、直交変換装置５０への複数点の入力信号のうちの残りの入力信号を保持する。ここで、残りの入力信号とは、直交変換装置５０への入力信号のうちで、上述した偶数番の入力信号つまり第１バタフライ演算部１００により演算される入力信号を除いた、残りの入力信号、すなわち、奇数番の入力信号である。第３選択部３０１は（図９）、直交変換装置５０への複数点の入力信号のうちの残りの入力信号及び第１遅延部２０３に保持された入力信号からデータを選択する。ここで、残りの入力信号とは、上述の場合と同じであり、奇数番の入力信号である。第３選択部３０１は、直交変換装置５０が、上記の３種類の直交変換のうちで、ＤＣＴの直交変換をする場合、および、Ｈ．２６４／ＡＶＣの直交変換をする場合には、直交変換装置５０へのこの奇数番の入力信号を選択する一方で、直交変換装置５０がＶＣ−１の直交変換をする場合には、直交変換装置５０への奇数番の入力信号を選択するときと、第１遅延部２０３に保持された入力信号を選択するときとを切り替える。
【００３９】
第２バタフライ演算部１０１は（図１０（ｂ）、図９）、直交変換装置５０への複数点の入力信号のうちの残りの入力信号に対して、４点の積和演算を行う４点基本演算部を有する。第２バタフライ演算部１０１は、第３選択部３０１（図９）で選択されたデータに対して積和演算を行う。第２バタフライ演算部１０１は、第３選択部３０１が、直交変換装置５０への複数点の入力信号のうちの残りの入力信号を選択すると、残りの入力信号に対する演算を行い、第１遅延部２０３に保持された入力信号を選択すると、第１遅延部２０３に保持された入力信号に対する演算を行う。
【００４０】
ここで、４点基本演算部は、図７が示す２点基本演算部（２点基本演算器）が２点入力である基本演算部であるのに対して、４点入力にされた基本演算部である。４点基本演算部は、第１〜第４の入力（図１０（ｂ）の第２バタフライ演算部１０１に示された左側の４つの黒丸での入力）に基づいて、それら４つの入力を積和演算した演算結果を、第１〜第４の出力（右側の４つの黒丸での出力）としてそれぞれ出力する。換言すれば、４点基本演算部は、４点の入力信号と４つの変換係数を演算した結果を加算する構成を４個備え、それら４個の結果をそれぞれ４つの出力とする。
【００４１】
第３バタフライ演算部１０２は（図１０（ｃ）、図９）、第２バタフライ演算部１０１での演算結果に対して、２点の積和演算を行う２点基本演算部を有する。第３バタフライ演算部１０２は、図１０（ｃ）に示されるように構成された３個の２点基本演算部を有する。
【００４２】
第１遅延部２０３は（図９）、第１バタフライ演算部１００での演算結果を保持する。
【００４３】
第２遅延部２０２は（図９）、第３バタフライ演算部１０２での演算結果を保持する。
【００４４】
第１選択部３０３は（図９）、第１バタフライ演算部１００での演算結果及び第１遅延部２０３に保持された演算結果からデータを選択する。第１選択部３０３は、直交変換装置５０が３種類の直交変換のうちでＤＣＴの直交変換をする場合およびＨ．２６４／ＡＶＣの直交変換をする場合には、第１バタフライ演算部１００での演算結果を選択する一方で、ＶＣ−１の直交変換をする場合には、第１遅延部２０３に保持された演算結果を選択する。
【００４５】
第２選択部３０２は（図９）、第３バタフライ演算部１０２での演算結果及び第２遅延部２０２に保持された演算結果からデータを選択する。第２選択部３０２は、３種類の直交変換のうちで、直交変換装置５０がＤＣＴの直交変換をする場合およびＨ．２６４／ＡＶＣの直交変換をする場合には、第３バタフライ演算部１０２での演算結果を選択し、ＶＣ−１の直交変換をする場合には、第３バタフライ演算部１０２での演算結果の一部を第１の部分に有すると共に第２遅延部２０２に保持された演算結果を第２の部分に有するそれら第１および第２の２つの部分を集めてなるデータを選択する。この点の詳細については後の説明により示される（図１４、図１５参照）。
【００４６】
第４バタフライ演算部１０３は（図１０（ｄ）、図９）、第１選択部３０３で選択されたデータ及び第２選択部３０２で選択されたデータに対して、２点の積和演算を行う２点基本演算部を有する。第３バタフライ演算部１０２は、図１０（ｃ）に示されるように構成された４個の２点基本演算部を有する。
【００４７】
変換係数供給部４０１（図９）は、第１バタフライ演算部１００〜第４バタフライ演算部１０３での積和演算に用いられる変換係数をそれら第１バタフライ演算部１００〜第４バタフライ演算部１０３に供給する。変換係数供給部４０１は、第１バタフライ演算部１００〜第４バタフライ演算部１０３で繰り返される積和演算の毎処理単位で、それら第１バタフライ演算部１００〜第４バタフライ演算部１０３に供給する変換係数を変更する。変換係数供給部４０１は、直交変換装置５０がＤＣＴの直交変換をする場合には、第１バタフライ演算部１００〜第４バタフライ演算部１０３が直交変換をするための変換係数を供給し、Ｈ．２６４／ＡＶＣの直交変換をする場合には、Ｈ．２６４／ＡＶＣの直交変換をするための変換係数を供給し、ＶＣ−１の直交変換をする場合には、ＶＣ−１の直交変換をするための変換係数を供給する。つまり、変換係数供給部４０１は、直交変換装置５０が行う直交変換の種類に応じて、それぞれ、行われる種類の直交変換のための変換係数を提供する。
【００４８】
なお、第１遅延部２０３、第２遅延部２０２、第３遅延部２０１の少なくとも一部は、たとえば、バッファや、メモリ、レジスタによって構成されていてもよい。
【００４９】
ここに、第１選択部３０３は、換言すれば、第１バタフライ演算部１００での演算結果及び第１遅延部２０３に保持された演算結果からいずれかを選択するものといえる。同様に、第２選択部３０２は、第３バタフライ演算部１０２での演算結果及び第２遅延部２０２に保持された演算結果からいずれかを選択するものといえる。また、第３選択部３０１は、当該直交変換装置５０への複数点の入力信号のうちの残りの入力信号及び第１遅延部２０３に保持された入力信号からいずれかを選択するものといえる。
【００５０】
第１バタフライ演算部１００〜第４バタフライ演算部１０３の４つの演算部の全体は、４段パイプライン演算回路５１（図１１）を構成する。
【００５１】
図１１は、４段パイプライン演算回路５１を示す図である。
【００５２】
４段パイプライン演算回路５１は、第１バタフライ演算部１００と、第２バタフライ演算部１０１と、第３バタフライ演算部１０２と、第４バタフライ演算部１０３との全体よりなる。なお、図９は、４段パイプライン演算回路５１の図示を省略している。４段パイプライン演算回路５１は、Ｃｈｅｎの高速アルゴリズムによるＤＣＴの直交変換の４段パイプライン演算回路と、第２バタフライ演算部１０１の部分が異なり、他の部分、つまり第１バタフライ演算部１００と、第３バタフライ演算部１０２と、第４バタフライ演算部１０３との各部分は、それぞれ、Ｃｈｅｎの４段パイプライン演算回路におけるそれらの部分に対応する各部分とそれぞれ同じである。したがって、４段パイプライン演算回路５１は、Ｃｈｅｎの高速アルゴリズムによる４段パイプライン演算回路を第１バタフライ演算部１００と、第２バタフライ演算部１０１と、第３バタフライ演算部１０２と、第４バタフライ演算部１０３との４つの部分に対応する箇所で分割して、第２バタフライ演算部１０１に対応する箇所は、第２バタフライ演算部１０１に置き換えたものである。
【００５３】
以下の説明は、Ｃｈｅｎの４段パイプライン演算回路との関係により、第１バタフライ演算部１００〜第４バタフライ演算部１０３の更に詳細を示す。第１バタフライ演算部１００は、Ｃｈｅｎの４段パイプライン演算回路の第１〜３段目のうちで、偶数番目の入力信号を処理する箇所の回路と同じ回路である。第２バタフライ演算部１０１は、Ｃｈｅｎの４段パイプライン演算回路の第１段目のうちで、奇数番目の入力信号を処理する部分と同じ回路である。第３バタフライ演算部１０２は、Ｃｈｅｎの４段パイプライン演算回路の第２〜３段目の部分のうちで、奇数番目の入力信号を処理する部分と同じである。第４バタフライ演算部１０３は、Ｃｈｅｎの４段パイプライン演算回路の第４段目の部分と同じである。
【００５４】
以上のように、直交変換装置５０は、何らかの処理を施した入力信号に対して直交変換処理を行う高速アルゴリズム直交変換装置を、積和演算処理を行う２点基本演算部と４点基本演算部で構成した１００〜１０３で示す４つのバタフライ演算部に分割して構成され、前記バタフライ演算部１０１、１０３の入力に、入力信号を遅延させる遅延部２０３、２０２、２０１と、前記遅延部からの出力と前記入力信号ないしバタフライ演算部の演算結果とを選択し、バタフライ演算部１０１ないしは１０３への入力を選択する選択部３０１、３０２、３０３と、前記各バタフライ演算部に直交変換の変換係数を供給する変換係数供給部４０１とを備える。
【００５５】
次の説明は、このような構成を備える直交変換装置５０の動作を述べる。まず、直交変換装置５０がＤＣＴの直交変換を行う動作について説明する。
【００５６】
図１２は、第２バタフライ演算部１０１が変形してなる、第２バタフライ演算部のＡ型１０１Ａおよび第２バタフライ演算部のＢ型１０１Ｂを示す図である。図１２（ａ）は、図１０（ｂ）および図１１に示された第２バタフライ演算部１０１の構成を再掲する図である。図１２（ｂ）は、第２バタフライ演算部１０１が変形した第２バタフライ演算部のＡ型１０１Ａ（図１２（ｂ）右側）を示す図である。図１２（ｃ）は、第２バタフライ演算部１０１が変形した第２バタフライ演算部のＢ型１０１Ｂ（図１２（ｃ）右側）を示す図である。
【００５７】
第２バタフライ演算部１０１は、直交変換装置５０がＤＣＴの直交変換を行う時には、図１２（ｂ）に示された第２バタフライ演算部のＡ型１０１Ａに変形する。
【００５８】
第２バタフライ演算部のＡ型１０１Ａは、２個の２点基本演算部を組み合わせた演算回路であり、つまり、それら２個の２点基本演算部のうちで一方の基本演算部はこの第２バタフライ演算部１０１への第２入力および第３入力を当該一方の２点基本演算部の第１入力および第２入力にするのと共に、当該第２バタフライ演算部１０１の第２出力および第３出力を当該２点基本演算部の第１出力および第２出力とするものである。また、もう一方の２点基本演算部は、当該第２バタフライ演算部１０１への第１入力、第４入力、第１出力および第４出力をそれぞれ、当該もう一方の２点基本演算部の第１入力、第２入力、第１出力および第２出力とするものである。
【００５９】
ここで、この、第２バタフライ演算部のＡ型１０１Ａは、Ｃｈｅｎの４段パイプライン演算回路における当該第２バタフライ演算部１０１に対応した部分と同じ構成を有するものである。
【００６０】
このため、変換係数供給部４０１によりDCTの変換係数が供給されるとともに、この第２バタフライ演算部１０１が図１２（ｂ）を参照して上記に説明された第２バタフライ演算部のＡ型１０１Ａの形に変形することによって、第１バタフライ演算部１００〜第４バタフライ演算部１０３つまり４段パイプライン演算回路５１がＣｈｅｎの高速アルゴリズムに基づく直交変換のための積和演算を行い、ＭＰＥＧ１，ＭＰＥＧ２，ＭＰＥＧ４で使用されているＤＣＴの直交変換を実現することができる。
【００６１】
なお、第２バタフライ演算部１０１は、第２バタフライ演算部のＡ型１０１Ａに変形する方法として、例えば、変換係数供給部４０１が供給する変換係数０に基づいて変形する方法を行うものとしてもよいし、演算結果を出力するのではなく０を選択して出力することで変形する方法を行うものであってもよいし、他の方法により変形を行うものであってもよい。
【００６２】
ここで、第２バタフライ演算部１０１は、変換係数０を受けて変形をする場合には、全ての変換係数のうちで、図１２（ｂ）左側の第２バタフライ演算部１０１に含まれる破線が示す乗算の変換係数に、値０を変換係数供給部４０１から受けることで、変形を行う（図７参照）。
【００６３】
次に、Ｈ．２６４／ＡＶＣの動作について説明する。
【００６４】
第２バタフライ演算部１０１は、直交変換装置５０がＤＣＴの直交変換を行う時には、図１２（ｃ）に示された第２バタフライ演算部のＢ型１０１Ｂに変形する。
【００６５】
第２バタフライ演算部のＢ型１０１Ｂは、前述の図８により示される、Ｈ．２６４／ＡＶＣの直交変換に必要となる、３点入力の襷がけ演算が行われる演算回路５０１と同じ回路である。
【００６６】
図１３は、Ｈ．２６４／ＡＶＣの直交変換を行う４段パイプライン演算回路である、Ｈ．２６４／ＡＶＣ用の直交変換演算構成５００を示す図である。
【００６７】
Ｈ．２６４／ＡＶＣ用の直交変換演算構成５００は、図１３の左下の図示する箇所、すなわち、第２バタフライ演算部１０１の位置に対応する箇所に、先述の図８に示される３点入力の襷がけ演算が行われる演算回路５０１を有する。
【００６８】
本実施形態の４段パイプライン演算回路５１は、第２バタフライ演算部１０１が、この図１３の演算回路５０１と同じものである第２バタフライ演算部のＢ型１０１Ｂに変形することにより、図５に示されたＨ．２６４／ＡＶＣ直交変換演算構成と等価になる。
【００６９】
このため、変換係数供給部４０１よりＨ．２６４／ＡＶＣの変換係数を供給するとともに、第２バタフライ演算部１０１が図１２（ｃ）に示す第２バタフライ演算部のＢ型１０１Ｂの形に変形することによって、Ｈ．２６４／ＡＶＣで使用されている直交変換（整数精度直交変換）を実現できる。
【００７０】
なお、第２バタフライ演算部１０１は、図１２（ｃ）の第２バタフライ演算部のＢ型１０１Ｂに変形する方法として、変換係数供給部４０１が当該第２バタフライ演算部１０１に供給する変換係数０に基づいて変形する方法を行ってもよいし、演算結果を出力するのではなく０を選択して出力することにより変形する方法を行ってもよいし、他の方法によって変形を行うものであってもよい。
【００７１】
次に、ＶＣ−１の直交変換の動作を説明する。
【００７２】
第２バタフライ演算部１０１は、直交変換装置５０がＶＣ−１の直交変換を行う場合には、第１回目および第２回目の２回の演算を行う。
【００７３】
図１４は、直交変換装置５０がＶＣ−１の直交変換を行う場合に第２バタフライ演算部１０１が行う２回の演算を説明する図である。
【００７４】
図１５は、直交変換装置５０がＶＣ−１の直交変換を行う場合に第２バタフライ演算部１０１が行う２回の演算の式を示す図である。
【００７５】
図１４の最左端の上段に示されるｘ１、ｘ３、ｘ５、ｘ７は、直交変換装置５０への入力信号の奇数番のものである。他方、図１４の最左端の下段に示されたｘ１＿ｄ、ｘ５＿ｄ、ｘ３＿ｄ、ｘ７＿ｄは、第３遅延部２０１（図９）に保持された入力信号である。そして、図１５におけるｄ１、ｄ３、ｄ５、ｄ７は、それぞれ、図１４において、ｘ１、ｘ３、ｘ５、ｘ７により図示した入力信号と同じ信号を指す。
【００７６】
図１４の上段は、第２バタフライ演算部１０１が行う１回目の演算を示し、下段は、第２バタフライ演算部１０１が行う２回目の演算を示している。なお、図１４の上下段における第２バタフライ演算部１０１は、直交変換装置５０がＶＣ−１の直交変換を行うため、第２バタフライ演算部のＡ型１０１Ａに変形している。
【００７７】
第２バタフライ演算部１０１が行う１回目の演算は次の通りである。
【００７８】
第３選択部３０１は、第２バタフライ演算部１０１が１回目の演算を行う時に、第１遅延部２０３に保持された入力信号ではなく、直交変換装置５０への入力信号の方を、第２バタフライ演算部１０１が演算をするデータとして選択する。つまり、第３選択部３０１は、第一回目の演算の時に、図１４の左端上段に示されたｘ１、ｘ５、ｘ３、ｘ７を選択する。第２バタフライ演算部１０１は、１回目の演算の時に、図１５の最左に示された、４×ｄ１−１６×ｄ７と、１５×ｄ５−９×ｄ３と、９×ｄ５+１５×ｄ３と、１６×ｄ１＋４×ｄ７との積和演算をそれぞれ行う。変換係数供給部４０１は、かかる演算を行う第２バタフライ演算部１０１が変換係数を１回目の演算の際に第２バタフライ演算部１０１に供給する。
【００７９】
第３バタフライ演算部１０２は、この１回目の演算の時に、上述した第２バタフライ演算部１０１の演算の演算結果に対して演算を行い、具体的には、図１５中央のｙ１＝（４×ｄ１−１６×ｄ７）＋（１５×ｄ５−９×ｄ３）と、ｙ２＝（９×ｄ５＋１５×ｄ３）＋（１６×ｄ１＋４×ｄ７）の演算を行う。なお、第３バタフライ演算部１０２は、このとき、図１４上段の第２バタフライ演算部１０１に示される０が表すように、第１出力および第４出力に上述の演算結果ｙ１およびｙ２を出力すると共に、第２出力および第３出力は０とする。変換係数供給部４０１は、かかる演算を行わせる変換係数を、１回目の演算の時に第３バタフライ演算部１０２に供給する。
【００８０】
第３遅延部２０１は、かかる第２バタフライ演算部１０１および第３バタフライ演算部１０２による１回目の演算の間、上述したｄ１、ｄ３、ｄ５、ｄ７、換言するならばｘ１、ｘ３、ｘ５、ｘ７（図１４左端の上段）を保持する。
【００８１】
他方、第２バタフライ演算部１０１が行う２回目の演算は次の通りである。
【００８２】
第３選択部３０１は、上述した演算の間第３遅延部２０１に保持されたｄ１、ｄ３、ｄ５、ｄ７を、第２バタフライ演算部１０１および第３バタフライ演算部１０２が２回目の演算を行う時に選択する。なお、図１４下段の左端に示されるｘ１＿ｄ、ｘ３＿ｄ、ｘ５＿ｄ、ｘ７＿ｄは、このとき選択されるｄ１、ｄ３、ｄ５、ｄ７をそれぞれ示す。
【００８３】
第２バタフライ演算部１０１は、２回目の演算の時、図１５の最下段に示されるように、９×ｄ１＋１５×ｄ７、４×ｄ５−１６×ｄ３、−１６×ｄ５−４×ｄ３、１５×ｄ１−９×ｄ７の演算を行う。変換係数供給部４０１は、かかる演算を行う第２バタフライ演算部１０１にさせる変換係数を第２バタフライ演算部１０１に２回目の演算の時に供給する。
【００８４】
第３バタフライ演算部１０２は、この第２バタフライ演算部１０１の演算結果に基づいて、ｙ３＝（９×ｄ１＋１５×ｄ７）＋（４×ｄ５−１６×ｄ３）、ｙ４＝（−１６×ｄ５−４×ｄ３）＋（１５×ｄ１−９×ｄ７）の演算を、２回目の演算として、行う。
【００８５】
なお、変換係数供給部４０１は、第２バタフライ演算部１０１に対して、１回目の演算で第２バタフライ演算部１０１に供給する演算係数とは異なる演算係数を供給する。同様に、変換係数供給部４０１は、第３バタフライ演算部１０２に対しても、１回目の演算と２回目の演算との間で、互いに異なる変換係数を供給する。
【００８６】
第１遅延部２０３（図９）は、第２バタフライ演算部１０１および第３バタフライ演算部１０２が１回目の演算を行う時に、その演算と並行して第１バタフライ演算部１００が行った演算の演算結果を保持する。
【００８７】
第２遅延部２０２は、１回目の演算での第２バタフライ演算部１０１および第３バタフライ演算部１０２がした演算の演算結果、つまり１回目の演算での第３バタフライ演算部１０２の出力たる演算結果を保持する。第２遅延部２０２は、第２バタフライ演算部１０１および第３バタフライ演算部１０２が２回目の演算を終えるまで、この保持を行う。
【００８８】
第１選択部３０３は、第２バタフライ演算部１０１が２回目の演算を行う時に、直交変換装置５０はＶＣ−１の直交変換をするので、第１遅延部２０３に保持された演算結果を選択する。
【００８９】
第２選択部３０２は、２回目の演算で第３バタフライ演算部１０２が出力する、図１５および図１４下段に示されたｙ３、ｙ４と、１回目の演算の時から第２遅延部２０２が保持する図１５および図１４上段に示されたｙ１、ｙ２とを、第４バタフライ演算部１０３が演算に用いるデータとして選択する。つまり、第２選択部３０２は、ｙ１、ｙ２を有する第１の部分と、ｙ３、ｙ４を有する第２の部分とを集めてなるデータ、つまりｙ１、ｙ２、ｙ３、ｙ４からなるデータを、第４バタフライ演算部１０３が用いるデータに選択する。
【００９０】
第４バタフライ演算部１０３は、第２選択部３０２がこうして選択したデータを用いることで、第２バタフライ演算部１０１および第３バタフライ演算部１０２による演算結果のデータのうち、ｙ１、ｙ２、ｙ３、ｙ４の４つのデータを演算に用いる。
【００９１】
これにより、変換係数供給部４０１よりＶＣ−１の変換係数を供給するとともに、第２バタフライ演算部１０１を図１２に示すような第２バタフライ演算部のＡ型１０１Ａの形に変形し、更に、図１４に示すように第３遅延部２０１を用いて、入力信号を２回入力するとともに変換係数供給部４０１より１回目と２回目の変換係数を変更して供給し、演算させることによって、ＶＣ−１で使用されている直交変換（整数精度直交変換）を実現できる。
【００９２】
なお、第２バタフライ演算部１０１は、第２バタフライ演算部のＡ型１０１Ａに変形する方法として、変換係数供給部４０１が供給する変換係数０に基づいて変形する方法を行うものとしてもよいし、演算結果を出力するのではなく０を選択して出力することで変形する方法を行うものとしてもよいし、他の方法により変形をするものであってもよい。
【００９３】
なお、このように、直交変換装置５０は、第２バタフライ演算部１０１と第３遅延部２０１とを用いて、奇数側の入力信号を当該第２バタフライ演算部１０１に２度入力し、その都度、変換係数を逐次切り替える構成によって、下段側（奇数側）の演算をバタフライ処理ではなく、直接行列演算を行う。
【００９４】
また、第２バタフライ演算部１０１は、第２バタフライ演算部１０１の４点基本演算部が行う積和演算を、４段パイプライン演算回路５１が複数種類の直交変換を行うための、所定の３点演算（図１２（ｂ）での演算）および２点演算（図１２（ａ）での演算）の間で切り替える。
【００９５】
（実施の形態２）
続けて、以下の説明は、実施の形態２について述べる。
【００９６】
図１６は、実施の形態２に係る直交変換装置５０ａを示す図である。
【００９７】
直交変換装置５０ａは、実施の形態１の構成に加えて、更に、第５バタフライ演算部１０４と、第４選択部３０４とを備える。
【００９８】
第５バタフライ演算部１０４は、前記複数点の入力信号のうちの残りの入力信号に対して、４点の積和演算を行う４点基本演算部を有する。第５バタフライ演算部１０４は、実施形態１で説明される第２バタフライ演算部１０１と並列に配置され、第２バタフライ演算部１０１が有する構成と同じ構成を有する（図１０（ｂ）参照）。
【００９９】
第４選択部３０４は、第２バタフライ演算部１０１及び第５バタフライ演算部１０４での演算結果からデータを選択し、変換係数供給部４０１は、第５バタフライ演算部１０４での積和演算に用いられる変換係数を第５バタフライ演算部１０４に供給し、第３バタフライ演算部１０２は、第４選択部３０４で選択されたデータに対して積和演算を行う。
【０１００】
第２バタフライ演算部１０１は、先述した実施の形態１において第２バタフライ演算部１０１がした１回目の演算を行う。
【０１０１】
第５バタフライ演算部１０４は、他方の、実施の形態１において第２バタフライ演算部１０１がした２回目の演算を行う。
【０１０２】
図１７は、直交変換装置５０ａがＶＣ−１の直交変換をする際の演算の流れを示す図である。図１７中段に示された第２バタフライ演算部１０１および第３バタフライ演算部１０２は、それらが行う実施の形態１における１回目の演算、つまり、ｙ１およびｙ２が演算結果たる演算（図１４、図１５を参照）を示す。図１７下段の第５バタフライ演算部１０４および第３バタフライ演算部１０２は、それらが行う実施の形態１における２回目の演算、つまり、ｙ３およびｙ４が演算結果たる演算（図１４、図１５を参照）を示す。
【０１０３】
第４バタフライ演算部１０３は、これら、図１７中段および下段の両者の演算結果、つまりｙ１、ｙ２と、ｙ３、ｙ４に基づいて演算を行う。
【０１０４】
かかる直交変換装置５０ａによれば、何らかの処理を施した入力信号に対して直交変換処理を行う高速アルゴリズム直交変換装置を、積和演算処理を行う２点基本演算部と４点基本演算部で構成した１０１、１０４、１０２、１０３、１００で示す５つのバタフライ演算部と、第４バタフライ演算部１０３の入力に設けられた、入力信号を遅延させる第２遅延部２０２および第１遅延部２０３と、遅延部からの出力とバタフライ演算部からの出力とからデータを選択し、バタフライ演算部１０２ないしは１０３への入力を選択する選択部３０２、３０３、３０４と、各バタフライ演算部に変換係数を供給する変換係数供給部４０１とで構成する。このとき前記第５バタフライ演算部１０４は前記第２バタフライ演算部１０１と同じものである。そして、実施の形態１で入力信号を２回遅延させて入力する代わりに、入力信号を同時に同じものである第２バタフライ演算部１０１および第５バタフライ演算部１０４との２つのバタフライ演算部に供給し、変換係数供給部４０１からも同時に別々の変換係数をそれぞれに供給し、演算することによって、ＶＣ−１の直交変換を実現する。これにより、２回目の演算での第５バタフライ演算部１０４の処理が、１回目の演算での第２バタフライ演算部での処理と同時並列に行われて、第１回および第２回の両者の演算の演算結果を共に用いた第４バタフライ演算部１０３の演算結果を早く出力できるようになり、ＶＣ−１の直交変換を高速にできる。
【０１０５】
（実施の形態３）
次に、以下の説明は、４×４の変換行列の直交変換（先述の図３、図４参照）が行われる場合の実施の形態３を述べる。
【０１０６】
図１８は、４×４直交変換を行う実施の形態３を示す図である。図１８（ａ）は、図４に示された、ＶＣ−１における誤差を低減するための４×４の直交変換の変換行列を再掲するものである。図１８（ｂ）は、図１８（ａ）の変換行列の第２行と第３行を入れ替えた行列を左辺に、左辺の式を変形した式を右辺に示す行列の式を示すものである。図１８（ｃ）は、第１バタフライ演算部１００が図１８（ｂ）の行列の演算を行う際の変換係数を示す図である。
【０１０７】
第１バタフライ演算部１００は、４点の高速直交変換を行う。第１バタフライ演算部１００は、直交変換装置５０がＶＣ−１の直交変換をする場合に、変換係数供給部４０１から供給される図１８（ｃ）の変換係数の演算、つまり図１８（ｂ）により示される行列の演算をして、ＶＣ−１の誤差を低減させる４点の高速直交変換の演算を行う。
【０１０８】
なお、第１バタフライ演算部１００は、上述した、図４に示されたＶＣ−１の４×４の変換行列に基づいた、ＶＣ−１の誤差を低減させるための４点の高速直交変換を行うのと同様に、図３に示されたＨ．２６４／ＡＶＣの４×４の変換行列に基づいた、Ｈ．２６４／ＡＶＣの誤差を低減させるための４点の高速直交変換の演算も行う。
【０１０９】
この実施の形態３であれば、第１バタフライ演算部１００は、図３もしくは図４により示された４×４の直交変換を実現することが可能であり、第１バタフライ演算部１００に４つの入力信号を供給するとともに、変換係数供給部４０１から４×４の変換係数を第１バタフライ演算部１００に入力することによって、Ｈ．２６４／ＡＶＣおよびＶＣ−１の４×４の直交変換を実現することができ、直交変換装置５０だけでＨ．２６４／ＡＶＣおよびＶＣ−１の４×４の直交変換まで実現できる。
【０１１０】
以上説明した実施の形態１〜３の直交変換装置５０、５０ａであれば、従来構成のように基本的な演算手段、演算器の接続関係を変更することなく、第２バタフライ演算部１０１が有する４点基本演算部が行う演算が切り替えられることで、Ｈ．２６４／ＡＶＣやＶＣ−１といった新規の符号化規格の直交変換を処理するとともに、ＭＰＥＧ２といった既存のＤＣＴの直交変換の処理も変換係数の変更だけで実現でき、複数の処理に共通の高速直交変換アルゴリズムを行う直交変換装置を提供することができる。
【０１１１】
そして、これにより、複数の直交変換を１つの共通の高速直交変換アルゴリズム演算手段もしくは回路構成（４段パイプライン演算回路５１）で実現することができて、プログラムの共通化や半導体集積回路全体の面積削減、低消費電力化、複数の動画符号化処理の実現の容易化、プログラムの管理における間違い発生の抑止を実現することができる。
【０１１２】
なお、実施の形態１の直交変換装置５０（図９）は、何らかの処理を施した入力信号に対して、バタフライ演算手段構成をもととして、直交変換処理を行う高速アルゴリズム直交変換手段を、積和演算処理を行う２点基本演算部と４点基本演算部で構成した４つのバタフライ演算部１００〜１０３に分割し、前記バタフライ演算部１０１、１０３の入力には、入力信号を遅延させる遅延部２０１〜２０３と、前記遅延部２０１〜２０３からの出力と前記入力信号とを選択し、前記バタフライ演算部への入力を選択する選択部３０１〜３０３とを有し、前記バタフライ演算部に直交変換係数を供給する変換係数供給部４０１を備える。
【０１１３】
他方、実施の形態２の直交変換装置５０ａ（図１６）は、何らかの処理を施した入力信号に対して直交変換処理を行う高速アルゴリズム直交変換手段を、積和演算処理を行う２点基本演算部と４点基本演算部で構成した４つのバタフライ演算部１００〜１０３に分割し、前記第４バタフライ演算部１０３の入力には、入力信号を遅延させる遅延部２０２、２０３と、前記遅延部２０２、２０３からの出力と前記入力信号とを選択し、前記第４バタフライ演算部１０３への入力を選択する選択部３０２、３０３とを有し、前記第２バタフライ演算部１０１の箇所を並列に第２バタフライ演算部１０１と第５バタフライ演算部１０４の２つとして配置し、前記第２バタフライ演算部１０１と第５バタフライ演算部１０４を選択する第４選択部３０４と、前記各バタフライ演算部に直交変換の変換係数を供給する変換係数供給部４０１とを備える。
【０１１４】
前記構成によって、前記変換係数供給部４０１よりＤＣＴの変換係数および、前記４点基本演算部を２点基本演算部と等価なものにするために変換係数０を供給することによってＭＰＥＧ１、ＭＰＥＧ２、ＭＰＥＧ４を処理するための直交変換手段を実現し、また、前記変換係数供給部よりＨ．２６４／ＡＶＣの変換係数および、前記４点基本演算部を３点演算部と等価なものにするために変換係数０を供給することによりＨ．２６４／ＡＶＣを処理するための直交変換手段を実現する（図３参照）。更に、前記変換係数供給部４０１よりＶＣ−１の変換係数および、前記４点基本演算部を２点演算部と等価なものにするために変換係数０を供給することに加えて、前記遅延部により入力データを２回入力することとその都度変換係数を入れ替えることによって、奇数側の演算を直接行列演算することでＶＣ−１の直交変換を処理するための直交変換手段を実現する（図１４参照）。
【０１１５】
これにより、直交変換装置５０、５０ａによれば、共通の直交変換手段を用いて、複数の直交変換、特に基底の性質が異なる直交変換の処理を実現できる。
【０１１６】
なお、本発明は、かかる実施の形態に限定されるものではない。
【０１１７】
たとえば、本発明は１チップの半導体集積回路として、次のように実施してもよい。
【０１１８】
図１９は、集積回路５０ｃを示す図である。
【０１１９】
集積回路５０ｃは、複数点の入力信号に対して直交変換を行う集積回路である。
【０１２０】
なお、集積回路５０ｃは、請求の範囲に記載される「集積回路」の一例であり、かつ、同じく請求の範囲に記載される「直交変換装置」の一例でもある。
【０１２１】
集積回路５０ｃは、直交変換回路６０１と制御部６０２とを備える。
【０１２２】
直交変換回路６０１は、実施の形態１における直交変換装置５０の各部分（図９）を備え、すなわち、第１バタフライ演算部１００と、第２バタフライ演算部１０１と、第３バタフライ演算部１０２と、第４バタフライ演算部１０３と、第５バタフライ演算部１０４と、第３遅延部２０１と、第２遅延部２０２と、第１遅延部２０３と、第３選択部３０１と、第２選択部３０２と、第１選択部３０３と、第４選択部３０４と、変換係数供給部４０１と、を備える。なお、図１９では、集積回路５０ｃのこれらの構成の図示は省略されている。
【０１２３】
なお、実施の形態４においては、これらの各部は、集積回路５０ｃ上に実現された配線によって実現されるが、各部は、ソフトウェアにより実現された機能部にしてもよいし、ハードウェアによって実現された機能部にしてもよいし、他の方法により実現されたものにしてもよい。
【０１２４】
制御部６０２は、集積回路５０ｃの入力と出力とを入れ換えることで、集積回路５０ｃが有する直交変換回路６０１に、正直交変換及び逆直交変換を選択的に行わせるものである。
【０１２５】
また、上記の各実施の形態において、第１バタフライ演算部１００〜第４バタフライ演算部１０３は（第１バタフライ演算部１００〜第５バタフライ演算部１０４は）、それぞれ、積和演算に用いられる変換係数が２のべき乗であった場合に、ビットシフタとして動作するものであってもよい。こうすれば、多様な変換係数の乗算がされるにも関わらず、各バタフライ演算部の構成を簡潔にし、また、演算の速度を高速にできる。
【０１２６】
また、上記の各実施の形態において、第１バタフライ演算部１００〜第４バタフライ演算部１０３は（第１バタフライ演算部１００〜第５バタフライ演算部１０４は）、それぞれ、積和演算の対象となる入力信号又は変換係数が０であった場合に、当該入力信号及び変換係数を乗算することに代えて、出力結果として選択した０を出力するものであってもよい。こうすれば、無駄な乗算がされず、消費電力を減らしたり、装置の構成を簡単にしたり、演算を高速化したりできる。
【０１２７】
また、上記の各実施の形態において、第１バタフライ演算部１００〜第４バタフライ演算部１０３は（第１バタフライ演算部１００〜第５バタフライ演算部１０４は）、積和演算の対象となる入力信号又は変換係数が０であった場合に、当該入力信号及び変換係数を乗算すること、及び、前記乗算に代えて出力結果として選択した０を出力することを選択的に行うものであってもよい。
【０１２８】
また、上記の各実施の形態において、第２バタフライ演算部１０１は、４点の入力信号のうちの２点の入力信号に対して、変換係数を０とする乗算を行うこと、又は、乗算に代えて演算結果として０を選択することにより、２点基本演算部として機能するものであってもよい。第２バタフライ演算部１０１は、例えばかかる構成をとることにより、図１２（ｂ）に示された第２バタフライ演算部のＡ型１０１Ａに変形する。
【産業上の利用可能性】
【０１２９】
本発明にかかる直交変換装置及び集積回路は、ＭＰＥＧ１，ＭＰＥＧ２，ＭＰＥＧ４，Ｈ．２６４／ＡＶＣ、ＶＣ−１の動画像符号化規格の直交変換処理を１つの高速アルゴリズム直交変換手段で可能とするため動画像符号化などの画像符号化の分野において有用である。
【図面の簡単な説明】
【０１３０】
【図１】図１は、Ｈ．２６４／ＡＶＣにおける整数精度直交変換の変換行列を示す図である。
【図２】図２は、ＶＣ−１における整数精度直交変換の変換行列を示す図である。
【図３】図３は、Ｈ．２６４／ＡＶＣにおける４×４の変換行列を示す図である。
【図４】図４は、ＶＣ−１における４×４の変換行列を示す図である。
【図５】図５は、従来の構成を示す図である。
【図６】図６は、従来の構成が有するバタフライ器の中身を示す図である。
【図７】図７は、２点入力の襷がけ演算器（２点基本演算器）を示す図である。
【図８】図８は、Ｈ．２６４／ＡＶＣ直交変換において必要な３点入力の演算器を示す図である。
【図９】図９は、直交変換装置５０を示す図である。
【図１０】図１０は、直交変換装置５０が有する４つのバタフライ演算部の詳細を示す図である。
【図１１】図１１は、４段パイプライン演算回路を示す図である。
【図１２】図１２は、第２バタフライ演算部のＡ型およびＢ型を示す図である。
【図１３】図１３は、Ｈ．２６４／ＡＶＣ用の直交変換演算構成を示す図である。
【図１４】図１４は、直交変換装置がＶＣ−１の直交変換を行う場合に第２バタフライ演算部が行う２回の演算を説明する図である。
【図１５】図１５は、直交変換装置がＶＣ−１の直交変換を行う場合に第２バタフライ演算部が行う２回の演算の式を示した図である。
【図１６】図１６は、直交変換装置を示す図である。
【図１７】図１７は、直交変換装置がＶＣ−１の直交変換をする際の演算の流れを示す図である。
【図１８】図１８は、４×４直交変換を行う実施の形態を示す図である。
【図１９】図１９は、集積回路を示す図である。
【符号の説明】
【０１３１】
１１  従来の構成
２０  ２点基本演算器
５０  直交変換装置
５０ａ  直交変換装置
５０ｃ  集積回路
５１  ４段パイプライン演算回路
１００  第１バタフライ演算部
１０１  第２バタフライ演算部
１０１Ａ  第２バタフライ演算部のＡ型
１０１Ｂ  第２バタフライ演算部のＢ型
１０２  第３バタフライ演算部
１０３  第４バタフライ演算部
１０４  第５バタフライ演算部
２０１  第３遅延部
２０２  第２遅延部
２０３  第１遅延部
３０１  第３選択部
３０２  第２選択部
３０３  第１選択部
３０４  第４選択部
４０１  変換係数供給部
５００  Ｈ．２６４／ＡＶＣ用の直交変換演算構成
５０１  ３点入力の襷がけ演算が行われる演算回路
６０１  直交変換回路
６０２  制御部
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数点の入力信号に対して直交変換を行う直交変換装置であって、
前記複数点の入力信号のうちの一部の入力信号に対して、２点の積和演算を行う２点基本演算部を有する第１のバタフライ演算手段と、
前記複数点の入力信号のうちの残りの入力信号に対して、４点の積和演算を行う４点基本演算部を有する第２のバタフライ演算手段と、
前記第２のバタフライ演算手段での演算結果に対して、２点の積和演算を行う２点基本演算部を有する第３のバタフライ演算手段と、
前記第１のバタフライ演算手段での演算結果を保持する第１の遅延手段と、
前記第１のバタフライ演算手段での演算結果及び前記第１の遅延手段に保持された演算結果からデータを選択する第１の選択手段と、
前記第３のバタフライ演算手段での演算結果を保持する第２の遅延手段と、
前記第３のバタフライ演算手段での演算結果及び前記第２の遅延手段に保持された演算結果からデータを選択する第２の選択手段と、
前記第１の選択手段で選択されたデータ及び前記第２の選択手段で選択されたデータに対して、２点の積和演算を行う２点基本演算部を有する第４のバタフライ演算手段と、
前記第１〜４のバタフライ演算手段での積和演算に用いられる変換係数を前記第１〜４のバタフライ演算手段に供給する変換係数供給手段とを備え、
前記第２のバタフライ演算手段は、当該第２のバタフライ演算手段の前記４点基本演算部が行う積和演算を、前記第１〜４のバタフライ演算手段が複数種類の直交変換を行うための、所定の３点演算および２点演算の間で切り替える
ことを特徴とする直交変換装置。
【請求項２】
前記直交変換装置はさらに、
前記複数点の入力信号のうちの残りの入力信号を保持する第３の遅延手段と、
前記複数点の入力信号のうちの残りの入力信号及び前記第３の遅延手段に保持された入力信号からデータを選択する第３の選択手段とを備え、
前記第２のバタフライ演算手段は、前記第３の選択手段で選択されたデータに対して前記積和演算を行う
ことを特徴とする請求項１記載の直交変換装置。
【請求項３】
前記直交変換装置はさらに、
前記複数点の入力信号のうちの残りの入力信号に対して、４点の積和演算を行う４点基本演算部を有する第５のバタフライ演算手段と、
前記第２及び第５のバタフライ演算手段での演算結果からデータを選択する第４の選択手段とを備え、
前記第３のバタフライ演算手段は、前記第４の選択手段で選択されたデータに対して前記積和演算を行い、
前記変換係数供給手段は、前記第５のバタフライ演算手段での積和演算に用いられる変換係数を前記第５のバタフライ演算手段に供給する
ことを特徴とする請求項１記載の直交変換装置。
【請求項４】
前記第１〜４のバタフライ演算手段は、Ｃｈｅｎの高速アルゴリズムに基づく直交変換のための積和演算を行う
ことを特徴とする請求項１記載の直交変換装置。
【請求項５】
前記変換係数供給手段は、前記第１〜４のバタフライ演算手段で繰り返される積和演算の毎処理単位で、前記第１〜４のバタフライ演算手段に供給する変換係数を変更する
ことを特徴とする請求項１記載の直交変換装置。
【請求項６】
前記第１〜４のバタフライ演算手段は、積和演算の対象となる入力信号又は変換係数が０であった場合に、当該入力信号及び変換係数を乗算することに代えて、出力結果として選択した０を出力する
ことを特徴とする請求項１記載の直交変換装置。
【請求項７】
前記第１〜４のバタフライ演算手段は、積和演算の対象となる入力信号又は変換係数が０であった場合に、当該入力信号及び変換係数を乗算すること、及び、前記乗算に代えて出力結果として選択した０を出力することを選択的に行う
ことを特徴とする請求項１記載の直交変換装置。
【請求項８】
前記第２のバタフライ演算手段は、４点の入力信号のうちの２点の入力信号に対して、変換係数を０とする乗算を行うこと、又は、乗算に代えて演算結果として０を選択することにより、２点基本演算部として機能する
ことを特徴とする請求項１記載の直交変換装置。
【請求項９】
前記第１のバタフライ演算手段は、４点の高速直交変換を行う
ことを特徴とする請求項１記載の直交変換装置。
【請求項１０】
前記第１〜４のバタフライ演算手段は、積和演算に用いられる変換係数が２のべき乗であった場合に、ビットシフタとして動作する
ことを特徴とする請求項１記載の直交変換装置。
【請求項１１】
前記直交変換装置はさらに、当該直交変換装置の入力と出力とを入れ換えることで、当該直交変換装置に正直交変換及び逆直交変換を選択的に行わせる制御手段を備える
ことを特徴とする請求項１記載の直交変換装置。
【請求項１２】
複数点の入力信号に対して直交変換を行う集積回路であって、
請求項１記載の手段として機能する回路を備える
ことを特徴とする集積回路。
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2009095959.tif 000022
【図２】
2009095959.tif 000023
【図３】
2009095959.tif 000024
【図４】
2009095959.tif 000025
【図５】
2009095959.tif 000026
【図６】
2009095959.tif 000027
【図７】
2009095959.tif 000028
【図８】
2009095959.tif 000029
【図９】
2009095959.tif 000030
【図１０】
2009095959.tif 000031
【図１１】
2009095959.tif 000032
【図１２】
2009095959.tif 000033
【図１３】
2009095959.tif 000034
【図１４】
2009095959.tif 000035
【図１５】
2009095959.tif 000036
【図１６】
2009095959.tif 000037
【図１７】
2009095959.tif 000038
【図１８】
2009095959.tif 000039
【図１９】
2009095959.tif 000040
【国際調査報告】
2009095959.tif 000041
2009095959.tif 000042