(57)【要約】      （修正有）【課題】多階調の入力画像に対してブルーノイズ法を用いてハーフトーン画像を生成する装置を提供する。【解決手段】注目画素の座標を生成する座標生成手段、生成された座標と、第１の閾値マトリクスを構成する複数の第２の閾値マトリクスの配置を示す配置情報に基づいて、アドレスを生成するアドレス生成手段、複数の第２の閾値マトリクスのうち基準となる１つの閾値マトリクスを保持し、参照して、アドレスに応じて閾値を出力するマトリクス保持手段、注目画素の多階調の色信号と出力された閾値とを比較してハーフトーン画像の画像信号を出力する比較手段、を備え、配置情報では、基準となる閾値マトリクスと、基準となる閾値マトリクスを変形した他の閾値マトリクスとからなる複数の第２の閾値マトリクスが配置され、基準となる閾値マトリクスは、配置情報に従って配置されて第１の閾値マトリクスを構成したときに最適なブルーノイズ特性に最適化される。【選択図】図１０
2015104804.tif 000002
【特許請求の範囲】
【請求項１】
多階調の入力画像に対してブルーノイズ法を用いてハーフトーン画像を生成する装置であって、
前記入力画像における注目画素の座標を生成する座標生成手段と、
生成された座標と、第１の閾値マトリクスを構成する複数の第２の閾値マトリクスの配置を示す配置情報とに基づいて、アドレスを生成するアドレス生成手段と、
前記複数の第２の閾値マトリクスのうち基準となる１つの閾値マトリクスを保持し、当該基準となる閾値マトリクスを参照することによって、前記アドレス生成手段が生成したアドレスに応じて閾値を出力するマトリクス保持手段と、
前記注目画素の多階調の色信号と出力された閾値とを比較して前記ハーフトーン画像の画像信号を出力する比較手段と、
を備え、
前記配置情報では、前記基準となる閾値マトリクスと、当該基準となる閾値マトリクスを変形した他の閾値マトリクスとからなる複数の前記第２の閾値マトリクスの配置が示され、
前記基準となる閾値マトリクスは、前記配置情報に従って配置されて前記第１の閾値マトリクスを構成したときに最適なブルーノイズ特性を有するように最適化されている、
ことを特徴とする装置。
【請求項２】
前記変形した他の閾値マトリクスは、前記基準となる閾値マトリクスを回転或いは反転した閾値マトリクス、又はその両方を行なった閾値マトリクスであることを特徴とする請求項１に記載の装置。
【請求項３】
前記第１の閾値マトリクスを構成する複数の第２の閾値マトリクスの数は４つであり、対角線に位置する対の閾値マトリクスの向きは同じであることを特徴とする１又は２に記載の装置。
【請求項４】
多階調の入力画像に対してブルーノイズ法を用いてハーフトーン画像を生成する装置であって、
前記入力画像における注目画素の座標を生成する座標生成手段と、
生成された座標と、第１の閾値マトリクスを構成する複数の第２の閾値マトリクスの配置及び当該第２の閾値マトリクスを構成する複数の第３の閾値マトリクスの配置を示す配置情報とに基づいて、アドレスを生成するアドレス生成手段と、
前記配置情報に従って前記複数の第３の閾値マトリクスを配置した前記第２の閾値マトリクスを保持し、当該第２の閾値マトリクスを参照することによって、前記アドレス生成手段が生成したアドレスに応じて閾値を出力するマトリクス保持手段と、
前記注目画素の多階調の色信号と出力された閾値とを比較して前記ハーフトーン画像の画像信号を出力する比較手段と、
を備え、
前記配置情報における前記複数の第３の閾値マトリクスは、任意の基準となる閾値マトリクスと、当該基準となる閾値マトリクスを変形した他の閾値マトリクスとからなり、
前記保持される第２の閾値マトリクスを構成する複数の第３の閾値マトリクスは、前記配置情報に従って前記第２の閾値マトリクスが配置されて前記第１の閾値マトリクスを構成したときに最適なブルーノイズ特性を有するように生成される、
ことを特徴とする装置。
【請求項５】
前記変形した他の閾値マトリクスは、前記基準となる閾値マトリクスを回転或いは反転した閾値マトリクス、又はその両方を行なった閾値マトリクスであることを特徴とする請求項４に記載の装置。
【請求項６】
前記複数の第３の閾値マトリクスの数は４つであり、対角線に位置する対の閾値マトリクスの向きは同じであることを特徴とする４又は５に記載の装置。
【請求項７】
前記最適化には、評価関数が用いられることを特徴とする請求項１乃至６のいずれか１項に記載の装置。
【請求項８】
前記評価関数として、斥力ポテンシャルを用いられることを特徴とする請求項７に記載の装置。
【請求項９】
多階調の入力画像に対してブルーノイズ法を用いてハーフトーン画像を生成する方法であって、
前記入力画像における  注目画素の座標を生成するステップと、
生成された座標と、第１の閾値マトリクスを構成する複数の第２の閾値マトリクスの配置を示す配置情報とに基づいて、アドレスを生成するステップと、
前記複数の第２の閾値マトリクスのうち基準となる１つの閾値マトリクスを参照することによって、生成されたアドレスに応じた閾値を出力するステップと、
前記注目画素の多階調の色信号と出力された閾値とを比較して前記ハーフトーン画像の画像信号を出力するステップと、
を含み、
前記配置情報では、前記基準となる閾値マトリクスと、当該基準となる閾値マトリクスを変形した他の閾値マトリクスとからなる複数の前記第２の閾値マトリクスの配置が示され、
前記基準となる閾値マトリクスは、前記配置情報に従って配置されて前記第１の閾値マトリクスを構成したときに最適なブルーノイズ特性を有するように最適化されている、
ことを特徴とする方法。
【請求項１０】
多階調の入力画像に対してブルーノイズ法を用いてハーフトーン画像を生成する方法であって、
前記入力画像における注目画素の座標を生成するステップと、
生成された座標と、第１の閾値マトリクスを構成する複数の第２の閾値マトリクスの配置及び当該第２の閾値マトリクスを構成する複数の第３の閾値マトリクスの配置を示す配置情報とに基づいて、アドレスを生成するステップと、
前記配置情報に従って前記複数の第３の閾値マトリクスを配置した前記第２の閾値マトリクスを参照することによって、生成されたアドレスに応じた閾値を出力するステップと、
前記注目画素の多階調の色信号と出力された閾値とを比較して前記ハーフトーン画像の画像信号を出力するステップと、
を含み、
前記配置情報における前記複数の第３の閾値マトリクスは、任意の基準となる閾値マトリクスと、当該基準となる閾値マトリクスを変形した他の閾値マトリクスとからなり、
前記参照される第２の閾値マトリクスを構成する複数の第３の閾値マトリクスは、前記配置情報に従って前記第２の閾値マトリクスが配置されて前記第１の閾値マトリクスを構成したときに最適なブルーノイズ特性を有するように生成される、
ことを特徴とする方法。
【請求項１１】
コンピュータを、請求項１乃至８のいずれか１項に記載の装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法及びプログラムに関する。
【背景技術】
【０００２】
従来から知られている階調再現方法のなかで、最もよく用いられているものの一つは、誤差拡散法である。誤差拡散法は、入力画像を一画素毎に閾値と比較することによって二値あるいは多値画像に変換し、その際に出力値と入力値との間に生じた誤差（量子化誤差）を所定の近傍の画素群に重みづけして拡散することによって、画像濃度を保存しようとするものである。この方法による出力画像は画質がよく解像性もよいが、処理が煩雑であるために処理速度が遅い。
【０００３】
処理が簡便で速度が速い階調再現方法としては、独立決定型ディザ法が知られている。独立決定型ディザ法では入力画像の画素値と閾値とを一点対一点で比較し、出力値を決定する。この方法は、注目する画素のみを独立で処理し、周囲の画素に関する処理を行わないため処理速度が速い。この方法は閾値の与え方の違いにより、ランダムディザ法と組織的ディザ法の二つに分類される。
【０００４】
ランダムディザ法は、閾値を画素毎にランダムに変える手法である。この方法で生成されたドットパターンはホワイトノイズ特性をもち、モアレが発生しないという長所があるが、粒状性が目立つため画質はよくなく、現在ほとんど用いられていない。
【０００５】
一方、組織的ディザ法は閾値を配列した閾値マトリクス（ディザマトリクス、マスクなどとも呼ばれる）を用いる方法であり、閾値マトリクスにおける閾値の配列の仕方によって、ドット集中型とドット分散型に大別される。
【０００６】
ドット集中型は、階調数が増えるにつれ、閾値マトリクスの中心に対応する位置にドットが密集して増えていくものである。この方法で生成されるドットパターンは空間周波数が低いために、比較的精細度の低い出力機器の場合は画質が悪く、精細度の高い印刷分野などで用いられている。
【０００７】
ドット分散型では、閾値マトリクスは出力パターンのドット配列が空間的に分散するように設計される。ドット分散型の代表的なものとしてBayer型組織的ディザ法が従来から知られている。Bayer型組織的ディザ法では閾値配列が極めて規則的なために、一様なグレイレベルの入力画像を中間階調処理すると、すべての階調の入力画像に対して極めて規則的な出力パターンが生成される。そのため、ドットパターンの一様性は良いが、出力機器の精細度が低いと、閾値マトリクスのサイズ（256階調用のものは16×16）の周期で目障りなテクスチャ（ディザパターン）が知覚される。また、入力画像に周期パターンが含まれると出力画像にモアレが発生しやすいという問題もある。そのため、数百dpiといった比較的低い精細度の出力機器では、誤差拡散法に比べ画質が劣り、高画質な中間調画像を得る目的では使用されていない。
【０００８】
これに対し近年、出力画像のドットパターンがブルーノイズパターンである場合に、良好な画質が得られることが知られるようになった。ブルーノイズパターンは、非周期的、等方的で、低周波成分の少ないノイズ成分で構成されるパワースペクトル（ブルーノイズ特性）を持つという特徴を有している。Ulichneyは従来の誤差拡散法に不規則性を導入した摂動誤差拡散法を考案し、ブルーノイズパターンを実現した。
【０００９】
このブルーノイズパターンを組織的ディザ法の手法を用いて実現するために提案された方法が、ブルーノイズマスク法である。ブルーノイズマスク法を用いてマスクサイズの一様なグレイレベルの入力画像を処理すると、出力されたドットパターンはブルーノイズ特性を持つ。したがって、Ulichneyの摂動誤差拡散法と同様にモアレは発生せず、ランダムディザ法に比べて粒状感は少ない。また、摂動誤差拡散法に比べ、演算が簡便で処理速度が速い。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００１−２９８６１６号公報
【非特許文献】
【００１１】
【非特許文献１】C. Kittel,Introduction to Solid State Physics, 6th ed. (John Wiley & Sons, 1986):邦訳、固体物理学入門(上) 第6版、宇野良清他 (丸善、1988)
【発明の概要】
【発明が解決しようとする課題】
【００１２】
人間は視覚特性上、１０ｍｍ周期以上のものは視認しにくいことが一般的に知られている。よって、ブルーノイズマスク法で良好なブルーノイズ特性を得るためには、例えば６００dpiであれば２５６×２５６以上のサイズのディザマトリクスを生成する必要がある。そうなると、ブルーノイズマスク法を用いるためには、多くのメモリ容量が必要になってしまうという欠点があった。
【課題を解決するための手段】
【００１３】
本発明に係る装置は、多階調の入力画像に対してブルーノイズ法を用いてハーフトーン画像を生成する装置であって、前記入力画像における注目画素の座標を生成する座標生成手段と、生成された座標と、第１の閾値マトリクスを構成する複数の第２の閾値マトリクスの配置を示す配置情報とに基づいて、アドレスを生成するアドレス生成手段と、前記複数の第２の閾値マトリクスのうち基準となる１つの閾値マトリクスを保持し、当該基準となる閾値マトリクスを参照することによって、前記アドレス生成手段が生成したアドレスに応じて閾値を出力するマトリクス保持手段と、前記注目画素の多階調の色信号と出力された閾値とを比較して前記ハーフトーン画像の画像信号を出力する比較手段と、を備え、前記配置情報では、前記基準となる閾値マトリクスと、当該基準となる閾値マトリクスを変形した他の閾値マトリクスとからなる複数の前記第２の閾値マトリクスの配置が示され、前記基準となる閾値マトリクスは、前記配置情報に従って配置されて前記第１の閾値マトリクスを構成したときに最適なブルーノイズ特性を有するように最適化されている、ことを特徴とする。
【発明の効果】
【００１４】
本発明によれば、高画質を維持しながら、少ないメモリ容量でブルーノイズマスク法を用いることが可能となる。
【図面の簡単な説明】
【００１５】
【図１】画像形成装置の構成の一例を示す図である。
【図２】画像処理部の内部構成を示すブロック図である。
【図３】画像形成部の主要な構成を示すブロック図である。
【図４】実施例１に係る、マトリクス配置情報生成処理の流れを示すフローチャートである。
【図５】実施例１に係る、メインマトリクスの中にローテッドマトリクスがどのように配置されるのかを説明する図である。
【図６】実施例１における、ローテッドマトリクスの配置の一例を示す図である。
【図７】実施例１における、注目ローテッドマトリクスに隣接するローテッドマトリクスの配置形状の一例を示す図である。
【図８】図７の（ａ）の拡大図である。
【図９】図７の（ｂ）の拡大図である。
【図１０】実施例１におけるローテッドマトリクスの生成処理の流れを示すフローチャートである。
【図１１】ローテッドマトリクスをローテッドサブマトリクスに分割した状態を示した図である。
【図１２】ローテッドサブマトリクスに対して初期ドットが設定された状態を示す図である。
【図１３】全てのローテッドサブマトリクスに対する初期ドットの設定がなされた状態を示す図である。
【図１４】ドットパターンの一例を示す図である。
【図１５】斥力ポテンシャルの係数を示す、３１ｘ３１のテーブルの一例である。
【図１６】図７の（ａ）の配置における各ローテッドサブマトリクスのドットパターンの各位置に対する評価結果を示す図である。
【図１７】図７の（ｂ）の配置におけるローテッドサブマトリクスのドットパターンの各位置に対する評価結果を示す図である。
【図１８】各位置におけるポテンシャルエネルギーの平均値を算出した結果を示す図である。
【図１９】初期ドットが打たれた状態のドットパターンに対して、２個目のドットを打った状態を示す図である。
【図２０】注目ローテッドサブマトリクスに対して、閾値を代入した結果を示した図である。
【図２１】完成したローテッドマトリクスの一例を示した図である。
【図２２】中間調処理部の内部構成を示す図である。
【図２３】中間調処理の流れを示すフローチャートである。
【図２４】実施例２に係る、サブマトリクスの中にローテッドマトリクスがどのように配置されるのかを説明する図である。
【図２５】実施例２における、ローテッドマトリクスの配置の一例を示す図である。
【図２６】実施例２における、注目ローテッドマトリクスの周辺のマトリクスの配置形状を説明する図である。
【図２７】実施例２におけるローテッドマトリクスの生成処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下、本発明を実施するための形態について図面を用いて説明する。
【実施例１】
【００１７】
本実施例では、６００dpiの解像度で画像を形成する、電子写真方式のカラー画像形成装置（以下、画像形成装置）を例に説明するものとする。
【００１８】
図１は、本実施例に係る画像形成装置の構成の一例を示す図である。図１に示すように、画像形成装置１０４は、画像処理部１０２と画像形成部１０３により構成される。ホストＰＣ１０１と画像処理部１０２との間では、ホストＰＣ１０１から画像処理部１０２に対するプリント指示や、画像処理部１０２からホストＰＣ１０１に対する状態の通知等、各種の通信が行われる。また、プリント時にはホストＰＣ１０１から画像信号が画像処理部１０２に送信される。画像処理部１０２と画像形成部１０３との間では、画像処理部１０２から画像形成部１０３に対する各種制御の指示や、画像形成部１０３から画像処理部１０２に対する状態の通知等、各種の通信が行われる。また、プリント時には画像処理部１０２から後述する画像処理を施されたレーザ駆動信号が画像形成部１０３に送信される。
【００１９】
続いて、画像処理部１０２の詳細について説明する。
【００２０】
図２は、画像処理部１０２の内部構成を示すブロック図である。
【００２１】
ＣＰＵ２０６は、ＲＯＭ２０８に格納されたプログラムに基づいて、後述する各処理部及び全体を統括制御する。
【００２２】
ＲＡＭ２０７は、ＣＰＵ２０６の作業領域として使用される。
【００２３】
通信部２０９は、ホストＰＣ１０１との間で各種通信を行う。例えば、ホストＰＣ１０１からのプリント指示を受けとり、これによりプリントが開始される。
【００２４】
カラーマッチング処理部２０１は、ホストＰＣ１０１から送られてくる多階調の入力画像の色を表す色信号としてのＲＧＢ信号を、画像形成装置１０４の色再現域に合わせたデバイスＲＧＢ信号（以下、ＤｅｖＲＧＢ信号）に変換する。
【００２５】
色分解処理部２０２は、予めＲＯＭ２０８に用意されている色分解テーブルにより、ＤｅｖＲＧＢ信号を画像形成装置１０４のトナー色材色であるＣｙａｎ、Ｍａｇｅｎｔａ、Ｙｅｌｌｏｗ、Ｂｌａｃｋを表すＣＭＹＫ信号に変換する。
【００２６】
γ補正処理部２０３は、ＲＯＭ２０８に格納されている階調値−濃度特性を補正するγ補正テーブルによって、ＣＭＹＫ信号に対して階調値−濃度特性が一定の関係になるような補正を加えたＣ’Ｍ’Ｙ’Ｋ’信号へ変換する。
【００２７】
中間調処理部２０４は、入力画像のＣ’Ｍ’Ｙ’Ｋ’信号に対し中間調処理を行い、Ｃ’’Ｍ’’Ｙ’’Ｋ’’信号へ変換して、中間調の画像（ハーフトーン画像）を生成する。上述のとおり本発明では、多階調の入力画像に対してブルーノイズ法を用いた中間調処理を施すことにより、ブルーノイズ特性を有するハーフトーン画像が生成される。
【００２８】
ＰＷＭ処理部２０５は、ＰＷＭ（Pulse Width Modulation）により、Ｃ’’Ｍ’’Ｙ’’Ｋ’’信号に対応する不図示のレーザの露光時間を表すレーザ駆動信号Ｔｃ、Ｔｍ、Ｔｙ、Ｔｋを生成し、画像形成部１０３へ送信する。
【００２９】
画像処理部１０２を構成する上記各部（カラーマッチング処理部２０１、色分解処理部２０２、γ補正処理部２０３、中間調処理部２０４、ＰＷＭ処理部２０５）は、ロジック回路で構成することで高速処理を可能としている。
【００３０】
次に、画像形成部１０３の詳細について説明する。
【００３１】
図３は、画像形成部１０３の主要な構成を示すブロック図である。
【００３２】
制御部３０１は、画像形成部１０３の全体を制御し、画像処理部１０２からの指示によりレーザスキャナ部３０４、作像部３０３、給紙・搬送部３０２を制御する。
【００３３】
制御部３０１は、画像処理部１０２からプリント指示があると、レーザ駆動信号を受信し、レーザスキャナ部３０４を制御してレーザを駆動すると同時に作像部３０３を制御して、帯電、露光、現像、用紙への転写、定着プロセスを順に行う。さらに同時に給紙・搬送部３０２を制御し、用紙の給紙、搬送、排紙を行う。以上の動作により、用紙上に画像が形成される。
【００３４】
次に、中間調処理部２０４に設定されるディザマトリクスについて説明する。
【００３５】
まず、ディザマトリクスの生成時に参照される、マトリクス配置情報の生成について説明する。
【００３６】
図４は、本実施例に係る、マトリクス配置情報生成処理の流れを示すフローチャートである。なお、この一連の処理は、以下に示す手順を記述したコンピュータ実行可能なプログラムをＲＯＭ２０８からＲＡＭ２０７上に読み込んだ後に、ＣＰＵ２０６によって該プログラムを実行することによって実施される。
【００３７】
ステップ４０１において、ＣＰＵ２０６は、メインマトリクスのサイズを設定する。メインマトリクスとは、実際に繰り返されるパターンのマトリクス形状を示すものである。メインマトリクスのサイズは人間の視覚特性を考慮し、パターンの周期が視認されにくいサイズに設定される。６００dpiの解像度での画像形成を前提とする本実施例では、メインマトリクスのサイズを２５６×２５６に設定する。
【００３８】
ステップ４０２において、ＣＰＵ２０６は、ローテッドマトリクスのサイズを設定する。ローテッドマトリクスとは、上述のメインマトリクスを構成する閾値マトリクスであって、中間調処理部２０４で保持される閾値マトリクスである。本実施例では、１２８×１２８にローテッドマトリクスのサイズを設定する。ステップ４０１でメインマトリクスのサイズを２５６×２５６に設定しているので、メインマトリクスの中には、４つのローテッドマトリクスが配置されることになる。
【００３９】
ステップ４０３において、ＣＰＵ２０６は、メインマトリクス内のローテッドマトリクスの配置を決定する。図５は、メインマトリクスの中にローテッドマトリクスがどのように配置されるのかを説明する図である。図５において、太線の矩形５０１はメインマトリクスを示しており、その中を４分割した各位置（ａ〜ｄ）にローテッドマトリクスがそれぞれ配置される。図５に示されるように、本実施例におけるローテッドマトリクスには、向き等が異なる全８種類（Ａ〜Ｈ）のマトリクスが存在する。ローテッドマトリクスＡは、正位置のローテッドマトリクスである。ローテッドマトリクスＢは、ローテッドマトリクスＡを時計回りに９０度回転させたものである。ローテッドマトリクスＣは、ローテッドマトリクスＡを時計回りに１８０度回転させたものである。ローテッドマトリクスＤは、ローテッドマトリクスＡを時計回りに２７０度回転させたものである。ローテッドマトリクスＥは、ローテッドマトリクスＡを左右反転させたものである。ローテッドマトリクスＦは、ローテッドマトリクスＥを時計回りに９０度回転させたものである。ローテッドマトリクスＧは、ローテッドマトリクスＥを時計回りに１８０度回転させたものである。ローテッドマトリクスＨは、ローテッドマトリクスＥを時計回りに２７０度回転させたものである。
【００４０】
本ステップでは、まず、位置aに配置するローテッドマトリクスを、上述のローテッドマトリクスＡ〜Ｈの中からランダムに選択して決定する。なお、ランダムに選択するのではなく、任意のローテッドマトリクスを選択してもよい。本実施例では、位置ａに配置するローテッドマトリクスが決まれば、その対角線となる位置ｄにも同じ向きのローテッドマトリクスが配置される。次に、位置ａに配置されることとなったローテッドマトリクス以外の残りのローテッドマトリクスの中から、位置ｂに配置するローテッドマトリクスを決定する。そして、位置ｂに配置するローテッドマトリクスが決まれば、その対角線となる位置ｃにも同じ向きのローテッドマトリクスが配置されることになる。このようにして、ローテッドマトリクスの配置が決定される。なお、ローテッドマトリクスの配置は上述の例に限るものではなく、例えば４つすべての位置で異なる向きのローテッドマトリクスを配置するようにしてもよい。つまり、４つのうちの任意のマトリクス（例えば最初にその配置を決定したマトリクス）を基準となるローテッドマトリクスとした場合に、他のマトリクスはそれを変形（回転、反転、又はその両方）させたマトリクスとなる。
【００４１】
図６は、本実施例における、決定後のローテッドマトリクスの配置を示している。上述のとおり、図６では、位置ａのローテッドマトリクス６０１としてローテッドマトリクスＡ、位置ｂのローテッドマトリクス６０２としてローテッドマトリクスＢが配置されている。そして、位置ｃのローテッドマトリクス６０３としてローテッドマトリクスＢ、位置ｄのローテッドマトリクス６０４としてローテッドマトリクスＡが配置されている。
【００４２】
ステップ４０４において、ＣＰＵ２０６は、決定された配置における各ローテッドマトリクスに注目した場合の、周辺のローテッドマトリクスの配置形状を導出する。図７は、本実施例における、注目ローテッドマトリクスに隣接するローテッドマトリクスの配置形状を示す図である。例えば、位置ａに配置されたローテッドマトリクスＡ（６０１）を注目ローテッドマトリクスとした場合、隣接する各ローテッドマトリクスの配置形状は、図７の（ａ）のようになる。同様に、位置ｂに配置されたローテッドマトリクスＢ（６０２）を注目ローテッドマトリクスとした場合、隣接する各ローテッドマトリクスの配置形状は、図７の（ｂ）のようになる。同様に、位置ｃに配置されたローテッドマトリクスＢ（６０３）を注目ローテッドマトリクスとした場合、隣接する各ローテッドマトリクスの配置形状は、図７の（ｄ）のようになる。同様に、位置ｄに配置されたローテッドマトリクスＡ（６０４）を注目ローテッドマトリクスとした場合、隣接する各ローテッドマトリクスの配置形状は、図７の（ｃ）のようになる。図７の（ａ）〜（ｄ）を比較すると、（ａ）と（ｃ）、（ｂ）と（ｄ）がそれぞれ同じ配置形状となっており、この場合、注目ローテッドマトリクスに隣接する各ローテッドマトリクスの配置形状として、２種類の状態があることが分かる。
【００４３】
図８は図７の（ａ）の拡大図であり、図９は図７の（ｂ）の拡大図である。図８において、注目ローテッドマトリクス６０１の閾値８０１[ｔｈ（０、０）]に隣接する閾値は、以下のとおりである。すなわち、閾値８０１の左上から時計廻りにｔｈ（１２７、１２７）、ｔｈ（１２７、１２７）、ｔｈ（１２７、１２６）、ｔｈ（１、０）、ｔｈ（１、１）、ｔｈ（０、１）、ｔｈ（１、０）、ｔｈ（０、０）である。同様に図９では、閾値９０１に隣接する閾値は、閾値９０１の左上から時計廻りにｔｈ（１２７、１２７）、ｔｈ（０、０）、ｔｈ（０、１）、ｔｈ（１、０）、ｔｈ（１、１）、ｔｈ（０、１）、ｔｈ（１２６、１２７）、ｔｈ（１２７、１２７）である。
【００４４】
以上のようにして、メインマトリクスを構成する各ローテッドマトリクスの配置を示すマトリクス配置情報が生成される。本ステップで作成されたマトリクス配置情報は、中間調処理部２０４に保持されるディザマトリクスの生成時に参照される。
【００４５】
続いて、本実施例に係る、中間調処理部２０４に設定されるディザマトリクス（ローテッドマトリクス）の生成について説明する。図１０は、本実施例におけるローテッドマトリクスの生成処理の流れを示すフローチャートである。
【００４６】
ステップ１００１において、ＣＰＵ２０６は、各ローテッドマトリクスをさらに小さい単位のマトリクス（以下、ローテッドサブマトリクス）に分割する。２５６階調のローテッドマトリクスを生成する本実施例では、１２８ｘ１２８のローテッドマトリクスを、１６ｘ１６のローテッドサブマトリクスに分割する。図１１は、本実施例に係る６４ｘ６４のローテッドマトリクスを１６ｘ１６のローテッドサブマトリクスに分割した状態を示した図である。図１１に示すとおり、本実施例では、メインマトリクスが６４個のローテッドサブマトリクスに分割され、各ローテッドサブマトリクスに対して０〜２５５の閾値が割り当てられることとなる。なお、１０２４階調のローテッドマトリクスを生成する場合であれば、ローテッドサブマトリクスの大きさは３２ｘ３２となる。
【００４７】
ステップ１００２において、ＣＰＵ２０６は、各ローテッドサブマトリクスに初期値を設定する。２５６階調のローテッドマトリクスを生成する本実施例では、ローテッドサブマトリクスの各閾値に初期値として「２５６」が設定される。
【００４８】
ステップ１００３において、ＣＰＵ２０６は、各ローテッドサブマトリクス内に初期ドットを設定する。本実施例では、左上端のローテッドサブマトリクスから順番に、１つの初期ドットを設定する。初期ドットをローテッドサブマトリクス内のどこに設定するかは、例えば、ｘ座標とｙ座標に対して乱数を発生させ、１６で除算した余りを座標位置とするなどして決定する。図１２の（ａ）は、左上端にあるローテッドサブマトリクス１１０１に対して初期ドットが設定された状態を示す図である。初期ドットが割り当てられた位置には、閾値として「０」が上書きされる。
【００４９】
ステップ１００４において、ＣＰＵ２０６は、全てのローテッドサブマトリクスに初期ドットが設定されたかどうかを判定する。全てのローテッドサブマトリクスに初期ドットが設定されていない場合は、ステップ１００３に戻り、次のローテッドサブマトリクスに対して初期ドットの設定を行う。例えば、ローテッドサブマトリクス１１０１の次は、その右隣のローテッドサブマトリクス１１０２に対して初期ドットの設定がなされる（図１２の（ｂ）を参照）。図１３は、全てのローテッドサブマトリクスに対する初期ドットの設定がなされた状態を示す図である。図１３のように全てのローテッドサブマトリクスに初期ドットが設定されると、ステップ１００５に進む。
【００５０】
ステップ１００５において、ＣＰＵ２０６は、評価濃度Ｄｎに初期値として「０」を設定する。なお、初期ドットの数に応じて、ここで設定する初期値は変化する。初期ドットの数が１つである本実施例では「０」となる。
【００５１】
ステップ１００６において、ＣＰＵ２０６は、評価対象とする注目ローテッドサブマトリクスを決定する。例えば、初期ドットを設定した際と同様に、左上端のローテッドサブマトリクスから順番に右へと評価対象を移し、右端まで到達したら、一段下の左端にあるローテッドサブマトリクスへと移るといった具合に、注目ローテッドサブマトリクスを決定する。なお、注目ローテッドサブマトリクスの決定方法はこれに限定するものではなく、ランダムに選択してもよい。
【００５２】
ステップ１００７において、ＣＰＵ２０６は、決定された注目ローテッドサブマトリクスについて、設定された評価濃度Ｄｎでドットパターンを作成する。具体的には、閾値と評価濃度Ｄｎとを比較し、評価濃度Ｄｎの方が大きい場合は「１」、小さい場合は「０」として、ドットパターンを作成する。例えば、各位置のドットパターンP(x,y,Dn)を、次式のような演算によって決定する。
if(Dn≧Th(x,y)){
P(x,y,Dn)=1
}else{
P(x,y,Dn)=0
}
【００５３】
図１４は、作成したドットパターンの一例を示す図である。
【００５４】
ステップ１００８において、ＣＰＵ２０６は、作成されたドットパターンを評価関数で評価する。本実施例では、評価関数として斥力ポテンシャルを用いる。ここで、斥力ポテンシャルについて説明する。斥力ポテンシャルは、固体物理学で使われるポテンシャルであり(非特許文献１を参照)、以下の式（１）で与えられる。
【００５５】
【数１】
2015104804.tif 000003
【００５６】
３次元と２次元の違いはあるが、本実施例で用いる斥力ポテンシャルを以下の式（２）で定義する。
【００５７】
【数２】
2015104804.tif 000004
【００５８】
ただし、階調数を g として、α=β/√(256/g)とする。ここで、√(256/g)は、各階調 gにおいて、ドットが一様に分布しているとしたとき、ドット間の平均距離が比例すべき長さ(距離)に相当する。この場合、階調数が大きくなる程ドットの密度が上がり、αが大きくなるので、斥力ポテンシャルはr に関し急速に減衰する関数となる。斥力ポテンシャルの階調数依存性をなくす場合には、機械的に、g = 256 とすればよい。なお、使用する評価関数は、斥力ポテンシャルの他、フーリエスペクトルや濃度偏差などでも構わない。図１５は、斥力ポテンシャルの係数を示す、３１ｘ３１のテーブルの一例である。
【００５９】
実際には、注目する位置を中心に、以下のようにして評価が行われる。まず、各位置のポテンシャルエネルギーであるＥ(x,y,n,h)は、以下の式（３）で求められる。
【００６０】
【数３】
2015104804.tif 000005
【００６１】
ここで、F(i+15,j+15)は評価関数の係数であり、本実施例では上述の図１５のテーブルに示された係数を用いる。本実施例において、係数として３１ｘ３１のテーブルを用いたのは、ローテッドサブマトリクスのサイズが１６ｘ１６であり、ローテッドサブマトリクス内のどの位置でもローテッドサブマトリクス内のあらゆる位置の影響が反映できる大きさだからである。
【００６２】
図１６は、図７の（ａ）の配置における各ローテッドサブマトリクスのドットパターンの各位置に対する評価結果であり、図１７は、図７の（ｂ）の配置におけるローテッドサブマトリクスのドットパターンの各位置に対する評価結果を示している。
【００６３】
図１６において、１６０５は注目するローテッドサブマトリクス１１０１のドットパターンの各位置に対する評価結果を示したものである。
【００６４】
１６０１は、ローテッドサブマトリクス１１０８のドットパターンの各位置に対する評価結果を示したものである。
【００６５】
１６０２は、ローテッドサブマトリクス１１０８を時計回りに９０度回転させたドットパターンの各位置に対する評価結果を示したものである。
【００６６】
１６０３は、ローテッドサブマトリクス１１０６を時計回りに９０度回転させたドットパターンの各位置に対する評価結果を示したものである。
【００６７】
１６０４は、ローテッドサブマトリクス１１０１を時計回りに９０度回転させたドットパターンの各位置に対する評価結果を示したものである。
【００６８】
１６０６は、ローテッドサブマトリクス１１０２のドットパターンの各位置に対する評価結果を示したものである。
【００６９】
１６０７は、ローテッドサブマトリクス１１０２を時計回りに９０度回転させたドットパターンの各位置に対する評価結果を示したものである。
【００７０】
１６０８は、ローテッドサブマトリクス１１０４のドットパターンの各位置に対する評価結果を示したものである。
【００７１】
１６０９は、ローテッドサブマトリクス１１０５のドットパターンの各位置に対する評価結果を示したものである。
【００７２】
図１７において、１７１５は注目するローテッドサブマトリクス１１０１のドットパターンの各位置に対する評価結果を示したものである。
【００７３】
１７１１は、ローテッドサブマトリクス１１０８のドットパターンの各位置に対する評価結果を示したものである。
【００７４】
１７１２は、ローテッドサブマトリクス１１０１を時計回りに２７０度回転させたドットパターンの各位置に対する評価結果を示したものである。
【００７５】
１７１３は、ローテッドサブマトリクス１１０４を時計回りに２７０度回転させたドットパターンの各位置に対する評価結果を示したものである。
【００７６】
１７１４は、ローテッドサブマトリクス１１０８を時計回りに２７０度回転させたドットパターンの各位置に対する評価結果を示したものである。
【００７７】
１７１６は、ローテッドサブマトリクス１１０２のドットパターンの各位置に対する評価結果を示したものである。
【００７８】
１７１７は、ローテッドサブマトリクス１１０７を時計回りに２７０度回転させたドットパターンの各位置に対する評価結果を示したものである。
【００７９】
１７１８は、ローテッドサブマトリクス１１０４のドットパターンの各位置に対する評価結果を示したものである。
【００８０】
１７１９は、ローテッドサブマトリクス１１０５のドットパターンの各位置に対する評価結果を示したものである。
【００８１】
図１６及び図１７において、１６０１〜１６０９及び１７０１〜１７０９の各評価結果における枠で囲まれた評価値は初期ドットが設定された位置の評価値であり、その周辺の評価値よりも高い値になっている。そして、初期ドットから遠ざかるに従って評価値は低下しており、評価値が最も低いところが、次のドットを打つべき位置となる。
【００８２】
ステップ１００９において、ＣＰＵ２０６は、マトリクス配置情報を参照し、全ての配置形状について評価が行われたかどうかを判定する。本実施例では、注目ローテッドマトリクスに隣接する各ローテッドマトリクスの配置形状として、２種類の状態があるので、２種類の配置形状について評価がなされれば、ステップ１０１０に進む。一方、評価を行なっていない配置形状があればステップ１００７に戻り、次の配置形状の評価を行う。このように、マトリクス配置情報を参照して、考慮し得る全ての配置形状について評価を行うことで、メインマトリクスの切り替わりを目立ちにくくしている。
【００８３】
ステップ１０１０において、ＣＰＵ２０６は、得られた評価結果に基づいて、各位置におけるポテンシャルエネルギーの平均値Ｅave(x,y,n)を算出する。各位置のポテンシャルエネルギーの平均値Ｅave(x,y,n)は、次の式（４）によって求められる。
【００８４】
【数４】
2015104804.tif 000006
【００８５】
こうして、各位置のポテンシャルエネルギーの平均値が算出される。図１８の（ａ）は、図１６における評価結果１６０５と図１７における評価結果１７１５についての各位置における平均値を示したものである。枠内の評価値「0.27」がこの注目ローテッドサブマトリクス１１０１内で一番値が小さいので、次のドットを打つ位置に相応しいと判定される。同様に、図１８の（ｂ）は、図１６における評価結果１６０６と図１７における評価結果１１１６についての各位置における平均値を示したものである。枠内の評価値「0.16」がこの注目ローテッドサブマトリクス１１０２内で一番値が小さいので、次のドットのドットを打つ位置に相応しいと判定される。図１９は、初期ドットが打たれた状態（前述の図１３を参照）のドットパターンに対して、図１８の（ａ）及び（ｂ）における各枠で示された位置に２個目のドットを打った状態を示す図である。
【００８６】
ステップ１０１１において、ＣＰＵ２０６は、注目ローテッドサブマトリクスの中でポテンシャルエネルギーの平均値が最小となる位置を判断し、その位置のローテッドサブマトリクスの閾値として評価濃度Ｄｎに「１」を足した値を代入する。図２０は、注目ローテッドサブマトリクス１１０１に対して、図１８の（ａ）で示される結果（枠で示す最小評価値「0.27」）を受けて、その対応する位置に閾値（ここでは、０＋１＝１）を代入した結果を示したものである。
【００８７】
ステップ１０１２において、ＣＰＵ２０６は、全てのローテッドサブマトリクスについて評価が行われたかどうかを判定する。全てのローテッドサブマトリクスについて評価が行われていた場合には、ステップ１０１３へ進む。一方、評価を行なっていないローテッドサブマトリクスがあればステップ１００６に戻り、次のローテッドサブマトリクスの評価を行う。
【００８８】
ステップ１０１３において、ＣＰＵ２０６は、評価濃度Ｄｎの値をインクリメント（＋１）して、評価濃度Ｄｎを更新する。
【００８９】
ステップ１０１４において、ＣＰＵ２０６は、評価濃度Ｄｎの値が２５６に達したかどうかを判定する。評価濃度Ｄｎの値が２５６に達していない場合は、ステップ１００６に戻り、次の評価濃度Ｄｎで閾値を作成する。
【００９０】
以上のようにして、ローテッドマトリクスが生成される。図２１は、完成したローテッドマトリクスの一例を示したものであり、太線の枠内（１６ｘ１６）の各位置に閾値として０〜２５５のいずれかの値が入っている。
【００９１】
上記のようにして生成されたローテッドマトリクスが、後述のマトリクス保持部２２０２に設定されることになる。そして、生成されたローテッドマトリクスは、マトリクス配置情報に基づいて良好なブルーノイズ特性が得られるように最適化されているので、マトリクスの境界でドットが不連続になることがなく、高画質の画像を得ることが可能となる。
【００９２】
なお、本実施例では、濃度Ｄｎが０の状態から開始したが、例えば、中間の濃度である１２８や高濃度の２５５から開始してもよい。
【００９３】
次に、中間調処理部２０４における中間調処理について説明する。
【００９４】
図２２は、中間調処理部２０４の内部構成を示す図である。中間調処理部２０４は、アドレス生成部２２０１、マトリクス保持部２２０２、比較部２２０３、座標生成部２２０４で構成される。図２２から明らかなように、アドレス生成部２２０１、マトリクス保持部２２０２及び比較部２２０３は、ＣＭＹＫのそれぞれについて存在する。
【００９５】
アドレス生成部２２０１は、マトリクス配置情報に基づいて、注目画素が所属する位置の判定を行う。
【００９６】
マトリクス保持部２２０２は、前述の図１０のフローチャートで生成されたローテッドマトリクスを保持し、アドレス生成部２２０１で生成されたアドレスに従って、閾値を比較部２２０３へ出力する。
【００９７】
比較部２２０３は、γ補正処理部２０３から入力された信号（Ｃ’Ｍ’Ｙ’Ｋ’）とマトリクス保持部２２０２から入力された閾値とを比較し、Ｃ’’Ｍ’’Ｙ’’Ｋ’’の信号を出力する。
【００９８】
図２３は、本実施例に係る中間調処理の流れを示すフローチャートである。
【００９９】
ステップ２３０１において、ＣＰＵ２０６は、初期設定を行なう。具体的には、前述の図４のフローチャートで生成されたマトリクス配置情報を取得してアドレス生成部２２０１に設定し、前述の図１０のフローチャートで生成されたローテッドマトリクスを取得してマトリクス保持部２２０２に設定する。
【０１００】
ステップ２３０２において、座標生成部２２０４は、注目画素の位置する座標を生成する。ここでは、生成される座標の主走査方向をｘｉ、副走査方向をｙｉとする。
【０１０１】
ステップ２３０３において、アドレス生成部１１０１は、設定されたマトリクス配置情報を基に、注目画素が所属するローテッドマトリクス（本実施例では、位置ａ〜位置ｄのどのローテッドマトリクスに属するか）を判定する。具体的には、以下の式を用いて、注目画素の属するローテッドマトリクスが判定される。
ｉｆ（ｍｏｄ（ｘｉ，２＊ｗｉｎｘ）＜ｗｉｎｘ＆＆ｍｏｄ（ｙｉ，２＊ｗｉｎｙ）＜ｗｉｎｙ）｛
注目画素が属するローテッドマトリクス＝位置ａ
｝ｅｓｌｅｉｆ（ｍｏｄ（ｘｉ，２＊ｗｉｎｘ）＞ｗｉｎｘ＆＆ｍｏｄ（ｙｉ，２＊ｗｉｎｙ）＜ｗｉｎｙ）｛
注目画素が属するローテッドマトリクス＝位置ｂ
｝ｅｓｌｅｉｆ（ｍｏｄ（ｘｉ，２＊ｗｉｎｘ）＜ｗｉｎｘ＆＆ｍｏｄ（ｙｉ，２＊ｗｉｎｙ）＞ｗｉｎｙ）｛
注目画素が属するローテッドマトリクス＝位置ｃ
｝ｅｓｌｅｉｆ（ｍｏｄ（ｘｉ，２＊ｗｉｎｘ）＞ｗｉｎｘ＆＆ｍｏｄ（ｙｉ，２＊ｗｉｎｙ）＞ｗｉｎｙ）｛
注目画素が属するローテッドマトリクス＝位置ｄ
｝
【０１０２】
ステップ２３０４において、アドレス生成部２２０１は、ステップ２３０２で生成した注目画素の座標とレジスタなどに予め設定・保持されているマトリクス配置情報を基に、アドレスを生成する。アドレスの生成方法は、注目画素の属するローテッドマトリクスに応じて異なる。具体的には、以下の各式でアドレスがそれぞれ求められる。
注目画素の属するローテッドマトリクスが位置ａの場合
ａｄｄｒ＝（ｍｏｄ（ｘｉ，ｗｉｎｘ）＜＜７）＋ｍｏｄ（ｙｉ，ｗｉｎｙ）
注目画素の属するローテッドマトリクスが位置ｂの場合
ａｄｄｒ＝（ｍｏｄ（ｙｉ，ｗｉｎｙ）＜＜７）＋ｗｉｎｘ−ｍｏｄ（ｘｉ，ｗｉｎｘ）
注目画素の属するローテッドマトリクスが位置ｃの場合
ａｄｄｒ＝（ｍｏｄ（ｘｉ，ｗｉｎｘ）＜＜７）＋ｍｏｄ（ｙｉ，ｗｉｎｙ）
注目画素の属するローテッドマトリクスが位置ｄの場合
ａｄｄｒ＝（ｍｏｄ（ｙｉ，ｗｉｎｙ）＜＜７）＋ｗｉｎｘ−ｍｏｄ（ｘｉ，ｗｉｎｘ）
なお、７ビットシフトしているのは、本実施例では、ｗｉｎｘ、ｗｉｎｙがともに１２８であるからである。ここで、“＜＜”は左ビットシフトである。アドレスは１４ビットで、上位７ビットが主走査座標、下位７ビットが副走査座標を表している。
【０１０３】
ステップ２３０５において、マトリクス保持部２２０２は、保持しているローテッドマトリクスに基づき、ステップ２３０４で生成したアドレスに従って、閾値を決定する。決定された閾値は比較部２２０３へ出力される。
【０１０４】
ステップ２３０６において、比較部２２０３は、入力信号（Ｃ’Ｍ’Ｙ’Ｋ’の各信号）と入力された閾値とを比較し、出力信号（Ｃ’’Ｍ’’Ｙ’’Ｋ’’の各信号）を決定する。具体的には、閾値よりも入力信号の方が大きい場合は「１」を、入力信号が閾値以下の場合は「０」を出力する。
【０１０５】
ステップ２３０７において、ＣＰＵ２０６は、プリント指示に係る画像データ内の全ての画素が処理されたかどうかを判定する。未処理の画素がある場合は、ステップ２３０２へ戻り、処理を続行する。全ての画素について処理が完了していた場合は、本処理を終了する。
【０１０６】
以上が、本実施例における中間調処理の内容である。
【０１０７】
本実施例では、メインマトリクスを構成するローテッドマトリクスの配置情報に基づいて、最適化されたローテッドマトリクスが生成される。そして、マトリクス配置情報に応じてローテッドマトリクスのアドレスを求め、入力信号との比較に用いる閾値を決定している。これにより、高画質を確保したまま、中間調処理部で保持する閾値テーブルのサイズを削減することが可能となる。例えば、本実施例で述べた、メインマトリクスのサイズが２５６×２５６で、それを１２８×１２８のローテッドマトリクス４つで構成する場合、マトリクスに必要な情報量は１／４で済むことになる。また、ローテッドマトリクス生成時に、その配置を考慮しているので、マトリクス間に不自然なつなぎ目が生じることもなく、高画質を維持することが可能となる。
【実施例２】
【０１０８】
次に、メインマトリクスを複数のサブマトリクスで構成し、そのサブマトリクスを複数のローテッドマトリクスで構成する態様について、実施例２として説明する。なお、実施例１と共通する部分については説明を省略ないしは簡略化し、以下では差異点を中心に説明するものとする。
【０１０９】
本実施例では、メインマトリクスが４個のサブマトリクスで構成され、さらにサブマトリクスが４個のローテッドマトリクスで構成される場合を例に説明する。画像処理部１０２や中間調処理部２０４の構成は実施例１と同じであるので説明を省く。
【０１１０】
まず、本実施例におけるマトリクス配置情報の生成について、実施例１で用いた図４のフローチャートに沿って説明する。
【０１１１】
ステップ４０１において、ＣＰＵ２０６は、メインマトリクスのサイズを決定する。本実施例では、実施例１と同様、２５６×２５６とする。
【０１１２】
ステップ４０２において、ＣＰＵ２０６は、ローテッドマトリクスのサイズを決定する。本実施例ではメインマトリクスを４個のサブマトリクスで構成するので、サブマトリクスのサイズは１２８ｘ１２８である。そして、サブマトリクスを４個のローテッドマトリクスで構成するので、そのサイズは実施例１よりも小さい６４×６４となる。
【０１１３】
ステップ４０３において、ＣＰＵ２０６は、サブマトリクス内のローテッドマトリクスの配置を決定する。具体的には、メインマトリクスを４分割した各位置（位置ａ〜ｄ）に対し、その中をさらに４分割した各位置（位置ａ１〜ａ４、位置ｂ１〜ｂ４、位置ｃ１〜ｃ４、位置ｄ１〜ｄ４）に、ローテッドマトリクスを配置する。図２４は、本実施例に係る、サブマトリクスの中にローテッドマトリクスがどのように配置されるのかを説明する図である。図２４に示されるように、本実施例におけるメインマトリクスは、位置ａ〜ｄの４つのサブマトリクスで構成される。そして、各サブマトリクスの中は、位置ａ１〜ａ４、ｂ１〜ｂ４、ｃ１〜ｃ４、ｄ１〜ｄ４の各４個のローテッドマトリクスで構成される。ここで、位置ａ１〜ａ４は、実施例１における位置ａ（図５の５０１）をさらに４分割したものであり、全８種類（Ａ１〜Ａ８）の中から選択されたいずれかのローテッドマトリクスが配置される。同様に位置ｂ１〜ｂ４は、実施例１における位置ｂをさらに４分割したものであり、全８種類（Ｂ１〜Ｂ８）の中から選択されたいずれかのローテッドマトリクスが配置される。同様に位置ｃ１〜ｃ４は、実施例１における位置ｃをさらに４分割したものであり、全８種類（Ｃ１〜Ｃ８）の中から選択されたいずれかのローテッドマトリクスが配置される。同様に位置ｄ１〜ｄ４は、実施例１における位置ｄをさらに４分割したものであり、全８種類（Ｄ１〜Ｄ８）の中から選択されたいずれかのローテッドマトリクスが配置される。そして、ローテッドマトリクスＡ１、Ｂ１、Ｃ１、Ｄ１は、正位置のローテッドマトリクスである。ローテッドマトリクスＡ２、Ｂ２、Ｃ２、Ｄ２は、ローテッドマトリクスＡ１〜Ｄ１をそれぞれ時計回りに９０度回転させたものである。ローテッドマトリクスＡ３、Ｂ３、Ｃ３、Ｄ３は、ローテッドマトリクスＡ１〜Ｄ１をそれぞれ時計回りに１８０度回転させたものである。ローテッドマトリクスＡ４、Ｂ４、Ｃ４、Ｄ４は、ローテッドマトリクスＡ１〜Ｄ１をそれぞれ時計回りに２７０度回転させたものである。ローテッドマトリクスＡ５、Ｂ５、Ｃ５、Ｄ５は、ローテッドマトリクスＡ１〜Ａ４をそれぞれ左右反転させたものである。ローテッドマトリクスＡ６、Ｂ６、Ｃ６、Ｄ６は、ローテッドマトリクスＡ５〜Ｄ５をそれぞれ時計回りに９０度回転させたものである。ローテッドマトリクスＡ７、Ｂ７、Ｃ７、Ｄ７は、ローテッドマトリクスＡ５〜Ｄ５をそれぞれ時計回りに１８０度回転させたものである。ローテッドマトリクスＡ８、Ｂ８、Ｃ８、Ｄ８は、ローテッドマトリクスＡ５〜Ｄ５を時計回りに２７０度回転させたものである。ローテッドマトリクスをどのように配置するのかについては、実施例１と考え方は同じである。図２５は、本実施例における、ローテッドマトリクスの配置の一例を示す図である。図２５の例では、位置ａ１にローテッドマトリクスＡ１、位置ａ２にローテッドマトリクスＡ２、位置ａ３にローテッドマトリクスＡ２、位置ａ４にローテッドマトリクスＡ１が配置されている。同様に、位置ｂ１にローテッドマトリクスＢ１、位置ｂ２にローテッドマトリクスＢ２、位置ｂ３にローテッドマトリクスＢ２、位置ｂ４にローテッドマトリクスＢ１が配置されている。同様に、位置ｃ１にローテッドマトリクスＣ１、位置ｃ２にローテッドマトリクスＣ２、位置ｃ３にローテッドマトリクスＣ２、位置ｃ４にローテッドマトリクスＣ１が配置されている。同様に、位置ｄ１にローテッドマトリクスＤ１、位置ｄ２にローテッドマトリクスＤ２、位置ｄ３にローテッドマトリクスＤ２、位置ｄ４にローテッドマトリクスＤ１が配置されている。
【０１１４】
ステップ４０４において、ＣＰＵ２０６は、注目ローテッドマトリクスの周辺のマトリクスの配置を導出する。図２６は、本実施例における、注目ローテッドマトリクスの周辺のマトリクスの配置形状を説明する図である。例えば、位置ａ１に配置されたローテッドマトリクス２５１１を注目ローテッドマトリクスとした場合、隣接するマトリクスの配置形状は、図２６の（ａ）のようになる。同様に、他のローテッドマトリクス（２５１２〜２５１４、２５２１〜２５２４、２５３１〜２５３４、２５４１〜２５４４）を注目ローテッドマトリクスとした場合に隣接するマトリクスの配置形状は、それぞれ図２６の（ｂ）〜（ｐ）のようになる。すなわち、位置ａに関して図２６の（ａ）〜（ｄ）、位置ｂに関して同（ｅ）〜（ｈ）、位置ｃに関して同（ｉ）〜（ｌ）、位置ｄに関して同（ｍ）〜（ｐ）といった具合に、サブマトリクス毎にそれぞれ４種類の配置形状が存在することが分かる。
【０１１５】
以上のようにして、サブマトリクスを構成する各ローテッドマトリクスの配置を示すマトリクス配置情報が生成される。
【０１１６】
続いて、本実施例に係る、中間調処理部２０４に設定されるディザマトリクス（ローテッドマトリクス）の生成について説明する。図２７は、本実施例におけるローテッドマトリクスの生成処理の流れを示すフローチャートである。
【０１１７】
ステップ２７０１において、ＣＰＵ２０６は、６４ｘ６４のローテッドマトリクスをローテッドサブマトリクスに分割する。ここでも、２５６階調のローテッドマトリクスを生成するので、６４ｘ６４のローテッドマトリクスを、１６ｘ１６のローテッドサブマトリクスに分割する。
【０１１８】
ステップ２７０２において、ＣＰＵ２０６は、各ローテッドマトリクスに初期値を設定する。２５６階調のローテッドマトリクスを生成するので、各閾値には「２５６」が設定される。
【０１１９】
ステップ２７０３において、ＣＰＵ２０６は、各ローテッドサブマトリクス内に初期ドットを設定する。
【０１２０】
ステップ２７０４において、ＣＰＵ２０６は、全てのローテッドサブマトリクスに初期ドットが設定されたかどうかを判定する。全てのローテッドサブマトリクスに初期ドットが設定されていない場合は、ステップ２７０３に戻り、次のローテッドサブマトリクスに対して初期ドットの設定を行う。一方、全てのローテッドサブマトリクスに初期ドットが設定されている場合は、ステップ２７０５に進む。
【０１２１】
ステップ２７０５において、ＣＰＵ２０６は、評価濃度Ｄｎに初期値として「０」を設定する。
【０１２２】
ステップ２７０６において、ＣＰＵ２０６は、評価するサブマトリクスを決定する。本実施例では、サブマトリクス（位置ａ）、サブマトリクス（位置ｄ）、サブマトリクス（位置ｂ）、サブマトリクス（位置ｃ）の順番で評価、閾値の決定を行うものとする。もちろん、評価の順は、これに限られるものではない。
【０１２３】
ステップ２７０７において、ＣＰＵ２０６は、評価を行う注目ローテッドサブマトリクスを決定する。
【０１２４】
ステップ２７０８において、ＣＰＵ２０６は、決定された注目ローテッドサブマトリクスについて、設定された評価濃度Ｄｎでドットパターンを作成する。
【０１２５】
ステップ２７０９において、ＣＰＵ２０６は、評価関数を用いて、作成されたドットパターンの評価を行う。
【０１２６】
ステップ２７１０において、ＣＰＵ２０６は、マトリクス配置情報を参照し、全ての配置形状について評価が行われたかどうかを判定する。全ての配置形状について評価が行われていた場合は、ステップ２７１１に進む。一方、評価を行なっていない配置形状があればステップ２７０８に戻り、次の配置形状の評価を行なう。本実施例では、位置ａ〜ｄの各サブマトリクスにおいて、それぞれ４種類の配置形状で評価がなされることになる。
【０１２７】
ステップ２７１１において、ＣＰＵ２０６は、得られた評価結果に基づいて、各位置におけるポテンシャルエネルギーの平均値Ｅave(x,y,n)を算出する。
【０１２８】
ステップ２７１２において、ＣＰＵ２０６は、注目ローテッドサブマトリクスの中でポテンシャルエネルギーの平均値が最小となる位置を判断し、その位置のローテッドサブマトリクスの閾値として評価濃度Ｄｎに「１」を足した値を代入する。
【０１２９】
ステップ２７１３において、ＣＰＵ２０６は、全てのローテッドサブマトリクスについて評価が行われたかどうかを判定する。全てのローテッドサブマトリクスについて評価が行われていた場合には、ステップ２７１４へ進む。一方、評価を行なっていないローテッドサブマトリクスがあればステップ２７０７に戻り、次のローテッドサブマトリクスの評価を行う。
【０１３０】
ステップ２７１４において、ＣＰＵ２０６は、全てのサブマトリクスに対して評価が行われたかどうかを判定する。全てのサブマトリクス（ここでは位置ａ〜ｄの４つ）で評価が行われたと判定された場合は、ステップ２７１５に進む。一方、未処理のサブマトリクスが存在すると判断された場合はステップ２７０６に戻り、次のサブマトリクスを評価対象のサブマトリクスに決定する。
【０１３１】
ステップ２７１５において、ＣＰＵ２０６は、評価濃度Ｄｎの値をインクリメント（＋１）して、評価濃度Ｄｎを更新する。
【０１３２】
ステップ２７１６において、ＣＰＵ２０６は、評価濃度Ｄｎの値が「２５６」に達したかどうかを判定する。評価濃度Ｄｎの値が「２５６」に達していない場合は、ステップ２７０６に戻り、次の評価濃度Ｄｎで閾値を作成する。
【０１３３】
以上が、本実施例におけるローテッドマトリクスの生成処理の流れである。
【０１３４】
そして、上記のような処理によって生成された６４×６４のローテッドマトリクスで構成される１２８×１２８のサブマトリクスが、決定された配置に従ってマトリクス保持部２２０２に設定され、中間調処理がなされることになる。なお、中間調処理部２０４における中間調処理の流れについては実施例１の図２３のフローチャートで示したとおりである。
【０１３５】
本実施例によれば、メインマトリクスが複数のサブマトリクスで構成され、さらにそのサブマトリクスが複数のローテッドマトリクスで構成される。これにより、中間調処理部で保持する閾値テーブルの大きさを変えずに、さらにパターンが人の目につきにくい高画質な画像を得ることが可能となる。
【０１３６】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2015104804.tif 000007
【図２】
2015104804.tif 000008
【図３】
2015104804.tif 000009
【図４】
2015104804.tif 000010
【図５】
2015104804.tif 000011
【図１０】
2015104804.tif 000012
【図１１】
2015104804.tif 000013
【図１２】
2015104804.tif 000014
【図１３】
2015104804.tif 000015
【図１４】
2015104804.tif 000016
【図１５】
2015104804.tif 000017
【図１６】
2015104804.tif 000018
【図１７】
2015104804.tif 000019
【図１８】
2015104804.tif 000020
【図１９】
2015104804.tif 000021
【図２０】
2015104804.tif 000022
【図２１】
2015104804.tif 000023
【図２２】
2015104804.tif 000024
【図２３】
2015104804.tif 000025
【図２４】
2015104804.tif 000026
【図２６】
2015104804.tif 000027
【図２７】
2015104804.tif 000028
【図６】
2015104804.tif 000029
【図７】
2015104804.tif 000030
【図８】
2015104804.tif 000031
【図９】
2015104804.tif 000032
【図２５】
2015104804.tif 000033