(57)【特許請求の範囲】
【請求項１】
プリンタドライバを備えるコンピュータとバンドメモリを備える印刷装置とが接続され、前記印刷装置は、前記プリンタドライバによって生成された印刷命令データに応答して描画処理を実行する印刷システムであって、
前記プリンタドライバは、
描画命令を前記印刷装置内部で高速に処理可能な中間言語データ形式に変換するデータ変換手段と、
該データ変換された中間言語データを１ページ分記憶するデータ保持手段と、
該データ保持手段に記憶される中間言語データから、前記印刷装置で描画処理する単位のバンドに各中間言語データのオブジェクトを対応させたバンドリストを作成して、各バンド毎に中間言語データの種類、データサイズ、個数を含むバンド属性情報を収集し、バンド毎のデータサイズを合計することによりそのページに含まれる中間言語データの合計サイズを示すページサイズ情報を収集するデータ情報収集手段と、
１ページ分の中間言語データと、収集されたページサイズ情報と、各バンドのバンド属性情報とを含む印刷命令データを生成する印刷命令データ生成手段とを備え、
前記印刷装置は、
前記プリンタドライバからの印刷命令データを解釈して、前記中間言語データと前記ページサイズ情報と前記バンド属性情報を認識する解釈手段と、
該中間言語データを中間言語データ格納領域に格納する記憶手段と、
前記解釈手段により認識されたページサイズ情報を用いて、中間言語データ格納領域に１ページ分の中間言語データを格納できるか判断する第１判断手段と、
前記解釈手段により認識されたバンド属性情報を用いて、各バンドの描画処理時間を予測し、前記バンドメモリに対する描画処理と印刷部への出力処理を並行して行うバンドレンダリング処理が可能であるか判断する第２判断手段と、
前記第１判断手段及び前記第２判断手段による判断結果として、前記中間言語データ格納領域に１ページ分の中間言語データを格納でき、かつ全バンドがバンドレンダリング処理可能であると判断される場合に、印刷モードとしてバンドレンダリングモードを決定し、前記中間言語データ格納領域に１ページ分の中間言語データを格納できず、また、少なくとも１つのバンドレンダリング処理ができないと判断される場合に、印刷モードとして圧縮印刷モードを決定する印刷モード決定手段と、
各バンドの中間言語データに従い、前記バンドメモリにイメージデータを描画するレンダリング手段と、
該印刷モード決定手段でバンドレンダリングモードが決定された場合に、前記レンダリング手段が第１のバンドメモリにイメージデータを描画する描画処理と、第２のバンドメモリに描画済みのイメージデータを印刷部へ送出する送出処理とを同期して行い、一方、前記印刷モード決定手段で圧縮印刷モードが決定された場合に、前記レンダリング手段が前記バンドメモリに描画したイメージデータを圧縮処理した圧縮データを圧縮データ格納領域に格納し、全バンド分の圧縮データが格納されると、圧縮データを伸張して前記印刷部へ送出するよう制御する制御手段と
を備えることを特徴とする印刷システム。
【請求項２】
前記第１判断手段により、前記中間言語データ格納領域に１ページ分の中間言語データを格納できないと判断される場合に、中間言語データの削減処理を行うことで、中間言語データ格納領域に削減処理後の１ページ分の中間言語データを格納できるか判断する第３判断手段を更に備え、
前記第３判断手段により中間言語データ格納領域に削減処理後の１ページ分の中間言語データが格納できないと判断される場合に、前記印刷モード決定手段は、印刷モードとして圧縮印刷モードを決定することを特徴とする請求項１に記載の印刷システム。
【請求項３】
前記削減処理は、高階調イメージデータに対応する中間言語データのうち、拡縮処理、出力階調変換処理、クリップ処理、可逆圧縮処理のいずれかを実行する処理であることを特徴とする請求項２に記載の印刷システム。
【請求項４】
プリンタドライバを備えるコンピュータとバンドメモリを備える印刷装置とが接続され、前記印刷装置は、前記プリンタドライバによって生成された印刷命令データに応答して描画処理を実行する印刷方法であって、
前記プリンタドライバにおいて、
描画命令を前記印刷装置内部で高速に処理可能な中間言語データ形式に変換するデータ変換ステップと、
該データ変換された中間言語データを１ページ分記憶するデータ保持ステップと、
該データ保持ステップに記憶される中間言語データから、前記印刷装置で描画処理する単位のバンドに各中間言語データのオブジェクトを対応させたバンドリストを作成して、各バンド毎に中間言語データの種類、データサイズ、個数を含むバンド属性情報を収集し、バンド毎のデータサイズを合計することによりそのページに含まれる中間言語データの合計サイズを示すページサイズ情報を収集するデータ情報収集ステップと、
１ページ分の中間言語データと、収集されたページサイズ情報と、各バンドのバンド属性情報とを含む印刷命令データを生成する印刷命令データ生成ステップとを備え、
前記印刷装置において、
前記プリンタドライバからの印刷命令データを解釈して、前記中間言語データと前記ページサイズ情報と前記バンド属性情報を認識する解釈ステップと、
該中間言語データを中間言語データ格納領域に格納する記憶ステップと、
前記解釈ステップにより認識されたページサイズ情報を用いて、中間言語データ格納領域に１ページ分の中間言語データを格納できるか判断する第１判断ステップと、
前記解釈ステップにより認識されたバンド属性情報を用いて、各バンドの描画処理時間を予測し、前記バンドメモリに対する描画処理と印刷部への出力処理を並行して行うバンドレンダリング処理が可能であるか判断する第２判断ステップと、
前記第１判断ステップ及び前記第２判断ステップによる判断結果として、前記中間言語データ格納領域に１ページ分の中間言語データを格納でき、かつ全バンドがバンドレンダリング処理可能であると判断される場合に、印刷モードとしてバンドレンダリングモードを決定し、前記中間言語データ格納領域に１ページ分の中間言語データを格納できず、また、少なくとも１つのバンドレンダリング処理ができないと判断される場合に、印刷モードとして圧縮印刷モードを決定する印刷モード決定ステップと、
各バンドの中間言語データに従い、前記バンドメモリにイメージデータを描画するレンダリングステップと、
該印刷モード決定ステップでバンドレンダリングモードが決定された場合に、前記レンダリングステップが第１のバンドメモリにイメージデータを描画する描画処理と、第２のバンドメモリに描画済みのイメージデータを印刷部へ送出する送出処理とを同期して行い、一方、前記印刷モード決定ステップで圧縮印刷モードが決定された場合に、前記レンダリングステップが前記バンドメモリに描画したイメージデータを圧縮処理した圧縮データを圧縮データ格納領域に格納し、全バンド分の圧縮データが格納されると、圧縮データを伸張して前記印刷部へ送出するよう制御する制御ステップと
を備えることを特徴とする印刷方法。
【請求項５】
前記第１判断ステップにより、前記中間言語データ格納領域に１ページ分の中間言語データを格納できないと判断される場合に、中間言語データの削減処理を行うことで、中間言語データ格納領域に削減処理後の１ページ分の中間言語データを格納できるか判断する第３判断ステップを更に備え、
前記第３判断ステップにより中間言語データ格納領域に削減処理後の１ページ分の中間言語データが格納できないと判断される場合に、前記印刷モード決定ステップは、印刷モードとして圧縮印刷モードを決定することを特徴とする請求項４に記載の印刷方法。
【請求項６】
前記削減処理は、高階調イメージデータに対応する中間言語データのうち、拡縮処理、出力階調変換処理、クリップ処理、可逆圧縮処理のいずれかを実行する処理であることを特徴とする請求項５に記載の印刷方法。
【請求項７】
プリンタドライバを用いて描画命令を印刷装置内部で高速に処理可能な中間データ形式に変換し、変換された中間言語データを１ページ分記憶し、中間言語データから、該印刷装置で描画処理する単位のバンドに各中間言語データのオブジェクトを対応させたバンドリストを作成して、各バンド毎に中間言語データの種類、データサイズ、個数を含むバンド属性情報を収集し、バンド毎のデータサイズを合計することによりそのページに含まれる中間言語データの合計サイズを示すページサイズ情報を収集し、１ページ分の中間言語データと、収集されたページサイズ情報と、各バンドのバンド属性情報とを含む印刷命令データを生成するコンピュータと通信可能であり、バンドメモリを備え、コンピュータに備えられたプリンタドライバによって生成された印刷命令データに応答して描画処理を実行する印刷装置であって、
前記プリンタドライバからの印刷命令データを解釈して、前記中間言語データと前記ページサイズ情報と前記バンド属性情報を認識する解釈手段と、
該中間言語データを中間言語データ格納領域に格納する記憶手段と、
前記解釈手段により認識されたページサイズ情報を用いて、中間言語データ格納領域に１ページ分の中間言語データを格納できるか判断する第１判断手段と、
前記解釈手段により認識されたバンド属性情報を用いて、各バンドの描画処理時間を予測し、前記バンドメモリに対する描画処理と印刷部への出力処理を並行して行うバンドレンダリング処理が可能であるか判断する第２判断手段と、
前記第１判断手段及び前記第２判断手段による判断結果として、前記中間言語データ格納領域に１ページ分の中間言語データを格納でき、かつ全バンドがバンドレンダリング処理可能であると判断される場合に、印刷モードとしてバンドレンダリングモードを決定し、前記中間言語データ格納領域に１ページ分の中間言語データを格納できず、また、少なくとも１つのバンドレンダリング処理ができないと判断される場合に、印刷モードとして圧縮印刷モードを決定する印刷モード決定手段と、
各バンドの中間言語データに従い、前記バンドメモリにイメージデータを描画するレンダリング手段と、
該印刷モード決定手段でバンドレンダリングモードが決定された場合に、前記レンダリング手段が第１のバンドメモリにイメージデータを描画する描画処理と、第２のバンドメモリに描画済みのイメージデータを印刷部へ送出する送出処理とを同期して行い、一方、前記印刷モード決定手段で圧縮印刷モードが決定された場合に、前記レンダリング手段が前記バンドメモリに描画したイメージデータを圧縮処理した圧縮データを圧縮データ格納領域に格納し、全バンド分の圧縮データが格納されると、圧縮データを伸張して前記印刷部へ送出するよう制御する制御手段と
を備えることを特徴とする印刷装置。
【請求項８】
前記第１判断手段により、前記中間言語データ格納領域に１ページ分の中間言語データを格納できないと判断される場合に、中間言語データの削減処理を行うことで、中間言語データ格納領域に削減処理後の１ページ分の中間言語データを格納できるか判断する第３判断手段を更に備え、
前記第３判断手段により中間言語データ格納領域に削減処理後の１ページ分の中間言語データが格納できないと判断される場合に、前記印刷モード決定手段は、印刷モードとして圧縮印刷モードを決定することを特徴とする請求項７に記載の印刷装置。
【請求項９】
前記削減処理は、高階調イメージデータに対応する中間言語データのうち、拡縮処理、出力階調変換処理、クリップ処理、可逆圧縮処理のいずれかを実行する処理であることを特徴とする請求項８に記載の印刷装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、印刷システム及びその印刷方法並びに印刷装置に関し、より詳細には、大量の印刷命令をプリンタに送っても、少ないメモリで高速かつ正常印字を保証することが可能な印刷システム及びその印刷方法並びに印刷装置に関する。
【０００２】
【従来の技術】
図１２は、従来の印刷システムにおける印刷制御方法および印刷処理の流れを説明するための図で、一般的には、従来の印刷システムは、セントロニクスインターフェースといったパラレル通信装置やネットワーク通信装置を介してホスト・コンピュータ２０００と印刷装置２１００とが接続されて印刷システムを構成している。
【０００３】
ホスト・コンピュータ２０００側では、ワードプロセッサや表計算のようなアプリケーションソフトウェア２０１（以下、「アプリ」という）がＷｉｎｄｏｗｓ（米国Ｍｉｃｒｏｓｏｆｔ社の登録商標） のようないわゆる基本ソフトの上で動作している。このアプリにおいて印刷を行う場合は、そのプログラム内から、基本ソフトが提供するいくつかのサブシステムのうちグラフィック・サブ・システムの機能を用いて行う。このグラフィック・サブ・システムは、例えばＷｉｎｄｏｗｓ（登録商標）では、ＧＤＩ２００２（Ｇｒａｐｈｉｃ  ＤｅｖｉｃｅＩｎｔｅｒｆａｃｅ）と呼ばれており、ディスプレイやプリンタに対する画像情報の処理を司っている。
【０００４】
このＧＤＩ２００２は、ディスプレイやプリンタといった各デバイス毎の依存性を吸収するためにデバイスドライバと呼ばれるモジュールを動的にリンクし、それぞれのデバイスに対する出力処理を行う。プリンタに対するこのモジュールは、プリンタドライバ２００３と呼ばれる。このプリンタドライバ２００３では、その能力や機能などに応じて、あらかじめデバイスドライバに実装することが決められているＤＤＩ（Ｄｅｖｉｃｅ  Ｄｒｉｖｅｒ  Ｉｎｔｅｒｆａｃｅ）と呼ばれる関数群を用意する必要がある。アプリのＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）コールをＧＤＩ２００２がデバイスドライバ用にデータ変換を行い、このＤＤＩ関数群が、適宜、ＧＤＩ２００２からコールされて所定の印刷処理が実行されるような仕組みになっている。
【０００５】
ＧＤＩ２００２では、このようにプリンタドライバを介してアプリからの印刷要求をシーケンシャルに処理している。プリンタドライバには、プリンタドライバ内で出力時のイメージデータ形式にまで描画してしまうイメージモードと、描画処理可能なプリンタ向けのコマンドであるＰＤＬ（Ｐｒｉｎｔｅｒ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）モードに大別される。
【０００６】
ここでは、ＰＤＬモード系プリンタドライバについて説明を行う。プリンタドライバ２００３は、ＤＤＩ関数毎にＰＤＬコマンドを生成する構成となっており、生成した印刷命令は、ＧＤＩ２００２、Ｉ／Ｆ２００４を介して印刷装置２１００へ送出される。
【０００７】
印刷命令は、受信バッファ２１０３に一時格納され、コマンド解析部２１０７で解析処理が行われ、解析した結果、プリンタで高速に処理可能な中間言語データが生成されてページメモリ２１０６の中間言語データ格納領域に格納される。中間言語データは、ページメモリ２１０６に１ページ分蓄えられると、処理単位のバンド領域に対応したリスト構造が作られる。このようにして作られるリスト構造をバンドリストという。
【０００８】
バンドリストにつながっている中間言語データにより、ハードウエアまたはソフトウエアにより用意したページメモリ２１０６内のバンドメモリ領域に対して描画処理が行われ、生成されたバンドメモリ上のイメージデータは、エンジン回転に同期してビデオ信号に変換（シップ処理）される。こうしたバンドメモリを２つ用意し、くり返し用いることで、少ないメモリ空間で、描画処理とシップ処理とをエンジンに同期して行うことを可能としている。
【０００９】
【発明が解決しようとする課題】
しかしながら、このような従来の手法では、以下に説明するような問題点もあった。すなわち、ＰＤＬモード系処理においては、ＤＤＩ関数から受け取るデータはすべて描画コマンドとして変換される性質上、理論上印刷命令サイズ、個数に上限はなく、そのため、中間言語データのサイズが中間言語データ格納領域を越える場合や、一部の個所に複雑なまたは多量に描画命令が発行された場合や、描画時間がシップ処理時間よりも大きくなった場合には、同期バンドレンダリング処理が不可能となるといった問題を生じてしまう。
【００１０】
このような問題に対して、ページプリンタは以下のような方法を組み合わせて解決してきた。
【００１１】
その一つはサブクローズ方式であり、この方法によれば、第１のステップとして、中間言語データがページメモリ内に入りきらなくなったときは、それまで格納した中間言語データをバンドメモリを使って描画・圧縮（ＰａｃｋＢｉｔｓ，Ｒｕｎｌｅｎｇｔｈ，ＪＢＩＧ圧縮等）し、生成した圧縮イメージデータを中間言語データとして保持し、第２のステップとして、描画が終了した概格納済み中間言語データは消去することでページメモリの空き領域を増やし、第３のステップとして、空いた領域に入りきっていない中間言語データを格納し、全ページ入りきったら、第１のステップで再登録した圧縮イメージデータを中間言語データとして扱うことで同期バンドレンダリング可能とし、第４のステップとして、これらの処理を行っても１ページ分入りきらないときは、再度第１のステップの処理を実施する。なお、既に登録されている圧縮イメージデータが最初に描画され、その上に新たな中間言語データを描画処理後、バンド全体を再圧縮する。
【００１２】
他の一つはプレバンド方式であり、この方式では、中間言語データがひとつのバンドに集中して存在すると、描画処理がエンジン速度に間に合わないことがある。従って、そのように判断されたバンド領域は、プリンタ内部で中間言語データ登録時に、エンジンを起動する前に用意したバンドメモリ上に描画処理を実施しておく。
【００１３】
これらの方式のうち、サブクローズ方式では、省メモリのために展開したイメージを圧縮して保持するため、複数回繰り返す場合には圧縮・伸張に時間がかかるという問題がある。
【００１４】
また、プレバンド方式では、複数バンドでプレバンド処理が発生すると、プレバンドに必要なメモリ領域を確保できなくなり、サブクローズ方式の処理に移行する原因になりやすいという問題がある。
【００１５】
このように、従来の方式は、同期バンディング処理が可能な場合には省メモリで高速な印刷システムと言えるが、同期バンディング処理が不能なケースが多発する場合には処理に要する時間が長時間化してしまうという問題がある。
【００１６】
本発明は、このような問題に鑑みてなされたもので、その目的とするところは、大量の印刷命令をプリンタに送っても、少ないメモリで高速かつ正常印字を保証することが可能な印刷システム及びその印刷方法並びに印刷装置を提供することにある。
【００１７】
【課題を解決するための手段】
本発明は、このような目的を達成するために、請求項１に記載の発明は、プリンタドライバを備えるコンピュータとバンドメモリを備える印刷装置とが接続され、前記印刷装置は、前記プリンタドライバによって生成された印刷命令データに応答して描画処理を実行する印刷システムであって、前記プリンタドライバは、描画命令を前記印刷装置内部で高速に処理可能な中間言語データ形式に変換するデータ変換手段と、該データ変換された中間言語データを１ページ分記憶するデータ保持手段と、該データ保持手段に記憶される中間言語データから、前記印刷装置で描画処理する単位のバンドに各中間言語データのオブジェクトを対応させたバンドリストを作成して、各バンド毎に中間言語データの種類、データサイズ、個数を含むバンド属性情報を収集し、バンド毎のデータサイズを合計することによりそのページに含まれる中間言語データの合計サイズを示すページサイズ情報を収集するデータ情報収集手段と、１ページ分の中間言語データと、収集されたページサイズ情報と、各バンドのバンド属性情報とを含む印刷命令データを生成する印刷命令データ生成手段とを備え、前記印刷装置は、前記プリンタドライバからの印刷命令データを解釈して、前記中間言語データと前記ページサイズ情報と前記バンド属性情報を認識する解釈手段と、該中間言語データを中間言語データ格納領域に格納する記憶手段と、前記解釈手段により認識されたページサイズ情報を用いて、中間言語データ格納領域に1ページ分の中間言語データを格納できるか判断する第１判断手段と、前記解釈手段により認識されたバンド属性情報を用いて、各バンドの描画処理時間を予測し、前記バンドメモリに対する描画処理と印刷部への出力処理を並行して行うバンドレンダリング処理が可能であるか判断する第２判断手段と、前記第１判断手段及び前記第２判断手段による判断結果として、前記中間言語データ格納領域に１ページ分の中間言語データを格納でき、かつ全バンドがバンドレンダリング処理可能であると判断される場合に、印刷モードとしてバンドレンダリングモードを決定し、前記中間言語データ格納領域に１ページ分の中間言語データを格納できず、また、少なくとも１つのバンドレンダリング処理ができないと判断される場合に、印刷モードとして圧縮印刷モードを決定する印刷モード決定手段と、各バンドの中間言語データに従い、前記バンドメモリにイメージデータを描画するレンダリング手段と、該印刷モード決定手段でバンドレンダリングモードが決定された場合に、前記レンダリング手段が第１のバンドメモリにイメージデータを描画する描画処理と、第２のバンドメモリに描画済みのイメージデータを印刷部へ送出する送出処理とを同期して行い、一方、前記印刷モード決定手段で圧縮印刷モードが決定された場合に、前記レンダリング手段が前記バンドメモリに描画したイメージデータを圧縮処理した圧縮データを圧縮データ格納領域に格納し、全バンド分の圧縮データが格納されると、圧縮データを伸張して前記印刷部へ送出するよう制御する制御手段とを備えることを特徴とする。
【００１８】
また、請求項２に記載の発明は、請求項１に記載の印刷システムにおいて、前記第１判断手段により、前記中間言語データ格納領域に１ページ分の中間言語データを格納できないと判断される場合に、中間言語データの削減処理を行うことで、中間言語データ格納領域に削減処理後の1ページ分の中間言語データを格納できるか判断する第３判断手段を更に備え、前記第３判断手段により中間言語データ格納領域に削減処理後の1ページ分の中間言語データが格納できないと判断される場合に、前記印刷モード決定手段は、印刷モードとして圧縮印刷モードを決定することを特徴とする。
【００１９】
請求項３に記載の発明は、請求項２に記載の印刷システムにおいて、前記削減処理は、高階調イメージデータに対応する中間言語データのうち、拡縮処理、出力階調変換処理、クリップ処理、可逆圧縮処理のいずれかを実行する処理であることを特徴とする。
【００２０】
また、請求項４に記載の発明は、プリンタドライバを備えるコンピュータとバンドメモリを備える印刷装置とが接続され、前記印刷装置は、前記プリンタドライバによって生成された印刷命令データに応答して描画処理を実行する印刷方法であって、前記プリンタドライバにおいて、描画命令を前記印刷装置内部で高速に処理可能な中間言語データ形式に変換するデータ変換ステップと、該データ変換された中間言語データを１ページ分記憶するデータ保持ステップと、該データ保持ステップに記憶される中間言語データから、前記印刷装置で描画処理する単位のバンドに各中間言語データのオブジェクトを対応させたバンドリストを作成して、各バンド毎に中間言語データの種類、データサイズ、個数を含むバンド属性情報を収集し、バンド毎のデータサイズを合計することによりそのページに含まれる中間言語データの合計サイズを示すページサイズ情報を収集するデータ情報収集ステップと、１ページ分の中間言語データと、収集されたページサイズ情報と、各バンドのバンド属性情報とを含む印刷命令データを生成する印刷命令データ生成ステップとを備え、前記印刷装置において、前記プリンタドライバからの印刷命令データを解釈して、前記中間言語データと前記ページサイズ情報と前記バンド属性情報を認識する解釈ステップと、該中間言語データを中間言語データ格納領域に格納する記憶ステップと、前記解釈ステップにより認識されたページサイズ情報を用いて、中間言語データ格納領域に1ページ分の中間言語データを格納できるか判断する第１判断ステップと、前記解釈ステップにより認識されたバンド属性情報を用いて、各バンドの描画処理時間を予測し、前記バンドメモリに対する描画処理と印刷部への出力処理を並行して行うバンドレンダリング処理が可能であるか判断する第２判断ステップと、前記第１判断ステップ及び前記第２判断ステップによる判断結果として、前記中間言語データ格納領域に１ページ分の中間言語データを格納でき、かつ全バンドがバンドレンダリング処理可能であると判断される場合に、印刷モードとしてバンドレンダリングモードを決定し、前記中間言語データ格納領域に１ページ分の中間言語データを格納できず、また、少なくとも１つのバンドレンダリング処理ができないと判断される場合に、印刷モードとして圧縮印刷モードを決定する印刷モード決定ステップと、各バンドの中間言語データに従い、前記バンドメモリにイメージデータを描画するレンダリングステップと、該印刷モード決定ステップでバンドレンダリングモードが決定された場合に、前記レンダリングステップが第１のバンドメモリにイメージデータを描画する描画処理と、第２のバンドメモリに描画済みのイメージデータを印刷部へ送出する送出処理とを同期して行い、一方、前記印刷モード決定ステップで圧縮印刷モードが決定された場合に、前記レンダリングステップが前記バンドメモリに描画したイメージデータを圧縮処理した圧縮データを圧縮データ格納領域に格納し、全バンド分の圧縮データが格納されると、圧縮データを伸張して前記印刷部へ送出するよう制御する制御ステップとを備えることを特徴とする。
【００２１】
また、請求項５に記載の発明は、請求項４に記載の印刷方法において、前記第１判断ステップにより、前記中間言語データ格納領域に１ページ分の中間言語データを格納できないと判断される場合に、中間言語データの削減処理を行うことで、中間言語データ格納領域に削減処理後の1ページ分の中間言語データを格納できるか判断する第３判断ステップを更に備え、
前記第３判断ステップにより中間言語データ格納領域に削減処理後の1ページ分の中間言語データが格納できないと判断される場合に、前記印刷モード決定ステップは、印刷モードとして圧縮印刷モードを決定することを特徴とする。
【００２２】
更に、請求項６に記載の発明は、請求項５に記載の印刷方法において、前記削減処理は、高階調イメージデータに対応する中間言語データのうち、拡縮処理、出力階調変換処理、クリップ処理、可逆圧縮処理のいずれかを実行する処理であることを特徴とする。
【００２３】
請求項７に記載の発明は、プリンタドライバを用いて描画命令を印刷装置内部で高速に処理可能な中間データ形式に変換し、変換された中間言語データを１ページ分記憶し、中間言語データから、該印刷装置で描画処理する単位のバンドに各中間言語データのオブジェクトを対応させたバンドリストを作成して、各バンド毎に中間言語データの種類、データサイズ、個数を含むバンド属性情報を収集し、バンド毎のデータサイズを合計することによりそのページに含まれる中間言語データの合計サイズを示すページサイズ情報を収集し、１ページ分の中間言語データと、収集されたページサイズ情報と、各バンドのバンド属性情報とを含む印刷命令データを生成するコンピュータと通信可能であり、バンドメモリを備え、コンピュータに備えられたプリンタドライバによって生成された印刷命令データに応答して描画処理を実行する印刷装置であって、前記プリンタドライバからの印刷命令データを解釈して、前記中間言語データと前記ページサイズ情報と前記バンド属性情報を認識する解釈手段と、該中間言語データを中間言語データ格納領域に格納する記憶手段と、前記解釈手段により認識されたページサイズ情報を用いて、中間言語データ格納領域に1ページ分の中間言語データを格納できるか判断する第１判断手段と、前記解釈手段により認識されたバンド属性情報を用いて、各バンドの描画処理時間を予測し、前記バンドメモリに対する描画処理と印刷部への出力処理を並行して行うバンドレンダリング処理が可能であるか判断する第２判断手段と、前記第１判断手段及び前記第２判断手段による判断結果として、前記中間言語データ格納領域に１ページ分の中間言語データを格納でき、かつ全バンドがバンドレンダリング処理可能であると判断される場合に、印刷モードとしてバンドレンダリングモードを決定し、前記中間言語データ格納領域に１ページ分の中間言語データを格納できず、また、少なくとも１つのバンドレンダリング処理ができないと判断される場合に、印刷モードとして圧縮印刷モードを決定する印刷モード決定手段と、各バンドの中間言語データに従い、前記バンドメモリにイメージデータを描画するレンダリング手段と、該印刷モード決定手段でバンドレンダリングモードが決定された場合に、前記レンダリング手段が第１のバンドメモリにイメージデータを描画する描画処理と、第２のバンドメモリに描画済みのイメージデータを印刷部へ送出する送出処理とを同期して行い、一方、前記印刷モード決定手段で圧縮印刷モードが決定された場合に、前記レンダリング手段が前記バンドメモリに描画したイメージデータを圧縮処理した圧縮データを圧縮データ格納領域に格納し、全バンド分の圧縮データが格納されると、圧縮データを伸張して前記印刷部へ送出するよう制御する制御手段とを備えることを特徴とする。
【００２４】
また、請求項８に記載の発明は、請求項７に記載の印刷装置において、前記第１判断手段により、前記中間言語データ格納領域に１ページ分の中間言語データを格納できないと判断される場合に、中間言語データの削減処理を行うことで、中間言語データ格納領域に削減処理後の1ページ分の中間言語データを格納できるか判断する第３判断手段を更に備え、前記第３判断手段により中間言語データ格納領域に削減処理後の1ページ分の中間言語データが格納できないと判断される場合に、前記印刷モード決定手段は、印刷モードとして圧縮印刷モードを決定することを特徴とする。
【００２５】
請求項９に記載の発明は、請求項８に記載の印刷装置において、前記削減処理は、高階調イメージデータに対応する中間言語データのうち、拡縮処理、出力階調変換処理、クリップ処理、可逆圧縮処理のいずれかを実行する処理であることを特徴とする。
【００２９】
【発明の実施の形態】
以下に、図面を参照して、本発明の実施の形態について説明する。
【００３０】
図１は、本発明の印刷システムを構成する印刷装置の構成例を説明するための図で、この印刷装置はカラーレーザービームプリンタ（以下、「カラーＬＢＰ」という）であるとして説明する。
【００３１】
このカラーＬＢＰは、６００ドット／インチ（ｄｐｉ）の解像度を有し、各色成分の各画素が８ビットで表現された多値データに基づいて画像記録を行う。この図において、１００はカラーＬＢＰ本体であり、外部に接続されているホスト・コンピュータなどから供給されるプリントデータ（文字コードや画像データ等）及び制御コードから成る印刷情報を入力して記憶するとともに、それらの情報に従って対応する文字パターンやイメージ等を作成し記憶媒体である記録紙上に像を形成する装置である。
【００３２】
１１０は、ホスト・コンピュータから供給される印刷情報を解析し印刷イメージの生成処理を行うとともにカラーＬＢＰ本体１００の制御を行うフォーマッタ制御部である。また、フォーマッタ制御部１１０は、ユーザによる操作およびユーザに対する状態通知のためのスイッチおよびＬＥＤ表示器等が配されているオペレーション・パネル部１２０と接続されており、そのパネル部はカラーＬＢＰ本体１００の外装の一部として配設されている。
【００３３】
フォーマッタ制御部１１０において生成された最終的な印刷イメージは、ビデオ信号として出力制御部１３０に送出され、出力制御部１３０はカラーＬＢＰ本体１００の不図示の各種センサからの状態入力とともに光学ユニット１４０および各種駆動系機構部に対し制御信号を出力しカラーＬＢＰ本体１００としての印刷処理を制御を司るものである。
【００３４】
図１に示す印刷装置において、給紙カセット１６１から給紙された用紙Ｐは、その先端をグリッパ１５４ｆにより狭持されて、転写ドラム１５４の外周に保持される。光学ユニット１４０により感光ドラム１５１上に形成された各色の潜像は、イエロー（Ｙ）、マゼンタ（Ｍ）、シアン（Ｃ）、ブラック（Ｂ）の各色現像器Ｄｙ、Ｄｍ、Ｄｃ、Ｄｂにより現像化されて、転写ドラム外周の用紙に複数回転写されて多色画像が形成される。
【００３５】
その後、用紙Ｐは転写ドラム１５４より分離されて、定着ユニット１５５で定着され、排紙部１５９より排紙トレイ１６０に排出される。ここで、各色の現像器Ｄｙ、Ｄｍ、Ｄｃ、Ｄｂは、その両端に回転支軸を有し、各々がその軸を中心に回転可能となるように現像器選択機構部１５２に保持される。これによって、各現像器Ｄｙ、Ｄｃ、Ｄｂ、Ｄｎは、図１に示すように、現像器選択のために現像器選択機構部１５２が回転軸１５２ａを中心にして回転しても、その姿勢を一定に維持できる構成をとっている。
【００３６】
選択された現像器が現像位置に移動後、現像器選択機構部１５２は現像器と一体で支点１５３ｂを中心にして、選択機構保持フレーム１５３がソレノイド１５３ａにより感光ドラム１５１方向へ引っ張られ、感光ドラム１５１方向へ移動し現像処理が行われるように構成されている。
【００３７】
次に、帯電器１５６によって感光ドラム１５１が所定の極性に均一に帯電される。フォーマッタ制御部１１０においてデバイス依存ビットマップとして展開された印刷情報は、対応するパターンのビデオ信号に変換されレーザドライバに出力され半導体レーザ１４１を駆動する。入力されたビデオ信号に応じて半導体レーザ１４１から発射されるレーザ光はオンオフ制御され、さらにスキャナモータ１４３によって高速回転するポリゴンミラー１４２で左右方向に振らされ、ポリゴンレンズ１３４、反射鏡１４４を介して感光ドラム１５１上を走査露光する。これにより、感光ドラム１５１上には画像パターンの静電潜像が形成されることになる。
【００３８】
次に、例えば、Ｍ（マゼンタ）色の静電潜像がＭ（マゼンタ）色の現像器Ｄｍにより現像され、感光体ドラム１５１上にＭ（マゼンタ）色の第１のトナー像が形成される。一方、所定のタイミングで転写紙Ｐが給紙され、トナーと反対極性（例えばプラス極性）の転写バイアス電圧が転写ドラム１５４に印加され、感光体ドラム１５１上の第１トナー像が転写紙Ｐに転写されると共に、転写紙Ｐが転写ドラム１５４の表面に静電吸着される。その後、感光ドラム１５１はクリーナー１５７によって残留するＭ（マゼンタ）色トナーが除去され、次の色の潜像形成及び現像行程に備える。以下同様の手順によってＣ（シアン）、Ｙ（イエロ）、Ｂｋ（ブラック）の順で第２、３、４色目のトナー像の転写が行われる。但し、各色の転写時には、転写ドラム１５４には前回よりも高いバイアス電圧が印加される点は異なる。
【００３９】
４色のトナー像が重畳転写された転写紙Ｐの先端部が分離位置に近づくと、分離爪１５８が接近してその先端が転写ドラム１５４の表面に接触し、転写紙Ｐを転写ドラム１５４から分離させる。分離された転写紙Ｐは定着ユニット１５５に搬送され、ここで転写紙上のトナー像が定着されて排紙トレイ１６０上に排出される。
【００４０】
本実施例のカラーＬＢＰは、以上のような画像形成過程を経て６００ドット／インチ（ｄｐｉ）の解像度で画像出力を行う。なお、本発明の印刷装置の構成を適用可能なプリンタは、カラーＬＢＰに限られるものではなく、インクジェットプリンタやサーマルプリンタ等、他のプリント方式のカラープリンタでもよい。
【００４１】
次に、フォーマッタ制御部の構成について説明する。
【００４２】
図２は、本発明の印刷装置に備えるフォーマッタ制御部の構成を説明するための図で、印刷装置３１００内に備えられたフォーマッタ制御部３１０２は、通常はＰＤＬコントローラなどとも呼ばれている部分であり、ホスト・コンピュータ３００との接続手段であるところのインタフェース（Ｉ／Ｆ）部３１０１と、受信データ等を一時的に保持管理するための受信バッファ３１０３と、送信データ等を一時的に保持管理するための送信バッファ３１０４と、印刷データの解析を司るコマンド解析部３１０７と、印刷制御処理実行部３１０９と、描画処理実行部３１０５と、ページメモリ３１０６とで構成されている。
【００４３】
インタフェース（Ｉ／Ｆ）３１０１は、ホスト・コンピュータ３００との印刷データの送受信を行う通信手段あり、通信プロトコルとしてＩＥＥＥ−１２８４に準拠した通信を可能とするものである。但し本発明では、この通信手段に限定するものでなく、ネットワークを介してさまざまなプロトコルによる接続であってもよいし、ＩＥＥＥ−１３９４に準じた通信手段であってもよい。このインタフェース３１０１を通して受信した印刷データは、そのデータを一時的に保持する記憶手段である受信バッファ３１０３に逐次蓄積され、必要に応じて、コマンド解析３１０７又は描画処理実行部３１０５によって読み出され処理される。
【００４４】
コマンド解析部３１０７は、印刷命令体系や印刷ジョブ制御言語に準じた制御プログラムにより構成されており、文字印字、図形、イメージなどの描画に関する印刷データの解析結果は、ページメモリ３１０６内の中間言語格納領域に1ページ分格納され、１ページ分格納が終了すると、印刷制御処理実行部３１０９が描画処理実行部３１０５に命令を下し、ページメモリ内の中間言語格納領域に格納された文字やイメージの中間言語をページメモリ内のバンドメモリに逐次展開を実施する。また、給紙選択やリセット命令などの描画以外のコマンドは、印刷制御処理実行部３１０９に指示を出して処理する。
【００４５】
描画処理実行部３１０５は、文字やイメージの各描画オブジェクトをページメモリ３１０６内のバンドメモリに逐次展開してゆくレンダラで、図１で説明したカラーＬＢＰに対しては、ＭＣＹＫの面順次でデバイス依存ビットマップデータを送出する必要があるが、標準状態では、そのために必要なメモリをすべて確保するわけではなく、１プレーン（１、２又は４ｂｉｔ／ｐｉｘｅｌ）の数分の１のバンド領域としてページメモリ３１０６内のバンドメモリに確保され、そのバンド領域を使いまわして画像をエンジン速度に同期して処理するように構成されている。
【００４６】
通常はこのように、レンダラによる展開処理とプリンタエンジンへのビデオ信号のシッピングの追いかけっこ、つまりバンディング制御によってページメモリ３１０６は管理されているが、充分なメモリがある場合は１ページ分が展開可能な領域を確保しても良い。なお、一般的に、フォーマッタ制御部３１０２は、中央演算処理装置（ＣＰＵ）、リードオンリーメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）などを用いたコンピュータ・システムによって構成されている。また、各部の処理は、マルチタスクモニタ（リアルタイムＯＳ）のもとでタイムシェアリングに処理される構成てあっても良いし、各機能ごとに専用のコントローラ・ハードウェアを用意して独立して処理される構成であってもかまわない。
【００４７】
オペレーション・パネル３１２０は、上述したとおり、印刷装置の各種状態を設定・表示するためのものである。出力制御部３１０８は、ページメモリ３１０６の内容をビデオ信号に変換処理し、プリンタエンジン部３１１０へ画像転送を行うためのものであり、プリンタエンジン部３１１０は、受け取ったビデオ信号を記録紙に永久可視画像形成するための印刷機構部である。
【００４８】
以上、印刷装置３１００について説明したが、次にホスト・コンピュータ３００を含む本実施例の印刷システムの全体構成について説明を加える。
【００４９】
図２において３００はホスト・コンピュータであり、プリントデータ及び制御コードから成る印刷情報を印刷装置３１００に出力するものである。ホスト・コンピュータ３００は、入力デバイスであるところのキーボード３１０やポインティングデバイスであるところのマウス３１１と、表示デバイスであるディスプレイ・モニタ３２０を合わせた一つのコンピュータ・システムとして構成されている。ホスト・コンピュータ３００は、Ｗｉｎｄｏｗｓ（登録商標）２０００、Ｗｉｎｄｏｗｓ（登録商標）Ｍｅなどの基本ＯＳによって動作しているものとする。
【００５０】
ホスト・コンピュータ３００側について、本発明に関する機能的な部分にのみ注目し、基本ＯＳ上での機能を大きく分類すると、アプリケーションソフトウェア３０１、グラフィック・サブ・システム３０２、印刷情報格納手段および印刷装置との通信手段を含むスプール・サブ・システム３０３に大別される。
【００５１】
アプリケーションソフトウェア３０１は、例えば、ワープロや表計算などの基本ソフトウェア上で動作する応用ソフトウェアを指すものである。グラフィック・サブ・システム３０２は、基本ＯＳの機能の一部であるＧｒａｐｈｉｃ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ３０２１（以後、「ＧＤＩ」という）とそのＧＤＩ３０２１から動的にリンクされるデバイスドライバであるところのプリンタ・ドライバ３０２２によって構成されている。
【００５２】
プリンタドライバ３０２２は、ＧＤＩからＤＤＩ（Ｄｅｖｉｃｅ  Ｄｒｉｖｅｒ  Ｉｎｔｅｒｆａｃｅ）というインターフェースを介してコールされ、デバイスに応じた処理を描画オブジェクト毎に行うものである。本システムでは、ＤＤＩ関数に渡された情報をプリンタで高速に処理可能なデータ形式に変換し、ページ単位で中間言語データ３０３１としてファイルに落とす（スプール処理）。スプール・サブ・システム３０３は、グラフィック・サブ・システム３０２の後段に位置するプリンタ・デバイスに特有のサブ・システムであり中間言語データ３０３１を読み出し処理を行うモジュールをデスプーラ３０３２と呼ぶことにする。
【００５３】
このデスプーラ３０３２は、プリンタで描画処理する単位のバンドに対応させたバンドリストを生成し、メモリ上にマップした中間言語データを描画位置に応じたバンドポインタにつなぎ登録がなされる。その際に、バンド毎に登録した中間言語データの種類、データサイズ、個数といった集計を行ない保持するようにする。
【００５４】
１ページ分の中間言語データがバンドリストに登録されると、バンド毎に保持されている集計情報を元に、ページに含まれる中間言語データ全体のサイズ、各バンドに含まれる中間言語データの種類、個数、サイズを算出し、このようにして求めたページデータ（バンド毎情報を含む）を先頭として、上位バンドに繋がっている中間言語データから順に並べることで印刷命令とする。
【００５５】
このように、デスプーラ３０３２は、スプールデータを読み込み印刷命令を生成し、ＧＤ３０３３、Ｉ／Ｆ３０３４を介してプリンタにデータを送出される。
【００５６】
基本ＯＳによって、上述したこれらの名称や機能的な枠組みは若干異なる場合があるが、本発明でいう各技術的手段が実現できるモジュールであれば、それらの名称や枠組みは本発明にとってあまり大きな問題ではない。例えば、スプーラやスプールファイルと呼ばれるものは、別のＯＳにおいてプリント・キューと呼ばれるモジュールに処理を組み込むことによっても実現可能である。なお、一般的に、これらの各機能モジュールを含むホスト・コンピュータ３００は、中央演算処理装置（ＣＰＵ）、リードオンリーメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ハードディスクドライブ（ＨＤＤ）、各種入出力制御部（Ｉ／Ｏ）などのハードウェアのもとで、基本ソフトと呼ばれるソフトウェアがその制御を司り、その基本ソフトの元で、それぞれの応用ソフト、サブ・システム・プロセスが機能モジュールとして動作するようになっている。
【００５７】
以下に、本発明の印刷装置に備えるプリンタドライバの理想的な実施形態について説明する。
【００５８】
図３は、本発明の印刷装置に備えるプリンタドライバの動作を説明するための図で、このプリンタドライバは、一般的なドキュメント作成アプリケーションを使って作成した、グラフィックス、文字、イメージが含まれているドキュメントである「パエリアの作り方」４００１を印刷する際には、ＯＳにインストールされているプリンタドライバに対して、ＯＳを介して描画命令４００２が渡ってくる。描画命令は、ＯＳやプリンタドライバのつくりによって異なるが、この描画命令４００２には多角形や文字といった抽象的な物が含まれているものとする。
【００５９】
プリンタドライバは、描画命令毎にプリンタで高速に処理可能なデータ形式に変換処理を行い、１ページ分中間言語データ４００４を生成しスプールする。
【００６０】
図４は、中間言語データ構造例及びバンドリスト構造例について説明するための図で、図４（ａ）は中間言語データの構造例を示しており、図４（ｂ）はバンドリスト構造例を示している。
【００６１】
図４（ａ）に示すように、中間言語データ９００を構成しているデータ要素は、データの種類を示すＤａｔａＴｙｐｅ９０１、そのデータのサイズを示すＤａｔａＳｉｚｅ９０２、データを描画する領域を外接矩形座標（ｌｅｆｔｘ，ｒｉｇｈｔｔｘ，ｂｏｔｔｏｍｙ，ｔｏｐｙ）で示されるＲｅｃｔＬ９０３、データ本体が格納されているＤａｔａ９０４を１セットとした形態を取ることで、ヘッダ部９０１〜９０３を参照するだけで、図３中のプリンタのバンド方向に合わせたバンドリスト４００５にリンク構造を高速に張ることが容易になる。
【００６２】
1ページ分スプール終了後、デスプーラはプリンタが行うバンディング方向に合わせたバンドリストテーブル４００５を生成する。バンドリストは、バンドリスト管理テーブル４００６と、データ管理構造体４００７によって構成されており、各バンドの描画に関係する中間言語データをバンド毎に、処理する順番にリンクするテーブルである。テーブルにリンクする際に、バンド毎の中間言語データの個数、サイズ、点数といった情報をテーブル内に積算していく。この時、中間言語データは、プリンタ内部で高速に描画処理可能なデータに変換されるため、ここで求まるデータサイズ、点数等はプリンタ内部での格納データイサイズそのものと言える。
【００６３】
バンドリスト４００５について図４（ｂ）を使ってもう少し詳細に説明を行う。バンドリスト４００５は、バンドリスト管理テーブル９０５とデータ管理構造体９１１によって構成される。バンドリスト管理テーブル９０５は、ページ内のバンド数を示すｂａｎｄｃｎｔ９０６を先頭に、登録データ数を示すｄａｔａｃｎｔ９０７、バンドにリンクされている最初のデータ管理構造体へのポインタを示すｎｅｘｔｐｏｉｎｔ９０８、リンク構造の最後のデータ管理構造体へのポインタを示すｅｎｄｐｏｉｎｔ９０９、リンクされる中間言語データの情報（データ種類、サイズ、点数、等）を保持するＢａｎｄＩｎｆｏ９１０で構成されており、これらの登録データ数を示すｄａｔａｃｎｔ９０７と、バンドにリンクされている最初のデータ管理構造体へのポインタを示すｎｅｘｔｐｏｉｎｔ９０８と、リンク構造の最後のデータ管理構造体へのポインタを示すｅｎｄｐｏｉｎｔ９０９と、リンクされる中間言語データの情報（データ種類、サイズ、点数、等）を保持するＢａｎｄＩｎｆｏ９１０とが、バンド数分だけ連続した構造になっている。
【００６４】
データ管理構造体９１１は、データ本体へのポインタを格納するＤａｔａＰｏｉｎｔ９１２と、次のデータ管理構造体へのポインタを格納するＮｅｘｔＰｏｉｎｔ９１３と、描画領域を最外郭矩形で示したＲｅｃｔＬ９１４と、中間言語データ９０５の本体であるＤａｔａ９１５とで構成されており、バンドリスト４００５を生成した後に、バンド情報と中間言語データを基に印刷データ４００８を作成してプリンタ４００９に送出する。
【００６５】
図５は、印刷コマンドの内容を説明するための図で、印刷データ５００１は、言語のバージョン、機器の制御等を行うためのコマンドヘッダ部５００２と、ページ情報であるＰａｇｅＩｎｆｏ５００３と、中間言語データ本体５００４と、バンドの区切りを示すＢａｎｄＥｎｄ５００５とで構成されている。
【００６６】
ＰａｇｅＩｎｆｏ５００３は、そのページ全体に含まれる中間言語データのトータルサイズであるｐａｇｅｄａｔａＳｉｚｅ５００８と、含まれるバンドの数であるｂａｎｄｃｎｔ５００９と、バンド毎の情報であるｂａｎｄｉｎｆ５０１０で構成され、ｂａｎｄｉｎｆ５０１０はバンド数分存在する。
【００６７】
このｂａｎｄｉｎｆ５０１０は、バンドの位置情報を外接矩形で示したＢａｎｄｒｅｃｔ５０１１と、バンド内に含まれる中間言語データサイズのトータルサイズであるＢａｎｄＤａｔａＳｉｚｅ５０１２と、バンド内に含まれる中間言語データ毎の情報であるｂｉｔｍａｐＩｎｆ５０１３で構成されており、このｂｉｔｍａｐＩｎｆ５０１３には、ビットマップデータの種類毎のサイズや個数等の情報５０１５が含まれている。
【００６８】
中間言語データ本体５００４は、プリンタで高速に描画処理可能なデータ形式に変換されたものであり、データサイズ削減のために、バンドに跨っているデータは分割してそれぞれのバンド用データに加工されたものである。
【００６９】
中間言語データの一つのカラーイメージデータは、プリンタ内部で動的に変化する濃度調整処理（濃度キヤリブレーション）に対応するために、プリンタドライバでは輝度空間（ＲＧＢ）またはデバイスカラー空間（ＹＭＣＫ）の高階調（各色８ビット）で中間言語データが生成されて印刷命令となる。
【００７０】
ｂｉｔｍａｐＩｎｆ５０１３には、高階調で中間言語データを生成した時のイメージデータサイズ合計値であるＲｅａｌＳｉｚｅ５０１６と、印刷装置内で出力階調数に展開した中間言語データを生成した時のサイズ合計値であるＲｅｎｄｅｒＳｉｚｅ５０１７を計算して保持する。なお、ｐａｇｅｄａｔａＳｉｚｅ５００８は、ＲｅａｌＳｉｚｅ５０１６を用いて計算している。
【００７１】
ＢａｎｄＥｎｄ５００５は、バンドの区切りを明確に示すものであり、プリンタが容易にバンドの区切りを検知するための物であるが、ｂａｎｄｉｎｆ５０１０のｂａｎｄＤａｔａＳｉｚｅ５０１２が現実のデータサイズを示している設定されていれば算出できるので必須コマンドではない。
【００７２】
次に、本発明の印刷装置の動作について説明すると、印刷装置３１００は、受信バッファ３１０３に最低限ＰａｇｅＩｎｆ５００３を格納し、コマンド解析部３１０７で、ｐａｇｅｄａｔａＳｉｚｅ５００８がページメモリ３１０６の中間言語データ格納領域よりも小さいか否か（以下、「判断Ａ」という）、及び、Ｂａｎｄｉｎｆ５０１０の各中間言語の情報から算出した描画にかかる時間がエンジンが要求する時間内に納まるか否か（以下、「判断Ｂ」という）の２つの判断処理を行う。
【００７３】
判断Ａ及び判断Ｂともに判断条件をクリアしているときは、エンジンシップ処理に同期した描画処理を行う同期レンダリングモードで動作することで、高速印字が可能であるが、判断Ａの結果が不可の場合は、中間言語データがプリンタ内部に収まりきらないことを示しており、判断Ｂの結果が不可のバンドがある場合は、バンドメモリを用いて描画処理とシップ処理を同時に行う同期レンダリング処理が不可となり、両者とも高速モードでの印字は不可能となってしまう。
【００７４】
従って、本発明の印刷装置では、判断Ａ及び判断Ｂの２つの判断条件がクリアされた場合には、バンドメモリを用いて描画処理とシップ処理を同時に行なう同期レンダリングモードとし、いずれかの判断条件がクリアされない場合には、描画処理を受信時に行なってしまう非同期レンダリングモードで動作することをページ単位で決定した後に処理することとしている。これにより、搭載メモリサイズを増やすことなく、同期レンダリング可能なケースを増やすことが可能となる。
【００７５】
図６は、プリンタ内部の同期レンダリング処理を説明するための図で、図６（ａ）は同期レンダリングのコントローラ内処理を示しており、図６（ｂ）は非同期レンダリングのコントローラ内処理を示している。
【００７６】
図６（ａ）に示すように、同期レンダリングのコントローラ６００内では、受信バッファ６０１に受け取った印刷データは、変換処理を加えてページメモリ内の中間言語データ格納領域６０２にプリンタドライバ内で作成したのと同様のバンドリストを構築し、バンドリスト生成後、ハードウエア、またはソフトウエア描画処理実行部を用いて上位バンドからページメモリ内のバンドメモリ領域６０３に対して描画処理を行う。このバンドメモリを２つ以上持つことで、「エンジンにビデオ信号を送り出す処理」と「バンドメモリに対する描画処理」を追っかけで行うことを可能として省メモリを実現する。
【００７７】
一方、非同期レンダリングのコントローラ６０４内では、図６（ｂ）に示すように、受信バッファ６０５に受け取った中間言語部は、直接、ハードウエアまたはソフトウエアでページメモリ内のバンドメモリ領域６０６に対して描画処理を行う。描画処理が終わったバンドメモリ領域６０６上のイメージデータには圧縮（ＰａｃｋＢｉｔｓ，Ｒｕｎｌｅｎｇｔｈ，又はＪＢＩＧ等）が掛けられ、ページメモリ内の圧縮データ格納領域６０７に格納される。全バンド分の圧縮イメージデータが揃うとこのシップ中ページの圧縮バンド６０８と描画中ページの圧縮バンド６０９をリアルタイム伸張を行うことで、ビデオ信号をエンジンに送出する。
【００７８】
次に、プリンタドライバ内の処理の流れを説明する。
【００７９】
図７は、プリンタドライバ内の処理を説明するためのフローチャートで、先ず、ＯＳから受け取った描画命令を印刷装置で高速描画処理可能なデータ形式の中間言語データに変換してページ単位で登録する（Ｓ７０１）。次に、印刷装置のバンド処理単位に合わせたバンドリストを作成し、ステップＳ７０１で登録した中間言語データに結びつけ（Ｓ７０２）、バンドリストと中間言語データから印刷データを作成して印刷装置に送出し（Ｓ７０３）、次ページデータがあるか否かを判断（Ｓ７０４）する。この判断により次ページがあると判断された場合（Ｓ７０４：Ｎｏ）にはステップS７０１に戻って以降のステップを繰り返し、次ページがないと判断された場合（Ｓ７０４：Ｙｅｓ）には処理が終了する。
【００８０】
次に、印刷装置内における論理ページ毎の処理系決定の流れについて説明する。
【００８１】
図８は、コントローラ内の処理例を説明するためのフローチャートで、先ず、ＰａｇｅＩｎｆｏ解析を実行（Ｓ８０１）し、ＰａｇｅＤａｔａＳｉｚｅが中間言語格納領域サイズよりも小さいか否かを判断（Ｓ８０２）する。この判断の結果、ＰａｇｅＤａｔａＳｉｚｅが中間言語格納領域サイズよりも小さい場合（Ｓ８０２：Ｙｅｓ）にはステップＳ８０３に進み、ＰａｇｅＤａｔａＳｉｚｅが中間言語格納領域サイズよりも小さくない場合（Ｓ８０２：Ｎｏ）にはステップＳ８０５へ進む。
【００８２】
ステップＳ８０３では、ｂａｎｄＩｎｆを解析して各バンドの描画処理時間を予測し、全バンドが同期レンダリング可能（Ｓ８０３：Ｙｅｓ）ならステップＳ８０４へ進み、全バンドが同期レンダリング不能（Ｓ８０３：Ｎｏ）ならステップＳ８０５へ進む。
【００８３】
ステップＳ８０４では、１ページ分の中間言語データをページメモリに格納し、更に、ステップＳ８０６へ進んでバンドリストを生成した後に同期レンダリングを実行してステップＳ８０７に進む。一方、ステップＳ８０５では、非同期レンダリング処理を実行してステップＳ８０７に進む。
【００８４】
ステップＳ８０７では、データ処理の全てが終了したか否かを判断し、全てのデータ処理が終了していないと判断された場合（Ｓ８０７：Ｎｏ）には、ステップＳ８０１に戻って以降のステップを繰り返し、全データ処理が終了したと判断された場合（Ｓ８０７：Ｙｅｓ）には処理を終了する。
【００８５】
図９は、コントローラ内の別の処理例を説明するためのフローチャートで、この処理では、先ず、ＰａｇｅＩｎｆｏ解析を実行（Ｓ９０１）し、ＰａｇｅＤａｔａＳｉｚｅが中間言語格納領域サイズよりも小さいか否かを判断（Ｓ９０２）する。この判断の結果、ＰａｇｅＤａｔａＳｉｚｅが中間言語格納領域サイズよりも小さい場合（Ｓ９０２：Ｙｅｓ）にはステップＳ９０５に進み、ＰａｇｅＤａｔａＳｉｚｅが中間言語格納領域サイズよりも小さくない場合（Ｓ９０２：Ｎｏ）にはステップＳ９０３へ進む。
【００８６】
ステップＳ９０５では、ｂａｎｄＩｎｆを解析して各バンドの描画処理時間を予測し、全バンドが同期レンダリング可能（Ｓ９０５：Ｙｅｓ）ならステップＳ９０６へ進み、全バンドが同期レンダリング不能（Ｓ９０５：Ｎｏ）ならステップＳ９０８へ進む。
【００８７】
一方、ステップＳ９０３では、ｂａｎｄＩｎｆ内の圧縮可能なデータの情報をチェックして各バンドのデータを圧縮したときの中間言語データを生成した時のサイズを算出し、全バンドの情報を集めてページ全体に含まれる中間言語データサイズを算出しなおす。その結果、ページ全体に含まれる中間言語データサイズの値が中間言語データ格納領域サイズよりも小さければ（Ｓ９０３：Ｙｅｓ）ステップＳ９０４へ進み、大きければ（Ｓ９０３：Ｎｏ）ステップＳ９０８へ進む。
【００８８】
ステップＳ９０４では、そのページを、中間言語データ圧縮モードで動作することに決定しステップＳ９０５へ進む。
【００８９】
ステップＳ９０６では、１ページ分の中間言語データをページメモリに格納し、更に、ステップＳ９０７へ進んでバンドリストを生成した後に同期レンダリングを実行してステップＳ９０９に進む。一方、ステップＳ９０８では、非同期レンダリング処理を実行してステップＳ９０９に進む。
【００９０】
ステップＳ９０９では、データ処理の全てが終了したか否かを判断し、全てのデータ処理が終了していないと判断された場合（Ｓ９０９：Ｎｏ）には、ステップＳ９０１に戻って以降のステップを繰り返し、全データ処理が終了したと判断された場合（Ｓ９０９：Ｙｅｓ）には処理を終了する。
【００９１】
次に、本発明の印刷装置の省メモリ効果について説明する。
【００９２】
図１０は、本発明の印刷装置の同期レンダリング時及び非同期レンダリング時のメモリの様子を、従来の印刷装置のメモリの様子と比較するための図で、図１０（ａ）は本発明の印刷装置の同期レンダリング時のメモリの様子を示しており、図１０（ｂ）は本発明の印刷装置の非同期レンダリング時のメモリの様子を示しており、更に、図１０（ｃ）は従来の印刷装置のメモリの様子を示す図である。
【００９３】
図１０（ａ）に示すように、同期レンダリング１００５時には、サイズＡの中間言語データ格納領域１００６にハードウエアで高速にレンダリング可能な中間言語データを格納し、同期バンディング用のバンドメモリ領域１００７をサイズ２Ｂとなるように２つ用意する。
【００９４】
非同期レンダリング１００８時には、バンドメモリ領域１００９は、圧縮処理とレンダリング処理とをパラレルに動かすためにサイズ２Ｂとし、圧縮イメージデータ格納領域１０１０は、１ページ分展開したイメージを圧縮して格納し、このサイズは、従来の印刷装置のサブクローズ時に必要な領域と同サイズであるサイズＣとする。
【００９５】
このように、本発明の印刷装置のメモリサイズは、同期レンダリング１００５時にはＡ＋２Ｂとなり、非同期レンダリング１００８時には、Ｃ＋２Ｂとなる。
【００９６】
これに対して、従来の印刷装置のメモリは、図１０（ｃ）に示すように、同期レンダリングとサブクローズ１００１時において、ハードウエアで高速にレンダリング可能な中間言語データを格納する中間言語格納領域１００２のサイズがＡ、同期バンディングようとして２つ必要となるバンドメモリ領域１００３のサイズが２Ｂ、サブクローズ又はプレバンド用に用いるサブクローズイメージデータ格納領域１００４のサイズがＣであり、その合計サイズはＡ＋２Ｂ＋Ｃとなる。
【００９７】
このように、本発明の印刷装置は、従来の構成の印刷装置に比較して、省メモリ効果を奏することが理解できる。また、サイズＡとサイズＣのメモリを同時には使用しないように設計することにより、更なる省メモリ効果が得られる。
【００９８】
また、本発明の印刷装置には、以下のようなパフォーマンス効果がある。すなわち、簡単なデータ処理時においては、同期レンダリングモードで動作するため、従来の印刷装置ではプリンタ内部で行なっていた中間言語データ生成処理をホスト内部で行なうこととしている。このため、ホストでの処理時間が従来の印刷装置のＰＤＬモード時よりも長くなりその分プリンタ側での処理時間が短くなる。この差は使用環境に依存するところが大きいが、簡単なデータであることを考慮すると大差はないといえる。
【００９９】
一方、「コマンドサイズが大きい場合」又は「処理が間に合わないバンドが多量にある場合」には、大きなメリットが得られる。すなわち、従来の印刷装置においては、サブクローズ処理が繰り返されるため、圧縮・伸縮処理を繰り返して行なう時間が大きな遅延要因となっていたのに対して、本発明の印刷装置では、非同期レンダリングモードで動作するために、バンド描画処理途中での圧縮処理は発生しない。このため、圧縮・非圧縮処理時間×回数分だけ、プリンタ内部での処理時間が短くなる。
【０１００】
次に、プリンタ内部でカラー多値イメージ中間言語データが圧縮される様子を説明する。
【０１０１】
図１１は、本発明の印刷装置に接続されるプリンタ内部でカラー多値イメージ中間言語データが圧縮される様子を説明するための図で、１１０１で示したケース１の、中間言語データの一つであるカラー高階調イメージデータ１１０２（ＹＭＣＫ各色８ビット＝３２ｂｉｔ／ｐｉｘｅｌ）を、１１０３のようにプリンタ内部描画処理時に拡大する場合には、出力階調数が各色２ビット場合には、縦×横が８以上の拡大率なら３２ｂｉｔ／ｐｉｘｅｌのソースデータのまま中間言語データを生成したほうがデータサイズは小さくなる。
【０１０２】
一方、１１０４で示したケース２のように等倍（縮小）の場合や、１１０７で示したケース３のように拡大率が大きい場合でも、クリップ１１１０が掛かって描画領域サイズが小さいときは、拡縮処理、クリップ処理、及び、ハーフトーニング処理を加えた（ＹＭＣＫ各色２ビット＝８ｂｉｔ／ｐｉｘｅｌ）を中間言語データとした方が、中間言語データサイズが小さくなる。但し、処理全体の処理時間を考えた場合、エンジンに同期してハードウエアで高速に拡大処理、ハーフトーニング処理を行った方が効率的である。
【０１０３】
そこで、本発明の印刷装置に接続されるプリンタでは、中間言語データ格納時に上記処理を全て加えるとデータの生成時間がかかるため、この条件にあてはまる高階調イメージデータのみを抽出して中間言語データを生成するようにしている。この方法はイメージデータに効果的に効き、レンダラーがリアルタイムで伸張可能な圧縮方式を適用すれば中間言語データサイズ領域はさらに効率的に利用可能となる。
【０１０４】
なお、本発明の印刷装置は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、１つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用しても良い。
【０１０５】
また、本発明の目的は、上述した実施形態の機能を実現するプリンタドライバと呼ばれるソフトウエアプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合には、記憶媒体から読み出されたプログラムコード事態が上述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１０６】
ここで、プログラムコードを供給するための記憶媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【０１０７】
また、コンピュータが読み出したプログラムコードを実行することにより、上述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１０８】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることはいうまでもない。
【０１０９】
なお、本発明を記憶媒体に適応する場合、その記憶媒体には、先に説明したフローチャートに対応するプログラムコードを格納することになる。
【０１１０】
【発明の効果】
以上説明したように、本発明によれば、印刷装置に印刷モード決定部を備える構成とし、印刷モード決定部は、印刷命令データを通常印刷モードで変換した場合の中間言語データサイズがページメモリに記憶可能か否かを判断し、記憶可能な場合には、印刷モード決定部に通常印刷モードを選択させ、記憶不可な場合には圧縮印刷モードを選択させることとした。更に、印刷モード決定部にデータ再処理装置を備えることとし、圧縮印刷モードが選択された場合に、通常印刷モードの高階調イメージデータに対応する中間言語データのうち、拡縮処理、出力階調変換処理、クリップ処理、可逆圧縮処理のいずれかを実行することによりデータサイズが縮小される中間言語データに該当する処理を行なってページメモリに再格納するようにしたので、大量の印刷命令をプリンタに送っても、少ないメモリで高速かつ正常印字を保証することが可能な印刷システム及び印刷装置を提供することが可能となる。
【図面の簡単な説明】
【図１】本発明の印刷システムを構成する印刷装置の構成例を説明するための図である。
【図２】本発明の印刷装置に備えるフォーマッタ制御部の構成を説明するための図である。
【図３】本発明の印刷システムを構成するコンピュータに備えるプリンタドライバの動作を説明するための図である。
【図４】中間言語データ構造例及びバンドリスト構造例について説明するための図で、（ａ）は中間言語データの構造例を示しており、（ｂ）はバンドリスト構造例を示している。
【図５】印刷コマンドの内容を説明するための図である。
【図６】プリンタ内部の同期レンダリング処理を説明するための図で、（ａ）は同期レンダリングのコントローラ内処理を示しており、（ｂ）は非同期レンダリングのコントローラ内処理を示している。
【図７】プリンタドライバ内の処理を説明するためのフローチャートである。
【図８】コントローラ内の処理例を説明するためのフローチャートである。
【図９】コントローラ内の別の処理例を説明するためのフローチャートである。
【図１０】本発明の印刷装置の同期レンダリング時及び非同期レンダリング時のメモリの様子を、従来の印刷装置のメモリの様子と比較するための図で、（ａ）は本発明の印刷装置の同期レンダリング時のメモリの様子を示しており、（ｂ）は本発明の印刷装置の非同期レンダリング時のメモリの様子を示しており、更に、（ｃ）は従来の印刷装置のメモリの様子を示す図である。
【図１１】本発明の印刷装置に接続されるプリンタ内部でカラー多値イメージ中間言語データが圧縮される様子を説明するための図である。
【図１２】従来の印刷システムにおける印刷制御方法および印刷処理の流れを説明するための図である。
【符号の説明】
１００  カラーＬＢＰ本体
１１０  フォーマッタ制御部
１２０  オペレーション・パネル部
１３０  出力制御部
１３４  ポリゴンレンズ
１４０  光学ユニット
１４１  半導体レーザ
１４２  ポリゴンミラー
１４３  スキャナモータ
１４４  反射鏡
１５１  感光ドラム
１５２  現像器選択機構部
１５２ａ  回転軸
１５３  選択機構保持フレーム
１５３ａ  ソレノイド
１５４  転写ドラム
１５４ｆ  グリッパ
１５５  定着ユニット
１５６  帯電器
１５７  クリーナー
１５８  分離爪
１５９  排紙部
１６１  給紙カセット
１６０  排紙トレイ
３００  ホスト・コンピュータ
３０１  アプリケーションソフトウェア
３０２  グラフィック・サブ・システム
３０３  スプール・サブ・システム
３１０  キーボード
３１１  マウス
３２０  ディスプレイ・モニタ
３０２２  プリンタドライバ
３０３１  中間言語データ
３０３２  デスプーラ
３０３３  ＧＤＩ
３０３４  Ｉ／Ｆ
３１００  印刷装置
３１０１  インタフェース（Ｉ／Ｆ）部
３１０２  フォーマッタ制御部
３１０３  受信バッファ
３１０４  送信バッファ
３１０５  描画処理実行部
３１０６  ページメモリ
３１０７  コマンド解析部
３１０８  出力制御部
３１０９  印刷制御処理実行部
３１１０  プリンタ・エンジン部
３１２０  オペレーション・パネル
【図１】
0003826038.tif 000002
【図２】
0003826038.tif 000003
【図３】
0003826038.tif 000004
【図４】
0003826038.tif 000005
【図５】
0003826038.tif 000006
【図６】
0003826038.tif 000007
【図７】
0003826038.tif 000008
【図８】
0003826038.tif 000009
【図９】
0003826038.tif 000010
【図１０】
0003826038.tif 000011
【図１１】
0003826038.tif 000012
【図１２】
0003826038.tif 000013