(57)【特許請求の範囲】
【請求項１】
画像データが描画されるフレームバッファを複数のバンドに分割し、描画データからバンド単位でディスプレイリストを作成し、ページバッファにおいてバンド単位でディスプレイリストをフレームバッファに描画し、ページバッファが一杯になるとページバッファ内の画像データをスワップ領域に退避し、スワップ領域が一杯になるとスワップ領域内の画像データを圧縮し、描画が終了するとページバッファ及びスワップ領域の画像データをバンドバッファに伸張し、バンドバッファに伸張された画像データを印刷処理することを特徴とする画像印刷装置。
【請求項２】
作成したバンド単位のディスプレイリストの量がバンド間で極度に偏っている場合には、バンド単位のディスプレイリストをフレームバッファ単位のディスプレイリストに変換し、フレームバッファ単位でディスプレイリストをフレームバッファに描画する請求項１に記載の画像印刷装置。
【請求項３】
作成したバンド単位のディスプレイリストに複数のバンドに跨るエリアフィル又は変倍の情報を含むものがある場合には、バンド単位のディスプレイリストをフレームバッファ単位のディスプレイリストに変換し、フレームバッファ単位でディスプレイリストをフレームバッファに描画する請求項１に記載の画像印刷装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は印刷する画像データに対し圧縮処理をすることでメモリの少容量化を図る画像印刷装置、特に画像処理の高速化に関するものである。
【０００２】
【従来の技術】
レーザプリンタ装置のようにステッピング印刷が難しい画像印刷装置では、大容量のフレームバッファとよばれるメモリ上に印刷画像を描画し、これをポリゴンミラーの動きに合わせて、プリンタエンジン部に転送している。
【０００３】
また、カラープリンタ装置では白黒プリンタ装置４面分のフレームバッファを必要とすることから、プリンタ装置内に大きなメモリを搭載しなければならなかった。
【０００４】
そこで、データに対し圧縮処理をすることでメモリの少容量化を図る画像印刷装置では、描画用の複数のフレームバッファを、例えばＲＡＭの記憶領域上に設けた仮想記憶領域上に割り当て、フレームバッファのスワップ領域としてフレームバッファより少ない領域を実記憶領域上に割り当てる。スワップ領域としては、例えばフレームバッファの１／２から１／４のサイズの領域を割り当てる。そして、エミュレーションタスクはホスト装置から送られた描画データに従って作成したフルフレームのディスプレイリストをディスプレイリスト領域に格納する。描画タスクはディスプレイリスト領域に格納したフルフレームのディスプレイリストに従ってフレームバッファに描画を開始すると、ＴＬＢ（Ｔｒａｎｓｌａｔｉｏｎ  Ｌｏｏｋ−ａｓｉｄ  Ｂｕｆｆｅｒ）にフレームバッファ内の画像データを読み書きする領域であるページバッファであるリアルページの登録が無いので、ＴＬＢエクセプションが発生して、描画タスクを停止状態にし、圧縮／伸長タスクにＴＬＢエクセプションを発生したフレームバッファに対応したコンプレスユニット番号を伝達する。圧縮／伸長タスクはコンプレスユニット番号に対応したリアルページを探してＴＬＢに設定して停止した描画タスクを動かす。描画タスクはＴＬＢに設定したリアルページに対して画像データの書き込みであるスワップインを行なう。そして、リアルページが一杯になると、圧縮／伸長タスクはリアルページ内の画像データをスワップアウトしてスワップ領域に移し、スワップ領域が一杯になるとスワップ領域内のデータに対して圧縮処理をしてスワップページ内に空き領域を作り、リアルページ内のデータをスワップページに写すことで、少ない画像記憶領域で印刷処理をしている。
【０００５】
【発明が解決しようとする課題】
上記、従来の画像印刷装置では、ホスト装置であるパソコン、ＣＡＤ等を用いて、例えば印刷の副走査方向に１ページの上端から下端までＮ本の直線を描画した描画データに従って印刷処理をする場合、フルフレームのフレームバッファに対応する全てのＴＬＢにエクセプションが発生し、直線の本数Ｎに応じたＮ回のスワップイン、スワップアウトが発生して印刷処理にかかる時間が著しく低下する。
【０００６】
この発明はかかる短所を解消するためになされたものであり、画像処理の高速化を図る画像印刷装置を得ることを目的とする。
【０００７】
【課題を解決するための手段】
この発明に係る画像印刷装置は、画像データが描画されるフレームバッファを複数のバンドに分割し、描画データからバンド単位でディスプレイリストを作成し、ページバッファにおいてバンド単位でディスプレイリストをフレームバッファに描画し、ページバッファが一杯になるとページバッファ内の画像データをスワップ領域に退避し、スワップ領域が一杯になるとスワップ領域内の画像データを圧縮し、描画が終了するとページバッファ及びスワップ領域の画像データをバンドバッファに伸張し、バンドバッファに伸張された画像データを印刷処理する。
【０００８】
また、作成したバンド単位のディスプレイリストの量がバンド間で極度に偏っている場合には、バンド単位のディスプレイリストをフレームバッファ単位のディスプレイリストに変換し、フレームバッファ単位でディスプレイリストをフレームバッファに描画するとよい。
【０００９】
作成したバンド単位のディスプレイリストに複数のバンドに跨るエリアフィル又は変倍の情報を含むものがある場合には、バンド単位のディスプレイリストをフレームバッファ単位のディスプレイリストに変換し、フレームバッファ単位でディスプレイリストをフレームバッファに描画するとよい。
【００１０】
【発明の実施の形態】
この発明の画像印刷装置は、ＣＰＵとＲＯＭとＲＡＭと通信ビデオ制御部及びプリンタエンジン部とを有する。
ＣＰＵは、例えばエンジン制御タスク、印刷制御タスク、プリンタエミュレーションタスク及び圧縮／伸長タスクを有する。エンジン制御タスクはプリンタエンジンの制御を行なう。印刷制御タスクはエンジン制御タスクに対してペーパーフィード、ビデオスタート及びトレイ指定等の印刷の制御を行なう。エミュレーションタスクはホスト装置から受信した描画データに従ってページバッファに格納できる大きさのバンド単位に分割した複数のバンド毎のディスプレイリストを作成してディスプレイリスト領域に格納する。描画タスクはディスプレイリスト領域に格納したバンド毎のディスプレイリストに従ってフレームバッファへの描画を行なう。圧縮／伸長タスクは画像データの圧縮／伸長処理を行なう。
【００１１】
ＲＯＭは装置全体の制御プログラム及びフォント等を格納する。ＲＡＭは描画データの記憶領域としてエミュレーションタスクから送られた複数のバンド毎のディスプレイリストを格納するディスプレイリスト領域と、フレームバッファである仮想領域と、フレームバッファ内のバンド単位の画像データより大きめの領域を持ち、画像データの読み書きをするページバッファであるリアルページと、フレームバッファの１／２から１／４のサイズの実領域を割り当てたスワップページと、コンプレスユニットテーブルとコンプレスユニットテーブルを基にリアルページ及びスワップページから元のイメージデータを復元し一時的に記憶するバンドバッファとＴＬＢ（Ｔｒａｎｓｌａｔｉｏｎ  Ｌｏｏｋ−ａｓｉｄ  Ｂｕｆｆｅｒ）を備える実記憶領域を有する。
【００１２】
通信ビデオ制御部はシリアルインターフェイスを介してプリンタエンジン部を制御し、バンドバッファに格納したイメージデータをビデオ転送する。プリンタエンジン部は転送されてきたイメージデータを記録用紙に印刷する。
【００１３】
上記のように構成した画像印刷装置において、例えばホスト装置であるパソコン、ＣＡＤ等を用いて印刷の副走査方向に１ページの上端から下端までＮ本の直線を描画した描画データに従って印刷処理をする場合、エミュレーションタスクはホスト装置から受信した描画データに従って作成した複数のバンド毎のディスプレイリストをディスプレイリスト領域に格納する。描画タスクはディスプレイリスト領域に格納したバンド毎のディスプレイリストに従ってフレームバッファへのイメージデータの書込みを開始する。ここで、ＴＬＢにバンド単位でイメージデータの書込みを開始したフレームバッファに対応する実記憶領域であるリアルページが登録されていないため、ＴＬＢエクセプションが発生して、描画タスクを停止状態にし、圧縮／伸長タスクにＴＬＢエクセプションを発生したフレームバッファに対応したコンプレスユニット番号を伝達する。圧縮／伸長タスクはコンプレスユニット番号に対応したリアルページを探してＴＬＢに設定して停止した描画タスクを動かす。
【００１４】
描画タスクはＴＬＢに設定したリアルページに対してバンド毎にイメージデータを描画することで一度のスワップインでＮ本の画像データの書き込みを行なう。描画タスクによるひとつのバンドのイメージデータの書込みが終了すると、圧縮／伸長タスクはリアルページ内のイメージデータをスワップアウトしてスワップ領域を介してバンドバッファにセットし、バンドバッファからプリンタエンジン部にビデオＤＭＡ転送し印刷処理をする。また、描画タスクは次のバンドのディスプレイリストがある場合は引き続きリアルページへのイメージデータの書込みを開始し、全バンドの印刷処理をおこなう。
【００１５】
このように、ホスト装置から受信した描画データに従って複数のバンド毎のディスプレイリストを作成してページバッファの領域より小さいバンド単位で描画をするようにしたため、例えば１ページの印刷の副走査方向である上端から下端までの直線を複数描画した描画データに従って印刷処理をする場合でも一度のスワップイン、スワップアウトで複数の直線の画像データの書き込みが済み、印刷の処理時間の高速化を図ることができる。
【００１６】
また、上記エミュレーションタスクはホスト装置から送られた描画データに従って作成した複数のバンド毎のディスプレイリスト量が、各バンド毎に極度の偏りがある場合、バンド毎のディスプレイリストをフラッシュアウトすることでフルフレームのディスプレイリストに変換する。描画タスクはディスプレイリスト領域に格納したフルフレームのディスプレイリストに従ってページバッファに画像データを描画することで印刷時のプリントアンダーランを防止する。
【００１７】
更に、上記エミュレーションタスクはホスト装置から送られた描画データが例えばエリアフィル又は変倍等の情報を持ち、作成した複数のバンド毎のディスプレイリストである画像が複数のバンドに跨った場合、バンド毎のディスプレイリストをフラッシュアウトすることでフルフレームのディスプレイリストに変換する。描画タスクはディスプレイリスト領域に格納したフルフレームのディスプレイリストに従ってページバッファに画像データを描画することでエリアフィル又は変倍等の情報を忠実に再現した画像を得る。
【００１８】
【実施例】
図１はこの発明の構成を示すブロック図である。図に示すように画像印刷装置は中央演算処理部１、ＲＯＭ２、ＲＡＭ３、通信ビデオ制御部４及びプリンタエンジン部５を有する。中央演算処理部１は装置全体の動作を制御する部分であり、特に連想記憶部（以後、「ＴＬＢ」という。）を用いて仮想記憶領域を管理する。ＲＯＭ２は装置の制御プログラム及びフォントなどを記憶する部分である。ＲＡＭ３は描画データ記憶領域及び印刷データ記憶領域を備える。ＲＡＭ３は、図２に示すように描画データであるディスプレイリストの記憶領域として中央演算処理部１から送られた複数のバンド毎のディスプレイリストを格納するディスプレイリスト領域３０と、印刷データの記憶領域として描画用の複数のフレームバッファ３１を備える仮想記憶領域と、フレームバッファ３１内の画像データを読み書きする領域であるページバッファであるリアルページ３２とリアルページ３２のスワップ領域であるスワップページ３３とコンプレスユニットテーブル３４とコンプレスユニットテーブル３４を基にリアルページ３２及びスワップページ３３から元のデータを復元し一時的に記憶するバンドバッファ３５とＴＬＢ（Ｔｒａｎｓｌａｔｉｏｎ  Ｌｏｏｋ−ａｓｉｄ  Ｂｕｆｆｅｒ）３６を備える実記憶領域を有する。なお、スワップページ３３はフレームバッファ３１の１／２から１／４の大きさである。通信ビデオ制御部４はシリアルインターフェイスを介してプリンタエンジン部５を制御し、バンドバッファ３５に格納した印刷データをビデオ転送する。プリンタエンジン部５は転送されてきた印刷データを記録用紙に印刷する。
【００１９】
ここで、ディスプレイリスト領域３０について図３のフレームバッファ３１との対応を示す概要図を用いて説明する。図に示すようにディスプレイリスト領域３０はＤＬヘッダ部３０１とＤＬデータ部３０２から構成され、ＤＬヘッダ部３０１は図４のデータの定義に示すように複数のラベル情報を扱っている。図中、「ｐｂ．ｌｓｅｃ」はバンドセクタのライン数、「ｐｂ．ｎｓｅｃ」はバンドセクタの本数、「ｐｂ．ｓｅｃｔ［１］」はセクタ１の先頭ＤＬユニットへのポインタ、「ｐｂ．ｓｅｃｔ［ｎ］」はセクタｎの先頭ＤＬユニットへのポインタを示す。ＤＬデータ部３０２は例えば図３に示すフレームバッファ３１のバンドに跨るＡＢの文字を構成する複数のＤＬユニットＤ１〜Ｄ４を格納し、各ＤＬユニットＤ１〜Ｄ４はそれぞれ図５のデータの定義に示すラベル情報を扱っている。図中、「ｃｄ．ｆｕｎｃ」は例えば文字の描画を指示する描画ファンクション、「ｃｄ．ｌｉｎｋ」は次のＤＬユニットへのポインタ、「ｃｄ．ｐａｒａｍ［０］」は描画パラメータ０、「ｃｄ．ｐａｒａｍ［ｎ−１］」は描画パラメータｎ−１を示す。なお、バンドセクタのライン数ｐｂ．ｌｓｅｃはページバッファであるリアルページ３２の領域に収まる大きさに設定されている。
【００２０】
中央演算処理部１は、図６に示すようにエンジン制御タスク１１、印刷制御タスク１２、描画タスク１３、エミュレーションタスク１４及び圧縮／伸長タスク１５を有する。エンジン制御タスク１１はプリンタエンジン部５の制御を行なう。印刷制御タスク１２はエンジン制御タスク１１に対してペーパーフィード、ビデオスタート及びトレイ指定等の印刷の制御を行なう。エミュレーションタスク１４はホスト装置（不図示）から受信した描画データに従って複数のバンド毎のディスプレイリストであるＤＬユニットを作成してディスプレイリスト領域３０のＤＬデータ部３０２に格納する。描画タスク１３はＤＬデータ部３０２に格納した複数のＤＬユニットに従ってフレームバッファ３１への描画を行なう。圧縮／伸長タスク１５は画像データの圧縮／伸長処理を行なうものであり、スワップページ３３内に一定の空き領域ができるまで圧縮処理を行なう。
【００２１】
ここで、エミュレーションタスク１４でディスプレイリストであるＤＬユニットを作成してＤＬデータ部３０２に格納するときの動作概要を図７のフローチャートを参照して説明する。
【００２２】
エミュレーションタスク１４はホスト装置から送られてきた描画データに従って、例えば図８に示すフレームバッファ３１に描画する画像の上端座標をＳＹ＝９６、バンドセクタのライン数をｐｂ．ｌｓｅｃ＝８とした場合、描画するスタートセクタＳＳを、ＳＳ＝ＳＹ÷ｐｂ．ｌｓｅｃの式より求め、ＳＳ＝１２を算出する。また、フレームバッファ３１に描画する画像の下端座標をＴＹ＝１２０とした場合、描画が終了するラストセクタＴＳを、ＴＳ＝ＴＹ÷ｐｂ．ｌｓｅｃの式より求め、ＴＳ＝１５を算出する（ステップＳ１）。そして、スタートセクタＳＳへのポインタｐｂ．ｓｅｃｔ［ＳＳ］にリンクした描画データに従ってＤＬユニットを作成しＤＬデータ部３０２に格納する（ステップＳ２）。次に、スタートセクタＳＳに１を加算した値をスタートセクタＳＳとし（ステップＳ３）、スタートセクタＳＳがラストセクタＴＳより大きい値になるまでこの動作を繰り返すことで（ステップＳ４）、スタートセクタＳＳへのポインタｐｂ．ｓｅｃｔ［ＳＳ］からラストセクタＴＳへのポインタｐｂ．ｓｅｃｔ［ＴＳ］にリンクした描画データのＤＬユニットを作成しＤＬデータ部３０２に格納して動作を終了する。
【００２３】
次に、描画タスク１３でＤＬデータ部３０２に格納した複数のＤＬユニットに従ってフレームバッファ３１への描画をするときの動作概要を図９のフローチャートを参照して説明する。
【００２４】
描画タスク１３はＤＬデータ部３０２に格納した複数のＤＬユニットに従ってフレームバッファ３１へ描画をするときにスタートセクタＳＳを０に初期化する（ステップＳ１０）。そして、ｐｂ．ｓｅｃｔ［ＳＳ］から最初のＤＬユニットを取出し（ステップＳ１１）、その取り出したＤＬユニットに従ってフレームバッファ３１に描画する画像の上端座標であるｐｂ．ｌｓｅｃ×ＳＳからｐｂ．ｌｓｅｃ×（ＳＳ＋１）の間であるバンドの範囲内に描画をおこない（ステップ１２）、ＤＬユニットのｃｄ．ｌｉｎｋから次のＤＬユニットを取り出し（ステップＳ１３）、取り出したＤＬユニットに従ってバンドの範囲内に引き続き描画をする（ステップＳ１４、Ｓ１２）。また、ＤＬユニットのｃｄ．ｌｉｎｋから次のＤＬユニットが無いことを確認したときはスタートセクタＳＳに１を加算したものをスタートセクタＳＳとすることで次のバンドの描画処理に移り（ステップＳ１４，Ｓ１５）、バンドセクタの本数ｐｂ．ｎｓｅｃよりスタートセクタＳＳが小さいことで次のバンドが存在するのを確認したときは次のバンドに書き込むＤＬユニットを取出す（ステップＳ１６，Ｓ１１）。そして、その取り出したＤＬユニットに従ってバンド単位でフレームバッファ３１に描画する（ステップＳ１２）。また、バンドセクタの本数ｐｂ．ｎｓｅｃよりスタートセクタＳＳが大きくなったときは次のバンドが無いとして動作を終了する（ステップＳ１６）。
【００２５】
上記のように構成した画像印刷装置において、例えばホスト装置であるパソコン、ＣＡＤ等を用いて印刷の副走査方向に１ページの上端から下端までＮ本の直線を描画した描画データに従って印刷処理をする場合の動作概要を図１０のフローチャートを参照して説明する。
【００２６】
エミュレーションタスク１４はホスト装置から受信した描画データに従って作成した複数のバンド毎のディスプレイリストであるＤＬユニットをＤＬデータ部３０２に格納する（ステップＳ２０）。描画タスク１３はＤＬデータ部３０２に格納したバンド毎のディスプレイリストを構成するＤＬユニットに従ってフレームバッファ３１へのイメージデータの書込みを開始する。ここで、ＴＬＢ３６にバンド単位でイメージデータの書込みを開始したフレームバッファ３１に対応する実記憶領域であるリアルページ３２が登録されていないため、ＴＬＢエクセプションが発生して、描画タスク１３を停止状態にし、圧縮／伸長タスク１５にＴＬＢエクセプションを発生したフレームバッファ３１に対応したコンプレスユニット番号を伝達する。圧縮／伸長タスクはコンプレスユニット番号に対応したリアルページ３２を探してＴＬＢ３６に設定して停止した描画タスク１３を動かす（ステップＳ２１）。
【００２７】
描画タスク１３はＴＬＢ３６に設定したリアルページ３２に対してバンド毎にイメージデータを描画することで一度のスワップインでＮ本の画像データの書き込みを行なう（ステップＳ２２）。描画タスク１３によるひとつのバンドのイメージデータの書込みが終了すると（ステップＳ２３）、圧縮／伸長タスク１５はリアルページ３２内のイメージデータをスワップアウトしてスワップ領域を介してバンドバッファ３５にセットし（ステップＳ２４）、バンドバッファ３５からプリンタエンジン部５にビデオＤＭＡ転送し印刷処理をする（ステップＳ２５）。また、描画タスク１３はＤＬデータ部３０２に次のバンドのディスプレイリストを構成するＤＬユニットがある場合は引き続きリアルページ３２へのイメージデータの書込みを開始し（ステップＳ２６，Ｓ２２）、全バンドの印刷処理が終了するまで上記処理を繰り返す（ステップＳ２２〜ステップＳ２６）。
【００２８】
このように、ホスト装置から受信した描画データに従って複数のバンド毎のディスプレイリストを作成してページバッファの領域より小さいバンド単位で描画をするようにしたため、例えば１ページの印刷の副走査方向である上端から下端までの直線を複数描画した描画データに従って印刷処理をする場合でも一度のスワップイン、スワップアウトで複数の直線の画像データの書き込みが済み、印刷の処理時間の高速化を図ることができる。
【００２９】
しかし、エミュレーションタスク１４でホスト装置から送られた描画データに従って作成した複数のバンド毎のディスプレイリスト量が、各バンド毎に極度の偏りがある場合、描画タスク１３がリアルページ３２に対してイメージデータを描画するタイミングがバンド毎に偏ることでビデオＤＭＡの転送に間にあわなくなりプリントアンダーラン等の画像不良がおきる恐れがあった。
【００３０】
また、ホスト装置から送られた描画データが例えばエリアフィル又は変倍等の情報を持ち、エミュレーションタスク１４でこの描画データに従って作成した複数のバンド毎のディスプレイリストである画像が複数のバンドに跨った場合、描画タスク１３はリアルページ３２に対してエリアフィル又は変倍等の情報に従ってイメージデータの書き込みをするときにバンド毎に分割したディスプレイリストを扱うため画像処理上、例えば座標を相対的に確認する等ができなくなる。そのため、情報が付加された描画データを忠実に再現した印刷画像が得られなくなる恐れがあった。
【００３１】
そこで、エミュレーションタスク１４はホスト装置から送られた描画データに従って作成した複数のバンド毎のディスプレイリスト量が、各バンド毎に極度の偏りがある場合又はホスト装置から送られた描画データが例えばエリアフィル又は変倍等の情報を持ち、作成した複数のバンド毎のディスプレイリストである画像が複数のバンドに跨った場合には、バンド毎のディスプレイリストをフラッシュアウトすることでフルフレームのディスプレイリストに変換する。描画タスク１３はディスプレイリスト領域に格納したフルフレームのディスプレイリストに従ってページバッファであるリアルページ３２にイメージデータを描画する。
【００３２】
上記のように構成した画像印刷装置において、ホスト装置から送られた描画データが例えばエリアフィル又は変倍等の情報を持つ場合又は描画データに従って作成した複数のバンド毎のディスプレイリスト量が、各バンド毎に極度の偏りがあるときの印刷処理の動作概要を図１１のフローチャートを参照して説明する。
【００３３】
エミュレーションタスク１４はホスト装置から受信した描画データに従って複数のバンド毎のディスプレイリストであるＤＬユニットを作成してＤＬデータ部３０２に格納し（ステップＳ３０）、作成した複数のバンド毎のディスプレイリスト量が、各バンド毎に極度の偏りがない場合又はホスト装置から送られた描画データが例えばエリアフィル又は変倍等の情報を持ち、描画する画像が複数のバンドに跨らない場合には、描画タスク１３にバンド毎のディスプレイリストであるＤＬユニットに従って通常の印刷処理を開始させる（ステップＳ３１、Ｓ３２）。また、作成した複数のバンド毎のディスプレイリスト量が、各バンド毎に極度の偏りがある場合又はホスト装置から送られた描画データが例えばエリアフィル又は変倍等の情報を持ち、描画する画像が複数のバンドに跨る場合には（ステップＳ３１）、バンド毎のディスプレイリストをフラッシュアウトすることでフルフレームのディスプレイリストに変換する（ステップＳ３３）。
【００３４】
そして、描画タスク１３はディスプレイリスト領域に格納したフルフレームのディスプレイリストに従って仮想記憶領域上のフレームバッファ３１に描画を開始する。ここで、ＴＬＢ３６を介してリアルページ３２が設定されていないためＴＬＢエクセプションを発生して、描画を行なったタスクを停止状態にし、圧縮／伸長タスク１５にＴＬＢエクセプションを発生したフレームバッファ３１に対応したコンプレスユニット番号を伝達する。圧縮／伸長タスク１５はコンプレスユニット番号に対応したリアルページ３２を探し、ＴＬＢ３６に設定して停止した描画タスク１３を動かす（ステップＳ３４）。
【００３５】
描画タスク１３はＴＬＢ３６に設定したリアルページ３２に対してフルフレームでイメージデータの書込みを行なう（ステップＳ３５）。フルフレームのイメージデータを書込むためリアルページ３２が一杯になると（ステップＳ３６）、圧縮／伸長タスク１５はリアルページ３２内のイメージデータをスワップページ３３に移し（ステップＳ３７）、それでもスワップページ３３が一杯になる場合には（ステップＳ３８）、スワップページ３３内のイメージデータに対して圧縮処理をして格納する（ステップＳ３９）。
【００３６】
描画タスク１３によるフルフレームのイメージデータの書込み処理が終了すると（ステップＳ４０）、圧縮／伸長タスク１５はスワップページ３３内のイメージデータを伸長処理等してバンドバッファ３５にセットし（ステップＳ４１）、バンドバッファ３５からプリンタエンジン部５にビデオＤＭＡ転送し印刷処理をする（ステップＳ４２）。
【００３７】
このようにして、ホスト装置から送られた描画データに従って作成した複数のバンド毎のディスプレイリスト量が、各バンド毎に極度の偏りがある場合又はホスト装置から送られた描画データが例えばエリアフィル又は変倍等の情報を持ち、画像が複数のバンドに跨った場合には、バンド毎のディスプレイリストをフラッシュアウトすることでフルフレームのディスプレイリストに変換して、印刷処理をするようにしたため、プリンタアンダーラン等の画像不良を防止し、また、エリアフィル又は変倍等の情報を忠実に再現した画像を得ることができる。
【００３８】
【発明の効果】
この発明は以上説明したように、ページバッファが一杯になるとスワップ領域に退避するため、ページバッファに描画したデータを全て格納する場合よりも容量を小さくでき、スワップ領域が一杯になるとスワップ領域を圧縮するため、スワップ領域の容量をさらに小さくできる。
【００３９】
また、作成したバンド単位のディスプレイリストの量がバンド間で極度に偏っている場合には、フレームバッファ単位のディスプレイリストで描画及び印刷処理するため、プリンタアンダーラン等の画像不良を防止できる。
【００４０】
更に、作成したバンド単位でのディスプレイリストに複数のバンドに跨るエリアフィル又は変倍の情報を含むものがある場合には、フレームバッファ単位のディスプレイリストで描画及び印刷処理するため、エリアフィル又は変倍等の情報を忠実に再現した画像を得ることができる。
【図面の簡単な説明】
【図１】この発明の実施例を示す構成図である。
【図２】ＲＡＭの記憶領域の構成図である。
【図３】ディスプレイリスト領域とフレームバッファとの対応を示す構成図である。
【図４】ＤＬヘッダ部で扱うデータの定義を示す構成図である。
【図５】ＤＬユニットで扱うデータの定義を示す構成図である。
【図６】中央演算処理部の構成図である。
【図７】ＤＬユニットの作成の動作概要を示すフローチャートである。
【図８】フレームバッファの概要を示す構成図である。
【図９】ＤＬユニットを用いて描画するときの描画タスクの動作概要を示すフローチャートである。
【図１０】バンド単位のディスプレイリストを用いて印刷処理するときの動作概要を示すフローチャートである。
【図１１】フルフレームのディスプレイリストを用いて印刷処理するときの動作概要を示すフローチャートである。
【符号の説明】
１        中央演算処理部
１１      エンジン制御タスク
１２      印刷制御タスク
１３      描画タスク
１４      エミュレーションタスク
１５      圧縮／伸長タスク
２        ＲＯＭ
３        ＲＡＭ
３０      ディスプレイリスト領域
３０１    ＤＬヘッダ部
３０２    ＤＬデータ部
３１      フレームバッファ
３２      リアルページ
３３      スワップページ
３４      コンプレスユニットテーブル
３５      バンドバッファ
３６      ＴＬＢ
４        通信ビデオ制御部
５        プリンタエンジン部
【図１】
0003592020.tif 000002
【図２】
0003592020.tif 000003
【図３】
0003592020.tif 000004
【図４】
0003592020.tif 000005
【図５】
0003592020.tif 000006
【図６】
0003592020.tif 000007
【図７】
0003592020.tif 000008
【図８】
0003592020.tif 000009
【図９】
0003592020.tif 000010
【図１０】
0003592020.tif 000011
【図１１】
0003592020.tif 000012