説明

プリンタ装置、画像出力システム、レンダリング方法、及びプログラム

【課題】XPS文書の印刷時のプリンタ装置又は印刷システムに必要なメモリ使用量を削減し処理時間を短縮する。
【解決手段】何れかのフィルタ処理部FP1〜FPnでページ毎に透過描画判定処理をし、その判定結果に応じてレンダラ処理部202bの処理態様を切換える。透過描画がある場合はRGB多値レンダラ処理部202cによりRGB多値の仮想的フレームメモリを使って描画処理を行い描画オブジェクト間の重ね処理を行って透過描画の画像情報のRGBカラー多値画像データを作成し、そのRGBカラー多値画像データを対応するCMYKデータに変換し、さらにCMYK少値データに変換する。透過描画がない場合は、CMYK少値レンダラ処理部202dによりRGBカラー多値画像データを対応するCMYKデータに変換し、さらに描画データに必要なCMYK少値データに変換する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、XPS(XML Paper Specification)文書を印刷するプリンタ装置、XPS文書を作成するホスト装置と、該ホスト装置が作成したXPS文書に係る画像を出力する出力装置とを備える画像出力システム、XPS文書に基づいてレンダリングを行い、該XPS文書に係る画像の画像データをフレームメモリに形成するレンダリング方法、及びコンピュータに上述のレンダリング方法の各手順を実行させるプログラムに関する。
【背景技術】
【0002】
Microsoft社が提唱する、Windows Vista(登録商標)で採用されたXPSは、XMLベースの文書フォーマットであり、プリンタ記述言語(PDL)でもある。Transparency(透過描画)、Gradient(グラデーション)、Canvas(再利用可能な仮想描画メモリ)等の高度な表現が可能である。本明細書では、XPSに準じてアプリケーションプログラム等により作成された文書データを、XPS文書またはXPS文書データと称する。また、このXPSの仕様書を非特許文献1に示す。
【0003】
一方、透過描画のような高度な表現を実現するためには、少値化前の多値の色空間(例えば、RGB各色8bitで表される色空間)でレンダリングする必要があり、従来の、CMYK少値で行なっていたレンダリングと比較して、より多くのメモリを消費し、処理時間も掛かる。
【0004】
すなわち、RGB多値レンダリングは、実際のページフレームメモリに描画する前に、RGB多値の仮想的なフレームメモリを使って描画処理を行なった後に、CMYK変換、少値化を行なうため、CMYK少値レンダリングと比較して、RGB多値仮想フレームメモリが余分に必要であること、また、仮想フレームメモリのサイズが大きいために、その描画処理で使用するためのPDLワークメモリが増える、等の理由により、メモリ使用量が大きくなる。
【0005】
そして、このような問題に対応するための技術として、特許文献1には、透過描画命令がある場合でも、透過演算を行なわなくても処理可能な内容かどうかを判定し、処理可能であれば、より処理負荷の低い透過描画が不要な描画命令等に置き換えることで、描画処理時間を短縮するようにしたものが開示されている。
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献1に記載の技術では、透過描画ありの場合に、透過演算を伴なわない描画命令(例えばラスターオペレーション(ROP)等)に置き換えるために、本来の正しい描画結果が得られない可能性がある。
【0007】
この発明は、かかる実情に鑑みてなされたものであり、XPS文書を印刷する際にプリンタ装置又は印刷システムに必要なメモリ使用量を削減し、処理時間を短縮することができるプリンタ装置、画像出力システム、レンダリング方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
この発明のプリンタ装置は、XPS文書を印刷するプリンタ装置であって、上記XPS文書について、ページ毎に該ページ内に透過描画を指定するデータがあるか否かを判定する判定手段と、CMYK少値レンダリングパスを使用して、上記XPS文書に係る1ページ分のレンダリング処理を行うCMYK少値レンダリング手段と、RGB多値レンダリングパスを使用して、上記XPS文書に係る1ページ分のレンダリング処理を行うRGB多値レンダリング手段と、上記XPS文書のうち、上記判定手段が透過描画を指定するデータがないと判定したページについては、上記CMYK少値レンダリング手段にレンダリング処理を行わせ、透過描画を指定するデータがあると判定したページについては、上記RGB多値レンダリング手段にレンダリング処理を行わせるレンダリング制御手段とを備えたものである。
【0009】
上記判定手段は、XPS文書に対する判定処理中に不具合を発生した場合、その判定対象のページについては、透過描画を指定するデータがあると判定するとよい。
上記判定手段は、XPS文書に含まれるElementやValueを使用して、ページ内に透過描画を指定するデータがあるか否かを判定するとよい。
上記判定手段は、XPS文書の1ページの判定中に、透過描画を指定するデータを少なくとも1つ検知すると、その時点で該ページについて透過描画を指定するデータがあると判定し、次のページの判定に移行するとよい。
上記判定手段は、XPS文書を作成したホスト装置が該XPS文書のページ毎に付加した透過描画を含むデータの有無を表す情報に基づいて、該ページ内に透過描画を指定するデータがあるか否かを判定するとよい。
XPS文書を解釈するパーサ手段を有し、該パーサ手段が、XPS文書のページ毎に、該ページにおける透過描画を指定するデータの有無を示す情報を解釈し、上記判定手段は、上記パーサ手段の解釈内容から上記透過描画を指定するデータの有無を示す情報を取得して上記透過描画を指定するデータがあるか否かの判定を行うようにするとよい。
【0010】
また、本発明の画像出力システムは、XPS文書を作成するホスト装置と、該ホスト装置が作成したXPS文書に係る画像を出力する出力装置とを備える画像出力システムであって、上記ホスト装置及び上記出力装置の何れかに、上記XPS文書について、ページ毎に該ページ内に透過描画を指定するデータがあるか否かを判定する判定手段と、CMYK少値レンダリングパスを使用して、上記XPS文書に係る1ページ分のレンダリング処理を行うCMYK少値レンダリング手段と、RGB多値レンダリングパスを使用して、上記XPS文書に係る1ページ分のレンダリング処理を行うRGB多値レンダリング手段と、上記XPS文書のうち、上記判定手段が透過描画を指定するデータがないと判定したページについては、上記CMYK少値レンダリング手段にレンダリング処理を行わせ、透過描画を指定するデータがあると判定したページについては、上記RGB多値レンダリング手段にレンダリング処理を行わせるレンダリング制御手段とを設けたものである。
【0011】
また、本発明のレンダリング方法は、XPS文書に基づいてレンダリングを行い、該XPS文書に係る画像の画像データをフレームメモリに形成するレンダリング方法であって、上記XPS文書について、ページ毎に該ページ内に透過描画を指定するデータがあるか否かを判定する判定手順と、上記XPS文書のうち、上記判定手順が透過描画を指定するデータがないと判定したページについては、CMYK少値レンダリングパスを使用してレンダリング処理を行い、透過描画を指定するデータがあると判定したページについては、RGB多値レンダリングパスを使用してレンダリング処理を行うレンダリング手順とを有するものである。
また、本発明は、コンピュータに、上述したレンダリング方法の各手順を実行させることを特徴とするプログラムも提供する。
【発明の効果】
【0012】
以上のようなこの発明のプリンタ装置、画像出力システム、レンダリング方法、及びプログラムによれば、XPS文書を印刷又は出力する際に必要なメモリ使用量を削減し、処理時間を短縮することができるという効果を得る。
【図面の簡単な説明】
【0013】
【図1】本発明の一実施例に係るXPS文書の印刷システムのハードウェア構成の一例を示したブロック図である。
【図2】ホスト装置100のハードウェア構成の一例を示したブロック図である。
【図3】XPS印刷システムの機能の概略の一例を示した機能ブロック図である。
【図4】図3に示したXPS印刷システムの機能のうち、ホスト装置100が担当する処理機能部分の一例を示した機能ブロック図である。
【図5】本発明の一実施例にかかる1ページ分のXPS文書データの描画処理の一例を示したフローチャートである。
【図6】フィルタ処理部FP1〜FPnの何れかが行う1ページ分の透過描画判定処理の一例を示したフローチャートである。
【図7】フィルタ処理部FP1〜FPnの何れかが行う1ページ分の透過描画判定処理の他の例を示したフローチャートである。
【図8】XPS文書データにおいて、透過描画を指定した描画要素の一例を示した概略図である。
【図9】図8のXPSデータ(XPS文書データ)の構成の一例を示した概略図である。
【図10】図4に示したXPS印刷システムにおいて、ホスト装置100とプリンタ装置200との処理の分担態様が異なる他の例を示した機能ブロック図である。
【図11】図4に示したXPS印刷システムにおいて、ホスト装置100とプリンタ装置200との処理の分担態様が更に異なる他の例を示した機能ブロック図である。
【発明を実施するための形態】
【0014】
以下、添付図面を参照しながら、この発明の実施の形態を詳細に説明する。
図1は、本発明の一実施例に係るXPS文書の印刷システムのハードウェア構成の一例を示したブロック図である。
この印刷システムは、XPS文書を作成するホスト装置100と、ホスト装置100が作成したXPS文書の印刷物を記録出力するプリンタ装置200から構成されている。
【0015】
プリンタ装置200において、ホストインタフェース手段201は、ホスト装置100との間でXPS文書データ等の種々のデータをやりとりするためのものであり、プリンタコントローラ202は、ホストインタフェース手段201を介してホスト装置100より受信したXPS文書データを受信バッファ203に一旦保存すると共に、所定のXPS文書印刷データ作成処理を実行して、各印刷色(CMYK)の印刷データを作成するものであり、その印刷データは、フレームメモリ204に保存される。また、プリンタコントローラ202は、プリンタエンジン205の動作を制御する。
【0016】
フレームメモリ204に保存された各印刷色の印刷データは、プリンタエンジン205から適宜読み出され、ホスト装置100が作成したXPS文書の印刷物がプリンタエンジン205によって記録出力される。ここで、プリンタエンジン205としては、例えば、転写紙の搬送方向に各色成分の静電潜像を形成する複数の感光体ドラムを並べて配置したタンデム型のカラー画像形成装置や、インクジェットプリンタ装置など、CMYKの各印刷色の印刷データに基づいて、カラー画像の印刷物を印刷出力する機能を備えたものであれば、適宜なものを用いることができる。
【0017】
次に、ホスト装置100及びプリンタ装置200のハードウェア構成について説明する。
図2は、ホスト装置100のハードウェア構成の一例を示したブロック図である。このホスト装置100は、一般的なパーソナルコンピュータ装置のハードウェア構成を備えている。
同図において、CPU(中央処理装置)1は、このホスト装置100の動作制御を行うものであり、上述したWindows Vistaなどのオペレーティングシステム、XPS文書を作成したりする各種アプリケーションプログラム、XPS印刷パス(後述)に含まれるプリンタドライバ(後述)の処理など、種々のソフトウェアを実行する。ROM(リード・オンリ・メモリ)2は、CPU1が起動時に実行するプログラムや必要なデータ等を記憶するためのものであり、RAM(ランダム・アクセス・メモリ)3は、CPU1のワークエリア等を構成するためのものである。
【0018】
キャラクタジェネレータ4は、図形文字の表示データを発生するためのものであり、時計回路5は、現在日時情報を出力するためのものであり、ネットワークインターフェース回路26は、このホスト装置100をLANやWANなどの有線ネットワーク(図示略)、あるいは、無線LAN等の無線ネットワーク(図示略)に接続するためのものであり、ネットワーク伝送制御部7は、ネットワークを介して、他のデータ端末装置やホスト装置などとの間で種々のデータをやりとりするための各種所定のプロトコルスイートの通信制御処理を実行するためのものである。なお、この場合のネットワークは、使用するプロトコルやネットワークトポロジー等のネットワークの規格などにはとらわれず、任意のものを適用することができる。
【0019】
磁気ディスク装置8は、CPU1が実行する種々のアプリケーションプログラム、ワークデータ、アプリケーションプログラムが作成した各種ファイルデータなどの種々のデータを記憶するためのものであり、光学媒体駆動装置9は、交換可能な光学記録媒体(例えば、CD−ROM、DVDなど)10のデータをアクセス(読み書き)するためのものであり、画面表示装置11は、このホスト装置100をユーザが操作する際に参照する画面を表示するためのものであり、表示制御部12は、画面表示装置11の表示内容を制御するためのものである。
【0020】
キーボード装置13は、ユーザが操作してこのホスト装置100に種々のコマンド等を入力するためのものであり、画面指示装置14は、ユーザが操作して画面表示装置11の任意の点を指示する等のポインティングデバイスの操作作業を行うためのものであり、入力制御部15は、キーボード装置13および画面指示装置14の入力情報を取り込む等するためのものである。
【0021】
プリンタインタフェース手段16は、このホスト装置100をプリンタ装置200へ接続して、プリンタ装置200との間で種々のデータをやり取りするためのものであり、例えば、USBインタフェース手段やパラレルインタフェース手段などが用いられる。
【0022】
これらのCPU1、ROM2、RAM3、キャラクタジェネレータ4、時計回路5、ネットワーク伝送制御部7、磁気ディスク装置8、光学媒体駆動装置9、表示制御部12、入力制御部15、および、プリンタインタフェース手段16は、システムバス等の内部バス17に接続されており、これらの各要素間のデータのやりとりは、主としてこの内部バス17を介して行われる。
【0023】
図3は、XPS印刷システムの機能の概略の一例を示した機能ブロック図である。
同図において、プリンタドライバ300は、ホスト装置100のCPU1が実行するプリンタドライバプログラムにより実現されるホスト装置100に実装された機能の1つであり、ホスト装置100に実装されたアプリケーションソフトウェア等が作成したXPS文書データは、このプリンタドライバ300を介してプリンタ装置200のプリンタコントローラ202へ送り出される。
【0024】
プリンタドライバ300には、各々が所定の画像処理を実行するフィルタ処理部FP1〜FPnが設けられており、フィルタ処理部FP1〜FP(n−1)のそれぞれの出力は次段のフィルタ処理部FP2〜FPnの入力に接続されていて、全体としてフィルタパイプラインを構成しており、各フィルタ処理部FP1〜FPnは、並列的に複数が実行可能で、また、その処理が終了すると使用していたメモリを解放する。
【0025】
なお、このフィルタパイプラインにおいては、例えば、プリンタドライバ300におけるXPS文書データの処理形態に従って、XPS文書データの処理を開始する前の段階で、それぞれのフィルタ処理部FP1〜FPnの機能を適宜に設定することができる。したがって、ある処理形態の場合と別の処理形態の場合とで、例えば、フィルタ処理部FP1とフィルタ処理部FP2にそれぞれ設定される機能が逆転する場合がある。
【0026】
また、それぞれのフィルタ処理部FP1〜FPnは、ページ内のデータの編集、データ変換、集約印刷時の編集処理、変倍処理、および、後述する透過描画判定処理などの処理を実行するものであり、それぞれの実行結果は、必要に応じてXPS文書データ(詳細は後述する)に付加される。例えば、透過描画判定処理の場合、各ページのXPS文書データに透過描画に関する情報(タグ、値、あるいは属性)が含まれているかどうかを調べ、含まれている場合には、そのページのXPS文書データに透過描画が含まれている旨を表す属性情報(以下、「透過描画情報」という)を付加する。
【0027】
プリンタコントローラ202は、XPS文書データを解釈するパーサ202a、及びパーサ202aの出力に従ってXPS文書データから印刷データを作成(レンダリング)するレンダラ処理部202bを有し、レンダラ処理部202bは、RGB多値レンダラ処理部202c及びCMYK少値レンダラ処理部202dを有する。
【0028】
RGB多値レンダラ処理部202cは、RGB多値の仮想的なフレームメモリを使って描画処理を行なうとともに、透過描画が設定されている場合には、透過度に応じた透過描画処理を行い、必要に応じて描画オブジェクトの重ね処理を行う。CMYK少値レンダラ処理部202dは、RGBデータを対応するCMYKデータへ変換し、変換後のCMYKデータを少値化処理し、少値化後のCMYKデータ(CMYK少値データ)をフレームメモリ204へ書き出すものである。また、CMYK少値レンダラ処理部202dは、CMYK少値データをフレームメモリ204に書き出す際、必要に応じて描画オブジェクトの重ね処理を行う。
【0029】
なお、フレームメモリ204に格納される印刷データは、プリンタエンジン205が印刷動作に直接用いることができるデータフォーマットである。この場合、フレームメモリ204にはCMYK少値データを格納する。そこで、RGB多値レンダラ処理部202cでは、作成したRGB多値印刷データを、対応するCMYKデータへ変換し、その変換後のCMYKデータは少値化処理し、その結果形成されたCMYK少値データをフレームメモリ204へ格納する。
【0030】
図4は、XPS印刷システムの機能のうち、ホスト装置100が担当する処理機能部分の一例を示している。
同図において、アプリケーション101は、XPS文書データを作成するものであり、その出力するXPS文書データは、プリントスプーラ102を介して、一旦XPSスプールファイル103として磁気ディスク装置8に保存される。
【0031】
また、プリントスプーラ102は、XPSスプールファイル103として保存したXPS文書データを適宜読み出して、プリンタドライバを構成するフィルタパイプラインマネージャFPMの初段のフィルタ処理部FP1に出力する。
なお、プリンタドライバの構成によっては、XPSスプールファイル103を磁気ディスク装置8に保存せずに、直接フィルタパイプラインマネージャFPMの初段のフィルタ処理部FP1に出力する場合もある。
【0032】
図3においてプリンタドライバ300の構成要素であったフィルタ処理部FP1,FP2,…,FPnは、図4に示すフィルタパイプラインマネージャFPMにより動作が制御され、最終段のフィルタ処理部FP2から出力されるXPS文書データは、それ以降のXPS印刷パス500へと出力される。この場合のフィルタパイプラインマネージャFPMより後のXPS印刷パス500は、図1に示したプリンタ装置200のプリンタコントローラ202以降の処理部分に相当する。
【0033】
ここで、XPS印刷パスは、XPSプリンタドライバモデル(XPSDrv)に基づいて構築されるものであり、本実施例の場合、ホスト装置100のアプリケーション101に含まれるXPS文書作成用機能がXPS文書データを作成する段階から、そのXPS文書データをプリンタ装置200が印刷するまでの処理経路を構成する全ての処理機能、例えば、プリントスプーラ102、プリンタドライバ(フィルタパイプラインマネージャFPM)300、プリンタコントローラ202のパーサ202a、レンダラ処理部202b、および、(モデル化された)フレームメモリ204を含む。また、このXPS印刷パスのパーサ202aの入力部まで(フィルタパイプラインの出力まで)の処理段階では、XPS文書データのデータ形式でデータの入出力が行われる。
【0034】
図5は、本発明の一実施例にかかる1ページ分のXPS文書データの描画処理の一例を示している。この処理は、プリンタコントローラ202のパーサ202a及びレンダラ処理部202bの処理機能により実現される。
まず、パーサ202aによってXPS文書データを解析するパース処理を行い(ステップS1)、そのパース処理の解析結果に基づいてそのページのXPS文書データに透過描画に関する情報が含まれているかどうかを調べる(ステップS2)。後述するように、この場合、そのページのXPS文書データに透過描画に関する情報が含まれている場合には、そのページのXPS文書データに透過描画が含まれている旨を表す透過描画情報が付加されているので、その透過描画情報が含まれている場合はステップS2の結果がYESとなり、透過描画情報が含まれていない場合はステップS2の結果がNOになる。
【0035】
そのページのXPS文書データに透過描画に関する情報が含まれている場合で、ステップS2の結果がYESになるときには、RGB多値レンダリングパスの処理を行う。RGB多値レンダラ処理部202cはXPS文書データに印刷データとして含まれるRGBカラー多値データで表された描画オブジェクト(画像、文字列、及び幾何図形等を含む)に対応して、RGB多値の仮想的なフレームメモリを使った描画処理を行ない、1ページ分の画像情報のRGBカラー多値画像データを作成する(ステップS3)。また、ステップS3でRGBカラー多値画像データを仮想的なフレームメモリに書き出す際、必要に応じて描画オブジェクトの重ね処理を行う。
【0036】
次に、ステップS3で作成したRGBカラー多値画像データを、対応するCMYKデータに変換し(ステップS4)、その変換後のCMYKデータを、描画データに必要なCMYK少値データに変換し、その処理結果として得られたCMYK少値データを、それぞれの色成分に対応したフレームメモリ204へ書き出す(ステップS5)。ここで、ステップS3の処理がRGB多値レンダリング処理に対応し、上述のようにRGBレンダラ処理部202cにより行われる。
【0037】
一方、そのページのXPS文書データに透過描画に関する情報が含まれていない場合で、ステップS2の結果がNOになるときには、CMYK少値レンダリングパスの処理を行う。XPS文書データに印刷データとして含まれるRGBカラー多値データで表された描画オブジェクト(画像、文字列、及び幾何図形等を含む)を、対応するCMYKデータで表された描画オブジェクトに変換する(ステップS6)。
【0038】
次に、その変換後のCMYKデータで表された描画オブジェクトの描画処理を行い、1ページ分の画像情報を作成することで得られたCMYK少値データを、それぞれの色成分に対応したフレームメモリ204へ書き出す(ステップS7)。また、ステップS7でCMYK少値データをフレームメモリ204に書き出す際、必要に応じて描画オブジェクトの重ね処理を行う。ここで、ステップS7の処理がCMYK少値レンダリング処理に対応し、上述のようにCMYK少値レンダラ処理部202dにより行われる。
【0039】
このようにして、本実施例では、透過描画に関する情報を含むページについてはRGB多値レンダリング処理を行って適切な透過描画が適用された印刷データを作成し、透過描画に関する情報を含まないページについてはCMYK少値レンダリング処理を行って省メモリで高速な描画処理が可能であり、XPSデータの描画処理(レンダリング処理)を効率よく行うことができる。
【0040】
ここで、透過描画指定は、多くのアプリケーションでは0から100%の値で指定されるため、正確な重ね合わせ処理を行なうためには、そもそも多値で扱う必要がある。また、少値で描画を行なう場合、重ね合わせる図形同士がそれぞれディザ処理等で二値や四値で表されているため、ディザパターンがお互いに干渉する等で正しく描画されない。そこで、本実施例のように、透過描画に関する情報を含むページについてはRGB多値レンダリング処理を行って適切な透過描画が適用された印刷データを作成する必要がある。
【0041】
一方、透過描画指定がされていない場合には、透過演算を伴わない描画命令(ラスタオペレーション)を実行することになり、上述したCMYK少値レンダリング処理を用いても適切な印刷データを作成することができる。
【0042】
次に、XPS文書データの各ページについて、透過描画判定を行う処理について説明する。この透過描画判定処理は、フィルタ処理部FP1〜FPnの何れかにより実現されるものである。
図6は、フィルタ処理部FP1〜FPnの何れかが行う1ページ分の透過描画判定処理の一例を示している。
ここで、透過描画に関する情報(透過描画を指定するデータ)が含まれているか否かの判断は、XPS文書データに含まれる透過描画に関する要素(Element)や透過描画に関する属性の値(Value)を使用する。例えば、文字(Glyph)やイメージ(Brush)に指定されるOpacity属性に対して、1.0以外の値が指定されている場合、透過描画を行うと判定することができる。
【0043】
まず、XPS文書データを読み込み(ステップS11)、そのときにいずれのエラーも発生していない状態であるかどうかを調べる(ステップS12)。エラーが発生していない場合で、ステップS12の結果がYESになるときには、ステップS11で読み込んだXPS文書データに透過描画に関する情報が含まれていたかどうかを調べ(ステップS13)、ステップS13の結果がNOになるときには、処理対象の1ページ分のXPS文書データの処理が終了したかどうかを調べる(ステップS14)。ステップS14の結果がNOになる場合には、ステップS11へ戻り、それ以降の処理を繰り返し行う。また、ステップS14の結果がYESになるときには、このときの透過描画判定処理を終了する。
【0044】
一方、そのときにエラーが発生している場合でステップS12の結果がNOになるとき、及びステップS11で読み込んだXPS文書データに透過描画に関する情報が含まれていた場合でステップS13の結果がYESになるときには、そのページのXPS文書データに結果(透過描画情報)を付加し(ステップS15)、ステップS14へ移行し、それ以降の処理を実行する。
このようにして、XPS文書データの各ページについて、透過描画判定を行い、透過描画に関する情報が含まれるページについては、そのXPS文書データのそのページに透過描画情報を付加している。
【0045】
この処理について説明すると、まず、透過描画判定を行なうためには、XPS文書データを読み込むためのメモリが必要である。そのためのメモリ領域は、例えば、プリンタ装置200のメモリ装置24に適宜に確保される。一方、XPSに限らず、PDLのデータ量はページ毎に一定ではなく、描画内容の複雑さ等により、データ量が増減する。
【0046】
このため、1ページのXPS文書データを解析し、透過描画の有無を判定する際に必要となるメモリ量も一定ではなく、大きなデータを処理するためのメモリが足りなくなる場合がある(エラー発生)。この場合は判定処理を中止し、透過描画有りとして結果(透過描画情報)をXPS文書データに付加する。
【0047】
同様に、メモリ不足に起因するエラーだけではなく、判定処理中にその他の不具合が発生し(エラー発生)、判定処理が中断することもあるが、その場合にも同様に判定処理を中断し、透過描画有りとして結果(透過描画情報)をXPS文書データに付加する。
【0048】
これは以下の理由による。すなわち、判定処理を中止した場合、透過描画有りとして結果(透過描画情報)をXPS文書データに付加するため、判定以降の処理は透過描画有りとして処理を行ない、無駄なメモリ消費や処理時間の増大が生じるが、レンダリング結果に不具合は発生しない。一方、判定以降の処理を透過描画無しとして処理してしまうと、本来、透過描画しなければならない透過描画コマンドを不透過で処理してしまうため、以降の処理でエラーやレンダリング結果の不具合を生じるからである。
【0049】
ところで、図6の処理では、判定対象のページに透過描画に関する情報が含まれている場合に、透過描画情報が含まれている旨を表す透過描画情報をそのページに付加しているが、判定対象のページに透過描画に関する情報が含まれていない場合に、透過描画情報が含まれていない旨を表す非透過描画情報をそのページに付加し、判定対象のページに透過描画に関する情報が含まれている場合には非透過描画情報をそのページには付加しないようにすることでも、該ページに透過描画に関する情報が含まれているか否かを判断することができる。
【0050】
そして、この場合には、上述した図5に示した1ページ分のXPS文書データの描画処理のステップS2については、非透過描画情報が含まれていない場合はこのステップS2の結果がYESとなって、それ以降、RGB多値レンダリングパスの処理が実行され、非透過描画情報が含まれている場合はこのステップS2の結果がNOとなって、それ以降、CMYK少値レンダリングパスの処理が実行される。
【0051】
図7は、この場合に、フィルタ処理部FP1〜FPnの何れかが行う1ページ分の透過描画判定処理の他の例を示している。
まず、処理対象のXPS文書データを読み込み単位に応じて読み込み(ステップS21)、透過描画に関する情報が含まれるかどうかを調べる(ステップS22)。ステップS22の結果がYESになるときには、そのときの判定対象のページには透過描画に関する情報が含まれていたので、該ページには透過描画に関する情報が含まれていない旨を表す非透過描画情報を付加せずに、この処理を終了する。
【0052】
また、ステップS22の結果がNOになるときには、ステップS21で読み込んだXPS文書データには透過描画に関する情報が含まれていない場合であるので、1ページ分のXPS文書データの処理が終了したかどうかを調べる(ステップS23)。ステップS23の結果がNOになるときには、ステップS21へ戻り、処理対象となるXPS文書データの残りのデータを読み込んで、それ以降の処理を行う。
【0053】
一方、処理対象の1ページ分のXPS文書データに透過描画に関する情報が含まれていない場合で、ステップS23の結果がYESになる場合には、そのページのXPS文書データに非透過描画情報を付加して(ステップS24)、この処理を終了する。
【0054】
このようにして、この例の1ページ分の透過描画判定処理では、透過描画に関する情報が1つ以上見つかると、その時点で、その1ページ分の透過描画判定処理を終了しているので、ページの最後まで処理を継続する必要がなく、その結果、1ページ分の透過描画判定処理に要する時間を大幅に短縮することができる。
【0055】
また、透過描画無しの場合にのみ判定結果を付加し、透過描画有りの場合に付加しないのは、次のような理由による。すなわち、この場合、透過描画有りの検知はページの最後まで行なわず、透過描画有りを検知したページの途中までで判定処理を中断するため、該ページが実際は透過描画無しであったにもかかわらず誤検知により透過描画有りとしてしまう可能性はあるが、その後の処理は透過描画有りとして処理されるため、描画結果に不具合を生じないからである。
【0056】
次に、XPS文書データに透過描画に関する情報が含まれると判定する具体例について説明する。
図8は、XPS文書データにおいて、透過描画に関する情報の一例を示している。
図8の例は、“This is a fading text example”という文字列を、透過グラデーションで描画するためのXPSコマンドの一例を表すものであり、文字(Glyph)に対して、OpacityMask属性を使って、透過率をグラデーション指定した例である。GradientStopに指定されたColorがFF000000から00000000に変化するよう指定されている。ここで、AARRGGBB形式でColorを指定してあるAA部分が透過率を表す。この場合、FF(不透過)から00(完全透過)へのグラデーションを表すため、OpacityMaskのColorがFF以外である場合は、透過描画が存在すると判定できる。
【0057】
このように、透過描画に関する情報が含まれているか否かの判断は、XPS文書データに含まれる透過描画に関する要素(Element)や透過描画に関する属性の値(Value)を使用する。例えば、文字(Glyph)やイメージ(Brush)に指定されるOpacity属性に対して、1.0以外の値が指定されている場合、透過描画を行うと判定することができる。他にも、透過描画に関わるタグ(要素)、属性、及び値などを利用することができる。
【0058】
図9(a),(b)は、図8に示したXPS文書データの構成の一例を示している。
基本的に、XPS文書データのファイルコンテナの形態はZIP圧縮ファイルであり、XPS文書ファイルをZIP展開すると、その構造には、複数のフォルダやファイルが存在している。図9(a)は、Sample.xpsというXPS文書ファイル(MSワード(登録商標)の1ページ)を、sample.zipにリネームしてZIP展開したフォルダ構成の一例を示している。また、図9(b)は図9(a)のフォルダ「Sample」に格納されている情報の一覧を示している。
【0059】
図10は、図5に示したXPS印刷システムにおいて、ホスト装置100とプリンタ装置200との処理の分担態様が異なる他の例を示している。なお、同図において、図4と同一部分及び相当する部分については、同一符号を付して説明を省略する。この例は、後述するように、XPSダイレクトプリントシステムに応用することができる。
【0060】
この例では、フィルタパイプラインマネージャFPMをホスト装置100から取り除いてプリンタ装置200に移した構成となっている。このように構成することで、ホスト装置100の処理能力が非力な場合でも、プリンタ装置200がフィルタパイプラインマネージャFPMを実行するので、図4と同様のXPS印刷システムを実現することができる。また、この場合、上述した1ページ分の透過描画判定処理は、プリンタ装置200のフィルタパイプラインマネージャFPMのフィルタ処理部FP1,FP2の何れかに実行させることができる。
【0061】
図11は、図4に示したXPS印刷システムにおいて、ホスト装置100とプリンタ装置200との処理の分担態様が異なる更に他の例を示している。なお、同図において、図4と同一部分及び相当する部分については、同一符号を付して説明を省略する。
この例では、ホスト装置100にフィルタパイプラインマネージャFPM1を設けると共に、プリンタ装置200にフィルタパイプラインマネージャFPM2を設け、プリンタドライバ300におけるフィルタパイプラインマネージャFPMの処理をホスト装置100とプリンタ装置200とで分担し、負荷を分散した構成となっている。
【0062】
この場合、上述した1ページ分の透過描画判定処理は、ホスト装置100のフィルタパイプラインマネージャFPM1のフィルタ処理部FP1,FP2の何れか、あるいは、プリンタ装置200のフィルタパイプラインマネージャFPM2のフィルタ処理部FP3,FP4の何れかが実行するようにすることができる。例えば、プリンタ装置200の処理能力がある程度大きければ、フィルタパイプラインマネージャFPM2のフィルタ処理部FP3,FP4の何れかに実行させることができる。
また、上述した1ページ分の透過描画判定処理をどのフィルタ処理部に実行させるかの割当については、ページ毎又はジョブ毎に、切換えるようにすることもできる。
【0063】
ところで、上述した実施例では、ホスト装置で作成したXPS文書をカラープリンタ装置で印刷する印刷システムに本発明を適用した場合について説明したが、XPS文書のカラー印刷データ(カラー画像データ)をホスト装置の画面表示装置等に表示出力する画像出力システムや、XPS文書のカラー印刷データを所定フォーマットの電子文書(例えば、PDFなど)に変換して出力するシステム、あるいは、それらのシステムにおけるレンダリング方法にも、本発明を同様にして適用することができる。
【0064】
ただし、ホスト装置の画面表示装置にXPS文書を表示出力する場合、画面表示装置の表示データはRGB多値色空間で処理を行なうため、CMYK少値レンダリングは行なわない。その場合であっても、透過描画を指定するデータがないと判定したページについて、透過描画に必要なものより負担の低い描画処理を行うようにすれば、透過描画特有の負荷の高い演算処理等が不要となるので、画像表示アプリケーションの表示を高速化できるという効果を得る。
【0065】
また、本発明は、ホスト装置を使わず、XPS文書データをプリンタ装置で直接印刷するXPSダイレクトプリントシステムにも応用することができる。その場合、図1のプリンタ装置の構成のうちホストインタフェース手段201を外部機器との間で適宜にデータをやりとりすることができる汎用のインタフェース手段に代えると共に、図4の構成のプリントスプーラ102以降、あるいは、図10に示したようにフィルタパイプラインマネージャFPM以降の処理機能をプリンタ装置に持たせ、上述した透過描画有無の判定処理もプリンタ装置で行い、その判定結果に従って、以降のレンダリング処理の内容を切り換えるようにするとよい。
【0066】
また、このXPSダイレクトプリンタシステムの他の例としては、ホスト装置上でXPS文書データをそのままプリンタ装置に送るツールを利用する、FTP/RSHで転送する等のほか、プリンタ装置がメモリダイレクトプリントに対応していれば、USBメモリ等のメディアに保存したXPSファイルを、プリンタ装置が読み込み、印刷するというものがある。
【産業上の利用可能性】
【0067】
本発明は、XPS文書を印刷するシステムに関する装置、XPS文書を作成するホスト装置、XPS文書を印刷するプリンタ装置、それらのホスト装置とプリンタ装置により構築される印刷システムや、XPS文書を表示する画像表示システムなどに適用することができる。
【符号の説明】
【0068】
1:CPU(中央処理装置) 2:ROM(リード・オンリ・メモリ)
3:RAM(ランダム・アクセス・メモリ) 4:キャラクタジェネレータ
5:時計回路 6:ネットワークインタフェース手段
7:ネットワーク伝送制御部 8:磁気ディスク装置 9:光学媒体駆動装置
11:CRT画面表示装置 12:表示制御部 13:キーボード装置
14:画面指示装置 15:入力制御部 16:プリンタインタフェース手段
17:内部バス 100:ホスト装置 101:アプリケーション
102:プリントスプーラ 103:XPSスプールファイル
200:プリンタ装置 201:ホストインタフェース手段
202:プリンタコントローラ 202a:パーサ 202b:レンダラ処理部
202c:RGB多値レンダラ処理部 202d:CMYK少値レンダラ処理部
203:受信バッファ 204:フレームメモリ 205:プリンタエンジン
300:プリンタドライバ 500:XPS印刷パス
FP1〜FPn:フィルタ処理部
FPM,FPM1,FPM2:フィルタパイプラインマネージャ
【先行技術文献】
【特許文献】
【0069】
【特許文献1】特開2005−182692号公報
【非特許文献】
【0070】
【非特許文献1】“XML Paper Specification”、[online]、2006年10月24日、マイクロソフト社、[平成21年7月6日検索]、インターネット<URL:http://www.microsoft.com/japan/whdc/xps/xpsspec.mspx>

【特許請求の範囲】
【請求項1】
XPS文書を印刷するプリンタ装置であって、
前記XPS文書について、ページ毎に該ページ内に透過描画を指定するデータがあるか否かを判定する判定手段と、
CMYK少値レンダリングパスを使用して、前記XPS文書に係る1ページ分のレンダリング処理を行うCMYK少値レンダリング手段と、
RGB多値レンダリングパスを使用して、前記XPS文書に係る1ページ分のレンダリング処理を行うRGB多値レンダリング手段と、
前記XPS文書のうち、前記判定手段が透過描画を指定するデータがないと判定したページについては、前記CMYK少値レンダリング手段にレンダリング処理を行わせ、透過描画を指定するデータがあると判定したページについては、前記RGB多値レンダリング手段にレンダリング処理を行わせるレンダリング制御手段とを備えたことを特徴とするプリンタ装置。
【請求項2】
前記判定手段は、XPS文書に対する判定処理中に不具合を発生した場合、その判定対象のページについては、透過描画を指定するデータがあると判定することを特徴とする請求項1に記載のプリンタ装置。
【請求項3】
前記判定手段は、XPS文書に含まれる透過描画に関する要素または/及び透過描画に関する属性の値を使用して、ページ内に透過描画を指定するデータがあるか否かを判定することを特徴とする請求項1又は2に記載のプリンタ装置。
【請求項4】
前記判定手段は、XPS文書の1ページの判定中に、透過描画を指定するデータを少なくとも1つ検知すると、その時点で該ページについて透過描画を指定するデータがあると判定し、次のページの判定に移行することを特徴とする請求項1乃至3の何れか1項に記載のプリンタ装置。
【請求項5】
前記判定手段は、XPS文書を作成したホスト装置が該XPS文書のページ毎に付加した、該ページにおける透過描画を指定するデータの有無を示す情報に基づいて、該ページ内に透過描画を指定するデータがあるか否かを判定することを特徴とする請求項1乃至4の何れか1項に記載のプリンタ装置。
【請求項6】
XPS文書を解釈するパーサ手段を有し、該パーサ手段が、XPS文書のページ毎に、該ページにおける透過描画を指定するデータの有無を示す情報を解釈し、前記判定手段は、前記パーサ手段の解釈内容から前記透過描画を指定するデータの有無を示す情報を取得して前記透過描画を指定するデータがあるか否かの判定を行うことを特徴とする請求項5に記載のプリンタ装置。
【請求項7】
XPS文書を作成するホスト装置と、該ホスト装置が作成したXPS文書に係る画像を出力する出力装置とを備える画像出力システムであって、
前記ホスト装置及び前記出力装置の何れかに、
前記XPS文書について、ページ毎に該ページ内に透過描画を指定するデータがあるか否かを判定する判定手段と、
CMYK少値レンダリングパスを使用して、前記XPS文書に係る1ページ分のレンダリング処理を行うCMYK少値レンダリング手段と、
RGB多値レンダリングパスを使用して、前記XPS文書に係る1ページ分のレンダリング処理を行うRGB多値レンダリング手段と、
前記XPS文書のうち、前記判定手段が透過描画を指定するデータがないと判定したページについては、前記CMYK少値レンダリング手段にレンダリング処理を行わせ、透過描画を指定するデータがあると判定したページについては、前記RGB多値レンダリング手段にレンダリング処理を行わせるレンダリング制御手段とを設けたことを特徴とする画像出力システム。
【請求項8】
XPS文書に基づいてレンダリングを行い、該XPS文書に係る画像の画像データをフレームメモリに形成するレンダリング方法であって、
前記XPS文書について、ページ毎に該ページ内に透過描画を指定するデータがあるか否かを判定する判定手順と、
前記XPS文書のうち、前記判定手順が透過描画を指定するデータがないと判定したページについては、CMYK少値レンダリングパスを使用してレンダリング処理を行い、透過描画を指定するデータがあると判定したページについては、RGB多値レンダリングパスを使用してレンダリング処理を行うレンダリング手順とを有することを特徴とするレンダリング方法。
【請求項9】
コンピュータに、請求項8に記載のレンダリング方法の各手順を実行させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2011−25539(P2011−25539A)
【公開日】平成23年2月10日(2011.2.10)
【国際特許分類】
【出願番号】特願2009−173917(P2009−173917)
【出願日】平成21年7月27日(2009.7.27)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】