(57)【要約】【課題】従来のデータ処理装置は、コーデック毎に専用の回路を備えるため汎用性に乏しいという問題があった。【解決手段】本発明にかかるデータ処理装置は、外部入力信号及びユニット部からのフィードバック信号により構成される入力信号群からいずれか１つの信号を選択的に出力するセレクタ回路を複数有するセレクタ部を備える。また、セレクタ部から出力される信号に基づいて直交もしくは逆直交変換における１演算ステップが処理され、フィードバック信号を出力する演算回路を複数有するユニット部を備える。また、セレクタ回路を制御する第１の制御信号を演算ステップごとに出力するコントロール部を備える。このような回路構成により、接続関係を切り替えることによって各コーデックに対応可能な汎用性のあるデータ処理装置を提供することができる。【選択図】図１
2010118718.tif 000002
【特許請求の範囲】
【請求項１】
外部入力信号及びユニット部からのフィードバック信号により構成される入力信号群からいずれか１つの信号を選択的に出力するセレクタ回路を複数有するセレクタ部と、
前記セレクタ部から出力される信号に基づいて直交もしくは逆直交変換における１演算ステップが処理され、前記フィードバック信号を出力する演算回路を複数有する前記ユニット部と、
前記セレクタ回路を制御する第１の制御信号を前記演算ステップごとに出力するコントロール部と、を備えたデータ処理装置。
【請求項２】
前記演算回路のそれぞれの入力端子には、異なる前記セレクタ回路の出力端子が接続され、当該セレクタ回路により選択された信号が入力されることを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記セレクタ回路は、前記入力信号群のすべてを入力信号とすることを特徴とする請求項１又は２に記載のデータ処理装置。
【請求項４】
前記セレクタ回路は、前記入力信号群のうち、直交もしくは逆直交変換において選択される信号のみを入力信号とすることを特徴とする請求項１又は２に記載のデータ処理装置。
【請求項５】
前記コントロール部は、前記演算回路を制御する第２の制御信号を前記演算ステップごとにさらに出力することを特徴とする請求項１〜５のいずれか一項に記載のデータ処理装置。
【請求項６】
直交もしくは逆直交変換における演算ステップごとに制御信号を生成し、
前記制御信号に基づいてセレクタ部に複数備えられたセレクタ回路を制御することにより、外部入力信号及びユニット部からのフィードバック信号により構成される入力信号群からいずれか１つの信号を選択し、
前記セレクタ回路によって選択された信号に基づいて前記演算ステップを処理し、前記フィードバック信号を生成するデータ処理方法。
【請求項７】
前記入力信号群は、直交もしくは逆直交変換において選択される信号のみからなることを特徴とする請求項６に記載のデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置及びその処理方法に関するものである。
【背景技術】
【０００２】
動画像の圧縮方式であるＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｃｏｄｉｎｇ  ＥｘｐｅｒｔｓＧｒｏｕｐ）やＨ．２６４等のコーデックにおいては、画面内（空間的）相関関係を利用した情報圧縮を行っている。画像信号に対してＤＣＴ（Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ）と呼ばれる直交変換を行うと低周波数成分に大きな値が集中する。この性質を用いて、次に量子化により高周波数成分を取り除き、エントロピー符号化による情報圧縮を行っている。
【０００３】
この符号化時のＤＣＴと、復号化時のＩＤＣＴ（Ｉｎｖｅｒｓｅ  Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ）と呼ばれる逆直交変換と、を実現するには行列演算が必要となるため、非常に多くの演算量が求められる。そこで、多くの場合においてＤＣＴおよびＩＤＣＴは専用ハードウェアで実現されている。
【０００４】
図２６に、各コーデックに対応した一般的な逆直交変換処理回路を示す。図２６に示すように、外部メモリから出力された信号が逆直交変換処理回路に入力され、逆直交変換処理回路内でＩＤＣＴ処理された信号が外部メモリに出力される。また、逆直交変換処理回路には、一例として、ＭＰＥＧ２、Ｈ．２６４、ＶＣ１、ＡＰ９２２のコーデックがそれぞれ備えられている。なお、ＡＰ９２２とは、インテルのアプリケーションノート「Ａ  Ｆａｓt  Ｐｒｅｃｉｓｅ  Ｉｍｐｌｅｍｅｎｔａｔｉｏｎ  ｏｆ  ８ｘ８  Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ  Ｕｓｉｎｇ  ｔｈｅ  Ｓｔｒｅａｍｉｎｇ  ＳＩＭＤ  Ｅｘｔｅｎｓｉｏｎｓ  ａｎｄ  ＭＭＸＴＭ  Ｉｎｓｔｒｕｃｔｉｏｎｓ」ＡＰ−９２２に記載された逆直交変換処理の実現方法である。便宜上、この逆直交変換処理のコーデックをＡＰ９２２と称す。このように、コーデック毎にＩＤＣＴ処理のアルゴリズムが異なるため、ＩＤＣＴ処理において複数のコーデックを必要とする場合、それぞれ専用の回路を逆直交変換処理回路に備える必要がある。さらに、他のコーデックを使用したい場合には、新たに専用の回路を追加する必要があり汎用性がない。
【０００５】
また、図２７に、特許文献１に記載された演算ユニットの結合状態を示す適応型ビデオ信号演算処理装置の構成図を示す。図２７に示す演算処理装置は、４組の演算ユニットが単一の命令流により並列動作する、単一命令ストリーム・多重データストリーム制御方式、つまりＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ  ｓｔｒｅａｍ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ  ｓｔｒｅａｍ）制御方式を採用している。前提として、各演算ユニット１〜４は、加算、減算および論理演算を行うＡＬＵ、乗算器、累算器の３種の演算器から構成されるとする。また、簡単のため、各演算器は１クロックサイクルで演算を完了するものとする。したがって、このＤＳＰは、１クロックサイクルで最大１２演算を実行することができる。さらに、このＤＳＰは演算器にデータを供給し、また、演算器からのデータを格納するためのデータメモリをチップ内あるいはチップ外に持つとする。
【０００６】
実際には、データ入力端子（Ｘｉｎ０〜Ｘｉｎ３）１１〜１４、および、データ入力端子（Ｙｉｎ０〜Ｙｉｎ３）２１〜２４、および、データ出力端子（Ｏｕｔ１〜Ｏｕｔ３）３１〜３４は、何らかの相互結合網を介してデータメモリ（不図示）に接続されている。ここでは簡単のため、データメモリは、上記８個のデータ入力端子１１〜１４、２１〜２４に１クロックサイクル毎にデータを供給でき、同時に上記４個のデータ出力端子３１〜３４からのデータを１クロックサイクル毎に書き込むことができるとする。すなわち、演算ユニット１〜４とデータメモリ（不図示）とは、上記のデータ転送能力を備えた相互結合網により結合されているとする。また、演算ユニット１〜４間を結合するメモリ５〜７（以下、相互接続パイプラインメモリと呼ぶ）や、パラレル−シリアル変換器９、シリアル−パラレル変換器１０、データセレクタ８、４１〜４４は、離散コサイン変換／離散コサイン逆変換の高速演算アルゴリズムにおけるマクロな演算パイプライン構成を実現する際に必要である。なお、図２７に示したＤＣＴ入力端子５１およびＩＤＣＴ入力端子５２についても、相互結合網（不図示）を介してデータメモリ（不図示）に接続されており、１クロックサイクル毎のデータ入出力が可能となっている。
【０００７】
ここで、各演算ユニット１〜４に備えられた演算器（不図示）は、互いに接続関係を切り替えることが可能である。さらに、データセレクタ８、４１〜４４によって演算ユニット間の接続関係を切り替えることにより、様々な演算パイプラインの構成が実現可能である。しかし、図２７に示す回路は、主にＭＰＥＧの要素処理に対応した演算パイプラインの構成のみが実現可能であり、他のコーデックの逆直交変換処理を実行したい場合等には対応できない。したがって、図２６に示す回路の場合と同様に、他のコーデックを必要とする場合には、新たに専用の回路を追加する必要があり汎用性に乏しい。
【０００８】
【特許文献１】特開平６−２９２１７８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上述のように、従来技術のデータ処理回路はコーデックごとに専用の回路を備えるため、汎用性に乏しいという問題があった。
【課題を解決するための手段】
【００１０】
本発明にかかるデータ処理装置は、外部入力信号及びユニット部からのフィードバック信号により構成される入力信号群からいずれか１つの信号を選択的に出力するセレクタ回路を複数有するセレクタ部と、前記セレクタ部から出力される信号に基づいて直交もしくは逆直交変換における１演算ステップが処理され、前記フィードバック信号を出力する演算回路を複数有する前記ユニット部と、前記セレクタ回路を制御する第１の制御信号を前記演算ステップごとに出力するコントロール部と、を備える。
【００１１】
上述のような回路構成により、接続関係を切り替えることによって各コーデックに対応可能な汎用性のあるデータ処理が可能である。
【００１２】
また、本発明にかかるデータ処理方法は、直交もしくは逆直交変換における演算ステップごとに制御信号を生成し、前記制御信号に基づいてセレクタ部に複数備えられたセレクタ回路を制御することにより、外部入力信号及びユニット部からのフィードバック信号により構成される入力信号群からいずれか１つの信号を選択し、前記セレクタ回路によって選択された信号に基づいて前記演算ステップを処理し、前記フィードバック信号を生成するものである。
【００１３】
上述のような回路構成により、接続関係を切り替えることによって各コーデックに対応可能な汎用性のあるデータ処理が可能である。
【発明の効果】
【００１４】
本発明により、接続関係を切り替えることによって各コーデックに対応可能な汎用性のあるデータ処理装置を提供することができる。
【発明を実施するための最良の形態】
【００１５】
以下では、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略される。
【００１６】
発明の実施の形態１
以下、本発明の実施の形態について図面を参照して説明する。なお、本実施の形態では、データ処理装置として逆直交変換処理回路を例に説明している。図１に本発明の実施の形態１にかかる一次元の逆直交変換回路のブロック図を示す。図１に示すように、逆直交変換回路は、信号経路を自由に選択可能にするセレクタ部１００と、演算処理を実行するユニット部１０１と、各機能ブロックの処理を制御するコントロール部１０２と、を備える。セレクタ部１００は、入力信号からいずれか１つを選択的に出力するｍ個（ｍは１以上の整数）のセレクタ回路３００を有する。なお、以降の説明において、ｍ個のセレクタ回路３００は、それぞれをセレクタ回路３００−ｉ（ｉは、１からｍまでの任意の整数）と記載することで区別されることとする。ユニット部１０１は、演算処理を実行するｎ個（ｎは１以上の整数）の演算回路２００を有する。なお、以降の説明において、ｎ個の演算回路２００は、それぞれを演算回路２００−ｊ（ｊは、１からｎまでの任意の整数）と記載することで区別されることとする。ここで、セレクタ回路３００は、外部データメモリ１０４及び演算回路２００の入力端子ごとに設けられる。
【００１７】
セレクタ部１００と、ユニット部１０１は、それぞれコントロール部１０２から出力される制御信号によって制御される。ユニット部１０１に備えられた演算回路２００−１〜２００−ｎの出力端子は、セレクタ部１００に備えられたセレクタ回路３００−１〜３００−ｍの入力端子にそれぞれ接続される。また、外部データメモリ１０３の出力端子は、セレクタ回路３００−１〜３００−ｍの入力端子にそれぞれ接続される。セレクタ回路３００−１〜３００−ｍの出力端子は、それぞれ対応する演算回路２００の入力端子、又は外部データメモリ１０４の入力端子に接続される。
【００１８】
次に、図1に示す回路の動作について説明する。ユニット部１０１に備えられた演算回路２００−１〜２００−ｎから出力された信号は、セレクタ部１００に備えられたセレクタ回路３００−１〜３００−ｍの入力端子に入力される。さらに、外部データメモリ１０３から出力された信号（以下、外部入力信号と称す）も、セレクタ回路３００−１〜３００−ｍの入力端子に入力される。つまり、外部入力信号及び各演算回路から出力された信号により構成される入力信号群が、セレクタ回路３００−１〜３００−ｍに入力される。そして、セレクタ回路３００−１〜３００−ｍによって、入力信号群からいずれか１つの信号が選択され、それぞれ対応する演算回路２００の入力端子、又は外部データメモリ１０４の入力端子に入力される（以下、外部データメモリ１０４の入力端子に入力される信号を、外部出力信号と称す）。なお、セレクタ回路３００−１〜３００−ｍは、コントロール部１０２から出力される制御信号に基づいて信号の選択が制御される。
【００１９】
図２にセレクタ回路３００の回路動作の例を示す。図２に示すように、例えば、セレクタ回路３００に３０本の入力信号１〜３０が入力される場合、コントロール部１０２から出力されたコマンド用データ（後述）に基づいて選択的に指定された信号が、セレクタ回路３００から出力される。この例では、セレクタ回路３００の制御端子にコマンド用データ"００１００"を入力することにより選択的に指定された入力信号４が、セレクタ回路３００から出力される。なお、セレクタ回路３００に入力される信号のいずれも使用しない場合等には、図３の例に示すように、セレクタ回路３００の制御端子にコマンド用データ"０００００"を入力することにより、セレクタ回路３００から"０"が出力される。
【００２０】
図４〜図７に演算回路２００の回路構成の例を示す。この例に示すように、各演算回路２００はそれぞれ固有の演算機能を有する。図４に演算回路２００の一つである乗算器の一例を示す。この例では、図４の回路は、乗算回路４０１とレジスタ回路４０２とを有する。また、図４の回路では、２本の入力信号が乗算回路４０１に入力される。そして、乗算回路４０１によって演算処理された結果が、レジスタ回路４０２を介して出力される。なお、図４の例では、入力信号の１本として、コントロール部１０２から出力された係数情報が入力されている。
【００２１】
図５に演算回路２００の一つであるシフト付き乗算器の一例を示す。この例では、図５の回路は、乗算回路４０３と、シフト回路４０４と、レジスタ回路４０５と、を有する。また、図５の回路では、２本の入力信号が乗算回路４０３に入力される。そして、乗算回路４０３によって演算処理された結果が、シフト回路４０４に入力される。そして、シフト回路４０４によってシフト処理された結果が、レジスタ回路４０５を介して出力される。なお、図５の例では、入力信号の１本として、コントロール部１０２から出力された係数情報が入力されている。
【００２２】
図６に演算回路２００の一つであるバタフライ演算器の一例を示す。この例では、図６の回路は、加算回路４０６と、減算回路４０７と、レジスタ回路４０８と、レジスタ回路４０９と、を有する。また、図６の回路では、２本の入力信号が加算回路４０６及び減算回路４０７に入力される。そして、加算回路４０６及び減算回路４０７によって演算処理された結果が、それぞれレジスタ４０８、４０９を介して出力される。
【００２３】
図７に演算回路２００の一つである反転及びシフト及びサチュレーション付き３入力加算器の一例を示す。この例では、図７の回路は、反転回路４１０と、反転回路４１１と、加算回路４１２と、シフト回路４１３と、サチュレーション回路４１４と、レジスタ回路４１５と、を有する。また、図７の回路では、３本の入力信号のうちの１本として、コントロール部１０２から出力された補数情報が加算回路４１２に入力される。また、他の２本の入力信号は、それぞれ反転回路４１０、４１１を介して加算回路４１２に入力される。このとき、反転回路４１０、４１１はコントロール部１０２によって反転のＯＮ／ＯＦＦが制御される。そして、加算回路４１２によって演算処理された結果が、シフト回路４１３に入力される。そして、シフト回路４１３によってシフト処理された結果が、サチュレーション回路４１４に入力される。そして、サチュレーション回路４１４によってサチュレーション処理された結果が、レジスタ回路４１５を介して出力される。
【００２４】
以上のように、演算回路２００の回路構成のいくつかの例を示したが、これに限られず演算回路２００の回路構成は適宜変更可能である。例えば、演算回路２００は、上記の入力端子数の回路構成に限られず、異なる入力端子数の回路構成も可能である。また、演算回路２００は、上記の以外の様々な組み合わせにより、固有の演算機能を有する回路構成も可能である。また、演算回路２００は、コントロール部１０２から出力される「シフト情報」、「サチュレーション情報」、「信号反転情報」、「補数情報」、「係数情報」（いずれも後述）等の情報を含んだ制御信号によって多彩な演算処理が可能である。
【００２５】
図８にコントロール部１０２のブロック図を示す。コントロール部１０２は、コマンドコントロール部１０５、外部メモリ１０６、補数メモリ１１２、係数メモリ１１３を備える。さらにコマンドコントロール部１０５は、コマンド保持部１０７を有する。
【００２６】
外部メモリ１０６に格納された信号が読み出され、セレクタ部１００及びユニット部１０１を制御する信号（以下、コマンド用データと称す）としてコマンドコントロール部１０５に備えられたコマンド保持部１０７に保持される。さらに、補数メモリ１１２に格納された補数情報を含む信号、係数メモリ１１３に格納された係数情報を含む信号が読み出され、コマンド用データとしてコマンド保持部１０７に保持される。また、コマンドコントロール部１０５には、逆直交変換処理における「処理パタンのサイクル情報」、演算回路２００の演算処理を実行するために必要な「シフト情報」、「サチュレーション情報」、「信号反転情報」等の情報を含んだ信号が、外部から入力される。
【００２７】
ここで、コマンド保持部１０７には「処理パタンのサイクル情報」によって設定されたサイクル数に応じたコマンド用データが保持される。例えば、「処理パタンのサイクル数」を"４"に設定した場合を考える。ここで、外部入力信号が入力され、演算回路２００によって演算処理が実行され、外部出力信号が出力されるまでを１演算処理サイクルとすると、この例では４演算処理サイクル分のコマンド用データがコマンド保持部１０７に保持される。このとき、コマンドコントロール部１０５は、コマンド保持部１０７に保持されたコマンド用データを、制御された順番にセレクタ部１００及びユニット部１０１に出力する。そして、４演算処理サイクル目のコマンド用データを出力した後、再び１演算処理サイクル目のコマンド用データの出力から処理が繰り返される。なお、図８の例では、コマンドコントロール部１０５は、クロックサイクル毎に各演算処理サイクルにおけるコマンド用データを出力するものとする。
【００２８】
このように、クロックサイクル毎にコントロール部１０２から出力されるコマンド用データに基づいて、各セレクタ回路３００の出力信号が制御される。さらに、このコマンド用データに基づいて各演算回路２００に「補数情報」、「係数情報」が設定される。なお、「補数情報」とは、演算回路２００に備えられた加算回路において、減算処理対象となる入力信号の選択を制御するものである。また、「係数情報」とは、演算回路２００に備えられた乗算回路に設定される係数の情報を制御するものである。さらに、コマンドコントロール部１０５は、各演算回路２００に入力する情報として、演算処理時の精度誤差等を制御（以下、サチュレーション処理と称す）する「サチュレーション情報」、入力信号のシフト動作を制御（以下、シフト処理と称す）する「シフト情報」、入力信号の反転動作を制御する「信号反転情報」等の情報を含んだ制御信号を、クロックサイクル（演算ステップ）毎に出力する。
【００２９】
以上のように、図１に示す回路は、クロックサイクル毎にコントロール部１０２から制御信号（コマンド用データ等）が出力されることにより、クロックサイクル毎に信号経路を自由に切り替えて繰り返し演算処理を実行することができるため、様々なコーデックに対応が可能である。また、新たなコーデックによる処理が必要な場合は、演算ステップごとに各演算回路２００の接続関係を切り替えて演算処理を実行することにより対応が可能である。
【００３０】
また、逆直交変換の水平処理用及び垂直処理用にそれぞれ図１に示す回路を備えることにより、それぞれの演算処理を並行して実行することが可能である。それにより、逆直交変換処理の処理性能を向上させることが可能である。
【００３１】
次に、本実施の形態１の具体例を示す。図９は本発明の実施の形態１にかかる逆直交変換処理回路の回路構成の例である。なお、図９は、セレクタ部１００と、ユニット部１０１と、コントロール部１０２のみ図示しており、その他の機能ブロックは、図１の場合と同様であるため省略する。また、コントロール部１０２から各セレクタ回路３００及び各演算回路２００に入力される制御信号、各演算回路２００の詳細な回路構成を説明した図については省略する。また、図９の例では、演算回路２００−１〜２００−８は主として乗算機能を有し、演算回路２００−９〜１４は主として加算機能を有し、演算回路２００−１５は主としてバタフライ演算機能を有し、演算回路２００−１５〜２００−１９はレジスタ回路のみを有するが、各演算回路２００−１〜１９は、コーデックに必要な固有の回路構成をそれぞれ備える。
【００３２】
図９に示す回路において、セレクタ部１００はセレクタ回路３００−１〜３００−３２を有する。また、ユニット部１０１は演算回路２００−１〜２００−１９を有する。また、ユニット部１０１は、使用するコーデックに必要な演算回路２００から構成される。なお、便宜上、記号「ｉｎ０」〜「ｉｎ７」、「ｏｕｔ０」、「ｏｕｔ１」はそれぞれ端子名を示すと同時に、信号名を示すものとする。また、記号「２００−１」〜「２００−１９」はそれぞれ演算回路名を示すと同時に、出力端子名を示すものとする。ただし、演算回路２００−１５の出力端子は、それぞれ２００−１５ａ、２００−１５ｂと示すことで区別する。
【００３３】
外部入力端子ｉｎ０〜ｉｎ７と、演算回路２００−１〜２００−１９の各出力端子と、により構成される合計２８本の入力信号群が、セレクタ回路３００−１〜３００〜３２の入力端子に接続される。セレクタ回路３００−３〜３００−３２の出力端子は、それぞれ対応する演算回路２００（演算回路２００−１〜２００−１９）の入力端子に接続される。また、セレクタ回路３００−１、３００−２の出力端子は、それぞれ外部出力端子ｏｕｔ１、ｏｕｔ２に接続される。
【００３４】
外部入力信号ｉｎ０〜ｉｎ７と、演算回路２００−１〜２００−１９から出力される信号と、により構成される合計２８本の入力信号群が、セレクタ回路３００−１〜３００〜３２に入力される。ここで、コントロール部１０２から各セレクタ回路３００に入力される制御信号に基づいて、入力信号群のうちいずれか１つの信号が各セレクタ回路３００から選択的に出力される。セレクタ回路３００−３〜３００−３２から出力された信号は、それぞれ対応する演算回路２００（演算回路２００−１〜２００−１９）に入力される。そして、コントロール部１０２から必要に応じて各演算回路２００に入力される制御信号等に基づいて演算処理が実行される。また、セレクタ回路３００−１、３００−２から出力された信号は、それぞれ外部出力信号ｏｕｔ１、ｏｕｔ２として出力される。ここで、各セレクタ回路３００による信号経路の設定、及び各演算回路２００による演算処理は、クロックサイクル（演算ステップ）毎に実行される。このように、図９の回路は、クロックサイクル毎に信号経路を自由に切り替えて繰り返し演算処理を実行することができるため、様々なコーデックに対応可能な汎用性のある逆直交変換処理回路を構成している。
【００３５】
次に、具体的なコーデックとして、Ｈ．２６４の逆直交変換処理を行う場合について説明する。ここで、Ｈ．２６４において８ｘ８の逆直交変換を行う場合の演算処理は、一般的に以下の計算式で示される。なお、外部入力信号をｘ０〜ｘ７とする。また、外部出力信号をｙ０〜ｙ７とする。また計算途中の中間値をａ０〜ａ７、ｂ０〜ｂ７とする。
ａ０＝ｘ０＋ｘ４
ａ１＝−ｘ３＋ｘ５−（ｘ７−ｘ７＞＞１）
ａ２＝ｘ０−ｘ４
ａ３＝ｘ１＋ｘ７−（ｘ３＋ｘ３＞＞１）
ａ４＝ｘ２＞＞１−ｘ６
ａ５＝−ｘ１＋ｘ７＋（ｘ５＋ｘ５＞＞１）
ａ６＝ｘ２＋ｘ６＞＞１
ａ７＝ｘ３＋ｘ５＋（ｘ１＋ｘ１＞＞１）
ｂ０＝ａ０＋ａ６
ｂ１＝ａ１＋ａ７＞＞２
ｂ２＝ａ２＋ａ４
ｂ３＝ａ３＋ａ５＞＞２
ｂ４＝ａ２−ａ４
ｂ５＝ａ３＞＞２−ａ５
ｂ６＝ａ０−ａ６
ｂ７＝ａ７−ａ１＞＞２
ｙ０＝ｂ０＋ｂ７
ｙ１＝ｂ２＋ｂ５
ｙ２＝ｂ４＋ｂ３
ｙ３＝ｂ６＋ｂ１
ｙ４＝ｂ６−ｂ１
ｙ５＝ｂ４−ｂ３
ｙ６＝ｂ２−ｂ５
ｙ７＝ｂ０−ｂ７
上記の計算式に示すような１次元の演算処理を２回に分けて実行することにより、水平処理及び垂直処理の２次元の逆直交変換を実行する。
【００３６】
上記の計算式に基づいたＨ．２６４における逆直交変換のシグナルフローを図１０に示す。なお、演算処理におけるシフト、反転、サチュレーション等の処理の説明は省略する。図１０に示すように、外部入力信号及び補数情報を含む信号が、逆直交変換回路に入力され、クロックサイクル（演算ステップ）毎に加算処理または減算処理が実行される。この例の場合、最初のクロックサイクルにおいて加算処理が実行され、次のクロックサイクルにおいて加算処理が実行され、次のクロックサイクルにおいてバタフライ演算処理が実行された後、２つの演算結果が外部出力信号として出力される。つまり、この例では、外部入力信号が入力されて３クロックサイクル後に２つの演算結果が出力される。
【００３７】
また、図１１に、図１０に示すシグナルフローをパイプライン化した図を示す。実際には、クロックサイクル毎に外部入力信号が切り替えられ、パイプライン化された演算処理が実行される。ここで、外部入力信号が入力され、演算処理が実行され、外部出力信号が出力されるまでを１演算処理サイクルとすると、１演算処理サイクルの演算処理によって得られる演算結果は２つである。したがって、外部入力信号を切り替えながら４演算処理サイクル分の演算処理を行うことにより、演算結果ｙ０〜ｙ７を得ることができる。このように、Ｈ．２６４の逆直交変換処理は、外部入力信号の切り替えを４演算処理サイクルの周期で行う必要がある。
【００３８】
図１２に、図９に示す回路においてＨ．２６４の逆直交変換のシグナルフローを実現するための演算回路２００の接続関係の例を示す。なお、図１２の接続関係の例は、各演算回路２００によって選択された信号による各演算回路２００の接続関係のみを示し、各セレクタ回路３００は図示しない。また、その他の機能ブロックは、図１の場合と同様であるため省略する。また、コントロール部１０２から各セレクタ回路３００及び各演算回路２００に入力される制御信号、各演算回路２００の詳細な回路構成を説明した図については省略する。
【００３９】
図１２の例では、あるクロックサイクルにおける演算回路２００の接続関係の例を示しているが、実際には、クロックサイクル毎に外部入力信号ｉｎ０〜ｉｎ７が切り替えられ、図１１に示すようなパイプライン化された演算処理が実行される。なおこの例では、外部入力信号以外の接続関係の切り替えは実行されない。図１２に示すように、あるクロックサイクルにおいて、外部入力信号ｉｎ０〜ｉｎ７（ｘ０〜ｘ７）がそれぞれ対応する演算回路２００−９、２００−１０、２００−１２、２００−１３に入力されて演算処理が実行される。次のクロックサイクルにおいて、演算回路２００−９、２００−１０の出力信号は２００−１１に入力され、２００−１２、２００−１３の出力信号は２００−１４に入力され、それぞれ演算処理が実行される。さらに次のクロックサイクルにおいて、演算回路２００−１１、２００−１４の出力信号は２００−１５に入力され、演算処理が実行される。そして、演算回路２００−１５の出力信号は、外部出力信号ｏｕｔ１、ｏｕｔ０として出力される。
【００４０】
次に、他の具体的なコーデックとして、ＭＰＥＧ２の逆直交変換処理を行う場合について説明する。ここで、ＭＰＥＧ２において８ｘ８の逆直交変換を行う場合、以下のように逆離散コサイン変換（ＩＤＣＴ）の計算式が用いられる。まず、８ｘ８の２次元逆離散コサイン変換の計算式は、以下のように示される。
2010118718.tif 000003
また、８ｘ８の１次元逆離散コサイン変換の計算式は、以下のように示される。
2010118718.tif 000004
上記の計算式に示すような１次元の演算処理を２回に分けて実行することにより、水平処理及び垂直処理の２次元の逆直交変換を実行する。
【００４１】
上記の計算式に基づいたＭＰＥＧ２における逆直交変換のシグナルフローを図１３に示す。なお、演算処理におけるシフト、反転、サチュレーション等の処理の説明は省略する。図１３に示すように、外部入力信号及び補数情報を含む信号が、逆直交変換回路に入力され、クロックサイクル（演算ステップ）毎に乗算処理、加算処理、または減算処理が実行される。この例の場合、最初のクロックサイクルにおいて乗算処理が実行され、次のクロックサイクルにおいて加算処理が実行され、次のクロックサイクルにおいてバタフライ演算処理が実行された後、２つの演算結果が外部出力信号として出力される。つまり、この例では、外部入力信号が入力されて３クロックサイクル後に２つの演算結果が出力される。
【００４２】
図１４に、図１３に示すシグナルフローをパイプライン化した図を示す。実際には、クロックサイクル毎に外部入力信号が切り替えられ、パイプライン化された演算処理が実行される。ここで、Ｈ．２６４の場合と同様にＭＰＥＧ２の逆直交変換処理は、外部入力信号の切り替えを４演算処理サイクルの周期で行う必要がある。
【００４３】
図１５に、図９に示す回路においてＭＰＥＧ２の逆直交変換のシグナルフローを実現するための演算回路２００の接続関係の例を示す。なお、図１５の接続関係の例は、各演算回路２００によって選択された信号による各演算回路２００の接続関係のみを示し、各セレクタ回路３００は図示しない。また、その他の機能ブロックは、図１の場合と同様であるため省略する。また、コントロール部１０２から各セレクタ回路３００及び各演算回路２００に入力される制御信号、各演算回路２００の詳細な回路構成を説明した図については省略する。
【００４４】
図１５の例では、あるクロックサイクルにおける演算回路２００の接続関係の例を示しているが、実際には、クロックサイクル毎に外部入力信号ｉｎ０〜ｉｎ７が切り替えられ、図１４に示すようなパイプライン化された演算処理が実行される。なおこの例では、外部入力信号以外の接続関係の切り替えは実行されない。図１５に示すように、あるクロックサイクルにおいて、外部入力信号ｉｎ０〜ｉｎ７がそれぞれ対応する演算回路２００−１〜２００−８に入力されて演算処理が実行される。次のクロックサイクルにおいて、演算回路２００−１〜２００−４の出力信号は２００−９に入力され、２００−５〜２００−８の出力信号は２００−１０に入力されて、それぞれ演算処理が実行される。さらに次のクロックサイクルにおいて、演算回路２００−９、２００−１０のそれぞれの出力信号は演算回路２００−１２及び２００−１３に入力され、演算処理が実行される。そして、演算回路２００−１２、２００−１３の出力信号は、外部出力信号ｏｕｔ１、ｏｕｔ０として出力される。
【００４５】
このように、図１０と図１３のシグナルフローはそれぞれ異なる信号経路を有するが、図１２、図１５に示すように、本発明の実施の形態１に示す逆直交変換処理回路は、自由に演算回路２００の接続関係を切り替えることができるので、その両方の処理を実現することが可能である。
【００４６】
次に、その他のコーデックとしてＡＰ９２２の逆直交変換処理を行う場合について説明する。図１６にＡＰ９２２における逆直交変換の垂直処理時のシグナルフローを示す。なお、演算処理におけるシフト、反転、サチュレーション等の処理の説明は省略する。図１６に示すように、外部入力信号、係数情報、補数情報が、逆直交変換回路に入力され、クロックサイクル（演算ステップ）毎に乗算処理、加算処理、または減算処理が実行される。この例では、外部入力信号が入力されて７クロックサイクル後に２つの演算結果が出力される。
【００４７】
図１７に、図１６に示すシグナルフローをパイプライン化した図を示す。図１７に示すように、ＡＰ９２２の逆直交変換処理は、Ｈ．２６４やＭＰＥＧ２の場合と同様に、外部入力信号の切り替えを４演算処理サイクルの周期で行う必要がある。また、演算処理サイクル毎に演算処理の流れが異なる。
【００４８】
図１８〜図２１に、図９に示す回路においてＡＰ９２２の逆直交変換のシグナルフローを実現するための演算回路２００の接続関係の例を示す。なお、図１８〜図２１の接続関係の例は、各演算回路２００によって選択された信号による各演算回路２００の接続関係のみを示し、各セレクタ回路３００は図示しない。また、その他の機能ブロックは、図１の場合と同様であるため省略する。また、コントロール部１０２から各セレクタ回路３００及び各演算回路２００に入力される制御信号、各演算回路２００の詳細な回路構成を説明した図については省略する。
【００４９】
図１７に示すように演算処理サイクル毎に演算処理の流れが異なるため、外部入力端子ｉｎ０〜ｉｎ７とともに他の信号経路の切り替えが必要である。図１８〜図２１は、それぞれ異なる信号経路が設定された場合の回路の例について示している。ここで、図９に示す回路は、クロックサイクル毎に図１８、図１９、図２０、図２１の順に繰り返し信号経路の切り替えが実行される。なお、このようにパイプライン化された演算処理において信号経路を切り替える場合は、効率よくパイプラインを構築できるように調整するとともに、データの衝突が発生しないように注意する必要がある。
【００５０】
図１８に示す回路の接続関係について説明する。図１８に示す回路において、２００−１、２００−２は"０"が入力される。２００−３はｉｎ７が入力され、２００−９に信号を出力する。２００−４はｉｎ５が入力され、２００−９に信号を出力する。２００−５はｉｎ６が入力され、２００−１０に信号を出力する。２００−６はｉｎ４が入力され、２００−１０に信号を出力する。２００−７はｉｎ０が入力され、２００−１０に信号を出力する。２００−８はｉｎ２が入力され、２００−１０に信号を出力する。２００−９は２００−１１、２００−１２にそれぞれ信号を出力する。２００−１０は２００−１６に信号を出力する。２００−１１は２００−１５に信号を出力する。２００−１２は２００−１５に信号を出力する。２００−１３は２００−９に信号を出力する。２００−１４は２００−９に信号を出力する。２００−１５はｏｕｔ０、ｏｕｔ１として信号を出力する。２００−１６は２００−１７に信号を出力する。２００−１７は２００−１８に信号を出力する。２００−１８は２００−１１、２００−１２にそれぞれ信号を出力する。２００−１９は２００−１９に信号を出力する。
【００５１】
次に、図１９に示す回路の接続関係について説明する。図１９は、図１８と比較して以下に示す接続関係が切り替えられている。図１９に示す回路において、２００−１の入力端子には、"０"が入力されていたが、代わりに２００−１１の出力端子が接続される。２００−２の入力端子には、"０"が入力されていたが、代わりに２００−１２の出力端子が接続される。２００−５の入力端子には、ｉｎ６が接続されていたが、代わりにｉｎ２が接続される。２００−８の入力端子には、ｉｎ２が接続されていたが、代わりにｉｎ６が接続される。２００−１１の２つの入力端子には、２００−９、２００−１８の出力端子が接続されていたが、代わりに"０"が入力される。２００−１２の２つの入力端子には、２００−９、２００−１８の出力端子が接続されていたが、代わりに"０"が入力される。２００−１５の２つの入力端子には、２００−１１、２００−１２の出力端子が接続されていたが、代わりに２００−１８、２００−１９の出力端子が接続される。２００−１６の入力端子には、２００−１０の出力端子が接続されていたが、代わりに２００−１６の出力端子が接続される。２００−１７の入力端子には、２００−１６の出力端子が接続されていたが、代わりに２００−１７の出力端子が接続される。２００−１８の入力端子には、２００−１７の出力端子が接続されていたが、代わりに２００−１０の出力端子が接続される。２００−１９の入力端子には、２００−１９の出力端子が接続されていたが、代わりに２００−９の出力端子が接続される。その他の信号の接続関係は図１８の場合と同様であるため説明を省略する。
【００５２】
次に、図２０に示す回路の接続関係について説明する。図２０は、図１９と比較して以下に示す接続関係が切り替えられている。図２０に示す回路において、２００−１の入力端子には、２００−１１の出力端子が接続されていたが、代わりに２００−１の出力端子が接続される。２００−２の入力端子には、２００−１２の出力端子が接続されていたが、代わりに２００−２の出力端子が接続される。２００−３の入力端子には、ｉｎ７が接続されていたが、代わりにｉｎ１が接続される。２００−４の入力端子には、ｉｎ５が接続されていたが、代わりにｉｎ３が接続される。２００−１３の一方の入力端子には、ｉｎ３が接続されていたが、代わりにｉｎ５が接続される。２００−１４の一方の入力端子には、ｉｎ１が接続されていたが、代わりにｉｎ７が接続される。２００−１６の入力端子には、２００−１６の出力端子が接続されていたが、代わりに２００−１０の出力端子が接続される。２００−１７の入力端子には、２００−１７の出力端子が接続されていたが、代わりに２００−１６の出力端子が接続される。２００−１８の入力端子には、２００−１０の出力端子が接続されていたが、代わりに２００−１７の出力端子が接続される。その他の信号の接続関係は図１８の場合と同様であるため説明を省略する。
【００５３】
次に、図２１に示す回路の接続関係について説明する。図２１は、図２０と比較して以下に示す接続関係が切り替えられている。図２１に示す回路において、２００−１の入力端子には、２００−１の出力端子が接続されていたが、代わりに"０"が入力される。２００−２の入力端子には、２００−２の出力端子が接続されていたが、代わりに"０"が入力される。２００−５の入力端子には、ｉｎ２が接続されていたが、代わりにｉｎ６が接続される。２００−８の入力端子には、ｉｎ６が接続されていたが、代わりにｉｎ２が接続される。２００−１１の一方の入力端子には、"０"が入力されていたが、代わりに２００−１の出力端子が接続される。２００−１２の一方の入力端子には、"０"が入力されていたが、代わりに２００−１７の出力端子が接続される。２００−１５の一方の入力端子には、２００−１９の出力端子が接続されていたが、代わりに２００−２の出力端子が接続される。２００−１８の入力端子には、２００−１７の出力端子が接続されていたが、代わりに２００−９の出力端子が接続される。２００−１９の入力端子には、２００−９の出力端子が接続されていたが、代わりに２００−１９の出力端子が接続される。その他の信号の接続関係は図１８の場合と同様であるため説明を省略する。
【００５４】
以上のように、図９に示す回路において、クロックサイクル毎に図１８、図１９、図２０、図２１の順に繰り返し信号経路の切り替えを行って演算処理を実行することにより、図１６に示すＡＰＰ９２２の逆直交変換のシグナルフローを実現することができる。なお、上記以外のＶＣ１やＭＰＥＧ４等の他のコーデックの逆直交変換も本発明の実施の形態１にかかる逆直交変換処理回路により対応可能である。
【００５５】
発明の実施の形態２
上述のように、発明の実施の形態１にかかる逆直交変換処理回路は、自由に各演算回路２００の接続関係を切り替えて演算処理を実行することにより、様々なコーデックに対応可能である。しかし、各セレクタ回路３００には、外部入力信号及び各演算回路２００から出力された信号により構成される入力信号群のすべてが入力されるため、回路規模が増大するという問題があった。その解決策として、予め使用するコーデックが決まっている場合等において、必要な演算処理を行う信号経路のみを有する回路構成を採用することにより、回路規模を小さくすることが可能である。つまり、不要な信号経路を削除することにより、セレクタ回路３００の入力端子が減少し、サイズを小さくすることができる。また、セレクタ回路３００の出力信号を制御する制御信号のビット幅も削減することができる。また、信号経路を切り替える必要がない演算回路２００間の接続にはセレクタを介さないことにより、同様の効果を得ることができる。ただし、演算処理の信号経路を制限すると回路規模が縮小する代わりに、汎用性は乏しくなることに注意をする必要がある。
【００５６】
図９に示す回路において、コーデックとしてＨ．２６４、ＭＰＥＧ２、ＡＰ９２２を採用した場合に必要な信号経路を図２２及び図２３に示す。図２２は、各コーデックの水平処理の逆直交変換を行う場合の例を示す。また、図２３は、各コーデックの垂直処理の逆直交変換を行う場合の例を示す。図２２に示すように、各セレクタ回路３００に入力される信号の選択肢数を２〜６本に削減することができる。また、図２３に示すように、各セレクタ回路３００に入力される信号の選択肢数を２〜７本に削減することができる。
【００５７】
図２４に本発明に実施の形態２にかかる逆直交変換処理回路と従来技術との演算回路の使用数の比較を示す。なお、図２４に示す従来技術の回路は、Ｈ．２６４、ＭＰＥＧ２、ＡＰ９２２がそれぞれ個別に備えられた場合の例である。また、図２４に示す本発明の回路は実施の形態２にかかる逆直交変換処理回路の例である。この例に示すように、本発明の回路は、従来技術の回路と比較して、セレクタ回路の使用数が増大しているが、その他の回路規模に大きな影響を与える演算器、及びレジスタの数は減少している。
【００５８】
図２５に本発明にかかる逆直交変換処理回路と従来技術との回路規模（ゲート数）の比較を示す。なお、図２５に示す従来技術の回路は、Ｈ．２６４、ＭＰＥＧ２、ＡＰ９２２がそれぞれ個別に備えられた場合の例である。また、図２４に示す本発明の回路は実施の形態１及び２にかかる逆直交変換処理回路の例である。まず、実施の形態１にかかる本発明の回路は、自由に信号経路を切り替えて演算処理を実行することができる代わりに、従来技術と比較して回路規模が増大している。しかし、実施の形態２にかかる本発明の回路は、従来技術の回路と比較して、回路規模が縮小している。
【００５９】
以上のように、不要な信号経路を削除することにより、セレクタ回路３００のサイズ等を小さくすることができ、回路規模を小さくすることができる。
【００６０】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、演算回路２００は、上記実施の形態の形式に限られるものではなく、コーデックに必要な演算機能に応じて適宜変更することが可能である。また、ユニット部１０１に備えられる演算回路２００の数も適宜変更可能である。
【００６１】
また、本発明の実施の形態では、逆直交変換処理の例について説明したが、これに限られず、直交変換処理の場合にも適用可能である。
【図面の簡単な説明】
【００６２】
【図１】本発明の実施の形態１にかかる逆直交変換処理回路のブロック図である。
【図２】本発明の実施の形態１にかかるセレクタ回路の例を示す図である。
【図３】本発明の実施の形態１にかかるセレクタ回路の例を示す図である。
【図４】本発明の実施の形態１にかかる演算回路の回路構成例を示す図である。
【図５】本発明の実施の形態１にかかる演算回路の回路構成例を示す図である。
【図６】本発明の実施の形態１にかかる演算回路の回路構成例を示す図である。
【図７】本発明の実施の形態１にかかる演算回路の回路構成例を示す図である。
【図８】本発明の実施の形態１にかかるコントロール部のブロック図である。
【図９】本発明の実施の形態１にかかる逆直交変換回路の回路構成例を示す図である。
【図１０】Ｈ．２６４における逆直交変換のシグナルフローを示す図である。
【図１１】Ｈ．２６４における逆直交変換のパイプライン処理を示す図である。
【図１２】本発明の実施の形態１にかかる逆直交変換処理回路の接続関係を示す図である。
【図１３】ＭＰＥＧ２における逆直交変換のシグナルフローを示す図である。
【図１４】ＭＰＥＧ２における逆直交変換のパイプライン処理を示す図である。
【図１５】本発明の実施の形態１にかかる逆直交変換処理回路の接続関係を示す図である。
【図１６】ＡＰ９２２逆直交変換のシグナルフローを示す図である。
【図１７】ＡＰ９２２逆直交変換のパイプライン処理を示す図である。
【図１８】本発明の実施の形態１にかかる逆直交変換処理回路の接続関係を示す図である。
【図１９】本発明の実施の形態１にかかる逆直交変換処理回路の接続関係を示す図である。
【図２０】本発明の実施の形態１にかかる逆直交変換処理回路の接続関係を示す図である。
【図２１】本発明の実施の形態１にかかる逆直交変換処理回路の接続関係を示す図である。
【図２２】本発明の実施の形態２にかかる逆直交変換処理回路を示す図である。
【図２３】本発明の実施の形態２にかかる逆直交変換処理回路を示す図である。
【図２４】本発明に実施の形態２にかかる逆直交変換処理回路と従来技術との演算回路の使用数の比較を示す図である。
【図２５】本発明にかかる逆直交変換処理回路と従来技術との回路規模の比較を示す図である。
【図２６】従来技術の逆直交変換処理回路を示す図である。
【図２７】従来技術（特許文献１）の逆直交変換処理回路を示す図である。
【符号の説明】
【００６３】
１００  セレクタ部
１０１  ユニット部
１０２  コントロール部
１０３  外部データメモリ
１０４  外部データメモリ
１０５  コマンドコントロール部
１０６  外部メモリ
１０７  コマンド保持部
１０８  処理パタンのサイクル情報
１０９  シフト情報
１１０  サチュレーション情報
１１１  信号反転情報
１１２  補数メモリ
１１３  係数メモリ
２００  演算回路
３００  セレクタ回路
４０１  乗算回路
４０２  レジスタ回路
４０３  乗算回路
４０４  シフト回路
４０５  レジスタ回路
４０６  加算回路
４０７  減算回路
４０８  レジスタ回路
４０９  レジスタ回路
４１０  反転回路
４１１  反転回路
４１２  乗算回路
４１３  シフト回路
４１４  サチュレーション回路
４１５  レジスタ回路
【図１】
2010118718.tif 000005
【図２】
2010118718.tif 000006
【図３】
2010118718.tif 000007
【図４】
2010118718.tif 000008
【図５】
2010118718.tif 000009
【図６】
2010118718.tif 000010
【図７】
2010118718.tif 000011
【図８】
2010118718.tif 000012
【図９】
2010118718.tif 000013
【図１０】
2010118718.tif 000014
【図１１】
2010118718.tif 000015
【図１２】
2010118718.tif 000016
【図１３】
2010118718.tif 000017
【図１４】
2010118718.tif 000018
【図１５】
2010118718.tif 000019
【図１６】
2010118718.tif 000020
【図１７】
2010118718.tif 000021
【図１８】
2010118718.tif 000022
【図１９】
2010118718.tif 000023
【図２０】
2010118718.tif 000024
【図２１】
2010118718.tif 000025
【図２２】
2010118718.tif 000026
【図２３】
2010118718.tif 000027
【図２４】
2010118718.tif 000028
【図２５】
2010118718.tif 000029
【図２６】
2010118718.tif 000030
【図２７】
2010118718.tif 000031