JP2008299662A - 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム - Google Patents

情報処理装置、および情報処理方法、並びにコンピュータ・プログラム Download PDF

Info

Publication number
JP2008299662A
JP2008299662A JP2007145976A JP2007145976A JP2008299662A JP 2008299662 A JP2008299662 A JP 2008299662A JP 2007145976 A JP2007145976 A JP 2007145976A JP 2007145976 A JP2007145976 A JP 2007145976A JP 2008299662 A JP2008299662 A JP 2008299662A
Authority
JP
Japan
Prior art keywords
data processing
processing
data
shader
information processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2007145976A
Other languages
English (en)
Other versions
JP4900051B2 (ja
JP2008299662A5 (ja
Inventor
Junichi Sakamoto
純一 坂本
Masaharu Yoshimori
正治 吉森
Tanio Nagasaki
多仁生 長崎
Shinsuke Koyama
伸介 小山
Kazumasa Ito
和正 伊藤
Minoru Takahata
稔 高畑
Mikako Hatanaka
美加子 畠中
Hitoshi Sato
仁 佐藤
Hidefumi Yamada
英史 山田
Kenichiro Yokota
健一郎 横田
Hideki Takeuchi
英樹 竹内
Hitoshi Ishikawa
仁 石川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2007145976A priority Critical patent/JP4900051B2/ja
Priority to US12/129,816 priority patent/US8624896B2/en
Publication of JP2008299662A publication Critical patent/JP2008299662A/ja
Publication of JP2008299662A5 publication Critical patent/JP2008299662A5/ja
Application granted granted Critical
Publication of JP4900051B2 publication Critical patent/JP4900051B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)

Abstract

【課題】異なるデータ処理を選択的に実行可能な小型かつ低消費電力型のデータ処理構成を実現する。
【解決手段】データ処理を実行する複数のデータ処理ブロックと、データフロー制御を実行するフロー制御部と、データ処理ブロックおよびフロー制御部の設定処理を実行する制御部とを有し、制御部がタスクリストに従って設定情報(Config)を取得し、取得した設定情報に基づいてデータ処理ブロックおよびフロー制御部の設定を行い、様々なデータ処理に適応するデータ処理構成を構築する。本構成によれば、例えば3DCG処理とCODEC処理など、異なるデータ処理を共通のデータ処理ブロックを適用して実行可能となり、実装面積の削減が可能となり、さらに製造コストや消費電力を削減した情報処理装置が実現される。
【選択図】図1

Description

本発明は、情報処理装置、および情報処理方法、並びにコンピュータ・プログラムに関する。さらに詳細には、例えば3DCGやCODEC処理を伴う3次元グラフィック処理を行なう情報処理装置、および情報処理方法、並びにコンピュータ・プログラムに関する。
3DCG(3−Dimensional Computer Graphics)技術は、コンピュータ内部に格納されている3次元形状のデータを座標変換や陰影付けを行うことにより視覚的にわかりやすく表示する役割を果たし、ビデオゲームやユーザーインターフェースなどで幅広く活用されている。また、画像CODEC処理は、コンピュータ内部に格納されている圧縮された画像を伸長し表示する処理や、その逆処理としての画像圧縮処理であり、デジタルビデオカメラ、デジタルスチルカメラ、携帯電話などで画像データを表示または保存する上で幅広く活用されている。
このようにビデオゲーム、デジタルスチルカメラ、デジタルカメラ、携帯電話などの様々なデジタル機器において、3DCGおよび画像CODEC処理は頻繁に活用される。この3DCG処理やCODEC処理を実行する一般的なハードウェア構成例を図17に示す。
図17に示す例は、CPU11、DSP12、RAM13、ROM14、外部IF15に、さらに、各処理機能毎のメディア処理ブロック20、例えば図に示す例では、JPEGに対応するCODEC処理を実行するJPEG処理ブロック21、MPEGに対応するCODEC処理を実行するMPEG処理ブロック22、3DCG機能を実行する3DCG処理ブロック23を設定した例を示している。
JPEG処理ブロック21、MPEG処理ブロック22、3DCG処理ブロック23は、各処理に応じた専用の処理回路を有している。なお、このような専用処理ブロックは機能IP(Intellectual Property)と呼ばれる。
このような機能IP(専用処理ブロック)を用いず、高速の汎用CPUによってソフトウェア処理を行うという手法も存在するが、一般的に画像の描画処理はリアルタイム性が求められるために、通常デジタル機器に搭載されるCPUでは能力的に不足する。このため、専用の処理回路を採用するのが一般的であるが、この場合、それぞれの機能IP(専用処理ブロック)を搭載するためにLSI上の面積が増大するという問題が発生する。
それでも近年までは、各機能IPは性能要求が現在に比べると低く、機能毎に論理回路を搭載してもあまり問題とはならなかったが、3DCGにおいてはその表現をより豊かにするためのデータ処理が求められている。例えばシェーダ(Shader)と呼ばれるプログラムによる陰影付け処理を施してより豊かな表現が行われるようになっている。シェーディングは3DCGにおける陰影付けの手法であり、例えば面を構成する頂点の明るさを計算し、各点の明るさを頂点の明るさの線形補間によって求めるといった処理により陰影付けが行われる。この他にも3DCGは性能・機能要求ともに高度になってきている。また、画像CODECもMPEG−2−>MPEG−4−>MPEG−4AVC/H.264のように、コーデックのアルゴリズムがより複雑かつ多様になってきている。
3DCGおよび画像CODECの一般的な処理構成について、図18、図19を参照して説明する。3DCGの処理を代表的なAPIであるOpenGLを例にして説明する。図18は、OpenGL 2.0 Overview 2003 3Dlabs,Incに紹介されている3DCGの処理構成である。
メモリ31上から、あらかじめ用意されているオブジェクト座標系の頂点情報(Vertices)が頂点プロセッサ(Vertex Processor)32に入力され、頂点プロセッサ(Vertex Processor)32は予め用意されたプログラムで頂点処理を行い、クリップ座標系に設定した頂点情報を出力する。その結果は、頂点情報処理実行部35,36において、Primitive Assembly、Clip、Project Viewport Cull等の処理を実行した後、ラスタライズ(Rasterize)37が行われる。
ラスタライズ(Rasterize)された結果のフラグメント(Fragments)はフラグメントプロセッサ(Fragment Processor)38 に入力されてFragment処理を行う。この際テクスチャ(Texture)メモリ40から読み出されたTextureとの各種ブレンド処理も行われる場合がある。Fragment処理された結果はPer Fragment Operation39が行われフレームバッファ(Frame Buffer)41へ書き込み、1フレーム分の処理が行われた結果が読み出されて表示が行われる。なお、この処理の詳細は、OpenGL2.0規格書The OpenGL Graphics Sysem: A Specificationに記載されている。
また、画像CODECの圧縮処理は、例えば図19に示すCODEC処理構成によって実行される。入力画像は、フレーム内予測、もしくは異なるフレームの動き補償の結果を差分され、直交変換、量子化をされてエントロピー符号化される。また、量子化後に逆量子化、逆直交変換された結果からフレーム内予測、もしくは動き補償された結果を加算された結果がループフィルタでフィルタされ、フレームメモリに蓄積される。前述の動き補償は、この蓄積されたフレームメモリ上の画像から動き予測されて行われる。また、動き予測のベクタやフレーム内予測の方式も上と同様にエントロピー符号化される。この結果がストリーム化されて出力される。復号化処理は、符号化処理と基本的に逆のシーケンスで処理が実効される。ただし、動き予測や、逆変換(量子化、直交変換)がない処理として処理が行われる。
図18には3DCG処理、図19にはCODEC処理の処理構成を示したが、一般的な従来構成においては、これらの各処理は、それぞれ独自の機能IP、すなわち処理ブロックを設定して実行している、すなわち、図17を参照して説明したCODEC処理を実行するMPEG処理ブロック22、3DCG機能を実行する3DCG処理ブロック23などである。
画像CODEC処理において複数の規格をサポートする場合は動き検出や動き補償などの一部の回路を共有化する場合はあるが、異なる部分も多く、更に3DCG回路などの他の機能の論理回路との共有化は行われておらず、図17に示すように、JPEGに対応するCODEC処理を実行するJPEG処理ブロック21、MPEGに対応するCODEC処理を実行するMPEG処理ブロック22など、別々の機能IP(専用処理ブロック)として実現されている。
このような手法によると、それぞれの機能IP(専用処理ブロック)を搭載することとなり回路規模が増大することになる。また各処理における高度化要求、データ処理量の増大に伴い機能IP(専用処理ブロック)を論理回路として実装するゲート規模がさらに増大し、結果としてデジタル機器に搭載されるLSIの面積の増大、製造コストの上昇が加速する要因となっている。また機器の実用上もLSI面積が大きいと、個々の機能を使用していなくてもリーク電流の消費によりLSIおよび機器の電力消費が増大するという問題が発生する。
本発明は、例えば上述の問題点に鑑みてなされたものである。3DCG処理やCODEC処理などの様々なデータ処理の共通の部分を抽出してより消費電力が少ない固定論理回路として実装し、可変の部分に関してもそれぞれの処理に共通に利用可能なプログラマブル回路として実装することにより、様々なデータ処理に適用可能な小型で消費電力の少ない情報処理装置、および情報処理方法、並びにコンピュータ・プログラムを提供することを目的とする。
本発明の第1の側面は、
各々が個別のデータ処理を実行する複数のデータ処理ブロックと、
前記データ処理ブロック間のデータフロー制御を実行するフロー制御部と、
前記データ処理ブロックおよびフロー制御部の設定処理を実行する制御部と、
を有し、
前記制御部は、
実行するデータ処理対応のタスクリストに従って設定情報(Config)を取得し、取得した設定情報に基づいて各データ処理ブロックおよびフロー制御部の設定を行い、実行するデータ処理に適応するデータ処理構成を構築する構成であることを特徴とする情報処理装置にある。
さらに、本発明の情報処理装置の一実施態様において、前記タスクリストは、実行するデータ処理に応じて利用するデータ処理ブロックと利用しないデータ処理ブロックの判別データを保持したアクティブマップを含み、前記制御部は、前記アクティブマップに基づいて、利用しないデータ処理ブロックに対する電力供給を停止させる制御を行う構成であることを特徴とする。
さらに、本発明の情報処理装置の一実施態様において、前記制御部は、前記複数のデータ処理ブロックの少なくとも一部のデータ処理ブロックを、実行するデータ処理に応じて異なるデータ処理を実行させる設定とする処理を行うことを特徴とする。
さらに、本発明の情報処理装置の一実施態様において、前記複数のデータ処理ブロックの少なくとも一部のデータ処理ブロックは、取得命令に応じた様々な処理を実行するデータ処理ブロックとして構成され、前記制御部の設定処理によって異なるデータ処理を行うことが可能な構成を有する構成であることを特徴とする。
さらに、本発明の情報処理装置の一実施態様において、前記複数のデータ処理ブロックの少なくとも一部のデータ処理ブロックは、3DCG処理における頂点シェーダ(Vertex Shader)処理、およびフラグメントシェーダ(Fragment Shader)処理を選択的に実行可能な構成であることを特徴とする。
さらに、本発明の情報処理装置の一実施態様において、前記複数のデータ処理ブロックの少なくとも一部のデータ処理ブロックは、3DCG処理における頂点シェーダ(Vertex Shader)処理、およびフラグメントシェーダ(Fragment Shader)処理を選択的に実行可能な複数のシェーダエレメント(Shader Element)によって構成され、前記制御部は、前記複数のシェーダエレメント(Shader Element)の一部を頂点シェーダ(Vertex Shader)処理を実行させる設定とし、一部をフラグメントシェーダ(Fragment Shader)処理を実行させる設定とすることを特徴とする。
さらに、本発明の情報処理装置の一実施態様において、前記複数のデータ処理ブロックの少なくとも一部のデータ処理ブロックは、3DCG処理における頂点シェーダ(Vertex Shader)処理、およびフラグメントシェーダ(Fragment Shader)処理を選択的に実行可能な複数のシェーダエレメント(Shader Element)によって構成され、前記制御部は、前記複数のシェーダエレメント(Shader Element)を時分割して、頂点シェーダ(Vertex Shader)処理を実行させる時間と、フラグメントシェーダ(Fragment Shader)処理を実行させる時間を設定する制御を行う構成であることを特徴とする。
さらに、本発明の情報処理装置の一実施態様において、前記複数のデータ処理ブロックの少なくとも一部のデータ処理ブロックは、3DCG処理における頂点シェーダ(Vertex Shader)処理、およびフラグメントシェーダ(Fragment Shader)処理、およびCODEC処理におけるマクロブロック処理を選択的に実行可能な構成であることを特徴とする。
さらに、本発明の情報処理装置の一実施態様において、前記複数のデータ処理ブロックの少なくとも一部のデータ処理ブロックは、テクスチャ処理を実行するテクスチャユニットであり、前記テクスチャユニットは縮小画像の生成処理を行う構成を有し、生成した縮小画像をローカルメモリを介して外部出力するとともに、前記ローカルメモリに格納された縮小画像を再取得して縮小を繰り返し実行して目的のサイズの縮小画像を生成する構成であることを特徴とする。
さらに、本発明の情報処理装置の一実施態様において、前記フロー制御部は、転送データを一時格納するデータバッファと、該データバッファの蓄積データを転送先に選択出力するクロスバススイッチを有することを特徴とする。
さらに、本発明の情報処理装置の一実施態様において、前記フロー制御部は、データの出力先を出力データに応じて順次切り替える処理を実行する構成であることを特徴とする。
さらに、本発明の情報処理装置の一実施態様において、前記フロー制御部は、ラウンドロビン方式に従ってデータの出力先を出力データに応じて順次切り替える処理を実行する構成であることを特徴とする。
さらに、本発明の第2の側面は、
情報処理装置において実行する情報処理方法であり、
前記情報処理装置は、各々が個別のデータ処理を実行する複数のデータ処理ブロックと、前記データ処理ブロック間のデータフロー制御を実行するフロー制御部と、前記データ処理ブロックおよびフロー制御部の設定処理を実行する制御部とを有し、
前記制御部が、実行するデータ処理対応のタスクリストに従って設定情報(Config)を取得するステップと、
前記制御部が、前記設定情報に基づいて各データ処理ブロックおよびフロー制御部の設定により実行するデータ処理に適応するデータ処理構成の構築を行う設定ステップと、
を有することを特徴とする情報処理方法にある。
さらに、本発明の情報処理方法の一実施態様において、前記タスクリストは、実行するデータ処理に応じて利用するデータ処理ブロックと利用しないデータ処理ブロックの判別データを保持したアクティブマップを含み、前記制御部は、前記アクティブマップに基づいて、利用しないデータ処理ブロックに対する電力供給を停止させる制御を行うことを特徴とする。
さらに、本発明の情報処理方法の一実施態様において、前記制御部は、前記複数のデータ処理ブロックの少なくとも一部のデータ処理ブロックを、実行するデータ処理に応じて異なるデータ処理を実行させる設定とする処理を行うことを特徴とする。
さらに、本発明の情報処理方法の一実施態様において、前記複数のデータ処理ブロックの少なくとも一部のデータ処理ブロックは、取得命令に応じた様々な処理を実行する可変データ処理ブロックであり、前記制御部は、前記可変データ処理ブロックを、前記タスクリストに基づく設定によって特定のデータ処理を実行させる設定とする制御を行うことを特徴とする。
さらに、本発明の情報処理方法の一実施態様において、前記複数のデータ処理ブロックの少なくとも一部のデータ処理ブロックは、3DCG処理における頂点シェーダ(Vertex Shader)処理、およびフラグメントシェーダ(Fragment Shader)処理を選択的に実行可能な構成であることを特徴とする。
さらに、本発明の情報処理方法の一実施態様において、前記複数のデータ処理ブロックの少なくとも一部のデータ処理ブロックは、3DCG処理における頂点シェーダ(Vertex Shader)処理、およびフラグメントシェーダ(Fragment Shader)処理を選択的に実行可能な複数のシェーダエレメント(Shader Element)によって構成され、前記制御部は、前記複数のシェーダエレメント(Shader Element)の一部を頂点シェーダ(Vertex Shader)処理を実行させる設定とし、一部をフラグメントシェーダ(Fragment Shader)処理を実行させる設定とすることを特徴とする。
さらに、本発明の情報処理方法の一実施態様において、前記複数のデータ処理ブロックの少なくとも一部のデータ処理ブロックは、3DCG処理における頂点シェーダ(Vertex Shader)処理、およびフラグメントシェーダ(Fragment Shader)処理を選択的に実行可能な複数のシェーダエレメント(Shader Element)によって構成され、前記制御部は、前記複数のシェーダエレメント(Shader Element)を時分割して、頂点シェーダ(Vertex Shader)処理を実行させる時間と、フラグメントシェーダ(Fragment Shader)処理を実行させる時間を設定する制御を行うことを特徴とする。
さらに、本発明の情報処理方法の一実施態様において、前記複数のデータ処理ブロックの少なくとも一部のデータ処理ブロックは、3DCG処理における頂点シェーダ(Vertex Shader)処理、およびフラグメントシェーダ(Fragment Shader)処理、およびCODEC処理におけるマクロブロック処理を選択的に実行可能な構成であることを特徴とする。
さらに、本発明の情報処理方法の一実施態様において、前記複数のデータ処理ブロックの少なくとも一部のデータ処理ブロックは、テクスチャ処理を実行するテクスチャユニットであり、前記テクスチャユニットは縮小画像の生成処理を行い、生成した縮小画像をローカルメモリを介して外部出力するとともに、前記ローカルメモリに格納された縮小画像を再取得して縮小を繰り返し実行して目的のサイズの縮小画像を生成することを特徴とする。
さらに、本発明の情報処理方法の一実施態様において、前記フロー制御部は、データバッファに転送データを一時格納し、クロスバススイッチにより、前記データバッファの蓄積データを転送先に選択出力する処理を実行することを特徴とする。
さらに、本発明の情報処理方法の一実施態様において、前記フロー制御部は、データの出力先を出力データに応じて順次切り替える処理を実行することを特徴とする。
さらに、本発明の情報処理方法の一実施態様において、前記フロー制御部は、ラウンドロビン方式に従ってデータの出力先を出力データに応じて順次切り替える処理を実行することを特徴とする。
さらに、本発明の第3の側面は、
情報処理装置において情報処理を実行させるコンピュータ・プログラムであり、
前記情報処理装置は、各々が個別のデータ処理を実行する複数のデータ処理ブロックと、前記データ処理ブロック間のデータフロー制御を実行するフロー制御部と、前記データ処理ブロックおよびフロー制御部の設定処理を実行する制御部とを有し、
前記制御部に、実行するデータ処理対応のタスクリストに従って設定情報(Config)を取得させるステップと、
前記制御部に、前記設定情報に基づいて各データ処理ブロックおよびフロー制御部の設定により実行するデータ処理に適応するデータ処理構成の構築を行わせる設定ステップと、
を有することを特徴とするコンピュータ・プログラムにある。
なお、本発明のコンピュータ・プログラムは、例えば、様々なプログラム・コードを実行可能な汎用コンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
本発明の一実施例の構成によれば、データ処理を実行する複数のデータ処理ブロックと、データフロー制御を実行するフロー制御部と、データ処理ブロックおよびフロー制御部の設定処理を実行する制御部とを有し、制御部がタスクリストに従って設定情報(Config)を取得し、取得した設定情報に基づいてデータ処理ブロックおよびフロー制御部の設定を行い、様々なデータ処理に適応するデータ処理構成を構築する構成としたので、例えば3DCG処理とCODEC処理など、異なるデータ処理を共通のデータ処理ブロックを適用して実行可能となり、実装面積の削減、さらに製造コストおよび消費電力を削減した情報処理装置が実現される。
以下、図面を参照しながら、本発明の情報処理装置、および情報処理方法、並びにコンピュータ・プログラムの詳細について説明する。
まず、本発明の概要について説明する。本発明の情報処理装置では、例えば3DCG処理や、MPEG,JPEGなどの様々な規格のCODEC処理の少なくとも一部の処理について共通のハードウェアを利用して実行する。
例えば、画像CODEC処理においてはマクロブロックの圧縮や伸長の処理である直交変換(DCT)や量子化等については、MPEG,JPEGなどの規格毎に異なった処理が行われるが、動き探索や動き補償については規格が異なっていてもほとんど同じ画像内探索やフィルタ処理が行われる。更にこの処理においては、一時的局所画像メモリ領域とフィルタ演算器で実現することが望ましいが、3DCGのテクスチャ処理においても使用する手段は同じである。このために、上述の動き探索、動き補償、テクスチャ処理を行う1つの機能ブロックとして実現する。
また、例えば画像CODECのマクロブロック処理の画素処理は並列処理に向いており、例えば4つの入力値の各々について4つの並列処理可能な演算部を適用した4並列度処理や、8並列度の処理による高速化が見込まれる。また、3DCG処理における頂点シェーダ(Vertex Shader)処理の座標変換や、3DCG処理におけるフラグメントシェーダ(Fragment Shader)処理のフラグメント処理も並列処理が可能であり、4並列度の処理による高速化が可能である。
例えば、3DCGにおいては、先に図18を参照して説明したように、頂点(Vertex)処理、フラグメント(Fragment)処理などが実行されるが、
頂点処理としての頂点シェーダ(Vertex Shader)処理では、頂点の座標値=(x,y,z,w)を適用したデータ処理として、
(x',y',z',w')=ModelView&Projection行列*(x,y,z,w)
上記の式に従った処理が実行される。
また、フラグメントシェーダ(Fragment Shader)処理においては、ピクセルのカラー値の赤、緑、青、アルファ(r,g,b,a)を適用したデータ処理として、
(r,g,b,a)=(r1,g1,b1,a1)+(r2,g2,b2,a2
上記の式に従った処理が実行される。
一方、画像CODEC処理においては、例えばMPEG−4AVC/H.264の一次元整数DCT処理が実行されるが、このDCT処理においては、変換対象とする入力値(a0,a1,a2,a3)に対して、
(A0,A1,A2,A3)=変換行列*(a0,a1,a2,a3)という式に従ったDCT変換が実行される。
このように、各データ処理では、類似した演算が実行される。
なお、CODEC処理におけるマクロブロックの直交変換や量子化(またはこれらの逆処理)やブロック内フィルタ処理は、各種CODEC規格(JPEG、MPEG−2、MPEG−4、MPEG−4AVC/H.264など)によって異なり、また、3DCG処理における頂点シェーダ処理(Vertex Shader)やフラグメント処理(Fragment Shader)はユーザとしてのプログラマやデザイナーが自由にプログラミング可能とすることが要請されている。従ってこれらの処理は、様々なプログラムを利用可能なプロセッサ処理として行うことが望ましい。本発明の構成では、これらの処理について、並列演算を実行する演算実行部を備えた1つのデータ処理ブロックとして実現する。
なお、3DCGやCODECにおいて共通に利用可能なデータ処理部を設定したとしても、各処理のシーケンスに沿って様々な処理を実現する必要がある。例えば、3DCG処理の場合、
メモリ−>頂点シェーダ(Vertex Shader)処理−>ラスタライズ(Rasterize)−>フラグメントシェーダ(Fragment Shader)処理−>フラグメント対応処理(Per Fragment Operation)−>メモリ
という処理シーケンスで処理が行われる。
これらの処理シーケンスにおける頂点シェーダ(Vertex Shader)処理と、フラグメントシェーダ(Fragment Shader)処理が、上述のようにプログラム処理として実行させることが要請される処理である。これらの処理部分はラスタライズ(Rasterize)処理の前後に設定されているので、プログラム処理を実行するデータ処理部で、頂点シェーダ(Vertex Shader)処理を実行し、その結果をデータ処理部からラスタライザに提供し、さらに、ラスタライズ処理結果をプログラム処理を実行するデータ処理部に再入力してフラグメントシェーダ(Fragment Shader)処理を実行するといったデータ転送が必要となる。
また、例えばCODEC処理における伸長処理の場合には、
メモリ−>エントロピー復号化−>逆量子化−>逆直交変換−>ブロック結合−>メモリ
という処理シーケンスで処理が行われる。
これらの処理中、上述したように逆量子化および逆直交変換という処理がプログラム処理に適しているが、これは上記のシーケンス上は連続処理として実行可能であり、プログラム処理を実行するデータ処理部において、外部とのデータ入出力を行うことなくこれら2つの処理を一連の処理としてまとめて実行することができる。
ここで、前述のように3DCGにおける頂点シェーダ(Vertex Shader)処理、およびフラグメントシェーダ(Fragment Shader)処理と、CODEC処理における逆量子化と逆直交変換を、1つの共通のデータ処理部(IP:機能ブロック)で行う構成とするには、ハードウェアをいずれかの処理専用の形態で設定してしまうと、その他の処理に適用できなくなるという問題が発生する。
本発明の情報処理装置では、例えば上記の様々なデータ処理に適用可能な共通のハードウェアを備え、かつ各処理に対応したプログラムの実行により様々なデータ処理シーケンスを実行することを可能しとしたデータ処理部を備えた情報処理装置を実現するものである。
以下、本発明の情報処理装置の具体例について説明する。以下では、実施例として、3DCGによる描画処理、および画像CODEC処理に適用可能なデータ処理部を備えた情報処理装置について説明する。
図1に本発明の一実施例に係る情報処理装置のデータ処理部100の構成例を示す。データ処理部100は、例えば1つのLSIによって構成される。データ処理部100は、各々が個別のデータ処理を実行する複数のデータ処理ブロック、すなわち、
シェーダエレメント(SE0〜SE3)110〜113、
ラスタライザ(Rasterizer)131、
ピクセル処理ユニット(PPU)141、
テクスチャユニット(TU)121、
を有し、さらに、これらのデータ処理ブロック間のデータフロー制御を実行するフロー制御部としてのADU150と、これらのデータ処理ブロックおよびフロー制御部(ADU150)の設定処理を実行する制御部としてのタスクコントローラ(Task Controller(TC))101を有する。制御部としてのタスクコントローラ(Task Controller(TC))101は、データ処理部100において実行するデータ処理対応のタスクリストに従って設定情報(Config)を取得し、取得した設定情報に基づいて各データ処理ブロックおよびフロー制御部の設定を行い、実行するデータ処理に適応するデータ処理構成を構築する。
なお、フロー制御部(ADU150)については、図1中にブロックとして示していないが、各処理ブロック間のデータフローの制御を行うユニットである。このADU150の実行する制御については後段で説明する。
制御部としてのタスクコントローラ(Task Controller(以下TC))101を有する。タスクコントローラ(TC)101は、ホストインターフェースの機能を持ち、アプリケーションやライブラリのソフトウェアが動作する上位CPUからの指令をレジスタアクセスおよび処理する内容をタスクリストとして受け取り、データ処理部100全体の起動および内部の同期処理を行う。なお、タスクコントローラ(TC)101は画像CODEC処理のエントロピー符号化や復号化処理も実行する。
シェーダエレメント(Shader Element(以下SE))110〜113は、
(a)3DCG処理における頂点シェーダ(Vertex Shader)処理の頂点要素処理、
(b)3DCG処理におけるフラグメントシェーダ(Fragment Shader)処理のフラグメント要素処理、
(c)画像CODEC 処理におけるマクロブロックの量子化/逆量子化、直交変換/逆直交変換、イントラ(Intra)予測補償、ブロック統合、ループ内フィルタ処理、
上記(a)〜(c)の処理を各処理に応じて実行する。これらの処理は本実装においてはSIMD型の並列演算をプログラムに従って実行する。
なお、図中ではシェーダエレメント(SE)の数を4つに設定した例を示しているが、これは一例であり、シェーダエレメント(SE)の数は、希望する並列処理数に応じて任意の数に設定できる。例えば256個程度までの設定とすることができる。
テクスチャユニット(Texture Unit(TU))121は、
(a)3DCG処理の実行に際しては、テクスチャマッピング処理のサンプリングおよびフィルタリング機能であるテクスチャのポイントサンプリング、バイリニア、トライリニアフィルタ処理、アニソトロピックフィルタ処理、cubemap処理、MIPMAP画像生成を行う。
(b)画像CODEC処理の実行に際しては、動き補償、動き検出処理を行う。
ラスタライザ(Rasterizer)131は、3DCG処理において、ビューポート変換、透視法除算、クリッピング、トライアングルセットアップ、ポイントスプライト拡張、ピクセル補間処理、マルチサンプリング、シザリング、ポリゴンオフセット、デプスレンジ、フェイスカリングを行う。ここでは以上をラスタライズ処理と呼称する。
ピクセル処理ユニット(PPU)141は3DCG処理におけるフラグメント対応処理(Per Fragment Operation)、およびピクセル読み書き(Pixel RW)の機能を持つ。
ダイレクトメモリアクセスコントローラ(DMAC)142はデータ処理部100外に存在する外部メモリとのインタフェース機能を持ち、外部メモリからDMA転送によりデータの取得、書き込みを行う。
ローカルメモリ143は、外部メモリから供給されたデータおよび内部で処理途中のデータを一時保存するメモリである。
なお、データ処理部100では、3DCGにおける頂点シェーダ(Vertex Shader)処理や、フラグメントシェーダ(Fragment Shader)処理、さらには、CODEC処理における量子化、直行変換処理、あるいは逆量子化と逆直交変換処理などを実行するが、これらの様々な処理に応じて、内部の各構成要素間でのデータの転送、供給処理は異なる態様で行うことが必要となる。
処理に応じてデータ転送態様を変更するために、データ処理部100における図中のバスや直接接続で示している部分は、データバッファおよびクロスバスイッチなどからなるADU(Arbitration Distribution Unit)150によって構成される。
図1に示すデータ処理部100の実行する処理の概略について説明する。
典型的な3DCG処理における動作例について説明する。データ処理部100外のホストCPUにより、ホストIF経由で、タスクコントローラ(TC)101にタスクリストの書き込み(ライト)が実行されレジスタ書き込み処理により起動がかけられる。タスクコントローラ(TC)101はタスクリストに従って、ダイレクトメモリアクセスクコントローラ(DMAC)142へDMA転送コマンドを起動する。
本実施例において利用されるタスクリストの一例を図2に示す。タスクリストは図2(a)に示すように処理の単位である複数のタスクから構成され、タスクは図2(b)に示すようにDMA転送単位である複数のパスで構成される。1つのパスには、外部メモリのベースアドレスとサイズおよび同期モードとアクティブマップが規定される。タスクおよびパスは実行の順序に従って配置され、図では上から下に、
タスク0−>タスク1−>タスク2....タスクn、
タスク内では初期化パス−>パス1−>パス2の順に実行を行う。
外部メモリのベースアドレスとサイズはDMA転送のための情報であり、その情報を元に、ダイレクトメモリアクセスクコントローラ(DMAC)142の制御の下、DMA転送を行う。同期モードは、パス間のDMA転送の開始のタイミングを規定している。アクティブマップは、実行するパスで必要な活性化すべきブロックを規定している。
図2(c)に示すように、アクティブマップは、図1に示す各処理ブロック、すなわち、
4つのシェーダエレメント(SE0〜SE3)110〜113、
ラスタライザ(Rasterizer)131、
ピクセル処理ユニット(PPU)141、
テクスチャユニット(TU)121、
これらの各処理ブロックを使用した処理とするか否かのフラグを設定している。フラグは例えば[1]が使用、すなわち活性ブロックであり、[0]がすなわち不使用、すなわち不活性ブロックに対応する。
すなわちCODEC処理に際しては、
シェーダエレメント(SE0〜3)110〜113、
テクスチャユニット(TU)121、
を利用した処理構成とし、
縮小画像生成処理においては、
ピクセル処理ユニット(PPU)141、
テクスチャユニット(TU)121、
を利用した処理構成とし、
付加の小さい3DCG処理においては、
1つのシェーダエレメント(SE3)113、
ラスタライザ(Rasterizer)131、
ピクセル処理ユニット(PPU)141、
テクスチャユニット(TU)121、
これらの利用処理とすることを規定している。
なお、シェーダエレメント(SE)は、実行する処理に応じて、その処理態様が変更される。例えば、3DCG処理においては、頂点シェーダ(Vertex Shader)処理、およびフラグメントシェーダ(Fragment Shader)処理を実行し、CODEC処理においてはマクロブロック処理を実行するように制御部において設定される。
制御部としてのタスクコントローラ(TC)101は、図2に示すタスクリストの初期化パスにおいて実行するデータ処理に応じた設定を実行する。すなわち、実行するタスク内のパスに共通に必要となる初期設定が行われる。図1に示すデータ処理部100を構成する各機能ブロックは、設定レジスタ(以下Config)を複数持ち、Configの設定により動作のモードが規定される。例えば、ラスタライザ(Rasterizer)131のConfigに[RA_PRIM]というレジスタが存在するが、これは3DCGで描画を行うプリミティブの種類を規定するレジスタである。このようなConfigレジスタの設定は図3で示すように、ダイレクトメモリアクセスクコントローラ(DMAC)142が外部メモリから設定データ(Config)をデータ処理部100の内部に転送したのち、ADU150を利用してレジスタアドレスに従って各処理プロックに分配される。図3において点線で示す矢印が、Configレジスタの設定データの経路である。
図4を参照して、データ処理部100を利用したテクスチャ無しの描画処理を実行する場合のシーケンスについて説明する。
テクスチャ無しの描画処理を実行する場合も、図2に示すタスクリストに基づいて処理が実行される。初期化パスにおいて、実行するタスク内のパスに共通に必要となる初期設定が行われた後、パス1では実際に描画処理を行うが、同様にタスクコントローラ(TC)101からダイレクトメモリアクセスクコントローラ(DMAC)142へDMA転送が起動され処理対象とする頂点列データが内部に転送される。
図4に示すように、テクスチャ無しの描画処理を実行する場合、
シェーダエレメント(SE0〜SE1)110,111が頂点シェーダ(VS)として利用され、
シェーダエレメント(SE2〜SE3)112,113がフラグメントシェーダ(VS)として利用される。
頂点列データは、ADU150によって、頂点シェーダ(VS)に設定したシェーダエレメント(SE)にSE0−>SE1−>SE0−>SE1という順番で分配を行う。図4に示す各処理ブロックを接続する矢印は、本処理においてADU150によって設定されるデータフローに対応している。なお、図4では、頂点シェーダ(VS)に設定しているシェーダエレメント(SE)を2つとした例を示しているが、この設定は一例であり、0個から4個まで任意に設定可能である。
頂点シェーダ(VS)であるシェーダエレメント(SE0〜SE1)110,111は、供給された頂点列を処理対象として、Configレジスタの設定および内部で動作するプログラムに従ってデータ処理を行う。処理結果は、ラスタライザ(Rasterizer)131に出力する。この時、ADU150によってシェーダエレメント(SE0〜SE1)110,111に入力した頂点情報の順番を守り、ラスタライザ(Rasterizer)131へ出力する。ラスタライザ(Rasterizer)131では、ラスタライズ処理を行い、結果をフラグメントシェーダ(FS)として設定されているシェーダエレメント(SE2〜SE3)112,113に出力する。
フラグメントシェーダ(FS)として設定されているシェーダエレメント(SE2〜SE3)112,113は、2つのSEであり、この場合も、ラスタライザ(Rasterizer)131からの出力であるラスタライズ結果を順番にSE2−>SE3−>SE2−>SE3−>というようにフラグメントシェーダ(FS)として設定されているシェーダエレメント(SE2〜SE3)112,113へ分配を行う。
フラグメントシェーダ(FS)として設定されているシェーダエレメント(SE2〜SE3)112,113では、フラグメント要素の処理を行い、処理結果をピクセル処理ユニット(PPU)141に出力する。この出力に際しても、ADU150によって、出力制御が実行され、処理順序を守って出力される。
ピクセル処理ユニット(PPU)141では、フラグメント対応処理(Per Fragment Operation)を行い、ローカルメモリ143経由でダイレクトメモリアクセスクコントローラ(DMAC)142が処理結果を外部メモリへ出力する。
次に、図5、図6を参照して、データ処理部100を利用した3DCGのテクスチャマッピング有りの典型的な描画処理を行う場合の処理シーケンスについて説明する。
テクスチャ有りの描画処理を実行する場合も、図2に示すタスクリストに基づいて処理が実行される。初期化パスにおいて、実行するタスク内のパスに共通に必要となる初期設定が行われた後、パス1、パス2では実際に描画処理を行う。この場合もタスクコントローラ(TC)101からダイレクトメモリアクセスクコントローラ(DMAC)142へDMA転送が起動され処理対象とする頂点列データが内部に転送される。パス1の処理を図5、パス2の処理を図6を参照して説明する。
まず、パス1の処理について図5を参照して説明する。テクスチャ有りの描画処理を実行する場合、ADU150は、図5に示す各処理ブロックを接続する矢印に従ったデータ経路を設定する。本処理においても、
シェーダエレメント(SE0〜SE1)110,111が頂点シェーダ(VS)として利用され、
シェーダエレメント(SE2〜SE3)112,113がフラグメントシェーダ(VS)として利用される。
頂点列データは、ADU150によって、頂点シェーダ(VS)に設定したシェーダエレメント(SE)にSE0−>SE1−>SE0−>SE1という順番で分配を行う。頂点シェーダ(VS)であるシェーダエレメント(SE0〜SE1)110,111は、供給された頂点列を処理対象として、Configレジスタの設定および内部で動作するプログラムに従ってデータ処理を行う。処理結果は、ラスタライザ(Rasterizer)131に出力する。この時、ADU150によってシェーダエレメント(SE0〜SE1)110,111に入力した頂点情報の順番を守り、ラスタライザ(Rasterizer)131へ出力する。ラスタライザ(Rasterizer)131では、ラスタライズ処理を行い、結果をフラグメントシェーダ(FS)として設定されているシェーダエレメント(SE2〜SE3)112,113に出力する。
ここまでの処理は図4を参照して説明したテクスチャ無しの描画処理を実行する場合と同じ処理である。テクスチャ有りの描画処理を実行する場合は、フラグメントシェーダ(FS)として設定されているシェーダエレメント(SE2〜SE3)112,113は、フラグメント(Fragment)要素からテクスチャアドレスを計算し、ローカルメモリ143経由でテクスチャをテクスチャユニット(TU)121に対してリクエストする。
テクスチャユニット(TU)121では、テクスチャアドレスを外部メモリの実アドレスに変換してダイレクトメモリアクセスクコントローラ(DMAC)142へDMA転送要求を出しテクスチャの画素値を読み出し、結果をフィルタ演算処理を行い、ローカルメモリ143上のバッファに貯める。次にパス1の転送が終了後、引き続いてパス2の転送が開始される。
図6を参照して、パス2の処理について説明する。パス2の処理においても、ラスタライザ(Rasterizer)131の出力までは同じシーケンスで動作し、その後、フラグメントシェーダ(FS)として設定されているシェーダエレメント(SE2〜SE3)112,113は、ラスタライザ(Rasterizer)131から出力されたカラー値と、テクスチャユニット(TU)121から出力されたテクスチャのカラー値をブレンドする。その結果をピクセル処理ユニット(PPU)141へ出力する。
ピクセル処理ユニット(PPU)141では、フラグメント対応処理(Per Fragment Operation)を行い、ローカルメモリ143経由でダイレクトメモリアクセスクコントローラ(DMAC)142が処理結果を外部メモリのカラー、Zの値を格納するメモリへ出力する。
次に、図7を参照してデータ処理部100を適用して画像CODECのデコード処理を実行する場合の処理シーケンスについて説明する。画像CODEC処理の場合も、図4〜図6を参照して説明した3DCG処理と同様、タスクコントローラ(TC)101が先に図2を参照して説明したタスクリスト解釈して動作を開始する。まず、内部にConfigレジスタを転送するDMA転送を起動し、次にタスクコントローラ(TC)101はエントロピー符号化されたビットストリーム(bitstream)データをダイレクトメモリアクセスクコントローラ(DMAC)142経由で取得し、エントロピー復号化処理を行い復号結果(ここではraw−MB(マクロブロック)と表記する)をローカルメモリ143に書き出す。
復号結果(raw−MB)は、タスクコントローラ(TC)101の起動により各シェーダエレメント(SE0〜SE3)110〜113に入力される。この場合、複数あるシェーダエレメント(SE0〜SE3)110〜113は、3DCGの場合と異なり全て同じデコード処理を行うコーデックシェーダ(CODEC Shader)として動作する。
コーデックシェーダ(CODEC Shader)として設定されたシェーダエレメント(SE0〜SE3)110〜113は、マクロブロック(MB)の動きベクトル(MV)を算出し、テクスチャユニット(TU)121へ動きベクトル(MV)の値を渡して動き補償(MC)のリクエストを行う。テクスチャユニット(TU)121 では動きベクトル(MV)の値から外部メモリの実アドレスに変換してダイレクトメモリアクセスクコントローラ(DMAC)142へDMA転送要求を出し、既にデコード済みの参照画像の指定アドレスの画素値を取得し、更に、動きベクトル(MV)の値が1/2画素もしくは1/4画素の場合にはフィルタ演算処理を行い、結果の予測値動き補償(MC)をシェーダエレメント(SE0〜SE3)110〜113へ出力する。シェーダエレメント(SE0〜SE3)110〜113はテクスチャユニット(TU)121にリクエストを行って値が帰ってくるまでの間に、逆量子化、逆直交変換の算出を行う。この結果と予測値を加算することでデコード処理が終了し、伸長済みのマクロブロック(MB)をダイレクトメモリアクセスクコントローラ(DMAC)142 経由で外部メモリへの書き出しを行う。
上述したように、データ処理部100は、3DCG処理、CODEC処理などの異なる処理を実行し、各処理において、
シェーダエレメント(SE0〜SE3)110〜113、
ラスタライザ(Rasterizer)131、
ピクセル処理ユニット(PPU)141、
テクスチャユニット(TU)121、
これらの各処理ブロックが各処理に対応した異なる処理を行うように設定される。処理を実行する前の設定は設定情報(Config)によって規定されることになり、具体的な処理は、タスクリストにおいて規定される。
例えば、テクスチャユニット(TU)121では、各処理に共通のテクスチャ処理を行う。テクスチャユニット(TU)121の処理について図8を参照して説明する。図8は、テクスチャユニット(TU)121の構成図を示している。入力部201はシェーダエレメント(SE)からのリクエストを入力し、アドレス生成部202では、実メモリ上のアドレスを生成し、タグチェック部203でそのアドレスのデータが後段のキャッシュ部204に存在しなければ、キャッシュリクエスト部211でダイレクトメモリアクセスクコントローラ(DMAC)142へDMA転送をリクエストし、該当アドレス近傍のメモリデータがキャッシュ入力部212を介してキャッシュ部204に入力される。キャッシュ部204はRAMを保持しておりアドレスからのデータを読み出す。この結果リクエストされたアドレスのデータが読み出され、フィルタ処理部205において、フィルタ演算を行い、出力部206を経由して結果を出力する。
なお、図8に示す処理部中、タグチェック部203、キャッシュリクエスト部211、キャッシュ入力部212、キャッシュ部204はアルゴリズムに依存しないため、全く同一の論理回路で構成される。またフィルタ処理部205に関しては、3DCG処理の場合もCODEC処理の場合も8bitの輝度値やカラー値に対する乗加減算によるフィルタ演算を実行することになるため、ほとんどの論理回路を共有することが可能となる。
次に図9を参照してシェーダエレメント(SE)の構成例について説明する。シェーダエレメント(SE)は、前述したように、
(a)3DCG処理における頂点シェーダ(Vertex Shader)処理の頂点要素処理、
(b)3DCG処理におけるフラグメントシェーダ(Fragment Shader)処理のフラグメント要素処理、
(c)画像CODEC 処理におけるマクロブロックの量子化/逆量子化、直交変換/逆直交変換、イントラ(Intra)予測補償、ブロック統合、ループ内フィルタ処理、
上記(a)〜(c)の処理を各処理に応じて実行する。これらの処理は本実装においてはSIMD型の並列演算をプログラムに従って実行する構成である。すなわち、メイレイフェッチによって取得される命令に応じた様々な処理を実行するデータ処理ブロックとして構成され、制御部の設定によって異なるデータ処理を行うことが可能な構成を有する。
図9は、1つのシェーダエレメント(SE0)110の構成を示している。他のシェーダエレメント(SE1〜3)111〜113も同様の構成を持つ。シェーダエレメント(SE0)110はプログラムで動作する4並列SIMD演算を行うプロセッサであり、オペランドを入力する入力レジスタ303と、オペランドを適用した演算を実行する演算実行部302と、データ処理における設定情報(Config)とデータ処理プログラムに基づいてデータ処理制御を実行する制御部としてのシーケンサ(SEQ)301、出力レジスタ304等によって構成される。
制御部(SEQ)301は、シェーダエレメント(SE0)110のデータ処理の制御を行う制御部として機能し、外部から設定されるレジスタ(以下Config)および命令により、本装置の動作を規定する制御部としてのブロックであり、以下の構成要素を含む。
(a)IFU
命令キャッシュ(ICACHE)に命令を書き込み登録(フェッチ)する処理を実行するブロックである。
(b)ICACHE
IFUによってフェッチされた命令を保持する命令キャッシュである。
命令フェッチユニット(IFU)から命令をリクエストして、命令を命令キャッシュ(ICACHE)に取得し、取得した命令に従ってシーケンサとしての制御部(SEQ)301の制御によって入力レジスタ303のデータを処理して出力レジスタ304に出力する。図9に示すALU0−ALU3は並列に動作する算術論理演算回路としての演算実行部302であり、GPR/CR/SPR/FRは固定値や処理途中結果を格納するバッファであり、ロードストアレジスタ305は一時的にシェーダエレメント(SE)の外部メモリにデータを保存・取得するためのレジスタであり、テクスチャユニット(TU)リクエスト部306は、テクスチャユニット(TU)リクエスト部306へのリクエスト出力を行うためのレジスタである。
3DCG においては、例えば頂点処理としての頂点シェーダ(Vertex Shader)処理では、頂点の座標値=(x,y,z,w)を適用したデータ処理として、
(x',y',z',w')=ModelView&Projection行列*(x,y,z,w)
上記の式に従った処理が実行される。
また、フラグメントシェーダ(Fragment Shader)処理においては、ピクセルのカラー値の赤、緑、青、アルファ(r,g,b,a)を適用したデータ処理として、
(r,g,b,a)=(r1,g1,b1,a1)+(r2,g2,b2,a2
上記の式に従った処理が実行される。
一方、画像CODEC処理においては、例えばMPEG−4AVC/H.264の一次元整数DCT処理が実行されるが、このDCT処理においては、変換対象とする入力値(a0,a1,a2,a3)に対して、
(A0,A1,A2,A3)=変換行列*(a0,a1,a2,a3)という式に従ったDCT変換が実行される。
このように、各データ処理では、類似した演算が実行される。
このように、3DCGの頂点シェーダ(VS)処理や、フラグメントシェーダ(FS)処理、およびCODEC処理におけるマクロブロック処理はベクタ型の演算が多く、例えば図9を参照して説明した構成を持つシェーダエレメント(SE)のようなSIMD演算プロセッサによって処理を行うことで効率的な処理が可能となる。
また、3DCGのシェーダ(Shader)処理は、デザイナー(クリエイター)により様々なプログラミングが行える環境であることが要請され、プログラミング処理を解放する必要があり、この要請からもプロセッサ処理とすることが必要となる。また、CODEC処理におけるマクロブロック処理は、JPEG、MPEG−4、MPEG−4AVC/H.264などのCODEC規格の各々で処理態様が異なるために、固定論理回路で実現するよりも、各規格に応じて処理を容易に変更できるプロセッサ処理とすることが望ましい。これらの理由からも、これらの処理については図9に示すようなシェーダエレメント(SE)、すなわちSIMD型のプロセッサで処理を行うことが好ましい。
本発明の情報処理装置では、このようにシェーダエレメント(SE)とテクスチャユニット(TU)121の2つの機能ブロックに3DCGとCODECにおいて実行する処理を適切に割り振る。すなわち、
3DCG処理を実行する場合には、図4〜図6を参照して説明したように、
シェーダエレメント(SE)を頂点シェーダ(Vertex Shader)とフラグメントシェータ(Fragment Shader)として利用し、
CODEC処理を実行する場合には、図7を参照して説明したように、
シェーダエレメント(SE)をコーデックシェーダ(Codec Shader)として利用する。
なお、テクスチャユニット(TU)については、いずれの処理においてもテクスチャ処理を実行するユニットとして共通に利用される。
シェーダエレメント(SE)を、
3DCGにおいて、頂点シェーダ(Vertex Shader)とフラグメントシェータ(Fragment Shader)として利用する場合と、
CODEC処理において、コーデックシェーダ(Codec Shader)として利用する場合とでは、それぞれの処理に応じた設定情報、すなわち(Config)が設定され、さらに、それぞれの処理に応じたタスクリスト(図2参照)を適用して処理が実行されることになる。
このように本実施例の情報処理装置では、同一の処理ブロックを適用して様々な処理を実行する構成としたので、ハードウェア回路の面積を小さくできる。また、ダイレクトメモリアクセスクコントローラ(DMAC)142や、ローカルメモリ143、さらにADU150も論理演算処理を行うわけではなく、外部メモリとのやり取り、内部バッファ、フローコントローラであるため、3DCG処理とCODEC処理の両処理において共通に使用される。すなわち、図1に示すデータ処理部100の構成中、ラスタライザ(Rasterizer)131およびピクセル処理ユニット(PPU)141のみが3DCGに専用の回路である。
次に本発明の情報処理装置のその他の実施例について説明する。前述の3DCG描画のバリエーションとして、複数のシェーダエレメント(SE)についての頂点シェーダ(VS)処理とフラグメントシェーダ(FS)処理への割り振り比率を変更した例について説明する。
先に、図4を参照して説明した構成では、データ処理部100に設定された4つのシェーダエレメント(SE)110〜113について、頂点シェーダ(VS)2個、フラグメントシェーダ(FS)2個の設定として処理を行う構成とした。
図10に示す例は、データ処理部100に設定された4つのシェーダエレメント(SE)110〜113について、頂点シェーダ(VS)1個、フラグメントシェーダ(FS)3個の設定として処理を行う構成例である。すなわち、図10に示すように、
シェーダエレメント(SE0)110を頂点シェーダ(VS)として利用し、
シェーダエレメント(SE1〜3)111〜113をフラグメントシェーダ(FS)として設定して処理を行う。
3DCG処理においては、アプリケーションや、処理対象となるシーンまたはオブジェクトに応じて頂点シェーダ(VS)とフラグメントシェーダ(FS)の負荷のバランスは異なる。このため頂点シェーダ(VS)とフラグメントシェーダ(FS)に設定するシェーダエレメント(SE)の数を可変にすることにより負荷のバランスを取ることが可能になる。例えば、ポリゴンが大きく、頂点シェーダ(VS)処理負荷が小さくフラグメントシェーダ(FS)負荷が多いオブジェクトを描画するような際には頂点シェーダ(VS)の数を減らし、ポリゴンが小さく、頂点シェーダ(VS)負荷が大きいようなオブジェクトを描画するような場合には、頂点シェーダ(VS)の数を増やすことにより、より高速に処理を行うことが可能である。
また、更には頂点シェーダ(VS):フラグメントシェーダ(FS)の負荷バランスが例えば1:100というように大幅に異なっているような場合には時間的な配分でこのバランスを取ることが可能である。
図11は全てのシェーダエレメント(SE0〜3)110〜113を頂点シェーダ(VS)に設定した例であり、全てのシェーダエレメント(SE0〜3)110〜113において頂点シェーダ(VS)処理を行い、処理結果をローカルメモリ143に転送し、図12は、その後、全てのシェーダエレメント(SE0〜3)110〜113をフラグメントシェーダ(FS)に設定して、頂点シェーダの処理結果をローカルメモリ143から読み出してラスタライザ(Rasterizer)131に入力して、ラスタライザ(Rasterizer)131からの出力であるラスタライズ結果をフラグメントシェーダ(FS)として設定されているシェーダエレメント(SE0〜SE3)110〜113へ分配し、フラグメントシェーダ(FS)として設定されているシェーダエレメント(SE0〜SE3)110〜113では、フラグメント要素の処理を行い、処理結果をピクセル処理ユニット(PPU)141に出力してピクセル処理ユニット(PPU)141で、フラグメント対応処理(Per Fragment Operation)を行い、ローカルメモリ143経由でダイレクトメモリアクセスクコントローラ(DMAC)142が処理結果を外部メモリへ出力するという構成である。
図11、図12に示す構成は、先に図4を参照して説明したテクスチャ無しの描画処理を実行する例であり、
シェーダエレメント(SE0〜SE3)110〜113を頂点シェーダ(VS)として利用する時間と、フラグメントシェーダ(VS)として利用する時間を設定して時間により処理を変更した例である。
図11に示すように、全てのシェーダエレメント(SE0〜SE3)110〜113を頂点シェーダ(VS)として利用する時間帯においては、頂点列データは、ADU150によって、頂点シェーダ(VS)に設定したシェーダエレメント(SE)にSE0−>SE1−>SE2−>SE3という順番で分配を行う。図11に示す各処理ブロックを接続する矢印は、本処理においてADU150によって設定されるデータフローに対応している。
頂点シェーダ(VS)であるシェーダエレメント(SE0〜SE3)110〜113は、供給された頂点列を処理対象として、Configレジスタの設定および内部で動作するプログラムに従ってデータ処理を行う。この処理結果は、先に図4を参照して説明した例では、ラスタライザ(Rasterizer)131に出力する設定であったが、本例では、一旦、ローカルメモリ143に格納する。この時、ADU150によってシェーダエレメント(SE0〜SE3)110〜113に入力した頂点情報の順番を守り、ローカルメモリ143に格納する。
その後、図12に示すように、全てのシェーダエレメント(SE0〜SE3)110〜113をフラグメントシェーダ(FS)として利用する時間帯に以降すると、ローカルメモリ143に格納された頂点シェーダ(VS)処理結果が、ラスタライザ(Rasterizer)131へ出力され、ラスタライザ(Rasterizer)131で、ラスタライズ処理を行い、その結果がフラグメントシェーダ(FS)として設定されているシェーダエレメント(SE0〜SE3)110〜113に出力される。
フラグメントシェーダ(FS)として設定されているシェーダエレメント(SE0〜SE3)110〜113は、ラスタライザ(Rasterizer)131からの出力であるラスタライズ結果を順番にSE0−>SE1−>SE2−>SE3−>というようにフラグメントシェーダ(FS)として設定されているシェーダエレメント(SE2〜SE3)112,113へ分配を行う。フラグメントシェーダ(FS)として設定されているシェーダエレメント(SE0〜SE3)110〜113では、フラグメント要素の処理を行い、処理結果をピクセル処理ユニット(PPU)141に出力する。この出力に際しても、ADU150によって、出力制御が実行され、処理順序を守って出力される。ピクセル処理ユニット(PPU)141では、フラグメント対応処理(Per Fragment Operation)を行い、ローカルメモリ143経由でダイレクトメモリアクセスクコントローラ(DMAC)142が処理結果を外部メモリへ出力する。
このように、全シェーダエレメント(SE0〜SE3)110〜113を頂点シェーダ(VS)またはフラグメントシェーダ(FS)に設定する時間配分を例えば、1:100という比率にすることにより、負荷バランスが1:100の場合にも適応してデータ処理が行える。この時間配分は、適宜、Config設定情報やタスクリストの設定情報に基づいて変更することが可能である。
制御部としてのタスクコントローラ(TC)101は、上述したように、複数のシェーダエレメント(Shader Element)の設定を、処理エレメント数を区分して頂点シェーダ(Vertex Shader)処理と、フラグメントシェーダ(Fragment Shader)処理を並列に実行させる設定としたり、時間帯で区分して、頂点シェーダ(Vertex Shader)処理を実行させる時間と、フラグメントシェーダ(Fragment Shader)処理を実行させる時間を設定する制御を行う。
なお、図12に示す構成では、全シェーダエレメント(SE0〜SE3)110〜113をフラグメントシェーダ(FS)に設定する構成であるが、この構成は、例えば、図12に示すデータ処理部100の外部にある上位CPU等にて頂点シェーダ(VS)処理である座標変換を受け持ち、クリップ座標系の頂点列をデータ処理部100において処理するといった構成においても適用できる。
次に、データ処理部100を適用した縮小画像生成時のデータ処理シーケンスについて、図13を参照して説明する。例えばコンピュータ・グラフィックス(CG)のプログラミングインタフェースを規定するOpenGL2.0等においては、大きなテクスチャから小さなテクスチャを生成する縮小画像生成機能であるMIPMAP画像生成機能を規定している。また、画像CODECにおいて実行される動き検出処理において、縮小画像にて粗い検索を行い、元画像にて細い検索を行う手法が良く用いられるが、この場合にも縮小画像生成機能は使用される。
図13は、データ処理部100を適用した縮小画像生成時のデータ処理シーケンスについて説明する図である。この縮小画像生成処理においても図2に示すタスクリストが設定され、タスクリストに基づいて縮小画像生成に対応する各機能部の設定、処理が実行される。タスクコントローラ(TC)101はタスクリストの記録情報に基づいて設定情報としてのConfigを設定し、元画像が外部メモリからダイレクトメモリアクセスクコントローラ(DMAC)142、ローカルメモリ143経由でテクスチャユニット(TU)121にDMA転送される。
テクスチャユニット(TU)121では、バイリニアフィルタ処理を行い、その処理結果をピクセル処理ユニット(PPU)141に出力する。ピクセル処理ユニット(PPU)141では、画像のカラーフォーマット変換を行いローカルメモリ143に書き込みを行う。ピクセル処理ユニット(PPU)141でのカラーフォーマット変換は、各画素の画素値のカラー値であるRGBAをそれぞれ8bitずつで表現しているデータを5bitや6itで表現するといったフォーマット変換である。例えば、テクスチャユニット(TU)121内部は回路削減の目的で、全て8bitで処理を行い、データ処理部100に対する入力画像の型変更はテクスチャユニット(TU)121内部で行うことができる。一方、ピクセル処理ユニット(PPU)141では、本来、出力画像のフォーマット変更を行う構成を有しており、この機能を利用して出力画像についてのフォーマット変換処理を行う。
縮小画像生成処理として実行されるMIPMAP画像生成では、例えば512pixel×512Pixelの元画像から256×256、128×128、...1×1pixelというように、画像サイズを1/2−>1/4−>1/8というように1/2縮小を繰り返し実行して目的の縮小画像を随時生成していく。
ローカルメモリ143には1/2に縮小した画像が格納され、これが随時ダイレクトメモリアクセスクコントローラ(DMAC)142経由で外部メモリに出力される。さらに、ローカルメモリ143に格納された1/2縮小画像は、次の縮小処理に使用する目的でローカルメモリ143に一時的に保存し、この保存画像を利用して随時縮小画像を生成する。これにより、データ処理部外に出力した画像を再入力する必要がなくなり、外部バスバンド幅が削減されて低消費電力が実現される。これらの処理のためのデータフローの設定はADU150によって行われる。
このように、テクスチャユニット(TU)121は縮小画像の生成処理を行う構成を有し、生成した縮小画像をローカルメモリ143を介して外部出力するとともに、ローカルメモリ143に格納された縮小画像を再取得して縮小を繰り返し実行して目的のサイズの縮小画像を生成する。
次に、図14に、ADU150によるデータフロー制御処理について説明する。ADU150は、データ処理部100の構成要素間のデータ転送制御、すなわち、
シェーダエレメント(SE0〜SE3)110〜113、
テクスチャユニット(TU)121、
ラスタライザ(Rasterizer)131、
ピクセル処理ユニット(PPU)141、
ダイレクトメモリアクセスクコントローラ(DMAC)142、
ローカルメモリ143、
これらの各要素間のデータ転送制御を行う。
ADU150は、図14に示すように、ADU1〜4,151〜154の4つの分割ADUから構成される。ADU1,151は、ダイレクトメモリアクセスクコントローラ(DMAC)142およびローカルメモリ143と他のブロックとの接続を制御し、セレクタを2つ(SEL0,SEL1)備えている。
図中のADU1,151内部に示すセレクタSEL0は、ピクセル処理ユニット(PPU)141への入力元を選択する機能を持ち、通常の3DCG描画の際にはADU2,152経由のシェーダエレメント(SE0〜SE3)110〜113の出力を選択してピクセル処理ユニット(PPU)141へ出力し、縮小画像生成の際には、テクスチャユニット(TU)121からの出力を選択してピクセル処理ユニット(PPU)141へ出力する。このセレクト機能はタスク単位で固定の処理であり、設定情報としてのConfigによって設定される。
ADU1,151の図中のセレクタSEL1は、シェーダエレメント(SE0〜SE3)110〜113もしくは、ラスタライザ(Rasterizer)131へ出力するデータをダイレクトメモリアクセスクコントローラ(DMAC)142経由の頂点データから出力するか、ローカルメモリ143に保持している一時保存データにするかを選択する。ここでの一時保存データには、典型的にはテクスチャマッピングを行う場合のテクスチャユニット(TU)121フィルタ後の結果である。本機能は、頂点シェーダ(VS)で頂点を処理しながら、フラグメントシェーダ(FS)でテクスチャを処理するという処理が同時に必要とされるために、シェーダエレメント(SE)のリクエストを元にADU2,152上のバッファの増減により動的に切り替えている。
ADU2,152はシェーダエレメント(SE0〜SE3)110〜113およびラスタライザ(Rasterizer)131へのデータの供給と取得を制御し、セレクタを3つ(SEL2,SEL3,SEL4)備えている。セレクタSEL2は、ADU2,152に供給されたデータをラスタライザ(Rasterizer)131もしくはシェーダエレメント(SE0〜SE3)110〜113のどれに供給するかを選択する。このセレクト機能のうちのラスタライザ(Rasterizer)131への出力選択はタスク単位での設定であるためConfigで設定される。セレクタSEL3は、シェーダエレメント(SE0〜SE3)110〜113への分配を行う。
ADU2,152の詳細構成を図15に示す。図15に示すようにADU2,152では、ダイレクトメモリアクセスクコントローラ(DMAC)142もしくはローカルメモリ143から供給されるデータを保持する複数のデータバッファ401と、シェーダエレメント(SE0〜SE3)110〜113へデータを選択的に入力させるクロスバスイッチ402を持つ。シェーダエレメント(SE0〜SE3)110〜113への出力の選択機能を持つクロスバスイッチ402は、一つの頂点メモリもしくはデータバッファから供給されるデータを、複数のシェーダエレメント(SE)へ分配する。この分配処理は、ADU2,152に対応する設定情報(Config設定)に従って行われる。
例えば図16に示すようにシェーダエレメント(SE0)110と、シェーダエレメント(SE1)111が頂点シェーダ(VS)に設定され、シェーダエレメント(SE)の処理単位として、頂点データと、テクスチャ0データ、テクスチャ1データの計3つのデータが設定される場合、ADU2,152の3つのデータバッファ0、1、2がそれぞれ頂点、テクスチャ0、テクスチャ1を保持し、個々のデータの単位をそれぞれ00,01,02,03および10,11,12,13および20,21,22,23の値で表現する。ADU2,152では、Configの設定によりそれぞれ順番にシェーダエレメント(SE0〜SE3)110〜113へ、これらの3つのデータを1つのデータセットとして供給する。
データ供給は、ラウンドロビン方式、すなわち、SE0−>SE1−>SE0−>・・等、利用するシェーダエレメント(SE0)を順に出力先として選択する。4つのシェーダエレメントを利用する場合は、SE0−>SE1−>SE2−>SE3−>SE0−>SE1−>・・・というように出力先が切り替えられる。
このようにして、シェーダエレメント(SE0〜SE3)110〜113が必要とする処理の単位ごとに供給を行う。ADU2,152のセレクタ(SEL3)は、データの入出力方向が逆にして、シェーダエレメント(SE0〜SE3)110〜113の出力をラウンドロビンで取得してデータバッファに保持する。
図14に示すADU3,153はシェーダエレメントュト(SE〜3)110〜113等からラスタライザ(Rasterizer)131への出力の選択を制御し、セレクタを2つ(SEL5,SEL6)備えている。SEL5は、ダイレクトメモリアクセスクコントローラ(DMAC)142もしくはローカルメモリ143のデータをラスタライザ(Rasterizer)131に入力するケースの選択機能のためSEL2と同じくタスク毎のConfigの設定により決定される。SEL5は、頂点シェーダ(VS)に設定されたシェーダエレメント(SE)からの頂点を取得する機能を持ち、SEL4と同様に頂点シェーダ(VS)に設定されたシェーダエレメント(SE)からラウンドロビンで頂点を取得して取得した順番にラスタライザ(Rasterizer)131へと供給する。
ADU4,154はラスタライザ(Rasterizer)131からの出力をシェーダエレメント(SE0〜SE3)110〜113に供給する制御を行い、セレクタを1つ(SEL7)備えている。ラスタライザ(Rasterizer)131からのフラグメント出力をセレクタSEL7で、フラグメントシェーダ(FS)に設定されたシェーダエレメント(SE)にラウンドロビンで出力を行う。
このように、ADU150は、データ処理部100を構成する要素間のデータ転送制御、すなわち、
シェーダエレメント(SE0〜SE3)110〜113、
テクスチャユニット(TU)121、
ラスタライザ(Rasterizer)131、
ピクセル処理ユニット(PPU)141、
ダイレクトメモリアクセスクコントローラ(DMAC)142、
ローカルメモリ143、
これらの各要素間のデータ転送制御を行う。
すなわち、ADU150は、データ処理部100において実行する処理に応じて動的にデータ転送経路を変更する。この制御により、面積を削減した限定された機能ブロックからなるデータ処理部100を用いて3DCGやJPEG、MPEG−2、MPEG−4、MPEG−4AVC/H.264等の複数の異なる規格に対応する画像CODEC処理を実行することを可能としている。
特に本発明の情報処理装置では、先に図2を参照して説明したタスクリストのアクティブマップの設定により、処理を実行する機能ブロック、処理を実行しない昨日ブロックを指定することが可能となっている。
例えば画像CODEC時には、ラスタライザ(Rasterizer)131およびピクセル処理ユニット(PPU)141は使用しない。また、縮小画像生成時には、シェーダエレメント(SE)およびラスタライザ(Rasterizer)131を使用しない。更には、例えば3DCGの描画の際に負荷が小さい場合に稼働するシェーダエレメント(SE)の数を減らすといった処理も可能な構成である。
制御部としてのタスクコントローラ(TC)101はタスクリストのアクティブマップを解釈し外部のクロック供給コントローラ、もしくは電源供給コントローラにクロックまたは電源を供給しない指令を出す。この結果、機能や負荷に応じて使用しないブロックへのクロックまたは電源を供給しないという電力供給制御が可能となり、利用されない機能ブロックに対する無駄な電力供給を選択的に停止することが可能となり、低消費電力化が実現される。
なお、上述した実施例では、データ処理部100の実行する処理を3DCGと画像CODECとして説明したが、データ処理部100を利用した処理は、これらの3DCG処理や画像CODEC処理に限らず、その他の様々な処理、例えば、CCDまたはCMOSイメージセンサーからの入力をデモザイクする処理や、ノイズフィルタ処理等のカメラ信号処理などに利用することも可能である。さらに、その他野データ処理にも利用可能である。
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。なお、本発明に係る情報処理装置は、3DCGと画像CODECに限らず、その他のデータ処理においても適用可能である。
また、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。例えば、プログラムは記録媒体に予め記録しておくことができる。記録媒体からコンピュータにインストールする他、LAN(Local Area Network)、インターネットといったネットワークを介してプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
以上、説明したように、本発明の一実施例の構成によれば、データ処理を実行する複数のデータ処理ブロックと、データフロー制御を実行するフロー制御部と、データ処理ブロックおよびフロー制御部の設定処理を実行する制御部とを有し、制御部がタスクリストに従って設定情報(Config)を取得し、取得した設定情報に基づいてデータ処理ブロックおよびフロー制御部の設定を行い、様々なデータ処理に適応するデータ処理構成を構築する構成としたので、例えば3DCG処理とCODEC処理など、異なるデータ処理を共通のデータ処理ブロックを適用して実行可能となり、実装面積の削減、さらに製造コストおよび消費電力を削減した情報処理装置が実現される。
本発明の一実施例に係る情報処理装置のデータ処理部の構成例を示す図である。 本発明の一実施例に係る情報処理装置において利用されるタスクリストの一例を示す図である。 本発明の一実施例に係る情報処理装置における設定情報(Config)の設定処理例について説明する図である。 データ処理部100を利用したテクスチャ無しの描画処理を実行する場合のシーケンスについて説明する図である。 データ処理部100を利用した3DCGのテクスチャマッピング有りの典型的な描画処理を行う場合の処理シーケンスについて説明する図である。 データ処理部100を利用した3DCGのテクスチャマッピング有りの典型的な描画処理を行う場合の処理シーケンスについて説明する図である。 データ処理部100を適用して画像CODECのデコード処理を実行する場合の処理シーケンスについて説明する図である。 テクスチャユニット(TU)121の処理について説明する図である。 シェーダエレメント(SE)の構成例について説明する図である。 データ処理部100に設定された4つのシェーダエレメント(SE)110〜113について、頂点シェーダ(VS)1個、フラグメントシェーダ(FS)3個の設定として処理を行う構成例について説明する図である。 全てのシェーダエレメント(SE0〜3)110〜113を頂点シェーダ(VS)に設定した例について説明する図である。 全てのシェーダエレメント(SE0〜3)110〜113をフラグメントシェーダ(FS)に設定した例について説明する図である。 データ処理部100を適用した縮小画像生成時のデータ処理シーケンスについて説明する図である。 ADU150によるデータフロー制御処理について説明する図である。 ADU2,152の詳細構成例を示す図である。 ADU2,152によるデータフロー制御例について説明する図である。 一般的な3DCG、CODECの実行構成を示す図である。 一般的な3DCGのデータ処理構成について説明する図である。 一般的なCODECのデータ処理構成について説明する図である。
符号の説明
11 CPU
12 DSP
13 RAM
14 ROM
15 外部インタフェース
20 メディア処理ブロック
21 JPEG処理ブロック
22 MPEG処理ブロック
23 3DCG処理ブロック
31 メモリ
32 頂点プロセッサ
33 アンパックプロセッサ
34 パックプロセッサ
35 プリミティブアセンブリ
36 Clip,Project Viewport,Cull
37 ラスタライザ
38 フラグメントプロセッサ
39 Per Fragment Operation
40 テクスチャメモリ
41 フレームバッファ処理
42 フレームバッファ
43 読み出し制御部
100 データ処理部
101 タスクコントローラ(TC)
110〜113 シェーダエレメント(Shader Element(SE))
121 テクスチャユニット(Texture Unit(TU))
131 ラスタライザ(Rasterizer)
141 ピクセル処理ユニット(PPU)
142 ダイレクトメモリアクセスコントローラ(DMAC)
143 ローカルメモリ
150 ADU
201 入力部
202 アドレス生成部
203 タグチェック部
204 キャッシュ部
205 フィルタ処理部
206 出力部
211 キャッシュリクエスト部
212 キャッシュ入力部
301 シーケンサ(SEQ)
302 演算実行部
303 入力レジスタ
304 出力レジスタ
305 ロードストアレジスタ
306 テクスチャユニットリクエスト部
401 データバッファ
402 クロスバススイッチ

Claims (25)

  1. 各々が個別のデータ処理を実行する複数のデータ処理ブロックと、
    前記データ処理ブロック間のデータフロー制御を実行するフロー制御部と、
    前記データ処理ブロックおよびフロー制御部の設定処理を実行する制御部と、
    を有し、
    前記制御部は、
    実行するデータ処理対応のタスクリストに従って設定情報(Config)を取得し、取得した設定情報に基づいて各データ処理ブロックおよびフロー制御部の設定を行い、実行するデータ処理に適応するデータ処理構成を構築する構成であることを特徴とする情報処理装置。
  2. 前記タスクリストは、実行するデータ処理に応じて利用するデータ処理ブロックと利用しないデータ処理ブロックの判別データを保持したアクティブマップを含み、
    前記制御部は、
    前記アクティブマップに基づいて、利用しないデータ処理ブロックに対する電力供給を停止させる制御を行う構成であることを特徴とする請求項1に記載の情報処理装置。
  3. 前記制御部は、
    前記複数のデータ処理ブロックの少なくとも一部のデータ処理ブロックを、実行するデータ処理に応じて異なるデータ処理を実行させる設定とする処理を行うことを特徴とする請求項1に記載の情報処理装置。
  4. 前記複数のデータ処理ブロックの少なくとも一部のデータ処理ブロックは、取得命令に応じた様々な処理を実行するデータ処理ブロックとして構成され、前記制御部の設定処理によって異なるデータ処理を行うことが可能な構成を有する構成であることを特徴とする請求項1に記載の情報処理装置。
  5. 前記複数のデータ処理ブロックの少なくとも一部のデータ処理ブロックは、
    3DCG処理における頂点シェーダ(Vertex Shader)処理、およびフラグメントシェーダ(Fragment Shader)処理を選択的に実行可能な構成であることを特徴とする請求項1に記載の情報処理装置。
  6. 前記複数のデータ処理ブロックの少なくとも一部のデータ処理ブロックは、3DCG処理における頂点シェーダ(Vertex Shader)処理、およびフラグメントシェーダ(Fragment Shader)処理を選択的に実行可能な複数のシェーダエレメント(Shader Element)によって構成され、
    前記制御部は、
    前記複数のシェーダエレメント(Shader Element)の一部を頂点シェーダ(Vertex Shader)処理を実行させる設定とし、一部をフラグメントシェーダ(Fragment Shader)処理を実行させる設定とすることを特徴とする請求項1に記載の情報処理装置。
  7. 前記複数のデータ処理ブロックの少なくとも一部のデータ処理ブロックは、3DCG処理における頂点シェーダ(Vertex Shader)処理、およびフラグメントシェーダ(Fragment Shader)処理を選択的に実行可能な複数のシェーダエレメント(Shader Element)によって構成され、
    前記制御部は、
    前記複数のシェーダエレメント(Shader Element)を時分割して、頂点シェーダ(Vertex Shader)処理を実行させる時間と、フラグメントシェーダ(Fragment Shader)処理を実行させる時間を設定する制御を行う構成であることを特徴とする請求項1に記載の情報処理装置。
  8. 前記複数のデータ処理ブロックの少なくとも一部のデータ処理ブロックは、3DCG処理における頂点シェーダ(Vertex Shader)処理、およびフラグメントシェーダ(Fragment Shader)処理、およびCODEC処理におけるマクロブロック処理を選択的に実行可能な構成であることを特徴とする請求項1に記載の情報処理装置。
  9. 前記複数のデータ処理ブロックの少なくとも一部のデータ処理ブロックは、テクスチャ処理を実行するテクスチャユニットであり、
    前記テクスチャユニットは縮小画像の生成処理を行う構成を有し、生成した縮小画像をローカルメモリを介して外部出力するとともに、前記ローカルメモリに格納された縮小画像を再取得して縮小を繰り返し実行して目的のサイズの縮小画像を生成する構成であることを特徴とする請求項1に記載の情報処理装置。
  10. 前記フロー制御部は、転送データを一時格納するデータバッファと、該データバッファの蓄積データを転送先に選択出力するクロスバススイッチを有することを特徴とする請求項1に記載の情報処理装置。
  11. 前記フロー制御部は、データの出力先を出力データに応じて順次切り替える処理を実行する構成であることを特徴とする請求項1に記載の情報処理装置。
  12. 前記フロー制御部は、ラウンドロビン方式に従ってデータの出力先を出力データに応じて順次切り替える処理を実行する構成であることを特徴とする請求項1に記載の情報処理装置。
  13. 情報処理装置において実行する情報処理方法であり、
    前記情報処理装置は、各々が個別のデータ処理を実行する複数のデータ処理ブロックと、前記データ処理ブロック間のデータフロー制御を実行するフロー制御部と、前記データ処理ブロックおよびフロー制御部の設定処理を実行する制御部とを有し、
    前記制御部が、実行するデータ処理対応のタスクリストに従って設定情報(Config)を取得するステップと、
    前記制御部が、前記設定情報に基づいて各データ処理ブロックおよびフロー制御部の設定により実行するデータ処理に適応するデータ処理構成の構築を行う設定ステップと、
    を有することを特徴とする情報処理方法。
  14. 前記タスクリストは、実行するデータ処理に応じて利用するデータ処理ブロックと利用しないデータ処理ブロックの判別データを保持したアクティブマップを含み、
    前記制御部は、前記アクティブマップに基づいて、利用しないデータ処理ブロックに対する電力供給を停止させる制御を行うことを特徴とする請求項13に記載の情報処理方法。
  15. 前記制御部は、前記複数のデータ処理ブロックの少なくとも一部のデータ処理ブロックを、実行するデータ処理に応じて異なるデータ処理を実行させる設定とする処理を行うことを特徴とする請求項13に記載の情報処理方法。
  16. 前記複数のデータ処理ブロックの少なくとも一部のデータ処理ブロックは、取得命令に応じた様々な処理を実行する可変データ処理ブロックであり、
    前記制御部は、
    前記可変データ処理ブロックを、前記タスクリストに基づく設定によって特定のデータ処理を実行させる設定とする制御を行うことを特徴とする請求項13に記載の情報処理方法。
  17. 前記複数のデータ処理ブロックの少なくとも一部のデータ処理ブロックは、
    3DCG処理における頂点シェーダ(Vertex Shader)処理、およびフラグメントシェーダ(Fragment Shader)処理を選択的に実行可能な構成であることを特徴とする請求項13に記載の情報処理方法。
  18. 前記複数のデータ処理ブロックの少なくとも一部のデータ処理ブロックは、3DCG処理における頂点シェーダ(Vertex Shader)処理、およびフラグメントシェーダ(Fragment Shader)処理を選択的に実行可能な複数のシェーダエレメント(Shader Element)によって構成され、
    前記制御部は、前記複数のシェーダエレメント(Shader Element)の一部を頂点シェーダ(Vertex Shader)処理を実行させる設定とし、一部をフラグメントシェーダ(Fragment Shader)処理を実行させる設定とすることを特徴とする請求項13に記載の情報処理方法。
  19. 前記複数のデータ処理ブロックの少なくとも一部のデータ処理ブロックは、3DCG処理における頂点シェーダ(Vertex Shader)処理、およびフラグメントシェーダ(Fragment Shader)処理を選択的に実行可能な複数のシェーダエレメント(Shader Element)によって構成され、
    前記制御部は、前記複数のシェーダエレメント(Shader Element)を時分割して、頂点シェーダ(Vertex Shader)処理を実行させる時間と、フラグメントシェーダ(Fragment Shader)処理を実行させる時間を設定する制御を行うことを特徴とする請求項13に記載の情報処理方法。
  20. 前記複数のデータ処理ブロックの少なくとも一部のデータ処理ブロックは、3DCG処理における頂点シェーダ(Vertex Shader)処理、およびフラグメントシェーダ(Fragment Shader)処理、およびCODEC処理におけるマクロブロック処理を選択的に実行可能な構成であることを特徴とする請求項13に記載の情報処理方法。
  21. 前記複数のデータ処理ブロックの少なくとも一部のデータ処理ブロックは、テクスチャ処理を実行するテクスチャユニットであり、
    前記テクスチャユニットは縮小画像の生成処理を行い、生成した縮小画像をローカルメモリを介して外部出力するとともに、前記ローカルメモリに格納された縮小画像を再取得して縮小を繰り返し実行して目的のサイズの縮小画像を生成することを特徴とする請求項13に記載の情報処理方法。
  22. 前記フロー制御部は、
    データバッファに転送データを一時格納し、クロスバススイッチにより、前記データバッファの蓄積データを転送先に選択出力する処理を実行することを特徴とする請求項13に記載の情報処理方法。
  23. 前記フロー制御部は、データの出力先を出力データに応じて順次切り替える処理を実行することを特徴とする請求項13に記載の情報処理方法。
  24. 前記フロー制御部は、ラウンドロビン方式に従ってデータの出力先を出力データに応じて順次切り替える処理を実行することを特徴とする請求項13に記載の情報処理方法。
  25. 情報処理装置において情報処理を実行させるコンピュータ・プログラムであり、
    前記情報処理装置は、各々が個別のデータ処理を実行する複数のデータ処理ブロックと、前記データ処理ブロック間のデータフロー制御を実行するフロー制御部と、前記データ処理ブロックおよびフロー制御部の設定処理を実行する制御部とを有し、
    前記制御部に、実行するデータ処理対応のタスクリストに従って設定情報(Config)を取得させるステップと、
    前記制御部に、前記設定情報に基づいて各データ処理ブロックおよびフロー制御部の設定により実行するデータ処理に適応するデータ処理構成の構築を行わせる設定ステップと、
    を有することを特徴とするコンピュータ・プログラム。
JP2007145976A 2007-05-31 2007-05-31 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム Expired - Fee Related JP4900051B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007145976A JP4900051B2 (ja) 2007-05-31 2007-05-31 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
US12/129,816 US8624896B2 (en) 2007-05-31 2008-05-30 Information processing apparatus, information processing method and computer program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007145976A JP4900051B2 (ja) 2007-05-31 2007-05-31 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム

Publications (3)

Publication Number Publication Date
JP2008299662A true JP2008299662A (ja) 2008-12-11
JP2008299662A5 JP2008299662A5 (ja) 2010-03-25
JP4900051B2 JP4900051B2 (ja) 2012-03-21

Family

ID=40089771

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007145976A Expired - Fee Related JP4900051B2 (ja) 2007-05-31 2007-05-31 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム

Country Status (2)

Country Link
US (1) US8624896B2 (ja)
JP (1) JP4900051B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011086235A (ja) * 2009-10-19 2011-04-28 Fujitsu Ltd 画像処理装置、画像処理方法および画像処理プログラム
WO2012147364A1 (en) * 2011-04-28 2012-11-01 Digital Media Professionals Inc. Heterogeneous graphics processor and configuration method thereof

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8548061B2 (en) * 2008-08-05 2013-10-01 Panasonic Corporation Image decoding apparatus and image decoding method
US9378560B2 (en) * 2011-06-17 2016-06-28 Advanced Micro Devices, Inc. Real time on-chip texture decompression using shader processors
US20140205012A1 (en) * 2013-01-21 2014-07-24 Mediatek Inc. Method and apparatus using software engine and hardware engine collaborated with each other to achieve hybrid video encoding
JP6129574B2 (ja) * 2013-02-13 2017-05-17 ルネサスエレクトロニクス株式会社 画像処理装置
US10057590B2 (en) 2014-01-13 2018-08-21 Mediatek Inc. Method and apparatus using software engine and hardware engine collaborated with each other to achieve hybrid video encoding
US20170243375A1 (en) * 2016-02-18 2017-08-24 Qualcomm Incorporated Multi-step texture processing with feedback in texture unit
KR20180071767A (ko) 2016-12-20 2018-06-28 삼성전자주식회사 큐브 맵을 텍스쳐링하기 위한 LOD(level of detail)를 결정하는 방법 및 장치

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05266201A (ja) * 1992-03-18 1993-10-15 Hitachi Ltd グラフィックス並列処理方法及びその装置
JP2004118713A (ja) * 2002-09-27 2004-04-15 Sony Corp 画像処理装置
WO2007049610A1 (ja) * 2005-10-25 2007-05-03 Mitsubishi Electric Corporation 画像処理装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6487623B1 (en) * 1999-04-30 2002-11-26 Compaq Information Technologies Group, L.P. Replacement, upgrade and/or addition of hot-pluggable components in a computer system
US20060100953A1 (en) * 2004-11-10 2006-05-11 Downs Haskell E Ii Data processing flow chart control system
GB0605554D0 (en) 2006-03-20 2006-04-26 Boc Group Plc Gas supply apparatus

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05266201A (ja) * 1992-03-18 1993-10-15 Hitachi Ltd グラフィックス並列処理方法及びその装置
JP2004118713A (ja) * 2002-09-27 2004-04-15 Sony Corp 画像処理装置
WO2007049610A1 (ja) * 2005-10-25 2007-05-03 Mitsubishi Electric Corporation 画像処理装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011086235A (ja) * 2009-10-19 2011-04-28 Fujitsu Ltd 画像処理装置、画像処理方法および画像処理プログラム
WO2012147364A1 (en) * 2011-04-28 2012-11-01 Digital Media Professionals Inc. Heterogeneous graphics processor and configuration method thereof
US9619918B2 (en) 2011-04-28 2017-04-11 Digital Media Professionals Inc. Heterogenious 3D graphics processor and configuration method thereof

Also Published As

Publication number Publication date
US20080301681A1 (en) 2008-12-04
JP4900051B2 (ja) 2012-03-21
US8624896B2 (en) 2014-01-07

Similar Documents

Publication Publication Date Title
JP4900051B2 (ja) 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
CN107250996B (zh) 用于存储器分级体系的压实的方法和装置
US10719447B2 (en) Cache and compression interoperability in a graphics processor pipeline
TWI646502B (zh) 映射多重速率著色至單一程式之技術
CN106575449B (zh) 仅位置着色管线
US10417817B2 (en) Supersampling for spatially distributed and disjoined large-scale data
US8670613B2 (en) Lossless frame buffer color compression
US20140153635A1 (en) Method, computer program product, and system for multi-threaded video encoding
US9406149B2 (en) Selecting and representing multiple compression methods
CA2826416C (en) Rasterizer packet generator for use in graphics processor
US20140028703A1 (en) Render-assisted compression for remote graphics
TWI590198B (zh) 用於有效率的紋理壓縮之方法、處理器及機器可讀媒體
CN106796713B (zh) Msaa中使用索引位进行压缩
TWI609350B (zh) 分群調色板壓縮技術
US20110261885A1 (en) Method and system for bandwidth reduction through integration of motion estimation and macroblock encoding
CN106575443B (zh) 用于存储多点采样图形保真的分层索引位的方法及其装置
US11978234B2 (en) Method and apparatus of data compression
US8633928B2 (en) Reducing the bandwidth of sampler loads in shaders
JP2008299475A (ja) 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
Pieters et al. Performance evaluation of H. 264/AVC decoding and visualization using the GPU
US8488890B1 (en) Partial coverage layers for color compression
US20230196624A1 (en) Data processing systems
Sun et al. CFU: Multi-purpose configurable filtering unit for mobile multimedia applications on graphics hardware
CN109219832B (zh) 用于帧缓冲器压缩的方法和设备

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100208

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100208

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110711

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110719

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110909

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111206

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111219

R151 Written notification of patent or utility model registration

Ref document number: 4900051

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150113

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees