印刷システムおよび印刷システムの制御方法
【課題】本発明は、効率よくグラフィックオブジェクトのレンダリングを行うことができる印刷システムの制御方法を提供する。
【解決手段】本発明に係る印刷システムの制御方法は、複数のグラフィックオブジェクトが連続するグラフィックリストをレンダリングして描画出力可能なデータである印刷用画素値を作成する方法である。グラフィックリストを取得し(S30)、グラフィックリストに含まれる第一グラフィックオブジェクトのオブジェクトタイプに応じて第一パーティションに分類する(S32)。第一グラフィックオブジェクトと、次に続くグラフィックオブジェクトのオブジェクトタイプを比較して(S40)、第一グラフィックオブジェクトと次のグラフィックオブジェクトとのオブジェクトタイプが一致しない場合、新たなパーティションに次のグラフィックオブジェクトを分類し(S48)、一致する場合は、第一パーティションに次のグラフィックオブジェクトを分類する(S42)。
【解決手段】本発明に係る印刷システムの制御方法は、複数のグラフィックオブジェクトが連続するグラフィックリストをレンダリングして描画出力可能なデータである印刷用画素値を作成する方法である。グラフィックリストを取得し(S30)、グラフィックリストに含まれる第一グラフィックオブジェクトのオブジェクトタイプに応じて第一パーティションに分類する(S32)。第一グラフィックオブジェクトと、次に続くグラフィックオブジェクトのオブジェクトタイプを比較して(S40)、第一グラフィックオブジェクトと次のグラフィックオブジェクトとのオブジェクトタイプが一致しない場合、新たなパーティションに次のグラフィックオブジェクトを分類し(S48)、一致する場合は、第一パーティションに次のグラフィックオブジェクトを分類する(S42)。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、概してデータをレンダリングする方法と、そのシステムに関するものであり、特には、印刷システムにおいてグラフィックオブジェクト(グラフィックリスト要素)をレンダリングする方法と、そのシステムに関する。
【背景技術】
【0002】
印刷システムにおける電子文書の処理には、印刷データを解釈し、レンダリングするために計算機による集約的作業が必要となる。グラフィック(グラフィカルやグラフィクスとも称する)オブジェクトのストリームを、ホストオペレーティングシステムのグラフィックインターフェースサービスから、グラフィックオブジェクトを解析するグラフィクスレンダリングサービスに送信し、オブジェクトベースの情報を印刷用画素値に変換する。なお、本明細書では、グラフィックオブジェクトから印刷用画素値を作成する処理のことをレンダリングと称するものとする。現在、高速で効果的にレンダリングするシステムおよび方法が所望されている。効果的なレンダリングを行うシステムとして例えば、特許文献1に開示された画像形成装置や、特許文献2に開示されたシステムが挙げられる。より具体的には、特許文献1では、複数種類のオブジェクト(グラフィックオブジェクト)を含む印刷データを展開させる際、グラフィックオブジェクトの種類ごとに異なる展開部に送信し、該展開部それぞれにてグラフィックオブジェクトに対する分散・並列処理を行う画像形成装置が開示されている。また、特許文献2では、印刷データにおいてオブジェクト(グラフィックオブジェクト)の重なりの有無を判定し、複数の展開手段に分散させ並列処理を行う構成が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2007−221604号公報(2007年8月30日公開)
【特許文献2】特開平10−333852号公報(1998年12月18日公開)
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上述のような従来技術は、効率よくグラフィックオブジェクトのレンダリングを行うことができないという問題が生じる。
【0005】
すなわち、特許文献1に開示された画像形成装置では、特定の種類のグラフィックオブジェクトは全て同じレンダリング装置(展開部)に送信される構成である。このため、印刷データに含まれるグラフィックオブジェクトの種類に偏りがある場合、ある特定のレンダリング装置に処理が集中してしまい、印刷データに対する処理を効率的に行うことができない。
【0006】
一方、特許文献2に開示されたシステムは、まず、グラフィックオブジェクト同士が重なっているか否か判断して、その判断結果に基づき優先順位を設定する。そして、この優先順位に従って、複数のレンダリング装置に順次グラフィックオブジェクトを配分する構成である。このため、グラフィックオブジェクトの配分に時間がかかり効率よくレンダリングを行うことができない。
【0007】
本発明は、上記の問題点に鑑みてなされたものであり、その目的は、効率よくグラフィックオブジェクトのレンダリングを行うことができる、印刷システムの制御方法、および印刷システムを実現することにある。
【課題を解決するための手段】
【0008】
本発明に係る印刷システムの制御方法は、上記した課題を解決するために、印刷データに関連づけられた、複数のグラフィックオブジェクトが連続するストリームデータであるグラフィックリストをレンダリングして描画出力可能なデータである印刷用画素値を作成する印刷システムの制御方法であって、上記グラフィックリストから第一グラフィックオブジェクトと、該第一グラフィックオブジェクトに続く、次のグラフィックオブジェクトである第二グラフィックオブジェクトとを取得する取得ステップと、一括してレンダリングするグラフィックオブジェクトの集合単位を規定するためのパーティションであって、上記第一グラフィックオブジェクトの種類に応じた第一パーティションに、上記第一グラフィックオブジェクトを分類する第一分類ステップと、上記第一グラフィックオブジェクトの種類と、上記第二グラフィックオブジェクトの種類とを比較する比較ステップと、上記比較ステップにおいて、上記第一グラフィックオブジェクトと上記第二グラフィックオブジェクトとの種類が一致しない場合、上記第一パーティションとは異なるパーティションである第二パーティションに上記第二グラフィックオブジェクトを分類し、上記第一グラフィックオブジェクトと上記第二グラフィックオブジェクトとの種類が一致する場合は、上記第一パーティションに第二グラフィックオブジェクトを分類する第二分類ステップと、を含むことを特徴とする。
【0009】
ここで、グラフィックオブジェクトとは、印刷データに関連付けられたデータであって、描画出力可能なデータ(印刷用画素値)よりも抽象度が高い中間データである。グラフィックオブジェクトの種類としては、例えば、テキストオブジェクト、ベクターオブジェクト、およびビットマップオブジェクトなどが挙げられる。
【0010】
上記した方法によると、上記取得ステップを含むため、連続する、第一グラフィックオブジェクトと第二グラフィックオブジェクトとを取得することができる。また、第一分類ステップを含むため、まず、第一グラフィックオブジェクトを、その種類に応じて第一パーティションに分類することができる。
【0011】
また、上記比較ステップおよび第二分類ステップをさらに含むため、第一グラフィックオブジェクトの次に取得した第二グラフィックオブジェクトがこの第一グラフィックオブジェクトと同じ種類か否か判定することができる。そして、両者の種類が異なる場合、第二グラフィックオブジェクトを第一パーティションとは異なる第二パーティションに分類することができる。一方、同じ種類の場合、第二グラフィックオブジェクトを第一グラフィックオブジェクトと同じ第一パーティションに分類することができる。
【0012】
このため、同じ種類のグラフィックオブジェクトが連続する場合は、同じパーティションに分類し、それらを一括してレンダリングすることができる。一方、異なる種類の第二グラフィックオブジェクトが後続する場合は、第一パーティションとは異なる第二パーティションにこの第二グラフィックオブジェクトを分類することができる。これにより、グラフィックオブジェクトをある程度まとめてレンダリングすることができるとともに、適当に別のパーティションに分類させレンダリングを分散させることもできる。
【0013】
したがって、印刷データに含まれるグラフィックオブジェクトの種類に偏りがある場合であっても、ある特定のレンダリング装置に処理が集中してしまうことを防ぐことができる。
【0014】
よって、本発明に係る印刷システムの制御方法は、効率よくグラフィックオブジェクトのレンダリングを行うことができるという効果を奏する。
【0015】
また、本発明に係る印刷システムの制御方法は、上記した方法において、上記グラフィックリストに含まれるグラフィックオブジェクトの種類は、印刷データにおける文字列とそれに関連するテキスト属性とを含むテキストオブジェクト、印刷データにおけるアウトライン、または塗りつぶし値と関連づけて一定の形状を含むベクターオブジェクト、および印刷データにおける高さ値、幅値、および連続する画素の明度を含むピクトリアルオブジェクトのうちのいずれかであってもよい。
【0016】
また、本発明に係る印刷システムの制御方法は、上記した方法において、上記第一パーティションと、該第一パーティションに分類されたグラフィックオブジェクトのレンダリングを専用に行う第一レンダリング部とを対応付けるとともに、上記第二パーティションと、該第二パーティションに分類されたグラフィックオブジェクトのレンダリングを専用に行う第二レンダリング部とを対応付ける対応付けステップをさらに含んでもよい。
【0017】
上記方法によると、対応付けステップをさらに含むため、第一パーティション、第二パーティションそれぞれに分類されたグラフィックオブジェクトのレンダリングを行うために第一レンダリング部、第二レンダリング部それぞれを適切に割り当てることができる。
【0018】
また、本発明に係る印刷システムの制御方法は、上記した方法において、上記対応付けステップにより対応付けられた第一レンダリング部によって、上記第一パーティションに分類されたグラフィックオブジェクトのレンダリングを実行する第一レンダリングステップと、上記対応付けステップにより対応付けられた第二レンダリング部によって、上記第二パーティションに分類されたグラフィックオブジェクトのレンダリングを実行する第二レンダリングステップと、を含んでもよい。
【0019】
また、本発明に係る印刷システムの制御方法は、上記した方法において、上記第一レンダリングステップと上記第二レンダリングステップとを並列して実行してもよい。
【0020】
なお、上記第一レンダリングステップと上記第二レンダリングステップとを並列して実行する場合、両者のレンダリングステップを同時に行う場合も含むことができる。
【0021】
また、本発明に係る印刷システムの制御方法は、上記した方法において、上記第一パーティションおよび第二パーティションには、レンダリングされる順番であるレンダリング順情報が対応付けられており、上記レンダリング順情報に基づく順番で、上記第一レンダリングステップと上記第二レンダリングステップとを実行してもよい。
【0022】
上記方法によると、グラフィックオブジェクトを分類するパーティションにはレンダリング順情報が対応づけられている。このため、グラフィックオブジェクトを適切なレンダリング順情報が対応づけられているパーティションに分類することで、グラフィックオブジェクトそれぞれのレンダリングを効率的に行うことができる。
【0023】
また、本発明に係る印刷システムの制御方法は、上記した方法において、上記第一レンダリングステップおよび上記第二レンダリングステップによってそれぞれレンダリングされたグラフィックオブジェクトを順次ビットブリットするビットブリットステップを更に含んでもよい。
【0024】
本発明に係る印刷システムは、上記した課題を解決するために、印刷データに関連づけられた、複数のグラフィックオブジェクトが連続するストリームデータであるグラフィックリストをレンダリングして描画出力可能なデータである印刷用画素値を作成する印刷システムであって、上記グラフィックリストから第一グラフィックオブジェクトと、該第一グラフィックオブジェクトに続く、次のグラフィックオブジェクトである第二グラフィックオブジェクトとを取得する取得部と、一括してレンダリングするグラフィックオブジェクトの集合単位を規定するためのパーティションであって、上記第一グラフィックオブジェクトの種類に応じた第一パーティションに、上記第一グラフィックオブジェクトを分類する第一分類部と、上記第一グラフィックオブジェクトの種類と、上記第二グラフィックオブジェクトの種類とを比較する比較部と、上記比較部により、上記第一グラフィックオブジェクトと上記第二グラフィックオブジェクトとの種類が一致しない場合、上記第一パーティションとは異なるパーティションである第二パーティションに上記第二グラフィックオブジェクトを分類し、上記第一グラフィックオブジェクトと上記第二グラフィックオブジェクトとの種類が一致する場合は、上記第一パーティションに第二グラフィックオブジェクトを分類する第二分類部と、を備えることを特徴とする。
【0025】
ここで、グラフィックオブジェクトとは、印刷データに関連付けられたデータであって、描画出力可能なデータ(印刷用画素値)よりも抽象度が高い中間データである。グラフィックオブジェクトの種類としては、例えば、テキストオブジェクト、ベクターオブジェクト、およびビットマップオブジェクトなどが挙げられる。
【0026】
上記した構成によると、上記取得部を備えるため、連続する、第一グラフィックオブジェクトと第二グラフィックオブジェクトとを取得することができる。また、第一分類部を備えるため、まず、第一グラフィックオブジェクトを、その種類に応じて第一パーティションに分類することができる。
【0027】
また、上記比較部および第二分類部をさらに備えるため、第一グラフィックオブジェクトの次に取得した第二グラフィックオブジェクトがこの第一グラフィックオブジェクトと同じ種類か否か判定することができる。そして、両者の種類が異なる場合、第二グラフィックオブジェクトを第一パーティションとは異なる第二パーティションに分類することができる。一方、同じ種類の場合、第二グラフィックオブジェクトを第一グラフィックオブジェクトと同じ第一パーティションに分類することができる。
【0028】
このため、同じ種類のグラフィックオブジェクトが連続する場合は、同じパーティションに分類し、それらを一括してレンダリングすることができる。一方、異なる種類の第二グラフィックオブジェクトが後続する場合は、第一パーティションとは異なる第二パーティションにこの第二グラフィックオブジェクトを分類することができる。これにより、グラフィックオブジェクトをある程度まとめてレンダリングすることができるとともに、適当に別のパーティションに分類させレンダリングを分散させることもできる。
【0029】
したがって、印刷データに含まれるグラフィックオブジェクトの種類に偏りがある場合であっても、ある特定のレンダリング装置に処理が集中してしまうことを防ぐことができる。
【0030】
よって、本発明に係る印刷システムは、効率よくグラフィックオブジェクトのレンダリングを行うことができるという効果を奏する。
【0031】
また、本発明に係る印刷システムは、上記した構成において、上記グラフィックリストに含まれるグラフィックオブジェクトの種類は、印刷データにおける文字列とそれに関連するテキスト属性とを含むテキストオブジェクト、印刷データにおけるアウトライン、または塗りつぶし値と関連づけて一定の形状を含むベクターオブジェクト、および印刷データにおける高さ値、幅値、および連続する画素の明度を含むピクトリアルオブジェクトのうちのいずれかであってもよい。
【0032】
また、本発明に係る印刷システムは、上記した構成において、上記第一パーティションと、該第一パーティションに分類されたグラフィックオブジェクトのレンダリングを専用に行う第一レンダリング部とを対応付けるとともに、上記第二パーティションと、該第二パーティションに分類されたグラフィックオブジェクトのレンダリングを専用に行う第二レンダリング部とを対応付ける対応付け部をさらに備えるように構成されていてもよい。
【0033】
上記構成によると、対応付け部をさらに備えるため、第一パーティションおよび第二パーティションそれぞれに分類されたグラフィックオブジェクトに対してレンダリングを行うために、第一レンダリング部および第二レンダリング部を適切に割り当てることができる。
【0034】
また、本発明に係る印刷システムは、上記した構成において、上記対応付け部により対応付けられており、上記第一パーティションに分類されたグラフィックオブジェクトのレンダリングを実行する上記第一レンダリング部と、上記対応付け部により対応付けられており、上記第二パーティションに分類されたグラフィックオブジェクトのレンダリングを実行する第二レンダリング部と、を備えるように構成されていてもよい。
【0035】
また、本発明に係る印刷システムは、上記した構成において、上記第一レンダリング装置と上記第二レンダリング装置とを並列して実行するように構成されていてもよい。
【0036】
なお、上記第一レンダリング装置と上記第二レンダリング装置とを並列して実行する場合、両者のレンダリングを同時に行う場合も含むことができる。
【0037】
また、本発明に係る印刷システムは、上記した構成において、上記第一パーティションおよび第二パーティションには、レンダリングされる順番であるレンダリング順情報が対応付けられており、上記レンダリング順情報に基づく順番で、上記第一レンダリング部および上記第二レンダリング部は、それぞれレンダリングを実行するように構成されていてもよい。
【0038】
上記した構成によると、グラフィックオブジェクトを分類するパーティションにはレンダリング順情報が対応づけられている。このため、グラフィックオブジェクトを適切なレンダリング順情報が対応づけられているパーティションに分類することで、グラフィックオブジェクトそれぞれのレンダリングを効率的に行うことができる。
【0039】
また、本発明に係る印刷システムは、上記した構成において、上記第一レンダリング部および上記第二レンダリング部によってそれぞれレンダリングされたグラフィックオブジェクトを順次ビットブリットするビットブリット部を更に備えるように構成されていてもよい。
【発明の効果】
【0040】
本発明に係る印刷システムの制御方法は、以上のように、印刷データに関連づけられた、複数のグラフィックオブジェクトが連続するストリームデータであるグラフィックリストをレンダリングして描画出力可能なデータである印刷用画素値を作成する印刷システムの制御方法であって、上記グラフィックリストから第一グラフィックオブジェクトと、該第一グラフィックオブジェクトに続く、次のグラフィックオブジェクトである第二グラフィックオブジェクトとを取得する取得ステップと、一括してレンダリングするグラフィックオブジェクトの集合単位を規定するためのパーティションであって、上記第一グラフィックオブジェクトの種類に応じた第一パーティションに、上記第一グラフィックオブジェクトを分類する第一分類ステップと、上記第一グラフィックオブジェクトの種類と、上記第二グラフィックオブジェクトの種類とを比較する比較ステップと、上記比較ステップにおいて、上記第一グラフィックオブジェクトと上記第二グラフィックオブジェクトとの種類が一致しない場合、上記第一パーティションとは異なるパーティションである第二パーティションに上記第二グラフィックオブジェクトを分類し、上記第一グラフィックオブジェクトと上記第二グラフィックオブジェクトとの種類が一致する場合は、上記第一パーティションに第二グラフィックオブジェクトを分類する第二分類ステップと、を含むことを特徴とする。
【0041】
よって、本発明に係る印刷システムの制御方法は、効率よくグラフィックオブジェクトのレンダリングを行うことができるという効果を奏する。
【0042】
本発明に係る印刷システムは、上記した課題を解決するために、印刷データに関連づけられた、複数のグラフィックオブジェクトが連続するストリームデータであるグラフィックリストをレンダリングして描画出力可能なデータである印刷用画素値を作成する印刷システムであって、グラフィックオブジェクトをレンダリングするレンダリング装置と、上記グラフィックリストから第一グラフィックオブジェクトと、該第一グラフィックオブジェクトに続く、次のグラフィックオブジェクトである第二グラフィックオブジェクトとを取得する取得部と、一括してレンダリングするグラフィックオブジェクトの集合単位を規定するためのパーティションであって、上記第一グラフィックオブジェクトの種類に応じた第一パーティションに、上記第一グラフィックオブジェクトを分類する第一分類部と、上記第一グラフィックオブジェクトの種類と、上記第二グラフィックオブジェクトの種類とを比較する比較部と、上記比較部により、上記第一グラフィックオブジェクトと上記第二グラフィックオブジェクトとの種類が一致しない場合、上記第一パーティションとは異なるパーティションである第二パーティションに上記第二グラフィックオブジェクトを分類し、上記第一グラフィックオブジェクトと上記第二グラフィックオブジェクトとの種類が一致する場合は、上記第一パーティションに第二グラフィックオブジェクトを分類する第二分類部と、を備えることを特徴とする。
【0043】
よって、本発明に係る印刷システムの制御方法は、効率よくグラフィックオブジェクトのレンダリングを行うことができるという効果を奏する。
【図面の簡単な説明】
【0044】
【図1】本発明のいくつかの実施形態を示すものであり、印刷装置と通信可能に接続されたホストコンピューティングシステムを備える印刷システムの一例を示す図である。
【図2】本発明の実施形態を示すものであり、グラフィックリストを複数のパーティションに分割し、当該パーティションをレンダリングするステップを示すフローチャートである。
【図3】本発明の実施形態を示すものであり、同じグラフィックオブジェクトタイプとなる一連のグラフィックオブジェクトに基づき、グラフィックリストのパーティションを生成するステップを示すフローチャートである。
【図4】本発明の実施形態を示すものであり、複数のグラフィックオブジェクトを含むページ例を示す図である。
【図5】本発明の実施形態を示すものであり、複数のグラフィックオブジェクトを含むページ例を示す図である。
【図6a】本発明の実施形態を示すものであり、同じグラフィックオブジェクトタイプとなるグラフィックオブジェクトに基づきグラフィックリストの分割処理の実行を行う、本発明の実施例に従って、図4のページ例をレンダリングする処理を示す図である。
【図6b】本発明の実施形態を示すものであり、同じグラフィックオブジェクトタイプとなるグラフィックオブジェクトに基づきグラフィックリストの分割処理の実行を行う、本発明の実施例に従って、図4のページ例をレンダリングする処理を示す図である。
【図7a】本発明の実施形態を示すものであり、同じグラフィックオブジェクトタイプとなるグラフィックオブジェクトに基づきグラフィックリストの分割処理の実行を行う、本発明の実施例に従って、図5のページ例をレンダリングする処理を示す図である。
【図7b】本発明の実施形態を示すものであり、同じグラフィックオブジェクトタイプとなるグラフィックオブジェクトに基づきグラフィックリストの分割処理の実行を行う、本発明の実施例に従って、図5のページ例をレンダリングする処理を示す図である。
【図8】本発明の実施形態を示すものであり、グラフィックオブジェクトの重畳状態に基づいてグラフィックリストをパーティションに分割するステップを示すフローチャートである。
【図9】本発明の実施形態を示すものであり、グラフィックオブジェクトの重畳状態に基づいてグラフィックリストをパーティションに分割するステップを示すフローチャートである。
【図10a】本発明の実施形態を示すものであり、同じグラフィックオブジェクトタイプとなるグラフィックオブジェクトに基づきグラフィックリストの分割処理の実行を行う、本発明の実施例に従って、図4のページ例をレンダリングする処理を示す図である。
【図10b】本発明の実施形態を示すものであり、同じグラフィックオブジェクトタイプとなるグラフィックオブジェクトに基づきグラフィックリストの分割処理の実行を行う、本発明の実施例に従って、図4のページ例をレンダリングする処理を示す図である。
【図11】本発明の実施形態に係る一例を示すものであり、グラフィックリスト要素の、互いに分離された、重畳するグラフィックオブジェクト群への分割に基づいて、グラフィックリストをパーティションに分割する処理を示すフローチャートである。
【図12a】グラフィックリスト要素の、互いに分離された、重畳するグラフィックオブジェクト群への分割に基づいて、グラフィックリストをパーティションに分割する本発明の実施の形態によって、図4に示すページ例をレンダリングする処理を示す図である。
【図12b】グラフィックリスト要素の、互いに分離された、重畳するグラフィックオブジェクト群への分割に基づいて、グラフィックリストをパーティションに分割する本発明の実施の形態によって、図4に示すページ例をレンダリングする処理を示す図である。
【図13】本発明の実施形態を示すものであり、Z値に基づいてグラフィックリストをパーティションに分割するステップを示すフローチャートである。
【図14a】本発明の実施形態を示すものであり、Z値に基づいてグラフィックリストをパーティションに分割する、本発明の実施例に従って図4のページ例をレンダリングする処理を示す図である。
【図14b】本発明の実施形態を示すものであり、Z値に基づいてグラフィックリストをパーティションに分割する、本発明の実施例に従って図4のページ例をレンダリングする処理を示す図である。
【図15a】本発明の実施形態を示すものであり、グラフィックオブジェクトの一例と関連付けられたバウンディングボックスの一例を示す図である。
【図15b】本発明の実施形態を示すものであり、グラフィックオブジェクトの一例と関連するバウンディング形状を加算した例を示す図である。
【図15c】本発明の実施形態を示すものであり、グラフィックオブジェクトの一例と関連するバウンディング形状を減算する例を示す図である。
【図16a】本発明の実施形態を示すものであり、グリッドページを用いてグラフィックオブジェクトの重畳状態を判断するステップを示すフローチャートである。
【図16b】本発明の実施形態を示すものであり、グリッドページを用いてグラフィックオブジェクトの重畳状態を判断するステップを示すフローチャートである。
【図17】本発明の実施形態を示すものであり、バウンディングボックスとグリッド要素との一例を示す図である。
【図18a】本発明の実施形態を示すものであり、グリッドページを用いて「重畳」パーティションと「非重畳」パーティションを判断するステップを示すフローチャートである。
【図18b】本発明の実施形態を示すものであり、グリッドページを用いて「重畳」パーティションと「非重畳」パーティションを判断するステップを示すフローチャートである。
【図19a】本発明の実施形態を示すものであり、グリッドページを用いて、奥行き情報に基づいてパーティションを判断するステップを示すフローチャートである。
【図19b】本発明の実施形態を示すものであり、グリッドページを用いて、奥行き情報に基づいてパーティションを判断するステップを示すフローチャートである。
【図20】本発明のいくつかの実施形態で機能するマルチコアシステムの一例を示す図である。
【図21】本発明の実施形態を示すものであり、パーティションをレンダリング装置と関連付けるパーティション・レンダリング装置スケジューラを示す図である。
【図22】本発明の実施形態を示すものであり、カスケード式のパーティション分割の一例を示すフローチャートである。
【図23】本発明の実施形態を示すものであり、カスケード式のパーティション分割の一例を示すフローチャートである。
【図24】本発明の実施形態を示すものであり、本発明のいくつかの実施形態に従ってプリンタドライバでテキストパーティションをエンコードするステップを示すフローチャートである。
【図25】本発明の実施形態を示すものであり、本発明のいくつかの実施形態に従ってプリンタドライバでテキストパーティションをデコードするステップを示すフローチャートである。
【図26】本発明のいくつかの実施形態で機能する、印刷装置とプリンタサーバを介して通信可能に接続されたホストコンピューティングシステムからなる印刷システムの一例を示す図である。
【図27】本発明のいくつかの実施形態で機能する、クラウドコンピューティング環境の一部であり、印刷装置と通信可能に接続されたホストコンピューティングシステムを備えた印刷システムの一例を示す図である。
【図28】本発明のいくつかの実施形態で機能する、クラウドコンピューティング環境の一部であり、印刷装置と通信可能に接続されたホストコンピューティングシステムを備えた印刷システムの一例を示す図である。
【図29】本発明の実施形態を示すものであり、パーティションへの分割処理を示すフローチャートである。
【図30】本発明の実施形態を示すものであり、印刷データのデータ構造の一例を示す図である。
【発明を実施するための形態】
【0045】
本発明の、前述した目的、特徴、利点およびその他の目的、特徴、利点は、以下の発明の詳細な説明と添付の図面を参照することによってさらに理解され得る。
【0046】
また、本発明の実施の諸形態は、図面を参照することにより、よりよく理解されるであろう。すべての図面において、同じ部材には同じ番号が振られている。なお、この図面が以下の詳細な説明部分に含まれることは自明である。
【0047】
図面にて概して記述し、図示した本発明の構成部材がさまざまの異なった構成を取り得ることは、容易に理解できるであろう。したがって、本発明の方法およびシステムの実施の諸形態を以下により詳細に述べるが、それらは本発明の範囲を限定するものではなく、本実施の諸形態の代表例にすぎない。
【0048】
本発明の実施形態に係る構成部材は、少なくともハードウェア、ファームウェア、およびソフトウェアのうちのいずれか1つにより実現できる。本発明に係る実施形態ではこれらのうち一つを用いて説明されるが、当業者ならば、本発明の範囲において、これらのいずれであっても本発明の実施形態に係る構成部材を実現できる。
【0049】
ところで、印刷システムにおいて電子文書を処理するためには、印刷データを解釈し、レンダリングするためのコンピュータによる集約的作業が要求される。つまり、グラフィック(グラフィカルやグラフィクスでも同じ)オブジェクトのストリームを、ホストオペレーティングシステムのグラフィックインターフェースサービスから、グラフィックオブジェクトを解析するグラフィクスレンダリングサービスに送信し、オブジェクトベースの情報を印刷用画素値に変換する。なお、グラフィックオブジェクトから印刷用画素値を作成する処理のことを本明細書においてレンダリングと称するものとする。また、本実施の形態に係るグラフィックオブジェクトは、印刷ジョブから生成されるデータであって、描画出力可能なデータ(印刷用画素値)よりも抽象度が高い中間データである。グラフィックオブジェクトは、少なくとも1種類の基本図形を含む形式で表現される。なお、グラフィックオブジェクトのタイプ(種類)としては、例えば、テキストオブジェクト、ベクターオブジェクト、およびビットマップオブジェクトなどが挙げられる。
【0050】
また、本明細書においてグラフィックオブジェクトのストリームデータをグラフィックリストと称するものとする。グラフィックリストの例としては、表示リスト、DDI(Device Driver Interface;デバイスドライバーインターフェース)の呼び出しリスト、PDL(Page Description Language;ページ記述言語)要素のリスト、およびその他のグラフィックのリストが挙げられるが、これらに限定されるものではなく、グラフィックオブジェクトに関する様々なリストをグラフィックリストと称することができる。また、グラフィックリストはページと関連付けられていてもよいし、ページ群と関連付けられていてもよい。あるいは、グラフィックリストはグラフィックリストのパーティションと関連付けられていてもよい。なお、このパーティションとは、同じレンダリング装置により一括してレンダリングするグラフィックオブジェクトの集合単位を規定するものである。つまり、同じパーティションに分類されたグラフィックオブジェクトは同じレンダリング装置によりまとめてレンダリングされることとなる。また、本実施形態に係る印刷データは、例えば、図30に示すように、複数のグラフィックオブジェクトが連続するストリームデータ(グラフィックリスト)を含むデータ構造となっている。また、印刷データの先頭部分に配置された管理情報は、印刷データの内容を管理するための情報である。管理情報として、例えば、印刷データのデータ長、印刷対象のページを識別するページID、印刷データのフレーム構造等に関する情報が挙げられる。なお、グラフィックオブジェクトAとグラフィックオブジェクトBとは、グラフィックオブジェクトのタイプ(種類)が同じ場合もあるし、異なる場合もある。つまり、必ずしも同じタイプのグラフィックオブジェクトが連続するわけではない。
【0051】
印刷システムの一例においては、ホストコンピューティング・デバイスで実行されるアプリケーションは、このデバイスが備えるホストオペレーティングシステム(OS)機能を用いて、このデバイスと通信可能に接続されている印刷装置に対して、OSグラフィクスコマンドを繰り返し実行する。つまり、プリンタドライバがこのOSグラフィクスコマンドを解釈し、修正し、このOS機能を利用する印刷装置に送る。印刷装置はそのグラフィクス指示を解析し、追加処理を行い、作成された出力ページを印刷する。
【0052】
プリンタドライバは、OSコマンドを、印刷装置が理解できる形式で記述された指示ストリームに翻訳する。例えば、ある印刷システムでは、プリンタドライバがOSグラフィクスコマンドを印字ヘッドコマンドに翻訳する。これらの印刷システムは、ホストベースの印刷処理システムと見なすことができる。なお、ホストベースの印刷処理システムとは、印刷処理を、主としてホストコンピューティング・デバイスが行う印刷処理システムである。また、他の印刷処理システムとしては、プリンタドライバが「抄訳」を行い、OSグラフィクスコマンドとほぼ同じコマンドを生成する構成であってもよい。この印刷処理システムは、印刷装置ベースの印刷処理システムと見なすことができ、印刷処理を主として印刷装置で行う。ホストベースの印刷処理システムとも印刷装置ベースの印刷処理システムとも異なる印刷処理システムとしては、複合型印刷処理システムが挙げられる。この印刷処理システムでは、プリンタドライバが中間翻訳を行い、印刷処理をホストコンピューティング・デバイスと印刷装置との間で分散して行う。
【0053】
グラフィックオブジェクトは、テキストオブジェクト、ベクターオブジェクト、およびビットマップオブジェクトに分類されるものである。テキストオブジェクトは、文字列と、それに関連するテキスト属性とを含む。テキスト属性の例としては、フォント、サイズ、色、ボールド体やイタリック体のような修飾子などがある。ベクターオブジェクト(ビジネスグラフィックやグラフィカルアートとも称される)では、アウトラインまたは塗りつぶし値と関連づけて一定の形状を含んでいる。なお、一定の形状としては、例えば、線、矩形、円、多角形、またはその他の一定形状が挙げられる。ベクターオブジェクトと関連する属性の例としては、線種、線の太さ、線の色、塗りつぶし色、塗りつぶしパターン、およびベクターオブジェクトを記述するその他の属性がある。ビットマップオブジェクト(イメージオブジェクトやピクトリアルオブジェクトとも称される)は、高さ値、幅値、および連続する画素の明度を含む。ビットマップオブジェクトと関連する属性の例としては、大きさ、色、およびその他のイメージ属性がある。
【0054】
グラフィックオブジェクトは、関連する透明度のレベルを含んでいる。この透明度のレベルによって、当該グラフィックオブジェクトの下側に配置されるグラフィックオブジェクトの画素値と、当該グラフィックオブジェクトの画素値との混合を当該グラフィックオブジェクトのレンダリング時に調整する。混合動作には、画素値がRGB(赤・緑・青)色空間にあることが必要であり、このためCMYK(シアン・マゼンタ・黄色・黒)色空間にて混合オブジェクトを直接レンダリングすることが不可能となる。他の動作、たとえばラスタ動作(ROP)もまた、RGB色空間に限定される。
【0055】
従来の印刷システムでは、ホストプロセッサ、または印刷装置の内蔵プロセッサのどちらか一方のみを用いてレンダリング動作を行うため、プロセッサ固有の性能に依存した限界範囲に制限される。さらに、コンピュータが有するプロセッサが進化するにつれて、多くのホストコンピューティング・デバイスや印刷装置は、少なくともマルチコアプロセッサ、および専用プロセッサのいずれか1つを備えるようになっている。専用プロセッサの例としては、グラフィクスカード、デジタル信号プロセッサ(Digital Signal Processors;DSP)、グラフィクスASIC(Application Specific Integrated Circuits)などがある。マルチプロセッサおよび専用プロセッサは、印刷処理やレンダリングを行う際に有効に用いられていない。さらに、データを「順序通りに」レンダリングしてしまうという制限により、マルチプロセッサに処理を分散させるシステムが非効率となる。このため、印刷システムにおける処理リソースが有効に使われない。それゆえ、別々の処理ユニットに渡ってレンダリング動作を分散させ、グラフィックオブジェクトを「順不同で」レンダリングし、かつ複数のグラフィックオブジェクトを同時に並列してレンダリングすることができる方法およびシステムが望まれる。
【0056】
そこで、本実施の諸形態では、マルチプロセッサを利用する印刷システム環境においてリソースを有効に用いる方法とシステムとを提供する。図1を参照すると印刷処理システムの一例として、印刷処理システムは、ホストコンピューティング・デバイス10を備え、このホストコンピューティング・デバイス10はコミュニケーションリンク12を通じて印刷装置14と通信可能に接続されている。
【0057】
ホストコンピューティング・デバイス10の例としては、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ノートブックコンピュータ、パーソナルコンピュータ、携帯型コンピューティング・デバイス、ワークステーションコンピュータ、コンピュータサーバ、メインフレームコンピュータ、家庭用電化製品(デジタルカメラ、携帯情報端末(PDA)、自動車電話、携帯電話など)、および印刷ジョブデータを生成できるその他のコンピューティング・デバイスが挙げられるが、これらに限定されるものではない。
【0058】
ホストコンピューティング・デバイス10は、コミュニケーションリンク12を通じて印刷装置14と通信可能に接続されている。この通信リンクによる接続例としては、ローカルエリアネットワーク(LAN)接続、ワイドエリアネットワーク(WAN)接続、インターネット接続、公衆交換電話網(PSTN)、シリアルケーブルなどを使ったネットワーク接続、あるいはその他の有線または無線通信リンクによる接続が挙げられるが、これらに限られるものではない。
【0059】
印刷装置14の例としては、レーザープリンタ、インクジェットプリンタ、デジタルコピー機、ファクシミリ機、単機能画像装置、多機能周辺機器(MFP)画像装置、あるいは電子データを用いてハードコピーを生成できるその他の印刷装置が挙げられるが、それらに限られるものではない。
【0060】
図2を参照すると、本発明の他の実施形態では、複数のグラフィックリスト要素からなるグラフィックリストを受付け(ステップS20)、当該グラフィックリストと関連する複数のパーティション(層とも称する)を生成し(ステップS22)、これらのパーティションに分類されたグラフィックリスト要素をレンダリングして(ステップS24)、中間ビットマップ層をビットブリットし(ステップS26)、出力ページに関連する画素値を出力する(ステップS28)。本発明に係る実施形態では、グラフィックリスト要素にはグラフィックオブジェクトが含まれている。なお、ステップS26にてビットブリットするとは、二つまたはそれ以上のビットマップを合わせることをいう。また、このビットブリット動作例としては、read-modify-writeメモリ動作、メモリ書き込み動作、メモリコピー動作などが挙げられる。
【0061】
本発明のいくつかの実施形態では、各パーティションは他のパーティションから独立してレンダリングされている。また、本発明のいくつかの実施形態では、パーティションをさらに複数の副次パーティションに再分割することができる。また、本発明のいくつかの実施形態では、二つのパーティションを併合して、あるいは別の形で組み合わせ、一つのパーティションとすることができる。本発明のいくつかの実施形態では、パーティションを、パーティションのタイプ毎に適したプロセッサを用いてレンダリングすることができる。本発明のいくつかの実施形態では、専用のレンダリング装置を用いてパーティションをレンダリングする。本発明のいくつかの実施形態では、パーティションをレンダリングするプロセッサを、そのパーティションの複雑さに応じて選択してもよい。また、本発明のいくつかの実施形態では、パーティションをレンダリングするプロセッサを、そのパーティションに含まれるグラフィックオブジェクト数に応じて選択してもよい。また、本発明のいくつかの実施形態では、パーティションをレンダリングするプロセッサを、そのパーティション範囲のサイズに基づき選択してもよい。
【0062】
本発明のいくつかの実施形態の一例では、パーティションは、そのパーティションと関連付けられたグラフィックリスト要素を記録したコピーを個別に有している。また、他の実施形態の一例では、パーティションは、オリジナルのグラフィックリスト中に、そのパーティションに関連づけられたグラフィックリスト要素を示すポインタを含んでいてもよい。さらに他の実施形態の一例では、グラフィックリスト要素がどのパーティションに属するかについては、そのグラフィックリスト要素の参照テーブルにより示す構成としてもよい。さらに他の実施形態の一例では、パーティションは、オリジナルのグラフィックリスト中に基準ポインタを含み、その基準ポイントから当該パーティションに属するグラフィックリスト要素までのオフセットのリストを含むように構成してもよい。当業者ならばわかるように、パーティションを記憶したり、あるいは示したりする方法やシステムには、様々なものがある。
【0063】
(オブジェクトタイプ別にパーティション分割を実行する処理)
図2、3を参照し、本発明のいくつかの実施形態の一例について説明する。まず前提として、グラフィックリスト要素に関連付けられたグラフィックオブジェクトのタイプに応じて、ステップS22に示すように、グラフィックリストを分割し、複数のパーティションを生成するものとする。これらの実施形態では、まず、印刷データに関連づけられた、連続する複数のグラフィックリスト要素(グラフィックオブジェクト)を含むグラフィックリストを受け付け、グラフィックリストから第一グラフィックリスト要素を取得する(ステップS30)。そして、第一グラフィックリスト要素を第一パーティションに割り当てる(ステップS32)。そして、まだ割り当てられていないグラフィックリスト要素が残っているか判断する(ステップS34)。すべてのグラフィックリスト要素が各パーティションに割り当てられている場合(ステップS34において「NO」)、パーティションへの分割を終了する。もし、パーティションに割り当てられていないグラフィックリスト要素がある場合(ステップS34において「YES」)、第一グラフィックリスト要素に続く次のグラフィックリスト要素を取得する(ステップS38)。新たに取得した次のグラフィックリスト要素のオブジェクトタイプを、現行のグラフィックリスト要素のオブジェクトタイプと同じであるか比較する(ステップS40)。もし両者のオブジェクトタイプが同じならば(ステップS40において「YES」)、新たに取得した次のグラフィックリスト要素を現行のグラフィックリスト要素と同じパーティションに加える(ステップS42)。新たに取得した次のグラフィックリスト要素を、次の比較に用いる現行のグラフィックリスト要素とする(ステップS44)。そして、グラフィックリストを調べて、まだ割り当てられていないグラフィックリスト要素が残っているか判断する(ステップS34)。もし新たに取得した次のグラフィックリスト要素のオブジェクトタイプと現行のグラフィックリスト要素のオブジェクトタイプとが異なる場合(ステップS40において「NO」の場合)、現行のパーティションとして新たなパーティションを形成し(ステップS46)、新たに取得した次のグラフィックリスト要素をこの新たに形成したパーティションに加える(ステップS48)。新たに取得した次のグラフィックリスト要素を次の比較に用いる現行のグラフィックリスト要素とする(ステップS50)。そして、グラフィックリストを調べて、まだ割り当てられていないグラフィックリスト要素が残っているどうか判断する(ステップS34)。本発明ではこの実施形態を、「オブジェクトタイプ別にパーティション分割を実行する処理」を示す実施形態と称することとする。なお、新たに取得したグラフィックリスト要素の比較対象となる、このグラフィックリスト要素よりも前に取得したグラフィックリスト要素を現行のグラフィックリスト要素と称する。また、グラフィックリスト要素を割り当てる対象となっているパーティションを現行のパーティションと称する。
【0064】
以上のように本実施形態では、連続する、第一グラフィックリスト要素(第一グラフィックオブジェクト)と第二グラフィックリスト要素(第二グラフィックオブジェクト)とを取得することができる。そしてまず、第一グラフィックリスト要素を、その種類(オブジェクトタイプ)に応じて第一パーティションに分類する。また、第一グラフィックリスト要素の次に続くグラフィックリスト要素(第二グラフィックオブジェクト)がこの第一グラフィックリスト要素と同じオブジェクトタイプか否か判定することができる。そして、両者のオブジェクトタイプが異なる場合、第一パーティションとは異なる新たなパーティション(第二パーティション)を加える。そして、次に続くグラフィックリスト要素をこの新たなパーティションに分類することができる。一方、同じオブジェクトタイプの場合、次に続くグラフィックリスト要素を第一グラフィックリスト要素と同じ第一パーティションに分類することができる。
【0065】
このため、同じオブジェクトタイプのグラフィックリスト要素が連続する場合は、同じパーティションに分類し、それらを一括してレンダリングすることができる。一方、異なるオブジェクトタイプのグラフィックリスト要素が後続する場合は、第一パーティションとは異なる新たなパーティションにこの後続するグラフィックリスト要素を分類することができる。これにより、グラフィックリスト要素をある程度まとめてレンダリングすることができるとともに、適当に別のパーティションに分類させレンダリングを分散させることもできる。
【0066】
したがって、印刷データに含まれるグラフィックリスト要素の種類に偏りがある場合であっても、ある特定のレンダリング装置に処理が集中してしまうことを防ぐことができる。
【0067】
本発明のいくつかの実施形態では、グラフィックオブジェクトのタイプをレンダリング装置機能に関連付けることができる。また、本発明のいくつかの実施形態では、グラフィックオブジェクトのタイプを、レンダリング装置機能と同様の処理用件に対応したグラフィックオブジェクト属性と関連付けてもよい。第一の専用プロセッサで処理されるグラフィックオブジェクトは、第一のグラフィックオブジェクトタイプに属するグラフィックオブジェクトに分類される。一方、第二の専用プロセッサで処理されるグラフィックオブジェクトは、第二のグラフィックオブジェクトタイプに属するグラフィックオブジェクトに分類される。本発明のいくつかの実施形態では、「オブジェクトタイプ別にパーティション分割を実行する処理」において、テキストグラフィックオブジェクトであるのか、ベクターグラフィックオブジェクトであるのか、それともピクトリアルグラフィックオブジェクトであるにかに基づいて、グラフィックリストをパーティション分割する。なお、これらの実施形態では、グラフィックオブジェクトタイプは、テキスト、ベクター、およびピクトリアルとなる。本発明の他の実施形態では、「オブジェクトタイプ別にパーティション分割を実行する処理」において、カラーグラフィックオブジェクトであるのか、あるいは、白黒グラフィックオブジェクトであるのかに基づいて、グラフィックリストをパーティション分割する。これらの実施形態では、グラフィックオブジェクトタイプは、カラーと白黒となる。本発明のさらなる他の実施形態では、「オブジェクトタイプ別にパーティション分割を実行する処理」において、輪郭付きのグラフィックオブジェクトなのか、あるいは輪郭なしのグラフィックオブジェクトなのかに基づいて、グラフィックリストをパーティション分割する。これらの実施形態では、グラフィックオブジェクトタイプは、輪郭付きと輪郭なしとなる。本発明のさらなる他の実施形態では、「オブジェクトタイプ別にパーティション分割を実行する処理」において、三次元グラフィックオブジェクトなのか非三次元グラフィックオブジェクトなのかに基づいて、グラフィックリストをパーティション分割する。これらの実施形態では、グラフィックオブジェクトタイプは、三次元と非三次元となる。
【0068】
「オブジェクトタイプ別にパーティション分割を実行する処理」を示すいくつかの実施形態では、パーティションには次のような情報が対応付けられている。すなわち、パーティションと関連付けられているオブジェクトタイプ(例えば、テキスト、ベクター、ピクトリアルなどが挙げられるが、これらに限られるものではない)、レンダリングのシーケンスにおいてパーティションがレンダリングされる順番(レンダリング順情報)、パーティションをレンダリングするために使われるプロセッサのタイプまたは番号、パーティションにおいて実施される機能のリスト、パーティションに関連付けられたグラフィックリスト要素を含むパーティションボディなどである。
【0069】
「オブジェクトタイプ別にパーティション分割を実行する処理」を示す本発明のいくつかの実施形態では、パーティションを、該パーティションと関連付けられたグラフィックオブジェクトタイプに応じた専用のレンダリング装置でレンダリングする。例えば、テキストパーティションはテキストレンダリング装置でレンダリングされ、ベクターパーティションはグラフィカルアートレンダリング装置でレンダリングされ、ビットマップはピクトリアルレンダリング装置でレンダリングされる。また他の実施形態では、一以上のパーティションを、汎用レンダリング装置でレンダリングしてもよい。また、いくつかの実施形態では、レンダリング装置が利用可能かなど他の条件に基づいて、パーティションをレンダリング装置でレンダリングする。
【0070】
「オブジェクトタイプ別パーティション分割を実行する処理」を、図4のページ60を参照して説明する。ページ60には、ページ60に最初に配置された第一テキストグラフィックオブジェクト62、ページ60に二番目に配置された第一ベクターグラフィックオブジェクト64、ページ60に三番目に配置された第二テキストグラフィックオブジェクト66、ページ60に四番目に配置された第二ベクターグラフィックオブジェクト68、ページ60に五番目に配置された第一ビットマップグラフィックオブジェクト70、ページ60に六番目に配置された第三ベクターグラフィックオブジェクト72、ページ60に七番目に配置された第二ビットマップグラフィックオブジェクト74を含んでいる。このページ60に関連付けられたグラフィックリスト例は次のようになる;
1. DrawText (Text1, Text2, Text3, Text4, Text5) 62
2. DrawRectangle (red) 64
3. DrawText (Text6, Text7) 66
4. DrawEllipse (blue) 68
5. DrawPatch (pictorial_image_1) 70
6. DrawRectangle (green) 72
7. DrawPatch (pictorial_image_2) 74
上記において、「Text4」は「赤色の矩形」64に覆われている。それぞれの色は階調を異ならせることによって示される。画像70と画像74とは異なるハッチング−マークによって区別して描かれている。グラフィックリスト要素には、各要素毎の配置場所情報がさらに含まれている。このグラフィックリストの一例では、本発明の「オブジェクトタイプ別にパーティション分割を実行する処理」を示す実施形態によると、グラフィックリスト要素を含む、七つのパーティションに分割される。本発明のいくつかの実施形態では、各パーティションに関連付けられた情報の一例として、表1の例を挙げることができる。
【0071】
【表1】
【0072】
本発明のいくつかの実施形態によれば、第一のパーティションには、グラフィックリストのうち、第一のグラフィックリスト要素(第一グラフィックオブジェクト)、すなわち「DrawText (Text1, Text2, Text3, Text4, Text5)」が分類されている。そして、この第一のパーティションは、パーティションタイプとして、テキストタイプグラフィックオブジェクトと関連付けられている。次に第二のグラフィックリスト要素(第二グラフィックオブジェクト)「DrawRectangle (Red)」はテキストタイプグラフィックオブジェクトではないので、第二のグラフィックリスト要素を調べた際に第二のパーティションが作成される。第二のパーティションは、パーティションタイプとして、ベクタータイプグラフィックオブジェクトに関連付けられており、第二のグラフィックリスト要素が分類されている。第三のグラフィックリスト要素「DrawText(Text6, Text7)」を調べると、オブジェクトタイプがベクターからテキストに変わっているので、第三のパーティションが作られる。第三のパーティションは、パーティションタイプとして、テキストタイプグラフィックオブジェクトと関連付けられており、第三のグラフィックリスト要素が分類されている。第四のグラフィックリスト要素「DrawEllipse(blue)」を調べると、第四のグラフィックリスト要素がベクタータイプオブジェクトであり現行(第三)のパーティションがテキストオブジェクトに関連付けられているので、第四のパーティションが作られることになる。第四のパーティションはパーティションタイプとして、ベクタータイプグラフィックオブジェクトと関連付けられており、第四のグラフィックリスト要素が分離されている。第五のグラフィックリスト要素「DrawPatch(pictorial_image_1)」を調べると、第五のグラフィックリスト要素はビットマップタイプオブジェクトなので、第五のパーティションが作られる。第五のパーティションは、パーティションタイプとして、ビットマップオブジェクトに関連付けられており、第五のグラフィックリスト要素が分類されている。第六のグラフィックリスト要素「DrawRectangle(green)」を受け付けると、オブジェクトタイプがビットマップからベクターに変わっているので、新たなパーティションが必要となる。第六のパーティションは、パーティションタイプとして、ベクターオブジェクトに関連付けられており、第六のグラフィックリスト要素が分類されている。第七のグラフィックリスト要素「DrawPatch(pictorial_image_2)」を調べると、オブジェクトタイプがベクターからビットマップに変わっているので、第七のパーティションが作られる。第七のパーティションは、ビットマップタイプオブジェクトと関連付けられており、第七のグラフィックリスト要素を含んでいる。
【0073】
さらにまた「オブジェクトタイプ別パーティション分割を実行する処理」を、図5のページ80を参照しつつ説明する。ページ80には、ページ80に最初に配置された第一ベクターグラフィックオブジェクト82、ページ80に二番目に配置された第二ベクターグラフィックオブジェクト84、ページ80に三番目に配置された第一テキストグラフィックオブジェクト86、ページ80に四番目に配置された第三ベクターグラフィックオブジェクト88、ページ80に五番目に配置された第一ビットマップグラフィックオブジェクト90、ページ80に六番目に配置された第二ビットマップグラフィックオブジェクト92、ページ860に七番目に配置された第四ベクターグラフィックオブジェクト94を含んでいる。このページ80に関連付けられたグラフィックリスト例は次のようになる;
1. DrawEllipse (red) 82
2. DrawRectangle (red) 84
3. DrawText (Text6, Text7) 86
4. DrawEllipse (blue) 88
5. DrawPatch (pictorial_image_1) 90
6. DrawPatch (pictorial_image_2) 92
7. DrawRectangle (green) 94
上記において、それぞれの色は階調を異ならせることによって示される。画像92と画像94とは異なるハッチング−マークによって区別して描かれている。グラフィックリスト要素には、各要素毎にその配置場所情報がさらに含まれている。このグラフィックリストの一例では、五つのパーティションに分割される。本発明のいくつかの実施形態によれば、各パーティションに関連付けられた情報の一例として、表2の例を挙げることができる。
【0074】
【表2】
【0075】
本発明のいくつかの実施形態によれば、第一のパーティションには、どちらの要素もベクタータイプ要素である、第一のグラフィックリスト要素「DrawEllipse(red)」と第二のグラフィックリスト要素「DrawRectangle(red)」とが分類される。つまり、第一のパーティションは、パーティションタイプとして、ベクタータイプグラフィックオブジェクトと関連付けられている。次に、第三のグラフィックリスト要素「DrawText(Text6, Text7)」が調べられると、第三のグラフィックリスト要素はベクタータイプグラフィックオブジェクトではないので、第二のパーティションが作られる。第二のパーティションは、パーティションタイプとして、テキストタイプグラフィックオブジェクトと関連付けられており、第三のグラフィックリスト要素が分類される。次に、第四のグラフィックリスト要素「DrawEllipse(blue)」が調べられると、オブジェクトタイプがテキストからベクターへと変わっているので、第三のパーティションが作られる。第三のパーティションは、パーティションタイプとして、ベクタータイプグラフィックオブジェクトと関連付けられており、第四のグラフィックリスト要素が分類される。次に、第五のグラフィックリスト要素「DrawPatch(pictorial_image_1)」が調べられると、第五のグラフィックリスト要素はビットマップタイプオブジェクトであり現行のパーティション(第三のパーティション)はベクターオブジェクトと関連付けられているので、第四のパーティションが作られる。第四のパーティションは、パーティションタイプとして、ビットマップグラフィックオブジェクトと関連付けられており、第五のグラフィックリスト要素が分類されている。次に、第六のグラフィックリスト要素「DrawPatch(pictorial_image_2)」が調べられると、第四のパーティションと関連付けられたオブジェクトタイプと同じオブジェクトタイプであるため、第六のグラフィックリスト要素は現行のパーティション(第4のパーティション)に加えられる。このように、第四のパーティションにはさらに第六のグラフィックリスト要素が分類される。次に、第七のグラフィックリスト要素「DrawRectangle(green)」が調べられると、このグラフィックリスト要素はベクタータイプオブジェクトであり現行のパーティション(第4のパーティション)は、パーティションタイプとして、ビットマップタイプグラフィックオブジェクトと関連付けられているため、新たに第五のパーティションが作られる。第五のパーティションは、パーティションタイプとして、ベクターオブジェクトと関連付けられており、第七のグラフィックリスト要素が分類される。
【0076】
本発明の「オブジェクトタイプ別にパーティション分割を実行する処理」を示す実施形態にて、ステップS24に示す複数のパーティションのレンダリングは、複数のレンダリングプロセッサを利用して「同時」、すなわち並列して行ってもよいし、「順不同」で行ってもよい。また、いくつかの実施形態では、パーティションに分類されたグラフィックオブジェクトをレンダリングするプロセッサを、そのプロセッサと関連付けられているグラフィックオブジェクトタイプに応じて選択する。レンダリングされたパーティションのグラフィックオブジェクトは、ステップS26に示すように、順次ビットブリットされるが、その際に中間のビットブリットを並行して行うことができる。例えば、P1、P2、・・・ ・・・P6と名付けられた、六つのレンダリングされたパーティションに対して、P1、P2、P3、P4,P5、P6の順序で順次ビットブリットを行う。あるいは、P1とP2とを順次ビットブリットして、P1P2というビットブリットの中間結果を生成する。P3とP4とを順次ビットブリットして、P3P4というビットブリットの中間結果を生成する。P5とP6とを順次ビットブリットして、P5P6というビットブリットの中間結果を生成する。三つのビットブリット装置がこれらの中間結果を同時に生成し、これらの中間ビットブリット結果が、P1P2、P3P4、P5P6の順番で順次ビットブリットされる。あるいは、P1、P2、P3が順次ビットブリットされて中間ビットブリット結果P1P2P3を生成し、P4、P5、P6が順次ビットブリットされて中間ビットブリット結果であるP4P5P6を生成してもよい。そして、これらの中間結果を、P1P2P3,P4P5P6の順番で順次ビットブリットする。なお、順次ビットブリットするとは、隣接するパーティション同士で順番にビットブリットする場合も、中間ビットブリット結果同士で順番にビットブリットする場合も指す。したがって、本発明のいくつかの実施形態では、順次ビットブリットを、中間ビットブリットを同時に行うことによって実施する。
【0077】
図6a、図6b、図7a、図7bは、本発明のいくつかの実施形態に基づいて、図4、5にてそれぞれ示したページ60とページ80とに対して実行したレンダリング(ステップS24)とビットブリット(ステップS26)の例を示している。以下では、「オブジェクトタイプ別パーティション分割を実行する処理」を実行する印刷システムについて説明する。
【0078】
図4および図6a、図6bを参照すると、パーティション生成装置(取得部、第一分類部、第二分類部、比較部)100は、ページ60に関するグラフィックリストから、グラフィックリスト要素(第一グラフィックオブジェクト)と該グラフィックリスト要素に後続するグラフィックリスト要素(第二グラフィックオブジェクト)とを取得する。そして、パーティション生成装置100は、第一グラフィックオブジェクトのオブジェクトタイプに応じたパーティション(第一パーティション)に該第一グラフィックオブジェクトを分類する。次に第一グラフィックオブジェクトと第二グラフィックオブジェクトとにおいてオブジェクトタイプを比較する。パーティション生成装置100は、この比較において両者のオブジェクトタイプが一致しない場合、第一パーティションとは異なるパーティションであって、第二グラフィックオブジェクトのオブジェクトタイプに応じた第二パーティションに、該第二グラフィックオブジェクトを分類する。一方、両者のオブジェクトタイプが一致する場合、第一パーティションに第二グラフィックオブジェクトを分類する。この処理を繰り返してパーティション生成装置100は、複数のパーティション101−107(第一パーティション・第二パーティション)にグラフィックリスト要素(グラフィックオブジェクト)をそれぞれ分類する。図6aでは、パーティション101−107それぞれに関連するグラフィックオブジェクトについて図示している。各パーティション101−107は、パーティション101−107それぞれに関連するグラフィックオブジェクトタイプに適した専用のレンダリング装置(第一レンダリング部・第2レンダリング部)111−117によってレンダリングされる。パーティションのレンダリングは、プロセッサが利用可能か否かといった条件、あるいは、各パーティションに対応付けられているレンダリング順情報などに基づき、さまざまなレベルで並列処理される。パーティション101−107はレンダリングされると、図6bに示すように、レンダリング済バッファ120、あるいはその他のメモリに入力される。パーティション配置順序に基づいて、レンダリング済パーティション121−127は、ビットブリット装置(ビットブリット部)130によりそれぞれビットブリットされて、ページバッファ132、あるいはその他のメモリに入力される。なお、図6a、図6bにおいて、図6a中のアルファベット「A」から「G」それぞれは、図6b中のアルファベット「A」から「G」それぞれに対応しているものとする。なお、これ以降、スペースの関係で2図に分離した「図7a、図7b」、「図10a、図10b」、「図12a、図12b」、「図14a、図14b」、「図16a、図16b」、「図18a、図18b」、および「図19a、図19b」についても、図中のアルファベット「A」・・・は互いに対応するものとする。本発明のいくつかの実施形態では、すべてのパーティションがレンダリングされてからビットブリット装置130によるビットブリットが開始されてもよい。他の実施形態では、あるパーティションのビットブリットが始まるのは、そのパーティションがレンダリングされ、かつ配置順序においてそのパーティションよりも先行するすべてのパーティションがビットブリットされてからであってもよい。
【0079】
また、図5および図7a、図7bを参照すると、パーティション生成装置100は、ページ80に関するグラフィックリストから、複数のパーティション141−145を生成する。すなわち、パーティション生成装置100は、ページ80に関するグラフィックリストから、グラフィックリスト要素(第一グラフィックオブジェクト)と該グラフィックリスト要素に後続するグラフィックリスト要素(第二グラフィックオブジェクト)とを取得する。そして、パーティション生成装置100は、第一グラフィックオブジェクトのオブジェクトタイプに応じたパーティション(第一パーティション)に該第一グラフィックオブジェクトを分類する。次に第一グラフィックオブジェクトと第二グラフィックオブジェクトとにおいてオブジェクトタイプを比較する。パーティション生成装置100は、この比較において両者のオブジェクトタイプが一致しない場合、第一パーティションとは異なるパーティションであって、第二グラフィックオブジェクトのオブジェクトタイプに応じた第二パーティションに、該第二グラフィックオブジェクトを分類する。一方、両者のオブジェクトタイプが一致する場合、第一パーティションに第二グラフィックオブジェクトを分類する。この処理を繰り返してパーティション生成装置100は、複数のパーティション141−145にグラフィックリスト要素(グラフィックオブジェクト)をそれぞれ分類する。図7aに示すパーティション141−145を、それぞれに関連するグラフィックオブジェクトの絵を用いて示している。各パーティション141−145は、パーティション141−145それぞれに関連するグラフィックオブジェクトタイプに適した専用のレンダリング装置151−155でレンダリングされる。パーティションのレンダリングは、プロセッサが利用可能か否かといった条件あるいは、各パーティションに対応付けられているレンダリング順情報などに基づき、さまざまなレベルで並列処理される。パーティション141−145はレンダリングされると、図7bに示すようにレンダリング済バッファ120、あるいはその他のメモリに入力される。パーティション配置順序に基づいて、レンダリング済パーティション161−165は、ビットブリット装置(ビットブリット部)130によりそれぞれビットブリットされて、ページバッファ132あるいはその他のメモリに入力される。本発明のいくつかの実施形態では、すべてのパーティションがレンダリングされてからビットブリット装置130によるビットブリットが開始されてもよい。また、他の実施形態では、あるパーティションのビットブリットが始まるのは、そのパーティションがレンダリングされ、かつ配置順序においてそのパーティションに先行するすべてのパーティションがビットブリットされてからであってもよい。
【0080】
「オブジェクトタイプ別にパーティション分割を実行する処理」により、「並列処理」のレンダリングまたは「順不同の」レンダリングと、順次ビットブリットとが可能になる。本発明の他の実施形態では、「並列処理」のレンダリングまたは「順不同の」レンダリングと、「並列処理」のビットブリットまたは「順不同の」ビットブリットが行われてもよい。これらいくつかの実施形態では、グラフィックリストを二つのパーティションに分割する。一つ目は、「重畳」パーティションとも呼ばれる第一のパーティションで、ここに含まれるグラフィックリスト要素は、レンダリングされると他のグラフィックリスト要素に重なるか他のグラフィックリスト要素によって重ねられる。二つ目は、「非重畳」パーティションとも呼ばれる第二のパーティションで、ここに含まれるグラフィックリスト要素は、レンダリングされても、他のグラフィックリスト要素に重なったり他のグラフィックリスト要素によって重ねられたりすることがない。重畳という表現は、他のオブジェクトにより重ねられる場合と、他のオブジェクトに重ねる場合の双方の場合を指すのに用いるものとする。
【0081】
(重畳別にパーティション分割を実行する処理)
次に、他の実施形態を、図8を参照して説明する。まず、グラフィックリストを受け付けると(ステップS180)、二つのパーティションを生成する(ステップS182)。一つ目は「重畳」パーティションで、ここに含まれるグラフィックリスト要素は、レンダリングされると、他のグラフィックリスト要素と重なるか、他のグラフィックリスト要素によって重ねられる。二つ目は「非重畳」パーティションで、ここに含まれるグラフィックリスト要素は、レンダリングされても、他のグラフィックリスト要素と重なったり他のグラフィック要素リストに重ねられたりすることがない。また、各パーティション(「重畳」パーティションと「非重畳」パーティション)を、汎用レンダリング装置によってそれぞれレンダリングする(ステップS183、S184)。なお、ステップS183、184に示すレンダリングは、レンダリング装置が利用可能か否かといった条件などに応じて、並列処理される。次に、レンダリングされたデータをそれぞれビットブリットし(ステップS185、S186)、ページを印刷エンジンに出力して(ステップS188)、印刷が行われる。なお、レンダリングされたパーティションは、他のパーティションの処理とは無関係にビットブリットされる。本発明のこれらの実施形態を、「重畳別にパーティション分割を実行する処理」と称する。「重畳別にパーティション分割を実行する処理」に係る実施形態のいくつかでは、パーティションには以下のような情報を含まれていてもよい。すなわち、パーティションタイプ(たとえば、「重畳」または「非重畳」)、プロセッサのタイプまたは番号、パーティションにおいて実施される機能のリスト、パーティションに関連付けられたグラフィックリスト要素を含むパーティションボディなどである。
【0082】
「重畳別にパーティション分割を実行する処理」を含む本発明のいくつかの実施形態について、図9を参照しつつ説明する。まず前提として、グラフィックリスト要素が他のグラフィックリスト要素と重なる、あるいは他のグラフィックリスト要素により重ねられるかに応じて、ステップS182に示すように、グラフィックリストを分割し、複数のパーティションを生成しているものとする。グラフィックリストを受付けると(ステップS190)、パーティションに割り当てられていないグラフィックリスト要素が残っているかについて調べる(ステップS192)。割り当てられていないグラフィックリスト要素が残っていない場合(ステップS192おいて「NO」)、パーティションの分割を終了する。一方、割り当てられていないグラフィックリスト要素が残っている場合は(ステップS192において「YES」)、次のグラフィックリスト要素を取得する(ステップS196)。新たに取得した次のグラフィックリスト要素をすでに調べたグラフィックリスト要素と比較して、新たに取得した次のグラフィックリスト要素が、すでに調べたグラフィックリスト要素の少なくとも一つと重畳しているかについて判定する(ステップS198)。重畳していない場合(ステップS198において「NO」)、新たに取得した次のグラフィックリスト要素を「非重畳」パーティションに加える(ステップS200)。もし新たに取得した次のグラフィックリスト要素がすでに調べたグラフィックリスト要素の少なくとも一つと重畳する場合(ステップS198において「YES」)、新たに取得した次のグラフィックリスト要素を「重畳」パーティションに加える(ステップS202)。そして、ここで重ねられたグラフィックリスト要素が既に「重畳」パーティションに分類されているかについて判定する(S204)。重ねられた方のグラフィックリスト要素が、「非重畳」パーティションに分類されていた場合(ステップS204において「NO」)、そのグラフィックリスト要素を「非重畳」パーティションから「重畳」パーティションへと移動させる。すなわち、そのグラフィックリスト要素を「重畳」パーティションに追加し、「非重畳」パーティションから削除する(ステップS206)。そして、再度、ステップS192に戻って、割り当てられていないグラフィックリスト要素が残っていないかについて、グラフィックリストを調べる。一方、重ねられた方のグラフィックリスト要素がすでに「重畳」パーティションに分類されていた場合(ステップS207)、ステップS192に戻って、そのまま割り当てられていないグラフィックリスト要素が残っていないかについて、グラフィックリストを調べる。
【0083】
再度、図4のページ60を参照しつつ、「重畳別にパーティション分割を実行する処理」について説明する。まず、「重畳」パーティションには以下のグラフィックリスト要素が分離されているものとする;
1. DrawText (Text1, Text2, Text3, Text4, Text5) 62
2. DrawRectangle (red) 64
4. DrawEllipse (blue) 68
6. DrawRectangle (green) 72
7. DrawPatch (pictorial_image_2) 74
そして、「非重畳」パーティションには以下のグラフィックリスト要素が分類されているものとする。
【0084】
3. DrawText (Text6, Text7) 66
5. DrawPatch (pictorial_image_1) 70
図10a、図10bでは、「重畳別にパーティション分割を実行する処理」に係る本発明の実施形態に従ったページ60に対する処理例を示す。図10aに示すように、本実施形態では、二つのパーティション、すなわち「非重畳」パーティション221と「重畳」パーティション222とがパーティション生成装置220によって作られる。各パーティション221、222は汎用レンダリング装置223、224によってレンダリングされて、レンダリング済バッファ226、あるいは他のメモリに入力される。上述したレンダリングでは、レンダリング装置が利用可能か否かといった条件などに応じて、レンダリングを実行するレンダリング装置を選択し、並列処理する。レンダリングしたパーティション227、228をビットブリット装置229、230によってビットブリットして、ページバッファ232またはその他のメモリに入力する。図10bに示すように、ビットブリット装置229、230はレンダリング済の「重畳」パーティション228とレンダリング済の「非重畳」パーティション227とを並列処理する。ただし、「重畳」パーティション222に対するビットブリット装置230によるビットブリットは順次に行われる。
【0085】
また、本発明のいくつかの実施形態では、同色で不透明な複数のグラフィックオブジェクトが重畳する場合は、それらのグラフィックオブジェクトを「非重畳」パーティションに分類する構成とすることもできる。それらのグラフィックオブジェクトは、互いにどのような順番でレンダリングされてもかまわないからである。しかし、同色の複数のグラフィックオブジェクトのうち、第一オブジェクトが、異なる色の他のグラフィックオブジェクトと重畳する場合、「非重畳」とは見なさないで、当該第一オブジェクトと当該異なる色のグラフィックオブジェクトとを「重畳」パーティションに分類する。ただし、同色の複数のグラフィックオブジェクトのうち、異なる色の他のグラフィックオブジェクトと重ならないオブジェクトについては、「非重畳」パーティションに分類されたままとする。
【0086】
(分離・重畳別にパーティション分割を実行する処理)
また、他の実施形態では、「重畳」パーティションを複数の副次パーティションにさらに再分割する構成としてもよい。各副次パーティションに置かれるグラフィックオブジェクト(グラフィックリスト要素)同士は、印刷ページにおいて互いが空間的に分離している。なお、互いが空間的に分離された重畳するグラフィックリスト要素群とは、各グラフィックリスト要素が重畳しているグラフィックリスト要素群であって、他のグラフィックリスト要素群とは印刷レイアウトにおいて重なり合わない、すなわち重畳しないものを意味する。また、この実施形態を、「分離・重畳別にパーティション分割を実行する処理」と称する。図11を参照すると、この実施形態のいくつかでは、グラフィックリストを受け付け(ステップS240)、当該グラフィックリストから複数のパーティションを生成する(ステップS242)。これらのパーティションには、他のいかなるグラフィックリスト要素(グラフィックオブジェクト)とも重ならず、または重ねられることのないグラフィックリスト要素すべてが分類される第一のパーティションを含む。この第一のパーティションを「非重畳」パーティションと称する。また、重畳するグラフィックリスト要素が分類される複数のパーティションも生成される。これらのパーティションを「重畳」パーティションと呼ぶ。各「重畳」パーティションには重畳し合うグラフィックリスト要素群が分類されている。つまり、各「重畳」パーティションには、重畳し合うグラフィックリスト要素からなるグループであって、印刷ページにおいて互いに空間的に分離するグループがそれぞれ分類される。まず、「非重畳」パーティションと、印刷ページにおいて互いに空間的に分離するグラフィックリスト要素群がそれぞれ分類された複数の「重畳」パーティションとをそれぞれレンダリングする(ステップS244、S246、S248、・・・S250)。パーティションのレンダリング(ステップS244、S246、S248、・・・S250)は、レンダリング装置が利用可能か否かといった条件などに応じて、「並列処理」または「順不同で」処理される。また、互いに分離している、他の「重畳」パーティションのグラフィックリスト要素と「重畳」パーティションのグラフィックリスト要素とのレンダリングは順次行われる。レンダリングしたパーティションそれぞれをビットブリットし(ステップS252、S254、S256、・・・S258)、レンダリングしたページを出力する(ステップS260)。レンダリングしたパーティションのビットブリット(ステップS252、S254、S256、・・・S258)は、関連するパーティション同士が空間的に重畳していないので、「並列処理」してもよいし「順不同で」処理してもよい。一方、レンダリングした、パーティションに含まれるグラフィックリスト要素が他の「重畳」パーティションの要素と互いに分離している「重畳」パーティションでのビットブリットは順次行われる。つまり、一般的なレンダリング装置を備えるプリンタに合わせて送信されるプリンタデータは、後から送信されるグラフィックリスト要素が、既にレンダリングされたグラフィックリスト要素を上書きしても問題がないように作成されている。このため、「重畳」パーティションでは、グラフィックリスト要素を順次レンダリングし、ビットブリットすれば所望するビットマップのページ画像を取得することができる。
【0087】
ここで図12a、図12bを参照して、「分離・重畳別にパーティション分割を実行する処理」に係る本発明の実施形態に従って図4のページ60を処理した例を説明する。図12aに示すように、この実施形態に係る例では、三つのパーティション、すなわち「非重畳」パーティション271と、印刷ページにおいて互いに分離した二つの「重畳」パーティション272と273とが、パーティション生成装置270によって生成される。各パーティション271、272、273を汎用レンダリング装置274、275、276によってレンダリングして、それぞれレンダリング済バッファ278、または他のメモリに入力する。パーティションのレンダリングは、汎用レンダリング装置274、275、276が利用可能か否かといった条件などに応じて、「並列処理」してもよいし、あるいは「順不同で」処理してもよい。図12bに示すように、レンダリングされたパーティション279、280、281を、ビットブリット装置282、283、284がビットブリットして、ページバッファ286またはその他のメモリに入力する。なお、ビットブリット装置282、283、284によるページへのビットブリットは「並列処理」により行われてもよいし、あるいは「順不同で」処理される構成であってもよい。
【0088】
(Z値別にパーティション分割を実行する処理)
図13を参照して本発明の他の実施形態について説明する。この本発明の他の実施形態では、グラフィックオブジェクトのZ値(z-depth)すなわち、奥行き情報に基づいて、グラフィックリストをパーティションに分割する。なお、この実施形態を、「Z値別にパーティション分割を実行する処理」と称する。まず、グラフィックリストを受付け(ステップS290)、グラフィックリスト要素のZ値に応じてパーティションを生成する(ステップS292)。なお、同一パーティションに属するグラフィックリスト要素それぞれは、同じZ値を持つ。また、他の実施形態では、連続するZ値の範囲とパーティションとを関連付けており、パーティションは関連付けられた範囲内にあるZ値のグラフィックリスト要素を含む構成としてもよい。さらに他の実施形態では、二以上の、非連続となるZ値それぞれを、各パーティションに関連付ける構成としてもよい。各パーティション(第一のZ値パーティション、第二のZ値パーティション、第三のZ値パーティション、・・・第nのZ値パーティション)をレンダリングして(ステップS294、S295、S296、・・・S297)、レンダリング済バッファ、またはその他のメモリに入力する(ステップS298)。そして、レンダリングした各パーティションをZ値またはZ値範囲順に順次ビットブリットする(ステップS300、S301、S302、S303)。例えば、いくつかの実施形態では、Z値の値が0のグラフィックオブジェクトが分類されたレンダリング済パーティションを最初にビットブリットする(ステップS300)。次に、Z値の値が1のグラフィックオブジェクトが分類されたレンダリング済パーティションをビットブリットし(ステップS301)、レンダリング済パーティションをすべてビットブリットするまで、同様のビットブリットが続けられる。例えば、図13に示すようにステップS300、S301、S302、・・・S303と順次レンダリング済パーティションがビットブリットされる。また、他の実施形態では、順次行われるビットブリットにおいて、中間ビットブリットを並列して行う構成(図示せず)としてもよい。このようにビットブリッドして、レンダリングしたページを出力する(ステップS304)。
【0089】
次に図14a、図14bを参照して、「Z値別にパーティション分割を実行する処理」に係る本発明の実施形態に従って図4のページ60を処理した例を説明する。この処理例では、まず、図14aに示すように、パーティション生成装置310が、各グラフィックオブジェクトについてのZ値(奥行き情報)を判定する。ここで、各グラフィックオブジェクトについて、Z値が0、1、2となる3つのグループに分類できるものとする。パーティション生成装置310は、このZ値0、1、2それぞれの値に基づき、それぞれを対応付けた三つのパーティション311、312、313を生成し、生成したパーティションそれぞれにグラフィックオブジェクトを分類する。そして、各パーティション311、312、313それぞれを汎用レンダリング装置(レンダリング部)314、315、316がレンダリングし、図14bに示すように、レンダリング済バッファ318またはその他のメモリに入力する。汎用レンダリング装置314、315、316によるパーティションのレンダリングは、この汎用レンダリング装置314、315、316が利用可能か否かといった条件などに応じて、「並列処理」により処理されてもよいし、「順不同で」処理されてもよい。あるいは、グラフィックオブジェクトのレンダリングを行うレンダリング装置をパーティションごとに対応付けている構成であってもよい。このようにパーティションごとにレンダリング装置を対応付ける構成の場合、パーティションとレンダリング装置との対応付けは、パーティション生成装置310によって以下のように実行される。すなわち、まず、パーティション生成装置310は、グラフィックリストを受付ける際に、利用可能なレンダリング装置のリストと、例えば、レンダリング装置の配置場所、状態、タイプ、平均処理量、最大処理速度、およびその他のレンダリング装置の属性や情報などを含むレンダリング装置情報とを受付ける。そして、このレンダリング装置情報を参照して、パーティションごとに対応付けるレンダリング装置を決定する。次に、レンダリング済パーティション(レンダリング済Z値0のパーティション319、レンダリング済Z値1のパーティション320、レンダリング済Z値2のパーティション321)を、ビットブリット装置(ビットブリット部)322が、Z値別に順次ビットブリットし、ページバッファ324またはその他のメモリに入力する。なお、上記したレンダリング済Z値が0のパーティション319、レンダリング済Z値が1のパーティション320、レンダリング済Z値が2のパーティション321とは、Z値が0のグラフィックオブジェクトを分類したパーティション、Z値が1のグラフィックオブジェクトを分類したパーティション、Z値が2のグラフィックオブジェクトを分類したパーティションそれぞれを汎用レンダリング装置314、315、316によりレンダリングしたものである。
【0090】
なお、上述したように、本実施形態では、パーティションをさらに複数の副次パーティションに再分割することができる。例えば、「Z値別にパーティション分割を実行する処理」において、さらなる副次パーティションへの再分割は、グラフィックオブジェクトのタイプに基づいて行う構成としてもよい。なお、Z値に基づいてグラフィックリストのパーティションへの分割後に、さらに各グラフィックオブジェクトのタイプに基づき副次パーティションへ再分割する場合、この再分割の処理は、「オブジェクトタイプ別にパーティション分割を実行する処理」と同様の処理を行う。
【0091】
本発明のいくつかの実施形態において、グラフィックリストのパーティションへの分割(たとえば、「オブジェクトタイプ別にパーティション分割を実行する処理」、「重畳別にパーティション分割を実行する処理」、「分離・重畳別にパーティション分割を実行する処理」、「Z値別にパーティション分割を実行する処理」)では、二以上のグラフィックリスト要素間における重畳状態を判断する必要がある。本発明のいくつかの実施形態では、グラフィックリスト要素は、バウンディングボックス(Bounding Box)やバウンディング形状(Bounding Shape)と関連付けられている。バウンディングボックスあるいはバウンディング形状により、レンダリング済のページにおいて、空間領域内にレンダリング済グラフィックリスト要素に対応する境界線を引く。本発明のいくつかの実施形態では、複数のバウンディング形状が一つのグラフィックリスト要素と関連付けられている。図15aに、円330と関連したバウンディングボックス332の一例を示す。図15bには、円330と、複数の関連するバウンディング形状333−337の例を示す。この例では、レンダリングされた円330と、関連した複数のバウンディング形状333−337に対応するレンダリング済みの複数領域の総和とが関連付けられている。図15cには、円330と関連するバウンディングボックス332と、複数のバウンディング形状338−341とを組み合わせた例を示す。この例において、レンダリング済みの円330は、バウンディングボックス332と、バウンディング形状338−341と減法的な関係により関連付けられている。すなわち、レンダリングされた円330によって占められる空間領域は、正方形のバウンディングボックス332から三角形の領域(バウンディング形状338−341)を引いて得られる領域と近似する。
【0092】
本発明のいくつかの実施形態では、二つのグラフィックリスト要素それぞれの近似したバウンディング形状が重なり合う場合、それら二つのグラフィックリスト要素は重畳していると見なすことができる。本発明のいくつかの実施形態では、関連する複数のバウンディング形状同士を直接比較する。すなわち、この実施形態では、これらバウンディング形状同士を解析して比較して、重畳状態を判断する。
【0093】
また、他の実施形態では、ページグリッドを用いてグラフィックリスト要素の重畳を判断してもよい。図16a、図16bを参照してページグリッドを用いてグラフィックリスト要素の重畳を判断する処理について説明する。本発明の他の実施形態では、ページを複数のグリッド要素に分割し(ステップS350)、初期化して各グリッド要素を「空」にする(ステップS351)(「空」とは、グリッド要素に対応する空間領域を占有するグラフィックオブジェクトが無いことを示す)。そして、次に、グリッド要素を用いて重畳するグラフィックリスト要素があるかどうかを判断する。まず、各グラフィックリスト要素に関連付けられた重畳リストを初期化して「なし」にする(ステップS352)(「なし」とは、グラフィックリスト要素が他のグラフィックリスト要素と重なったり、他のグラフィックリスト要素によって重ねられたりしていないことを示す)。そして、グラフィックリスト要素間における重畳について、各グラフィックリスト要素を調べる。グラフィックリスト要素それぞれを調べて、まだ調べられていないグラフィックリスト要素が残っているかについて判断する(ステップS354)。すべてのグラフィックリスト要素について重畳状態を調べている場合(ステップS354において「NO」)、重畳判断処理を終了する。一方、重畳状態をまだ調べていないグラフィックリスト要素が残っている場合(ステップS354において「YES」)、次のグラフィックリスト要素と関連するバウンディング形状を取得する(ステップS358)。そして、取得したバウンディング形状をページグリッドに配置する(ステップS360)。そして、バウンディング形状が重なるグリッド要素が存在するかそれぞれ調べ、バウンディング形状が重なるグリッド要素が残っていないか判定する(ステップS362)。ここで、調べる必要のある、バウンディング形状が重なるグリッド要素が残っていない場合(ステップS362において「NO」)、ステップS354に戻って、まだ調べていないグラフィックリスト要素があるかについて、グラフィックリストをさらに調べる。一方、調べる必要のある重畳するグリッド要素が残っている場合(ステップS362において「YES」)であって、現行のグリッド要素に「空」が関連付けられているとき(図16bに示すステップS366において「YES」)、グリッド要素の関連性を「空」から「占有」へと変え、このグリッド要素「占有」をマークする(ステップS368)、そして、ステップS376に進み、グラフィックリスト要素とグリッド要素とを関連付ける。一方、現行のグリッド要素に「空」が関連付けられていない場合は(ステップS366において「NO」)、グリッド要素の関連性を調べて、このグリッド要素が「占有」と関連付けられているかについて判断する(ステップS370)。ここで、グリッド要素が「占有」と関連付けられていない場合(ステップS370において「NO」)、グリッド要素がすでに二以上のグラフィックリスト要素と重なっていることとなる。このため、グリッド要素と重畳するグラフィックリスト要素それぞれとの対応関係を示す重畳リストを更新する(ステップS372)。そして、重畳リストにおけるこれらグラフィックリスト要素と、今調べられたグラフィックリスト要素との重畳状態を示すとともに、今調べられたグラフィックリスト要素とグリッド要素との対応関係を示す。一方、グリッド要素が「占有」と関連付けられている場合(ステップS370において「YES」)、グリッド要素の関連性を「重畳」へと変え、このグリッド要素に「重畳」をマークする(ステップS374)。なお、この「重畳」状態は、このグリッド要素において、二つのグラフィックリスト要素が重なっていることを示している。グラフィックリスト要素が関連付けられた重畳リストを更新すると(ステップS372)、今調べられたグラフィックリスト要素を、グリッド要素と関連付ける(ステップS376)。そして、図16aに示すステップS362に戻り、すべてのグリッド要素について調べたか判定し(ステップ362)、ステップS362において「NO」の場合になると、ステップS354に戻り、グラフィックリストにおいて、調べられていないグラフィックリスト要素が残っているかについて判定する(ステップS354)。そして、すべてのグラフィックリスト要素について調べられると(ステップ354において「NO」)、処理を終了する。
【0094】
ページグリッドを用いてグラフィックリスト要素の重畳を判断する、この実施形態は、図17に示すページグリッド例390を参照することでさらによりよく理解できるであろう。図17では、6つのグラフィックオブジェクト(オブジェクト1から6)と、それぞれ名付けた6つのグラフィックオブジェクト用のバウンディングボックス391−396を示す。説明の便宜上、バウンディングボックス391−396を示すページグリッドとは別に、ラベル付した6×6のグリッド要素401−436を含むページグリッド390を示す。まず、すべてのグリッド要素401−436に、「空」状態に関連するラベルが付される。表3では、グラフィックリスト要素一つ一つを調べた後における各グリッド要素401−436の状態を示す。また、グラフィックリスト要素を加えた際に調べたグリッド要素を、表中、灰色で示す。また、表4では、グラフィックリスト要素一つ一つを調べた後における各グリッド要素401−436と関連するオブジェクトを示す。また、グラフィックリスト要素を加えた際に調べたグリッド要素を、表中、灰色で示す。表5では、グラフィックリスト要素一つ一つを調べた後における各グラフィックリスト要素と関連する重畳リストを示す。
【0095】
まず、オブジェクト1と関連する第一グラフィックリスト要素のバウンディングボックス(第一バウンディングボックス)391を、ページグリッド390上に配置する。そして、第一バウンディングボックス391が配置されているグリッド要素401−418を調べる。そして、これらグリッド要素401−418に付されたラベルを「空」から「占有」に変え、オブジェクト1をこれらのグリッド要素401−418と関連付ける。
【0096】
次に、オブジェクト2と関連する第二グラフィックリスト要素のバウンディングボックス(第二バウンディングボックス)392を、ページグリッド390上に配置する。そして、第二バウンディングボックス392が配置されているグリッド要素404−406、410−412、416−418を調べる。そして、これらのグリッド要素404−406、410−412、416−418に付されたラベルを「占有」から「重畳」へと更新し、オブジェクト2をこれらのグリッド要素404−406、410−412、416−418と関連付ける。さらに、オブジェクト1とオブジェクト2との重畳リストを更新して、これらのオブジェクトが重畳していることを反映させる。
【0097】
さらに、オブジェクト3と関連する第三グラフィックリスト要素のバウンディングボックス(第三バウンディングボックス)393を、ページグリッド390上に配置する。そして、第三バウンディングボックス393が配置されているグリッド要素409−412、415−418を調べる。そして、既に「占有」と印付けられているグリッド要素409、415のラベルを「重畳」へと変え、オブジェクト3を、第三バウンディングボックス393が重なっているグリッド要素409−412、415−418と関連付ける。さらに、オブジェクト1、オブジェクト2、およびオブジェクト3の重畳リストを更新し、これらのオブジェクトの重畳状態を反映させる。
【0098】
オブジェクト4と関連する第四グラフィックリスト要素のバウンディングボックス(第四バウンディングボックス)394を、ページグリッド390上に配置する。そして、第四バウンディングボックス394が配置されているグリッド要素424、430を調べる。そして、既に「空」と印付けられているグリッド要素424、430のラベルを「占有」へと変え、オブジェクト4をこれらのグリッド要素と関連付ける。
【0099】
オブジェクト5と関連する第五グラフィックリスト要素のバウンディングボックス(第五バウンディングボックス)395を、ページグリッド390上に配置する。第五バウンディングボックス395が配置されているグリッド要素421−423、427−429を調べる。そして、既に「空」と印付けられているグリッド要素421−423、427−429のラベルを「占有」へと変え、オブジェクト5をこれらのグリッド要素と関連付ける。
【0100】
オブジェクト6と関連する第六グラフィックリスト要素のバウンディングボックス(第六バウンディングボックス)396を、ページグリッド390上に配置する。第六バウンディングボックス396が配置されているグリッド要素426−428、432−434を調べる。そして、既に「占有」と印付けられているグリッド要素427、428のラベルを「重畳」へと変え、また既に「空」と印付けられているグリッド要素426、432−434のラベルを「占有」へと変える。そして、オブジェクト6をこれらのグリッド要素426−428、432−434のすべてと関連付け、オブジェクト5とオブジェクト6との重畳リストを更新して、これらのオブジェクトが重なっていることを反映させる。
【0101】
また、本発明に係る他の実施形態では、オブジェクトの配置毎に重畳リストの保守を行う構成でなくてもよい。すなわち、オブジェクトの重畳については、すべてのオブジェクトを配置した後、オブジェクトとグリッド要素との関連性を解析することにより判断することができる。
【0102】
また、本発明に係る他の実施形態では、重畳の判断を逐次修正していく構成であってもよい。この実施形態では、複数のオブジェクトを含むグリッド要素を、グリッドサイズを順次微細にしながら調べる。例えば実施形態の一例としては、最初のページグリッドには八つのグリッド要素が含まれており、各グリッド要素について重畳の判断を繰り返す毎に、複数のオブジェクトを含むグリッド要素を、さらに四つのグリッド要素へと再分割する。このようにして、重畳しているかについての判断を、グリッドサイズを順次細かくして行っていく。また、本発明のいくつかの実施形態では、個々の画素グリッド要素を含んだページグリッドを用いてもよい。この実施形態では、グラフィックリスト要素と関連付けられた二値マスクをレンダリングするステップを含む。
【0103】
(重畳別にパーティション分割を実行する処理の実施例)
次に、図18a、図18bを参照して本発明に係る「重畳別にパーティション分割を実行する処理」の実施例について説明する。この実施例では、グリッド要素ラベルを「占有」から「重畳」へと変化させ、グラフィックリスト要素と関連するバウンディング形状が「重畳」ラベルの付いたグリッド要素と重なる場合、そのグラフィックリスト要素を「重畳」パーティションに関連付ける。この実施例では、まず、ページを複数のグリッド要素に分割する(ステップS450)。そして各グリッド要素を、まず、「空」ラベルと関連付け、初期化する(ステップS451)。すなわち、初期状態では、「非重畳」パーティションに、グラフィックリスト内のすべてのグラフィックリスト要素を分類する(ステップS452)。グラフィックリストを調べて、まだ調べられていないグラフィックリスト要素が残っているかについて判断する(ステップS454)。ここで、すべてのグラフィックリスト要素について調べた場合(ステップS454において「NO」)、パーティション分割処理を終了する。一方、まだ調べていないグラフィックリスト要素が残っている場合(ステップS454において「YES」)、次のグラフィックリスト要素のバウンディング形状を取得し(ステップS458)、このバウンディング形状をページグリッド上に配置する(ステップS460)。そして、このバウンディング形状と重なり合うグリッド要素一つ一つを調べる。そして、調べるべきバウンディング形状と重なり合うグリッド要素が残っているかについて判断する(ステップS462)。ここで、調べる必要のあるバウンディング形状と重なり合うグリッド要素が無い場合(ステップS462において「NO」)、ステップS454に戻って、まだ調べていないグラフィックリスト要素の有無についてグラフィックリストを調べる。ここで、調べる必要のあるバウンディング形状と重なり合うグリッド要素がある場合(ステップS462において「YES」)であって、かつ現行のバウンディング形状のグリッド要素が「空」に関連付けられているとき(図18bに示すステップS466において「YES」)、バウンディング形状とグリッド要素との関連性を「空」から「占有」へと変え、グリッド要素に「占有」をマークする(ステップS468)。そして、現在、調べたグラフィックリスト要素を、現在、調べたグリッド要素に関連付ける(ステップS470)。そして、図18aに示すステップS462に戻って、バウンディング形状と重なり合うグリッド要素を調べ、調べるべきバウンディング形状と重なり合うグリッド要素が残っているかについて判断する。一方、ステップS466において、現行のバウンディング形状のグリッド要素に「空」とラベル付けされていない場合(ステップS466において「NO」)、そのラベルを「占有」と関連付けられているラベル値と比較する。そして、現行のバウンディング形状のグリッド要素に「占有」が関連づけられているか判断する(ステップS472)。Bounding Shapeのグリッド要素に「占有」が関連付けられていない場合(ステップS472において「NO」)、このグリッド要素はすでに、重畳する複数のオブジェクトと関連付けられたグリッド要素である。このため、現行のグラフィックリスト要素を「重畳」パーティションと関連付ける。つまり、現行のグラフィックリスト要素を「重畳」パーティションへ移動させる(ステップS474)。一方、グリッド要素に「占有」がマークされている場合、すなわち、現行のバウンディング形状のグリッド要素に「占有」が関連づけられている場合(ステップS472において「YES」)、このグリッド要素のラベルを「重畳」に変え、グリッド要素に「重畳」をマークし(ステップS476)、このグリッド要素と関連付けられたグラフィックリスト要素を、「重畳」パーティションと関連付ける(ステップS478)。また、現行のグラフィックリスト要素を「重畳」パーティションと関連付ける。すなわち、現行のグラフィックリスト要素を「重畳」パーティションへ移動させる(ステップS474)。そして、図18aに示すステップS462に戻り、調べるべきバウンディング形状と重なり合うグリッド要素が残っているかについて判断する。
【0104】
なお、「分離・重畳別にパーティション分割を実行する処理」に係る実施形態の場合では、「重畳」ラベルを含むグリッド要素を解析して、重畳するグラフィクスオブジェクトのうち、互いに空間的に分離しているものから構成される複数のグループを探索する。いくつかの実施形態では、グリッド要素の解析として、連結成分分析を含んでもよい。
【0105】
(Z値別にパーティション分割を実行する処理の実施例)
「Z値別にパーティション分割を実行する処理」に係る本発明のいくつかの実施形態では、グリッド要素と、グラフィックリスト要素のバウンディング形状の近似とを用いて、グラフィックリストをパーティションに分割していた。ここで、図19a、図19bを参照して、Z値別にパーティション分割を実行する処理の実施例について説明する。図19a、図19bに示す実施例では、まず、図19aに示すように、ページを複数のグリッド要素に分割する(ステップS500)。初期状態では、グリッド要素を、「空」ラベルと関連付ける。すなわち、初期化してグリッド要素ラベルを「空」にする(ステップS551)。なお、「空」ラベルは、グラフィックリスト要素と関連付けられているバウンディング形状の中でグリッド要素に重なられているものが無い状態を示す。次に、初期化してグリッド要素のZ値を「0」にする(ステップS552)。そして、グラフィックリスト要素すべてを、Z値「0」と関連付けたパーティションに分類する(ステップS553)。グラフィックリストにおいて、まだバウンディング形状内のグリッド要素のZ値を調べていないグラフィックリスト要素が残っているか判断する(ステップS554)。ここで、すべてのグラフィックリスト要素に関してグリッド要素のZ値を調べている場合(ステップS554において「NO」)、パーティション分割処理を終了する。まだ調べていないグラフィックリスト要素が残っている場合(ステップS554において「YES」)、次のグラフィックリスト要素のバウンディング形状を取得し(ステップS558)、このグラフィックリスト要素のバウンディング形状をページグリッドに配置する(ステップS560)。そして、次にバウンディング形状におけるグリッド要素のZ値の最大値を判定する。すなわち、バウンディング形状内にある複数のグリッド要素の各Z値のうちから最大値となるZ値を判定する。(ステップS562)。そして、この最大値が「0」である場合(ステップS564において「YES」)、バウンディング形状のグリッド要素に「占有」がマークされているかどうか判断するためのテストを行う。すなわち、いかなるバウンディング形状内のグリッド要素も「占有」とマークされているか判定する(図19bに示すステップS568)。いかなるバウンディング形状内のグリッド要素にも「占有」がマークされていない場合(ステップS568において「NO」)、バウンディング形状のすべてのグリッド要素に「占有」をマークする(ステップS574)。そして、図19aに示すステップS554に戻って、グラフィックリストを調べて、まだ調べられていないグラフィックリスト要素が残っているかどうか判断する。一方、ステップS568において、バウンディング形状の全てのグリッド要素に「占有」がマークされている場合(ステップS568において「YES」)、バウンディング形状の各グリッド要素のZ値に1を足す(ステップS570)。そして、グラフィックリスト要素を、バウンディング形状のグリッド要素の最大値に1をプラスした値と等しいZ値と関連付けたパーティションへ移す(ステップS572)。そして、バウンディング形状のすべてのグリッド要素に「占有」をマークする(ステップS574)。ステップS554に戻って、グラフィックリストを調べ、まだバウンディング形状内のグリッド要素のZ値を調べていないグラフィックリスト要素が残っているかどうか判断する(ステップS554)。一方、ステップS564にて、Z値の最大値が「0」ではないと判断された場合(ステップS564において「NO」)、ステップS570に進み、バウンディング形状内の各グリッド要素と関連するZ値に1をプラスする。そして、グラフィックリスト要素を、バウンディング形状内の各グリッド要素の最大値に1をプラスした値と等しいZ値と関連付けたパーティションに移す(ステップS572)。そして、バウンディング形状内のすべてのグリッド要素に「占有」をマークして(ステップS574)、グラフィックリストを調べ、まだ調べられていないグラフィックリスト要素が残っているかについて判断する(ステップS554)。
【0106】
上述したパーティション分割を実行する処理を実現するための構成について説明する。本発明に係るいくつかの実施形態ではホストコンピューティング・デバイスを備えている。そして、ホストコンピューティング・デバイスは、一以上の中央演算処理回路(CPU)、マルチコアCPU、グラフィクス処理回路(GPU)カード、デジタル信号処理(DSP)エンジン、ハードウェアアクセラレータASICを備えている。また、本発明に係るいくつかの実施形態では、プリンタコントローラをさらに備えている。そして、プリンタコントローラは、一以上のCPU、マルチコアCPU,GPU,DSPエンジン、ハードウェアアクセラレータASICを備えている。
【0107】
本発明の実施形態では、ホストコンピューティング・デバイス内のマルチ処理回路は複数の印刷データパーティションを並行してレンダリングするのに用いられる。本発明の実施形態では、ホストコンピューティング・デバイス内のマルチ処理回路はレンダリングされた複数のパーティションそれぞれに対するビットブリットを並列処理で実行するために用いられる。また、本発明の他の実施形態では、プリンタコントローラ内のマルチ処理回路が、複数の印刷データパーティションそれぞれに対するレンダリングを並列処理で実行するために用いられる構成であってもよい。また、本発明の他の実施形態では、プリンタコントローラ内のマルチ処理回路がレンダリングされた複数のパーティションそれぞれに対するビットブリットを並列処理で実行するために用いられる構成であってもよい。例えば、図20を参照して印刷環境の一例について説明する。ホストコンピューティング・デバイス580が、プリンタコントローラ584と例えば通信ネットワーク等により実現できる接続線582を通じて通信可能に接続されている。ホストコンピューティング・デバイス580は、四つのプロセシングコア587−590とL2キャッシュ592とを有するマルチコアCPU586を備えている。マルチコアCPU586は、チップセット594と、例えばバス等により実現できる接続線593を通じて動作可能に接続されており、また、チップセット594はメモリ596とグラフィックカード598とに、例えばバス等により実現できる接続線595、597を通じて動作可能に接続されている。プリンタコントローラ584は、二つのコア601、602とL2キャッシュ604とを有するマルチコア内蔵CPU600を備えている。マルチコア内蔵CPU600は、メモリ606とハードウェア(HW)アクセラレーション608とに、例えば、バス等により実現できる接続線605、607を通じて動作可能に接続されている。
【0108】
また、本発明の他の実施形態では、複数のパーティションのレンダリングを、同じネットワーク、例えばクラウドコンピューティング内の複数のCPU間で分散して行う構成であってもよい。また、本発明のいくつかの実施形態では、レンダリングされた複数のパーティションのビットブリットを、同じネットワーク、例えばクラウドコンピューティング内の複数のCPU間で分散して行う構成であってもよい。
【0109】
また、本発明に係るいくつかの実施形態では、パーティションのレンダリングおよびビットブリットを図21に示す構成を有するシステムにより実行することができる。図21を参照すると、本発明のいくつかの実施形態では、インタープリタ620を備えている。インタープリタ620はグラフィックリストを生成する。そして、このグラフィックリストをパーティション生成装置622が複数のパーティション630、631、・・・632にそれぞれ分割する。スケジューラ635は、レンダリング装置640、641・・・642それぞれの利用可能性や、その他の条件に応じて、パーティション630、631、・・・632をこのレンダリング装置640、641、・・・642に割り当てる。なお、その他の条件の一例としては、パーティションタイプ、パーティションの複雑さ、パーティションサイズ、一つのパーティションに含まれるオブジェクト数、パーティションの作用、およびその他のパーティションの特徴や条件が挙げられる。レンダリング装置640、641、・・・642それぞれは、受付けたパーティション630、631、・・・632をレンダリングし、レンダリングしたパーティション630、631、・・・632それぞれを、自身が有するパーティションビットブリット装置によりビットブリットする。ページビットブリット装置650は、レンダリングし、ビットブリットしたこれら複数のパーティション630、631、・・・632を、ビットブリットして、ページバッファ652に入力する。そして、このページバッファ652から印刷エンジン654に出力される。ページビットブリット装置650は、分割されたパーティション630、631、・・・632に対するページビットブリットをそれぞれ「順不同」に行ってもよいし、「順番どおり」に行ってもよい。なお、「順不同」にパーティション630、631、・・・632をビットブリットした場合、中間パーティションに変換してビットブリットすることなく、直接ページバッファ652に入力するようにビットブリットされる。
【0110】
図21に示すシステムにおいて、本発明に係るいくつかの実施形態では、ホストコンピューティング・デバイスが、上述したインタープリタ620、パーティション生成装置622、およびスケジューラ635を備える構成であってもよい。この実施形態では、レンダリング装置640、641、・・・642の機能をホストコンピューティング・デバイスと、印刷装置に内蔵されたプリンタコントローラとの間で分散して実現する。また、印刷装置では、内蔵されたプリンタコントローラが、上述したページビットブリット装置650、ページバッファ652、印刷エンジン654それぞれのインタフェースを備える。また、他の実施形態では、レンダリング装置640、641、・・・642それぞれをホストコンピューティング・デバイスが備える構成であってもよい。また、他の実施形態では、レンダリング装置640、641、・・・642それぞれを、内蔵された印刷コントローラが備える構成としてもよい。
【0111】
本発明のいくつかの実施形態では、カスケード式にパーティション分割を行う構成であってもよい。図22および図23に、カスケード式によりパーティション分割を行う本発明の実施形態の一例を示す。図22に示す実施形態の一例では、まず、パーティション生成装置622は、インタープリタ620からグラフィックリストを受け付け(S670)、「重畳別にパーティション分割を実行する処理」により「重畳」パーティション674と「非重畳」パーティション676とを生成する(ステップS672)。「重畳」パーティション674を、「オブジェクトタイプ別にパーティション分割を実行する処理」により、さらに、「テキスト」パーティション、「ベクター」パーティション、「ピクトリアル」パーティションそれぞれに分割する(ステップS678)。一方、「非重畳」パーティション676は、「オブジェクトタイプ別にパーティション分割を実行する処理」により、「テキスト」パーティション、「ベクター」パーティション、「ピクトリアル」パーティションに分割される(ステップS680)。
【0112】
また、図23に示す実施形態の一例では、パーティション生成装置622は、インタープリタ620からグラフィックリストを受け付け(ステップS690)、「分離・重畳別にパーティション分割を実行する処理」によるパーティション分割によって、「非重畳」パーティション698と複数の「分離・重畳」パーティション694・・・、696を生成する。「非重畳」パーティション698と、複数の「分離・重畳」パーティション694、・・・696を、「オブジェクトタイプ別にパーティションの分割を実行する処理」によってさらにパーティションに分割する(ステップS700、S702、S704)。これらの実施形態では、最終的に得られたオブジェクトタイプ別の複数のパーティションを、各パーティションと関連するオブジェクトタイプに対応付けられたレンダリング装置によってレンダリングされ、「非重畳」パーティションに関連する、最終的に得られた複数のパーティションと、各「分離・重畳」パーティションと関連する、最終的に得られた複数のパーティションとを、並列処理によりビットブリットする。「非重畳」パーティションにおける複数のオブジェクトタイプのパーティションについは並列処理によりビットブリットされるが、「分離・重畳」パーティションにおける複数のオブジェクトタイプのパーティションは、順次ビットブリットしなければならない。
【0113】
次に、図24を参照して、本発明の他の実施形態について説明する。他の実施形態のいくつかでは、ホストコンピューティング・デバイスが備えるパーティション生成装置622において、グラフィックリストを受付ける(ステップS720)。そして、「オブジェクトタイプ別にパーティションの分割を実行する処理」に従って複数のグラフィックリストのパーティションを生成する(ステップS722)。グラフィックリストのパーティションには、テキストパーティション724、ベクターパーティション726、ピクトリアルパーティション728がある。テキストパーティション724を、一以上の専用テキストレンダリング装置によってレンダリングする(ステップS726)。レンダリングしたテキストパーティション724をエンコードし(ステップS728)、エンコードしたテキストパーティション724、ベクターパーティション726、ピクトリアルパーティション728からパーティション印刷ストリームを生成する(ステップS730)。パーティション印刷ストリームをプリンタコントローラに送信する(ステップS732)。いくつかの実施形態では、パーティション印刷ストリームにパーティションファイルを含めてもよい。
【0114】
ところで、ラスターイメージプロセッサ(RIP)の中には、オブジェクトリストを非常に小さなオブジェクトに、特に、非常に小さなイメージオブジェクトまたはピクトリアルオブジェクトに分割することができるものがある。そこで、この他の実施形態では、ピクトリアルパーティションを解析して、複数の小さなオブジェクトを合わせて一つのより大きなピクトリアルオブジェクトを生成できないか判断する。これらの実施形態では、このピクトリアルパーティションへの分割処理は、ピクトリアルパーティションをパーティションファイルコンポーザに送る前に行われる。
【0115】
上述した図24では、ホストコンピューティング・デバイスがパーティション印刷ストリームをプリンタコントローラに送信するまでの実施形態の一例について説明した。以下において、図25を参照して、プリンタコントローラがパーティション印刷ストリームを受付けてからそれ以降の処理に関する実施形態について説明する。本発明に係るいくつかの実施形態では、プリンタコントローラでパーティション印刷ストリームを受け付け(ステップS740)、このパーティション印刷ストリームを、エンコードされたテキストパーティション744、ベクターパーティション746、ピクトリアルパーティション748に分解する(ステップS742)。なお、いくつかの実施形態では、パーティション印刷ストリームにパーティションファイルを含めてもよい。エンコードされたテキストパーティション744はデコードされて(ステップS750)、レンダリングされたテキストパーティションを再構成する。一方、ベクターパーティション746とピクトリアルパーティション748とは、一以上の専用レンダリング装置でレンダリングされる。再構成されたレンダリング済テキストパーティション、レンダリング済ベクターパーティション、レンダリング済ピクトリアルパーティションそれぞれをビットブリットし(ステップS756)、ページバッファに入力して、このページバッファから印刷エンジンに送信する(ステップS758)。なお、ステップS756において、上述したレンダリング済パーティションは、各パーティションに関連付けられているパーティション順序に従って、順次ビットブリットされる。
【0116】
なお、本発明のいくつかの実施形態では、レンダリングされたテキストパーティションを、二値の圧縮によりエンコードするように構成されている。二値の圧縮例としては、JBIG(Joint Bi−level Image Expert Group),JBIG2,MR(Modified Read),MMR(Modified Modified Read)、またはその他のバイレベルエンコードが挙げられるが、これらの圧縮方式に限られるものではない。
【0117】
上記では、印刷処理システムの一例として、図1に示すように印刷処理システムが、ホストコンピューティング・デバイス10と、このホストコンピューティング・デバイス10とコミュニケーションリンク12を通じて接続されている印刷装置14とを備えた構成を想定して説明した。しかしながら、印刷処理システムの構成はこれに限定されるものではない。ここで、図26を参照して、印刷処理システムに関する本発明の他の実施形態について説明する。この実施形態の一例において、印刷処理システムは、プリンタサーバ772とコミュニケーションリンク771を通じて通信可能に接続されている(771)ホストコンピューティング・デバイス770を備えている。また、プリンタサーバ772とコミュニケーションリンク773を通じて、通信可能に接続されている印刷装置774も備える。また、印刷処理システムの構成は以下の図27に示すような構成であってもよい。図27を参照して説明すると、本発明の他の実施形態では、印刷処理システムは、クラウドコンピューティング環境782の一部を構成するホストコンピューティング・デバイス780を備えている。そして、このホストコンピューティング・デバイス780は、コミュニケーションリンク783を通じて、印刷装置784と通信可能に接続されている。また、印刷処理システムの構成は以下の図28に示すような構成とすることもできる。図28を参照して説明すると、本発明のさらなる他の実施形態では、印刷処理システムは、クラウドコンピューティング環境792の一部を構成するホストコンピューティング・デバイス790を備えている。このホストコンピューティング・デバイス790は、コミュニケーションリンク793を通じて、プリンタサーバ794と通信可能に接続されている。また、プリンタサーバ794は、コミュニケーションリンク795を通じて、印刷装置796と通信可能に接続されている。
【0118】
本発明のいくつかの実施形態において、印刷処理システムが、プリンタサーバを備えた構成の場合、このプリンタサーバは一以上の中央演算処理回路(CPU),マルチコアCPU,グラフィクス処理回路(GPU)カード、デジタル信号処理(DSP)エンジン、ハードウェアアクセラレータASICを備える。本発明のいくつかの実施形態では、プリンタサーバ内のマルチ処理回路を用いて、複数の印刷データパーティションのレンダリングを並列処理により実行する。また、本発明のいくつかの実施形態では、プリンタサーバ内のマルチ処理回路を用いて、レンダリングした複数のパーティションのビットブリットを並列処理により実行する。
【0119】
また、本発明のいくつかの実施形態では、ホストコンピューティング・デバイスに関して上記した機能およびシステムを、このホストコンピューティング・デバイスではなくプリンタサーバが備える構成であってもよい。
【0120】
このように構成される場合、たとえば、図21に示す実施形態の例では、プリンタサーバはインタープリタ620、パーティション生成装置622、スケジューラ635を備える。この実施形態では、レンダリング装置640、641、642は、ホストコンピューティング・デバイスと、プリンタサーバと、印刷装置に内蔵されたプリンタコントローラとの間で分散される。印刷装置は、内蔵するプリンタコントローラに、ページビットブリット装置650、ページバッファ652、印刷エンジン654のインタフェースを備える。また、他の実施形態では、レンダリング装置640、641、642を、ホストコンピューティング・デバイスに設ける構成であってもよい。さらなる他の実施形態では、レンダリング装置640、641、642を、内蔵するプリンタコントローラに設ける構成であってもよい。さらに他の実施形態では、レンダリング装置640、641、642をプリンタサーバに配置する構成であってもよい。
【0121】
上述したホストコンピューティング・デバイスが備える機能をプリンタサーバが備える構成の場合、印刷処理について図24の例を挙げて説明すると以下の処理フローとなる。すなわち、図24を参照すると、プリンタサーバが備えるパーティション生成装置622において、グラフィックリストを受付ける(ステップS720)。そして、「オブジェクトタイプ別にパーティション分割を実行する処理」に従って複数のグラフィックリストパーティションを生成する(ステップS722)。グラフィックリストパーティションには、テキストパーティション724、ベクターパーティション726、ピクトリアルパーティション728がある。テキストパーティション724は、一以上の専用テキストレンダリング装置によってレンダリングされる(ステップS726)。レンダリングされたテキストパーティション724をエンコードし(ステップS728)、エンコードしたテキストパーティション724、ベクターパーティション726、ピクトリアルパーティション728からパーティション印刷ストリームを生成する(ステップS730)。そして、パーティション印刷ストリームをプリンタコントローラに送信する(ステップS732)。いくつかの実施形態では、パーティション印刷ストリームにパーティションファイルが含まれていてもよい。
【0122】
(レンダリング装置の決定方法)
次に図29を参照して、本発明のいくつかの実施形態に係る印刷処理システムにおいてレンダリングを実行させるレンダリング装置の決定方法について説明する。まず、パーティション生成装置622は、グラフィックリストを受付けるとともに(ステップS800)、さらにレンダリング装置情報802も受付ける(S802)。レンダリング装置情報の例としては、レンダリング装置640、641、・・・642のリストと、リスト中の各レンダリング装置640、641、・・・642に関連するレンダリング装置情報(例えば、レンダリング装置の利用可能性、配置場所、状態、タイプ、平均処理量、最大処理速度、およびその他のレンダリング装置の属性や情報)とが挙げられる。いくつかの実施形態では、レンダリング装置情報は、印刷システムが備える、いかなるレンダリング装置640、641、・・・642に対してもアクセス可能な、印刷システムにおける中央格納位置に記憶されている。また、レンダリング装置が自装置に関連する情報を定期的に更新するようにも構成されている。そして、このような構成では、パーティション生成装置622は、ステップS802において、レンダリング装置情報を、中央格納位置から取得する。なお、他の実施形態では、ステップS802において、パーティション生成装置622は、レンダリング装置情報802を、レンダリング装置640、641、・・・642に対する問合せを受付けた場合に取得する構成としてもよい。さらに他の実施形態では、パーティション生成装置622は、レンダリング装置情報を、利用可能なレンダリング装置を管理するレンダリング装置マネージャから受け取る構成としてもよい。さらに他の実施形態では、レンダリング装置640、641、・・・642とレンダリング装置属性とについての固定データベースが整備されていてもよい。
【0123】
上述のようにパーティション生成装置622がグラフィックリストとレンダリング装置情報とを受付けると、パーティション生成装置622が、本明細書で述べた一以上のパーティション生成パラダイムに従ってパーティションを生成し(ステップS804)、生成したパーティションを処理する(ステップS806)。本発明のいくつかの実施形態では、最適なレンダリング性能を実現するために利用可能なレンダリング装置で、ステップS806におけるパーティションへの分割処理を行う構成としてもよい。いくつかの実施形態では、第一パーティションと第二パーティションとを、両パーティションにおけるオブジェクト数、オブジェクトの複雑さ、両パーティションに関する推定処理時間、およびその他のパーティション属性に基づき併合する、もしくは組み合わせる。また、他の実施形態では、第一パーティションを、そのパーティション内のオブジェクト数、オブジェクトの複雑さ、そのパーティションに関する推定処理時間、およびその他のパーティション属性に応じて、複数の副次パーティションに再分割する構成であってもよい。このように、本発明のいくつかの実施形態では、ステップS806において、パーティションに対する所定の制限に従ってパーティションを処理する。パーティションに対する制限例としては、パーティションのサイズ、パーティションの複雑さ、パーティション領域、パーティションに対する処理時間などが挙げられる。ステップS806の分割処理の結果、得られたパーティションは、レンダリング装置と関連付けられる(ステップS808)。本発明のいくつかの実施形態では、このステップS808における関連付けは、レンダリング装置情報に基づいて行うことができる。
【0124】
本発明のいくつかの実施形態では、パーティションを生成している間、パーティションに対応付けられたパーティション状態インジケータを観測するように構成されていてもよい。パーティション状態インジケータが第一の評価基準を満たす場合、現段階では利用不可能なこのパーティションに、グラフィックリスト要素は追加されない。同じタイプの新たなパーティションが作られ、利用不可能なパーティションに加えるべきグラフィックリスト要素を、この新たなパーティションに加える。
【0125】
パーティション状態インジケータの一例としては、パーティションにおけるグラフィックオブジェクト数と関連する。すなわち、本発明のいくつかの実施例では、パーティションに入りうるグラフィックオブジェクト数の上限が定められている。これらの実施形態では、もしあるパーティションがいっぱいだと判断された場合に、そのパーティションに割り振られるはずだった次のグラフィックリスト要素と出会ったとき、新たなパーティションが作られ、そのグラフィックリスト要素は新たなパーティションに加えられることになる。例えば、「オブジェクトタイプ別にパーティション分割を実行する処理」において、上限数を超えた一連のグラフィックリスト要素がある場合、それらのグラフィックリスト要素は複数のパーティションに割り振られることになる。例えば、「重畳別にパーティション分割を実行する処理」において、他のオブジェクトにより重ねられたり、他のオブジェクトに重ねたりしないグラフィックオブジェクト数が上限を超える場合、複数の「非重畳」パーティションが作られる。
【0126】
パーティション状態インジケータのその他の例としては、パーティションにおける第一グラフィックオブジェクトタイプのグラフィックオブジェクト数や、グラフィックオブジェクトの複雑さ、パーティションに対するレンダリング処理にかかる推定処理時間、およびその他のパーティションの特徴や属性と関連するインジケータが挙げられる。
【0127】
本発明のいくつかの実施形態では、関連するレンダリング装置に対していかなるパーティションの送信を行うよりも前に、グラフィックリストに関連したすべてのパーティションを生成するように構成してもよい。本発明の他の実施形態では、パーティションの生成処理が完了する前に、あるパーティションを、関連するレンダリング装置に送信する構成としてもよい。例えば、「オブジェクトタイプ別にパーティション分割を実行する処理」に係る本発明のいくつかの実施形態では、次のパーティションが作られた後に、任意のタイミングで第一のパーティションを関連するレンダリング装置に送信し、第一のパーティションに関連する実行が完了したことを示す。また、本発明のいくつかの実施形態では、例えば、すべてのパーティションを生成し終えるよりも前に、利用できないパーティションを関連するレンダリング装置に送信する。
【0128】
本明細書において述べられた印刷システムの構成はあくまでも例として挙げられたものであり、本発明の実施形態を限定するものではない。
【0129】
【表3】
【0130】
【表4】
【0131】
【表5】
【0132】
また、以上のように本発明に係る印刷システムの制御方法は以下のステップを含むものとも言える。
【0133】
本発明に係る印刷システムの制御方法は、印刷システムにおいて印刷ジョブをレンダリングする方法であって、(a)印刷ジョブと関連した、第一グラフィックリスト要素と、続く次のグラフィックリスト要素とを含んだグラフィックリストを取得するステップと、(b)前記第一グラフィックリスト要素を第一パーティションと関連付けるステップと、(c)前記第一グラフィックリスト要素に関連する第一グラフィカルオブジェクトのタイプを、前記次のグラフィックリスト要素に関連する第二グラフィカルオブジェクトのタイプと比較するステップと、(d)前記第一グラフィカルオブジェクトのタイプと前記第二グラフィカルオブジェクトのタイプとが同じ場合、前記次のグラフィックリスト要素も前記第一パーティションと関連付けるステップと、(e)前記第一グラフィカルオブジェクトのタイプと前記第二グラフィカルオブジェクトのタイプとが異なる場合、第二パーティションを作成し、前記次のグラフィックリスト要素を前記第二パーティションと関連付けるステップと、を含む。
【0134】
また、本発明に係る印刷システムの制御方法は、上記した方法において、前記第一グラフィカルオブジェクトのタイプは、テキストグラフィカルオブジェクト、ベクターグラフィカルオブジェクト、およびピクトリアルグラフィカルオブジェクトからなるグループから選択されたタイプであってもよい。
【0135】
また、本発明に係る印刷システムの制御方法は、上記した方法において、前記第一グラフィカルオブジェクトのタイプを、前記第一パーティションと関連付けるステップをさらに含んでもよい。
【0136】
また、本発明に係る印刷システムの制御方法は、上記した方法において、前記第一パーティションと第一レンダリング装置とを関連付けるステップをさらに含み、前記第一レンダリング装置が、前記第一グラフィカルオブジェクトタイプに関する第一の専用のレンダリング装置であってもよい。
【0137】
また、本発明に係る印刷システムの制御方法は、上記した方法において、前記第一グラフィカルオブジェクトのタイプは、テキストグラフィカルオブジェクト、ベクターグラフィカルオブジェクト、およびピクトリアルグラフィカルオブジェクトからなるグループから選択されたタイプであってもよい。
【0138】
また、本発明に係る印刷システムの制御方法は、上記した方法において、前記第二パーティションと第二レンダリング装置とを関連付けるステップをさらに含み、前記第二レンダリング装置が、前記第二グラフィカルオブジェクトのタイプに関する第二の専用のレンダリング装置であってもよい。
【0139】
また、本発明に係る印刷システムの制御方法は、上記した方法において、(a)前記第一の専用のレンダリング装置で前記第一パーティションをレンダリングするステップと、(b)前記第二の専用のレンダリング装置で前記第二パーティションをレンダリングするステップと、をさらに含んでもよい。
【0140】
また、本発明に係る印刷システムの制御方法は、上記した方法において、前記第一パーティションをレンダリングするステップと前記第二パーティションをレンダリングするステップとを実質的に同時に実行させてもよい。
【0141】
また、本発明に係る印刷システムの制御方法は、上記した方法において、第一パーティションの順番を前記第一パーティションと関連付けるステップをさらに含んでもよい。
【0142】
また、本発明に係る印刷システムの制御方法は、上記した方法において、第二パーティションの順番を前記第二パーティションと関連付けるステップをさらに含み、前記第一パーティションの順番と前記第二パーティションの順番とは、前記第一パーティションが前記第二パーティションより先にビットブリットされてもよい。
【0143】
さらにまた、以上のように本発明に係る印刷システムの制御方法は以下のステップを含むものということもできる。
【0144】
本発明に係る印刷システムの制御方法は、印刷システムにおいて印刷ジョブをレンダリングする方法であって、(a)印刷ジョブと関連した、第一のグラフィックリスト要素群を含むグラフィックリストを受付けるステップであって、これら第一のグラフィックリスト要素群における各グラフィックリスト要素は関連したグラフィカルオブジェクトタイプを有しているステップと、(b)前記第一のグラフィックリスト要素群における第二のグラフィックリスト要素群を第一パーティションと関連付けるステップと、を含み、(i)前記第二のグラフィックリスト要素群におけるグラフィックリスト要素のそれぞれが、第一のグラフィックリスト要素群において、第二のグラフィックリスト要素群における別のグラフィックリスト要素とそれぞれ隣接しており、(ii)前記第二のグラフィックリスト要素群における各グラフィックリスト要素それぞれが関連するグラフィカルオブジェクトタイプは、第一グラフィカルオブジェクトタイプであってもよい。
【0145】
また、本発明に係る印刷システムの制御方法は、上記した方法において、前記第一グラフィカルオブジェクトのタイプは、テキストグラフィカルオブジェクト、ベクターグラフィカルオブジェクトおよびピクトリアルグラフィカルオブジェクトからなるグループから選択されたタイプであってもよい。
【0146】
また、本発明に係る印刷システムの制御方法は、上記した方法において、第一レンダリング装置と前記第一パーティションとを関連付けるステップをさらに含んでもよい。
【0147】
また、本発明に係る印刷システムの制御方法は、上記した方法において、前記第一レンダリング装置が、前記第一グラフィカルオブジェクトタイプに関する専用のレンダリング装置であってもよい。
【0148】
また、本発明に係る印刷システムの制御方法は、上記した方法において、(a)前記第一のグラフィックリスト要素群におけるの第三のグラフィックリスト要素群を第二パーティションと関連付けるステップをさらに含み、(i)前記第三のグラフィックリスト要素群における各グラフィックリスト要素それぞれは、前記第一のグラフィックリスト要素群において、第三のグラフィックリスト要素群における別のグラフィックリスト要素とそれぞれ隣接しており、(ii)前記第三のグラフィックリスト要素群における各グラフィックリスト要素の関連するグラフィカルオブジェクトのタイプが、第二グラフィカルオブジェクトタイプであり、(iii)前記第一グラフィカルオブジェクトタイプと前記第二グラフィカルオブジェクトタイプとが異なっていてもよい。
【0149】
また、本発明に係る印刷システムの制御方法は、上記した方法において、(a)第一レンダリング装置を前記第一パーティションと関連付けるステップと、(b)第二レンダリング装置を前記第二パーティションと関連付けるステップと、をさらに含んでもよい。
【0150】
また、本発明に係る印刷システムの制御方法は、上記した方法において、(a)前記第一レンダリング装置が、前記第一グラフィカルオブジェクトタイプに関する第一の専用のレンダリング装置であり、(b)前記第二レンダリング装置が、前記第二グラフィカルオブジェクトタイプに関する第二の専用のレンダリング装置であってもよい。
【0151】
また、本発明に係る印刷システムの制御方法は、上記した方法において、(a)前記第一の専用のレンダリング装置によって、前記第一パーティションをレンダリングするステップと、(b)前記第二の専用のレンダリング装置によって、前記第二パーティションをレンダリングするステップと、をさらに含んでもよい。
【0152】
また、本発明に係る印刷システムの制御方法は、上記した方法において、前記第一パーティションをレンダリングするステップと、前記第二パーティションをレンダリングするステップとを実質的に同時に実行させてもよい。
【0153】
また、以上のように本発明に係る印刷システムは以下の構成を備えるものとも言える。
【0154】
また、本発明に係る印刷システムの制御方法は、上記した方法において、(a)印刷ジョブと関連した、第一グラフィックリスト要素と、続く次のグラフィックリスト要素とを含んだグラフィックリストを取得するグラフィックリスト取得装置と、(b)前記第一グラフィックリスト要素を第一パーティションと関連付ける第一グラフィックリスト要素関連付け装置と、(c)前記第一グラフィックリスト要素に関連する第一グラフィカルオブジェクトタイプを、前記次のグラフィックリスト要素に関連する第二グラフィカルオブジェクトタイプと比較するグラフィカルオブジェクトタイプ比較装置と、(d)(i)前記第一グラフィカルオブジェクトタイプと前記第二グラフィカルオブジェクトタイプとが同じ場合、前記次のグラフィックリスト要素を前記第一パーティションと関連付け、(e)前記第一グラフィカルオブジェクトタイプと前記第二グラフィカルオブジェクトタイプとが異なる場合、前記次のグラフィックリスト要素を前記第二パーティションと関連付ける第二グラフィックリスト要素関連付け装置とを備える。
【0155】
つまり、本発明のいくつかの実施形態では、グラフィックリスト要素を「同時」または「順不同に」レンダリングして、マルチコアプロセッシングプラットフォーム、専用プロセッサ、分散型処理システム、およびその他のコンピュータ処理環境を効果的かつ効率よく使用することができる方法、およびシステムを提供する。
【0156】
また、本発明のいくつかの実施形態では、一つのグラフィックリストを、複数のグラフィックリスト要素に分割し、これらグラフィックリスト要素を一以上のパーティションに分類する。つまり、各パーティションは、当該グラフィックリストにおいてグラフィックオブジェクトタイプが同じである、一連のグラフィックリスト要素と関連付けられる。それぞれのパーティションに対して、「同時」に、あるいは「順不同」にグラフィックリスト要素のレンダリングを行い、そして順次ビットブリットしてページバッファへと送信する。いくつかの実施形態では、パーティションは、該パーティションに関連するグラフィックオブジェクトタイプに応じた専用のレンダリング装置によってレンダリングされるように構成されている。
【0157】
また、本発明の他の実施形態では、グラフィックリストを、二つのパーティションに分割することができる。第一パーティションには、レンダリングされたときに、他のグラフィックリスト要素に重ねたり、あるいは他のグラフィックリスト要素により重ねられたりしないグラフィックリスト要素がすべて分類されている。一方、第二パーティションには、レンダリングされたときに、一以上の他のグラフィックリスト要素に重ねたり、あるいは他のグラフィック要素により重ねられたりするグラフィックリスト要素が分類される。そして、これら第一、第二パーティションに対して、同時に、あるいは様々な順番でグラフィックリスト要素のレンダリングを行い、そしてビットブリットする。つまり、第一パーティションのグラフィックリスト要素は、同時にまたは様々な順番でレンダリングがなされ、ビットブリットされる。また、第二パーティションのグラフィックリスト要素は、同時にまたは様々な順番でレンダリングがなされ、ビットブリットされる。
【0158】
また、さらなる他の実施形態では、以下のような構成とすることもできる。すなわち、グラフィックリストを第一パーティションに分割する。なお、この第一パーティションは、レンダリングしたときに、グラフィックリストにある他のグラフィックリスト要素に重ねたり、あるいは他のグラフィック要素により重ねられたりしないグラフィックリスト要素すべてを含む。また、グラフィックリストに残ったそれ以外のグラフィックリスト要素、すなわち第一パーティションに対応づけたグラフィックリスト要素以外のものは、レンダリングするときに、グラフィックスリストにある一以上の他のグラフィックリスト要素に重ねたり、他のグラフィック要素により重ねられたりするものとなる。さらに、この第一パーティション分割後のグラフィックリストは、互いが空間的に分離された重畳するグラフィックリスト要素群それぞれがパーティションにさらに分割される。なお、互いが空間的に分離された重畳するグラフィックリスト要素群とは、各グラフィックリスト要素が重畳しているグラフィックリスト要素群であって、他のグラフィックリスト要素群とは印刷レイアウトにおいて重なり合わない、すなわち重畳しないものを意味する。グラフィックリストを分割したパーティション(第一パーティション等)は、同時にまたは様々な順番でレンダリングされ、ビットブリットされる。ただし、互いが空間的に分離した、グラフィックリスト要素が重畳するグラフィックリスト要素群に関連するパーティションの中では、グラフィックリスト要素は、それぞれ所定の順番で順次レンダリングされ、そしてビットブリットされる。
【0159】
また、さらに他の実施形態では、グラフィックリストを、Z値(z-depth)すなわち、奥行き情報に関連付けられた複数のパーティションに分割する構成とすることもできる。これらの実施形態では、複数のパーティションに対して、同時に、または様々な順番でグラフィックリスト要素のレンダリングを行うことができるが、ビットブリットは順次行われる。
【0160】
また、本発明のいくつかの実施形態では、グラフィックリストの分割を、一以上の分割スキームに従って、カスケード式に行ってもよい。
【0161】
また、本発明のいくつかの実施形態では、パーティションが、一以上の分割スキームに従って、さらに再分割されてもよい。
【0162】
本発明のいくつかの実施形態では、グラフィックリストのパーティションへの分割は、最適なレンダリング動作を実現するのに利用可能なレンダリング装置で行われる。
【0163】
また、本発明の一態様によれば、レンダリング済グラフィックリスト要素の重畳状態を、これらのレンダリング済グラフィックリスト要素に関連付けられた空間領域の近似値と、ページグリッドとを用いて検出する構成としてもよい。
【0164】
本発明のいくつかの実施形態では、プリンタドライバを備えている。そして、このプリンタドライバによって、グラフィックリスト要素のグラフィックオブジェクトタイプに応じてグラフィックリストをパーティションに分割し、一以上のテキストタイプのパーティションをレンダリングしてエンコードする構成であってもよい。この実施形態では、プリンタドライバは、エンコードされた一以上のレンダリング済テキストパーティションとその他のパーティションとから印刷ストリームを構成してプリンタコントローラに送信する。
【0165】
また、本発明のいくつかの実施形態は、プリンタコントローラを備え、以下のような構成とすることができる。すなわち、このプリンタコントローラが、パーティションに分割した印刷ストリームを受け取って分解し、エンコードされた一以上のレンダリング済テキストパーティションをデコードする。また、他のパーティションをレンダリングして、すべてのレンダリング済パーティションのグラフィックオブジェクトをページバッファにビットブリットする。
【0166】
以上の記述は網羅的なものではなく、また本発明の開示内容を厳密に限定するものでもない。上記の教示に照らして、さまざまな修正や変化が可能である。
【0167】
上記の明細書において用いられた用語と表現は本発明を記述するためのものであり、限定するためのものではなく、そうした用語と表現の使用には、提示され記述された諸特徴の同等物またはその一部を除外する意図はなく、本発明の範囲は以下に述べる請求項によってのみ定義され限定される。
【産業上の利用可能性】
【0168】
本発明に係る印刷システムの制御方法は、オブジェクトタイプに基づきグラフィックリストに含まれるグラフィックリスト要素(グラフィックオブジェクト)を複数のパーティションに分類し、この複数のパーティションに分類されたグラフィックリスト要素のレンダリングを並列処理にて実行することができる。特に、連続する2つのグラフィックリスト要素において両者のオブジェクトタイプが異なる場合は新たなパーティションに後続するグラフィックリスト要素を分類する。一方、オブジェクトタイプが同じ場合は同じパーティションに連続するグラフィックリスト要素を分類して一括してレンダリングを行うことができる。このため、印刷ジョブを受付けレンダリングする処理を効率的に行う場合に幅広く適用することができる。
【符号の説明】
【0169】
10,580,770,780,790 ホストコンピューティング・デバイス
14,774,784,796 印刷装置
60,80,860 ページ(印刷データ)
62,86 第一テキストグラフィックオブジェクト(グラフィックオブジェクト・第一グラフィックオブジェクト)
64,82 第一ベクターグラフィックオブジェクト(グラフィックオブジェクト・第二グラフィックオブジェクト)
66 第二テキストグラフィックオブジェクト(グラフィックオブジェクト)
68,84 第二ベクターグラフィックオブジェクト(グラフィックオブジェクト)
70,90 第一ビットマップグラフィックオブジェクト(グラフィックオブジェクト)
72,88 第三ベクターグラフィックオブジェクト(グラフィックオブジェクト)
74,92 第二ビットマップグラフィックオブジェクト(グラフィックオブジェクト)
94 第四ベクターグラフィックオブジェクト(グラフィックオブジェクト)
100,220,270,310,622 パーティション生成装置(取得部、第一分類部、第二分類部、比較部)
101〜107,141〜145,221〜222,227,228,271,272,279,311,319〜321,630,674,676,694,698 パーティション(第一パーティション・第二パーティション)
111〜117,151〜155,640 レンダリング装置(第一レンダリング部、第二レンダリング部)
120,226,278,318 レンダリング済バッファ
121〜127,161〜165 レンダリング済パーティション
130,229〜230,282,322 ビットブリット装置(ビットブリット部)
223,274,314 汎用レンダリング装置
132,232,286,324,652 ページバッファ
650 ページビットブリット装置
654,772,794 プリンタサーバ
724,744 テキストパーティション
726,746 ベクターパーティション
728,748 ピクトリアルパーティション
【技術分野】
【0001】
本発明の実施形態は、概してデータをレンダリングする方法と、そのシステムに関するものであり、特には、印刷システムにおいてグラフィックオブジェクト(グラフィックリスト要素)をレンダリングする方法と、そのシステムに関する。
【背景技術】
【0002】
印刷システムにおける電子文書の処理には、印刷データを解釈し、レンダリングするために計算機による集約的作業が必要となる。グラフィック(グラフィカルやグラフィクスとも称する)オブジェクトのストリームを、ホストオペレーティングシステムのグラフィックインターフェースサービスから、グラフィックオブジェクトを解析するグラフィクスレンダリングサービスに送信し、オブジェクトベースの情報を印刷用画素値に変換する。なお、本明細書では、グラフィックオブジェクトから印刷用画素値を作成する処理のことをレンダリングと称するものとする。現在、高速で効果的にレンダリングするシステムおよび方法が所望されている。効果的なレンダリングを行うシステムとして例えば、特許文献1に開示された画像形成装置や、特許文献2に開示されたシステムが挙げられる。より具体的には、特許文献1では、複数種類のオブジェクト(グラフィックオブジェクト)を含む印刷データを展開させる際、グラフィックオブジェクトの種類ごとに異なる展開部に送信し、該展開部それぞれにてグラフィックオブジェクトに対する分散・並列処理を行う画像形成装置が開示されている。また、特許文献2では、印刷データにおいてオブジェクト(グラフィックオブジェクト)の重なりの有無を判定し、複数の展開手段に分散させ並列処理を行う構成が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2007−221604号公報(2007年8月30日公開)
【特許文献2】特開平10−333852号公報(1998年12月18日公開)
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上述のような従来技術は、効率よくグラフィックオブジェクトのレンダリングを行うことができないという問題が生じる。
【0005】
すなわち、特許文献1に開示された画像形成装置では、特定の種類のグラフィックオブジェクトは全て同じレンダリング装置(展開部)に送信される構成である。このため、印刷データに含まれるグラフィックオブジェクトの種類に偏りがある場合、ある特定のレンダリング装置に処理が集中してしまい、印刷データに対する処理を効率的に行うことができない。
【0006】
一方、特許文献2に開示されたシステムは、まず、グラフィックオブジェクト同士が重なっているか否か判断して、その判断結果に基づき優先順位を設定する。そして、この優先順位に従って、複数のレンダリング装置に順次グラフィックオブジェクトを配分する構成である。このため、グラフィックオブジェクトの配分に時間がかかり効率よくレンダリングを行うことができない。
【0007】
本発明は、上記の問題点に鑑みてなされたものであり、その目的は、効率よくグラフィックオブジェクトのレンダリングを行うことができる、印刷システムの制御方法、および印刷システムを実現することにある。
【課題を解決するための手段】
【0008】
本発明に係る印刷システムの制御方法は、上記した課題を解決するために、印刷データに関連づけられた、複数のグラフィックオブジェクトが連続するストリームデータであるグラフィックリストをレンダリングして描画出力可能なデータである印刷用画素値を作成する印刷システムの制御方法であって、上記グラフィックリストから第一グラフィックオブジェクトと、該第一グラフィックオブジェクトに続く、次のグラフィックオブジェクトである第二グラフィックオブジェクトとを取得する取得ステップと、一括してレンダリングするグラフィックオブジェクトの集合単位を規定するためのパーティションであって、上記第一グラフィックオブジェクトの種類に応じた第一パーティションに、上記第一グラフィックオブジェクトを分類する第一分類ステップと、上記第一グラフィックオブジェクトの種類と、上記第二グラフィックオブジェクトの種類とを比較する比較ステップと、上記比較ステップにおいて、上記第一グラフィックオブジェクトと上記第二グラフィックオブジェクトとの種類が一致しない場合、上記第一パーティションとは異なるパーティションである第二パーティションに上記第二グラフィックオブジェクトを分類し、上記第一グラフィックオブジェクトと上記第二グラフィックオブジェクトとの種類が一致する場合は、上記第一パーティションに第二グラフィックオブジェクトを分類する第二分類ステップと、を含むことを特徴とする。
【0009】
ここで、グラフィックオブジェクトとは、印刷データに関連付けられたデータであって、描画出力可能なデータ(印刷用画素値)よりも抽象度が高い中間データである。グラフィックオブジェクトの種類としては、例えば、テキストオブジェクト、ベクターオブジェクト、およびビットマップオブジェクトなどが挙げられる。
【0010】
上記した方法によると、上記取得ステップを含むため、連続する、第一グラフィックオブジェクトと第二グラフィックオブジェクトとを取得することができる。また、第一分類ステップを含むため、まず、第一グラフィックオブジェクトを、その種類に応じて第一パーティションに分類することができる。
【0011】
また、上記比較ステップおよび第二分類ステップをさらに含むため、第一グラフィックオブジェクトの次に取得した第二グラフィックオブジェクトがこの第一グラフィックオブジェクトと同じ種類か否か判定することができる。そして、両者の種類が異なる場合、第二グラフィックオブジェクトを第一パーティションとは異なる第二パーティションに分類することができる。一方、同じ種類の場合、第二グラフィックオブジェクトを第一グラフィックオブジェクトと同じ第一パーティションに分類することができる。
【0012】
このため、同じ種類のグラフィックオブジェクトが連続する場合は、同じパーティションに分類し、それらを一括してレンダリングすることができる。一方、異なる種類の第二グラフィックオブジェクトが後続する場合は、第一パーティションとは異なる第二パーティションにこの第二グラフィックオブジェクトを分類することができる。これにより、グラフィックオブジェクトをある程度まとめてレンダリングすることができるとともに、適当に別のパーティションに分類させレンダリングを分散させることもできる。
【0013】
したがって、印刷データに含まれるグラフィックオブジェクトの種類に偏りがある場合であっても、ある特定のレンダリング装置に処理が集中してしまうことを防ぐことができる。
【0014】
よって、本発明に係る印刷システムの制御方法は、効率よくグラフィックオブジェクトのレンダリングを行うことができるという効果を奏する。
【0015】
また、本発明に係る印刷システムの制御方法は、上記した方法において、上記グラフィックリストに含まれるグラフィックオブジェクトの種類は、印刷データにおける文字列とそれに関連するテキスト属性とを含むテキストオブジェクト、印刷データにおけるアウトライン、または塗りつぶし値と関連づけて一定の形状を含むベクターオブジェクト、および印刷データにおける高さ値、幅値、および連続する画素の明度を含むピクトリアルオブジェクトのうちのいずれかであってもよい。
【0016】
また、本発明に係る印刷システムの制御方法は、上記した方法において、上記第一パーティションと、該第一パーティションに分類されたグラフィックオブジェクトのレンダリングを専用に行う第一レンダリング部とを対応付けるとともに、上記第二パーティションと、該第二パーティションに分類されたグラフィックオブジェクトのレンダリングを専用に行う第二レンダリング部とを対応付ける対応付けステップをさらに含んでもよい。
【0017】
上記方法によると、対応付けステップをさらに含むため、第一パーティション、第二パーティションそれぞれに分類されたグラフィックオブジェクトのレンダリングを行うために第一レンダリング部、第二レンダリング部それぞれを適切に割り当てることができる。
【0018】
また、本発明に係る印刷システムの制御方法は、上記した方法において、上記対応付けステップにより対応付けられた第一レンダリング部によって、上記第一パーティションに分類されたグラフィックオブジェクトのレンダリングを実行する第一レンダリングステップと、上記対応付けステップにより対応付けられた第二レンダリング部によって、上記第二パーティションに分類されたグラフィックオブジェクトのレンダリングを実行する第二レンダリングステップと、を含んでもよい。
【0019】
また、本発明に係る印刷システムの制御方法は、上記した方法において、上記第一レンダリングステップと上記第二レンダリングステップとを並列して実行してもよい。
【0020】
なお、上記第一レンダリングステップと上記第二レンダリングステップとを並列して実行する場合、両者のレンダリングステップを同時に行う場合も含むことができる。
【0021】
また、本発明に係る印刷システムの制御方法は、上記した方法において、上記第一パーティションおよび第二パーティションには、レンダリングされる順番であるレンダリング順情報が対応付けられており、上記レンダリング順情報に基づく順番で、上記第一レンダリングステップと上記第二レンダリングステップとを実行してもよい。
【0022】
上記方法によると、グラフィックオブジェクトを分類するパーティションにはレンダリング順情報が対応づけられている。このため、グラフィックオブジェクトを適切なレンダリング順情報が対応づけられているパーティションに分類することで、グラフィックオブジェクトそれぞれのレンダリングを効率的に行うことができる。
【0023】
また、本発明に係る印刷システムの制御方法は、上記した方法において、上記第一レンダリングステップおよび上記第二レンダリングステップによってそれぞれレンダリングされたグラフィックオブジェクトを順次ビットブリットするビットブリットステップを更に含んでもよい。
【0024】
本発明に係る印刷システムは、上記した課題を解決するために、印刷データに関連づけられた、複数のグラフィックオブジェクトが連続するストリームデータであるグラフィックリストをレンダリングして描画出力可能なデータである印刷用画素値を作成する印刷システムであって、上記グラフィックリストから第一グラフィックオブジェクトと、該第一グラフィックオブジェクトに続く、次のグラフィックオブジェクトである第二グラフィックオブジェクトとを取得する取得部と、一括してレンダリングするグラフィックオブジェクトの集合単位を規定するためのパーティションであって、上記第一グラフィックオブジェクトの種類に応じた第一パーティションに、上記第一グラフィックオブジェクトを分類する第一分類部と、上記第一グラフィックオブジェクトの種類と、上記第二グラフィックオブジェクトの種類とを比較する比較部と、上記比較部により、上記第一グラフィックオブジェクトと上記第二グラフィックオブジェクトとの種類が一致しない場合、上記第一パーティションとは異なるパーティションである第二パーティションに上記第二グラフィックオブジェクトを分類し、上記第一グラフィックオブジェクトと上記第二グラフィックオブジェクトとの種類が一致する場合は、上記第一パーティションに第二グラフィックオブジェクトを分類する第二分類部と、を備えることを特徴とする。
【0025】
ここで、グラフィックオブジェクトとは、印刷データに関連付けられたデータであって、描画出力可能なデータ(印刷用画素値)よりも抽象度が高い中間データである。グラフィックオブジェクトの種類としては、例えば、テキストオブジェクト、ベクターオブジェクト、およびビットマップオブジェクトなどが挙げられる。
【0026】
上記した構成によると、上記取得部を備えるため、連続する、第一グラフィックオブジェクトと第二グラフィックオブジェクトとを取得することができる。また、第一分類部を備えるため、まず、第一グラフィックオブジェクトを、その種類に応じて第一パーティションに分類することができる。
【0027】
また、上記比較部および第二分類部をさらに備えるため、第一グラフィックオブジェクトの次に取得した第二グラフィックオブジェクトがこの第一グラフィックオブジェクトと同じ種類か否か判定することができる。そして、両者の種類が異なる場合、第二グラフィックオブジェクトを第一パーティションとは異なる第二パーティションに分類することができる。一方、同じ種類の場合、第二グラフィックオブジェクトを第一グラフィックオブジェクトと同じ第一パーティションに分類することができる。
【0028】
このため、同じ種類のグラフィックオブジェクトが連続する場合は、同じパーティションに分類し、それらを一括してレンダリングすることができる。一方、異なる種類の第二グラフィックオブジェクトが後続する場合は、第一パーティションとは異なる第二パーティションにこの第二グラフィックオブジェクトを分類することができる。これにより、グラフィックオブジェクトをある程度まとめてレンダリングすることができるとともに、適当に別のパーティションに分類させレンダリングを分散させることもできる。
【0029】
したがって、印刷データに含まれるグラフィックオブジェクトの種類に偏りがある場合であっても、ある特定のレンダリング装置に処理が集中してしまうことを防ぐことができる。
【0030】
よって、本発明に係る印刷システムは、効率よくグラフィックオブジェクトのレンダリングを行うことができるという効果を奏する。
【0031】
また、本発明に係る印刷システムは、上記した構成において、上記グラフィックリストに含まれるグラフィックオブジェクトの種類は、印刷データにおける文字列とそれに関連するテキスト属性とを含むテキストオブジェクト、印刷データにおけるアウトライン、または塗りつぶし値と関連づけて一定の形状を含むベクターオブジェクト、および印刷データにおける高さ値、幅値、および連続する画素の明度を含むピクトリアルオブジェクトのうちのいずれかであってもよい。
【0032】
また、本発明に係る印刷システムは、上記した構成において、上記第一パーティションと、該第一パーティションに分類されたグラフィックオブジェクトのレンダリングを専用に行う第一レンダリング部とを対応付けるとともに、上記第二パーティションと、該第二パーティションに分類されたグラフィックオブジェクトのレンダリングを専用に行う第二レンダリング部とを対応付ける対応付け部をさらに備えるように構成されていてもよい。
【0033】
上記構成によると、対応付け部をさらに備えるため、第一パーティションおよび第二パーティションそれぞれに分類されたグラフィックオブジェクトに対してレンダリングを行うために、第一レンダリング部および第二レンダリング部を適切に割り当てることができる。
【0034】
また、本発明に係る印刷システムは、上記した構成において、上記対応付け部により対応付けられており、上記第一パーティションに分類されたグラフィックオブジェクトのレンダリングを実行する上記第一レンダリング部と、上記対応付け部により対応付けられており、上記第二パーティションに分類されたグラフィックオブジェクトのレンダリングを実行する第二レンダリング部と、を備えるように構成されていてもよい。
【0035】
また、本発明に係る印刷システムは、上記した構成において、上記第一レンダリング装置と上記第二レンダリング装置とを並列して実行するように構成されていてもよい。
【0036】
なお、上記第一レンダリング装置と上記第二レンダリング装置とを並列して実行する場合、両者のレンダリングを同時に行う場合も含むことができる。
【0037】
また、本発明に係る印刷システムは、上記した構成において、上記第一パーティションおよび第二パーティションには、レンダリングされる順番であるレンダリング順情報が対応付けられており、上記レンダリング順情報に基づく順番で、上記第一レンダリング部および上記第二レンダリング部は、それぞれレンダリングを実行するように構成されていてもよい。
【0038】
上記した構成によると、グラフィックオブジェクトを分類するパーティションにはレンダリング順情報が対応づけられている。このため、グラフィックオブジェクトを適切なレンダリング順情報が対応づけられているパーティションに分類することで、グラフィックオブジェクトそれぞれのレンダリングを効率的に行うことができる。
【0039】
また、本発明に係る印刷システムは、上記した構成において、上記第一レンダリング部および上記第二レンダリング部によってそれぞれレンダリングされたグラフィックオブジェクトを順次ビットブリットするビットブリット部を更に備えるように構成されていてもよい。
【発明の効果】
【0040】
本発明に係る印刷システムの制御方法は、以上のように、印刷データに関連づけられた、複数のグラフィックオブジェクトが連続するストリームデータであるグラフィックリストをレンダリングして描画出力可能なデータである印刷用画素値を作成する印刷システムの制御方法であって、上記グラフィックリストから第一グラフィックオブジェクトと、該第一グラフィックオブジェクトに続く、次のグラフィックオブジェクトである第二グラフィックオブジェクトとを取得する取得ステップと、一括してレンダリングするグラフィックオブジェクトの集合単位を規定するためのパーティションであって、上記第一グラフィックオブジェクトの種類に応じた第一パーティションに、上記第一グラフィックオブジェクトを分類する第一分類ステップと、上記第一グラフィックオブジェクトの種類と、上記第二グラフィックオブジェクトの種類とを比較する比較ステップと、上記比較ステップにおいて、上記第一グラフィックオブジェクトと上記第二グラフィックオブジェクトとの種類が一致しない場合、上記第一パーティションとは異なるパーティションである第二パーティションに上記第二グラフィックオブジェクトを分類し、上記第一グラフィックオブジェクトと上記第二グラフィックオブジェクトとの種類が一致する場合は、上記第一パーティションに第二グラフィックオブジェクトを分類する第二分類ステップと、を含むことを特徴とする。
【0041】
よって、本発明に係る印刷システムの制御方法は、効率よくグラフィックオブジェクトのレンダリングを行うことができるという効果を奏する。
【0042】
本発明に係る印刷システムは、上記した課題を解決するために、印刷データに関連づけられた、複数のグラフィックオブジェクトが連続するストリームデータであるグラフィックリストをレンダリングして描画出力可能なデータである印刷用画素値を作成する印刷システムであって、グラフィックオブジェクトをレンダリングするレンダリング装置と、上記グラフィックリストから第一グラフィックオブジェクトと、該第一グラフィックオブジェクトに続く、次のグラフィックオブジェクトである第二グラフィックオブジェクトとを取得する取得部と、一括してレンダリングするグラフィックオブジェクトの集合単位を規定するためのパーティションであって、上記第一グラフィックオブジェクトの種類に応じた第一パーティションに、上記第一グラフィックオブジェクトを分類する第一分類部と、上記第一グラフィックオブジェクトの種類と、上記第二グラフィックオブジェクトの種類とを比較する比較部と、上記比較部により、上記第一グラフィックオブジェクトと上記第二グラフィックオブジェクトとの種類が一致しない場合、上記第一パーティションとは異なるパーティションである第二パーティションに上記第二グラフィックオブジェクトを分類し、上記第一グラフィックオブジェクトと上記第二グラフィックオブジェクトとの種類が一致する場合は、上記第一パーティションに第二グラフィックオブジェクトを分類する第二分類部と、を備えることを特徴とする。
【0043】
よって、本発明に係る印刷システムの制御方法は、効率よくグラフィックオブジェクトのレンダリングを行うことができるという効果を奏する。
【図面の簡単な説明】
【0044】
【図1】本発明のいくつかの実施形態を示すものであり、印刷装置と通信可能に接続されたホストコンピューティングシステムを備える印刷システムの一例を示す図である。
【図2】本発明の実施形態を示すものであり、グラフィックリストを複数のパーティションに分割し、当該パーティションをレンダリングするステップを示すフローチャートである。
【図3】本発明の実施形態を示すものであり、同じグラフィックオブジェクトタイプとなる一連のグラフィックオブジェクトに基づき、グラフィックリストのパーティションを生成するステップを示すフローチャートである。
【図4】本発明の実施形態を示すものであり、複数のグラフィックオブジェクトを含むページ例を示す図である。
【図5】本発明の実施形態を示すものであり、複数のグラフィックオブジェクトを含むページ例を示す図である。
【図6a】本発明の実施形態を示すものであり、同じグラフィックオブジェクトタイプとなるグラフィックオブジェクトに基づきグラフィックリストの分割処理の実行を行う、本発明の実施例に従って、図4のページ例をレンダリングする処理を示す図である。
【図6b】本発明の実施形態を示すものであり、同じグラフィックオブジェクトタイプとなるグラフィックオブジェクトに基づきグラフィックリストの分割処理の実行を行う、本発明の実施例に従って、図4のページ例をレンダリングする処理を示す図である。
【図7a】本発明の実施形態を示すものであり、同じグラフィックオブジェクトタイプとなるグラフィックオブジェクトに基づきグラフィックリストの分割処理の実行を行う、本発明の実施例に従って、図5のページ例をレンダリングする処理を示す図である。
【図7b】本発明の実施形態を示すものであり、同じグラフィックオブジェクトタイプとなるグラフィックオブジェクトに基づきグラフィックリストの分割処理の実行を行う、本発明の実施例に従って、図5のページ例をレンダリングする処理を示す図である。
【図8】本発明の実施形態を示すものであり、グラフィックオブジェクトの重畳状態に基づいてグラフィックリストをパーティションに分割するステップを示すフローチャートである。
【図9】本発明の実施形態を示すものであり、グラフィックオブジェクトの重畳状態に基づいてグラフィックリストをパーティションに分割するステップを示すフローチャートである。
【図10a】本発明の実施形態を示すものであり、同じグラフィックオブジェクトタイプとなるグラフィックオブジェクトに基づきグラフィックリストの分割処理の実行を行う、本発明の実施例に従って、図4のページ例をレンダリングする処理を示す図である。
【図10b】本発明の実施形態を示すものであり、同じグラフィックオブジェクトタイプとなるグラフィックオブジェクトに基づきグラフィックリストの分割処理の実行を行う、本発明の実施例に従って、図4のページ例をレンダリングする処理を示す図である。
【図11】本発明の実施形態に係る一例を示すものであり、グラフィックリスト要素の、互いに分離された、重畳するグラフィックオブジェクト群への分割に基づいて、グラフィックリストをパーティションに分割する処理を示すフローチャートである。
【図12a】グラフィックリスト要素の、互いに分離された、重畳するグラフィックオブジェクト群への分割に基づいて、グラフィックリストをパーティションに分割する本発明の実施の形態によって、図4に示すページ例をレンダリングする処理を示す図である。
【図12b】グラフィックリスト要素の、互いに分離された、重畳するグラフィックオブジェクト群への分割に基づいて、グラフィックリストをパーティションに分割する本発明の実施の形態によって、図4に示すページ例をレンダリングする処理を示す図である。
【図13】本発明の実施形態を示すものであり、Z値に基づいてグラフィックリストをパーティションに分割するステップを示すフローチャートである。
【図14a】本発明の実施形態を示すものであり、Z値に基づいてグラフィックリストをパーティションに分割する、本発明の実施例に従って図4のページ例をレンダリングする処理を示す図である。
【図14b】本発明の実施形態を示すものであり、Z値に基づいてグラフィックリストをパーティションに分割する、本発明の実施例に従って図4のページ例をレンダリングする処理を示す図である。
【図15a】本発明の実施形態を示すものであり、グラフィックオブジェクトの一例と関連付けられたバウンディングボックスの一例を示す図である。
【図15b】本発明の実施形態を示すものであり、グラフィックオブジェクトの一例と関連するバウンディング形状を加算した例を示す図である。
【図15c】本発明の実施形態を示すものであり、グラフィックオブジェクトの一例と関連するバウンディング形状を減算する例を示す図である。
【図16a】本発明の実施形態を示すものであり、グリッドページを用いてグラフィックオブジェクトの重畳状態を判断するステップを示すフローチャートである。
【図16b】本発明の実施形態を示すものであり、グリッドページを用いてグラフィックオブジェクトの重畳状態を判断するステップを示すフローチャートである。
【図17】本発明の実施形態を示すものであり、バウンディングボックスとグリッド要素との一例を示す図である。
【図18a】本発明の実施形態を示すものであり、グリッドページを用いて「重畳」パーティションと「非重畳」パーティションを判断するステップを示すフローチャートである。
【図18b】本発明の実施形態を示すものであり、グリッドページを用いて「重畳」パーティションと「非重畳」パーティションを判断するステップを示すフローチャートである。
【図19a】本発明の実施形態を示すものであり、グリッドページを用いて、奥行き情報に基づいてパーティションを判断するステップを示すフローチャートである。
【図19b】本発明の実施形態を示すものであり、グリッドページを用いて、奥行き情報に基づいてパーティションを判断するステップを示すフローチャートである。
【図20】本発明のいくつかの実施形態で機能するマルチコアシステムの一例を示す図である。
【図21】本発明の実施形態を示すものであり、パーティションをレンダリング装置と関連付けるパーティション・レンダリング装置スケジューラを示す図である。
【図22】本発明の実施形態を示すものであり、カスケード式のパーティション分割の一例を示すフローチャートである。
【図23】本発明の実施形態を示すものであり、カスケード式のパーティション分割の一例を示すフローチャートである。
【図24】本発明の実施形態を示すものであり、本発明のいくつかの実施形態に従ってプリンタドライバでテキストパーティションをエンコードするステップを示すフローチャートである。
【図25】本発明の実施形態を示すものであり、本発明のいくつかの実施形態に従ってプリンタドライバでテキストパーティションをデコードするステップを示すフローチャートである。
【図26】本発明のいくつかの実施形態で機能する、印刷装置とプリンタサーバを介して通信可能に接続されたホストコンピューティングシステムからなる印刷システムの一例を示す図である。
【図27】本発明のいくつかの実施形態で機能する、クラウドコンピューティング環境の一部であり、印刷装置と通信可能に接続されたホストコンピューティングシステムを備えた印刷システムの一例を示す図である。
【図28】本発明のいくつかの実施形態で機能する、クラウドコンピューティング環境の一部であり、印刷装置と通信可能に接続されたホストコンピューティングシステムを備えた印刷システムの一例を示す図である。
【図29】本発明の実施形態を示すものであり、パーティションへの分割処理を示すフローチャートである。
【図30】本発明の実施形態を示すものであり、印刷データのデータ構造の一例を示す図である。
【発明を実施するための形態】
【0045】
本発明の、前述した目的、特徴、利点およびその他の目的、特徴、利点は、以下の発明の詳細な説明と添付の図面を参照することによってさらに理解され得る。
【0046】
また、本発明の実施の諸形態は、図面を参照することにより、よりよく理解されるであろう。すべての図面において、同じ部材には同じ番号が振られている。なお、この図面が以下の詳細な説明部分に含まれることは自明である。
【0047】
図面にて概して記述し、図示した本発明の構成部材がさまざまの異なった構成を取り得ることは、容易に理解できるであろう。したがって、本発明の方法およびシステムの実施の諸形態を以下により詳細に述べるが、それらは本発明の範囲を限定するものではなく、本実施の諸形態の代表例にすぎない。
【0048】
本発明の実施形態に係る構成部材は、少なくともハードウェア、ファームウェア、およびソフトウェアのうちのいずれか1つにより実現できる。本発明に係る実施形態ではこれらのうち一つを用いて説明されるが、当業者ならば、本発明の範囲において、これらのいずれであっても本発明の実施形態に係る構成部材を実現できる。
【0049】
ところで、印刷システムにおいて電子文書を処理するためには、印刷データを解釈し、レンダリングするためのコンピュータによる集約的作業が要求される。つまり、グラフィック(グラフィカルやグラフィクスでも同じ)オブジェクトのストリームを、ホストオペレーティングシステムのグラフィックインターフェースサービスから、グラフィックオブジェクトを解析するグラフィクスレンダリングサービスに送信し、オブジェクトベースの情報を印刷用画素値に変換する。なお、グラフィックオブジェクトから印刷用画素値を作成する処理のことを本明細書においてレンダリングと称するものとする。また、本実施の形態に係るグラフィックオブジェクトは、印刷ジョブから生成されるデータであって、描画出力可能なデータ(印刷用画素値)よりも抽象度が高い中間データである。グラフィックオブジェクトは、少なくとも1種類の基本図形を含む形式で表現される。なお、グラフィックオブジェクトのタイプ(種類)としては、例えば、テキストオブジェクト、ベクターオブジェクト、およびビットマップオブジェクトなどが挙げられる。
【0050】
また、本明細書においてグラフィックオブジェクトのストリームデータをグラフィックリストと称するものとする。グラフィックリストの例としては、表示リスト、DDI(Device Driver Interface;デバイスドライバーインターフェース)の呼び出しリスト、PDL(Page Description Language;ページ記述言語)要素のリスト、およびその他のグラフィックのリストが挙げられるが、これらに限定されるものではなく、グラフィックオブジェクトに関する様々なリストをグラフィックリストと称することができる。また、グラフィックリストはページと関連付けられていてもよいし、ページ群と関連付けられていてもよい。あるいは、グラフィックリストはグラフィックリストのパーティションと関連付けられていてもよい。なお、このパーティションとは、同じレンダリング装置により一括してレンダリングするグラフィックオブジェクトの集合単位を規定するものである。つまり、同じパーティションに分類されたグラフィックオブジェクトは同じレンダリング装置によりまとめてレンダリングされることとなる。また、本実施形態に係る印刷データは、例えば、図30に示すように、複数のグラフィックオブジェクトが連続するストリームデータ(グラフィックリスト)を含むデータ構造となっている。また、印刷データの先頭部分に配置された管理情報は、印刷データの内容を管理するための情報である。管理情報として、例えば、印刷データのデータ長、印刷対象のページを識別するページID、印刷データのフレーム構造等に関する情報が挙げられる。なお、グラフィックオブジェクトAとグラフィックオブジェクトBとは、グラフィックオブジェクトのタイプ(種類)が同じ場合もあるし、異なる場合もある。つまり、必ずしも同じタイプのグラフィックオブジェクトが連続するわけではない。
【0051】
印刷システムの一例においては、ホストコンピューティング・デバイスで実行されるアプリケーションは、このデバイスが備えるホストオペレーティングシステム(OS)機能を用いて、このデバイスと通信可能に接続されている印刷装置に対して、OSグラフィクスコマンドを繰り返し実行する。つまり、プリンタドライバがこのOSグラフィクスコマンドを解釈し、修正し、このOS機能を利用する印刷装置に送る。印刷装置はそのグラフィクス指示を解析し、追加処理を行い、作成された出力ページを印刷する。
【0052】
プリンタドライバは、OSコマンドを、印刷装置が理解できる形式で記述された指示ストリームに翻訳する。例えば、ある印刷システムでは、プリンタドライバがOSグラフィクスコマンドを印字ヘッドコマンドに翻訳する。これらの印刷システムは、ホストベースの印刷処理システムと見なすことができる。なお、ホストベースの印刷処理システムとは、印刷処理を、主としてホストコンピューティング・デバイスが行う印刷処理システムである。また、他の印刷処理システムとしては、プリンタドライバが「抄訳」を行い、OSグラフィクスコマンドとほぼ同じコマンドを生成する構成であってもよい。この印刷処理システムは、印刷装置ベースの印刷処理システムと見なすことができ、印刷処理を主として印刷装置で行う。ホストベースの印刷処理システムとも印刷装置ベースの印刷処理システムとも異なる印刷処理システムとしては、複合型印刷処理システムが挙げられる。この印刷処理システムでは、プリンタドライバが中間翻訳を行い、印刷処理をホストコンピューティング・デバイスと印刷装置との間で分散して行う。
【0053】
グラフィックオブジェクトは、テキストオブジェクト、ベクターオブジェクト、およびビットマップオブジェクトに分類されるものである。テキストオブジェクトは、文字列と、それに関連するテキスト属性とを含む。テキスト属性の例としては、フォント、サイズ、色、ボールド体やイタリック体のような修飾子などがある。ベクターオブジェクト(ビジネスグラフィックやグラフィカルアートとも称される)では、アウトラインまたは塗りつぶし値と関連づけて一定の形状を含んでいる。なお、一定の形状としては、例えば、線、矩形、円、多角形、またはその他の一定形状が挙げられる。ベクターオブジェクトと関連する属性の例としては、線種、線の太さ、線の色、塗りつぶし色、塗りつぶしパターン、およびベクターオブジェクトを記述するその他の属性がある。ビットマップオブジェクト(イメージオブジェクトやピクトリアルオブジェクトとも称される)は、高さ値、幅値、および連続する画素の明度を含む。ビットマップオブジェクトと関連する属性の例としては、大きさ、色、およびその他のイメージ属性がある。
【0054】
グラフィックオブジェクトは、関連する透明度のレベルを含んでいる。この透明度のレベルによって、当該グラフィックオブジェクトの下側に配置されるグラフィックオブジェクトの画素値と、当該グラフィックオブジェクトの画素値との混合を当該グラフィックオブジェクトのレンダリング時に調整する。混合動作には、画素値がRGB(赤・緑・青)色空間にあることが必要であり、このためCMYK(シアン・マゼンタ・黄色・黒)色空間にて混合オブジェクトを直接レンダリングすることが不可能となる。他の動作、たとえばラスタ動作(ROP)もまた、RGB色空間に限定される。
【0055】
従来の印刷システムでは、ホストプロセッサ、または印刷装置の内蔵プロセッサのどちらか一方のみを用いてレンダリング動作を行うため、プロセッサ固有の性能に依存した限界範囲に制限される。さらに、コンピュータが有するプロセッサが進化するにつれて、多くのホストコンピューティング・デバイスや印刷装置は、少なくともマルチコアプロセッサ、および専用プロセッサのいずれか1つを備えるようになっている。専用プロセッサの例としては、グラフィクスカード、デジタル信号プロセッサ(Digital Signal Processors;DSP)、グラフィクスASIC(Application Specific Integrated Circuits)などがある。マルチプロセッサおよび専用プロセッサは、印刷処理やレンダリングを行う際に有効に用いられていない。さらに、データを「順序通りに」レンダリングしてしまうという制限により、マルチプロセッサに処理を分散させるシステムが非効率となる。このため、印刷システムにおける処理リソースが有効に使われない。それゆえ、別々の処理ユニットに渡ってレンダリング動作を分散させ、グラフィックオブジェクトを「順不同で」レンダリングし、かつ複数のグラフィックオブジェクトを同時に並列してレンダリングすることができる方法およびシステムが望まれる。
【0056】
そこで、本実施の諸形態では、マルチプロセッサを利用する印刷システム環境においてリソースを有効に用いる方法とシステムとを提供する。図1を参照すると印刷処理システムの一例として、印刷処理システムは、ホストコンピューティング・デバイス10を備え、このホストコンピューティング・デバイス10はコミュニケーションリンク12を通じて印刷装置14と通信可能に接続されている。
【0057】
ホストコンピューティング・デバイス10の例としては、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ノートブックコンピュータ、パーソナルコンピュータ、携帯型コンピューティング・デバイス、ワークステーションコンピュータ、コンピュータサーバ、メインフレームコンピュータ、家庭用電化製品(デジタルカメラ、携帯情報端末(PDA)、自動車電話、携帯電話など)、および印刷ジョブデータを生成できるその他のコンピューティング・デバイスが挙げられるが、これらに限定されるものではない。
【0058】
ホストコンピューティング・デバイス10は、コミュニケーションリンク12を通じて印刷装置14と通信可能に接続されている。この通信リンクによる接続例としては、ローカルエリアネットワーク(LAN)接続、ワイドエリアネットワーク(WAN)接続、インターネット接続、公衆交換電話網(PSTN)、シリアルケーブルなどを使ったネットワーク接続、あるいはその他の有線または無線通信リンクによる接続が挙げられるが、これらに限られるものではない。
【0059】
印刷装置14の例としては、レーザープリンタ、インクジェットプリンタ、デジタルコピー機、ファクシミリ機、単機能画像装置、多機能周辺機器(MFP)画像装置、あるいは電子データを用いてハードコピーを生成できるその他の印刷装置が挙げられるが、それらに限られるものではない。
【0060】
図2を参照すると、本発明の他の実施形態では、複数のグラフィックリスト要素からなるグラフィックリストを受付け(ステップS20)、当該グラフィックリストと関連する複数のパーティション(層とも称する)を生成し(ステップS22)、これらのパーティションに分類されたグラフィックリスト要素をレンダリングして(ステップS24)、中間ビットマップ層をビットブリットし(ステップS26)、出力ページに関連する画素値を出力する(ステップS28)。本発明に係る実施形態では、グラフィックリスト要素にはグラフィックオブジェクトが含まれている。なお、ステップS26にてビットブリットするとは、二つまたはそれ以上のビットマップを合わせることをいう。また、このビットブリット動作例としては、read-modify-writeメモリ動作、メモリ書き込み動作、メモリコピー動作などが挙げられる。
【0061】
本発明のいくつかの実施形態では、各パーティションは他のパーティションから独立してレンダリングされている。また、本発明のいくつかの実施形態では、パーティションをさらに複数の副次パーティションに再分割することができる。また、本発明のいくつかの実施形態では、二つのパーティションを併合して、あるいは別の形で組み合わせ、一つのパーティションとすることができる。本発明のいくつかの実施形態では、パーティションを、パーティションのタイプ毎に適したプロセッサを用いてレンダリングすることができる。本発明のいくつかの実施形態では、専用のレンダリング装置を用いてパーティションをレンダリングする。本発明のいくつかの実施形態では、パーティションをレンダリングするプロセッサを、そのパーティションの複雑さに応じて選択してもよい。また、本発明のいくつかの実施形態では、パーティションをレンダリングするプロセッサを、そのパーティションに含まれるグラフィックオブジェクト数に応じて選択してもよい。また、本発明のいくつかの実施形態では、パーティションをレンダリングするプロセッサを、そのパーティション範囲のサイズに基づき選択してもよい。
【0062】
本発明のいくつかの実施形態の一例では、パーティションは、そのパーティションと関連付けられたグラフィックリスト要素を記録したコピーを個別に有している。また、他の実施形態の一例では、パーティションは、オリジナルのグラフィックリスト中に、そのパーティションに関連づけられたグラフィックリスト要素を示すポインタを含んでいてもよい。さらに他の実施形態の一例では、グラフィックリスト要素がどのパーティションに属するかについては、そのグラフィックリスト要素の参照テーブルにより示す構成としてもよい。さらに他の実施形態の一例では、パーティションは、オリジナルのグラフィックリスト中に基準ポインタを含み、その基準ポイントから当該パーティションに属するグラフィックリスト要素までのオフセットのリストを含むように構成してもよい。当業者ならばわかるように、パーティションを記憶したり、あるいは示したりする方法やシステムには、様々なものがある。
【0063】
(オブジェクトタイプ別にパーティション分割を実行する処理)
図2、3を参照し、本発明のいくつかの実施形態の一例について説明する。まず前提として、グラフィックリスト要素に関連付けられたグラフィックオブジェクトのタイプに応じて、ステップS22に示すように、グラフィックリストを分割し、複数のパーティションを生成するものとする。これらの実施形態では、まず、印刷データに関連づけられた、連続する複数のグラフィックリスト要素(グラフィックオブジェクト)を含むグラフィックリストを受け付け、グラフィックリストから第一グラフィックリスト要素を取得する(ステップS30)。そして、第一グラフィックリスト要素を第一パーティションに割り当てる(ステップS32)。そして、まだ割り当てられていないグラフィックリスト要素が残っているか判断する(ステップS34)。すべてのグラフィックリスト要素が各パーティションに割り当てられている場合(ステップS34において「NO」)、パーティションへの分割を終了する。もし、パーティションに割り当てられていないグラフィックリスト要素がある場合(ステップS34において「YES」)、第一グラフィックリスト要素に続く次のグラフィックリスト要素を取得する(ステップS38)。新たに取得した次のグラフィックリスト要素のオブジェクトタイプを、現行のグラフィックリスト要素のオブジェクトタイプと同じであるか比較する(ステップS40)。もし両者のオブジェクトタイプが同じならば(ステップS40において「YES」)、新たに取得した次のグラフィックリスト要素を現行のグラフィックリスト要素と同じパーティションに加える(ステップS42)。新たに取得した次のグラフィックリスト要素を、次の比較に用いる現行のグラフィックリスト要素とする(ステップS44)。そして、グラフィックリストを調べて、まだ割り当てられていないグラフィックリスト要素が残っているか判断する(ステップS34)。もし新たに取得した次のグラフィックリスト要素のオブジェクトタイプと現行のグラフィックリスト要素のオブジェクトタイプとが異なる場合(ステップS40において「NO」の場合)、現行のパーティションとして新たなパーティションを形成し(ステップS46)、新たに取得した次のグラフィックリスト要素をこの新たに形成したパーティションに加える(ステップS48)。新たに取得した次のグラフィックリスト要素を次の比較に用いる現行のグラフィックリスト要素とする(ステップS50)。そして、グラフィックリストを調べて、まだ割り当てられていないグラフィックリスト要素が残っているどうか判断する(ステップS34)。本発明ではこの実施形態を、「オブジェクトタイプ別にパーティション分割を実行する処理」を示す実施形態と称することとする。なお、新たに取得したグラフィックリスト要素の比較対象となる、このグラフィックリスト要素よりも前に取得したグラフィックリスト要素を現行のグラフィックリスト要素と称する。また、グラフィックリスト要素を割り当てる対象となっているパーティションを現行のパーティションと称する。
【0064】
以上のように本実施形態では、連続する、第一グラフィックリスト要素(第一グラフィックオブジェクト)と第二グラフィックリスト要素(第二グラフィックオブジェクト)とを取得することができる。そしてまず、第一グラフィックリスト要素を、その種類(オブジェクトタイプ)に応じて第一パーティションに分類する。また、第一グラフィックリスト要素の次に続くグラフィックリスト要素(第二グラフィックオブジェクト)がこの第一グラフィックリスト要素と同じオブジェクトタイプか否か判定することができる。そして、両者のオブジェクトタイプが異なる場合、第一パーティションとは異なる新たなパーティション(第二パーティション)を加える。そして、次に続くグラフィックリスト要素をこの新たなパーティションに分類することができる。一方、同じオブジェクトタイプの場合、次に続くグラフィックリスト要素を第一グラフィックリスト要素と同じ第一パーティションに分類することができる。
【0065】
このため、同じオブジェクトタイプのグラフィックリスト要素が連続する場合は、同じパーティションに分類し、それらを一括してレンダリングすることができる。一方、異なるオブジェクトタイプのグラフィックリスト要素が後続する場合は、第一パーティションとは異なる新たなパーティションにこの後続するグラフィックリスト要素を分類することができる。これにより、グラフィックリスト要素をある程度まとめてレンダリングすることができるとともに、適当に別のパーティションに分類させレンダリングを分散させることもできる。
【0066】
したがって、印刷データに含まれるグラフィックリスト要素の種類に偏りがある場合であっても、ある特定のレンダリング装置に処理が集中してしまうことを防ぐことができる。
【0067】
本発明のいくつかの実施形態では、グラフィックオブジェクトのタイプをレンダリング装置機能に関連付けることができる。また、本発明のいくつかの実施形態では、グラフィックオブジェクトのタイプを、レンダリング装置機能と同様の処理用件に対応したグラフィックオブジェクト属性と関連付けてもよい。第一の専用プロセッサで処理されるグラフィックオブジェクトは、第一のグラフィックオブジェクトタイプに属するグラフィックオブジェクトに分類される。一方、第二の専用プロセッサで処理されるグラフィックオブジェクトは、第二のグラフィックオブジェクトタイプに属するグラフィックオブジェクトに分類される。本発明のいくつかの実施形態では、「オブジェクトタイプ別にパーティション分割を実行する処理」において、テキストグラフィックオブジェクトであるのか、ベクターグラフィックオブジェクトであるのか、それともピクトリアルグラフィックオブジェクトであるにかに基づいて、グラフィックリストをパーティション分割する。なお、これらの実施形態では、グラフィックオブジェクトタイプは、テキスト、ベクター、およびピクトリアルとなる。本発明の他の実施形態では、「オブジェクトタイプ別にパーティション分割を実行する処理」において、カラーグラフィックオブジェクトであるのか、あるいは、白黒グラフィックオブジェクトであるのかに基づいて、グラフィックリストをパーティション分割する。これらの実施形態では、グラフィックオブジェクトタイプは、カラーと白黒となる。本発明のさらなる他の実施形態では、「オブジェクトタイプ別にパーティション分割を実行する処理」において、輪郭付きのグラフィックオブジェクトなのか、あるいは輪郭なしのグラフィックオブジェクトなのかに基づいて、グラフィックリストをパーティション分割する。これらの実施形態では、グラフィックオブジェクトタイプは、輪郭付きと輪郭なしとなる。本発明のさらなる他の実施形態では、「オブジェクトタイプ別にパーティション分割を実行する処理」において、三次元グラフィックオブジェクトなのか非三次元グラフィックオブジェクトなのかに基づいて、グラフィックリストをパーティション分割する。これらの実施形態では、グラフィックオブジェクトタイプは、三次元と非三次元となる。
【0068】
「オブジェクトタイプ別にパーティション分割を実行する処理」を示すいくつかの実施形態では、パーティションには次のような情報が対応付けられている。すなわち、パーティションと関連付けられているオブジェクトタイプ(例えば、テキスト、ベクター、ピクトリアルなどが挙げられるが、これらに限られるものではない)、レンダリングのシーケンスにおいてパーティションがレンダリングされる順番(レンダリング順情報)、パーティションをレンダリングするために使われるプロセッサのタイプまたは番号、パーティションにおいて実施される機能のリスト、パーティションに関連付けられたグラフィックリスト要素を含むパーティションボディなどである。
【0069】
「オブジェクトタイプ別にパーティション分割を実行する処理」を示す本発明のいくつかの実施形態では、パーティションを、該パーティションと関連付けられたグラフィックオブジェクトタイプに応じた専用のレンダリング装置でレンダリングする。例えば、テキストパーティションはテキストレンダリング装置でレンダリングされ、ベクターパーティションはグラフィカルアートレンダリング装置でレンダリングされ、ビットマップはピクトリアルレンダリング装置でレンダリングされる。また他の実施形態では、一以上のパーティションを、汎用レンダリング装置でレンダリングしてもよい。また、いくつかの実施形態では、レンダリング装置が利用可能かなど他の条件に基づいて、パーティションをレンダリング装置でレンダリングする。
【0070】
「オブジェクトタイプ別パーティション分割を実行する処理」を、図4のページ60を参照して説明する。ページ60には、ページ60に最初に配置された第一テキストグラフィックオブジェクト62、ページ60に二番目に配置された第一ベクターグラフィックオブジェクト64、ページ60に三番目に配置された第二テキストグラフィックオブジェクト66、ページ60に四番目に配置された第二ベクターグラフィックオブジェクト68、ページ60に五番目に配置された第一ビットマップグラフィックオブジェクト70、ページ60に六番目に配置された第三ベクターグラフィックオブジェクト72、ページ60に七番目に配置された第二ビットマップグラフィックオブジェクト74を含んでいる。このページ60に関連付けられたグラフィックリスト例は次のようになる;
1. DrawText (Text1, Text2, Text3, Text4, Text5) 62
2. DrawRectangle (red) 64
3. DrawText (Text6, Text7) 66
4. DrawEllipse (blue) 68
5. DrawPatch (pictorial_image_1) 70
6. DrawRectangle (green) 72
7. DrawPatch (pictorial_image_2) 74
上記において、「Text4」は「赤色の矩形」64に覆われている。それぞれの色は階調を異ならせることによって示される。画像70と画像74とは異なるハッチング−マークによって区別して描かれている。グラフィックリスト要素には、各要素毎の配置場所情報がさらに含まれている。このグラフィックリストの一例では、本発明の「オブジェクトタイプ別にパーティション分割を実行する処理」を示す実施形態によると、グラフィックリスト要素を含む、七つのパーティションに分割される。本発明のいくつかの実施形態では、各パーティションに関連付けられた情報の一例として、表1の例を挙げることができる。
【0071】
【表1】
【0072】
本発明のいくつかの実施形態によれば、第一のパーティションには、グラフィックリストのうち、第一のグラフィックリスト要素(第一グラフィックオブジェクト)、すなわち「DrawText (Text1, Text2, Text3, Text4, Text5)」が分類されている。そして、この第一のパーティションは、パーティションタイプとして、テキストタイプグラフィックオブジェクトと関連付けられている。次に第二のグラフィックリスト要素(第二グラフィックオブジェクト)「DrawRectangle (Red)」はテキストタイプグラフィックオブジェクトではないので、第二のグラフィックリスト要素を調べた際に第二のパーティションが作成される。第二のパーティションは、パーティションタイプとして、ベクタータイプグラフィックオブジェクトに関連付けられており、第二のグラフィックリスト要素が分類されている。第三のグラフィックリスト要素「DrawText(Text6, Text7)」を調べると、オブジェクトタイプがベクターからテキストに変わっているので、第三のパーティションが作られる。第三のパーティションは、パーティションタイプとして、テキストタイプグラフィックオブジェクトと関連付けられており、第三のグラフィックリスト要素が分類されている。第四のグラフィックリスト要素「DrawEllipse(blue)」を調べると、第四のグラフィックリスト要素がベクタータイプオブジェクトであり現行(第三)のパーティションがテキストオブジェクトに関連付けられているので、第四のパーティションが作られることになる。第四のパーティションはパーティションタイプとして、ベクタータイプグラフィックオブジェクトと関連付けられており、第四のグラフィックリスト要素が分離されている。第五のグラフィックリスト要素「DrawPatch(pictorial_image_1)」を調べると、第五のグラフィックリスト要素はビットマップタイプオブジェクトなので、第五のパーティションが作られる。第五のパーティションは、パーティションタイプとして、ビットマップオブジェクトに関連付けられており、第五のグラフィックリスト要素が分類されている。第六のグラフィックリスト要素「DrawRectangle(green)」を受け付けると、オブジェクトタイプがビットマップからベクターに変わっているので、新たなパーティションが必要となる。第六のパーティションは、パーティションタイプとして、ベクターオブジェクトに関連付けられており、第六のグラフィックリスト要素が分類されている。第七のグラフィックリスト要素「DrawPatch(pictorial_image_2)」を調べると、オブジェクトタイプがベクターからビットマップに変わっているので、第七のパーティションが作られる。第七のパーティションは、ビットマップタイプオブジェクトと関連付けられており、第七のグラフィックリスト要素を含んでいる。
【0073】
さらにまた「オブジェクトタイプ別パーティション分割を実行する処理」を、図5のページ80を参照しつつ説明する。ページ80には、ページ80に最初に配置された第一ベクターグラフィックオブジェクト82、ページ80に二番目に配置された第二ベクターグラフィックオブジェクト84、ページ80に三番目に配置された第一テキストグラフィックオブジェクト86、ページ80に四番目に配置された第三ベクターグラフィックオブジェクト88、ページ80に五番目に配置された第一ビットマップグラフィックオブジェクト90、ページ80に六番目に配置された第二ビットマップグラフィックオブジェクト92、ページ860に七番目に配置された第四ベクターグラフィックオブジェクト94を含んでいる。このページ80に関連付けられたグラフィックリスト例は次のようになる;
1. DrawEllipse (red) 82
2. DrawRectangle (red) 84
3. DrawText (Text6, Text7) 86
4. DrawEllipse (blue) 88
5. DrawPatch (pictorial_image_1) 90
6. DrawPatch (pictorial_image_2) 92
7. DrawRectangle (green) 94
上記において、それぞれの色は階調を異ならせることによって示される。画像92と画像94とは異なるハッチング−マークによって区別して描かれている。グラフィックリスト要素には、各要素毎にその配置場所情報がさらに含まれている。このグラフィックリストの一例では、五つのパーティションに分割される。本発明のいくつかの実施形態によれば、各パーティションに関連付けられた情報の一例として、表2の例を挙げることができる。
【0074】
【表2】
【0075】
本発明のいくつかの実施形態によれば、第一のパーティションには、どちらの要素もベクタータイプ要素である、第一のグラフィックリスト要素「DrawEllipse(red)」と第二のグラフィックリスト要素「DrawRectangle(red)」とが分類される。つまり、第一のパーティションは、パーティションタイプとして、ベクタータイプグラフィックオブジェクトと関連付けられている。次に、第三のグラフィックリスト要素「DrawText(Text6, Text7)」が調べられると、第三のグラフィックリスト要素はベクタータイプグラフィックオブジェクトではないので、第二のパーティションが作られる。第二のパーティションは、パーティションタイプとして、テキストタイプグラフィックオブジェクトと関連付けられており、第三のグラフィックリスト要素が分類される。次に、第四のグラフィックリスト要素「DrawEllipse(blue)」が調べられると、オブジェクトタイプがテキストからベクターへと変わっているので、第三のパーティションが作られる。第三のパーティションは、パーティションタイプとして、ベクタータイプグラフィックオブジェクトと関連付けられており、第四のグラフィックリスト要素が分類される。次に、第五のグラフィックリスト要素「DrawPatch(pictorial_image_1)」が調べられると、第五のグラフィックリスト要素はビットマップタイプオブジェクトであり現行のパーティション(第三のパーティション)はベクターオブジェクトと関連付けられているので、第四のパーティションが作られる。第四のパーティションは、パーティションタイプとして、ビットマップグラフィックオブジェクトと関連付けられており、第五のグラフィックリスト要素が分類されている。次に、第六のグラフィックリスト要素「DrawPatch(pictorial_image_2)」が調べられると、第四のパーティションと関連付けられたオブジェクトタイプと同じオブジェクトタイプであるため、第六のグラフィックリスト要素は現行のパーティション(第4のパーティション)に加えられる。このように、第四のパーティションにはさらに第六のグラフィックリスト要素が分類される。次に、第七のグラフィックリスト要素「DrawRectangle(green)」が調べられると、このグラフィックリスト要素はベクタータイプオブジェクトであり現行のパーティション(第4のパーティション)は、パーティションタイプとして、ビットマップタイプグラフィックオブジェクトと関連付けられているため、新たに第五のパーティションが作られる。第五のパーティションは、パーティションタイプとして、ベクターオブジェクトと関連付けられており、第七のグラフィックリスト要素が分類される。
【0076】
本発明の「オブジェクトタイプ別にパーティション分割を実行する処理」を示す実施形態にて、ステップS24に示す複数のパーティションのレンダリングは、複数のレンダリングプロセッサを利用して「同時」、すなわち並列して行ってもよいし、「順不同」で行ってもよい。また、いくつかの実施形態では、パーティションに分類されたグラフィックオブジェクトをレンダリングするプロセッサを、そのプロセッサと関連付けられているグラフィックオブジェクトタイプに応じて選択する。レンダリングされたパーティションのグラフィックオブジェクトは、ステップS26に示すように、順次ビットブリットされるが、その際に中間のビットブリットを並行して行うことができる。例えば、P1、P2、・・・ ・・・P6と名付けられた、六つのレンダリングされたパーティションに対して、P1、P2、P3、P4,P5、P6の順序で順次ビットブリットを行う。あるいは、P1とP2とを順次ビットブリットして、P1P2というビットブリットの中間結果を生成する。P3とP4とを順次ビットブリットして、P3P4というビットブリットの中間結果を生成する。P5とP6とを順次ビットブリットして、P5P6というビットブリットの中間結果を生成する。三つのビットブリット装置がこれらの中間結果を同時に生成し、これらの中間ビットブリット結果が、P1P2、P3P4、P5P6の順番で順次ビットブリットされる。あるいは、P1、P2、P3が順次ビットブリットされて中間ビットブリット結果P1P2P3を生成し、P4、P5、P6が順次ビットブリットされて中間ビットブリット結果であるP4P5P6を生成してもよい。そして、これらの中間結果を、P1P2P3,P4P5P6の順番で順次ビットブリットする。なお、順次ビットブリットするとは、隣接するパーティション同士で順番にビットブリットする場合も、中間ビットブリット結果同士で順番にビットブリットする場合も指す。したがって、本発明のいくつかの実施形態では、順次ビットブリットを、中間ビットブリットを同時に行うことによって実施する。
【0077】
図6a、図6b、図7a、図7bは、本発明のいくつかの実施形態に基づいて、図4、5にてそれぞれ示したページ60とページ80とに対して実行したレンダリング(ステップS24)とビットブリット(ステップS26)の例を示している。以下では、「オブジェクトタイプ別パーティション分割を実行する処理」を実行する印刷システムについて説明する。
【0078】
図4および図6a、図6bを参照すると、パーティション生成装置(取得部、第一分類部、第二分類部、比較部)100は、ページ60に関するグラフィックリストから、グラフィックリスト要素(第一グラフィックオブジェクト)と該グラフィックリスト要素に後続するグラフィックリスト要素(第二グラフィックオブジェクト)とを取得する。そして、パーティション生成装置100は、第一グラフィックオブジェクトのオブジェクトタイプに応じたパーティション(第一パーティション)に該第一グラフィックオブジェクトを分類する。次に第一グラフィックオブジェクトと第二グラフィックオブジェクトとにおいてオブジェクトタイプを比較する。パーティション生成装置100は、この比較において両者のオブジェクトタイプが一致しない場合、第一パーティションとは異なるパーティションであって、第二グラフィックオブジェクトのオブジェクトタイプに応じた第二パーティションに、該第二グラフィックオブジェクトを分類する。一方、両者のオブジェクトタイプが一致する場合、第一パーティションに第二グラフィックオブジェクトを分類する。この処理を繰り返してパーティション生成装置100は、複数のパーティション101−107(第一パーティション・第二パーティション)にグラフィックリスト要素(グラフィックオブジェクト)をそれぞれ分類する。図6aでは、パーティション101−107それぞれに関連するグラフィックオブジェクトについて図示している。各パーティション101−107は、パーティション101−107それぞれに関連するグラフィックオブジェクトタイプに適した専用のレンダリング装置(第一レンダリング部・第2レンダリング部)111−117によってレンダリングされる。パーティションのレンダリングは、プロセッサが利用可能か否かといった条件、あるいは、各パーティションに対応付けられているレンダリング順情報などに基づき、さまざまなレベルで並列処理される。パーティション101−107はレンダリングされると、図6bに示すように、レンダリング済バッファ120、あるいはその他のメモリに入力される。パーティション配置順序に基づいて、レンダリング済パーティション121−127は、ビットブリット装置(ビットブリット部)130によりそれぞれビットブリットされて、ページバッファ132、あるいはその他のメモリに入力される。なお、図6a、図6bにおいて、図6a中のアルファベット「A」から「G」それぞれは、図6b中のアルファベット「A」から「G」それぞれに対応しているものとする。なお、これ以降、スペースの関係で2図に分離した「図7a、図7b」、「図10a、図10b」、「図12a、図12b」、「図14a、図14b」、「図16a、図16b」、「図18a、図18b」、および「図19a、図19b」についても、図中のアルファベット「A」・・・は互いに対応するものとする。本発明のいくつかの実施形態では、すべてのパーティションがレンダリングされてからビットブリット装置130によるビットブリットが開始されてもよい。他の実施形態では、あるパーティションのビットブリットが始まるのは、そのパーティションがレンダリングされ、かつ配置順序においてそのパーティションよりも先行するすべてのパーティションがビットブリットされてからであってもよい。
【0079】
また、図5および図7a、図7bを参照すると、パーティション生成装置100は、ページ80に関するグラフィックリストから、複数のパーティション141−145を生成する。すなわち、パーティション生成装置100は、ページ80に関するグラフィックリストから、グラフィックリスト要素(第一グラフィックオブジェクト)と該グラフィックリスト要素に後続するグラフィックリスト要素(第二グラフィックオブジェクト)とを取得する。そして、パーティション生成装置100は、第一グラフィックオブジェクトのオブジェクトタイプに応じたパーティション(第一パーティション)に該第一グラフィックオブジェクトを分類する。次に第一グラフィックオブジェクトと第二グラフィックオブジェクトとにおいてオブジェクトタイプを比較する。パーティション生成装置100は、この比較において両者のオブジェクトタイプが一致しない場合、第一パーティションとは異なるパーティションであって、第二グラフィックオブジェクトのオブジェクトタイプに応じた第二パーティションに、該第二グラフィックオブジェクトを分類する。一方、両者のオブジェクトタイプが一致する場合、第一パーティションに第二グラフィックオブジェクトを分類する。この処理を繰り返してパーティション生成装置100は、複数のパーティション141−145にグラフィックリスト要素(グラフィックオブジェクト)をそれぞれ分類する。図7aに示すパーティション141−145を、それぞれに関連するグラフィックオブジェクトの絵を用いて示している。各パーティション141−145は、パーティション141−145それぞれに関連するグラフィックオブジェクトタイプに適した専用のレンダリング装置151−155でレンダリングされる。パーティションのレンダリングは、プロセッサが利用可能か否かといった条件あるいは、各パーティションに対応付けられているレンダリング順情報などに基づき、さまざまなレベルで並列処理される。パーティション141−145はレンダリングされると、図7bに示すようにレンダリング済バッファ120、あるいはその他のメモリに入力される。パーティション配置順序に基づいて、レンダリング済パーティション161−165は、ビットブリット装置(ビットブリット部)130によりそれぞれビットブリットされて、ページバッファ132あるいはその他のメモリに入力される。本発明のいくつかの実施形態では、すべてのパーティションがレンダリングされてからビットブリット装置130によるビットブリットが開始されてもよい。また、他の実施形態では、あるパーティションのビットブリットが始まるのは、そのパーティションがレンダリングされ、かつ配置順序においてそのパーティションに先行するすべてのパーティションがビットブリットされてからであってもよい。
【0080】
「オブジェクトタイプ別にパーティション分割を実行する処理」により、「並列処理」のレンダリングまたは「順不同の」レンダリングと、順次ビットブリットとが可能になる。本発明の他の実施形態では、「並列処理」のレンダリングまたは「順不同の」レンダリングと、「並列処理」のビットブリットまたは「順不同の」ビットブリットが行われてもよい。これらいくつかの実施形態では、グラフィックリストを二つのパーティションに分割する。一つ目は、「重畳」パーティションとも呼ばれる第一のパーティションで、ここに含まれるグラフィックリスト要素は、レンダリングされると他のグラフィックリスト要素に重なるか他のグラフィックリスト要素によって重ねられる。二つ目は、「非重畳」パーティションとも呼ばれる第二のパーティションで、ここに含まれるグラフィックリスト要素は、レンダリングされても、他のグラフィックリスト要素に重なったり他のグラフィックリスト要素によって重ねられたりすることがない。重畳という表現は、他のオブジェクトにより重ねられる場合と、他のオブジェクトに重ねる場合の双方の場合を指すのに用いるものとする。
【0081】
(重畳別にパーティション分割を実行する処理)
次に、他の実施形態を、図8を参照して説明する。まず、グラフィックリストを受け付けると(ステップS180)、二つのパーティションを生成する(ステップS182)。一つ目は「重畳」パーティションで、ここに含まれるグラフィックリスト要素は、レンダリングされると、他のグラフィックリスト要素と重なるか、他のグラフィックリスト要素によって重ねられる。二つ目は「非重畳」パーティションで、ここに含まれるグラフィックリスト要素は、レンダリングされても、他のグラフィックリスト要素と重なったり他のグラフィック要素リストに重ねられたりすることがない。また、各パーティション(「重畳」パーティションと「非重畳」パーティション)を、汎用レンダリング装置によってそれぞれレンダリングする(ステップS183、S184)。なお、ステップS183、184に示すレンダリングは、レンダリング装置が利用可能か否かといった条件などに応じて、並列処理される。次に、レンダリングされたデータをそれぞれビットブリットし(ステップS185、S186)、ページを印刷エンジンに出力して(ステップS188)、印刷が行われる。なお、レンダリングされたパーティションは、他のパーティションの処理とは無関係にビットブリットされる。本発明のこれらの実施形態を、「重畳別にパーティション分割を実行する処理」と称する。「重畳別にパーティション分割を実行する処理」に係る実施形態のいくつかでは、パーティションには以下のような情報を含まれていてもよい。すなわち、パーティションタイプ(たとえば、「重畳」または「非重畳」)、プロセッサのタイプまたは番号、パーティションにおいて実施される機能のリスト、パーティションに関連付けられたグラフィックリスト要素を含むパーティションボディなどである。
【0082】
「重畳別にパーティション分割を実行する処理」を含む本発明のいくつかの実施形態について、図9を参照しつつ説明する。まず前提として、グラフィックリスト要素が他のグラフィックリスト要素と重なる、あるいは他のグラフィックリスト要素により重ねられるかに応じて、ステップS182に示すように、グラフィックリストを分割し、複数のパーティションを生成しているものとする。グラフィックリストを受付けると(ステップS190)、パーティションに割り当てられていないグラフィックリスト要素が残っているかについて調べる(ステップS192)。割り当てられていないグラフィックリスト要素が残っていない場合(ステップS192おいて「NO」)、パーティションの分割を終了する。一方、割り当てられていないグラフィックリスト要素が残っている場合は(ステップS192において「YES」)、次のグラフィックリスト要素を取得する(ステップS196)。新たに取得した次のグラフィックリスト要素をすでに調べたグラフィックリスト要素と比較して、新たに取得した次のグラフィックリスト要素が、すでに調べたグラフィックリスト要素の少なくとも一つと重畳しているかについて判定する(ステップS198)。重畳していない場合(ステップS198において「NO」)、新たに取得した次のグラフィックリスト要素を「非重畳」パーティションに加える(ステップS200)。もし新たに取得した次のグラフィックリスト要素がすでに調べたグラフィックリスト要素の少なくとも一つと重畳する場合(ステップS198において「YES」)、新たに取得した次のグラフィックリスト要素を「重畳」パーティションに加える(ステップS202)。そして、ここで重ねられたグラフィックリスト要素が既に「重畳」パーティションに分類されているかについて判定する(S204)。重ねられた方のグラフィックリスト要素が、「非重畳」パーティションに分類されていた場合(ステップS204において「NO」)、そのグラフィックリスト要素を「非重畳」パーティションから「重畳」パーティションへと移動させる。すなわち、そのグラフィックリスト要素を「重畳」パーティションに追加し、「非重畳」パーティションから削除する(ステップS206)。そして、再度、ステップS192に戻って、割り当てられていないグラフィックリスト要素が残っていないかについて、グラフィックリストを調べる。一方、重ねられた方のグラフィックリスト要素がすでに「重畳」パーティションに分類されていた場合(ステップS207)、ステップS192に戻って、そのまま割り当てられていないグラフィックリスト要素が残っていないかについて、グラフィックリストを調べる。
【0083】
再度、図4のページ60を参照しつつ、「重畳別にパーティション分割を実行する処理」について説明する。まず、「重畳」パーティションには以下のグラフィックリスト要素が分離されているものとする;
1. DrawText (Text1, Text2, Text3, Text4, Text5) 62
2. DrawRectangle (red) 64
4. DrawEllipse (blue) 68
6. DrawRectangle (green) 72
7. DrawPatch (pictorial_image_2) 74
そして、「非重畳」パーティションには以下のグラフィックリスト要素が分類されているものとする。
【0084】
3. DrawText (Text6, Text7) 66
5. DrawPatch (pictorial_image_1) 70
図10a、図10bでは、「重畳別にパーティション分割を実行する処理」に係る本発明の実施形態に従ったページ60に対する処理例を示す。図10aに示すように、本実施形態では、二つのパーティション、すなわち「非重畳」パーティション221と「重畳」パーティション222とがパーティション生成装置220によって作られる。各パーティション221、222は汎用レンダリング装置223、224によってレンダリングされて、レンダリング済バッファ226、あるいは他のメモリに入力される。上述したレンダリングでは、レンダリング装置が利用可能か否かといった条件などに応じて、レンダリングを実行するレンダリング装置を選択し、並列処理する。レンダリングしたパーティション227、228をビットブリット装置229、230によってビットブリットして、ページバッファ232またはその他のメモリに入力する。図10bに示すように、ビットブリット装置229、230はレンダリング済の「重畳」パーティション228とレンダリング済の「非重畳」パーティション227とを並列処理する。ただし、「重畳」パーティション222に対するビットブリット装置230によるビットブリットは順次に行われる。
【0085】
また、本発明のいくつかの実施形態では、同色で不透明な複数のグラフィックオブジェクトが重畳する場合は、それらのグラフィックオブジェクトを「非重畳」パーティションに分類する構成とすることもできる。それらのグラフィックオブジェクトは、互いにどのような順番でレンダリングされてもかまわないからである。しかし、同色の複数のグラフィックオブジェクトのうち、第一オブジェクトが、異なる色の他のグラフィックオブジェクトと重畳する場合、「非重畳」とは見なさないで、当該第一オブジェクトと当該異なる色のグラフィックオブジェクトとを「重畳」パーティションに分類する。ただし、同色の複数のグラフィックオブジェクトのうち、異なる色の他のグラフィックオブジェクトと重ならないオブジェクトについては、「非重畳」パーティションに分類されたままとする。
【0086】
(分離・重畳別にパーティション分割を実行する処理)
また、他の実施形態では、「重畳」パーティションを複数の副次パーティションにさらに再分割する構成としてもよい。各副次パーティションに置かれるグラフィックオブジェクト(グラフィックリスト要素)同士は、印刷ページにおいて互いが空間的に分離している。なお、互いが空間的に分離された重畳するグラフィックリスト要素群とは、各グラフィックリスト要素が重畳しているグラフィックリスト要素群であって、他のグラフィックリスト要素群とは印刷レイアウトにおいて重なり合わない、すなわち重畳しないものを意味する。また、この実施形態を、「分離・重畳別にパーティション分割を実行する処理」と称する。図11を参照すると、この実施形態のいくつかでは、グラフィックリストを受け付け(ステップS240)、当該グラフィックリストから複数のパーティションを生成する(ステップS242)。これらのパーティションには、他のいかなるグラフィックリスト要素(グラフィックオブジェクト)とも重ならず、または重ねられることのないグラフィックリスト要素すべてが分類される第一のパーティションを含む。この第一のパーティションを「非重畳」パーティションと称する。また、重畳するグラフィックリスト要素が分類される複数のパーティションも生成される。これらのパーティションを「重畳」パーティションと呼ぶ。各「重畳」パーティションには重畳し合うグラフィックリスト要素群が分類されている。つまり、各「重畳」パーティションには、重畳し合うグラフィックリスト要素からなるグループであって、印刷ページにおいて互いに空間的に分離するグループがそれぞれ分類される。まず、「非重畳」パーティションと、印刷ページにおいて互いに空間的に分離するグラフィックリスト要素群がそれぞれ分類された複数の「重畳」パーティションとをそれぞれレンダリングする(ステップS244、S246、S248、・・・S250)。パーティションのレンダリング(ステップS244、S246、S248、・・・S250)は、レンダリング装置が利用可能か否かといった条件などに応じて、「並列処理」または「順不同で」処理される。また、互いに分離している、他の「重畳」パーティションのグラフィックリスト要素と「重畳」パーティションのグラフィックリスト要素とのレンダリングは順次行われる。レンダリングしたパーティションそれぞれをビットブリットし(ステップS252、S254、S256、・・・S258)、レンダリングしたページを出力する(ステップS260)。レンダリングしたパーティションのビットブリット(ステップS252、S254、S256、・・・S258)は、関連するパーティション同士が空間的に重畳していないので、「並列処理」してもよいし「順不同で」処理してもよい。一方、レンダリングした、パーティションに含まれるグラフィックリスト要素が他の「重畳」パーティションの要素と互いに分離している「重畳」パーティションでのビットブリットは順次行われる。つまり、一般的なレンダリング装置を備えるプリンタに合わせて送信されるプリンタデータは、後から送信されるグラフィックリスト要素が、既にレンダリングされたグラフィックリスト要素を上書きしても問題がないように作成されている。このため、「重畳」パーティションでは、グラフィックリスト要素を順次レンダリングし、ビットブリットすれば所望するビットマップのページ画像を取得することができる。
【0087】
ここで図12a、図12bを参照して、「分離・重畳別にパーティション分割を実行する処理」に係る本発明の実施形態に従って図4のページ60を処理した例を説明する。図12aに示すように、この実施形態に係る例では、三つのパーティション、すなわち「非重畳」パーティション271と、印刷ページにおいて互いに分離した二つの「重畳」パーティション272と273とが、パーティション生成装置270によって生成される。各パーティション271、272、273を汎用レンダリング装置274、275、276によってレンダリングして、それぞれレンダリング済バッファ278、または他のメモリに入力する。パーティションのレンダリングは、汎用レンダリング装置274、275、276が利用可能か否かといった条件などに応じて、「並列処理」してもよいし、あるいは「順不同で」処理してもよい。図12bに示すように、レンダリングされたパーティション279、280、281を、ビットブリット装置282、283、284がビットブリットして、ページバッファ286またはその他のメモリに入力する。なお、ビットブリット装置282、283、284によるページへのビットブリットは「並列処理」により行われてもよいし、あるいは「順不同で」処理される構成であってもよい。
【0088】
(Z値別にパーティション分割を実行する処理)
図13を参照して本発明の他の実施形態について説明する。この本発明の他の実施形態では、グラフィックオブジェクトのZ値(z-depth)すなわち、奥行き情報に基づいて、グラフィックリストをパーティションに分割する。なお、この実施形態を、「Z値別にパーティション分割を実行する処理」と称する。まず、グラフィックリストを受付け(ステップS290)、グラフィックリスト要素のZ値に応じてパーティションを生成する(ステップS292)。なお、同一パーティションに属するグラフィックリスト要素それぞれは、同じZ値を持つ。また、他の実施形態では、連続するZ値の範囲とパーティションとを関連付けており、パーティションは関連付けられた範囲内にあるZ値のグラフィックリスト要素を含む構成としてもよい。さらに他の実施形態では、二以上の、非連続となるZ値それぞれを、各パーティションに関連付ける構成としてもよい。各パーティション(第一のZ値パーティション、第二のZ値パーティション、第三のZ値パーティション、・・・第nのZ値パーティション)をレンダリングして(ステップS294、S295、S296、・・・S297)、レンダリング済バッファ、またはその他のメモリに入力する(ステップS298)。そして、レンダリングした各パーティションをZ値またはZ値範囲順に順次ビットブリットする(ステップS300、S301、S302、S303)。例えば、いくつかの実施形態では、Z値の値が0のグラフィックオブジェクトが分類されたレンダリング済パーティションを最初にビットブリットする(ステップS300)。次に、Z値の値が1のグラフィックオブジェクトが分類されたレンダリング済パーティションをビットブリットし(ステップS301)、レンダリング済パーティションをすべてビットブリットするまで、同様のビットブリットが続けられる。例えば、図13に示すようにステップS300、S301、S302、・・・S303と順次レンダリング済パーティションがビットブリットされる。また、他の実施形態では、順次行われるビットブリットにおいて、中間ビットブリットを並列して行う構成(図示せず)としてもよい。このようにビットブリッドして、レンダリングしたページを出力する(ステップS304)。
【0089】
次に図14a、図14bを参照して、「Z値別にパーティション分割を実行する処理」に係る本発明の実施形態に従って図4のページ60を処理した例を説明する。この処理例では、まず、図14aに示すように、パーティション生成装置310が、各グラフィックオブジェクトについてのZ値(奥行き情報)を判定する。ここで、各グラフィックオブジェクトについて、Z値が0、1、2となる3つのグループに分類できるものとする。パーティション生成装置310は、このZ値0、1、2それぞれの値に基づき、それぞれを対応付けた三つのパーティション311、312、313を生成し、生成したパーティションそれぞれにグラフィックオブジェクトを分類する。そして、各パーティション311、312、313それぞれを汎用レンダリング装置(レンダリング部)314、315、316がレンダリングし、図14bに示すように、レンダリング済バッファ318またはその他のメモリに入力する。汎用レンダリング装置314、315、316によるパーティションのレンダリングは、この汎用レンダリング装置314、315、316が利用可能か否かといった条件などに応じて、「並列処理」により処理されてもよいし、「順不同で」処理されてもよい。あるいは、グラフィックオブジェクトのレンダリングを行うレンダリング装置をパーティションごとに対応付けている構成であってもよい。このようにパーティションごとにレンダリング装置を対応付ける構成の場合、パーティションとレンダリング装置との対応付けは、パーティション生成装置310によって以下のように実行される。すなわち、まず、パーティション生成装置310は、グラフィックリストを受付ける際に、利用可能なレンダリング装置のリストと、例えば、レンダリング装置の配置場所、状態、タイプ、平均処理量、最大処理速度、およびその他のレンダリング装置の属性や情報などを含むレンダリング装置情報とを受付ける。そして、このレンダリング装置情報を参照して、パーティションごとに対応付けるレンダリング装置を決定する。次に、レンダリング済パーティション(レンダリング済Z値0のパーティション319、レンダリング済Z値1のパーティション320、レンダリング済Z値2のパーティション321)を、ビットブリット装置(ビットブリット部)322が、Z値別に順次ビットブリットし、ページバッファ324またはその他のメモリに入力する。なお、上記したレンダリング済Z値が0のパーティション319、レンダリング済Z値が1のパーティション320、レンダリング済Z値が2のパーティション321とは、Z値が0のグラフィックオブジェクトを分類したパーティション、Z値が1のグラフィックオブジェクトを分類したパーティション、Z値が2のグラフィックオブジェクトを分類したパーティションそれぞれを汎用レンダリング装置314、315、316によりレンダリングしたものである。
【0090】
なお、上述したように、本実施形態では、パーティションをさらに複数の副次パーティションに再分割することができる。例えば、「Z値別にパーティション分割を実行する処理」において、さらなる副次パーティションへの再分割は、グラフィックオブジェクトのタイプに基づいて行う構成としてもよい。なお、Z値に基づいてグラフィックリストのパーティションへの分割後に、さらに各グラフィックオブジェクトのタイプに基づき副次パーティションへ再分割する場合、この再分割の処理は、「オブジェクトタイプ別にパーティション分割を実行する処理」と同様の処理を行う。
【0091】
本発明のいくつかの実施形態において、グラフィックリストのパーティションへの分割(たとえば、「オブジェクトタイプ別にパーティション分割を実行する処理」、「重畳別にパーティション分割を実行する処理」、「分離・重畳別にパーティション分割を実行する処理」、「Z値別にパーティション分割を実行する処理」)では、二以上のグラフィックリスト要素間における重畳状態を判断する必要がある。本発明のいくつかの実施形態では、グラフィックリスト要素は、バウンディングボックス(Bounding Box)やバウンディング形状(Bounding Shape)と関連付けられている。バウンディングボックスあるいはバウンディング形状により、レンダリング済のページにおいて、空間領域内にレンダリング済グラフィックリスト要素に対応する境界線を引く。本発明のいくつかの実施形態では、複数のバウンディング形状が一つのグラフィックリスト要素と関連付けられている。図15aに、円330と関連したバウンディングボックス332の一例を示す。図15bには、円330と、複数の関連するバウンディング形状333−337の例を示す。この例では、レンダリングされた円330と、関連した複数のバウンディング形状333−337に対応するレンダリング済みの複数領域の総和とが関連付けられている。図15cには、円330と関連するバウンディングボックス332と、複数のバウンディング形状338−341とを組み合わせた例を示す。この例において、レンダリング済みの円330は、バウンディングボックス332と、バウンディング形状338−341と減法的な関係により関連付けられている。すなわち、レンダリングされた円330によって占められる空間領域は、正方形のバウンディングボックス332から三角形の領域(バウンディング形状338−341)を引いて得られる領域と近似する。
【0092】
本発明のいくつかの実施形態では、二つのグラフィックリスト要素それぞれの近似したバウンディング形状が重なり合う場合、それら二つのグラフィックリスト要素は重畳していると見なすことができる。本発明のいくつかの実施形態では、関連する複数のバウンディング形状同士を直接比較する。すなわち、この実施形態では、これらバウンディング形状同士を解析して比較して、重畳状態を判断する。
【0093】
また、他の実施形態では、ページグリッドを用いてグラフィックリスト要素の重畳を判断してもよい。図16a、図16bを参照してページグリッドを用いてグラフィックリスト要素の重畳を判断する処理について説明する。本発明の他の実施形態では、ページを複数のグリッド要素に分割し(ステップS350)、初期化して各グリッド要素を「空」にする(ステップS351)(「空」とは、グリッド要素に対応する空間領域を占有するグラフィックオブジェクトが無いことを示す)。そして、次に、グリッド要素を用いて重畳するグラフィックリスト要素があるかどうかを判断する。まず、各グラフィックリスト要素に関連付けられた重畳リストを初期化して「なし」にする(ステップS352)(「なし」とは、グラフィックリスト要素が他のグラフィックリスト要素と重なったり、他のグラフィックリスト要素によって重ねられたりしていないことを示す)。そして、グラフィックリスト要素間における重畳について、各グラフィックリスト要素を調べる。グラフィックリスト要素それぞれを調べて、まだ調べられていないグラフィックリスト要素が残っているかについて判断する(ステップS354)。すべてのグラフィックリスト要素について重畳状態を調べている場合(ステップS354において「NO」)、重畳判断処理を終了する。一方、重畳状態をまだ調べていないグラフィックリスト要素が残っている場合(ステップS354において「YES」)、次のグラフィックリスト要素と関連するバウンディング形状を取得する(ステップS358)。そして、取得したバウンディング形状をページグリッドに配置する(ステップS360)。そして、バウンディング形状が重なるグリッド要素が存在するかそれぞれ調べ、バウンディング形状が重なるグリッド要素が残っていないか判定する(ステップS362)。ここで、調べる必要のある、バウンディング形状が重なるグリッド要素が残っていない場合(ステップS362において「NO」)、ステップS354に戻って、まだ調べていないグラフィックリスト要素があるかについて、グラフィックリストをさらに調べる。一方、調べる必要のある重畳するグリッド要素が残っている場合(ステップS362において「YES」)であって、現行のグリッド要素に「空」が関連付けられているとき(図16bに示すステップS366において「YES」)、グリッド要素の関連性を「空」から「占有」へと変え、このグリッド要素「占有」をマークする(ステップS368)、そして、ステップS376に進み、グラフィックリスト要素とグリッド要素とを関連付ける。一方、現行のグリッド要素に「空」が関連付けられていない場合は(ステップS366において「NO」)、グリッド要素の関連性を調べて、このグリッド要素が「占有」と関連付けられているかについて判断する(ステップS370)。ここで、グリッド要素が「占有」と関連付けられていない場合(ステップS370において「NO」)、グリッド要素がすでに二以上のグラフィックリスト要素と重なっていることとなる。このため、グリッド要素と重畳するグラフィックリスト要素それぞれとの対応関係を示す重畳リストを更新する(ステップS372)。そして、重畳リストにおけるこれらグラフィックリスト要素と、今調べられたグラフィックリスト要素との重畳状態を示すとともに、今調べられたグラフィックリスト要素とグリッド要素との対応関係を示す。一方、グリッド要素が「占有」と関連付けられている場合(ステップS370において「YES」)、グリッド要素の関連性を「重畳」へと変え、このグリッド要素に「重畳」をマークする(ステップS374)。なお、この「重畳」状態は、このグリッド要素において、二つのグラフィックリスト要素が重なっていることを示している。グラフィックリスト要素が関連付けられた重畳リストを更新すると(ステップS372)、今調べられたグラフィックリスト要素を、グリッド要素と関連付ける(ステップS376)。そして、図16aに示すステップS362に戻り、すべてのグリッド要素について調べたか判定し(ステップ362)、ステップS362において「NO」の場合になると、ステップS354に戻り、グラフィックリストにおいて、調べられていないグラフィックリスト要素が残っているかについて判定する(ステップS354)。そして、すべてのグラフィックリスト要素について調べられると(ステップ354において「NO」)、処理を終了する。
【0094】
ページグリッドを用いてグラフィックリスト要素の重畳を判断する、この実施形態は、図17に示すページグリッド例390を参照することでさらによりよく理解できるであろう。図17では、6つのグラフィックオブジェクト(オブジェクト1から6)と、それぞれ名付けた6つのグラフィックオブジェクト用のバウンディングボックス391−396を示す。説明の便宜上、バウンディングボックス391−396を示すページグリッドとは別に、ラベル付した6×6のグリッド要素401−436を含むページグリッド390を示す。まず、すべてのグリッド要素401−436に、「空」状態に関連するラベルが付される。表3では、グラフィックリスト要素一つ一つを調べた後における各グリッド要素401−436の状態を示す。また、グラフィックリスト要素を加えた際に調べたグリッド要素を、表中、灰色で示す。また、表4では、グラフィックリスト要素一つ一つを調べた後における各グリッド要素401−436と関連するオブジェクトを示す。また、グラフィックリスト要素を加えた際に調べたグリッド要素を、表中、灰色で示す。表5では、グラフィックリスト要素一つ一つを調べた後における各グラフィックリスト要素と関連する重畳リストを示す。
【0095】
まず、オブジェクト1と関連する第一グラフィックリスト要素のバウンディングボックス(第一バウンディングボックス)391を、ページグリッド390上に配置する。そして、第一バウンディングボックス391が配置されているグリッド要素401−418を調べる。そして、これらグリッド要素401−418に付されたラベルを「空」から「占有」に変え、オブジェクト1をこれらのグリッド要素401−418と関連付ける。
【0096】
次に、オブジェクト2と関連する第二グラフィックリスト要素のバウンディングボックス(第二バウンディングボックス)392を、ページグリッド390上に配置する。そして、第二バウンディングボックス392が配置されているグリッド要素404−406、410−412、416−418を調べる。そして、これらのグリッド要素404−406、410−412、416−418に付されたラベルを「占有」から「重畳」へと更新し、オブジェクト2をこれらのグリッド要素404−406、410−412、416−418と関連付ける。さらに、オブジェクト1とオブジェクト2との重畳リストを更新して、これらのオブジェクトが重畳していることを反映させる。
【0097】
さらに、オブジェクト3と関連する第三グラフィックリスト要素のバウンディングボックス(第三バウンディングボックス)393を、ページグリッド390上に配置する。そして、第三バウンディングボックス393が配置されているグリッド要素409−412、415−418を調べる。そして、既に「占有」と印付けられているグリッド要素409、415のラベルを「重畳」へと変え、オブジェクト3を、第三バウンディングボックス393が重なっているグリッド要素409−412、415−418と関連付ける。さらに、オブジェクト1、オブジェクト2、およびオブジェクト3の重畳リストを更新し、これらのオブジェクトの重畳状態を反映させる。
【0098】
オブジェクト4と関連する第四グラフィックリスト要素のバウンディングボックス(第四バウンディングボックス)394を、ページグリッド390上に配置する。そして、第四バウンディングボックス394が配置されているグリッド要素424、430を調べる。そして、既に「空」と印付けられているグリッド要素424、430のラベルを「占有」へと変え、オブジェクト4をこれらのグリッド要素と関連付ける。
【0099】
オブジェクト5と関連する第五グラフィックリスト要素のバウンディングボックス(第五バウンディングボックス)395を、ページグリッド390上に配置する。第五バウンディングボックス395が配置されているグリッド要素421−423、427−429を調べる。そして、既に「空」と印付けられているグリッド要素421−423、427−429のラベルを「占有」へと変え、オブジェクト5をこれらのグリッド要素と関連付ける。
【0100】
オブジェクト6と関連する第六グラフィックリスト要素のバウンディングボックス(第六バウンディングボックス)396を、ページグリッド390上に配置する。第六バウンディングボックス396が配置されているグリッド要素426−428、432−434を調べる。そして、既に「占有」と印付けられているグリッド要素427、428のラベルを「重畳」へと変え、また既に「空」と印付けられているグリッド要素426、432−434のラベルを「占有」へと変える。そして、オブジェクト6をこれらのグリッド要素426−428、432−434のすべてと関連付け、オブジェクト5とオブジェクト6との重畳リストを更新して、これらのオブジェクトが重なっていることを反映させる。
【0101】
また、本発明に係る他の実施形態では、オブジェクトの配置毎に重畳リストの保守を行う構成でなくてもよい。すなわち、オブジェクトの重畳については、すべてのオブジェクトを配置した後、オブジェクトとグリッド要素との関連性を解析することにより判断することができる。
【0102】
また、本発明に係る他の実施形態では、重畳の判断を逐次修正していく構成であってもよい。この実施形態では、複数のオブジェクトを含むグリッド要素を、グリッドサイズを順次微細にしながら調べる。例えば実施形態の一例としては、最初のページグリッドには八つのグリッド要素が含まれており、各グリッド要素について重畳の判断を繰り返す毎に、複数のオブジェクトを含むグリッド要素を、さらに四つのグリッド要素へと再分割する。このようにして、重畳しているかについての判断を、グリッドサイズを順次細かくして行っていく。また、本発明のいくつかの実施形態では、個々の画素グリッド要素を含んだページグリッドを用いてもよい。この実施形態では、グラフィックリスト要素と関連付けられた二値マスクをレンダリングするステップを含む。
【0103】
(重畳別にパーティション分割を実行する処理の実施例)
次に、図18a、図18bを参照して本発明に係る「重畳別にパーティション分割を実行する処理」の実施例について説明する。この実施例では、グリッド要素ラベルを「占有」から「重畳」へと変化させ、グラフィックリスト要素と関連するバウンディング形状が「重畳」ラベルの付いたグリッド要素と重なる場合、そのグラフィックリスト要素を「重畳」パーティションに関連付ける。この実施例では、まず、ページを複数のグリッド要素に分割する(ステップS450)。そして各グリッド要素を、まず、「空」ラベルと関連付け、初期化する(ステップS451)。すなわち、初期状態では、「非重畳」パーティションに、グラフィックリスト内のすべてのグラフィックリスト要素を分類する(ステップS452)。グラフィックリストを調べて、まだ調べられていないグラフィックリスト要素が残っているかについて判断する(ステップS454)。ここで、すべてのグラフィックリスト要素について調べた場合(ステップS454において「NO」)、パーティション分割処理を終了する。一方、まだ調べていないグラフィックリスト要素が残っている場合(ステップS454において「YES」)、次のグラフィックリスト要素のバウンディング形状を取得し(ステップS458)、このバウンディング形状をページグリッド上に配置する(ステップS460)。そして、このバウンディング形状と重なり合うグリッド要素一つ一つを調べる。そして、調べるべきバウンディング形状と重なり合うグリッド要素が残っているかについて判断する(ステップS462)。ここで、調べる必要のあるバウンディング形状と重なり合うグリッド要素が無い場合(ステップS462において「NO」)、ステップS454に戻って、まだ調べていないグラフィックリスト要素の有無についてグラフィックリストを調べる。ここで、調べる必要のあるバウンディング形状と重なり合うグリッド要素がある場合(ステップS462において「YES」)であって、かつ現行のバウンディング形状のグリッド要素が「空」に関連付けられているとき(図18bに示すステップS466において「YES」)、バウンディング形状とグリッド要素との関連性を「空」から「占有」へと変え、グリッド要素に「占有」をマークする(ステップS468)。そして、現在、調べたグラフィックリスト要素を、現在、調べたグリッド要素に関連付ける(ステップS470)。そして、図18aに示すステップS462に戻って、バウンディング形状と重なり合うグリッド要素を調べ、調べるべきバウンディング形状と重なり合うグリッド要素が残っているかについて判断する。一方、ステップS466において、現行のバウンディング形状のグリッド要素に「空」とラベル付けされていない場合(ステップS466において「NO」)、そのラベルを「占有」と関連付けられているラベル値と比較する。そして、現行のバウンディング形状のグリッド要素に「占有」が関連づけられているか判断する(ステップS472)。Bounding Shapeのグリッド要素に「占有」が関連付けられていない場合(ステップS472において「NO」)、このグリッド要素はすでに、重畳する複数のオブジェクトと関連付けられたグリッド要素である。このため、現行のグラフィックリスト要素を「重畳」パーティションと関連付ける。つまり、現行のグラフィックリスト要素を「重畳」パーティションへ移動させる(ステップS474)。一方、グリッド要素に「占有」がマークされている場合、すなわち、現行のバウンディング形状のグリッド要素に「占有」が関連づけられている場合(ステップS472において「YES」)、このグリッド要素のラベルを「重畳」に変え、グリッド要素に「重畳」をマークし(ステップS476)、このグリッド要素と関連付けられたグラフィックリスト要素を、「重畳」パーティションと関連付ける(ステップS478)。また、現行のグラフィックリスト要素を「重畳」パーティションと関連付ける。すなわち、現行のグラフィックリスト要素を「重畳」パーティションへ移動させる(ステップS474)。そして、図18aに示すステップS462に戻り、調べるべきバウンディング形状と重なり合うグリッド要素が残っているかについて判断する。
【0104】
なお、「分離・重畳別にパーティション分割を実行する処理」に係る実施形態の場合では、「重畳」ラベルを含むグリッド要素を解析して、重畳するグラフィクスオブジェクトのうち、互いに空間的に分離しているものから構成される複数のグループを探索する。いくつかの実施形態では、グリッド要素の解析として、連結成分分析を含んでもよい。
【0105】
(Z値別にパーティション分割を実行する処理の実施例)
「Z値別にパーティション分割を実行する処理」に係る本発明のいくつかの実施形態では、グリッド要素と、グラフィックリスト要素のバウンディング形状の近似とを用いて、グラフィックリストをパーティションに分割していた。ここで、図19a、図19bを参照して、Z値別にパーティション分割を実行する処理の実施例について説明する。図19a、図19bに示す実施例では、まず、図19aに示すように、ページを複数のグリッド要素に分割する(ステップS500)。初期状態では、グリッド要素を、「空」ラベルと関連付ける。すなわち、初期化してグリッド要素ラベルを「空」にする(ステップS551)。なお、「空」ラベルは、グラフィックリスト要素と関連付けられているバウンディング形状の中でグリッド要素に重なられているものが無い状態を示す。次に、初期化してグリッド要素のZ値を「0」にする(ステップS552)。そして、グラフィックリスト要素すべてを、Z値「0」と関連付けたパーティションに分類する(ステップS553)。グラフィックリストにおいて、まだバウンディング形状内のグリッド要素のZ値を調べていないグラフィックリスト要素が残っているか判断する(ステップS554)。ここで、すべてのグラフィックリスト要素に関してグリッド要素のZ値を調べている場合(ステップS554において「NO」)、パーティション分割処理を終了する。まだ調べていないグラフィックリスト要素が残っている場合(ステップS554において「YES」)、次のグラフィックリスト要素のバウンディング形状を取得し(ステップS558)、このグラフィックリスト要素のバウンディング形状をページグリッドに配置する(ステップS560)。そして、次にバウンディング形状におけるグリッド要素のZ値の最大値を判定する。すなわち、バウンディング形状内にある複数のグリッド要素の各Z値のうちから最大値となるZ値を判定する。(ステップS562)。そして、この最大値が「0」である場合(ステップS564において「YES」)、バウンディング形状のグリッド要素に「占有」がマークされているかどうか判断するためのテストを行う。すなわち、いかなるバウンディング形状内のグリッド要素も「占有」とマークされているか判定する(図19bに示すステップS568)。いかなるバウンディング形状内のグリッド要素にも「占有」がマークされていない場合(ステップS568において「NO」)、バウンディング形状のすべてのグリッド要素に「占有」をマークする(ステップS574)。そして、図19aに示すステップS554に戻って、グラフィックリストを調べて、まだ調べられていないグラフィックリスト要素が残っているかどうか判断する。一方、ステップS568において、バウンディング形状の全てのグリッド要素に「占有」がマークされている場合(ステップS568において「YES」)、バウンディング形状の各グリッド要素のZ値に1を足す(ステップS570)。そして、グラフィックリスト要素を、バウンディング形状のグリッド要素の最大値に1をプラスした値と等しいZ値と関連付けたパーティションへ移す(ステップS572)。そして、バウンディング形状のすべてのグリッド要素に「占有」をマークする(ステップS574)。ステップS554に戻って、グラフィックリストを調べ、まだバウンディング形状内のグリッド要素のZ値を調べていないグラフィックリスト要素が残っているかどうか判断する(ステップS554)。一方、ステップS564にて、Z値の最大値が「0」ではないと判断された場合(ステップS564において「NO」)、ステップS570に進み、バウンディング形状内の各グリッド要素と関連するZ値に1をプラスする。そして、グラフィックリスト要素を、バウンディング形状内の各グリッド要素の最大値に1をプラスした値と等しいZ値と関連付けたパーティションに移す(ステップS572)。そして、バウンディング形状内のすべてのグリッド要素に「占有」をマークして(ステップS574)、グラフィックリストを調べ、まだ調べられていないグラフィックリスト要素が残っているかについて判断する(ステップS554)。
【0106】
上述したパーティション分割を実行する処理を実現するための構成について説明する。本発明に係るいくつかの実施形態ではホストコンピューティング・デバイスを備えている。そして、ホストコンピューティング・デバイスは、一以上の中央演算処理回路(CPU)、マルチコアCPU、グラフィクス処理回路(GPU)カード、デジタル信号処理(DSP)エンジン、ハードウェアアクセラレータASICを備えている。また、本発明に係るいくつかの実施形態では、プリンタコントローラをさらに備えている。そして、プリンタコントローラは、一以上のCPU、マルチコアCPU,GPU,DSPエンジン、ハードウェアアクセラレータASICを備えている。
【0107】
本発明の実施形態では、ホストコンピューティング・デバイス内のマルチ処理回路は複数の印刷データパーティションを並行してレンダリングするのに用いられる。本発明の実施形態では、ホストコンピューティング・デバイス内のマルチ処理回路はレンダリングされた複数のパーティションそれぞれに対するビットブリットを並列処理で実行するために用いられる。また、本発明の他の実施形態では、プリンタコントローラ内のマルチ処理回路が、複数の印刷データパーティションそれぞれに対するレンダリングを並列処理で実行するために用いられる構成であってもよい。また、本発明の他の実施形態では、プリンタコントローラ内のマルチ処理回路がレンダリングされた複数のパーティションそれぞれに対するビットブリットを並列処理で実行するために用いられる構成であってもよい。例えば、図20を参照して印刷環境の一例について説明する。ホストコンピューティング・デバイス580が、プリンタコントローラ584と例えば通信ネットワーク等により実現できる接続線582を通じて通信可能に接続されている。ホストコンピューティング・デバイス580は、四つのプロセシングコア587−590とL2キャッシュ592とを有するマルチコアCPU586を備えている。マルチコアCPU586は、チップセット594と、例えばバス等により実現できる接続線593を通じて動作可能に接続されており、また、チップセット594はメモリ596とグラフィックカード598とに、例えばバス等により実現できる接続線595、597を通じて動作可能に接続されている。プリンタコントローラ584は、二つのコア601、602とL2キャッシュ604とを有するマルチコア内蔵CPU600を備えている。マルチコア内蔵CPU600は、メモリ606とハードウェア(HW)アクセラレーション608とに、例えば、バス等により実現できる接続線605、607を通じて動作可能に接続されている。
【0108】
また、本発明の他の実施形態では、複数のパーティションのレンダリングを、同じネットワーク、例えばクラウドコンピューティング内の複数のCPU間で分散して行う構成であってもよい。また、本発明のいくつかの実施形態では、レンダリングされた複数のパーティションのビットブリットを、同じネットワーク、例えばクラウドコンピューティング内の複数のCPU間で分散して行う構成であってもよい。
【0109】
また、本発明に係るいくつかの実施形態では、パーティションのレンダリングおよびビットブリットを図21に示す構成を有するシステムにより実行することができる。図21を参照すると、本発明のいくつかの実施形態では、インタープリタ620を備えている。インタープリタ620はグラフィックリストを生成する。そして、このグラフィックリストをパーティション生成装置622が複数のパーティション630、631、・・・632にそれぞれ分割する。スケジューラ635は、レンダリング装置640、641・・・642それぞれの利用可能性や、その他の条件に応じて、パーティション630、631、・・・632をこのレンダリング装置640、641、・・・642に割り当てる。なお、その他の条件の一例としては、パーティションタイプ、パーティションの複雑さ、パーティションサイズ、一つのパーティションに含まれるオブジェクト数、パーティションの作用、およびその他のパーティションの特徴や条件が挙げられる。レンダリング装置640、641、・・・642それぞれは、受付けたパーティション630、631、・・・632をレンダリングし、レンダリングしたパーティション630、631、・・・632それぞれを、自身が有するパーティションビットブリット装置によりビットブリットする。ページビットブリット装置650は、レンダリングし、ビットブリットしたこれら複数のパーティション630、631、・・・632を、ビットブリットして、ページバッファ652に入力する。そして、このページバッファ652から印刷エンジン654に出力される。ページビットブリット装置650は、分割されたパーティション630、631、・・・632に対するページビットブリットをそれぞれ「順不同」に行ってもよいし、「順番どおり」に行ってもよい。なお、「順不同」にパーティション630、631、・・・632をビットブリットした場合、中間パーティションに変換してビットブリットすることなく、直接ページバッファ652に入力するようにビットブリットされる。
【0110】
図21に示すシステムにおいて、本発明に係るいくつかの実施形態では、ホストコンピューティング・デバイスが、上述したインタープリタ620、パーティション生成装置622、およびスケジューラ635を備える構成であってもよい。この実施形態では、レンダリング装置640、641、・・・642の機能をホストコンピューティング・デバイスと、印刷装置に内蔵されたプリンタコントローラとの間で分散して実現する。また、印刷装置では、内蔵されたプリンタコントローラが、上述したページビットブリット装置650、ページバッファ652、印刷エンジン654それぞれのインタフェースを備える。また、他の実施形態では、レンダリング装置640、641、・・・642それぞれをホストコンピューティング・デバイスが備える構成であってもよい。また、他の実施形態では、レンダリング装置640、641、・・・642それぞれを、内蔵された印刷コントローラが備える構成としてもよい。
【0111】
本発明のいくつかの実施形態では、カスケード式にパーティション分割を行う構成であってもよい。図22および図23に、カスケード式によりパーティション分割を行う本発明の実施形態の一例を示す。図22に示す実施形態の一例では、まず、パーティション生成装置622は、インタープリタ620からグラフィックリストを受け付け(S670)、「重畳別にパーティション分割を実行する処理」により「重畳」パーティション674と「非重畳」パーティション676とを生成する(ステップS672)。「重畳」パーティション674を、「オブジェクトタイプ別にパーティション分割を実行する処理」により、さらに、「テキスト」パーティション、「ベクター」パーティション、「ピクトリアル」パーティションそれぞれに分割する(ステップS678)。一方、「非重畳」パーティション676は、「オブジェクトタイプ別にパーティション分割を実行する処理」により、「テキスト」パーティション、「ベクター」パーティション、「ピクトリアル」パーティションに分割される(ステップS680)。
【0112】
また、図23に示す実施形態の一例では、パーティション生成装置622は、インタープリタ620からグラフィックリストを受け付け(ステップS690)、「分離・重畳別にパーティション分割を実行する処理」によるパーティション分割によって、「非重畳」パーティション698と複数の「分離・重畳」パーティション694・・・、696を生成する。「非重畳」パーティション698と、複数の「分離・重畳」パーティション694、・・・696を、「オブジェクトタイプ別にパーティションの分割を実行する処理」によってさらにパーティションに分割する(ステップS700、S702、S704)。これらの実施形態では、最終的に得られたオブジェクトタイプ別の複数のパーティションを、各パーティションと関連するオブジェクトタイプに対応付けられたレンダリング装置によってレンダリングされ、「非重畳」パーティションに関連する、最終的に得られた複数のパーティションと、各「分離・重畳」パーティションと関連する、最終的に得られた複数のパーティションとを、並列処理によりビットブリットする。「非重畳」パーティションにおける複数のオブジェクトタイプのパーティションについは並列処理によりビットブリットされるが、「分離・重畳」パーティションにおける複数のオブジェクトタイプのパーティションは、順次ビットブリットしなければならない。
【0113】
次に、図24を参照して、本発明の他の実施形態について説明する。他の実施形態のいくつかでは、ホストコンピューティング・デバイスが備えるパーティション生成装置622において、グラフィックリストを受付ける(ステップS720)。そして、「オブジェクトタイプ別にパーティションの分割を実行する処理」に従って複数のグラフィックリストのパーティションを生成する(ステップS722)。グラフィックリストのパーティションには、テキストパーティション724、ベクターパーティション726、ピクトリアルパーティション728がある。テキストパーティション724を、一以上の専用テキストレンダリング装置によってレンダリングする(ステップS726)。レンダリングしたテキストパーティション724をエンコードし(ステップS728)、エンコードしたテキストパーティション724、ベクターパーティション726、ピクトリアルパーティション728からパーティション印刷ストリームを生成する(ステップS730)。パーティション印刷ストリームをプリンタコントローラに送信する(ステップS732)。いくつかの実施形態では、パーティション印刷ストリームにパーティションファイルを含めてもよい。
【0114】
ところで、ラスターイメージプロセッサ(RIP)の中には、オブジェクトリストを非常に小さなオブジェクトに、特に、非常に小さなイメージオブジェクトまたはピクトリアルオブジェクトに分割することができるものがある。そこで、この他の実施形態では、ピクトリアルパーティションを解析して、複数の小さなオブジェクトを合わせて一つのより大きなピクトリアルオブジェクトを生成できないか判断する。これらの実施形態では、このピクトリアルパーティションへの分割処理は、ピクトリアルパーティションをパーティションファイルコンポーザに送る前に行われる。
【0115】
上述した図24では、ホストコンピューティング・デバイスがパーティション印刷ストリームをプリンタコントローラに送信するまでの実施形態の一例について説明した。以下において、図25を参照して、プリンタコントローラがパーティション印刷ストリームを受付けてからそれ以降の処理に関する実施形態について説明する。本発明に係るいくつかの実施形態では、プリンタコントローラでパーティション印刷ストリームを受け付け(ステップS740)、このパーティション印刷ストリームを、エンコードされたテキストパーティション744、ベクターパーティション746、ピクトリアルパーティション748に分解する(ステップS742)。なお、いくつかの実施形態では、パーティション印刷ストリームにパーティションファイルを含めてもよい。エンコードされたテキストパーティション744はデコードされて(ステップS750)、レンダリングされたテキストパーティションを再構成する。一方、ベクターパーティション746とピクトリアルパーティション748とは、一以上の専用レンダリング装置でレンダリングされる。再構成されたレンダリング済テキストパーティション、レンダリング済ベクターパーティション、レンダリング済ピクトリアルパーティションそれぞれをビットブリットし(ステップS756)、ページバッファに入力して、このページバッファから印刷エンジンに送信する(ステップS758)。なお、ステップS756において、上述したレンダリング済パーティションは、各パーティションに関連付けられているパーティション順序に従って、順次ビットブリットされる。
【0116】
なお、本発明のいくつかの実施形態では、レンダリングされたテキストパーティションを、二値の圧縮によりエンコードするように構成されている。二値の圧縮例としては、JBIG(Joint Bi−level Image Expert Group),JBIG2,MR(Modified Read),MMR(Modified Modified Read)、またはその他のバイレベルエンコードが挙げられるが、これらの圧縮方式に限られるものではない。
【0117】
上記では、印刷処理システムの一例として、図1に示すように印刷処理システムが、ホストコンピューティング・デバイス10と、このホストコンピューティング・デバイス10とコミュニケーションリンク12を通じて接続されている印刷装置14とを備えた構成を想定して説明した。しかしながら、印刷処理システムの構成はこれに限定されるものではない。ここで、図26を参照して、印刷処理システムに関する本発明の他の実施形態について説明する。この実施形態の一例において、印刷処理システムは、プリンタサーバ772とコミュニケーションリンク771を通じて通信可能に接続されている(771)ホストコンピューティング・デバイス770を備えている。また、プリンタサーバ772とコミュニケーションリンク773を通じて、通信可能に接続されている印刷装置774も備える。また、印刷処理システムの構成は以下の図27に示すような構成であってもよい。図27を参照して説明すると、本発明の他の実施形態では、印刷処理システムは、クラウドコンピューティング環境782の一部を構成するホストコンピューティング・デバイス780を備えている。そして、このホストコンピューティング・デバイス780は、コミュニケーションリンク783を通じて、印刷装置784と通信可能に接続されている。また、印刷処理システムの構成は以下の図28に示すような構成とすることもできる。図28を参照して説明すると、本発明のさらなる他の実施形態では、印刷処理システムは、クラウドコンピューティング環境792の一部を構成するホストコンピューティング・デバイス790を備えている。このホストコンピューティング・デバイス790は、コミュニケーションリンク793を通じて、プリンタサーバ794と通信可能に接続されている。また、プリンタサーバ794は、コミュニケーションリンク795を通じて、印刷装置796と通信可能に接続されている。
【0118】
本発明のいくつかの実施形態において、印刷処理システムが、プリンタサーバを備えた構成の場合、このプリンタサーバは一以上の中央演算処理回路(CPU),マルチコアCPU,グラフィクス処理回路(GPU)カード、デジタル信号処理(DSP)エンジン、ハードウェアアクセラレータASICを備える。本発明のいくつかの実施形態では、プリンタサーバ内のマルチ処理回路を用いて、複数の印刷データパーティションのレンダリングを並列処理により実行する。また、本発明のいくつかの実施形態では、プリンタサーバ内のマルチ処理回路を用いて、レンダリングした複数のパーティションのビットブリットを並列処理により実行する。
【0119】
また、本発明のいくつかの実施形態では、ホストコンピューティング・デバイスに関して上記した機能およびシステムを、このホストコンピューティング・デバイスではなくプリンタサーバが備える構成であってもよい。
【0120】
このように構成される場合、たとえば、図21に示す実施形態の例では、プリンタサーバはインタープリタ620、パーティション生成装置622、スケジューラ635を備える。この実施形態では、レンダリング装置640、641、642は、ホストコンピューティング・デバイスと、プリンタサーバと、印刷装置に内蔵されたプリンタコントローラとの間で分散される。印刷装置は、内蔵するプリンタコントローラに、ページビットブリット装置650、ページバッファ652、印刷エンジン654のインタフェースを備える。また、他の実施形態では、レンダリング装置640、641、642を、ホストコンピューティング・デバイスに設ける構成であってもよい。さらなる他の実施形態では、レンダリング装置640、641、642を、内蔵するプリンタコントローラに設ける構成であってもよい。さらに他の実施形態では、レンダリング装置640、641、642をプリンタサーバに配置する構成であってもよい。
【0121】
上述したホストコンピューティング・デバイスが備える機能をプリンタサーバが備える構成の場合、印刷処理について図24の例を挙げて説明すると以下の処理フローとなる。すなわち、図24を参照すると、プリンタサーバが備えるパーティション生成装置622において、グラフィックリストを受付ける(ステップS720)。そして、「オブジェクトタイプ別にパーティション分割を実行する処理」に従って複数のグラフィックリストパーティションを生成する(ステップS722)。グラフィックリストパーティションには、テキストパーティション724、ベクターパーティション726、ピクトリアルパーティション728がある。テキストパーティション724は、一以上の専用テキストレンダリング装置によってレンダリングされる(ステップS726)。レンダリングされたテキストパーティション724をエンコードし(ステップS728)、エンコードしたテキストパーティション724、ベクターパーティション726、ピクトリアルパーティション728からパーティション印刷ストリームを生成する(ステップS730)。そして、パーティション印刷ストリームをプリンタコントローラに送信する(ステップS732)。いくつかの実施形態では、パーティション印刷ストリームにパーティションファイルが含まれていてもよい。
【0122】
(レンダリング装置の決定方法)
次に図29を参照して、本発明のいくつかの実施形態に係る印刷処理システムにおいてレンダリングを実行させるレンダリング装置の決定方法について説明する。まず、パーティション生成装置622は、グラフィックリストを受付けるとともに(ステップS800)、さらにレンダリング装置情報802も受付ける(S802)。レンダリング装置情報の例としては、レンダリング装置640、641、・・・642のリストと、リスト中の各レンダリング装置640、641、・・・642に関連するレンダリング装置情報(例えば、レンダリング装置の利用可能性、配置場所、状態、タイプ、平均処理量、最大処理速度、およびその他のレンダリング装置の属性や情報)とが挙げられる。いくつかの実施形態では、レンダリング装置情報は、印刷システムが備える、いかなるレンダリング装置640、641、・・・642に対してもアクセス可能な、印刷システムにおける中央格納位置に記憶されている。また、レンダリング装置が自装置に関連する情報を定期的に更新するようにも構成されている。そして、このような構成では、パーティション生成装置622は、ステップS802において、レンダリング装置情報を、中央格納位置から取得する。なお、他の実施形態では、ステップS802において、パーティション生成装置622は、レンダリング装置情報802を、レンダリング装置640、641、・・・642に対する問合せを受付けた場合に取得する構成としてもよい。さらに他の実施形態では、パーティション生成装置622は、レンダリング装置情報を、利用可能なレンダリング装置を管理するレンダリング装置マネージャから受け取る構成としてもよい。さらに他の実施形態では、レンダリング装置640、641、・・・642とレンダリング装置属性とについての固定データベースが整備されていてもよい。
【0123】
上述のようにパーティション生成装置622がグラフィックリストとレンダリング装置情報とを受付けると、パーティション生成装置622が、本明細書で述べた一以上のパーティション生成パラダイムに従ってパーティションを生成し(ステップS804)、生成したパーティションを処理する(ステップS806)。本発明のいくつかの実施形態では、最適なレンダリング性能を実現するために利用可能なレンダリング装置で、ステップS806におけるパーティションへの分割処理を行う構成としてもよい。いくつかの実施形態では、第一パーティションと第二パーティションとを、両パーティションにおけるオブジェクト数、オブジェクトの複雑さ、両パーティションに関する推定処理時間、およびその他のパーティション属性に基づき併合する、もしくは組み合わせる。また、他の実施形態では、第一パーティションを、そのパーティション内のオブジェクト数、オブジェクトの複雑さ、そのパーティションに関する推定処理時間、およびその他のパーティション属性に応じて、複数の副次パーティションに再分割する構成であってもよい。このように、本発明のいくつかの実施形態では、ステップS806において、パーティションに対する所定の制限に従ってパーティションを処理する。パーティションに対する制限例としては、パーティションのサイズ、パーティションの複雑さ、パーティション領域、パーティションに対する処理時間などが挙げられる。ステップS806の分割処理の結果、得られたパーティションは、レンダリング装置と関連付けられる(ステップS808)。本発明のいくつかの実施形態では、このステップS808における関連付けは、レンダリング装置情報に基づいて行うことができる。
【0124】
本発明のいくつかの実施形態では、パーティションを生成している間、パーティションに対応付けられたパーティション状態インジケータを観測するように構成されていてもよい。パーティション状態インジケータが第一の評価基準を満たす場合、現段階では利用不可能なこのパーティションに、グラフィックリスト要素は追加されない。同じタイプの新たなパーティションが作られ、利用不可能なパーティションに加えるべきグラフィックリスト要素を、この新たなパーティションに加える。
【0125】
パーティション状態インジケータの一例としては、パーティションにおけるグラフィックオブジェクト数と関連する。すなわち、本発明のいくつかの実施例では、パーティションに入りうるグラフィックオブジェクト数の上限が定められている。これらの実施形態では、もしあるパーティションがいっぱいだと判断された場合に、そのパーティションに割り振られるはずだった次のグラフィックリスト要素と出会ったとき、新たなパーティションが作られ、そのグラフィックリスト要素は新たなパーティションに加えられることになる。例えば、「オブジェクトタイプ別にパーティション分割を実行する処理」において、上限数を超えた一連のグラフィックリスト要素がある場合、それらのグラフィックリスト要素は複数のパーティションに割り振られることになる。例えば、「重畳別にパーティション分割を実行する処理」において、他のオブジェクトにより重ねられたり、他のオブジェクトに重ねたりしないグラフィックオブジェクト数が上限を超える場合、複数の「非重畳」パーティションが作られる。
【0126】
パーティション状態インジケータのその他の例としては、パーティションにおける第一グラフィックオブジェクトタイプのグラフィックオブジェクト数や、グラフィックオブジェクトの複雑さ、パーティションに対するレンダリング処理にかかる推定処理時間、およびその他のパーティションの特徴や属性と関連するインジケータが挙げられる。
【0127】
本発明のいくつかの実施形態では、関連するレンダリング装置に対していかなるパーティションの送信を行うよりも前に、グラフィックリストに関連したすべてのパーティションを生成するように構成してもよい。本発明の他の実施形態では、パーティションの生成処理が完了する前に、あるパーティションを、関連するレンダリング装置に送信する構成としてもよい。例えば、「オブジェクトタイプ別にパーティション分割を実行する処理」に係る本発明のいくつかの実施形態では、次のパーティションが作られた後に、任意のタイミングで第一のパーティションを関連するレンダリング装置に送信し、第一のパーティションに関連する実行が完了したことを示す。また、本発明のいくつかの実施形態では、例えば、すべてのパーティションを生成し終えるよりも前に、利用できないパーティションを関連するレンダリング装置に送信する。
【0128】
本明細書において述べられた印刷システムの構成はあくまでも例として挙げられたものであり、本発明の実施形態を限定するものではない。
【0129】
【表3】
【0130】
【表4】
【0131】
【表5】
【0132】
また、以上のように本発明に係る印刷システムの制御方法は以下のステップを含むものとも言える。
【0133】
本発明に係る印刷システムの制御方法は、印刷システムにおいて印刷ジョブをレンダリングする方法であって、(a)印刷ジョブと関連した、第一グラフィックリスト要素と、続く次のグラフィックリスト要素とを含んだグラフィックリストを取得するステップと、(b)前記第一グラフィックリスト要素を第一パーティションと関連付けるステップと、(c)前記第一グラフィックリスト要素に関連する第一グラフィカルオブジェクトのタイプを、前記次のグラフィックリスト要素に関連する第二グラフィカルオブジェクトのタイプと比較するステップと、(d)前記第一グラフィカルオブジェクトのタイプと前記第二グラフィカルオブジェクトのタイプとが同じ場合、前記次のグラフィックリスト要素も前記第一パーティションと関連付けるステップと、(e)前記第一グラフィカルオブジェクトのタイプと前記第二グラフィカルオブジェクトのタイプとが異なる場合、第二パーティションを作成し、前記次のグラフィックリスト要素を前記第二パーティションと関連付けるステップと、を含む。
【0134】
また、本発明に係る印刷システムの制御方法は、上記した方法において、前記第一グラフィカルオブジェクトのタイプは、テキストグラフィカルオブジェクト、ベクターグラフィカルオブジェクト、およびピクトリアルグラフィカルオブジェクトからなるグループから選択されたタイプであってもよい。
【0135】
また、本発明に係る印刷システムの制御方法は、上記した方法において、前記第一グラフィカルオブジェクトのタイプを、前記第一パーティションと関連付けるステップをさらに含んでもよい。
【0136】
また、本発明に係る印刷システムの制御方法は、上記した方法において、前記第一パーティションと第一レンダリング装置とを関連付けるステップをさらに含み、前記第一レンダリング装置が、前記第一グラフィカルオブジェクトタイプに関する第一の専用のレンダリング装置であってもよい。
【0137】
また、本発明に係る印刷システムの制御方法は、上記した方法において、前記第一グラフィカルオブジェクトのタイプは、テキストグラフィカルオブジェクト、ベクターグラフィカルオブジェクト、およびピクトリアルグラフィカルオブジェクトからなるグループから選択されたタイプであってもよい。
【0138】
また、本発明に係る印刷システムの制御方法は、上記した方法において、前記第二パーティションと第二レンダリング装置とを関連付けるステップをさらに含み、前記第二レンダリング装置が、前記第二グラフィカルオブジェクトのタイプに関する第二の専用のレンダリング装置であってもよい。
【0139】
また、本発明に係る印刷システムの制御方法は、上記した方法において、(a)前記第一の専用のレンダリング装置で前記第一パーティションをレンダリングするステップと、(b)前記第二の専用のレンダリング装置で前記第二パーティションをレンダリングするステップと、をさらに含んでもよい。
【0140】
また、本発明に係る印刷システムの制御方法は、上記した方法において、前記第一パーティションをレンダリングするステップと前記第二パーティションをレンダリングするステップとを実質的に同時に実行させてもよい。
【0141】
また、本発明に係る印刷システムの制御方法は、上記した方法において、第一パーティションの順番を前記第一パーティションと関連付けるステップをさらに含んでもよい。
【0142】
また、本発明に係る印刷システムの制御方法は、上記した方法において、第二パーティションの順番を前記第二パーティションと関連付けるステップをさらに含み、前記第一パーティションの順番と前記第二パーティションの順番とは、前記第一パーティションが前記第二パーティションより先にビットブリットされてもよい。
【0143】
さらにまた、以上のように本発明に係る印刷システムの制御方法は以下のステップを含むものということもできる。
【0144】
本発明に係る印刷システムの制御方法は、印刷システムにおいて印刷ジョブをレンダリングする方法であって、(a)印刷ジョブと関連した、第一のグラフィックリスト要素群を含むグラフィックリストを受付けるステップであって、これら第一のグラフィックリスト要素群における各グラフィックリスト要素は関連したグラフィカルオブジェクトタイプを有しているステップと、(b)前記第一のグラフィックリスト要素群における第二のグラフィックリスト要素群を第一パーティションと関連付けるステップと、を含み、(i)前記第二のグラフィックリスト要素群におけるグラフィックリスト要素のそれぞれが、第一のグラフィックリスト要素群において、第二のグラフィックリスト要素群における別のグラフィックリスト要素とそれぞれ隣接しており、(ii)前記第二のグラフィックリスト要素群における各グラフィックリスト要素それぞれが関連するグラフィカルオブジェクトタイプは、第一グラフィカルオブジェクトタイプであってもよい。
【0145】
また、本発明に係る印刷システムの制御方法は、上記した方法において、前記第一グラフィカルオブジェクトのタイプは、テキストグラフィカルオブジェクト、ベクターグラフィカルオブジェクトおよびピクトリアルグラフィカルオブジェクトからなるグループから選択されたタイプであってもよい。
【0146】
また、本発明に係る印刷システムの制御方法は、上記した方法において、第一レンダリング装置と前記第一パーティションとを関連付けるステップをさらに含んでもよい。
【0147】
また、本発明に係る印刷システムの制御方法は、上記した方法において、前記第一レンダリング装置が、前記第一グラフィカルオブジェクトタイプに関する専用のレンダリング装置であってもよい。
【0148】
また、本発明に係る印刷システムの制御方法は、上記した方法において、(a)前記第一のグラフィックリスト要素群におけるの第三のグラフィックリスト要素群を第二パーティションと関連付けるステップをさらに含み、(i)前記第三のグラフィックリスト要素群における各グラフィックリスト要素それぞれは、前記第一のグラフィックリスト要素群において、第三のグラフィックリスト要素群における別のグラフィックリスト要素とそれぞれ隣接しており、(ii)前記第三のグラフィックリスト要素群における各グラフィックリスト要素の関連するグラフィカルオブジェクトのタイプが、第二グラフィカルオブジェクトタイプであり、(iii)前記第一グラフィカルオブジェクトタイプと前記第二グラフィカルオブジェクトタイプとが異なっていてもよい。
【0149】
また、本発明に係る印刷システムの制御方法は、上記した方法において、(a)第一レンダリング装置を前記第一パーティションと関連付けるステップと、(b)第二レンダリング装置を前記第二パーティションと関連付けるステップと、をさらに含んでもよい。
【0150】
また、本発明に係る印刷システムの制御方法は、上記した方法において、(a)前記第一レンダリング装置が、前記第一グラフィカルオブジェクトタイプに関する第一の専用のレンダリング装置であり、(b)前記第二レンダリング装置が、前記第二グラフィカルオブジェクトタイプに関する第二の専用のレンダリング装置であってもよい。
【0151】
また、本発明に係る印刷システムの制御方法は、上記した方法において、(a)前記第一の専用のレンダリング装置によって、前記第一パーティションをレンダリングするステップと、(b)前記第二の専用のレンダリング装置によって、前記第二パーティションをレンダリングするステップと、をさらに含んでもよい。
【0152】
また、本発明に係る印刷システムの制御方法は、上記した方法において、前記第一パーティションをレンダリングするステップと、前記第二パーティションをレンダリングするステップとを実質的に同時に実行させてもよい。
【0153】
また、以上のように本発明に係る印刷システムは以下の構成を備えるものとも言える。
【0154】
また、本発明に係る印刷システムの制御方法は、上記した方法において、(a)印刷ジョブと関連した、第一グラフィックリスト要素と、続く次のグラフィックリスト要素とを含んだグラフィックリストを取得するグラフィックリスト取得装置と、(b)前記第一グラフィックリスト要素を第一パーティションと関連付ける第一グラフィックリスト要素関連付け装置と、(c)前記第一グラフィックリスト要素に関連する第一グラフィカルオブジェクトタイプを、前記次のグラフィックリスト要素に関連する第二グラフィカルオブジェクトタイプと比較するグラフィカルオブジェクトタイプ比較装置と、(d)(i)前記第一グラフィカルオブジェクトタイプと前記第二グラフィカルオブジェクトタイプとが同じ場合、前記次のグラフィックリスト要素を前記第一パーティションと関連付け、(e)前記第一グラフィカルオブジェクトタイプと前記第二グラフィカルオブジェクトタイプとが異なる場合、前記次のグラフィックリスト要素を前記第二パーティションと関連付ける第二グラフィックリスト要素関連付け装置とを備える。
【0155】
つまり、本発明のいくつかの実施形態では、グラフィックリスト要素を「同時」または「順不同に」レンダリングして、マルチコアプロセッシングプラットフォーム、専用プロセッサ、分散型処理システム、およびその他のコンピュータ処理環境を効果的かつ効率よく使用することができる方法、およびシステムを提供する。
【0156】
また、本発明のいくつかの実施形態では、一つのグラフィックリストを、複数のグラフィックリスト要素に分割し、これらグラフィックリスト要素を一以上のパーティションに分類する。つまり、各パーティションは、当該グラフィックリストにおいてグラフィックオブジェクトタイプが同じである、一連のグラフィックリスト要素と関連付けられる。それぞれのパーティションに対して、「同時」に、あるいは「順不同」にグラフィックリスト要素のレンダリングを行い、そして順次ビットブリットしてページバッファへと送信する。いくつかの実施形態では、パーティションは、該パーティションに関連するグラフィックオブジェクトタイプに応じた専用のレンダリング装置によってレンダリングされるように構成されている。
【0157】
また、本発明の他の実施形態では、グラフィックリストを、二つのパーティションに分割することができる。第一パーティションには、レンダリングされたときに、他のグラフィックリスト要素に重ねたり、あるいは他のグラフィックリスト要素により重ねられたりしないグラフィックリスト要素がすべて分類されている。一方、第二パーティションには、レンダリングされたときに、一以上の他のグラフィックリスト要素に重ねたり、あるいは他のグラフィック要素により重ねられたりするグラフィックリスト要素が分類される。そして、これら第一、第二パーティションに対して、同時に、あるいは様々な順番でグラフィックリスト要素のレンダリングを行い、そしてビットブリットする。つまり、第一パーティションのグラフィックリスト要素は、同時にまたは様々な順番でレンダリングがなされ、ビットブリットされる。また、第二パーティションのグラフィックリスト要素は、同時にまたは様々な順番でレンダリングがなされ、ビットブリットされる。
【0158】
また、さらなる他の実施形態では、以下のような構成とすることもできる。すなわち、グラフィックリストを第一パーティションに分割する。なお、この第一パーティションは、レンダリングしたときに、グラフィックリストにある他のグラフィックリスト要素に重ねたり、あるいは他のグラフィック要素により重ねられたりしないグラフィックリスト要素すべてを含む。また、グラフィックリストに残ったそれ以外のグラフィックリスト要素、すなわち第一パーティションに対応づけたグラフィックリスト要素以外のものは、レンダリングするときに、グラフィックスリストにある一以上の他のグラフィックリスト要素に重ねたり、他のグラフィック要素により重ねられたりするものとなる。さらに、この第一パーティション分割後のグラフィックリストは、互いが空間的に分離された重畳するグラフィックリスト要素群それぞれがパーティションにさらに分割される。なお、互いが空間的に分離された重畳するグラフィックリスト要素群とは、各グラフィックリスト要素が重畳しているグラフィックリスト要素群であって、他のグラフィックリスト要素群とは印刷レイアウトにおいて重なり合わない、すなわち重畳しないものを意味する。グラフィックリストを分割したパーティション(第一パーティション等)は、同時にまたは様々な順番でレンダリングされ、ビットブリットされる。ただし、互いが空間的に分離した、グラフィックリスト要素が重畳するグラフィックリスト要素群に関連するパーティションの中では、グラフィックリスト要素は、それぞれ所定の順番で順次レンダリングされ、そしてビットブリットされる。
【0159】
また、さらに他の実施形態では、グラフィックリストを、Z値(z-depth)すなわち、奥行き情報に関連付けられた複数のパーティションに分割する構成とすることもできる。これらの実施形態では、複数のパーティションに対して、同時に、または様々な順番でグラフィックリスト要素のレンダリングを行うことができるが、ビットブリットは順次行われる。
【0160】
また、本発明のいくつかの実施形態では、グラフィックリストの分割を、一以上の分割スキームに従って、カスケード式に行ってもよい。
【0161】
また、本発明のいくつかの実施形態では、パーティションが、一以上の分割スキームに従って、さらに再分割されてもよい。
【0162】
本発明のいくつかの実施形態では、グラフィックリストのパーティションへの分割は、最適なレンダリング動作を実現するのに利用可能なレンダリング装置で行われる。
【0163】
また、本発明の一態様によれば、レンダリング済グラフィックリスト要素の重畳状態を、これらのレンダリング済グラフィックリスト要素に関連付けられた空間領域の近似値と、ページグリッドとを用いて検出する構成としてもよい。
【0164】
本発明のいくつかの実施形態では、プリンタドライバを備えている。そして、このプリンタドライバによって、グラフィックリスト要素のグラフィックオブジェクトタイプに応じてグラフィックリストをパーティションに分割し、一以上のテキストタイプのパーティションをレンダリングしてエンコードする構成であってもよい。この実施形態では、プリンタドライバは、エンコードされた一以上のレンダリング済テキストパーティションとその他のパーティションとから印刷ストリームを構成してプリンタコントローラに送信する。
【0165】
また、本発明のいくつかの実施形態は、プリンタコントローラを備え、以下のような構成とすることができる。すなわち、このプリンタコントローラが、パーティションに分割した印刷ストリームを受け取って分解し、エンコードされた一以上のレンダリング済テキストパーティションをデコードする。また、他のパーティションをレンダリングして、すべてのレンダリング済パーティションのグラフィックオブジェクトをページバッファにビットブリットする。
【0166】
以上の記述は網羅的なものではなく、また本発明の開示内容を厳密に限定するものでもない。上記の教示に照らして、さまざまな修正や変化が可能である。
【0167】
上記の明細書において用いられた用語と表現は本発明を記述するためのものであり、限定するためのものではなく、そうした用語と表現の使用には、提示され記述された諸特徴の同等物またはその一部を除外する意図はなく、本発明の範囲は以下に述べる請求項によってのみ定義され限定される。
【産業上の利用可能性】
【0168】
本発明に係る印刷システムの制御方法は、オブジェクトタイプに基づきグラフィックリストに含まれるグラフィックリスト要素(グラフィックオブジェクト)を複数のパーティションに分類し、この複数のパーティションに分類されたグラフィックリスト要素のレンダリングを並列処理にて実行することができる。特に、連続する2つのグラフィックリスト要素において両者のオブジェクトタイプが異なる場合は新たなパーティションに後続するグラフィックリスト要素を分類する。一方、オブジェクトタイプが同じ場合は同じパーティションに連続するグラフィックリスト要素を分類して一括してレンダリングを行うことができる。このため、印刷ジョブを受付けレンダリングする処理を効率的に行う場合に幅広く適用することができる。
【符号の説明】
【0169】
10,580,770,780,790 ホストコンピューティング・デバイス
14,774,784,796 印刷装置
60,80,860 ページ(印刷データ)
62,86 第一テキストグラフィックオブジェクト(グラフィックオブジェクト・第一グラフィックオブジェクト)
64,82 第一ベクターグラフィックオブジェクト(グラフィックオブジェクト・第二グラフィックオブジェクト)
66 第二テキストグラフィックオブジェクト(グラフィックオブジェクト)
68,84 第二ベクターグラフィックオブジェクト(グラフィックオブジェクト)
70,90 第一ビットマップグラフィックオブジェクト(グラフィックオブジェクト)
72,88 第三ベクターグラフィックオブジェクト(グラフィックオブジェクト)
74,92 第二ビットマップグラフィックオブジェクト(グラフィックオブジェクト)
94 第四ベクターグラフィックオブジェクト(グラフィックオブジェクト)
100,220,270,310,622 パーティション生成装置(取得部、第一分類部、第二分類部、比較部)
101〜107,141〜145,221〜222,227,228,271,272,279,311,319〜321,630,674,676,694,698 パーティション(第一パーティション・第二パーティション)
111〜117,151〜155,640 レンダリング装置(第一レンダリング部、第二レンダリング部)
120,226,278,318 レンダリング済バッファ
121〜127,161〜165 レンダリング済パーティション
130,229〜230,282,322 ビットブリット装置(ビットブリット部)
223,274,314 汎用レンダリング装置
132,232,286,324,652 ページバッファ
650 ページビットブリット装置
654,772,794 プリンタサーバ
724,744 テキストパーティション
726,746 ベクターパーティション
728,748 ピクトリアルパーティション
【特許請求の範囲】
【請求項1】
印刷データに関連づけられた、複数のグラフィックオブジェクトが連続するストリームデータであるグラフィックリストをレンダリングして描画出力可能なデータである印刷用画素値を作成する印刷システムの制御方法であって、
上記グラフィックリストから第一グラフィックオブジェクトと、該第一グラフィックオブジェクトに続く、次のグラフィックオブジェクトである第二グラフィックオブジェクトとを取得する取得ステップと、
一括してレンダリングするグラフィックオブジェクトの集合単位を規定するためのパーティションであって、上記第一グラフィックオブジェクトの種類に応じた第一パーティションに、上記第一グラフィックオブジェクトを分類する第一分類ステップと、
上記第一グラフィックオブジェクトの種類と、上記第二グラフィックオブジェクトの種類とを比較する比較ステップと、
上記比較ステップにおいて、上記第一グラフィックオブジェクトと上記第二グラフィックオブジェクトとの種類が一致しない場合、上記第一パーティションとは異なるパーティションである第二パーティションに上記第二グラフィックオブジェクトを分類し、上記第一グラフィックオブジェクトと上記第二グラフィックオブジェクトとの種類が一致する場合は、上記第一パーティションに第二グラフィックオブジェクトを分類する第二分類ステップと、を含むことを特徴とする印刷システムの制御方法。
【請求項2】
上記グラフィックリストに含まれるグラフィックオブジェクトの種類は、印刷データにおける文字列とそれに関連するテキスト属性とを含むテキストオブジェクト、印刷データにおけるアウトライン、または塗りつぶし値と関連づけて一定の形状を含むベクターオブジェクト、および印刷データにおける高さ値、幅値、および連続する画素の明度を含むピクトリアルオブジェクトのうちのいずれかであることを特徴とする請求項1に記載の印刷システムの制御方法。
【請求項3】
上記第一パーティションと、該第一パーティションに分類されたグラフィックオブジェクトのレンダリングを専用に行う第一レンダリング部とを対応付けるとともに、
上記第二パーティションと、該第二パーティションに分類されたグラフィックオブジェクトのレンダリングを専用に行う第二レンダリング部とを対応付ける対応付けステップをさらに含むことを特徴とする請求項1または2に記載の印刷システムの制御方法。
【請求項4】
上記対応付けステップにより対応付けられた第一レンダリング部によって、上記第一パーティションに分類されたグラフィックオブジェクトのレンダリングを実行する第一レンダリングステップと、
上記対応付けステップにより対応付けられた第二レンダリング部によって、上記第二パーティションに分類されたグラフィックオブジェクトのレンダリングを実行する第二レンダリングステップと、を含むことを特徴とする請求項3に記載の印刷システムの制御方法。
【請求項5】
上記第一レンダリングステップと上記第二レンダリングステップとを並列して実行することを特徴とする請求項4に記載の印刷システムの制御方法。
【請求項6】
上記第一パーティションおよび第二パーティションには、レンダリングされる順番であるレンダリング順情報が対応付けられており、
上記レンダリング順情報に基づく順番で、上記第一レンダリングステップと上記第二レンダリングステップとを実行することを特徴とする請求項4に記載の印刷システムの制御方法。
【請求項7】
上記第一レンダリングステップおよび上記第二レンダリングステップによってそれぞれレンダリングされたグラフィックオブジェクトを順次ビットブリットするビットブリットステップを更に含むことを特徴とする請求項4から6のいずれか1項に記載の印刷システムの制御方法。
【請求項8】
印刷データに関連づけられた、複数のグラフィックオブジェクトが連続するストリームデータであるグラフィックリストをレンダリングして描画出力可能なデータである印刷用画素値を作成する印刷システムであって、
上記グラフィックリストから第一グラフィックオブジェクトと、該第一グラフィックオブジェクトに続く、次のグラフィックオブジェクトである第二グラフィックオブジェクトとを取得する取得部と、
一括してレンダリングするグラフィックオブジェクトの集合単位を規定するためのパーティションであって、上記第一グラフィックオブジェクトの種類に応じた第一パーティションに、上記第一グラフィックオブジェクトを分類する第一分類部と、
上記第一グラフィックオブジェクトの種類と、上記第二グラフィックオブジェクトの種類とを比較する比較部と、
上記比較部により、上記第一グラフィックオブジェクトと上記第二グラフィックオブジェクトとの種類が一致しない場合、上記第一パーティションとは異なるパーティションである第二パーティションに上記第二グラフィックオブジェクトを分類し、上記第一グラフィックオブジェクトと上記第二グラフィックオブジェクトとの種類が一致する場合は、上記第一パーティションに第二グラフィックオブジェクトを分類する第二分類部と、を備えることを特徴とする印刷システム。
【請求項9】
上記グラフィックリストに含まれるグラフィックオブジェクトの種類は、印刷データにおける文字列とそれに関連するテキスト属性とを含むテキストオブジェクト、印刷データにおけるアウトライン、または塗りつぶし値と関連づけて一定の形状を含むベクターオブジェクト、および印刷データにおける高さ値、幅値、および連続する画素の明度を含むピクトリアルオブジェクトのうちのいずれかであることを特徴とする請求項8に記載の印刷システム。
【請求項10】
上記第一パーティションと、該第一パーティションに分類されたグラフィックオブジェクトのレンダリングを専用に行う第一レンダリング部とを対応付けるとともに、
上記第二パーティションと、該第二パーティションに分類されたグラフィックオブジェクトのレンダリングを専用に行う第二レンダリング部とを対応付ける対応付け部をさらに備えることを特徴とする請求項8または9に記載の印刷システム。
【請求項11】
上記対応付け部により対応付けられており、上記第一パーティションに分類されたグラフィックオブジェクトのレンダリングを実行する上記第一レンダリング部と、
上記対応付け部により対応付けられており、上記第二パーティションに分類されたグラフィックオブジェクトのレンダリングを実行する上記第二レンダリング部と、を備えることを特徴とする請求項10に記載の印刷システム。
【請求項12】
上記第一レンダリング部と上記第二レンダリング部とを並列して実行することを特徴とする請求項11に記載の印刷システム。
【請求項13】
上記第一パーティションおよび第二パーティションには、レンダリングされる順番であるレンダリング順情報が対応付けられており、
上記レンダリング順情報に基づく順番で、上記第一レンダリング部および上記第二レンダリング部は、それぞれレンダリングを実行することを特徴とする請求項11に記載の印刷システム。
【請求項14】
上記第一レンダリング部および上記第二レンダリング部によってそれぞれレンダリングされたグラフィックオブジェクトを順次ビットブリットするビットブリット部を更に備えることを特徴とする請求項11から13のいずれか1項に記載の印刷システム。
【請求項1】
印刷データに関連づけられた、複数のグラフィックオブジェクトが連続するストリームデータであるグラフィックリストをレンダリングして描画出力可能なデータである印刷用画素値を作成する印刷システムの制御方法であって、
上記グラフィックリストから第一グラフィックオブジェクトと、該第一グラフィックオブジェクトに続く、次のグラフィックオブジェクトである第二グラフィックオブジェクトとを取得する取得ステップと、
一括してレンダリングするグラフィックオブジェクトの集合単位を規定するためのパーティションであって、上記第一グラフィックオブジェクトの種類に応じた第一パーティションに、上記第一グラフィックオブジェクトを分類する第一分類ステップと、
上記第一グラフィックオブジェクトの種類と、上記第二グラフィックオブジェクトの種類とを比較する比較ステップと、
上記比較ステップにおいて、上記第一グラフィックオブジェクトと上記第二グラフィックオブジェクトとの種類が一致しない場合、上記第一パーティションとは異なるパーティションである第二パーティションに上記第二グラフィックオブジェクトを分類し、上記第一グラフィックオブジェクトと上記第二グラフィックオブジェクトとの種類が一致する場合は、上記第一パーティションに第二グラフィックオブジェクトを分類する第二分類ステップと、を含むことを特徴とする印刷システムの制御方法。
【請求項2】
上記グラフィックリストに含まれるグラフィックオブジェクトの種類は、印刷データにおける文字列とそれに関連するテキスト属性とを含むテキストオブジェクト、印刷データにおけるアウトライン、または塗りつぶし値と関連づけて一定の形状を含むベクターオブジェクト、および印刷データにおける高さ値、幅値、および連続する画素の明度を含むピクトリアルオブジェクトのうちのいずれかであることを特徴とする請求項1に記載の印刷システムの制御方法。
【請求項3】
上記第一パーティションと、該第一パーティションに分類されたグラフィックオブジェクトのレンダリングを専用に行う第一レンダリング部とを対応付けるとともに、
上記第二パーティションと、該第二パーティションに分類されたグラフィックオブジェクトのレンダリングを専用に行う第二レンダリング部とを対応付ける対応付けステップをさらに含むことを特徴とする請求項1または2に記載の印刷システムの制御方法。
【請求項4】
上記対応付けステップにより対応付けられた第一レンダリング部によって、上記第一パーティションに分類されたグラフィックオブジェクトのレンダリングを実行する第一レンダリングステップと、
上記対応付けステップにより対応付けられた第二レンダリング部によって、上記第二パーティションに分類されたグラフィックオブジェクトのレンダリングを実行する第二レンダリングステップと、を含むことを特徴とする請求項3に記載の印刷システムの制御方法。
【請求項5】
上記第一レンダリングステップと上記第二レンダリングステップとを並列して実行することを特徴とする請求項4に記載の印刷システムの制御方法。
【請求項6】
上記第一パーティションおよび第二パーティションには、レンダリングされる順番であるレンダリング順情報が対応付けられており、
上記レンダリング順情報に基づく順番で、上記第一レンダリングステップと上記第二レンダリングステップとを実行することを特徴とする請求項4に記載の印刷システムの制御方法。
【請求項7】
上記第一レンダリングステップおよび上記第二レンダリングステップによってそれぞれレンダリングされたグラフィックオブジェクトを順次ビットブリットするビットブリットステップを更に含むことを特徴とする請求項4から6のいずれか1項に記載の印刷システムの制御方法。
【請求項8】
印刷データに関連づけられた、複数のグラフィックオブジェクトが連続するストリームデータであるグラフィックリストをレンダリングして描画出力可能なデータである印刷用画素値を作成する印刷システムであって、
上記グラフィックリストから第一グラフィックオブジェクトと、該第一グラフィックオブジェクトに続く、次のグラフィックオブジェクトである第二グラフィックオブジェクトとを取得する取得部と、
一括してレンダリングするグラフィックオブジェクトの集合単位を規定するためのパーティションであって、上記第一グラフィックオブジェクトの種類に応じた第一パーティションに、上記第一グラフィックオブジェクトを分類する第一分類部と、
上記第一グラフィックオブジェクトの種類と、上記第二グラフィックオブジェクトの種類とを比較する比較部と、
上記比較部により、上記第一グラフィックオブジェクトと上記第二グラフィックオブジェクトとの種類が一致しない場合、上記第一パーティションとは異なるパーティションである第二パーティションに上記第二グラフィックオブジェクトを分類し、上記第一グラフィックオブジェクトと上記第二グラフィックオブジェクトとの種類が一致する場合は、上記第一パーティションに第二グラフィックオブジェクトを分類する第二分類部と、を備えることを特徴とする印刷システム。
【請求項9】
上記グラフィックリストに含まれるグラフィックオブジェクトの種類は、印刷データにおける文字列とそれに関連するテキスト属性とを含むテキストオブジェクト、印刷データにおけるアウトライン、または塗りつぶし値と関連づけて一定の形状を含むベクターオブジェクト、および印刷データにおける高さ値、幅値、および連続する画素の明度を含むピクトリアルオブジェクトのうちのいずれかであることを特徴とする請求項8に記載の印刷システム。
【請求項10】
上記第一パーティションと、該第一パーティションに分類されたグラフィックオブジェクトのレンダリングを専用に行う第一レンダリング部とを対応付けるとともに、
上記第二パーティションと、該第二パーティションに分類されたグラフィックオブジェクトのレンダリングを専用に行う第二レンダリング部とを対応付ける対応付け部をさらに備えることを特徴とする請求項8または9に記載の印刷システム。
【請求項11】
上記対応付け部により対応付けられており、上記第一パーティションに分類されたグラフィックオブジェクトのレンダリングを実行する上記第一レンダリング部と、
上記対応付け部により対応付けられており、上記第二パーティションに分類されたグラフィックオブジェクトのレンダリングを実行する上記第二レンダリング部と、を備えることを特徴とする請求項10に記載の印刷システム。
【請求項12】
上記第一レンダリング部と上記第二レンダリング部とを並列して実行することを特徴とする請求項11に記載の印刷システム。
【請求項13】
上記第一パーティションおよび第二パーティションには、レンダリングされる順番であるレンダリング順情報が対応付けられており、
上記レンダリング順情報に基づく順番で、上記第一レンダリング部および上記第二レンダリング部は、それぞれレンダリングを実行することを特徴とする請求項11に記載の印刷システム。
【請求項14】
上記第一レンダリング部および上記第二レンダリング部によってそれぞれレンダリングされたグラフィックオブジェクトを順次ビットブリットするビットブリット部を更に備えることを特徴とする請求項11から13のいずれか1項に記載の印刷システム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6a】
【図6b】
【図7a】
【図7b】
【図8】
【図9】
【図10a】
【図10b】
【図11】
【図12a】
【図12b】
【図13】
【図14a】
【図14b】
【図15a】
【図15b】
【図15c】
【図16a】
【図16b】
【図17】
【図18a】
【図18b】
【図19a】
【図19b】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図2】
【図3】
【図4】
【図5】
【図6a】
【図6b】
【図7a】
【図7b】
【図8】
【図9】
【図10a】
【図10b】
【図11】
【図12a】
【図12b】
【図13】
【図14a】
【図14b】
【図15a】
【図15b】
【図15c】
【図16a】
【図16b】
【図17】
【図18a】
【図18b】
【図19a】
【図19b】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【公開番号】特開2010−238235(P2010−238235A)
【公開日】平成22年10月21日(2010.10.21)
【国際特許分類】
【出願番号】特願2010−68729(P2010−68729)
【出願日】平成22年3月24日(2010.3.24)
【出願人】(000005049)シャープ株式会社 (33,933)
【Fターム(参考)】
【公開日】平成22年10月21日(2010.10.21)
【国際特許分類】
【出願日】平成22年3月24日(2010.3.24)
【出願人】(000005049)シャープ株式会社 (33,933)
【Fターム(参考)】
[ Back to top ]