(57)【要約】【課題】プログラムサイズの増大を抑え、多数の画素フォーマットの画像データをフレームバッファに描画する。【解決手段】データ処理システム（１）は、データ処理ユニット（２）と、指定フォーマットと既定フォーマットに対応する変換情報を有する第１変換テーブル（１７）と、逆変換情報を有する第２変換テーブル（１８）と、画素演算された画像データが描画されるフレームバッファ（１１）と、を有する。データ処理ユニットは、第１変換テーブルからリードした変換情報を用いて、指定フォーマットの画像データを既定フォーマットに変換し（Ｓ３〜Ｓ１０）、変換した画像データを用いて画素演算する（Ｓ２２）。データ処理ユニットは、第２変換テーブルからリードした逆変換情報を用いて、画素演算の結果とされる画像データのフォーマットを指定フォーマットに逆変換し（Ｓ２３〜Ｓ３０）、フレームバッファに描画する（Ｓ３２）。【選択図】図１
2008176439.tif 000002
【特許請求の範囲】
【請求項１】
画素の要素毎にビット数が規定された複数の画素フォーマットの中から選択された一つの画素フォーマットの指定を入力する処理と、
前記指定された画素フォーマットを既定の画素フォーマットに変換するための変換テーブルを選択する処理と、
前記選択した変換テーブルを用いて、前記指定された画素フォーマットの画像データを前記既定の画素フォーマットの画像データに変換する変換処理と、
前記変換された画像データに対して画素演算を行う演算処理と、
前記既定の画素フォーマットを前記指定された画素フォーマットに変換するための逆変換テーブルを選択する処理と、
前記選択した逆変換テーブルを用いて、前記演算処理が行われた画像データを前記既定の画素フォーマットから前記指定された画素フォーマットに変換する逆変換処理と、
前記逆変換処理が行われた画像データをフレームバッファに描画する描画処理と、を含む描画方法。
【請求項２】
前記複数の画素フォーマットは、前記既定の画素フォーマットの画素の要素毎に規定されたビット数以下の範囲で規定されたビット数を有する請求項１記載の描画方法。
【請求項３】
前記指定された画素フォーマットの画像データの少なくとも１つの画素の要素の値が、他の画素の要素の値と異なる場合には、前記変換処理は、前記指定された画素フォーマットの画像データの１画素毎に行われる請求項１又は請求項２記載の描画方法。
【請求項４】
前記指定された画素フォーマットの画像データの全ての画素の要素の値が各要素毎に同一である場合には、前記変換処理は、前記指定された画素フォーマットの画像データに対して１回行われる請求項１又は請求項２記載の描画方法。
【請求項５】
前記演算処理は、変換された一の画像データと変換された他の画像データを画素単位でブレンドする処理を含み、
前記ブレンドする処理は、画素単位で選択的に省略可能である請求項１乃至４の何れか１項記載の描画方法。
【請求項６】
画像データに対して既定のフォーマットで画素演算を行うデータ処理ユニットと、
前記データ処理ユニットが参照するデータテーブルが形成されたデータメモリと、
画素演算された画像データが描画されるフレームバッファと、を有し、
前記データテーブルは、指定されたフォーマットを既定のフォーマットに変換するための複数の変換情報と、前記既定のフォーマットを前記指定されたフォーマットに変換するための複数の逆変換情報とを有し、
前記データ処理ユニットは、前記指定されたフォーマットと前記既定のフォーマットに対応する前記変換情報と前記逆変換情報とを前記データテーブルからリードし、前記リードした変換情報を用いて前記指定されたフォーマットの画像データを変換し、前記変換した画像データを用いて画素演算し、前記リードした逆変換情報を用いて画素演算の結果とされる画像データのフォーマットを前記指定されたフォーマットに逆変換し、前記逆変換した画像データを前記フレームバッファに描画するデータ処理システム。
【請求項７】
前記指定されたフォーマットは、前記既定のフォーマットの画素の要素毎に規定されたビット数以下の範囲で規定されたビット数を有する請求項６記載のデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、描画方法及びデータ処理システムに係り、特に指定された画素フォーマットの画像データをフレームバッファに描画する描画方法及びデータ処理システムに適用して有効な技術に関する。
【背景技術】
【０００２】
画像データの画素フォーマットは、画素の要素毎に規定されたビット数を有しており、多数の種類が存在する。画像データの画素の要素としては、例えば不透明度を示すＡ要素、光の３原色として知られている赤色の諧調を示すＲ要素、緑色の諧調を示すＧ要素、青色の諧調を示すＢ要素がある。特許文献１には、１画素当たり８ビットの精度をフレームバッファが持つ場合に使われるインデックスカラーフォーマットと、１画素当たり１６ビット（ＲＧＢそれぞれ５ビット、６ビット、５ビット）の精度をフレームバッファが持つ場合に使われるＲＧＢカラーフォーマットとをサポートする画像処理装置が開示されている。
【０００３】
【特許文献１】特開２０００−２００４４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明者は、２次元グラフィックスの描画を可能する描画プログラムで、多数の画素フォーマットをサポートする手段について検討した。ここで、画素フォーマットをサポートするとは、その画素フォーマットの画像データをフレームバッファに描画可能にすることをいう。描画プログラムにおいて、新たな画素フォーマットをサポートするには、その都度、その新たな画素フォーマットに対応した描画プログラムを作成しなければならず、プログラムサイズが増大してしまうという問題があった。特に組込み用途ではプログラムメモリの容量が限られており、結果として、多数の画素フォーマットをサポートする描画プログラムを作成することは困難であった。
【０００５】
特許文献１では、各種アプリケーションプログラム独自のカラーフォーマットの画像データを、インデックスカラーフォーマット又はＲＧＢカラーフォーマットに色変換テーブルを用いて変換し、変換後の画像データをフレームバッファに描画している。しかしながら、特許文献１には、色変換テーブルについての具体的な記載はなく、さらに、変換後の画像データの画素フォーマットは、インデックスカラーフォーマット又はＲＧＢカラーフォーマットに限定されている。
【０００６】
本発明の目的は、プログラムサイズの増大を抑え、多数の画素フォーマットの画像データをフレームバッファに描画することができる描画方法及びデータ処理システムを提供することにある。
【０００７】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００８】
本願において開示される発明のうち代表的なものについて簡単に説明すれば下記のとおりである。
【０００９】
即ち、データ処理システムにおいて、データ処理ユニットは、データテーブルからリードした変換情報を用いて画像データのフォーマットを変換し、既定のフォーマットで画素演算し、データテーブルからリードした逆変換情報を用いて画素演算の結果を逆変換して、指定されたフォーマットの画像データとする。この変換情報と逆変換情報を用いることにより、プログラムサイズの増大を抑え、指定されたフォーマットの画像データをフレームバッファに描画することが可能になる。
【発明の効果】
【００１０】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００１１】
すなわち、プログラムサイズの増大を抑え、多数の画素フォーマットの画像データをフレームバッファに描画することができる。
【発明を実施するための最良の形態】
【００１２】
１．代表的な実施の形態
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１３】
〔１〕本発明の代表的な実施の形態に係る描画方法は、入力する処理（Ｓ１）と、選択する処理（Ｓ４，Ｓ６，Ｓ８，Ｓ１０）と、変換処理（Ｓ４，Ｓ６，Ｓ８，Ｓ１０）と、演算処理（Ｓ２２）と、選択する処理（Ｓ２４，Ｓ２６，Ｓ２８，Ｓ３０）と、逆変換処理（Ｓ２４，Ｓ２６，Ｓ２８，Ｓ３０）と、描画処理（Ｓ３２）とを含む。入力する処理は、画素の要素毎にビット数が規定された複数の画素フォーマットの中から選択された一つの画素フォーマットの指定を入力する。選択する処理は、前記指定された画素フォーマットを既定の画素フォーマットに変換するための変換テーブル（１７）を選択する。変換処理は、前記選択した変換テーブルを用いて、前記指定された画素フォーマットの画像データを前記既定の画素フォーマットの画像データに変換する。演算処理は、前記変換された画像データに対して画素演算を行う。選択する処理は、前記既定の画素フォーマットを前記指定された画素フォーマットに変換するための逆変換テーブル（１８）を選択する。逆変換処理は、前記選択した逆変換テーブルを用いて、前記演算処理が行われた画像データを前記既定の画素フォーマットから前記指定された画素フォーマットに変換する。描画処理は、前記逆変換処理が行われた画像データをフレームバッファ（１１）に描画する。
【００１４】
上記より、複数の画素フォーマットの中から任意の画素フォーマットが指定されたとしても、指定された画素フォーマットに対応した変換テーブルを選択して変換処理を行えば、画素演算は、常に既定の画素フォーマットで行われることになる。つまり、画素演算を実行させるためのプログラムは、既定の画素フォーマットだけをサポートすればよく、プログラムサイズの増大を抑えることができる。画素演算が行われた画像データは、対応した逆変換テーブルを選択して逆変換処理を行えば、指定された画素フォーマットとされる。このため、描画処理では、常に指定された画素フォーマットの画像データがフレームバッファに描画されることになる。変換テーブルと逆変換テーブルを選択して、変換処理と逆変換処理を実行させるためのプログラムは、プログラムサイズが小さくて済むので、プログラムサイズの増大を抑えることができる。これにより、プログラムサイズの増大を抑え、多数の指定された画素フォーマットの画像データをフレームバッファに描画することができる。
【００１５】
具体的な一つの形態として、前記複数の画素フォーマットは、前記既定の画素フォーマットの画素の要素毎に規定されたビット数以下の範囲で規定されたビット数を有する。上記より、指定の画素フォーマットの画素の要素毎に規定されたビット数の値は、変換テーブルにより同一又は大きなビット数とされ、既定の画素フォーマットの画素の要素毎に規定されたビット数の値に変換される。既定の画素フォーマットの画素の要素毎に規定されたビット数の値は、逆変換テーブルにより同一又は小さなビット数とされ、指定の画素フォーマットの画素の要素毎に規定されたビット数の値に変換される。
【００１６】
別の形態として、前記指定された画素フォーマットの画像データの少なくとも１つの画素の要素の値が、他の画素の要素の値と異なる場合には、前記変換処理は、前記指定された画素フォーマットの画像データの１画素毎に行われる。上記より、指定された画素フォーマットの画像データが単一色でない例えばテクスチャデータである場合に、テクスチャデータの１画素毎の各要素の値を、既定の画素フォーマットの画素の要素毎に規定されたビット数の値に変換できる。
【００１７】
更に別の形態として、前記指定された画素フォーマットの画像データの全ての画素の要素の値が各要素毎に同一である場合には、前記変換処理は、前記指定された画素フォーマットの画像データに対して１回行われる。上記より、指定された画素フォーマットの画像データが単一色である場合には、画像データの１画素に対してのみ変換処理を行うだけでよく、他の画素に対して変換処理を行うことを要しない。
【００１８】
更に別の形態として、前記演算処理は、変換された一の画像データと変換された他の画像データを画素単位でブレンドする処理を含む。前記ブレンドする処理は、画素単位で選択的に省略可能である。上記より、ブレンドする処理を省略すれば、他の画像データとして、例えば指定された画素フォーマットの画像データがフレームバッファに下地として格納されていた場合であっても、この下地の画像データの１画素に対して変換処理を行うことを要しない。
【００１９】
〔２〕本発明の代表的な実施の形態に係るデータ処理システム（１）は、画像データに対して既定のフォーマットで画素演算を行うデータ処理ユニット（４）と、前記データ処理ユニットが参照するデータテーブル（１７，１８）が形成されたデータメモリ（１０）と、画素演算された画像データが描画されるフレームバッファ（１１）と、を有する。前記データテーブルは、指定されたフォーマットを既定のフォーマットに変換するための複数の変換情報と、前記既定のフォーマットを前記指定されたフォーマットに変換するための複数の逆変換情報とを有する。前記データ処理ユニットは、前記指定されたフォーマットと前記既定のフォーマットに対応する前記変換情報と前記逆変換情報とを前記データテーブルからリードし、前記リードした変換情報を用いて前記指定されたフォーマットの画像データを変換する。データ処理ユニットは、前記変換した画像データを用いて画素演算し、前記リードした逆変換情報を用いて画素演算の結果とされる画像データのフォーマットを前記指定されたフォーマットに逆変換し、前記逆変換した画像データを前記フレームバッファに描画する。
【００２０】
上記より、データ処理ユニットは、複数の変換情報と逆変換情報を有するデータテーブルをリードすることで、画素演算を既定の画素フォーマットで行い、さらに、画素演算の結果を指定された画素フォーマットとし、フレームバッファに描画を行うことができる。つまり、データ処理ユニットは、複数の変換情報と逆変換情報に対応した多数の指定されたフォーマットをサポートすることができる。また、データテーブルは、データメモリに形成されているので、プログラムサイズは増大しない。その結果、データ処理ユニットが実行するプログラムのプログラムサイズの増大を抑えることができる。
【００２１】
具体的な一つの形態として、前記指定されたフォーマットは、前記既定のフォーマットの画素の要素毎に規定されたビット数以下の範囲で規定されたビット数を有する。上記より、指定の画素フォーマットには、多数の画素フォーマットが存在することになる。
【００２２】
２．実施の形態の説明
次に、実施の形態について更に詳述する。
【００２３】
《実施形態１》
図１には、本発明の実施形態１に係るデータ処理システムの一例が示される。データ処理システム１は、データプロセッサ２と、外部メモリ３等を備える。データプロセッサ２は、中央処理装置（ＣＰＵ）４と、ポート（ＰＯＲＴ）５と、データバス・アドレスバス等のバス制御を行うバスステートコントローラ（ＢＳＣ）６とを有し、それぞれデータバス・アドレスバスからなる内部バス（ＩＢＵＳ）７を介して接続されている。データプロセッサ２は、バスステートコントローラ６を介して、外部メモリバス（ＥＸＭＢＵＳ）８を経由して外部メモリ３に接続されている。外部メモリ３は、例えばプログラムメモリ部９、データメモリ部１０、フレームバッファ１１及びワーク領域１２を備えている。図１に例示したデータ処理システム１はグラフィックスシステムであり、このために描画処理を行う部分が代表的に示されているが、フレームバッファ１１に描画されたグラフィックスデータは、図示を省略する表示コントローラを介してディスプレイに表示制御される。
【００２４】
プログラムメモリ部９には、ＣＰＵ４が実行する各種プログラムが格納され、ここでは一例として、２次元グラフィックスの描画を可能にする描画プログラムに含まれる画素フォーマット変換プログラム１３と、描画座標生成プログラム１４と、描画色演算プログラム１５と、画素描画プログラム１６とが示される。データメモリ部１０には、ＣＰＵ４が画素フォーマット変換プログラム１３を実行するときに参照する第１変換テーブル１７と第２変換テーブル１８が形成されている。フレームバッファ１１は、詳細は後述するが、画素演算の結果とされる指定された画素フォーマットの画像データが描画される描画先領域とされる。ワーク領域１２は、上記各プログラム１３〜１６の演算結果等を一時的に保持する領域とされる。各プログラム１３〜１６が制御する各処理についての詳細は後述する。
【００２５】
第１変換テーブル１７は、図４〜図１０に例示されるように、ｎビット（ｎ＝１〜７）から８ビットへの変換情報を有する複数の変換テーブルを含む。複数の変換テーブルは、図中、左欄に画素要素のビット数（ｎ＝１〜７）に対応する値が示され、右欄に８ビットの画素要素が採り得る値のうち、左欄の値に対応させる値が示されている。一例として、図９に示されている変換テーブルでは、６ビットの変換情報の値０を８ビットの変換情報の値０に対応させ、６ビットの変換情報の値６３を８ビットの変換情報の値２５５に対応させている。そして、６ビットの変換情報の値１〜６２は、８ビットの変換情報の値にそれぞれ等間隔になるように対応させている。但し、ここでの左欄と右欄の対応は一例であって、６ビットの変換情報の値は８ビットの変換情報の値に等間隔で対応していなくてもよい。また、変換テーブルでの変換情報の値は、便宜上１０進数で表記したが、データメモリ部１０上では２進数で格納されている。
【００２６】
第２変換テーブル１８は、図１１〜図１７に例示されるように、８ビットからｎビット（ｎ＝１〜７）への逆変換情報を有する複数の逆変換テーブルを含む。複数の逆変換テーブルは、図中、右欄に画素要素のビット数（ｎ＝１〜７）に対応する値が示され、左欄には右欄の値に対応して８ビットの画素要素が採り得る値の範囲が示される。一例として、図１６に示されている逆変換テーブルでは、８ビットの変換情報の値の範囲０−３を６ビットの変換情報の値０に対応させ、８ビットの変換情報の値の範囲２５２−２５５を６ビットの変換情報の値６３に対応させている。そして、８ビットの変換情報の値の範囲４−２５１は、６ビットの変換情報の値１〜６２に対応させている。
【００２７】
ここで、画像データの画素フォーマットについて説明する。画像データの画素フォーマットは、画素要素毎に規定されたビット数を有しており、多数の種類が存在している。一般的な画素フォーマットとしては、例えばＡ要素、Ｒ要素、Ｇ要素及びＢ要素のビット数が全て８ビットであるＡＲＧＢ８８８８カラーフォーマット（以下、単にＡＲＧＢ８８８８と記す）や、Ｒ要素が５ビット、Ｇ要素が６ビット、Ｂ要素が５ビットであるＲＧＢ５６５等が挙げられる。図１のデータ処理システム１が画像処理の対象とする画像データの画素フォーマットは、指定情報で指定された任意のフォーマット（以下、指定フォーマットと記す）であり、これに応じてＣＰＵ４は例えばＡＲＧＢ８８８８の既定の画素フォーマット（以下、既定フォーマットと記す）で画素演算を行う。この画素演算による演算結果は、指定フォーマットに逆変換されてフレームバッファ１１に格納される。指定情報は、ポート５を介してデータプロセッサ２に入力され、指定フォーマットの画素要素Ａ，Ｒ，Ｇ，Ｂのビット数を示す情報（ＰＡ、ＰＲ、ＰＧ、ＰＢという）を含む。指定フォーマットは、既定フォーマットの画素要素毎に規定されたビット数以下の範囲で規定されたビット数を有しており、複数の画素フォーマットの中から一つが指定される。
【００２８】
ＣＰＵ４の最小データ処理単位は例えばバイトであり、メモリアクセスやオペランドアクセスにはバイトアドレスを用いる。指定情報で指定された画素フォーマットの画像データについても上記最小データ処理単位に整合させる必要がある。例えば指定情報で指定される画素フォーマットの画素要素のビット数ＰＡ＋ＰＲ＋ＰＧ＋ＰＢがバイト以下の場合には、画素要素を順に最上位側から詰めた１画素１バイトのデータとして画素データが扱われる。また、上記ビット数ＰＡ＋ＰＲ＋ＰＧ＋ＰＢが１バイトを超えて２バイト以下の場合には、画素要素を順に最上位側から詰めた１画素２バイト（１ワード）のデータとして画素データが扱われる。さらに、上記ビット数ＰＡ＋ＰＲ＋ＰＧ＋ＰＢが２バイトを超えて４バイト以下の場合には、画素要素を順にバイト単位で最上位側から詰めた１画素４バイト（１ロングワード）のデータとして画素データが扱われる。特に説明しない限り、データ処理システム１の内部において、画素データは上記バイト、ワード又はロングワード単位で処理され、いずれの単位で処理されるかは上記指定情報の内容によって決定され、画素要素の切り出しも当該情報に基づいて行われるものとする。
【００２９】
次に、データ処理システム１による描画方法の一例を図２，３に基づいて説明する。ここでは例えば、フレームバッファ１１に格納されている画像データをリードし、リードした画像データに特定色でアルファ・ブレンディング処理等を行い、その結果をフレームバッファ１１に書き戻す処理について説明する。外部から描画コマンドにより当該処理が指示されるとき、指定情報によって画素フォーマットが指定される（Ｓ１）。この指定フォーマットに応じて画素データは、上記バイト、ワード又はロングワードのいずれの単位で処理されるかが決定される。次に、アルファ・ブレンディング処理等に用いる特定色（以下、塗り潰し色という）が指定されると、その指定された塗り潰し色の画素データを各画素要素Ａ，Ｒ，Ｇ，Ｂ毎に異なるバイトの最上位側から詰めるように、ビット配列を変更する（Ｓ２）。これは、各画素要素を８ビットとする既定フォーマットへのフォーマット変換のための前処理とされる。
【００３０】
次に、塗り潰し色の各画素要素に対して順次そのビット数が８ビットであるか否かが判定され（Ｓ３、Ｓ５、Ｓ７、Ｓ９）、８ビットでなければ、その画素要素のビット数に対応する変換テーブルを参照して、当該画素要素のビット数が８ビットに変換される（Ｓ４、Ｓ６、Ｓ８、Ｓ１０）。一例として、ＲＧＢ６６６が指定フォーマットであれば、Ａ要素のビット数は０であり、８ビットでもＡ要素の値は０となるから、変換テーブル自体が不要とされ、ステップＳ４では変換テーブルは選択されない。また、Ｒ要素、Ｇ要素、Ｂ要素はビット数６であるから、ステップＳ６、８、１０でｎ（ｎ＝６）ビット−８ビット変換テーブル（図９参照）が選択される。このｎ（ｎ＝６）ビット−８ビット変換テーブルを用いた指定フォーマットから既定フォーマットへの変換について説明する。例えば、６ビットの値「１０００００」、便宜上１０進数での「３２」を、８ビットの値に変換する場合には、選択された変換テーブルを参照すれば、６ビットの値「１０００００」を、１０進数での「１３０」、即ち８ビットの値「１０００００１０」に対応させることができる。
【００３１】
つまり、ステップＳ３〜Ｓ１０によれば、ＣＰＵ４がプログラムメモリ部９から画素フォーマット変換プログラム１３をリードしてビット変換アルゴリズムを実行し、最適な変換テーブルを参照することで、指定フォーマットの塗り潰し色の画素データを既定フォーマットの画素データに変換できる。ここで、最適な変換テーブルとは、その左欄（図４〜図１０参照）に示した画素要素のビット数（ｎ＝１〜７）とＰＡ、ＰＲ、ＰＧ、ＰＢがそれぞれ一致した変換テーブルをいう。ビット変換アルゴリズムとは、左欄に示されるｎビットの対応する２進数の値（図中、１０進数で表記）を、この２進数の値に対応する右欄に示される８ビットの２進数の値（図中、１０進数で表記）に置き換えて、ｎビットの値を８ビットの値に変換することをいう。そして、各画素要素毎の８ビットの値は、ワーク領域１２に各画素要素毎に格納される。
【００３２】
次に、ＣＰＵ４は、プログラムメモリ部９から描画座標生成プログラム１４をリードして実行し、フレームバッファ１１に描画する描画図形を構成する画素の座標を算出する（Ｓ１１）。そして、ＣＰＵ４は、算出した画素の座標をワーク領域１２に格納する。ステップＳ１１では、例えば描画図形の輪郭を形成する画素の座標だけを算出し、内部の画素の座標についてはｘ座標、ｙ座標をインクリメントすることで得る。
【００３３】
以下、ＣＰＵ４は、図３に例示するステップＳ１２〜Ｓ３３で画素描画ループを１画素毎に実行する。まず、ステップＳ１３では、ステップＳ１１で座標が算出された１つの画素に対して、画素演算の一例として挙げるラスタオペレーション（ＲＯＰ）による論理演算やアルファ・ブレンディングによる混合比を用いた色演算等の混合処理を行うか否かを判定する。混合処理を行うための前処理（Ｓ１４〜Ｓ２１）では、混合の対象とされるステップＳ４、Ｓ６、Ｓ８、Ｓ１０で変換された既定フォーマットの画像データと、フレームバッファ１１に格納されていた例えば下地の画像データとで、画素フォーマットを一致させる必要がある。下地の画像データは、上記指定情報によって１画素毎の各画素要素Ａ，Ｒ，Ｇ，Ｂのビット数と、アドレスとが指定されている。これにより、上記既定フォーマットの画像データと、下地の画像データとを混合処理の対象として対応付けることができる。また、下地の画像データは、単一色とは限定されないので、混合処理を伴う画素描画ループは、１画素毎に実行されることになる。
【００３４】
次に、下地の画像データの各画素要素Ａ，Ｒ，Ｇ，Ｂのビット数が上記指定情報によって指定された８ビットでなければ（Ｓ１４、Ｓ１６、Ｓ１８、Ｓ２０で「Ｆ」）、ＣＰＵ４は、その各画素要素のビット数に対応する最適な変換テーブルを参照して、上記ビット変換アルゴリズムに従う。そして、下地の画像データの各画素要素の値を８ビットの値に変換する（Ｓ１５、Ｓ１７、Ｓ１９、Ｓ２１）。これにより、既定フォーマットの下地の画像データが生成される。そして、ＣＰＵ４は、８ビットの値に変換した各要素の値をワーク領域１２に各要素毎に格納する。一方、ビット数が８ビットであれば（Ｓ１４、Ｓ１６、Ｓ１８、Ｓ２０で「Ｔ」）、その画素要素に対して上記ビット変換アルゴリズムを省略できる。
【００３５】
次に、ＣＰＵ４は、プログラムメモリ部９から描画色演算プログラム１５をリードして実行することで、ワーク領域１２から既定フォーマットの塗り潰し色の１画素と、既定フォーマットの下地の１画素とをリードし、これらの画素に対して混合処理を行う（Ｓ２２）。具体的には、混合処理では、Ａ要素の値についてはステップＳ４で得た値とステップＳ１５で得た値とを演算し、Ｒ要素の値についてはステップＳ６で得た値とステップＳ１７で得た値とを演算する。また、Ｇ要素の値についてはステップＳ８で得た値とステップＳ１９で得た値とを演算し、Ｂ要素の値についてはステップＳ１０で得た値とステップＳ２１で得た値とを演算する。つまり、ステップＳ２２での混合処理は、常に既定フォーマットで行われることになる。このため、描画色演算プログラム１５は、既定フォーマットだけをサポートすればよいから、プログラムサイズの増大を抑えることができる。一方、ステップＳ１３で画素に対して混合処理を行わない場合には、上記ステップＳ１４〜Ｓ２２を省略することができる。そして、ＣＰＵ４は、ステップＳ２２による混合処理の演算結果をワーク領域１２に各画素要素毎に格納する。
【００３６】
ところで、データ処理システム１では、上記指定情報で指定された指定フォーマットの画像データを画像処理の対象としている。そこで、ＣＰＵ４は、プログラムメモリ部９から画素フォーマット変換プログラム１３をリードして実行し、演算結果とされる既定フォーマットの画像データを指定フォーマットに逆変換する処理を行う。即ち、ＣＰＵ４は、上記指定情報で指定された指定フォーマットの各画素要素Ａ，Ｒ，Ｇ，Ｂのビット数が８ビットでなければ（Ｓ２３、Ｓ２５、Ｓ２７、Ｓ２９で「Ｆ」）、その画素要素のビット数に対応する逆変換テーブルを参照し、当該画素要素の値を指定フォーマットの各画素要素のビット数の値に変換する（Ｓ２４、Ｓ２６、Ｓ２８、Ｓ３０）。一例として、ＲＧＢ６６６が指定フォーマットであれば、Ａ要素のビット数は０であり、８ビットでもＡ要素の値は０となるから、逆変換テーブル自体が不要とされ、ステップＳ２４では逆変換テーブルは選択されない。また、Ｒ要素、Ｇ要素、Ｂ要素はビット数６であるから、ステップＳ２６、２８、３０で８ビット−ｎ（ｎ＝６）ビット変換テーブル（図１６参照）が選択される。この８ビット−ｎ（ｎ＝６）ビット変換テーブルを用いた既定フォーマットから指定フォーマットへの変換について説明する。例えば、８ビットの値「１０００００１０」、便宜上１０進数での「１３０」を、６ビットの値に変換する場合には、選択された逆変換テーブルを参照すれば、８ビットの値「１０００００１０」を、１０進数の「３２」、即ち６ビットの値「１０００００」に対応させることができる。
【００３７】
つまり、ステップＳ２３〜Ｓ３０によれば、ＣＰＵ４が最適な逆変換テーブルを用いて、画素フォーマット変換プログラム１３によるビット逆変換アルゴリズムを実行することで、演算結果とされる既定フォーマットの画像データを指定フォーマットの画像データに逆変換させることができる。ここで、最適な逆変換テーブルとは、その右欄（図１１〜図１７参照）に示した画素要素のビット数（ｎ＝１〜７）と、指定フォーマットの各要素のビット数がそれぞれ一致した逆変換テーブルをいう。ビット逆変換アルゴリズムとは、左欄に示される８ビットの対応する２進数の値（図中、１０進数で表記）を、この２進数の値に対応する右欄に示されるｎビットの２進数の値（図中、１０進数で表記）に置き換えて、８ビットの値をｎビットの値に変換することをいう。そして、ＣＰＵ４は、各画素要素毎のビット数に変換した値をワーク領域１２に各画素要素毎に格納する。一方、ビット数が８ビットであれば（Ｓ２３、Ｓ２５、Ｓ２７、Ｓ２９で「Ｔ」）、その画素要素に対して上記ビット逆変換アルゴリズムを省略できる。
【００３８】
このように、ＣＰＵ４は、画素フォーマット変換プログラム１３を実行することで、ステップＳ４、Ｓ６、Ｓ８、１０、Ｓ１５、Ｓ１７、Ｓ１９、Ｓ２１で変換テーブルを選択して既定フォーマットへの変換を行い、ステップＳ２４、Ｓ２６、Ｓ２８、Ｓ３０で逆変換テーブルを選択して指定フォーマットへの逆変換を行う。この画素フォーマット変換プログラム１３は、これらの変換テーブルと逆変換テーブルを選択して上記変換及び逆変換を行うだけであるから、プログラムサイズは小さくて済む。その上、変換テーブルと逆変換テーブルは、データメモリ部１０内に形成された第１変換テーブル１７と第２変換テーブル１８に含まれているから、プログラムサイズが増大することはない。
【００３９】
次に、ＣＰＵ４は、ワーク領域１２からステップＳ２４、Ｓ２６、Ｓ２８、Ｓ３０で得られた指定フォーマットの各要素の値を、各要素毎にリードして１画素分のＡ要素の値、Ｒ要素の値、Ｇ要素の値、Ｂ要素の値を例えばＡＲＧＢの順に配列し、最終的な描画色を決定する（Ｓ３１）。そして、ＣＰＵ４は、プログラムメモリ部９から画素描画プログラム１６をリードして実行し、ステップＳ３１で決定された描画色をフレームバッファ１１に描画する（Ｓ３２）。その後、ステップＳ１１で座標を算出された他の画素に対して、ステップＳ１２〜Ｓ３２の画素描画ループを繰返し、描画図形を構成する画素数分の処理を完了したら（Ｓ３３）、上記した一連の処理を終了する。このように、ＣＰＵ４は、複数の画素フォーマットの中から任意の指定フォーマットが選択されたとしても、指定フォーマットに対応した変換テーブルと逆変換テーブルをデータメモリ部１０からリードすることで、画素演算を既定フォーマットで行い、さらに画素演算の結果を指定フォーマットに逆変換した上で、フレームバッファ１１に描画できる。従って、データ処理システム１によれば、プログラムサイズの増加を抑えた上で、多数の指定フォーマットをサポートすることができる。
【００４０】
《実施形態２》
図１８には、本発明の実施形態２に係るデータ処理システムの一例が示される。実施形態２では、上記した実施形態１のデータ処理システム１と同一機能等を有する部分には同一符号を付し、説明が重複する部分については適宜省略する。データ処理システム１Ａは、データプロセッサ２と、外部メモリ３Ａ等を備えている。外部メモリ３Ａは、上記外部メモリ３と比べて、テクスチャデータ格納領域２０が追加され、さらに、描画座標生成プログラム１４Ａを含むプログラムメモリ部９Ａを有している。テクスチャデータとは、少なくとも１つの画素データと他の画素データとで同一画素要素の値が異なる画像データをいう。テクスチャデータとしては、例えば複数色で示される自然画等の画像データがある。描画座標生成プログラム１４Ａは、上記描画座標生成プログラム１４と異なり、描画図形を構成する画素の座標だけでなく、この画素の座標に対応するテクスチャデータの画素の座標（以下、テクスチャ座標と記す）も算出する処理を制御する。
【００４１】
以下、図１９、図２０を参照して、本発明の実施形態２に係る描画方法について説明する。ここでは例えば、フレームバッファ１１に格納されている画像データと、テクスチャデータ格納領域２０に格納されているテスクチャデータとをリードし、リードした画像データとテスクチャデータとの画素演算を行い、その演算結果をフレームバッファ１１に書き戻す処理について説明する。ステップＳ４１は上記ステップＳ１に対応しており、外部から描画コマンドにより当該処理が指示されるとき、指定情報によって画素フォーマットが指定される。次に、画素演算に用いるテクスチャデータが指定されると、その指定されたテスクチャデータの画素要素のビット数を示す情報（ＴＡ、ＴＲ、ＴＧ、ＴＢという）によるビット数ＴＡ＋ＴＲ＋ＴＧ＋ＴＢに対応して、テクスチャデータのビット配列を変更する（Ｓ４２）。具体的には、ビットＴＡ＋ＴＲ＋ＴＧ＋ＴＢがバイト以下の場合には、画素要素を順に最上位側から詰めた１画素１バイトのデータとしてテスクチャデータが扱われる。また、ビット数ＴＡ＋ＴＲ＋ＴＧ＋ＴＢが１バイトを超えて２バイト以下の場合には、画素要素を順に最上位側から詰めた１画素２バイト（１ワード）のデータとしてテクスチャデータが扱われる。さらに、ビット数ＴＡ＋ＴＲ＋ＴＧ＋ＴＢが２バイトを超えて４バイト以下の場合には、画素要素を順にバイト単位で最上位側から詰めた１画素４バイト（１ロングワード）のデータとしてテクスチャデータが扱われる。これにより、テスクチャデータは、ビット数ＴＡ＋ＴＲ＋ＴＧ＋ＴＢに応じて、上記バイト、ワード又はロングワードのいずれの単位で処理されるかが決定される。次に、ＣＰＵ４は、プログラムメモリ部９Ａから描画座標生成プログラム１４Ａをリードして実行し、描画図形を構成する画素の座標と、この画素の座標と対応するテクスチャ座標とを算出する（Ｓ４３）。そして、ＣＰＵ４は、算出したこれらの座標をワーク領域１２に格納する。
【００４２】
以下、ＣＰＵ４は、ステップＳ４４〜Ｓ７４で画素描画ループを１画素毎に実行する。この画素描画ループは、図３に例示したステップＳ１２〜Ｓ３３に略対応している。しかし、ここでの画素描画ループでは、単一色を示す画像データではなくテクスチャデータを参照した描画を行うので、選択した変換テーブルを用いた既定フォーマットへの変換処理をテクスチャデータの全ての画素に対して実行する必要がある。まず、ＣＰＵ４は、ステップＳ４３で算出したテクスチャ座標をワーク領域１２からリードし、このテクスチャ座標に対応するテクスチャデータの画素をテクスチャデータ格納領域２０からリードする（Ｓ４５）。次に、ＣＰＵ４は、画素フォーマット変換プログラム１３を外部メモリ３Ａからリードして実行する（Ｓ４６〜Ｓ５３）。ここでのステップＳ４６〜Ｓ５３は、上記ステップＳ３〜Ｓ１０に対応している。ステップＳ４６、Ｓ４８、Ｓ５０、Ｓ５２では、テクスチャデータのＡ要素、Ｒ要素、Ｇ要素、Ｂ要素のビット数が８ビットか否かを判定している。ステップＳ４７、Ｓ４９、Ｓ５１、Ｓ５３では、テクスチャデータのＡ要素、Ｒ要素、Ｇ要素、Ｂ要素のビット数に対応した最適な変換テーブルを選択する。さらに、ＣＰＵ４は、選択した変換テーブルを用いて、Ａ要素、Ｒ要素、Ｇ要素、Ｂ要素の値を８ビットの値に変換する。このように、画素描画ループ内で既定フォーマットへの変換処理が実行されることにより、テクスチャデータに含まれる全ての画素要素の値を、既定フォーマットの画素要素毎に規定されたビット数の値に変換できる。
【００４３】
その後、ＣＰＵ４は、ステップＳ４５でリードされたテクスチャ座標の画素に対して、混合処理を行うか否かを判定する（Ｓ５４）。混合処理を行う場合には、ＣＰＵ４は、前処理として上記ステップＳ１４〜Ｓ２１と同様に、画素フォーマット変換プログラム１３を実行し、フレームバッファ１１に格納されていた画像データの画素フォーマットを既定フォーマットに変換する（Ｓ５５〜Ｓ６２）。次に、ＣＰＵ４は、描画色演算プログラム１５を実行し、既定フォーマットのテクスチャデータの１画素と、既定フォーマットの下地の１画素とをリードして混合処理を行う（Ｓ６３）。具体的には、混合処理では、Ａ要素の値についてはステップＳ４７で得た値とステップＳ５６で得た値とを演算し、Ｒ要素の値についてはステップＳ４９で得た値とステップＳ５８で得た値とを演算する。また、Ｇ要素の値についてはステップＳ５１で得た値とステップＳ６０で得た値とを演算し、Ｂ要素の値についてはステップＳ５３で得た値とステップＳ６２で得た値とを演算する。
【００４４】
次に、ＣＰＵ４は、上記ステップＳ２３〜Ｓ３０と同様に、画素フォーマット変換プログラム１３を実行し、既定フォーマットの演算結果を指定フォーマットに逆変換する処理を行う（Ｓ６４〜Ｓ７１）。そして、ＣＰＵ４は、上記ステップＳ３１と同様にステップＳ６５、Ｓ６７、Ｓ６９、Ｓ７１で得られた指定フォーマットの各要素の値を例えばＡＲＧＢの順に配列し、１画素分の最終的な描画色を決定する（Ｓ７２）。次に、ＣＰＵ４は、上記ステップＳ３２と同様に画素描画プログラム１６を実行し、ステップＳ７２で決定された描画色をフレームバッファ１１に描画する（Ｓ７３）。その後、ステップＳ４３で座標を算出された他の画素に対して、上記画素描画ループを繰返し、描画図形を構成する画素数分の処理を完了したら（Ｓ７４）、上記した一連の処理を終了する。
【００４５】
即ち、データ処理システム１Ａは、変換テーブルを用いて複数の画素フォーマットの中から選択された指定フォーマットのテクスチャデータを既定フォーマットに変換し、画素演算を既定フォーマットでのみ行い、フレームバッファ１１への描画を行う前に、逆変換テーブルを用いて演算結果を指定フォーマットへ逆変換する。従って、データ処理システム１Ａによれば、プログラムサイズの増大を抑えた上で、多数の指定フォーマットのテクスチャデータを参照した描画を行うことができる。
【００４６】
以上、本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００４７】
例えば、データ処理システム１，１Ａには上記指定情報により画素フォーマットが指定されているが、その指定はデータ処理システム１，１Ａのリセット処理において初期設定されてもよいし、或いは外部から内部レジスタ等にプログラマブルに指定されてもよい。例えばデータプロセッサ２は、画素フォーマットの指定情報がセットされるコントロールレジスタを有してもよい。また、データ処理システム１，１Ａでは、ＣＰＵ４が上記各プログラム１３〜１６を実行したが、これに限定されず、２次元グラフィックス描画を行う専用の演算回路により実行するようにしてもよい。さらに、ステップＳ１１では、描画図形の輪郭を形成する画素の座標について算出するようにしたが、これに限定されず、画像データが示す描画図形を構成する全ての画素の座標を算出するようにしてもよい。
【００４８】
さらに、既定フォーマットとしては、ＡＲＧＢ８８８８を挙げ、これに対応して第１変換テーブル１７での変換後のビット数と第２変換テーブル１８での変換前のビット数を８ビットとしたが、これに限定されない。例えば既定フォーマットの各要素のビット数を８ビットより大きくてもよく、この場合のビット数に対応した変換情報を有する変換テーブル、及び逆変換情報を有する逆変換テーブルを用意するようにしてもよい。また、第１変換テーブル１７と第２変換テーブル１８については、データメモリ部１０にテーブルとして形成されている例を示したが、上記変換情報と逆変換情報が保持可能であれば、適宜の形態でデータメモリ部１０上に形成されていてもよい。さらに、第１変換テーブル１７と第２変換テーブル１８は、図４〜図１７に例示したように、それぞれ７種類ずつを用意したが、指定フォーマットに対応可能であれば、全てを用意する必要はない。
【図面の簡単な説明】
【００４９】
【図１】本発明の実施形態１に係るデータ処理システムを例示する説明図である。
【図２】本発明の実施形態１に係る描画方法を例示するフローチャートである。
【図３】図２に例示する描画方法の画素描画ループを例示するフローチャートである。
【図４】ｎ（＝１）ビット−８ビット変換テーブルを例示する説明図である。
【図５】ｎ（＝２）ビット−８ビット変換テーブルを例示する説明図である。
【図６】ｎ（＝３）ビット−８ビット変換テーブルを例示する説明図である。
【図７】ｎ（＝４）ビット−８ビット変換テーブルを例示する説明図である。
【図８】ｎ（＝５）ビット−８ビット変換テーブルを例示する説明図である。
【図９】ｎ（＝６）ビット−８ビット変換テーブルを例示する説明図である。
【図１０】ｎ（＝７）ビット−８ビット変換テーブルを例示する説明図である。
【図１１】８ビット−ｎ（＝１）ビット変換テーブルを例示する説明図である。
【図１２】８ビット−ｎ（＝２）ビット変換テーブルを例示する説明図である。
【図１３】８ビット−ｎ（＝３）ビット変換テーブルを例示する説明図である。
【図１４】８ビット−ｎ（＝４）ビット変換テーブルを例示する説明図である。
【図１５】８ビット−ｎ（＝５）ビット変換テーブルを例示する説明図である。
【図１６】８ビット−ｎ（＝６）ビット変換テーブルを例示する説明図である。
【図１７】８ビット−ｎ（＝７）ビット変換テーブルを例示する説明図である。
【図１８】本発明の実施形態２に係るデータ処理システムを例示する説明図である。
【図１９】本発明の実施形態２に係る描画方法を例示するフローチャートである。
【図２０】図１９に例示する描画方法の続きを例示するフローチャートである。
【符号の説明】
【００５０】
１，１Ａ  データ処理システム
２  データプロセッサ
３，３Ａ  外部メモリ
４  中央処理装置（ＣＰＵ）
５  ポート（ＰＯＲＴ）
６  バスステートコントローラ（ＢＳＣ）
９  プログラムメモリ部
１０  データメモリ部
１１  フレームバッファ
１２  ワーク領域
１３  画素フォーマット変換プログラム
１４，１４Ａ  描画座標生成プログラム
１５  描画色演算プログラム
１６  画素描画プログラム
１７  第１変換テーブル
１８  第２変換テーブル
２０  テクスチャデータ格納領域
【図１】
2008176439.tif 000003
【図２】
2008176439.tif 000004
【図３】
2008176439.tif 000005
【図４】
2008176439.tif 000006
【図５】
2008176439.tif 000007
【図６】
2008176439.tif 000008
【図７】
2008176439.tif 000009
【図８】
2008176439.tif 000010
【図９】
2008176439.tif 000011
【図１０】
2008176439.tif 000012
【図１１】
2008176439.tif 000013
【図１２】
2008176439.tif 000014
【図１３】
2008176439.tif 000015
【図１４】
2008176439.tif 000016
【図１５】
2008176439.tif 000017
【図１６】
2008176439.tif 000018
【図１７】
2008176439.tif 000019
【図１８】
2008176439.tif 000020
【図１９】
2008176439.tif 000021
【図２０】
2008176439.tif 000022