(57)【特許請求の範囲】
【請求項１】
プリンタドライバを有するホストコンピュータとしての情報処理装置と、記録媒体上に画像を出力する画像処理装置とを含む画像処理システムであって、
前記情報処理装置は、
アプリケーションにより取得した画像情報に基づく画像データの生成時間を見積もる見積手段と、
前記見積手段により見積もった生成時間が基準時間を超えているか判断する判断手段と、
前記判断手段により生成時間が基準時間を超えていると判断された場合に、前記画像情報を、先に前記画像処理装置に登録する登録画像情報と、登録画像情報が前記画像処理装置に登録された後に前記画像処理装置に出力する印刷情報とに分割する分割手段と、
前記分割手段により分割された登録画像情報をこれに登録命令を付加して前記画像処理装置に出力し、その後、前記画像処理装置に登録された登録画像情報を指定する使用命令を前記印刷情報に付加して出力する出力制御手段とを備え、
前記画像処理装置は、
前記情報処理装置から受信した登録画像情報または印刷情報に基づいて画像データを生成する展開手段と、
前記展開手段により生成された登録用の画像データを圧縮する圧縮手段と、
前記圧縮手段により圧縮された画像データを格納するためのメモリ手段と、
前記メモリ手段に格納された画像データを伸長する伸長手段と、
前記印刷情報に登録画像情報を指定する使用命令が付加されている場合に、前記展開手段から供給される前記印刷情報に基づく画像データと前記伸長手段から供給される前記使用命令で指定される画像データとに基づいて出力用の画像データを合成する合成手段と、
前記合成手段により合成された出力用の画像データに基づいて記録媒体上に画像を出力する出力手段と、
を備えることを特徴とする画像処理システム。
【請求項２】
前記合成手段は、合成した出力用の画像データを順次前記出力手段に供給し、前記出力手段は、その出力用の画像データに基づいて順次記録媒体上に画像を出力することを特徴とする請求項１に記載の画像処理システム。
【請求項３】
前記合成手段は、１ページよりも小さい領域に相当する２つの画像メモリを有し、一方の画像メモリを用いて出力用の画像データを生成している際に他方の画像メモリより順次出力用の画像データを読出して前記出力手段に供給し、これにより出力用の画像データの生成と記録媒体上への画像の出力とを並行して実行することを特徴とする請求項２に記載の画像処理システム。
【請求項４】
前記２つの画像メモリは、バンド状の画像に係る画像データを保持するためのバンドメモリであることを特徴とする請求項３に記載の画像処理システム。
【請求項５】
前記画像処理装置は、前記メモリ手段に格納された登録用の画像データを識別するための識別情報を前記情報処理装置に通知する通知手段を更に備えることを特徴とする請求項１乃至４のいずれか１項に記載の画像処理システム。
【請求項６】
前記画像処理装置は、前記情報処理装置から与えられる指示に従って、前記メモリ手段に格納されている画像データを廃棄する廃棄手段を更に備えることを特徴とする請求項１乃至５のいずれか１項に記載の画像処理システム。
【請求項７】
プリンタドライバを有するホストコンピュータとしての情報処理装置と、記録媒体上に画像を出力する画像処理装置とを含む画像処理システムにおける画像処理方法であって、
前記情報処理装置において、
アプリケーションにより取得した画像情報に基づく画像データの生成時間を見積もる見積工程と、
前記見積工程で見積もった生成時間が基準時間を超えているか判断する判断工程と、
前記判断手段により生成時間が基準時間を超えていると判断された場合に、前記画像情報を、先に前記画像処理装置に登録する登録画像情報と、登録画像情報が前記画像処理装置に登録された後に前記画像処理装置に出力する印刷情報とに分割する分割工程と、
前記分割工程で分割された登録画像情報をこれに登録命令を付加して前記画像処理装置に出力し、その後、前記画像処理装置に登録された登録画像情報を指定する使用命令を前記印刷情報に付加して出力する出力制御工程と、を含む処理を実行し、
前記画像処理装置において、
前記情報処理装置から受信した登録画像情報または印刷情報に基づいて画像データを生成する展開工程と、
前記展開工程で生成された登録用の画像データを圧縮する圧縮工程と、
前記圧縮工程で圧縮された画像データを格納するためのメモリ手段に格納する格納工程と、
前記メモリ手段に格納された画像データを伸長する伸長工程と、
前記印刷情報に登録画像情報を指定する使用命令が付加されている場合に、前記展開工程によって得られる前記印刷情報に基づく画像データと前記伸長工程によって得られる前記使用命令で指定される画像データとに基づいて出力用の画像データを合成する合成工程と、
前記合成工程で合成された出力用の画像データに基づいて記録媒体上に画像を出力する出力工程と、を含む処理を実行する、
ことを特徴とする画像処理方法。
【請求項８】
前記合成工程では、合成した出力用の画像データを順次前記出力工程に提供し、前記出力工程では、その出力用の画像データに基づいて順次記録媒体上に画像を出力することを特徴とする請求項７に記載の画像処理方法。
【請求項９】
前記合成工程では、１ページよりも小さい領域に相当する２つの画像メモリを使用し、一方の画像メモリを用いて出力用の画像データを生成している際に他方の画像メモリより順次出力用の画像データを読出して前記出力工程に提供し、これにより出力用の画像データの生成と記録媒体上への画像の出力とを並行して実行することを特徴とする請求項８に記載の画像処理方法。
【請求項１０】
前記２つの画像メモリは、バンド状の画像に係る画像データを保持するためのバンドメモリであることを特徴とする請求項９に記載の画像処理方法。
【請求項１１】
前記画像処理装置において、前記メモリ手段に格納された登録用の画像データを識別するための識別情報を前記情報処理装置に通知する通知工程を更に実行することを特徴とする請求項７乃至１０のいずれか１項に記載の画像処理方法。
【請求項１２】
前記画像処理装置において、前記情報処理装置から与えられる指示に従って、前記メモリ手段に格納されている画像データを廃棄する廃棄工程を更に実行することを特徴とする請求項７乃至１１のいずれか１項に記載の画像処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像を出力する画像処理装置及びその方法並びにメモリ媒体及びコンピュータ読取り可能な記憶媒体に関するものである。
【０００２】
【従来の技術】
図１は、一般的なプリンタシステムの構成を示す図である。１００は、文書、図形、イメージ等に関する印刷情報を作成する情報処理装置であるホストコンピュータ、２００は、ホストコンピュータ１００から供給される印刷情報に基づいて紙等の記録媒体上に画像を出力するプリンタである。プリンタ２００は、プリンタコントローラ２１０とプリンタエンジン２２０とを有し、プリンタコントローラ２１０は、ホストコンピュータ１００から印刷情報を受信し、その印刷情報に基づいてプリンタエンジン２２０を制御して記録媒体上に画像を形成させる。
【０００３】
このシステム構成において、ユーザがホストコンピュータ１００を操作して文書等を編集し、その編集した文書等の印刷を指示することにより、ホストコンピュータ１００は、その文書等に係る画像を記述した印刷情報（例えば、ページ記述言語によって記述した情報）を生成してプリンタ２００に送信する。
【０００４】
図２は、プリンタコントローラ２１０の構成を示すブロック図である。２０１は、ホストコンピュータ１００から印刷情報を受信する他、プリンタ２００内のステータス情報等をホストコンピュータ１００に送信するためのインターフェース部である。２０２は、プリンタコントローラ２１０内の各デバイスを制御する制御部である。２０４は、ＤＲＡＭ、２０３は、ＤＲＡＭ２０４を制御するメモリコントローラ、２０５は、ＤＲＡＭ２０４の描画領域に描画した画像に係る画像データをエンジンインターフェース２０６に転送するためのＤＭＡコントローラ、２０６は、転送された画像データをプリンタエンジン２２０に送出するエンジンインターフェースである。
【０００５】
図３は、プリンタコントローラ２１０の動作を示すフローチャートである。先ず、ステップＳ３０１では、ホストコンピュータ１００から印刷情報を受信する。この印刷情報の形態としては種々の形態があり、例えばページ記述言語（ＰＤＬ）が代表的である。
【０００６】
ステップＳ３０２では、受信した印刷情報をＤＲＡＭ２０４内に設けられた受信バッファ領域に格納する。通常、ステップＳ３０１の受信処理とステップＳ３０２の格納処理は、並行して、すなわち、印刷情報を受信する都度、受信バッファ領域にその印刷情報を格納しながら、一連の印刷情報を受信することになる。これは、通信速度と印刷情報に基づく画像処理の速度との速度差を吸収するためである。
【０００７】
ステップＳ３０３では、格納した印刷情報を解析する。具体的には、このプリンタ２００は、１ページの領域を複数のバンドに分割して処理することにより、画像メモリの容量を低減している。すなわち、このプリンタ２００においては、ＤＲＡＭ２０４内に、２つのバンドメモリ領域を設け、一方のバンドメモリ領域を使用してバンド画像を展開しつつ他方のバンドメモリより既に展開が終了した画像に係る画像データを読出してプリンタエンジン２２０に供給する。そして、この動作をバンドメモリの役割を交換しながら１ページの末尾まで実行する。以下では、このような処理をバンド処理という。ステップＳ３０３では、印刷情報をバンド処理が実行可能なデータである中間データに変換する。
【０００８】
ステップＳ３０４では、中間データに基づいてバンドメモリ領域に最初のバンド画像を展開する（展開処理）。ステップＳ３０５では、ＤＭＡコントローラ２０５及びエンジンインターフェース２０６をセットし、更にプリンタエンジン２２０を起動し、プリント処理（展開した画像に基づく出力画像の形成処理）が可能な状態にする。
【０００９】
ステップＳ３０６及びＳ３０７では、プリント処理と展開処理とを並行して実行する。具体的には、ステップＳ３０６では、ＤＭＡコントローラ２０５により、展開が完了したバンドメモリ領域から画像データを読出してエンジンインターフェース２０６を介してプリンタエンジン２２０に供給することにより、対応するバンド画像を記録媒体上に形成する。一方、ステップＳ３０７では、他方のバンドメモリ領域に対して中間データに基づいて次のバンド画像を展開する。
【００１０】
ステップＳ３０８では、１ページ分のプリント処理が完了したか否かを判断し、完了した場合には一連の処理を終了し、未完了であればステップＳ３０９において、処理対象のバンドを次のバンドに切り換える。具体的には、この切り換えは、ＤＭＡコントローラ２０５を再設定する他、制御部２０２におけるパラメータ（例えば、バンドメモリ領域のアドレス等）を変更することにより行う。バンドの切り替えが終了したら、新たなバンドを対象として、ステップＳ３０６及びＳ３０７を並行して実行する。
【００１１】
なお、ステップＳ３０６及びＳ３０７の並行処理において、ＤＭＡコントローラ２０５によるバス使用権の獲得要求と、展開処理のための制御部２０２によるバス使用権の獲得要求とのアービトレーションは、メモリコントローラ２０３によりなされる。
【００１２】
【発明が解決しようとする課題】
上記のようなバンド処理により、１ページ分の画像メモリを備える必要がなくなり、プリンタコントローラ２１０のコストを削減することができる。しかしながら、展開する画像の複雑化、プリンタエンジンの処理能力の向上などにより、展開処理がプリント処理よりも遅延し、プリンタエンジン２２０に対する画像データの供給が間に合わなくなる現象（以下、この現象をオーバランという）が生じ得る。
【００１３】
オーバランを防止するためには、１ページ分の画像メモリ（フルページメモリ）を備えることにより、展開処理とプリント処理との並行処理を回避することが最も効果的であると考えられるが、この場合、コストの増加が問題になることは言うまでもない。
【００１４】
また、一方で、オーバランを防止するためには、展開処理を高速化することが有効である。展開処理の高速化は、ＰＤＬデータ等の印刷情報（コマンド群）をプリミティブな中間データに変換し、その中間データに基づいて画像データを生成することとし（展開処理の単純化）、展開処理の実行部をハードウェア化することにより達成される。
【００１５】
具体的には、ランレングスデータの復号、ベクタ描画、画像データの描画等をソフトウェアにより実行するのではなく、ハードウェアにより実現することにより、展開処理を高速化することができる。
【００１６】
しかしながら、このような高速処理を実現するためのハードウェアで処理できるデータはプリミティブな中間データであるため、複雑な図形などを描画する場合には描画単位の数が膨大になる。したがって、描画単位毎の描画の高速化を実現することは可能であるか、複雑な図形などを描画する場合には、全体としての処理量が増大するため、展開処理に要する全体的な時間は短縮されず、オーバランを誘発することがある。また、生成すべき画像データの容量を中間データの量が超えてしまい、メモリ容量の削減というバンド処理による利点を無意味なものとすることになるという問題点がある。
【００１７】
また、オーバランを回避するために、予め展開処理に要する時間を予測し、展開時間が所定時間を越えると予測される場合には、解像度を低下させることで、実際の展開処理の時間を短縮するという方法もある。この予測の方法としては、印刷情報のデータ量に基づいて展開処理に要する時間を見積もる方法や、中間データに基づくプリミティブな描画単位の描画時間を論理的に求めて、その総和に基づいて展開処理に要する全体的な時間を見積もる方法などがある。しかしながら、このような解像度を低下させる方法は、オーバランを回避するために印刷の品位を低下させる点に決定的な問題がある。
【００１８】
さらに、プリント処理を開始する前に、バンドメモリを用いてバンド画像を順次展開し、生成された画像データを順次圧縮してメモリに格納し、１ページ分の圧縮された画像データが準備できた時点で、それを順に伸長しながらプリンタエンジンに供給する方法がある。しかしながら、この方法は、常に圧縮・伸長の処理を経て画像データがプリンタエンジンに供給されることになるため、スループットの低下を招くという点で問題である。
【００１９】
本発明は、上記の如き技術的背景に鑑みてなされたものであり、スループットの低下を抑えつつオーバランの発生を防止することを目的とする。
【００２０】
【課題を解決するための手段】
本発明に係る画像処理装置は、記録媒体上に画像を出力する画像処理装置であって、画像情報に基づいて画像データを生成する展開手段と、画像データを圧縮する圧縮手段と、圧縮した画像データを格納するためのメモリ手段と、前記メモリ手段に格納された画像データを伸長する伸長手段と、前記展開手段から供給される画像データと前記伸長手段から供給される画像データとに基づいて出力用の画像データを合成する合成手段と、前記合成手段により合成された出力用の画像データに基づいて記録媒体上に画像を出力する出力手段とを備えることを特徴とする。
【００２１】
上記の画像処理装置において、前記合成手段は、合成した出力用の画像データを順次前記出力手段に供給し、前記出力手段は、その出力用の画像データに基づいて順次記録媒体上に画像を出力することが好ましい。
【００２２】
上記の画像処理装置において、前記合成手段は、１ページよりも小さい領域に相当する２つの画像メモリを有し、一方の画像メモリを用いて出力用の画像データを生成している際に他方の画像メモリより順次出力用の画像データを読出して前記出力手段に供給し、これにより出力用の画像データの生成と記録媒体上への画像の出力とを並行して実行することが好ましい。
【００２３】
上記の画像処理装置において、前記２つの画像メモリは、バンド状の画像に係る画像データを保持するためのバンドメモリであることが好ましい。
【００２４】
上記の画像処理装置において、前記合成手段は、出力要求に係る画像情報に含まれる情報に基づいて、前記展開手段から供給される画像データと前記伸長手段から供給される画像データとに基づいて出力用の画像データを合成する際の処理内容を決定することが好ましい。
【００２５】
上記の画像処理装置において、外部機器と通信を行うための通信手段を更に備え、該通信手段を介して画像情報を受信することが好ましい。
【００２６】
上記の画像処理装置において、前記通信手段を介して、前記メモリ手段に格納した画像データを識別するための識別情報を前記外部機器に通知する通知手段を更に備えることが好ましい。
【００２７】
上記の画像処理装置において、前記通信手段を介して前記外部装置から与えられる指示に従って、前記メモリ手段に格納されている画像データを廃棄する廃棄手段を更に備えることが好ましい。
【００２８】
本発明に係る他の画像処理装置は、記録媒体上に画像を出力する画像処理装置であって、外部機器と通信する通信手段と、前記通信手段を介して前記外部機器から供給される圧縮された画像データを格納するためのメモリ手段と、前記メモリ手段に格納された画像データを伸長する伸長手段と、前記通信手段を介して前記外部機器から供給される画像情報に基づいて画像データを生成する展開手段と、前記展開手段から供給される画像データと前記伸長手段から供給される画像データとに基づいて出力用の画像データを合成する合成手段と、前記合成手段により合成された出力用の画像データに基づいて記録媒体上に画像を出力する出力手段とを備えることを特徴とする。
【００２９】
上記他の画像処理装置において、前記合成手段は、合成した出力用の画像データを順次前記出力手段に供給し、前記出力手段は、その出力用の画像データに基づいて順次記録媒体上に画像を出力することが好ましい。
【００３０】
上記他の画像処理装置において、前記合成手段は、１ページよりも小さい領域に相当する２つの画像メモリを有し、一方の画像メモリを用いて出力用の画像データを生成している際に他方の画像メモリより順次出力用の画像データを読出して前記出力手段に供給し、これにより出力用の画像データの生成と記録媒体上への画像の出力とを並行して実行することが好ましい。
【００３１】
上記他の画像処理装置において、前記２つの画像メモリは、バンド状の画像に係る画像データを保持するためのバンドメモリであることが好ましい。
【００３２】
上記他の画像処理装置において、前記合成手段は、前記外部機器から供給され前記通信手段を介して供給される画像情報に含まれる情報に基づいて、前記展開手段から供給される画像データと前記伸長手段から供給される画像データとに基づいて出力用の画像データを合成する際の処理内容を決定することが好ましい。
【００３３】
上記他の画像処理装置において、前記通信手段を介して前記メモリ手段に格納した画像データを識別するための識別情報を前記外部機器に通知する通知手段を更に備えることが好ましい。
【００３４】
上記他の画像処理装置において、前記通信手段を介して前記外部装置から与えられる指示に従って、前記メモリ手段に格納されている画像データを廃棄する廃棄手段を更に備えることが好ましい。
【００３６】
本発明に係る画像処理方法は、記録媒体上に画像を出力する画像処理方法であって、画像情報に基づいて画像データを生成する展開工程と、画像データを圧縮する圧縮してメモリに格納する圧縮工程と、前記メモリに格納された画像データを伸長する伸長工程と、前記展開工程により生成される画像データと前記伸長工程により伸長される画像データとに基づいて出力用の画像データを合成する合成工程と、前記合成工程により合成された出力用の画像データに基づいて記録媒体上に画像を出力する出力工程とを含むことを特徴とする。
【００３７】
本発明に係る他の画像処理方法は、記録媒体上に画像を出力する画像処理方法であって、外部機器と通信する通信手段を制御する通信制御工程と、前記通信手段を介して前記外部機器から供給される圧縮された画像データをメモリに格納する格納工程と、前記メモリに格納された画像データを伸長する伸長工程と、前記通信手段を介して前記外部機器から供給される画像情報に基づいて画像データを生成する展開工程と、前記展開工程により生成される画像データと前記伸長工程により伸長される画像データとに基づいて出力用の画像データを合成する合成工程と、前記合成工程により合成された出力用の画像データに基づいて記録媒体上に画像を出力する出力工程とを含むことを特徴とする。
【００３９】
本発明に係るメモリ媒体は、記録媒体上に画像を出力する画像処理のためのプログラムコードを収めたメモリ媒体であって、画像情報に基づいて画像データを生成する展開工程のコードと、画像データを圧縮する圧縮してメモリに格納する圧縮工程のコードと、前記メモリに格納された画像データを伸長する伸長工程のコードと、前記展開工程により生成される画像データと前記伸長工程により伸長される画像データとに基づいて出力用の画像データを合成する合成工程のコードと、前記合成工程により合成された出力用の画像データに基づいて記録媒体上に画像を出力する出力工程のコードとを含むことを特徴とする。
【００４０】
本発明に係る他のメモリ媒体は、記録媒体上に画像を出力する画像処理のためのプログラムコードを収めたメモリ媒体であって、外部機器と通信する通信手段を制御する通信制御工程のコードと、前記通信手段を介して前記外部機器から供給される圧縮された画像データをメモリに格納する格納工程のコードと、前記メモリに格納された画像データを伸長する伸長工程のコードと、前記通信手段を介して前記外部機器から供給される画像情報に基づいて画像データを生成する展開工程のコードと、前記展開工程により生成される画像データと前記伸長工程により伸長される画像データとに基づいて出力用の画像データを合成する合成工程のコードと、前記合成工程により合成された出力用の画像データに基づいて記録媒体上に画像を出力する出力工程のコードとを含むことを特徴とする。
【００４１】
本発明に係る記憶媒体は、コンピュータを制御するためのプログラムを格納するコンピュータ読取り可能な記憶媒体であって、画像情報に基づいて画像データを生成する展開ステップと、画像データを圧縮してメモリに格納する圧縮ステップと、前記メモリに格納された画像データを伸長する伸長ステップと、前記展開ステップで生成される画像データと前記伸長ステップで伸長される画像データとに基づいて、出力用の画像データを合成する合成ステップと、前記合成ステップで合成された出力用の画像データに基づいて画像を出力する出力ステップとを含むプログラムを備えることを特徴とする。
本発明に係る他の記憶媒体は、コンピュータを制御するためのプログラムを格納するコンピュータ読取り可能な記憶媒体であって、外部機器と通信する通信手段を制御する通信制御ステップと、前記通信手段を介して前記外部機器から供給される圧縮された画像データをメモリに格納する格納ステップと、前記メモリに格納された画像データを伸長する伸長ステップと、前記通信手段を介して前記外部機器から供給される画像情報に基づいて、画像データを生成する展開ステップと、前記展開ステップで生成される画像データと前記伸長ステップで伸長される画像データとに基づいて出力用の画像データを合成する合成ステップと、前記合成ステップで合成された出力用の画像データに基づいて画像を出力する出力ステップとを含むプログラムを備えることを特徴とする。
【００４２】
【発明の実施の形態】
以下、添付図面を参照しながら本発明の好適な実施の形態を説明する。
【００４３】
［第１の実施の形態］
この実施の形態に係るプリンタシステムは、概略的には図１に示す構成を備える。図４は、図１におけるプリンタコントローラ２１０の構成を示すブロック図である。
【００４４】
４０１は、ホストコンピュータ（外部装置）１００から送信されてくる印刷情報を受信したり、互いのステータス情報をやり取りするインターフェース部である。インターフェース部４０１は、例えば、パラレルインターフェース、シリアルインターフェース、ネットワークインターフェース等で構成される。
【００４５】
４０２は、プリンタ２００を統括的に制御する制御部である。具体的には、制御部４０２は、ＣＰＵ４０２ａ、制御プログラムを格納したメモリ４０２ｂを含み、該制御プログラムに基づいてＣＰＵ４０２ａが動作することにより、プリンタコントローラ２１０内の各デバイスを制御する。これにより、プリンタコントローラ２２０は、ホストコンピュータ１００から受信した印刷情報に基づいて画像データを生成し、その画像データをプリンタエンジン２２０に供給して出力画像を形成させる制御装置として機能する。
【００４６】
４０４は、ランダムアクセスメモリの一例としてのＤＲＡＭであり、ホストコンピュータ１００から送信されてくる印刷情報を格納する領域、その印刷情報に基づいて後述のラスタライザ４０６により生成される画像データを格納する領域その他の作業領域を有する。４０３は、ＤＲＡＭ４０４に対するアクセスやリフレッシュ等を制御するメモリコントローラである。
【００４７】
４０５は、画像データの圧縮／伸長を行う圧縮／伸長部４０５である。具体的には、圧縮／伸長部４０５は、メモリコントローラ４０３を介してＤＲＡＭ４０４と接続されており、ＤＲＡＭ４０４の所定領域に保持されている画像データを読み出して、その画像データを圧縮した後に、再びＤＲＡＭ４０４に格納する。また、プリント処理を実行する際には、必要に応じて、その圧縮された画像データを読出して伸長する。この伸長の速度は、プリンタエンジン２２０の動作速度、すなわち、プリンタエンジン２２０に対して画像データを供給する速度よりも速い。圧縮／伸長のアルゴリズムとしては、例えばＪＰＥＧやＪＢＩＧ等が好適である。
【００４８】
４０６は、ＤＲＡＭ４０４に一時的に保持されているプリミティブな中間データに基づいて画像データを生成（ラスタライズ）するラスタライザである。ここで、画像データを生成する際の基となるプリミティブな中間データは、ホストコンピュータ１００から受信した印刷情報に基づいて制御部４０２において生成され、メモリコントローラ４０３を介してＤＲＡＭ４０４の所定領域に格納される。ラスタライザ４０６は、ハードウェアで構成しても、ソフトウェアで構成しても構わないが、高速の展開処理（ラスタライズ）を可能にするためにはハードウェアで構成することが望ましい。
【００４９】
４０７は、制御部４０２からの命令に応じて複数の画像データを合成して最終的な出力画像を形成するための画像データ（以下、出力用画像データ）を生成する出力画像データ生成部である。一例を挙げると、出力画像データ生成部４０７は、例えば、予め形成されＤＲＡＭ４０４に保持されている画像データを順次読み出すと共に該画像データラスタライザ４０６から順次供給される画像データと合成（例えば、論理和演算を施す）して、エンジンインターフェース４０９からプリンタエンジン２２０に送出するための出力画像データをＤＲＡＭ４０４上の所定領域に生成する。
【００５０】
４０８は、プリント処理に際にして、制御部４０２からの命令に従って、ＤＲＡＭ４０４の所定領域に保持された出力画像データをエンジンインターフェース４０９にＤＭＡ転送するＤＭＡコントローラである。
【００５１】
４０９は、ＤＭＡ転送された画像データをプリンタエンジン２２０に送出する他、各種の制御命令をプリンタエンジン２２０に通知したり、プリンタエンジン２２０のステータス情報を受信したりするエンジンインターフェースである。
【００５２】
プリンタエンジン２２０は、エンジンインターフェース４０９より送出された画像データに基づいて紙などの記録媒体上に出力画像を形成するプリンタエンジンである。プリンタエンジン２２０における画像の形成方法は、例えば、電子写真方式が好適である。
【００５３】
図５は、出力画像データ生成部４０７における処理の一例を説明するための図である。５０１は、圧縮伸長部４０５により伸長された画像データに係る画像（以下、伸長画像）の一例、５０２は、ラスタライザ５０２により生成された画像データに係る画像（以下、展開画像）の一例、５０３は、画像５０１及び５０２を合成した画像（以下、合成画像）の一例を示している。より具体的には、図５に示す例は、出力画像データ生成部４０７において、グラデーション画像である伸長画像５０１に対して文字画像である展開画像５０２を上書きするようにして合成して合成画像５０３を得る様子を示している。
【００５４】
この実施の形態に係るプリンタは、上記のような伸長画像データと展開画像データとの合成の他、印刷処理（印刷情報の送信）に先立って予めＤＲＡＭ４０４の所定領域に保持された画像データ（ディスティネーションデータ）との合成も可能である。
【００５５】
図６は、図４に示すプリンタコントローラ２１０の一部の具体的な構成例を示すブロック図である。このプリンタコントローラ２１０においては、インターフェース４０１、制御部４０２、エンジンインターフェース４０９の他、圧縮／伸長部６０１、ラスタライザ４０６及び出力画像データ生成部４０７がバスマスタとなり得る。メモリコントローラ４０３は、ＤＲＡＭ４０４に対するアクセス、リフレッシュの制御の他、バスマスタとなり得る上記各デバイスの調停を行う。
【００５６】
出力画像データ生成部４０７は、圧縮／伸長部４０５により伸長された画像データ（伸長画像データ）をラッチする伸長データラッチ６０６、ラスタライザ４０６により生成された画像データをラッチする展開データラッチ６０７、既にＤＲＡＭ４０４上に形成され保管されている画像データ（ディスティネーション画像データ）をラッチするためのディスティネーションデータラッチ６０８を有する。さらに、制御部４０２から画像データを合成することが指定されている場合に、その内容に応じて、出力用画像データ生成部４０７は、伸長データラッチ６０６にラッチされている画像データと、展開データラッチ６０７及び／又はディステネーションデータラッチ６０８にラッチされている画像データを合成するための論理演算を実行する論理演算部６０９を備える。
【００５７】
図７は、画像データをプリンタ２００に登録するためにホストコンピュータ１００からプリンタ２００に送信する登録画像情報の例（１）〜（３）を示す図である。なお、登録する画像データとしては、例えばグラデーション画像に係る画像データが挙げられる。
【００５８】
図中、（１）〜（３）に示す３つの例において、７０１、７０４は、画像データを圧縮して登録する処理の開始を示す登録命令である。７０２は、登録命令に続くデータのデータ長、７０３は、登録する画像データのプリント時における座標及びその座標における画素値である描画データである。
【００５９】
また、７０５は、後続の描画命令の命令数を示す命令数、７０６は、登録する画像データのプリント時における座標及びその座標についての描画命令の集合である（１つの描画命令で描画が完結する描画命令の集合体）。
【００６０】
また、（３）に示す例は、画像データを圧縮して登録する処理の開始を示す登録開始命令７０７と、その終了を示す登録終了命令７０９とを独立の命令とし、両命令の間に、座標／描画命令群７０８を挟んだものである。
【００６１】
上記のような登録制御情報に基づいて登録された画像データ（以下、登録画像データ）は、プリントする文書毎に固有の画像データと合成されて出力される。
【００６２】
図８は、登録制御情報に基づいて登録された画像データを指定して使用する場合の印刷情報の例（１）〜（３）を示す図である、
登録画像データを使用する場合、ホストコンピュータ１００は、その使用に関する命令を含む印刷情報を生成し、プリンタ２００に送信する。なお、登録画像データを使用しない場合には、当該命令を印刷情報に含める必要はない。
【００６３】
（１）は、登録画像データをプリント対象となるページの全面に関して使用する場合の印刷情報の一例である。８０１は登録画像データを使用することを指示する使用命令、８０２は登録画像データを指定するＩＤ、８０３はラスタライザ４０６により展開処理を開始することを指示する展開開始命令、８０４は出力画像データ生成部４０７において、登録画像データ（伸長画像データ）及び／又はディスティネーション画像データと、当該印刷情報による展開画像データとを合成する際の処理内容である論理（合成論理）、８０５は座標及びその座標についての描画命令の集合である。
【００６４】
（２）は、プリントするページにおける任意の矩形領域について登録画像データを使用する場合の印刷情報の一例である。８０６は登録画像データを使用することを指示する使用命令、８０７は登録画像データを指定するＩＤである。８０８は登録画像データを使用する範囲を示す座標（例えば、ページの先頭からのオフセット値）であり、登録画像データのいずれの領域を当該印刷情報による展開画像データと合成するかを指示する。また、８０９はラスタライザ４０６により展開処理を開始することを指示する展開開始命令、８１０は、出力画像データ生成部４０７において、登録画像データ（伸長画像データ）及び／又はディスティネーション画像データと、当該印刷情報による展開画像データとを合成する際の論理（合成論理）、８１１は座標及びその座標についての描画命令の集合である。
【００６５】
（３）は、描画処理の単位毎に登録画像データの使用するか否かを指定する場合の印刷情報の一例である。８１２は登録画像データの使用の開始を指示する使用開始命令、８１３は登録画像データの指定するＩＤである。８１４はラスタライザ４０６により展開処理を開始することを指示する展開開始命令、８１５は出力用画像データ４０７において、登録画像データ（伸長画像データ）及び／又はディスティネーション画像データと、当該印刷情報による展開画像データとを合成する際の論理（合成論理）、８１６は座標及びその座標についての描画命令の集合、８１７は当該印刷情報に基づくラスタライザ４０６による展開画像データと登録画像データとの相対的な位置関係を示すオフセットである。また、８１８は、圧縮登録使用関し命令８１２により登録画像データの使用を終了することを指示する圧縮登録終了命令である。なお、（３）に示す例は、座標／描画命令群８１６を一群として登録画像データの使用を指示する形式であるが、描画命令単位で使用する登録画像データを指定するために、登録画像データのＩＤを各描画命令に付随させても良い。
【００６６】
図９は、プリンタ２００における画像データの登録処理の流れを示すフローチャートである。なお、このフローチャートに示す処理は、制御部４０２、より詳しくはメモリ４０２ｂに格納された制御プログラムに基づいて動作するＣＰＵ４０２ａにより制御される。
【００６７】
この登録処理は、ホストコンピュータ１００がプリンタ２００に対して前述の登録制御情報を送信することにより起動される。したがって、登録処理を行うか否か及び登録画像データを使用（合成）するか否かはホストコンピュータ１００側で判断することになる。ホストコンピュータ１００側の具体的な処理に関しては後述する。
【００６８】
先ず、ステップＳ９０１では、ホストコンピュータ１００からデータを受信し、ステップＳ９０２では、その受信データをＤＲＡＭ４０４の受信バッファ領域に格納する。なお、このデータが画像登録情報である場合は、図７の（１）〜（３）のいずれかに示す形式で記述されているものとする。ステップＳ９０３では、受信バッファ領域に格納した受信データを解析する。
【００６９】
ステップＳ９０３では、受信データが登録画像情報であるか否かを判断し、登録画像情報であればステップＳ９０５に進み、ラスタライザ４０６により当該画像登録情報に基づいてＤＲＡＭ４０４上のバンドバッファ領域上に画像を展開し画像データを生成する。具体的には、図７の（２）に示す登録画像情報を受信した場合に関して説明すると、データ命令数７０５により座標／描画命令群７０６の末尾を確認し、各座標／描画命令に基づいてＤＲＡＭ４０４上のバンドメモリ領域に画像を形成する。ここで、このプリンタ２００は、ＤＲＡＭ４０４上に２つのバンドメモリを有し、これにより印刷処理の際に前述のバンド処理を実行するが、ステップＳ９０５における展開処理の際には、この展開処理と並行してプリント処理を実行する必要がないため、２つのバンドメモリ領域の双方を使用することができる。
【００７０】
ステップＳ９０６では、圧縮／伸長部４０５により、バンドメモリ領域上に生成された画像データを圧縮し、ＤＲＡＭ４０４内の所定領域に格納する。
【００７１】
ステップＳ９０７では、圧縮してＤＲＡＭ４０４に格納した画像データを識別するためのＩＤ番号を決定し、これをホストコンピュータ１００に通知する。このＩＤ番号に基づいて、ホストコンピュータ１００は、送信に係る画像登録情報（登録画像データ）を識別し、印刷情報を生成する際にその登録画像データを指定することができる。
【００７２】
ステップＳ９０８では、後続のデータの受信要求があるか否かを判断し、受信要求がある場合には、ステップＳ９０１に戻り、上記の処理を繰り返す。
【００７３】
ステップＳ９０４において、受信データが画像登録情報でないと判断し場合には、ステップＳ９０９に進み、そのデータが登録画像データの廃棄命令であるか否かを判断する。ここで、廃棄命令には、１又は複数の廃棄すべき登録画像データのＩＤ番号が含まれる。
【００７４】
受信データが廃棄命令である場合には、ステップＳ９１０に進み、この廃棄命令に含まれるＩＤ番号に対応する登録画像データを廃棄する。一方、受信データが廃棄命令でない場合には、その内容に応じた処理を実行する。例えば、受信データが印刷情報である場合には、図１０に示すステップＳ１００４以降の処理を実行することになる。
【００７５】
なお、ステップＳ９０１〜Ｓ９０３に関して、受信、格納、解析の処理を直列的に動作するものとして説明したが、データの受信、格納、解析を夫々実行するタスクを並列に実行しても良い。
【００７６】
図９に示す登録処理により必要な画像データの登録が完了した後に、ホストコンピュータ１００は、登録画像データを使用してプリント処理を実行するための印刷情報をプリンタ１００に送信する。この印刷情報のフォーマットは、図８の（１）〜（３）のいずれかに示すものである。
【００７７】
図１０は、プリンタ２００における印刷処理（印刷情報に基づく画像の出力処理）の流れを示すフローチャートである。先ず、ステップＳ１００１では、ホストコンピュータ１００からデータを受信し、ステップＳ１００２では、その受信データをＤＲＡＭ４０４の受信バッファ領域に格納する。ステップＳ１００３では、受信バッファ領域に格納した画像情報を解析する。なお、ステップＳ１００１〜Ｓ１００３の処理は、図９に示す登録処理におけるステップＳ９０１〜Ｓ９０３の処理と同様であり、実際には、受信、格納、解析に関する共通のタスクに基づいて実行される。
【００７８】
ステップＳ１００４では、印刷情報に基づいて中間データを作成する。ここで、印刷情報に使用命令８０１又は使用開始命令８１２が含まれる場合、すなわち、登録画像データを使用する場合には、使用する登録画像データと当該印刷情報に基づいて生成される展開画像データとの関係やリンク状況を考慮して、描画命令を中間データに変換する。
【００７９】
ステップＳ１００５では、ステップＳ１００３における解析結果に基づいて、当該印刷情報によって登録画像データ（先の処理において登録されている画像データ）を使用することが指示されているか否かを判断する。そして、登録画像データを使用することが指示されている場合にはステップＳ１００６に進み、指示されていない場合にはステップＳ１００７に進む。なお、前述のように、この実施の形態においては、登録画像データを使用する場合には、印刷情報は、図８の（１）〜（３）のいずれかのフォーマットを有する。
【００８０】
ステップＳ１００６では、印刷情報のＩＤ（例えば、８０２）に基づいて、ＤＲＡＭ４０４の圧縮画像領域に保持されている登録画像データのうち当該印刷情報に係る印刷処理において使用する登録画像データを特定し、その特定した画像データを圧縮／伸長部４０５により伸長させるために、圧縮／伸長部４０５を伸長モードにセットする。
【００８１】
ステップＳ１００７では、当該印刷情報に含まれる座標／描画命令群（例えば、８０５）に基づいて生成される画像データと、先の処理においてＤＲＡＭ４０４内の画像メモリ領域（ディスティネーション領域）に描画されているディスティネーションデータ及び／又はＤＲＡＭ４０４の圧縮画像領域に圧縮されて保持されている登録画像データとを合成する際に画像合成部４０７において施す論理演算の内容（合成論理）を出力画像データ生成部４０７（論理演算部６０９）にセットする。この演算の内容としては、例えば、上書き、下書き、画素間における画素値の演算などがある。
【００８２】
ステップＳ１００８では、制御部４０２は、各デバイスに対してバンド処理の実行、すなわち、出力画像データの生成処理及びプリント処理の開始を指示する。前述のように、このプリンタ２００は、ＤＲＡＭ４０４上に２つのバンドメモリ領域を有し、一方のバンドメモリ領域を使用して出力画像データを生成する際に、他方のバンドメモリに既に準備された画像データをプリンタエンジン２２０に供給してプリント処理を実行するバンド処理を実行する。このバンド処理により、画像を展開（描画）するためのメモリ領域を１ページ分の画像メモリよりも小さくすることができる。
【００８３】
プリント処理は、ＤＭＡコントローラ２０５に対して、ＤＲＡＭ４０４の該当するバンドメモリ領域に格納された出力画像データの先頭アドレスをセットし、エンジンインターフェース２０６を介してプリンタエンジン２２０を起動する。そして、ＤＭＡコントローラ２０５は、プリンタエンジン２２０が発生する垂直／水平同期信号に従って、出力画像データをＤＲＡＭ４０４の出力画像データ領域からエンジンインターフェース２０６に転送する。これにより、出力画像データがプリンタエンジン２２０の動作に同期して送出され、記録媒体上に画像が出力される。
【００８４】
出力画像データの生成処理（ステップＳ１００９〜Ｓ１０１４）は、上記のプリント処理と並行して実行される。このプリンタ２００においては、登録画像データ及び／又は予め準備されたディスティネーションデータと、当該印刷情報に係る画像データとを合成することにより、プリンタエンジン２２０に供給するための出力画像データを生成する。したがって、出力画像データの生成処理とプリント処理との並行処理（バンド処理）を実行する際の展開処理の負担を小さくすることができる。より具体的には、このプリンタシステムでは、印刷しようとする画像が複雑な場合には、その画像情報を、印刷情報の一部としてプリンタに送信する第１の画像情報と、印刷情報の送信に先立ってプリンタに登録する第２の画像情報とに分離し、第２の画像情報に係る画像データを予めプリンタに登録し、バンド処理を実行する際に第１の画像情報のみに関して展開処理を実行し、その第１の画像情報に係る画像データと予め生成された第２の画像情報に係る画像データとを合成する。その結果、バンド処理における展開処理の負担が軽減されてバンド処理における展開処理が高速化され、オーバランが効果的に防止される。
【００８５】
以下、出力画像の生成処理に関して具体的に説明する。ステップＳ１００９、Ｓ１０１０、Ｓ１０１１の処理は、該当するデバイスにより並列して実行される。ステップＳ１００９では、ラスタライザ４０６が、中間データ（ステップＳ１００４で生成）をメモリコントローラ４０３を介してＤＲＡＭ４０４の所定領域から読み込み、この中間データに基づいて、ＤＲＡＭ４０４の該当するバンドメモリ上に画像を展開し、その画像データを展開データラッチ６０７にラッチさせる。
【００８６】
ステップＳ１００９の処理と並行して、ステップＳ１０１０において、ディスティネーションデータラッチ６０８は、ディスティネーションデータをメモリコントローラ４０３を介してＤＲＡＭ４０４のディスティネーション領域から読み込んでラッチする。
【００８７】
さらに、ステップＳ１００９及びＳ１０１０の処理と並行して、ステップＳ１０１１において、圧縮／伸長部４０５は、ステップＳ１００４で生成された中間データに含まれている、登録画像データのＩＤ（例えば、８０２）に基づいて生成された情報に従って、使用する登録画像データを特定する。そして、圧縮／伸長部４０５は、特定した登録画像データをメモリコントローラ４０３を介してＤＲＡＭ４０４の圧縮画像領域から読み込み、その登録画像データを伸長し、伸長データラッチ６０６にラッチさせる。
【００８８】
上記のステップＳ１００９、Ｓ１０１０及びＳ１０１１の各処理において、処理対象のデータに依存する処理速度（例えば、展開処理や伸長処理の処理速度）の差やメモリコントローラ４０３によるアクセスの調停などの要因により、所定量の画像データのラッチが完了する時刻が各ラッチ毎に異なる。そこで、この実施の形態においては、各処理の同期をとるために、ステップＳ１０１２において、制御部４０２が、各ラッチ６０６〜６０８により画像データのラッチが完了したか否かを判断し、所定量の画像データが各ラッチにラッチされた後に（ステップＳ１０１２において”Ｙｅｓ”）、次のステップであるステップＳ１０１３に進む。
【００８９】
ステップＳ１０１３では、論理演算部６０９が、各ラッチ６０６〜６０８（合成の対象とならない画像データをラッチするためのラッチを除く）から画像データを読出して、ステップＳ１００７においてセットされた合成論理に基づいて、これらの画像データに論理演算を施して、これにより画像データを合成した出力画像データを生成する。
【００９０】
ステップＳ１０１４では、論理演算部６０９において処理した結果である出力画像データをメモリコントローラ４０３を介してＤＲＡＭ６０５の該当するバンドメモリ領域に格納する。以上の処理により、１処理単位分（１バンド分）の出力画像データの生成が完了する。
【００９１】
ステップＳ１０１５では、１ページ分の画像データの終了が完了したか否かを判断し、完了していなければステップＳ１００５に戻り、完了していれば一連の処理を終了する。
【００９２】
上記の処理における１処理単位は特に限定されず、例えば、上記のようにバンドを単位としても良いし、矩形領域を単位としても良い。なお、この実施の形態においては、各ラッチ６０６〜６０８は、１処理単位に相当する容量を備える必要があるが、ステップＳ１０１３における処理単位を細かくすることにより（１処理単位を実行するためにステップＳ１００９〜Ｓ１０１４の処理を繰り返して実行する）、各ラッチの容量を小さくすることもできる。
【００９３】
次に、ホストコンピュータ１００側の動作を説明する。図１２は、ホストコンピュータ１００の概略構成を示すブロック図である。ホストコンピュータ１００は、ＣＰＵ１１０と、ＣＰＵ１１０に供給するプログラムを格納するメモリ１２０と、プリンタ２００と接続するためのインターフェース１３０と、キーボードやＣＲＴ等により構成される入出力部１５０とを備えている。
【００９４】
ＣＰＵ１１０は、メモリ１２０に格納されたアプリケーションプログラム１２１、プリンタドライバプログラム１２２に基づいて動作し、これによりホストコンピュータ１００の動作を規定する。
【００９５】
図１３は、プリンタドライバ１２２に基づくホストコンピュータ１００の処理の流れを示すフローチャートである。先ず、ステップＳ１３０１では、ＣＰＵ１１０は、文書等の編集を制御するアプリケーションプログラム１２１より画像情報を取得する。そして、ステップＳ１３０２では、当該画像情報に基づく画像データの生成時間を見積もる。この見積もりは、例えば、画像情報のデータ量等に基づいて行うことができる。
【００９６】
ステップＳ１３０３では、ステップＳ１３０２で見積もった画像データの生成時間が予め定められた基準時間を超えているか否かを判断する。ここで、基準時間は、画像データの生成時間が当該基準時間を超えている場合にプリンタ２００においてオーバランが発生する危険性があることを示す時間とする。
【００９７】
見積もった生成時間が基準時間を超えている場合、すなわち、オーバランの危険性がある場合には、ステップＳ１３０４において画像情報を分割する。この分割の方法としては種々の方法が考えられるが、例えば、画像情報に係る画像がグラデーション画像に文字・図形画像を重ねた画像である場合には、グラデーション画像に係る画像情報と文字・図形画像に係る画像情報とに分割することが好適である。分割した画像情報のうち１つの画像情報は、印刷情報の一部を構成する画像情報（第１の画像情報）とし、他の画像情報（上記の第２の画像情報）は、登録画像情報の一部を構成する画像情報（第２の画像情報）とする。
【００９８】
ステップＳ１３０５では、第２の画像情報に基づいて図７の（１）〜（３）のいずれかに示すフォーマットに従って登録画像情報を作成する。ステップＳ１３０６では、ステップＳ１３０５で作成した登録画像情報をプリンタ２００に送信する。これにより、プリンタ２００に登録画像情報に係る画像データが登録されることになる。なお、登録が完了すると、前述のように、登録に係る画像データのＩＤが送信されてくる。
【００９９】
この登録された画像データ（登録画像データ）は、前述のように、ホストコンピュータ１００からの指示によって、必要に応じて消去することができる。
【０１００】
ステップＳ１３０７では、第１の画像情報に基づいて図８の（１）〜（３）のいずれかに示すフォーマットに従って印刷情報を作成する。この印刷情報には、先に送信した登録画像情報に基づいて登録された画像データを使用するために、当該画像データを識別するためのＩＤを含める。
【０１０１】
ステップＳ１３０８では、ステップＳ１３０６で作成した印刷情報をプリンタ２００に送信する。これにより、プリンタ２００は、第１の画像情報に係る画像データと第２の画像情報に係る画像データとを合成論理に従って合成した出力画像データを生成し、その出力画像データに基づく出力画像を形成する。
【０１０２】
上記の説明は、ホストコンピュータ側で登録画像情報と印刷情報とを作成するものであったが、この処理をプリンタ側で実行することもできる。この場合も上記の説明と同様に、先ず、登録画像情報に基づいて画像データを生成・登録し、次に、この印刷情報に基づいて画像データを生成しながら登録画像データと合成して出力画像データを生成すると共にプリント処理を並行して実行する。
【０１０３】
また、上記の説明は、画像データを登録するメモリとしてＤＲＡＭを採用したものであるが、その代わりにハードディスク等のメモリを採用することもできる。この場合、登録画像データを読み出す速度が遅くなるが、この読み出しに要する時間が、ラスタライザ４０６による画像データの展開処理の時間よりも短ければ、出力画像データの生成時間には影響を与えない。
【０１０４】
以上のように、オーバランが発生する危険性がある場合に、印刷に供する画像情報を分離して、一方の画像情報に係る画像データをプリンタに登録し、バンド処理を実行する際に、印刷情報に係る画像情報のみを展開し、その展開した画像データと登録画像データと合成して出力画像データを生成することにより、バンド処理における展開処理の負担を軽減し、オーバランの発生を防止することができる。
【０１０５】
［第２の実施の形態］
この実施の形態は、登録画像データの生成及び圧縮をホストコンピュータ１００側で行うものである。すなわち、この実施の形態においては、ラスタライザ４０６と同様の機能を実現する画像データの生成手段（例えば、ソフトウェア）と、プリンタ２００の伸長のアルゴリズムに適合した圧縮アルゴリズムを実現する圧縮手段（例えば、ソフトウェア）をホストコンピュータ１００に備え、ホストコンピュータ１００において、登録のための画像データを生成すると共にその画像データを圧縮してプリンタ２００に送信し、プリンタ２００に登録する。
【０１０６】
なお、この実施の形態に係るプリンタシステムは、特に断わらない限り第１の実施の形態に係るプリンタシステムと同様のハードウェア構成を有するものとする。
【０１０７】
図１１は、この実施の形態に係るプリンタ２００の動作を示すフローチャートである。
【０１０８】
ステップＳ１１０１では、ホストコンピュータ１００よりデータを受信し、ステップＳ１１０２では、その受信データをＤＲＡＭ４０４の受信バッファ領域に格納する。ステップＳ１１０３では、受信データが登録用の画像データであるか否かを判断し、登録用の画像データであればステップＳ１１０４に進み、登録用の画像データでなければステップＳ１１０５に進む。
【０１０９】
ここで、登録用の画像データは、ホストコンピュータ１００において、上記の第２の画像情報に基づいて生成（展開）した画像データであって、圧縮／伸長部４０５における伸長アルゴリズムに適合した圧縮アルゴリズムで圧縮された画像データである。また、登録用の画像データは、例えば図７の（１）〜（３）のいずれかに示す画像登録情報の描画命令群を画像データで置換したフォーマットに従って送信される。
【０１１０】
ステップＳ１１０４では、受信に係る登録用の画像データをＤＲＡＭ４０４の圧縮画像領域に格納して、その画像データを識別するためのＩＤを付与し、そのＩＤをホストコンピュータ１００に通知する。
【０１１１】
ステップＳ１１０３において、受信データが登録用の画像データでないと判断した場合、すなわち、受信データが印刷情報である場合には、ステップＳ１１０５において、その受信データを解析し、ステップＳ１１０６において、印刷情報に基づいて中間データを作成する。ここで、印刷情報に使用命令８０１又は使用開始命令８１２が含まれる場合、すなわち、登録画像データを使用する場合には、使用する登録画像データと当該印刷情報に基づいて生成される展開画像データとの関係やリンク状況を考慮して、描画命令を中間データに変換する。以降の処理は、第１の実施の形態と同様であるので説明を省略する。
【０１１２】
ところで、図１１のフローチャートにおいては、登録画像データを廃棄するためのステップを省略しているが、この実施の形態においても、第１の実施の形態と同様に、ホストコンピュータ１００からの指示に従って登録画像データを廃棄することができる。
【０１１３】
また、登録画像データの廃棄は、出力画像データの生成処理が完了した後に常に実行するようにしても良い（第１の実施の形態についても同様）。
【０１１４】
［第３の実施の形態］
上記の第１及び第２の実施の形態は、１ページ分の画像メモリを有するプリンタにも適用することができる。具体的には、１ページ分の描画領域をＤＲＡＭ４０４上に備え、図１０又は図１１のフローチャートに示す処理の流れを次のように変更すれば良い。
【０１１５】
すなわち、ステップＳ１００８において、バンド処理を開始する代わりに、出力画像の生成処理（ステップＳ１００９〜１０１４）のみを開始し（すなわち、プリント処理を開始しない）、ステップＳ１０１５において、１ページ分の出力画像データの生成が完了したと判断した後に、プリント処理を実行するよう処理の流れを変更することにより、第１及び第２の実施の形態を１ページ分の画像メモリ（描画領域）を有するプリンタに適用することができる。
【０１１６】
［他の実施の形態］
本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【０１１７】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【０１１８】
この場合、記憶媒体から読出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１１９】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【０１２０】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１２１】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１２２】
【発明の効果】
本発明に拠れば、スループットの低下を抑えつつオーバランの発生を防止することができる。
【０１２３】
【図面の簡単な説明】
【図１】一般的なプリンタシステムの構成を示す図である。
【図２】プリンタコントローラの構成を示すブロック図である。
【図３】プリンタコントローラの動作を示すフローチャートである。
【図４】プリンタコントローラの構成を示すブロック図である。
【図５】出力画像データ生成部における処理の一例を説明するための図である。
【図６】プリンタコントローラの一部の具体的な構成例を示すブロック図である。
【図７】画像データをプリンタに登録するためにホストコンピュータからプリンタに送信する登録画像情報の例を示す図である。
【図８】登録制御情報に基づいて登録された画像データを指定して使用する場合の印刷情報の例を示す図である、
【図９】プリンタにおける画像データの登録処理の流れを示すフローチャートである。
【図１０】プリンタにおける印刷処理の流れを示すフローチャートである。
【図１１】第２の実施の形態に係るプリンタの動作を示すフローチャートである。
【図１２】ホストコンピュータの概略構成を示すブロック図である。
【図１３】プリンタドライバに基づくホストコンピュータの処理の流れを示すフローチャートである。
【図１】
0003715749.tif 000002
【図２】
0003715749.tif 000003
【図３】
0003715749.tif 000004
【図４】
0003715749.tif 000005
【図５】
0003715749.tif 000006
【図６】
0003715749.tif 000007
【図７】
0003715749.tif 000008
【図８】
0003715749.tif 000009
【図９】
0003715749.tif 000010
【図１０】
0003715749.tif 000011
【図１１】
0003715749.tif 000012
【図１２】
0003715749.tif 000013
【図１３】
0003715749.tif 000014