情報処理装置、情報処理方法及びプログラム
【課題】比較的容易な手法によって2次元ベクトル形式のデータに対応する画像を3次元的に描画可能とする。
【解決手段】情報処理装置は、2次元ベクトル形式のデータに含まれる図形データをパスデータに変換し(S401)、パスデータに含まれる前記図形データの座標値を所定の変換方法により新たな座標値に変換する(S403)。そして、情報処理装置は、座標値が変換されたパスデータに基づく描画処理を行う。
【解決手段】情報処理装置は、2次元ベクトル形式のデータに含まれる図形データをパスデータに変換し(S401)、パスデータに含まれる前記図形データの座標値を所定の変換方法により新たな座標値に変換する(S403)。そして、情報処理装置は、座標値が変換されたパスデータに基づく描画処理を行う。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ベクトル形式の図形データの画像を図形変換するための技術に関するものである。
【背景技術】
【0002】
近年、表示機能を有する情報処理装置においては、表示画面の高精細化や多色化が進んでおり、それに伴い、視覚効果の高いグラフィカルユーザインタフェース(GUI)が用いられるようになってきている。
【0003】
従来、GUIにおける視覚効果として、仮想的な3次元空間に2次元ウィンドウを配置したように表示する方法が知られている(例えば、特許文献1参照)。また、2次元データを立体的に表示する方法も知られている(例えば、特許文献2参照)。
【0004】
特許文献1に開示される技術は、2次元ウィンドウを3次元的に変換する手法としてテクスチャマッピングが用いられている。特許文献2に開示される技術は、文字や図形の2次元データを3次元的に変換する手法として2次元凸包の三角形分割が用いられている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平11−65806号公報
【特許文献2】特開2002−358541号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、テクスチャマッピングや三角形分割を用いた処理は、計算量が多いため処理時間がかかるという課題があった。テクスチャマッピングは、テクスチャを構成する各ピクセルの色情報を用いてマッピング先の色情報を算出する必要があり、図形オブジェクトが大きい程計算量が増加する。特に、元の図形データが2次元ベクトルデータである場合には、一旦テクスチャを作成した後で変換を行う必要があった。また、三角形分割を用いる場合には、元の図形を構成する線分が多くなると分割数が飛躍的に増加し計算量も増える。描画の処理時間が長くなる結果、例えばアニメーション表示においては、アニメーション速度が遅くなったり、コマ落ちが発生したりする場合があった。
【0007】
そこで、本発明の目的は、ベクトル形式の図形データに基づいて描画されるべき第1の画像に対して図形変換ルールを適用することにより得られる第2の画像を低メモリ、及び低計算負荷により取得することにある。
【0008】
また、本発明の目的は、例えばアニメーションのように高精細な描画を要しない場合には、高速な描画処理を可能とするとともに、アニメーションの遅延やフレーム落ちを極力避けることができるようにすることにある。
【課題を解決するための手段】
【0009】
本発明の情報処理装置は、ベクトル形式の図形データから、該図形データに基づいて描画されるべき第1の画像の境界上の第1の座標データ群を生成する第1の生成手段と、前記第1の画像を変形して第2の画像を得るための図形変換ルールを前記第1の座標データ群に適用することにより、第2の座標データ群を生成する第2の生成手段と、前記第2の座標データ群に基づいて、前記第2の画像をビットマップ形式で描画する描画手段と、を有することを特徴とする。
【発明の効果】
【0010】
本発明によれば、ベクトル形式の図形データに基づいて描画されるべき第1の画像に対して図形変換ルールを適用することにより得られる第2の画像を低メモリ、及び低計算負荷により取得することができる。
【0011】
また、本発明によれば、高精細に描画しない場合には、図形データ変換手段やパスデータ生成手段の処理を実行しないようにして処理の軽減を図っている。従って、本発明によれば、例えばアニメーションのように高精細な描画を要しない場合には、高速な描画処理を可能とするとともに、アニメーションの遅延やフレーム落ちを極力避けることができる。
【図面の簡単な説明】
【0012】
【図1】実施形態に係る情報処理装置の構成を示すブロック図である。
【図2】表示部に表示されるGUI画面の一例を示す図である。
【図3】図2に示すGUI画面を作成するためのSVGデータの一部を示す図である。
【図4】第1の実施形態に係る情報処理装置の処理の手順を示すフローチャートである。
【図5】図4のフローチャートに示す処理を行う前のSVGデータの一部を示す図である。
【図6】図5に示すSVGデータにS401の処理を施した結果のデータを示す図である。
【図7】図6に示すデータにS402の処理を施した結果のデータを示す図である。
【図8】図4のフローチャートに示す処理を行う前のSVGデータの一部を示す図である。
【図9】図8に示すデータにS402の処理を施した結果のデータを示す図である。
【図10】S403で用いる座標変換形式である透視変換の概念を示す模式図である。
【図11】図7に示すデータにS403の処理を施した結果を示す図である。
【図12】図9に示すデータにS403の処理を施した結果を示す図である。
【図13】図2及び図3に示すデータの各描画オブジェクトに対して、S401からS403の処理を施した場合の描画結果を示す図である。
【図14】図4のS404及びS405で作成されたパスデータを示す図である。
【図15】図2及び図3に示したデータに対して、図4に示すフローチャートの処理を行った後の描画結果を示す図である。
【図16】第2の実施形態におけるアニメーション表示の例を示す図である。
【図17】第2の実施形態に係る情報処理装置の処理の手順を示すフローチャートである。
【図18】第4の実施形態において変換処理を行う前の矩形を示す図である。
【図19】図18に示した矩形およびその矩形の一部を変換した結果をSVGで記述した一例である。
【図20】図18に示した矩形に対し、変換処理を行った後の描画結果を示した図である。
【図21】第4の実施形態に係る情報処理装置の処理の手順を示すフローチャートである。
【図22】類似色を囲む領域が一つのパスデータとなるように変換した場合の描画結果を示した図である。
【図23】第5の実施形態に係る情報処理装置の処理の手順を示すフローチャートである。
【図24】S2302およびS2303の処理を行った際の描画オブジェクトの変化を示した図である。
【発明を実施するための形態】
【0013】
以下、本発明を適用した好適な実施形態を、添付図面を参照しながら詳細に説明する。
【0014】
<第1の実施形態>
先ず、第1の実施形態について説明する。
図1は、第1の実施形態に係る情報処理装置の構成を示すブロック図である。図1において、CPU101は、システム制御部であり、情報処理装置全体を制御する。ROM102は、CPU101の制御プログラムや各種固定データを格納する読取専用のメモリである。RAM103は、SRAM、DRAM等で構成された書換え可能なメモリであり、プログラム制御変数等を格納するためのものである。各種設定パラメータ、各種ワーク用バッファ等もRAM103に格納されるものである。表示部104は、LCD等を用いてオペレータに表示通知するためのものである。操作部105は、キーボードやポインティングデバイス等で構成され、オペレータが各種入力操作を行うためのものである。106は101〜105の各ユニットを通信可能に接続するシステムバスである。
【0015】
図2は、表示部104に表示されるGUI画面の一例を示す図である。本実施形態における情報処理装置では、GUI画面データとしてSVG(Scalable Vector Graphics)形式の図形データ(SVGデータ)を用いる。SVGはXML(Extensible Markup Language)で記述された2次元ベクトル形式のグラフィックスフォーマットである。SVGデータにおいては、楕円はellipse要素、矩形はrect要素といったように、描画オブジェクトがXML要素で記述される。本情報処理装置では、GUI画面を表示する際に、予めROM102に保持したSVGデータを解析し、そのSVGデータと同じ情報を持つ内部データ形式に変換する。内部データ形式はDOM(Document Object Model)と呼ばれる形式である。本情報処理装置では、そのDOMデータを画像データに変換した上で、表示部104に表示する。図2ではGUI画面を白黒2値で説明しているが、カラー画面であってもよい。
【0016】
図3は、図2に示すGUI画面を作成するためのSVGデータの一部を示す図である。SVGデータはベクトル形式のグラフィックスフォーマットであり、図3に示したように描画オブジェクトの形状、描画座標、大きさ、塗りつぶし色等を数値や文字列で表現できる。
【0017】
例えば、図3に示すSVGデータのうち、pathは線を意味し、circleは円を意味する。また、path要素のstroke−width属性はその線の太さを示し、path要素のd属性は、線を構成する曲線や線分を表現したものである。path要素のd属性の属性値に登場する数値は座標値であり、アルファベットは2次ベジェ曲線や3次ベジェ曲線、線分等を意味するコマンドである。circle要素にあるfill属性はその円の色を示すものである。
【0018】
図4は、本実施形態に係る情報処理装置の処理の手順を示すフローチャートである。本情報処理装置では、図3に示したSVGデータを読み込み、内部データ形式のDOMデータに変換する。図4のフローチャートに示す処理は、SVGデータをDOMデータに変換した後の処理であり、そのDOMデータを操作編集することによって行われるものである。本情報処理装置では、図4に示す処理を行うことによって、図2に示したGUIに3次元的な視覚効果を加えて表示することが可能である。
【0019】
SVGデータの場合、例えば、円を描画するためのcircle要素は、中心点の座標値と半径、塗り潰しの色等が指定されている。この中心点の座標値を変換し別の座標値にしたとしても、円は円のままであり、3次元的な変形を行った描画はできない。しかし、図4のフローチャートに示す処理により3次元的な表現で描画を行うことが可能となる。
【0020】
図4に示す通り、先ずCPU101は、3次元的な表現を行う描画オブジェクトのストロークを、ストロークの塗り潰し領域を囲むパスデータに変換する(S401)。ここで、ストロークとは太さを有する線データ、即ち線の経路情報と線幅情報を有する線データのことであり、図3に示したSVGデータのうちpath要素で示されるデータがこれに相当する。S401では、このようなストロークデータを複数の座標データを含む座標データ群を含むパスデータに変換(生成)するものである。パスデータとは、太さが0の線で囲まれた領域を示すデータのことであり、曲線を含んでいてもよい。また、パスデータは、その領域を塗り潰す色や透明度を指定できる。なお、本実施形態では、図に示したSVGデータから、描画されるべき図2の画像の境界を表すパスデータを生成するとしたが、座標データ群を含む表現であればパスデータに限らず、例えばスキャンラインごとのエッジ座標群でも良い。なお、ステップS401は、第1の生成手段の処理例である。
【0021】
次にCPU101は、描画オブジェクト(第1の画像)のパスデータを、線分のみで構成されたパスデータに変換する(S402)。最初のSVGデータや、S401で変換したパスデータは、その中に曲線を含有し得るものであるが、S402の処理により、全ての曲線を線分のみで構成されたデータに変換する。曲線を線分に変換した場合は画質の劣化を伴う場合があるが、曲線を細かく分割した上で各微小曲線を近似した線分に置き換えれば画質の劣化は問題にならない。SVGデータにおいては、円を示すCircle要素のように、描画オブジェクトのパスデータが記述されていないものもあるが、その場合にはS402でパスデータを算出した上で線分からなるパスデータに変換する。また、所定の規則(許容誤差ルール)に基づいてパスデータの分割数を決定しても良い。S401やS402で生成されるパスデータの中の分割数(座標データ群の数)は小さければ小さいほど、全体の計算負荷は小さいものとなる一方で、近似精度は悪くなる。よって、許容誤差ルールは、表示部104の解像度、CPU101の計算負荷、及びユーザの意思などによって決定されることとなる。
【0022】
続いてCPU101は、各パスデータを構成する個々の座標値(x,y)を、三次元座標変換を行うための図形変換ルールによりそれぞれ新たな座標値(x1,y1)に変換する(S403)。即ち、図形変形ルールを第1の座標データ群に適用することにより、第2の座標データ群を生成することとなる。S403の処理は、各パスデータが3次元的に見えるよう座標変換を行うものであり、ここでは透視投影を用いた座標変換(透視変換)を行っている。なお、ステップS403は、第2の生成手段の処理例である。
【0023】
そしてCPU101は、S401からS403の処理によって変換された描画オブジェクト(第2の画像)の変換後の描画領域と同じ領域を示すパスデータ(第2の図形データ群)を作成する(S404)。なお、ステップS404は、出力手段の処理例である。
【0024】
最後にCPU101は、このパスデータを変換後の描画オブジェクトの上に重ねる(S405)。S405では、S404で作成したパスデータの塗り潰し色を背景色と同じにし、透明度のグラデーションをかける処理も行う。これにより、描画面より奥へ行くほど色が薄くなったり、奥へ行くほど暗くなったりといった効果が付与され、より3次元的な表現になる。
【0025】
S401からS405の処理により新たなDOMデータが作成される。S401からS405の処理は、3次元的な表現を行う描画オブジェクトを一つ一つ順に処理してもよいし、複数のオブジェクトを一括して処理してもよい。
【0026】
図4に示すフローチャートの処理の後、CPU101はDOMデータを画像データにビットマップ形式に変換した上で、表示部104に表示する。すなわち、CPU101は、S401〜S405によって生成されたパスデータに基づく画像を描画する処理を行い、表示部104に表示する。なお、本処理は、描画手段の処理例である。
【0027】
図5から図9は、S401とS402の処理でSVGデータが変化する様子を示す図である。図5から図9では、説明の便宜上、SVG形式のテキストデータで示しているが、実際には図4のフローチャートで示す処理はRAM103に保持したDOMデータを変更するものである。
【0028】
図5は、図4のフローチャートに示す処理を行う前のSVGデータの一部を示す図である。すなわち、図5はpath要素で記述されたSVGデータの部分を示しており、これは太さのある線の描画を行うためのものである。
【0029】
図6は、図5に示すSVGデータにS401の処理を施した結果のデータを示す図である。図6に示すデータは、図5に示すデータと比較して見かけ上のデータ量は増えている。これは、太さを有するストロークデータを、その塗り潰し領域を囲むパスデータ(塗り潰し領域の境界上の座標データ群により構成されるデータ)に変換したためである。図5に示すデータでは、path要素のstroke−width属性の値が「10」であるが、これはストローク(線)の太さが10ピクセルであることを意味する。図6に示すデータでは、stroke−width属性がなくなっているが、これは線の太さが0であることを意味する。また、図5に示すデータにあるpath要素のstroke属性の値「#000000」は線の色が黒色であることを意味し、図6に示すデータではfill属性の値、すなわち塗り潰しの色に置き換わっている。なお、上記ストロークデータは、図形データの適用例となる構成である。
【0030】
図7は、図6に示すデータにS402の処理を施した結果のデータを示す図である。図7に示すデータは、図6に示すデータと比較して見かけ上のデータ量は増えている。これは、3組又は4組の座標値で表現できるベジェ曲線を、許容誤差ルールに基づいて細かい線分に分割したためである。
【0031】
図8は、図4のフローチャートに示す処理を行う前のSVGデータの一部を示す図である。すなわち、図8はcircle要素で記述されたデータの部分を示しており、これは円の描画を行うためのものである。図8に示した通り、SVGデータにおいて円の記述は、中心点の座標と半径、塗り潰しの色等から構成される。
【0032】
図9は、図8に示すデータにS402の処理を施した結果のデータを示す図である。図8のcircle要素は、stroke−width属性が記述されていない。これは、円周のストロークの幅が0であることを意味する。従ってS401の処理を行ってもデータは変わらない。
【0033】
S402の処理の結果、図8のcircle要素は、図9ではpath要素に置き換えられている。図8に示すデータでは、円の半径等を記述しているのみで円周を示すパスデータは記述されていないが、S402の処理により円周のパスデータを計算した上で線分からなるパスデータに変換される。図9に示すデータのd属性の値は、円周を示すパスデータである。このパスデータは線分の集合により構成されている。
【0034】
図10は、S403で用いる座標変換形式である透視変換の概念を示す模式図である。図10に示す仮想3次元空間内において、1001は投影中心であり、閲覧者の視点に相当する。1002は投影面(平面)であり、表示部104の画面に相当する。1003は投影対象であり、本実施形態ではグラフィックスの描画オブジェクトに相当する。1004は透視投影された描画オブジェクトであり、投影中心1001と投影対象1003の各座標とを結ぶ直線群と投影面1002の交点で構成された描画オブジェクトである。S403の座標変換は、投影対象1003の描画オブジェクトを構成する座標値を、投影面1002上の描画オブジェクト1004を構成する各座標値に変換するものである。なお、本実施形態では透視変換を用いているが、S403の処理では他の手法を用いて座標変換を行ってもよい。
【0035】
図11は、図7に示すデータにS403の処理を施した結果を示す図である。図11(a)は、図7に示すデータに対してS403の処理を行った結果のデータである。図11(b)は、図11(a)のデータを画面に描画した状態を示す図である。S403は個々の座標値をそれぞれ変換しているため、図7のデータと図11のデータにあるd属性に記述された座標値の個数は一致している。図7に示したデータのd属性の値の冒頭にある「M38.5,12.5」という文字列は(x,y)=(38.5,12,5)の座標をパスデータの起点にするという意味である。この座標値は、S403の処理の結果(x,y)=(106,324)に変換されるため、図11に示すデータのd属性の値の冒頭は「M106,324」となっている。このような変換を図7に示すデータのd属性に記述された各座標値に対して行った結果、図11(a)に示すpath要素に変換される。その描画結果は、図11(b)に示したように、描画オブジェクトを奥行き方向(Z方向)に倒したような形の3次元的な表示になる。図11の1101に示すデータは、もともとは図2の202のデータであり、これにS401からS403の処理を加えることにより、図11(b)の描画結果が得られる。
【0036】
図12は、図9に示すデータにS403の処理を施した結果を示す図である。図12(a)は、図9に示すデータに対してS403の処理を行った結果のデータである。図12(b)は、図12(a)のデータを画面に描画した状態を示す図である。図9のデータと図12のデータにあるd属性に記述された座標値の個数は一致している。図8のデータはcircle要素で記述された円のデータであったが、S402及びS403の処理が施された結果、図12(b)に示したような描画結果になる。図12の1201に示すデータは、もともとは図2の201のデータであり、これにS401からS403の処理を施すことにより、図12(b)の描画結果が得られる。
【0037】
図13は、図2及び図3に示すデータの各描画オブジェクトに対して、S401からS403の処理を施した場合の描画結果を示す図である。図13の1301に示すように、図2に示す各描画オブジェクトは、S401からS403の処理により、描画面を奥行き方向に倒したような形の3次元的な描画結果となる。
【0038】
図14は、図4のS404及びS405で作成されたパスデータを示す図である。図14に示したpath要素の描画領域は、S401からS403までの変換を行った結果の描画領域(図13の1301)と一致する。また、このpath要素は、背景色と同じ白色で塗り潰され、透明度のグラデーションがかけられている。塗り潰し色と透明度のグラデーションについては、図14のdefs要素内に記述されている。透明度のグラデーションとは、描画領域内で徐々に透明度を変更した塗り潰しの方法である。ここでは、画面下の方に行くに従って、透明度が大きくなるようなグラデーションが記述されている。S404では図14に示すデータのうちのpath要素が作成され、S405では図14に示すデータのうちのdefs要素が作成され、それらは図13に対応するDOMデータに追加される。
【0039】
図15は、図2及び図3に示したデータに対して、図4に示すフローチャートの処理を行った後の描画結果を示す図である。図15ではグラデーションを簡易的に表示している。図15に示した通り、図14のデータを加えることにより、図13よりも奥行き感が増し、より3次元的に表現することが可能となる。本実施形態では、背景色と同じ色で塗り潰した例を示したが、例えば黒色で塗り潰して透明度のグラデーションをかけることにより、描画面より奥に行く程暗くなるような表示を行うことも可能である。
【0040】
以上説明したように、2次元ベクトル形式のグラフィックスデータに対して、本実施形態で説明した処理を行うことにより、比較的容易な手法によって2次元ベクトル形式のグラフィックスデータに対応する画像の3次元的な描画を行うことが可能となる。本実施形態では、図2及び図3に示すデータの全ての描画オブジェクトに対して図4のフローチャートに示す処理を行ったが、一部の描画オブジェクトに対してのみ図4の処理を行うようにしてもよい。そのようにすれば、グラフィックスの一部が奥行き方向に倒れたような表現が可能となる。
【0041】
<第2の実施形態>
次に、第2の実施形態について説明する。
第2の実施形態に係る情報処理装置の構成は、図1に示す第1の実施形態に係る情報処理装置の構成と同様である。本実施形態では、図2及び図3に示すグラフィックスを基にアニメーション表示を行う場合の例を説明する。
【0042】
図16は、本実施形態におけるアニメーション表示の例を示す図である。アニメーション開始時の時刻を0秒、アニメーション終了時の時刻を1秒とした場合、図16の1601が0秒時の表示状態であり、1602は0.5秒時の状態、1603は1秒時の状態である。このような各時刻での表示をフレームと呼ぶ。本情報処理装置が100ミリ秒単位で描画を行うと仮定すると、1601と1602の間には図16に示した以外にも数フレームあることになる。1602と1603の間も同様である。図16に示したアニメーションを行う場合には、各フレームで座標値の変換処理を行う必要がある。
【0043】
図17は、本実施形態に係る情報処理装置の処理の手順を示すフローチャートである。図17に示す処理は、アニメーション開始後、すなわち0秒時より後のフレームの描画時に行われるものである。図17に示した通り、まずCPU101は、現在描画しようとしているフレームがアニメーション中の描画データか否かを判断する(S1701)。描画時刻の値が0秒より大きく、且つ1秒より小さければ、アニメーション中のフレームと判断できる。なお、S1701は、判定手段の処理例である。
【0044】
S1701においてアニメーション中の描画ではないと判断されれば、S1702からS1706の処理を行う。S1702からS1706の処理は、図4のS401からS405の処理と同様である。
【0045】
S1701においてアニメーション中の描画であると判断されれば、CPU101は、描画オブジェクトのパスデータを線分で構成されたパスデータに変換する(S1707)。そして、CPU101は、各パスデータを構成する個々の座標値(x,y)を、所定の式によりそれぞれ新たな座標値(x1,y1)に変換する(S1708)。この座標変換の方法については、第1の実施形態で説明した方法と同様である。また、S1707及びS1708の処理は、それぞれS1703及び1704と同様である。CPU101は、図17のフローチャートに示す処理の後で表示部104に描画を行う。
【0046】
図17に示すように、アニメーション中にはS1702及びS1705に対応する処理を実行せず、アニメーション中の描画の処理を軽減することにより高速に描画処理を行うことが可能となる。これにより、アニメーションの遅延やフレーム落ちを極力避けることができる。アニメーション途中の表示品質に関しては、アニメーション中の各フレームは短時間の表示であるため、見た目の違和感は最小限に抑えられる。
【0047】
本実施形態では、S1707やS1708の処理をアニメーション時において毎フレーム行うようにしているが、S1707の処理はアニメーション開始前に行うようにしてもよい。こうすることで、アニメーション中はS1708の処理のみを行えばよくなる。
【0048】
また、本実施形態では、アニメーション中か否かで描画処理を軽減するかどうか(高精細に描画するか否か)を判断したが、それ以外の情報処理装置の状態やグラフィックスデータの種類によって判断してもよい。例えば、並列処理によりCPU101に大きな負荷がかかっている状態のときには描画処理を軽減するようにしてもよいし、変換する描画オブジェクトが多い場合に描画処理を軽減するようにしてもよい。
【0049】
上述した実施形態では、表示部104を有する情報処理装置を例に説明したが、印刷装置、カメラ、複写機、スキャナ等、表示部を有するあらゆる装置に適用可能である。
【0050】
<第3の実施形態>
次に、第3の実施形態について説明する。
第3の実施形態に係る情報処理装置の構成は、図1に示す第1の実施形態に係る情報処理装置の構成と同様である。第1の実施形態では、ステップS401からS405の処理により生成されたDOMデータを画像データにビットマップ変換した上で表示部104に表示するとした。しかし、ビットマップ変換する前にステップS404で生成されたパスデータに基づいてSVGデータを出力することも可能である。本実施形態によれば、図形変換ルールを適用した後のデータをビットマップとして保持せず、データサイズの小さいSVGデータ(ベクトル形式のデータ)で保持することが可能となる。
【0051】
<第4の実施形態>
次に、第4の実施形態について説明する。
第4の実施形態に係る情報処理装置の構成は、図1に示す第1の実施形態に係る情報処理装置の構成と同様である。
【0052】
図18(a)は変換処理を行う前の矩形を表した図である。同図では便宜上矩形の辺(枠線)を示しているが、実際にはこの図形に辺はなく矩形領域を塗り潰すのみである。図18(b)は図18(a)に示した矩形の塗り潰し方を示した図である。この矩形は水平方向に色が変化するグラデーション状に塗り潰しを行うよう定義されている。図18(b)に示したとおり、矩形領域abihは色Aで塗られ、以下同様に各矩形領域はB、C、D、E、Fの色で塗られる。図18(b)においては、説明の都合上、6色しか用いていないが、実際のグラデーション描画では一般により多くの色が用いられる。図19(a)は、図18に示した矩形をSVGで記述した一例である。同図に示したとおり、SVGにおいては、矩形領域に対し、グラデーションによる塗り潰しを指定することが可能である。
【0053】
図19(b)は、図18に示した矩形に対し、形状を定義する各頂点座標に対し座標変換を施した例である。同図に示したとおり、形状を定義する部分は座標変換がなされているものの、グラデーションの定義には変化がないため、描画結果は後述する図20(b)のようになる。
【0054】
図20(a)は、図18に示した矩形に対し、変換処理を行った後の描画結果を示した図である。SVGの場合、図19(b)に示したように矩形を構成する各座標値を変換しただけでは、図20(b)のように描画される。すなわち、図形の形状は台形状に変換されるが、塗り潰し方は水平方向に色が変化するグラデーションのままとなり、3次元的な描画効果としては不十分である。本実施形態においては、図20(c)のように各色の塗り潰し領域の形状も変化可能な方法を示す。
【0055】
図21は、本実施形態に係る描画オブジェクトを描画する際の処理の流れを示したフローチャートである。同図に示した通り、先ずCPU101は、対象となる描画オブジェクトを同じ色の領域を囲む1個以上のパスデータに変換する(S2101)。ここでは、図18(a)に示した矩形を、abih、bcji、cdkj、delk、efml、fgnmの6個のパスデータに変換する。このときパスデータ内の塗り潰し色は、それぞれA、B、C、D、E、Fの色となる。
【0056】
次に、CPU101は、各パスデータを構成する個々の座標値を、3次元変換を加えた新たな座標値に変換する(S2102)。以下、S2103およびS2104の処理は、図4のS404、S405と同様である。
【0057】
このように処理することにより、図20(c)の描画結果を得ることができ、より3次元的な表現が可能になる。
【0058】
S2101においては、同一色を囲む領域に対し1つのパスデータとなるように変換したが、所定範囲の類似色を囲む領域が一つのパスデータとなるようにしてもよい。例えば、領域abihと領域bcjiは本来異なる色であるが、これらを一つのパスデータacjhとし、AとBの中間色で塗り潰すようにしても良い。そのようにすることにより、描画結果の画質は若干変化するが、S2102で座標変換を行う座標の個数を減らすことができ、より高速な処理が可能となる。
【0059】
図22は、類似色を囲む領域が一つのパスデータとなるように変換した場合の描画結果を示した図である。同図において、GはAとBの中間色、HはCとDの中間色、IはEとFの中間色である。
【0060】
<第5の実施形態>
次に、第5の実施形態について説明する。
第5の実施形態に係る情報処理装置の構成は、図1に示す第1の実施形態に係る情報処理装置の構成と同様である。
【0061】
図23は、本実施形態における処理の流れを示したフローチャートである。同図に示したとおり、CPU101は、先ず対象となる描画オブジェクトと重なる描画オブジェクトが存在するか否かを判断する(S2301)。ここで、重なる描画オブジェクトが存在すると判断されれば、CPU101は、重なる描画オブジェクトを対象となる描画オブジェクトと一体の描画オブジェクトとみなすフラグを立てる(S2302)。すなわち、SVGの記述上は異なる描画オブジェクトである場合でも、重なり合っていれば一つの描画オブジェクトとみなして以降の処理を行う。S2301において、重なる描画オブジェクトが存在しないと判断された場合には、S2303の処理へ移行する。
【0062】
以下、S2303〜S2306の処理は、図21のS2101〜S2104の処理と同様である。
【0063】
図24は、S2302およびS2303の処理を行った際の描画オブジェクトの変化を示した図である。S2302の処理を行う前は、図24(a)に示したように2個の矩形であり、一部が重なり合っている。これらの矩形が同一色である場合、S2302およびS2303の処理を行うことにより、図24(b)に示したように一つのパスデータに変換される。
【0064】
このように処理を行うことにより、描画オブジェクトの個数を減らすことができる。また、多くの場合、このような処理を行うことによりパスデータを構成する頂点の合計個数を減らすことができる。頂点数を減らすことによりメモリ使用量を削減できる他、S2304で座標変換を行う個数も削減できることから、より高速な処理が可能となる。
【0065】
上述した本発明の実施形態を構成する各手段の機能及び各ステップは、コンピュータのRAMやROM等に記憶されたプログラムが動作することによって実現できる。このプログラム及び前記プログラムを記録したコンピュータ読み取り可能な記録媒体は本発明に含まれる。
【技術分野】
【0001】
本発明は、ベクトル形式の図形データの画像を図形変換するための技術に関するものである。
【背景技術】
【0002】
近年、表示機能を有する情報処理装置においては、表示画面の高精細化や多色化が進んでおり、それに伴い、視覚効果の高いグラフィカルユーザインタフェース(GUI)が用いられるようになってきている。
【0003】
従来、GUIにおける視覚効果として、仮想的な3次元空間に2次元ウィンドウを配置したように表示する方法が知られている(例えば、特許文献1参照)。また、2次元データを立体的に表示する方法も知られている(例えば、特許文献2参照)。
【0004】
特許文献1に開示される技術は、2次元ウィンドウを3次元的に変換する手法としてテクスチャマッピングが用いられている。特許文献2に開示される技術は、文字や図形の2次元データを3次元的に変換する手法として2次元凸包の三角形分割が用いられている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平11−65806号公報
【特許文献2】特開2002−358541号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、テクスチャマッピングや三角形分割を用いた処理は、計算量が多いため処理時間がかかるという課題があった。テクスチャマッピングは、テクスチャを構成する各ピクセルの色情報を用いてマッピング先の色情報を算出する必要があり、図形オブジェクトが大きい程計算量が増加する。特に、元の図形データが2次元ベクトルデータである場合には、一旦テクスチャを作成した後で変換を行う必要があった。また、三角形分割を用いる場合には、元の図形を構成する線分が多くなると分割数が飛躍的に増加し計算量も増える。描画の処理時間が長くなる結果、例えばアニメーション表示においては、アニメーション速度が遅くなったり、コマ落ちが発生したりする場合があった。
【0007】
そこで、本発明の目的は、ベクトル形式の図形データに基づいて描画されるべき第1の画像に対して図形変換ルールを適用することにより得られる第2の画像を低メモリ、及び低計算負荷により取得することにある。
【0008】
また、本発明の目的は、例えばアニメーションのように高精細な描画を要しない場合には、高速な描画処理を可能とするとともに、アニメーションの遅延やフレーム落ちを極力避けることができるようにすることにある。
【課題を解決するための手段】
【0009】
本発明の情報処理装置は、ベクトル形式の図形データから、該図形データに基づいて描画されるべき第1の画像の境界上の第1の座標データ群を生成する第1の生成手段と、前記第1の画像を変形して第2の画像を得るための図形変換ルールを前記第1の座標データ群に適用することにより、第2の座標データ群を生成する第2の生成手段と、前記第2の座標データ群に基づいて、前記第2の画像をビットマップ形式で描画する描画手段と、を有することを特徴とする。
【発明の効果】
【0010】
本発明によれば、ベクトル形式の図形データに基づいて描画されるべき第1の画像に対して図形変換ルールを適用することにより得られる第2の画像を低メモリ、及び低計算負荷により取得することができる。
【0011】
また、本発明によれば、高精細に描画しない場合には、図形データ変換手段やパスデータ生成手段の処理を実行しないようにして処理の軽減を図っている。従って、本発明によれば、例えばアニメーションのように高精細な描画を要しない場合には、高速な描画処理を可能とするとともに、アニメーションの遅延やフレーム落ちを極力避けることができる。
【図面の簡単な説明】
【0012】
【図1】実施形態に係る情報処理装置の構成を示すブロック図である。
【図2】表示部に表示されるGUI画面の一例を示す図である。
【図3】図2に示すGUI画面を作成するためのSVGデータの一部を示す図である。
【図4】第1の実施形態に係る情報処理装置の処理の手順を示すフローチャートである。
【図5】図4のフローチャートに示す処理を行う前のSVGデータの一部を示す図である。
【図6】図5に示すSVGデータにS401の処理を施した結果のデータを示す図である。
【図7】図6に示すデータにS402の処理を施した結果のデータを示す図である。
【図8】図4のフローチャートに示す処理を行う前のSVGデータの一部を示す図である。
【図9】図8に示すデータにS402の処理を施した結果のデータを示す図である。
【図10】S403で用いる座標変換形式である透視変換の概念を示す模式図である。
【図11】図7に示すデータにS403の処理を施した結果を示す図である。
【図12】図9に示すデータにS403の処理を施した結果を示す図である。
【図13】図2及び図3に示すデータの各描画オブジェクトに対して、S401からS403の処理を施した場合の描画結果を示す図である。
【図14】図4のS404及びS405で作成されたパスデータを示す図である。
【図15】図2及び図3に示したデータに対して、図4に示すフローチャートの処理を行った後の描画結果を示す図である。
【図16】第2の実施形態におけるアニメーション表示の例を示す図である。
【図17】第2の実施形態に係る情報処理装置の処理の手順を示すフローチャートである。
【図18】第4の実施形態において変換処理を行う前の矩形を示す図である。
【図19】図18に示した矩形およびその矩形の一部を変換した結果をSVGで記述した一例である。
【図20】図18に示した矩形に対し、変換処理を行った後の描画結果を示した図である。
【図21】第4の実施形態に係る情報処理装置の処理の手順を示すフローチャートである。
【図22】類似色を囲む領域が一つのパスデータとなるように変換した場合の描画結果を示した図である。
【図23】第5の実施形態に係る情報処理装置の処理の手順を示すフローチャートである。
【図24】S2302およびS2303の処理を行った際の描画オブジェクトの変化を示した図である。
【発明を実施するための形態】
【0013】
以下、本発明を適用した好適な実施形態を、添付図面を参照しながら詳細に説明する。
【0014】
<第1の実施形態>
先ず、第1の実施形態について説明する。
図1は、第1の実施形態に係る情報処理装置の構成を示すブロック図である。図1において、CPU101は、システム制御部であり、情報処理装置全体を制御する。ROM102は、CPU101の制御プログラムや各種固定データを格納する読取専用のメモリである。RAM103は、SRAM、DRAM等で構成された書換え可能なメモリであり、プログラム制御変数等を格納するためのものである。各種設定パラメータ、各種ワーク用バッファ等もRAM103に格納されるものである。表示部104は、LCD等を用いてオペレータに表示通知するためのものである。操作部105は、キーボードやポインティングデバイス等で構成され、オペレータが各種入力操作を行うためのものである。106は101〜105の各ユニットを通信可能に接続するシステムバスである。
【0015】
図2は、表示部104に表示されるGUI画面の一例を示す図である。本実施形態における情報処理装置では、GUI画面データとしてSVG(Scalable Vector Graphics)形式の図形データ(SVGデータ)を用いる。SVGはXML(Extensible Markup Language)で記述された2次元ベクトル形式のグラフィックスフォーマットである。SVGデータにおいては、楕円はellipse要素、矩形はrect要素といったように、描画オブジェクトがXML要素で記述される。本情報処理装置では、GUI画面を表示する際に、予めROM102に保持したSVGデータを解析し、そのSVGデータと同じ情報を持つ内部データ形式に変換する。内部データ形式はDOM(Document Object Model)と呼ばれる形式である。本情報処理装置では、そのDOMデータを画像データに変換した上で、表示部104に表示する。図2ではGUI画面を白黒2値で説明しているが、カラー画面であってもよい。
【0016】
図3は、図2に示すGUI画面を作成するためのSVGデータの一部を示す図である。SVGデータはベクトル形式のグラフィックスフォーマットであり、図3に示したように描画オブジェクトの形状、描画座標、大きさ、塗りつぶし色等を数値や文字列で表現できる。
【0017】
例えば、図3に示すSVGデータのうち、pathは線を意味し、circleは円を意味する。また、path要素のstroke−width属性はその線の太さを示し、path要素のd属性は、線を構成する曲線や線分を表現したものである。path要素のd属性の属性値に登場する数値は座標値であり、アルファベットは2次ベジェ曲線や3次ベジェ曲線、線分等を意味するコマンドである。circle要素にあるfill属性はその円の色を示すものである。
【0018】
図4は、本実施形態に係る情報処理装置の処理の手順を示すフローチャートである。本情報処理装置では、図3に示したSVGデータを読み込み、内部データ形式のDOMデータに変換する。図4のフローチャートに示す処理は、SVGデータをDOMデータに変換した後の処理であり、そのDOMデータを操作編集することによって行われるものである。本情報処理装置では、図4に示す処理を行うことによって、図2に示したGUIに3次元的な視覚効果を加えて表示することが可能である。
【0019】
SVGデータの場合、例えば、円を描画するためのcircle要素は、中心点の座標値と半径、塗り潰しの色等が指定されている。この中心点の座標値を変換し別の座標値にしたとしても、円は円のままであり、3次元的な変形を行った描画はできない。しかし、図4のフローチャートに示す処理により3次元的な表現で描画を行うことが可能となる。
【0020】
図4に示す通り、先ずCPU101は、3次元的な表現を行う描画オブジェクトのストロークを、ストロークの塗り潰し領域を囲むパスデータに変換する(S401)。ここで、ストロークとは太さを有する線データ、即ち線の経路情報と線幅情報を有する線データのことであり、図3に示したSVGデータのうちpath要素で示されるデータがこれに相当する。S401では、このようなストロークデータを複数の座標データを含む座標データ群を含むパスデータに変換(生成)するものである。パスデータとは、太さが0の線で囲まれた領域を示すデータのことであり、曲線を含んでいてもよい。また、パスデータは、その領域を塗り潰す色や透明度を指定できる。なお、本実施形態では、図に示したSVGデータから、描画されるべき図2の画像の境界を表すパスデータを生成するとしたが、座標データ群を含む表現であればパスデータに限らず、例えばスキャンラインごとのエッジ座標群でも良い。なお、ステップS401は、第1の生成手段の処理例である。
【0021】
次にCPU101は、描画オブジェクト(第1の画像)のパスデータを、線分のみで構成されたパスデータに変換する(S402)。最初のSVGデータや、S401で変換したパスデータは、その中に曲線を含有し得るものであるが、S402の処理により、全ての曲線を線分のみで構成されたデータに変換する。曲線を線分に変換した場合は画質の劣化を伴う場合があるが、曲線を細かく分割した上で各微小曲線を近似した線分に置き換えれば画質の劣化は問題にならない。SVGデータにおいては、円を示すCircle要素のように、描画オブジェクトのパスデータが記述されていないものもあるが、その場合にはS402でパスデータを算出した上で線分からなるパスデータに変換する。また、所定の規則(許容誤差ルール)に基づいてパスデータの分割数を決定しても良い。S401やS402で生成されるパスデータの中の分割数(座標データ群の数)は小さければ小さいほど、全体の計算負荷は小さいものとなる一方で、近似精度は悪くなる。よって、許容誤差ルールは、表示部104の解像度、CPU101の計算負荷、及びユーザの意思などによって決定されることとなる。
【0022】
続いてCPU101は、各パスデータを構成する個々の座標値(x,y)を、三次元座標変換を行うための図形変換ルールによりそれぞれ新たな座標値(x1,y1)に変換する(S403)。即ち、図形変形ルールを第1の座標データ群に適用することにより、第2の座標データ群を生成することとなる。S403の処理は、各パスデータが3次元的に見えるよう座標変換を行うものであり、ここでは透視投影を用いた座標変換(透視変換)を行っている。なお、ステップS403は、第2の生成手段の処理例である。
【0023】
そしてCPU101は、S401からS403の処理によって変換された描画オブジェクト(第2の画像)の変換後の描画領域と同じ領域を示すパスデータ(第2の図形データ群)を作成する(S404)。なお、ステップS404は、出力手段の処理例である。
【0024】
最後にCPU101は、このパスデータを変換後の描画オブジェクトの上に重ねる(S405)。S405では、S404で作成したパスデータの塗り潰し色を背景色と同じにし、透明度のグラデーションをかける処理も行う。これにより、描画面より奥へ行くほど色が薄くなったり、奥へ行くほど暗くなったりといった効果が付与され、より3次元的な表現になる。
【0025】
S401からS405の処理により新たなDOMデータが作成される。S401からS405の処理は、3次元的な表現を行う描画オブジェクトを一つ一つ順に処理してもよいし、複数のオブジェクトを一括して処理してもよい。
【0026】
図4に示すフローチャートの処理の後、CPU101はDOMデータを画像データにビットマップ形式に変換した上で、表示部104に表示する。すなわち、CPU101は、S401〜S405によって生成されたパスデータに基づく画像を描画する処理を行い、表示部104に表示する。なお、本処理は、描画手段の処理例である。
【0027】
図5から図9は、S401とS402の処理でSVGデータが変化する様子を示す図である。図5から図9では、説明の便宜上、SVG形式のテキストデータで示しているが、実際には図4のフローチャートで示す処理はRAM103に保持したDOMデータを変更するものである。
【0028】
図5は、図4のフローチャートに示す処理を行う前のSVGデータの一部を示す図である。すなわち、図5はpath要素で記述されたSVGデータの部分を示しており、これは太さのある線の描画を行うためのものである。
【0029】
図6は、図5に示すSVGデータにS401の処理を施した結果のデータを示す図である。図6に示すデータは、図5に示すデータと比較して見かけ上のデータ量は増えている。これは、太さを有するストロークデータを、その塗り潰し領域を囲むパスデータ(塗り潰し領域の境界上の座標データ群により構成されるデータ)に変換したためである。図5に示すデータでは、path要素のstroke−width属性の値が「10」であるが、これはストローク(線)の太さが10ピクセルであることを意味する。図6に示すデータでは、stroke−width属性がなくなっているが、これは線の太さが0であることを意味する。また、図5に示すデータにあるpath要素のstroke属性の値「#000000」は線の色が黒色であることを意味し、図6に示すデータではfill属性の値、すなわち塗り潰しの色に置き換わっている。なお、上記ストロークデータは、図形データの適用例となる構成である。
【0030】
図7は、図6に示すデータにS402の処理を施した結果のデータを示す図である。図7に示すデータは、図6に示すデータと比較して見かけ上のデータ量は増えている。これは、3組又は4組の座標値で表現できるベジェ曲線を、許容誤差ルールに基づいて細かい線分に分割したためである。
【0031】
図8は、図4のフローチャートに示す処理を行う前のSVGデータの一部を示す図である。すなわち、図8はcircle要素で記述されたデータの部分を示しており、これは円の描画を行うためのものである。図8に示した通り、SVGデータにおいて円の記述は、中心点の座標と半径、塗り潰しの色等から構成される。
【0032】
図9は、図8に示すデータにS402の処理を施した結果のデータを示す図である。図8のcircle要素は、stroke−width属性が記述されていない。これは、円周のストロークの幅が0であることを意味する。従ってS401の処理を行ってもデータは変わらない。
【0033】
S402の処理の結果、図8のcircle要素は、図9ではpath要素に置き換えられている。図8に示すデータでは、円の半径等を記述しているのみで円周を示すパスデータは記述されていないが、S402の処理により円周のパスデータを計算した上で線分からなるパスデータに変換される。図9に示すデータのd属性の値は、円周を示すパスデータである。このパスデータは線分の集合により構成されている。
【0034】
図10は、S403で用いる座標変換形式である透視変換の概念を示す模式図である。図10に示す仮想3次元空間内において、1001は投影中心であり、閲覧者の視点に相当する。1002は投影面(平面)であり、表示部104の画面に相当する。1003は投影対象であり、本実施形態ではグラフィックスの描画オブジェクトに相当する。1004は透視投影された描画オブジェクトであり、投影中心1001と投影対象1003の各座標とを結ぶ直線群と投影面1002の交点で構成された描画オブジェクトである。S403の座標変換は、投影対象1003の描画オブジェクトを構成する座標値を、投影面1002上の描画オブジェクト1004を構成する各座標値に変換するものである。なお、本実施形態では透視変換を用いているが、S403の処理では他の手法を用いて座標変換を行ってもよい。
【0035】
図11は、図7に示すデータにS403の処理を施した結果を示す図である。図11(a)は、図7に示すデータに対してS403の処理を行った結果のデータである。図11(b)は、図11(a)のデータを画面に描画した状態を示す図である。S403は個々の座標値をそれぞれ変換しているため、図7のデータと図11のデータにあるd属性に記述された座標値の個数は一致している。図7に示したデータのd属性の値の冒頭にある「M38.5,12.5」という文字列は(x,y)=(38.5,12,5)の座標をパスデータの起点にするという意味である。この座標値は、S403の処理の結果(x,y)=(106,324)に変換されるため、図11に示すデータのd属性の値の冒頭は「M106,324」となっている。このような変換を図7に示すデータのd属性に記述された各座標値に対して行った結果、図11(a)に示すpath要素に変換される。その描画結果は、図11(b)に示したように、描画オブジェクトを奥行き方向(Z方向)に倒したような形の3次元的な表示になる。図11の1101に示すデータは、もともとは図2の202のデータであり、これにS401からS403の処理を加えることにより、図11(b)の描画結果が得られる。
【0036】
図12は、図9に示すデータにS403の処理を施した結果を示す図である。図12(a)は、図9に示すデータに対してS403の処理を行った結果のデータである。図12(b)は、図12(a)のデータを画面に描画した状態を示す図である。図9のデータと図12のデータにあるd属性に記述された座標値の個数は一致している。図8のデータはcircle要素で記述された円のデータであったが、S402及びS403の処理が施された結果、図12(b)に示したような描画結果になる。図12の1201に示すデータは、もともとは図2の201のデータであり、これにS401からS403の処理を施すことにより、図12(b)の描画結果が得られる。
【0037】
図13は、図2及び図3に示すデータの各描画オブジェクトに対して、S401からS403の処理を施した場合の描画結果を示す図である。図13の1301に示すように、図2に示す各描画オブジェクトは、S401からS403の処理により、描画面を奥行き方向に倒したような形の3次元的な描画結果となる。
【0038】
図14は、図4のS404及びS405で作成されたパスデータを示す図である。図14に示したpath要素の描画領域は、S401からS403までの変換を行った結果の描画領域(図13の1301)と一致する。また、このpath要素は、背景色と同じ白色で塗り潰され、透明度のグラデーションがかけられている。塗り潰し色と透明度のグラデーションについては、図14のdefs要素内に記述されている。透明度のグラデーションとは、描画領域内で徐々に透明度を変更した塗り潰しの方法である。ここでは、画面下の方に行くに従って、透明度が大きくなるようなグラデーションが記述されている。S404では図14に示すデータのうちのpath要素が作成され、S405では図14に示すデータのうちのdefs要素が作成され、それらは図13に対応するDOMデータに追加される。
【0039】
図15は、図2及び図3に示したデータに対して、図4に示すフローチャートの処理を行った後の描画結果を示す図である。図15ではグラデーションを簡易的に表示している。図15に示した通り、図14のデータを加えることにより、図13よりも奥行き感が増し、より3次元的に表現することが可能となる。本実施形態では、背景色と同じ色で塗り潰した例を示したが、例えば黒色で塗り潰して透明度のグラデーションをかけることにより、描画面より奥に行く程暗くなるような表示を行うことも可能である。
【0040】
以上説明したように、2次元ベクトル形式のグラフィックスデータに対して、本実施形態で説明した処理を行うことにより、比較的容易な手法によって2次元ベクトル形式のグラフィックスデータに対応する画像の3次元的な描画を行うことが可能となる。本実施形態では、図2及び図3に示すデータの全ての描画オブジェクトに対して図4のフローチャートに示す処理を行ったが、一部の描画オブジェクトに対してのみ図4の処理を行うようにしてもよい。そのようにすれば、グラフィックスの一部が奥行き方向に倒れたような表現が可能となる。
【0041】
<第2の実施形態>
次に、第2の実施形態について説明する。
第2の実施形態に係る情報処理装置の構成は、図1に示す第1の実施形態に係る情報処理装置の構成と同様である。本実施形態では、図2及び図3に示すグラフィックスを基にアニメーション表示を行う場合の例を説明する。
【0042】
図16は、本実施形態におけるアニメーション表示の例を示す図である。アニメーション開始時の時刻を0秒、アニメーション終了時の時刻を1秒とした場合、図16の1601が0秒時の表示状態であり、1602は0.5秒時の状態、1603は1秒時の状態である。このような各時刻での表示をフレームと呼ぶ。本情報処理装置が100ミリ秒単位で描画を行うと仮定すると、1601と1602の間には図16に示した以外にも数フレームあることになる。1602と1603の間も同様である。図16に示したアニメーションを行う場合には、各フレームで座標値の変換処理を行う必要がある。
【0043】
図17は、本実施形態に係る情報処理装置の処理の手順を示すフローチャートである。図17に示す処理は、アニメーション開始後、すなわち0秒時より後のフレームの描画時に行われるものである。図17に示した通り、まずCPU101は、現在描画しようとしているフレームがアニメーション中の描画データか否かを判断する(S1701)。描画時刻の値が0秒より大きく、且つ1秒より小さければ、アニメーション中のフレームと判断できる。なお、S1701は、判定手段の処理例である。
【0044】
S1701においてアニメーション中の描画ではないと判断されれば、S1702からS1706の処理を行う。S1702からS1706の処理は、図4のS401からS405の処理と同様である。
【0045】
S1701においてアニメーション中の描画であると判断されれば、CPU101は、描画オブジェクトのパスデータを線分で構成されたパスデータに変換する(S1707)。そして、CPU101は、各パスデータを構成する個々の座標値(x,y)を、所定の式によりそれぞれ新たな座標値(x1,y1)に変換する(S1708)。この座標変換の方法については、第1の実施形態で説明した方法と同様である。また、S1707及びS1708の処理は、それぞれS1703及び1704と同様である。CPU101は、図17のフローチャートに示す処理の後で表示部104に描画を行う。
【0046】
図17に示すように、アニメーション中にはS1702及びS1705に対応する処理を実行せず、アニメーション中の描画の処理を軽減することにより高速に描画処理を行うことが可能となる。これにより、アニメーションの遅延やフレーム落ちを極力避けることができる。アニメーション途中の表示品質に関しては、アニメーション中の各フレームは短時間の表示であるため、見た目の違和感は最小限に抑えられる。
【0047】
本実施形態では、S1707やS1708の処理をアニメーション時において毎フレーム行うようにしているが、S1707の処理はアニメーション開始前に行うようにしてもよい。こうすることで、アニメーション中はS1708の処理のみを行えばよくなる。
【0048】
また、本実施形態では、アニメーション中か否かで描画処理を軽減するかどうか(高精細に描画するか否か)を判断したが、それ以外の情報処理装置の状態やグラフィックスデータの種類によって判断してもよい。例えば、並列処理によりCPU101に大きな負荷がかかっている状態のときには描画処理を軽減するようにしてもよいし、変換する描画オブジェクトが多い場合に描画処理を軽減するようにしてもよい。
【0049】
上述した実施形態では、表示部104を有する情報処理装置を例に説明したが、印刷装置、カメラ、複写機、スキャナ等、表示部を有するあらゆる装置に適用可能である。
【0050】
<第3の実施形態>
次に、第3の実施形態について説明する。
第3の実施形態に係る情報処理装置の構成は、図1に示す第1の実施形態に係る情報処理装置の構成と同様である。第1の実施形態では、ステップS401からS405の処理により生成されたDOMデータを画像データにビットマップ変換した上で表示部104に表示するとした。しかし、ビットマップ変換する前にステップS404で生成されたパスデータに基づいてSVGデータを出力することも可能である。本実施形態によれば、図形変換ルールを適用した後のデータをビットマップとして保持せず、データサイズの小さいSVGデータ(ベクトル形式のデータ)で保持することが可能となる。
【0051】
<第4の実施形態>
次に、第4の実施形態について説明する。
第4の実施形態に係る情報処理装置の構成は、図1に示す第1の実施形態に係る情報処理装置の構成と同様である。
【0052】
図18(a)は変換処理を行う前の矩形を表した図である。同図では便宜上矩形の辺(枠線)を示しているが、実際にはこの図形に辺はなく矩形領域を塗り潰すのみである。図18(b)は図18(a)に示した矩形の塗り潰し方を示した図である。この矩形は水平方向に色が変化するグラデーション状に塗り潰しを行うよう定義されている。図18(b)に示したとおり、矩形領域abihは色Aで塗られ、以下同様に各矩形領域はB、C、D、E、Fの色で塗られる。図18(b)においては、説明の都合上、6色しか用いていないが、実際のグラデーション描画では一般により多くの色が用いられる。図19(a)は、図18に示した矩形をSVGで記述した一例である。同図に示したとおり、SVGにおいては、矩形領域に対し、グラデーションによる塗り潰しを指定することが可能である。
【0053】
図19(b)は、図18に示した矩形に対し、形状を定義する各頂点座標に対し座標変換を施した例である。同図に示したとおり、形状を定義する部分は座標変換がなされているものの、グラデーションの定義には変化がないため、描画結果は後述する図20(b)のようになる。
【0054】
図20(a)は、図18に示した矩形に対し、変換処理を行った後の描画結果を示した図である。SVGの場合、図19(b)に示したように矩形を構成する各座標値を変換しただけでは、図20(b)のように描画される。すなわち、図形の形状は台形状に変換されるが、塗り潰し方は水平方向に色が変化するグラデーションのままとなり、3次元的な描画効果としては不十分である。本実施形態においては、図20(c)のように各色の塗り潰し領域の形状も変化可能な方法を示す。
【0055】
図21は、本実施形態に係る描画オブジェクトを描画する際の処理の流れを示したフローチャートである。同図に示した通り、先ずCPU101は、対象となる描画オブジェクトを同じ色の領域を囲む1個以上のパスデータに変換する(S2101)。ここでは、図18(a)に示した矩形を、abih、bcji、cdkj、delk、efml、fgnmの6個のパスデータに変換する。このときパスデータ内の塗り潰し色は、それぞれA、B、C、D、E、Fの色となる。
【0056】
次に、CPU101は、各パスデータを構成する個々の座標値を、3次元変換を加えた新たな座標値に変換する(S2102)。以下、S2103およびS2104の処理は、図4のS404、S405と同様である。
【0057】
このように処理することにより、図20(c)の描画結果を得ることができ、より3次元的な表現が可能になる。
【0058】
S2101においては、同一色を囲む領域に対し1つのパスデータとなるように変換したが、所定範囲の類似色を囲む領域が一つのパスデータとなるようにしてもよい。例えば、領域abihと領域bcjiは本来異なる色であるが、これらを一つのパスデータacjhとし、AとBの中間色で塗り潰すようにしても良い。そのようにすることにより、描画結果の画質は若干変化するが、S2102で座標変換を行う座標の個数を減らすことができ、より高速な処理が可能となる。
【0059】
図22は、類似色を囲む領域が一つのパスデータとなるように変換した場合の描画結果を示した図である。同図において、GはAとBの中間色、HはCとDの中間色、IはEとFの中間色である。
【0060】
<第5の実施形態>
次に、第5の実施形態について説明する。
第5の実施形態に係る情報処理装置の構成は、図1に示す第1の実施形態に係る情報処理装置の構成と同様である。
【0061】
図23は、本実施形態における処理の流れを示したフローチャートである。同図に示したとおり、CPU101は、先ず対象となる描画オブジェクトと重なる描画オブジェクトが存在するか否かを判断する(S2301)。ここで、重なる描画オブジェクトが存在すると判断されれば、CPU101は、重なる描画オブジェクトを対象となる描画オブジェクトと一体の描画オブジェクトとみなすフラグを立てる(S2302)。すなわち、SVGの記述上は異なる描画オブジェクトである場合でも、重なり合っていれば一つの描画オブジェクトとみなして以降の処理を行う。S2301において、重なる描画オブジェクトが存在しないと判断された場合には、S2303の処理へ移行する。
【0062】
以下、S2303〜S2306の処理は、図21のS2101〜S2104の処理と同様である。
【0063】
図24は、S2302およびS2303の処理を行った際の描画オブジェクトの変化を示した図である。S2302の処理を行う前は、図24(a)に示したように2個の矩形であり、一部が重なり合っている。これらの矩形が同一色である場合、S2302およびS2303の処理を行うことにより、図24(b)に示したように一つのパスデータに変換される。
【0064】
このように処理を行うことにより、描画オブジェクトの個数を減らすことができる。また、多くの場合、このような処理を行うことによりパスデータを構成する頂点の合計個数を減らすことができる。頂点数を減らすことによりメモリ使用量を削減できる他、S2304で座標変換を行う個数も削減できることから、より高速な処理が可能となる。
【0065】
上述した本発明の実施形態を構成する各手段の機能及び各ステップは、コンピュータのRAMやROM等に記憶されたプログラムが動作することによって実現できる。このプログラム及び前記プログラムを記録したコンピュータ読み取り可能な記録媒体は本発明に含まれる。
【特許請求の範囲】
【請求項1】
ベクトル形式の図形データから、該図形データに基づいて描画されるべき第1の画像の境界上の第1の座標データ群を生成する第1の生成手段と、
前記第1の画像を変形して第2の画像を得るための図形変換ルールを前記第1の座標データ群に適用することにより、第2の座標データ群を生成する第2の生成手段と、
前記第2の座標データ群に基づいて、前記第2の画像をビットマップ形式で描画する描画手段と、
を有することを特徴とする情報処理装置。
【請求項2】
ベクトル形式の図形データから、該図形データに基づいて描画されるべき第1の画像の境界上の第1の座標データ群を生成する第1の生成手段と、
前記第1の画像を変形して第2の画像を得るための図形変換ルールを前記第1の座標データ群に適用することにより、第2の座標データ群を生成する第2の生成手段と、
前記第2の座標データ群に基づいて、前記第2の画像を描画するための前記ベクトル形式の第2の図形データ群を出力する出力手段と、
を有することを特徴とする情報処理装置。
【請求項3】
前記第1の生成手段は、前記ベクトル形式の図形データの属性値に基づいて、前記第1の座標データ群を生成することを特徴とする請求項1又は2に記載の情報処理装置。
【請求項4】
前記第1の生成手段は、前記第1の座標データ群の座標値で囲まれる領域が単一色になるように前記第1の座標データ群を生成することを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。
【請求項5】
前記図形変換ルールは、前記ベクトル形式の図形データを三次元座標変換することを特徴とする請求項1乃至4のいずれか1項に記載の情報処理装置。
【請求項6】
前記第1の生成手段は、所定の許容誤差ルールに基づいて、前記図形の境界上の第1の座標データ群を生成することを特徴とする請求項1乃至5のいずれか1項に記載の情報処理装置。
【請求項7】
前記第1の生成手段は、前記第1の座標データ群をパスデータとして生成することを特徴とする請求項1乃至6のいずれか1項に記載の情報処理装置。
【請求項8】
前記ベクトル形式の図形データは、経路情報と線幅情報で定義される線データであって、前記第1の生成手段は、前記経路情報と線幅情報に基づいて前記第1の座標データを生成することを特徴とする請求項1乃至7のいずれか1項に記載の情報処理装置。
【請求項9】
前記図形データに基づき、前記描画手段により第2の画像をアニメーションにより描画するか否かを判定する判定手段を更に有し、
前記判定手段によりアニメーションによる描画をすると判定された場合、前記第1の生成手段は、前記図形データのストロークについては第1の座標データ群を生成しないことを特徴とする請求項1に記載の情報処理装置。
【請求項10】
ベクトル形式の図形データから、該図形データに基づいて描画されるべき第1の画像の境界上の第1の座標データ群を生成する第1の生成ステップと、
前記第1の画像を変形して第2の画像を得るための図形変換ルールを前記第1の座標データ群に適用することにより、第2の座標データ群を生成する第2の生成ステップと、
前記第2の座標データ群に基づいて、前記第2の画像をビットマップ形式で描画する描画ステップと、
を有することを特徴とする情報処理方法。
【請求項11】
コンピュータを請求項1又は2に記載した各手段として機能させるためのプログラム。
【請求項1】
ベクトル形式の図形データから、該図形データに基づいて描画されるべき第1の画像の境界上の第1の座標データ群を生成する第1の生成手段と、
前記第1の画像を変形して第2の画像を得るための図形変換ルールを前記第1の座標データ群に適用することにより、第2の座標データ群を生成する第2の生成手段と、
前記第2の座標データ群に基づいて、前記第2の画像をビットマップ形式で描画する描画手段と、
を有することを特徴とする情報処理装置。
【請求項2】
ベクトル形式の図形データから、該図形データに基づいて描画されるべき第1の画像の境界上の第1の座標データ群を生成する第1の生成手段と、
前記第1の画像を変形して第2の画像を得るための図形変換ルールを前記第1の座標データ群に適用することにより、第2の座標データ群を生成する第2の生成手段と、
前記第2の座標データ群に基づいて、前記第2の画像を描画するための前記ベクトル形式の第2の図形データ群を出力する出力手段と、
を有することを特徴とする情報処理装置。
【請求項3】
前記第1の生成手段は、前記ベクトル形式の図形データの属性値に基づいて、前記第1の座標データ群を生成することを特徴とする請求項1又は2に記載の情報処理装置。
【請求項4】
前記第1の生成手段は、前記第1の座標データ群の座標値で囲まれる領域が単一色になるように前記第1の座標データ群を生成することを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。
【請求項5】
前記図形変換ルールは、前記ベクトル形式の図形データを三次元座標変換することを特徴とする請求項1乃至4のいずれか1項に記載の情報処理装置。
【請求項6】
前記第1の生成手段は、所定の許容誤差ルールに基づいて、前記図形の境界上の第1の座標データ群を生成することを特徴とする請求項1乃至5のいずれか1項に記載の情報処理装置。
【請求項7】
前記第1の生成手段は、前記第1の座標データ群をパスデータとして生成することを特徴とする請求項1乃至6のいずれか1項に記載の情報処理装置。
【請求項8】
前記ベクトル形式の図形データは、経路情報と線幅情報で定義される線データであって、前記第1の生成手段は、前記経路情報と線幅情報に基づいて前記第1の座標データを生成することを特徴とする請求項1乃至7のいずれか1項に記載の情報処理装置。
【請求項9】
前記図形データに基づき、前記描画手段により第2の画像をアニメーションにより描画するか否かを判定する判定手段を更に有し、
前記判定手段によりアニメーションによる描画をすると判定された場合、前記第1の生成手段は、前記図形データのストロークについては第1の座標データ群を生成しないことを特徴とする請求項1に記載の情報処理装置。
【請求項10】
ベクトル形式の図形データから、該図形データに基づいて描画されるべき第1の画像の境界上の第1の座標データ群を生成する第1の生成ステップと、
前記第1の画像を変形して第2の画像を得るための図形変換ルールを前記第1の座標データ群に適用することにより、第2の座標データ群を生成する第2の生成ステップと、
前記第2の座標データ群に基づいて、前記第2の画像をビットマップ形式で描画する描画ステップと、
を有することを特徴とする情報処理方法。
【請求項11】
コンピュータを請求項1又は2に記載した各手段として機能させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【公開番号】特開2010−282611(P2010−282611A)
【公開日】平成22年12月16日(2010.12.16)
【国際特許分類】
【出願番号】特願2010−99038(P2010−99038)
【出願日】平成22年4月22日(2010.4.22)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成22年12月16日(2010.12.16)
【国際特許分類】
【出願日】平成22年4月22日(2010.4.22)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]