(57)【要約】【課題】ハードリソースの増加によるコストアップを抑えながら、並列描画処理を効率的に行い、描画処理を高速化する。【解決手段】複数のバンド領域のそれぞれに対応する、バンド単位の複数の中間データそれぞれに対して描画処理を並列に行う複数の描画手段であって、バンド領域は、所定のブロック領域に対して主走査方向の画素数が大きく、かつ、副走査方向の画素数が小さい、複数の描画手段と、描画処理において記憶容量が不足した場合に、中間データから生成されたバンド単位の画像データを退避させて記憶する記憶手段とを備え、複数の描画手段はそれぞれ、記憶手段から読み出した当該退避させた画像データを、中間データに対して新たに描画処理を行って生成した画像データと合成して、ラスタ形式の画像データを生成する。【選択図】図４
2018058295.tif 000002
【特許請求の範囲】
【請求項１】
描画データから生成された中間データを複数のバンド領域に分割して描画処理を行い、ラスタ形式の画像データを生成する画像処理装置であって、
前記複数のバンド領域のそれぞれに対応する、バンド単位の複数の中間データそれぞれに対して描画処理を並列に行う複数の描画手段であって、前記バンド領域は、所定のブロック領域に対して主走査方向の画素数が大きく、かつ、副走査方向の画素数が小さい、複数の描画手段と、
前記描画処理において記憶容量が不足した場合に、前記中間データから生成されたバンド単位の画像データを退避させて記憶する記憶手段と
を備え、
前記複数の描画手段はそれぞれ、前記記憶手段から読み出した前記退避させた画像データを、前記中間データに対して新たに前記描画処理を行って生成した画像データと合成して、前記ラスタ形式の画像データを生成することを特徴とする画像処理装置。
【請求項２】
前記バンド領域の高さは、前記所定のブロック領域の副走査方向の画素数を、前記複数の描画手段の並列動作数で均等分割した値であることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記バンド領域の高さは、前記所定のブロック領域の副走査方向の画素数を、前記複数の描画手段の仕様差に基づいて重み付けし、加重分割した値であることを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記記憶手段は、前記複数の描画手段による前記バンド単位の画像データの読み出しが完了したことを検知すると、前記中間データから生成された新たなバンド単位の画像データに対応するブロック単位の画像データの書き出し開始を制御することを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記記憶手段は、前記バンド単位の画像データに対応するブロック単位の画像データの書き出しが完了したことを検知すると、前記複数の描画手段による前記バンド単位の画像データの読み出し開始を制御することを特徴とする請求項１に記載の画像処理装置。
【請求項６】
コンピュータを、請求項１乃至５のいずれか１項に記載の画像処理装置として機能させるためのプログラム。
【請求項７】
描画データから生成された中間データを複数のバンド領域に分割して描画処理を行い、ラスタ形式の画像データを生成する画像処理方法であって、
複数の描画手段によって、前記複数のバンド領域のそれぞれに対応する、バンド単位の複数の中間データそれぞれに対して描画処理を並列に行う描画工程であって、前記バンド領域は、所定のブロック領域に対して主走査方向の画素数が大きく、かつ、副走査方向の画素数が小さい、描画工程と、
前記描画処理において記憶容量が不足した場合に、前記中間データから生成されたバンド単位の画像データを退避させて記憶手段に記憶する記憶工程と
を含み、
前記描画工程は、前記記憶手段から読み出した前記退避させた画像データを、前記中間データに対して新たに前記描画処理を行って生成した画像データと合成して、前記ラスタ形式の画像データを生成する工程を含むことを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の描画処理部で並列に描画処理を実行する画像処理装置、画像処理方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、ページ単位の描画データを解釈してディスプレイリスト（ＤＬ）と呼ばれる中間データを生成し、ブロック単位の矩形領域に分割して並列処理することで、画像処理の処理効率を向上できることが広く知られている。特に、正方形タイル形状（例えば、３２画素×３２画素）のブロック単位は、一次記憶するメモリ容量が比較的小さくて済む点、画像サイズや解像度に依存しない点、回転処理の前後で画像形状が変化しない点などで優れている。
【０００３】
さらに、特許文献１では、処理の負荷を分散するために、中間データ（ＤＬ）をブロック単位の矩形領域を包含するバンド単位に分割して並列処理した後、ブロック単位に分割する技術が開示されている。
【０００４】
また、中間データ（ＤＬ）を描画処理する際にメモリ容量が不足した場合には、縮退動作（フォールバック）が行われている。縮退動作では、一時的に生成される画像データをメモリに退避させながら、中間データ（ＤＬ）の描画処理をメモリ容量内で複数回に分けて実施する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２−２５４５８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１の技術では、バンド単位の描画処理を並列に行うと、縮退動作時に退避させる画像データを保存するためのメモリが、描画処理の並列動作数分必要となってしまう。また、特許文献１の技術では、退避させた画像データを伸張する伸張処理部も、描画処理の並列動作数分だけ必要となってしまう。このように、従来のバンド単位の並列描画処理では、ハードリソース（回路規模）を増加させ、コストアップにつながってしまう。
【０００７】
そこで、バンド単位の描画処理を並列に行う場合でも、ハードリソースの増加によるコストアップを抑えながら、描画処理を効率的に行い、描画処理を高速化することが望まれている。
【課題を解決するための手段】
【０００８】
本発明に係る画像処理装置は、複数のバンド領域のそれぞれに対応する、バンド単位の複数の中間データそれぞれに対して描画処理を並列に行う複数の描画手段であって、前記バンド領域は、所定のブロック領域に対して主走査方向の画素数が大きく、かつ、副走査方向の画素数が小さい、複数の描画手段と、前記描画処理において記憶容量が不足した場合に、前記中間データから生成されたバンド単位の画像データを退避させて記憶する記憶手段とを備え、前記複数の描画手段はそれぞれ、前記記憶手段から読み出した前記退避させた画像データを、前記中間データに対して新たに前記描画処理を行って生成した画像データと合成して、前記ラスタ形式の画像データを生成することを特徴とする。
【発明の効果】
【０００９】
本発明によると、ハードリソースの増加によるコストアップを抑えながら、並列描画処理を効率的に行い、描画処理を高速化することができる。
【図面の簡単な説明】
【００１０】
【図１】画像形成装置の構成を示すブロック図である。
【図２】画像形成装置におけるＰＤＬ印刷処理のデータフローを示す図である。
【図３】画像形成装置で扱うページ内での矩形領域の座標系の一例を示す図である。
【図４】描画処理に関わるブロック構成を示す図である。
【図５】描画処理に関わるブロック構成の一部が停止した状態を示す図である。
【図６】ＰＤＬ印刷処理のフローチャートである。
【図７】バンド高さの設定処理のフローチャートである。
【図８】並列描画処理のフローチャートである。
【図９】ブロック単位のライトとバンド単位のリードのアクセス制御を説明する図である。
【図１０】バンド高さの設定処理のフローチャートである。
【図１１】ブロック単位とバンド単位の矩形領域の位置関係を示す図である。
【発明を実施するための形態】
【００１１】
以下に、本発明の実施形態について図面を参照して詳細に説明する。なお、以下に説明する実施形態は一例に過ぎず、本発明を限定するものではない。また、図面全体を通して、同一の符号は、同一物を示す。
【００１２】
図１は、本発明の一実施形態における画像形成装置の構成例を示すブロック図である。図１に示すように、画像形成装置１００は、コントローラ１０１、ネットワーク１０２、操作部１０３、読取部１０４、及び印刷部１０５で構成される。
【００１３】
ネットワーク１０２は、ＬＡＮやＷＡＮ（公衆回線）等で実現され、ホストコンピュータやサーバ等の外部装置と画像形成装置１００との間で画像データやデバイス情報を送受信する通信部である。操作部１０３は、ユーザによる操作を画像処理の制御情報として取得したり、ユーザに対して画像処理の制御情報を表示したりする処理部である。読取部（スキャナエンジン）１０４は、画像入力デバイスであって、光学センサ等を用いて画像形成装置１００の内部に画像データを取り込む処理部である。印刷部（プリンタエンジン）１０５は、画像出力デバイスであって、画像形成装置１００の内部の画像データを記録媒体に印刷する処理部である。
【００１４】
コントローラ１０１は、ネットワーク１０２、操作部１０３、読取部１０４、印刷部１０５と接続され、画像形成装置１００全体の制御を行う制御部である。コントローラ１０１は、システムバス１０６、通信部Ｉ／Ｆ１０７、ＣＰＵ１０８、ＲＡＭ１０９、ＲＯＭ１１０、ＨＤＤ１１１、操作部Ｉ／Ｆ１１２、及び読取部Ｉ／Ｆ１１３を備える。また、コントローラ１０１は、描画処理部１１４、圧縮処理部１１５、伸張処理部１１６、バンドＲＡＭ１１７、及び印刷部Ｉ／Ｆ１１８を備える。また、コントローラ１０１は、画像処理装置として実装することができ、例えば、読取部１０４や印刷部１０５を含めないで構成してもよい。
【００１５】
システムバス１０６は、コントローラ１０１を構成する各処理部を接続し、各処理部の間で画像データや制御情報の送受信を行うための処理部である。通信部Ｉ／Ｆ１０７は、例えばＬＡＮカード等で実現され、ネットワーク１０２を介してホストコンピュータやサーバ等の外部装置と画像形成装置１００との間で画像データやデバイス情報を送受信するためのインタフェース部である。
【００１６】
ＣＰＵ１０８は、画像形成装置１００全体を制御する処理部である。特に、ＰＤＬ（ページ記述言語）印刷処理では、ネットワーク１０２を介して外部装置から受信したＰＤＬデータなどの描画データを解釈して、ＤＬ（ディスプレイリスト）と呼ばれる中間データに変換する処理を行う。ここでは、描画データの例として、ＰＤＬデータを処理するものとして説明する。
【００１７】
ＲＡＭ（揮発性メモリ）１０９は、ＣＰＵ１０８がシステム上で動作するためのワーク領域として使用されたり、画像データを一次記憶するためのバッファ領域として使用されたりする記憶部である。ＲＯＭ（不揮発性メモリ）１１０は、ＣＰＵ１０８がシステムを起動するためのプログラムが格納されている一次記憶部である。このプログラムは、画像形成装置１００の起動時にＲＡＭ１０９に展開され、ＣＰＵ１０８により実行される。
【００１８】
ＨＤＤ（ハードディスクドライブ）１１１は、画像形成装置１００の内部で画像データを格納しておくための大容量記憶部である。
【００１９】
操作部Ｉ／Ｆ１１２は、操作部１０３と接続され、ユーザによる操作を画像処理の制御情報として取得したり、ユーザに対して画像処理の制御情報を表示したりするためのインタフェース部である。読取部Ｉ／Ｆ（スキャン画像処理部）１１３は、読取部（スキャナエンジン）１０４と接続され、読取部１０４から入力された画像データに対して、読取部１０４のデバイス特性に合わせた補正のための画像処理を行う画像処理部である。
【００２０】
描画処理部（ＲＩＰ）１１４は、ＣＰＵ１０８が生成したベクタ形式の中間データ（ＤＬ）を参照し、ラスタ形式の画像データを生成し、ＲＡＭ１０９に記憶する。また、描画処理部１１４は、縮退処理に続いて残りの中間データ（ＤＬ）を処理する場合、バンドＲＡＭ１１７に退避させた画像データと画像合成して、ラスタ形式の画像データを生成する。
【００２１】
圧縮処理部１１５は、描画処理部１１４が生成したラスタ形式の画像データに対して圧縮処理を行い、圧縮画像データを生成し、ＲＡＭ１０９に記憶する。
【００２２】
伸張処理部１１６は、圧縮処理部１１５が圧縮処理を行なった圧縮画像データの伸張処理を行う。特に、縮退処理に続く中間データ（ＤＬ）の描画処理では、退避させた画像データに対して伸張処理を行い、バンドＲＡＭ１１７を介して描画処理部１１４に提供する。
【００２３】
バンドＲＡＭ１１７は、伸張処理部１１６から描画処理部１１４に対して出力されるラスタ形式の画像データを一次保持するローカルメモリであり、縮退処理に続く描画処理に用いられるフォールバックメモリである。また、バンドＲＡＭ１１７は、不図示のアクセス検知装置を備え、自身の特定のアドレスへの画像データの書き出し、及び、特定のアドレスからの画像データの読み出しを検知する。
【００２４】
なお、ＰＤＬ印刷時の描画処理に関わる描画処理部１１４、圧縮処理部１１５、伸張処理部１１６、及びバンドＲＡＭ１１７の動作については、図４を用いてさらに詳細に説明する。
【００２５】
印刷部Ｉ／Ｆ（プリント画像処理部）１１８は、印刷部（プリンタエンジン）１０５と接続され、印刷部１０５のデバイス特性に合わせた補正のための画像処理を行った後に、印刷部１０５に対して画像データを出力する画像処理部である。
【００２６】
なお、図１では、描画処理部１１４と伸張処理部１１６がローカルメモリとしてのバンドＲＡＭ１１７を介して直接接続された構成例を示したが、画像形成装置１００の構成はこれに限定されるものではない。また、例えば、圧縮処理部１１５は、システムバス１０６上に汎用で接続して構成されても良いし、読取部Ｉ／Ｆ１１３や描画処理部１１４等の圧縮処理が必要な処理部に専用で接続して構成されても良い。同様に、例えば、伸張処理部１１６は、システムバス１０６上に汎用で接続して構成されても良いし、印刷部Ｉ／Ｆ１１８等の伸張処理が必要な処理部に専用で接続して構成されても良い。
【００２７】
次に、図２及び図３を用いて、画像形成装置１００におけるＰＤＬ印刷処理のデータフロー及び画像データ単位の関係を説明する。図２は、画像形成装置１００におけるＰＤＬ印刷処理のデータフローを示す。図２において、特に、破線部分は、中間データ（ＤＬ）が、ＲＡＭ１０９上に確保された所定の記憶容量よりも大きい場合に実施される縮退動作（フォールバック）に関する。図３は、画像形成装置１００で扱うページ内での矩形領域の座標系の例を示す。なお、図２に示したデータフローは、画像形成装置１００のＲＡＭ１０９に展開されたプログラムをＣＰＵ１０８が実行することにより実施される。
【００２８】
まず、ＰＤＬ印刷処理における通常時のデータフローについて、図２を用いて説明する。「通常時」のデータフローとは、縮退動作（フォールバック）を行わない場合のデータフローを意味する。
【００２９】
図２に示すように、画像形成装置１００は、まず、ホストコンピュータから送信されたＰＤＬデータを通信部Ｉ／Ｆ１０７で受信し、ページ単位のＰＤＬデータ２０１としてＲＡＭ１０９あるいはＨＤＤ１１１に記憶する。
【００３０】
次に、ＣＰＵ１０８は、ページ単位のＰＤＬデータ２０１を解釈し、ページ単位あるいはバンド単位の中間データ（ＤＬ）２０２を生成し、再びＲＡＭ１０９に記憶する。バンド単位とは、図３（ａ）〜（ｃ）に示すように、単一ページ内を副走査方向（Ｙ方向）で分割することで主走査方向（Ｘ方向）の画素数よりも副走査方向の画素数の方が小さい短冊状の矩形領域（バンド領域）を意味する。また、ブロック単位とは、図３（ａ）〜（ｃ）に示すように、画像形成装置１００において予め定めた主走査方向の画素数と副走査方向の画素数が等しい正方形タイル形状の矩形領域（ブロック領域）を意味する。図３（ａ）、図３（ｂ）、及び図３（ｃ）の違いは、ブロック単位の矩形領域がバンド単位の矩形領域に包含される位置関係にあるか否かである。図３（ａ）及び図３（ｂ）は、ブロックが単一のバンドに包含され、単一のバンドが複数のブロックの集合で構成される従来の関係を示す。特に、図３（ｂ）は、ブロックとバンドの副走査方向の高さ（副走査方向の画素数）が等しい例を示す。一方、図３（ｃ）は、本発明の一実施形態において、描画処理を並列に実行する上で好適な画像データ単位を示す。図３（ｃ）では、ブロックとバンドが互いに包含されずに、かつ、ブロックの副走査方向の画素数（ブロックの高さ）を複数のバンドの高さで分割した関係を満たす。具体的には、図３（ｃ）に示すように、単一ページ１において、単一のブロック１１の副走査方向の画素数を、バンド１１及びバンド１２のそれぞれのバンドの高さで分割した関係を満たす。以下の説明では、図３（ａ）〜（ｃ）で示したページ内でのバンド単位、及び、ブロック単位の座標系の例を必要に応じて使い分けながら用いる。
【００３１】
また、ＣＰＵ１０８は、中間データ（ＤＬ）を生成し、ＲＡＭ１０９に記憶すると共に、描画処理部１１４の並列動作に関わる並列描画処理設定情報２０３を、描画処理部１１４の内部レジスタに設定する。並列描画処理設定情報２０３には、中間データ（ＤＬ）が記憶されるＲＡＭ１０９のアドレスの先頭アドレス、描画処理部１１４の並列動作数、描画されるバンドの副走査方向の画素数（バンドの高さ）などが含まれる。
【００３２】
次に、描画処理部１１４は、ＲＡＭ１０９に記憶された中間データ（ＤＬ）２０２を参照し、単一ページ内の複数のバンド単位の矩形領域に対する描画処理を並列に実行する。描画処理部１１４は、バンド単位で並列して描画処理を行うことによって、複数のバンドのラスタ形式の画像データ２０４を生成し、ＲＡＭ１０９に一次記憶する。
【００３３】
次に、圧縮処理部１１５は、ＲＡＭ１０９に一次記憶されたバンド単位の画像データ２０４からブロック単位の画像データを読み出す。単一ブロックが複数のバンドで構成されている場合は、単一ブロックを構成する複数のバンド単位の画像データ２０４を結合し、結合された複数のバンド単位の画像データ２０４からブロック単位の画像データを読み出す。そして、圧縮処理部１１５は、読み出したブロック単位の画像データにＪＰＥＧ等の圧縮処理を行って圧縮画像データ２０５を生成し、再びＲＡＭ１０９あるいはＨＤＤ１１１に記憶する。
【００３４】
次に、伸張処理部１１６は、ブロック単位で圧縮された圧縮画像データ２０５に対してＪＰＥＧ等の伸張処理を行い、ラスタ形式の画像データを生成する。そして、伸張処理部１１６は、単一ページを構成する全てのブロック単位のラスタ形式の画像データを結合して、ページ単位のラスタ形式の画像データ２０６を生成し、再びＲＡＭ１０９に一次記憶する。
【００３５】
次に、印刷部Ｉ／Ｆ１１８は、ＲＡＭ１０９に一次記憶されたページ単位の画像データ２０６を読み出し、印刷部１０５のデバイス特性に合わせた補正のための画像処理を行った後に、印刷部１０５に対して補正後の画像データを出力する。
【００３６】
次に、印刷部（プリンタエンジン）１０５は、印刷部Ｉ／Ｆ１１８から出力された画像データを記録媒体に印刷する。
【００３７】
以上、ＰＤＬ印刷処理における通常時のデータフローを説明した。次に、ＰＤＬ印刷処理における縮退動作（フォールバック）時のデータフローについて、特に、図２の破線部分に注目して説明を加える。
【００３８】
ＣＰＵ１０８は、ＰＤＬデータ２０１を解釈して中間データ（ＤＬ）２０２を生成する際に、単一ページを構成する中間データ（ＤＬ）２０２が、ＲＡＭ１０９上に確保された所定の記憶容量よりも大きいかどうか判定する。所定の記憶容量よりも大きい場合（すなわち、記憶容量が不足する場合）、ＣＰＵ１０８は、所定の記憶容量を超えない範囲で、背面に描画される描画オブジェクトから順に、中間データ（ＤＬ）２０２としてＲＡＭ１０９に記憶する。この中間データ（ＤＬ）２０２に対して描画処理部１１４によって描画処理を行ない、圧縮処理部１１５及び伸張処理部１１６を介して得られたラスタ形式の画像データ２０７は、バンドＲＡＭ１１７に一次記憶される。この画像データ２０７を、縮退動作（フォールバック）における背面画像データと呼ぶ。この背面画像データは、画像合成用の画像データとしてバンドＲＡＭ１１７に一次保持して、描画処理部１１４がこれを参照して描画処理に用いる。すなわち、描画処理部１１４が、上記でＲＡＭ１０９に収まらなかった残りの中間データ（ＤＬ）による描画結果と、バンドＲＡＭ１１７から取得する背面画像とを画像合成することで、最終的な描画結果を得ることができる。このように、前述した縮退動作（フォールバック）に従って中間データ（ＤＬ）２０２がＲＡＭ１０９上の所定の記憶容量に収まるまで繰り返すことで、画像形成装置１００を構成する限られたハードリソースによって制限されることなく、描画処理を実現できる。
【００３９】
次に、図４を用いて、本発明の一実施形態におけるＰＤＬ印刷時の描画処理の動作を説明する。図４は、縮退動作（フォールバック）時に、ＲＡＭ１０９に一次保持した中間データ（ＤＬ）２０２と圧縮画像データ２０５を用いてバンド単位で並列に描画処理を行い、得られた画像データ２０４をＲＡＭ１０９に記憶する動作を示す。
【００４０】
図４（ａ）は、図３（ｂ）のように、ブロック単位の矩形領域がバンド単位の矩形領域に包含される場合の描画処理の動作を示す。図４（ａ）において、画像形成装置１００は、描画処理部１１４を構成する第１描画処理部４０１及び第２描画処理部４０２を用いて、中間データ（ＤＬ）２０２の単一ページ内の複数のバンドをそれぞれ並列に描画処理する。第１描画処理部４０１は、単一ページ内の奇数番目のバンドを描画処理し、偶数番目のバンドを読み飛ばして描画オブジェクトのスキャンライン毎の位置座標を更新する。第２描画処理部４０２は、単一ページ内の偶数番目のバンドを描画処理し、奇数番目のバンドを読み飛ばして描画オブジェクトのスキャンライン毎の位置座標を更新する。このように、第１描画処理部４０１及び第２描画処理部４０２は、それぞれバンド単位で描画処理対象とする描画オブジェクトを取得するため、ＲＡＭ１０９に一次記憶された中間データ（ＤＬ）２０２は、ページ単位でもバンド単位でも良い。
【００４１】
また、伸張処理部１１６を構成する第１伸張処理部４２１及び第２伸張処理部４２２はそれぞれ、描画処理部１１４を構成する第１描画処理部４０１及び第２描画処理部４０２と連携して動作する。第１伸張処理部４２１は、圧縮画像データ２０５から取得した、図３（ｂ）で示したバンド１及びバンド３に対応するブロック単位の画像データに対して順に伸張処理を行い、バンドＲＡＭ１１７を構成する第１バンドＲＡＭ４１１に出力する。また、第２伸張処理部４２２は、圧縮画像データ２０５から取得した、図３（ｂ）で示したバンド２及びバンド４に対応するブロック単位の画像データに対して順に伸張処理を行い、バンドＲＡＭ１１７を構成する第２バンドＲＡＭ４１２に出力する。
【００４２】
これを受けて、第１描画処理部４０１は、第１バンドＲＡＭ４１１に一次記憶され、図３（ｂ）で示したバンド１及びバンド３に対応する複数ブロックで構成されたバンド単位の画像データを順に読み出し、描画処理時に画像合成してＲＡＭ１０９に転送する。同様に、第２描画処理部４０２は、第２バンドＲＡＭ４１２に一次記憶され、図３（ｂ）で示したバンド２及びバンド４に対応する複数ブロックで構成されたバンド単位の画像データを順に読み出し、描画処理時に画像合成してＲＡＭ１０９に転送する。
【００４３】
第１バンドＲＡＭ４１１は、第１伸張処理部４２１による書き出しと、第１描画処理部４０１による読み出しを同時に実行可能なダブルバッファで構成されている。従って、例えば、第１伸張処理部４２１によるバンド３に対応したブロック３１〜３４の書き出し処理と、第１描画処理部４０１によるバンド１の読み出し処理を同時に実行できる。同様に、第２バンドＲＡＭ４１２は、第２伸張処理部４２２による書き出しと、第２描画処理部４０２による読み出しを同時に実行可能なダブルバッファで構成されている。従って、例えば、第２伸張処理部４２２によるバンド４に対応したブロック４１〜４４の書き出し処理と、第２描画処理部４０２によるバンド２の読み出し処理を同時に実行できる。
【００４４】
以上説明したように、図４（ａ）の例では、描画処理部１１４の並列化で必要となるハードリソースだけでなく、伸張処理部１１６、及び、バンドＲＡＭ１１７も描画処理部１１４の並列動作数分だけ必要となる。
【００４５】
図４（ｂ）は、図３（ｃ）のように、ブロック単位の矩形領域がバンド単位の矩形領域に包含されずに、ブロック単位の副走査方向の画素数を、描画処理部１１４の並列動作数に基づく複数のバンド単位の高さ（画素数）で分割した場合の描画処理の動作を示す。図４（ｂ）において、画像形成装置１００は、描画処理部１１４を構成する第１描画処理部４０１及び第２描画処理部４０２を用いて、単一ページ内の複数のバンドをそれぞれ並列に描画処理する。第１描画処理部４０１は、単一ページ内の奇数番目のバンドを描画処理し、偶数番目のバンドを読み飛ばして描画オブジェクトのスキャンライン毎の位置座標を更新する。第２描画処理部４０２は、単一ページ内の偶数番目のバンドを描画処理し、奇数番目のバンドを読み飛ばして描画オブジェクトのスキャンライン毎の位置座標を更新する。このように、第１描画処理部４０１及び第２描画処理部４０２は、それぞれバンド単位で描画処理対象とする描画オブジェクトを取得するため、ＲＡＭ１０９に一次記憶された中間データ（ＤＬ）２０２は、ページ単位でもバンド単位でも良い。
【００４６】
図４（ｂ）における伸張処理部１１６は、第１描画処理部４０１と第２描画処理部４０２の両方と連携して動作する単一の伸張処理部４２１で構成される。また、バンドＲＡＭ１１７は、単一のバンドＲＡＭ４１１で構成される。
【００４７】
伸張処理部１１６を構成する単一の伸張処理部４２１は、圧縮画像データ２０５から取得した、図３（ｃ）で示したバンド１１及びバンド１２に対応するブロック単位の画像データに対して順に伸張処理を行い、バンドＲＡＭ４１１に出力する。
【００４８】
これを受けて、第１描画処理部４０１は、ＲＡＭ４１１に一次記憶され、図３（ｃ）で示したバンド１１及びバンド２１に対応するバンド単位の画像データを順に読み出し、描画処理時に画像合成してＲＡＭ１０９に転送する。同様に、第２描画処理部４０２は、バンドＲＡＭ４１１に一次記憶され、図３（ｃ）で示したバンド１２及びバンド２２に対応するバンド単位の画像データを順に読み出し、描画処理時に画像合成してＲＡＭ１０９に転送する。
【００４９】
バンドＲＡＭ４１１は、伸張処理部４２１による書き出しと、第１描画処理部４０１及び第２描画処理部４０２による読み出しを同時に実行可能なダブルバッファで構成されている。従って、例えば、伸張処理部４２１によるバンド２１及びバンド２２に対応したブロック２１〜２４の書き出し処理と、第１描画処理部４０１によるバンド１１の読み出し処理を同時に実行できる。同様に、伸張処理部４２１によるバンド２１及びバンド２２に対応したブロック２１〜２４の書き出し処理と、第２描画処理部４０２によるバンド１２の読み出し処理も同時に実行できる。
【００５０】
以上説明したように、図４（ｂ）の例では、描画処理部１１４を並列化しても、描画処理部１１４のハードリソースが並列動作数分だけあれば十分であって、伸張処理部１１６、及び、バンドＲＡＭ１１７のハードリソースを追加する必要はない。
【００５１】
図５は、図４（ｂ）において、画像形成装置１００における描画処理部１１４の並列描画処理設定情報を変更し、第２描画処理部４０２を停止して、第１描画処理部４０１のみを動作させた場合の描画処理の動作を示す。この場合、描画処理部１１４の並列動作数が１になるので、ブロック単位の矩形領域がバンド単位の矩形領域に包含される図３（ｂ）と同様の位置関係になる。
【００５２】
図５において、単一の伸張処理部４２１は、図３（ｂ）で示したバンド１及びバンド２に対応するブロック単位の画像データに対して順に伸張処理を行い、バンドＲＡＭ１１７を構成する単一のバンドＲＡＭ４１１に出力する。
【００５３】
これを受けて、第１描画処理部４０１のみが、バンドＲＡＭ４１１に一次記憶されたバンド１及びバンド２に対応する複数ブロックで構成されたバンド単位の画像データを順に読み出し、描画処理時に画像合成してＲＡＭ１０９に転送する。このようにして、単一ページをバンド単位で順に描画する。
【００５４】
バンドＲＡＭ４１１は、伸張処理部４２１による書き出しと、描画処理部４０１による読み出しを同時に実行可能なダブルバッファで構成されている。従って、例えば、伸張処理部４２１によるバンド２内のブロック２１〜２４の書き出し処理と、描画処理部４０１によるバンド１の読み出し処理を同時に実行できる。
【００５５】
以上説明したように、図５の例では、描画処理部１１４の並列描画処理設定情報を変更し、複数の描画処理部のうち一部を停止させた場合にも、描画処理の並列動作数とバンドの高さを対応させることで、並列動作時と同様の描画処理を実現できる。
【００５６】
図６は、画像形成装置１００におけるＰＤＬ印刷処理のフローチャートを示す。図６のフローチャートで示される処理は、画像形成装置１００のＲＡＭ１０９に展開されたプログラムを、ＣＰＵ１０８が実行することにより実施される。
【００５７】
まず、ステップＳ６０１において、ＣＰＵ１０８は、ホストコンピュータから送信されたＰＤＬデータを通信部Ｉ／Ｆ１０７を介して受信し、ページ単位のＰＤＬデータとしてＲＡＭ１０９あるいはＨＤＤ１１１に記憶する。
【００５８】
次に、ステップＳ６０２において、ＣＰＵ１０８は、記憶されたページ単位のＰＤＬデータを解釈し、解釈した情報を元に描画処理対象となるバンド単位の中間データ（ＤＬ）を生成する。
【００５９】
次に、ステップＳ６０３において、ＣＰＵ１０８は、生成した中間データ（ＤＬ）がＲＡＭ１０９上に確保した所定の記憶容量よりも大きい場合の縮退動作（フォールバック）に用いる画像合成用の背面画像データがあるか判定する。画像合成用の背面画像データがある場合、ステップＳ６０４に進み、ＣＰＵ１０８は、伸張処理部１１６を用いて背面画像データの伸張処理を実行する。ステップＳ６０４において、伸張処理部１１６は、図４及び図５を用いて説明した通り、圧縮画像データに対してブロック単位で伸張処理を行って得られた画像データをバンドＲＡＭ１１７に一次記憶する。従って、伸張処理部１１６は、この後のステップＳ６０６で描画処理部１１４が必要とするバンド分だけ、圧縮画像データを伸張する。一方、画像合成用の背面画像が無い場合、ステップＳ６０４をスキップしてステップＳ６０５に遷移する。
【００６０】
次に、ステップＳ６０５において、ＣＰＵ１０８は、並列描画処理設定情報としてバンド高さを描画処理部１１４の内部レジスタに設定する。ステップＳ６０５におけるバンド高さの設定処理については、図７のフローチャートを用いて別途詳細に説明する。
【００６１】
次に、ステップＳ６０６において、ＣＰＵ１０８は、描画処理部１１４を制御してステップＳ６０５で設定されたバンド高さに従って描画処理をバンド単位で並列に実行し、描画処理結果の画像データをＲＡＭ１０９に一次記憶する。ステップＳ６０６における並列描画処理については、図８のフローチャートを用いて別途詳細に説明する。
【００６２】
次に、ステップＳ６０７において、ＣＰＵ１０８は、圧縮処理部１１５を制御して圧縮処理を実行し、ＲＡＭ１０９に一次記憶された描画処理結果の画像データを圧縮して圧縮画像データに変換し、再びＲＡＭ１０９に記憶する。
【００６３】
次に、ステップＳ６０８において、ＣＰＵ１０８は、ステップＳ６０１で受信したＰＤＬデータを元に生成した中間データ（ＤＬ）によって、ＲＡＭ１０９に収まらなかった未描画オブジェクトがあるか判定する。未描画オブジェクトがある場合、ステップＳ６０２に戻り、ＣＰＵ１０８は、縮退動作（フォールバック）として、未描画オブジェクトがなくなるまで処理を繰り返す。一方、未描画オブジェクトが無い場合、ステップＳ６０９に進み、ＣＰＵ１０８は、伸張処理部１１６を制御して伸張処理を実行し、ＲＡＭ１０９に一次記憶された圧縮画像データを伸張して、再びＲＡＭ１０９に記憶する。
【００６４】
次に、ステップＳ６１０において、ＣＰＵ１０８は、印刷部Ｉ／Ｆ１１８を制御してＲＡＭ１０９に記憶された画像データを読み出し、印刷部１０５のデバイス特性に合わせた補正のための画像処理を行った後に、印刷部１０５に対して画像データを転送する。
【００６５】
その後、ステップＳ６１１において、印刷部１０５は、印刷部Ｉ／Ｆ１１８から転送された画像データを記録媒体に印刷する。
【００６６】
以上説明したように、画像形成装置１００によるＰＤＬ印刷処理が行われる。次に、上述したステップＳ６０５におけるバンド高さの設定処理について説明する。
【００６７】
図７は、上述したステップＳ６０５におけるバンド高さの設定処理のフローチャートを示す。図７のフローチャートで示される処理は、画像形成装置１００のＲＡＭ１０９に展開されたプログラムを、ＣＰＵ１０８が実行することにより実施される。
【００６８】
まず、ステップＳ７０１において、ＣＰＵ１０８は、ステップＳ６０３と同様に、縮退動作（フォールバック）時に用いる画像合成用の背面画像データがあるか判定する。背面画像データがない場合は、ステップＳ７０２に遷移し、背面画像データがある場合は、ステップＳ７０３に遷移する。
【００６９】
背面画像データがない場合、図４を参照して説明した描画処理部１１４と伸張処理部１１６との間のバンドＲＡＭ１１７を用いた連携動作は行われない。したがって、ステップＳ７０２において、ＣＰＵ１０８は、ＲＡＭ１０９で確保可能な記憶容量に従いバンド高さを任意のサイズに決定し、描画処理部１１４の内部レジスタに設定する。任意のサイズとは、例えば、図３（ａ）〜（ｃ）で示したいずれのバンド高さに設定しても良いことを意味する。
【００７０】
一方、背面画像データがある場合、ステップＳ７０３において、ＣＰＵ１０８は、画像形成装置１００の内部で扱うデータ単位としてのブロック単位を取得する。ブロック単位とは、矩形領域の高さと幅を意味し、ここでは、簡単のために、ブロック単位を８画素（高さ）×８画素（幅）の正方形タイル形状として説明する。したがって、ブロックの高さは８画素となる。
【００７１】
次に、ステップＳ７０４において、ＣＰＵ１０８は、バンド単位の描画処理を行う描画処理部１１４の並列動作数を取得する。例えば、描画処理部１１４が図４（ｂ）の動作状態であれば、並列動作数は２、図５の動作状態であれば、並列動作数は１、を描画処理部１１４の内部レジスタにアクセスすることで取得する。
【００７２】
次に、ステップＳ７０５において、ＣＰＵ１０８は、ステップＳ７０４で取得した並列動作数が２以上であるか否かを判定する。並列動作数が１以下であれば、ステップＳ７０６に遷移し、並列動作数が２以上であれば、ステップＳ７０７に遷移する。
【００７３】
並列動作数が１以下である場合、ステップＳ７０６において、ＣＰＵ１０８は、ステップＳ７０３で取得したブロックの高さを、描画処理部１１４で処理するバンドの高さとしてそのまま設定する。例えば、図５の動作状態の場合、８画素×８画素のブロック単位に対して、並列動作数は１なので、バンドの高さは８（＝８÷１）と算出され、これを描画処理部１１４の内部レジスタに設定する。
【００７４】
一方、並列動作数が２以上である場合、ステップＳ７０７において、ＣＰＵ１０８は、ステップＳ７０３で取得したブロックの高さを、ステップＳ７０４で取得した並列動作数で均等分割する。例えば、図４（ｂ）の動作状態の場合、８画素×８画素のブロック単位に対して、並列動作数は２なので、バンドの高さは４（＝８÷２）として算出される。
【００７５】
次に、ステップＳ７０８において、均等分割して算出した値をバンドの高さとして描画処理部１１４の内部レジスタに設定する。
【００７６】
以上説明したように、背面画像データの有無、及び描画処理部の並列動作数に基づいて、バンドの高さが設定される。次に、上述したステップＳ６０６における並列描画処理について説明する。
【００７７】
図８は、上述したステップＳ６０６における並列描画処理のフローチャートを示す。図８のフローチャートで示される処理は、画像形成装置１００のＲＡＭ１０９に展開されたプログラムをＣＰＵ１０８が実行することにより、描画処理部１１４によって実施される。以下、ＣＰＵ１０８の制御に基づいて描画処理部１１４が動作するものとして説明する。
【００７８】
まず、ステップＳ８０１において、描画処理部１１４内で並列に動作する各描画処理部の読み出し処理部は、描画処理部１１４の内部レジスタにＣＰＵ１０８によって設定された中間データ（ＤＬ）の先頭アドレスを取得する。
【００７９】
次に、ステップＳ８０２において、描画処理部１１４の各描画処理部は、ステップＳ６０５で描画処理部１１４の内部レジスタに設定されたバンドの高さを取得する。
【００８０】
次に、ステップＳ８０３において、描画処理部１１４の各描画処理部は、描画処理部１１４の内部でバンド単位の描画処理を実行する並列動作数と、自身のＩＤを内部レジスタから取得する。例えば、図４（ｂ）で示した描画処理部１１４の第１描画処理部４０１であれば、並列動作数は２、自身のＩＤは１が取得される。また、第２描画処理部４０２であれば、並列動作数は２、自身のＩＤは２が取得される。
【００８１】
次に、ステップＳ８０４において、描画処理部１１４の各描画処理部４０１、４０２は、中間データ（ＤＬ）から処理対象のバンド内に含まれる描画オブジェクトを取得する。
【００８２】
次に、ステップＳ８０５において、描画処理部１１４の各描画処理部は、処理対象のバンドのバンド番号と自身のＩＤを照合し、当該バンドが自身が描画処理を行う描画処理対象のバンドであるか否かを判定する。すなわち、例えば、図４（ｂ）で示した第１描画処理部４０１であれば、自身のＩＤが１であるので、図３（ｃ）で示したバンド１１、バンド２１などの奇数番目のバンドを自身の描画処理対象のバンドであると判定する。また、図４（ｂ）で示した第２描画処理部４０２であれば、自身のＩＤが２であるので、図３（ｃ）で示したバンド１２、バンド２２などの偶数番目のバンドを自身の描画処理対象のバンドであると判定する。処理対象のバンドが自身の描画処理対象のバンドである場合、ステップＳ８０６に遷移し、描画処理対象のバンドでない場合、ステップＳ８０９に遷移する。
【００８３】
ステップＳ８０６では、描画処理部１１４の各描画処理部は、上述したステップＳ６０３と同様に、縮退動作（フォールバック）に用いる画像合成用の背面画像データがあるか判定する。背面画像データがある場合、ステップＳ８０７に遷移し、バンドＲＡＭ１１７から処理対象のバンドに対応する背面画像データを取得する。ここで、上述したステップＳ６０４の伸張処理で生成した背面画像データは、図５を用いて説明した通り、処理対象のバンド領域を描画するために必要なバンド分だけ、バンドＲＡＭ１１７に一次保持されている。一方、背面画像データが無い場合、ステップＳ８０７をスキップして、ステップＳ８０８に遷移する。
【００８４】
次に、ステップＳ８０８において、描画処理部１１４の各描画処理部は、処理対象のバンド領域の描画に必要な描画オブジェクトを中間データ（ＤＬ）から取得し、描画処理結果の画像データをＲＡＭ１０９に出力する。特に、ステップＳ８０７で取得した背面画像データがある場合は、これを参照して画像合成処理を行い、描画処理結果の画像データを生成する。
【００８５】
一方、ステップＳ８０９では、描画処理部１１４の各描画処理部は、処理対象のバンド領域に含まれる描画オブジェクトのスキャンライン毎の位置座標のみを更新し、当該バンド領域の描画処理を行わないで中間データ（ＤＬ）を読み飛ばす処理を行う。
【００８６】
次に、ステップＳ８１０において、描画処理部１１４の各描画処理部は、ＲＡＭ１０９に記憶された中間データ（ＤＬ）に描画対象の次のバンドがあるか否かを判定する。次のバンドがあれば、ステップＳ８０４に戻って処理を繰り返し、次のバンドが無ければ、現在処理しているページの描画処理を終了する。
【００８７】
以上説明したように、描画処理部１１４によって並列描画処理が実施される。
【００８８】
図９は、ブロック単位のライト（書き出し）と、バンド単位のリード（読み出し）のアクセス制御を説明する図である。図９（ａ）は、バンドＲＡＭ１１７の第１バンドＲＡＭ４１１にブロック単位で書き込まれる画像データを示す。図９（ｂ）は、バンドＲＡＭ１１７からバンド単位で読み出される画像データを示す。
【００８９】
図９（ａ）に示すように、ブロック１１〜ブロック１４は、伸張処理部１１６の第１伸張処理部４２１によって第１バンドＲＡＭ４１１に順に書き出される。一方、図９（ｂ）に示すように、バンド１１は、描画処理部１１４の第１描画処理部４０１によってバンドＲＡＭ１１７から読み出され、バンド１２は、描画処理部１１４の第２描画処理部４０２によってバンドＲＡＭ１１７から読み出される。
【００９０】
第１バンドＲＡＭ４１１は、伸張処理部１１６と描画処理部１１４を連携動作させるために、図９（ａ）でライトアクセス検知と示したアドレス（画素位置）への画像データの書き出しをトリガとして、描画処理部１１４のリード（読み出し）開始を制御する。当該アドレス（画素位置）までブロック単位の画像データが書き出されたことを検知することで、バンド単位の画像データの書き出しが完了したと判定できるためである。
【００９１】
また、第１バンドＲＡＭ４１１は、同じく連携動作のために、図９（ｂ）でリードアクセス検知と示したすべてのアドレス（画素位置）からの画像データの読み出しをトリガとして、伸張処理部１１６のライト（書き出し）開始を制御する。当該すべてのアドレス（画素位置）までバンド単位の画像データが読み出されたことを検知することで、ブロック単位の画像データを包含するすべてのバンド単位の画像データの読み出しが完了したと判定できるためである。これはすなわち、第１バンドＲＡＭ４１１に新たな書き出しのための空き領域ができたことを意味する。
【００９２】
以上説明したように、本発明の一実施形態によれば、伸張処理部１１６及びバンドＲＡＭ１１７のハードリソースを描画処理部の並列動作数分だけ拡張することなく、第１描画処理部４０１及び第２描画処理部４０２の並列動作を実現できる。すなわち、ハードリソースの増加によるコストアップを抑えながら、並列描画処理を効率的に行い、描画処理を高速化することができる。
【００９３】
（変形例１）
次に、本発明の変形例１について説明する。上述した実施形態におけるバンド高さの設定処理では、描画処理部の並列動作数に基づいてブロックの高さを均等分割して、バンドの高さを設定した。一方、本変形例では、描画処理部の並列動作数に加えて、各描画処理部の仕様差（性能差）も考慮して、ブロックの高さを加重分割し、バンドの高さを設定する。
【００９４】
図１０は、本変形例におけるバンド高さの設定処理のフローチャートを示す。図１０のフローチャートで示される処理は、画像形成装置１００のＲＡＭ１０９に展開されたプログラムを、ＣＰＵ１０８が実行することにより実施される。本実施形態におけるバンド高さの設定処理は、図７のフローチャートを参照して説明したバンド高さの設定処理の変形形態であるため、図７との共通部分の説明は省略し、図７との差異のみを説明する。具体的には、図１０におけるステップＳ１００１〜Ｓ１００６は、図７におけるステップＳ７０１〜Ｓ７０６と同様であるため、説明は省略する。
【００９５】
本実施形態におけるバンド高さの設定処理では、描画処理部１１４の並列動作数が２以上である場合、ステップＳ１００７において、ＣＰＵ１０８は、並列動作する各描画処理部の仕様差情報を取得する。仕様差情報とは、例えば、第１描画処理部４０１に対する第２描画処理部４０２の動作周波数の比率であり、また、例えば、第１描画処理部４０１に対する第２描画処理部４０２のプロセッサコア数やモジュール数の比率である。
【００９６】
次に、ステップＳ１００８において、ＣＰＵ１０８は、取得した仕様差情報に基づいて、各描画処理部に仕様差があるか判定する。仕様差の比率が１：１であり、仕様差が無い場合は、ステップＳ１００９〜Ｓ１０１０に遷移し、図７におけるステップＳ７０７〜Ｓ７０８と同様に、ブロックの高さを均等分割してバンドの高さを算出し、描画処理部１１４の内部レジスタに設定する。一方、仕様差の比率が例えば３：１であり、仕様差がある場合は、ステップＳ１０１１に遷移する。
【００９７】
ステップＳ１０１１において、ＣＰＵ１０８は、単一ブロックの高さを、並列動作する描画処理部の仕様差情報に基づいて、重み付けて加重分割する。例えば、上述したように、仕様差の比率が３：１（並列動作数は２）である場合、図１０（ｃ）に示したバンド１１とバンド１２のように、並列動作数と仕様差の比率に合わせて、単一ブロックの高さを重み付けて加重分割する。例えば、単一ブロックの高さが８画素である場合、第１描画処理部４０１の描画領域の高さを６画素分、第２描画処理部４０２の描画領域の高さを２画素分として分割する。
【００９８】
次に、ステップＳ１０１２において、加重分割して算出した値をバンドの高さとして、描画処理部１１４の内部レジスタに設定する。
【００９９】
以上説明したように、本変形例によれば、描画処理部１１４で並列に動作する複数の描画処理部の並列動作数及び性能差（仕様差）に鑑みて、描画速度の差が小さくなるように描画領域を分割することで、並列動作の効率を高めることが可能になる。すなわち、バンド単位の描画処理を並列に実行する場合において、第１描画処理部４０１と第２描画処理部４０２の処理速度のいずれか遅い方に律速した場合に生じる待ち時間を短縮することで、描画処理を高速化することができる。
【０１００】
（変形例２）
次に、本発明の変形例２について説明する。本変形例では、単一ブロックの高さを並列動作数で均等に分割する方法として、図９（ｄ）あるいは図９（ｅ）に示すように、並列動作数の更に整数倍をもって均等に分割する方法を採用する。
【０１０１】
図９（ｄ）に示す例では、描画処理部の並列動作数が２であるのに対して、その２倍の４で単一ブロックの高さを均等に分割する。そして、第１描画処理部４０１がバンド１１及びバンド１３を描画し、第２描画処理部４０２がバンド１２及びバンド１４を描画するように制御する。
【０１０２】
あるいは、図９（ｅ）に示す例では、描画処理部の並列動作数が２であるのに対して、その４倍の８で単一ブロックの高さを均等に分割する。そして、第１描画処理部４０１がバンド１１、バンド１３、バンド１５、バンド１７を描画し、第２描画処理部４０２がバンド１２、バンド１４、バンド１６、バンド１８を描画するように制御する。
【０１０３】
以上説明したように、本変形例によれば、バンドの高さをより小さくすることで、バンドの高さよりも大きい描画オブジェクトを複数のバンドにまたがるように配置することができる。こうすることで、並列に動作する各描画処理部による描画速度の差を小さくして、並列描画処理を効率的に行うことができる。すなわち、第１描画処理部４０１と第２描画処理部４０２の描画負荷を均一化できるため、第１描画処理部４０１と第２描画処理部４０２のいずれか遅い方に律速した場合に生じる待ち時間を短縮することで、描画処理を高速化することができる。
【０１０４】
（変形例３）
次に、本発明の変形例３について説明する。
【０１０５】
図１１は、本発明で定義したページ内のブロックとバンドの関係の例を示す。上述した通り、ブロックとは、ページ単位の画像データを画像形成装置内で分割して扱う際の単位としての矩形領域であって、例えば、３２画素×３２画素の正方形タイル形状を有する。また、バンドとは、上述した通り、ブロックよりも主走査方向の画素数が大きく、副走査方向の画素数が等しいか、または、小さい矩形領域である。
【０１０６】
図１１（ａ）に示されるブロックとバンドの関係は、ブロックがバンドに包含される位置関係にあり、ブロックの高さとバンドの高さが等しい。図１１（ｂ）及び図１１（ｄ）に示されるブロックとバンドの関係は、ブロックとバンドが互いに包含されず、かつ、ブロックの高さを複数のバンドの高さで分割した関係にある。なお、図１１（ａ）、図１１（ｂ）、図１１（ｄ）のいずれにおいても、バンドの幅（主走査方向の画素数）はページの幅と等しい。本変形例では、図１１（ａ）、図１１（ｂ）、図１１（ｄ）に示したブロックとバンドの異なる関係を、画像形成装置１００の描画処理設定によって切り替えてもよい。
【０１０７】
また、図１１（ｃ）及び図１１（ｅ）はそれぞれ、図１１（ｂ）及び図１１（ｄ）に対応するブロックとバンドの関係を示すが、図１１（ｃ）及び図１１（ｅ）では、バンド幅が主走査方向で分割されている。このように、バンド幅は、ページ幅に限定されるものではなく、ページ幅より小さくてもよい。この場合、分割されたバンドのうち、まず、左側のすべてのバンドを描画処理した後、右側のバンドを描画処理することで、ページ単位の描画処理が実施される。
【０１０８】
以上説明したように、本変形例によれば、バンド単位を主走査方向で分割し、画像データを小さくして描画処理を実施することで、必要とするメモリ容量を更に削減しながら、並列描画処理を効率的に行い、描画処理を高速化することができる。
【０１０９】
（その他の実施形態）
本発明は、上述した実施形態の１以上の機能を実現するプログラムをネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１以上のプロセッサがプログラムを読み出して実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
2018058295.tif 000003
【図２】
2018058295.tif 000004
【図３】
2018058295.tif 000005
【図４】
2018058295.tif 000006
【図５】
2018058295.tif 000007
【図６】
2018058295.tif 000008
【図７】
2018058295.tif 000009
【図８】
2018058295.tif 000010
【図９】
2018058295.tif 000011
【図１０】
2018058295.tif 000012
【図１１】
2018058295.tif 000013