(57)【要約】【課題】ベクトル画像の描画を高速に行う。【解決手段】ベクトル画像（ＳＶＧデータ）を指定された出力サイズのビットマップデータに展開して出力する際に、ＳＶＧデータ展開部３０２で、ベクトル画像を指定された出力サイズの描画データに展開し、ビットマップデータ記憶判定部３０３で、所定の基準に応じて、展開された描画データをＳＶＧ展開ビットマップ記憶部３０４に圧縮して記憶する。そして、出力サイズとして縮小が指定された場合、データ展開切替部３０１より指示されたビットマップ縮小部３０５が、ＳＶＧ展開ビットマップ記憶部３０４に記憶された描画データを指定された出力サイズに変換して描画データとして出力する。【選択図】      図３
2004164208.tif 000002
【特許請求の範囲】
【請求項１】
ベクトル画像を指定された出力サイズの描画データに展開して出力する画像処理方法であって、
ベクトル画像を指定された出力サイズの描画データに展開する展開工程と、
所定の基準に応じて前記展開工程で展開された描画データを圧縮して記憶する記憶工程と、
前記出力サイズとして縮小が指定された場合に、前記記憶工程で記憶した描画データを指定された出力サイズに変換する変換工程とを有することを特徴とする画像処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ベクトル画像を指定された出力サイズの描画データに展開して出力することに関するものである。
【０００２】
【従来の技術】
従来のベクトル画像をビットマップデータのような描画データに展開する描画装置、例えば一般的な「ポストスクリプト」のようなページ記述言語（ＰＤＬ）で書かれたページコードデータを解釈し、高解像度で印刷するレーザープリンタなどでは高解像度で正確に印刷するのが目的であるため、出力指示の結果が、ごく小さく表示する場合であっても、記述されているベクトル画像を表すデータを出力サイズに合わせて計算し、ビットマップデータに展開して印字等の最終出力を行っている。
【０００３】
また、従来の画像処理装置（例えば、特許文献１参照。）のように、１ページ内の複数種類のオブジェクトをラスタライザーがビットマップデータに展開し、そのオブジェクトの種類に応じた圧縮方法に切り替えて圧縮記憶する装置が提案されている。ここで、切り替えるオブジェクトの種類とは、自然画のデータとか、テキストデータとか、ベクトル画像とかのデータ構造が異なるデータの種別である。
【０００４】
また、ベクトルフォントを取り扱うフォントラスタライザーでは、フォントを小さなサイズで出力するように指示された場合はビットマップフォントを使用し、また大きなサイズで出力するように指示された場合はベクトルフォントを使用するのが一般的である。但し、小さいサイズで使用されるビットマップフォントは、別のデータとして予め作成しておく必要がある。また、ベクトルフォントが、あるサイズでビットマップデータに展開された場合、展開されたビットマップデータを再利用するために、キャッシュメモリ等に記憶することは既知の技術である。
【０００５】
【特許文献１】
特開２００１−１６９１２０号公報
【発明が解決しようとする課題】
しかしながら、ベクトル画像のビットマップ展開には、それなりの計算時間がかかる。特に、狭い範囲内に複雑な曲線が多数存在する場合には、その計算量もばかにならない。一方、低解像度で出力する場合や小さなサイズで出力する場合には、その複雑な部分は出力結果に反映されず、人間が見落としてしまうような微妙な差でしかないこともあった。
【０００６】
また、一般的なベクトルフォントのラスタライザーで実現されているように、フォントのように書かれる形が決められているものであれば、予め小さなサイズのフォントを用意することで解決することも可能であるが、その形が不定のベクトル画像の場合、予め作成するのはメモリ容量等を考えても現実的でない。
【０００７】
更に、全てのベクトル画像を展開時に、キャッシュ等に記憶しておき、再利用する方法なら実施できるが、その場合、キャッシュの記憶容量をすぐに使い切ってしまう等の問題が考えられる。
【０００８】
また、例えば単純な正方形や円であれば、その都度、ビットマップ展開の計算を行ったとしても、それほどの計算量にはならない。
【０００９】
本発明は、上記課題を解決するためになされたもので、ベクトル画像の描画を高速に行うことを目的とする。
【００１０】
【課題を解決するための手段】
上記目的を達成するために、本発明は、ベクトル画像を指定された出力サイズの描画データに展開して出力する画像処理方法であって、ベクトル画像を指定された出力サイズの描画データに展開する展開工程と、所定の基準に応じて前記展開工程で展開された描画データを圧縮して記憶する記憶工程と、前記出力サイズとして縮小が指定された場合に、前記記憶工程で記憶した描画データを指定された出力サイズに変換する変換工程とを有することを特徴とする。
【００１１】
【発明の実施の形態】
以下、図面を参照しながら本発明に係る実施の形態を詳細に説明する。
【００１２】
図１は、本実施形態における携帯情報機器の利用形態を示す図である。図１において、１０１は携帯情報機器であり、カメラ部、液晶表示部、抵抗膜等で構成されている座標入力部、ＣＰＵ、ＲＯＭ、ＲＡＭ、記録メディアを差し込むためのスロット、他の情報機器と接続するためのＵＳＢ等のインターフェースで構成されている。また、カメラ部で撮影した画像を液晶表示部に表示し、その画像に付加するメモ情報等を座標入力部から入力された軌跡データによって作成する。ＲＯＭには、本実施形態を含む携帯情報機器の情報処理手順が記憶されている。ＲＡＭには、外部機器から送られて来たＳＶＧ（Ｓｃａｌａｂｌｅ  Ｖｅｃｔｏｒ  Ｇｒａｐｈｉｃｓ）等のスケーラブルなグラフィックデータやカメラ部で撮影した自然画の画像データ、入力された軌跡データ等が記憶されている。
【００１３】
入力された手書き軌跡データは、認識されずにそのままの状態で画像のメモとして付加されたり、認識手段によってテキストデータとして付加されたりする。そのメモ情報が付加された画像データは、ユーザの指示操作によってＵＳＢインターフェースを通ってパーソナルコンピュータへ送られる。又はユーザメディアを介して画像データはパーソナルコンピュータやプリンタに送られる。
【００１４】
１０２は一般的な液晶表示部であり、液晶表示画面上に座標入力を行う一般的な透明抵抗膜デジタイザーが取り付けられている。そして、その液晶表示画面上を１０３のペンで押圧することにより、手書きの軌跡を入力することができる。この液晶表示部１０２に、ＲＡＭに記憶されているＳＶＧグラフィックデータをビットマップ展開して表示する表示プログラムが携帯情報機器１０１内のＲＯＭに記憶されている。
【００１５】
１０３は一般的なペンであり、手書き軌跡情報や表示画面上のソフトボタン、ソフトキーボード等の入力に利用される。１０４は一般的なデジタルカメラ部であり、レンズ、ＣＣＤ等の撮像素子で構成されている。携帯情報機器１０１内のＣＰＵによって制御され、撮影された画像データはＣＰＵに接続されているＲＡＭに記憶される。このデジタルカメラ部で撮影した画像を電子メイルに添付して送ることができる。
【００１６】
１０５は一般的なパーソナルコンピュータであり、携帯情報機器１０１と一般的なＵＳＢやローカルネットワーク、或いは公衆回線で接続されるか、サーバーコンピュータを介して接続可能であり、携帯情報機器１０１に対してＳＶＧ等のスケーラブルなグラフィックデータ等を送信する。
【００１７】
１０６はＳＶＧ等のスケーラブルなグラフィックデータを用いて作成した書類ファイルを概念化した物であり、パーソナルコンピュータ１０５内のプログラムによって一般的なワープロ書類やプレゼンテーション書類等からコンバートすることによって作成される。
【００１８】
図２は、図１に示す携帯情報機器の概略構成を示すブロック図である。図２において、２０１は位置座標入力部であり、２０２の画像表示部の上面に配置された抵抗膜デジタイザーで構成されている。この抵抗膜デジタイザーは制御回路を介してシステムバス２１１経由で２０５のＣＰＵに接続されている。また、ペン１０３を使って画面上を押圧することにより、押圧した位置の位置座標データが２０５のＣＰＵによって読み取られるわけである。読み取られた位置座標データによって２０７のＲＯＭ内の処理手順に従ってＳＶＧグラフィックデータの表示処理を行う。
【００１９】
２０２は一般的な画像表示部であり、液晶表示素子、液晶制御回路、表示メモリから構成され、２１１のシステムバス経由で２０５のＣＰＵに接続している。そして、２０５のＣＰＵからの指示で、画像データや手書き軌跡データが画面上に表示される。
【００２０】
２０３は一般的なキーボードであり、キーを押すことにより、英数字等のキーコードが入力され、２０５のＣＰＵがキーコードを読み取る。
【００２１】
２０４は一般的なデジタルカメラ部１０４のＣＣＤ等の撮像素子であり、このカメラ部１０４はＣＣＤ２０４の他に、不図示のレンズ、ＣＣＤ制御回路で構成されている。このＣＣＤ制御回路は２１１のシステムバス経由で２０５のＣＰＵに接続している。２０５のＣＰＵによってＣＣＤ２０４は制御され、撮影された画像は２０６のＲＡＭに記憶される。
【００２２】
２０５は一般的なＣＰＵであり、システムバス２１１を介して２０６のＲＡＭ、２０７のＲＯＭ、位置座標入力部２０１、画像表示部２０２と接続しており、２０７のＲＯＭに記憶されているプログラムによって処理動作を行う。
【００２３】
２０６は一般的なＲＡＭであり、ＳＶＧ画像データの保存やプログラムの作業領域や展開したビットマップデータの一時記憶領域として使われる。
【００２４】
２０７は一般的なＲＯＭであり、本実施形態のＳＶＧグラフィックデータ表示制御プログラム等が記憶されている。また、ＣＣＤ制御回路のプログラム、画像表示部２０２の制御プログラム、手書き軌跡の認識プログラム、手書き軌跡形状の辞書データ等の処理手順も記憶されている。
【００２５】
２０８はデジタルカメラ等で一般的なコンパクトフラッシュ（登録商標）カードのインターフェース部であり、差し込まれたコンパックトフラッシュカードへのデータ読み込み、書き込みを実現し、そのコンパックトフラッシュカードに画像データ等を記憶することができる。
【００２６】
２０９は一般的なＵＳＢインターフェース部であり、２０５のＣＰＵによって制御され、一般のパーソナルコンピュータと接続し、手書き軌跡データやＳＶＧ画像データ等のやり取りを行うことができる。
【００２７】
２１０は一般的な通信カードであり、内部にＰＨＳ回線への接続コントローラやアンテナを内蔵している。そして、通信カード２１０内のコントローラに規定のコマンドを渡すことにより、公衆回線等へ接続し、電子メールの送受信を実行できる。この通信カード２１０を、ローカルエリアネットワークカード等に変更すれば、ローカルエリアネットに対応することも可能である。尚、電子メールの送受信のプロトコル自体は、従来の方法と同一である。
【００２８】
２１１は一般的なシステムバスであり、ＣＰＵ２０５、ＲＡＭ２０６、ＲＯＭ２０７、その他のデバイス等とのデータやり取りを行う。
【００２９】
図３は、本実施形態における処理の流れを示す図である。図２に示したＲＡＭ２０６内に記憶されているＳＶＧ画像データファイルの画面への表示出力が指示されたときの処理を表す図であり、実際の処理手順は図２に示したＲＯＭ２０７内に記憶されている。尚、この表示出力指示は、ユーザが従来のファイルを指示する指示方式（画面上に表示されているファイルを表すアイコンをペンでダブルタップすることにより、そのファイルの内容が画面上に表示される指示動作）により行われる。出力表示のサイズの指定も一般的なズーム指定と同様に１００％表示とか２０％で表示とか指示されて行われる。
【００３０】
図３において、３０１はデータ展開切替部であり、ＳＶＧ画像データファイルと表示する出力サイズの指定数値データとを入力する。データ展開切替部３０１は出力サイズとして１００％等の大きなサイズが指定された場合は、そのＳＶＧ画像データファイルを３０２のＳＶＧデータ展開部に送出する。また出力サイズとして２０％等の小さなサイズが指定された場合は、データ内の表示オブジェクト単位でチェックを行う。そして、チェックする表示オブジェクトの展開ビットマップデータが、３０４のＳＶＧ展開ビットマップ記憶部に記憶されている場合は、そのオブジェクトデータの表示出力指示は、３０５のビットマップ縮小部に送られる。しかし、チェックする表示オブジェクトの展開ビットマップデータが、記憶されていない場合は、３０２のＳＶＧデータ展開部にそのオブジェクトの表示指示が送られる。
【００３１】
３０２はＳＶＧデータ展開部であり、送られて来るオブジェクト単位のベクターグラフィックデータのビットマップ展開を行うもので、従来からある、ベクトルフォントのラスタライザー等と同様な処理でベクターグラフィックデータからビットマップデータを作成する。作成されたビットマップデータは、画像表示部２０２に送られ、画面上に表示される。また、作成されたビットマップデータとオブジェクト単位のベクターグラフィックデータはビットマップデータ記憶判定部３０３に送られる。
【００３２】
３０３はビットマップデータ記憶判定であり、ＳＶＧデータ展開部３０２から送られて来るＳＶＧのベクターグラフィックデータの複雑度を判定し、ベクトル展開の計算時間が既定値以上かかると判定した場合、その展開ビットマップデータを３０４のＳＶＧ展開ビットマップ記憶部に送る。また、簡単なベクターグラフィックデータの場合は、記憶しないでそのまま終る。
【００３３】
３０４はＳＶＧ展開ビットマップ記憶部であり、ビットマップデータ記憶判定部３０３から送られて来るベクターグラフィックデータと展開ビットマップデータを記憶する。ここで、ベクターグラフィックデータと展開ビットマップデータとは対であり、展開ビットマップデータは縮小表示に使うので、正確さが失われても問題は無く、一般的なＪＰＥＧ圧縮で記憶しておく。データ展開切替部３０１が展開ビットマップデータを検索する場合は、同一のベクターグラフィックデータのオブジェクトが記憶されているかを検索することによって判るわけである。
【００３４】
３０５はビットマップ縮小部であり、ＳＶＧ展開ビットマップ記憶部３０４に記憶されている展開ビットマップデータを指定された大きさに縮小表示する。このビットマップデータの縮小処理自体は、従来から行われている方法で構わない。そして、縮小されたビットマップデータは画像表示部２０２に送られ、画面に表示される。
【００３５】
図４は、簡単なベクターグラフィックデータのオブジェクト例を示す図である。図４において、４０１は円のオブジェクト例、４０２は長方形のオブジェクト例である。
【００３６】
ベクターグラフィックデータの実際は、例えば図４に示す長方形４０２の場合には、以下に示すように記述される。
【００３７】
ｘ１  ｙ１  ｍｏｖｅｔｏ
ｘ２  ｙ１  ｌｉｎｅｔｏ
ｘ２  ｙ２  ｌｉｎｅｔｏ
ｘ３  ｙ２  ｌｉｎｅｔｏ
ｓｔｒｏｋｅ
ここで、ｘ，ｙには座標の数値が入り、その座標の数値に従って直線が引かれ、長方形が描画される。
【００３８】
また、図４に示す円４０１の場合には、以下に示すように円の中心座標、半径、その円弧の開始の角度、終了の角度、円弧のコマンド種別等で記述される。
【００３９】
ｘ５  ｙ５  ｒ  ａｎｇｌｅ１  ａｎｇｌｅ２  Ａｒｃ
ｓｔｒｏｋｅ
このコマンド種別は当然、座標点をつなぐ線を描画する：ｓｔｒｏｋｅの他に、指定された座標点を結ぶラインで囲まれた範囲を塗りつぶす：ｆｉｌｌがあり、その他として塗りつぶしパターンの設定コマンドと自然画のビットマップの描画コマンド等もあり、アニメーション用に描画タイミングの時間設定コマンド等もあるが、本実施形態には直接関係しないので、それらの説明は省略する。
【００４０】
図５は、複雑なベクターグラフィックデータのオブジェクト例を例す図である。図５において、５０１はシンボル１のオブジェクト例、５０２はシンボル２のオブジェクト例である。
【００４１】
ここで、本実施形態におけるＳＶＧデータの展開処理及びＳＶＧデータの展開切替処理について説明する。まず、図６を参照しながらＳＶＧデータの展開処理について説明する。この処理は、ＳＶＧデータ展開部３０２で実行される処理に相当するものである。尚、ＳＶＧデータのファイル自体は、一般的なパーソナルコンピュータ１０５から送られて来るか、ＲＯＭ２０７内に記憶されている別のアプリケーションによって作成されたものである。このＳＶＧデータファイルの作成処理自体は、本実施形態には直接関係しないので、説明は省略する。また、本実施形態では、ＳＶＧデータファイルは画面１ページ分のデータが複数のベクターグラフィックデータのオブジェクトで構成されているものである。例えば、図４は１ページ分の画面例であり、円のオブジェクトと長方形のオブジェクトが書かれている。
【００４２】
図６は、本実施形態におけるＳＶＧデータの展開処理を示すフローチャートである。まずステップＳ６０１において、ＳＶＧデータを展開する展開処理で使用する作業領域を初期化し、オブジェクト単位で、ベクターグラフィックデータを読み込む処理を行う。即ち、指定された、ＳＶＧデータファイルの１ファイルを先頭から順次読み込んで処理を行って行く訳である。図４に示した例では、まず円のオブジェクト４０１を読み込み、作業領域に記憶する。このオブジェクトの処理が終れば、次の長方形のオブジェクト４０２を読み込む訳である。
【００４３】
次に、ステップＳ６０２において、オブジェクトのビットマップ展開の処理を行う。例えば、図４に示した長方形４０２の場合、ベクターグラフィックデータは、
ｘ１  ｙ１  ｍｏｖｅｔｏ
ｘ２  ｙ１  ｌｉｎｅｔｏ
ｘ２  ｙ２  ｌｉｎｅｔｏ
ｘ１  ｙ２  ｌｉｎｅｔｏ
ｓｔｒｏｋｅ
であるので、まずＲＡＭ２０６上の仮想画面メモリ上のｘ１，ｙ１座標に相当するメモリ番地上からｘ２，ｙ１座標に相当するメモリ番地上まで直線になるようにメモリ上の領域にデータを書き込む。次に，ｘ２，ｙ１座標に相当するメモリ番地上から、ｘ２，ｙ２座標に相当するメモリ番地上まで直線になるようにメモリ上の領域にデータを書き込む。次に、ｘ２，ｙ２座標に相当するメモリ番地上から、ｘ１，ｙ２座標に相当するメモリ番地上まで直線になるようにメモリ上の領域にデータを書き込む。そして、ｘ１，ｙ２座標に相当するメモリ番地上から、ｘ１，ｙ１座標に相当するメモリ番地上まで直線になるようにメモリ上の領域にデータを書き込む。
【００４４】
これにより、ＲＡＭ２０６上の仮想画面メモリ上に長方形４０２が展開される。この処理は、従来のベクターグラフィックデータを取り扱えるＬＢＰ等で行われている処理と同様である。
【００４５】
次に、ステップＳ６０３において、オブジェクト内の基本図形データの個数が２個以下であるか否かをチェックする。これは、取り扱うオブジェクトが単純なオブジェクトか複雑なオブジェクトかの判断であり、図３に示したビットマップデータ記憶判定部３０３の処理に相当するものである。具体的には、読み込んだオブジェクトデータ内の基本図形の数をカウントして判断する。基本図形の単位は、図４に示した長方形、円などであり、オブジェクトが以下のデータであれば、
ｘ１  ｙ１  ｍｏｖｅｔｏ
ｘ２  ｙ１  ｌｉｎｅｔｏ
ｘ２  ｙ２  ｌｉｎｅｔｏ
ｘ１  ｙ２  ｌｉｎｅｔｏ
ｓｔｒｏｋｅ
ｘ２  ｙ１  ｒ  ａｎｇｌｅ１  ａｎｇｌｅ２  Ａｒｃ
ｓｔｒｏｋｅ
基本図形の数をカウントするタイミングは、
ｘ１  ｙ２  ｌｉｎｅｔｏ
ｓｔｒｏｋｅ
の所で図形の個数が１個カウントされ、次の、
ｘ２  ｙ１  ｒ  ａｎｇｌｅ１  ａｎｇｌｅ２  Ａｒｃ
ｓｔｒｏｋｅ
のところで、個数が１個カウントされて合計が２個となる。
【００４６】
この場合、２個以下であるので、ステップＳ６０６へ進む。また、読み込んだオブジェクトが図５に示す５０１のような場合、基本図形に分解すると、１３個の円と、１６本の直線で表されているので、基本図形の個数が２個以下でないとと判断し、ステップＳ６０４へ進む。
【００４７】
尚、本実施形態においては、オブジェクト内の基本図形の個数をカウントし、その数が２個以下であるか否かをチェックするようにしているが、最も基本的な座標点をセットするなどの１コマンドセットの数で複雑度を決定するようにしても良い。その場合、ライン設定のｘ２  ｙ１  ｌｉｎｅｔｏなどは複雑度０．２とし、円弧の描画設定コマンド、ｘ２  ｙ１  ｒ  ａｎｇｌｅ１  ａｎｇｌｅ２  Ａｒｃなどであれば、複雑度０．８とし、そのコマンドで実行される描画処理の実行時の計算時間を加味して複雑度を設定するようにしても良い。
【００４８】
また、複雑度の判定基準の閾値も、装置に実装されたＣＰＵの計算スピードに合わせて変更すべきである。更に、ＣＰＵの計算スピードが可変の機種の場合は、その変更に合わせて、閾値も変更するようにすべきである。
【００４９】
また、展開ビットマップ記憶領域の最大記憶容量にあわせて、閾値を変更しても良い。例えば、記憶容量が大きい場合は、閾値を低くし、展開ビットマップを記憶する機会を多くし、記憶容量が小さい場合は、閾値を高くして、展開ビットマップを記憶する機会を少なくするように閾値を変更する。
【００５０】
次に、ステップＳ６０４において、既に記憶されているオブジェクトであるかチェックする。ここでは、上述のステップＳ６０１で読み込んだオブジェクトが展開ビットマップ記憶領域に記憶されているか否かをチェックする。即ち、円と長方形を合成したようなオブジェクト（以下のデータ）が対象であれば、
ｘ１  ｙ１  ｍｏｖｅｔｏ
ｘ２  ｙ１  ｌｉｎｅｔｏ
ｘ２  ｙ２  ｌｉｎｅｔｏ
ｘ１  ｙ２  ｌｉｎｅｔｏ
ｓｔｒｏｋｅ
ｘ２  ｙ１  ｒ  ａｎｇｌｅ１  ａｎｇｌｅ２  Ａｒｃ
ｓｔｒｏｋｅ
上記のデータで、記憶領域内を検索すれば良い。そして、検索してあった場合は、記憶する必要は無いので、ステップＳ６０６へ進む。また、検索してなかった場合には、記憶するためにステップＳ６０５へ進み、展開ビットマップデータを圧縮して展開ビットマップ記憶領域に記憶する。この処理は、ステップＳ６０２で展開した仮想画面メモリ上のオブジェクト図形を外接矩形で切り出し、メモリ内のデータをそのまま圧縮バッファに読み込み、一般的なＪＰＥＧ圧縮等で圧縮し、展開ビットマップデータとそのベクターグラフィックデータをＲＡＭ２０６内の展開ビットマップ記憶領域に記憶する処理である。
【００５１】
ここで記憶したビットマップデータを使用するのは、後述する図７に示す処理の中で、本実施形態では５０％以下の出力サイズの時である。即ち、このビットマップを記憶する時に予め５０％のサイズに縮小してから記憶する処理にすれば、展開ビットマップ記憶領域の記憶サイズを小さくすることができる。
【００５２】
次に、ステップＳ６０６において、ファイル内に次のオブジェクトがあるか否かをチェックする。ここで、ファイル内に処理すべきオブジェクトがまだあればステップＳ６０１に戻り、次のオブジェクトの処理を行う。また、オブジェクトがなければステップＳ６０７へ進み、展開された全ビットマップデータを画面上に表示する。具体的には、上述のステップＳ６０２で展開した仮想画面メモリ上のオブジェクトの全ビットマップデータを実際の画像表示部２０２の画面メモリ上に転送し、携帯情報機器１０１の画面上に表示する。
【００５３】
そして、この処理で使用した作業領域等を開放し、ＳＶＧデータを読むためにオープンしたＳＶＧグラフィックデータファイル等をクローズ処理等してＳＶＧデータの展開処理を終了する。
【００５４】
次に、本実施形態におけるＳＶＧデータの展開切替処理について説明する。この処理は、図３に示したデータ展開切替部３０１及びビットマップ縮小部３０５に相当するものである。
【００５５】
図７は、ＳＶＧデータの展開切替処理を示すフローチャートである。ステップＳ７０１において、ＳＶＧデータの展開切替処理に使用する作業領域を初期化し、指定出力サイズをチェックする。ここで、指定サイズが大きい場合は無条件にオブジェクトデータのビットマップ展開を行うので、上述した図６に示すＳＶＧデータの展開処理へ進み、この処理を終了する。また、指定サイズが小さい場合は、オブジェクト単位で、このＳＶＧデータの展開方法を切り替える処理を行うためにステップＳ７０２へ進む。この切り替えの閾値を本実施形態では５０％としたが、当然表示するディスプレイの解像度が高解像度であれば、４０％等低い値とした方が良いし、もしディスプレイの解像度が低いか、それほど、出力品位を望んでいなければ、６０％等の高い値に変えても良い。また、切り替え処理をしないと決定した場合は、上述した図６に示した通常のビットマップ展開処理を行う。
【００５６】
ステップＳ７０２において、ベクターグラフィックデータファイルをオブジェクト単位で読み込む。この処理自体は、図６に示したステップＳ６０１の処理と同様な処理なので、説明は省略する。
【００５７】
次に、ステップＳ７０３において、読み込んだオブジェクトがＲＡＭ２０６内の展開ビットマップ記憶領域に記憶されているか否かをチェックする。ここで、記憶されているオブジェクトの場合はステップＳ７０４へ進み、記憶されていないオブジェクトの場合はステップＳ７０５へ進む。この判定処理自体はステップＳ６０４と同じ処理である。この判定により、記憶されていないオブジェクトは、通常のベクターグラフィックデータファイルからのビットマップ展開を行い、記憶されているオブジェクトの場合は、記憶されているビットマップデータを使用して表示を行う。
【００５８】
即ち、ステップＳ７０４において、指定出力サイズに記憶ビットマップを変換する処理を行う。即ち、図６に示したステップＳ６０５において、ＲＡＭ２０６内の展開ビットマップ記憶領域に記憶した展開ビットマップデータのＪＰＥＧ圧縮されているデータを元に戻し、指定サイズが５０％であれば、１画素づつデータを間引きしながら、変換することにより、５０％のサイズに縮小したビットマップデータを作成する。この縮小処理に関しては従来からのアルゴリズムを適応することにより実施する。
【００５９】
また、ステップＳ７０５では、オブジェクトのビットマップ展開処理を行う。この処理は、図６に示したステップＳ６０２での処理と同じなので、その説明は省略する。ここで、指定されたサイズが５０％であれば、５０％のサイズで仮想画面メモリ上にビットマップ展開する。
【００６０】
次に、ステップＳ７０６において、読み込んだ、ベクターグラフィックデータファイル内に次のオブジェクトがあるか否かをチェックする。次のオブジェクトがある場合はステップＳ７０２に戻り、そのオブジェクトを読み込み、上述した処理を繰り返す。また、次のオブジェクトが無ければ全てのオブジェクトを処理したので、ステップＳ７０７へ進む。
【００６１】
このステップＳ７０７において、展開された全ビットマップデータを画面上に表示する。具体的には、ステップＳ７０５で展開されたビットマップデータと、ステップＳ７０４で縮小展開されたビットマップデータの全てを実際の画像表示部２０２の画面メモリ上に転送し、携帯情報機器１０１の画面上に表示する。
【００６２】
そして、この処理で使用した作業領域等を開放し、ＳＶＧデータを読むためにオープンしたＳＶＧグラフィックデータファイル等をクローズ処理等してＳＶＧデータの展開切替処理を終了する。
【００６３】
以上説明したように、ＳＶＧグラフィックデータを取り扱うアプリケーションが搭載された携帯情報端末１０１の画像表示部に対して、大きく表示したい場合、ベクトル画像データを正確に計算し、ビットマップ展開することで正確な画像を表示し、そのとき、複雑なベクトル画像データであれば、そのビットマップを記憶しておくことにより、次の機会に、例えば画像一覧表示などの小さな表示を行うときに、その記憶していた画像から縮小変換表示することで複雑なベクトル画像からのビットマップ展開計算処理時間をカットすることが実現でき、高速な画像一覧表示を実現できる。
【００６４】
尚、本実施形態では、静止画を例に説明したが、本発明はこれだけに限らず、ベクトル画像データを動かして表示するアニメーション表示用アプリケーションプログラム等にも利用できるのはいうまでも無い。
【００６５】
［変形例］
前述した実施形態では、ＳＶＧ展開ビットマップ記憶判定部３０３において、ベクターグラフィックデータの複雑度を判定することにより、展開ビットマップデータを記憶するか否かを判定していた。しかし、ベクターグラフィックデータの展開処理時間は、ＣＰＵやシステム設計等が同一の時は変わらないが、現在のパーソナルコンピュータのように、後からＣＰＵなどの性能が２倍に変わったりすれば、当然展開処理時間も変動する。変動条件が単純であれば、係数を掛けることにより計算も可能であるが、展開処理時間自体は、複雑であるし、システムの性能の変動も、ある計算は、早くなるが、異なる計算は変わらない等の状況もある。
【００６６】
そこで、変形例では、ＳＶＧデータ展開処理時に展開処理時間を計測する手段と、ビットマップ展開処理時間とビットマップ縮小処理時間を比較手段を設けることにより、実際のＳＶＧデータ展開処理時間の判定に利用する。これにより、携帯情報機器に搭載されているＣＰＵの変更等により計算能力がアップしても、その変動に対処できるシステムを実現できる。
【００６７】
図８は、変形例における処理の流れを示す図である。図８に示すように、図３に示したビットマップデータ記憶判定部３０３を８０２の展開時間縮小時間比較部に変更し、新たに８０１の展開時間計測部を追加したものである。図３と同一番号のものは同一なので、その説明は省略する。
【００６８】
図８において、８０１は展開時間計測部であり、ベクターグラフィックデータのビットマップ展開処理の実処理時間を計測する処理である。この変形例では、オブジェクト単位のベクターグラフィックデータ展開処理を開始する時のリアルタイムクロックの時間を記憶し、展開処理終了時にまた、リアルタイムクロックの時間を計測し、先に記憶しておいた時間との差分により、処理時間を計測する処理である。
【００６９】
また、８０２は展開時間縮小時間比較部であり、ベクターグラフィックデータのビットマップ展開処理時間と、展開したビットマップを縮小変換する時の処理時間とを比較し、そのビットマップを記憶するか、記憶しないかを判断する処理である。このビットマップ展開処理時間は展開時間計測部８０１で計測される。また、ビットマップの縮小変換時間は、一度縮小変換処理が行われた時に、処理時間を計測し記憶しておくことにより、ビットマップの大きさの係数を計測した処理時間に掛けることによって求めることができる。
【００７０】
次に、変形例におけるＳＶＧデータの展開処理及び予想ビットマップ変換時間計算処理について説明する。
【００７１】
図９は、変形例におけるＳＶＧデータの展開処理を示すフローチャートである。尚、図６に示した処理ステップと同一の処理ステップには同一の番号を付し、その説明は省略する。また、ＳＶＧデータの展開切替処理は図７に示した処理と同一であるので、その説明は省略する。
【００７２】
まず、ステップＳ６０１において、ベクターグラフィックデータの展開処理を開始し、オブジェクト単位で、ベクターグラフィックデータを読み込む。これは、図６に示した処理と同一なので、その説明は省略する。
【００７３】
次に、ステップＳ９０１において、ビットマップ展開処理時間の計測を開始する。具体的には、図２に示したシステムバス２１１に一般的な時計チップを接続し、ＣＰＵ２０５によって時刻の設定、読み出しを行えるようにする。そして、対象オブジェクトのベクターグラフィックデータのビットマップ展開処理開始時にこの時計チップの時間を読み込み記憶しておく。
【００７４】
次に、ステップＳ６０２において、オブジェクトのビットマップ展開の処理を行う。これは、図６に示した処理と同一なので、その説明は省略する。変形例では、例えば図５に示したシンボル５０２のような図形のビットマップ展開処理に３秒かかるとする。このビットマップ展開処理が終了すると、ステップＳ９０２へ進み、ビットマップ展開処理時間の計測を停止する。ここで、ＣＰＵ２０５が時計チップの時間を読み出し、ステップＳ９０１で記憶した時間との差分により、経過時間を求める。上述のステップＳ６０２での処理が、例えば３秒かかっていれば、ここで経過時間として３秒が求められる。
【００７５】
ここで、図１に示した携帯情報端末１０１がバッテリー駆動時とＡＣ駆動時とでは、ＣＰＵのスピードが２倍変わる場合を例に説明する。例えば、ＡＣ駆動時はＣＰＵ速度が２倍速で、あるオブジェクトの展開処理経過時間が４秒だとすると、バッテリー駆動時はＣＰＵ速度が１倍速であるオブジェクトの展開処理経過時間は８秒になる。
【００７６】
このように、上述したステップＳ９０１，Ｓ９０２の処理により、図８に示す展開時間計測部８０１を実現することができる。
【００７７】
次に、ステップＳ９０３において、ステップＳ９０２で計測した展開処理経過時間とステップＳ６０２で展開したビットマップの表示サイズ縮小処理時間とを比較する。ここで、展開処理時間が縮小処理時間より短い場合は、ビットマップデータを記憶しないので、ステップＳ６０６へ進む。しかし、展開処理時間より縮小処理時間の方が短い場合は、ビットマップデータを記憶するためにステップＳ６０４へ進む。尚、ビットマップ展開処理時間はステップＳ９０１〜Ｓ９０２で測定した時間であり、ビットマップ縮小処理時間は、前回の縮小処理時に処理時間を計測しておき、その処理時間を利用している。実際には、ビットマップの大きさによっては処理時間が若干変わるが、その差は無視しても構わない程差である。大きな差があるシステムでは、サイズによって係数を掛けることによって処理時間を求めるようにすれば良い。
【００７８】
このビットマップ縮小処理時間は、当然そのシステムのＣＰＵが可変クロックの場合は、影響を受けるので、その場合の処理について説明する。尚、ＣＰＵのクロックが動的に変わらないものでは、この処理は不要である。
【００７９】
図１０は、予想ビットマップ変換時間計算処理を示すフローチャートである。まず、ステップＳ１００１において、ビットマップ変換時間計算処理で使用する作業領域を初期化し、記憶しておいた前回のビットマップ縮小処理時間とその時のＣＰＵクロック情報とその時のビットマップサイズ情報を読み出す。ここで、ＣＰＵクロックが可変の場合、ステップＳ７０４において指定出力サイズに記憶ビットマップを変換する時に、そのビットマップ縮小処理時間とその時のＣＰＵクロック情報とその時のビットマップサイズ情報とをＲＡＭ２０６の特定領域に記憶してあるので、その特定領域に記憶してあるデータを読み出す。
【００８０】
次に、ステップＳ１００２において、現在のＣＰＵクロックでのビットマップ縮小処理時間に変換する処理を行う。例えば、ステップＳ１００１で読み出したビットマップ縮小処理時間が１００ｍｓで、ＣＰＵクロック情報が３３ＭＨｚであり、現在のＣＰＵクロックが６６ＭＨｚならＣＰＵクロックが２倍であるので、理想的な場合であれば、処理時間は半分の５０ｍｓが予想されるので５０ｍｓとする。つまり、記憶処理時間×記憶クロック÷現在クロック＝予想処理時間である。
【００８１】
次に、ステップＳ１００３において、現在のサイズでのビットマップ縮小処理時間に変換する処理を行う。ステップＳ１００１で読み出したビットマップのサイズと現在のビットマップサイズとからビットマップ縮小処理時間を補正する。そして、ステップＳ１００２で求めた、
予想処理時間×（（現在サイズ÷記憶サイズ））＝処理時間
とする。これは、例えば５０ｍｓ×（（１００ＫＢ÷５０ＫＢ））＝１００ｍｓになる。このように、可変クロックでの予想ビットマップ変換時間を求めることができる。そして、作業領域等を開放し、この処理を終了する。
【００８２】
図９に戻り、ステップＳ６０４からステップＳ６０７までの処理は、前述した図６に示した処理と同一である。
【００８３】
このように、展開時間計測部と展開時間縮小時間比較部とを設けることにより、あるオブジェクトの展開処理時間が変動した場合に、その変動に応じて、展開ビットマップを記憶するか記憶しないかを判断するＳＶＧ表示アプリケーションを実現できる。
【００８４】
以上、ベクターグラフィックデータの最初の展開表示時に、展開ビットマップデータを記憶する処理を説明してきたが、ベクターグラフィックデータを作成した時点での展開ビットマップデータ作成時に記憶する構成でも構わない。また、外部のパーソナルコンピュータ等で作成されて、ベクターグラフィックデータが送られて来る場合においては、その受信時に、表示は行わずに仮想画面のみに、ベクターグラフィックデータの展開処理を行い、展開ビットマップデータを記憶するようにしても良い。
【００８５】
また、記憶していない、展開ビットマップデータは無条件に記憶するようにしたが、当然展開ビットマップデータの記憶するエリアにも限界があるので、限界までは無条件に記憶し、限界まで記憶した後では以下のような処理を行うことも可能である。
【００８６】
図７に示したステップＳ７０４において、使用された展開ビットマップには、使用回数を記憶する領域を設け、一番使われていない展開ビットマップから消去して新たな展開ビットマップを記憶するエリアを確保し、良く使われる展開ビットマップを記憶するようにした方が良いのは言うまでもない。
【００８７】
この構成により、良く使われるシンボルや、会社のロゴデザイン等は、ビットマップとして記憶されているので、素早く表示できる。
【００８８】
また、１つのＳＶＧデータファイルの中に複数のオブジェクトが存在する場合を例に説明したが、携帯情報端末１０１に搭載されるアプリケーションの仕様によっては、１ＳＶＧデータファイル＝１オブジェクトして取り扱うようにしても良い。
【００８９】
以上説明したように、実施形態及びその変形例によれば、ベクトル画像データをビットマップ展開する時にベクトル画像データの複雑度に応じてビットマップデータを記憶するか否かを判定し、展開ビットマップデータを記憶し、次の機会に記憶されたオブジェクトの低解像度の出力が指示された場合に、記憶しておいたオブジェクトのビットマップデータの出力サイズを変換することで、ベクトル画像データの低解像度への再ビットマップ展開計算を行わずに、オブジェクトの低解像度の高速出力処理を実現することができる。
【００９０】
また、ベクトル画像データのビットマップ展開計算時間を計測し、計測した計算時間と展開したビットマップデータの出力サイズ予測変換時間を比較し、ビットマップ展開したビットマップデータを記憶するか否かを判定することにより、ＣＰＵ等の変更等で展開計算時間が変動した場合、それに合わせた処理が行える画像処理装置を実現できる。
【００９１】
これにより、ＣＰＵのスピードがパーソナルコンピュータよりも遅い携帯情報端末でも、ベクトル画像データの高速な表示を低解像度の場合は行える画像処理装置を実現できる。
【００９２】
尚、本発明は複数の機器（例えば、ホストコンピュータ，インターフェース機器，リーダ，プリンタなど）から構成されるシステムに適用しても、１つの機器からなる装置（例えば、複写機，ファクシミリ装置など）に適用しても良い。
【００９３】
また、本発明の目的は前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（ＣＰＵ若しくはＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【００９４】
この場合、記録媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【００９５】
このプログラムコードを供給するための記録媒体としては、例えばフロッピー（登録商標）ディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【００９６】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００９７】
更に、記録媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００９８】
【発明の効果】
以上説明したように、本発明によれば、ベクトル画像の描画を高速に行うことができる。
【図面の簡単な説明】
【図１】本実施形態における携帯情報機器の利用形態を示す図である。
【図２】図１に示す携帯情報機器の概略構成を示すブロック図である。
【図３】本実施形態における処理の流れを示す図である。
【図４】簡単なベクターグラフィックデータのオブジェクト例を示す図である。
【図５】複雑なベクターグラフィックデータのオブジェクト例を例す図である。
【図６】本実施形態におけるＳＶＧデータの展開処理を示すフローチャートである。
【図７】ＳＶＧデータの展開切替処理を示すフローチャートである。
【図８】変形例における処理の流れを示す図である。
【図９】変形例におけるＳＶＧデータの展開処理を示すフローチャートである。
【図１０】予想ビットマップ変換時間計算処理を示すフローチャートである。
【符号の説明】
１０１  携帯情報端末
１０２  液晶表示部
１０３  ペン
１０４  デジタルカメラ部
１０５  パーソナルコンピュータ
１０６  ＳＶＧ書類
２０１  位置座標入力部
２０２  画像表示部
２０３  キーボード
２０４  ＣＣＤ
２０５  ＣＰＵ
２０６  ＲＡＭ
２０７  ＲＯＭ
２０８  画像メディアインターフェース
２０９  ＵＳＢインターフェース
２１０  通信カード
２１１  システムバス
３０１  データ展開切替部
３０２  ＳＶＧデータ展開部
３０３  ビットマップデータ記憶判定部
３０４  ＳＶＧ展開ビットマップ記憶部
３０５  ビットマップ縮小部
【図１】
2004164208.tif 000003
【図２】
2004164208.tif 000004
【図３】
2004164208.tif 000005
【図４】
2004164208.tif 000006
【図５】
2004164208.tif 000007
【図６】
2004164208.tif 000008
【図７】
2004164208.tif 000009
【図８】
2004164208.tif 000010
【図９】
2004164208.tif 000011
【図１０】
2004164208.tif 000012