(57)【要約】  データ解析部１２は、輪郭線を挟んで互いに隣接する２つの領域についてそれぞれ第１の色および第２の色を定義する領域色情報を含むベクトル画像データを解析する。輪郭線通過座標計算部１５は、輪郭線が通過する画素である境界画素を検出する。縦断判定部１６は、各境界画素が輪郭線によって縦断されているか否かを判定する。着色部１９は、各スキャンラインにおいて画素を順番に着色する際に、輪郭線が縦断している画素については、領域色情報に基づいて色を計算してその計算した色で着色すると共に、基準塗り色の設定を第１の色から第２の色に切り替え、輪郭線が縦断していない画素については、設定されている基準塗り色で着色する。
2010095178.tif 000002
【特許請求の範囲】
【請求項１】
輪郭線を定義する線情報、および前記輪郭線をはさんで互いに隣接する２つの領域についてそれぞれ第１の色および第２の色を定義する領域色情報を含むベクトル画像データを解析するデータ解析部と、
前記線情報に基づいて、輪郭線が通過する画素である境界画素を検出する検出部と、
各境界画素が輪郭線によって縦断されているか否かをそれぞれ判定する縦断判定部と、
各スキャンラインにおいて画素を順番に着色するときに、
輪郭線が縦断していない境界画素については、前記領域色情報に基づいて色を計算してその計算した色で着色し、
輪郭線が縦断している境界画素については、前記領域色情報に基づいて色を計算してその計算した色で着色すると共に、基準塗り色の設定を前記第１の色から前記第２の色に切り替え、
境界画素でない画素については、設定されている基準塗り色で着色する着色部と、
を備えることを特徴とする多色ベクトル画像処理装置。
【請求項２】
請求項１に記載の多色ベクトル画像処理装置であって、
各画素について、境界画素であるか否かを表す情報を格納すると共に、各境界画素について、輪郭線によって縦断されているか否かを表す情報、画素領域に属する複数の色領域を識別する情報、前記複数の色領域の面積比を表す情報を格納する格納部をさらに備え、
前記着色部は、前記格納部に格納されている情報に従って各ラインの画素を着色する
ことを特徴とする多色ベクトル画像処理装置。
【請求項３】
請求項１に記載の多色ベクトル画像処理装置であって、
同一の輪郭線上に順番に存在する第１の境界画素、第２の境界画素、第３の境界画素の垂直方向の座標がＹ１、Ｙ２、Ｙ３であるときに、前記縦断判定部は、
（１）Ｙ２＜Ｙ１、且つ、Ｙ２＜Ｙ３ではなく
（２）Ｙ２＜Ｙ１、または、Ｙ２＜Ｙ３である
ときに、前記第２の境界画素が前記輪郭線によって縦断されていると判定する
ことを特徴とする多色ベクトル画像処理装置。
【請求項４】
請求項１に記載の多色ベクトル画像処理装置であって、
前記縦断判定部は、
第１のスキャンラインにおいてある輪郭線が第１の画素のみを通過するときは、前記輪郭線が前記第１の画素を縦断すると判定し、
第２のスキャンラインにおいてある輪郭線が互いに隣接する第２および第３の画素を通過するときは、前記輪郭線が前記第２の画素を縦断すると共に、前記輪郭線が前記第３の画素を縦断しないと判定する
ことを特徴とする多色ベクトル画像処理装置。
【請求項５】
請求項１に記載の多色ベクトル画像処理装置であって、
前記線情報に基づいて、境界画素が輪郭線により分割されることで得られる複数の領域の面積の比を計算する面積比計算部をさらに備え、
前記着色部は、前記面積比計算部の計算結果に応じて、境界画素の色を決定する
ことを特徴とする多色ベクトル画像処理装置。
【請求項６】
請求項１に記載の多色ベクトル画像処理装置であって、
指定された画像サイズに応じてベクトル画像データを変換する変換部をさらに備え、
前記検出部は、前記変換部により変換されたベクトル画像データに基づいて、境界画素を検出し、
前記縦断判定部は、前記変換部により変換されたベクトル画像データに基づいて、各境界画素が輪郭線によって縦断されているか否かをそれぞれ判定する
ことを特徴とする多色ベクトル画像処理装置。
【請求項７】
輪郭線を定義する線情報、および前記輪郭線をはさんで互いに隣接する２つの領域についてそれぞれ第１の色および第２の色を定義する領域色情報を含むベクトル画像データを解析し、
前記線情報に基づいて、輪郭線が通過する画素である境界画素を検出し、
各境界画素が輪郭線によって縦断されているか否かをそれぞれ判定し、
各スキャンラインにおいて画素を順番に着色するときに、
輪郭線が縦断していない境界画素については、前記領域色情報に基づいて色を計算してその計算した色で着色し、
輪郭線が縦断している境界画素については、前記領域色情報に基づいて色を計算してその計算した色で着色すると共に、基準塗り色の設定を前記第１の色から前記第２の色に切り替え、
境界画素でない画素については、設定されている基準塗り色で着色する、
ことを特徴とする多色ベクトル画像処理方法。
【請求項８】
コンピュータに、
輪郭線を定義する線情報、および前記輪郭線をはさんで互いに隣接する２つの領域についてそれぞれ第１の色および第２の色を定義する領域色情報を含むベクトル画像データを解析し、
前記線情報に基づいて、輪郭線が通過する画素である境界画素を検出し、
各境界画素が輪郭線によって縦断されているか否かをそれぞれ判定し
各スキャンラインにおいて画素を順番に着色するときに、
輪郭線が縦断していない境界画素については、前記領域色情報に基づいて色を計算してその計算した色で着色し、
輪郭線が縦断している境界画素については、前記領域色情報に基づいて色を計算してその計算した色で着色すると共に、基準塗り色の設定を前記第１の色から前記第２の色に切り替え、
境界画素でない画素については、設定されている基準塗り色で着色する、
多色ベクトル画像処理を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の色を描画するベクトル画像処理装置およびベクトル画像処理方法に係わる。
【背景技術】
【０００２】
所望のサイズで画像を描画または表示する方法として、ベクトル画像が知られている。ベクトル画像は、コンピュータグラフィックスにおける画像形式の１つであり、輪郭線情報および面情報など利用して画像が定義される。輪郭線情報は、開始点の位置、終了点の位置、線の属性などを定義する。また、面情報は、輪郭線で囲まれた面の属性（色など）を定義する。このように、ベクトル画像は、画像が数値データで定義されるので、ラスタ形式の画像と比較して、データサイズが小さくなる。また、ベクトル画像は、ラスタ形式の画像と比較して、サイズを変更しても品質が劣化しにくい。【０００３】
ベクトル画像を描画する際には、輪郭線が通過する座標を計算する処理、塗りつぶし領域を計算する処理、輪郭線上の色の計算（たとえば、アンチエイリアス処理）が実行される。このため、ベクトル画像は、ラスタ形式の画像と比較して、画素データを生成するための演算量が多く、表示装置に画像が描画されるまでに要する時間が長い。このため、ベクトル画像の描画時間を短縮するための技術が提案されている。【０００４】
特許文献１に記載の図形処理方法では、各画素に対して、着色領域の「左側端点」または「右側端点」または「端点でない」ことを表す制御情報が付加される。そして、水平走査において、各画素の制御情報が参照され、左側端点と右側端点との間に位置する画素は指定された色彩で着色される。これにより、塗りつぶし処理の高速化が図られる。【０００５】
他の関連する技術として、特許文献２には、塗りつぶし処理の高速化に係わる方法が記載されている。また、特許文献３には、アンチエイリアス処理が行われた輪郭線を高速に描画する技術が記載されている。さらに、特許文献４〜７にも関連する技術が記載されている。
【特許文献１】特許２６８１３６７号公報
【特許文献２】特許３２４９０９６号公報
【特許文献３】特開２００２−５６３９５号公報
【特許文献４】特開２００６−２０９６５４号公報
【特許文献５】特開平５−３５８７９号公報
【特許文献６】特開昭６０−１６３１６４号公報
【特許文献７】特開平６−４６７９号公報
【０００６】
しかしながら、従来技術による多色ベクトル画像の描画においては、色ごとにプレーンが必要であり、且つ、プレーンごとにスキャンコンバージョン処理が必要であった。すなわち、多色ベクトル画像を処理するための処理量は多かった。このため、携帯電話端末のようなリソースの乏しい情報処理装置においては、多色ベクトル画像を描画するために要する時間が長くなっていた。
【発明の開示】
【０００７】
本発明の課題は、多色ベクトル画像を描画するための処理量を少なくすることである。
本発明の実施形態の多色ベクトル画像処理装置は、輪郭線を定義する線情報、および前記輪郭線をはさんで互いに隣接する２つの領域についてそれぞれ第１の色および第２の色を定義する領域色情報を含むベクトル画像データを解析するデータ解析部と、前記線情報に基づいて、輪郭線が通過する画素である境界画素を検出する検出部と、各境界画素が輪郭線によって縦断されているか否かをそれぞれ判定する縦断判定部と、各スキャンラインにおいて画素を順番に着色する着色部、を備える。前記着色部は、輪郭線が縦断していない境界画素については、前記領域色情報に基づいて色を計算してその計算した色で着色し、輪郭線が縦断している境界画素については、前記領域色情報に基づいて色を計算してその計算した色で着色すると共に、基準塗り色の設定を前記第１の色から前記第２の色に切り替え、境界画素でない画素については、設定されている基準塗り色で着色する。
【０００８】
上記多色ベクトル画像処理装置によれば、１つのプレーンで多色ベクトル画像を描画することができる。よって、多色ベクトル画像を処理するための処理量は少なくなる。
【図面の簡単な説明】
【０００９】
【図１】実施形態の多色ベクトル画像処理装置の構成を示す図である。
【図２】多色ベクトル画像処理装置を備える情報処理装置の実施例である。
【図３】描画される画像の実施例である。
【図４】図３に示す画像を定義するベクトル画像データの実施例である。
【図５Ａ】画素情報を生成する処理のフローチャート（その１）である。
【図５Ｂ】画素情報を生成する処理のフローチャート（その２）である。
【図６】出力図形のサイズを変更する際の座標変換を説明する図である。
【図７】面積比の計算について説明する図である。
【図８】画像処理部により得られる情報の例である。
【図９】実施形態の塗りつぶし処理を示すフローチャートである。
【図１０】塗りつぶし処理の実施例である。
【図１１】多色ベクトル画像を処理する他の方法を説明する図である。
【図１２】画素が輪郭線により３つの色領域に分割される場合の実施例である。
【図１３】多色ベクトル画像処理装置のハードウェア構成を示す図である。
【発明を実施するための最良の形態】
【００１０】
図１は、実施形態の多色ベクトル画像処理装置の構成を示す図である。図１において、画像データ格納メモリ１は、ベクトル画像データを格納する。なお、画像データ格納メモリ１は、特に限定されるものではないが、例えば半導体メモリにより実現される。ＣＰＵ２は、画像データ格納メモリ１に格納されているベクトル画像データから描画データを生成する。処理用プレーン３は、ＣＰＵ２により使用される作業領域であり、例えば半導体メモリにより実現される。ＲＧＢ描画バッファ４は、ＣＰＵ２により生成される描画データを一時的に格納する。出力装置５は、ＲＧＢ描画バッファ４に格納されている描画データに従って画像を出力する。なお、出力装置５は、例えば、表示装置またはプリンタである。【００１１】
ＣＰＵ２は、画像処理プログラムを読み込んで実行することにより、画像データ読み込み部１１、データ解析部１２、設定読み込み部１３、画像処理部１４、着色部１９を提供する。画像データ読み込み部１１は、画像データ格納メモリ１に格納されているベクトル画像データを読み込む。データ解析部１２は、ベクトル画像データから線情報および領域色情報を抽出して解析する。線情報は、輪郭線を描くための座標情報を含む。また、領域色情報は、輪郭線により囲まれた領域あるいは輪郭線により分離された領域の色を表す情報を含む。設定読み込み部１３は、出力画像のサイズおよび位置（座標）などを指定する情報を読み込んで画像処理部１４に渡す。【００１２】
画像処理部１４は、輪郭線通過座標計算部１５、面積比計算部１６、縦断判定部１７、情報付加部１８を含み、画素情報を生成して処理用プレーン３に書き込む。輪郭線通過座標計算部１５は、輪郭線を描くための座標情報について、出力画像のサイズおよび位置に基づいて座標変換を行い、描画される画像の輪郭線を計算する。そして、輪郭線通過座標計算部１５は、その輪郭線が通過する画素を検出する。なお、輪郭線が通過する画素のことを「境界画素」と呼ぶことがある。面積比計算部１６は、各境界画について、１つの画素領域が輪郭線によって分割されることで得られる複数の領域の面積比を計算する。例えば、赤色領域と黄色領域とを分離する輪郭線により、１つのピクセルが７５：２５の面積比で分割されるときは、面積比情報として「赤：７５パーセント、黄：２５パーセント」が得られる。縦断判定部１７は、各境界画素がそれぞれ輪郭線によって縦断されているか否かを判定する。【００１３】
情報付加部１８は、輪郭線通過座標計算部１５、面積比計算部１６、縦断判定部１７により得られる画素情報を処理用プレーン３に書き込む。ここで、処理用プレーン３は、各画素について状態を表す情報を保持することができる。具体的には、情報付加部１８は、各画素について、輪郭線が通過するか否かを表す情報を付加する。また、情報付加部１８は、各境界画素について、輪郭線がピクセル領域を縦断するか否かを表す縦断フラグを付加する。さらに、情報付加部１８は、各境界画素について、面積比計算部１６により得られる面積比情報を付加する。【００１４】
着色部１９は、各画素について保存されている画素情報を処理用プレーン３から読み出し、スキャンコンバージョンを行うことにより、ライン毎に各画素の色を決定する。これにより描画データが生成される。描画データは、ＲＧＢ描画バッファ４に書き込まれる。【００１５】
なお、実施形態の多色ベクトル画像処理装置は、画像データ格納メモリ１、処理用プレーン３、ＲＧＢ描画バッファ４、出力装置５を含んでもよい。また、実施形態の多色ベクトル画像処理装置は、画像データ格納メモリ１、処理用プレーン３、ＲＧＢ描画バッファ４、出力装置５の一部または全部を備えなくてもよい。【００１６】
図２は、多色ベクトル画像処理装置を備える情報処理装置の実施例である。図２に示す例では、多色ベクトル画像処理装置は、携帯電話端末装置２０において使用される。携帯電話端末装置２０は、記憶部２１、画像処理部２２、画像出力部２３、表示デバイス２４を備える。記憶部２１は、画像データ格納メモリ１に対応し、ベクトル画像データを格納する。画像処理部２２は、ＣＰＵ２および処理プレーン３に対応し、記憶部２１に格納されているベクトル画像データから描画データを生成する。画像出力部２３は、ＲＧＢ描画バッファ４に対応し、描画データを表示デバイス２４に出力する。表示デバイス２４は、出力装置５に対応し、描画データに従って画像を表示する。なお、実施形態の多色ベクトル画像処理装置は、任意の情報処理装置（例えば、パーソナルコンピュータ等）において使用することができる。【００１７】
図３は、描画される画像の実施例である。図３に示す例では、２５６×２５６画素表示領域において、３つの三角形が描かれている。第１の三角形は、３つの頂点「頂点ＩＤ＝０、１、２」を有し、赤色で塗りつぶされている。第２の三角形は、３つの頂点「頂点ＩＤ＝１、２、３」を有し、黄色で塗りつぶされている。第３の三角形は、３つの頂点「頂点ＩＤ＝０、１、３」を有し、緑色で塗りつぶされている。【００１８】
図４は、図３に示す画像を定義するベクトル画像データの実施例である。ベクトル画像データは、この実施例では、頂点座標情報（POINT）、領域色情報（AREA）、および線情報（LINE）を含んでいる。【００１９】
頂点座標情報は、各頂点の座標を表している。例えば、「ＩＤ＝０」により識別される頂点０の座標が「２０、２１０」であることを表している。また、「ＩＤ＝１」により識別される頂点１の座標が「１００、１６０」であることを表している。【００２０】
領域色情報は、輪郭線で囲まれた各領域の色を表している。例えば、「ＩＤ＝１」により識別される領域１の色が「Ｒ：Ｇ：Ｂ＝２５５、０、０」であることを表している。また、「ＩＤ＝２」により識別される領域２の色が「Ｒ：Ｇ：Ｂ＝２５５、２５５、０」であることを表している。なお、輪郭線により囲まれていない領域０は、「背景」を表す情報が与えられている。【００２１】
線情報は、各輪郭線に係わる情報「線の種類」「線の開始点」「線の終了点」「線の左側の領域」「線の右側の領域」を表している。例えば「ＩＤ＝０」により識別される線０に対しては、「STRAIGHT、０、２、０、１」が与えられている。この情報は、「線０は、直線（STRAIGHT）であり、開始点が頂点０であり、終了点が頂点２である」を表している。「線の左側の領域＝０」は、線０の開始点（頂点０）から終了点（頂点２）に向かう方向において、線０の左側の領域が「領域０（背景）」であることを表している。同様に、「線の左側の領域＝１」は、線０の開始点から終了点に向かう方向において、その線０の右側の領域が「領域１（赤）」であることを表している。【００２２】
上記ベクトル画像データは、図１に示す画像データ格納メモリ１に格納されている。なお、ベクトル画像データを作成する方法は、特に限定されるものではない。
図５Ａおよび図５Ｂは、ベクトル画像データから画素情報を生成する処理を示すフローチャートである。このフローチャートの処理は、ベクトル画像データにより定義されている各線に対して、ＣＰＵ２により実行される。なお、画像データ格納メモリ１には、一般に、複数セットのベクトル画像データが格納されている。そして、複数セットのベクトル画像データの中から、描画データを生成しようとするベクトル画像データが特定されてＣＰＵ２に読み込まれるものとする。以下では、必要に応じて、図３に示す線０を例にして説明をする。【００２３】
設定読み込み部１３は、このフローチャートの処理が開始される前に、出力画像のサイズおよび位置などを指定する情報を読み込んで画像処理部１４に渡す。この例では、出力画像の「サイズ＝Ｈ」が読み込まれるものとする。「Ｈ」は、Ｈ×Ｈ画素画像に対応し、ベクトル画像データにより定義される原画像を「Ｈ／２５６」倍に拡大または縮小することを意味する。【００２４】
ステップＳ１において、データ解析部１２は、線の種類を検出する。この例では、線０の種類は「直線」である。ステップＳ２〜Ｓ３において、データ解析部１２は、開始点の頂点ＩＤおよび座標を検出する。この例では、「ＩＤ＝０」及び「Ｘs＝２０、Ys＝２１０」が得られる。同様に、ステップＳ４〜Ｓ５において、データ解析部１２は、終了点の頂点ＩＤおよび座標を検出する。この例では、「ＩＤ＝２」及び「Ｘe＝１００、Ye＝２０」が得られる。【００２５】
ステップＳ６〜Ｓ７において、輪郭線通過座標計算部１５は、サイズ情報Ｈに応じて、開始点座標および終了点座標を変換する。変換後の開始点座標「Ｘhs、Ｙhs」および終了点座標「Ｘhe、Ｙhe」は、下式により得られる。
Ｘhs＝（Ｈ／２５６）×Ｘs
Ｙhs＝（Ｈ／２５６）×Ｙs
Ｘhe＝（Ｈ／２５６）×Ｘe
Ｙhe＝（Ｈ／２５６）×Ｙe
ステップＳ８〜Ｓ９において、輪郭線通過座標計算部１５は、サブピクセル座標上における開始点座標および終了点座標を計算する。サブピクセル座標上の開始点座標「Ｘgs、Ｙgs」および終了点座標「Ｘge、Ｙge」は、下式により得られる。
Ｘgs＝Ｈ×Ｘs
Ｙgs＝Ｈ×Ｙs
Ｘge＝Ｈ×Ｘe
Ｙge＝Ｈ×Ｙe
図６は、ステップＳ６〜Ｓ９による演算を説明する図である。この例では、「Ｈ＝１００」である。また、線０の開始点および終了点の座標は、図６（ａ）に示すように、それぞれ「２０、２１０」および「１００、１０」である。この場合、ステップＳ６〜Ｓ７により、図６（ｂ）に示すように、１００×１００画素座標系における開始点および終了点の座標が得られる。さらに、ステップＳ８〜Ｓ９により、図６（ｃ）に示すように、サブピクセル座標系における開始点および終了点の座標が得られる。なお、サブピクセル座標系では、１つのピクセルが２５６×２５６サブピクセルで表される。【００２６】
なお、サブピクセル座標系は、図６に示す例では２５６×２５６であるが、これに限定されるものではなく、例えば、１０２４×１０２４等であってもよい。
ステップＳ１０において、輪郭線通過座標計算部１５は、開始点と終了点との間の輪郭線が通過する画素（すなわち、境界画素）を検出する。境界画素は、例えば、サブピクセル座標系を利用して検出される。【００２７】
ステップＳ１１において、画像処理部１４は、開始点と終了点との間の輪郭線を分割する。このとき、１つのピクセル内に２以上の分割点が存在しないように輪郭線が分割される。この処理は、例えば、線を２分の１に分割する処理を再帰的に行うなどの公知の幾何学的手法により実現される。なお、この実施例では、輪郭線が通過する各画素に分割点が１つずつ存在するように、輪郭線が分割されるものとする。以下の説明では、ｎ個の分割点が得られるものとする。【００２８】
ステップＳ１２において、画像処理部１４は、サブピクセル座標系における各分割点の座標（Ｘgd0、Ｙgd0）〜（Ｘgdn、Ｙgdn）を取得する。ステップＳ１３において、画像処理部１４は、ｎ個の分割点を識別するための変数ｉに初期値ゼロを与える。【００２９】
ステップＳ１４〜Ｓ２３においては、分割点ｉが位置する画素に対して、面積比が計算されると共に、縦断フラグが設定される。すなわち、ステップＳ１４において、画像処理部１４は、分割点座標（Ｘgdi、Ｙgdi）が位置する画素の座標（Ｘhi、Ｙhi）を計算する。この画素の座標は、下式により得られる。
Ｘhi＝Ｘgdi／２５６
Ｙhi＝Ｙgdi／２５６
ステップＳ１５〜Ｓ１７において、面積比計算部１６は、画素（Ｘhi、Ｙhi）が輪郭線によりどのような割合で分割されるのかを計算する。例えば、１つの画素領域が輪郭線により２つの領域に分割されたときは、それら２つの領域の面積の比率「Ｒil：Ｒir」が計算される。【００３０】
図７は、面積比の計算について説明する図である。ここでは、１つの画素が２５６×２５６サブピクセルで表されている。また、輪郭線は、画素の上側の辺および左側の辺を横切っている。ここで、各画素は、特に限定されるものではないが、一般に正方形である。この場合、１つの画素の面積は、サブピクセル座標系を利用して、下記のように定義される。
画素領域の面積＝２５６×２５６＝６５５３６
そうすると、輪郭線の左手側の領域の面積は、下記の計算により得られる。
左手側領域の面積＝（１２５×１７０）／２＝１０６２５
また、輪郭線の右手側の領域の面積は、下記の計算により得られる。
右手側領域の面積＝６５５３６−１０６２５＝５４９１１
したがって、１つの画素の面積を基準とすると、面積比「１６％：８４％」が得られる。【００３１】
ステップＳ１８〜Ｓ２２において、縦断判定部１７は、各境界画素について、輪郭線が画素を縦断するか否かを判定する。すなわち、縦断判定部１７は、ステップＳ１８において、各境界画素について、隣接する画素どうしの間の位置関係を調べる。具体的には、画素ｉのＹ座標（Ｙgdi）と画素ｉ−１のＹ座標（Ｙgdi-1）とが比較され、また、画素ｉのＹ座標（Ｙgdi）と画素ｉ＋１のＹ座標（Ｙgdi+1）とが比較される。なお、画素ｉ、画素ｉ−１、画素ｉ＋１は、それぞれ分割点ｉ、分割点ｉ−１、分割点ｉ＋１が位置する画素を表す。【００３２】
ステップＳ１９において、「Ｙgdi-1＜Ｙgdi」かつ「Ｙgdi+1＜Ｙgdi」であれば、画素ｉが輪郭線によって縦断されていないと判定される。ステップＳ１９の条件を満たさないときは、ステップＳ２０が実行される。ステップＳ２０では、「Ｙgdi-1＜Ｙgdi」または「Ｙgdi+1＜Ｙgdi」であれば、画素ｉが輪郭線によって縦断されていると判定される。ステップＳ１９およびＳ２０の双方の条件を満たさない場合は、画素ｉが輪郭線によって縦断されていないと判定される。なお、画素ｉが輪郭線によって縦断されていると判定されたときは、ステップＳ２１において、その画素に対して「縦断フラグ＝１」が与えられる。一方、画素ｉが輪郭線によって縦断されていないと判定されたときは、ステップＳ２２において、その画素に対して「縦断フラグ＝０」が与えられる。【００３３】
ステップＳ２３において、情報付加部１８は、画素毎に、輪郭線通過座標計算部１５、面積比計算部１６、縦断判定部１７により得られる画素情報を処理用プレーン３に書き込む。すなわち、情報付加部１８は、処理用プレーン３内の画素（Ｘhi、Ｙhi）のための記憶領域に、「縦断フラグ」「左側領域の面積比および色」「右側領域の面積比および色」を書き込む。なお、面積比は、ステップＳ１６〜Ｓ１７において計算されている。また、左側領域および右側領域の色は、ベクトル画像データとして与えられているので、画素を通過する輪郭線を識別することにより決定される。【００３４】
ステップＳ２４において、画像処理部１４は、すべての分割点についてステップＳ１４〜Ｓ２３の処理が終了しているかをチェックする。すなわち、変数ｉがｎに達しているか否かがチェックされる。そして、「ｉ＜ｎ」であれば、画像処理部１４は、ステップＳ２５において変数ｉをインクリメントしてステップＳ１４に戻る。これにより、すべての分割点についてステップＳ１４〜Ｓ２３の処理が実行される。【００３５】
図５Ａ〜図５Ｂのフローチャートの処理は、各輪郭線に対して実行される。図３に示す実施例では、上記処理が輪郭線０〜５に対してそれぞれ実行される。
図８は、画像処理部１４により得られる情報の例である。ここでは、輪郭線０が通過する４個の画素Ａ〜Ｄ、輪郭線１が通過する３個の画素Ｅ〜Ｇ、輪郭線２が通過する３個の画素Ｈ〜Ｊのみが示されている。なお、画素Ａ〜Ｊには、それぞれ分割点Ａ〜Ｊが設けられている。【００３６】
縦断フラグは、上述したように、隣接する画素どうしの間の位置関係によって決定される。例えば、画素Ｂの縦断フラグは、画素Ａ、Ｂ、ＣのＹ座標に基づいて決定される。ここで、画素Ａは、画素Ｂの下に位置している。すなわち、画素ＡのＹ座標は、画素ＢのＹ座標よりも大きい。また、画素Ｃは、画素Ｂの右に位置している。すなわち、画素ＣのＹ座標は、画素ＢのＹ座標と同じである。したがって、画素Ｂは、図５Ｂのフローチャートにおいて「ステップＳ１９：Ｎｏ」「ステップＳ２０：Ｎｏ」と判定され、「縦断フラグ＝０」が与えられる。【００３７】
同様に、画素Ｃの縦断フラグは、画素Ｂ、Ｃ、ＤのＹ座標に基づいて決定される。ここで、画素Ｂは、画素Ｃの左に位置している。すなわち、画素ＢのＹ座標は、画素ＣのＹ座標と同じである。また、画素Ｄは、画素Ｃの上に位置している。すなわち、画素ＤのＹ座標は、画素ＣのＹ座標よりも小さい。したがって、画素Ｃは、図５Ｂのフローチャートにおいて「ステップＳ１９：Ｎｏ」「ステップＳ２０：Ｙｅｓ」と判定され、「縦断フラグ＝１」が与えられる。【００３８】
また、輪郭線が通過する各ピクセルについて、領域色情報が与えられる。例えば、画素Ａは、輪郭線０により２つの領域の分割されており、「左側領域：４５％、背景」および「右側領域：５５％、赤」が与えられている。【００３９】
なお、上述の実施例では、開始点と終了点との間の輪郭線を分割する分割点を利用して各境界画素に対して縦断フラグが決定されるが、他の方法で縦断フラグを決定するようにしてもよい。例えば、図８に示す例では、１番目のスキャンラインにおいて、線０は、１つの画素（画素Ｄ）のみを通過している。この場合、画素Ｄは、線０により縦断されていると判定される。一方、２番目のスキャンラインにおいては、線０は、互いに連続する２つの画素（画素Ｂ、Ｃ）を通過している。この場合、画素Ｂ、Ｃのうちの一方が、線０により縦断されていると判定され、画素Ｂ、Ｃのうちの他方が、線０により縦断されていないと判定される。このとき、画素Ｂ、Ｃのうちのいずれが「縦断されている」と判定するのかは、特に限定されるものではないが、例えば、各画素のＸ座標に応じて決めるようにしてもよいし、各画素の色領域の面積比を利用して決めるようにしてもよい。また、あるスキャンラインにおいて、線０が３つ以上の連続する画素を通過しているときは、それらの画素の中の任意の１つが線０により縦断されていると判定するようにしてもよい。【００４０】
図９は、実施形態の塗りつぶし処理を示すフローチャートである。この処理は、処理用プレーン３に格納されている情報に従って、着色部１９によりライン毎に実行される。なお、着色部１９は、レジスタまたはメモリ領域を利用して「基準塗り色」を管理する。【００４１】
ステップＳ２１において、着色部１９は、スキャンライン上の左端画素を、対象画素に設定する。ステップＳ２２において、着色部１９は、基準塗り色として、背景色を設定する。なお、背景色は、例えば、予め与えられているものとする。【００４２】
ステップＳ２３において、着色部１９は、輪郭線が対象画素を通過しているか否かをチェックする。輪郭線が対象画素を通過しているときは、着色部１９は、ステップＳ２４において、対象画素の縦断フラグをチェックする。縦断フラグが１であれば、ステップＳ２５が実行される。縦断フラグが０であれば、ステップＳ２５はスキップされる。【００４３】
ステップＳ２５において、着色部１９は、対象画素の領域色情報を参照し、基準塗り色を切り替える。例えば、図８に示す画素Ａが対象画素であるものとする。この場合、現在の基準塗り色は「背景色」である。また、画素Ａに対しては、「左側領域：背景」および「右側領域：赤」が与えられている。よって、基準塗り色が「背景色」から「赤」に切り替えられる。【００４４】
ステップＳ２６において、着色部１９は、対象画素の領域色情報を参照し、その対象画素の色を決定する。例えば、対象画素に対して「左側領域：４０％、赤」および「右側領域：６０％、緑」が与えられているものとする。また、ＲＧＢ表現において「赤」は「２５５、０、０」で表され、「緑」は「０、２５５、０」で表されるものとする。この場合、この画素の色は「２５５×０．４０、２５５×０．６０、０」で表される。すなわち、着色部１９は、対象画素を「１５３、１０２、０」で塗る。【００４５】
輪郭線が対象画素を通過していないときは（ステップＳ２３：Ｎｏ）、ステップＳ２７が実行される。ステップＳ２７において、着色部１９は、対象画素を基準塗り色で塗りつぶす。【００４６】
ステップＳ２８において、着色部１９は、対象画素を１画素分だけ右側にシフトさせる。ステップＳ２９において、着色部１９は、新たな対象画素がスキャンラインの右端画素か否かをチェックする。そして、新たな対象画素がスキャンラインの右端画素でなければ、着色部１９は、その新たな対象画素に対してステップＳ２３〜Ｓ２７の処理を実行する。【００４７】
このように、着色部１９は、処理用プレーン３に格納されている画素情報に従って、スキャンライン毎に各画素の色を順番に決定する。そして、すべてのラインについて上記処理を実行することにより、１フレーム分の描画データが生成される。【００４８】
着色部１９により生成される各画素のＲＧＢ情報は、ＲＧＢ描画バッファ４に書き込まれる。ＲＧＢ描画バッファ４は、与えられたＲＧＢ情報に従って、出力装置５に画像を描画する。【００４９】
図１０は、塗りつぶし処理の実施例である。ここでは、３本のスキャンラインＡ〜Ｃにおいて、画素Ａ１〜Ａ８、Ｂ１〜Ｂ８、Ｃ１〜Ｃ８が塗られるものとする。なお、これらの画素は、図８に示す実施例に相当する。すなわち、輪郭線０が画素Ｃ２、Ｂ２、Ｂ３、Ａ３を通過し、輪郭線１が画素Ｃ５、Ｂ５、Ａ５を通過し、輪郭線２が画素Ａ６、Ｂ７、Ｃ７を通過している。また、画素Ａ３、Ａ５、Ａ６、Ｂ３、Ｂ５、Ｂ７、Ｃ２、Ｃ５、Ｃ７の縦断フラグが「１」であり、画素Ｂ２の縦断フラグが「０」である
スキャンラインＡにおいて、画素Ａ１、Ａ２は、基準塗り色（背景色）で塗られる。画素Ａ３には、「縦断フラグ＝１」「左側領域：４０％、背景」「右側領域：６０％、赤」が与えられている。この場合、画素Ａ３は「赤６０％」で塗られる。ここで、ＲＧＢ表現を利用して、背景色および赤色がそれぞれ「０、０、０」「２５５、０、０」で表されるものとする。そうすると、画素Ａ３は「１５３、０、０」で塗られることになる。また、画素Ａ３の縦断フラグは「１」なので、基準塗り色が「背景」から「赤」に切り替えられる。【００５０】
画素Ａ４は、輪郭線が通過していない。この場合、この画素は基準塗り色で塗られる。ここで、基準塗り色は、画素Ａ３において「背景」から「赤」に切り替えられている。したがって、画素Ａ４は「赤」で塗られる。画素Ａ５には、「縦断フラグ＝１」「左側領域：７％、赤」「右側領域：９３％、黄」が与えられている。この場合、画素Ａ５は「赤７％および黄９３％の混合色」で塗られる。また、画素Ａ５において、基準塗り色が「赤」から「黄」に切り替えられる。同様に、画素Ａ６には、「縦断フラグ＝１」「左側領域：８０％、黄」「右側領域：２０％、背景」が与えられている。この場合、画素Ａ６は「黄８０％」で塗られる。また、画素Ａ５において、基準塗り色が「黄」から「背景」に切り替えられる。【００５１】
画素Ａ７、Ａ８は、輪郭線が通過していない。この場合、これらの画素は、基準塗り色で塗られる。ここで、基準塗り色は、画素Ａ５において「赤」から「黄」に切り替えられ、さらに画素Ａ６において「黄」から「背景」に切り替えられている。したがって、画素Ａ７、Ａ８は、「背景」で塗られる。【００５２】
このように、輪郭線が通過する画素は、その画素内で互いに隣接する２つの色領域の面積比に応じて色が決定される。また、輪郭線が通過する画素の中で「縦断フラグ＝１」が与えられた画素においては、基準塗り色が切り替えられる。一方、輪郭線が通過しない画素は、基準塗り色で塗られる。【００５３】
スキャンラインＢ、Ｃの塗りつぶし処理は、基本的には、スキャンラインＡと同じである。ただし、スキャンラインＢにおいて、画素Ｂ２には「縦断フラグ＝０」が与えられている。したがって、画素Ｂ１〜Ｂ４は、以下のようにして処理される。【００５４】
画素Ｂ１は、背景色で塗られる。画素Ｂ２には、「縦断フラグ＝０」「左側領域：８０％、背景」「右側領域：２０％、赤」が与えられている。この場合、画素Ｂ２は「赤２０％」で塗られる。ただし、画素Ｂ２の縦断フラグは「０」なので、基準塗り色は「背景」から変わることはない。【００５５】
画素Ｂ３には、「縦断フラグ＝１」「左側領域：５％、背景」「右側領域：９５％、赤」が与えられている。この場合、画素Ａ３は「赤９５％」で塗られる。また、画素Ｂ３の縦断フラグは「１」なので、基準塗り色が「背景」から「赤」に切り替えられる。画素Ｂ４は、輪郭線が通過していない。この場合、この画素は基準塗り色で塗られる。すなわち、画素Ｂ４は「赤」で塗られる。【００５６】
図１１は、多色ベクトル画像を処理する他の方法を説明する図である。ここでは、図８または図１０と同じ画像が描画されるものとする。
図１１に示す方法では、輪郭線により区切られた複数の色領域が存在する場合、各色領域はそれぞれ異なるプレーンを用いて描画される。すなわち、図１１（ａ）に示すプレーンは、赤色領域を描画するために作成される。また、図１１（ｂ）に示すプレーンは、黄色領域を描画するために作成される。そして、全体画像を表示装置に表示する際には、プレーン間で対応するピクセルの色情報がそれぞれ合成される。【００５７】
これに対して、実施形態の画像処理方法においては、輪郭線により区切られた複数の色領域が存在する場合、各色領域をそれぞれ異なるプレーンを用いて描画する必要はなく、１つのプレーンで複数の色領域を描画できる。したがって、実施形態の画像処理方法によれば、図１１に示す方法と比較して、多色ベクトル画像を描画するための処理量が少なくなる。したがって、例えば、処理能力の低い情報処理装置であっても、実施形態の方法を使用すれば、画像の描画時間が短くなる。【００５８】
また、実施形態の画像処理方法においては、各ラインをスキャンする手順の中で、塗り色を切り替える処理およびアンチエイリアス処理を行うことができる。したがって、多色ベクトル画像を描画するための演算量が少なくなる。【００５９】
さらに、実施形態の画像処理方法においては、所望のサイズの出力画像を得るためにベクトル画像を変換する場合であっても、上述の効果が得られる。
なお、上述の実施例では、輪郭線が画素を通過する場合、その画素が２つの色領域に分割されるものとして説明を行ったが、１つの画素が３以上の色領域に分割される場合であっても実施形態の画像処理方法を使用することができる。以下、図１２を参照しながら、１つの画素が輪郭線によって３つの色領域に分割された場合の画像処理を説明する。【００６０】
図１２に示す例では、輪郭線１および輪郭線２が画素ｎを通過している。これらの輪郭線により、画素ｎは３つの色領域に分割されている。色領域１〜３の面積比は、「１５％、５５％、３０％」である。輪郭線１の左側領域は「赤（２５５、０、０）」であり、輪郭線２の右側領域（輪郭線２の左側領域）は「黄（２５５、２５５、０）」であり、輪郭線２の右側領域は「緑（０、２５５、０）」である。【００６１】
この場合、画素ｎの色は、以下のように決定される。
Ｒ＝２５５×０．１５＋２５５×０．５５＋０×０．３０＝１７８
Ｇ＝０×０．１５＋２５５×０．５５＋２５５×０．３０＝２１７
Ｂ＝０×０．１５＋０×０．５５＋０×０．３０＝０
画素ｎの縦断フラグは、輪郭線１、２それぞれについて設定される。このとき、たとえば、輪郭線１の縦断フラグが「０」であり、輪郭線２の縦断フラグが「１」であれば、基準塗り色は「赤」から「緑」に切り替えられる。また、輪郭線１の縦断フラグが「１」であり、輪郭線２の縦断フラグが「０」であれば、基準塗り色は「赤」から「黄」に切り替えられる。さらに、輪郭線１、２の縦断フラグがいずれも「１」であれば、基準塗り色は「赤」から「緑」に切り替えられる。なお、輪郭線１、２の縦断フラグがいずれも「０」であれば、基準塗り色は「赤」のままである。【００６２】
図１３は、実施形態の多色ベクトル画像処理装置のハードウェア構成を示す図である。図１３において、ＣＰＵ１０１は、図１に示すＣＰＵ２に相当し、メモリ１０３を利用して実施形態の画像処理プログラムを実行する。画像処理プログラムは、例えば、上述の図５Ａ、図５Ｂ、図９に示すフローチャートの処理を記述している。また、画像処理プログラムを実行することにより、画像データ読み込み部１１、データ解析部１２、設定読み込み部１３、画像処理部１４（輪郭線通過座標計算部１５、面積比計算部１６、縦断判定部１７、情報付加部１８）、着色部１９が実現される。【００６３】
記憶装置１０２は、例えば半導体メモリまたはハードディスクであり、画像処理プログラムを格納する。なお、記憶装置１０２は、外部記録装置であってもよい。メモリ１０３は、例えば半導体メモリであり、ＲＡＭ領域およびＲＯＭ領域を含んで構成される。【００６４】
読み取り装置１０４は、ＣＰＵ１０１の指示に従って可搬型記録媒体１０５にアクセスする。可搬型記録媒体１０５は、例えば、半導体デバイス（ＰＣカード等）、磁気的作用により情報が入出力される媒体、光学的作用により情報が入出力される媒体を含むものとする。通信インタフェース１０６は、ＣＰＵ１０１の指示に従って、ネットワークを介してデータを送受信する。入出力装置１０７は、例えば、表示デバイスに相当する。【００６５】
実施形態に係わる画像処理プログラムは、例えば、下記の形態で提供される。
（１）記憶装置１０２に予めインストールされている。
（２）可搬型記録媒体１０５により提供される。
（３）プログラムサーバ１１０からダウンロードする。
【図１】
2010095178.tif 000003
【図２】
2010095178.tif 000004
【図３】
2010095178.tif 000005
【図４】
2010095178.tif 000006
【図５Ａ】
2010095178.tif 000007
【図５Ｂ】
2010095178.tif 000008
【図６】
2010095178.tif 000009
【図７】
2010095178.tif 000010
【図８】
2010095178.tif 000011
【図９】
2010095178.tif 000012
【図１０】
2010095178.tif 000013
【図１１】
2010095178.tif 000014
【図１２】
2010095178.tif 000015
【図１３】
2010095178.tif 000016
【手続補正書】
【提出日】平成23年3月30日(2011.3.30)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
輪郭線を定義する線情報、および前記輪郭線をはさんで互いに隣接する２つの領域についてそれぞれ第１の色および第２の色を定義する領域色情報を含むベクトル画像データを解析するデータ解析部と、
前記線情報に基づいて、輪郭線が通過する画素である境界画素を検出する検出部と、
各境界画素が輪郭線によって縦断されているか否かをそれぞれ判定する縦断判定部と、
各スキャンラインにおいて画素を順番に着色するときに、
輪郭線が縦断していない境界画素については、前記領域色情報に基づいて色を計算してその計算した色で着色し、
輪郭線が縦断している境界画素については、前記領域色情報に基づいて色を計算してその計算した色で着色すると共に、基準塗り色の設定を前記第１の色から前記第２の色に切り替え、
境界画素でない画素については、設定されている基準塗り色で着色する着色部と、
を備えることを特徴とする多色ベクトル画像処理装置。
【請求項２】
請求項１に記載の多色ベクトル画像処理装置であって、
各画素について、境界画素であるか否かを表す情報を格納すると共に、各境界画素について、輪郭線によって縦断されているか否かを表す情報、画素領域に属する複数の色領域を識別する情報、前記複数の色領域の面積比を表す情報を格納する格納部をさらに備え、
前記着色部は、前記格納部に格納されている情報に従って各ラインの画素を着色する
ことを特徴とする多色ベクトル画像処理装置。
【請求項３】
請求項１に記載の多色ベクトル画像処理装置であって、
同一の輪郭線上に順番に存在する第１の境界画素、第２の境界画素、第３の境界画素の垂直方向の座標がＹ１、Ｙ２、Ｙ３であるときに、前記縦断判定部は、
（１）Ｙ２＜Ｙ１、且つ、Ｙ２＜Ｙ３ではなく
（２）Ｙ２＜Ｙ１、または、Ｙ２＜Ｙ３である
ときに、前記第２の境界画素が前記輪郭線によって縦断されていると判定する
ことを特徴とする多色ベクトル画像処理装置。
【請求項４】
輪郭線を定義する線情報、および前記輪郭線をはさんで互いに隣接する２つの領域についてそれぞれ第１の色および第２の色を定義する領域色情報を含むベクトル画像データを解析し、
前記線情報に基づいて、輪郭線が通過する画素である境界画素を検出し、
各境界画素が輪郭線によって縦断されているか否かをそれぞれ判定し、
各スキャンラインにおいて画素を順番に着色するときに、
輪郭線が縦断していない境界画素については、前記領域色情報に基づいて色を計算してその計算した色で着色し、
輪郭線が縦断している境界画素については、前記領域色情報に基づいて色を計算してその計算した色で着色すると共に、基準塗り色の設定を前記第１の色から前記第２の色に切り替え、
境界画素でない画素については、設定されている基準塗り色で着色する、
ことを特徴とする多色ベクトル画像処理方法。
【請求項５】
コンピュータに、
輪郭線を定義する線情報、および前記輪郭線をはさんで互いに隣接する２つの領域についてそれぞれ第１の色および第２の色を定義する領域色情報を含むベクトル画像データを解析し、
前記線情報に基づいて、輪郭線が通過する画素である境界画素を検出し、
各境界画素が輪郭線によって縦断されているか否かをそれぞれ判定し
各スキャンラインにおいて画素を順番に着色するときに、
輪郭線が縦断していない境界画素については、前記領域色情報に基づいて色を計算してその計算した色で着色し、
輪郭線が縦断している境界画素については、前記領域色情報に基づいて色を計算してその計算した色で着色すると共に、基準塗り色の設定を前記第１の色から前記第２の色に切り替え、
境界画素でない画素については、設定されている基準塗り色で着色する、
多色ベクトル画像処理を実行させることを特徴とするプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００６５
【補正方法】変更
【補正の内容】
【００６５】
実施形態に係わる画像処理プログラムは、例えば、下記の形態で提供される。
（１）記憶装置１０２に予めインストールされている。
（２）可搬型記録媒体１０５により提供される。
（３）プログラムサーバ１１０からダウンロードする。
本出願は、さらに下記の付記を開示する
（付記１）
輪郭線を定義する線情報、および前記輪郭線をはさんで互いに隣接する２つの領域についてそれぞれ第１の色および第２の色を定義する領域色情報を含むベクトル画像データを解析するデータ解析部と、
前記線情報に基づいて、輪郭線が通過する画素である境界画素を検出する検出部と、
各境界画素が輪郭線によって縦断されているか否かをそれぞれ判定する縦断判定部と、
各スキャンラインにおいて画素を順番に着色するときに、
輪郭線が縦断していない境界画素については、前記領域色情報に基づいて色を計算してその計算した色で着色し、
輪郭線が縦断している境界画素については、前記領域色情報に基づいて色を計算してその計算した色で着色すると共に、基準塗り色の設定を前記第１の色から前記第２の色に切り替え、
境界画素でない画素については、設定されている基準塗り色で着色する着色部と、
を備えることを特徴とする多色ベクトル画像処理装置。
（付記２）
付記１に記載の多色ベクトル画像処理装置であって、
前記縦断判定部は、
第１のスキャンラインにおいてある輪郭線が第１の画素のみを通過するときは、前記輪郭線が前記第１の画素を縦断すると判定し、
第２のスキャンラインにおいてある輪郭線が互いに隣接する第２および第３の画素を通過するときは、前記輪郭線が前記第２の画素を縦断すると共に、前記輪郭線が前記第３の画素を縦断しないと判定する
ことを特徴とする多色ベクトル画像処理装置。
（付記３）
付記１に記載の多色ベクトル画像処理装置であって、
前記線情報に基づいて、境界画素が輪郭線により分割されることで得られる複数の領域の面積の比を計算する面積比計算部をさらに備え、
前記着色部は、前記面積比計算部の計算結果に応じて、境界画素の色を決定する
ことを特徴とする多色ベクトル画像処理装置。
（付記４）
付記１に記載の多色ベクトル画像処理装置であって、
指定された画像サイズに応じてベクトル画像データを変換する変換部をさらに備え、
前記検出部は、前記変換部により変換されたベクトル画像データに基づいて、境界画素を検出し、
前記縦断判定部は、前記変換部により変換されたベクトル画像データに基づいて、各境界画素が輪郭線によって縦断されているか否かをそれぞれ判定する
ことを特徴とする多色ベクトル画像処理装置。
【国際調査報告】
2010095178.tif 000017
2010095178.tif 000018
2010095178.tif 000019
2010095178.tif 000020