(57)【要約】      （修正有）【課題】アプリケーション側で描画コマンドの合成（特に下地合成イメージの生成）がなされた場合でも、印刷処理に伴う画像処理によって色味の段差を生じさせないような印刷ジョブを生成する。【解決手段】印刷装置に印刷を実行させるための印刷ジョブを生成するプリンタドライバを備えた情報処理装置において、前記プリンタドライバは、アプリケーションから入力された描画コマンドに係るオブジェクトが、文字とその下地とが合成された下地合成イメージのオブジェクトであって、かつ、単色が指定されたグラフィクスのオブジェクトと重なりがある場合に、当該下地合成イメージのオブジェクト内の当該重なり部分において、印刷した際に色味の段差が生じないように、前記描画コマンドを修正する色段差解消処理を行う処理手段と、前記色段差解消処理がなされた描画コマンドをPDLに変換して前記印刷ジョブを生成する生成手段と、を備える、ことを特徴とする。【選択図】図４
2017228838.tif 000002
【特許請求の範囲】
【請求項１】
印刷装置に印刷を実行させるための印刷ジョブを生成するプリンタドライバを備えた情報処理装置において、
前記プリンタドライバは、
アプリケーションから入力された描画コマンドに係るオブジェクトが、文字とその下地とが合成された下地合成イメージのオブジェクトであって、かつ、単色が指定されたグラフィクスのオブジェクトと重なりがある場合に、当該下地合成イメージのオブジェクト内の当該重なり部分において、印刷した際に色味の段差が生じないように、前記描画コマンドを修正する色段差解消処理を行う処理手段と、
前記色段差解消処理がなされた描画コマンドをPDLに変換して前記印刷ジョブを生成する生成手段と、を備える、
ことを特徴とする情報処理装置。
【請求項２】
前記処理手段は、
前記描画コマンドが、イメージのオブジェクトの描画を指定する描画コマンドであって、当該イメージのオブジェクト内に、描画順が当該イメージのオブジェクトの直前であって単色が指定されたグラフィックスのオブジェクトの一部がイメージに変化した部分を含む可能性がある場合に、当該部分が、前記単色が指定されたグラフィックスのオブジェクトと同じ色で、かつ重なっているとき、
前記アプリケーションから入力された描画コマンドに係るオブジェクトが、前記下地合成イメージのオブジェクトであって、かつ、単色が指定されたグラフィクスのオブジェクトと重なりがある、と判定する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記処理手段は、
前記イメージのオブジェクトの境界を構成するピクセルにおいて、白でない色のピクセルが一定数以上連続している場合に、
前記イメージのオブジェクト内に、描画順が当該イメージのオブジェクトの直前であって単色が指定されたグラフィックスのオブジェクトの一部がイメージに変化した部分を含む可能性がある、と判定する、
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記処理手段は、少なくとも前記重なり部分が、グラフィクス属性で印刷されるように、前記描画コマンドを修正することを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記描画コマンドの修正は、前記重なり部分を、パス点列によるグラフィクスのオブジェクトと同じ色で上書きする描画コマンドを追加することであることを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記描画コマンドの修正は、前記重なり部分に対応するマスクイメージを作成し、当該マスクイメージにおけるマスク部分をくり抜く描画コマンドを追加することであることを特徴とする請求項４に記載の情報処理装置。
【請求項７】
重なりのある色が複数ある場合には、各重なりのある色の部分について作成したマスクイメージをOR合成したマスクイメージを作成することを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記処理手段は、前記アプリケーションから入力された描画コマンドに係るオブジェクトが、前記下地合成イメージのオブジェクトであって、かつ、単色が指定されたグラフィクスのオブジェクトと重なりがあると判定した場合に、さらに、前記下地合成イメージのオブジェクトが他のオブジェクトと重なっているかを判定し、
他のオブジェクトと重なっていない場合には、前記下地合成イメージのオブジェクトが、グラフィクス属性で印刷されるように前記描画コマンドを修正し、
他のオブジェクトと重なっている場合には、同一ページに含まれるすべてのオブジェクトが、同じ属性で印刷されるように統一する
ことを特徴とする請求項４に記載の情報処理装置。
【請求項９】
前記同じ属性の内容は、グラフィクス、イメージ、テキストのいずれかであることを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
どの属性に統一するのかを、ページ内に含まれるオブジェクトの中でどの属性のオブジェクトが多いかに基づいて、又は、ページ内に占める描画面積に応じて決定することを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
印刷装置に印刷を実行させるための印刷ジョブを生成するプリンタドライバであって、
アプリケーションから入力された描画コマンドに係るオブジェクトが、文字とその下地とが合成された下地合成イメージのオブジェクトであって、かつ、単色が指定されたグラフィクスのオブジェクトと重なりがある場合に、当該下地合成イメージのオブジェクト内の当該重なり部分において、印刷した際に色味の段差が生じないように、前記描画コマンドを修正する色段差解消処理を行う処理手段と、
前記色段差解消処理がなされた描画コマンドをPDLに変換して前記印刷ジョブを生成する生成手段と、
を備えたことを特徴とするプリンタドライバ。
【請求項１２】
印刷装置に印刷を実行させるための印刷ジョブを生成する方法であって、
アプリケーションから入力された描画コマンドに係るオブジェクトが、文字とその下地とが合成された下地合成イメージのオブジェクトであって、かつ、単色が指定されたグラフィクスのオブジェクトと重なりがある場合に、当該下地合成イメージのオブジェクト内の当該重なり部分において、印刷した際に色味の段差が生じないように、前記描画コマンドを修正する色段差解消処理を行う処理ステップと、
前記色段差解消処理がなされた描画コマンドをPDLに変換して前記印刷ジョブを生成する生成ステップと、
を含むことを特徴とする方法。
【請求項１３】
コンピュータに、請求項１２に記載の方法を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力描画データをプリンタで出力可能な形式の印刷データに変換する画像処理技術に関する。
【背景技術】
【０００２】
従来からデジタル複写機やプリンタ等の印刷装置では、入力された印刷データに含まれる各オブジェクト（OBJ）の属性に応じた画像処理を行うことにより印刷画質の向上を行っている。この属性には、イメージ、グラフィック、テキストなどがあり、情報処理装置内のプリンタドライバが、アプリケーションから入力された描画コマンドの属性を判別し、オブジェクト毎に属性情報を付与した印刷データを生成している。この印刷データは、PDL (Page Description Language)と呼ばれる印刷装置で処理可能な形式のデータ（以下、PDLデータ）である。プリンタドライバは、このPDLデータを含む印刷ジョブを出力することで印刷装置に印刷処理を実行させる。また、PDLデータを生成する際にプリンタドライバは、異なる属性を持つ複数の描画コマンドを合成して、１つのイメージ属性の描画コマンドに変換（イメージ化）することがある。これは、多数の描画コマンドがある場合にデータ量を削減して印刷装置の処理負荷を低減したり、PDLでは表現できない描画を出力したりするためである。そして、このイメージ化においては、合成後の描画ビットマップイメージと、合成前の各オブジェクトそれぞれの属性を表す属性ビットマップイメージとが生成される。この２種類のビットマップイメージをPDLに変換することで、複数の属性を含むイメージであっても、印刷装置において属性毎に適した画像処理を実行することが可能となる。このように、プリンタドライバ内で複数の描画コマンドの合成を行う場合は、属性ビットマップイメージが作成されることから、合成後の描画ビットマップイメージ内に複数の属性が含まれていることを把握できる。
【０００３】
しかしながら、描画コマンドの合成は、アプリケーションやOS（Operating System）の段階でなされる場合もある。図１は、プリンタドライバに描画コマンドが入力される前に、アプリケーション側で複数の描画コマンドが合成される場合の一例を示す図である。図１（ａ）は、PowerPoint（登録商標）などのアプリケーション上の編集画面に表示された描画対象の画像である。図１（ａ）の画像は、単色で塗り潰された矩形のグラフィクスOBJ１０１と、透過率5%が指定された文字OBJ１０２とからなる。アプリケーションによっては、文字OBJに対して一部透過などの複雑な設定が行われていると、文字OBJの描画部分とその下地部分とに対して透過合成処理を行うことがある。この透過合成処理によって、文字と下地とが合成され１つになったイメージ（以下、下地合成イメージ）のオブジェクトが生成される。図１（ａ）の画像の場合、文字OBJ１０２の描画部分（“ABC”を囲む矩形領域）と、その下地部分（当該矩形領域に対応する単色グラフィクスOBJ１０１の部分）とが合成されることになる。図１（ｂ）における破線の矩形１１２で囲まれた領域が、透過合成処理で生成された下地合成イメージを示している。このように、文字OBJ１０２の描画部分は、その下地の単色グラフィクスOBJ１０２と合成されて、イメージ属性のオブジェクトとなる。そして、アプリケーションからは、文字OBJ１０２の描画を指示するテキストの描画コマンドの代わりに、下地合成イメージOBJ１１２の描画を指示するイメージの描画コマンドがプリンタドライバに渡されることになる。
【０００４】
ところが、プリンタドライバでは、アプリケーション（またはOS）から受信した描画コマンドの種類に基づいて、各オブジェクトの属性の判定を行っている。したがって、下地合成イメージOBJ１１２についてイメージの描画コマンドを受信した場合、当該描画コマンドに係るオブジェクトの属性をイメージと判定することになる。そうなると、元は１つの単色グラフィクスOBJ１０１であった領域が、グラフィクス属性の領域とイメージ属性の領域という異なる属性の領域に分かれることになる。その結果、同じ色であるはずの２つの領域に対して、属性に応じた異なる画像処理が印刷装置で施されてしまう。図１（ｃ）は、印刷装置から出力される印刷結果を示している。元の単色グラフィクスOBJ１０１のまま変更がない描画領域１２１にはグラフィクス属性用の画像処理が施されて印刷出力されるのに対し、下地合成イメージOBJ１１２に変わった描画領域１２２にはイメージ属性用の画像処理が施されて印刷出力される。その結果、描画領域１２１と１２２はアプリケーションの編集画面では同じ色であったはずが、属性に違いが生じたことにより色味の差が生じてしまう。
【０００５】
この点、レンダリング後に、着目する参照画素と直前の隣接画素との間で色データの類似性を判定し、類似する場合は当該着目する参照画素の属性を当該直前の隣接画素の属性に変更することで、色味の差が生じないようにする技術もある（特許文献１）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−１５７７９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１の手法は、レンダリング後の描画イメージ上の互いに隣接する画素間で比較を行って属性変更を行う技術である。つまり、レンダリング後の描画イメージにおいて、同じ色の画素が連続し、かつ、属性の異なる箇所が検知できた場合に属性を同じにすることで、色味の段差の問題が生じないようにすることが可能である。そのため、前述したような１つのイメージの中に異なる複数の色が存在するようなケース（図１の場合、下地合成イメージ内の文字部分と背景部分とでは色が異なる）では、色味の違いを解消できない箇所が残ってしまう。
【課題を解決するための手段】
【０００８】
本発明に係る情報処理装置は、印刷装置に印刷を実行させるための印刷ジョブを生成するプリンタドライバを備えた情報処理装置において、前記プリンタドライバは、アプリケーションから入力された描画コマンドに係るオブジェクトが、文字とその下地とが合成された下地合成イメージのオブジェクトであって、かつ、単色が指定されたグラフィクスのオブジェクトと重なりがある場合に、当該下地合成イメージのオブジェクト内の当該重なり部分において、印刷した際に色味の段差が生じないように、前記描画コマンドを修正する色段差解消処理を行う処理手段と、前記色段差解消処理がなされた描画コマンドをPDLに変換して前記印刷ジョブを生成する生成手段と、を備える、ことを特徴とする。
【発明の効果】
【０００９】
本発明によれば、アプリケーション側で描画コマンドの合成（特に下地合成イメージの生成）がなされた場合でも、印刷処理に伴う画像処理によって色味の段差を生じさせないような印刷ジョブを生成することができる。
【図面の簡単な説明】
【００１０】
【図１】アプリケーション側で複数の描画コマンドが合成される場合の一例を示す図である。
【図２】情報処理装置のハードウェア構成の一例を示すブロック図である。
【図３】情報処理装置のソフトウェア構成の一例を示すブロック図である。
【図４】実施例１に係る、描画コマンドの修正処理の流れを示すフローチャートである。
【図５】（ａ）はディスプレイ上に表示された印刷対象ページの一例、（ｂ）はアプリケーションがプリンタドライバに対して渡す描画内容、を示す図である。
【図６】描画情報テーブルの一例を示す図である。
【図７】（ａ）は下地合成イメージOBJの境界を構成するピクセル、（ｂ）は同じ色が連続するピクセル列の情報を格納するテーブル、を示す図である。
【図８】（ａ）は下地合成イメージOBJの拡大図、（ｂ）はsolid画像に対応する部分をパス点列によるグラフィクス描画で示した図である。
【図９】（ａ）は印刷対象ページの修正前の描画コマンド群（中間データ）、（ｂ）は修正後の描画コマンド群（中間データ）を示す図である。
【図１０】XPSデータのデータ構造を示す図である。
【図１１】単色グラフィクス重なり判定処理の詳細を示すフローチャートである。
【図１２】（ａ）は印刷対象ページの修正前の描画コマンド群（XPS形式）、（ｂ）は修正後の描画コマンド群（XPS形式）を示す図である。
【図１３】（ａ）は下地合成イメージOBJの拡大図、（ｂ）はSolid画像部分に対応するマスクイメージを示す図である。
【図１４】実施例３に係る、色段差解解消処理の流れを示すフローチャートである。
【図１５】（ａ）は印刷対象ページの修正前の描画コマンド群、（ｂ）は修正後の描画コマンド群を示す図である。
【発明を実施するための形態】
【００１１】
以下、添付の図面を参照して、本発明を実施する形態について説明する。なお、以下の実施例において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
【実施例１】
【００１２】
本実施例に係る印刷システムでは、情報処理装置において、アプリケーションから入力された描画コマンドをプリンタドライバが解析して色味の段差が生じないようにその属性を修正した上で、印刷ジョブを生成する。そして、当該印刷ジョブが印刷装置に送られて印刷処理が実行される。以下、詳しく説明する。
【００１３】
図２は、情報処理装置のハードウェア構成の一例を示すブロック図である。なお図２に示す構成は一例であって、情報処理装置１００は単体の機器であっても、ＬＡＮやＷＡＮ等のネットワークを介して接続がされた複数の機器からなるシステムであってもよい。情報処理装置１００は、ＲＯＭ１０６やハードディスク１０３に記憶された処理プログラムをＣＰＵ１０１が実行することで様々な処理を実現し、システムバス１０９に接続された各部を総括的に制御する。また、ＣＰＵ１０１は、マウスカーソル等で指示されたコマンドに基づいて、予め登録されたウインドウを開くといった種々の処理を実行する。例えばユーザが印刷の実行を指示する際は、印刷設定のウインドウを開き、後述のプリンタドライバ（不図示）に対する各種設定を行う。ＲＡＭ１０２は、ＣＰＵ１０１の主メモリ、ワークエリア等として機能する。ハードディスク１０３には、ＯＳ、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル等が記憶される。プリンタドライバもハードディスク１０３に保存される。ディスプレイコントローラ１０４は、不図示のディスプレイの表示を制御する。プリンタコントローラ１０５は、所定の双方向性インタフェース（不図示）を介して印刷装置２００に接続され、印刷装置２００との通信制御を担う。なお、ＣＰＵ１０１は、例えばＲＡＭ１０２上に設定された表示情報ＲＡＭへのアウトラインフォントの展開（ラスタライズ）処理を実行し、ディスプレイ上でのWYSIWYG（ウィジウィグ）を可能としている。外部記憶ドライブ１０７は、ＣＤやＤＶＤといった記憶媒体とのアクセスを制御する。キーボードコントローラ１０８は、キーボードやポインティングデバイスからのキー入力を制御する。
【００１４】
図３は、情報処理装置のソフトウェア構成の一例を示すブロック図である。情報処理装置１００は、前述のプリンタコントローラ１０５を介して、後述する印刷装置２００と接続されている。情報処理装置１００には、不図示のオペレーティングシステム（以下、OS）がインストールされている。OSとしては、例えばWindows（登録商標）が挙げられる。アプリケーション３００は、各種文書等を生成するソフトウェアであり、例えば前述のPowerPoint（登録商標）が該当し、OS上で動作する。
【００１５】
プリンタドライバ３１０は、印刷装置２００に印刷処理を実行させるための印刷ジョブを生成するソフトウェアである。プリンタドライバ３１０は、アプリケーション３００から受け取った例えばXPSやGDIといった形式の描画コマンドを、印刷装置２００が処理可能なデータ形式であるPDLに変換して印刷ジョブを生成する。印刷ジョブには、PDLで記述された印刷対象画像データに加え、用紙サイズ、部数、N-up印刷や両面印刷といったレイアウト、カラー／モノクロ設定など、印刷処理時に必要な情報（印刷設定情報）が含まれる。プリンタドライバ３１０は、ＵＩ部３１１と描画コマンド処理部３１２で構成される。ＵＩ部３１１は、印刷処理時の各種設定や印刷開始指示をユーザが行うためのＵＩ画面を表示したり、該ＵＩ画面に入力された情報を処理するなどユーザインタフェースに関する機能を提供する。描画コマンド処理部３１２は、アプリケーション３００から受け取った描画コマンドに基づいて上述の印刷ジョブを生成する。この描画コマンド処理部３１２は、色段差解消処理部３１３、PDL変換部３１４及び印刷ジョブ生成部３１５で構成される。以下、描画コマンド処理部３１２を構成する各部について説明する。
【００１６】
色段差解消処理部３１３は、アプリケーション３００から入力された描画コマンドを解析して中間データに変換し、色味の段差が発生すると予想される箇所を特定して、印刷した際に色味の段差が生じないように中間データを修正する処理を行う。PDL変換部３１４は、必要に応じ修正された中間データをPDLに変換し、印刷装置２００で処理可能なPDLデータを生成する。PDLには、例えばPS（Adobe社製）やPCL（HP社製）などがあるが、特に限定されない。印刷ジョブ生成部３１５は、生成されたPDLデータと印刷設定情報とからなる印刷ジョブを生成する。生成された印刷ジョブは、OSの機能の１つであるデータ送受信部３２０によって、印刷装置２２０に送られる。そして、印刷装置２００は、情報処理装置１００から受け取った印刷ジョブに従って印刷処理を実行する。具体的には、印刷ジョブに含まれるPDLデータに対しレンダリングや量子化といった必要な処理を施した後、紙等の記録媒体上に画像を形成する。なお、本実施例では、アプリケーション３００から入力された描画コマンドを中間データに変換した上で、必要に応じて修正した中間データをPDLに変換する構成としているが、これに限られない。例えば、入力された描画コマンドに対して直接に修正処理を行ってPDLに変換する構成であってもよい。
【００１７】
続いて、本実施例の特徴である、描画コマンド（中間データ）の修正処理について詳しく説明する。図４は、本実施例に係る、描画コマンドの修正処理の流れを示すフローチャートである。アプリケーション３００からプリンタドライバ３１０に対し、印刷対象となる画像の描画コマンドがページ単位で渡されると、上述の通り中間データに変換する処理が先ずなされ、その後に以下の一連の処理が開始される。ただし、図４のフローの説明においては、中間データに変換後の描画コマンドも便宜的に「描画コマンド」と呼ぶこととする。図５（ａ）は、情報処理装置１００のディスプレイ上に表示された、アプリケーション３００で作成した印刷対象ページの一例である。図５（ａ）の印刷対象ページには、グラフィック、テキスト、イメージの３種類のオブジェクト（OBJ）が存在している。参照符号５０１は横長の単色矩形のグラフィクスOBJ、参照符号５０２は縦長の単色矩形のグラフィクスOBJであり、それぞれの色をここでは(R, G, B) = (255, 0, 0)、(0, 255, 0)とする。参照符号５０３は風景（自然画）のイメージOBJである。参照符号504は「ABC」のアルファベット3文字からなる、透過率5%が指定されたテキストOBJである。そして、図５（ｂ）は、アプリケーション３００がプリンタドライバ３１０に対して渡す描画内容を示した図である。単色矩形の２つのグラフィクスOBJ５０１及び５０２はグラフィクスの描画コマンド、自然画のイメージOBJ５０３はイメージの描画コマンドといった具合に、本来の属性に従った描画コマンドにてプリンタドライバ３１０へと渡される。しかし、アルファベット3文字のテキストOBJ５０４については、前述の透過合成処理によって下地合成イメージOBJ５１０へと変化した結果、テキストではなくイメージの描画コマンドがプリンタドライバ３１０へと渡される。この時、下地合成イメージOBJ５１０内の破線で囲まれた領域５１１については、単色矩形のグラフィクスOBJ５０２と同じ色、すなわち、(0, 255, 0)が指定される。しかしながら、その属性はグラフィクスからイメージへと変化しているため、印刷出力時の画像処理における属性に応じた取り扱いの違いにより、破線領域５１１と元のグラフィクスOBJ５０２との境界部分で色味の段差が発生してしまう。このような問題を解決するための本実施例における色段差解消処理の内容を、上記図５の場合を例に、図４のフローに沿って説明する。
【００１８】
ステップ４０１では、入力された描画コマンドの属性が判定される（属性判定処理）。この際、描画順が最初の描画コマンドから順に処理される。判定の結果、イメージ属性であればステップ４０２に進み、イメージ以外の属性であればステップ４０６に進む。図５（ａ）に示すページの場合、グラフィクスOBJ５０１、グラフィクスOBJ５０２、イメージOBJ５０３、下地合成イメージOBJ５１０の順に描画される。よって、単色グラフィクスOBJ５０１の描画コマンドについて最初に属性判定処理がなされ、判定結果はグラフィクスであるので、ステップ４０６に進むことになる。説明の便宜上、ステップ４０６及びステップ４０７について先に説明する。
【００１９】
ステップ４０６では、処理対象である描画コマンドの描画情報がテーブルに記憶される。図６は、描画情報テーブルの一例を示す図である。この描画情報テーブル６００には、描画コマンドによって描画されるオブジェクトのページ内の位置、大きさ（外接矩形）、並びに、描画コマンドの属性がグラフィクスであって且つ単色が指定されている場合にはその色といった情報が、描画順に格納される。図６に示すテーブル６００において、ID：0がグラフィクスOBJ５０１についての描画情報であり、単色が指定されているのでその色情報として(R, G, B)=（255,0,0）が格納されている。そして、描画情報の記憶が完了すると、ステップ４０７に進み、未処理の描画コマンドがあるかどうかが判定される。未処理の描画コマンドがあれば、ステップ４０１に戻り、描画順に従って次の描画コマンドについての処理が続行される。図５の例では、グラフィクスOBJ５０２についてもグラフィクスOBJ５０１と同様に処理されて、ID：1の描画情報がテーブル６００に格納される。そして、3回目のルーチンで、イメージOBJ５０３の描画コマンドの属性判定処理（ステップ４０１）でその属性がイメージと判定されると、ステップ４０２に進むことになる。
【００２０】
ステップ４０２では、当該イメージの描画コマンドに対応するイメージOBJが、下地合成イメージであって、solid画像を含んでいる可能性があるかどうかが判定される。ここで、solid画像とは、単色が指定されたグラフィックスOBJの一部が透過合成処理によってイメージ属性に変化した部分を指す。本ステップの判定処理では、当該イメージOBJの境界を構成する各ピクセル（イメージOBJの外側との境界位置にある各ピクセル）において、白以外の色が一定数以上連続しているかどうかを判定する。図７を参照して説明する。図７（ａ）は、下地合成イメージOBJ５１０に対応しており、その外周にある複数の矩形それぞれは境界を構成するピクセルを示している。ただし、説明の便宜上、実際の画像解像度よりも低い解像度である。左上のピクセル７１１から順に各ピクセルの色をチェックしていき、白でない色（有色）のピクセルが一定数以上連続した場合にsolid画像が含まれている可能性があると判断される。例えば、印刷対象ページの画像解像度が600dpiの場合であれば、1mmに相当する24個以上の同色且つ有色のピクセルが連続した場合にsolid画像を含んでいる可能性があると判断されることになる。図７（ａ）の例では、ピクセル７１１を基準として20番目のピクセル７１２から48番目のピクセル７１３まで連続して(R, G, B) =（0,255,0）のピクセルが並んでいることから、この箇所にsolid画像が含まれ得ると判断される。また、同じ色が連続する個所が複数存在することもあり得る為、同じ色が連続するピクセル列を1つのグループとして把握し、例えば図７（ｂ）に示すようなテーブルに、その色情報と一緒に保持しておく。判定の結果、当該イメージの描画コマンドに対応するイメージOBJが、solid画像を含む可能性のある下地合成イメージOBJである場合はステップ４０３に進む。一方、そうでない場合は上述のステップ４０６に進み、その描画情報が記憶される。
【００２１】
ステップ４０３では、 solid画像を含む可能性のある下地合成イメージOBJに、単色が指定されたグラフィクスOBJが重なっているかどうかの判定処理（単色グラフィクス重なり判定処理）がなされる。単色グラフィクス重なり判定処理の詳細については後述する。続くステップ４０４では、単色グラフィクス重なり判定処理の結果に従って処理の切り分けがなされる。すなわち、単色グラフィクスOBJとの重なりがあるとの判定結果であった場合はステップ４０５に進み、単色グラフィクスOBJとの重なりがないとの判定結果であった場合は上述のステップ４０６に進む。
【００２２】
ステップ４０５では、単色グラフィクスOBJとの重なりがある下地合成イメージOBJ内のsolid画像部分が、グラフィクス属性で印刷されるように描画コマンドが修正される。本実施例では、単色グラフィクス重なり判定処理（Ｓ４０３）において重なりがあると判定されたピクセルにおける色について、下地合成イメージOBJ内の同じ色のピクセル部分から、パス点列によるグラフィクスの描画コマンドを生成する。図８（ａ）は下地合成イメージOBJ５１０の拡大図であり、図８（ｂ）はsolid画像に対応する部分をパス点列によるグラフィクス描画で示した図である。そして、図９（ａ）は、図５（ａ）に示す印刷対象ページの修正前の描画コマンド群、同（ｂ）は修正後の描画コマンド群をそれぞれ示している。ここで、アプリケーション３００から送られてくる描画コマンド群（XPS形式の場合）について確認しておく。図１０は、XPSに対応したアプリケーションから入力されるXPSデータのデータ構造を示す図である。XPSは、XMLベースの電子文書フォーマットで、XML Paper Specificationの略である。XPSプリントパスでは、XPSを扱うアプリケーションでXPS形式の描画コマンドを生成し、XPS用のプリンタドライバにて印刷データに変換される。XPSデータは、ドキュメント情報の全てがXMLで記述されており、記述内容ごとの複数ファイルをZIP圧縮により1つにまとめている。XPSデータは図１０に示す通りツリー構造になっており、rootフォルダの下の第一階層に「Metadata」「_rels」、「Documents」といった複数のフォルダが存在する。これらのうち「Documents」フォルダ内の“1.fpage”や“2.fpage”がページ単位のファイルである。図９（ａ）及び（ｂ）は、このうちの1つのファイルである「1.fpage」に対応している。図９（ａ）及び（ｂ）において、参照符号９００の部分は、XPSファイルを作成したMXDCとそのバージョン名を示している。MXDCとは、GDI形式の描画データをXPS形式の描画データに変換するモジュールであり、Microsoft XPS Document Converterの略である。参照符号９００の場合、Microsoft社製のMXDCのバージョン0.3.7601.17514によって生成されたXPSデータであることを表している。図９（ａ）及び（ｂ）において、参照符号９０１の部分が、下地合成イメージOBJ５１０に対応する描画コマンドである。図９においては、下地合成イメージOBJ５１０以外の各OBJ（単色グラフィクスOBJ５０１及び５０２、自然画のイメージOBJ５０３）についての描画コマンドは省略されている。修正後の図９（ｂ）では、参照符号９０２で示す新たなパス点列の描画コマンドが追加されており、当該描画コマンドによって図８（ｂ）に示すグラフィクスOBJが、下地合成イメージOBJ５１０に上書きされることになる。すなわち、図８（ｂ）に示すグラフィクスOBJを下地合成イメージOBJ５１０の次に描画することで、Solid画像部分にグラフィクスの属性を与えることができる。こうして、描画コマンドの属性の違いに起因して、印刷出力時に色味の段差が発生するのを防ぐことができる。さらに、修正後の描画コマンドによって描画されるオブジェクトの描画情報をステップ４０６で登録することで、さらに別の下地合成イメージの描画が存在するようなケースでも問題なく色味の段差が生じ得る箇所を見つけ、その解消を図ることが可能となる。なお、図９で示される描画コマンド群は中間��ータであるので、現実のXPS形式の描画コマンドには存在しない、その属性を表す情報（参照符号９１０及び９１１で示す“attribute=”）が含まれている。以上が、本実施例に係る、色段差解消処理部３１３における処理の内容である。
【００２３】
続いて、図４のステップ４０３における単色グラフィクス重なり判定処理について説明する。図１１は、単色グラフィクス重なり判定処理の詳細を示すフローチャートである。
【００２４】
ステップ１１０１では、同じ色が連続するピクセル列の情報をグループ単位で格納したテーブル（図７（ｂ））を参照して、当該テーブル内のグループの中から注目するグループが決定される。そして、ステップ１１０２では、注目グループにおける上記ピクセル列の中から注目するピクセルが決定される。
【００２５】
ステップ１１０３では、決定された注目ピクセルの位置における最新の描画（前述の図６の描画情報テーブル内で描画順が最後の描画）が特定される。
【００２６】
ステップ１１０４では、ステップ１１０３で特定された最新描画が、単色グラフィクスOBJの描画かどうかが判定される。この判定処理でも、前述の描画情報テーブル（図６）が参照される。判定の結果、最新描画が単色グラフィクスOBJの描画である場合はステップ１１０５へ進む。一方、最新描画が単色グラフィクスOBJの描画でない場合はステップ１１０７へ進む。
【００２７】
ステップ１１０５では、注目ピクセルの色と最新描画に係る単色グラフィクスOBJの色とが同じかどうかが判定される。この判定処理でも、前述の描画情報テーブル（図６）が参照される。判定の結果、注目ピクセルの色と最新描画に係る単色グラフィクスOBJの色とが同じである場合はステップ１１０６へ進む。一方、注目ピクセルの色と最新描画に係る単色グラフィクスOBJの色とが異なっている場合はステップ１１０７へ進む。
【００２８】
ステップ１１０６では、下地合成イメージOBJと最新描画に係る単色グラフィクスOBJとの間で色段差が生じ得る重なりがあると判定される。そして、ステップ１１０７では、下地合成イメージOBJと最新描画に係る単色グラフィクスOBJとの間で色段差が生じ得る重なりはないと判定される。
【００２９】
ステップ１１０８では、注目グループ内に未処理のピクセルがあるかどうかが判定される。未処理のピクセルがあれば、ステップ１１０２に戻って、次のピクセルを注目ピクセルとして処理を続行する。一方、注目グループ内のすべてのピクセルについて処理が完了していれば、ステップ１１０９へ進む。
【００３０】
ステップ１１０９では、未処理のグループがあるかどうかが判定される。未処理のグループがあれば、ステップ１１０１に戻って、次のグループを注目グループとして処理を続行する。一方、すべてのグループについて処理が完了していれば、本処理を終える。
【００３１】
＜変形例＞
前述の通り、本実施例の手法は、入力された描画コマンドに対して、中間データを介することなく、直接に描画コマンドを修正する処理を行ってPDLに変換する構成においても適用可能である。図１２にその一例を示す。図１２（ａ）は、図５（ａ）に示す印刷対象ページの修正前の描画コマンド群（XPS形式）であり、同（ｂ）はその修正後の描画コマンド群（XPS形式）を示している。XPSに対応したアプリケーションから入力される描画コマンドそのものであるので、その属性を表す情報（図９における参照符号９１０及び９１１）は存在しない。図１２（ａ）及び（ｂ）は、前述の図９と同じく「1.fpage」に対応している。ただし、図９と同様、下地合成イメージOBJ５１０以外の各OBJ（単色グラフィクスOBJ５０１及び５０２、自然画のイメージOBJ５０３）についての描画コマンドは省略されている。図１２（ａ）及び（ｂ）において、参照符号１２０１で示す部分が、下地合成イメージOBJ５１０に対応するイメージの描画コマンドである。修正後の図１２（ｂ）では、参照符号１２０２で示す新たなパス点列の描画コマンドが追加されており、当該描画コマンドによって図８（ｂ）に示すグラフィクスOBJの描画が、下地合成イメージOBJ５１０に上書きされることになる。
【００３２】
本実施例によれば、下地合成イメージOBJと単色グラフィクスOBJとが重なって色味の段差が発生する可能性があると判断されると、当該下地合成イメージのオブジェクト内の重なり部分をパス点列によるグラフィクスOBJで上書きする描画コマンドが追加される。このような印刷ジョブに従って印刷処理を行うことで、印刷結果において色味の段差が生じるのを防ぐことができる。
【実施例２】
【００３３】
実施例１は、色味の段差が発生する可能性があると判断された場合に、下地合成イメージOBJと単色グラフィクスOBJとが重なっているSolid画像部分をパス点列によるグラフィクスOBJで上書きしていた。次に、マスクイメージ（属性ビットマップイメージ）を作成することで属性の違いによる色味の段差を解消する態様を、実施例２として説明する。なお、実施例１と共通する部分については説明を省略ないしは簡略化し、以下では差異点である描画コマンドの修正内容を中心に説明するものとする。
【００３４】
本実施例では、前述の図４のフローにおけるステップ４０５において、下地合成イメージOBJ内のsolid画像部分に対応するマスクイメージが作成される。図１３（ａ）は、図８（ａ）と同じで下地合成イメージOBJ５１０の拡大図であり、図１３（ｂ）はSolid画像部分に対応するマスクイメージを示している。単色グラフィクス重なり判定処理（Ｓ４０３）において重なりがあると判定されたピクセルにおける色について、下地合成イメージOBJ内の同じ色のピクセルのみ“1（黒）”、その他のピクセルは全て“0（白）”とすることで、マスクイメージは作成される。なお、マスクイメージにおいて黒と白は逆でもよい。また、この例では1色のみであるが、重なった色が複数ある場合には、各重なりのある色の部分を“1（黒）”にしたマスクイメージを作成すればよい。具体的には、先に作成した第1の色についてのマスクイメージと第2の色について作成したマスクイメージとをOR合成したマスクイメージを作成すればよい。そして、このようにして作成したマスクイメージに基づいて、マスク部分をくり抜いて描画する描画コマンドを発行する。そして当該描画コマンドにグラフィクス属性を付与することで、マスクイメージ部分がグラフィクス属性で描画されるので、色味の段差をなくすことができる。
【００３５】
本実施例によれば、下地合成イメージのオブジェクト内の重なり部分に対応するマスクイメージ（属性ビットマップイメージ）を作成し、当該マスク部分をくり抜く描画コマンドが追加される。このような印刷ジョブに従って印刷処理を行うことで、実施例１と同様、印刷結果において色味の段差が生じるのを防ぐことができる。
【実施例３】
【００３６】
実施例１及び２では、色味の段差が生じ得る箇所（Solid画像部分）のオブジェクト属性を修正することで色味の段差が生じるのを防いでいた。次に、色味の段差が発生する可能性がある場合には下地合成イメージOBJそのものの属性をイメージからグラフィクスに変更する態様を実施例３として説明する。なお、実施例１と共通する部分については説明を省略ないしは簡略化し、以下では差異点である色段差解消処理中心に説明するものとする。
【００３７】
図１４は、本実施例に係る、色段差解解消処理の流れを示すフローチャートである。ステップ１４０１〜ステップ１４０４は、実施例１の図４のフローにおけるステップ４０１〜ステップ４０４に対応する。まず、入力された描画コマンドに対し属性判定処理がなされ（Ｓ１４０１）、イメージ属性であれば当該イメージの描画コマンドに対応するイメージOBJが、solid画像を含む可能性のある下地合成イメージOBJであるか判定される（Ｓ１４０２）。そして、solid画像を含む可能性のある下地合成イメージOBJである場合は、単色グラフィクス重なり判定処理がなされ（Ｓ１４０３）、単色グラフィクスOBJとの重なりがある場合は、ステップ１４０５に進む（Ｓ１４０４でＹｅｓ）。
【００３８】
ステップ１４０５では、別のオブジェクトとの間でさらに重なりがあるかどうかが判定される。具体的には、下地合成イメージOBJの領域のうち単色グラフィクスOBJと重なりのある領域以外の領域において、単色グラフィクスOBJ以外の他のOBJ（例えば自然画像等のイメージOBJ）と重なりがあるかどうかが判定される。他のOBJとの重なりがなければステップ１４０６に進み、下地合成イメージOBJの属性がイメージからグラフィクスへと変更される。図１５は、下地合成イメージOBJに係る描画コマンド（中間データ）の属性を表す情報がイメージからグラフィクスへと変更された一例を示す図である。ただし、図９及び図１２と同様、下地合成イメージOBJ５１０以外の各OBJ（単色グラフィクスOBJ５０１及び５０２、自然画のイメージOBJ５０３）についての描画コマンドは省略されている。図１５（ａ）に示す修正前の描画コマンド群において参照符号１５０１の属性情報は“attribute= Image”であるが、図１５（ｂ）に示す修正後の描画コマンド群において参照符号１５０２の属性情報は“attribute=Graphics”となっている。
【００３９】
一方、ステップ１４０５の判定で他のOBJとの重なりがあると判定されれば、ステップ１４０７に進み、同一ページ内のすべてのOBJの属性が統一される。図５（ｃ）は、下地合成イメージ５１０に対して、単色グラフィクスOBJ５０２に加えて、自然画のイメージOBJ５０３’も重なっている場合の一例を示している。このように自然画のイメージOBJも合成され重なっている場合に、下地合成イメージOBJ全体をグラフィクス属性に変更すると、当該自然画のイメージOBJの属性がイメージの領域とグラフィクスの領域とに分かれてしまう。こうなると、自然画において不自然な色味の段差が生じる可能性がある。そこで、このような事態の発生を避けるために、下地合成イメージOBJに単色グラフィクスOBJ以外のOBJも重なっている場合には、ステップ１４０７において、下地合成イメージOBJを含むページ内すべてのオブジェクトの属性を、1種類の属性（例えばグラフィクス）に変更して属性を統一する。ここで、統一する属性の内容は、イメージやテキストといった他の属性でも構わない。また、どの属性に変更・統一するかを、ページ内に含まれるOBJの中でどの属性のOBJが多いかに基づいて決定したり、ページ内に占める描画面積に応じて決定してもよい。このように、ページ内の全オブジェクトの属性が統一された場合は、これ以降のページ内OBJの描画情報を記憶する必要がないため、本処理を終える。すなわち、次のページについての処理に移行することになる。
【００４０】
ステップ１４０８及びステップ１４０９は、実施例１の図４のフローにおけるステップ４０６及びステップ４０７に対応する。すなわち、ステップ１４０８では処理対象である描画コマンドの描画情報がテーブルに記憶され、ステップ１４０９では未処理の描画コマンドがあるかどうかが判定される。そして、未処理の描画コマンドがあれば、ステップ１４０１に戻り、描画順に従って次の描画コマンドについての処理が続行される。
【００４１】
本実施例によれば、下地合成イメージOBJと単色グラフィクスOBJとが重なって色味の段差が発生する可能性があると判断されると、さらに自然画等の他のOBJと重なっているかが判定される。そして、他のOBJと重なっていない場合には下地合成イメージOBJの属性がグラフィクスに変更され、他のOBJと重なっている場合にはページ内にある全OBJの属性が統一される。これにより、実施例１や２と同じ効果が得られる。さらに実施例１や２とは異なり描画コマンドの追加がないので、その処理時間コストも削減することができる。
【００４２】
＜その他の実施例＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
2017228838.tif 000003
【図２】
2017228838.tif 000004
【図３】
2017228838.tif 000005
【図４】
2017228838.tif 000006
【図５】
2017228838.tif 000007
【図６】
2017228838.tif 000008
【図７】
2017228838.tif 000009
【図８】
2017228838.tif 000010
【図９】
2017228838.tif 000011
【図１０】
2017228838.tif 000012
【図１１】
2017228838.tif 000013
【図１２】
2017228838.tif 000014
【図１３】
2017228838.tif 000015
【図１４】
2017228838.tif 000016
【図１５】
2017228838.tif 000017