(57)【要約】【課題】逆相関型のデジタルハーフトーニング処理を行う際に、計算量を低減した上で、原画像の階調を維持できる画像処理装置、画像処理方法及び画像処理プログラムとする。【解決手段】多階調画像データの注目画素について、当該注目画素周辺の既に量子化が行われた画素についてのドット出現情報配列に対して逆相関が大きくなるようなドット出現情報配列を決定する量子化を行う際に、注目画素の周辺画素についてのドット出現情報配列を構成する要素の要素番号毎に、周辺画素にドットが出現する期待値を算出し、要素番号毎の期待値をその値の小さい順に並べた要素番号列を算出する。要素番号列を算出するにあたって要素番号毎の期待値が同じものが存在する場合には、当該注目画素の１つ前に処理した注目画素についてのドット出現情報配列における一の値を付した最も大きな要素番号と比較して、順位付けを行うようになっている。【選択図】図１
2005072891.tif 000002
【特許請求の範囲】
【請求項１】
多階調画像データを量子化して疑似中間調の出力用画像データに変換するための演算処理部を有する画像処理装置であって、
前記演算処理部は、
多階調画像データの注目画素について、当該注目画素周辺の既に量子化が行われた画素についてのドット出現情報配列に対して逆相関が大きくなるようなドット出現情報配列を決定する量子化を行う際に、
前記注目画素の周辺画素についてのドット出現情報配列を構成する要素の要素番号毎に、周辺画素にドットが出現する期待値を算出し、
前記要素番号毎の期待値をその値の小さい順に並べた要素番号列を算出し、
前記要素番号列の任意の開始点から、前記注目画素の階級値分の要素番号に対して一の値を付すと共に、他の要素番号に対して他の値を付して前記注目画素のドット出現情報配列を決定する構成となっており、
前記要素番号列を算出するにあたって要素番号毎の期待値が同じものが存在する場合には、当該注目画素の１つ前に処理した注目画素についてのドット出現情報配列における一の値を付した最も大きな要素番号と比較して、順位付けを行う構成となっていることを特徴とする画像処理装置。
【請求項２】
多階調画像データを量子化して疑似中間調の出力用画像データに変換するための演算処理部を有する画像処理装置であって、
前記演算処理部は、
多階調画像データの注目画素について、当該注目画素周辺の既に量子化が行われた画素についてのドット出現情報配列に対して逆相関が大きくなるようなドット出現情報配列を決定する量子化を行う際に、
前記注目画素の周辺画素についてのドット出現情報配列を構成する要素の要素番号毎に、周辺画素にドットが出現する期待値を算出し、
前記要素番号毎の期待値をその値の小さい順に並べた要素番号列を算出し、
前記要素番号列の任意の開始点から、前記注目画素の階級値分の要素番号に対して一の値を付すと共に、他の要素番号に対して他の値を付して前記注目画素のドット出現情報配列を決定する構成となっており、
前記要素番号列を算出するにあたって要素番号毎の期待値が同じものが存在する場合には、当該注目画素の１つ前に処理した注目画素についてのドット出現情報配列における一の値を付した最も小さな要素番号と比較して、順位付けを行う構成となっていることを特徴とする画像処理装置。
【請求項３】
請求項１又は２に記載の画像処理装置において、
前記任意の開始点は、算出された要素番号列において最小と順位付けされた要素番号であることを特徴とする画像処理装置。
【請求項４】
請求項１〜３のいずれか一項に記載の画像処理装置において、
前記要素番号毎の期待値には、所定の重み付けがなされていることを特徴とする画像処理装置。
【請求項５】
多階調画像データを量子化して疑似中間調の出力用画像データに変換する画像処理方法であって、
多階調画像データの注目画素について、当該注目画素周辺の既に量子化が行われた画素についてのドット出現情報配列に対して逆相関が大きくなるようなドット出現情報配列を決定する量子化を行う際に、
前記注目画素の周辺画素についてのドット出現情報配列を構成する要素の要素番号毎に、周辺画素にドットが出現する期待値を算出し、
前記要素番号毎の期待値をその値の小さい順に並べた要素番号列を算出し、
前記要素番号列の任意の開始点から、前記注目画素の階級値分の要素番号に対して一の値を付すと共に、他の要素番号に対して他の値を付して前記注目画素のドット出現情報配列を決定するようになっており、
前記要素番号列を算出するにあたって要素番号毎の期待値が同じものが存在する場合には、当該注目画素の１つ前に処理した注目画素についてのドット出現情報配列における一の値を付した最も大きな要素番号と比較して、順位付けを行うようになっていることを特徴とする画像処理方法。
【請求項６】
多階調画像データを量子化して疑似中間調の出力用画像データに変換する画像処理方法であって、
多階調画像データの注目画素について、当該注目画素周辺の既に量子化が行われた画素についてのドット出現情報配列に対して逆相関が大きくなるようなドット出現情報配列を決定する量子化を行う際に、
前記注目画素の周辺画素についてのドット出現情報配列を構成する要素の要素番号毎に、周辺画素にドットが出現する期待値を算出し、
前記要素番号毎の期待値をその値の小さい順に並べた要素番号列を算出し、
前記要素番号列の任意の開始点から、前記注目画素の階級値分の要素番号に対して一の値を付すと共に、他の要素番号に対して他の値を付して前記注目画素のドット出現情報配列を決定するようになっており、
前記要素番号列を算出するにあたって要素番号毎の期待値が同じものが存在する場合には、当該注目画素の１つ前に処理した注目画素についてのドット出現情報配列における一の値を付した最も小さな要素番号と比較して、順位付けを行うようになっていることを特徴とする画像処理方法。
【請求項７】
請求項５又は６に記載の画像処理方法において、
前記任意の開始点は、算出された要素番号列において最小と順位付けされた要素番号であることを特徴とする画像処理方法。
【請求項８】
請求項５〜７のいずれか一項に記載の画像処理方法において、
前記要素番号毎の期待値には、所定の重み付けがなされていることを特徴とする画像処理方法。
【請求項９】
多階調画像データを量子化して疑似中間調の出力用画像データに変換するためのコンピュータに、
多階調画像データの注目画素について、当該注目画素周辺の既に量子化が行われた画素についてのドット出現情報配列に対して逆相関が大きくなるようなドット出現情報配列を決定する量子化を行う際に、
前記注目画素の周辺画素についてのドット出現情報配列を構成する要素の要素番号毎に、周辺画素にドットが出現する期待値を算出し、
前記要素番号毎の期待値をその値の小さい順に並べた要素番号列を算出し、
前記要素番号列の任意の開始点から、前記注目画素の階級値分の要素番号に対して一の値を付すと共に、他の要素番号に対して他の値を付して前記注目画素のドット出現情報配列を決定し、
前記要素番号列を算出するにあたって要素番号毎の期待値が同じものが存在する場合には、当該注目画素の１つ前に処理した注目画素についてのドット出現情報配列における一の値を付した最も大きな要素番号と比較して、順位付けを行う機能を実現させるための画像処理プログラム。
【請求項１０】
多階調画像データを量子化して疑似中間調の出力用画像データに変換するためのコンピュータに、
多階調画像データの注目画素について、当該注目画素周辺の既に量子化が行われた画素についてのドット出現情報配列に対して逆相関が大きくなるようなドット出現情報配列を決定する量子化を行う際に、
前記注目画素の周辺画素についてのドット出現情報配列を構成する要素の要素番号毎に、周辺画素にドットが出現する期待値を算出し、
前記要素番号毎の期待値をその値の小さい順に並べた要素番号列を算出し、
前記要素番号列の任意の開始点から、前記注目画素の階級値分の要素番号に対して一の値を付すと共に、他の要素番号に対して他の値を付して前記注目画素のドット出現情報配列を決定し、
前記要素番号列を算出するにあたって要素番号毎の期待値が同じものが存在する場合には、当該注目画素の１つ前に処理した注目画素についてのドット出現情報配列における一の値を付した最も小さな要素番号と比較して、順位付けを行う機能を実現させるための画像処理プログラム。
【請求項１１】
請求項９又は１０に記載の画像処理プログラムにおいて、
前記任意の開始点は、算出された要素番号列において最小と順位付けされた要素番号であることを特徴とする画像処理プログラム。
【請求項１２】
請求項９〜１１のいずれか一項に記載の画像処理プログラムにおいて、
前記要素番号毎の期待値には、所定の重み付けがなされていることを特徴とする画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法及び画像処理プログラムに係り、特には多階調画像データを量子化して擬似中間調の出力用画像データに変換する画像処理装置、画像処理方法および画像処理プログラムに関する。
【背景技術】
【０００２】
従来、多階調の原画像データを擬似中間調の出力用画像データに変換する量子化処理の手法として、組織的ディザ法、誤差拡散法等が知られている。この中でも、誤差拡散法は、比較的高い画質を得ることができるため、高画質の用途に用いられることが多く、種々の改良がなされてきた。誤差拡散法での画質的な課題は、ノイズを増幅させずにアルゴリズム特有のテクスチャをいかに低減させるかである。
【０００３】
例えば、複数の誤差拡散マトリクスを利用して均一性を確保しようと試みているものがある（特許文献１参照。）。具体的には、２つのマトリクスを入力値に応じて切り替え、大きいマトリクスをハイライトやシャドー部で使用し、ウォームと呼ばれる模様の発生を防ぎ、小さいマトリクスを中域部で使用し、ノイズを抑えようとするものである。
【０００４】
また、ハイライト及びシャドー領域でより均一な結果を生成するため、出力値に依存するしきい値を用いてしきい値を変更するものもある（特許文献２参照。）。具体的には、２値化出力が白か黒かで、入力に応じたしきい値変更を周囲画素に対して行い、それを繰り返し伝搬し用いるというものである。
【０００５】
その他にも、誤差拡散マトリクスのサイズ、係数を最適化する方法や、処理順序（走査方向）の変更などが行われてきた。しかし、これらの手法からは一定の効果を得ることはできたが、十分と呼べるような効果を得ることはできなかった。
【０００６】
一方、これらの誤差拡散法やその改良方法、ディザ法などとは異なる量子化処理の手法として、逆相関型のデジタルハーフトーニング法が提案されている（非特許文献１参照。）。この方法は、画素毎にドットの出現情報を表す配列（以下、ドット出現パターンとする）、すなわち、注目画素を構成する階調数に実質的に比例した数だけドットの有無情報を配列させたもの、を設定し、その情報に基づきハーフトーニングする方法であって、注目画素についてのドット出現パターンの内容決定においては、注目画素の周辺画素について既に決定済みのドット出現パターンを用い、これらドット出現パターンを構成する要素の要素番号毎に、周辺画素にドットが出現する期待値（以下、ヒストグラムとする）を算出し、この期待値に基づき、ドット出現数の少ない要素番号にドット有り情報を優先的に設定し、ドット出現数の多い要素番号にドット無し情報を設定するよう、注目画素のドット出現パターンを決める方法である。
【０００７】
以下、逆相関型のデジタルハーフトーニング法について、具体的な例を挙げて説明する。なお、以下の説明においては、左から右に向かう方向に注目画素を切り換えて処理を行うこととする。
図９に示すように、逆相関型のデジタルハーフトーニング法による画像処理においては、原画像データ（多階調画像データ）が入力される前に、予め０〜（ｎ−１）の範囲内から無作為にランダム変数ｒ（ｒは整数）を決定する（ステップＴ１）。なお、「ｎ」は画素値ｇi,jの最大値である。画素値ｇi,jとは、ｉ行ｊ列目の画素における階調値のことであり、ここでは０〜ｎの範囲内の何れかの値である。
原画像データが入力されたら、原画像データ中からｉ行ｊ列目の画素（注目画素）に関する画素値ｇi,jを取得する（ステップＴ２）。
【０００８】
画素値ｇi,jを取得したら、その画素値ｇi,jに基づきｉ行ｊ列目の画素のローカルフィルタＰを生成する（ステップＴ３）。具体的には、始めに画素値ｇi,jを下記式（１）に代入してΔを求め、そのΔが図１０中左欄のどの範囲に属するかを特定し、特定した範囲に対応するローカルフィルタＰの情報を図１０中右欄から特定する。なお、図中、例えば「Δ∈［０，１３／２５５）」は、０≦Δ＜１３／２５５を示している。
Δ＝｜ｇi,j−ｎ／２｜／ｎ  …  （１）
【０００９】
例えば、画素値ｇi,jが１２０だとしたら、上記式（１）からΔ＝｜１２０−２５５／２｜／２５５＝７．５／２５５が導き出され、このΔ（＝７．５／２５５）が、図１０中左欄の最も上の欄に記載されたΔ∈［０，１３／２５５）に属しているのを特定することができる。そしてΔ∈［０，１３／２５５）が記載された特定済みの欄から、その右隣に配置された欄のＲ（Ｋ1，６，−５）をローカルフィルタＰの情報として特定することができる。
【００１０】
次に、特定された情報を便宜的に一般化して「Ｒ（Ｋ，ｌｋ，ε（ｌｋ））」とした場合に、まず「Ｋ」を参照することにより、図１１及び図１２に示した６つの基礎フィルタＫ1〜Ｋ6の何れかを選択する。次に、「ｌｋ」を参照することにより、基礎フィルタＫ中の×印の画素、即ちｉ行ｊ列目の画素から、上方向、左方向及び右方向に（ｌｋ−１）画素分の広がりを有するｌｋ行×（２ｌｋ−１）列のサイズのフィルタを生成する。そして、「ｌｋ」及び「ε（ｌｋ）」を参照し、生成されたフィルタ中の１列目から（ｌｋ−ε（ｌｋ））列目までの各画素には基礎フィルタＫの画素値をそのまま割り当て、かつ（ｌｋ−ε（ｌｋ））列目より先の列の各画素には０を割り当てることにより、ローカルフィルタＰを生成する。
【００１１】
例えば、ローカルフィルタＰの情報がＲ（Ｋ6，４，−１）で表されるとしたら、以下のような手順でローカルフィルタＰを生成する。すなわち、Ｒ（Ｋ6，４，−１）において、基礎フィルタＫに対応するのが「Ｋ6」であるから、図１２中の３つの基礎フィルタＫ4〜Ｋ6のなかから下段に図示された基礎フィルタＫ6を基礎フィルタＫとして特定する。そしてＲ（Ｋ6，４，−１）において、ｌｋに対応するのが「４」であり、ε（ｌｋ）に対応するのが「−１」であるから、まず始めに、図１２中下段の基礎フィルタＫ6中で×印の画素から、上方向、左方向及び右方向に３（＝ｌｋ−１）画素分の広がりを有する４行×７（＝２×４−１）列のサイズのフィルタを生成し、その後、その生成した４行×７列のフィルタにおいて、１列目から５（＝４−（−１））列目までの各画素には基礎フィルタＫ6の画素値をそのまま割り当て、５列目より先の列の各画素には０を割り当てる。このような手順で生成されたローカルフィルタＰを図１３に示す。
【００１２】
ローカルフィルタＰを生成したら、ｉ行ｊ列目の画素のヒストグラムＨi,j［ｋ］を算出する（ステップＴ４）。「ヒストグラムＨi,j［ｋ］」というのは、ローカルフィルタＰ中に×印で示される注目画素の周辺の画素の配置位置を（ｘ，ｙ）で表したときに、注目画素周辺の各画素のドット出現パターンＣx,y［ｋ］をローカルフィルタＰの（ｘ，ｙ）の位置の値で重み付けし、要素ｋの値（要素番号）毎に加算した合計値（期待値）である。ただし、「ｋ」は０から（ｎ−１）までの任意の整数値であって、ドット出現パターンＣx,y［ｋ］の要素ｋと同義である。また、「ドット出現パターンＣi,j［ｋ］」というのは、それぞれ０または１の値をとるＣi,j［０］〜Ｃi,j［ｎ−１］によって構成される数列（ドット出現情報配列）である。このドット出現パターンＣi,j［ｋ］は、要素ｋに０から（ｎ−１）の何れかの値を代入したときに「１」となればｉ行ｊ列目の画素にドットを形成することを示し、「０」となればドットを形成しないことを示す。
【００１３】
例えば、図１３に示すローカルフィルタＰを生成した場合に、ローカルフィルタＰ中の各画素の位置（ｘ，ｙ）、ローカルフィルタＰ中の各画素の画素値ｐx,yが図１４（ａ）、（ｂ）のように設定されたとしたら、ｉ行ｊ列目の注目画素（図１３，図１４中×印の画素）のヒストグラムＨi,j［ｋ］を、下記の式にしたがって要素ｋの値ごとに算出する。
Ｈi,j［０］＝Ｃx1,y1［０］×ｐx1,y1＋Ｃx1,y2［０］×ｐx1,y2＋Ｃx1,y3［０］×ｐx1,y3＋  …  ＋Ｃx4,y3［０］×ｐx4,y3
Ｈi,j［１］＝Ｃx1,y1［１］×ｐx1,y1＋Ｃx1,y2［１］×ｐx1,y2＋Ｃx1,y3［１］×ｐx1,y3＋  …  ＋Ｃx4,y3［１］×ｐx4,y3
Ｈi,j［２］＝Ｃx1,y1［２］×ｐx1,y1＋Ｃx1,y2［２］×ｐx1,y2＋Ｃx1,y3［２］×ｐx1,y3＋  …  ＋Ｃx4,y3［２］×ｐx4,y3
…
…
Ｈi,j［ｎ−１］＝Ｃx1,y1［ｎ−１］×ｐx1,y1＋Ｃx1,y2［ｎ−１］×ｐx1,y2＋Ｃx1,y3［ｎ−１］×ｐx1,y3＋  …  ＋Ｃx4,y3［ｎ−１］×ｐx4,y3
【００１４】
次に、各要素ｋについて算出されたヒストグラムＨi,j［０］〜Ｈi,j［ｎ−１］を値の小さい順に並べ替え、ヒストグラムＨi,j［ｋ］の要素番号列Ｓ［ｋ］を算出する（ステップＴ５）。
【００１５】
例えば、ヒストグラムＨi,j［０］〜Ｈi,j［ｎ−１］が、Ｈi,j［８］＜Ｈi,j［３］＜Ｈi,j［４］＜Ｈi,j［１］＜Ｈi,j［５］＜…＜Ｈi,j［ｎ−１］のように並べ替えられたら、要素番号列Ｓ［ｋ］は｛８，３，４，１，５，…，（ｎ−１）｝のように算出される。なお、この要素番号列Ｓ［ｋ］において、「８」は０番目の要素であり、「３」は１番目の要素である。
【００１６】
要素番号列Ｓ［ｋ］を算出したら、カウンタ値Ｃｏｕｎｔを０に設定し（ステップＴ６）、要素番号列Ｓ［ｋ］の要素ｋ’に、要素番号列Ｓ［ｋ］中、カウンタ値Ｃｏｕｎｔの値に対応する順番の要素Ｓ［Ｃｏｕｎｔ］の値を代入する（ステップＴ７）。すなわち、上記した要素番号列Ｓ［ｋ］（＝｛８，３，４，１，５，…，（ｎ−１）｝）を例にすると、カウンタ値Ｃｏｕｎｔが０であるから、ｋ’に８（＝Ｓ［０］）を代入する。
【００１７】
続いて、カウンタ値Ｃｏｕｎｔと画素値（ｇi,j−１）との大小関係を比較する（ステップＴ８）。
比較の結果、カウンタ値Ｃｏｕｎｔが画素値（ｇi,j−１）以下であれば、要素ｋ’に対応するドット出現パターンＣi,j［ｋ’］を「１」に設定し（ステップＴ９）、大きければ「０」に設定する（ステップＴ１０）。例えば、画素値ｇi,jが３で、かつ要素番号列Ｓ［ｋ］が｛８，３，４，１，５，…，（ｎ−１）｝であれば、ドット出現パターンＣi,j［ｋ］のうち、まず要素Ｃi,j［８］を「１」に設定する。
【００１８】
ステップＴ９又はステップＴ１０の処理を終えたら、カウンタ値Ｃｏｕｎｔに１を加算し（ステップＴ１１）、カウンタ値Ｃｏｕｎｔ（＝１）と（ｎ−１）との大小関係を比較し（ステップＴ１２）、カウンタ値Ｃｏｕｎｔが（ｎ−１）と同じ値になるまでステップＴ７からステップＴ１１までの処理を繰り返し行うことにより、ドット出現パターンＣi,j［ｋ］を決定する。これにより、以上のようにして要素Ｃi,j［８］，Ｃi,j［３］，Ｃi,j［４］に「１」が設定される。ドット出現パターンＣi,j［ｋ］が決定されたら、ドット出現パターンＣi,j［ｋ］のうち、上記ステップＴ１で決定したランダム変数ｒを要素番号とするＣi,j［ｒ］を、ｉ行ｊ列目の画素の出力値ｂi,jとして算出する（ステップＴ１３）。なお、出力値ｂi,jは上記ステップＴ９又はステップＴ１０の処理からもわかるように「０」又は「１」である。
【００１９】
出力値ｂi,jを算出したら、入力された原画像データの全ての画素について出力値ｂを算出したか否かを判断し（ステップＴ１４）、全ての画素の出力値ｂを未だ算出していないと判定したら、未処理の各画素について上記ステップＴ２からステップＴ１３までの処理を繰り返し行う。全ての画素の出力値ｂ、つまり疑似中間調の出力用画像データを算出したと判定したら処理を終了する。
【００２０】
以上の逆相関型のデジタルハーフトーニング法による画像処理によれば、１つの画素に着目した場合にはドットの出現頻度がその画素の画素値ｇi,jに比例し、近接する複数の画素に着目した場合には各画素でのドットの出現の仕方が周辺画素との逆相関を実質的に最大とすることとなるため、画像の記録時において記録媒体に形成されるドットの分散性が向上する。そのため、逆相関型のデジタルハーフトーニング法は、誤差拡散法に見られる特有のテクスチャが少ないという特徴を有している。
なお、画像端部に関するドット出現パターンＣi,j[ｋ]の決定には、画像領域外の周辺画素に関するドット出現パターンが必要となるが、このための画像領域外の周辺画素に関してはランダム変数を用いる等してドット出現パターンを決めておく。具体的には、例えば次のように定義する。
Ｃi,j[ｋ]=  １ ( ｒＢＲ < ｎΔ  のとき)、  ０ ( それ以外のとき )
ここで、Δ=| ｇi,j − ｎ／２ |／ｎであり、「ｇi,j」は注目画素の画素値である。また、「ｒＢＲ」は｛０，１，．．．(ｉｎｔ)(ｎ／２）｝に含まれるランダムな整数であり、毎回異なる値とする。
【特許文献１】特開平４−３２８９５７号公報
【特許文献２】特開平８−１０７５００号公報
【非特許文献１】ドミトリ・Ａ・グゼフ（Dmitri A. Gusev）、"Anti-Correlation Digital Halftoning"、［online］、平成１０年８月、インディアナ大学、［平成１５年、７月１日検索］、インターネット＜ＵＲＬhttp://www.cs.indiana.edu/cgi-bin/techreports/TRNNN.cgi?trnum=TR513＞
【発明の開示】
【発明が解決しようとする課題】
【００２１】
ところで、逆相関型のデジタルハーフトーニング法を用いた２次元のハーフトーニング処理を行う際には、注目画素の周辺の既に量子化が行われた画素に対して、一定の領域（ここでは「重み係数マスク」と呼ぶ。）を指定し、ローカルフィルタＰを適用してマスク領域内にある画素（例えば、前記した７×４の範囲内の画素や、図１５に示す５×３の範囲内の画素）の期待値を算出し、当該期待値をその値の小さい順に並べた要素番号列を算出することが行われる。
そのとき、期待値の同じもの（例えば、Ｈ［ｋ1］とＨ［ｋ2］）が存在する場合には、数式（１）を用いて判断する。
【００２２】
【数１】
2005072891.tif 000003
【００２３】
つまり、期待値の同じＨ［ｋ1］とＨ［ｋ2］が存在する場合は、今までに算出してきたドット出現パターンにおける各要素での値の累積が小さいものから順に並べるようになっている。
例えば、図１５においては、Ｈ［３］とＨ［４］は、その期待値がともに１６であるが、数式（１）に当てはめた結果、要素番号列ではＨ［３］＜Ｈ［４］となっている。すなわち、Ｈ［４］に比べてＨ［３］の要素ｋ＝３の方が、今までのドット出現パターンにおいて「１」を割り当てた数が少ないため、先の順番となるのである。
【００２４】
そして、並び順を変更した後、小さい順から対応する要素ｋに対して、注目画素の階調値の数だけ、Ｃ［ｋ］に１を入れる作業を行う。
その後、予め求めた０〜最大階調数の間の値を取るランダム変数ｒに対応するＣ［ｒ］を注目画素の出力値とする。
【００２５】
この方法を用いた場合、全体処理の始まるところが連続したシャドーやハイライトの場合でも、原画像を維持することができる。
以下、図１６と図１７を参考に説明する。
【００２６】
シャドーの場合を例にとって考えると、図１６に示すように、画像の最も先端にある値が階級値１／２５５の４つの画素Ｉ0〜Ｉ3があり、Ｉ0のドット出現パターンをＣ［０］＝１とする。重み係数マスクの最も上部のラインサイズは５画素分、最も左部の列のサイズは３画素分、最も下部の中心に注目画素があるとする。この様な場合、Ｉ1のドット出現パターンを計算する際に、マスク内にあるＩ0のドット出現パターンに影響され、重み付きヒストグラムＨ［０］は最大値になり、他のＨ［ｋ］はほぼ同じ値になるため、Ｉ1のドット出現パターンはＣ［１］＝１になる。同様に、Ｉ2のドット出現パターンを計算する際に、マスク内にあるＩ0とＩ1のドット出現パターンに影響され、重み付きヒストグラムＨ［０］とＨ［１］は比較的大きな値になり、他のＨ［ｋ］はほぼ同じく小さい値になるため、Ｉ2のドット出現パターンはＣ［２］＝１になる。
【００２７】
また、Ｉ3のドット出現パターンを計算する際に、Ｉ0はマスクの範囲外にあるため、マスク内にある計算済みの画素はＩ1とＩ2となる。重み付きヒストグラムＨ［１］とＨ［２］は比較的大きな値になり、他のＨ［ｋ］はほぼ同じく小さい値になる。その時、期待値の同じＨ［０］とＨ［３］が存在する場合は、前記数式（１）により、今までに算出してきたドット出現パターンにおける各要素での値の累積で判断され、累積の値が小さいＨ［３］が最小値と認識されてＩ3のドット出現パターンをＣ［３］＝１とされる。
その後、図１７に示すように、もしＩ3からの画素の階級値が全て１／２５５であるなら、Ｉ3以降の画素のドット出現パターンは順次前の画素より要素番号が１増えたところの値が１になり、他の要素は０になる。
このような処理により、最終結果を出すためのランダム変数ｒがどういう値であっても、各要素番号のドット出現パターンには１が必ず１個のみ存在するため、２５５の出力値の中で１が必ず１個のみ存在するようになり、入力した多階調画像データの平均画素値が１／２５５に対して、出力画像の平均画素値も１／２５５となり、入力画像の階調を維持することができる。
【００２８】
図１８に入力画像の先端がシャドーの場合におけるｒ＝０及びｒ＝２５５の処理結果を示す。ここで、（ａ）は入力された原画像、（ｂ）はｒ＝０のときの画像処理の結果、出力された画像、（ｃ）はｒ＝２５５のときの画像処理の結果、出力された画像を示す。ここでは、ｒが０であっても２５５であっても、同様に入力画像の階調を維持しており、ｒの値によらず、入力画像の階調を維持できることがわかる。
なお、全体処理の始まるところが連続したハイライトの場合にも同様な結果が考えられる。
【００２９】
しかしながら、期待値が同じである場合に前記したような処理を行うようにすると、画素毎に今までに算出してきたドット出現パターンにおける各要素での値の累積の計算が必要となり、特に要素番号の数や画素数が多い場合には、莫大な計算負担となる問題があった。
【００３０】
そこで、本発明の課題は、逆相関型のデジタルハーフトーニング法を用いたハーフトーニング処理を行う際に、計算量を低減した上で、原画像の階調を維持することができる画像処理装置、画像処理方法及び画像処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【００３１】
請求項１に記載の発明は、
多階調画像データを量子化して疑似中間調の出力用画像データに変換するための演算処理部を有する画像処理装置であって、
前記演算処理部は、
多階調画像データの注目画素について、当該注目画素周辺の既に量子化が行われた画素についてのドット出現情報配列に対して逆相関が大きくなるようなドット出現情報配列を決定する量子化を行う際に、
前記注目画素の周辺画素についてのドット出現情報配列を構成する要素の要素番号毎に、周辺画素にドットが出現する期待値を算出し、
前記要素番号毎の期待値をその値の小さい順に並べた要素番号列を算出し、
前記要素番号列の任意の開始点から、前記注目画素の階級値分の要素番号に対して一の値を付すと共に、他の要素番号に対して他の値を付して前記注目画素のドット出現情報配列を決定する構成となっており、
前記要素番号列を算出するにあたって要素番号毎の期待値が同じものが存在する場合には、当該注目画素の１つ前に処理した注目画素についてのドット出現情報配列における一の値を付した最も大きな要素番号と比較して、順位付けを行う構成となっていることを特徴としている。
【００３２】
請求項２に記載の発明は、
多階調画像データを量子化して疑似中間調の出力用画像データに変換するための演算処理部を有する画像処理装置であって、
前記演算処理部は、
多階調画像データの注目画素について、当該注目画素周辺の既に量子化が行われた画素についてのドット出現情報配列に対して逆相関が大きくなるようなドット出現情報配列を決定する量子化を行う際に、
前記注目画素の周辺画素についてのドット出現情報配列を構成する要素の要素番号毎に、周辺画素にドットが出現する期待値を算出し、
前記要素番号毎の期待値をその値の小さい順に並べた要素番号列を算出し、
前記要素番号列の任意の開始点から、前記注目画素の階級値分の要素番号に対して一の値を付すと共に、他の要素番号に対して他の値を付して前記注目画素のドット出現情報配列を決定する構成となっており、
前記要素番号列を算出するにあたって要素番号毎の期待値が同じものが存在する場合には、当該注目画素の１つ前に処理した注目画素についてのドット出現情報配列における一の値を付した最も小さな要素番号と比較して、順位付けを行う構成となっていることを特徴としている。
【００３３】
請求項３に記載の発明は、請求項１又は２に記載の画像処理装置において、
前記任意の開始点は、算出された要素番号列において最小と順位付けされた要素番号であることを特徴としている。
【００３４】
請求項４に記載の発明は、請求項１〜３のいずれか一項に記載の画像処理装置において、
前記要素番号毎の期待値には、所定の重み付けがなされていることを特徴としている。
【００３５】
請求項５に記載の発明は、
多階調画像データを量子化して疑似中間調の出力用画像データに変換する画像処理方法であって、
多階調画像データの注目画素について、当該注目画素周辺の既に量子化が行われた画素についてのドット出現情報配列に対して逆相関が大きくなるようなドット出現情報配列を決定する量子化を行う際に、
前記注目画素の周辺画素についてのドット出現情報配列を構成する要素の要素番号毎に、周辺画素にドットが出現する期待値を算出し、
前記要素番号毎の期待値をその値の小さい順に並べた要素番号列を算出し、
前記要素番号列の任意の開始点から、前記注目画素の階級値分の要素番号に対して一の値を付すと共に、他の要素番号に対して他の値を付して前記注目画素のドット出現情報配列を決定するようになっており、
前記要素番号列を算出するにあたって要素番号毎の期待値が同じものが存在する場合には、当該注目画素の１つ前に処理した注目画素についてのドット出現情報配列における一の値を付した最も大きな要素番号と比較して、順位付けを行うようになっていることを特徴としている。
【００３６】
請求項６に記載の発明は、
多階調画像データを量子化して疑似中間調の出力用画像データに変換する画像処理方法であって、
多階調画像データの注目画素について、当該注目画素周辺の既に量子化が行われた画素についてのドット出現情報配列に対して逆相関が大きくなるようなドット出現情報配列を決定する量子化を行う際に、
前記注目画素の周辺画素についてのドット出現情報配列を構成する要素の要素番号毎に、周辺画素にドットが出現する期待値を算出し、
前記要素番号毎の期待値をその値の小さい順に並べた要素番号列を算出し、
前記要素番号列の任意の開始点から、前記注目画素の階級値分の要素番号に対して一の値を付すと共に、他の要素番号に対して他の値を付して前記注目画素のドット出現情報配列を決定するようになっており、
前記要素番号列を算出するにあたって要素番号毎の期待値が同じものが存在する場合には、当該注目画素の１つ前に処理した注目画素についてのドット出現情報配列における一の値を付した最も小さな要素番号と比較して、順位付けを行うようになっていることを特徴としている。
【００３７】
請求項７に記載の発明は、請求項５又は６に記載の画像処理方法において、
前記任意の開始点は、算出された要素番号列において最小と順位付けされた要素番号であることを特徴としている。
【００３８】
請求項８に記載の発明は、請求項５〜７のいずれか一項に記載の画像処理方法において、
前記要素番号毎の期待値には、所定の重み付けがなされていることを特徴としている。
【００３９】
請求項９に記載の発明は、
画像処理プログラムであって、
多階調画像データを量子化して疑似中間調の出力用画像データに変換するためのコンピュータに、
多階調画像データの注目画素について、当該注目画素周辺の既に量子化が行われた画素についてのドット出現情報配列に対して逆相関が大きくなるようなドット出現情報配列を決定する量子化を行う際に、
前記注目画素の周辺画素についてのドット出現情報配列を構成する要素の要素番号毎に、周辺画素にドットが出現する期待値を算出し、
前記要素番号毎の期待値をその値の小さい順に並べた要素番号列を算出し、
前記要素番号列の任意の開始点から、前記注目画素の階級値分の要素番号に対して一の値を付すと共に、他の要素番号に対して他の値を付して前記注目画素のドット出現情報配列を決定し、
前記要素番号列を算出するにあたって要素番号毎の期待値が同じものが存在する場合には、当該注目画素の１つ前に処理した注目画素についてのドット出現情報配列における一の値を付した最も大きな要素番号と比較して、順位付けを行う機能を実現させることを特徴としている。
【００４０】
請求項１０に記載の発明は、
画像処理プログラムであって、
多階調画像データを量子化して疑似中間調の出力用画像データに変換するためのコンピュータに、
多階調画像データの注目画素について、当該注目画素周辺の既に量子化が行われた画素についてのドット出現情報配列に対して逆相関が大きくなるようなドット出現情報配列を決定する量子化を行う際に、
前記注目画素の周辺画素についてのドット出現情報配列を構成する要素の要素番号毎に、周辺画素にドットが出現する期待値を算出し、
前記要素番号毎の期待値をその値の小さい順に並べた要素番号列を算出し、
前記要素番号列の任意の開始点から、前記注目画素の階級値分の要素番号に対して一の値を付すと共に、他の要素番号に対して他の値を付して前記注目画素のドット出現情報配列を決定し、
前記要素番号列を算出するにあたって要素番号毎の期待値が同じものが存在する場合には、当該注目画素の１つ前に処理した注目画素についてのドット出現情報配列における一の値を付した最も小さな要素番号と比較して、順位付けを行う機能を実現させることを特徴としている。
【００４１】
請求項１１に記載の発明は、請求項９又は１０に記載の画像処理プログラムにおいて、
前記任意の開始点は、算出された要素番号列において最小と順位付けされた要素番号であることを特徴としている。
【００４２】
請求項１２に記載の発明は、請求項９〜１１のいずれか一項に記載の画像処理プログラムにおいて、
前記要素番号毎の期待値には、所定の重み付けがなされていることを特徴としている。
【発明の効果】
【００４３】
請求項１，５，９に記載の発明によれば、多階調画像データを量子化して疑似中間調の出力用画像データに変換する処理における要素番号列の算出にあたって、要素番号毎の期待値が同じものが存在する場合には、当該注目画素の１つ前に処理した注目画素についてのドット出現情報配列における一の値を付した最も大きな要素番号と比較して、順位付けを行うようになっているため、計算量を低減して簡単及び高速に処理することが可能な上で、原画像の階調を維持することができる。
【００４４】
請求項２，６，１０に記載の発明によれば、多階調画像データを量子化して疑似中間調の出力用画像データに変換する処理における要素番号列の算出にあたって、要素番号毎の期待値が同じものが存在する場合には、当該注目画素の１つ前に処理した注目画素についてのドット出現情報配列における一の値を付した最も小さな要素番号と比較して、順位付けを行うようになっているため、請求項１，５，９に記載の発明と同様に、計算量を低減して簡単及び高速に処理することが可能な上で、原画像の階調を維持することができる。  
【００４５】
請求項３，７，１１に記載の発明によれば、任意の開始点が、算出された要素番号列において最小と順位付けされた要素番号であるため、確実に、計算量を低減して簡単及び高速に処理することが可能な上で、原画像の階調を維持することができる。
【００４６】
請求項４，８，１２に記載の発明によれば、要素番号毎の期待値には、所定の重み付けがなされているため、より信頼性の高い注目画素のドット出現情報を作成することができ、より確実に、計算量を低減して簡単及び高速に処理することが可能な上で、原画像の階調を維持することができる。
【発明を実施するための最良の形態】
【００４７】
以下、本発明の実施の形態に係る画像処理装置、画像処理方法及び画像処理のプログラムについて、図面を参照しながら説明する。ただし、発明の範囲は図示例に限定されない。
【００４８】
まず、本実施の形態に係る画像処理装置１の構成について説明する。
図１は、本実施の形態に係る画像処理装置１の概略構成を示すブロック図である。この図に示すように、画像処理装置１は、入力される多階調画像（原画像）データを量子化して擬似中間調の出力用画像データに変換して出力するための演算処理部２を備えている。なお、この画像処理装置１は、インクジェットプリンタ等の周知の出力装置に搭載可能となっている。また、本実施の形態においては、多階調画像データを、各画素値が８ｂｉｔのグレースケールを持つＲＧＢ画像に関するデータとして説明する。
【００４９】
演算処理部（コンピュータ）２は、互いに接続されたＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）４及びＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）５を備えている。
ＲＯＭ３には、本発明に係る画像処理プログラムが格納されている。この画像処理プログラムは、多階調画像データに対する逆相関型のデジタルハーフトーニング処理を演算処理部２に実行させるためのものである。
ＲＡＭ４には、ＣＰＵ５による作業領域が備えられている。
ＣＰＵ５は、ＲＯＭ３に格納されている画像処理プログラムをＲＡＭ４内の作業領域に展開し、多階調画像データから出力用画像を生成するようになっている。
【００５０】
次に、本発明に係る画像処理方法について、図２〜図８を参照しながら説明する。なお、以下においては、画像処理装置１は、左から右に向かう方向に注目画素を切り換えて処理を行うこととするが、所定数の画素からなる行を切り換えた後の処理方向については、再び左から右に向かう方向としても良いし、反転させて右から左に向かう方向としても良いし、左右方向の何れかをランダムに選択することとしても良い。好ましくは、画像処理装置１は、全体として蛇行するような順序で処理を行うべく、１行毎または複数行毎に処理方向を反転させるようになっている。
【００５１】
図２は、画像処理装置１の演算処理部２が前記画像処理プログラムに基づいて、出力用画像データを生成するために実行する逆相関型のデジタルハーフトーニング処理を経時的に示したフローチャートである。
この図に示すように、演算処理部２は、従来のステップＴ１と同様に、多階調画像データが入力される前に、予めランダム変数ｒを決定する（ステップＳ１）。
多階調画像データが入力されたら、演算処理部２は多階調画像データ中からｉ行ｊ列目の画素（注目画素）に関する画素値ｇi,jを取得し（ステップＳ２）、従来のステップＴ３と同様に、この画素値ｇi,jに基づきｉ行ｊ列目の画素のローカルフィルタＰを生成する（ステップＳ３）。
ローカルフィルタＰを生成したら、演算処理部２は、従来のステップＴ４と同様にｉ行ｊ列目の画素のヒストグラムＨi,j［ｋ］を算出する（ステップＳ４）。
【００５２】
次に、演算処理部２は、各要素ｋについて算出されたヒストグラムＨi,j［０］〜Ｈi,j［ｎ−１］を値の小さい順に並べ替え、ヒストグラムＨi,j［ｋ］の大小順を示す要素番号列Ｓ［ｋ］を算出する（ステップＳ５）。
【００５３】
例えば、ヒストグラムＨi,j［０］〜Ｈi,j［ｎ−１］が、Ｈi,j［８］＜Ｈi,j［３］＜Ｈi,j［４］＜Ｈi,j［１］＜Ｈi,j［５］＜…＜Ｈi,j［ｎ−１］のように並べ替えられたら、要素番号列Ｓ［ｋ］は｛８，３，４，１，５，…，（ｎ−１）｝のように算出される。なお、この要素番号列Ｓ［ｋ］において、「８」は０番目の要素であり、「３」は１番目の要素である。
【００５４】
Ｓ５の後、演算処理部２は、従来のステップＴ６〜Ｔ１４と同様に、ドット出現パターン（ドット出現情報配列）Ｃi,j［ｋ］を決定し、全ての画素についての出力値ｂ、つまり出力用画像データを算出する（ステップＳ６〜Ｓ１４）。これにより、１つの画素に着目した場合にはドットの出現頻度がその画素の画素値ｇi,jに比例し、近接する複数の画素に着目した場合には各画素でのドットの出現の仕方が周辺画素との逆相関を実質的に最大とすることとなるため、画像の記録時において記録媒体に形成されるドットの分散性が向上する。
【００５５】
本実施の形態では、前記要素番号列Ｓ［ｋ］を算出するにあたって、要素番号毎のヒストグラムＨi,j［ｋ］の値（期待値）が同じものが存在する場合には、当該注目画素の１つ前に処理した注目画素についてのドット出現パターン（ドット出現情報配列）における一の値（この例では「１」）を付した最も大きな要素番号と比較して、順位付けを行うようになっている。
【００５６】
具体的方法としては、まず、入力画像最初の画素のドット出現パターンを決定する際に、要素番号ｋの最も小さい値に対応するＣ［ｋ］に１を入れる。
さらに、各注目画素のドット出現パターンを決定する際に、１つ前で処理された画素のドット出現パターンの中、Ｃ［ｋ］＝１を満たす最も大きい要素番号ｋを求める。
そして、前記ヒストグラムを小さい順に並べ直し、要素番号列Ｓ［ｋ］を計算する際、重み付きヒストグラム値の同じＨ［ｋ1］とＨ［ｋ2］が存在する場合は、式（２）により、重み付きヒストグラムの順序を決める。
Ｈ［ｋ1］＜Ｈ［ｋ2］，ｉｆ  ｋ1＜ｋ2＜ｋ
式（２）      Ｈ［ｋ2］＜Ｈ［ｋ1］，ｉｆ  ｋ2＞ｋ  ａｎｄ  ｋ1＜ｋ
Ｈ［ｋ1］＜Ｈ［ｋ2］，ｉｆ  ｋ＜ｋ1＜ｋ2
それから、順序が決定されたＨ［ｋ］に対し、小さい順で、対応する要素番号ｋに基づきＣ［ｋ］に１を入れる。
【００５７】
さらに具体的には、図３を参考に説明する。従来例で説明した図１５に示すような入力画像に対して、Ｉ3のドット出現パターンを計算する際に、Ｉ0はマスクの範囲外にあるため、マスク内にある計算済みの画素はＩ1とＩ2となる。重み付きヒストグラムＨ［１］とＨ［２］は比較的大きな値になり、他のＨ［ｋ］はほぼ同じく小さい値になる。そのとき、式（２）により、Ｈ［３］を最小値と認識し、Ｉ3のドット出現パターンがＣ［３］＝１にされる。
その後、図４に示すように、もしＩ3からの画素の階級値が全て１／２５５であるなら、Ｉ3以降の画素のドット出現パターンは順次前の画素より要素番号が１増えたところの値が１（一の値）になり、他の要素は０（他の値）になる。
このような処理により、最終結果を出すためのランダム変数ｒがどういう値であっても、各要素番号のドット出現パターンには１が必ず１個のみ存在するため、２５５の出力値の中で１が必ず１個のみ存在するようになり、入力した多階調画像データの平均画素値が１／２５５に対して、出力画像の平均画素値も１／２５５となり、入力画像の階調を維持することができる。
【００５８】
図５に入力画像の先端がシャドーの場合におけるｒ＝０及びｒ＝２５５の処理結果を示す。ここで、（ａ）は入力された原画像、（ｂ）はｒ＝０のときの画像処理の結果、出力された画像、（ｃ）はｒ＝２５５のときの画像処理の結果、出力された画像を示す。ここでは、ｒが０であっても２５５であっても、同様に入力画像の階調を維持しており、ｒの値によらず、入力画像の階調を維持できることがわかる。
このように、１つ前で処理された画素のドット出現パターンの中でＣ［ｋ］＝１を満たす最も大きな要素番号を検出しておくだけで、入力画像の階調を維持することができる。
なお、全体処理の始まるところが連続したハイライトの場合も同様の結果が得られる。
【００５９】
次に、本発明における他の実施形態について説明する。本実施の形態においては、以下に記載するもの以外の、画像処理装置の構成及び画像処理方法等については、前記した実施の形態と同様である。
【００６０】
本実施の形態では、ドット出現パターンを決定する際に、大きい要素番号から「１」を入れるようになっている。すなわち、前記要素番号列Ｓ［ｋ］を算出するにあたって、値の大きい順に並べ替えるようになっている。また、前記要素番号列Ｓ［ｋ］を算出するにあたって、要素番号毎のヒストグラムＨi,j［ｋ］の値（期待値）が同じものが存在する場合には、当該注目画素の１つ前に処理した注目画素についてのドット出現パターン（ドット出現情報配列）における一の値（この例では「１」）を付した最も小さな要素番号と比較して、順位付けを行うようになっている。
【００６１】
具体的方法としては、まず、入力画像最初の画素のドット出現パターンを決定する際に、要素番号ｋの最も大きい値に対応するＣ［ｋ］に１を入れる。
さらに、各注目画素のドット出現パターンを決定する際に、１つ前で処理された画素のドット出現パターンの中、Ｃ［ｋ］＝１を満たす最も小さい要素番号ｋを求める。
そして、前記ヒストグラムを大きい順（値の大きいものが最小となるように並べる）に並べ直し、要素番号列Ｓ［ｋ］を計算する際、重み付きヒストグラム値の同じＨ［ｋ1］とＨ［ｋ2］が存在する場合は、式（３）により、重み付きヒストグラムの順序を決める。
Ｈ［ｋ2］＜Ｈ［ｋ1］，ｉｆ  ｋ1＜ｋ2＜ｋ
式（３）      Ｈ［ｋ1］＜Ｈ［ｋ2］，ｉｆ  ｋ2＞ｋ  ａｎｄ  ｋ1＜ｋ
Ｈ［ｋ2］＜Ｈ［ｋ1］，ｉｆ  ｋ＜ｋ1＜ｋ2
それから、順序が決定されたＨ［ｋ］に対し、小さい順で、対応する要素番号ｋに基づきＣ［ｋ］に１を入れる。
【００６２】
さらに具体的には、図６を参考に説明する。シャドーの場合を例として考えると、画像の最も先端にある値が１／２５５の４つの画素Ｉ0〜Ｉ3があり、Ｉ0のドット出現パターンをＣ［２５４］＝１とする。重み係数マスクの最も上部のラインサイズは５画素分、最も左部の列のサイズは３画素分、最も下部の中心に注目画素があるとする。この様な場合、Ｉ1のドット出現パターンを計算する際に、マスク内にあるＩ0のドット出現パターンに影響され、重み付きヒストグラムＨ［２５４］は最大値になり、他のＨ［ｋ］はほぼ同じ値になるため、Ｉ1のドット出現パターンがＣ［２５３］＝１になる。同様に、Ｉ2のドット出現パターンを計算する際に、マスク内にあるＩ0とＩ1のドット出現パターンに影響され、重み付きヒストグラムＨ［２５４］とＨ［２５３］は比較的大きな値になり、他のＨ［ｋ］はほぼ同じく小さい値になるため、Ｉ2のドット出現パターンがＣ［２５２］＝１になる。
また、Ｉ3のドット出現パターンを計算する際に、Ｉ0はマスクの範囲外にあるため、マスク内にある計算済みの画素はＩ1とＩ2となる。重み付きヒストグラムＨ［２５３］とＨ［２５２］は比較的大きな値になり、他のＨ［ｋ］はほぼ同じく小さい値になる。その時、期待値の同じＨ［２５４］とＨ［２５１］が存在する場合は、式（３）により、Ｈ［２５１］を最小値と認識し、Ｉ3のドット出現パターンがＣ［２５１］＝１にされる。
【００６３】
このような処理により、最終結果を出すためのランダム変数ｒがどういう値であっても、各要素番号のドット出現パターンには１が必ず１個のみ存在するため、２５５の出力値の中で１が必ず１個のみ存在するようになり、入力した多階調画像データの平均画素値が１／２５５に対して、出力画像の平均画素値も１／２５５となり、入力画像の階調を維持することができる。
このように、１つ前で処理された画素のドット出現パターンの中でＣ［ｋ］＝１を満たす最も小さな要素番号を検出しておくだけで、入力画像の階調を維持することができる。
なお、全体処理の始まるところが連続したハイライトの場合も同様の結果が得られる。
【００６４】
次に、本発明におけるさらに他の実施形態について説明する。本実施の形態においては、以下に記載するもの以外の、画像処理装置の構成及び画像処理方法等については、前記した実施の形態と同様である。
【００６５】
本実施の形態では、入力画像最初の画素のドット出現パターンを決定する際に、任意の要素番号（任意の開始点）から「１」を入れるようになっている。また、前記要素番号列Ｓ［ｋ］を算出するにあたって、要素番号毎のヒストグラムＨi,j［ｋ］の値（期待値）が同じものが存在する場合には、当該注目画素の１つ前に処理した注目画素についてのドット出現パターン（ドット出現情報配列）における一の値（この例では「１」）を付した最も小さな要素番号又は最も大きな要素番号と比較して、順位付けを行うようになっている。
【００６６】
具体的方法としては、まず、入力画像最初の画素のドット出現パターンを決定する際に、要素番号ｋの任意の値に対応するＣ［ｋ］に１を入れる。
さらに、各注目画素のドット出現パターンを決定する際に、１つ前で処理された画素のドット出現パターンの中、Ｃ［ｋ］＝１を満たす最も大きい要素番号ｋを求める。
そして、前記ヒストグラムを小さい順に並べ直し、要素番号列Ｓ［ｋ］を計算する際、重み付きヒストグラム値の同じＨ［ｋ1］とＨ［ｋ2］が存在する場合は、式（２）により、重み付きヒストグラムの順序を決める。
または、各注目画素のドット出現パターンを決定する際に、１つ前で処理された画素のドット出現パターンの中、Ｃ［ｋ］＝１を満たす最も小さい要素番号ｋを求める。
そして、前記ヒストグラムを大きい順（値の大きいものが最小となるように並べる）に並べ直し、要素番号列Ｓ［ｋ］を計算する際、重み付きヒストグラム値の同じＨ［ｋ1］とＨ［ｋ2］が存在する場合は、式（３）により、重み付きヒストグラムの順序を決める。ただし、ｋと計算式の選び方は画像全体一致である。
それから、順序が決定されたＨ［ｋ］に対し、小さい順で、対応する要素番号ｋに基づきＣ［ｋ］に１を入れる。
【００６７】
さらに具体的には、図７及び図８を参考に説明する。シャドーの場合を例として考えると、画像の最も先端にある値が１／２５５の４つの画素Ｉ0〜Ｉ3があり、Ｉ0のドット出現パターンをＣ［１２８］＝１とする。重み係数マスクの最も上部のラインサイズは５画素分、最も左部の列のサイズは３画素分、最も下部の中心に注目画素があるとする。この様な場合、Ｉ1のドット出現パターンを計算する際に、マスク内にあるＩ0のドット出現パターンに影響され、重み付きヒストグラムＨ［１２８］は最大値になり、他のＨ［ｋ］はほぼ同じ値になる。
【００６８】
ここで、Ｉ0のドット出現パターンの中でＣ［ｋ］＝１を満たす最も大きい値として要素番号１２８を選び、対応する式（２）を選ぶと、図７に示すように、Ｉ1のドット出現パターンがＣ［１２９］＝１になる。同様に、Ｉ2のドット出現パターンを計算する際に、マスク内にあるＩ0とＩ1のドット出現パターンに影響され、重み付きヒストグラムＨ［１２８］とＨ［１２９］は比較的大きな値になり、他のＨ［ｋ］はほぼ同じく小さい値になるため、Ｉ2のドット出現パターンがＣ［１３０］＝１になる。
また、Ｉ3のドット出現パターンの計算をする際に、Ｉ0はマスクの範囲外にあるため、マスク内にある計算済みの画素はＩ1とＩ2となる。重み付きヒストグラムＨ［１２９］とＨ［１３０］は比較的大きな値になり、他のＨ［ｋ］はほぼ同じく小さい値になる。その時、期待値の同じＨ［１２８］とＨ［１３１］が存在する場合は、式（２）により、Ｈ［１３１］を最小値と認識し、Ｉ3のドット出現パターンがＣ［１３１］＝１にされる。
【００６９】
また、Ｉ0のドット出現パターンの中でＣ［ｋ］＝１を満たす最も小さい値として要素番号１２８を選び、対応する式（３）を選ぶと、図８に示すように、Ｉ1のドット出現パターンがＣ［１２７］＝１になる。同様に、Ｉ2のドット出現パターンを計算する際に、マスク内にあるＩ0とＩ1のドット出現パターンに影響され、重み付きヒストグラムＨ［１２８］とＨ［１２７］は比較的大きな値になり、他のＨ［ｋ］はほぼ同じく小さい値になるため、Ｉ2のドット出現パターンがＣ［１２６］＝１になる。
また、Ｉ3のドット出現パターンを計算する際に、Ｉ0はマスクの範囲外にあるため、マスク内にある計算済みの画素はＩ1とＩ2となる。重み付きヒストグラムＨ［１２７］とＨ［１２６］は比較的大きな値になり、他のＨ［ｋ］はほぼ同じく小さい値になる。その時、期待値の同じＨ［１２８］とＨ［１２５］が存在する場合は、式（３）により、Ｈ［１２５］を最小値と認識し、Ｉ3のドット出現パターンがＣ［１２５］＝１にされる。
【００７０】
このような処理により、最終結果を出すためのランダム変数ｒがどういう値であっても、各要素番号のドット出現パターンには１が必ず１個のみ存在するため、２５５の出力値の中で１が必ず１個のみ存在するようになり、入力した多階調画像データの平均画素値が１／２５５に対して、出力画像の平均画素値も１／２５５となり、入力画像の階調を維持することができる。
このように、１つ前で処理された画素のドット出現パターンの中でＣ［ｋ］＝１を満たす最も大きな要素番号又は最も小さな要素番号を検出しておくだけで、入力画像の階調を維持することができる。
なお、全体処理の始まるところが連続したハイライトの場合も同様の結果が得られる。
【００７１】
以上のように、本実施の形態の画像処理装置、画像処理方法及び画像処理プログラムによれば、多階調画像データを量子化して疑似中間調の出力用画像データに変換する処理における要素番号列の算出にあたって、要素番号毎の期待値が同じものが存在する場合には、当該注目画素の１つ前に処理した注目画素についてのドット出現情報配列における一の値を付した最も大きな要素番号と比較して、順位付けを行うようになっているため、計算量を低減して簡単及び高速に処理することが可能な上で、原画像の階調を維持することができる。
【００７２】
また、本実施の形態では、任意の開始点が、算出された要素番号列において最小と順位付けされた要素番号であるため、確実に、計算量を低減して簡単及び高速に処理することが可能な上で、原画像の階調を維持することができる。
【００７３】
さらに、本実施の形態では、要素番号毎の期待値には、所定の重み付けがなされているため、より信頼性の高い注目画素のドット出現情報を作成することができ、より確実に、計算量を低減して簡単及び高速に処理することが可能な上で、原画像の階調を維持することができる。
【００７４】
またさらに、多階調画像データを量子化して疑似中間調の出力用画像データに変換する処理における要素番号列の算出にあたって、要素番号毎の期待値が同じものが存在する場合に、当該注目画素の１つ前に処理した注目画素についてのドット出現情報配列における一の値を付した最も小さな要素番号と比較して、順位付けを行うようになっていても、計算量を低減して簡単及び高速に処理することが可能な上で、原画像の階調を維持することができる。
【００７５】
なお、本発明は、上記各実施の形態に限定されることなく、本発明の趣旨を逸脱しない範囲において、種々の改良並びに設計の変更を行っても良い。
例えば、本実施の形態では、入力画像は８ｂｉｔのグレースケールを持つモノクロ画像であるが、これに限るものではなく、階調、解像度、モノクロ画像かカラー画像か等適宜の画像を用いることができる。
また、出力画像についても、本実施の形態では、白黒の２値化した出力画像であるが、これに限らず、カラー画像を含めて３値以上の出力値を有する出力画像にする場合にも適用可能である。
これらにより、画像の多様性に対応させることができる。
【図面の簡単な説明】
【００７６】
【図１】本発明に係る画像処理装置の概略構成を示すブロック図である。
【図２】画像処理装置の演算処理部が実行する逆相関型のデジタルハーフトーニング処理を経時的に示したフローチャートである。
【図３】本発明の一実施形態を具体的に説明する図である。
【図４】本発明の一実施形態の結果を具体的に説明する図である。
【図５】（ａ）は原画像を示す図、（ｂ）は本発明においてランダム変数ｒ＝０の場合の出力画像を示す図、（ｃ）は本発明においてランダム変数ｒ＝２５５の場合の出力画像を示す図である。
【図６】本発明の他の実施形態を具体的に説明する図である。
【図７】本発明のさらに他の実施形態を具体的に説明する図である。
【図８】本発明のさらに他の実施形態を具体的に説明する図である。
【図９】従来の逆相関型のデジタルハーフトーニング法による画像処理を経時的に示したフローチャートである。
【図１０】画素値に基づく値ΔとローカルフィルタＰの情報とを対応づけた表である。
【図１１】基礎フィルタＫ1〜Ｋ3を示す図面である。
【図１２】基礎フィルタＫ4〜Ｋ6を示す図面である。
【図１３】ローカルフィルタＰ（＝Ｒ（Ｋ6，４，−１）を示す図面である。
【図１４】ヒストグラムＨｉ，ｊ［ｋ］の生成を説明するための図面である。
【図１５】逆相関型のデジタルハーフトーニング法による画像処理を簡単に説明する図である。
【図１６】従来例を具体的に説明する図である。
【図１７】従来例の結果を具体的に説明する図である。
【図１８】（ａ）は原画像を示す図、（ｂ）は従来においてランダム変数ｒ＝０の場合の出力画像を示す図、（ｃ）は従来においてランダム変数ｒ＝２５５の場合の出力画像を示す図である。
【符号の説明】
【００７７】
１  画像処理装置
２  演算処理部
【図１】
2005072891.tif 000004
【図２】
2005072891.tif 000005
【図３】
2005072891.tif 000006
【図４】
2005072891.tif 000007
【図６】
2005072891.tif 000008
【図７】
2005072891.tif 000009
【図８】
2005072891.tif 000010
【図９】
2005072891.tif 000011
【図１０】
2005072891.tif 000012
【図１１】
2005072891.tif 000013
【図１２】
2005072891.tif 000014
【図１３】
2005072891.tif 000015
【図１４】
2005072891.tif 000016
【図１５】
2005072891.tif 000017
【図１６】
2005072891.tif 000018
【図１７】
2005072891.tif 000019
【図５】
2005072891.tif 000020
【図１８】
2005072891.tif 000021