画像処理装置、画像処理方法、およびプログラム
【課題】小さな文字や細線の描画オブジェクトに限ってラスタ化せずベクタのまま文書画像データを生成して蓄積し、印刷時に印刷設定に応じた倍率でレンダリングすれば、ディテール改善は可能であるが、高解像度のオブジェクトと低解像度のオブジェクトが異なる解像度でレンダリングされると、隣り合う描画オブジェクトの境界に隙間が生じる。
【解決手段】PDLデータを解釈し、描画オブジェクトを生成する描画オブジェクト生成手段と、前記描画オブジェクト生成手段により生成された描画オブジェクトに含まれる各画素の座標値を定められた解像度で量子化し、描画データを生成する生成手段と、前記生成手段にて前記定められた解像度で座標値を量子化する際に、量子化によって切り捨てられるべき値を座標値の付加情報として保持する保持手段とを有し、前記保持手段は、前記付加情報を、前記生成手段により生成された描画データの、量子化によって得られる前記定められた解像度での座標値とは異なる領域に保持する。
【解決手段】PDLデータを解釈し、描画オブジェクトを生成する描画オブジェクト生成手段と、前記描画オブジェクト生成手段により生成された描画オブジェクトに含まれる各画素の座標値を定められた解像度で量子化し、描画データを生成する生成手段と、前記生成手段にて前記定められた解像度で座標値を量子化する際に、量子化によって切り捨てられるべき値を座標値の付加情報として保持する保持手段とを有し、前記保持手段は、前記付加情報を、前記生成手段により生成された描画データの、量子化によって得られる前記定められた解像度での座標値とは異なる領域に保持する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はネットワークに接続され、文書画像データを処理する機能を有する画像処理装置に関する。特に、文書画像データを受信し、画像出力する機能に関する。
【背景技術】
【0002】
従来、高解像度のレンダリング処理を高速に行う技術として、例えば、特許文献1で開示されている技術がある。また、ページ中の特定部分のみ高解像度でレンダリングすることによってレンダリング処理のコストを低下させる技術として、特許文献2で開示されている技術がある。さらに一般的に知られる技術として、低解像度のレンダリング済み画像に対してピクセル補間やエッジ形状パターンマッチングの手法を適用して出力解像度を上げる、スムージング技術が広く用いられている。
【0003】
上記、従来技術を組み合わせることで画像生成の処理コストを抑えつつ、見た目の高画質化を可能にすることができる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2000―137825号公報
【特許文献2】特開2009−274366号公報
【特許文献3】特開2010−171622号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、プリンタ機能を備えるデジタル複合機は、文書画像データを蓄積できるボックス機能を活用することで、蓄積時に文書画像データに設定されていた印刷設定を、印刷出力時に変更することができる。デジタル複合機の印刷設定の項目において、集約印刷、ページサイズ変更、解像度切り替えの機能に関しては、画像の拡大縮小を伴う機能がある。従来のデジタル複合機のボックス機能では、文書画像データ保存時に設定されていた画像サイズと解像度を印刷出力時に変更すると、画像の拡大縮小処理に伴って画質的な劣化が発生するという課題があった。これは、ボックス蓄積されている文書画像データが、保存時の画像サイズと解像度に合わせたラスタイメージであることに起因している。拡大縮小に伴う画質劣化を軽減するために、スムージング技術を適用することも行われているが、ラスタ化されて保存された描画オブジェクトを変倍すると、画像中の位置によって線幅がことなる結果になることがある。
【0006】
例えば、特許文献3では、変倍を行っても線幅を安定させることができるが、線幅の問題が改善されても、そもそも微細な描画を含む画像データでは、どうしても変倍やスムージング後にディテールが失われてしまうという欠点がある。
【0007】
ディテールを保存したい描画オブジェクト、例えば小さな文字や細線の描画オブジェクトに限ってラスタ化せずにベクタ情報のまま文書画像データを生成して蓄積し、プリント時に印刷設定に応じた倍率でレンダリングすれば、ディテール改善は可能ではある。ただし、文書画像データが、高解像度のオブジェクトと低解像度のオブジェクトの両方を含むと、図10に示すように、複数の描画オブジェクトが異なる解像度でレンダリングされることによって、隣り合う描画オブジェクトの境界に隙間が生じる場合がある。
【0008】
図10において、左側はレンダリング前の描画オブジェクトの実数座標値の表現での配置例である。これらのオブジェクトがレンダリングされる場合の解像度でのpixel境界位置をグリッドとして重ねて表現している。右側は、レンダリングによってその描画オブジェクトが特定の解像度で座標値を量子化されて塗られるpixelを表している。図10の一番上や2番目のように、濃いグレーで表現されているオブジェクトと薄いグレーで表現されているオブジェクトとを、同じ解像度でレンダリングして量子化した場合は、右側に示すように各オブジェクトの間に隙間は生じない。一方、一番下の図では濃いグレーで表現されている小文字描画オブジェクトは1200dpiの解像度で量子化され、塗られるpixelが決定されている。また薄いグレーで表現されているグラフィックス描画オブジェクトは600dpiの解像度で量子化され、塗られるpixelが決定されている。この例に示すようなオブジェクト配置の場合、各解像度で量子化される実空間での位置が異なるので、二つの異なるオブジェクト間に塗られないpixelが生じる場合がある。
【0009】
本発明は、文書画像データ中にラスタ化されて保存されている低解像度オブジェクトの座標精度を改善することによって、上記課題を解決する。
【課題を解決するための手段】
【0010】
上記課題を解決するために、本願発明の係る画像処理装置は以下の構成を有する。すなわち、入力されたページ記述言語により記述されたPDLデータから描画データを生成する画像処理装置であって、前記PDLデータを解釈し、描画オブジェクトを生成する描画オブジェクト生成手段と、前記描画オブジェクト生成手段により生成された描画オブジェクトに含まれる各画素の座標値を定められた解像度で量子化し、描画データを生成する生成手段と、前記生成手段にて前記定められた解像度で座標値を量子化する際に、量子化によって切り捨てられるべき値を座標値の付加情報として保持する保持手段とを有し、前記保持手段は、前記付加情報を、前記生成手段により生成された描画データの、量子化によって得られる前記定められた解像度での座標値とは異なる領域に保持する。
【発明の効果】
【0011】
本発明によれば、文書画像データ中にラスタ化されて保存されている低解像度描画オブジェクトの描画データに対して、座標精度を補正するための付加情報を追加することによって、低解像度のオブジェクトを描画する際の品質向上が可能になる。
【図面の簡単な説明】
【0012】
【図1】デジタル複合機を含む印刷環境の全体構成例を示す図。
【図2】デジタル複合機の制御装置の内部構成を示すブロック図。
【図3】文書画像データの生成の流れの例を示す図。
【図4】文書画像データのデータ構成を示す図。
【図5】文書画像データ生成プログラムの処理内容を模式化した図。
【図6】文書画像データ生成プログラムの別の処理内容を模式化した図。
【図7】文書画像データをレンダリングするプログラムの処理を示すフローチャート。
【図8】エッジ座標情報のみを用いたレンダリング処理を示すフローチャート。
【図9】エッジ座標情報と付加情報を用いたレンダリング処理を示すフローチャート。
【図10】課題を説明するための図。
【図11】画像倍率を決定する際に用いるパラメータと画像倍率との関係を示す図。
【発明を実施するための形態】
【0013】
以下、本発明を実施するための最良の形態について図面を用いて説明する。なお、以下に示すシステムの構成等は一例であり、これに限定するものではない。
【0014】
<第一実施形態>
[システム構成]
本実施形態に係るデジタル複合機の全体構成を、図1を参照しながら説明する。本実施形態に係るデジタル複合機403は、制御装置100、操作部150、リーダ部200、プリンタ部300を含む。また、LAN400を介してPC401、402に接続されている。リーダ部(画像入力装置)200は、原稿画像を光学的に読み取り、画像データに変換する。リーダ部200は、原稿を読取るための機能を有するスキャナユニット210と、原稿用紙を搬送するための機能を有する原稿給紙ユニット250とで構成される。
【0015】
プリンタ部(画像出力装置)300は、記録紙を搬送し、その上に画像データを可視画像として印字して装置外に排紙する。プリンタ部300は、複数種類の記録紙カセットを有する給紙ユニット310と、画像データを記録紙に転写、定着させる機能を有するマーキングユニット320と、印字された記録紙を機外へ出力する機能を有する排紙ユニット330とで構成される。
【0016】
制御装置100は、リーダ部200、プリンタ部300と電気的に接続され、さらにLAN400を介して、PC401、402や、インターネット上の各種サーバと接続される。制御装置100は、リーダ部200を制御して、原稿の画像データを読込み、プリンタ部300を制御して画像データを記録用紙に出力してコピー機能を提供する。また、制御装置100は、リーダ部200にて読取った画像データを、コードデータに変換し、LAN400を介してPC等へ送信するスキャナ機能を提供する。また、制御装置100は、PC等からLAN400を介して受信したPDL(Page Description Language)データを含むプリントジョブデータを、画像データに変換し、プリンタ部300に出力するプリンタ機能を提供する。
【0017】
更には、制御装置100は、リーダ部200から読み取った画像データや、PC等から受信したPDLデータを含むプリントジョブデータから、文書画像データを生成する。そして、制御装置100は、制御装置100内の2次記憶装置に文書画像データを保存するボックス蓄積機能、および、上記ボックス蓄積機能で制御装置100内の2次記憶装置に蓄積された文書画像データを変換し、プリンタ部300に出力するボックス印刷機能を提供する。
【0018】
操作部150は、制御装置100に接続され、液晶タッチパネル等で構成され、画像入出力システムを操作するためのユーザI/Fを提供する。PC401,402は、PDLデータを含むプリントジョブデータの生成を行い、LAN400を介して、制御装置100にプリントジョブデータを送信する。
【0019】
図2は、本実施形態におけるデジタル複合機の制御装置の一構成例を示すブロック図である。図2において、制御装置100は、画像入力デバイスであるリーダ部200や画像出力デバイスであるプリンタ部300と接続し、画像データの読み取りやプリント出力のための制御を行う。また、制御装置100は、LAN400と接続することで、PDLデータを含むプリントジョブデータやデバイス情報をLAN400経由で入出力するための制御を行う。
【0020】
さらに、制御装置100は、LAN400経由で受信したPDLデータを含むプリントジョブデータ、もしくは内蔵する記憶装置(記憶部)であるHDD104内に保存されている文書画像データをプリント出力可能なイメージに展開する。さらに制御装置100は、LAN400経由で受信したPDLデータを含むプリントジョブデータをフォーマット変換し、生成した文書画像データを内蔵する記憶装置であるHDD104内に保存する。
【0021】
CPU101は、デジタル複合機403全体を制御するための中央処理装置である。RAM102は、CPU101が動作するためのシステムワークメモリであり、入力されたPDLデータを含むプリントジョブデータや変換中の文書画像データ、さらに印刷実行時の各種属性を一時記憶するためのメモリでもある。ROM103はブートROMであり、システムのブートプログラムが格納されている。HDD104はハードディスクドライブであり、各種処理のためのシステムソフトウェアや、変換された文書画像データなどを格納する。
【0022】
操作部I/F105は、操作部150に対するインタフェース部であり、操作部150に対して操作画面データを出力する。また、操作部I/F105は、操作部150から操作者が入力した情報をCPU101に伝える役割をする。ネットワークインタフェース107は、例えばLANカード等で実現され、LAN400に接続して外部装置との間で情報の入出力を行う。以上のユニットがシステムバス106上に配置されている。
【0023】
イメージバスI/F109は、システムバス106と画像データを高速で転送する画像バス110とを接続するためのインタフェースであり、データ構造を変換するバスブリッジである。画像バス110上には、デバイスI/F111、プリンタ画像処理部112が接続される。
【0024】
デバイスI/F111は、リーダ部200やプリンタ部300と制御装置100とを接続し、画像データの同期系/非同期系の変換を行う。プリンタ画像処理部112は、プリント出力する画像データに対して、プリンタ部300に応じた補正等の画像処理を行う。
【0025】
[ボックス保存機能]
次に図3を用いて、デジタル複合機403の制御装置100で動作する、ボックス保存機能プログラムと、ボックス印刷機能プログラムの説明を行う。まず、図3を用いて、プリントジョブデータ中のPDLデータから描画データである文書画像データの生成を行いHDD104内に保存するボックス保存機能プログラムの構成を説明する。また同時にボックス保存機能プログラムによる文書画像データ生成の手順を説明する。
【0026】
PDLデータ3001は、RAM102もしくはHDD104内に記憶されており、PDL解釈部3002によって読み込まれる。ここでPDLデータ3001において、LIPS(登録商標) LXやUFR IIなどのページ記述言語が使われる。また、PDLデータ3001が定義する平面座標系を以後「src座標系」と呼ぶ。PDL解釈部3002は、PDLデータ3001を解釈する。さらに描画オブジェクト生成部3003にて、解釈されたPDLデータ3001から印刷に適した複数の描画オブジェクトを印刷に適した順に生成する。
【0027】
1ページに含まれる描画オブジェクトは、描画の重なりを考慮し並べられる。重なりによって覆い隠される描画オブジェクトが描画順において先に並べられ、前出のオブジェクトの少なくとも一部の上に重ねて描画される描画オブジェクトほど後に並べられる。
【0028】
描画オブジェクトはそれぞれ、Text、Small_text、Graphics、thin_Line、Imageの5種類のオブジェクト属性のいずれかを保持している。Text属性を有する描画オブジェクトは、アウトラインフォントのベクタデータもしくはビットマップフォントのビットマップデータを保持している。Small_text属性を有する描画オブジェクトは、フォントデータを保持する描画オブジェクトのうち、特に文字サイズが小さな描画オブジェクトである。ここでは、所定のサイズよりも小さなサイズを有する文字とする。Graphics属性を有する描画オブジェクトは、ベクタ形式で記述されたパスデータを保持している。thin_Line属性を有する描画オブジェクトは、パスデータを保持する描画オブジェクトのうち、特に線幅が小さな描画オブジェクトである。ここでは、線幅が所定値以下の線が有するものとする。Image属性を有する描画オブジェクトは、非圧縮のビットマップ画像データもしくは圧縮画像データを保持している。
【0029】
小文字細線オブジェクト分離部3004は、描画オブジェクト生成部3003から描画オブジェクトを受け取り、オブジェクト属性の判定を行う。オブジェクト属性が“Small_text”、または“thin_Line”である場合には、描画オブジェクトを変更することなく、文書画像データ生成部3007に渡す。オブジェクト属性が“Text”、“Graphics”、“Image”のいずれかであった場合には、描画オブジェクトを座標ヒント付エッジデータ生成部3005に渡す。
【0030】
座標ヒント付エッジデータ生成部3005は、Text、Graphics、Imageの属性の各オブジェクトを、エッジデータと呼ばれるデータ構造に変換し、文書画像データ生成部3007に渡す。エッジデータについては、図4および図5を用いて後述する。ここで、座標ヒント付エッジデータ生成部3005は、エッジデータとしてスプールし(エッジデータスプール3006)、当該文書画像データに対する処理が終了したら、文書画像データ生成部3007へ渡す。
【0031】
文書画像データ生成部3007は、小文字細線オブジェクト分離部3004もしくは座標ヒント付エッジデータ生成部3005から描画オブジェクトを順に受け取り、定められた文書画像データフォーマットに変換する。ファイルスプーラ3008は、文書画像データ生成部3007によって随時変換され出力される文書画像データを一時的に溜め込み、文書画像データ3009として保存する。文書画像データ生成部3007がすべての描画オブジェクトの変換処理を終えると、生成された文書画像データ3009は、ボックス保存機能のファイル保存先であるHDD104に転送される。
【0032】
次に、HDD104内に保存されている文書画像データ3009を印刷出力画像に変換しプリンタ部300から出力する、ボックス印刷機能プログラムの構成を説明する。また同時に、ボックス印刷機能プログラムが文書画像データ3009を印刷出力画像に変換する手順を説明する。プリンタ部300が描く画像上に定義される座標系平面を「device座標系」と呼ぶことにする。
【0033】
まず、ユーザが操作部150にてボックス印刷機能を操作することによって、ボックス印刷機能プログラムは動作を開始する。ボックス印刷機能プログラムはユーザ操作に従い、HDD104内に保存されていてユーザによって印刷指示された文書画像データ3009をインストラクション処理部3010に転送する。インストラクション処理部3010は、文書画像データ3009中のインストラクション(後述)を読み込み、インストラクションの種類ごとに定められた処理を行う。
【0034】
座標ヒント付エッジデータ展開部3011は、文書画像データ3009中のヒント付エッジデータを展開し、device座標系で表現されたエッジデータを生成する。ここでの「ヒント付きエッジデータ」とは、座標ヒント付エッジデータ生成部3005で生成されたデータである。つまり、“Text”、“Graphics”、“Image”のいずれかの属性を有する描画オブジェクトが対象となる。
【0035】
ベクタオブジェクトエッジ生成部3012は、小文字細線オブジェクト分離部3004にて分離され文書画像データ3009に埋め込まれたベクタデータを処理する。つまり、ここで扱うデータは、“Small_text”、“thin_Line”のいずれかの属性を有する描画オブジェクトが対象となる。その際、ベクタデータはスキャンライン変換され、device座標系平面上でベクタパスとスキャンラインとの交点の座標値を含む、エッジデータが生成される。
【0036】
座標ヒント付エッジデータ展開部3011およびベクタオブジェクトエッジ生成部3012にて生成されたdevice座標系でのエッジデータは、Level処理部3013にて、エッジデータのレベル情報を用いて、描画オブジェクトの重なり状態が決定される。ここでのレベル情報については、後述する。その後、レベルの重なり状態が決定された全てのエッジデータは、Pixel生成部3014に渡され、エッジデータ中のレベルごとに指定されたFill(後述)にて定められる色値を有するPixelが生成される。ここで生成されたPixelは、ページイメージスプーラ3015によってHDD104内に確保されたページスプール3016に蓄えられ、1ページ分の画像が生成された時点でプリンタ部300に転送され印刷される。
【0037】
[データ構造]
次に図4を用いて、本実施形態に係るボックス保存機能およびボックス印刷機能で用いられる文書画像データファイルの内部データ構造と、個々のデータの役割について説明をする。
【0038】
本実施形態に係る文書画像データ3009には、1ページに相当する領域をレンダリングするために必要な情報が含まれる。図4のインストラクション4001〜4008は、レンダリング処理の各段階の処理開始を指示するインストラクションである。個々のインストラクションは必要に応じて付加情報を有する。本実施形態に係るプログラムは、文書画像データ中のインストラクションを順に処理することで、画像を生成する。
【0039】
インストラクション4001は、<START_PAGE>であり、付加情報として印刷時に用いることのできる各種設定値が記録されているPageInfo4100へのアドレス4002(PageInfoAddress)を有する。図3に示したインストラクション処理部3010は、<START_PAGE>を読み込むと、印刷画像を生成するための各種準備を行う。インストラクション処理部3010は、ページサイズやレイアウト情報、また解像度に関するデータ内での設定値と、操作部150でユーザによって指定された設定値との比較を行い、拡大縮小が行われる場合には、pixel倍率の算出を行う。
【0040】
インストラクション4003は、<LOAD_HINTED_EDGE>であり、Scanlineエッジリストアドレス(EdgeListAddress)、hint情報アドレス(HintAddress)、フィルテーブルアドレス(LevelAddress)の三つのアドレスを付加情報4004として有する。さらに付加情報4004には、像域フラグ(Text、Graphics、またはImage)、およびsrc座標系上のy座標値も記述される。インストラクション処理部3010は、<LOAD_HINTED_EDGE>を読み込むと、付加情報4004を座標ヒント付エッジデータ展開部3011に転送する。その後、座標ヒント付エッジデータ展開部3011はdevice座標系で表現されたエッジデータを生成する。
【0041】
インストラクション4005は、<LOAD_VECTOR_SEG>であり、付加情報4006としてベクタセグメントアドレス(VectSegAddress)、フィルテーブルアドレス(LevelAddress)の二つのアドレスを有する。さらに、インストラクション4005は、像域フラグ(Small_text、またはthin_Line)からなる付加情報を有する。インストラクション処理部3010は、<LOAD_VECTOR_SEG>を読み込むと、付加情報4006をベクタオブジェクトエッジ生成部3012に転送する。その後、ベクタオブジェクトエッジ生成部3012はdevice座標系で表現されたエッジデータを生成する。
【0042】
インストラクション4007は、<RENDER_EDGES>であり、付加情報はない。インストラクション処理部3010は、<RENDER_EDGES>を読み込むと、ページ内のすべてのdevice座標系で表現されたエッジ情報がそろった状態と判定する。そして、ボックス印刷機能プログラムはLevel処理部3013、Pixel生成部3014およびページイメージスプーラ3015の処理が開始される。
【0043】
インストラクション4008は<END_PAGE>であり、付加情報はない。インストラクション処理部3010は、<END_PAGE>を読み込むと、1ページ分の画像生成処理がすべて完了したと判断する。その後、ボックス印刷機能プログラムは、ページスプール3016内に保持された生成済み画像をプリンタ部300に転送する。
【0044】
PageInfo4100には、PDLデータ3001中に記載されていた、ページサイズ、集約レイアウト情報、データ解像度、さらに用紙情報や後処理に関する情報が記録されている。
【0045】
エッジデータ4200には、座標ヒント付エッジデータ生成部3005にて生成された、Scanline交点での整数値のエッジ(後述)の情報を格納している。
【0046】
座標ヒント情報4300には、上述のScanlineエッジに対する1/4座標ヒント情報4300と、Sub−Scanlineエッジに関するエッジデータ4301,4302,4303が格納されている。この座標ヒント情報4300およびエッジデータ4301〜4303がエッジ座標を補正するために用いられる。詳細については、後述する。
【0047】
インストラクション4003、4005にて参照されるレベル情報4400において、「レベル」とは、描画されるオブジェクトの重なりを示す概念であり、大きいレベル値を有する描画オブジェクトは、小さなレベル値を有する描画オブジェクトを覆い隠す。つまり、レベルの高い描画オブジェクトが、描画順において、より上に重ねられることとなる。そのため同一座標上に複数の描画オブジェクトが重なり合って存在する場合には、最もレベル値の大きな描画オブジェクトのみがレンダリングされる。一つのレベルには、レベル値を示す番号と、そのレベルに対応するFillが格納されているアドレス情報が保持されている。「Fill」とは、画素の色値を決定するために必要な情報であり、Fillテーブル4500に収められている。
【0048】
ベクタセグメント4600は、ベクタオブジェクトエッジ生成部3012が処理すべきベクタパスの座標情報を保持している。ベクタパスは、複数の連続した線分の集合で表現されており、ベクタパス開始点を示す絶対座標値(x,y)、開始点から始まる線分の終点を示す相対座標値(Dx,Dy)である。さらに、これに続く線分も相対座標値として表される。
【0049】
ラスタイメージデータ4700は、Fillテーブル内の情報の一つの形態としてそのアドレスが記述されることでメモリ中での位置が示される。Imageで描画される領域に対する色値として、適切に拡大縮用変換されたラスタイメージデータ4700が用いられる。
【0050】
[処理説明]
次に図5を用いて、デジタル複合機403の制御装置100で動作するボックス保存機能プログラムにおける、座標ヒント付エッジデータ生成部3005での処理を詳細に説明する。ここでの処理において、座標ヒント付エッジデータ生成部3005は、描画オブジェクトに対し、その描画オブジェクトに含まれる画素の座標を、予め定められた解像度に量子化することで算出する。さらに、座標ヒント付エッジデータ生成部3005は、量子化により、切り捨てられるべき座標値を所定の間隔で算出し、保持する。なお、本実施形態において、切り捨てられる座標値に対する所定の間隔は、量子化により求められた座標値に対して、1/4ごとの間隔とする。したがって、ここでの処理において、量子化により求められる座標を整数座標値と記載し、切り捨てられるべき値を含む座標を実数座標値と記載する。
【0051】
図5の左側に太い実線で示されている格子は、PDLデータ3001が定義しているsrc座標系平面上での整数座標値を示す格子である。また縦向きの細い点線および横向きのやや細い破線で示されている格子は、src座標系平面上で整数座標値の間を四等分した、1/4、2/4、3/4の実数座標値を示す格子である。
【0052】
src座標系は、左上隅を原点とし、横方向がx、縦方向がyの平面座標系で定義される。src座標系平面で横向きの線が矢印となっているのは、この線が示すy座標値を用いてスキャンライン変換が行われることを表現している。斜めに示された太い実線は、Graphics属性を有する描画オブジェクト内にベクタ形式で記述されたパスを表現している。またこのパスの左側に隣接しているグレーの領域は、パスに付随する塗り領域を表現している。
【0053】
座標ヒント付エッジデータ生成部3005は、スキャンライン変換をy座標およびx座標が増加する方向に実行する。本明細書において、スキャンライン変換によって算出される、スキャンラインとパスの交点位置の座標値を端数切り上げ(ceil)したものを、「エッジ座標値」と定義する。またこのエッジ座標値で示される位置を「エッジ」と定義する。
【0054】
ここでの処理において、まず座標ヒント付エッジデータ生成部3005は、整数y座標値でスキャンライン変換を実施する。この結果得られるエッジ座標値を「Scanline交点座標」とする。Scanline交点座標のx座標値は、まずは整数に切り上げられ、15bitの整数として保持される(図5に示すアイコン△に相当)。本実施形態では、この15bitの値には、さらに1bitの情報(IsEdgeフラグ)が付加された上で保持される。なお、IsEdgeフラグの定義については後述する。
【0055】
座標ヒント付エッジデータ生成部3005は、さらに高精度なエッジ座標値として、整数−3/4、整数−2/4、整数−1/4、整数のいずれかに切り上げられたx座標値も算出する。ここでは、この値を「1/4ヒント付き座標値」と呼ぶ。Scanline交点座標の1/4座標ヒント情報(x)は、整数x座標値に対する座標値差分(差分座標)として2bit値で表現される。本実施形態において、−3/4は“11”、−2/4は“10”、−1/4は“01”、座標値差分無しは“00”の2bit進数値が適用され、保持される(図5に示すアイコン◇に相当)。
【0056】
次に、座標ヒント付エッジデータ生成部3005は、整数+1/4、整数+2/4、整数+3/4のそれぞれの実数y座標値でのスキャンライン変換を実施する。この結果として得られるエッジ座標値をSub−Scanline交点座標とする。Sub−Scanline交点座標値(x)は、整数値に1/4単位の実数値を合わせた値に切り上げられる。切り上げられた座標値は、直前のScanline交点のエッジ座標値(x)に対する差分値(1/4の倍数)として3bit値と符合bitで表現され、さらに1bitのIsEdgeフラグを付加した5bitデータとして保持される。このような処理を整数+1/4、整数+2/4、整数+3/4のそれぞれの実数y座標値で順に3回行うため、合計15bit(5bit×3ライン)のデータが生成され保持される(図5に示すアイコン●に相当)。なお、IsEdgeフラグは、当該スキャンライン上にエッジが有るか否かを示す。
【0057】
ところで、図5のパス(斜めに示された太い実線)は、その下端を超えた範囲(y>23+2/4)では、Scanline交点およびSub−Scanline交点を持たないため、エッジも存在しない。Sub−Scanline交点を持たない場合でも、エッジ座標値を保持するためのデータ領域は確保されている。そのため、座標ヒント付エッジデータ生成部3005は、Sub−Scanline交点を持たない場合にはそのエッジ座標値として“0”、さらにIsEdgeフラグに“0”をセットする。
【0058】
図5のパスの上端付近(y=21+2/4)においては、Sub−Scanline交点は存在するが、上端を超えた範囲(y<21+2/4)ではScanline交点およびSub−Scanline交点を持たない。このような場合には、座標ヒント付エッジデータ生成部3005は、エッジ上端より上側の整数y座標値にて「架空のエッジ」を設定する。そのためにまず、座標ヒント付エッジデータ生成部3005は、パス上端に一番近い整数y座標(y=22)を起点に、y座標値が減少する方向(上側)に向かって、Sub−Scanline交点からエッジ座標を算出するスキャンライン変換を実施する。Sub−Scanline交点が存在する場合は、座標ヒント付エッジデータ生成部3005は、算出された交点座標値を実数値としてRAM102中の一時的な領域に保持し、さらにIsEdgeフラグを表す値として“1”を併せて保持する。パス上端を超える範囲(y<21+2/4)ではSub−Scanline交点がないため、座標ヒント付エッジデータ生成部3005は、RAM102中の一時的な領域にIsEdgeフラグを表す値である“0”のみを保持する。
【0059】
次に、座標ヒント付エッジデータ生成部3005は、整数y座標値での架空のScanline交点の算出を行う。座標ヒント付エッジデータ生成部3005は、前出のSub−Scanline交点値のうち、実数y座標値が小さい(y=21+2/4)におけるSub−ScanlineでのSub−Scanline交点座標値(x)を実数値で算出する。座標ヒント付エッジデータ生成部3005は、これを実数値から整数に切り上げ(ceil)、架空のエッジ座標値(x=426)として15bit整数を設定する。また、座標ヒント付エッジデータ生成部3005は、IsEdgeフラグに“0”を設定して保持する。これがy=21での架空のScanline交点に対するエッジとなる。この架空のエッジに対する1/4座標ヒント情報(2bit)は、“00”として設定され保持される。さらにここまでの処理においてRAM102中の一時的な領域に保持されていたSub−Scanline交点に関する実数座標値とIsEdgeフラグは、架空のScanline交点のエッジ座標に対する差分値(1/4の倍数)として再計算される。そして、3bit値と符合bit、さらに1bitのIsEdgeフラグを付加して保持される。Sub−Scanline交点は、整数+1/4、整数+2/4、整数+3/4のそれぞれの実数y座標値で再計算されるため、合計15bitのデータが生成され保持される。
【0060】
ここで、図4と図5とに示す各データの対応関係を示す。図4のエッジデータ4200は、図5のScanline交点座標の整数(16bit)に相当する。また、図4の座標ヒント情報4300は、図5のScanline交点座標の1/4ヒント(2bit)に相当する。また、図4のエッジデータ4301〜4303それぞれは、図5のSub−Scanline交点座標の1/4座標の差分の各値(5bit)に対応する。
【0061】
[パスの水平時の処理]
ところで図5を用いて説明した座標ヒント付エッジデータ生成部3005での処理では、パスの傾きが水平に近い場合には、Scanline座標値とSub−Scanlineのエッジ座標値の差分が大きくなりすぎる。そのため、予め差分を表現するために定義されたビット数である3bitでは、この差分を表現しきれない。そのような場合の処理に関して、図6を用いて説明する。
【0062】
図6では、y=22からy=22+1/4の間のパスが水平に近く、y=22のScanline交点のエッジ座標(整数:x=426)とy=22+1/4のSub−Scanline交点のエッジ座標(実数:x=423+3/4)とが大きく離れている。その座標差分は1/4の9倍であり、3bit表現できない。座標ヒント付エッジデータ生成部3005はこのような場合を検知すると、yが22+1/4以上のSub−Scanline交点を求める処理を行わない。この場合において、仮の座標点として、整数エッジを新たに追加し、その差分を用いることで、より高解像度の座標を表現する。
【0063】
この場合において、座標ヒント付エッジデータ生成部3005は、Sub−Scanline交点座標値(3bit値と符合bit)には“0”、IsEdgeフラグには“0”を付加した5bitデータを保持する。次に、座標ヒント付エッジデータ生成部3005は、整数y座標値(y=22)での新しい架空のScanline交点(仮の座標点)の算出を行う。座標ヒント付エッジデータ生成部3005は、前出のSub−Scanline交点値(実数:x=423+3/4)を実数値から整数に切り上げ(ceil)、これを新しい架空のエッジ座標値(x=424,y=22)として15bit整数で設定する。さらに、座標ヒント付エッジデータ生成部3005は、IsEdgeフラグには“0”を設定し、保持する。これが架空のScanline交点に対するエッジとなる。座標ヒント付エッジデータ生成部3005は、この架空のエッジに対して、1/4座標ヒント情報(2bit)を“00”として設定し、保持する。
【0064】
座標ヒント付エッジデータ生成部3005は、y=22+1/4のSub−Scanline交点のエッジ座標値(実数:x=423+3/4)を、上記架空のScanline交点のエッジ座標値(x=424)に対する差分として再計算する。そして、座標ヒント付エッジデータ生成部3005は、Sub−Scanline交点座標値(3bit値と符合bit)に“−1”、IsEdgeフラグに“1”を付加した5bitデータを保持する。この後、座標ヒント付エッジデータ生成部3005は、y=22+2/4、y=22+3/4のそれぞれの実数y座標値でSub−Scanline交点を求める処理を行い、合計15bitデータを生成し、保持する。
【0065】
上記のスキャンライン変換で得られたエッジ座標値を含むデータがエッジデータであり、図4に示すデータ構造の形式で、文書画像データ生成部3007に渡される。
【0066】
図4に示すデータ構造で特徴的なのは、エッジ座標データのうち、整数値からなるエッジデータ4200と、実数座標値を再現するための1/4座標ヒント情報を含む座標ヒント情報4300が、分離された構成になっている点である。さらに、Scanline交点の1/4座標ヒント情報の座標ヒント情報4300とSub−Scanline交点のエッジデータ4301〜4303が隣接する構成になっている。このようなデータ構成をとることは、後述の画像生成処理において、データアクセス速度の向上をもたらす。
【0067】
[処理フロー]
次に図7、図8、図9のフローチャートを用いて、デジタル複合機403の制御装置100で動作するボックス印刷機能プログラムが、エッジデータ4200、4300、4301〜4303をdevice座標系上のエッジに変換する処理を説明する。各図は、ボックス印刷機能プログラムの座標ヒント付エッジデータ展開部3011が、エッジデータ4200、4300、4301〜4303をdevice座標系上のエッジに変換する処理の一部である。なお、本実施形態においては、CPU101がROM等に格納されているボックス印刷機能プログラムを読み出し、実行することにより実現される。
【0068】
まず、図7を用いて説明する。S701において、座標ヒント付エッジデータ展開部3011は、ボックス印刷機能プログラムが印刷出力画像を生成する際の、画像データの各pixelの拡大縮小率(以下、pixel倍率)を決定する。ここで「pixel倍率」とは、src座標系で定義された1pixelが、印刷時にプリンタ部300のマーキングユニット320が描くdevice座標系平面上のpixelの何個分に相当するか、という値を示す。device座標系の原点は右上であり、横方向がX、縦方向がYの平面座標系で定義され、device座標系の単位はマーキングユニット320が描く1pixelである。
【0069】
画像データのpixel倍率は、文書画像データ3009中のPageInfo4100の印刷属性、およびユーザによって操作部150から設定され、制御装置100のRAM102に保存されている印刷時設定属性値に基づいて算出される。ここで利用するPageInfo4100中の「印刷属性」とは、集約印刷設定属性、ページサイズ属性、解像度属性であり、必ず何らかの値が設定されている。制御装置100のRAM102に保存されている印刷時設定属性値も、集約印刷設定属性、ページサイズ属性、解像度属性であり、前述のPageInfo4100中の印刷属性と同じ意味合いを有する。ただし、設定値として“defalult”を指定することができ、その際には、PageInfo4100中の印刷属性の値がそのまま適用される。
【0070】
制御装置100のRAM102に保存されている印刷時設定属性値は、制御装置100で動作するボックス印刷機能プログラムの機能として、その値を変更することが可能である。その際、ユーザによる操作部150の操作結果を反映することにより、印刷時設定属性値を変更する。ただし、プリンタ部300の機器構成上の制約により、解像度やページサイズに関しては設定することができない値がある場合もある。PageInfo4100中の印刷属性の値と制御装置100のRAM102に保存されている印刷時設定属性値が決まると、画像データのpixel倍率は一意に決まる。図11に、本実施形態に係る印刷属性の値と印刷時設定属性値との対応関係により、pixel倍率が一意に決定される組み合わせ1101の例を示す。
【0071】
S702において、座標ヒント付エッジデータ展開部3011は、pixel倍率が“1”であるかの判定を行う(すなわち、等倍か否か)。Pixel倍率が“1”の場合は(S702にてYES)、座標ヒント付エッジデータ展開部3011は、エッジデータ4200を用いて図8に示す処理を行う。Pixel倍率が1以外である場合には(S702にてNO)、座標ヒント付エッジデータ展開部3011は、エッジデータ4200、4300、4301〜4303を用いて図9に示す処理を行う。
【0072】
図8は、pixel倍率が“1”であった場合に実行されるエッジデータのdevice座標変換処理を説明するフローチャートである(図7に示すS703)。device座標変換処理は、device座標系平面上の原点から開始される。S801にて、座標ヒント付エッジデータ展開部3011は、device座標系のY座標値を確認する。Y座標値の最大値は、ページサイズで定義される画像出力領域の下限に相当するY座標値である。Yが最大値を超えていなければ(S801にてNO)、S802に進む。Yが最大値を超えている場合は(S801にてYES)、ページのレンダリングが終了したと判定され、処理を終了する。
【0073】
S802において、座標ヒント付エッジデータ展開部3011は、device座標系のY座標値のスキャンラインに描画されるべきsrc座標系平面上のy座標値を求める。ここでpixel倍率が“1”であるため、y=Yとなる。S803において、座標ヒント付エッジデータ展開部3011は、src座標系のy座標値で特定されるScanline中のエッジデータを4200の中から検出する。該当するエッジデータがない場合は(S803にてNO)、device座標系のY座標値のスキャンライン上に何も描画する必要はないため、S807に進む。エッジデータが一つ以上ある場合には(S803にてYES)、S804に進む。
【0074】
S804において、座標ヒント付エッジデータ展開部3011は、エッジデータ中のIsEdgeフラグの値を確認する。IsEdgeフラグが“0”である場合には(S804にてNO)、当該エッジが架空のエッジであるため、S803に戻る。IsEdgeフラグが“1”である場合には(S804にてYES)、S805において、座標ヒント付エッジデータ展開部3011は、エッジデータ中から15bitの整数x座標値を取得する。さらにS806にて、座標ヒント付エッジデータ展開部3011は、device座標系のX座標値と、さらにこのエッジに関連付けられたレベル情報4400へのアドレスを付加し、Level処理部3013にエッジ情報を送出する。ここでは、pixel倍率が1であるため、X=xとなる。その後、S803に戻り、座標ヒント付エッジデータ展開部3011は、同一のsrc座標系のy座標値を有する次のエッジデータを確認する。
【0075】
S807において、座標ヒント付エッジデータ展開部3011は、device座標系のY座標値をインクリメントし、S801に戻る。
【0076】
図9は、pixel倍率が1以外であった場合に実行されるエッジデータのdevice座標変換処理を説明するフローチャートである(図7に示すS704)。device座標変換処理は、device座標系平面上の原点から開始される。S901において、座標ヒント付エッジデータ展開部3011は、PageInfo4100中の印刷属性の値、およびの制御装置100のRAM102に保存されている印刷時設定属性値に基づいて、pixel倍率を算出し、その値を“A”とする。S902において、座標ヒント付エッジデータ展開部3011は、device座標系のY座標値を確認する。Yが最大値を超えていなければ(S902にてNO)、S903に進む。Yが最大値を超えている場合は(S902にてYES)、ページのレンダリングが終了したとして、処理を終了する。
【0077】
S903において、座標ヒント付エッジデータ展開部3011は、device座標系のY座標値のスキャンラインに描画されるべきsrc座標系平面上のエッジ座標の縦方向の値を求める。ここでpixel倍率はAであり、src座標系平面上には整数座標値をとるScanlineと、さらに座標値1/4ごとにSub−Scanlineが存在することを考慮する。この場合、求めるべきsrc座標系の座標値の整数部分をyとすれば、以下の関係式を満たす最大のyおよびbの組み合わせがわかればよい。なお、本実施形態において、bは0,1,2,3のいずれかの値となる。
y≦(Y−b/4)/A
【0078】
S904において、座標ヒント付エッジデータ展開部3011は、src座標系の座標値の整数部分であるyとbの組み合わせから座標が特定されるScanlineのエッジデータ、もしくはSub−Scanlineの中のエッジデータを、エッジデータ4200、4301〜4302から検出する。エッジデータが検出されず、存在しない場合は(S904にてNO)、device座標系のY座標値のスキャンライン上に何も描画する必要はないため、S914に進む。エッジデータが一つ以上ある場合には(S904にてYES)、S905に進む。
【0079】
S905において、座標ヒント付エッジデータ展開部3011は、検出したScanlineのエッジデータ、もしくは上記で検出したSub−Scanlineに関連付けられている元のScanlineのエッジデータから、整数のエッジ座標値を取得する。S906において、座標ヒント付エッジデータ展開部3011は、bの値を判断する。b=0であれば(S906にてYES)、src座標系平面でのScanlineのエッジを用いるべきであるとして、S907に進む。bが1,2,または3である場合には(S906にてNO)、src座標系平面でのSub−Scanlineのエッジを用いるべきとして、S910に進む。
【0080】
S907において、座標ヒント付エッジデータ展開部3011は、上述のScanlineのエッジデータ中のIsEdgeフラグの値を確認する。IsEdgeフラグの値が“1”であれば(S907にてYES)、S908に進む。IsEdgeフラグの値が“0”であれば(S907にてNO)、エッジデータは架空のエッジであり描画すべきエッジではないため、S904に戻る。S908において、座標ヒント付エッジデータ展開部3011は、Scanlineのエッジ情報に関連付けられた2bitの1/4座標ヒントを取得してcとする。さらにS909にて、座標ヒント付エッジデータ展開部3011は、以下の式を用いてエッジのdevice座標系のX座標値を算出する。
X=ceil(A(x−c/4))
ここでの関数ceil()は、値の切り上げを行う関数である。
【0081】
そして、S913に進む。
【0082】
S910において、座標ヒント付エッジデータ展開部3011は、上述のScanlineのエッジ情報に関連付けられたb番目のSub−Scanlineのエッジ情報から差分座標値を取得して“d”とする。さらに座標ヒント付エッジデータ展開部3011は、IsEdgeフラグを取得する(エッジデータ4301〜4303)。S911において、座標ヒント付エッジデータ展開部3011は、IsEdgeフラグの値を確認する。IsEdgeフラグの値が“1”であれば(S911にてYES)、S912に進む。IsEdgeフラグの値が“0”であれば(S911にてNO)、エッジデータは架空のエッジであり描画すべきエッジではないため、S904に戻る。S911において、座標ヒント付エッジデータ展開部3011は、以下の式を用いてSub−Scanlineエッジのdevice座標系のX座標値を算出する。
X=ceil(A(x+d/4))
そして、S913に進む。
【0083】
S913において、座標ヒント付エッジデータ展開部3011は、エッジのdevice座標系のX座標値と、このエッジに関連付けられたレベル情報4400へのアドレスを付加し、Level処理部3013にエッジ情報を送出する。その後、S904に戻り、座標ヒント付エッジデータ展開部3011は、同一のsrc座標系のy座標値を有する次のエッジデータを確認する。S914において、座標ヒント付エッジデータ展開部3011は、device座標系のY座標値をインクリメントし、S902に戻る。
【0084】
図8および図9の説明で述べたように、拡大率1倍の場合に実行される図8の処理においては、文書画像データ3009中のエッジデータのうち、エッジデータ4200にのみアクセスを行う。一方、拡大率が“1”以外の場合に実行される図9の処理においては、文書画像データ3009中のエッジデータ4200、座標ヒント情報4300、エッジデータ4301〜4303のすべてにアクセスを行う。文書画像データ3009は、ヒント情報を活用することによって1/4画素単位の精度で画像生成が可能である。しかし、エッジデータ4200のみを独立したデータ領域上に配置たことで、拡大率が“1”の処理速度が低下することはない。また座標ヒント情報4300とエッジデータ4301〜4303を隣接するデータ領域に配置したことで、拡大縮小を伴う画像生成処理も効率的に実施することが可能である。
【0085】
また低解像度描画オブジェクトと高解像度描画オブジェクトが混在した場合であっても、境界での隙間が目立たない高品位の画像を得ることが可能になる。
【0086】
さらに、低解像度描画オブジェクトを拡大縮小なしにレンダリングする場合に、速度低下することなく画像生成することが可能になる。
【0087】
また、本実施形態では、1/4座標を用いて、座標の補正および対応するデータ構造を述べたが、これに限定するものではなく、より詳細な座標の付加情報を設定しても構わない。この場合には、図4、5に示すエッジデータの構成も変更されることとなる。
【0088】
<第二実施形態>
第一実施形態においては、文書画像データ処理装置が、制御装置100にてPDLデータ3001から文書画像データ3009を生成する処理と、文書画像データ3009から印刷出力画像を生成する処理を含んでいることを説明した。
【0089】
この二つの処理は、同一のデジタル複合機上で動作する必要はない。文書画像データ3009は、座標ヒント付エッジデータを含むことで、様々な解像度のプリントエンジンから出力することができる形式になっている。
【0090】
図3の左側に示した各工程(3001〜3009)で行われる処理と、図3の右側に示した各工程(3009〜3016)で行われる処理を、別々のデジタル複合機で実行してもよい。その際には、文書画像データ3009はネットワークを経由して別のデジタル複合機のHDDに転送される。もしくは磁気メディア、書き換え可能な光学メディア、フラッシュメモリなどを経由して別のデジタル複合機のHDDにコピーされてもよい。
【0091】
これにより、第一実施形態と同様の効果を得ることができる。
【0092】
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【技術分野】
【0001】
本発明はネットワークに接続され、文書画像データを処理する機能を有する画像処理装置に関する。特に、文書画像データを受信し、画像出力する機能に関する。
【背景技術】
【0002】
従来、高解像度のレンダリング処理を高速に行う技術として、例えば、特許文献1で開示されている技術がある。また、ページ中の特定部分のみ高解像度でレンダリングすることによってレンダリング処理のコストを低下させる技術として、特許文献2で開示されている技術がある。さらに一般的に知られる技術として、低解像度のレンダリング済み画像に対してピクセル補間やエッジ形状パターンマッチングの手法を適用して出力解像度を上げる、スムージング技術が広く用いられている。
【0003】
上記、従来技術を組み合わせることで画像生成の処理コストを抑えつつ、見た目の高画質化を可能にすることができる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2000―137825号公報
【特許文献2】特開2009−274366号公報
【特許文献3】特開2010−171622号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、プリンタ機能を備えるデジタル複合機は、文書画像データを蓄積できるボックス機能を活用することで、蓄積時に文書画像データに設定されていた印刷設定を、印刷出力時に変更することができる。デジタル複合機の印刷設定の項目において、集約印刷、ページサイズ変更、解像度切り替えの機能に関しては、画像の拡大縮小を伴う機能がある。従来のデジタル複合機のボックス機能では、文書画像データ保存時に設定されていた画像サイズと解像度を印刷出力時に変更すると、画像の拡大縮小処理に伴って画質的な劣化が発生するという課題があった。これは、ボックス蓄積されている文書画像データが、保存時の画像サイズと解像度に合わせたラスタイメージであることに起因している。拡大縮小に伴う画質劣化を軽減するために、スムージング技術を適用することも行われているが、ラスタ化されて保存された描画オブジェクトを変倍すると、画像中の位置によって線幅がことなる結果になることがある。
【0006】
例えば、特許文献3では、変倍を行っても線幅を安定させることができるが、線幅の問題が改善されても、そもそも微細な描画を含む画像データでは、どうしても変倍やスムージング後にディテールが失われてしまうという欠点がある。
【0007】
ディテールを保存したい描画オブジェクト、例えば小さな文字や細線の描画オブジェクトに限ってラスタ化せずにベクタ情報のまま文書画像データを生成して蓄積し、プリント時に印刷設定に応じた倍率でレンダリングすれば、ディテール改善は可能ではある。ただし、文書画像データが、高解像度のオブジェクトと低解像度のオブジェクトの両方を含むと、図10に示すように、複数の描画オブジェクトが異なる解像度でレンダリングされることによって、隣り合う描画オブジェクトの境界に隙間が生じる場合がある。
【0008】
図10において、左側はレンダリング前の描画オブジェクトの実数座標値の表現での配置例である。これらのオブジェクトがレンダリングされる場合の解像度でのpixel境界位置をグリッドとして重ねて表現している。右側は、レンダリングによってその描画オブジェクトが特定の解像度で座標値を量子化されて塗られるpixelを表している。図10の一番上や2番目のように、濃いグレーで表現されているオブジェクトと薄いグレーで表現されているオブジェクトとを、同じ解像度でレンダリングして量子化した場合は、右側に示すように各オブジェクトの間に隙間は生じない。一方、一番下の図では濃いグレーで表現されている小文字描画オブジェクトは1200dpiの解像度で量子化され、塗られるpixelが決定されている。また薄いグレーで表現されているグラフィックス描画オブジェクトは600dpiの解像度で量子化され、塗られるpixelが決定されている。この例に示すようなオブジェクト配置の場合、各解像度で量子化される実空間での位置が異なるので、二つの異なるオブジェクト間に塗られないpixelが生じる場合がある。
【0009】
本発明は、文書画像データ中にラスタ化されて保存されている低解像度オブジェクトの座標精度を改善することによって、上記課題を解決する。
【課題を解決するための手段】
【0010】
上記課題を解決するために、本願発明の係る画像処理装置は以下の構成を有する。すなわち、入力されたページ記述言語により記述されたPDLデータから描画データを生成する画像処理装置であって、前記PDLデータを解釈し、描画オブジェクトを生成する描画オブジェクト生成手段と、前記描画オブジェクト生成手段により生成された描画オブジェクトに含まれる各画素の座標値を定められた解像度で量子化し、描画データを生成する生成手段と、前記生成手段にて前記定められた解像度で座標値を量子化する際に、量子化によって切り捨てられるべき値を座標値の付加情報として保持する保持手段とを有し、前記保持手段は、前記付加情報を、前記生成手段により生成された描画データの、量子化によって得られる前記定められた解像度での座標値とは異なる領域に保持する。
【発明の効果】
【0011】
本発明によれば、文書画像データ中にラスタ化されて保存されている低解像度描画オブジェクトの描画データに対して、座標精度を補正するための付加情報を追加することによって、低解像度のオブジェクトを描画する際の品質向上が可能になる。
【図面の簡単な説明】
【0012】
【図1】デジタル複合機を含む印刷環境の全体構成例を示す図。
【図2】デジタル複合機の制御装置の内部構成を示すブロック図。
【図3】文書画像データの生成の流れの例を示す図。
【図4】文書画像データのデータ構成を示す図。
【図5】文書画像データ生成プログラムの処理内容を模式化した図。
【図6】文書画像データ生成プログラムの別の処理内容を模式化した図。
【図7】文書画像データをレンダリングするプログラムの処理を示すフローチャート。
【図8】エッジ座標情報のみを用いたレンダリング処理を示すフローチャート。
【図9】エッジ座標情報と付加情報を用いたレンダリング処理を示すフローチャート。
【図10】課題を説明するための図。
【図11】画像倍率を決定する際に用いるパラメータと画像倍率との関係を示す図。
【発明を実施するための形態】
【0013】
以下、本発明を実施するための最良の形態について図面を用いて説明する。なお、以下に示すシステムの構成等は一例であり、これに限定するものではない。
【0014】
<第一実施形態>
[システム構成]
本実施形態に係るデジタル複合機の全体構成を、図1を参照しながら説明する。本実施形態に係るデジタル複合機403は、制御装置100、操作部150、リーダ部200、プリンタ部300を含む。また、LAN400を介してPC401、402に接続されている。リーダ部(画像入力装置)200は、原稿画像を光学的に読み取り、画像データに変換する。リーダ部200は、原稿を読取るための機能を有するスキャナユニット210と、原稿用紙を搬送するための機能を有する原稿給紙ユニット250とで構成される。
【0015】
プリンタ部(画像出力装置)300は、記録紙を搬送し、その上に画像データを可視画像として印字して装置外に排紙する。プリンタ部300は、複数種類の記録紙カセットを有する給紙ユニット310と、画像データを記録紙に転写、定着させる機能を有するマーキングユニット320と、印字された記録紙を機外へ出力する機能を有する排紙ユニット330とで構成される。
【0016】
制御装置100は、リーダ部200、プリンタ部300と電気的に接続され、さらにLAN400を介して、PC401、402や、インターネット上の各種サーバと接続される。制御装置100は、リーダ部200を制御して、原稿の画像データを読込み、プリンタ部300を制御して画像データを記録用紙に出力してコピー機能を提供する。また、制御装置100は、リーダ部200にて読取った画像データを、コードデータに変換し、LAN400を介してPC等へ送信するスキャナ機能を提供する。また、制御装置100は、PC等からLAN400を介して受信したPDL(Page Description Language)データを含むプリントジョブデータを、画像データに変換し、プリンタ部300に出力するプリンタ機能を提供する。
【0017】
更には、制御装置100は、リーダ部200から読み取った画像データや、PC等から受信したPDLデータを含むプリントジョブデータから、文書画像データを生成する。そして、制御装置100は、制御装置100内の2次記憶装置に文書画像データを保存するボックス蓄積機能、および、上記ボックス蓄積機能で制御装置100内の2次記憶装置に蓄積された文書画像データを変換し、プリンタ部300に出力するボックス印刷機能を提供する。
【0018】
操作部150は、制御装置100に接続され、液晶タッチパネル等で構成され、画像入出力システムを操作するためのユーザI/Fを提供する。PC401,402は、PDLデータを含むプリントジョブデータの生成を行い、LAN400を介して、制御装置100にプリントジョブデータを送信する。
【0019】
図2は、本実施形態におけるデジタル複合機の制御装置の一構成例を示すブロック図である。図2において、制御装置100は、画像入力デバイスであるリーダ部200や画像出力デバイスであるプリンタ部300と接続し、画像データの読み取りやプリント出力のための制御を行う。また、制御装置100は、LAN400と接続することで、PDLデータを含むプリントジョブデータやデバイス情報をLAN400経由で入出力するための制御を行う。
【0020】
さらに、制御装置100は、LAN400経由で受信したPDLデータを含むプリントジョブデータ、もしくは内蔵する記憶装置(記憶部)であるHDD104内に保存されている文書画像データをプリント出力可能なイメージに展開する。さらに制御装置100は、LAN400経由で受信したPDLデータを含むプリントジョブデータをフォーマット変換し、生成した文書画像データを内蔵する記憶装置であるHDD104内に保存する。
【0021】
CPU101は、デジタル複合機403全体を制御するための中央処理装置である。RAM102は、CPU101が動作するためのシステムワークメモリであり、入力されたPDLデータを含むプリントジョブデータや変換中の文書画像データ、さらに印刷実行時の各種属性を一時記憶するためのメモリでもある。ROM103はブートROMであり、システムのブートプログラムが格納されている。HDD104はハードディスクドライブであり、各種処理のためのシステムソフトウェアや、変換された文書画像データなどを格納する。
【0022】
操作部I/F105は、操作部150に対するインタフェース部であり、操作部150に対して操作画面データを出力する。また、操作部I/F105は、操作部150から操作者が入力した情報をCPU101に伝える役割をする。ネットワークインタフェース107は、例えばLANカード等で実現され、LAN400に接続して外部装置との間で情報の入出力を行う。以上のユニットがシステムバス106上に配置されている。
【0023】
イメージバスI/F109は、システムバス106と画像データを高速で転送する画像バス110とを接続するためのインタフェースであり、データ構造を変換するバスブリッジである。画像バス110上には、デバイスI/F111、プリンタ画像処理部112が接続される。
【0024】
デバイスI/F111は、リーダ部200やプリンタ部300と制御装置100とを接続し、画像データの同期系/非同期系の変換を行う。プリンタ画像処理部112は、プリント出力する画像データに対して、プリンタ部300に応じた補正等の画像処理を行う。
【0025】
[ボックス保存機能]
次に図3を用いて、デジタル複合機403の制御装置100で動作する、ボックス保存機能プログラムと、ボックス印刷機能プログラムの説明を行う。まず、図3を用いて、プリントジョブデータ中のPDLデータから描画データである文書画像データの生成を行いHDD104内に保存するボックス保存機能プログラムの構成を説明する。また同時にボックス保存機能プログラムによる文書画像データ生成の手順を説明する。
【0026】
PDLデータ3001は、RAM102もしくはHDD104内に記憶されており、PDL解釈部3002によって読み込まれる。ここでPDLデータ3001において、LIPS(登録商標) LXやUFR IIなどのページ記述言語が使われる。また、PDLデータ3001が定義する平面座標系を以後「src座標系」と呼ぶ。PDL解釈部3002は、PDLデータ3001を解釈する。さらに描画オブジェクト生成部3003にて、解釈されたPDLデータ3001から印刷に適した複数の描画オブジェクトを印刷に適した順に生成する。
【0027】
1ページに含まれる描画オブジェクトは、描画の重なりを考慮し並べられる。重なりによって覆い隠される描画オブジェクトが描画順において先に並べられ、前出のオブジェクトの少なくとも一部の上に重ねて描画される描画オブジェクトほど後に並べられる。
【0028】
描画オブジェクトはそれぞれ、Text、Small_text、Graphics、thin_Line、Imageの5種類のオブジェクト属性のいずれかを保持している。Text属性を有する描画オブジェクトは、アウトラインフォントのベクタデータもしくはビットマップフォントのビットマップデータを保持している。Small_text属性を有する描画オブジェクトは、フォントデータを保持する描画オブジェクトのうち、特に文字サイズが小さな描画オブジェクトである。ここでは、所定のサイズよりも小さなサイズを有する文字とする。Graphics属性を有する描画オブジェクトは、ベクタ形式で記述されたパスデータを保持している。thin_Line属性を有する描画オブジェクトは、パスデータを保持する描画オブジェクトのうち、特に線幅が小さな描画オブジェクトである。ここでは、線幅が所定値以下の線が有するものとする。Image属性を有する描画オブジェクトは、非圧縮のビットマップ画像データもしくは圧縮画像データを保持している。
【0029】
小文字細線オブジェクト分離部3004は、描画オブジェクト生成部3003から描画オブジェクトを受け取り、オブジェクト属性の判定を行う。オブジェクト属性が“Small_text”、または“thin_Line”である場合には、描画オブジェクトを変更することなく、文書画像データ生成部3007に渡す。オブジェクト属性が“Text”、“Graphics”、“Image”のいずれかであった場合には、描画オブジェクトを座標ヒント付エッジデータ生成部3005に渡す。
【0030】
座標ヒント付エッジデータ生成部3005は、Text、Graphics、Imageの属性の各オブジェクトを、エッジデータと呼ばれるデータ構造に変換し、文書画像データ生成部3007に渡す。エッジデータについては、図4および図5を用いて後述する。ここで、座標ヒント付エッジデータ生成部3005は、エッジデータとしてスプールし(エッジデータスプール3006)、当該文書画像データに対する処理が終了したら、文書画像データ生成部3007へ渡す。
【0031】
文書画像データ生成部3007は、小文字細線オブジェクト分離部3004もしくは座標ヒント付エッジデータ生成部3005から描画オブジェクトを順に受け取り、定められた文書画像データフォーマットに変換する。ファイルスプーラ3008は、文書画像データ生成部3007によって随時変換され出力される文書画像データを一時的に溜め込み、文書画像データ3009として保存する。文書画像データ生成部3007がすべての描画オブジェクトの変換処理を終えると、生成された文書画像データ3009は、ボックス保存機能のファイル保存先であるHDD104に転送される。
【0032】
次に、HDD104内に保存されている文書画像データ3009を印刷出力画像に変換しプリンタ部300から出力する、ボックス印刷機能プログラムの構成を説明する。また同時に、ボックス印刷機能プログラムが文書画像データ3009を印刷出力画像に変換する手順を説明する。プリンタ部300が描く画像上に定義される座標系平面を「device座標系」と呼ぶことにする。
【0033】
まず、ユーザが操作部150にてボックス印刷機能を操作することによって、ボックス印刷機能プログラムは動作を開始する。ボックス印刷機能プログラムはユーザ操作に従い、HDD104内に保存されていてユーザによって印刷指示された文書画像データ3009をインストラクション処理部3010に転送する。インストラクション処理部3010は、文書画像データ3009中のインストラクション(後述)を読み込み、インストラクションの種類ごとに定められた処理を行う。
【0034】
座標ヒント付エッジデータ展開部3011は、文書画像データ3009中のヒント付エッジデータを展開し、device座標系で表現されたエッジデータを生成する。ここでの「ヒント付きエッジデータ」とは、座標ヒント付エッジデータ生成部3005で生成されたデータである。つまり、“Text”、“Graphics”、“Image”のいずれかの属性を有する描画オブジェクトが対象となる。
【0035】
ベクタオブジェクトエッジ生成部3012は、小文字細線オブジェクト分離部3004にて分離され文書画像データ3009に埋め込まれたベクタデータを処理する。つまり、ここで扱うデータは、“Small_text”、“thin_Line”のいずれかの属性を有する描画オブジェクトが対象となる。その際、ベクタデータはスキャンライン変換され、device座標系平面上でベクタパスとスキャンラインとの交点の座標値を含む、エッジデータが生成される。
【0036】
座標ヒント付エッジデータ展開部3011およびベクタオブジェクトエッジ生成部3012にて生成されたdevice座標系でのエッジデータは、Level処理部3013にて、エッジデータのレベル情報を用いて、描画オブジェクトの重なり状態が決定される。ここでのレベル情報については、後述する。その後、レベルの重なり状態が決定された全てのエッジデータは、Pixel生成部3014に渡され、エッジデータ中のレベルごとに指定されたFill(後述)にて定められる色値を有するPixelが生成される。ここで生成されたPixelは、ページイメージスプーラ3015によってHDD104内に確保されたページスプール3016に蓄えられ、1ページ分の画像が生成された時点でプリンタ部300に転送され印刷される。
【0037】
[データ構造]
次に図4を用いて、本実施形態に係るボックス保存機能およびボックス印刷機能で用いられる文書画像データファイルの内部データ構造と、個々のデータの役割について説明をする。
【0038】
本実施形態に係る文書画像データ3009には、1ページに相当する領域をレンダリングするために必要な情報が含まれる。図4のインストラクション4001〜4008は、レンダリング処理の各段階の処理開始を指示するインストラクションである。個々のインストラクションは必要に応じて付加情報を有する。本実施形態に係るプログラムは、文書画像データ中のインストラクションを順に処理することで、画像を生成する。
【0039】
インストラクション4001は、<START_PAGE>であり、付加情報として印刷時に用いることのできる各種設定値が記録されているPageInfo4100へのアドレス4002(PageInfoAddress)を有する。図3に示したインストラクション処理部3010は、<START_PAGE>を読み込むと、印刷画像を生成するための各種準備を行う。インストラクション処理部3010は、ページサイズやレイアウト情報、また解像度に関するデータ内での設定値と、操作部150でユーザによって指定された設定値との比較を行い、拡大縮小が行われる場合には、pixel倍率の算出を行う。
【0040】
インストラクション4003は、<LOAD_HINTED_EDGE>であり、Scanlineエッジリストアドレス(EdgeListAddress)、hint情報アドレス(HintAddress)、フィルテーブルアドレス(LevelAddress)の三つのアドレスを付加情報4004として有する。さらに付加情報4004には、像域フラグ(Text、Graphics、またはImage)、およびsrc座標系上のy座標値も記述される。インストラクション処理部3010は、<LOAD_HINTED_EDGE>を読み込むと、付加情報4004を座標ヒント付エッジデータ展開部3011に転送する。その後、座標ヒント付エッジデータ展開部3011はdevice座標系で表現されたエッジデータを生成する。
【0041】
インストラクション4005は、<LOAD_VECTOR_SEG>であり、付加情報4006としてベクタセグメントアドレス(VectSegAddress)、フィルテーブルアドレス(LevelAddress)の二つのアドレスを有する。さらに、インストラクション4005は、像域フラグ(Small_text、またはthin_Line)からなる付加情報を有する。インストラクション処理部3010は、<LOAD_VECTOR_SEG>を読み込むと、付加情報4006をベクタオブジェクトエッジ生成部3012に転送する。その後、ベクタオブジェクトエッジ生成部3012はdevice座標系で表現されたエッジデータを生成する。
【0042】
インストラクション4007は、<RENDER_EDGES>であり、付加情報はない。インストラクション処理部3010は、<RENDER_EDGES>を読み込むと、ページ内のすべてのdevice座標系で表現されたエッジ情報がそろった状態と判定する。そして、ボックス印刷機能プログラムはLevel処理部3013、Pixel生成部3014およびページイメージスプーラ3015の処理が開始される。
【0043】
インストラクション4008は<END_PAGE>であり、付加情報はない。インストラクション処理部3010は、<END_PAGE>を読み込むと、1ページ分の画像生成処理がすべて完了したと判断する。その後、ボックス印刷機能プログラムは、ページスプール3016内に保持された生成済み画像をプリンタ部300に転送する。
【0044】
PageInfo4100には、PDLデータ3001中に記載されていた、ページサイズ、集約レイアウト情報、データ解像度、さらに用紙情報や後処理に関する情報が記録されている。
【0045】
エッジデータ4200には、座標ヒント付エッジデータ生成部3005にて生成された、Scanline交点での整数値のエッジ(後述)の情報を格納している。
【0046】
座標ヒント情報4300には、上述のScanlineエッジに対する1/4座標ヒント情報4300と、Sub−Scanlineエッジに関するエッジデータ4301,4302,4303が格納されている。この座標ヒント情報4300およびエッジデータ4301〜4303がエッジ座標を補正するために用いられる。詳細については、後述する。
【0047】
インストラクション4003、4005にて参照されるレベル情報4400において、「レベル」とは、描画されるオブジェクトの重なりを示す概念であり、大きいレベル値を有する描画オブジェクトは、小さなレベル値を有する描画オブジェクトを覆い隠す。つまり、レベルの高い描画オブジェクトが、描画順において、より上に重ねられることとなる。そのため同一座標上に複数の描画オブジェクトが重なり合って存在する場合には、最もレベル値の大きな描画オブジェクトのみがレンダリングされる。一つのレベルには、レベル値を示す番号と、そのレベルに対応するFillが格納されているアドレス情報が保持されている。「Fill」とは、画素の色値を決定するために必要な情報であり、Fillテーブル4500に収められている。
【0048】
ベクタセグメント4600は、ベクタオブジェクトエッジ生成部3012が処理すべきベクタパスの座標情報を保持している。ベクタパスは、複数の連続した線分の集合で表現されており、ベクタパス開始点を示す絶対座標値(x,y)、開始点から始まる線分の終点を示す相対座標値(Dx,Dy)である。さらに、これに続く線分も相対座標値として表される。
【0049】
ラスタイメージデータ4700は、Fillテーブル内の情報の一つの形態としてそのアドレスが記述されることでメモリ中での位置が示される。Imageで描画される領域に対する色値として、適切に拡大縮用変換されたラスタイメージデータ4700が用いられる。
【0050】
[処理説明]
次に図5を用いて、デジタル複合機403の制御装置100で動作するボックス保存機能プログラムにおける、座標ヒント付エッジデータ生成部3005での処理を詳細に説明する。ここでの処理において、座標ヒント付エッジデータ生成部3005は、描画オブジェクトに対し、その描画オブジェクトに含まれる画素の座標を、予め定められた解像度に量子化することで算出する。さらに、座標ヒント付エッジデータ生成部3005は、量子化により、切り捨てられるべき座標値を所定の間隔で算出し、保持する。なお、本実施形態において、切り捨てられる座標値に対する所定の間隔は、量子化により求められた座標値に対して、1/4ごとの間隔とする。したがって、ここでの処理において、量子化により求められる座標を整数座標値と記載し、切り捨てられるべき値を含む座標を実数座標値と記載する。
【0051】
図5の左側に太い実線で示されている格子は、PDLデータ3001が定義しているsrc座標系平面上での整数座標値を示す格子である。また縦向きの細い点線および横向きのやや細い破線で示されている格子は、src座標系平面上で整数座標値の間を四等分した、1/4、2/4、3/4の実数座標値を示す格子である。
【0052】
src座標系は、左上隅を原点とし、横方向がx、縦方向がyの平面座標系で定義される。src座標系平面で横向きの線が矢印となっているのは、この線が示すy座標値を用いてスキャンライン変換が行われることを表現している。斜めに示された太い実線は、Graphics属性を有する描画オブジェクト内にベクタ形式で記述されたパスを表現している。またこのパスの左側に隣接しているグレーの領域は、パスに付随する塗り領域を表現している。
【0053】
座標ヒント付エッジデータ生成部3005は、スキャンライン変換をy座標およびx座標が増加する方向に実行する。本明細書において、スキャンライン変換によって算出される、スキャンラインとパスの交点位置の座標値を端数切り上げ(ceil)したものを、「エッジ座標値」と定義する。またこのエッジ座標値で示される位置を「エッジ」と定義する。
【0054】
ここでの処理において、まず座標ヒント付エッジデータ生成部3005は、整数y座標値でスキャンライン変換を実施する。この結果得られるエッジ座標値を「Scanline交点座標」とする。Scanline交点座標のx座標値は、まずは整数に切り上げられ、15bitの整数として保持される(図5に示すアイコン△に相当)。本実施形態では、この15bitの値には、さらに1bitの情報(IsEdgeフラグ)が付加された上で保持される。なお、IsEdgeフラグの定義については後述する。
【0055】
座標ヒント付エッジデータ生成部3005は、さらに高精度なエッジ座標値として、整数−3/4、整数−2/4、整数−1/4、整数のいずれかに切り上げられたx座標値も算出する。ここでは、この値を「1/4ヒント付き座標値」と呼ぶ。Scanline交点座標の1/4座標ヒント情報(x)は、整数x座標値に対する座標値差分(差分座標)として2bit値で表現される。本実施形態において、−3/4は“11”、−2/4は“10”、−1/4は“01”、座標値差分無しは“00”の2bit進数値が適用され、保持される(図5に示すアイコン◇に相当)。
【0056】
次に、座標ヒント付エッジデータ生成部3005は、整数+1/4、整数+2/4、整数+3/4のそれぞれの実数y座標値でのスキャンライン変換を実施する。この結果として得られるエッジ座標値をSub−Scanline交点座標とする。Sub−Scanline交点座標値(x)は、整数値に1/4単位の実数値を合わせた値に切り上げられる。切り上げられた座標値は、直前のScanline交点のエッジ座標値(x)に対する差分値(1/4の倍数)として3bit値と符合bitで表現され、さらに1bitのIsEdgeフラグを付加した5bitデータとして保持される。このような処理を整数+1/4、整数+2/4、整数+3/4のそれぞれの実数y座標値で順に3回行うため、合計15bit(5bit×3ライン)のデータが生成され保持される(図5に示すアイコン●に相当)。なお、IsEdgeフラグは、当該スキャンライン上にエッジが有るか否かを示す。
【0057】
ところで、図5のパス(斜めに示された太い実線)は、その下端を超えた範囲(y>23+2/4)では、Scanline交点およびSub−Scanline交点を持たないため、エッジも存在しない。Sub−Scanline交点を持たない場合でも、エッジ座標値を保持するためのデータ領域は確保されている。そのため、座標ヒント付エッジデータ生成部3005は、Sub−Scanline交点を持たない場合にはそのエッジ座標値として“0”、さらにIsEdgeフラグに“0”をセットする。
【0058】
図5のパスの上端付近(y=21+2/4)においては、Sub−Scanline交点は存在するが、上端を超えた範囲(y<21+2/4)ではScanline交点およびSub−Scanline交点を持たない。このような場合には、座標ヒント付エッジデータ生成部3005は、エッジ上端より上側の整数y座標値にて「架空のエッジ」を設定する。そのためにまず、座標ヒント付エッジデータ生成部3005は、パス上端に一番近い整数y座標(y=22)を起点に、y座標値が減少する方向(上側)に向かって、Sub−Scanline交点からエッジ座標を算出するスキャンライン変換を実施する。Sub−Scanline交点が存在する場合は、座標ヒント付エッジデータ生成部3005は、算出された交点座標値を実数値としてRAM102中の一時的な領域に保持し、さらにIsEdgeフラグを表す値として“1”を併せて保持する。パス上端を超える範囲(y<21+2/4)ではSub−Scanline交点がないため、座標ヒント付エッジデータ生成部3005は、RAM102中の一時的な領域にIsEdgeフラグを表す値である“0”のみを保持する。
【0059】
次に、座標ヒント付エッジデータ生成部3005は、整数y座標値での架空のScanline交点の算出を行う。座標ヒント付エッジデータ生成部3005は、前出のSub−Scanline交点値のうち、実数y座標値が小さい(y=21+2/4)におけるSub−ScanlineでのSub−Scanline交点座標値(x)を実数値で算出する。座標ヒント付エッジデータ生成部3005は、これを実数値から整数に切り上げ(ceil)、架空のエッジ座標値(x=426)として15bit整数を設定する。また、座標ヒント付エッジデータ生成部3005は、IsEdgeフラグに“0”を設定して保持する。これがy=21での架空のScanline交点に対するエッジとなる。この架空のエッジに対する1/4座標ヒント情報(2bit)は、“00”として設定され保持される。さらにここまでの処理においてRAM102中の一時的な領域に保持されていたSub−Scanline交点に関する実数座標値とIsEdgeフラグは、架空のScanline交点のエッジ座標に対する差分値(1/4の倍数)として再計算される。そして、3bit値と符合bit、さらに1bitのIsEdgeフラグを付加して保持される。Sub−Scanline交点は、整数+1/4、整数+2/4、整数+3/4のそれぞれの実数y座標値で再計算されるため、合計15bitのデータが生成され保持される。
【0060】
ここで、図4と図5とに示す各データの対応関係を示す。図4のエッジデータ4200は、図5のScanline交点座標の整数(16bit)に相当する。また、図4の座標ヒント情報4300は、図5のScanline交点座標の1/4ヒント(2bit)に相当する。また、図4のエッジデータ4301〜4303それぞれは、図5のSub−Scanline交点座標の1/4座標の差分の各値(5bit)に対応する。
【0061】
[パスの水平時の処理]
ところで図5を用いて説明した座標ヒント付エッジデータ生成部3005での処理では、パスの傾きが水平に近い場合には、Scanline座標値とSub−Scanlineのエッジ座標値の差分が大きくなりすぎる。そのため、予め差分を表現するために定義されたビット数である3bitでは、この差分を表現しきれない。そのような場合の処理に関して、図6を用いて説明する。
【0062】
図6では、y=22からy=22+1/4の間のパスが水平に近く、y=22のScanline交点のエッジ座標(整数:x=426)とy=22+1/4のSub−Scanline交点のエッジ座標(実数:x=423+3/4)とが大きく離れている。その座標差分は1/4の9倍であり、3bit表現できない。座標ヒント付エッジデータ生成部3005はこのような場合を検知すると、yが22+1/4以上のSub−Scanline交点を求める処理を行わない。この場合において、仮の座標点として、整数エッジを新たに追加し、その差分を用いることで、より高解像度の座標を表現する。
【0063】
この場合において、座標ヒント付エッジデータ生成部3005は、Sub−Scanline交点座標値(3bit値と符合bit)には“0”、IsEdgeフラグには“0”を付加した5bitデータを保持する。次に、座標ヒント付エッジデータ生成部3005は、整数y座標値(y=22)での新しい架空のScanline交点(仮の座標点)の算出を行う。座標ヒント付エッジデータ生成部3005は、前出のSub−Scanline交点値(実数:x=423+3/4)を実数値から整数に切り上げ(ceil)、これを新しい架空のエッジ座標値(x=424,y=22)として15bit整数で設定する。さらに、座標ヒント付エッジデータ生成部3005は、IsEdgeフラグには“0”を設定し、保持する。これが架空のScanline交点に対するエッジとなる。座標ヒント付エッジデータ生成部3005は、この架空のエッジに対して、1/4座標ヒント情報(2bit)を“00”として設定し、保持する。
【0064】
座標ヒント付エッジデータ生成部3005は、y=22+1/4のSub−Scanline交点のエッジ座標値(実数:x=423+3/4)を、上記架空のScanline交点のエッジ座標値(x=424)に対する差分として再計算する。そして、座標ヒント付エッジデータ生成部3005は、Sub−Scanline交点座標値(3bit値と符合bit)に“−1”、IsEdgeフラグに“1”を付加した5bitデータを保持する。この後、座標ヒント付エッジデータ生成部3005は、y=22+2/4、y=22+3/4のそれぞれの実数y座標値でSub−Scanline交点を求める処理を行い、合計15bitデータを生成し、保持する。
【0065】
上記のスキャンライン変換で得られたエッジ座標値を含むデータがエッジデータであり、図4に示すデータ構造の形式で、文書画像データ生成部3007に渡される。
【0066】
図4に示すデータ構造で特徴的なのは、エッジ座標データのうち、整数値からなるエッジデータ4200と、実数座標値を再現するための1/4座標ヒント情報を含む座標ヒント情報4300が、分離された構成になっている点である。さらに、Scanline交点の1/4座標ヒント情報の座標ヒント情報4300とSub−Scanline交点のエッジデータ4301〜4303が隣接する構成になっている。このようなデータ構成をとることは、後述の画像生成処理において、データアクセス速度の向上をもたらす。
【0067】
[処理フロー]
次に図7、図8、図9のフローチャートを用いて、デジタル複合機403の制御装置100で動作するボックス印刷機能プログラムが、エッジデータ4200、4300、4301〜4303をdevice座標系上のエッジに変換する処理を説明する。各図は、ボックス印刷機能プログラムの座標ヒント付エッジデータ展開部3011が、エッジデータ4200、4300、4301〜4303をdevice座標系上のエッジに変換する処理の一部である。なお、本実施形態においては、CPU101がROM等に格納されているボックス印刷機能プログラムを読み出し、実行することにより実現される。
【0068】
まず、図7を用いて説明する。S701において、座標ヒント付エッジデータ展開部3011は、ボックス印刷機能プログラムが印刷出力画像を生成する際の、画像データの各pixelの拡大縮小率(以下、pixel倍率)を決定する。ここで「pixel倍率」とは、src座標系で定義された1pixelが、印刷時にプリンタ部300のマーキングユニット320が描くdevice座標系平面上のpixelの何個分に相当するか、という値を示す。device座標系の原点は右上であり、横方向がX、縦方向がYの平面座標系で定義され、device座標系の単位はマーキングユニット320が描く1pixelである。
【0069】
画像データのpixel倍率は、文書画像データ3009中のPageInfo4100の印刷属性、およびユーザによって操作部150から設定され、制御装置100のRAM102に保存されている印刷時設定属性値に基づいて算出される。ここで利用するPageInfo4100中の「印刷属性」とは、集約印刷設定属性、ページサイズ属性、解像度属性であり、必ず何らかの値が設定されている。制御装置100のRAM102に保存されている印刷時設定属性値も、集約印刷設定属性、ページサイズ属性、解像度属性であり、前述のPageInfo4100中の印刷属性と同じ意味合いを有する。ただし、設定値として“defalult”を指定することができ、その際には、PageInfo4100中の印刷属性の値がそのまま適用される。
【0070】
制御装置100のRAM102に保存されている印刷時設定属性値は、制御装置100で動作するボックス印刷機能プログラムの機能として、その値を変更することが可能である。その際、ユーザによる操作部150の操作結果を反映することにより、印刷時設定属性値を変更する。ただし、プリンタ部300の機器構成上の制約により、解像度やページサイズに関しては設定することができない値がある場合もある。PageInfo4100中の印刷属性の値と制御装置100のRAM102に保存されている印刷時設定属性値が決まると、画像データのpixel倍率は一意に決まる。図11に、本実施形態に係る印刷属性の値と印刷時設定属性値との対応関係により、pixel倍率が一意に決定される組み合わせ1101の例を示す。
【0071】
S702において、座標ヒント付エッジデータ展開部3011は、pixel倍率が“1”であるかの判定を行う(すなわち、等倍か否か)。Pixel倍率が“1”の場合は(S702にてYES)、座標ヒント付エッジデータ展開部3011は、エッジデータ4200を用いて図8に示す処理を行う。Pixel倍率が1以外である場合には(S702にてNO)、座標ヒント付エッジデータ展開部3011は、エッジデータ4200、4300、4301〜4303を用いて図9に示す処理を行う。
【0072】
図8は、pixel倍率が“1”であった場合に実行されるエッジデータのdevice座標変換処理を説明するフローチャートである(図7に示すS703)。device座標変換処理は、device座標系平面上の原点から開始される。S801にて、座標ヒント付エッジデータ展開部3011は、device座標系のY座標値を確認する。Y座標値の最大値は、ページサイズで定義される画像出力領域の下限に相当するY座標値である。Yが最大値を超えていなければ(S801にてNO)、S802に進む。Yが最大値を超えている場合は(S801にてYES)、ページのレンダリングが終了したと判定され、処理を終了する。
【0073】
S802において、座標ヒント付エッジデータ展開部3011は、device座標系のY座標値のスキャンラインに描画されるべきsrc座標系平面上のy座標値を求める。ここでpixel倍率が“1”であるため、y=Yとなる。S803において、座標ヒント付エッジデータ展開部3011は、src座標系のy座標値で特定されるScanline中のエッジデータを4200の中から検出する。該当するエッジデータがない場合は(S803にてNO)、device座標系のY座標値のスキャンライン上に何も描画する必要はないため、S807に進む。エッジデータが一つ以上ある場合には(S803にてYES)、S804に進む。
【0074】
S804において、座標ヒント付エッジデータ展開部3011は、エッジデータ中のIsEdgeフラグの値を確認する。IsEdgeフラグが“0”である場合には(S804にてNO)、当該エッジが架空のエッジであるため、S803に戻る。IsEdgeフラグが“1”である場合には(S804にてYES)、S805において、座標ヒント付エッジデータ展開部3011は、エッジデータ中から15bitの整数x座標値を取得する。さらにS806にて、座標ヒント付エッジデータ展開部3011は、device座標系のX座標値と、さらにこのエッジに関連付けられたレベル情報4400へのアドレスを付加し、Level処理部3013にエッジ情報を送出する。ここでは、pixel倍率が1であるため、X=xとなる。その後、S803に戻り、座標ヒント付エッジデータ展開部3011は、同一のsrc座標系のy座標値を有する次のエッジデータを確認する。
【0075】
S807において、座標ヒント付エッジデータ展開部3011は、device座標系のY座標値をインクリメントし、S801に戻る。
【0076】
図9は、pixel倍率が1以外であった場合に実行されるエッジデータのdevice座標変換処理を説明するフローチャートである(図7に示すS704)。device座標変換処理は、device座標系平面上の原点から開始される。S901において、座標ヒント付エッジデータ展開部3011は、PageInfo4100中の印刷属性の値、およびの制御装置100のRAM102に保存されている印刷時設定属性値に基づいて、pixel倍率を算出し、その値を“A”とする。S902において、座標ヒント付エッジデータ展開部3011は、device座標系のY座標値を確認する。Yが最大値を超えていなければ(S902にてNO)、S903に進む。Yが最大値を超えている場合は(S902にてYES)、ページのレンダリングが終了したとして、処理を終了する。
【0077】
S903において、座標ヒント付エッジデータ展開部3011は、device座標系のY座標値のスキャンラインに描画されるべきsrc座標系平面上のエッジ座標の縦方向の値を求める。ここでpixel倍率はAであり、src座標系平面上には整数座標値をとるScanlineと、さらに座標値1/4ごとにSub−Scanlineが存在することを考慮する。この場合、求めるべきsrc座標系の座標値の整数部分をyとすれば、以下の関係式を満たす最大のyおよびbの組み合わせがわかればよい。なお、本実施形態において、bは0,1,2,3のいずれかの値となる。
y≦(Y−b/4)/A
【0078】
S904において、座標ヒント付エッジデータ展開部3011は、src座標系の座標値の整数部分であるyとbの組み合わせから座標が特定されるScanlineのエッジデータ、もしくはSub−Scanlineの中のエッジデータを、エッジデータ4200、4301〜4302から検出する。エッジデータが検出されず、存在しない場合は(S904にてNO)、device座標系のY座標値のスキャンライン上に何も描画する必要はないため、S914に進む。エッジデータが一つ以上ある場合には(S904にてYES)、S905に進む。
【0079】
S905において、座標ヒント付エッジデータ展開部3011は、検出したScanlineのエッジデータ、もしくは上記で検出したSub−Scanlineに関連付けられている元のScanlineのエッジデータから、整数のエッジ座標値を取得する。S906において、座標ヒント付エッジデータ展開部3011は、bの値を判断する。b=0であれば(S906にてYES)、src座標系平面でのScanlineのエッジを用いるべきであるとして、S907に進む。bが1,2,または3である場合には(S906にてNO)、src座標系平面でのSub−Scanlineのエッジを用いるべきとして、S910に進む。
【0080】
S907において、座標ヒント付エッジデータ展開部3011は、上述のScanlineのエッジデータ中のIsEdgeフラグの値を確認する。IsEdgeフラグの値が“1”であれば(S907にてYES)、S908に進む。IsEdgeフラグの値が“0”であれば(S907にてNO)、エッジデータは架空のエッジであり描画すべきエッジではないため、S904に戻る。S908において、座標ヒント付エッジデータ展開部3011は、Scanlineのエッジ情報に関連付けられた2bitの1/4座標ヒントを取得してcとする。さらにS909にて、座標ヒント付エッジデータ展開部3011は、以下の式を用いてエッジのdevice座標系のX座標値を算出する。
X=ceil(A(x−c/4))
ここでの関数ceil()は、値の切り上げを行う関数である。
【0081】
そして、S913に進む。
【0082】
S910において、座標ヒント付エッジデータ展開部3011は、上述のScanlineのエッジ情報に関連付けられたb番目のSub−Scanlineのエッジ情報から差分座標値を取得して“d”とする。さらに座標ヒント付エッジデータ展開部3011は、IsEdgeフラグを取得する(エッジデータ4301〜4303)。S911において、座標ヒント付エッジデータ展開部3011は、IsEdgeフラグの値を確認する。IsEdgeフラグの値が“1”であれば(S911にてYES)、S912に進む。IsEdgeフラグの値が“0”であれば(S911にてNO)、エッジデータは架空のエッジであり描画すべきエッジではないため、S904に戻る。S911において、座標ヒント付エッジデータ展開部3011は、以下の式を用いてSub−Scanlineエッジのdevice座標系のX座標値を算出する。
X=ceil(A(x+d/4))
そして、S913に進む。
【0083】
S913において、座標ヒント付エッジデータ展開部3011は、エッジのdevice座標系のX座標値と、このエッジに関連付けられたレベル情報4400へのアドレスを付加し、Level処理部3013にエッジ情報を送出する。その後、S904に戻り、座標ヒント付エッジデータ展開部3011は、同一のsrc座標系のy座標値を有する次のエッジデータを確認する。S914において、座標ヒント付エッジデータ展開部3011は、device座標系のY座標値をインクリメントし、S902に戻る。
【0084】
図8および図9の説明で述べたように、拡大率1倍の場合に実行される図8の処理においては、文書画像データ3009中のエッジデータのうち、エッジデータ4200にのみアクセスを行う。一方、拡大率が“1”以外の場合に実行される図9の処理においては、文書画像データ3009中のエッジデータ4200、座標ヒント情報4300、エッジデータ4301〜4303のすべてにアクセスを行う。文書画像データ3009は、ヒント情報を活用することによって1/4画素単位の精度で画像生成が可能である。しかし、エッジデータ4200のみを独立したデータ領域上に配置たことで、拡大率が“1”の処理速度が低下することはない。また座標ヒント情報4300とエッジデータ4301〜4303を隣接するデータ領域に配置したことで、拡大縮小を伴う画像生成処理も効率的に実施することが可能である。
【0085】
また低解像度描画オブジェクトと高解像度描画オブジェクトが混在した場合であっても、境界での隙間が目立たない高品位の画像を得ることが可能になる。
【0086】
さらに、低解像度描画オブジェクトを拡大縮小なしにレンダリングする場合に、速度低下することなく画像生成することが可能になる。
【0087】
また、本実施形態では、1/4座標を用いて、座標の補正および対応するデータ構造を述べたが、これに限定するものではなく、より詳細な座標の付加情報を設定しても構わない。この場合には、図4、5に示すエッジデータの構成も変更されることとなる。
【0088】
<第二実施形態>
第一実施形態においては、文書画像データ処理装置が、制御装置100にてPDLデータ3001から文書画像データ3009を生成する処理と、文書画像データ3009から印刷出力画像を生成する処理を含んでいることを説明した。
【0089】
この二つの処理は、同一のデジタル複合機上で動作する必要はない。文書画像データ3009は、座標ヒント付エッジデータを含むことで、様々な解像度のプリントエンジンから出力することができる形式になっている。
【0090】
図3の左側に示した各工程(3001〜3009)で行われる処理と、図3の右側に示した各工程(3009〜3016)で行われる処理を、別々のデジタル複合機で実行してもよい。その際には、文書画像データ3009はネットワークを経由して別のデジタル複合機のHDDに転送される。もしくは磁気メディア、書き換え可能な光学メディア、フラッシュメモリなどを経由して別のデジタル複合機のHDDにコピーされてもよい。
【0091】
これにより、第一実施形態と同様の効果を得ることができる。
【0092】
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【特許請求の範囲】
【請求項1】
入力されたページ記述言語により記述されたPDLデータから描画データを生成する画像処理装置であって、
前記PDLデータを解釈し、描画オブジェクトを生成する描画オブジェクト生成手段と、
前記描画オブジェクト生成手段により生成された描画オブジェクトに含まれる各画素の座標値を定められた解像度で量子化し、描画データを生成する生成手段と、
前記生成手段にて前記定められた解像度で座標値を量子化する際に、量子化によって切り捨てられるべき値を座標値の付加情報として保持する保持手段と
を有し、
前記保持手段は、前記付加情報を、前記生成手段により生成された描画データの、量子化によって得られる前記定められた解像度での座標値とは異なる領域に保持することを特徴とする画像処理装置。
【請求項2】
前記描画データをレンダリングするレンダリング手段と、
前記レンダリング手段によるレンダリングの解像度が前記定められた解像度でない場合に、前記付加情報を用いて前記定められた解像度にて量子化された座標値を補正する補正手段と
を更に有することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記補正手段は、前記レンダリング手段によるレンダリングの解像度が前記定められた解像度と同一である場合は、前記付加情報を用いた座標値の補正を行わないことを特徴とする請求項2に記載の画像処理装置。
【請求項4】
前記描画オブジェクト生成手段により生成された描画オブジェクトの属性を判定する判定手段を更に有し、
前記保持手段は、前記描画オブジェクトの属性が所定の属性の場合には、当該描画オブジェクトに対し前記生成手段にて量子化を行っていないデータを描画データとして保持することを特徴とする請求項1乃至3のいずれか一項に記載の画像処理装置。
【請求項5】
前記所定の属性は、前記描画オブジェクトが細線もしくは所定のサイズよりも小さな文字であることを特徴とする請求項4に記載の画像処理装置。
【請求項6】
前記付加情報は、前記定められた解像度よりも高解像度における座標値を示し、
当該高解像度における座標値は、前記定められた解像度の座標値との差分により定義されることを特徴とする請求項1乃至5のいずれか一項に記載の画像処理装置。
【請求項7】
前記保持手段は、前記定められた解像度における座標値と前記高解像度における座標値との差分が、当該差分を定義するために予め定められたビット数よりも大きい場合、仮の座標点を追加し、前記予め定められた解像度における座標値に代わって当該仮の座標点の座標値との差分により、前記高解像度における座標値を定義することを特徴とする請求項6に記載の画像処理装置。
【請求項8】
前記描画オブジェクト生成手段と前記生成手段と前記保持手段とを有する画像処理装置と異なる別の画像処理装置が、前記レンダリング手段と前記補正手段を備えることを特徴とする請求項2に記載の画像処理装置。
【請求項9】
入力されたページ記述言語により記述されたPDLデータから描画データを生成する画像処理方法であって、
描画オブジェクト生成手段が、前記PDLデータを解釈し、描画オブジェクトを生成する描画オブジェクト生成工程と、
生成手段が、前記描画オブジェクト生成工程において生成された描画オブジェクトに含まれる各画素の座標値を定められた解像度で量子化し、描画データを生成する生成工程と、
保持手段が、前記生成工程にて前記定められた解像度で座標値を量子化する際に、量子化によって切り捨てられるべき値を座標値の付加情報として記憶部に保持する保持工程と
を有し、
前記保持工程において、前記付加情報を、前記生成工程により生成された描画データの、量子化によって得られる前記定められた解像度での座標値とは異なる領域に保持することを特徴とする画像処理方法。
【請求項10】
コンピュータを、
ページ記述言語により記述されたPDLデータを解釈し、描画オブジェクトを生成する描画オブジェクト生成手段、
前記生成手段により生成された描画オブジェクトに含まれる各画素の座標値を定められた解像度で量子化し、描画データを生成する生成手段、
前記生成手段にて前記定められた解像度で座標値を量子化する際に、量子化によって切り捨てられるべき値を座標値の付加情報として保持する保持手段
として機能させ、
前記保持手段は、前記付加情報を、前記生成手段により生成された描画データの、量子化によって得られる前記定められた解像度での座標値とは異なる領域に保持することを特徴とするプログラム。
【請求項1】
入力されたページ記述言語により記述されたPDLデータから描画データを生成する画像処理装置であって、
前記PDLデータを解釈し、描画オブジェクトを生成する描画オブジェクト生成手段と、
前記描画オブジェクト生成手段により生成された描画オブジェクトに含まれる各画素の座標値を定められた解像度で量子化し、描画データを生成する生成手段と、
前記生成手段にて前記定められた解像度で座標値を量子化する際に、量子化によって切り捨てられるべき値を座標値の付加情報として保持する保持手段と
を有し、
前記保持手段は、前記付加情報を、前記生成手段により生成された描画データの、量子化によって得られる前記定められた解像度での座標値とは異なる領域に保持することを特徴とする画像処理装置。
【請求項2】
前記描画データをレンダリングするレンダリング手段と、
前記レンダリング手段によるレンダリングの解像度が前記定められた解像度でない場合に、前記付加情報を用いて前記定められた解像度にて量子化された座標値を補正する補正手段と
を更に有することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記補正手段は、前記レンダリング手段によるレンダリングの解像度が前記定められた解像度と同一である場合は、前記付加情報を用いた座標値の補正を行わないことを特徴とする請求項2に記載の画像処理装置。
【請求項4】
前記描画オブジェクト生成手段により生成された描画オブジェクトの属性を判定する判定手段を更に有し、
前記保持手段は、前記描画オブジェクトの属性が所定の属性の場合には、当該描画オブジェクトに対し前記生成手段にて量子化を行っていないデータを描画データとして保持することを特徴とする請求項1乃至3のいずれか一項に記載の画像処理装置。
【請求項5】
前記所定の属性は、前記描画オブジェクトが細線もしくは所定のサイズよりも小さな文字であることを特徴とする請求項4に記載の画像処理装置。
【請求項6】
前記付加情報は、前記定められた解像度よりも高解像度における座標値を示し、
当該高解像度における座標値は、前記定められた解像度の座標値との差分により定義されることを特徴とする請求項1乃至5のいずれか一項に記載の画像処理装置。
【請求項7】
前記保持手段は、前記定められた解像度における座標値と前記高解像度における座標値との差分が、当該差分を定義するために予め定められたビット数よりも大きい場合、仮の座標点を追加し、前記予め定められた解像度における座標値に代わって当該仮の座標点の座標値との差分により、前記高解像度における座標値を定義することを特徴とする請求項6に記載の画像処理装置。
【請求項8】
前記描画オブジェクト生成手段と前記生成手段と前記保持手段とを有する画像処理装置と異なる別の画像処理装置が、前記レンダリング手段と前記補正手段を備えることを特徴とする請求項2に記載の画像処理装置。
【請求項9】
入力されたページ記述言語により記述されたPDLデータから描画データを生成する画像処理方法であって、
描画オブジェクト生成手段が、前記PDLデータを解釈し、描画オブジェクトを生成する描画オブジェクト生成工程と、
生成手段が、前記描画オブジェクト生成工程において生成された描画オブジェクトに含まれる各画素の座標値を定められた解像度で量子化し、描画データを生成する生成工程と、
保持手段が、前記生成工程にて前記定められた解像度で座標値を量子化する際に、量子化によって切り捨てられるべき値を座標値の付加情報として記憶部に保持する保持工程と
を有し、
前記保持工程において、前記付加情報を、前記生成工程により生成された描画データの、量子化によって得られる前記定められた解像度での座標値とは異なる領域に保持することを特徴とする画像処理方法。
【請求項10】
コンピュータを、
ページ記述言語により記述されたPDLデータを解釈し、描画オブジェクトを生成する描画オブジェクト生成手段、
前記生成手段により生成された描画オブジェクトに含まれる各画素の座標値を定められた解像度で量子化し、描画データを生成する生成手段、
前記生成手段にて前記定められた解像度で座標値を量子化する際に、量子化によって切り捨てられるべき値を座標値の付加情報として保持する保持手段
として機能させ、
前記保持手段は、前記付加情報を、前記生成手段により生成された描画データの、量子化によって得られる前記定められた解像度での座標値とは異なる領域に保持することを特徴とするプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2013−8247(P2013−8247A)
【公開日】平成25年1月10日(2013.1.10)
【国際特許分類】
【出願番号】特願2011−141218(P2011−141218)
【出願日】平成23年6月24日(2011.6.24)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成25年1月10日(2013.1.10)
【国際特許分類】
【出願日】平成23年6月24日(2011.6.24)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]