JP4429212B2 - 画像記述データ処理方法、装置及びプログラム - Google Patents

画像記述データ処理方法、装置及びプログラム Download PDF

Info

Publication number
JP4429212B2
JP4429212B2 JP2005163964A JP2005163964A JP4429212B2 JP 4429212 B2 JP4429212 B2 JP 4429212B2 JP 2005163964 A JP2005163964 A JP 2005163964A JP 2005163964 A JP2005163964 A JP 2005163964A JP 4429212 B2 JP4429212 B2 JP 4429212B2
Authority
JP
Japan
Prior art keywords
description data
image description
processing
image
page description
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.)
Expired - Fee Related
Application number
JP2005163964A
Other languages
English (en)
Other versions
JP2006338478A (ja
Inventor
辰哉 武市
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 JP2005163964A priority Critical patent/JP4429212B2/ja
Priority to US11/444,634 priority patent/US7852507B2/en
Publication of JP2006338478A publication Critical patent/JP2006338478A/ja
Application granted granted Critical
Publication of JP4429212B2 publication Critical patent/JP4429212B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1284Local printer device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1204Improving or facilitating administration, e.g. print management resulting in reduced user or operator actions, e.g. presetting, automatic actions, using hardware token storing data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1218Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources
    • G06F3/122Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources with regard to computing resources, e.g. memory, CPU
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1244Job translation or job parsing, e.g. page banding
    • G06F3/1248Job translation or job parsing, e.g. page banding by printer language recognition, e.g. PDL, PCL, PDF

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Record Information Processing For Printing (AREA)
  • Processing Or Creating Images (AREA)

Description

本発明は、画像記述言語で表現された画像記述データの処理方法、装置及びプログラムに関する。
従来より、情報処理装置でデータ処理された結果をレーザプリンタなどに高品質に出力することが行われている。そのため、画像記述言語の一種であるページ記述言語の解析装置をプリンタ装置に搭載し、プリンタ装置上でページ記述データの解析を実行することによって描画処理している。ページ記述言語として代表的なものに、アドビシステムズ社のPostScriptがある。
既存のページ記述言語では、座標や色の指定だけではなく、図形や文字に対するアフィン変換命令が用意されているものがある。アフィン変換処理とは、図形あるいは文字に対する拡大、縮小、回転、平行移動処理などを含む、図形の幾何学的な変換処理のことである。一般的には、線形変換と平行移動を伴うことが多い。アフィン変換処理は多重に行なうことができ、たとえば図形あるいは文字に対して回転の変換を行なった後に平行移動するような処理も、既存のページ記述言語では表現が可能である。
従来、ページ記述データで記述された描画処理命令にアフィン変換処理命令が含まれていれば、その記述にしたがって、例えばプリンタ装置内部で繰り返し計算を行なって描画処理を行っていた。図11はPostScriptの記述仕様に従い、多重にアフィン変換を施して矩形を描画した例である。図11において、(a)はPostScript言語で記述したページ記述データ、(b)は描画処理を行なった結果である。図11(a)において、3〜5行目でアフィン変換処理命令を実行し、7〜11行目で図形を描画するように記述している。7〜11行目で描画するように指定している図形はX、Y軸に平行で、頂点の1点を原点とする長方形であるが、3〜5行目でのアフィン変換処理により、実際に描画される図形は図11(b)に示したような平行四辺形となる。
さらに、既存のページ記述言語では、文字列を描画する際にレイアウトを指定して描画することができる。図12は指定された点に対して相対的に先頭揃え、中央揃え、末尾揃えさせるよう記述した例である。(a)はPostScript言語で記述したページ記述データ、(b)は描画処理を行った結果である。図12(a)において、5〜10行目で中央揃え、12〜17行目で右揃えするための定義を行なっている。19〜21行目では、それぞれ同じX座標を指定している。その他、中央揃え、或いは右揃えの定義を参照するように記述することによって、指定した点に対するレイアウトを計算し、図12(b)のような描画結果を得ることができる。また、図14に示したように、文字間のピッチを広げることや、図15に示したように、曲線上(ここでは円弧上)に文字を配置する例は「POSTSCRIPTチュートリアル&クックブック」(AdobeSystems著、アスキー出版技術部監修)に記載されている。
また従来、ページ記述データとして記述された図12(a)、図14(a)、図15(a)で示したようなデータを、例えばプリンタ装置のような画像形成装置において内部的にレイアウト計算を行ない、描画処理を行っていた。
また、最近ではW3C(World Wide Web Consortium)によってSVG(Scalable Vector Graphics)の仕様が策定され、ページ記述言語としての応用が検討されている。SVGはPostScriptと同様に任意の図形あるいは文字を、座標や色を指定したり、アフィン変換処理を指定して描画することができる。また、文字のレイアウトの指定方法が多岐にわたり、柔軟に指定できるような仕様となっている。
従来のページ記述言語、SVGなどの構造化言語などを画像記述言語と呼ぶ。上記のように、ページ記述言語で、多重にアフィン変換命令が記述された場合、処理が繰り返し行われており、構造化言語でも、木構造が必要以上に深く記述されていたりする。構造化言語では、木構造の階層を減らしたり、構造変換したりすることが行われている(例えば[特許文献1][特許文献2]参照)。
特開2002−108850号公報 特開2004−240491号公報
しかしながら、従来のようなページ記述データの処理に関しては、以下のような問題があった。
一般的に図形のアフィン変換処理は、図13(a)に示したように、3×3の行列とベクトル(X,Y,1)の掛け算の処理を行う必要がある。複雑な図形の場合は頂点や制御点にすべてについてアフィン変換処理をする必要がある。また、多重にアフィン変換処理命令が呼び出されるときは、図13(b)に示したように、アフィン変換行列同士の掛け算処理が発生する。
座標値やアフィン変換行列の要素の値は実数で表現されることがほとんどである。ベクトルと行列あるいは行列同士の掛け算には、ベクトルや行列の各成分同士の掛け算や足し算を数回行う必要がある。従って、複雑な図形に対するアフィン変換や多重のアフィン変換処理はこれらの処理を繰り返し行うことによってプロセッサに負荷がかかり、高速なプロセッサを搭載していない機器では処理速度が大きく低下する恐れがある。
また、文字のレイアウト処理として、図12に示したような例の場合、概念的には直線上に文字列を並べて描画し、文字列の始点と終点を計算し、その結果を元にレイアウト処理を行なう必要がある。この場合、文字の数が増加するほどプロセッサに負荷がかかることになり、同じように処理速度の低下を引き起こす可能性がある。また図15で示した例では、曲線上のどの位置に文字を配置すべきかを画像形成装置内で画像形成時に評価しているが、このような処理は非常にプロセッサに負荷をかける。
そこで本願では、図形、テキストのアフィン変換処理やテキストのレイアウト計算を画像形成装置に送る前に行い、文字ごとに位置と回転角を予め計算することを行う。そして、元の画像記述データで表現された内容と描画結果が同一になることが保証されるように前処理を反映した画像記述データの置換処理を行うことにより、従来による手法に比較して処理を高速化する。
上記の課題を解決するため、本発明による画像記述データ処理方法は以下の構成を備える。すなわち、画像記述言語で記述され、矩形形状を幅属性、高さ属性、及び一つの頂点座標で規定する描画命令と、前記矩形形状の変換を規定するアフィン変換式を含む複数の第1の処理命令とからなる第1の画像記述データを処理する画像記述データ処理方法であって、
前記第1の画像記述データを取得する取得工程と、
前記取得工程で取得された前記第1の画像記述データから、前記描画命令と複数の前記第1の処理命令とを抽出する抽出工程と、
前記抽出工程で抽出された複数の前記第1の処理命令に含まれるアフィン変換式を順じ掛けて得られる第2の処理命令と、前記抽出工程で抽出された前記描画命令から変換された矩形形状の4頂点の座標値とから、パス要素を含み、かつアフィン変換式を含まない前記画像記述言語で記述された処理命令からなる第2の画像記述データを生成する生成工程と、
前記生成工程で生成された前記第2の画像記述データを、前記第2の画像記述データに基づいて画像を描画する画像形成装置に送出する送出工程と、
を備えることを特徴とする画像記述データ処理方法。
上記の課題を解決するため、本発明による画像記述データ処理装置は以下の構成を備える。すなわち、画像記述言語で記述され、矩形形状を幅属性、高さ属性、及び一つの頂点座標で規定する描画命令と、前記矩形形状の変換を規定するアフィン変換式を含む複数の第1の処理命令とからなる第1の画像記述データ保持する保持手段から前記第1の画像記述データを取得する取得手段と、
前記取得手段により取得された前記第1の画像記述データから、前記描画命令と複数の前記第1の処理命令とを抽出する抽出手段と、
前記抽出手段により抽出された複数の前記第1の処理命令に含まれるアフィン変換式を順じ掛けて得られる第2の処理命令と、前記抽出手段により抽出された前記描画命令から変換された矩形形状の4頂点の座標値とから、パス要素を含み、かつアフィン変換式を含まない前記画像記述言語で記述された処理命令からなる第2の画像記述データを生成する生成手段と、
前記生成手段により生成された第2の画像記述データを、前記第2の画像記述データに基づいて画像を描画する画像形成装置に送出する送出手段と、
を備えることを特徴とする画像記述データ処理装置。
本発明によれば、画像記述言語を置換する演算処理を前処理として行うので、画像形成装置が画像記述データを高速に処理することが可能になる。
<実施形態1>
本発明における、ページ記述データ処理の第1の実施形態について、添付図面を参照しながら説明する。
図1は本発明の実施例に係る、ページ記述データ処理装置を含む情報処理装置の構成について説明したブロック図である。
図1において、CPU101はシステム制御部であり、装置全体を制御する。ROM102はCPU101の制御プログラムや各種固定データが格納されている。RAM103は、SDRAM、DRAMなどによって構成され、プログラム制御変数、各種枠バッファなどを格納する。また、通信制御部104は通信インタフェース105を経由したデータ通信の制御を行なうためのものである。通信インタフェース105はIEEE1394インタフェース、IEEE1284インタフェース、有線LANインタフェース、無線LANインタフェースなどでよく、本実施例では特定しない。ページ記述データ処理装置10は、RAM103に格納されたページ記述データを置換し、再びRAM103に格納する処理を行なう。ページ記述データ処理装置10については次に詳述する。
図2は本発明の第1の実施例に係る、ページ記述データ処理装置10の構成を説明したブロック図である。ページ記述データ取得部201は、第1のページ記述データをRAM103から取得する。ページ記述データ解釈部202は、ページ記述データ取得部201で取得した第1のページ記述データを描画命令ごとに解釈する。アフィン変換処理命令抽出部205は、ページ記述データ解釈部202で分割された描画命令に含まれるアフィン変換処理命令を抽出する。アフィン変換計算処理部206は、アフィン変換処理命令抽出部205で取得したアフィン変換処理命令を計算処理する。ページ記述データ置換部203は、アフィン変換計算処理部206の計算結果をもとにページ記述データ解釈部202で得られた描画命令を置換し、第2のページ記述データを生成する。ページ記述データ出力部204は、ページ記述データ置換部203で生成された第2のページ記述データをRAM103に格納する。以上により、RAM103に保持された第2のページ記述データは、プリンタなどの画像形成装置に送られ、画像形成装置は、第2のページ記述データを解釈して画像を形成する。
次に、本発明の第1の実施例に係る、ページ記述データ処理装置10の処理の流れについて図3を参照して説明する。図3はページ記述データ処理装置10の処理の流れについて説明したフローチャートである。
入力される第1のページ記述データはRAM103に確保されたバッファ領域に格納されている。まずページ記述データ取得部201においてRAM103上のバッファ領域から第1のページ記述データを取得する(ステップS302)。次に、ページ記述データ解釈部202において、取得した第1のページ記述データを解釈し、個々の描画命令に分解する(ステップS303)。続いて、分解された個々の描画命令ごとに以下の処理を繰り返す(ステップS304)。
まず、描画命令がアフィン変換処理をあらわしたものであるか、あるいはアフィン変換処理を含んだ処理であるかを判定する(ステップS305)。条件に該当する場合はアフィン変換抽出部205においてアフィン変換処理命令を抽出し、アフィン変換計算部206においてアフィン変換計算を行ない、計算結果をRAM103に格納する(ステップS306)。条件に該当しない場合はステップS306の処理は行われない。次にページ記述データ置換部203において、現在処理の対象となっている描画命令について、RAM103に格納されているアフィン変換計算結果をもとにページ記述データを置換する(ステップS307)。さらに、ページ記述データ出力部204において置換結果をRAM103に格納する(ステップS308)。
図4に示したページ記述データの例を用いて、ステップS304〜S308の処理をさらに詳しく説明する。本発明では画像記述言語を特定しないが、ここではSVGを使用した場合について説明する。
図5はステップS304〜S308の処理について説明した模式図である。図4に示したページ記述データを描画処理命令ごとに分解したものである。スタック530はアフィン変換計算結果を格納する領域で、初期状態としては空になっている。
ページ記述データ処理は、処理命令を読み込んだ順に処理するので、処理命令502を読み込む。transform属性はアフィン変換処理命令を示しており、属性値がアフィン変換オペレーションであることを示している。ここではtranslate(150 200)がアフィン変換オペレーションであるので、これを取得し、内部形式522に変換する。変換結果をスタック530に積む。この結果がスタック状態532である。このときスタック最上部のアフィン変換内部形式は542とする。このとき、処理命令502は図形の描画処理命令ではないので、ページ記述データ置換処理やページ記述データ出力処理は行われない(ステップS572)。
次に処理命令503を取得し、同様にアフィン変換内部形式523に置換する。この時点でスタックは空ではなくなっているので、スタックの最上部にあるアフィン変換内部形式542とアフィン変換内部形式502を掛け算し、アフィン変換内部形式543としてスタックに新たに積む。その結果がスタック状態533である。このとき、処理命令503は図形の描画処理命令ではないので、ページ記述データ置換処理やページ記述データ出力処理は行われない(ステップS573)。
さらに次の処理命令504を取得する。処理命令504には、矩形描画命令にアフィン変換処理命令が含まれている。まずアフィン変換処理命令を抽出し、アフィン変換内部形式524に変換し、スタック最上部のアフィン変換処理内部形式543と掛け算した結果を新たにアフィン変換内部形式544としてスタックに積む。その結果がスタック状態534である(ステップS574)。
次に処理命令504の矩形の描画命令を解釈する。処理命令504では、矩形についての形状が指定されており、矩形の場合は左上の頂点座標(x属性、y属性)および幅(width属性)、高さ(height属性)によって決定されている。x、y、width、heightの各属性値をx、y、w、hとし、頂点Aを(x,y)、頂点Bを(x+w,y)、頂点Cを(x+w,y+h),頂点Dを(x,y+h)とする。A−B−C−D−Aを順に線分で接続して得られる領域がその形状となる。図4で示した例では、A(−30,―20)、B(30,−20)、C(30,20)、D(−30,20)となる。
次に、この時点でスタック最上部のアフィン変換内部形式としてアフィン変換内部形式544を取得し、頂点Aと掛け合わせた結果を頂点A’としてRAM103に格納する。頂点B〜Dについても同様に頂点B’〜D’としてRAM103に格納する。
続いて、頂点A’〜D’の座標値を参照して処理命令504を置換する。具体的にはここではパスの処理命令に置換する。SVGにおいて、パスの処理命令は<path>要素で記述され、形状の情報はd属性によって記述する。まず頂点A’のX、Y座標を文字列化し、カンマ(,)で区切り、文字’M’のあとに続けて、d属性コマンド512を生成する。次に頂点B’のX、Y座標を文字列化し、カンマ(,)で区切り、文字’L’のあとに続けて、d属性コマンド513を生成する。同様に頂点C’、D’のX、Y座標を文字列化し、カンマ(,)で区切り、文字’L’のあとに続けて、d属性コマンド514、515を生成する。最後に図形の開始点と終了点を接続するために、文字’Z’だけのd属性コマンド516を生成する。d属性コマンド512〜516を直列化し、d属性値511を得る(ステップS575)。
この結果得られた処理命令510が処理命令504の置換結果であり、つまり図4における2〜7行目に記述されている内容の置換結果でもある。
ここでは<rect>要素による矩形の描画処理命令について説明した。その他の図形描画命令、あるいは曲線や線分を組み合わることのできる描画処理命令であるパス(<path>)といった描画処理命令であっても、同様の処理が可能である。図形描画命令には、円(<circle>)、楕円(<ellipse>)、多角形(<polygon>)、折れ線(<polyline>)、線分(<line>)などがある。
このような置換処理が効果的な場合について説明する。たとえば画像形成装置が、必ず本実施形態におけるページ記述データ処理装置によって処理されたページ記述データを受信するような環境においては、図形描画処理命令の種類をpathだけ対応すればよい。画像形成装置におけるプログラムの軽量化が可能になる。
以上、すべてのアフィン変換処理命令をすべて除去したパスの描画処理命令に置換する方法について説明した。それ以外の方法として、多重となっているアフィン変換命令を除去し、描画処理命令の図形の種類は変更せず、アフィン変換処理命令を0個または1個含む処理命令に置換して出力する方法について説明する。
図5において、ステップS572〜S574までは同じ処理を行う。次に処理命令504の矩形の描画命令を解釈し、transform属性以外の属性名および属性値の組をすべてRAM103に格納する。次に、処理命令504と同じ図形の処理命令を生成し、その属性としてRAM103に格納されたすべての属性の情報をセットする。次に、504でスタック530に格納された、スタック最上部のアフィン変換内部形式544を取得し、SVGのtransform属性として指定する。具体的には、3×3の行列で表現されたアフィン変換内部形式が図6(a)で示したような表現になっていた場合、図6(b)に示した文字列の表現が指定すべきtransform属性となる。そこで、図4で示したページ記述データの例では、transform属性値591が求められる。次にtransform属性値591およびRAM103に格納された属性の情報と合わせて、処理命令590が得られる(ステップS576)。
この結果得られた処理命令590が処理命令504の置換結果であり、つまり図4における2〜7行目に記述されている内容の置換結果である。
この置換処理は、画像形成装置が特定の図形の処理が高速である場合などに効果がある。たとえば一般楕円の画像形成が高速である場合、楕円や円のアフィン変換処理結果の図形は必ず一般楕円になることが知られている。この場合、パスに置換するより、入力された描画処理命令が円あるいは楕円の描画命令であることを情報として残しておくほうが、画像形成装置における描画処理の高速化に寄与する。
<実施形態2>
次に、本発明におけるページ記述データ処理装置の第2の実施形態を、添付図面を参照しながら、レイアウト処理について説明する。
図7は、本発明の第2の実施例に係る、ページ記述データ処理装置の構成を説明したブロック図である。ページ記述データ取得部701は、第1のページ記述データを取得する。ページ記述データ解釈部702は、ページ記述データ取得部701で取得した第1のページ記述データを描画命令ごとに解釈する。テキストレイアウト命令取得部705は、ページ記述データ解釈部702で分割されたテキスト描画命令に含まれるテキストレイアウト命令を取得する。テキストレイアウト計算部706は、テキストレイアウト命令取得部705で取得したテキストレイアウト命令を計算処理する。ページ記述データ置換部703は、テキストレイアウト計算部706で処理したテキストレイアウト計算結果をもとにページ記述データ解釈部702で得られたテキスト描画命令を置換し、第2のページ記述データを生成する。ページ記述データ出力部704は、ページ記述データ置換部703で生成された第2のページ記述データをRAM103に格納する。
次に、本発明の第2の実施例に係る、ページ記述データ処理装置10の処理の流れについて、図を参照して説明する。
図8は本発明の第2の実施例に係るページ記述データ処理装置10の処理の流れについて説明したフローチャートである。入力されるページ記述データはRAM103に確保されたバッファ領域に格納されている。まずページ記述データ取得部701においてRAM103上のバッファ領域からページ記述データを取得する(ステップS801)。次にページ記述データ解釈部702において、取得したページ記述データを解釈し、個々の処理命令に分割する(ステップS802)。次に分割された個々の処理命令ごとに以下の処理を、読み込んだ順に行う(ステップS803)。
まず処理命令がテキスト描画処理命令であるかどうかを判定する(ステップS804)。テキスト描画処理命令でなければ、ページ記述データ置換部703においては何も置換処理を行なわずに、ページ記述データ出力部704において、そのままRAM103に出力する(ステップS808)。
ステップS804においてテキスト描画処理命令であると判定された場合は、そのテキスト描画処理に含まれるレイアウト処理命令を抽出する(ステップS805)。テキスト描画処理命令にはレイアウト処理命令が明示されない場合もあるが、多くの場合は、たとえば文字列を描画する場合は1つ前の文字を描画した直後にレイアウトする、といった暗黙のレイアウトルールがある。ここでの処理はそのような暗黙のレイアウトルールも含むものとする。次にテキスト描画処理命令で描画しようとしている文字それぞれに対して、レイアウト計算を行なう(ステップS806)。続いて、そのレイアウト計算結果をもとに処理命令を置換し(ステップS807)、ページ記述データ出力部703よりRAM103に出力する(ステップS808)。
図9に示したページ記述データの例を用いて、ステップS803〜S808の処理についてさらに詳しく説明する。本発明におけるページ記述言語のフォーマットは特定しないが、ここではページ記述言語としてSVGを使用した場合について説明する。
図9に示したページ記述データは2〜4行目で1つのテキスト描画処理命令となっており、X座標10、Y座標100の位置を開始点として“ABCD”という文字列を描画することを指示した内容になっている。<text>要素のdx属性は文字をX軸方向にずらす量を指定する。通常であれば“ABCD”という文字列が詰まった状態で描画されるが、dx属性を指定することによって文字間に間隔を入れたりすることができる。この例では、文字間に10ピクセルの間隔を空けるように指示したものとなっている。
図10は処理の流れを説明した模式図である。ステップS804において、図9に示したページ記述データはテキスト描画処理命令であると判断されるので、図10におけるテキスト描画処理命令取得部に処理命令が入力される。まずレイアウトパラメータ取得部1002において、<text>要素のレイアウト処理命令である、x属性、y属性、dx属性、font−size属性の各属性値を取得し、数値化してRAM103に格納する。次に文字列分割処理部1003で描画対象となっている文字列“ABCD”を‘A’,‘B’,‘C’,‘D’と1文字ずつに分割する。
次に、レイアウト計算処理部1004において、文字ごとにレイアウトする位置の計算を行なう。まず‘A’のレイアウト位置の座標(x1,y1)を求める。‘A’は文字列の先頭なので、レイアウトパラメータの文字列の開始点(x,y)にdx属性によるずらしの量dx[1]を加えた座標が求めるべき座標となる。図9に示した例では、x=10、y=100、dx=10なので、求める座標は(20,100)である。また、ここで‘A’1文字分の幅を計算する。文字の幅はフォントの種類によって異なり、また文字によって異なる場合もある。ここでは固定ピッチフォント(すべての文字が同じ幅となるように定義されたフォント)を使用し、フォントサイズとして20を指定した場合はフォントの幅が20となるようなフォントであると仮定して説明する。ここで求まるフォントの幅w1は20ピクセルである。
続いて、‘B’のレイアウト位置の座標(x2,y2)を求める。‘B’は直前の文字を描画した位置からdx属性によって+10ピクセルX軸方向にずらすように指定されている。従って‘A’のレイアウト位置(x1,y1)から‘A’1文字分の幅w1およびdx属性によるずらしの量dx[2]を加えて求めることができ、レイアウト位置の座標(x2,y2)は(50,100)と求まる。
さらに、‘C’,‘D’についても同じような処理を行ない、それぞれのレイアウト位置座標はC(x3,y3)=(80,100)、D(x4,y4)=(110,100)と求まる。
次に、レイアウト計算処理部1004での計算結果をもとに、テキスト描画処理命令を置換する。すでにレイアウト計算処理部1004で‘A’,‘B’,‘C’,‘D’のそれぞれの位置の計算は完了しているので、この座標情報を<text>要素のx属性、y属性として指定する。x,y属性はx=“x1,x2,x3,x4”,y=“y1,y2,y3,y4”というように記述することによって、描画対象文字列のレイアウトを指定できる。図9で示した例を入力とすれば、置換処理されたテキスト描画処理命令は図10のテキスト描画処理命令1006で示したような記述となり、テキスト描画処理命令出力部1005よりRAM103へ出力される。
以上の処理により、描画処理装置ではテキストのレイアウトに関する計算処理を行なうことなく、単純に指定したx、y属性値のみを参照して描画することができ、描画処理装置の処理の高速化が可能となる。
以上、文字間のピッチを広げて文字列をレイアウトする例についての処理を示した。他にも曲線上に文字列を配置したり(図15)、指定した点に対して相対的に先頭揃え、中央揃え、末尾揃えして配置する(図12)ような場合でも、上記のような方法でレイアウト計算し、置換することが可能である。なお、文字が回転する場合については、SVGでは<text>要素のrotate属性を使用することによって可能となる。
本発明の目的は前述した実施例の機能を実現するソフトウエアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUまたはMPU)が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することとなり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROM、DVDなどを用いることができる。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施例の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOperating System(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれることは言うまでもない。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
本発明の実施形態に係る、ページ記述データ処理装置を含む情報処理装置の構成を示したブロック図である。 本発明の第1の実施例に係る、ページ記述データ処理装置の構成について説明したブロック図である。 本発明の第1の実施例における、ページ記述データ処理装置の処理の流れについて説明したフローチャートである。 本発明の第1の実施例における、ページ記述言語としてSVGを用いたときのページ記述データの一部である。 本発明の第1の実施例による、ページ記述データ処理装置における、ページ記述データ置換処理について説明した模式図である。 本発明の第1の実施例による、ページ記述データ処理装置における、ページ記述データ置換処理について補足説明した図である。 本発明の第2の実施例に係る、ページ記述データ処理装置の構成について説明したブロック図である。 本発明の第2の実施例における、ページ記述データ処理装置の処理の流れについて説明したフローチャートである。 本発明の第2の実施例における、ページ記述言語としてSVGを用いたときのページ記述データの一部である。 本発明の第2の実施例による、ページ記述データ処理装置における、ページ記述データ置換処理について説明した模式図である。 多重のアフィン変換処理をともなって図形描画処理命令を実行するページ記述データの例と、その描画結果について示した図である。 テキストの描画処理を、指定した点に対して相対的に先頭揃え、中央揃え、末尾揃えさせてレイアウトするページ記述データの例と、その描画結果について示した図である。 一般的な2次元のXY座標系において、アフィン変換処理を行なうときの計算方法について示した図である。 テキストの描画処理を、文字間のピッチを広げてレイアウトするページ記述データの例と、その描画結果について示した図である。 テキストの描画処理を、指定した曲線上にレイアウトするページ記述データの例と、その描画結果について示した図である。
符号の説明
10 ページ記述データ処理装置

Claims (7)

  1. 画像記述言語で記述され、矩形形状を幅属性、高さ属性、及び一つの頂点座標で規定する描画命令と、前記矩形形状の変換を規定するアフィン変換式を含む複数の第1の処理命令とからなる第1の画像記述データを処理する画像記述データ処理方法であって、
    前記第1の画像記述データを取得する取得工程と、
    前記取得工程で取得された前記第1の画像記述データから、前記描画命令と複数の前記第1の処理命令とを抽出する抽出工程と、
    前記抽出工程で抽出された複数の前記第1の処理命令に含まれるアフィン変換式を順じ掛けて得られる第2の処理命令と、前記抽出工程で抽出された前記描画命令から変換された矩形形状の4頂点の座標値とから、パス要素を含み、かつアフィン変換式を含まない前記画像記述言語で記述された処理命令からなる第2の画像記述データを生成する生成工程と、
    前記生成工程で生成された前記第2の画像記述データを、前記第2の画像記述データに基づいて画像を描画する画像形成装置に送出する送出工程と、
    を備えることを特徴とする画像記述データ処理方法。
  2. 前記取得工程において、前記第1の画像記述データを保持する保持手段から前記第1の画像記述データを取得することを特徴とする請求項1に記載の画像記述データ処理方法。
  3. 前記第2の画像記述データを前記保持手段で保持する保持工程を更に備えることを特徴とする請求項2に記載の画像記述データ処理方法。
  4. 前記保持手段で保持されている前記第1の画像記述データを前記第2の画像記述データで置換する置換工程を更に備えることを特徴とする請求項3に記載の画像記述データ処理方法。
  5. 前記描画命令は、矩形、楕円、円、楕円弧、円弧、線分、多角形、折れ線、曲線、テキストまたはそれらの組み合わせを描画する命令であることを特徴とする請求項1乃至4のいずれかに記載の画像記述データ処理方法。
  6. 画像記述言語で記述され、矩形形状を幅属性、高さ属性、及び一つの頂点座標で規定する描画命令と、前記矩形形状の変換を規定するアフィン変換式を含む複数の第1の処理命令とからなる第1の画像記述データ保持する保持手段から前記第1の画像記述データを取得する取得手段と、
    前記取得手段により取得された前記第1の画像記述データから、前記描画命令と複数の前記第1の処理命令とを抽出する抽出手段と、
    前記抽出手段により抽出された複数の前記第1の処理命令に含まれるアフィン変換式を順じ掛けて得られる第2の処理命令と、前記抽出手段により抽出された前記描画命令から変換された矩形形状の4頂点の座標値とから、パス要素を含み、かつアフィン変換式を含まない前記画像記述言語で記述された処理命令からなる第2の画像記述データを生成する生成手段と、
    前記生成手段により生成された第2の画像記述データを、前記第2の画像記述データに基づいて画像を描画する画像形成装置に送出する送出手段と、
    を備えることを特徴とする画像記述データ処理装置。
  7. コンピュータを制御して、請求項1乃至のいずれかの画像記述データ処理方法の各工程を機能させることを特徴とするコンピュータプログラム。
JP2005163964A 2005-06-03 2005-06-03 画像記述データ処理方法、装置及びプログラム Expired - Fee Related JP4429212B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005163964A JP4429212B2 (ja) 2005-06-03 2005-06-03 画像記述データ処理方法、装置及びプログラム
US11/444,634 US7852507B2 (en) 2005-06-03 2006-06-01 Method, apparatus, and program for processing image description data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005163964A JP4429212B2 (ja) 2005-06-03 2005-06-03 画像記述データ処理方法、装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2006338478A JP2006338478A (ja) 2006-12-14
JP4429212B2 true JP4429212B2 (ja) 2010-03-10

Family

ID=37493813

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005163964A Expired - Fee Related JP4429212B2 (ja) 2005-06-03 2005-06-03 画像記述データ処理方法、装置及びプログラム

Country Status (2)

Country Link
US (1) US7852507B2 (ja)
JP (1) JP4429212B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4289416B2 (ja) 2007-04-06 2009-07-01 セイコーエプソン株式会社 Svg文書印刷装置およびsvg文書印刷方法
US8379027B2 (en) * 2007-06-20 2013-02-19 Red Hat, Inc. Rendering engine test system
JP2016120552A (ja) * 2014-12-24 2016-07-07 株式会社アイエイアイ プログラム、及び、ソフトウェアの生成方法
CN107221016B (zh) * 2016-03-22 2021-05-18 阿里巴巴集团控股有限公司 SVG格式的Path图形的处理方法及其装置

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4283765A (en) * 1978-04-14 1981-08-11 Tektronix, Inc. Graphics matrix multiplier
GB2141847B (en) * 1983-05-06 1986-10-15 Seiko Instr & Electronics Matrix multiplication apparatus for graphic display
JPS6371779A (ja) 1986-09-12 1988-04-01 インタ−ナショナル・ビジネス・マシ−ンズ・コ−ポレ−ション イメ−ジ表示システム
US5222200A (en) * 1992-01-08 1993-06-22 Lexmark International, Inc. Automatic printer data stream language determination
JP3298965B2 (ja) 1993-02-19 2002-07-08 キヤノン株式会社 画像処理装置及び方法
EP0564201B1 (en) 1992-03-30 2000-05-24 Canon Kabushiki Kaisha Image processing apparatus and method
JP3252986B2 (ja) 1993-05-18 2002-02-04 富士ゼロックス株式会社 画像処理装置
FR2723457B1 (fr) * 1994-08-08 1997-01-31 Oce Graphics France Procede de reconnaissance automatique d'un langage dans lequel des donnees numeriques sont recues
US5729665A (en) * 1995-01-18 1998-03-17 Varis Corporation Method of utilizing variable data fields with a page description language
US6100998A (en) * 1996-11-29 2000-08-08 Fuji Xerox Co., Ltd. Print processor with efficient memory use
JP3585206B2 (ja) 1997-07-02 2004-11-04 キヤノン株式会社 出力装置および出力方法
JP3507318B2 (ja) * 1997-12-03 2004-03-15 キヤノン株式会社 印刷処理方法及び装置及び記憶媒体
JP2000092315A (ja) 1998-09-09 2000-03-31 Fuji Xerox Co Ltd 画像処理装置
US7099027B1 (en) * 1999-11-12 2006-08-29 Electronics For Imaging, Inc. Method and apparatus for distributing print jobs
JP2001219602A (ja) 2000-02-08 2001-08-14 Canon Inc 印刷システム及び印刷制御方法
US6992782B1 (en) * 2000-09-13 2006-01-31 Canon Kabushiki Kaisha Scalable vector graphics print driver
JP4657432B2 (ja) 2000-09-28 2011-03-23 富士通株式会社 階層構造の構造化文書を変換する装置
US9836257B2 (en) * 2001-01-19 2017-12-05 Flexiworld Technologies, Inc. Mobile information apparatus that includes intelligent wireless display, wireless direct display, or transfer of digital content for playing over air the digital content at smart televisions, television controllers, or audio output devices
JP2002318680A (ja) 2001-04-20 2002-10-31 Fuji Xerox Co Ltd 画像処理装置および画像処理方法
JP2004240491A (ja) 2003-02-03 2004-08-26 Seiko Epson Corp 構造化文書変換装置、構造化文書変換方法、及び構造化文書変換プログラム
JP2005084898A (ja) 2003-09-08 2005-03-31 Brother Ind Ltd 印刷データ加工システム、および該システム用のプログラム
US7728999B2 (en) * 2006-07-14 2010-06-01 Hewlett-Packard Development Company, L.P. Printing device driver

Also Published As

Publication number Publication date
US20060274349A1 (en) 2006-12-07
US7852507B2 (en) 2010-12-14
JP2006338478A (ja) 2006-12-14

Similar Documents

Publication Publication Date Title
JP2006050547A (ja) カラー画像形成装置
JP4429212B2 (ja) 画像記述データ処理方法、装置及びプログラム
JP4969515B2 (ja) 画像形成装置、グラデーション図形画像描画方法、グラデーション図形画像描画プログラム、及び記録媒体
JP2004054763A (ja) 画像処理装置、画像処理方法、画像形成装置、印刷装置及びホストpc
US20100083094A1 (en) Handling unhandled raster operations in a document conversion
JP2011175629A (ja) 印刷可能データのレンダリングに関するシステムおよび方法
JP3413829B2 (ja) 描画処理装置および方法
JP2001293936A (ja) 描画情報処理装置および描画情報処理方法
JP2007122188A (ja) 画像形成装置及び画像処理方法、並びにプログラム
JP6357907B2 (ja) 画像処理装置及びプログラム
JP2001075759A (ja) 情報処理装置および情報処理方法
JP2011025539A (ja) プリンタ装置、画像出力システム、レンダリング方法、及びプログラム
JP3211417B2 (ja) ページ記述言語処理装置
JP5139779B2 (ja) 画像形成装置および画像形成方法
JP2006072834A (ja) 画像形成装置および方法
JP6821924B2 (ja) 画像処理装置、画像処理方法
EP2293180B1 (en) PDL data processing device and PDL data creating device
JP2009073083A (ja) 画像形成装置、画像形成方法、および画像形成プログラム
JPH10151815A (ja) 印刷処理装置
JPH1110961A (ja) 印刷処理装置および印刷処理方法
JP3750363B2 (ja) 描画情報処理装置及び描画情報処理方法
JP4325339B2 (ja) 印刷システム、ホストコンピュータ及びプリンタドライバ
JP2006079475A (ja) 印刷処理システム、プログラムおよび記録媒体
JP4950643B2 (ja) 画像形成装置、その制御方法及びコンピュータプログラム
JP4764730B2 (ja) 画像形成装置及び画像形成方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070112

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090331

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090527

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090630

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090825

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090915

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091111

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20091208

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091215

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121225

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131225

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees