JP4171902B2 - Object pixel extraction device, object pixel extraction method, medium on which object pixel extraction program is recorded, and object pixel extraction program - Google Patents
Object pixel extraction device, object pixel extraction method, medium on which object pixel extraction program is recorded, and object pixel extraction program Download PDFInfo
- Publication number
- JP4171902B2 JP4171902B2 JP2003157882A JP2003157882A JP4171902B2 JP 4171902 B2 JP4171902 B2 JP 4171902B2 JP 2003157882 A JP2003157882 A JP 2003157882A JP 2003157882 A JP2003157882 A JP 2003157882A JP 4171902 B2 JP4171902 B2 JP 4171902B2
- Authority
- JP
- Japan
- Prior art keywords
- image
- interpolation
- image data
- pixels
- pixel
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000605 extraction Methods 0.000 title claims description 12
- 239000003086 colorant Substances 0.000 claims description 44
- 239000011159 matrix material Substances 0.000 claims description 26
- 238000000034 method Methods 0.000 description 423
- 238000012545 processing Methods 0.000 description 298
- 230000008569 process Effects 0.000 description 286
- 230000008859 change Effects 0.000 description 179
- 238000010586 diagram Methods 0.000 description 57
- 238000011156 evaluation Methods 0.000 description 32
- 238000006243 chemical reaction Methods 0.000 description 31
- 238000004364 calculation method Methods 0.000 description 26
- 230000001965 increasing effect Effects 0.000 description 25
- 230000006870 function Effects 0.000 description 20
- 239000000470 constituent Substances 0.000 description 17
- 238000005070 sampling Methods 0.000 description 11
- 238000007792 addition Methods 0.000 description 8
- 238000012888 cubic function Methods 0.000 description 6
- 238000003708 edge detection Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 6
- 238000001228 spectrum Methods 0.000 description 6
- 230000002776 aggregation Effects 0.000 description 5
- 238000004220 aggregation Methods 0.000 description 5
- 230000006866 deterioration Effects 0.000 description 4
- 239000013598 vector Substances 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 239000000976 ink Substances 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000009499 grossing Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000012886 linear function Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 235000009508 confectionery Nutrition 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000002542 deteriorative effect Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4007—Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
- Editing Of Facsimile Originals (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、オブジェクト画素抽出装置、オブジェクト画素抽出方法、オブジェクト画素抽出プログラムを記録した媒体およびオブジェクト画素抽出プログラムに関する。
【0002】
【従来の技術】
コンピュータなどで画像を扱う際には、画像をドットマトリクス状の画素で表現し、各画素を階調値で表している。例えば、コンピュータの画面で水平方向に640ドット、垂直方向に480ドットの画素で写真やコンピュータグラフィックスを表示することが多い。
【0003】
一方、カラープリンタの性能向上がめざましく、そのドット密度は720dot/inch(dpi)というように極めて高精度となっている。すると、640×480ドットの画像をドット単位で対応させて印刷させようとすると極めて小さくなってしまう。この場合、階調値も異なる上、解像度の意味合い自体が異なるのであるから、ドット間を補間して印刷用のデータに変換しなければならない。
【0004】
従来、このような場合にドットを補間する手法として、最近隣内挿法(ニアリストネイバ補間:以下、ニアリスト法と呼ぶ)や、3次たたみ込み内挿法(キュービックコンボリューション補間:以下、キュービック法と呼ぶ)などの手法が知られている。また、特開平6−225140号公報にはドットを補間したときの縁部のスムージングを行うにあたり、予め縁部がスムーズとなるような拡大形態となるようにドットパターンを用意しておく技術が開示されている。
【0005】
【発明が解決しようとする課題】
上述した従来の補間技術においては、次のような課題があった。
ニアリスト法やキュービック法などの各種の手法にはそれぞれに得失があるが、利用者がそれを選択するのは難しく、また、どちらか一方に固定したとすれば、不得手な画像に対して補間結果の品質が低下する。
特開平6−225140号公報に開示された発明においては、予めパターンを用意しておくことから補間倍率が固定的にならざるを得ないし、カラーの画像を前提とするとパターンの数が膨大となって予め用意しておくこと自体が困難である。
【0006】
本発明は、上記課題にかんがみてなされたもので、カラー画像を含めて効率よく補間するに際してオブジェクトの画素を抽出することが可能なオブジェクト画素抽出装置、オブジェクト画素抽出方法、オブジェクト画素抽出プログラムを記録した媒体およびオブジェクト画素抽出プログラムの提供を目的とする。
【0007】
【課題を解決するための手段】
本発明で提供されるオブジェクト画素抽出装置は、ドットマトリクス状の画素で表現した画像の画像データを取得する画像データ取得手段と、上記画像データについて、画像の中の中央部分から多くの画素が抽出されるように画素を抽出し、抽出した画素を対象として輝度分布を求めるとともに、輝度がとりうる階調範囲の全輝度値のうち当該輝度分布における分布数が0ではない輝度値の数を色数とみなすことにより利用色数を算出する手段とを具備する構成としている。本発明によれば、画像の中央部分から多くの画素が抽出されるような仕組みとすることでオブジェクトの画素がより抽出されやすくなる。
また、本願で提供される画像データ補間装置は、画像をドットマトリクス状の画素で表現した画像データを取得する画像データ取得手段と、上記画像データにおける構成画素数を増やす補間処理を行うにあたり複数の補間処理の中から選択して実行可能な画素補間手段と、上記画像データについての上記補間処理に関連する特徴量を取得する特徴量取得手段と、この特徴量取得手段によって取得された特徴量に対応して最適な補間結果を得ることが可能な補間処理を選択して上記画素補間手段に実行させる補間処理選択手段とを具備する構成とされている。
【0008】
このように構成した本発明においては、画像をドットマトリクス状の画素で表現した画像データの構成画素数を増やす補間処理を行うにあたり、画素補間手段は複数の補間処理の中からいずれかを選択して実行可能となっており、画像データ取得手段が対象となる画像データを取得すると、特徴量取得手段は同画像データについての上記補間処理に関連する特徴量を取得し、補間処理選択手段はこの特徴量取得手段によって取得された特徴量に対応して最適な補間結果を得ることが可能な補間処理を選択して上記画素補間手段に実行させる。すなわち、自ら画像の特徴量を取得して最適な補間処理を選択する。
【0009】
このように、画像の特徴に応じて最適な補間処理を選択する手法は必ずしも実体のある装置に限られる必要はなく、その方法としても機能することは容易に理解できる。このため、本発明で提供される画像データ補間方法は、画像をドットマトリクス状の画素で表現した画像データについて構成画素数を増やす補間処理を行うにあたり、上記画像データを取得する工程と、上記画像データについての上記補間処理に関連する特徴量を取得する工程と、この取得された特徴量に対応して複数の補間処理の中から最適な補間結果を得ることが可能な補間処理を選択する工程と、この複数の補間処理の中から選択された補間処理を実行する工程とを具備する構成とされている。
【0010】
すなわち、必ずしも実体のある装置に限らず、その方法としても有効であることに相違はない。
このような画像データ補間装置は単独で存在する場合もあるし、ある機器に組み込まれた状態で利用されることもあるなど、発明の思想としてはこれに限らず、各種の態様を含む。従って、ソフトウェアであったりハードウェアであったりするなど、適宜、変更可能である。
発明の思想の具現化例として画像データ補間装置のソフトウェアとなる場合には、かかるソフトウェアを記録した記録媒体上においても本発明は当然に存在し、利用されるといわざるをえない。
【0011】
その一例として、本発明で提供されるコンピュータにて補間処理を実行させる画像データ補間プログラムを記録した媒体は、画像をドットマトリクス状の画素で表現した画像データについて構成画素数を増やす補間処理を行うにあたり、上記画像データを取得するステップと、上記画像データについての上記補間処理に関連する特徴量を取得するステップと、この取得された特徴量に対応して複数の補間処理の中から最適な補間結果を得ることが可能な補間処理を選択するステップと、この複数の補間処理の中から選択された補間処理を実行するステップとをコンピュータに実行させる構成としている。
【0012】
むろん、その記録媒体は、磁気記録媒体であってもよいし光磁気記録媒体であってもよいし、今後開発されるいかなる記録媒体においても全く同様に考えることができる。また、一次複製品、二次複製品などの複製段階については全く問う余地無く同等である。その他、供給方法として通信回線を利用して行なう場合でも本発明が利用されていることにはかわりない。
さらに、一部がソフトウェアであって、一部がハードウェアで実現されている場合においても発明の思想において全く異なるものではなく、一部を記録媒体上に記憶しておいて必要に応じて適宜読み込まれるような形態のものとしてあってもよい。
なお、本発明をソフトウェアで実施する場合、発明がプログラムを記録した媒体として実現されるのみならず、本発明がプログラム自体として実現されるのは当然であり、プログラム自体も本発明に含まれる。
【0013】
ここで、画像データは画像をドットマトリクス状の画素で表現したものであり、各画素についてデータで表したものであればよく、カラー画像であっても良いし、モノクロ画像であってもよい。また、階調値は二階調のものであってもよいし、多階調のものであっても良い。
画像データ取得手段は、かかる画像データを取得するものであり、上記画素補間手段が構成画素を増やすための補間処理を行うにあたり、対象となる画像データを保持するようなものであればよい。従って、その取得手法は特に限定されるものではなく、各種のものを採用可能である。例えば、インターフェイスを介して外部機器から取得するものであってもよいし、撮像手段を備えて画像を撮像するものであっても良い。また、コンピュータグラフィックアプリケーションを実行してマウスやキーボードから入力するものであってもよい。
【0014】
画素補間手段は、各種の手法により複数の補間処理を選択可能なものであればよく、これは実質的に補間処理結果が異なる選択肢を備えるものであればよい。従って、全ての選択肢が独立した補間手法である必要はない。
その一例として、上記画素補間手段は、上記補間処理の選択肢として複数の補間処理を重ねて実行する補間処理を有する構成としてあるすることもできる。
このように構成した場合には、上記画素補間手段が補間処理の選択肢の一つとして複数の補間処理を重ねて実行する。すなわち、最初にある補間処理で画素を補間した後、重ねて別の補間処理で画素を補間する。これにより独立した補間処理としては二種類であっても、それを重ねて行う処理も含めて三種類の選択肢といえる。
【0015】
従って、補間処理の対応例として複数の補間処理を重ねて実行することが可能であるので、補間処理のバリエーションを増やすことができる。
また、実行する補間処理は全画素について一定のものに限る必要もない。その一例として、上記特徴量取得手段は、画像の一部の領域ごとに特徴量を取得し、上記補間処理選択手段は、当該領域毎に取得された特徴量に基づいて上記画素補間手段における補間処理を選択して実行させる構成とすることもできる。
【0016】
このように構成した場合には、上記特徴量取得手段が画像の一部の領域ごとに特徴量を取得する。各補間処理の得失によっては一律に適用することが好ましいものもあればそうでないものもある。そして、一律でなくても構わない場合にはそれぞれの特長を活かすことが好ましい。このため、一部の領域毎に取得された特徴量に基づいて上記補間処理選択手段は上記画素補間手段における補間処理を選択して実行させる。
【0017】
例えば、画像に変化のないところでは単純な補間処理を採用したとしても画質の劣化は分かりにくいが、変化の激しいところでは補間処理の手法が単純であると画質の劣化が分かりやすくなってしまう。従って、画素の補間は既存の画素の間に画素を増やすことになるので増やす画素について補間処理を適宜変更することが可能である。
従って、画像全体に一律の補間処理を施す必要が無くなり、総合的な意味で最適な結果を得ることが可能となる。
【0018】
補間処理を選択するのは補間処理に応じて補間結果が異なるからであり、補間手法を選択する鍵となる特徴量もさまざまである。その一例として、上記画素補間手段は、自然画と非自然画のそれぞれに最適な補間処理を実行可能であり、上記特徴量取得手段は、上記画像データが表す画像が自然画が非自然画であるかを判定する特徴量を取得し、上記補間処理選択手段は、同特徴量に基づいて画像が自然画であると判定されるときに上記画素補間手段にて自然画に最適な補間処理を実行させるとともに非自然画であると判定されるときに上記画素補間手段にて非自然画に最適な補間処理を実行させる構成とすることもできる。
【0019】
このように構成した場合には、その前提として上記画素補間手段が自然画と非自然画のそれぞれに最適な補間処理を実行可能であることとすると、上記画像データが表す画像が自然画か非自然画であるかを判断し得る特徴量を上記特徴量取得手段が取得し、上記補間処理選択手段は、同特徴量に基づいて画像が自然画であると判定されるときに上記画素補間手段にて自然画に最適な補間処理を実行させるとともに非自然画であると判定されるときに上記画素補間手段にて非自然画に最適な補間処理を実行させる。
【0020】
従って、身近な処理対象である自然画と非自然画とに応じた最適な補間処理を選択することができるようになる。
自然画とはいわゆる実写画像のようなものを意味し、非自然画はビジネスグラフに代表されるコンピュータグラフィックスなどを意味する。特徴的には自然画であれば多色を利用していると考えられるし、非自然画であれば利用色数は少ないといえる。むろんこの他に見出される特徴に対応するものであってもよいが、画素補間手段はこのような特徴的な差異を有する自然画と非自然画のそれぞれに最適な補間処理を実行可能となっている。
【0021】
より具体的には、上記画素補間手段は、非自然画に対して最近隣内挿法による補間処理を実行するとともに自然画に対して3次たたみ込み内挿法による補間処理を実行する構成とすることができる。
このようにすれば、非自然画の場合に最近隣内挿法による高速処理というメリットが得られ、自然画の場合に3次たたみ込み内挿法によるシャープさの保持というメリットが得られる。
非自然画と自然画とでは画素あたりの表現量の多少に差が出てくることが多く、最近隣内挿法は処理が単純であるために高速処理が可能である反面、自然画に対しては不自然な感じが表れることになりかねない。一方、3次たたみ込み内挿法はシャープさを保持できるものの処理は複雑であり、補間処理に要する演算負荷が大きく、処理時間が多くかかるといえる。
【0022】
このような得失を前提として、非自然画に対して最近隣内挿法による補間処理を実行することになるので、処理の高速化が期待でき、自然画に対して3次たたみ込み内挿法による補間処理を実行するのでシャープさが確保されることになる。
特徴量取得手段は画像データについての特徴量を取得するが、この特徴量自体は補間処理に関連する性質のものである。上述したようにその一例としては自然画であるか非自然画であるかといったことを判定することにより得られるが、その取得手法はさまざまである。
【0023】
その一例として、上記特徴量取得手段は、取得された画像データにおける各画素のデータを所定の基準で集計して当該画像データが表す画像の種類を判定する特徴量を取得する構成とすることもできる。
このように構成した場合には、特徴量取得手段が各画素のデータを所定の基準で集計する。すなわち、画像データ自身からその画像の内容の種類を判定する特徴量を取得する。むろん、集計手法は各種の統計手法などを採用可能であるが、ヒストグラムなどもその一例である。
【0024】
このようにすれば、画像データを集計して画像の種類を判定するので、他の情報が無い場合でも確実に最適な補間処理を選択することができる。
集計するデータとしては、例えば、利用色数といったものが上げられる。上述したようにコンピュータグラフィックスでは描画する人間が色を指定すると考えると、さほど沢山の色を利用できない。特に、ビジネスグラフなどではその傾向が強く表れる。一方、自然画であれば一色のものであっても光線の加減で多色となり得、利用色数は極端に多くなる。従って、画像データについて利用色数を集計すればその画像が自然画か非自然画かといったことを判定できることになる。
【0025】
この場合の利用色数は厳密に集計する必要もない。例えば、各画素についての輝度のヒストグラムを集計し、各輝度の利用頻度から利用色数の多少を判定するようにしても良い。自然画について輝度のヒストグラムと利用色数との関連性は見出しにくいが、ビジネスグラフなどを想定すると簡易に理解できる。ビジネスグラフのようなものは利用色数が少ないし、塗りつぶしのグラフなどを考えても数色しか利用しないことが多い。この場合、輝度のヒストグラムはスペクトル状となって表れる。異なる色において輝度が一致することもあり得るので、必ずしも輝度の利用頻度が利用色数とは一致しないが、多いか少ないかは容易に理解できる。例えば、自然画であるとすると、陰影などをがあるので利用される輝度は確実に多くなり、ヒストグラムもスペクトル状というよりは、連続した曲線のように表れるはずである。
【0026】
また、この場合に輝度自体も正確でなくて構わないのは、同様の趣旨から明らかである。例えば、RGBの画像データについての正確な輝度は、通常、演算だけで求められるものではない。しかしながら、テレビ放送などでは単純な重み付け加算でRGBから輝度を得ている。すなわち、このような簡易的な手法も利用可能である。
ヒストグラムがスペクトル状となるか曲線状となるかといったことも集計結果から導き出されるものであり、それに基づいて自然画であるか非自然画であるかを判定して特徴量と判断することもできる。また、自然画であるか否かという観点以外にも明るい画像であるか否かといった特徴量として取得することも可能である。すなわち、明るい画像に対して好適な補間処理と、暗い画像に対して好適な補間処理がある場合にはこれらを選択することが可能となる。
【0027】
また、各画素のデータの変化度合いというものを集計することも可能である。コンピュータグラフィックスで絵を描いた場合、利用者が描いただけの変化度合いとなるが、風景を撮影した自然画であればその情報量は各段に多く、それは画素の変化度合いの大きさに表れてくる。従って、画素間の変化度合いからも画像の種類を判定することが可能となる。
一方、特徴量取得手段は画像を判定するのが目的であるから、判定するのに必要な程度でだけ画像データを集計すればよいといえる。この意味で、上記特徴量取得手段は、上記画像データを構成する一部の画素についての上記データを抽出して集計する構成とすることもできる。
【0028】
このように構成した場合には、上記画像データを構成する一部の画素についてだけ上記階調値を抽出し、集計する。
ここで、抽出する手法については、各種の手法を採用可能である。単純なものとしてランダムに画素を選択して集計することも可能であるし、特定のオブジェクトを見出して集計するようにしても良い。また、集計しながら集計結果の傾向を予測するようなものでもよい。自然画か非自然画かを判定する例であれば、利用色がなだらかにその周辺を含むようなことが見出されればその時点で自然画であると判定することも可能である。また、極端に色数が多そうであることが分かればその時点で判定しても良い。
【0029】
このようにした場合には、画像データの全てを集計しないで行うため、処理を高速化することができる。
また、コンピュータなどを想定すると、画像データはファイルとして処理されるが、そのファイル形式から画像の種類が判定できることも少なくない。従って、上記画像データの形式に基づいて特徴量を取得する構成とすることもできる。例えば、自然画であればJPEG方式で圧縮されることが多い。従って、画像データの形式がJPEG方式であれば自然画と判定することができる。また、ビジネスグラフについてはそれを出力するアプリケーションを表すファイルの拡張子が付されていることが多い。従って、このような拡張子も一形式と判断して画像の種類を判定できる。
【0030】
このようにすれば、画像データの形式に基づいて画像の種類を判定するので、画像データを解析する場合に比べて処理量を少なくすることができる。
一方、補間処理に関連する特徴量というのは必ずしも画像の種類といった類のものでなければならないわけでもない。従って、上記特徴量取得手段は、実行する補間倍率を取得して特徴量とする構成とすることもできる。
補間倍率も補間結果に関連する。例えば、補間倍率が小さい間は画像が荒くならないが、補間倍率が上がると画像が荒くなるということもある。この場合、後者のものであれば補間処理を複雑なものにしなければならなくなるとも言える。このため、特徴量取得手段が補間倍率を取得する。
【0031】
むろん、この場合、選択する補間処理に応じて補間倍率のしきい値などは変化することになるし、ある補間処理から他の補間処理へ移行するにあたっても段階的に変化させるといったことも可能である。
このようにすれば、画像データの種類以外の要素に基づいて最適な補間処理を選択することができる。
【0032】
【発明の効果】
以上説明したように、本発明によれば、画像の中央部分から多くの画素が抽出されるような仕組みとすることでオブジェクトの画素が抽出されやすくなる。
また、本願によれば、自ら画像の特徴量を取得して最適な補間処理を選択するようにしており、画像の特徴に応じた補間処理が実施されるので、最適な補間結果を極めて容易に得ることが可能な画像データ補間装置、画像データ補間方法、画像データ補間プログラムを記録した媒体を提供することができる。
【0033】
さらに、画像データの簡易な分類として自然画と非自然画とに分類して最適な補間処理を実行することが可能となる。
また、非自然画に対してはその性質上最も好適な最近隣内挿法による補間処理を実行し、自然画に対してはその性質上最も好適な3次たたみ込み内挿法による補間処理を実行することが可能となる。
【0034】
さらに、画素の変化度合いであるシャープさに基づいて補間処理を選択することにより、最適な補間結果を得ることが可能となる。
さらに、画素の変化度合の小さい領域では極めて簡易な処理で補間処理を実行することが可能となる。
さらに、変化度合の大きい領域では画像データをなだらかに変化させて画質を向上させることが可能となる。
【0035】
さらに、複数の補間処理を重ねて実行することにより実質的に利用可能な補間処理を増やしてきめ細かな処理を行うことが可能となる。
さらに、画像の領域ごとに最適な補間処理を選択して実行させることが可能となる。
さらに、演算パラメータを調整するだけで、一つの補間処理を実質的に複数の画素補間処理として利用することが可能となる。
【0036】
さらに、画像の拡大処理ととともに画像のシャープさの変更処理とが共に選択された場合に極めて効率的に処理することとなる。
さらに、同様の効果を奏する画像データ補間処理用コンピュータを提供することができる。
【0037】
【発明の実施の形態】
以下、図面にもとづいて本発明の実施形態を説明する。
図1は、本発明の画像データ補間装置の主要構成を示すブロック図である。
ディジタル処理を前提とすると、画像はドットマトリクス状の画素で表現することになり、各画素を表すデータの集まりで画像データが構成される。そして、画素単位で処理する系においては、画像の拡大縮小は画素単位で実施することになる。本画像データ補間装置はこのような画素単位での拡大処理を実施するものであり、画像データ取得手段C1は、このような画像データを取得し、画素補間手段C2はこの画像データにおける構成画素数を増やす補間処理を行う。ここで、画素補間手段C2は補間処理として複数の補間処理を実行可能となっており、特徴量取得手段C3が上記画像データについての上記補間処理に関連する特徴量を取得すると、補間処理選択手段C4はその特徴量に対応して最適な補間結果を得ることが可能な補間処理を選択し、上記画素補間手段C2に実行させる。
【0038】
本実施形態においてはこのような画像データ補間装置を実現するハードウェアの一例としてコンピュータシステム10を採用している。
図2は、同コンピュータシステム10をブロック図により示している。
本コンピュータシステム10は、画像入力デバイスとして、スキャナ11aとデジタルスチルカメラ11bとビデオカメラ11cとを備えており、コンピュータ本体12に接続されている。それぞれの入力デバイスは画像をドットマトリクス状の画素で表現した画像データを生成してコンピュータ本体12に出力可能となっており、ここで同画像データはRGBの三原色においてそれぞれ256階調表示することにより、約1670万色を表現可能となっている。
【0039】
コンピュータ本体12には、外部補助記憶装置としてのフロッピーディスクドライブ13aとハードディスク13bとCD−ROMドライブ13cとが接続されており、ハードディスク13bにはシステム関連の主要プログラムが記録されており、フロッピーディスクやCD−ROMなどから適宜必要なプログラムなどを読み込み可能となっている。
また、コンピュータ本体12を外部のネットワークなどに接続するための通信デバイスとしてモデム14aが接続されており、外部のネットワークに同公衆通信回線を介して接続し、ソフトウェアやデータをダウンロードして導入可能となっている。この例ではモデム14aにて電話回線を介して外部にアクセスするようにしているが、LANアダプタを介してネットワークに対してアクセスする構成とすることも可能である。この他、コンピュータ本体12の操作用にキーボード15aやマウス15bも接続されている。
【0040】
さらに、画像出力デバイスとして、ディスプレイ17aとカラープリンタ17bとを備えている。ディスプレイ17aについては水平方向に800画素と垂直方向に600画素の表示エリアを備えており、各画素毎に上述した1670万色の表示が可能となっている。むろん、この解像度は一例に過ぎず、640×480画素であったり、1024×768画素であるなど、適宜、変更可能である。
【0041】
また、カラープリンタ17bはインクジェットプリンタであり、CMYKの四色の色インクを用いて記録媒体たる印刷用紙上にドットを付して画像を印刷可能となっている。画像密度は360×360DPIや720×720DPIといった高密度印刷が可能となっているが、階調表限については色インクを付すか否かといった2階調表現となっている。
一方、このような画像入力デバイスを使用して画像を入力しつつ、画像出力デバイスに表示あるいは出力するため、コンピュータ本体12内では所定のプログラムが実行されることになる。そのうち、基本プログラムとして稼働しているのはオペレーティングシステム(OS)12aであり、このオペレーティングシステム12aにはディスプレイ17aでの表示を行わせるディスプレイドライバ(DSP DRV)12bとカラープリンタ17bに印刷出力を行わせるプリンタドライバ(PRT DRV)12cが組み込まれている。これらのドライバ12b,12cの類はディスプレイ17aやカラープリンタ17bの機種に依存しており、それぞれの機種に応じてオペレーティングシステム12aに対して追加変更可能である。また、機種に依存して標準処理以上の付加機能を実現することもできるようになっている。すなわち、オペレーティングシステム12aという標準システム上で共通化した処理体系を維持しつつ、許容される範囲内での各種の追加的処理を実現できる。
【0042】
むろん、このようなプログラムを実行する前提として、コンピュータ本体12内にはCPU12eとRAM12fとROM12gとI/O12hなどが備えられており、演算処理を実行するCPU12eがRAM12fを一時的なワークエリアや設定記憶領域として使用したりプログラム領域として使用しながら、ROM12gに書き込まれた基本プログラムを適宜実行し、I/O12hを介して接続されている外部機器及び内部機器などを制御している。
【0043】
ここで、基本プログラムとしてのオペレーティングシステム12a上でアプリケーション12dが実行される。アプリケーション12dの処理内容は様々であり、操作デバイスとしてのキーボード15aやマウス15bの操作を監視し、操作された場合には各種の外部機器を適切に制御して対応する演算処理などを実行し、さらには、処理結果をディスプレイ17aに表示したり、カラープリンタ17bに出力したりすることになる。
【0044】
かかるコンピュータシステム10では、画像入力デバイスであるスキャナ11aなどで画像データを取得し、アプリケーション12dによる所定の画像処理を実行した後、画像出力デバイスとしてのディスプレイ17aやカラープリンタ17bに表示出力することが可能である。この場合、単に画素同士の対応に着目すると、カラープリンタ17bにおける画素密度とスキャナ11aの画素密度が一致する場合にはスキャンした元画像の大きさと印刷される画像の大きさとが一致するが、両者にずれがあれば画像の大きさが異なることになる。スキャナ11aの場合はカラープリンタ17bの画素密度と近似するものも多いが、高画質化のために画素密度の向上が図られているカラープリンタ17bの画素密度の方が一般的な画像入力デバイスにおける画素密度よりも高密度であることが多い。特に、ディスプレイ17aの表示密度と比較すると各段に高密度であり、ディスプレイ17a上での表示を画素単位で一致させて印刷させるとなると極めて小さな画像になりかねない。
【0045】
このため、オペレーティングシステム12aで基準となる画素密度を決定しつつ実際のデバイスごとの画素密度の相違を解消するために解像度変換が実施される。例えば、ディスプレイ17aの解像度が72DPIであるとするときに、オペレーティングシステム12aで360DPIを基準とするならば、ディスプレイドライバ12bが両者の間の解像度変換を実施する。また、同様の状況でカラープリンタ17bの解像度が720DPIであればプリンタドライバ12cが解像度変換を実施する。
【0046】
解像度変換は画像データにおける構成画素数を増やす処理にあたるので補間処理に該当し、これらのディスプレイドライバ12bやプリンタドライバ12cがその機能の一つとして補間処理を実施する。ここにおいて、ディスプレイドライバ12bやプリンタドライバ12cは上述した画素補間手段C2はもとより、以下に述べるように特徴量取得手段C3や補間処理選択手段C4を実行し、解像度変換にて画質が劣化しないようにしている。
【0047】
なお、かかるディスプレイドライバ12bやプリンタドライバ12cは、ハードディスク13bに記憶されており、起動時にコンピュータ本体12にて読み込まれて稼働する。また、導入時にはCD−ROMであるとかフロッピーディスクなどの媒体に記録されてインストールされる。従って、これらの媒体は画像データ補間プログラムを記録した媒体を構成する。
本実施形態においては、画像データ補間装置をコンピュータシステム10として実現しているが、必ずしもかかるコンピュータシステムを必要とするわけではなく、同様の画像データに対して補間処理が必要なシステムであればよい。例えば、図3に示すようにデジタルスチルカメラ11b1内に補間処理する画像データ補間装置を組み込み、補間処理した画像データを用いてディスプレイ17a1に表示させたりカラープリンタ17b1に印字させるようなシステムであっても良い。また、図4に示すように、コンピュータシステムを介することなく画像データを入力して印刷するカラープリンタ17b2においては、スキャナ11a2やデジタルスチルカメラ11b2あるいはモデム14a2等を介して入力される画像データについて自動的に解像度変換を行って印刷処理するように構成することも可能である。
【0048】
この他、図5に示すようなカラーファクシミリ装置18aや図6に示すようなカラーコピー装置18bといった画像データを扱う各種の装置においても当然に適用可能である。
図7および図8は、上述したプリンタドライバ12cが実行する解像度変換に関連するソフトウェアフローを示している。ここで、前者は汎用的なフローを示しており、後者は本実施形態の具体的なフローを示している。
【0049】
ステップST102は元画像データを取得する。アプリケーション12dにてスキャナ11aから画像を読み込み、所定の画像処理を行った後で印刷処理すると、所定の解像度の印刷データはオペレーティングシステム12aを介してプリンタドライバ12cが取得するので、この段階が該当する。むろん、スキャナ11aにて画像を読み込むものであってもよい。この処理はソフトウェアとしてみるときに画像データ取得ステップということになるが、当該画像データ取得ステップを含めてコンピュータに実行させる各種のステップは、オペレーティングシステム12a自体やハードウェアを直接に含まないものとして理解することができる。これに対して、CPUなどのハードウェアと有機一体的に結合したものと考えると画像データ取得手段C1に該当する。
【0050】
ステップST104は、読み込んだ画像データにおける特徴量を抽出する処理である。特徴量の抽出処理の詳細は後述する。ステップST106では得られた特徴量に基づいて当該画像データに最適な補間処理を選択し、同補間処理を表すフラグをセットする。そして、ステップST108にて同フラグを参照してステップST110,ST112,ST114の各補間処理1〜Nを実行させることになる。従って、ステップST110,ST112,ST114に示す各補間処理1〜Nが具体的に画像補間ステップに相当するし、ステップST106,ST108が特徴量に基づいて補間処理を選択するので補間処理選択ステップに相当する。むろん、これらがCPUなどのハードウェアと有機一体的に結合したものと考えると画像補間手段C2や補間処理選択手段C4を構成することになる。
【0051】
ステップST116,ST118は補間処理が全てのブロックについて終了するまでブロック移動させる処理を示している。補間処理は必ずしも画像全体にわたって一律の処理である必要はなく、ブロック単位の領域毎に補間処理を変更することも可能である。
従って、ブロック毎に最適な補間処理を実施しようとする場合には、各ブロックでの補間処理を終了したらステップST104にて次のブロックの特徴量を抽出する処理から実行し直す。一方、画像データ全体にわたって一律に処理する場合にはステップST108以下の処理を繰り返す。
【0052】
そして、全てのブロックが終了すればステップST120にて補間された画像データを出力する。プリンタドライバ12cの場合、解像度変換だけで印刷データが得られるわけではなく、色変換であるとか、ハーフトーン処理が必要になる。従って、ここで画像データを出力するとは、次の段階へのデータの受け渡しを意味する。
次に、以上のような汎用的なフローに対してより具体的な処理について説明する。本実施形態においては、元画像がコンピュータグラフィックス(非自然画)であるか写真(自然画)であるかを判定し、判定結果に基づいて補間処理を選択することにする。ステップST202ではステップST102と同様にして元画像データを入力する。
【0053】
元画像の種類がどのようなものであるかを判定する手法としてはいくつか採用可能であるが、本実施形態においては画像データを用いて集計処理を行う。
具体的には画像データで利用されている色数を求め、多ければ自然画と判定し、少なければ非自然画と判定する。写真の場合、一色の物体が映っているとしても光線の加減や陰影によって明るいところから暗いところまで幅ができてしまい、色数は多くなる。このような特性があるので色数を見れば自然画か非自然画かを判断できる。ただし、1670万色の中で実際にどれだけの色を利用しているかを集計するのはプログラムでの処理において効率的でない。また、自然画でさえそのうちの一部しか利用していないことが多く、非自然画との見極めがつきにくい。
【0054】
このため、本実施形態においては、各画素の輝度を求め、輝度が取りうる範囲において画素数のヒストグラムを集計して利用色数の傾向を判定する。1670万色のうちで同じ輝度となる色が複数存在するのは当然であるが、非自然画との比較だけに着目すれば、色であっても輝度であっても多いか少ないかの比較は可能である。さらに、非自然画がせいぜい64色程度ぐらいしか利用していないと考えれば輝度の取りうる範囲が256階調であったとしても十分に判定可能であると考えられる。
【0055】
一方、輝度の集計は以上のように画像データの概略の傾向を判定するのみであるから、必ずしも全画素について集計する必要はない。すなわち、集計対象となる画素を選択すべく間引き処理を実行する。
図9に示すように、ビットマップの画像であれば、縦方向に所定ドットと横方向に所定ドットからなる二次元のドットマトリクスとして成り立っており、正確な輝度の分布を求めるのであれば全画素について輝度を調べる必要がある。しかしながら、ここでは必ずしも正確である必要はない。従って、ある誤差の範囲内となる程度に間引きを行うことが可能である。統計的誤差によれば、サンプル数Nに対する誤差は概ね1/(2**(1/2))と表せる。ただし、**は累乗を表している。従って、1%程度の誤差で処理を行うためにはN=10000となる。
【0056】
ここにおいて、図9に示すビットマップ画面は(width)×(height)の画素数となり、サンプリング周期ratioは、
ratio=min(width,height)/A+1
とする。ここにおいて、min(width,height)はwidthとheightのいずれか小さい方であり、Aは定数とする。また、ここでいうサンプリング周期ratioは何画素ごとにサンプリングするかを表しており、図10の○印の画素はサンプリング周期ratio=2の場合を示している。すなわち、縦方向及び横方向に二画素ごとに一画素のサンプリングであり、一画素おきにサンプリングしている。A=200としたときの1ライン中のサンプリング画素数は図11に示すようになる。
【0057】
同図から明らかなように、サンプリングしない場合のサンプリング周期ratio=1の場合を除いて、200画素以上の幅があるときには最低でもサンプル数は100画素以上となることが分かる。従って、縦方向と横方向について200画素以上の場合には(100画素)×(100画素)=(10000画素)が確保され、誤差を1%以下にできる。
ここにおいてmin(width,height)を基準としているのは次のような理由による。例えば、図12(a)に示すビットマップ画像のように、width>>heightであるとすると、長い方のwidthでサンプリング周期ratioを決めてしまった場合には、同図(b)に示すように、縦方向には上端と下端の2ラインしか画素を抽出されないといったことが起こりかねない。しかしながら、min(width,height)として、小さい方に基づいてサンプリング周期ratioを決めるようにすれば同図(c)に示すように少ない方の縦方向においても中間部を含むような間引きを行うことができるようになる。
【0058】
なお、この例では、縦方向と横方向の画素について正確なサンプリング周期で間引きを行うようにしている。これは、逐次入力される画素について間引きしながら処理する場合に好適である。しかし、全画素が入力されている場合には縦方向や横方向についてランダムに座標を指定して画素を選択するようにしても良い。このようにすれば、10000画素というような必要最低限の画素数が決まっている場合に10000画素となるまでランダムに抽出する処理を繰り返し、10000画素となった時点で抽出を止めればよくなる。
【0059】
このように選択した画素についての画素データがその成分要素として輝度を持っていればその輝度値を用いて分布を求めることが可能である。しかしながら、輝度値が直接の成分値となっていない画像データの場合でも、間接的には輝度を表す成分値を備えている。従って、輝度値が直接の成分値となっていない表色空間から輝度値が直接の成分値となっている表色空間への変換を行えば輝度値を得ることができる。
【0060】
異なる表色空間の間での色変換は変換式によって一義的に定まるものではなく、それぞれの成分値を座標とする色空間について相互に対応関係を求めておき、この対応関係を記憶した色変換テーブルを参照して逐次変換する必要がある。すると、厳密には1670万個の要素の色変換テーブルを持たなければならない。効率的な記憶資源の利用を考えた結果、すべての座標値についての対応関係を用意しておくのではなく、通常は適当なとびとびの格子点について対応関係を用意しておき、補間演算を併用するようにしている。しかし、かかる補間演算はいくつかの乗算や加算を経て可能となるものであるため、演算処理量は膨大となってくる。
【0061】
すなわち、フルサイズの色変換テーブルを使用するのであれば処理量としては少なくなるもののテーブルサイズが非現実的な問題となり、テーブルサイズを現実的なサイズにすれば演算処理量が非現実的となることが多い。
このような状況に鑑み、本実施形態においては、テレビジョンなどの場合に利用されているように、RGBの三原色から輝度を求める次式の変換式を採用している。すなわち、P点での輝度yp についてはRGBの成分値(Rp,Gp,Bp )から、
yp=0.30Rp+0.59Gp+0.11Bp
とする。このようにすれば、三回の乗算と二回の加算だけで輝度値を求めることができるようになる。
【0062】
本実施形態においては、RGBの表色空間を対象としている結果、このような変換式を採用しているが、その背景には各成分値が色の明るさを示しているので、それぞれの成分値を単独で見た場合に輝度に線形に対応しているという性質がある。従って、よりおおざっぱに言えばそれぞれの加算割合を考慮することなく単に
yp=(Rp+Gp+Bp)/3
というように簡略化することも不可能ではない。
【0063】
ステップST204では、以上のようにした間引き処理した画素についての輝度をヒストグラム化する。集計後、ステップST206では色数を計数する。色数が少なければ輝度の分布もまばらであり、ビジネスグラフのような非自然画では図13に示すように線スペクトル状に表れるし、写真のような自然画であれば図14に示すようになだらかな曲線状になることが予想される。
このようなことから、ステップST206では256階調の輝度のうち分布数が「0」でない輝度値がいくつ表れているかカウントし、ステップST208では「64」色未満であるときに自然画でないと判断し、「64」色以上であるときに自然画であると判断する。一方、分布が線スペクトル状か否かは分布数が「0」でない輝度値の隣接割合で判断することも可能である。すなわち、分布数が「0」でない輝度値であって隣接する輝度値に分布数があるか否かを判断する。隣接する二つの輝度値のうち少なくとも一方で隣接していれば何もせず、両方で隣接していない場合にカウントを行い、その結果、「0」でない輝度値の数とカウント値との割合で判断すればよい。例えば、「0」でない輝度値の数が「80」であって、隣接しないものの数が「80」であれば線スペクトル状に分布していることが分かる。むろん、この利用色数が特徴量に該当する。
【0064】
なお、特徴量の取得手法はこれらに限るものではなく他の手法も実現可能である。
まず、集計対象となる画素を間引きするにあたっては、上述したような均等間隔の間引きに限られるものではない。例えば、画像の中での本来のオブジェクト部分を見つけ、その画素についての特徴量を集計するといったことも可能である。
このようなオブジェクトは他の部分と比較して画像がシャープであるという経験的事実に基づいて、シャープな部分がオブジェクトの画素であると判断する。画像データがドットマトリクス状の画素から構成されている場合には、画像のエッジ部分では隣接する画素間での同データの差分は大きくなる。この差分は輝度勾配であり、これをエッジ度と呼ぶことにして各画素でのエッジ度を判定する。図15に示すようなXY直交座標を考察する場合、画像の変化度合いのベクトルはX軸方向成分とY軸方向成分とをそれぞれ求めれば演算可能となる。ドットマトリクス状の画素からなるディジタル画像においては、図16に示すように縦軸方向と横軸方向に画素が隣接しており、X方向の差分値fxとY方向の差分値fyは、
fx=f(x+1,y)−f(x,y)
fy=f(x,y+1)−f(x,y)
のように表される。従って、これらを成分とするベクトルの大きさ|g(x,y)|は、
|g(x,y)|=(fx**2+fy**2)**(1/2)
のように表される。むろん、エッジ度はこの|g(x,y)|で表される。なお、本来、画素は図17に示すように縦横に升目状に配置されており、中央の画素に注目すると八つの隣接画素がある。従って、同様にそれぞれの隣接する画素との画像データの差分をベクトルで表し、このベクトルの和を画像の変化度合いと判断しても良い。
【0065】
以上のようにして各画素についてエッジ度が求められるので、基本的にはあるしきい値と比較してエッジ度の方が大きい画素をオブジェクトの画素と判断すればよい。しかしながら、経験的事実から考察すると、オブジェクトは構図の中央部分に位置することが多い。この事実は、中央部分から多くの画素が抽出されるような仕組みとすることによってオブジェクトの画素がより抽出されやすくなるということを裏付けるものである。
【0066】
このため、図18に示すように、画像の中の部分毎に比較するしきい値Th1,Th2,Th3を異ならせておくことも可能である。むろん、この例では、
Th1<Th2<Th3
なる関係があり、中央に近い部分ほどしきい値は低く、エッジ度が比較的低くてもオブジェクトと判断されるようになっている。
むろん、このようにしてオブジェクトと判断された画素についての画像データを集計し、補間処理に対応した特徴量を得ることになる。
【0067】
一方、特徴量は必ずしも画像データを集計して得る必要もない。補間処理に依存して補間結果が良好となるか否かを関連づけるものであればよい。
画像データの画像が自然画か否かは印刷元となる画像ファイルの形式からも判断できる。図19はプリンタドライバ12cがオペレーティングシステム12aに用意されたシステム関数を利用する状況を示しており、プリンタドライバ12cがファイル名を問合せる関数を利用すると、オペレーティングシステム12aは対応するファイル名を返答する。この場合、”XXXX.XLS”であればその拡張子からビジネスグラフであると分かり、非自然画であるとの判定を可能とする。また、”XXXX.JPG”であればその拡張子から写真画像の圧縮ファイルであると分かり、自然画であるとの判定を可能とする。
むろん、拡張子からではなく、データファイルの先頭部分に含まれる情報からドロー系のファイル構造であるかビットマップ系のファイル構造であるかも判断できるから、自ずから自然画であるか非自然画であるかといった目安を取得できることになる。すなわち、このような画像の内容を推理可能となる目安であれば、特徴量を構成することになる。
【0068】
以上のようにして、ステップST202にて入力された元画像データが自然画であるか非自然画であるかを判断したら、それぞれに応じた適切な補間処理を実行する。
ここで、本実施形態において実行する補間処理の各手法について説明する。
コンピュータグラフィックスのような非自然画に適した補間処理として、ステップST210ではニアリスト法の補間処理を実行可能となっている。ニアリスト法は図20に示すように、周囲の四つの格子点Pij,Pi+1j,Pij+1,Pi+1j+1と内挿したい点Puvとの距離を求め、もっとも近い格子点のデータをそのまま移行させる。これを一般式で表すと、
Puv=Pij
ここで、i=[u+0.5]、j=[v+0.5]である。なお、[]はガウス記号で整数部分を取ることを示している。
【0069】
図21は、ニアリスト法で画素数を縦横3倍ずつに補間する状況を示している。補間する前には四隅の画素(□△○●)があるとして、補間して生成する画素にはこれらの画素のうちもっとも近い画素のデータをそのまま移行させている。すなわち、この例で言えば四隅の画素に隣接する画素についてそれぞれ複写することになる。また、かかる処理を行うと、図22に示すように白い画素を背景として黒い画素が斜めに配置される元画像は、図23に示すように黒の画素が縦横に3倍に拡大されつつ斜め方向に配置されることになる。
【0070】
ニアリスト法においては、画像のエッジがそのまま保持される特徴を有する。それ故に拡大すればジャギーが目立つもののエッジはエッジとして保持される。これに対して他の補間処理では補間される画素を周りの画素のデータを利用してなだらかに変化するようにする。従って、ジャギーが目立たなくなる反面、本来の元画像の情報は削られていってしまい、エッジがなくなることになってコンピュータグラフィックスなどの非自然画には適さなくなる。
【0071】
一方、写真のような自然画に適した補間処理として、ステップST212ではキュービック法の補間処理を実行する。キュービック法は図24に示すように、内挿したい点Puvを取り囲む四つの格子点のみならず、その一周り外周の格子点を含む計16の格子点のデータを利用する。
内挿点Puvを取り囲む計16の格子点がそれぞれに値を備えている場合に、内挿点Puvはそれらの影響を受けて決定される。例えば、一次式で補間しようとすれば、内挿点を挟む二つの格子点からの距離に反比例させて重みづけ加算すればよい。X軸方向に注目すると、内挿点Puvから上記16の格子点との距離は、図面上、左外側の格子点までの距離をx1、左内側の格子点までの距離をx2、右内側の格子点までの距離x3、右外側の格子点までの距離x4と表しつつ、このような距離に対応した影響度合いを関数f(x)で表すことにする。また、Y軸方向に注目すると、内挿点Puvから上記16の格子点との距離は、上方外側の格子点までの距離をy1、上方内側の格子点までの距離をy2、下方内側の格子点までの距離y3、下方外側の格子点までの距離y4と表しつつ、同様に影響度合いは関数f(y)で表せる。
【0072】
16の格子点は以上のような距離に応じた影響度合いで内挿点Puvに寄与するので、全ての格子点にデータに対してX軸方向とY軸方向のそれぞれの影響度合いを累積させる一般式は次式のようになる。
【0073】
【数1】
また、ここで距離に応じた影響度合いを3次たたみ込み関数で表すとすると、 f(t) = {sin(πt)}/πt
となる。なお、上述した各距離x1〜x4,y1〜y4は格子点Puvの座標値(u,v)について絶対値を利用して次のように算出することになる。
x1 = 1+(u-|u|) y1 = 1+(v-|v|)
x2 = (u-|u|) y2 = (v-|v|)
x3 = 1-(u-|u|) y3 = 1-(v-|v|)
x4 = 2-(u-|u|) y4 = 2-(v-|v|)
以上の前提のもとでPについて展開すると、
【0074】
【数2】
となる。なお、3次たたみ込み関数と呼ばれるように距離に応じた影響度合いf(t)は次のような三次式で近似される。
【数3】
このキュービック法では一方の格子点から他方の格子点へと近づくにつれて徐々に変化していき、その変化具合がいわゆる3次関数的になるという特徴を有している。
【0075】
図25と図26はキュービック法にて補間される際の具体例を示している。理解を容易にするため、垂直方向についてのデータの変化はなく、水平方向についてエッジが生じているモデルについて説明する。また、補間する画素を3点とする。
まず、図26の具体的数値について説明する。補間前の画素の階調値を左列に「Original」として示しており、階調値「64」の画素(P0、P1、P2、P3)が4点並び、階調値「128」の画素(P4)を1点挟み、階調値「192」の画素(P5、P6、P7、P8、P9)が5点並んでいる。この場合、エッジは階調値「128」の画素の部分である。
【0076】
ここで各画素間に3点の画素(Pn1、Pn2、Pn3)を内挿することになると、内挿される画素間の距離は「0.25」となり、上述したx1〜x4は内挿点毎に表の中程の列の数値となる。x1〜x4に対応してf(x1)〜f(x4)も一義的に計算されることになり、例えば、x1,x2,x3,x4が、それぞれ「1.25」、「0.25」、「0.75」、「1.75」となる場合、それに対するf(t)については、概略「−0.14」、「0.89」、「0.30」、「−0.05」となる。また、x1,x2,x3,x4が、それぞれ「1.50」、「0.50」、「0.50」、「1.50」となる場合、それに対するf(t)については、「−0.125」、「0.625」、「0.625」、「−0.125」となる。また、x1,x2,x3,x4が、それぞれ「1.75」、「0.75」、「0.25」、「1.25」となる場合、それに対するf(t)については、概略「−0.05」、「0.30」、「0.89」、「−0.14」となる。以上の結果を用いて内挿点の階調値を演算した結果を表の右列に示しているとともに、図25においてグラフで示している。なお、このグラフの意味するところについて後に詳述する。
【0077】
垂直方向についてのデータの変化がないものとみなすと、演算は簡略化され、水平方向に並ぶ四つの格子点のデータ(P1,P2,P3,P4 )だけを参照しつつ、内挿点から各格子点までの距離に応じた影響度合いf(t)を利用して次のように算出できる。
P=P1・f(x1)+P21f(x2)+P3・f(x3)+P4・f(x4)
従って、内挿点P21について算出する場合には、
となる。
【0078】
キュービック法によれば3次関数的に表せる以上、そのカーブの形状を調整することによって補間結果の品質を左右することができる。
その調整の一例として、
0<t<0.5 f(t) = -(8/7)t**3-(4/7)t**2+1
0.5<t<1 f(t) = (1-t)(10/7)
1<t<1.5 f(t) = (8/7)(t-1)**3+(4/7)(t-1)**2-(t-1)
1.5<t<2 f(t) = (3/7)(t-2)
としたものをハイブリッドバイキュービック法と呼ぶことにする。
【0079】
図27はハイブリッドバイキュービック法にて補間される際の具体例を示しており、キュービック法の場合と同じ仮定のモデルについて補間した結果を示している。また、図25にもハイブリッドバイキュービック法による補間処理結果を示しており、この例では3次関数的なカーブがわずかに急峻となり、画像全体のイメージがシャープとなる。
上述したニアリスト法やキュービック法やハイブリッドバイキュービック法の特性の理解のために他の補間手法である共1次内挿法(バイリニア補間:以下、バイリニア法と呼ぶ)について説明する。
【0080】
バイリニア法は、図28に示すように、一方の格子点から他方の格子点へと近づくにつれて徐々に変化していく点でキュービック法に近いが、その変化が両側の格子点のデータだけに依存する一次関数的である点で異なる。すなわち、内挿したい点Puvを取り囲む四つの格子点Pij,Pi+1j,Pij+1,Pi+1j+1で区画される領域を当該内挿点Puvで四つの区画に分割し、その面積比で対角位置のデータに重み付けする。これを式で表すと、
となる。なお、i=[u]、j=[v]である。
【0081】
二つのキュービック法とバイリニア法は一方の格子点から他方の格子点へと近づくにつれて徐々に変化していく点で共通するが、その変化状況が3次関数的であるか1次関数的であるかが異なり、画像としてみたときの差異は大きい。図29はニアリスト法とキュービック法とハイブリッドバイキュービック法とバイリニア法における補間結果の相違を理解しやすくするために二次元的に表した図である。同図において、横軸に位置を示し、縦軸に補間関数を示している。むろん、この補間関数は上述した距離に応じた影響度合いに該当する。t=0、t=1、t=2の位置に格子点が存在し、内挿点はt=0〜1の位置となる。
【0082】
バイリニア法の場合、隣接する二点間(t=0〜1)で直線的に変化するだけであるので境界をスムージングすることになり、画面の印象はぼやけてしまう。すなわち、角部のスムージングと異なり、境界がスムージングされると、コンピュータグラフィックスでは、本来あるべき輪郭がなくなってしまうし、写真においてはピントが甘くなってしまう。
一方、キュービックにおいては、隣接する二点間(t=0〜1)においては山形の凸を描いて徐々に近接するのみならず、さらに同二点間の外側(t=1〜2)において下方に押し下げる効果をもつ。すなわち、あるエッジ部分は段差が生じない程度に大きな高低差を有するように変化され、写真においてはシャープさを増しつつ段差が生じないという好適な影響を及ぼす。また、ハイブリッドバイキュービックではよりシャープさを増す影響を及ぼす。なお、キュービック法は演算処理量が大きく、補間倍率が大きくなって補間すべき画素数が大きくなれば多大な演算処理量を要することになる。
【0083】
画質の面を重視すれば、キュービック法のような三次関数を選びそうであるが、コンピュータの処理では速度と画質のバランスも大きい。すなわち、画質の向上程度に応じて処理速度の低下具合の許容度が大きくなるが、画質の向上が微量あるいは多少画質が向上落ちるとしても処理速度が高速である方を好むという場合もある。
一方、以上のような補間関数の比較とともに具体的な数値を示す図25、図26、図27を参照するとより理解しやすい。図15の例を参照し、もともとのエッジ部分である階調値「64」の画素(P3)と、階調値「128」の画素(P4)と、階調値「192」の画素(P5)という三点に注目してみると、単純に直線的に連結する手法はバイリニア法に相当し、これに対してキュービック法では具体的なS字カーブが形成されているし、ハイブリッドバイキュービック法ではそのS字カーブがより急峻となっている。むろん、S字カーブの方向は画素の階調値変化を急峻とする方向であり、だからこそエッジが強調されている。また、このエッジ画素に隣接する領域(P2〜P3、P5〜P6)ではいわゆるアンダーシュートとオーバーシュートが生じており、低い側に生じるアンダーシュートと高い側に生じるオーバーシュートにより、エッジ画素を挟む両側の高低差が大きくなる。従って、これらの二つの要因によってエッジが強調されることが理解できる。
【0084】
画像がシャープに見えるか否かはこのS字カーブにおける中央部分の傾斜角度が影響を与えることも容易に理解できる。また、エッジの両側のアンダーシュートとオーバーシュートによって生じる高低差も同様に影響を与えるものといえる。
各補間処理には以上のような特性の違いがあり、ステップST208ではステップST206にて求めた色数に基づいて非自然画であると判断する場合にはステップST210におけるニアリスト法による補間処理を実行するし、自然画であればキュービック法による補間処理を実行することになる。
【0085】
補間処理自体は任意の倍率で実行可能であるが、プリンタドライバ12cにおける処理の高速化を図るため、整数倍の補間処理を受け付けるようにする。図29は水平方向と垂直方向に2倍に補間する処理例を示している。予め、補間後の画像データについての変数領域を確保すると、整数倍の補間処理であれば元画像の画像データは整数倍した座標値に対応する画素の画像データとなる。図に示す例で言えば、旧座標値(0,0)は新座標値(0,0)に対応し、旧座標値(1,0)は新座標値(2,0)に対応し、旧座標値(0,1)は新座標値(0,2)に対応し、旧座標値(1,1)は新座標値(2,2)に対応するということである。従って、残りの座標値についてのみ上述した補間処理に対応して画像データを生成していく。この場合、画像データの幅方向を主走査方向とし、長さ方向を副走査方向として順に走査していくことも可能であるし、画像データがある四つの格子点に囲まれた各ブロック毎に内部の座標値の補間処理をしていって埋めていくことも可能である。
【0086】
そして、新たな座標値について全て補間処理したときにステップST214にて補間画像データを次段の処理へ引き渡す。ただし、補間倍率によっては補間画像データのデータ量が極めて多大になることもあるし、そもそもプリンタドライバ12cが利用可能なメモリ領域がさほど多くない場合もある。このような場合には一定のデータ量ごとに分けて出力するようにしても構わない。
上述したようにステップST116,ST118は補間処理がブロック単位の領域毎に補間処理を変更する手法に対応している。これを上述したプリンタドライバ12cの具体的なソフトウェア処理に対応して説明すると、図29に示すように整数倍して格子点の画像データを新たな座標値に移行せしめておき、四つの格子点に囲まれた各ブロック毎に特徴量を取得して補間処理を選択することになる。上述した例では利用色数を集計するものであるのでかかる特徴量を利用することはできないが、他の特徴量を取得して補間処理を変更していくことが可能である。
【0087】
例えば、四つの格子点の差を求めると、自然画であれば当然にこの差が生じていることが多い。しかし、自然画に重ねて文字が組み込まれているような場合、文字が単一色であれば四つの格子点は一致し、差が生じない。むろん、差が生じない領域に内挿する画素は四つの格子点と同じデータとすればよいのであり、最も演算量の少ないニアリスト法で補間すればよい。
また、差が生じない場合に限る必要はない。空のように余り変化のない領域ではニアリストを使用しても画質の劣化は判断できないことが多いため、四つの格子点の差が小さいときにはニアリスト法で補間するようにしても良い。なお、以上の例では領域として最小の単位でブロックを形成しているが、より大きなブロックで補間処理を変更するようにしても構わない。
【0088】
選択可能な補間処理はニアリスト法かキュービック法かのいずれか一方だけに限る必要もない。例えば、4倍に補間するような場合に、最初にキュービック法にて2倍に補間処理し、続いてニアリスト法にて2倍に補間処理することも有意義である。補間処理によって画素数が増加する前に演算量の多い補間処理を実行しておき、その後で演算量の少ない補間処理を実行することになるからである。
【0089】
すなわち、補間結果に関連するものとして、このような場合には補間倍率が影響しているといえる。従って、プリンタドライバ12cはオペレーティングシステム12aにおける基準解像度とカラープリンタ17bの解像度との比較において倍率が判定できたときに補間処理を選択することも可能である。
このように、画像入力デバイスとしてスキャナ11aなどを有するとともに画像出力デバイスとしてカラープリンタ17bなどを有するコンピュータシステム10において、プリンタドライバ12cはステップST202にて元画像データを取得し、ステップST204,ST206にて画像の利用色数を計数することにより、当該画像データの画像が自然画であるのか非自然画であるのかを判定するための特徴量を抽出し、ステップST208にて同特徴量に基づいて自然画か非自然画かを決定することによって非自然画であればステップST210のニアリスト法の補間処理を実行するし、自然画であればステップST212のキュービック法の補間処理を実行するようにしたため、画像の特徴に応じた補間処理が実施され、最適な補間結果を極めて容易に得ることができる。
【0090】
そして、このようなプログラムを実行する前提として、コンピュータ12には、CPU12eとRAM12fとROM12gとI/O12hなどが備えられている。同RAM12fは、画像をドットマトリクス状の画素で表現した画像データを記憶する画像メモリとして作用する。また、同RAM12fは、この画像メモリに記憶された画像データを対象として補間処理に関連する特徴量を取得するとともに、同特徴量に対応して複数の補間処理の中から最適な補間結果を得ることが可能な補間処理を選択し、同補間処理を上記CPU12aに実行させて上記画像メモリに書き込ませる処理プログラムを記憶する。さらに、I/O12hは上記画像データを入力および出力するインターフェイスとして作用する。
【0091】
むろん、CPU12eはRAM12fを一時的なワークエリアや設定記憶領域やプログラム領域として使用しながら、ROM12gに書き込まれた基本プログラムを適宜実行し、I/O12hを介して未処理の画像データを入力し、処理後の画像データを出力する。
次に、上述した画像データの変化度合いを特徴量とした実施形態について説明する。
図31は、本画像データ補間装置を表すブロック図である。
本画像データ補間装置はこのような画素単位での拡大処理を実施するものであり、画像データ取得手段D1は、このような画像データを取得し、画素補間手段D2はこの画像データにおける構成画素数を増やす補間処理を行う。ここで、画素補間手段D2は補間処理として画素の変化度合いに応じた複数の補間処理を実行可能となっており、画素変化度合評価手段D3が上記画像データに基づいて画素ごとの変化度合いを評価する。すると、補間処理選択手段D4はそのようにして評価された画素の変化度合いに対応して最適な補間結果を得ることが可能な補間処理を選択し、上記画素補間手段D2に実行させる。
【0092】
なお、本実施形態においては、ディスプレイドライバ12bやプリンタドライバ12cは上述した画素補間手段D2はもとより、以下に述べるように画素変化度合評価手段D3や補間処理選択手段D4を実行し、解像度変換において最もバランスの良い補間結果を得ることができるようにしている。
図32は、上述したプリンタドライバ12cが実行する解像度変換に関連するソフトウェアフローを示している。
【0093】
ステップST302は元画像データを取得する。ステップST304〜ST308は、読み込んだ画像データにおける画素の変化度合いを評価する処理である。
上述したような簡略化した演算で輝度を求めることとした上で、図33と図34は、輝度勾配を算出するためのエッジ検出フィルタを示している。画像データはドットマトリクス状の画素から構成されているので、注目画素を中心とする近隣の八画素との間で画像の変化度合いを評価すべきである。そういった意味では図34(a)に示すように、注目画素に8倍の重み付けを与えつつ周囲の画素を均等に評価してそれを合算することでフィルタを掛けることが好ましい。しかしながら、経験的には必ずしも周囲の八画素を評価しなくても図33(a)に示すように注目画素と周囲の四画素だけから評価可能である。むろん、四画素を利用するか八画素を利用するかでは演算量の差が大きく、このようにして評価対象を少なくすると処理時間を減らすことができる。
【0094】
また、図33(b)と図34(b)には実際の画像データ(輝度)の例を示しており図33(c)と図34(c)には(a)に示すフィルタを(b)に示す画像データの配置に適用した場合の演算例を示している。画像データは概ね左斜め上方側に画像データ「100」のエリアがあり、右斜め下方側に画像データ「70」と「60」の領域があるような場合を示している。図33の例では、中心画素の上下左右の四画素(画像データ「100」、「100」、「70」、「70」)についてそれぞれ「−1」の重みが付加され、中心画素(画像データ「100」)には「4」の重みが付加されている。そして、この五画素について重み付加算を行なう。この重み付加算結果は「60」であり、しきい値(th)の「32」を越えている。
【0095】
一方、図34の例では、中心画素を取り囲む八画素についてそれぞれ「−1」の重みが付加され、中心画素には「8」の重みが付加されている。この重み付加算結果は「100」であり、しきい値(th)の「64」を越えている。
図33や図34に示すエッジ検出フィルタを利用した結果を各画素のエッジ量Eと呼ぶと、その分布は図35に示すように正規分布的となることが予想され、画像の変化度合いが大きいエッジ部分であるか否かはしきい値thと比較することによって判定できる。図33と図34に示すエッジ検出フィルタはそれぞれしきい値としてth=32およびth=64というエッジ量のしきい値が妥当する。従って、エッジの画素か否かは次式から評価する。
(E<−th) or (th>E)
この評価をドットマトリクス状の画素の全てに実施するのがステップST306の処理であり、各画素単位でエッジの画素のように画像の変化度合いが大きい画素であるか否かを評価する。
【0096】
ところで、各画素単位で画像の変化度合いが大きいか否かを判定するとしても、補間処理は一定の領域毎に画素を生成する処理であるから、その領域単位で画像の変化度合いが大きいか否かを判定する必要がある。各領域ごとにこの変化度合いを判定するのは煩雑であるから、ステップST308であらかじめエッジ画素であるか否かを判定してフラグを設定する。この場合、図36に示すように、エッジ画素を取り囲む全ての画素において画像の変化度合いが大きいものと判断する。より具体的には、各画素の変化度合いが図37(a)に示すようになっているとするときに、しきい値が「32」であれば、しきい値を越える画素はxy座標で示すところの(0,0)(3,0)(4,0)(1,1)(2,1)であるとしても、エッジ画素の隣接画素にはフラグを設定することになる。すると、同図(b)に示すようにy=0,1の全画素と、(4,2)を除くy=2の画素についてはフラグが設定されることになる。この結果、後の工程で各画素単位で注目ブロックを移動させていくときにフラグだけを参照して補間処理を適宜選択できるようになる。
【0097】
むろん、本実施形態においては、これらのステップST304〜ST308の処理が画素変化度合評価ステップに相当する。むろん、これらがCPUなどのハードウェアと有機一体的に結合したものと考えると画素変化度合評価手段D3を構成することになる。
以上のように設定したフラグに基づき、ステップST310以下ではループ処理で補間画素を生成していく。図38は既存の画素に対して補間して生成される画素の配置を概略的に示している。既存の画素について仮に座標を(X,Y)として表示し、補間で生成される画素の座標を<X,Y>として表示している。同図の例では、約2.5×2.5倍の補間処理を行っている。
【0098】
既存の四つの画素で囲まれる一つの領域をブロックと呼び、各ブロックごとに補間する画素の補間処理を選択する。ステップST308では各画素ごとに周囲の画素の変化度合も考慮してフラグを設定しているので、各ブロックでは四つの画素(0,0)(1,0)(0,1)(1,1)についていずれについてもフラグが設定されていれば変化度合の大きい場合の補間処理を選択することになり、どれか一つでもフラグが設定されていなければ変化度合の小さい場合の補間処理を選択することになる。ステップST310では、この条件に基づいて当該ブロック内部に適用する補間処理を判断し、変化度合いが小さい場合にはステップST312にてニアリスト法による補間処理で補間を実行するし、変化度合いが大きい場合にはステップST314にてキュービック法による補間処理で補間を実行する。また、一つのブロックを補間処理した後、ステップST316とステップST318にて処理対象となるブロックを移動させ、全てのブロックが終了すればステップST320にて補間された画像データを出力する。
【0099】
なお、図中にはステップST318の終了後にステップST310に戻るような流れを実線で示しているが、破線で示すようにブロック毎にエッジ画素を集計する処理を繰り返すようにしても良い。
むろん、このような意味でステップST310の処理を中心としてステップST316,ST318の処理を含めて補間処理選択ステップに相当する。むろん、これらがCPUなどのハードウェアと有機一体的に結合したものと考えると補間処理選択手段D4を構成することになる。なお、プリンタドライバ12cの場合、解像度変換だけで印刷データが得られるわけではなく、色変換であるとか、ハーフトーン処理が必要になる。従って、ここで画像データを出力するというのは、次の段階へのデータの受け渡しを意味することになる。
【0100】
本実施形態の場合は、四つの画素に囲まれる領域をブロックと呼んで補間処理を選択しているが、補間処理を変更する基準は演算能力や補間処理などに応じて適宜変更可能である。例えば、図39に示すように、注目画素を中心とする領域を基準として補間処理する場合もある。このような場合は、かかる注目画素を矢印のように走査させて移動させながら補間処理を適宜実施していけばよい。
ここで、注目画素を移動させていきながら補間処理を選択する手法について説明する。上述した例ではブロック毎に変化度合いが大きいか否かを判定するにあたり、当該領域に含まれる全てのフラグが「1」となっている場合にだけ画像の変化度合いが大きい領域と判断している。しかしながら、必ずしもこのように全てのフラグが「1」になっている必要もないともいえる。例えば、図40(a)に示すように4画素で囲まれる領域に補間処理で画素を生成するものとする。この場合、図36でエッジ画素の隣接画素にフラグを立てる関係上、本来であれば上述したように4画素全てにフラグが立っている場合だけが変化度合いの大きい領域と判定することになりえる。しかしながら、このように判断するとブロックを1画素分だ横に移動させた場合には縦の辺が共通する関係で縦の二画素について毎回判断が重複するし、縦方向に移動させれば横の辺が共通する関係で横の二画素について毎回判断が重複する。このような重複状況は演算処理において無駄である。一方、同図(b)に示すように領域の隣接状況を考慮すれば、1領域ごとに左上の1画素を代表させて関連づけることが可能であるし、少なくともエッジ画素に同視しうる画素の近辺で変化度合いが大きいと判断しても対して支障はないといえる。また、隣接画素同士に囲まれる領域というのは実際には極めて微少な領域であることを鑑みても十分であるといえる。そして、このようにして1画素に1領域を対応させれば、ブロックを移動させる際に注目画素を移動させていき、その注目画素のエッジ量だけで領域の変化度合いを判定することが可能となるし、判定に要する演算処理量も低減する。
【0101】
また、補間する画素の側でブロックを形成するようにすることも可能である。図41はこの例を示しており、図中、□の格子点が補間する画素を示し、○の格子点が既存の画素を示している。いま、補間する画素について5×5のブロックを一つとし、その中に含まれる既存の画素のエッジ量に基づいて当該領域が画像の変化度合いの大きいものであるか否かを判断する。この場合、一つのブロックを決めて当該ブロックに含まれる既存の画素を抽出し、そのエッジ量の積算値を求め、当該ブロック内では同一の補間処理で画素を生成すればよい。
【0102】
むろん、以上の場合においてより大きな領域毎にブロックを設定して補間処理を選択しても良く、例えば、10×10画素毎をブロックとすることも可能である。また、ブロックを設定せずに補間する画素毎にそれを取り囲む既存の画素についてのエッジ量を判断して補間処理を選択することも可能である。図41の例で言えば内側に配列される3×3の□の格子点は、いずれも○で示す四つの既存の格子点の中に含まれ、それぞれの□の格子点を生成する際にこれを取り囲む○で示す四つの既存の格子点についてのエッジ量に基づいて補間処理を選択するということである。むろん、演算処理上、このような処理の方が都合よい場合に実現すればよい。すなわち、先に補間処理するブロックを特定して補間処理を決めてからその内部に画素を補間するという手法であっても良いし、補間する画素毎にブロックの状況を判定して補間処理を選択しても良い。
【0103】
さらに、上述したフローではステップST308にて予めエッジ画素に隣接する画素にフラグを設定しておき、ブロック毎に同フラグを参照するようにしている。しかしながら、図32にて破線で示すようにブロックを移動させるフローとすることも可能であり、この場合には敢えてフラグを設定する必要もなく、当該ブロックの周囲の画素のエッジ量を判断して補間処理を選択するようにすれば良い。
【0104】
上述したように別々の補間処理を備えているステップST312,ST314の処理は画素補間ステップに相当する。むろん、これらがCPUなどのハードウェアと有機一体的に結合したものと考えると画素補間手段D2を構成することになる。ここで、それぞれの補間処理について詳述する。
一方、このような関係は図29に示す補間関数においてt=0〜1の区間において傾斜が急となりつつ、t=1〜2の区間において増加した重み分を打ち消すように負の側へ引き寄せるカーブとなっている場合に生じる。
【0105】
従って、シャープさを調整しようとする場合には、▲1▼補間関数においてシャープさの基準となる理想的な傾斜を決定し、▲2▼t=0〜1の区間において上記傾斜を発生させるカーブを決定し、▲3▼t=1〜2の区間においてこのカーブによって増える重み付けを相殺するように負の側に引き寄せつつ、オーバーシュートとアンダーシュートが生じやすいカーブを決定することによって実現できる。むろん、この後の作業では特定されるカーブとなるように多次演算関数のパラメータを決定するが、かかるパラメータの決定方法は極めて多様であるから、実質的な意味でS字カーブにおける中央部分の傾斜角度とアンダーシュート及びオーバーシュートを調整することに他ならない。
【0106】
各補間処理には以上のような特性の違いがあり、ステップST310にて画像の変化度合いが小さいと判断されたブロックでは、ステップST312にてニアリスト法の補間処理を実行するし、逆に変化度合いが大きいと判断されたブロックでは、キュービック法やハイブリッドバイキュービック法の補間処理を実行する。キュービック法で補間処理をする場合には演算時間が多大となってしまうものの、画像の変化度合いが小さいような部分ではニアリスト法に切り替えるため、全体としての処理時間は極めて低減する。特に、コンピュータグラフィックスのように同色で一定領域を塗りつぶしてあるような場合には一律にニアリスト法を実行しても全く問題ないので、処理時間は低減する。また、自然画であっても拡大したときにジャギーが目立ちやすい部分というのは面積比でいってもそれほど大きくないのが普通であるから、このように画像の変化度合いを逐次切り替えることによって画質を劣化させることなく処理量を低減させることができる。
【0107】
本実施形態においては、フラグによって二種類ある補間処理のいずれかを実行するようにしているが、画素の変化度合いに対して段階的に対応する複数の補間処理を実行するようにしても良い。また、図42に示すように、二つの補間処理を重ねて実行することとしてその拡大倍率を画像の変化度合いに対応させるようにしても良い。例えば、補間倍率が5倍であるとして画像の変化度合いが小さめであればニアリスト法で5倍に補間処理するし、画像の変化度合いが大きめであればキュービック法で5倍の補間処理する。これらの場合は上述した実施形態と同様であるが、画像の変化度合いが中間的な値である場合にはキュービック法で2倍に補間処理し、残りの2.5倍をニアリスト法で補間処理する。このようにして二つの補間処理でありながら実質的には画像の変化度合いに応じた複数の補間処理を選択できることになる。
【0108】
なお、前述のように、キュービック法のような補間処理の演算量が大きいものについては、補間倍率を整数倍とする。
このように、画像入力デバイスを有するとともに画像出力デバイスを有するコンピュータシステム10において、プリンタドライバ12cはステップST302にて元画像データを入力した後、ステップST304〜108にて画像の変化度合いを検出してフラグを設定しておき、ステップST310にて同フラグを参照することにより、画像の変化度合いの小さいブロックではステップST312にてニアリスト法による補間処理を実行するし、画像の変化度合いの大きいブロックではステップST314にてキュービック法による補間処理を実行するようにしたため、画質を劣化させない範囲でできる限りニアリスト法を実行するように制御され、自動的に最適な補間処理を選択しつつ演算処理量を低減させる。
【0109】
以上説明したように、発明においては、画像をドットマトリクス状の画素で表現した画像データを取得する画像データ取得手段と、上記画像データに基づいて画素の変化度合いを評価する画素変化度合評価手段と、上記画像データにおける構成画素数を増やす補間処理を行うに複数の補間処理の中から選択して実行可能な画素補間手段と、上記画素変化度合評価手段によって評価された画素の変化度合に基づいてその変化度合いに対応して最適な補間結果を得ることが可能な補間処理を選択して上記画素補間手段に実行させる補間処理選択手段とを具備する構成としてある。
【0110】
このように構成した本発明においては、画像をドットマトリクス状の画素で表現した画像データの構成画素数を増やす補間処理を行うにあたり、画素補間手段は複数の補間処理の中からいずれかを選択して実行可能となっており、画像データ取得手段が対象となる画像データを取得すると、上記画素変化度合評価手段は同画像データに基づいて画素の変化度合いを評価する。そして、上記補間処理選択手段はこの画素変化度合評価手段によって評価された画素の変化度合に基づき、その変化度合いに対応して最適な補間結果を得ることが可能な補間処理を選択して上記画素補間手段に実行させる。
【0111】
すなわち、画素の変化度合は補間処理の具体的手法に密接に関連するので、同画素の変化度合を評価して積極的に補間処理を変更することにより、無駄のない補間処理を実現する。
以上説明したように本発明は、画像の変化度合いに応じて補間処理を変更することにより極めて簡易に最適な補間結果を得ることが可能な画像データ補間装置を提供することができる。
画素変化度合評価手段は、画素の変化度合を評価するものであり、評価の手法や結果は特に限定されるものではない。また、補間処理選択手段での同評価結果の利用態様に応じて相対的に変更可能なものである。例えば、具体的な変化度合いを数値として要するのであれば数値を出力すればよいし、単に変化度合いが大きいか否かといったものでよければ、それに合わせて出力すればよい。
【0112】
また、画素の変化自体をどのようにして把握するかも適宜変更可能である。その一例として、上記画素変化度合評価手段は、各画素の明るさのパラメータを求めるとともに周囲の画素のパラメータとの比較で上記変化度合いを算出する構成とすることもできる。
このように構成した場合には、画素の評価の基準として当該画素の明るさを利用するものとし、上記画素変化度合評価手段は各画素の明るさのパラメータを求め、当該画素とその周囲の画素とで同パラメータを比較し、比較結果を上記変化度合いとして算出する。
【0113】
むろん、これ以外にも画素の変化度合いを把握することは可能であるが、多要素のパラメータで表される画素を一律に把握するにあたって明るさのパラメータは比較的容易である。
このようにすれば、画像の変化度合いを明るさのパラメータに基づいて判断するため、比較的容易に同変化度合いを求めることができる。
一方、補間処理の処理内容にも画素の変化度合いが影響を及ぼす範囲が異なってくると言える。例えば、補間処理を実行するにあたって必要とする画素の数が一つであるものもあれば、複数の画素に基づいて補間処理するものもある。特に、後者の例であれば、一つでも変化度合いが大きい画素があると補間処理を変えるのか、あるいは一つでも変化度合が小さい画素があると補間処理を変えるのかといったことが問題となる。
【0114】
このような状況に対する一例として、上記画素変化度合評価手段は、各画素ごとに求めた上記変化度合いを周囲の画素の変化度合の評価についても利用する構成とすることもできる。
補間処理で要する画素が複数であり、そのうちの一つでも変化度合いが大きいときには、二つの態様が考えられる。すなわち、補間処理で対象とする範囲の残り画素については評価する必要が無くなるし、逆に既に評価した画素について変化度合いが小さかったとしても当該評価は不要となる。
【0115】
このような二方向の意味で、各画素ごとに求めた上記変化度合いを周囲の画素の変化度合の評価についても利用することになる。
このようにすれば、一の画素の変化度合いを周囲の画素においても利用することにより、演算量を低減できるし、補間処理の影響を受ける適当な範囲で共有することにより、最適な補間結果を得ることができる。
画素補間手段では、画素の変化度合いに関連する複数の補間処理を実行可能であればよく、補間処理自体としては各種の処理が可能である。その一例として、上記画素補間手段は、変化度合の小さい領域で適用して好適な補間処理として、補間処理前の最近隣画素の画像データを新たな構成画素の画像データに利用する補間処理を実行可能な構成とすることもできる。
【0116】
このように構成した場合には、一つの補間処理として補間処理前の最近隣画素の画像データを新たな構成画素の画像データに利用するが、同じ画素のデータが増えるとしても変化度合の小さい領域であれば何ら問題なく、処理量が少ない点で好適である。
このようにすれば、変化度合の小さい領域では画質に影響することなく処理量を減らすことができる。
また、他の一例として、上記画素補間手段は、変化度合の大きい領域で適用して好適な補間処理として補間する画素の画像データがなだらかに変化するように周囲の画素の画像データから演算処理で補間画素の画像データを算出する補間処理を実行可能な構成とすることもできる。
【0117】
このように構成した場合には、周囲の画素の画像データを利用して演算処理することにより、補間する画素の画像データはなだらかに変化する。このように、なだらかに変化させると、変化度合いの大きい画素の並びがあったとして、この間を補間したとしても段差が目立たない。従って、変化度合いの大きい画素の並びについてこの間を補間したとしても段差が目立たたず画質の劣化を防止することができる。
【0118】
補間する画素の画像データがなだらかに変化する演算手法は各種のものを採用可能であるが、その変化態様は画質に影響を与える。このため、ある意味では演算手法を変えることによって画質を調整可能となるともいえる。画質を調整可能な一例として、上記画素補間手段は、変化度合いの大きい画素間で補間画素の画像データを算出するにあたり、画像データの変化態様を略S字型としつつその傾斜を調整するとともに、両端部位では低い側にアンダーシュートを発生させつつ高い側にオーバーシュートを発生させて高低差を形成してその高低差を調整することにより、画像の変化度合いを最適なものとするように調整する構成とすることもできる。
【0119】
このように構成した場合には、補間する画素の画像データをなだらかに変化させるにあたり、変化度合いの大きい画素間で画像データの変化態様を略S字型とする。従って、なだらかには変化するもののその変化態様は単に直線的に結ぶ勾配よりは急峻とさせることができ、その傾斜を調整して画像の変化度合いを最適なものとすることが可能となる。また、両端部位で低い側にアンダーシュートを発生させつつ高い側にオーバーシュートを発生させると高低差は大きくなり、かつ、その高低差を調整することによっても見かけ上の画像の変化度合いを最適なものとすることが可能となる。このような演算処理の一例としては、多次演算処理の3次たたみ込み内挿法などを使用可能であるし、かかる調整を可能とする演算処理はこれに限られず、他の演算手法を採用することもできる。
【0120】
このようにすれば、S字カーブの傾斜と、アンダーシュートとオーバーシュートによる高低差とにより、画質の調整を比較的容易に実現できる。
画素の変化度合いが画像全体にわたって一定であることはないため、補間処理選択手段は、適宜、補間処理を選択して切り換えなければならない。そして、かかる切り換えの頻度も特に限定されるものでなく、各種の手法を採用可能である。その一例として、上記補間処理選択手段は、上記画素変化度合評価手段によって評価された画素の変化度合に基づいて画素単位で上記補間処理を選択して実行させる構成とすることもできる。
【0121】
このように構成した場合には、上記画素変化度合評価手段によって評価された画素の変化度合に基づき、上記補間処理選択手段が画素単位で上記補間処理を選択して実行させる。すなわち、変化度合いが画素単位で評価される以上、これに対応して補間処理も変更する。
従って、画素単位で補間処理を選択するのできめ細かに補間結果を向上させることができる。
また、他の一例として、上記補間処理選択手段は、上記画素変化度合評価手段によって評価された画素の変化度合に基づいて複数画素からなる所定の小領域毎に上記補間処理を選択して実行させる構成とすることもできる。このようにすれば、小領域毎に補間処理を選択するので処理を簡易化することができる。
【0122】
次に、補間処理を前提としつつシャープさを併せて修正する実施形態を説明する。
図43は、このような画像データ補間装置を表すブロック図である。
元の画像が自然画であるとすると、画像によってはシャープさに欠けることがある。例えば、ピントの甘いような写真などが該当する。また、装置間の解像度を一致させるための拡大にとどまらず、画像自体を拡大して出力したいような場合には、シャープさの欠ける画像はさらにピントが甘くなりかねない。
本画像データ補間装置は画像データについて画素単位での拡大処理を実施する際にシャープさを調整するものであり、画像データ取得手段E1は、同画像データを取得し、画素補間手段E2はこの画像データにおける構成画素数を増やす補間処理を行う。ここで、画素補間手段E2は補間処理に付随して画像のシャープさを変化させることが可能となっており、シャープ度合評価手段E3が上記画像データに基づいて画像のシャープさを評価する。すると、補間処理制御手段E4はそのようにして評価されたシャープさが低ければこれを高めるような補間処理を実行するように上記画素補間手段E2を制御する。
【0123】
上述したように、オペレーティングシステム12aで管理する解像度とカラープリンタ17bの解像度とが一致しない場合にプリンタドライバ12cは解像度を一致させる処理を実行する。通常、カラープリンタ17bの解像度はオペレーティングシステム12aが管理する解像度よりも細かいので、解像度を一致させるためには画素を増やすための補間処理が行われる。このようにアプリケーション12dによって拡大処理する場合と、プリンタドライバ12cによって解像度を一致させる場合に補間処理が行われるが、これらの補間処理で画像のシャープさに影響を与えることができる。
【0124】
画像のシャープさはそれぞれの隣接画素間での変化度合いの総合評価と言える。シャープさに欠ける画像というのは本来のエッジ部分でなだらかに画素が変化していることを意味し、シャープな画像では本来のエッジ部分で隣接画素間の変化度合いが急峻である。補間処理は既存の画素と画素の間に新たな画素を生成することになるので、新たな画素をどのような値とするかで画像のシャープさが変化するからである。
【0125】
この意味で、本発明の画像データ補間装置では、アプリケーション12dやプリンタドライバ12cが上述した画素補間手段E2はもとより、以下に述べるようにシャープ度合評価手段E3や補間処理制御手段E4を構成する。
図44は、補間処理を実行する一例としてのプリンタドライバ12cが実行する解像度変換に関連するソフトウェアフローを示している。
ステップST402は元画像データを取得する。ステップST404〜ST408は、読み込んだ画像データにおける各画素の変化度合いから画像のシャープさを評価する処理である。
【0126】
図33や図34に示すエッジ検出フィルタを利用した結果を各画素のエッジ量Eと呼ぶと、その分布は図35に示すように正規分布的となることが予想される。このようにしてドットマトリクス状の画素の全てにおいて算出するのがステップST406の処理であり、エッジ量の絶対値をステップST408にて集計する。集計は単純な平均値であっても良いが、背景部分の面積比の影響を受けやすいとも言える。例えば、図45では被写体たる人物像が大きく映って背景部分が少ないが、図46では被写体たる人物像が小さく映って背景部分が多くなる。背景部分では画素の変化度合いが小さくなりがちであるから、背景部分の面積割合が大きい図46に示すものでは図45に示すものと比較して平均値が低くなりがちである。この意味で、或る一定のしきい値を設けておき、そのしきい値以上のものだけの平均を算出するようにしても良い。
【0127】
一方、この集計の段階では画像のシャープさを求めるのが主目的であるが、そもそも自然画のようなシャープさを要求される画像であるのか否かをこの集計結果から判断することも可能である。自然画の場合は単なる背景のような部分であっても色の明暗であるとか背景としての実物の形状に応じて同一の画素が並んでいるわけではないことから、エッジ量の絶対値の集計結果は図47に示すようになり、エッジ量は大きめになりがちである。これに対してビジネスグラフのような画像では同色で一定領域を塗りつぶすことが多いので、エッジ量の絶対値の集計結果は図48に示すようになり、エッジ量が低めになる。
【0128】
従って、集計結果の平均値(av)があるしきい値Thより低い場合にはシャープさを増すような処理が必要でない画像と言え、シャープさに影響を与えない補間処理を実行させるようにすればよい。
以上のようにしてステップST404〜ST408において画像を構成する各画素の変化度合いを集計し、当該画像がシャープな画像と言えるか否かの評価を実施したことになるため、これらのステップST404〜ST408の処理がシャープ度合評価手段E3を構成することになる。
【0129】
この評価結果に基づき、ステップST410では画像のシャープさの高低に応じた補間処理を選択する。本実施形態においては、シャープな画像に対してキュービック法による補間処理を実行し、シャープさに欠ける画像に対してハイブリッドバイキュービック法による補間処理を実行する。従って、この意味で当該ステップST410は補間処理制御手段E4を構成するし、別々の補間処理を備えているステップST412,ST414の処理は画素補間手段E2を構成することになる。ここで、それぞれの補間処理について詳述する。
【0130】
各補間処理には以上のような特性の違いがあり、ステップST410にて画像がシャープであると判断されればステップST412にてキュービック法の補間処理を実行するし、逆にシャープではないと判断されるとハイブリッドバイキュービック法の補間処理を実行する。ハイブリッドバイキュービック法で補間処理をする場合には補間するカーブが急峻となってシャープさを増すことができ、かかる補間処理が選択されるのは対象とする画像のシャープさを評価し、その評価結果に基づくものである。このため、操作者は特段の判断をしなくてもシャープでない画像をシャープにすることができる。
【0131】
本実施形態においては、二種類ある補間処理のいずれかを実行するようにしているが、画素の変化度合いに対して段階的に対応する複数の補間処理を実行するようにしても良い。図49はシャープさの評価を4段階に分けて3次内挿法のパラメータを変化させた四つのキュービック法を実施する例を示している。図中「0」は通常のシャープさの画像に適用されるキュービック法のカーブを示しており、「+1」のカーブはわずかにシャープさに欠ける画像に適用されるキュービック法を示しており、「+2」のカーブはかなりシャープさが欠ける画像に適用されるキュービック法を示している。また、シャープすぎる画像については「−1」のカーブのキュービック法を適用する。むろん、これらはいずれもハイブリッドバイキュービック法の場合と同様にS字カーブにおける中央部分の傾斜角度とアンダーシュート及びオーバーシュートを調整して実現している。
【0132】
次に、この場合の手続のフローを図50に示す。
画像のシャープさに基づいてステップST510ではこれらのパラメータを設定し、かかるパラメータを使用したキュービック法をステップST514にて実行する。また、このフローでは、画像のシャープさが部分的に異なることを考慮し、画像を小領域であるブロックに分割して各ブロック毎に最適な補間処理を実行する。すなわち、各ブロック毎にシャープさを評価して補間処理を選択するため、ステップST508にてブロック毎のエッジ量を集計し、ステップST516,ST518にてブロックを順次移動させながら補間処理を実行するようにしている。
【0133】
全ての画像データについて補間処理を終了したら、ステップST420やステップST520にて補間された画像データを出力する。なお、プリンタドライバ12cの場合、解像度変換だけで印刷データが得られるわけではなく、色変換であるとか、ハーフトーン処理が必要になる。従って、ここで画像データを出力するというのは、次の段階へのデータの受け渡しを意味することになる。
このように、画像入力デバイスを有するとともに画像出力デバイスを有するコンピュータシステム10において、プリンタドライバ12cはステップST402にて元画像データを入力した後、ステップST404〜108にて画像のシャープさを評価して集計するとともに、ステップST410にて同集計結果に基づいてシャープさに欠ける画像であればステップST414にてシャープさを増す補間処理を実行するし、シャープな画像であればステップST412にて通常の補間処理を実行するようにしたため、操作者が別段にシャープさを増す画像処理を選択しなくても補間処理を経るだけでシャープな画像とすることができる。
【0134】
以上説明したように、本実施形態においては、画像をドットマトリクス状の画素で表現した画像データを取得する画像データ取得手段と、上記画像データに基づいて画像のシャープさを評価するシャープ度合評価手段と、上記画像データにおける構成画素数を増やす補間処理を行うにあたり画像のシャープさを変化させる補間処理を実行可能な画素補間手段と、上記シャープ度合評価手段によって評価された画像のシャープさが適当でなければシャープさを変化させて適当となるように上記画素補間手段に補間処理を実行させる補間処理制御手段とを具備する構成としてある。
【0135】
このように構成した場合には、画像をドットマトリクス状の画素で表現した画像データの構成画素数を増やす補間処理を行うにあたり、画素補間手段は画像のシャープさを変化させる補間処理を実行可能となっており、画像データ取得手段が対象となる画像データを取得すると、上記シャープ度合評価手段は同画像データに基づいて画像のシャープさを評価する。そして、上記補間処理制御手段はこのシャープ度合評価手段によって評価されたシャープさに基づき、画像のシャープさが適当でなければシャープさを変化させて適当となるように上記画素補間手段に補間処理を実行させる。
【0136】
すなわち、画像のシャープさが低い場合には補間処理によってシャープさを増し、また、シャープすぎる場合にはシャープさを低減させる。
このようにすれば、画像のシャープさに応じて補間処理でシャープさを調整するようにしているため、操作を煩雑にすることなく簡易に画質を向上させることが可能な画像データ補間装置を提供することができる。
補間を実行しつつ画像のシャープさを変化させる手法として画像データの変化態様を略S字型としつつその傾斜を調整するとともに、両端部位では低い側にアンダーシュートを発生させつつ高い側にオーバーシュートを発生させて高低差を形成してその高低差を調整することにより、画像の変化度合いを最適なものとするように調整して画像のシャープさを変化させることを示した。
【0137】
このようなS字カーブをとる一例として、上記画素補間手段は、3次たたみ込み内挿法におけるパラメータを調整して画像のシャープさを変化させる構成とすることもできる。
このように構成した場合には、補間処理として利用される3次たたみ込み内挿法のパラメータを調整することにより、元の画像での隣接する画素の間に補間される画素が3次関数を採用することによってS字を描き、なだらかでありながら急峻さも併せ持つことになる。そして、このS字の曲がり具合をパラメータで調整することによって急峻さが変化し、画像のシャープさが変化する。
【0138】
このようにすれば、多次演算処理として3次たたみ込み内挿法を利用することにより、S字カーブを調整して比較的容易にシャープさを調整することができる。
シャープさを変化させるにあたり、必ずしも一つの演算手法だけを採用する必要はなく、シャープさに影響を与える複数の補間処理を実行することも可能である。そのような一例として、上記画素補間手段は、画像のシャープさの変化度合いの異なる複数の補間処理を実行可能であるとともに、それぞれの補間倍率の割合を変化させて画像のシャープさを調整する構成とすることもできる。
【0139】
このように構成した場合には、複数の補間処理のそれぞれで画像のシャープさの変化度合いが異なり、必要な補間倍率を得るために複数の補間処理を実行する。従って、その補間倍率の分担割合を互いに変化させることにより、シャープさを調整可能となる。例えば、シャープさの変化度合いの低い補間処理とシャープさの変化度合いの高い補間処理とがある場合に両者の分担割合を変化させれば二つの変化度合の中間を選択可能となる。
【0140】
このようにすれば、複数の補間処理で分担する補間倍率を変えるだけであるので、パラメータの設定が簡易になる。
画像のシャープさは、必ずしも高ければよいわけではない。従って、シャープさを増す必要がない場合もある。この場合、操作者が判断することも可能であるが、かかる判断を同時に実現する構成とすることもできる。その一例として、上記補間処理制御手段は、上記画像のシャープさが所定のしきい値を越えていると評価されたときに上記画素補間手段にて画像のシャープさを変化させるように制御する構成とすることもできる。
【0141】
このように構成した場合には、上記補間処理制御手段が上記画像のシャープさと所定のしきい値とを比較し、画像のシャープさがこれを越えていると評価されたときに上記画素補間手段にて画像のシャープさを変化させるように制御する。しかしながら、画像のシャープさがしきい値を越えていないようであればあえて画像のシャープさを変化させるようには制御しない。例えば、自然画であるときの画像のシャープさと非自然画であるときの画像のシャープさとを比較すれば、前者のものの方が一般的にはシャープさが高いと言えるからである。むろん、画像のシャープさは自然画か非自然画かといった分類だけで決まるものでもないため、他の判断要素を加えることも可能である。例えば、画像の分類を取得し、その分類にたった上で上記しきい値を変化させればより柔軟な対応が可能となる。
【0142】
このようにすれば、ある一定の範囲まではシャープさを変化させないようにするため、シャープさを変化させることが不適当な画像まで自動的にシャープさを調整してしまうといった不便さがなくなる。
画面のシャープさは個々の画素を基準とすると、画像全体にわたって一定であるわけではないので、必ずしも一定の補間処理に限られるものでもない。このため、画素単位で画像のシャープさを評価するとともに、評価された画像のシャープさに基づいて画素単位で画像のシャープさを変化させるように制御する構成とすることもできる。また、所定の小領域毎に画像のシャープさを評価するとともに、評価された画像のシャープさに基づいて所定の小領域毎に画像のシャープさを変化させるように制御する構成としてある。
【0143】
次に、画像処理を選択できるようにした実施形態を説明する。
図51は、このような画像データ補間装置を表すブロック図である。
本画像データ補間装置は画像データについて画素単位の画像処理を実施する際に拡大処理とシャープさの変更処理を補間処理として同時に行うものであり、画像データ取得手段F1にて同画像データを取得するともに、画像処理選択手段F2で実施する画像処理を選択する。同時処理判断手段F3は実行すべき画像処理が拡大処理とシャープさの変更処理とを同時に行うものであるか否かを判断するものであり、同時に行う必要がある場合には画素補間手段F4が当該画像データにおける構成画素数を増やす補間処理を行なうのに付随して画像のシャープさを変化させる。そして、拡大処理後の画像データは画像データ出力手段F5が出力する。
【0144】
かかるコンピュータシステム10では、画像入力デバイスであるスキャナ11aなどで画像データを取得し、アプリケーション12dで所定の画像処理を実行する。この画像処理には各種のものがあり、拡大縮小、シャープさの強弱、コントラストの強弱、色合いの修正といったものがあげられる。なお、上述したように、画像出力デバイスとしてのディスプレイ17aやカラープリンタ17bに表示出力するためには解像度の一致が必要であり、特にプリンタの解像度に合わせる際には拡大処理としても実行する補間処理が行われる。そして、この補間処理はプリンタドライバ12cで実行しても良いし、アプリケーション12dで実行することもできる。
【0145】
ここで、アプリケーション12dでは、画像処理として拡大処理とシャープさの変更処理を選択することが可能であり、また、プリンタの解像度に合わせる際に拡大処理するのに伴ってシャープさを変更することも可能である。従って、これらの場合に拡大処理とシャープさの調整処理を実行することになる。
この意味で、本発明の画像データ補間装置は、上述したコンピュータシステム10におけるアプリケーション12dとして実現されることになる。そして、アプリケーション12dは上述した画素補間手段F4はもとより、以下に述べるように画像処理選択手段F2や同時処理判断手段F3を構成する。また、データの入出力が伴うので、ファイル入力やファイル出力あるいは印刷データの出力という意味で画像データ取得手段F1や画像データ出力手段F5を構成する。
【0146】
図52は、アプリケーション12dのソフトウェアフローの概略を示している。アプリケーション12dは図53に示すようなメニュー選択によって各種の画像処理を実行可能であり、必ずしも図52に示すようなソフトウェアフローに限定されるものではないが、理解の便宜のために簡略化して表示している。
ステップST602では元画像データを取得する。アプリケーション12dにおけるファイルメニューなどでスキャナ11aから画像を読み込む処理などが該当する。本実施形態においては後述する画像処理に使用する画像データを生成すればよいので、新規ファイル作成などを選択して画像ファイルを生成するような処理であっても同様に元画像データの取得といえる。オペレーティングシステム12aやハードウェアの構成を除いた元画像データの取得処理が画像データ取得に相当する。むろん、これらがCPUなどのハードウェアと有機一体的に結合したものと考えると画像データ取得手段F1に該当する。
【0147】
ステップST604では、画像処理を選択し、ステップST606,ST608では、選択された画像処理を判断する。画像処理を選択するには、図53に示すように画面上にてウィンドウ枠に表示されるメニューバーの中から、マウス15bによって「画像」の文字部分をクリックすると、図54に示すように実行可能な各種の画像処理が表示される。同図に示す例では、「拡大」処理と、「シャープネス」調整処理と、「コントラスト」調整処理と、「明るさ」調整処理とが実行可能となっている。それぞれの画像処理には「ボタン」スイッチを用意してあり、複数の画像処理を同時に選択可能となっている。また、「ボタン」スイッチで選択されるまでは各処理はグレイ表示されており、非表示状態が一別できるようになっている。
【0148】
所望の画像処理のボタンスイッチで選択状態とするとともに、それぞれのパラメータをセットして「OK」ボタンをクリックすると、選択を入力した処理として扱われ、ステップST606,ST608にて選択された処理を判断する。この例では、ステップST606にて拡大処理が選択されたか否かが判断され、拡大処理が選択されていなければステップST610にてそれぞれに対応する画像処理を実施する。一方、拡大処理が選択されている場合には、ステップST608にてシャープネス調整処理が選択されているか否かを判断する。この結果、拡大処理とシャープネス調整処理が共に選択されているならば、ステップST612へと進み、拡大処理は選択されているもののシャープネス調整処理は選択されていないのであればステップST614へと進む。なお、ステップ112,ST614の処理については後述する。
【0149】
このソフトウェアフローでは、理解しやすくステップST606,ST608の二つの分岐処理で行っているが、実際にはケース処理で多数の分岐を選択するようにしてもよい。本実施形態においては、ステップST604にて画像処理を選択するので画像処理選択ステップに相当するし、ステップST606,ST608にて拡大処理とシャープネス調整処理が共に選択されているか否かを判断することになるので同時処理判断ステップに相当する。むろん、これらがCPUなどのハードウェアと有機一体的に結合したものと考えると画像処理選択手段F2や同時処理判断手段F3に該当する。
【0150】
ここで、画像処理選択手段F2や同時処理判断手段F3の変形例について説明する。
図55〜図57はその一例を示しており、アプリケーション12dが図54に示すように明示的なシャープネス調整処理を備えていないものとし、拡大処理は選択可能となっているとする。この例では、ステップST704にて画像処理の選択として図56に示すような拡大処理のパラメータ入力ウィンドウを表示する。ここでは拡大率を%で選択入力可能となっており、所望の倍率にセットして「OK」ボタンをクリックすると、次の段階へと進行する。通常であれば、拡大率を入力することによってその倍率に応じた補間処理を実行すればよいが、この例ではステップST706にて拡大処理が選択されていると判断すると、ステップST708にて図57に示すようなシャープネス調整の問い合わせ用ウィンドウを表示する。このウィンドウには「NO」、「Low」、「High」の三つの選択肢が用意され、それぞれに択一的に選択可能なボタンが割り当てられている。デフォルトは「NO」であり、操作者は必要に応じて「Low」や「High」を選択できるようになっている。これらはシャープネス強調についての問い合わせであり、「NO」は強調せず、「Low」はやや強調し、「High」は強調するという意味である。
【0151】
そして、選択された結果に基づいて、補間処理であるステップST712,ST714,ST716のいずれかを実行する。拡大処理の際には、後述するように補間処理を選択すればシャープネスを変化させることが可能であるので、拡大処理を選択した場合に自動的に問合せるようにしている。この例では、ステップST704,ST708が画像処理選択ステップに相当するし、ステップST710が同時処理判断ステップに相当する。
【0152】
また、図58〜図60には、直接には画像処理を選択しているようには見えないが、実際には内部的に拡大処理するような場合を示しており、より具体的には印刷処理の場合である。図示しないファイルメニューの中から印刷を選択すると、ステップST804にて図59に示すような印刷メニューを表示する。この印刷メニューの中でも各種のパラメータを設定可能であるが、その一つとして「印刷解像度」の選択ボックスがある。アプリケーション12dが内部的に扱っている解像度とは関係なく、印刷時にどの解像度で印刷実行するかによって解像度の一致作業が必要となる。カラープリンタ17b2の解像度が720dpiであるとして、印刷解像度を720dpiとして印刷する場合には画像データの1ドットが印刷時の1ドットと対応するので解像度変換は不要である。しかしながら、300dpiで印刷する際には印刷データとの対応を一致させなければならず、この意味での解像度変換が必要となってくる。
【0153】
このため、ステップST808にて印刷解像度ボックスのパラメータとオペレーティングシステム12aが管理しているカラープリンタ17b2の解像度とを比較して解像度変換を実施する必要があるか否かを判断し、解像度変換が必要な場合にはステップST810にて図60に示すようなシャープネスの問い合わせ用ウィンドウを表示する。この例では図54の場合と同様にシャープネスの調整程度を%で選択して入力するようにしており、ステップST812では入力されたパラメータに従って処理を選択する。すなわち、調整処理が要求されない場合にはステップST814へと進み、調整処理が要求される場合にはステップST816へ進むようにしている。この後、解像度が一致した状態でステップST818にて印刷処理を実行する。
【0154】
この例では、ステップST804,ST810が画像処理選択ステップに相当するし、ステップST812が同時処理判断手段ステップに相当する。むろん、これらの画像処理選択手段F2と同時処理判断手段F3についてはこれら以外の手法で実現することが可能であることはいうまでもない。
以上のような判断を経て補間処理が実行されることになる。具体的には、拡大処理だけが選択されてシャープさの強調処理が選択されない場合にはニアリスト法による補間処理を実行するし(ステップST614,ST712,ST814)、拡大処理とシャープさの強調処理が選択されたときにはハイブリッドバイキュービック法による補間処理(ステップST612,ST816)とキュービック法による補間処理(ステップST714)を実行する。従って、後者のステップST612,ST816,ST714が画素補間手段F4を構成することになる。
【0155】
本実施形態のように、拡大処理の中でシャープさを調整できるようにすることは、単に拡大処理とシャープさ調整処理とを別個に行うよりも優れている点がある。例えば、シャープさを強調してから拡大する処理を行うとするとしても、拡大処理がニアリスト法のようなものであればジャギーが目立ってしまい、シャープな感じを維持できないことがある。また、ニアリスト法で拡大してからシャープさを強調するとした場合は、ジャギーが目立った状態でシャープにすることになるので、画質が向上するとも言えない。これに対して、一体の拡大処理の中でシャープさをも合わせて行うようにすれば、このような弊害は生じにくい。
【0156】
画像データについて補間処理や他の画像処理を終了したら、ステップST66にて画像データを出力する。ここでいう画像データを出力するというのは広義の意味を含んでおり、カラープリンタ17b2に出力するとか、ハードディスク13bに書き込むといった処理に限られず、データとしては保持しておきながらディスプレイ17b1に表示させ、次なる画像処理に備えるというものであっても構わない。むろん、本実施形態においては、このステップST616が画像データ出力手段F5を構成する。
【0157】
このように、画像入力デバイスや画像出力デバイスなどを有するコンピュータシステム10において、アプリケーション12dは各種の画像処理を実行可能となっており、ステップST604にて実行すべき画像処理を選択させたとき、拡大処理とシャープさの変更処理とが同時に指定された場合には、ステップST608の判断を経てステップST612にてシャープさを増す補間処理を実行し、拡大処理だけが選択された場合にはステップST614にてシャープさに影響を与えない通常の補間処理を実行するようにしたため、拡大処理とシャープさの変更処理とを個別に実行するための余分な時間がかからないし、両者が一体的に実行されるので、確実にシャープさを調整することができる。
【0158】
以上説明したように、発明においては、画像をドットマトリクス状の画素で表現した画像データを取得する画像データ取得手段と、上記画像データに対して個々の画素における画像データを変更することによって各種の画像処理を実行するべく実行可能な画像処理を表示して選択を入力する画像処理選択手段と、この画像処理選択手段によって画像の拡大処理と画像のシャープさの変更処理とが共に選択されたか否かを判断する同時処理判断手段と、この同時処理判断手段によって画像の拡大処理と画像のシャープさの変更処理とが共に選択されたと判断されたときに、上記画像データにおける構成画素数を増やして画像を拡大するにあたり、この補間する画像データの変化度合いを調整することにより選択された画像のシャープさとなるように補間処理を実行可能な画素補間手段と、生成された画像データを出力する画像データ出力手段とを具備する構成としてある。
【0159】
このような構成とした本発明においては、画像データ取得手段にて画像をドットマトリクス状の画素で表現した画像データを取得したら、この画像データに対して個々の画素における画像データを変更することによって各種の画像処理を実行するべく画像処理選択手段にて実行可能な画像処理を表示して選択を入力させる。ここで、同時処理判断手段はこの画像処理選択手段によって画像の拡大処理と画像のシャープさの変更処理とが共に選択されたか否かを判断し、両処理が共に選択されたと判断されれば、画素補間手段は上記画像データにおける構成画素数を増やして画像を拡大するに際し、この補間する画像データの変化度合いを調整することにより選択された画像のシャープさとなるように補間処理を実行する。そして、画像データ出力手段は生成された画像データを出力する。
【0160】
すなわち、画像の拡大とシャープさを変更する処理を同時に実行させる必要が生じれば、補間処理で生成する画像データを調整することによって拡大しつつシャープさを変化させる。
以上説明したように本発明は、拡大処理で必要となる補間処理によって画像のシャープさを変更するようにしたため、拡大処理とシャープさの変更処理とを個別に行う必要が無く、処理時間を短くすることが可能な画像データ補間装置を提供することができる。
【0161】
また、同時に行われるので、拡大処理によってはその後のシャープさを変更する際に良好な結果を得られなくなったりすることもないし、むろん、シャープさを変更してから拡大処理することによってシャープさの変更処理が無駄になってしまうこともない。
画像処理選択手段は実行可能な画像処理を表示して選択を入力するものであり、同時処理判断手段は画像の拡大処理と画像のシャープさの変更処理とが共に選択されたか否かを判断するものである。これらは、結果的に両処理を同時に実行する必要があるか否かを判断するものであればよく、選択の態様などは適宜変更可能である。
【0162】
その一例として、上記画像処理選択手段は、拡大処理の選択とシャープさ変更の選択とを個別に選択可能であり、上記同時処理判断手段は、この画像処理選択手段にて拡大処理の選択とシャープさ変更の選択とが同時に選択されたか否かを判断する構成とすることもできる。
このように構成した場合には、拡大処理の選択とシャープさ変更の選択とを個別に選択可能であるので、拡大処理だけであるとか、シャープさ変更だけが選択されることもある。そして、同時処理判断手段はそのような状況を前提として拡大処理の選択とシャープさ変更の選択とが同時に選択されたか否かを判断する。
【0163】
このようにすれば、拡大処理とシャープさの変更処理が個別に選択できる場合に好適である。
また、他の一例として、上記画像処理選択手段は、拡大処理を選択可能であるとともに、上記同時処理判断手段は、上記画像処理選択手段にて拡大処理が選択されたときにシャープさの変更度合を選択させる構成とすることもできる。
このように構成した場合には、上記画像処理選択手段で拡大処理だけが選択可能となっており、シャープさを変更する選択までは入力しない。しかしながら、この画像処理選択手段にて拡大処理が選択されたときには、上記同時処理判断手段が独自に判断してシャープさの変更度合を選択させる。むろん、シャープさを変更しないことを選択することも可能であって、その場合には拡大処理だけを実行することになるし、逆にシャープさを変化させることを選択した場合には拡大処理とシャープさを変更する処理とを同時に選択されたものと判断する。
【0164】
従って、表面上は拡大処理しか選択できないような場合においても合わせてシャープさを変更することが可能となる。
さらに、上述した例では拡大処理を明示的に選択するようになっているが、拡大処理自体は明示的なものに限られる必要もない。その一例として、上記同時処理判断手段は、上記画像処理選択手段が画像処理に伴って解像度の変換処理を行うときに、シャープさの変更度合を選択させる構成とすることもできる。
【0165】
このように構成した場合には、上記画像処理選択手段において選択された画像処理に伴って付随的に解像度の変換処理を行う必要性が生じることがあり、この場合に上記同時処理判断手段は、シャープさの変更度合を選択させる。そして、シャープさを変化させることを選択した場合には拡大処理とシャープさを変更する処理とを同時に選択されたものと判断する。
このようにすれば、付随的に拡大処理するような場合にもシャープさを合わせて変更することができる。
【0166】
なお、これらの場合における表示と入力の操作はGUIのもとでの画面表示やマウス操作などで実現しても良いし、ハードウェア的なスイッチで実施することも可能であるなど、適宜変更可能である。
【図面の簡単な説明】
【図1】本発明の一実施形態にかかる画像データ補間装置のブロック図である。
【図2】同画像データ補間装置の具体的ハードウェアのブロック図である。
【図3】本発明の画像データ補間装置の他の適用例を示す概略図である。
【図4】本発明の画像データ補間装置の他の適用例を示す概略図である。
【図5】本発明の画像データ補間装置の他の適用例を示す概略図である。
【図6】本発明の画像データ補間装置の他の適用例を示す概略図である。
【図7】本発明の画像データ補間装置における汎用的なフローチャートである。
【図8】本発明の画像データ補間装置におけるより具体的なフローチャートである。
【図9】元画像の大きさを示す図である。
【図10】サンプリング周期を示す図である。
【図11】サンプリング画素数を示す図である。
【図12】元画像とサンプリングされる画素の関係を示す図である。
【図13】非自然画についての輝度のヒストグラムを示す図である。
【図14】自然画についての輝度のヒストグラムを示す図である。
【図15】画像の変化度合いを直交座標の各成分値で表す場合の説明図である。
【図16】画像の変化度合いを縦軸方向と横軸方向の隣接画素における差分値で求める場合の説明図である。
【図17】隣接する全画素間で画像の変化度合いを求める場合の説明図である。
【図18】しきい値を変化させる領域を示す図である。
【図19】プリンタドライバからオペレーティングシステムに問い合わせを行う状況を示す図である。
【図20】ニアリスト法の概念図である。
【図21】ニアリスト法で各格子点のデータが移行される状況を示す図である。
【図22】ニアリスト法の補間前の状況を示す概略図である。
【図23】ニアリスト法の補間後の状況を示す概略図である。
【図24】キュービック法の概念図である。
【図25】キュービック法の具体的適用時におけるデータの変化状況を示す図である。
【図26】キュービック法の具体的適用例を示す図である。
【図27】ハイブリッドバイキュービック法の具体的適用例を示す図である。
【図28】バイリニア法の概念図である。
【図29】補間関数の変化状況を示す図である。
【図30】整数倍の補間処理を示す概略図である。
【図31】本発明の一実施形態にかかる画像データ補間装置の概略ブロック図である。
【図32】本発明の画像データ補間装置におけるフローチャートである。
【図33】エッジ検出フィルタの一例を示す図である。
【図34】エッジ検出フィルタの他の一例を示す図である。
【図35】エッジ量の分布としきい値との関係を示す図である。
【図36】注目画素とフラグの設定判断で対象とする画素の関係を示す図である。
【図37】エッジ量とフラグの設定状況を示す図である。
【図38】既存の画素で形成されるブロックと補間する画素との関係を示す図である。
【図39】注目画素を基準としてブロックを形成する場合を示す図である。
【図40】フラグの状況と領域の対応を示す図である。
【図41】補間する画素でブロックを形成する場合を示す図である。
【図42】画像の変化度合いに応じて複数の補間処理の補間倍率を分配する関係を示す図である。
【図43】本発明の一実施形態にかかる画像データ補間装置の概略ブロック図である。
【図44】本発明の画像データ補間装置におけるフローチャートである。
【図45】背景部分の小さい画像を示す図である。
【図46】背景部分の大きい画像を示す図である。
【図47】自然画のエッジ量の集計結果を示す図である。
【図48】ビジネスグラフのエッジ量の集計結果を示す図である。
【図49】補間関数の変化状況を示す図である。
【図50】補間関数を選択するフローを示す図である。
【図51】本発明の一実施形態にかかる画像データ補間装置の概略ブロック図である。
【図52】本発明の画像データ補間装置におけるフローチャートである。
【図53】画像処理を実行するためのメニューを表示を示す図である。
【図54】画像処理を選択する画面を示す図である。
【図55】画像データ補間装置の変形例を示すフローチャートである。
【図56】拡大処理を指示する画面を示す図である。
【図57】シャープネスを指示する画面を示す図である。
【図58】印刷処理のフローチャートである。
【図59】印刷時のパラメータを指示する画面を示す図である。
【図60】シャープネスを指示する画面を示す図である。
【符号の説明】
10…コンピュータシステム
11a…スキャナ
11a2…スキャナ
11b…デジタルスチルカメラ
11b1…デジタルスチルカメラ
11b2…デジタルスチルカメラ
11c…ビデオカメラ
12…コンピュータ本体
12a…オペレーティングシステム
12b…ディスプレイドライバ
12b…ドライバ
12c…プリンタドライバ
12d…アプリケーション
13a…フロッピーディスクドライブ
13b…ハードディスク
13c…CD−ROMドライブ
14a…モデム
14a2…モデム
15a…キーボード
15b…マウス
17a…ディスプレイ
17a1…ディスプレイ
17b…カラープリンタ
17b1…カラープリンタ
17b2…カラープリンタ
18a…カラーファクシミリ装置
18b…カラーコピー装置[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an object pixel extraction device, an object pixel extraction method, a medium on which an object pixel extraction program is recorded, and an object pixel extraction program.
[0002]
[Prior art]
When an image is handled by a computer or the like, the image is expressed by a dot matrix pixel, and each pixel is expressed by a gradation value. For example, photographs and computer graphics are often displayed with pixels of 640 dots in the horizontal direction and 480 dots in the vertical direction on a computer screen.
[0003]
On the other hand, the performance of color printers is remarkably improved, and the dot density is extremely high, such as 720 dots / inch (dpi). Then, if an image of 640 × 480 dots is printed in correspondence with each dot, the image becomes extremely small. In this case, since the gradation values are different and the meaning of the resolution itself is different, it is necessary to interpolate between dots and convert the data into printing data.
[0004]
Conventionally, as a method for interpolating dots in such a case, nearest neighbor interpolation (nearlist neighbor interpolation: hereinafter referred to as the nearlist method) or cubic convolution interpolation (cubic convolution interpolation: hereinafter) A method such as a cubic method is known. Japanese Patent Laid-Open No. 6-225140 discloses a technique for preparing a dot pattern in advance so that the edge is smoothed before smoothing the edge when the dot is interpolated. Has been.
[0005]
[Problems to be solved by the invention]
The conventional interpolation technique described above has the following problems.
Various methods such as the near list method and the cubic method have their advantages and disadvantages, but it is difficult for the user to select them, and if fixed to one of them, it is difficult for the poor image The quality of the interpolation result is degraded.
In the invention disclosed in Japanese Patent Laid-Open No. 6-225140, since the patterns are prepared in advance, the interpolation magnification must be fixed, and the number of patterns becomes enormous if a color image is assumed. It is difficult to prepare in advance.
[0006]
The present invention has been made in view of the above problems, and records an object pixel extraction device, an object pixel extraction method, and an object pixel extraction program capable of extracting object pixels when efficiently interpolating including a color image. An object is to provide a medium and an object pixel extraction program.
[0007]
[Means for Solving the Problems]
The object pixel extraction device provided by the present invention includes an image data acquisition unit that acquires image data of an image expressed by pixels in a dot matrix, and a large number of pixels are extracted from the central portion of the image with respect to the image data. The pixel is extracted and the luminance distribution is calculated for the extracted pixel as a target, Of all the luminance values in the gradation range that the luminance can take In the brightness distribution Distribution number is not 0 And a means for calculating the number of colors used by regarding the number of luminance values as the number of colors. According to the present invention, the pixel of the object can be more easily extracted by adopting a mechanism in which a large number of pixels are extracted from the central portion of the image.
In addition, the image data interpolation device provided in the present application includes a plurality of image data acquisition means for acquiring image data in which an image is expressed by pixels in a dot matrix, and a plurality of interpolation processes for increasing the number of constituent pixels in the image data. A pixel interpolation unit that can be selected and executed from the interpolation process, a feature amount acquisition unit that acquires a feature amount related to the interpolation process for the image data, and a feature amount acquired by the feature amount acquisition unit Correspondingly, an interpolation process selection unit that selects an interpolation process capable of obtaining an optimal interpolation result and causes the pixel interpolation unit to execute is selected.
[0008]
In the present invention configured as described above, when performing an interpolation process for increasing the number of constituent pixels of image data in which an image is represented by a dot matrix pixel, the pixel interpolation means selects one of a plurality of interpolation processes. When the image data acquisition unit acquires target image data, the feature amount acquisition unit acquires the feature amount related to the interpolation processing for the image data, and the interpolation processing selection unit An interpolation process capable of obtaining an optimal interpolation result corresponding to the feature quantity acquired by the feature quantity acquisition unit is selected and executed by the pixel interpolation unit. In other words, the feature amount of the image is acquired by itself and the optimum interpolation process is selected.
[0009]
As described above, the method for selecting the optimum interpolation process according to the image characteristics is not necessarily limited to a substantial apparatus, and it can be easily understood that the method also functions. For this reason, the image data interpolation method provided in the present invention includes the step of acquiring the image data and performing the interpolation processing for increasing the number of constituent pixels for the image data in which the image is represented by pixels in a dot matrix. A step of acquiring a feature amount related to the interpolation processing for the data, and a step of selecting an interpolation processing capable of obtaining an optimal interpolation result from a plurality of interpolation processing corresponding to the acquired feature amount And a step of executing an interpolation process selected from the plurality of interpolation processes.
[0010]
That is, it is not necessarily limited to a substantial apparatus, and there is no difference that the method is also effective.
Such an image data interpolating device may exist alone or may be used in a state of being incorporated in a certain device, but the idea of the invention is not limited to this and includes various aspects. Therefore, it can be changed as appropriate, such as software or hardware.
When the software of the image data interpolating apparatus is implemented as an embodiment of the idea of the invention, the present invention naturally exists on a recording medium on which such software is recorded, and must be used.
[0011]
As an example, a medium on which an image data interpolation program for executing interpolation processing by a computer provided by the present invention is recorded performs interpolation processing for increasing the number of constituent pixels for image data in which an image is represented by dot matrix pixels. In obtaining the image data, obtaining a feature amount related to the interpolation processing for the image data, and optimal interpolation from among a plurality of interpolation processes corresponding to the obtained feature amount The computer is configured to execute a step of selecting an interpolation process capable of obtaining a result and a step of executing an interpolation process selected from the plurality of interpolation processes.
[0012]
Of course, the recording medium may be a magnetic recording medium, a magneto-optical recording medium, or any recording medium that will be developed in the future. In addition, the duplication stages such as the primary duplication product and the secondary duplication product are the same without any question. In addition, even when the communication method is used as a supply method, the present invention is not changed.
Further, even when a part is software and a part is realized by hardware, the idea of the invention is not completely different, and a part is stored on a recording medium and is appropriately changed as necessary. It may be in the form of being read.
When the present invention is implemented by software, the present invention is not only realized as a medium storing a program, but the present invention is naturally realized as a program itself, and the program itself is also included in the present invention.
[0013]
Here, the image data is obtained by expressing the image with pixels in a dot matrix shape, and may be a color image or a monochrome image as long as it is expressed by data for each pixel. Further, the gradation value may be a two-gradation value or a multi-gradation value.
The image data acquisition means acquires such image data, and may be any means that holds the target image data when the pixel interpolation means performs an interpolation process for increasing the number of constituent pixels. Therefore, the acquisition method is not particularly limited, and various methods can be employed. For example, it may be acquired from an external device through an interface, or may be provided with an imaging unit to capture an image. Alternatively, a computer graphic application may be executed and input from a mouse or a keyboard.
[0014]
The pixel interpolating means only needs to be able to select a plurality of interpolation processes by various methods, and any pixel interpolation means that has options with substantially different interpolation process results may be used. Therefore, not all options need to be independent interpolation methods.
As an example thereof, the pixel interpolation means may be configured to have an interpolation process for executing a plurality of interpolation processes as an option for the interpolation process.
In such a configuration, the pixel interpolating means executes a plurality of interpolation processes as one of the interpolation process options. That is, after interpolating a pixel by a certain interpolation process first, the pixel is interpolated by another interpolation process. As a result, even if there are two types of independent interpolation processing, it can be said that there are three types of options including processing that is performed by overlapping them.
[0015]
Therefore, since a plurality of interpolation processes can be executed as a corresponding example of the interpolation process, variations in the interpolation process can be increased.
Further, the interpolation process to be executed need not be limited to a constant value for all pixels. As one example, the feature amount acquisition unit acquires a feature amount for each partial region of the image, and the interpolation processing selection unit performs interpolation in the pixel interpolation unit based on the feature amount acquired for each region. It is also possible to adopt a configuration in which processing is selected and executed.
[0016]
In such a configuration, the feature amount acquisition unit acquires a feature amount for each partial region of the image. Depending on the pros and cons of each interpolation process, there are some that are preferably applied uniformly and others that are not. And when it does not need to be uniform, it is preferable to make use of each feature. For this reason, the interpolation processing selection means selects and executes the interpolation processing in the pixel interpolation means based on the feature amount acquired for each partial region.
[0017]
For example, even if a simple interpolation process is employed where there is no change in the image, it is difficult to understand the deterioration of the image quality, but in a place where the change is severe, if the interpolation method is simple, the deterioration of the image quality becomes easy to understand. Accordingly, pixel interpolation increases the number of pixels between the existing pixels, so that the interpolation process can be appropriately changed for the increased number of pixels.
Therefore, it is not necessary to perform uniform interpolation processing on the entire image, and an optimum result can be obtained in a comprehensive sense.
[0018]
The reason why the interpolation process is selected is that the interpolation result varies depending on the interpolation process, and there are various feature quantities that are the key for selecting the interpolation method. As an example, the pixel interpolation means can execute an optimum interpolation process for each of a natural image and a non-natural image, and the feature amount acquisition means can determine that the image represented by the image data is a non-natural image. A feature amount for determining whether the image is a natural image based on the feature amount, and the pixel interpolation unit performs an interpolation process optimal for the natural image when the image is determined to be a natural image. It is also possible to adopt a configuration in which the pixel interpolation means executes an optimum interpolation process for a non-natural image when it is determined to be a non-natural image.
[0019]
In such a configuration, it is assumed that the pixel interpolation means can execute an optimum interpolation process for each of a natural image and a non-natural image. The feature amount acquisition unit acquires a feature amount that can be determined as a natural image, and the interpolation processing selection unit determines whether the image is a natural image based on the feature amount. The pixel interpolation unit executes the optimum interpolation process for the non-natural image when it is determined that the non-natural image is determined.
[0020]
Accordingly, it is possible to select an optimal interpolation process according to a natural image and a non-natural image that are close processing objects.
A natural picture means something like a so-called live-action picture, and a non-natural picture means computer graphics represented by a business graph. Characteristically, it is considered that multiple colors are used for natural images, and the number of colors used is small for non-natural images. Of course, it may correspond to other features found, but the pixel interpolation means can execute optimum interpolation processing for natural images and non-natural images having such characteristic differences. Yes.
[0021]
More specifically, the pixel interpolating unit executes interpolation processing by nearest neighbor interpolation for a non-natural image and performs interpolation processing by a third-order convolution interpolation method for a natural image; can do.
In this way, the advantage of high-speed processing by the nearest neighbor interpolation method is obtained in the case of a non-natural image, and the advantage of maintaining sharpness by a third-order convolution interpolation method is obtained in the case of a natural image.
There are many differences in the amount of expression per pixel between non-natural images and natural images, and the nearest neighbor interpolation method is simple, so high-speed processing is possible. Can lead to an unnatural feeling. On the other hand, although the third-order convolution interpolation method can maintain sharpness, the processing is complicated, and it can be said that the calculation load required for the interpolation processing is large and the processing time is long.
[0022]
Assuming such a pros and cons, interpolation processing by nearest neighbor interpolation is performed on non-natural images, so that high-speed processing can be expected, and cubic convolution interpolation is performed on natural images. The sharpness is ensured because the interpolation process is executed.
The feature quantity acquisition unit acquires the feature quantity of the image data, and the feature quantity itself has a property related to the interpolation processing. As described above, an example is obtained by determining whether the image is a natural image or a non-natural image, but there are various acquisition methods.
[0023]
As an example thereof, the feature amount acquisition unit may be configured to acquire the feature amount for determining the type of image represented by the image data by counting the data of each pixel in the acquired image data based on a predetermined reference. it can.
In the case of such a configuration, the feature amount acquisition unit adds up the data of each pixel on a predetermined basis. That is, a feature amount for determining the type of content of the image is acquired from the image data itself. Of course, various statistical methods can be used as the aggregation method, and a histogram is an example.
[0024]
In this way, since the image data is aggregated to determine the type of image, the optimum interpolation process can be reliably selected even when there is no other information.
As the data to be aggregated, for example, the number of colors used can be raised. As described above, in computer graphics, if a person who draws designates a color, many colors cannot be used. In particular, the trend is particularly strong in business graphs. On the other hand, if it is a natural image, even if it is a single color, it can be multicolored by adjusting light rays, and the number of colors used is extremely large. Therefore, if the number of colors used for image data is counted, it can be determined whether the image is a natural image or a non-natural image.
[0025]
In this case, the number of colors used need not be strictly counted. For example, a luminance histogram for each pixel may be aggregated, and the number of colors used may be determined from the frequency of use of each luminance. It is difficult to find the relationship between the histogram of luminance and the number of colors used for natural images, but it can be easily understood by assuming a business graph. Some things like business graphs use fewer colors, and even if you consider a filled graph, only a few colors are often used. In this case, the luminance histogram appears as a spectrum. Since the luminance may match in different colors, the usage frequency of the luminance does not necessarily match the number of used colors, but it can be easily understood whether it is large or small. For example, if it is a natural picture, there will be shadows and so on, so that the luminance used will surely increase, and the histogram should appear as a continuous curve rather than a spectrum.
[0026]
In this case, it is apparent from the same purpose that the luminance itself does not have to be accurate. For example, accurate luminance for RGB image data is not usually obtained by calculation alone. However, in television broadcasting and the like, luminance is obtained from RGB by simple weighted addition. That is, such a simple method can also be used.
Whether the histogram has a spectrum shape or a curve shape is also derived from the aggregated result, and based on this, it can be determined whether it is a natural image or a non-natural image and can be determined as a feature amount. . Further, in addition to the viewpoint of whether or not it is a natural image, it can also be acquired as a feature amount such as whether or not it is a bright image. That is, when there is a suitable interpolation process for a bright image and a suitable interpolation process for a dark image, these can be selected.
[0027]
It is also possible to aggregate the degree of change in the data of each pixel. When drawing a picture with computer graphics, the degree of change is simply the user's drawing, but if it is a natural picture taken of a landscape, the amount of information is large in each stage, which is reflected in the magnitude of the degree of change in pixels. Come. Therefore, it is possible to determine the type of image from the degree of change between pixels.
On the other hand, since the feature amount acquisition means is intended to determine the image, it can be said that it is only necessary to aggregate the image data to the extent necessary for the determination. In this sense, the feature quantity acquisition means may be configured to extract and aggregate the data for some pixels constituting the image data.
[0028]
In the case of such a configuration, the gradation values are extracted and totaled only for some of the pixels constituting the image data.
Here, various methods can be adopted as the extraction method. It is possible to select and sum up pixels at random as a simple one, or to find and sum up a specific object. Further, the trend of the counting result may be predicted while counting. In the example of determining whether the image is a natural image or a non-natural image, if it is found that the use color gently includes the periphery, it can be determined that the image is a natural image at that time. If it is known that the number of colors is extremely large, the determination may be made at that time.
[0029]
In such a case, the processing can be speeded up because the processing is performed without adding up all of the image data.
Also, assuming a computer or the like, image data is processed as a file, but it is often possible to determine the type of image from the file format. Therefore, it can also be set as the structure which acquires a feature-value based on the format of the said image data. For example, natural images are often compressed using the JPEG method. Therefore, if the image data format is JPEG, it can be determined as a natural image. Also, business graphs are often given a file extension representing an application that outputs the business graph. Accordingly, it is possible to determine the type of image by determining that such an extension is also a format.
[0030]
In this way, since the type of image is determined based on the format of the image data, the amount of processing can be reduced compared to the case of analyzing the image data.
On the other hand, the feature quantity related to the interpolation process does not necessarily have to be a kind of image type. Therefore, the feature quantity acquisition means can be configured to acquire the interpolation magnification to be executed and use it as the feature quantity.
The interpolation magnification is also related to the interpolation result. For example, the image does not become rough while the interpolation magnification is small, but the image becomes rough when the interpolation magnification increases. In this case, it can be said that the interpolation process must be complicated in the latter case. For this reason, the feature quantity acquisition means acquires the interpolation magnification.
[0031]
Of course, in this case, the threshold value of the interpolation magnification changes depending on the interpolation process to be selected, and it is possible to change it step by step when moving from one interpolation process to another. is there.
In this way, an optimal interpolation process can be selected based on factors other than the type of image data.
[0032]
【The invention's effect】
As described above, according to the present invention, the pixel of an object can be easily extracted by adopting a mechanism in which many pixels are extracted from the central portion of the image.
In addition, according to the present application, the feature amount of the image is acquired by itself and the optimum interpolation process is selected, and the interpolation process according to the feature of the image is performed. An image data interpolation device, an image data interpolation method, and a medium on which an image data interpolation program is recorded can be provided.
[0033]
Furthermore, it is possible to perform an optimal interpolation process by classifying a natural image and a non-natural image as simple classification of image data.
For non-natural images, interpolation processing by the nearest neighbor interpolation method that is most suitable in nature is performed, and for natural images, interpolation processing by the most suitable third-order convolution interpolation method is performed. It becomes possible to execute.
[0034]
Furthermore, an optimum interpolation result can be obtained by selecting an interpolation process based on sharpness, which is the degree of change in pixels.
Furthermore, it is possible to execute the interpolation process with an extremely simple process in an area where the pixel change degree is small.
Furthermore, it is possible to improve the image quality by changing the image data gently in the region where the degree of change is large.
[0035]
Furthermore, by executing a plurality of interpolation processes in an overlapping manner, it is possible to increase the number of interpolation processes that can be used substantially and to perform detailed processes.
Furthermore, it is possible to select and execute an optimal interpolation process for each image area.
Furthermore, it is possible to substantially use one interpolation process as a plurality of pixel interpolation processes simply by adjusting calculation parameters.
[0036]
Further, when both the image enlargement process and the image sharpness change process are selected, the process is extremely efficiently performed.
Furthermore, it is possible to provide an image data interpolation processing computer that exhibits the same effect.
[0037]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
FIG. 1 is a block diagram showing the main configuration of the image data interpolation apparatus of the present invention.
Assuming digital processing, an image is expressed by a dot matrix pixel, and image data is composed of a collection of data representing each pixel. In a system that processes in units of pixels, image enlargement / reduction is performed in units of pixels. The present image data interpolation apparatus performs such enlargement processing in units of pixels. The image data acquisition unit C1 acquires such image data, and the pixel interpolation unit C2 includes the number of constituent pixels in the image data. Interpolation processing to increase Here, the pixel interpolation unit C2 can execute a plurality of interpolation processes as the interpolation process. When the feature amount acquisition unit C3 acquires the feature amount related to the interpolation process for the image data, the interpolation process selection unit C4 selects an interpolation process capable of obtaining an optimal interpolation result corresponding to the feature amount, and causes the pixel interpolation means C2 to execute it.
[0038]
In the present embodiment, a
FIG. 2 is a block diagram showing the
The
[0039]
A
In addition, a
[0040]
Furthermore, a
[0041]
The
On the other hand, in order to display or output to the image output device while inputting an image using such an image input device, a predetermined program is executed in the computer
[0042]
Of course, the computer
[0043]
Here, the
[0044]
In such a
[0045]
Therefore, resolution conversion is performed in order to eliminate the difference in pixel density for each actual device while determining the reference pixel density in the
[0046]
The resolution conversion corresponds to an interpolation process because it is a process of increasing the number of constituent pixels in the image data, and the
[0047]
The
In the present embodiment, the image data interpolation apparatus is realized as the
[0048]
In addition, the present invention can naturally be applied to various apparatuses that handle image data such as a
7 and 8 show a software flow related to resolution conversion executed by the
[0049]
In step ST102, original image data is acquired. When the
[0050]
Step ST104 is processing for extracting a feature amount from the read image data. Details of the feature amount extraction processing will be described later. In step ST106, an optimum interpolation process is selected for the image data based on the obtained feature quantity, and a flag representing the interpolation process is set. In step ST108, the
[0051]
Steps ST116 and ST118 show processing for moving the blocks until the interpolation processing is completed for all blocks. The interpolation process does not necessarily need to be a uniform process over the entire image, and the interpolation process can be changed for each block unit area.
Therefore, when the optimum interpolation process is to be performed for each block, when the interpolation process in each block is completed, the process is re-executed from the process of extracting the feature amount of the next block in step ST104. On the other hand, when processing is performed uniformly over the entire image data, the processing from step ST108 onward is repeated.
[0052]
When all the blocks are completed, the interpolated image data is output in step ST120. In the case of the
Next, a more specific process for the general-purpose flow as described above will be described. In this embodiment, it is determined whether the original image is computer graphics (non-natural image) or a photograph (natural image), and interpolation processing is selected based on the determination result. In step ST202, the original image data is input in the same manner as in step ST102.
[0053]
Several methods can be adopted as a method for determining the type of the original image, but in this embodiment, the aggregation process is performed using the image data.
Specifically, the number of colors used in the image data is obtained, and if it is large, it is determined as a natural image, and if it is small, it is determined as a non-natural image. In the case of a photograph, even if an object of a single color is shown, the number of colors increases because the range from a bright place to a dark place is created by the adjustment of light rays and shadows. Because of these characteristics, it is possible to determine whether the image is a natural image or a non-natural image by looking at the number of colors. However, it is not efficient in the processing in the program to count how many colors are actually used among 16.7 million colors. In addition, even natural images are often used only partly, making it difficult to distinguish them from non-natural images.
[0054]
For this reason, in the present embodiment, the luminance of each pixel is obtained, and a histogram of the number of pixels is aggregated within a range that the luminance can take to determine the tendency of the number of used colors. Of course, there are multiple colors with the same brightness among 16.7 million colors, but if we focus only on the comparison with non-natural images, it will be compared whether there is more or less color or brightness. Is possible. Further, if it is considered that only about 64 colors are used for the non-natural image, it can be sufficiently judged even if the range of brightness is 256 gradations.
[0055]
On the other hand, since the summation of luminance only determines the general tendency of the image data as described above, it is not always necessary to sum up all the pixels. That is, a thinning process is executed to select pixels to be counted.
As shown in FIG. 9, in the case of a bitmap image, it is formed as a two-dimensional dot matrix consisting of predetermined dots in the vertical direction and predetermined dots in the horizontal direction, and all pixels can be obtained if an accurate luminance distribution is obtained. It is necessary to examine the brightness. However, it does not necessarily have to be accurate here. Therefore, it is possible to perform thinning to such an extent that it is within a certain error range. According to the statistical error, the error with respect to the number of samples N can be expressed as approximately 1 / (2 ** (1/2)). However, ** represents a power. Therefore, in order to perform processing with an error of about 1%, N = 10000.
[0056]
Here, the bitmap screen shown in FIG. 9 has the number of pixels of (width) × (height), and the sampling period ratio is
ratio = min (width, height) /
And Here, min (width, height) is the smaller of width and height, and A is a constant. Further, the sampling period ratio here indicates how many pixels are sampled, and the pixels marked with ◯ in FIG. 10 indicate the case where the sampling period ratio = 2. That is, one pixel is sampled every two pixels in the vertical and horizontal directions, and every other pixel is sampled. The number of sampling pixels in one line when A = 200 is as shown in FIG.
[0057]
As can be seen from the figure, except for the sampling period ratio = 1 when sampling is not performed, when there is a width of 200 pixels or more, the number of samples is at least 100 pixels. Therefore, in the case of 200 pixels or more in the vertical direction and the horizontal direction, (100 pixels) × (100 pixels) = (10000 pixels) is secured, and the error can be reduced to 1% or less.
Here, the reason for using min (width, height) as a reference is as follows. For example, as shown in FIG. 12 (a), when width >> height is satisfied and the sampling period ratio is determined by the longer width, as shown in FIG. 12 (b). In addition, in the vertical direction, only two lines of the upper end and the lower end may be extracted. However, if the sampling period ratio is determined based on the smaller one as min (width, height), thinning is performed so as to include the intermediate portion in the smaller vertical direction as shown in FIG. Will be able to.
[0058]
In this example, thinning is performed with an accurate sampling period for pixels in the vertical and horizontal directions. This is suitable for processing while thinning out pixels that are sequentially input. However, when all the pixels have been input, the pixels may be selected by randomly specifying coordinates in the vertical direction or the horizontal direction. In this way, when the necessary minimum number of pixels, such as 10,000 pixels, is determined, the extraction process is repeated at random until the number of pixels reaches 10,000, and the extraction is stopped when the number of pixels reaches 10,000.
[0059]
If the pixel data for the selected pixel has luminance as its component element, the distribution can be obtained using the luminance value. However, even in the case of image data in which the luminance value is not a direct component value, the component value that indirectly represents the luminance is provided. Accordingly, the luminance value can be obtained by performing conversion from the color space where the luminance value is not a direct component value to the color space where the luminance value is a direct component value.
[0060]
The color conversion between different color spaces is not uniquely determined by the conversion formula, but the color conversion with each component value as a coordinate is obtained and the color conversion is stored. It is necessary to perform sequential conversion with reference to the table. Then, strictly speaking, it is necessary to have a color conversion table of 16.7 million elements. As a result of considering the efficient use of storage resources, instead of preparing correspondences for all coordinate values, we usually prepare correspondences for appropriate discrete grid points and use interpolation operations together. Like to do. However, since such an interpolation calculation is possible through several multiplications and additions, the amount of calculation processing becomes enormous.
[0061]
That is, if a full-size color conversion table is used, the processing amount is reduced, but the table size becomes an unrealistic problem, and if the table size is made a realistic size, the calculation processing amount becomes unrealistic. There are many cases.
In view of such a situation, in the present embodiment, as used in the case of a television or the like, the following conversion formula for obtaining luminance from the three primary colors of RGB is adopted. That is, for the luminance yp at the point P, from the RGB component values (Rp, Gp, Bp),
yp = 0.30Rp + 0.59Gp + 0.11Bp
And In this way, the luminance value can be obtained by only three multiplications and two additions.
[0062]
In this embodiment, as a result of targeting the RGB color space, such a conversion formula is adopted, but since each component value indicates the brightness of the color in the background, each component is When the value is viewed alone, it has a property of linearly corresponding to the luminance. Therefore, more roughly speaking, without considering each addition ratio simply
yp = (Rp + Gp + Bp) / 3
It is not impossible to simplify it.
[0063]
In step ST204, the luminance of the pixels subjected to the thinning process as described above is histogrammed. After counting, the number of colors is counted in step ST206. If the number of colors is small, the luminance distribution is sparse, and a non-natural image such as a business graph appears as a line spectrum as shown in FIG. 13, and a natural image such as a photograph as shown in FIG. A gentle curve is expected.
For this reason, in step ST206, the number of luminance values with a distribution number other than “0” out of 256 gradations is counted, and in step ST208, it is determined that the image is not a natural image when it is less than “64” colors. When the color is “64” or more, it is determined that the image is a natural image. On the other hand, whether the distribution is a line spectrum or not can be determined by the adjacent ratio of luminance values whose distribution number is not “0”. That is, it is determined whether or not there is a distribution number in the luminance values adjacent to the luminance value that is not “0”. If at least one of the two adjacent luminance values is adjacent, nothing is performed, and if both are not adjacent, the count is performed. As a result, the ratio between the number of luminance values other than “0” and the count value is used. Just judge. For example, if the number of luminance values that are not “0” is “80” and the number of non-adjacent ones is “80”, it can be seen that the line spectrum is distributed. Of course, the number of colors used corresponds to the feature amount.
[0064]
Note that the feature amount acquisition method is not limited to these, and other methods can be realized.
First, thinning out pixels to be counted is not limited to thinning out at equal intervals as described above. For example, it is possible to find the original object part in the image and totalize the feature values for the pixel.
Based on the empirical fact that such an object has a sharper image than other parts, it is determined that the sharp part is a pixel of the object. When the image data is composed of pixels in a dot matrix shape, the difference in the same data between adjacent pixels becomes large at the edge portion of the image. This difference is a luminance gradient, which is called an edge degree, and the edge degree at each pixel is determined. When considering XY orthogonal coordinates as shown in FIG. 15, the vector of the degree of change in the image can be calculated by obtaining the X-axis direction component and the Y-axis direction component, respectively. In a digital image composed of dot matrix pixels, as shown in FIG. 16, the pixels are adjacent to each other in the vertical axis direction and the horizontal axis direction. The difference value fx in the X direction and the difference value fy in the Y direction are
fx = f (x + 1, y) −f (x, y)
fy = f (x, y + 1) −f (x, y)
It is expressed as Accordingly, the magnitude of the vector | g (x, y) |
| G (x, y) | = (fx ** 2 + fy ** 2) ** (1/2)
It is expressed as Of course, the edge degree is represented by | g (x, y) |. Note that the pixels are originally arranged in a grid pattern as shown in FIG. 17, and there are eight adjacent pixels when attention is paid to the center pixel. Accordingly, similarly, the difference between the image data of each adjacent pixel may be represented by a vector, and the sum of the vectors may be determined as the degree of image change.
[0065]
Since the edge degree is obtained for each pixel as described above, basically, a pixel having a higher edge degree compared to a certain threshold value may be determined as an object pixel. However, considering from empirical facts, the object is often located at the center of the composition. This fact supports that the pixel of the object can be more easily extracted by adopting a mechanism in which many pixels are extracted from the central portion.
[0066]
For this reason, as shown in FIG. 18, the threshold values Th1, Th2, and Th3 to be compared for each portion in the image can be made different. Of course, in this example,
Th1 <Th2 <Th3
The closer to the center, the lower the threshold value, and even if the edge degree is relatively low, the object is determined.
Of course, the image data for the pixels determined as objects in this way is totaled to obtain a feature amount corresponding to the interpolation processing.
[0067]
On the other hand, the feature amount does not necessarily have to be obtained by collecting image data. Any method may be used as long as the interpolation result is good or not depending on the interpolation processing.
Whether or not the image of the image data is a natural image can also be determined from the format of the image file serving as the printing source. FIG. 19 shows a situation in which the
Of course, it can be judged whether it is a draw file structure or a bitmap file structure from the information contained in the top part of the data file, not from the extension, so it is natural or non-natural. It will be possible to get a guide such as. That is, if it is a standard which can infer the content of such an image, a feature-value will be comprised.
[0068]
As described above, when it is determined whether the original image data input in step ST202 is a natural image or a non-natural image, appropriate interpolation processing corresponding to each is executed.
Here, each method of interpolation processing executed in the present embodiment will be described.
As an interpolation process suitable for non-natural images such as computer graphics, a near list method interpolation process can be executed in step ST210. In the near list method, as shown in FIG. 20, the distance between the four surrounding grid points Pij, Pi + 1j, Pij + 1, Pi + 1j + 1 and the point Puv to be interpolated is obtained, and the data of the nearest grid point is transferred as it is. This can be expressed as a general formula:
Puv = Pij
Here, i = [u + 0.5] and j = [v + 0.5]. In addition, [] has shown taking an integer part with a Gauss symbol.
[0069]
FIG. 21 shows a situation in which the number of pixels is interpolated by three times in the vertical and horizontal directions by the near list method. It is assumed that there are four corner pixels (□ Δ ○ ●) before interpolation, and the data of the nearest pixel among these pixels is transferred as it is to the pixel generated by interpolation. That is, in this example, the pixels adjacent to the pixels at the four corners are respectively copied. Further, when such processing is performed, an original image in which black pixels are diagonally arranged with white pixels as a background as shown in FIG. 22 is diagonally enlarged while black pixels are enlarged three times vertically and horizontally as shown in FIG. Will be placed in the direction.
[0070]
The near list method has a feature that the edge of an image is maintained as it is. Therefore, when enlarged, the edge of the jaggy is conspicuous, but the edge is held as an edge. On the other hand, in other interpolation processes, the pixel to be interpolated is changed gently using the data of surrounding pixels. Therefore, while jaggies are inconspicuous, the information of the original original image is deleted, and the edges are lost, making it unsuitable for non-natural images such as computer graphics.
[0071]
On the other hand, as an interpolation process suitable for a natural image such as a photograph, a cubic method interpolation process is executed in step ST212. As shown in FIG. 24, the cubic method uses data of a total of 16 lattice points including not only four lattice points surrounding the point Puv to be interpolated but also surrounding lattice points.
When a total of 16 grid points surrounding the interpolation point Puv have values, the interpolation point Puv is determined by the influence thereof. For example, if interpolation is to be performed using a linear expression, weighted addition may be performed in inverse proportion to the distance from two grid points sandwiching the interpolation point. If attention is paid to the X-axis direction, the distance from the interpolation point Puv to the above 16 grid points is x1, the distance to the left outer grid point, the distance to the left inner grid point, x2, While expressing the distance x3 to the grid point and the distance x4 to the right outer grid point, the degree of influence corresponding to such a distance is represented by a function f (x). Further, when paying attention to the Y-axis direction, the distance from the interpolation point Puv to the 16 grid points is y1, the distance to the upper outer grid point, y2 to the upper inner grid point, and the lower inner grid point. While representing the distance y3 to the point and the distance y4 to the lower outside lattice point, the degree of influence can be similarly expressed by the function f (y).
[0072]
Since the 16 grid points contribute to the interpolation point Puv with an influence degree corresponding to the distance as described above, the influence degree in the X-axis direction and the Y-axis direction with respect to data is accumulated in all the grid points. The formula is as follows.
[0073]
[Expression 1]
If the degree of influence according to distance is expressed by a cubic convolution function, f (t) = {sin (πt)} / πt
It becomes. The distances x1 to x4 and y1 to y4 described above are calculated as follows using the absolute values of the coordinate values (u, v) of the lattice points Puv.
x1 = 1+ (u- | u |) y1 = 1+ (v- | v |)
x2 = (u- | u |) y2 = (v- | v |)
x3 = 1- (u- | u |) y3 = 1- (v- | v |)
x4 = 2- (u- | u |) y4 = 2- (v- | v |)
If we expand about P under the above assumptions,
[0074]
[Expression 2]
It becomes. Note that the degree of influence f (t) corresponding to the distance is approximated by the following cubic expression as called a cubic convolution function.
[Equation 3]
This cubic method has a feature that it gradually changes from one lattice point to the other lattice point, and the degree of change becomes a so-called cubic function.
[0075]
25 and 26 show specific examples when interpolation is performed by the cubic method. In order to facilitate understanding, a model in which there is no change in data in the vertical direction and an edge occurs in the horizontal direction will be described. Also, the number of pixels to be interpolated is 3 points.
First, specific numerical values in FIG. 26 will be described. The gradation value of the pixel before interpolation is shown as “Original” in the left column, and four pixels (P0, P1, P2, P3) having the gradation value “64” are arranged, and the pixel having the gradation value “128”. Five pixels (P5, P6, P7, P8, P9) having a gradation value “192” are arranged with one point between (P4). In this case, the edge is a pixel portion having a gradation value of “128”.
[0076]
When three pixels (Pn1, Pn2, Pn3) are interpolated between the pixels, the distance between the interpolated pixels is “0.25”, and the above-described x1 to x4 are for each interpolation point. It becomes the numerical value of the middle column of the table. f (x1) to f (x4) are also calculated uniquely corresponding to x1 to x4. For example, x1, x2, x3, and x4 are “1.25” and “0.25”, respectively. , “0.75”, and “1.75”, f (t) corresponding thereto are roughly “−0.14”, “0.89”, “0.30”, “−0.05”. " In addition, when x1, x2, x3, and x4 are “1.50”, “0.50”, “0.50”, and “1.50”, respectively, 0.125 "," 0.625 "," 0.625 ", and" -0.125 ". In addition, when x1, x2, x3, and x4 are “1.75”, “0.75”, “0.25”, and “1.25”, respectively, −0.05 ”,“ 0.30 ”,“ 0.89 ”, and“ −0.14 ”. The result of calculating the gradation value of the interpolation point using the above results is shown in the right column of the table and is also shown in a graph in FIG. The meaning of this graph will be described in detail later.
[0077]
If it is assumed that there is no change in the data in the vertical direction, the calculation is simplified, and only the data of four grid points (P1, P2, P3, P4) arranged in the horizontal direction are referred to, and Using the influence degree f (t) corresponding to the distance to the grid point, it can be calculated as follows.
P = P1 ・ f (x1) + P21f (x2) + P3 ・ f (x3) + P4 ・ f (x4)
Therefore, when calculating the interpolation point P21,
It becomes.
[0078]
Since the cubic method can be expressed in a cubic function, the quality of the interpolation result can be influenced by adjusting the shape of the curve.
As an example of the adjustment,
0 <t <0.5 f (t) =-(8/7) t ** 3- (4/7) t ** 2 + 1
0.5 <t <1 f (t) = (1-t) (10/7)
1 <t <1.5 f (t) = (8/7) (t-1) ** 3+ (4/7) (t-1) ** 2- (t-1)
1.5 <t <2 f (t) = (3/7) (t-2)
This is called the hybrid bicubic method.
[0079]
FIG. 27 shows a specific example when interpolation is performed by the hybrid bicubic method, and shows the result of interpolation for the same hypothetical model as in the cubic method. FIG. 25 also shows the result of interpolation processing by the hybrid bicubic method. In this example, the cubic function curve is slightly steep, and the entire image is sharp.
A bilinear interpolation (bilinear interpolation: hereinafter referred to as a bilinear method), which is another interpolation method, for understanding the characteristics of the above-described nearlist method, cubic method, and hybrid bicubic method will be described.
[0080]
As shown in FIG. 28, the bilinear method is close to the cubic method in that it gradually changes as one lattice point approaches the other, but the change depends only on the data of the lattice points on both sides. It differs in that it is a linear function. That is, an area defined by four grid points Pij, Pi + 1j, Pij + 1, and Pi + 1j + 1 surrounding the point Puv to be interpolated is divided into four sections at the interpolation point Puv, and the data at the diagonal position is weighted by the area ratio. To do. This can be expressed as an expression:
It becomes. Note that i = [u] and j = [v].
[0081]
The two cubic methods and the bilinear method are common in that they gradually change from one lattice point to the other lattice point, but the change state is a cubic function or a linear function. However, the difference when viewed as an image is large. FIG. 29 is a diagram two-dimensionally shown for easy understanding of the difference in interpolation results between the near list method, the cubic method, the hybrid bicubic method, and the bilinear method. In the figure, the horizontal axis indicates the position, and the vertical axis indicates the interpolation function. Of course, this interpolation function corresponds to the degree of influence according to the distance described above. There are lattice points at the positions of t = 0, t = 1, and t = 2, and the interpolation point is at the position of t = 0 to 1.
[0082]
In the case of the bilinear method, since it changes only linearly between two adjacent points (t = 0 to 1), the boundary is smoothed, and the impression of the screen is blurred. That is, unlike the smoothing of the corners, when the boundary is smoothed, the outline that should be originally obtained is lost in computer graphics, and the focus is soft in the photograph.
On the other hand, in the cubic, not only the two adjacent points (t = 0 to 1) gradually approach each other with a mountain-shaped projection, but also the lower side between the two points (t = 1 to 2). Has the effect of pushing down. That is, a certain edge portion is changed so as to have a height difference large enough not to cause a step, and the photograph has a favorable effect that a step does not occur while increasing sharpness. In addition, the hybrid bicubic has an effect of increasing sharpness. Note that the cubic method has a large amount of calculation processing, and requires a large amount of calculation processing when the interpolation magnification increases and the number of pixels to be interpolated increases.
[0083]
If the emphasis is placed on image quality, a cubic function like the cubic method is likely to be selected, but computer processing has a large balance between speed and image quality. In other words, the tolerance for the decrease in processing speed increases according to the degree of improvement in image quality, but there may be a case where a higher processing speed is preferred even if the improvement in image quality is small or slightly lowers in image quality.
On the other hand, it is easier to understand by referring to FIGS. 25, 26, and 27 showing specific numerical values together with the comparison of the interpolation functions as described above. Referring to the example of FIG. 15, the pixel (P3) having the gradation value “64”, the pixel (P4) having the gradation value “128”, and the pixel (P5) having the gradation value “192”, which are the original edge portions. )), The simple linear connection method corresponds to the bilinear method, whereas the cubic method has a specific S-curve, and the hybrid bicubic method. Then, the S-shaped curve is steeper. Of course, the direction of the S-curve is a direction in which the gradation value change of the pixel is steep, and that is why the edge is emphasized. Further, in the regions (P2 to P3, P5 to P6) adjacent to the edge pixel, so-called undershoot and overshoot are generated, and both sides sandwiching the edge pixel by the undershoot generated on the low side and the overshoot generated on the high side. The height difference of becomes large. Therefore, it can be understood that the edge is emphasized by these two factors.
[0084]
It can be easily understood that whether the image looks sharp or not is affected by the inclination angle of the central portion of the S-shaped curve. In addition, it can be said that the height difference caused by undershoot and overshoot on both sides of the edge also has the same effect.
Each interpolation process has the above characteristic differences. In step ST208, when it is determined that the image is a non-natural image based on the number of colors obtained in step ST206, the interpolation process by the near list method in step ST210 is performed. If it is a natural image, interpolation processing by a cubic method is executed.
[0085]
Although the interpolation process itself can be executed at an arbitrary magnification, an integer multiple interpolation process is accepted in order to speed up the process in the
[0086]
When all the new coordinate values are interpolated, the interpolated image data is transferred to the next stage processing in step ST214. However, depending on the interpolation magnification, the amount of interpolated image data may be extremely large, or the memory area that can be used by the
As described above, steps ST116 and ST118 correspond to a method in which the interpolation process is changed for each block unit area. This will be described with reference to the specific software processing of the
[0087]
For example, when the difference between four lattice points is obtained, this difference naturally occurs in many cases for a natural image. However, when a character is superimposed on a natural image and the character is a single color, the four grid points match and no difference occurs. Of course, the pixels to be interpolated in an area where no difference occurs may be the same data as the four grid points, and may be interpolated by the near list method with the least amount of calculation.
Moreover, it is not necessary to limit to the case where no difference occurs. In a region such as the sky where there is not much change, even if a near list is used, deterioration in image quality cannot often be determined. Therefore, when the difference between the four grid points is small, interpolation may be performed by the near list method. In the above example, the block is formed in the smallest unit as the area, but the interpolation processing may be changed with a larger block.
[0088]
The selectable interpolation processing need not be limited to either the near list method or the cubic method. For example, when interpolation is performed 4 times, it is also meaningful to first
[0089]
That is, it can be said that the interpolation magnification has an influence in this case as related to the interpolation result. Therefore, the
As described above, in the
[0090]
As a premise for executing such a program, the
[0091]
Of course, the
Next, an embodiment in which the above-described change degree of image data is used as a feature amount will be described.
FIG. 31 is a block diagram showing the image data interpolation apparatus.
The present image data interpolation apparatus performs such enlargement processing in units of pixels. The image data acquisition unit D1 acquires such image data, and the pixel interpolation unit D2 includes the number of constituent pixels in the image data. Interpolation processing to increase Here, the pixel interpolation means D2 can execute a plurality of interpolation processes according to the degree of change of the pixels as the interpolation process, and the pixel change degree evaluation means D3 evaluates the degree of change for each pixel based on the image data. To do. Then, the interpolation process selection unit D4 selects an interpolation process that can obtain an optimal interpolation result corresponding to the degree of change of the pixels evaluated in this way, and causes the pixel interpolation unit D2 to execute the interpolation process.
[0092]
In the present embodiment, the
FIG. 32 shows a software flow related to resolution conversion executed by the
[0093]
Step ST302 acquires original image data. Steps ST304 to ST308 are processes for evaluating the degree of pixel change in the read image data.
FIG. 33 and FIG. 34 show edge detection filters for calculating the luminance gradient after the luminance is obtained by the simplified calculation as described above. Since the image data is composed of pixels in a dot matrix shape, the degree of change in the image should be evaluated with the neighboring eight pixels centered on the target pixel. In this sense, as shown in FIG. 34 (a), it is preferable to apply the filter by giving the weighting of 8 times to the target pixel and equally evaluating the surrounding pixels and adding them up. However, empirically, it is not always necessary to evaluate the surrounding eight pixels, as shown in FIG. 33A, it is possible to evaluate only from the target pixel and the surrounding four pixels. Of course, there is a large difference in the amount of calculation depending on whether four pixels or eight pixels are used. In this way, if the number of evaluation objects is reduced, the processing time can be reduced.
[0094]
FIGS. 33B and 34B show examples of actual image data (luminance). FIGS. 33C and 34C show the filter shown in FIG. An example of calculation when applied to the arrangement of image data shown in FIG. The image data shows a case in which there is an area of image data “100” on the upper left side and image data “70” and “60” on the lower right side. In the example of FIG. 33, a weight of “−1” is added to each of the four pixels (image data “100”, “100”, “70”, “70”) on the top, bottom, left, and right of the center pixel. A weight of “4” is added to “100”). Then, weighted addition is performed for these five pixels. The result of the weighted addition is “60”, which exceeds the threshold value (th) “32”.
[0095]
On the other hand, in the example of FIG. 34, a weight of “−1” is added to each of the eight pixels surrounding the center pixel, and a weight of “8” is added to the center pixel. The result of the weighted addition is “100”, which exceeds the threshold value (th) “64”.
If the result of using the edge detection filter shown in FIG. 33 or 34 is called an edge amount E of each pixel, the distribution is expected to be a normal distribution as shown in FIG. 35, and the degree of change in the image is large. Whether it is an edge portion or not can be determined by comparing with a threshold value th. In the edge detection filters shown in FIGS. 33 and 34, threshold values of edge amounts of th = 32 and th = 64 are appropriate as threshold values. Therefore, whether or not the pixel is an edge is evaluated from the following equation.
(E <-th) or (th> E)
It is the process of step ST306 that performs this evaluation for all the pixels in the dot matrix shape, and it is evaluated whether or not each pixel unit is a pixel having a large degree of image change such as an edge pixel.
[0096]
By the way, even if it is determined whether or not the degree of change in the image is large in each pixel unit, since the interpolation process is a process for generating a pixel for each fixed region, whether or not the degree of change in the image is large in that region unit. It is necessary to determine whether. Since it is complicated to determine the degree of change for each region, it is determined in advance in step ST308 whether or not the pixel is an edge pixel and a flag is set. In this case, as shown in FIG. 36, it is determined that the degree of change in the image is large in all the pixels surrounding the edge pixel. More specifically, assuming that the change degree of each pixel is as shown in FIG. 37 (a), if the threshold value is “32”, the pixels exceeding the threshold value are expressed in xy coordinates. Even if it is (0,0) (3,0) (4,0) (1,1) (2,1) as shown, a flag is set for the pixel adjacent to the edge pixel. Then, as shown in FIG. 5B, flags are set for all pixels with y = 0, 1 and pixels with y = 2 excluding (4, 2). As a result, interpolation processing can be appropriately selected with reference to only the flag when the target block is moved in units of pixels in a later process.
[0097]
Of course, in the present embodiment, the processing of these steps ST304 to ST308 corresponds to a pixel change degree evaluation step. Of course, if these are considered to be organically combined with hardware such as a CPU, the pixel change degree evaluation means D3 is configured.
Based on the flag set as described above, interpolation pixels are generated by loop processing in step ST310 and subsequent steps. FIG. 38 schematically shows an arrangement of pixels generated by interpolation with respect to existing pixels. For the existing pixels, the coordinates are displayed as (X, Y), and the coordinates of the pixels generated by interpolation are displayed as <X, Y>. In the example of the figure, interpolation processing of about 2.5 × 2.5 times is performed.
[0098]
One area surrounded by the existing four pixels is called a block, and an interpolation process of pixels to be interpolated is selected for each block. In step ST308, the flag is set in consideration of the degree of change of the surrounding pixels for each pixel, and therefore, in each block, four pixels (0, 0) (1, 0) (0, 1) (1, 1 For any of the above, if the flag is set, the interpolation process when the degree of change is large is selected, and if any one of the flags is not set, the interpolation process when the degree of change is small is selected. It will be. In step ST310, an interpolation process to be applied to the inside of the block is determined based on this condition. If the degree of change is small, interpolation is executed by the interpolation process by the near list method in step ST312, and the degree of change is large. In step ST314, interpolation is performed by interpolation processing using a cubic method. Further, after interpolating one block, the blocks to be processed are moved in steps ST316 and ST318, and when all the blocks are completed, the interpolated image data is output in step ST320.
[0099]
In the figure, the flow of returning to step ST310 after the end of step ST318 is indicated by a solid line, but the process of counting edge pixels for each block may be repeated as indicated by a broken line.
Of course, in this sense, the process of step ST310 is the center and the process of steps ST316 and ST318 is included and corresponds to the interpolation process selection step. Of course, if these are considered to be organically coupled with hardware such as a CPU, the interpolation processing selection means D4 is configured. In the case of the
[0100]
In the present embodiment, an area surrounded by four pixels is called a block and interpolation processing is selected. However, the reference for changing the interpolation processing can be changed as appropriate according to the calculation capability, interpolation processing, and the like. For example, as shown in FIG. 39, there is a case where interpolation processing is performed with reference to a region centered on the target pixel. In such a case, interpolation processing may be appropriately performed while moving the target pixel as indicated by an arrow.
Here, a method of selecting the interpolation process while moving the target pixel will be described. In the above-described example, when determining whether or not the degree of change is large for each block, it is determined that the area has a large degree of image change only when all the flags included in the area are “1”. . However, it can be said that it is not always necessary to set all the flags to “1”. For example, assume that pixels are generated by interpolation processing in a region surrounded by four pixels as shown in FIG. In this case, in view of setting a flag on the adjacent pixel of the edge pixel in FIG. 36, it can be determined that the region has a high degree of change only when all four pixels are flagged as described above. . However, with this determination, if the block is moved horizontally by one pixel, the determination is repeated every time for two vertical pixels because of the common vertical sides, and if the block is moved in the vertical direction, the horizontal Judgment is repeated every time for two horizontal pixels because of the common side. Such an overlapping situation is useless in arithmetic processing. On the other hand, as shown in FIG. 5B, if the adjacent state of the region is taken into consideration, it is possible to associate one region with the upper left pixel as a representative, and at least the vicinity of the pixel that can be regarded as an edge pixel. It can be said that there is no problem even if it is judged that the degree of change is large. In addition, it can be said that the region surrounded by adjacent pixels is sufficient in view of the fact that it is actually a very small region. Then, if one region is associated with one pixel in this way, the pixel of interest can be moved when the block is moved, and the degree of change of the region can be determined only by the edge amount of the pixel of interest. In addition, the amount of calculation processing required for the determination is also reduced.
[0101]
It is also possible to form a block on the side of the pixel to be interpolated. FIG. 41 shows this example. In the figure, square grid points indicate pixels to be interpolated, and circle grid points indicate existing pixels. Now, there is one 5 × 5 block for the pixel to be interpolated, and it is determined whether or not the region has a large degree of change in the image based on the edge amount of the existing pixel included therein. In this case, one block is determined, existing pixels included in the block are extracted, an integrated value of the edge amount is obtained, and pixels are generated by the same interpolation processing in the block.
[0102]
Of course, in the above case, the interpolation processing may be selected by setting a block for each larger region. For example, every 10 × 10 pixels may be a block. Further, for each pixel to be interpolated without setting a block, it is also possible to select an interpolation process by judging an edge amount for an existing pixel surrounding the pixel. In the example of FIG. 41, 3 × 3 □ grid points arranged inside are all included in the four existing grid points indicated by ◯, and when generating each □ grid point, This means that the interpolation processing is selected based on the edge amounts for the four existing lattice points indicated by circles surrounding this. Of course, it may be realized when such processing is more convenient in terms of arithmetic processing. In other words, it is possible to identify the block to be interpolated first, determine the interpolation process, and then interpolate the pixels inside it, or select the interpolation process by determining the block status for each pixel to be interpolated You may do it.
[0103]
Further, in the above-described flow, a flag is set in advance for a pixel adjacent to the edge pixel in step ST308, and the flag is referred to for each block. However, as shown by the broken line in FIG. 32, it is also possible to use a flow for moving a block. In this case, it is not necessary to set a flag, and the edge amount of pixels around the block is determined. An interpolation process may be selected.
[0104]
As described above, the processes of steps ST312 and ST314 including separate interpolation processes correspond to pixel interpolation steps. Of course, if these are considered to be organically combined with hardware such as a CPU, the pixel interpolation means D2 is configured. Here, each interpolation processing will be described in detail.
On the other hand, in the interpolation function shown in FIG. 29, such a relationship is a curve that draws toward the negative side so as to cancel out the increased weight in the section of t = 1 to 2 while the slope becomes steep in the section of t = 0 to 1. It occurs when
[0105]
Accordingly, when the sharpness is to be adjusted, (1) an ideal slope that serves as a sharpness reference is determined in the interpolation function, and (2) a curve that generates the slope in the section of t = 0 to 1. In the section of (3) t = 1-2, it is possible to realize a curve in which overshoot and undershoot are likely to occur while pulling toward the negative side so as to cancel the weighting increased by this curve. Of course, in the following work, the parameters of the multi-order calculation function are determined so that the specified curve is obtained. However, since the method for determining such parameters is extremely diverse, the central portion of the S-curve in the substantial sense is determined. It is none other than adjusting the tilt angle, undershoot and overshoot.
[0106]
Each interpolation process has the above characteristic difference. In the block in which the degree of image change is determined to be small in step ST310, the interpolation process of the near list method is executed in step ST312. In a block that is determined to have a high degree, interpolation processing by a cubic method or a hybrid bicubic method is executed. When interpolation processing is performed by the cubic method, the calculation time becomes long. However, since the change to the near list method is performed at a portion where the degree of change in the image is small, the processing time as a whole is extremely reduced. In particular, in the case where a certain area is filled with the same color as in computer graphics, there is no problem even if the near list method is uniformly executed, so the processing time is reduced. In addition, even if it is a natural image, it is normal that the part where jaggies are conspicuous when enlarged is not so large even if it is in area ratio, so image quality can be improved by sequentially switching the degree of image change in this way. The amount of processing can be reduced without deteriorating.
[0107]
In the present embodiment, one of the two types of interpolation processing is executed according to the flag, but a plurality of interpolation processing corresponding to the degree of pixel change may be executed in stages. Further, as shown in FIG. 42, two magnification processes may be performed in an overlapping manner so that the enlargement magnification corresponds to the degree of change in the image. For example, assuming that the interpolation magnification is 5 times, if the degree of change of the image is small, interpolation processing is performed 5 times by the near list method, and if the degree of change of image is large, interpolation processing of 5 times is performed by the cubic method. These cases are the same as in the above-described embodiment, but when the degree of change in the image is an intermediate value, interpolation processing is performed twice with the cubic method, and the remaining 2.5 times are interpolated with the near list method. To process. In this way, a plurality of interpolation processes can be selected in accordance with the degree of change in the image, although the two interpolation processes are performed.
[0108]
As described above, the interpolation magnification is set to an integer multiple for a large amount of interpolation processing such as the cubic method.
As described above, in the
[0109]
As described above, in the present invention, the image data acquisition means for acquiring image data representing an image with pixels in a dot matrix, and the pixel change degree evaluation means for evaluating the degree of change of pixels based on the image data. Based on the pixel interpolation means that can be selected and executed from among a plurality of interpolation processes to perform the interpolation process for increasing the number of constituent pixels in the image data, and the pixel change degree evaluated by the pixel change degree evaluation means Interpolation process selection means for selecting an interpolation process capable of obtaining an optimal interpolation result corresponding to the degree of change and causing the pixel interpolation means to execute is selected.
[0110]
In the present invention configured as described above, when performing an interpolation process for increasing the number of constituent pixels of image data in which an image is represented by a dot matrix pixel, the pixel interpolation means selects one of a plurality of interpolation processes. When the image data acquisition unit acquires target image data, the pixel change degree evaluation unit evaluates the degree of change of the pixel based on the image data. Then, the interpolation process selection means selects an interpolation process that can obtain an optimal interpolation result corresponding to the degree of change based on the degree of change of the pixel evaluated by the pixel change degree evaluation means. Let the interpolation means execute.
[0111]
That is, since the change degree of the pixel is closely related to a specific method of the interpolation process, the interpolation process without waste is realized by evaluating the change degree of the pixel and actively changing the interpolation process.
As described above, the present invention can provide an image data interpolating apparatus capable of obtaining an optimal interpolation result very easily by changing the interpolation processing in accordance with the degree of change of the image.
The pixel change degree evaluation means evaluates the change degree of the pixel, and the evaluation method and result are not particularly limited. Moreover, it can change relatively according to the utilization aspect of the same evaluation result in an interpolation process selection means. For example, if a specific degree of change is required as a numerical value, a numerical value may be output, and if it is merely whether the degree of change is large, it may be output in accordance with it.
[0112]
Also, how to grasp the change of the pixel itself can be changed as appropriate. As an example, the pixel change degree evaluation means may be configured to obtain a parameter of brightness of each pixel and calculate the degree of change by comparison with a parameter of surrounding pixels.
In such a configuration, the brightness of the pixel is used as a reference for evaluating the pixel, and the pixel change degree evaluation unit obtains a parameter of the brightness of each pixel, and the pixel and its surrounding pixels. The same parameters are compared with each other, and the comparison result is calculated as the degree of change.
[0113]
Of course, it is possible to grasp the degree of change of pixels other than this, but the brightness parameter is relatively easy to grasp the pixels represented by the multi-element parameters uniformly.
In this way, since the degree of change of the image is determined based on the brightness parameter, the degree of change can be obtained relatively easily.
On the other hand, it can be said that the range in which the degree of pixel change affects the processing content of the interpolation processing is different. For example, some pixels require one pixel for executing the interpolation process, while others perform an interpolation process based on a plurality of pixels. In particular, in the latter example, there is a problem of whether the interpolation process is changed if there is a pixel having a large degree of change, or whether the interpolation process is changed if there is a pixel having a small degree of change.
[0114]
As an example for such a situation, the pixel change degree evaluation means may be configured to use the change degree obtained for each pixel also for evaluation of the change degree of surrounding pixels.
When there are a plurality of pixels required for the interpolation processing and even one of them has a large degree of change, two modes are conceivable. That is, it is not necessary to evaluate the remaining pixels in the target range in the interpolation process, and conversely, even if the degree of change is small for the already evaluated pixels, the evaluation is not necessary.
[0115]
In such a two-way meaning, the above-described change degree obtained for each pixel is also used for evaluation of the change degree of surrounding pixels.
In this way, the amount of calculation can be reduced by using the degree of change of one pixel also in surrounding pixels, and the optimum interpolation result can be obtained by sharing within an appropriate range affected by the interpolation process. Obtainable.
The pixel interpolation means only needs to be able to execute a plurality of interpolation processes related to the degree of pixel change, and various processes can be performed as the interpolation process itself. As an example, the pixel interpolation means executes an interpolation process that uses the image data of the nearest pixel before the interpolation process as the image data of a new constituent pixel as a suitable interpolation process that is applied in an area where the degree of change is small. A possible configuration can also be adopted.
[0116]
When configured in this way, the image data of the nearest neighbor pixel before the interpolation processing is used as the image data of the new configuration pixel as one interpolation processing, but even if the data of the same pixel increases, the area with a small degree of change If there is no problem, it is preferable in that the processing amount is small.
In this way, it is possible to reduce the processing amount without affecting the image quality in an area where the degree of change is small.
As another example, the pixel interpolating means can be applied to an area where the degree of change is large and can perform arithmetic processing from image data of surrounding pixels so that the image data of the pixel to be interpolated as a suitable interpolation process changes gently. It is also possible to adopt a configuration capable of executing an interpolation process for calculating image data of an interpolation pixel.
[0117]
In the case of such a configuration, the image data of the pixel to be interpolated changes gently by performing arithmetic processing using the image data of the surrounding pixels. In this way, if the change is made gently, even if there is an array of pixels with a high degree of change, even if interpolation is performed between these, the step is not noticeable. Therefore, even if interpolation is performed between pixels having a large degree of change, the level difference is not noticeable, and deterioration of image quality can be prevented.
[0118]
Various calculation methods can be employed for gently changing the image data of the pixel to be interpolated. However, the change mode affects the image quality. For this reason, in a sense, it can be said that the image quality can be adjusted by changing the calculation method. As an example in which the image quality can be adjusted, the pixel interpolating means adjusts the inclination of the image data change mode while making the change mode of the image data substantially S-shaped when calculating the image data of the interpolated pixels between the pixels having a large change degree At both ends, undershoot is generated on the low side while overshoot is generated on the high side to form a height difference and the height difference is adjusted to adjust the degree of change of the image to be optimal. It can also be configured.
[0119]
In the case of such a configuration, when the image data of the pixel to be interpolated is gently changed, the change mode of the image data between pixels having a large change degree is set to a substantially S shape. Therefore, although it changes gradually, the change mode can be made steeper than the gradient connecting only linearly, and the change degree of the image can be optimized by adjusting the inclination. In addition, if the undershoot is generated on the lower side and the overshoot is generated on the higher side at both ends, the difference in height increases, and the apparent image change degree can be optimized by adjusting the difference in height. It becomes possible. As an example of such an arithmetic processing, a cubic convolution interpolation method of multi-order arithmetic processing can be used, and the arithmetic processing enabling such adjustment is not limited to this, and other arithmetic methods are adopted. You can also
[0120]
In this way, image quality adjustment can be realized relatively easily due to the slope of the S-shaped curve and the height difference due to undershoot and overshoot.
Since the degree of pixel change is not constant over the entire image, the interpolation process selection means must select and switch between interpolation processes as appropriate. The frequency of such switching is not particularly limited, and various methods can be employed. As an example, the interpolation processing selection unit may be configured to select and execute the interpolation processing on a pixel basis based on the pixel change degree evaluated by the pixel change degree evaluation unit.
[0121]
In such a configuration, the interpolation process selection unit selects and executes the interpolation process on a pixel basis based on the pixel change degree evaluated by the pixel change degree evaluation unit. That is, as long as the degree of change is evaluated in units of pixels, the interpolation process is also changed accordingly.
Accordingly, the interpolation result can be finely improved by selecting the interpolation process in units of pixels.
As another example, the interpolation processing selection unit selects and executes the interpolation processing for each predetermined small region composed of a plurality of pixels based on the pixel change degree evaluated by the pixel change degree evaluation unit. It can also be configured. In this way, since the interpolation process is selected for each small area, the process can be simplified.
[0122]
Next, an embodiment in which sharpness is corrected together with interpolation processing as a premise will be described.
FIG. 43 is a block diagram showing such an image data interpolation apparatus.
If the original image is a natural image, some images may lack sharpness. For example, a photograph with a sweet focus is applicable. Further, if the image itself is not enlarged to match the resolution between the apparatuses but is desired to be enlarged and output, an image lacking in sharpness may be further defocused.
This image data interpolation apparatus adjusts the sharpness when performing enlargement processing on a pixel basis for image data. The image data acquisition means E1 acquires the image data, and the pixel interpolation means E2 Interpolation is performed to increase the number of constituent pixels in the data. Here, the pixel interpolation means E2 can change the sharpness of the image accompanying the interpolation processing, and the sharpness degree evaluation means E3 evaluates the sharpness of the image based on the image data. Then, the interpolation processing control means E4 controls the pixel interpolation means E2 so as to execute an interpolation process for enhancing the sharpness evaluated in this way if it is low.
[0123]
As described above, when the resolution managed by the
[0124]
The sharpness of an image can be said to be a comprehensive evaluation of the degree of change between adjacent pixels. An image lacking in sharpness means that the pixels are gently changed in the original edge portion, and in a sharp image, the degree of change between adjacent pixels is steep in the original edge portion. This is because the interpolation process generates a new pixel between the existing pixels, and the sharpness of the image changes depending on the value of the new pixel.
[0125]
In this sense, in the image data interpolation apparatus of the present invention, the
FIG. 44 shows a software flow related to resolution conversion executed by the
Step ST402 acquires original image data. Steps ST404 to ST408 are processes for evaluating the sharpness of the image from the degree of change of each pixel in the read image data.
[0126]
If the result of using the edge detection filter shown in FIGS. 33 and 34 is called an edge amount E of each pixel, the distribution is expected to be a normal distribution as shown in FIG. In this way, the calculation in step ST406 is performed for all the pixels in the dot matrix, and the absolute value of the edge amount is added up in step ST408. The aggregation may be a simple average value, but it can be said that it is easily influenced by the area ratio of the background portion. For example, in FIG. 45, the person image as the subject appears large and the background portion is small, but in FIG. 46, the person image as the subject appears small and the background portion increases. Since the degree of change of pixels tends to be small in the background portion, the average value tends to be lower in the case shown in FIG. 46 where the area ratio of the background portion is larger than that shown in FIG. In this sense, a certain threshold value may be provided, and the average of only the threshold value or more may be calculated.
[0127]
On the other hand, the main purpose is to determine the sharpness of the image at the stage of aggregation, but it is also possible to judge from the aggregation result whether the image is required to be sharp like a natural image in the first place. is there. In the case of a natural image, the absolute value of the edge amount is calculated because the same pixels are not lined up according to the actual shape as the background, even if it is just a background part. The result is as shown in FIG. 47, and the edge amount tends to be large. On the other hand, in an image such as a business graph, a certain area is often filled with the same color, so the total result of the absolute value of the edge amount is as shown in FIG. 48, and the edge amount is low.
[0128]
Therefore, if the average value (av) of the total results is lower than a certain threshold value Th, it can be said that an image that does not require sharpening is required, and interpolation processing that does not affect sharpness is executed. That's fine.
As described above, in steps ST404 to ST408, the degree of change of each pixel constituting the image is totaled, and it is evaluated whether or not the image can be said to be a sharp image. Therefore, these steps ST404 to ST408 are performed. This process constitutes the sharpness degree evaluation means E3.
[0129]
Based on the evaluation result, in step ST410, an interpolation process corresponding to the sharpness of the image is selected. In this embodiment, interpolation processing by a cubic method is executed for a sharp image, and interpolation processing by a hybrid bicubic method is executed for an image lacking sharpness. Therefore, in this sense, the step ST410 constitutes the interpolation process control means E4, and the processes of steps ST412 and ST414 having separate interpolation processes constitute the pixel interpolation means E2. Here, each interpolation processing will be described in detail.
[0130]
Each interpolation process has the above characteristic difference. If it is determined in step ST410 that the image is sharp, a cubic interpolation process is executed in step ST412, and it is determined that the image is not sharp. Then, the hybrid bicubic interpolation process is executed. When interpolating with the hybrid bicubic method, the curve to be interpolated becomes steep and sharpness can be increased, and such interpolation processing is selected because the sharpness of the target image is evaluated and evaluated. Based on the results. For this reason, the operator can sharpen an unsharp image without making a special judgment.
[0131]
In the present embodiment, one of the two types of interpolation processing is executed, but a plurality of interpolation processing corresponding to the degree of pixel change may be executed in stages. FIG. 49 shows an example of performing four cubic methods in which the evaluation of sharpness is divided into four stages and the parameters of the cubic interpolation method are changed. In the figure, “0” indicates a cubic method curve applied to a normal sharp image, and “+1” curve indicates a cubic method applied to an image slightly lacking sharpness. The curve “+2” indicates a cubic method applied to an image having a considerable sharpness. For images that are too sharp, the cubic method with a curve of “−1” is applied. Of course, both of these are realized by adjusting the inclination angle, undershoot and overshoot of the central portion of the S-shaped curve as in the case of the hybrid bicubic method.
[0132]
Next, FIG. 50 shows a procedure flow in this case.
In step ST510, these parameters are set based on the sharpness of the image, and the cubic method using such parameters is executed in step ST514. Further, in this flow, considering that the sharpness of the image is partially different, the image is divided into blocks which are small regions, and optimal interpolation processing is executed for each block. That is, in order to select the interpolation processing by evaluating the sharpness for each block, the amount of edges for each block is totaled in step ST508, and the interpolation processing is executed while sequentially moving the blocks in steps ST516 and ST518. I have to.
[0133]
When the interpolation process is completed for all image data, the image data interpolated in step ST420 or step ST520 is output. In the case of the
As described above, in the
[0134]
As described above, in the present embodiment, the image data acquisition unit that acquires image data expressing an image with pixels in a dot matrix, and the sharpness degree evaluation unit that evaluates the sharpness of the image based on the image data. In addition, pixel interpolation means capable of executing interpolation processing for changing the sharpness of the image when performing interpolation processing for increasing the number of constituent pixels in the image data, and the sharpness of the image evaluated by the sharpness degree evaluation means are appropriate. Otherwise, it is configured to include interpolation processing control means for causing the pixel interpolation means to execute interpolation processing so as to be appropriate by changing the sharpness.
[0135]
When configured in this way, pixel interpolation means can execute interpolation processing that changes the sharpness of an image when performing interpolation processing to increase the number of constituent pixels of image data in which an image is represented by pixels in a dot matrix. When the image data acquisition unit acquires target image data, the sharpness degree evaluation unit evaluates the sharpness of the image based on the image data. Then, the interpolation processing control means performs interpolation processing on the pixel interpolation means based on the sharpness evaluated by the sharpness degree evaluation means so that if the image sharpness is not appropriate, the sharpness is changed. Let it run.
[0136]
That is, when the sharpness of the image is low, the sharpness is increased by the interpolation process, and when it is too sharp, the sharpness is reduced.
In this way, since the sharpness is adjusted by the interpolation process according to the sharpness of the image, an image data interpolation device that can easily improve the image quality without complicating the operation is provided. can do.
As a method of changing the sharpness of the image while executing interpolation, the inclination of the image data change mode is adjusted to be substantially S-shaped, and the undershoot is generated on the lower side at both ends, and the overshoot is performed on the higher side. It was shown that the sharpness of the image is changed by adjusting the degree of change of the image by adjusting the height difference by generating the height difference and adjusting the height difference.
[0137]
As an example of taking such an S-shaped curve, the pixel interpolating means may be configured to change the sharpness of the image by adjusting a parameter in the cubic convolution interpolation method.
In such a configuration, by adjusting the parameter of the cubic convolution interpolation method used as the interpolation process, the pixel interpolated between adjacent pixels in the original image has a cubic function. By adopting it, it draws S-shape, and it has both gentleness and steepness. Then, the sharpness changes by adjusting the degree of the S-curve by the parameter, and the sharpness of the image changes.
[0138]
In this way, the sharpness can be adjusted relatively easily by adjusting the S-shaped curve by using the cubic convolution interpolation method as the multi-order calculation process.
In changing the sharpness, it is not always necessary to adopt only one calculation method, and it is also possible to execute a plurality of interpolation processes that affect the sharpness. As such an example, the pixel interpolation means can execute a plurality of interpolation processes with different degrees of change in image sharpness, and adjust the sharpness of the image by changing the ratio of the respective interpolation magnifications. It can also be.
[0139]
In such a configuration, the degree of change in image sharpness is different in each of the plurality of interpolation processes, and the plurality of interpolation processes are executed in order to obtain a necessary interpolation magnification. Therefore, the sharpness can be adjusted by changing the share ratio of the interpolation magnification. For example, if there is an interpolation process with a low degree of change in sharpness and an interpolation process with a high degree of change in sharpness, the ratio between the two changes can be selected by changing the sharing ratio between the two.
[0140]
In this way, parameter setting is simplified because only the interpolation magnification shared by a plurality of interpolation processes is changed.
The sharpness of the image is not necessarily high. Therefore, it may not be necessary to increase sharpness. In this case, it is possible for the operator to make a determination, but it is also possible to adopt a configuration in which such a determination is realized simultaneously. As an example, the interpolation processing control means controls the pixel interpolation means to change the sharpness of the image when it is evaluated that the sharpness of the image exceeds a predetermined threshold value. It can also be.
[0141]
In this case, the interpolation processing control means compares the sharpness of the image with a predetermined threshold value, and when the sharpness of the image is evaluated to exceed this, the pixel interpolation means To change the sharpness of the image. However, if the sharpness of the image does not exceed the threshold value, control is not performed so as to change the sharpness of the image. For example, if the sharpness of an image when it is a natural image is compared with the sharpness of an image when it is a non-natural image, it can be said that the former is generally sharper. Of course, the sharpness of the image is not determined only by the classification of natural images or non-natural images, so other judgment factors can be added. For example, if a classification of an image is acquired and the threshold value is changed based on the classification, a more flexible response is possible.
[0142]
In this way, in order not to change the sharpness to a certain range, there is no inconvenience that the sharpness is automatically adjusted to an image that is inappropriate to change the sharpness.
The sharpness of the screen is not necessarily constant over the entire image when the individual pixels are used as a reference, and is not necessarily limited to constant interpolation processing. For this reason, the sharpness of the image can be evaluated in units of pixels, and control can be performed so that the sharpness of the images is changed in units of pixels based on the evaluated sharpness of the images. In addition, the sharpness of the image is evaluated for each predetermined small area, and control is performed to change the sharpness of the image for each predetermined small area based on the evaluated sharpness of the image.
[0143]
Next, an embodiment in which image processing can be selected will be described.
FIG. 51 is a block diagram showing such an image data interpolation apparatus.
This image data interpolating apparatus simultaneously performs enlargement processing and sharpness change processing as interpolation processing when image processing is performed on a pixel basis for image data, and the image data acquisition means F1 acquires the same image data. In both cases, the image processing to be executed by the image processing selection means F2 is selected. The simultaneous processing judging means F3 judges whether or not the image processing to be executed is to perform the enlargement processing and the sharpness changing processing at the same time. The sharpness of the image is changed accompanying the interpolation process for increasing the number of constituent pixels in the image data. Then, the image data output means F5 outputs the image data after the enlargement process.
[0144]
In the
[0145]
Here, in the
In this sense, the image data interpolation apparatus of the present invention is realized as the
[0146]
FIG. 52 shows an outline of the software flow of the
In step ST602, original image data is acquired. A process for reading an image from the
[0147]
In step ST604, image processing is selected, and in steps ST606 and ST608, the selected image processing is determined. To select the image processing, as shown in FIG. 53, when the character portion of “image” is clicked with the
[0148]
When the desired image processing button switch is set to the selected state, and each parameter is set and the “OK” button is clicked, the selection is handled and the processing selected in steps ST606 and ST608 is determined. To do. In this example, it is determined whether or not enlargement processing is selected in step ST606. If enlargement processing is not selected, corresponding image processing is performed in step ST610. On the other hand, if enlargement processing is selected, it is determined in step ST608 whether sharpness adjustment processing is selected. As a result, if both the enlargement process and the sharpness adjustment process are selected, the process proceeds to step ST612. If the enlargement process is selected but the sharpness adjustment process is not selected, the process proceeds to step ST614. In addition, the process of
[0149]
In this software flow, the two branch processes of steps ST606 and ST608 are easy to understand, but in practice, a large number of branches may be selected in the case process. In this embodiment, since image processing is selected in step ST604, this corresponds to an image processing selection step. In steps ST606 and ST608, it is determined whether both enlargement processing and sharpness adjustment processing are selected. This corresponds to the simultaneous processing determination step. Of course, when these are considered to be organically combined with hardware such as a CPU, they correspond to the image processing selection means F2 and the simultaneous processing determination means F3.
[0150]
Here, modified examples of the image processing selection unit F2 and the simultaneous processing determination unit F3 will be described.
55 to 57 show an example thereof, and it is assumed that the
[0151]
Based on the selected result, one of steps ST712, ST714, and ST716, which is an interpolation process, is executed. In the enlargement process, sharpness can be changed by selecting an interpolation process as will be described later, so that an inquiry is automatically made when the enlargement process is selected. In this example, steps ST704 and ST708 correspond to the image processing selection step, and step ST710 corresponds to the simultaneous processing determination step.
[0152]
Further, FIGS. 58 to 60 show a case where the image processing is not directly selected but is actually enlarged internally, and more specifically, printing is performed. This is the case for processing. When print is selected from a file menu (not shown), a print menu as shown in FIG. 59 is displayed in step ST804. Various parameters can be set in the print menu, and one of them is a “print resolution” selection box. Regardless of the resolution handled internally by the
[0153]
Therefore, in step ST808, it is determined whether or not it is necessary to perform resolution conversion by comparing the parameters of the print resolution box with the resolution of the color printer 17b2 managed by the
[0154]
In this example, steps ST804 and ST810 correspond to an image processing selection step, and step ST812 corresponds to a simultaneous processing determination means step. Of course, it goes without saying that these image processing selection means F2 and simultaneous processing determination means F3 can be realized by other methods.
The interpolation process is executed through the above determination. Specifically, when only enlargement processing is selected and sharpness enhancement processing is not selected, interpolation processing by the near list method is executed (steps ST614, ST712, ST814), and enlargement processing and sharpness enhancement processing are performed. When is selected, interpolation processing by the hybrid bicubic method (steps ST612 and ST816) and interpolation processing by the cubic method (step ST714) are executed. Therefore, the latter steps ST612, ST816, and ST714 constitute the pixel interpolation means F4.
[0155]
As in the present embodiment, making sharpness adjustable in the enlargement process is superior to simply performing the enlargement process and the sharpness adjustment process separately. For example, even if the enlargement process is performed after emphasizing sharpness, if the enlargement process is similar to the near list method, jaggies may be conspicuous and the sharp feeling may not be maintained. Further, if the sharpness is emphasized after enlarging by the near list method, the image quality is not improved because the sharpening is made with the jaggy noticeable. On the other hand, if the sharpening is also performed in the integral enlargement process, such an adverse effect is unlikely to occur.
[0156]
When the interpolation processing and other image processing are completed for the image data, the image data is output in step ST66. The output of the image data here has a broad meaning, and is not limited to the process of outputting to the color printer 17b2 or writing to the
[0157]
As described above, in the
[0158]
As described above, in the invention, the image data acquisition means for acquiring the image data in which the image is expressed by the dot matrix pixels, and various types of image data by changing the image data in each pixel with respect to the image data. Image processing selection means for displaying image processing executable to execute image processing and inputting selection, and whether image enlargement processing and image sharpness change processing are both selected by the image processing selection means When the simultaneous processing determining means for determining whether the image enlargement processing and the image sharpness changing processing are both selected, the number of constituent pixels in the image data is increased. When enlarging the image, the selected image is sharpened by adjusting the degree of change in the interpolated image data. It is constituted comprising a viable pixel interpolation means interpolating process, and an image data output means for outputting the generated image data to the.
[0159]
In the present invention configured as described above, when the image data acquisition unit acquires the image data in which the image is expressed by the dot matrix pixels, the image data in each pixel is changed with respect to the image data. Image processing that can be executed by the image processing selection means is displayed to input various selections for executing various image processing. Here, the simultaneous processing determination means determines whether both the image enlargement process and the image sharpness change process are selected by the image processing selection means, and if it is determined that both processes are selected, When the pixel interpolation means enlarges the image by increasing the number of constituent pixels in the image data, the pixel interpolation means performs an interpolation process so that the selected image becomes sharp by adjusting the degree of change of the image data to be interpolated. Then, the image data output means outputs the generated image data.
[0160]
That is, if it is necessary to simultaneously execute enlargement and sharpness change processing, the sharpness is changed while being enlarged by adjusting the image data generated by the interpolation processing.
As described above, according to the present invention, the sharpness of the image is changed by the interpolation process necessary for the enlargement process, so that it is not necessary to separately perform the enlargement process and the sharpness change process, and the processing time is shortened. It is possible to provide an image data interpolating apparatus capable of performing the above.
[0161]
In addition, since it is performed at the same time, depending on the enlargement process, it may not be possible to obtain a good result when changing the subsequent sharpness. The change process is not wasted.
The image processing selection means displays executable image processing and inputs a selection, and the simultaneous processing determination means determines whether or not both the image enlargement process and the image sharpness change process are selected. Is. These only need to determine whether it is necessary to execute both processes simultaneously as a result, and the selection mode and the like can be changed as appropriate.
[0162]
As an example, the image processing selection means can individually select enlargement processing selection and sharpness change selection, and the simultaneous processing determination means can select enlargement processing and sharpening by the image processing selection means. It can also be configured to determine whether or not the change selection is selected at the same time.
In such a configuration, the selection of the enlargement process and the selection of the sharpness change can be individually made, so that only the enlargement process or only the sharpness change may be selected. Then, the simultaneous processing determination means determines whether or not the enlargement processing selection and the sharpness change selection are selected at the same time on the assumption of such a situation.
[0163]
This is suitable when the enlargement process and the sharpness change process can be individually selected.
As another example, the image processing selection means can select enlargement processing, and the simultaneous processing determination means determines the degree of change in sharpness when enlargement processing is selected by the image processing selection means. Can be selected.
In such a configuration, only the enlargement processing can be selected by the image processing selection means, and no input is made until selection for changing the sharpness. However, when enlargement processing is selected by the image processing selection means, the simultaneous processing determination means makes a determination independently and selects the degree of change in sharpness. Of course, it is possible to choose not to change the sharpness. In that case, only the enlargement process is executed. On the contrary, if the change of the sharpness is selected, the enlargement process is executed. It is determined that the process of changing the sharpness is selected at the same time.
[0164]
Therefore, even when only enlargement processing can be selected on the surface, the sharpness can be changed.
Furthermore, although the enlargement process is explicitly selected in the above-described example, the enlargement process itself is not necessarily limited to an explicit one. As an example, the simultaneous processing determination unit may be configured to select the degree of change in sharpness when the image processing selection unit performs resolution conversion processing along with image processing.
[0165]
When configured in this way, it may be necessary to perform resolution conversion processing accompanying the image processing selected by the image processing selection means. In this case, the simultaneous processing determination means Select the degree of sharpness change. If it is selected to change the sharpness, it is determined that the enlargement process and the process for changing the sharpness are selected at the same time.
In this way, it is possible to change the sharpness in accordance with incidental enlargement processing.
[0166]
Note that the display and input operations in these cases may be realized by screen display or mouse operation under a GUI, or may be implemented with hardware switches, and can be changed as appropriate. It is.
[Brief description of the drawings]
FIG. 1 is a block diagram of an image data interpolation apparatus according to an embodiment of the present invention.
FIG. 2 is a block diagram of specific hardware of the image data interpolation device.
FIG. 3 is a schematic diagram showing another application example of the image data interpolation apparatus of the present invention.
FIG. 4 is a schematic diagram showing another application example of the image data interpolation apparatus of the present invention.
FIG. 5 is a schematic view showing another application example of the image data interpolation apparatus of the present invention.
FIG. 6 is a schematic view showing another application example of the image data interpolation apparatus of the present invention.
FIG. 7 is a general-purpose flowchart in the image data interpolation apparatus of the present invention.
FIG. 8 is a more specific flowchart in the image data interpolation apparatus of the present invention.
FIG. 9 is a diagram illustrating the size of an original image.
FIG. 10 is a diagram showing a sampling period.
FIG. 11 is a diagram illustrating the number of sampling pixels.
FIG. 12 is a diagram illustrating a relationship between an original image and pixels to be sampled.
FIG. 13 is a diagram illustrating a luminance histogram for a non-natural image.
FIG. 14 is a diagram illustrating a luminance histogram of a natural image.
FIG. 15 is an explanatory diagram in a case where the degree of change of an image is represented by each component value of orthogonal coordinates.
FIG. 16 is an explanatory diagram in a case where the degree of change of an image is obtained by a difference value between adjacent pixels in the vertical axis direction and the horizontal axis direction.
FIG. 17 is an explanatory diagram for obtaining the degree of change of an image between all adjacent pixels.
FIG. 18 is a diagram illustrating a region where a threshold value is changed.
FIG. 19 is a diagram illustrating a situation in which an inquiry is made to the operating system from the printer driver.
FIG. 20 is a conceptual diagram of the near list method.
FIG. 21 is a diagram illustrating a situation in which data at each grid point is transferred by the near list method.
FIG. 22 is a schematic diagram illustrating a situation before interpolation in the near list method.
FIG. 23 is a schematic diagram showing a situation after interpolation in the near list method.
FIG. 24 is a conceptual diagram of the cubic method.
FIG. 25 is a diagram illustrating a change state of data at the time of specific application of the cubic method.
FIG. 26 is a diagram illustrating a specific application example of the cubic method.
FIG. 27 is a diagram illustrating a specific application example of the hybrid bicubic method.
FIG. 28 is a conceptual diagram of a bilinear method.
FIG. 29 is a diagram illustrating a change state of an interpolation function.
FIG. 30 is a schematic diagram illustrating integer multiple interpolation processing;
FIG. 31 is a schematic block diagram of an image data interpolation apparatus according to an embodiment of the present invention.
FIG. 32 is a flowchart in the image data interpolation apparatus of the present invention.
FIG. 33 is a diagram illustrating an example of an edge detection filter.
FIG. 34 is a diagram illustrating another example of the edge detection filter.
FIG. 35 is a diagram illustrating a relationship between an edge amount distribution and a threshold value;
FIG. 36 is a diagram illustrating a relationship between a target pixel and a target pixel in flag setting determination.
FIG. 37 is a diagram illustrating a setting state of an edge amount and a flag.
FIG. 38 is a diagram illustrating a relationship between a block formed by existing pixels and a pixel to be interpolated.
FIG. 39 is a diagram illustrating a case where a block is formed based on a target pixel.
FIG. 40 is a diagram illustrating a correspondence between flag states and areas;
FIG. 41 is a diagram illustrating a case where a block is formed with pixels to be interpolated.
FIG. 42 is a diagram illustrating a relationship in which interpolation magnifications of a plurality of interpolation processes are distributed according to the degree of change in an image.
FIG. 43 is a schematic block diagram of an image data interpolation device according to an embodiment of the present invention.
FIG. 44 is a flowchart in the image data interpolation apparatus of the present invention.
FIG. 45 is a diagram illustrating an image with a small background portion.
FIG. 46 is a diagram illustrating an image with a large background portion.
FIG. 47 is a diagram illustrating a total result of natural image edge amounts;
FIG. 48 is a diagram showing a result of counting the edge amounts of a business graph.
FIG. 49 is a diagram illustrating a change state of an interpolation function.
FIG. 50 is a diagram illustrating a flow for selecting an interpolation function.
FIG. 51 is a schematic block diagram of an image data interpolation apparatus according to an embodiment of the present invention.
FIG. 52 is a flowchart in the image data interpolation apparatus of the present invention.
FIG. 53 is a diagram showing a menu for executing image processing.
FIG. 54 is a diagram showing a screen for selecting image processing.
FIG. 55 is a flowchart illustrating a modification of the image data interpolation device.
FIG. 56 is a diagram showing a screen for instructing an enlargement process.
FIG. 57 is a diagram showing a screen for instructing sharpness.
FIG. 58 is a flowchart of a printing process.
FIG. 59 is a diagram illustrating a screen for instructing parameters during printing.
FIG. 60 is a diagram illustrating a screen for instructing sharpness.
[Explanation of symbols]
10. Computer system
11a ... Scanner
11a2 ... Scanner
11b ... Digital still camera
11b1 ... Digital still camera
11b2 ... Digital still camera
11c ... Video camera
12 ... Computer body
12a ... Operating system
12b ... Display driver
12b ... Driver
12c: Printer driver
12d Application
13a ... floppy disk drive
13b ... Hard disk
13c ... CD-ROM drive
14a ... modem
14a2 Modem
15a ... Keyboard
15b ... Mouse
17a ... Display
17a1 ... Display
17b ... Color printer
17b1 Color printer
17b2 ... Color printer
18a ... Color facsimile machine
18b ... color copying machine
Claims (4)
上記画像データについて、画像の中の中央部分から多くの画素が抽出されるように画素を抽出し、抽出した画素を対象として輝度分布を求めるとともに、輝度がとりうる階調範囲の全輝度値のうち当該輝度分布における分布数が0ではない輝度値の数を色数とみなすことにより利用色数を算出する手段とを具備することを特徴とするオブジェクト画素抽出装置。Image data acquisition means for acquiring image data of an image expressed by a dot matrix pixel;
For the above image data, extract the pixels so that many pixels are extracted from the central part of the image, obtain the luminance distribution for the extracted pixels, and calculate the total luminance value of the gradation range that the luminance can take of the luminance distribution number in the distribution object pixel extraction apparatus characterized by comprising a means for calculating the number of available colors by regarding the number of colors the number of brightness values that are not zero.
上記画像データについて、画像の中の中央部分から多くの画素が抽出されるように画素を抽出し、抽出した画素を対象として輝度分布を求めるとともに、輝度がとりうる階調範囲の全輝度値のうち当該輝度分布における分布数が0ではない輝度値の数を色数とみなすことにより利用色数を算出する工程とを具備することを特徴とするオブジェクト画素抽出方法。Acquiring image data of an image expressed by a dot-matrix pixel;
For the above image data, extract the pixels so that many pixels are extracted from the central part of the image, obtain the luminance distribution for the extracted pixels, and calculate the total luminance value of the gradation range that the luminance can take And a step of calculating the number of colors to be used by regarding the number of luminance values whose distribution number in the luminance distribution is not 0 as the number of colors.
上記画像データについて、画像の中の中央部分から多くの画素が抽出されるように画素を抽出し、抽出した画素を対象として輝度分布を求めるとともに、輝度がとりうる階調範囲の全輝度値のうち当該輝度分布における分布数が0ではない輝度値の数を色数とみなすことにより利用色数を算出する機能とをコンピュータに実現させることを特徴とするオブジェクト画素抽出プログラムを記録した媒体。A medium on which an object pixel extraction program for extracting an object pixel by a computer based on image data of an image expressed by a dot-matrix pixel is recorded, the function of acquiring the image data;
For the above image data, extract the pixels so that many pixels are extracted from the central part of the image, obtain the luminance distribution for the extracted pixels, and calculate the total luminance value of the gradation range that the luminance can take of the luminance distribution number in distribution medium recording the object pixel extraction program for causing and a function of calculating the number available colors computer by regarding the number of colors the number of brightness values that are not zero.
上記画像データを取得する機能と、
上記画像データについて、画像の中の中央部分から多くの画素が抽出されるように画素を抽出し、抽出した画素を対象として輝度分布を求めるとともに、輝度がとりうる階調範囲の全輝度値のうち当該輝度分布における分布数が0ではない輝度値の数を色数とみなすことにより利用色数を算出する機能とをコンピュータに実現させることを特徴とするオブジェクト画素抽出プログラム。An object pixel extraction program for extracting an object pixel by a computer based on image data of an image expressed by a dot matrix pixel,
A function for acquiring the image data;
For the above image data, extract the pixels so that many pixels are extracted from the central part of the image, obtain the luminance distribution for the extracted pixels, and calculate the total luminance value of the gradation range that the luminance can take of the luminance is not a number of distribution 0 in the distribution luminance value number object pixel extraction program for causing and a function of calculating the number available colors by regarding the number of colors to a computer.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003157882A JP4171902B2 (en) | 1998-04-06 | 2003-06-03 | Object pixel extraction device, object pixel extraction method, medium on which object pixel extraction program is recorded, and object pixel extraction program |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9373998 | 1998-04-06 | ||
JP2003157882A JP4171902B2 (en) | 1998-04-06 | 2003-06-03 | Object pixel extraction device, object pixel extraction method, medium on which object pixel extraction program is recorded, and object pixel extraction program |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001013560A Division JP3478498B2 (en) | 1998-04-06 | 2001-01-22 | Object pixel determination device, object pixel determination method, medium recording object pixel determination program, and object pixel determination program |
Related Child Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007323021A Division JP4450250B2 (en) | 1998-04-06 | 2007-12-14 | Image data interpolation apparatus, computer for image data interpolation processing, image data interpolation method, and medium on which image data interpolation program is recorded |
JP2008155136A Division JP4400760B2 (en) | 1998-04-06 | 2008-06-13 | Image data interpolation apparatus, image data printing apparatus, image data interpolation method, and medium on which image data interpolation program is recorded |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2004096715A JP2004096715A (en) | 2004-03-25 |
JP2004096715A5 JP2004096715A5 (en) | 2006-05-18 |
JP4171902B2 true JP4171902B2 (en) | 2008-10-29 |
Family
ID=32071375
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003157882A Expired - Fee Related JP4171902B2 (en) | 1998-04-06 | 2003-06-03 | Object pixel extraction device, object pixel extraction method, medium on which object pixel extraction program is recorded, and object pixel extraction program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4171902B2 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007286965A (en) * | 2006-04-18 | 2007-11-01 | Interenergy Co Ltd | Radio tag and marketing information collection system |
JP2008234426A (en) * | 2007-03-22 | 2008-10-02 | Seiko Epson Corp | Image processing method, image processing device, and electronic equipment |
JP5115361B2 (en) | 2008-06-27 | 2013-01-09 | 富士通株式会社 | Pixel interpolation device, pixel interpolation method, and pixel interpolation program |
-
2003
- 2003-06-03 JP JP2003157882A patent/JP4171902B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004096715A (en) | 2004-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0949585B1 (en) | Apparatus and method for image data interpolation | |
EP0874330B1 (en) | Area based interpolation for image enhancement | |
AU761896B2 (en) | Image reconstruction architecture | |
US7046862B2 (en) | Image processing apparatus and program | |
JP3075269B2 (en) | Image data interpolation method, image data interpolation device, and medium recording image data interpolation program | |
JP5388559B2 (en) | Image processing apparatus, image processing method, program for executing image processing method, and storage medium | |
JP4058583B2 (en) | PRINT CONTROL DEVICE, PRINT CONTROL METHOD, AND MEDIUM RECORDING PRINT CONTROL PROGRAM | |
US6438270B1 (en) | Methods and systems for image sharpening | |
JP2000339449A (en) | Picture processor and picture processing method | |
JP4400760B2 (en) | Image data interpolation apparatus, image data printing apparatus, image data interpolation method, and medium on which image data interpolation program is recorded | |
JP4171902B2 (en) | Object pixel extraction device, object pixel extraction method, medium on which object pixel extraction program is recorded, and object pixel extraction program | |
JP3478498B2 (en) | Object pixel determination device, object pixel determination method, medium recording object pixel determination program, and object pixel determination program | |
JP3173496B2 (en) | Image data interpolation apparatus, computer for image data interpolation processing, image data interpolation method, and medium recording image data interpolation program | |
JP4340888B2 (en) | Image processing apparatus, image processing method, image processing program, and storage medium | |
JP3045134B2 (en) | Image data interpolation apparatus, image data interpolation method, and medium recording image data interpolation program | |
JP3063754B2 (en) | Image data interpolation device, image data interpolation method, medium recording image data interpolation program | |
JP3201338B2 (en) | Image data interpolation apparatus, image data interpolation method, and medium recording image data interpolation program | |
JP4009805B2 (en) | Image data interpolation apparatus, image data interpolation method, and medium on which image data interpolation program is recorded | |
JP2962310B1 (en) | Image processing apparatus, image processing method, and medium recording image processing program | |
JP4115073B2 (en) | Image processing apparatus and image processing method | |
JP2000076430A5 (en) | ||
JP4081628B2 (en) | Image data interpolation method, image data interpolation device, and computer readable recording medium recording image data interpolation program | |
JP2000209435A (en) | Medium recorded with printing control program, printing controller and printing control method | |
JP2000076430A (en) | Image data interpolating device, its method, and medium having recorded image data interpolating program thereon | |
JP3758030B2 (en) | Image data interpolation program, image data interpolation method, and image data interpolation apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060328 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060328 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20071001 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071017 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071217 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080123 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080321 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080416 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080613 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20080627 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080716 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080729 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110822 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120822 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130822 Year of fee payment: 5 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |