【手続補正書】
【提出日】平成16年2月19日(2004.2.19)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の名称】画像処理装置、画像処理方法および画像処理プログラムを記録した媒体
【特許請求の範囲】
【請求項１】複数の画素からなる画像の画像データに対して所定の画像処理を行う画像処理装置であって、
上記画像データを入力し利用色数を検知する色数検知手段と、
この検知された利用色数に応じて実行する画像処理の分岐を行なう画像処理手段とを具備することを特徴とする画像処理装置。
【請求項２】上記請求項１に記載の画像処理装置において、上記色数検知手段は、各画素の輝度に相当する情報を色と見なして利用色数を検知することを特徴とする画像処理装置。
【請求項３】上記請求項２に記載の画像処理装置において、画像データが輝度に対応した複数の成分値で表される場合において、上記色数検知手段は、同成分値の重みづけ積算により輝度を求めることを特徴とする画像処理装置。
【請求項４】上記請求項１〜請求項３のいずれかに記載の画像処理装置において、上記色数検知手段は、画像データからサンプリングした画素について色数を検知することを特徴とする画像処理装置。
【請求項５】上記請求項１〜請求項４のいずれかに記載の画像処理装置において、上記画像処理手段は、上記画像データの利用色数が多い場合に輝度分布を拡大させる画像処理を行なうとともに利用色数が少ない場合に輝度分布を拡大させないようにすることを特徴とする画像処理装置。
【請求項６】上記請求項１〜請求項５のいずれかに記載の画像処理装置において、上記画像処理手段は、上記画像データの利用色数が多い場合に彩度を強調させる画像処理を行なうとともに利用色数が少ない場合に彩度を強調させないようにすることを特徴とする画像処理装置。
【請求項７】上記請求項１〜請求項６のいずれかに記載の画像処理装置において、上記画像処理手段は、上記画像データの利用色数が多い場合ににエッジ強調させる画像処理を行なうとともに利用色数が少ない場合にエッジ強調させないようにすることを特徴とする画像処理装置。
【請求項８】上記請求項１〜請求項７のいずれかに記載の画像処理装置において、変換元の表色空間での格子点に変換先の表色空間での階調表色データを対応させたテーブルを備えつつ変換元の階調表色データを当該テーブルの格子点に対応した階調表色データに階調変換してから同テーブルを参照して対応する階調表色データを読み出して色変換するプレ階調変換手段と、上記テーブルの格子点間で補間演算にて対応する階調表色データに色変換可能であるとともにこの色変換の情報を保存する高速読込可能な記憶エリアを有して同記憶エリアに記憶されていない場合に補間演算で色変換させるキャッシュ利用の補間色変換手段とを有し、上記画像データの利用色数が多い場合に同プレ階調変換手段を使用して色変換するし、同画像データの利用色数が少ない場合に同補間色変換手段を利用して色変換することを特徴とする画像処理装置。
【請求項９】複数の画素からなる画像の画像データに対して所定の画像処理を行う画像処理方法であって、上記画像データを入力して利用色数を検知し、この検知された利用色数に応じて実行する画像処理を選択し、同選択した画像処理を実行することを特徴とする画像処理方法。
【請求項１０】複数の画素からなる画像の画像データコンピュータにて入力し、所定の画像処理を行う画像処理プログラムを記録した媒体であって、
上記画像データを入力し利用色数を検知するステップと、
この検知された利用色数に応じて画像処理を選択して実行するステップとを具備することを特徴とする画像処理プログラムを記録した媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像処理装置、画像処理方法および画像処理プログラムを記録した媒体に関し、特に、画像データの種類に応じた所定の処理を実行する画像処理装置、画像処理方法および画像処理プログラムを記録した媒体に関する。
【０００２】
【従来の技術】
従来より、写真など自然画の画像データやドロー系の非自然画の画像データについて、各種のエフェクト処理を行うソフトウェアが知られている。このようなソフトウェアでは、画像データをディスプレイなどに表示させ、作業者が所望の処理を施して見栄えの良い画像データを形成している。
【０００３】
ここにおいて、各種のエフェクト処理のうちには、自然画をより美しく変換するものがある一方、ドロー系の画像のようにあえて手を加える必要はないようなものもある。
【０００４】
【発明が解決しようとする課題】
上述した従来のソフトウェアで構成された画像処理装置においては、作業者がディスプレイ上で画像の種類を判別して各種のエフェクト処理を選択しなければならず、自動化できないという課題があった。
【０００５】
本発明は、上記課題にかんがみてなされたもので、画像データの種別を自動的に判定して適当な処理を行うことが可能な画像処理装置、画像処理方法および画像処理プログラムを記録した媒体の提供を目的とする。
【０００６】
【課題を解決するための手段】
上記目的を達成するため、請求項１にかかる発明は、複数の画素からなる画像の画像データに対して所定の画像処理を行う画像処理装置であって、上記画像データを入力し利用色数を検知する色数検知手段と、この検知された利用色数に応じて実行する画像処理の分岐を行なう画像処理手段とを具備する構成としてある。
【０００７】
画像の種類に応じて利用する色数が異なる。例えば、写真などの自然画であれば被撮影物が同一の青色であったとしても陰影によって複数の色となるなど、かなりの色を利用している。一方、ドロー系のデータであったり、ビジネスグラフであったりするときには、もともと作業者が色を指定して描かれているものであるため、自ずから色数には限度がある。従って、利用色数から画像種類が判定できる。一方、画像データの利用色数を検知する手法として、まず、マトリクス状の各画素における現実の色を判定してヒストグラム状に集計して検知するものが上げられる。
【０００８】
しかしながら、必ずしも正確な値が必要であるわけではないし、いわゆるフルカラーといわれるものでは１６７０万色もの色数があり得るため、正確な色数を検出すること自体が手間になりかねない。
【０００９】
このような前提のもと、上記のように構成した請求項１にかかる発明においては、色数検知手段が上記画像データを入力して利用色数を検知すると、画像処理手段はこの検知された利用色数に応じて実行する画像処理の分岐を行なう。
【００１０】
また、各色ごとに輝度が対応しており、一つの輝度値に対して複数色が対応しているとはいうものの、輝度値が多くて色数が少ないというようなことはないし、たまたま輝度値が一致する色ばかりで構成されているということも現実には考えられない。従って、利用色数が多いか少ないかのおおざっぱな傾向であれば概ね輝度値で判定しても構わないといえる。むろん、このようにして輝度値を置き換えた場合には利用色数というよりも利用色数相当値というのが正確であるが、画像の種類を判定するという用途を前提として利用色数と呼ぶことにする。
【００１１】
ここにおいて、請求項３にかかる発明は、上記請求項２に記載の画像処理装置において、画像データが輝度に対応した複数の成分値で表される場合において、上記色数検知手段は、同成分値の重みづけ積算により輝度を求める構成としてある。
【００１２】
輝度を利用するメリットはあっても画像データのパラメータに輝度の成分がなければ色変換しなければならず、通常であれば、色変換には多大な処理が必要となる。しかるに、輝度を利用する時点で多少の誤差は許容されているのであるから、画像データが輝度に対応した複数の成分値で表される場合には同成分値の重みづけ積算により多大な処理を要することなく輝度が求められる。
【００１３】
また、この他にも利用色数の検知を簡略化する手法はある。例えば、三次元の色空間において各軸方向にとびとびの格子状にし、あるグループごとに一色と考える。これにより、例えば各軸が２５６階調というような場合の膨大な色数で集計をとる必要がなくなる。
【００１４】
また、画像データ全体での利用色数は必ずしもすべての画素について集計する必要はなく、例えば、請求項３にかかる発明は、請求項１または請求項２のいずれかに記載の画像処理装置において、上記色数検知手段は、画像データからサンプリングした画素について色数を検知する構成としてある。
【００１５】
むろん、間引きによって誤差は生じるものの、上述したように必ずしも正確な利用色数が分かる必要はないので、画像データからサンプリングした画素について色数を検知するようにすれば対象となる画素数が減り、処理量も減る。
【００１６】
自然画である場合に適当な画像処理としてコントラストの修正処理があり、請求項５にかかる発明は、請求項１〜請求項４のいずれかに記載の画像処理装置において、上記画像処理手段は、上記画像データの利用色数が多い場合に輝度分布を拡大させる画像処理を行なうとともに利用色数が少ない場合に輝度分布を拡大させない構成としてある。
【００１７】
例えば、写真においては撮影時の条件によってコントラストの幅の狭い画像になってしまうことがある。このために画像処理を行うことがあるが、請求項５にかかる発明によれば、色数検知手段が検知した画像データの色数が多い場合には自然画であると判断され、この場合には画像処理手段が輝度分布を拡大させる画像処理を行なう。むろん、拡大する分布の範囲は適宜変更可能であり、十分に輝度分布が広くコントラストの幅のある画像データであればあえて拡大処理する必要もない。また、ビジネスグラフのような非自然画である場合にはコントラストの幅が問われるようなこともなく、輝度分布を拡大させない。
【００１８】
さらに、請求項６にかかる発明は、請求項１〜請求項５のいずれかに記載の画像処理装置において、上記画像処理手段は、上記画像データの利用色数が多い場合に彩度を強調させる画像処理を行なうとともに利用色数が少ない場合に彩度を強調させない構成としてある。
【００１９】
同様に、写真においては撮影時の光線の条件によって色がくもった感じになってしまうことがある。このために画像処理を行うことがあるが、請求項６にかかる発明によれば、色数検知手段が検知した画像データの色数が多い場合には自然画であると判断され、この場合には画像処理手段が彩度を強調させる画像処理を行なう。むろん、ビジネスグラフのような非自然画である場合にはあえて色相を変えて鮮やかにするような要求はなく、彩度強調を行わない。
【００２０】
さらに、請求項７にかかる発明は、請求項１〜請求項６のいずれかに記載の画像処理装置において、上記画像処理手段は、上記画像データの利用色数が多い場合ににエッジ強調させる画像処理を行なうとともに利用色数が少ない場合にエッジ強調させないとしてある。
【００２１】
この場合も、写真を例に取れば撮影時の条件によってエッジのなまったぼけたような画像になってしまうことがあり、このために画像処理を行うことがあるが、請求項７にかかる発明によれば、色数検知手段が検知した画像データの色数が多い場合には自然画であると判断され、この場合には画像処理手段がエッジ強調させる画像処理を行なう。むろん、エッジ強調の程度などは適宜変更可能である。エッジ強調処理の具体的な手法については各種のものを採用可能であり、例えば、上記画像データを構成する各画素について周辺の画素分布に基づいて低周波成分を求めるとともに同低周波成分を減ずることにより結果として各画素のエッジ度を高めるように修正してもよい。
【００２２】
一方、画像処理した画像データに対してはディスプレイで表示する以外にも各種の利用の途があり、例えば、印刷処理などもありうる。このような場合には元の画像データの色空間とは異なる印刷インクの色空間に変換する必要があり、このような色変換を伴うものに対応して、請求項８にかかる発明は、請求項１〜請求項７のいずれかに記載の画像処理装置において、変換元の表色空間での格子点に変換先の表色空間での階調表色データを対応させたテーブルを備えつつ変換元の階調表色データを当該テーブルの格子点に対応した階調表色データに階調変換してから同テーブルを参照して対応する階調表色データを読み出して色変換するプレ階調変換手段と、上記テーブルの格子点間で補間演算にて対応する階調表色データに色変換可能であるとともにこの色変換の情報を保存する高速読込可能な記憶エリアを有して同記憶エリアに記憶されていない場合に補間演算で色変換させるキャッシュ利用の補間色変換手段とを有し、上記画像データの利用色数が多い場合に同プレ階調変換手段を使用して色変換するし、同画像データの利用色数が少ない場合に同補間色変換手段を利用して色変換する構成としてある。
【００２３】
異なる表色空間の間で色変換を行なう場合、変換元の表色空間での格子点に変換先の表色空間での階調データを対応させたテーブルを用意しておき、同テーブルを参照して逐次所定の格子点の対応データを読み出せば変更可能となるが、変換元の階調データの全ての階調値に対応した格子点を備えるとテーブルが大きくなりすぎる。このため、プレ階調変換手段では変換元の階調データをテーブルの格子点に対応した階調データに階調変換することにより、テーブルを小さくしている。なお、補間演算でテーブルの格子点以外の階調データについても変更可能となるものの、色数が多い場合、誤差拡散などによって実行する階調変換は確実に演算量が少なくなるという特性がある。
【００２４】
ただし、誤差拡散の処理は必ず前画素に対して行わなければならないという前提があり、非自然画の場合は色数が少ないので一度変換した結果を何度も利用可能である。従って、このような場合には補間演算を併用しつつ色変換結果を高速読込可能な記憶エリアに保存しておき、必要に応じてこの記憶エリアから読み出すという処理を繰り返すキャッシュ利用の補間色変換手段の方が早いといえる。
【００２５】
上述したようにして、複数の対応関係を備えて画素に応じて対応関係を変える手法は、実体のある装置に限定される必要はなく、その方法としても機能することは容易に理解できる。このため、請求項９にかかる発明は、複数の画素からなる画像の画像データに対して所定の画像処理を行う画像処理方法であって、上記画像データを入力して利用色数を検知し、この検知された利用色数に応じて実行する画像処理を選択し、同選択した画像処理を実行する構成としてある。
【００２６】
すなわち、必ずしも実体のある装置に限らず、その方法としても有効であることに相違はない。
【００２７】
ところで、このような画像処理装置は単独で存在する場合もあるし、ある機器に組み込まれた状態で利用されることもあるなど、発明の思想としてはこれに限らず、各種の態様を含むものである。従って、ソフトウェアであったりハードウェアであったりするなど、適宜、変更可能である。
【００２８】
発明の思想の具現化例として画像処理装置のソフトウェアとなる場合には、かかるソフトウェアを記録した記録媒体上においても当然に存在し、利用されるといわざるをえない。その一例として、請求項１０にかかる発明は、複数の画素からなる画像の画像データコンピュータにて入力し、所定の画像処理を行う画像処理プログラムを記録した媒体であって、上記画像データを入力し利用色数を検知するステップと、この検知された利用色数に応じて画像処理を選択して実行するステップとを具備する構成としてある。
【００２９】
むろん、その記録媒体は、磁気記録媒体であってもよいし光磁気記録媒体であってもよいし、今後開発されるいかなる記録媒体においても全く同様に考えることができる。また、一次複製品、二次複製品などの複製段階については全く問う余地無く同等である。
【００３０】
さらに、一部がソフトウェアであって、一部がハードウェアで実現されている場合においても発明の思想において全く異なるものはなく、一部を記録媒体上に記憶しておいて必要に応じて適宜読み込まれるような形態のものとしてあってもよい。さらには、カラーファクシミリ機、カラーコピー機、カラースキャナやディジタルカメラ、ディジタルビデオなどに内蔵する画像処理装置においても適用可能であることはいうまでもない。
【００３１】
【発明の効果】
以上説明したように本発明は、利用色数という観点から画像データの種類を自動的に判定して画像処理を分岐させるすることが可能な画像処理装置を提供することができる。
【００３２】
また、請求項２にかかる発明によれば、利用色数を輝度に置き換えることにより、再現可能な色数が多大な場合でも容易に集計することができる。
さらに、請求項３にかかる発明によれば、輝度に対応した成分値を重みづけ積算することによりきわめて簡易に輝度を求めることができる。
【００３３】
さらに、請求項４にかかる発明によれば、色数を検知する対象の画素を間引きして選択するため、処理量を低減させることができる。
【００３４】
さらに、請求項５にかかる発明によれば、画像種類が自然画であると判定された場合には自動的にコントラストの拡大処理を行い、最適なコントラストの画像データとすることができる。
【００３５】
さらに、請求項６にかかる発明によれば、画像種類が自然画であると判定された場合には自動的に彩度強調処理を行い、色鮮やかな画像データとすることができる。
【００３６】
さらに、請求項７にかかる発明によれば、画像種類が自然画であると判定された場合には自動的にエッジ強調処理を行い、エッジになまりのない画像データとすることができる。
【００３７】
さらに、請求項８にかかる発明によれば、利用色数が多い自然画の場合には誤差拡散などの手法を使用して最小の演算量で色変換することができ、また、利用色数が少ない場合にはキャッシュを利用して変換結果を繰り返し利用できるようにしたため、画像の種類ごとに応じた色変換手法で最小の処理量とすることができる。
【００３８】
さらに、請求項９にかかる発明によれば、利用色数という観点から画像データの種類を自動的かつ容易に判定して画像処理を分岐させることが可能な画像処理方法を提供することができ、請求項１０にかかる発明によれば、同様にして画像データの種類を自動的かつ容易に判定して画像処理を分岐させることが可能な画像処理プログラムを記録した媒体を提供することができる。
【００３９】
【発明の実施の形態】
以下、図面にもとづいて本発明の実施形態を説明する。
【００４０】
図１は、本発明の一実施形態にかかる画像処理装置の具体的ハードウェア構成例をブロック図により示している。
【００４１】
同図において、各種の画像入力装置１０としてスキャナ１１やデジタルスチルカメラ１２が備えられ、画像判定を含む画像処理の中心的な役割を果たす画像処理装置２０としてコンピュータ本体２１とハードディスク２２が備えられ、画像処理された画像を表示する画像出力装置３０としてプリンタ３１やディスプレイ３２を備えている。
【００４２】
このコンピュータ本体２１の内部で行なわれる処理を図２に示している。図に示すように、コンピュータ本体２１内ではオペレーティングシステム２１ａが稼働しており、プリンタ３１やディスプレイ３２に対応したプリンタドライバ２１ｂやビデオドライバ２１ｃが組み込まれている。一方、アプリケーション２１ｄはオペレーティングシステム２１ａにて処理の実行を制御され、必要に応じてプリンタドライバ２１ｂやビデオドライバ２１ｃと連携して所定の画像処理を実行する。なお、コンピュータ２１はＲＡＭなどを使用しながら、内部のＲＯＭやハードディスク２２に保存されているそれぞれのプログラムを実行していく。また、このような画像処理などのプログラムは、ＣＤ−ＲＯＭ、フロッピーディスク、ＭＯなどの各種の記録媒体を介して供給される他、モデムなどによって公衆通信回線を介して外部のネットワークに接続し、ソフトウェアやデータをダウンロードして導入することも行われている。
【００４３】
本実施形態においては、画像入力装置１０としてのスキャナ１１やデジタルスチルカメラ１２が画像データとしてＲＧＢ（緑、青、赤）の階調データを出力するものとするとともに、画像出力装置３０としてのプリンタ３１は階調表色データとしてＣＭＹ（シアン、マゼンダ、イエロー）あるいはこれに黒を加えたＣＭＹＫの二値データを入力として必要とするし、ディスプレイ３２はそのＲＧＢの階調データを入力として必要する。従って、画像処理装置２０としてのこのコンピュータ本体２１の具体的役割は、ＲＧＢの階調データを入力して必要な強調処理を施したＲＧＢの階調データを作成し、ディスプレイ３２であればビデオドライバ２１ｃを介して表示させるし、プリンタ３１に対してはプリンタドライバ２１ｂを介してＣＭＹの二値データに変換して印刷させることである。
【００４４】
本実施形態における画像処理では、コンピュータ本体２１内に入力される画像データに対してアプリケーション２１ｄの色数検知手段２１ｄ１が利用色数を検知すると画像判定手段２１ｄ２が画像の種類を判定し、画像処理手段２１ｄ３は画像の種類に応じてあらかじめ設定される適当な画像処理を自動的に行う。また、同画像処理された画像データはビデオドライバ２１ｃを介してディスプレイ３２に表示されるとともに、確認後はプリンタドライバ２１ｂによって印刷データに変換されてプリンタ３１にて印刷される。
【００４５】
なお、本実施形態においては、画像の種類に応じて設定されている画像処理手段２１ｄ３として、図３に示すように、コントラスト拡大処理と、彩度強調処理と、エッジ強調処理とが用意されており、画像データを印刷データに変換するプリンタドライバ２１ｂにおいては、図４に示すように、印刷データをラスタライズするラスタライザ２１ｂ１とプレ階調変換かキャッシュと補間演算との組み合わせによって色変換する色変換部２１ｂ２と色変換後の階調データを二値化する階調変換部２１ｂ３とが用意されている。
【００４６】
本実施形態においては、画像の入出力装置の間にコンピュータシステムを組み込んで画像処理を行うようにしているが、必ずしもかかるコンピュータシステムを必要とする訳ではなく、画像データに対して利用色数を検知して画像の種類を判定するシステムであればよい。例えば、図５に示すように、コンピュータシステムを介することなく画像データを入力して印刷するプリンタ３１ｂにおいては、スキャナ１１ｂやモデム１３ｂ等を介して入力される画像データについて自動的に利用色数を検知して画像の種類を判定するように構成することも可能である。
【００４７】
図６はアプリケーションにおける画像処理に該当するフローチャートを示しており、ステップＳ１０２とステップＳ１０４で輝度分布を集計して利用色数を検知している。
【００４８】
まず、この輝度の分布検出処理について説明する。
【００４９】
輝度をいかにして表すかについて説明する前に、分布対象となる画素について説明する。図６のステップＳ１０２で示すように対象となる画素を間引く間引き処理を実行する。図７に示すように、ビットマップの画像であれば、縦方向に所定ドットと横方向に所定ドットからなる二次元のドットマトリクスとして成り立っており、正確な輝度の分布を求めるのであれば全画素について輝度を調べる必要がある。しかしながら、この分布検出処理は間接的に輝度から利用色を求めることを目的としており、必ずしも正確である必要はない。従って、ある誤差の範囲内となる程度に間引きを行うことが可能である。統計的誤差によれば、サンプル数Ｎに対する誤差は概ね１／（Ｎ**（１／２））と表せる。ただし、**は累乗を表している。従って、１％程度の誤差で処理を行うためにはＮ＝１００００となる。
【００５０】
ここにおいて、図７に示すビットマップ画面は（ｗｉｄｔｈ）×（ｈｅｉｇｈｔ）の画素数となり、サンプリング周期ｒａｔｉｏは、ｒａｔｉｏ＝ｍｉｎ（ｗｉｄｔｈ，ｈｅｉｇｈｔ）／Ａ＋１    …（１）
とする。ここにおいて、ｍｉｎ（ｗｉｄｔｈ，ｈｅｉｇｈｔ）はｗｉｄｔｈとｈｅｉｇｈｔのいずれか小さい方であり、Ａは定数とする。また、ここでいうサンプリング周期ｒａｔｉｏは何画素ごとにサンプリングするかを表しており、図８の○印の画素はサンプリング周期ｒａｔｉｏ＝２の場合を示している。すなわち、縦方向及び横方向に二画素ごとに一画素のサンプリングであり、一画素おきにサンプリングしている。Ａ＝２００としたときの１ライン中のサンプリング画素数は図９に示すようになる。
【００５１】
同図から明らかなように、サンプリングしないことになるサンプリング周期ｒａｔｉｏ＝１の場合を除いて、２００画素以上の幅があるときには最低でもサンプル数は１００画素以上となることが分かる。従って、縦方向と横方向について２００画素以上の場合には（１００画素）×（１００画素）＝（１００００画素）が確保され、誤差を１％以下にできる。
【００５２】
ここにおいてｍｉｎ（ｗｉｄｔｈ，ｈｅｉｇｈｔ）を基準としているのは次のような理由による。例えば、図１０（ａ）に示すビットマップ画像のように、ｗｉｄｔｈ＞＞ｈｅｉｇｈｔであるとすると、長い方のｗｉｄｔｈでサンプリング周期ｒａｔｉｏを決めてしまった場合には、同図（ｂ）に示すように、縦方向には上端と下端の２ラインしか画素を抽出されないといったことが起こりかねない。しかしながら、ｍｉｎ（ｗｉｄｔｈ，ｈｅｉｇｈｔ）として、小さい方に基づいてサンプリング周期ｒａｔｉｏを決めるようにすれば同図（ｃ）に示すように少ない方の縦方向においても中間部を含むような間引きを行うことができるようになる。
【００５３】
なお、この例では、縦方向と横方向の画素について正確なサンプリング周期で間引きを行うようにしている。これは、逐次入力される画素について間引きしながら処理する場合に好適である。しかし、全画素が入力されている場合には縦方向や横方向についてランダムに座標を指定して画素を選択するようにしても良い。このようにすれば、１００００画素というような必要最低限の画素数が決まっている場合に１００００画素となるまでランダムに抽出する処理を繰り返し、１００００画素となった時点で抽出を止めればよくなる。
【００５４】
このように選択した画素についての画素データがその成分要素として輝度を持っていればその輝度値を用いて分布を求めることが可能である。一方、輝度値が直接の成分値となっていない画像データの場合でも、間接的には輝度を表す成分値を備えている。従って、輝度値が直接の成分値となっていない表色空間から輝度値が直接の成分値となっている表色空間への変換を行えば輝度値を得ることができる。
【００５５】
このような異なる表色空間の間での色変換は変換式によって一義的に定まるものではなく、それぞれの成分値を座標とする色空間について相互に対応関係を求めておき、この対応関係を記憶した色変換テーブルを参照して逐次変換する必要がある。テーブルとする関係上、成分値は階調値として表され、三次元の座標軸を備えている２５６階調の場合には、約１６７０万個（２５６×２５６×２５６）の要素の色変換テーブルを持たなければならない。効率的な記憶資源の利用を考えた結果、すべての座標値についての対応関係を用意しておくのではなく、通常は適当なとびとびの格子点について対応関係を用意しておき、補間演算を併用するようにしている。この補間演算はいくつかの乗算や加算を経て可能となるものであるため、演算処理量は膨大となってくる。
【００５６】
すなわち、フルサイズの色変換テーブルを使用するのであれば処理量としては少なくなるもののテーブルサイズが非現実的となり、テーブルサイズを現実的なサイズにすれば演算処理量が非現実的となることが多い。
【００５７】
このような状況に鑑み、本実施形態においては、テレビジョンなどの場合に利用されているように、ＲＧＢの三原色から輝度を求める次式の変換式を採用している。すなわち、Ｐ点での輝度ｙp についてはＲＧＢの成分値（Ｒp,Ｇp,Ｂp ）から、
ｙp＝０．３０Ｒp＋０．５９Ｇp＋０．１１Ｂp      …（２）
とする。このようにすれば、三回の乗算と二回の加算だけで輝度値を求めることができるようになる。
【００５８】
本実施形態においては、ＲＧＢの表色空間を対象としている結果、このような変換式を採用しているが、その背景には各成分値が色の明るさを示しているので、それぞれの成分値を単独で見た場合に輝度に線形に対応しているという性質がある。従って、よりおおざっぱに言えばそれぞれの加算割合を考慮することなく単に
ｙp＝（Ｒp＋Ｇp＋Ｂp）／３          …（３）
というように簡略化することも不可能ではない。
【００５９】
このようにして間引き処理で輝度を集計すると、その分布は図１１の実線に示すようになる。従って、ステップＳ１０４にて画素数が「０」でない輝度値の数をカウントすれば利用色数を検知できる。なお、ステップＳ１０２においては輝度分布とともに彩度分布の集計も行っているがこれについては後述する。
【００６０】
このようにして利用色数を検知したら、ステップＳ１０６ではこの利用色数と所定のしきい値とを比較し、利用色数の方が多ければこの画像データは自然画であると判定する。しきい値としては、例えば「５０」色を設定しておけばよい。
自然画以外の画像データとしてビジネスグラフであるとかドロー系画像をスキャナ１１で読み込むような例が挙げられるし、あるいはコンピュータグラフィック画像がスキャナ１１から読み込まれたり、ネットワークからモデム１３ｂを介して入力されるような場合がある。
【００６１】
自然画であるならば、ステップＳ１０８では自然画としてのフラグをセットする。フラグをセットするのはこのアプリケーション２１ｄの画像処理以外でプリンタドライバ２１ｂに対しても判定結果を伝えるためである。本実施形態においては、とりあえず一つだけのしきい値を用意しておき、自然画であるか否かだけを判断しているが、利用色数の範囲でより細かな判定を行うようにしても良い。
例えば、コンピュータグラフィックスである場合でもグラデーションなどによってある程度の色数が多くなることがあるし、本来の色数はさほど多くないにもかかわらず、スキャナ１１で読み込む際にエッジ部がなまって色数が多くなることもある。従って、このようなものを自然画と非自然画との間に分類し、後述するように自然画用の画像処理は行わなくてもエッジ強調処理だけは行なうといった設定を行っても良い。
【００６２】
自然画については、ステップＳ１１０にてコントラストを拡大するとともに、ステップＳ１１２にて彩度を強調し、ステップＳ１１４ではエッジ強調を実行する。
【００６３】
本実施形態においては、輝度分布が図１１の実線に示されるように本来の再現可能な輝度分布の範囲内で一部に集中している場合にこれを再現可能な範囲内で十分に拡大する処理を意味している。
【００６４】
再現可能な輝度の範囲を「０」〜「２５５」としたときに、輝度の変換では、変換前の輝度ｙと輝度の分布範囲の最大値ｙmaxと最小値ｙminから変換先の輝度Ｙを次式に基づいて求める。
【００６５】
Ｙ＝ａｙ＋ｂ                            …（４）
ただし
ａ＝２５５／（ｙmax−ｙmin）          …（５）
ｂ＝−ａ・ｙminあるいは２５５−ａ・ｙmax      …（６）
また、上記変換式にてＹ＜０ならばＹ＝０とし、Ｙ＞２５５ならばＹ＝２５５とする。ここにおける、ａは傾きであり、ｂはオフセットといえる。この変換式によれば、あるせまい幅を持った輝度分布を再現可能な範囲まで広げることができる。
【００６６】
かかる輝度分布の拡大を行う場合、図１２に示すフローチャートを実行し、そのステップＳ２０２で輝度分布の両端を求める。自然画における輝度分布は概ね山形に表れる。むろん、その位置、形状についてはさまざまである。輝度分布の幅はこの両端をどこに決めるかによって決定されるが、単に裾野が延びて分布数が「０」となる点を両端とすることはできず、分布範囲において最も輝度の大きい側と小さい側からある分布割合だけ内側に寄った部分を分布の両端とする。本実施形態においては、この分布割合を０．５％に設定している。このように、ある分布割合だけ上端と下端をカットすることにより、ノイズなどに起因して生じている白点や黒点を無視することもできる。
【００６７】
実際の処理では処理対象となる画素数（間引き処理において選択した画素の総数）に対する０．５％を演算し、再現可能な輝度分布における上端の輝度値及び下端の輝度値から順番に内側に向かいながらそれぞれの分布数を累積し、０．５％の値となった輝度値を求める。この上端側がｙｍａｘであり、下端側がｙｍｉｎとなる。
【００６８】
本実施形態においては、輝度分布に対してこのような処理を経て上端と下端とを求めているが、統計的処理のもとで両端を求めることも可能である。例えば、輝度値の平均値に対して何％以下となったところを端部とするといった手法を採用することも可能である。
【００６９】
ところで、輝度ｙの取りうる範囲は「０」〜「２５５」でしかあり得ないため、予め輝度ｙが取りうる全ての値に対応して変換後の輝度Ｙを求めておくのが効率的であり、ステップＳ２０４にてこの対応関係を演算してテーブルとして記憶しておく。
【００７０】
この後、各画素についてステップＳ２０４にて演算したテーブルを参照して輝度の拡大を図る。ところで、ここまでは輝度を変換するための対応関係を求めてきており、例えば、ＲＧＢ座標軸における成分値（Ｒp,Ｇp,Ｂp ）についての変換関係ではなかった。しかしながら、（４）式の変換式は、このＲＧＢの成分値（Ｒp,Ｇp,Ｂp ）との対応関係においても当てはめることができる。すなわち、変換前の成分値（Ｒ，Ｇ，Ｂ）に対して変換後の成分値（Ｒ’，Ｇ’，Ｂ’）は、
Ｒ’＝ａ・Ｒ＋ｂ                        …（７）
Ｇ’＝ａ・Ｇ＋ｂ                        …（８）
Ｂ’＝ａ・Ｂ＋ｂ                        …（９）
として求めることができる。これは（４）式と（３）式とがともに線形の対応関係を示していることから明らかである。また、輝度ｙ，Ｙが階調「０」〜階調「２５５」であるのに対応してＲＧＢの各成分値（Ｒ,Ｇ,Ｂ），（Ｒ’,Ｇ’,Ｂ’）も同じ範囲となっており、上述した輝度ｙ，Ｙの変換テーブルをそのまま利用すればよいといえる。
【００７１】
従って、ステップＳ２０６では全画素の画像データ（Ｒ，Ｇ，Ｂ）について（７）〜（９）式に対応する変換テーブルを参照し、画像データ（Ｒ’,Ｇ’,Ｂ’）に変換する。そして、ステップＳ２０８では変換画素を図１３に示すように順次移動させ、ステップＳ２１０で最終画素と判断されるまで繰り返すことになる。
【００７２】
図６に示すフローチャートに戻ると、コントラスト拡大の次は、ステップＳ１１２にて彩度強調を行う。この彩度強調の処理については図１４に示している。
【００７３】
この彩度強調処理においても、予め画像データにおける彩度分布を求め、同分布から彩度強調係数Ｓを求めるようにしている。この場合、輝度分布の場合と同様、すべての画素について彩度を集計する必要もなく、ステップＳ１０２において間引いた画素について彩度を求め、集計している。画像データがその成分要素として彩度を持っていればその彩度の値を用いて分布を求めることが可能であるし、彩度が直接の成分要素となっていない画像データの場合でも、間接的には彩度を表す成分値を備えている。従って、彩度が直接の成分要素となっていない表色空間から彩度値が直接の成分値となっている表色空間への変換を行えば彩度値を得ることができる。例えば、標準表色系としてのＬｕｖ空間においては、Ｌ軸が輝度（明度）を表し、Ｕ軸及びＶ軸で色相を表している。ここにおいて、Ｕ軸及びＶ軸においては両軸の交点からの距離が彩度を表すため、実質的に（Ｕ＋Ｖ）**（１／２）が彩度となる。しかしながら、かかる変換に要する演算処理量は膨大となってくる。
【００７４】
従って、本実施形態においては、画像データとして標準的なＲＧＢの階調データを直に利用して彩度の代替値Ｘを次のようにして求めている。
【００７５】
Ｘ＝｜Ｇ＋Ｂ−２×Ｒ｜                …（１０）
本来的には彩度は、Ｒ＝Ｇ＝Ｂの場合に「０」となり、ＲＧＢの単色あるいはいずれか二色の所定割合による混合時において最大値となる。この性質から直に彩度を適切に表すのは可能であるものの、簡易な（１０）式によっても赤の単色および緑と青の混合色であるシアンであれば最大値の彩度となり、各成分が均一の場合に「０」となる。また、緑や青の単色についても最大値の半分程度には達している。
【００７６】
なお、ＲＧＢ表色空間のように各成分がそれぞれ独立して各色の成分を表すといったいわば概略対等な色相成分の成分値で示される状況においては、
Ｘ’＝｜Ｒ＋Ｂ−２×Ｇ｜              …（１１）
Ｘ”＝｜Ｇ＋Ｒ−２×Ｂ｜              …（１２）
という式にも代替可能であるが、結果としては（１０）式に従うものが最も良好であった。
【００７７】
ステップＳ１０２にて間引いた画素についてＲＧＢの画像データから（１０）式に基づいて彩度の分布をとると、彩度が最低値「０」〜最大値「５１１」の範囲で分布し、概略的には図１５に示すような分布となる。
【００７８】
集計された彩度分布に基づき、ステップＳ３０２にてこの画像についての彩度強調指数というものを決定する。集計された彩度分布が図１５に示すようになったものとすると、本実施形態においては、有効な画素数の範囲で分布数として上位の「１６％」が占める範囲を求める。そして、この範囲内での最低の彩度「Ａ」がこの画像の彩度を表すものとして次式に基づいて彩度強調指数Ｓを決定する。
【００７９】
すなわち、
Ａ＜９２なら
Ｓ＝−Ａ×（１０／９２）＋５０      …（１３）
９２≦Ａ＜１８４なら
Ｓ＝−Ａ×（１０／４６）＋６０      …（１４）
１８４≦Ａ＜２３０なら
Ｓ＝−Ａ×（１０／２３）＋１００    …（１５）
２３０≦Ａなら
Ｓ＝０                              …（１６）
とする。図１６は、この彩度「Ａ」と彩度強調指数Ｓと関係を示している。図に示すように、彩度強調指数Ｓは最大値「５０」〜最小値「０」の範囲で彩度「Ａ」が小さいときに大きく、同彩度「Ａ」が大きいときに小さくなるように徐々に変化していくことになる。
【００８０】
この実施形態においては、集計された彩度分布の範囲で上位のある割合が占める彩度を利用しているが、これに限らず、例えば、平均値を出したり、メジアンを求めて彩度強調指数Ｓを演算する根拠としても良い。ただし、彩度分布での上位のある割合をとった場合には突発的な誤差の影響が弱まるので、全体として良好な結果を得られる。
【００８１】
彩度強調指数Ｓが求められたら各画素の画像データについて彩度強調の処理を行う。この彩度強調指数Ｓに基づいて彩度を強調するにあたり、上述したように画像データが彩度のパラメータを備えているものであれば同パラメータを変換すればよいものの、今回はＲＧＢの表色空間を採用している。従って、以下にはＲＧＢの階調データをそのまま利用して彩度強調する方法について説明する。
【００８２】
ＲＧＢ表色空間のように各成分が概略対等な関係にある色相成分の成分値であるときには、Ｒ＝Ｇ＝Ｂであればグレイであって無彩度となる。従って、ＲＧＢの各成分における最小値となる成分については各画素の色相に影響を与えることなく単に彩度を低下させているにすぎないと考えれば、各成分における最小値をすべての成分値から減算し、その差分値を拡大することによって彩度を強調できるといえる。
【００８３】
まず、上述した彩度強調指数Ｓから演算に有利な彩度強調パラメータＳratio を、
Ｓratio＝（Ｓ＋１００）／１００       …（１７）
として求める。この場合、彩度強調指数Ｓ＝０のときに彩度強調パラメータＳratio ＝１となって彩度強調されない。次に、ＲＧＢ階調データの各成分（Ｒ，Ｇ，Ｂ）における青（Ｂ）の成分値が最小値であったとすると、この彩度強調パラメータＳratio を使用して次のように変換する。
【００８４】
Ｒ’＝Ｂ＋（Ｒ−Ｂ）×Ｓratio         …（１８）
Ｇ’＝Ｂ＋（Ｇ−Ｂ）×Ｓratio         …（１９）
Ｂ’＝Ｂ                              …（２０）
このようにすれば、少なくともＲＧＢ表色空間とＬｕｖ空間との間での色変換が不要となるが、この場合には彩度を強調すると輝度も向上して全体的に明るくなるという傾向がある。従って、各成分値から輝度の相当値を減算した差分値を対象として変換を行うことにする。
【００８５】
輝度については、上述したようなＲＧＢから直に求める変換式を利用する。
【００８６】
一方、彩度強調は、
Ｒ’＝Ｒ＋△Ｒ                        …（２１）
Ｇ’＝Ｇ＋△Ｇ                        …（２２）
Ｂ’＝Ｂ＋△Ｂ                        …（２３）
とする。この加減値△Ｒ，△Ｇ，△Ｂは輝度との差分値に基づいて次式のように求める。すなわち、
△Ｒ＝（Ｒ−Ｙ）×Ｓratio             …（２４）
△Ｇ＝（Ｇ−Ｙ）×Ｓratio             …（２５）
△Ｂ＝（Ｂ−Ｙ）×Ｓratio             …（２６）
となり、この結果、
Ｒ’＝Ｒ＋（Ｒ−Ｙ）×Ｓratio         …（２７）
Ｇ’＝Ｇ＋（Ｇ−Ｙ）×Ｓratio         …（２８）
Ｂ’＝Ｂ＋（Ｂ−Ｙ）×Ｓratio         …（２９）
として変換可能となる。なお、輝度の保存は次式から明らかである。
【００８７】
2003085546.tif 000001
また、入力がグレー（Ｒ＝Ｇ＝Ｂ）のときには、輝度Ｙ＝Ｒ＝Ｇ＝Ｂとなるので、加減値△Ｒ＝△Ｇ＝△Ｂ＝０となり、無彩色に色が付くこともない。（２７）式〜（２９）式を利用すれば輝度が保存され、彩度を強調しても全体的に明るくなることはない。
【００８８】
ステップＳ３０４にて画像データを変換したら、ステップＳ３０６では図１３に示すように変換画素を移動させ、ステップＳ３０８にて最終画素と判断されるまで繰り返す。
【００８９】
彩度強調を終えたら、図６に示すフローチャートのステップＳ１１４にてエッジ強調処理を実行する。このエッジ強調の処理については図１７に示している。
【００９０】
エッジ強調処理では、ステップＳ４０２にて入力画像における横方向の画素数（ｗｉｄｔｈ）と縦方向の画素数（ｈｅｉｇｈｔ）とを乗算して画素数を得、ステップＳ４０４にて同検知された画素数に応じたエッジ強調度を決定する。エッジ強調度はエッジ強調の手法に大きく依存するため、まず、本実施形態におけるエッジ強調の手法について説明する。本実施形態においては、図１８に示すアンシャープマスク４０を使用する。このアンシャープマスク４０は、中央の「１００」の値をマトリクス状の画像データにおける注目画素Ｐｉｊの重み付けとし、その周縁画素に対して同マスクの升目における数値に対応した重み付けとして積算するのに利用され、アンシャープマスク４０を利用するのであれば、（３２）式に基づいて積算する。
【００９１】
【数１】
2003085546.tif 000002
【００９２】
（３２）式において、「６３２」とは重み付け係数の合計値であり、Ｍｉｊはアンシャープマスクの升目に記載されている重み係数であり、Ｐｉｊは各画素の画像データである。なお、ｉｊについては縦列と横列の座標値を示している。
【００９３】
エッジ強調後の画像データをＱｉｊとすると、エッジ強調演算は（３３）式に基づいて演算される。
【００９４】
Ｑｉｊ＝Ｐｉｊ＋Ｃ×｛Ｐｉｊ−Ｐ’ｉｊ｝      …（３３）
（３３）式の意味するところは次のようになる。Ｐ’ｉｊは注目画素に対して周縁画素の重み付けを低くして加算したものであるから、いわゆる「なまった（アンシャープ）」画像データとしていることになる。このようにしてなまらせたものはいわゆるローパスフィルタをかけたものと同様の意味あいを持つ。従って、「Ｐｉｊ−Ｐ’ｉｊ」とは本来の全成分から低周波成分を引いたことになってハイパスフィルタをかけたものと同様の意味あいを持つ。そして、ハイパスフィルタを通過したこの高周波成分に対してエッジ強調係数Ｃを乗算して「Ｐｉｊ」に加えれば同エッジ強調係数に比例して高周波成分を増したことになり、エッジが強調される。
【００９５】
この意味からも、エッジ強調度はエッジ強調係数Ｃによって変更可能となる。
従って、画素数が大きければエッジ強調係数Ｃを大きくするし、画素数が小さければエッジ強調係数Ｃを小さくする。画像の幅と高さがｗｉｄｔｈ×ｈｅｉｇｈｔであるときに、Ｅｒａｔｉｏを（３４）で表すとする。
【００９６】
Ｅｒａｔｉｏ＝ｍｉｎ（ｗｉｄｔｈ，ｈｅｉｇｈｔ）／６４０＋１  …（３４）
そして、得られたＥｒａｔｉｏについて、次のようにエッジ強調係数Ｃを決定した。
【００９７】
Ｅｒａｔｉｏ＜１  なら  Ｃ＝１
１≦Ｅｒａｔｉｏ＜３  なら  Ｃ＝２
３≦Ｅｒａｔｉｏ      なら  Ｃ＝３
すなわち、短い方の画素が６４０画素未満であればエッジ強調係数Ｃは「１」、６４０画素以上で１９２０画素未満であればエッジ強調係数Ｃは「２」、１９２０画素以上であればエッジ強調係数Ｃを「３」としている。本実施形態においては、このようにエッジ強調係数Ｃを設定しているが、ドット密度によっては画像の大きさが変化するのでこのエッジ強調係数を比例的に変更するようにしても良い。
【００９８】
なお、エッジ強調度は、アンシャープマスクの大きさによっても変化するため、画素数が大きければ大きなサイズのアンシャープマスクを利用すればよいし、画素数が小さければ小さなサイズのアンシャープマスクを利用すればよい。むろん、エッジ強調係数Ｃとアンシャープマスク４０の両方を変更するようにしてもよいし、いずれか一方だけでエッジの強調度を変更しても良いことはいうまでもない。また、アンシャープマスク４０は図からも明らかなように、中央部にて最も重み付けが大きく、周縁に向かうにつれて徐々に重み付けの数値が小さくなっている。この変化具合は必ずしも固定的なものではなく、適宜変更可能である。
【００９９】
ところで、図１８に示す「７×７」のアンシャープマスク４０において最外周の升目の重み付けは「０」あるいは「１」であり、「０」については重み付けの乗算が無意味であるし、「１」の重み付けは升目の全合計値の「６３２」と比較すれば非常にわずかな重みしか持たない。従って、本実施形態においては、「７×７」のアンシャープマスク４０の代わりに、図１９に示す「５×５」のアンシャープマスク４１を使用している。同図に示すアンシャープマスク４１は「７×７」のアンシャープマスク４０の最外周を省略したものであり、内側の「５×５」のマスク部分で重み付けは一致している。これにより、具体的な処理量は約半分になる。
【０１００】
さらに、本実施形態においては、次のようにして演算量を低減させている。ＲＧＢの階調データを対象とする場合、それぞれの成分値は各色成分の輝度（明度）に対応している。従って、（３３）式の演算も本来はＲＧＢの各階調データに対して個別に行わなければならない。しかるに、アンシャープマスク４０の升目の数だけの乗算と加算とを繰り返すとなるとこのような各成分ごとの個別の演算では演算量が多いと言わざるを得ない。
【０１０１】
一方、かかるエッジ強調は色相を保持して輝度を変えることによって実施可能なものともいえる。従って、ＲＧＢの各成分値に対して演算するのではなく、輝度を求めて演算すれば処理量が低減するといえる。上述した輝度Ｙの変換式を利用すれば、（３２）式と（３３）式は（３５）式と（３６）式のように書き換えられる。
【０１０２】
【数２】
2003085546.tif 000003
【０１０３】
Ｙ”ｉｊ＝Ｙｉｊ＋Ｃ×｛Ｙｉｊ−Ｙ’ｉｊ｝    …（３６）
さらに、Ｙｉｊ−Ｙ’ｉｊを（３７）式のように置き換えれば、
ｄｅｌｔａ＝｛Ｙｉｊ−Ｙ’ｉｊ｝×Ｃ      …（３７）
変換後のＲ’Ｇ’Ｂ’は（３８）式のように演算可能となる。
【０１０４】
Ｒ’＝Ｒ＋ｄｅｌｔａ
Ｇ’＝Ｇ＋ｄｅｌｔａ
Ｂ’＝Ｂ＋ｄｅｌｔａ                      …（３８）
このようにすれば乗算と加算は１／３となるので、全体の処理時間としても５０〜７０％程度の減少が可能となる。また、変換結果は色ノイズの強調がなくなり、画質が向上した。
【０１０５】
エッジ強調の処理は、マトリクス状の画像データにおける各画素についてアンシャープマスク４０を利用してエッジ強調後の画像データ（Ｒ’Ｇ’Ｂ’）を算出していく処理に相当する。ステップＳ４０６〜ステップＳ４１２では各画素についてエッジ強調処理を繰り返すループ処理を表しており、ループ処理内のステップＳ４１０で図１３に示すようにして水平方向及び垂直方向へ順次注目画素を移動させ、ステップＳ４１２で最終画素と判断されるまで繰り返すようになっている。
【０１０６】
ただし、（３２）式の演算は、注目画素の周囲の画素に対して、採用するアンシャープマスク４０の升目数だけ乗算演算と加算演算が必要になり、処理量としては多大になる。一方、エッジ強調が必要になる状況を考えるといわゆる画像のエッジ部分であるから、隣接する画素同士の間で画像データが大きく異なる場所に限られる。このような状況から隣接する画素との間で画像データの差が大きな場合に演算すれば足りるといえる。
【０１０７】
これを具体化するため、ステップＳ４０６では隣接する画素同士の間で画像データの比較を行い、差が大きい場合にのみステップＳ４０８におけるアンシャープマスクの演算を行うようにしている。このようにすれば、殆どのエッジ部分でない画像データ部分でアンシャープマスクの演算を行う必要がなくなり、処理が激減する。
【０１０８】
また、図２０に示すように、本来であれば注目画素に対応してその周囲には八つの画素があるので、八回の比較が必要となる。しかし、例えば図の中央の注目画素と「５」の升目の画素とを比較する場合、実は、その前に注目画素が同「５」の升目であったときに「１」の升目の画素との比較で一度行われていることが分かる。従って、少なくとも隣接する画素同士の比較が一度だけ行われるようにしておくだけでも十分とすれば、互いに反対方向となる組み合わせである「１」と「５」、「２」と「６」、「３」と「７」、「４」と「８」についてはどちらか一方だけでも十分であり、上記組み合わせの四つの方向について比較を行うこととしている。
【０１０９】
以上のようにして利用色数が多い自然画については、自動的に最適な範囲でコントラストが拡大されるとともに、彩度強調やエッジ強調も当該画像に最適な強調度で自動的に行われる。むろん、自然画でない場合にはこれらは不要なものとしてスキップされる。
【０１１０】
これまでは、アプリケーション２１ｄにおける画像処理において利用色数から画像データの種類を判定して最適な画像処理を行ってきたが、プリント処理においても判定された画像の種類に応じて同様に最適な処理が選択される。
【０１１１】
図２１にはプリント処理に対応するフローチャートを示している。ステップＳ５０２にてラスタデータを生成した後、ステップＳ５０４にて上述したフラグに基づいて画像データの種類を判別し、二種類用意されている色変換処理のステップＳ５０６あるいはステップＳ５０８のいずれかを実行する。その後、ステップＳ５１０にて二値化し、ステップＳ５１２にて印刷データを出力する。
【０１１２】
ステップＳ５０６で行われるのは補間演算処理とキャッシュ処理とを組み合わせた色変換処理であり、その手順を図２２以下に示している。同図に示す補間演算では実質的に演算処理する八点補間演算とともに実質的な演算処理をすることなく色変換するキャッシングを合わせて行っている。
【０１１３】
八点補間演算については、図２３に演算の原理を示している。変換元の表色空間でＲＧＢ階調データを成分値とする座標Ｐを取り囲む八点の格子点からなる立法体を想定したとき、立方体のｋ番目の頂点での変換値をＤｋとするとともに立方体の体積をＶとすると、立方体の内点Ｐでの変換値Ｐｘは当該Ｐ点で分割される図示のような八つの小直方体の体積Ｖｋの比率による加重から次式で補間できる。
【０１１４】
【数３】
2003085546.tif 000004
【０１１５】
従って、当該座標を取り囲む八つの格子点を特定し、各格子点でのＣＭＹの階調データのそれぞれについて演算を実行することになる。
【０１１６】
ところで、図２２に示すフローチャートを参照すると、当該補間演算の処理ルーチンでは、必ずしもこの八点補間演算を実行するのではなく、図２４に示すようなキャッシュテーブルを参照して八点補間演算を省略するためのキャッシングを行っている。このキャッシュテーブルは変換元のＲＧＢの階調データを成分値として八点補間演算を実行したときに得られたＣＭＹの階調データを保存しておくための一定容量のテーブルである。最初、このテーブルは空白であるもののステップＳ６０６にて八点補間演算を実行した直後に求められたＣＭＹの階調データをステップＳ６０８にて追加更新するようにしており、図２１に示すステップＳ５０６にて「キャッシュ＋補間演算」の処理ルーチンが実行されたときには、最初のステップＳ６０２にて変換元のＲＧＢの階調データを成分値として当該キャッシュテーブル内を検索し、キャッシュヒットした（検索で発見できた）場合には、ステップＳ６１２にて当該記憶されているＣＭＹの階調データを参照するようにしている。
【０１１７】
色変換処理ではラスタライズされたドットマトリクスの各画素についてＲＧＢの階調データをＣＭＹの階調データに変換していくため、ステップＳ６１０にて最終の画素となるまで繰り返している。
【０１１８】
このような補間演算は演算量が多いものの、自然画でない場合は利用色数が少ないので、一回の演算結果は何度も利用可能である。従って、画像データの種類が自然画でないと判定された場合においては、この「キャッシュ＋補間演算」の処理は極めて有効といえる。
【０１１９】
次に、もう一方の色変換処理であるステップＳ５０８のプレ階調変換について説明する。
【０１２０】
図２５のフローチャートと図２６の画素の誤差分配を示す図はプレ階調変換の概略を説明するためのものである。上述した八点補間の基本式は、八回の乗算と七回の加算が必要となるため、ハードウェア化する場合でもソフトウェアで実行する場合でも資源および時間の負担が大きい。このため、より簡易に色変換を行うべく、本出願人による特開平７−３０７７２号公報では補間演算に代えて階調変換する技術を開示している。
【０１２１】
同公報に開示したプレ階調変換は、いわゆる誤差拡散などの手法を用いることにより、画素の階調データを格子座標に一致するように階調変換するものであり、対象となる画素について直近の格子座標を探し（Ｓ７０２）、格子座標との誤差（ｄｇ）を算出し（Ｓ７０４）、その誤差（ｄｇ）を近隣画素へ分配する（Ｓ７０６）だけの処理となっている。従って、乗算と加算を繰り返す場合に比べて演算の負担を極めて簡素化できる。補間演算することなく精度を保持できる理由については同公報に詳しく述べられているのでここでは詳述しない。なお、色変換後にも二値化のための階調変換を行うことになるため、先に行われる階調変換をプレ階調変換と呼ぶ。
【０１２２】
このプレ階調変換でもラスタライズされたドットマトリクスの各画素について階調変換していくため、ステップＳ７０８にて最終の画素となるまで繰り返す。
そして、続くステップＳ７１０で階調変換したＲＧＢの階調データで色変換テーブルを参照するが、このときは必ず格子点となっているため補間演算をする必要が無く、読み出しの処理は極めて容易である。
【０１２３】
自然画のように利用する色数が極めて多い場合には上述した「キャッシュ＋補間演算」の処理においてもヒットする確率が低くなってくるため、補間演算の回数が多くなる。しかしながら、このようなプレ階調変換では全画素について誤差拡散などの処理を実行しなければならないものの、一回の処理は単純であるため、全体的には処理量が少ない。従って、利用色数が多く、自然画であると判定された画像データについてはこのようなプレ階調変換による色変換処理を選択することによって全体の処理量を低減させることが可能となる。
【０１２４】
本実施形態においては、利用色数の少ない非自然画については「キャッシュ＋補間演算」の色変換処理を採用し、利用色数が多い自然画についてはプレ階調変換による色変換処理を採用しているが、かかる組み合わせに限られず、他の組み合わせを採用することも可能である。すなわち、画像の種類に応じて最も適切な色変換処理を自由に設定して自動的にこれを利用するようにしても良い。
【０１２５】
このように、画像データに対して間引き処理によって選択した各画素について輝度の分布を集計することにより（ステップＳ１０２）、利用している色数をカウントすることが可能となり（ステップＳ１０４）、その結果、利用している色数が多ければ画像データの種類として自然画であると判断することができ、また、そのような判定結果に基づいて自然画に適用して好適なコントラスト拡大処理（ステップＳ１１０）や彩度強調処理（ステップＳ１１２）やエッジ強調処理（Ｓ１１４）を自動的に選択可能となるし、さらに、プリント処理においても自然画であればプレ階調変換による色変換を行うし（ステップＳ５０８）、自然画でない場合には「キャッシュ＋補間演算」の色変換を行い（ステップＳ５０６）、自動的に処理量の少ない色変換処理を選択することが可能となる。
【図面の簡単な説明】
【図１】本発明の一実施形態にかかる画像処理装置の具体的ハードウェア構成例のブロック図である。
【図２】コンピュータの内部で行なわれる処理を示すブロック図である。
【図３】画像処理手段のより詳細な構成を示す概略ブロック図である。
【図４】プリンタドライバのより詳細な構成を示す概略ブロック図である。
【図５】本発明の画像処理装置の他の適用例を示す概略ブロック図である。
【図６】本発明におけるアプリケーションの画像処理を示すフローチャートである。
【図７】変換元の画像を示す図である。
【図８】サンプリング周期を示す図である。
【図９】サンプリング画素数を示す図である。
【図１０】変換元の画像とサンプリングされる画素の関係を示す図である。
【図１１】集計された輝度分布と拡大される輝度分布を示す図である。
【図１２】画像処理として用意されたコントラスト拡大処理を示すフローチャートである。
【図１３】注目画素の移動方向を示す図である。
【図１４】画像処理として用意された彩度強調処理を示すフローチャートである。
【図１５】彩度分布の集計状態の概略図である。
【図１６】彩度Ａと彩度強調指数Ｓとの関係を示す図である。
【図１７】画像処理として用意されたエッジ強調処理を示すフローチャートである。
【図１８】アンシャープマスクを示す図である。
【図１９】アンシャープマスクの改良版を示す図である。
【図２０】画像データにおいて隣接画素との比較方向を示す図である。
【図２１】プリンタドライバの印刷処理の手順を示すフローチャートである。
【図２２】キャッシュ＋補間演算による色変換処理のフローチャートである。
【図２３】八点補間演算の概念を示す図である。
【図２４】キャッシュテーブルの内容を示す図である。
【図２５】プレ階調変換処理のフローチャートである。
【図２６】各画素の誤差拡散の様子を示す図である。
【符号の説明】
１０…画像入力装置
２０…画像処理装置
２１ａ…オペレーティングシステム
２１ｂ…プリンタドライバ
２１ｂ１…ラスタライザ
２１ｂ２…色変換部
２１ｂ３…階調変換部
２１ｃ…ビデオドライバ
２１ｄ…アプリケーション
２１ｄ１…色数検知手段
２１ｄ２…画像判定手段
２１ｄ３…画像処理手段
３０…画像出力装置