説明

画像処理装置、画像処理方法及びプログラム

【課題】奥行き感を確保しつつ、線を消失することなく描画する。
【解決手段】正変換行列描画処理部113は、第2のピクセル群に対して逆アフィン変換を施すことにより、前記第2のピクセル群に対応するアフィン変換前の第1のピクセル群を算出し、それらの第1のピクセル群のデータに基づいて第2のピクセル群を描画する。逆変換行列描画処理部112は、第1のピクセル群のうち、描画処理に用いられなかったデータに対応する第1のピクセルにアフィン変換を施すことにより、第1のピクセルに対応する第2のピクセル群を算出する。そして、逆変換行列描画処理部112は、第1のピクセルのデータに基づいて、算出された第2のピクセル群を描画する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、第1のピクセル群に対してアフィン変換を施すことにより第2のピクセル群を描画する技術に関するものである。
【背景技術】
【0002】
2次元グラフィックスデータに3次元変形を施して描画するには、一般に、2次元グラフィックスデータをテクスチャに対して描画し、描画されたテクスチャデータを3次元変形してスクリーンに射影する。テクスチャデータを3次元変形して射影する一般的な方法は、スクリーンの各ピクセルについて、3次元変形の逆行列を掛けてテクスチャデータにおいて参照されるピクセル(参照ピクセル)を算出し、参照ピクセルのデータで描画する。しかし、この方法では、テクスチャデータの中で参照されないピクセルが発生することがあり、線の消失等が生じる原因となっている。
【0003】
このような問題を解決するために、2次元グラフィックスデータを3次元変形して描画するとき、2次元グラフィックスデータが線であるかどうかを判別し、線である場合には、一定の太さで画面に描画するものが知られている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2002−203256号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来のように、線を一定の太さで画面に描画する手法では、3次元変形の奥行き感を出すことができないという問題があった。また、射影する際に、線であるオブジェクトを認識する必要があった。
【0006】
そこで、本発明の目的は、奥行き感を確保しつつ、線を消失することなく描画することにある。
【課題を解決するための手段】
【0007】
本発明の画像処理装置は、第1のピクセル群に対してアフィン変換を施すことにより第2のピクセル群を描画する画像処理装置であって、前記第2のピクセル群に対して逆アフィン変換を施すことにより、前記第2のピクセル群に対応するアフィン変換前の前記第1のピクセル群を算出する第1の算出手段と、前記第1の算出手段により算出された前記第1のピクセル群のデータに基づいて前記第2のピクセル群を描画する第1の描画手段と、前記第1のピクセル群のうち、前記第1の描画手段による描画処理に用いられなかったデータに対応する第1のピクセルにアフィン変換を施すことにより、前記第1のピクセルに対応する前記第2のピクセル群を算出する第2の算出手段と、前記第1のピクセルのデータに基づいて、前記第2の算出手段により算出された前記第2のピクセル群を描画する第2の描画手段とを有することを特徴とする。
【発明の効果】
【0008】
本発明によれば、奥行き感を確保しつつ、線を消失することなく描画することが可能となる。
【図面の簡単な説明】
【0009】
【図1】本発明の実施形態に係るグラフィックス描画装置の構成を示す図である。
【図2】逆アフィン変換による描画処理の流れを示すフローチャートである。
【図3】アフィン変換前後における矩形領域を説明するための図である。
【図4】逆アフィン変換による描画結果を説明するための図である。
【図5】原画像にアフィン変換を施して算出された矩形領域内の参照先ピクセルと、当該矩形領域に対して逆アフィン変換を施すことにより得られる参照元ピクセルとの対応関係を示す図である。
【図6】本発明の実施形態における描画処理を示すフローチャートである。
【図7】参照フラグバッファの初期状態と描画処理後の状態とを示す図である。
【図8】本発明の実施形態における描画処理による描画結果を説明するための図である。
【図9】参照元ピクセルと参照先ピクセルとの対応関係を示す図である。
【発明を実施するための形態】
【0010】
以下、本発明を適用した好適な実施形態を、添付図面を参照しながら詳細に説明する。
【0011】
図1は、本発明の実施形態に係るグラフィックス描画装置の構成を示す図である。図1において、100はグラフィックス描画装置であり、メモリ110及びCPU120を備える。また、グラフィックス描画装置100は、ディスプレイ200及び入力装置300と接続されている。メモリ110には、参照フラグバッファ管理部111、逆変換行列描画処理部112、正変換行列描画処理部113としてCPU120を機能させるためのプログラムが格納されている。なお、グラフィックス描画装置100は、画像処理装置の適用例となる構成である。
【0012】
先ず、図2〜図5を用いて、逆アフィン変換による描画処理について説明する。図2は、逆アフィン変換による描画処理の流れを示すフローチャートである。ステップS2001において、CPU120は、アフィン変換後の矩形領域を算出する。ここでは、図3(A)に示す矩形領域に対してアフィン変換を施し、図3(B)に示す矩形領域に変換する場合について考える。このときのアフィン変換行列は式1に示す行列であるものとする。また、変換前のピクセル(x,y)は、式1のアフィン変換行列を用いて、式2のように変換後のピクセル(x1,y1)に変換されるものとする。なお、図3に示す矩形領域における一つ一つの矩形の部分がピクセルに相当するものである。
【0013】
【数1】

【0014】
正変換行列描画処理部113は、アフィン変換前の4つの頂点についてそれぞれアフィン変換を施すことにより、アフィン変換後の矩形領域を算出する。次に、アフィン変換後の矩形領域内の各ピクセルについて、以下に説明するステップS2002〜S2004の処理が繰り返し実行される。以下では、アフィン変換後の矩形領域内の各ピクセルを参照先ピクセルと称す。ステップS2002において、逆変換行列描画処理部112は、式3に示すように、変換後の矩形領域内の各参照先ピクセルに対して逆アフィン変換を施すことにより、各参照先ピクセルに対応する、変換前の領域におけるピクセルを算出する。ステップS2003において、逆変換行列描画処理部112は、ステップS2002で算出したピクセルから最近傍法によって参照されるピクセル(以下、参照元ピクセルと称す)を求め、参照元ピクセルの値をスクリーンの各参照先ピクセルに描画する。本実施形態では、最近傍法によって参照元ピクセルを求めるが、線形補間法等の他の方法で求めるようにしてもよい。
【0015】
【数2】

【0016】
いま、図4(A)に示すようなビットマップデータである原画像にアフィン変換を施して描画する例を考える。原画像は2値のビットマップデータとし、図4(D)に示すように黒く塗りつぶされているピクセルの値を1とし、その他のピクセルの値を0とする。ここでは、2値のビットマップデータを例に挙げているが、多値のビットマップデータでもよいし、カラービットマップデータでもよい。図5は、図4(A)に示す原画像にアフィン変換を施して算出された矩形領域内の参照先ピクセル(図5(A))と、当該矩形領域に対して逆アフィン変換を施すことにより得られる参照元ピクセル(図5(B))との対応関係を示す図である。即ち、図5に示す対応関係に従って、図4(A)に示す原画像に対してアフィン変換を施すと、図4(B)に示す描画結果となる。図4(B)に示すようにアフィン変換後は矩形領域が小さくなっているため、図4(C)に示すように原画像内に参照されないピクセルである非参照ピクセル(図4(E))が生じている。そのため、原画像の全てのピクセルの値が描画結果に反映されず、図4(B)に示すように横線が欠落することがある。なお、図4(A)に示す矩形領域は第1のピクセル群の一例であり、図4(B)に示す矩形領域は第2のピクセル群の一例である。
【0017】
次に、図6〜図9を用いて、本発明の実施形態における描画処理について説明する。ステップS6001において、参照フラグバッファ管理部111は、逆アフィン変換によって原画像の各ピクセルが参照されたかどうかを示すフラグを格納するバッファをメモリ110に確保して初期化する。以下では、上記バッファを参照フラグバッファと称す。即ち、参照フラグバッファ管理部111は、図7(A)に示すように、原画像と同じサイズの参照フラグバッファを確保し、全参照フラグバッファを0に初期化する。ステップS6002において、正変換行列描画処理部113は、アフィン変換後の矩形領域を算出する。
【0018】
ステップS6003〜S6005は、ステップS6002で算出された矩形領域の全参照先ピクセルに対して繰り返し実行される。ステップS6003において、逆変換行列描画処理部112は、アフィン変換後の参照先ピクセルについて、逆アフィン変換を施して原画像の参照元ピクセルを算出する。ステップS6004において、逆変換行列描画処理部112は、参照元ピクセルの値(色情報)をスクリーン上の参照先ピクセルに描画する。ステップS6005において、参照フラグバッファ管理部111は、ステップS6003で算出された参照元ピクセルと同じ位置における参照フラグバッファの値を1に更新する。ステップS6005までの処理が完了した時点では、描画結果は逆アフィン変換による描画結果と同様である。また、参照フラグバッファは図7(B)に示すように更新される。図7(B)において、0となっているピクセルが参照されなかったことを示している。なお、ステップS6003は、第1の算出手段の処理例であり、ステップS6004は、第1の描画手段の処理例である。
【0019】
以上の処理に続き、ステップS6006〜S6008の処理が原画像の色情報が有効な全ピクセルについて繰り返し実行される。ここでいう色情報が有効なピクセルとは、本実施形態では、ピクセルの値が1であるピクセルであるが、多値のビットマップデータやカラービットマップデータである場合には、ピクセルの値が0以外の全てのピクセルである。ステップS6006において、参照フラグバッファ管理部111は、色情報が有効なピクセルに対応する参照フラグバッファの値が0であるか否かを判定する。参照フラグバッファの値が0である場合、処理はステップS6007に移行する。一方、参照フラグバッファの値が0ではなく、1である場合、ステップS6007、S6008はスキップされる。
【0020】
ステップS6007において、正変換行列描画処理部113は、現在のピクセルに対してアフィン変換を施して、スクリーン上で対応するピクセルを算出する。ステップS6008において、正変換行列描画処理部113は、ステップS6007で算出したピクセルを、原画像における現在のピクセルの色情報で描画する。なお、ステップS6007は、第2の算出手段の処理例であり、ステップS6008は、第2の描画手段の処理例である。
【0021】
図8(A)は、ステップS6005までの処理が終了した時点における、原画像のピクセルの値が1であり、且つ参照フラグバッファの値が0であるピクセルを表している。図9は、図8(A)に示す参照元ピクセルと、参照先ピクセルとの対応関係を示す図である。ここでは、同じアルファベットについて、小文字で示した参照元ピクセルから大文字で示した参照先ピクセルに変換されるものとする。一部、小文字のアルファベットで表された参照元ピクセルに対応する大文字のアルファベットで表された参照先ピクセルがないが、これは、異なる参照元ピクセルから同一の参照先ピクセルに変換されたためである。図6の処理全体による描画結果は、図8(C)に示すようになる。また、図6の処理のうち、ステップS6006〜ステップS6008の処理による描画結果は、図8(B)に示すようになる。図8(C)に示す最終的な描画結果は、逆アフィン変換参照による描画処理による描画結果(図4(B))に、本実施形態で追加した描画処理による描画結果(図8(B))を追加したものになる。
【0022】
以上のように、本実施形態によれば、細い線を含む文字のような図形を3次元変形した場合であっても、3次元変形による奥行き感を確保しつつ、線を消失することなく描画することが可能となる。
【0023】
本実施形態では、ビットマップデータにアフィン変換を施す例を示したが、ベクトルデータをラスタライズしたビットマップデータでも同様の処理を適用することができる。また、本実施形態では、3x3のアフィン行列の例を示したが、3x3によって2次元変形又は3次元変形を施すことができる。
【0024】
また、本実施形態では、参照元ピクセルからのアフィン変換で参照先ピクセルを求める方法に最近傍法を用いたが、線形補間法を用いてもよい。また、参照元ピクセルのアフィン変換後の大きさを考慮して、参照元ピクセルからアフィン変換で参照先ピクセルを求めてもよい。例えば、アフィン変換によって参照先ピクセルの大きさが大きくなる場合、アフィン変換後の複数の参照先ピクセルに影響を及ぼす。逆に、アフィン変換によって参照先ピクセルの大きさが小さくなる場合、アフィン変換後の参照先ピクセルの一部に影響を及ぼすため、透明度をつけるようにしてもよい。さらに、本実施形態では、参照フラグバッファをビットマップデータとは別の領域に確保したが、共有して処理するようにしてもよい。
【0025】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【符号の説明】
【0026】
100:グラフィックス描画装置、110:メモリ、111:参照フラグバッファ管理部、112:逆変換行列描画処理部、113:正変換行列描画処理部、200:ディスプレイ、300:入力装置

【特許請求の範囲】
【請求項1】
第1のピクセル群に対してアフィン変換を施すことにより第2のピクセル群を描画する画像処理装置であって、
前記第2のピクセル群に対して逆アフィン変換を施すことにより、前記第2のピクセル群に対応するアフィン変換前の前記第1のピクセル群を算出する第1の算出手段と、
前記第1の算出手段により算出された前記第1のピクセル群のデータに基づいて前記第2のピクセル群を描画する第1の描画手段と、
前記第1のピクセル群のうち、前記第1の描画手段による描画処理に用いられなかったデータに対応する第1のピクセルにアフィン変換を施すことにより、前記第1のピクセルに対応する前記第2のピクセル群を算出する第2の算出手段と、
前記第1のピクセルのデータに基づいて、前記第2の算出手段により算出された前記第2のピクセル群を描画する第2の描画手段とを有することを特徴とする画像処理装置。
【請求項2】
前記アフィン変換は、2次元変形及び3次元変形のうちの少なくとも何れか一方を含むことを特徴とする請求項1に記載の画像処理装置。
【請求項3】
最近傍法を用いて、前記第1のピクセル群から前記第2のピクセル群にアフィン変換を行うことを特徴とする請求項1又は2に記載の画像処理装置。
【請求項4】
線形補間法を用いて、前記第1のピクセル群から前記第2のピクセル群にアフィン変換を行うことを特徴とする請求項1又は2に記載の画像処理装置。
【請求項5】
アフィン変換後の前記第2のピクセル群の大きさに基づいて、前記第1のピクセル群から前記第2のピクセル群にアフィン変換を行うことを特徴とする請求項1又は2に記載の画像処理装置。
【請求項6】
前記データは、ベクトルデータをラスタライズしたビットマップデータを含むことを特徴とする請求項1乃至5の何れか1項に記載の画像処理装置。
【請求項7】
前記第1のピクセル群のうち、前記第1の描画手段による描画処理に用いられなかったデータに対応する第1のピクセルを管理するための情報を記憶する記憶領域と、前記データが格納される領域とを共有することを特徴とする請求項1乃至6の何れか1項に記載の画像処理装置。
【請求項8】
第1のピクセル群に対してアフィン変換を施すことにより第2のピクセル群を描画する画像処理装置によって実行される画像処理方法であって、
前記第2のピクセル群に対して逆アフィン変換を施すことにより、前記第2のピクセル群に対応するアフィン変換前の前記第1のピクセル群を算出する第1の算出ステップと、
前記第1の算出ステップにより算出された前記第1のピクセル群のデータに基づいて前記第2のピクセル群を描画する第1の描画ステップと、
前記第1のピクセル群のうち、前記第1の描画ステップによる描画処理に用いられなかったデータに対応する第1のピクセルにアフィン変換を施すことにより、前記第1のピクセルに対応する前記第2のピクセル群を算出する第2の算出ステップと、
前記第1のピクセルのデータに基づいて、前記第2の算出ステップにより算出された前記第2のピクセル群を描画する第2の描画ステップとを有することを特徴とする画像処理方法。
【請求項9】
第1のピクセル群に対してアフィン変換を施すことにより第2のピクセル群を描画する画像処理装置によって実行される画像処理方法をコンピュータに実行させるためのプログラムであって、
前記第2のピクセル群に対して逆アフィン変換を施すことにより、前記第2のピクセル群に対応するアフィン変換前の前記第1のピクセル群を算出する第1の算出ステップと、
前記第1の算出ステップにより算出された前記第1のピクセル群のデータに基づいて前記第2のピクセル群を描画する第1の描画ステップと、
前記第1のピクセル群のうち、前記第1の描画ステップによる描画処理に用いられなかったデータに対応する第1のピクセルにアフィン変換を施すことにより、前記第1のピクセルに対応する前記第2のピクセル群を算出する第2の算出ステップと、
前記第1のピクセルのデータに基づいて、前記第2の算出ステップにより算出された前記第2のピクセル群を描画する第2の描画ステップとをコンピュータに実行させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2012−160120(P2012−160120A)
【公開日】平成24年8月23日(2012.8.23)
【国際特許分類】
【出願番号】特願2011−20825(P2011−20825)
【出願日】平成23年2月2日(2011.2.2)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】