(57)【特許請求の範囲】
【請求項１】
入力画像に対して複数の隣接画素で構成されるセルの単位でハーフトーン処理を行う画像処理装置において，
固定の画素数を有する各セルの画素に対応して構成されたディザマトリクスを参照して，前記入力画像の画素の入力階調値から前記セル内に網点を形成する出力階調値に変換するハーフトーン処理ユニットを有し，
前記ハーフトーン処理ユニットは，
前記セルを構成する画素の入力階調値と位置にしたがってセル内の重心位置を求める重心位置生成部と，
前記セル内の重心位置の画素を前記ディザマトリクスの網点中心画素に対応させるように前記ディザマトリクスを参照して，前記入力階調値に対応する出力階調値を生成する階調値変換部とを有し，
前記ディザマトリクスは，前記画素に対応して入力階調値と出力階調値との対応を有する複数のガンマテーブルを有し，前記複数のセルにおいて前記網点中心画素に対する所定の変位ベクトル上に配置された同一インデックス画素群それぞれに代表ガンマテーブルが割り当てられ，各代表ガンマテーブルはそれに対応する同一インデックス画素群内で平面的に分散配置された複数の拡散ガンマテーブルで構成され，当該複数の拡散ガンマテーブルは，前記入力階調値に対応して，前記代表ガンマテーブルの出力階調値の近傍にある離散的な階調値のうちいずれかを有することを特徴とする画像処理装置。
【請求項２】
請求項１において，
前記ハーフトーン処理ユニットは，さらに，
前記セルを構成する複数画素の入力階調値の合計値または平均値に対応して，当該セル内の複数画素で出力すべき階調値の合計からなる理想出力合計値を生成する理想出力合計値生成部を有し，
前記階調値変換部は，前記セル内の網点中心画素からその周囲の画素への順番で前記出力階調値を繰り返して生成し，前記セル内の前記出力階調値の合計が前記理想出力合計値に達するまで前記出力階調値の生成を繰り返し，
前記理想出力合計値は，前記複数のセルに割り当てられたディザマトリクスを参照して得られるセル内の均一入力階調値に対応する出力階調合計値の最大値近傍に設定されていることを特徴とする画像処理装置。
【請求項３】
請求項１において，
前記ハーフトーン処理ユニットは，さらに，
前記セルを構成する複数画素の入力階調値の合計値または平均値に対応して，当該セル内の複数画素で出力すべき階調値の合計からなる理想出力合計値を生成する理想出力合計値生成部を有し，
前記階調値変換部は，前記セル内の網点中心画素からその周囲の画素への順番で前記出力階調値を繰り返して生成し，前記セル内の前記出力階調値の合計が前記理想出力合計値に達するまで前記出力階調値の生成を繰り返し，
前記理想出力合計値は，前記複数のセルに割り当てられたディザマトリクスを参照して得られるセル内の均一入力階調値に対応する出力階調合計値の平均よりも大きい値に設定されていることを特徴とする画像処理装置。
【請求項４】
請求項３において，
前記理想出力合計値は，セル内の均一入力階調値に対応する出力階調合計値の最大値を超えないように設定されていることを特徴とする画像処理装置。
【請求項５】
請求項２または４において，
前記階調値変換部は，前記セル内の出力階調値の合計が前記理想出力合計値を超えたときは，当該生成した出力階調値を前記理想出力合計値を超えないような階調値に変更することを特徴とする画像処理装置。
【請求項６】
請求項１において，前記複数の拡散ガンマテーブルは、それに対応する同一インデックス画素群内においてランダムに分散配置されることを特徴とする画像処理装置。
【請求項７】
請求項１において、前記複数の拡散ガンマテーブルは、前記入力階調値に対応して、前記代表ガンマテーブルの出力階調値の近傍にある離散的な階調値のうちいずれかをランダムに有することを特徴とする画像処理装置。
【請求項８】
請求項１において，前記同一インデックス画素群の複数の拡散ガンマテーブルの出力階調値の平均値が，当該同一インデックス画素群の仮想上の代表ガンマテーブルの出力階調値にほぼ一致することを特徴とする画像処理装置。
【請求項９】
請求項１において，前記代表ガンマテーブルの出力階調値はＮビット，２N階調を有し，前記拡散ガンマテーブルの出力階調値は，Ｍビット（Ｍ＜Ｎ），２M階調を有することを特徴とする画像処理装置。
【請求項１０】
入力画像に対して複数の隣接画素で構成されるセルの単位でハーフトーン処理を行う画像処理方法において，
固定の画素数を有する各セルの画素に対応して構成されたディザマトリクスを参照して，前記入力画像の画素の入力階調値から前記セル内に網点を形成する出力階調値に変換するハーフトーン処理工程を有し，
前記ハーフトーン処理工程は，
前記セルを構成する画素の入力階調値と位置にしたがってセル内の重心位置を求める重心位置生成工程と，
前記セル内の重心位置の画素を前記ディザマトリクスの網点中心画素に対応させるように前記ディザマトリクスを参照して，前記入力階調値に対応する出力階調値を生成する階調値変換工程とを有し，
前記ディザマトリクスは，前記画素に対応して入力階調値と出力階調値との対応を有する複数のガンマテーブルを有し，前記複数のセルにおいて前記網点中心画素に対する所定の変位ベクトル上に配置された同一インデックス画素群それぞれに代表ガンマテーブルが割り当てられ，各代表ガンマテーブルはそれに対応する同一インデックス画素群内で平面的に分散配置された複数の拡散ガンマテーブルで構成され，当該複数の拡散ガンマテーブルは，前記入力階調値に対応して，前記代表ガンマテーブルの出力階調値の近傍にある離散的な階調値のうちいずれかを有することを特徴とする画像処理方法。
【請求項１１】
請求項１０において，
前記ハーフトーン処理工程は，さらに，
前記セルを構成する複数画素の入力階調値の合計値または平均値に対応して，当該セル内の複数画素で出力すべき階調値の合計からなる理想出力合計値を生成する理想出力合計値生成工程を有し，
前記階調値変換工程は，前記セル内の網点中心画素からその周囲の画素への順番で前記出力階調値を繰り返して生成し，前記セル内の前記出力階調値の合計が前記理想出力合計値に達するまで前記出力階調値の生成を繰り返し，
前記理想出力合計値は，前記複数のセルに割り当てられたディザマトリクスを参照して得られるセル内の均一入力階調値に対応する出力階調合計値の最大値近傍に設定されていることを特徴とする画像処理方法。
【請求項１２】
入力画像に対して複数の隣接画素で構成されるセルの単位でハーフトーン処理を行う画像処理プログラムにおいて，
固定の画素数を有する各セルの画素に対応して構成されたディザマトリクスを参照して，前記入力画像の画素の入力階調値から前記セル内に網点を形成する出力階調値に変換するハーフトーン処理ユニットをコンピュータに構築させ，
前記ハーフトーン処理ユニットは，
前記セルを構成する画素の入力階調値と位置にしたがってセル内の重心位置を求める重心位置生成部と，
前記セル内の重心位置の画素を前記ディザマトリクスの網点中心画素に対応させるように前記ディザマトリクスを参照して，前記入力階調値に対応する出力階調値を生成する階調値変換部とを有し，
前記ディザマトリクスは，前記画素に対応して入力階調値と出力階調値との対応を有する複数のガンマテーブルを有し，前記複数のセルにおいて前記網点中心画素に対する所定の変位ベクトル上に配置された同一インデックス画素群それぞれに代表ガンマテーブルが割り当てられ，各代表ガンマテーブルはそれに対応する同一インデックス画素群内で平面的に分散配置された複数の拡散ガンマテーブルで構成され，当該複数の拡散ガンマテーブルは，前記入力階調値に対応して，前記代表ガンマテーブルの出力階調値の近傍にある離散的な階調値のうちいずれかを有することを特徴とする画像処理プログラム。
【請求項１３】
請求項１２において，
前記ハーフトーン処理ユニットは，さらに，
前記セルを構成する複数画素の入力階調値の合計値または平均値に対応して，当該セル内の複数画素で出力すべき階調値の合計からなる理想出力合計値を生成する理想出力合計値生成部を有し，
前記階調値変換部は，前記セル内の網点中心画素からその周囲の画素への順番で前記出力階調値を繰り返して生成し，前記セル内の前記出力階調値の合計が前記理想出力合計値に達するまで前記出力階調値の生成を繰り返し，
前記理想出力合計値は，前記複数のセルに割り当てられたディザマトリクスを参照して得られるセル内の均一入力階調値に対応する出力階調合計値の最大値近傍に設定されていることを特徴とする画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，ハーフトーン処理を行う画像処理装置，画像処理方法，及び画像処理プログラムに関し，特に，固定セルによるハーフトーン処理を行うと共に低ビットの出力階調値であっても入力階調値による濃度特性と階調特性を損なうことなく画像形成できる出力階調値を生成することができる画像処理装置等に関する。
【背景技術】
【０００２】
プリンタなどの画像形成装置は，画素の多階調値からなる入力階調データをハーフトーン処理して出力階調データを生成する画像処理装置を有する。この画像処理装置により生成された出力階調データにしたがって印刷エンジンが画像形成を行う。
【０００３】
ハーフトーン処理として，多値ディザ法と称されるドット集中型のディザ法による処理が知られている。多値ディザ法では，複数の画素からなるセル内に入力階調値に応じた面積のドット（網点）を形成する。そのために，画像処理装置は，セル内の複数画素の入力階調値を入力値とし網点を形成するための出力値をテーブルにしたガンマテーブル（多値ディザテーブル）をセル内の複数画素に対応してマトリクス配置したディザマトリクスをあらかじめ設けておき，入力階調値に対してディザマトリクスの対応するガンマテーブルを参照して出力階調値を生成する。
【０００４】
このディザマトリクスとガンマテーブルを適切に設計することにより，所望のスクリーンを提供することができる。かかるハーフトーン処理を行う画像処理については，たとえば，特許文献１，２に記載されている。
【０００５】
一般的な多値ディザ法では，複数の画素からなるセル内において，入力階調値が増大するにしたがってセルの中心から網点が成長する（網点サイズが増大する）ように，ディザマトリクスが構成されている。このように，セル内の固定された中心位置に網点を成長させると，入力画像の細線がドット欠けにより線が切れたり，入力画像のエッジ部に応じた位置に網点を成長できずにエッジ部の形状にジャギー（ギザギザ形状）が発生したりする。
【特許文献１】特開平２０００−８５１８７号
【特許文献２】特開平２０００−２２８７２８号
【発明の開示】
【発明が解決しようとする課題】
【０００６】
そこで，上記の問題点を解決するために，本出願人は，セル内の各画素の階調値からセルの重心位置を求め，その重心位置に網点の中心を一致させるようにした多値ディザ法を先行する出願で提案している。例えば，以下の通りである。かかる多値ディザ法は，ＡＡＭ法（Advanced Amplitude Modulation法）と称されている。
【０００７】
特願２００４−１３７３２６号（出願前確認時点で未公開）
特願２００５−１９６２５６号（未公開）
このＡＡＭ法によれば，セル内の画素の入力階調値に対応して，出力すべき理想出力合計値をあらかじめ設定しておき，上記の重心位置の画素から順に入力階調値に対応する出力値をガンマテーブルから参照して出力し，セル内の出力値の合計が理想出力合計値を越えない範囲で重心近傍の画素に出力値を出力する。こうすることにより，セル内で不均一な入力階調値が発生した場合でも，理想出力合計値を越えて高い出力値が生成されないようにしている。
【０００８】
一方で，近年においてコストダウンの要請から，ハーフトーン処理で生成される出力値のビット数を通常の８ビットより小さい，例えば４ビットにして，その出力値から印刷エンジン内のビーム生成用の駆動パルス信号を生成するパルス幅変調器の構成を簡単化することが求められている。パルス幅変調器は，入力ビット数が少ないほどその回路構成が簡単になり，コストダウンの要請に応えることができる。
【０００９】
しかしながら，ハーフトーン処理の出力値のビット数を少なくすると，その出力値により表現可能なドットサイズの階調数が少なくなり，再生される画素内のドットに，高い階調特性や正確な濃度特性を与えることができなくなる。例えば，出力値が８ビットであれば２５６階調を表現可能であるが，出力値が４ビットであると１６階調しか表現できず，階調特性が低くなり所望の濃度を再現できないことになる。
【００１０】
そこで，本発明の目的は，ＡＡＭ法によるハーフトーン処理で生成される画像再生用の出力値の階調数が少なくても高い階調特性や正確な濃度特性を有する画像処理装置，画像処理方法及び画像処理プログラムを提供することにある。
【課題を解決するための手段】
【００１１】
上記の目的を達成するために，本発明の第１の側面によれば，入力画像に対して複数の隣接画素からなるセルの単位でハーフトーン処理を行う画像処理装置であって，ハーフトーン処理ユニットが，固定画素数の各セルに対して，複数のセルの画素に対応して構成されたディザマトリクスを参照して，入力画像の画素の入力階調値をセル内の網点形成用の出力階調値に変換する。このハーフトーン処理では，セル内の重心位置の画素をディザマトリクスの網点中心画素に対応させるようにディザマトリクスを参照して，入力階調値を出力階調値に変換する。そして，ディザマトリクスは，複数のセルの各画素に対応して入力階調値と出力階調値との対応を有する複数のガンマテーブルを有し，各セル内の網点中心画素に対する所定の変位ベクトル上に配置された同一インデックス画素群には，同じ入力階調値に対して異なる離散的な出力階調値を有するガンマテーブルが，当該同一インデックス画素群内で分散して割り当てられている。
【００１２】
このように，固定セルについて入力階調値に対応する網点形成用の出力階調値を固定セル内の重心画素と網点中心画素が対応するように生成するＡＡＭ法において，階調値変換用のガンマテーブルの出力階調値を分散または拡散させた拡散スクリーンを適用することで，低コスト化または高画質化を図ることができる。
【００１３】
その場合，ＡＡＭ法では，セル内の画素の入力階調値の平均値又は合計値に対応して，出力すべき階調値の合計からなる理想出力合計値を求め，網点中心画素からその周囲の画素への順番で出力階調値の生成を，その累積値が理想出力合計値に達するまで繰り返して行う。そして，拡散スクリーンを利用したことに伴って，理想出力合計値を，均一入力階調値のセルに対する複数のディザマトリクスによる出力階調合計値の平均より高く又はその最大値近傍にすることで，均一入力階調値のセルにおいて適正な出力階調値を生成することができる。
【００１４】
上記の目的を達成するために，本発明の第２の側面によれば，入力画像に対して複数の隣接画素で構成されるセルの単位でハーフトーン処理を行う画像処理装置において，
固定の画素数を有する各セルの画素に対応して構成されたディザマトリクスを参照して，前記入力画像の画素の入力階調値から前記セル内に網点を形成する出力階調値に変換するハーフトーン処理ユニットを有し，
前記ハーフトーン処理ユニットは，
前記セルを構成する画素の入力階調値と位置にしたがってセル内の重心位置を求める重心位置生成部と，
前記セル内の重心位置の画素を前記ディザマトリクスの網点中心画素に対応させるように前記ディザマトリクスを参照して，前記入力階調値に対応する出力階調値を生成する階調値変換部とを有し，
前記ディザマトリクスは，前記画素に対応して入力階調値と出力階調値との対応を有する複数のガンマテーブルを有し，前記複数のセルにおいて前記網点中心画素に対する所定の変位ベクトル上に配置された同一インデックス画素群それぞれに代表ガンマテーブルが割り当てられ，各代表ガンマテーブルはそれに対応する同一インデックス画素群内で平面的に分散配置された複数の拡散ガンマテーブルで構成され，当該複数の拡散ガンマテーブルは，前記入力階調値に対応して，前記代表ガンマテーブルの出力階調値の近傍にある離散的な階調値のうちいずれかを有することを特徴とする。
【００１５】
さらに，上記の目的を達成するために，本発明の第３の側面は，入力画像に対して複数の隣接画素で構成されるセルの単位でハーフトーン処理を行う画像処理方法において，
固定の画素数を有する各セルの画素に対応して構成されたディザマトリクスを参照して，前記入力画像の画素の入力階調値から前記セル内に網点を形成する出力階調値に変換するハーフトーン処理工程を有し，
前記ハーフトーン処理工程は，
前記セルを構成する画素の入力階調値と位置にしたがってセル内の重心位置を求める重心位置生成工程と，
前記セル内の重心位置の画素を前記ディザマトリクスの網点中心画素に対応させるように前記ディザマトリクスを参照して，前記入力階調値に対応する出力階調値を生成する階調値変換工程とを有し，
前記ディザマトリクスは，前記画素に対応して入力階調値と出力階調値との対応を有する複数のガンマテーブルを有し，前記複数のセルにおいて前記網点中心画素に対する所定の変位ベクトル上に配置された同一インデックス画素群それぞれに代表ガンマテーブルが割り当てられ，各代表ガンマテーブルはそれに対応する同一インデックス画素群内で平面的に分散配置された複数の拡散ガンマテーブルで構成され，当該複数の拡散ガンマテーブルは，前記入力階調値に対応して，前記代表ガンマテーブルの出力階調値の近傍にある離散的な階調値のうちいずれかを有することを特徴とする。
【００１６】
さらに，上記の目的を達成するために，本発明の第４の側面は，入力画像に対して複数の隣接画素で構成されるセルの単位でハーフトーン処理を行う画像処理プログラムにおいて，
固定の画素数を有する各セルの画素に対応して構成されたディザマトリクスを参照して，前記入力画像の画素の入力階調値から前記セル内に網点を形成する出力階調値に変換するハーフトーン処理ユニットをコンピュータに構築させ，
前記ハーフトーン処理ユニットは，
前記セルを構成する画素の入力階調値と位置にしたがってセル内の重心位置を求める重心位置生成部と，
前記セル内の重心位置の画素を前記ディザマトリクスの網点中心画素に対応させるように前記ディザマトリクスを参照して，前記入力階調値に対応する出力階調値を生成する階調値変換部とを有し，
前記ディザマトリクスは，前記画素に対応して入力階調値と出力階調値との対応を有する複数のガンマテーブルを有し，前記複数のセルにおいて前記網点中心画素に対する所定の変位ベクトル上に配置された同一インデックス画素群それぞれに代表ガンマテーブルが割り当てられ，各代表ガンマテーブルはそれに対応する同一インデックス画素群内で平面的に分散配置された複数の拡散ガンマテーブルで構成され，当該複数の拡散ガンマテーブルは，前記入力階調値に対応して，前記代表ガンマテーブルの出力階調値の近傍にある離散的な階調値のうちいずれかを有することを特徴とする。
【００１７】
上記発明の側面によれば，セルを構成する複数画素が固定化され且つ網点中心がセルの重心位置に生成されるので，細線の再現性がよくエッジのジャギーを抑制できる。しかも，拡散スクリーンを利用するので，出力階調値のビット数を低くしても画質低下がなく，または出力階調値のビット数を高く保てば画質が向上する。
【発明を実施するための最良の形態】
【００１８】
以下，図面にしたがって本発明の実施の形態について説明する。但し，本発明の技術的範囲はこれらの実施の形態に限定されず，特許請求の範囲に記載された事項とその均等物まで及ぶものである。
【００１９】
図１は，本実施の形態における画像処理装置を有するシステム構成図である。このシステムは，画像データを生成するホストコンピュータ１０と，その画像データから画像を形成して出力する画像形成装置２０とを有する。
【００２０】
ホストコンピュータ１０は，アプリケーション部１１とラスタライズ部１２とを有する。アプリケーション部１１は，ワードプロセッサや図形生成ツールなどのアプリケーションプログラムをインストールすることにより構成され，文字データ，グラフィックデータ，イメージデータなどの画像形成すべき画像データを生成する。ラスタライズ部１２は，例えばオペレーションシステムの特定の機能とプリンタドライバとにより構成され，アプリケーション部１１が生成した画像データを画素に対応した複数ビットの階調値からなる入力画像データに変換して画像形成装置２０に出力する。入力画像データがモノクロデータであれば，例えば８ビット，２５６階調値を有し，入力画像データがカラーデータであれば，ＲＧＢまたはＣＭＹＫそれぞれ８ビット，２５６階調値を有する。ラスタライズ部１２が，画像形成装置２０内の画像処理装置２１内に設けられる場合もある。
【００２１】
画像形成装置２０は，画像処理装置２１と印刷エンジン２２とを有する。画像処理装置２１は，ハーフトーン処理部２１１とパルス幅変調部２１２とを有する。ハーフトーン処理部２１１は，ホストコンピュータ１０から入力画像データを入力し，網点を形成する量子化データを有する出力画像データに変換する。パルス幅変調部２１２は，この出力画像データを画素に対応したレーザー駆動パルスに変換し，印刷エンジン２２に出力する。
【００２２】
印刷エンジン２２は，レーザードライバ２２１とレーザーダイオードやライン状発光素子２２２とを有し，前記駆動パルスに応じてレーザードライバがレーザーダイオードやライン状発光素子２２２を駆動し，感光体ドラムに出力画像データに対応する画像を形成し，印刷媒体に画像形成する。印刷エンジン２２は，電子写真方式以外にインクジェット方式や熱転写方式であってもよい。
【００２３】
本実施の形態における画像処理装置２１は，専用のハードウエア回路によって構成されることができる。または，ソフトウエアとそれを実行するプロセッサとの組合せによって構成されることもできる。
【００２４】
図２は，本実施の形態における画像処理装置２１の構成図である。この例は，画像処理装置２１がハーフトーン処理を行うプログラムを格納するＲＯＭ２５と，そのプログラムを実行するプロセッサ２４と，一次記憶メモリ２６と，ホストコンピュータから入力画像データを入力する入力インターフェース２３とで構成される。パルス幅変調部もこのプログラムとプロセッサによって構成されることができ，または専用のハードウエア回路で構成されることもできる。
【００２５】
[ＡＡＭ法]
図３は，本実施の形態におけるスクリーン構造を示す図である。図３（Ａ）は固定セルの例であり，マトリクス状の画素ＰＸに対して，８画素からなるセル２００が割り当てられている。そして，セル内の階調値が均一の場合は，各セル２００の中心付近の画素（ドットが示された画素）がセル内に形成される網点の中心画素に対応する。しかし，各セル２００の形状は画素２１０だけ右側に歪んでいるので点対称ではない。
【００２６】
それに対して，図３（Ｂ）は固定セルの例であり且つ点対称のセルの例である。すなわち，左右に隣接するセル２００が境界にある画素２１０を共有することで，実質的にセル２００の形状を点対称にする。点対称のセルを利用すれば，入力階調が均一の時のセルの重心位置はセルの中心と完全に一致する（図中のドット）。したがって，入力階調の分布がわずかに変化しただけではセルの重心位置はセルの中心画素内に位置するので，網点の中心画素がシフトすることが抑制される。したがって，非対称セルを利用した時の網点位置がずれることによる不快なノイズの発生を抑制することができる。
【００２７】
本実施の形態では，ハーフトーン処理部のスクリーンを図３（Ｂ）に示された点対称のセル構造に基づいて構成する。そして，点対称化に伴って必要となる共有画素の階調値の取り扱いを，共有画素を共有する隣接セルの数に対応する共有率に基づいて行う。
【００２８】
図４は，本実施の形態におけるスクリーン構造と共有率とを示す図である。前述したとおり，図４（Ａ）に示した点対称のセル２００では，共有画素２１０を左右の隣接セルが共有している。また，図４（Ｂ）には共有率の例が示されている。このスクリーン構造は，セルを対称化するために，各セルの中心画素から等距離にある画素２１０を隣接セルで共有する。共有画素２１０は必ずしも１個であるとは限られず，複数個を共有画素にしてもよい。また，上下の隣接セルが共有画素を共有してもよい。
【００２９】
このように，共有画素２１０は左右のセル２００で共有されているので，図中は擬似的に等分割されている。そして，共有画素を等分割するために，セル２００を構成する複数の画素に対して，その画素がセルに属する割合（共有率または寄与率）を与える。図４（Ｂ）に共有率の例が示され，共有画素２１０には左右の２つのセルで共有されているので共有率０．５（共有するセル数が２であるので，共有率＝１／２）が与えられ，それ以外の画素には共有率１．０（共有するセル数は１であるので，共有率１／１）が与えられる。共有率は共有画素２１０にのみ与えられても良いが，上記のように共有されない画素に共有率１．０を与えることで，全ての画素を区別することなく共有率により処理することができる。このように共有率を利用することで，共有画素を等分割したセルを有するスクリーンを設計することができる。
【００３０】
［ＡＡＭ法のハーフトーン処理］
本実施の形態のハーフトーン処理の概略は以下の通りである。図４に示された点対称のセル内に階調値に対応するサイズの網点を形成するディザマトリクスをあらかじめ設計しておき，ハーフトーン処理では，ディザマトリクスを参照して画素の入力階調値を網点を形成する出力階調値に変換する。ただし，セルを構成する画素の入力階調値と座標及び入力階調値の合計値に基づいてセルの重心位置を求め，その重心位置の画素が網点中心画素に対応するようにディザマトリクスの参照を行う。これにより，セル内の網点位置が重心位置に整合するので，細線や画像のエッジ部分の画質を向上させることができる。
【００３１】
さらに，ハーフトーン処理では，変換された出力階調値に共有率を乗じて共有化出力階調値を出力階調データとして出力する。つまり，複数の隣接セルにより共有されている共有画素には，共有率に応じた出力階調値を出力することで，共有画素が必要以上に高い階調値になることを防止する。また，ハーフトーン処理部では，セル内の共有化出力階調値（共有率を乗じた出力階調値）の合計がセル内で出力すべき理想出力合計値を超えないようにする。なお，理想出力合計値は，共有率を考慮して求められる値であり，例えば入力階調値の平均値に対応して印刷エンジンのデバイス特性を補正するような出力値であり，あらかじめテーブルを作成しておき，それを参照することで平均入力値から求められる。
【００３２】
本実施の形態では，入力階調値から求める平均入力階調値や重心位置は，共有率に依存しない演算により求められる。これにより入力階調値に忠実な平均値や重心位置を得ることができる。また，ディザマトリクスを参照して変換する出力階調値には共有率を乗算して共有化出力階調値として出力する。これにより共有画素に過剰な出力階調値が与えられないようにする。
【００３３】
図５，６は，本実施の形態におけるハーフトーン処理のフローチャート図である。このフローチャートにしたがってハーフトーン処理を詳述する。その場合，図７〜図１０の第１の入力階調を例にして処理を説明する。
【００３４】
［第１の入力階調値の例］
図７は，入力階調データの第１の例を示す図である。図７には，各画素の入力階調値が全て「４０」の均一階調画像の例であり，画素マトリクス１００に対して９個の画素からなるセル２００が対応付けられている。したがって，図７（Ｂ）に示されるとおり，ハーフトーン処理対象のセル２００は，それぞれ入力階調値「４０」を有する９個の画素で構成されている。
【００３５】
図５に示すように，図２の画像処理装置２１を構成するプロセッサ２４は，ハーフトーン処理プログラムをＲＯＭ２５から読み出して処理を開始する（Ｓ１０）。
【００３６】
次に，画像処理装置２１は，セル２００内の９個の画素の入力階調値の合計を演算し，それをセルの画素数「９」で除して平均入力階調値を求める（Ｓ１１）。図７の入力階調値の場合は，入力階調値の合計は「３６０」，平均入力階調値は３６０÷９個＝４０となる。
【００３７】
次に，画像処理装置２１は，セル内の画素の入力階調値と，画素の位置座標と，上記合計入力階調値とから，セル２００の入力階調値に依存した重心位置を演算する（Ｓ１２）。重心位置は，以下の演算式により求められる。
【００３８】
【数１】
0004479665.tif 000002
【００３９】
図８は，セル内における重心位置とセル内の処理順を示す図である。図８（Ａ）に示すとおり，入力階調値が均一なセル２００の場合，その重心１１０は，セル２００の中心位置になる。したがって，重心１１０が属する画素もセル２００の中心画素になる。
【００４０】
図５に示すように，画像処理装置２１は，次に平均入力階調値「４０」からセル内で出力すべき理想出力合計値を決定する（Ｓ１３）。理想出力合計値とは，点対称のセル内で出力すべき出力階調値の合計値であり，共有画素の個数と共有率に依存した値である。つまり，図７の例では，平均入力階調値「４０」にセルの画素数を乗じて，共有画素の個数と共有率を考慮した理想出力合計値「３２０」（＝４０×８画素）になる。
【００４１】
図３４（Ｂ）は，平均入力階調値と理想出力合計値との対応を示すテーブル例の図である。このテーブルには，横軸の平均入力階調値０〜２５５（８ビット，２５６階調）に対応して，理想出力合計値０〜２０４０（＝２５５×８）がテーブルの要素として設定されている。理想出力合計値の最大値が２０４０（＝２５５×８）となっているのは，セル内の７個の画素が共有率１．０であり，２個の画素が共有率０．５であるので，画素の最大階調値２５５の８倍（７＋２×０．５＝８）にすべきだからである。
【００４２】
このテーブルは，平均入力階調値に対応する理想出力合計値がノンリニアな関係になっていて，これにより印刷エンジンのデバイス特性（階調データに対する出力濃度の特性）を補正するように設定されている。図３４（Ｂ）の例では，低い平均入力階調値の領域では理想出力合計値はより高く，高い平均入力階調値の領域では理想出力合計値はより低く設定されている。これ以外にも，デバイス特性に依存して異なる特性の変換テーブルが利用可能である。
【００４３】
画像処理装置２１は，あらかじめ設定されている理想出力合計値テーブルを参照して，平均入力階調値に対応する理想出力合計値を決定する（Ｓ１３）。
【００４４】
次に，画像処理装置２１は，ディザマトリクスを参照してセル内の各画素の入力階調値をそれに対応する出力階調値に変換する（Ｓ１７）。そのために，セルの重心画素に近い順から処理できるように画素の処理順を決定する（Ｓ１４）。すなわち，図８（Ｂ）に示すとおり，重心画素が処理順「１」に，その左右上下近傍画素が処理順「２，３，４，５」に，更にその周囲の画素が処理順「６，７，８，９」と決定される。また，本実施の形態では，ディザマトリクスを参照するに際して，セルの重心位置に網点の中心画素が位置するようにするために，セルの重心画素にディザマトリクスの中心をシフトする（Ｓ１５）。
【００４５】
図９は，本実施の形態におけるディザマトリクスを示す図である。このディザマトリクスは，図９（Ａ）のインデックスマトリクスと図９（Ｂ）多値ディザテーブルとで構成される。インデックスマトリクスは，セル内の各画素がどの多値ディザテーブル（ガンマテーブル）を参照すべきかを示すテーブル番号を有し，多値ディザテーブルは，入力階調値に対する出力階調値を対応付けた４種類のテーブル０，１，２，３を有する。テーブル０は入力階調値が低い領域で最高出力階調値になっているので，網点中心画素に対応付けられる。テーブル１，２，３は，順に入力階調値がより高くなるにしたがって最高出力階調値になるので，網点の周囲の画素に対応付けられる。
【００４６】
処理工程Ｓ１５の処理では，セルの重心位置に網点の中心画素（テーブル１）が位置するようにディザマトリクスのインデックスマトリクスをシフトする。図７の例では，セルの重心位置がセルの中心にあるので，シフト量は上下共に０である。
【００４７】
図５，６の工程Ｓ１７〜Ｓ２５では，画像処理装置２１がセルの各画素の入力階調値を網点を形成する出力階調値に変換し，共有率を乗算して共有化出力階調値を生成する。そのために，図８（Ｂ）の処理順にしたがって各画素を処理する。まず，処理対象画素の番号ｎ＝１が設定される（Ｓ１６）。そして，ｎ番目（１番目）の画素の入力階調値「４０」に対応する出力階調値が図９の多値ディザテーブル０を参照して決定される（Ｓ１７）。すなわち，出力階調値は最高階調値の「２５５」となる。そして，画像処理装置は，多値ディザテーブル１により変換した出力階調値に共有率「１．０」を乗算して共有化出力階調値を求める（Ｓ１８）。
【００４８】
上記の処理Ｓ１７，Ｓ１８は，セル内の全ての画素に対して処理を終了するまで，処理順にしたがって繰り返される（Ｓ２１，Ｓ２４）。この処理を繰り返しながら，画像出力装置は，メモリ２６内の出力バッファに共有化出力階調値を記憶する（Ｓ２０）。ただし，セル内の共有化出力階調値の合計が理想出力合計値を超えない範囲で（Ｓ１９のＮＯ），上記処理Ｓ１７，Ｓ１８，Ｓ２０が繰り返される。もし，超える場合は（Ｓ１９のＹＥＳ），理想出力合計値を超えないように処理中の画素の出力階調値が調整される（Ｓ２５）。
【００４９】
図１０は，図７の例における出力バッファ内の共有化出力階調値の例を示す図である。図１０を参照しながら，図７の入力階調値の場合の上記工程Ｓ１７〜Ｓ２５について説明する。処理順番「１」の画素では，インデックスマトリクスに従う多値ディザテーブル０を参照して，入力階調値「４０」が出力階調値「２５５」に変換され，共有率「１．０」を乗算した共有化出力階調値「２５５」が，図１０（Ａ）に示されるように出力バッファ１２０に書き込まれる。この時の共有化出力階調値の合計は「２５５」であり，理想出力合計値「３２０」を超えていないので，工程Ｓ１９はＮＯとなる。
【００５０】
次に，ｎ＝ｎ＋１とされて（Ｓ２４），処理順番「２」の画素について，多値ディザテーブル１を参照して，入力階調値「４０」が出力階調値「１６」に変換され，共有率「１．０」を乗算した共有化出力階調値「１６」が，図１０（Ｂ）に示されるように出力バッファ１２０に書き込まれる。この時の共有化出力階調値の合計は「２７１（＝２５５＋１６）」であり，理想出力合計値「３２０」を超えていないので，工程Ｓ１９はＮＯとなる。
【００５１】
同様に，処理順番「３」「４」「５」の画素について，多値ディザテーブル１を参照して，入力階調値「４０」が出力階調値「１６」に変換され，共有率「１．０」を乗算した共有化出力階調値「１６」が，図１０（Ｃ）に示されるように出力バッファ１２０に書き込まれる。この処理を終了した時点で，共有化出力階調値の合計は「３１９」となり理想出力合計値「３２０」を超えていない。そこで，処理順番「６」「７」「８」「９」の画素については，多値ディザテーブル２，３を参照すると，入力階調値「４０」に対して出力階調値「０」になる。したがって，ディザテーブルを参照する階調値変換処理は終了する。
【００５２】
最後に，他のセルでの処理で共有画素に出力値が存在する場合は，その値が出力バッファに加算される（Ｓ２２）。出力値は共有率を乗じた共有化出力階調値であるので，加算された共有画素の出力値は，最高階調値を超えることはない。
【００５３】
また，もし共有化出力階調値の合計が理想出力合計値「３２０」を超える場合は（Ｓ１９のＹＥＳ），合計が理想出力合計値を超えないようにその画素の共有化出力階調値を調整して出力する（Ｓ２５）。
【００５４】
図１０（Ｃ）に示される出力バッファ内の共有化出力階調値にしたがって網点を形成することで，重心位置の画素を中心とする網点が形成される。
【００５５】
［第２の入力階調値の例］
図１１は，入力階調データの第２の例を示す図である。図１１には，セル２００の左端３つの画素の入力階調値が「４０」でそれ以外の入力階調値「０」の不均一な階調画像の例であり，画素マトリクス１００に対して９個の画素からなるセル２００が対応付けられている。したがって，図１１（Ｂ）に示されるとおり，ハーフトーン処理対象のセル２００は，入力階調値「４０」を有する３個の画素と入力階調値「０」を有する６個の画素とで構成されている。
【００５６】
図１２は，図１１に対する重心位置，処理順，インデックスマトリクスを示す図である。また，図１３は，出力バッファに書き込まれる共有化出力階調値を示す図である。まず，図５，６の工程Ｓ１１，Ｓ１２で，入力階調値合計「１２０」，セル内の平均入力階調値「１３（＝１２０÷９）」，重心位置１１０が求められる。重心位置１１０は，図１２（Ａ）に示されるとおり中心画素より左側に１つずれた画素に位置している。また，工程Ｓ１３により出力すべき理想出力合計値「１００」が，平均入力階調値と理想出力合計値との対応を示すテーブル（図３５）を参照して決定される。つまり，図１１の例では，平均入力階調値と共有率を考慮して求められた理想出力合計値「１００」（＝４０×１．０×２画素 + ４０×０．５×１画素）となる。
この理想出力合計値は，共有率が考慮されるので，入力階調値の合計「１２０」よりも小さくなっている。
【００５７】
そして，重心位置に基づいて，セル内のおける処理順が図１２（Ｂ）に示すように決定される。処理順番「１」は重心画素から左に１つずれた画素になっている。それに伴って，処理Ｓ１５によりディザマトリクスのインデックステーブルの網点中心が重心画素と一致するようにシフトされる。シフト量は図１２（Ｃ）に示されるとおり，（−１，０）である。
【００５８】
そこで，処理Ｓ１７〜Ｓ２５が繰り返される。図１３に示すとおり，処理順番「１」の画素の入力階調値「４０」が多値ディザテーブル０を参照して，出力階調値「２５５」に変換され（Ｓ１７），共有率「１．０」を乗算して共有化出力階調値「２５５」が決定される（Ｓ１８）。しかし，すでに共有化出力階調値「２５５」は既に理想出力合計値「１００」を超えているので（Ｓ１９のＹＥＳ），理想出力合計値を超えないように，共有化出力階調値は「１００」に調整される（Ｓ２５）。その結果，処理Ｓ１７〜Ｓ２５の処理が終了する。
【００５９】
[拡散スクリーン]
図１４は、本実施の形態における画像処理装置の構成図である。画像処理装置２１は、画素の入力階調値ＩＮを画素のドットサイズに対応する出力階調値としての画像再生出力データＯＵＴに変換するハーフトーン処理ユニット２１１と、入力階調値ＩＮに対応して出力階調値ＯＵＴを有するガンマテーブル１２４−１〜１２４−Ｎを、入力画像データの画素の位置（Ｘ，Ｙ）に対応して複数有するルックアップテーブル１２２とを有する。ルックアップテーブル１２２は、例えば高速のスタティックＲＡＭで構成され、画素の位置（Ｘ，Ｙ）に対応して参照すべきガンマテーブルを特定するインデックスIndexを有するインデックステーブル１２０と、複数のガンマテーブル１２４―１〜１２４−Nとを有する。ハーフトーン処理ユニット２１１は、画素位置（Ｘ，Ｙ）に応じて参照すべきインデックステーブル１２０の画素位置（ｘ、ｙ）を求め、その画素位置（ｘ、ｙ）に基づいてインデックステーブル１２０を参照する。そして、参照したインデックステーブル１２０のインデックス番号Indexに対応するガンマテーブル１２４−１〜１２４−Nを参照して、出力階調値ＯＵＴを取得する。そして、ハーフトーン処理ユニット２１１は、取得した出力階調値ＯＵＴを、パルス幅変調ユニット２１２に供給し、パルス幅変調ユニット２１２が駆動パルス幅信号ＰＷを生成し、図示しない印刷エンジンに供給する。印刷エンジンでは、駆動パルス幅信号ＰＷに基づいて、感光体ドラムにビームを照射し、感光体ドラム上に静電潜像を形成する。そして、この静電潜像にトナーを付着させてドットに現像し、記録用紙などの記録媒体上に転写する。したがって、出力階調値ＯＵＴは、画素のドットサイズに関する印刷画像の再生用のデータである。なお、この出力階調値ＯＵＴには、後述するとおり、画素内に生成するドットの位置が右寄せか左寄せかの情報Ｌ／Ｒが含まれる。以下に示す実施の形態では、この右寄せか左寄せかの情報Ｌ／Ｒは、インデックステーブル１２０から出力される。
【００６０】
図１５は、一般的なインデックステーブルとガンマテーブルとの関係を示す図である。ここに示されたインデックステーブル１２０は、１２×１２の画素マトリクスにそれぞれ参照すべきガンマテーブル番号１〜６が格納されている。インデックステーブル１２０は、太枠で囲った４×６の最小マトリクス単位の繰り返しであり、この最小マトリクス単位内に、ガンマテーブル１が２箇所、ガンマテーブル２が４箇所、ガンマテーブル３が２箇所、ガンマテーブル４が８箇所、ガンマテーブル５が４箇所、ガンマテーブル６が４箇所に配置されている。この最小マトリクス単位が繰り返されることで、ガンマテーブル１は、変位ベクトル（＋２，＋３），（＋２，−３），（−２，＋３），（−２，−３）の位置に繰り返し配置される。但し、図２中のインデックステーブル１２０の右側最上位置を座標（Ｘ，Ｙ）の原点とする。ガンマテーブル２は、Ｘ方向に隣接しており、変位ベクトル（＋２，＋３），（＋２，−３），（−２，＋３），（−２，−３）の位置に繰り返し配置される。他のガンマテーブルも同様に固有の変位ベクトル上に配置されている。
【００６１】
このように、共通の変位ベクトル上に配置される画素群には、同一のインデックス番号が与えられ、そのインデックス番号に対応するガンマテーブルが参照される。そこで、このように同じ変位ベクトル上に配置される画素群を、同一インデックス画素群と称することにする。
【００６２】
図１５には、６種類のガンマテーブル１２４が示されている。ガンマテーブルは、入力階調値に対応して出力階調値である出力パルス幅値を格納するものであり、図中、ガンマテーブル１は、低い入力階調値の領域で最小値から最大値に成長する出力パルス幅値を有する。ガンマテーブル２，３，４は、図示されるように、中間の入力階調値の領域で最小値から最大値に成長する出力パルス幅値を有し、ガンマテーブル５，６は、比較的高い入力階調値の領域で最小値から最大値に成長する出力パルス幅値を有する。
【００６３】
図１６は、図１５の例において入力階調値を増加した場合の画素のドットの成長を示す図である。上記のようなガンマテーブル及びインデックステーブル１２０によれば、入力階調値が増加するに応じて、入力階調値が低い領域（入力階調値１０、４０、９０）では、インデックス１の画素にドットが形成され（入力階調値１０）、続いてインデックス２の画素にドットが形成され（入力階調値４０）、そして、インデックス２の画素と平行してインデックス３の画素にドットが形成される（入力階調値９０）。つまり、入力階調値が低い領域では、インデックステーブル２０のインデックス１、２、３の画素にドットが順次成長する。そして、入力階調値が高い領域（入力階調値１５０，２２０，２５０）では、インデックス４の画素にドットが成長し（入力階調値１５０）、更に、それに続いてインデックス５、６の画素にドットが成長する（入力階調値２２０、２５０）。
【００６４】
したがって、入力階調値９０や１５０の成長ドットに示されるように、インデックス１の画素を結ぶ線上にスクリーン線が形成されることになる。
【００６５】
図１５のガンマテーブル１２４は、８ビットの入力階調値に対して８ビットの出力パルス幅を有する。したがって、２５６階調の入力に対して２５６階調（０〜２５５）の出力を有する。そのため、入力階調値の階調の変化に対応して、ガンマテーブルの出力階調値も必要に応じて変化させることができる。ところが、出力パルス幅データが６ビットの場合は、出力は６４階調（０〜６３）しか取りえず、入力階調値の階調の変化に対応して、ガンマテーブルの出力階調値を変化させることができない場合がある。ましてや、出力パルス幅データが４ビットの場合は、その出力は１６階調（０〜１５）しかなく、入力階調値の階調変化に対応して出力階調値を変化させることができない場合が更に増える。更に、出力データのビット数が少なくなるとその階調がより離散的になり、再現できるドットサイズの階調解像度が低下する。
【００６６】
図１７は、ガンマテーブルの入力階調値の変化に対する出力階調値の変化量を示す図である。図１５に示したガンマテーブルについて、（Ａ）出力データが８ビットの場合、（Ｂ）出力データが６ビットの場合、（Ｃ）出力データが４ビットの場合において、入力階調値が１階調変化した時の６つのガンマテーブルの出力データの合計階調値の差分（変化量）を示している。図１７（Ａ）（Ｂ）（Ｃ）において、上段がガンマテーブルを、下段が合計出力階調値の差分を示す。
【００６７】
図１７（Ａ）の８ビットの出力データの場合は、そのガンマテーブル１２４は図１５のガンマテーブル１２４と同じである。この場合、入力階調値が１階調変化する時の出力パルス幅の差分は、全て０階調以外であり、入力階調値の２５５回の階調変化に対して合計出力パルス幅も２５５回にわたり階調変化している。したがって、入力階調値の変化に対して忠実に変化する出力パルス幅値を出力データとして生成することができる。
【００６８】
図１７（Ｂ）の６（M=6）ビットの出力データの場合は、それぞれのガンマテーブル１〜６の出力の最小幅は255/(2M-1)＝４であり、上段のガンマテーブル１２４によれば、出力パルス幅の離散値の間が図１７（Ａ）の場合に比較して荒くなっていることがわかる。そのため、入力階調値の２５５回の階調変化に対して、合計出力パルス幅は、４４回にわたり階調変化ゼロになり、２１１回しか階調変化していない。
【００６９】
更に、図１７（Ｃ）の４（M=4）ビットの出力データの場合は、それぞれのガンマテーブル１〜６の出力の最小幅は255/(2M-1)＝１７であり、上段のガンマテーブル１２４によれば、出力パルス幅の離散値の間が図１７（Ａ）や（Ｂ）の場合に比較して更に荒くなっている。そのため、入力階調値の２５５回の階調変化に対して、合計出力パルス幅は、わずか８２回しか階調変化しておらず、実に１７３回にわたり階調変化ゼロになる。しかも、出力パルス幅の差分は、大部分で０または１７であり、高入力階調値領域では出力パルス幅の差分が３４になる場合もある。
【００７０】
つまり、出力データのビット数を減らして出力データの階調数を減らした結果、出力パルス幅の差分がゼロになる回数が増大し、更に、変化してもその差分量が大きくなる。このことは、入力階調値の２５５階調数に対して、出力パルス幅の階調数は大幅に減り且つ差分も大幅に大きくなることを意味し、高い階調特性と正確な濃度特性が損なわれることを意味する。
【００７１】
図１８は、出力階調が４ビットの場合におけるガンマテーブルの拡大図である。この図では、実線がガンマテーブルＧの入出力特性であり、縦軸には出力パルス幅が８ビット（２５６階調）の場合の階調値で表示されている。前述したとおり、４ビットの出力階調の最小幅は１７であるから、その採りうる離散点は、８ビット（２５６階調）の場合の０，１７，３４，５１，６８，８５，１０２，１１９，１３６，１５３，１７０，１８７，２０４，２２１，２３８，２５５である。図１８の縦軸には、その一部の出力離散点１５３，１７０，１８７が示される。実線で示したガンマテーブルＧは、８ビットであれば四角Ｗ，Ｘ，Ｙで示した点の階調値が出力データとして出力されるが、４ビットの場合は、１５３，１７０，１８７の離散点のみしか採りえないので、黒丸で示した階調値が出力データとして出力される。例えば、８ビット出力では四角Ｘは出力階調値１６１になるところ、４ビットではその近傍の黒丸の出力階調値１５３（４ビットでは１００１＝９）になる。つまり、４ビットの出力データでは、より離散的になり、８ビットの出力データの階調値と一致させることができなくなる。更に、一方では、８ビットの出力データで四角Ｗ，Ｘの出力階調値１４５と１６１とは、４ビットの出力データでは同じ出力階調値１５３になり、その出力階調値の差分はゼロであるが、他方では、８ビットの出力データで四角Ｘ，Ｙの出力階調値１６１と１６７とは、４ビットの出力データでは１５３と１７０になり、その出力階調値の差分は１７になる。したがって、４ビットの出力階調値では、入力階調値の変化に対して差分ゼロになる場合もあれば、入力階調値の変化に対して期待される出力階調値の差分とは異なる大きな差分になる場合もある。
【００７２】
図１９は、本実施の形態における拡散ガンマテーブルの原理を説明する図である。拡散ガンマテーブルの原理によれば、８ビット出力の場合の四角Ｘに対して、その四角Ｘの出力階調値１６１の近傍にある４ビット出力の離散点Ｘ１（出力階調値１５３）、Ｘ２（出力階調値１７０）を複数の拡散ガンマテーブルに割り当てて、離散点Ｘ１とＸ２をもつ拡散ガンマテーブルの個数を最適化して、それらの平均出力階調値が四角Ｘの１６１に最も近くなるようにする。たとえば、離散点Ｘ１を５個、離散点Ｘ２を４個にすると、それら９個の離散点の出力階調値の平均値は、（１５３×５＋１７０×４）／９＝１６０．５５と、四角Ｘの出力階調値１６１に近い値になる。このように、４ビット出力のように離散幅が大きな出力階調値しか採り得ない場合であっても、複数の画素に異なる離散値Ｘ１，Ｘ２を割り当てることによってガンマテーブルＧの四角Ｘの出力階調値に極めて近い階調値を表現することができる。ここで、ガンマテーブルＧを代表ガンマテーブルと、異なる離散値を有するテーブルを拡散ガンマテーブルと、それぞれ称する。
【００７３】
図２０は、代表ガンマテーブルＧに複数の拡散ガンマテーブルＧ１，Ｇ２，Ｇ３を割り当てた場合の例を示す図である。この例では、表示を簡単化するために、代表ガンマテーブルＧに３つの拡散ガンマテーブルＧ１，Ｇ２，Ｇ３を割り当てている。拡散ガンマテーブルＧ１は、代表ガンマテーブルＧの四角（例えばＸ）の近傍に位置する４ビットの離散点（例えばＸ１，Ｘ２）のうち白丸の離散点（例えばＸ２）をとり、代表ガンマテーブルＧの近傍で上下に変化する出力値を有する。同様に、拡散ガンマテーブルＧ２は、近傍の４ビット離散点のうち三角の離散点をとり、拡散ガンマテーブルＧ３は、近傍の４ビット離散点のうち菱形の離散点をとる。一例として四角Ｘは、２個の離散点Ｘ１と１個の離散点Ｘ２に拡散または分散されている。この場合の平均値は、（１５３×２＋１７０×１）／３＝１５８．７となる。このように、拡散または分散する拡散ガンマテーブルの数を増やすことにより、その出力階調値の平均値を代表ガンマテーブルＧの出力階調値により近づけることができる。
【００７４】
そして、図１５のインデックステーブルに示されるように、画素マトリクスの所定の領域内には同じ代表ガンマテーブルＧをとる画素が複数存在するので、その複数の画素の代表ガンマテーブルＧを異なる拡散ガンマテーブルに割り当てることで、当該所定の領域内において、平面的に理想的な代表ガンマテーブルの出力階調値を表現することができる。この複数の拡散ガンマテーブルの配置は、分散されれば良いが、好ましくは、規則的よりも不規則にまたはランダムに分散されることが良い。また、各拡散ガンマテーブルが採る離散値は、代表ガンマテーブルＧの出力階調値の近傍の４ビット離散値のいずれかをとれば良いが、好ましくは、近傍の４ビット離散値のいずれかをランダムに採るようにする。
【００７５】
代表ガンマテーブルから拡散ガンマテーブルを生成する方法をまとめると次のとおりである。ある代表ガンマテーブルＧについて、入力階調値ＩＮに対応する出力パルス幅Ｘを取得する。図１８の例では、Ｘ＝１６１である。そして、目標値である出力パルス幅Ｘ＝１６１に対する隣接離散点ｘｌ＝１７０，ｘｓ＝１５３を、拡散数Ｎ＝３個に分配し、ｘｌとｘｓの分配数Ｌ＝１、Ｎ−Ｌ＝２を求める。このｘｌの分配数Ｌは、例えば、Ｌ＝ＩＮＴ［｛（Ｘ−ｘｓ）／（ｘｌ−ｘｓ）｝×Ｎ＋0.5］により求めることができる。ここで、ＩＮＴ［  ］は切り捨て処理を示す。上記の例にあてはめれば、Ｌ＝ＩＮＴ［｛（161−153）/（170−153）｝×３＋0.5］＝１となる。そして、Ｎ＝３個の拡散ガンマテーブルに対して、Ｌ＝１個には離散値ｘｌ＝１７０を、Ｎ−Ｌ＝２個には離散値ｘｓ＝１５３を、ランダムに与える。また、Ｎ＝３個の拡散ガンマテーブルの配置もランダムに決定される。
【００７６】
そして、拡散されたＮ＝３個の拡散ガンマテーブルのＬ＝１個の出力値ｘｌ＝１７０とＮ−Ｌ＝２個の出力値ｘｓ＝１５３との平均値ｘは、ｘ＝｛ｘｌ×Ｌ＋ｘｓ×（Ｎ−Ｌ）｝／Ｎ＝１５８．７になる。拡散数Ｎを増やすことで、平均値ｘの精度を高めることができる。
【００７７】
図２１は、本実施の形態における代表ガンマテーブルを有する同一インデックス画素群を示す図である。ここに示したインデックステーブル１２０は、図２１中の対応表１２１Ａに示したように、図１５のインデックステーブル１２０のインデックス番号１〜６を、新たなインデックス番号０〜１１に変換した例であり、新たなインデックス番号の偶数０，２，４，６，８，１０は、画素内のドットを左寄せし、その奇数１，３，５，７，９，１１は、画素内のドットを右寄せする画素に対応付けられ、インデックス番号の偶数／奇数の情報Ｌ／Ｒが、パルス幅変調ユニットへの出力階調値ＯＵＴに加えられる。したがって、図２１のインデックステーブルの左上の４×６のマトリクス内には、インデックス番号０，２，３，４，６，７，８，９，１０，１１が割り当てられているが、そのインデックス番号０には図１５のガンマテーブル１が、インデックス番号２，３には、ガンマテーブル２が、インデックス番号４，５にはガンマテーブル３が、以下、６，７にはガンマテーブル４が、８，９にはガンマテーブル５が、１０，１１にはガンマテーブル６がそれぞれ参照される。
【００７８】
さて、図２１において、変位ベクトル（±２、±３）の位置に配置されるインデックス番号０の同一インデックス画素群は、図示されるように、左上の４×６の小さい画素マトリクス内には２個配置され、図２１の１６×１８の画素マトリクス内には２４個配置されている。そこで、本実施の形態では、このインデックス番号０の同一インデックス画素群の代表ガンマテーブル０に、複数（９種類）の拡散ガンマテーブルを割り当てる。しかも、複数の拡散ガンマテーブルを同一インデックス画素群内で平面的に分散させ、好ましくはランダムに分散配置する。
【００７９】
図２２は、本実施の形態による拡散ガンマテーブルに対するインデックステーブルを示す図である。本実施の形態では、図２５で後述するような広い画素マトリクス（３２×３０画素マトリクス）内に配置されるインデックス０の同一インデックス画素群８０個を、９種類の拡散マトリクスに割り当てている。図２２のインデックステーブル１２０Ａには、その一部の画素マトリクスのみが示される。図２２中の下に示される対応表１２１Ｂには、図１５、図２１、図２２のインデックス番号の対応が示されている。図２１のインデックス０の画素群に対しては、拡散ガンマテーブルのインデックス番号０，１２，２４，３６，４８，６０，７２，８４，９６が割り当てられる。しかも、その割り当て方は、平面的にランダムな配置にされている。図２１の他のインデックス番号の同一インデックス画素群に対しても、同様に９種類または８種類の拡散ガンマテーブルがそれぞれ割り当てられる。その割り当てられた拡散ガンマテーブルのインデックス番号が対応表１２１Ｂに示されている。
【００８０】
図２３は、図２２に示した拡散ガンマテーブルが採りうる出力階調値の一例を示す図である。図１８で示した四角Ｘの出力階調値１６１に対して、４ビット離散点Ｘ１（出力階調値１５３）と離散点Ｘ２（出力階調値１７０）とが、拡散ガンマテーブル０，１２，２４，３６，４８，６０，７２，８４，９６にランダムに割り当てられている。ここに表れている２４個の画素の代表ガンマテーブル０に対応付けられる９種類の拡散ガンマテーブルのうち、１３個の拡散ガンマテーブルには離散点Ｘ１（出力階調値１５３）が、１０個の拡散ガンマテーブルには離散点Ｘ２（出力階調値１７０）がランダムに割り当てられている。その割り当て比を概算すると１３：１０＝５：４である。このように、代表ガンマテーブルに割り当てられた複数の拡散ガンマテーブルの配置をランダムにし、その拡散ガンマテーブルに対して代表ガンマテーブルの出力階調値の近傍の離散点もランダムに割り当てることで、代表ガンマテーブルの出力階調値１６１に極めて近似する階調値を空間的に表現することができる。図２２に示した他の拡散ガンマテーブルについても、それぞれ対応する代表ガンマテーブルの出力階調値近傍の４ビット離散点がランダムに割り当てられる。
【００８１】
図２４は、８ビット出力の代表ガンマテーブルのインデックステーブルとその代表ガンマテーブルの一例を示す図である。このインデックステーブル１２０は、図２１のインデックステーブル２０と同じであり、画素サイズが３２×３０に拡大されている。図２１でも説明したとおり、インデックステーブル１２０内のインデックス０（代表ガンマテーブル０）の同一インデックス画素群は、同じ変位ベクトル（±２，±３）の位置に配置されている。画素マトリクス３２×３０内には、インデックス０の同一インデックス画素は、合計で８０個存在する。そして、その代表ガンマテーブル０は、図２４中の黒四角に示されるように、入力階調の増加に伴って８ビット出力パルス幅を有する。この代表ガンマテーブル０を単純に４ビット出力パルス幅に変更すると、図２４中の白四角に示されるように、離散的な値しかとりえないようになる。
【００８２】
図２４には、代表ガンマテーブル０のインデックス０に加えて、代表ガンマテーブル２，３，４，６，７，８，９，１０，１１のインデックスも含まれる。これら同一のインデックスの画素群も、それぞれ同じ変位ベクトル上の位置に配置されている。
【００８３】
図２５は、本実施の形態による拡散ガンマテーブルに対するインデックステーブルとガンマテーブルとを示す図である。このインデックステーブル１２０Ａは、図２４のインデックステーブル１２０Ａと同じであり、画素サイズが３２×３０に拡大されている。図中、代表ガンマテーブル０に対応するインデックス０の画素群に対して、ハーフトーンで表示している。そして、図２４内の８０個の同一インデックス画素群（インデックス０）に、９種類の拡散ガンマテーブルを割り当てている。つまり、代表ガンマテーブル０は、９個の拡散ガンマテーブル０，１２、８個の拡散ガンマテーブル１２４、９個の拡散ガンマテーブル３６，４８，６０，７２，８４，９６に分散または拡散される。インデックステーブル１２０Ａ内には、他の代表ガンマテーブルに対しても複数の拡散ガンマテーブルのインデックス番号が割り当てられている。
【００８４】
図２５に示した拡散ガンマテーブル１２４には、９種類の拡散ガンマテーブルの４ビット出力パルス幅がプロットされている。つまり、破線で示した代表ガンマテーブルＧに対して、その出力値に隣接する４ビット離散値Ｘ１，Ｘ２が拡散ガンマテーブルの出力値として割り当てられている。つまり、９種類の拡散ガンマテーブルの出力値に離散値Ｘ１，Ｘ２のいずれかを割り当てる。したがって、離散値Ｘ１，Ｘ２に対して、合計で９種類の拡散ガンマテーブルが割り当てられることになる。この離散値は、代表ガンマテーブルＧの出力値に近接する単数のまたは複数の４ビット離散値であり、それらの離散値が、平均すると代表ガンマテーブルの出力値に近似するように、複数の拡散ガンマテーブルに割り当てられる。
【００８５】
図２６、図２７、図２８は、図２５の９種類の拡散ガンマテーブルの配置及び具体的テーブル値を示す図である。図２６には、拡散ガンマテーブル０，１２，２４のインデックステーブル内の配置とテーブル値が、図２７には、同テーブル３６，４８，６０のインデックステーブル内の配置とテーブル値が、図２８には、同テーブル７２，８４，９６のインデックステーブル内の配置とテーブル値がそれぞれ示される。インデックステーブルのインデックス番号はフォントサイズが小さくて判別困難であるが、図２５と同じである。しかし、図２６〜図２８のインデックステーブルによれば、ランダムに拡散配置された各拡散ガンマテーブルの位置と数が確認できる。また、拡散ガンマテーブルのテーブル値は４ビット離散値を有するが、この例では、破線の代表ガンマテーブルの出力値に近接する上下２つの離散値のいずれかが各拡散ガンマテーブルに割り当てられている。したがって、図２６〜図２８の拡散ガンマテーブルにより、入力階調値０〜２５までの各階調値において、各拡散ガンマテーブルが上下のいずれの離散値を有するかが確認できる。つまり、図１０に示した拡散ガンマテーブルと同様であり、９種類の拡散ガンマテーブルは、破線の代表ガンマテーブルの出力値に近似する離散値を出力値として有し、その離散値の割り当ての割合を制御することで、拡散ガンマテーブルの出力値の平均値が代表ガンマテーブルの出力値にきわめて近くなる。
【００８６】
上記の説明から、本実施の形態におけるルックアップテーブルは、もはや代表ガンマテーブルをもたず、代表ガンマテーブルに変えて複数の拡散ガンマテーブルを有する。その意味からすると、同一インデックス画素群には、仮想的な代表ガンマテーブルが割り当てられ、その仮想上の代表ガンマテーブルが複数の拡散ガンマテーブルを有することになる。そして、その複数の拡散ガンマテーブルの出力値の平均が、代表ガンマテーブルの出力値に近似する。
【００８７】
図２９は、図１４と図１５のガンマテーブルと入力階調値の変化に対する出力パルス幅の差分とを示す図である。図１７と同じ種類の図である。図２９（Ａ）は、図２４に示した代表ガンマテーブル０，２，３，４，６，７，８，９，１０，１１と、入力階調値の変化に対する合計出力パルス値の差分を示す。つまり、図１７（Ａ）と同じであり、２５５回の全ての入力階調値の変化に対して合計出力パルス値が変化している。
【００８８】
一方、図２９（Ｂ）は、図２５に示した拡散ガンマテーブルと、入力階調値の変化に対する合計出力パルス値の差分を示す。つまり、図２２の対応表１２１Ｂに示されるように、代表ガンマテーブル０は、拡散ガンマテーブル０〜９６に拡散され、代表ガンマテーブル２，３は、拡散ガンマテーブル２〜９８，３〜８７に拡散され、代表ガンマテーブル４は、拡散ガンマテーブル４〜１００に拡散され、代表ガンマテーブル６，７は、拡散ガンマテーブル６〜１０２，７〜１０３に拡散され、代表ガンマテーブル８，９は、拡散ガンマテーブル８〜１０４，９〜１０５に拡散され、代表ガンマテーブル１０，１１は、拡散ガンマテーブル１０〜１０６，１１〜１０７に拡散される。
【００８９】
図２９（Ｂ）に示されるように、複数の拡散ガンマテーブルに拡散または分散させることで、出力値が４ビット離散値であっても、平均出力値は代表ガンマテーブルと同等にすることができる。その結果、入力階調値の変化に対して、合計の出力パルス幅差分は２５５段階全てで変化し、その差分の傾向は、図２９（Ａ）と同じである。但し、縦軸のスケールは、図２９（Ａ）の４０に対して、図２９（Ｂ）ではその９倍の３６０になっている。
【００９０】
図２９（Ｃ）は、（Ｂ）の９種類の拡散ガンマテーブルの平均値に変換したテーブルと、その場合の入力階調値の変化に対する出力パルス幅の差分が示される。平均値にすると、そのガンマテーブルは、図２９（Ａ）の代表ガンマテーブルと殆ど同じであることが理解できる。また、出力パルス幅の差分は、図２９（Ｂ）と縦軸のスケールのみが異なるだけであり、図２９（Ａ）の縦軸と同じスケール、同じ差分になっている。この図２９（Ｃ）で確認できることは、各代表ガンマテーブルを複数の拡散ガンマテーブルに拡散または分散することで、第１に、低ビット化され出力階調数が少なくても、代表ガンマテーブルにきわめて近い出力値を再現することができ（ガンマテーブル参照）、第２に、低ビット化され出力階調数が少なくても、２５５の高い階調特性を得ることもできる（出力パルス幅差分参照）。したがって、ハーフトーン処理ユニットが低ビット化された画像再生出力データに変換しても、高ビットの出力データと同等に高精度の濃度特性と、高階調特性とを有することができる。
【００９１】
上記の実施の形態では、８ビットの入力階調データに対して４ビットの出力パルス幅データに変換するに際して、代表ガンマテーブルを複数の拡散ガンマテーブルに拡散または分散させている。つまり、代表ガンマテーブルの出力が８ビット、２５６階調であるのに対して、拡散ガンマテーブルの出力はそれより少ない４ビット、１６階調である。そのような場合でも、複数の拡散ガンマテーブルに拡散または分散することで、高階調特性、高精度濃度特性を実現する。本実施の形態はそれに限定されずに、拡散ガンマテーブルを利用して、８ビットの入力階調データに対して８ビットの出力パルス幅データに変換する場合においても、各代表ガンマテーブルをそれと同じ８ビット出力データを有する複数の拡散ガンマテーブルに拡散または分散させることで、画質を向上させることができる。この場合は、８ビットの代表ガンマテーブルでは表現できない高階調の出力濃度を表現することができる。つまり、８ビットの代表ガンマテーブルでは、２５６階調しか表現できないが、複数の拡散ガンマテーブルに拡散または分散させることで、２５６階調以上の階調特性を出力データに与えることができる。但し、１つの代表ガンマテーブルを複数の拡散ガンマテーブルに置き換える必要があり、ガンマテーブルのメモリ容量を増大させることになる。その場合は、例えば、共通の代表ガンマテーブルに加えて、それとの差分値のみを少ないビット数で有する拡散ガンマテーブルを複数設けることで、全体のメモリ容量の増大を抑制することができる。それ以外にも、ハーフトーン処理ユニットが、代表ガンマテーブルの出力データにランダムに差分値を与えて拡散ガンマテーブルの出力データとして出力するようにしてもよい。
【００９２】
[拡散スクリーンを利用したＡＡＭ法]
本実施の形態では，図３〜１３のＡＡＭ法に図１４〜２９の拡散スクリーンを適用する。これにより低ビットのパルス幅変調器でＡＡＭ法を実現することができる。
【００９３】
図３０は，本実施の形態における固定セルの配列を示す図である。この固定セルは，図２（Ｂ）に示した共有画素を有する点対称セルである。隣接する９画素からなる固定セル２００が画素マトリクス上に敷き詰められている。そして，各固定セル２００の左右端の画素は隣接固定セルと共有され，それにより各固定セルの中心点（黒点）は中心画素の中心に位置している。
【００９４】
図９に示したとおり，固定セルの９個の画素に対応して４種類のガンマテーブル０〜３が対応付けられる。インデックステーブルに示されるように，中心画素にはガンマテーブル０が，中心画素に対して変位ベクトル（＋１，０），（−１，０），（０，＋１），（０，−１）にはガンマテーブル１が，中心画素に対して変位ベクトル（＋１，＋１），（＋１，−１），（−１，＋１），（−１，−１）にはガンマテーブル２が，そして，中心画素に対して変位ベクトル（＋２，０），（−２，０）にはガンマテーブル３がそれぞれ設けられる。
【００９５】
そこで，このＡＡＭ法に拡散スクリーンを適用するために，各変位ベクトル上の同一インデックス画素群に対するガンマテーブル０〜３が，代表ガンマテーブルの出力値近傍の離散値をランダムに有する複数の拡散ガンマテーブルで構成される。本実施の形態では，各ガンマテーブル０〜３が１２種類の拡散ガンマテーブルで構成され，各セルの９画素に対して１２種類の拡散ガンマテーブルがランダムな組み合わせで対応付けられる。
【００９６】
図３１は，本実施の形態におけるインデックスマトリクスを示す図である。上記のとおり，各ガンマテーブル０〜３がそれぞれ１２種類の拡散ガンマテーブルで構成されている。よって，拡散ガンマテーブルは４×１２＝４８個存在する。そして，これらの拡散ガンマテーブルが２５５種類のインデックステーブル内にランダムな組み合わせで対応付けられている。たとえば，タイプ１のインデックスマトリクスには，代表ガンマテーブル０に対する拡散ガンマテーブル０−７が，代表ガンマテーブル１に対する拡散ガンマテーブル１−１，１−２，１−３が，代表ガンマテーブル２に対する拡散ガンマテーブル２−３，２−６が，そして，代表ガンマテーブル３に対する拡散ガンマテーブル３−１，３−３が対応付けられている。同様に，タイプ２５５のインデックスマトリクスには，代表ガンマテーブル０に対する拡散ガンマテーブル０−５が，代表ガンマテーブル１に対する拡散ガンマテーブル１−２，１−４，１−５が，代表ガンマテーブル２に対する拡散ガンマテーブル２−２，２−８が，そして，代表ガンマテーブル３に対する拡散ガンマテーブル３−５が対応付けられている。
【００９７】
そして，図３１に示した２５５種類のインデックスマトリクスが，図３０のように固定セルに対応付けられる。図３０に示した８行１６列の１２８種類の固定セルの２倍の規模である２５５種類の固定セルに対応付けられるのである。つまり，本実施の形態のインデックスマトリクスは，最小でも８画素×２５５種類＝２０４０画素に対応する規模になる。ただし，拡散ガンマテーブルは前述したとおり４８個である。
【００９８】
図３１に示されるとおり，同一インデックス画素群に対して拡散ガンマテーブルは，セル内においても異なっていて，セル間においてもむろん異なっている。これにより，セル内で均一入力階調値を有する入力画像に対して，各固定セルの網点サイズがランダムに異なり，ただし広い領域内ではそれらの網点サイズの平均は入力階調値に対応するサイズになっている。つまり，低ビットのパルス幅変調器を使用しても階調特性の劣化を抑えることができる。
【００９９】
図３２は，本実施の形態における拡散ガンマテーブルの一例を示す図である。４種類の代表ガンマテーブル０〜３それぞれが１２種類の拡散ガンマテーブルで構成され，拡散ガンマテーブルの出力階調値の平均は代表ガンマテーブルの出力値と同等になる。図３２は，代表ガンマテーブル数が異なるが，図２９（Ｃ）の上段テーブルと同じである。
【０１００】
図３３は，拡散ガンマテーブル例と理想出力階調値テーブル例とを示す図である。図３４は，それらの具体的数値表を示す図である。いずれも低い入力階調値０〜３０に対応する出力階調値と理想出力合計値とを示すテーブル例である。図３３（Ａ），図３４（Ａ）に示されるとおり，代表ガンマテーブル０に対する１２種類の拡散ガンマテーブルγ１〜γ１２は，同じ入力階調値に対して異なる離散的な出力値を有する。この例では４ビットの出力階調値であるので，０，１５，３１，４７，６３，７９，９５，１１１，１２７，１４３，１５９，１７５，１９１，２０７，２２３，２５５の離散的な出力値を有する。そして，１２種類の拡散ガンマテーブルは，各入力階調値に対して代表ガンマテーブルの８ビット出力階調値の近傍の離散的出力値をランダムに有し，それらの平均値が代表ガンマテーブルの出力階調値とほぼ等しくなるようになっている。
【０１０１】
このような拡散ガンマテーブルを参照して前述のＡＡＭ法によるハーフトーン処理を行うと，均一な入力階調値を有する入力画像であっても，各セルの出力階調値の合計が異なることになる。つまり，各セルの出力階調値の合計が低ビット出力値による離散値が原因でばらつく。そのため，ＡＡＭ法で生成される出力階調値の上限に利用される理想出力合計値も，出力階調値のばらつきに対応してやや高めに設定することが必要になる。
【０１０２】
図３３（Ｂ），図３４（Ｂ）に示した理想出力合計値は，１２種類の拡散ガンマテーブルγ１〜γ１２の最大値に設定されている。つまり，各入力階調値０〜２０に対応する拡散ガンマテーブルγ１〜γ１２の出力階調値のいずれよりも理想出力合計値のほうが常に高く又は等しくなるように設定されている。このようにすることで，階調変換処理が行われる多値ディザ処理において，拡散ガンマテーブルにより生成される出力階調値が，低く設定された理想出力合計値により制限されてしまうのを防止することができる。
【０１０３】
入力階調値が０〜２０程度では，代表ガンマテーブル０のみでセル内の出力階調値の合計が決定する。したがって，理想出力合計値は，代表ガンマテーブル０の１２種類の拡散ガンマテーブルγ１〜１２の出力値のうち最大値にすればよい。しかし，入力階調値が高くなると複数の代表ガンマテーブルの出力階調値でセル内の出力階調値の合計が決定する。したがって，そのような入力階調値に対する理想出力合計値は，２５５種類のインデックスマトリクスを参照して得られた２５５種類の出力階調合計値の最大値を採用すれば良い。
【０１０４】
図３５は，ＡＡＭ法に拡散スクリーンを採用したときの理想出力合計値テーブルを示す図である。図３５（Ａ）が理想出力合計値テーブルの範囲を示すものであり，図３５（Ｂ）が最大値を採用した場合の理想出力合計値テーブルの一例である。横軸が平均入力階調値０〜２５５を，縦軸が理想出力合計値０〜２０４０（＝２５５×８画素）をそれぞれ示す。
【０１０５】
本実施の形態では，多値ディザ処理で拡散ガンマテーブルを参照して各セルの出力階調値を生成する。そのため，２５５種類のインデックスマトリクスに対して２５５種類の異なる出力階調合計値が生成される。すなわち，図３５（Ａ）に示したとおり，任意の入力階調値ＩＮを均一に有する入力画像に対して，各セルの出力階調合計値は，最大値３０１と最小値３０２の間の領域３１０内に分布する。そこで，理想出力合計値は，それらの平均値３００よりも大きく，しかし最大値３０１を越えない値にすることが望ましい。特に，理想出力合計値は，最大値３０１の近傍の値にすることが望ましい。最大値３０１にすることで，均一な入力階調値を有する画像に対して，拡散スクリーンによりセル毎に適切にばらついた出力階調合計値をそのまま得ることができ，それにより複数のセルの出力階調合計値の平均を拡散ガンマテーブルにより設計された値に一致させることができる。または，最大値３０１より低くとも少なくとも平均値３００より十分高い値にすることが望ましい。
【０１０６】
理想出力合計値のテーブルを作成するためには，セル内で均一な入力階調値が与えられたと仮定し，入力階調値０〜２５５について，それぞれ２５５種類のインデックスマトリクスによる階調値変換を行い，２５５種類の出力階調合計値を生成する。そして，２５５種類の出力階調合計値の最大値を各入力階調値に対する理想出力合計値として設定する。この理想出力合計値は，代表ガンマテーブルの参照により求められる出力合計値（これは平均値にほぼ等しい）よりも高く，拡散ガンマテーブルの参照の結果ばらつく複数の出力階調合計値のいずれよりも高い。よって，多値ディザ処理において，均一な入力階調値をもつ画像データに対して，拡散ガンマテーブルの参照で得られる出力階調値のセル内の合計値が理想出力合計値を越えることが回避される。
【０１０７】
図３６，図３７は，本実施の形態におけるハーフトーン処理のフローチャート図である。図３７は，図３６における多値ディザ処理のフローチャート図である。これらのフローチャートに沿ってハーフトーン処理を説明する。
【０１０８】
図３６に示されるとおり，最初に入力画像が読み出される（Ｓ３０）。そして，入力画像の画素マトリクスの左上に対して，図３０に示したとおりの複数の固定セルに対応するインデックスマトリクスを設定する（Ｓ３１）。そして，各インデックスマトリクスの固定セルにおいて，セル内画素の入力階調値合計とその平均値を計算する（Ｓ３２）。合計値が０でなければ（Ｓ３３のＮＯ），セル内の重心位置を計算する（Ｓ３４）。この重心位置の計算は前述した計算式により行われる。そして，そのセルに対する網点生成のための出力階調値を生成する多値ディザ処理Ｓ３５が行われる。上記の処理が，インデックスマトリクスの固定セル数Ｎｍａｘに達するまで繰り返される（Ｓ３６，Ｓ３７）。
【０１０９】
固定セル数Ｎｍａｘに達すると，インデックスマトリクスの右端より右側に入力画像の未処理画素があるかぎり（Ｓ３８のＹＥＳ），インデックスマトリクスを１ブロック右に移動しながら処理を繰り返す（Ｓ３９）。また，インデックスマトリクスの右端より右側に入力画像の未処理画素がなくなると（Ｓ３８のＮＯ），インデックスマトリクスを１段下の最左位置に移動して処理を繰り返す（Ｓ４１）。
【０１１０】
図３７に示されるとおり，多値ディザ処理Ｓ３５では，セル内の入力階調値の平均値または合計値に基づいてルックアップテーブル（図３５）を参照して理想出力合計値を求める（Ｓ５０）。そして，セルの重心位置に網点中心が一致するようにインデックスマトリクスをシフトする（Ｓ５１）。その後は，セル内の画素に対して，セルの重心位置に最も近いドット未出力画素を選択し（Ｓ５２），インデックスマトリクスとそれに対応付けられた拡散ガンマテーブルを参照して出力階調値を抽出する（Ｓ５３）。その出力階調値のセル内の累積値が理想出力合計値を越えない範囲で（Ｓ５４のＮＯ），抽出した出力階調値を探索画素の出力バッファに出力する（Ｓ５６）。この出力階調値は，共有画素の場合は共有率を乗じて出力バッファに出力される。さらに，その画素のドット成長方向の情報も出力バッファに記録する（Ｓ５７）。この情報は，例えば拡散ガンマテーブルに格納されている。
【０１１１】
上記の処理Ｓ５２〜Ｓ５７は，出力階調値の合計が理想出力合計値に達しない間は，セル内の全ての画素について行われる（Ｓ５８のＮＯ，Ｓ５９のＮＯ）。拡散ガンマテーブルから抽出した出力階調値の累積が理想出力合計値を越えていると（Ｓ５４のＹＥＳ），累積が理想出力合計値と等しくなるように抽出した出力階調値が調整されて（減じられて）出力バッファに出力される（Ｓ５５，Ｓ５６）。以上の多値ディザ処理は，図５，６で説明した処理と同等である。
【０１１２】
図３８は，本実施の形態による多値ディザ処理で生成される出力値の例を示す図である。ここでは，入力画像データが，セル内で均一な入力階調値「４０」の例で説明する。図３７（Ａ）に示されるとおり，入力階調値はセル内の９つの画素で全て「４０」である。この場合，合計入力階調値は３２０（＝４０×８）であるが，本実施の形態では，それより大きな「３４９」が理想出力合計値になっている。この入力に対して拡散ガンマテーブルを参照すると，図３８（Ｂ）（Ｃ）（Ｄ）の３種類の出力が抽出される。
【０１１３】
図３７（Ｂ）では，中心画素で出力階調値「２５５」が抽出され，その右横の画素で出力階調値「４７」が抽出され，左横の画素では出力階調値「０」が抽出されたとする。この場合の出力合計値は「３０２」である。図３７（Ｃ）では，中心画素で出力階調値「２５５」が抽出され，その右横の画素で出力階調値「４７」が抽出され，左横の画素では出力階調値「４７」が抽出されたとする。この場合の出力合計値は「３４９」である。そして，図３７（Ｄ）では，中心画素で出力階調値「２５５」が抽出され，その右横の画素で出力階調値「６３」が抽出され，左横の画素では出力階調値「０」が抽出されたとする。この場合の出力合計値は「３１８」である。この３種類の出力階調値の組み合わせが所望の比率に設定されて，平均出力合計値が「３２０」になる。
【０１１４】
上記のように，理想出力合計値が最大値に設定されることで，全てのインデックステーブルにおいて出力階調値が理想出力合計値を越えることなく抽出される。それにより，セル内の出力階調合計が拡散ガンマテーブルにより設計された平均値に等しくなる。
【０１１５】
不均一の入力画像データの場合は，図１１，１２，１３で説明したとおり，拡散ガンマテーブルから抽出された出力階調値が理想出力合計値を越えないように調整される。
【０１１６】
［その他のシステム構成例］
図３９は，他のシステム構成例を示す図である。この例では，ホストコンピュータ１０内にハーフトーン処理部２１１が設けられ，画像形成装置２０内の画像処理装置２１にはパルス幅変調部２１２が設けられている。つまり，ホストコンピュータ１０にインストールされたプリンタドライバをコンピュータが実行することにより，上記したハーフトーン処理を行う。したがって，この場合は，ホストコンピュータ１０は共有化出力階調値のデータを画像データとして画像形成装置２０に出力する。したがって，プリンタドライバがハーフトーン処理プログラムを有することになる。
【０１１７】
図４０は，他のシステム構成例を示す図である。この例では，ホストコンピュータ１０が出力する入力画像データがＲＧＢのカラーデータである。それにともなって，画像形成装置２０内の画像処理装置２１はＲＧＢをＣＭＹＫに変換する色変換処理部２１３を有する。そして，ＣＭＹＫの４プレーンの入力階調値がハーフトーン処理部２１１に供給される。ハーフトーン処理部２１１は，４プレーンの入力階調値それぞれに対して，上記した点対称セルによるハーフトーン処理を行って共有化出力階調値データを生成する。
【０１１８】
［他の実施の形態例］
上記の実施の形態では，ディザマトリクスをインデックスマトリクスと複数の多値ディザテーブルにより構成したが，それ以外に，インデックスマトリクスと多値ディザテーブルとを合体したディザマトリクスにしてもよい。つまり，ディザマトリクスは，セルの９画素に対応してそれぞれ多値ディザテーブルを有する構成になる。
【図面の簡単な説明】
【０１１９】
【図１】本実施の形態における画像処理装置を有するシステム構成図である。
【図２】本実施の形態における画像処理装置２１の構成図である。
【図３】本実施の形態におけるスクリーン構造を示す図である。
【図４】本実施の形態におけるスクリーン構造と共有率とを示す図である。
【図５】本実施の形態におけるハーフトーン処理のフローチャート図である。
【図６】本実施の形態におけるハーフトーン処理のフローチャート図である。
【図７】入力階調データの第１の例を示す図である。
【図８】セル内における重心位置とセル内の処理順を示す図である。
【図９】本実施の形態におけるディザマトリクスを示す図である。
【図１０】図７の例における出力バッファ内の共有化出力階調値の例を示す図である。
【図１１】入力階調データの第２の例を示す図である。
【図１２】図１１に対する重心位置，処理順，インデックスマトリクスを示す図である。
【図１３】出力バッファに書き込まれる共有化出力階調値を示す図である。
【図１４】本実施の形態における画像処理装置の構成図である。
【図１５】一般的なインデックステーブルとガンマテーブルとの関係を示す図である。
【図１６】図２の例において入力階調値を増加した場合の画素のドットの成長を示す図である。
【図１７】ガンマテーブルの入力階調値の変化に対する出力階調値の変化量を示す図である。
【図１８】出力階調が４ビットの場合におけるガンマテーブルの拡大図である。
【図１９】本実施の形態における拡散ガンマテーブルの原理を説明する図である。
【図２０】代表ガンマテーブルＧに複数の拡散ガンマテーブルＧ１，Ｇ２，Ｇ３を割り当てた場合の例を示す図である。
【図２１】本実施の形態における代表ガンマテーブルを有する同一インデックス画素群を示す図である。
【図２２】本実施の形態による拡散ガンマテーブルに対するインデックステーブルを示す図である。
【図２３】図２２に示した拡散ガンマテーブルが採りうる出力階調値の一例を示す図である。
【図２４】８ビット出力の代表ガンマテーブルのインデックステーブルとその代表ガンマテーブルの一例を示す図である。
【図２５】本実施の形態による拡散ガンマテーブルに対するインデックステーブルとガンマテーブルとを示す図である。
【図２６】図２５の９種類の拡散ガンマテーブルの配置及びテーブル値を示す図である。
【図２７】図２５の９種類の拡散ガンマテーブルの配置及びテーブル値を示す図である。
【図２８】図２５の９種類の拡散ガンマテーブルの配置及びテーブル値を示す図である。
【図２９】図２４と図２５のガンマテーブルと入力階調値の変化に対する出力パルス幅の差分とを示す図である。
【図３０】本実施の形態における固定セルの配列を示す図である。
【図３１】本実施の形態におけるインデックスマトリクスを示す図である。
【図３２】本実施の形態における拡散ガンマテーブルの一例を示す図である。
【図３３】拡散ガンマテーブル例と理想出力階調値テーブル例とを示す図である。
【図３４】図３３の具体的数値表を示す図である。
【図３５】ＡＡＭ法に拡散スクリーンを採用したときの理想出力合計値テーブルを示す図である。
【図３６】本実施の形態におけるハーフトーン処理のフローチャート図である。
【図３７】本実施の形態におけるハーフトーン処理のフローチャート図である。
【図３８】本実施の形態による多値ディザ処理で生成される出力値の例を示す図である。
【図３９】他のシステム構成例を示す図である。
【図４０】他のシステム構成例を示す図である。
【符号の説明】
【０１２０】
２００：セル                ２１：画像処理装置
【図１】
0004479665.tif 000003
【図２】
0004479665.tif 000004
【図３】
0004479665.tif 000005
【図４】
0004479665.tif 000006
【図５】
0004479665.tif 000007
【図６】
0004479665.tif 000008
【図７】
0004479665.tif 000009
【図８】
0004479665.tif 000010
【図９】
0004479665.tif 000011
【図１０】
0004479665.tif 000012
【図１１】
0004479665.tif 000013
【図１２】
0004479665.tif 000014
【図１３】
0004479665.tif 000015
【図１４】
0004479665.tif 000016
【図１５】
0004479665.tif 000017
【図１６】
0004479665.tif 000018
【図１７】
0004479665.tif 000019
【図１８】
0004479665.tif 000020
【図１９】
0004479665.tif 000021
【図２０】
0004479665.tif 000022
【図２１】
0004479665.tif 000023
【図２２】
0004479665.tif 000024
【図２３】
0004479665.tif 000025
【図２４】
0004479665.tif 000026
【図２５】
0004479665.tif 000027
【図２６】
0004479665.tif 000028
【図２７】
0004479665.tif 000029
【図２８】
0004479665.tif 000030
【図２９】
0004479665.tif 000031
【図３０】
0004479665.tif 000032
【図３１】
0004479665.tif 000033
【図３２】
0004479665.tif 000034
【図３３】
0004479665.tif 000035
【図３４】
0004479665.tif 000036
【図３５】
0004479665.tif 000037
【図３６】
0004479665.tif 000038
【図３７】
0004479665.tif 000039
【図３８】
0004479665.tif 000040
【図３９】
0004479665.tif 000041
【図４０】
0004479665.tif 000042