(57)【要約】【課題】異なるデータ処理を選択的に実行可能な小型かつ低消費電力型のデータ処理構成を実現する。【解決手段】データ処理を実行する複数のデータ処理ブロックと、データフロー制御を実行するフロー制御部と、データ処理ブロックおよびフロー制御部の設定処理を実行する制御部とを有し、制御部がタスクリストに従って設定情報（Ｃｏｎｆｉｇ）を取得し、取得した設定情報に基づいてデータ処理ブロックおよびフロー制御部の設定を行い、様々なデータ処理に適応するデータ処理構成を構築する。本構成によれば、例えば３ＤＣＧ処理とＣＯＤＥＣ処理など、異なるデータ処理を共通のデータ処理ブロックを適用して実行可能となり、実装面積の削減が可能となり、さらに製造コストや消費電力を削減した情報処理装置が実現される。【選択図】図１
2008299662.tif 000002
【特許請求の範囲】
【請求項１】
各々が個別のデータ処理を実行する複数のデータ処理ブロックと、
前記データ処理ブロック間のデータフロー制御を実行するフロー制御部と、
前記データ処理ブロックおよびフロー制御部の設定処理を実行する制御部と、
を有し、
前記制御部は、
実行するデータ処理対応のタスクリストに従って設定情報（Ｃｏｎｆｉｇ）を取得し、取得した設定情報に基づいて各データ処理ブロックおよびフロー制御部の設定を行い、実行するデータ処理に適応するデータ処理構成を構築する構成であることを特徴とする情報処理装置。
【請求項２】
前記タスクリストは、実行するデータ処理に応じて利用するデータ処理ブロックと利用しないデータ処理ブロックの判別データを保持したアクティブマップを含み、
前記制御部は、
前記アクティブマップに基づいて、利用しないデータ処理ブロックに対する電力供給を停止させる制御を行う構成であることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記制御部は、
前記複数のデータ処理ブロックの少なくとも一部のデータ処理ブロックを、実行するデータ処理に応じて異なるデータ処理を実行させる設定とする処理を行うことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記複数のデータ処理ブロックの少なくとも一部のデータ処理ブロックは、取得命令に応じた様々な処理を実行するデータ処理ブロックとして構成され、前記制御部の設定処理によって異なるデータ処理を行うことが可能な構成を有する構成であることを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記複数のデータ処理ブロックの少なくとも一部のデータ処理ブロックは、
３ＤＣＧ処理における頂点シェーダ（Ｖｅｒｔｅｘ  Ｓｈａｄｅｒ）処理、およびフラグメントシェーダ（Ｆｒａｇｍｅｎｔ  Ｓｈａｄｅｒ）処理を選択的に実行可能な構成であることを特徴とする請求項１に記載の情報処理装置。
【請求項６】
前記複数のデータ処理ブロックの少なくとも一部のデータ処理ブロックは、３ＤＣＧ処理における頂点シェーダ（Ｖｅｒｔｅｘ  Ｓｈａｄｅｒ）処理、およびフラグメントシェーダ（Ｆｒａｇｍｅｎｔ  Ｓｈａｄｅｒ）処理を選択的に実行可能な複数のシェーダエレメント（Ｓｈａｄｅｒ  Ｅｌｅｍｅｎｔ）によって構成され、
前記制御部は、
前記複数のシェーダエレメント（Ｓｈａｄｅｒ  Ｅｌｅｍｅｎｔ）の一部を頂点シェーダ（Ｖｅｒｔｅｘ  Ｓｈａｄｅｒ）処理を実行させる設定とし、一部をフラグメントシェーダ（Ｆｒａｇｍｅｎｔ  Ｓｈａｄｅｒ）処理を実行させる設定とすることを特徴とする請求項１に記載の情報処理装置。
【請求項７】
前記複数のデータ処理ブロックの少なくとも一部のデータ処理ブロックは、３ＤＣＧ処理における頂点シェーダ（Ｖｅｒｔｅｘ  Ｓｈａｄｅｒ）処理、およびフラグメントシェーダ（Ｆｒａｇｍｅｎｔ  Ｓｈａｄｅｒ）処理を選択的に実行可能な複数のシェーダエレメント（Ｓｈａｄｅｒ  Ｅｌｅｍｅｎｔ）によって構成され、
前記制御部は、
前記複数のシェーダエレメント（Ｓｈａｄｅｒ  Ｅｌｅｍｅｎｔ）を時分割して、頂点シェーダ（Ｖｅｒｔｅｘ  Ｓｈａｄｅｒ）処理を実行させる時間と、フラグメントシェーダ（Ｆｒａｇｍｅｎｔ  Ｓｈａｄｅｒ）処理を実行させる時間を設定する制御を行う構成であることを特徴とする請求項１に記載の情報処理装置。
【請求項８】
前記複数のデータ処理ブロックの少なくとも一部のデータ処理ブロックは、３ＤＣＧ処理における頂点シェーダ（Ｖｅｒｔｅｘ  Ｓｈａｄｅｒ）処理、およびフラグメントシェーダ（Ｆｒａｇｍｅｎｔ  Ｓｈａｄｅｒ）処理、およびＣＯＤＥＣ処理におけるマクロブロック処理を選択的に実行可能な構成であることを特徴とする請求項１に記載の情報処理装置。
【請求項９】
前記複数のデータ処理ブロックの少なくとも一部のデータ処理ブロックは、テクスチャ処理を実行するテクスチャユニットであり、
前記テクスチャユニットは縮小画像の生成処理を行う構成を有し、生成した縮小画像をローカルメモリを介して外部出力するとともに、前記ローカルメモリに格納された縮小画像を再取得して縮小を繰り返し実行して目的のサイズの縮小画像を生成する構成であることを特徴とする請求項１に記載の情報処理装置。
【請求項１０】
前記フロー制御部は、転送データを一時格納するデータバッファと、該データバッファの蓄積データを転送先に選択出力するクロスバススイッチを有することを特徴とする請求項１に記載の情報処理装置。
【請求項１１】
前記フロー制御部は、データの出力先を出力データに応じて順次切り替える処理を実行する構成であることを特徴とする請求項１に記載の情報処理装置。
【請求項１２】
前記フロー制御部は、ラウンドロビン方式に従ってデータの出力先を出力データに応じて順次切り替える処理を実行する構成であることを特徴とする請求項１に記載の情報処理装置。
【請求項１３】
情報処理装置において実行する情報処理方法であり、
前記情報処理装置は、各々が個別のデータ処理を実行する複数のデータ処理ブロックと、前記データ処理ブロック間のデータフロー制御を実行するフロー制御部と、前記データ処理ブロックおよびフロー制御部の設定処理を実行する制御部とを有し、
前記制御部が、実行するデータ処理対応のタスクリストに従って設定情報（Ｃｏｎｆｉｇ）を取得するステップと、
前記制御部が、前記設定情報に基づいて各データ処理ブロックおよびフロー制御部の設定により実行するデータ処理に適応するデータ処理構成の構築を行う設定ステップと、
を有することを特徴とする情報処理方法。
【請求項１４】
前記タスクリストは、実行するデータ処理に応じて利用するデータ処理ブロックと利用しないデータ処理ブロックの判別データを保持したアクティブマップを含み、
前記制御部は、前記アクティブマップに基づいて、利用しないデータ処理ブロックに対する電力供給を停止させる制御を行うことを特徴とする請求項１３に記載の情報処理方法。
【請求項１５】
前記制御部は、前記複数のデータ処理ブロックの少なくとも一部のデータ処理ブロックを、実行するデータ処理に応じて異なるデータ処理を実行させる設定とする処理を行うことを特徴とする請求項１３に記載の情報処理方法。
【請求項１６】
前記複数のデータ処理ブロックの少なくとも一部のデータ処理ブロックは、取得命令に応じた様々な処理を実行する可変データ処理ブロックであり、
前記制御部は、
前記可変データ処理ブロックを、前記タスクリストに基づく設定によって特定のデータ処理を実行させる設定とする制御を行うことを特徴とする請求項１３に記載の情報処理方法。
【請求項１７】
前記複数のデータ処理ブロックの少なくとも一部のデータ処理ブロックは、
３ＤＣＧ処理における頂点シェーダ（Ｖｅｒｔｅｘ  Ｓｈａｄｅｒ）処理、およびフラグメントシェーダ（Ｆｒａｇｍｅｎｔ  Ｓｈａｄｅｒ）処理を選択的に実行可能な構成であることを特徴とする請求項１３に記載の情報処理方法。
【請求項１８】
前記複数のデータ処理ブロックの少なくとも一部のデータ処理ブロックは、３ＤＣＧ処理における頂点シェーダ（Ｖｅｒｔｅｘ  Ｓｈａｄｅｒ）処理、およびフラグメントシェーダ（Ｆｒａｇｍｅｎｔ  Ｓｈａｄｅｒ）処理を選択的に実行可能な複数のシェーダエレメント（Ｓｈａｄｅｒ  Ｅｌｅｍｅｎｔ）によって構成され、
前記制御部は、前記複数のシェーダエレメント（Ｓｈａｄｅｒ  Ｅｌｅｍｅｎｔ）の一部を頂点シェーダ（Ｖｅｒｔｅｘ  Ｓｈａｄｅｒ）処理を実行させる設定とし、一部をフラグメントシェーダ（Ｆｒａｇｍｅｎｔ  Ｓｈａｄｅｒ）処理を実行させる設定とすることを特徴とする請求項１３に記載の情報処理方法。
【請求項１９】
前記複数のデータ処理ブロックの少なくとも一部のデータ処理ブロックは、３ＤＣＧ処理における頂点シェーダ（Ｖｅｒｔｅｘ  Ｓｈａｄｅｒ）処理、およびフラグメントシェーダ（Ｆｒａｇｍｅｎｔ  Ｓｈａｄｅｒ）処理を選択的に実行可能な複数のシェーダエレメント（Ｓｈａｄｅｒ  Ｅｌｅｍｅｎｔ）によって構成され、
前記制御部は、前記複数のシェーダエレメント（Ｓｈａｄｅｒ  Ｅｌｅｍｅｎｔ）を時分割して、頂点シェーダ（Ｖｅｒｔｅｘ  Ｓｈａｄｅｒ）処理を実行させる時間と、フラグメントシェーダ（Ｆｒａｇｍｅｎｔ  Ｓｈａｄｅｒ）処理を実行させる時間を設定する制御を行うことを特徴とする請求項１３に記載の情報処理方法。
【請求項２０】
前記複数のデータ処理ブロックの少なくとも一部のデータ処理ブロックは、３ＤＣＧ処理における頂点シェーダ（Ｖｅｒｔｅｘ  Ｓｈａｄｅｒ）処理、およびフラグメントシェーダ（Ｆｒａｇｍｅｎｔ  Ｓｈａｄｅｒ）処理、およびＣＯＤＥＣ処理におけるマクロブロック処理を選択的に実行可能な構成であることを特徴とする請求項１３に記載の情報処理方法。
【請求項２１】
前記複数のデータ処理ブロックの少なくとも一部のデータ処理ブロックは、テクスチャ処理を実行するテクスチャユニットであり、
前記テクスチャユニットは縮小画像の生成処理を行い、生成した縮小画像をローカルメモリを介して外部出力するとともに、前記ローカルメモリに格納された縮小画像を再取得して縮小を繰り返し実行して目的のサイズの縮小画像を生成することを特徴とする請求項１３に記載の情報処理方法。
【請求項２２】
前記フロー制御部は、
データバッファに転送データを一時格納し、クロスバススイッチにより、前記データバッファの蓄積データを転送先に選択出力する処理を実行することを特徴とする請求項１３に記載の情報処理方法。
【請求項２３】
前記フロー制御部は、データの出力先を出力データに応じて順次切り替える処理を実行することを特徴とする請求項１３に記載の情報処理方法。
【請求項２４】
前記フロー制御部は、ラウンドロビン方式に従ってデータの出力先を出力データに応じて順次切り替える処理を実行することを特徴とする請求項１３に記載の情報処理方法。
【請求項２５】
情報処理装置において情報処理を実行させるコンピュータ・プログラムであり、
前記情報処理装置は、各々が個別のデータ処理を実行する複数のデータ処理ブロックと、前記データ処理ブロック間のデータフロー制御を実行するフロー制御部と、前記データ処理ブロックおよびフロー制御部の設定処理を実行する制御部とを有し、
前記制御部に、実行するデータ処理対応のタスクリストに従って設定情報（Ｃｏｎｆｉｇ）を取得させるステップと、
前記制御部に、前記設定情報に基づいて各データ処理ブロックおよびフロー制御部の設定により実行するデータ処理に適応するデータ処理構成の構築を行わせる設定ステップと、
を有することを特徴とするコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、および情報処理方法、並びにコンピュータ・プログラムに関する。さらに詳細には、例えば３ＤＣＧやＣＯＤＥＣ処理を伴う３次元グラフィック処理を行なう情報処理装置、および情報処理方法、並びにコンピュータ・プログラムに関する。
【背景技術】
【０００２】
３ＤＣＧ（３−Ｄｉｍｅｎｓｉｏｎａｌ  Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ）技術は、コンピュータ内部に格納されている３次元形状のデータを座標変換や陰影付けを行うことにより視覚的にわかりやすく表示する役割を果たし、ビデオゲームやユーザーインターフェースなどで幅広く活用されている。また、画像ＣＯＤＥＣ処理は、コンピュータ内部に格納されている圧縮された画像を伸長し表示する処理や、その逆処理としての画像圧縮処理であり、デジタルビデオカメラ、デジタルスチルカメラ、携帯電話などで画像データを表示または保存する上で幅広く活用されている。
【０００３】
このようにビデオゲーム、デジタルスチルカメラ、デジタルカメラ、携帯電話などの様々なデジタル機器において、３ＤＣＧおよび画像ＣＯＤＥＣ処理は頻繁に活用される。この３ＤＣＧ処理やＣＯＤＥＣ処理を実行する一般的なハードウェア構成例を図１７に示す。
【０００４】
図１７に示す例は、ＣＰＵ１１、ＤＳＰ１２、ＲＡＭ１３、ＲＯＭ１４、外部ＩＦ１５に、さらに、各処理機能毎のメディア処理ブロック２０、例えば図に示す例では、ＪＰＥＧに対応するＣＯＤＥＣ処理を実行するＪＰＥＧ処理ブロック２１、ＭＰＥＧに対応するＣＯＤＥＣ処理を実行するＭＰＥＧ処理ブロック２２、３ＤＣＧ機能を実行する３ＤＣＧ処理ブロック２３を設定した例を示している。
【０００５】
ＪＰＥＧ処理ブロック２１、ＭＰＥＧ処理ブロック２２、３ＤＣＧ処理ブロック２３は、各処理に応じた専用の処理回路を有している。なお、このような専用処理ブロックは機能ＩＰ（Ｉｎｔｅｌｌｅｃｔｕａｌ  Ｐｒｏｐｅｒｔｙ）と呼ばれる。
【０００６】
このような機能ＩＰ（専用処理ブロック）を用いず、高速の汎用ＣＰＵによってソフトウェア処理を行うという手法も存在するが、一般的に画像の描画処理はリアルタイム性が求められるために、通常デジタル機器に搭載されるＣＰＵでは能力的に不足する。このため、専用の処理回路を採用するのが一般的であるが、この場合、それぞれの機能ＩＰ（専用処理ブロック）を搭載するためにＬＳＩ上の面積が増大するという問題が発生する。
【０００７】
それでも近年までは、各機能ＩＰは性能要求が現在に比べると低く、機能毎に論理回路を搭載してもあまり問題とはならなかったが、３ＤＣＧにおいてはその表現をより豊かにするためのデータ処理が求められている。例えばシェーダ（Ｓｈａｄｅｒ）と呼ばれるプログラムによる陰影付け処理を施してより豊かな表現が行われるようになっている。シェーディングは３ＤＣＧにおける陰影付けの手法であり、例えば面を構成する頂点の明るさを計算し、各点の明るさを頂点の明るさの線形補間によって求めるといった処理により陰影付けが行われる。この他にも３ＤＣＧは性能・機能要求ともに高度になってきている。また、画像ＣＯＤＥＣもＭＰＥＧ−２−＞ＭＰＥＧ−４−＞ＭＰＥＧ−４ＡＶＣ／Ｈ．２６４のように、コーデックのアルゴリズムがより複雑かつ多様になってきている。
【０００８】
３ＤＣＧおよび画像ＣＯＤＥＣの一般的な処理構成について、図１８、図１９を参照して説明する。３ＤＣＧの処理を代表的なＡＰＩであるＯｐｅｎＧＬを例にして説明する。図１８は、ＯｐｅｎＧＬ  ２．０  Ｏｖｅｒｖｉｅｗ  ２００３  ３Ｄｌａｂｓ，Ｉｎｃに紹介されている３ＤＣＧの処理構成である。
【０００９】
メモリ３１上から、あらかじめ用意されているオブジェクト座標系の頂点情報（Ｖｅｒｔｉｃｅｓ）が頂点プロセッサ（Ｖｅｒｔｅｘ  Ｐｒｏｃｅｓｓｏｒ）３２に入力され、頂点プロセッサ（Ｖｅｒｔｅｘ  Ｐｒｏｃｅｓｓｏｒ）３２は予め用意されたプログラムで頂点処理を行い、クリップ座標系に設定した頂点情報を出力する。その結果は、頂点情報処理実行部３５，３６において、Ｐｒｉｍｉｔｉｖｅ  Ａｓｓｅｍｂｌｙ、Ｃｌｉｐ、Ｐｒｏｊｅｃｔ  Ｖｉｅｗｐｏｒｔ  Ｃｕｌｌ等の処理を実行した後、ラスタライズ（Ｒａｓｔｅｒｉｚｅ）３７が行われる。
【００１０】
ラスタライズ（Ｒａｓｔｅｒｉｚｅ）された結果のフラグメント（Ｆｒａｇｍｅｎｔｓ）はフラグメントプロセッサ（Ｆｒａｇｍｅｎｔ  Ｐｒｏｃｅｓｓｏｒ）３８  に入力されてＦｒａｇｍｅｎｔ処理を行う。この際テクスチャ（Ｔｅｘｔｕｒｅ）メモリ４０から読み出されたＴｅｘｔｕｒｅとの各種ブレンド処理も行われる場合がある。Ｆｒａｇｍｅｎｔ処理された結果はＰｅｒ  Ｆｒａｇｍｅｎｔ  Ｏｐｅｒａｔｉｏｎ３９が行われフレームバッファ（Ｆｒａｍｅ  Ｂｕｆｆｅｒ）４１へ書き込み、１フレーム分の処理が行われた結果が読み出されて表示が行われる。なお、この処理の詳細は、ＯｐｅｎＧＬ２．０規格書Ｔｈｅ  ＯｐｅｎＧＬ  Ｇｒａｐｈｉｃｓ  Ｓｙｓｅｍ：  Ａ  Ｓｐｅｃｉｆｉｃａｔｉｏｎに記載されている。
【００１１】
また、画像ＣＯＤＥＣの圧縮処理は、例えば図１９に示すＣＯＤＥＣ処理構成によって実行される。入力画像は、フレーム内予測、もしくは異なるフレームの動き補償の結果を差分され、直交変換、量子化をされてエントロピー符号化される。また、量子化後に逆量子化、逆直交変換された結果からフレーム内予測、もしくは動き補償された結果を加算された結果がループフィルタでフィルタされ、フレームメモリに蓄積される。前述の動き補償は、この蓄積されたフレームメモリ上の画像から動き予測されて行われる。また、動き予測のベクタやフレーム内予測の方式も上と同様にエントロピー符号化される。この結果がストリーム化されて出力される。復号化処理は、符号化処理と基本的に逆のシーケンスで処理が実効される。ただし、動き予測や、逆変換（量子化、直交変換）がない処理として処理が行われる。
【００１２】
図１８には３ＤＣＧ処理、図１９にはＣＯＤＥＣ処理の処理構成を示したが、一般的な従来構成においては、これらの各処理は、それぞれ独自の機能ＩＰ、すなわち処理ブロックを設定して実行している、すなわち、図１７を参照して説明したＣＯＤＥＣ処理を実行するＭＰＥＧ処理ブロック２２、３ＤＣＧ機能を実行する３ＤＣＧ処理ブロック２３などである。
【００１３】
画像ＣＯＤＥＣ処理において複数の規格をサポートする場合は動き検出や動き補償などの一部の回路を共有化する場合はあるが、異なる部分も多く、更に３ＤＣＧ回路などの他の機能の論理回路との共有化は行われておらず、図１７に示すように、ＪＰＥＧに対応するＣＯＤＥＣ処理を実行するＪＰＥＧ処理ブロック２１、ＭＰＥＧに対応するＣＯＤＥＣ処理を実行するＭＰＥＧ処理ブロック２２など、別々の機能ＩＰ（専用処理ブロック）として実現されている。
【００１４】
このような手法によると、それぞれの機能ＩＰ（専用処理ブロック）を搭載することとなり回路規模が増大することになる。また各処理における高度化要求、データ処理量の増大に伴い機能ＩＰ（専用処理ブロック）を論理回路として実装するゲート規模がさらに増大し、結果としてデジタル機器に搭載されるＬＳＩの面積の増大、製造コストの上昇が加速する要因となっている。また機器の実用上もＬＳＩ面積が大きいと、個々の機能を使用していなくてもリーク電流の消費によりＬＳＩおよび機器の電力消費が増大するという問題が発生する。
【発明の開示】
【発明が解決しようとする課題】
【００１５】
本発明は、例えば上述の問題点に鑑みてなされたものである。３ＤＣＧ処理やＣＯＤＥＣ処理などの様々なデータ処理の共通の部分を抽出してより消費電力が少ない固定論理回路として実装し、可変の部分に関してもそれぞれの処理に共通に利用可能なプログラマブル回路として実装することにより、様々なデータ処理に適用可能な小型で消費電力の少ない情報処理装置、および情報処理方法、並びにコンピュータ・プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１６】
本発明の第１の側面は、
各々が個別のデータ処理を実行する複数のデータ処理ブロックと、
前記データ処理ブロック間のデータフロー制御を実行するフロー制御部と、
前記データ処理ブロックおよびフロー制御部の設定処理を実行する制御部と、
を有し、
前記制御部は、
実行するデータ処理対応のタスクリストに従って設定情報（Ｃｏｎｆｉｇ）を取得し、取得した設定情報に基づいて各データ処理ブロックおよびフロー制御部の設定を行い、実行するデータ処理に適応するデータ処理構成を構築する構成であることを特徴とする情報処理装置にある。
【００１７】
さらに、本発明の情報処理装置の一実施態様において、前記タスクリストは、実行するデータ処理に応じて利用するデータ処理ブロックと利用しないデータ処理ブロックの判別データを保持したアクティブマップを含み、前記制御部は、前記アクティブマップに基づいて、利用しないデータ処理ブロックに対する電力供給を停止させる制御を行う構成であることを特徴とする。
【００１８】
さらに、本発明の情報処理装置の一実施態様において、前記制御部は、前記複数のデータ処理ブロックの少なくとも一部のデータ処理ブロックを、実行するデータ処理に応じて異なるデータ処理を実行させる設定とする処理を行うことを特徴とする。
【００１９】
さらに、本発明の情報処理装置の一実施態様において、前記複数のデータ処理ブロックの少なくとも一部のデータ処理ブロックは、取得命令に応じた様々な処理を実行するデータ処理ブロックとして構成され、前記制御部の設定処理によって異なるデータ処理を行うことが可能な構成を有する構成であることを特徴とする。
【００２０】
さらに、本発明の情報処理装置の一実施態様において、前記複数のデータ処理ブロックの少なくとも一部のデータ処理ブロックは、３ＤＣＧ処理における頂点シェーダ（Ｖｅｒｔｅｘ  Ｓｈａｄｅｒ）処理、およびフラグメントシェーダ（Ｆｒａｇｍｅｎｔ  Ｓｈａｄｅｒ）処理を選択的に実行可能な構成であることを特徴とする。
【００２１】
さらに、本発明の情報処理装置の一実施態様において、前記複数のデータ処理ブロックの少なくとも一部のデータ処理ブロックは、３ＤＣＧ処理における頂点シェーダ（Ｖｅｒｔｅｘ  Ｓｈａｄｅｒ）処理、およびフラグメントシェーダ（Ｆｒａｇｍｅｎｔ  Ｓｈａｄｅｒ）処理を選択的に実行可能な複数のシェーダエレメント（Ｓｈａｄｅｒ  Ｅｌｅｍｅｎｔ）によって構成され、前記制御部は、前記複数のシェーダエレメント（Ｓｈａｄｅｒ  Ｅｌｅｍｅｎｔ）の一部を頂点シェーダ（Ｖｅｒｔｅｘ  Ｓｈａｄｅｒ）処理を実行させる設定とし、一部をフラグメントシェーダ（Ｆｒａｇｍｅｎｔ  Ｓｈａｄｅｒ）処理を実行させる設定とすることを特徴とする。
【００２２】
さらに、本発明の情報処理装置の一実施態様において、前記複数のデータ処理ブロックの少なくとも一部のデータ処理ブロックは、３ＤＣＧ処理における頂点シェーダ（Ｖｅｒｔｅｘ  Ｓｈａｄｅｒ）処理、およびフラグメントシェーダ（Ｆｒａｇｍｅｎｔ  Ｓｈａｄｅｒ）処理を選択的に実行可能な複数のシェーダエレメント（Ｓｈａｄｅｒ  Ｅｌｅｍｅｎｔ）によって構成され、前記制御部は、前記複数のシェーダエレメント（Ｓｈａｄｅｒ  Ｅｌｅｍｅｎｔ）を時分割して、頂点シェーダ（Ｖｅｒｔｅｘ  Ｓｈａｄｅｒ）処理を実行させる時間と、フラグメントシェーダ（Ｆｒａｇｍｅｎｔ  Ｓｈａｄｅｒ）処理を実行させる時間を設定する制御を行う構成であることを特徴とする。
【００２３】
さらに、本発明の情報処理装置の一実施態様において、前記複数のデータ処理ブロックの少なくとも一部のデータ処理ブロックは、３ＤＣＧ処理における頂点シェーダ（Ｖｅｒｔｅｘ  Ｓｈａｄｅｒ）処理、およびフラグメントシェーダ（Ｆｒａｇｍｅｎｔ  Ｓｈａｄｅｒ）処理、およびＣＯＤＥＣ処理におけるマクロブロック処理を選択的に実行可能な構成であることを特徴とする。
【００２４】
さらに、本発明の情報処理装置の一実施態様において、前記複数のデータ処理ブロックの少なくとも一部のデータ処理ブロックは、テクスチャ処理を実行するテクスチャユニットであり、前記テクスチャユニットは縮小画像の生成処理を行う構成を有し、生成した縮小画像をローカルメモリを介して外部出力するとともに、前記ローカルメモリに格納された縮小画像を再取得して縮小を繰り返し実行して目的のサイズの縮小画像を生成する構成であることを特徴とする。
【００２５】
さらに、本発明の情報処理装置の一実施態様において、前記フロー制御部は、転送データを一時格納するデータバッファと、該データバッファの蓄積データを転送先に選択出力するクロスバススイッチを有することを特徴とする。
【００２６】
さらに、本発明の情報処理装置の一実施態様において、前記フロー制御部は、データの出力先を出力データに応じて順次切り替える処理を実行する構成であることを特徴とする。
【００２７】
さらに、本発明の情報処理装置の一実施態様において、前記フロー制御部は、ラウンドロビン方式に従ってデータの出力先を出力データに応じて順次切り替える処理を実行する構成であることを特徴とする。
【００２８】
さらに、本発明の第２の側面は、
情報処理装置において実行する情報処理方法であり、
前記情報処理装置は、各々が個別のデータ処理を実行する複数のデータ処理ブロックと、前記データ処理ブロック間のデータフロー制御を実行するフロー制御部と、前記データ処理ブロックおよびフロー制御部の設定処理を実行する制御部とを有し、
前記制御部が、実行するデータ処理対応のタスクリストに従って設定情報（Ｃｏｎｆｉｇ）を取得するステップと、
前記制御部が、前記設定情報に基づいて各データ処理ブロックおよびフロー制御部の設定により実行するデータ処理に適応するデータ処理構成の構築を行う設定ステップと、
を有することを特徴とする情報処理方法にある。
【００２９】
さらに、本発明の情報処理方法の一実施態様において、前記タスクリストは、実行するデータ処理に応じて利用するデータ処理ブロックと利用しないデータ処理ブロックの判別データを保持したアクティブマップを含み、前記制御部は、前記アクティブマップに基づいて、利用しないデータ処理ブロックに対する電力供給を停止させる制御を行うことを特徴とする。
【００３０】
さらに、本発明の情報処理方法の一実施態様において、前記制御部は、前記複数のデータ処理ブロックの少なくとも一部のデータ処理ブロックを、実行するデータ処理に応じて異なるデータ処理を実行させる設定とする処理を行うことを特徴とする。
【００３１】
さらに、本発明の情報処理方法の一実施態様において、前記複数のデータ処理ブロックの少なくとも一部のデータ処理ブロックは、取得命令に応じた様々な処理を実行する可変データ処理ブロックであり、前記制御部は、前記可変データ処理ブロックを、前記タスクリストに基づく設定によって特定のデータ処理を実行させる設定とする制御を行うことを特徴とする。
【００３２】
さらに、本発明の情報処理方法の一実施態様において、前記複数のデータ処理ブロックの少なくとも一部のデータ処理ブロックは、３ＤＣＧ処理における頂点シェーダ（Ｖｅｒｔｅｘ  Ｓｈａｄｅｒ）処理、およびフラグメントシェーダ（Ｆｒａｇｍｅｎｔ  Ｓｈａｄｅｒ）処理を選択的に実行可能な構成であることを特徴とする。
【００３３】
さらに、本発明の情報処理方法の一実施態様において、前記複数のデータ処理ブロックの少なくとも一部のデータ処理ブロックは、３ＤＣＧ処理における頂点シェーダ（Ｖｅｒｔｅｘ  Ｓｈａｄｅｒ）処理、およびフラグメントシェーダ（Ｆｒａｇｍｅｎｔ  Ｓｈａｄｅｒ）処理を選択的に実行可能な複数のシェーダエレメント（Ｓｈａｄｅｒ  Ｅｌｅｍｅｎｔ）によって構成され、前記制御部は、前記複数のシェーダエレメント（Ｓｈａｄｅｒ  Ｅｌｅｍｅｎｔ）の一部を頂点シェーダ（Ｖｅｒｔｅｘ  Ｓｈａｄｅｒ）処理を実行させる設定とし、一部をフラグメントシェーダ（Ｆｒａｇｍｅｎｔ  Ｓｈａｄｅｒ）処理を実行させる設定とすることを特徴とする。
【００３４】
さらに、本発明の情報処理方法の一実施態様において、前記複数のデータ処理ブロックの少なくとも一部のデータ処理ブロックは、３ＤＣＧ処理における頂点シェーダ（Ｖｅｒｔｅｘ  Ｓｈａｄｅｒ）処理、およびフラグメントシェーダ（Ｆｒａｇｍｅｎｔ  Ｓｈａｄｅｒ）処理を選択的に実行可能な複数のシェーダエレメント（Ｓｈａｄｅｒ  Ｅｌｅｍｅｎｔ）によって構成され、前記制御部は、前記複数のシェーダエレメント（Ｓｈａｄｅｒ  Ｅｌｅｍｅｎｔ）を時分割して、頂点シェーダ（Ｖｅｒｔｅｘ  Ｓｈａｄｅｒ）処理を実行させる時間と、フラグメントシェーダ（Ｆｒａｇｍｅｎｔ  Ｓｈａｄｅｒ）処理を実行させる時間を設定する制御を行うことを特徴とする。
【００３５】
さらに、本発明の情報処理方法の一実施態様において、前記複数のデータ処理ブロックの少なくとも一部のデータ処理ブロックは、３ＤＣＧ処理における頂点シェーダ（Ｖｅｒｔｅｘ  Ｓｈａｄｅｒ）処理、およびフラグメントシェーダ（Ｆｒａｇｍｅｎｔ  Ｓｈａｄｅｒ）処理、およびＣＯＤＥＣ処理におけるマクロブロック処理を選択的に実行可能な構成であることを特徴とする。
【００３６】
さらに、本発明の情報処理方法の一実施態様において、前記複数のデータ処理ブロックの少なくとも一部のデータ処理ブロックは、テクスチャ処理を実行するテクスチャユニットであり、前記テクスチャユニットは縮小画像の生成処理を行い、生成した縮小画像をローカルメモリを介して外部出力するとともに、前記ローカルメモリに格納された縮小画像を再取得して縮小を繰り返し実行して目的のサイズの縮小画像を生成することを特徴とする。
【００３７】
さらに、本発明の情報処理方法の一実施態様において、前記フロー制御部は、データバッファに転送データを一時格納し、クロスバススイッチにより、前記データバッファの蓄積データを転送先に選択出力する処理を実行することを特徴とする。
【００３８】
さらに、本発明の情報処理方法の一実施態様において、前記フロー制御部は、データの出力先を出力データに応じて順次切り替える処理を実行することを特徴とする。
【００３９】
さらに、本発明の情報処理方法の一実施態様において、前記フロー制御部は、ラウンドロビン方式に従ってデータの出力先を出力データに応じて順次切り替える処理を実行することを特徴とする。
【００４０】
さらに、本発明の第３の側面は、
情報処理装置において情報処理を実行させるコンピュータ・プログラムであり、
前記情報処理装置は、各々が個別のデータ処理を実行する複数のデータ処理ブロックと、前記データ処理ブロック間のデータフロー制御を実行するフロー制御部と、前記データ処理ブロックおよびフロー制御部の設定処理を実行する制御部とを有し、
前記制御部に、実行するデータ処理対応のタスクリストに従って設定情報（Ｃｏｎｆｉｇ）を取得させるステップと、
前記制御部に、前記設定情報に基づいて各データ処理ブロックおよびフロー制御部の設定により実行するデータ処理に適応するデータ処理構成の構築を行わせる設定ステップと、
を有することを特徴とするコンピュータ・プログラムにある。
【００４１】
なお、本発明のコンピュータ・プログラムは、例えば、様々なプログラム・コードを実行可能な汎用コンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
【００４２】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【発明の効果】
【００４３】
本発明の一実施例の構成によれば、データ処理を実行する複数のデータ処理ブロックと、データフロー制御を実行するフロー制御部と、データ処理ブロックおよびフロー制御部の設定処理を実行する制御部とを有し、制御部がタスクリストに従って設定情報（Ｃｏｎｆｉｇ）を取得し、取得した設定情報に基づいてデータ処理ブロックおよびフロー制御部の設定を行い、様々なデータ処理に適応するデータ処理構成を構築する構成としたので、例えば３ＤＣＧ処理とＣＯＤＥＣ処理など、異なるデータ処理を共通のデータ処理ブロックを適用して実行可能となり、実装面積の削減、さらに製造コストおよび消費電力を削減した情報処理装置が実現される。
【発明を実施するための最良の形態】
【００４４】
以下、図面を参照しながら、本発明の情報処理装置、および情報処理方法、並びにコンピュータ・プログラムの詳細について説明する。
【００４５】
まず、本発明の概要について説明する。本発明の情報処理装置では、例えば３ＤＣＧ処理や、ＭＰＥＧ，ＪＰＥＧなどの様々な規格のＣＯＤＥＣ処理の少なくとも一部の処理について共通のハードウェアを利用して実行する。
【００４６】
例えば、画像ＣＯＤＥＣ処理においてはマクロブロックの圧縮や伸長の処理である直交変換（ＤＣＴ）や量子化等については、ＭＰＥＧ，ＪＰＥＧなどの規格毎に異なった処理が行われるが、動き探索や動き補償については規格が異なっていてもほとんど同じ画像内探索やフィルタ処理が行われる。更にこの処理においては、一時的局所画像メモリ領域とフィルタ演算器で実現することが望ましいが、３ＤＣＧのテクスチャ処理においても使用する手段は同じである。このために、上述の動き探索、動き補償、テクスチャ処理を行う１つの機能ブロックとして実現する。
【００４７】
また、例えば画像ＣＯＤＥＣのマクロブロック処理の画素処理は並列処理に向いており、例えば４つの入力値の各々について４つの並列処理可能な演算部を適用した４並列度処理や、８並列度の処理による高速化が見込まれる。また、３ＤＣＧ処理における頂点シェーダ（Ｖｅｒｔｅｘ  Ｓｈａｄｅｒ）処理の座標変換や、３ＤＣＧ処理におけるフラグメントシェーダ（Ｆｒａｇｍｅｎｔ  Ｓｈａｄｅｒ）処理のフラグメント処理も並列処理が可能であり、４並列度の処理による高速化が可能である。
【００４８】
例えば、３ＤＣＧにおいては、先に図１８を参照して説明したように、頂点（Ｖｅｒｔｅｘ）処理、フラグメント（Ｆｒａｇｍｅｎｔ）処理などが実行されるが、
頂点処理としての頂点シェーダ（Ｖｅｒｔｅｘ  Ｓｈａｄｅｒ）処理では、頂点の座標値＝（ｘ，ｙ，ｚ，ｗ）を適用したデータ処理として、
（ｘ'，ｙ'，ｚ'，ｗ'）＝ＭｏｄｅｌＶｉｅｗ＆Ｐｒｏｊｅｃｔｉｏｎ行列＊（ｘ，ｙ，ｚ，ｗ）
上記の式に従った処理が実行される。
また、フラグメントシェーダ（Ｆｒａｇｍｅｎｔ  Ｓｈａｄｅｒ）処理においては、ピクセルのカラー値の赤、緑、青、アルファ（ｒ，ｇ，ｂ，ａ）を適用したデータ処理として、
（ｒ，ｇ，ｂ，ａ）＝（ｒ１，ｇ１，ｂ１，ａ１）＋（ｒ２，ｇ２，ｂ２，ａ２
上記の式に従った処理が実行される。
【００４９】
一方、画像ＣＯＤＥＣ処理においては、例えばＭＰＥＧ−４ＡＶＣ／Ｈ．２６４の一次元整数ＤＣＴ処理が実行されるが、このＤＣＴ処理においては、変換対象とする入力値（ａ０，ａ１，ａ２，ａ３）に対して、
（Ａ０，Ａ１，Ａ２，Ａ３）＝変換行列＊（ａ０，ａ１，ａ２，ａ３）という式に従ったＤＣＴ変換が実行される。
このように、各データ処理では、類似した演算が実行される。
【００５０】
なお、ＣＯＤＥＣ処理におけるマクロブロックの直交変換や量子化（またはこれらの逆処理）やブロック内フィルタ処理は、各種ＣＯＤＥＣ規格（ＪＰＥＧ、ＭＰＥＧ−２、ＭＰＥＧ−４、ＭＰＥＧ−４ＡＶＣ／Ｈ．２６４など）によって異なり、また、３ＤＣＧ処理における頂点シェーダ処理（Ｖｅｒｔｅｘ  Ｓｈａｄｅｒ）やフラグメント処理（Ｆｒａｇｍｅｎｔ  Ｓｈａｄｅｒ）はユーザとしてのプログラマやデザイナーが自由にプログラミング可能とすることが要請されている。従ってこれらの処理は、様々なプログラムを利用可能なプロセッサ処理として行うことが望ましい。本発明の構成では、これらの処理について、並列演算を実行する演算実行部を備えた１つのデータ処理ブロックとして実現する。
【００５１】
なお、３ＤＣＧやＣＯＤＥＣにおいて共通に利用可能なデータ処理部を設定したとしても、各処理のシーケンスに沿って様々な処理を実現する必要がある。例えば、３ＤＣＧ処理の場合、
メモリ−＞頂点シェーダ（Ｖｅｒｔｅｘ  Ｓｈａｄｅｒ）処理−＞ラスタライズ（Ｒａｓｔｅｒｉｚｅ）−＞フラグメントシェーダ（Ｆｒａｇｍｅｎｔ  Ｓｈａｄｅｒ）処理−＞フラグメント対応処理（Ｐｅｒ  Ｆｒａｇｍｅｎｔ  Ｏｐｅｒａｔｉｏｎ）−＞メモリ
という処理シーケンスで処理が行われる。
【００５２】
これらの処理シーケンスにおける頂点シェーダ（Ｖｅｒｔｅｘ  Ｓｈａｄｅｒ）処理と、フラグメントシェーダ（Ｆｒａｇｍｅｎｔ  Ｓｈａｄｅｒ）処理が、上述のようにプログラム処理として実行させることが要請される処理である。これらの処理部分はラスタライズ（Ｒａｓｔｅｒｉｚｅ）処理の前後に設定されているので、プログラム処理を実行するデータ処理部で、頂点シェーダ（Ｖｅｒｔｅｘ  Ｓｈａｄｅｒ）処理を実行し、その結果をデータ処理部からラスタライザに提供し、さらに、ラスタライズ処理結果をプログラム処理を実行するデータ処理部に再入力してフラグメントシェーダ（Ｆｒａｇｍｅｎｔ  Ｓｈａｄｅｒ）処理を実行するといったデータ転送が必要となる。
【００５３】
また、例えばＣＯＤＥＣ処理における伸長処理の場合には、
メモリ−＞エントロピー復号化−＞逆量子化−＞逆直交変換−＞ブロック結合−＞メモリ
という処理シーケンスで処理が行われる。
【００５４】
これらの処理中、上述したように逆量子化および逆直交変換という処理がプログラム処理に適しているが、これは上記のシーケンス上は連続処理として実行可能であり、プログラム処理を実行するデータ処理部において、外部とのデータ入出力を行うことなくこれら２つの処理を一連の処理としてまとめて実行することができる。
【００５５】
ここで、前述のように３ＤＣＧにおける頂点シェーダ（Ｖｅｒｔｅｘ  Ｓｈａｄｅｒ）処理、およびフラグメントシェーダ（Ｆｒａｇｍｅｎｔ  Ｓｈａｄｅｒ）処理と、ＣＯＤＥＣ処理における逆量子化と逆直交変換を、１つの共通のデータ処理部（ＩＰ：機能ブロック）で行う構成とするには、ハードウェアをいずれかの処理専用の形態で設定してしまうと、その他の処理に適用できなくなるという問題が発生する。
【００５６】
本発明の情報処理装置では、例えば上記の様々なデータ処理に適用可能な共通のハードウェアを備え、かつ各処理に対応したプログラムの実行により様々なデータ処理シーケンスを実行することを可能しとしたデータ処理部を備えた情報処理装置を実現するものである。
【００５７】
以下、本発明の情報処理装置の具体例について説明する。以下では、実施例として、３ＤＣＧによる描画処理、および画像ＣＯＤＥＣ処理に適用可能なデータ処理部を備えた情報処理装置について説明する。
【００５８】
図１に本発明の一実施例に係る情報処理装置のデータ処理部１００の構成例を示す。データ処理部１００は、例えば１つのＬＳＩによって構成される。データ処理部１００は、各々が個別のデータ処理を実行する複数のデータ処理ブロック、すなわち、
シェーダエレメント（ＳＥ０〜ＳＥ３）１１０〜１１３、
ラスタライザ（Ｒａｓｔｅｒｉｚｅｒ）１３１、
ピクセル処理ユニット（ＰＰＵ）１４１、
テクスチャユニット（ＴＵ）１２１、
を有し、さらに、これらのデータ処理ブロック間のデータフロー制御を実行するフロー制御部としてのＡＤＵ１５０と、これらのデータ処理ブロックおよびフロー制御部（ＡＤＵ１５０）の設定処理を実行する制御部としてのタスクコントローラ（Ｔａｓｋ  Ｃｏｎｔｒｏｌｌｅｒ（ＴＣ））１０１を有する。制御部としてのタスクコントローラ（Ｔａｓｋ  Ｃｏｎｔｒｏｌｌｅｒ（ＴＣ））１０１は、データ処理部１００において実行するデータ処理対応のタスクリストに従って設定情報（Ｃｏｎｆｉｇ）を取得し、取得した設定情報に基づいて各データ処理ブロックおよびフロー制御部の設定を行い、実行するデータ処理に適応するデータ処理構成を構築する。
【００５９】
なお、フロー制御部（ＡＤＵ１５０）については、図１中にブロックとして示していないが、各処理ブロック間のデータフローの制御を行うユニットである。このＡＤＵ１５０の実行する制御については後段で説明する。
【００６０】
制御部としてのタスクコントローラ（Ｔａｓｋ  Ｃｏｎｔｒｏｌｌｅｒ（以下ＴＣ））１０１を有する。タスクコントローラ（ＴＣ）１０１は、ホストインターフェースの機能を持ち、アプリケーションやライブラリのソフトウェアが動作する上位ＣＰＵからの指令をレジスタアクセスおよび処理する内容をタスクリストとして受け取り、データ処理部１００全体の起動および内部の同期処理を行う。なお、タスクコントローラ（ＴＣ）１０１は画像ＣＯＤＥＣ処理のエントロピー符号化や復号化処理も実行する。
【００６１】
シェーダエレメント（Ｓｈａｄｅｒ  Ｅｌｅｍｅｎｔ（以下ＳＥ））１１０〜１１３は、
（ａ）３ＤＣＧ処理における頂点シェーダ（Ｖｅｒｔｅｘ  Ｓｈａｄｅｒ）処理の頂点要素処理、
（ｂ）３ＤＣＧ処理におけるフラグメントシェーダ（Ｆｒａｇｍｅｎｔ  Ｓｈａｄｅｒ）処理のフラグメント要素処理、
（ｃ）画像ＣＯＤＥＣ  処理におけるマクロブロックの量子化／逆量子化、直交変換／逆直交変換、イントラ（Ｉｎｔｒａ）予測補償、ブロック統合、ループ内フィルタ処理、
上記（ａ）〜（ｃ）の処理を各処理に応じて実行する。これらの処理は本実装においてはＳＩＭＤ型の並列演算をプログラムに従って実行する。
【００６２】
なお、図中ではシェーダエレメント（ＳＥ）の数を４つに設定した例を示しているが、これは一例であり、シェーダエレメント（ＳＥ）の数は、希望する並列処理数に応じて任意の数に設定できる。例えば２５６個程度までの設定とすることができる。
【００６３】
テクスチャユニット（Ｔｅｘｔｕｒｅ  Ｕｎｉｔ（ＴＵ））１２１は、
（ａ）３ＤＣＧ処理の実行に際しては、テクスチャマッピング処理のサンプリングおよびフィルタリング機能であるテクスチャのポイントサンプリング、バイリニア、トライリニアフィルタ処理、アニソトロピックフィルタ処理、ｃｕｂｅｍａｐ処理、ＭＩＰＭＡＰ画像生成を行う。
（ｂ）画像ＣＯＤＥＣ処理の実行に際しては、動き補償、動き検出処理を行う。
【００６４】
ラスタライザ（Ｒａｓｔｅｒｉｚｅｒ）１３１は、３ＤＣＧ処理において、ビューポート変換、透視法除算、クリッピング、トライアングルセットアップ、ポイントスプライト拡張、ピクセル補間処理、マルチサンプリング、シザリング、ポリゴンオフセット、デプスレンジ、フェイスカリングを行う。ここでは以上をラスタライズ処理と呼称する。
【００６５】
ピクセル処理ユニット（ＰＰＵ）１４１は３ＤＣＧ処理におけるフラグメント対応処理（Ｐｅｒ  Ｆｒａｇｍｅｎｔ  Ｏｐｅｒａｔｉｏｎ）、およびピクセル読み書き（Ｐｉｘｅｌ  ＲＷ）の機能を持つ。
【００６６】
ダイレクトメモリアクセスコントローラ（ＤＭＡＣ）１４２はデータ処理部１００外に存在する外部メモリとのインタフェース機能を持ち、外部メモリからＤＭＡ転送によりデータの取得、書き込みを行う。
【００６７】
ローカルメモリ１４３は、外部メモリから供給されたデータおよび内部で処理途中のデータを一時保存するメモリである。
【００６８】
なお、データ処理部１００では、３ＤＣＧにおける頂点シェーダ（Ｖｅｒｔｅｘ  Ｓｈａｄｅｒ）処理や、フラグメントシェーダ（Ｆｒａｇｍｅｎｔ  Ｓｈａｄｅｒ）処理、さらには、ＣＯＤＥＣ処理における量子化、直行変換処理、あるいは逆量子化と逆直交変換処理などを実行するが、これらの様々な処理に応じて、内部の各構成要素間でのデータの転送、供給処理は異なる態様で行うことが必要となる。
【００６９】
処理に応じてデータ転送態様を変更するために、データ処理部１００における図中のバスや直接接続で示している部分は、データバッファおよびクロスバスイッチなどからなるＡＤＵ（Ａｒｂｉｔｒａｔｉｏｎ  Ｄｉｓｔｒｉｂｕｔｉｏｎ  Ｕｎｉｔ）１５０によって構成される。
【００７０】
図１に示すデータ処理部１００の実行する処理の概略について説明する。
典型的な３ＤＣＧ処理における動作例について説明する。データ処理部１００外のホストＣＰＵにより、ホストＩＦ経由で、タスクコントローラ（ＴＣ）１０１にタスクリストの書き込み（ライト）が実行されレジスタ書き込み処理により起動がかけられる。タスクコントローラ（ＴＣ）１０１はタスクリストに従って、ダイレクトメモリアクセスクコントローラ（ＤＭＡＣ）１４２へＤＭＡ転送コマンドを起動する。
【００７１】
本実施例において利用されるタスクリストの一例を図２に示す。タスクリストは図２（ａ）に示すように処理の単位である複数のタスクから構成され、タスクは図２（ｂ）に示すようにＤＭＡ転送単位である複数のパスで構成される。１つのパスには、外部メモリのベースアドレスとサイズおよび同期モードとアクティブマップが規定される。タスクおよびパスは実行の順序に従って配置され、図では上から下に、
タスク０−＞タスク１−＞タスク２...．タスクｎ、
タスク内では初期化パス−＞パス１−＞パス２の順に実行を行う。
【００７２】
外部メモリのベースアドレスとサイズはＤＭＡ転送のための情報であり、その情報を元に、ダイレクトメモリアクセスクコントローラ（ＤＭＡＣ）１４２の制御の下、ＤＭＡ転送を行う。同期モードは、パス間のＤＭＡ転送の開始のタイミングを規定している。アクティブマップは、実行するパスで必要な活性化すべきブロックを規定している。
【００７３】
図２（ｃ）に示すように、アクティブマップは、図１に示す各処理ブロック、すなわち、
４つのシェーダエレメント（ＳＥ０〜ＳＥ３）１１０〜１１３、
ラスタライザ（Ｒａｓｔｅｒｉｚｅｒ）１３１、
ピクセル処理ユニット（ＰＰＵ）１４１、
テクスチャユニット（ＴＵ）１２１、
これらの各処理ブロックを使用した処理とするか否かのフラグを設定している。フラグは例えば［１］が使用、すなわち活性ブロックであり、［０］がすなわち不使用、すなわち不活性ブロックに対応する。
【００７４】
すなわちＣＯＤＥＣ処理に際しては、
シェーダエレメント（ＳＥ０〜３）１１０〜１１３、
テクスチャユニット（ＴＵ）１２１、
を利用した処理構成とし、
縮小画像生成処理においては、
ピクセル処理ユニット（ＰＰＵ）１４１、
テクスチャユニット（ＴＵ）１２１、
を利用した処理構成とし、
付加の小さい３ＤＣＧ処理においては、
１つのシェーダエレメント（ＳＥ３）１１３、
ラスタライザ（Ｒａｓｔｅｒｉｚｅｒ）１３１、
ピクセル処理ユニット（ＰＰＵ）１４１、
テクスチャユニット（ＴＵ）１２１、
これらの利用処理とすることを規定している。
【００７５】
なお、シェーダエレメント（ＳＥ）は、実行する処理に応じて、その処理態様が変更される。例えば、３ＤＣＧ処理においては、頂点シェーダ（Ｖｅｒｔｅｘ  Ｓｈａｄｅｒ）処理、およびフラグメントシェーダ（Ｆｒａｇｍｅｎｔ  Ｓｈａｄｅｒ）処理を実行し、ＣＯＤＥＣ処理においてはマクロブロック処理を実行するように制御部において設定される。
【００７６】
制御部としてのタスクコントローラ（ＴＣ）１０１は、図２に示すタスクリストの初期化パスにおいて実行するデータ処理に応じた設定を実行する。すなわち、実行するタスク内のパスに共通に必要となる初期設定が行われる。図１に示すデータ処理部１００を構成する各機能ブロックは、設定レジスタ（以下Ｃｏｎｆｉｇ）を複数持ち、Ｃｏｎｆｉｇの設定により動作のモードが規定される。例えば、ラスタライザ（Ｒａｓｔｅｒｉｚｅｒ）１３１のＣｏｎｆｉｇに［ＲＡ＿ＰＲＩＭ］というレジスタが存在するが、これは３ＤＣＧで描画を行うプリミティブの種類を規定するレジスタである。このようなＣｏｎｆｉｇレジスタの設定は図３で示すように、ダイレクトメモリアクセスクコントローラ（ＤＭＡＣ）１４２が外部メモリから設定データ（Ｃｏｎｆｉｇ）をデータ処理部１００の内部に転送したのち、ＡＤＵ１５０を利用してレジスタアドレスに従って各処理プロックに分配される。図３において点線で示す矢印が、Ｃｏｎｆｉｇレジスタの設定データの経路である。
【００７７】
図４を参照して、データ処理部１００を利用したテクスチャ無しの描画処理を実行する場合のシーケンスについて説明する。
テクスチャ無しの描画処理を実行する場合も、図２に示すタスクリストに基づいて処理が実行される。初期化パスにおいて、実行するタスク内のパスに共通に必要となる初期設定が行われた後、パス１では実際に描画処理を行うが、同様にタスクコントローラ（ＴＣ）１０１からダイレクトメモリアクセスクコントローラ（ＤＭＡＣ）１４２へＤＭＡ転送が起動され処理対象とする頂点列データが内部に転送される。
【００７８】
図４に示すように、テクスチャ無しの描画処理を実行する場合、
シェーダエレメント（ＳＥ０〜ＳＥ１）１１０，１１１が頂点シェーダ（ＶＳ）として利用され、
シェーダエレメント（ＳＥ２〜ＳＥ３）１１２，１１３がフラグメントシェーダ（ＶＳ）として利用される。
【００７９】
頂点列データは、ＡＤＵ１５０によって、頂点シェーダ（ＶＳ）に設定したシェーダエレメント（ＳＥ）にＳＥ０−＞ＳＥ１−＞ＳＥ０−＞ＳＥ１という順番で分配を行う。図４に示す各処理ブロックを接続する矢印は、本処理においてＡＤＵ１５０によって設定されるデータフローに対応している。なお、図４では、頂点シェーダ（ＶＳ）に設定しているシェーダエレメント（ＳＥ）を２つとした例を示しているが、この設定は一例であり、０個から４個まで任意に設定可能である。
【００８０】
頂点シェーダ（ＶＳ）であるシェーダエレメント（ＳＥ０〜ＳＥ１）１１０，１１１は、供給された頂点列を処理対象として、Ｃｏｎｆｉｇレジスタの設定および内部で動作するプログラムに従ってデータ処理を行う。処理結果は、ラスタライザ（Ｒａｓｔｅｒｉｚｅｒ）１３１に出力する。この時、ＡＤＵ１５０によってシェーダエレメント（ＳＥ０〜ＳＥ１）１１０，１１１に入力した頂点情報の順番を守り、ラスタライザ（Ｒａｓｔｅｒｉｚｅｒ）１３１へ出力する。ラスタライザ（Ｒａｓｔｅｒｉｚｅｒ）１３１では、ラスタライズ処理を行い、結果をフラグメントシェーダ（ＦＳ）として設定されているシェーダエレメント（ＳＥ２〜ＳＥ３）１１２，１１３に出力する。
【００８１】
フラグメントシェーダ（ＦＳ）として設定されているシェーダエレメント（ＳＥ２〜ＳＥ３）１１２，１１３は、２つのＳＥであり、この場合も、ラスタライザ（Ｒａｓｔｅｒｉｚｅｒ）１３１からの出力であるラスタライズ結果を順番にＳＥ２−＞ＳＥ３−＞ＳＥ２−＞ＳＥ３−＞というようにフラグメントシェーダ（ＦＳ）として設定されているシェーダエレメント（ＳＥ２〜ＳＥ３）１１２，１１３へ分配を行う。
【００８２】
フラグメントシェーダ（ＦＳ）として設定されているシェーダエレメント（ＳＥ２〜ＳＥ３）１１２，１１３では、フラグメント要素の処理を行い、処理結果をピクセル処理ユニット（ＰＰＵ）１４１に出力する。この出力に際しても、ＡＤＵ１５０によって、出力制御が実行され、処理順序を守って出力される。
【００８３】
ピクセル処理ユニット（ＰＰＵ）１４１では、フラグメント対応処理（Ｐｅｒ  Ｆｒａｇｍｅｎｔ  Ｏｐｅｒａｔｉｏｎ）を行い、ローカルメモリ１４３経由でダイレクトメモリアクセスクコントローラ（ＤＭＡＣ）１４２が処理結果を外部メモリへ出力する。
【００８４】
次に、図５、図６を参照して、データ処理部１００を利用した３ＤＣＧのテクスチャマッピング有りの典型的な描画処理を行う場合の処理シーケンスについて説明する。
【００８５】
テクスチャ有りの描画処理を実行する場合も、図２に示すタスクリストに基づいて処理が実行される。初期化パスにおいて、実行するタスク内のパスに共通に必要となる初期設定が行われた後、パス１、パス２では実際に描画処理を行う。この場合もタスクコントローラ（ＴＣ）１０１からダイレクトメモリアクセスクコントローラ（ＤＭＡＣ）１４２へＤＭＡ転送が起動され処理対象とする頂点列データが内部に転送される。パス１の処理を図５、パス２の処理を図６を参照して説明する。
【００８６】
まず、パス１の処理について図５を参照して説明する。テクスチャ有りの描画処理を実行する場合、ＡＤＵ１５０は、図５に示す各処理ブロックを接続する矢印に従ったデータ経路を設定する。本処理においても、
シェーダエレメント（ＳＥ０〜ＳＥ１）１１０，１１１が頂点シェーダ（ＶＳ）として利用され、
シェーダエレメント（ＳＥ２〜ＳＥ３）１１２，１１３がフラグメントシェーダ（ＶＳ）として利用される。
【００８７】
頂点列データは、ＡＤＵ１５０によって、頂点シェーダ（ＶＳ）に設定したシェーダエレメント（ＳＥ）にＳＥ０−＞ＳＥ１−＞ＳＥ０−＞ＳＥ１という順番で分配を行う。頂点シェーダ（ＶＳ）であるシェーダエレメント（ＳＥ０〜ＳＥ１）１１０，１１１は、供給された頂点列を処理対象として、Ｃｏｎｆｉｇレジスタの設定および内部で動作するプログラムに従ってデータ処理を行う。処理結果は、ラスタライザ（Ｒａｓｔｅｒｉｚｅｒ）１３１に出力する。この時、ＡＤＵ１５０によってシェーダエレメント（ＳＥ０〜ＳＥ１）１１０，１１１に入力した頂点情報の順番を守り、ラスタライザ（Ｒａｓｔｅｒｉｚｅｒ）１３１へ出力する。ラスタライザ（Ｒａｓｔｅｒｉｚｅｒ）１３１では、ラスタライズ処理を行い、結果をフラグメントシェーダ（ＦＳ）として設定されているシェーダエレメント（ＳＥ２〜ＳＥ３）１１２，１１３に出力する。
【００８８】
ここまでの処理は図４を参照して説明したテクスチャ無しの描画処理を実行する場合と同じ処理である。テクスチャ有りの描画処理を実行する場合は、フラグメントシェーダ（ＦＳ）として設定されているシェーダエレメント（ＳＥ２〜ＳＥ３）１１２，１１３は、フラグメント（Ｆｒａｇｍｅｎｔ）要素からテクスチャアドレスを計算し、ローカルメモリ１４３経由でテクスチャをテクスチャユニット（ＴＵ）１２１に対してリクエストする。
【００８９】
テクスチャユニット（ＴＵ）１２１では、テクスチャアドレスを外部メモリの実アドレスに変換してダイレクトメモリアクセスクコントローラ（ＤＭＡＣ）１４２へＤＭＡ転送要求を出しテクスチャの画素値を読み出し、結果をフィルタ演算処理を行い、ローカルメモリ１４３上のバッファに貯める。次にパス１の転送が終了後、引き続いてパス２の転送が開始される。
【００９０】
図６を参照して、パス２の処理について説明する。パス２の処理においても、ラスタライザ（Ｒａｓｔｅｒｉｚｅｒ）１３１の出力までは同じシーケンスで動作し、その後、フラグメントシェーダ（ＦＳ）として設定されているシェーダエレメント（ＳＥ２〜ＳＥ３）１１２，１１３は、ラスタライザ（Ｒａｓｔｅｒｉｚｅｒ）１３１から出力されたカラー値と、テクスチャユニット（ＴＵ）１２１から出力されたテクスチャのカラー値をブレンドする。その結果をピクセル処理ユニット（ＰＰＵ）１４１へ出力する。
【００９１】
ピクセル処理ユニット（ＰＰＵ）１４１では、フラグメント対応処理（Ｐｅｒ  Ｆｒａｇｍｅｎｔ  Ｏｐｅｒａｔｉｏｎ）を行い、ローカルメモリ１４３経由でダイレクトメモリアクセスクコントローラ（ＤＭＡＣ）１４２が処理結果を外部メモリのカラー、Ｚの値を格納するメモリへ出力する。
【００９２】
次に、図７を参照してデータ処理部１００を適用して画像ＣＯＤＥＣのデコード処理を実行する場合の処理シーケンスについて説明する。画像ＣＯＤＥＣ処理の場合も、図４〜図６を参照して説明した３ＤＣＧ処理と同様、タスクコントローラ（ＴＣ）１０１が先に図２を参照して説明したタスクリスト解釈して動作を開始する。まず、内部にＣｏｎｆｉｇレジスタを転送するＤＭＡ転送を起動し、次にタスクコントローラ（ＴＣ）１０１はエントロピー符号化されたビットストリーム（ｂｉｔｓｔｒｅａｍ）データをダイレクトメモリアクセスクコントローラ（ＤＭＡＣ）１４２経由で取得し、エントロピー復号化処理を行い復号結果（ここではｒａｗ−ＭＢ（マクロブロック）と表記する）をローカルメモリ１４３に書き出す。
【００９３】
復号結果（ｒａｗ−ＭＢ）は、タスクコントローラ（ＴＣ）１０１の起動により各シェーダエレメント（ＳＥ０〜ＳＥ３）１１０〜１１３に入力される。この場合、複数あるシェーダエレメント（ＳＥ０〜ＳＥ３）１１０〜１１３は、３ＤＣＧの場合と異なり全て同じデコード処理を行うコーデックシェーダ（ＣＯＤＥＣ  Ｓｈａｄｅｒ）として動作する。
【００９４】
コーデックシェーダ（ＣＯＤＥＣ  Ｓｈａｄｅｒ）として設定されたシェーダエレメント（ＳＥ０〜ＳＥ３）１１０〜１１３は、マクロブロック（ＭＢ）の動きベクトル（ＭＶ）を算出し、テクスチャユニット（ＴＵ）１２１へ動きベクトル（ＭＶ）の値を渡して動き補償（ＭＣ）のリクエストを行う。テクスチャユニット（ＴＵ）１２１  では動きベクトル（ＭＶ）の値から外部メモリの実アドレスに変換してダイレクトメモリアクセスクコントローラ（ＤＭＡＣ）１４２へＤＭＡ転送要求を出し、既にデコード済みの参照画像の指定アドレスの画素値を取得し、更に、動きベクトル（ＭＶ）の値が１／２画素もしくは１／４画素の場合にはフィルタ演算処理を行い、結果の予測値動き補償（ＭＣ）をシェーダエレメント（ＳＥ０〜ＳＥ３）１１０〜１１３へ出力する。シェーダエレメント（ＳＥ０〜ＳＥ３）１１０〜１１３はテクスチャユニット（ＴＵ）１２１にリクエストを行って値が帰ってくるまでの間に、逆量子化、逆直交変換の算出を行う。この結果と予測値を加算することでデコード処理が終了し、伸長済みのマクロブロック（ＭＢ）をダイレクトメモリアクセスクコントローラ（ＤＭＡＣ）１４２  経由で外部メモリへの書き出しを行う。
【００９５】
上述したように、データ処理部１００は、３ＤＣＧ処理、ＣＯＤＥＣ処理などの異なる処理を実行し、各処理において、
シェーダエレメント（ＳＥ０〜ＳＥ３）１１０〜１１３、
ラスタライザ（Ｒａｓｔｅｒｉｚｅｒ）１３１、
ピクセル処理ユニット（ＰＰＵ）１４１、
テクスチャユニット（ＴＵ）１２１、
これらの各処理ブロックが各処理に対応した異なる処理を行うように設定される。処理を実行する前の設定は設定情報（Ｃｏｎｆｉｇ）によって規定されることになり、具体的な処理は、タスクリストにおいて規定される。
【００９６】
例えば、テクスチャユニット（ＴＵ）１２１では、各処理に共通のテクスチャ処理を行う。テクスチャユニット（ＴＵ）１２１の処理について図８を参照して説明する。図８は、テクスチャユニット（ＴＵ）１２１の構成図を示している。入力部２０１はシェーダエレメント（ＳＥ）からのリクエストを入力し、アドレス生成部２０２では、実メモリ上のアドレスを生成し、タグチェック部２０３でそのアドレスのデータが後段のキャッシュ部２０４に存在しなければ、キャッシュリクエスト部２１１でダイレクトメモリアクセスクコントローラ（ＤＭＡＣ）１４２へＤＭＡ転送をリクエストし、該当アドレス近傍のメモリデータがキャッシュ入力部２１２を介してキャッシュ部２０４に入力される。キャッシュ部２０４はＲＡＭを保持しておりアドレスからのデータを読み出す。この結果リクエストされたアドレスのデータが読み出され、フィルタ処理部２０５において、フィルタ演算を行い、出力部２０６を経由して結果を出力する。
【００９７】
なお、図８に示す処理部中、タグチェック部２０３、キャッシュリクエスト部２１１、キャッシュ入力部２１２、キャッシュ部２０４はアルゴリズムに依存しないため、全く同一の論理回路で構成される。またフィルタ処理部２０５に関しては、３ＤＣＧ処理の場合もＣＯＤＥＣ処理の場合も８ｂｉｔの輝度値やカラー値に対する乗加減算によるフィルタ演算を実行することになるため、ほとんどの論理回路を共有することが可能となる。
【００９８】
次に図９を参照してシェーダエレメント（ＳＥ）の構成例について説明する。シェーダエレメント（ＳＥ）は、前述したように、
（ａ）３ＤＣＧ処理における頂点シェーダ（Ｖｅｒｔｅｘ  Ｓｈａｄｅｒ）処理の頂点要素処理、
（ｂ）３ＤＣＧ処理におけるフラグメントシェーダ（Ｆｒａｇｍｅｎｔ  Ｓｈａｄｅｒ）処理のフラグメント要素処理、
（ｃ）画像ＣＯＤＥＣ  処理におけるマクロブロックの量子化／逆量子化、直交変換／逆直交変換、イントラ（Ｉｎｔｒａ）予測補償、ブロック統合、ループ内フィルタ処理、
上記（ａ）〜（ｃ）の処理を各処理に応じて実行する。これらの処理は本実装においてはＳＩＭＤ型の並列演算をプログラムに従って実行する構成である。すなわち、メイレイフェッチによって取得される命令に応じた様々な処理を実行するデータ処理ブロックとして構成され、制御部の設定によって異なるデータ処理を行うことが可能な構成を有する。
【００９９】
図９は、１つのシェーダエレメント（ＳＥ０）１１０の構成を示している。他のシェーダエレメント（ＳＥ１〜３）１１１〜１１３も同様の構成を持つ。シェーダエレメント（ＳＥ０）１１０はプログラムで動作する４並列ＳＩＭＤ演算を行うプロセッサであり、オペランドを入力する入力レジスタ３０３と、オペランドを適用した演算を実行する演算実行部３０２と、データ処理における設定情報（Ｃｏｎｆｉｇ）とデータ処理プログラムに基づいてデータ処理制御を実行する制御部としてのシーケンサ（ＳＥＱ）３０１、出力レジスタ３０４等によって構成される。
【０１００】
制御部（ＳＥＱ）３０１は、シェーダエレメント（ＳＥ０）１１０のデータ処理の制御を行う制御部として機能し、外部から設定されるレジスタ（以下Ｃｏｎｆｉｇ）および命令により、本装置の動作を規定する制御部としてのブロックであり、以下の構成要素を含む。
（ａ）ＩＦＵ
命令キャッシュ（ＩＣＡＣＨＥ）に命令を書き込み登録（フェッチ）する処理を実行するブロックである。
（ｂ）ＩＣＡＣＨＥ
ＩＦＵによってフェッチされた命令を保持する命令キャッシュである。
【０１０１】
命令フェッチユニット（ＩＦＵ）から命令をリクエストして、命令を命令キャッシュ（ＩＣＡＣＨＥ）に取得し、取得した命令に従ってシーケンサとしての制御部（ＳＥＱ）３０１の制御によって入力レジスタ３０３のデータを処理して出力レジスタ３０４に出力する。図９に示すＡＬＵ０−ＡＬＵ３は並列に動作する算術論理演算回路としての演算実行部３０２であり、ＧＰＲ／ＣＲ／ＳＰＲ／ＦＲは固定値や処理途中結果を格納するバッファであり、ロードストアレジスタ３０５は一時的にシェーダエレメント（ＳＥ）の外部メモリにデータを保存・取得するためのレジスタであり、テクスチャユニット（ＴＵ）リクエスト部３０６は、テクスチャユニット（ＴＵ）リクエスト部３０６へのリクエスト出力を行うためのレジスタである。
【０１０２】
３ＤＣＧ  においては、例えば頂点処理としての頂点シェーダ（Ｖｅｒｔｅｘ  Ｓｈａｄｅｒ）処理では、頂点の座標値＝（ｘ，ｙ，ｚ，ｗ）を適用したデータ処理として、
（ｘ'，ｙ'，ｚ'，ｗ'）＝ＭｏｄｅｌＶｉｅｗ＆Ｐｒｏｊｅｃｔｉｏｎ行列＊（ｘ，ｙ，ｚ，ｗ）
上記の式に従った処理が実行される。
また、フラグメントシェーダ（Ｆｒａｇｍｅｎｔ  Ｓｈａｄｅｒ）処理においては、ピクセルのカラー値の赤、緑、青、アルファ（ｒ，ｇ，ｂ，ａ）を適用したデータ処理として、
（ｒ，ｇ，ｂ，ａ）＝（ｒ１，ｇ１，ｂ１，ａ１）＋（ｒ２，ｇ２，ｂ２，ａ２
上記の式に従った処理が実行される。
【０１０３】
一方、画像ＣＯＤＥＣ処理においては、例えばＭＰＥＧ−４ＡＶＣ／Ｈ．２６４の一次元整数ＤＣＴ処理が実行されるが、このＤＣＴ処理においては、変換対象とする入力値（ａ０，ａ１，ａ２，ａ３）に対して、
（Ａ０，Ａ１，Ａ２，Ａ３）＝変換行列＊（ａ０，ａ１，ａ２，ａ３）という式に従ったＤＣＴ変換が実行される。
このように、各データ処理では、類似した演算が実行される。
【０１０４】
このように、３ＤＣＧの頂点シェーダ（ＶＳ）処理や、フラグメントシェーダ（ＦＳ）処理、およびＣＯＤＥＣ処理におけるマクロブロック処理はベクタ型の演算が多く、例えば図９を参照して説明した構成を持つシェーダエレメント（ＳＥ）のようなＳＩＭＤ演算プロセッサによって処理を行うことで効率的な処理が可能となる。
【０１０５】
また、３ＤＣＧのシェーダ（Ｓｈａｄｅｒ）処理は、デザイナー（クリエイター）により様々なプログラミングが行える環境であることが要請され、プログラミング処理を解放する必要があり、この要請からもプロセッサ処理とすることが必要となる。また、ＣＯＤＥＣ処理におけるマクロブロック処理は、ＪＰＥＧ、ＭＰＥＧ−４、ＭＰＥＧ−４ＡＶＣ／Ｈ．２６４などのＣＯＤＥＣ規格の各々で処理態様が異なるために、固定論理回路で実現するよりも、各規格に応じて処理を容易に変更できるプロセッサ処理とすることが望ましい。これらの理由からも、これらの処理については図９に示すようなシェーダエレメント（ＳＥ）、すなわちＳＩＭＤ型のプロセッサで処理を行うことが好ましい。
【０１０６】
本発明の情報処理装置では、このようにシェーダエレメント（ＳＥ）とテクスチャユニット（ＴＵ）１２１の２つの機能ブロックに３ＤＣＧとＣＯＤＥＣにおいて実行する処理を適切に割り振る。すなわち、
３ＤＣＧ処理を実行する場合には、図４〜図６を参照して説明したように、
シェーダエレメント（ＳＥ）を頂点シェーダ（Ｖｅｒｔｅｘ  Ｓｈａｄｅｒ）とフラグメントシェータ（Ｆｒａｇｍｅｎｔ  Ｓｈａｄｅｒ）として利用し、
ＣＯＤＥＣ処理を実行する場合には、図７を参照して説明したように、
シェーダエレメント（ＳＥ）をコーデックシェーダ（Ｃｏｄｅｃ  Ｓｈａｄｅｒ）として利用する。
なお、テクスチャユニット（ＴＵ）については、いずれの処理においてもテクスチャ処理を実行するユニットとして共通に利用される。
【０１０７】
シェーダエレメント（ＳＥ）を、
３ＤＣＧにおいて、頂点シェーダ（Ｖｅｒｔｅｘ  Ｓｈａｄｅｒ）とフラグメントシェータ（Ｆｒａｇｍｅｎｔ  Ｓｈａｄｅｒ）として利用する場合と、
ＣＯＤＥＣ処理において、コーデックシェーダ（Ｃｏｄｅｃ  Ｓｈａｄｅｒ）として利用する場合とでは、それぞれの処理に応じた設定情報、すなわち（Ｃｏｎｆｉｇ）が設定され、さらに、それぞれの処理に応じたタスクリスト（図２参照）を適用して処理が実行されることになる。
【０１０８】
このように本実施例の情報処理装置では、同一の処理ブロックを適用して様々な処理を実行する構成としたので、ハードウェア回路の面積を小さくできる。また、ダイレクトメモリアクセスクコントローラ（ＤＭＡＣ）１４２や、ローカルメモリ１４３、さらにＡＤＵ１５０も論理演算処理を行うわけではなく、外部メモリとのやり取り、内部バッファ、フローコントローラであるため、３ＤＣＧ処理とＣＯＤＥＣ処理の両処理において共通に使用される。すなわち、図１に示すデータ処理部１００の構成中、ラスタライザ（Ｒａｓｔｅｒｉｚｅｒ）１３１およびピクセル処理ユニット（ＰＰＵ）１４１のみが３ＤＣＧに専用の回路である。
【０１０９】
次に本発明の情報処理装置のその他の実施例について説明する。前述の３ＤＣＧ描画のバリエーションとして、複数のシェーダエレメント（ＳＥ）についての頂点シェーダ（ＶＳ）処理とフラグメントシェーダ（ＦＳ）処理への割り振り比率を変更した例について説明する。
【０１１０】
先に、図４を参照して説明した構成では、データ処理部１００に設定された４つのシェーダエレメント（ＳＥ）１１０〜１１３について、頂点シェーダ（ＶＳ）２個、フラグメントシェーダ（ＦＳ）２個の設定として処理を行う構成とした。
【０１１１】
図１０に示す例は、データ処理部１００に設定された４つのシェーダエレメント（ＳＥ）１１０〜１１３について、頂点シェーダ（ＶＳ）１個、フラグメントシェーダ（ＦＳ）３個の設定として処理を行う構成例である。すなわち、図１０に示すように、
シェーダエレメント（ＳＥ０）１１０を頂点シェーダ（ＶＳ）として利用し、
シェーダエレメント（ＳＥ１〜３）１１１〜１１３をフラグメントシェーダ（ＦＳ）として設定して処理を行う。
【０１１２】
３ＤＣＧ処理においては、アプリケーションや、処理対象となるシーンまたはオブジェクトに応じて頂点シェーダ（ＶＳ）とフラグメントシェーダ（ＦＳ）の負荷のバランスは異なる。このため頂点シェーダ（ＶＳ）とフラグメントシェーダ（ＦＳ）に設定するシェーダエレメント（ＳＥ）の数を可変にすることにより負荷のバランスを取ることが可能になる。例えば、ポリゴンが大きく、頂点シェーダ（ＶＳ）処理負荷が小さくフラグメントシェーダ（ＦＳ）負荷が多いオブジェクトを描画するような際には頂点シェーダ（ＶＳ）の数を減らし、ポリゴンが小さく、頂点シェーダ（ＶＳ）負荷が大きいようなオブジェクトを描画するような場合には、頂点シェーダ（ＶＳ）の数を増やすことにより、より高速に処理を行うことが可能である。
【０１１３】
また、更には頂点シェーダ（ＶＳ）：フラグメントシェーダ（ＦＳ）の負荷バランスが例えば１：１００というように大幅に異なっているような場合には時間的な配分でこのバランスを取ることが可能である。
【０１１４】
図１１は全てのシェーダエレメント（ＳＥ０〜３）１１０〜１１３を頂点シェーダ（ＶＳ）に設定した例であり、全てのシェーダエレメント（ＳＥ０〜３）１１０〜１１３において頂点シェーダ（ＶＳ）処理を行い、処理結果をローカルメモリ１４３に転送し、図１２は、その後、全てのシェーダエレメント（ＳＥ０〜３）１１０〜１１３をフラグメントシェーダ（ＦＳ）に設定して、頂点シェーダの処理結果をローカルメモリ１４３から読み出してラスタライザ（Ｒａｓｔｅｒｉｚｅｒ）１３１に入力して、ラスタライザ（Ｒａｓｔｅｒｉｚｅｒ）１３１からの出力であるラスタライズ結果をフラグメントシェーダ（ＦＳ）として設定されているシェーダエレメント（ＳＥ０〜ＳＥ３）１１０〜１１３へ分配し、フラグメントシェーダ（ＦＳ）として設定されているシェーダエレメント（ＳＥ０〜ＳＥ３）１１０〜１１３では、フラグメント要素の処理を行い、処理結果をピクセル処理ユニット（ＰＰＵ）１４１に出力してピクセル処理ユニット（ＰＰＵ）１４１で、フラグメント対応処理（Ｐｅｒ  Ｆｒａｇｍｅｎｔ  Ｏｐｅｒａｔｉｏｎ）を行い、ローカルメモリ１４３経由でダイレクトメモリアクセスクコントローラ（ＤＭＡＣ）１４２が処理結果を外部メモリへ出力するという構成である。
【０１１５】
図１１、図１２に示す構成は、先に図４を参照して説明したテクスチャ無しの描画処理を実行する例であり、
シェーダエレメント（ＳＥ０〜ＳＥ３）１１０〜１１３を頂点シェーダ（ＶＳ）として利用する時間と、フラグメントシェーダ（ＶＳ）として利用する時間を設定して時間により処理を変更した例である。
【０１１６】
図１１に示すように、全てのシェーダエレメント（ＳＥ０〜ＳＥ３）１１０〜１１３を頂点シェーダ（ＶＳ）として利用する時間帯においては、頂点列データは、ＡＤＵ１５０によって、頂点シェーダ（ＶＳ）に設定したシェーダエレメント（ＳＥ）にＳＥ０−＞ＳＥ１−＞ＳＥ２−＞ＳＥ３という順番で分配を行う。図１１に示す各処理ブロックを接続する矢印は、本処理においてＡＤＵ１５０によって設定されるデータフローに対応している。
【０１１７】
頂点シェーダ（ＶＳ）であるシェーダエレメント（ＳＥ０〜ＳＥ３）１１０〜１１３は、供給された頂点列を処理対象として、Ｃｏｎｆｉｇレジスタの設定および内部で動作するプログラムに従ってデータ処理を行う。この処理結果は、先に図４を参照して説明した例では、ラスタライザ（Ｒａｓｔｅｒｉｚｅｒ）１３１に出力する設定であったが、本例では、一旦、ローカルメモリ１４３に格納する。この時、ＡＤＵ１５０によってシェーダエレメント（ＳＥ０〜ＳＥ３）１１０〜１１３に入力した頂点情報の順番を守り、ローカルメモリ１４３に格納する。
【０１１８】
その後、図１２に示すように、全てのシェーダエレメント（ＳＥ０〜ＳＥ３）１１０〜１１３をフラグメントシェーダ（ＦＳ）として利用する時間帯に以降すると、ローカルメモリ１４３に格納された頂点シェーダ（ＶＳ）処理結果が、ラスタライザ（Ｒａｓｔｅｒｉｚｅｒ）１３１へ出力され、ラスタライザ（Ｒａｓｔｅｒｉｚｅｒ）１３１で、ラスタライズ処理を行い、その結果がフラグメントシェーダ（ＦＳ）として設定されているシェーダエレメント（ＳＥ０〜ＳＥ３）１１０〜１１３に出力される。
【０１１９】
フラグメントシェーダ（ＦＳ）として設定されているシェーダエレメント（ＳＥ０〜ＳＥ３）１１０〜１１３は、ラスタライザ（Ｒａｓｔｅｒｉｚｅｒ）１３１からの出力であるラスタライズ結果を順番にＳＥ０−＞ＳＥ１−＞ＳＥ２−＞ＳＥ３−＞というようにフラグメントシェーダ（ＦＳ）として設定されているシェーダエレメント（ＳＥ２〜ＳＥ３）１１２，１１３へ分配を行う。フラグメントシェーダ（ＦＳ）として設定されているシェーダエレメント（ＳＥ０〜ＳＥ３）１１０〜１１３では、フラグメント要素の処理を行い、処理結果をピクセル処理ユニット（ＰＰＵ）１４１に出力する。この出力に際しても、ＡＤＵ１５０によって、出力制御が実行され、処理順序を守って出力される。ピクセル処理ユニット（ＰＰＵ）１４１では、フラグメント対応処理（Ｐｅｒ  Ｆｒａｇｍｅｎｔ  Ｏｐｅｒａｔｉｏｎ）を行い、ローカルメモリ１４３経由でダイレクトメモリアクセスクコントローラ（ＤＭＡＣ）１４２が処理結果を外部メモリへ出力する。
【０１２０】
このように、全シェーダエレメント（ＳＥ０〜ＳＥ３）１１０〜１１３を頂点シェーダ（ＶＳ）またはフラグメントシェーダ（ＦＳ）に設定する時間配分を例えば、１：１００という比率にすることにより、負荷バランスが１：１００の場合にも適応してデータ処理が行える。この時間配分は、適宜、Ｃｏｎｆｉｇ設定情報やタスクリストの設定情報に基づいて変更することが可能である。
【０１２１】
制御部としてのタスクコントローラ（ＴＣ）１０１は、上述したように、複数のシェーダエレメント（Ｓｈａｄｅｒ  Ｅｌｅｍｅｎｔ）の設定を、処理エレメント数を区分して頂点シェーダ（Ｖｅｒｔｅｘ  Ｓｈａｄｅｒ）処理と、フラグメントシェーダ（Ｆｒａｇｍｅｎｔ  Ｓｈａｄｅｒ）処理を並列に実行させる設定としたり、時間帯で区分して、頂点シェーダ（Ｖｅｒｔｅｘ  Ｓｈａｄｅｒ）処理を実行させる時間と、フラグメントシェーダ（Ｆｒａｇｍｅｎｔ  Ｓｈａｄｅｒ）処理を実行させる時間を設定する制御を行う。
【０１２２】
なお、図１２に示す構成では、全シェーダエレメント（ＳＥ０〜ＳＥ３）１１０〜１１３をフラグメントシェーダ（ＦＳ）に設定する構成であるが、この構成は、例えば、図１２に示すデータ処理部１００の外部にある上位ＣＰＵ等にて頂点シェーダ（ＶＳ）処理である座標変換を受け持ち、クリップ座標系の頂点列をデータ処理部１００において処理するといった構成においても適用できる。
【０１２３】
次に、データ処理部１００を適用した縮小画像生成時のデータ処理シーケンスについて、図１３を参照して説明する。例えばコンピュータ・グラフィックス（ＣＧ）のプログラミングインタフェースを規定するＯｐｅｎＧＬ２．０等においては、大きなテクスチャから小さなテクスチャを生成する縮小画像生成機能であるＭＩＰＭＡＰ画像生成機能を規定している。また、画像ＣＯＤＥＣにおいて実行される動き検出処理において、縮小画像にて粗い検索を行い、元画像にて細い検索を行う手法が良く用いられるが、この場合にも縮小画像生成機能は使用される。
【０１２４】
図１３は、データ処理部１００を適用した縮小画像生成時のデータ処理シーケンスについて説明する図である。この縮小画像生成処理においても図２に示すタスクリストが設定され、タスクリストに基づいて縮小画像生成に対応する各機能部の設定、処理が実行される。タスクコントローラ（ＴＣ）１０１はタスクリストの記録情報に基づいて設定情報としてのＣｏｎｆｉｇを設定し、元画像が外部メモリからダイレクトメモリアクセスクコントローラ（ＤＭＡＣ）１４２、ローカルメモリ１４３経由でテクスチャユニット（ＴＵ）１２１にＤＭＡ転送される。
【０１２５】
テクスチャユニット（ＴＵ）１２１では、バイリニアフィルタ処理を行い、その処理結果をピクセル処理ユニット（ＰＰＵ）１４１に出力する。ピクセル処理ユニット（ＰＰＵ）１４１では、画像のカラーフォーマット変換を行いローカルメモリ１４３に書き込みを行う。ピクセル処理ユニット（ＰＰＵ）１４１でのカラーフォーマット変換は、各画素の画素値のカラー値であるＲＧＢＡをそれぞれ８ｂｉｔずつで表現しているデータを５ｂｉｔや６ｉｔで表現するといったフォーマット変換である。例えば、テクスチャユニット（ＴＵ）１２１内部は回路削減の目的で、全て８ｂｉｔで処理を行い、データ処理部１００に対する入力画像の型変更はテクスチャユニット（ＴＵ）１２１内部で行うことができる。一方、ピクセル処理ユニット（ＰＰＵ）１４１では、本来、出力画像のフォーマット変更を行う構成を有しており、この機能を利用して出力画像についてのフォーマット変換処理を行う。
【０１２６】
縮小画像生成処理として実行されるＭＩＰＭＡＰ画像生成では、例えば５１２ｐｉｘｅｌ×５１２Ｐｉｘｅｌの元画像から２５６×２５６、１２８×１２８、...１×１ｐｉｘｅｌというように、画像サイズを１／２−＞１／４−＞１／８というように１／２縮小を繰り返し実行して目的の縮小画像を随時生成していく。
【０１２７】
ローカルメモリ１４３には１／２に縮小した画像が格納され、これが随時ダイレクトメモリアクセスクコントローラ（ＤＭＡＣ）１４２経由で外部メモリに出力される。さらに、ローカルメモリ１４３に格納された１／２縮小画像は、次の縮小処理に使用する目的でローカルメモリ１４３に一時的に保存し、この保存画像を利用して随時縮小画像を生成する。これにより、データ処理部外に出力した画像を再入力する必要がなくなり、外部バスバンド幅が削減されて低消費電力が実現される。これらの処理のためのデータフローの設定はＡＤＵ１５０によって行われる。
【０１２８】
このように、テクスチャユニット（ＴＵ）１２１は縮小画像の生成処理を行う構成を有し、生成した縮小画像をローカルメモリ１４３を介して外部出力するとともに、ローカルメモリ１４３に格納された縮小画像を再取得して縮小を繰り返し実行して目的のサイズの縮小画像を生成する。
【０１２９】
次に、図１４に、ＡＤＵ１５０によるデータフロー制御処理について説明する。ＡＤＵ１５０は、データ処理部１００の構成要素間のデータ転送制御、すなわち、
シェーダエレメント（ＳＥ０〜ＳＥ３）１１０〜１１３、
テクスチャユニット（ＴＵ）１２１、
ラスタライザ（Ｒａｓｔｅｒｉｚｅｒ）１３１、
ピクセル処理ユニット（ＰＰＵ）１４１、
ダイレクトメモリアクセスクコントローラ（ＤＭＡＣ）１４２、
ローカルメモリ１４３、
これらの各要素間のデータ転送制御を行う。
【０１３０】
ＡＤＵ１５０は、図１４に示すように、ＡＤＵ１〜４，１５１〜１５４の４つの分割ＡＤＵから構成される。ＡＤＵ１，１５１は、ダイレクトメモリアクセスクコントローラ（ＤＭＡＣ）１４２およびローカルメモリ１４３と他のブロックとの接続を制御し、セレクタを２つ（ＳＥＬ０，ＳＥＬ１）備えている。
【０１３１】
図中のＡＤＵ１，１５１内部に示すセレクタＳＥＬ０は、ピクセル処理ユニット（ＰＰＵ）１４１への入力元を選択する機能を持ち、通常の３ＤＣＧ描画の際にはＡＤＵ２，１５２経由のシェーダエレメント（ＳＥ０〜ＳＥ３）１１０〜１１３の出力を選択してピクセル処理ユニット（ＰＰＵ）１４１へ出力し、縮小画像生成の際には、テクスチャユニット（ＴＵ）１２１からの出力を選択してピクセル処理ユニット（ＰＰＵ）１４１へ出力する。このセレクト機能はタスク単位で固定の処理であり、設定情報としてのＣｏｎｆｉｇによって設定される。
【０１３２】
ＡＤＵ１，１５１の図中のセレクタＳＥＬ１は、シェーダエレメント（ＳＥ０〜ＳＥ３）１１０〜１１３もしくは、ラスタライザ（Ｒａｓｔｅｒｉｚｅｒ）１３１へ出力するデータをダイレクトメモリアクセスクコントローラ（ＤＭＡＣ）１４２経由の頂点データから出力するか、ローカルメモリ１４３に保持している一時保存データにするかを選択する。ここでの一時保存データには、典型的にはテクスチャマッピングを行う場合のテクスチャユニット（ＴＵ）１２１フィルタ後の結果である。本機能は、頂点シェーダ（ＶＳ）で頂点を処理しながら、フラグメントシェーダ（ＦＳ）でテクスチャを処理するという処理が同時に必要とされるために、シェーダエレメント（ＳＥ）のリクエストを元にＡＤＵ２，１５２上のバッファの増減により動的に切り替えている。
【０１３３】
ＡＤＵ２，１５２はシェーダエレメント（ＳＥ０〜ＳＥ３）１１０〜１１３およびラスタライザ（Ｒａｓｔｅｒｉｚｅｒ）１３１へのデータの供給と取得を制御し、セレクタを３つ（ＳＥＬ２，ＳＥＬ３，ＳＥＬ４）備えている。セレクタＳＥＬ２は、ＡＤＵ２，１５２に供給されたデータをラスタライザ（Ｒａｓｔｅｒｉｚｅｒ）１３１もしくはシェーダエレメント（ＳＥ０〜ＳＥ３）１１０〜１１３のどれに供給するかを選択する。このセレクト機能のうちのラスタライザ（Ｒａｓｔｅｒｉｚｅｒ）１３１への出力選択はタスク単位での設定であるためＣｏｎｆｉｇで設定される。セレクタＳＥＬ３は、シェーダエレメント（ＳＥ０〜ＳＥ３）１１０〜１１３への分配を行う。
【０１３４】
ＡＤＵ２，１５２の詳細構成を図１５に示す。図１５に示すようにＡＤＵ２，１５２では、ダイレクトメモリアクセスクコントローラ（ＤＭＡＣ）１４２もしくはローカルメモリ１４３から供給されるデータを保持する複数のデータバッファ４０１と、シェーダエレメント（ＳＥ０〜ＳＥ３）１１０〜１１３へデータを選択的に入力させるクロスバスイッチ４０２を持つ。シェーダエレメント（ＳＥ０〜ＳＥ３）１１０〜１１３への出力の選択機能を持つクロスバスイッチ４０２は、一つの頂点メモリもしくはデータバッファから供給されるデータを、複数のシェーダエレメント（ＳＥ）へ分配する。この分配処理は、ＡＤＵ２，１５２に対応する設定情報（Ｃｏｎｆｉｇ設定）に従って行われる。
【０１３５】
例えば図１６に示すようにシェーダエレメント（ＳＥ０）１１０と、シェーダエレメント（ＳＥ１）１１１が頂点シェーダ（ＶＳ）に設定され、シェーダエレメント（ＳＥ）の処理単位として、頂点データと、テクスチャ０データ、テクスチャ１データの計３つのデータが設定される場合、ＡＤＵ２，１５２の３つのデータバッファ０、１、２がそれぞれ頂点、テクスチャ０、テクスチャ１を保持し、個々のデータの単位をそれぞれ００，０１，０２，０３および１０，１１，１２，１３および２０，２１，２２，２３の値で表現する。ＡＤＵ２，１５２では、Ｃｏｎｆｉｇの設定によりそれぞれ順番にシェーダエレメント（ＳＥ０〜ＳＥ３）１１０〜１１３へ、これらの３つのデータを１つのデータセットとして供給する。
【０１３６】
データ供給は、ラウンドロビン方式、すなわち、ＳＥ０−＞ＳＥ１−＞ＳＥ０−＞・・等、利用するシェーダエレメント（ＳＥ０）を順に出力先として選択する。４つのシェーダエレメントを利用する場合は、ＳＥ０−＞ＳＥ１−＞ＳＥ２−＞ＳＥ３−＞ＳＥ０−＞ＳＥ１−＞・・・というように出力先が切り替えられる。
【０１３７】
このようにして、シェーダエレメント（ＳＥ０〜ＳＥ３）１１０〜１１３が必要とする処理の単位ごとに供給を行う。ＡＤＵ２，１５２のセレクタ（ＳＥＬ３）は、データの入出力方向が逆にして、シェーダエレメント（ＳＥ０〜ＳＥ３）１１０〜１１３の出力をラウンドロビンで取得してデータバッファに保持する。
【０１３８】
図１４に示すＡＤＵ３，１５３はシェーダエレメントュト（ＳＥ〜３）１１０〜１１３等からラスタライザ（Ｒａｓｔｅｒｉｚｅｒ）１３１への出力の選択を制御し、セレクタを２つ（ＳＥＬ５，ＳＥＬ６）備えている。ＳＥＬ５は、ダイレクトメモリアクセスクコントローラ（ＤＭＡＣ）１４２もしくはローカルメモリ１４３のデータをラスタライザ（Ｒａｓｔｅｒｉｚｅｒ）１３１に入力するケースの選択機能のためＳＥＬ２と同じくタスク毎のＣｏｎｆｉｇの設定により決定される。ＳＥＬ５は、頂点シェーダ（ＶＳ）に設定されたシェーダエレメント（ＳＥ）からの頂点を取得する機能を持ち、ＳＥＬ４と同様に頂点シェーダ（ＶＳ）に設定されたシェーダエレメント（ＳＥ）からラウンドロビンで頂点を取得して取得した順番にラスタライザ（Ｒａｓｔｅｒｉｚｅｒ）１３１へと供給する。
【０１３９】
ＡＤＵ４，１５４はラスタライザ（Ｒａｓｔｅｒｉｚｅｒ）１３１からの出力をシェーダエレメント（ＳＥ０〜ＳＥ３）１１０〜１１３に供給する制御を行い、セレクタを１つ（ＳＥＬ７）備えている。ラスタライザ（Ｒａｓｔｅｒｉｚｅｒ）１３１からのフラグメント出力をセレクタＳＥＬ７で、フラグメントシェーダ（ＦＳ）に設定されたシェーダエレメント（ＳＥ）にラウンドロビンで出力を行う。
【０１４０】
このように、ＡＤＵ１５０は、データ処理部１００を構成する要素間のデータ転送制御、すなわち、
シェーダエレメント（ＳＥ０〜ＳＥ３）１１０〜１１３、
テクスチャユニット（ＴＵ）１２１、
ラスタライザ（Ｒａｓｔｅｒｉｚｅｒ）１３１、
ピクセル処理ユニット（ＰＰＵ）１４１、
ダイレクトメモリアクセスクコントローラ（ＤＭＡＣ）１４２、
ローカルメモリ１４３、
これらの各要素間のデータ転送制御を行う。
【０１４１】
すなわち、ＡＤＵ１５０は、データ処理部１００において実行する処理に応じて動的にデータ転送経路を変更する。この制御により、面積を削減した限定された機能ブロックからなるデータ処理部１００を用いて３ＤＣＧやＪＰＥＧ、ＭＰＥＧ−２、ＭＰＥＧ−４、ＭＰＥＧ−４ＡＶＣ／Ｈ．２６４等の複数の異なる規格に対応する画像ＣＯＤＥＣ処理を実行することを可能としている。
【０１４２】
特に本発明の情報処理装置では、先に図２を参照して説明したタスクリストのアクティブマップの設定により、処理を実行する機能ブロック、処理を実行しない昨日ブロックを指定することが可能となっている。
【０１４３】
例えば画像ＣＯＤＥＣ時には、ラスタライザ（Ｒａｓｔｅｒｉｚｅｒ）１３１およびピクセル処理ユニット（ＰＰＵ）１４１は使用しない。また、縮小画像生成時には、シェーダエレメント（ＳＥ）およびラスタライザ（Ｒａｓｔｅｒｉｚｅｒ）１３１を使用しない。更には、例えば３ＤＣＧの描画の際に負荷が小さい場合に稼働するシェーダエレメント（ＳＥ）の数を減らすといった処理も可能な構成である。
【０１４４】
制御部としてのタスクコントローラ（ＴＣ）１０１はタスクリストのアクティブマップを解釈し外部のクロック供給コントローラ、もしくは電源供給コントローラにクロックまたは電源を供給しない指令を出す。この結果、機能や負荷に応じて使用しないブロックへのクロックまたは電源を供給しないという電力供給制御が可能となり、利用されない機能ブロックに対する無駄な電力供給を選択的に停止することが可能となり、低消費電力化が実現される。
【０１４５】
なお、上述した実施例では、データ処理部１００の実行する処理を３ＤＣＧと画像ＣＯＤＥＣとして説明したが、データ処理部１００を利用した処理は、これらの３ＤＣＧ処理や画像ＣＯＤＥＣ処理に限らず、その他の様々な処理、例えば、ＣＣＤまたはＣＭＯＳイメージセンサーからの入力をデモザイクする処理や、ノイズフィルタ処理等のカメラ信号処理などに利用することも可能である。さらに、その他野データ処理にも利用可能である。
【０１４６】
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。なお、本発明に係る情報処理装置は、３ＤＣＧと画像ＣＯＤＥＣに限らず、その他のデータ処理においても適用可能である。
【０１４７】
また、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。例えば、プログラムは記録媒体に予め記録しておくことができる。記録媒体からコンピュータにインストールする他、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットといったネットワークを介してプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
【０１４８】
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【産業上の利用可能性】
【０１４９】
以上、説明したように、本発明の一実施例の構成によれば、データ処理を実行する複数のデータ処理ブロックと、データフロー制御を実行するフロー制御部と、データ処理ブロックおよびフロー制御部の設定処理を実行する制御部とを有し、制御部がタスクリストに従って設定情報（Ｃｏｎｆｉｇ）を取得し、取得した設定情報に基づいてデータ処理ブロックおよびフロー制御部の設定を行い、様々なデータ処理に適応するデータ処理構成を構築する構成としたので、例えば３ＤＣＧ処理とＣＯＤＥＣ処理など、異なるデータ処理を共通のデータ処理ブロックを適用して実行可能となり、実装面積の削減、さらに製造コストおよび消費電力を削減した情報処理装置が実現される。
【図面の簡単な説明】
【０１５０】
【図１】本発明の一実施例に係る情報処理装置のデータ処理部の構成例を示す図である。
【図２】本発明の一実施例に係る情報処理装置において利用されるタスクリストの一例を示す図である。
【図３】本発明の一実施例に係る情報処理装置における設定情報（Ｃｏｎｆｉｇ）の設定処理例について説明する図である。
【図４】データ処理部１００を利用したテクスチャ無しの描画処理を実行する場合のシーケンスについて説明する図である。
【図５】データ処理部１００を利用した３ＤＣＧのテクスチャマッピング有りの典型的な描画処理を行う場合の処理シーケンスについて説明する図である。
【図６】データ処理部１００を利用した３ＤＣＧのテクスチャマッピング有りの典型的な描画処理を行う場合の処理シーケンスについて説明する図である。
【図７】データ処理部１００を適用して画像ＣＯＤＥＣのデコード処理を実行する場合の処理シーケンスについて説明する図である。
【図８】テクスチャユニット（ＴＵ）１２１の処理について説明する図である。
【図９】シェーダエレメント（ＳＥ）の構成例について説明する図である。
【図１０】データ処理部１００に設定された４つのシェーダエレメント（ＳＥ）１１０〜１１３について、頂点シェーダ（ＶＳ）１個、フラグメントシェーダ（ＦＳ）３個の設定として処理を行う構成例について説明する図である。
【図１１】全てのシェーダエレメント（ＳＥ０〜３）１１０〜１１３を頂点シェーダ（ＶＳ）に設定した例について説明する図である。
【図１２】全てのシェーダエレメント（ＳＥ０〜３）１１０〜１１３をフラグメントシェーダ（ＦＳ）に設定した例について説明する図である。
【図１３】データ処理部１００を適用した縮小画像生成時のデータ処理シーケンスについて説明する図である。
【図１４】ＡＤＵ１５０によるデータフロー制御処理について説明する図である。
【図１５】ＡＤＵ２，１５２の詳細構成例を示す図である。
【図１６】ＡＤＵ２，１５２によるデータフロー制御例について説明する図である。
【図１７】一般的な３ＤＣＧ、ＣＯＤＥＣの実行構成を示す図である。
【図１８】一般的な３ＤＣＧのデータ処理構成について説明する図である。
【図１９】一般的なＣＯＤＥＣのデータ処理構成について説明する図である。
【符号の説明】
【０１５１】
１１  ＣＰＵ
１２  ＤＳＰ
１３  ＲＡＭ
１４  ＲＯＭ
１５  外部インタフェース
２０  メディア処理ブロック
２１  ＪＰＥＧ処理ブロック
２２  ＭＰＥＧ処理ブロック
２３  ３ＤＣＧ処理ブロック
３１  メモリ
３２  頂点プロセッサ
３３  アンパックプロセッサ
３４  パックプロセッサ
３５  プリミティブアセンブリ
３６  Ｃｌｉｐ，Ｐｒｏｊｅｃｔ  Ｖｉｅｗｐｏｒｔ，Ｃｕｌｌ
３７  ラスタライザ
３８  フラグメントプロセッサ
３９  Ｐｅｒ  Ｆｒａｇｍｅｎｔ  Ｏｐｅｒａｔｉｏｎ
４０  テクスチャメモリ
４１  フレームバッファ処理
４２  フレームバッファ
４３  読み出し制御部
１００  データ処理部
１０１  タスクコントローラ（ＴＣ）
１１０〜１１３  シェーダエレメント（Ｓｈａｄｅｒ  Ｅｌｅｍｅｎｔ（ＳＥ））
１２１  テクスチャユニット（Ｔｅｘｔｕｒｅ  Ｕｎｉｔ（ＴＵ））
１３１  ラスタライザ（Ｒａｓｔｅｒｉｚｅｒ）
１４１  ピクセル処理ユニット（ＰＰＵ）
１４２  ダイレクトメモリアクセスコントローラ（ＤＭＡＣ）
１４３  ローカルメモリ
１５０  ＡＤＵ
２０１  入力部
２０２  アドレス生成部
２０３  タグチェック部
２０４  キャッシュ部
２０５  フィルタ処理部
２０６  出力部
２１１  キャッシュリクエスト部
２１２  キャッシュ入力部
３０１  シーケンサ（ＳＥＱ）
３０２  演算実行部
３０３  入力レジスタ
３０４  出力レジスタ
３０５  ロードストアレジスタ
３０６  テクスチャユニットリクエスト部
４０１  データバッファ
４０２  クロスバススイッチ
【図１】
2008299662.tif 000003
【図２】
2008299662.tif 000004
【図３】
2008299662.tif 000005
【図４】
2008299662.tif 000006
【図５】
2008299662.tif 000007
【図６】
2008299662.tif 000008
【図７】
2008299662.tif 000009
【図８】
2008299662.tif 000010
【図９】
2008299662.tif 000011
【図１０】
2008299662.tif 000012
【図１１】
2008299662.tif 000013
【図１２】
2008299662.tif 000014
【図１３】
2008299662.tif 000015
【図１４】
2008299662.tif 000016
【図１５】
2008299662.tif 000017
【図１６】
2008299662.tif 000018
【図１７】
2008299662.tif 000019
【図１８】
2008299662.tif 000020
【図１９】
2008299662.tif 000021