(57)【要約】【課題】  アンチエイリアス処理に用いる画像データ量を減少させる画像データの形成方法及び画像データについて、外部メモリへの書込回数を減少させる書込方法を提供する。【解決手段】  ３次元グラフィックス画像を、画素ブロックに分割する工程と、各画素ブロック毎に、カバレッジを用いて、含まれる画素すべてについて、同色の塗りつぶしの場合は第１論理を備えるフラグを発生し、画素の一部が異なる色の塗りつぶし又は塗りつぶしなしの場合は第２論理を備えるフラグを発生する工程と、第１論理のフラグを有する画素ブロックにおいて、画素値の内からひとつの画素値を選択し、第１画素値とする工程と、第２論理のフラグを有する画素ブロックにおいて、画素値のすべてを、第２画素値とする工程と、第１画素値、第２画素値、及び、第１及び第２論理を備えるフラグに基づいて、画像データを発生させる工程と、を備えることを特徴とする画像データ形成方法である。
2012032583.tif 000002
【特許請求の範囲】
【請求項１】
３次元グラフィックス画像に含まれるマトリック状に並べられた画素を、Ｋ行ＫＬ列の前記画素からなる画素ブロックに分割する工程と、
各画素ブロック毎に、前記画素の色の塗りつぶし状態を示すカバレッジを用いて、含まれる画素すべてについて、同色の塗りつぶしが行われる場合は第１論理を備えるフラグを発生し、含まれる画素の一部が異なる色の塗りつぶし又は塗りつぶしなしの場合は第２論理を備えるフラグを発生する工程と、
前記第１論理を備えるフラグを有する画素ブロックにおいて、含まれる画素の画素値の内からひとつの画素値を選択し、第１画素値とする工程と、
前記第２論理を備えるフラグを有する画素ブロックにおいて、含まれる画素の画素値のすべてを、第２画素値とする工程と、
前記第１画素値、前記第２画素値、及び、前記第１及び第２論理を備えるフラグに基づいて、前記３次元グラフィックス画像の画像データを形成する工程と、を備えることを特徴とする画像データ形成方法。
【請求項２】
前記第１論理を備えるフラグを有する画素ブロックにおいて、含まれる前記画素の深行きを示すデプスの内からひとつのデプスを選択し、前記選択したデプスのデプス値を第１デプス値とし、他の前記画素のデプスのデプス値それぞれに対して、前記第１デプスからのＸ／Ｙ増分値を設定する工程と、
前記第２論理を備えるフラグを有する画素ブロックにおいて、含まれる画素すべてのデプスのデプス値を第２デプス値とする工程と、を備え、
前記３次元グラフィックス画像の画像データを形成する工程は、前記第１画素値、前記第２画素値、及び、フラグに加え、さらに、前記第１デプス値、前記第２デプス値に基づいて、行われることを特徴とする請求項１記載の画像データ形成方法。 
【請求項３】
描画処理後の３次元グラフィックス画像に含まれる第１画素の第１画素値又は第１デプス値からなる画像データを書き込む方法であって、
描画処理後の３次元グラフィックス画像に含まれるマトリックス状に並べられた第１画素を、Ｋ行Ｌ列の前記第１画素からなる第１画素ブロックに分割する工程と、
各第１画素ブロック毎に、前記第１画素の色の塗りつぶし状態を示すカバレッジを用いて、含まれる第１画素すべてについて、同色の塗りつぶしが行われる場合は第１論理の第１フラグを発生し、含まれる第１画素の一部が異なる色の塗りつぶし又は塗りつぶしなしである場合は、第２論理の第１フラグ発生する工程と、
前記第１論理の第１フラグを有する第１画素ブロックに対して、含まれる第１画素の第１画素値の内からひとつの第１画素値を選択し、第３画素値とする工程と、
前記第２論理の第１フラグを有する第１画素ブロックに対して、外部メモリに記憶されている描画処理前の３次元グラフィックス画像に含まれる対応する第２画素ブロック及び第２フラグを読み出す工程と、
前記第２フラグの論理が含まれる第２画素の一部が異なる色の塗りつぶし又は塗りつぶしなしであることを示す場合は、前記第２論理の第１フラグを有する第１画素ブロック含まれるすべての第１画素の第１画素値を第３画素値とする工程と、
前記第２フラグの論理が同色の塗りつぶしであることを示す場合は、前記第１画素ブロックの第１画素の内、色の塗りつぶし状態を示すカバレッジを有する第１画素の第１画素値と、色の塗りつぶしなし状態を示すカバレッジを有する第１画素の第１画素値に代えて、第２画素ブロックの第２画素値を、第３画素値とする工程と、
前記第３画素値、前記第１フラグからなる画素データを外部メモリに書き込む工程と、を備えることを特徴とする画像データ書込方法。
【請求項４】
前記第１論理の第１フラグを有する第１画素ブロックに対して、含まれる第１画素の第１デプス値の内からひとつの第１デプス値を選択し、第３デプス値とするとともに、選択されなかった他の第１デプス値に対して、選択した第１デプス値からの増分をＸ／Ｙ増分値とする工程と、
前記第２論理の第１フラグを有する第１画素ブロックに対して、外部メモリに記憶されている描画処理前の３次元グラフィックス画像に含まれる対応する第２画素ブロック及び第２フラグを読み出す工程と、
前記第２フラグの論理が含まれる第２画素の一部が異なる色の塗りつぶし又は塗りつぶしなしであることを示す場合は、前記第２論理の第１フラグを有する第１画素ブロックに含まれるすべての第１画素の第１デプス値を第３デプス値とする工程と、
前記第２フラグの論理が同色の塗りつぶしであることを示す場合は、前記第１画素ブロックの第１画素の内、色の塗りつぶし状態を示すカバレッジを有する第１画素の第１デプス値と、色の塗りつぶしなし状態を示すカバレッジを有する第１画素の第１デプス値に代えて、第２画素ブロックの第２デプス値を、第３デプス値とする工程と、
前記第３画素値、前記第１フラグに加え、前記第３デプス値、及び、Ｘ／Ｙ増分値を画素データとして外部メモリに書き込む工程と、を備えることを特徴とする請求項３の画像データ書込方法。
【請求項５】
描画処理後の３次元グラフィックス画像に含まれるマトリックス状に並べられた第１画素を、分割して形成したＫ行Ｌ列の前記第１画素からなる第１画素ブロックの第１画素値又は第１デプス値からなる画素データを処理する画素データ処理回路であって、
各第１画素ブロック毎に、前記第１画素の色の塗りつぶし状態を示すカバレッジを用いて、含まれる第１画素すべてについて、同色の塗りつぶしが行われる場合は第１論理の第１フラグを発生し、含まれる第１画素の一部が異なる色の塗りつぶし又は塗りつぶしなしである場合は、第２論理の第１フラグ発生するフラグ発生回路と、
前記第２論理の第１フラグを有する第１画素ブロックに対して、外部メモリに記憶されている描画処理前の３次元グラフィックス画像に含まれる対応する第２画素ブロック及び第２フラグを読み出す画素読出回路と、
前記第１論理の第１フラグを有する第１画素ブロックに対して、含まれる第１画素の第１画素値の内からひとつの第１画素値を選択し、第３画素値とし、
前記第２フラグの論理が含まれる第２画素の一部が異なる色の塗りつぶし又は塗りつぶしなしであることを示す場合は、前記第２論理の第１フラグを有する第１画素ブロックに含まれるすべての第１画素の第１画素値を第３画素値とし、
前記第２フラグの論理が同色の塗りつぶしであることを示す場合は、前記第１画素ブロックの第１画素の内、色の塗りつぶし状態を示すカバレッジを有する第１画素の第１画素値と、色の塗りつぶしなし状態を示すカバレッジを有する第１画素の第１画素値に代えて、第２画素ブロックの第２画素値を、第３画素値とし、
前記第３画素値、前記第１及び第２論理の第１フラグからなる画素データを外部メモリに書き込む書込回路と、を備えることを特徴とする画像データ処理回路。 
【請求項６】
前記第２論理の第１フラグを有する第１画素ブロックに対して、外部メモリに記憶されている描画処理前の３次元グラフィックス画像に含まれる対応する第２画素ブロック、第２Ｘ／Ｙ増分値、及び、第２フラグを読み出す読出回路と、
前記第１論理の第１フラグを有する第１画素ブロックに対して、含まれる第１画素の第１デプス値の内からひとつの第１デプス値を選択し、第３デプス値とするとともに、他の第１デプス値に対する選択した前記第１デプス値からの増分を示す第１Ｘ／Ｙ増分値を生成し、
前記第２フラグの論理が含まれる第２画素の一部が異なる色の塗りつぶし又は塗りつぶしなしであることを示す場合は、前記第２論理の第１フラグを有する第１画素ブロックに含まれるすべての第１画素の第１デプス値を第３デプス値とし、
前記第２フラグの論理が同色の塗りつぶしであることを示す場合は、前記第２Ｘ／Ｙ増分値に応じて、第２画素ブロックの第２デプス値を生成し、
前記第１画素ブロックの第１画素の内、色の塗りつぶし状態を示すカバレッジを有する第１画素の第１デプス値と、色の塗りつぶしなし状態を示すカバレッジを有する第１画素の第１デプス値に代えて、前記第２画素ブロックの第２デプス値を、第３デプス値とし、
前記書込回路は、前記第３画素値、前記第１論理及び第２論理の第１フラグに加え、前記第３デプス値、及び、第１Ｘ／Ｙ増分値を画素データとして外部メモリに書き込むことを特徴とする請求項５記載の画像データ処理回路。
【発明の詳細な説明】
【技術分野】
【０００１】
３次元グラフィックスのレンダリング処理において行う、アンチエイリアス処理に伴う画像データの形成方法、形成された画像データの書込方法、及び、画像データ処理回路に関する。
【背景技術】
【０００２】
深さ（デプス）方向の画像データを有する３次元グラフィックス画像の描画時に発生するジャギー（輪郭のがたつき）を軽減するため、アンチエイリアス処理が施される。
一般的なアンチエイリアス処理として、スーパーサンプリングアンチエイリアス（ＳＳＡＡ）処理、及び、マルチサンプルアンチエイリアス（ＭＳＡＡ）処理が主に用いられている（特許文献１）。
ここで、ＳＳＡＡとは、描画対象に対して表示解像度より高い解像度でレンダリング処理を行い、その結果得られた画像の解像度を縮小して表示画像を得る手法である。また、ＭＳＡＡとは、描画対象に対して表示解像度より高い解像度でレンダリング処理を行い、得られた画像の解像度を縮小して表示画素を得る点ではＳＳＡＡと同様であるが、画素色を全て同一とする等、レンダリング処理の単純化を図る点で異なる手法である。ただし、ＭＳＡＡにおいても、深さ（デプス）方向の画像データはＳＳＡＡと同様に扱われる。【０００３】
しかしながら、ＭＳＡＡにおいては、アンチエイリアス処理を軽減することはできるが、アンチエイリアス処理において扱う画像データ量を減少させることはできない。従って、画像データを処理する手法又は装置が同じであるなら、ＳＳＡＡ処理とＭＳＡＡ処理において、画像データを蓄積するメモリへのアクセス量は同等となる。
そうすると、画像データを蓄積する外部メモリに対する性能要請も、ＳＳＡＡ処理とＭＳＡＡ処理とでは、同様なものとなる。【０００４】
そこで、画像に対する画像データは増大する傾向にあるため、アンチエイリアス処理に関連する外部メモリとのアクセスに使用するクロック周波数の増大又はバスのバス幅の増大はさけられない傾向にある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−６３５９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
アンチエイリアス処理に用いる画像データ量を減少させる画像データの形成方法、及び、形成された画像データについて、外部メモリへの書込回数を減少させる書込方法を提供する。
【課題を解決するための手段】
【０００７】
本発明の第１の側面によれば、下記の画像データ形成方法を提供する。その画像データ形成方法は、３次元グラフィックス画像に含まれるマトリックス状に並べられた画素を、Ｋ行Ｌ列の前記画素からなる画素ブロックに分割する工程と、各画素ブロック毎に、前記画素の色の塗りつぶし状態を示すカバレッジを用いて、含まれる画素すべてについて、同色の塗りつぶしが行われる場合は第１論理を備えるフラグを発生し、含まれる画素の一部が異なる色の塗りつぶし又は塗りつぶしなしの場合は第２論理を備えるフラグを発生する工程と、前記第１論理を備えるフラグを有する画素ブロックにおいて、含まれる画素の画素値の内からひとつの画素値を選択し、第１画素値とする工程と、前記第２論理を備えるフラグを有する画素ブロックにおいて、含まれる画素の画素値のすべてを、第２画素値とする工程と、前記第１画素値、前記第２画素値、及び、前記第１及び第２論理を備えるフラグに基づいて、前記３次元グラフィックス画像の画像データを発生させる工程と、を備えることを特徴とする画像データ形成方法である。
本発明の第２の側面によれば、下記の画像データ書込方法を提供する。その画像データ形成方法は、描画処理後の３次元グラフィックス画像に含まれる第１画素の第１画素値又は第１デプス値からなる画像データを書き込む方法であって、描画処理後の３次元グラフィックス画像に含まれるマトリックス状に並べられた第１画素を、Ｋ行L列の前記第１画素からなる第１画素ブロックに分割する工程と、各第１画素ブロック毎に、前記第１画素の色の塗りつぶし状態を示すカバレッジを用いて、含まれる第１画素すべてについて、同色の塗りつぶしが行われる場合は第１論理の第１フラグを発生し、含まれる第１画素の一部が異なる色の塗りつぶし又は塗りつぶしなしである場合は、第２論理の第１フラグ発生する工程と、前記第１論理の第１フラグを有する第１画素ブロックに対して、含まれる第１画素の第１画素値の内からひとつの第１画素値を選択し、第３画素値とする工程と、前記第２論理の第１フラグを有する第１画素ブロックに対して、外部メモリに記憶されている描画処理前の３次元グラフィックス画像に含まれる対応する第２画素ブロック及び第２フラグを読み出す工程と、前記第２フラグの論理が含まれる第２画素の一部が異なる色の塗りつぶし又は塗りつぶしなしであることを示す場合は、前記第２論理の第１フラグを有する第１画素ブロック含まれるすべての第１画素の第１画素値を第３画素値とする工程と、前記第２フラグの論理が同色の塗りつぶしであることを示す場合は、前記第１画素ブロックの第１画素の内、色の塗りつぶし状態を示すカバレッジを有する第１画素の第１画素値と、色の塗りつぶしなし状態を示すカバレッジを有する第１画素の第１画素値に代えて、第２画素ブロックの第２画素値を、第３画素値とする工程と、前記第３画素値、前記第１論理及び第２論理の第１フラグからなる画素データを外部メモリに書き込む工程と、を備えることを特徴とする画像データ書込方法である。
【発明の効果】
【０００８】
本発明によれば、アンチエイリアス処理に用いる画像データ量を減少させる画像データの形成方法、及び、形成された画像データについて、外部メモリへの書込回数を減少させる書込方法を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、描画回路１０、画像データ処理回路２０、及び、外部メモリ３０からなる半導体装置を示す。
【図２】図２は、縦２×横２からなる画素ブロックに区切られた縦８×横８の画素を表す。
【図３】図３は、縦２×横２からなる画素ブロックに区切られた縦８×横８の画素について、フラグと外部メモリ３０に記憶される画素値との関係を示す図である。
【図４】図４はデプス値、デプス値に関連するフラグ、及び、デプス値に関するＸ，Ｙ増分値について説明する図である。
【図５】図５は、画素アクセス部５０の動作及び画素アクセス部５０について説明する図である。
【図６Ａ】図６Ａ、図６Ｂは、フラグ生成部５１、及び、画素書込部５２の具体的な回路例を示す。
【図６Ｃ】、図６Ｃは、画素読出部５３の具体的な回路例を示す。
【図７】図７は、画素アクセス部５０の動作を説明する図である。
【図８】図８は、画素アクセス部５０の書込動作の全体を説明するフローチャートである。
【図９】図９は、画素アクセス部５０の読出動作の全体を説明するフローチャートである。
【図１０】図１０は、デプスアクセス部６０の動作及びデプスアクセス部６０について説明する図である。
【図１１Ａ】図１１Ａ、図１１Ｂは、フラグ生成部６１及びデプス書込部６２の具体的な回路例を示す。
【図１１Ｃ】図１１Ｃは、デプス読出部６３の具体的な回路例を示す。
【図１２】図１２は、デプスアクセス部６０の動作を説明する図である。
【図１３】図１３は、デプスアクセス部６０の書込動作の全体を説明するフローチャートである。
【図１４】図１４は、デプスアクセス部６０の読出動作の全体を説明するフローチャートである。
【発明を実施するための形態】
【００１０】
本発明は、以下に説明する実施例に対し、当業者が想到可能な、設計上の変更が加えられたもの、及び、実施例に現れた構成要素の組み換えが行われたものも含む。また、本発明は、その構成要素が同一の作用効果を及ぼす他の構成要素へ置き換えられたもの等も含み、以下の実施例に限定されない。
【実施例】
【００１１】
図１は、描画回路１０、画像データ処理回路２０、及び、外部メモリ３０からなる半導体装置を示す。
描画回路１０は、描画する３次元グラフィックス画像を、３次元モデルと原画像とからレンダリング処理を行って形成する回路である。ここで、レンダリング処理は、例えば、投影処理、ラスタ化処理、隠面消去処理、及び、シューティング・効果付与処理などにより構成される。【００１２】
画像データ処理回路２０は画素アクセス部５０及びデプスアクセス部６０を含む。
画素アクセス部５０は描画回路１０による描画処理後の３次元グラフィックス画像を構成する画素の画素値、及び、カバレッジについてデータ処理を行い、そのデータ処理によって発生させたフラグと、そのデータ処理によって選択された画素の画素値と、を外部メモリ３０に記憶させる回路である。
画素アクセス部５０は外部メモリ３０から受け取ったフラグと選択された画素値から描画処理前の画素値とカバレッジとに展開する回路である。
デプスアクセス部６０は、描画回路１０による描画処理後の３次元グラフィックス画像を構成する画素のデプス値、カバレッジについてデータ処理を行い、そのデータ処理によって発生させたフラグと、そのデータ処理によって発生させたＸ，Ｙ増分値と、そのデータ処理によって発生させた選択されたデプス値とを外部メモリ３０に記憶させる回路である。
デプスアクセス部６０は、外部メモリ３０から受け取ったフラグ、Ｘ，Ｙ増分値、及び、選択されたデプス値から描画処理前のデプス値、及び、カバレッジとに展開する回路である。【００１３】
図２は、縦２×横２からなる画素ブロックに区切られた縦８×横８の画素を表す。図２を用いて、画素ブロックのカバレッジについて説明する。
各画素について、色の塗りつぶし状態を示すカバレッジを割り当て、色の塗りつぶしがある時にはカバレッジに論理”１”が、色の塗りつぶしがないときにはカバレッジに論理”０”が割り当てられる。そこで、カバレッジは各画素ブロック毎に割り当てられた論理値を、左上、右上、左下、右下の順に並べて２進数として表したものをいう。
なお、図２では、縦８×横８の画素が示されているが、それにとらわれることはなく、一般的に縦Ｍ×横Ｎ（Ｍ、Ｎは任意の正の整数）の画素におけるカバレッジも同様に表される。また、画素ブロックは上記では縦２×横２の画素からなっているが、縦Ｌ×横Ｋ（Ｋ、Lは任意の正の整数）の画素から構成されていてもよい。【００１４】
図３は、縦２×横２からなる画素ブロックに区切られた縦８×横８の画素について、フラグと外部メモリ３０に記憶される画素値との関係を示す図である。
図３左上はカバレッジの論理が”１”の画素を縦縞で表した図である。
次いで、図３右上は縦２×横２の画素ブロックを構成する画素のすべてにおいて、色の塗りつぶしが行われることとなる画素ブロックを抽出し、横縞で表したものである。
ここで、フラグとは、論理値であり、各画素ブロックにおいて、その画素ブロックに属する画素のすべてについて色の塗りつぶしが行われている場合に論理”１”、そうでない場合に論理”０”となる。
そこで、図３左下はフラグの論理値をそれぞれの画素ブロックに記載したものである。次いで、図３右下は、それぞれの画素ブロックの内、外部メモリ３０に画素値を格納したものを縦縞で表し、格納しなかったものは斜め縞である。フラグの論理が”１”のときには、画素ブロックの左上の画素値のみが外部メモリ３０に記憶される。一方、フラグの論理が”０”の場合は、色の塗りつぶしが行われる画素の画素値のみが外部メモリ３０に格納される。【００１５】
図４はデプス値、デプス値に関連するフラグ、及び、デプス値に関するＸ，Ｙ増分値について説明する図である。
図４上段の図は、取り扱う３次元グラフィックス画像に含まれる画像ブロックのフラグの状態を示す図である。画像ブロック中の画素すべてが塗りつぶしの場合、フラグの論理は”１”であり、そうでないときは、フラグの論理は”０”である。そこで、第１列の第２、第３の画素ブロックのフラグの論理は”１”である。第２列の画素ブロックのすべてのフラグの論理は”１”である。第３列の画素ブロックの第２、第３、第４の画素ブロックのフラグの論理は”１”である。第４列の画素ブロックの第３の画素ブロックのフラグの論理は”１”である。その他の画素ブロックのフラグの論理は”０”である。
図４下段の図は、画素ブロックのフラグの論理が”１”のときには、左上の画素のデプス値を基準に、右上の画素のデプス値、左下の画素のデプス値、右下の画素のデプス値を、基準値からのＸ，Ｙ増分値で表した数値が画素ブロックに設定されることを示す。さらに、画素ブロックのフラグの論理が”０”のときには、画素に属するデプス値それぞれを画素ブロックに設定することを示す。そこで、外部メモリ３０には、それぞれの画素ブロックに設定されたデプス値又はデプス値及びＸ，Ｙ増分値を格納する。【００１６】
図５は、画素アクセス部５０の動作及び画素アクセス部５０について説明する図である。
画素アクセス部５０は、フラグ生成部５１、画素書込部５２、画素読出部５３を含む。
なお、画素アクセス部５０は３次元グラフィックスの画像が縦Ｍ×横Ｎの画素を含むときに、縦２×横２の画素からなる画素ブロック毎に、各画素のカバレッジからフラグを作成し、外部メモリ３０に記憶させる機能を有する。また、縦Ｍ×横Ｎの画素について描画処理を行ったときに、フラグの論理値が”０”となった画素ブロックについて、外部メモリ３０の画素値を変更する機能を有する。以下、画素アクセス部５０に上記の機能を持たせるために、それに含まれる各回路部が有する機能を説明する。
フラグ生成部５１は描画回路１０から受け取ったカバレッジからフラグを生成する回路である。
画素書込部５２は描画回路３０からの書込要求を、画素値を受けて、外部メモリ３０に画素値を書込要求とともに出力する。画素書込部５２はフラグ生成部５１からフラグとカバレッジを受け取る。画素書込部５２は描画回路からの書込要求を受け取ると、画素読出部５３に対して読出要求を出し、フラグ及び画素値を受け取る。
画素読出部５３は、描画回路１０から画素値を、読出要求とともに受け取る。画素読出部５３は、外部メモリ３０に読出要求を送り、フラグ及び画素値を受け取る。画素読出部５３は、画素書込部５２から読出要求を受けたときに、フラグ及び画素値を出力する。【００１７】
図６Ａ、図６Ｂ、図６Ｃは、フラグ生成部５１、画素書込部５２、画素読出部５３の具体的な回路例を示す。
図６Ａを参照して説明を行うと、実施例１におけるフラグ生成部５１は、４入力ＡＮＤであり、４ビットのカバレッジを入力すると、１ビットのフラグを発生する。カバレッジとは、各画素に付属して付加され、レンダリング処理の後、描画される画素（塗りつぶされる）か、描画されない画素（塗りつぶされない）かを示すフラッグである。すなわち、塗りつぶされない場合に０、塗りつぶされる場合に１となる。ここで、４倍の画素数を用いてＭＳＡＡを実行する場合、縦２列×横２行からなる４ビットのカバレッジを扱うことになる。その場合、フラグ生成部５１は図６Ａのように４入力ＡＮＤとなる。【００１８】
そうすると、４つの画素が全て同一色とならない場合、言い換えると、描画しようとしている４つの画素を塗りつぶさない場合、フラグは０となる。一方、全て同一色となる場合、フラグは１となる。【００１９】
図６Ｂを参照して説明を続けると、実施例１における画素書込部５２は、比較回路５２ａ、２ビットカウンタ５２ｂ、ＡＮＤ５２ｃ、セレクタ５２ｄを含む。
フラグ生成部５１から論理”０”を表すフラグを受け取った場合、画素書込部５２は、画素読出部５３への読出要求、及び、外部メモリ３０への書込要求の論理は”０”のままなので、画素書込部５２への画素読出部５３からの読出、及び、画素書込部５２からの外部メモリ３０への書込は行われない。【００２０】
フラグ生成部５１から論理７”１”を表すフラグを受け取った場合、画素読出部５３への読出要求の論理が”１”となるため、画素書込部５２から画素読出部５３への読出要求が行われる。また、論理”１”のフラグは、２ビットカウンタ５２ｂに入力され、２ビットカウンタ５２ｂのカウントアップが行われる。比較回路５２ａは２ビットカウンタ５２ｂからのカウント値を、比較回路５２ａ自身に設定された固定のカウント値（実施例において、カウント値は２進数で表すと”００”であり、１０進数で表すと４である。）と比較する。比較回路５２ａは固定のカウント値に達すると、２ビットカウンタ５２ｂのカウントアップを終了させ、カウント値をリセット、すなわち、カウント値を”００”に固定する。【００２１】
比較回路５２ａは、２ビットカウンタ５２ｂが２進数”００”から固定のカウント値までの２進数を出力している間、イネーブル信号をＡＮＤ５２ｃに出し続ける。
その結果、ＡＮＤ５２ｃは比較回路５２ａからのイネーブル信号と描画回路１０からの書込要求を入力信号に受けているので、イネーブル信号の論理が”０”のときに、書込信号を外部メモリ３０へ出力する。【００２２】
セレクタ５２ｄはカバレッジの論理が”１”のときに、描画回路からの画素値を選択し、カバレッジの論理が”０”のときに、画素読出部からの画素値を選択する。そして、セレクタ５２ｄは選択した方の画素値を、画素値として外部メモリ３０へ出力する。【００２３】
図６Ｃを参照して説明を続けると、実施例１における画素読出部５３は、画素保持バッファ５３ａ、セレクタ５３ｂ、ＡＮＤ５３ｃを含む。【００２４】
画素保持バッファ５３ａは外部メモリ３０からの画素値を受け取り一時的に保持する回路である。一時的に保持する画素値は、縦２×横２の４つの画素値の内の左上の画素値である。注目する縦２×横２の４つの画素値が全て同一色となる場合、左上の画素値のみが描画回路１０に出力され、その他の画素値は出力されないためである。
セレクタ５３ｂは、フラグの論理が”１”のときに、画素保持バッファ５３ａに保持された画素値を選択し、フラグの論理が”０”のときに、外部メモリ３０からの画素値を選択する。
ＡＮＤ５３ｃは、画素書込部５２からの読出要求と、描画回路１０からの読出要求とが、双方とも論理”１”のときに、読出要求を外部メモリ３０へ出力する。【００２５】
図７は、画素アクセス部５０の動作を説明する図である。ただし、図７で説明する画素アクセス部５０の動作は一つの画素ブロックに関するものである。また、画素ブロックのフラグの論理値が、描画処理によって、”１”から”０”に変更になった場合の画素アクセス部５０の動作を説明するものである。
外部メモリ３０から画素読出部５３に出力された画素値からなる画素ブロックＣは、画素値がすべて同色であり、左上の画素とフラグからなる画素値の組である。すなわち、画素ブロックＣは左上に画素値とそれに対応するフラグを含み、その他は画素値がないものである。
また、描画回路１０から画素書込部５２に出力された画素値からなる画素ブロックＡは、カバレッジ＝１０１０の縦２×横２の画素値の組である。すなわち、カバレッジにおいて、論理”１”のビットに対応して、画素ブロックＡは、左上と左下に異なる色の塗りつぶし画素値を有するが、右上と右下には画素値が存在しない。
そこで、描画処理後に、外部メモリ３０に書き込まれる画素ブロックＢは、画素ブロックＡの左半分から引き継いだ、左上と左下に異なる色の塗りつぶし画素値と、画素ブロックＣの右半分から引き継いだ、同色の塗りつぶし画素値からなっている。
画素ブロックＢが有する画素値は、セレクタ５２ｄで選択されており、カバレッジにおいて論理”１”のビットに対応して左半分の画素値が、論理”０”のビットに対応して右半分の画素値が選択されているからである。【００２６】
図８は、画素アクセス部５０の書込動作の全体を説明するフローチャートである。また、図８で説明する書込動作は、縦Ｍ×横Ｎの画素の画素値について、描画処理を行った後の画素データを、画素アクセス部５０が受け取り、外部メモリ３０へ書込む動作をいう。ただし、図８に示す書込動作は縦２×横２の画素ブロックに対するものであり、これらの動作を複数回行うことで、縦Ｍ×横Ｎの画素を処理することになる。従って、このフローチャートを開始する以前に、縦Ｍ×横Ｎの画素を、縦２×横２の画素ブロックに分割してそれらを認識するステップを行う。以下に、そのフローチャートについて、ステップ順に説明する。
ステップＯＰ１０：描画回路１０から図７に示す画素ブロックＡに属する画素Ａ１、Ａ２、Ａ３、Ａ４と、画素ブロックＡのカバレッジを取得する。
ステップＯＰ２０：描画処理後の画素ブロックＡに属する画素Ａ１、Ａ２、Ａ３、Ａ４全てが描画されるかについて、各画素のカバレッジの論理値によって判断する。例えば、各画素のカバレッジの論理値すべてが塗りつぶしを表示するときは、全て描画すると判断し、カバレッジの論理値の内一つでも塗りつぶし表示でない場合は、全て描画すると判断しない。すべて描画されると判断する場合、ステップＯＰ４０へ進む。すべて描画されないと判断する場合、ステップＯＰ３０に進む。
ステップＯＰ３０：画素ブロックＡの描画処理前のフラグを外部メモリ３０から読み出す。その後、ステップＯＰ５０に進む。
ステップＯＰ５０：ステップＯＰ３０において読み出した描画処理前のフラグの論理値を、論理値”０”に書き換え、再び外部メモリ３０に書き込む。その後、ステップＯＰ６０に進む。【００２７】
ステップＯＰ６０：ステップＯＰ３０において読み出した画素ブロックＡのフラグを用いて、フローチャートにおける分岐を判断する。すなわち、描画処理前のフラブの論理値が”０”の場合は、画素ブロックＣが含む画素の内、塗りつぶしされないものと、塗りつぶしされるものとがあるので、その状況に対応するステップＯＰ１００へ進む。一方、描画処理前のフラグの論理値が”１”の場合は、画素ブロックＣが含む画素はすべて同色の塗りつぶし画素となるので、その状況に対応するステップＯＰ７０に進む。【００２８】
ステップＯＰ１００：ステップＯＰ１０で読み出した、描画処理後の画素ブロックＡに属する各画素の内、カバレッジの論理値”１”となっている画素について、画素ブロックＣに上書きして、画素ブロックＢを作成し、画素ブロックＢの状態の画素値を外部メモリ３０に書き込む。その後、画素書込動作を終了する。【００２９】
ステップＯＰ７０：ステップＯＰ６０において、画素ブロックＣが含む画素は、描画処理前にはすべて同色の塗りつぶし画素と判断されている。しかし、ステップＯＰ２０における判断では、描画処理後には、画素ブロックＡの画素のすべてが塗りつぶされていないと判断されている。そこで、ステップＯＰ７０において、描画処理前の画素ブロックＣの画素の内、外部メモリ３０に記憶されている左上の画素Ｃ１の画素値の読出を行う。
ステップＯＰ８０：ステップ７０において外部メモリ３０から読み込んだ、描画処理前の画素ブロックＣの左上の画素Ｃ１から、画素Ｃ２、Ｃ３、Ｃ４を復元する。
ステップＯＰ９０：描画処理前の画素ブロックＣの画素Ｃ１、Ｃ２、Ｃ３、Ｃ４を、画素書込部５２に送り、書込用のレジスタ上の画素ブロックＢの画素Ｂ１、Ｂ２、Ｂ３、Ｂ４として記憶する。その後、描画処理後の画素ブロックＡの画素の内、カバレッジの論理値が”１”の画素を（例えば、カバレッジが（１０１０）のときには、Ａ１、Ａ３を）、右上及び右下に上書きする。その後、ステップＯＰ１１０へ進む。
ステップＯＰ１１０：描画処理前の画素ブロックＣの画素Ｃ１、Ｃ２、Ｃ３、Ｃ４と、描画処理後の画素ブロックＡの画素Ａ１、Ａ２、Ａ３、Ａ４とを、合成して構成した画素Ｂ１、Ｂ２、Ｂ３、Ｂ４を、外部メモリ３０に、画素ブロックＢの画素値として書き込む。【００３０】
ステップＯＰ４０：描画処理後の画素ブロックＡに属する画素Ａ１、Ａ２、Ａ３、Ａ４は同色で塗りつぶしが行われる画素であるから、画素ブロックＡのフラグの論理値は”１”となる。そこで、そのフラグの論理値及び画素ブロックＡの左上の画素の画素値を画素ブロックＢの左上の画素の画素値とする。その後、ステップＯＰ１２０へ進む。
ステップＯＰ１２０：描画処理後の画素ブロックＡに属する画素Ａ１（左上）の画素値のみを、画素ブロックＢの左上の画素値として外部メモリ３０に書き込む。【００３１】
上記より、描画処理後の縦Ｍ×横Ｎの画素を扱うときに、画素アクセス部５０は縦２×横２の画素ブロックに分けて扱う。そして、描画処理後の縦Ｍ×横Ｎの画素を外部メモリ３０に書き込む場合に、描画処理の前後において、フラグの論理値が”１”であったときには、画素ブロックすべての画素値とカバレッジを外部メモリ３０に書き戻すのではなく、左上の画素値とフラグの論理値のみを書き戻す動作をする。そうすると、画素ブロックに属するすべての画素値とカバレッジを書き戻す場合に比較して、外部メモリ３０へのアクセス回数を減少させることができる。さらに、フラグは１ビットの論理値のみからなるので、左上の画素値及びフラグの１ビットを記憶する記憶領域は、一つの画素ブロックに係わる各画素の画素値と、各画素のカバレッジを記憶する記憶領域よりも小さくなる。【００３２】
ここで、可変長圧縮データ方式を用いて、縦Ｍ×横Ｎの画素を扱う場合に、描画処理前の縦Ｍ×横Ｎの画素を、描画処理後の縦Ｍ×横Ｎの画素に変換するときの外部メモリ３０へのアクセス数と、本実施例に示した方式を用いて、縦Ｍ×横Ｎの画素を扱う場合のアクセス数を比較する。【００３３】
可変長圧縮データ方式においては、縦Ｍ×横Ｎの画素の画素値の種類と頻度を分析し、頻度が高い種類の画素値に”０”を、次に頻度が高い画素値に”１”を、次の頻度が高い画素値に”１０”をというように、可変長のデータを割り当てる。画素値が固定長、例えば、４ビットであった場合には、可変長のデータに置き換えた分だけ、画素値を記憶する記憶領域を減少させることができることになる。【００３４】
そこで、可変長圧縮データ方式により圧縮されており、かつ、外部メモリ３０に記憶している縦Ｍ×横Ｎの画素の画素値について、描画処理後の画素値に置き換えることを考える。そうすると、上記の置き換えを行うため、次の操作をすることになると考える。まず、第１ステップで、圧縮データを元の縦Ｍ×横Ｎの画素の画素値に展開する。次いで、第２ステップで描画処理を行う。次いで、第３ステップで描画処理後の縦Ｍ×横Ｎの画素の画素値に対して可変長圧縮処理を行って、外部メモリ３０へ可変長圧縮処理後の画素値を出力する。
そうすると、第１ステップで圧縮データを縦Ｍ×横Ｎの画素の画素値に展開するのに、
Ｍ×Ｎ×（１＋Ｓ１）＋Ｍ×Ｎ×４（・・・式（１））回のアクセスを行うことになる。ここで、カバレッジは１ビット、Ｓ１はＭ×Ｎ個の画素の可変長画素値の平均ビット数、可変長画素値に対応する固定長画素値のビット数は４ビットとする。
すなわち、カバレッジと可変長圧縮処理を行った画素値を読み出すのに第１項のアクセスをすることになる。さらに、割り当てられた可変長ビットで表された画素値に対応する固定長の画素値を読み出すのに第２項のアクセスをすることになる。
ついで、第３ステップにおいて圧縮データで表した縦Ｍ×横Ｎの画素の画素値を書込をする場合に、
Ｍ×Ｎ×（１＋Ｓ２）（・・・式（２））回のアクセスを行うことになる。ここで、カバレッジは１ビット、Ｓ２はＭ×Ｎ個の画素の可変長画素値の平均ビット数である。なお、可変長圧縮処理は、画素書込部５２が行うものとしている。【００３５】
一方、本実施例に示す方法により、縦Ｍ×横Ｎの画素の画素値を、描画処理後の縦Ｍ×横Ｎの画素の画素値に置き換える場合、第１ステップとして、縦Ｍ×横Ｎの画素の画素値を外部メモリから読み出す。第２ステップで、描画処理を行う。次いで、第３ステップで本実施例に示す方法で外部メモリ３０へ縦Ｍ×横Ｎの画素の画素値を出力することになる。
まず、第１ステップでは、Ｍ×Ｎ×Ｔ１（０以上１未満の数字）の画素ブロックのフラグの論理値が”１”であった場合、
（Ｍ×Ｎ×（１−Ｔ１）×５）＋（Ｍ×Ｎ×Ｔ１×５／４）（・・・式（３））回のアクセス数となる。ここで、カバレッジ、フラグは１ビット、画素値は固定長で４ビットとした。
さらに、第３ステップにおいて、Ｔ２（０以上１未満の数字）の画素ブロックのフラグの論理値が”１”であった場合、
（Ｍ×Ｎ×（１−Ｔ２）×５）＋（Ｍ×Ｎ×Ｔ２×５／４）（・・・式（４））回のアクセス数となる。ここで、カバレッジ、フラグは１ビット、画素値は固定長で４ビットとした。【００３６】
本実施例における、画素アクセス部５０と外部メモリ３０とのアクセス数は式（３）と式（４）の合計となり、Ｍ×Ｎ×（１０−（Ｔ１＋Ｔ２）×３×５／４）である。
一方、可変圧縮データを画素の画素値とする場合、式（３）と式（４）との合計となり、Ｍ×Ｎ×（６＋Ｓ１＋Ｓ２）である。
ここで、Ｓ１、Ｓ２はＭ×Ｎ個の画素の可変長画素値の平均ビット数である。そうすると、可変長画素値の平均ビット数がほぼ１ビットであっても、Ｔ１＋Ｔ２が、０．５以上２以下であるときは、本実施例における画素書込部５２から外部メモリ３０へのアクセス数が、可変長圧縮データ方式に比較して減少することがわかる。すなわち、ほとんどの場合において、本実施例における画素アクセス部５０と外部メモリ３０とのアクセス数が減少する。【００３７】
図９は、画素アクセス部５０の読出動作の全体を説明するフローチャートである。図９で説明する読出動作は、縦Ｍ×横Ｎの画素の画素値について、描画を行うために、外部メモリ３０から読み出す動作をいう。ただし、図９に示す読出動作は縦２×横２の画素ブロックに対するものであり、これらの動作を複数回行うことで、縦Ｍ×横Ｎの画素を処理することになる。従って、このフローチャートを開始する以前に、縦Ｍ×横Ｎの画素を、縦２×横２の画素ブロックに分割してそれらを認識するステップを行う。以下に、そのフローチャートについて、ステップ順に説明する。
ステップＯＰ２１０：外部メモリ３０より、画素ブロックに対するフラグを読み出す。
ステップＯＰ２２０：読み出したフラグの論理が”１”である場合、ステップＯＰ２３０へ進む。一方、読み出したフラグの論理が”０”である場合、ステップ２２０へ進む。
ステップＯＰ２３０：画素ブロックに属する４画素分の画素値を外部メモリ３０から読み出す。その後、画素値の読出を終了する。
ステップＯＰ２４０：画素ブロックの左上の画素の画素値のみを読み出す。次いで、ステップＯＰ２４０へ進む。
ステップＯＰ２５０：読み出した左上の画素の画素値を４回連続して描画回路１０に出力する。なお、このステップを行うかわりに、描画回路１０内において、読み出した左上の画素の画素値から４画素分の画素値を作成してもよい。【００３８】
図１０は、デプスアクセス部６０の動作及びデプスアクセス部６０について説明する図である。
デプスアクセス部６０は、フラグ生成部６１、デプス書込部６２、デプス読出部６３を含む。
なお、デプスアクセス部６０は縦Ｍ×横Ｎの画素があったときに、縦２×横２の画素からなる画素ブロックについて、各画素のカバレッジからフラグを作成し、外部メモリ３０に記憶させる機能を有する。
また、縦Ｍ×横Ｎの画素について描画処理を行ったときに、フラグの論理値が”０”となった画素ブロックについて、外部メモリ３０の画素値を変更する機能を有する。以下、デプスアクセス部６０に上記の機能を持たせるために、それに含まれる各回路部が有する機能を説明する。
フラグ生成部６１は描画回路１０から受け取ったカバレッジからフラグを生成する回路である。
デプス書込部６２は描画回路３０からの書込要求を、デプス値及びＸ，Ｙ増分値を受けて、外部メモリ３０にデプス値及びＸ，Ｙ増分値を書込要求とともに出力する。デプス書込部６２はフラグ生成部６１からフラグを受け取る。デプス書込部６２は描画回路からの書込要求を受け取ると、デプス読出部６３に対して読出要求を出し、フラグ及びデプス値を受け取る。
デプス読出部６３は、描画回路１０からデプス値を、読出要求とともに受け取る。デプス読出部６３は、外部メモリ３０に読出要求を送り、フラグ、デプス値及びＸ、Ｙ増分値を受け取る。デプス読出部６３は、デプス書込部６２から読出要求を受けたときに、フラグ及びデプス値を出力する。【００３９】
図１１Ａ、図１１Ｂ、図１１Ｃは、フラグ生成部６１、デプス書込部６２、デプス読出部６３の具体的な回路例を示す。
図１１Ａを参照して説明を行うと、実施例におけるフラグ生成部６１は、４入力ＡＮＤであり、４ビットのカバレッジを入力すると、１ビットのフラグを発生する。画素が塗られているか否かを示すカバレッジを使用して、各画素にデプスが付属しているか否かを判断する。画素が塗られていれば、デプスが存在するからである。そこで、カバレッジの論理は、深さ方向のデータがない場合に０、深さ方向のデータがある場合に１となる。ここで、４倍の画素数を用いてＭＳＡＡを実行する場合、縦２列×横２行からなる４ビットのカバレッジを扱うことになる。その場合、フラグ生成部６１は図１１Ａのように４入力ＡＮＤとなる。【００４０】
そうすると、４つの画素のすべてに深さ方向のデータが付属していない場合、言い換えると、描画しようとしている４つの画素に深さがない場合、フラグは０となる。一方、全てに深さ方向のデータがある場合、フラグは１となる。【００４１】
図１１Ｂを参照して説明を続けると、実施例におけるデプス書込部６２は、比較回路６２ａ、２ビットカウンタ６２ｂ、ＡＮＤ６２ｃ、セレクタ６２ｄを含む。
フラグ生成部６１から論理”０”を表すフラグを受け取った場合、デプス書込部６２は、デプス読出部６３への読出要求、及び、外部メモリ３０への書込要求の論理は”０”のままなので、デプス書込部６２へのデプス読出部６３からの読出、及び、デプス書込部６２からの外部メモリ３０への書込は行われない。【００４２】
フラグ生成部６１から論理”１”を表すフラグを受け取った場合、デプス読出部６３への読出要求の論理が”１”となるため、デプス書込部６２からデプス読出部６３への読出要求が行われる。また、論理”１”のフラグは、２ビットカウンタ６２ｂに入力され、２ビットカウンタ６２ｂのカウントアップが行われる。比較回路６２ａは２ビットカウンタ６２ｂからのカウント値を、比較回路６２ａ自身に設定された固定のカウント値（実施例において、カウント値は２進数で表すと”００”であり、１０進数で表すと４である。）と比較する。比較回路６２ａは固定のカウント値に達すると、２ビットカウンタ６２ｂのカウントアップを終了させ、カウント値をリセット、すなわち、カウント値を”００”に固定する。【００４３】
比較回路６２ａは、２ビットカウンタ６２ｂが２進数”００”から固定のカウント値までの２進数を出力している間、イネーブル信号をＡＮＤ６２ｃに出し続ける。
その結果、ＡＮＤ６２ｃは比較回路６２ａからのイネーブル信号と描画回路１０からの書込要求を入力信号に受けているので、イネーブル信号の論理が”０”のときに、書込信号を外部メモリ３０へ出力する。【００４４】
セレクタ６２ｄはカバレッジの論理が”１”のときに、描画回路からのデプス値を選択し、カバレッジの論理が”０”のときに、デプス読出部からのデプス値を選択する。そして、センレクタ６２ｄは選択した方のデプス値を、デプス値又はＸ，Ｙ増分値として外部メモリ３０へ出力する。【００４５】
図１１Ｃを参照して説明を続けると、実施例におけるデプス読出部６３は、デプス保持バッファ６３ａ、セレクタ６３ｂ、ＡＮＤ６３ｃ、デプス補間６３ｄを含む。【００４６】
デプス保持バッファ６３ａはデプス補間６３ｄからデプス値を受け取り一時的に保持する回路である。
セレクタ６３ｂは、フラグの論理が”１”のときに、デプス保持バッファ６３ａに保持されたデプス値を選択し、フラグの論理が”０”のときに、デプス補間６３ｄから出力されるデプス値にＸ，Ｙ増分値がたされた補間値を選択する。
ＡＮＤ６３ｃは、デプス書込部６２からの読出要求と、描画回路１０からの読出要求とが、双方とも論理”１”のときに、読出要求を外部メモリ３０へ出力する。【００４７】
図１２は、デプスアクセス部６０の動作を説明する図である。ただし、図１２で説明するデプスアクセス部６０の動作は一つの画素ブロックに関するものである。また、画素ブロックのフラグの論理値が、描画処理によって、”１”から”０”に変更になった場合の画素アクセス部６０の動作を説明するものである。
ここで、画素ブロックＦは、すべての画素に対してデプス値があり、各画素のデプス値は、左上のデプス値を基準値とした、Ｘ，Ｙ増分値で表されている。また、画素ブロックＦは左上の画素値に対応するデプスに関連するフラグを有する。
また、画素ブロックＤは、カバレッジ＝１０１０の縦２×横２の画素値の組である。すなわち、カバレッジにおいて、論理”１”のビットに対応して、画素ブロックＤは、左上と左下に異なるデプス値を有する画素が存在するが、右上と右下の画素にはデプス値が存在しない。
そこで、描画処理後に、外部メモリ３０に書き込まれる画素ブロックＥは、画素ブロックＤの左半分から引き継いだ、左上と左下のデプス値と、画素ブロックＦの右半分から引き継いだ、デプス値からなっている。ここで、画素ブロックＦからのデプス値は、基準とする左上の画素に対するデプス値にＸ，Ｙ増分値を加算したものである。
画素ブロックＥが有する画素値は、セレクタ６２ｄで選択されており、カバレッジにおいて論理”１”のビットに対応して左半分の画素値が、論理”０”のビットに対応して右半分の画素値が選択されているからである。【００４８】
図１３は、デプスアクセス部６０の書込動作の全体を説明するフローチャートである。以下に、そのフローチャートについて、ステップ順に説明する。ただし、図１３に示す書込動作は縦２×横２の画素ブロックに対するものであり、これらの動作を複数回行うことで、縦Ｍ×横Ｎの画素を処理することになる。また、図１３で説明する書込動作は、縦Ｍ×横Ｎの画素のデプス値について、描画処理を行った後のデプス値を、デプスアクセス部５０が受け取り、外部メモリ３０へ書込む動作をいう。
ステップＯＰ３１０：描画回路１０から図１２に示す画素ブロックＤに属する画素Ｄ１、Ｄ２、Ｄ３、Ｄ４と、画素ブロックＤのカバレッジを取得する。
ステップＯＰ３２０：描画処理後の画素ブロックＤに属する画素Ｄ１、Ｄ２、Ｄ３、Ｄ４全てについてデプス値が存在すかについて、各画素のカバレッジの論理値によって判断する。すべての画素が描画されるとともに、デプス値が存在すると判断する場合、ステップＯＰ３４０へ進む。描画されない画素があり、デプス値がない画素があると判断する場合、ステップＯＰ３３０に進む。
ステップＯＰ３３０：画素ブロックＤの描画処理前のフラグを外部メモリ３０から読み出す。その後、ステップＯＰ３５０に進む。
ステップＯＰ３５０：ステップＯＰ３３０において読み出した描画処理前のフラグの論理値を、論理値”０”に書き換え、再び外部メモリ３０に書き込む。その後、ステップＯＰ３６０に進む。【００４９】
ステップＯＰ３６０：ステップＯＰ３３０において読み出した画素ブロックＤのフラグを用いて、フローチャートにおける分岐を判断する。すなわち、描画処理前のフラブの論理値が”０”の場合は、画素ブロックＤが含む画素の内、デプス値がない画素と、デプス値がある画素があるので、その状況に対応するステップＯＰ４００へ進む。一方、描画処理前のフラグの論理値が”１”の場合は、画素ブロックＤが含む画素はすべてデプス値を有する画素となるので、その状況に対応するステップＯＰ３７０に進む。【００５０】
ステップＯＰ４００：ステップＯＰ３１０で読み出した、描画処理後の画素ブロックＤに属する各画素の内、カバレッジの論理値”１”となっている画素について、画素ブロックＦに上書きして、画素ブロックＥを作成し、画素ブロックＥの状態のデプス値を外部メモリ３０に書き込む。その後、デプス書込動作を終了する。【００５１】
ステップＯＰ３７０：ステップＯＰ３６０において、画素ブロックＤが含む画素は、描画処理前にはすべて同色の塗りつぶし画素と判断されている。
しかし、ステップＯＰ３２０における判断では、描画処理後には、画素ブロックＤの画素のすべてが塗りつぶされておらず、デプス値が存在しない画素があると判断されている。
そこで、ステップＯＰ３７０において、描画処理前の画素ブロックＦの画素の内、外部メモリ３０に記憶されている左上の画素Ｆ１のデプス値及びＸ，Ｙ増分値の読出を行う。
ステップＯＰ３８０：ステップ３７０において外部メモリ３０から読み込んだ、描画処理前の画素ブロックＦの左上の画素Ｆ１のデプス値及びＸ，Ｙ増分値から、画素Ｆ２のデプス値、Ｆ３のデプス値、Ｆ４のデプス値を復元する。
ステップＯＰ３９０：描画処理前の画素ブロックＦの画素Ｆ１のデプス値、Ｆ２のデプス値、Ｆ３のデプス値、Ｆ４のデプス値を、デプス書込部６２に送り、書込用のレジスタ上の画素ブロックＥの画素Ｅ１のデプス値、Ｅ２のデプス値、Ｅ３のデプス値、Ｅ４のデプス値として記憶する。その後、描画処理後の画素ブロックＤの画素の内、カバレッジの論理値が”１”の画素を（例えば、カバレッジが（１０１０）のときには、Ｄ１のデプス値、Ｄ３のデプス値を）、右上及び右下に上書きする。その後、ステップＯＰ４１０へ進む。
ステップＯＰ４１０：描画処理前の画素ブロックＦの画素Ｆ１のデプス値、Ｆ２のデプス値、Ｆ３のデプス値、Ｆ４のデプス値と、描画処理後の画素ブロックＤの画素Ｄ１のデプス値、Ｄ２のデプス値、Ｄ３のデプス値、Ｄ４のデプス値とを、合成して構成した画素Ｅ１のデプス値、Ｅ２のデプス値、Ｅ３のデプス値、Ｅ４のデプス値を、外部メモリ３０に、画素ブロックＥの画素として書き込む。【００５２】
ステップＯＰ３４０：描画処理後の画素ブロックＤに属する画素Ｄ１、Ｄ２、Ｄ３、Ｄ４はデプス値が存在する画素であるから、画素ブロックＤのフラグの論理値は”１”となる。そこで、そのフラグの論理値を外部メモリ３０に書き込む。その後、ステップＯＰ４２０へ進む。
ステップＯＰ４２０：描画処理後の画素ブロックＤに属する画素Ｄ１（左上）のデプス値及び画素Ｄ２、Ｄ３、Ｄ４のＸ，Ｙ増分値を外部メモリ３０に書き込む。【００５３】
上記より、描画処理後の縦Ｍ×横Ｎの画素を扱うときに、デプスアクセス部６０は縦２×横２の画素ブロックに分けて扱う。そして、描画処理後の縦Ｍ×横Ｎの画素を外部メモリ３０に書き込む場合に、描画処理の前後において、フラグの論理値が”１”であったときには、画素ブロックすべてのデプス値を外部メモリ３０に書き戻すのではなく、左上のデプス値、Ｘ，Ｙ増分値とフラグの論理値のみを書き戻す動作をする。そうすると、画素ブロックに属するすべてのデプス値とカバレッジを書き戻す場合に比較して、外部メモリ３０へのアクセス回数を減少させることができる。さらに、フラグは１ビットの論理値のみからなるので、左上のフラグ値、Ｘ，Ｙ増分値及びフラグの１ビットを記憶する記憶領域は、一つの画素ブロックに係わる各画素のデプス値と、各画素のカバレッジを記憶する記憶領域よりも小さくなる。【００５４】
ここで、可変長圧縮データ方式を用いて、縦Ｍ×横Ｎの画素を扱う場合に、描画処理前の縦Ｍ×横Ｎの画素を、描画処理後の縦Ｍ×横Ｎの画素に変換するときの外部メモリ３０へのアクセス数と、本実施例に示した方式を用いて、縦Ｍ×横Ｎの画素を扱う場合のアクセス数を比較する。【００５５】
可変長圧縮データ方式においては、縦Ｍ×横Ｎの画素のデプス値の種類と頻度を分析し、頻度が高い種類の画素値に”０”を、次に頻度が高い画素値に”１”を、次の頻度が高い画素値に”１０”をというように、可変長のデータを割り当てる。画素値が固定長、例えば、４ビットであった場合には、可変長のデータに置き換えた分だけ、画素値を記憶する記憶領域を減少させることができることになる。【００５６】
そこで、可変長圧縮データ方式により圧縮されており、かつ、外部メモリ３０に記憶している縦Ｍ×横Ｎの画素のデプス値について、描画処理後のデプス値に置き換えることを考える。そうすると、上記の置き換えを行うため、次の操作をすることになると考える。まず、第１ステップで、圧縮データを元の縦Ｍ×横Ｎの画素のデプス値に展開する。次いで、第２ステップで描画処理を行う。次いで、第３ステップで描画処理後の縦Ｍ×横Ｎの画素のデプス値に対して可変長圧縮処理を行って、外部メモリ３０へ可変長圧縮処理後のデプス値を出力する。
そうすると、第１ステップで圧縮データを縦Ｍ×横Ｎの画素の画素値に展開するのに、
Ｍ×Ｎ×１＋Ｍ×Ｎ×Ｓ１＋Ｍ×Ｎ×４（・・・式（１））回のアクセスを行うことになる。ここで、カバレッジは１ビット、Ｓ１はＭ×Ｎ個の画素の可変長画素値の平均ビット数、可変長画素値に対応する固定長画素値のビット数は４ビットとする。
すなわち、カバレッジを読み出すのに式（１）の第１項のアクセスをすることになる。また、可変長圧縮処理を行ったデプス値を読み出すのに第２項のアクセスをすることになる。さらに、割り当てられた可変長ビットで表されたデプス値に対応する固定長のデプス値を読み出すのに第３項のアクセスをすることになる。
ついで、第３ステップにおいて圧縮データで表した縦Ｍ×横Ｎの画素のデプス値を書込をする場合に、
Ｍ×Ｎ×１＋Ｍ×Ｎ×Ｓ２（・・・式（２））回のアクセスを行うことになる。ここで、カバレッジは１ビット、Ｓ２はＭ×Ｎ個の画素の可変長デプス値の平均ビット数である。【００５７】
一方、本実施例に示す方法により、縦Ｍ×横Ｎの画素のデプス値を、描画処理後の縦Ｍ×横Ｎの画素のデプス値に置き換える場合、第１ステップとして、縦Ｍ×横Ｎの画素のデプス値を外部メモリから読み出す。第２ステップで、描画処理を行う。次いで、第３ステップで本実施例に示す方法で外部メモリ３０へ縦Ｍ×横Ｎの画素のデプス値を出力することになる。
まず、第１ステップでは、Ｍ×Ｎ×Ｔ１（０以上１未満の数字）の画素ブロックのフラグの論理値が”１”であった場合、
（Ｍ×Ｎ×（１−Ｔ１）×５）＋（Ｍ×Ｎ×Ｔ１×１１／４）（・・・式（３））回のアクセス数となる。ここで、カバレッジは１ビット、デプス値は固定長で４ビット、Ｘ、Ｙ増分値は２ビットとした。
さらに、第３ステップにおいて、Ｔ２（０以上１未満の数字）の画素ブロックのフラグの論理値が”１”であった場合、
（Ｍ×Ｎ×（１−Ｔ２）×５）＋（Ｍ×Ｎ×Ｔ２×１１／４）（・・・式（４））回のアクセス数となる。ここで、カバレッジは１ビット、画素値は固定長で４ビットとした。【００５８】
本実施例における、画素アクセス部５０と外部メモリ３０とのアクセス数は式（３）と式（４）の合計となり、Ｍ×Ｎ×（１０−（Ｔ１＋Ｔ２）×９／４）である。
一方、可変圧縮データを画素の画素値とする場合、式（１）と式（２）との合計となり、Ｍ×Ｎ×（６＋Ｓ１＋Ｓ２）である。
ここで、Ｓ１、Ｓ２はＭ×Ｎ個の画素の可変長画素値の平均ビット数である。そうすると、可変長画素値の平均ビット数がほぼ１となっても、Ｔ１＋Ｔ２が１以上であって２以下であるときは、本実施例におけるデプス書込部６２から外部メモリ３０へのアクセス数が、可変長圧縮データ方式に比較して減少することがわかる。すなわち、ほとんどの場合において、本実施例におけるデプスアクセス部６０と外部メモリ３０とのアクセス数が減少する。【００５９】
図１４は、デプスアクセス部６０の読出動作の全体を説明するフローチャートである。以下に、そのフローチャートについて、ステップ順に説明する。ただし、図１４に示す読出動作は縦２×横２の画素ブロックに対するものであり、これらの動作を複数回行うことで、縦Ｍ×横Ｎの画素を処理することになる。また、図１４で説明する読出動作は、縦Ｍ×横Ｎの画素の画素値について、描画を行うために、外部メモリ３０から読み出す動作をいう。
ステップＯＰ５１０：外部メモリ３０より、画素ブロックに対するフラグを読み出す。
ステップＯＰ５２０：読み出したフラグの論理が”１”である場合、ステップＯＰ５３０へ進む。一方、読み出したフラグの論理が”０”である場合、ステップ５４０へ進む。
ステップＯＰ５４０：画素ブロックに属する４画素分のデプス値を外部メモリ３０から読み出す。その後、デプス値の読出を終了する。
ステップＯＰ５３０：画素ブロックの左上の画素のデプス値及び４画素分のＸ，Ｙ増分値のみを読み出す。次いで、ステップＯＰ５５０へ進む。
ステップＯＰ５５０：読み出した左上の画素のデプス値と４画素分のＸ，Ｙ増分値から４画素分のデプス値を生成する。なお、このステップを行うかわりに、描画回路１０内において、左上の画素のデプス値と４画素分のＸ，Ｙ増分値から、４画素分のデプス値を作成してもよい。
【産業上の利用可能性】
【００６０】
アンチエイリアス処理に用いる画像データ量を減少させる画像データの形成方法、及び、形成された画像データについて、外部メモリへの書込回数を減少させる書込方法を提供することができる。
【符号の説明】
【００６１】
１０  描画回路
２０  画像データ処理回路
３０  外部メモリ
５０  画素アクセス部
５１  フラグ生成部
５２  画素書込部
５３  画素読出部
６０  デプスアクセス部
６１  フラグ生成部
６２  デプス書込部
６３  デプス読出部
【図１】
2012032583.tif 000003
【図２】
2012032583.tif 000004
【図３】
2012032583.tif 000005
【図４】
2012032583.tif 000006
【図５】
2012032583.tif 000007
【図６Ａ】
2012032583.tif 000008
【図６Ｃ】
2012032583.tif 000009
【図７】
2012032583.tif 000010
【図８】
2012032583.tif 000011
【図９】
2012032583.tif 000012
【図１０】
2012032583.tif 000013
【図１１Ａ】
2012032583.tif 000014
【図１１Ｃ】
2012032583.tif 000015
【図１２】
2012032583.tif 000016
【図１３】
2012032583.tif 000017
【図１４】
2012032583.tif 000018
【国際調査報告】
2012032583.tif 000019
2012032583.tif 000020