説明

ベクトル描画装置、ベクトル描画方法及びプログラム

【課題】パフォーマンスの低下を抑えながら表示品質を向上させることを目的とする。
【解決手段】ベクトルデータ解析部203は、取得したベクトルデータを解析する。描画部202は、アンチエイリアス情報とベクトルデータ解析結果とに基づいてスキャンラインのパラメータを決定し、ベクトルデータをスキャンライン法によりラスタデータ化する。また、描画部202は、アンチエイリアス情報とベクトルデータに基づいて決定されたスキャンラインでラスタデータ化を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ベクトル描画装置等に関するものである。
【背景技術】
【0002】
輪郭線によって定義された図形を塗りつぶす方法の一つにスキャンライン処理と呼ばれるものがある。輪郭線情報を垂直方向に見ていき、輪郭線の間を水平方向に塗りつぶしていくことで図形の塗りつぶしを行う。但し、輪郭線を内部同様に塗りつぶすと例えば輪郭が斜線の場合にはギザギザに見える、といった問題が発生する。そこで輪郭線に関しては滑らかに見えるように、不透明度を変更する処理を行う。これをアンチエイリアス処理という。アンチエイリアス処理では例えばピクセルを2x2のサブピクセルに分割し、何個のサブピクセルが図形に含まれるかに応じて不透明度を設定する。サブピクセルの分割数を増やせばそれだけ図形は滑らかに表示されるが、サブピクセルの計算が増えるためパフォーマンスが低下する。また、スキャンライン処理はその性質上輪郭線に応じて必要とするメモリの量が変化する。従来、スキャンライン処理を効率化するものとしては、描画領域に応じてスキャンライン方向を変更することでスキャンライン処理のメモリ使用量を減らす方法が知られている(特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2000−298729号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記従来技術は、水平・垂直線のアンチエイリアス処理にあって不透明度の段階が減ってしまう課題があった。例えば、図4に示すように、ピクセルを2x2のサブピクセルに分割する場合にあって、斜線であればサブピクセルを何個含むかで0から4までの5段階の不透明度がつけられる。これに対し、図5に示すように、水平・垂直線の場合、0、2、4の3段階の不透明度しかつけることができない。
【0005】
これは、水平線の多い小さなアウトライン図形、例えば組み込み環境における漢字等で特に問題になる。これに対して垂直方向の分割数を増やせば水平線の表示品質を上げることができるが、パフォーマンスは低下する。
【0006】
そこで、本発明の目的は、図形に水平線が多いかどうかを判別し、水平線が多い図形に対しては垂直方向のサブピクセル分割数を増やすことにより、パフォーマンスの低下を抑えながら表示品質を向上させることを目的とする。
【課題を解決するための手段】
【0007】
本発明のベクトル描画装置は、アンチエイリアス情報を取得するアンチエイリアス情報取得手段と、取得したベクトルデータを解析するベクトルデータ解析手段と、前記アンチエイリアス情報とベクトルデータ解析結果とに基づいてスキャンラインのパラメータを決定するスキャンライン決定手段と、ベクトルデータをスキャンライン法によりラスタデータ化するスキャンライン手段と、描画が完了したことを確認する描画完了確認手段とを備え、アンチエイリアス情報とベクトルデータに基づいて決定されたスキャンラインでラスタデータ化を行うことを特徴とする。
【発明の効果】
【0008】
本発明によれば、輪郭線によって定義された図形の描画をパフォーマンスの低下を抑えながら表示品質を向上させることができる。
【図面の簡単な説明】
【0009】
【図1】本発明の実施形態に係るベクトル描画装置のハードウェア構成を示す図である。
【図2】本発明の実施形態に係るベクトル描画装置の機能構成を示す図である。
【図3】本発明の実施形態に係るベクトル描画装置の処理を示すフローチャートである。
【図4】2x2のアンチエイリアス処理の例を示す図である。
【図5】2x2のアンチエイリアス処理で水平線を扱った場合の例を示す図である。
【図6】2x4のアンチエイリアス処理で水平線を扱った場合の例を示す図である。
【発明を実施するための形態】
【0010】
以下、本発明を適用した好適な実施形態を、添付図面を参照しながら詳細に説明する。
【0011】
図1は、本発明の実施形態に係るベクトル描画装置のハードウェア構成を示す図である。図1において、CPU108は、システム制御部であり、ベクトル描画装置全体を制御する。ROM102は、CPU108の制御プログラムや各種固定データを格納する。RAM103は、SRAM、DRAM等で構成され、プログラム制御変数等を格納する。また、各種設定パラメータ、各種ワーク用バッファもRAM103に格納されるものである。外部記憶部104はハードディスク等で構成され、文書や画像等のファイルデータを格納する。入力部105は、キーボード、タッチパネル等で構成され、オペレータが各種入力操作を行うためのものである。表示部106は、LCD、LED等でオペレータに表示通知する。I/F107は、ネットワークに接続するためのインタフェースである。接続方法としてはLAN、USB等がある。図1に示す構成は、本実施形態に係るベクトル描画装置の一部を示したものであり、この他、スキャナ部、プリンタ部、モデム、スピーカ等が構成に加わる場合がある。また、ソフトウェア等で実現する場合等には、図1の各ブロックを必ずしもベクトル描画装置内に持っていなくてもよい。
【0012】
図2は、本実施形態に係るベクトル描画装置101の機能構成を示す図である。図3は、本実施形態に係るベクトル描画装置101の処理を示すフローチャートである。以下、図2及び図3を参照しながら、本実施形態に係るベクトル描画装置の処理について説明する。なお、以下に説明する実施形態は、特許請求の範囲に記載した本発明を限定するものではなく、また、本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【0013】
ステップS301において、描画部202は、描画情報記憶部205から描画に使用可能なアンチエイリアス情報を取得する。本実施形態において、アンチエイリアス情報にはアンチエイリアス処理時のサブピクセル分割情報が含まれる。水平方向に2、垂直方向に2のサブピクセルであれば2x2のアンチエイリアス、水平方向に2、垂直方向に4のサブピクセルであれば2x4のアンチエイリアスと称す。本実施形態においては、2x2及び2x4のアンチエイリアスが可能である。2x2に比べ2x4のアンチエイリアスの方がより滑らかな輪郭線を描画することができるが、パフォーマンスは低下する。また、2x2では水平線の不透明度の段階を3段階にしかとれないが、図6に示すように、2x4では不透明度の段階を5段階にできる。これが請求項におけるアンチエイリアス情報取得手段に相当する。また、描画サイズが大きくなると視認性に対するアンチエイリアスの寄与は減少する。従って、描画情報記憶部205から描画サイズを取得する描画情報取得手段と、一定サイズ以上であればスキャンライン法のパラメータを上書きするスキャンラインパラメータ上書き手段とを備え、アンチエイリアス処理をスキップしてもよい。
【0014】
ステップS302において、ベクトルデータ解析部203は、ベクトルデータ記憶部204からベクトルデータを取得する。本実施形態において、ベクトル描画装置101が対象とするのは日本語文字データであり、ベクトルデータで文字の輪郭線を定義している。日本語の文字の輪郭線は水平線や垂直線も含む。特に漢字にあっては垂直な輪郭線より水平な輪郭線のアンチエイリアス処理が視認性に影響を与えることが多い。これが請求項におけるベクトルデータ取得手段に相当する。また、ベクトルデータはバイナリの場合もテキストの場合もあり得る。例えばScalable Vector Graphics仕様に基づき記述することで、テキストでベクトルデータを記述できる。
【0015】
ステップS303において、ベクトルデータ解析部203は取得したベクトルデータを解析する。本実施形態では、描画する文字の輪郭線を解析する。ベクトルデータ解析部203はまず水平な輪郭線を取り出し、そのY座標の小数点部分が0.25及び0.75近辺にあるかどうかを調べる。このような水平線が多い場合は2x2よりも2x4のアンチエイリアスの方が水平線の視認性を向上させ、図6に示すように、2x2よりよい描画結果を得ることができる。これが請求項におけるベクトルデータ解析結果に相当する。また、より簡易的に水平な輪郭線の長さの合計値と垂直な輪郭線の長さの合計値のどちらが多いかを解析してもよい。また、文字としての情報からその文字がアルファベット、ひらがな、漢字などのどれに属するかわかるので、漢字なら水平線が多い可能性が高いという解析方法をとってもよい。これが請求項におけるベクトルデータ解析手段に相当する。
【0016】
ステップS304において、描画部202はベクトルデータ解析部203からベクトルデータ情報を取得する。ステップS305において、描画部202は、ベクトルデータ情報をもとにアンチエイリアス処理で適したサブピクセルを判断する。本実施形態では、Y座標の小数点部分が0.25及び0.75近辺である水平線が存在すれば2x4のアンチエイリアスを行う。そうでなければ、2x2のアンチエイリアスを行う。パフォーマンスの要求が厳しければある一定数以上の場合にのみ2x4のアンチエイリアスを行うようにしてもよい。これが請求項におけるスキャンライン決定手段に相当する。また、本実施形態では、文字を対象とするので同じベクトルデータを再度描画することもあり得る。そういう場合に備えてベクトルデータ毎にスキャンラインのパラメータを記憶するスキャンラインパラメータ記憶手段と、記憶したスキャンラインを読み出し処理を高速化するスキャンラインパラメータ読み出し手段とを備えてもよい。
【0017】
2x4アンチエイリアスが適している場合はステップ306に進み、ステップS306において、2x4のアンチエイリアスを用いたスキャンライン法によりラスタデータ化される。2x4アンチエイリアスが適していない場合はステップ307に進み、ステップS307において、2x2のアンチエイリアスを用いたスキャンライン法によりラスタデータ化される(ステップ307)。本実施形態では、このようにして水平線の多い文字の視認性を向上させる一方、水平線の少ない文字では視認性を下げずに高速に描画することができる。これが請求項におけるスキャンライン手段に相当する。また、2x4のサブピクセル処理であっても、垂直線が多い場合にはスキャンラインの方向を水平ではなく垂直にすることで、4x2のアンチエイリアスを実現することもできる。ベクトルデータに応じてスキャンラインの方向を切り替えるという手段があってもよい。
【0018】
ステップS308において、描画部202は、描画完了したかどうか確認する。完了した場合は終了し、そうでない場合はステップ302に進む。これが請求項における描画完了確認手段に相当する。以上によりベクトル描画を行うことができる。
【0019】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【符号の説明】
【0020】
101:ベクトル描画装置、102:ROM、103:RAM、104:外部記憶部、105:入力部、106:表示部、107:インタフェース、108:CPU、201:ディスプレイ、202:描画部、203:ベクトルデータ解析部、204:ベクトルデータ記憶部、205:描画情報記憶部

【特許請求の範囲】
【請求項1】
アンチエイリアス情報を取得するアンチエイリアス情報取得手段と、
取得したベクトルデータを解析するベクトルデータ解析手段と、
前記アンチエイリアス情報とベクトルデータ解析結果とに基づいてスキャンラインのパラメータを決定するスキャンライン決定手段と、
ベクトルデータをスキャンライン法によりラスタデータ化するスキャンライン手段と、
描画が完了したことを確認する描画完了確認手段とを備え、
アンチエイリアス情報とベクトルデータに基づいて決定されたスキャンラインでラスタデータ化を行うことを特徴とするベクトル描画装置。
【請求項2】
更に描画情報を取得する描画情報取得手段と、
前記描画情報に基づき前記スキャンライン決定手段で決定されたスキャンラインのパラメータを上書きするスキャンラインパラメータ上書き手段とを有することを特徴とする請求項1に記載のベクトル描画装置。
【請求項3】
更に前記スキャンライン決定手段の結果をベクトルデータごとに記憶するスキャンラインパラメータ記憶手段と、
記憶したデータを読み出すスキャンラインパラメータ読み出し手段とを有することを特徴とする請求項1に記載のベクトル描画装置。
【請求項4】
前記ベクトルデータがXVG(Scalable Vector Graphics)であることを特徴とする請求項1に記載のベクトル描画装置。
【請求項5】
前記スキャンライン決定手段にあってスキャンラインの方向を水平と垂直で切り替えることを特徴とする請求項1に記載のベクトル描画装置。
【請求項6】
前記スキャンライン決定手段にあってアンチエイリアスのサブピクセル分割方法を切り替えることを特徴とする請求項1に記載のベクトル描画装置。
【請求項7】
前記スキャンラインのパラメータがアンチエイリアス処理のためにピクセルをどのようにサブピクセルに分割するかを決定するものであることを特徴とする請求項1に記載のベクトル描画装置。
【請求項8】
アンチエイリアス情報を取得するアンチエイリアス情報取得工程と、
取得したベクトルデータを解析するベクトルデータ解析工程と、
前記アンチエイリアス情報とベクトルデータ解析結果とに基づいてスキャンラインのパラメータを決定するスキャンライン決定工程と、
ベクトルデータをスキャンライン法によりラスタデータ化するスキャンライン工程と、
描画が完了したことを確認する描画完了確認工程とを備え、
アンチエイリアス情報とベクトルデータに基づいて決定されたスキャンラインでラスタデータ化を行うことを特徴とするベクトル描画方法。
【請求項9】
請求項8に記載のベクトル描画方法の各工程をコンピュータに実行させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate