(57)【要約】【課題】  画像のシェーディング処理を行う際、視覚特性を考慮する事で処理画像の品質を向上させる。【解決手段】  画像の各画素の色を記憶する画像記憶素子を含む画像処理装置であって、画像記憶素子に入力されたＲＧＢ画素値をＹＣｒＣｂ画素値に変換するＲＧＢ−ＹＣｒＣｂコンバータ４と、ＲＧＢ−ＹＣｒＣｂコンバータ４により変換されたＹＣｒＣｂ画素値に対してシェーディングを行う色データシェーディング演算器９と、色データシェーディング演算器９によりシェーディングされたＹＣｒＣｂ画素値をＲＧＢ画素値に変換するＹＣｒＣｂ−ＲＧＢコンバータ８とを画像記憶素子に有する。【選択図】      図１
2005266897.tif 000002
【特許請求の範囲】
【請求項１】
画像上の各画素の色を記憶する画像記憶素子を含む画像処理装置であって、前記画像記憶素子に入力されたＲＧＢ画素値をＹＣｒＣｂ画素値に変換する第１の画素値変換手段と、前記第１の画素値変換手段により変換されたＹＣｒＣｂ画素値に対してシェーディングを行うシェーディング手段と、前記シェーディング手段によりシェーディングされたＹＣｒＣｂ画素値をＲＧＢ画素値に変換する第２の画素値変換手段とを前記画像記憶素子に有することを特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理装置に関し、特にシェーディングの手法を用いて画像を描画する画像処理装置に関する。
【背景技術】
【０００２】
従来、コンピュータグラフィックスの分野では画像をよりリアルに表現するためにシェーディングモデルが用いられている。このシェーディングモデルとは三次元空間の中に物体や光源があるとき、物体の各点がどのような色や明るさに見えるかを近似的に計算する方式である。画像処理装置において、直線を描画する際にシェーディングを行う事がある。すなわち、画像が徐々に明るくなっていく場合や暗くなっていく場合、あるいは画像の色が徐々に濃くなっていく場合や薄くなっていく場合に、それを表現するためにシェーディングの手法が用いられる。
【０００３】
例えば、特許文献１には、画素データ列のうち指定された描画開始点の画素の色データと、描画終了点の画素の色データとの差と描画画素数とから隣合う画素の可変量を算出し、この可変量を描画開始点の画素の色データに加算し、その加算結果を描画開始点の画素の色データが保持されたレジスタの隣のレジスタに保持し、この動作を描画終了点の画素の色データを保持すべきレジスタまで順次繰返し行うことによって、各画素の色データをメモリセルに転送する前にシェーディングを行うことができ、シェーディングの手法を用いて画像を描画する際に充分な処理速度を得ることができるものが記載されている。
【０００４】
また、非特許文献１にはシェーディングアルゴリズムのプログラムが掲載されている。
【０００５】
【特許文献１】特許第３０５５３９０号公報
【非特許文献１】山口富士夫監修「実践コンピュータグラフィックス」，日刊工業新聞社
【発明の開示】
【発明が解決しようとする課題】
【０００６】
人間の視覚特性は、輝度値と色度値を個別に認識しているので、ＲＧＢのような色空間ではなく、輝度Ｙ，色度Ｃｒ，Ｃｂと、輝度と色度を分けて表す色空間を用いて処理を行った方が感覚に整合する事が明らかとなっており、シェーディングを行う際にも２つのＲＧＢ値を補間するより、２つのＹＣｒＣｂ値を補間した方が、人間の視覚特性と整合した色変化の連続性が得られる。しかし従来のシェーディング手法は、ＲＧＢ値に対してシェーディングを行うものであり、人間の視覚特性を考慮した処理が行われている訳では無かった。
【０００７】
本発明の目的は、人間の視覚特性を考慮した高品質なシェーディングを十分な処理速度で行う事にある。
【課題を解決するための手段】
【０００８】
本発明の画像処理装置は、画像上の各画素の色を記憶する画像記憶素子を含む画像処理装置であって、前記画像記憶素子に入力されたＲＧＢ画素値をＹＣｒＣｂ画素値に変換する第１の画素値変換手段と、前記第１の画素値変換手段により変換されたＹＣｒＣｂ画素値に対してシェーディングを行うシェーディング手段と、前記シェーディング手段によりシェーディングされたＹＣｒＣｂ画素値をＲＧＢ画素値に変換する第２の画素値変換手段とを前記画像記憶素子に有している。
【発明の効果】
【０００９】
本発明によれば、画像処理を行う前に、画像処理装置内部の画像記憶素子に於いて、入力されたＲＧＢ色空間で表現されたＲＧＢ画素値をＹＣｒＣｂ色空間に座標変換し、色空間変換された画素値に対してシェーディングを行い、ＹＣｒＣｂ色空間変換された画素値をＲＧＢ色空間に逆変換して保持する。色データのシェーディングを画像記憶素子内部で行う上、シェーディングを行う際に色値を輝度Ｙ，色度Ｃｒ，Ｃｂという単位に変換し、その上でシェーディングを行うので、２点間の輝度及び色度の変化が連続的になり、画像の色変化をより滑らかに表現する事が出来る。
【００１０】
また、第１の画素値変換手段と、シェーディング手段と、第２の画素値変換手段とを画像記憶素子に有しているので、１回のメモリアクセスでシェーディングされた色データを描画できる為、極めて高速なシェーディング描画を行うことが出来る。
【発明を実施するための最良の形態】
【００１１】
本発明の一実施例について図面を参照して説明する。
【００１２】
図１は本発明の一実施例の構成を示すブロック図である。本発明の一実施例の画像記憶素子は、画像記憶素子に入力されたＲＧＢ画素値を格納する入出力バッファ１と、ＲＧＢ画素値をＹＣｒＣｂ画素値に変換するＲＧＢ−ＹＣｒＣｂコンバータ４と、変換されたＹＣｒＣｂ画素値を格納する第一レジスタ群７と、第一レジスタ群７への書き込みを制御するライトデータコントローラ６と、変換されたＹＣｒＣｂ画素値に対してシェーディングを行う色データシェーディング演算器９と、シェーディングされたＹＣｒＣｂ画素値をＲＧＢ画素値に変換するＹＣｒＣｂ−ＲＧＢコンバータ８と、変換されたＲＧＢ画素値を格納する第二レジスタ群１０とを備えている。
【００１３】
入出力バッファ１は、外部のシステムバス等に接続されて、入力されたＲＧＢ値で表現された画像データを保持する。
【００１４】
ＲＧＢ−ＹＣｒＣｂコンバータ４は、入出力バッファ１に格納されているＲＧＢ値で表現された画素データをＹＣｒＣｂ値に変換する。
【００１５】
ライトデータコントローラ６は、第一レジスタ群７の対応するレジスタへの色データの書き込みを行う。ライトデータコントローラ６にはカウンタ５が接続され、カウンタ５には、シェーディング描画を行う描画画素数がセットされる。
【００１６】
色データシェーディング演算器９は、入力された色データに対してシェーディングデータを計算する。
【００１７】
ＹＣｒＣｂ−ＲＧＢコンバータ８は、入力されたＹＣｒＣｂ色空間で表現されたシェーディングデータをＹＣｒＣｂ−ＲＧＢ変換し、ＲＧＢ値に変換したシェーディングデータを第二レジスタ群１０に保持する。
【００１８】
また、画像記憶素子は、さらに、ＲＧＢ値に変換したシェーディングデータを格納するメモリセルアレイ１６と、その他、シリアルライトコントローラ１１と、ライトコントローラ１２と、アドレスバッファ１４と、カラムデコーダ１３と、ローデコーダ１５と、シリアルアクセスメモリ１７と、シリアルアウトプットバッファ１８とを備えている。
【００１９】
シリアルライトコントローラ１１は、第二レジスタ群１０の内部のデータを最大２５６画素分同時に読み出し、読み出した画素データをライトコントローラ１２がメモリセルアレイ１６へ書き込む。
アドレスバッファ１４は、外部のアドレスバス等に接続されてローアドレス又はカラムアドレスを保持する。カラムデコーダ１３は、アドレスバッファ１４に保持されたカラムアドレスをデコードし、ローデコーダ１５は、アドレスバッファ１４に保持されたローアドレスをデコードする。
【００２０】
シリアルアクセスメモリ１７は、メモリセルアレイ１６にアクセスしてシリアル出力を保持し、シリアルアウトプットバッファ１８は、シリアルアクセスメモリ１７からのシリアル出力を保持する。
【００２１】
次に、本発明の画像記憶素子を用いた色データのシェーディング動作を説明する。
【００２２】
まず、第一レジスタ群７の内、レジスタＮｏ０及びＮｏ２５５の間の任意の隣接しない２つのレジスタに描画開始点及び描画終了点の色データを与える。ＲＧＢ−ＹＣｒＣｂコンバータ４は、この２つの色データをＹＣｒＣｂ値に変換する。ＲＧＢ−ＹＣｒＣｂ変換は以下の式による。
【００２３】
【数１】
2005266897.tif 000003
カラムアドレスデコーダ１３が書き込みを行う開始点と終了点のカラムアドレスをデコードすると、ライトデータコントローラ６が、対応するレジスタに描画開始点及び描画終了点の色データをストアする。
【００２４】
次に、カウンタ５にシェーディング描画を行う描画画素数がセットされる。
シェーディング描画を行う描画画素数は、
（描画終了点が記憶されているレジスタＮｏ）−（描画開始点が記憶されているレジスタＮｏ）＋１
によって与えられる。
【００２５】
色データシェーディング演算器９は、描画開始点と描画終了点の２点の色データを線形補完することによりシェーディングを行う。すなわち、色シェーディングデータ演算器９は、色データをシェーディングする際に、まずは与えられた２点の画素のＹＣｒＣｂ値と、カウンタ５にセットされたシェーディング描画を行う描画画素数に基づき、描画を行う画素間の色データの差分Δの値を算出する。描画を行う画素間の色データの差分Δは、
（描画終了点のＹＣｒＣｂ値−描画開始点のＹＣｒＣｂ値）／シェーディング描画を行う描画画素数
により算出される。そして描画開始点の色データから順に、色データの差分Δを加算して行くことによって、描画開始点と描画終了点間の各画素のメモリに書き込む色データを決定する。
【００２６】
図２は、色データシェーディング演算器９の詳細な構成を示すブロック図である。
【００２７】
色データシェーディング演算器９は、８ビット減算器５１、１６ビット除算器５２、１６ビットレジスタ５３、１６ビット加算器５４各１ケから構成される。１６ビットレジスタ５３内部は整数部８ｂｉｔ、小数部８ｂｉｔとして使用する。
【００２８】
８ビット減算器５１は、
（描画終了点のＹＣｒＣｂ値）−（描画開始点のＹＣｒＣｂ値）
を計算し、１６ビット除算器５２の上位８ビットに結果を渡す。１６ビット除算器５２はこの値をシェーディング描画を行う描画画素数で除算してΔを求め、１６ビットレジスタ５３にΔの値をストアする。
【００２９】
次に１６ビット加算器５４に、レジスタＮｏ（ｎ）に格納された描画開始点のＹＣｒＣｂ値が入力され、これと１６ビットレジスタ５３に格納されたΔ値とを加算し、描画開始点の隣のレジスタＮｏ（ｎ＋１）点の画素のＹＣｒＣｂ値を出力する。
【００３０】
そして計算された色データの整数部８ｂｉｔが、ライトデータコントローラ６によって描画開始点の隣のレジスタから順に書き込まれる。データがレジスタに書き込まれる順番は、描画開始点レジスタＮｏが描画終了点レジスタＮｏより小さい時は、図１において第一レジスタ群７のレジスタＮｏの小さい左側から右方向に順に書き込まれ、描画開始点レジスタＮｏが描画終了点レジスタＮｏより大きい時は、図１において第一レジスタ群７のレジスタＮｏの大きい右側から左方向に順に書き込まれる。
【００３１】
第一レジスタ群７に描画を行おうとする画素の色データが全て書き込まれると、ＹＣｒＣｂ−ＲＧＢコンバータ８は、書き込まれたＹＣｒＣｂ値をＲＧＢ値に変換し、変換された色値を第二レジスタ群１０に書き込む。ここでＹＣｒＣｂ−ＲＧＢ変換は以下の式によって行われる。
【００３２】
【数２】
2005266897.tif 000004
シリアルライトコントローラ１１は、ライトコントローラ１２を介して第二レジスタ群１０内部のデータを最大２５６画素同時にメモリセルアレイ１６に書き込む。
【００３３】
このように本実施例では、画像処理を行う前に、入力された画素値をＹＣｒＣｂ色空間に座標変換し、色空間変換された画素値に対してシェーディングを行い、ＹＣｒＣｂ色空間変換された画素値をＲＧＢ色空間に逆変換してメモリセルアレイ１６に保持する。色データのシェーディングを画像記憶素子内部で行う上、シェーディングを行う際に色値を輝度Ｙ，色度Ｃｒ，Ｃｂという単位に変換し、その上でシェーディングを行うので、２点間の輝度及び色度の変化が連続的になり、画像の色変化をより滑らかに表現する事が出来る。
【００３４】
また、本発明の一実施例の画像記憶素子は、さらに、ライトマスクレジスタ２と、ライトマスクコントローラ３とを備えている。ライトマスクレジスタ２は、第二レジスタ群１０からメモリセルアレイ１６への書き込みを一部のアドレス範囲についてマスクするマスクデータを保持し、ライトマスクコントローラ３は、ライトマスクレジスタ２に保持されたマスクデータに基づき、ライトコントローラ１２による第二レジスタ群１０からメモリセルアレイ１６への書き込みをマスクする。
【００３５】
画像記憶素子に接続されたデータバスに、始点及び終点の色データと共にマスクデータを与えると、マスクデータはライトマスクレジスタ２にストアされる。ライトマスクコントローラ３は、ライトコントローラ１２が第二レジスタ群１０からメモリセルアレイ１６に対して色データを転送する際、ライトマスクレジスタ２に保持されているマスクデータに基づいて対応する画素の色データの転送を禁止する。これにより、表示画面へのシェーディングされた色データの書き込みを画素単位で禁止することができる。
【図面の簡単な説明】
【００３６】
【図１】本発明の一実施例の構成を示すブロック図である。
【図２】図１の色データシェーディング演算器９の詳細な構成を示すブロック図である。
【符号の説明】
【００３７】
１  入出力バッファ
２  ライトマスクレジスタ
３  ライトマスクコントローラ
４  ＲＧＢ−ＹＣｒＣｂコンバータ
５  カウンタ
６  ライトデータコントローラ
７  第一レジスタ群
８  ＹＣｒＣｂ−ＲＧＢコンバータ
９  色データシェーディング演算器
１０  第二レジスタ群
１１  シリアルライトコントローラ
１２  ライトコントローラ
１３  カラムデコーダ
１４  アドレスバッファ
１５  ローデコーダ
１６  メモリセルアレイ
１７  シリアルアクセスメモリ
１８  シリアルアウトプットバッファ
５１  ８ビット減算器
５２  １６ビット除算器
５３  １６ビットレジスタ
５４  １６ビット加算器
【図１】
2005266897.tif 000005
【図２】
2005266897.tif 000006