(57)【要約】【課題】高速に処理できるデジタル画像処理技術を提供する。【解決手段】デジタル画像処理の階調表現方法であって、（ａ）閾値マトリックスを予め準備する工程と、（ｂ）１つの入力画素に相当する単位ブロックを予め設定する工程と、（ｃ）前記単位ブロック内における位置を、閾値の大きさ順に示す順番テーブルを予め準備する工程と、（ｄ）与えられた入力画素値から、前記閾値マトリックスを用いて前記出力画素値を生成する工程と、を備え、前記工程（ｄ）は、（ｉ）前記順番テーブルに従って閾値を順次選択し、前記入力画素値とを比較することによって、出力画素値を順次決定していく工程と、（ｉｉ）前記工程（ｉ）の比較の結果、出力画素値が異なる値になったときに、前記比較を行なうことなく等しい値に設定する工程と、を備える。【選択図】        図４
2004289378.tif 000002
【特許請求の範囲】
【請求項１】
入力画素の画素値を、前記入力画素よりも高解像度の出力画素毎の閾値と比較することによって、前記出力画素毎のドット形成状態を示す出力画素値を生成する画像処理方法であって、
（ａ）複数の出力画素位置に割り当てられた閾値を含む閾値マトリックスを予め準備する工程と、
（ｂ）前記閾値マトリックスの少なくとも一部を構成する単位ブロックであって、前記入力画素の１つ分の領域に相当する単位ブロックを予め設定する工程と、
（ｃ）前記単位ブロック内に含まれている複数の閾値の前記単位ブロック内における位置を、前記複数の閾値の大きさ順に示す順番テーブルを予め準備する工程と、
（ｄ）与えられた入力画素値から、前記閾値マトリックスを用いて前記出力画素値を生成する工程と、
を備え、
前記工程（ｄ）は、
（ｉ）前記順番テーブルに示された順番に従って前記単位ブロック内に含まれている閾値を順次選択するとともに、選択された閾値と前記入力画素値とを比較することによって、前記単位ブロック内の各出力画素位置における出力画素値を順次決定していく工程と、
（ｉｉ）前記工程（ｉ）の比較の結果、任意の第１の出力画素位置の出力画素値と、その直後の第２の出力画素位置の出力画素値が異なる値になったときに、前記第２の出力画素位置の次以降の出力画素位置に関しては、前記比較を行なうことなく前記出力画素値を前記第２の出力画素位置の出力画素値と等しい値に設定する工程と、
を備える画像処理方法。
【請求項２】
請求項１記載の画像処理方法であって、
前記工程（ｂ）は、Ｎ個分（Ｎは２以上の所定の整数）の前記単位ブロックで構成される拡大単位ブロックを予め設定する工程を含み、
前記工程（ｃ）は、前記拡大単位ブロック内に含まれている複数の閾値の前記拡大単位ブロック内における位置を、前記複数の閾値の大きさ順に示す拡大順番テーブルを予め準備する工程を含み、
前記工程（ｄ）は、さらに、
（ｉｉｉ）前記拡大単位ブロックの領域に相当するＮ個分の与えられた入力画素値同士の差が所定の許容範囲内にある場合には、前記工程（ｉ），（ｉｉ）を実行することなく、前記Ｎ個分の入力画素値の平均画素値を求める工程と、
（ｉｖ）前記拡大順番テーブルに示された順番に従って前記拡大単位ブロック内に含まれている閾値を順次選択するとともに、選択された閾値と前記平均画素値とを比較することによって、前記拡大単位ブロック内の各出力画素位置における出力画素値を順次決定していく工程と、
（ｖ）前記工程（ｉｖ）の結果、任意の第３の出力画素位置の出力画素値と、その直後の第４の出力画素位置の出力画素値とが異なる値になったときに、前記第４の出力画素位置の次以降の出力画素位置に関しては、前記比較を行なうことなく前記出力画素値を前記第４の出力画素位置の出力画素値と等しい値に設定する工程と、
を含み、
前記Ｎ個分の与えられた入力画素値同士の差が前記所定の許容範囲内に無い場合には、前記工程（ｉｉｉ）〜（ｖ）を実行することなく前記工程（ｉ），（ｉｉ）を実行する、画像処理方法。
【請求項３】
請求項１記載の画像処理方法であって、前記工程（ｉ）は、
（ｉ−１）前記入力画素値が、前記単位ブロック内の最小である前記閾値または最大である前記閾値のいずれの値に近いかを比較する工程と、
（ｉ−２）前記工程（ｉ−１）の比較の結果、前記入力画素値が前記単位ブロック内の最小である前記閾値に近いときは、最小である前記閾値を指す前記順番テーブルの要素から昇順に、前記順番テーブルに示された順番に従って閾値を順次選択する工程と、
（ｉ−３）前記工程（ｉ−１）の比較の結果、前記入力画素値が前記単位ブロック内の最大である前記閾値に近いときは、最大である前記閾値を指す前記順番テーブルの要素から降順に、前記順番テーブルに示された順番に従って閾値を順次選択する工程と、
を含む画像処理方法。
【請求項４】
請求項２記載の画像処理方法であって、前記工程（ｉｖ）は、
（ｉｖ−１）前記拡大単位ブロック内の最小である前記閾値または最大である前記閾値のいずれの値に、前記入力画素値が近いかを比較する工程と、
（ｉｖ−２）前記工程（ｉｖ−１）の比較の結果、前記入力画素値が前記拡大単位ブロック内の最小である前記閾値に近いときは、最小である前記閾値を指す前記拡大順番テーブルの要素から昇順に、前記拡大順番テーブルに示された順番に従って閾値を順次選択する工程と、
（ｉｖ−３）前記工程（ｉｖ−１）の比較の結果、前記入力画素値が前記拡大単位ブロック内の最大である前記閾値に近いときは、最大である前記閾値を指す前記拡大順番テーブルの要素から降順に、前記拡大順番テーブルに示された順番に従って閾値を順次選択する工程と、
を含む画像処理方法。
【請求項５】
請求項１記載の画像処理方法であって、前記工程（ｉ）は、
（ｉ−４）前記入力画素値と所定の比較値とを比較する工程と、
（ｉ−５）前記工程（ｉ−４）の比較の結果、前記入力画素値が前記比較値よりも小さいときは、最小である前記閾値を指す前記順番テーブルの要素から昇順に、前記順番テーブルに示された順番に従って閾値を順次選択する工程と、
（ｉ−６）前記工程（ｉ−４）の比較の結果、前記入力画素値が前記比較値よりも大きいときは、最大である前記閾値を指す前記順番テーブルの要素から降順に、前記順番テーブルに示された順番に従って閾値を順次選択する工程と、
を含む画像処理方法。
【請求項６】
請求項２記載の画像処理方法であって、前記工程（ｉｖ）は、
（ｉｖ−４）前記入力画素値と所定の比較値とを比較する工程と、
（ｉｖ−５）前記工程（ｉｖ−４）の比較の結果、前記入力画素値が前記比較値よりも小さいときは、最小である前記閾値を指す前記拡大順番テーブルの要素から昇順に、前記拡大順番テーブルに示された順番に従って閾値を順次選択する工程と、
（ｉｖ−６）前記工程（ｉｖ−４）の比較の結果、前記入力画素値が前記比較値よりも大きいときは、最大である前記閾値を指す前記拡大順番テーブルの要素から降順に、前記拡大順番テーブルに示された順番に従って閾値を順次選択する工程と、
を含む画像処理方法。
【請求項７】
請求項５または６記載の画像処理方法であって、
前記比較値は、前記入力画素値のとり得る値の中央値である、
画像処理方法。
【請求項８】
請求項５記載の画像処理方法であって、
前記比較値は、前記順番テーブルの要素であって順番が中央である要素、の示す閾値である、
画像処理方法。
【請求項９】
請求項６記載の画像処理方法であって、
前記比較値は、前記拡大順番テーブルの要素であって順番が中央である要素、の示す閾値である、
画像処理方法。
【請求項１０】
入力画素の画素値を、前記入力画素よりも高解像度の出力画素毎の閾値と比較することによって、前記出力画素毎のドット形成状態を示す出力画素値を生成する画像処理装置であって、
複数の出力画素位置に割り当てられた閾値を含む閾値マトリックスを記憶する第１のメモリと、
前記閾値マトリックスの少なくとも一部を構成する単位ブロックであって、前記入力画素の１つ分の領域に相当する単位ブロック毎に、前記単位ブロック内に含まれている複数の閾値の前記単位ブロック内における位置を、前記複数の閾値の大きさ順に示す順番テーブルを記憶する第２のメモリと、
与えられた入力画素値から、前記閾値マトリックスを用いて前記出力画素値を生成するハーフトーン処理部と、
を備え、
前記ハーフトーン処理部は、
（ｉ）前記順番テーブルに示された順番に従って前記単位ブロック内に含まれている閾値を順次選択するとともに、選択された閾値と前記入力画素値とを比較することによって、前記単位ブロック内の各出力画素位置における出力画素値を順次決定していく第１の処理と、
（ｉｉ）前記第１の処理（ｉ）の結果、任意の第１の出力画素位置の出力画素値と、その直後の第２の出力画素位置の出力画素値が異なる値になったときに、前記第２の出力画素位置の次以降の出力画素位置に関しては、前記比較を行なうことなく前記出力画素値を前記第２の出力画素位置の出力画素値と等しい値に設定する第２の処理と、
を実行する、画像処理装置。
【請求項１１】
請求項１０記載の画像処理方法であって、
前記第２のメモリは、Ｎ個分（Ｎは２以上の所定の整数）の前記単位ブロックで構成される拡大単位ブロックを予め設定し、前記拡大単位ブロック内に含まれている複数の閾値の前記拡大単位ブロック内における位置を、前記複数の閾値の大きさ順に示す拡大順番テーブルを記憶する第３のメモリと、
前記ハーフトーン処理部は、さらに、
（ｉｉｉ）前記拡大単位ブロックの領域に相当するＮ個分の与えられた入力画素値同士の差が所定の許容範囲内にある場合には、第１の処理（ｉ），第２の処理（ｉｉ）を実行することなく、前記Ｎ個分の入力画素値の平均画素値を求める第３の処理と、
（ｉｖ）前記拡大順番テーブルに示された順番に従って前記拡大単位ブロック内に含まれている閾値を順次選択するとともに、選択された閾値と前記平均画素値とを比較することによって、前記拡大単位ブロック内の各出力画素位置における出力画素値を順次決定していく第４の処理と、
（ｖ）前記工程（ｉｖ）の結果、任意の第３の出力画素位置の出力画素値と、その直後の第４の出力画素位置の出力画素値とが異なる値になったときに、前記第４の出力画素位置の次以降の出力画素位置に関しては、前記比較を行なうことなく前記出力画素値を前記第４の出力画素位置の出力画素値と等しい値に設定する第５の処理と、
を実行し、
前記Ｎ個分の与えられた入力画素値同士の差が前記所定の許容範囲内に無い場合には、前記第３の処理（ｉｉｉ）〜前記第５の処理（ｖ）を実行することなく前記第１の処理（ｉ），前記第２の処理（ｉｉ）を実行する、画像処理装置。
【請求項１２】
請求項１０記載の画像処理装置であって、前記第１の処理（ｉ）は、
（ｉ−１）前記入力画素値が、前記単位ブロック内の最小である前記閾値または最大である前記閾値のいずれの値に近いかを比較する第１１の処理と、
（ｉ−２）前記第１１の処理（ｉ−１）の結果、前記入力画素値が前記単位ブロック内の最小である前記閾値に近いときは、最小である前記閾値を指す前記順番テーブルの要素から昇順に、前記順番テーブルに示された順番に従って閾値を順次選択する第１２の処理と、
（ｉ−３）前記第１１の処理（ｉ−１）の結果、前記入力画素値が前記単位ブロック内の最大である前記閾値に近いときは、最大である前記閾値を指す前記順番テーブルの要素から降順に、前記順番テーブルに示された順番に従って閾値を順次選択する第１３の処理と、
を実行する、画像処理装置。
【請求項１３】
請求項１１記載の画像処理装置であって、前記第４の処理（ｉｖ）は、
（ｉｖ−１）前記拡大単位ブロック内の最小である前記閾値または最大である前記閾値のいずれの値に、前記入力画素値が近いかを比較する第４１の処理と、
（ｉｖ−２）前記第４１の処理（ｉｖ−１）の結果、前記入力画素値が前記拡大単位ブロック内の最小である前記閾値に近いときは、最小である前記閾値を指す前記拡大順番テーブルの要素から昇順に、前記拡大順番テーブルに示された順番に従って閾値を順次選択する第４２の処理と、
（ｉｖ−３）前記第４１の処理（ｉｖ−１）の結果、前記入力画素値が前記拡大単位ブロック内の最大である前記閾値に近いときは、最大である前記閾値を指す前記拡大順番テーブルの要素から降順に、前記拡大順番テーブルに示された順番に従って閾値を順次選択する第４３の処理と、
を実行する画像処理装置。
【請求項１４】
請求項１０記載の画像処理装置であって、前記第１の処理（ｉ）は、
（ｉ−４）前記入力画素値と所定の比較値とを比較する第１４の処理と、
（ｉ−５）前記第１４の処理（ｉ−４）の結果、前記入力画素値が前記比較値よりも小さいときは、最小である前記閾値を指す前記順番テーブルの要素から昇順に、前記順番テーブルに示された順番に従って閾値を順次選択する第１５の処理と、
（ｉ−６）前記第１４の処理（ｉ−４）の結果、前記入力画素値が前記比較値よりも大きいときは、最大である前記閾値を指す前記順番テーブルの要素から降順に、前記順番テーブルに示された順番に従って閾値を順次選択する第１６の処理と、
を実行する画像処理装置。
【請求項１５】
請求項１１記載の画像処理方法であって、前記第４の処理（ｉｖ）は、
（ｉｖ−４）前記入力画素値と所定の比較値とを比較する第４４の処理と、
（ｉｖ−５）前記第４４の処理（ｉｖ−４）の結果、前記入力画素値が前記比較値よりも小さいときは、最小である前記閾値を指す前記拡大順番テーブルの要素から昇順に、前記拡大順番テーブルに示された順番に従って閾値を順次選択する第４５の処理と、
（ｉｖ−６）前記第４４の処理（ｉｖ−４）の結果、前記入力画素値が前記比較値よりも大きいときは、最大である前記閾値を指す前記拡大順番テーブルの要素から降順に、前記拡大順番テーブルに示された順番に従って閾値を順次選択する第４６の処理と、
を含む画像処理方法。
【請求項１６】
請求項１４または１５記載の画像処理装置であって、
前記比較値は、前記入力画素値のとり得る値の中央値である、
画像処理装置。
【請求項１７】
請求項１４記載の画像処理装置であって、
前記比較値は、前記順番テーブルの要素であって順番が中央である要素、の示す閾値である、
画像処理装置。
【請求項１８】
請求項１５記載の画像処理装置であって、
前記比較値は、前記拡大順番テーブルの要素であって順番が中央である要素、の示す閾値である、
画像処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、階調表現をするためのデジタル画像処理技術に関する。
【０００２】
【従来の技術】
近年、デジタルカメラ等が普及し、デジタル画像を容易に得ることができるようになってきた。また、プリンターに代表されるように、出力装置の解像度が向上し種々の階調表現で画像を出力できるようにもなってきた。
【０００３】
出力画像の階調表現を得るためのハーフトーン処理技術には、閾値をマトリックス状に設定し、入力画素の値（以下、「入力画素値」と書く）と前記閾値とを比較し、出力画素の値を決定するディザ法が知られている。従来の画像処理技術は、総ての出力画素に対して、入力画素値と閾値を比較するものであった（例えば、非特許文献１）。
【０００４】
【非特許文献１】
貴家仁志著「よくわかるディジタル画像処理」Ｃ  Ｑ出版社（第８章）
【０００５】
【発明が解決しようとする課題】
しかし、前述の従来技術では、総ての出力画素に対して、計算するため、処理速度が遅いという問題があった。この問題は、出力装置の解像度が向上すればするほど、顕著になっていく傾向がある。
【０００６】
本発明は、従来技術における前述の課題を解決するもので、高速に実行できるハーフトーン処理技術を提供することを目的とする。
【０００７】
【課題を解決するための手段およびその作用・効果】
上述の課題を解決するため、本発明の画像処理方法は、入力画素の画素値を、前記入力画素よりも高解像度の出力画素毎の閾値と比較することによって、前記出力画素毎のドット形成状態を示す出力画素値を生成する画像処理方法であって、（ａ）複数の出力画素位置に割り当てられた閾値を含む閾値マトリックスを予め準備する工程と、（ｂ）前記閾値マトリックスの少なくとも一部を構成する単位ブロックであって、前記入力画素の１つ分の領域に相当する単位ブロックを予め設定する工程と、（ｃ）前記単位ブロック内に含まれている複数の閾値の前記単位ブロック内における位置を、前記複数の閾値の大きさ順に示す順番テーブルを予め準備する工程と、（ｄ）与えられた入力画素値から、前記閾値マトリックスを用いて前記出力画素値を生成する工程と、を備え、前記工程（ｄ）は、（ｉ）前記順番テーブルに示された順番に従って前記単位ブロック内に含まれている閾値を順次選択するとともに、選択された閾値と前記入力画素値とを比較することによって、前記単位ブロック内の各出力画素位置における出力画素値を順次決定していく工程と、（ｉｉ）前記工程（ｉ）の比較の結果、任意の第１の出力画素位置の出力画素値と、その直後の第２の出力画素位置の出力画素値が異なる値になったときに、前記第２の出力画素位置の次以降の出力画素位置に関しては、前記比較を行なうことなく前記出力画素値を前記第２の出力画素位置の出力画素値と等しい値に設定する工程と、を備える。
【０００８】
この画像処理方法では、選択された閾値と前記入力画素値の比較を、一部の出力画素に対してのみ行なえば良いので、画像処理を高速に行なうことができる。
【０００９】
なお、この画像処理方法では、前記工程（ｂ）は、Ｎ個分（Ｎは２以上の所定の整数）の前記単位ブロックで構成される拡大単位ブロックを予め設定する工程を含み、前記工程（ｃ）は、前記拡大単位ブロック内に含まれている複数の閾値の前記拡大単位ブロック内における位置を、前記複数の閾値の大きさ順に示す拡大順番テーブルを予め準備する工程を含み、前記工程（ｄ）は、さらに、（ｉｉｉ）前記拡大単位ブロックの領域に相当するＮ個分の与えられた入力画素値同士の差が所定の許容範囲内にある場合には、前記工程（ｉ），（ｉｉ）を実行することなく、前記Ｎ個分の入力画素値の平均画素値を求める工程と、（ｉｖ）前記拡大順番テーブルに示された順番に従って前記拡大単位ブロック内に含まれている閾値を順次選択するとともに、選択された閾値と前記平均画素値とを比較することによって、前記拡大単位ブロック内の各出力画素位置における出力画素値を順次決定していく工程と、（ｖ）前記工程（ｉｖ）の結果、任意の第３の出力画素位置の出力画素値と、その直後の第４の出力画素位置の出力画素値とが異なる値になったときに、前記第４の出力画素位置の次以降の出力画素位置に関しては、前記比較を行なうことなく前記出力画素値を前記第４の出力画素位置の出力画素値と等しい値に設定する工程と、を含み、前記Ｎ個分の与えられた入力画素値同士の差が前記所定の許容範囲内に無い場合には、前記工程（ｉｉｉ）〜（ｖ）を実行することなく前記工程（ｉ），（ｉｉ）を実行しても良い。
【００１０】
この画像処理方法によれば、隣接した前記入力画素値の差が許容範囲内であるときに、いっそう高速な画像処理を行なうことができる。
【００１１】
この画像処理方法では、前記工程（ｉ）は、（ｉ−１）前記入力画素値が、前記単位ブロック内の最小である前記閾値または最大である前記閾値のいずれの値に近いかを比較する工程と、（ｉ−２）前記工程（ｉ−１）の比較の結果、前記入力画素値が前記単位ブロック内の最小である前記閾値に近いときは、最小である前記閾値を指す前記順番テーブルの要素から昇順に、前記順番テーブルに示された順番に従って閾値を順次選択する工程と、（ｉ−３）前記工程（ｉ−１）の比較の結果、前記入力画素値が前記単位ブロック内の最大である前記閾値に近いときは、最大である前記閾値を指す前記順番テーブルの要素から降順に、前記順番テーブルに示された順番に従って閾値を順次選択する工程と、を含んでも良い。
【００１２】
また、この画像処理方法では、前記工程（ｉｖ）は、（ｉｖ−１）前記拡大単位ブロック内の最小である前記閾値または最大である前記閾値のいずれの値に、前記入力画素値が近いかを比較する工程と、（ｉｖ−２）前記工程（ｉｖ−１）の比較の結果、前記入力画素値が前記拡大単位ブロック内の最小である前記閾値に近いときは、最小である前記閾値を指す前記拡大順番テーブルの要素から昇順に、前記拡大順番テーブルに示された順番に従って閾値を順次選択する工程と、
（ｉｖ−３）前記工程（ｉｖ−１）の比較の結果、前記入力画素値が前記拡大単位ブロック内の最大である前記閾値に近いときは、最大である前記閾値を指す前記拡大順番テーブルの要素から降順に、前記拡大順番テーブルに示された順番に従って閾値を順次選択する工程と、を含んでも良い。
【００１３】
これらの画像形成方法によれば、前記入力画素値に応じて、より早い段階で、前記入力画素値と閾値を比較しなくても、出力画素値を決定することができる。
【００１４】
この画像形成方法では、前記工程（ｉ）は、（ｉ−４）前記入力画素値と所定の比較値とを比較する工程と、（ｉ−５）前記工程（ｉ−４）の比較の結果、前記入力画素値が前記比較値よりも小さいときは、最小である前記閾値を指す前記順番テーブルの要素から昇順に、前記順番テーブルに示された順番に従って閾値を順次選択する工程と、（ｉ−６）前記工程（ｉ−４）の比較の結果、前記入力画素値が前記比較値よりも大きいときは、最大である前記閾値を指す前記順番テーブルの要素から降順に、前記順番テーブルに示された順番に従って閾値を順次選択する工程と、を含んでも良い。
【００１５】
また、この画像形成方法では、前記工程（ｉｖ）は、（ｉｖ−４）前記入力画素値と所定の比較値とを比較する工程と、（ｉｖ−５）前記工程（ｉｖ−４）の比較の結果、前記入力画素値が前記比較値よりも小さいときは、最小である前記閾値を指す前記拡大順番テーブルの要素から昇順に、前記拡大順番テーブルに示された順番に従って閾値を順次選択する工程と、（ｉｖ−６）前記工程（ｉｖ−４）の比較の結果、前記入力画素値が前記比較値よりも大きいときは、最大である前記閾値を指す前記拡大順番テーブルの要素から降順に、前記拡大順番テーブルに示された順番に従って閾値を順次選択する工程と、を含んでも良い。
【００１６】
これら２つのケースの際、前記比較値は、前記入力画素値のとり得る値の中央値としても良く、前記順番テーブルの要素であって順番が中央である要素としても、前記拡大順番テーブルの要素であって順番が中央である要素としても良い。
【００１７】
これらの画像形成方法によれば、前記閾値に応じて、より早い段階で、前記入力画素値と閾値を比較しなくても、出力画素値を決定することができる。
【００１８】
なお、本発明は、種々の態様で実現することが可能であり、例えば、画像処理方法を実現する画像処理装置やコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体等の態様で実現することができる。
【００１９】
【発明の実施の形態】
本発明の実施の形態を実施例にもとづいて以下の順番で説明する。
Ａ．装置の構成：
Ｂ．第１実施例：
Ｃ．第２実施例：
Ｄ．第３実施例：
Ｅ．第４実施例：
Ｆ．第５〜７実施例：
Ｇ．第８実施例：
Ｈ．第９実施例：
Ｉ．第１０実施例：
Ｊ．変形例：
【００２０】
Ａ．装置の構成：図１は、本発明の一実施例として、画像処理装置の構成を示すブロック図である。この画像処理システムは、コンピュータ９０と、カラープリンタ２０と、を備えている。なお、プリンタ２０とコンピュータ９０とを含む画像処理システムは、広義の「画像処理装置」と呼ぶことができる。
【００２１】
コンピュータ９０では、所定のオペレーティングシステムの下で、アプリケーションプログラム９５が動作している。オペレーティングシステムには、ビデオドライバ９１やプリンタドライバ９６が組み込まれており、アプリケーションプログラム９５からは、これらのドライバを介して、プリンタ２０に転送するための印刷データＰＤが出力される。画像のレタッチなどを行うアプリケーションプログラム９５は、処理対象の画像に対して所望の処理を行い、また、ビデオドライバ９１を介してＣＲＴ２１に画像を表示している。
【００２２】
アプリケーションプログラム９５が印刷命令を発すると、コンピュータ９０のプリンタドライバ９６が、画像データをアプリケーションプログラム９５から受け取り、これをプリンタ２０に供給する印刷データＰＤに変換する。図１に示した例では、プリンタドライバ９６の内部には、色変換モジュール９８と、ハーフトーンモジュール９９と、ラスタライザ１００と、色変換ルックアップテーブルＬＵＴと、が備えられている。
【００２３】
画像データは、ＲＧＢの３つの色成分からなる画像情報である。色変換モジュール９８は、色変換ルックアップテーブルＬＵＴを参照しつつ、各画素ごとに、ＲＧＢ画像データを、プリンタ２０が利用可能な複数のインク色の多階調データに変換する。
【００２４】
色変換された多階調データは、例えば２５６階調の階調値を有している。ハーフトーンモジュール９９は、閾値マトリックスＴおよび順番テーブルＲおよび拡大順番テーブルＥＲを記憶するメモリ１０１を備えており、いわゆるハーフトーン処理を実行してハーフトーン画像データを生成する。このハーフトーン画像データは、ラスタライザ１００によりプリンタ２０に転送すべきデータ順に並べ替えられ、最終的な印刷データＰＤとして出力される。なお、印刷データＰＤは、各主走査時のドットの形成状態を示すラスタデータと、副走査送り量を示すデータと、を含んでいる。
【００２５】
なお、プリンタドライバ９６は、印刷データＰＤを生成する機能を実現するためのプログラムに相当する。プリンタドライバ９６の機能を実現するためのプログラムは、コンピュータ読み取り可能な記録媒体に記録された形態で供給される。このような記録媒体としては、フレキシブルディスクやＣＤ−ＲＯＭ、光磁気ディスク、ＩＣカード、ＲＯＭカートリッジ、パンチカード、バーコードなどの符号が印刷された印刷物、コンピュータの内部記憶装置（ＲＡＭやＲＯＭなどのメモリ）および外部記憶装置等の、コンピュータが読み取り可能な種々の媒体を利用できる。
【００２６】
Ｂ．第１実施例：図２は、第１実施例におけるデータの対応関係を示す図であって、ハーフトーンモジュール９９におけるデータの対応関係を示す図である。
【００２７】
図２の左上に示す入力画素ＩＮは、入力画像データの１画素である。例えば、コンピュータ９０の画像データにおける１画素である。１つの入力画素ＩＮが１つの単位ブロックＵＢに対応する。単位ブロックＵＢは、閾値マトリックスＴの一部を構成するものであり、複数の単位ブロックＵＢが予め設定される。ここで、閾値マトリックスＴとは、閾値を要素とするマトリックスであり、１次元のマトリックスでも２次元のマトリックスでも良い。前記閾値は、出力画素ＯＵ毎に割り当てられる。
【００２８】
順番テーブルＲは一次元のテーブルであって、その要素数は単位ブロックＵＢの要素数と同数である。順番テーブルＲのｉ番目の要素値Ｒｉ（以下、「要素値Ｒｉ」と書く）は、単位ブロックＵＢ内の位置を示すと同時に、閾値マトリックスＴの座標Ｔｉ，ｊ（以下、「座標Ｔｉ，ｊ」と書く）を示す。要素値Ｒｉは、単位ブロックＵＢ内の小さい順番（以下「小さい順」と書く）で並べ替えれている。
【００２９】
図３に、閾値マトリックスＴの各要素（以下、「閾値」と書く）が８ビットで表現されている場合の、順番テーブルＲへのデータ収納方法の具体例を示す。閾値は０〜２５５の整数値をとることができ、例えば図６に示す値をとることができる。この時、単位ブロックＵＢ内の要素に対し値の小さい順番に並べると、
０，１６，３２，・・・・・・・，２２４，２４０
となる。従って、順番テーブルＲの要素値は、
Ｔ０，０，Ｔ２，０，Ｔ３，２，・・・・・・・，Ｔ０，１，Ｔ０，３
と座標Ｔｉ，ｊを示す。座標Ｔｉ，ｊが示す値は、対応する出力画素の閾値である。
【００３０】
次に、出力画素ＯＵの値の決定手順を説明する。図５は、出力画素ＯＵのオン・オフ決定手順を示す図である。
【００３１】
まず、単位ブロックＵＢ内の処理手順を説明する。ステップＳ１にて、１つの入力画素ＩＮの値（以下、「入力画素値」と書く）を得る。入力画素値としては、例えば、１入力画素がＲＧＢ等３色で各色８ビットで表現されている画像データの場合、各入力画素に対する各色の入力画素値は、０から２５５のいずれかの整数をとることができる。
【００３２】
ステップＳ２にて、入力画素ＩＮに対応する単位ブロックＵＢを選択する。ステップＳ３にて、最初に使用する順番テーブルＲの要素を決定する。この実施例では、要素Ｒ０を最初に使用する。ここで要素Ｒ０は、最小の閾値を指す座標Ｔｉ，ｊである。
【００３３】
ステップＳ４にて、要素Ｒ０の示す座標Ｔｉ，ｊの値、つまり閾値と、入力画素値の大きさを比較する。入力画素値が閾値よりも大きい場合、ステップＳ５〜Ｓ７の処理を行なう。すなわち、ステップＳ５にて、対応する出力画素ＯＵの出力値をオンとする。ステップＳ６にて、総ての順番テーブルＲの要素を処理したか否かを判断、総ての順番テーブルＲ内の要素を処理していれば１つの単位ブロックＵＢに対する処理が完了し、未処理の要素があればステップＳ７にて順番テーブルＲの次の要素へ進む。ステップＳ７において、次の要素とは、単位ブロックＵＢ内において、直前のステップＳ４にて使用した閾値の次に小さい閾値を指す座標Ｔｉ，ｊである。
【００３４】
入力画素値が閾値以下の場合、ステップＳ８，Ｓ９の処理を行なう。すなわち、ステップＳ８にて、対応する出力画素ＯＵの出力値をオフとする。ステップＳ９にて、順番テーブルＲで示す次以降の閾値マトリックスに対応する出力画素ＯＵの出力画素値を、すべてオフとする。このステップＳ９で１つの単位ブロックＵＢに対する処理が完了する。ここで、すべてオフとできるのは、ソートされた結果を順番テーブルＲに収納したため、次以降のステップＳ４の結果がオフであることを知ることができたからである。従って、ステップＳ４を一部の出力画素ＯＵに対してのみ行なえば良く、高速な画像処理を実現することができる。
【００３５】
以下、単位ブロックＵＢに対する上記の手順全体を「手順ユニットＳＵ１」、ステップＳ３〜Ｓ９の手順を「手順ユニットＳＵ２」と書く。
【００３６】
以上の手順を、総ての入力画素値に対して行なうことで、画像全体を出力することができる。
【００３７】
Ｃ．第２実施例：第２実施例として、順番テーブルＲの大きい順から比較した例を説明する。図５は、第２実施例における、出力画素値のオン・オフ決定手順を示す図である。第１実施例と相違する処理は、ステップＳ１３，ステップＳ４の分岐部分，ステップＳ１５，ステップＳ１７〜ステップＳ１９である。相違する処理を説明する。
【００３８】
ステップＳ１３にて、最初に比較する順番テーブルＲの要素値として、最大の閾値を示す座標Ｔｉ，ｊとする。
【００３９】
ステップＳ４の結果がＮｏであれば、ステップＳ１５にて出力画素ＯＵの出力値をオフとし、総ての順番テーブルＲ内の要素を処理していれば、１つの単位ブロックＵＢに対する処理が完了し、未処理の要素があれば、ステップＳ１７にて順番テーブルＲの１つ前の要素へ進む。ここで、１つ前の要素とは、単位ブロックＵＢ内において、直前のステップＳ４にて使用した閾値の次に大きい閾値を指す座標Ｔｉ，ｊである。
【００４０】
ステップＳ４の結果がＹｅｓであれば、以下の処理を行なう。ステップＳ１８にて、対応する出力画素ＯＵの出力値をオンとする。ステップＳ１９にて、順番テーブルＲで示す次以降の閾値マトリックスに対応する、出力画素値を、すべてオンとする。このステップＳ１９で１つの単位ブロックＵＢに対する処理が完了する。
【００４１】
この第２実施例においても、ステップＳ４を一部の出力画素ＯＵに対してのみ行なえば良く、高速な画像処理を実現することができる。
【００４２】
以下、単位ブロックＵＢに対する上記の手順全体を「手順ユニットＳＵ３」、ステップＳ１３〜Ｓ１９の手順を「手順ユニットＳＵ４」と書く。
【００４３】
なお、単位ブロックＵＢ内の閾値の大きい順番で並べ替え、順番テーブルＲの最初の要素Ｒ０から順番に比較しても、同じ効果を得ることができる。
【００４４】
Ｄ．第３実施例：次に、複数の単位ブロックＵＢで構成する、拡大単位ブロックＥＵＢを設定する第３実施例を説明する。図６は、第３実施例におけるデータの対応関係を示す図である。
【００４５】
拡大単位ブロックＥＵＢは、隣接した複数の単位ブロックＵＢで構成される。拡大順番テーブルＥＲは一次元のテーブルであって、その要素数が拡大単位ブロックＥＵＢの要素数と同数である。他のデータ構造間の関係は、今まで述べた関係と同じである。従って、単位ブロックＵＢは１つの入力画素ＩＮに対応した閾値マトリックスＴの一部または全部を指し、拡大単位ブロックＥＵＢは、複数の入力画素ＩＮに対応した、閾値マトリックスＴの一部または全部を指す。
【００４６】
次に、出力画素ＯＵの値の決定手順を説明する。図７は、出力画素ＯＵのオン・オフ決定手順を示す図である。ステップＳ２１にて、拡大単位ブロックＥＵＢに対応した、複数の入力画素ＩＮの入力画素値を得る。ステップＳ２２にて、それらの画素値の差が許容範囲内か否かを判断する。ここで、許容範囲は、入力画素値がとり得る最大値の約５％以下であることが望ましい。
【００４７】
前記画素値の差が許容範囲内の場合、前記複数の入力画素値の平均値を求め（ステップＳ２３）、前記平均値を、前記複数の入力画素値の入力画素値とみなす（ステップＳ２４）。
【００４８】
以降の処理は、第一実施例で説明した手順ユニットＳＵ１と同様な処理を行なう。すなわち、まず、使用すべき拡大単位ブロックＥＵＢを選択し（ステップＳ２５）、最初に使用する要素ＥＲｋを決定し（ステップＳ２６）、入力画素値と閾値を比較（ステップＳ２７）する。入力画素値が大きい場合は出力値をオンとし（ステップＳ２８）、次の要素へ進む（ステップＳ３０）。ここで、次の要素とは、拡大単位ブロックＥＵＢ内において、直前のステップＳ２７にて使用した閾値の次に小さい閾値を指す座標Ｔｉ，ｊである。
【００４９】
一方、入力画素値が閾値以下の場合は以降の出力値をオフとする（ステップＳ３１，Ｓ３２）。出力値をオフとするのは、拡大単位ブロックＥＵＢ内の残りの総ての出力画素に対してである。この場合は、複数の単位ブロックに対して処理を行なうので、より高速な画像処理が可能となる。
【００５０】
ステップＳ２２にて、複数の入力画素値の差が許容範囲外である場合は、拡大単位ブロック内の複数の単位ブロックに対し、第１実施例で示した手順ユニットＳＵ１を行なう（ステップＳ３３）。
【００５１】
Ｅ．第４実施例：図８は、拡大順番テーブルＥＲの大きい順から比較した、第４実施例の手順を示す図である。第３実施例と相違する処理は、ステップＳ３６，ステップＳ２７の分岐部分，ステップＳ３８，ステップＳ４０〜ステップＳ４２である。相違する処理を説明する。
【００５２】
ステップＳ３６にて、最初に比較する拡大順番テーブルＲの要素値として、最大の閾値を示す座標Ｔｉ，ｊとする。
【００５３】
ステップＳ２７の結果がＮｏであれば、ステップＳ３８にて出力画素ＯＵの出力値をオフとし、総ての拡大順番テーブルＥＲ内の要素に対して処理が完了していれば、１つの拡大単位ブロックＥＵＢに対する処理が完了し、未処理の要素があれば、ステップＳ４０にて拡大順番テーブルＥＲの１つ前の要素へ進む。ここで、１つ前の要素とは、拡大単位ブロックＥＵＢ内において、直前のステップＳ２７にて使用した閾値の次に大きい閾値を指す座標Ｔｉ，ｊである。
【００５４】
ステップＳ２７の結果がＹｅｓであれば、以下の処理を行なう。ステップＳ４１にて、対応する出力画素ＯＵの出力値をオンとする。ステップＳ４２にて、拡大順番テーブルＥＲで示す次以降の閾値マトリックスに対応する、出力画素値を、すべてオンとする。このステップＳ４２で１つの拡大単位ブロックＥＵＢに対する処理が完了する。
【００５５】
Ｆ．閾値の最大値に近いか最小値に近いかを判断する実施例：以下で説明する第５〜７第の実施例は、入力画素値が単位ブロックＵＢ内の閾値の最小値に近ければ順番テーブルＲの小さい順から比較し、入力画素値が単位ブロックＵＢ内の閾値の最大値に近ければ順番テーブルの大きい順から比較するものである。順番テーブルＲの要素値が指す閾値が、
０，２，６，８，２０
の５つの値である場合を例にして、説明する。
【００５６】
Ｆ１．第５実施例：第５実施例では、順番テーブルＲの示す閾値の平均値（（０＋２＋６＋８＋２０）／５）を用いる。すなわち、入力画素値が閾値の平均値７．２よりも小さい０〜７のとき、順番テーブルＲの小さい順から比較、つまり、手順ユニットＳＵ２を行なう。入力画素値が８以上のときは、手順ユニットＳＵ４を行なう。
【００５７】
Ｆ２．第６実施例：第６実施例では、閾値の最大値と閾値の最小値の平均値（（０＋２０）／２）を用いる。すなわち、入力画素値が１０より小さい場合は手順ユニットＳＵ２を行ない、入力画素値が１０より大きい場合は手順ユニットＳＵ４を行なう。もし、入力画素値が１０の場合は、どちらの手順ユニットを行なっても良い。
【００５８】
Ｆ３．第７実施例：第７実施例では、入力画素値と最小の閾値との差と、入力画素値と最大の閾値の差を比較する。入力画素値から最小の閾値を引いた数（以下、「最小との比較値」と書く）と最大の閾値から入力画素値を引いた数（以下、「最大との比較値」と書く）を比較し、最小との比較値が小さい場合は手順ユニットＳＵ２を行ない、最大との比較値が小さい場合は手順ユニットＳＵ４を行なう。例えば、入力画素値が８の場合、（８−０）と（２０−８）を比較し、（８−０）が小さいので手順ユニットＳＵ４を行なう。
【００５９】
Ｇ．第８実施例：第５〜第７実施例では、単位ブロックＵＢ毎に処理を行なったが、拡大単位ブロックＥＵＢ毎に行なうことも可能である。この場合は、順番テーブルＲではなく、拡大順番テーブルＥＲを使用して、同様な処理を行なえば良い。
【００６０】
Ｈ．第９実施例：図９は、第９実施例の手順を示す図である。入力画素値を得（ステップＳ１）単位ブロックＵＢを選択（ステップＳ２）し、ステップＳ５０にて中央値を比較値として採用する。その後、ステップＳ５１にて入力画素値と比較値を比較する。
【００６１】
入力画素値が比較値以下の場合は、順番テーブルＲの小さい順から比較（ステップＳ５２）し、その他の場合は順番テーブルの大きい方から比較（ステップＳ５３）する。例えば、１入力画素がＲＧＢ等３色で各色８ビットで表現されている画像データの場合、各入力画素に対する各色の入力画素値は、０から２５５のいずれかの整数をとることができ、この場合の中央値は１２７である。入力画素値が１２７以下の場合、第１実施例で説明した手順ユニットＳＵ２を行ない、その他の場合は第２実施例で説明した手順ユニットＳＵ４を行なう。
【００６２】
なお、入力画素値が中央値よりも小さいか否かは、あるビットが０か１かのみで判断できる。例えば、入力画素値を符号なし整数と見た場合、最上位ビットの値によって判断できる。従って、高速な判断が可能である。
【００６３】
以下の説明では、上記手順全体を、「手順ユニットＳＵ７」と書く。
【００６４】
Ｉ．第１０実施例：図１０は、第１０実施例として、前述した第９実施例を拡大単位ブロックＥＵＢに拡大した手順を示す図である。拡大単位ブロックＥＵＢで考えると、ステップＳ６１〜ステップＳ６３が前述してきた手順と異なる処理である。つまり、複数の入力画素値の差が許容差以下のとき、入力画素値が中央値以下であれば手順ユニットＳＵ５の処理を行ない（ステップＳ６１）入力画素値が中央値より大きければ手順ユニットＳＵ６の処理を行なう（ステップＳ６２）。複数の入力画素値の差が許容範囲外であれば、１つの拡大単位ブロックＥＵＢ内で総ての単位ブロックＵＢに対し、手順ユニットＳＵ７を行なう（ステップＳ６３）。その他の処理は前述してきた処理と同様である。
【００６５】
入力画素値と比較する比較値を設定した他の実施例としては、以下の例が可能である。例えば、ステップＳ５１において、単位ブロックＵＢまたは拡大単位ブロックＥＵＢ内における閾値の平均値を、比較値とすることも可能である。あるいは、ステップＳ５１において、順番テーブルＲまたは拡大順番テーブルＥＲの中央の順番の指す閾値を、比較値とすることも可能である。
【００６６】
Ｊ．変形例：なお、本発明は上記の実施例や実施形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
【００６７】
Ｊ１．変形例１：前述の各実施例では、単位ブロックＵＢの大きさを４画素×４画素の大きさとして説明したが、単位ブロックＵＢの大きさは、複数画素で構成できる大きさであれば良い。また、単位ブロックＵＢは、１次元のマトリックスでも２次元のマトリックスであっても良い。
【００６８】
Ｊ２．変形例２：前述の実施例では、コンピュータとシリアルプリンタを用いた画像処理方法および画像処理装置を例に述べたが、これに限定されるものではなく、種々の態様において実施することが可能である。例えば、デジタルカメラやスキャナ，ファックス，複写機，ラインプリンタやページプリンタを本発明の画像処理装置とすることも可能であり、これら画像処理装置の画像処理方法として本発明を適用することも可能である。また、ソフトウェを用いて本発明の画像処理方法を実現しても良く、ハードウェアを用いても良い。
【図面の簡単な説明】
【図１】本発明の一実施例として、画像処理装置の構成を示すブロック図。
【図２】第１実施例における、データの対応関係を示す図。
【図３】順番テーブルへのデータ収納方法の具体例を示す図。
【図４】第１実施例における、出力画素のオン・オフ決定手順を示す図。
【図５】第２実施例における、出力画素のオン・オフ決定手順を示す図。
【図６】第３実施例におけるデータの対応関係を示す図。
【図７】第３実施例における、出力画素のオン・オフ決定手順を示す図。
【図８】第４実施例における、出力画素のオン・オフ決定手順を示す図。
【図９】第９実施例の手順を示す図。
【図１０】第１０実施例の手順を示す図。
【符号の説明】
２０…プリンタ
２１…ＣＲＴ
９０…コンピュータ
９１…ビデオドライバ
９５…アプリケーションプログラム
９６…プリンタドライバ
９８…色変換モジュール
９９…ハーフトーンモジュール
１００…ラスタライザ
１０１…メモリ
ＩＮ…入力画素
ＯＵ…出力画素
Ｒ…順番テーブル
Ｔ…閾値マトリックス
Ｔｉ，ｊ…閾値マトリックスの座標
ＵＢ…単位ブロック
ＥＵＢ…拡大単位ブロック
【図１】
2004289378.tif 000003
【図２】
2004289378.tif 000004
【図３】
2004289378.tif 000005
【図４】
2004289378.tif 000006
【図５】
2004289378.tif 000007
【図６】
2004289378.tif 000008
【図７】
2004289378.tif 000009
【図８】
2004289378.tif 000010
【図９】
2004289378.tif 000011
【図１０】
2004289378.tif 000012