JP2004164208A - 画像処理方法 - Google Patents

画像処理方法 Download PDF

Info

Publication number
JP2004164208A
JP2004164208A JP2002328519A JP2002328519A JP2004164208A JP 2004164208 A JP2004164208 A JP 2004164208A JP 2002328519 A JP2002328519 A JP 2002328519A JP 2002328519 A JP2002328519 A JP 2002328519A JP 2004164208 A JP2004164208 A JP 2004164208A
Authority
JP
Japan
Prior art keywords
data
bitmap
processing
svg
time
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2002328519A
Other languages
English (en)
Other versions
JP2004164208A5 (ja
Inventor
Tsuneichi Arai
常一 新井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2002328519A priority Critical patent/JP2004164208A/ja
Priority to US10/703,791 priority patent/US20040095589A1/en
Publication of JP2004164208A publication Critical patent/JP2004164208A/ja
Publication of JP2004164208A5 publication Critical patent/JP2004164208A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Processing Or Creating Images (AREA)

Abstract

【課題】ベクトル画像の描画を高速に行う。
【解決手段】ベクトル画像(SVGデータ)を指定された出力サイズのビットマップデータに展開して出力する際に、SVGデータ展開部302で、ベクトル画像を指定された出力サイズの描画データに展開し、ビットマップデータ記憶判定部303で、所定の基準に応じて、展開された描画データをSVG展開ビットマップ記憶部304に圧縮して記憶する。そして、出力サイズとして縮小が指定された場合、データ展開切替部301より指示されたビットマップ縮小部305が、SVG展開ビットマップ記憶部304に記憶された描画データを指定された出力サイズに変換して描画データとして出力する。
【選択図】 図3

Description

【0001】
【発明の属する技術分野】
本発明は、ベクトル画像を指定された出力サイズの描画データに展開して出力することに関するものである。
【0002】
【従来の技術】
従来のベクトル画像をビットマップデータのような描画データに展開する描画装置、例えば一般的な「ポストスクリプト」のようなページ記述言語(PDL)で書かれたページコードデータを解釈し、高解像度で印刷するレーザープリンタなどでは高解像度で正確に印刷するのが目的であるため、出力指示の結果が、ごく小さく表示する場合であっても、記述されているベクトル画像を表すデータを出力サイズに合わせて計算し、ビットマップデータに展開して印字等の最終出力を行っている。
【0003】
また、従来の画像処理装置(例えば、特許文献1参照。)のように、1ページ内の複数種類のオブジェクトをラスタライザーがビットマップデータに展開し、そのオブジェクトの種類に応じた圧縮方法に切り替えて圧縮記憶する装置が提案されている。ここで、切り替えるオブジェクトの種類とは、自然画のデータとか、テキストデータとか、ベクトル画像とかのデータ構造が異なるデータの種別である。
【0004】
また、ベクトルフォントを取り扱うフォントラスタライザーでは、フォントを小さなサイズで出力するように指示された場合はビットマップフォントを使用し、また大きなサイズで出力するように指示された場合はベクトルフォントを使用するのが一般的である。但し、小さいサイズで使用されるビットマップフォントは、別のデータとして予め作成しておく必要がある。また、ベクトルフォントが、あるサイズでビットマップデータに展開された場合、展開されたビットマップデータを再利用するために、キャッシュメモリ等に記憶することは既知の技術である。
【0005】
【特許文献1】
特開2001−169120号公報
【発明が解決しようとする課題】
しかしながら、ベクトル画像のビットマップ展開には、それなりの計算時間がかかる。特に、狭い範囲内に複雑な曲線が多数存在する場合には、その計算量もばかにならない。一方、低解像度で出力する場合や小さなサイズで出力する場合には、その複雑な部分は出力結果に反映されず、人間が見落としてしまうような微妙な差でしかないこともあった。
【0006】
また、一般的なベクトルフォントのラスタライザーで実現されているように、フォントのように書かれる形が決められているものであれば、予め小さなサイズのフォントを用意することで解決することも可能であるが、その形が不定のベクトル画像の場合、予め作成するのはメモリ容量等を考えても現実的でない。
【0007】
更に、全てのベクトル画像を展開時に、キャッシュ等に記憶しておき、再利用する方法なら実施できるが、その場合、キャッシュの記憶容量をすぐに使い切ってしまう等の問題が考えられる。
【0008】
また、例えば単純な正方形や円であれば、その都度、ビットマップ展開の計算を行ったとしても、それほどの計算量にはならない。
【0009】
本発明は、上記課題を解決するためになされたもので、ベクトル画像の描画を高速に行うことを目的とする。
【0010】
【課題を解決するための手段】
上記目的を達成するために、本発明は、ベクトル画像を指定された出力サイズの描画データに展開して出力する画像処理方法であって、ベクトル画像を指定された出力サイズの描画データに展開する展開工程と、所定の基準に応じて前記展開工程で展開された描画データを圧縮して記憶する記憶工程と、前記出力サイズとして縮小が指定された場合に、前記記憶工程で記憶した描画データを指定された出力サイズに変換する変換工程とを有することを特徴とする。
【0011】
【発明の実施の形態】
以下、図面を参照しながら本発明に係る実施の形態を詳細に説明する。
【0012】
図1は、本実施形態における携帯情報機器の利用形態を示す図である。図1において、101は携帯情報機器であり、カメラ部、液晶表示部、抵抗膜等で構成されている座標入力部、CPU、ROM、RAM、記録メディアを差し込むためのスロット、他の情報機器と接続するためのUSB等のインターフェースで構成されている。また、カメラ部で撮影した画像を液晶表示部に表示し、その画像に付加するメモ情報等を座標入力部から入力された軌跡データによって作成する。ROMには、本実施形態を含む携帯情報機器の情報処理手順が記憶されている。RAMには、外部機器から送られて来たSVG(Scalable Vector Graphics)等のスケーラブルなグラフィックデータやカメラ部で撮影した自然画の画像データ、入力された軌跡データ等が記憶されている。
【0013】
入力された手書き軌跡データは、認識されずにそのままの状態で画像のメモとして付加されたり、認識手段によってテキストデータとして付加されたりする。そのメモ情報が付加された画像データは、ユーザの指示操作によってUSBインターフェースを通ってパーソナルコンピュータへ送られる。又はユーザメディアを介して画像データはパーソナルコンピュータやプリンタに送られる。
【0014】
102は一般的な液晶表示部であり、液晶表示画面上に座標入力を行う一般的な透明抵抗膜デジタイザーが取り付けられている。そして、その液晶表示画面上を103のペンで押圧することにより、手書きの軌跡を入力することができる。この液晶表示部102に、RAMに記憶されているSVGグラフィックデータをビットマップ展開して表示する表示プログラムが携帯情報機器101内のROMに記憶されている。
【0015】
103は一般的なペンであり、手書き軌跡情報や表示画面上のソフトボタン、ソフトキーボード等の入力に利用される。104は一般的なデジタルカメラ部であり、レンズ、CCD等の撮像素子で構成されている。携帯情報機器101内のCPUによって制御され、撮影された画像データはCPUに接続されているRAMに記憶される。このデジタルカメラ部で撮影した画像を電子メイルに添付して送ることができる。
【0016】
105は一般的なパーソナルコンピュータであり、携帯情報機器101と一般的なUSBやローカルネットワーク、或いは公衆回線で接続されるか、サーバーコンピュータを介して接続可能であり、携帯情報機器101に対してSVG等のスケーラブルなグラフィックデータ等を送信する。
【0017】
106はSVG等のスケーラブルなグラフィックデータを用いて作成した書類ファイルを概念化した物であり、パーソナルコンピュータ105内のプログラムによって一般的なワープロ書類やプレゼンテーション書類等からコンバートすることによって作成される。
【0018】
図2は、図1に示す携帯情報機器の概略構成を示すブロック図である。図2において、201は位置座標入力部であり、202の画像表示部の上面に配置された抵抗膜デジタイザーで構成されている。この抵抗膜デジタイザーは制御回路を介してシステムバス211経由で205のCPUに接続されている。また、ペン103を使って画面上を押圧することにより、押圧した位置の位置座標データが205のCPUによって読み取られるわけである。読み取られた位置座標データによって207のROM内の処理手順に従ってSVGグラフィックデータの表示処理を行う。
【0019】
202は一般的な画像表示部であり、液晶表示素子、液晶制御回路、表示メモリから構成され、211のシステムバス経由で205のCPUに接続している。そして、205のCPUからの指示で、画像データや手書き軌跡データが画面上に表示される。
【0020】
203は一般的なキーボードであり、キーを押すことにより、英数字等のキーコードが入力され、205のCPUがキーコードを読み取る。
【0021】
204は一般的なデジタルカメラ部104のCCD等の撮像素子であり、このカメラ部104はCCD204の他に、不図示のレンズ、CCD制御回路で構成されている。このCCD制御回路は211のシステムバス経由で205のCPUに接続している。205のCPUによってCCD204は制御され、撮影された画像は206のRAMに記憶される。
【0022】
205は一般的なCPUであり、システムバス211を介して206のRAM、207のROM、位置座標入力部201、画像表示部202と接続しており、207のROMに記憶されているプログラムによって処理動作を行う。
【0023】
206は一般的なRAMであり、SVG画像データの保存やプログラムの作業領域や展開したビットマップデータの一時記憶領域として使われる。
【0024】
207は一般的なROMであり、本実施形態のSVGグラフィックデータ表示制御プログラム等が記憶されている。また、CCD制御回路のプログラム、画像表示部202の制御プログラム、手書き軌跡の認識プログラム、手書き軌跡形状の辞書データ等の処理手順も記憶されている。
【0025】
208はデジタルカメラ等で一般的なコンパクトフラッシュ(登録商標)カードのインターフェース部であり、差し込まれたコンパックトフラッシュカードへのデータ読み込み、書き込みを実現し、そのコンパックトフラッシュカードに画像データ等を記憶することができる。
【0026】
209は一般的なUSBインターフェース部であり、205のCPUによって制御され、一般のパーソナルコンピュータと接続し、手書き軌跡データやSVG画像データ等のやり取りを行うことができる。
【0027】
210は一般的な通信カードであり、内部にPHS回線への接続コントローラやアンテナを内蔵している。そして、通信カード210内のコントローラに規定のコマンドを渡すことにより、公衆回線等へ接続し、電子メールの送受信を実行できる。この通信カード210を、ローカルエリアネットワークカード等に変更すれば、ローカルエリアネットに対応することも可能である。尚、電子メールの送受信のプロトコル自体は、従来の方法と同一である。
【0028】
211は一般的なシステムバスであり、CPU205、RAM206、ROM207、その他のデバイス等とのデータやり取りを行う。
【0029】
図3は、本実施形態における処理の流れを示す図である。図2に示したRAM206内に記憶されているSVG画像データファイルの画面への表示出力が指示されたときの処理を表す図であり、実際の処理手順は図2に示したROM207内に記憶されている。尚、この表示出力指示は、ユーザが従来のファイルを指示する指示方式(画面上に表示されているファイルを表すアイコンをペンでダブルタップすることにより、そのファイルの内容が画面上に表示される指示動作)により行われる。出力表示のサイズの指定も一般的なズーム指定と同様に100%表示とか20%で表示とか指示されて行われる。
【0030】
図3において、301はデータ展開切替部であり、SVG画像データファイルと表示する出力サイズの指定数値データとを入力する。データ展開切替部301は出力サイズとして100%等の大きなサイズが指定された場合は、そのSVG画像データファイルを302のSVGデータ展開部に送出する。また出力サイズとして20%等の小さなサイズが指定された場合は、データ内の表示オブジェクト単位でチェックを行う。そして、チェックする表示オブジェクトの展開ビットマップデータが、304のSVG展開ビットマップ記憶部に記憶されている場合は、そのオブジェクトデータの表示出力指示は、305のビットマップ縮小部に送られる。しかし、チェックする表示オブジェクトの展開ビットマップデータが、記憶されていない場合は、302のSVGデータ展開部にそのオブジェクトの表示指示が送られる。
【0031】
302はSVGデータ展開部であり、送られて来るオブジェクト単位のベクターグラフィックデータのビットマップ展開を行うもので、従来からある、ベクトルフォントのラスタライザー等と同様な処理でベクターグラフィックデータからビットマップデータを作成する。作成されたビットマップデータは、画像表示部202に送られ、画面上に表示される。また、作成されたビットマップデータとオブジェクト単位のベクターグラフィックデータはビットマップデータ記憶判定部303に送られる。
【0032】
303はビットマップデータ記憶判定であり、SVGデータ展開部302から送られて来るSVGのベクターグラフィックデータの複雑度を判定し、ベクトル展開の計算時間が既定値以上かかると判定した場合、その展開ビットマップデータを304のSVG展開ビットマップ記憶部に送る。また、簡単なベクターグラフィックデータの場合は、記憶しないでそのまま終る。
【0033】
304はSVG展開ビットマップ記憶部であり、ビットマップデータ記憶判定部303から送られて来るベクターグラフィックデータと展開ビットマップデータを記憶する。ここで、ベクターグラフィックデータと展開ビットマップデータとは対であり、展開ビットマップデータは縮小表示に使うので、正確さが失われても問題は無く、一般的なJPEG圧縮で記憶しておく。データ展開切替部301が展開ビットマップデータを検索する場合は、同一のベクターグラフィックデータのオブジェクトが記憶されているかを検索することによって判るわけである。
【0034】
305はビットマップ縮小部であり、SVG展開ビットマップ記憶部304に記憶されている展開ビットマップデータを指定された大きさに縮小表示する。このビットマップデータの縮小処理自体は、従来から行われている方法で構わない。そして、縮小されたビットマップデータは画像表示部202に送られ、画面に表示される。
【0035】
図4は、簡単なベクターグラフィックデータのオブジェクト例を示す図である。図4において、401は円のオブジェクト例、402は長方形のオブジェクト例である。
【0036】
ベクターグラフィックデータの実際は、例えば図4に示す長方形402の場合には、以下に示すように記述される。
【0037】
x1 y1 moveto
x2 y1 lineto
x2 y2 lineto
x3 y2 lineto
stroke
ここで、x,yには座標の数値が入り、その座標の数値に従って直線が引かれ、長方形が描画される。
【0038】
また、図4に示す円401の場合には、以下に示すように円の中心座標、半径、その円弧の開始の角度、終了の角度、円弧のコマンド種別等で記述される。
【0039】
x5 y5 r angle1 angle2 Arc
stroke
このコマンド種別は当然、座標点をつなぐ線を描画する:strokeの他に、指定された座標点を結ぶラインで囲まれた範囲を塗りつぶす:fillがあり、その他として塗りつぶしパターンの設定コマンドと自然画のビットマップの描画コマンド等もあり、アニメーション用に描画タイミングの時間設定コマンド等もあるが、本実施形態には直接関係しないので、それらの説明は省略する。
【0040】
図5は、複雑なベクターグラフィックデータのオブジェクト例を例す図である。図5において、501はシンボル1のオブジェクト例、502はシンボル2のオブジェクト例である。
【0041】
ここで、本実施形態におけるSVGデータの展開処理及びSVGデータの展開切替処理について説明する。まず、図6を参照しながらSVGデータの展開処理について説明する。この処理は、SVGデータ展開部302で実行される処理に相当するものである。尚、SVGデータのファイル自体は、一般的なパーソナルコンピュータ105から送られて来るか、ROM207内に記憶されている別のアプリケーションによって作成されたものである。このSVGデータファイルの作成処理自体は、本実施形態には直接関係しないので、説明は省略する。また、本実施形態では、SVGデータファイルは画面1ページ分のデータが複数のベクターグラフィックデータのオブジェクトで構成されているものである。例えば、図4は1ページ分の画面例であり、円のオブジェクトと長方形のオブジェクトが書かれている。
【0042】
図6は、本実施形態におけるSVGデータの展開処理を示すフローチャートである。まずステップS601において、SVGデータを展開する展開処理で使用する作業領域を初期化し、オブジェクト単位で、ベクターグラフィックデータを読み込む処理を行う。即ち、指定された、SVGデータファイルの1ファイルを先頭から順次読み込んで処理を行って行く訳である。図4に示した例では、まず円のオブジェクト401を読み込み、作業領域に記憶する。このオブジェクトの処理が終れば、次の長方形のオブジェクト402を読み込む訳である。
【0043】
次に、ステップS602において、オブジェクトのビットマップ展開の処理を行う。例えば、図4に示した長方形402の場合、ベクターグラフィックデータは、
x1 y1 moveto
x2 y1 lineto
x2 y2 lineto
x1 y2 lineto
stroke
であるので、まずRAM206上の仮想画面メモリ上のx1,y1座標に相当するメモリ番地上からx2,y1座標に相当するメモリ番地上まで直線になるようにメモリ上の領域にデータを書き込む。次に,x2,y1座標に相当するメモリ番地上から、x2,y2座標に相当するメモリ番地上まで直線になるようにメモリ上の領域にデータを書き込む。次に、x2,y2座標に相当するメモリ番地上から、x1,y2座標に相当するメモリ番地上まで直線になるようにメモリ上の領域にデータを書き込む。そして、x1,y2座標に相当するメモリ番地上から、x1,y1座標に相当するメモリ番地上まで直線になるようにメモリ上の領域にデータを書き込む。
【0044】
これにより、RAM206上の仮想画面メモリ上に長方形402が展開される。この処理は、従来のベクターグラフィックデータを取り扱えるLBP等で行われている処理と同様である。
【0045】
次に、ステップS603において、オブジェクト内の基本図形データの個数が2個以下であるか否かをチェックする。これは、取り扱うオブジェクトが単純なオブジェクトか複雑なオブジェクトかの判断であり、図3に示したビットマップデータ記憶判定部303の処理に相当するものである。具体的には、読み込んだオブジェクトデータ内の基本図形の数をカウントして判断する。基本図形の単位は、図4に示した長方形、円などであり、オブジェクトが以下のデータであれば、
x1 y1 moveto
x2 y1 lineto
x2 y2 lineto
x1 y2 lineto
stroke
x2 y1 r angle1 angle2 Arc
stroke
基本図形の数をカウントするタイミングは、
x1 y2 lineto
stroke
の所で図形の個数が1個カウントされ、次の、
x2 y1 r angle1 angle2 Arc
stroke
のところで、個数が1個カウントされて合計が2個となる。
【0046】
この場合、2個以下であるので、ステップS606へ進む。また、読み込んだオブジェクトが図5に示す501のような場合、基本図形に分解すると、13個の円と、16本の直線で表されているので、基本図形の個数が2個以下でないとと判断し、ステップS604へ進む。
【0047】
尚、本実施形態においては、オブジェクト内の基本図形の個数をカウントし、その数が2個以下であるか否かをチェックするようにしているが、最も基本的な座標点をセットするなどの1コマンドセットの数で複雑度を決定するようにしても良い。その場合、ライン設定のx2 y1 linetoなどは複雑度0.2とし、円弧の描画設定コマンド、x2 y1 r angle1 angle2 Arcなどであれば、複雑度0.8とし、そのコマンドで実行される描画処理の実行時の計算時間を加味して複雑度を設定するようにしても良い。
【0048】
また、複雑度の判定基準の閾値も、装置に実装されたCPUの計算スピードに合わせて変更すべきである。更に、CPUの計算スピードが可変の機種の場合は、その変更に合わせて、閾値も変更するようにすべきである。
【0049】
また、展開ビットマップ記憶領域の最大記憶容量にあわせて、閾値を変更しても良い。例えば、記憶容量が大きい場合は、閾値を低くし、展開ビットマップを記憶する機会を多くし、記憶容量が小さい場合は、閾値を高くして、展開ビットマップを記憶する機会を少なくするように閾値を変更する。
【0050】
次に、ステップS604において、既に記憶されているオブジェクトであるかチェックする。ここでは、上述のステップS601で読み込んだオブジェクトが展開ビットマップ記憶領域に記憶されているか否かをチェックする。即ち、円と長方形を合成したようなオブジェクト(以下のデータ)が対象であれば、
x1 y1 moveto
x2 y1 lineto
x2 y2 lineto
x1 y2 lineto
stroke
x2 y1 r angle1 angle2 Arc
stroke
上記のデータで、記憶領域内を検索すれば良い。そして、検索してあった場合は、記憶する必要は無いので、ステップS606へ進む。また、検索してなかった場合には、記憶するためにステップS605へ進み、展開ビットマップデータを圧縮して展開ビットマップ記憶領域に記憶する。この処理は、ステップS602で展開した仮想画面メモリ上のオブジェクト図形を外接矩形で切り出し、メモリ内のデータをそのまま圧縮バッファに読み込み、一般的なJPEG圧縮等で圧縮し、展開ビットマップデータとそのベクターグラフィックデータをRAM206内の展開ビットマップ記憶領域に記憶する処理である。
【0051】
ここで記憶したビットマップデータを使用するのは、後述する図7に示す処理の中で、本実施形態では50%以下の出力サイズの時である。即ち、このビットマップを記憶する時に予め50%のサイズに縮小してから記憶する処理にすれば、展開ビットマップ記憶領域の記憶サイズを小さくすることができる。
【0052】
次に、ステップS606において、ファイル内に次のオブジェクトがあるか否かをチェックする。ここで、ファイル内に処理すべきオブジェクトがまだあればステップS601に戻り、次のオブジェクトの処理を行う。また、オブジェクトがなければステップS607へ進み、展開された全ビットマップデータを画面上に表示する。具体的には、上述のステップS602で展開した仮想画面メモリ上のオブジェクトの全ビットマップデータを実際の画像表示部202の画面メモリ上に転送し、携帯情報機器101の画面上に表示する。
【0053】
そして、この処理で使用した作業領域等を開放し、SVGデータを読むためにオープンしたSVGグラフィックデータファイル等をクローズ処理等してSVGデータの展開処理を終了する。
【0054】
次に、本実施形態におけるSVGデータの展開切替処理について説明する。この処理は、図3に示したデータ展開切替部301及びビットマップ縮小部305に相当するものである。
【0055】
図7は、SVGデータの展開切替処理を示すフローチャートである。ステップS701において、SVGデータの展開切替処理に使用する作業領域を初期化し、指定出力サイズをチェックする。ここで、指定サイズが大きい場合は無条件にオブジェクトデータのビットマップ展開を行うので、上述した図6に示すSVGデータの展開処理へ進み、この処理を終了する。また、指定サイズが小さい場合は、オブジェクト単位で、このSVGデータの展開方法を切り替える処理を行うためにステップS702へ進む。この切り替えの閾値を本実施形態では50%としたが、当然表示するディスプレイの解像度が高解像度であれば、40%等低い値とした方が良いし、もしディスプレイの解像度が低いか、それほど、出力品位を望んでいなければ、60%等の高い値に変えても良い。また、切り替え処理をしないと決定した場合は、上述した図6に示した通常のビットマップ展開処理を行う。
【0056】
ステップS702において、ベクターグラフィックデータファイルをオブジェクト単位で読み込む。この処理自体は、図6に示したステップS601の処理と同様な処理なので、説明は省略する。
【0057】
次に、ステップS703において、読み込んだオブジェクトがRAM206内の展開ビットマップ記憶領域に記憶されているか否かをチェックする。ここで、記憶されているオブジェクトの場合はステップS704へ進み、記憶されていないオブジェクトの場合はステップS705へ進む。この判定処理自体はステップS604と同じ処理である。この判定により、記憶されていないオブジェクトは、通常のベクターグラフィックデータファイルからのビットマップ展開を行い、記憶されているオブジェクトの場合は、記憶されているビットマップデータを使用して表示を行う。
【0058】
即ち、ステップS704において、指定出力サイズに記憶ビットマップを変換する処理を行う。即ち、図6に示したステップS605において、RAM206内の展開ビットマップ記憶領域に記憶した展開ビットマップデータのJPEG圧縮されているデータを元に戻し、指定サイズが50%であれば、1画素づつデータを間引きしながら、変換することにより、50%のサイズに縮小したビットマップデータを作成する。この縮小処理に関しては従来からのアルゴリズムを適応することにより実施する。
【0059】
また、ステップS705では、オブジェクトのビットマップ展開処理を行う。この処理は、図6に示したステップS602での処理と同じなので、その説明は省略する。ここで、指定されたサイズが50%であれば、50%のサイズで仮想画面メモリ上にビットマップ展開する。
【0060】
次に、ステップS706において、読み込んだ、ベクターグラフィックデータファイル内に次のオブジェクトがあるか否かをチェックする。次のオブジェクトがある場合はステップS702に戻り、そのオブジェクトを読み込み、上述した処理を繰り返す。また、次のオブジェクトが無ければ全てのオブジェクトを処理したので、ステップS707へ進む。
【0061】
このステップS707において、展開された全ビットマップデータを画面上に表示する。具体的には、ステップS705で展開されたビットマップデータと、ステップS704で縮小展開されたビットマップデータの全てを実際の画像表示部202の画面メモリ上に転送し、携帯情報機器101の画面上に表示する。
【0062】
そして、この処理で使用した作業領域等を開放し、SVGデータを読むためにオープンしたSVGグラフィックデータファイル等をクローズ処理等してSVGデータの展開切替処理を終了する。
【0063】
以上説明したように、SVGグラフィックデータを取り扱うアプリケーションが搭載された携帯情報端末101の画像表示部に対して、大きく表示したい場合、ベクトル画像データを正確に計算し、ビットマップ展開することで正確な画像を表示し、そのとき、複雑なベクトル画像データであれば、そのビットマップを記憶しておくことにより、次の機会に、例えば画像一覧表示などの小さな表示を行うときに、その記憶していた画像から縮小変換表示することで複雑なベクトル画像からのビットマップ展開計算処理時間をカットすることが実現でき、高速な画像一覧表示を実現できる。
【0064】
尚、本実施形態では、静止画を例に説明したが、本発明はこれだけに限らず、ベクトル画像データを動かして表示するアニメーション表示用アプリケーションプログラム等にも利用できるのはいうまでも無い。
【0065】
[変形例]
前述した実施形態では、SVG展開ビットマップ記憶判定部303において、ベクターグラフィックデータの複雑度を判定することにより、展開ビットマップデータを記憶するか否かを判定していた。しかし、ベクターグラフィックデータの展開処理時間は、CPUやシステム設計等が同一の時は変わらないが、現在のパーソナルコンピュータのように、後からCPUなどの性能が2倍に変わったりすれば、当然展開処理時間も変動する。変動条件が単純であれば、係数を掛けることにより計算も可能であるが、展開処理時間自体は、複雑であるし、システムの性能の変動も、ある計算は、早くなるが、異なる計算は変わらない等の状況もある。
【0066】
そこで、変形例では、SVGデータ展開処理時に展開処理時間を計測する手段と、ビットマップ展開処理時間とビットマップ縮小処理時間を比較手段を設けることにより、実際のSVGデータ展開処理時間の判定に利用する。これにより、携帯情報機器に搭載されているCPUの変更等により計算能力がアップしても、その変動に対処できるシステムを実現できる。
【0067】
図8は、変形例における処理の流れを示す図である。図8に示すように、図3に示したビットマップデータ記憶判定部303を802の展開時間縮小時間比較部に変更し、新たに801の展開時間計測部を追加したものである。図3と同一番号のものは同一なので、その説明は省略する。
【0068】
図8において、801は展開時間計測部であり、ベクターグラフィックデータのビットマップ展開処理の実処理時間を計測する処理である。この変形例では、オブジェクト単位のベクターグラフィックデータ展開処理を開始する時のリアルタイムクロックの時間を記憶し、展開処理終了時にまた、リアルタイムクロックの時間を計測し、先に記憶しておいた時間との差分により、処理時間を計測する処理である。
【0069】
また、802は展開時間縮小時間比較部であり、ベクターグラフィックデータのビットマップ展開処理時間と、展開したビットマップを縮小変換する時の処理時間とを比較し、そのビットマップを記憶するか、記憶しないかを判断する処理である。このビットマップ展開処理時間は展開時間計測部801で計測される。また、ビットマップの縮小変換時間は、一度縮小変換処理が行われた時に、処理時間を計測し記憶しておくことにより、ビットマップの大きさの係数を計測した処理時間に掛けることによって求めることができる。
【0070】
次に、変形例におけるSVGデータの展開処理及び予想ビットマップ変換時間計算処理について説明する。
【0071】
図9は、変形例におけるSVGデータの展開処理を示すフローチャートである。尚、図6に示した処理ステップと同一の処理ステップには同一の番号を付し、その説明は省略する。また、SVGデータの展開切替処理は図7に示した処理と同一であるので、その説明は省略する。
【0072】
まず、ステップS601において、ベクターグラフィックデータの展開処理を開始し、オブジェクト単位で、ベクターグラフィックデータを読み込む。これは、図6に示した処理と同一なので、その説明は省略する。
【0073】
次に、ステップS901において、ビットマップ展開処理時間の計測を開始する。具体的には、図2に示したシステムバス211に一般的な時計チップを接続し、CPU205によって時刻の設定、読み出しを行えるようにする。そして、対象オブジェクトのベクターグラフィックデータのビットマップ展開処理開始時にこの時計チップの時間を読み込み記憶しておく。
【0074】
次に、ステップS602において、オブジェクトのビットマップ展開の処理を行う。これは、図6に示した処理と同一なので、その説明は省略する。変形例では、例えば図5に示したシンボル502のような図形のビットマップ展開処理に3秒かかるとする。このビットマップ展開処理が終了すると、ステップS902へ進み、ビットマップ展開処理時間の計測を停止する。ここで、CPU205が時計チップの時間を読み出し、ステップS901で記憶した時間との差分により、経過時間を求める。上述のステップS602での処理が、例えば3秒かかっていれば、ここで経過時間として3秒が求められる。
【0075】
ここで、図1に示した携帯情報端末101がバッテリー駆動時とAC駆動時とでは、CPUのスピードが2倍変わる場合を例に説明する。例えば、AC駆動時はCPU速度が2倍速で、あるオブジェクトの展開処理経過時間が4秒だとすると、バッテリー駆動時はCPU速度が1倍速であるオブジェクトの展開処理経過時間は8秒になる。
【0076】
このように、上述したステップS901,S902の処理により、図8に示す展開時間計測部801を実現することができる。
【0077】
次に、ステップS903において、ステップS902で計測した展開処理経過時間とステップS602で展開したビットマップの表示サイズ縮小処理時間とを比較する。ここで、展開処理時間が縮小処理時間より短い場合は、ビットマップデータを記憶しないので、ステップS606へ進む。しかし、展開処理時間より縮小処理時間の方が短い場合は、ビットマップデータを記憶するためにステップS604へ進む。尚、ビットマップ展開処理時間はステップS901〜S902で測定した時間であり、ビットマップ縮小処理時間は、前回の縮小処理時に処理時間を計測しておき、その処理時間を利用している。実際には、ビットマップの大きさによっては処理時間が若干変わるが、その差は無視しても構わない程差である。大きな差があるシステムでは、サイズによって係数を掛けることによって処理時間を求めるようにすれば良い。
【0078】
このビットマップ縮小処理時間は、当然そのシステムのCPUが可変クロックの場合は、影響を受けるので、その場合の処理について説明する。尚、CPUのクロックが動的に変わらないものでは、この処理は不要である。
【0079】
図10は、予想ビットマップ変換時間計算処理を示すフローチャートである。まず、ステップS1001において、ビットマップ変換時間計算処理で使用する作業領域を初期化し、記憶しておいた前回のビットマップ縮小処理時間とその時のCPUクロック情報とその時のビットマップサイズ情報を読み出す。ここで、CPUクロックが可変の場合、ステップS704において指定出力サイズに記憶ビットマップを変換する時に、そのビットマップ縮小処理時間とその時のCPUクロック情報とその時のビットマップサイズ情報とをRAM206の特定領域に記憶してあるので、その特定領域に記憶してあるデータを読み出す。
【0080】
次に、ステップS1002において、現在のCPUクロックでのビットマップ縮小処理時間に変換する処理を行う。例えば、ステップS1001で読み出したビットマップ縮小処理時間が100msで、CPUクロック情報が33MHzであり、現在のCPUクロックが66MHzならCPUクロックが2倍であるので、理想的な場合であれば、処理時間は半分の50msが予想されるので50msとする。つまり、記憶処理時間×記憶クロック÷現在クロック=予想処理時間である。
【0081】
次に、ステップS1003において、現在のサイズでのビットマップ縮小処理時間に変換する処理を行う。ステップS1001で読み出したビットマップのサイズと現在のビットマップサイズとからビットマップ縮小処理時間を補正する。そして、ステップS1002で求めた、
予想処理時間×((現在サイズ÷記憶サイズ))=処理時間
とする。これは、例えば50ms×((100KB÷50KB))=100msになる。このように、可変クロックでの予想ビットマップ変換時間を求めることができる。そして、作業領域等を開放し、この処理を終了する。
【0082】
図9に戻り、ステップS604からステップS607までの処理は、前述した図6に示した処理と同一である。
【0083】
このように、展開時間計測部と展開時間縮小時間比較部とを設けることにより、あるオブジェクトの展開処理時間が変動した場合に、その変動に応じて、展開ビットマップを記憶するか記憶しないかを判断するSVG表示アプリケーションを実現できる。
【0084】
以上、ベクターグラフィックデータの最初の展開表示時に、展開ビットマップデータを記憶する処理を説明してきたが、ベクターグラフィックデータを作成した時点での展開ビットマップデータ作成時に記憶する構成でも構わない。また、外部のパーソナルコンピュータ等で作成されて、ベクターグラフィックデータが送られて来る場合においては、その受信時に、表示は行わずに仮想画面のみに、ベクターグラフィックデータの展開処理を行い、展開ビットマップデータを記憶するようにしても良い。
【0085】
また、記憶していない、展開ビットマップデータは無条件に記憶するようにしたが、当然展開ビットマップデータの記憶するエリアにも限界があるので、限界までは無条件に記憶し、限界まで記憶した後では以下のような処理を行うことも可能である。
【0086】
図7に示したステップS704において、使用された展開ビットマップには、使用回数を記憶する領域を設け、一番使われていない展開ビットマップから消去して新たな展開ビットマップを記憶するエリアを確保し、良く使われる展開ビットマップを記憶するようにした方が良いのは言うまでもない。
【0087】
この構成により、良く使われるシンボルや、会社のロゴデザイン等は、ビットマップとして記憶されているので、素早く表示できる。
【0088】
また、1つのSVGデータファイルの中に複数のオブジェクトが存在する場合を例に説明したが、携帯情報端末101に搭載されるアプリケーションの仕様によっては、1SVGデータファイル=1オブジェクトして取り扱うようにしても良い。
【0089】
以上説明したように、実施形態及びその変形例によれば、ベクトル画像データをビットマップ展開する時にベクトル画像データの複雑度に応じてビットマップデータを記憶するか否かを判定し、展開ビットマップデータを記憶し、次の機会に記憶されたオブジェクトの低解像度の出力が指示された場合に、記憶しておいたオブジェクトのビットマップデータの出力サイズを変換することで、ベクトル画像データの低解像度への再ビットマップ展開計算を行わずに、オブジェクトの低解像度の高速出力処理を実現することができる。
【0090】
また、ベクトル画像データのビットマップ展開計算時間を計測し、計測した計算時間と展開したビットマップデータの出力サイズ予測変換時間を比較し、ビットマップ展開したビットマップデータを記憶するか否かを判定することにより、CPU等の変更等で展開計算時間が変動した場合、それに合わせた処理が行える画像処理装置を実現できる。
【0091】
これにより、CPUのスピードがパーソナルコンピュータよりも遅い携帯情報端末でも、ベクトル画像データの高速な表示を低解像度の場合は行える画像処理装置を実現できる。
【0092】
尚、本発明は複数の機器(例えば、ホストコンピュータ,インターフェース機器,リーダ,プリンタなど)から構成されるシステムに適用しても、1つの機器からなる装置(例えば、複写機,ファクシミリ装置など)に適用しても良い。
【0093】
また、本発明の目的は前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(CPU若しくはMPU)が記録媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【0094】
この場合、記録媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【0095】
このプログラムコードを供給するための記録媒体としては、例えばフロッピー(登録商標)ディスク,ハードディスク,光ディスク,光磁気ディスク,CD−ROM,CD−R,磁気テープ,不揮発性のメモリカード,ROMなどを用いることができる。
【0096】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)などが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0097】
更に、記録媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0098】
【発明の効果】
以上説明したように、本発明によれば、ベクトル画像の描画を高速に行うことができる。
【図面の簡単な説明】
【図1】本実施形態における携帯情報機器の利用形態を示す図である。
【図2】図1に示す携帯情報機器の概略構成を示すブロック図である。
【図3】本実施形態における処理の流れを示す図である。
【図4】簡単なベクターグラフィックデータのオブジェクト例を示す図である。
【図5】複雑なベクターグラフィックデータのオブジェクト例を例す図である。
【図6】本実施形態におけるSVGデータの展開処理を示すフローチャートである。
【図7】SVGデータの展開切替処理を示すフローチャートである。
【図8】変形例における処理の流れを示す図である。
【図9】変形例におけるSVGデータの展開処理を示すフローチャートである。
【図10】予想ビットマップ変換時間計算処理を示すフローチャートである。
【符号の説明】
101 携帯情報端末
102 液晶表示部
103 ペン
104 デジタルカメラ部
105 パーソナルコンピュータ
106 SVG書類
201 位置座標入力部
202 画像表示部
203 キーボード
204 CCD
205 CPU
206 RAM
207 ROM
208 画像メディアインターフェース
209 USBインターフェース
210 通信カード
211 システムバス
301 データ展開切替部
302 SVGデータ展開部
303 ビットマップデータ記憶判定部
304 SVG展開ビットマップ記憶部
305 ビットマップ縮小部

Claims (1)

  1. ベクトル画像を指定された出力サイズの描画データに展開して出力する画像処理方法であって、
    ベクトル画像を指定された出力サイズの描画データに展開する展開工程と、
    所定の基準に応じて前記展開工程で展開された描画データを圧縮して記憶する記憶工程と、
    前記出力サイズとして縮小が指定された場合に、前記記憶工程で記憶した描画データを指定された出力サイズに変換する変換工程とを有することを特徴とする画像処理方法。
JP2002328519A 2002-11-12 2002-11-12 画像処理方法 Pending JP2004164208A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2002328519A JP2004164208A (ja) 2002-11-12 2002-11-12 画像処理方法
US10/703,791 US20040095589A1 (en) 2002-11-12 2003-11-06 Image processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002328519A JP2004164208A (ja) 2002-11-12 2002-11-12 画像処理方法

Publications (2)

Publication Number Publication Date
JP2004164208A true JP2004164208A (ja) 2004-06-10
JP2004164208A5 JP2004164208A5 (ja) 2005-12-22

Family

ID=32290012

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002328519A Pending JP2004164208A (ja) 2002-11-12 2002-11-12 画像処理方法

Country Status (2)

Country Link
US (1) US20040095589A1 (ja)
JP (1) JP2004164208A (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007200118A (ja) * 2006-01-27 2007-08-09 Canon Inc 画像形成装置及び画像処理方法
JP2008005072A (ja) * 2006-06-21 2008-01-10 Shimadzu Corp 機器分析用データ処理システム
JP2009300127A (ja) * 2008-06-11 2009-12-24 Shimadzu Corp 機器分析用データ処理装置
JP2010532513A (ja) * 2007-06-28 2010-10-07 テレフオンアクチーボラゲット エル エム エリクソン(パブル) データシステム及び方法
US7849413B2 (en) 2006-07-27 2010-12-07 Canon Kabushiki Kaisha Information processing apparatus and user interface control method
JP2011165173A (ja) * 2010-01-18 2011-08-25 Canon Inc 情報処理装置、情報処理装置の動作方法、および記憶媒体
US8018469B2 (en) 2005-10-27 2011-09-13 Hewlett-Packard Development Company, L.P. System, device, method and utility to convert images retrieved from a device to a format supported by a device management tool
KR101262850B1 (ko) * 2008-12-05 2013-05-22 한국전자통신연구원 캐싱 기법을 이용한 svg 이미지 출력 장치 및 그 방법

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003346136A (ja) * 2002-05-23 2003-12-05 Canon Inc 画像処理装置およびその方法
TWI274275B (en) * 2005-06-03 2007-02-21 Coretronic Corp Apparatus for processing image data by cooperating with operation system and method thereof
JP4657063B2 (ja) * 2005-08-31 2011-03-23 株式会社リコー ピンポイント検索地図文書入出力装置
JP2008112385A (ja) * 2006-10-31 2008-05-15 Canon Inc 画像処理装置、画像処理装置の制御方法、及び制御プログラム
US20080229238A1 (en) * 2007-03-14 2008-09-18 Microsoft Corporation Scalable images using bitmaps and vector images
US7982749B2 (en) * 2008-01-31 2011-07-19 Microsoft Corporation Server-based rasterization of vector graphics
US9779528B2 (en) * 2014-09-12 2017-10-03 Microsoft Technology Licensing, Llc Text realization
KR20210018570A (ko) * 2019-08-05 2021-02-18 에스케이하이닉스 주식회사 컨트롤러, 컨트롤러의 동작 방법 및 이를 포함하는 저장 장치

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3608314B2 (ja) * 1996-09-30 2005-01-12 ブラザー工業株式会社 プリンタ装置、プリントデータ送信装置および記憶媒体
JP4121653B2 (ja) * 1999-01-21 2008-07-23 株式会社ソニー・コンピュータエンタテインメント 消費電力低減方法、該方法を用いた携帯用電子機器及びエンタテインメントシステム
JP4261739B2 (ja) * 2000-06-15 2009-04-30 キヤノン株式会社 画像処理装置、画像処理方法、記憶媒体及び画像処理システム
US20020097418A1 (en) * 2001-01-19 2002-07-25 Chang William Ho Raster image processor and processing method for universal data output

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8018469B2 (en) 2005-10-27 2011-09-13 Hewlett-Packard Development Company, L.P. System, device, method and utility to convert images retrieved from a device to a format supported by a device management tool
JP2007200118A (ja) * 2006-01-27 2007-08-09 Canon Inc 画像形成装置及び画像処理方法
JP2008005072A (ja) * 2006-06-21 2008-01-10 Shimadzu Corp 機器分析用データ処理システム
US7849413B2 (en) 2006-07-27 2010-12-07 Canon Kabushiki Kaisha Information processing apparatus and user interface control method
JP2010532513A (ja) * 2007-06-28 2010-10-07 テレフオンアクチーボラゲット エル エム エリクソン(パブル) データシステム及び方法
US8923651B2 (en) 2007-06-28 2014-12-30 Telefonaktiebolaget L M Ericsson (Publ) Data system and method
JP2009300127A (ja) * 2008-06-11 2009-12-24 Shimadzu Corp 機器分析用データ処理装置
KR101262850B1 (ko) * 2008-12-05 2013-05-22 한국전자통신연구원 캐싱 기법을 이용한 svg 이미지 출력 장치 및 그 방법
JP2011165173A (ja) * 2010-01-18 2011-08-25 Canon Inc 情報処理装置、情報処理装置の動作方法、および記憶媒体

Also Published As

Publication number Publication date
US20040095589A1 (en) 2004-05-20

Similar Documents

Publication Publication Date Title
JP2004164208A (ja) 画像処理方法
JP4590433B2 (ja) 画像処理装置、画像処理方法、コンピュータプログラム
JP4402138B2 (ja) 画像処理装置、画像処理方法、コンピュータプログラム
JP5274305B2 (ja) 画像処理装置、画像処理方法、コンピュータプログラム
JP5376795B2 (ja) 画像処理装置、画像処理方法、そのプログラム及び記憶媒体
JP4890851B2 (ja) 意味論的文書スマートネール
CN1859541B (zh) 图像处理设备及其控制方法
JP4921335B2 (ja) ドキュメント処理装置及び検索方法
JPH08147446A (ja) 電子ファイリング装置
JP2002351779A (ja) データ表示システム、データ送信装置、携帯端末、データ表示方法、データ表示プログラムおよびそのプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2008042345A (ja) 画像処理方法、画像処理装置
JPH0916149A (ja) 文字処理装置、文字処理方法、及び、メモリ
JP3993025B2 (ja) 文書画像変換方法、文書画像変換プログラム及び文書画像変換装置
JP5197694B2 (ja) 画像処理装置、画像処理方法、コンピュータプログラム
JP4936524B2 (ja) 画像処理システムおよび画像処理方法
JP3363119B2 (ja) 手書きデータ入力装置および手書きデータ入力方法、ならびに該方法を記録した記録媒体
JPH0973408A (ja) データ処理装置およびデータ入出力処理方法
JP3476670B2 (ja) 携帯端末通信システム、携帯端末通信方法、及び携帯端末通信のためのプログラムを記録した媒体
JPH0216068A (ja) 像形成装置
JP2002356016A (ja) 画像印刷装置、画像印刷方法、及び画像印刷プログラム
JP5310038B2 (ja) 画像処理装置及び画像処理プログラム
CN114610222A (zh) 竖屏手写签名的生成方法、装置、终端设备及存储介质
JP2000067241A (ja) データ出力装置及び記憶媒体
CN112700507A (zh) 一种图片显示方法、计算设备和存储介质
JP2000118056A (ja) 印刷システム

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051107

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051107

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080708

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080711

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080909

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20081010