本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態に係る画像処理装置1は、図1に示すように、制御部11と、記憶部12と、入出力部13とを含んで構成され、外部の画像出力装置としてのプリンタ2に接続されている。なお、ここでは画像出力装置としてプリンタを想定した例を述べているが、画像出力装置としてはプリンタのように媒体上に画像を固定するもののみならず、ディスプレイやプロジェクタのように画像を表示ないし投影出力するものを含む。また、ディスプレイ単体でなくても、例えばノートPCやPDA(Personal Digital Assistant)、さらにはディジタルカメラのようにディスプレイを内蔵する機器も、ここにいう画像出力装置に含む。
制御部11は、記憶部12に格納されている画像処理プログラムを読出して実行するものであり、この制御部11の画像処理プログラムに従った動作については、後に詳しく述べる。記憶部12は、制御部11によって実行されるプログラムを格納した、コンピュータ可読な記録媒体である。またこの記憶部12は、制御部11の処理の過程で生じる種々のデータを格納するワークメモリとしても動作する。さらに、この記憶部12には、プリンタ2を含む画像出力装置の特性を表す出力特性情報が格納されている。この出力特性情報については、後に述べる。
入出力部13は、外部装置から入力される画像データ等の情報を制御部11に出力する。また、この入出力部13は、制御部11から入力される指示に従って画像データ等の情報を外部の装置に出力する。
ここで制御部11によって実行される画像処理プログラムの内容について説明する。図2は、本実施の形態に係る画像処理プログラムの機能ブロック図である。図2に示すように、本実施の形態の画像処理プログラムは、画像データ格納部21と、画像処理部22と、処理パラメータ制御部23とを含んで構成され、さらに画像処理部22は、特徴量保存拡大処理部25と、補間処理部26とを含み、補間処理部26は、少なくとも一つの補間処理モジュール(補間処理方法ないし補間処理手段)を含む。図2においては、補間処理部26は、これら補間処理モジュールとして最近傍補間処理部31と、線形補間処理部32とを含む例について示している。
ここで画像データ格納部21は、処理対象となる画像データを保持し、また処理中の画像データや拡大処理後の画像データを記憶部12に格納するものである。なお、ここで画像データは、画像処理部22において処理可能な画像フォーマット(例えばBMP形式や、TIFF,PNGなど)で記述されたデータであり、外部装置としてのディジタルカメラやスキャナから取込まれ、またはコンピュータ上で作成、編集された画像データである。
画像処理部22の特徴量保存拡大処理部25は、処理対象となった画像データを、予め定められた規則で画像ブロックに分割し、各画像ブロックごとに所定の特徴量を算出する。また、この特徴量保存拡大処理部25は、各画像ブロックを順次注目ブロックとして、各注目ブロックに対し、上記算出した特徴量に基づいて決定した方法で拡大処理を行って、注目拡大画像ブロックを生成する。そして、各注目拡大画像ブロックを、処理対象の画像データ内の注目ブロックの位置に基づいて決められる態様で配列して、処理対象画像データを拡大した拡大画像データを生成する。
ここで画像ブロックへの分割に関して予め定められた規則とは、例えば所定のサイズ(幅及び高さで規定されるサイズ)のブロックに分割する規則などである。また拡大方法は、例えば次のように決定できる。すなわち特徴量として、注目ブロック内の画素値の不連続性に関する情報、例えばエッジ強度を表す数値(隣接画素値の差が、所定のしきい値を超える部分における当該差の絶対値など)を算出する場合、特徴量保存拡大処理部25は、その特徴量と、予め定められている値(既定値)とを比較し、特徴量が当該既定値よりも大きい場合と、そうでない場合とで互いに異なる拡大方法を選択的に用いて拡大処理を行ってもよい。
すなわち、上記拡大方法には、処理負荷と拡大画像の画質との平衡関係から、処理負荷優先の処理を行う第一拡大方法と、画質優先の処理を行う第二拡大方法とが少なくとも含まれ、特徴量が上記既定値よりも大きい場合は、画質を優先とする第二拡大方法を用い、そうでない場合は、処理負荷(つまり速度)を優先する第一拡大方法を用いる。
つまり、算出された特徴量を所定の既定値と比較することにより、注目画像ブロックを特徴的ブロックとそうでないブロック(以後、平坦ブロックと呼ぶ)に分離し、それぞれに適した拡大処理を適用することができる。さらに上記既定値を後述のように変更可能な値とすることで特徴ブロックと平坦ブロックの分離割合を所定の条件に基づいて制御できる。
なお、ここでは特徴量を既定値と比較しているが、この既定値に代えて、出力特性情報から決められる値と、この特徴量とを比較することとしてもよい。つまり出力特性情報に基づいて決められる第一の処理パラメータと、特徴量との比較により、第二の処理パラメータが設定されることとしてもよい。
なお以下の説明では、特徴量はエッジの強度やその角度(後述)として説明するが、本実施の形態の特徴量はこれに限定されるわけではなく、例えば注目ブロックの各画素値の平均値を求め、その平均値に対する注目領域の各画素値のばらつきを表すような値(例えば、標準偏差や分散)などであってもよい。
補間処理部26は、記憶部12に格納されている画像データに対して、最近傍補間処理部31による補間処理(最近傍補間処理)と、線形補間処理部32による補間処理(線形補間処理)と、の少なくとも一方による補間処理を行い、画像データの拡大処理を行う。具体的には、通常は線形補間処理部32による線形補間処理を行うように設定し、より高速に拡大処理を行う必要がある場合などに最近傍補間処理部31による最近傍補間処理を行うように設定することもできる。
処理パラメータ制御部23は、拡大処理後の画像データの出力先となっているプリンタ2に関する出力特性情報と、処理対象画像データの解像度(あるいは縦横サイズ)、拡大処理後の画像データの解像度(あるいは縦横サイズ)及び/又は拡大倍率とに基づき、特徴量保存拡大処理部25で処理すべき拡大処理(特徴量保存拡大処理)の割合と、補間処理部26で処理すべき拡大処理(補間拡大処理)の割合を定め、また特徴量保存拡大処理部25における上記既定値(ここでは特徴ブロックと平坦ブロックの分離割合を制御する値であり、この値を以後、「平坦部抽出値」と呼ぶ)や、後述するコントラスト強調のための所定の強調パターンなど、処理パラメータを制御する。さらに、処理パラメータには、平坦ブロックの拡大方法を特定する情報を含んでもよい。
なお、ここで拡大処理の割合とは、特徴量保存拡大処理と補間拡大処理とを多段階で順次適用する場合の、各拡大処理での拡大率である。具体的にi番目の拡大処理での拡大率をmi、処理対象画像データから最終結果である拡大画像データへの拡大率をMとすれば、
ここでnは、組み合せに係る拡大処理の数(すなわち段階数)である。このように本実施の形態において特徴的なことの一つは、各段階で用いる各拡大方法の拡大率が、出力先となった画像出力装置の出力特性情報や特徴量に基づいて定められることである。この処理の詳細は後に詳しく述べる。
またここで、前述のように特徴ブロックと平坦ブロックを分離する特徴量としてエッジ強度を用いる場合、平坦部抽出値が大きい場合は、注目ブロックが平坦ブロックとして判断される割合が大きくなる。逆に平坦部抽出値が小さい場合はエッジ強度が小さいブロックも特徴ブロックとして抽出することとなって、注目ブロックが平坦ブロックとして判断される割合が小さくなる。換言すれば、平坦部抽出値を大きく設定すると、特徴量保存拡大処理部25で速度優先の方法で処理されるブロックの数が増加し、拡大処理全体の処理負荷は小さくなる。逆に平坦部抽出値を小さく設定すると、画質優先の方法で処理されるブロックの数が増加し、画質が向上する一方で拡大処理全体の処理負荷は大きくなる。
さらに、本実施の形態において特徴的なことの一つは、処理パラメータ制御部23が、記憶部12に格納されている出力特性情報を参照して、拡大処理に関する処理パラメータを制御することである。具体的には記憶部12には、出力特性情報として、次の表に示すようなテーブルが保持されている。
この表に示すように、出力特性情報は、画像出力装置を特定する情報と、それに対応する特性の情報が関連づけられている。ここで特性の情報は、画像出力装置の種類(プリンタであるか、ディスプレイ等であるか)に応じて、その内容が異なる。ここでは特性の情報としてプリンタについては解像度とスクリーンの情報とを含み、ディスプレイについてはCRTであるか、液晶(LCD)であるかといった表示原理の別と、画面サイズ(画面の対角線長さをインチで表したものなど)、解像度(縦横の画素数など)、ピッチ(ドットピッチやAGピッチなど)などを含む。
そして処理パラメータ制御部23は、出力先となった画像出力装置の出力特性情報を記憶部12に格納されているテーブルから検索して読出し、この読出した出力特性情報に基づいて拡大処理に関する処理パラメータを制御する。
このように、処理パラメータ制御部23が、プリンタ2等の画像出力装置の出力特性の情報や、処理対象画像データのサイズ、拡大処理後の画像データのサイズ、及びこれらのサイズから算出される拡大率に基づいて、特徴量保存拡大処理と補間拡大処理とのそれぞれを組み合せるか否か、また、組み合せる際にはその割合(各段階での拡大率)を設定し、また特徴量保存拡大処理における特徴ブロックと平坦ブロックの分離割合を制御することで、拡大処理全体の処理負荷を制御しながら、高画質な拡大画像データを得ることができるようになる。
なお、本実施の形態では、複数の拡大方法がグループに分けられており、各拡大方法グループごとに少なくとも一つの拡大方法が関連づけられている。そして出力特性情報と、特徴量として算出される値(この値が複数ある場合は、そのうちの少なくとも一部)とに基づいて、複数の拡大方法グループのそれぞれについて、処理の負担割合(それぞれが担当する拡大率)を設定する。ここで、各負担割合は0%以上であるとする(すなわち処理を行わない拡大方法グループもあり得る)。そして、処理を負担する各拡大方法グループについて、その拡大方法グループに関連する拡大方法が複数あれば、そのうちの一つが、特徴量として算出される値(この値が複数ある場合は、そのうちの少なくとも一部)に基づいて選択的に用いられ、拡大処理が行われている。尤も、この各拡大グループにおいて、その拡大方法グループに関連する拡大方法が複数ある場合にそのうちの一つを選択する際にも、上述のように特徴量を用いるだけでなく、画像出力装置の出力特性の情報を用いてもよい。
具体的にこの処理パラメータ制御部23は、出力先となった画像出力装置の種類を判断し、その種類がプリンタであれば、画像データの拡大率を調べ、これが例えば2倍を超えていれば、出力先となったプリンタに対して関連づけられて記憶されている出力特性情報を読出し、当該出力特性情報を用いて処理パラメータの設定を行う。また画像データの拡大率が例えば2倍以下であれば、特徴量保存拡大処理を行わず、補間拡大処理のみで拡大処理を行うよう処理パラメータを設定する。
さらに、画像出力装置の種類がディスプレイであれば、出力先となったディスプレイに対して関連づけられて記憶されている出力特性情報を読み出し、この出力特性情報を用いて処理パラメータの設定を行うこととしてもよい。
なお、この過程で出力特性情報を用いて処理パラメータを設定する際には、併せて拡大率や特徴量等を参照してもよい。
こうして定められる処理パラメータは、例えば次の表に示すような結果となる。
この表においては、拡大率が5倍(処理対象画像データのサイズが1280×960画素、拡大処理後の画像データのサイズが6400×4800画素)である場合に、3種類のプリンタ(プリンタ#1から#3)並びに、2種類のディスプレイ(ディスプレイ#1及び#2)についてそれぞれ定められる、処理パラメータとして特徴量保存拡大処理の拡大率と、平坦部抽出値と、平坦ブロックの拡大方法(NNは最近傍補間処理を用いた拡大方法、LIは線形補間処理を用いた拡大方法)の例を示している。
例えばプリンタ#1に関しては、拡大率が5倍であるときに、特徴量保存拡大処理の拡大率が「2」であり(従って残りの2.5倍の拡大処理は、補間拡大処理によることになる)、平坦部抽出値は「9」、平坦ブロックについては最近傍補間処理を行うことが示されている。
なお、上記の表において、平坦部抽出値は最大エッジ強度を「10」として0から10で正規化されているものとし、平坦部抽出値が大きいほど平坦部抽出率が増加するように設定されている。つまり値「0」は全ての注目ブロックを特徴ブロックとして処理することを示し、値「10」は全ての注目ブロックを平坦ブロックで処理することを示す。
なお、平坦部抽出値は上記で設定された値に限ったものではなく、他の値で正規化して設定されたものでもよい。
ここで、記憶部12に格納されている出力特性情報から、この[表2]に示した処理パラメータを導出する処理例について述べる。まず、この処理パラメータの基本的な考え方を述べると次のようになる。すなわち、プリンタの場合は一般に、画像データの出力の際にスクリーン処理(網点処理や誤差拡散処理など)を行って、最終出力画像データを生成している。例えばレーザプリンタなどにおける出力解像度は、前述の網点スクリーン処理に用いる網点スクリーンを切替えることで出力解像度を擬似的に実現している。つまりレーザプリンタの出力解像度はスクリーン線数(1インチ当り何本の線を表現できるかの値)に依存して決まるとも言える。しかしこうしたプリンタでは出力解像度が1200dpi相当であっても、スクリーン線数はたかだか200線程度であることもあり、本来は200dpiほどの解像度でしかない。このような場合に画質を維持しながら拡大処理を行ったものと、短い処理時間で拡大処理を行ったものとの間で、視認される画質には大きな差はない。従って、このようなプリンタについては、拡大処理全体の処理負荷が小さくなるように、特徴量保存拡大処理の割合を少なくし、また平坦部抽出値を大きくして平坦ブロックとして処理する注目ブロックを多くする。また、平坦ブロックを最も処理負荷の小さい最近傍補間処理で拡大処理するように設定する。
一方、誤差拡散処理法によるスクリーンを用いたプリンタの場合や、より高解像度なプリンタ(高解像度インクジェットプリンタなど)の場合には、画質を維持した拡大処理を行うような設定に便宜変更する。
また、ディスプレイは、CRTでもLCDでも、一般に解像度(DPI)が80dpi前後であり、プリンタなどに比べて低い。しかし同じ画像データをプリンタに出力する場合とディスプレイに表示させる場合を比較すると、ドットピッチ(またはAGピッチ)の大きさの影響によりディスプレイに表示させる場合の方が、画像データの視認可能な画質限界が高くなり、画像劣化(ジャギやボケ)がより目立つ。
そこで、こうした画像出力装置自体のもつ特性を前提として、プリンタであれば、印字方法とスクリーン情報を参照し、高解像度インクジェットプリンタでなく、かつスクリーンが誤差拡散処理法によるものでない場合は、スクリーン情報からスクリーン線数を調べ、このスクリーン線数に応じて予め定められたテーブルを参照しながら、拡大処理の拡大率に対する特徴量保存拡大処理の処理割合と、平坦部抽出値とを設定する。例えばスクリーン線数が「200」未満である場合(高精細スクリーンでない場合)には特徴量保存拡大処理の処理割合を「50%」とし、平坦部抽出値を「9」とし、スクリーン線数が「200」から「300」の場合には、特徴量保存拡大処理の処理割合を「70%」とし、平坦部抽出値を「7」とするなどと定めて記憶部12に記憶しておき、これを参照しながら各処理パラメータを定める。例えば特徴量保存拡大処理の処理割合が「50%」となっている場合に、拡大画像データの拡大率が「5倍」であるときは、5倍の50%に相当する2.5を算出し、これを超えない最大の整数としての「2倍」を、特徴量保存拡大処理が行う拡大率と定めればよい。このとき、残りの2.5倍を補間拡大処理の倍率とすることになる。
また、高解像度インクジェットプリンタであるか、スクリーンが誤差拡散処理法である場合は、別途、特徴量保存拡大処理の処理割合を「70%」とし、平坦部抽出値を「5」とするなどと定めて記憶部12に記憶しておく。同様に、ディスプレイについても、ピッチの情報に応じて特徴量保存拡大処理の処理割合と平坦部抽出値とを定めて記憶部12に記憶しておく。
さらに、平坦部の処理方式としては、高解像度インクジェットプリンタであるか、スクリーンが誤差拡散処理法である場合及びディスプレイである場合に、線形補間処理を行うことと定めておけばよい。
次に、特徴量保存拡大処理部25の動作について説明する。図3は本実施の形態に係る特徴量保存拡大処理部25の一例を表す構成ブロック図である。同図に示すように、特徴量保存拡大処理部25は、画像ブロック設定部41と、画像ブロック特徴量算出部42と、拡大画像ブロック生成部43と、画像ブロック配置部44とを含んで構成されている。さらに拡大画像ブロック生成部43は、第1生成部51および第2生成部52を含む。
画像ブロック設定部41は、画像ブロック特徴量算出部42及び拡大画像ブロック生成部43における処理で必要とされる所定の画像ブロックのサイズをそれぞれ設定し、記憶部12に格納されている処理対象画像データから当該それぞれ設定したブロックサイズの画像ブロックを順次(例えばラスタスキャン順に)切り出し、各ブロックサイズの画像ブロックを画像ブロック特徴量算出部42および拡大画像ブロック生成部43にそれぞれ出力する。
画像ブロック特徴量算出部42は、画像ブロック設定部41から入力される画像ブロックの少なくとも一部(例えば中心部近傍の矩形部分)を注目領域とし、この注目領域の注目領域の周辺部を含む画像ブロック内の各画素値に基づいて特徴量を算出して出力する。
ここで特徴量としては、注目領域のエッジ強度およびエッジ角度とすることができ、ここではこれらを例として述べるが、これらに限られるものではなく、例えば注目領域の各画素値の平均値を求め、その平均値に対する注目領域の各画素値のばらつきを表すような値(例えば、標準偏差や分散)などでもよい。
拡大画像ブロック生成部43は、複数の拡大処理モジュールとして、第1生成部51及び第2生成部52を有しており、画像ブロック特徴量算出部42で算出された特徴量に従って、これら複数の拡大処理モジュールのいずれかを利用して、当該特徴量の算出に用いられた注目領域に対応する拡大画像ブロックを生成する。ここで第1生成部51と第2生成部52とは、互いに異なる拡大方法を用いて画像データの拡大を行うものであり、例えば第1生成部51は、第2生成部52よりも画質を優先した拡大方法を用い、第2生成部52は、第1生成部51よりも速度(処理負荷)を優先した拡大方法を用いるものとしてもよい。
この場合、例えば画像ブロック特徴量算出部42が特徴量としてエッジ強度を出力しているときには、この特徴量と既定値(又は出力先となった画像出力装置に対応する出力特性情報に基づいて決められる値、以下、既定値等と呼ぶ)とを比較し、その比較の結果に応じて、例えば特徴量としてのエッジ強度が上記既定値等より大きい場合に画質優先の第1生成部51による拡大処理を行い、そうでない場合は速度優先の第2生成部52による拡大処理を行うこととすればよい。
画像ブロック配置部44は、拡大画像ブロック生成部43で生成された拡大画像ブロックを順次配置し、解像度変換あるいは拡大された拡大画像データを生成して画像データ格納部21に出力し、記憶部12に格納させる。なお、拡大画像ブロックの配置方法については、例えば順次並べてゆく方法の他、拡大画像ブロックを重なり合うように順次配置して重畳させ、重なる画素値の総和を重なった数で割ることにより拡大処理結果である画像データの各画素値を算出するようにしてもよい。
ここで拡大画像ブロック生成部43および画像ブロック配置部44についてより詳しく説明する。まず、画像ブロック特徴量算出部42の詳細について説明する。ここでは注目領域を2×2画素サイズブロック、注目領域を含む周辺領域を4×4画素サイズブロックとする。画像ブロック特徴量算出部42は、例えば図4に示すように、エッジ強度算出部61と、エッジ方向推定部62と、エッジパターン選択部63とを含む。
エッジ強度算出部61は、画像ブロック設定部41で切り出された画像ブロック中の注目領域のエッジ強度Gを次の式(1)で算出する。
なお、エッジ強度は上記式(1)で算出されるものに限定されるわけでなく、以下の式(2)などで算出しても良い。
ここで、|・|は、絶対値をとることを意味する。
次にエッジ強度算出部61は、算出されたエッジ強度Gと所定の閾値Thとの比較を行い、注目領域の拡大処理手法を選択する。なお、注目領域のエッジ強度Gが閾値Thよりも小さい場合は、エッジ方向推定部62及びエッジパターン選択部63における処理は行われず、拡大画像ブロック生成部43の第2生成部52における拡大処理が行われる。
以下にエッジ方向推定部62およびエッジパターン選択部63の処理の詳細を説明する。図5は、注目領域および周辺領域の具体例と注目領域のエッジ方向の一例の説明図である。図5(A)は注目領域および周辺領域の一例を示している。各矩形はそれぞれ画素を表し、矩形内の各数字はそれぞれの画素値を示している。注目領域は太線枠で囲まれた中心部近傍の画素{a,b,c,d}={15,104,86,203}である。この図5に示す例を用いて、エッジ方向推定部62におけるエッジ方向推定処理の流れについて説明する。
図6は、エッジ方向推定部62におけるエッジ方向推定処理の一例を示すフローチャート図である。エッジ方向推定部62は、上記注目領域のエッジ角度Θを、次の式(3)で計算する(S11)。
具体的に図5(A)の注目領域のエッジ角度Θは、注目領域{a,b,c,d}={15,104,86,203}のなので、式(1)よりgx=−103、gy=−85となり、エッジ角度ΘはΘ=−140.5°となる。このエッジ角度Θの方向は図5(B)において矢印つきの線分で示す。
さらに得られたエッジ角度Θが22.5°ごとに区分された方向(8方向)の角度範囲のいずれに含まれるかを調べる。この場合、エッジ角度Θが0°あるいは±180°を方向0、22.5°あるいは−157.5°の方向を「方向1」、45°あるいは−135°の方向を「方向2」、67.5°あるいは−112.5°の方向を「方向3」、90°あるいは−90°の方向を「方向4」、112.5°あるいは−67.5°の方向を「方向5」、135°あるいは−45°の方向を「方向6」、157.5°あるいは−22.5°の方向を「方向7」とし、これらの角度の±11.25°の範囲をそれぞれの方向であるものとしている。上述の具体例におけるエッジ角度Θ(=−140.5°)は−135°±11.25°の範囲内に含まれるので、エッジ角度は「方向2」となる。
また、この処理S11では、エッジ角度の参照数をカウントするための変数としての角度参照数Lを「1」に初期化しておく。
次に処理S11で計算された注目領域のエッジ角度Θに応じて、図5(A)に示した周辺領域(太線枠外の領域)中からエッジ方向の推定に用いる参照領域を選択する(S12)。図7は、エッジ方向の推定に用いる参照領域の一例の説明図である。図中の太線枠で示した2×2画素が参照領域である。図7(A)はS11で求めたエッジ角度が「方向0」である場合、図7(B)は「方向4」の場合、図7(C)はそれ以外の方向の場合を示している。なお、図7(A)及び(B)に示す方向0及び方向4の場合の参照領域の数は2であり、図7(C)に示す方向0,4以外の方向の場合の参照領域の数は4である。図5に示した具体例では、エッジ角度の方向は「方向2」であるので、図7(C)に示した4つの参照領域が選択の候補となる。なお、参照領域の選択は図7に示したものに限定されるわけではなく、例えば図7(C)の場合などは、参照領域数を8としたり、それぞれの方向に応じた参照領域を設定してもよい。
次に、エッジ方向推定部62は、処理S12で選択された参照領域の1つに対して、処理S11と同様に式(3)に従って、エッジ角度Θを計算する(S13)。そして、この処理S13で計算された参照領域のエッジ角度と、S11で計算された注目領域のエッジ角度との差が予め設定されている閾値Θthより小さいか否かを判断する(S14)。
この判断の結果、両エッジ角度の差が予め設定されている閾値Θthよりも小さい場合には(Yesの場合)、角度参照数をインクリメントし(S15)、S16に移行する。一方処理S14において、両エッジ方向の差が予め設定されている閾値Θthよりも大きい場合(Noの場合)には、エッジ方向推定には適さない参照領域と判断し、そのまま処理S16に移行する。
エッジ方向推定部62は、全ての選択可能な参照領域のエッジ角度計算が終了したか否かを判断し(S16)、終了していれば、注目領域のエッジ角度と、処理S14においてエッジ方向推定に適したと判断された参照領域のエッジ角度との総和を計算し、前記エッジ角度の総和を角度参照数で割った平均エッジ角度を注目領域の推定エッジ方向として(S17)、処理を終了する。
また、処理S16において、まだ終了していない参照領域がある場合には、S13に移行して処理を続ける。
図5に示した具体例では、上部の参照領域{86,203,171,211}からエッジ角度ΘU=−149.4°、左部の参照領域{10,15,20,86}からエッジ角度ΘL=−131.2°、下部の参照領域{1,102,15,104}からエッジ角度ΘD=−175.2°、右部の参照領域{104,215,203,219}からエッジ角度ΘR=−141.0°となる。注目領域のエッジ角度Θ=−140.5°とそれぞれの参照領域のエッジ角度が比較され、その差が閾値Θthより小さい参照領域の数が角度参照数としてカウントされる。
図8は、図5に示した注目領域における推定エッジ方向の一例の説明図である。例えば上述の具体例において、すべての参照領域について注目領域のエッジ角度との差が閾値Θthより小さいとすれば、注目領域及び4つの参照領域から求められたエッジ角度の総和は−737.3°となり、角度参照数5で割ることによって平均エッジ角度は−147.5°と求めることができる。この場合も上述の注目領域のエッジ方向と同様に、例えば8方向のいずれかに正規化するとすれば、−147.5°は「方向1」となる。これを推定エッジ方向とする。
なおここでの説明では、画素値に深さがない、いわばグレースケール画像である場合を例として説明を行っているが、これに限定されるわけではない。例えばRGB色空間のカラー画像の場合には、各々の色成分のデータにおけるエッジ角度Gr、Gg、Gbの強さにより選択された色空間データで上記の処理を行えばよい。このようにすることで、カラー画像における拡大画像データのエッジ部の色ずれなど、画質低下を抑えることが可能となる。
また、上述の説明では注目領域および参照領域における式(1)を用いたエッジ角度計算後に8方向のいずれかに正規化したが、勿論これに限定されるわけではなく、さらに精度の高いエッジ方向が必要であれば12方向(15.0°ごと)、16方向(12.25°ごと)など、さらに多数の方向に正規化しても良い。
次に、エッジパターン選択部63の動作の詳細について説明する。図9は、記憶部12に格納されている、エッジパターンテーブルの一例の説明図である。エッジパターン選択部63は、例えば図9に示すようなエッジパターンテーブルを用いて、エッジパターンの変換を行う。図9に示したように、エッジパターンテーブルには注目領域のパターンサイズに対応する第1エッジパターンがそれぞれのエッジ方向(ここでは8方向)ごとに1ないし数パターン登録されており、それぞれのパターンに対応して、第1エッジパターンのパターンサイズよりも大きなパターンサイズのパターンが第2エッジパターンとして登録されている。
エッジパターン選択部63は、例えば図9に示すようなエッジパターンテーブルを用いて、エッジ方向推定部62で推定された注目領域のエッジ方向に相当する第1エッジパターンを選択し、選択された第1エッジパターンに対応する第2エッジパターンを決定する。
具体的に図5(A)に示した注目領域およびその周辺領域の場合、注目領域に対する推定エッジ方向は、エッジ方向推定部62によって、上述のようにすべての参照領域について注目領域のエッジ角度との差が閾値Θthより小さいとした場合には「方向1」であると求められている。そこで、注目領域の推定エッジ方向(方向1)に従い、図9に示すエッジパターンテーブル内から注目領域のエッジパターンに相当するパターン候補が選択されることとなる。この例の場合、「方向1」の第1エッジパターンであるパターン0からパターン3の4つのパターンが選択され、図5(A)に示す注目領域に対する第1エッジパターンの候補となる。そしてエッジパターン選択部63が、以下に説明するように、パターン0からパターン3のいずれか1つを注目領域に対する第1エッジパターンとして選択することになる。
この選択の方法について、図10を参照しながら説明する。図10は、図5に示した注目領域に対応する第1エッジパターンの選択方法の具体例の説明図である。この具体例では、推定エッジ方向が「方向1」であったので、注目領域に対するエッジパターンとして、エッジパターンテーブルから第1エッジパターン中の4つのエッジパターンの候補が選択された。選択されたエッジパターンの候補を図10(A)として示している。
このようなエッジパターンの候補のそれぞれについて、図10(B)に示すようにビットパターン化する。ここでは白部分を0、それ以外を1としてビットパターン化している。ただし、図9に示すエッジパターンテーブルを予めビットテーブル化して登録しておいても良く、その場合は、このビットパターン化の処理は省略できる。
次に式(4)に従い、注目領域中の平均画素値を計算し、注目領域内の各々の画素値から平均値を引き、その符号を以て注目領域の画素値パターンとする。
なお、図5(A)に示す例の場合ではMean=(15+104+86+203)/4=102であり、a_sign=−87、b_sign=2、c_sign=−16、d_sign=101であり、その符号を画素値パターンとすると図10(C)に示すようになる。さらに画素値パターンを図10(D)に示すようにビットパターン化する。
次に、図10(B)に示した各エッジパターン候補のビットパターンと、図10(D)に示した注目領域のビットパターンとのパターンマッチングを行い、注目領域に対する第1エッジパターン中のエッジパターンを1つ選択する。この場合はパターン2が注目領域に対する第1エッジパターンとして選択される(図10(E))。
最後に、第1エッジパターンが選択されると、それに1対1に対応するように予め用意された第2エッジパターンを決定する。この場合はエッジパターンテーブルから、第1エッジパターンにおける「方向1」のパターン2に対応する第2エッジパターン(方向1、パターン2)が選択される(図10(F))。第2エッジパターンは、後述する拡大画像ブロック生成部43における注目領域に対する拡大画像ブロック生成の際に使用される。
なお、第1および第2エッジパターンは図9に示したものに限定されるわけではなく、例えば、入力画像データの種類に応じて図9とは異なったエッジパターンを用いてもよく、また各角度における第1および第2エッジパターン候補数を増減させてもよい。もちろん、テーブルとして構成する必要もなく、特定された第1エッジパターンから第2エッジパターンが導出できればよい。
次に拡大画像ブロック生成部43について説明する。まず、拡大画像ブロック生成部43の第1生成部51における拡大画像ブロックの生成処理の一例について説明する。先に述べたように、処理パラメータ制御部23では、出力先となった画像出力装置の出力特性情報や、処理対象画像データの解像度、縦横サイズ、拡大処理結果の画像データの解像度や縦横サイズ、それらから算出される拡大倍率(または、独立に得られる拡大倍率)に基づき、特徴量保存拡大処理と補間拡大処理との処理割合が設定される。さらに拡大画像ブロック生成部43の第1生成部51で用いるコントラスト強調のための所定の強調カーネルを設定する。
そこでまず、拡大画像ブロック生成部43の第1生成部51では、処理パラメータ制御部23で設定され、特徴量保存拡大処理部25における拡大倍率に応じたサイズおよび要素の強調カーネルを用いて、上述した画像ブロック設定部41で切り出された画像ブロック中の注目領域およびその周辺領域の画像データのコントラストを強調する。
すなわち、この強調処理のための強調カーネルもまた、出力先となった画像出力装置の出力特性情報や、特徴量に基づいて制御される処理パラメータの一つであってよい。
次の表は、いくつかの具体的な処理対象画像データのサイズや拡大処理後の画像データのサイズおよび拡大倍率に対応する強調カーネル要素値の例を示すものである。この表の中で、特徴量保存拡大処理倍率は[表2]で示した値と同様である。
ここで、強調カーネルの要素値は、次に述べるように強調カーネルの種類に対応して設定されてもよい。例えばこの表では、ディスプレイに対応する強調カーネルの要素値において、「1.6,1.2」とあるのがそれに当る。
図11は、拡大画像ブロック生成部43の第1生成部51で用いる強調カーネルの具体例を表す説明図である。[表3]中の1.6および1.2の値は、図11(A)に示す強調カーネル(カーネル0)、図11(B)に示す強調カーネル(カーネル1)の中心の画素値に対応する重み係数を表している。また図12は、図11に示す強調カーネルで画素Pを強調する場合の説明図である。特徴量保存拡大処理は、その処理割合が大きい場合、多段階に分けて(例えば4倍の拡大を2回の2倍拡大に分けて)遂行してもよい。この場合に、図11(A)に示す強調カーネル(カーネル0)は、倍率4倍のうち最初の2倍の時に、図11(B)に示す強調カーネル(カーネル1)は倍率が次の2倍の時(4倍処理時)に、それぞれ用いられる。なお、上述の強調カーネルによる強調処理は、それぞれの2倍拡大の前に行う。図中、中心の画素値とその画素の上下左右に配置されたハッチングを施した画素を使用し、下部に記載した重みを用いて強調処理を行うことを示している。
拡大処理を行う場合、4倍、8倍の処理を行うと、原画像の特徴を有している画素は2画素、4画像離れた位置の画素となる。そのため、図11に示すように倍率が高いほど離れた画素を選択して強調処理に用いている。もちろん、8倍、16倍以降の倍率においても同様である。また、参照する画素の位置は、図11に示すような上下左右に限られたものではない。例えば、斜め方向の画素を含めたり、さらに離れた画素をも参照するように構成したり、処理対象画像データの種類およびサイズなどにより用いるカーネルを変更するなど、カーネルの要素(参照する画素)および要素間の距離が図11に示した強調カーネルと異なったものを用いてもよい。
例えば図11(A)に示すような強調カーネルを用いる場合、図12(A)に示すように、例えば中心の参照画素Pの強調処理を行う場合には、その上下左右に存在する画素a,b,c,dを参照し、また重みとして中心の注目画素については1.6を、周辺の参照画素に対しては0.15をそれぞれ用いる。これらにより、画素Pの画素値P’は次の式(5)に従って計算することができる。
なお、例えば図11(B)に示すような強調カーネルを用いる場合にも、同様に図12(B)に示すように参照画素Pの強調処理を行う場合には、その上下左右に1画素おいて存在する画素a,b,c,dを参照し、また重みとして中心の注目画素については1.2を、周辺の参照画素に対しては0.05をそれぞれ用いて式(5)と同様にして画素Pの画素値P’を計算すればよい。
これらの処理を経て第1生成部51は、実際に拡大画像ブロックを生成する。この拡大画像ブロックの生成処理の詳細について説明する。拡大画像ブロック生成部43の第1生成部51では、画像ブロック特徴量算出部42のエッジパターン選択部63で得られた第2エッジパターンと、上述の画像強調処理においてコントラスト強調された画素値とを用いて、注目領域に対する拡大画像ブロックを生成する。
図13は、第1生成部51における拡大画像ブロック生成処理の一例を示すフローチャート図である。まず、画像強調処理によりコントラスト強調された注目領域、および、画像ブロック特徴量算出部42のエッジパターン選択部63で選択された第2エッジパターンを用いて、まず3×3画素の拡大画像ブロックを生成する(S21)。この3×3画素の拡大画像ブロックの生成処理の具体例は、図14(A)に示したようなものとなる。
図14(A)では図5(A)に示した注目領域及び周辺領域の一例を示している。また、この注目領域に対応して、例えば図10において説明したようにして求められた第2エッジパターン(図9における「方向1」のパターン2)を図14(B)に示している。図14(B)においては、それぞれの画素をp0〜p8としている。図14(A)に示した注目領域{a,b,c,d}をもとに、画素p0〜p8の画素値を次の式によって計算する。
p0=a
p1=(a+c)/2
p2=b
p3=(a+c)/2
p4=(b+c)/2
p5=(b+d)/2
p6=c
p7=(b+d)/2
p8=d
このような計算を行うことによって、図14(C)に示すように3×3画素の拡大画像ブロックを生成することができる。
図15は、第2エッジパターンと3×3画素の拡大画像ブロックを生成する際に用いる計算式の一例の説明図である。上述のように図14(B)に示したような第2エッジパターンが選択されている場合には、上述の式によって3×3画素の拡大画像ブロックを生成することができるが、この時用いる計算式は、選択された第2エッジパターン毎に決まっている。図15(A)に示した第2エッジパターンは図9に示す「方向1」のパターン0であり、
p0=a
p2=b
p3=(a+c)/2
p4=(b+c)/2
p5=(b+d)/2
p6=c
p7=(c+d)/2
p8=d
p1=2×p4−p7
によって3×3画素の拡大画像ブロックを生成することができる。
図15(B)に示した第2エッジパターンは図9に示す「方向5」のパターン1であり、この場合は、
p0=a
p1=(a+c)/2
p2=b
p3=(c+d)/2
p4=(a+d)/2
p5=(a+b)/2
p6=c
p7=(c+d)/2
p8=d
によって3×3画素の拡大画像ブロックを生成することができる。
さらに図15(C)に示した第2エッジパターンは図9に示す「方向2」のパターン0であり、この場合は、
p0=a
p1=a
p2=b
p3=a
p4=(b+c)/2
p5=(b+d)/2
p6=c
p7=(c+d)/2
p8=d
によって3×3画素の拡大画像ブロックを生成することができる。
さらに図15(D)に示した第2エッジパターンは図9に示す「方向0」のパターン0であり、この場合は、
p0=a
p1=(a+b)/2
p2=b
p3=(a+c)/2
p5=(b+d)/2
p6=c
p7=(c+d)/2
p8=d
p4=(p1+p7)/2
によって3×3画素の拡大画像ブロックを生成することができる。
なお、他の第2エッジパターンの場合にも、同様にそれぞれの第2エッジパターンに対応した計算式に従って計算を行うことによって、3×3画素の拡大画像ブロックを生成することができる。
第1生成部51は、画像ブロック特徴量算出部42のエッジ方向推定部62で推定された注目領域の推定エッジ方向を判断し(S22)、推定エッジ方向が方向1〜方向3および方向5〜方向7の場合は、処理S21で生成された3×3画素の拡大画像ブロックから4×4画素の拡大画像ブロックを生成する。ここでは、3×3画素の拡大画像ブロックと、コントラスト強調された注目領域及びその周辺領域から、まず3×4画素の拡大画像ブロックを生成し、その後、生成した3×4画素の拡大画像ブロックとコントラスト強調された注目領域及びその周辺領域から4×4画素の拡大画像ブロックを生成することになる。
図16は、3×4画素の拡大画像ブロックの生成処理の具体例の説明図である。図16(A)には一例として図5(A)に示した注目領域及び周辺領域の例を示している。また、図16(B)におけるp0〜p8は、図14(C)に示した3×3画素の拡大画像ブロックを中央部に示している。
まず図16(B)の中央部に示す3×3画素の拡大画像ブロックとともに、図16(A)において太線枠で示した、コントラスト強調された周辺領域中の参照画素(r0〜r5)を用いて、図16(C)に示す3×4画素の拡大画像ブロック(q0〜q11)を生成する。3×4画素の拡大画像ブロックの各画素値q0〜q11は、次のような計算式により決定される。
q0=0.2×r0+0.8×p0
q1=0.4×p0+0.6×p1
q2=0.6×p1+0.4×p2
q3=0.8×p2+0.2×r1
q4=0.2×r2+0.8×p3
q5=0.4×p3+0.6×p4
q6=0.6×p4+0.4×p5
q7=0.8×p5+0.2×r3
q8=0.2×r4+0.8×p6
q9=0.4×p6+0.6×p7
q10=0.6×p7+0.4×p8
q11=0.8×p8+0.2×r5
図17は、推定エッジ方向による参照画素の選択方法の説明図である。図16に示した例では、図5(A)に示した注目領域及び周辺領域から画像ブロック特徴量算出部42で求めた推定エッジ方向が「方向1」であった場合を想定して、参照画素の位置を図16(A)に太線枠で囲んだように左上から下へ3画素と右下から上へ3画素とした。この参照画素の例を図17(A)に示しているが、このような位置の画素を参照画素とするのは、注目領域の推定エッジ方向が方向1(22.5°)から方向3(67.5°)の場合である。注目領域の推定エッジ方向が方向5(112.5°)から方向7(157.5°)の場合には、図17(B)に太線枠で囲んで示すように、左下から上へ3画素と右上から下へ3画素とするとよい。このように、注目領域における推定エッジ方向に従って、参照画素を選択する。もちろん、参照画素の選択は図17に示すように2パターンからの選択に限定されるわけではなく、推定エッジ方向に従い、より多くの参照画素選択パターンを用意してもよい。また、選択する参照画素についても、推定エッジ方向によって変更してもよい。
図18は、4×4画素の拡大画像ブロックの生成処理の具体例の説明図である。上述のようにして生成された3×4画素の拡大画像ブロック、および、コントラスト強調された周辺領域中の参照画素(r0〜r7)を用いて、4×4画素の拡大画像ブロックを生成する。コントラスト強調された注目領域及び参照領域を図18(A)に示し、生成された3×4画素の拡大画像ブロックを図18(B)の中央部に示している。ここでは参照画素r0〜r7として、図18(A)において太線枠で示したように、コントラスト強調された参照領域の下部4画素と上部4画素を用いる。そして、次のような計算式に従って、図18(C)に示す4×4画素の拡大画像ブロック(s0〜s15)を生成する。
s0=0.2×r0+0.8×q0
s1=0.2×r1+0.8×q1
s2=0.2×r2+0.8×q2
s3=0.2×r3+0.8×q3
s4=0.4×q0+0.6×q4
s5=0.4×q1+0.6×q5
s6=0.4×q2+0.6×q6
s7=0.4×q3+0.6×q7
s8=0.6×q4+0.4×q8
s9=0.6×q5+0.4×q9
s10=0.6×q6+0.4×q10
s11=0.6×q7+0.4×q11
s12=0.8×q8+0.2×r4
s13=0.8×q9+0.2×r5
s14=0.8×q10+0.2×r6
s15=0.8×q11+0.2×r7
なお、上記で説明した図18のS73における4×4画素の拡大画像ブロックの生成処理において、ここでは3×3画素ブロック→3×4画素ブロック→4×4画素ブロックという処理の流れによって拡大処理を行う例を示したが、3×3画素ブロック→4×3画素ブロック→4×4画素ブロックの処理の流れでもよいし、3×3画素ブロックから4×4画素ブロックを生成してもよい。もちろん、これらの場合の参照画素の選択は適宜変更されることになる。
こうして、4×4の拡大画像ブロックが生成されると、第1生成部51はその処理を終了する。
一方、処理S22において、注目領域の推定エッジ方向が方向1〜方向3および方向5〜方向7の場合、すなわちエッジ方向が垂直あるいは水平方向以外の場合には、第1生成部51は、処理S21で生成された3×3画素の拡大画像ブロックから4×4画素の拡大画像ブロックを生成する。図19は、推定エッジ方向が「方向0」および「方向4」の場合における4×4画素の拡大画像ブロックの生成処理の一例の説明図である。注目領域の推定エッジ方向が「方向0」および「方向4」の場合は、図19(A)に示すコントラスト強調された周辺領域中の画素(A,B,C,D)を用い、図19(B)において左右に示す参照画素r0〜r5を次のような式を用いて算出する。
r0=A
r1=B
r2=0.5×A+0.5×C
r3=0.5×B+0.5×D
r4=C
r5=D
なお、図19(B)の中央部には、処理S21で生成された3×3画素の拡大画像ブロックp0〜p8を示している。
このようにして3×3画素の拡大画像ブロックと、参照画素r0〜r5が得られると、これらを用いて上述の図16で説明した計算方法によって3×4画素の拡大画像ブロックq0〜q11を生成する。これを図19(C)に示している。さらに、このようにして生成した3×4画素の拡大画像ブロックq0〜q11と、図19(A)に示すコントラスト強調された周辺領域の上下4画素ずつを参照画素とし、上述の図18に示した計算方法によって図19(D)に示す4×4画素の拡大画像ブロック(s0〜s15)を生成する。
以上の処理により、画像ブロック特徴量算出部42において閾値Thよりエッジ強度Gが大きいと判断された注目領域に対する4×4画素の拡大画像ブロック(例えば図18(C)または図19(D)に示すs0〜s15)が生成される。
次に、画像ブロック特徴量算出部42において閾値Thよりエッジ強度Gが小さいと判断された注目領域に対しては、拡大画像ブロック生成部43の第2生成部52において、上述したような注目領域の画像特徴を保存する第1生成部51における拡大処理ではなく、処理負荷を軽減した、より簡便な拡大画像ブロックの生成処理を行う。例えばその一例として、2×2画素の注目領域から最近傍補間により4×4画素の拡大画像ブロックを生成することができる。もちろん、この第2生成部52において用いる拡大方法は他の方法であってもよく、第1生成部51よりも処理負荷の軽い方法であればよい。
このように、画像ブロック特徴量算出部42で算出された特徴量や、出力先となった画像出力装置の出力特性情報に従って、拡大画像ブロック生成部43において行う拡大処理を選択することにより、高画質な拡大処理が実現でき、さらには処理負荷も削減することが可能となる。なお、ここでは拡大画像ブロック生成部43は2つの拡大処理モジュールを有しているものとしたが、3つ以上の拡大処理モジュールを設けておき、画像ブロック特徴量算出部42で算出された特徴量や、出力先となった画像出力装置の出力特性情報に基づいていずれかの拡大処理モジュールを選択的に使用して拡大処理を行うように構成することもできる。
次に、画像ブロック配置部44について説明する。画像ブロック配置部44は、拡大画像ブロック生成部43で生成された注目領域に対する拡大画像ブロックを所定の方法により順次配置する。具体的に図20は、拡大画像ブロック生成部43で生成された4×4画素の拡大画像ブロックを配置する具体例の説明図である。図20に示す例では、順次生成された拡大画像ブロック0および拡大画像ブロック1をオーバーラップさせるように配置している。オーバーラップする画素は各々前画素値との平均をとるようにして配置すればよい。また、オーバーラップする画素の総和を計算し、前記画素値の総和をオーバーラップした数で割ることにより各画素値を算出するようにしてもよい。この場合、注目画素は例えば1画素づつずらしながら選択し、拡大処理を行ってゆくことになる。あるいは、オーバーラップさせずに並べて配置してもよい。この場合、注目領域を重ならないように選択してゆけばよい。
なお、4×4画素の拡大画像ブロックは、拡大画像ブロック生成部43中の第1生成部51と第2生成部52のいずれかで生成されるため、これらの拡大方法の違いによる画質劣化は、上述のようにオーバーラップさせて平均化することによっても抑制される。
ここで、特徴量保存拡大処理部25の動作例を図21のフローチャート図を参照しながら説明する。まず、画像ブロック設定部41の処理として、画像ブロック特徴量算出部42及び拡大画像ブロック生成部43における処理で必要とされる所定の画像ブロックのサイズをそれぞれ設定し、記憶部12に格納されている処理対象画像データから当該それぞれ設定したブロックサイズの画像ブロックを順次(例えばラスタスキャン順に)切り出し、各ブロックサイズの画像ブロックを画像ブロック特徴量算出部42および拡大画像ブロック生成部43にそれぞれ出力する(S31)。
画像ブロック特徴量算出部42は、入力された画像ブロック中の注目領域のエッジ強度Gを式(1)で算出する(S32)。なお、{a,b,c,d}は注目領域内の各画素値である。入力画像データがグレースケール画像でなく、例えばRGB色空間のカラー画像の場合は、注目領域に関してR,G,Bの各色空間の色成分毎の画像ブロックそれぞれについて、式(1)を用いてエッジ強度Gr、Gg、Gbを計算し、Gr、Gg、Gb中で最大のエッジ強度である色成分の画像ブロックを選択し、そのエッジ強度を注目領域の(すべての色成分に共通の)エッジ強度とする。
そして画像ブロック特徴量算出部42は、算出した注目領域のエッジ強度Gと所定の閾値Thとの比較を行う(S33)。ここで閾値Thよりエッジ強度Gが大きい場合は、注目領域が入力画像中のエッジ部分あるいは変化の大きい部分であるので、そうした注目領域の画像特徴を保存するような拡大画像ブロックの生成処理を行うべく、処理S34に移行する。また、処理S33において、注目領域のエッジ強度Gが閾値Thよりも小さい場合は、処理S34〜S37の処理に比べて処理負荷の小さい拡大画像ブロックの生成処理を行うため、処理S38に移行する。
すなわち、画像ブロック特徴量算出部42は、閾値Thよりエッジ強度Gが大きいと判断された注目領域およびその注目領域を含む1ないし複数の周辺領域中の参照領域のエッジ角度Θを、式(3)で計算する(S34)。
なお、gx、gyはS32において各々算出された値である。そして、得られた複数のエッジ角度Θから注目領域のエッジ方向θを推定する。例えば得られた複数のエッジ角度Θの平均値を取るなどの演算を行い、エッジ方向θを推定することができるが、これに限られるものではない。
次に画像ブロック特徴量算出部42は、処理S34で推定したエッジ方向θおよび注目領域の画素分布パターンを用いて第1および第2エッジパターンを選択する(S35)。ここで第1および第2エッジパターンについては、後に詳しく述べるが、エッジ方向および画素分布パターン毎に予め用意されたパターンであり、図9に示したように、記憶部12内にテーブル情報として記憶されている。
次に、拡大画像ブロック生成部43の第1生成部51は、拡大率に応じたサイズおよび要素値をもつ所定の強調パターン(以下、強調カーネルと呼ぶ)を用いて、画像ブロック設定部41で切り出された画像ブロック中の注目領域およびその周辺領域の画像データを強調処理する(S36)。
そしてこの第1生成部51が、画像ブロック特徴量算出部42で推定された前記注目領域のエッジ方向θと、選択された前記エッジパターンおよび処理S36において算出された注目領域および周辺領域の強調された画素値を用いて、注目領域に対する拡大画像ブロックを生成する(S37)。
このように、処理S33において注目領域のエッジ強度Gが大きい場合に、そのようなエッジ部分あるいは変化が大きいという特徴を保存するような拡大画像ブロックが生成される。これによって、エッジ部分などについてボケやジャギーの少ない高画質の拡大画像ブロックの生成を行うことができる。
一方、処理S33において、閾値Thよりエッジ強度Gが小さいと判断された注目領域に対しては、拡大画像ブロック生成部43の第2生成部52によって拡大処理が行われる(S38)。ここで、第2生成部52における拡大画像ブロック生成処理は、処理S34〜S37における拡大画像ブロックの生成処理とは異なり、例えば最近傍補間などの処理負荷の小さい拡大処理となっている。すなわち、エッジ強度Gが小さい場合には、上述のような複雑で処理時間を要する処理を行わなくても、処理負荷の小さい拡大画像ブロックの生成処理でも十分な画質を得ることができるので、エッジ強度Gが小さい場合には第2生成部52を選択して処理負荷の小さい拡大画像ブロックの生成処理を行い、全体としての処理時間の短縮を図っている。
次に、こうして生成された各画像ブロックに対応する拡大処理結果(拡大画像ブロック)について、画像ブロック配置部44が、既に説明した方法で順次配置し、これを画像データ格納部21に出力して記憶部12に格納させる(S39)。
そしてすべての画像ブロックについて処理が完了したか否かを調べ(S40)、完了していなければ処理S31に戻って処理を続け、完了していれば、拡大処理を終了する。
このように、本実施の形態によると、処理対象となった画像データを例えば所定サイズの画像ブロックに分けて、各画像ブロックについてエッジ強度やエッジ方向等の特徴量を算出する。そして、この特徴量に基づいて拡大処理の方法を選択し、また、拡大処理を組み合せた時の、当該組み合せに係る拡大処理の処理パラメータ(拡大率など)を制御する。これにより、拡大処理全体の処理負荷を軽くしながら、高画質な拡大画像を得ることができるようになる。さらに本実施の形態では、特徴量だけでなく、出力先となった画像出力装置の出力特性情報を併せて用いてもよい。
なお、特徴量保存拡大処理では、画像ブロック毎に、その画像ブロックの特徴量に応じて拡大方法を切り替えるので、例えば、処理対象画像データ中の特徴的な部分に関しては、その特徴量を保存する拡大手法を適用し、平坦な部分(空や肌などの画像部分)などの特徴的でない部分に関しては処理負荷の小さい拡大方法を適用することによって、特徴的部分のボケやジャギーの画質欠陥を抑制した高画質な拡大処理を行うとともに、処理負荷が小さく高速に拡大処理を行うことができる。
なお、ここまでの説明では、各画像ブロックごとに出力先となった画像出力装置の出力特性情報や特徴量に基づく処理を行っているが、画像ブロックの一つについて定めた処理パラメータを複数の画像ブロックで共通に用いてもよい。例えば、処理パラメータとして各画像ブロックごとに定めた特徴量保存拡大処理と補間拡大処理との処理負担の割合のうち、特徴量保存拡大処理の割合が最も高いパラメータなど(所定の統計処理結果)を用いて、処理対象画像データ全体など、複数の画像ブロックを含む部分の拡大処理を行ってもよい。
また、この特徴量にはさらに、処理対象画像データ自体の解像度、サイズの少なくとも一方が含まれてもよいし、処理対象となった画像データの種類(線画、グラフィックス、自然画の別など)が含まれてもよい。さらに、データ形式(圧縮方式など)ごとに異なる特徴量を算出し、これを利用してもよい。例えばJPEG(Joint Picture Experts Group)圧縮を利用した画像データを処理対象とする場合、モスキートノイズの量を特徴量として算出し、モスキートノイズの量が多いほど、特徴量保存拡大処理の処理負担割合を低減して、モスキートノイズをぼかすようにしてもよい。
また、ここまでの説明では、出力先として例えば利用者等から指定された画像出力装置に対応する出力特性情報を記憶部12から取得し、これに基づいて処理パラメータを制御部11が生成するようにしていたが、出力先として例えば利用者等から指定された画像出力装置に対応する処理パラメータ自体を記憶部12に格納しておいてもよい。この場合、当該処理パラメータは、拡大率や特徴量等に対応して設定されてもよい。さらに、処理パラメータを生成する場合にも、その生成のためのパラメータ情報(例えば既に説明したような、出力特性情報に対応する処理パラメータを関連づけたテーブルであってもよい)を出力特性情報とともに記憶部12に格納しておいてもよい。
さらに、出力先となった画像出力装置に関連する出力特性情報や、処理パラメータ等を記憶部12に格納しておくのではなく、外部(例えば出力先となった画像出力装置自体又はネットワークを介して接続された外部の情報提供機関など)から出力特性情報や、処理パラメータ等を取得してもよい。
1 画像処理装置、2 プリンタ、11 制御部、12 記憶部、13 入出力部、21 画像データ格納部、22 画像処理部、23 処理パラメータ制御部、25 特徴量保存拡大処理部、26 補間処理部、31 最近傍補間処理部、32 線形補間処理部、41 画像ブロック設定部、42 画像ブロック特徴量算出部、43 拡大画像ブロック生成部、44 画像ブロック配置部、51 第1生成部、52 第2生成部、61 エッジ強度算出部、62 エッジ方向推定部、63 エッジパターン選択部。