(57)【要約】      （修正有）【課題】  外部メモリを使用しつつ複数Ｎ色の画像データに対する画像処理を色数Ｎより少ないＭ個のプロセッサで実行する場合に、少なくとも１つのプロセッサの処理速度を向上させ、画像処理全体を高速化すること。【解決手段】  スケジュール設定部１１ｂは、所定の色の画像データを１つのプロセッサに対して固定的に割り当て、その他の色の画像データをプロセッサの負荷に応じて動的に割り当てる。また、少なくとも１つのＨＴＣＰＵ２１におけるハーフトーン処理部２１ａは、固定的に割り当てられた色の画像データに対する演算で生成される中間データを内蔵メモリ２１ｂに一時的に格納しつつ画像処理を実行する。【選択図】  図１
2006133840.tif 000002
【特許請求の範囲】
【請求項１】
複数Ｎ色の画像データに対する画像処理を、色毎に分割された画像データに対して実行
する、色数Ｎより少ないＭ個のプロセッサと、
上記複数Ｎ色の画像データを記憶する外部メモリと、
上記プロセッサの負荷に応じて動的に上記プロセッサに色ごとの画像データを割り当て
る負荷分散手段とを備え、
上記負荷分散手段は、一部の色の画像データを１つのプロセッサに対して固定的に割り
当て、その他の色の画像データを上記プロセッサの負荷に応じて動的に割り当て、
上記Ｍ個のプロセッサのうちの少なくとも１つは、上記画像データに対して所定の演算
を施す演算部と、キャッシュとは別のデータ格納用の内部メモリとを有し、
上記演算部は、固定的に割り当てられた色の画像データに対する演算で生成される中間
データを上記内部メモリに一時的に格納しつつ上記画像処理を実行すること、
を特徴とする画像処理装置。
【請求項２】
前記演算部は、画像データ内の画素の配列方向に沿って順番に所定の演算を施していき
ある画素に対する演算結果が後続のいずれかの画素の演算に反映される画像処理を実行す
ることを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記画像処理は、誤差拡散法によるハーフトーン処理であり、
前記演算部は、固定的に割り当てられた色の画像データに対する誤差拡散法によるハー
フトーン処理で生成される誤差データを前記内部メモリに一時的に格納し、固定的に割り
当てられた色以外の色の画像データに対する誤差拡散法によるハーフトーン処理で生成さ
れる誤差データを前記外部メモリに一時的に格納すること、
を特徴とする請求項２記載の画像処理装置。
【請求項４】
所定サイズのブロックごとに各プロセッサにより画像処理が施される色を指定する分散
スケジュールデータを含むスケジュールテーブルを備え、
前記演算部は、上記スケジュールテーブルを参照し、ブロックごとに割り当てられた１
または複数の色を特定し、その色の画像データに対して所定の演算を施し、
前記スケジュールテーブルは、固定的に割り当てられる色がすべてのブロックについて
同一のプロセッサに割り当てられた分散スケジュールデータを含むこと、
を特徴とする請求項１記載の画像処理装置。
【請求項５】
前記スケジュールテーブルは、２以上の所定の数Ｐ個のブロック分の分散スケジュール
データを含み、
前記演算部は、前記Ｐ個のブロック分の同一の分散スケジュールデータを繰り返して参
照して、前記Ｐ個より多いブロックの画像データに対して所定の演算を施すこと、
を特徴とする請求項４記載の画像処理装置。
【請求項６】
前記負荷分散手段は、２以上の所定の数Ｐのブロックを処理する間の各プロセッサの空
き時間、および各色の画像データのブロックあたりの計算量または処理時間に基づいて、
上記Ｐ個における各ブロックについて、固定的に割り当てられた色以外の各色をいずれか
のプロセッサに割り当て、上記Ｐ個のブロック分の分散スケジュールデータを生成するこ
とを特徴とする請求項１または請求項４記載の画像処理装置。
【請求項７】
前記内部メモリは、バスを介さずに前記演算部に接続され、キャッシュと同速度のメモ
リであることを特徴とする請求項１記載の画像処理装置。
【請求項８】
ブロックあたりの計算量または処理時間が最大の色が、固定的に割り当てられる色とさ
れることを特徴とする請求項１記載の画像処理装置。
【請求項９】
ブロックあたりの計算量または処理時間が最小の色以外の１または複数の色が、固定的
に割り当てられる色とされることを特徴とする請求項１記載の画像処理装置。
【請求項１０】
請求項１から請求項９のうちのいずれか１項記載の画像処理装置を備え、
その画像処理装置により処理された画像データに基づいて印刷を行うこと、
を特徴とする印刷装置。
【請求項１１】
複数Ｎ色の画像データに対する画像処理を色数Ｎより少ないＭ個のプロセッサで実行す
る画像処理方法において、
上記プロセッサの負荷に応じて動的に上記プロセッサに色ごとの画像データを割り当て
る場合に、一部の色の画像データを１つのプロセッサに対して固定的に割り当て、その他
の色の画像データを上記プロセッサの負荷に応じて動的に割り当てるステップと、
固定的に割り当てられた色の画像データに対する演算で生成される中間データを上記プ
ロセッサの内部メモリに一時的に格納しつつ上記画像処理を実行するステップと、
備えることを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数Ｎ色の画像データに対する画像処理を色数Ｎより少ないＭ個のプロセッ
サで実行する画像処理装置、印刷装置および画像処理方法に関する。
【背景技術】
【０００２】
複数のプロセッサを使用して画像処理を実行する場合、一連の異なる複数の処理を複数
のプロセッサに割り当てて実行する時間的並列方式、１つの処理を複数のプロセッサに割
り当てて同種の処理を同時に実行する空間的並列方式、およびそれらを組み合せた方式が
ある。
【０００３】
このような場合、各プロセッサへの負荷の割り当てが均等ではないと、複数のプロセッ
サ全体の性能は最も負荷が高いプロセッサの性能に制限され、他のプロセッサに空き時間
が生じる場合がある。処理に要する時間が常に一定であり既知である場合には複数のプロ
セッサへの均等な負荷分散は比較的簡単であるが、処理に要する時間が処理対象の画像デ
ータや各種パラメータにより設定される処理条件に応じて変動する場合には複数のプロセ
ッサへの均等な負荷分散は簡単ではない。
【０００４】
前者の場合の負荷分散は静的負荷分散と呼ばれ、後者の場合の負荷分散は動的負荷分散
と呼ばれる。動的負荷分散では、画像処理を行う際に、各プロセッサに割り当てる処理量
が動的に変更される（例えば特許文献１，２，３参照）。
【０００５】
特許文献１の技術では、ある処理要求が発生した時点で、負荷の軽いプロセッサが特定
され、そのプロセッサに処理が割り当てられる。また、特許文献２，３の技術では、ある
処理要求が発生すると、その処理が複数の処理に分割され、分割後の複数の処理が複数の
プロセッサに割り当てられる。
【０００６】
また、特許文献２，３における画像処理装置では、複数のプロセッサがリード／ライト
可能な共有メモリに画像データが格納される。
【０００７】
【特許文献１】特開平６−２７４６０８号公報（明細書段落００４６，００４７等）
【特許文献２】特開平８−４４６７８号公報（明細書段落００２１等）
【特許文献３】特開平５−３２４５８３号公報（明細書段落００１６，００１７等）
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上述のような共有メモリ型並列処理装置において、ある画素についての演算で生成され
た中間データを他の画素についての演算で使用する場合において、ある画素についての演
算が割り当てられたプロセッサと他の画素についての演算が割り当てられたプロセッサと
が異なるとき、ある画素についての演算を実行するプロセッサが、中間データが発生する
度に、その中間データを、バスを介して共有メモリにライトし、その後、他のプロセッサ
が、他の画素についての演算を実行する際に必要に応じて、その中間データを、バスを介
して共有メモリからリードする。
【０００９】
複数のプロセッサに接続される共有メモリには、各プロセッサ内のメモリ素子に比べ低
速大容量のメモリ素子が使用されるため、各画素についての演算の際に低速な共有メモリ
にリード／ライトすることになり、処理速度を向上させることが困難であるという問題が
ある。
【００１０】
なお、各プロセッサ内にキャッシュなどの高速なメモリが設けられていても、あるプロ
セッサのキャッシュ内のデータを他のプロセッサで使用する場合には、あるプロセッサが
キャッシュ内のデータを共有メモリへライトバックし、その後、他のプロセッサがそのデ
ータを共有メモリからリードする必要があるため、上記の問題は解消されない。
【００１１】
本発明は、上記の問題に鑑みてなされたものであり、外部メモリを使用しつつ複数Ｎ色
の画像データに対する画像処理を色数Ｎより少ないＭ個のプロセッサで実行する場合に、
少なくとも１つのプロセッサの処理速度を向上させ、画像処理全体を高速化する画像処理
装置および画像処理方法を得ることを目的とする。
【課題を解決するための手段】
【００１２】
上記の課題を解決するために、本発明では以下のようにした。
【００１３】
本発明に係る画像処理装置は、複数Ｎ色の画像データに対する画像処理を、色毎に分割
された画像データに対して実行する、色数Ｎより少ないＭ個のプロセッサと、複数Ｎ色の
画像データを記憶する外部メモリと、プロセッサの負荷に応じて動的にプロセッサに色ご
との画像データを割り当てる負荷分散手段とを備える。そして、負荷分散手段は、一部の
色の画像データを１つのプロセッサに対して固定的に割り当て、その他の色の画像データ
をプロセッサの負荷に応じて動的に割り当て、Ｍ個のプロセッサのうちの少なくとも１つ
は、画像データに対して所定の演算を施す演算部と、キャッシュとは別のデータ格納用の
内部メモリとを有する。さらに、演算部は、固定的に割り当てられた色の画像データに対
する演算で生成される中間データを内部メモリに一時的に格納しつつ画像処理を実行する
。
【００１４】
これにより、一部の色をあるプロセッサに固定的に割り当てることでその色の演算につ
いての中間データを内部メモリに記憶させておくことができるため、外部メモリへのアク
セス回数が減る。これに起因して、外部メモリを使用しつつ複数Ｎ色の画像データに対す
る画像処理を色数Ｎより少ないＭ個のプロセッサで実行する場合に、少なくとも１つのプ
ロセッサの処理速度を向上させ、画像処理全体を高速化することができる。
【００１５】
また、本発明に係る画像処理装置は、上記の画像処理装置に加え、次のようにしてもよ
い。つまり、演算部は、画像データ内の画素の配列方向に沿って順番に所定の演算を施し
ていきある画素に対する演算結果が後続のいずれかの画素の演算に反映される画像処理を
実行する。
【００１６】
これにより、固定的に割り当てられた色について演算中に発生し後続の演算で使用され
る中間データを内部メモリから読み出せるため、外部メモリへのアクセス回数が減る。こ
れに起因して、外部メモリを使用しつつ複数Ｎ色の画像データに対する画像処理を色数Ｎ
より少ないＭ個のプロセッサで実行する場合に、少なくとも１つのプロセッサの処理速度
を向上させ、画像処理全体を高速化することができる。
【００１７】
また、本発明に係る画像処理装置は、上記の画像処理装置のいずれかに加え、次のよう
にしてもよい。つまり、画像処理は、誤差拡散法によるハーフトーン処理であり、演算部
は、固定的に割り当てられた色の画像データに対する誤差拡散法によるハーフトーン処理
で生成される誤差データを内部メモリに一時的に格納し、固定的に割り当てられた色以外
の色の画像データに対する誤差拡散法によるハーフトーン処理で生成される誤差データを
外部メモリに一時的に格納する。
【００１８】
これにより、１画素の画像データを二値化する度に周辺画素の誤差データの値が変動し
誤差データへのアクセスが頻繁に発生する誤差拡散法によるハーフトーン処理に関し、誤
差データを内部メモリに配置させることができるため、ハーフトーン処理全体を高速化す
ることができる。
【００１９】
また、本発明に係る画像処理装置は、上記の画像処理装置のいずれかに加え、次のよう
にしてもよい。つまり、所定サイズのブロックごとに各プロセッサにより画像処理が施さ
れる色を指定する分散スケジュールデータを含むスケジュールテーブルが設けられる。そ
して、演算部は、スケジュールテーブルを参照し、ブロックごとに割り当てられた１また
は複数の色を特定し、その色の画像データに対して所定の演算を施す。そして、そのスケ
ジュールテーブルは、固定的に割り当てられる色がすべてのブロックについて同一のプロ
セッサに割り当てられた分散スケジュールデータを含む。
【００２０】
これにより、一部の色を固定的に割り当てたとしても、動的に複数のプロセッサへの均
等な負荷分散が可能となり、ハーフトーン処理全体を高速化することができる。
【００２１】
また、本発明に係る画像処理装置は、上記の画像処理装置のいずれかに加え、次のよう
にしてもよい。つまり、スケジュールテーブルは、２以上の所定の数Ｐ個のブロック分の
分散スケジュールデータを含み、演算部は、Ｐ個のブロック分の同一の分散スケジュール
データを繰り返して参照して、Ｐ個より多いブロックの画像データに対して所定の演算を
施す。
【００２２】
これにより、周期的に変動する負荷に対して適切な分散スケジュールデータを設定でき
、適切な負荷分散を実行することができる。
【００２３】
また、本発明に係る画像処理装置は、上記の画像処理装置のいずれかに加え、次のよう
にしてもよい。つまり、負荷分散手段は、２以上の所定の数Ｐのブロックを処理する間の
各プロセッサの空き時間、および各色の画像データのブロックあたりの計算量または処理
時間に基づいて、Ｐ個における各ブロックについて、固定的に割り当てられた色以外の各
色をいずれかのプロセッサに割り当て、Ｐ個のブロック分の分散スケジュールデータを生
成する。
【００２４】
これにより、周期的に変動する負荷に対して適切な負荷分散を実行することができる。
【００２５】
また、本発明に係る画像処理装置は、上記の画像処理装置のいずれかに加え、次のよう
にしてもよい。つまり、内部メモリは、バスを介さずに演算部に接続され、キャッシュと
同速度のメモリである。
【００２６】
これにより、外部メモリに比べ内部メモリへのアクセス速度が１０倍から数十倍となる
ため、固定的に割り当てられた色についての画像処理が非常に高速に実行される。なお、
アクセス速度は、データのリード／ライトに必要なクロック数を意味する。
【００２７】
また、本発明に係る画像処理装置は、上記の画像処理装置のいずれかに加え、次のよう
にしてもよい。つまり、ブロックあたりの計算量または処理時間が最大の色が、固定的に
割り当てられる色とされる。
【００２８】
これにより、分割された処理のうち、分散処理の際にボトルネックになり易い、計算量
または処理時間が最大である処理が高速化されるため、画像処理全体が効率よく高速化さ
れる。
【００２９】
また、本発明に係る画像処理装置は、上記の画像処理装置のいずれかに加え、次のよう
にしてもよい。つまり、ブロックあたりの計算量または処理時間が最小の色以外の１また
は複数の色が、固定的に割り当てられる色とされる。
【００３０】
これにより、分割された処理のうち、分散処理の際にボトルネックになり易い処理が高
速化されるため、画像処理全体が効率よく高速化される。
【００３１】
本発明に係る印刷装置は、上記の画像処理装置のいずれかを備え、その画像処理装置に
より処理された画像データに基づいて印刷を行う。
【００３２】
これにより、印刷実行前に必要な画像処理を高速に実行することができ、ユーザやプロ
グラムからの指令を受けてから印刷を完了するまでの時間を短くすることができる。
【００３３】
本発明に係る画像処理方法は、複数Ｎ色の画像データに対する画像処理を色数Ｎより少
ないＭ個のプロセッサで実行する画像処理方法であり、プロセッサの負荷に応じて動的に
プロセッサに色ごとの画像データを割り当てる場合に、一部の色の画像データを１つのプ
ロセッサに対して固定的に割り当て、その他の色の画像データをプロセッサの負荷に応じ
て動的に割り当てるステップと、固定的に割り当てられた色の画像データに対する演算で
生成される中間データをプロセッサの内部メモリに一時的に格納しつつ画像処理を実行す
るステップと備える。
【００３４】
これにより、一部の色をあるプロセッサに固定的に割り当てることでその色の演算につ
いての中間データを内部メモリに記憶させておくことができるため、外部メモリへのアク
セス回数が減る。これに起因して、外部メモリを使用しつつ複数Ｎ色の画像データに対す
る画像処理を色数Ｎより少ないＭ個のプロセッサで実行する場合に、少なくとも１つのプ
ロセッサの処理速度を向上させ、画像処理全体を高速化することができる。
【発明を実施するための最良の形態】
【００３５】
以下、図に基づいて本発明の実施の形態を説明する。
【００３６】
図１は、本発明の実施の形態に係る画像処理装置の構成を示すブロック図である。図１
において、色変換ＣＰＵ１１は、画像データの色座標を変換する色変換処理を実行するた
めのＣＰＵ（Central Processing Unit ）である。なお、この実施の形態では、画像デー
タが３色のＲＧＢデータから７色のＣＹＭＫデータ（シアンＣ，イエローＹ，マゼンタＭ
，ブラックＫ，レッドＲ，ブルーＢ，クリア（つやだし）ＣＬ）へ変換される。
【００３７】
図２は、画像データの一例を示す図である。図２（Ａ）は、複数の画素ライン１０１ａ
，１０１ｂ，１０１ｃを含む画像１０１を示す。図２（Ｂ）は、図２（Ａ）に対応する画
像データ１１１である。画像データ１１１では、先頭に、画像１０１上端の画素ライン１
０１ａに対応する１ライン分のＲＧＢデータ１１１ａが配置され、中間に、画像１０１の
上端と下端の間の画素ライン１０１ｂに対応する１ライン分のＲＧＢデータ１１１ｂが配
置され、最後に、画像１０１下端の画素ライン１０１ｃに対応する１ライン分のＲＧＢデ
ータ１１１ｃが配置される。
【００３８】
図３は、本発明の実施の形態における色変換後の画像データを示す図である。図３に示
すように、この実施の形態では、色変換後の７色の画像データは、１ブロックごとに出力
される。また、この実施の形態では、１ブロックは、縦１画素、横２５６画素の領域とさ
れる。
【００３９】
図１に戻り、色変換ＣＰＵ１１において、色変換処理部１１ａは、図示せぬ色変換プロ
グラムを実行することにより実現される処理部であって、画像データの色座標を変換する
色変換処理を実行する。
【００４０】
また、スケジュール設定部１１ｂは、図示せぬスケジュール設定プログラムを実行する
ことにより実現される処理部であって、後述のハーフトーンＣＰＵ２１〜２４の処理スケ
ジュールを決定し設定する。
【００４１】
また、ハーフトーンＣＰＵ（以下、ＨＴＣＰＵという）２１〜２４は、複数Ｎ色の画像
データに対するハーフトーン処理を、色毎に分割された画像データに対して実行する、色
数Ｎより少ないＭ個のプロセッサである。各ＨＴＣＰＵ２ｉ（ｉ＝１，・・・，４）は、
バッファとして使用可能な内蔵メモリ２ｉｂを有するＣＰＵである。
【００４２】
なお、この実施の形態では、Ｎ＝７、Ｍ＝４である。つまり、この実施の形態では、画
像データはシアンＣ、マゼンタＭ、ブラックＫ、レッドＲ、ブルーＢ、イエローＹおよび
クリアＣＬの７色に分割される。さらに、この実施の形態では、７色のうちのシアンＣが
ＨＴＣＰＵ２１に固定的に割り当てられ、ＨＴＣＰＵ２１のみがシアンＣのハーフトーン
処理を実行する。また、７色のうちのマゼンタＭがＨＴＣＰＵ２２に固定的に割り当てら
れ、ＨＴＣＰＵ２２のみがマゼンタＭのハーフトーン処理を実行する。また、７色のうち
のレッドＲがＨＴＣＰＵ２３に固定的に割り当てられ、ＨＴＣＰＵ２３のみがレッドＲの
ハーフトーン処理を実行する。また、７色のうちのブルーＢがＨＴＣＰＵ２４に固定的に
割り当てられ、ＨＴＣＰＵ２４のみがブルーＢのハーフトーン処理を実行する。
【００４３】
ハーフトーン処理は、色毎に独立して実行可能であるので、各ＨＴＣＰＵ２ｉ（ｉ＝１
，・・・，４）は、１または複数の色のデータに対してハーフトーン処理を実行する。
【００４４】
この実施の形態では、ハーフトーン処理として、ディザ法による二値化、または誤差拡
散法による二値化が実行される。
【００４５】
ディザ法は、注目画素の値と所定の閾値とを比較して、注目画素の値を二値化する方法
である。誤差拡散法は、注目画素の値および周辺画素から二値化時に拡散された誤差デー
タの和と所定の閾値とを比較して、注目画素の値を二値化し、注目画素の値および周辺画
素から二値化時に拡散された誤差データの和と二値化後の値との差分である誤差データを
所定の分布で周辺画素に拡散させる方法である。
【００４６】
なお、この実施の形態では、シアンＣ、マゼンタＭ、ブラックＫ、レッドＲおよびブル
ーＢの５色のデータに対しては誤差拡散法によるハーフトーン処理が実行され、イエロー
ＹおよびクリアＣＬの２色のデータに対してはディザ法によるハーフトーン処理が実行さ
れる。
【００４７】
ＨＴＣＰＵ２ｉ（ｉ＝１，・・・，４）において、ハーフトーン処理部２ｉａは、図示
せぬハーフトーン処理プログラムを実行することにより実現される処理部であって、１ま
たは複数の色のデータに対して、ディザ法または誤差拡散法の演算を施す演算部である。
また、内蔵ＲＡＭ２ｉｂは、図示せぬキャッシュとは別に設けられたデータ格納用の内部
メモリである。内蔵ＲＡＭ２ｉｂは、キャッシュ動作せず、プログラムに基づいてデータ
のリード／ライトが可能な記憶領域である。ただし、他のＣＰＵから内蔵ＲＡＭ２ｉｂに
アクセスすることはできない。内蔵ＲＡＭ２ｉｂは、ハーフトーン処理部２ｉａと同一の
チップ上に形成され、スタティックＲＡＭで構成され、ハーフトーン処理部２ｉａからの
アクセスに対してキャッシュと同程度のリード／ライト速度を有する。内蔵ＲＡＭ２ｉｂ
は、外部メモリであるＲＡＭ３１より高速にアクセス可能であるが、ＲＡＭ３１に比べデ
ータ容量は少ない。
【００４８】
内蔵ＲＡＭ２ｉｂには、ＨＴＣＰＵ２ｉに固定的に割り当てられた色に対する誤差拡散
法による二値化演算の際に発生する誤差データ（中間データ）を格納するための誤差バッ
ファ２ｉｃが設けられる。この実施の形態では、誤差バッファ２ｉｃは、誤差拡散法によ
る二値化を行う各色につき１つ設けられ、１ラインの画素数より１だけ大きい数分の誤差
データのための容量を有する。なお、誤差バッファ２ｉｃの容量は、誤差拡散法の方式、
誤差拡散パターン（誤差拡散の対象となる周辺画素と各周辺画素に拡散させる誤差の割合
）などに応じて設定される。
【００４９】
また、ＲＡＭ３１は、大容量のダイナミックＲＡＭで構成された外部メモリである。Ｒ
ＡＭ３１において、スケジュール格納領域３１ａは、所定サイズのブロックごとに各ＨＴ
ＣＰＵ２ｉにより画像処理が施される色を指定する分散スケジュールデータを含むスケジ
ュールテーブルを格納される領域である。
【００５０】
図４は、本発明の実施の形態におけるスケジュールテーブルの一例を示す図である。ス
ケジュールテーブルは、２以上の所定の数Ｐ個のブロック分の分散スケジュールデータを
含む。図４に示すスケジュールテーブルは、４個のブロック分の分散スケジュールデータ
を含む。
【００５１】
図４に示すスケジュールテーブルでは、ＨＴＣＰＵ２１には、シアンＣに対するハーフ
トーン処理が固定的に割り当てられている。つまり、すべてのブロックのシアンＣに対す
るハーフトーン処理は、ＨＴＣＰＵ２１〜２４の負荷状況に拘わらず常に、ＨＴＣＰＵ２
１に割り当てられる。
【００５２】
また、図４では、ＨＴＣＰＵ２２には、マゼンタＭに対するハーフトーン処理が固定的
に割り当てられている。つまり、すべてのブロックのマゼンタＭに対するハーフトーン処
理は、ＨＴＣＰＵ２１〜２４の負荷状況に拘わらず常に、ＨＴＣＰＵ２２に割り当てられ
る。
【００５３】
また、図４では、ＨＴＣＰＵ２３には、レッドＲに対するハーフトーン処理が固定的に
割り当てられている。つまり、すべてのブロックのレッドＲに対するハーフトーン処理は
、ＨＴＣＰＵ２１〜２４の負荷状況に拘わらず常に、ＨＴＣＰＵ２３に割り当てられる。
【００５４】
また、図４では、ＨＴＣＰＵ２４には、ブルーＢに対するハーフトーン処理が固定的に
割り当てられている。つまり、すべてのブロックのブルーＢに対するハーフトーン処理は
、ＨＴＣＰＵ２１〜２４の負荷状況に拘わらず常に、ＨＴＣＰＵ２４に割り当てられる。
【００５５】
また、ブラックＫ、イエローＹおよびクリアＬに対するハーフトーン処理は、ブロック
ごとに、ＨＴＣＰＵ２１〜２４のいずれかに負荷状況に応じて浮動的に割り当てられる。
図４では、ブロック番号（色変換後の画像データの先頭のブロックからのシリアル番号）
ｉを所定の数（ここでは、４）で除算したときの剰余ＭＯＤが０であるブロックについて
は、ブラックＫがＨＴＣＰＵ２１に、イエローＹがＨＴＣＰＵ２２に、クリアＬがＨＴＣ
ＰＵ２３に割り当てられる。また、図４では、剰余ＭＯＤが１であるブロックについては
、ブラックＫがＨＴＣＰＵ２２に、イエローＹがＨＴＣＰＵ２３に、クリアＬがＨＴＣＰ
Ｕ２４に割り当てられる。また、図４では、剰余ＭＯＤが２であるブロックについては、
ブラックＫがＨＴＣＰＵ２３に、イエローＹがＨＴＣＰＵ２４に、クリアＬがＨＴＣＰＵ
２１に割り当てられる。また、図４では、剰余ＭＯＤが３であるブロックについては、ブ
ラックＫがＨＴＣＰＵ２４に、イエローＹがＨＴＣＰＵ２１に、クリアＬがＨＴＣＰＵ２
２に割り当てられる。
【００５６】
また、スケジュールテーブルでは、各ブロックの各ＨＴＣＰＵ２ｉについて、割り当て
られた色の画像データに対する処理の順番も設定される。ただし、この順番は、優先順位
であり、例えば処理結果が処理の順番に依存することに起因して順番が早い色の処理が開
始できない場合には、順番の遅い色の処理が先に実行される。
【００５７】
図１に戻り、ＲＡＭ３１の画像データ格納領域３１ｂは、色変換処理の対象となる画像
データ（ここではＲＧＢデータ）を格納される領域である。
【００５８】
また、色変換済み画像データ格納領域３１ｃは、色変換後の画像データ（ここでは７色
のＣＹＭＫデータ）を格納される領域である。図５は、本発明の実施の形態における色変
換済み画像データ格納領域３１ｃの一例を示す図である。図５に示す色変換済み画像デー
タ格納領域３１ｃは、４つのバッファ４１ａ，４１ｂ，４１ｃ，４１ｄを有する。各バッ
ファ４１ａ，４１ｂ，４１ｃ，４１ｄには１ブロック分の７色の画像データが格納される
。
【００５９】
また、ステータスデータ格納領域３１ｄは、色変換済み画像データ格納領域３１ｃのバ
ッファ４１ａ〜４１ｄのデータ格納状況を示すステータスデータを格納される領域である
。図６は、本発明の実施の形態におけるステータスデータ格納領域３１ｄの一例を示す図
である。図６に示すように、ステータスデータ５１は、各バッファ４１ａ，４１ｂ，４１
ｃ，４１ｄに１ブロック分の画像データが格納されているか否かを示すデータである。例
えば図５に示すようにバッファ４１ａ，４１ｂ，４１ｃのみに画像データが格納されてい
る場合には、図６に示すように、バッファ４１ａ，４１ｂ，４１ｃの格納状況は「データ
あり」とされ、バッファ４１ｄの格納状況は「データなし」とされる。ステータスデータ
５１は、１つのバッファにつき、４つのＨＴＣＰＵ２１〜２４のそれぞれにより処理され
る画像データが格納されているか否かを示す４つのフラグを有する。
【００６０】
また、誤差バッファ３１ｅは、ＨＴＣＰＵ２１〜２４に固定的に割り当てられた色以外
の色に対する誤差拡散法による二値化演算の際に発生する誤差データ（中間データ）を格
納される領域である。この実施の形態では、ＨＴＣＰＵ２１〜２４に固定的に割り当てら
れた色はシアンＣ、マゼンタＭ、レッドＲおよびブルーＢであり、それ以外の色はブラッ
クＫ、イエローＹおよびクリアＬ（ＣＬ）である。そして、ブラックＫ、イエローＹおよ
びクリアＬ（ＣＬ）のうち、誤差拡散法による二値化演算が施されるのはブラックＫだけ
であるので、誤差バッファ３１ｅには、ブラックＫに対する誤差拡散法による二値化演算
の際に発生する誤差データ（中間データ）のみが格納される。
【００６１】
また、ハーフトーン処理済み画像データ格納領域３１ｄは、ＨＴＣＰＵ２１〜２４によ
るハーフトーン処理後の二値化画像データを格納される領域である。
【００６２】
また、バス３２は、色変換ＣＰＵ１１、ＨＴＣＰＵ２１〜２４およびＲＡＭ３１を相互
に接続し、それらの間のデータ転送路となる信号線である。
【００６３】
なお、上記の処理部１１ａ，１１ｂ，２１ａ〜２４ａを実現するための各プログラムは
、図示せぬ不揮発性メモリに格納され、ＲＡＭ３１にロードされて、上記の各ＣＰＵによ
り実行される。
【００６４】
次に、上記装置の動作について説明する。図７は、本発明の実施の形態に係る画像処理
装置における一連の画像処理を説明するフローチャートである。図８は、本発明の実施の
形態に係る画像処理装置における画像データの流れを説明するブロック図である。
【００６５】
まず、図示せぬ別のＣＰＵなどにより、１ライン分のＲＧＢデータが生成され、元画像
データ６１として、画像データ格納領域３１ａに格納される（ステップＳ１）。その際、
例えば、ＪＰＥＧデータに対するＪＰＥＧデコードが行われたり、トーン調整および彩度
強調、先鋭度の調整、ノイズ除去などの画像補正が行われたりする。また、画像処理後の
画像データに基づいて印刷装置により画像が印刷される場合には、印刷解像度などの印刷
条件に応じたリサイズ・レイアウト処理が行われたりする。
【００６６】
次に、色変換ＣＰＵ１１の色変換処理部１１ａは、ＲＡＭ３１の画像データ格納領域３
１ａからＲＧＢデータを読み出し、７色のＣＭＹＫデータに変換し、１ブロック（２５６
画素分）ずつ順番に、７色のＣＭＹＫデータ６２を、ＲＡＭ３１の色変換済み画像データ
格納領域３１ｃに格納する（ステップＳ２）。色変換処理部１１ａは、１ブロックごとの
当該処理を繰り返し実行して、１ライン分のデータに対する色変換処理を実行する。
【００６７】
ＨＴＣＰＵ２ｉ（ｉ＝１，・・・，４）のハーフトーン処理部２ｉａは、スケジュール
テーブルを参照し、順番に色変換済み画像データ格納領域３１ｃへ格納されたブロックの
７色のうち、自己に割り当てられた色を特定し、その色のデータに対してハーフトーン処
理を実行する（ステップＳ３）。
【００６８】
なお、ハーフトーン処理部２ｉａは、対象となる色に応じて、ディザ法または誤差拡散
法を選択し、選択した方式で二値化処理を実行する。その際、誤差拡散法による二値化処
理を実行する場合には、ハーフトーン処理部２ｉａは、その色に対する誤差データ６３を
取得して二値化を行うとともに、二値化により発生した誤差分で誤差データ６３を更新す
る。
【００６９】
ハーフトーン処理部２ｉａは、このようなハーフトーン処理後の二値化データ６４を、
ＲＡＭ３１のハーフトーン処理済み画像データ格納領域３１ｆに格納する。ハーフトーン
処理部２１ａ〜２４ａは、１ブロックごとの当該処理を繰り返し実行して、１ライン分の
データに対するハーフトーン処理を実行する。
【００７０】
このようなステップＳ１〜Ｓ３の処理により１ラインの画像データに対する画像処理が
終了する。
【００７１】
そして、この１ラインが画像データの最後のラインではない場合には、色変換ＣＰＵ１
１のスケジュール設定部１１ｂがステップＳ１〜Ｓ３の処理におけるＨＴＣＰＵ２１〜２
４の空き時間に応じて各ブロックについて各ＨＴＣＰＵ２ｉの担当する色の種類および数
を必要に応じて変更しスケジュールテーブルを更新する（ステップＳ５）。スケジュール
テーブルの更新後、次の１ラインに対して、ステップＳ１〜Ｓ３の処理が実行される。
【００７２】
このように、１ラインの画像データに対する画像処理が終了するごとに、ＨＴＣＰＵ２
１〜２４に対する負荷分散の調整が行われ、画像データ全体に対してステップＳ１〜Ｓ３
の処理が完了する。この画像処理装置が印刷装置に適用される場合には、図示せぬＣＰＵ
などの処理部により、ＲＡＭ３１のハーフトーン処理済み画像データ格納領域３１ｆに格
納された二値化データが読み出され、プリンタヘッド用のデータに変換される。そして、
その変換後のデータがプリンタヘッドに送信され、印刷が実行される（ステップＳ６）。
【００７３】
次に、ステップＳ２の１ライン色変換処理、ステップＳ３の１ラインハーフトーン処理
、およびステップＳ５のスケジュール更新処理の詳細について順番に説明する。
【００７４】
まず、ステップＳ２の１ライン色変換処理の詳細について説明する。図９は、図７にお
ける１ライン色変換処理の詳細について説明するフローチャートである。
【００７５】
色変換処理部１１ａは、画像データ内の一連のブロックのブロック番号をカウントする
ためのカウンタｂｌｏｃｋ＿ｃｎｔの値を０とする（ステップＳ１１）。
【００７６】
次に、色変換処理部１１ａは、処理すべきブロックに対する色変換後のデータの格納場
所として、色変換済み画像データ格納領域３１ｃにおける４つのバッファ４１ａ〜４１ｄ
のうちの１つを特定する（ステップＳ１２）。その際、ブロック番号カウンタｂｌｏｃｋ
＿ｃｎｔに対する４の剰余が計算され、その値がそのバッファのバッファ番号ｂｕｆ＿ｉ
ｎｄｅｘとされる。なお、バッファ４１ａのバッファ番号ｂｕｆ＿ｉｎｄｅｘは０であり
、バッファ４１ｂのバッファ番号ｂｕｆ＿ｉｎｄｅｘは１であり、バッファ４１ｃのバッ
ファ番号ｂｕｆ＿ｉｎｄｅｘは２であり、バッファ４１ｄのバッファ番号ｂｕｆ＿ｉｎｄ
ｅｘは３である。つまり、ブロック番号ｉをバッファ４１ａ〜４１ｄの数（＝４）で除算
した剰余ＭＯＤが０であるブロックはバッファ４１ａに格納され、その剰余ＭＯＤが１で
あるブロックはバッファ４１ｂに格納され、その剰余ＭＯＤが２であるブロックはバッフ
ァ４１ｃに格納され、その剰余ＭＯＤが３であるブロックはバッファ４１ｄに格納される
。
【００７７】
そして、色変換処理部１１ａは、ステータスデータ５１を参照し、そのバッファ番号の
バッファの、少なくとも１つのＨＴＣＰＵについてのデータ格納状況が「データあり」か
否かを判定しすべてのＨＴＣＰＵ２１〜２４についてのデータ格納状況が「データなし」
となるまで待機する（ステップＳ１３）。
【００７８】
色変換処理部１１ａは、そのバッファ番号のバッファにおけるすべてのＨＴＣＰＵにつ
いてのデータ格納状況が「データなし」となると、今回の処理すべきブロックの画像デー
タに対して色変換処理を実行する（ステップＳ１４）。
【００７９】
そして、色変換処理部１１ａは、色変換後の画像データを、上述のバッファ番号のバッ
ファへ格納し、ステータスデータ５１におけるそのバッファ番号のバッファについて、す
べてのＨＴＣＰＵ２１〜２４に対応するデータ格納状況を「データあり」に変更する（ス
テップＳ１５）。さらに、色変換処理部１１ａは、ブロック番号カウンタｂｌｏｃｋ＿ｃ
ｎｔの値を１だけ増加させる（ステップＳ１６）。
【００８０】
４つのバッファ４１ａ〜４１ｄはリングバッファを構成しており、色変換処理部１１ａ
は、４つのバッファ４１ａ〜４１ｄに対して順番に、１ブロック分の色変換後の画像デー
タを出力していく。バッファ４１ｄに出力されたブロックの次のブロックは、バッファ４
１ａに出力される。また、色変換後の一連のブロックは先頭から順番にハーフトーン処理
されていき、ブロック内の全色のデータのハーフトーン処理が終了すると、バッファ４１
ａ〜４１ｄから順番に削除されるため、バッファ４１ａ〜４１ｄは、ブロックを格納した
順番で空きになる。
【００８１】
色変換処理部１１ａは、１ラインの画像データに対する色変換処理が完了するまで、ス
テップＳ１２〜Ｓ１６の処理を繰り返し実行する（ステップＳ１７）。
【００８２】
このようにして、色変換ＣＰＵ１１の色変換処理部１１ａは、ブロックごとに色変換処
理を施し、処理後の各ブロックの画像データを、順番に、バッファ４１ａ〜４１ｄのいず
れかに格納する。
【００８３】
次に、ハーフトーン処理（図７のステップＳ３）の詳細について説明する。
【００８４】
図１０は、図７における１ラインハーフトーン処理の詳細について説明するフローチャ
ートである。図１０に示す処理は、各ＨＴＣＰＵ２ｉ（ｉ＝１，・・・，４）のハーフト
ーン処理部２ｉａがそれぞれ実行するものである。したがって、後述の空き時間カウンタ
およびブロック番号カウンタは、ハーフトーン処理部２ｉａごとに設けられており、互い
に独立したものである。
【００８５】
また、各ハーフトーン処理部２ｉａは、ＨＴＣＰＵ２ｉの空き時間を計測するための空
き時間カウンタｗａｉｔ＿ｃｎｔの値を０にセットする（ステップＳ２１）。
【００８６】
また、各ハーフトーン処理部２ｉａは、画像データ内の一連のブロックのブロック番号
をカウントするためのカウンタｂｌｏｃｋ＿ｃｎｔの値を０にセットする（ステップＳ２
２）。
【００８７】
次に、各ハーフトーン処理部２ｉａは、処理すべきブロックに対する色変換後のデータ
の格納場所として、色変換済み画像データ格納領域３１ｃにおける４つのバッファ４１ａ
〜４１ｄのうちの１つを特定する（ステップＳ２３）。その際、ブロック番号カウンタｂ
ｌｏｃｋ＿ｃｎｔに対する４の剰余が計算され、その値がそのバッファのバッファ番号ｂ
ｕｆ＿ｉｎｄｅｘとされる。なお、バッファ４１ａ〜４１ｄとバッファ番号ｂｕｆ＿ｉｎ
ｄｅｘの値との対応関係は、上述したとおりである。
【００８８】
そして、各ハーフトーン処理部２ｉａは、ステータスデータ５１を参照し、そのバッフ
ァ番号のバッファに１ブロック分の画像データが格納されているか否かを所定の時間間隔
Ｗ１で繰り返し判定し、１回の判定ごとに空き時間カウンタｗａｉｔ＿ｃｎｔの値をＷ１
だけ増加させていき、そのバッファ番号のバッファに１ブロック分の画像データが格納さ
れるまで待機する（ステップＳ２４，Ｓ２５）。これにより、色変換後のデータの到着ま
での待ち時間が、空き時間に算入される。なお、このＷ１は、ポーリングのループの１週
するのに要する時間である。
【００８９】
その後、そのバッファ番号のバッファに１ブロック分の画像データが格納されると、ハ
ーフトーン処理部２ｉａは、そのバッファ番号のバッファに１ブロック分の画像データが
格納されていると判定し、スケジュールデータ５１を参照し、今回のブロック番号（つま
りブロック番号カウンタの値）からそのブロックにおいて処理すべき色を特定し、その色
のデータに対してハーフトーン処理を実行する（ステップＳ２６）。
【００９０】
各ハーフトーン処理部２ｉａは、現在のブロック（ブロック番号がブロック番号カウン
タの値と同一であるブロック）における自己の担当する色のハーフトーン処理が完了する
と、ステータスデータ５１のうち、現在のブロックの自己のＨＴＣＰＵ２ｉに対応するデ
ータ格納状況を「データなし」とする（ステップＳ２７）。
【００９１】
なお、ハーフトーン処理部２ｉａが、バッファ４１ａ〜４１ｄにおける画像データのう
ち、処理した後に処理済の部分ごとに消去するようにしてもよい。
【００９２】
あるいは、上述のように色変換処理部１１ａが、そのバッファ番号のバッファにおける
すべてのＨＴＣＰＵについてのデータ格納状況が「データなし」と判定した際に、消去す
るようにしてもよいし、特に消去せずに、色変換処理部１１ａが、次のデータを上書きす
るようにしてもよい。
【００９３】
そして、そのハーフトーン処理部２ｉａは、ブロック番号カウンタｂｌｏｃｋ＿ｃｎｔ
の値を１だけ増加させる（ステップＳ２８）。
【００９４】
そして、各ハーフストーン処理部２ｉａは、１ラインの画像データに対するハーフトー
ン処理が完了するまで、１ブロックずつ、ステップＳ２３〜Ｓ２８の処理を繰り返し実行
する（ステップＳ２９）。
【００９５】
各ハーフストーン処理部２ｉａは、自己の担当分について１ラインの画像データに対す
るハーフトーン処理が完了すると、すべてのハーフストーン処理部２１ａ〜２４ａが１ラ
インの画像データに対するハーフトーン処理が完了したか否かを所定の時間間隔Ｗ２で繰
り返し判定し、１回の判定ごとに空き時間カウンタｗａｉｔ＿ｃｎｔの値をＷ２だけ増加
させていき、すべてのハーフストーン処理部２１ａ〜２４ａが１ラインの画像データに対
するハーフトーン処理が完了するまで待機する（ステップＳ３０，Ｓ３１）。これにより
、各ハーフストーン処理部２ｉａについて、１ラインにおいて、自己の担当分の処理が完
了してから、１ラインの全色についてのハーフトーン処理が完了までの待ち時間が、空き
時間に算入される。なお、このＷ２は、ポーリングのループの１週するのに要する時間で
ある。
【００９６】
例えば、最後のブロックが格納されたバッファについての全ハーフトーン処理部２１ａ
〜２４ａに対応するステータスデータ５１の個別フラグの値が「データなし」となってい
るか否かが判定され、最後のブロックが格納されたバッファについての全ハーフトーン処
理部２１ａ〜２４ａに対応するステータスデータの個別フラグの値が「データなし」とな
っている場合には、各ハーフストーン処理部２ｉａは、すべてのハーフストーン処理部２
１ａ〜２４ａが１ラインの画像データに対するハーフトーン処理が完了したと判定し、そ
うでない場合には、少なくとも１つのハーフストーン処理部２１ａ〜２４ａが１ラインの
画像データに対するハーフトーン処理を完了していないと判定する。
【００９７】
このようにして、各ＨＴＣＰＵ２ｉのハーフトーン処理部２ｉａは、色変換処理後のブ
ロックに対して順番にハーフトーン処理を施す。各ハーフトーン処理部２ｉａは、各ブロ
ックにおいて自己の担当する色の画像データをバッファ４１ａ〜４１ｄのいずれかから読
み出してハーフトーン処理する。また、各ハーフトーン処理部２ｉａは、その際に発生し
た空き時間を計測する。
【００９８】
ここで、図１０のステップＳ２６における１ブロックハーフトーン処理の詳細について
説明する。図１１は、図１０における１ブロックハーフトーン処理の詳細について説明す
るフローチャートである。
【００９９】
まず、各ハーフトーン処理部２ｉａは、現在のブロックに関して割り当てられた色をす
べて処理したか否かを判定する（ステップＳ４１）。ハーフトーン処理部２ｉａは、現在
のブロックに関して割り当てられた色をすべて処理したと判定した場合には、このブロッ
クに関するハーフトーン処理を終了する。
【０１００】
一方、現在のブロックに関して割り当てられたいずれかの色を処理していないと判定し
た場合には、ハーフトーン処理部２ｉａは、まず、現在のブロックに関して割り当てられ
た色から最初の１色を選択し（ステップＳ４２）、その色の画像データの二値化処理が完
了しているか否かを判定する（ステップＳ４３）。
【０１０１】
ハーフトーン処理部２ｉａは、その色の画像データの二値化処理が完了していると判定
した場合には、空き時間カウンタｗａｉｔ＿ｃｎｔの値を所定値Ｗ３だけ増加させ（ステ
ップＳ４４）、現在のブロックに関して割り当てられた色から次の１色を選択する（ステ
ップＳ４５）。そして、ハーフトーン処理部２ｉａは、その色の画像データの二値化処理
が完了しているか否かを判定する（ステップＳ４３）。なお、このＷ３は、ポーリングの
ループの１週するのに要する時間である。
【０１０２】
ハーフトーン処理部２ｉａは、このステップＳ４３〜Ｓ４５の処理を、未処理の色が現
れるまで繰り返す。
【０１０３】
そして、未処理の色が現れると、ハーフトーン処理部２ｉａは、その色が誤差拡散法に
より二値化処理される色である場合には、その色について、現在のブロックの１つ前のブ
ロックの処理が完了しているか否かを判定する（ステップＳ４６）。例えば、ハーフトー
ン処理部２ｉａは、スケジュールデータを参照してその色について現在のブロックの１つ
前のブロックを割り当てられたハーフトーン処理部２ｊａ（ｊ＝１，・・・，４）を特定
し、そのハーフトーン処理部２ｊａの個別フラグを参照して、その色について現在のブロ
ックの１つ前のブロックの処理が完了しているか否かを判定する。あるいは、ハーフトー
ン処理済み画像データ格納領域３１ｆ内のハーフトーン処理された画像データを参照して
その色について現在のブロックの１つ前のブロックの処理が完了しているか否かを判定し
てもよい。
【０１０４】
ハーフトーン処理部２ｉａは、未処理の色が誤差拡散法により二値化処理される色であ
って、その色について現在のブロックの１つ前のブロックの処理が完了していないと判定
した場合、空き時間カウンタｗａｉｔ＿ｃｎｔの値を所定値Ｗ４だけ増加させ（ステップ
Ｓ４７）、現在のブロックに関して割り当てられた色から次の１色を選択する（ステップ
Ｓ４５）。なお、このＷ４は、ポーリングのループの１週するのに要する時間である。
【０１０５】
この場合、次の１色について上述のステップＳ４３以降の処理が同様に施される。つま
り、未処理の色が誤差拡散法により二値化処理される色であって、その色について現在の
ブロックの１つ前のブロックの処理が完了していない場合には、その色の二値化は、一旦
、スキップされ、後で再度、その色について現在のブロックの１つ前のブロックの処理が
完了しているか否かが判定される。
【０１０６】
一方、ハーフトーン処理部２ｉａは、未処理の色が誤差拡散法により二値化処理される
色であって、その色について現在のブロックの１つ前のブロックの処理が完了している場
合、およびその未処理の色がディザ法により二値化処理される色である場合には、その色
について現在のブロックの画像データの二値化を実行する（ステップＳ４８）。
【０１０７】
そして、その未処理の色についての現在のブロックの画像データの二値化が完了すると
、ステップＳ４１に戻り、ハーフトーン処理部２ｉａは、現在のブロックに関して割り当
てられた色をすべて処理したか否かを判定する（ステップＳ４１）。ここで、ハーフトー
ン処理部２ｉａは、現在のブロックに関して割り当てられた色をすべて処理したと判定し
た場合には、現在のブロックについて自己に割り当てられた色の二値化処理を終了する。
【０１０８】
このようにして、ステップＳ４１〜ステップＳ４８の処理では、各ハーフトーン処理部
２ｉａは、現在のブロックについて割り当てられた色が処理済みか未処理かを所定の順番
で判定していき、未処理の色があるとその色の画像データを二値化し、再度、現在のブロ
ックについて割り当てられた色が処理済みか未処理かを最初から判定していき、未処理の
色がなくなるまで、画像データの二値化を行う。
【０１０９】
さらに、ここで、図１１のステップＳ４８における二値化処理のうち、誤差拡散法によ
る二値化処理について説明する。図１２は、図１１における二値化処理のうち、誤差拡散
法による二値化処理について説明するフローチャートである。図１３は、図１２における
二値化処理の際に使用される誤差拡散パターンの一例を示す図である。
【０１１０】
誤差拡散法による二値化処理では、ハーフトーン処理部２ｉａは、まず、画素番号カウ
ンタＸの値を０にセットする（ステップＳ５１）。
【０１１１】
次に、ハーフトーン処理部２ｉａは、処理対象のブロックおよび色について画像データ
のうち、画素番号カウンタＸの示す番号の画素の画像データＤを取得し、その画素の誤差
データＥを取得する（ステップＳ５２，Ｓ５３）。その際、ハーフトーン処理部２ｉａは
、処理対象の色が固定的にこのＨＴＣＰＵ２ｉに割り当てられた色である場合には、その
画素の誤差データＥを内蔵ＲＡＭ２ｉｂの誤差バッファ２ｉｃから取得する。一方、ハー
フトーン処理部２ｉａは、処理対象の色が固定的にこのＨＴＣＰＵ２ｉに割り当てられた
色ではない場合には、その画素の誤差データＥをＲＡＭ３１の誤差バッファ３１ｅから取
得する。
【０１１２】
そして、ハーフトーン処理部２ｉａは、画素番号カウンタＸの示す番号の画素の画像デ
ータＤと誤差データＥの和を計算し、変数ＤＸに代入する（ステップＳ５３）。なお、画
素データＤは、画素値であり、誤差データＥは、周辺画素から拡散されてきた誤差分の総
和である。
【０１１３】
ハーフトーン処理部２ｉａは、変数ＤＸの値と所定の閾値ＴＨとを比較し、変数ＤＸの
値が所定の閾値ＴＨより大きい場合には、画素番号カウンタＸの示す番号の画素の二値化
後の画素値Ｒを１とし、そうでない場合には、二値化後の画素値Ｒを０とする（ステップ
Ｓ５６，Ｓ５７）。
【０１１４】
また、ハーフトーン処理部２ｉａは、変数ＤＸの値が所定の閾値ＴＨより大きい場合に
は、変数ＤＸの値を閾値ＴＨだけ小さくする（ステップＳ５８）。
【０１１５】
これにより、ステップＳ５６またはＳ５８の後では、変数ＤＸの値は、周辺画素に拡散
すべき誤差となる。
【０１１６】
そして、ハーフトーン処理部２ｉａは、画素番号カウンタＸの示す番号の画素の二値化
後の画素値Ｒを出力する（ステップＳ５９）。なお、この画素値Ｒは、ＲＡＭ３１のハー
フトーン処理済み画像データ格納領域３１ｆに格納される。ただし、ＨＴＣＰＵ２ｉがデ
ータキャッシュなどを有している場合には、この画素値Ｒは、一旦、キャッシュに格納さ
れ、その後、適当なタイミングで、ＲＡＭ３１に格納される。
【０１１７】
また、ハーフトーン処理部２ｉａは、拡散すべき誤差を示す変数ＤＸの値に基づいて、
周辺画素へ拡散させる誤差の値を計算し、周辺の該当する画素の誤差データへその画素に
対する誤差分を追加し誤差データを更新する（ステップＳ６０）。その際、ハーフトーン
処理部２ｉａは、処理対象の色が固定的にこのＨＴＣＰＵ２ｉに割り当てられた色である
場合には、内蔵ＲＡＭ２ｉｂの誤差バッファ２ｉｃに格納されている誤差データを更新す
る。一方、ハーフトーン処理部２ｉａは、処理対象の色が固定的にこのＨＴＣＰＵ２ｉに
割り当てられた色ではない場合には、ＲＡＭ３１の誤差バッファ３１ｅに格納されている
誤差データを更新する。
【０１１８】
また、その際、例えば図１３に示す誤差拡散パターンで、ある画素Ｐ（Ｘ）で生成され
た誤差分が拡散される。図１３に示す誤差拡散パターンでは、ある画素Ｐ（Ｘ）で生成さ
れた誤差分の１６分の７が、その次の画素Ｐ（Ｘ＋１）の誤差データに追加され、ある画
素Ｐ（Ｘ）で生成された誤差分の１６分の５が、その画素Ｐ（Ｘ）の含まれるラインの次
のラインにおける同一位置の画素Ｐ（Ｘ＋Ｗ）の誤差データに追加され、さらに、誤差分
の１６分の３および１６分の１がその前後の画素Ｐ（Ｘ−１＋Ｗ），Ｐ（Ｘ＋１＋Ｗ）の
誤差データにそれぞれ追加される。ここで、Ｗは、ブロック内の１ラインの画素数である
。つまり、画像上では、図１３に示すように、ある画素Ｐ（Ｘ）で生成された誤差分の１
６分の７、１６分の５、１６分の３、および１６分の１が、その画素の右、下、右下、お
よび左下の画素の誤差データにそれぞれ追加される。
【０１１９】
そして、ハーフトーン処理部２ｉａは、処理対象のブロックおよび色の全画像データを
処理したか否かを判定する（ステップＳ６１）。処理対象のブロックおよび色の全画像デ
ータを処理した場合には、処理対象のブロックおよび色に対する、誤差拡散法による二値
化処理が終了する。
【０１２０】
一方、未処理の画素が存在する場合には、ハーフトーン処理部２ｉａは、画素番号カウ
ンタＸの値を１だけ増加し（ステップＳ６２）、ステップＳ５２〜Ｓ６０の処理をその画
素番号カウンタＸの指す画素Ｐ（Ｘ）に対して実行する。そして、処理対象のブロックお
よび色の全画像データを処理するまで、ステップＳ５２〜Ｓ６２の処理は、繰り返し、各
画素Ｐ（Ｘ）に対して順番に実行される。
【０１２１】
このようにして、あるブロックの、ある色に対する誤差拡散法による二値化処理が実行
される。上述したように、ＨＴＣＰＵ２ｉに対して固定的に割り当てられた色がある場合
には、その色についての誤差バッファは、ＨＴＣＰＵ２ｉの内蔵メモリ２ｉｂに設けられ
るため、固定的に割り当てられた色に対する誤差拡散法による二値化処理は、ＲＡＭ３１
に誤差バッファが設けられる場合に比べ、高速に実行される。
【０１２２】
以上のようにして各ブロックに対して色変換処理およびハーフトーン処理が実行される
。
【０１２３】
次に、ＨＴＣＰＵ２１〜２４に割り当てられる色の分散スケジュールを動的に更新する
スケジュールテーブル更新処理について説明する。
【０１２４】
スケジュールテーブル更新処理は、図７に示すように、１ライン分の画像処理が終了す
る度に実行される。また、スケジュールテーブル更新処理は、スケジュールテーブルに登
録されている各ブロックに対してそれぞれ行われる。図４に示すスケジュールテーブルの
場合には、ブロック番号ｉに対する４の剰余ＭＯＤが０〜３のそれぞれであるブロックご
とにまとめて、スケジュールテーブル更新処理が実行される。この実施の形態では、スケ
ジュールテーブル更新処理は、色変換ＣＰＵ１１のスケジュール設定部１１ｂにより実行
される。
【０１２５】
図１４は、本発明の実施の形態におけるスケジュールテーブル更新処理を説明するフロ
ーチャートである。
【０１２６】
まず、スケジュール設定部１１ｂは、ＨＴＣＰＵ２１〜２４のハーフトーン処理の際に
発生した空き時間ｗｔ［０］〜ｗｔ［３］を各ＨＴＣＰＵ（２１＋ｉ）（ｉ＝０，・・・
，３ ）の空き時間カウンタｗａｉｔ＿ｃｎｔの値から特定し、その平均ａｖｅを計算す
る（ステップＳ７１）。なお、その際の空き時間ｗｔ［０］〜ｗｔ［３］は、４ブロック
分の空き時間（空き時間カウンタの値）である。ただし、空き時間ｗｔ［０］〜ｗｔ［３
］は、４×ｎブロック分の空き時間、または１ライン分の空き時間としてもよい（ｎは２
以上の整数）。
【０１２７】
次に、スケジュール設定部１１ｂは、平均ａｖｅと各ＨＴＣＰＵ（２１＋ｉ）の空き時
間ｗｔ［ｉ］との差ｄｆ［ｉ］を計算する（ステップＳ７２）。
【０１２８】
そして、スケジュール設定部１１ｂは、４つのＨＴＣＰＵ２１〜２４の空き時間の不均
衡に基づいて、減色処理を実行する（ステップＳ７３）。減色処理では、空き時間ｗｔ［
ｉ］が平均ａｖｅ以下であるＨＴＣＰＵ（２１＋ｉ）に割り当てられた色が減らされる。
減色処理で減らされた色は、ＲＡＭ３１に格納される減色リストに登録される。
【０１２９】
スケジュール設定部１１ｂは、減色リストに登録された色をＨＴＣＰＵ２１〜２４のい
ずれかに割り当てる加色処理を実行する（ステップＳ７４）。加色処理では、減色リスト
に登録されている色が、空き時間の最も長いＨＴＣＰＵ（２１＋ｊ）（ｊ＝０，・・・，
３）に割り当てられる。
【０１３０】
このように、減色処理および加色処理を経て、各ブロックについて、各ＨＴＣＰＵ（２
１＋ｉ）に割り当てられる色が設定され、スケジュールテーブルが更新される。
【０１３１】
ここで、減色処理および加色処理の詳細について説明する。図１５は、図１４における
ステップＳ７３の減色処理の詳細を説明するフローチャートであり、図１６は、図１４に
おけるステップＳ７４の加色処理の詳細を説明するフローチャートである。
【０１３２】
図１５に示す減色処理では、最初に、スケジュール設定部１１ｂは、ＣＰＵ番号カウン
タｉを０にセットする（ステップＳ８１）。
【０１３３】
次に、スケジュール設定部１１ｂは、空き時間ｗｔ［ｉ］の偏差ｄｆ［ｉ］が０より大
きいか、または固定的に割り当てられた色以外でＨＴＣＰＵ（２１＋ｉ）が処理する色が
ないかを判定する（ステップＳ８２）。
【０１３４】
固定的に割り当てられた色以外でＨＴＣＰＵ（２１＋ｉ）が処理する色があり、かつ空
き時間の偏差ｄｆ［ｉ］が０より大きくない場合、つまり、固定的に割り当てられた色以
外でＨＴＣＰＵ（２１＋ｉ）が処理する色があり、かつＨＴＣＰＵ（２１＋ｉ）の空き時
間が平均ａｖｅ以上である場合、スケジュール設定部１１ｂは、固定的に割り当てられて
いる色を除き、ＨＴＣＰＵ（２１＋ｉ）に割り当てられている色の中で、処理時間が最小
である色を選択する（ステップＳ８３）。
【０１３５】
なお、固定的に割り当てられている色および各色の処理時間は、ブロックごとに既知で
ある。固定的に割り当てられている色は、スケジュールテーブルに基づいて特定される。
各ブロックの各色の処理時間については、少なくともスケジュールテーブルに登録されて
いるブロックの各色の処理時間が、予め計測され、固定値として予めＲＡＭ３１などに格
納される。あるいは、各ブロックの各色の処理時間をハーフトーン処理時に実際に計測し
その計測値を使用するようにしてもよい。
【０１３６】
そして、スケジュール設定部１１ｂは、選択した色を減色リストに登録し（ステップＳ
８４）、減色処理の対象であるブロックについてスケジュールテーブルにおいてＨＴＣＰ
Ｕ（２１＋ｉ）に割り当てられている色から削除し（ステップＳ８５）、選択した色の処
理時間ｔだけ偏差ｄｆ［ｉ］および空き時間ｗｔ［ｉ］を増加させる（ステップＳ８６）
。
【０１３７】
そして、スケジュール設定部１１ｂは、ステップＳ８２に戻り、空き時間の偏差ｄｆ［
ｉ］が０より大きいか否かを判定し、空き時間の偏差ｄｆ［ｉ］が０より大きくない場合
には、再度、ステップＳ８３〜Ｓ８６の処理を実行する。
【０１３８】
これにより、空き時間の偏差ｄｆ［ｉ］が０より大きくなるまで、つまり、ＨＴＣＰＵ
（２１＋ｉ）の空き時間が平均ａｖｅ以下となるまで、スケジュール設定部１１ｂは、固
定的に割り当てられている色を除き、ＨＴＣＰＵ（２１＋ｉ）に割り当てられている色を
減らす。
【０１３９】
空き時間の偏差ｄｆ［ｉ］が０より大きくなると、つまり、ＨＴＣＰＵ（２１＋ｉ）の
空き時間が平均ａｖｅ以下となると、スケジュール設定部１１ｂは、ＨＴＣＰＵ（２１＋
ｉ）についての減色処理を終了する。
【０１４０】
そして、スケジュール設定部１１ｂは、ＨＴＣＰＵ２４まで減色処理を終了したか否か
を判定し（ステップＳ８７）、ＨＴＣＰＵ２４まで減色処理を終了していない場合には、
ＣＰＵ番号カウンタｉの値を１だけ増加させ、次のＨＴＣＰＵ（２１＋ｉ）について、同
様にステップＳ８２〜Ｓ８６を実行する。その後、ＨＴＣＰＵ２１〜２４の減色処理が終
了すると、図１５に示す減色処理が終了する。
【０１４１】
これにより、減色処理後のＨＴＣＰＵ２１〜２４の処理時間は、すべて、減色処理前の
処理時間の平均ａｖｅ以下となり、減色された色は、減色リストに列挙される。
【０１４２】
そして、図１６に示す加色処理では、スケジュール設定部１１ｂは、減色リストを参照
し、減色リストに登録されている色があるか否かを判定する（ステップＳ９１）。
【０１４３】
減色リストに登録されている色がある場合、スケジュール設定部１１ｂは、その色のう
ち、処理時間が最大である色を選択する（ステップＳ９２）。
【０１４４】
そして、スケジュール設定部１１ｂは、選択した色を減色リストから削除し（ステップ
Ｓ９３）、空き時間が最大であるＨＴＣＰＵ（２１＋ｊ）（ｊ＝０，・・・，３）に割り
当ててスケジュールテーブルを更新し（ステップＳ９４）、そのＨＴＣＰＵ（２１＋ｊ）
の偏差ｄｆ［ｊ］および空き時間ｗｔ［ｊ］を、選択した色の処理時間だけ減少させる（
ステップＳ９５）。
【０１４５】
このように減色処理および加色処理を実行することで、４つのＨＴＣＰＵの空き時間が
均衡するように、処理時間が短い色の割り当てが、優先的に、空き時間ｗｔ［ｉ］が平均
ａｖｅ以下であるＨＴＣＰＵから空き時間ｗｔ［ｉ］が平均ａｖｅより大きいＨＴＣＰＵ
へ変更される。
【０１４６】
ここで、減色処理および加色処理の一例を示す。図１７は、各ブロックにおける７色の
ハーフトーン処理の処理時間の一例を示す図である。この例では、ブロック番号ｉに対す
る４の剰余が０および１であるブロックにおける７色のハーフトーン処理の処理時間の比
が、シアンＣ：マゼンタＭ：レッドＲ：ブルーＢ：ブラックＫ：イエローＹ：クリアＬ＝
６：４：４：４：４：１：１であり、ブロック番号ｉに対する４の剰余が２および３であ
るブロックにおける７色のハーフトーン処理の処理時間の比が、シアンＣ：マゼンタＭ：
レッドＲ：ブルーＢ：ブラックＫ：イエローＹ：クリアＬ＝４：６：４：４：４：１：１
である。
【０１４７】
図１８は、図１７に示す処理時間の７色を図４に示す初期状態のスケジュールテーブル
に基づいてＨＴＣＰＵ２１〜２４に割り当てた場合の４ブロック分の７色のハーフトーン
処理の処理状況を示す図である。図１８（Ａ）は、この場合の処理スケジュールを示し、
図１８（Ｂ）は、この場合でのＨＴＣＰＵ２１〜２４の空き時間、その平均および偏差を
示す。図１８に示す場合では、７色すべてのハーフトーン処理の処理時間は、イエローＹ
またはクリアＬの処理時間を１としたときの２６であり、ＨＴＣＰＵ２１，２２の空き時
間がそれぞれ１であり、ＨＴＣＰＵ２３，２４の空き時間がそれぞれ５である。
【０１４８】
図１９は、図１８の処理状況での減色処理と加色処理を説明する図である。図１８に示
す処理状況でスケジュールテーブル更新処理が実行されると、まず、ブロック番号ｉに対
する４の剰余ＭＯＤが０であるブロックについては、減色処理により、ＨＴＣＰＵ２１に
割り当てられたブラックＫおよびＨＴＣＰＵ２２に割り当てられたイエローＹが減色リス
トに登録され、加色処理により、ブラックＫがＨＴＣＰＵ２１に割り当てられ、イエロー
ＹがＨＴＣＰＵ２３に割り当てられる。同様に、剰余ＭＯＤが１であるブロックでは、ブ
ラックＫが減色リストに登録された後、ＨＴＣＰＵ２２に割り当てられ、剰余ＭＯＤが２
であるブロックでは、クリアＬが減色リストに登録され、ＨＴＣＰＵ２３に割り当てられ
、剰余ＭＯＤが３であるブロックでは、イエローＹとクリアＬが減色リストに登録され、
ＨＴＣＰＵ２４に割り当てられる。
【０１４９】
図２０は、図１９に示す減色処理と加色処理の実行後の処理状況を示す図である。図２
０（Ａ）は、この場合の処理スケジュールを示し、図２０（Ｂ）は、この場合でのＨＴＣ
ＰＵ２１〜２４の空き時間、その平均および偏差を示す。図２０に示す場合では、７色す
べてのハーフトーン処理の処理時間は、イエローＹまたはクリアＬの処理時間を１とした
ときの２６であり、ＨＴＣＰＵ２１〜２４の空き時間がそれぞれ２である。
【０１５０】
この例では、減色処理と加色処理の実行前後で７色すべてのハーフトーン処理の処理時
間は変化していないが、ＨＴＣＰＵ２１〜２４の空き時間が均衡している。空き時間の均
衡により、この例では考慮していないが実際の計算では生じ得る、データの読み出しのた
めの時間などのオーバーヘッド、固定的に割り当てられた色の誤差バッファを内部メモリ
に配置することによる処理の高速化などに起因して、各色の処理の終了タイミングが変動
しても、その影響による処理全体の遅延を抑制できる。
【０１５１】
ここで、参考として、ＨＴＣＰＵ２１〜２４に対して固定的に割り当てられる色を設け
ない場合、つまり、各ＨＴＣＰＵが７色のいずれをも処理してもよい場合における同様の
スケジュールテーブル更新処理について説明する。なお、各色のハーフトーン処理の処理
時間は、図１７の場合と同様である。
【０１５２】
図２１は、比較例についてのスケジュールテーブルの一例である。また、図２２は、図
１７に示す処理時間の７色を図２１に示すスケジュールテーブルに基づいてＨＴＣＰＵ２
１〜２４に割り当てた場合の４ブロック分の７色のハーフトーン処理の処理状況を示す図
である。図２２（Ａ）は、この場合の処理スケジュールを示し、図２２（Ｂ）は、この場
合でのＨＴＣＰＵ２１〜２４の空き時間、その平均および偏差を示す。図２２に示す場合
では、７色すべてのハーフトーン処理の処理時間は、イエローＹまたはクリアＬの処理時
間を１としたときの２６であり、ＨＴＣＰＵ２１の空き時間が０であり、ＨＴＣＰＵ２２
，２４の空き時間がそれぞれ２であり、ＨＴＣＰＵ２３の空き時間が４である。
【０１５３】
図２３は、図２２の処理状況での減色処理と加色処理を説明する図である。なお、この
比較例では、固定的に割り当てられた色が存在しないだけでその他の手順については、上
述の減色処理および加色処理と同様である。この比較例では、ＨＴＣＰＵ２１に割り当て
られた色のうち、処理時間が最小である色が減色リストに登録され、空き時間が最大であ
るＨＴＣＰＵに割り当てられる。
【０１５４】
図２４は、図２３に示す減色処理と加色処理の実行後の処理状況を示す図である。図２
４（Ａ）は、この場合の処理スケジュールを示し、図２４（Ｂ）は、この場合でのＨＴＣ
ＰＵ２１〜２４の空き時間、その平均、および偏差を示す。図２４に示す場合では、７色
すべてのハーフトーン処理の処理時間は、イエローＹまたはクリアＬの処理時間を１とし
たときの２６であり、ＨＴＣＰＵ２１〜２４の空き時間がそれぞれ２である。
【０１５５】
このように、７色すべてのハーフトーン処理の処理時間は、固定的に割り当てられる色
を設けた場合でも、固定的に割り当てられる色を設けない場合（比較例）と同様となり、
ＨＴＣＰＵに固定的に色を割り当てたことに起因してハーフトーン処理が遅延しない。
【０１５６】
以上のように、上記実施の形態によれば、ＨＴＣＰＵ２１〜２４は、色数Ｎより少ない
Ｍ個のプロセッサであって、複数Ｎ色の画像データに対する画像処理を、色毎に分割され
た画像データに対して実行する。また、ＲＡＭ３１は、外部メモリであって、複数Ｎ色の
画像データを記憶する。スケジュール設定部１１ｂは、負荷分散手段として、プロセッサ
の負荷に応じて動的にプロセッサに色ごとの画像データを割り当てる。そして、スケジュ
ール設定部１１ｂは、一部の色の画像データを１つのプロセッサに対して固定的に割り当
て、その他の色の画像データをプロセッサの負荷に応じて動的に割り当てる。また、少な
くとも１つのＨＴＣＰＵ２ｉは、画像データに対して所定の演算を施すハーフトーン処理
部２ｉａと、キャッシュとは別のデータ格納用の内蔵メモリ２ｉｂとを有する。さらに、
ハーフトーン処理部２ｉａは、固定的に割り当てられた色の画像データに対する演算で生
成される中間データを内蔵メモリ２ｉｂに一時的に格納しつつ画像処理を実行する。
【０１５７】
これにより、一部の色をあるＨＴＣＰＵに固定的に割り当てることでその色の演算につ
いての中間データを内蔵メモリ２ｉｂに記憶させておくことができるため、外部メモリで
あるＲＡＭ３１へのアクセス回数が減る。これに起因して、少なくとも１つのＨＴＣＰＵ
２ｉの処理速度を向上させ、画像処理全体を高速化することができる。
【０１５８】
また、上記実施の形態によれば、ＨＴＣＰＵ２ｉのハーフトーン処理部２ｉａは、画像
データ内の画素の配列方向に沿って順番に所定の演算を施していきある画素に対する演算
結果が後続のいずれかの画素の演算に反映される画像処理として、誤差拡散法による二値
化処理を実行する。
【０１５９】
これにより、固定的に割り当てられた色について演算中に発生し後続の演算で使用され
る中間データを内部メモリから読み出せるため、外部メモリへのアクセス回数が減る。こ
れに起因して、外部メモリを使用しつつ複数Ｎ色の画像データに対する画像処理を色数Ｎ
より少ないＭ個のプロセッサで実行する場合に、１または複数のプロセッサの処理速度を
向上させ、画像処理全体を高速化することができる。
【０１６０】
特に、誤差拡散法による二値化処理の場合には、１画素の画像データを二値化する度に
周辺画素の誤差データの値が変動し誤差データへのアクセスが頻繁に発生する誤差拡散法
によるハーフトーン処理に関し、誤差データを内部メモリに配置させることができるため
、ハーフトーン処理全体を高速化することができる。
【０１６１】
また、上記実施の形態によれば、所定サイズのブロックごとに各ＨＴＣＰＵ２ｉにより
画像処理が施される色を指定する分散スケジュールデータを含むスケジュールテーブルが
設けられる。そして、ハーフトーン処理部２ｉａは、ブロックごとにスケジュールテーブ
ルを参照し、割り当てられた１または複数の色を特定し、その色の画像データに対して所
定の演算を施す。そして、そのスケジュールテーブルは、固定的に割り当てられる色がす
べてのブロックについて同一のプロセッサに割り当てられた分散スケジュールデータを含
む。
【０１６２】
これにより、一部の色を固定的に割り当てたとしても、動的に複数のＨＴＣＰＵ２１〜
２４への均等な負荷分散が可能となり、ハーフトーン処理全体を高速化することができる
。
【０１６３】
また、上記実施の形態によれば、スケジュールテーブルは、２以上の所定の数Ｐ個のブ
ロック分の分散スケジュールデータを含み、演算部は、Ｐ個のブロック分の同一の分散ス
ケジュールデータを繰り返して参照して、Ｐ個より多いブロックの画像データに対して所
定の演算を施す。
【０１６４】
これにより、周期的に変動する負荷に対して適切な分散スケジュールデータを設定でき
、適切な負荷分散を実行することができる。
【０１６５】
また、上記実施の形態によれば、スケジュール設定部１１ｂは、２以上の所定の数Ｐの
ブロックを処理する間の各プロセッサの空き時間、および各色の画像データのブロックあ
たりの計算量または処理時間に基づいて、Ｍ個のプロセッサの空き時間が均一に近づくよ
うに、Ｐ個における各ブロックについて、固定的に割り当てられた色以外の各色をいずれ
かのプロセッサに割り当て、Ｐ個のブロック分の分散スケジュールデータを生成する。
【０１６６】
これにより、周期的に変動する負荷に対して適切な負荷分散を実行することができる。
【０１６７】
また、上記実施の形態によれば、内蔵メモリ２ｉｂは、バスを介さずにハーフトーン処
理部２ｉａに接続され、キャッシュと同速度のメモリである。
【０１６８】
これにより、外部メモリ（ＲＡＭ３１）に比べ内蔵メモリ２ｉｂへのアクセス速度が１
０倍から数十倍となるため、固定的に割り当てられた色についての画像処理が非常に高速
に実行される。
【０１６９】
また、上記実施の形態によれば、ブロックあたりの計算量または処理時間が最大の色が
、固定的に割り当てられる色とされる。これにより、分割された処理のうち、分散処理の
際にボトルネックになり易い、計算量または処理時間が最大である処理が高速化されるた
め、画像処理全体が効率よく高速化される。
【０１７０】
また、上記実施の形態によれば、ブロックあたりの計算量または処理時間が最小の色以
外の色が、固定的に割り当てられる色とされる。これにより、分割された処理のうち、分
散処理の際にボトルネックになり易い処理が高速化されるため、画像処理全体が効率よく
高速化される。
【０１７１】
なお、上記実施の形態に係る画像処理装置は、印刷装置内の画像処理部に適用可能であ
り、その場合、その印刷装置は、その画像処理装置により処理された画像データに基づい
て印刷を行う。これにより、印刷実行前に必要な画像処理を高速に実行することができ、
ユーザやプログラムからの指令を受けてから印刷を完了するまでの時間を短くすることが
できる。
【０１７２】
なお、上述の実施の形態は、本発明の好適な例であるが、本発明は、これらに限定され
るものではなく、本発明の要旨を逸脱しない範囲において、種々の変形、変更が可能であ
る。
【０１７３】
例えば、上記実施の形態では、複数のプロセッサで実行する画像処理としてハーフトー
ン処理を実行しているが、その他の中間データが発生する画像処理であれば、本発明を適
用可能である。
【０１７４】
また、上記実施の形態では、ＨＴＣＰＵ２１〜２４の数Ｍが４であり、色変換後の画像
データの色数Ｎが７であるが、これらの数に限定されるものではなく、Ｎ＞Ｍであればい
ずれの数でもよい。
【０１７５】
また、上記実施の形態では、色変換済み画像データの１ブロックの画素数は２５６であ
るが、これに限定されるものではない。
【０１７６】
また、上記実施の形態では、色変換済み画像データ格納領域３１ｃには、４つのバッフ
ァ４１ａ〜４１ｄが設けられるが、５以上のバッファを設けるようにしてもよい。
【０１７７】
また、上記実施の形態では、スケジュールテーブル変更処理を実行するスケジュール設
定部１１ｂが色変換ＣＰＵ１１に設けられるが、図示せぬ別のＣＰＵにスケジュール設定
部１１ｂを設けてもよい。あるいは、ＨＴＣＰＵ２１〜２４のいずれか１つにスケジュー
ル設定部１１ｂを設けてもよい。
【０１７８】
また、上記実施の形態では、ハーフトーン処理における各ＨＴＣＰＵ２ｉの空き時間の
計測をポーリング周期Ｗ１〜Ｗ４の累積により行っているが、その代わりに、各ＣＰＵの
クロック数をカウントして空き時間を計測したり、タイマを設けそのタイマで空き時間を
計測するようにしてもよい。その場合には、１つ前のラインにおける同一箇所（例えば４
ブロック）で計測された空き時間を使用したり、１つ前のラインで計測された空き時間の
平均を使用したり、１つ前から所定の数前までのラインで計測された空き時間の平均を使
用したりすればよい。
【０１７９】
また、上記実施の形態では、各ＨＴＣＰＵ２ｉに１色ずつ合計４色のハーフトーン処理
を一定のＨＴＣＰＵ２１〜２４に固定的に割り当てているが、一部のＨＴＣＰＵのみに１
色ずつ固定的に割り当てるようにしてもよい。また、１つのＨＴＣＰＵ２ｉに対して２色
以上の色を固定的に割り当てるようにしてもよい。
【産業上の利用可能性】
【０１８０】
本発明は、例えば、画像データに対して複数の画像処理を順番に施す画像処理装置に適
用可能である。そのような画像処理装置としては、例えばプリンタ、コピー機、プロジェ
クタ、テレビジョン受像機などがある。
【図面の簡単な説明】
【０１８１】
【図１】本発明の実施の形態に係る画像処理装置の構成を示すブロック図である。
【図２】画像データの一例を示す図である。
【図３】本発明の実施の形態における色変換後の画像データを示す図である。
【図４】本発明の実施の形態におけるスケジュールテーブルの一例を示す図である。
【図５】色変換済み画像データ格納領域の一例を示す図である。
【図６】ステータスデータの一例を示す図である。
【図７】本発明の実施の形態における画像処理を説明するフローチャートである。
【図８】本発明の実施の形態での画像データの流れを説明するブロック図である。
【図９】図７の１ライン色変換処理の詳細について説明するフローチャートである。
【図１０】図７の１ラインＨＴ処理の詳細について説明するフローチャートである。
【図１１】図１０の１ブロックＨＴ処理について説明するフローチャートである。
【図１２】誤差拡散法による二値化処理の一例を説明するフローチャートである。
【図１３】誤差拡散パターンの一例を示す図である。
【図１４】スケジュールテーブル更新処理の一例を説明するフローチャートである。
【図１５】図１４における減色処理の詳細を説明するフローチャートである。
【図１６】図１４における加色処理の詳細を説明するフローチャートである。
【図１７】各ブロックの７色のハーフトーン処理の処理時間の一例を示す図である。
【図１８】ハーフトーン処理の処理状況の一例を示す図である。
【図１９】図１８の処理状況での減色処理と加色処理を説明する図である。
【図２０】図１９に示す減色処理と加色処理の実行後の処理状況を示す図である。
【図２１】比較例についてのスケジュールテーブルの一例である。
【図２２】比較例についてのハーフトーン処理の処理状況を示す図である。
【図２３】図２２の処理状況での減色処理と加色処理を説明する図である。
【図２４】図２３に示す減色処理と加色処理の実行後の処理状況を示す図である。
【符号の説明】
【０１８２】
１１ｂ  スケジュール設定部（負荷分散手段）、２１〜２４  ＨＴＣＰＵ（プロセッサ
）、２１ａ〜２４ａ  ハーフトーン処理部（演算部）、２１ｂ〜２４ｂ  内蔵メモリ（内
部メモリ）、３１  ＲＡＭ（外部メモリ）、６３  誤差データ（中間データ）。
【図１】
2006133840.tif 000003
【図２】
2006133840.tif 000004
【図３】
2006133840.tif 000005
【図４】
2006133840.tif 000006
【図５】
2006133840.tif 000007
【図６】
2006133840.tif 000008
【図７】
2006133840.tif 000009
【図８】
2006133840.tif 000010
【図９】
2006133840.tif 000011
【図１０】
2006133840.tif 000012
【図１１】
2006133840.tif 000013
【図１２】
2006133840.tif 000014
【図１３】
2006133840.tif 000015
【図１４】
2006133840.tif 000016
【図１５】
2006133840.tif 000017
【図１６】
2006133840.tif 000018
【図１７】
2006133840.tif 000019
【図１８】
2006133840.tif 000020
【図１９】
2006133840.tif 000021
【図２０】
2006133840.tif 000022
【図２１】
2006133840.tif 000023
【図２２】
2006133840.tif 000024
【図２３】
2006133840.tif 000025
【図２４】
2006133840.tif 000026