(57)【要約】【課題】  メモリの有効利用を図ることにより、バンディング処理に伴うオーバーランの問題を解消するとともに出力時間の短縮化を図る。【解決手段】  各バンドにおける中間データの描画時間を算出する描画時間計測部１０２と、描画時間に応じ事前描画処理とするか、リアルタイム描画処理とするかを判定し、その実行を命令する制御部１０３と、事前描画処理により得られる各描画データを圧縮し圧縮メモリ１０７に書き込む圧縮部１０６と、圧縮メモリ１０７に書き込まれた描画データの伸張処理を行う伸張部１０８と、描画処理又は伸張処理を介して得られる描画データを、所定の規則にもとづき描画メモリ１０５ａ〜１０５ｃを替えながら書き込む記憶部１０５と、描画メモリ１０５ａ〜１０５ｃに書き込まれた各描画データを所定バンド順に読み出して出力する出力部１０９と、からなる構成としてある。【選択図】      図１
2010179546.tif 000002
【特許請求の範囲】
【請求項１】
対象の画像データを所定のバンド領域に分割しバンド毎に中間データを生成する中間データ生成部と、前記中間データに対し所定バンド順に描画処理を行う描画部と、前記描画処理によって得られる描画データを保持する記憶部と、前記記憶部から読み出される描画データに対し一定間隔で出力を行う出力部と、を有する画像形成装置であって、
前記中間データ生成部が生成した各中間データの描画時間を算出する描画時間算出手段と、
前記描画時間に応じ、前記各中間データについて、中間データの出力前に描画を行う事前描画処理とするか、他の中間データの出力と並行して描画を行うリアルタイム描画処理とするか、を判定し、そのいずれかを前記描画部に実行させる描画制御手段と、
前記事前描画処理により得られる各描画データを圧縮し所定の圧縮記憶領域に書き込む事前書込手段と、
前記圧縮記憶領域に書き込まれた描画データの伸張処理を行う伸張手段と、
描画処理又は伸張処理の実行により得られる各描画データを、所定の規則にもとづき、前記記憶部の記憶領域を替えながら書き込む描画書込手段と、
前記記憶領域に書き込まれた各描画データを、前記所定バンド順に読み出す読出手段と、を備えることを特徴とする画像形成装置。
【請求項２】
前記記憶部は、少なくとも３つの記憶領域を有し、
描画処理の実行により得られる描画データを、その実行の順に応じ一定のサイクルで前記記憶領域を替えながら書き込む前記描画書込手段と、
前記記憶領域に書き込まれた各描画データを、前記サイクルに応じて前記記憶領域から順に読み出す前記読出手段と、を備え、
前記描画書込手段は、前記描画データに前記事前描画処理に係る描画データが含まれる場合には、前記描画データを、所定の規則にもとづき前記サイクルを反転して前記記憶領域に書き込むとともに
前記読み出し手段は、前記記憶領域に書き込まれた前記各描画データを、所定の規則にもとづき前記サイクルを反転して前記記憶領域から読み出す請求項１記載の画像形成装置。
【請求項３】
前記描画制御手段は、前記サイクルに応じた順序で前記伸張処理及び前記リアルタイム描画処理を実行させる請求項２記載の画像形成装置。
【請求項４】
前記描画制御手段は、最初のバンドの中間データに対し、前記事前描画処理の後で、かつ、前記リアルタイム描画処理の前に描画を行う特殊描画処理を前記描画部に実行させ、
前記描画書込手段は、前記特殊描画処理の実行により得られる描画データを前記記憶領域のいずれかに書き込み、
前記読出手段が、前記記憶領域に書き込まれた前記特殊描画処理に係る描画データをその特殊描画処理の終了に応じて読み出す請求項２又は３記載の画像形成装置。
【請求項５】
前記描画制御手段が、前記特殊描画処理の終了に応じ、前記リアルタイム描画処理の対象となる中間データの描画処理を開始させるとともに、
前記描画書込手段が、前記リアルタイム描画処理の実行により得られる描画データを、前記特殊描画処理に係る描画データが書き込まれた前記記憶領域を基準とする基準サイクルで他の記憶領域から順に書き込みを行い、
前記読出手段が、前記リアルタイム描画処理に係る描画データを、前記基準サイクルにもとづき前記他の記憶領域から順に読み出しを行う請求項４記載の画像形成装置。
【請求項６】
前記伸張手段は、前記圧縮記憶領域に書き込まれた描画データについて、そのバンドの２つ前のバンドに係る中間データの描画終了又はそのバンドの直前のバンドに係る描画データの出力開始に応じて伸張処理を行うとともに、
前記描画書込手段は、その伸張処理により得られる描画データを、当該描画データのバンドの２つ前のバンドの描画データが書き込まれていた記憶領域に書きこむ請求項１乃至５のいずれか一項記載の画像形成装置。
【請求項７】
前記描画制御手段は、伸張処理に係る描画データのバンドの次のバンドに係る中間データのリアルタイム描画処理をその伸張処理の直前に実行させる請求項６記載の画像形成装置。
【請求項８】
前記描画書込手段は、前記伸張処理に係る描画データが書き込まれた記憶領域の２つ後以降の書き込みのサイクルについては、元のサイクルと逆のサイクルで記憶領域に書き込みを行う請求項５乃至７のいずれか一項記載の画像形成装置。
【請求項９】
前記読出手段は、前記伸張処理に係る描画データが書き込まれた記憶領域以降の読み出しのサイクルについては、元のサイクルと逆のサイクルで記憶領域から読み出しを行う請求項５乃至８のいずれか一項記載の画像形成装置。
【請求項１０】
最初のバンドを除く各バンドに関するマージンＴを次式（１）によって算出し、
前記描画制御手段は、
前記マージンＴが０より小さい場合には、そのバンドの描画について前記事前描画処理を判定し、前記マージンＴが０以上である場合には、そのバンドの描画について前記リアルタイム描画処理を判定する請求項１乃至９のいずれか一項記載の画像形成装置。
Ｔ＝ｔ＋Ｓ−Ｒ                                    ・・・・・・・・・・・（１）
（ただし、ｔを直前のバンドに関するマージン、Ｓをバンドごとの出力時間、Ｒをそのバンドの描画時間とし、最初のバンドに関するマージンＴ及びマージンｔを０とする。）
【請求項１１】
前記描画制御手段が、任意のバンドの描画処理について前記事前描画処理を判定した場合には、そのバンドの次のバンドに関する前記マージンｔを次式（２）によって求め、
前記描画制御手段が、任意のバンドの描画処理について前記リアルタイム描画処理を判定した場合には、そのバンドの次のバンドに関する前記マージンｔを、次式（３）、（４）によって求める請求項１０記載の画像形成装置。
ｔ＝Ｔ＋Ｒ                                        ・・・・・・・・・・・（２）
ｔ＝Ｓ（Ｔ＞Ｓの場合）                            ・・・・・・・・・・・（３）
ｔ＝Ｔ（Ｔ≦Ｓの場合）                            ・・・・・・・・・・・（４）
【請求項１２】
対象の画像データを所定のバンド領域に分割しバンド毎に中間データを生成する中間データ生成部と、前記中間データに対し所定バンド順に描画処理を行う描画部と、前記描画処理によって得られる描画データを保持する記憶部と、前記記憶部から読み出される描画データに対し一定間隔で出力を行う出力部と、を有する画像形成装置による画像形成方法であって、
前記中間データ生成部が生成した各中間データの描画時間を算出する描画時間算出ステップと、
前記描画時間に応じ、前記各中間データについて、中間データの出力前に描画を行う事前描画処理とするか、他の中間データの出力と並行して描画を行うリアルタイム描画処理とするか、を判定し、そのいずれかを前記描画部に実行させる描画制御ステップと、
前記事前描画処理により得られる各描画データを圧縮し所定の圧縮記憶領域に書き込む事前書込ステップと、
前記圧縮記憶領域に書き込まれた描画データの伸張処理を行う伸張ステップと、
描画処理又は伸張処理の実行により得られる各描画データを、所定の規則にもとづき、前記記憶部の記憶領域を替えながら書き込む描画書込ステップと、
前記記憶領域に書き込まれた各描画データを、前記所定バンド順に読み出す読出ステップと、を有することを特徴とする画像形成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バンディング処理を行う画像形成装置および画像形成方法に関し、より詳しくは、描画データを保持する記憶媒体の割当を制御することによって出力スループットの向上を図る画像形成装置及び画像形成方法に関する。
【背景技術】
【０００２】
近年、ホストコンピュータ等から印刷データを受信しページ毎に画像出力を行うページプリンタなどの画像形成技術の分野においては、所謂バンディング処理が一般的に行われている。
バンディング処理とは、１ページ分の描画領域を複数の矩形領域（バンド）で区切り、１バンド分の描画処理を行った後にその出力と次のバンドの描画処理とを同時に行い、この処理をバンド数分繰り返すことによって１ページ分の出力を得るものである。
このバンディング処理によれば、1バンド分の描画データを保持しうるメモリが少なくとも２つ（描画用メモリ、出力用メモリ）あれば足り、また、ファーストプリントまでの時間を短縮できることから、いまやページプリンタには欠かせない処理となっている。
【０００３】
しかしながら、このような画像形成装置は、その機構上、出力をページの途中で止めることが出来ないため、描画に時間がかかるバンドがある場合等、その前のバンドの出力が終わっても次のバンドの描画処理が終わらないためにその出力が開始できない状況になり、不具合を起こすことがある。
このような不具合の現象は、一般にオーバーランと呼称され、このようなオーバーランに対処すべく特許文献１や特許文献２にはその技術が開示されている。
これらの文献に開示されているプリンタ描画方式等によれば、共に事前描画処理（プリレンダリング）を採用することによって上述の問題解決を図っている。
事前描画処理では、まず、バンド毎の描画時間を算出した上で、出力時間との対比を行い、オーバーランの発生が予測できるバンドを抽出する。
そして、このようなバンドの描画に関しては、出力に先立って描画処理を行うことでオーバーランを未然に回避するようにしている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第３３４９９９７号公報
【特許文献２】特許第３９５７８５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１のプリンタ描画方式等によると、リアルタイム描画用のバンドメモリと事前描画用のバンドメモリとを別々に設けているため、機構的に無駄が多く、また、装置コストも余計に発生することとなる。
また、事前描画を行うか、リアルタイム描画を行うかの判断に際し、出力開始までの空き時間をバンド毎にクリアして判断するようにしているため、事前描画対象となるバンドのオブジェクトが多く発生してしまう。
このため、ファーストプリントの時間が長く、結果、良好な出力スループットを得ることができなかった。
【０００６】
また、特許文献２の印刷制御装置等によれば、事前描画は行うものの、そもそも描画処理を一定間隔で実施するようにしているため、無駄な時間が多く、いわゆるレンダリング待ち時間が多く発生する結果となっている。
さらに、圧縮／伸張を組み合わせて事前描画を行う例も開示されているが、圧縮用のメモリと伸張用のメモリとが個別に必要な構成となっているため、やはり機構面、コスト面で無駄が多い構成となっている。
【０００７】
本発明は、以上のような従来の技術が有する問題を解決するために提案されたものであり、バンディング処理に伴うオーバーランの問題を事前描画処理によって解消しつつ、さらにその事前描画処理を実行するうえで弊害となるリソースの無駄や空き時間を省き、円滑で効率のよい出力を実現する画像形成装置及び画像形成方法の提供を目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明の画像形成装置は、対象の画像データを所定のバンド領域に分割しバンド毎に中間データを生成する中間データ生成部と、前記中間データに対し所定バンド順に描画処理を行う描画部と、前記描画処理によって得られる描画データを保持する記憶部と、前記記憶部から読み出される描画データに対し一定間隔で出力を行う出力部と、を有する画像形成装置であって、前記中間データ生成部が生成した各中間データの描画時間を算出する描画時間算出手段と、前記描画時間に応じ、前記各中間データについて、中間データの出力前に描画を行う事前描画処理とするか、他の中間データの出力と並行して描画を行うリアルタイム描画処理とするか、を判定し、そのいずれかを前記描画部に実行させる描画制御手段と、前記事前描画処理により得られる各描画データを圧縮し所定の圧縮記憶領域に書き込む事前書込手段と、前記圧縮記憶領域に書き込まれた描画データの伸張処理を行う伸張手段と、描画処理又は伸張処理の実行により得られる各描画データを、所定の規則にもとづき、前記記憶部の記憶領域を替えながら書き込む描画書込手段と、前記記憶領域に書き込まれた各描画データを前記所定バンド順に読み出す読出手段と、を備えた構成としてある。
【０００９】
また、本発明の画像形成方法は、対象の画像データを所定のバンド領域に分割しバンド毎に中間データを生成する中間データ生成部と、前記中間データに対し所定バンド順に描画処理を行う描画部と、前記描画処理によって得られる描画データを保持する記憶部と、前記記憶部から読み出される描画データに対し一定間隔で出力を行う出力部と、を有する画像形成装置による画像形成方法であって、前記中間データ生成部が生成した各中間データの描画時間を算出する描画時間算出ステップと、前記描画時間に応じ、前記各中間データについて、中間データの出力前に描画を行う事前描画処理とするか、他の中間データの出力と並行して描画を行うリアルタイム描画処理とするか、を判定し、そのいずれかを前記描画部に実行させる描画制御ステップと、前記事前描画処理により得られる各描画データを圧縮し所定の圧縮記憶領域に書き込む事前書込ステップと、前記圧縮記憶領域に書き込まれた描画データの伸張処理を行う伸張ステップと、描画処理又は伸張処理の実行により得られる各描画データを、所定の規則にもとづき、前記記憶部の記憶領域を替えながら書き込む描画書込ステップと、前記記憶領域に書き込まれた各描画データを、前記所定バンド順に読み出す読出ステップと、を有する方法としてある。
【発明の効果】
【００１０】
本発明の画像形成装置及び画像形成方法によれば、バンディング処理において生ずるオーバーラン未然に回避することが可能となるだけでなく、効果的に出力スループットの向上を図ることができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施形態にかかる画像形成装置の構成を示すブロック図である。
【図２】本実施形態の画像形成装置が行う描画種類の判定プロセスを示したフローチャートである。
【図３】本実施形態において使用するサンプル印刷データの分析結果をバンド毎に示した表図である。
【図４】本実施形態の画像形成装置が図３に示すサンプル印刷データを描画する場合の描画メモリの書き込み方法を示したフローチャートである。
【図５】本実施形態の画像形成装置が図３に示すサンプル印刷データを出力する場合の描画メモリの読み出し方法を示したフローチャートである。
【図６】本実施形態の画像形成装置が図３に示すサンプル印刷データを描画・出力する場合のメモリ番号の推移とバンド番号の対応を示した表図である。
【図７】本実施形態の画像形成装置が図３に示すサンプル印刷データを描画・出力した結果を時系列に示したタイムチャートである。
【図８】メモリを３つ搭載したとする従来の画像形成装置が、図３に示すサンプル印刷データを描画・出力した結果を時系列に示したタイムチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明に係る画像形成装置の好ましい実施形態について図１〜図８を参照して説明する。
【００１３】
図１は、本発明の一実施形態にかかる画像形成装置の構成を示すブロック図である。
なお、本実施形態に係る画像形成装置１０は、ページ単位に描画及び出力を行うページプリンタ等を想定しており、図示しないホストコンピュータから出力される印刷データを受け、画像形成に必要な各種処理を経て、紙媒体等に印刷出力する動作を通常行うものである。
【００１４】
中間データ生成部１０１は、ホストコンピュータから受信したＰＤＬ（プリンタ記述言語）等の印刷データを解釈して、プリンタが処理しやすい形式である中間データに変換するものである。
また、中間データ生成部１０１は、その中間データの生成の際に、１ページごとにその画像データを所定領域（以下、バンドと呼称する。）に分割して複数のバンド領域を生成し、バンドごとに中間データを生成するようにしている。
【００１５】
描画時間計測部（描画時間算出手段）１０２は、中間データ生成部１０１が生成した各バンドの中間データのそれぞれについて、描画時間を算出するものである。
具体的には、各バンド領域に含まれる各オブジェクトの幅や高さなどから論理的に描画時間を算出してオーバーランの予測に利用するものである。
【００１６】
制御部（描画制御手段）１０３は、算出した描画時間に応じ、各中間データの描画処理を、事前描画処理とするか、リアルタイム描画処理とするか、を判定するものである。
また、このような描画種類判定をバンド毎に行い、その判定にもとづく描画処理を描画部１０４に実行させるものである。
なお、「事前描画処理」とは、すべての中間データの出力に先だって描画を実行しておく処理であり、オーバーランの発生を未然に防ぐものである。
また、「リアルタイム描画処理」とは、他の中間データの出力と並行して描画を実行するものであり、バンディング処理において一般的に行われる描画処理である。
さらに、制御部１０３は、最初のバンドの中間データに対しては、前記事前描画処理の後で、かつ、前記リアルタイム描画処理の前に描画を行う「特殊描画処理」を前記描画部に実行させるようにしている。
この特殊描画処理は、最初のバンドの出力に対応しその出力前に描画処理が実行されるものであり、他の描画処理と異なり、その描画時間の長短に拘わらず、固定的に実行されることから描画処理の基準をなすものである。
そこで、上述した描画種類判定の具体的なプロセスについて以下詳細に説明を行う。
【００１７】
図２は、本実施形態の画像形成装置が行う描画種類の判定プロセスを示したフローチャートであり、中間データ生成部１０１、描画時間計測部１０２及び制御部１０３で行われる一連の動作手順を示したものである。
また、図３は、本実施形態において使用するサンプル印刷データの分析結果をバンド毎に示した表図である。
なお、本実施形態に係る画像形成装置は、後述する各動作ステップに先立ち、図示しないホストコンピュータから受信するなどして、既に、図３に示すサンプルの印刷データを取得しているものとする。
【００１８】
図２に示すように、本実施形態の画像形成装置１０は、まず、中間データ生成部１０１が、印刷データ（ＰＤＬ）を解釈し、所定数のバンドに分割された中間データを生成する（Ａ１）。
次いで、描画時間計測部１０２が、バンド毎の描画時間を計算によって求める（Ａ２）。
そして、ステップＡ１〜Ａ２の処理を、１ページを形成するすべてのバンドに対し繰り返し行う（Ａ３）。
この結果、サンプル画像データを形成するバンド１〜１４の各々について描画時間を取得する（図３参照）。
【００１９】
ステップＡ１〜Ａ３の前処理を経て、後述するステップＡ４〜Ａ１４では、具体的な描画種類の判定を行う。
ここでは、まず、制御部１０３が、バンド１（初期バンド）の中間データに対し、いわゆる特殊描画処理を実行するものとして定める（Ａ４）。
「特殊描画処理」とは、バンド１の出力を必ず最初に行う必要があるため、その前に行う描画処理であり、事前描画処理の実行後であって、リアルタイム描画処理の実行前に実行する描画処理として定義することができる。
【００２０】
次に、制御部１０３は、描画種類の判定に用いるマージンＴ及びマージンｔを初期化し（Ａ５）、バンド１に関するマージンＴ及びマージンｔを０に設定する。
そして、制御部１０３は、２バンド目以降の各バンドにおけるマージンＴを次式（１）によって算出する（Ａ６）。
Ｔ＝ｔ＋Ｓ−Ｒ                                    ・・・・・・・・・・・（１）
（ただし、ｔを直前のバンドに関するマージン、Ｓをバンドごとの出力時間、Ｒをそのバンドの描画時間とする。）
【００２１】
ここで、制御部１０３は、ステップＡ６で求めたマージンＴが０より小さいか否かによって、事前描画処理とするか、リアルタイム描画処理とするか、を判定する（Ａ７）。
すなわち、ステップＡ７の結果、Ｔ＜０であれば（Ａ７：Ｙ）、制御部１０３は、そのバンドの描画は事前描画処理を行うものと判定する（Ａ８）。
なお、ステップＡ８に続き、制御部１０３は、次のバンドのマージンＴ計算のためのマージンｔを次式（２）によって求めておく（Ａ９）。
ｔ＝Ｔ＋Ｒ                                        ・・・・・・・・・・・（２）
【００２２】
一方、ステップＡ７において、Ｔ≧０であれば（Ａ７：Ｎ）、制御部１０３は、そのバンドの描画はリアルタイム描画処理を行うものと判定する（Ａ１０）。
ステップＡ１０に続き、制御部１０３は、マージンＴが、出力時間（Ｓ）より大きいか否かを判定することによって、マージンｔの値を調整する（Ａ１１）。
具体的には、Ｔ＞Ｓであれば（Ａ１１：Ｙ）、制御部１０３は、マージンｔを次式によって求める（Ａ１２）。
ｔ＝Ｓ                                            ・・・・・・・・・・・（３）
また、Ｔ≦Ｓであれば（Ａ１１：Ｎ）、制御部１０３は、マージンｔを次式によって求める（Ａ１３）。
ｔ＝Ｔ                                            ・・・・・・・・・・・（４）
【００２３】
そして、ステップＡ６〜Ａ１３の処理を１ページに属するすべてのバンド、すなわちバンド１〜バンド１４に対して行う（Ａ１４）。
これにより、図３の表図の最下段に示すように、各バンドごとの描画種類が判定されることとなる。
また、同時に、バンド毎の描画処理の順序も以下のように決定する。
「バンド６」→「バンド８」→「バンド９」（以上、事前描画処理）→「バンド１」（特殊描画処理）→「バンド２」→「バンド３」→「バンド４」→「バンド５」→「バンド７」→「バンド１０」→「バンド１１」→「バンド１２」→「バンド１３」→「バンド１４」（以上、リアルタイム描画処理）
【００２４】
ここで、図３のうち、バンド１、バンド２及びバンド８を例に挙げて以下詳細に説明を行う。なお、本例において、１バンド当たりの出力時間Ｓは、一定であり１００ｍｓとする。
【００２５】
（バンド１）
バンド１は、前述のステップＡ４で説明したとおり固定的に特殊描画処理と判定される。
なお、ここでのマージンｔは、前述のステップＡ５で説明したとおり０が設定される。
（バンド２）
バンド２におけるマージンＴ２は、上記式（１）にもとづいて求める。
ここでは、図３の表図から、ｔ＝０、Ｓ＝１００ｍｓ、Ｒ＝４０ｍｓが読み取れるため、Ｔ２＝０＋１００−４０＝６０となる。
したがって、ステップＡ７の判定によると、Ｔ２≧０となるため（Ａ７：Ｎ）、バンド２はリアルタイム描画処理と判定される（Ａ１０）。
なお、ステップＡ１１により、Ｔ２≦出力時間Ｓとなるため（Ａ１１：Ｎ）、ｔ＝Ｔ、つまりｔ＝６０に調整され（Ａ１３）、バンド３のマージンＴの計算に用いられることとなる。
【００２６】
（バンド８）
バンド８におけるマージンＴ８も、上記式（１）にもとづいて求める。
ここでは、図３の表図から、ｔ＝２０、Ｓ＝１００ｍｓ、Ｒ＝１６０が読み取れるため、Ｔ８＝２０＋１００−１６０＝−４０となる。
したがって、ステップＡ７の判定によると、Ｔ８＜０となるため（Ａ７：Ｙ）、バンド８は事前描画処理と判定される。
なお、ステップＡ９により、Ｔ８≦出力時間Ｓとなるため、ｔ＝Ｔ＋Ｒ＝（−４０）＋１６０＝１２０に調整され、バンド９のマージンＴの計算に用いられることとなる。
【００２７】
描画部１０４は、図１に示すとおり、制御部１０３の制御のもと、各中間データの描画処理を行うことでバンド毎に描画データを生成するものである。
そして、生成された描画データは、記憶部１０５の描画メモリ１０５ａ〜１０５ｃのいずれかに書き込まれる（本発明の描画書込手段、事前書込手段）。
なお、描画メモリ１０５ａ〜１０５ｃに書き込まれた描画データは、その出力が終了するまで保持される。
【００２８】
記憶部１０５は、３つの描画メモリ１０５ａ〜１０５ｃを有し、描画部１０４によって生成された各バンドの描画データ又は伸張部１０８によって伸張された描画データを、描画メモリ１０５ａ〜１０５ｃを順に切り替えながら書き込みを行う。
本実施形態の場合、描画メモリ１０５ａを基準として１０５ａ→１０５ｂ→１０５ｃの順が正の順（＋）で、その逆が負の順（−）としており、初期値として正の順（＋）が設定されている。
したがって、基本動作として、バンド１→１０５ａ、バンド２→１０５ｂ、バンド３→１０５ｃ、バンド４→１０５ａ、バンド５→１０５ｂ、・・・といったサイクルで、バンド順に３つの描画メモリが対応するように繰り返しながら描画データの書き込みを行う。
ただし、事前描画処理に係る圧縮描画データについては、前記サイクルに関わらず、その２つ前のバンドの描画データが保持されていた描画メモリに書き込みを行い、また、この場合、前述した書き込みのサイクルを変更することによって効率よく描画処理が実行できる構成としている。
【００２９】
圧縮部１０６は、圧縮対象の描画データを圧縮データ形式に変換することによってそのデータサイズを縮小させるものである。
具体的には、事前描画処理対象の描画データを描画メモリから抽出して圧縮処理を行う。
圧縮メモリ１０７は、圧縮部１０６によって圧縮された描画データの圧縮データを一時的に保持しておくものである。
伸張部１０８は、所定のタイミングで圧縮メモリ１０７にある圧縮データを伸張し、もとの描画データを復元するものであり、伸張された描画データは描画メモリ１０５ａ〜１０５ｃに書き込まれる。
特に、本実施形態の画像形成装置は、係る伸張データが出力時間より短いことを利用するものであり、伸張処理をその出力の直前のバンドの出力開始（又は、その２つ前のバンドの描画終了）と同時に行うことによって、伸張データのメモリ保持時間を短縮できる作用効果を備えている。
出力部１０９は、描画メモリ１０５ａ〜１０５ｃに保持されてある描画データをバンド順に読み出し、出力するものである。
【００３０】
（書き込みメモリと読み出しメモリの設定方法）
ここで、本実施形態に係る画像形成装置の特徴である３つのメモリの書き込みと読み出しのプロセスについて説明する。
図４は、本実施形態の画像形成装置が図３に示すサンプル印刷データを描画する場合の描画メモリの書き込み方法を示したフローチャートである。
また、図５は、本実施形態の画像形成装置が図３に示すサンプル印刷データを出力する場合の描画メモリの読み出し方法を示したフローチャートである。
なお、以下の説明において行われる描画処理や出力処理は実際の処理ではなく、書き込みメモリや読み出しメモリを予め設定するためにＣＰＵ等で仮想的に行われる演算処理のことを示す。
【００３１】
図４に示すとおり、描画処理に先立って、まず、所定の初期化処理を行う（Ｂ１）。
具体的には、書込メモリ番号を「１」に設定し、読出メモリ番号を「３」に設定し、メモリカウンタを「２」に設定する。なお、メモリ番号１は描画メモリ１０５ａ、メモリ番号２は描画メモリ１０５ｂ、メモリ番号３は描画メモリ１０５ｃにそれぞれ対応しており、例えば、書込順「＋」のもとインクリメントされるたびに、「１」→「２」→「３」→「１」→「２」のように１〜３のサイクルで書き込みが繰り返され、読出順「＋」のもとインクリメントされるたびに、同様のサイクルで読み出しが繰り返される。
なお、書込順と読出順の初期値をそれぞれ「＋」とし、フラグの初期値を「flag＝０」とする。
そして、図４に示す、ステップＢ２以下の各ステップは、既に決定している描画処理の順にしたがって各バンドについて制御部１０３の制御のもと処理が行われるものとする。
【００３２】
（事前描画処理：バンド６の描画）
ここで、制御部１０３は、最初のバンドに該当するバンド６に対する描画命令を行われ、描画データが生成される（Ｂ２）。
そして、書込メモリ番号は、初期値「１」であるため、バンド６の描画データはメモリ１に対応する描画メモリ１０５ａに書き込まれることとなる。
なお、描画処理の終了を待ち（Ｂ３：ＹＥＳ）、全バンドの描画処理が終了した場合を除き次のステップに進む（Ｂ４）。
【００３３】
（事前描画処理：バンド８の描画）
ここで、制御部１０３は、次の描画処理対象であるバンド８の諸情報を取得する（Ｂ５）。
具体的には、そのバンドの描画種類やその描画の順番等のデータを取得し、ステップＢ６の判断に利用する。
そして、制御部１０３は、バンド８の描画種類を判定する（Ｂ６）。
ステップＢ６の判定の結果、バンド８は、「事前描画処理」と判定されるため（Ｂ６：ａ）、書込メモリ番号を１インクリメントして書込メモリ番号「２」を指定するとともに、読出メモリ番号を１インクリメントして読出メモリ番号「１」を指定する（Ｂ７）。
次いで、ステップＢ７で行ったメモリ指定に対応し、読出メモリ番号「１」に対応する描画メモリ１０５ａからバンド６の描画データを読み出して圧縮処理を行い、その圧縮データを圧縮メモリ１０７に保持させるとともに（Ｂ８）、バンド８の描画処理を行い書込メモリ番号「２」に対応する描画メモリ１０５ｂに描画データを書き込む（Ｂ９）。
そして、バンド８の描画処理が終了すると（Ｂ３：ＹＥＳ）、全バンドの描画処理が終了した場合を除き次のステップに進む（Ｂ４）。
【００３４】
（事前描画処理：バンド９の描画）
ここで、制御部１０３は、次の描画処理対象であるバンド９の諸情報を取得し（Ｂ５）、その描画種類を判定する（Ｂ６）。
ステップＢ６の判定の結果、バンド９は、「事前描画処理」と判定されるため（Ｂ６：ａ）、書込メモリ番号を１インクリメントして書込メモリ番号「３」を指定するとともに、読出メモリ番号を１インクリメントして読出メモリ番号「２」を指定する（Ｂ７）。
次いで、ステップＢ７で行ったメモリ指定に対応し、読出メモリ番号「２」に対応する描画メモリ１０５ｂからバンド８の描画データを読み出して圧縮処理を行い、その圧縮データを圧縮メモリ１０７に保持させるとともに（Ｂ８）、バンド９の描画処理を行い書込メモリ番号「３」に対応する描画メモリ１０５ｃに描画データを書き込む（Ｂ９）。
そして、バンド９の描画処理が終了すると（Ｂ３：ＹＥＳ）、全バンドの描画処理が終了した場合を除き次のステップに進む。
【００３５】
（特殊描画処理：バンド１の描画・書込）
ここで、制御部１０３は、次の描画処理対象であるバンド１の諸情報を取得し（Ｂ５）、その描画種類を判定する（Ｂ６）。
ステップＢ６の判定の結果、バンド１は、「特殊描画処理」と判定されるため（Ｂ６：ａ）、書込メモリ番号を１インクリメントして書込メモリ番号「１」を指定するとともに、読出メモリ番号を１インクリメントして読出メモリ番号「３」を指定する（Ｂ７）。
次いで、ステップＢ７で行ったメモリ指定に応じ、読出メモリ番号「３」に対応する描画メモリ１０５ｃからバンド９の描画データを読み出して圧縮処理を行い、その圧縮データを圧縮メモリ１０７に保持させるとともに（Ｂ８）、バンド１の描画データを、書込メモリ番号「１」に対応する描画メモリ１０５ａに書き込む（Ｂ９）。
そして、バンド１の描画処理が終了すると（Ｂ３：ＹＥＳ）、全バンドの描画処理が終了した場合を除き、次のステップに進む。
【００３６】
（リアルタイム描画処理：バンド２の描画・書込）
ここで、制御部１０３は、次の描画処理対象であるバンド２の諸情報を取得し（Ｂ５）、その描画種類を判定する（Ｂ６）。
ステップＢ６の判定の結果、バンド２は、「最初のリアルタイム描画処理」と判定されるため（Ｂ６：ｂ）、書込メモリ番号を１インクリメントして書込メモリ番号「２」を指定するとともに、メモリカウンタを１インクリメントして「３」とする（Ｂ１０）。
また、ステップＢ１０の処理に応じて出力命令が発せられ（Ｂ１１）、このタイミングで書込メモリに係るプログラムと読出メモリに係るプログラムとが連動しながら並列に実行される。
次いで、ステップＢ１０で行ったメモリ指定に応じ、バンド２の描画データを、書込メモリ番号「２」に対応する描画メモリ１０５ｂに書き込む（Ｂ１２）。
そして、バンド２の描画処理が終了すると（Ｂ３：ＹＥＳ）、全バンドの描画処理が終了した場合を除き次のステップに進む。
【００３７】
ここで、制御部１０３は、次の描画処理対象であるバンド３の諸情報を取得し（Ｂ５）、その描画種類を判定する（Ｂ６）。
ステップＢ６の判定の結果、バンド３は、「２番目以降のリアルタイム描画処理」と判定されるため（Ｂ６：ｃ）、次に、メモリカウンタがフル（３）か否かを判定する（Ｂ１３）。
ここでは、メモリカウンタがフルであるため（Ｂ１３：Ｎ）、メモリカウンタがデクリメントされるまで次の処理には進むことができない。
つまり、３つある描画メモリ１０５ａ〜１０５ｃはすべて描画データが保持されている状態であるため、出力処理によっていずれかのメモリが解放される（図５のステップＣ３参照）までは次の描画データの書き込みを制限する趣旨である。
したがって、次に、図５に示す出力処理に移行する。
【００３８】
図５に示す出力処理に関しては、一連の処理をバンド１〜バンド１４まで順にしたがって行う。
（バンド１の読出・出力）
したがって、最初の処理としては、バンド１についてのバンド情報（描画種類等）を取得するところから始まる（Ｃ１）。
ここで、バンド１の次のバンドが事前描画処理の対象か否かを判定する（Ｃ２）。
ステップＣ２の判定の結果、バンド２は事前描画処理ではないので（Ｃ２：Ｎ）、読出メモリ番号を１インクリメントするとともにメモリカウンタを１デクリメントする（Ｃ３）。
現在、読出メモリ番号は「３」であるため読出メモリ番号は「１」に指定され、また、メモリカウンタは「３」から「２」になる。
次いで、ステップＣ３で行ったメモリ指定に応じ、読出メモリ番号「１」に対応する描画メモリ１０５ａからバンド１の描画データを読み出し、出力処理を行う（Ｃ４）。
次に、１バンド分の処理が終了するまで次の処理を待機させる（Ｃ１２）。
そして、全バンドの処理が終了した場合を除き次のステップに進む（Ｃ１３）。
【００３９】
（リアルタイム描画処理：バンド３の描画・書込）
図４に戻り、ステップＣ３の処理によりメモリカウンタがフルではなくなったため（Ｂ１３：Ｎ）、書込メモリ番号を１インクリメントして書込メモリ番号「３」を指定するとともに、メモリカウンタを１インクリメントして「３」とする（Ｂ１４）。
次いで、ステップＢ１４で行ったメモリ指定に応じ、バンド３の描画データを、書込メモリ番号「３」に対応する描画メモリ１０５ｃに書き込む（Ｂ１５）。
ここで、フラグ判定を行い（Ｂ１６）、「flag＝０」なので、そのまま次のステップ（Ｂ３）にすすむ。
そして、バンド３の描画処理が終了すると（Ｂ３：ＹＥＳ）、全バンドの描画処理が終了した場合を除き次のステップに進む。
【００４０】
ここで、制御部１０３は、次の描画処理対象であるバンド４の諸情報を取得し（Ｂ５）、その描画種類を判定する（Ｂ６）。
ステップＢ６の判定の結果、バンド４は、「２番目以降のリアルタイム描画処理」と判定されるため（Ｂ６：ｃ）、次に、メモリカウンタがフル（３）か否かを判定する（Ｂ１３）。
また、ステップＢ１３の判定の結果、メモリカウンタはフルであるため図５に示す出力処理に移行する。
【００４１】
（バンド２の読出・出力）
図５に示すように、ここでは、まず、バンド２に関するバンド情報（描画種類等）を取得する（Ｃ１）。
ここで、バンド２の次のバンドであるバンド３が事前描画処理の対象か否かを判定する（Ｃ２）。
ステップＣ２の判定の結果、バンド３は事前描画処理ではないので（Ｃ２：Ｎ）、読出メモリ番号を１インクリメントするとともにメモリカウンタを１デクリメントする（Ｃ３）。
現在、読出メモリ番号は「１」であるため読出メモリ番号は「２」に指定され、また、メモリカウンタは「３」から「２」になる。
次いで、ステップＣ３で行ったメモリ指定に応じ、読出メモリ番号２に対応する描画メモリ１０５ｂからバンド２の描画データを読み出し、出力処理を行う（Ｃ４）。
そして、１バンド分の処理が終了するまで次の処理を待機させる（Ｃ１２）。
また、全バンドの処理が終了した場合を除き次のステップに進む（Ｃ１３）。
【００４２】
（リアルタイム描画処理：バンド４の描画・書込）
図４に戻り、ステップＣ３の処理によりメモリカウンタがフルではなくなったため（Ｂ１３：Ｎ）、書込メモリ番号を１インクリメントして書込メモリ番号「１」を指定するとともに、メモリカウンタを１インクリメントして「３」とする（Ｂ１４）。
次いで、ステップＢ１４で行ったメモリ指定に応じ、バンド４の描画データを、書込メモリ番号「１」に対応する描画メモリ１０５ａに書き込む（Ｂ１５）。
ここで、フラグ判定を行い（Ｂ１６）、「flag＝０」なので、そのまま次のステップ（Ｂ３）にすすむ。
【００４３】
そして、バンド４の描画処理が終了すると（Ｂ３：ＹＥＳ）、全バンドの描画処理が終了した場合を除き次のステップに進む。
ここで、制御部１０３は、次の描画処理対象であるバンド５の諸情報を取得し（Ｂ５）、その描画種類を判定する（Ｂ６）。
ステップＢ６の判定の結果、バンド５は、「２番目以降のリアルタイム描画処理」と判定されるため（Ｂ６：ｃ）、次に、メモリカウンタがフル（３）か否かを判定する（Ｂ１３）。
また、ステップＢ１３の判定の結果、メモリカウンタはフルであるため図５に示す出力処理に移行する。
【００４４】
（バンド３の読出・出力）
図５に示すように、ここでは、まず、バンド３に関するバンド情報（描画種類等）を取得する（Ｃ１）。
ここで、バンド３の次のバンドであるバンド４が事前描画処理の対象か否かを判定する（Ｃ２）。
ステップＣ２の判定の結果、バンド４は事前描画処理ではないので（Ｃ２：Ｎ）、読出メモリ番号を１インクリメントするとともにメモリカウンタを１デクリメントする（Ｃ３）。
現在、読出メモリ番号は「２」であるため読出メモリ番号は「３」に指定され、また、メモリカウンタは「３」から「２」になる。
次いで、ステップＣ３で行ったメモリ指定に応じ、読出メモリ番号３に対応する描画メモリ１０５ｃからバンド３の描画データを読み出し、出力処理を行う（Ｃ４）。
そして、１バンド分の処理が終了するまで次の処理を待機させる（Ｃ１２）。
また、全バンドの処理が終了した場合を除き次のステップに進む（Ｃ１３）。
【００４５】
（リアルタイム描画処理：バンド５の描画・書込）
図４に戻り、ステップＣ３の処理によりメモリカウンタがフルではなくなったため（Ｂ１３：Ｎ）、書込メモリ番号を１インクリメントして書込メモリ番号「２」を指定するとともに、メモリカウンタを１インクリメントして「３」とする（Ｂ１４）。
次いで、ステップＢ１４で行ったメモリ指定に応じ、バンド５の描画データを、書込メモリ番号「２」に対応する描画メモリ１０５ｂに書き込む（Ｂ１５）。
ここで、フラグ判定を行い（Ｂ１６）、「flag＝０」なので、そのまま次のステップ（Ｂ３）にすすむ。
【００４６】
そして、バンド５の描画処理が終了すると（Ｂ３：ＹＥＳ）、全バンドの描画処理が終了した場合を除き次のステップに進む。
ここで、制御部１０３は、次の描画処理対象であるバンド７の諸情報を取得し（Ｂ５）、その描画種類を判定する（Ｂ６）。
ステップＢ６の判定の結果、バンド７は、「２番目以降のリアルタイム描画処理」と判定されるため（Ｂ６：ｃ）、メモリカウンタがフル（３）か否かを判定する（Ｂ１３）。
ステップＢ１３の判定の結果、メモリカウンタはフルであるため図５に示す出力処理に移行する。
【００４７】
（バンド４の読出・出力）
図５に示すように、ここでは、まず、バンド４に関するバンド情報（描画種類等）を取得する（Ｃ１）。
ここで、バンド４の次のバンドであるバンド５が事前描画処理の対象か否かを判定する（Ｃ２）。
ステップＣ２の判定の結果、バンド５は事前描画処理ではないので（Ｃ２：Ｎ）、読出メモリ番号を１インクリメントするとともにメモリカウンタを１デクリメントする（Ｃ３）。
現在、読出メモリ番号は「３」であるため読出メモリ番号は「１」に指定され、また、メモリカウンタは「３」から「２」になる。
次いで、ステップＣ３で行ったメモリ指定に応じ、読出メモリ番号１に対応する描画メモリ１０５ａからバンド４の描画データを読み出し、出力処理を行う（Ｃ４）。
そして、１バンド分の処理が終了するまで次の処理を待機させる（Ｃ１２）。
また、全バンドの処理が終了した場合を除き次のステップに進む（Ｃ１３）。
【００４８】
（リアルタイム描画処理：バンド７の描画・書込）
図４に戻り、ステップＣ３の処理によりメモリカウンタがフルではなくなったため（Ｂ１３：Ｎ）、書込メモリ番号を１インクリメントして書込メモリ番号「３」を指定するとともに、メモリカウンタを１インクリメントして「３」とする（Ｂ１４）。
次いで、ステップＢ１４で行ったメモリ指定に応じ、バンド７の描画データを、書込メモリ番号「３」に対応する描画メモリ１０５ｃに書き込む（Ｂ１５）。
ここで、フラグ判定を行い（Ｂ１６）、「flag＝０」なので、そのまま次のステップ（Ｂ３）にすすむ。
【００４９】
そして、バンド７の描画処理が終了すると（Ｂ３：ＹＥＳ）、全バンドの描画処理が終了した場合を除き次のステップに進む。
ここで、制御部１０３は、次の描画処理対象であるバンド１０の諸情報を取得し（Ｂ５）、その描画種類を判定する（Ｂ６）。
ステップＢ６の判定の結果、バンド１０は、「２番目以降のリアルタイム描画処理」と判定されるため（Ｂ６：ｃ）、次に、メモリカウンタがフル（３）か否かを判定する（Ｂ１３）。
また、ステップＢ１３の判定の結果、メモリカウンタはフルであるため図５に示す出力処理に移行する。
【００５０】
（バンド５の読出・出力）
図５に示すように、ここでは、まず、バンド５に関するバンド情報（描画種類等）を取得する（Ｃ１）。
ここで、バンド５の次のバンドであるバンド６が事前描画処理の対象か否かを判定する（Ｃ２）。
ステップＣ２の判定の結果、バンド６は事前描画処理に該当するので（Ｃ２：Ｙ）、バンド６の伸張先を指定するため、書込メモリ番号を１インクリメントして書込メモリ番号「１」を指定する（Ｃ５）。
また、バンド６について伸張処理を行い、その描画データを書込メモリ番号「１」に対応する描画メモリ１０５ａに書き込む（Ｃ６）。
【００５１】
ここで、フラグ判定を行い（Ｃ７）、「flag＝０」なので、読出メモリ番号を１インクリメントして読出メモリ番号「２」を指定するとともに、「flag＝１」とする（Ｃ９）。
次いで、読出メモリ番号「２」に相当する描画メモリ１０５ｂからバンド５の描画データを読み出し、出力処理を行う（Ｃ１０）。
また、読出順を反転して「−」とする。
次に、１バンド分の処理が終了するまで次の処理を待機させる（Ｃ１２）。
そして、全バンドの処理が終了した場合を除き次のステップに進む（Ｃ１３）。
【００５２】
（バンド６の読出・出力）
続いて、バンド６の出力処理を行うため、バンド６に関するバンド情報（描画種類等）を取得する（Ｃ１）。
ここで、バンド６の次のバンドであるバンド７が事前描画処理の対象か否かを判定する（Ｃ２）。
ステップＣ２の判定の結果、バンド７は事前描画処理ではないので（Ｃ２：Ｎ）、読出メモリ番号を１インクリメントするとともにメモリカウンタを１デクリメントする（Ｃ３）。
現在、読出メモリ番号は「２」であり、読出順が「−」であるため、読出メモリ番号は「１」に指定され、また、メモリカウンタは「３」から「２」になる。
次いで、ステップＣ３で行ったメモリ指定に応じ、読出メモリ番号１に対応する描画メモリ１０５ａからバンド６の描画データを読み出し、出力処理を行う（Ｃ４）。
そして、１バンド分の処理が終了するまで次の処理を待機させる（Ｃ１２）。
また、全バンドの処理が終了した場合を除き次のステップに進む（Ｃ１３）。
【００５３】
（リアルタイム描画処理：バンド１０の描画・書込）
図４に戻り、ステップＣ３の処理によりメモリカウンタがフルではなくなったため（Ｂ１３：Ｎ）、書込メモリ番号を１インクリメントして書込メモリ番号「２」を指定するとともに、メモリカウンタを１インクリメントして「３」とする（Ｂ１４）。
次いで、ステップＢ１４で行ったメモリ指定に応じ、バンド１０の描画データを、書込メモリ番号「２」に相当する描画メモリ１０５ｂに書き込む（Ｂ１５）。
ここで、フラグ判定を行い（Ｂ１６）、「flag＝１」なので、書込順を反転して「−」とするとともに、「flag＝０」にして次のステップ（Ｂ３）にすすむ（Ｂ１７）。
【００５４】
そして、バンド１０の描画処理が終了すると（Ｂ３：ＹＥＳ）、全バンドの描画処理が終了した場合を除き次のステップに移行する。
次に、制御部１０３は、次の描画処理対象であるバンド１１の諸情報を取得し（Ｂ５）、その描画種類を判定する（Ｂ６）。
ステップＢ６の判定の結果、バンド１１は、「２番目以降のリアルタイム描画処理」と判定されるため（Ｂ６：ｃ）、メモリカウンタがフル（３）か否かを判定する（Ｂ１３）。
また、ステップＢ１３の判定の結果、メモリカウンタはフルであるため図５に示す出力処理に移行する。
【００５５】
（バンド７の読出・出力）
続いて、バンド７の出力処理を行うため、バンド７に関するバンド情報（描画種類等）を取得する（Ｃ１）。
ここで、バンド７の次のバンドであるバンド８が事前描画処理の対象か否かを判定する（Ｃ２）。
ステップＣ２の判定の結果、バンド８は事前描画処理に該当するので（Ｃ２：Ｙ）、バンド８の伸張先を指定するため書込メモリ番号を１インクリメントする。
現在、書込メモリ番号は「２」であり、書込順は「−」であるため、書込メモリ番号「１」を指定する（Ｃ５）。
これに伴い、バンド８について伸張処理を行い、その描画データを書込メモリ番号「１」に対応する描画メモリ１０５ａに書き込む（Ｃ６）。
【００５６】
次に、フラグ判定を行い（Ｃ７）、「flag＝０」なので、読出メモリ番号を１インクリメントして読出メモリ番号「３」を指定するとともに、「flag＝１」とする。
そして、読出メモリ番号「３」に相当する描画メモリ１０５ｃからバンド７の描画データを読み出し、出力処理を行う（Ｃ１０）。
また、読出順を反転して「＋」とする。
次に、１バンド分の処理が終了するまで次の処理を待機させる（Ｃ１２）。
そして、全バンドの処理が終了した場合を除き次のステップに進む（Ｃ１３）。
【００５７】
（バンド８の読出・出力）
続いて、バンド８の出力処理を行うため、まず、バンド８に関するバンド情報（描画種類等）を取得する（Ｃ１）。
ここで、バンド８の次のバンドであるバンド９が事前描画処理の対象か否かを判定する（Ｃ２）。
ステップＣ２の判定の結果、バンド９は事前描画処理に該当するので（Ｃ２：Ｙ）、バンド９の伸張先を指定するため書込メモリ番号を１インクリメントする。
現在、書込メモリ番号は「１」であり、書込順は「−」であるため、書込メモリ番号「３」を指定する（Ｃ５）。
【００５８】
これに伴い、バンド９について伸張処理を行い、その描画データを書込メモリ番号「３」に対応する描画メモリ１０５ｃに書き込む（Ｃ６）。
次に、フラグ判定を行い（Ｃ７）、「flag＝１」なので、書込順を反転して「＋」とする（Ｃ８）。
また、読出メモリ番号を１インクリメントするとともに「flag＝１」とする（Ｃ９）。
現在、読出メモリ番号は「３」であり、読出順は「＋」であるため、読出メモリ番号「１」を指定する。
そして、読出メモリ番号「１」に相当する描画メモリ１０５ａからバンド８の描画データを読み出し、出力処理を行う（Ｃ１０）。
次いで、読出順を反転して「−」とする（Ｃ１１）。
そして、１バンド分の処理が終了するまで次の処理を待機させる（Ｃ１２）。
また、全バンドの処理が終了した場合を除き次のステップに進む（Ｃ１３）。
【００５９】
（バンド９の読出・出力）
続いて、バンド９の出力処理を行うため、バンド９に関するバンド情報（描画種類等）を取得する（Ｃ１）。
ここで、バンド９の次のバンドであるバンド１０が事前描画処理の対象か否かを判定する（Ｃ２）。
ステップＣ２の判定の結果、バンド１０は事前描画処理ではないので（Ｃ２：Ｎ）、読出メモリ番号を１インクリメントするとともにメモリカウンタを１デクリメントする（Ｃ３）。
現在、読出メモリ番号は「１」であり、読出順が「−」であるため、読出メモリ番号は「３」に指定され、また、メモリカウンタは「３」から「２」になる。
次いで、ステップＣ３で行ったメモリ指定に応じ、読出メモリ番号「３」に対応する描画メモリ１０５ｃからバンド９の描画データを読み出し、出力処理を行う（Ｃ４）。
そして、１バンド分の処理が終了するまで次の処理を待機させる（Ｃ１２）。
また、全バンドの処理が終了した場合を除き次のステップに進む（Ｃ１３）。
【００６０】
（リアルタイム描画処理：バンド１１の描画・書込）
図４に戻り、ステップＣ３の処理によりメモリカウンタがフルではなくなったため（Ｂ１３：Ｎ）、書込メモリ番号を１インクリメントするとともに、メモリカウンタを１インクリメントして「３」とする（Ｂ１４）。
現在、書込メモリ番号は「３」であり、書込順は「＋」であるため、書込メモリ番号「１」を指定する。
次いで、ステップＢ１４で行ったメモリ指定に応じ、バンド１１の描画データを、書込メモリ番号「１」に対応する描画メモリ１０５ａに書き込む（Ｂ１５）。
ここで、フラグ判定を行い（Ｂ１６）、「flag＝１」なので、書込順を反転して「−」とするとともに、「flag＝０」にして次のステップ（Ｂ３）に進む（Ｂ１７）。
【００６１】
そして、バンド１１の描画処理が終了すると（Ｂ３：ＹＥＳ）、全バンドの描画処理が終了した場合を除き次のステップに進む。
ここで、制御部１０３は、次の描画処理対象であるバンド１２の諸情報を取得し（Ｂ５）、その描画種類を判定する（Ｂ６）。
ステップＢ６の判定の結果、バンド１２は、「２番目以降のリアルタイム描画処理」と判定されるため（Ｂ６：ｃ）、メモリカウンタがフル（３）か否かを判定する（Ｂ１３）。
ステップＢ１３の判定の結果、メモリカウンタはフルであるため図５に示す出力処理に移行する。
【００６２】
（バンド１０の読出・出力）
続いて、バンド１０の出力処理を行うため、バンド１０に関するバンド情報（描画種類等）を取得する（Ｃ１）。
ここで、バンド１０の次のバンドであるバンド１１が事前描画処理の対象か否かを判定する（Ｃ２）。
ステップＣ２の判定の結果、バンド１１は事前描画処理ではないので（Ｃ２：Ｎ）、読出メモリ番号を１インクリメントするとともにメモリカウンタを１デクリメントする（Ｃ３）。
現在、読出メモリ番号は「３」であり、読出順が「−」であるため、読出メモリ番号は「２」に指定され、また、メモリカウンタは「３」から「２」になる。
次いで、ステップＣ３で行ったメモリ指定に応じ、読出メモリ番号「２」に対応する描画メモリ１０５ｂからバンド１０の描画データを読み出し、出力処理を行う（Ｃ４）。
そして、１バンド分の処理が終了するまで次の処理を待機させる（Ｃ１２）。
また、全バンドの処理が終了した場合を除き次のステップに進む（Ｃ１３）。
【００６３】
（リアルタイム描画処理：バンド１２の描画・書込）
図４に戻り、ステップＣ３の処理によりメモリカウンタがフルではなくなったため（Ｂ１３：Ｎ）、書込メモリ番号を１インクリメントするとともに、メモリカウンタを１インクリメントして「３」とする（Ｂ１４）。
現在、書込メモリ番号は「１」であり、書込順は「−」であるため、書込メモリ番号「３」を指定する。
次いで、ステップＢ１４で行ったメモリ指定に応じ、バンド１２の描画データを、書込メモリ番号「３」に対応する描画メモリ１０５ｃに書き込む（Ｂ１５）。
ここで、フラグ判定を行い（Ｂ１６）、「flag＝０」なので、そのまま次のステップ（Ｂ３）に進む（Ｂ１７）。
【００６４】
そして、バンド１２の描画処理が終了すると（Ｂ３：ＹＥＳ）、全バンドの描画処理が終了した場合を除き次のステップに進む。
ここで、制御部１０３は、次の描画処理対象であるバンド１３の諸情報を取得し（Ｂ５）、その描画種類を判定する（Ｂ６）。
ステップＢ６の判定の結果、バンド１３は、「２番目以降のリアルタイム描画処理」と判定されるため（Ｂ６：ｃ）、メモリカウンタがフル（３）か否かを判定する（Ｂ１３）。
また、ステップＢ１３の判定の結果、メモリカウンタはフルであるため図５に示す出力処理に移行する。
【００６５】
（バンド１１の読出・出力）
続いて、バンド１１の出力処理を行うため、バンド１１に関するバンド情報（描画種類等）を取得する（Ｃ１）。
ここで、バンド１１の次のバンドであるバンド１２が事前描画処理の対象か否かを判定する（Ｃ２）。
ステップＣ２の判定の結果、バンド１２は事前描画処理ではないので（Ｃ２：Ｎ）、読出メモリ番号を１インクリメントするとともにメモリカウンタを１デクリメントする（Ｃ３）。
現在、読出メモリ番号は「２」であり、読出順が「−」であるため、読出メモリ番号は「１」に指定され、また、メモリカウンタは「３」から「２」になる。
次いで、ステップＣ３で行ったメモリ指定に応じ、読出メモリ番号「１」に対応する描画メモリ１０５ａからバンド１１の描画データを読み出し、出力処理を行う（Ｃ４）。
そして、１バンド分の処理が終了するまで次の処理を待機させる（Ｃ１２）。
また、全バンドの処理が終了した場合を除き次のステップに進む（Ｃ１３）。
【００６６】
（リアルタイム描画処理：バンド１３の描画・書込）
図４に戻り、ステップＣ３の処理によりメモリカウンタがフルではなくなったため（Ｂ１３：Ｎ）、書込メモリ番号を１インクリメントするとともに、メモリカウンタを１インクリメントして「３」とする（Ｂ１４）。
現在、書込メモリ番号は「３」であり、書込順は「−」であるため、書込メモリ番号「２」を指定する。
次いで、ステップＢ１４で行ったメモリ指定に応じ、バンド１３の描画データを、書込メモリ番号「２」に対応する描画メモリ１０５ｂに書き込む（Ｂ１５）。
ここで、フラグ判定を行い（Ｂ１６）、「flag＝０」なので、そのまま次のステップ（Ｂ３）に進む（Ｂ１７）。
【００６７】
そして、バンド１３の描画処理が終了すると（Ｂ３：ＹＥＳ）、全バンドの描画処理が終了した場合を除き次のステップに進む。
ここで、制御部１０３は、次の描画処理対象であるバンド１４の諸情報を取得し（Ｂ５）、その描画種類を判定する（Ｂ６）。
ステップＢ６の判定の結果、バンド１４は、「２番目以降のリアルタイム描画処理」と判定されるため（Ｂ６：ｃ）、メモリカウンタがフル（３）か否かを判定する（Ｂ１３）。
ステップＢ１３の判定の結果、メモリカウンタはフルであるため図５に示す出力処理に移行する。
【００６８】
（バンド１２の読出・出力）
続いて、バンド１２の出力処理を行うため、バンド１２に関するバンド情報（描画種類等）を取得する（Ｃ１）。
ここで、バンド１２の次のバンドであるバンド１３が事前描画処理の対象か否かを判定する（Ｃ２）。
ステップＣ２の判定の結果、バンド１３は事前描画処理ではないので（Ｃ２：Ｎ）、読出メモリ番号を１インクリメントするとともにメモリカウンタを１デクリメントする（Ｃ３）。
現在、読出メモリ番号は「１」であり、読出順が「−」であるため、読出メモリ番号は「３」に指定され、また、メモリカウンタは「３」から「２」になる。
次いで、ステップＣ３で行ったメモリ指定に応じ、読出メモリ番号「３」に対応する描画メモリ１０５ｃからバンド１２の描画データを読み出し、出力処理を行う（Ｃ４）。
そして、１バンド分の処理が終了するまで次の処理を待機させる（Ｃ１２）。
また、全バンドの処理が終了した場合を除き次のステップに進む（Ｃ１３）。
【００６９】
（リアルタイム描画処理：バンド１４の描画・書込）
図４に戻り、ステップＣ３の処理によりメモリカウンタがフルではなくなったため（Ｂ１３：Ｎ）、書込メモリ番号を１インクリメントするとともに、メモリカウンタを１インクリメントして「３」とする（Ｂ１４）。
現在、書込メモリ番号は「２」であり、書込順は「−」であるため、書込メモリ番号「１」を指定する。
次いで、ステップＢ１４で行ったメモリ指定に応じ、バンド１４の描画データを、書込メモリ番号「１」に対応する描画メモリ１０５ａに書き込む（Ｂ１５）。
ここで、フラグ判定を行い（Ｂ１６）、「flag＝０」なので、そのまま次のステップ（Ｂ３）に進む（Ｂ１７）。
【００７０】
そして、描画部１０４は、バンド１４の描画処理が終了すると（Ｂ３：ＹＥＳ）、全バンドの描画処理が終了するため（Ｂ４：ＹＥＳ）、描画処理に係る書き込みメモリの設定プロセスは終了する。
【００７１】
（バンド１３の読出・出力）
続いて、バンド１３の出力処理を行うため、バンド１３に関するバンド情報（描画種類等）を取得する（Ｃ１）。
ここで、バンド１３の次のバンドであるバンド１４が事前描画処理の対象か否かを判定する（Ｃ２）。
ステップＣ２の判定の結果、バンド１４は事前描画処理ではないので（Ｃ２：Ｎ）、読出メモリ番号を１インクリメントするとともにメモリカウンタを１デクリメントする（Ｃ３）。
現在、読出メモリ番号は「３」であり、読出順が「−」であるため、読出メモリ番号は「２」に指定され、また、メモリカウンタは「３」から「２」になる。
次いで、ステップＣ３で行ったメモリ指定に応じ、読出メモリ番号「２」に対応する描画メモリ１０５ｂからバンド１３の描画データを読み出し、出力処理を行う（Ｃ４）。
そして、１バンド分の処理が終了するまで次の処理を待機させる（Ｃ１２）。
また、全バンドの処理が終了した場合を除き次のステップに進む（Ｃ１３）。
【００７２】
（バンド１４の読出・出力）
続いて、バンド１４の出力処理を行うため、バンド１４に関するバンド情報（描画種類等）を取得する（Ｃ１）。
ここで、バンド１４の次のバンドが事前描画処理の対象か否かを判定する（Ｃ２）。
なお、バンド１４の次のバンドは存在しないが、理論上、事前描画処理には該当しないので（Ｃ２：Ｎ）、読出メモリ番号を１インクリメントするとともにメモリカウンタを１デクリメントする（Ｃ３）。
現在、読出メモリ番号は「２」であり、読出順が「−」であるため、読出メモリ番号は「１」に指定され、また、メモリカウンタは「３」から「２」になる。
次いで、ステップＣ３で行ったメモリ指定に応じ、読出メモリ番号「１」に対応する描画メモリ１０５ａからバンド１４の描画データを読み出し、出力処理を行う（Ｃ４）。
そして、１バンド分の処理が終了するまで次の処理を待機させる（Ｃ１２）。
また、全バンドの処理が終了するため（Ｃ１３：ＹＥＳ）、出力処理に係る読み出しメモリのプロセスは終了する。
【００７３】
図６は、本実施形態の画像形成装置が図３に示すサンプル印刷データを描画・出力する場合のメモリ番号の推移とバンド番号の対応を示した表図である。
すなわち、図３に示すサンプル印刷データについて図４及び図５に示すフローにもとづく上述の各処理を行うことにより、書込メモリ番号の推移とバンド番号の対応は図６（ａ）に示すようになり、また、読出メモリ番号の推移とバンド番号の対応は図６（ｂ）に示すようになる。
同図に示すように、書き込み及び読み出しのサイクルを反転させたり、また、正転に戻すことによって、描画メモリの割当を工夫し、メモリが使用になり次第描画処理が行えるようにしている。
【００７４】
そして、これを、時系列に表すと、図７のタイムチャートとして表すことができる。
図７は、本実施形態の画像形成装置が、図３に示すサンプル印刷データを描画・出力した結果を時系列に示したタイムチャートである。
同図を参照すると、従来に比べ、ファーストプリントまでの時間が短縮されるとともに、リアルタイム描画処理時におけるレンダリング待ち時間の縮小化が図られ、全体として出力のスループットが向上したことを理解することができる。
【００７５】
なお、図８は、メモリを３つ搭載したとする従来の画像形成装置が、図３に示すサンプル印刷データを描画・出力した結果を時系列に示したタイムチャートである。
つまり、図８に係る画像形成装置では、特段のメモリ制御は行わず、バンド順にメモリへの書き込み及び読み出しを通常のバンディング処理の手順にもとづいて行った例である。
同図と図７を比較するとわかるように、本実施形態に係る画像形成装置は、（１）事前描画処理の対象バンド数が少なくその分ファーストプリントまでの時間を短縮できている。（２）リアルタイム描画処理におけるレンダリング待ち時間が少なく効率よく描画処理及び出力処理が行われている。（３）出力開始から出力終了までのページ出力時間を短縮できる。（４）事前処理開始から出力終了までの総合処理時間を短縮できる。
【００７６】
以上説明したように、本実施形態の画像形成装置１０によれば、オーバーランを回避できることは勿論のこと、３つの描画メモリ１０５ａ〜１０５ｃを搭載し、所定のサイクルで交互に描画データの書込・読み出しを行うことによって出力スループットを飛躍的に向上させている。
特に、すべてのバンドの描画処理をバンド順に行うのではなく、本発明に特有の演算式を用いて３つ以上のメモリを効果的に利用することで、空き時間を有効に利用でき、また、事前描画処理の対象を効果的に減らすようにしている。
つまり、従来のように２つのメモリを使用する方法では、描画時間が出力時間を超過したものはすべて事前描画処理の対象となり、印刷開始までの時間を無用に長くしていたが、本実施形態の画像形成装置によれば、そのような無駄を排除することができる。
そして、圧縮処理時間や伸張処理時間が出力時間よりも短い特性を利用し、伸張処理をそのバンドの前のバンドの出力開始と同時（つまり、そのバンドの２つ前のバンドの描画処理の終了と同時）に行うようにしており、さらに、伸張データを３つの描画メモリ１０５ａ〜１０５ｃに他の描画データとともに共有して保持させるようにしている。
【００７７】
このため、伸張データが出力されるまでのメモリ保持時間を縮小することができ、全体として無駄が少なく効率よいメモリの使用が可能となる。
また、前述したように、事前描画処理の対象を減らすことができるので、ファーストプリントまでの時間を短縮化するとともに、事前描画に係るメモリ（圧縮メモリ）の縮小を図ることができる。
そして、レンダリング待ち時間を削減し、結果、総合的な処理時間を短縮し、高速出力を可能としている。
さらに、描画メモリの有効利用を実現しているため、例え、メモリの個数が複数となっても個々の記憶領域を抑えることができるため、メモリに係るトータルコストを抑えることができる。
【００７８】
ここで、上述した本実施形態の画像形成装置１０は、プログラム（ソフトウェア）の命令によりコンピュータで実行される処理，手段，機能によって実現される。プログラムは、コンピュータの各構成要素に指令を送り、以下に示すような所定の処理・機能を行わせる。すなわち、本実施形態の画像形成装置１０における各処理・手段は、プログラムとコンピュータとが協働した具体的手段によって実現される。
なお、プログラムの全部又は一部は、例えば、磁気ディスク，光ディスク，半導体メモリ，その他任意のコンピュータで読取り可能な記録媒体により提供され、記録媒体から読み出されたプログラムがコンピュータにインストールされて実行される。また、プログラムは、記録媒体を介さず、通信回線を通じて直接にコンピュータにロードし実行することもできる。
【００７９】
以上、本発明の画像形成装置について、好ましい実施形態を示して説明したが、本発明にかかる画像形成装置は、上述した実施形態に限定されるものではなく、本発明の範囲で種々の変更実施が可能であることは言うまでもない。
例えば、本発明の画像形成装置１０は、３つの物理的な描画メモリを搭載しているが、このような形態に限らず、３つの記憶領域を有する記憶媒体が少なくとも１つ搭載されていれば良い。
【産業上の利用可能性】
【００８０】
本発明は、ページプリンタ装置などの画像形成装置に好適に利用することができる。
【符号の説明】
【００８１】
１０  画像形成装置
１０１  中間データ生成部
１０２  描画時間計測部
１０３  制御部
１０４  描画部
１０５  記憶部
１０５ａ〜１０５ｃ  描画メモリ
１０６  圧縮部
１０７  圧縮メモリ
１０８  伸張部
１０９  出力部
【図１】
2010179546.tif 000003
【図２】
2010179546.tif 000004
【図３】
2010179546.tif 000005
【図４】
2010179546.tif 000006
【図５】
2010179546.tif 000007
【図６】
2010179546.tif 000008
【図７】
2010179546.tif 000009
【図８】
2010179546.tif 000010