(57)【要約】【課題】ＸＰＳ文書の印刷時のプリンタ装置又は印刷システムに必要なメモリ使用量を削減し処理時間を短縮する。【解決手段】何れかのフィルタ処理部ＦＰ１〜ＦＰｎでページ毎に透過描画判定処理をし、その判定結果に応じてレンダラ処理部２０２ｂの処理態様を切換える。透過描画がある場合はＲＧＢ多値レンダラ処理部２０２ｃによりＲＧＢ多値の仮想的フレームメモリを使って描画処理を行い描画オブジェクト間の重ね処理を行って透過描画の画像情報のＲＧＢカラー多値画像データを作成し、そのＲＧＢカラー多値画像データを対応するＣＭＹＫデータに変換し、さらにＣＭＹＫ少値データに変換する。透過描画がない場合は、ＣＭＹＫ少値レンダラ処理部２０２ｄによりＲＧＢカラー多値画像データを対応するＣＭＹＫデータに変換し、さらに描画データに必要なＣＭＹＫ少値データに変換する。【選択図】        図３
2011025539.tif 000002
【特許請求の範囲】
【請求項１】
ＸＰＳ文書を印刷するプリンタ装置であって、
前記ＸＰＳ文書について、ページ毎に該ページ内に透過描画を指定するデータがあるか否かを判定する判定手段と、
ＣＭＹＫ少値レンダリングパスを使用して、前記ＸＰＳ文書に係る１ページ分のレンダリング処理を行うＣＭＹＫ少値レンダリング手段と、
ＲＧＢ多値レンダリングパスを使用して、前記ＸＰＳ文書に係る１ページ分のレンダリング処理を行うＲＧＢ多値レンダリング手段と、
前記ＸＰＳ文書のうち、前記判定手段が透過描画を指定するデータがないと判定したページについては、前記ＣＭＹＫ少値レンダリング手段にレンダリング処理を行わせ、透過描画を指定するデータがあると判定したページについては、前記ＲＧＢ多値レンダリング手段にレンダリング処理を行わせるレンダリング制御手段とを備えたことを特徴とするプリンタ装置。
【請求項２】
前記判定手段は、ＸＰＳ文書に対する判定処理中に不具合を発生した場合、その判定対象のページについては、透過描画を指定するデータがあると判定することを特徴とする請求項１に記載のプリンタ装置。
【請求項３】
前記判定手段は、ＸＰＳ文書に含まれる透過描画に関する要素または／及び透過描画に関する属性の値を使用して、ページ内に透過描画を指定するデータがあるか否かを判定することを特徴とする請求項１又は２に記載のプリンタ装置。
【請求項４】
前記判定手段は、ＸＰＳ文書の１ページの判定中に、透過描画を指定するデータを少なくとも１つ検知すると、その時点で該ページについて透過描画を指定するデータがあると判定し、次のページの判定に移行することを特徴とする請求項１乃至３の何れか１項に記載のプリンタ装置。
【請求項５】
前記判定手段は、ＸＰＳ文書を作成したホスト装置が該ＸＰＳ文書のページ毎に付加した、該ページにおける透過描画を指定するデータの有無を示す情報に基づいて、該ページ内に透過描画を指定するデータがあるか否かを判定することを特徴とする請求項１乃至４の何れか１項に記載のプリンタ装置。
【請求項６】
ＸＰＳ文書を解釈するパーサ手段を有し、該パーサ手段が、ＸＰＳ文書のページ毎に、該ページにおける透過描画を指定するデータの有無を示す情報を解釈し、前記判定手段は、前記パーサ手段の解釈内容から前記透過描画を指定するデータの有無を示す情報を取得して前記透過描画を指定するデータがあるか否かの判定を行うことを特徴とする請求項５に記載のプリンタ装置。
【請求項７】
ＸＰＳ文書を作成するホスト装置と、該ホスト装置が作成したＸＰＳ文書に係る画像を出力する出力装置とを備える画像出力システムであって、
前記ホスト装置及び前記出力装置の何れかに、
前記ＸＰＳ文書について、ページ毎に該ページ内に透過描画を指定するデータがあるか否かを判定する判定手段と、
ＣＭＹＫ少値レンダリングパスを使用して、前記ＸＰＳ文書に係る１ページ分のレンダリング処理を行うＣＭＹＫ少値レンダリング手段と、
ＲＧＢ多値レンダリングパスを使用して、前記ＸＰＳ文書に係る１ページ分のレンダリング処理を行うＲＧＢ多値レンダリング手段と、
前記ＸＰＳ文書のうち、前記判定手段が透過描画を指定するデータがないと判定したページについては、前記ＣＭＹＫ少値レンダリング手段にレンダリング処理を行わせ、透過描画を指定するデータがあると判定したページについては、前記ＲＧＢ多値レンダリング手段にレンダリング処理を行わせるレンダリング制御手段とを設けたことを特徴とする画像出力システム。
【請求項８】
ＸＰＳ文書に基づいてレンダリングを行い、該ＸＰＳ文書に係る画像の画像データをフレームメモリに形成するレンダリング方法であって、
前記ＸＰＳ文書について、ページ毎に該ページ内に透過描画を指定するデータがあるか否かを判定する判定手順と、
前記ＸＰＳ文書のうち、前記判定手順が透過描画を指定するデータがないと判定したページについては、ＣＭＹＫ少値レンダリングパスを使用してレンダリング処理を行い、透過描画を指定するデータがあると判定したページについては、ＲＧＢ多値レンダリングパスを使用してレンダリング処理を行うレンダリング手順とを有することを特徴とするレンダリング方法。
【請求項９】
コンピュータに、請求項８に記載のレンダリング方法の各手順を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＸＰＳ（ＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）文書を印刷するプリンタ装置、ＸＰＳ文書を作成するホスト装置と、該ホスト装置が作成したＸＰＳ文書に係る画像を出力する出力装置とを備える画像出力システム、ＸＰＳ文書に基づいてレンダリングを行い、該ＸＰＳ文書に係る画像の画像データをフレームメモリに形成するレンダリング方法、及びコンピュータに上述のレンダリング方法の各手順を実行させるプログラムに関する。
【背景技術】
【０００２】
Ｍｉｃｒｏｓｏｆｔ社が提唱する、Ｗｉｎｄｏｗｓ  Ｖｉｓｔａ（登録商標）で採用されたＸＰＳは、ＸＭＬベースの文書フォーマットであり、プリンタ記述言語（ＰＤＬ）でもある。Ｔｒａｎｓｐａｒｅｎｃｙ（透過描画）、Ｇｒａｄｉｅｎｔ（グラデーション）、Ｃａｎｖａｓ（再利用可能な仮想描画メモリ）等の高度な表現が可能である。本明細書では、ＸＰＳに準じてアプリケーションプログラム等により作成された文書データを、ＸＰＳ文書またはＸＰＳ文書データと称する。また、このＸＰＳの仕様書を非特許文献１に示す。
【０００３】
一方、透過描画のような高度な表現を実現するためには、少値化前の多値の色空間（例えば、ＲＧＢ各色８ｂｉｔで表される色空間）でレンダリングする必要があり、従来の、ＣＭＹＫ少値で行なっていたレンダリングと比較して、より多くのメモリを消費し、処理時間も掛かる。
【０００４】
すなわち、ＲＧＢ多値レンダリングは、実際のページフレームメモリに描画する前に、ＲＧＢ多値の仮想的なフレームメモリを使って描画処理を行なった後に、ＣＭＹＫ変換、少値化を行なうため、ＣＭＹＫ少値レンダリングと比較して、ＲＧＢ多値仮想フレームメモリが余分に必要であること、また、仮想フレームメモリのサイズが大きいために、その描画処理で使用するためのＰＤＬワークメモリが増える、等の理由により、メモリ使用量が大きくなる。
【０００５】
そして、このような問題に対応するための技術として、特許文献１には、透過描画命令がある場合でも、透過演算を行なわなくても処理可能な内容かどうかを判定し、処理可能であれば、より処理負荷の低い透過描画が不要な描画命令等に置き換えることで、描画処理時間を短縮するようにしたものが開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に記載の技術では、透過描画ありの場合に、透過演算を伴なわない描画命令（例えばラスターオペレーション（ＲＯＰ）等）に置き換えるために、本来の正しい描画結果が得られない可能性がある。
【０００７】
この発明は、かかる実情に鑑みてなされたものであり、ＸＰＳ文書を印刷する際にプリンタ装置又は印刷システムに必要なメモリ使用量を削減し、処理時間を短縮することができるプリンタ装置、画像出力システム、レンダリング方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
この発明のプリンタ装置は、ＸＰＳ文書を印刷するプリンタ装置であって、上記ＸＰＳ文書について、ページ毎に該ページ内に透過描画を指定するデータがあるか否かを判定する判定手段と、ＣＭＹＫ少値レンダリングパスを使用して、上記ＸＰＳ文書に係る１ページ分のレンダリング処理を行うＣＭＹＫ少値レンダリング手段と、ＲＧＢ多値レンダリングパスを使用して、上記ＸＰＳ文書に係る１ページ分のレンダリング処理を行うＲＧＢ多値レンダリング手段と、上記ＸＰＳ文書のうち、上記判定手段が透過描画を指定するデータがないと判定したページについては、上記ＣＭＹＫ少値レンダリング手段にレンダリング処理を行わせ、透過描画を指定するデータがあると判定したページについては、上記ＲＧＢ多値レンダリング手段にレンダリング処理を行わせるレンダリング制御手段とを備えたものである。
【０００９】
上記判定手段は、ＸＰＳ文書に対する判定処理中に不具合を発生した場合、その判定対象のページについては、透過描画を指定するデータがあると判定するとよい。
上記判定手段は、ＸＰＳ文書に含まれるＥｌｅｍｅｎｔやＶａｌｕｅを使用して、ページ内に透過描画を指定するデータがあるか否かを判定するとよい。
上記判定手段は、ＸＰＳ文書の１ページの判定中に、透過描画を指定するデータを少なくとも１つ検知すると、その時点で該ページについて透過描画を指定するデータがあると判定し、次のページの判定に移行するとよい。
上記判定手段は、ＸＰＳ文書を作成したホスト装置が該ＸＰＳ文書のページ毎に付加した透過描画を含むデータの有無を表す情報に基づいて、該ページ内に透過描画を指定するデータがあるか否かを判定するとよい。
ＸＰＳ文書を解釈するパーサ手段を有し、該パーサ手段が、ＸＰＳ文書のページ毎に、該ページにおける透過描画を指定するデータの有無を示す情報を解釈し、上記判定手段は、上記パーサ手段の解釈内容から上記透過描画を指定するデータの有無を示す情報を取得して上記透過描画を指定するデータがあるか否かの判定を行うようにするとよい。
【００１０】
また、本発明の画像出力システムは、ＸＰＳ文書を作成するホスト装置と、該ホスト装置が作成したＸＰＳ文書に係る画像を出力する出力装置とを備える画像出力システムであって、上記ホスト装置及び上記出力装置の何れかに、上記ＸＰＳ文書について、ページ毎に該ページ内に透過描画を指定するデータがあるか否かを判定する判定手段と、ＣＭＹＫ少値レンダリングパスを使用して、上記ＸＰＳ文書に係る１ページ分のレンダリング処理を行うＣＭＹＫ少値レンダリング手段と、ＲＧＢ多値レンダリングパスを使用して、上記ＸＰＳ文書に係る１ページ分のレンダリング処理を行うＲＧＢ多値レンダリング手段と、上記ＸＰＳ文書のうち、上記判定手段が透過描画を指定するデータがないと判定したページについては、上記ＣＭＹＫ少値レンダリング手段にレンダリング処理を行わせ、透過描画を指定するデータがあると判定したページについては、上記ＲＧＢ多値レンダリング手段にレンダリング処理を行わせるレンダリング制御手段とを設けたものである。
【００１１】
また、本発明のレンダリング方法は、ＸＰＳ文書に基づいてレンダリングを行い、該ＸＰＳ文書に係る画像の画像データをフレームメモリに形成するレンダリング方法であって、上記ＸＰＳ文書について、ページ毎に該ページ内に透過描画を指定するデータがあるか否かを判定する判定手順と、上記ＸＰＳ文書のうち、上記判定手順が透過描画を指定するデータがないと判定したページについては、ＣＭＹＫ少値レンダリングパスを使用してレンダリング処理を行い、透過描画を指定するデータがあると判定したページについては、ＲＧＢ多値レンダリングパスを使用してレンダリング処理を行うレンダリング手順とを有するものである。
また、本発明は、コンピュータに、上述したレンダリング方法の各手順を実行させることを特徴とするプログラムも提供する。
【発明の効果】
【００１２】
以上のようなこの発明のプリンタ装置、画像出力システム、レンダリング方法、及びプログラムによれば、ＸＰＳ文書を印刷又は出力する際に必要なメモリ使用量を削減し、処理時間を短縮することができるという効果を得る。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施例に係るＸＰＳ文書の印刷システムのハードウェア構成の一例を示したブロック図である。
【図２】ホスト装置１００のハードウェア構成の一例を示したブロック図である。
【図３】ＸＰＳ印刷システムの機能の概略の一例を示した機能ブロック図である。
【図４】図３に示したＸＰＳ印刷システムの機能のうち、ホスト装置１００が担当する処理機能部分の一例を示した機能ブロック図である。
【図５】本発明の一実施例にかかる１ページ分のＸＰＳ文書データの描画処理の一例を示したフローチャートである。
【図６】フィルタ処理部ＦＰ１〜ＦＰｎの何れかが行う１ページ分の透過描画判定処理の一例を示したフローチャートである。
【図７】フィルタ処理部ＦＰ１〜ＦＰｎの何れかが行う１ページ分の透過描画判定処理の他の例を示したフローチャートである。
【図８】ＸＰＳ文書データにおいて、透過描画を指定した描画要素の一例を示した概略図である。
【図９】図８のＸＰＳデータ（ＸＰＳ文書データ）の構成の一例を示した概略図である。
【図１０】図４に示したＸＰＳ印刷システムにおいて、ホスト装置１００とプリンタ装置２００との処理の分担態様が異なる他の例を示した機能ブロック図である。
【図１１】図４に示したＸＰＳ印刷システムにおいて、ホスト装置１００とプリンタ装置２００との処理の分担態様が更に異なる他の例を示した機能ブロック図である。
【発明を実施するための形態】
【００１４】
以下、添付図面を参照しながら、この発明の実施の形態を詳細に説明する。
図１は、本発明の一実施例に係るＸＰＳ文書の印刷システムのハードウェア構成の一例を示したブロック図である。
この印刷システムは、ＸＰＳ文書を作成するホスト装置１００と、ホスト装置１００が作成したＸＰＳ文書の印刷物を記録出力するプリンタ装置２００から構成されている。
【００１５】
プリンタ装置２００において、ホストインタフェース手段２０１は、ホスト装置１００との間でＸＰＳ文書データ等の種々のデータをやりとりするためのものであり、プリンタコントローラ２０２は、ホストインタフェース手段２０１を介してホスト装置１００より受信したＸＰＳ文書データを受信バッファ２０３に一旦保存すると共に、所定のＸＰＳ文書印刷データ作成処理を実行して、各印刷色（ＣＭＹＫ）の印刷データを作成するものであり、その印刷データは、フレームメモリ２０４に保存される。また、プリンタコントローラ２０２は、プリンタエンジン２０５の動作を制御する。
【００１６】
フレームメモリ２０４に保存された各印刷色の印刷データは、プリンタエンジン２０５から適宜読み出され、ホスト装置１００が作成したＸＰＳ文書の印刷物がプリンタエンジン２０５によって記録出力される。ここで、プリンタエンジン２０５としては、例えば、転写紙の搬送方向に各色成分の静電潜像を形成する複数の感光体ドラムを並べて配置したタンデム型のカラー画像形成装置や、インクジェットプリンタ装置など、ＣＭＹＫの各印刷色の印刷データに基づいて、カラー画像の印刷物を印刷出力する機能を備えたものであれば、適宜なものを用いることができる。
【００１７】
次に、ホスト装置１００及びプリンタ装置２００のハードウェア構成について説明する。
図２は、ホスト装置１００のハードウェア構成の一例を示したブロック図である。このホスト装置１００は、一般的なパーソナルコンピュータ装置のハードウェア構成を備えている。
同図において、ＣＰＵ（中央処理装置）１は、このホスト装置１００の動作制御を行うものであり、上述したＷｉｎｄｏｗｓ  Ｖｉｓｔａなどのオペレーティングシステム、ＸＰＳ文書を作成したりする各種アプリケーションプログラム、ＸＰＳ印刷パス（後述）に含まれるプリンタドライバ（後述）の処理など、種々のソフトウェアを実行する。ＲＯＭ（リード・オンリ・メモリ）２は、ＣＰＵ１が起動時に実行するプログラムや必要なデータ等を記憶するためのものであり、ＲＡＭ（ランダム・アクセス・メモリ）３は、ＣＰＵ１のワークエリア等を構成するためのものである。
【００１８】
キャラクタジェネレータ４は、図形文字の表示データを発生するためのものであり、時計回路５は、現在日時情報を出力するためのものであり、ネットワークインターフェース回路２６は、このホスト装置１００をＬＡＮやＷＡＮなどの有線ネットワーク（図示略）、あるいは、無線ＬＡＮ等の無線ネットワーク（図示略）に接続するためのものであり、ネットワーク伝送制御部７は、ネットワークを介して、他のデータ端末装置やホスト装置などとの間で種々のデータをやりとりするための各種所定のプロトコルスイートの通信制御処理を実行するためのものである。なお、この場合のネットワークは、使用するプロトコルやネットワークトポロジー等のネットワークの規格などにはとらわれず、任意のものを適用することができる。
【００１９】
磁気ディスク装置８は、ＣＰＵ１が実行する種々のアプリケーションプログラム、ワークデータ、アプリケーションプログラムが作成した各種ファイルデータなどの種々のデータを記憶するためのものであり、光学媒体駆動装置９は、交換可能な光学記録媒体（例えば、ＣＤ−ＲＯＭ、ＤＶＤなど）１０のデータをアクセス（読み書き）するためのものであり、画面表示装置１１は、このホスト装置１００をユーザが操作する際に参照する画面を表示するためのものであり、表示制御部１２は、画面表示装置１１の表示内容を制御するためのものである。
【００２０】
キーボード装置１３は、ユーザが操作してこのホスト装置１００に種々のコマンド等を入力するためのものであり、画面指示装置１４は、ユーザが操作して画面表示装置１１の任意の点を指示する等のポインティングデバイスの操作作業を行うためのものであり、入力制御部１５は、キーボード装置１３および画面指示装置１４の入力情報を取り込む等するためのものである。
【００２１】
プリンタインタフェース手段１６は、このホスト装置１００をプリンタ装置２００へ接続して、プリンタ装置２００との間で種々のデータをやり取りするためのものであり、例えば、ＵＳＢインタフェース手段やパラレルインタフェース手段などが用いられる。
【００２２】
これらのＣＰＵ１、ＲＯＭ２、ＲＡＭ３、キャラクタジェネレータ４、時計回路５、ネットワーク伝送制御部７、磁気ディスク装置８、光学媒体駆動装置９、表示制御部１２、入力制御部１５、および、プリンタインタフェース手段１６は、システムバス等の内部バス１７に接続されており、これらの各要素間のデータのやりとりは、主としてこの内部バス１７を介して行われる。
【００２３】
図３は、ＸＰＳ印刷システムの機能の概略の一例を示した機能ブロック図である。
同図において、プリンタドライバ３００は、ホスト装置１００のＣＰＵ１が実行するプリンタドライバプログラムにより実現されるホスト装置１００に実装された機能の１つであり、ホスト装置１００に実装されたアプリケーションソフトウェア等が作成したＸＰＳ文書データは、このプリンタドライバ３００を介してプリンタ装置２００のプリンタコントローラ２０２へ送り出される。
【００２４】
プリンタドライバ３００には、各々が所定の画像処理を実行するフィルタ処理部ＦＰ１〜ＦＰｎが設けられており、フィルタ処理部ＦＰ１〜ＦＰ（ｎ−１）のそれぞれの出力は次段のフィルタ処理部ＦＰ２〜ＦＰｎの入力に接続されていて、全体としてフィルタパイプラインを構成しており、各フィルタ処理部ＦＰ１〜ＦＰｎは、並列的に複数が実行可能で、また、その処理が終了すると使用していたメモリを解放する。
【００２５】
なお、このフィルタパイプラインにおいては、例えば、プリンタドライバ３００におけるＸＰＳ文書データの処理形態に従って、ＸＰＳ文書データの処理を開始する前の段階で、それぞれのフィルタ処理部ＦＰ１〜ＦＰｎの機能を適宜に設定することができる。したがって、ある処理形態の場合と別の処理形態の場合とで、例えば、フィルタ処理部ＦＰ１とフィルタ処理部ＦＰ２にそれぞれ設定される機能が逆転する場合がある。
【００２６】
また、それぞれのフィルタ処理部ＦＰ１〜ＦＰｎは、ページ内のデータの編集、データ変換、集約印刷時の編集処理、変倍処理、および、後述する透過描画判定処理などの処理を実行するものであり、それぞれの実行結果は、必要に応じてＸＰＳ文書データ（詳細は後述する）に付加される。例えば、透過描画判定処理の場合、各ページのＸＰＳ文書データに透過描画に関する情報（タグ、値、あるいは属性）が含まれているかどうかを調べ、含まれている場合には、そのページのＸＰＳ文書データに透過描画が含まれている旨を表す属性情報（以下、「透過描画情報」という）を付加する。
【００２７】
プリンタコントローラ２０２は、ＸＰＳ文書データを解釈するパーサ２０２ａ、及びパーサ２０２ａの出力に従ってＸＰＳ文書データから印刷データを作成（レンダリング）するレンダラ処理部２０２ｂを有し、レンダラ処理部２０２ｂは、ＲＧＢ多値レンダラ処理部２０２ｃ及びＣＭＹＫ少値レンダラ処理部２０２ｄを有する。
【００２８】
ＲＧＢ多値レンダラ処理部２０２ｃは、ＲＧＢ多値の仮想的なフレームメモリを使って描画処理を行なうとともに、透過描画が設定されている場合には、透過度に応じた透過描画処理を行い、必要に応じて描画オブジェクトの重ね処理を行う。ＣＭＹＫ少値レンダラ処理部２０２ｄは、ＲＧＢデータを対応するＣＭＹＫデータへ変換し、変換後のＣＭＹＫデータを少値化処理し、少値化後のＣＭＹＫデータ（ＣＭＹＫ少値データ）をフレームメモリ２０４へ書き出すものである。また、ＣＭＹＫ少値レンダラ処理部２０２ｄは、ＣＭＹＫ少値データをフレームメモリ２０４に書き出す際、必要に応じて描画オブジェクトの重ね処理を行う。
【００２９】
なお、フレームメモリ２０４に格納される印刷データは、プリンタエンジン２０５が印刷動作に直接用いることができるデータフォーマットである。この場合、フレームメモリ２０４にはＣＭＹＫ少値データを格納する。そこで、ＲＧＢ多値レンダラ処理部２０２ｃでは、作成したＲＧＢ多値印刷データを、対応するＣＭＹＫデータへ変換し、その変換後のＣＭＹＫデータは少値化処理し、その結果形成されたＣＭＹＫ少値データをフレームメモリ２０４へ格納する。
【００３０】
図４は、ＸＰＳ印刷システムの機能のうち、ホスト装置１００が担当する処理機能部分の一例を示している。
同図において、アプリケーション１０１は、ＸＰＳ文書データを作成するものであり、その出力するＸＰＳ文書データは、プリントスプーラ１０２を介して、一旦ＸＰＳスプールファイル１０３として磁気ディスク装置８に保存される。
【００３１】
また、プリントスプーラ１０２は、ＸＰＳスプールファイル１０３として保存したＸＰＳ文書データを適宜読み出して、プリンタドライバを構成するフィルタパイプラインマネージャＦＰＭの初段のフィルタ処理部ＦＰ１に出力する。
なお、プリンタドライバの構成によっては、ＸＰＳスプールファイル１０３を磁気ディスク装置８に保存せずに、直接フィルタパイプラインマネージャＦＰＭの初段のフィルタ処理部ＦＰ１に出力する場合もある。
【００３２】
図３においてプリンタドライバ３００の構成要素であったフィルタ処理部ＦＰ１，ＦＰ２，…，ＦＰｎは、図４に示すフィルタパイプラインマネージャＦＰＭにより動作が制御され、最終段のフィルタ処理部ＦＰ２から出力されるＸＰＳ文書データは、それ以降のＸＰＳ印刷パス５００へと出力される。この場合のフィルタパイプラインマネージャＦＰＭより後のＸＰＳ印刷パス５００は、図１に示したプリンタ装置２００のプリンタコントローラ２０２以降の処理部分に相当する。
【００３３】
ここで、ＸＰＳ印刷パスは、ＸＰＳプリンタドライバモデル（ＸＰＳＤｒｖ）に基づいて構築されるものであり、本実施例の場合、ホスト装置１００のアプリケーション１０１に含まれるＸＰＳ文書作成用機能がＸＰＳ文書データを作成する段階から、そのＸＰＳ文書データをプリンタ装置２００が印刷するまでの処理経路を構成する全ての処理機能、例えば、プリントスプーラ１０２、プリンタドライバ（フィルタパイプラインマネージャＦＰＭ）３００、プリンタコントローラ２０２のパーサ２０２ａ、レンダラ処理部２０２ｂ、および、（モデル化された）フレームメモリ２０４を含む。また、このＸＰＳ印刷パスのパーサ２０２ａの入力部まで（フィルタパイプラインの出力まで）の処理段階では、ＸＰＳ文書データのデータ形式でデータの入出力が行われる。
【００３４】
図５は、本発明の一実施例にかかる１ページ分のＸＰＳ文書データの描画処理の一例を示している。この処理は、プリンタコントローラ２０２のパーサ２０２ａ及びレンダラ処理部２０２ｂの処理機能により実現される。
まず、パーサ２０２ａによってＸＰＳ文書データを解析するパース処理を行い（ステップＳ１）、そのパース処理の解析結果に基づいてそのページのＸＰＳ文書データに透過描画に関する情報が含まれているかどうかを調べる（ステップＳ２）。後述するように、この場合、そのページのＸＰＳ文書データに透過描画に関する情報が含まれている場合には、そのページのＸＰＳ文書データに透過描画が含まれている旨を表す透過描画情報が付加されているので、その透過描画情報が含まれている場合はステップＳ２の結果がＹＥＳとなり、透過描画情報が含まれていない場合はステップＳ２の結果がＮＯになる。
【００３５】
そのページのＸＰＳ文書データに透過描画に関する情報が含まれている場合で、ステップＳ２の結果がＹＥＳになるときには、ＲＧＢ多値レンダリングパスの処理を行う。ＲＧＢ多値レンダラ処理部２０２ｃはＸＰＳ文書データに印刷データとして含まれるＲＧＢカラー多値データで表された描画オブジェクト（画像、文字列、及び幾何図形等を含む）に対応して、ＲＧＢ多値の仮想的なフレームメモリを使った描画処理を行ない、１ページ分の画像情報のＲＧＢカラー多値画像データを作成する（ステップＳ３）。また、ステップＳ３でＲＧＢカラー多値画像データを仮想的なフレームメモリに書き出す際、必要に応じて描画オブジェクトの重ね処理を行う。
【００３６】
次に、ステップＳ３で作成したＲＧＢカラー多値画像データを、対応するＣＭＹＫデータに変換し（ステップＳ４）、その変換後のＣＭＹＫデータを、描画データに必要なＣＭＹＫ少値データに変換し、その処理結果として得られたＣＭＹＫ少値データを、それぞれの色成分に対応したフレームメモリ２０４へ書き出す（ステップＳ５）。ここで、ステップＳ３の処理がＲＧＢ多値レンダリング処理に対応し、上述のようにＲＧＢレンダラ処理部２０２ｃにより行われる。
【００３７】
一方、そのページのＸＰＳ文書データに透過描画に関する情報が含まれていない場合で、ステップＳ２の結果がＮＯになるときには、ＣＭＹＫ少値レンダリングパスの処理を行う。ＸＰＳ文書データに印刷データとして含まれるＲＧＢカラー多値データで表された描画オブジェクト（画像、文字列、及び幾何図形等を含む）を、対応するＣＭＹＫデータで表された描画オブジェクトに変換する（ステップＳ６）。
【００３８】
次に、その変換後のＣＭＹＫデータで表された描画オブジェクトの描画処理を行い、１ページ分の画像情報を作成することで得られたＣＭＹＫ少値データを、それぞれの色成分に対応したフレームメモリ２０４へ書き出す（ステップＳ７）。また、ステップＳ７でＣＭＹＫ少値データをフレームメモリ２０４に書き出す際、必要に応じて描画オブジェクトの重ね処理を行う。ここで、ステップＳ７の処理がＣＭＹＫ少値レンダリング処理に対応し、上述のようにＣＭＹＫ少値レンダラ処理部２０２ｄにより行われる。
【００３９】
このようにして、本実施例では、透過描画に関する情報を含むページについてはＲＧＢ多値レンダリング処理を行って適切な透過描画が適用された印刷データを作成し、透過描画に関する情報を含まないページについてはＣＭＹＫ少値レンダリング処理を行って省メモリで高速な描画処理が可能であり、ＸＰＳデータの描画処理（レンダリング処理）を効率よく行うことができる。
【００４０】
ここで、透過描画指定は、多くのアプリケーションでは０から１００％の値で指定されるため、正確な重ね合わせ処理を行なうためには、そもそも多値で扱う必要がある。また、少値で描画を行なう場合、重ね合わせる図形同士がそれぞれディザ処理等で二値や四値で表されているため、ディザパターンがお互いに干渉する等で正しく描画されない。そこで、本実施例のように、透過描画に関する情報を含むページについてはＲＧＢ多値レンダリング処理を行って適切な透過描画が適用された印刷データを作成する必要がある。
【００４１】
一方、透過描画指定がされていない場合には、透過演算を伴わない描画命令（ラスタオペレーション）を実行することになり、上述したＣＭＹＫ少値レンダリング処理を用いても適切な印刷データを作成することができる。
【００４２】
次に、ＸＰＳ文書データの各ページについて、透過描画判定を行う処理について説明する。この透過描画判定処理は、フィルタ処理部ＦＰ１〜ＦＰｎの何れかにより実現されるものである。
図６は、フィルタ処理部ＦＰ１〜ＦＰｎの何れかが行う１ページ分の透過描画判定処理の一例を示している。
ここで、透過描画に関する情報（透過描画を指定するデータ）が含まれているか否かの判断は、ＸＰＳ文書データに含まれる透過描画に関する要素（Ｅｌｅｍｅｎｔ）や透過描画に関する属性の値（Ｖａｌｕｅ）を使用する。例えば、文字（Ｇｌｙｐｈ）やイメージ（Ｂｒｕｓｈ）に指定されるＯｐａｃｉｔｙ属性に対して、１．０以外の値が指定されている場合、透過描画を行うと判定することができる。
【００４３】
まず、ＸＰＳ文書データを読み込み（ステップＳ１１）、そのときにいずれのエラーも発生していない状態であるかどうかを調べる（ステップＳ１２）。エラーが発生していない場合で、ステップＳ１２の結果がＹＥＳになるときには、ステップＳ１１で読み込んだＸＰＳ文書データに透過描画に関する情報が含まれていたかどうかを調べ（ステップＳ１３）、ステップＳ１３の結果がＮＯになるときには、処理対象の１ページ分のＸＰＳ文書データの処理が終了したかどうかを調べる（ステップＳ１４）。ステップＳ１４の結果がＮＯになる場合には、ステップＳ１１へ戻り、それ以降の処理を繰り返し行う。また、ステップＳ１４の結果がＹＥＳになるときには、このときの透過描画判定処理を終了する。
【００４４】
一方、そのときにエラーが発生している場合でステップＳ１２の結果がＮＯになるとき、及びステップＳ１１で読み込んだＸＰＳ文書データに透過描画に関する情報が含まれていた場合でステップＳ１３の結果がＹＥＳになるときには、そのページのＸＰＳ文書データに結果（透過描画情報）を付加し（ステップＳ１５）、ステップＳ１４へ移行し、それ以降の処理を実行する。
このようにして、ＸＰＳ文書データの各ページについて、透過描画判定を行い、透過描画に関する情報が含まれるページについては、そのＸＰＳ文書データのそのページに透過描画情報を付加している。
【００４５】
この処理について説明すると、まず、透過描画判定を行なうためには、ＸＰＳ文書データを読み込むためのメモリが必要である。そのためのメモリ領域は、例えば、プリンタ装置２００のメモリ装置２４に適宜に確保される。一方、ＸＰＳに限らず、ＰＤＬのデータ量はページ毎に一定ではなく、描画内容の複雑さ等により、データ量が増減する。
【００４６】
このため、１ページのＸＰＳ文書データを解析し、透過描画の有無を判定する際に必要となるメモリ量も一定ではなく、大きなデータを処理するためのメモリが足りなくなる場合がある（エラー発生）。この場合は判定処理を中止し、透過描画有りとして結果（透過描画情報）をＸＰＳ文書データに付加する。
【００４７】
同様に、メモリ不足に起因するエラーだけではなく、判定処理中にその他の不具合が発生し（エラー発生）、判定処理が中断することもあるが、その場合にも同様に判定処理を中断し、透過描画有りとして結果（透過描画情報）をＸＰＳ文書データに付加する。
【００４８】
これは以下の理由による。すなわち、判定処理を中止した場合、透過描画有りとして結果（透過描画情報）をＸＰＳ文書データに付加するため、判定以降の処理は透過描画有りとして処理を行ない、無駄なメモリ消費や処理時間の増大が生じるが、レンダリング結果に不具合は発生しない。一方、判定以降の処理を透過描画無しとして処理してしまうと、本来、透過描画しなければならない透過描画コマンドを不透過で処理してしまうため、以降の処理でエラーやレンダリング結果の不具合を生じるからである。
【００４９】
ところで、図６の処理では、判定対象のページに透過描画に関する情報が含まれている場合に、透過描画情報が含まれている旨を表す透過描画情報をそのページに付加しているが、判定対象のページに透過描画に関する情報が含まれていない場合に、透過描画情報が含まれていない旨を表す非透過描画情報をそのページに付加し、判定対象のページに透過描画に関する情報が含まれている場合には非透過描画情報をそのページには付加しないようにすることでも、該ページに透過描画に関する情報が含まれているか否かを判断することができる。
【００５０】
そして、この場合には、上述した図５に示した１ページ分のＸＰＳ文書データの描画処理のステップＳ２については、非透過描画情報が含まれていない場合はこのステップＳ２の結果がＹＥＳとなって、それ以降、ＲＧＢ多値レンダリングパスの処理が実行され、非透過描画情報が含まれている場合はこのステップＳ２の結果がＮＯとなって、それ以降、ＣＭＹＫ少値レンダリングパスの処理が実行される。
【００５１】
図７は、この場合に、フィルタ処理部ＦＰ１〜ＦＰｎの何れかが行う１ページ分の透過描画判定処理の他の例を示している。
まず、処理対象のＸＰＳ文書データを読み込み単位に応じて読み込み（ステップＳ２１）、透過描画に関する情報が含まれるかどうかを調べる（ステップＳ２２）。ステップＳ２２の結果がＹＥＳになるときには、そのときの判定対象のページには透過描画に関する情報が含まれていたので、該ページには透過描画に関する情報が含まれていない旨を表す非透過描画情報を付加せずに、この処理を終了する。
【００５２】
また、ステップＳ２２の結果がＮＯになるときには、ステップＳ２１で読み込んだＸＰＳ文書データには透過描画に関する情報が含まれていない場合であるので、１ページ分のＸＰＳ文書データの処理が終了したかどうかを調べる（ステップＳ２３）。ステップＳ２３の結果がＮＯになるときには、ステップＳ２１へ戻り、処理対象となるＸＰＳ文書データの残りのデータを読み込んで、それ以降の処理を行う。
【００５３】
一方、処理対象の１ページ分のＸＰＳ文書データに透過描画に関する情報が含まれていない場合で、ステップＳ２３の結果がＹＥＳになる場合には、そのページのＸＰＳ文書データに非透過描画情報を付加して（ステップＳ２４）、この処理を終了する。
【００５４】
このようにして、この例の１ページ分の透過描画判定処理では、透過描画に関する情報が１つ以上見つかると、その時点で、その１ページ分の透過描画判定処理を終了しているので、ページの最後まで処理を継続する必要がなく、その結果、１ページ分の透過描画判定処理に要する時間を大幅に短縮することができる。
【００５５】
また、透過描画無しの場合にのみ判定結果を付加し、透過描画有りの場合に付加しないのは、次のような理由による。すなわち、この場合、透過描画有りの検知はページの最後まで行なわず、透過描画有りを検知したページの途中までで判定処理を中断するため、該ページが実際は透過描画無しであったにもかかわらず誤検知により透過描画有りとしてしまう可能性はあるが、その後の処理は透過描画有りとして処理されるため、描画結果に不具合を生じないからである。
【００５６】
次に、ＸＰＳ文書データに透過描画に関する情報が含まれると判定する具体例について説明する。
図８は、ＸＰＳ文書データにおいて、透過描画に関する情報の一例を示している。
図８の例は、“This is a fading text example”という文字列を、透過グラデーションで描画するためのＸＰＳコマンドの一例を表すものであり、文字（Ｇｌｙｐｈ）に対して、OpacityMask属性を使って、透過率をグラデーション指定した例である。GradientStopに指定されたColorがFF000000から00000000に変化するよう指定されている。ここで、AARRGGBB形式でColorを指定してあるAA部分が透過率を表す。この場合、FF（不透過）から00（完全透過）へのグラデーションを表すため、OpacityMaskのColorがFF以外である場合は、透過描画が存在すると判定できる。
【００５７】
このように、透過描画に関する情報が含まれているか否かの判断は、ＸＰＳ文書データに含まれる透過描画に関する要素（Ｅｌｅｍｅｎｔ）や透過描画に関する属性の値（Ｖａｌｕｅ）を使用する。例えば、文字（Ｇｌｙｐｈ）やイメージ（Ｂｒｕｓｈ）に指定されるＯｐａｃｉｔｙ属性に対して、１．０以外の値が指定されている場合、透過描画を行うと判定することができる。他にも、透過描画に関わるタグ（要素）、属性、及び値などを利用することができる。
【００５８】
図９（ａ），（ｂ）は、図８に示したＸＰＳ文書データの構成の一例を示している。
基本的に、ＸＰＳ文書データのファイルコンテナの形態はＺＩＰ圧縮ファイルであり、ＸＰＳ文書ファイルをＺＩＰ展開すると、その構造には、複数のフォルダやファイルが存在している。図９（ａ）は、Sample.xpsというＸＰＳ文書ファイル（ＭＳワード（登録商標）の１ページ）を、sample.zipにリネームしてＺＩＰ展開したフォルダ構成の一例を示している。また、図９（ｂ）は図９（ａ）のフォルダ「Sample」に格納されている情報の一覧を示している。
【００５９】
図１０は、図５に示したＸＰＳ印刷システムにおいて、ホスト装置１００とプリンタ装置２００との処理の分担態様が異なる他の例を示している。なお、同図において、図４と同一部分及び相当する部分については、同一符号を付して説明を省略する。この例は、後述するように、ＸＰＳダイレクトプリントシステムに応用することができる。
【００６０】
この例では、フィルタパイプラインマネージャＦＰＭをホスト装置１００から取り除いてプリンタ装置２００に移した構成となっている。このように構成することで、ホスト装置１００の処理能力が非力な場合でも、プリンタ装置２００がフィルタパイプラインマネージャＦＰＭを実行するので、図４と同様のＸＰＳ印刷システムを実現することができる。また、この場合、上述した１ページ分の透過描画判定処理は、プリンタ装置２００のフィルタパイプラインマネージャＦＰＭのフィルタ処理部ＦＰ１，ＦＰ２の何れかに実行させることができる。
【００６１】
図１１は、図４に示したＸＰＳ印刷システムにおいて、ホスト装置１００とプリンタ装置２００との処理の分担態様が異なる更に他の例を示している。なお、同図において、図４と同一部分及び相当する部分については、同一符号を付して説明を省略する。
この例では、ホスト装置１００にフィルタパイプラインマネージャＦＰＭ１を設けると共に、プリンタ装置２００にフィルタパイプラインマネージャＦＰＭ２を設け、プリンタドライバ３００におけるフィルタパイプラインマネージャＦＰＭの処理をホスト装置１００とプリンタ装置２００とで分担し、負荷を分散した構成となっている。
【００６２】
この場合、上述した１ページ分の透過描画判定処理は、ホスト装置１００のフィルタパイプラインマネージャＦＰＭ１のフィルタ処理部ＦＰ１，ＦＰ２の何れか、あるいは、プリンタ装置２００のフィルタパイプラインマネージャＦＰＭ２のフィルタ処理部ＦＰ３，ＦＰ４の何れかが実行するようにすることができる。例えば、プリンタ装置２００の処理能力がある程度大きければ、フィルタパイプラインマネージャＦＰＭ２のフィルタ処理部ＦＰ３，ＦＰ４の何れかに実行させることができる。
また、上述した１ページ分の透過描画判定処理をどのフィルタ処理部に実行させるかの割当については、ページ毎又はジョブ毎に、切換えるようにすることもできる。
【００６３】
ところで、上述した実施例では、ホスト装置で作成したＸＰＳ文書をカラープリンタ装置で印刷する印刷システムに本発明を適用した場合について説明したが、ＸＰＳ文書のカラー印刷データ（カラー画像データ）をホスト装置の画面表示装置等に表示出力する画像出力システムや、ＸＰＳ文書のカラー印刷データを所定フォーマットの電子文書（例えば、ＰＤＦなど）に変換して出力するシステム、あるいは、それらのシステムにおけるレンダリング方法にも、本発明を同様にして適用することができる。
【００６４】
ただし、ホスト装置の画面表示装置にＸＰＳ文書を表示出力する場合、画面表示装置の表示データはＲＧＢ多値色空間で処理を行なうため、ＣＭＹＫ少値レンダリングは行なわない。その場合であっても、透過描画を指定するデータがないと判定したページについて、透過描画に必要なものより負担の低い描画処理を行うようにすれば、透過描画特有の負荷の高い演算処理等が不要となるので、画像表示アプリケーションの表示を高速化できるという効果を得る。
【００６５】
また、本発明は、ホスト装置を使わず、ＸＰＳ文書データをプリンタ装置で直接印刷するＸＰＳダイレクトプリントシステムにも応用することができる。その場合、図１のプリンタ装置の構成のうちホストインタフェース手段２０１を外部機器との間で適宜にデータをやりとりすることができる汎用のインタフェース手段に代えると共に、図４の構成のプリントスプーラ１０２以降、あるいは、図１０に示したようにフィルタパイプラインマネージャＦＰＭ以降の処理機能をプリンタ装置に持たせ、上述した透過描画有無の判定処理もプリンタ装置で行い、その判定結果に従って、以降のレンダリング処理の内容を切り換えるようにするとよい。
【００６６】
また、このＸＰＳダイレクトプリンタシステムの他の例としては、ホスト装置上でＸＰＳ文書データをそのままプリンタ装置に送るツールを利用する、ＦＴＰ／ＲＳＨで転送する等のほか、プリンタ装置がメモリダイレクトプリントに対応していれば、ＵＳＢメモリ等のメディアに保存したＸＰＳファイルを、プリンタ装置が読み込み、印刷するというものがある。
【産業上の利用可能性】
【００６７】
本発明は、ＸＰＳ文書を印刷するシステムに関する装置、ＸＰＳ文書を作成するホスト装置、ＸＰＳ文書を印刷するプリンタ装置、それらのホスト装置とプリンタ装置により構築される印刷システムや、ＸＰＳ文書を表示する画像表示システムなどに適用することができる。
【符号の説明】
【００６８】
１：ＣＰＵ（中央処理装置）    ２：ＲＯＭ（リード・オンリ・メモリ）
３：ＲＡＭ（ランダム・アクセス・メモリ）    ４：キャラクタジェネレータ
５：時計回路    ６：ネットワークインタフェース手段
７：ネットワーク伝送制御部    ８：磁気ディスク装置    ９：光学媒体駆動装置
１１：ＣＲＴ画面表示装置    １２：表示制御部    １３：キーボード装置
１４：画面指示装置    １５：入力制御部    １６：プリンタインタフェース手段
１７：内部バス    １００：ホスト装置    １０１：アプリケーション
１０２：プリントスプーラ    １０３：ＸＰＳスプールファイル
２００：プリンタ装置    ２０１：ホストインタフェース手段
２０２：プリンタコントローラ  ２０２ａ：パーサ    ２０２ｂ：レンダラ処理部
２０２ｃ：ＲＧＢ多値レンダラ処理部    ２０２ｄ：ＣＭＹＫ少値レンダラ処理部
２０３：受信バッファ    ２０４：フレームメモリ    ２０５：プリンタエンジン
３００：プリンタドライバ  ５００：ＸＰＳ印刷パス
ＦＰ１〜ＦＰｎ：フィルタ処理部
ＦＰＭ，ＦＰＭ１，ＦＰＭ２：フィルタパイプラインマネージャ
【先行技術文献】
【特許文献】
【００６９】
【特許文献１】特開２００５−１８２６９２号公報
【非特許文献】
【００７０】
【非特許文献１】“XML Paper Specification”、［online］、２００６年１０月２４日、マイクロソフト社、［平成２１年７月６日検索］、インターネット＜URL：http://www.microsoft.com/japan/whdc/xps/xpsspec.mspx＞
【図１】
2011025539.tif 000003
【図２】
2011025539.tif 000004
【図３】
2011025539.tif 000005
【図４】
2011025539.tif 000006
【図５】
2011025539.tif 000007
【図６】
2011025539.tif 000008
【図７】
2011025539.tif 000009
【図８】
2011025539.tif 000010
【図９】
2011025539.tif 000011
【図１０】
2011025539.tif 000012
【図１１】
2011025539.tif 000013