(57)【要約】入力画素の画素値を補正する画像処理技術である。まず、入力画素値と、入力画素値を補正した第１のトーン補正値との関係を示す変換関係を設定する。そして、この変換関係に従い、入力画素値を、入力画素のビット数よりも高ビットの第１のトーン補正値に変換する。さらに、第１のトーン補正値から、第１のトーン補正値のビット数よりも低ビットの第２のトーン補正値を生成する。この際、互いに隣接する複数の画素における複数の第２のトーン補正値によって、第１のトーン補正値の階調が表されるように、第２のトーン補正値を生成する。
2004100529.tif 000002
【特許請求の範囲】
【請求項１】
入力画素の画素値を補正する画像処理方法であって、
（ｉ）前記入力画素値と、前記入力画素値を補正した第１のトーン補正値との関係を示す変換関係を設定する工程と、
（ｉｉ）前記変換関係に従い、前記入力画素値を、前記入力画素値のビット数よりもビット数の多い前記第１のトーン補正値に変換する工程と、
（ｉｉｉ）前記第１のトーン補正値から、前記第１のトーン補正値のビット数よりもビット数の少ない第２のトーン補正値を生成する工程と、
を備え、
前記工程（ｉｉｉ）は、互いに隣接する複数の画素における複数の前記第２のトーン補正値によって前記第１のトーン補正値の階調が表されるように、前記第２のトーン補正値を生成する、画像処理方法。
【請求項２】
請求項１記載の画像処理方法であって、
前記第２のトーン補正値のビット数が前記入力画素値のビット数と同じである、画像処理方法。
【請求項３】
請求項１記載の画像処理方法であって、
前記第１のトーン補正値のビット数と前記入力画素値のビット数との差が、前記第１のトーン補正値のビット数と前記第２のトーン補正値のビット数との差よりも大きい、画像処理方法。
【請求項４】
請求項１ないし３のいずれかに記載の画像処理方法であって、
前記工程（ｉｉｉ）は、ディザ法を用いて前記第１のトーン補正値のビット数を低減する工程である、画像処理方法。
【請求項５】
請求項１ないし３のいずれかに記載の画像処理方法であって、
前記工程（ｉｉｉ）は、誤差拡散法を用いて前記第１の補正値のビット数を低減する工程である、画像処理方法。
【請求項６】
請求項１ないし５のいずれかに記載の画像処理方法であって、さらに、
前記工程（ｉｉ）と前記工程（ｉｉｉ）の間に、前記第１のトーン補正値に対して第１の画像補正処理を実行することによって前記第１のトーン補正値を修正する工程と、
前記工程（ｉｉｉ）の後に、前記第２のトーン補正値を用いて第２の画像補正処理を実行する工程と、を備える画像処理方法。
【請求項７】
請求項６記載の画像処理方法であって、
前記第１の画像補正処理は、比較的少量の画像データをバッファメモリに格納した状態で実行される処理であり、前記第２の画像補正処理は、比較的多量の画像データを前記バッファメモリに格納した状態で実行される処理である、画像処理方法。
【請求項８】
請求項７記載の画像処理方法であって、
前記第１の画像補正処理は彩度補正を含み、前記第２の画像補正処理はシャープネス調整を含む、画像処理方法。
【請求項９】
入力画素の画素値を補正する画像処理装置であって、
前記入力画素値と、前記入力画素値を補正した第１のトーン補正値との関係を示す変換関係を記憶するメモリと、
前記変換関係に従い、前記入力画素値を、前記入力画素値のビット数よりもビット数の多い前記第１のトーン補正値に変換する第１の処理部と、
前記第１のトーン補正値から、前記第１のトーン補正値のビット数よりもビット数の少ない第２のトーン補正値を生成する第２の処理部と、
を備え、
前記第２の処理部は、互いに隣接する複数の画素における複数の前記第２のトーン補正値によって前記第１のトーン補正値の階調が表されるように、前記第２のトーン補正値を生成する、画像処理装置。
【請求項１０】
請求項９記載の画像処理装置であって、
前記第２のトーン補正値のビット数が前記入力画素値のビット数と同じである、画像処理装置。
【請求項１１】
請求項９記載の画像処理装置であって、
前記第１のトーン補正値のビット数と前記入力画素値のビット数との差が、前記第１のトーン補正値のビット数と前記第２のトーン補正値のビット数との差よりも大きい、画像処理装置。
【請求項１２】
請求項９ないし１１のいずれかに記載の画像処理装置であって、
前記第２の処理部は、ディザ法を用いて前記第１のトーン補正値のビット数を低減する、画像処理装置。
【請求項１３】
請求項９ないし１１のいずれかに記載の画像処理装置であって、
前記第２の処理部は、誤差拡散法を用いて前記第１の補正値のビット数を低減する、画像処理装置。
【請求項１４】
請求項９ないし１３のいずれかに記載の画像処理装置であって、さらに、
前記第１と第２の処理部による処理の間に、前記第１のトーン補正値に対して第１の画像補正処理を実行することによって前記第１のトーン補正値を修正する第１の画像補正処理部と、
前記第２の処理部による処理の後に、前記第２のトーン補正値を用いて第２の画像補正処理を実行する第２の画像補正処理部と、を備える画像処理装置。
【請求項１５】
請求項１４記載の画像処理装置であって、
前記第１の画像補正処理は、比較的少量の画像データをバッファメモリに格納した状態で実行される処理であり、前記第２の画像補正処理は、比較的多量の画像データを前記バッファメモリに格納した状態で実行される処理である、画像処理装置。
【請求項１６】
請求項１５記載の画像処理装置であって、
前記第１の画像補正処理は彩度補正を含み、前記第２の画像補正処理はシャープネス調整を含む、画像処理装置。
【請求項１７】
入力画素の画素値を補正するためのコンピュータプログラムであって、
前記入力画素値と、前記入力画素値を補正した第１のトーン補正値との関係を示す変換関係に従い、前記入力画素値を、前記入力画素値のビット数よりもビット数の多い前記第１のトーン補正値に変換する第１の処理機能と、
前記第１のトーン補正値から、前記第１のトーン補正値のビット数よりもビット数の少ない第２のトーン補正値を生成する第２の処理機能と、
をコンピュータに実現させるためのコンピュータプログラムであり、
前記第２の処理機能は、互いに隣接する複数の画素における複数の前記第２のトーン補正値によって前記第１のトーン補正値の階調が表されるように、前記第２のトーン補正値を生成する、コンピュータプログラム。
【請求項１８】
請求項１７記載のコンピュータプログラムであって、
前記第２のトーン補正値のビット数が前記入力画素値のビット数と同じである、コンピュータプログラム。
【請求項１９】
請求項１７記載のコンピュータプログラムであって、
前記第１のトーン補正値のビット数と前記入力画素値のビット数との差が、前記第１のトーン補正値のビット数と前記第２のトーン補正値のビット数との差よりも大きい、コンピュータプログラム。
【請求項２０】
請求項１７ないし１９のいずれかに記載のコンピュータプログラムであって、
前記第２の処理機能は、ディザ法を用いて前記第１のトーン補正値のビット数を低減する、コンピュータプログラム。
【請求項２１】
請求項１７ないし１９のいずれかに記載のコンピュータプログラムであって、
前記第２の処理機能は、誤差拡散法を用いて前記第１の補正値のビット数を低減する、コンピュータプログラム。
【請求項２２】
請求項１７ないし２１のいずれかに記載のコンピュータプログラムであって、さらに、
前記第１と第２の処理機能による処理の間に、前記第１のトーン補正値に対して第１の画像補正処理を実行することによって前記第１のトーン補正値を修正する第１の画像補正処理機能と、
前記第２の処理機能による処理の後に、前記第２のトーン補正値を用いて第２の画像補正処理を実行する第２の画像補正処理機能と、を備えるコンピュータプログラム。
【請求項２３】
請求項２２記載のコンピュータプログラムであって、
前記第１の画像補正処理は、比較的少量の画像データをバッファメモリに格納した状態で実行される処理であり、前記第２の画像補正処理は、比較的多量の画像データを前記バッファメモリに格納した状態で実行される処理である、コンピュータプログラム。
【請求項２４】
請求項２３記載のコンピュータプログラムであって、
前記第１の画像補正処理は彩度補正を含み、前記第２の画像補正処理はシャープネス調整を含む、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】  本発明は、階調表現をするためのデジタル画像処理技術に関する。
【背景技術】  明るさやカラーバランスなどを補正して希望の画像を得る目的で、入力画像の入力画素値を補正してトーン補正値（以下、「従来の補正値」と書く）とすることが、通常行なわれている。（例えば、特開２００２−２２３３５８号公報）
この際、前記従来の補正値のビット数は、入力画素値のビット数と同じであった。
図１０は、従来技術における従来の補正値の決定手順を示す図である。図１０（Ａ）は、入力画素値ＤＩと従来の補正値Ｊとの関係を示すトーンカーブであり、入力画素値ＤＩのビット数も、従来の補正値Ｊのビット数も８ビットである例を示している。図１０（Ｂ）は、ある入力画素に対する入力画素値ＤＩｂの値１２７をトーンカーブに従って補正し、その結果が連続値である場合の値（以下、「元ビットの連続値」と書く）Ａｂが１２８．２である場合を例を示している。実際にはデジタル処理を行なうので、従来の補正値Ｊｂは離散的な値１２８となる。図１０（ｃ）は、入力画素値ＤＩｃが１２８で元ビットの連続値Ａｃが１２８．７である場合、従来の補正値Ｊｃも１２８となることを示している。図１０（Ｄ）は、入力画素値ＤＩｄが１２９で元ビットの連続値Ａｄが１２８．９である場合も、従来の補正値Ｊｄが１２８となることを示している。
このように、前述の従来技術では、入力画素値ＤＩが異なる値に対しても従来の補正値Ｊが同一の値となってしまい、入力画素値に対する階調が失われるという問題があった。
本発明は、上記課題を解決するためになされたものであり、トーンカーブに従って行なった補正によっても階調再現性を劣化させない、階調表現に優れる画像処理技術を提供することを目的とする。
【発明の開示】
上述の課題を解決するため、本発明の画像処理方法は、入力画素の画素値を補正する画像処理方法であって、（ｉ）前記入力画素値と、前記入力画素値を補正した第１のトーン補正値との関係を示す変換関係を設定する工程と、（ｉｉ）前記変換関係に従い、前記入力画素値を、前記入力画素値のビット数よりもビット数の多い前記第１のトーン補正値に変換する工程と、（ｉｉｉ）前記第１のトーン補正値から、前記第１のトーン補正値のビット数よりもビット数の少ない第２のトーン補正値を生成する工程と、を備え、前記工程（ｉｉｉ）は、互いに隣接する複数の画素における複数の前記第２のトーン補正値によって前記第１のトーン補正値の階調が表されるように、前記第２のトーン補正値を生成する。
この画像処理方法によれば、前記入力画素値を高階調の前記第１のトーン補正値に変換し、この前記第１のトーン補正値の階調を複数の画素で表現する前記第２のトーン補正値で表現するため、階調表現に優れる画像を得ることができる。同時に、前記第２のトーン補正値のビット数は、前記第１のトーン補正値のビット数よりも少ないビット数であるので、トーン補正後の処理に、大幅な負荷増加を招かずに処理することができる。
前記第２のトーン補正値のビット数は、前記入力画素値のビット数と同じであっても良い。
この画像処理方法によれば、トーン補正後の処理で扱うデータのビット数が、前記入力画素値のビット数と同じあるため、トーン処理後の負荷が変化しない。にもかかわらず、前記入力画素値を高階調の前記第１のトーン補正値に変換し、この前記第１のトーン補正値の階調を複数の画素で表現する前記第２のトーン補正値で表現するため、階調表現に優れる画像を得ることができる。
前記第１のトーン補正値のビット数と前記入力画素値のビット数との差が、前記第１のトーン補正値のビット数と前記第２のトーン補正値のビット数との差、よりも大きくても良い。
この画像処理方法によれば、前記第２のトーン補正値の表現できる階調数が階乗的に増加するので、階調表現を飛躍的に増加することができる。
前記工程（ｉｉｉ）は、ディザ法を用いて前記第１のトーン補正値のビット数を低減する工程であっても良い。
前記工程（ｉｉｉ）で用いるディザマトリックスの要素数は、前記第１のトーン補正値のビット数で表現できる階調数を前記第２のトーン補正値のビット数で表現できる階調数で除した数で済む。つまり、この画像処理方法によれば、小さなサイズのマトリックスによる処理によって、階調表現に優れる画像を得ることができる。
前記工程（ｉｉｉ）は、誤差拡散法を用いて前記第１のトーン補正値のビット数を低減する工程であっても良い。
この画像処理方法によれば、ビット数低減誤差が目立たなくなるため、より高画質な画像を得ることができる。
上記画像処理方法は、さらに、前記工程（ｉｉ）と前記工程（ｉｉｉ）の間に、前記第１のトーン補正値に対して第１の画像補正処理を実行することによって前記第１のトーン補正値を修正する工程と、前記工程（ｉｉｉ）の後に、前記第２のトーン補正値を用いて第２の画像補正処理を実行する工程と、を備えるようにしてもよい。
前記第１の画像補正処理は、比較的少量の画像データをバッファメモリに格納した状態で実行される処理であり、前記第２の画像補正処理は、比較的多量の画像データを前記バッファメモリに格納した状態で実行される処理であるものとすることが好ましい。
また、前記第１の画像補正処理は彩度補正を含み、前記第２の画像補正処理はシャープネス調整を含むことが好ましい。
なお、本発明は、種々の態様で実現することが可能であり、例えば、画像処理方法を実現する画像処理装置やコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体等の態様で実現することができる。
【図面の簡単な説明】  図１は、本発明の一実施例として画像処理装置の構成を示すブロック図である。
図２は、第１実施例における階調変換モジュール９７を示すブロック図である。
図３は、第１実施例における、入力画素値ＤＩと第２のトーン補正値ＤＭの関係を示す図である。
図４は、第１実施例における、入力画素値ＤＩと第２のトーン補正値ＤＭの他の関係を示す図である。
図５は、第２実施例における、入力画素値ＤＩと第２のトーン補正値ＤＭの関係を示す図である。
図６は、第３実施例における、入力画素値ＤＩと第２のトーン補正値ＤＭの関係を示す図である。
図７は、第４実施例のプリンタドライバの構成を示すブロック図である。
図８は、第４実施例の処理手順を示すフローチャートである。
図９は、エンハンス処理の詳細手順を示すフローチャートである。
図１０は、従来技術における、入力画素値ＤＩと第２のトーン補正値ＤＭの関係を示す図である。
【発明を実施するための最良の形態】  本発明の実施の形態を実施例にもとづいて以下の順番で説明する。
Ａ．装置の構成：
Ｂ．第１実施例：
Ｃ．第２実施例：
Ｄ．第３実施例：
Ｅ．第４実施例：
Ｆ．変形例：
Ａ．装置の構成：
図１は、本発明の一実施例として、画像処理装置の構成を示すブロック図である。この画像処理システムは、コンピュータ９０と、プリンタ２０と、を備えている。なお、プリンタ２０とコンピュータ９０とを含む画像処理システムは、広義の「画像処理装置」と呼ぶことができる。
コンピュータ９０では、所定のオペレーティングシステムの下で、アプリケーションプログラム９５が動作している。オペレーティングシステムには、ビデオドライバ９１やプリンタドライバ９６が組み込まれており、アプリケーションプログラム９５からは、これらのドライバを介して、プリンタ２０に転送するための印刷データＰＤが出力される。画像のレタッチなどを行うアプリケーションプログラム９５は、処理対象の画像に対して所望の処理を行い、また、ビデオドライバ９１を介してＣＲＴ２１に画像を表示している。
アプリケーションプログラム９５が印刷命令を発すると、コンピュータ９０のプリンタドライバ９６が、画像データをアプリケーションプログラム９５から受け取り、これをプリンタ２０に供給する印刷データＰＤに変換する。プリンタドライバ９６の内部には、階調変換モジュール９７と、色変換モジュール９８と、ハーフトーンモジュール９９と、ラスタライザ１００と、色変換ルックアップテーブルＬＵＴと、が備えられている。
階調変換モジュール９７は、トーン補正モジュール９７ａとビット数低減モジュール９７ｂから構成されている。アプリケーションプログラム９５から受け取った画像データは、複数の入力画素値ＤＩから構成されており、各入力画素値ＤＩは、トーン補正モジュール９７ａによって、入力画素値ＤＩのビット数よりも多いビット数である第１のトーン補正値ＤＴに変換される。第１のトーン補正値ＤＴは、ビット数低減モジュール９７ｂによって、第１のトーン補正値ＤＴよりも少ないビット数である第２のトーン補正値ＤＭに変換される。
第２のトーン補正値ＤＭは、ＲＧＢの３つの色成分からなる画像情報である。色変換モジュール９８は、色変換ルックアップテーブルＬＵＴを参照しつつ、各画素ごとに、ＲＧＢ画像データを、プリンタ２０が利用可能な複数のインク色の多階調データに変換する。
色変換された多階調データは、例えば２５６階調の階調数を有している。ハーフトーンモジュール９９は、いわゆるハーフトーン処理を実行してハーフトーン画像データを生成する。このハーフトーン画像データは、ラスタライザ１００によりプリンタ２０に転送すべきデータ順に並べ替えられ、最終的な印刷データＰＤとして出力される。なお、印刷データＰＤは、各主走査時のドットの形成状態を示すラスタデータと、副走査送り量を示すデータと、を含んでいる。
なお、プリンタドライバ９６は、各種の画像処理を行なって印刷データＰＤを生成する機能を実現するためのプログラムに相当する。プリンタドライバ９６の機能を実現するためのプログラムは、コンピュータ読み取り可能な記録媒体に記録された形態で供給される。このような記録媒体としては、フレキシブルディスクやＣＤ−ＲＯＭ、光磁気ディスク、ＩＣカード、ＲＯＭカートリッジ、パンチカード、バーコードなどの符号が印刷された印刷物、コンピュータの内部記憶装置（ＲＡＭやＲＯＭなどのメモリ）および外部記憶装置等の、コンピュータが読み取り可能な種々の媒体を利用できる。
Ｂ．第１実施例：
図２は、第１実施例における階調変換モジュール９７を示している。本実施例では、トーン補正モジュール９７ａは、８ビットの入力画素値ＤＩにトーンカーブ補正を行なって１０ビットの第１のトーン補正値ＤＴを生成する。ビット数低減モジュール９７ｂは、１０ビットの第１のトーン補正値ＤＴに対し、後述するビット低減処理を行なって、８ビットの第２のトーン補正値ＤＭを生成する。
図３は、第１実施例における、入力画素値ＤＩと第２のトーン補正値ＤＭの関係を示す図である。図３（Ａ）は、トーンカーブであり、８ビットの入力画素値ＤＩと１０ビットの第１のトーン補正値ＤＴとの関係を示す曲線である。入力画素値ＤＩの最大値２５５が、第１のトーン補正値ＤＴの最大値１０２０に対応するように設定されている。第１のトーン補正値ＤＴの最大値が、１０ビットで表すことのできる最大値（１０２３）よりも小さい理由については、後述する。
図１０（Ｂ）では、ある入力画素に対する入力画素値ＤＩｂの値１２７をトーンカーブに従って補正し、その結果が連続値である場合の値（以下、「元ビットの連続値」と書く）Ａｂが１２８．２である場合の従来技術の例を示した。図１０（Ｂ）に示した、入力画素値ＤＩｂが１２７、元ビットの連続値Ａｂが１２８．２である場合を例に、第１実施例における、第１のトーン補正値ＤＴの決定手順を述べる。図３（Ｂ）に示すように、第１のトーン補正値ＤＴｂは、元ビットの連続値Ａｂを４倍して整数化した値である。４倍は、第１のトーン補正値ＤＴのビット数で表現できる階調数（＝１０２４）を入力画素値ＤＩのビット数で表現できる階調数（＝２５６）で除した値である。従って、元ビットの連続値Ａｂが１２８．２に対応する第１のトーン補正値ＤＴｂは５１２となる。
次に、第２のトーン補正値ＤＭの決定手順を述べる。ここで、図３（Ｅ）に示す２×２のディザマトリックスＰを導入する。ディザマトリックスＰは、２×２に配列された４つの画素Ｐ１〜Ｐ４に、値０〜３の値が割り当てられたものである。ディザマトリックスＰの総要素数（総画素数）は、第１のトーン補正値ＤＴのビット数で表現できる階調数（＝１０２４）を第２のトーン補正値ＤＭのビット数で表現できる階調数（＝２５６）で除した値と同じ値である。第２のトーン補正値ＤＭの値は、以下の式（１）で決定される。
ＤＭ＝ＩＮＴ［（ＤＴ＋Ｐｉ）／４］．．．（１）
ここで、ＩＮＴ［Ｘ］は、値Ｘの小数部を切り捨てた整数値を得る関数であり、Ｐｉは、ディザマトリックスＰのｉ番目の要素値であり、ｉは１から４の整数である。除する値４は、第１のトーン補正値ＤＴのビット数で表現できる階調数（＝１０２４）を第２のトーン補正値ＤＭのビット数で表現できる階調数（＝２５６）で除した値である。図３（Ｂ）に示すように、ディザマトリックスＰ内の４つの画素に対応する第１のトーン補正値ＤＴｂが全て５１２である場合には、第２のトーン補正値ＤＭｂ１，ＤＭｂ２，ＤＭｂ３，ＤＭｂ４は、同じ値１２８となる。なお、トーンカーブに従って得られた第１のトーン補正値ＤＴの最大値が１０２０に設定されていた理由は、第１のトーン補正値ＤＴの最大値が、式（１）によって得られる第２のトーン補正値ＤＭが８ビットで表現できる最大値２５５になるようにするためである。
図３（Ｃ）に示すように、入力画素値ＤＩｃが１２８、元ビットの連続値Ａｃが１２８．７である場合は、前述の手順と同じ手順で、第１のトーン補正値ＤＴｃが５１４となる。ディザマトリックスＰおよび式（１）を適用すると、２つの画素位置における第２のトーン補正値ＤＭｃ１およびＤＭｃ４は１２８となり、他の２つの画素位置における第２のトーン補正値ＤＭｃ２およびＤＭｃ３は１２９となる。
同様にして、図３（Ｄ）に示すように、入力画素値ＤＩｄが１２９、元ビットの連続値Ａｄが１２８．９である場合は、第２のトーン補正値ＤＴｄが５１５となる。ディザマトリックスＰおよび式（１）を適用すると、１つの画素位置における第２のトーン補正値ＤＭｄ１は１２８となり、３つの画素位置における第２のトーン補正値ＤＭｄ２およびＤＭｄ３およびＤＭｄ４は１２９となる。
図３では、隣接した４つの入力画素の入力画素値ＤＩが、同じ値である例を述べた。各入力画素値ＤＩは、お互いに異なる値であっても良い。図４は、４つの隣接した入力画素の入力画素値ＤＩｆ１、ＤＩｆ２、ＤＩｆ３、ＤＩｆ４がそれぞれ１２７、１２８、１２８、１２９である場合の例である。入力画素値ＤＩが１２７、１２８、１２９にそれぞれ対応する第１のトーン補正値ＤＴは５１２、５１４、５１５である。従って、第１のトーン補正値ＤＴｆ１、ＤＴｆ２、ＤＴｆ３、ＤＴｆ４はそれぞれ５１２、５１４、５１４、５１５となる。図３の場合と同様に、図３（Ｅ）で示すディザマトリックスＰおよび式（１）を適用して、第２のトーン補正値ＤＭｆ１、ＤＭｆ２、ＤＭｆ３、ＤＭｆ４はそれぞれ１２８、１２９、１２９、１２９となる。
このように、第１実施例では、第２のトーン補正値ＤＭのビット数を入力画素値ＤＩのビット数より増やすことなく、入力画素値ＤＩをトーンカーブに従って補正した第１のトーン補正値ＤＴの階調を、複数の画素における第２のトーン補正値ＤＭによって表現できる。第２のトーン補正値ＤＭのビット数が増えないことは、図１において説明した色変換モジュール９８で扱う１色当りのデータのビット数も増えないことを意味する。従って、メモリおよび処理速度が大幅に増加することがない。
Ｃ．第２実施例：
図５（Ａ）は、第２実施例における階調変換モジュール９７を示している。入力画素値ＤＩのビット数が８ビットであり、第１のトーン補正値ＤＴのビット数が８＋Ｍビットであり、第２のトーン補正値ＤＭのビット数が８＋Ｍ−Ｎビットである。ここで、Ｍは、２以上の整数であり、Ｎは１以上の整数である。
図５（Ｂ）は、トーンカーブを示している。０から（２８−１）までの値である入力画素値ＤＩに対して、第１のトーン補正値ＤＴは、０から（２８＋Ｍ−２Ｎ）までの値が対応するように、トーンカーブが決定されている。第１のトーン補正値ＤＴが（２８＋Ｍ−２Ｎ＋１）から（２８＋Ｍ−１）までの値であるときは、ビット数低減モジュール９７ｂにおけるビット低減処理において、第２のトーン補正値ＤＭのビット数（８＋Ｍ−Ｎ）で表現できる値の範囲を超えるので、第１のトーン補正値ＤＴの最大値は、（２８＋Ｍ−２Ｎ）としてある。このようなトーンカーブに従って、入力画素値ＤＩに対応した第１のトーン補正値ＤＴを得る。
図５（Ｃ）は、ビット低減モジュール９７ｂにおいて適用するディザマトリックスＰを示している。本実施例の場合、ディザマトリックスＰの要素数は２Ｎ個であり、ディザマトリックスＰの要素値は、０から（２Ｎ−１）までの値である。ディザマトリックスＰを適用し、第２のトーン補正値ＤＭは、以下の式（２）で決定する。
ＤＭ＝ＩＮＴ［（ＤＴ＋Ｐｉ）／２Ｎ］．．．（２）
ここで、ＩＮＴ［Ｘ］は、値Ｘの小数部を切り捨てた整数値を得る関数であり、ＰｉはディザマトリックスＰのｉ番目の要素値であり、ｉは１から２Ｎの整数である。
このように、第２のトーン補正値ＤＭ以降のビット数の増加は（Ｍ−Ｎ）ビットだけにもかかわらず、第２のトーン補正値ＤＭが表現できる階調数は、２の階乗で増加することができる。第１のトーン補正値ＤＴのビット数と入力画素値ＤＩのビット数との差であるＭが、第１のトーン補正値ＤＴのビット数と第２のトーン補正値ＤＭのビット数との差であるＮよりも大きくなればなるほど、第２のトーン補正値ＤＭの表現できる階調数が飛躍的に増加する。
Ｄ．第３実施例：
図６は、第３実施例における、入力画素値ＤＩと第２のトーン補正値ＤＭの関係を示す図である。この実施例は、第１のトーン補正値ＤＴから第２のトーン補正値ＤＭを決定する際に、誤差拡散法を適用した例である。入力画素値ＤＩから第１のトーン補正値ＤＴを得るまでの手順は、前述した第１実施例または第２実施例の手順と同じ手順である。以下では、トーンカーブが第１実施例に使用したトーンカーブと同じであり、第２のトーン補正値ＤＭのビット数が第１のトーン補正値ＤＴのビット数よりも２ビット少ない場合を例にして説明する。
トーンカーブが第１実施例で使用したトーンカーブと同じなので、図６に示すように、４つの隣接する入力画素の入力画素値ＤＩｈが１２８である場合、第１のトーン補正値ＤＴｈ１からＤＴｈ４までの値は５１４となる。
第３実施例のビット数低減処理では、ｉ番目の画素に対する誤差付きの第１のトーン補正値ＤＧｉ（以下、「誤差付き値」と書く）が次の式（３）で与えられる。
ＤＧｉ＝ＤＴ＋ＭＯＤ［ＤＧｉ−ｌ，２Ｎ］．．．（３）
ここで、ＭＯＤ［Ｘ，Ｙ］は、値ＸをＹで除した余りを得る関数であり、Ｎは、第１のトーン補正値ＤＴのビット数と第２のトーン補正値ＤＭのビット数との差である。ｉ番目の画素に対する第２のトーン補正値ＤＭｉは、式（４）で与えられる。
ＤＭｉ＝ＩＮＴ［ＤＧｉ／２Ｎ］．．．（４）
図６を用いて具体的に述べる。図６に示す最初の誤差付き値ＤＧｈ１は、第１のトーン補正値ＤＴｈ１である５１４である。２番目の誤差付き値ＤＧｈ２は、誤差付き値ＤＧｈ１を４で除した余り２と、２番目の第１のトーン補正値ＤＴｈ２を加算した値である５１６となる。３番目の誤差付き値ＤＧｈ３は、２番目の誤差付き値ＤＧｈ２である５１６を４で除した余り０と、３番目の第１のトーン補正値ＤＴｈ３である５１４を加算した値、５１４となる。同様にして、４番目の誤差付き値ＤＧｈ３は、５１６となる。このようにして求めた各誤差付き値ＤＧを４で除し、整数化した値が、それぞれの第２のトーン補正値ＤＭとなる。すなわち、図６に示すように、第２のトーン補正値ＤＭｈ１、ＤＭｈ２、ＤＭｈ３、ＤＭｈ４はそれぞれ１２８、１２９、１２８、１２９となる。この実施例にて用いた、除する数４は、２２のことであり、第１のトーン補正値ＤＴのビット数で表現できる階調数（＝１０２４）を第２のトーン補正値ＤＭのビット数で表現できる階調数（＝２５６）で除した値である。
この実施例においても、第１実施例と同様に、ビット数低減による誤差を目立たなくすることができると同時に、微妙な階調を表現できる。
Ｅ．第４実施例：
図７は、第４実施例のプリンタドライバの構成を示すブロック図である。図１のプリンタドライバ９６との差異は、階調変換モジュール９７が画像補正モジュール２００に置き換えられている点だけであり、他の構成は図１のプリンタドライバ９６と同じである。
画像補正モジュール２００は、補正パラメータ作成モジュール２０２と、エンハンス処理モジュール２０４とを含んでいる。エンハンス処理モジュール２０４は、各種の画像補正処理（後述する）を行う機能を有しており、また、トーン補正モジュール９７ａとビット低減モジュール９７ｂの機能も有している。なお、「エンハンス処理」とは、画質を向上させるための処理を意味しており、トーン補正や、色補正、彩度調整などの各種の画像補正処理を含んでいる。補正パラメータ作成モジュール２０２は、エンハンス処理のための各種の補正パラメータを作成する。
図８は、第４実施例における画像補正モジュール２００の処理手順を示すフローチャートである。ステップＳ１０では、補正パラメータ作成モジュール２０２が、処理対象の画像データファイルに印刷指定タグが登録されているか否かを判定する。ここで、「印刷指定タグ」とは、画像の印刷を行う際に各種の画像補正処理（トーン補正や、色補正、彩度調整など）を行うための各種のパラメータ値を格納するためのデータ構造である。印刷指定タグは、例えばＥＸＩＦファイルの中に登録することができる。ＥＸＩＦファイルは、電子情報技術産業協会（ＪＥＩＴＡ）によって定められた画像データファイル形式である。
印刷指定タグが無い場合には、画像補正モジュール２００による処理を終了して、色変換モジュール９８（図７）による処理に進む。一方、印刷指定タグがある場合には、ステップＳ１２において、補正パラメータ作成モジュール２０２が、印刷指定タグの中に画像自動補正の実行指示が含まれているか否かを判定する。ここで、「画像自動補正」とは、画像をサンプリングし解析して補正パラメータ値を算出し、この補正パラメータ値を用いて画像補正を行うことを意味する。なお、画像自動補正の実行指示は、ユーザがプリンタドライバのユーザインタフェースウィンドウ上で入力することも可能である。
画像自動補正の指示が無い場合には、ステップＳ１９に移行し、印刷指定タグに含まれている補正パラメータ値をそのまま用いてステップＳ２０におけるエンハンス処理が実行される。
一方、画像自動補正の指示がある場合には、ステップＳ１４〜Ｓ１８の処理が実行される。補正パラメータ作成モジュール２０２は、まず、ステップＳ１４において画像のサンプリングを行い、ステップＳ１６においてサンプリング結果に応じてエンハンス処理用の種々の補正パラメータ値を決定する。エンハンス処理としては、例えば、ノイズ除去、トーン補正、記憶色補正、彩度補正、ＨＳＢ空間での色補正、シャープネス調整などがある。ステップＳ１８では、印刷指定タグ内に含まれていた補正パラメータ値と、ステップＳ１６で作成された補正パラメータ値とが合成される。この合成は、エンハンス処理の種類によっても異なるが、加算や平均などの所定の演算によって行われる。ステップＳ２０では、こうして準備された各種の補正パラメータ値を用いて、エンハンス処理モジュール２０４が各種のエンハンス処理を実行する。
図９は、エンハンス処理の詳細手順を示すフローチャートである。ステップＳ２２では、ノイズ除去処理が行われる。ノイズ除去処理は、画像内に含まれる微少な特異的な画素値を周囲の画素値に整合させる処理である。この処理は、バッファメモリ（一時的な作業メモリ）内に複数ライン分の画像データを格納した状態で実行される。処理対象となる画像データは、８ビット／色／画素のＲＧＢデータである。
ステップＳ２４では、トーン補正が実行される。このトーン補正は、上述した第１〜第３実施例で説明したトーン補正と同じものである。このトーン補正では、例えば８ビットから１０ビットにＲＧＢデータのビット数が増大する。
このトーン補正は、画素毎に実行できる処理なので、バッファメモリ内に複数ライン分の画像データを格納する必要は無く、１ライン分（または１画素分）の画像データをバッファメモリに格納した状態で実行される。この点は以下に説明するステップＳ２６〜Ｓ３０の処理も同じである。
ステップＳ２６では、所定の特定の色範囲（肌色、空色、緑色、赤色）に関して記憶色処理がそれぞれ実行される。これにより、特定の色範囲の色がより好ましい色に修正される。ステップＳ２８では、彩度補正が実行される。この彩度補正は、例えば各画素のＲＧＢ値のうちの最大値と最小値の差（これが彩度に相当する）が大きくなるように、ＲＧＢ値を修正することによって彩度を高める処理である。ステップＳ３０では、ＨＳＢ（Ｈｕｅ，Ｓａｔｕｒａｔｉｏｎ，Ｂｒｉｇｈｔｎｅｓｓ）空間を利用した色補正が行われる。ＨＳＢ空間は、ＨＳＩ（Ｈｕｅ，Ｓａｔｕｒａｔｉｏｎ，Ｉｎｔｅｎｓｉｔｙ）空間とも呼ばれており、色相と彩度と明度の３つの属性で任意の色を表現する色空間である。ＨＳＢ空間では、３つの属性（色相、彩度、明度）を直接補正できるので、ＲＧＢ空間で色補正を行う場合に比べて、望ましい補正をより正確に行うことができるという利点がある。但し、処理の際に色空間の変換が必要になるので、処理時間は長くなる。
ステップＳ２４〜Ｓ３０の処理は、１ライン分（または１画素分）の画像データをバッファメモリに格納した状態で実行される。また、処理対象となる画像データは、１０ビット／色／画素または１０ビット／属性／画素のデータである。これらの処理は、１０ビットのデータを処理対象としているので、８ビットデータを処理対象とする場合よりも、より正確に処理を行うことができる。
ステップＳ３２では、ビット数低減処理が実行される。このビット数低減処理は、上述した第１〜第３実施例で説明したものと同じものである。このビット数低減処理では、例えば１０ビットから８ビットにＲＧＢデータのビット数が減少する。
ステップＳ３４では、シャープネス調整が実行される。シャープネス調整は、各画素の画素値を、周囲の画素の画素値に応じて修正することによってシャープネスを調整する処理である。従って、シャープネス調整は、バッファメモリ内に複数ライン分の画像データを格納した状態で実行される。
上述したように、ステップＳ２２及びステップＳ３４の処理は、複数ライン分の画像データをバッファメモリに格納した状態で実行されており、その処理対象の画像データは８ビット／色／画素のデータである。一方、ステップＳ２４〜Ｓ３０の処理は、１ライン分の画像データをバッファメモリに格納した状態で実行されており、その処理対象の画像データは１０ビット／色／画素または１０ビット／属性／画素のデータである。すなわち、第４実施例では、バッファメモリに比較的多量の画像データを格納する処理では、比較的少ないビット数の画像データを対象として処理を実行し、一方、バッファメモリに比較的少量の画像データを格納する処理では、比較的少ないビット数の画像データを対象として処理を実行している。この結果、バッファメモリ容量を過度に増大させることなく、一部のエンハンス処理を比較的多いビット数で精度良く実行することができる。
なお、エンハンス処理としては、上述した各種の処理の一部を省略することも可能であり、また、上述したもの以外の他の処理を行うことも可能である。但し、エンハンス処理（画像補正処理）としては、少なくともトーン補正と彩度補正とシャープネス調整を行うことが好ましい。
Ｆ．変形例：
なお、本発明は上記の実施例や実施形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
Ｆ１．変形例１：
第１実施例および第２実施例で適用したディザマトリックスＰは、行数と列数が異なる２次元のマトリックスでも良く、１次元のマトリックスでも良い。
Ｆ２．変形例２：
上記実施例ではトーン補正（階調補正）を行い際にトーンカーブを用いていたが、トーンカーブ以外の形式を有する変換関係を用いてトーン補正を行うようにしてもよい。
Ｆ３．変形例３：
前述の実施例では、コンピュータとシリアルプリンタを用いた画像処理方法および画像処理装置を例に述べたが、これに限定されるものではなく、種々の態様において実施することが可能である。例えば、デジタルカメラやスキャナ，ファックス，複写機，ラインプリンタやページプリンタを本発明の画像処理装置とすることも可能であり、これら画像処理装置の画像処理方法として本発明を適用することも可能である。また、ソフトウェを用いて本発明の画像処理方法を実現しても良く、ハードウェアを用いても良い。
【産業上の利用可能性】  この発明は、画像処理装置や、画像処理プログラム、画像処理機能を備えたプリンタなどに適用可能である。
【図１】
2004100529.tif 000003
【図２】
2004100529.tif 000004
【図３】
2004100529.tif 000005
【図４】
2004100529.tif 000006
【図５】
2004100529.tif 000007
【図６】
2004100529.tif 000008
【図７】
2004100529.tif 000009
【図８】
2004100529.tif 000010
【図９】
2004100529.tif 000011
【図１０】
2004100529.tif 000012
【国際調査報告】
2004100529.tif 000013
2004100529.tif 000014
2004100529.tif 000015
2004100529.tif 000016