(57)【特許請求の範囲】
【請求項１】
テクスチャパターンデータを２×２個のピクセルのブロックに分割した際の各ブロック中の位置に対応したピクセルのデータを記憶する４個のテクスチャ記憶手段と、
ラッチ回路、加算器及びマルチプレクサで構成し、任意の基準となるピクセルを含む隣接した２×２個のピクセルのデータを上記テクスチャ記憶手段の２×２個のアドレスを同時に指定して読出す読出手段と、
上記２×２個のピクセルのデータにおける基準となるピクセルのデータの占める割合を予め設定された複数候補の中から選択して設定する割合設定手段と、
上記割合設定手段で設定された割合に基づいて上記読出手段で読出した２×２個のピクセルのデータから１個のピクセルのデータを算出する演算手段と
を具備したことを特徴とする画像処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えばパーソナルコンピュータやビデオゲーム機などに適用される画像処理装置に関する。
【０００２】
【従来の技術】
近時、広い範囲でコンピュータグラフィックスが利用されており、より現実的な画像をハードウェア及びソフトウェア双方の負担を強いることなしに表現する方法が日々開発され続けている。
【０００３】
ところで、３次元コンピュータグラフィックスにおいては、ポリゴンと称する任意多角形に対してテクスチャパターンと称する予め用意した模様や陰影等を有する画像を写し込む、テクスチャマッピングと呼称される技術が広く一般的に使用されている。
【０００４】
３次元空間中に配置される様々なポリゴンは、任意の拡大及び縮小に対してその描画面積を自由に変更できるが、読出される側のテクスチャパターンデータは通常、当初に指定されたテクスチャパターンデータのメモリ領域範囲からはみ出して読出すことはできない。
【０００５】
したがって、拡大表示されるポリゴンを構成する１つのピクセルに対して、テクスチャパターンデータの１ピクセル分の情報を拡大率に比例させて繰返し出力を行なうようになる。
【０００６】
この結果得られる画像出力では、所謂ジャギーと呼称される、デジタル的な拡大が認識できるような、特に斜線部分が階段状に表現されたきわめて不自然な描画表現になってしまう。
【０００７】
【発明が解決しようとする課題】
拡大表示されるテクスチャパターンがマッピングされたポリゴンでのジャギーを軽減する手法としては、次に述べるようなものがある。
（１）  予め拡大したテクスチャパターンデータを別に用意しておき、表示されるポリゴンの面積に合わせて使用するテクスチャパターンデータを切換える。
（２）  マッピングの基準となるピクセルとそのピクセルを基準とした周囲の隣接する一定数のピクセルを順番に読出し、ソフトウェアによる処理で画素演算を行なって、最終的に１ピクセル分のテクスチャパターンデータとして出力する。
（３）  マッピングの基準となるピクセルとそのピクセルを基準とした周囲の隣接する一定数のピクセルを順番に読出し、ハードウェア回路で用意した画素演算器に順次送って画素演算を実行させ、最終的に１ピクセル分のテクスチャパターンデータとして出力する。
【０００８】
上記（２）及び（３）の手法は、実現手段としてソフトウェアとハードウェアの違いはあるが、考え方は同様であり、以下に示すとおりのものである。
【０００９】
すなわち、図６（ａ）はテクスチャパターンデータの一部を例示するものであり、番号「００００」「０００１」‥‥の各矩形がテクスチャパターンデータを構成するＲＧＢ各成分を有したピクセルのデータであり、これらテクスチャパターンデータが図６（ｂ）に示すような規則正しい順序でメモリに記憶されているものとする。
【００１０】
基準となるピクセルのデータを用いた画素演算を該基準となるピクセルのデータを含む例えば横（ｕ方向）２×縦（ｖ方向）２の計４個で行なうものとし、基準となるピクセルのデータ以外に、周囲の隣接するピクセルのデータを読出す数を、右隣、上、及び右斜め上の３個とする。
【００１１】
例えば基準となるピクセルのデータが「０００９」であれば、この基準のピクセルのデータと「００１０」「００１７」「００１８」のピクセルのデータとをアドレス指定して読出し、ソフトウェア処理あるいはハードウェア回路により画素演算を実行して、所望の１ピクセル分のデータを得るもので、得られるピクセルのデータは当然ながら上記基準となるピクセルのデータだけでなく周囲のピクセルのデータの影響を受けた画素値となるため、結果としてぼやけたような画像として表示され、上記ジャギーを軽減させるものである。このような処理をテクスチャマッピングにおけるスムージング処理と呼称する。
【００１２】
上記のような手法のうち、上記（１）で説明したものはきわめて簡単な考え方ながら、拡大されたテクスチャパターンデータを元のテクスチャパターンデータとは別にしてメモリに予め記憶させておく必要があり、さらにテクスチャパターンデータの切換えやデータの転送を行なう必要もあるため、全体に無駄が多い。
【００１３】
また、上記（２）で説明したソフトウェアでスムージング処理を行なう手法もその処理自体は簡単であるが、各ピクセル毎のメモリからの読出し及び演算を全てソフトウェアで処理しなければならず、システムのメインとなるプロセッサあるいはＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ：補助演算装置）などに大きな負担がかかり、演算速度が低下して、リアルタイム性が重視されるようなグラフィックスシステムでは使用することができない。
【００１４】
さらに上記（３）で説明したハードウェア回路でスムージング処理を行なう手法も、上記（２）の手法をハードウェア回路による専用の演算器にて処理するようにしたものであるが、各ピクセルのデータをテクスチャパターンデータを記憶したメモリから読出す際の処理は上記（２）の手法と同様に煩雑であり、やはりリアルタイム性が重視されるようなグラフィックスシステムでは使用することができない。
【００１５】
本発明は上記のような実情に鑑みてなされたもので、その目的とするところは、ＣＰＵに負担をかけることなく、テクスチャマッピングのスムージング処理をより高速に実行することが可能な画像処理装置を提供することにある。
【００１６】
【課題を解決するための手段】
請求項１記載の発明は、テクスチャパターンデータを２×２個のピクセルのブロックに分割した際の各ブロック中の位置に対応したピクセルのデータを記憶する４個のテクスチャ記憶手段と、ラッチ回路、加算器及びマルチプレクサで構成し、任意の基準となるピクセルを含む隣接した２×２個のピクセルのデータを上記テクスチャ記憶手段の２×２個のアドレスを同時に指定して読出す読出手段と、上記２×２個のピクセルのデータにおける基準となるピクセルのデータの占める割合を予め設定された複数候補の中から選択して設定する割合設定手段と、上記割合設定手段で設定された割合に基づいて上記読出手段で読出した２×２個のピクセルのデータから１個のピクセルのデータを算出する演算手段とを具備したことを特徴とする。
【００１９】
このような構成とすれば、スムージング処理を行なうための２×２個のピクセルのデータを２×２個のテクスチャパターンデータを記憶したメモリから並列して同時に読出すようにしたため、画像処理全般の制御を司るＣＰＵに負担をかけることなく、且つスムージングの倍率を複数の選択候補の中から任意に設定可能としながらテクスチャマッピングのスムージング処理をより高速に実行することが可能となる。
【００２０】
【発明の実施の形態】
以下図面を参照して本発明の実施の一形態に係る画像処理装置を説明する。
【００２１】
まず、実回路構成を説明する前に、その原理概念について説明する。
【００２２】
図１（ａ）は上記図６（ａ）で示したものと同様のテクスチャパターンデータを２×２の計４個のピクセルを１ブロックとして分割し、各ブロック中におけるアドレスを共に「０」〜「３」として、図１（ｂ）に示す如く４つのテクスチャメモリ１１０〜１１３を用意し、各ブロック中のアドレス「０」のピクセルのＲＧＢ各成分のデータをテクスチャメモリ１１０に、同アドレス「１」のピクセルのＲＧＢ各成分のデータをテクスチャメモリ１１１に、同アドレス「２」のピクセルのＲＧＢ各成分のデータをテクスチャメモリ１１２に、そして、同アドレス「３」のピクセルのＲＧＢ各成分のデータをテクスチャメモリ１１３に、それぞれ記憶させるものである。
【００２３】
したがって、例えば第「５」ブロック中のアドレス「３」のピクセルのデータを基準とし、テクスチャメモリ１１３から読出してスムージング処理を実行する場合には、他に第「６」ブロック中のアドレス「２」のピクセルのデータをテクスチャメモリ１１２から、第「９」ブロック中のアドレス「１」のピクセルのデータをテクスチャメモリ１１１から、及び第「１０」ブロック中のアドレス「０」のピクセルのデータをテクスチャメモリ１１０から、それぞれ同時にアドレス指定して読出し、これら４個のピクセルのデータによりスムージングの倍率、すなわち４個のピクセルのデータにおける基準となるピクセルのデータの占める割合を考慮してスムージング処理のための演算を実行するものである。
【００２４】
図２は上記のような演算を実現するための回路構成を例示するもので、基準となるピクセルのｕ方向のアドレス情報が読出アドレス生成器１２１及びｕ方向演算割合生成器１３１に、同ｖ方向のアドレス情報が読出アドレス生成器１２２及びｖ方向演算割合生成器１３２に、それぞれ与えられる。
【００２５】
読出アドレス生成器１２１は、与えられたｕ方向のアドレス情報から２種類のアドレス情報ａ，ｂを生成し、アドレス情報ａをテクスチャメモリ１１３及びテクスチャメモリ１１１に、アドレス情報ｂをテクスチャメモリ１１２及びテクスチャメモリ１１０にそれぞれ与える一方、データスクランブル１４に対してコントロール信号“０”を与える。
【００２６】
読出アドレス生成器１２２は、与えられたｖ方向のアドレス情報から２種類のアドレス情報ｃ，ｄを生成し、アドレス情報ｃをテクスチャメモリ１１３及びテクスチャメモリ１１２に、アドレス情報ｄをテクスチャメモリ１１１及びテクスチャメモリ１１０にそれぞれ与える一方、データスクランブル１４に対してコントロール信号“１”を与える。
【００２７】
ｕ方向演算割合生成器１３１は、外部から与えられるスムージングの倍率を表す倍率情報を元にして、上記ｕアドレス情報の一部を判別、演算して４個のピクセルのデータのうちの基準となるピクセルのデータのとるｕ方向での割合データｉｓｕを生成し、ｕ方向スムージング演算器１５へ送出する。
【００２８】
また、ｖ方向演算割合生成器１３２は、外部から与えられるスムージングの倍率を表す倍率情報を元にして、上記ｖアドレス情報の一部を判別、演算して４個のピクセルのデータのうちの基準となるピクセルのデータのとるｖ方向での割合データｉｓｖを生成し、ｖ方向スムージング演算器１６へ送出する。
【００２９】
しかして、テクスチャメモリ１１０〜１１０でそれぞれアドレス指定された位置に記憶されているピクセルのデータが並列して読出され、共にデータスクランブル１４に送られる。
【００３０】
データスクランブル１４では、読出アドレス生成器１２１，１２２から送られてくるコントロール信号“０”“１”に従って、上記テクスチャメモリ１１３〜１１０からの各ピクセルのデータの位置をシフトし、シフト後の４個のピクセルのデータをｕ方向スムージング演算器１５へ送出する。
【００３１】
ｕ方向スムージング演算器１５は、データスクランブル１４で位置をシフトした４個のピクセルのデータのうち、ｕ方向に沿った２個ずつをそれぞれｕ方向演算割合生成器１３１からの割合データｉｓｕに従ってスムージング処理して２個のピクセルのデータとし、これらをｖ方向スムージング演算器１６へ出力する。
【００３２】
ｖ方向スムージング演算器１６は、ｖ方向に沿った２個のピクセルのデータをｖ方向演算割合生成器１３２からの割合データｉｓｖに従ってスムージング処理するもので、こうして得られたピクセルのデータが最終的なものとして図示しない次段の処理回路へ出力される。
【００３３】
図３は上記読出アドレス生成器１２１，１２２の詳細な構成を示すものである。読出アドレス生成器１２１は、ラッチ回路２１、加算器２２、及びマルチプレクサ２３，２４から構成されるもので、上記ｕアドレス情報はラッチ回路２１に与えられてラッチされる一方、加算器２２にも与えられる。
【００３４】
ラッチ回路２１は、このｕアドレス情報の最下位１ビットを上記データスクランブル１４へのコントロールデータ“０”として送出する一方、残る全ビットをそのままマルチプレクサ２３のＢ入力端子へ与える。
【００３５】
加算器２２は、ｕアドレス情報と定数「１」とを加算し、その和データの最下位１ビットを無効とし、残る全ビットとキャリーとをそのままマルチプレクサ２４のＢ入力端子へ与える。
【００３６】
マルチプレクサ２３は、外部から与えられるローカラム信号に基づいて、Ａ入力端子に与えられるローアドレス信号の値“Ｌ”とＢ入力端子に入力されるラッチ回路２１のラッチ出力の一方を選択して、上記アドレス情報ａとして出力する。
【００３７】
マルチプレクサ２４は、外部から与えられるローカラム信号に基づいて、Ａ入力端子に与えられるローアドレス信号の値“Ｌ”とＢ入力端子に入力される加算器２２の和出力の一方を選択して、上記アドレス情報ｂとして出力する。
【００３８】
同様に、読出アドレス生成器１２２は、ラッチ回路２５、加算器２６、及びマルチプレクサ２７，２８から構成されるもので、上記ｖアドレス情報はラッチ回路２５に与えられてラッチされる一方、加算器２６にも与えられる。
【００３９】
ラッチ回路２５は、このｖアドレス情報の最下位１ビットを上記データスクランブル１４へのコントロールデータ“１”として送出する一方、残る全ビットをそのままマルチプレクサ２７のＢ入力端子へ与える。
【００４０】
加算器２６は、ｖアドレス情報と定数「１」とを加算し、その和データの最下位１ビットを無効とし、残る全ビットとキャリーとをそのままマルチプレクサ２８のＢ入力端子へ与える。
【００４１】
マルチプレクサ２３は、外部から与えられるローカラム信号に基づいて、Ａ入力端子に与えられるローアドレス信号の値“Ｈ”とＢ入力端子に入力されるラッチ回路２５のラッチ出力の一方を選択して、上記アドレス情報ｃとして出力する。
【００４２】
マルチプレクサ２８は、外部から与えられるローカラム信号に基づいて、Ａ入力端子に与えられるローアドレス信号の値“Ｈ”とＢ入力端子に入力される加算器２６の和出力の一方を選択して、上記アドレス情報ｄとして出力する。
【００４３】
次に図４により上記ｕ方向演算割合生成器１３１及びｖ方向演算割合生成器１３２の詳細な回路構成について説明する。同図で、スムージングの倍率を表す倍率情報はラッチ回路２９でラッチされた後に、ｕ方向演算割合生成器１３１のビットマスク回路３１とバレルシフタ３２、及びｖ方向演算割合生成器１３２のビットマスク回路３５とバレルシフタ３６に与えられる。
【００４４】
ｕ方向演算割合生成器１３１は、ラッチ回路３０、上記ビットマスク回路３１、上記バレルシフタ３２、及びビットマスク回路３３から構成され、ラッチ回路３０がｕアドレス情報の小数部をラッチしてビットマスク回路３１へ出力する。ビットマスク回路３１は、上記倍率情報を基にラッチ回路３０からのｕアドレス情報の一部を無効化するマスク処理を行ない、処理後の情報をバレルシフタ３２に出力する。バレルシフタ３２は、ラッチ回路２９からの倍率情報に基づいてビットマスク回路３１の出力を適宜シフトしてビットマスク回路３３に送出する。このビットマスク回路３３は、バレルシフタ３２から送られてきた情報の予め設定された部分を無効化するマスク処理を行なうもので、処理後の情報をｕ方向の割合データｉｓｕとして生成し、上記ｕ方向スムージング演算器１５へ出力する。
【００４５】
ｖ方向演算割合生成器１３２は、ラッチ回路３４、上記ビットマスク回路３５、上記バレルシフタ３６、及びビットマスク回路３７から構成され、ラッチ回路３４がｖアドレス情報の小数部をラッチしてビットマスク回路３５へ出力する。ビットマスク回路３５は、上記倍率情報を基にラッチ回路３４からのｖアドレス情報の一部を無効化するマスク処理を行ない、処理後の情報をバレルシフタ３６に出力する。バレルシフタ３６は、ラッチ回路２９からの倍率情報に基づいて０３５の出力を適宜シフトしてビットマスク回路３７に送出する。このビットマスク回路３７は、バレルシフタ３６から送られてきた情報の予め設定された部分を無効化するマスク処理を行なうもので、処理後の情報をｖ方向の割合データｉｓｖとして生成し、上記ｖ方向スムージング演算器１６へ出力する。
【００４６】
上記のような構成にあって、いま図５（ａ）に示すテクスチャパターンデータの第「９」ブロック中のアドレス「３」のピクセルのデータを基準としてスムージング処理を実行する場合の動作について例示する。
【００４７】
この場合、図中に破線の円形で示す如く、同時に第「１０」ブロック中のアドレス「２」のピクセルのデータ、第「１３」ブロック中のアドレス「１」のピクセルのデータ、及び第「１４」ブロック中のアドレス「０」のピクセルのデータをそれぞれ同時にアドレス指定して読出し、これら４個のピクセルのデータによりスムージング処理を実行しなければならない。
【００４８】
ｕアドレス情報として第「９」ブロック中のアドレス「３」を表す座標値「３」が読出アドレス生成器１２１及びｕ方向演算割合生成器１３１に与えられ、同時にｖアドレス情報として第「９」ブロック中のアドレス「３」を表す座標値「５」が読出アドレス生成器１２１及びｕ方向演算割合生成器１３１に与えられる。
【００４９】
読出アドレス生成器１２１では、このｕアドレス情報「３」から新たに加算器２２で「＋１」したアドレス情報「４」が生成され、マルチプレクサ２３，２４により元のアドレス情報「３」がアドレス情報ａとしてテクスチャメモリ１１３，１１１のローアドレスに、アドレス情報「４」がアドレス情報ｂとしてテクスチャメモリ１１２，１１０のローアドレスに与えられる。
【００５０】
同様に読出アドレス生成器１２２では、上記ｖアドレス情報「５」から新たに加算器２６で「＋１」したアドレス情報「６」が生成され、マルチプレクサ２７，２８により元のアドレス情報「５」がアドレス情報ｃとしてテクスチャメモリ１１３，１１２のハイアドレスに、アドレス情報「６」がアドレス情報ｄとしてテクスチャメモリ１１１，１１０のハイアドレスに与えられる。
【００５１】
したがって、テクスチャメモリ１１０からは、ｖアドレス情報とｕアドレス情報の座標を例えば（ｖ，ｕ）の形で表わすものとすると、アドレス（３，５）、すなわち第「９」ブロック中のアドレス「３」に位置するピクセルのデータが基準となるピクセルのデータとして読出されてデータスクランブル１４へ出力される。
【００５２】
同様に、テクスチャメモリ１１２からはアドレス（４，５）すなわち第「１０」ブロック中のアドレス「２」に位置するピクセルのデータが、テクスチャメモリ１１１からはアドレス（３，６）すなわち第「１３」ブロック中のアドレス「１」に位置するピクセルのデータが、テクスチャメモリ１１０からはアドレス（４，６）すなわち第「１４」ブロック中のアドレス「０」に位置するピクセルのデータが、それぞれ読出されてデータスクランブル１４へ出力される。
【００５３】
データスクランブル１４では、読出アドレス生成器１２１，１２２からのコントロール信号“０”“１”の各内容により、図５（ｂ）に示すようにテクスチャメモリ１１３からのピクセルのデータを基準となるものＩとして、他の３つのピクセルのデータＩＩ〜ＩＶと区分してｕ方向スムージング演算器１５へ送出する。
【００５４】
ｕ方向スムージング演算器１５は、データスクランブル１４からの４個のピクセルのデータＩ〜ＩＶのうち、ｕ方向演算割合生成器１３１からの割合データｉｓｕに従い、第「９」ブロック中のアドレス「３」のピクセルのデータＩのＲＧＢ各成分に対して「１０Ｈ−ｉｓｕ」の差出力を乗算し、その積を、第「１０」ブロック中のアドレス「２」のピクセルのデータＩＩＩのＲＧＢ各成分に対して直接ｉｓｕを乗算した積とそれぞれ加算し、その和Ｖをｖ方向スムージング演算器１６へ出力する。
【００５５】
同時にｕ方向スムージング演算器１５は、第「１３」ブロック中のアドレス「１」のピクセルのデータＩＩのＲＧＢ各成分に対して「１０Ｈ−ｉｓｕ」の差出力を乗算し、その積を、第「１４」ブロック中のアドレス「０」のピクセルのデータＩＶのＲＧＢ各成分に対して直接ｉｓｕを乗算した積と加算し、その和ＶＩをｖ方向スムージング演算器１６へ出力する。
【００５６】
ｖ方向スムージング演算器１６では、ｖ方向演算割合生成器１３２からの割合データｉｓｖに従い、上記第「９」ブロック中のアドレス「３」のピクセルのデータＩと第「１０」ブロック中のアドレス「２」のピクセルのデータＩＩＩとを割合データｉｓｕを用いて演算した結果ＶのＲＧＢ各成分に対して「１０Ｈ−ｉｓｖ」の差出力を乗算する一方、上記第「１３」ブロック中のアドレス「１」のピクセルのデータＩＩと第「１４」ブロック中のアドレス「０」のピクセルのデータＩＶとを割合データｉｓｕを用いて演算した結果ＶＩのＲＧＢ各成分に対して直接ｉｓｖを乗算し、これら２つの積を加算することで、スムージング処理結果としての最終的なピクセルのデータを得、これを図示しない次段の処理回路へ出力する。
【００５７】
このように、基準となるピクセルのデータを含む、スムージング処理を行なうための縦２×横２の計４個のピクセルのデータを４個のテクスチャパターンデータを記憶したメモリ１１０〜１１３から並列して同時に読出すようにしたため、画像処理全般の制御を司るＣＰＵに負担をかけることなく、テクスチャマッピングのスムージング処理をより高速に実行することが可能となる。
【００５８】
また、このスムージング処理を行なう過程に際して、スムージングの倍率を任意に設定可能とし、設定した倍率の情報から基準となるピクセルのデータの隣接するピクセルのデータに対する割合を算出してスムージング演算に供するようにしたため、必要に応じた倍率でのスムージング処理をより高速に実行することが可能となる。
【００５９】
その他、本発明はその要旨を逸脱しない範囲内で種々変形して実施することが可能であるものとする。
【００６１】
【発明の効果】
請求項１記載の発明によれば、スムージング処理を行なうための２×２個のピクセルのデータを２×２個のテクスチャパターンデータを記憶したメモリから並列して同時に読出すようにしたため、画像処理全般の制御を司るＣＰＵに負担をかけることなく、且つスムージングの倍率を複数の選択候補の中から任意に設定可能としながらテクスチャマッピングのスムージング処理をより高速に実行することが可能となる。
【図面の簡単な説明】
【図１】  本発明の実施の一形態に係る基本概念を説明する図。
【図２】  同実施の形態に係る回路構成を示すブロック図。
【図３】  図２の読出アドレス生成器の詳細な回路構成を示すブロック図。
【図４】  図２のｕ方向演算割合生成器、ｖ方向演算割合生成器の詳細な回路構成を示すブロック図。
【図５】  同実施の形態に係る動作を説明するための図。
【図６】  一般的なテクスチャパターンデータとその記憶方法とを例示する図。
【符号の説明】
１１０〜１１３…テクスチャメモリ
１２１，１２２…読出アドレス生成器
１３１…ｕ方向演算割合生成器
１３２…ｖ方向演算割合生成器
１４…データスクランブル
１５…ｕ方向スムージング演算器
１６…ｖ方向スムージング演算器
２１，２５…ラッチ回路
２２，２６…加算器
２３，２４，２７，２８…マルチプレクサ
３０，３４…ラッチ回路
３１，３３，３５，３７…ビットマスク回路
３２，３６…バレルシフタ
【図１】
0004313863.tif 000002
【図２】
0004313863.tif 000003
【図３】
0004313863.tif 000004
【図４】
0004313863.tif 000005
【図５】
0004313863.tif 000006
【図６】
0004313863.tif 000007