(57)【要約】【課題】従来のイメージデータをページスプールして印字するでは、高解像度化が進むにつれ、スプールメモリが増大する。また、省メモリで構成されるベクタフォーマット構造では、高速プリンタエンジンに同期した画像生成処理を保証することが困難という課題がある。【解決手段】画像データを複数のブロックに分割し、各々のブロックを構成する属性を判別する。前記属性情報に応じて画像生成処理時間を予測し、予測結果により印字時間内に画像生成処理を行えるように画像生成用データを変換する準備処理を行い高速プリンタエンジンに同期した画像生成処理を保証する。【選択図】図４
2010111099.tif 000002
【特許請求の範囲】
【請求項１】
元画像データを複数のブロックに分割する分割手段と、
分割した各ブロックのブロック属性を決定する属性決定手段と、
ブロック属性及びブロック単位の処理時間に基づいて、前記元画像データから画像形成部に適した出力形式画像データを生成する画像生成処理に要する予測時間を求める予測手段と、
前記予測時間が所定時間を越える場合、前記所定時間内に前記複数のブロックの画像生成処理が完了するように、前記複数のブロックのいずれかの画像データを、より処理時間の短いブロック属性を持つ適合的画像データに変換する準備処理手段と、
前記各ブロックの適合的画像データを、ブロック単位で前記出力形式画像データを生成する複数の画像生成部に対して振り分ける振り分け手段と、
前記画像生成部により生成されたブロック単位の出力形式画像データを、分割する前の前記元画像データに相当する位置に再配置する再配置手段と
を有することを特徴とする画像処理装置。
【請求項２】
前記準備処理手段による変換には、画像データに含まれる画像オブジェクトを予め回転もしくは拡大縮小しておく処理を含むことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記準備処理手段による変換には、ベクタオブジェクトをビットマップ形式に変換する処理を含むことを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記分割手段により分割される画像データはオブジェクトから構成される形式であり、前記画像生成部による画像生成処理は、入力された適合的画像データから出力形式画像データを生成する処理であることを特徴とする請求項１乃至３のいずれか一項に記載の画像処理装置。
【請求項５】
前記予測手段は、前記元画像データの幅に相当するブロックの画像生成処理に要する予測時間を求め、
前記振り分け手段は、複数の画像生成部により並列に、前記元画像データの幅に相当するブロックの画像生成処理を行う際に、いずれの画像生成部においても、画像生成処理に要する所要時間が、前記元画像データの幅に相当するブロック数の出力形式画像データを前記画像形成部により画像形成するための所要時間を超えないように、前記各ブロックの適合的画像データを、前記複数の画像生成部に対して振り分けることを特徴とする請求項１乃至４のいずれか一項に記載の画像処理装置。
【請求項６】
分割手段と属性決定手段と予測手段と準備処理手段と振り分け手段と再配置手段とを備える画像処理装置の制御方法であって、
前記分割手段が、元画像データを複数のブロックに分割する分割工程と、
前記属性決定手段が、分割した各ブロックのブロック属性を決定する属性決定工程と、
前記予測手段が、ブロック属性及びブロック単位の処理時間に基づいて、前記元画像データから画像形成部に適した出力形式画像データを生成する画像生成処理に要する予測時間を求める予測工程と、
前記準備処理手段が、前記予測時間が所定時間を越える場合、前記所定時間内に前記複数のブロックの画像生成処理が完了するように、前記複数のブロックのいずれかの画像データを、より処理時間の短いブロック属性を持つ適合的画像データに変換する準備処理工程と、
前記振り分け手段が、前記各ブロックの適合的画像データを、ブロック単位で前記出力形式画像データを生成する複数の画像生成部に対して振り分ける振り分け工程と、
前記再配置手段が、前記画像生成部により生成されたブロック単位の出力形式画像データを、分割する前の前記元画像データに相当する位置に再配置して画像形成部に入力する再配置工程と
を有することを特徴とする画像処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理装置およびその制御方法に関し、特に画像データを並列処理し、画像形成部（プリンタエンジン）に同期して画像生成するための画像処理装置およびその制御方法に関する。
【背景技術】
【０００２】
コピー、プリンタ等の機能を有する複合機の技術分野では、プリンタエンジンの高速化と画像の高解像度化が進行している。このため、画像データをプリンタエンジンに入力する印刷データへと変換する画像生成部では、大容量の画像データを高速に処理する必要がある。画像生成の高速化のための技術として、複数の画像生成部を設け、画像生成を並列に行うことで高速化を実現しているものがある。
【０００３】
たとえば、複数の画像生成プロセッサを持ち、画像データをブロックに分割し、各ブロックの画像データの属性とその属性に応じた画像生成の処理負荷を求め、総負荷量がおおむね均等になるように各ブロックを画像生成プロセッサの数にグルーピングする。各画像生成プロセッサは、グルーピングにより割り当てられた各ブロックの画像データに必要な画像生成アルゴリズムのみで構成される画像生成処理を実行する。その画像生成処理を実行する各々の画像生成プロセッサに各ブロックの画像データを供給して、並列に画像生成を施すことで、画像生成を高速化している（例えば、特許文献１等参照。）。
【特許文献１】特開２００７―８１７９５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、高解像度化した画像データの画像生成を高速化するだけでは、画像データをページ単位でスプールするための大容量の画像データ領域が必要となる。そのため、プリンタエンジンの印字速度を考慮した画像生成が必要となる課題があった。
【０００５】
本発明は上記従来例に鑑みて成されたもので、画像データをビットマップデータとしてページ単位でスプールする必要を無くし、安価で高速な画像処理装置及びその制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した問題を解決するために、本発明は以下の構成を有する。
【０００７】
元画像データを複数のブロックに分割する分割手段と、
分割した各ブロックのブロック属性を決定する属性決定手段と、
ブロック属性及びブロック単位の処理時間に基づいて、前記元画像データから画像形成部に適した出力形式画像データを生成する画像生成処理に要する予測時間を求める予測手段と、
前記予測時間が所定時間を越える場合、前記所定時間内に前記複数のブロックの画像生成処理が完了するように、前記複数のブロックのいずれかの画像データを、より処理時間の短いブロック属性を持つ適合的画像データに変換する準備処理手段と、
前記各ブロックの適合的画像データを、ブロック単位で前記出力形式画像データを生成する複数の画像生成部に対して振り分ける振り分け手段と、
前記画像生成部により生成されたブロック単位の出力形式画像データを、分割する前の前記元画像データに相当する位置に再配置する再配置手段と
を有する。
【発明の効果】
【０００８】
本発明によって、画像形成部により処理可能な形式に変換された画像データをページ単位でスプールする必要が無くなり、安価で高速な画像処理装置及びその制御方法を提供することができる。
【発明を実施するための最良の形態】
【０００９】
［第１の実施の形態］
以下に、本発明を実施するための最良の形態を、実施形態に基づいて図面を参照しながら説明する。図１は本発明の実施形態に係る画像形成システムの構成を示すブロック図である。このシステムではホストコンピュータ１３０及び２台の画像処理装置（１００，１２０）がＬＡＮ１４０に接続されているが、本実施形態における画像形成システムにおいては、これらの接続数に限られることはない。また、本実施形態では接続方法としてＬＡＮを適用しているが、これに限られることはない。例えば、ＷＡＮ（公衆回線）などの任意のネットワーク、ＵＳＢなどのシリアル伝送方式、セントロニクスやＳＣＳＩなどのパラレル伝送方式なども適用可能である。
【００１０】
ホストコンピュータ（以下、ＰＣと称する）１３０はパーソナルコンピュータの機能を有している。このＰＣ１３０はＬＡＮ１４０やＷＡＮを介してＦＴＰやＳＭＢプロトコルを用いファイルを送受信したり電子メールを送受信したりすることができる。さらには、ＰＣ１３０は画像処理装置１００、１２０に対して、プリンタドライバを介した印刷命令を行うことも可能となっている。
【００１１】
画像処理装置１００と１２０は同じ構成で、スキャナ部を有する画像処理装置であり、例えばディジタル複合機である。スキャナ部を有しない印刷装置（プリンタ）であってもよい。以下では、説明の簡単のために、画像処理装置１００、１２０のうちの画像処理装置１００に注目して、その構成を詳細に説明する。画像処理装置１００は、画像入力デバイスであるスキャナ部１０３、画像出力デバイスであるプリンタ部１０４、画像処理装置１００全体の動作制御を司るコントローラ１０１、ユーザインターフェース（ＵＩ）である操作部１０２から構成される。プリンタ部は、画像データを基に画像を形成する機構を持つために、画像形成部とも呼ぶ。
【００１２】
図２は、本実施形態におけるコントローラの構成を示すブロック図である。ＣＰＵ２０１は、画像処理装置１００全体を制御するためのコントローラである。ＣＰＵ２０１はＲＯＭ２０２に格納されているブートプログラムによりＯＳ（Operating System）を起動する。このＯＳ上で大容量ストレージ２０６に記憶されているコントローラプログラムや各種アプリケーションプログラムを実行させる。ＣＰＵ２０１はデータバス２０４などの内部バスによって各部と接続されている。
【００１３】
ＲＡＭ２０３は、ＣＰＵ２０１の主メモリやワークエリア等の一時記憶領域として動作する。さらに、画像処理の一時記憶領域としても使用される。
【００１４】
インターフェース制御部２０７は、ＮＩＣ（Network Interface Card）２０８などのネットワークＩ／Ｆを制御して、ＬＡＮなどのネットワークに対して、画像データをはじめとするさまざまなデータの送受信を行う。また、インターフェース制御部２０７はモデム２０９を制御して、電話回線に対してデータの送受信を行う。
【００１５】
操作Ｉ／Ｆ２１０は、タッチパネルやハードキーといった操作部１０２からユーザの操作支持を入力する。また、操作Ｉ／Ｆ２１０はLCDやCRTなどの操作部１０２を制御して、操作画面をユーザに対して表示する。
【００１６】
スキャナ画像処理部２１１は、スキャナ部１０３からスキャナＩ／Ｆ２１２を介して受取った画像データに対して、補正、加工、及び編集を行う。なお、スキャナ画像処理部２１１は、受取った画像データがカラー原稿か白黒原稿か、文字原稿か写真原稿かなどを判定する。そして、その判定結果を画像データに付随させる。こうした付随情報を属性データと称する。属性データについては図６を参照して後で説明する。
【００１７】
プリント画像生成部２１３は、プリンタ部への出力形式の画像データ（出力形式画像データ）であるビットマップデータを生成し、プリンタＩ／Ｆを介してプリンタ部１０４に前述のビットマップデータを送信する。なお、プリンタ画像生成部では、前述のＣＰＵ２０１で生成したブロック毎の適合的画像データを解釈してビットマップデータの生成を行う。
【００１８】
＜画像生成部＞
図３はプリント画像生成部２１３を詳細に示したブロック図である。処理振り分け部３０１は、ＣＰＵ２０１により作成した、バンディング処理に適合した適合的画像データを画像生成部３０２、３０３、３０４、３０５へ割り振りを行う。この際の割り振り情報も前述の画像生成用データと同様に前述のＣＰＵ２０１により作成する。
【００１９】
画像生成部３０２、３０３、３０４、３０５は、処理振り分け部３０１により割り振られた画像データからプリンタ部１０４で画像形成可能な出力形式、本例ではビットマップ形式の画像データに変換する。このビットマップ形式の画像データを、本実施形態では出力形式画像データとも呼ぶ。画像生成部３０２、３０３、３０４、３０５は互いに同一の性能を持つことが望ましく、並列して動作可能である。また図３では、画像生成部は４つ備えられているが、画像生成部の数を変更してもよい。
【００２０】
書き出しアドレス計算部は、画像生成部３０２、３０３、３０４、３０５で生成されたビットマップデータのブロックの印刷アドレス計算を行い、計算したアドレスに従ってビットマップデータをプリンタＩ／Ｆ２１４へ出力する。
【００２１】
図４は本発明での適合的画像データの作成処理を示すフロー図である。ＣＰＵ２０１は、インターフェース制御部を介して受信し、記憶装置に格納したＰＣ１３０からの印刷データもしくは、スキャナ部１０３から受信し、記憶装置に格納した印刷データをブロック化処理（Ｓ４０１）する。ここで記憶装置とはＲＡＭ２０３もしくは、大容量ストレージ２０６である。
【００２２】
ブロック化処理とは、画像データを小領域のブロックに分割する処理である。図５は、印刷対象となる画像データ（元画像データ）の一例を示したものである。画像データ５００は、等倍イメージ画像５０１、図形５０２、文字５０３、文字５０６、縮小イメージ５０４、回転拡大イメージ５０５で構成される。画像データ５００は、典型的には画像や図形、文字等の画像構成要素（オブジェクト）とその配置の記述で構成された画像データであるが、ビットマップ画像データの場合もある。画像構成要素の配置の記述には、画像構成要素の位置に加えて、回転や拡大縮小（変倍）等の変換の記述も含まれる。この画像データ５００を、横方向についてはＡからＰまで１6分割し、横方向については１から１１まで１１分割して、全部で１７６のブロックに分割する。これはもちろん一例であり、画像生成部の処理能力に応じて分割されることが望ましい。また分割の際には、ブロック間にまたがるオブジェクトは例えば画像オブジェクトに変換し、それを分割してもよい。この場合、回転や変倍を伴うオブジェクトの場合には、それら変換処理を施した上で画像オブジェクトに変換し、ブロックに分割する。もちろん、ページ内のオブジェクトの位置とページ内のブロックの位置とがわかれば、複数ブロックにまたがるオブジェクトであっても、ブロック単位で描画できるから、画像オブジェクトに変換しなくとも構わない。
【００２３】
次に、ＣＰＵ２０１は、各ブロックの属性を決定する（属性決定）。すなわち各ブロックに含まれるオブジェクトを判別し、判別結果をブロック属性（Ｂｌｏｃｋ  Ｆｌａｇ）として記録する（Ｓ４０２）。ブロック属性の決定は、各ブロック内に存在する画像の構成要素に基づいて行う。なお、オブジェクトが回転や変倍を伴う場合には、回転処理或いは変倍処理を行わないと、そのオブジェクトが表れるブロックは特定できない。したがって回転処理或いは変倍処理を伴うオブジェクトを含むページについては、回転や変倍処理を行った後で当該オブジェクトが表れるブロックを特定し、そのブロックのブロック属性として回転や変倍を伴うオブジェクトを含むものと記録する必要がある。
【００２４】
次に、ブロック判定結果を基に、ブロック属性の各ビットに対応付けて予め定義されている処理時間を積算してブロック処理時間を求める。さらにそのブロック処理時間を、プリンタ部１０４へ送信されるデータの単位で積算し、画像生成処理の予測時間を求める（Ｓ４０３）。この予測時間は、１つの画像生成部当たりの平均値として求めてもよい。なお画像生成処理時間の予測（Ｓ４０３）は、プリンタＩ／Ｆ２１４を介してプリンタ部１０４へのビットマップデータ送信単位で、画像生成用データすべてに対して行う。本実施形態では、ビットマップデータ転送単位が１ブロックライン（１列のブロック列）として説明を行う。本実施形態の画像処理装置はバンディング処理を行うことで必要なバッファ量を節約するが、１ブロックラインはその際の１つのバンドに相当する。すなわち、ブロックラインは元画像データの幅に相当する。そのため、ページ内の２番目以降のバンドの生成は、その直前のバンドの印刷が終了するまでに完了している必要がある。
【００２５】
次に、ＣＰＵ２０１はステップＳ４０３で求めた予測時間が、プリンタ部１１４における１ブロックライン分の画像データの印刷に要する所定時間（印刷所要時間）に対して小さいか否かの判断（Ｓ４０４）を行う。予測時間がプリンタ部１１４での印刷所要時間を越えている場合には後述する準備処理（Ｓ４０５）を行う。また、予測時間がプリンタ部１１４での印刷所要時間以下（すなわち所定時間内）の場合には、図３で示した画像生成部３０２、３０３、３０４、３０５での処理振り分けテーブル作成（Ｓ４０６）を行う。
【００２６】
次に、ＣＰＵ２０１はブロック化処理（Ｓ４０１）で作成したブロック画像生成用データと振り分けテーブル作成（Ｓ４０６）で作成した振り分けデータテーブルを記憶装置（ＲＡＭ２０３）に格納して（Ｓ４０７）処理を終了する。
【００２７】
なお、ステップＳ４０４で条件を満たす画像データ、および、ステップＳ４０５で準備処理が施された画像データは、バンディング処理に適合した画像データであることから、本実施形態では適合的画像データと呼ぶ。
【００２８】
＜ブロック属性とブロックの振り分け＞
図６は、ステップＳ４０３で作成されるブロック属性を記述したブロック属性情報テーブル６００の一例を示す。ブロック属性は８ビットで構成され、各ブロックに関連づけて保存される。ブロック属性と処理時間との対応は、予め定めたテーブルに別途保存しておけばよい。ブロック属性は、ブロックに含まれるオブジェクトの種類により決定される。たとえば、画像オブジェクトが含まれれば、そのブロックのブロック属性のビット５が「１」にセットされる。画像オブジェクトが複数含まれれば、ブロック属性のビット７が「１」にセットされる。回転又は変倍の変換が指定された画像オブジェクトが含まれていれば、ブロック属性のビット６を「１」にセットする。また、図形または文字のようなベクタオブジェクトの場合には、ベクトルデータを扱うため、境界数（エッジ数）と塗り（フィル）に応じてＦｌａｇビットを「１」にする。例えば、エッジ数が１乃至６４であれはブロック属性のビット４−ビット２を「１」（＝００１）に、エッジ数が６５乃至１２８であれはブロック属性のビット４−ビット２を「２」（＝０１０）に、エッジ数が１２８乃至２５６であればビット４−ビット２を「３」（＝０１１）に、エッジ数が２５７以上であれはビット４−ビット２を「４」（＝１００）にセットする。また、図形又は文字に塗りつぶし指定があれば、ブロック属性のビット１を「１」にセットする。ブロックがビットマップデータであれば、ブロック属性のビット０を「１」にセットする。
【００２９】
各ブロックの変換処理の予測時間は、各ビットに対応する時間を積算して求める。例えばブロック属性値が「０６」であれば、ビット２，ビット１がともに「１」であるから、対応する値２４０サイクルと８０サイクルとを加えた値３２０サイクルが求める予測時間である。
【００３０】
例えば、図５のブロックＫ１（横Ｘ、縦Ｎの位置にあるブロックをブロックＸＮと表す）はオブジェクトが含まれていないため、対応するブロック属性情報は「００」（１６進数）と決定される。ブロックＫ８には、複数のイメージ画像が含まれるため、対応するブロック属性情報は「８０」（１６進数）と決定される。
【００３１】
図７は図５で示した画像データ例のすべてのブロックのブロック属性を、図６で示したブロック属性情報テーブル６００を基に行った結果７００を示す。
【００３２】
図８はステップＳ４０６における処理振り分けを示す概念図である。図７で示した注目ブロックライン７０１を画像生成部３０２、３０３、３０４、３０５での処理時間に注目して平準化して振り分けテーブル８０１を作成した例である。処理時間に注目して平準化した概念を８００で示す。振り分けテーブルには、各画像生成部で処理するブロック数をブロック属性毎に登録しておく。１ブロックライン内においてはブロックの処理順序は特に問題にならないので、画像生成処理時には、振り分けテーブル８０１を参照して、該当するブロック属性を持つブロックを、重複しないように処理すればよい。
【００３３】
さて本例では、１ブロックラインは１６ブロックから構成される。使用する画像生成部は４つであるので、この１６ブロックの画像生成処理を、４つの画像生成部に振り分ける（スケジュールする）。振り分けの手順としては、処理対象のブロックラインのうち、最も処理時間の長いブロックから順に、各画像生成部に所定の順序で順次振り分けていく。その際、各画像生成部に振り分けられたブロックに対応する処理の予測時間を、画像生成部毎に積算し、印刷所要時間と比較する。もし積算値が印刷所要時間を超えていれば、当該ブロックを当該画像生成部へ振り分けることはできない。そこで、当該ブロックは、次の画像生成部に振り分けられる。もしそこでも積算値が印刷所要時間を超えれば、さらに次の画像生成部に振り分ける。もしもそのブロックをどの画像生成部にも振り分けられなら、そのブロックラインについては、所定の印刷所要時間内にビットマップデータを生成しきれない可能性がある。この場合にはステップＳ４０５の準備処理を再度行う必要がある。１ブロックラインに属する全ブロックの振り分けが完了すれば、ステップＳ４０６は成功である。この要領で、各ブロックを画像生成部に振り分ける。
【００３４】
＜画像生成処理手順＞
図９は本実施形態での、ページ単位の画像生成処理を示すフロー図である。プリント画像生成部２１３内の処理振り分け部３０１は、各ブロックの適合的画像データを、振り分けテーブルに従い画像生成部３０２、３０３、３０４、３０５に振り分け（Ｓ９０１）を行う。
【００３５】
次に、画像生成部３０２、３０３、３０４、３０５は振り分けられたそれぞれのブロックの画像データをビットマップデータに展開する画像生成処理（Ｓ９０２）を行う。
【００３６】
さらに、画像生成部３０２、３０３、３０４、３０５が展開したビットマップデータを書き出しアドレス算出部３０６で算出したアドレスにバッファリングする。換言すれば、ここで行われる処理は、ブロックを元画像データの対応する位置に書き戻す再配置である。そして、送信単位分のビットマップデータをバッファリングできた時点でプリンタＩ／Ｆ２１４を介してプリンタ部１０４へ送信する出力処理（Ｓ９０３）を行う。送信単位は、本例では１ブロックラインであり、１バンドに相当する。
【００３７】
１ページ分のデータの送信が終了したかを判断（Ｓ９０４）して、終了していない場合には、ブロック振り分け処理（Ｓ９０１）へ戻り、終了した場合には処理を終了する。
【００３８】
もちろん複数ページの印刷を行う場合には、ページ数分だけ図９の処理を実行することになる。ページ間では時間間隔が空いてもプリントアンダーランは発生しないので、印刷所要時間内に画像生成処理が完了することの保証はバンド単位であればよい。
【００３９】
図１０は図９で示した画像データ振り分け処理（Ｓ９０１）の詳細を示したフロー図である。
【００４０】
処理振り分け部３０１は記憶部（ＲＡＭ２０３）から振り分けテーブル８０１の読み出し（Ｓ１００１）を行う。ここで振り分けテーブル８０１はビットマップデータ転送単位で読み出す。本実施形態では、１ブロックライン単位である。
【００４１】
次に、記憶部（ＲＡＭ２０３）から、ブロック分割された適合的画像データおよびブロック属性の読み出し（Ｓ１００２）を行う。ここで画像データは、並行処理を行う画像生成部の単位で読み出す。すなわち本実施形態では４ブロックの画像データを一度に読み出す。
【００４２】
次に振り分けテーブル８０１を基に、ブロック分割された適合的画像データを画像生成部３０２、３０３、３０４、３０５に振り分ける（Ｓ１００３）。たとえば、ある画像生成部について振り分け例を説明する。振り分けテーブル８０１には当該画像生成部において処理するブロック数がブロック属性値ごとに記録されている。そこで、読み出したブロック属性に相当する振り分けテーブル８０１の値が０以外であれば、当該ブロックをその画像生成部で処理するものと決定する。そしてそのブロックの識別情報をスケジュール情報として書き出す。その場合には、振り分けテーブル８０１から、割り振り済みのブロック属性値を差し引いておく。
【００４３】
このようにして画像生成部ごとに、処理するブロックの識別子とその処理順序が、スケジュール情報として記録される。
【００４４】
ビットマップデータ転送単位分のブロックの振り分け処理が終了したかを判断（Ｓ１００４）し、終了していない場合にはブロック属性及び適合的画像データの読み出し（S１００２）に戻る。終了した場合には終了コマンド送信（S１００５）を画像生成部３０２、３０３、３０４、３０５に行い終了する。なおステップＳ８０２では、そのブロックの識別情報が把握できるならば、ブロック属性のみの読み出しであっても十分である。
【００４５】
図１１は振り分け部３０１により画像生成部３０２、３０３、３０４、３０５にブロック毎の画像データを振り分けした概念図である。これは、前述のスケジュール情報に相当する。画像生成部３０２には、画像データのブロック群１１０１が振り分けられる。すなわち、画像生成部３０２は、ブロック８Ａ、８Ｃ、８Ｅ、８Ｇ、８Ｉ、８Ｋの順で処理を行う。各ブロックは、一意に識別可能に保存しておく必要がある。この識別は、たとえば識別子をブロック毎に関連づけておいても良いし、一定の順序で記憶することで識別することもできる。画像処理部は終了コマンド１１０５を読むとそこで処理はいったん終了する。他の画像生成部についても同様である。画像生成部３０３にはブロック群１１０２が、画像生成部３０４にはブロック群１１０３が、画像生成部３０５にはブロック群１１０４が振り分けられる。また、画像生成部３０２、３０３、３０４、３０５の最終データには終了コマンド１１０５、１１０６、１１０７、１１０８が振り分けられている。
【００４６】
図１２は図９で示した画像生成処理（Ｓ９０２）の詳細を示したフロー図である。この処理は画像生成部３０２、３０３、３０４、３０５それぞれが行う。画像生成部は、スケジュール情報１１０１〜１１０４を参照してまず先頭のブロック識別子をフェッチする（Ｓ１２００）。そしてフェッチした識別子が終了コマンドか判定する（Ｓ１２０１）。終了コマンドと判断した場合には、処理を終了する。終了コマンドでなければそのブロック（着目ブロックと呼ぶ）の画像データが記憶部に存在するかを判断する（Ｓ１２０２）。
【００４７】
画像データが存在しないと判断した場合には画像データ待ちとなる。存在すると判断した場合には、着目ブロックのビットマップデータの生成処理（Ｓ１２０３）を行い、生成したビットマップデータを出力（Ｓ１２０４）し、次のスケジュール情報をフェッチする（Ｓ１２００）。
【００４８】
図１３は、図９で示した出力処理（Ｓ９０３）の詳細を示したフロー図である。書き出しアドレス算出部３０６は画像生成部３０２、３０３、３０４、３０５で形成した各ブロックのビットマップデータ（ブロックビットマップデータという）が存在するかを判断（Ｓ１３０１）すうる。存在しないと判断した場合にはブロックビットマップデータ待ちとなる。ブロックビットマップデータが存在すると判断した場合には、ブロックビットマップデータの書き出しアドレスを算出（Ｓ１３０２）し、バッファリング（Ｓ１３０３）する。ビットマップデータ送信単位すべてのブロックの処理が終了したか判断（Ｓ１３０４）し、終了した場合にはプリンタＩ／Ｆ２１４を介してプリンタ部１４０へ送信単位のビットマップデータの出力処理（Ｓ１３０５）を行う。また、終了していない場合には、ブロックビットマップデータ待ちとなる。
【００４９】
図１４は、図４で示した準備処理Ｓ４０５の詳細を示したフロー図である。図７で示した注目ブロックライン７０１の準備処理を例に説明する。
【００５０】
ＣＰＵ２０１は、前準備処理としてビットマップデータ転送単位で印字不可能データを特定する（S１４０１）。これは、印刷所要時間内に展開できないブロックラインを特定することである。ただし図４の手順では、着目ブロックラインが印刷所要時間内に展開できない場合に限ってステップＳ４０５が実行されるので、特に印刷所要時間内に展開できないブロックラインを特定する処理はなくともよい。
【００５１】
次に、Ｓ１４０１で特定したブロックライン中で画像生成処理に最も時間のかかるオブジェクトを特定する（Ｓ１４０２）。これは、各ブロックのブロック属性を参照し、図６に示した属性値に対応する処理時間に基づいて判定する。たとえばビット４（２５７以上のエッジを持つベクタオブジェクト）が最も処理時間の長いオブジェクトであるから、もしも着目ブロックラインにこの属性を持つブロックが有れば、当該ブロックが変換の対象となる。もちろんオブジェクトが複数のブロックにまたがっていれば、それら複数のブロックが対象となる。
【００５２】
次に、Ｓ１４０２で特定した、最も処理に時間のかかるオブジェクトが画像オブジェクトか否かを判断する（Ｓ１４０３）。画像オブジェクト以外のオブジェクトであれば、そのブロックの画像データはビットマップデータに変換（Ｓ１４０８）しておく。Ｓ１４０３で画像オブジェクトと判断した場合には、回転もしくは変倍（拡大／縮小）変換を伴うかを判断（Ｓ１４０４）する。回転もしくは変倍がある場合には、回転処理または変倍処理を行う（Ｓ１４０５）。
【００５３】
図１５は印字データに変換する概念を示した図である。画像オブジェクト１５０１について回転／拡大処理１５０２を行うことで、図５に示した回転拡大画像オブジェクト５０５を単純画像オブジェクト１５０３に変換する。同様に、画像オブジェクト１５０４に対して縮小処理１５０５をすることで、図５に示した縮小画像オブジェクト５０４を単純画像オブジェクト１５０６に変換する。
【００５４】
次に、複数の画像オブジェクトが存在するかを判断（Ｓ１４０６）し、存在する場合には複数の画像オブジェクトの合成処理（Ｓ１４０７）を行って、単一の画像オブジェクトに変換する。図１５の例では、単純イメージ（１５０３、１５０６）を合成１５０７することで、単体単純イメージ１５０８へ変換する。
【００５５】
次に、各ブロックの画像データを、上記変換したオブジェクトによって更新する（Ｓ１４０９）。たとえば複数の画像オブジェクトが合成されて単一画像オブジェクトになったなら、その合成前の複数の画像オブジェクトに代えて、合成後の単一画像オブジェクトが当該ブロックに含まれるよう、画像データを更新する。更新された画像データが適合的画像データとなる。さらに、変換後の画像データに合わせて、ブロック属性情報を変更（Ｓ１４１０）する。
【００５６】
図１６はＳ１４１０で変更したブロック属性情報を示した例である。縮小イメージ５０４と回転／拡大イメージ５０５を単体イメージ１５０８へ変換したため、ブロック属性１６００で示すように単体イメージのブロック属性情報（２０ｈ）となっている。
【００５７】
次に、Ｓ１４１０で変更したブロック属性情報を元に、画像生成処理予測（Ｓ１４１１）を行い、画像生成処理予測時間がプリンタ部１１４での印字時間に対して小さいかの判断（Ｓ１４１２）を行う。小さければ処理を終了し、その時点におけるブロック化済み画像データを適合的画像データとする。もし超過していれば、ステップＳ１４０１に戻り、次に処理の予測時間が長いブロックを選択して、上述と同様の変換処理を施す。
【００５８】
図１７は準備処理（Ｓ４０５）後の処理割り振りを示す概念図である。図７で示した注目ブロックライン７０１を画像生成部３０２、３０３、３０４、３０５での処理時間に注目して平準化して振り分けテーブル１７０１を作成した例である。処理時間に注目して平準化した概念を１７００で示す。
【００５９】
こうして、１ブロックラインのビットマップデータの生成が、１ブロックラインの印刷所要時間に間に合わずアンダーランを生じるおそれがある場合、当該ブロックラインの画像データを、ビットマップデータの生成処理時間が短縮できる形式に変換する。これにより、アンダーランを防止できる。この発明によって、ビットマップデータでのページスプールを必要としない省メモリ構成での画像処理装置が提供可能となる。
【００６０】
［第２の実施の形態］
第１の実施の形態では、準備処理として画像データを特定したが第２の実施の形態では、画像データではなく、ブロック単位で画像を特定し変換することを特徴とする。
【００６１】
図１８は図４で示した準備処理Ｓ４０５の詳細を示したフロー図である。図７で示した注目ブロックライン７０１の準備処理を例に説明する。
【００６２】
ＣＰＵ２０１は、前準備処理としてビットマップデータ転送単位で印字不可能データを特定する（S１４０１）。これは、印刷所要時間内に展開できないブロックラインを特定することである。ただし図４の手順では、着目ブロックラインが印刷所要時間内に展開できない場合に限ってステップＳ４０５が実行されるので、特に印刷所要時間内に展開できないブロックラインを特定する処理はなくともよい。
【００６３】
次に、Ｓ１４０１で特定した中で画像生成処理に最も時間のかかるブロックを特定する（Ｓ１８０１）。これは、各ブロックのブロック属性を参照し、図６に示した属性値に対応する処理時間をブロック単位で積算して、互いに比較して判定する。ただし、図４のステップＳ４０３において求めた処理時間を保存してあるならその値を参照すればよい。
【００６４】
次に、Ｓ１４０２で特定した、最も処理に時間のかかるブロックのブロック属性を参照して、そこに含まれるオブジェクトが画像オブジェクトか否かを判断する（Ｓ１４０３）。画像オブジェクト以外のオブジェクトであれば、そのブロックの画像データはビットマップデータに変換（Ｓ１４０８）しておく。Ｓ１４０３で画像オブジェクトと判断した場合には、回転もしくは変倍（拡大／縮小）変換を伴うかを判断（Ｓ１４０４）する。回転もしくは変倍がある場合には、回転処理または変倍処理を行う（Ｓ１４０５）。
【００６５】
図１５は印字データに変換する概念を示した図である。画像オブジェクト１５０１について回転／拡大処理１５０２を行うことで、図５に示した回転拡大画像オブジェクト５０５を単純画像オブジェクト１５０３に変換する。同様に、画像オブジェクト１５０４に対して縮小処理１５０５をすることで、図５に示した縮小画像オブジェクト５０４を単純画像オブジェクト１５０６に変換する。
【００６６】
次に、複数の画像オブジェクトが存在するかを判断（Ｓ１４０６）し、存在する場合には複数の画像オブジェクトの合成処理（Ｓ１４０７）を行って、単一の画像オブジェクトに変換する。図１５の例では、単純イメージ（１５０３、１５０６）を合成１５０７することで、単体単純イメージ１５０８へ変換する。
【００６７】
次に、各ブロックの画像データを、上記変換したオブジェクトによって更新する（Ｓ１４０９）。たとえば複数の画像オブジェクトが合成されて単一画像オブジェクトになったなら、その合成前の複数の画像オブジェクトに代えて、合成後の単一画像オブジェクトが当該ブロックに含まれるよう、画像データを更新する。更新された画像データが適合的画像データとなる。さらに、変換後の画像データに合わせて、ブロック属性情報を変更（Ｓ１４１０）する。
【００６８】
図１６はＳ１４１０で変更したブロック属性情報を示した例である。縮小イメージ５０４と回転／拡大イメージ５０５を単体イメージ１５０８へ変換したため、ブロック属性１６００で示すように単体イメージのブロック属性情報（２０ｈ）となっている。
【００６９】
次に、Ｓ１４１０で変更したブロック属性情報を元に、画像生成処理予測（Ｓ１４１１）を行い、画像生成処理予測時間がプリンタ部１１４での印字時間に対して小さいかの判断（Ｓ１４１２）を行う。小さければ処理を終了し、その時点におけるブロック化済み画像データを適合的画像データとする。もし超過していれば、ステップＳ１４０１に戻り、次に処理の予測時間が長いブロックを選択して、上述と同様の変換処理を施す。
【００７０】
本実施形態によって、ビットマップデータでのページスプールを必要としない省メモリ構成での画像処理装置が提供可能となる。さらに、ビットマップデータを作成するための画像生成用データを印字に合わせることで省メモリ化が可能となる。
【００７１】
［他の実施形態］
なお本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。また本発明の目的は、前述の実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータが記憶媒体に格納されたプログラムを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラム自体が前述した実施形態の機能を実現することになり、そのプログラム自体およびプログラムを記憶した記憶媒体は本発明を構成することになる。
【００７２】
また、本発明には、プログラムの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。さらに、記憶媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた場合についても、本発明は適用される。その場合、書き込まれたプログラムの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される。
【図面の簡単な説明】
【００７３】
【図１】本実施形態におけるシステムの構成
【図２】本実施形態におけるコントローラを示すブロック図
【図３】本実施形態における画像生成処理部を詳細に示したブロック図
【図４】本実施形態における画像生成用データ作成処理を示すフロー図
【図５】本実施形態における画像データの一例を示す概念図
【図６】本実施形態におけるブロック属性情報テーブル例を示す図
【図７】図５で示した画像データ例のすべてのブロックの属性判定結果を示す概念図
【図８】本実施形態における処理割り振りを示す概念図
【図９】本実施形態における画像生成処理を示すフロー図
【図１０】本実施形態における画像生成用データ振り分け処理の詳細を示したフロー図
【図１１】本実施形態における振り分けした概念図
【図１２】本実施形態における画像生成処理の詳細を示したフロー図
【図１３】本実施形態における出力処理の詳細を示したフロー図
【図１４】本実施形態における準備処理の詳細を示したフロー図
【図１５】本実施形態における印字データに変換する概念図
【図１６】本実施形態におけるブロックの属性判定結果を示す概念図
【図１７】本実施形態における処理割り振りを示す概念図
【図１８】本実施形態２における準備処理の詳細を示したフロー図
【図１】
2010111099.tif 000003
【図２】
2010111099.tif 000004
【図３】
2010111099.tif 000005
【図４】
2010111099.tif 000006
【図５】
2010111099.tif 000007
【図６】
2010111099.tif 000008
【図７】
2010111099.tif 000009
【図８】
2010111099.tif 000010
【図９】
2010111099.tif 000011
【図１０】
2010111099.tif 000012
【図１１】
2010111099.tif 000013
【図１２】
2010111099.tif 000014
【図１３】
2010111099.tif 000015
【図１４】
2010111099.tif 000016
【図１５】
2010111099.tif 000017
【図１６】
2010111099.tif 000018
【図１７】
2010111099.tif 000019
【図１８】
2010111099.tif 000020