(57)【要約】【課題】小さな文字や細線の描画オブジェクトに限ってラスタ化せずベクタのまま文書画像データを生成して蓄積し、印刷時に印刷設定に応じた倍率でレンダリングすれば、ディテール改善は可能であるが、高解像度のオブジェクトと低解像度のオブジェクトが異なる解像度でレンダリングされると、隣り合う描画オブジェクトの境界に隙間が生じる。【解決手段】ＰＤＬデータを解釈し、描画オブジェクトを生成する描画オブジェクト生成手段と、前記描画オブジェクト生成手段により生成された描画オブジェクトに含まれる各画素の座標値を定められた解像度で量子化し、描画データを生成する生成手段と、前記生成手段にて前記定められた解像度で座標値を量子化する際に、量子化によって切り捨てられるべき値を座標値の付加情報として保持する保持手段とを有し、前記保持手段は、前記付加情報を、前記生成手段により生成された描画データの、量子化によって得られる前記定められた解像度での座標値とは異なる領域に保持する。【選択図】  図４
2013008247.tif 000002
【特許請求の範囲】
【請求項１】
入力されたページ記述言語により記述されたＰＤＬデータから描画データを生成する画像処理装置であって、
前記ＰＤＬデータを解釈し、描画オブジェクトを生成する描画オブジェクト生成手段と、
前記描画オブジェクト生成手段により生成された描画オブジェクトに含まれる各画素の座標値を定められた解像度で量子化し、描画データを生成する生成手段と、
前記生成手段にて前記定められた解像度で座標値を量子化する際に、量子化によって切り捨てられるべき値を座標値の付加情報として保持する保持手段と
を有し、
前記保持手段は、前記付加情報を、前記生成手段により生成された描画データの、量子化によって得られる前記定められた解像度での座標値とは異なる領域に保持することを特徴とする画像処理装置。
【請求項２】
前記描画データをレンダリングするレンダリング手段と、
前記レンダリング手段によるレンダリングの解像度が前記定められた解像度でない場合に、前記付加情報を用いて前記定められた解像度にて量子化された座標値を補正する補正手段と
を更に有することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記補正手段は、前記レンダリング手段によるレンダリングの解像度が前記定められた解像度と同一である場合は、前記付加情報を用いた座標値の補正を行わないことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記描画オブジェクト生成手段により生成された描画オブジェクトの属性を判定する判定手段を更に有し、
前記保持手段は、前記描画オブジェクトの属性が所定の属性の場合には、当該描画オブジェクトに対し前記生成手段にて量子化を行っていないデータを描画データとして保持することを特徴とする請求項１乃至３のいずれか一項に記載の画像処理装置。
【請求項５】
前記所定の属性は、前記描画オブジェクトが細線もしくは所定のサイズよりも小さな文字であることを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記付加情報は、前記定められた解像度よりも高解像度における座標値を示し、
当該高解像度における座標値は、前記定められた解像度の座標値との差分により定義されることを特徴とする請求項１乃至５のいずれか一項に記載の画像処理装置。
【請求項７】
前記保持手段は、前記定められた解像度における座標値と前記高解像度における座標値との差分が、当該差分を定義するために予め定められたビット数よりも大きい場合、仮の座標点を追加し、前記予め定められた解像度における座標値に代わって当該仮の座標点の座標値との差分により、前記高解像度における座標値を定義することを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記描画オブジェクト生成手段と前記生成手段と前記保持手段とを有する画像処理装置と異なる別の画像処理装置が、前記レンダリング手段と前記補正手段を備えることを特徴とする請求項２に記載の画像処理装置。
【請求項９】
入力されたページ記述言語により記述されたＰＤＬデータから描画データを生成する画像処理方法であって、
描画オブジェクト生成手段が、前記ＰＤＬデータを解釈し、描画オブジェクトを生成する描画オブジェクト生成工程と、
生成手段が、前記描画オブジェクト生成工程において生成された描画オブジェクトに含まれる各画素の座標値を定められた解像度で量子化し、描画データを生成する生成工程と、
保持手段が、前記生成工程にて前記定められた解像度で座標値を量子化する際に、量子化によって切り捨てられるべき値を座標値の付加情報として記憶部に保持する保持工程と
を有し、
前記保持工程において、前記付加情報を、前記生成工程により生成された描画データの、量子化によって得られる前記定められた解像度での座標値とは異なる領域に保持することを特徴とする画像処理方法。
【請求項１０】
コンピュータを、
ページ記述言語により記述されたＰＤＬデータを解釈し、描画オブジェクトを生成する描画オブジェクト生成手段、
前記生成手段により生成された描画オブジェクトに含まれる各画素の座標値を定められた解像度で量子化し、描画データを生成する生成手段、
前記生成手段にて前記定められた解像度で座標値を量子化する際に、量子化によって切り捨てられるべき値を座標値の付加情報として保持する保持手段
として機能させ、
前記保持手段は、前記付加情報を、前記生成手段により生成された描画データの、量子化によって得られる前記定められた解像度での座標値とは異なる領域に保持することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はネットワークに接続され、文書画像データを処理する機能を有する画像処理装置に関する。特に、文書画像データを受信し、画像出力する機能に関する。
【背景技術】
【０００２】
従来、高解像度のレンダリング処理を高速に行う技術として、例えば、特許文献１で開示されている技術がある。また、ページ中の特定部分のみ高解像度でレンダリングすることによってレンダリング処理のコストを低下させる技術として、特許文献２で開示されている技術がある。さらに一般的に知られる技術として、低解像度のレンダリング済み画像に対してピクセル補間やエッジ形状パターンマッチングの手法を適用して出力解像度を上げる、スムージング技術が広く用いられている。
【０００３】
上記、従来技術を組み合わせることで画像生成の処理コストを抑えつつ、見た目の高画質化を可能にすることができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００―１３７８２５号公報
【特許文献２】特開２００９−２７４３６６号公報
【特許文献３】特開２０１０−１７１６２２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、プリンタ機能を備えるデジタル複合機は、文書画像データを蓄積できるボックス機能を活用することで、蓄積時に文書画像データに設定されていた印刷設定を、印刷出力時に変更することができる。デジタル複合機の印刷設定の項目において、集約印刷、ページサイズ変更、解像度切り替えの機能に関しては、画像の拡大縮小を伴う機能がある。従来のデジタル複合機のボックス機能では、文書画像データ保存時に設定されていた画像サイズと解像度を印刷出力時に変更すると、画像の拡大縮小処理に伴って画質的な劣化が発生するという課題があった。これは、ボックス蓄積されている文書画像データが、保存時の画像サイズと解像度に合わせたラスタイメージであることに起因している。拡大縮小に伴う画質劣化を軽減するために、スムージング技術を適用することも行われているが、ラスタ化されて保存された描画オブジェクトを変倍すると、画像中の位置によって線幅がことなる結果になることがある。
【０００６】
例えば、特許文献３では、変倍を行っても線幅を安定させることができるが、線幅の問題が改善されても、そもそも微細な描画を含む画像データでは、どうしても変倍やスムージング後にディテールが失われてしまうという欠点がある。
【０００７】
ディテールを保存したい描画オブジェクト、例えば小さな文字や細線の描画オブジェクトに限ってラスタ化せずにベクタ情報のまま文書画像データを生成して蓄積し、プリント時に印刷設定に応じた倍率でレンダリングすれば、ディテール改善は可能ではある。ただし、文書画像データが、高解像度のオブジェクトと低解像度のオブジェクトの両方を含むと、図１０に示すように、複数の描画オブジェクトが異なる解像度でレンダリングされることによって、隣り合う描画オブジェクトの境界に隙間が生じる場合がある。
【０００８】
図１０において、左側はレンダリング前の描画オブジェクトの実数座標値の表現での配置例である。これらのオブジェクトがレンダリングされる場合の解像度でのｐｉｘｅｌ境界位置をグリッドとして重ねて表現している。右側は、レンダリングによってその描画オブジェクトが特定の解像度で座標値を量子化されて塗られるｐｉｘｅｌを表している。図１０の一番上や２番目のように、濃いグレーで表現されているオブジェクトと薄いグレーで表現されているオブジェクトとを、同じ解像度でレンダリングして量子化した場合は、右側に示すように各オブジェクトの間に隙間は生じない。一方、一番下の図では濃いグレーで表現されている小文字描画オブジェクトは１２００ｄｐｉの解像度で量子化され、塗られるｐｉｘｅｌが決定されている。また薄いグレーで表現されているグラフィックス描画オブジェクトは６００ｄｐｉの解像度で量子化され、塗られるｐｉｘｅｌが決定されている。この例に示すようなオブジェクト配置の場合、各解像度で量子化される実空間での位置が異なるので、二つの異なるオブジェクト間に塗られないｐｉｘｅｌが生じる場合がある。
【０００９】
本発明は、文書画像データ中にラスタ化されて保存されている低解像度オブジェクトの座標精度を改善することによって、上記課題を解決する。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本願発明の係る画像処理装置は以下の構成を有する。すなわち、入力されたページ記述言語により記述されたＰＤＬデータから描画データを生成する画像処理装置であって、前記ＰＤＬデータを解釈し、描画オブジェクトを生成する描画オブジェクト生成手段と、前記描画オブジェクト生成手段により生成された描画オブジェクトに含まれる各画素の座標値を定められた解像度で量子化し、描画データを生成する生成手段と、前記生成手段にて前記定められた解像度で座標値を量子化する際に、量子化によって切り捨てられるべき値を座標値の付加情報として保持する保持手段とを有し、前記保持手段は、前記付加情報を、前記生成手段により生成された描画データの、量子化によって得られる前記定められた解像度での座標値とは異なる領域に保持する。
【発明の効果】
【００１１】
本発明によれば、文書画像データ中にラスタ化されて保存されている低解像度描画オブジェクトの描画データに対して、座標精度を補正するための付加情報を追加することによって、低解像度のオブジェクトを描画する際の品質向上が可能になる。
【図面の簡単な説明】
【００１２】
【図１】デジタル複合機を含む印刷環境の全体構成例を示す図。
【図２】デジタル複合機の制御装置の内部構成を示すブロック図。
【図３】文書画像データの生成の流れの例を示す図。
【図４】文書画像データのデータ構成を示す図。
【図５】文書画像データ生成プログラムの処理内容を模式化した図。
【図６】文書画像データ生成プログラムの別の処理内容を模式化した図。
【図７】文書画像データをレンダリングするプログラムの処理を示すフローチャート。
【図８】エッジ座標情報のみを用いたレンダリング処理を示すフローチャート。
【図９】エッジ座標情報と付加情報を用いたレンダリング処理を示すフローチャート。
【図１０】課題を説明するための図。
【図１１】画像倍率を決定する際に用いるパラメータと画像倍率との関係を示す図。
【発明を実施するための形態】
【００１３】
以下、本発明を実施するための最良の形態について図面を用いて説明する。なお、以下に示すシステムの構成等は一例であり、これに限定するものではない。
【００１４】
＜第一実施形態＞
［システム構成］
本実施形態に係るデジタル複合機の全体構成を、図１を参照しながら説明する。本実施形態に係るデジタル複合機４０３は、制御装置１００、操作部１５０、リーダ部２００、プリンタ部３００を含む。また、ＬＡＮ４００を介してＰＣ４０１、４０２に接続されている。リーダ部（画像入力装置）２００は、原稿画像を光学的に読み取り、画像データに変換する。リーダ部２００は、原稿を読取るための機能を有するスキャナユニット２１０と、原稿用紙を搬送するための機能を有する原稿給紙ユニット２５０とで構成される。
【００１５】
プリンタ部（画像出力装置）３００は、記録紙を搬送し、その上に画像データを可視画像として印字して装置外に排紙する。プリンタ部３００は、複数種類の記録紙カセットを有する給紙ユニット３１０と、画像データを記録紙に転写、定着させる機能を有するマーキングユニット３２０と、印字された記録紙を機外へ出力する機能を有する排紙ユニット３３０とで構成される。
【００１６】
制御装置１００は、リーダ部２００、プリンタ部３００と電気的に接続され、さらにＬＡＮ４００を介して、ＰＣ４０１、４０２や、インターネット上の各種サーバと接続される。制御装置１００は、リーダ部２００を制御して、原稿の画像データを読込み、プリンタ部３００を制御して画像データを記録用紙に出力してコピー機能を提供する。また、制御装置１００は、リーダ部２００にて読取った画像データを、コードデータに変換し、ＬＡＮ４００を介してＰＣ等へ送信するスキャナ機能を提供する。また、制御装置１００は、ＰＣ等からＬＡＮ４００を介して受信したＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）データを含むプリントジョブデータを、画像データに変換し、プリンタ部３００に出力するプリンタ機能を提供する。
【００１７】
更には、制御装置１００は、リーダ部２００から読み取った画像データや、ＰＣ等から受信したＰＤＬデータを含むプリントジョブデータから、文書画像データを生成する。そして、制御装置１００は、制御装置１００内の２次記憶装置に文書画像データを保存するボックス蓄積機能、および、上記ボックス蓄積機能で制御装置１００内の２次記憶装置に蓄積された文書画像データを変換し、プリンタ部３００に出力するボックス印刷機能を提供する。
【００１８】
操作部１５０は、制御装置１００に接続され、液晶タッチパネル等で構成され、画像入出力システムを操作するためのユーザＩ／Ｆを提供する。ＰＣ４０１，４０２は、ＰＤＬデータを含むプリントジョブデータの生成を行い、ＬＡＮ４００を介して、制御装置１００にプリントジョブデータを送信する。
【００１９】
図２は、本実施形態におけるデジタル複合機の制御装置の一構成例を示すブロック図である。図２において、制御装置１００は、画像入力デバイスであるリーダ部２００や画像出力デバイスであるプリンタ部３００と接続し、画像データの読み取りやプリント出力のための制御を行う。また、制御装置１００は、ＬＡＮ４００と接続することで、ＰＤＬデータを含むプリントジョブデータやデバイス情報をＬＡＮ４００経由で入出力するための制御を行う。
【００２０】
さらに、制御装置１００は、ＬＡＮ４００経由で受信したＰＤＬデータを含むプリントジョブデータ、もしくは内蔵する記憶装置（記憶部）であるＨＤＤ１０４内に保存されている文書画像データをプリント出力可能なイメージに展開する。さらに制御装置１００は、ＬＡＮ４００経由で受信したＰＤＬデータを含むプリントジョブデータをフォーマット変換し、生成した文書画像データを内蔵する記憶装置であるＨＤＤ１０４内に保存する。
【００２１】
ＣＰＵ１０１は、デジタル複合機４０３全体を制御するための中央処理装置である。ＲＡＭ１０２は、ＣＰＵ１０１が動作するためのシステムワークメモリであり、入力されたＰＤＬデータを含むプリントジョブデータや変換中の文書画像データ、さらに印刷実行時の各種属性を一時記憶するためのメモリでもある。ＲＯＭ１０３はブートＲＯＭであり、システムのブートプログラムが格納されている。ＨＤＤ１０４はハードディスクドライブであり、各種処理のためのシステムソフトウェアや、変換された文書画像データなどを格納する。
【００２２】
操作部Ｉ／Ｆ１０５は、操作部１５０に対するインタフェース部であり、操作部１５０に対して操作画面データを出力する。また、操作部Ｉ／Ｆ１０５は、操作部１５０から操作者が入力した情報をＣＰＵ１０１に伝える役割をする。ネットワークインタフェース１０７は、例えばＬＡＮカード等で実現され、ＬＡＮ４００に接続して外部装置との間で情報の入出力を行う。以上のユニットがシステムバス１０６上に配置されている。
【００２３】
イメージバスＩ／Ｆ１０９は、システムバス１０６と画像データを高速で転送する画像バス１１０とを接続するためのインタフェースであり、データ構造を変換するバスブリッジである。画像バス１１０上には、デバイスＩ／Ｆ１１１、プリンタ画像処理部１１２が接続される。
【００２４】
デバイスＩ／Ｆ１１１は、リーダ部２００やプリンタ部３００と制御装置１００とを接続し、画像データの同期系／非同期系の変換を行う。プリンタ画像処理部１１２は、プリント出力する画像データに対して、プリンタ部３００に応じた補正等の画像処理を行う。
【００２５】
［ボックス保存機能］
次に図３を用いて、デジタル複合機４０３の制御装置１００で動作する、ボックス保存機能プログラムと、ボックス印刷機能プログラムの説明を行う。まず、図３を用いて、プリントジョブデータ中のＰＤＬデータから描画データである文書画像データの生成を行いＨＤＤ１０４内に保存するボックス保存機能プログラムの構成を説明する。また同時にボックス保存機能プログラムによる文書画像データ生成の手順を説明する。
【００２６】
ＰＤＬデータ３００１は、ＲＡＭ１０２もしくはＨＤＤ１０４内に記憶されており、ＰＤＬ解釈部３００２によって読み込まれる。ここでＰＤＬデータ３００１において、ＬＩＰＳ（登録商標）  ＬＸやＵＦＲ  IIなどのページ記述言語が使われる。また、ＰＤＬデータ３００１が定義する平面座標系を以後「ｓｒｃ座標系」と呼ぶ。ＰＤＬ解釈部３００２は、ＰＤＬデータ３００１を解釈する。さらに描画オブジェクト生成部３００３にて、解釈されたＰＤＬデータ３００１から印刷に適した複数の描画オブジェクトを印刷に適した順に生成する。
【００２７】
１ページに含まれる描画オブジェクトは、描画の重なりを考慮し並べられる。重なりによって覆い隠される描画オブジェクトが描画順において先に並べられ、前出のオブジェクトの少なくとも一部の上に重ねて描画される描画オブジェクトほど後に並べられる。
【００２８】
描画オブジェクトはそれぞれ、Ｔｅｘｔ、Ｓｍａｌｌ＿ｔｅｘｔ、Ｇｒａｐｈｉｃｓ、ｔｈｉｎ＿Ｌｉｎｅ、Ｉｍａｇｅの５種類のオブジェクト属性のいずれかを保持している。Ｔｅｘｔ属性を有する描画オブジェクトは、アウトラインフォントのベクタデータもしくはビットマップフォントのビットマップデータを保持している。Ｓｍａｌｌ＿ｔｅｘｔ属性を有する描画オブジェクトは、フォントデータを保持する描画オブジェクトのうち、特に文字サイズが小さな描画オブジェクトである。ここでは、所定のサイズよりも小さなサイズを有する文字とする。Ｇｒａｐｈｉｃｓ属性を有する描画オブジェクトは、ベクタ形式で記述されたパスデータを保持している。ｔｈｉｎ＿Ｌｉｎｅ属性を有する描画オブジェクトは、パスデータを保持する描画オブジェクトのうち、特に線幅が小さな描画オブジェクトである。ここでは、線幅が所定値以下の線が有するものとする。Ｉｍａｇｅ属性を有する描画オブジェクトは、非圧縮のビットマップ画像データもしくは圧縮画像データを保持している。
【００２９】
小文字細線オブジェクト分離部３００４は、描画オブジェクト生成部３００３から描画オブジェクトを受け取り、オブジェクト属性の判定を行う。オブジェクト属性が“Ｓｍａｌｌ＿ｔｅｘｔ”、または“ｔｈｉｎ＿Ｌｉｎｅ”である場合には、描画オブジェクトを変更することなく、文書画像データ生成部３００７に渡す。オブジェクト属性が“Ｔｅｘｔ”、“Ｇｒａｐｈｉｃｓ”、“Ｉｍａｇｅ”のいずれかであった場合には、描画オブジェクトを座標ヒント付エッジデータ生成部３００５に渡す。
【００３０】
座標ヒント付エッジデータ生成部３００５は、Ｔｅｘｔ、Ｇｒａｐｈｉｃｓ、Ｉｍａｇｅの属性の各オブジェクトを、エッジデータと呼ばれるデータ構造に変換し、文書画像データ生成部３００７に渡す。エッジデータについては、図４および図５を用いて後述する。ここで、座標ヒント付エッジデータ生成部３００５は、エッジデータとしてスプールし（エッジデータスプール３００６）、当該文書画像データに対する処理が終了したら、文書画像データ生成部３００７へ渡す。
【００３１】
文書画像データ生成部３００７は、小文字細線オブジェクト分離部３００４もしくは座標ヒント付エッジデータ生成部３００５から描画オブジェクトを順に受け取り、定められた文書画像データフォーマットに変換する。ファイルスプーラ３００８は、文書画像データ生成部３００７によって随時変換され出力される文書画像データを一時的に溜め込み、文書画像データ３００９として保存する。文書画像データ生成部３００７がすべての描画オブジェクトの変換処理を終えると、生成された文書画像データ３００９は、ボックス保存機能のファイル保存先であるＨＤＤ１０４に転送される。
【００３２】
次に、ＨＤＤ１０４内に保存されている文書画像データ３００９を印刷出力画像に変換しプリンタ部３００から出力する、ボックス印刷機能プログラムの構成を説明する。また同時に、ボックス印刷機能プログラムが文書画像データ３００９を印刷出力画像に変換する手順を説明する。プリンタ部３００が描く画像上に定義される座標系平面を「ｄｅｖｉｃｅ座標系」と呼ぶことにする。
【００３３】
まず、ユーザが操作部１５０にてボックス印刷機能を操作することによって、ボックス印刷機能プログラムは動作を開始する。ボックス印刷機能プログラムはユーザ操作に従い、ＨＤＤ１０４内に保存されていてユーザによって印刷指示された文書画像データ３００９をインストラクション処理部３０１０に転送する。インストラクション処理部３０１０は、文書画像データ３００９中のインストラクション（後述）を読み込み、インストラクションの種類ごとに定められた処理を行う。
【００３４】
座標ヒント付エッジデータ展開部３０１１は、文書画像データ３００９中のヒント付エッジデータを展開し、ｄｅｖｉｃｅ座標系で表現されたエッジデータを生成する。ここでの「ヒント付きエッジデータ」とは、座標ヒント付エッジデータ生成部３００５で生成されたデータである。つまり、“Ｔｅｘｔ”、“Ｇｒａｐｈｉｃｓ”、“Ｉｍａｇｅ”のいずれかの属性を有する描画オブジェクトが対象となる。
【００３５】
ベクタオブジェクトエッジ生成部３０１２は、小文字細線オブジェクト分離部３００４にて分離され文書画像データ３００９に埋め込まれたベクタデータを処理する。つまり、ここで扱うデータは、“Ｓｍａｌｌ＿ｔｅｘｔ”、“ｔｈｉｎ＿Ｌｉｎｅ”のいずれかの属性を有する描画オブジェクトが対象となる。その際、ベクタデータはスキャンライン変換され、ｄｅｖｉｃｅ座標系平面上でベクタパスとスキャンラインとの交点の座標値を含む、エッジデータが生成される。
【００３６】
座標ヒント付エッジデータ展開部３０１１およびベクタオブジェクトエッジ生成部３０１２にて生成されたｄｅｖｉｃｅ座標系でのエッジデータは、Ｌｅｖｅｌ処理部３０１３にて、エッジデータのレベル情報を用いて、描画オブジェクトの重なり状態が決定される。ここでのレベル情報については、後述する。その後、レベルの重なり状態が決定された全てのエッジデータは、Ｐｉｘｅｌ生成部３０１４に渡され、エッジデータ中のレベルごとに指定されたＦｉｌｌ（後述）にて定められる色値を有するＰｉｘｅｌが生成される。ここで生成されたＰｉｘｅｌは、ページイメージスプーラ３０１５によってＨＤＤ１０４内に確保されたページスプール３０１６に蓄えられ、１ページ分の画像が生成された時点でプリンタ部３００に転送され印刷される。
【００３７】
［データ構造］
次に図４を用いて、本実施形態に係るボックス保存機能およびボックス印刷機能で用いられる文書画像データファイルの内部データ構造と、個々のデータの役割について説明をする。
【００３８】
本実施形態に係る文書画像データ３００９には、１ページに相当する領域をレンダリングするために必要な情報が含まれる。図４のインストラクション４００１〜４００８は、レンダリング処理の各段階の処理開始を指示するインストラクションである。個々のインストラクションは必要に応じて付加情報を有する。本実施形態に係るプログラムは、文書画像データ中のインストラクションを順に処理することで、画像を生成する。
【００３９】
インストラクション４００１は、＜ＳＴＡＲＴ＿ＰＡＧＥ＞であり、付加情報として印刷時に用いることのできる各種設定値が記録されているＰａｇｅＩｎｆｏ４１００へのアドレス４００２（ＰａｇｅＩｎｆｏＡｄｄｒｅｓｓ）を有する。図３に示したインストラクション処理部３０１０は、＜ＳＴＡＲＴ＿ＰＡＧＥ＞を読み込むと、印刷画像を生成するための各種準備を行う。インストラクション処理部３０１０は、ページサイズやレイアウト情報、また解像度に関するデータ内での設定値と、操作部１５０でユーザによって指定された設定値との比較を行い、拡大縮小が行われる場合には、ｐｉｘｅｌ倍率の算出を行う。
【００４０】
インストラクション４００３は、＜ＬＯＡＤ＿ＨＩＮＴＥＤ＿ＥＤＧＥ＞であり、Ｓｃａｎｌｉｎｅエッジリストアドレス（ＥｄｇｅＬｉｓｔＡｄｄｒｅｓｓ）、ｈｉｎｔ情報アドレス（ＨｉｎｔＡｄｄｒｅｓｓ）、フィルテーブルアドレス（ＬｅｖｅｌＡｄｄｒｅｓｓ）の三つのアドレスを付加情報４００４として有する。さらに付加情報４００４には、像域フラグ（Ｔｅｘｔ、Ｇｒａｐｈｉｃｓ、またはＩｍａｇｅ）、およびｓｒｃ座標系上のｙ座標値も記述される。インストラクション処理部３０１０は、＜ＬＯＡＤ＿ＨＩＮＴＥＤ＿ＥＤＧＥ＞を読み込むと、付加情報４００４を座標ヒント付エッジデータ展開部３０１１に転送する。その後、座標ヒント付エッジデータ展開部３０１１はｄｅｖｉｃｅ座標系で表現されたエッジデータを生成する。
【００４１】
インストラクション４００５は、＜ＬＯＡＤ＿ＶＥＣＴＯＲ＿ＳＥＧ＞であり、付加情報４００６としてベクタセグメントアドレス（ＶｅｃｔＳｅｇＡｄｄｒｅｓｓ）、フィルテーブルアドレス（ＬｅｖｅｌＡｄｄｒｅｓｓ）の二つのアドレスを有する。さらに、インストラクション４００５は、像域フラグ（Ｓｍａｌｌ＿ｔｅｘｔ、またはｔｈｉｎ＿Ｌｉｎｅ）からなる付加情報を有する。インストラクション処理部３０１０は、＜ＬＯＡＤ＿ＶＥＣＴＯＲ＿ＳＥＧ＞を読み込むと、付加情報４００６をベクタオブジェクトエッジ生成部３０１２に転送する。その後、ベクタオブジェクトエッジ生成部３０１２はｄｅｖｉｃｅ座標系で表現されたエッジデータを生成する。
【００４２】
インストラクション４００７は、＜ＲＥＮＤＥＲ＿ＥＤＧＥＳ＞であり、付加情報はない。インストラクション処理部３０１０は、＜ＲＥＮＤＥＲ＿ＥＤＧＥＳ＞を読み込むと、ページ内のすべてのｄｅｖｉｃｅ座標系で表現されたエッジ情報がそろった状態と判定する。そして、ボックス印刷機能プログラムはＬｅｖｅｌ処理部３０１３、Ｐｉｘｅｌ生成部３０１４およびページイメージスプーラ３０１５の処理が開始される。
【００４３】
インストラクション４００８は＜ＥＮＤ＿ＰＡＧＥ＞であり、付加情報はない。インストラクション処理部３０１０は、＜ＥＮＤ＿ＰＡＧＥ＞を読み込むと、１ページ分の画像生成処理がすべて完了したと判断する。その後、ボックス印刷機能プログラムは、ページスプール３０１６内に保持された生成済み画像をプリンタ部３００に転送する。
【００４４】
ＰａｇｅＩｎｆｏ４１００には、ＰＤＬデータ３００１中に記載されていた、ページサイズ、集約レイアウト情報、データ解像度、さらに用紙情報や後処理に関する情報が記録されている。
【００４５】
エッジデータ４２００には、座標ヒント付エッジデータ生成部３００５にて生成された、Ｓｃａｎｌｉｎｅ交点での整数値のエッジ（後述）の情報を格納している。
【００４６】
座標ヒント情報４３００には、上述のＳｃａｎｌｉｎｅエッジに対する１／４座標ヒント情報４３００と、Ｓｕｂ−Ｓｃａｎｌｉｎｅエッジに関するエッジデータ４３０１，４３０２，４３０３が格納されている。この座標ヒント情報４３００およびエッジデータ４３０１〜４３０３がエッジ座標を補正するために用いられる。詳細については、後述する。
【００４７】
インストラクション４００３、４００５にて参照されるレベル情報４４００において、「レベル」とは、描画されるオブジェクトの重なりを示す概念であり、大きいレベル値を有する描画オブジェクトは、小さなレベル値を有する描画オブジェクトを覆い隠す。つまり、レベルの高い描画オブジェクトが、描画順において、より上に重ねられることとなる。そのため同一座標上に複数の描画オブジェクトが重なり合って存在する場合には、最もレベル値の大きな描画オブジェクトのみがレンダリングされる。一つのレベルには、レベル値を示す番号と、そのレベルに対応するＦｉｌｌが格納されているアドレス情報が保持されている。「Ｆｉｌｌ」とは、画素の色値を決定するために必要な情報であり、Ｆｉｌｌテーブル４５００に収められている。
【００４８】
ベクタセグメント４６００は、ベクタオブジェクトエッジ生成部３０１２が処理すべきベクタパスの座標情報を保持している。ベクタパスは、複数の連続した線分の集合で表現されており、ベクタパス開始点を示す絶対座標値（ｘ，ｙ）、開始点から始まる線分の終点を示す相対座標値（Ｄｘ，Ｄｙ）である。さらに、これに続く線分も相対座標値として表される。
【００４９】
ラスタイメージデータ４７００は、Ｆｉｌｌテーブル内の情報の一つの形態としてそのアドレスが記述されることでメモリ中での位置が示される。Ｉｍａｇｅで描画される領域に対する色値として、適切に拡大縮用変換されたラスタイメージデータ４７００が用いられる。
【００５０】
［処理説明］
次に図５を用いて、デジタル複合機４０３の制御装置１００で動作するボックス保存機能プログラムにおける、座標ヒント付エッジデータ生成部３００５での処理を詳細に説明する。ここでの処理において、座標ヒント付エッジデータ生成部３００５は、描画オブジェクトに対し、その描画オブジェクトに含まれる画素の座標を、予め定められた解像度に量子化することで算出する。さらに、座標ヒント付エッジデータ生成部３００５は、量子化により、切り捨てられるべき座標値を所定の間隔で算出し、保持する。なお、本実施形態において、切り捨てられる座標値に対する所定の間隔は、量子化により求められた座標値に対して、１／４ごとの間隔とする。したがって、ここでの処理において、量子化により求められる座標を整数座標値と記載し、切り捨てられるべき値を含む座標を実数座標値と記載する。
【００５１】
図５の左側に太い実線で示されている格子は、ＰＤＬデータ３００１が定義しているｓｒｃ座標系平面上での整数座標値を示す格子である。また縦向きの細い点線および横向きのやや細い破線で示されている格子は、ｓｒｃ座標系平面上で整数座標値の間を四等分した、１／４、２／４、３／４の実数座標値を示す格子である。
【００５２】
ｓｒｃ座標系は、左上隅を原点とし、横方向がｘ、縦方向がｙの平面座標系で定義される。ｓｒｃ座標系平面で横向きの線が矢印となっているのは、この線が示すｙ座標値を用いてスキャンライン変換が行われることを表現している。斜めに示された太い実線は、Ｇｒａｐｈｉｃｓ属性を有する描画オブジェクト内にベクタ形式で記述されたパスを表現している。またこのパスの左側に隣接しているグレーの領域は、パスに付随する塗り領域を表現している。
【００５３】
座標ヒント付エッジデータ生成部３００５は、スキャンライン変換をｙ座標およびｘ座標が増加する方向に実行する。本明細書において、スキャンライン変換によって算出される、スキャンラインとパスの交点位置の座標値を端数切り上げ（ｃｅｉｌ）したものを、「エッジ座標値」と定義する。またこのエッジ座標値で示される位置を「エッジ」と定義する。
【００５４】
ここでの処理において、まず座標ヒント付エッジデータ生成部３００５は、整数ｙ座標値でスキャンライン変換を実施する。この結果得られるエッジ座標値を「Ｓｃａｎｌｉｎｅ交点座標」とする。Ｓｃａｎｌｉｎｅ交点座標のｘ座標値は、まずは整数に切り上げられ、１５ｂｉｔの整数として保持される（図５に示すアイコン△に相当）。本実施形態では、この１５ｂｉｔの値には、さらに１ｂｉｔの情報（ＩｓＥｄｇｅフラグ）が付加された上で保持される。なお、ＩｓＥｄｇｅフラグの定義については後述する。
【００５５】
座標ヒント付エッジデータ生成部３００５は、さらに高精度なエッジ座標値として、整数−３／４、整数−２／４、整数−１／４、整数のいずれかに切り上げられたｘ座標値も算出する。ここでは、この値を「１／４ヒント付き座標値」と呼ぶ。Ｓｃａｎｌｉｎｅ交点座標の１／４座標ヒント情報（ｘ）は、整数ｘ座標値に対する座標値差分（差分座標）として２ｂｉｔ値で表現される。本実施形態において、−３／４は“１１”、−２／４は“１０”、−１／４は“０１”、座標値差分無しは“００”の２ｂｉｔ進数値が適用され、保持される（図５に示すアイコン◇に相当）。
【００５６】
次に、座標ヒント付エッジデータ生成部３００５は、整数＋１／４、整数＋２／４、整数＋３／４のそれぞれの実数ｙ座標値でのスキャンライン変換を実施する。この結果として得られるエッジ座標値をＳｕｂ−Ｓｃａｎｌｉｎｅ交点座標とする。Ｓｕｂ−Ｓｃａｎｌｉｎｅ交点座標値（ｘ）は、整数値に１／４単位の実数値を合わせた値に切り上げられる。切り上げられた座標値は、直前のＳｃａｎｌｉｎｅ交点のエッジ座標値（ｘ）に対する差分値（１／４の倍数）として３ｂｉｔ値と符合ｂｉｔで表現され、さらに１ｂｉｔのＩｓＥｄｇｅフラグを付加した５ｂｉｔデータとして保持される。このような処理を整数＋１／４、整数＋２／４、整数＋３／４のそれぞれの実数ｙ座標値で順に３回行うため、合計１５ｂｉｔ（５ｂｉｔ×３ライン）のデータが生成され保持される（図５に示すアイコン●に相当）。なお、ＩｓＥｄｇｅフラグは、当該スキャンライン上にエッジが有るか否かを示す。
【００５７】
ところで、図５のパス（斜めに示された太い実線）は、その下端を超えた範囲（ｙ＞２３＋２／４）では、Ｓｃａｎｌｉｎｅ交点およびＳｕｂ−Ｓｃａｎｌｉｎｅ交点を持たないため、エッジも存在しない。Ｓｕｂ−Ｓｃａｎｌｉｎｅ交点を持たない場合でも、エッジ座標値を保持するためのデータ領域は確保されている。そのため、座標ヒント付エッジデータ生成部３００５は、Ｓｕｂ−Ｓｃａｎｌｉｎｅ交点を持たない場合にはそのエッジ座標値として“０”、さらにＩｓＥｄｇｅフラグに“０”をセットする。
【００５８】
図５のパスの上端付近（ｙ＝２１＋２／４）においては、Ｓｕｂ−Ｓｃａｎｌｉｎｅ交点は存在するが、上端を超えた範囲（ｙ＜２１＋２／４）ではＳｃａｎｌｉｎｅ交点およびＳｕｂ−Ｓｃａｎｌｉｎｅ交点を持たない。このような場合には、座標ヒント付エッジデータ生成部３００５は、エッジ上端より上側の整数ｙ座標値にて「架空のエッジ」を設定する。そのためにまず、座標ヒント付エッジデータ生成部３００５は、パス上端に一番近い整数ｙ座標（ｙ＝２２）を起点に、ｙ座標値が減少する方向（上側）に向かって、Ｓｕｂ−Ｓｃａｎｌｉｎｅ交点からエッジ座標を算出するスキャンライン変換を実施する。Ｓｕｂ−Ｓｃａｎｌｉｎｅ交点が存在する場合は、座標ヒント付エッジデータ生成部３００５は、算出された交点座標値を実数値としてＲＡＭ１０２中の一時的な領域に保持し、さらにＩｓＥｄｇｅフラグを表す値として“１”を併せて保持する。パス上端を超える範囲（ｙ＜２１＋２／４）ではＳｕｂ−Ｓｃａｎｌｉｎｅ交点がないため、座標ヒント付エッジデータ生成部３００５は、ＲＡＭ１０２中の一時的な領域にＩｓＥｄｇｅフラグを表す値である“０”のみを保持する。
【００５９】
次に、座標ヒント付エッジデータ生成部３００５は、整数ｙ座標値での架空のＳｃａｎｌｉｎｅ交点の算出を行う。座標ヒント付エッジデータ生成部３００５は、前出のＳｕｂ−Ｓｃａｎｌｉｎｅ交点値のうち、実数ｙ座標値が小さい（ｙ＝２１＋２／４）におけるＳｕｂ−ＳｃａｎｌｉｎｅでのＳｕｂ−Ｓｃａｎｌｉｎｅ交点座標値（ｘ）を実数値で算出する。座標ヒント付エッジデータ生成部３００５は、これを実数値から整数に切り上げ（ｃｅｉｌ）、架空のエッジ座標値（ｘ＝４２６）として１５ｂｉｔ整数を設定する。また、座標ヒント付エッジデータ生成部３００５は、ＩｓＥｄｇｅフラグに“０”を設定して保持する。これがｙ＝２１での架空のＳｃａｎｌｉｎｅ交点に対するエッジとなる。この架空のエッジに対する１／４座標ヒント情報（２ｂｉｔ）は、“００”として設定され保持される。さらにここまでの処理においてＲＡＭ１０２中の一時的な領域に保持されていたＳｕｂ−Ｓｃａｎｌｉｎｅ交点に関する実数座標値とＩｓＥｄｇｅフラグは、架空のＳｃａｎｌｉｎｅ交点のエッジ座標に対する差分値（１／４の倍数）として再計算される。そして、３ｂｉｔ値と符合ｂｉｔ、さらに１ｂｉｔのＩｓＥｄｇｅフラグを付加して保持される。Ｓｕｂ−Ｓｃａｎｌｉｎｅ交点は、整数＋１／４、整数＋２／４、整数＋３／４のそれぞれの実数ｙ座標値で再計算されるため、合計１５ｂｉｔのデータが生成され保持される。
【００６０】
ここで、図４と図５とに示す各データの対応関係を示す。図４のエッジデータ４２００は、図５のＳｃａｎｌｉｎｅ交点座標の整数（１６ｂｉｔ）に相当する。また、図４の座標ヒント情報４３００は、図５のＳｃａｎｌｉｎｅ交点座標の１／４ヒント（２ｂｉｔ）に相当する。また、図４のエッジデータ４３０１〜４３０３それぞれは、図５のＳｕｂ−Ｓｃａｎｌｉｎｅ交点座標の１／４座標の差分の各値（５ｂｉｔ）に対応する。
【００６１】
［パスの水平時の処理］
ところで図５を用いて説明した座標ヒント付エッジデータ生成部３００５での処理では、パスの傾きが水平に近い場合には、Ｓｃａｎｌｉｎｅ座標値とＳｕｂ−Ｓｃａｎｌｉｎｅのエッジ座標値の差分が大きくなりすぎる。そのため、予め差分を表現するために定義されたビット数である３ｂｉｔでは、この差分を表現しきれない。そのような場合の処理に関して、図６を用いて説明する。
【００６２】
図６では、ｙ＝２２からｙ＝２２＋１／４の間のパスが水平に近く、ｙ＝２２のＳｃａｎｌｉｎｅ交点のエッジ座標（整数：ｘ＝４２６）とｙ＝２２＋１／４のＳｕｂ−Ｓｃａｎｌｉｎｅ交点のエッジ座標（実数：ｘ＝４２３＋３／４）とが大きく離れている。その座標差分は１／４の９倍であり、３ｂｉｔ表現できない。座標ヒント付エッジデータ生成部３００５はこのような場合を検知すると、ｙが２２＋１／４以上のＳｕｂ−Ｓｃａｎｌｉｎｅ交点を求める処理を行わない。この場合において、仮の座標点として、整数エッジを新たに追加し、その差分を用いることで、より高解像度の座標を表現する。
【００６３】
この場合において、座標ヒント付エッジデータ生成部３００５は、Ｓｕｂ−Ｓｃａｎｌｉｎｅ交点座標値（３ｂｉｔ値と符合ｂｉｔ）には“０”、ＩｓＥｄｇｅフラグには“０”を付加した５ｂｉｔデータを保持する。次に、座標ヒント付エッジデータ生成部３００５は、整数ｙ座標値（ｙ＝２２）での新しい架空のＳｃａｎｌｉｎｅ交点（仮の座標点）の算出を行う。座標ヒント付エッジデータ生成部３００５は、前出のＳｕｂ−Ｓｃａｎｌｉｎｅ交点値（実数：ｘ＝４２３＋３／４）を実数値から整数に切り上げ（ｃｅｉｌ）、これを新しい架空のエッジ座標値（ｘ＝４２４，ｙ＝２２）として１５ｂｉｔ整数で設定する。さらに、座標ヒント付エッジデータ生成部３００５は、ＩｓＥｄｇｅフラグには“０”を設定し、保持する。これが架空のＳｃａｎｌｉｎｅ交点に対するエッジとなる。座標ヒント付エッジデータ生成部３００５は、この架空のエッジに対して、１／４座標ヒント情報（２ｂｉｔ）を“００”として設定し、保持する。
【００６４】
座標ヒント付エッジデータ生成部３００５は、ｙ＝２２＋１／４のＳｕｂ−Ｓｃａｎｌｉｎｅ交点のエッジ座標値（実数：ｘ＝４２３＋３／４）を、上記架空のＳｃａｎｌｉｎｅ交点のエッジ座標値（ｘ＝４２４）に対する差分として再計算する。そして、座標ヒント付エッジデータ生成部３００５は、Ｓｕｂ−Ｓｃａｎｌｉｎｅ交点座標値（３ｂｉｔ値と符合ｂｉｔ）に“−１”、ＩｓＥｄｇｅフラグに“１”を付加した５ｂｉｔデータを保持する。この後、座標ヒント付エッジデータ生成部３００５は、ｙ＝２２＋２／４、ｙ＝２２＋３／４のそれぞれの実数ｙ座標値でＳｕｂ−Ｓｃａｎｌｉｎｅ交点を求める処理を行い、合計１５ｂｉｔデータを生成し、保持する。
【００６５】
上記のスキャンライン変換で得られたエッジ座標値を含むデータがエッジデータであり、図４に示すデータ構造の形式で、文書画像データ生成部３００７に渡される。
【００６６】
図４に示すデータ構造で特徴的なのは、エッジ座標データのうち、整数値からなるエッジデータ４２００と、実数座標値を再現するための１／４座標ヒント情報を含む座標ヒント情報４３００が、分離された構成になっている点である。さらに、Ｓｃａｎｌｉｎｅ交点の１／４座標ヒント情報の座標ヒント情報４３００とＳｕｂ−Ｓｃａｎｌｉｎｅ交点のエッジデータ４３０１〜４３０３が隣接する構成になっている。このようなデータ構成をとることは、後述の画像生成処理において、データアクセス速度の向上をもたらす。
【００６７】
［処理フロー］
次に図７、図８、図９のフローチャートを用いて、デジタル複合機４０３の制御装置１００で動作するボックス印刷機能プログラムが、エッジデータ４２００、４３００、４３０１〜４３０３をｄｅｖｉｃｅ座標系上のエッジに変換する処理を説明する。各図は、ボックス印刷機能プログラムの座標ヒント付エッジデータ展開部３０１１が、エッジデータ４２００、４３００、４３０１〜４３０３をｄｅｖｉｃｅ座標系上のエッジに変換する処理の一部である。なお、本実施形態においては、ＣＰＵ１０１がＲＯＭ等に格納されているボックス印刷機能プログラムを読み出し、実行することにより実現される。
【００６８】
まず、図７を用いて説明する。Ｓ７０１において、座標ヒント付エッジデータ展開部３０１１は、ボックス印刷機能プログラムが印刷出力画像を生成する際の、画像データの各ｐｉｘｅｌの拡大縮小率（以下、ｐｉｘｅｌ倍率）を決定する。ここで「ｐｉｘｅｌ倍率」とは、ｓｒｃ座標系で定義された１ｐｉｘｅｌが、印刷時にプリンタ部３００のマーキングユニット３２０が描くｄｅｖｉｃｅ座標系平面上のｐｉｘｅｌの何個分に相当するか、という値を示す。ｄｅｖｉｃｅ座標系の原点は右上であり、横方向がＸ、縦方向がＹの平面座標系で定義され、ｄｅｖｉｃｅ座標系の単位はマーキングユニット３２０が描く１ｐｉｘｅｌである。
【００６９】
画像データのｐｉｘｅｌ倍率は、文書画像データ３００９中のＰａｇｅＩｎｆｏ４１００の印刷属性、およびユーザによって操作部１５０から設定され、制御装置１００のＲＡＭ１０２に保存されている印刷時設定属性値に基づいて算出される。ここで利用するＰａｇｅＩｎｆｏ４１００中の「印刷属性」とは、集約印刷設定属性、ページサイズ属性、解像度属性であり、必ず何らかの値が設定されている。制御装置１００のＲＡＭ１０２に保存されている印刷時設定属性値も、集約印刷設定属性、ページサイズ属性、解像度属性であり、前述のＰａｇｅＩｎｆｏ４１００中の印刷属性と同じ意味合いを有する。ただし、設定値として“ｄｅｆａｌｕｌｔ”を指定することができ、その際には、ＰａｇｅＩｎｆｏ４１００中の印刷属性の値がそのまま適用される。
【００７０】
制御装置１００のＲＡＭ１０２に保存されている印刷時設定属性値は、制御装置１００で動作するボックス印刷機能プログラムの機能として、その値を変更することが可能である。その際、ユーザによる操作部１５０の操作結果を反映することにより、印刷時設定属性値を変更する。ただし、プリンタ部３００の機器構成上の制約により、解像度やページサイズに関しては設定することができない値がある場合もある。ＰａｇｅＩｎｆｏ４１００中の印刷属性の値と制御装置１００のＲＡＭ１０２に保存されている印刷時設定属性値が決まると、画像データのｐｉｘｅｌ倍率は一意に決まる。図１１に、本実施形態に係る印刷属性の値と印刷時設定属性値との対応関係により、ｐｉｘｅｌ倍率が一意に決定される組み合わせ１１０１の例を示す。
【００７１】
Ｓ７０２において、座標ヒント付エッジデータ展開部３０１１は、ｐｉｘｅｌ倍率が“１”であるかの判定を行う（すなわち、等倍か否か）。Ｐｉｘｅｌ倍率が“１”の場合は（Ｓ７０２にてＹＥＳ）、座標ヒント付エッジデータ展開部３０１１は、エッジデータ４２００を用いて図８に示す処理を行う。Ｐｉｘｅｌ倍率が１以外である場合には（Ｓ７０２にてＮＯ）、座標ヒント付エッジデータ展開部３０１１は、エッジデータ４２００、４３００、４３０１〜４３０３を用いて図９に示す処理を行う。
【００７２】
図８は、ｐｉｘｅｌ倍率が“１”であった場合に実行されるエッジデータのｄｅｖｉｃｅ座標変換処理を説明するフローチャートである（図７に示すＳ７０３）。ｄｅｖｉｃｅ座標変換処理は、ｄｅｖｉｃｅ座標系平面上の原点から開始される。Ｓ８０１にて、座標ヒント付エッジデータ展開部３０１１は、ｄｅｖｉｃｅ座標系のＹ座標値を確認する。Ｙ座標値の最大値は、ページサイズで定義される画像出力領域の下限に相当するＹ座標値である。Ｙが最大値を超えていなければ（Ｓ８０１にてＮＯ）、Ｓ８０２に進む。Ｙが最大値を超えている場合は（Ｓ８０１にてＹＥＳ）、ページのレンダリングが終了したと判定され、処理を終了する。
【００７３】
Ｓ８０２において、座標ヒント付エッジデータ展開部３０１１は、ｄｅｖｉｃｅ座標系のＹ座標値のスキャンラインに描画されるべきｓｒｃ座標系平面上のｙ座標値を求める。ここでｐｉｘｅｌ倍率が“１”であるため、ｙ＝Ｙとなる。Ｓ８０３において、座標ヒント付エッジデータ展開部３０１１は、ｓｒｃ座標系のｙ座標値で特定されるＳｃａｎｌｉｎｅ中のエッジデータを４２００の中から検出する。該当するエッジデータがない場合は（Ｓ８０３にてＮＯ）、ｄｅｖｉｃｅ座標系のＹ座標値のスキャンライン上に何も描画する必要はないため、Ｓ８０７に進む。エッジデータが一つ以上ある場合には（Ｓ８０３にてＹＥＳ）、Ｓ８０４に進む。
【００７４】
Ｓ８０４において、座標ヒント付エッジデータ展開部３０１１は、エッジデータ中のＩｓＥｄｇｅフラグの値を確認する。ＩｓＥｄｇｅフラグが“０”である場合には（Ｓ８０４にてＮＯ）、当該エッジが架空のエッジであるため、Ｓ８０３に戻る。ＩｓＥｄｇｅフラグが“１”である場合には（Ｓ８０４にてＹＥＳ）、Ｓ８０５において、座標ヒント付エッジデータ展開部３０１１は、エッジデータ中から１５ｂｉｔの整数ｘ座標値を取得する。さらにＳ８０６にて、座標ヒント付エッジデータ展開部３０１１は、ｄｅｖｉｃｅ座標系のＸ座標値と、さらにこのエッジに関連付けられたレベル情報４４００へのアドレスを付加し、Ｌｅｖｅｌ処理部３０１３にエッジ情報を送出する。ここでは、ｐｉｘｅｌ倍率が１であるため、Ｘ＝ｘとなる。その後、Ｓ８０３に戻り、座標ヒント付エッジデータ展開部３０１１は、同一のｓｒｃ座標系のｙ座標値を有する次のエッジデータを確認する。
【００７５】
Ｓ８０７において、座標ヒント付エッジデータ展開部３０１１は、ｄｅｖｉｃｅ座標系のＹ座標値をインクリメントし、Ｓ８０１に戻る。
【００７６】
図９は、ｐｉｘｅｌ倍率が１以外であった場合に実行されるエッジデータのｄｅｖｉｃｅ座標変換処理を説明するフローチャートである（図７に示すＳ７０４）。ｄｅｖｉｃｅ座標変換処理は、ｄｅｖｉｃｅ座標系平面上の原点から開始される。Ｓ９０１において、座標ヒント付エッジデータ展開部３０１１は、ＰａｇｅＩｎｆｏ４１００中の印刷属性の値、およびの制御装置１００のＲＡＭ１０２に保存されている印刷時設定属性値に基づいて、ｐｉｘｅｌ倍率を算出し、その値を“Ａ”とする。Ｓ９０２において、座標ヒント付エッジデータ展開部３０１１は、ｄｅｖｉｃｅ座標系のＹ座標値を確認する。Ｙが最大値を超えていなければ（Ｓ９０２にてＮＯ）、Ｓ９０３に進む。Ｙが最大値を超えている場合は（Ｓ９０２にてＹＥＳ）、ページのレンダリングが終了したとして、処理を終了する。
【００７７】
Ｓ９０３において、座標ヒント付エッジデータ展開部３０１１は、ｄｅｖｉｃｅ座標系のＹ座標値のスキャンラインに描画されるべきｓｒｃ座標系平面上のエッジ座標の縦方向の値を求める。ここでｐｉｘｅｌ倍率はＡであり、ｓｒｃ座標系平面上には整数座標値をとるＳｃａｎｌｉｎｅと、さらに座標値１／４ごとにＳｕｂ−Ｓｃａｎｌｉｎｅが存在することを考慮する。この場合、求めるべきｓｒｃ座標系の座標値の整数部分をｙとすれば、以下の関係式を満たす最大のｙおよびｂの組み合わせがわかればよい。なお、本実施形態において、ｂは０，１，２，３のいずれかの値となる。
ｙ≦（Ｙ−ｂ／４）／Ａ
【００７８】
Ｓ９０４において、座標ヒント付エッジデータ展開部３０１１は、ｓｒｃ座標系の座標値の整数部分であるｙとｂの組み合わせから座標が特定されるＳｃａｎｌｉｎｅのエッジデータ、もしくはＳｕｂ−Ｓｃａｎｌｉｎｅの中のエッジデータを、エッジデータ４２００、４３０１〜４３０２から検出する。エッジデータが検出されず、存在しない場合は（Ｓ９０４にてＮＯ）、ｄｅｖｉｃｅ座標系のＹ座標値のスキャンライン上に何も描画する必要はないため、Ｓ９１４に進む。エッジデータが一つ以上ある場合には（Ｓ９０４にてＹＥＳ）、Ｓ９０５に進む。
【００７９】
Ｓ９０５において、座標ヒント付エッジデータ展開部３０１１は、検出したＳｃａｎｌｉｎｅのエッジデータ、もしくは上記で検出したＳｕｂ−Ｓｃａｎｌｉｎｅに関連付けられている元のＳｃａｎｌｉｎｅのエッジデータから、整数のエッジ座標値を取得する。Ｓ９０６において、座標ヒント付エッジデータ展開部３０１１は、ｂの値を判断する。ｂ＝０であれば（Ｓ９０６にてＹＥＳ）、ｓｒｃ座標系平面でのＳｃａｎｌｉｎｅのエッジを用いるべきであるとして、Ｓ９０７に進む。ｂが１，２，または３である場合には（Ｓ９０６にてＮＯ）、ｓｒｃ座標系平面でのＳｕｂ−Ｓｃａｎｌｉｎｅのエッジを用いるべきとして、Ｓ９１０に進む。
【００８０】
Ｓ９０７において、座標ヒント付エッジデータ展開部３０１１は、上述のＳｃａｎｌｉｎｅのエッジデータ中のＩｓＥｄｇｅフラグの値を確認する。ＩｓＥｄｇｅフラグの値が“１”であれば（Ｓ９０７にてＹＥＳ）、Ｓ９０８に進む。ＩｓＥｄｇｅフラグの値が“０”であれば（Ｓ９０７にてＮＯ）、エッジデータは架空のエッジであり描画すべきエッジではないため、Ｓ９０４に戻る。Ｓ９０８において、座標ヒント付エッジデータ展開部３０１１は、Ｓｃａｎｌｉｎｅのエッジ情報に関連付けられた２ｂｉｔの１／４座標ヒントを取得してｃとする。さらにＳ９０９にて、座標ヒント付エッジデータ展開部３０１１は、以下の式を用いてエッジのｄｅｖｉｃｅ座標系のＸ座標値を算出する。
Ｘ＝ｃｅｉｌ（Ａ（ｘ−ｃ／４））
ここでの関数ｃｅｉｌ（）は、値の切り上げを行う関数である。
【００８１】
そして、Ｓ９１３に進む。
【００８２】
Ｓ９１０において、座標ヒント付エッジデータ展開部３０１１は、上述のＳｃａｎｌｉｎｅのエッジ情報に関連付けられたｂ番目のＳｕｂ−Ｓｃａｎｌｉｎｅのエッジ情報から差分座標値を取得して“ｄ”とする。さらに座標ヒント付エッジデータ展開部３０１１は、ＩｓＥｄｇｅフラグを取得する（エッジデータ４３０１〜４３０３）。Ｓ９１１において、座標ヒント付エッジデータ展開部３０１１は、ＩｓＥｄｇｅフラグの値を確認する。ＩｓＥｄｇｅフラグの値が“１”であれば（Ｓ９１１にてＹＥＳ）、Ｓ９１２に進む。ＩｓＥｄｇｅフラグの値が“０”であれば（Ｓ９１１にてＮＯ）、エッジデータは架空のエッジであり描画すべきエッジではないため、Ｓ９０４に戻る。Ｓ９１１において、座標ヒント付エッジデータ展開部３０１１は、以下の式を用いてＳｕｂ−Ｓｃａｎｌｉｎｅエッジのｄｅｖｉｃｅ座標系のＸ座標値を算出する。
Ｘ＝ｃｅｉｌ（Ａ（ｘ＋ｄ／４））
そして、Ｓ９１３に進む。
【００８３】
Ｓ９１３において、座標ヒント付エッジデータ展開部３０１１は、エッジのｄｅｖｉｃｅ座標系のＸ座標値と、このエッジに関連付けられたレベル情報４４００へのアドレスを付加し、Ｌｅｖｅｌ処理部３０１３にエッジ情報を送出する。その後、Ｓ９０４に戻り、座標ヒント付エッジデータ展開部３０１１は、同一のｓｒｃ座標系のｙ座標値を有する次のエッジデータを確認する。Ｓ９１４において、座標ヒント付エッジデータ展開部３０１１は、ｄｅｖｉｃｅ座標系のＹ座標値をインクリメントし、Ｓ９０２に戻る。
【００８４】
図８および図９の説明で述べたように、拡大率１倍の場合に実行される図８の処理においては、文書画像データ３００９中のエッジデータのうち、エッジデータ４２００にのみアクセスを行う。一方、拡大率が“１”以外の場合に実行される図９の処理においては、文書画像データ３００９中のエッジデータ４２００、座標ヒント情報４３００、エッジデータ４３０１〜４３０３のすべてにアクセスを行う。文書画像データ３００９は、ヒント情報を活用することによって１／４画素単位の精度で画像生成が可能である。しかし、エッジデータ４２００のみを独立したデータ領域上に配置たことで、拡大率が“１”の処理速度が低下することはない。また座標ヒント情報４３００とエッジデータ４３０１〜４３０３を隣接するデータ領域に配置したことで、拡大縮小を伴う画像生成処理も効率的に実施することが可能である。
【００８５】
また低解像度描画オブジェクトと高解像度描画オブジェクトが混在した場合であっても、境界での隙間が目立たない高品位の画像を得ることが可能になる。
【００８６】
さらに、低解像度描画オブジェクトを拡大縮小なしにレンダリングする場合に、速度低下することなく画像生成することが可能になる。
【００８７】
また、本実施形態では、１／４座標を用いて、座標の補正および対応するデータ構造を述べたが、これに限定するものではなく、より詳細な座標の付加情報を設定しても構わない。この場合には、図４、５に示すエッジデータの構成も変更されることとなる。
【００８８】
＜第二実施形態＞
第一実施形態においては、文書画像データ処理装置が、制御装置１００にてＰＤＬデータ３００１から文書画像データ３００９を生成する処理と、文書画像データ３００９から印刷出力画像を生成する処理を含んでいることを説明した。
【００８９】
この二つの処理は、同一のデジタル複合機上で動作する必要はない。文書画像データ３００９は、座標ヒント付エッジデータを含むことで、様々な解像度のプリントエンジンから出力することができる形式になっている。
【００９０】
図３の左側に示した各工程（３００１〜３００９）で行われる処理と、図３の右側に示した各工程（３００９〜３０１６）で行われる処理を、別々のデジタル複合機で実行してもよい。その際には、文書画像データ３００９はネットワークを経由して別のデジタル複合機のＨＤＤに転送される。もしくは磁気メディア、書き換え可能な光学メディア、フラッシュメモリなどを経由して別のデジタル複合機のＨＤＤにコピーされてもよい。
【００９１】
これにより、第一実施形態と同様の効果を得ることができる。
【００９２】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2013008247.tif 000003
【図２】
2013008247.tif 000004
【図３】
2013008247.tif 000005
【図４】
2013008247.tif 000006
【図５】
2013008247.tif 000007
【図６】
2013008247.tif 000008
【図７】
2013008247.tif 000009
【図８】
2013008247.tif 000010
【図９】
2013008247.tif 000011
【図１０】
2013008247.tif 000012
【図１１】
2013008247.tif 000013