(57)【要約】【課題】  プリンタなどの画像出力装置において、入力画像の階調データに対して所定の手法により行う階調データ変換の処理速度を向上させる画像処理技術を提供すること。【解決手段】  セル内の画素の重心に近い画素を選択するようにしてセルを生成し、セルの重心に所定の階調値を付与するハーフトーン処理において、入力画像の中央ラインに沿ったハーフトーン処理を行うことによって、未処理画素をもつ画像領域を上下に分断し、それぞれの領域に対して、並行してハーフトーン処理を行うことによって処理速度の向上を図る。【選択図】      図８
2006025220.tif 000002
【特許請求の範囲】
【請求項１】
画素ごとに、多数の階調数で表された階調値をもつ入力画像に階調変換を行い、所定の階調数で表された階調値をもつ出力画像を取得する画像処理装置であって、
前記画素の階調値の総和が閾値以上となるまで新たな画素を次々に選択して画素群を生成し、前記画素群のうち、所定の画素に対して所定の階調数で表された階調値を付与して行う階調変換処理を、並行して行うことを特徴とする画像処理装置。
【請求項２】
画素ごとに、多数の階調数で表された階調値をもつ入力画像に階調変換を行い、所定の階調数で表された階調値をもつ出力画像を取得する画像処理装置であって、
前記画素の階調値の総和が閾値以上となるまで新たな画素を次々に選択して画素群を生成し、複数の前記画素群を取得する画素群生成部と、
前記画素群ごとに、前記画素群の所定の画素に対して所定の階調数で表された階調値を付与する階調値付与部と、を備え、
前記画素群生成部および前記階調値付与部は、前記画素群ごとに行う処理を並行して行うことを特徴とする画像処理装置。
【請求項３】
請求項２に記載の画像処理装置において、
前記画素群生成部は、前記入力画像を複数の領域に分割して、各領域ごとに前記画素群を生成することを特徴とする画像処理装置。
【請求項４】
請求項３に記載の画像処理装置において、
前記画素群生成部は、前記入力画像の画像領域を分断する直線状のラインに沿って次々と前記画素群を生成することにより、前記入力画像を前記画素群が生成されていない、複数の領域に分割することを特徴とする画像処理装置。
【請求項５】
請求項４に記載の画像処理装置において、
前記画素群生成部は、前記入力画像の略中央を通る直線状のラインに沿って次々に前記画素群を生成することにより、前記入力画像を前記画素群が生成されていない、複数の領域に分割することを特徴とする画像処理装置。
【請求項６】
請求項２に記載の画像処理装置において、
前記画素群生成部は、各前記画素群を互いに所定の距離以上離れた位置に生成することを特徴とする画像処理装置。
【請求項７】
請求項６に記載の画像処理装置において、
前記画素群生成部は、前記入力画像のうち未処理の画像領域について、所定の走査方法に基づき、走査開始位置から所定の走査方向に沿って次々と前記画素群を生成しながら、
生成している画素群が前記走査開始位置から所定の距離以上離れたときに、所定の走査方法に基づいた新たな走査開始位置から所定の走査方向に沿って新たな画素群を生成することを特徴とする画像処理装置。
【請求項８】
請求項１ないし７のいずれか一項に記載の画像処理装置において、
前記階調値付与部は、生成した前記画素群における階調値の総和が前記閾値を超えたとき、階調値と閾値とを差分した階調値を、前記画素群生成部が最後に選択した前記画素に戻すことを特徴とする画像処理装置。
【請求項９】
請求項１ないし８のいずれか一項に記載の画像処理装置において、
前記画素群生成部は、生成した画素群の重心位置から最も近い画素を新たに選択するようにして、前記画素群を生成し、前記画素群の重心位置に基づいて決定した画素に階調値を付与することを特徴とする画像処理装置。
【請求項１０】
請求項１ないし９のいずれか一項に記載の画像処理装置において、
前記画素群生成部は、画素選択のための第１の基準点を設定し、前記第１の基準点に基づいて、画素ごとの階調値の総和が閾値以上となるまで前記画素を選択するようにして前記画素群を生成し、
前記階調値付与部は、生成した前記画素群に基づいて第２の基準点を決定し、前記第２の基準点に基づいて決定した画素に階調値を付与することを特徴とする画像処理装置。
【請求項１１】
請求項１０に記載の画像処理装置において、
前記画素群生成部は、前記第１の基準点を、画素を所定の回数選択するごとに更新させることを特徴とする画像処理装置。
【請求項１２】
請求項１１に記載の画像処理装置において、
前記第１の基準点は、選択した画素の位置から演算した中心位置であり、前記第２の基準点は、前記画素群の画素の位置と階調値とから演算した重心位置であることを特徴とする画像処理装置。
【請求項１３】
請求項１２に記載の画像処理装置において、
前記第１の基準点は、前記選択した画素の位置から演算した中心位置であり、前記第２の基準点は、前記画素群の画素の位置から演算した中心位置であることを特徴とする画像処理装置。
【請求項１４】
画素ごとに、多数の階調数で表された階調値をもつ入力画像に階調変換を行い、所定の階調数で表された階調値をもつ出力画像を取得する画像処理方法であって、
前記画素の階調値の総和が閾値以上となるまで新たな画素を次々に選択して画素群を生成し、複数の前記画素群を取得する画素群生成ステップと、
前記画素群ごとに、前記画素群の所定の画素に対して所定の階調数で表された階調値を付与する階調値付与ステップと、を備え、
前記画素群生成ステップおよび前記階調値付与ステップを、前記画素群ごとに並行して行うことを特徴とする画像処理方法。
【請求項１５】
画素ごとに、多数の階調数で表された階調値をもつ入力画像に階調変換を行い、所定の階調数で表された階調値をもつ出力画像を取得する画像処理プログラムであって、
コンピュータを、
前記画素の階調値の総和が閾値以上となるまで新たな画素を次々に選択して画素群を生成し、複数の前記画素群を取得する画素群生成部、
前記画素群ごとに、前記画素群の所定の画素に対して所定の階調数で表された階調値を付与する階調値付与部、として機能させ、
前記画素群生成部および前記階調値付与部は、前記画素群ごとに行う処理を並行して行うことを特徴とする画像処理プログラム。
【請求項１６】
請求項１５に記載の画像処理プログラムを記録したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリンタなどの画像出力装置において、入力画像の階調データに対して所定の手法により行う階調データ変換の処理速度を向上させる画像処理技術に関する。
【背景技術】
【０００２】
従来より、レーザープリンタやインクジェットプリンタなど画像出力装置では、入力画像の階調データを画素ごとに所定の閾値で２値化し、２値化によって所定の階調値が付与された画素の位置に、所定の大きさのドットを形成して印刷用紙に印刷することにより、印刷物として出力画像を出力することが行われている。ここで、多値の階調データを、２値化した階調データに変換する処理のことをハーフトーン処理と一般に称している。
【０００３】
ハーフトーン処理については、形成するドットの位置によって、出力画像に、例えばドットが鎖状につながるなど、入力画像には存在しなかった特異パターンが発生することがある。そこで、このような特異パターンの発生を抑えるため、例えば、ドットのつながりを少なくする技術が特許文献１に提案されている。
【０００４】
また、ハーフトーン処理として誤差拡散法を用いた際に、処理を並列化することにより処理速度の向上を図る技術が特許文献２に提案されている。
【０００５】
【特許文献１】特開平１１−２７５２８号公報
【特許文献２】特開２０００−１２５１２２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
特許文献１では、入力画像の画素について、階調データの階調値合計が閾値に達するまで所定のテーブルにより画素を探索してセルを生成し、セルの中央付近の位置にドットを形成する技術が開示されている。しかし、特許文献１に記載の技術では、セルの生成、ドットの形成に要する演算量が多くなり、各セルの処理を逐次的に行う必要があるため処理速度を向上させることができないという課題があった。
【０００７】
また、特許文献１におけるハーフトーン処理では、誤差拡散法における特異パターンの発生を抑えるため、セルを構成する画素の探索を所定の探索順を記録したテーブルを用いて行う方法が提案されているが、テーブル内で左側に存在する画素は、既に処理済みの場合が多く、結果的に生成されるセルが歪んだ形（例えば三日月型）となってしまう。かかる形状のセルでは、セルの中央付近がそのセルの外側に位置することもある。このようなセルについては、セルの中央付近の位置にドットを形成させると、隣のセルのドットと重なってしまうことが生じるため、出力ドットの偏りが発生し、結果的に特異パターンを発生させてしまうという課題があった。
【０００８】
特許文献２における処理では、誤差拡散法によると、誤差に所定の重みをつけて他の画素に伝播させるため、伝播方向が特定の方向に偏ってしまう。また、この重みの分布を変化させるといった処理は行わないので常に一定の方向に伝播することになる。したがって、特許文献２にある技術では、誤差拡散法による量子化に伴って生ずる画素値差分を同じ方向に拡散するため、量子化ノイズが増幅されて特異パターンが生じてしまうという課題があった。
【０００９】
本発明は、このような課題の少なくとも一部を解決し、特異パターンの発生を抑えた出力画像を得るため、特別なテーブルを用いず量子化ノイズの増幅が少なく、且つ、高速に処理することのできる画像処理装置、画像処理方法、画像処理プログラム、またはそのプログラムを記録した記録媒体を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明では、画素ごとに、多数の階調数で表された階調値をもつ入力画像に階調変換を行い、所定の階調数で表された階調値をもつ出力画像を取得する画像処理装置であって、画素の階調値の総和が閾値以上となるまで新たな画素を次々に選択して画素群を生成し、画素群のうち、所定の画素に対して所定の階調数で表された階調値を付与して行う階調変換処理を、並行して行うことを要旨とする。
【００１１】
この構成によれば、画素ごとに、多数の階調数で表された入力画像の階調値について、画素の階調値の総和が閾値以上となるまで、階調データの階調変換未処理画素を選択して画素群（以下、「セル」と呼ぶ）を生成する。そして、生成したセル内の画素の階調値合計が閾値以上となったセルの所定画素に、Ｎ種類の階調値を付与するようにして階調変換処理を行う。そして、画像処理装置が、この階調変換処理を並行して処理することができる。例えば、画像処理装置に階調変換処理を別々に実行することのできるＣＰＵなどの処理単位を複数備えていた場合では、並行処理を行うことによって、処理単位の利用効率を高めて処理の高速化を図り、処理時間を短縮することができる。また、画素の選択に際して、選択順をセルごとに変更しなくても画素の選択順がバラツクことになるため、生成されるセルの形状が不規則となり、特異パターンの発生を抑えた視覚的に快適な出力画像を得ることができる。
【００１２】
本発明では、画素ごとに、多数の階調数で表された階調値をもつ入力画像に階調変換を行い、所定の階調数で表された階調値をもつ出力画像を取得する画像処理装置であって、画素の階調値の総和が閾値以上となるまで新たな画素を次々に選択して画素群を生成し、複数の画素群を取得する画素群生成部と、画素群ごとに、画素群の所定の画素に対して所定の階調数で表された階調値を付与する階調値付与部と、を備え、画素群生成部および階調値付与部は、画素群ごとに行う処理を並行して行うことを要旨とする。
【００１３】
このようにすれば、画素群生成部が生成した複数のセルについて、画素群生成部および階調値付与部は、各セルごとに処理するようにして並行処理を行うので、処理の高速化を図り、処理時間を短縮することができる。なお、本発明の画像処理装置は、セルごとに行う処理は、各々異なる演算回路により演算して行うことがより望ましい。
【００１４】
ここで、画素群生成部は、入力画像を複数の領域に分割して、各領域ごとに画素群を生成することが好ましい。
【００１５】
このようにすれば、分割した領域ごとにセルを生成することにより、セルごとに行う処理は別々の領域について行われるので、並列処理で同時に生成される複数のセルが互い生成時の画素選択に干渉しあって、不自然なセルの形状となることがない。したがって、セルをひとつずつ生成して処理を行う場合と同様のセル形状を得ることができ、並行処理を行うことによって生成される画像の画質が劣化することがない。なお、分割して得られる領域の数は、画像処理装置に処理を別々に実行することのできるＣＰＵなどの処理単位と同じ数にしておくことが望ましい。
【００１６】
ここで、画素群生成部は、入力画像の画像領域を分断する直線状のラインに沿って次々と画素群を生成することにより、入力画像を画素群が生成されていない、複数の領域に分割することが好ましい。
【００１７】
このようにすれば、入力画像の画像領域を分断する直線状のラインに沿って画素群を生成することによって、セルの生成されていない領域を複数得ることができる。例えば、入力画像の画像領域を単純に複数の領域に分割してセルを生成する場合と比較すると、領域を分割した境界線付近のセルの形状に偏りが生じる可能性が低減する。したがって、境界線付近に特異パターンが発生して画質が不連続に変化することがなく、視覚的に快適な画像を得ることができる。
【００１８】
ここで、画素群生成部は、入力画像の略中央を通る直線状のラインに沿って次々に画素群を生成することにより、入力画像を画素群が生成されていない、複数の領域に分割することが好ましい。
【００１９】
このようにすれば、略中央を通る直線状のラインによって、入力画像はほぼ同一の面積（画素数）をもつ階調変換の行われていない領域を複数得ることができる。例えば、同等の処理速度をもつ複数の処理単位により並列処理を行うとすると、各領域に対する処理に要する時間はほぼ同一になる。すなわち、ある領域に対する処理のみが終了し、その領域の処理を行っていた処理単位に処理を行っていない時間が発生することが少なくなる。したがって、画像処理装置のもつ処理能力を効率良く活用できるので、装置全体としての処理の高速化を図ることができる。なお、異なる処理速度をもつ複数の処理単位により並列処理を行う場合には、各処理単位の処理速度の大小に合わせた面積（画素数）となるように入力画像を分割することが望ましい。
【００２０】
ここで、画素群生成部は、各画素群を互いに所定の距離以上離れた位置に生成するとしてもよい。
【００２１】
このようにすれば、画素群生成部は、所定の距離以上離れた位置にセルを生成するので、並列処理する際に並行して生成される複数のセルが、互いに、画素の選択に影響を及ぼし合うことを防ぐことができる。
【００２２】
ここで、画素群生成部は、入力画像のうち未処理の画像領域について、所定の走査方法に基づき、走査開始位置から所定の走査方向に沿って次々と画素群を生成しながら、生成している画素群が走査開始位置から所定の距離以上離れたときに、所定の走査方法に基づいた新たな走査開始位置から所定の走査方向に沿って新たな画素群を生成することが好ましい。
【００２３】
これによれば、生成しているセルが走査開始位置から所定の距離以上離れたときに、所定の走査方法に基づいて新たな走査開始位置からセルを生成するようにして処理を行う。そして、始めの開始位置から始まったセルの生成を行いながら、新たな開始位置から始まるセルの生成を行うようにして、セルごとの並行処理を行う。したがって、ここでいう所定の距離を、互いのセルが重なり合わない程度の距離にしておけば、互いの処理に影響を及ぼし合うことなく、所定の走査順にしたがって処理を行うことができる。また、例えば、ＲＡＭ上に入力画像を記憶し、ＲＡＭ上の画素値を読み出して処理に用いるとした場合では、走査開始位置から所定の走査方向に沿った画素周辺の画素の画素値のみをメモリより読み出し、処理に用いることとすれば良い。したがって、処理に必要なデータ量が少なくなり、必要となるメモリのバンド幅を小さくすることができる。
【００２４】
ここで、階調値付与部は、生成した画素群における階調値の総和が閾値を超えたとき、階調値と閾値とを差分した階調値を、画素群生成部が最後に選択した画素に戻すとしてもよい。
【００２５】
このようにすれば、閾値を超えたセルに最後に組み入れられた画素に、閾値を超えた分の階調値を戻しているため、誤差データの階調値を階調変換処理の途中で失われることがなく、元の画像とほぼ同じ位置に階調値が残るため、入力データに忠実なドットを形成させることができる。
【００２６】
ここで、画素群生成部は、生成した画素群の重心位置から最も近い画素を新たに選択するようにして、画素群を生成し、画素群の重心位置に基づいて決定した画素に階調値を付与するとしてもよい。
【００２７】
このようにすれば、セルの生成処理に際して、常にセルの重心に最も近い画素を選択してセルに組み入れていくため、生成されるセルの形状はセルの重心を中心としたおおよそ円形状になる。そして、その円のおおよそ中心位置に階調値を付与することとなる。したがって、例えば、画素ごと均一な階調値をもつデータに対して階調変換処理を行い階調値を付与する場合、階調値が付与された画素間の距離がほぼ均一となる。このように、階調値の分散性が良くなるので、快適な出力画像を得ることができる。
【００２８】
ここで、画素群生成部は、画素選択のための第１の基準点を設定し、第１の基準点に基づいて、画素ごとの階調値の総和が閾値以上となるまで画素を選択するようにして画素群を生成し、階調値付与部は、生成した画素群に基づいて第２の基準点を決定し、第２の基準点に基づいて決定した画素に階調値を付与するとしてもよい。
【００２９】
このようにすれば、セルの生成に際してセルに組み入れる画素を選択するための基準点と、生成したセルに形成するドットの位置を決定する基準点とを区別することになる。例えば、組み入れる画素をセルの形状によって特定される基準点を用いて選択し、セル内の各画素の階調値とは無関係にセルを生成することができる。したがって、セルの形状のみに着目して、組み入れる画素を選択することができる。
【００３０】
ここで、画素群生成部は、第１の基準点を、画素を所定の回数選択するごとに更新させることが好ましい。
【００３１】
このようにすれば、例えば、生成されるセルが第１の基準点を固定にした場合よりも円状に形成される可能性が高くなり、ドット間距離が均一に保たれ快適な出力画像を得ることが可能となる。
【００３２】
ここで、第１の基準点は、選択した画素の位置から演算した中心位置であり、第２の基準点は、画素群の画素の位置と階調値とから演算した重心位置としてもよい。
【００３３】
このようにすれば、セルに組み入れる画素の選択を各画素の位置を基準に演算すればよく、重心を演算する場合に比べて計算処理に関する処理負荷を軽減できる。また形成するドットの位置は、生成したセルの重心とするため、入力画像の階調データに忠実なドットをセル内に形成することができる。
【００３４】
ここで、第１の基準点は、選択した画素の位置から演算した中心位置であり、第２の基準点は、画素群の画素の位置から演算した中心位置としてもよい。
【００３５】
このようにすれば、例えば、画素選択に用いる基準点およびドットを形成させるための基準点を決定する処理に際して、両方とも画素の階調値を含めた演算を行う必要がなくなるので、計算量を少なくして装置全体の処理効率を上げることができる。
【００３６】
また、上記目的を達成する本発明の画像処理方法は、画素ごとに、多数の階調数で表された階調値をもつ入力画像に階調変換を行い、所定の階調数で表された階調値をもつ出力画像を取得する画像処理方法であって、画素の階調値の総和が閾値以上となるまで新たな画素を次々に選択して画素群を生成し、複数の画素群を取得する画素群生成ステップと、画素群ごとに、画素群の所定の画素に対して所定の階調数で表された階調値を付与する階調値付与ステップと、を備え、画素群生成ステップおよび階調値付与ステップを、画素群ごとに並行して行うことを特徴とする。
【００３７】
この構成によれば、並行して処理を行うことにより処理に要する時間を短縮することができる。
【００３８】
また、本発明はコンピュータプログラムまたはそのプログラムを記録した記録媒体としてもよい。すなわち、画素ごとに、多数の階調数で表された階調値をもつ入力画像に階調変換を行い、所定の階調数で表された階調値をもつ出力画像を取得する画像処理プログラムであって、コンピュータを、画素の階調値の総和が閾値以上となるまで新たな画素を次々に選択して画素群を生成し、複数の画素群を取得する画素群生成部、画素群ごとに、画素群の所定の画素に対して所定の階調数で表された階調値を付与する階調値付与部、として機能させ、画素群生成部および階調値付与部は、画素群ごとに行う処理を並行して行うことを特徴とする。また、このプログラムを記録した記録媒体としては、フレキシブルディスクやＣＤ−ＲＯＭ、ＩＣカード、パンチカードなど、コンピュータが読み取り可能な種々の媒体を利用することができる。
【発明を実施するための最良の形態】
【００３９】
次に、本発明を実施するための最良の形態を説明する。
【００４０】
図１は、本発明が適用されるシステム全体を示す構成図である。全体としてホストコンピュータ１０と、画像出力装置２０とから構成される。
【００４１】
ホストコンピュータ１０は、アプリケーション部１１とラスタライズ部１２とから構成される。アプリケーション部１１は、文字データ、図形データ、ビットマップデータ等の印刷対象となる出力画像用のデータを生成する。例えば、ホストコンピュータ１０でワードプロセッサや図形ツールなどのアプリケーションプログラムを使用してキーボード等の操作により文字データや図形データなどを生成する。そして生成したこれらのデータを、ラスタライズ部１２へ出力する。もとより、ホストコンピュータ１０は、スキャナなどの画像入力装置（図示せず）から出力されるデータを受け付け、このデータをアプリケーション部１１が生成するデータとしてラスタライズ部１２へ出力するものとしても差し支えない。
【００４２】
ラスタライズ部１２は、アプリケーション部１１から出力された印刷対象のデータを画素ごと（又はドットごと）に８ビットの階調データに変換する。本実施形態では、Ｒ（レッド）、Ｇ（グリーン）、Ｂ（ブルー）の色毎で、画素ごとに８ビットの階調データを出力する。したがって、出力される階調データは、画素ごとに“０”から“２５５”までの２５６種類の値（階調値）を有することになる。ラスタライズ部１２における階調データの生成処理は、実際にはホストコンピュータ１０に実装されたドライバによって行われる。ラスタライズ部１２から出力される階調データは、画像出力装置２０に出力される。
【００４３】
画像出力装置２０は、全体として画像処理部３０と印刷エンジン４０とから構成される。画像処理部３０では、ホストコンピュータ１０から出力された階調データ（入力画像に対して、まず色補正処理および色変換処理を行ったのち、ハーフトーン処理（階調変換処理）、パルス幅変調処理を行い、処理後のデータ（出力画像）が印刷エンジン４０に出力され、この印刷エンジン４０にて実際に印刷用紙等の記録媒体への印刷が行われる。
【００４４】
画像処理部３０は、大別して、色補正・色変換部３１と、ハーフトーン処理部（階調変換手段）３３と、パルス幅変調部３４と、を備えている。
【００４５】
色補正・色変換部３１は、ホストコンピュータ１０より入力される２５６種類の階調値を有するＲＧＢ各８ビット（計２４ビット）の階調データを受け取り、印刷エンジン４０にて実際に印刷された印刷物が良好な色を表現できるように、色補正表３２を用いてＲＧＢの階調データの色補正処理を行う。その後、補正したＲＧＢの階調データを、ＲＧＢからＣＭＹＫに色変換処理を行う。ここで、Ｃはシアン、Ｍはマゼンタ、Ｙはイエロー、Ｋはブラックを示している。
【００４６】
ハーフトーン処理部３３は、色補正・色変換部３１から出力されるＣＭＹＫの階調データに対して、所定の種類の階調値を閾値とした量子化データ（２値あるいは４値などの多値の値）に変換し、その量子化データを出力する。本実施形態では、ハーフトーン処理として、複数の画素からなるセル（画素群）の重心に基づいて画素を新たに選択してセルを構成し、その重心にドットを生成させる処理（Ｃｉｒｃｕｌａｒ  Ｃｅｌｌ法、以下ＣＣ法）を用いる。ＣＣ法の具体的な内容については後述する。
【００４７】
図２は、ハーフトーン処理部３３の構成を示した図である。このように、ハーフトーン処理部３３は、第１ハーフトーン処理部３３ａと、第２ハーフトーン処理部３３ｂと、を備えている。そして、第１ハーフトーン処理部３３ａおよび第２ハーフトーン処理部３３ｂは、それぞれ、画素群の重心を用いて画素群を生成する画素群生成部３５と、画素群の重心に階調値を付与してドットを生成する階調値付与部３６と、を有している。したがって、画素群生成部３５および階調値付与部３６により行われるＣＣ法の処理を、第１ハーフトーン処理部３３ａおよび第２ハーフトーン処理部３３ｂが、それぞれ独立して行うことができる。
【００４８】
パルス幅変調部３４は、ハーフトーン処理部３３から出力された量子化データを入力し、この量子化データに対して所定のパルス幅をもったレーザ駆動パルスを、駆動データとして生成する。そして、この駆動データを印刷エンジン４０に出力する。
【００４９】
印刷エンジン４０は、レーザドライバ４１とレーザーダイオード（ＬＤ）４２とから構成される。レーザドライバ４１は、入力された駆動データから、レーザーダイオード４２を駆動する制御データを生成し、レーザーダイオード４２に出力する。レーザーダイオード４２は、レーザドライバ４１から出力された制御データに基づいて駆動され、さらに図示しない感光ドラムや転写ベルトが駆動されて、実際に印刷用紙等の記録媒体にホストコンピュータ１０からのデータが印刷されることになる。
【００５０】
次に、図３を参照して、画像出力装置２０の具体的構成について説明する。ここで、図１の画像出力装置２０のうち、色補正・色変換部３１、色補正表３２、ハーフトーン処理部３３およびパルス幅変調部３４は、図３におけるＣＰＵ２２、ハードディスク２３、ＲＯＭ２４、およびＲＡＭ２５に対応している。画像出力装置２０は、全体として、入力インターフェース（Ｉ／Ｆ）２１、ＣＰＵ２２、ハードディスク２３、ＲＯＭ２４、ＲＡＭ２５、印刷エンジン４０とを備えており、それらはバスを介して互いに接続されている。入力Ｉ／Ｆ２１は、ホストコンピュータ１０と画像出力装置２０とのインターフェースの役割を果たす。入力Ｉ／Ｆ２１には、所定の伝送方式により伝送されたホストコンピュータ１０からのＲＧＢ階調データが入力され、画像出力装置２０が処理を行うことのできるデータに変換される。ここで、ＲＧＢ階調データは、一旦ＲＡＭ２５に格納される。
【００５１】
ＣＰＵ２２は、バスを介して、入力Ｉ／Ｆ２１、ハードディスク２３、ＲＯＭ２４、ＲＡＭ２５、印刷エンジン４０のそれぞれと接続され、ハードディスク２３またはＲＯＭ２４に格納されたプログラムを読み出して、後述するハーフトーン処理等の各種処理を行う。これらの処理を記録したプログラムは、予めハードディスク２３やＲＯＭ２４に格納されていることとしてもよいし、例えばＣＤ−ＲＯＭなどのコンピュータが読み取り可能な記録媒体によって外部から供給され、図示しないＣＤ−Ｒ／ＲＷドライブを介して画像出力装置２０に備えられたハードディスク２３に記憶することによって格納されるものとしてもよい。もとより、インターネットなどのネットワーク手段を介して、プログラムを供給するサーバー等にアクセスし、データをダウンロードすることによって格納されるものとしてもよい。
【００５２】
ここで、図３に示すように、本画像出力装置２０には、第１のＣＰＵ２２ａと第２のＣＰＵ２２ｂとが備えられており、所定のオペレーションシステムの下、第１のＣＰＵ２２ａ、第２のＣＰＵ２２ｂがそれぞれ独立して、ハードディスク２３、ＲＯＭ２４、ＲＡＭ２５にアクセスし、後述するハーフトーン処理を行うことができる。そして、この第１のＣＰＵ２２ａを中心としてハードディスク２３、ＲＯＭ２４、およびＲＡＭ２５が動作することにより、上述した第１ハーフトーン処理部３３ａとして機能する。また、第２のＣＰＵ２２ｂを中心としてハードディスク２３、ＲＯＭ２４、およびＲＡＭ２５が動作することにより、第２ハーフトーン処理部３３ｂとして機能する。
【００５３】
ＲＡＭ２５は、ＣＰＵ２２の制御によって実行される各処理のワーキングメモリとしての役割を果たし、そのバッファ領域に処理後の各種データを格納する。また、ＲＡＭ２５は、印刷エンジン４０のレーザドライバ４１を駆動するための駆動データも格納する。ここで、ＣＰＵ２２ａとＣＰＵ２２ｂは、それぞれＲＡＭ２５の記憶領域上の異なるバッファ領域を使用するように設定されている。そして、２つのＣＰＵ２２ａ，ｂが互いにＲＡＭ２５にアクセスするタイミングを考慮することなく、自由に読み書きすることのできる仕様のＲＡＭ２５を用いている。したがって、ＣＰＵ２２ａとＣＰＵ２２ｂとは互いに独立して処理を行うことができる。もっとも、ＣＰＵ２２ａおよびＣＰＵ２２ｂの各々が、別途専用のＲＡＭ２５を有する構成としてもよい。
【００５４】
印刷エンジン４０は、図１の印刷エンジンと同様の構成で、ＣＰＵ２２の制御によりＲＡＭ２５に格納された駆動データを入力し、上述した印刷処理を行う。
【００５５】
本実施形態における階調変換処理について、図４のフローチャートを用いて説明する。ステップＳ１０およびステップＳ２０の処理は色補正・色変換部３１が行う。ステップＳ３０の処理はハーフトーン処理部３３、ステップＳ４０の処理はパルス幅変調部３４が行うものである。
【００５６】
処理が開始されると、まずステップＳ１０において、色補正・色変換部３１は、ホストコンピュータ１０が出力した画像データを受け付ける入力処理を行う。
【００５７】
次に、ステップＳ２０において、色補正・色変換部３１が色補正・色変換処理を行う。ここでは、色補正・色変換部３１が、ホストコンピュータ１０より出力された画像データ（ＲＧＢデータ）を取得し、色補正表３２に基づいて、色補正を行う（色補正処理）。このとき、実際には、ホストコンピュータ１０から入力Ｉ／Ｆ２１を介してＲＡＭ２５に取り込むことで画像データの読み込みを行っている。また、このステップでは、色補正を行った画像データに対してＲＧＢデータからＣＭＹＫデータへの色座標変換の処理（色変換処理）も行っている。色変換処理は通常所定の色変換表（図示せず）を用いて行われる。したがって、ここでは、入力した画像データをＣ（シアン）・Ｍ（マゼンタ）・Ｙ（イエロー）・Ｋ（ブラック）の各色について、８ビット（２５６階調）で表現された階調データを取得し、ＲＡＭ２５の所定のバッファ領域に格納される。
【００５８】
次に、ステップＳ３０において、ハーフトーン処理部３３は、ＣＣ法によるハーフトーン処理を行う。ＣＣ法によるハーフトーン処理の具体的な処理内容について、図４および図５を用いて説明する。ここでは、“０”と“２５５”の２種類の階調値に階調変換（２値化）するものとして説明する。そして、階調値を付与する閾値を“２５５”とする。なお、図４のフローチャートで示した処理は、ＣＭＹＫのそれぞれの色成分を示した階調データに対して行われるものである。
【００５９】
ここでは、図５（ａ）に示すように、ｍ行ｎ列〜ｍ＋２行ｎ＋３列の各画素に、階調値“５０”をもっている階調データに対して、ＣＣ法によるハーフトーン処理を行う場合を例にとって、説明する。なお、ここでは、未処理画素の探索は、常に、まず水平方向に探索走査（主走査）を行い、次に垂直方向へ探索走査（副走査）を行うようにしている。したがって、未処理画素が有る場合は、入力画像の全体で最も上側にある画素のうち、最も左側にある画素を探索することになる。
【００６０】
いま、探索した未処理画素が図５（ａ）の網掛け部で示したｍ行ｎ列目の画素（ｎ，ｍ）であり、他の画素も全て未処理画素であったとする。このとき、１つの画素（ｎ，ｍ）からなるセルＣＬ１が生成されたことになる。そしてこのセルＣＬ内の画素の重心ＧＣの位置は、画素（ｎ，ｍ）の中心になる。
【００６１】
次に、セルＣＬ１内の画素の階調値の合計は“５０”となり、２５５未満であるので、セルＣＬ１の重心位置を算出し、図５（ｂ）網掛け部で示したように、算出した重心ＧＣの位置から最も近い未処理画素をセルＣＬ１に組み入れる。この場合、画素（ｎ＋１，ｍ）および画素（ｎ，ｍ＋１）の２つが重心に最も近い画素として存在するが、本実施形態では走査方向の順序に従って画素（ｎ＋１，ｍ）をセルＣＬに組み入れ、セルＣＬを拡大する。
【００６２】
次に、拡大したセル内（図５（ｃ）の太枠内の部分）の画素の階調値の合計は“１００”となり、閾値“２５５”と比較する。したがって、階調値の合計が２５５未満であるので、セル内の画素位置と画素の階調値からセルＣＬの重心ＧＣの位置を算出する（図５（ｃ））。そして、図５（ｃ）網掛け部で示したように、算出した重心ＧＣの位置から最も近い画素（ｎ，ｍ＋１）および画素（ｎ＋１，ｍ＋１）のうち、同じく走査方向の順序に従って画素（ｎ，ｍ＋１）をセルＣＬに組み入れ、セルＣＬを拡大する。
【００６３】
次に、拡大したセルＣＬ内（図５（ｄ）の太枠内の部分）の画素の階調値の合計は“１５０”となり、２５５未満であるので、セルＣＬ内の画素位置と画素の階調値からセルＣＬの重心ＧＣの位置を算出する。そして、図１０（ｄ）網掛け部で示したように、算出した重心ＧＣの位置から最も近い画素（ｎ＋１，ｍ＋１）をセルＣＬに組み入れ、セルＣＬを拡大する。
【００６４】
次に、拡大したセルＣＬ内（図５（ｅ）の太枠内の部分）の画素の階調値の合計は“２０５”となり、２５５未満であるので、セルＣＬ内の画素位置と画素の階調値からセルＣＬ１の重心ＧＣの位置を算出する。そして、図５（ｅ）網掛け部で示したように、算出した重心ＧＣの位置から最も近い画素（ｎ＋１，ｍ＋２）をセルＣＬに組み入れ、セルＣＬを拡大する。
【００６５】
次に、拡大したセルＣＬ内（図５（ｆ）の太枠内の部分）の画素の階調値の合計は２５５となり、閾値２５５を満たすので、セル内の画素の重心ＧＣに階調値“２５５”を付与する。実際には、この階調値２５５が与えられた画素の位置に、所定の色と大きさのドットを形成することによって画像を印刷するのである。
【００６６】
この場合の処理について、図６を用いて説明する。図６（ａ）は、図５（ｆ）に続けて、所定の走査方法による走査方向に従って画素（ｎ＋２，ｍ）が未処理画素として探索された状態を示している。そして図５にて説明した処理と同様に処理を行い、図６（ｂ）では画素（ｎ＋２，ｍ＋１）を、図６（ｃ）では画素（ｎ＋３，ｍ＋１）を、図６（ｄ）では画素（ｎ＋３，ｍ＋２）をセルＣＬに組み入れてセルを拡大する。
【００６７】
ここで、セルＣＬ内の画素の階調値の合計が、閾値を越える場合もある。このような場合、閾値を越えて余った誤差データを無視したセルＣＬの重心に階調値“２５５”を与える処理を行う。そして、余った階調値（以下、「戻りデータ」と呼ぶ）は、付与される階調値に寄与していないので、セルＣＬに最後に選択した画素に返すようにする。
【００６８】
例えば、図６（ｅ）に示したように、画素（ｎ＋３，ｍ＋２）がセルＣＬ２に組み入れた時点で、セルＣＬ２内の画素の階調値合計は“２６５”となり、閾値２５５を超える。そこで、超えた分の誤差データ“１０（＝２６５−２５５）”を無視し、画素（ｎ＋３，ｍ＋２）が階調値“５０（＝６０−１０）”であるとしてセルＣＬ２の重心ＧＣ２を算出する。
【００６９】
そして、図６（ｆ）に示したように、算出した重心ＧＣ２の位置に存在する画素（ｎ＋３，ｍ＋１）に階調値“２５５”を付与する。このとき、最後にセルＣＬ２に組み入れた画素（ｎ＋３，ｍ＋２）に戻りデータ“１０”を戻す。そして、画素（ｎ＋３，ｍ＋２）を階調値“１０”を有する未処理画素とし、セルＣＬ２から除外する。
【００７０】
図５および図６を用いて説明したＣＣ法によるハーフトーン処理を、階調データＣＭＹＫの各色全てについて実施してステップＳ４０を終了し、生成した“０”と“２５５”の階調値を有する量子化データを出力する。次のステップＳ４０（図４）にて印刷するための画像データとして出力する処理を行う。
【００７１】
次に、図４のフローチャートに戻って、ステップＳ４０では、階調値“２５５”の量子化データが付与された画素の位置にドットを形成するため、パルス幅変調部３４は、所定の駆動パルス幅を持ったレーザ駆動パルスを駆動データとして生成する。そして、この駆動データを印刷エンジン４０に出力することによって所定の色と大きさのドットを印刷用紙などに形成して印刷物として出力する。
【００７２】
以上、ＣＣ法によるハーフトーン処理を行った場合の処理の例について説明した。ＣＣ法では常にセルの重心に最も近い画素を組み入れてセルＣＬを生成するため、閾値を付与する画素位置に対してほぼ円状となるセルＣＬを生成する。従って、閾値が付与された画素位置にドットを形成した場合、隣り合うドットが近かったり、あるいは重なったりする確率を減少することができ、このようなドットの重なりによる特異パターンの発生を抑えることができる。
【００７３】
一方、特許文献２における誤差拡散法を用いたハーフトーン処理では、誤差データを隣接する画素やセルに移していくため、入力画像データを歪ませ、結果的に入力画像には存在しない特異パターンを発生しやすくしてしまっていたが、ＣＣ法を用いたハーフトーン処理によれば、誤差データを元の画素に戻すため、入力画像データの歪みが小さくなり、入力画像の階調データに対して比較的忠実にハーフトーン処理を行うことができる。
【００７４】
しかし、ＣＣ法によるハーフトーン処理を行った場合、セルＣＬに新たな画素を組み入れるたびに、ＣＰＵ２２は重心を演算する必要がある。更に、ＣＰＵ２２は、求めた重心と周辺の未処理画素との距離を求めるようにして最も距離の近い画素を選択する。したがって、ＣＣ法によるハーフトーン処理では、これらの処理に要する演算量が多くなり、処理時間が長くなるという課題があった。
【００７５】
そこで、本実施形態にある画像出力装置２０は、第１のＣＰＵ２２ａおよび第２のＣＰＵ２２ｂを備え、所定のオペレーションシステムの管理下で、２つのＣＰＵ２２に各々独立した処理を並行して行わせることで、処理の高速化を図り、ハーフトーン処理に要する処理時間を短縮することとした。以下に、図４のステップＳ３０において、ハーフトーン処理を並列処理するとした処理方法について説明する。
【００７６】
図７は、ＣＣ法によるハーフトーン処理の処理を説明するための図である。図８は、並行処理するとしたＣＣ法によるハーフトーン処理の処理の流れを示すフローチャートである。以下に、図７を参照しながら、図８のフローチャートに従って処理の説明を行う。
【００７７】
なお、図８にある処理のうち、ステップＳ１００〜１１５の処理は、ハーフトーン処理部３３が有している画素群生成部３５が行い、ステップＳ１２０〜１４０の処理は階調値付与部３６が行う処理に相当する。また、ハーフトーン処理を行うに際して、ＣＰＵ２２は、ＲＡＭ２５上の記憶領域上に、入力画像の全画素ごとに処理が行われたか否かを記憶するバッファ領域を設けている。例えば、ハーフトーン処理が行われていない画素（未処理画素）に対応するバッファ領域には“０”を示すビットが割り当てられ、処理が行われた画素（処理済画素）に対応するバッファ領域には“１”を示すビットを割り当てる。このようにして、いずれの画素について処理済みであるかの判別は、ＣＰＵ２２がＲＡＭ２５のバッファ領域を参照することによって都度行い、処理済みの画素に更に処理を行うことがないようにしている。
【００７８】
処理を開始すると、始めにステップＳ１００において、ＣＰＵ２２は、ハードディスク２３またはＲＯＭ２４に格納されたプログラムを読み出して、入力画像の読み込み処理を開始する。入力画像の読み込みは、ホストコンピュータ１０から入力画像データを入力Ｉ／Ｆ２１を介してＲＡＭ２５に取り込むことで行う。このとき、ＣＭＹＫ各色成分の入力画像データは、ＲＡＭ２５の所定領域である入力バッファ領域に格納される。以下では、図７（ａ）にみられるように、全ての画素に“５０”の階調値をもつ１０×１０列のマトリクスについて処理を行うものとして説明する。
【００７９】
次に、ステップＳ１０５では、ＣＰＵ２２は、入力画像の左端の画素列のうち中央に位置する画素から、水平方向右側に向かって順に未処理画素を探索し、未処理画素があるか否かを判断する。ここで、左端の画素列のうち中央に位置する画素と、右端の画素列のうち中央に位置する画素とを結んだ線を「中央ライン」と呼ぶこととし、この中央ライン上に沿って探索を行う。そして、始めに探索された未処理画素をセル生成の最初の未処理画素となる初期画素に設定する。なお、ステップＳ１００より処理が移行しているときは、入力画像の全ての画素が未処理画素であるので、入力画像の左端の画素列の中央に位置する画素が初期画素に設定される。実際には、ＲＡＭ２５のバッファ領域を参照して、入力画像の中央ライン上にある画素のうち未処理画素であることを示す“０”が格納されている画素を探索する。例えば、図７（ａ）において、始めに、１０行×１０列の画素のうち画素（ｎ，ｍ＋４）が初期画素に設定されている。この画素画素（ｎ，ｍ＋４）より右側延長線の中央ライン上について探索を行い、未処理画素が探索された場合（Ｙｅｓ）、この未処理画素を初期画素に設定してステップＳ１１０へ進む。未処理画素がなかった場合（Ｎｏ）、ステップＳ１５０へ進む。
【００８０】
次に、ステップＳ１１０では、ＣＰＵ２２は、セルＣＬ内の画素の階調値の合計が閾値より小さいか否かを判断する。ただし、ステップＳ１０５より処理が移行している場合には、初期画素のみをセルＣＬ内の画素として判断を行う。具体的には、ＲＯＭ２４に格納した閾値を読出し、セルＣＬ内の画素の階調値と比較することにより処理を行う。図７の例では、この閾値として、階調値“２５５”を用いている。ステップＳ１１０において、セル内の画素の階調値の合計が閾値よりも小さい場合（Ｎｏ）はステップＳ１１５に進み、閾値と同じまたは大きい場合（Ｙｅｓ）はステップＳ１２０に進む。
【００８１】
ステップＳ１１５では、ステップＳ１１０において、セル内の階調値の合計が閾値より小さいと判断された場合（ＹＥＳ）について、ＣＰＵ２２は、新たな未処理画素をセルＣＬに組み入れてセルＣＬを拡大する処理を行う。ここで、本実施形態の未処理画素の選択には、セルＣＬの重心ＧＣを利用して、重心ＧＣから最も近い画素を選択することとしている。重心ＧＣを利用して画素の選択を行うことによって、最終的に生成されるセルＣＬの形状は、円状に近い形状となり、その重心ＧＣにドットを形成させることで、ドット間距離が均一となり、視覚的に快適な印刷出力を得ることができる。
【００８２】
ＣＰＵ２２は、ＲＡＭ２５のバッファ領域より初期画素の位置する画素の階調値と座標とを読み出し、新たな未処理画素を組み入れたときのセルＣＬ内の画素の重心ＧＣを演算する。ＣＰＵ２２は、具体的には、以下の演算式によりセルＣＬの重心ＧＣを求める。ここで、ｘGC，ｙGCはそれぞれ重心位置のｘ，ｙ座標である。
ｘGC＝｛｛（セルＣＬの重心ＧＣのｘ座標）×（セル内の画素の階調値合計）｝
＋｛（選択した未処理画素のｘ座標）×（選択した未処理画素の階調値）｝｝
／｛（セル内の画素の階調値合計）＋（選択した未処理画素の階調値）｝  …（１）
ｙGC＝｛｛（セルＣＬの重心ＧＣのｙ座標）×（セル内の画素の階調値合計）｝
＋｛（選択した未処理画素のｙ座標）×（選択した未処理画素の階調値）｝｝
／｛（セル内の画素の階調値合計）＋（選択した未処理画素の階調値）｝  …（２）
この演算式はＲＯＭ２４に格納され、ステップＳ１１５においてＣＰＵ２２が読み出して演算を行うことになる。もっとも、セルが初期画素のみからなる場合は、セルＣＬの重心ＧＣのｘ，ｙ座標は（０，０）として演算される。
【００８３】
また、セルＣＬの重心ＧＣおよびセルＣＬ内の画素の階調値合計は、新たな未処理画素を組み入れるたび式（１）および式（２）により算出し、最新の値をＲＡＭ２５に記憶する。こうすることによって、新たな未処理画素を組み入れたとき式（１）および式（２）において、新たな未処理画素を組み入れる前の重心ＧＣおよび階調値合計を計算する必要がなくなり、ＲＡＭ２５から直接取得するので処理の高速化を図ることができる。そして、セルＣＬを拡大する処理を終えると、セルＣＬ内の画素に対応するＲＡＭ２５のバッファ領域に、処理済画素であることを示す“１”を格納する。
【００８４】
以上に述べたように、未処理画素を選択して新たにセルＣＬに組み入れる処理（ステップＳ１１５）は、ＣＰＵ２２がセルＣＬ内の画素の重心ＧＣから最も近い距離にある画素を選択することによって行っている。しかし、重心ＧＣから等距離に複数の画素が存在する可能性がある。こうした場合、本実施形態では走査方向に探索される順に従ってＣＰＵ２２が画素を選択して、セルＣＬを拡大するようにしている。
【００８５】
次に、ステップＳ１１５を経てステップＳ１１０へ至っている場合、ＣＰＵ２２は、再びセルＣＬ内の画素の階調値の合計が閾値を越えているか否かを判断する。すなわち、新たに選択した未処理画素の階調値を含めたセルＣＬ内の画素の階調値合計が、所定の閾値未満であるか否かを判断する。閾値を超えていない場合は再びステップＳ１１５に進み、新たな未処理画素をセルＣＬに組み入れる処理を行う。閾値を超えている場合、ステップＳ１２０へ進む。
【００８６】
このように、ステップＳ１１０とＳ１１５の処理を繰り返すたびに、ＣＰＵ２２は、ステップＳ１１５で演算したセルＣＬ内にある画素の階調値の合計が、閾値と等しいか否か判断しながら閾値に達するまでセルＣＬを拡大していくことになる。
【００８７】
ステップＳ１２０では、セルＣＬ内にある画素の階調値の合計が閾値に等しいか否かを判断する。上述したように、ＲＡＭ２５に記憶されている値を参照することにより階調値の合計を取得し、閾値に等しい場合（Ｙｅｓ）、ステップＳ１２５へ進む。階調値の合計が閾値に等しくない場合（Ｎｏ）、ステップＳ１３０へ進む。
【００８８】
ステップＳ１２５では、重心ＧＣの位置を算出する。すなわち、ＣＰＵ２２は、選択した未処理画素を含めセル内の画素について、再び重心ＧＣの演算を行う。具体的なＣＰＵ２２の演算は、上述した式（１）および式（２）の演算式をＲＯＭ２４より読み出して、行うことになる。そして、このステップＳ１２５で演算した重心ＧＣの位置は、ＣＰＵ２２の制御によってＲＡＭ２５のバッファ領域に記憶されたセルＣＬの階調値の合計とともに格納される。このとき、生成するドットは、ステップＳ１１０およびＳ１１５で用いた閾値と同等の階調値を付与する。次にステップＳ１４０へ進む。
【００８９】
ステップＳ１３０では、、閾値を超える階調値分を無視してセルＣＬの重心ＧＣを算出する処理を行う。このためまず、ＣＰＵ２２は、ステップＳ１１０で求めたセルＣＬ内の階調値合計から閾値を引く演算を行う。この演算値が戻り値である。
【００９０】
このときの重心ＧＣの演算は具体的には、以下の演算式を用いる。
【００９１】
ｘGC＝｛｛（セルＣＬの重心ＧＣのｘ座標）×（セル内の画素の階調値合計）｝
−｛（最後に選択した未処理画素のｘ座標）×（ステップＳ１３０の演算値）｝｝
／｛（セル内の画素の階調値合計）−（ステップＳ１３０の演算値）｝  …（３）
ｙGC＝｛｛（セルＣＬの重心ＧＣのｙ座標）×（セル内の画素の階調値合計）｝
−｛（最後に選択した未処理画素のｙ座標）×（ステップＳ１３０の演算値）｝｝
／｛（セル内の画素の階調値合計）−（ステップＳ１３０の演算値）｝  …（４）
式（１）、式（２）とは異なり、セル内にある画素の階調値をそのまま用いるのではなく、階調値の過剰分である戻り値を引くことでセルＣＬ内の階調値の合計が閾値と同じになるようにしている。
【００９２】
この演算式は、式（１）および式（２）と同様に予めＲＯＭ２４に格納されており、ＣＰＵ２２が本ステップを実行する際にＲＯＭ２４から読み出すことによって実行される。ここでは、最終的にステップＳ１１５で選択した画素の階調値は、これまで演算した階調値の合計との和をとることで閾値と等しくなるように演算して、それをもとに重心ＧＣ位置を求めることになる。そしてＣＰＵ２２は、演算した重心ＧＣの位置データを再びＲＡＭ２５のバッファ領域に書き込む。
【００９３】
次に、ステップＳ１３５では、ＣＰＵ２２は、ステップＳ１３０で演算した値（戻りデータ）を再び、最後にセルＣＬに選択した画素の入力バッファに書き込む。これにより、戻りデータが当該画素の階調値に格納される。図７（ａ）に示す例では、閾値は“２５５”であり、ステップＳ１１０でこれまで格納した階調値は、座標（ｎ，ｍ＋４）について見ると、“３００（＝５０×６）”であるので、ＣＰＵ２２がこれより閾値を減算して“４５（＝３００−２５５）”の値が戻りデータになる。この値分の階調値は、座標（ｎ，ｍ＋４）を初期画素とするドット生成に寄与することなく、最後にセルＣＬ１に組み入れられた画素（ｎ＋１，ｍ＋２）に戻される（図７（ｂ）参照）。なお、このとき、階調値を戻された画素（ｎ＋１，ｍ＋２）は、ＲＡＭ２５のバッファ領域には“０”が付与されて、戻りデータの階調をもつ未処理画素として扱われる。すなわち、階調値を戻された画素は、有効な階調値を有しているので、再びステップＳ１０５〜Ｓ１１５の処理の対象とする。このように、戻りデータは、戻りデータを発生した元の画素に再び格納することで、入力画像の階調値に忠実なドット分布を形成することができる。
【００９４】
ステップＳ１４０では、重心ＧＣに位置する画素に、階調値の付与を行う。ここで、重心ＧＣの座標は、式（１）〜（４）の演算の結果、端数（小数部分）を有した値となっている。しかし、以上の処理でいう画素とは、印刷エンジンがドットを生成することのできる最小単位の座標を示したものであるので、この最小単位より小さな分単位でドットの座標を制御することができない。そこで、実際にドットを生成する座標を決定するため、端数を有した座標を最も近い整数値に変換する。こうして、所定の位置に階調値を付与することによってドットを生成することができる。
【００９５】
ステップＳ１４０におけるドットの生成が終了すると、次に、ステップＳ１０５へ戻り、再び未処理画素を探索する。
【００９６】
ステップＳ１０５において、中央ライン上に未処理画素がないと判断された場合（Ｎｏ）、ステップＳ１５０へ進み、入力画像のうち残りの未処理画素に対してハーフトーン処理の並列処理を行う。
【００９７】
以上の処理を終えると、図７（ｃ）に示されるように、中央ラインに沿って処理が行われるので、処理済画素により未処理領域が上下に分断される。ここで、分断された上側にある未処理画素の領域を「上側領域」、下側にある領域を「下側領域」と呼ぶことにする。以下に述べる並列処理では、上側領域と下側領域とに対して、独立したハーフトーン処理を並行して行う。
【００９８】
次に、ステップＳ１５０において行われる並列処理について、図９を参照して、図１０のフローチャートに基づいて説明する。実際には、ＣＰＵ２２ａおよびＣＰＵ２２ｂがそれぞれ、上側領域の階調データ、下側領域の階調データにＣＣ法によるハーフトーン処理を行い、上側領域と下側領域の処理を並行して行うものであるが、ここでは、まず上側領域の処理について説明する。
【００９９】
並列処理が開始されると、始めにステップＳ２００において、ＣＰＵ２２は、上側領域に未処理画素があるか否かの判定を行う。ここで、上側領域について、初期画素を探索する際、上側領域の最も下側の行について、左端の画素から右端の画素に向かって未処理画素を探索し（主走査）、未処理画素がなかった場合には、１つ上の行について探索するようにして（副走査）、次々に行ごとの探索を行う。例えば、図９（ａ）においては、画素（ｎ，ｍ＋１）が初期画素に選択される。探索の結果、未処理画素があった場合（Ｙｅｓ）、初めに探索された画素を初期画素に設定し、ステップＳ２０５へ進む。未処理画素がなかった場合、上側領域についてのハーフトーン処理を終了する。ここで、ステップＳ２０５〜ステップＳ２４０では、図８のステップＳ１１０〜ステップＳ１４０で行われた処理と同様の処理を行う。したがって、ここでは各処理の詳細な説明は省き、簡便に述べることとする。
【０１００】
ステップＳ２００において、初期画素が設定されると、次に、ステップＳ２０５において、ＣＰＵ２２は、セルＣＬ内の階調値の合計と閾値を比較して、セル生成を終了するか否かを判断する（ステップＳ２０５）。セルＣＬの終了条件を満たさなかった場合は、未処理画素をセルに組み入れることによるセルＣＬの拡大（ステップＳ２１０）、再びセル生成を終了するかの判断（ステップＳ２０５）を繰り返す。セル生成を終了すると判断されると、ＣＰＵ２２は、セルＣＬ内の階調値の合計が閾値に等しいかを判断し（ステップＳ２１５）、等しい場合そのままセルＣＬの重心を算出する（ステップＳ２２０）。セルＣＬ内の階調値の合計が閾値に等しくない場合は、閾値を越える階調値分を無視してセルＣＬ内の画素の重心を求め（ステップＳ２２５）、閾値を越えた階調値分（戻りデータ）を最後にセルＣＬに組み入れた画素に戻して、この画素を再び未処理画素とする（ステップＳ２３０）。セルＣＬの重心を求めると、重心位置情報を用いてドットを生成する（ステップＳ２４０）。このようにすると、例えば、図９（ａ）に示すように、始めに上側領域にセルＣＬ１が形成される。次に、図９（ｂ）に示す画素（ｎ＋３，ｍ＋２）を初期画素とするセルＣＬ２、図９（ｃ）に示す画素（ｎ＋５，ｍ＋２）を初期画素とするセルＣＬ３といったように上側領域内の未処理画素について次々とセルＣＬが生成される。このようにして生成されたセルについてドットを生成する処理を行うと、上側領域の未処理画素のみについてハーフトーン処理を行うことができる。
【０１０１】
次に、図１１のフローチャートに示された下側領域に対するハーフトーン処理について述べる。
【０１０２】
下側領域のハーフトーン処理を開始すると、始めに、ステップＳ３００において、下側領域について、初期画素があるか否かを判断する。ここで、下側領域について、初期画素を探索する際、下側領域の最も上側の行について、列方向に左端の画素から右端の画素までについて未処理画素を探索し、未処理画素がなかった場合には、１つ下の行について探索するようにして、次々に探索を行う。探索の結果、未処理画素があった場合（Ｙｅｓ）、初めに探索された画素を初期画素に設定し、ステップＳ３０５へ進む。未処理画素がなかった場合、上側領域についてのハーフトーン処理を終了する。
【０１０３】
下側領域の処理について、上側領域と異なる処理は、ステップＳ３００における初期画素の探索順だけである。したがって、上側領域の処理と同様に、ステップＳ３０５〜ステップＳ３４０では、図８のステップＳ１１０〜ステップＳ１４０で行われた処理と同等の処理が行われる。
【０１０４】
以上に述べたように、本実施形態では、上側領域と下側領域とに対して行うハーフトーン処理を別々に処理している。そして、第１ハーフトーン処理部３３ａ、第２ハーフトーン処理部３３ｂがそれぞれの領域に対する処理を独立して実行することにより、ハーフトーン処理の並行化を実現している。したがって、２つのＣＰＵ２２ａ，ｂを効率的に活用できるので、ハーフトーン処理の高速化を図ることができる。
【０１０５】
以上、本発明の第１の処理例について述べた。次に、第２の処理例について説明する。
【０１０６】
第２の処理例としては、入力画像の左端上側から水平方向に走査し（主走査）、次に垂直方向へ走査（副走査）するようにして初期画素の探索を行うものとして、第１のハーフトーン処理がセルＣＬを拡大する際に、このセルＣＬより一定距離離れた領域で第２のハーフトーン処理がセルＣＬを拡大するようにして、セル生成時の未処理画素の選択に互いに影響を及ぼさないようにして処理を行う。すなわち、複数のセルＣＬを同時に生成しながら互いに影響を及ぼさないように距離を監視しながら処理を行うことで、並行処理を行う。
【０１０７】
図１２は、ＣＣ法によるハーフトーン処理の第２の処理例を説明するための図である。図１３および図１４は、それぞれ、第１ハーフトーン処理手段３３ａ、第２ハーフトーン処理手段３３ｂが行う処理の流れを示すフローチャートである。以下に、図１２を参照しながら、まず図１３に従って処理の説明を行い、後に、図１４の処理について述べる。
【０１０８】
図１３に示した第１のハーフトーン処理部３３ａによる階調変換処理を開始すると、始めに、ステップＳ４００において、ＣＰＵ２２ａは、ハードディスク２３またはＲＯＭ２４に格納されたプログラムを読み出して、入力画像の読み込み処理を開始する。入力画像の読み込みは、ホストコンピュータ１０から入力画像データを入力Ｉ／Ｆ２１を介してＲＡＭ２５に取り込むことで行う。このとき、ＣＭＹＫ各色成分の入力画像データは、ＲＡＭ２５の所定領域である入力バッファ領域に格納される。このとき、ハーフトーン処理が行われていない画素（未処理画素）に対応するバッファ領域には“０”を示すビットが割り当てられ、処理が行われた画素（処理済画素）に対応するバッファ領域には“１”を示すビットを割り当てる。
【０１０９】
次に、ステップＳ４１０では、ＣＰＵ２２は、入力画像に未処理画素があるか否かを判断する。実際には、ＲＡＭ２５のバッファ領域を参照して、入力画像の中央ライン上にある画素のうち未処理画素であることを示す“０”が格納されている画素を探索することになる。
【０１１０】
次に、ステップＳ４２０では、ＣＰＵ２２は、初期画素を設定する。ここでは、ＣＰＵ２２は、まず、入力画像の未処理画素のうち、左端の画素列の最も上側にある画素を最初のセル生成の初期画素に設定する。なお、このときの画素の位置が走査開始位置である。また、ステップＳ４６０から戻ってきている場合は、この左端の画素列に設定した走査開始位置にある画素から、水平方向右側に向かって順に未処理画素を探索し、始めに探索された未処理画素を初期画素に設定する。例えば、図１２（ａ）の処理開始時点においては、画素（ｎ，ｍ）が初期画素に設定され、これより順に右側の未処理画素が初期画素に設定される。ステップＳ４６０から戻ってきている場合は、図１２（ｂ）において、左端のｎ列において、最も上側にある未処理画素である画素（ｎ，ｍ＋２）が設定される。
【０１１１】
なお、このとき、セルＣＬの生成の処理が行われる可能性のある画素は、左端の画素列に設定した画素から走査方向に従って、右端へ至るラインの周辺に位置する画素である。例えば、各画素が“１“の階調値をもつと想定すると、付与する階調値の閾値“２５５”に対して、２５５個の画素をセルに組み入れることになるので、セルの半径は約９画素分となる。このようにして、走査線方向に沿ってセルＣＬの生成に必要となる画素のおおよその範囲を推定することができるので、この使用する可能性のある範囲内の画素値のみをＲＡＭ２５のバッファ領域から読み出すようにしてもよい。このようにすれば、各ＣＰＵ２２は、処理を行うラインごとに必要となる画素値のみを読み込めばよいので、ＲＡＭ２５のメモリ帯域を小さくすることができる。
【０１１２】
次に、ステップＳ４３０では、設定した初期画素について、第１ハーフトーン処理部３３ａがハーフトーン処理を行う。なお、ここで行われる処理は、図８のステップＳ１１０〜ステップＳ１４０と同様に、セルの拡大から階調値の付与に至る処理が第１ハーフトーン処理部３３ａによって行われる。処理の詳細な内容については、既に上述されているのでここでは省くものとする。
【０１１３】
次に、ステップＳ４４０では、ＣＰＵ２２は、入力画像の左端の画素から、初期画素への距離Ｌが所定の閾値より大きいか否かを判断する。すなわち、初期画素の走査は、左端から水平方向右側へ向かって行われているので、初期画素が左端からどれだけ進んでいるかを調べる。閾値の値としては、ＣＣ法により生成されるセルＣＬの直径より大きい程度の値とするとよい。上述したように、付与する階調値の閾値“２５５”とすると、セルＣＬの半径は多くとも約９画素程度であると考えられるので、互いのセルが重なり合わないようにするためには、互いのセルＣＬの中心（初期画素）間の距離が半径の２倍だけ離れていればよいから、閾値の値としては“１８”あれば十分である。そこで、本実施形態では閾値の値を“１６”とした。もっとも、付与する階調値の閾値と入力画像の平均的な階調値から推定されるセルの大きさを求めて、閾値を設定するとしてもよい。入力画像の左端から、初期画素への距離Ｌが所定の閾値より大きい場合（Ｙｅｓ）、ステップＳ４５０へ進む。所定の閾値より小さい場合（Ｎｏ）、ステップＳ４６０へ進む。
【０１１４】
ステップＳ４５０では、第１ハーフトーン処理手段３３ａは、第２ハーフトーン処理手段３３ｂに処理を開始するトリガー信号を送信する。初期画素が画像の左端の画素から閾値より離れているので、ここで、第２ハーフトーン処理手段３３ｂが左端から初期画素を探索するようにして、セルを生成したとしても、第２ハーフトーン処理手段３３ｂが生成するセルと、第２ハーフトーン処理手段３３ｂが生成したセルとが重なり合うことがない。すなわち、セルを拡大する際に、セルに組み入れる新たな未処理画素を選択することにおいて、互いに影響を及ぼすことがない。したがって、互いに独立してセル生成の処理を行うことができる。ステップＳ４５０では、第２ハーフトーン処理を開始する合図として、第２ハーフトーン処理手段３３ｂにトリガー信号を送信する。次に、ステップＳ４６０へ進む。
【０１１５】
ステップＳ４６０では、初期画素の探索が画像の右端まで進んだか否かを判断する。右端まで処理が済んでいれば（Ｙｅｓ）、列ごとに行われる処理を終え、いったん処理を停止して、ステップＳ４７０へ進む。右端まで処理が済んでいなければ（Ｎｏ）、ステップＳ４２０へ進み、再び列単位で初期画素を設定する。
【０１１６】
ステップＳ４７０では、第２のハーフトーン処理部３３ｂから、処理開始のトリガー信号がきているか否かを判断する。トリガー信号がきている場合（Ｙｅｓ）、ステップＳ４１０へ進む。トリガー信号がきていない場合（Ｎｏ）、ステップＳ４８０へ進む。
【０１１７】
ステップＳ４８０では、一定時間処理待ちを行う。実際には、ＣＰＵ２２ａが所定の数となるまでカウンタを回すことにより行われる。一定の時間が経過した後にステップＳ４７０へ進む。
【０１１８】
そして、ステップＳ４７０では、ＣＰＵ２２が、再び第２ハーフトーン処理部３３ｂからのトリガー信号がきているか否かを判断する。このように、第２ハーフトーン処理部３３ｂからのトリガー信号を受け取るまで、ステップＳ４７０とステップＳ４８０とを繰り返し、新たに左端からハーフトーン処理を開始するタイミングを遅らせるようにする。
【０１１９】
次に、図１４に示した第２ハーフトーン処理部３３ｂが行う処理の流れについて説明する。第２ハーフトーン処理部３３ｂが行うハーフトーン処理を開始すると、始めに、ステップＳ５００において、第１のハーフトーン処理部３３ａから、処理開始のトリガー信号がきているか否かを判断する。トリガー信号がきている場合（Ｙｅｓ）、ステップＳ５２０へ進む。トリガー信号がきていない場合（Ｎｏ）、ステップＳ５１０へ進む。
【０１２０】
ステップＳ５１０では、一定時間処理待ちを行う。一定の時間が経過した後にステップＳ５００へ進む。
【０１２１】
そして、ステップＳ５００では、再び第１ハーフトーン処理部３３ａからのトリガー信号がきているか否かをＣＰＵ２２が判断する。このように、第１ハーフトーン処理部３３ａからのトリガー信号を受け取るまで、ステップＳ５００とステップＳ５１０とを繰り返し、新しく左端からハーフトーン処理を開始するタイミングを遅らせるようにする。また、第１ハーフトーン処理部３３ａによる処理と異なり、第２ハーフトーン処理部３３ｂによる処理は、第１のハーフトーン処理部３３ａから発信されたトリガー信号の受け取り確認を処理の始めに行うので、第１ハーフトーン処理部３３ａが始めの列について処理を進め、第１ハーフトーン処理部３３ａからのトリガー信号を受け取るまでは何も処理が行われない。第１ハーフトーン処理部３３ａからのトリガー信号を受け取ったとき、図１２（ｂ）に示した、第１のハーフトーン処理部３３ａによる初期画素が画像左端からの距離Ｌが、閾値より大きくなっている。したがって、第２ハーフトーン処理部３３ｂの処理を開始しても、互いに生成するセルに影響を及ぼすことがないと判断し、ステップＳ５２０以降の処理を行う。例えば、図１２（ｃ）に示したように、第１ハーフトーン処理部３３ａが処理を行った処理済画素の１画素下側にある未処理画素のうち、左端にある画素（ｎ，ｍ＋２）を初期画素として処理を行う。
【０１２２】
第１ハーフトーン処理部３３ａからのトリガー信号を受け取ると、ステップＳ５２０〜ステップＳ５７０の処理が行われるが、これは、第１ハーフトーン処理部３３ａが行うステップＳ４１０〜ステップＳ４６０と同様の処理を第２ハーフトーン処理部３３ｂが行うとするものであるので、これらの処理については説明を省くものとする。
【０１２３】
以上に述べたように、第２の処理例によると、互いに所定の距離を離すようにして、ハーフトーン処理を別々に並行して行うことができる。
【０１２４】
以上に述べた前記実施形態によれば、以下の効果が得られる。
（１）前記実施形態によると、第１ハーフトーン処理部３３ａ、第２ハーフトーン処理部３３ｂがそれぞれの領域に対する処理を独立して実行することにより、ＣＣ法によるハーフトーン処理の並行処理を実現している。したがって、２つのＣＰＵ２２ａ，ｂを効率的に活用できるので、ハーフトーン処理の高速化を図ることができる。
【０１２５】
（２）前記実施形態の処理例１では、入力画像を分割して、それぞれについて第１ハーフトーン処理部３３ａおよび第２ハーフトーン処理部３３ｂが独立して処理を行うので、処理の並行化を図りながら、第１ハーフトーン処理部３３ａおよび第２ハーフトーン処理部３３ｂの互いに影響を受けずに処理を行うことができる。したがって、処理の高速化を図りながら得られる処理結果は同等な並行処理を行うことができる。
【０１２６】
（３）前記実施形態の処理例１において、例えば、入力画像が中央に単純に２分割された場合を考えると、各領域に対してハーフトーン処理を行う際に、分割した境界付近においては、セルＣＬに組み入れる画素の選択方向が境界により限定されることになるので、領域中央付近のセルＣＬと境界付近のセルＣＬの形状が異なる可能性がある。このようなところ、処理例１では、中央ライン上にハーフトーン処理を行うことにより入力画像の未処理領域を分割しているので、中央ライン付近のセルＣＬの生成について、画像を分割したことによる影響を受けない。したがって、画質の連続した自然な画像を得ることができる。
【０１２７】
（４）前記実施形態の処理例１において、入力画像を分割する際に入力画像の中央を通るラインで分割しているので、上側領域と下側領域の面積（画素の数）は、ほとんど同じになる。従って、双方の領域にハーフトーン処理を行うために要する演算時間が大きく異なる可能性が低減する。したがって、一方の処理のみが終了している場合が少なくなるので、効率的に並行処理を行うことができる。
【０１２８】
（５）前記実施形態の処理例２では、互いに所定の距離以上はなれたセルＣＬを作るようにして、第１ハーフトーン処理部３３ａおよび第２ハーフトーン処理部３３ｂが独立して処理を行うので、処理の並行化を図りながら、第１ハーフトーン処理部３３ａおよび第２ハーフトーン処理部３３ｂの互いに影響を受けずに処理を行うことができる。したがって、処理の高速化を図りながら得られる処理結果は同等な並行処理を行うことができる。
【０１２９】
（６）前記実施形態の処理例２によると、使用する可能性のある範囲内の画素値のみをＲＡＭ２５のバッファ領域より読み出して処理を行うことができるとしている。このようにすれば、処理を行うラインごとに必要となる値のみを読み込むので、ＲＡＭ２５のメモリ帯域を小さくすることができる。
【０１３０】
以上、本発明の実施形態を説明したが、本発明はこうした実施の形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内において様々な形態で実施し得ることができる。以下、変形例を挙げて説明する。
【０１３１】
（第１変形例）本発明の第１変形例について説明する。前記実施形態では、画素選択の基準点を重心位置にして毎回画素選択時に更新するようにしていたが、第１変形例では、画素選択の基準点を、画素の階調値には関係なく、画素の座標位置を利用した中心位置（第１の基準点）とする。例えば、中心位置は、セル内の画素の座標位置を利用した中心位置であって、その位置座標を（ｘ，ｙ）とすると、中心位置の座標は以下の式により求められる（以下の式でＮはセル内の画素数、ｉはセルＣＬ内の画素を示す数字である）。
ｘ＝Σiｘi／Ｎ  …（５）
ｙ＝Σiｙi／Ｎ  …（６）
そして、この中心位置を毎回画素選択時に更新しながら、未処理画素を選択することによりセルＣＬを生成すると、毎回重心位置を計算することがないので、他の処理を含めた全体の処理速度を上げることができる。
【０１３２】
（第２変形例）また、第２変形例として、所定の画素に階調値を付与する際に、セルＣＬの重心位置を演算することなく、第１の変形例において、未処理画素の選択に用いたセルＣＬの中心位置にある画素（第２の基準点）に階調値を付与し、ドットを生成するようにしてもよい。こうすれば、重心の計算を行う必要がないので、演算量を減らすことができる。この場合、中心位置が複数の画素の間に位置することも考えられるが、かかる場合には、例えば走査方法と同じ優先順序に従ってセルＣＬ内のいずれか１つの画素を選択するようにしてもよい。
【０１３３】
（第３変形例）さらに、第３変形例として、画素選択のための基準点（第１の基準点）を毎回更新するのではなく、１回おきに更新したり、２回おきに更新したり、予め回数を決めてその回数のときに更新するようにしてもよい。毎回、画素選択の基準点を更新するのではなく、１回おきに更新することによりさらに演算量を減らすことができ、他の処理を含めた画像処理装置全体の処理速度の向上を図ることができる。さらに、初期画素の選択から４回目の未処理画素選択のときに基準点を更新し、さらにそれから３回目、２回目と順次減算し、当該回数となるときに更新することとしてもよい。
【０１３４】
（第４変形例）前記実施形態では、２つのＣＰＵ２２にそれぞれ対応する２つのハーフトーン処理部３３により処理を行うことで、並行処理を行った。第４変形例として、使用する２以上のＣＰＵを用いて処理するとしてもよい。例えば、処理例１によれば、階調データの画像領域を、上下に２分割した上で、更に左右に分割するようにして中央ラインの処理を行えば、画像を４つの領域に区分けすることができる。そして、４つのＣＰＵ２２に対応する４つのハーフトーン処理部３３を備えていれば、それぞれの領域に対して同時に４つのハーフトーン処理を並行して行うことができる。また、第２の処理例によれば、所定の閾値より離れた時点で、次の列の処理を行うとするので、所定の閾値より離れた時点で次々と処理を開始するとすれば、２以上のＣＰＵ２２による処理を行うことが可能である。このように、２以上のＣＰＵ２２を用いて、処理の並行度を高めることによって、処理速度を更に向上させることができる。
【０１３５】
（第５変形例）前記実施形態では、２つのＣＰＵ２２による並行処理を行った。しかし、必ずしもＣＰＵ２２を独立して複数備えているのではなく、少なくとも、複数の処理を同時に行うことができる構成としていればよい。例えば、複数の処理単位を備えた１つのＣＰＵにより、各処理単位が各々のハーフトーン処理を行うとしてもよい。
【０１３６】
（第６変形例）前記実施形態では、ハーフトーン処理によって、“０”と“２５５”の２種類の階調値に階調変換した。これは、以降のドットを形成する処理において、階調値“２５５”に対応した大きさのドットを打つことを想定したためである。第６変形例では、複数種類の大きさのドットを打つこととし、その複数種類の大きさのドットに対応した複数の種類の階調値に階調変換するものとしてもよい。
【０１３７】
（第７変形例）また、第７変形例として、前記実施形態における画像処理装置は、レーザープリンタにて構成するようにしたが、本発明はこれに限定されるものでなく、インクジェットプリンタなどインクを印刷媒体に付着させて印刷する方式のプリンタやサーマルプリンタなど種々のプリンタや電子写真あるいはディスプレーなどにて構成するようにしてもよい。あるいは、このようなプリンタなどの機能が組み込まれたコピー機やコンピュータ、ワープロ、ファックスなど種々の機器において本発明の画像処理装置を構成するようにしてもよい。
【図面の簡単な説明】
【０１３８】
【図１】本発明に係る一実施形態のシステム全体を示す構成図。
【図２】ハーフトーン処理部の構成を示した模式図。
【図３】画像出力装置の構成を示した模式図。
【図４】画像出力装置の行う全体の処理の流れを示したフローチャート。
【図５】ＣＣ法によるハーフトーン処理を説明する図。
【図６】ＣＣ法によるハーフトーン処理を説明する図。
【図７】ＣＣ法によるハーフトーン処理の並列処理を示した図、（ａ）処理を行う階調データを示す図、（ｂ）は中央ラインにハーフトーン処理を行う様子を示した図、（ｃ）上側領域および下側領域を示した図。
【図８】ＣＣ法によるハーフトーン処理の処理の流れを示したフローチャート。
【図９】上側領域に対するハーフトーン処理を示した図、（ａ）〜（ｃ）は処理の経過を示した図。
【図１０】上側領域に対する処理の流れを示したフローチャート。
【図１１】下側領域に対する処理の流れを示したフローチャート。
【図１２】第２の処理例による処理を説明する図、（ａ）〜（ｃ）は処理の経過を示した図。
【図１３】第１ハーフトーン処理部による処理の流れを示したフローチャート。
【図１４】第２ハーフトーン処理部による処理の流れを示したフローチャート。
【符号の説明】
【０１３９】
１０…ホストコンピュータ、１１…アプリケーション部、１２…ラスタライズ部、２０…画像処理装置としての画像出力装置、２１…入力インターフェース、２２…ＣＰＵ、２２ａ…第１のＣＰＵ、２２ｂ…第２のＣＰＵ、２３…ハードディスク、２４…ＲＯＭ、２５…ＲＡＭ、３０…画像処理部、３１…色補正・色変換部、３２…色補正表、３３…ハーフトーン処理部、３３ａ…第１ハーフトーン処理部、３３ｂ…第２ハーフトーン処理部、３５…画素群生成部、３６…階調値付与部、４０…印刷エンジン、４１…レーザドライバ、４２…レーザーダイオード、ＣＬ…画素群としてのセル、ＧＣ…重心、Ｌ…入力画像の左端の画素から初期画素への距離、ｘGC…重心のｘ座標、ｙGC…重心のｙ座標。
【図１】
2006025220.tif 000003
【図２】
2006025220.tif 000004
【図３】
2006025220.tif 000005
【図４】
2006025220.tif 000006
【図５】
2006025220.tif 000007
【図６】
2006025220.tif 000008
【図７】
2006025220.tif 000009
【図８】
2006025220.tif 000010
【図９】
2006025220.tif 000011
【図１０】
2006025220.tif 000012
【図１１】
2006025220.tif 000013
【図１２】
2006025220.tif 000014
【図１３】
2006025220.tif 000015
【図１４】
2006025220.tif 000016