(57)【要約】【課題】低い計算コストで複数のＺ値を圧縮し、複数のＺ値を示す圧縮データをＺバッファに格納することができる画像処理装置を提供する。【解決手段】画像処理装置は、３次元空間における奥行き方向の位置を示すＺ値を記憶するためのＺバッファを用いて、３次元空間のポリゴンを２次元平面の画像として描画する画像処理装置であって、ポリゴンを示すポリゴンデータから、ポリゴンの描画領域における複数の画素に対応する複数のＺ値を生成する生成部１１０１と、奥行き方向に沿う予め定められた視線方向を示す視線データと、ポリゴンデータとを用いて、複数のＺ値を圧縮するか否かを決定する決定部１１０２と、複数のＺ値が圧縮される場合、複数のＺ値から代表Ｚ値を決定し、決定された代表Ｚ値を複数の画素に関連づけてＺバッファに格納する格納処理部１１０３とを備える。【選択図】図１１
2013025406.tif 000002
【特許請求の範囲】
【請求項１】
３次元空間における奥行き方向の位置を示すＺ値を記憶するためのＺバッファを用いて、前記３次元空間のポリゴンを２次元平面の画像として描画する画像処理装置であって、
前記ポリゴンを示すポリゴンデータから、前記ポリゴンの描画領域における複数の画素に対応する複数のＺ値を生成する生成部と、
前記奥行き方向に沿う予め定められた視線方向を示す視線データと、前記ポリゴンデータとを用いて、前記複数のＺ値を圧縮するか否かを決定する第１決定部と、
前記複数のＺ値が圧縮される場合、前記複数のＺ値から代表Ｚ値を決定し、決定された前記代表Ｚ値を前記複数の画素に関連づけて前記Ｚバッファに格納する格納処理部とを備える
画像処理装置。
【請求項２】
前記第１決定部は、前記視線データと前記ポリゴンデータとを用いて、前記視線方向と、前記ポリゴンの平面との成す角度に依存させて、前記複数のＺ値を圧縮するか否かを決定する
請求項１に記載の画像処理装置。
【請求項３】
前記第１決定部は、前記視線データと前記ポリゴンデータとを用いて、前記角度が略垂直であるか否かを判定し、前記角度が略垂直であると判定された場合、前記複数のＺ値を圧縮すると決定する
請求項２に記載の画像処理装置。
【請求項４】
前記生成部は、さらに、前記ポリゴンデータから、前記複数の画素のそれぞれについて、前記ポリゴンに施される特殊効果であるステンシル操作により特定されるステンシル値を生成することにより、前記複数の画素に対応する複数のステンシル値を生成し、
前記第１決定部は、前記視線データと、前記ポリゴンデータと、前記ステンシル操作を示すステンシル操作属性とを用いて、前記複数のＺ値を圧縮するか否かを決定し、
前記格納処理部は、前記複数のＺ値が圧縮される場合、前記複数のＺ値から前記代表Ｚ値を決定し、前記複数のステンシル値から代表ステンシル値を決定し、前記代表Ｚ値および前記代表ステンシル値を前記複数の画素に関連づけて前記Ｚバッファに格納する
請求項１〜３のいずれか１項に記載の画像処理装置。
【請求項５】
前記第１決定部は、前記視線データと前記ポリゴンデータと前記ステンシル操作属性とを用いて、（ｉ）前記視線方向と、前記ポリゴンの平面との成す角度、および、（ｉｉ）前記ステンシル操作により前記複数のステンシル値が一致するか否かに依存させて、前記複数のＺ値を圧縮するか否かを決定する
請求項４に記載の画像処理装置。
【請求項６】
前記第１決定部は、
前記視線データと前記ポリゴンデータとを用いて、前記角度が略垂直であるか否かを判定し、
前記ステンシル操作属性を用いて、前記ステンシル操作により前記複数のステンシル値が一致するか否かを判定し、
前記角度が略垂直であると判定され、かつ、前記複数のステンシル値が一致すると判定された場合、前記複数のＺ値を圧縮すると決定する
請求項５に記載の画像処理装置。
【請求項７】
前記画像処理装置は、さらに、前記ポリゴンを描画するための描画命令に従って、前記複数のＺ値を圧縮するか否かを決定する第２決定部を備える
請求項１〜６のいずれか１項に記載の画像処理装置。
【請求項８】
前記第２決定部は、前記描画命令により前記ポリゴンの平面が前記視線方向に対して垂直になる場合、前記複数のＺ値を圧縮すると決定する
請求項７に記載の画像処理装置。
【請求項９】
前記画像処理装置は、さらに、前記ポリゴンを描画するための描画命令に従って、前記複数のＺ値を圧縮するか否かを決定する第２決定部を備え、
前記第２決定部は、前記描画命令により前記ポリゴンの平面が前記視線方向に対して垂直になる場合、かつ、前記描画命令により前記複数のステンシル値が一致する場合、前記複数のＺ値を圧縮すると決定する
請求項４〜６のいずれか１項に記載の画像処理装置。
【請求項１０】
前記格納処理部は、前記複数のＺ値が圧縮されない場合、前記複数のＺ値を前記複数の画素に関連づけて前記Ｚバッファに格納する
請求項１〜９のいずれか１項に記載の画像処理装置。
【請求項１１】
前記画像処理装置は、さらに、前記Ｚバッファから、前記複数の画素に関連づけて格納された前記代表Ｚ値を抽出し、前記代表Ｚ値を前記代表Ｚ値に関連づけられた前記複数の画素に割り当てる抽出処理部を備える
請求項１〜１０のいずれか１項に記載の画像処理装置。
【請求項１２】
前記画像処理装置は、さらに、
前記Ｚバッファから、前記複数の画素に関連づけて格納された前記代表Ｚ値、または、前記複数の画素に関連づけて格納された前記複数のＺ値を抽出し、前記代表Ｚ値が抽出された場合、前記代表Ｚ値を前記代表Ｚ値に関連づけられた前記複数の画素に割り当て、前記複数のＺ値が抽出された場合、前記複数のＺ値を前記複数のＺ値に関連づけられた前記複数の画素に割り当てる抽出処理部を備える
請求項１０に記載の画像処理装置。
【請求項１３】
前記格納処理部は、前記複数のＺ値が圧縮される場合、前記ポリゴンを識別するためのポリゴンＩＤを前記複数の画素に関連づけて前記Ｚバッファに格納し、かつ、前記代表Ｚ値を前記ポリゴンＩＤに関連づけて前記Ｚバッファに格納することにより、前記代表Ｚ値を前記複数の画素に関連づけて前記Ｚバッファに格納する
請求項１〜１２のいずれか１項に記載の画像処理装置。
【請求項１４】
３次元空間における奥行き方向の位置を示すＺ値を記憶するためのＺバッファを用いて、前記３次元空間のポリゴンを２次元平面の画像として描画する集積回路であって、
前記ポリゴンを示すポリゴンデータから、前記ポリゴンの描画領域における複数の画素に対応する複数のＺ値を生成する生成部と、
前記奥行き方向に沿う予め定められた視線方向を示す視線データと、前記ポリゴンデータとを用いて、前記複数のＺ値を圧縮するか否かを決定する決定部と、
前記複数のＺ値が圧縮される場合、前記複数のＺ値から代表Ｚ値を決定し、決定された前記代表Ｚ値を前記複数の画素に関連づけて前記Ｚバッファに格納する格納処理部とを備える
集積回路。
【請求項１５】
３次元空間における奥行き方向の位置を示すＺ値を記憶するためのＺバッファを用いて、前記３次元空間のポリゴンを２次元平面の画像として描画する画像処理方法であって、
前記ポリゴンを示すポリゴンデータから、前記ポリゴンの描画領域における複数の画素に対応する複数のＺ値を生成する生成ステップと、
前記奥行き方向に沿う予め定められた視線方向を示す視線データと、前記ポリゴンデータとを用いて、前記複数のＺ値を圧縮するか否かを決定する決定ステップと、
前記複数のＺ値が圧縮される場合、前記複数のＺ値から代表Ｚ値を決定し、決定された前記代表Ｚ値を前記複数の画素に関連づけて前記Ｚバッファに格納する格納処理ステップとを含む
画像処理方法。
【請求項１６】
請求項１〜１３のいずれか１項に記載の画像処理装置と、
前記画像処理装置によって描画された前記画像を表示する表示部とを備える
画像表示装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、３次元空間における奥行き方向の位置を示すＺ値を記憶するためのＺバッファを用いて、３次元空間のポリゴンを２次元平面の画像として描画する画像処理装置に関する。
【背景技術】
【０００２】
３次元コンピュータグラフィックス処理の機能を有する画像処理装置は、一般的に、３次元空間の物体を構成する複数のポリゴンについて、ポリゴン単位で画像処理を実行する。これにより、画像処理装置は、物体を２次元平面に描画する。より詳細には、画像処理装置は、ポリゴンの描画領域における複数の画素について、画素単位で、画像処理を実行する。
【０００３】
例えば、画像処理装置は、ポリゴンを示すポリゴンデータから、色値（色情報）およびＺ値（深度値）を含む画素データを画素毎に生成する。ここで、Ｚ値は、３次元空間における奥行き方向の位置を示す。また、Ｚ値は、予め定められた視点からの距離とも表現される。そして、色値は、２次元平面に描画される色を示す。
【０００４】
２次元平面への描画の際、複数のポリゴンが互いに重なる場合がある。この場合、画像処理装置は、先に生成されたＺ値と、後に生成されたＺ値とを比較するＺテストを行うことによって、最終的なＺ値および色値を算出する。画像処理装置は、Ｚテストを行うことによって、典型的には、より視点に近い画素データを選択するが、その他の基準で画素データを選択してもよい。そして、選択された画素データを基準に算出された色値が最終的に表示される。
【０００５】
先に生成されたＺ値は、通常、メモリまたはメモリ内の領域であるＺバッファに格納される。そのため、画面に多数のポリゴンが描画される場合、Ｚバッファへのリード・ライトのアクセスが、頻繁に発生する。したがって、Ｚバッファへのアクセス時間は、描画性能に大きな影響を与える。
【０００６】
また、近年、３次元コンピュータグラフィックスを用いるデジタル機器の高解像度化が進んでいる。これに伴い、座標変換および光源計算等の頂点毎の演算処理よりも、画素毎の演算処理および描画処理が、より描画性能に影響する傾向がある。画素毎の演算処理および描画処理は、カラーバッファおよびＺバッファ等のバッファからの読み出し処理、および、バッファへの書き込み処理を伴う。したがって、Ｚバッファへの高速アクセス技術が重要視されている。
【０００７】
Ｚバッファへ高速にアクセスする機構を有する画像処理装置として、特許文献１に記載の画像処理装置がある。この画像処理装置は、画面領域を８画素×８画素の複数の矩形領域に分割する。
【０００８】
そして、画像処理装置は、１つの矩形領域内に存在するポリゴン毎に、代表画素のＺ値である代表Ｚ値と、代表画素のステンシル値である代表ステンシル値と、Ｚ値のＸ方向の傾き値と、Ｚ値のＹ方向の傾き値とで構成されるフラグメントをＺバッファに格納する。Ｚ値のＸ方向の傾き値と、Ｚ値のＹ方向の傾き値とは、ポリゴン毎に決定される。さらに、画像処理装置は、フラグメントを指定するためのテーブル、および、代表画素からのＸ方向およびＹ方向の距離をＺバッファに画素毎に格納する。
【０００９】
そして、画像処理装置は、Ｚバッファから、画素毎に、代表画素からのＸ方向およびＹ方向の距離、フラグメントに含まれる代表Ｚ値、代表ステンシル値、２つの傾き値に基づいて、Ｚ値およびステンシル値を取得する。これにより、画像処理装置は、Ｚバッファへ高速にアクセスする。
【００１０】
図１９は、特許文献１に記載された従来の画像処理装置におけるＺ値の格納形式を示す図である。図１９に示された矩形領域は、画面領域を８画素×８画素の単位で分割することにより得られる領域である。矩形領域には、３つのポリゴンＡ、Ｂ、Ｃが描画される。
【００１１】
図１９の矩形領域内の「Ａ」、「Ｂ」、「Ｃ」は、それぞれ、３つのポリゴンＡ、Ｂ、Ｃのいずれに属する画素であるかを表している。また、３つのフラグメントＦＡ、ＦＢ、ＦＣは、それぞれ、３つのポリゴンＡ、Ｂ、Ｃに対応する複数のＺ値および複数の代表ステンシル値を導出するためのデータセットである。
【００１２】
例えば、フラグメントＦＡは、ポリゴンＡに対応するデータセットである。具体的には、フラグメントＦＡは、Ｚ値のＸ方向の傾き値ｄｚｄｘＡ、Ｚ値のＹ方向の傾き値ｄｚｄｙＡ、ポリゴンの代表画素のＺ値である代表Ｚ値ｚＡ、および、ポリゴンの代表画素のステンシル値である代表ステンシル値ｓＡを含むデータセットである。同様に、フラグメントＦＢ、ＦＣは、それぞれ、ポリゴンＢ、Ｃに対応するデータセットである。
【００１３】
インデックスデータ列は、矩形領域における画素毎のインデックスデータで構成されるシーケンスである。インデックスデータは、画素がどのフラグメントに対応するかを示すテーブルと、代表画素からのＸ方向およびＹ方向の距離値とで構成される。
【００１４】
１つのＺ値に２４ビット、１つのステンシル値に８ビットが割り当てられた場合、８画素×８画素の矩形領域についての複数のＺ値および複数のステンシル値のＺバッファに占めるデータ量は、通常、８×８×３２（ビット）＝２０４８（ビット）である。しかし、特許文献１に記載された画像処理装置は、Ｚバッファに格納するデータ量を削減する。
【００１５】
例えば、図１９のように、３つのフラグメントＦＡ、ＦＢ、ＦＣが存在すると仮定する。また、各フラグメントについて、２つの傾き値にそれぞれ１６ビットが割り当てられ、代表Ｚ値および代表ステンシル値には、通常のＺ値およびステンシル値のように、それぞれ、２４ビットおよび８ビットが割り当てられると仮定する。また、インデックスデータについて、フラグメントを指し示すテーブルに４ビット、代表画素からのＸ方向およびＹ方向の距離値にそれぞれ８ビットが割り当てられると仮定する。
【００１６】
この場合、インデックスデータ列には、８×８×（４＋８＋８）（ビット）＝１２８０（ビット）が用いられる。また、３つのフラグメントデータには、３×６４（ビット）＝１９２（ビット）が用いられる。したがって、画像処理装置は、合計１４７２ビットのデータをＺバッファに保存する。
【００１７】
Ｚバッファからのデータ読み出し時には、例えば、ポリゴンＡの画素であり座標値が（ｘ１、ｙ１）である画素のＺ値ｚ１は、以下の式１によって、算出される。
【００１８】
ｚ１＝ｚＡ＋ｄｚｄｘＡ×（ｘＡ−ｘ１）＋ｄｚｄｙＡ×（ｙＡ−ｙ１）
・・・（式１）
【００１９】
ここで、（ｘＡ、ｙＡ）は、代表画素の座標値を示す。すなわち、ｘＡ−ｘ１は、代表画素からのＸ方向の距離値を示し、ｙＡ−ｙ１は、代表画素からのＹ方向の距離値を示す。これらの情報は、インデックスデータに含まれる。２つの傾き値ｄｚｄｘＡ、ｄｚｄｙＡ、および、代表Ｚ値ｚＡは、インデックスデータにより指し示されるフラグメントＦＡに含まれる。したがって、画像処理装置は、フラグメントＦＡおよびインデックスデータから、Ｚ値ｚ１を算出することができる。
【００２０】
特許文献１に係る画像処理装置は、この演算を行うことにより各画素のＺ値を復元し、Ｚバッファへ高速にアクセスする。
【先行技術文献】
【特許文献】
【００２１】
【特許文献１】特開２００６−１７１９０６号公報
【発明の概要】
【発明が解決しようとする課題】
【００２２】
しかしながら、特許文献１に係る画像処理装置は、Ｚバッファからデータを読み出す際、乗算を含む演算処理を実行する必要がある。そのため、追加の演算器が必要であり、かつ、Ｚ値の復元時の計算コストが高いという、本質的な課題がある。
【００２３】
さらに、従来の構成では、矩形領域内に存在するポリゴン数が１つ増えると、フラグメントデータが１つ増える。すなわち、ポリゴン数が１つ増えると、６４ビットのデータ量の増加が発生するという課題がある。
【００２４】
さらに、従来の構成では、高速にバッファへアクセスするため、フラグメントデータ内の傾き値に割り当てられるビット数には、制限がある。そのため、復元後のＺ値と、元のＺ値との間に演算誤差が発生する。結果として、Ｚテストの結果が、期待される結果とは異なる場合がある。そして、最終的に描画される色値も期待される値とは異なり、画質が劣化するという課題がある。
【００２５】
そこで、本発明は、低い計算コストで複数のＺ値を圧縮し、複数のＺ値を示す圧縮データをＺバッファに格納することができる画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【００２６】
上記課題を解決するため、本発明に係る画像処理装置は、３次元空間における奥行き方向の位置を示すＺ値を記憶するためのＺバッファを用いて、前記３次元空間のポリゴンを２次元平面の画像として描画する画像処理装置であって、前記ポリゴンを示すポリゴンデータから、前記ポリゴンの描画領域における複数の画素に対応する複数のＺ値を生成する生成部と、前記奥行き方向に沿う予め定められた視線方向を示す視線データと、前記ポリゴンデータとを用いて、前記複数のＺ値を圧縮するか否かを決定する第１決定部と、前記複数のＺ値が圧縮される場合、前記複数のＺ値から代表Ｚ値を決定し、決定された前記代表Ｚ値を前記複数の画素に関連づけて前記Ｚバッファに格納する格納処理部とを備える。
【００２７】
これにより、画像処理装置は、視線データおよびポリゴンデータに基づいて、適応的に、複数のＺ値を圧縮するか否かを決定する。さらに、画像処理装置は、複数のＺ値を圧縮する場合、複数のＺ値を示す圧縮データとして１つの代表Ｚ値のみを格納する。したがって、画像処理装置は、低い計算コストで複数のＺ値を圧縮し、複数のＺ値を示す圧縮データをＺバッファに格納することができる。
【００２８】
また、前記第１決定部は、前記視線データと前記ポリゴンデータとを用いて、前記視線方向と、前記ポリゴンの平面との成す角度に依存させて、前記複数のＺ値を圧縮するか否かを決定してもよい。
【００２９】
これにより、画像処理装置は、視線方向とポリゴン平面との成す角度に基づいて、適応的に、複数のＺ値を圧縮するか否かを決定する。したがって、画像処理装置は、複数のＺ値を代表Ｚ値に集約できるか否かを適切に判定することができる。
【００３０】
また、前記第１決定部は、前記視線データと前記ポリゴンデータとを用いて、前記角度が略垂直であるか否かを判定し、前記角度が略垂直であると判定された場合、前記複数のＺ値を圧縮すると決定してもよい。
【００３１】
これにより、画像処理装置は、視線方向とポリゴン平面との成す角度が略垂直と認められる場合、複数のＺ値を代表Ｚ値に集約する。視線方向とポリゴン平面との成す角度が略垂直である場合、集約による画質への影響は小さい。したがって、画像処理装置は、画質への影響を抑制しつつ、複数のＺ値を圧縮することができる。
【００３２】
また、前記生成部は、さらに、前記ポリゴンデータから、前記複数の画素のそれぞれについて、前記ポリゴンに施される特殊効果であるステンシル操作により特定されるステンシル値を生成することにより、前記複数の画素に対応する複数のステンシル値を生成し、前記第１決定部は、前記視線データと、前記ポリゴンデータと、前記ステンシル操作を示すステンシル操作属性とを用いて、前記複数のＺ値を圧縮するか否かを決定し、前記格納処理部は、前記複数のＺ値が圧縮される場合、前記複数のＺ値から前記代表Ｚ値を決定し、前記複数のステンシル値から代表ステンシル値を決定し、前記代表Ｚ値および前記代表ステンシル値を前記複数の画素に関連づけて前記Ｚバッファに格納してもよい。
【００３３】
これにより、画像処理装置は、視線データ、ポリゴンデータおよびステンシル操作属性に基づいて、適応的に、複数のＺ値を圧縮するか否かを決定する。さらに、画像処理装置は、複数のＺ値を１つの代表Ｚ値に圧縮すると共に、複数のステンシル値を１つの代表ステンシル値に圧縮する。したがって、Ｚバッファにステンシル値が格納される場合でも、画像処理装置は、低い計算コストで複数のＺ値および複数のステンシル値を圧縮し、複数のＺ値および複数のステンシル値を示す圧縮データをＺバッファに格納することができる。
【００３４】
また、前記第１決定部は、前記視線データと前記ポリゴンデータと前記ステンシル操作属性とを用いて、（ｉ）前記視線方向と、前記ポリゴンの平面との成す角度、および、（ｉｉ）前記ステンシル操作により前記複数のステンシル値が一致するか否かに依存させて、前記複数のＺ値を圧縮するか否かを決定してもよい。
【００３５】
これにより、画像処理装置は、視線方向とポリゴン平面との成す角度、および、複数のステンシル値に基づいて、適応的に、複数のＺ値および複数のステンシル値を圧縮するか否かを決定する。したがって、画像処理装置は、複数のＺ値および複数のステンシル値を代表Ｚ値および代表ステンシル値に集約できるか否かを適切に判定することができる。
【００３６】
また、前記第１決定部は、前記視線データと前記ポリゴンデータとを用いて、前記角度が略垂直であるか否かを判定し、前記ステンシル操作属性を用いて、前記ステンシル操作により前記複数のステンシル値が一致するか否かを判定し、前記角度が略垂直であると判定され、かつ、前記複数のステンシル値が一致すると判定された場合、前記複数のＺ値を圧縮すると決定してもよい。
【００３７】
これにより、画像処理装置は、視線方向とポリゴン平面との成す角度が略垂直と認められる場合、かつ、複数のステンシル値が一致する場合に、複数のＺ値を代表Ｚ値に集約し、複数のステンシル値を代表ステンシル値に集約する。このような場合、集約による画質への影響は小さい。したがって、画像処理装置は、画質への影響を抑制しつつ、複数のＺ値を圧縮することができる。
【００３８】
また、前記画像処理装置は、さらに、前記ポリゴンを描画するための描画命令に従って、前記複数のＺ値を圧縮するか否かを決定する第２決定部を備えてもよい。
【００３９】
これにより、画像処理装置は、複数のＺ値を圧縮するか否かを、視線データおよびポリゴンデータに基づいて決定することに加えて、ポリゴンの描画命令に基づいて適応的に決定する。したがって、画像処理装置は、視線データおよびポリゴンデータを用いずに、ポリゴンの描画命令に基づいて、複数のＺ値を圧縮するか否かを適応的に決定することもできる。
【００４０】
また、前記第２決定部は、前記描画命令により前記ポリゴンの平面が前記視線方向に対して垂直になる場合、前記複数のＺ値を圧縮すると決定してもよい。
【００４１】
これにより、画像処理装置は、ポリゴンの描画命令により視線方向とポリゴン平面との成す角度が垂直になる場合、複数のＺ値を代表Ｚ値に集約する。すなわち、この場合、画像処理装置は、視線データおよびポリゴンデータを用いずに、ポリゴンの描画命令に基づいて、複数のＺ値を圧縮することを決定できる。
【００４２】
また、前記画像処理装置は、さらに、前記ポリゴンを描画するための描画命令に従って、前記複数のＺ値を圧縮するか否かを決定する第２決定部を備え、前記第２決定部は、前記描画命令により前記ポリゴンの平面が前記視線方向に対して垂直になる場合、かつ、前記描画命令により前記複数のステンシル値が一致する場合、前記複数のＺ値を圧縮すると決定してもよい。
【００４３】
これにより、画像処理装置は、ポリゴンの描画命令により、視線方向とポリゴン平面との成す角度が垂直になり、複数のステンシル値が一致する場合、複数のＺ値および複数のステンシル値を代表Ｚ値および代表ステンシル値に集約する。すなわち、この場合、画像処理装置は、視線データおよびポリゴンデータを用いずに、ポリゴンの描画命令に基づいて、複数のＺ値および複数のステンシル値を圧縮することを決定できる。
【００４４】
また、前記格納処理部は、前記複数のＺ値が圧縮されない場合、前記複数のＺ値を前記複数の画素に関連づけて前記Ｚバッファに格納してもよい。
【００４５】
これにより、画像処理装置は、複数のＺ値を圧縮しない場合、複数のＺ値をそのままＺバッファに格納する。したがって、画像処理装置は、圧縮による計算コストの増加を削減できる。
【００４６】
また、前記画像処理装置は、さらに、前記Ｚバッファから、前記複数の画素に関連づけて格納された前記代表Ｚ値を抽出し、前記代表Ｚ値を前記代表Ｚ値に関連づけられた前記複数の画素に割り当てる抽出処理部を備えてもよい。
【００４７】
これにより、画像処理装置は、Ｚバッファに格納された圧縮データを複数のＺ値に伸張できる。
【００４８】
また、前記画像処理装置は、さらに、前記Ｚバッファから、前記複数の画素に関連づけて格納された前記代表Ｚ値、または、前記複数の画素に関連づけて格納された前記複数のＺ値を抽出し、前記代表Ｚ値が抽出された場合、前記代表Ｚ値を前記代表Ｚ値に関連づけられた前記複数の画素に割り当て、前記複数のＺ値が抽出された場合、前記複数のＺ値を前記複数のＺ値に関連づけられた前記複数の画素に割り当てる抽出処理部を備えてもよい。
【００４９】
これにより、画像処理装置は、Ｚバッファに格納された複数のＺ値、または、Ｚバッファに格納された代表Ｚ値を適切に複数の画素に適用できる。
【００５０】
また、前記格納処理部は、前記複数のＺ値が圧縮される場合、前記ポリゴンを識別するためのポリゴンＩＤを前記複数の画素に関連づけて前記Ｚバッファに格納し、かつ、前記代表Ｚ値を前記ポリゴンＩＤに関連づけて前記Ｚバッファに格納することにより、前記代表Ｚ値を前記複数の画素に関連づけて前記Ｚバッファに格納してもよい。
【００５１】
これにより、画像処理装置は、ポリゴンＩＤを用いて、複数の画素に代表Ｚ値を適切に関連づけることができる。
【００５２】
また、本発明に係る集積回路は、３次元空間における奥行き方向の位置を示すＺ値を記憶するためのＺバッファを用いて、前記３次元空間のポリゴンを２次元平面の画像として描画する集積回路であって、前記ポリゴンを示すポリゴンデータから、前記ポリゴンの描画領域における複数の画素に対応する複数のＺ値を生成する生成部と、前記奥行き方向に沿う予め定められた視線方向を示す視線データと、前記ポリゴンデータとを用いて、前記複数のＺ値を圧縮するか否かを決定する決定部と、前記複数のＺ値が圧縮される場合、前記複数のＺ値から代表Ｚ値を決定し、決定された前記代表Ｚ値を前記複数の画素に関連づけて前記Ｚバッファに格納する格納処理部とを備える集積回路でもよい。
【００５３】
これにより、本発明に係る画像処理装置が、集積回路として実現される。
【００５４】
また、本発明に係る画像処理方法は、３次元空間における奥行き方向の位置を示すＺ値を記憶するためのＺバッファを用いて、前記３次元空間のポリゴンを２次元平面の画像として描画する画像処理方法であって、前記ポリゴンを示すポリゴンデータから、前記ポリゴンの描画領域における複数の画素に対応する複数のＺ値を生成する生成ステップと、前記奥行き方向に沿う予め定められた視線方向を示す視線データと、前記ポリゴンデータとを用いて、前記複数のＺ値を圧縮するか否かを決定する決定ステップと、前記複数のＺ値が圧縮される場合、前記複数のＺ値から代表Ｚ値を決定し、決定された前記代表Ｚ値を前記複数の画素に関連づけて前記Ｚバッファに格納する格納処理ステップとを含む画像処理方法でもよい。
【００５５】
これにより、本発明に係る画像処理装置が、画像処理方法として実現される。
【００５６】
また、本発明に係る画像表示装置は、前記画像処理装置と、前記画像処理装置によって描画された前記画像を表示する表示部とを備える画像表示装置でもよい。
【００５７】
これにより、画像表示装置は、本発明に係る画像処理装置によって描画された画像を表示することができる。
【発明の効果】
【００５８】
本発明により、低い計算コストで複数のＺ値が圧縮される。したがって、計算コストの低減と、データ量の削減との両方が達成される。
【図面の簡単な説明】
【００５９】
【図１】図１は、実施の形態１に係る画像処理装置の構成図である。
【図２】図２は、実施の形態１に係る描画処理の概念図である。
【図３】図３は、実施の形態１に係る画像処理装置の動作を示すフローチャートである。
【図４】図４は、実施の形態１に係る視線ベクトルとポリゴンとの関係を示す概念図である。
【図５】図５は、実施の形態１に係る画像処理装置で描画される画像を示す図である。
【図６】図６は、実施の形態１に係る複数のポリゴンのＸＺ平面への投影図である。
【図７】図７は、実施の形態１に係る画像の矩形領域への分割を示す図である。
【図８】図８は、実施の形態１に係るＺバッファへの格納形式を示す図である。
【図９】図９は、実施の形態１に係る格納形式の違いを示す図である。
【図１０】図１０は、実施の形態２に係るＺバッファへの格納形式を示す図である。
【図１１】図１１は、実施の形態３に係る画像処理装置の構成図である。
【図１２】図１２は、実施の形態３に係る画像処理装置の動作を示すフローチャートである。
【図１３】図１３は、実施の形態４に係る画像処理装置の構成図である。
【図１４】図１４は、実施の形態４に係る画像処理装置の動作を示すフローチャートである。
【図１５】図１５は、実施の形態５に係る画像処理装置の構成図である。
【図１６】図１６は、実施の形態５に係る画像処理装置の動作を示すフローチャートである。
【図１７】図１７は、実施の形態６に係る集積回路の構成図である。
【図１８】図１８は、実施の形態７に係るテレビジョン受像機の構成図である。
【図１９】図１９は、従来技術に係るＺバッファへの格納形式を示す図である。
【発明を実施するための形態】
【００６０】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、以下で説明する実施の形態は、いずれも本発明の好ましい一具体例を示す。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置および接続形態、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。本発明は、特許請求の範囲だけによって限定される。よって、以下の実施の形態における構成要素のうち、本発明の最上位概念を示す独立請求項に記載されていない構成要素については、本発明の課題を達成するのに必ずしも必要ではないが、より好ましい形態を構成するものとして説明される。
【００６１】
また、以下の記載では、Ｚ値は、小さいほど、より手前を示し、大きいほど、より奥を示す。しかし、Ｚ値が、小さいほど、より奥を示し、大きいほど、より手前を示す場合でも、本質は変わらない。
【００６２】
また、以下の記載における垂直には、ほぼ垂直（略垂直）が含まれる。ほぼ垂直とは、９０度に近い角度である。例えば、９０度を含む所定の範囲内の角度は、ほぼ垂直である。また、例えば、判定対象の角度を示す指標値の下位数ビットの切り捨てにより得られる新たな指標値が９０度を示す場合、判定対象の角度は、ほぼ垂直である。
【００６３】
（実施の形態１）
実施の形態１では、１つのＺ値は、３２ビットのデータで構成される。なお、３２ビットのデータは、例であって、１つのＺ値は、３２ビットよりも大きいビット数のデータで構成されてもよいし、３２ビットよりも小さいビット数のデータで構成されてもよい。
【００６４】
図１は、本実施の形態に係る画像処理装置の構成図である。図１に示された画像処理装置１１０は、主として、画像生成部１０１、Ｚバッファ制御部１０２およびカラーバッファ制御部１０３で構成される。図１には、画像処理装置１１０の他に、メモリ１０８および表示部１０９が示されている。
【００６５】
メモリ１０８は、データおよび情報を記憶するための記憶装置である。メモリ１０８は、Ｚ値を記憶するためのＺバッファ、および、色値を記憶するためのカラーバッファを含む。表示部１０９は、画像処理装置１１０によって描画された画像（ピクチャ）を表示する表示装置である。メモリ１０８および表示部１０９は、画像処理装置１１０に含まれていてもよい。
【００６６】
画像処理装置１１０の画像生成部１０１は、ポリゴンデータからポリゴンのＺ値および色値を画素毎に生成する。画像処理装置１１０のＺバッファ制御部１０２は、生成されたＺ値をメモリ１０８内のＺバッファに格納する。画像処理装置１１０のカラーバッファ制御部１０３は、生成された色値をメモリ１０８内のカラーバッファに格納する。
【００６７】
Ｚバッファ制御部１０２は、テスト部１０４、キャッシュメモリ１０５、Ｚバッファエンコーダ１０６およびＺバッファデコーダ１０７を備える。テスト部１０４は、先に生成されたＺ値と、後に生成されたＺ値とを比較するＺテストを実行する。
【００６８】
キャッシュメモリ１０５は、画素毎にＺ値および色値を記憶するためのメモリである。キャッシュメモリ１０５は、Ｚバッファ制御部１０２の内部に実装されてもよいし、外部に実装されてもよい。本実施の形態では、Ｚバッファ制御部１０２とカラーバッファ制御部１０３とは、キャッシュメモリ１０５を共用する。
【００６９】
Ｚバッファエンコーダ１０６は、キャッシュメモリ１０５に記憶されているＺ値をメモリ１０８のＺバッファに格納する。この時、Ｚバッファエンコーダ１０６は、必要に応じて、複数のＺ値を圧縮する。逆に、Ｚバッファデコーダ１０７は、Ｚバッファに格納されたＺ値をキャッシュメモリ１０５に格納する。この時、Ｚバッファデコーダ１０７は、必要に応じて、１つのＺ値を複数のＺ値に伸張する。
【００７０】
上述の構成を備える画像処理装置１１０は、３次元空間に含まれる複数のポリゴンを２次元平面の画像として描画する。画像処理装置１１０は、描画処理において生成されたＺ値および色値をメモリ１０８に格納する。この時、画像処理装置１１０は、ポリゴン毎に、画像処理を実行する。
【００７１】
より具体的には、画像処理装置１１０は、処理対象ポリゴンの描画領域における画素のＺ値に基づいて、メモリ１０８のＺ値および色値を更新する。ここで、処理対象のＺ値がメモリ１０８に格納されているＺ値よりも小さい場合、画像処理装置１１０はメモリ１０８のＺ値および色値を更新する。一方、処理対象のＺ値がメモリ１０８に格納されているＺ値以上である場合、画像処理装置１１０はメモリ１０８のＺ値および色値を更新しない。
【００７２】
そして、最終的にメモリ１０８に格納されている色値を基準に算出された色が表示部１０９に表示される。これにより、より手前のポリゴンが表示される。
【００７３】
なお、ここでは、典型的な例として、より手前のポリゴンが表示される例が示されている。しかし、別の基準で、Ｚ値および色値が更新されてもよい。例えば、より奥のポリゴンが表示されてもよい。この場合、処理対象のＺ値がメモリ１０８に格納されているＺ値よりも大きい場合、画像処理装置１１０はメモリ１０８のＺ値および色値を更新する。
【００７４】
また、画像処理装置１１０は、最終的にメモリ１０８に格納されている色値によって示される色をそのまま表示部１０９に表示してもよいし、格納されている色値から様々な計算によって得られる色を表示部１０９に表示してもよい。例えば、画像処理装置１１０は、処理対象画素の色値と、その周辺画素の色値とを重み付け計算により混ぜ合わせて得られる色を表示部１０９に表示してもよい。また、画像処理装置１１０は、処理対象画素の色と、過去に表示された色とを混ぜ合わせて得られる色を表示してもよい。
【００７５】
図２は、図１に示された画像処理装置１１０における描画処理の概念図である。図２の例では、画像処理装置１１０は、予め定められた視点２０１、および、予め定められた視線方向（視線ベクトル）２０２に基づいて、３次元空間２０３における３つのポリゴン２１１、２１２、２１３を２次元平面の画像として描画する。
【００７６】
この時、画像処理装置１１０は、３つのポリゴン２１１、２１２、２１３について、順に画像処理を実行する。なお、処理順序は、Ｚ値とは無関係である。
【００７７】
そして、手前のポリゴンが表示される典型例において、視点２０１に近いポリゴン２１１のＺ値および色値は、他の２つのポリゴン２１２、２１３よりも優先して、Ｚバッファおよびカラーバッファに維持される必要がある。そのため、画像処理装置１１０は、Ｚテストにより、維持すべきＺ値および色値を決定する。なお、Ｚテストは、画素毎に実行される。
【００７８】
図２では、ポリゴンの数が３であったが、ポリゴンの数が多ければ多いほど、比較の回数も多くなり、Ｚバッファへのアクセス頻度も大きくなる。また、Ｚテストが画素毎に実行されるため、ポリゴンの描画領域が大きければ大きいほど、比較の回数も多くなり、Ｚバッファへのアクセス頻度も大きくなる。
【００７９】
なお、視線方向２０２は、奥行き方向の位置を示すＺ値が大きくなる方向に沿う方向である。すなわち、視線方向２０２は、奥行き方向に沿う。
【００８０】
図３は、図１に示された画像処理装置１１０の動作を示すフローチャートである。図３に示されたステップＳ３０１〜Ｓ３０６は、画像生成部１０１で実行される。ステップＳ３０７〜Ｓ３１０は、Ｚバッファ制御部１０２で実行される。以下、ポリゴンデータの入力から画像を生成し表示するまでの処理について、図１および図３等を用いて説明する。
【００８１】
まず、画像生成部１０１に視線データとポリゴンデータが入力される。これにより、画像生成部１０１は、視線データとポリゴンデータを取得する（Ｓ３０１）。ポリゴンデータは、ポリゴンについての３つの頂点の位置および属性データで構成される。視線データは、視点と視線ベクトル（視線方向）で構成される。画像生成部１０１は、ポリゴンデータに対し、モデリング変換および視点座標変換を実行する。これにより、画像生成部１０１は、ポリゴンの視点座標データを生成する。
【００８２】
次に、画像生成部１０１は、ポリゴン毎に、一意の識別子として、ポリゴンＩＤを付与する（Ｓ３０２）。ポリゴンＩＤは、識別された順に付番される番号のような、ポリゴン番号でもよい。そして、画像生成部１０１は、ポリゴン平面と視線ベクトルＶとの成す角度θがほぼ垂直であるか否かを判定する（Ｓ３０３）。この判定処理について、以下に図面を用いて説明する。
【００８３】
図４は、本実施の形態に係る視線ベクトルとポリゴンとの関係を示す概念図である。図４には、ポリゴンＰと視線ベクトルＶが示されている。ポリゴンＰは、３つの頂点Ｖ０、Ｖ１、Ｖ２で構成される。画像生成部１０１は、式２および式３により、２つの頂点ベクトルＶ０１、Ｖ１２を取得する。
【００８４】
【数１】
2013025406.tif 000003
【００８５】
【数２】
2013025406.tif 000004
【００８６】
次に、画像生成部１０１は、得られた頂点ベクトルＶ０１、Ｖ１２を用いて、式４および式５により、２つの内積値Ｎ１、Ｎ２を計算する。
【００８７】
【数３】
2013025406.tif 000005
【００８８】
【数４】
2013025406.tif 000006
【００８９】
ここで、「・」はベクトルの内積記号を示す。画像生成部１０１は、２つの内積値Ｎ１、Ｎ２を計算する前に、視線ベクトルＶ、および、２つの頂点ベクトルＶ０１、Ｖ１２を正規化してもよい。そして、得られた２つの内積値Ｎ１、Ｎ２が共にほぼ０に等しい場合、すなわち、式６の条件を満たす場合、画像生成部１０１は、視線ベクトルＶとポリゴン平面との成す角度θはほぼ垂直であると判定する。
【００９０】
−ε＜Ｎ１＜ε  かつ  −ε＜Ｎ２＜ε      ・・・（式６）
【００９１】
ここで、εは、予め与えられた微小値である。画像生成部１０１は、内積値Ｎ１、Ｎ２の下位の数ビットを切り捨てることにより得られる値が０になる場合、視線ベクトルＶとポリゴン平面との成す角度θがほぼ垂直であると判定してもよい。また、画像生成部１０１は、切り捨てに限らず、四捨五入または切り上げ等を実行してもよい。また、画像生成部１０１は、内積値Ｎ１、Ｎ２に定数νを足した後に下位の数ビットを切り捨てることにより、下位の数ビットを四捨五入してもよい。
【００９２】
視線ベクトルＶとポリゴン平面との成す角度θがほぼ垂直である場合（Ｓ３０３でＹｅｓ）、画像生成部１０１は、ポリゴン圧縮フラグを１に設定する（Ｓ３０４）。視線ベクトルＶとポリゴン平面との成す角度θがほぼ垂直でない場合（Ｓ３０３でＮｏ）、画像生成部１０１は、ポリゴン圧縮フラグを０に設定する（Ｓ３０５）。この判定処理について、図面を用いて、以下に、より具体的な例を示す。
【００９３】
図５は、図１に示された画像処理装置１１０で描画される画像を示す図である。例えば、図５の画像５０１を描画するためのポリゴンデータが、画像生成部１０１に入力される。写真オブジェクト５０２、ユーザーインターフェースオブジェクト５０３等は、それぞれが複数のポリゴンによって構成されている。
【００９４】
例えば、写真オブジェクト５０２は、複数のポリゴンで構成される平面状の形態である。そして、その平面に写真を表現するためのテクスチャ効果が施される。典型的には、１つのポリゴンは微小な平面状の三角形である。画像生成部１０１は、これらのポリゴンを示すポリゴンデータを視点座標データに変換する。
【００９５】
図６は、図５のように描画される複数のポリゴンのＸＺ平面への投影図である。図６の投影図は、視点座標系の３次元空間における複数のポリゴンをＸＺ平面へ投影することにより得られる。図６には、Ｘ軸およびＺ軸の他に、複数の線分（オブジェクト像）が示されている。これらの線分は、図５に示されたオブジェクトに対応する。
【００９６】
図５の写真オブジェクト５０２を構成する複数のポリゴンの投影結果がオブジェクト像６０２である。また、図５のユーザーインターフェースオブジェクト５０３を構成する複数のポリゴンの投影結果がオブジェクト像６０３である。
【００９７】
図３のステップＳ３０３において、画像生成部１０１は、オブジェクト像６０２に属する複数のポリゴンの平面が、Ｚ軸に相当する視線ベクトルに対して、ほぼ垂直であると判定する。そして、画像生成部１０１は、これらのポリゴン圧縮フラグを１に設定する（Ｓ３０４）。一方、画像生成部１０１は、オブジェクト像６０３に属する複数のポリゴンについての複数のポリゴン圧縮フラグを０に設定する（Ｓ３０５）。
【００９８】
次に、画像生成部１０１は、ポリゴンの描画領域における画素値を生成する（Ｓ３０６）。すなわち、ポリゴンの描画領域における複数の画素のそれぞれについて、Ｚ値および色値を生成する。
【００９９】
次に、Ｚバッファ制御部１０２の処理について説明する。まず、図７を用いて、Ｚバッファ制御部１０２の処理の例を示す。
【０１００】
図７は、図５に示された画像５０１の矩形領域への分割を示す図である。図７に示された画像７０１は、図５の画像５０１に対応する画像であって、８画素×８画素の矩形領域に分割されている。Ｚバッファ制御部１０２は、矩形領域毎に、Ｚバッファへの格納、および、Ｚバッファからの抽出を実行する。また、図７には、矩形領域７０２、７０３が、それぞれ、拡大され、矩形領域７０４、７０５として示されている。
【０１０１】
図７のそれぞれのオブジェクトは、複数のポリゴンによって構成されている。例えば、矩形領域７０５には、写真オブジェクト５０２を構成する複数のポリゴンが示されている。
【０１０２】
Ｚバッファ制御部１０２のテスト部１０４は、画像生成部１０１によって生成されたＺ値についてＺテストを実行する。そして、テスト部１０４は、最終的にＺ値をＺバッファに書き込むかどうかを決定する。画像生成部１０１は、Ｚテストの結果をカラーバッファ制御部１０３に通知する。カラーバッファ制御部１０３は、メモリ１０８上のカラーバッファに色値を書き込むかどうかを決定する。最終的に、表示部１０９が、メモリ１０８上のカラーバッファに保存された色値を基準にして算出される色を画面に表示する。
【０１０３】
上述の処理を図３のフローに沿って、以下に説明する。Ｚバッファ制御部１０２は、画像７０１の領域を８画素×８画素の矩形領域に分割する（Ｓ３０７）。そして、Ｚバッファ制御部１０２は、この矩形領域単位で複数のＺ値をキャッシュメモリ１０５に格納する。また、Ｚバッファ制御部１０２は、Ｚバッファエンコーダ１０６を経由して、キャッシュメモリ１０５の複数のＺ値をメモリ１０８上のＺバッファに書き込む。
【０１０４】
また、Ｚバッファ制御部１０２は、メモリ１０８上のＺバッファから、Ｚバッファデコーダ１０７を経由して、複数のＺ値を読み込む。そして、Ｚバッファ制御部１０２は、読み込まれた複数のＺ値をキャッシュメモリ１０５に保存する。また、Ｚバッファ制御部１０２は、Ｚバッファエンコーダ１０６またはＺバッファデコーダ１０７を経由せずに、ダイレクトに、Ｚバッファへの書き込み、および、Ｚバッファからの読み込みを実行してもよい。
【０１０５】
Ｚバッファ制御部１０２は、Ｚ値をメモリ１０８上のＺバッファへ書き込む際、まず、画像生成部１０１でポリゴン単位に生成されたポリゴン圧縮フラグを参照する（Ｓ３０８）。ポリゴン圧縮フラグが１の場合（Ｓ３０８でＹｅｓ）、Ｚバッファエンコーダ１０６は、代表Ｚ値と、ポリゴンＩＤとをＺバッファに保存する（Ｓ３０９）。そして、ポリゴン圧縮フラグが０の場合（Ｓ３０８でＮｏ）、Ｚバッファエンコーダ１０６は、３２ビットのＺ値をそのままＺバッファに保存する（Ｓ３１０）。
【０１０６】
図８は、本実施の形態に係るＺバッファへの格納形式を示す図である。例えば、Ｚバッファエンコーダ１０６は、図８に示された８画素×８画素の矩形領域に描画される３つのポリゴンＡ、Ｂ、Ｃの複数のＺ値について、順に格納処理を実行する。この時、Ｚバッファエンコーダ１０６は、ポリゴンＡの複数の画素のうち、最初に処理される画素のＺ値を代表Ｚ値ｚＡと決定する。そして、Ｚバッファエンコーダ１０６は、その代表Ｚ値ｚＡの３２ビットデータをＺバッファに保存する。また、Ｚバッファエンコーダ１０６は、ポリゴンＡの複数の画素に関連づけて、ポリゴンＩＤ（Ａ）をＺバッファに保存する。
【０１０７】
Ｚバッファエンコーダ１０６は、同様に、ポリゴンＢ、Ｃもそれぞれ１つの代表Ｚ値ｚＢ、ｚＣをＺバッファに保存する。また、ポリゴンＢ、Ｃの複数の画素に関連づけてポリゴンＩＤ（Ｂ、Ｃ）をＺバッファに保存する。
【０１０８】
Ｚバッファ制御部１０２は、Ｚバッファデコーダ１０７を経由してメモリ１０８上のＺバッファからＺ値を読み込む際、画素毎に保存されたポリゴンＩＤを参照する。そして、Ｚバッファ制御部１０２は、ポリゴンＩＤに対応する代表Ｚ値を各画素のＺ値としてキャッシュメモリ１０５に保存する。
【０１０９】
上述の構成によれば、画像生成部１０１が、ポリゴンを構成するポリゴンデータから、ポリゴンを識別するポリゴンＩＤと、各画素の色値とＺ値とを生成する。また、画像生成部１０１が、視線データとポリゴンデータとから、ポリゴン圧縮フラグを生成する。
【０１１０】
Ｚバッファ制御部１０２は、画面領域を矩形単位に分割することにより、ブロック領域を定義する。Ｚバッファ制御部１０２は、ブロック領域に含まれるポリゴンのポリゴンＩＤとポリゴン圧縮フラグとを取得する。Ｚバッファ制御部１０２は、ブロック領域に含まれ、かつ、ポリゴンの描画領域に含まれる複数の画素に対応する複数のＺ値から、１つの代表Ｚ値を決定する。そして、Ｚバッファ制御部１０２は、代表Ｚ値をＺバッファに格納し、また、複数の画素に関連づけてポリゴンＩＤをＺバッファに格納する。
【０１１１】
これにより、画像処理装置１１０は、Ｚバッファに書き込むデータ量およびＺバッファから読み出すデータ量を削減することができる。また、Ｚバッファ制御部１０２に乗算処理を実行するための追加の演算器が無くても、画像処理装置１１０は、Ｚバッファへ高速にアクセスすることができる。
【０１１２】
具体的に、ポリゴンＩＤに４ビットが割り当てられると仮定する。この場合、８画素×８画素の矩形領域における複数の画素に対応する複数のポリゴンＩＤのデータ量は、８×８×４（ビット）＝２５６（ビット）である。３つの代表Ｚ値のデータ量は、３×３２（ビット）＝９６（ビット）である。データ量の合計は、３５２ビットである。
【０１１３】
したがって、画像処理装置１１０は、高い圧縮率を実現することができる。また、矩形領域内に存在するポリゴン数が１つ増えた場合も、画像処理装置１１０は、データ量の増加を３２ビットに抑制できる。
【０１１４】
また、画像生成部１０１は、ポリゴン圧縮フラグを決定するための演算について、座標計算を行うための演算器を利用することができる。そのため、画像処理装置１１０は、描画性能への影響の大きいＺ値の計算コストの増加を抑制しつつ、Ｚ値を高い圧縮率でＺバッファに保存することができる。
【０１１５】
さらに、Ｚバッファ制御部１０２は、Ｚバッファから読み出して伸張することにより得られるＺ値と、Ｚバッファへ書き込む前のＺ値、すなわち、圧縮前のＺ値との間で、演算誤差のないロスレスな圧縮制御を実行する。そのため、画像処理装置１１０は、画像の品質を劣化させずに、Ｚバッファへ高速にアクセスできる。
【０１１６】
図９は、視線方向とポリゴンの平面との成す角度がほぼ垂直であるか否かによって異なる２つの格納形式の違いを示す図である。図９に示された矩形領域は、複数の画素を含み、また、ポリゴンの描画領域を含む。ポリゴンの描画領域には、複数の画素ａ〜ｌがある。
【０１１７】
視線方向とポリゴンの平面との成す角度がほぼ垂直である場合、Ｚバッファ制御部１０２は、複数の画素ａ〜ｌに関連づけて代表Ｚ値をＺバッファに格納する。視線方向とポリゴンの平面との成す角度がほぼ垂直でない場合、Ｚバッファ制御部１０２は、複数の画素ａ〜ｌに関連づけて複数のＺ値をＺバッファに格納する。すなわち、Ｚバッファ制御部１０２は、複数の画素ａ〜ｌのそれぞれについて、画素に対応するＺ値をそのままＺバッファに格納する。これにより、傾き値に基づく計算、および、傾き値のデータ量を省略できる。
【０１１８】
なお、本実施の形態において、画像生成部１０１は、ポリゴンを構成する２つの頂点ベクトルと、視線ベクトルとの内積を用いて、ポリゴン圧縮フラグを設定する。しかし、画像生成部１０１は、ポリゴンの裏面から表面への面法線Ｎを求め、面法線Ｎの逆向きのベクトルと、視線ベクトルＶの一致度を用いて、ポリゴン圧縮フラグを設定してもよい。
【０１１９】
また、ポリゴン圧縮フラグが０の場合、Ｚバッファ制御部１０２は、３２ビットのＺ値をそのままＺバッファに保存したが、ＰＮＧ、ＪＰＥＧ、ランレングス・ハフマン符号化など、別の圧縮アルゴリズムを用いて圧縮されたＺ値を保存しても良い。
【０１２０】
また、本実施の形態では、視線方向とポリゴン平面とが、ほぼ垂直である場合、複数のＺ値が圧縮されている。このような場合以外にも、視線方向とポリゴン平面との関係によっては、画質に影響がない場合がある。例えば、視線方向とポリゴン平面との関係によっては、ポリゴンの描画領域が極端に小さくなる場合がある。このような場合に、ポリゴンの複数のＺ値が圧縮されてもよい。
【０１２１】
（実施の形態２）
実施の形態２に係る画像処理装置は、図１に示された実施の形態１と同じ構成を持つ。したがって、以下では、実施の形態１で示された符号を用いて、説明する。
【０１２２】
本実施の形態では、１つの画素に対応する１つのＺ値が２４ビットで構成される。そして、１つの画素に対応する１つのステンシル値が８ビットで構成される。すなわち、Ｚ値およびステンシル値は、合計３２ビットのデータで構成される。
【０１２３】
また、本実施の形態において、Ｚバッファ制御部１０２は、画像７０１の領域を８画素×８画素の矩形領域に分割する。Ｚバッファ制御部１０２は、この矩形領域のＺ値およびステンシル値をキャッシュメモリ１０５に保持する。そして、Ｚバッファ制御部１０２は、Ｚバッファエンコーダ１０６を経由して、キャッシュメモリ１０５のＺ値およびステンシル値をメモリ１０８上のＺバッファに書き込む。
【０１２４】
また、Ｚバッファ制御部１０２は、メモリ１０８上のＺバッファからＺバッファデコーダ１０７を経由して、Ｚ値およびステンシル値を読み込む。Ｚバッファ制御部１０２は、読み込んだＺ値およびステンシル値をキャッシュメモリ１０５に保存する。また、Ｚバッファ制御部１０２は、ダイレクトにメモリ１０８上のＺバッファに対する書き込みおよび読み込みも可能である。
【０１２５】
なお、ステンシルまたはステンシル操作とは、ポリゴンに施される特殊効果を意味する。例えば、ポリゴンに施される影、型抜きおよびグラデーションは、ステンシルの例である。画素に対応するステンシル値は、ポリゴンへのステンシル操作により特定される。ステンシル操作とは、ポリゴンにステンシルを施す操作を意味する場合もある。以下、本実施の形態に係る画像処理装置１１０の処理について、図１を用いて説明する。
【０１２６】
まず、画像生成部１０１は、実施の形態１と同様に、ポリゴンの視点座標データを生成する。そして、画像生成部１０１は、ポリゴン毎にポリゴンＩＤを付与する。画像生成部１０１は、ポリゴンの３つの頂点と、視線ベクトルＶとを用いて、視線ベクトルＶとポリゴン平面との成す角度を判定する。そして、画像生成部１０１は、ポリゴン圧縮フラグに１または０を設定する。
【０１２７】
ただし、ポリゴンデータが、視線に垂直なポリゴンを描画するための描画命令によって生成され、画像生成部１０１に入力される場合がある。例えば、視線に垂直なポリゴンを描画するための描画命令として、２次元矩形描画命令、または、パーティクルポリゴン生成命令（例えば、ＯｐｅｎＧＬＥＳ規格のｇｌＰｏｉｎｔＳｐｒｉｔｅ命令）などがある。このような場合、画像生成部１０１は、視線ベクトルＶとポリゴン平面の成す角度の計算を行わずに、ポリゴン圧縮フラグを１に設定する。
【０１２８】
なお、画像生成部１０１は、視線に垂直なポリゴンを描画するための描画命令以外の描画命令に従って、ポリゴン圧縮フラグを１に設定してもよい。例えば、画像生成部１０１は、描画命令に従って描画されるポリゴンの描画領域が極端に小さい場合、ポリゴン圧縮フラグを１に設定してもよい。ポリゴンの描画領域が極端に小さいか否かの判断には、予め定められた閾値が用いられてもよい。
【０１２９】
次に、画像生成部１０１は、ポリゴンに施されたステンシル操作を示すステンシル操作属性を参照する。ポリゴンに対しステンシル操作が全く行われない場合、または、ポリゴンの各画素のステンシル値が同一になるようなステンシル操作のみが行われる場合、画像生成部１０１は、ポリゴン圧縮フラグの値を変更しない。上記以外の場合には、画像生成部１０１は、ポリゴン圧縮フラグを０に設定する。すなわち、画像生成部１０１は、複数のステンシル値が一致しない場合、ポリゴン圧縮フラグを０に戻す。
【０１３０】
次に、Ｚバッファ制御部１０２は、Ｚ値およびステンシル値をメモリ１０８上のＺバッファへ書き込む際、まず、画像生成部１０１で生成された画素値とポリゴン圧縮フラグを参照する。ポリゴン圧縮フラグが１である場合、Ｚバッファ制御部１０２は、ポリゴンを構成する複数の画素値とポリゴンＩＤとをＺバッファエンコーダ１０６に通知する。ポリゴン圧縮フラグが０である場合、Ｚバッファ制御部１０２は、Ｚ値およびステンシル値で構成される合計３２ビットのデータをそのままＺバッファに保存する。
【０１３１】
図１０は、本実施の形態に係るＺバッファへの格納形式を示す図である。例えば、Ｚバッファエンコーダ１０６は、図１０に示す様に、８画素×８画素の矩形領域に描画される３つのポリゴンＡ、Ｂ、Ｃの複数のＺ値および複数のステンシル値を順に処理する。
【０１３２】
Ｚバッファエンコーダ１０６は、ポリゴンＡを構成する複数の画素のうち最初に処理する画素のＺ値およびステンシル値を代表値に決定する。Ｚバッファエンコーダ１０６は、その代表値の３２ビットデータ（代表Ｚ値ｚＡ、代表ステンシル値ｓＡ）をＺバッファに保存する。Ｚバッファエンコーダ１０６は、ポリゴンＡを構成する複数の画素に関連づけてポリゴンＩＤ（Ａ）をＺバッファに保存する。
【０１３３】
同様に、ポリゴンＢについて、Ｚバッファエンコーダ１０６は、代表Ｚ値ｚＢおよび代表ステンシル値ｓＢをＺバッファに保存し、ポリゴンＢを構成する複数の画素に関連づけてポリゴンＩＤをＺバッファに保存する。同様に、ポリゴンＣについて、代表Ｚ値ｚＣおよび代表ステンシル値ｓＣを保存し、ポリゴンＣを構成する複数の画素に関連づけてポリゴンＩＤ（Ｃ）をＺバッファに保存する。
【０１３４】
また、Ｚバッファ制御部１０２は、Ｚバッファデコーダ１０７を経由してメモリ１０８上のＺバッファからＺ値およびステンシル値を読み込む。この時、Ｚバッファ制御部１０２は、複数の画素に関連づけて保存されたポリゴンＩＤを参照する。そして、Ｚバッファ制御部１０２は、ポリゴンＩＤに対応する代表値を、ポリゴンＩＤに関連づけられた複数の画素のＺ値および複数のステンシル値として、キャッシュメモリ１０５に保存する。
【０１３５】
上記の通り、画像生成部１０１は、ポリゴンを構成するポリゴンデータから、ポリゴンを識別するためのポリゴンＩＤを生成する。また、画像生成部１０１は、ポリゴンの描画領域の画素の色値とＺ値とステンシル値とを生成する。そして、画像生成部１０１は、視線とポリゴンデータとポリゴンに施されるステンシル操作属性とから、ポリゴン圧縮フラグを生成する。
【０１３６】
Ｚバッファ制御部１０２は、描画領域を矩形単位に分割したブロック領域を定義する。また、Ｚバッファ制御部１０２は、ブロック領域に含まれるポリゴンのポリゴンＩＤとポリゴン圧縮フラグを識別する。
【０１３７】
そして、Ｚバッファ制御部１０２は、ブロック領域に含まれるポリゴンの複数の画素に対応する複数のＺ値および複数のステンシル値から、１つの代表Ｚ値および１つの代表ステンシル値を決定する。そして、Ｚバッファ制御部１０２は、代表Ｚ値および代表ステンシル値をＺバッファに格納する。また、Ｚバッファ制御部１０２は、ポリゴンの複数の画素に関連づけてポリゴンＩＤをＺバッファに格納する。
【０１３８】
これにより、Ｚ値と共にステンシル値がＺバッファに書き込まれる場合でも、画像処理装置１１０は、Ｚバッファに書き込まれるＺ値とステンシル値とのデータ量、および、Ｚバッファから読み出されるＺ値とステンシル値とのデータ量を削減できる。そして、画像処理装置１１０は、Ｚバッファ制御部１０２に追加の演算器がなくても、Ｚバッファへ高速にアクセスできる。そのため、画像処理装置１１０は、大画面上に、ブラウザ、写真ビューワおよびマルチウィンドウなど、視線に垂直な画像を大量に表示するようなシステムで、特に効果を発揮する。
【０１３９】
本実施の形態では、実施の形態１と同様に、ポリゴンＩＤに４ビット割り当てた場合、８画素×８画素の矩形領域における複数の画素に対応するデータ量は、８×８×４（ビット）＝２５６（ビット）である。３つの代表Ｚ値および３つの代表ステンシル値のデータ量は、３×３２（ビット）＝９６（ビット）である。合計のデータ量は、３５２ビットである。すなわち、本実施の形態に係る画像処理装置１１０は、高い圧縮率を実現できる。
【０１４０】
また、画像生成部１０１は、視線に垂直なポリゴンを描画するための描画命令によって生成されたポリゴンについて、演算を実行することなくポリゴン圧縮フラグを１に設定する。これにより、画像処理装置１１０は、Ｚバッファへのさらなる高速アクセスが可能となる。
【０１４１】
なお、実施の形態１および実施の形態２における画像生成部１０１、Ｚバッファ制御部１０２およびカラーバッファ制御部１０３等の機能部は、典型的には集積回路であるＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）として実現される。これらは個別に１チップ化されても良いし、一部または全てを含むように１チップ化されてもよい。ここではＬＳＩとしたが、集積度の違いにより、ＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。
【０１４２】
また、集積回路化の手法はＬＳＩに限るものではなく、専用回路または汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、または、ＬＳＩ内部の回路セルの接続および設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。さらには、半導体技術の進歩または派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。
【０１４３】
（実施の形態３）
実施の形態３に係る画像処理装置は、実施の形態１で示された画像処理装置１１０の主要な構成要素を備える。
【０１４４】
図１１は、本実施の形態に係る画像処理装置の構成図である。図１１に示された画像処理装置１１００は、Ｚバッファ１１１０を用いて、３次元空間のポリゴンを２次元平面の画像として描画する。Ｚバッファ１１１０は、３次元空間における奥行き方向の位置を示すＺ値を記憶するためのバッファである。また、画像処理装置１１００は、生成部１１０１、決定部１１０２および格納処理部１１０３を備える。
【０１４５】
図１２は、図１１に示された本実施の形態に係る画像処理装置１１００の動作を示すフローチャートである。
【０１４６】
まず、生成部１１０１は、ポリゴンデータから、ポリゴンの描画領域における複数の画素に対応する複数のＺ値を生成する（Ｓ１２０１）。ポリゴンデータは、ポリゴンを示すデータである。
【０１４７】
次に、決定部１１０２は、視線データと、ポリゴンデータとを用いて、複数のＺ値を圧縮するか否かを決定する（Ｓ１２０２）。視線データは、奥行き方向に沿う予め定められた視線方向を示す。
【０１４８】
次に、格納処理部１１０３は、複数のＺ値が圧縮される場合、複数のＺ値から代表Ｚ値を決定する。そして、格納処理部１１０３は、決定された代表Ｚ値を複数の画素に関連づけてＺバッファ１１１０に格納する（Ｓ１２０３）。
【０１４９】
これにより、画像処理装置１１００は、視線データおよびポリゴンデータに基づいて、適応的に、複数のＺ値を圧縮するか否かを決定する。さらに、画像処理装置１１００は、複数のＺ値を圧縮する場合、複数のＺ値を示す圧縮データとして１つの代表Ｚ値のみを格納する。したがって、画像処理装置１１００は、低い計算コストで複数のＺ値を圧縮し、複数のＺ値を示す圧縮データをＺバッファ１１１０に格納することができる。
【０１５０】
なお、本実施の形態の生成部１１０１および決定部１１０２は、実施の形態１の画像生成部１０１に対応する。したがって、生成部１１０１および決定部１１０２は、実施の形態１の画像生成部１０１で実行される処理を実行してもよい。また、本実施の形態の格納処理部１１０３は、実施の形態１のＺバッファ制御部１０２に対応する。したがって、格納処理部１１０３は、実施の形態１のＺバッファ制御部１０２で実行される処理を実行してもよい。
【０１５１】
また、決定部１１０２は、視線データとポリゴンデータとを用いて、視線方向と、ポリゴンの平面との成す角度に依存させて、複数のＺ値を圧縮するか否かを決定してもよい。
【０１５２】
これにより、画像処理装置１１００は、視線方向とポリゴン平面との成す角度に基づいて、適応的に、複数のＺ値を圧縮するか否かを決定する。したがって、画像処理装置１１００は、複数のＺ値を代表Ｚ値に集約できるか否かを適切に判定することができる。
【０１５３】
また、決定部１１０２は、視線データとポリゴンデータとを用いて、角度が略垂直であるか否かを判定してもよい。そして、決定部１１０２は、角度が略垂直であると判定された場合、複数のＺ値を圧縮すると決定してもよい。
【０１５４】
これにより、画像処理装置１１００は、視線方向とポリゴン平面との成す角度が略垂直と認められる場合、複数のＺ値を代表Ｚ値に集約する。視線方向とポリゴン平面との成す角度が略垂直である場合、集約による画質への影響は小さい。したがって、画像処理装置１１００は、画質への影響を抑制しつつ、複数のＺ値を圧縮することができる。
【０１５５】
また、生成部１１０１は、さらに、ポリゴンデータから、複数の画素のそれぞれについて、ステンシル値を生成してもよい。これにより、生成部１１０１は、複数の画素に対応する複数のステンシル値を生成する。ここで、ステンシル値は、ステンシル操作により特定される値である。また、ステンシル操作は、ポリゴンに施される特殊効果である。
【０１５６】
そして、決定部１１０２は、視線データと、ポリゴンデータと、ステンシル操作属性とを用いて、複数のＺ値を圧縮するか否かを決定してもよい。ここで、ステンシル操作属性は、ステンシル操作を示す。
【０１５７】
そして、複数のＺ値が圧縮される場合、格納処理部１１０３は、複数のＺ値から代表Ｚ値を決定してもよい。そして、この場合、格納処理部１１０３は、複数のステンシル値から代表ステンシル値を決定してもよい。そして、格納処理部１１０３は、代表Ｚ値および代表ステンシル値を複数の画素に関連づけてＺバッファ１１１０に格納してもよい。
【０１５８】
これにより、画像処理装置１１００は、視線データ、ポリゴンデータおよびステンシル操作属性に基づいて、適応的に、複数のＺ値を圧縮するか否かを決定する。さらに、画像処理装置１１００は、複数のＺ値を１つの代表Ｚ値に圧縮すると共に、複数のステンシル値を１つの代表ステンシル値に圧縮する。
【０１５９】
したがって、Ｚバッファ１１１０にステンシル値が格納される場合でも、画像処理装置１１００は、低い計算コストで複数のＺ値および複数のステンシル値を圧縮し、複数のＺ値および複数のステンシル値を示す圧縮データをＺバッファ１１１０に格納することができる。
【０１６０】
また、決定部１１０２は、（ｉ）視線方向と、ポリゴンの平面との成す角度、および、（ｉｉ）ステンシル操作により複数のステンシル値が一致するか否かに依存させて、複数のＺ値を圧縮するか否かを決定してもよい。
【０１６１】
これにより、画像処理装置１１００は、視線方向とポリゴン平面との成す角度、および、複数のステンシル値に基づいて、適応的に、複数のＺ値および複数のステンシル値を圧縮するか否かを決定することができる。したがって、画像処理装置１１００は、複数のＺ値および複数のステンシル値を代表Ｚ値および代表ステンシル値に集約できるか否かを適切に判定することができる。
【０１６２】
また、決定部１１０２は、視線データとポリゴンデータとを用いて、角度が略垂直であるか否かを判定し、さらに、ステンシル操作属性を用いて、ステンシル操作により複数のステンシル値が一致するか否かを判定してもよい。そして、決定部１１０２は、角度が略垂直であると判定され、かつ、複数のステンシル値が一致すると判定された場合、複数のＺ値を圧縮すると決定してもよい。
【０１６３】
これにより、画像処理装置１１００は、視線方向とポリゴン平面との成す角度が略垂直と認められる場合、かつ、複数のステンシル値が一致する場合に、複数のＺ値を代表Ｚ値に集約し、複数のステンシル値を代表ステンシル値に集約する。このような場合、集約による画質への影響は小さい。したがって、画像処理装置１１００は、画質への影響を抑制しつつ、複数のＺ値を圧縮することができる。
【０１６４】
また、格納処理部１１０３は、複数のＺ値が圧縮されない場合、複数のＺ値を複数の画素に関連づけてＺバッファ１１１０に格納してもよい。すなわち、格納処理部１１０３は、複数のＺ値が圧縮されない場合、複数のＺ値のそれぞれを対応する画素に関連づけてＺバッファ１１１０に格納してもよい。これにより、画像処理装置１１００は、複数のＺ値を圧縮しない場合、複数のＺ値をそのままＺバッファ１１１０に格納する。したがって、画像処理装置１１００は、圧縮による計算コストの増加を削減できる。
【０１６５】
また、格納処理部１１０３は、複数のＺ値が圧縮される場合、ポリゴンを識別するためのポリゴンＩＤを複数の画素に関連づけてＺバッファ１１１０に格納してもよい。そして、この場合、格納処理部１１０３は、代表Ｚ値をポリゴンＩＤに関連づけてＺバッファ１１１０に格納してもよい。これにより、格納処理部１１０３は、代表Ｚ値を複数の画素に関連づけてＺバッファ１１１０に格納する。したがって、画像処理装置１１００は、ポリゴンＩＤを用いて、複数の画素に代表Ｚ値を適切に関連づけることができる。
【０１６６】
（実施の形態４）
実施の形態４に係る画像処理装置は、実施の形態３で示された画像処理装置１１００の構成に変形が加えられている。
【０１６７】
図１３は、本実施の形態に係る画像処理装置の構成図である。図１３に示された画像処理装置１３００は、生成部１１０１、第１決定部１３０１、第２決定部１３０２および格納処理部１１０３を備える。すなわち、画像処理装置１３００は、実施の形態３の決定部１１０２に代えて、第１決定部１３０１および第２決定部１３０２を備える。
【０１６８】
第１決定部１３０１は、実施の形態３の決定部１１０２と同様の構成要素である。したがって、実質的には、画像処理装置１３００は、実施の形態３の画像処理装置１１００と比較して、第２決定部１３０２を追加の構成要素として備える。その他の構成要素は、実施の形態３と同様の処理を実行する。
【０１６９】
図１４は、図１３に示された本実施の形態に係る画像処理装置１３００の動作を示すフローチャートである。
【０１７０】
まず、生成部１１０１は、ポリゴンデータから、ポリゴンの描画領域における複数の画素に対応する複数のＺ値を生成する（Ｓ１４０１）。
【０１７１】
次に、第２決定部１３０２は、ポリゴンの描画命令に従って、複数のＺ値を圧縮するか否かを決定する（Ｓ１４０２）。ポリゴンの描画命令は、ポリゴンを描画するための命令である。
【０１７２】
次に、格納処理部１１０３は、複数のＺ値が圧縮される場合、複数のＺ値から代表Ｚ値を決定する。そして、格納処理部１１０３は、決定された代表Ｚ値を複数の画素に関連づけてＺバッファ１１１０に格納する（Ｓ１４０３）。
【０１７３】
なお、図１４は、本実施の形態に係る画像処理装置１３００の動作の一例を示している。例えば、画像処理装置１３００は、図１２に示された動作を実行してもよい。この場合、実施の形態１の決定部１１０２によって実行される処理は、本実施の形態の第１決定部１３０１によって実行される。
【０１７４】
これにより、画像処理装置１３００は、複数のＺ値を圧縮するか否かを、視線データおよびポリゴンデータに基づいて決定することに加えて、ポリゴンの描画命令に基づいて適応的に決定する。したがって、画像処理装置１３００は、視線データおよびポリゴンデータを用いずに、ポリゴンの描画命令に基づいて、複数のＺ値を圧縮するか否かを適応的に決定することもできる。
【０１７５】
なお、本実施の形態の生成部１１０１、第１決定部１３０１および第２決定部１３０２は、実施の形態１の画像生成部１０１に対応する。したがって、生成部１１０１、第１決定部１３０１および第２決定部１３０２は、実施の形態１の画像生成部１０１で実行される処理を実行してもよい。
【０１７６】
また、第２決定部１３０２は、描画命令によりポリゴンの平面が視線方向に対して垂直になる場合、複数のＺ値を圧縮すると決定してもよい。
【０１７７】
これにより、画像処理装置１３００は、ポリゴンの描画命令により視線方向とポリゴン平面との成す角度が垂直になる場合、複数のＺ値を代表Ｚ値に集約する。すなわち、この場合、画像処理装置１３００は、視線データおよびポリゴンデータを用いずに、ポリゴンの描画命令に基づいて、複数のＺ値を圧縮することを決定できる。
【０１７８】
また、第２決定部１３０２は、描画命令によりポリゴンの平面が視線方向に対して垂直になる場合、かつ、描画命令により複数のステンシル値が一致する場合、複数のＺ値を圧縮すると決定してもよい。
【０１７９】
これにより、画像処理装置１３００は、ポリゴンの描画命令により、視線方向とポリゴン平面との成す角度が垂直になり、複数のステンシル値が一致する場合、複数のＺ値および複数のステンシル値を代表Ｚ値および代表ステンシル値に集約する。すなわち、この場合、画像処理装置１３００は、視線データおよびポリゴンデータを用いずに、ポリゴンの描画命令に基づいて、複数のＺ値および複数のステンシル値を圧縮することを決定できる。
【０１８０】
また、画像処理装置１３００は、第１決定部１３０１を備えず、第２決定部１３０２のみを備えてもよい。そして、画像処理装置１３００は、描画命令のみに基づいて、複数のＺ値を圧縮するか否かを決定してもよい。
【０１８１】
（実施の形態５）
実施の形態５に係る画像処理装置は、実施の形態３で示された画像処理装置１１００の構成に変形が加えられている。
【０１８２】
図１５は、本実施の形態に係る画像処理装置の構成図である。図１５に示された画像処理装置１５００は、生成部１１０１、決定部１１０２、格納処理部１１０３および抽出処理部１５０１を備える。すなわち、画像処理装置１５００は、実施の形態３の画像処理装置１１００と比較して、抽出処理部１５０１を追加の構成要素として備える。その他の構成要素は、実施の形態３と同様の処理を実行する。
【０１８３】
図１６は、図１５に示された本実施の形態に係る画像処理装置１５００の動作を示すフローチャートである。
【０１８４】
まず、生成部１１０１は、ポリゴンデータから、ポリゴンの描画領域における複数の画素に対応する複数のＺ値を生成する（Ｓ１６０１）。
【０１８５】
次に、決定部１１０２は、視線データと、ポリゴンデータとを用いて、複数のＺ値を圧縮するか否かを決定する（Ｓ１６０２）。
【０１８６】
次に、格納処理部１１０３は、複数のＺ値が圧縮される場合、複数のＺ値から代表Ｚ値を決定する。そして、格納処理部１１０３は、決定された代表Ｚ値を複数の画素に関連づけてＺバッファ１１１０に格納する（Ｓ１６０３）。
【０１８７】
抽出処理部１５０１は、Ｚバッファ１１１０から、複数の画素に関連づけて格納された代表Ｚ値を抽出する。そして、抽出処理部１５０１は、代表Ｚ値を代表Ｚ値に関連づけられた複数の画素に割り当てる（Ｓ１６０４）。
【０１８８】
これにより、画像処理装置１５００は、Ｚバッファ１１１０に格納された圧縮データを複数のＺ値に伸張できる。
【０１８９】
なお、本実施の形態の格納処理部１１０３および抽出処理部１５０１は、実施の形態１のＺバッファ制御部１０２に対応する。したがって、格納処理部１１０３および抽出処理部１５０１は、実施の形態１のＺバッファ制御部１０２で実行される処理を実行してもよい。
【０１９０】
また、抽出処理部１５０１は、Ｚバッファ１１１０から、複数の画素に関連づけて格納された代表Ｚ値、または、複数の画素に関連づけて格納された複数のＺ値を抽出してもよい。そして、抽出処理部１５０１は、代表Ｚ値が抽出された場合、代表Ｚ値を代表Ｚ値に関連づけられた複数の画素に割り当てもよい。複数のＺ値が抽出された場合、抽出処理部１５０１は、複数のＺ値を複数のＺ値に関連づけられた複数の画素に割り当ててもよい。
【０１９１】
例えば、Ｚバッファ１１１０に複数のＺ値がそれぞれ対応する画素に関連づけて格納されている場合、抽出処理部１５０１は、Ｚバッファ１１１０から複数のＺ値を抽出する。そして、抽出処理部１５０１は、複数のＺ値のそれぞれを対応する画素に割り当てる。これにより、画像処理装置１５００は、Ｚバッファ１１１０に格納された複数のＺ値、または、Ｚバッファ１１１０に格納された代表Ｚ値を適切に複数の画素に適用できる。
【０１９２】
（実施の形態６）
実施の形態６は、実施の形態３の画像処理装置１１００と同様の構成要素を備える集積回路を示す。
【０１９３】
図１７は、本実施の形態に係る集積回路の構成図である。図１７に示された集積回路１７００は、Ｚバッファ１１１０を用いて、３次元空間のポリゴンを２次元平面の画像として描画する。また、集積回路１７００は、生成部１１０１、決定部１１０２および格納処理部１１０３を備える。これらの構成要素は、実施の形態３で示された画像処理装置１１００の構成要素と同様の構成要素であり、実施の形態３で示された画像処理装置１１００の構成要素と同様の動作を実行する。
【０１９４】
これにより、集積回路１７００は、視線データおよびポリゴンデータに基づいて、適応的に、複数のＺ値を圧縮するか否かを決定する。さらに、集積回路１７００は、複数のＺ値を圧縮する場合、複数のＺ値を示す圧縮データとして１つの代表Ｚ値のみを格納する。したがって、集積回路１７００は、低い計算コストで複数のＺ値を圧縮し、複数のＺ値を示す圧縮データをＺバッファ１１１０に格納することができる。
【０１９５】
なお、本実施の形態では、実施の形態３の画像処理装置１１００を集積回路１７００として実装する例が示されている。しかし、その他の実施の形態に係る画像処理装置が集積回路として実装されてもよい。
【０１９６】
（実施の形態７）
実施の形態７は、上述の複数の実施の形態で示された画像処理装置の応用例として、テレビジョン受像機を示す。
【０１９７】
図１８は、本実施の形態に係るテレビジョン受像機の構成図である。図１８に示されたテレビジョン受像機１８００は、画像処理装置１８０１および表示部１８０２を備える。画像処理装置１８０１は、上述の複数の実施の形態で示された複数の画像処理装置のいずれであってもよい。また、画像処理装置１８０１は、集積回路として実装されていてもよい。
【０１９８】
表示部１８０２は、画像処理装置１８０１によって描画された画像を表示する。これにより、テレビジョン受像機１８００は、画像処理装置１８０１によって描画された画像を表示する。
【０１９９】
なお、Ｚバッファは、画像処理装置１８０１の内部にあってもよいし、表示部１８０２の内部にあってもよい。あるいは、Ｚバッファは、独立の構成要素として、テレビジョン受像機１８００の内部または外部にあってもよい。
【０２００】
また、本実施の形態では、画像表示装置の例として、テレビジョン受像機１８００が示されている。しかし、ディスプレイ装置を有するパーソナルコンピュータ、ビデオゲーム機または携帯電話機等に、同様の構成が用いられてもよい。特に、高解像度の画像を大画面に表示する画像表示装置において、効果が大きい。
【０２０１】
以上、本発明に係る画像処理装置について、複数の実施の形態に基づいて説明したが、本発明はこれらの実施の形態に限定されるものではない。実施の形態に対して当業者が思いつく変形を施して得られる形態、および、実施の形態における構成要素を任意に組み合わせて実現される別の形態も本発明に含まれる。
【０２０２】
例えば、特定の処理部が実行する処理を別の処理部が実行してもよい。また、処理を実行する順番が変更されてもよいし、複数の処理が並行して実行されてもよい。
【０２０３】
また、本発明は、画像処理装置として実現できるだけでなく、画像処理装置を構成する処理手段をステップとする方法として実現できる。典型的には、それらの方法に含まれるステップは、コンピュータによって実行される。そして、本発明は、それらの方法に含まれるステップを、コンピュータに実行させるためのプログラムとして実現できる。さらに、本発明は、そのプログラムを記録したＣＤ−ＲＯＭ等のコンピュータ読み取り可能な記録媒体として実現できる。
【０２０４】
また、画像処理装置に含まれる複数の構成要素は、集積回路であるＬＳＩとして実現されてもよい。これらの構成要素は、個別に１チップ化されてもよいし、一部または全てを含むように１チップ化されてもよい。ここでは、ＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩまたはウルトラＬＳＩと呼称されることもある。
【０２０５】
また、集積回路化の手法はＬＳＩに限るものではなく、専用回路または汎用プロセッサで実現してもよい。プログラムすることが可能なＦＰＧＡ、または、ＬＳＩ内部の回路セルの接続および設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
【０２０６】
さらには、半導体技術の進歩または派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて、画像処理装置に含まれる構成要素の集積回路化を行ってもよい。
【産業上の利用可能性】
【０２０７】
本発明に係る画像処理装置および画像処理方法は、画像を表示可能な機器およびシステムに利用可能である。例えば、テレビジョン受像機、モバイル機器、カーナビゲーションシステム、デジタルカメラ機器、放送機器および医療機器に有用である。
【符号の説明】
【０２０８】
１０１  画像生成部
１０２  Ｚバッファ制御部
１０３  カラーバッファ制御部
１０４  テスト部
１０５  キャッシュメモリ
１０６  Ｚバッファエンコーダ
１０７  Ｚバッファデコーダ
１０８  メモリ
１０９、１８０２  表示部
１１０、１１００、１３００、１５００、１８０１  画像処理装置
２０１  視点
２０２  視線方向（視線ベクトル）
２０３  ３次元空間
２１１、２１２、２１３  ポリゴン
５０１、７０１  画像
５０２  写真オブジェクト
５０３  ユーザーインターフェースオブジェクト
６０２、６０３  オブジェクト像
７０２、７０３、７０４、７０５  矩形領域
１１０１  生成部
１１０２  決定部
１１０３  格納処理部
１１１０  Ｚバッファ
１３０１  第１決定部
１３０２  第２決定部
１５０１  抽出処理部
１７００  集積回路
１８００  テレビジョン受像機（画像表示装置）
【図１】
2013025406.tif 000007
【図２】
2013025406.tif 000008
【図３】
2013025406.tif 000009
【図４】
2013025406.tif 000010
【図５】
2013025406.tif 000011
【図６】
2013025406.tif 000012
【図７】
2013025406.tif 000013
【図８】
2013025406.tif 000014
【図９】
2013025406.tif 000015
【図１０】
2013025406.tif 000016
【図１１】
2013025406.tif 000017
【図１２】
2013025406.tif 000018
【図１３】
2013025406.tif 000019
【図１４】
2013025406.tif 000020
【図１５】
2013025406.tif 000021
【図１６】
2013025406.tif 000022
【図１７】
2013025406.tif 000023
【図１８】
2013025406.tif 000024
【図１９】
2013025406.tif 000025