(57)【要約】 【課題】  色ごとに個別のハーフトーン手法を割り当てることと、処理の高効率化とを両立させる。【解決手段】  画像処理装置は、それぞれ並列に動作する複数のハーフトーン処理部１０９、１１０を含でいる。選択部１１１により、画像データに含まれる各色成分のデータごとに異なるハーフトーン手法を選択する。各色成分のデータを、それぞれ選択されたハーフトーン手法を用い、複数のハーフトーン処理部において並列処理する際に、複数のハーフトーン処理部における処理負荷が概ね均等になるように、各色成分のデータをいずれかのハーフトーン処理部に割り当てる。【選択図】  図１
2006042312.tif 000002
【特許請求の範囲】
【請求項１】
それぞれ並列に動作する複数のハーフトーン処理部を含む画像処理装置であって、
画像データに含まれる各色成分のデータごとに異なるハーフトーン手法を選択する選択部と、
前記各色成分のデータを、それぞれ選択された前記ハーフトーン手法を用いて並列にハーフトーン処理する際に、複数の前記ハーフトーン処理部における処理負荷が概ね均等になるか、または複数の前記ハーフトーン処理部間における前記ハーフトーン処理の完了時刻のバラツキが最小となるように、前記各色成分のデータをいずれかの前記ハーフトーン処理部に割り当てて処理させる制御部と
を含む画像処理装置。
【請求項２】
それぞれ並列に動作する複数のハーフトーン処理部を含む画像処理装置であって、
画像データに含まれる各色成分のデータごとに異なるハーフトーン手法と、前記ハーフトーン手法による処理後の出力ビット数とを選択する選択部と、
複数のハーフトーン手法のそれぞれについて、前記出力ビット数ごとの単位画素あたりの演算量を記憶する記憶部と、
各色成分のデータごとに選択された前記ハーフトーン手法と前記出力ビット数に対応する単位画素あたりの演算量を前記記憶部から読み出し、前記単位画素あたりの演算量とハーフトーン処理の対象となる画素数とに基づいて各色成分ごとの処理負荷を算出する算出部と、
前記各色成分ごとに算出された前記処理負荷に基づいて、複数の前記ハーフトーン処理部における処理負荷が概ね均等になるか、または複数の前記ハーフトーン処理部におけるハーフトーン処理の完了時刻のバラツキが最小となるように、前記各色成分のデータをいずれかの前記ハーフトーン処理部に分配して処理させる制御部と
を含む画像処理装置。
【請求項３】
前記算出部には、
前記各色成分ごとの右余白の左端位置と左余白の右端位置との差に対して前記単位画素あたりの演算量を乗算することで、前記各色成分ごとの処理負荷を算出する乗算部が含まれる請求項２に記載の画像処理装置。
【請求項４】
前記算出部には、
２色の色成分を一組としてハーフトーン処理を実行するハーフトーン手法が選択された場合に、前記２色のうちに第１色に関する右余白の左端位置と第２色に関する右余白の左端位置のうち大きいほうの値と、前記２色のうちに前記第１色に関する左余白の右端位置と前記第２色に関する左余白の右端位置のうち小さいほうの値との差に対して前記単位画素あたりの演算量を乗算することで、前記各色成分ごとの処理負荷を算出する乗算部が含まれる請求項２に記載の画像処理装置。
【請求項５】
入力されたラスタデータを複数に分割し、分割された前記ラスタデータをそれぞれ並列に色変換して前記画像データとして出力する複数の色変換部をさらに備える請求項１乃至４の何れかに記載の画像処理装置。
【請求項６】
画素単位で独立して処理可能な第１のハーフトーン手法が適用される色成分データを格納する、該第１のハーフトーン手法の並列度に応じた数だけ設けられる第１のバッファと、
他の画素の情報を必要とする第２のハーフトーン手法が適用される色成分データを格納する第２のバッファとをさらに含み、
前記第１のバッファは、前記複数のハーフトーン処理部のうち、前記第１のハーフトーン手法についてそれぞれ並列に動作する複数のハーフトーン処理部によって使用され、前記第２のバッファは、前記複数のハーフトーン処理部のうち、前記第２のハーフトーン手法についてそれぞれ並列に動作する複数のハーフトーン処理部によって使用される請求項１ないし請求項５の何れかに記載の画像処理装置。
【請求項７】
画像データに含まれる各色成分のデータごとに異なるハーフトーン手法を選択する選択工程と、
前記各色成分のデータを、それぞれ選択された前記ハーフトーン手法を用いて、それぞれ並列に処理する際に、並列に実行される複数のハーフトーン処理における処理負荷が概ね均等になるか、または複数の前記ハーフトーン処理間における完了時刻のバラツキが最小となるように、前記各色成分のデータをいずれかの前記ハーフトーン処理に割り当てて処理させる制御工程と
を含む画像処理方法。
【請求項８】
画像データに含まれる各色成分のデータごとに異なるハーフトーン手法と、前記ハーフトーン手法による処理後の出力ビット数とを選択する選択工程と、
複数のハーフトーン手法のそれぞれについて、前記出力ビット数ごとの単位画素あたりの演算量を記憶する記憶装置から、各色成分のデータごとに選択された前記ハーフトーン手法と前記出力ビット数に対応する単位画素あたりの演算量を読み出す読出工程と、
読み出された前記単位画素あたりの演算量とハーフトーン処理の対象となる画素数とに基づいて各色成分ごとの処理負荷を算出する算出工程と、
前記各色成分ごとに算出された前記処理負荷に基づいて、複数のハーフトーン処理における処理負荷が概ね均等になるか、または複数の前記ハーフトーン処理におけるハーフトーン処理の完了時刻のバラツキが最小となるように、前記各色成分のデータを前いずれかの前記ハーフトーン処理に分配する分配工程と、
それぞれ分配された前記各色成分のデータについて、それぞれ選択された前記ハーフトーン手法を用いて、複数の前記ハーフトーン処理を並列に実行する並列処理工程と、
を含む画像処理方法。
【請求項９】
制御部を有するコンピュータに対し、
前記制御部により、画像データに含まれる各色成分のデータごとに異なるハーフトーン手法を選択する選択工程と、
前記制御部により、前記各色成分のデータを、それぞれ選択された前記ハーフトーン手法を用いて、それぞれ並列に処理する際に、並列に実行される複数のハーフトーン処理における処理負荷が概ね均等になるか、または複数の前記ハーフトーン処理間における完了時刻のバラツキが最小となるように、前記各色成分のデータをいずれかの前記ハーフトーン処理に割り当てて処理させる制御工程と
を実行させるコンピュータプログラム。
【請求項１０】
記憶部と制御部とを有するコンピュータに対し、
前記制御部により、画像データに含まれる各色成分のデータごとに異なるハーフトーン手法を選択する選択工程と、
複数のハーフトーン手法について、それぞれの単位画素あたりの演算量を記憶する前記記憶部から、各色成分のデータごとに選択されたハーフトーン手法に対応する単位画素あたりの演算量を前記制御部により読み出す読出工程と、
読み出された前記単位画素あたりの演算量に基づいて、複数のハーフトーン処理における処理負荷が概ね均等になるか、または複数の前記ハーフトーン処理間における完了時刻のバラツキが最小となるように、前記制御部により、前記各色成分のデータをいずれかの前記ハーフトーン処理に分配する分配工程と、
前記制御部により、それぞれ分配された前記各色成分のデータについて、それぞれ選択された前記ハーフトーン手法を用いて、複数の前記ハーフトーン処理を並列に実行する並列処理工程と
を実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理技術に係り、とりわけハーフトーン処理に好適な画像処理技術に関する。
【背景技術】
【０００２】
入力された画像データに対して色変換処理およびハーフトーン処理を施すことで、プリンタなどの画像形成装置により高品位な出力が得られるようになる。しかしながら、高品位化を向上させようとすればするほど、色変換処理やハーフトーン処理に必要となる処理時間が大幅に増加してしまうという課題がある。
【０００３】
処理時間の短縮に効果のある手法の１つが並列処理である。色変換処理は画素を単位として実行されるため、容易に処理を並列に行うことができる。一方、ハーフトーン処理は、状況が異なる。すなわち、ハーフトーン処理には、代表的な手法として、ディザなどのパターン手法と誤差拡散手法がある。パターン手法は、画素単位で処理が行えるため並列化しやすい。一方で、誤差拡散手法は、誤差を伝播させるがゆえに複数の画素を対等に並列化することが困難である。
【０００４】
特許文献１によれば、１画素の誤差拡散処理を並列で実行する手法が提案されている。また、特許文献２によれば、隣接する２つの画素の誤差拡散処理を並列に実行する手法が提案されている。
【特許文献１】特開平０６−２６８８５２号公報。
【特許文献２】特開平２００１−１６９１０９号公報。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述の特許文献１や特許文献２に記載の発明では、処理の並列度を３重、４重と上げることが困難な手法であるため、さらなる高速化は期待できない。
【０００６】
また、カラー画像については、各色ごとに異なるハーフトーン処理を適用したほうが、より高画質化を期待できる場合がある。たとえば、ある色については誤差拡散手法を用い、他の色についてはパターン手法を用いるようにしたり、あるいは各色ごとに異なる誤差拡散手法を用いたりするが如くである。このようなケースでは、特定の色についてのハーフトーン処理が終了したとしても、他のすべての色についてハーフトーン処理が終了していなければ、次の処理を実行できないため、高速化や並列処理の効率化の妨げになる。とくに、選択できるハーフトーン手法の種類を増やせば増やすほど、各並列化処理部における処理の終了時間がバラバラとなり、並列処理の効率化が低下してしまう。一方、これを避けようとすれば、ハーフトーン手法の選択幅が狭まってしまう。このように、従来は二律背反する課題があった。
【０００７】
そこで、本発明は、このような課題および他の課題の少なくとも一つを解決することを目的とする。なお、他の課題については明細書の全体を通して理解できよう。
【課題を解決するための手段】
【０００８】
上記課題を解決すべく、本発明によれば、それぞれ並列に動作する複数のハーフトーン処理部を含む画像処理装置であって、画像データに含まれる各色成分のデータごとに異なるハーフトーン手法を選択する選択部と、前記各色成分のデータを、それぞれ選択された前記ハーフトーン手法を用いて並列にハーフトーン処理する際に、複数の前記ハーフトーン処理部における処理負荷が概ね均等になるか、または複数の前記ハーフトーン処理部間における前記ハーフトーン処理の完了時刻のバラツキが最小となるように、前記各色成分のデータをいずれかの前記ハーフトーン処理部に割り当てて処理させる制御部とを含む。
【発明の効果】
【０００９】
本発明によれば、上記構成を採用することで、各色ごとに異なるハーフトーン手法を自由に選択できるようになるだけでなく、効率良く並列処理を実行できるようになる。
【発明を実施するための最良の形態】
【００１０】
以下に本発明の上位概念、中位概念および下位概念の理解に役立つ一実施形態を示す。なお、以下の実施形態に含まれる概念について、そのすべてが特許請求の範囲に記載されているとは限らない。ただし、これは特許発明の技術的範囲から意識的に除外したのではなく、特許発明と均等の関係にあるため特許請求の範囲には記載していない場合があることを理解していただきたい。
【００１１】
［第１の実施形態］
図１は、本実施形態に係る画像処理装置の例示的な構成を示すブロック図である。入力部１０１は、処理対象となる画像データを入力する機能を有する、たとえば、スキャナ装置などである。なお、入力部１０１から入力されるデータは、１画素が１以上の色データにより構成されているとともに、各色データが２値以上で表現されるものとする。すなわち、本画像処理装置では多値画像の画素データを処理するものとする。
【００１２】
画素データ分配部１０３は、入力画像データをラスタ単位で、色変換部の数に応じて概ね均等に分割し、分割した入力画像データを各色変換部１０７、１０８に与える。分割する際には、１ラスタを構成する複数の画素データを単純に画素数に応じて等分してもよいが、さらに左余白と右余白を除いた残りの画素データだけを等分すれば、さらに効率的である。
【００１３】
例えば、色変換部の数が２で、実際に色変換が行なわれる画素数も偶数であれば、左半分の画素データを第１色変換部１０７に、右半分の画素データを第２色変換部１０８に与えることになる。一方、画素数が奇数である場合には中央の画素の画素データをどちらかの色変換部に与えればよい。一つ程度の画素の違いであれば、処理の完了時刻に顕著なバラツキは生じないからである。
【００１４】
画素数確定部１０４は、各ラスタごとに色変換処理により生成されるラスタデータの両端において連続している白画素の数を算出する。すなわち、各色ごとに左余白となる画素数と右余白となる画素数を確定する。より具体例をあげて説明すると、色変換部１０７，１０８がＲＧＢの画像データをＣＭＹＫのラスタデータに色変換する場合、入力画素データが白（Ｒ＝Ｇ＝Ｂ＝最大値）でなくても、ＣＭＹＫのいずれかの成分は０になることが多い。一般に、入力画素データの内容に依存して、ＣＭＹＫの各色成分ごとの両端に生じる余白のサイズは顕著に異なる。よって、両端の余白をハーフトーン処理の対象から除外することで処理時間を短縮できる効果がある。
【００１５】
ハーフトーン手法選択部１１１は、各色ごとにハーフトーン手法を個別に選択する選択部である。たとえば、ユーザ等による設定指示に応じて、各色ごとに異なるハーフトーン手法を選択することができる。どの色にどのハーフトーン手法が選択されているかの情報は、処理負荷分散部１０６と各ハーフトーン処理部１０９，１１０に伝達される。なお、選択部１１１は、処理対象となる各色の成分データを分析し、好適なハーフトーン手法を動的に選択するようにしてもよい。
【００１６】
処理負荷算出部１０６は、選択部１１１から受信した各色の画素データに施されるハーフトーン手法に関する情報に基づいて、各色ごとのハーフトーン処理の処理負荷を算出する。なお、確定された各色の左余白および右余白の情報、処理対象となる画素の数、およびハーフトーン処理後の出力ビット数などを条件として、各色ごとのハーフトーン処理の処理負荷を算出してもよい。ハーフトーン処理の負荷を算出する方法の詳細は後述する。
【００１７】
色データ分配部１０５は、算出された処理負荷に基づいて各ハーフトーン処理部１０９，１１０の処理負荷が概ね均等となるか、または各ハーフトーン処理間の完了時刻のバラツキが最小となるように、各色ごとの画素データを各ハーフトーン処理部に割り当てる。たとえば、各ハーフトーン処理部に割り当てられる各色ごとの処理負荷の合計ができるだけ均等になるよう、各色ごとの画素データを各ハーフトーン処理部に分配する。色データ分配部１０５における分配方法の詳細は後述する。
【００１８】
各ハーフトーン処理部１０９、１１０は、分配された画素データに対して、選択部１１１により選択されたハーフトーン処理を施す。ハーフトーン処理後の画像データは出力部１０２から出力される。
【００１９】
図２は、本実施形態に係る各ハーフトーン手法の出力ビット数と単位画素あたりの演算量との関係を格納した例示的なテーブルを示す図である。図２を用いて、本実施形態における各色ごとの処理負荷を算出する方法について説明する。図２に示す第１のテーブルは、出力ビット数ごとの１画素あたりの演算量を保持している。処理負荷算出部１０６は、画像処理装置の初期化時などに設定された各色ごとのハーフトーン手法の種類を表す設定情報と、ハーフトーン処理の出力ビット数を表す設定情報とから、各色ごとの１画素当たりの演算量を算出し、第２のテーブルを作成し保持する。
【００２０】
図３は、本実施形態に係る各色ごとの単位画素当たりの演算量を保持する例示的なテーブルを示す図である。この第２のテーブルには、各色ごとに設定されたハーフトーン手法、単位画素あたりの出力ビット数、および単位画素あたりの演算量の情報が格納されている。
【００２１】
ハーフトーン処理の一例としてあげられている誤差拡散２は、２色１組でハーフトーン処理を実行する誤差拡散手法である。これは、ＣやＬＣなどの１色目の画素データと共に、ＭやＬＭなどの２色目の画素データを処理するの誤差拡散手法であり、２色目の画素当たりの演算量がすべて０となる（図３参照）。画素数確定部１０４により確定された処理対象となるラスタデータに含まれる色変換後の各色ごとの左余白と右余白の情報が、色データ分配部１０５を通じて処理負荷算出部１０６に出力される。処理負荷算出部１０６は、テーブルを参照し、ハーフトーン手法ごとにあらかじめ決められているルールに従い、各色の左余白の情報と右余白の情報とから、それぞれ実左余白の右端位置と実右余白の左端位置を算出する。誤差拡散２は２色１組で処理を行う誤差拡散であるため、実左余白の右端位置は、１色目と２色目の各左余白の右端位置のうち値の小さい方となる。実右余白の左端位置は、１色目と２色目の各右余白の左端位置のうち値の大きい方となる。ここで左余白の右端位置とは左余白に隣接する非白画素の位置のことであり、右余白の左端位置とは右余白の最も左の画素の位置のことである。また、２色目の実左余白の右端位置と実右余白の左端位置はともに０となる。誤差拡散２ではこうして算出された実右余白の左端位置と実左余白の右端位置の差が、実際にハーフトーン処理される画素数となる。
【００２２】
一方、他のハーフトーン手法として、各色単独でハーフトーン処理を行う手法を採用する場合は、その色の左余白の右端位置、右余白の左端位置の値がそのまま実左余白の右端位置、実右余白の左端位置となる。よって該ラスタにおける各色の処理負荷Ｇは、次式のように実右余白の左端位置Ｒ’と実左余白の右端位置Ｌ’の差に対して画素当たりの演算量Ｗを乗算することにより算出できる。
【００２３】
Ｇ＝（Ｒ’−Ｌ’）＊Ｗ
なお、誤差拡散２のような複数の色を１組として処理を行うハーフトーン手法を用いない場合には、実左余白および実右余白を算出する必要がない。よって、色データ分配部１０５は、処理負荷算出部１０６に各色の実左余白と実右余白の情報を出力する代わりに、各色の右余白と左余白の情報を出力することになる。
【００２４】
処理負荷算出部１０６により算出された各色の処理負荷は、色データ分配部１０５に出力される。色データ分配部１０５は、この値に従い各色のハーフトーン処理をどのハーフトーン処理部で実行するかを決定する。図３に示した例には、各色ごとに算出された処理負荷Ｇも含まれている。この処理負荷に基づいて、各ハーフトーン処理部ごとにトータルでの処理負荷が概ね均等になるように各色ごとの処理担当が決定される。たとえば、Ｃは、第１ハーフトーン処理部が担当し、Ｙ，Ｋ，ＬＣは、第２ハーフトーン処理部が担当する。このように分配すると、複数のハーフトーン処理部間における処理終了時刻のバラツキを抑制できる。色データ分配部１０５は、決定された処理担当に対して各色の画素データを分配する。
【００２５】
誤差拡散２の２色目であるＭはペアの他方となるＣとともにハーフトーン処理され、同じく２色目のＬＭは、ＬＣと共にハーフトーン処理されることが予め決まっているので、ＭやＬＭなどの２色目の画素データをハーフトーン処理部に割り当てる処理は必要がない。もちろん、どちらかのハーフトーン処理部に２色目を割り当てたとしても、結果的には処理が実行されないので、どちらかのハーフトーン処理部に２色目を割り当てるように実装しても実害はない。
【００２６】
なお、この図１に示す各部のすべてまたは一部をハードウエアで実現してもよいし、ソフトウェアとハードウエアリソースにより実現される機能として実現してもよい。
【００２７】
図４は、本実施形態に係る画像処理装置をソフトウェアにより実現する場合のハードウエア構成例を示すブロック図である。第１のＣＰＵ２０１および第２のＣＰＵ２０２は、メモリ２０３に記憶された制御プログラムに従って装置全体の動作を制御する演算回路である。なお、第１のＣＰＵ２０１および第２のＣＰＵ２０２は、物理的に複数のＣＰＵにより実現してもよいし、単一のＣＰＵによる複数スレッドの並列処理機能によって実現してもよい。入力部１０５は、例えば、原稿画像を読み取ることで画像データを入力するスキャナ装置、外部記憶装置２０５に記憶されている画像ファイルなどから画像データを入力するＩ／Ｏ部、ＬＡＮや通信回線等を介して画像データを入力する通信回路、またはキーボードやマウスなどの各種指示入力機器を含む入力デバイスである。メモリ２０３は、ＣＰＵ２０１およびＣＰＵ２０２により実行される、後述のフローチャートに示される処理を実行する制御プログラムを格納している。この制御プログラムが、例えばＣＤ−ＲＯＭやＦＤなどの記憶媒体２０６に記憶されている場合は、当該制御プログラムを外部記憶装置２０５にインストールし、さらにメモリ２０３にロードして実行されてもよい。２０４はＲＡＭで、ＣＰＵ２０１およびＣＰＵ２０２による制御処理の実行の際にワークエリアとして使用されたり、各種データを一時的に保存したりする。出力部１０６は、例えば、ディスプレイなどの表示装置やプリンタなどの画像形成装置などである。外部記憶装置２０５は、ハードディスクドライブなどの大容量メモリを備える不揮発性の記憶装置であり、本実施形態に係る制御プログラム、各種アプリケーション・プログラムに加え、本実施形態に係る画素データなどを記憶することができる。
【００２８】
図５は、本実施形態に係る画像処理の例示的なフローチャートである。本フローチャートに係る処理は、実行時にメモリ２０３に記憶される制御プログラムにより実行される。
【００２９】
ステップＳ５００において、第１のＣＰＵ２０１は、各色ごとに、ハーフトーン手法とハーフトーン処理の出力ビット数とを設定する。すなわち、複数あるハーフトーン手法や出力ビット数の中から、各色ごとに選択されて、設定されることになる。たとえば、入力部１０１に含まれるキーボード等から各色ごとにこれらの情報を設定する。ＣＰＵ２０１は、設定された情報に基づいて図３に示したような第２のテーブルを作成する。なお、画素あたりの演算量は、選択されたハーフトーン手法とその出力ビット数とに基づいて、図２に示した第１のテーブル（たとえば、外部記憶装置２０５に記憶されている。）を参照することで取得できる。これらの処理は、上述の処理負荷算出部１０６が実行する処理に相当する。
【００３０】
ステップＳ５０１において、ＣＰＵ２０１は、処理すべきラスタデータがあるかどうかを判定する。処理すべきラスタデータがあれば、ステップＳ５０２に進み、なければ本フローチャートに係る処理を終了する。
【００３１】
ステップＳ５０２において、ＣＰＵ２０１は、入力部１０１を制御することでラスタデータを入力する。入力されたラスタデータは随時ＲＡＭ２０４に記憶される。
【００３２】
ステップＳ５０３において、ＣＰＵ２０１は、入力されたラスタデータに含まれる複数の画素データを、色変換部の数に応じて概ね均等に分割する。すなわち、ＣＰＵ２０１は、各画素データを処理する色変換部を決定する。ＣＰＵ２０１は、たとえば、ＲＡＭ２０４からラスタデータを構成する画素データの数（画素数）ｎを読み出すとともに、色変換部の数ｍに相当する並列度のデータを読み出し、ｎをｍで除算する。除算の結果、商に相当する分の画素データを各色変換部に均等に分配する。除算の結果、余りが生じたときは、第１のＣＰＵ２０１よりも負荷の軽い第２のＣＰＵ２０２に割り当てる。なお、この例では、第１の色変換部１０７に関する色変換処理は、ＣＰＵ２０１が担当し、第２の色変換部１０７に関する色変換処理は、ＣＰＵ２０２が担当するものとする。
【００３３】
ステップＳ５０４において、ＣＰＵ２０１とＣＰＵ２０２は、自己に割り当てられた画素データをＲＡＭ２０４から読み出し、それぞれ並列して色変換処理を実行する。色変換後のデータは再度ＲＡＭ２０４に記憶される。
【００３４】
ステップ５０５において、ＣＰＵ２０１は、並列に実行されている複数の色変換処理がすべて終了したかどうかを判定し、すべて終了するまで待つ。並列に実行されている処理の終了通知および検出は、セマフォア、イベントフラグ、Ｍｕｔｅｘ、条件変数など、並列処理において同期を取るために一般的に用いられている手法を活用することにより実現することができる。
【００３５】
ステップＳ５０６において、ＣＰＵ２０１は、色変換された画素データについて各色ごとの左余白と右余白を確定し、ハーフトーン処理を行うべき画素数を各色ごと決定する。すなわち、各色ごとの画素データのうち値が０となっている範囲を調査することで左余白の右端位置および右余白の左端位置を取得できる。なお、本ステップの処理は、上述の画素数確定部１０４の処理に相当する。
【００３６】
ステップＳ５０７において、ＣＰＵ２０１は、ＲＡＭ２０４から第２のテーブル（図３）に格納されている各色ごとの単位画素あたりの演算量を読み出す。またＣＰＵ２０１は、処理対象となる各色ごとの画素数を算出する。さらに、ＣＰＵ２０１は、単位画素あたりの演算量と処理対象となる各色ごとの画素数を乗算することで、各色ごとの処理負荷を算出する。これらの処理は上述の色データ分配部１０５と処理負荷算出部１０６の処理に相当する。
【００３７】
ステップＳ５０８において、ＣＰＵ２０１は、並列にハーフトーン処理を実行する各ＣＰＵに対して、算出された各色ごとの処理負荷をできるだけ均等になるように分配する。たとえば、各色ごとの処理負荷Ｇを加算して総和を算出し、ハーフトーン処理の並列数で除算して商を求める。色の数に比し、通常は、ハーフトーン処理の並列数のほうが少ないことを前提とすると、各色ごとの処理負荷Ｇのうち、最大のものから順に、各並列処理部（ＣＰＵ２０１，２０２）に割り当ててゆく。もし、各並列処理部に一つづつ担当すべき色を割り当ててもなお、担当未定の色が残っている場合は、今度は最後に割り当てられた並列処理部から最初に割り当てられた並列処理部へと逆順で処理負荷を割り当ててゆく。もし、ある処理負荷をある並列処理部に割り当ててしまうと、その並列処理部の処理負荷の総和が上述の商を超えてしまうことになる場合は、当該並列処理部を飛ばして次の並列処理部に当該処理負荷を分配する。なお、担当未定の処理負荷を、どの並列処理部に割り当てたとしても商を超えてしまう場合は、その超えてしまう分と商との差が最も小さくなるように処理負荷を分配する。このようにすると、図３に示したように各並列処理部に処理負荷を概ね均等に分配できる。
【００３８】
ステップＳ５０９において、各ＣＰＵは、自己に割り当てられた色の画素データを順次読み出してハーフトーン処理を実行し、ハーフトーン処理後のデータをＲＡＭ２０４に記憶する。このように、複数のＣＰＵによって並列にハーフトーン処理を実行し、しかも処理負荷が均等に分配されているので、各ＣＰＵでの処理が概ね同時期に終了することになり、処理の効率が向上する。
【００３９】
ステップＳ５１０において、ＣＰＵ２０１は、すべての画素についてハーフトーン処理が終了したかどうかを判定する。すなわち、並列に実行されているすべてのハーフトーン処理が終了するのを待つ。
【００４０】
ステップＳ５１１において、ＣＰＵ２０１は、ハーフトーン処理済みのデータをＲＡＭ２０４から読み出して出力部１０２へ出力し、ステップＳ５０１に戻る。その後、ステップＳ５０１で処理すべきラスタデータがあるかどうかを判定し、未処理のラスタデータがなくなるまではステップＳ５０２からステップＳ５１１までの処理を繰り返し、入力画像データ全体に対して画像処理を施す。
【００４１】
以上説明したように本実施形態に係る発明によれば、複数色からなる画像データについて各色ごとに異なるハーフトーン手法を用いて画像処理する際に、処理負荷算出部１０６またはＣＰＵ２０１は、選択されたハーフトーン手法の画素あたりの演算量と、ハーフトーン処理後の１画素あたりの出力ビット数と、ハーフトーン処理の対象となる画素数とを条件として、各色ごとの処理負荷を算出する。そして、色データ分配部１０５またはＣＰＵ２０１は、ハーフトーン処理を並列に実行する複数の並列処理部に対して、算出された処理負荷を概ね均等となるように分配するか、または結果として各並列処理部における処理の終了時刻のバラツキが最小となるように分配する。これにより、各色ごとに異なるハーフトーン手法を自由に選択できるようにしたとしても、異なるハーフトーン処理を並列にかつ効率良く実行できるようになる。たとえば、あるハーフトーン処理部で処理が完了してから、他のハーフトーン処理部の処理が完了するまでに多大な待ち時間が発生してしまうといった非効率さを低減できよう。
【００４２】
［第２の実施形態］
本実施形態では、上述の第１の実施形態から、各色ごとの左余白および右余白を確定する処理（画素数確定部１０４、処理負荷算出部１０６、Ｓ５０６、Ｓ５０７）を省略することで、より簡素化を図る技術を提案する。
【００４３】
図６は、本実施形態に係る画像処理装置の例示的な構成を示すブロック図である。第１の実施形態において既に説明した個所については同一の参照符号を付すことで説明を省略する。第１の実施形態と比較すると、図からわかるように、画素数確定部１０４が省略されているとともに、処理負荷算出部１０６に代えてすべてのラスタデータに対して同じ処理負荷の値を出力する色分配指示部６１１が新たに配置されている。
【００４４】
すなわち、本実施形態によれば、各ラスタに含まれているハーフトーン処理される各色ごとの画素数はすべて同じであるため、各色ごとのハーフトーン手法と出力ビット数のみで各色のハーフトーン処理の処理負荷が確定することになる。よって、本実施形態では、複数あるハーフトーン処理部がそれぞれ担当することになる色は、画像データの処理を開始する前に決定されている。
【００４５】
図７は、本実施形態に係る画像処理の例示的なフローチャートである。なお、この処理に対応する制御プログラムは、すくなくともその実行時にはメモリ２０３に記憶されているものとする。また、ハードウエア構成は、図４で説明したものを使用するものとする。
【００４６】
ステップＳ７００において、ＣＰＵ２０１は、図２に示したような第１のテーブルから、各色ごとに設定されたハーフトーン手法と、ハーフトーン処理の出力ビット数とから、対応する画素当たりの演算量を読み出す。この場合、この画素あたりの演算量がそのまま処理負荷に相当することになる。なお、選択部１１１によって、各色ごとのハーフトーン手法と、ハーフトーン処理後の画素あたりの出力ビット数とが選択されているものとする。
【００４７】
そしてステップＳ７０１において、ＣＰＵ２０１は、並列処理部の数（並列数）に応じて、各並列処理部に対して、各画素当たりの演算量ができるだけ均等になるように、各色を各並列処理部（ＣＰＵ２０１，２０２）に分配する。すなわち、各色ごとのハーフトーン処理の担当を決定する。ＣＰＵ２０１は、各色と処理担当との対応関係をＲＡＭ２０４に記憶する。すなわち、ＣＰＵ２０１と、ＲＡＭ２０４とが図６の色分配指示部６１１に相当する。
【００４８】
その後、上述のステップＳ５０１乃至Ｓ５０５までの色変換処理を実行する。そして、ステップＳ５０８において、各ＣＰＵは、ＲＡＭ２０４から自己に割り当てられている色の情報を読み出し、自己が担当すべき色データを認識する。これにより、各色のデータが、複数のハーフトーン並列処理部に分配されたことになる。なお、ステップＳ７０１において、実質的に分配が済んでいるとも言える。その後、ステップＳ５０９乃至Ｓ５１１を実行する。
【００４９】
以上説明したように本実施形態によれば、複数色からなる画像データについて各色ごとに異なるハーフトーン手法を用いて画像処理する際に、色分配指示部６１１またはＣＰＵ２０１は、選択されたハーフトーン手法の画素あたりの演算量を読み出す。これは実質的に各色ごとの処理負荷に相当する。そして、色データ分配部１０５またはＣＰＵ２０１は、ハーフトーン処理を並列に実行する複数の並列処理部に対して、処理負荷としての単位画素あたりの演算量を概ね均等となるように分配するか、または結果として各並列処理部の処理がほぼ同時に終了するように分配する。これにより、各色ごとに異なるハーフトーン手法を自由に選択できるようにしたとしても、異なるハーフトーン処理を並列にかつ効率良く実行できるようになる。
［第３の実施形態］
ところで、パターン手法と誤差拡散手法とにはそれぞれに利点と欠点がある。パターン手法は、比較的に処理が簡素なため処理時間が短く、処理の並列化が容易であるという利点があるが、画質の面では誤差拡散手法に劣っている。一方、誤差拡散手法は、画質的に優れるが、処理が複雑なため処理時間が長いという欠点がある。このようにそれぞれ長所・短所を併せ持つため、画像データを構成する色ごとに、または画素ごとに、パターン手法と誤差拡散手法とを使い分けることが望ましい。つまり、色ごとに異なるハーフトーン処理を適用したり、あるいは同一の色であっても画素ごとに異なるハーフトーン処理を適用したりしてもよいのである。
【００５０】
例えば、画像データがＣＭＹＫの４色で構成される場合、ＣＭＹには誤差拡散手法を適用し、Ｋにはパターン手法を適用するが如くである。同一の色であって画素ごとに異なるハーフトーン処理を行う一例は次のとおりである。すなわち、中間調データを含まない文字や図形・グラフなどの部分には、高速に処理が可能なパターン手法を適用する。一方で、中間調データを含む写真などの部分には、なめらかな階調表現が可能な誤差拡散手法を適用する。これにより、画質と処理時間の両立を図ることができよう。
【００５１】
そこで、本実施形態では、画素ごとに異なるハーフトーン処理を適用する画像処理装置および画像処理方法について説明する。すべての入力画素は、いずれのタイプのハーフトーン処理を適用すべきかを表す属性（画素タイプ）をともなっているものとする。また、１つの色について、何れかのハーフトーン処理が指定される。例えば、第１のタイプによれば、ＣとＭとに誤差拡散手法が適用され、ＹとＫとにパターン手法で適用される。第２のタイプによれば、Ｃ、ＭおよびＫに誤差拡散手法が適用され、Ｙのみにパターン手法が適用される。なお、これらは単なる一例に過ぎない。
【００５２】
前述の実施形態との違いは、パターンＨＴ（ハーフトーン）バッファを新たに採用していることである。パターンＨＴバッファは、色変換処理後のデータを格納するバッファの１つである（第１、第２の実施形態では、通常、色変換後バッファだけが設けられる。）。そして、ハーフトーン処理としてパターン手法が適用される場合には、色変換処理とハーフトーン処理とを、このパターンＨＴバッファを介して連続して行う。
【００５３】
なお、以下の説明において、画素単位で独立して行えるハーフトーン処理のことをパターン手法のハーフトーン処理と呼ぶ。また、画素単位で独立して行えない（すなわち周囲画素の情報を必要とする）ハーフトーン処理のことを誤差拡散手法のハーフトーン処理と呼ぶ。
【００５４】
図８は、実施形態係る複数のバッファの関係を示す図である。具体的には、並列度を２とし、ＣとＭとに誤差拡散手法が適用され、ＹとＫとにパターン手法が適用される例を示している。
【００５５】
入力バッファ８００は、処理対象の画素データを一時的に格納するバッファである。パターンＨＴバッファ８０１および８０２は、それぞれパターン手法のハーフトーン処理が適用される色のデータを格納するバッファである。色変換後バッファ８０３は、色変換後のデータを格納するバッファである。ハーフトーン後バッファ８０４は、ハーフトーン処理が適用されたデータを格納するバッファである。
【００５６】
色変換後バッファ８０３のサイズは、各色の１ラスタを構成する全画素のデータを格納できるだけのサイズとしている。通常は、色の数だけ用意されるが、パターン手法のハーフトーン処理しか適用され色のデータに関しては省略されてもよい。一方、パターンＨＴバッファ８０１、８０２のサイズは、１ラスタを構成する画素の数に依存しない一定サイズとしている。
【００５７】
パターンＨＴバッファは、色ごとに、並列度の数だけ用意される。この例では、並列度が２なので、２つ用意されている。すべての色の分だけ用意しても良いが、パターン手法が適用される色の分だけあれば十分である。
【００５８】
例えば、６００ｄｐｉで８インチ幅の画像データを処理する場合、１ラスタの画素数は４８００となる。色変換後のデータが、画素あたり２バイトとすれば、色変換後バッファ１００３の１色当たりサイズは９６００バイトとなる。
【００５９】
一方、パターンＨＴバッファ８０１、８０２のサイズは、画素データの画素数とは無関係に、５１２バイト（２５６画素分）など、都合の良いサイズとしてよい。そのため、１ラスタの画素数よりも遥かに小さいサイズとすることができる。
【００６０】
この例では、並列度を２としている。そのため、入力バッファ８００の左半分のデータを色変換して生成されたＹおよびＫのデータ（色変換後データ）は、パターンＨＴバッファ８０１に書き出される。一方で、入力バッファ８００の右半分に対応するＹおよびＫの色変換後データは、パターンＨＴバッファ８０２に書き出される。
【００６１】
ここで注目すべきことは次の点であろう。すなわち、１ラスタのデータを処理する間にパターンＨＴバッファ８０１、８０２の１つのアドレスは、異なる入力データに関する色変換後データを書き込むために何度も使用される。それに対して、色変換後バッファ８０３における１つのアドレスは、１つの入力データに対応する色変換後データを書き込むために、１度しか使用されない。
【００６２】
図９は、実施形態に係る画像処理装置の例示的な構成を示すブロック図である。前述の実施形態のブロック図との違いは、色変換処理しか行っていなかった第１色変換部１０７および第２色変換部１０８に代わり、第１色変換ＨＴ処理部９１２および第２色変換ＨＴ処理部９１３を採用していることである。第１色変換ＨＴ処理部９１２および第２色変換ＨＴ処理部９１３は、それぞれ色変換処理に加え、パターン手法のハーフトーン処理も実行する。
【００６３】
図８で説明したパターンＨＴバッファ８０１は、第１色変換ＨＴ処理部９１２によってのみ使用される。また、パターンＨＴバッファ８０２は、第２色変換ＨＴ処理部９１３によってのみ使用される。そのため、ハードウエアにより本実施形態を実現する場合、各色変換ＨＴ処理部にパターンＨＴバッファを内蔵することが可能となる。また、当該バッファイのサイズも比較的に小さいため、当該バッファを高速な記憶装置で実現できる利点もある。
【００６４】
図４のブロック図を例に説明すると、パターンＨＴバッファ８０１、８０２は、ＣＰＵ２０１およびＣＰＵ２０２の内部にそれぞれ割り当て可能である。一方で、色変換後バッファ８０３は、ＲＡＭ２０４に割り当てられることになる。
【００６５】
図１０は、第１および第２の実施形態に係る１ラスタあたりの処理を示すフローチャートである。また、図１１は、第３の実施形態に係る１ラスタあたりの処理を示すフローチャートである。これらの図を用いて、本実施形態と前述の実施形態との違いを説明する。なお、各フローチャートにおける処理の主体は、図５および図７と同様に原則としてＣＰＵ２０１およびＣＰＵ２０２であることはいうまでもない。
【００６６】
前述の実施形態では、入力画像データにおいて１ラスタを構成する画素のすべてに色変換処理を実行しながら、その出力結果を色変換後バッファに格納（Ｓ１０００〜Ｓ１００１）する。その後、色変換後バッファから色変換後データを色ごとに読み出し、読み出したデータにハーフトーン処理が実行される（Ｓ１００２〜Ｓ１００６）。画素単位でハーフトーン手法の切り替えを行う場合、同一タイプ画素数ｍが決定される（Ｓ１００３）。同一タイプ画素数ｍとは、同じ手法のハーフトーン処理が施される画素がいくつ連続しているかを表す数である。これらｍ個の画素に対して、各色ごとに、指定されたハーフトーン手法が適用される（Ｓ１００５〜Ｓ１００６）。なお、Ｓ１０００からＳ１００１の処理は、第１色変換部１０７および第２色変換部１０８により並列に行われ、Ｓ１００２からＳ１００６までの処理が第１ＨＴ処理部１０９および第２ＨＴ処理部１１０により並列に行われる。
【００６７】
一方、第３の実施形態では、ステップＳ１１００において、ハーフトーン手法選択部１１１は、色変換処理に先立って、処理対象となっている注目画素の画素タイプ（属性）を判別する。また、注目画素の画素タイプと同一の画素タイプを持つ画素の連続数（同一タイプ画素数ｍ）を決定する。ステップＳ１１０１において、、ハーフトーン手法選択部１１１は、パターンＨＴバッファ８０１，８０２に書き込み可能な画素の数と、同一タイプ画素数ｍとを比較し、より小さい方を連続処理画素数ｎとする。
【００６８】
ステップＳ１１０２およびＳ１００１において、注目画素からｎ個目の画素について画素データを色変換処理する。ステップＳ１１０３において、全色について色変換処理が終了したと判定されると、ステップＳ１１０４に進み、ハーフトーン手法選択部１１１は、ハーフトーン処理としてパターン手法が指定されているか否かを判定する。パターン手法が指定されていれば、ステップＳ１１０５〜Ｓ１１０６において、各色の色変換後データのうち、パターン手法が指定されている色の色変換後データがパターンＨＴバッファ８０１，８０２に先頭から順次格納されてゆく。一方で、誤差拡散手法が指定されている色のデータは、色変換後バッファ８０３における注目画素に対応したアドレスに格納されてゆく。そして、パターンＨＴバッファ８０１、８０２からｎ個のデータを読み出して、ハーフトーン処理を行い、その結果をハーフトーン後バッファ８０４に書き出す。ハーフトーン後バッファ８０４の書き出しアドレスは、入力画素に対応したアドレスとする。
【００６９】
Ｓ１００２以降の処理は前述の実施形態とほぼ同じであるが、既にパターン手法のハーフトーン処理はＳ１１０６で行っている。そのため、ステップＳ１１０７において、色ごとにハーフトーン処理として誤差拡散手法が指定されているか否かを判定する。なお、色ごとにハーフトーン処理としてパターン手法が指定されているか否かを判定するようにしてもよい。判定の結果、パターン手法が指定されていれば、その色データに対するハーフトーン処理は省略し、次の色の処理へ移る。一方、誤差拡散手法が指定されていれば、ステップＳ１００５に進む。ｍ個の画素について誤差拡散手法によるハーフトーン処理を実行する（Ｓ１１０５〜Ｓ１１０８）。
【００７０】
なお、Ｓ１０００からＳ１１０６までの処理が、第１色変換ＨＴ処理部９１２および第２色変換ＨＴ処理部９１３により並列に行われる。また、Ｓ１００２からＳ１１０８までの処理が第１ＨＴ処理部１０９および第２ＨＴ処理部１１０により並列に行われる。
【００７１】
色変換後データが格納されるアドレスは、色ごとに管理される。例えば、パターン手法が適用される色については、パターンＨＴバッファ８０１，８０２内の領域が割り当てられる。一方、それ以外の色は、色変換後バッファ８０３の領域が割り当てられる。また、実行されるハーフトーン処理は、Ｓ１１００において決定される。よって、あるタイプのハーフトーン処理から他のタイプのハーフトーン処理に切り替わると、（例：パターン手法から誤差拡散手法に切り替わったときなど）、書き出しアドレスも変更されることはいうまでもない。
【００７２】
ハーフトーン後バッファ８０４における同一アドレスに対する書き込みが、複数のハーフトーン処理部（例：第１色変換ＨＴ処理部９１２および第２色変換ＨＴ処理部９１３）から同時に行われること（競合すること）は防止されるべきである。そこで、各色について、１バイトあたりの画素数の最小公倍数となる位置、あるいは８の倍数の位置で画素を分割するとよい。例えば、並列度が２で、１ビットと２ビットの色があり、左余白の右端位置が１１右余白の左端位置が４４である場合を考慮する。個の場合、４（＝８／２）の倍数である２８の位置で左右に分割せずに、８（＝８／１）の倍数である２４の位置で左右に分割する。
【００７３】
画素データ分配部１０３において、第１色変換ＨＴ処理部９１２および第２色変換ＨＴ処理部９１３に割り当てる画素を決定する際に、パターン手法のハーフトーン処理に関する処理負荷を算出し、それを色変換処理の処理負荷に加えた上で、各色変換ＨＴ処理部９１２，９１３に割り当てる画素を決定しても良い。
【００７４】
しかしながら、色変換処理に比較してパターン手法のハーフトーン処理の処理負荷は問題にならない程小さいことが多い。よって、前述の実施形態のように単に画素数が均等になるように割り当てを行っても本発明の目的を達することはできる。同様に、誤差拡散手法のハーフトーン処理に比較してパターン手法のハーフトーン処理の処理負荷は問題にならない程小さいことが多い。よって、各ＨＴ処理部に割り当てる色を決定する際に、パターン手法と誤差拡散手法の両方が切り替えられて適用される色の処理負荷については、パターン手法の処理負荷を差し引いて処理負荷を算出するのではなく、すべての画素が誤差拡散手法により処理されるものとして処理負荷を算出しても特に問題にはならない。また、パターン手法のハーフトーン処理しか行われない色の処理負荷については算出する必要はない。しかしながら、前述の実施形態と同様に処理負荷を算出して、それを考慮して各ＨＴ処理部に処理を割り当てても良い。
【００７５】
パターンＨＴバッファ８０１、８０２を利用して色変換後データにパターン手法のハーフトーン処理を施す時点では、余白および左余白は確定していない。しかしすべての入力データに対して無条件にパターン手法のハーフトーン処理を施すとすると無駄なハーフトーン処理を行うことになり処理時間の増大を招く。そこで、可能な限り無駄なハーフトーン処理を行わないための工夫を行うのが望ましい。
【００７６】
例えば、パターンＨＴバッファ８０１、８０２のすべてのデータが０の場合には、ハーフトーン処理は行わず、その代わりに対応するハーフトーン後バッファ８０４の領域に０を書き込む処理を行えばよい。あるいは次のような処理を行うことによりさらにハーフトーン後バッファ８０４への不必要な書き込みを減らすことができる。色変換処理を左から行う場合には、パターンＨＴバッファ８０１、８０２内に０でない画素が見つかるまではハーフトーン後バッファへの書き込みは行わない。そして、０でない画素が見つかったところで、その画素位置を左余白として記録する。それ以後は、パターンＨＴバッファ８０１、８０２内を右から０でない画素を探索する。右からの検索で０でない画素が見つかるたびに右余白にその画素の右隣の画素位置を上書き記録し、パターンＨＴバッファ８０１、８０２内のすべての画素が０であった場合、ハーフトーン後バッファ８０４の対応する領域に０を書き込む処理をする。
【００７７】
さらに最適な処理としては、前述の手法においてパターンＨＴバッファ８０１、８０２内のすべての画素が０であった場合、ただちにハーフトーン後バッファ８０４の対応する領域に０を書き込むのではなく、すべての画素が０であった領域を記録しておく。そして、１ラスタの色変換が終了し、右余白が確定すると、この右余白の内側にあるすべての画素が０であった領域についてハーフトーン後バッファの対応する領域に０を書き込む処理を行うとよい。
【００７８】
本実施形態の前述の実施形態に対する利点は、これまでの説明により明らかなように、さらに処理時間を短縮できることにある。一般に、情報処理処理装置では、演算装置（例：ＣＰＵ）の処理能力に比較して、記憶装置（例：メモリ）からのデータの書き込み、および読み出しできる能力（単位時間に書き込みおよび読み出しできるデータ量）は極めて低い。そのため処理能力を向上させることを目的として演算装置と記憶装置との間に高速記憶装置（キャッシュ）を設けることが多い。このようなキャッシュは、記憶装置よりも記憶できる容量は限られているものの記憶装置よりも高速にデータの書き込み／読み出しが可能であることはいうまでもない。ところで、パターンＨＴバッファ８０１、８０２は、色変換後バッファ８０３と比較して大幅に小さなサイズであり、かつ限られた処理により集中して使用される。そこで、このキャッシュをパターンＨＴバッファ８０１、８０２として使用すれば、演算装置は、記憶装置を待つことなく色変換処理からハーフトーン処理までを実行できるため、処理時間の短縮が図れるのである。
【００７９】
これまでの説明では、入力画像の１ラスタを単位として色変換処理に続きハーフトーン処理を行う場合について説明してきた。しかしながら、本実施形態は、複数ラスタに対して色変換およびパターン手法のハーフトーン処理を行った後で、その複数ラスタの色変換後データに対して誤差拡散手法のハーフトーン処理を行うように変形してもよい。
【００８０】
一括して処理を行うラスタ数をＫとすると、図８に示した色変換後バッファ８０３およびハーフトーン後バッファ１００４をそれぞれＫ本用意する必要がある。そして、図１１に示したようにＳ１０００からＳ１１０６までのステップをＫ回繰り返して行い、その後、Ｓ１００２からＳ１１０８までのステップをＫ回繰り返して行うことになる。なお、この複数ラスタに対して色変換およびパターン手法のハーフトーン処理を行う場合でもパターンＨＴバッファ８０１、８０２は並列度の数だけ用意すれば良い。
【００８１】
前述の実施形態では、色変換およびパターン手法のハーフトーン処理を１ラスタの画素を半分に分割してそれぞれの処理部に割り当てることを一例として説明した。複数ラスタを一括処理する場合には、ラスタ単位で異なる処理部に割り当てることも可能である。一方、ハーフトーン処理の分配は、各色について、複数ラスタの処理負荷の合計を算出し、それぞれの処理部に処理負荷ができるだけ均等となるように色を割り当てる。これにより複数ラスタの一括処理を実現することができる。
【００８２】
本実施形態の一態様として、画素ごとにハーフトーン処理が異なることがなく、色単位でのみハーフトーン処理が異なる場合、あるいはすべての色のすべての画素にパターン手法のハーフトーン処理を施す場合も含まれることはいうまでもない。特にすべての色のすべての画素に対して画素単位で処理できるハーフトーン処理を施す場合には、第１の実施形態におけるＳ５１０のようにすべてのハーフトーン処理部の処理終了を確認する処理を省略することができる。よって、さらに処理時間を短縮することが可能である。
【００８３】
［他の実施形態］
なお、上述の実施形態では、ハーフトーン処理だけでなく、色変換処理についても並列に処理するものとして説明した。しかしながら、当業者であれば、第１および第２の実施形態においては色変換処理までも並列に処理する必要がないことは理解できよう。すなわち、色変換処理の並列化は単なるオプションに過ぎない。
【００８４】
また、上述の実施形態では、２つのハーフトーン処理部によりハーフトーン処理を並列（２重）に実行するものとして説明した。しかしながら、本発明は２重の並列化に限定されるものではなく、色変換後の色数を限度として並列度を上げられることはいうまでもない。たとえば、Ｃ，Ｍ，Ｙ，Ｋ，Ｌｃ，Ｌｍの６色の場合は、６重まで並列度上げることができる。
【００８５】
さらに、第３の実施形態では、２つの色変換ハーフトーン処理部８０１，８０２と、２つのハーフトーン処理部１０９、１１０とにより、それぞれ並列（２重）処理を実行するものとして説明した。しかしながら、本発明は２重の並列化に限定されるものではなく、より並列度を増しても良い。例えば、色変換ハーフトーン処理部については、入力画像の画像全体における総画素数を限度として並列度を増加させることができる。また、ハーフトーン処理部については、色変換後の色数を限度として並列度を増加させることができることはいうまでもない。
【００８６】
以上、様々な実施形態を詳述したが、本発明は、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。例えば、スキャナ、プリンタ、スキャナ、ＰＣ、複写機、複合機及びファクシミリ装置の如くである。
【００８７】
なお、本発明は、前述した実施形態の各機能を実現するソフトウェアプログラム（本実施形態では図５、７、１０または１１に示すフローチャートに対応したプログラム）を、システム若しくは装置に対して直接または遠隔から供給し、そのシステム若しくは装置に含まれるコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される。
【００８８】
従って、本発明の機能・処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、上記機能・処理を実現するためのコンピュータプログラム自体も本発明の一つである。
【００８９】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【００９０】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などがある。
【００９１】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明の構成要件となる場合がある。
【００９２】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【００９３】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【００９４】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【００９５】
【図１】図１は、本実施形態に係る画像処理装置の例示的な構成を示すブロック図である。
【図２】図２は、本実施形態に係る各ハーフトーン手法の出力ビット数と画素当たりの演算量との関係を格納した例示的なテーブルを示す図である。
【図３】図３は、本実施形態に係る各色ごとの１画素当たりの演算量を保持する例示的なテーブルを示す図である。
【図４】図４は、本実施形態に係る画像処理装置をソフトウェアにより実現する場合のハードウエア構成例を示すブロック図である。
【図５】図５は、本実施形態に係る画像処理の例示的なフローチャートである。
【図６】図６は、本実施形態に係る画像処理装置の例示的な構成を示すブロック図である。
【図７】図７は、本実施形態に係る画像処理の例示的なフローチャートである。
【図８】図８は、実施形態係る複数のバッファの関係を示す図である。
【図９】図９は、実施形態に係る画像処理装置の例示的な構成を示すブロック図である。
【図１０】図１０は、第１および第２の実施形態に係る１ラスタあたりの処理を示すフローチャートである。
【図１１】図１１は、第３の実施形態に係る１ラスタあたりの処理を示すフローチャートである。
【図１】
2006042312.tif 000003
【図２】
2006042312.tif 000004
【図３】
2006042312.tif 000005
【図４】
2006042312.tif 000006
【図５】
2006042312.tif 000007
【図６】
2006042312.tif 000008
【図７】
2006042312.tif 000009
【図８】
2006042312.tif 000010
【図９】
2006042312.tif 000011
【図１０】
2006042312.tif 000012
【図１１】
2006042312.tif 000013