(57)【要約】【課題】スキャンラインアルゴリズムとオブジェクト圧縮を併用する場合、画像形成するスキャンライン上に存在する全ての描画画像を展開しておく必要がある。しかし、同一スキャンライン上に複数個のＰＤＬ画像が存在すると、圧縮した画像を展開する領域を有効に使いまわせない。【解決手段】記憶部は、圧縮条件を満たさないと判定されたオブジェクト、もしくは、第一のサイズ判定手段もしくは第二のサイズ判定手段にて所定のサイズを超えると判定された際のオブジェクトは、圧縮しない形式で前記中間データとして保持し、前記第一のサイズ判定手段もしくは前記第二のサイズ判定手段にて前記所定のサイズを超えないと判定された際のオブジェクト、もしくは、分割手段にて分割されたオブジェクトは、圧縮手段にて圧縮し、前記中間データとして保持する。【選択図】  図６
2013119242.tif 000002
【特許請求の範囲】
【請求項１】
印刷データを解釈して中間データを生成するインタプリタ部と、生成した中間データを保持する記憶部と、生成した中間データを解釈し、所定の単位で出力画像を描画する出力部とを有する画像形成装置であって、
前記記憶部は、前記出力部が中間データを処理する際に用いられる所定のサイズの領域を更に確保され、
前記インタプリタ部は、
前記印刷データに含まれるオブジェクトそれぞれに対応する中間データを生成する際に、着目オブジェクトが予め定義された圧縮条件を満たすか否かを判定する圧縮判定手段と、
前記着目オブジェクトが圧縮条件を満たす場合、前記着目オブジェクトの中間データを前記出力部が描画する際に複数のバンドにまたがって描画されるか否かを判定する分割判定手段と、
前記着目オブジェクトが複数のバンドにまたがって描画されると判定された場合、前記着目オブジェクトが描画されるバンドのいずれかにおいて、着目バンドに含まれる他のオブジェクトのサイズと前記着目オブジェクトのサイズとの総和が、前記所定のサイズを超えるか否かを判定する第一のサイズ判定手段と、
前記所定のサイズを超えない場合、前記着目オブジェクトを前記着目バンドの境界で分割する分割手段と、
前記着目オブジェクトが複数のバンドにまたがって描画されないと判定された場合、前記着目オブジェクトが描画されるバンドに含まれる他のオブジェクトのサイズと前記着目オブジェクトのサイズとの総和が、前記所定のサイズを超えるか否かを判定する第二のサイズ判定手段と、
前記中間データを圧縮する圧縮手段と
を有し、
前記記憶部は、
前記圧縮判定手段にて前記圧縮条件を満たさないと判定されたオブジェクト、もしくは、前記第一のサイズ判定手段もしくは前記第二のサイズ判定手段にて前記所定のサイズを超えると判定された際のオブジェクトは、圧縮しない形式で前記中間データとして保持し、
前記第一のサイズ判定手段もしくは前記第二のサイズ判定手段にて前記所定のサイズを超えないと判定された際のオブジェクト、もしくは、前記分割手段にて分割されたオブジェクトは、前記圧縮手段にて圧縮され、前記中間データとして保持することを特徴とする画像形成装置。
【請求項２】
前記分割判定手段にて複数のバンドにまたがると判定されるオブジェクトは、２のバンドにまたがったオブジェクトであることを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記分割判定手段にて複数のバンドにまたがると判定されるオブジェクトは、３以上のバンドにまたがったオブジェクトであることを特徴とする請求項１に記載の画像形成装置。
【請求項４】
前記分割判定手段にて複数のバンドにまたがると判定されるオブジェクトは、更に、前記描画する領域が一定以上の高さを持つオブジェクトであることを特徴とする請求項２または３に記載の画像形成装置。
【請求項５】
前記中間データを生成する前に、バンドの高さを決定する決定手段を更に有することを特徴とする請求項１乃至４のいずれか一項に記載の画像形成装置。
【請求項６】
前記決定手段は、バンドの高さを決定する際に、
着目バンドに含まれるオブジェクトのサイズの総和が前記所定のサイズを超える場合、当該着目バンドを分割し、
着目バンドに含まれるオブジェクトのサイズの総和と、当該着目バンドに隣接するバンドに含まれるオブジェクトのサイズの総和との合計が、前記所定のサイズよりも小さい場合、前記着目バンドと前記隣接するバンドとを結合することを特徴とする請求項５に記載の画像形成装置。
【請求項７】
前記決定手段は、分割されるオブジェクトの数を最小化するようにバンドの高さを決定することを特徴とする請求項５に記載の画像形成装置。
【請求項８】
前記決定手段は、着目バンドに含まれるオブジェクトのサイズの総和が前記所定のサイズとなるようにバンドの高さを決定することを特徴とする請求項５に記載の画像形成装置。
【請求項９】
前記決定手段は、複数のバンドそれぞれに含まれるオブジェクトのサイズが平均化するようにバンドの高さを決定することを特徴とする請求項５に記載の画像形成装置。
【請求項１０】
前記圧縮手段は、複数回の圧縮を行うことによりオブジェクトの圧縮率を変化させることを特徴とする請求項１乃至９のいずれか一項に記載の画像形成装置。
【請求項１１】
前記圧縮手段は、分割されたオブジェクトを同一の圧縮率にて圧縮することを特徴とする請求項１乃至１０のいずれか一項に記載の画像形成装置。
【請求項１２】
前記所定のサイズの領域は、前記複数のバンドにて共有して用いられることを特徴とする請求項１乃至１１のいずれか一項に記載の画像形成装置。
【請求項１３】
印刷データを解釈して中間データを生成するインタプリタ部と、生成した中間データを保持する記憶部と、生成した中間データを解釈し、所定の単位で出力画像を描画する出力部とを有する画像形成装置における画像形成方法であって、
前記記憶部において、前記出力部が中間データを処理する際に用いられる所定のサイズの領域を更に確保され、
前記インタプリタ部において、
圧縮判定手段が、前記印刷データに含まれるオブジェクトそれぞれに対応する中間データを生成する際に、着目オブジェクトが予め定義された圧縮条件を満たすか否かを判定する圧縮判定工程と、
分割判定手段が、前記着目オブジェクトが圧縮条件を満たす場合、前記着目オブジェクトの中間データを前記出力部が描画する際に複数のバンドにまたがって描画されるか否かを判定する分割判定工程と、
第一のサイズ判定手段が、前記着目オブジェクトが複数のバンドにまたがって描画されると判定された場合、前記着目オブジェクトが描画されるバンドのいずれかにおいて、着目バンドに含まれる他のオブジェクトのサイズと前記着目オブジェクトのサイズとの総和が、前記所定のサイズを超えるか否かを判定する第一のサイズ判定工程と、
分割手段が、前記所定のサイズを超えない場合、前記着目オブジェクトを前記着目バンドの境界で分割する分割工程と、
第二のサイズ判定手段が、前記着目オブジェクトが複数のバンドにまたがって描画されないと判定された場合、前記着目オブジェクトが描画されるバンドに含まれる他のオブジェクトのサイズと前記着目オブジェクトのサイズとの総和が、前記所定のサイズを超えるか否かを判定する第二のサイズ判定工程と、
圧縮手段が、前記中間データを圧縮する圧縮工程と、
を有し、
前記記憶部において、
前記圧縮判定工程にて前記圧縮条件を満たさないと判定されたオブジェクト、もしくは、前記第一のサイズ判定工程もしくは前記第二のサイズ判定工程にて前記所定のサイズを超えると判定された際のオブジェクトは、圧縮しない形式で前記中間データとして保持し、
前記第一のサイズ判定工程もしくは前記第二のサイズ判定工程にて前記所定のサイズを超えないと判定された際のオブジェクト、もしくは、前記分割工程にて分割されたオブジェクトは、前記圧縮工程にて圧縮され、前記中間データとして保持することを特徴とする画像形成方法。
【請求項１４】
印刷データを解釈して中間データを生成するインタプリタ部と、生成した中間データを保持する記憶部と、生成した中間データを解釈し、所定の単位で出力画像を描画する出力部とを有するコンピュータにおいて、
前記記憶部は、前記出力部が中間データを処理する際に用いられる所定のサイズの領域を更に確保され、
前記インタプリタ部を、
前記印刷データに含まれるオブジェクトそれぞれに対応する中間データを生成する際に、着目オブジェクトが予め定義された圧縮条件を満たすか否かを判定する圧縮判定手段、
前記着目オブジェクトが圧縮条件を満たす場合、前記着目オブジェクトの中間データを前記出力部が描画する際に複数のバンドにまたがって描画されるか否かを判定する分割判定手段、
前記着目オブジェクトが複数のバンドにまたがって描画されると判定された場合、前記着目オブジェクトが描画されるバンドのいずれかにおいて、着目バンドに含まれる他のオブジェクトのサイズと前記着目オブジェクトのサイズとの総和が、前記所定のサイズを超えるか否かを判定する第一のサイズ判定手段、
前記所定のサイズを超えない場合、前記着目オブジェクトを前記着目バンドの境界で分割する分割手段、
前記着目オブジェクトが複数のバンドにまたがって描画されないと判定された場合、前記着目オブジェクトが描画されるバンドに含まれる他のオブジェクトのサイズと前記着目オブジェクトのサイズとの総和が、前記所定のサイズを超えるか否かを判定する第二のサイズ判定手段、
前記中間データを圧縮する圧縮手段、
として機能させ、
前記記憶部において、
前記圧縮判定手段にて前記圧縮条件を満たさないと判定されたオブジェクト、もしくは、前記第一のサイズ判定手段もしくは前記第二のサイズ判定手段にて前記所定のサイズを超えると判定された際のオブジェクトは、圧縮しない形式で前記中間データとして保持され、
前記第一のサイズ判定手段もしくは前記第二のサイズ判定手段にて前記所定のサイズを超えないと判定された際のオブジェクト、もしくは、前記分割手段にて分割されたオブジェクトは、前記圧縮手段にて圧縮され、前記中間データとして保持されることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置、画像形成方法、およびプログラムに関する。
【背景技術】
【０００２】
画像形成装置におけるＲＩＰ（Ｒａｓｔｅｒ  Ｉｍａｇｅ  Ｐｒｏｃｅｓｓｏｒ）が行う画像形成処理手段の１つとしてスキャンラインアルゴリズムが一般的に知られている。スキャンラインアルゴリズムとは、中間データを一度保持し、その中間データに従って該当する画素の色値を決定しながら、スキャンライン単位で画像を形成（レンダリング）するアルゴリズムである。
【０００３】
プリンタで行われている画像形成処理には、処理時間と必要メモリ量を削減する課題が常に発生している。より高速なプロセッサ、より大きなメモリをプリンタデバイスに搭載することで性能向上することは可能である。しかし同時に、製品の原価があがり、商品としての利益率が低下してしまう。よって、プリンタデバイスには、商業的理由により利用可能なメモリや計算資源などのリソースを削減したいという要望がある。
【０００４】
高速化手法の一例としてはバンドレンダリングがある。これは中間データをバンド単位で生成し、バンド毎に出力画像形成を並列処理することで高速化する技術である（特許文献１等参照）。
【０００５】
また、必要メモリ削減手法の一例としては、オブジェクト圧縮手法が知られている。これは印刷データに含まれるＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）にて定義された画像を可逆あるいは非可逆圧縮した圧縮画像を作り、ＲＩＰで出力画像を形成する際には必要に応じて圧縮画像を描画画像として展開する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−０５１１４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、スキャンラインアルゴリズムとオブジェクト圧縮を併用する場合、画像形成するスキャンライン上に存在する全ての描画画像を展開しておく必要がある。しかし、ホストコンピュータ側から送られる印刷データ内のＰＤＬの画像が同一スキャンライン上に複数個存在すると、圧縮した画像を展開する領域を有効に使いまわせないケースが存在する。例えば、ページ内に短冊状の画像がスキャンラインと直交して存在する場合には、それらの画像を全て展開できる領域が必要となる。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本願発明は以下の構成を有する。すなわち、印刷データを解釈して中間データを生成するインタプリタ部と、生成した中間データを保持する記憶部と、生成した中間データを解釈し、所定の単位で出力画像を描画する出力部とを有する画像形成装置であって、前記記憶部は、前記出力部が中間データを処理する際に用いられる所定のサイズの領域を更に確保され、前記インタプリタ部は、前記印刷データに含まれるオブジェクトそれぞれに対応する中間データを生成する際に、着目オブジェクトが予め定義された圧縮条件を満たすか否かを判定する圧縮判定手段と、前記着目オブジェクトが圧縮条件を満たす場合、前記着目オブジェクトの中間データを前記出力部が描画する際に複数のバンドにまたがって描画されるか否かを判定する分割判定手段と、前記着目オブジェクトが複数のバンドにまたがって描画されると判定された場合、前記着目オブジェクトが描画されるバンドのいずれかにおいて、着目バンドに含まれる他のオブジェクトのサイズと前記着目オブジェクトのサイズとの総和が、前記所定のサイズを超えるか否かを判定する第一のサイズ判定手段と、前記所定のサイズを超えない場合、前記着目オブジェクトを前記着目バンドの境界で分割する分割手段と、前記着目オブジェクトが複数のバンドにまたがって描画されないと判定された場合、前記着目オブジェクトが描画されるバンドに含まれる他のオブジェクトのサイズと前記着目オブジェクトのサイズとの総和が、前記所定のサイズを超えるか否かを判定する第二のサイズ判定手段と、前記中間データを圧縮する圧縮手段とを有し、前記記憶部は、前記圧縮判定手段にて前記圧縮条件を満たさないと判定されたオブジェクト、もしくは、前記第一のサイズ判定手段もしくは前記第二のサイズ判定手段にて前記所定のサイズを超えると判定された際のオブジェクトは、圧縮しない形式で前記中間データとして保持し、前記第一のサイズ判定手段もしくは前記第二のサイズ判定手段にて前記所定のサイズを超えないと判定された際のオブジェクト、もしくは、前記分割手段にて分割されたオブジェクトは、前記圧縮手段にて圧縮し、前記中間データとして保持する。
【発明の効果】
【０００９】
本願発明により、オブジェクト圧縮を利用する場合にＰＤＬにて記述された画像を描画するバンド単位で分割し、必要となる展開領域のサイズを中間データ生成時に制御する。これにより、ＲＩＰが展開領域を使いまわす事ができ、必要となる展開領域サイズを抑えることが可能となる。
【図面の簡単な説明】
【００１０】
【図１】本実施形態に係るコンピュータを含むシステムの構成を説明するブロック図。
【図２】本実施形態に係るソフトウェアモジュールおよびハードウェアの関連を説明するブロック図。
【図３】本実施形態に係る印刷データに含まれるデータ形式の一例を示す図。
【図４】印刷データを解釈するためのインタプリタ処理を示すフローチャート。
【図５】描画オブジェクト描画処理を示すフローチャート。
【図６】描画オブジェクトに含まれるＩｍａｇｅ  Ｏｐｅｒａｎｄを解釈して中間データを生成する処理を示すフローチャート。
【図７】従来例に係るオブジェクト圧縮処理によるサイズ増加の例を説明する図。
【図８】本実施形態に係るオブジェクト圧縮処理によるサイズ削減の第１の例を示す図。
【図９】従来例に係るオブジェクト圧縮処理によるサイズ増加の例を示す図。
【図１０】本実施形態に係るオブジェクト圧縮処理によるサイズ削減の第２の例を示す図。
【図１１】バンドの高さを最適化する処理のフローチャート。
【図１２】オブジェクト描画コマンドを読み飛ばす処理のフローチャート。
【図１３】バンドの高さを決定する処理のフローチャート。
【図１４】本実施形態に係るオブジェクト圧縮処理によるサイズ削減の第３の例を示す図。
【発明を実施するための形態】
【００１１】
以下、本発明を実施するための形態について図面を用いて説明する。
【００１２】
［システム構成］
図１は、本実施形態に係るスキャンライン方式のプリンタの構成例を示す図である。プリンタ１００内において、プロセッサ１０１、メモリ１０２、操作パネル１０３、ネットワークアダプタ１０４、記憶装置１０５、ＲＩＰデバイス１０６、およびプリンタエンジン１０７を備える。また、プリンタ１００内の各構成部は、バス１１０を介して、それぞれ通信可能に接続される。
【００１３】
プロセッサ１０１は、メモリ１０２に記憶された処理手順、すなわち、所定のプログラムに従って、上述した各構成部を制御する。メモリ１０２には、プロセッサ１０１が利用するプログラムやデータが記憶されている。また、記憶装置１０５には、本システムが必要とするプログラムやデータが記録されている。記憶装置１０５として、２つ以上の装置を接続する構成にすることも可能である。また、記憶装置１０５として、ＲＯＭ、ハードディスク、ＵＳＢストレージ、ＳＤカード、ネットワークストレージ等の異なる記憶装置を併用することも可能である。
【００１４】
操作パネル１０３は、例えばディスプレイ部分とタッチパネル部分とから構成される形態であってもよい。また、タッチパネルではなく物理的なボタンによってユーザからの操作を受け取る手段で実現しても良い。プリンタ１００は、操作パネル１０３介して種々の印刷指示を受け付ける。また、プリンタ１００は、操作パネル１０３を介してプリンタ１００に関する情報を表示することが可能である。また、プリンタ１００は、ネットワークアダプタ１０４を介してネットワーク１２０に接続できる。例えば、ユーザは、ホストコンピュータ１３０からネットワーク１２０を介し、プリンタ１００に印刷指示を出すことが可能である。
【００１５】
以上の手段により印刷指示がプリンタ１００に対してなされると、メモリ１０２上に記憶されたプログラム２００をプロセッサ１０１が実行する事でプリンタエンジン１０７から印刷物が出力される。プリンタ１００が印刷物を出力するまでの詳細な動作については、図２を用いて説明する。
【００１６】
［ソフトウェア構成］
プログラム２００は、いくつかのソフトウェアモジュールを組み合わせることで実現される。図２は、本実施形態に係るプリンタ１００のソフトウェアモジュールと各ハードウェア（１０２，１０４，１０５，１０６，１０７）の関連を示す例図である。
【００１７】
プログラム２００は、外部および内部からの印刷データを受信するためのジョブ受信部２０１と、ジョブ受信部２０１からの通知によってジョブを生成するジョブ制御部２０２とを含む。更に、プログラム２００は、印刷データ２１１を解釈するためのインタプリタ部２０３、ＲＩＰデバイス１０６を制御するためのＲＩＰデバイス制御部２０４、および、プリンタエンジン１０７を制御するためのプリンタエンジン制御部２０５を含む。
【００１８】
ネットワークアダプタ１０４もしくは記憶装置１０５から供給される印刷データ２１１を、ジョブ受信部２０１が受信する。ジョブ受信部２０１は、受信した印刷データ２１１を処理するべきであると判断すると、ジョブ制御部２０２にジョブ生成を通知する。ジョブ制御部２０２は、ジョブ受信部２０１からのジョブ生成通知に基づいてインタプリタ部２０３を起動させる。インタプリタ部２０３は、ジョブ受信部２０１から印刷データ２１１を受信し、その内容を解釈する。インタプリタ部２０３が印刷データを解釈した結果は、メモリ１０２上のＤＬＭ（Ｄｉｓｐｌａｙ  Ｌｉｓｔ  Ｍｅｍｏｒｙ）２０６の中の各領域（２０７〜２１０）に中間データとしてそれぞれ保持される。
【００１９】
インタプリタ部２０３が印刷データ２１１内からページ終端を検知すると、ジョブ制御部２０２に１ページ分の印刷データを解釈終了した事を通知する。ジョブ制御部２０２は、１ページ分の印刷データ２１１の解釈が終了した旨の通知を受けて、ＲＩＰデバイス制御部２０４へ画像形成通知を、プリンタエンジン制御部２０５へ画像出力通知を行う。ＲＩＰデバイス制御部２０４は、ジョブ制御部２０２からの画像形成通知をうけて、ＲＩＰデバイス１０６にＤＬＭ２０６に保持されたデータを供給する。ＲＩＰデバイス１０６は、ＤＬＭ２０６を元に出力画像２１２の画像形成を行う出力部である。プリンタエンジン制御部２０５はプリンタエンジン１０７を制御し、ＲＩＰデバイス１０６が生成した出力画像２１２をプリンタエンジン１０７に通知し、形成された出力画像２１２を物理用紙２１３へ印刷する。
【００２０】
ここで、ＤＬＭ２０６に保持される中間データについて補足を行う。本実施形態では、ＤＬＭ２０６内の中間データを大きく４つの領域に大別している。１）ＤＬＭ２０６には、インタプリタ部２０３が印刷データ２１１から取得した画像を圧縮せずに保存するＲＡＷ画像領域２０８が含まれる。２）ＤＬＭ２０６には、インタプリタ部２０３が印刷データ２１１から取得した画像を圧縮して保存する圧縮画像領域２０９が含まれる。３）ＤＬＭ２０６には、圧縮画像領域２０９に保持された圧縮画像を展開する先の領域である展開領域２１０が含まれる。これは、圧縮画像領域２０９内を利用するためには圧縮していない形式に展開する必要があるため、ＲＩＰデバイス１０６の展開処理において用いられる。４）ＤＬＭ２０６には、イメージ以外の中間データを保持するその他のデータのデータ領域２０７が含まれる。データ領域２０７には、出力画像の幅・高さ・色数に関する情報、あるいは単色での色塗りつぶし指定なども全て含まれるものとする。
【００２１】
なお、従来技術では、展開領域２１０をＤＬＭ２０６の制限を超えない限りは拡大可能として定義している。本願発明では、展開領域のサイズ（データサイズ）に制限を設けるための閾値を予め「最大展開領域サイズ」として定義するものとする。これに対し、出力画像の形成を行う際に、中間データに対する展開処理等により画像を一時的に保持することにより、用いられる展開領域のサイズを「累積展開領域サイズ」として記載する。これは、展開処理時には、必要に応じて複数の画像を保持する必要があり、それらの画像のサイズを累積した値となる。
【００２２】
［データ構造］
本願発明を説明するために必要な印刷データのデータ構造に関する概念を、図３を用いて簡単に説明する。なお、これは印刷データの形式の一例であり、他の形式を用いても本発明を適用する事が可能であることを言及しておく。なお、本明細書において、印刷データに含まれるＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ：ページ記述言語）にて定義された画像（オブジェクト）を、以下、ＰＤＬ画像と記載する。
【００２３】
印刷データの中には、出力を指示される単位としてジョブ３０１を含む。ジョブ３０１には１つ以上のページ３０２が含まれている。更に、ページ３０２には０個以上の描画オブジェクト３０３が含まれる。描画オブジェクト３０３には、Ｏｐｅｒａｔｏｒ３１１、Ｐａｔｈ／Ｃｌｉｐ３２１、Ｏｐｅｒａｎｄ３３１が含まれる。
【００２４】
Ｏｐｅｒａｔｏｒ３１１は１つの描画オブジェクトに対して１つが指定でき、この描画オブジェクトを前景とし、背景とどのように合成するのかを指定するためのものである。例えば、設定として、「上書きする」あるいは「背景とのＡＮＤをとる」などの背景合成指定をする事が出来る。以下に説明するＯｐｅｒａｎｄ３３１は複数個指定する事もでき、Ｏｐｅｒａｔｏｒ３１１によって前景と背景の複雑な合成を表現する事も可能である。
【００２５】
Ｐａｔｈ／Ｃｌｉｐ３２１は、描画オブジェクト３０３のどの領域を描画すればよいのかを表す情報である。これによって描画画像が四角形であっても、任意範囲をＰａｔｈ／Ｃｌｉｐ３２１に指定する事で、任意形状描画することが可能となる。また、次に説明するＯｐｅｒａｎｄ３３１内に含まれるいずれかの描画画像の幅・高さを使って描画する指定をすることで、Ｐａｔｈ／Ｃｌｉｐ３２１には具体的な領域指定を含めない事も可能である。
【００２６】
Ｏｐｅｒａｎｄ３３１は、１つの描画オブジェクト３０３に対して最大３個まで指定する事が出来る。Ｏｐｅｒａｎｄ３３１は、背景と合成する場合の前景を意味する。Ｏｐｅｒａｔｏｒ３１１の指定方法によっては利用するＯｐｅｒａｎｄ３３１の個数は異なる。Ｏｐｅｒａｎｄ３３１には様々な種別があり、例えば画像を表すためのＩｍａｇｅＯｐｅｒａｎｄ３３２であったり、あるいは特定の色での塗りつぶしを指定するＦｌａｔＣｏｌｏｒＯｐｅｒａｎｄ３３４であったりする。Ｏｐｅｒａｎｄ３３１の種別の一例であるＩｍａｇｅＯｐｅｒａｎｄ３３２は、ＰＤＬ画像であるＩｍａｇｅ３３３と、Ｉｍａｇｅ３３３を変形するためのマトリックスであるＴｒａｎｓｆｏｒｍＭａｔｒｉｘ３３６とを持つ。ＴｒａｎｓｆｏｒｍＭａｔｒｉｘ３３６を指定する事によりＩｍａｇｅ３３３を出力画像２１２上で拡大・縮小、あるいは回転させることが可能となる。また、ＦｌａｔＣｏｌｏｒＯｐｅｒａｎｄ３３４は、色を表現するためのＣｏｌｏｒ３３５を持つ。説明を簡略化するためにここでは省略しているが、Ｏｐｅｒａｎｄ３３１の種別としてはこの他にグラデーションを表現するＯｐｅｒａｎｄや、計算式によって色値を表現するＯｐｅｒａｎｄ等を更に定義することも可能である。
【００２７】
＜実施形態１＞
実施形態１として、本発明で対象としているＰＤＬ画像の圧縮処理についての詳細を述べる。まず、インタプリタ部２０３によるＰＤＬ画像の圧縮処理について、図４と図５を用いて簡単に説明する。
【００２８】
（インタプリタ処理）
図４は、インタプリタ部２０３が実行するインタプリタ処理に関する全体の流れを意味している。本処理は、図１に示すプリンタ１００のプロセッサ１０１が記憶部である記憶装置１０５等に記憶されたプログラムを読み出し、実行することによって実現される。
【００２９】
インタプリタ部２０３は、ジョブ受信部２０１を介して印刷データ内のコマンドを読み込む（Ｓ４０１）。インタプリタ部２０３は、読み込んだコマンドの種別に応じて次に実行するべきコマンドを決定する（Ｓ４０２）。ここで、コマンドの種類は、オブジェクト描画、ジョブ開始、ジョブ終了、ページ開始、ページ終了の５つがあるものとする。読み込んだコマンドが、「ジョブ開始」のコマンドであれば、インタプリタ部２０３はジョブ開始処理を実行する（Ｓ４１２）。読み込んだコマンドが、「ページ開始」のコマンドであれば、インタプリタ部２０３は、ページ開始処理を実行する（Ｓ４１３）。読み込んだコマンドが、「オブジェクト描画」のコマンドであれば、インタプリタ部２０３は、オブジェクト描画処理を実行する（Ｓ４１５）。オブジェクト描画処理（Ｓ４１５）の詳細については、図５を用いて説明する。読み込んだコマンドが、「ページ終了」のコマンドであれば、インタプリタ部２０３は、ページ終了処理を実行する（Ｓ４１４）。
【００３０】
ページ終了処理（Ｓ４１４）の中では、ジョブ制御部２０２に１ページ分の印刷データ解釈が終了した事を通知する処理が行われる。ジョブ開始コマンド、ページ開始コマンド、オブジェクト描画コマンド、ページ終了コマンドのいずれかのコマンドに対する処理を実行した場合には、まだジョブに含まれるコマンドが継続しているので、再びコマンドの読み込み処理に戻る（Ｓ４０１）。読み込んだコマンドがジョブ終了であれば、インタプリタ部２０３はジョブ終了処理を実行し（Ｓ４１１）、本処理フローにおけるインタプリタ処理を終了する。
【００３１】
（オブジェクト描画処理）
図５は、インタプリタ部２０３が実行する図４のオブジェクト描画処理（Ｓ４１５）の詳細を記載したものになる。前述したとおり、ジョブのデータ構造において、描画オブジェクト３０３は１〜３のＯｐｅｒａｎｄ３３１を有する。インタプリタ部２０３は、描画オブジェクト３０３における全てのＯｐｅｒａｎｄ３３１に対し、Ｓ５０２〜Ｓ５０４の処理を繰り返す（Ｓ５０１）。インタプリタ部２０３は、着目しているＯｐｅｒａｎｄのＯｐｅｒａｎｄ種別を判断する（Ｓ５０２）。インタプリタ部２０３は、Ｏｐｅｒａｎｄ種別がＦｌａｔ  Ｃｏｌｏｒ  Ｏｐｅｒａｎｄだと判断した場合には、ＦｌａｔＣｏｌｏｒＯｐｅｒａｎｄ３３４が示すＣｏｌｏｒ３３５をＤＬＭ２０６内の中間データに登録する（Ｓ５０３）。インタプリタ部２０３は、Ｏｐｅｒａｎｄ種別がＩｍａｇｅ  Ｏｐｅｒａｎｄだと判断した場合には、ＩｍａｇｅＯｐｅｒａｎｄ３３２が示すＩｍａｇｅ３３３をＤＬＭ２０６内の中間データに登録する（Ｓ５０４）。Ｓ５０４の処理の詳細については、図６を用いて後述する。全Ｏｐｅｒａｎｄに対してＳ５０２〜Ｓ５０４の処理が終了した後、Ｓ５０５へ処理を進める。
【００３２】
インタプリタ部２０３は、描画オブジェクトがＰａｔｈ／Ｃｌｉｐ３２１を持っているか否かを判定する（Ｓ５０５）。描画オブジェクトがＰａｔｈ／Ｃｌｉｐ３２１を持っていると判断した場合（Ｓ５０５にてＹＥＳ）、インタプリタ部２０３は、そのＰａｔｈ／Ｃｌｉｐ３２１をＤＬＭ２０６内の中間データに登録する（Ｓ５０６）。最後に、インタプリタ部２０３は、Ｏｐｅｒａｔｏｒ３１１をＤＬＭ２０６内の中間データに登録する（Ｓ５０７）。このとき、Ｏｐｅｒａｔｏｒ３１１には、ＤＬＭ２０６内に登録されたＣｏｌｏｒ３３５やＩｍａｇｅ３３３と、Ｐａｔｈ／Ｃｌｉｐ３２１とが関連付けられている。なお、Ｉｍａｇｅ３３３やＣｏｌｏｒ３３５に対して色補正処理などが前処理として行われる場合もある。
【００３３】
（中間データ登録処理）
本願発明の特徴の一つは、ＩｍａｇｅＯｐｅｒａｎｄ３３２が示すＩｍａｇｅ３３３をＤＬＭ２０６内の中間データに登録するＳ５０４の詳細に関する部分である。図６は、本願発明を適用した場合の、インタプリタ部２０３で行われる、Ｉｍａｇｅ  ＯｐｅｒａｎｄをＤＬに登録する処理の流れを示している。これは、図５のＳ５０４に対応する。まず先に、インタプリタ部２０３は、入力されたＩｍａｇｅＯｐｅｒａｎｄ３３２が示すＩｍａｇｅ３３３（着目オブジェクト）の幅・高さ・面積の情報等から、オブジェクト圧縮を実施する条件を満たしているかを判定する（Ｓ６０１）。例えば、面積が非常に小さいＰＤＬ画像であれば、オブジェクト圧縮によって中間データのサイズを削減するメリットよりも、ＰＤＬ画像を圧縮するコスト、そして圧縮画像を展開領域に展開するコストの方が大きくなることによるデメリットの方が大きい。そのため、圧縮条件として、インタプリタ部２０３はＰＤＬ画像が小さい場合には、圧縮しない方が処理全体としてはより適していると判断する。これにより、圧縮判定を実行する。
【００３４】
また、インタプリタ部２０３がＰＤＬ画像を圧縮する手段として非可逆圧縮方式であるＪＰＥＧ形式を利用する場合がある。ＪＰＥＧ形式で圧縮された圧縮画像を展開する場合には、元々のＰＤＬ画像の幅・高さを８ｐｉｘｅｌ単位でパディングする必要があることがある。この時、幅や高さが一定未満である場合には、インタプリタ部２０３ではＪＰＥＧ形式で圧縮しない方がＤＬサイズを小さくできる。なお、Ｓ６０１にて用いられる圧縮条件については、上記内容に限定するものではなく、他の条件に従って装置に対する負荷などから判定しても良い。
【００３５】
以上のような圧縮条件を満たさない場合（Ｓ６０１にてＮＯ）、インタプリタ部２０３は着目オブジェクトであるＰＤＬ画像（Ｉｍａｇｅ３３３）を圧縮せずに（ＲＡＷ形式で）、ＤＬＭ２０６内のＲＡＷ画像領域２０８に登録する（Ｓ６０２）。
【００３６】
ＰＤＬ画像がオブジェクト圧縮を実施する条件を満たしている場合（Ｓ６０１にてＹＥＳ）、インタプリタ部２０３は、ＲＩＰデバイス１０６がＰＤＬ画像を出力画像２１２に描画する領域が、出力画像２１２の複数のバンドをまたぐかを判定する（Ｓ６０３）。この判定結果が、ＰＤＬ画像を分割するか否かを判定した結果となる（分割判定）。
【００３７】
ここでいう“バンド”とは、ＲＩＰデバイス１０６で形成する出力画像２１２を副走査方向に任意の高さ単位で分割した領域である。もし、ＰＤＬ画像（Ｉｍａｇｅ３３３）を出力画像２１２において描画しようとする領域が複数のバンドにまたがない場合（Ｓ６０３にてＮＯ）、インタプリタ部２０３は、描画されるバンドで展開領域の不足が起きないかを判定する（Ｓ６１０）。ここでは、着目バンドに含まれるＰＤＬ画像の総和が、最大展開領域サイズを超過しない否かを判定する（第二のサイズ判定手段）。展開領域の不足が起きる場合には（Ｓ６１０にてＮＯ）、インタプリタ部２０３は、ＰＤＬ画像（Ｉｍａｇｅ３３３）を圧縮せずに（ＲＡＷ形式で）、ＤＬＭ２０６内のＲＡＷ画像領域２０８に登録する（Ｓ６０２）。描画バンドで展開領域の不足が生じる場合（Ｓ６１０にてＹＥＳ）、Ｓ６０６へ進む。
【００３８】
ＰＤＬ画像（Ｉｍａｇｅ３３３）を出力画像２１２において描画しようとする領域が、複数のバンドにまたぐ場合には（Ｓ６０３にてＹＥＳ）、インタプリタ部２０３は、それぞれのバンドで展開領域の不足が起きないかを判定する（Ｓ６０４）。ここでは、それぞれのバンド毎に定義している累積展開領域サイズに、追加しようとする描画画像のバンド上の面積を加算した場合に、最大展開領域サイズを超過しないかを判定する（第一のサイズ判定手段）。言い換えると、（着目バンドの累積展開領域のサイズ＋着目バンド上での圧縮画像の展開領域サイズ）≦（最大展開領域サイズ）の関係を満たすか否かを判定する。もし少なくとも１つ以上のバンドで、必要となる展開領域が最大展開領域サイズを超過しない場合には（Ｓ６０４にてＮＯ）、インタプリタ部２０３は、圧縮せずにそのままの形式（ＲＡＷ形式）でＤＬＭ２０６内のＲＡＷ画像領域２０８に登録する（Ｓ６０２）。
【００３９】
最大展開領域サイズを超過する場合には（Ｓ６０４にてＹＥＳ）、インタプリタ部２０３は、ＰＤＬ画像を分割する（Ｓ６０５）。つまり、Ｓ６０３にて、インタプリタ部２０３は、ＲＩＰデバイス１０６が出力画像２１２にＰＤＬ画像（Ｉｍａｇｅ３３３）を描画する領域を求める。そして、Ｓ６０４にてインタプリタ部２０３は、ＰＤＬ画像の描画領域がまたぐ全バンドのいずれかにおいて、必要となる展開領域のサイズが最大展開領域サイズを超過するかを判定する。この時、ＰＤＬ画像の一部だけがバンド上に描画される場合には、その面積も考慮する。そして、ＰＤＬ画像を描画する領域をまたぎ、かつ、全バンドで超過しないと判断された場合（Ｓ６０３およびＳ６０４にてＹＥＳ）、インタプリタ部２０３はバンド境界に合わせてＰＤＬ画像を複数のＰＤＬ画像へ分割する（Ｓ６０５）。
【００４０】
描画画像が複数のバンドをまたがない場合にはＰＤＬ画像に対して、複数のバンドをまたぐ場合には分割したそれぞれのＰＤＬ画像に対して、インタプリタ部２０３はＳ６０７〜Ｓ６０９の処理を行う。インタプリタ部２０３は、ＰＤＬ画像を画像圧縮する（Ｓ６０７）。さらにインタプリタ部２０３は、圧縮画像を圧縮形式でＤＬＭ２０６内の圧縮画像領域２０９に登録をする（Ｓ６０８）。インタプリタ部２０３は、累積展開領域サイズに画像サイズを加算する（Ｓ６０９）。
【００４１】
なお、複数のバンドをまたいで描画されるＰＤＬ画像について分割対象としたが、この条件を例えばより詳細に、２バンドをまたぐＰＤＬ画像を対象としてもよい。もしくは、３以上のバンドをまたぐ描画画像だけを対象としてもよい。また、一定以上の高さをもって描画されるＰＤＬ画像のみを対象としてもよい。いずれの場合も本願発明を有用に活用した例になりうる。
【００４２】
［具体例（その１）］
（従来技術による処理の場合）
ここで、従来技術を用いた場合のインタプリタ部２０３とＲＩＰデバイス１０６の挙動について、図７を用いて補足説明する。最初に、図７（Ａ）を用いて印刷データ７００から、中間データを生成し画像形成するケースを考える。図７（Ａ）に示す印刷データ７００は、画像Ａ７０１、画像Ｂ７０２、画像Ｃ７０３、画像Ｄ７０４の４つのＰＤＬ画像として、主走査方向に分割されて扱われるものとする。
【００４３】
インタプリタ部２０３が、オブジェクト圧縮を用いずに中間データを作る例を、中間データ７１０を用いて説明する。なお、説明の簡略化のために画像以外の描画コマンド等の中間データはここでは省略する。インタプリタ部２０３は、画像Ａ７０１、画像Ｂ７０２、画像Ｃ７０３、画像Ｄ７０４に対して、中間データ７１０として描画画像Ａ７１１、描画画像Ｂ７１２、描画画像Ｃ７１３、描画画像Ｄ７１４それぞれを生成する。ＲＩＰデバイス１０６が印刷データ７００上のスキャンライン７０５の位置に相当する出力画像を形成する場合には、中間データ７１０上の描画画像Ａ７１１を参照する。また、ＲＩＰデバイス１０６が印刷データ７００上のスキャンライン７０６の位置に相当する出力画像を形成する場合には、中間データ７１０上の描画画像Ｂ７１２を参照する。
【００４４】
これに対して、インタプリタ部２０３が、オブジェクト圧縮を用いて中間データ７１０を作る場合の例を、中間データ７２０を用いて説明する。インタプリタ部２０３は、描画画像Ａ７１１、描画画像Ｂ７１２、描画画像Ｃ７１３、描画画像Ｄ７１４それぞれを圧縮した圧縮画像ａ７２１、圧縮画像ｂ７２２、圧縮画像ｃ７２３、圧縮画像ｄ７２４を含む中間データ７２０を生成する。更に、インタプリタ部２０３は、圧縮画像を展開する展開領域７２５を確保する。インタプリタ部２０３が中間データを生成した時点、すなわち、ＲＩＰデバイス１０６が画像形成処理を開始する前の段階では、展開領域７２５には画像が含まれない。
【００４５】
ＲＩＰデバイス１０６が中間データ７２０を元に、印刷データ７００上のスキャンライン７０５を含めた画像Ａ７０１上のスキャンライン群において出力画像を形成する場合を考える。この時、ＲＩＰデバイス１０６は展開領域７２５上に圧縮画像ａ７２１を展開し、描画画像Ａ７２７として参照する。このときの状態を中間データ７２６に示す。これによりＲＩＰデバイス１０６は、画像Ａ７０１に対するスキャンライン上の描画画像Ａ７１１として参照でき、出力しようとするスキャンラインに対応する画像の形成が可能である。
【００４６】
次にＲＩＰデバイス１０６が中間データ７２０を元に、印刷データ７００上のスキャンライン７０６を含めた画像Ｂ７０２上のスキャンライン群に相当する出力画像を形成する場合を考える。この時、ＲＩＰデバイス１０６は、展開領域７２５上に圧縮画像ｂ７２２を展開し、描画画像Ｂ７２９として参照する。このときの状態を中間データ７２８に示す。これによりＲＩＰデバイス１０６は、画像Ｂ７０２に対するスキャンライン上の描画画像Ｂ７１２として参照でき、出力しようとするスキャンラインに対応する画像の形成することができる。
【００４７】
この展開領域７２５は、インタプリタ部２０３が複数の圧縮画像の展開先として使いまわすことが可能である。よって、展開領域７２５は各スキャンラインで必要となる展開領域サイズの総和に相当するサイズが必要となる。つまり、ここでの例では、圧縮画像ａ７２１〜圧縮画像ｄ７２４のデータサイズと展開領域７２５のデータサイズとの和となる。なお、展開領域７２５は、圧縮画像のうち、展開した際に最もサイズが大きくなる画像のサイズを格納できるようにすることが想定される。このような、圧縮画像に対する展開領域の使いまわしにより、多くの場合では、元々のＰＤＬ画像のサイズの総和よりも小さい事が期待できる。よって、オブジェクト圧縮する事によって、多くの場合必要となる中間データのサイズを小さくすることが可能となる。
【００４８】
次に、インタプリタ部２０３がオブジェクト圧縮を用いて中間データを作る別の例を、図７（Ｂ）を用いて、印刷データ７３０に対する中間データ７４０を用いて説明する。図７（Ｂ）に示す印刷データ７３０は、画像Ａ７３１、画像Ｂ７３２、画像Ｃ７３３、画像Ｄ７３４の４つのＰＤＬ画像として、副走査方向（スキャンラインに直交）に分割されて扱われるものとする。インタプリタ部２０３は、画像Ａ７３１、画像Ｂ７３２、画像Ｃ７３３、画像Ｄ７３４を圧縮した圧縮画像ａ７４１、圧縮画像ｂ７４２、圧縮画像ｃ７４３、圧縮画像ｄ７４４を含む中間データ７４０を生成する。更に、インタプリタ部２０３は、圧縮画像を展開する展開領域７４５を確保する。インタプリタ部２０３が中間データを生成した時点、すなわち、ＲＩＰデバイス１０６が画像形成処理を開始する段階では、展開領域７４５には画像が含まれない。
【００４９】
ＲＩＰデバイス１０６が中間データ７４０を元に、スキャンライン７３５を含めた画像Ａ７３１、画像Ｂ７３２、画像Ｃ７３３、画像Ｄ７３４上のスキャンライン群に対応する画像を形成する場合を考える。この条件は、スキャンライン７３６でも同様である。スキャンラインアルゴリズムでは、画像形成しようとするスキャンライン上に存在する全ての描画画像が参照可能である必要がある。よって、ＲＩＰデバイス１０６は、展開領域７４５に圧縮画像ａ７４１、圧縮画像ｂ７４２、圧縮画像ｃ７４３、圧縮画像ｄ７４４を描画画像Ａ７５１、描画画像Ｂ７５２、描画画像Ｃ７５３、描画画像Ｄ７５４として展開する。そして、ＲＩＰデバイス１０６は、描画画像Ａ７５１、描画画像Ｂ７５２、描画画像Ｃ７５３、描画画像Ｄ７５４を参照する事で、出力するスキャンラインに対応する画像を形成する。このときの状態を中間データ７５０に示す。
【００５０】
しかしこの場合、画像の描画を行うために、ＲＩＰデバイス１０６は同一スキャンライン上に存在する描画画像Ａ７５１、描画画像Ｂ７５２、描画画像Ｃ７５３、描画画像Ｄ７５４を同時に参照できる必要がある。そのために、図７（Ａ）に示したオブジェクト圧縮の例のように展開領域を圧縮画像毎に使いまわすことができない。よって、中間データ７４０内の展開領域７４５には、オブジェクト圧縮を用いない場合の描画画像Ａ７１１、描画画像Ｂ７１２、描画画像Ｃ７１３、描画画像Ｄ７１４の合計と同じサイズが必要となる。またそれに加えて中間データ７４０には、圧縮画像ａ７４１、圧縮画像ｂ７４２、圧縮画像ｃ７４３、圧縮画像ｄ７４４も一緒に保持する必要がある。以上により、インタプリタ部２０３でオブジェクト圧縮を適用して中間データを生成しても、中間データのサイズがオブジェクト圧縮を適用しない場合よりも大きくなってしまう。
【００５１】
（本願発明による処理の場合）
次に、図８を用いて、図７（Ｂ）に示した印刷データ７３０に対して本願発明を適用した場合の挙動を説明する。ここでは出力画像を４つのバンドに分割するものとする。例えば、インタプリタ部２０３では、複数のバンドをまたぐ画像Ａ８１０を分割画像Ａ１〜分割画像Ａ４（８１１〜８１４）にバンド境界で分割する。画像Ｂ８２０、画像Ｃ８３０、画像Ｄ８４０についても同様に、４つの画像に分割する。そして印刷データ７３０の内容から分割画像を同じ出力結果が得られるように再構築し、印刷データ８５０として扱う。例えば、画像Ａ８１０を表現していた領域については、分割画像Ａ１〜Ａ４（８５１〜８５４）で表現するように置き換える。同様に、画像Ｂ８２０、画像Ｃ８３０、画像Ｄ８４０も、分割画像Ｂ１〜Ｂ４（８５５〜８５８）、分割画像Ｃ１〜Ｃ４（８５９〜８６２）、分割画像Ｄ１〜Ｄ４（８６３〜８６６）で表現する。更に、分割したＰＤＬ画像はそれぞれ圧縮され、中間データ８７０内の圧縮分割画像ａ１〜ｄ４（８７２〜８８７）として保持される。
【００５２】
ＲＩＰデバイス１０６が中間データ８７０を元に、印刷データ８５０上のスキャンライン８６７に対応する出力画像を形成する場合を考える。スキャンライン８６７上には、分割画像Ａ１（８５１）、分割画像Ｂ１（８５５）、分割画像Ｃ１（８５９）、分割画像Ｄ１（８６３）が存在する。この場合、ＲＩＰデバイス１０６は、展開領域８７１上に圧縮分割画像ａ１（８７２）を描画画像Ａ１（８９１）として、圧縮分割画像ｂ１（８７６）を描画画像Ｂ１（８９２）として展開する。更に、ＲＩＰデバイス１０６は、展開領域８７１上に圧縮分割画像ｃ１（８８０）を描画画像Ｃ１（８９３）として、圧縮分割画像ｄ１（８８４）を描画画像Ｄ１（８９１）として展開する。展開したときの状態を中間データ８９０として示す。これによりＲＩＰデバイス１０６は、スキャンライン上の描画画像が全て参照できるため、出力しようとするスキャンラインに対する画像の形成をすることができる。
【００５３】
ＲＩＰデバイス１０６が中間データ８７０を元に、印刷データ８５０上のスキャンライン８６８に対応する出力画像を形成する場合を考える。スキャンライン８６８上には、分割画像Ａ２（８５２）、分割画像Ｂ２（８５６）、分割画像Ｃ２（８６０）、分割画像Ｄ２（８６４）が存在している。この場合、ＲＩＰデバイス１０６は、展開領域８７１上に圧縮画像ａ２（８７３）を描画画像Ａ２（８９６）として、圧縮画像ｂ２（８７７）を描画画像Ｂ２（８９７）として展開する。更に、ＲＩＰデバイス１０６は、展開領域８７１上に圧縮画像ｃ２（８８１）を描画画像Ｃ２（８９８）として、圧縮画像ｄ２（８８５）を描画画像Ｄ２（８９９）として展開する。展開したときの状態を中間データ８９５として示す。これによりＲＩＰデバイス１０６は、スキャンライン上の描画画像が全て参照できるため、出力しようとするスキャンラインに対応する画像を形成することができる。
【００５４】
［具体例（その２）］
本実施形態に係るインタプリタ部２０３で行われる更なる具体例を、図９と図１０を用いて説明する。なお、図９中の画像Ａ９０１、画像Ｂ９０２、画像Ｃ９０３、画像Ｄ９０４、画像Ｅ９０５については、図７，８で用いた画像Ａ〜Ｄとは別のものである。また、説明の簡略化のために、実際の中間データに含まれるＲＩＰデバイス１０６が解釈可能な描画コマンドなどの要素については省略し、画像部分にのみ注目している。
【００５５】
図９（Ａ）は、ＰＤＬ画像として画像Ａ９０１、画像Ｂ９０２、画像Ｃ９０３、画像Ｄ９０４、画像Ｅ９０５が描画されている、印刷データ内のページ９００を表している。図９（Ｂ）の表９３０に示すように、画像Ａ９０１は２０ＭＢ、画像Ｂ９０２は２ＭＢ、画像Ｃ９０３は１ＭＢ、画像Ｄ９０４は１．５ＭＢ、画像Ｅ９０５は０．５ＭＢのサイズがあるものとする。ここでは、それぞれの画像に対する圧縮率を１／２０とする。つまり、図９（Ｃ）の表９４０に示すように、画像Ａ９０１を圧縮して得られる圧縮画像ａは１ＭＢである。同様に、画像Ｂ９０２を圧縮して得られる圧縮画像ｂは０．１ＭＢである。画像Ｃ９０３を圧縮して得られる圧縮画像ｃは０．０５ＭＢである。画像Ｄ９０４を圧縮し得られる圧縮画像ｄは０．０７ＭＢである。画像Ｅ９０５を圧縮して得られる圧縮画像ｅは０．０２ＭＢである。
【００５６】
オブジェクト圧縮を行わない場合に、インタプリタ部２０３が行う中間データサイズ算出例を図９（Ｂ）の表９３０に示す。この場合には単純に画像のサイズを積算しただけの中間データサイズが必要になる。よって、ページ９００に対しては、２０．０ＭＢ＋２．０ＭＢ＋１．０ＭＢ＋１．５ＭＢ＋０．５ＭＢ＝２５．０ＭＢ分の中間データの領域を確保しなければならない。
【００５７】
（従来技術による中間データサイズ）
ここで、従来技術による、インタプリタ部２０３がオブジェクト圧縮を用いて中間データを作成する場合の中間データサイズ算出例を、図９（Ｄ）の表９５０に示す。表９５０には、圧縮画像ａ、圧縮画像ｂ、圧縮画像ｃ、圧縮画像ｄ、圧縮画像ｅのサイズが示されている。また、図９（Ａ）に示すように、ページ９００内の区間９１０〜９１８で必要となる最大の展開領域サイズが示されている。
【００５８】
例えば、図９（Ａ）に示すページ９００において、区間９１０、９１６、９１８には画像が含まれないため展開領域は不要である。区間９１１、９１３、９１５は画像Ａ９０１のみが含まれるため、２０．０ＭＢの展開領域が必要である。区間９１２では画像Ａ９０１と画像Ｂ９０２とが含まれるため、２０．０ＭＢ＋２．０ＭＢ＝４．０ＭＢの展開領域が必要である。区間９１４では画像Ａ９０１、画像Ｃ９０３、および画像Ｄ９０４が含まれるため、２０．０ＭＢ＋１．０ＭＢ＋１．５ＭＢ＝２２．５ＭＢの展開領域が必要である。区間９１７では画像Ｅ９０５が含まれるため、０．５ＭＢの展開領域が必要である。印刷データ７００を処理するためには、それぞれの区間で必要となる最大の展開領域サイズを確保する必要があるため、展開領域としては２２．５ＭＢを確保する必要がある。圧縮画像と展開領域を合計し、１．０ＭＢ＋０．１ＭＢ＋０．０５ＭＢ＋０．０７ＭＢ＋０．０２ＭＢ＋２２．５ＭＢ＝２３．７２ＭＢが、中間データのサイズとして算出される。
【００５９】
ここで、インタプリタ部２０３で生成された中間データのサイズにおいて、オブジェクト圧縮を適用する場合と、しない場合とを比較すると、そのサイズ比は２３．７２ＭＢ／２５．０ＭＢ＝９４．８８％となる。よって、この例では従来技術を用いてオブジェクト圧縮を適用しても、殆ど中間データのサイズが削減できていない。
【００６０】
（本願発明による中間データサイズ）
次に、図１０を用いて、本発明に係るインタプリタ部２０３がオブジェクト圧縮を用いて中間データを作成する場合での中間データサイズ算出例を説明する。図１０（Ａ）に示すページ１０００を、ここではＢａｎｄ１（１０１１）、Ｂａｎｄ２（１０１２）、Ｂａｎｄ３（１０１３）、Ｂａｎｄ４（１０１４）の４バンドに分割するものとする。
【００６１】
インタプリタ部２０３により、画像Ａ９０１から画像Ｅ９０５までを順番に描画していく中での累積展開領域サイズの変化を図１０（Ｄ）の表１０５０に示す。ここで累積展開領域サイズとは、処理する着目バンドに含まれる画像を展開する際に必要となる展開領域のサイズの総和を意味する。以下に表１０５０に示した変化をより詳細に説明する。
【００６２】
１）初期状態：インタプリタ部２０３は、それぞれのバンドの累積展開領域サイズを０に初期化する。また、この例では、ここでは最大展開領域サイズを１０ＭＢとする。
【００６３】
２）画像Ａ９０１：インタプリタ部２０３は、画像Ａ９０１は圧縮条件を満たし、かつ、複数のバンドをまたいでいると判断する。インタプリタ部２０３は、画像Ａ９０１を仮に分割画像Ａ１〜Ａ４（１００１〜１００４）に分割すると仮定してバンド毎の累積展開領域サイズを超過するかを判定する。この例において、画像Ａ９０１を分割した場合には、分割画像Ａ１（１００１）と分割画像Ａ４（１００４）は２．０ＭＢ、分割画像Ａ２（１００２）と分割画像Ａ３（１００３）は８．０ＭＢのサイズに分割されることになる。また、分割画像Ａ１〜Ａ４（１００１〜１００４）が圧縮された状態で描画されると、各バンドにおいて必要となる累積展開領域サイズはそれぞれ、Ｂａｎｄ１（１０１１）では２ＭＢ、Ｂａｎｄ２（１０１２）では８ＭＢとなる。また、Ｂａｎｄ３（１０１３）では８ＭＢ、Ｂａｎｄ４（１０１４）では２ＭＢとなる。これら全てのバンドにおいて、分割画像Ａ１〜Ａ４に対する累積展開領域サイズは、最大展開領域サイズ１０ＭＢを超過しない。よって、インタプリタ部２０３は、画像Ａ９０１が分割後それぞれを圧縮して格納する事が可能であると判断する。よって、インタプリタ部２０３は、画像Ａ９０１が分割画像Ａ１〜Ａ４（１００１〜１００３）に分割され、さらに圧縮画像ａ１〜ａ４として圧縮した後、中間データとして保持する。
【００６４】
３）画像Ｂ９０２：画像Ｂ９０２は圧縮条件を満たすが、複数のバンドをまたいではいない。そこで、インタプリタ部２０３は、画像Ｂ９０２がＢａｎｄ２（１０１２）上に圧縮形式で描画するために中間データに保持できるかを判定する。このとき、Ｂａｎｄ２（１０１２）には既に分割画像Ａ２（１００２）を展開できるだけの８ＭＢの展開領域が必要である。更に２ＭＢのサイズの画像Ｂ９０２を描画しても、最大展開領域サイズ１０ＭＢを超過しない。よってインタプリタ部２０３は、画像Ｂ９０２を圧縮画像ｂに圧縮した後、中間データとして保持する。
【００６５】
４）画像Ｃ９０３：画像Ｃ９０３は圧縮条件を満たすが、複数のバンドをまたいではいない。インタプリタ部２０３は、画像Ｃ９０３がＢａｎｄ３（１０１３）上に圧縮形式で描画するために中間データに保持できるかを判定する。Ｂａｎｄ３（１０１３）には既に分割画像Ａ３（１００３）を展開できるだけの８ＭＢの展開領域が必要である。更に１ＭＢのサイズの画像Ｃ９０３を描画しても、最大展開領域サイズ１０ＭＢを超過しない。よって、インタプリタ部２０３は、画像Ｃ９０３を圧縮画像ｃに圧縮した後、中間データとして保持する。
【００６６】
５）画像Ｄ９０４：画像Ｄ９０４は圧縮条件を満たすが、複数のバンドをまたいではいない。インタプリタ部２０３は、画像Ｄ９０４がＢａｎｄ３（１０１３）上に圧縮形式で描画するために中間データに保持できるかを判定する。Ｂａｎｄ３（１０１３）には既に分割画像Ａ３（１００３）と画像Ｃ９０３を展開できるだけの９ＭＢの展開領域が必要である。更に１．５ＭＢのサイズの画像Ｄ９０４を描画しようとすると、最大展開領域サイズ１０ＭＢを超過してしまう。よって、インタプリタ部２０３は、画像Ｄ９０４を圧縮せずにそのままの形式で、中間データとして保持する。
【００６７】
６）画像Ｅ９０５：画像Ｅ９０５は圧縮条件を満たすが、複数のバンドをまたいではいない。インタプリタ部２０３は、画像Ｅ９０５がＢａｎｄ４（１０１４）上に圧縮形式で描画するために中間データに保持できるかを判定する。Ｂａｎｄ４（１０１４）には既に分割画像Ａ４（１００４）を展開できるだけの２ＭＢの展開領域が必要である。更に０．５ＭＢのサイズの画像Ｅ９０５を描画しても、最大展開領域サイズ１０ＭＢを超過しない。よって、インタプリタ部２０３は、画像Ｅ９０５を圧縮画像ｅに圧縮した後、中間データとして保持する。
【００６８】
７）最終状態：以上の結果をまとめると、それぞれのバンドで利用される展開領域は、Ｂａｎｄ１（１０１１）が２ＭＢ、Ｂａｎｄ２（１０１２）が１０ＭＢ、Ｂａｎｄ３（１０１３）が９ＭＢ、Ｂａｎｄ４（１０１４）が２．５ＭＢとなる。このサイズは最初の最大展開領域サイズを超過する事は無い。
【００６９】
以上をまとめたものが、図１０（Ｃ）に示す表１０４０の中間データとなる。この場合、中間データには、圧縮画像ａ１〜ａ４、ｂ、ｃ、ｄ、ｅと、ＲＡＷ画像Ｄとが含まれる。また、展開領域のサイズも含まれる。中間データサイズとしては、０．１ＭＢ＋０．４ＭＢ＋０．４ＭＢ＋０．１ＭＢ＋０．１ＭＢ＋０．０５ＭＢ＋０．０２ＭＢ＋１．５ＭＢ＋１０．０ＭＢ＝１２．６７ＭＢとなる。ここで、オブジェクト圧縮を適用しない場合と比較すると、１２．６７ＭＢ／２５．０ＭＢ＝５０．６７％となり、ここで示した例の場合、オブジェクト圧縮を適用する事で中間データのサイズを半減できている。
【００７０】
また、別の見方をすると、本発明で必要となる展開領域は各ページ・各バンドで共有する事が可能である。例えば、ページに含まれる画像を変えて１０ページを印刷する場合を考える。従来のオブジェクト圧縮では図９の例では、２３．７２ＭＢ×１０ページ＝２３７．２ＭＢの中間データを生成する事になる。本発明を適用した場合には、２．６７ＭＢ×１０ページ＋１０ＭＢ＝３６．７ＭＢで処理する事が可能となる。これにより、３６．７ＭＢ／２３７．２ＭＢ＝１５．４７％に中間データのサイズを縮小させることが可能であると言える。これは、ページ数が増えるごとに、より顕著な差となる。
【００７１】
ここでは、１ページの出力画像を４バンドに分割する例を示したが、更に多くのバンドに分割する形態で実現しても良い。なお、分割数を増やすことで必要となる最大展開領域サイズは小さくすることはできるが、画像を分割する処理は増加する。よって、分割数は対象となる製品で用いられる印刷データの傾向に応じて適切な値を求める必要がある。
【００７２】
以上、本実施形態により、ＲＩＰは展開領域を使いまわす事ができ、印刷データに対する処理で必要となる展開領域サイズを抑えることが可能となる。
【００７３】
＜実施形態２＞
実施形態２としては、インタプリタ部２０３で行われる、更なるメモリ削減手段としてＰＤＬデータの先読みによるバンド高さ調整について説明する。
【００７４】
インタプリタ処理の実行手段をデータハンドリングの観点で大別すると、シーケンシャルアクセス方式とランダムアクセス方式に分けられる。シーケンシャルアクセス方式とは、インタプリタ部２０３はネットワークアダプタ１０４から送られる印刷データ２１１を一部ずつ解釈しながら、利用し終わった部分を破棄する手段である。これにより、プリンタはメモリ１０２よりも大きな印刷データ２１１を処理することが可能になっている。
【００７５】
ランダムアクセス方式とは、インタプリタ部２０３が記憶装置１０５上の印刷データ２１１を解釈する手段である。例えば、ジョブ制御部２０２やインタプリタ部２０３がジョブ受信部２０１から送られる印刷データ２１１を記憶装置１０５上にスプールしてもよい。もしくは、既に記憶装置１０５上にスプールされている印刷データ２１１を印刷対象としてもよい。あるいは、ＵＳＢメディアなどの外部ストレージを記憶装置１０５として接続してもよい。
【００７６】
ランダムアクセス方式では、インタプリタ処理を複数回行う事が可能である。よって、これを利用して印刷データ２１１の特徴を把握し、より最適な条件下での中間データを生成する事も可能である。実施形態２としては、この場合の処理について説明を行う。
【００７７】
［処理フロー］
図１１は、バンドの高さの最適化処理の流れを示している。ここでのバンドの高さとは、スキャンラインにおける副走査方向の幅を指す。この処理は実施形態１にて述べたインタプリタ部２０３のインタプリタ処理（図４）を行う前に行うべき処理である。本処理フローは、プリンタ１００のプロセッサ１０１が、記憶部である記憶装置１０５に保持されたプログラムを読み出し、実行することにより実現される。
【００７８】
インタプリタ部２０３では、ジョブ受信部２０１を介して印刷データ内のコマンドを読み込む（Ｓ１１０１）。なお、ここで印刷データに含まれるコマンドは実施形態１と同様のものを扱う。インタプリタ部２０３は、読み込んだコマンドの種別に応じて次に読み飛ばし処理を決定する（Ｓ１１０２）。
【００７９】
インタプリタ部２０３は読み込んだコマンドが、「ジョブ開始」コマンドであればジョブ開始読み飛ばし処理を実行する（Ｓ１１１２）。インタプリタ部２０３は、読み込んだコマンドが、「ページ開始」コマンドであればページ開始読み飛ばし処理を実行する（Ｓ１１１３）。インタプリタ部２０３は読み込んだコマンドが、「オブジェクト描画」コマンドであればオブジェクト描画読み飛ばし処理を実行する（Ｓ１１１６）。Ｓ１１１６のオブジェクト描画読み飛ばし処理の詳細については、図１２を用いて後述する。
【００８０】
インタプリタ部２０３は、読み込んだコマンドが、「ページ終了」コマンドであればバンド高さ決定処理（Ｓ１１１４）と、ページ終了読み飛ばし処理（Ｓ１１１５）を実行する。Ｓ１１１４のバンド高さ決定処理については、図１３を用いて後述する。ジョブ開始コマンド、ページ開始コマンド、オブジェクト描画コマンド、ページ終了コマンドのいずれかのコマンドを実行した場合には、まだジョブが継続しているので、インタプリタ部２０３は、再びコマンドの読み込み処理（Ｓ１１０１）に戻る。インタプリタ部２０３は、読み込んだコマンドが、「ジョブ終了」であればジョブ読み飛ばし処理を実行する（Ｓ１１１１）。Ｓ１１１１の処理の後、インタプリタ部２０３は、引き続き図４に示すインタプリタ処理を実行する。
【００８１】
本処理フローにおいて、インタプリタ部２０３は、印刷データ２１１の特徴を導く。その処理の流れを図１２と図１３を用いて説明する。図１２は、図１１のオブジェクト描画読み飛ばし処理（Ｓ１１１６）の詳細である。図１３は、図１１のバンド高さ決定処理（Ｓ１１１４）の詳細である。なお、図１１のフローチャートにおいて、Ｓ１１１１、Ｓ１１１２、Ｓ１１１３、Ｓ１１１５の読み飛ばし処理は、読み込んだコマンドをスキップする処理を意味する。
【００８２】
（オブジェクト描画読み飛ばし処理）
オブジェクト描画読み飛ばし処理（Ｓ１１１６）では、インタプリタ部２０３は、描画オブジェクトに指定されている全Ｏｐｅｒａｎｄに対してＳ１２０２〜Ｓ１２０４の処理を繰り返す（Ｓ１２０１）。インタプリタ部２０３は、着目しているＯｐｅｒａｎｄのＯｐｅｒａｎｄ種別がＩｍａｇｅ  Ｏｐｅｒａｎｄであり（Ｓ１２０２）、かつ、Ｏｐｅｒａｎｄが圧縮条件を満たしているか（Ｓ１２０３）の判定を行う。二つの条件を共に満たす場合には（Ｓ１２０２およびＳ１２０３にてＹＥＳ）、インタプリタ部２０３は、描画位置、サイズおよびＩｍａｇｅ  Ｏｐｅｒａｎｄに関連付けられるＰＤＬ画像のサイズを記録する（Ｓ１２０４）。
【００８３】
（バンド高さ決定処理）
バンド高さ決定処理（Ｓ１１１４）では、インタプリタ部２０３は、まず初期バンドを生成する（Ｓ１３０１）。ここでの初期バンドとして、単純にページを幾つかの高さ毎に区切っただけのものを用いる事ができる。次に、インタプリタ部２０３は、それぞれのバンド単位で定義される、累積展開領域サイズを“０”に初期化する（Ｓ１３０２）。インタプリタ部２０３は、圧縮対象となっているページ内の全ＰＤＬ画像に対してＳ１３０４〜Ｓ１３０５の処理を繰り返す（Ｓ１３０３）。インタプリタ部２０３は、全バンドに対して、Ｓ１３０５の処理を繰り返す（Ｓ１３０４）。インタプリタ部２０３は、着目するバンドの累積展開領域サイズ上に描画する場合に、そこで必要となる展開領域サイズを加算する（Ｓ１３０５）。これらの処理をページ内の全ＰＤＬ画像に繰り返すことで、各バンドを処理するのに必要な累積展開領域サイズを求める事が出来る。
【００８４】
圧縮対象の全ＰＤＬ画像に対して、Ｓ１３０３〜Ｓ１３０５の処理が完了した後、インタプリタ部２０３は、再実行フラグを“ＦＡＬＳＥ”とする（Ｓ１３０６）。この再実行フラグはバンドの状態が変化した場合に、再度、最適化処理を実行するかを判定するものである。インタプリタ部２０３は、全バンドに対してＳ１３０８〜Ｓ１３１３の処理を繰り返す（Ｓ１３０７）。インタプリタ部２０３は、着目バンドの累積展開領域サイズが最大展開領域サイズを超過しているかを判定する（Ｓ１３０８）。もし累積展開領域サイズが最大展開領域サイズを超過している場合には（Ｓ１３０８にてＹＥＳ）、インタプリタ部２０３は、その着目バンドを分割する（Ｓ１３０９）。なお、ここでの着目バンドの分割は、２つに等分する例を説明するが、分割の方法はこれに限定するものではない。更にインタプリタ部２０３は、再実行フラグを“ＴＲＵＥ”にする（Ｓ１３１０）。
【００８５】
インタプリタ部２０３は、更に着目バンドの累積展開領域サイズと、その着目バンドの１つ前に隣接するバンドの累積展開領域サイズの合計が、最大展開領域サイズ以下となるかを判定する（Ｓ１３１１）。もし合計した累積展開領域サイズが、最大展開領域サイズ以下である場合には（Ｓ１３１１にてＹＥＳ）、インタプリタ部２０３は、着目バンドとその１つ前のバンドとを結合する（Ｓ１３１２）。更に、インタプリタ部２０３は、再実行フラグを“ＴＲＵＥ”にする（Ｓ１３１３）。
【００８６】
これらの処理を、インタプリタ部２０３がページ内の全バンドに繰り返すことで、各バンドを処理するために累積展開領域サイズが不足するバンドは分割され、前のバンドと合わせても処理可能なバンドは結合されることで最適化がなされる。
【００８７】
全バンドに対してＳ１３０７〜Ｓ１３１３の処理が完了した後、インタプリタ部２０３は、再実行フラグが“ＴＲＵＥ”となっているかどうかを判定する（Ｓ１３１４）。再実行フラグが“ＴＲＵＥ”である場合には（Ｓ１３１４にてＹＥＳ）、インタプリタ部２０３は、再度、累積展開領域サイズの初期化（Ｓ１３０２）から処理を再実行する。再実行フラグが“ＦＡＬＳＥ”であれば（Ｓ１３１４にてＮＯ）、ページ上の全てのバンドにおいて累積展開領域サイズが、最大展開領域サイズ内に収まる。よって、インタプリタ部２０３は、この時点で決定しているバンド高さ条件を利用して、インタプリタ処理を行う。
【００８８】
［具体例］
図１４を用いて、この処理の具体的な数値例を示す。この例では、最大累積展開領域サイズを１０ＭＢとする。
【００８９】
図１４（Ａ）において、まず初期バンドを生成した状態をページ１４００に示す。ページ１４００は、４つのバンドとしてＢａｎｄ１〜４（１４３１〜１４３１）が定義され、バンドをまたぐ背景の画像Ａが画像Ａ１〜Ａ４（１４０１〜１４０４）に分割して処理がなされることになる。更に前景となる画像として、ページ１４００には、画像Ｂ１４０５、画像Ｃ１４０６、画像Ｄ１４０７、画像Ｅ１４０８が含まれる。
【００９０】
この時に各バンドで必要となる累積展開領域サイズを表１４９１に示している。Ｂａｎｄ１（１４３１）上では、２ＭＢの画像Ａ１（１４０１）だけが含まれているので、２ＭＢが必要となる。Ｂａｎｄ２（１４３２）上では、８ＭＢの画像Ａ２（１４０２）の上に、２ＭＢの画像Ｂ１４０５が含まれており、８ＭＢ＋２ＭＢ＝１０ＭＢが必要となる。Ｂａｎｄ３（１４３３）上では、８ＭＢの画像Ａ３（１４０３）の上に、１ＭＢの画像Ｃ１４０６と１．５ＭＢの画像Ｄ１４０７が含まれており、１０．５ＭＢが必要となる。Ｂａｎｄ４（１４３４）上では、２ＭＢの画像Ａ４（１４０４）と０．５ＭＢの画像Ｅ１４０８が含まれており、２．５ＭＢが必要となる。
【００９１】
ここで、各バンドの累積展開領域サイズに注目すると、Ｂａｎｄ３（１４３４）が１０．５ＭＢとなっており、最大展開領域サイズである１０ＭＢを超過している。よって、インタプリタ部２０３は、Ｂａｎｄ３（１４３４）をＢａｎｄ３ａ（１４３５）とＢａｎｄ３ｂ（１４３６）とに分割する。分割した状態のバンドを図１４（Ｂ）に示す。この分割した場合のページをページ１４５０として示す。このバンド分割処理によって、画像Ａ３（１４０３）は画像Ａ３ａ（１４５５）と、画像Ａ３ｂ（１４５６）に分割され、それぞれ処理がなされることになる。また、画像Ｃ１４０６は、画像Ｃａ１４５１と画像Ｃｂ１４５２とに分割される。画像Ｄ１４０７は、画像Ｄａ１４５３と画像Ｄｂ１４５４に分割して処理がなされることになる。
【００９２】
この時に各バンドで必要となる累積展開領域サイズを図１４（Ｂ）の表１４９２に示す。ここではバンド分割処理によって生み出されたＢａｎｄ３ａ（１４３５）とＢａｎｄ３ｂ（１４３６）に注目する。Ｂａｎｄ３ａ（１４３５）には、４ＭＢの画像Ａ３ａ（１４５５）、０．５ＭＢの画像Ｃａ１４５１、０．７５ＭＢの画像Ｄａ１４５３が含まれる。よって、Ｂａｎｄ３ａ（１４３５）を処理するのに必要となる累積展開領域サイズは４ＭＢ＋０．５ＭＢ＋０．７５ＭＢ＝５．２５ＭＢとなる。同様に、Ｂａｎｄ３ｂ（１４３６）には、４ＭＢの画像Ａ３ｂ（１４５６）、０．５ＭＢの画像Ｃｂ１４５２、０．７５ＭＢの画像Ｄｂ１４５４が含まれる。よって、Ｂａｎｄ３ｂ（１４３６）を処理するのに必要となる累積展開領域サイズは４ＭＢ＋０．５ＭＢ＋０．７５ＭＢ＝５．２５ＭＢとなる。
【００９３】
この時、Ｂａｎｄ４（１４３４）で必要となる累積展開領域サイズは前述したとおり２．５ＭＢである。これに１つ前のバンドであるＢａｎｄ３ｂ（１４３６）で必要となる累積展開領域サイズ５．２５ＭＢを加えても、最大展開領域サイズ１０ＭＢを超過しない。よって、Ｂａｎｄ３ｂ（１４３６）とＢａｎｄ４（１４３４）を結合し、新しいＢａｎｄ３ｂ＋４（１４３７）を生成する。結合した状態のバンドを図１４（Ｃ）に示す。この結合した場合のページをページ１４７０に示す。このバンド結合処理によって、画像Ａ３ｂ（１４５６）と画像Ａ１４０４は画像Ａ３ｂ＋Ａ４（１４７１）として（まとめて）処理がなされる。
【００９４】
この時に各バンドで必要となる累積展開領域サイズを図１４（Ｃ）の表１４９３に示す。ここではバンド結合処理で生み出されたＢａｎｄ３ｂ＋４（１４３７）に注目する。Ｂａｎｄ３ｂ＋４（１４３７）上には、６ＭＢの画像Ａ３ｂ＋Ａ４（１４７１）、０．５ＭＢの画像Ｃｂ１４５２、０．７５ＭＢの画像Ｄｂ１４５４および０．５ＭＢの画像Ｅ１４０８がある。よって、Ｂａｎｄ３ｂ＋４（１４３７）を処理するのに必要となる累積展開領域サイズは、６ＭＢ＋０．５ＭＢ＋０．７５ＭＢ＋０．５ＭＢ＝７．７５ＭＢとなる。表１４９３に示す各バンドでの累積展開領域サイズはいずれも最大展開領域サイズを超過していない。また、それぞれのバンドとその１つ上のバンドの展開領域サイズの合計はいずれも最大展開領域サイズを超過している。よって、この状態が最適化された１つの結果とみなすことができるので、このバンド条件を用いて、インタプリタ処理がなされる。
【００９５】
以上、本実施形態により、実施形態１の効果に加え、バンドのサイズを変更してより効率的なメモリの使い回しを実現することが可能となる。
【００９６】
＜その他の実施形態＞
上記実施形態において、非常にシンプルな最適化手段によってバンド高さの最適化処理を行ったが、更に複雑な最適化アルゴリズムを用いることも可能である。その基準としては、分割されるＰＤＬ画像（Ｉｍａｇｅ３３３）の個数を最小化する基準を用いることが出来る。あるいは各バンドでの累積展開領域サイズを平均化するようにバンドを分割する基準を用いることが出来る。その他、バンドに含まれるスキャンラインの上段から順番に最大展開領域サイズとなる毎にバンドを分割する基準を用いる事が出来る。
【００９７】
また、印刷データの種別が画像データのダイレクト印刷である場合には、ＤＬＭ２０６に含まれるその他のデータのデータ領域２０７の割合は非常に小さくなる。特定の印刷データ種別に対しては、オブジェクト圧縮をせずにＲＡＷ画像領域２０８に保持できるかを判定することができる。この判定結果を元に、画像データをオブジェクト圧縮対象とするかどうかの判定結果を変えることも可能である。
【００９８】
また、ＰＤＬ画像のサイズが所定の閾値よりも小さい場合は、圧縮の対象や分割の対象から除くようにしても構わない。
【００９９】
オブジェクト圧縮で用いる圧縮率は、実施形態１または２においては、特に言及をしていなかった。インタプリタ部２０３がＰＤＬ画像（Ｉｍａｇｅ３３３）を圧縮する際に、目標サイズ削減率を予め定義し、その値まで圧縮率を変化させながら何度か圧縮する手段を用いることも可能である。本発明を利用する場合には、分割したＰＤＬ画像群については同一の圧縮率を適用する事が望ましい。
【０１００】
加えて、ＲＩＰデバイス１０６の負荷が非常に大きくなるデータを生成した場合に、その負荷の大きいデータより前に生成した中間データの内容をＲＩＰデバイス１０６が一旦背景画像に変換する事で、描画オブジェクト数を削減する処理を行っても良い。本処理を適用する例として、最大展開領域サイズを超過するバンドが多数存在する場合や、１バンドに存在できる描画オブジェクト数に上限を設けて、その上限を超過する場合などが挙げられる。この時、ＲＩＰデバイス１０６が中間データを背景画像に変換する処理を行う。同時に、インタプリタ部２０３は印刷データ２１１を前景オブジェクトに相当する中間データに変換する処理を行う。これにより、ＲＩＰデバイス１０６とインタプリタ部２０３は並行に動作する事が可能となり、最終的に画像を形成する時間を短縮する事ができる。
【０１０１】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2013119242.tif 000003
【図２】
2013119242.tif 000004
【図３】
2013119242.tif 000005
【図４】
2013119242.tif 000006
【図５】
2013119242.tif 000007
【図６】
2013119242.tif 000008
【図７】
2013119242.tif 000009
【図８】
2013119242.tif 000010
【図９】
2013119242.tif 000011
【図１０】
2013119242.tif 000012
【図１１】
2013119242.tif 000013
【図１２】
2013119242.tif 000014
【図１３】
2013119242.tif 000015
【図１４】
2013119242.tif 000016