(57)【特許請求の範囲】
【請求項１】
ホストコンピュータから入力される印刷データから加工された中間データからビットマップデータを生成して印刷する印刷装置であって、
前記中間データを指定された印字位置に従いバンド単位に分類してページバッファメモリに記憶する第１記憶手段と、
前記中間データをバンド単位に読み出して、バンドバッファメモリに１バンド単位づつビットマップデータとして描画する描画手段と、
前記バンドバッファメモリに描画されたビットマップデータを符号化して圧縮し、画像情報格納メモリに記憶する符号化手段と、
前記符号化手段で符号化し圧縮した圧縮データを前記画像情報格納メモリから読み出し、読み出された圧縮データを復号化して伸張し、前記バンドバッファメモリにビットマップデータを再生する復号化手段と、
前記入力される印刷データから生成される中間データを順次、前記ページバッファメモリに記憶している間に、１ページ分の中間データが前記ページバッファメモリに記憶できるか判断する判断手段と、
前記判断手段により１ページ分の中間データを前記ページバッファメモリに記憶できないと判断されると、前記ページバッファメモリに既に記憶済みの１ページ分に満たない中間データを、それぞれ分類された該当するバンド位置のビットマップデータとして前記描画手段を用いて前記バンドバッファメモリに描画し、前記符号化手段により該描画されたビットマップデータを符号化して前記画像情報格納メモリに記憶すべく制御する第１制御手段と、
前記第１制御手段により処理された中間データが記憶されていた領域のページバッファメモリを解放する解放手段と、
前記解放手段により解放されたページバッファメモリに、１ページの残りの中間データをバンドに分類して記憶する第２記憶手段と、
前記第２記憶手段により前記ページバッファメモリに新たに記憶された中間データに該当するバンド位置の圧縮データが前記画像情報格納メモリに存在するか判定する判定手段と、
前記判定手段により該当するバンド位置の圧縮データが前記画像情報格納メモリに存在すると判定されると、前記復号化手段により前記画像情報格納メモリから圧縮データを読み出して前記バンドバッファメモリにビットマップデータを再生し、再生されたビットマップデータに、前記描画手段により当該バンド位置の残りの中間データを描画することによりビットマップデータを合成し、一方、前記判定手段により該当するバンド位置の圧縮データが前記画像情報格納メモリに存在しないと判定されると、前記描画手段により当該バンド位置の残りの中間データを前記バンドバッファメモリにビットマップデータとして描画し、前記符号化手段により該ビットマップデータを符号化して前記画像情報格納メモリに記憶すべく制御する第２制御手段と、
前記第２制御手段により生成される１ページ分の圧縮データについては、バンド単位に前記復号化手段を用いて前記バンドバッファメモリに伸張して得られるビットマップデータを印刷部に転送し、前記判断手段により１ページ分の中間データ前記ページバッファメモリに記憶できると判断された場合に前記ページバッファメモリに記憶されている中間データについては、前記描画手段を用いて前記バンドバッファメモリに描画されるビットマップデータを前記印刷部に転送する転送制御手段と、
を有することを特徴とする印刷装置。
【請求項２】
前記中間データは、ホストコンピュータから入力されるページ記述言語形式の印刷データをビットマップデータに生成し易い様に加工したデータであることを特徴とする請求項１に記載の印刷装置。
【請求項３】
１ページ分の圧縮データが前記画像情報格納メモリに格納されるまで、前記第１制御手段、前記解放手段、前記第２記憶手段、前記判定手段、および前記第２制御手段の各処理を繰り返すことを特徴とする請求項１または２に記載の印刷装置。
【請求項４】
ホストコンピュータから入力される印刷データから加工された中間データからビットマップデータを生成して印刷する印刷装置におけるデータ制御方法であって、
前記中間データを指定された印字位置に従いバンド単位に分類してページバッファメモリに記憶する第１記憶工程と、
前記中間データをバンド単位に読み出して、バンドバッファメモリに１バンド単位づつビットマップデータとして描画する描画工程と、
前記バンドバッファメモリに描画されたビットマップデータを符号化して圧縮し、画像情報格納メモリに記憶する符号化工程と、
前記符号化工程で符号化し圧縮した圧縮データを前記画像情報格納メモリから読み出し、読み出された圧縮データを復号化して伸張し、前記バンドバッファメモリにビットマップデータを再生する復号化工程と、
前記入力される印刷データから生成される中間データを順次、前記第１記憶工程で前記ページバッファメモリに記憶している間に、１ページ分の中間データが前記ページバッファメモリに記憶できるか判断する判断工程と、
前記判断工程により１ページ分の中間データを前記ページバッファメモリに記憶できないと判断されると、前記ページバッファメモリに既に記憶済みの１ページ分に満たない中間データを、それぞれ分類された該当するバンド位置のビットマップデータとして前記バンドバッファメモリに描画し、該描画されたビットマップデータを符号化して前記画像情報格納メモリに記憶すべく制御する第１制御工程と、
前記第１制御工程により処理された中間データが記憶されていた領域のページバッファメモリを解放する解放工程と、
前記解放工程により解放されたページバッファメモリに、１ページの残りの中間データをバンドに分類して記憶する第２記憶工程と、
前記第２記憶工程により前記ページバッファメモリに新たに記憶された中間データに該当するバンド位置の圧縮データが前記画像情報格納メモリに存在するか判定する判定工程と、
前記判定工程により該当するバンド位置の圧縮データが前記画像情報格納メモリに存在すると判定されると、前記画像情報格納メモリから圧縮データを読み出して前記バンドバッファメモリにビットマップデータを再生し、再生されたビットマップデータに、当該バンド位置の残りの中間データを描画することによりビットマップデータを合成し、一方、前記判定工程により該当するバンド位置の圧縮データが前記画像情報格納メモリに存在しないと判定されると、当該バンド位置の残りの中間データを前記バンドバッファメモリにビットマップデータとして描画し、該ビットマップデータを符号化して前記画像情報格納メモリに記憶すべく制御する第２制御工程と、
前記第２制御工程により生成される１ページ分の圧縮データについては、バンド単位に前記バンドバッファメモリに伸張して得られるビットマップデータを印刷部に転送し、前記判断工程により１ページ分の中間データ前記ページバッファメモリに記憶できると判断された場合に前記ページバッファメモリに記憶されている中間データについては、前記バンドバッファメモリに描画されるビットマップデータを前記印刷部に転送する転送制御工程と、
を有することを特徴とするデータ制御方法。
【請求項５】
前記中間データはホストコンピュータから入力されるページ記述言語形式の印刷データをビットマップデータに生成し易い様に加工したデータであることを特徴とする請求項４に記載のデータ制御方法。
【請求項６】
１ページ分の圧縮データが前記画像情報格納メモリに格納されるまで、前記第１制御工程、前記解放工程、前記第２記憶工程、前記判定工程、および前記第２制御工程の各処理を繰り返すことを特徴とする請求項４または５に記載のデータ制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、中間データからビットマップデータを生成して印刷するレーザビームプリンタ等の印刷装置及び該印刷装置におけるデータ制御方法に関する。
【０００２】
【従来の技術】
レーザビームプリンタ等のページプリンタでは、１ページ分の出力画像をビットマップメモリに格納しておく必要があるが、この方法としてフルページビットマップを必要とするフルペイント方式と数分の１ページのバンドビットマップで１ページの出力画像を生成可能なバンディング方式とが存在する。
【０００３】
フルペイント方式では、１ページ分のビットマップメモリを必要とし、印刷すべきデータは、ビットマップメモリ上に画像を生成した後、印刷機構部（プリンタエンジン）に転送される。この方式では、ビットマップメモリとして、例えば、６００ＤＰＩの解像度でＡ３用紙の場合、約８ＭＢのメモリを必要とするが、多量なデータや多くの画像生成時間を必要とするデータに対しても、必ず１ページ分の出力画像を生成できるので、入力データの印刷出力を保証することができる。
【０００４】
一方、バンディング方式は、１ページ分の印刷すべきデータを、装置内の中間データとして格納しておき、数分の１ページ分のビットマップメモリをリングバッファ（バンドバッファ）として利用して、出力画像の生成と転送を印字機構部（プリンタエンジン）からの同期信号に基づいて制御する必要がある。
【０００５】
この方式では、フルペイント方式に比べ、少ないメモリ容量で動作することができ、出力画像の生成（レンダリング）と印字機構部（プリンタエンジン）への転送を同時に実行できるので高速に処理できる。
【０００６】
【発明が解決しようとする課題】
従来のビットマップメモリは、フルペイント方式では１ページ分のビットマップメモリを必要とし、バンディング方式でも、数分の１ページを必要とするため、印刷装置の解像度、出力可能用紙サイズに比例して、各々のビットマップメモリ容量が増大する問題点があった。
【０００７】
また、従来のバンディング方式は、フルペイント方式に比べ、１ページ分の印刷すべきデータを、装置内の中間データで格納しておく必要があるため、１ページ分の中間データを格納できない場合、プリンタエンジンの同期信号に基づいて印刷を行なうことができなかった（メモリファクタによる障害）。
【０００８】
また、印字機構部（プリンタエンジン）の同期信号に合わせて画像生成して転送する必要があるが、多量な中間データのために、定められた時間以内で、出力画像を生成することができず、オーバーランを生じプリンタエンジンの同期信号に基づいて印刷を行なうことができなかった（タイムファクタによる障害）。
【０００９】
このように、従来バンディング方式は、ビットマップメモリの容量を削減可能であるが、入力された印刷データを出力できない場合が存在する問題点があった。
【００１０】
本発明は、上記の問題点を解決するためになされたもので、中間データを１ページ分記憶する毎に生成されるビットマップデータをバンド単位に符号化処理（符号化して圧縮）を実行して圧縮データを生成し、当該圧縮データを１ページ分記憶する毎にバンド単位に復号化処理（復号化して伸張）を実行することで、印刷すべきビットマップデータの生成時間を一定時間以下に抑え、ビットマップメモリ容量を削減することを目的とする。
【００１１】
本発明は、上記問題点を解決する為になされたもので、生成されるビットマップデータに符号化処理（符号化して圧縮）を実行したか否かを示す識別情報をバンド単位に管理し、当該識別情報に基づいて復号化処理（復号化して伸張）を実行することで、効率的な符号化処理と復号化処理に基づく高速印刷処理を可能とすることを目的とする。
【００１２】
本発明は、上記問題点を解決するためになされたもので、中間データに基づくビットマップデータ生成時間が予め決められている時間内か否か判断し、予め決められた時間を越えると判断された場合に予め１ページ分の中間データに基づいて１ページ分のビットマップデータを生成した後符号化して圧縮することで、中間データの印刷処理を保証することを目的とする。
【００１３】
本発明は、上記問題点を解決するためになされたもので、１ページ分の中間データを記憶手段に記憶できるか否かを判断し、１ページ分の中間データを記憶手段に記憶できないと判断された場合に予め１ページ分の中間データに基づいて１ページ分のビットマップデータを生成した後符号化して圧縮することで、中間データの印刷処理を保証することを目的とする。
【００１４】
本発明は上記の問題点を解決するためになされたもので、中間データに符号化処理（符号化して圧縮）を実行して圧縮データを生成し、当該圧縮データに復号化処理（復号化して伸張）を実行して再生されるビットマップデータと他の中間データから生成されるビットマップデータを合成することで、少ないメモリ容量で中間データの印刷処理を保証することを目的とする。
【００１５】
【課題を解決するための手段】
上記目的を達成するための本第１の発明は、ホストコンピュータから入力される印刷データから加工された中間データからビットマップデータを生成して印刷する印刷装置であって、前記中間データを指定された印字位置に従いバンド単位に分類してページバッファメモリに記憶する第１記憶手段と、前記中間データをバンド単位に読み出して、バンドバッファメモリに１バンド単位づつビットマップデータとして描画する描画手段と、前記バンドバッファメモリに描画されたビットマップデータを符号化して圧縮し、画像情報格納メモリに記憶する符号化手段と、前記符号化手段で符号化し圧縮した圧縮データを前記画像情報格納メモリから読み出し、読み出された圧縮データを復号化して伸張し、前記バンドバッファメモリにビットマップデータを再生する復号化手段と、前記入力される印刷データから生成される中間データを順次、前記ページバッファメモリに記憶している間に、１ページ分の中間データが前記ページバッファメモリに記憶できるか判断する判断手段と、前記判断手段により１ページ分の中間データを前記ページバッファメモリに記憶できないと判断されると、前記ページバッファメモリに既に記憶済みの１ページ分に満たない中間データを、それぞれ分類された該当するバンド位置のビットマップデータとして前記描画手段を用いて前記バンドバッファメモリに描画し、前記符号化手段により該描画されたビットマップデータを符号化して前記画像情報格納メモリに記憶すべく制御する第１制御手段と、前記第１制御手段により処理された中間データが記憶されていた領域のページバッファメモリを解放する解放手段と、前記解放手段により解放されたページバッファメモリに、１ページの残りの中間データをバンドに分類して記憶する第２記憶手段と、前記第２記憶手段により前記ページバッファメモリに新たに記憶された中間データに該当するバンド位置の圧縮データが前記画像情報格納メモリに存在するか判定する判定手段と、前記判定手段により該当するバンド位置の圧縮データが前記画像情報格納メモリに存在すると判定されると、前記復号化手段により前記画像情報格納メモリから圧縮データを読み出して前記バンドバッファメモリにビットマップデータを再生し、再生されたビットマップデータに、前記描画手段により当該バンド位置の残りの中間データを描画することによりビットマップデータを合成し、一方、前記判定手段により該当するバンド位置の圧縮データが前記画像情報格納メモリに存在しないと判定されると、前記描画手段により当該バンド位置の残りの中間データを前記バンドバッファメモリにビットマップデータとして描画し、前記符号化手段により該ビットマップデータを符号化して前記画像情報格納メモリに記憶すべく制御する第２制御手段と、前記第２制御手段により生成される１ページ分の圧縮データについては、バンド単位に前記復号化手段を用いて前記バンドバッファメモリに伸張して得られるビットマップデータを印刷部に転送し、前記判断手段により１ページ分の中間データ前記ページバッファメモリに記憶できると判断された場合に前記ページバッファメモリに記憶されている中間データについては、前記描画手段を用いて前記バンドバッファメモリに描画されるビットマップデータを前記印刷部に転送する転送制御手段とを有することを特徴とする。
【００１７】
上記目的を達成するための本第２の発明は、ホストコンピュータから入力される印刷データから加工された中間データからビットマップデータを生成して印刷する印刷装置におけるデータ制御方法であって、前記中間データを指定された印字位置に従いバンド単位に分類してページバッファメモリに記憶する第１記憶工程と、前記中間データをバンド単位に読み出して、バンドバッファメモリに１バンド単位づつビットマップデータとして描画する描画工程と、前記バンドバッファメモリに描画されたビットマップデータを符号化して圧縮し、画像情報格納メモリに記憶する符号化工程と、前記符号化工程で符号化し圧縮した圧縮データを前記画像情報格納メモリから読み出し、読み出された圧縮データを復号化して伸張し、前記バンドバッファメモリにビットマップデータを再生する復号化工程と、前記入力される印刷データから生成される中間データを順次、前記第１記憶工程で前記ページバッファメモリに記憶している間に、１ページ分の中間データが前記ページバッファメモリに記憶できるか判断する判断工程と、前記判断工程により１ページ分の中間データを前記ページバッファメモリに記憶できないと判断されると、前記ページバッファメモリに既に記憶済みの１ページ分に満たない中間データを、それぞれ分類された該当するバンド位置のビットマップデータとして前記バンドバッファメモリに描画し、該描画されたビットマップデータを符号化して前記画像情報格納メモリに記憶すべく制御する第１制御工程と、前記第１制御工程により処理された中間データが記憶されていた領域のページバッファメモリを解放する解放工程と、前記解放工程により解放されたページバッファメモリに、１ページの残りの中間データをバンドに分類して記憶する第２記憶工程と、前記第２記憶工程により前記ページバッファメモリに新たに記憶された中間データに該当するバンド位置の圧縮データが前記画像情報格納メモリに存在するか判定する判定工程と、前記判定工程により該当するバンド位置の圧縮データが前記画像情報格納メモリに存在すると判定されると、前記画像情報格納メモリから圧縮データを読み出して前記バンドバッファメモリにビットマップデータを再生し、再生されたビットマップデータに、当該バンド位置の残りの中間データを描画することによりビットマップデータを合成し、一方、前記判定工程により該当するバンド位置の圧縮データが前記画像情報格納メモリに存在しないと判定されると、当該バンド位置の残りの中間データを前記バンドバッファメモリにビットマップデータとして描画し、該ビットマップデータを符号化して前記画像情報格納メモリに記憶すべく制御する第２制御工程と、前記第２制御工程により生成される１ページ分の圧縮データについては、バンド単位に前記バンドバッファメモリに伸張して得られるビットマップデータを印刷部に転送し、前記判断工程により１ページ分の中間データ前記ページバッファメモリに記憶できると判断された場合に前記ページバッファメモリに記憶されている中間データについては、前記バンドバッファメモリに描画されるビットマップデータを前記印刷部に転送する転送制御工程とを有することを特徴とする。
【００２５】
【発明の実施の形態】
本実施例の構成を説明する前に、本実施例を適用するに好適なレーザビームプリンタ（ページプリンタ）の構成について図１を参照しながら説明する。
【００２６】
なお、本実施例を適用するプリンタは、レーザビームプリンタに限られるものではなく、インクジェットプリンタ等の他のプリント方式のプリンタでも良いことは言うまでもない。
【００２７】
図１は本発明を適用可能な第１の出力装置の構成を示す断面図であり、例えばレーザビームプリンタ（ＬＢＰ）の場合を示す。
【００２８】
図において、１０００はＬＢＰ本体であり、外部に接続されているホストコンピュータから供給される印刷データ（文字コード、制御コード等からなるページ記述言語等のプリンタ言語）やフォーム情報あるいはマクロ命令等を入力して記憶するとともに、それらの情報に従って対応する文字パターンやフォームパターン等のビットマップデータを作成し、記録媒体である記録紙等に像を形成する。１０１２は操作のためのスイッチおよびＬＥＤ表示器等が配されている操作パネル、１００１はＬＢＰ本体１０００全体の制御およびホストコンピュータから供給される印刷データ等を解析するプリンタ制御ユニットである。
【００２９】
このプリンタ制御ユニット１００１は、主に文字情報（文字コード）を対応する文字パターンのビデオ信号に変換してレーザドライバ１００２に出力する。
【００３０】
レーザドライバ１００２は半導体レーザ１００３を駆動するための回路であり、入力されたビデオ信号に応じて半導体レーザ１００３から発射されるレーザ光１００４をオン・オフ切り換えする。
【００３１】
レーザ光１００４は回転多面鏡１００５で左右方向に振らされて静電ドラム１００６上を走査露光する。
【００３２】
これにより、静電ドラム１００６上には文字パターンの静電潜像が形成されることになる。この潜像は、静電ドラム１００６周囲に配設された現像ユニット１００７により現像された後、記録紙に転写される。
【００３３】
この記録紙にはカットシートを用い、カットシート記録紙はＬＢＰ１０００に装着した用紙カセット１００８に収納され、給紙ローラ１００９および搬送ローラ１０１０と搬送ローラ１０１１とにより、装置内に取り込まれて、静電ドラム１００６に供給される。
【００３４】
またＬＢＰ本体１０００には、図示しないカードスロットを備え、内蔵フォントに加えてオプションフォントカード、プリンタ言語系の異なる制御カード（エミュレーションカード）を接続できるように構成されている。
【００３５】
図２は本発明の実施例を示すプリンタ制御システムの構成を説明するブロック図である。ここでは、レーザビームプリンタ（図１）を例にして説明する。
【００３６】
なお、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器からなるシステムであっても、ＬＡＮ等のネットワークを介して処理が行われるシステムであっても本発明を適用できることは言うまでもない。
【００３７】
図において、２０００はホストコンピュータで、所定のインタフェース１０（例えば、双方向インタフェース）を介してプリンタ制御ユニット１００１に接続されて、プリンタ１０００との通信制御処理を実行する。
【００３８】
プリンタ制御ユニット１００１において、１はＣＰＵで、ＲＯＭ２のプログラム用ＲＯＭ或いは外部メモリ３に記憶された制御プログラム等に基づいてシステムバス４に接続される各種のデバイスとのアクセスを総括的に制御し、印刷部インタフェース８を介して接続される印刷部（プリンタエンジン）９に出力情報としての画像信号を出力する。
【００３９】
また、このＲＯＭ２のプログラムＲＯＭには、後述する図３〜１１のフローチャートで示されるような、ＣＰＵ１の制御プログラム、印刷部９へ転送されるビットマップデータを生成する画像生成プログラム等を記憶する。
【００４０】
ＲＯＭ２のフォント用ＲＯＭには上記出力画像を生成する際に使用するフォントデータ（ドットフォントデータ或はアウトラインフォントデータ）等を記憶している。
【００４１】
ＣＰＵ１は入力部５を介してホストコンピュータ２０００との通信処理が可能に構成されている。６はＣＰＵ１の主メモリ、ワークエリア等として機能するＲＡＭで、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。
【００４２】
なお、ＲＡＭ６は、入力した印刷データを中間データ（ビットマップデータを生成し易い様にＣＰＵ１が印刷データを加工したデータ）として格納するページバッファメモリ６（ｃ）、ビットマップデータが展開されるバンドバッファサイズのバンドバッファメモリ６（ａ）、符号化画像情報（圧縮データ）を格納する画像格納メモリ６（ｂ）などに用いられる。なお、これらＲＡＭ６内のページバッファメモリ６（ｃ）、バンドバッファメモリ６（ａ）、画像格納メモリ６（ｂ）は、ダイナミックにその容量が変化する。
【００４３】
符号化部１１は、ＲＡＭ６内のバンドバッファメモリ６（ａ）に展開されたビットマップデータを符号化する符号化部であり、画像生成プログラムの制御により符号化された符号化画像情報（圧縮データ）はＲＡＭ６内の画像格納メモリ６（ｂ）に格納される。
【００４４】
前述したハードディスク（ＨＤ）、ＩＣカード等の外部メモリ３は、メモリコントローラ（ＭＣ）７によりアクセスを制御される。外部メモリ３は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。
【００４５】
また、１０１２は前述した操作パネルで操作のためのスイッチおよびＬＥＤ表示器等が配されている。
【００４６】
また、前述した外部メモリは１個に限らず、１個以上を備えて、内蔵フォントに加えてオプションフォントカード，プリンタ言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていても良い。
【００４７】
さらに、図示しないＮＶＲＡＭを有し、操作パネル１０１２からのプリンタモード設定情報を記憶するようにしても良い。
【００４８】
このように構成されたプリンタ制御システムにおいて、ホストコンピュータ２０００から入力された印刷データ内の文字コードは、印刷データ内の制御コードで指示された印字位置に応じて対応するバンド位置毎に分類されてＲＡＭ６内のページバッファメモリ６（ｃ）内に中間データとして格納される。
【００４９】
１ページ分の中間データが格納し終ったら、１バンドサイズづつバンドバッファメモリ６（ａ）にビットマップデータを生成し、符号化部１１によって符号化したのち、ＲＡＭ６内の画像格納メモリ６（ｂ）に格納する。
【００５０】
１ページ分の符号化画像を格納し終ったら、デコード（復号化し伸張）部１１を用いて符号化画像情報（圧縮データ）をビットマップデータに戻しながら、印刷部Ｉ／Ｆ８によって画像を形成するビットマップデータがビデオ信号に変換され、印刷部９へ出力されて記録紙等に記録される。
【００５１】
なお、本実施例で説明する印刷データは、例えばページ記述言語等のプリンタ言語である。
【００５２】
また、本実施例で説明するバンドバッファメモリ６（ａ）、バンドバッファサイズとは、例えばＡ４サイズの１ページ分のメモリサイズの１／ｎサイズ（ｎ＝２、３、４・・・）である。
【００５３】
（第１の実施形態）
図３は第１の実施形態を示す印刷装置の画像生成処理手順を示すフローチャートである。
【００５４】
なお、図３のフローチャートに示すプログラムは、例えば、ＲＯＭ２のプログラム領域或は外部メモリ３に格納されており、ＣＰＵ１により実行される。
【００５５】
ＣＰＵ１は、ホストコンピュータ２０００から入力部５を介して入力される印刷データ（印字位置を示す制御コードや文字コードなど）を読み込み（ステップＳ３０１）、制御コードで指定された印字位置（オブジェクト毎に指定されている印字位置）に対応するバンド単位（バンドバッファサイズ）に分類してＲＡＭ６内のページバッファメモリ６（ｃ）に中間データとして格納する（ステップＳ３０２）。
【００５６】
ステップＳ３０２では、印刷データ中の改ページ命令（制御コード）などのページ終了コードを検知するまで同一ページの中間データとして格納し、改ページ命令などのページ終了コードを検知することで１ページの中間データを格納し終えたか否かを判断する（ステップＳ３０３）。
【００５７】
ステップＳ３０３で１ページ分の中間データを格納したと判断すると、ページバッファメモリ６（ｃ）に格納された中間データに、符号化部１１による後述する符号化画像格納処理を実行し（ステップＳ３０４）、後述するデコード（復号化し伸張）部１１による符号化画像情報（圧縮データ）のデコード（復号化し伸張）処理を実行し、１ページ分のビットマップデータを再生し、印刷部９に転送する（ステップＳ３０５）。
【００５８】
図４は第１実施形態における符号化画像格納処理ステップＳ３０４を詳細に説明するフローチャートである。
【００５９】
なお、図４のフローチャートに示すプログラムは、例えば、ＲＯＭ２のプログラム領域或は外部メモリ３に格納されており、ＣＰＵ１により実行される。
【００６０】
図３のステップＳ３０３で１ページ分の中間データを格納したと判断すると、注目バンド位置に対応するページバッファメモリ６（ｃ）に格納された中間データを読み出して、ＲＡＭ６内のバンドバッファメモリ６（ａ）にビットマップデータを生成する（ステップＳ４０１）。
【００６１】
生成されたビットマップデータを符号化部１１により符号化して圧縮し、符号化画像情報（圧縮データ）を生成し（ステップＳ４０２）、ＲＡＭ６内の符号化画像情報格納メモリ６（ｂ）に格納する（ステップＳ４０３）。この処理を１ページを構成する全てのバンドについて実行して、１ページ分の符号化画像情報（圧縮データ）が格納されたか否かを判断する（ステップＳ４０４）。
【００６２】
ステップＳ４０４で、１ページ分の符号化画像情報（圧縮データ）が格納されたと判断すると、図３のステップＳ３０５の処理を実行し、１ページ分の符号化画像情報（圧縮データ）が格納されていないと判断するとステップＳ４０１の処理を実行する。
【００６３】
図５は第１実施形態におけるデコード（復号化して伸張）処理及び画像転送処理ステップＳ３０５を詳細に説明するフローチャートである。
【００６４】
なお、図５のフローチャートに示すプログラムは、例えば、ＲＯＭ２のプログラム領域或は外部メモリ３に格納されており、ＣＰＵ１により実行される。
【００６５】
図４のステップＳ４０４で１ページ分の符号化画像情報（圧縮データ）が格納されたと判断されると、デコード（復号化し伸張）部１１により、ＲＡＭ６内の符号化画像情報格納メモリ６（ｂ）に格納された１ページ分の符号化画像情報（圧縮データ）の各バンドの符号化画像情報（圧縮データ）を順次デコード（復号化し伸張）してビットマップデータを再生し（ステップＳ５０１）、印刷部Ｉ／Ｆ８によってビットマップデータをビデオ信号に変換して印刷部９に転送する（Ｓ５０２）。
【００６６】
１ページ分（全バンド分）のビットマップデータを印刷部９に転送したか否かを判断し（Ｓ５０３）、１ページ分（全バンド分）のビットマップデータを印刷部９に転送していないと判断するとステップＳ５０１の処理を実行する。
【００６７】
なお、上記実施形態では、画像情報格納メモリ６（ｂ）、ページバッファメモリ６（ｃ）はＲＡＭ６内にあるとして説明したが、別にこれに限らない。例えば、ＭＣ７で制御される外部メモリ３内に存在していてもよい。
【００６８】
また、１ページの符号化画像情報（圧縮データ）を格納した後、該ページをデコード（復号化し伸張）して印刷部に転送するとしたが、別にこれに限らない。例えば、ステップＳ３０１〜ステップＳ３０４までの符号化画像格納処理を複数ページに渡って繰り返して実行し、画像情報格納メモリ６（ｂ）に符号化画像情報を複数ぺージ分格納できるようにしておき、印刷部９の処理速度に合わせて順次前述したステップＳ３０５の処理を実行しても良い。
【００６９】
以上述べたように本実施形態によれば、外部から入力される印刷データを１ページ分中間データとして記憶する毎に生成されるビットマップデータをバンド単位に符号化処理（符号化して圧縮し圧縮）を実行して圧縮データを生成し、当該圧縮データを１ページ分記憶する毎にバンド単位に復号化処理（復号化して伸張）を実行することで、印刷すべきビットマップデータの生成時間を一定時間以下に抑え、ビットマップメモリ容量を削減できる。
【００７０】
（第２の実施形態）
図６、図７は第２の実施形態を示す印刷装置の画像生成処理手順を示すフローチャートである。同図において、第１の実施形態と同じ処理を施すものについては同一の番号を割り振った。
【００７１】
なお、図６、７のフローチャートに示すプログラムは、例えば、ＲＯＭ２のプログラム領域或は外部メモリ３に格納されており、ＣＰＵ１により実行される。
【００７２】
ＣＰＵ１は、ホストコンピュータ２０００から入力部５を介して入力される印刷データ（印字位置を示す制御コードや文字コードなど）を読み込み（ステップＳ３０１）、制御コードで指定された印字位置（オブジェクト毎に指定される印字位置）に対応するバンド単位に分類してＲＡＭ６内のページバッファメモリ６（ｃ）に中間データとして格納する（ステップＳ３０２）。
【００７３】
ステップＳ３０２では、印刷データ中の改ページ命令（制御コード）などのページ終了コードを検知するまで同一ページの中間データとして格納し、改ページ命令などのページ終了コードを検知することで１ページの中間データを格納し終えたか否かを判断する（ステップＳ３０３）。
【００７４】
ステップＳ３０３で１ページ分の中間データを格納したと判断すると、注目バンドに対応する印刷データがページバッファ（６ｃ）に格納されているかどうかを調べ（ステップＳ６０１）、所望とする中間データが格納されておらず、ビットマップデータを生成する必要が無いと判断されたならば、１ページに１つ存在するＲＡＭ６内のバンド画像情報テーブル（不図示）の注目バンドのバンドフラグをＯＦＦにして（ステップＳ６０２）、後述するステップＳ４０４の処理を実行する。
【００７５】
一方、ステップＳ６０１において、生成すべきバンドに対応する中間データが格納されていると判断されたならば、注目バンド位置に対応するページバッファメモリ６（ｃ）に格納された中間データを読み出して、ＲＡＭ６内のバンドバッファメモリ６（ａ）にビットマップデータを生成する（ステップＳ４０１）。
【００７６】
生成されたビットマップデータを符号化部１１により符号化して圧縮し、符号化画像情報（圧縮データ）を生成し（ステップＳ４０２）、ＲＡＭ６内の符号化画像情報格納メモリ６（ｂ）に格納する（ステップＳ４０３）。同時にバンド情報テーブルの当該バンドのバンドフラグをＯＮにする（ステップＳ６０３）。
【００７７】
この処理を１ページを構成する全てのバンドについて実行して、１ページ分の符号化画像情報（圧縮データ）が格納されたか否かを判断する（ステップＳ４０４）。
【００７８】
ステップＳ４０４で、１ページ分の符号化画像情報（圧縮データ）が格納されたと判断すると、図７のステップＳ６０４の処理を実行し、１ページ分の符号化画像情報（圧縮データ）が格納されていないと判断するとステップＳ６０１の処理を実行する。
【００７９】
ステップＳ４０４で、１ページ分の符号化画像情報（圧縮データ）が格納されたと判断されたならば、バンド画像情報テーブルのバンドフラグを参照して出力すべきバンド画像情報が存在するか否かを判断する（ステップＳ６０４）。
【００８０】
ステップＳ６０４で所望とするバンドのバンドフラグがＯＮ（当該バンドに画像情報が存在する）と判断されると、デコード（復号化し伸張）部１１により、ＲＡＭ６内の符号化画像情報格納メモリ６（ｂ）に格納された当該所望とするバンドの符号化画像情報（圧縮データ）を順次デコード（復号化し伸張）してビットマップデータを再生し（ステップＳ５０１）、印刷部Ｉ／Ｆ８によってビットマップデータをビデオ信号に変換して印刷部９に転送する（Ｓ５０２）。
【００８１】
一方、ステップＳ６０４で所望とするバンドのバンドフラグがＯＦＦ（当該バンドに画像情報が存在しない）と判断されると、空白のビットマップデータ（例えば、０）を生成し（ステップＳ６０５）、前述したステップＳ５０２の処理を実行する。
【００８２】
そして、１ページ分（全バンド分）のビットマップデータを印刷部９に転送したか否かを判断し（Ｓ５０３）、１ページ分（全バンド分）のビットマップデータを印刷部９に転送していないと判断するとステップＳ６０４の処理を次のバンドに対して実行する。
【００８３】
なお、上記実施例では、画像情報格納メモリ６（ｂ）、ページバッファメモリ６（ｃ）はＲＡＭ６内にあるとして説明したが、別にこれに限らない。例えば、ＭＣ７で制御される外部メモリ３内に存在していてもよい。
【００８４】
また、１ページの符号化画像情報（圧縮データ）を格納した後、該ページをデコード（復号化し伸張）して印刷部に転送するとしたが、別にこれに限らない。例えば、図６で説明した符号化画像格納処理を複数ページに渡って繰り返して実行し、画像情報格納メモリ６（ｂ）に符号化画像情報を複数ぺージ分格納できるようにしておき、印刷部の処理速度に合わせて順次図７で説明した印刷処理を実行できるようにしても良い。
【００８５】
バンド画像情報テーブルには、バンドに画像情報が存在するか否かを示すバンドフラグを設けるとしたが、これだけに限らない。例えば、符号化フラグを設け、ビットマップデータを符号化した際に、格納メモリ６（ｂ）容量が増大してしまうような場合には、バンド単位で符号化する／しないを選択できるようにしても良い。
【００８６】
また、複数種類の符号化手段を設けて、生成されたビットマップデータに最も適した符号化手段をバンド単位で選択できるようにしてもよい。
【００８７】
以上述べたように本実施例によれば、生成されるビットマップデータに符号化処理（符号化して圧縮）を実行したか否かを示す識別情報をバンド単位に管理し、当該識別情報に基づいて復号化処理（復号化して伸張）を実行することで、効率的な符号化処理と復号化処理に基づく高速印刷処理を達成できる。
【００８８】
（第３の実施形態）
図８は第３の実施形態を示す印刷装置の画像生成処理手順を示すフローチャートである。同図において、第１の実施形態と同じ処理を施すものについては同一の番号を割り振った。
【００８９】
なお、以下の実施形態ではバンドバッファメモリ６（ａ）は、バンドバッファメモリ１とバンドバッファメモリ２で構成されている。
【００９０】
なお、図８のフローチャートに示すプログラムは、例えば、ＲＯＭ２のプログラム領域或は外部メモリ３に格納されており、ＣＰＵ１により実行される。
【００９１】
ＣＰＵ１は、ホストコンピュータ２０００から入力部５を介して入力される印刷データ（印字位置を示す制御コードや文字コードなど）を読み込み（ステップＳ３０１）、制御コードで指定された印字位置（オブジェクト毎に指定される印字位置）対応するバンド単位に分類してＲＡＭ６内のページバッファメモリ６（ｃ）に中間データとして格納する（ステップＳ３０２）。
【００９２】
ステップＳ３０２では、印刷データ中の改ページ命令（制御コード）などのページ終了コードを検知するまで同一ページの中間データとして格納し、改ページ命令などのページ終了コードを検知することで１ページの中間データを格納し終えたか否かを判断する（ステップＳ３０３）。
【００９３】
ステップＳ３０３で１ページ分の中間データを格納したと判断すると、ページバッファメモリ６（ｃ）に格納された中間データはバンディング処理可能かどうかを判断する（ステップＳ８０１）。
【００９４】
ここで、バンデイング可能か否かを判断するステップＳ８０１の処理を簡単に説明する。
【００９５】
まず、ビットマップ展開すべきバンドの印刷データのビッマップ展開時間を計算する。一般には、当該バンドに含まれる印字オブジェクト（文字・図形・イメージデータ等々）の個数、及び、各印字オブジェクトの属性（文字の大きさ・修飾属性、図形の形状・大きさ等々）によって、当該バンドの展開時間は予測される。例えば、文字を描画する場合は、文字の大きさと文字修飾の指定によって、その文字の展開速度は決定し、円を描画する場合は、円の大きさと線の太さによって、円の展開速度は決定される。
【００９６】
この様に、当該バンドに含まれる全ての印字オブジェクトの展開速度の総和が、当該セグメントの展開予測時間になる。
【００９７】
次に、当該印刷装置におけるプリンタエンジンの回転速度は一定である。従って、各バンド毎のビットマップデータのプリンタエンジンへの転送時間は一定値になる。ここで、当該バンドの展開予測時間と各バンド毎のビットマップデータの転送時間を比較し、展開予測時間が転送時間より小さい場合には、バンデイング処理が可能と判断しステップＳ８０２以降の処理を実行する。一方、展開予測時間がビットマップデータの転送時間より大きい場合（オーバーランが発生する場合）には、バンデイング処理不可能と判断しステップＳ３０４以降の処理を実行する。
【００９８】
ステップＳ８０１でバンディング処理が可能と判断されると、注目バンド位置に対応するページバッファに格納された中間データを読み出して、ＲＡＭ６内のバンドバッファメモリ６（ａ）のバンドバッファメモリ１にビットマップデータを生成する（ステップＳ８０２）。生成されたバンドバッファメモリ１のビットマップデータを、印刷部Ｉ／Ｆ８を介して、印刷部９へ転送する（ステップＳ８０３）。
【００９９】
そして、バンドバッファメモリ１のビットマップデータを印刷部９へ転送しながら、同一ページ内の全てのバンドの中間データをビットマップ展開して印刷部９へ転送したか否か（全バンド終了か否か）を判断（ステップＳ８０４）する。
【０１００】
ステップＳ８０４で、全バンド終了でないと判断されると、次バンド位置に対応するページバッファに格納された中間データを読み出して、ＲＡＭ６内のバンドバッファメモリ６（ａ）のバンドバッファメモリ２にビットマップデータを生成する（ステップＳ８０２）。バンドバッファメモリ１のビットマップデータの転送が終了したならば、印刷部９からの同期信号に合わせてバンドバッファメモリ２に生成されたビットマップデータをバンドバッファメモリ１と同様に転送する（ステップＳ８０３）。
【０１０１】
このようにして、ページバッファ内に格納された１ページ分の中間データを、バンドバッファメモリ１、２に交互にビットマップデータ生成して格納し順次印刷部９に転送する。
【０１０２】
一方、ステップＳ８０１で、バンディング処理不可能と判定されたならば、図４を用いて前述したＳ３０４の処理を実行し、更に、図５を用いて前述したステップＳ３０５の処理を実行する。
【０１０３】
なお、上記本実施例では、画像情報格納メモリ６（ｂ）、ページバッファメモリ６（ｃ）はＲＡＭ６内にあるとして説明したが、別にこれに限らない。例えば、ＭＣ７で制御される外部メモリ３内に存在していてもよい。
【０１０４】
また、バンディング不可能な場合に、１ページの符号化画像情報（圧縮データ）を格納した後、該ページをデコード（復号化し伸張）して印刷部に転送するとしたが、別にこれに限らない。例えば、図６で説明した符号化画像格納処理を複数ページに渡って繰り返して実行し、画像情報格納メモリ６（ｂ）に符号化画像情報（圧縮データ）を複数ぺージ分格納できるようにしておき、印刷部の処理速度に合わせて順次図７で説明した印刷処理を実行できるようにしても良い。
【０１０５】
また、バンディング処理不可能な場合に、１ページ単位で符号化画像情報（圧縮データ）を格納するとしたが、これに限らない。例えば、バンディング処理不可能となるバンドのみを符号化して圧縮できるようにしてもよい。
【０１０６】
以上述べたように本実施形態によれば、外部から入力した印刷データにバンディング処理を実行できるか否か判断し、バンディング処理できないと判断された場合に符号化処理（符号化して圧縮し圧縮）と復号化処理（復号化して伸張）を実行することで、入力された印刷データの印刷処理を保証することができる。
【０１０７】
（第４の実施形態）
図９、図１０は、第４の実施形態を示す印刷装置の画像生成処理手順を示すフローチャートである。同図において、第１の実施形態と同じ処理を施すものについては同一の番号を割り振った。
【０１０８】
なお、図９、図１０のフローチャートに示すプログラムは、例えば、ＲＯＭ２のプログラム領域或は外部メモリ３に格納されており、ＣＰＵ１により実行される。
【０１０９】
ＣＰＵ１は、ホストコンピュータ２０００から入力部５を介して入力される印刷データ（印字位置を示す制御コードや文字コードなど）を読み込み（ステップＳ３０１）、印刷データ中のオブジェクトが指定する印字位置に対応するバンド単位に分類してＲＡＭ６内のページバッファメモリ６（ｃ）に中間データとして格納する（ステップＳ３０２）。
【０１１０】
ステップＳ３０２では、印刷データ中の改ページ命令（制御コード）などのページ終了コードを検知するまで同一ページの中間データとして格納し、１ページ分の中間データをページバッファメモリ６（ｃ）に格納できるか否か（符号化処理が必要か否か）を判断する（ステップＳ９０１）。
【０１１１】
ステップＳ９０１で１ページ分の印刷データをページバッファメモリ６（ｃ）に中間データとして格納できないと判断すると（符号化処理が必要と判断すると）、バンディング処理が不可能な為、ページバッファメモリ６（ｃ）に格納済みの中間データに対して後述する符号化画像情報合成格納処理（ステップＳ９０３）を施し、ページバッファメモリ６（ｃ）に格納された中間データに基づくビットマップデータを符号化して画像情報格納メモリ６（ｂ）に格納した後、該ページバッファメモリ６（ｃ）を解放する（ステップＳ９０２）。
【０１１２】
再び、１ページの残りの印刷データ（ページバッファメモリ６（ｃ）に格納できなかった印刷データ）を読み込んで（ステップＳ３０１）、指定された印字位置に対応するバンド単位に分類してページバッファメモリ６（ｃ）に中間データとして格納し（ステップＳ３０２）、既に符号化処理が必要と判定されているので、新たにページバッファメモリ６（ｃ）に格納された１ページ分の残りの中間データに対して後述する符号化画像情報合成格納処理（ステップＳ９０３）を施し、ページバッファメモリ６（ｃ）に格納された当該中間データに基づくビットマップデータを符号化して圧縮し画像情報格納メモリ６（ｂ）に格納した後、該ページバッファメモリ６（ｃ）を解放する（ステップＳ９０２）。
【０１１３】
この様に１ページ分の符号化画像情報（圧縮データ）を画像情報格納メモリ６（ｂ）に格納するまで上記各ステップを繰り返し実行する。
【０１１４】
一方、ステップＳ９０１で１ページ分の印刷データをページバッファメモリ６（ｃ）に中間データとして格納できると判断すると（符号化処理が必要ないと判断すると）、１ページ分の中間データの格納が終了したか否かを判断し（ステップＳ３０３）、格納が終了していなければ１ページ分の中間データを格納するまでステップＳ３０１からの処理を実行し、１ページ分の中間データの格納が終了したと判断すると、処理すべきページに該当するデータが、画像情報格納メモリ６（ｂ）に格納された符号化画像情報（圧縮データ）かページバッファメモリ６（ｃ）に格納された中間データかを判定する（ステップＳ９０４）。
【０１１５】
ステップＳ９０４において、処理すべきページに該当するデータがページバッファメモリ６（ｃ）に格納された中間データであると判断すると、注目バンド位置に対応するページバッファメモリ６（ｃ）に格納された中間データを読み出して、ＲＡＭ６内のバンドバッファメモリ６（ａ）のバンドバッファメモリ１にビットマップ展開してビットマップデータを生成し（ステップＳ９０５）、ステップＳ９０４において、処理すべきページに該当するデータが画像情報格納メモリ６（ｂ）に格納された符号化画像情報（圧縮データ）であると判断すると、ＲＡＭ６内の画像格納メモリ６（ｂ）から注目バンドの符号化画像情報（圧縮データ）を読み出してデコード（復号化して伸張）部１１でデコード（復号化して伸張）し、バンドバッファメモリ６（ａ）のバンドバッファメモリ１にビットマップデータを再生する（ステップＳ９０６）。
【０１１６】
そして、生成されたバンドバッファメモリ６（ａ）のバンドバッファメモリ１のビットマップデータを、印刷部Ｉ／Ｆ８を介して、同期信号に合わせて印刷部９へ転送し（ステップＳ９０７）、ビットマップデータを転送しながら、同一ページ内の次のバンドが存在するか否か（全バンド終了か否か）を判断し（ステップＳ９０８）、次のバンドが存在する場合（全バンド終了でない場合）、上述したステップＳ９０４以降の処理を実行して、ＲＡＭ６内のバンドバッファメモリ６（ａ）のバンドバッファメモリ２にビットマップデータを生成し、バンドバッファメモリ１のビットマップデータの転送が終了したならば、同期信号に合わせてバンドバッファメモリ２に生成されたビットマップデータをバンドバッファメモリ１と同様に転送する（ステップＳ９０７。
【０１１７】
このようにして、１ページ分の印刷処理が終了するまで上記ステップの処理を繰り返す。
【０１１８】
図１０は第４実施形態における符号化画像合成格納処理ステップＳ９０３を説明するフローチャートである。
【０１１９】
図９のステップＳ９０１で１ページ分の中間データを格納できないと判断すると（符号化処理が必要であると判断すると）、注目バンド位置に対応する符号化画像情報（圧縮データ）が画像格納メモリ６（ｂ）内に既に存在するか否かを判定し（ステップＳ１００１）、存在すると判断すると、当該符号化画像情報（圧縮データ）をデコード（復号化し伸張）部１１によりデコード（復号化し伸張）してバンドバッファメモリ６（ａ）にビットマップ展開してビットマップデータを再生する（ステップＳ１００２）。
【０１２０】
一方、ステップＳ１００１で同一バンドの既符号化画像情報（圧縮データ）が存在していないと判断すると、バンドバッファメモリ６（ａ）をクリアする（ステップＳ１００３）。
【０１２１】
次に、ページバッファメモリ６（ｃ）から中間データを読み出して、バンドバッファメモリ６（ａ）にビットマップ展開してビットマップデータを生成する。
【０１２２】
ここで、ステップＳ１００２でデコード（復号化して伸張）してビットマップ展開されていれば当該ビットマップデータとページバッファメモリ６（ｃ）から読み出されてビットマップ展開されたビットマップデータが合成される（ステップＳ１００４）。
【０１２３】
そして、合成されたビットマップデータを符号化部１１により再符号化して圧縮し、符号化画像情報（圧縮データ）を生成し（ステップＳ１００５）、ＲＡＭ６内の画像情報格納メモリ６（ｂ）に再格納する（ステップＳ１００６）。
【０１２４】
この処理を１ページを構成する全てのバンドについて実行して、１ページ分の符号化画像情報（圧縮データ）が格納されたと判断されるまで繰り返し（ステップＳ１００７）、１ページ分の符号化画像を生成した後、図９のステップＳ９０２の処理を実行する。
【０１２５】
なお、画像情報格納メモリ６（ｂ）、ページバッファメモリ６（ｃ）はＲＡＭ６内にあるとして説明したが、別にこれに限らない。例えば、ＭＣ７で制御される外部メモリ３内に存在していてもよい。
【０１２６】
また、バンディング不可能な場合（１ページ分の中間データをページバッファメモリ６（ｃ）に格納できない場合）に、予め１ページの符号化画像情報（圧縮データ）を格納した後、該ページをデコード（復号化し伸張）して印刷部に転送するとしたが、別にこれに限らない。例えば、図１０で説明した符号化画像格納処理を複数ページに渡って繰り返して実行し、画像情報格納メモリ６（ｂ）に符号化画像情報を複数ぺージ分格納できるようにしておき、印刷部の処理速度に合わせて順次図７で説明した印刷処理を実行できるようにしても良い。
【０１２７】
また、バンディング不可能な場合に、１ページ単位で符号化画像情報（圧縮データ）を格納するとしたが、これに限らない。例えば、バンディング不可能となるバンドのみを符号化できるようにしてもよい。
【０１２８】
また、符号化画像合成処理ステップＳ９０３は、ページバッファメモリ６（ｃ）が不足したためバンディング処理不可能な場合としたが、これに限らない。例えば、ページバッファからバンドバッファメモリ６（ａ）にビットマップデータを生成する時間（タイムファクタ）を予測できるようにして、定められた時間以内でビットマップデータを生成できないため、バンディング処理不可能なことを検知できるようにしてもよい。
【０１２９】
以上述べたように本実施形態によれば、外部から入力される１ページ分の印刷データをページバッファメモリ６（ｃ）に１ページ分の中間データとして格納できない場合には、当該中間データに基づく１ページ分のビットマップデータに符号化処理（符号化して圧縮）を実行して圧縮データを予め生成した後、復号化処理（復号化して伸張）を実行してビットマップデータを再生してプリンタエンジンへ転送し、１ページの中間データをページバッファメモリに格納できる場合にはバンド単位にレンダリングしてビットマップデータを生成してプリンタエンジンへ転送することで、メモリ容量に応じた印刷処理を保証できる。
【０１３０】
（第５の実施形態）
図１１は第５の実施形態を示す印刷装置の画像生成処理手順を示すフローチャートである。同図において、前述した実施形態と同じ処理を施すものについては同一の番号を割り振った。
【０１３１】
なお、図１１のフローチャートに示すプログラムは、例えば、ＲＯＭ２のプログラム領域或は外部メモリ３に格納されており、ＣＰＵ１により実行される。
【０１３２】
ＣＰＵ１は、ホストコンピュータ２０００から入力される印刷データ（例えば、印字位置を示す制御コードや文字コードなど）を読み込み（ステップＳ３０１）、読み込んだ印刷データのオブジェクトが指定する印字位置に対応するバンド位置を検出し（ステップＳ１１０１）、検出されたバンド位置の符号化画像情報（圧縮データ）が、バンド画像情報テーブルによりＲＡＭ６内の画像格納メモリ６（ｂ）に存在するかを判断する（ステップＳ１１０２）。
【０１３３】
ステップＳ１１０２で符号化画像情報（圧縮データ）が格納されていると判断すると、デコード（復号化し伸張）部１１によりデコード（復号化し伸張）して、ＲＡＭ６内のバンドバッファメモリ６（ａ）にビットマップ展開してビットマップデータを再生し（ステップＳ１１０３）、一方、ステップＳ１１０２で符号化画像情報が格納されていないと判断すると、バンドバッファメモリ６（ａ）をクリアする（ステップＳ１１０４）。
【０１３４】
次に、ステップＳ３０１で読み込んだ中間データを、バンドバッファメモリ６（ａ）にビットマップ展開してビットマップデータを生成する。ここで、ステップＳ１１０３でデコード（復号化して伸張）してビットマップ展開されていれば当該ビットマップデータとステップＳ３０１で読み込んだ中間データをビットマップ展開して生成されるビットマップデータとが合成される（Ｓ１００４）。
【０１３５】
そして、合成されたビットマップデータを符号化部１１により再符号化して圧縮し、符号化画像情報（圧縮データ）を生成し（ステップＳ１００５）、ＲＡＭ６内の画像情報格納メモリ６（ｂ）に再格納し（ステップＳ１００６）、更に、バンド情報テーブルの当該バンドフラグをＯＮにする（ステップＳ１１０６）。
【０１３６】
この処理を１ページ分の印刷データについて実行したか否かを判断し（ステップＳ４０４）、１ページ分の符号化画像情報（圧縮データ）が格納されたと判断すると、図７で説明したように、画像格納メモリ６（ｂ）から符号化画像情報を読み出してデコード（復号化して伸張）部１１でデコード（復号化して伸張）して、１ページ分のビットマップデータを再生し印刷部に転送して印刷させる。
【０１３７】
なお、ステップＳ３０１でホストコンピュータ２０００から読み込んだ印刷データをページバッファメモリ６（ｃ）に格納することなく、オブジェクト毎に印刷データを処理したが、前述した実施形態の様にページバッファメモリ６（ｃ）に一旦１ページ分の中間データを格納してから中間データをバンド単位に処理しても良い。
【０１３８】
また、画像情報格納メモリ６（ｂ）、ページバッファメモリ６（ｃ）はＲＡＭ６内にあるとして説明したが、別にこれに限らない。例えば、ＭＣ７で制御される外部メモリ３内に存在していてもよい。
【０１３９】
また、１ページの符号化画像情報（圧縮データ）を格納した後、該ページをデコード（復号化し伸張）して印刷部に転送するとしたが、別にこれに限らない。例えば、図６で説明した符号化画像格納処理を複数ページに渡って繰り返して実行し、画像情報格納メモリ６（ｂ）に符号化画像情報を複数ぺージ分格納できるようにしておき、印刷部の処理速度に合わせて順次図７で説明した印刷処理を実行できるようにしても良い。
【０１４０】
また、バンド画像情報テーブルには、バンドの有無を示すバンドフラグを設けるとしたが、これだけに限らない。例えば、符号化フラグを設け、ビットマップデータを符号化した際に、格納メモリ６（ｂ）容量が増大してしまうような場合には、バンド単位で符号化する／しないを選択できるようにしても良い。
【０１４１】
また、複数の符号化手段（圧縮方法）を設けて、生成されたビットマップデータに最も適した符号化手段をバンド単位で選択できるようにしてもよい。
【０１４２】
以上述べたように本実施形態によれば、外部から入力される印刷データに符号化処理（符号化して圧縮）を実行して符号化データを生成し、当該符号化データに復号化処理（復号化して伸張）を実行して再生されるビットマップデータと他の印刷データから生成されるビットマップデータを合成することで、ビットマップメモリ容量を削減できる。
【０１４３】
【発明の効果】
以上説明した様に本発明の印刷装置及びデータ制御方法は、ホストコンピュータから入力される印刷データから加工された中間データからビットマップデータを生成して印刷する印刷装置におけるデータ制御方法であって、中間データを指定された印字位置に従いバンド単位に分類してページバッファメモリに記憶し、中間データをバンド単位に読み出して、バンドバッファメモリに１バンド単位づつビットマップデータとして描画し、バンドバッファメモリに描画されたビットマップデータを符号化して圧縮し、画像情報格納メモリに記憶し、圧縮データを復号化して伸張してバンドバッファメモリにビットマップデータを再生し、該入力される印刷データから生成される中間データを順次、ページバッファメモリに記憶している間に、１ページ分の中間データが前記ページバッファメモリに記憶できるか判断し、記憶できないと判断されると、ページバッファメモリに既に記憶済みの１ページ分に満たない中間データを、それぞれ分類された該当するバンド位置のビットマップデータとして前記バンドバッファメモリに描画し、該描画されたビットマップデータを符号化して前記画像情報格納メモリに記憶すべく制御し、制御処理された中間データが記憶されていた領域のページバッファメモリを解放して、解放されたページバッファメモリに、１ページの残りの中間データをバンドに分類して記憶し、ページバッファメモリに新たに記憶された中間データに該当するバンド位置の圧縮データが画像情報格納メモリに存在するか判定し、画像情報格納メモリに存在すると判定されると、画像情報格納メモリから圧縮データを読み出してバンドバッファメモリにビットマップデータを再生し、再生されたビットマップデータに、当該バンド位置の残りの中間データを描画することによりビットマップデータを合成し、一方、画像情報格納メモリに存在しないと判定されると、当該バンド位置の残りの中間データをバンドバッファメモリにビットマップデータとして描画し、該ビットマップデータを符号化して画像情報格納メモリに記憶すべく制御し、１ページ分の圧縮データについては、バンド単位に前記バンドバッファメモリに伸張して得られるビットマップデータを印刷部に転送し、１ページ分の中間データ前記ページバッファメモリに記憶できると判断された場合に前記ページバッファメモリに記憶されている中間データについては、バンドバッファメモリに描画されるビットマップデータを印刷部に転送することで、１ページ分の中間データがページバッファメモリに格納できない場合にも印刷処理を保証することができる。
【図面の簡単な説明】
【図１】本発明を適用可能な第１の出力装置の構成を示す断面図である。
【図２】本発明の一実施形態を示すプリンタ制御システムの構成を説明するブロック図である。
【図３】本発明の第１実施形態を示す印刷装置の画像生成処理の一例を示すフローチャートである。
【図４】本発明の第１実施形態における符号化画像格納処理の一例を示すフローチャートである。
【図５】本発明の第１実施形態における印刷部への画像転送処理の一例を示すフローチャートである。
【図６】本発明の第２実施形態を示す印刷装置の画像生成処理の一例を示すフローチャートである。
【図７】本発明の第２実施形態を示す印刷装置の画像生成処理の一例を示すフローチャートである。
【図８】本発明の第３実施形態を示す印刷装置の画像生成処理の一例を示すフローチャートである。
【図９】本発明の第４実施形態を示す印刷装置の画像生成処理の一例を示すフローチャートである。
【図１０】本発明の第４実施形態における符号化画像合成処理の一例を示すフローチャートである。
【図１１】本発明の第５実施形態を示す印刷装置の画像生成処理の一例を示すフローチャートである。
【図１】
0003809209.tif 000002
【図２】
0003809209.tif 000003
【図３】
0003809209.tif 000004
【図４】
0003809209.tif 000005
【図５】
0003809209.tif 000006
【図６】
0003809209.tif 000007
【図７】
0003809209.tif 000008
【図８】
0003809209.tif 000009
【図９】
0003809209.tif 000010
【図１０】
0003809209.tif 000011
【図１１】
0003809209.tif 000012