(57)【要約】【課題】他の画像要素で隠される部分の描画処理を省略できるようにするための処理を、１つの画像要素ごとに後続の画像要素により隠される部分を特定してその部分以外の範囲を描画する方式よりも、高速に実行できるようにする。【解決手段】中間データ最適化部３６は最適化処理部３６４とスプール３６６を有する。最適化処理部３６４は、新たなオブジェクトの中間データを受け取ると、スプール３６６内に記憶されている描画順が前の各オブジェクトのうちその新たなオブジェクトにより完全に隠されるものを削除し、またその新たなオブジェクトにより部分的に隠されるオブジェクトの形状データを、その隠される部分を含まない形状を表すデータに変更する。そして、その新たなオブジェクトをスプール３６６に記憶する。例えばページごとなどの出力単位に含まれるオブジェクト群について処理が終わると、スプール３６６内にあるオブジェクト群のデータを出力する。【選択図】図４
2015005131.tif 000002
【特許請求の範囲】
【請求項１】
画像要素のデータを記憶する記憶手段であって、前記画像要素のデータは、当該画像要素の形状を表す形状情報と、当該画像要素内の各画素の色を定義する色情報と、を含むことを特徴とする記憶手段と、
描画順序に従って新たな画像要素のデータが入力されると、前記記憶手段に記憶されている各画像要素の形状情報を、前記新たな画像要素の形状情報が表す形状により隠される部分を除いた形状を表すよう更新すると共に、前記新たな画像要素のデータを前記記憶手段に記憶させるデータ効率化処理を行う効率化処理手段と、
出力単位ごとに、その出力単位に含まれるすべての画像要素のデータが前記記憶手段に記憶されると、前記記憶手段に記憶されている各画像要素のデータを出力する出力手段と、
を備える印刷データ処理装置。
【請求項２】
前記効率化処理手段は、前記効率化処理として、前記記憶手段に記憶されている画像要素のうち、前記新たな画像要素により完全に隠されてしまう画像要素のデータを、前記記憶手段から削除する、ことを特徴とする請求項１に記載の印刷データ処理装置。
【請求項３】
画像要素の色情報を規定する色形式として第１色形式と第２色形式が存在し、
前記記憶手段には、前記第１色形式の画像要素のデータのみが記憶され、
前記効率化処理手段は、前記効率化処理として、前記新たな画像要素の色形式が第１の色形式である場合には、前記新たな画像要素を前記記憶手段に記憶させ、前記新たな画像要素の色形式が第２の色形式である場合には、前記記憶手段に記憶されている各画像要素の形状情報を前記新たな画像要素の形状情報が表す形状により隠される部分を除いた形状を表すよう更新すると共に、前記新たな画像要素のデータを出力する、
ことを特徴とする請求項１又は２に記載の印刷データ処理装置。
【請求項４】
画像要素の色情報を規定する色形式として第１色形式と第２色形式が存在し、
前記記憶手段は、前記第１色形式の画像要素のデータを記憶する第１の記憶手段と、前記第２色形式の画像要素のデータを記憶する第２の記憶手段と、を有し、
前記効率化処理手段は、前記効率化処理として、
前記新たな画像要素の色形式が第１色形式である場合には、前記第２の記憶手段に記憶されている各画像要素の形状情報を前記新たな画像要素の形状情報が表す形状により隠される部分を除いた形状を表すよう更新すると共に、前記新たな画像要素のデータを前記第１の記憶手段に記憶させ
前記新たな画像要素の色形式が第２の色形式である場合には、前記第１の記憶手段に記憶されている各画像要素の形状情報を前記新たな画像要素の形状情報が表す形状により隠される部分を除いた形状を表すよう更新すると共に、前記新たな画像要素のデータを前記第２の記憶手段に記憶させる、
ことを特徴とする請求項１又は２に記載の印刷データ処理装置。
【請求項５】
前記記憶手段には、キャッシュ対象と判定された画像要素のデータのみが記憶され、
前記効率化処理手段は、前記新たな画像要素が前記キャッシュ対象である場合にのみ、前記効率化処理を実行する、
ことを特徴とする請求項１〜４のいずれか１項に記載の印刷データ処理装置。
【請求項６】
前記効率化処理手段は、前記出力単位に含まれる画像要素群のデータを印刷装置が取り扱い可能な画像データ形式に変換する処理の負荷の指標値を計算し、前記指標値があらかじめ定めた閾値以下の場合、当該出力単位については前記効率化処理を行わないよう制御する、ことを特徴とする請求項１〜５のいずれか１項に記載の印刷データ処理装置。
【請求項７】
コンピュータを、
画像要素のデータを記憶する記憶手段であって、前記画像要素のデータは、当該画像要素の形状を表す形状情報と、当該画像要素内の各画素の色を定義する色情報と、を含むことを特徴とする記憶手段、
描画順序に従って新たな画像要素のデータが入力されると、前記記憶手段に記憶されている各画像要素の形状情報を、前記新たな画像要素の形状情報が表す形状により隠される部分を除いた形状を表すよう更新すると共に、前記新たな画像要素のデータを前記記憶手段に記憶させるデータ効率化処理を行う効率化処理手段、
出力単位ごとに、その出力単位に含まれるすべての画像要素のデータが前記記憶手段に記憶されると、前記記憶手段に記憶されている各画像要素のデータを出力する出力手段、
として機能させるためのプログラム。
【請求項８】
ページ記述言語で記述された印刷データを処理して、中間データ形式で記述された中間データを生成する中間データ生成手段であって、前記中間データ形式は、印刷画像中に含まれる各画像要素を、当該画像要素の形状を表す形状情報と、当該画像要素内の各画素の色を定義する色情報と、の組合せで表現する、中間データ生成手段と、
前記中間データ生成手段が出力した中間データを効率化する効率化手段であって、
前記中間データに含まれる各画像要素のデータを記憶する記憶手段と、
前記中間データ生成手段から描画順序に従って新たな画像要素のデータを取得すると、前記記憶手段に記憶されている各画像要素の形状情報を、前記新たな画像要素の形状情報が表す形状により隠される部分を除いた形状を表すよう更新すると共に、前記新たな画像要素のデータを前記記憶手段に記憶させるデータ効率化処理を行う効率化処理手段と、
出力単位ごとに、その出力単位に含まれるすべての画像要素のデータが前記記憶手段に記憶されると、前記記憶手段に記憶されている各画像要素のデータを出力する出力手段と、
を備える印刷データ処理装置。
【請求項９】
コンピュータを、
ページ記述言語で記述された印刷データを処理して、中間データ形式で記述された中間データを生成する中間データ生成装置であって、前記中間データ形式は、印刷画像中に含まれる各画像要素を、当該画像要素の形状を表す形状情報と、当該画像要素内の各画素の色を定義する色情報と、の組合せで表現する、中間データ生成手段、
前記中間データ生成手段が出力した中間データを効率化する効率化手段、
として機能させるためのプログラムであって、
前記効率化手段は、
前記中間データに含まれる各画像要素のデータを記憶する記憶手段と、
前記中間データ生成手段から描画順序に従って新たな画像要素のデータを取得すると、前記記憶手段に記憶されている各画像要素の形状情報を、前記新たな画像要素の形状情報が表す形状により隠される部分を除いた形状を表すよう更新すると共に、前記新たな画像要素のデータを前記記憶手段に記憶させるデータ効率化処理を行う効率化処理手段と、
出力単位ごとに、その出力単位に含まれるすべての画像要素のデータが前記記憶手段に記憶されると、前記記憶手段に記憶されている各画像要素のデータを出力する出力手段と、
を備えることを特徴とするプログラム。
【請求項１０】
印刷データ処理装置と、印刷画像データ生成装置と、を有し、
前記印刷データ処理装置は、
画像要素のデータを記憶する記憶手段であって、前記画像要素のデータは、当該画像要素の形状を表す形状情報と、当該画像要素内の各画素の色を定義する色情報と、を含むことを特徴とする記憶手段と、
描画順序に従って新たな画像要素のデータが入力されると、前記記憶手段に記憶されている各画像要素の形状情報を、前記新たな画像要素の形状情報が表す形状により隠される部分を除いた形状を表すよう更新すると共に、前記新たな画像要素のデータを前記記憶手段に記憶させるデータ効率化処理を行う効率化処理手段と、
出力単位ごとに、その出力単位に含まれるすべての画像要素のデータが前記記憶手段に記憶されると、前記記憶手段に記憶されている各画像要素のデータを出力する出力手段と、
を備え、
前記印刷画像データ生成装置は、
前記印刷データ処理装置の前記出力手段から出力された各画像要素のデータを処理して、印刷装置が取り扱い可能な印刷画像データを生成する印刷画像データ生成手段、
を有する、印刷データ処理システム。
【請求項１１】
画像要素の色情報を規定する色形式として第１色形式と第２色形式が存在し、
前記記憶手段には、前記第１色形式の画像要素のデータのみが記憶され、
前記効率化処理手段は、前記効率化処理として、前記新たな画像要素の色形式が第１の色形式である場合には、前記新たな画像要素を前記記憶手段に記憶させ、前記新たな画像要素の色形式が第２の色形式である場合には、前記記憶手段に記憶されている各画像要素の形状情報を前記新たな画像要素の形状情報が表す形状により隠される部分を除いた形状を表すよう更新すると共に、前記新たな画像要素のデータを出力し、
前記印刷画像データ生成手段は、
回路構成を動的に再構成可能な動的再構成可能回路と、
入力された画像要素のデータの色情報が前記第１の色形式である場合には、前記動的再構成可能回路の回路構成を、前記第１色形式の色情報を含む画像要素のデータを処理するための第１回路構成とし、入力された画像要素のデータの色情報が前記第２の色形式である場合には、前記第２色形式の色情報を含む画像要素のデータを処理するための第２回路構成とするよう制御する回路構成制御手段と、
を有することを特徴とする請求項１０に記載の印刷データ処理システム。
【請求項１２】
画像要素の色情報を規定する色形式として第１色形式と第２色形式が存在し、
前記記憶手段は、前記第１色形式の画像要素のデータを記憶する第１の記憶手段と、前記第２色形式の画像要素のデータを記憶する第２の記憶手段と、を有し、
前記効率化処理手段は、前記効率化処理として、
前記新たな画像要素の色形式が第１色形式である場合には、前記第２の記憶手段に記憶されている各画像要素の形状情報を前記新たな画像要素の形状情報が表す形状により隠される部分を除いた形状を表すよう更新すると共に、前記新たな画像要素のデータを前記第１の記憶手段に記憶させ
前記新たな画像要素の色形式が第２の色形式である場合には、前記第１の記憶手段に記憶されている各画像要素の形状情報を前記新たな画像要素の形状情報が表す形状により隠される部分を除いた形状を表すよう更新すると共に、前記新たな画像要素のデータを前記第２の記憶手段に記憶させ、
前記印刷画像データ生成手段は、
回路構成を動的に再構成可能な動的再構成可能回路と、
入力された画像要素のデータの色情報が前記第１の色形式である場合には、前記動的再構成可能回路の回路構成を、前記第１色形式の色情報を含む画像要素のデータを処理するための第１回路構成とし、入力された画像要素のデータの色情報が前記第２の色形式である場合には、前記第２色形式の色情報を含む画像要素のデータを処理するための第２回路構成とするよう制御する回路構成制御手段と、
ことを特徴とする請求項１０に記載の印刷データ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷データ処理装置、プログラム及びシステムに関する。
【背景技術】
【０００２】
特許文献１に開示される印刷処理装置では、重なり判定処理部の直前図形データメモリには、中間データメモリに蓄積された中間データを処理するに際して直前の図形データを保存する。図形重なり判定部は中間データメモリに蓄積された処理対象の各中間データが直前図形データメモリに保存した直前図形データと重なりがあるかどうかを判定し、描画省略可能な重なり部分がある場合、直前図形データメモリに保存した直前図形データの座標データを変更して重なる部分を削除する。
【０００３】
特許文献２に開示される画像形成装置は、所定のデータを解析し、図形データとその領域データとを抽出するＰＤＬ解析部と、抽出された一以上の図形データ及びその領域データをディスプレイリストとして作成するディスプレイリスト作成部と、前記ディスプレイリストに格納されている各図形データの領域面積を算出するとともに最大の領域面積を有する一の図形データを抽出し、当該一の図形データの領域に包含される図形データを前記ディスプレイリストから削除するディスプレイリスト削除部と、前記ディスプレイリストに格納されている図形データに基づき画像形成データを出力するページラスタライズ部とを有する。すなわち、この装置は、最大面積の図形データで上書きされるデータを削除することで、出力の高速化を図っている。
【０００４】
特許文献３に開示される装置では、描画命令が描画順に描画命令記憶部に格納される。その描画命令を順に処理する際、描画判定部は、描画対象のオブジェクトの描画領域を把握し、その領域と重なる領域に上書き描画を行うオブジェクトが、後続の描画命令の中に存在するか否かを判断する。描画領域が重なり、上書きであるオブジェクトと重なる描画領域に対して、描画対象のオブジェクトの描画判別情報として「描画しない」旨を描画判別情報保持部に書き込む。後続の全てのオブジェクトについて同様の処理を行った後、描画判別情報保持部に「描画しない」描画判別情報が格納された領域以外の領域について、ＲＯＰ処理を含む描画処理を行って、描画対象オブジェクトを描画する。ここで、ＲＯＰ（Ｒａｓｔｅｒ ＯＰｅｒａｔｉｏｎ）処理とは、複数の画像が重なる場合に、もとの画像と新たに書き込まれる画像との重ね合わせの方法を示す指示に従って、複数の画像を重ね合わせる処理である。この装置は、「描画しない」領域の特定と、オブジェクトのうち「描画しない」領域を除いた部分の描画処理とを、１オブジェクトごとに繰り返す。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−３１２５９２号公報
【特許文献２】特開２００９−０７５８０５号公報
【特許文献３】特開２００２−１３３４３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、他の画像要素で隠される部分の描画処理を省略できるようにするための処理を、１つの画像要素ごとに後続の画像要素により隠される部分を特定してその部分以外の範囲を描画する方式よりも、高速に実行できるようにすることを目的とする。
【課題を解決するための手段】
【０００７】
請求項１に係る発明は、画像要素のデータを記憶する記憶手段であって、前記画像要素のデータは、当該画像要素の形状を表す形状情報と、当該画像要素内の各画素の色を定義する色情報と、を含むことを特徴とする記憶手段と、描画順序に従って新たな画像要素のデータが入力されると、前記記憶手段に記憶されている各画像要素の形状情報を、前記新たな画像要素の形状情報が表す形状により隠される部分を除いた形状を表すよう更新すると共に、前記新たな画像要素のデータを前記記憶手段に記憶させるデータ効率化処理を行う効率化処理手段と、出力単位ごとに、その出力単位に含まれるすべての画像要素のデータが前記記憶手段に記憶されると、前記記憶手段に記憶されている各画像要素のデータを出力する出力手段と、を備える印刷データ処理装置である。
【０００８】
請求項２に係る発明は、前記効率化処理手段は、前記効率化処理として、前記記憶手段に記憶されている画像要素のうち、前記新たな画像要素により完全に隠されてしまう画像要素のデータを、前記記憶手段から削除する、ことを特徴とする請求項１に記載の印刷データ処理装置である。
【０００９】
請求項３に係る発明は、画像要素の色情報を規定する色形式として第１色形式と第２色形式が存在し、前記記憶手段には、前記第１色形式の画像要素のデータのみが記憶され、前記効率化処理手段は、前記効率化処理として、前記新たな画像要素の色形式が第１の色形式である場合には、前記新たな画像要素を前記記憶手段に記憶させ、前記新たな画像要素の色形式が第２の色形式である場合には、前記記憶手段に記憶されている各画像要素の形状情報を前記新たな画像要素の形状情報が表す形状により隠される部分を除いた形状を表すよう更新すると共に、前記新たな画像要素のデータを出力する、ことを特徴とする請求項１又は２に記載の印刷データ処理装置である。
【００１０】
請求項４に係る発明は、画像要素の色情報を規定する色形式として第１色形式と第２色形式が存在し、前記記憶手段は、前記第１色形式の画像要素のデータを記憶する第１の記憶手段と、前記第２色形式の画像要素のデータを記憶する第２の記憶手段と、を有し、前記効率化処理手段は、前記効率化処理として、前記新たな画像要素の色形式が第１色形式である場合には、前記第２の記憶手段に記憶されている各画像要素の形状情報を前記新たな画像要素の形状情報が表す形状により隠される部分を除いた形状を表すよう更新すると共に、前記新たな画像要素のデータを前記第１の記憶手段に記憶させ前記新たな画像要素の色形式が第２の色形式である場合には、前記第１の記憶手段に記憶されている各画像要素の形状情報を前記新たな画像要素の形状情報が表す形状により隠される部分を除いた形状を表すよう更新すると共に、前記新たな画像要素のデータを前記第２の記憶手段に記憶させる、ことを特徴とする請求項１又は２に記載の印刷データ処理装置である。
【００１１】
請求項５に係る発明は、前記記憶手段には、キャッシュ対象と判定された画像要素のデータのみが記憶され、前記効率化処理手段は、前記新たな画像要素が前記キャッシュ対象である場合にのみ、前記効率化処理を実行する、ことを特徴とする請求項１〜４のいずれか１項に記載の印刷データ処理装置である。
【００１２】
請求項６に係る発明は、前記効率化処理手段は、前記出力単位に含まれる画像要素群のデータを印刷装置が取り扱い可能な画像データ形式に変換する処理の負荷の指標値を計算し、前記指標値があらかじめ定めた閾値以下の場合、当該出力単位については前記効率化処理を行わないよう制御する、ことを特徴とする請求項１〜５のいずれか１項に記載の印刷データ処理装置である。
【００１３】
請求項７に係る発明は、コンピュータを、画像要素のデータを記憶する記憶手段であって、前記画像要素のデータは、当該画像要素の形状を表す形状情報と、当該画像要素内の各画素の色を定義する色情報と、を含むことを特徴とする記憶手段、描画順序に従って新たな画像要素のデータが入力されると、前記記憶手段に記憶されている各画像要素の形状情報を、前記新たな画像要素の形状情報が表す形状により隠される部分を除いた形状を表すよう更新すると共に、前記新たな画像要素のデータを前記記憶手段に記憶させるデータ効率化処理を行う効率化処理手段、出力単位ごとに、その出力単位に含まれるすべての画像要素のデータが前記記憶手段に記憶されると、前記記憶手段に記憶されている各画像要素のデータを出力する出力手段、として機能させるためのプログラムである。
【００１４】
請求項８に係る発明は、ページ記述言語で記述された印刷データを処理して、中間データ形式で記述された中間データを生成する中間データ生成手段であって、前記中間データ形式は、印刷画像中に含まれる各画像要素を、当該画像要素の形状を表す形状情報と、当該画像要素内の各画素の色を定義する色情報と、の組合せで表現する、中間データ生成手段と、前記中間データ生成手段が出力した中間データを効率化する効率化手段であって、前記中間データに含まれる各画像要素のデータを記憶する記憶手段と、前記中間データ生成手段から描画順序に従って新たな画像要素のデータを取得すると、前記記憶手段に記憶されている各画像要素の形状情報を、前記新たな画像要素の形状情報が表す形状により隠される部分を除いた形状を表すよう更新すると共に、前記新たな画像要素のデータを前記記憶手段に記憶させるデータ効率化処理を行う効率化処理手段と、出力単位ごとに、その出力単位に含まれるすべての画像要素のデータが前記記憶手段に記憶されると、前記記憶手段に記憶されている各画像要素のデータを出力する出力手段と、を備える印刷データ処理装置である。
【００１５】
請求項９に係る発明は、コンピュータを、ページ記述言語で記述された印刷データを処理して、中間データ形式で記述された中間データを生成する中間データ生成装置であって、前記中間データ形式は、印刷画像中に含まれる各画像要素を、当該画像要素の形状を表す形状情報と、当該画像要素内の各画素の色を定義する色情報と、の組合せで表現する、中間データ生成手段、前記中間データ生成手段が出力した中間データを効率化する効率化手段、として機能させるためのプログラムであって、前記効率化手段は、前記中間データに含まれる各画像要素のデータを記憶する記憶手段と、前記中間データ生成手段から描画順序に従って新たな画像要素のデータを取得すると、前記記憶手段に記憶されている各画像要素の形状情報を、前記新たな画像要素の形状情報が表す形状により隠される部分を除いた形状を表すよう更新すると共に、前記新たな画像要素のデータを前記記憶手段に記憶させるデータ効率化処理を行う効率化処理手段と、出力単位ごとに、その出力単位に含まれるすべての画像要素のデータが前記記憶手段に記憶されると、前記記憶手段に記憶されている各画像要素のデータを出力する出力手段と、を備えることを特徴とするプログラムである。
【００１６】
請求項１０に係る発明は、印刷データ処理装置と、印刷画像データ生成装置と、を有し、前記印刷データ処理装置は、画像要素のデータを記憶する記憶手段であって、前記画像要素のデータは、当該画像要素の形状を表す形状情報と、当該画像要素内の各画素の色を定義する色情報と、を含むことを特徴とする記憶手段と、描画順序に従って新たな画像要素のデータが入力されると、前記記憶手段に記憶されている各画像要素の形状情報を、前記新たな画像要素の形状情報が表す形状により隠される部分を除いた形状を表すよう更新すると共に、前記新たな画像要素のデータを前記記憶手段に記憶させるデータ効率化処理を行う効率化処理手段と、出力単位ごとに、その出力単位に含まれるすべての画像要素のデータが前記記憶手段に記憶されると、前記記憶手段に記憶されている各画像要素のデータを出力する出力手段と、を備え、前記印刷画像データ生成装置は、前記印刷データ処理装置の前記出力手段から出力された各画像要素のデータを処理して、印刷装置が取り扱い可能な印刷画像データを生成する印刷画像データ生成手段、を有する、印刷データ処理システムである。
【００１７】
請求項１１に係る発明は、画像要素の色情報を規定する色形式として第１色形式と第２色形式が存在し、前記記憶手段には、前記第１色形式の画像要素のデータのみが記憶され、前記効率化処理手段は、前記効率化処理として、前記新たな画像要素の色形式が第１の色形式である場合には、前記新たな画像要素を前記記憶手段に記憶させ、前記新たな画像要素の色形式が第２の色形式である場合には、前記記憶手段に記憶されている各画像要素の形状情報を前記新たな画像要素の形状情報が表す形状により隠される部分を除いた形状を表すよう更新すると共に、前記新たな画像要素のデータを出力し、前記印刷画像データ生成手段は、回路構成を動的に再構成可能可能な動的再構成可能回路と、入力された画像要素のデータの色情報が前記第１の色形式である場合には、前記動的再構成可能回路の回路構成を、前記第１色形式の色情報を含む画像要素のデータを処理するための第１回路構成とし、入力された画像要素のデータの色情報が前記第２の色形式である場合には、前記第２色形式の色情報を含む画像要素のデータを処理するための第２回路構成とするよう制御する回路構成制御手段と、を有することを特徴とする請求項１０に記載の印刷データ処理システムである。
【００１８】
請求項１２に係る発明は、画像要素の色情報を規定する色形式として第１色形式と第２色形式が存在し、前記記憶手段は、前記第１色形式の画像要素のデータを記憶する第１の記憶手段と、前記第２色形式の画像要素のデータを記憶する第２の記憶手段と、を有し、前記効率化処理手段は、前記効率化処理として、前記新たな画像要素の色形式が第１色形式である場合には、前記第２の記憶手段に記憶されている各画像要素の形状情報を前記新たな画像要素の形状情報が表す形状により隠される部分を除いた形状を表すよう更新すると共に、前記新たな画像要素のデータを前記第１の記憶手段に記憶させ、前記新たな画像要素の色形式が第２の色形式である場合には、前記第１の記憶手段に記憶されている各画像要素の形状情報を前記新たな画像要素の形状情報が表す形状により隠される部分を除いた形状を表すよう更新すると共に、前記新たな画像要素のデータを前記第２の記憶手段に記憶させ、前記印刷画像データ生成手段は、回路構成を動的に再構成可能可能な動的再構成可能回路と、入力された画像要素のデータの色情報が前記第１の色形式である場合には、前記動的再構成可能回路の回路構成を、前記第１色形式の色情報を含む画像要素のデータを処理するための第１回路構成とし、入力された画像要素のデータの色情報が前記第２の色形式である場合には、前記第２色形式の色情報を含む画像要素のデータを処理するための第２回路構成とするよう制御する回路構成制御手段と、を有することを特徴とする請求項１０に記載の印刷データ処理システムである。
【発明の効果】
【００１９】
請求項１、７、８、９、１０に係る発明によれば、本発明に係る装置の後段の印刷画像データ生成手段において他の画像要素で隠される部分の描画処理を省略できるようにするための処理を、１つの画像要素ごとに後続の画像要素により隠される部分を特定してその部分以外の範囲を描画する方式よりも、高速に実行できる。
【００２０】
請求項２に係る発明によれば、完全に隠されてしまう画像要素については、後段の印刷画像データ生成手段はその画像要素のデータを認識する処理すらしなくて済む。
【００２１】
請求項３、４、１１、１２に係る発明によれば、効率化処理手段は、第１色形式の画像要素群と、第２色形式の画像要素群とをそれぞれまとめて出力することができ、例えば後段の印刷画像データ生成手段が動的再構成可能回路により構成される場合に、その回路の回路構成の切り替えの回数を少なくすることができる。
【００２２】
請求項５に係る発明によれば、複数回使用される可能性が高いキャッシュ対象の画像要素について効率化処理を行うことで、基本的に１回のみしか使用されない論理ページのみについて効率化処理を行うよりも、効率化処理のメリットを高めることができる。
【００２３】
請求項６に係る発明によれば、効率化処理のためのコストが効率化処理のメリットよりも大きい場合などに効率化処理を行わないようにすることができる。
【図面の簡単な説明】
【００２４】
【図１】画像処理システムの構成の例を示すブロック図である。
【図２】印刷制御システムの内部構成の例を示すブロック図である。
【図３】中間データにおける画像オブジェクトの表現形式の一例を示す図である。
【図４】中間データ最適化部の内部構成の一例を示す図である。
【図５】中間データ最適化部の処理手順の一例を示す図である。
【図６】図５の手順における中間データ最適化部のスプールの記憶内容の変遷の具体例を示す図である。
【図７】中間データ最適化部の処理手順の別の一例を示す図である。
【図８】図７の手順による最適化処理の具体例を示す図である。
【図９】中間データ最適化部の内部構成の別の一例を示す図である。
【図１０】中間データ最適化部の処理手順の別の一例を示す図である。
【図１１】図１１の手順による最適化処理の具体例を示す図である。
【図１２】印刷制御システムの内部構成の別の例を示すブロック図である。
【図１３】中間データ最適化部の処理手順の別の一例を示す図である。
【図１４】中間データ最適化部の処理手順の別の一例を示す図である。
【発明を実施するための形態】
【００２５】
図１は、印刷画像処理システムの構成の一例を示すブロック図である。図１の例のシステムは、端末装置１０、印刷制御システム２０、および印刷装置５０を備える。印刷制御システム２０は、フロントエンド装置３０およびバックエンド装置４０を有している。端末装置１０は、通信手段６０を介してフロントエンド装置３０に接続されており、ユーザの指示に従い、文書の印刷命令を含む印刷ジョブをフロントエンド装置３０に対して送信する。フロントエンド装置３０は、通信手段６２を介してバックエンド装置４０に接続され、バックエンド装置４０は、通信手段６４を介して印刷装置５０に接続される。
【００２６】
通信手段６０，６２，６４は、例えば、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等のデータ通信ネットワークであってよい。通信手段６０，６２，６４は、互いに共通の通信手段であってもよいし、それぞれ異なる通信手段であってもよい。例えば、端末装置１０とフロントエンド装置３０との間の通信手段６０としてＬＡＮを用い、フロントエンド装置３０とバックエンド装置４０との間の通信手段６２およびバックエンド装置４０と印刷装置５０との間の通信手段６４として、それぞれ、ＬＡＮと異なる専用の通信手段を用いてもよい。
【００２７】
図１の例のシステムでは、端末装置１０から送信された印刷ジョブをフロントエンド装置３０において処理し、この処理結果のデータがバックエンド装置４０に渡され、バックエンド装置４０において生成された描画データ（ラスターデータとも言う）に従って印刷装置５０による印刷が行われる。
【００２８】
図１の例の端末装置１０、フロントエンド装置３０、およびバックエンド装置４０は、例えば汎用のコンピュータによって実現され得る。コンピュータは、ハードウエアとして、ＣＰＵ（中央演算装置）、メモリ（一次記憶）、各種Ｉ／Ｏ（入出力）インタフェース、通信インタフェースなどがバスを介して接続された回路構成を有する。コンピュータは、通信インタフェースを介して、他の装置との間でデータの授受を行う。また、バスに対し、例えばＩ／Ｏインタフェース経由で、キーボードやマウスなどの入力装置、および、ＣＲＴ（Cathode Ray Tube）や液晶ディスプレイなどの表示装置が接続される。また、バスには、Ｉ／Ｏインタフェースを介して、ＨＤＤ（ハードディスクドライブ）やＳＳＤ（ソリッドステートドライブ）等の固定二次記憶装置、及び、ＤＶＤ、フラッシュメモリなどの各種規格の可搬型の不揮発性記録媒体を読み取るためのディスクドライブが接続される。このようなドライブは、メモリに対する外部記憶装置として機能する。後述の各実施形態の処理内容が記述されたプログラムがＣＤやＤＶＤなどの記録媒体を経由して、またはネットワーク経由で、ＨＤＤなどの固定記憶装置に保存され、コンピュータにインストールされる。固定記憶装置に記憶されたプログラムがメモリに読み出されＣＰＵにより実行されることにより、後述の各実施形態の処理が実現される。
【００２９】
なお、後述の各実施形態の例において、バックエンド装置４０の機能の一部は、プログラムの実行によるソフトウエア処理ではなく、ハードウエア処理により実現してよい。ハードウエア処理は、例えば、動的再構成可能プロセッサ（Ｄｙｎａｍｉｃ  Ｒｅｃｏｎｆｉｇｕｒａｂｌｅ  Ｐｒｏｃｅｓｓｏｒ，ＤＲＰ）と呼ばれる、処理の実行の途中で動的に回路を再構成できるプロセッサを用いて行ってもよい。あるいは、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）等の回路を用いてハードウエア処理を行ってもよい。例えば、バックエンド装置４０の機能の一部を実行する、ＤＲＰやＡＳＩＣ等のハードウエア要素を予め構成しておき、このようなハードウエア要素を汎用コンピュータのバスに対して接続することで、バックエンド装置４０を実現すればよい。
【００３０】
フロントエンド装置３０およびバックエンド装置４０を実現するハードウエアの１つの具体例として、それぞれがサーバとして機能する複数の情報処理装置を１つの筐体内に搭載したブレードサーバを用いることが考えられる。ブレードサーバは、ＣＰＵやメモリを備える汎用のコンピュータを１枚の基板（ブレード）に実装し、複数のブレードを筐体内に搭載したサーバ装置である。例えば、ブレードサーバに搭載された１つのブレードをフロントエンド装置３０として機能させ、他の１つのブレードをバックエンド装置４０として機能させてもよい。あるいは、例えば、フロントエンド装置３０およびバックエンド装置４０のそれぞれを、ブレードサーバに搭載された複数のブレードにより実現してもよい。
【００３１】
もちろんこれは一例に過ぎず、フロントエンド装置３０とバックエンド装置４０を、それぞれ個別の筐体に搭載された個別のコンピュータ装置上に構築してもよい。また、フロントエンド装置３０とバックエンド装置４０とを、同一のコンピュータ装置上に構築してもよい（すなわち、それら各装置の処理を行うプログラムを同一のコンピュータ上で実行）。
【００３２】
印刷装置５０は、紙等の媒体に印刷を行う装置であり、例えば、連続紙プリンタであってよいし、カット紙プリンタであってもよい。なお、印刷装置５０の印刷方式は特に限定されない。電子写真方式でもよいし、インクジェット方式でもよい。またその他の方式でもよい。
【００３３】
図２に、印刷制御システム２０が備えるフロントエンド装置３０およびバックエンド装置４０の機能構成の例を示す。フロントエンド装置３０は、印刷ジョブ受信部３２、解釈部３４及び中間データ最適化部３６を備える。バックエンド装置４０は、中間データバッファ４２、描画部４４および出力バッファ４６を備える。
【００３４】
フロントエンド装置３０の印刷ジョブ受信部３２は、端末装置１０から印刷ジョブを受信する。本実施形態の例において、印刷ジョブは、文書を印刷する旨の命令と、印刷対象の文書をページ記述言語で記述したデータと、を含む。ページ記述言語（ＰＤＬと略す：ＰＤＬはPage Description Language の略）は、ディスプレイ表示処理、印刷処理等を情報処理機器に実行させるためのコンピュータプログラミング言語である。ページ記述言語の例としては、ＰｏｓｔＳｃｒｉｐｔ（登録商標）やＰＤＦ（Portable Document Format）等がある。ページ記述言語で記述されたデータは、印刷対象の文書を構成する文字や図形、イメージ（ビットマップ画像）などのオブジェクトの位置情報、書式情報および色情報などを含む。以下の説明では、印刷対象の文書をページ記述言語で記述したデータを「ＰＤＬデータ」と呼ぶ。印刷ジョブ受信部３２は、受信した印刷ジョブに含まれるＰＤＬデータを解釈部３４に渡す。
【００３５】
解釈部３４は、印刷ジョブ受信部３２から取得したＰＤＬデータを解釈し、その解釈結果に応じて、描画データの生成の手順を表す命令を含む中間データを生成して出力する。描画データは、印刷対象の画像を印刷装置５０が取り扱い可能な形式で表現した印刷画像データであり、例えばラスター形式のデータがその一例である。中間データは、ＰＤＬデータと描画データの中間の粒度のデータである。中間データ形式は、例えば、ＰＤＬで記述された画像オブジェクトを更に単純な形状の微小要素に細分化して表現したものである。中間データ形式としては、例えばディスプレイリスト形式が知られている。
【００３６】
また、中間データの別の例として、図３に模式的に示すものがある。図３の例では、中間データ形式でのオブジェクト（ＰＤＬデータ上の画像オブジェクトを細分化して得た微小要素）は、バウンディングボックス指定、カラー指定、及び形状指定の３つのデータ項目の組で表現される
【００３７】
「バウンディングボックス指定」は、当該オブジェクトのバウンディングボックス、すなわち当該オブジェクトを内包する矩形（各辺がページの辺に平行な長方形）を規定する情報であり、例えばその長方形の左上と右下の頂点の座標を含む。
【００３８】
「カラー指定」は、そのオブジェクトの各画素のカラー（色）を規定する情報であり、カラー形式とカラーデータの情報を含む。「カラー形式」は、オブジェクトの画素の色の定め方を規定する情報であり、例えば、単色（全画素が同一色）、グラデーション（色が画素の配列方向に沿って連続的に変化）、ラスター（画素毎に個別に色を指定：ビットマップ）等の形式がある。「カラーデータ」は、カラー形式に応じたデータ形式で各画素のカラーを表すデータである。例えば単色の場合、カラーデータは、１つの色をＣＭＹＫ（シアン、マゼンタ、イエロー、ブラック）等のあらかじめ定められた色空間での座標で表現した色値である。グラデーションの場合、カラーデータは、色の初期値と変化率の情報を含む。ラスターの場合、カラーデータは、画素毎の色値を含んだデータである。
【００３９】
「形状指定」は、そのオブジェクトの形状を規定する情報であり、形状形式と形状データの情報を含む。「形状形式」は、オブジェクトの形状を表す形式であり、例えば、矩形形式、ラン形式、ラスターマスク形式などがある。「形状データ」は、オブジェクトの形式を当該オブジェクトの形状形式に従って表現したデータである。
【００４０】
個々の形状形式について説明すると、「矩形形式」は、オブジェクトの形状をページの各辺に平行な辺で囲まれる矩形（長方形）で表現する形式である。この形式の形状データとしては、矩形の左上頂点と右下頂点の座標の組合せを用いればよい。
【００４１】
「ラン形式」は、印刷の主走査線（一般には印刷時の用紙の進行方向に垂直な方向）に沿ったラン（Run：同一画素値の画素の連続）の集まりで形状を表現する方式である。主走査線上には１以上のランが含まれ、それらランの集合がオブジェクトである。言い換えれば、個々のランの部分の画素に対し、カラー指定に従って決まる色（画素値）が描画される。逆に言えば、主走査線上の画素のうち、ランに属さない画素はオブジェクトの外部の画素であり、そのオブジェクトのカラーは描画されない。すなわち、ラン形式の形状データは、一種のマスクとして機能する。ラン形式の形状データは、主走査線のｙ座標（副走査方向についての座標）と、その主走査線上にあるランの左端及び右端のｘ座標のペア（ｘl，ｘr）を例えば左側のランから順に並べたものでよい。
【００４２】
また、ラン形式では、副走査方向に隣接する複数の主走査線についての形状データを１つのパッケージにまとめてもよい。このパッケージのことを「ランマスク」と呼ぶ。ランマスクは、そのランマスクの外周形状である矩形（各辺がページの縦横に平行）の例えば左上頂点と右下頂点の座標のペアと、その各マスクに含まれる各主走査線のランデータ（ラン形式の形状データ）を副走査方向に沿って並べたデータと、を含む。
【００４３】
「ラスターマスク形式」は、矩形の二値ビットマップで形状を表す形式である。すなわち、矩形（各辺がページの縦横に平行）のラスターマスク内の画素のうち値が「１」である画素の集合が、当該オブジェクトの形状を表す。描画処理では、ラスターマスク内の画素のうち値が「１」である画素に対して、カラー指定に基づいたカラー値（画素値）が書き込まれる。ラスターマスク内の画素のうち値が「０」である画素については、カラー地は書き込まれない（すなわち描画処理ではその画素については何も行われない）。
【００４４】
ここで、中間データの解像度及び色空間を、印刷装置５０と同じ解像度及び色空間としてもよい。こうすれば、バックエンド装置４０の描画部４４の処理において解像度変換や色空間変換が不要になる。また、中間データは、色版（例えばＣ，Ｍ，Ｙ，Ｋの各版）ごとに分版されていてもよいし、複数の色版のデータを１つにまとめたコンポジット形式であってもよい。
【００４５】
なお、図３に示した中間データでのオブジェクトの表現形式は、あくまで一例に過ぎない。
【００４６】
解釈部３４は、ＰＤＬデータを解釈することで、そのＰＤＬデータが表す各オブジェクトを、中間データ形式において用いられる単位形状（例えば矩形形式、ラン形式、ラスター形式の形状）に分解し、単位形状ごとにその形状やカラーを表すデータ（これが中間データ形式でのオブジェクトを表す）を生成する。
【００４７】
中間データ最適化部３６は、解釈部３４が生成した中間データの最適化を実行する。ここでいう「最適化」とは、バックエンド装置４０の描画部４４での描画処理の処理負荷を低減するよう中間データに変更を加える処理のことである。すなわち、描画部４４にとって効率的な形となるよう、中間データのデータ内容を効率化する処理である。特に中間データが表すオブジェクトのうち自分の後のオブジェクトにより完全に隠されるオブジェクトを削除したり、オブジェクトの形状を自分の後のオブジェクトにより隠される部分を除いた形状に変更したりすることで、描画部４４が描画する画素数を減らす処理のことである。ここでは、「最適化」と表現したが、必ずしも描画部４４が描画する画素数を理論上の最少にまで削減するとは限らない。「最適化」処理をしない場合より、描画部４４が描画する画素数が減ればよいものとする。中間データ最適化部３６については、後で詳しく説明する。
【００４８】
中間データ最適化部３６により最適化された中間データは、バックエンド装置４０に対して出力される。出力された中間データは、バックエンド装置４０の中間データバッファ４２に書き込まれる。描画部４４は、中間データバッファ４２に記憶された中間データを読み出し、読み出した中間データに従って描画データ（ラスターデータ）を生成する。例えば、オブジェクトの形状データが示す範囲内の各画素の値を、そのオブジェクトのカラーデータから求め、例えばページメモリ上の当該画素に対応するアドレスにその画素値を書き込むことで、オブジェクトの描画（レンダリング）を行う。１ページに含まれる全オブジェクトを描画することで、そのページのラスター画像（描画データ）が形成される。生成された各ページの描画データは出力バッファ４６に格納され、印刷装置５０から順次読み出される。印刷装置５０は、出力バッファ４６から読み出した各ページの描画データを、用紙に対して印刷する。
【００４９】
次に、図４を参照して、中間データ最適化部３６の内部構成の一例を説明する。図示の例では中間データ最適化部３６は、中間データ取得部３６２、最適化処理部３６４、及びスプール３６６を有する。
【００５０】
中間データ取得部３６２は、解釈部３４から入力されるオブジェクトごとの中間データを取得する。例えば、オブジェクトごとに、図３に例示したバウンディングボックス指定、カラー指定、及び形状指定の組を取得する。解釈部３４は、オブジェクトの描画順（すなわち描画部４４で描画される順序）に従って各オブジェクトの中間データを出力し、中間データ取得部３６２はそのように順に出力される中間データを取得する。
【００５１】
スプール３６６は、各オブジェクトの中間データを記憶する記憶領域である。スプール３６６は、フロントエンド装置３０の例えばメインメモリ上に確保される。
【００５２】
最適化処理部３６４は、中間データ取得部３６２が新たなオブジェクトを取得するごとに、そのオブジェクトの中間データを用いて、スプール３６６内に既にスプール（保持）されているオブジェクトのうち、その新たなオブジェクトにより完全に又は部分的に隠されるオブジェクトの中間データに対して更新を加える。この更新処理のことを、以下では「eclipse」処理と呼ぶ。eclipseとは、日食、月食のように１つの物により別の物を完全に又は部分的に隠す（遮蔽する）ことを意味する。ここでは、新たに取得したオブジェクトにより、スプール３６６内にあるそのオブジェクトよりも描画順が前のオブジェクトを遮蔽する。具体的には、最適化処理部３６４が実行するeclipse処理では、（１）スプール３６６内のオブジェクトのうち、その新たなオブジェクトで完全に隠されるオブジェクト（すなわち新たなオブジェクトの内部に完全に包含されるオブジェクト）はスプールから削除する。（２）また、スプール３６６内のオブジェクトのうち、その新たなオブジェクトと部分的に重なるオブジェクトについては、そのオブジェクトの形状を、その重なる部分を除いた形状へと変更する。（３）スプール３６６内のオブジェクトのうちその新たなオブジェクトと重なる部分が全くないオブジェクトについては、何も変更しない。
【００５３】
eclipse処理では、新たなオブジェクトで隠されるオブジェクトの形状のみを変更すればよく、そのオブジェクトのカラーのデータについては基本的に変更しなくてよい。
【００５４】
eclipse処理のうち、上述の（２）、すなわち、スプール内のオブジェクトの形状を、新たなオブジェクトにより隠される「部分」を除いた形状に変更する処理では、例えば中間データの形式が複雑なオブジェクト形状を表現できるものであれば、スプール内のオブジェクトの形状データを、単に変更後の形状を表すものに変更すればよい。
【００５５】
また、中間データ形式で表現できるオブジェクトの形状が限られている場合、eclipse処理では、オブジェクトを、中間データ形式で表現可能な形状の複数のオブジェクトに分割することで、変形後の形状を表現してもよい。
【００５６】
また、上述の例のように、オブジェクトの形状の表現形式が、矩形形式、ラン形式、及びラスターマスク形式に限られている場合、eclipse処理では、新たなオブジェクトにより部分的に隠されるスプール内のオブジェクトの形状をすべてラン形式で表現すればよい。
【００５７】
ラン形式のオブジェクト同士であれば、eclipse処理では、スプール内のオブジェクト（オブジェクトの重なり順で下側）内のある第１のラン（ｘl1，ｘr1）が、このランと同じｙ座標値を有する新たなオブジェクト（重なり順で上側）内の第２のラン（ｘl2，ｘr2）と重なる場合、スプール内のオブジェクトの第１のラン（ｘl1，ｘr1）を、（ｘl1，ｘl2）（第１のランの右側が隠される場合）、又は（ｘr2，ｘr1）（第１のランの左側が隠される場合）に変更すればよい。また、第１のランが第２のランの内部に完全に含まれる場合は、スプール内のオブジェクトの形状データから第１のランのデータを削除すればよい。
【００５８】
上述した矩形形式及びラスターマスク形式の定義からわかるように、これら両形式の形状はいずれもラン形式（あるいはランマスク形式）でも表現可能なので、eclipse処理によりスプール内のオブジェクトの形状を変更することになる場合には、そのオブジェクトの形状データをラン形式に変換してから変形後の形状を計算すればよい。
【００５９】
eclipse処理は、オブジェクトの形状に関する処理なので、オブジェクトのカラー（色）データは基本的に変更不要である。特に、オブジェクト内の個々の画素の色を計算する処理は不要である。例えば、ラスター形式のカラーデータの場合、印刷装置５０とカラーデータの間で一般に位置座標系が異なるので、印刷装置５０での各画素に対応する色をカラーデータ中から求める場合、平行移動、回転、拡大縮小などの幾何学的な座標変換が必要となる。描画部４４ではこのような処理により各画素の色を求めるのであるが、中間データ最適化部３６のeclipse処理では各画素の色を求める必要はない。
【００６０】
図５に、中間データ最適化部３６が実行する処理の手順の一例を示す。この手順では、中間データ取得部３６２が、解釈部３４から新たに出力されたオブジェクトを取得する（Ｓ１０）。このオブジェクトを「現オブジェクト」と呼ぶ。最適化処理部３６４は、スプール３６６内に記憶されているすべてのオブジェクトに対して、eclipse処理を実行する（Ｓ１２）。
【００６１】
eclipse処理の後、最適化処理部３６４は、現オブジェクトを、スプール３６６に入れる（Ｓ１４）。そして、処理すべきオブジェクトが残っているかどうかを判定し（Ｓ１６）、まだ残っていれば（判定結果がＹ）、Ｓ１０に戻って次の中間データを取得し、Ｓ１０〜Ｓ１４の処理を繰り返す。Ｓ１６の判定は、例えば、印刷装置５０が印刷を行う画像の単位範囲（ページ、バンド、タイルなど）ごとに行えばよい。ここで、バンドは、ページを主走査方向の線で副走査方向（印刷時に用紙が搬送される方向。印刷の主走査方向に直交）に沿って複数に分割してできる帯状領域であり、タイルはページを主走査方向及び副走査方向の両方について分割してできる矩形領域である。Ｓ１６では、例えば、解釈部３４が出力する単位範囲（ページ等）の末尾を示すデータが到来したか否かを判定し、到来した場合にその単位範囲のすべてのオブジェクトの処理が終了したと判定し、判定結果をＮとする。この場合、図５の処理手順は、単位範囲ごとに繰り返されることになる。
【００６２】
Ｓ１６の判定結果がＮになると、スプール３６６に蓄積されているすべてのオブジェクトを出力する（Ｓ１８）。ここで、スプール３６６のすべてのオブジェクトは、描画順が後のオブジェクトにより隠される部分を除いた形状に変形されているので、オブジェクト同士が重なる部分は存在しない。したがって、スプール３６６内のオブジェクトはどのような順序で出力してもよい。
【００６３】
次に、図５の手順の処理の具体例を、図６を参照して説明する。図６は、同一ページ１００内の別々の４つのオブジェクト１０２（中間データ）が番号１〜４の順に、解釈部３４から中間データ最適化部３６に入力される場合の、スプール３６６の記憶内容の変遷を示している。まず、１番目のオブジェクトが入力された場合、スプール３６６にはその１番目のオブジェクトが記憶される。次に、その１番目のオブジェクトと部分的に重なる２番目のオブジェクトが入力されると、１番目のオブジェクトの形状が２番目のオブジェクトと重なる部分を除いたＬ字型の形状に変更される。また、２番目のオブジェクトがスプール３６６内に記憶される。次に、その２番目のオブジェクトと部分的に重なり、１番目のオブジェクトとは重ならない３番目のオブジェクトが入力されると、２番目のオブジェクトの形状が３番目のオブジェクトと重なる部分を除いた形状に変更される。ここでは、１番目のオブジェクトは変形されない。また、３番目のオブジェクトがスプール３６６内に記憶される。そして、その３番目のオブジェクトを完全に包含し、２番目のオブジェクトと部分的に重なり、１番目のオブジェクトとは重ならない４番目のオブジェクトが入力されると、２番目のオブジェクトの形状が４番目のオブジェクトと重なる部分を除いた形状に変更されると共に、完全に隠される３番目のオブジェクトは削除される。ここでは、３番目のオブジェクトは、カラーのデータやその他の属性データも含めた当該オブジェクトの全部のデータが削除されることで、そのオブジェクトそのものが存在しなくなる。なお、１番目のオブジェクトは変形されない。そして、４番目のオブジェクトがスプール３６６内に記憶される。この４番目のオブジェクトが、そのページ上での描画順が最後のオブジェクトである場合、４番目のオブジェクトをスプール３６６内に記憶した時点でスプール３６６の内部にあるオブジェクト、すなわち変形後の１番目及び２番目のオブジェクトと、その４番目のオブジェクトとが、バックエンド装置４０へと出力されることになる。
【００６４】
オブジェクトごとにその後続のすべてのオブジェクトと重なる部分を除き、描画する方式では、個々のオブジェクトを描画するごとに、その後続のすべてのオブジェクトとの重なりを調べる必要がある。このため、同じオブジェクトが、先行するオブジェクトとの比較のため何度も繰り返し読み込まれることになる。これに対し、本実施形態の方式では、スプール３６６を利用することで、個々のオブジェクトをそれぞれ１回読み込むだけでよい。
【００６５】
なお、図５の手順の実行の中で、スプール３６６が一杯になり、これ以上新たなオブジェクトを記憶できなくなる事態も生じ得る。１つの例では、この事態が生じた時点で、スプール３６６内にあるすべてのオブジェクトをバックエンド装置４０へと出力し、スプール３６６を空にする。このように、Ｓ１６で次のオブジェクトがないと判定される前に、スプール３６６内のオブジェクト群をすべて出力することを、スプール３６６の「フラッシュ」と呼ぶことにする。ページ等の単位範囲の処理の途中でスプール３６６内のオブジェクト群をフラッシュしたとしても、その前後のオブジェクト群との間に不整合は生じない。そして、その後に入力される新たなオブジェクトから、図５の手順を繰り返す。
【００６６】
以上に説明した例では、中間データ最適化部３６は、新たなオブジェクト（現オブジェクト）が入力されると必ずスプール３６６内のオブジェクトに対してeclipse処理を行ったが，これは一例に過ぎない。例えば、オブジェクト同士が重なった部分の色の決め方の中には、上のオブジェクトの色が採用され下のオブジェクトの色が現れない方式のほかに、上のオブジェクトと下のオブジェクトの両方の色が混合するオーバープリント方式がある。本実施形態（以下に述べる他の例も含む）の装置／システムでは、現オブジェクトに対してオーバープリントの指定がある場合は、スプール３６６内のオブジェクトに対する現オブジェクトによるeclipse処理をしないようにする。 また、現オブジェクトに対してオーバープリント指定があることを検出した場合、その時点でスプール３６６の「フラッシュ」を行うようにしてもよい。
【００６７】
次に図７を参照して、中間データ最適化部３６の別の処理手順を説明する。図７の手順において、図５の手順と同様の処理を行うステップについては同一符号を付した。
【００６８】
この手順では、解釈部３４から現オブジェクトを取得すると（Ｓ１０）、最適化処理部３６４は、その現オブジェクトのカラー形式を判定する（Ｓ１１）。この例では、カラー形式が第１種、第２種のいずれに該当するかを判定する。１つの例では、単色（すなわちオブジェクトの全画素が同一色）形式を第１種とし、ラスター形式及びグラデーション形式を第２種とする。現オブジェクトのカラー形式が第１種であれば、現オブジェクトをスプール３６６に入れる（Ｓ１４ａ）。また、この例では、スプール３６６は、各オブジェクトの中間データを、描画順（スプール３６６の視点から見れば、入ってくる順）と関連づけて記憶する。例えば、入ってくる順に先入れ先出し方式で記憶するものであってもよい。その後、Ｓ１６に進む。
【００６９】
一方、Ｓ１１で現オブジェクトのカラー形式が第２種であると判定した場合、最適化処理部３６４は、スプール３６６内のオブジェクトを、現オブジェクトによりeclipse処理する（Ｓ１２）。そして、現オブジェクトは、スプール３６６に入れずにバックエンド装置４０へと出力し（Ｓ１３）、Ｓ１６に進む。
【００７０】
Ｓ１６で残りのオブジェクトがあれば、Ｓ１０に戻り次のオブジェクトについてＳ１０〜Ｓ１４ａの処理を繰り返す。そして、Ｓ１６で残りのオブジェクトがないと判定した場合、スプール３６６内のオブジェクト群を、描画順に後段（バックエンド装置４０）へと出力する（Ｓ１８ａ）。図７の手順では、現オブジェクトのカラー形式が第１種である場合、スプール３６６内のオブジェクトに対して現オブジェクトによるeclipse処理を行わないので、スプール３６６内のオブジェクト同士が重なる場合があることを考慮して、Ｓ１８ａでは描画順にオブジェクトを出力するのである。したがって、逆に、現オブジェクトのカラー形式が第１種である場合にも、スプール３６６内のオブジェクト群を現オブジェクトでeclipse処理することとした場合には、スプール３６６のオブジェクトを後段へ出力する順序は描画順通りでなくてよい。
【００７１】
この手順の処理の具体例を、図８を参照して更に詳しく説明する。図８の左側に示される４つのオブジェクト１０２が、上から順に中間データ最適化部３６に入力されてくるとする。ここで、１番目と４番目のオブジェクトのカラー形式は第２種であり、２番目と３番目のオブジェクトのカラー形式は第１種であるとする。
【００７２】
この場合、図７の手順では、まず１番目のオブジェクトは第２種カラーなのでＳ１１の判定結果が「第２種」となる。この時点では、スプール３６６内にはオブジェクトが存在しないので、中間データ最適化部３６はeclipse処理を行わず、そのオブジェクトをバックエンド装置４０へと出力する。２番目のオブジェクトは、第１種なので、スプール３６６へと蓄積される。３番目のオブジェクトも第１種なので、同様にスプール３６６に入れられる。
【００７３】
４番目のオブジェクトは第２種なので、中間データ最適化部３６は、このオブジェクトにより、スプール３６６内のオブジェクトに対してeclipse処理を行う。この例では、２番目のオブジェクトは４番目のオブジェクトと部分的に重なるので、２番目のオブジェクトはその重なりの部分を除いた形状へと変形される。また、３番目のオブジェクトは４番目のオブジェクトにより完全に覆われるので、スプール３６６から削除される。最終的には、スプール３６６内には、変形後の２番目のオブジェクトのみが残る。eclipse処理の後、４番目のオブジェクトは後段へと出力される。そして、その後、３番目の出力として、スプール３６６内にある変形後の（入力順が）２番目のオブジェクトが出力されることとなる。
【００７４】
以上をまとめると、中間データ最適化部３６からは、まず１番目のオブジェクトが出力され、次に４番目のオブジェクトが出力され、最後にeclipse処理により変形された後の２番目のオブジェクトが出力されることとなる。
【００７５】
図７及び図８の例は、特定のカラー形式のオブジェクトのみをスプールする方式なので、すべてのオブジェクトをスプール対象とする図５の方式よりも、スプール３６６の容量が小さくて済む。言い換えれば、スプール３６６の容量が同じであれば、図７の方式の方が図５の方式よりも、スプール３６６が一杯になってフラッシュするまでに、より多くのオブジェクトを処理することができる。ここで、例えばスプールの対象とする第１種のカラー形式として、データ量が相対的に小さい単色形式を採用すれば、スプール３６６の容量が（第１種としてラスター形式やグラデーション形式を採用する場合よりも）少なくて済む。
【００７６】
また、図７の方式では、図８に示したように、中間データ最適化部３６からは、まず第１種のカラー形式のオブジェクト群が描画順に出力された後、第２種のカラー形式のオブジェクト群がスプール３６６から出力されることになる。すなわち、中間データ最適化部３６から出力されるオブジェクトのカラー形式の切り替わりは１回だけであり、第１種から第２種、第２種から第１種などと何度も交互に切り替わることはない。このようにカラー形式の切り替わりの回数が抑えられることは、バックエンド装置４０の描画部４４にＤＲＰ（動的再構成可能プロセッサ）を利用する際に特に有益である。以下、この点について説明する。
【００７７】
描画部４４で行う画像処理の中には、カラー形式に応じて異なる処理内容となるものがある。例えば、単色形式とグラデーション形式とラスター形式では、前述の通り各画素の色値の求め方が異なる。また、ラスター形式のカラーデータは圧縮されている場合があるため、カラーデータの伸張処理が必要になる場合があるが、単色形式やグラデーション形式のカラーデータは量が少ないため圧縮されておらず、従って伸張処理は不要である。また、ラスター形式と単色形式（あるいはグラデーション形式）では、ラスタライズ後の画像データに行う後処理の種類が異なる場合もある。描画部４４をＤＲＰで構成した場合、これら異なる複数の処理内容のための回路を、ＤＲＰ上にすべて一度に構成できればそのようにすればよいが、一般には、ＤＲＰが持つ回路要素の数ではそのようなことは難しい。そこで、カラー形式の切り替わりに応じて、ＤＲＰ内に構成するラスタライズや画像処理のための回路構成を切り替える必要がある。ＤＲＰは、回路構成の切り替え自体は高速に（例えば１クロックで）実行できるものの、切り替え前の回路構成内のパイプライン内にある処理途中のデータがすべて処理し終わるまで回路構成の切り替えはできないので、全体的には回路構成の切り替えによる時間的なペナルティは小さくない。このため、回路構成の切り替え回数が少なければ少ないほど、処理効率がよくなる。このようなことから、図７の方式は、描画部４４（ＤＲＰ）の処理効率の改善に寄与する。
【００７８】
このように描画部４４にＤＲＰを用いるシステム構成の場合、描画部４４は、入力される各オブジェクトの中間データからカラー形式の情報を認識し、認識したカラー形式に応じて、ＤＲＰ内の回路構成を切り替える。より詳しくは、描画部４４は、新たに受け取ったオブジェクトのカラー形式が、現在ＤＲＰ内に構成している処理回路に対応したカラー形式と異なっている場合、現在の処理回路のパイプライン内にあるデータの処理がすべて終わった後、ＤＲＰの回路構成をその新たなオブジェクトのカラー形式に対応した物へと切り替える。
【００７９】
以上の図７の例の説明では、第１種のカラー形式（スプール対象）が単色形式であり、第２種のカラー形式（スプールしない）がグラデーション形式及びラスター形式であるとしたが、これは一例に過ぎない。この代わりに、例えば、単色形式及びグラデーション形式を第１種とし、ラスター形式を第２種としてもよい。また、ラスター形式を第１種とし、単色形式及びグラデーション形式を第２種としてもよい。このほかにも様々な組合せが考えられる。
【００８０】
具体的なカラー形式が３種類以上ある場合、それら３種以上のカラー形式の第１種と第２種への分類の仕方は、各カラー形式のための処理回路をＤＲＰ上で構成する際の回路規模に応じて決定してもよい。例えば、単色形式用とグラデーション形式用の処理回路はＤＲＰ上に同時に構成できるが、単色形式用とラスター形式用の処理回路、及びグラデーション形式用とラスター形式用の処理回路はＤＲＰ上に同時に構成できない場合、単色形式とグラデーション形式を１グループとして、これを第１種又は第２種のいずれかに割り振り、ラスター形式を第１種又は第２種のうちの残りの方に割り振ればよい。
【００８１】
次に、図９〜図１１を参照して、更に別の例を説明する。図９は、この例で用いる中間データ最適化部３６の内部構成を示す。この例では、中間データ最適化部３６に２つのスプール３６６−１及び３６６−２を設ける。第１スプール３６６−１は、第１種のカラー形式のオブジェクトを記憶するためのものであり、第２スプール３６６−２は第２種のカラー形式のオブジェクトを記憶するためのものである。第１種及び第２種の分類は、上述した図７及び図８の例と同様でよい。
【００８２】
図１０は、図９に例示した中間データ最適化部３６の処理手順を示す。図１０の手順のうち、図７の手順のステップと同様のステップには同一符号を付した。
【００８３】
図１０の手順では、Ｓ１１で現オブジェクトのカラー形式が第１種に該当すると判定した場合、最適化処理部３６４は、第２スプール３６６−２内のオブジェクトに対し、現オブジェクトによるeclipse処理を行う（Ｓ２０）。第２スプール３６６−２に保持されているオブジェクトは第２種のカラー形式である。Ｓ２０では、これらオブジェクトのうち現オブジェクトで完全に隠されるものは第２スプール３６６−２から削除され、部分的に隠されるものはその隠される部分を除いた形に変形される。Ｓ２０の後、最適化処理部３６４は、現オブジェクトを第１スプール３６６−１に入れる（Ｓ２２）。第１スプール３６６−１は、入力されたオブジェクトを、入力順（すなわち描画順）と対応づけて記憶する。
【００８４】
また、Ｓ１１でカラー形式が第２種と判定した場合、最適化処理部３６４は、第１スプール３６６−１内のオブジェクト（第１種）に対し、現オブジェクトによるeclipse処理を行う（Ｓ２４）。そして、最適化処理部３６４は、現オブジェクトを第２スプール３６６−２に入れる（Ｓ２６）。第２スプール３６６−２は、入力されたオブジェクトを、入力順と対応づけて記憶する。
【００８５】
Ｓ１０〜Ｓ２６の処理を繰り返し、Ｓ１６で次のオブジェクトがなくなったことがわかると、最適化処理部３６４は、第１スプール３６６−１内にあるオブジェクトを入力順に後段に出力し（Ｓ２８）、その後、第２スプール３６６−２内にあるオブジェクトを入力順に後段に出力する（Ｓ２９）。なお、eclipse処理の結果、第１スプール３６６−１内のオブジェクトと第２スプール３６６−２内のオブジェクトとは互いに重ならない形状となっているので、Ｓ２８とＳ２９とはどちらを先に実行してもよい。
【００８６】
また、図１０の手順では、第１種のオブジェクト同士、第２種のオブジェクト同士の間ではeclipse処理を行わないので、個々のスプール３６６−１及び３６６−２内のオブジェクト同士が重なる場合がある。Ｓ２８及びＳ２９ではこのことを考慮して、各スプール内のオブジェクトをその入力順に出力している。したがって、逆に、同一種別のオブジェクト同士の間でもeclipse処理することとした場合には、Ｓ２８及びＳ２９でのスプールからのオブジェクトの出力順序は入力順通りでなくてよい。
【００８７】
図１０の手順の処理の具体例を、図１１を参照して更に詳しく説明する。図１１の左側に示される４つのオブジェクト１０２が、上から順に中間データ最適化部３６に入力されてくるとする。入力されるオブジェクトの系列は、図８の例と同じであり、１番目と４番目のオブジェクトのカラー形式が第２種、２番目と３番目のオブジェクトのカラー形式が第１種であるとする。
【００８８】
この場合、図１０の手順では、まず第２種である１番目のオブジェクトを取得した時点では、第１スプール３６６−１内にはオブジェクトが存在しないので、最適化処理部３６４はeclipse処理を行わず、そのオブジェクトを第２スプール３６６−２に入れる。次に、第１種である２番目のオブジェクトが取得されると、最適化処理部３６４は、そのオブジェクトで、第２スプール３６６−２内にある１番目のオブジェクトをeclipse処理する。これにより、１番目のオブジェクトがＬ字型に変形される。また、最適化処理部３６４は、その２番目のオブジェクトを第１スプール３６６−１に入れる。
【００８９】
次に取得される３番目のオブジェクトは第１種なので、第２スプール３６６−２内にある１番目のオブジェクトに対してeclipse処理が行われる。ここで、第２スプール３６６−２内にある１番目のオブジェクトは、２番目のオブジェクトと重なる部分が除かれた形状に変形済みであり、３番目のオブジェクトとは重なる部分がない。したがって、このeclipse処理では、１番目のオブジェクトは変形されない。
【００９０】
次に入力される４番目のオブジェクトは第２種なので、最適化処理部３６４は、このオブジェクトにより、第１スプール３６６−１内のオブジェクト（すなわち２番目と３番目）に対してeclipse処理を行う。この例では、２番目のオブジェクトは４番目のオブジェクトと部分的に重なるので、２番目のオブジェクトはその重なりの部分を除いた形状へと変形される。また、３番目のオブジェクトは４番目のオブジェクトにより完全に覆われるので、第１スプール３６６−１から削除される。最終的には、第１スプール３６６−１内には、変形後の２番目のオブジェクトのみが残る。eclipse処理の後、４番目のオブジェクトは第２スプール３６６−２に入れられる。
【００９１】
４番目のオブジェクトが最後のオブジェクトであるとすると、この後、各スプール内のオブジェクトが順に後段へと出力されることとなる。図１１の例では、まず第２スプール３６６−２内のオブジェクト（１番目及び４番目）が出力され、その後、第１スプール３６６−１内のオブジェクト（２番目）が出力されている。
【００９２】
このように、図９〜図１１の例でも、上述の図７及び図８の例と同様、カラー形式が同種別のオブジェクト群が連続してバックエンド装置４０に出力されるので、カラー形式の切り替わりは最小限にとどめられる。また、図７及び図８の例では第２種のオブジェクトはeclipseされずにそのまま後段に出力されるのに対し、図９〜図１１の例では、第２種のオブジェクトもeclipseされるので、描画部４４が描画すべき画素の数が図７及び図８の例よりも少なくなり、その分だけ処理部４４の処理負荷が軽減される。
【００９３】
図７及び図８の例、並びに図９〜図１１の例は、いずれもカラー形式を第１種と第２種の２種に分類した。しかし、それら各々の例の方式は、カラー形式を３種以上に分類する場合にも拡張可能である。
【００９４】
例えばカラー形式を３種に分類する場合、図７及び図８の例では、スプール３６６を２つ設け、３種のカラー形式のうちの２種を別々のスプール３６６に割り当てる。例えば、第１種を第１スプールに、第２種を第２スプールにそれぞれ割り当て、第３種はスプールしないものとする。この場合、カラー形式が第１種のオブジェクトが入力された場合、そのオブジェクトで少なくとも第２スプール内のオブジェクトをeclipseすると共に、そのオブジェクトを第１スプールに入れる。また第２種のオブジェクトが入力された場合、そのオブジェクトで少なくとも第１スプール内のオブジェクトをeclipseすると共に、そのオブジェクトを第２スプールに入れる。そして、第３種のオブジェクトが入力された場合、そのオブジェクトで第１スプール内及び第２スプール内のオブジェクトをeclipseすると共に、そのオブジェクトを後段に出力する。
【００９５】
一般化すれば、カラー形式をｎ種に分類する場合、図７及び図８の方式では、スプールを（ｎ−１）個用意し、スプールに対応づけられた種別のオブジェクトが入力された場合、最適化処理部３６４は、そのオブジェクトにより、その種別以外に対応する（ｎ−２）個のスプール内のオブジェクトをeclipseし、そのオブジェクトをその種別に対応するスプールに入れる。なお、入力されたオブジェクトにより、そのオブジェクトの種別に対応するスプール内のオブジェクトも更にeclipseするようにしてもよい。また、スプールに対応づけられていない種別のオブジェクトが入力された場合には、そのオブジェクトにより（ｎ−１）個のスプールすべての中のオブジェクトをeclipseすると共に、そのオブジェクトを後段へと出力する。
【００９６】
図９〜図１１の例の場合は、ｎ種のカラー形式がある場合、それぞれの種別に対して１個のスプール（合計ｎ個）を用意する。最適化処理部３６４は、オブジェクトが入力されると、そのオブジェクトにより、そのオブジェクトの種別以外に対応する（ｎ−１）個のスプール内のオブジェクトを少なくともeclipseすると共に、そのオブジェクトをその種別に対応するスプールに入れる。
【００９７】
次に、図１２〜図１４を参照して、更に別の例を説明する。図１２に示すシステム構成では、フロントエンド装置３０が論理ページ解釈部３４−ｐとキャッシュ要素解釈部３４−ｃという２種類の解釈部３４を有する。
【００９８】
ここで、キャッシュ要素解釈部３４−ｃは、ＰＤＬデータに含まれるキャッシュ対象要素の解釈（中間データ形式への変換）を専門に行う解釈部である。キャッシュ対象要素とは、１つのＰＤＬデータの中で複数回繰り返し使用される画像要素のことである。例えば、ＰｏｓｔＳｃｒｉｐｔ（登録商標）の場合、フォームやイメージなどといったタイプのオブジェクトがその一例である。キャッシュ対象要素は１以上のオブジェクトから構成される。キャッシュ対象要素であるか否かは、１つの例では、要素の種類で判別すればよい。例えば、ＰＤＬデータからフォームやイメージ等といったキャッシュ対象の要素種別に対応する描画コマンドを見つけた場合、その描画コマンドで描画される１以上のオブジェクトがキャッシュ対象の要素と判別される。また、ＰＤＬデータ中では、キャッシュ対象のオブジェクトに対して、当該オブジェクトをＰＤＬデータ中で一意に識別する識別情報が付与されることも多い。ＰＤＬデータ中に同じオブジェクトＩＤを指定したコマンドがある場合、それらコマンドは同じオブジェクトの描画を指示している。
【００９９】
この例では、一度生成したキャッシュ対象要素の中間データをキャッシュし、再利用する枠組み（図１２のキャッシュ４８）を提供する。これにより、同じキャッシュ対象要素の中間データが何度も生成されるといった非効率を避ける。キャッシュ４８は、キャッシュ対象要素の中間データを一時的に記憶する記憶領域である。
【０１００】
キャッシュ要素解釈部３４−ｃは、ＰＤＬデータを先頭から順に解釈する中で、キャッシュ対象要素以外の要素については中間データの生成を行わず、キャッシュ対象要素についてのみ、その要素の記述を中間データに変換する。そして、変換結果の中間データを、そのキャッシュ対象要素を一意的に識別するためのキャッシュＩＤと対応づけて、バックエンド装置４０のキャッシュ４８に記憶させる。
【０１０１】
ここで、キャッシュＩＤとしては、１つの例では、ＰＤＬデータ中に含まれる当該キャッシュ対象要素のオブジェクトＩＤを用いる。
【０１０２】
また、別の例として、キャッシュ対象要素の最終的な描画結果の画像の状態を規定する各種のパラメータに基づきキャッシュＩＤを生成してもよい。キャッシュＩＤを規定する描画等のパラメータとしては、描画コマンド（あるいはオブジェクトＩＤ）、座標変換行列（座標の回転角や拡大縮小率を表す行列）、描画属性情報（例えば線幅、ラインキャップ、ラインジョイン、マイタ―リミット、線の形状、ストローク調整、描画方式、論理演算モード、パターン情報）、クリップ情報、カラー情報等がある。例えば、それらパラメータとを結合したものをバイナリデータとして表現し、ＭＤ５ハッシュ関数（rfc1321で定義）等のハッシュ関数を用いて、そのバイナリデータからキャッシュＩＤを生成する。なお、キャッシュＩＤの材料として用いた上述のパラメータ群を、「キーデータ（Key Data）」と呼ぶ。なお、厳密には、ハッシュ関数には衝突があるため、上述の方式では異なるキャッシュデータのキャッシュＩＤ（ハッシュ値）が同じ値となる可能性がある。ハッシュの衝突を避けるために、キーデータそのものをキャッシュＩＤとして用いてもよい。ただし、キーデータはかなり長いデータとなるため、利用可能なキャッシュデータが有るか無いかを調べる際、キーデータ同士の照合にある程度の時間を要する。キャッシュ管理部３８内のすべてのキャッシュエントリに対してキーデータの照合を行うにはかなりの時間がかかってしまう。そこで、以下の例では、キーデータと、そのキーデータのハッシュ値と、の組合せをキャッシュＩＤとして用いる。この例では、利用可能なキャッシュデータの有無を調べる際、まずハッシュ値で絞り込みを行うことで、キーデータの照合を行うキャッシュエントリの数を少なくする。
【０１０３】
キャッシュ管理部３８は、キャッシュ４８に保持されるキャッシュデータ（すなわちキャッシュ対象要素の中間データ）の管理情報を保持する。キャッシュ管理部３８には、キャッシュデータごとに、キャッシュＩＤと、そのキャッシュデータのキャッシュ４８の記憶空間内での記憶場所を示す情報（例えば先頭アドレスと、そのデータのサイズとの組合せ）とが記憶される。キャッシュ要素解釈部３４−ｃは、ＰＤＬデータ中のキャッシュ対象要素を処理する際、その要素のキャッシュデータがキャッシュ４８に登録されているかどうかをキャッシュ管理部３８から求め、登録されている場合にはその要素のキャッシュデータの生成は行わず、登録されていない場合にのみ生成を行う。
【０１０４】
論理ページ解釈部３４−ｐは、各論理ページのＰＤＬデータの中間データを生成する。論理ページとは、ＰＤＬデータにおいて規定されている論理的な意味でのページのことであり、物理的な印刷媒体（用紙など）の１つの面である物理ページの対立概念である。印刷設定に応じて、物理ページ１ページ上に、１又は複数の論理ページが印刷される場合もある。なお、以下では、特に断りのない場合は、「ページ」という用語は、論理ページを指すものとする。
【０１０５】
論理ページ解釈部３４−ｐは、ページのＰＤＬデータを処理する中で、キャッシュ対象要素以外のオブジェクトについては、そのオブジェクトの描画コマンドやパラメータを解釈し、その解釈結果を示す中間データを生成し、生成した中間データをそのページの中間データに組み込む。一方、ＰＤＬデータ中のキャッシュ対象要素については、そのキャッシュ対象要素を解釈して中間データを生成する代わりに、キャッシュ４８内のその要素のキャッシュデータを特定するキャッシュＩＤを求める。そして、求めたキャッシュＩＤを参照するコマンドを、その要素を表す中間データとして、そのページの中間データに組み込む。論理ページ解釈部３４−ｐが生成した各ページの中間データは、バックエンド装置４０の中間データバッファ４２に送られる。
【０１０６】
ここで、論理ページ解釈部３４−ｐは、キャッシュ対象要素のキャッシュＩＤを求める際には、キャッシュ対象要素の描画結果を特定するパラメータ群からキャッシュＩＤを生成するなど、キャッシュ要素解釈部３４―ｃと同じ方法を用いればよい。
【０１０７】
図１２の例では、フロントエンド装置３０内には論理ページ解釈部３４−ｐが１つしか存在しないが、これは一例に過ぎない。この代わりにフロントエンド装置３０内に論理ページ解釈部３４−ｐを複数設け、それら複数の論理ページ解釈部３４−ｐにそれぞれ異なるページを割り当てて並列に解釈処理を行わせてもよい。
【０１０８】
論理ページ解釈部３４−ｐおよびキャッシュ要素解釈部３４−ｃは、例えば、ＣＰＵ上で実行されるプロセスとして実現される。例えば、マルチコアＣＰＵを用いたシステム構成において、個々のコアでそれぞれ１つずつ解釈部のプロセスを実行するという構成が考えられる。また、別の例として、論理ページ解釈部３４−ｐおよびキャッシュ要素解釈部３４−ｃとを別々のコンピュータ上で実行してもよい。
【０１０９】
バックエンド装置４０の描画部４４は、中間データバッファ４２内にある各ページの中間データを例えばページ順に読み出し、読み出したページの中間データのコマンドに従って描画データを生成していく。ここで、読み出したページの中間データ内に、キャッシュＩＤを参照する旨のコマンドが含まれる場合は、キャッシュ４８からそのキャッシュＩＤに対応する中間データ（すなわちフォームの中間データ）を読み出し、読み出した中間データを処理することで、フォームの描画データを生成し、ページの描画データに対して合成する。
【０１１０】
なお、キャッシュ対象の種類に該当する要素のうち、中間データをキャッシュするとかえって処理効率が落ちる要素は、キャッシュしないようにしてもよい。すなわち、キャッシュを用いるためには、キャッシュへの登録や必要なキャッシュデータの有無の問合せ等の処理のオーバーヘッドが生じる。非常に小さい又は構造が簡単な要素の場合、中間データの生成処理に要する時間が非常に短くて済むので、そのような処理オーバーヘッドを考慮すると、キャッシュを利用しない方が処理が早いことも多い。そこで、キャッシュした方が処理効率がよいもののみを、キャッシュすることとする。キャッシュした方がしない場合よりも効率がよい要素は、例えば以下のルールによって判定すればよい。
（ルール１）当該要素のバウンディングボックス（物理ページ上で当該フォームを囲むことができる最小の長方形）の画素数が、予め決められた数（「画素数閾値」と呼ぶ）より多い場合は、当該フォームをキャッシュ対象とし、そうでない場合はキャッシュ対象としない。
（ルール２）当該要素に含まれるオブジェクトの数が予め決められた数（「オブジェクト数閾値」と呼ぶ）より多い場合は当該フォームをキャッシュ対象とし、そうでない場合はキャッシュ対象としない。
（ルール３）当該フォームに予め決められた大きさ（「イメージサイズ閾値」と呼ぶ）より大きいイメージ（ビットマップ）がある場合は当該フォームをキャッシュ対象とし、そうでない場合はキャッシュ対象としない。
【０１１１】
例えば、以上に例示したルール１〜３のいずれか１つを用いて判定を行ってもよいし、２以上を組み合わせて判定を行ってもよい。２以上を組み合わせる場合は、少なくとも１つのルールで「キャッシュ対象」と判定されれば、他のルールによる判定結果によらず、当該フォームはキャッシュ対象とする。
【０１１２】
なお、上述の画素数閾値、オブジェクト数閾値およびイメージサイズ閾値は、フロントエンド装置３０やバックエンド装置４０のシステム構成や性能に応じた値であり、実験やシミュレーション等で定めておけばよい。
【０１１３】
図１２の例では、フロントエンド装置３０に、論理ページ解釈部３４−ｐの出力を最適化する中間データ最適化部３６−ｐと、キャッシュ要素解釈部３４−ｃの出力を最適化する中間データ最適化部３６−ｃを設けている。中間データ最適化部３６−ｐ及び中間データ最適化部３６−ｃの内部構成は、図４、図９などを参照して説明した例における中間データ最適化部３６と同様でよい。
【０１１４】
図１３にキャッシュ対象要素用の中間データ最適化部３６−ｃが実行する処理の手順の例を示す。この例では、中間データ最適化部３６−ｃは、キャッシュ要素解釈部３４−ｃから新たなキャッシュ対象要素の中間データを取得（Ｓ３０）するごとに、その中間データの最適化を実行する（Ｓ３２）。Ｓ３２（最適化）の具体的な処理としては、図５、図７、及び図９を参照して説明した各手順のいずれを用いてもよい。例えば図５の手順を代表例にとって説明すると、中間データ最適化部３６−ｃは、取得したキャッシュ対象要素に含まれるオブジェクト群を描画順に１つ取り出す（Ｓ１０）。次に、取り出した現オブジェクトの中間データにより、中間データ最適化部３６−ｃが備えるスプール内にある各オブジェクトの中間データに対してeclipse処理を施す（Ｓ１２）。そして、その現オブジェクトをスプールに記憶させる（Ｓ１４）。その後、そのキャッシュ対象要素に含まれる最後のオブジェクトの処理が終了したかどうかを判定し（Ｓ１６）、終了したと判定されるまでＳ１０〜Ｓ１６の処理を繰り返す。そして、終了した場合、スプール内にある全オブジェクト（すなわち、当該キャッシュ対象要素に含まれる各オブジェクトの最適化結果）をキャッシュ４８へと送信する。キャッシュ４８は、送られてきた最適化済みの中間データを、キャッシュＩＤと対応づけて記憶する。
【０１１５】
Ｓ３２（キャッシュ対象要素の最適化）の後、印刷ジョブのＰＤＬデータの最後まで処理を終えたかどうかを判定し（Ｓ３４）、まだ最後に達していなければ、Ｓ３０に戻って次のキャッシュ対象要素を処理する。Ｓ３４でジョブの最後に達したことがわかった場合は、処理を終了する。
【０１１６】
このように、図１３の手順は、１つのキャッシュ対象要素を、フロントエンド装置３０からバックエンド装置４０への中間データの出力単位とし、その出力単位ごとにスプール３６６を用いて中間データの最適化を行うものである。
【０１１７】
論理ページ用の中間データ最適化部３６−ｐの処理手順は、図１３の手順の「キャッシュ対象要素」を「ページ」に置き換えたものでよい。すなわち、この場合は、１つの論理ページがフロントエンド装置３０からバックエンド装置４０への中間データの出力単位となる。中間データ最適化部３６−ｐは、１ページごとに、そのページに含まれる各オブジェクトの中間データを最適化し、１ページ分を最適化するごとに、その最適化結果をバックエンド装置４０の中間データバッファ４２に転送する。なお、ページの中間データ内には、キャッシュ対象要素を表すキャッシュＩＤ参照コマンドが含まれる場合があるが、このコマンドについては最適化は行わなくてよい。
【０１１８】
図１３の手順では、キャッシュ対象要素の中間データをすべて最適化したが、これは一例に過ぎない。最適化を行うことでかえって処理効率が落ちるものや、最適化による処理効率の改善効果が薄い物については、最適化を行わないようにしてもよい。この例を、図１４に示す。図１４の手順のうち、図１３の手順と同様のステップには、同じ符号を付す。
【０１１９】
図１４の例は、キャッシュ対象要素の中間データを描画部４４が描画する際に要する時間の予測値があらかじめ定めた閾値よりも小さい場合に、最適化を行わないようにする。すなわち、描画に要する時間が短い要素は、最適化をしなくても十分速く描画処理できるので、最適化を行わないのである。
【０１２０】
図１４の例では、中間データ最適化部３６−ｃは、Ｓ３０で取得したキャッシュ対象要素について、描画部４４の負荷の指標値として、その要素の描画に要する時間の予測値を求める（Ｓ３６）。描画時間の予測値としては、例えば、オブジェクトの面積（そのオブジェクトのバウンディングボックスの面積で代用可）にそのオブジェクトのカラー形式に応じた描画時間係数を乗じたものを、キャッシュ対象要素内の全オブジェクトについて総和したもの用いてもよい。カラー形式ごとの描画時間係数は、そのカラー形式のオブジェクトの単位面積の描画に要する時間を表す係数である。例えば、カラー形式ごとに、そのカラー形式のオブジェクトの単位面積の描画に要する時間の平均的な値を実験やシミュレーションで求めておき、その値を係数として用いればよい。単色形式、グラデーション形式、ラスター形式の３種のカラー形式の中では、単色形式の係数が最も小さく、次がグラデーション形式であり、最も大きいのがラスター形式である。中間データ最適化部３６−ｃは、Ｓ３６で求めた描画予測時間をあらかじめ定めた閾値と比較し（Ｓ３７）、描画予測時間が閾値未満であれば、そのキャッシュ対象要素の中間データをそのままキャッシュ４８へと転送する（すなわち、最適化しない）。Ｓ３７の判定で、描画予測時間が閾値以上と判定した場合は、当該キャッシュ対象要素について中間データの最適化処理を実行する（Ｓ３２）。Ｓ３８又はＳ３２の後、印刷ジョブの最後に達したかどうかを判定し（Ｓ３４）、まだ最後に達していなければ、Ｓ３０に戻って次のキャッシュ対象要素を処理する。Ｓ３４でジョブの最後に達したことがわかった場合は、処理を終了する。
【０１２１】
図１４の例では、描画部４４の負荷の指標値としてキャッシュ対象要素の描画予測時間を用いたが、これは一例に過ぎない。別の指標値として、例えば、キャッシュ対象要素の描画予測時間を、その要素に含まれるオブジェクトの総数で正規化した値（例えば予測時間をオブジェクト総数で割った値）を用いてもよい。小さいオブジェクトが多数ある場合も、大きいオブジェクトが少数の場合も、共に描画予測時間は長くなる。ここで、前者（小さいオブジェクトが多数）の方が最適化のためのeclipse処理の回数が多くなるので、最適化のためのコストが後者より高くなる。このため、描画予測時間が同じであれば、後者の方が前者よりも最適化のメリットが大きい。描画予測時間をオブジェクトの総数で正規化した値を用いれば、オブジェクトの総数に応じた最適化のためのコストを考慮に入れた、より適切な指標値が得られる。
【０１２２】
また、描画部４４の負荷の指標値として、キャッシュ対象要素に含まれるオブジェクトの面積の総和を、そのキャッシュ対象要素の面積で正規化した値（例えば前者を後者で割った値）を用いてもよい。この指標値が１を超えると、必ずどれかのオブジェクトが重なっていることになる。この指標値が大きいほど重なりが多いので、最適化の利益が大きい。そこで、キャッシュ対象要素についてこの指標値を計算し、得られた指標値があらかじめ定めた閾値より大きい場合に最適化を行い、閾値以下であれば最適化を行わないようにすればよい。なお、キャッシュ対象要素の面積及びその中の個々のオブジェクトの面積は、それぞれについてのバウンディングボックスの面積で代用してもよい。
【０１２３】
図１４の手順は、１つのキャッシュ対象要素を、フロントエンド装置３０からバックエンド装置４０への中間データの出力単位とし、その出力単位ごとに、最適化を行った方がよいか否かを判定するものである。
【０１２４】
図１４の手順はキャッシュ対象要素についてのものであったが、論理ページの中間データの最適化にも同様の処理手順を適用可能である。論理ページの中間データを最適化する場合、出力単位は１つの論理ページであり、この出力単位に含まれるオブジェクト群についての描画処理の負荷の指標値に基づき、その出力単位の中間データを最適化するか否かを判定する。
【０１２５】
図１２に示した例は、論理ページとキャッシュ対象要素の両方について中間データの最適化を行ったが、最適化を行うのをいずれか一方のみに限定してもよい。論理ページは基本的に１回しか描画されないのに対し、キャッシュ対象要素は複数回描画される可能性が高いので、いずれか一方のみを最適化するとすれば、キャッシュ対象要素を選んだ方が効果が高い。
【０１２６】
以上に説明した各例では、オブジェクト同士が重なる場合に、-描画順が前のオブジェクトの形状を、後のオブジェクトで覆われる部分を除く形状へと変更する例を主として示したが、後のオブジェクトにオーバープリント指定がなされている場合は、そのような形状変更は行わない。すなわち、オーバープリント指定のあるオブジェクトについては、スプール３６６内のオブジェクトに対するeclipse処理は行わない 。また、オーバープリント指定のオブジェクトを検出した場合、その時点でスプール３６６の「フラッシュ」を行うようにしてもよい。
【０１２７】
以上に説明した実施形態はあくまで一例に過ぎず、本発明の技術的思想の範囲内で様々な変形や変更が可能である。
【符号の説明】
【０１２８】
１０  端末装置、２０  印刷制御システム、３０  フロントエンド装置、３２  印刷ジョブ受信部、３４  解釈部、３４−ｐ  論理ページ解釈部、３４−ｃ  キャッシュ要素解釈部、３６  中間データ最適化部、３８  キャッシュ管理部、４０  バックエンド装置、４２  中間データバッファ、４４  描画部、４６  出力バッファ、４８  キャッシュ、５０  印刷装置、６０，６２，６４  通信手段、３６２  中間データ取得部、３６４  最適化処理部、３６６  スプール。
【図１】
2015005131.tif 000003
【図２】
2015005131.tif 000004
【図３】
2015005131.tif 000005
【図４】
2015005131.tif 000006
【図５】
2015005131.tif 000007
【図６】
2015005131.tif 000008
【図７】
2015005131.tif 000009
【図８】
2015005131.tif 000010
【図９】
2015005131.tif 000011
【図１０】
2015005131.tif 000012
【図１１】
2015005131.tif 000013
【図１２】
2015005131.tif 000014
【図１３】
2015005131.tif 000015
【図１４】
2015005131.tif 000016