(57)【要約】【課題】エッジの領域を跨いだ複数の画素の画像データを用いて補間処理を行うと、エッジ部分が平滑化され、ぼやけてしまうという問題があった。【解決手段】補間処理後の画像Ｉ２上で階調データを生成する注目画素Ｎ１の近隣に位置する補間処理前の画像Ｉ１における所定領域Ｒ１内の複数の画素の画像データＤ１を参照して補間処理を行う際、所定領域Ｒ１内の複数の画素上を画像のエッジの領域が横切っているか否かを画像データＤ１に基づいて判断し、横切っていると判断したときには同エッジの領域から注目画素Ｎ１側にある画素の画像データのみを用いて補間処理を行う構成にした。補間処理後でもエッジ部分の鮮鋭さを維持して画質を向上させることが可能となる。【選択図】  図３
2004215163.tif 000002
【特許請求の範囲】
【請求項１】
画像をドットマトリクス状の画素で階調表現する画像データから補間処理を行って補間処理後の画像の各画素に対応した階調データを生成する画像補間装置であって、
上記補間処理後の画像上で上記階調データを生成する注目画素の近隣に位置する補間処理前の画像における所定領域内の複数の画素の画像データを参照して上記補間処理を行う際、同所定領域内の複数の画素上を上記画像のエッジの領域が横切っているか否かを上記画像データに基づいて判断し、横切っていると判断したときには同エッジの領域から同注目画素側にある画素の画像データのみを用いて上記補間処理を行うことを特徴とする画像補間装置。
【請求項２】
画像をドットマトリクス状の画素で階調表現する画像データから補間処理を行って補間処理後の画像の各画素に対応した階調データを生成する画像補間装置であって、
上記補間処理後の画像上で上記階調データを生成する注目画素の近隣に位置する補間処理前の画像における所定領域内の複数の画素の画像データを参照して上記補間処理を行う際、同所定領域内の複数の画素のうち同注目画素に対応する補間処理前の画像における画素との画像データの差異が所定範囲内となる画素の画像データのみを用いて上記補間処理を行うことを特徴とする画像補間装置。
【請求項３】
拡大前画像をドットマトリクス状の画素で階調表現する画像データから補間処理を行って同拡大前画像を拡大した拡大画像の各画素に対応した階調データを生成する画像補間装置であって、
上記拡大画像上で注目画素を順次移動させながら同注目画素の近隣に位置する上記拡大前画像における所定領域内の複数の画素の画像データを参照して上記補間処理を行う際、同所定領域内の複数の画素のうち同注目画素に対応する拡大前画像における画素との画像データの差異が所定範囲内となる画素の画像データのみを用いて上記補間処理を行うことを特徴とする画像補間装置。
【請求項４】
拡大前画像をドットマトリクス状の画素で階調表現する画像データから補間処理を行って同拡大前画像を拡大した拡大画像の各画素に対応した階調データを生成する画像補間装置であって、
上記拡大前画像の画素に対応して上記拡大画像の画素を区分した画素区分毎に同拡大画像上で注目画素区分を順次移動させながら同注目画素区分内の各画素について近隣に位置する上記拡大前画像における所定領域内の複数の画素の画像データを参照して上記補間処理を行う際、同所定領域内の複数の画素のうち同注目画素区分に対応する拡大前画像における画素との画像データの差異が所定範囲内となる画素の画像データのみを用いて上記補間処理を行うことを特徴とする画像補間装置。
【請求項５】
上記注目画素区分に対応する拡大前画像における画素との画像データの差異が所定範囲外となる画素の画像データを、同注目画素区分に対応する拡大前画像における画素の画像データに置き換えて上記補間処理を行うことを特徴とする請求項４に記載の画像補間装置。
【請求項６】
上記画像データに基づいて上記拡大画像の画素単位で当該拡大画像の各画素の位置に対応させて上記拡大画像のエッジの領域を表すエッジ情報を生成するエッジ生成手段を備え、当該エッジ情報に基づいて上記注目画素区分にエッジの領域が存在するか否かを判断し、エッジの領域が存在すると判断したときには同注目画素区分の各画素について同エッジの領域から当該画素側にある上記拡大画像の画素の画像データのみを用いて上記階調データを生成することを特徴とする請求項４または請求項５のいずれかに記載の画像補間装置。
【請求項７】
上記注目画素区分に対応する拡大前画像における画素およびその近隣に位置する画素の画像データを２値化して２値化データを生成し、当該２値化データと、エッジの存在を判定可能とする所定の複数のマッチングパターンと、に基づいて同注目画素区分およびその近隣に位置する画素区分にエッジが存在するか否かを判定し、エッジが存在すると判定したときに同注目画素区分の各画素について上記エッジの領域から当該画素側にある上記拡大画像の画素の画像データのみを用いて上記階調データを生成することを特徴とする請求項４〜請求項６のいずれかに記載の画像補間装置。
【請求項８】
上記注目画素の近隣に位置する補間処理前の画像における第二の所定領域内の複数の画素についての画像データの異なり度合に応じて上記補間処理の種類を切り換えることを特徴とする請求項１〜請求項７のいずれかに記載の画像補間装置。
【請求項９】
上記第二の所定領域内の複数の画素についての画像データの異なり度合が大きくなるほど、上記画像データを参照する画素の数を増やすことを特徴とする請求項８に記載の画像補間装置。
【請求項１０】
画像をドットマトリクス状の画素で階調表現する画像データから補間処理を行って補間処理後の画像の各画素に対応した階調データを生成する画像補間方法であって、
上記補間処理後の画像上で上記階調データを生成する注目画素の近隣に位置する補間処理前の画像における所定領域内の複数の画素の画像データを参照して上記補間処理を行う際、同所定領域内の複数の画素上を上記画像のエッジの領域が横切っているか否かを上記画像データに基づいて判断し、横切っていると判断したときには同エッジの領域から同注目画素側にある画素の画像データのみを用いて上記補間処理を行うことを特徴とする画像補間方法。
【請求項１１】
画像をドットマトリクス状の画素で階調表現する画像データから補間処理を行って補間処理後の画像の各画素に対応した階調データを生成する画像補間方法であって、
上記補間処理後の画像上で上記階調データを生成する注目画素の近隣に位置する補間処理前の画像における所定領域内の複数の画素の画像データを参照して上記補間処理を行う際、同所定領域内の複数の画素のうち同注目画素に対応する補間処理前の画像における画素との画像データの差異が所定範囲内となる画素の画像データのみを用いて上記補間処理を行うことを特徴とする画像補間方法。
【請求項１２】
画像をドットマトリクス状の画素で階調表現する画像データから補間処理を行って補間処理後の画像の各画素に対応した階調データを生成する機能をコンピュータに実現させる画像補間プログラムであって、
上記補間処理後の画像上で上記階調データを生成する注目画素の近隣に位置する補間処理前の画像における所定領域内の複数の画素の画像データを参照して上記補間処理を行う際、同所定領域内の複数の画素上を上記画像のエッジの領域が横切っているか否かを上記画像データに基づいて判断し、横切っていると判断したときには同エッジの領域から同注目画素側にある画素の画像データのみを用いて上記補間処理を行う機能を実現させることを特徴とする画像補間プログラム。
【請求項１３】
画像をドットマトリクス状の画素で階調表現する画像データから補間処理を行って補間処理後の画像の各画素に対応した階調データを生成する機能をコンピュータに実現させる画像補間プログラムであって、
上記補間処理後の画像上で上記階調データを生成する注目画素の近隣に位置する補間処理前の画像における所定領域内の複数の画素の画像データを参照して上記補間処理を行う際、同所定領域内の複数の画素のうち同注目画素に対応する補間処理前の画像における画素との画像データの差異が所定範囲内となる画素の画像データのみを用いて上記補間処理を行う機能を実現させることを特徴とする画像補間プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像を階調表現する画像データから補間処理を行って補間処理後の画像の各画素に対応した階調データを生成する画像補間装置、画像補間方法および画像補間プログラムに関する。
【０００２】
【従来の技術】
従来、拡大前の画像（以下、拡大前画像とも記載）から構成画素数を増やした拡大画像を生成する際、拡大前画像の各画素の階調データ（拡大画像の階調データとも記載。以下、同様）を所定の補間処理により生成している。バイリニア法やバイキュービック法等による補間処理では、拡大画像上の注目画素の近隣に位置する拡大前画像における所定領域内の複数の画素の画像データを用いて拡大画像の階調データを生成している。また、拡大前画像の画素に対応して拡大画像の画素を区分したブロック単位で補間処理を行って拡大画像の階調データを生成するとともに、エッジ部分が鮮鋭となるように、拡大前画像の画像データに基づいてエッジの強調処理、鮮鋭化処理も行っている。
さらに、同じ画像の画像データに対して、複数の補間処理を行って階調データを重畳することも行われている（例えば、特許文献１参照）。同特許文献１に開示された技術では、一定条件ではキュービックコンボリューション補間を行って拡大画像の階調データを生成し、それ以外の条件では、拡大率別に補間データに対応させたマッチングパターンを用意しておき、パターンマッチングによりエッジとそのパターンを検出し、検出したパターンに対応する補間データを補間処理後の階調データとし、これらの階調データを重畳している。
【０００３】
【特許文献１】
特開２００２−１６５０８９号公報（段落００１１−００９４、第１−１８図）
【０００４】
【発明が解決しようとする課題】
上述した従来の技術においては、次のような課題があった。
エッジの領域を跨いだ複数の画素の画像データを用いて補間処理を行うと、注目画素に対してエッジの領域の向こう側にある画素の画像データが補間処理後の階調データに反映されるため、エッジ部分が平滑化され、ぼやけてしまうという問題があった。特に、ブロック単位で補間処理を行う場合、エッジのあるブロックについて鮮鋭化等の処理を行うと、エッジの領域が存在するブロック（エッジブロックとも記載）とエッジの領域が存在しないブロック（非エッジブロック）との間で色の差が発生してしまうという問題があった。
特許文献１に開示された技術でも、エッジの領域を跨いだ複数の画素の画像データが用いられてキュービックコンボリューション補間が行われると、エッジ部分が平滑化されてしまった。また、補間処理後のパターンを拡大率別に用意しておく必要があるため、固定された拡大率にしか適用することができず、任意倍率の実現が困難であった。さらに、階調データを重ね合わせる処理が必要であるため、補間処理に時間がかかりすぎていた。
【０００５】
本発明は、上記課題にかんがみてなされたもので、補間処理後でもエッジ部分の鮮鋭さを維持して画質を向上させることが可能な画像補間装置、画像補間方法および画像補間プログラムの提供を目的とする。
【０００６】
【課題を解決するための手段および発明の効果】
上記目的を達成するため、請求項１にかかる発明では、補間処理後の画像上の注目画素の近隣に位置する補間処理前の画像における所定領域内の複数の画素の画像データを参照して補間処理を行う際、同所定領域内の複数の画素上を画像のエッジの領域が横切っているか否かを、補間処理前の画像の画像データに基づいて判断する。そして、横切っていると判断したとき、同所定領域内の複数の画素のうちエッジの領域から注目画素側にある画素の画像データのみを用いて補間処理を行う。すると、補間処理の際に同所定領域のうちエッジの領域を越えた領域の画素の画像データが用いられないので、エッジ部分が平滑化されない。従って、補間処理後でもエッジ部分の鮮鋭さを維持して画質を向上させることが可能となる。
【０００７】
ここで、複数の画素の画像データを参照する補間処理は、例えば、バイキュービック法による補間処理、バイリニア法による補間処理、等、様々な処理が考えられる。上記所定領域は、補間処理の種類に応じて、適宜決定すればよい。
上記所定領域内の複数の画素上を画像のエッジの領域が横切っているか否かの判断の結果、エッジの領域から注目画素側にある画素が一つとなっても、請求項１に記載した発明に含まれる。以下も、同様である。
上記画像データは、例えば、ビットマップデータ、圧縮されたデータ、等、様々なデータ形式の情報が考えられる。また、同画像データは、例えば、輝度データ（Ｙ）と色差データ（Ｃｂ，Ｃｒ）とから構成されるＹＣｂＣｒデータ、レッドデータ（Ｒ）とグリーンデータ（Ｇ）とブルーデータ（Ｂ）とから構成されるＲＧＢデータ、シアンデータ（Ｃ）とマゼンタデータ（Ｍ）とイエローデータ（Ｙｅ）とグリーンデータ（Ｇ）とから構成されるＣＭＹｅＧデータ、ＣＩＥ規格とされたＬａｂ空間内のＬａｂデータ、等、様々な種類のデータが考えられる。
【０００８】
上記所定領域内の複数の画素上を上記画像のエッジの領域が横切っているか否かを、上記補間処理後の画像の明るさが表された上記画像データに基づいて判断してもよい。すると、より確実にエッジの領域が横切っているかどうかを判断することができ、精度よく補間処理を行って補間処理後の各画素に対応した階調データを生成することができる。なお、明るさが表された画像データは、輝度データ、明度データ、ＲＧＢ各データの平均、等、様々な種類のデータが考えられる。
【０００９】
また、請求項２にかかる発明では、補間処理後の画像上の注目画素の近隣に位置する補間処理前の画像における所定領域内の複数の画素の画像データを参照して補間処理を行う際、同所定領域内の複数の画素のうち同注目画素に対応する補間処理前の画像における画素との画像データの差異が所定範囲内となる画素の画像データのみを用いて補間処理を行う。すると、補間処理の際に注目画素に対応した画素の画像データとの差異が大きい画素の画像データが用いられないので、実質的にはエッジの領域から注目画素側にある画素の画像データのみを用いた補間処理が行われる。すなわち、エッジ部分が平滑化されないので、補間処理後でもエッジ部分の鮮鋭さを維持して画質を向上させることが可能となる。
上記画像データは、上記画像の明るさが表されたデータであってもよい。同画像データの差異は、階調値の差、階調値の比、階調値の２乗の差、等、様々なものが考えられる。
上記所定範囲には、境界部分を含めてもよいし、除いてもよい。画像データの差異が所定範囲内か否かは、例えば、同差異と所定のしきい値とを対比するにより判断することができる。ここで、しきい値は、固定された値でもよいし、条件に応じて変動する値でもよい。以下も、同様である。
【００１０】
補間処理によりエッジ部分の平滑化が問題となるのは、特に画像を拡大する場合である。そこで、請求項３にかかる発明では、拡大画像上で注目画素を順次移動させながら同注目画素の近隣に位置する拡大前画像における所定領域内の複数の画素の画像データを参照して補間処理を行う際、同所定領域内の複数の画素のうち同注目画素に対応する拡大前画像における画素との画像データの差異が所定範囲内となる画素の画像データのみを用いて補間処理を行う。すなわち、エッジ部分の平滑化が特に問題となる画像拡大時でも、エッジ部分が平滑化されないので、補間処理後でもエッジ部分の鮮鋭さを維持して画質を向上させることが可能となる。
【００１１】
ここで、拡大前画像の画素に対応して拡大画像の画素を区分した画素区分毎に同拡大画像上で注目画素区分を順次移動させながら同注目画素区分内の各画素について近隣に位置する拡大前画像における所定領域内の複数の画素の画像データを参照して補間処理を行う場合、同所定領域内の複数の画素のうち同注目画素区分に対応する拡大前画像における画素との画像データの差異が所定範囲内となる画素の画像データのみを用いて補間処理を行う構成としてもよい。すなわち、エッジ部分が平滑化されないので、補間処理後でもエッジ部分の鮮鋭さを維持して画質を向上させることが可能となる。また、エッジの領域が存在するブロックに鮮鋭化等の処理を行っても、エッジの領域が存在するブロックと存在しないブロックとで色の差が出なくなり、この点でも画質を向上させることができる。
【００１２】
上記注目画素区分に対応する拡大前画像における画素との画像データの差異が所定範囲外となる画素の画像データを、同注目画素区分に対応する拡大前画像における画素の画像データに置き換えて上記補間処理を行う構成としてもよい。画像データを置き換えるという簡易な構成で、公知の補間処理を利用することができ、注目画素区分に対応する拡大前画像における画素との画像データの差異が所定範囲内となる画素の画像データのみを用いて容易に補間処理を行うことができる。
【００１３】
上記画像データに基づいて上記拡大画像の画素単位で当該拡大画像の各画素の位置に対応させて上記拡大画像のエッジの領域を表すエッジ情報を生成するエッジ生成手段を備え、当該エッジ情報に基づいて上記注目画素区分にエッジの領域が存在するか否かを判断し、エッジの領域が存在すると判断したときには同注目画素区分の各画素について同エッジの領域から当該画素側にある上記拡大画像の画素の画像データのみを用いて上記階調データを生成する構成としてもよい。エッジの領域が存在する画素区分の各画素の階調データは、エッジの領域を越えた部分の画素の画像データが反映されないので、拡大画像のエッジ部分について鮮鋭さを維持して良好な画質を得ることが可能となる。
【００１４】
なお、上記エッジ生成手段は、上記エッジ位置情報に基づいて上記拡大前画像のエッジの位置に対応する上記拡大画像のエッジの位置を表す拡大エッジ位置情報を同拡大画像の画素単位で取得する拡大位置取得手段と、同拡大エッジ位置情報に基づいて近隣する同拡大画像のエッジどうしを連結して上記拡大画像のエッジの領域を表すエッジ情報を生成する連結手段とを備える構成としてもよい。
【００１５】
上記拡大前画像上で注目画素とその周囲の画素の画像データに対してラプラシアンフィルタを用いた演算を行って同拡大前画像の各画素に対応して階調表現された中間データを生成し、当該中間データに対応するドットマトリクス状の画素上で注目画素を順次移動させながら、注目画素およびその近隣に位置する画素の位置および中間データに基づいて同中間データを略０にする位置が表された上記エッジ位置情報を取得する位置取得手段を備えてもよい。なお、周囲の画素は、注目画素に隣接していてもよいし、隣接していなくてもよい。
ラプラシアンフィルタは、８方向ラプラシアンフィルタ、４方向ラプラシアンフィルタ、等、を採用することができる。むろん、一次空間微分フィルタ、非線形差分フィルタ、等、を用いてエッジの位置を検出してもよい。
【００１６】
上記注目画素区分に対応する拡大前画像における画素およびその近隣に位置する画素の画像データを２値化して２値化データを生成し、当該２値化データと、エッジの存在を判定可能とする所定の複数のマッチングパターンと、に基づいて同注目画素区分およびその近隣に位置する画素区分にエッジが存在するか否かを判定し、エッジが存在すると判定したときに同注目画素区分の各画素について上記エッジの領域から当該画素側にある上記拡大画像の画素の画像データのみを用いて上記階調データを生成する構成としてもよい。簡易な構成で確実にエッジの領域が存在するブロックについて鮮鋭化処理を行うことができ、確実に拡大画像のエッジ部分を精度よく細線で形成することが可能となる。
【００１７】
なお、上記連結手段は、上記拡大前画像上で注目画素を順次移動させながら、同注目画素およびその近隣に位置する画素の画像データを２値化して２値化データを生成し、当該２値化データと、エッジの向きに対応した所定の複数のマッチングパターンと、に基づいてエッジの向きを決定し、上記近隣する拡大画像のエッジどうしを同決定したエッジの向きとなるように連結して上記エッジ情報を生成する構成としてもよい。簡易な構成で確実に拡大画像のエッジどうしを連結することができ、高速な処理にて確実に拡大画像のエッジを精度よく細線で形成することが可能となる。また、この場合のマッチングパターンを、拡大画像の各画素に対応した階調データを生成するためのマッチングパターンにすることができるので、エッジ情報を生成してエッジブロックの各画素に対応した階調データを生成する処理を効率よく行うことが可能となる。
【００１８】
上記２値化データと上記複数のマッチングパターンとが一致しない場合、上記拡大画素区分の近隣に位置する上記拡大前画像における所定領域内の画素の画像データを用いて上記補間処理を行って上記注目画素区分の各画素について階調データを生成してもよい。
【００１９】
上記注目画素の近隣に位置する補間処理前の画像における第二の所定領域内の複数の画素についての画像データの異なり度合に応じて上記補間処理の種類を切り換える構成としてもよい。注目画素に近隣する画素の画像データに応じて適切な補間処理を行うことが可能となるので、エッジ部分の鮮鋭さを維持して補間処理後の画像の画質をさらに向上させることが可能となる。
【００２０】
上記第二の所定領域内の複数の画素についての画像データの異なり度合が大きくなるほど、上記画像データを参照する画素の数を増やす構成としてもよい。画像データの異なり度合が大きいほど高精度にて補間処理を行う必要があるが、同異なり度合が大きくなるほど補間処理にて参照する画素の数が増えるため、補間処理により効率よく高画質の画像を得ることが可能となる。
【００２１】
上述した画像補間装置は、単独で実施される場合もあるし、ある機器に組み込まれた状態で他の方法とともに実施されることもあるなど、発明の思想としては各種の態様を含むものであって、適宜、変更可能である。
また、所定の手順に従って上述した手段に対応した処理を行う方法にも発明は存在する。従って、本発明は画像補間装置の制御方法としても適用可能であり、請求項１０、請求項１１にかかる発明においても、基本的には同様の作用となる。
さらに、拡大画像の画像データ（拡大画像を表現する画像データ。以下、同様）に基づいて印刷を行う印刷装置に対して印刷制御を行う印刷制御装置としても適用可能であるし、同印刷制御装置と印刷装置を備える印刷システムとしても適用可能であり、基本的には同様の作用となる。
【００２２】
本発明を実施しようとする際に、上記装置にて所定のプログラムを実行させる場合もある。そこで、画像補間装置の制御プログラムとしても適用可能であり、請求項１２、請求項１３にかかる発明においても、基本的には同様の作用となる。さらに、同プログラムを記録した媒体が流通し、同記録媒体からプログラムを適宜コンピュータに読み込むことが考えられる。すなわち、そのプログラムを記録したコンピュータ読み取り可能な記録媒体としても適用可能であり、基本的には同様の作用となる。
むろん、請求項２〜請求項８に記載した構成を上記方法、印刷制御装置、印刷システム、プログラム、プログラムを記録した媒体に対応させることも可能である。
ここで、上記記録媒体は、磁気記録媒体や光磁気記録媒体の他、今後開発されるいかなる記録媒体であってもよい。一次複製品、二次複製品などの複製段階も問わない。一部がハードウェアで実現される場合や、一部を記録媒体上に記録しておいて必要に応じて適宜読み込む場合も本発明の思想に含まれる。
【００２３】
【発明の実施の形態】
以下、下記の順序に従って本発明の実施形態を説明する。
（１）印刷システムの構成：
（２）画像補間装置の構成の概略：
（３）画像補間装置が行う処理：
（３−１）ゼロクロス検出処理：
（３−２）ゼロクロス連結処理：
（３−３）補間処理：
（４）変形例：
【００２４】
（１）印刷システムの構成：
図１は、本発明の一実施形態である印刷システム１００の概略構成を示している。本システム１００は、パーソナルコンピュータ（ＰＣ）１０、印刷装置であるカラー印刷可能なインクジェットプリンタ２０等から構成されている。なお、ＰＣ１０は、補間処理を行う意味で本発明にいう画像補間装置となる。また、補間処理後の階調データからなる画像データを生成して対応する出力画像をプリンタ２０に印刷させる意味で印刷制御装置となる。
ＰＣ１０は演算処理の中枢をなすＣＰＵ１１を備えており、このＣＰＵ１１はシステムバス１０ａを介してＰＣ１０全体の制御を行う。同バス１０ａには、ＲＯＭ１２、ＲＡＭ１３、ＣＤ−ＲＯＭドライブ１５、フレキシブルディスク（ＦＤ）ドライブ１６、各種インターフェイス（Ｉ／Ｆ）１７ａ〜ｅ等が接続されている。また、ハードディスクドライブを介してハードディスク（ＨＤ）１４も接続されている。本実施形態のコンピュータにはデスクトップ型ＰＣを採用しているが、コンピュータとしては一般的な構成を有するものを採用可能である。
【００２５】
ＨＤ１４には、オペレーティングシステム（ＯＳ）や画像情報等を作成可能なアプリケーションプログラム（ＡＰＬ）等が格納されている。実行時には、ＣＰＵ１１がこれらのソフトウェアを適宜ＲＡＭ１３に転送し、ＲＡＭ１３を一時的なワークエリアとして適宜アクセスしながらプログラムを実行する。
周辺機器Ｉ／Ｆ（ＰＩＦ）１７ａには、デジタルカメラ３０や、図示しないカラースキャナ等が接続されるようになっている。同デジタルカメラ３０は、撮影画像をドットマトリクス状の画素で階調表現する画像データを生成してＰＣ１０に出力可能である。ＣＲＴＩ／Ｆ１７ｂには画像データに基づく画像を表示するディスプレイ１８ａが接続され、入力Ｉ／Ｆ１７ｃにはキーボード１８ｂやマウス１８ｃが操作用入力機器として接続されている。また、プリンタＩ／Ｆ１７ｅには、パラレルＩ／Ｆケーブルを介してプリンタ２０が接続されている。むろん、ＵＳＢケーブル等を介してプリンタ２０を接続する構成としてもよい。
【００２６】
プリンタ２０は、Ｃ（シアン）、Ｍ（マゼンタ）、Ｙｅ（イエロー）、Ｋ（ブラック）のインクを使用して、印刷用紙（印刷媒体）に対して画像データを構成する階調値に対応したインク量となるようにインクを吐出し、画像を印刷する。むろん、４色以外のインクを使用するプリンタを採用してもよい。また、インク通路内に泡を発生させてインクを吐出するバブル方式のプリンタや、レーザープリンタ等、種々の印刷装置を採用可能である。
図２に示すように、プリンタ２０では、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、通信Ｉ／Ｏ２４、コントロールＩＣ２５、ＡＳＩＣ２６、Ｉ／Ｆ２７、等がバス２０ａを介して接続されている。通信Ｉ／Ｏ２４はＰＣ１０のプリンタＩ／Ｆ１７ｅと接続されており、プリンタ２０は通信Ｉ／Ｏ２４を介してＰＣ１０から送信されるＣＭＹｅＫに変換されたデータやページ記述言語等からなる印刷ジョブを受信する。ＡＳＩＣ２６は、ＣＰＵ２１と所定の信号を送受信しつつヘッド駆動部２６ａに対してＣＭＹｅＫデータに基づく印加電圧データを出力する。同ヘッド駆動部２６ａは、同印加電圧データに基づいて印刷ヘッドに内蔵されたピエゾ素子への印加電圧パターンを生成し、印刷ヘッドにＣＭＹｅＫのインクを吐出させる。Ｉ／Ｆ２７に接続されたキャリッジ機構２７ａや紙送り機構２７ｂは、印刷ヘッドを主走査させたり、適宜改ページ動作を行いながらメディアを順次送り出して副走査を行ったりする。そして、ＣＰＵ２１が、ＲＡＭ２３をワークエリアとして利用しながらＲＯＭ２２に書き込まれたプログラムに従って各部を制御する。
【００２７】
ＰＣ１０では、以上のハードウェアを基礎としてバイオスが実行され、その上層にてＯＳとＡＰＬとが実行される。ＯＳには、プリンタＩ／Ｆ１７ｅを制御するプリンタドライバ等の各種のドライバ類が組み込まれ、ハードウェアの制御を実行する。プリンタドライバは、プリンタＩ／Ｆ１７ｅを介してプリンタ２０と双方向の通信を行うことが可能であり、ＡＰＬから画像データを受け取って印刷ジョブを作成し、プリンタ２０に送出する。本発明の画像補間プログラムは、ＡＰＬから構成されるが、プリンタドライバにより構成されてもよい。また、ＨＤ１４は同プログラムを記録した媒体であるが、同媒体は、例えば、ＣＤ−ＲＯＭ、ＦＤ１６ａ、光磁気ディスク、不揮発性メモリ、パンチカード、バーコード等の符号が印刷された印刷媒体、等であってもよい。むろん、通信Ｉ／Ｆ１７ｄからインターネット網を介して所定のサーバに格納された上記の制御プログラムをダウンロードして実行させることも可能である。
そして、上記ハードウェアと上記プログラムとが協働して画像補間装置を構築する。
【００２８】
（２）画像補間装置の構成の概略：
図３は、上記画像補間装置の構成の概略を模式的に示している。ＰＣを画像補間装置Ｕ０として機能させる画像補間プログラムは、以下に述べる各種手段に対応した複数のモジュールから構成されている。本実施形態では画像を拡大する画像補間装置の例を取り上げているが、画像を拡大しない場合にも本発明を適用可能である。
本画像補間装置Ｕ０は、概略、拡大前画像Ｉ１の画像データＤ１に基づいて拡大画像Ｉ２のエッジの領域を表すエッジ情報Ｄ２を生成するエッジ生成手段Ｕ１と、拡大前画像の画像データＤ１から補間処理を行って補間処理後の拡大画像Ｉ２の各画素Ｉ２ｕに対応した階調データを生成する補間手段Ｕ２とから構成されている。その際、拡大前画像の画素Ｉ１ｕに対応して拡大画像の画素Ｉ２ｕを区分したブロック（画素区分。図では３×３画素）毎に、拡大画像Ｉ２上で注目ブロックＮ２を順次移動させながら、注目ブロックＮ２内の各画素について順次補間処理を行う。本装置は、このようなブロック単位の画像補間処理を行う際、エッジブロックに鮮鋭化処理を行っても、エッジブロックと非エッジブロックとで色の差が出ないようにすることができる。
【００２９】
拡大前画像の画像データＤ１は、拡大前画像をドットマトリクス状の多数の画素で階調表現するデータであり、拡大前画像の明るさが表されたデータである。本実施形態の画像データは、Ｙ（輝度）、Ｃｂ（ブルーの色差）、Ｃｒ（レッドの色差）からなるＹＣｂＣｒデータであるとして説明するが、Ｒ（レッド）、Ｇ（グリーン）、Ｂ（ブルー）からなるＲＧＢデータ等であってもよい。また、ＹＣｂＣｒ各成分は、２５６階調であるとして説明するが、１０２４階調、１００階調、等であってもよい。
エッジ生成手段Ｕ１は、まず、画像データＤ１の輝度値Ｙに基づいてゼロクロス位置Ｚ（エッジ位置情報）を算出して取得する。
【００３０】
なお、輝度値Ｙを用いてゼロクロス位置Ｚを取得する以外にも、各ＲＧＢの階調値の平均値を用いてゼロクロス位置Ｚを取得してもよいし、以下の式により輝度値Ｙを算出して同輝度値Ｙを用いてゼロクロス位置Ｚを取得してもよい。
Ｙ＝０．３０ｒ＋０．５９ｇ＋０．１１ｂ    …（１）
ここで、ｒ，ｇ，ｂは、各ＲＧＢの階調値を表している。
【００３１】
エッジ生成手段Ｕ１は、次に、ゼロクロス位置Ｚが拡大後のどのピクセルに相当するかを計算し、その位置を拡大後のゼロクロス位置（拡大エッジ位置情報）とする。さらに、近隣する拡大画像Ｉ２のエッジどうしを連結する連結位置情報を取得する。そして、拡大エッジ位置情報と連結位置情報とを合わせて、エッジ情報Ｄ２を生成する。エッジ情報Ｄ２は、拡大画像の画素Ｉ２ｕをｘｙ平面上に置いたとき、拡大画像の画素Ｉ２ｕ単位で拡大画像の各画素Ｉ２ｕの位置に対応させたエッジの領域を表す座標値の集合とされている。
【００３２】
補間手段Ｕ２は、補間処理後の拡大画像Ｉ２上で階調データを生成する注目画素Ｎ１を順次移動させながら、注目画素Ｎ１の近隣に位置する補間処理前の拡大前画像Ｉ１における所定領域Ｒ１内の複数の画素の画像データを参照して補間処理を行う。バイキュービック法による補間処理を行う場合、注目画素の近隣に位置する拡大前画像の４×４画素の画像データを参照する。図では、便宜上、同４×４画素をＰ１１〜Ｐ４４と名付けている。補間処理を行う際、所定領域Ｒ１内の複数の画素Ｐ１１〜Ｐ４４上を画像のエッジの領域が横切っているか否かを拡大前画像の画像データＤ１に基づいて判断する。そして、横切っていると判断したときには、エッジの領域から注目画素側にある画素の画像データのみを用いて補間処理を行う。
図の例では、所定領域Ｒ１内にエッジの領域が横切っているため、注目画素Ｎ１側にある拡大前画像の画素Ｐ１１〜Ｐ１４，Ｐ２１〜Ｐ２４，Ｐ３２〜Ｐ３４，Ｐ４３〜Ｐ４４の画像データのみを用いて補間処理を行う。
【００３３】
なお、図４に示すように、実際には、所定領域Ｒ１内の複数の画素Ｉ１ｕのうち拡大画像Ｉ２上の注目画素Ｎ１に対応する補間処理前の拡大前画像における画素（対応画素）Ｎ１ｕとの画像データの差異が所定範囲内となる画素の画像データのみを用いて補間処理を行っている。同対応画素Ｎ１ｕは、注目画素Ｎ１が含まれる拡大画像Ｉ２上のブロックに対応する拡大前画像Ｉ１上の画素とされている。このような処理を行うことにより、エッジ情報Ｄ２を生成しなくても所定領域Ｒ１内にエッジの領域が横切っているか否かを判定することができ、補間処理を簡素化させることができる。すなわち、本発明は、補間手段Ｕ２のみで構成しても有効である。ブロック単位で画像補間処理を行う場合には、エッジ情報を生成すると、エッジブロックに対してエッジ情報に基づいて容易に鮮鋭化処理を行うことができる。
エッジの領域を境にして画像データの値は大きく異なるため、図の下段に示すように、画素Ｎ１ｕとの画像データの差異が所定範囲内の画素の画像データのみを用いることにより、エッジの領域から注目画素Ｎ１側にある画素の画像データのみを用いて補間処理を行うことができる。
【００３４】
図の例では、注目画素Ｎ１側にある画素の画像データは全て２００であるため、当該画像データを用いて補間処理を行うと、注目画素Ｎ１の階調データは２００となる。従来の技術では、注目画素Ｎ１からエッジの領域の向こう側にある画素Ｐ３１，Ｐ４１，Ｐ４２の画像データ０も補間処理に用いられるため、注目画素Ｎ１の画像データは２００より小さくなり、エッジ部分が平滑化され、ぼやけてしまうことになる。また、ブロック単位で補間処理を行う場合、エッジブロックについて鮮鋭化等の処理を行うと、エッジブロックと非エッジブロックとの間で色の差が発生してしまうことにもなる。本装置Ｕ０は、画素Ｎ１ｕとの画像データの差異が所定範囲外の画素の画像データを用いず、注目画素Ｎ１からエッジの領域の向こう側にある画素の画像データを用いないようにしたので、補間処理後でもエッジ部分の鮮鋭さを維持して画質を向上させることが可能となっている。
【００３５】
（３）画像補間装置が行う処理：
以下、画像補間装置が行う処理とともに、動作を詳細に説明していく。
図５は、本画像補間装置が行う処理をフローチャートにより示している。具体的には、ＰＣ１０のＣＰＵ１１が本処理を行う。
まず、エッジ生成手段により、ゼロクロス位置Ｚを取得するゼロクロス検出処理を行い（ステップＳ１０５。以下、「ステップ」の記載を省略）、ゼロクロスを連結してエッジ情報を生成するゼロクロス連結処理を行う（Ｓ１１０）。次に、補間手段により、拡大前画像の画像データから補間処理を行って補間処理後の画像の各画素に対応した階調データを生成し（Ｓ１１５）、本フローを終了する。その後は、ディスプレイにて階調データから構成される画像データに対応する拡大画像を表示したり、プリンタ２０に対して同画像データを出力することにより画像データに対応する拡大画像を印刷したりすることができる。
【００３６】
（３−１）ゼロクロス検出処理：
図６は、上記ゼロクロス検出処理をフローチャートにより示している。
まず、図３で模式的に示したように拡大前画像をドットマトリクス状の画素別の階調データで表現する画像データに対してガウスぼかしを行うガウスぼかし処理を行う（Ｓ２０５）。同処理は、図７に示すフローに従って行われる。まず、拡大前画像を多数の画素別のＹＣｂＣｒデータで表現する画像データを入力し、拡大前画像上で注目画素の位置を設定する（Ｓ３０５）。デジタルカメラ３０等から画像データを入力する場合、データ全体を一括して読み込む必要はなく、部分的に読み込むようにしてもよいし、他のＡＰＬから呼び出されるような場合にはデータの受け渡しに利用されるバッファ領域を表すポインタの受け渡しだけであってもよい。また、注目画素の位置を設定する順序は、左上の画素から開始して順番に右上の画素までとし、その後一つずつ下の左端の画素から順番に右端の画素までとして、最後に右下の画素としている。以下、各種処理にて注目画素の位置を設定する場合も同様にしている。むろん、注目画素の位置を設定する順序は、適宜変更可能であり、拡大前画像の種類等に応じて異なる順序とすることも可能である。
【００３７】
さらに、注目画素とその近隣に位置する３×３画素（所定領域）の輝度値Ｙ（画像データ）を取得する（Ｓ３１０）。３×３画素の画像データの値を左上〜右上、左中〜右中、左下〜右下の順にｄ１〜ｄ９とすると、注目画素の輝度値がｄ５であり、その近隣に位置する８画素の輝度値はｄ１〜ｄ４，ｄ６〜ｄ９である。なお、注目画素が拡大前画像の端部にある場合には、拡大前画像の端部の画素における輝度値が拡大前画像の外側にある（折り返されている）ものとして輝度値を取得する。以下も、同様である。
【００３８】
そして、図７のフロー中に示した公知のガウスぼかし演算用フィルタＦ１を用いてガウスぼかし演算を行う（Ｓ３１５）。ここで、フィルタ演算を行うための演算用フィルタＦは、参照する３×３画素のそれぞれに対応した係数ｆ１〜ｆ９を有しており、各画素に対応する画像データｄ１〜ｄ９のそれぞれに同係数を乗じた総和を求めて注目画素のフィルタ演算後の階調データｄ’を算出するものである。実際には、以下の式のように、同総和に所定係数（ｋとする）を乗じてフィルタ演算後のデータｄ’とする。
ｄ’＝ｋΣｆｉ・ｄｉ    …（２）
後述するラプラシアンフィルタのように係数ｆ１〜ｆ９の合計Σｆｉが０となるフィルタの場合にはｋ＝１とし、ガウスぼかし演算用フィルタＦ１のように係数ｆ１〜ｆ９の合計Σｆｉが０となるフィルタの場合にはｋ＝１／Σｆｉとする。
【００３９】
その後、拡大前画像の全画素について、ガウスぼかし演算を行ったか否かを判断する（Ｓ３２０）。条件不成立の場合には、拡大前画像上で注目画素を順次移動させながら繰り返しＳ３０５〜Ｓ３２０によりガウスぼかしを行う演算を行う。条件成立の場合には、本フローを終了する。なお、ガウスぼかし処理を行わなくてもエッジ情報を生成することは可能であるが、ガウスぼかし処理を行うことによりノイズが除去されるのでエッジ位置の精度が向上し、より滑らかとされたエッジの位置を表す情報を生成することができる。
【００４０】
ガウスぼかし処理が終了すると、図６のＳ２１０に進み、ガウスぼかし処理が行われた画像データに対してラプラシアンフィルタを用いたラプラシアンフィルタ演算処理を行う。同処理も、図７で示したフローに従って行われる。まず、ガウスぼかし処理が行われた画像データで階調表現される拡大前画像上で注目画素の位置を設定する（Ｓ３０５）。次に、注目画素とその近隣に位置する３×３画素の輝度値ｄ１〜ｄ９を取得する（Ｓ３１０）。そして、図７のフロー中に示した公知の８方向ラプラシアンフィルタＦ２を用いてラプラシアンフィルタ演算を行い、ドットマトリクス状の画素で階調表現された中間データを生成する（Ｓ３１５）。
【００４１】
ここで、注目画素に対応するフィルタＦ２の係数ｆ５の周囲にある係数ｆ１〜ｆ４，ｆ６〜ｆ９は全て１とされ、中心にある係数ｆ５は係数ｆ１〜ｆ４，ｆ６〜ｆ９の総和の符号を逆にした−８とされている。すなわち、フィルタＦ２を用いてフィルタ演算を行うことにより、以下の式のように、注目画素の周囲にある画素の輝度値と注目画素の輝度値との差分の総和を演算してラプラシアンフィルタ演算後の階調データｄ’とすることになる。
ｄ’＝Σ（ｄｉ−ｄ５）    …（３）
ただし、ｉ＝１〜４，６〜９である。
【００４２】
そして、ガウスぼかし処理が行われた拡大前画像の全画素について、ラプラシアンフィルタ演算を行ったか否かを判断する（Ｓ３２０）。条件不成立の場合には、繰り返しＳ３０５〜Ｓ３２０の処理により中間データを生成する。条件成立の場合には、本フローを終了する。ラプラシアンフィルタ演算処理を行ってエッジの位置を検出することにより、簡易な構成で精度よくエッジの位置を表す情報を取得することができ、精度よく拡大画像のエッジの領域を表すエッジ情報を生成することができる。
【００４３】
その後、ゼロクロス位置Ｚを記憶するバッファ領域をＲＡＭ内に確保する（図５のＳ２１５）。次に、生成した中間データに対応するドットマトリクス状の画素上で注目画素の位置を設定する（Ｓ２２０）。そして、注目画素の中間データと注目画素の右隣（近隣）に位置する画素（右隣画素）の中間データの符号が異なるか否かを判断する（Ｓ２２５）。符号が異ならない場合、注目画素と右隣画素との間にゼロクロスはほとんど存在しないため、Ｓ２４５のゼロクロス位置算出処理を行わずにＳ２５０に進む。符号が異なると判断した場合、ゼロクロス位置を算出すべきか否かを判断するため、現在位置である注目画素の中間データの絶対値と右隣画素の中間データの絶対値の少なくとも一方が所定のしきい値Ｌ１以上（またはより大）であるか否かを判断する（Ｓ２３０）。拡大前画像の輝度値が２５６階調であるとき、中間データの階調値も２５６階調となり、しきい値Ｌ１を例えば２５６階調の略中間値である１２８等とすればよい。条件成立の場合、Ｓ２４５に進んでゼロクロス位置算出処理を行う。エッジが存在するのは主に両画素間の輝度値の差が大きく、中間データの符号が異なるときであるので、精度よくエッジの位置を表す情報を取得することができ、その結果、精度よく拡大画像のエッジの領域を表す情報を生成することが可能となる。
【００４４】
条件不成立の場合、さらにゼロクロス位置を算出すべきか否かを判断するため、ガウスぼかし処理が行われた拡大前画像上で注目画素を中心とする３×３画素の輝度値の最大値と最小値の差を求め（Ｓ２３５）、求めた差が所定のしきい値Ｌ２以上（またはより大）であるか否かを判断する（Ｓ２４０）。ガウスぼかし処理後の拡大前画像の輝度値が２５６階調であるとき、しきい値Ｌ２を例えば５０等とすればよい。条件成立の場合、Ｓ２４５に進んでゼロクロス位置算出処理を行う。注目画素と右隣画素の輝度値の差が小さいためにラプラシアンフィルタ演算処理を行った結果Ｓ２３０ではゼロクロスを検出することができなくても、注目画素を中心とした３×３画素の輝度値の差が大きいことがあるので、ゼロクロスの検出精度を向上させることができる。すなわち、精度よくエッジの位置を表す情報を取得することができ、その結果、精度よく拡大画像のエッジの領域を表す情報を生成することが可能となる。一方、条件不成立の場合、Ｓ２５０に進む。
【００４５】
図８は、上記ゼロクロス位置算出処理をフローチャートにより示している。
まず、拡大前画像から拡大画像への拡大率Ｍを取得する（Ｓ３５５）。例えば、ディスプレイに解像度選択欄を有する印刷インターフェイス画面を表示し、解像度選択欄への操作入力から画像の拡大率を表すパラメータを取得してＲＡＭに格納すればよい。ここで、拡大率がＭであるとき、横方向（ｘ方向）の画素数をＭ倍にするとともに、縦方向（ｙ方向）の画素数もＭ倍にすることを意味するものとする。むろん、拡大率としてＭｘ，Ｍｙを取得し、横方向の画素数をＭｘ倍にし、縦方向の画素数をＭｙ倍にするようにしてよい。
【００４６】
次に、拡大率Ｍを反映させた画素の位置をＸ１、その画素の中間データをＹ１として、注目画素と隣接画素（Ｓ２４５で本処理が行われる場合には右隣画素）のＸ１，Ｙ１の関係式Ｙ１＝Ａ１・Ｘ１＋Ｂ１のＡ１，Ｂ１を算出する（Ｓ３６０）。ここで、画素の位置Ｘ１は、注目画素と右隣画素の２点について直線の式を求める場合には拡大画像上での横方向のｘ座標であり、注目画素と下隣画素の２点について直線の式を求める場合には拡大画像上での縦方向のｙ座標である。注目画素の中間データをＬＰ０、隣接画素の中間データをＬＰ１、拡大前画像上での注目画素の位置をｘ０とすると、Ａ１，Ｂ１は以下の式により算出することができる。
Ａ１＝（ＬＰ１−ＬＰ０）／Ｍ                …（４）
Ｂ１＝ＬＰ０−Ａ１×（ｘ０×Ｍ＋Ｍ／２）    …（５）
【００４７】
Ａ１，Ｂ１を算出すると、以下の式により、拡大率Ｍを反映させたゼロクロス位置Ｚ１を算出する（Ｓ３６５）。
Ｚ１＝−Ｂ１／Ａ１    …（６）
ここで、Ｚ１は小数点以下の情報を有する値とされ、拡大前画像の画素よりも細かい単位とされている。そして、拡大前画像の画素の位置に拡大率Ｍを乗じた値であるので、ゼロクロス位置Ｚ１は拡大前画像の各画素の位置に対応させたエッジの位置を表すエッジ位置情報とされている。
【００４８】
ゼロクロス位置Ｚ１を算出すると、同ゼロクロス位置Ｚ１に基づいて拡大前画像のエッジの位置に対応する拡大画像のエッジの位置Ｚ１’（拡大エッジ位置情報の一種）を取得する（Ｓ３７０）。拡大画像のエッジの位置Ｚ１’は、以下の式により算出することができる。
Ｚ１’＝ＩＮＴ（Ｚ１）    …（７）
ここで、ＩＮＴは小数点以下を切り捨てる関数である。すなわち、Ｚ１’は拡大画像の画素単位で拡大画像のエッジの位置を表す数値情報とされている。
【００４９】
図９は、拡大率Ｍが３であるときに拡大エッジ位置情報を取得する様子を模式的に示している。
拡大前画像のｘ＝１，ｙ＝２に中間データＬＰ０＝−１２５の注目画素５１があり、注目画素の右隣であるｘ＝２，ｙ＝２に中間データＬＰ１＝５３の隣接画素５２があるとする。ここで、拡大前画像の画素に対応して拡大画像の画素を区分したブロック５４，５５中でゼロクロス５６がどこに存在するかを上記式（４）〜（６）を用いて求める。なお、拡大前画像の注目画素５１、隣接画素５２に対応してそれぞれ注目ブロック５４、隣接ブロック５５があるものとする。
図の中段下寄りに示したＸ１−Ｙ１グラフのように、Ｘ１（画素のｘ座標またはｙ座標）−Ｙ１（中間データ）平面上での注目画素と隣接画素とを結ぶ直線がＸ１軸と交差する点（Ｙ１＝０となる点）がゼロクロスである。上記例では、ゼロクロス位置はＺ１＝６．６となる。最後に、上記式（７）を用いると、Ｚ１’＝ＩＮＴ（６．６）＝６となる。従って、拡大エッジ位置情報５７は、隣接ブロック５５内の左側にあるｘ＝６，ｙ＝７の画素の位置を表す情報となる。
【００５０】
このように、拡大エッジ位置情報は拡大画像のブロックよりも細かい画素単位で画素の位置を表す情報とされる。従って、拡大画像のエッジ位置の精度が向上し、拡大画像のエッジのジャギーは目立たなくなる。
拡大画像のエッジの位置を取得すると、拡大画像のエッジの位置Ｚ１’に対応する拡大画像上のエッジの座標値（拡大エッジ位置情報の一種）をバッファに記憶し（Ｓ３７５）、本フローを終了する。
【００５１】
注目画素と右隣画素との間でゼロクロス位置算出処理を行うと、図５のＳ２５０に進み、注目画素と下隣画素との間で同様の処理を行う。
すなわち、注目画素の中間データと注目画素の下隣（近隣）に位置する画素（下隣画素）の中間データの符号が異なるか否かを判断する（Ｓ２５０）。符号が異ならない場合、Ｓ２７０のゼロクロス位置算出処理を行わずにＳ２７５に進む。符号が異なると判断した場合、現在位置である注目画素の中間データの絶対値と下隣画素の中間データの絶対値の少なくとも一方が所定のしきい値Ｌ３（例えば１２８）以上（またはより大）であるか否かを判断する（Ｓ２５５）。条件成立の場合、Ｓ２７０に進んでゼロクロス位置算出処理を行う。
条件不成立の場合、ガウスぼかし処理が行われた拡大前画像上で注目画素を中心とする３×３画素の輝度値の最大値と最小値の差を求め（Ｓ２６０）、求めた差が所定のしきい値Ｌ４（例えば５０）以上であるか否かを判断する（Ｓ２６５）。条件成立の場合、Ｓ２７０に進んでゼロクロス位置算出処理を行う。一方、条件不成立の場合、Ｓ２７５に進む。
【００５２】
Ｓ２７０でゼロクロス位置算出処理を行うと、ガウスぼかし処理が行われた拡大前画像の全画素についてＳ２２０〜Ｓ２７０の処理を行ったか否かを判断する（Ｓ２７５）。条件不成立の場合には、繰り返しＳ２２０〜Ｓ２７５により拡大エッジ位置情報を取得する処理を行う。条件成立の場合には、本フローを終了する。このようにして、ラスタスキャンでのエッジ検出が可能となり、拡大前画像の画素よりも細かい単位で高精度にてエッジの位置を求めることができる。
【００５３】
（３−２）ゼロクロス連結処理：
ゼロクロス検出処理を終了すると、図５のＳ１１０に進み、ゼロクロス連結処理を行う。
図１０は、上記ゼロクロス連結処理をフローチャートにより示している。
まず、拡大画像の画素を区分した３×３画素のブロック毎に、注目ブロックの位置を設定する（Ｓ４０５）。次に、拡大画像の注目ブロック内に同拡大画像の画素単位とされたゼロクロス、すなわち、エッジが存在するか否かを判断する（Ｓ４１０）。注目ブロック内にエッジが存在しない（対応する拡大画像上のエッジの座標値がバッファに格納されていない）場合、Ｓ４３５に進む。
【００５４】
注目ブロック内にエッジが存在する場合、同注目ブロック内に複数のエッジが存在するか否かを判断する（Ｓ４１５）。複数のエッジが存在する場合には後述するエッジ生成処理を行って（Ｓ４２０）Ｓ４２５に進み、エッジが一つしか存在しない場合には即座にＳ４２５に進む。
Ｓ４２５では、注目ブロックの右隣のブロック、左下の隣接ブロック、下隣のブロック、右下の隣接ブロックのいずれかにゼロクロスが存在するか否かを判断する。本実施形態では、注目ブロックが拡大画像の端部にあり、隣接ブロックが拡大画像外となる場合には、その隣接ブロックについてはゼロクロスが存在しないものとしてエッジを連結する処理を行わない。
これらの隣接ブロックにゼロクロスが存在する場合には後述するエッジ生成処理を行って（Ｓ４３０）Ｓ４３５に進み、ゼロクロスが存在しない場合には即座にＳ４３５に進む。
【００５５】
図１１は、上記Ｓ４２０，Ｓ４３０で行われるエッジ生成処理をフローチャートにより示している。
まず、拡大画像上でエッジとされた二画素間の横方向（ｘ方向）の距離差が縦方向（ｙ方向）の距離差以上（またはより大）であるか否かを判断する（Ｓ５０５）。条件成立の場合にはＳ５１０に進み、条件不成立の場合にはＳ５３０に進む。
Ｓ５１０では、拡大画像上で横方向の画素の位置を設定する。次に、設定した横方向の位置で、拡大画像のエッジの領域とする縦方向の画素の位置を取得する（Ｓ５１５）。さらに、取得した画素の位置（具体的には、座標値）をエッジの領域とする画素の位置を表す連結位置情報としてバッファに格納する（Ｓ５２０）。そして、次の横方向の画素の位置が存在するか否かを判断する（Ｓ５２５）。条件成立の場合には、横方向の画素の位置を画素単位で順次移動させながら繰り返しＳ５１０〜Ｓ５２５の処理を行う。条件不成立の場合には、Ｓ５５０に進む。
【００５６】
一方、Ｓ５３０では、拡大画像上で縦方向の画素の位置を設定する。次に、設定した縦方向の位置で、拡大画像のエッジの領域とする横方向の画素の位置を取得する（Ｓ５３５）。さらに、取得した画素の座標値を連結位置情報としてバッファに格納する（Ｓ５４０）。そして、次の縦方向の画素の位置が存在するか否かを判断する（Ｓ５４５）。条件成立の場合には縦方向の画素の位置を画素単位で順次移動させながら繰り返しＳ５３０〜Ｓ５４５の処理を行い、条件不成立の場合にはＳ５５０に進む。
【００５７】
図１２の左側は、横方向の距離差が縦方向の距離差以上である場合に連結位置情報を取得する様子を示している。ここで、エッジ画素６１ａ，ｂは、拡大画像の画素単位でエッジとされた画素である。そして、横方向の画素の位置を画素単位で順次移動させながら、例えば連結画素６１ｃ，６１ｄ，６１ｅの順に当該画素の座標値を連結位置情報として取得する。一方、図の右側は、縦方向の距離差が縦方向の距離差以上である場合にエッジ画素６２ａ，ｂ間で連結位置情報を取得する様子を示している。この場合、縦方向の画素の位置を画素単位で順次移動させながら、例えば連結画素６２ｃ，６２ｄ，６２ｅの順に当該画素の座標値を連結位置情報として取得する。このように、連結画素の抜けを生じさせないため、良好なエッジを細線で得ることが可能となっている。
【００５８】
Ｓ５５０では、上記処理により取得した連結位置情報を含めて、拡大画像のエッジの領域を表すエッジ情報を生成し、本フローを終了する。このように、簡易な構成で確実に拡大画像のエッジどうしを連結することができ、また、近隣する拡大画像のエッジどうしの間で画素単位毎にエッジの領域とされるので、確実に拡大画像のエッジを精度よく細線で形成することが可能となる。
図１０のＳ４３０のエッジ生成処理を終了すると、拡大画像の全ブロックについてエッジ情報を生成するＳ４０５〜Ｓ４３０の処理を行ったか否かを判断する（Ｓ４３５）。条件不成立の場合には、繰り返しＳ４０５〜Ｓ４３５によりエッジ情報を生成する処理を行う。条件成立の場合には、本フローを終了する。
【００５９】
以上の処理により、拡大画像の画素単位でエッジの領域が形成されるので、拡大画像のエッジを精度よく細線で形成して鮮鋭化等の処理を容易に行うことが可能であるとともに、エッジのジャギーを少なくさせることが可能となる。従って、生成されるエッジ情報を用いて拡大画像を生成すると、ジャギーの少ない滑らかな拡大エッジ画像を得ることができ、拡大後でもジャギーの少ない拡大画像を得ることが可能となる。
【００６０】
（３−３）補間処理：
ゼロクロス連結処理を終了すると、図５のＳ１１５に進み、補間処理を行う。
図１３は、上記補間処理をフローチャートにより示している。
補間処理後の拡大画像の階調データを格納するバッファ領域をＲＡＭ内に確保したうえで、まず、拡大画像の画素を区分した３×３画素のブロック毎に、注目ブロックの位置を設定する（Ｓ６０５）。次に、エッジ情報に基づいて、拡大画像の注目ブロック内に同拡大画像の画素単位とされたゼロクロス、すなわち、エッジの領域が存在するか否かを判断する（Ｓ６１０）。注目ブロック内にエッジの領域が存在する（対応する拡大画像上のエッジの座標値がバッファに格納されていない）場合にはＳ６１５に進み、注目ブロック内にエッジの領域が存在しない場合にはＳ６３５に進む。
【００６１】
Ｓ６１５では、図１４に示すように、注目ブロックに対応する拡大前画像における対応画素Ｉ１ｕおよびその近隣に位置する３×３画素（拡大画像の３×３ブロックに相当）の輝度値（ガウスぼかし処理後の画像データＤ１’）を２値化して拡大前画像の各画素に対応した２値化データＤ３を生成する。対応画素Ｉ１ｕが拡大前画像の端部にある場合には、拡大前画像の端部の画素における輝度値が拡大前画像の外側にあるものとして２値化データを生成する。本実施形態では、３×３画素の輝度値の最大値と最小値の平均値をしきい値Ｌ５として、各画素の輝度値がしきい値Ｌ５以上（またはより大）である場合に２値化データを１とし、しきい値Ｌ５より小（または以下）である場合に２値化データを−１としている。
そして、２値化データと、所定の複数のマッチングパターンとがマッチ（一致）するか否かを判断するパターンマッチング処理を行う（Ｓ６２０）。
【００６２】
図１５は、検出用の３×３フィルタマトリクスであるマッチングパターンの一例を模式的に示している。図において、エッジの向き９０度、３０度、４５度に対応して、それぞれ９０度用のマッチングパターンが１２種類、３０度用のマッチングパターンが１６種類、４５度用のマッチングパターンが８種類示されている。これらの他、６０度用、１３５度用、１８０度用、等のマッチングパターンもそれぞれ複数種類用意されている。各マッチングパターンは、拡大画像上の注目ブロックを中心とした３×３ブロックに相当する拡大前画像の３×３画素の領域内に各種形状のエッジが存在するか否かを判定可能とするパターンである。むろん、マッチングパターンは、図に示したものに限定されない。
２値化データとマッチングパターンとがマッチするかどうかは、３×３の各画素の２値化データ（ｄ１〜ｄ９とする）と、マッチングパターンの各要素値（ｆ１〜ｆ９とする）との積の総和Ｓ１＝Σｆｉ・ｄｉを算出し、この総和Ｓ１がマッチングパターンの各要素値の絶対値の総和Ｓ２＝Σ｜ｆｉ｜と等しくなるか否かにより判断する。Ｓ１＝Ｓ２となれば拡大前画像のエッジの傾きがマッチングパターンとマッチしたことになり、マッチしたマッチングパターンに対応する形状のエッジが注目ブロックおよびその近隣に位置するブロックに存在する旨の判定結果を表す情報を取得することになる。
【００６３】
図１４の例では、２値化データＤ３と図１５の「９０−１」の９０度用マッチングパターンとの総和Ｓ１を算出すると、−２となる。「９０−１」のマッチングパターンにおける各要素の絶対値の総和Ｓ２は６であるので、２値化データは「９０−１」のマッチングパターンとマッチしない（一致しない）ことになる。一方、２値化データＤ３と図１５の「３０−１２」の３０度用マッチングパターンとの総和Ｓ１を算出すると、５となる。「３０−１２」のマッチングパターンにおける各要素の絶対値の総和Ｓ２は５であるので、２値化データは「３０−１２」のマッチングパターンとマッチ（一致）することになる。この場合、エッジの向きは３０度であり、エッジが存在するか否かの判定結果を表す情報は「３０−１２」とされる。
むろん、マッチングパターンを用いる以外にも、二つの画素値の差（輝度値差、ＲＧＢ値差、各色値の差、等）が小さくなる方向からエッジの存在を判定してもよいし、近隣する画素のエッジの方向を反映させてエッジの存在を判定してもよいし、近隣する画素のエッジの強度を反映させてエッジの存在を判定してもよい。また、処理は複雑になるものの、ベクトルの概念を導入してエッジの存在を判定してもよい。さらに、それらの組み合わせによりエッジの存在を判定してもよい。
【００６４】
なお、図１０のゼロクロス連結処理で、注目ブロックの右隣、左下、下隣、右下のいずれかの隣接ブロックにゼロクロスが存在する場合に、上記マッチングパターンに基づいてエッジの向きを決定して、エッジの向きを表す情報を取得し、当該情報に基づいて、注目ブロック内のエッジと隣接ブロック内のエッジとを結ぶ直線の傾きが、マッチングパターンを用いて決定されたエッジの向きと一致するか否かを判断し、一致すると判断したときのみ、Ｓ４３０のエッジ生成処理を行ってもよい。すると、簡易な構成で確実に拡大画像のエッジどうしを連結することができ、確実に拡大画像のエッジを精度よく細線で形成する処理を高速にて行うことが可能となる。また、エッジ情報を確実に生成するためのマッチングパターンを、拡大画像の各画素に対応した階調データを生成するためのマッチングパターンに流用することができるので、エッジ情報を生成してエッジブロックの鮮鋭化処理を効率よく行うことが可能となる。
Ｓ６２０で２値化データとマッチングパターンとがマッチすると判断した場合、注目ブロック内にエッジが確実に存在すると判定したことになり、エッジ色埋め処理を行って（Ｓ６２５）Ｓ６７０に進む。一方、マッチしないと判断した場合、バイキュービック法による補間処理で階調データを生成してもよいと判定したことになり、バイキュービック処理を行って（Ｓ６３０）Ｓ６７０に進む。
【００６５】
図１６は、上記エッジ色埋め処理をフローチャートにより示している。まず、パターンマッチング処理の結果から、エッジが存在するか否かの判定結果を表す情報を取得する（Ｓ７０５）。次に、エッジが２辺を通過しているか否かを判断する（Ｓ７１０）。
例えば、図１７の上段に示すような手法により、エッジが２辺を通過しているか否かを判断することができる。注目ブロック内の各画素の位置を（ｘ，ｙ）で表すとして（ｘ＝０〜２、ｙ＝０〜２）、（０〜２，０），（０，１），（２，１），（０〜２，２）の４領域のうち２以上の領域にエッジの領域とされた拡大画像上の画素（エッジ画素とも記載）が存在し、かつ、（０，０〜２），（１，０），（１，２），（２，０〜２）の４領域のうち２以上の領域にエッジが存在するとき、エッジが２辺を通過していると判断することができる。むろん、この手法以外にも、様々な手法を採用可能である。
【００６６】
エッジが２辺を通過していると判断した場合、注目ブロックにてエッジで分割される２領域それぞれの階調値を算出する（Ｓ７１５）。Ｓ６２０でパターンマッチング処理が行われた結果、２値化データとマッチするマッチングパターンが「３０−５」であったとする。ここで、図１７の中段に示すように、注目ブロックに対応する拡大前画像の対応画素を中心とした３×３画素のガウスぼかし処理前における画像データの各階調値をＨ１〜Ｈ９（左上がＨ１、右下がＨ９）で表すことにする。Ｈ１〜Ｈ９は、画像データがＹＣｂＣｒデータである場合にはＹＣｂＣｒ各階調値であり、ＲＧＢデータである場合にはＲＧＢ各階調値である。なお、Ｈ１〜Ｈ９を、ガウスぼかし処理後の各階調値としてもよい。階調データ（ＹＣｂＣｒ各階調値等）を生成する注目ブロック内において、明るい（階調値の大きい）領域の階調値をＥ１、暗い（階調値の小さい）領域の階調値をＥ２として、エッジ画素から明るい側の領域の階調値をＥ１とし、エッジ画素から暗い側の領域の階調値をＥ２とする。拡大前画像の明るい領域はマッチングパターンの「１」の部分に相当するので、階調値Ｈ１〜Ｈ９のうちマッチングパターンの「１」の部分に対応する階調値からＥ１を算出する。一方、拡大前画像の暗い領域はマッチングパターンの「−１」の部分に相当するので、階調値Ｈ１〜Ｈ９のうちマッチングパターンの「−１」の部分に対応する階調値からＥ２を算出する。
【００６７】
複数のマッチングパターンのそれぞれに対応して階調値Ｅ１，Ｅ２を算出するための情報は予めＨＤに格納されており、同情報を読み出してマッチングパターン別に階調値Ｅ１，Ｅ２を算出する。マッチングパターン「３０−５」の場合、以下の式により階調値Ｅ１，Ｅ２を計算する情報がＨＤに格納されている。
Ｅ１  ＝  （２×Ｈ２  ＋  Ｈ３  ＋  Ｈ４）／４
Ｅ２  ＝  （２×Ｈ５  ＋  Ｈ６  ＋  Ｈ７）／４
なお、パターンマトリクスの「１」、「−１」それぞれの周辺の画素について、計算したＥ１，Ｅ２と近ければその画素の階調値も計算に含めてもよい。すると、エッジブロックと非エッジブロックとで色の差をさらに少なくすることが可能となる。
【００６８】
階調値Ｅ１，Ｅ２が求まると、補間処理後の拡大画像の階調データを記憶するバッファに対して注目ブロック内でエッジにより分割される領域別に階調値を格納し（Ｓ７２０）、本フローを終了する。注目ブロック内の各画素をエッジで２領域に分割する手法は、様々考えられる。例えば、注目ブロックのどの辺をエッジが横切っているかを調べるとともにエッジの傾きを調べ、エッジが立っていれば、どちらかの横方向から階調値を埋めていき、エッジが見つかったところ以降を別の階調値で埋めていくと、簡易な構成により容易に注目ブロック内の２領域に対して色を埋めることができる。
すなわち、例えば、パターンマッチング処理によりエッジの向きが３０度、４５度、１３５度、１８０度と決定した場合、エッジ画素よりも上側となる注目ブロック内の画素を階調値Ｅ１（マッチングパターン内で「１」の部分が「−１」の部分より上側のとき）または階調値Ｅ２（マッチングパターン内で「１」の部分が「−１」の部分より下側のとき）とする領域とし、エッジ画素よりも上側となる注目ブロック内の画素を残りの階調値とする領域とすればよい。また、パターンマッチング処理によりエッジの向きが９０度、６０度と決定した場合、エッジ画素よりも左側となる注目ブロック内の画素を階調値Ｅ１（マッチングパターン内で「１」の部分が「−１」の部分より左側のとき）または階調値Ｅ２（マッチングパターン内で「１」の部分が「−１」の部分より右側のとき）とする領域とし、エッジ画素よりも右側となる注目ブロック内の画素を階調値Ｅ１とする領域とすればよい。
【００６９】
なお、エッジ画素については予めどちらの階調値にするかを決めておけばよいが、本実施形態では明るいほうの領域の階調値とするものとしている。従って、エッジ画素の階調値はＥ１とされる。
Ｓ７０５〜Ｓ７２０の処理を全ブロックについて繰り返すことにより、注目ブロックおよびその近隣に位置するブロックにエッジが存在すると判定したときに注目ブロックの各画素についてエッジの領域から当該画素側にある拡大画像の画素の画像データのみを用いて拡大画像の階調データを生成することができる。そして、マッチングパターンを用いてエッジの通過位置を決定するという簡易な構成で確実にエッジブロックについて鮮鋭化処理を行うことができ、確実に拡大画像のエッジ部分を精度よく細線で形成することが可能となって、同エッジ部分について鮮鋭さを維持して良好な画質の拡大画像を得ることが可能となる。また、エッジブロックと非エッジブロックとで色の差を軽減する拡大処理を実現することができる。
【００７０】
Ｓ７１０でエッジが２辺を通過していないと判断した場合、注目ブロック内で領域を分割して階調データを生成する必要がないので、以下の手順に従って、注目ブロック内で画素別にバイキュービック法による補間処理を行う（Ｓ７２５）。
図３を参照して説明すると、まず、注目ブロックＮ２内で注目画素Ｎ１の位置を設定し、注目画素Ｎ１の近隣に位置する拡大前画像Ｉ１における所定領域Ｒ１内の複数の参照画素Ｐ１１〜Ｐ４４を決定する。
【００７１】
図１８は、参照画素Ｐ１１〜Ｐ４４を決定する様子を模式的に示している。ここで、注目ブロックに対応する拡大前画像における対応画素の位置を（Ｘ，Ｙ）、注目ブロック内での注目画素Ｎ１の位置を（ｘ，ｙ）、画像の拡大率をＭ、ｓ＝Ｍ／２（ただし、小数点以下切り捨て）とすると、Ｍ＝３のとき、ｘ＝０〜２、ｙ＝０〜２、ｓ＝１となり、１６点の参照画素の位置は以下のように決定される。
【００７２】
ｘ＜ｓかつｙ＜ｓ、すなわち、注目画素が（０，０）のとき、
（Ｘ−２，Ｙ−２）〜（Ｘ＋１，Ｙ＋１）
ｘ≧ｓかつｙ＜ｓ、すなわち、注目画素が（１，０），（２，０）のとき、
（Ｘ−１，Ｙ−２）〜（Ｘ＋２，Ｙ＋１）
ｘ＜ｓかつｙ≧ｓ、すなわち、注目画素が（０，１），（０，２）のとき、
（Ｘ−２，Ｙ−１）〜（Ｘ＋１，Ｙ＋２）
ｘ≧ｓかつｙ≧ｓ、すなわち、注目画素が（１，１），（１，２），（２，１），（２，２）のとき、
（Ｘ−１，Ｙ−１）〜（Ｘ＋２，Ｙ＋２）
このように、注目ブロック内の画素の位置に応じた適切な領域の参照画素が設定される。
【００７３】
そして、ガウスぼかし処理が行われていない参照画素Ｐ１１〜Ｐ４４の画像データの階調値をＰ１１〜Ｐ４４で表すと、補間処理後の階調値Ｅは、以下の式により算出することができる。
【数１】
2004215163.tif 000003
ただし、バイキュービック法での距離係数ｄｘ，ｄｙは、
ｘ＜ｓかつｙ＜ｓのとき、ｄｘ＝（ｘ＋Ｍ−ｓ）／Ｍ，  ｄｙ＝（ｙ＋Ｍ−ｓ）／Ｍ
ｘ≧ｓかつｙ＜ｓのとき、ｄｘ＝（ｘ−ｓ）／Ｍ，  ｄｙ＝（ｙ＋Ｍ−ｓ）／Ｍ
ｘ＜ｓかつｙ≧ｓのとき、ｄｘ＝（ｘ＋Ｍ−ｓ）／Ｍ，  ｄｙ＝（ｙ−ｓ）／Ｍ
ｘ≧ｓかつｙ≧ｓのとき、ｄｘ＝（ｘ−ｓ）／Ｍ，  ｄｙ＝（ｙ−ｓ）／Ｍ
である。
ここで、参照画素が拡大前画像の端部からはみ出るとき、拡大前画像の端部の画素が外側に向かって連続しているものとして階調値を計算する。
なお、ガウスぼかし処理が行われた階調値を用いて補間処理後の階調値Ｅを算出してもよい。
上記補間処理を行うと、注目ブロック内の画素別に算出した階調値Ｅをバッファに格納し（Ｓ７３０）、本フローを終了する。
【００７４】
図１３のＳ６２０で２値化データとマッチングパターンとがマッチしないと判断した場合に行われるバイキュービック処理（Ｓ６３０）は、図１６の７２５〜Ｓ７３０と同様、バイキュービック法による補間処理を行って算出した階調値をバッファに格納する処理を行う。すなわち、２値化データと複数のマッチングパターンとが一致しない場合、拡大ブロックの近隣に位置する拡大前画像における所定領域内の画素の画像データを用いて補間処理を行って注目ブロックの各画素について階調データを生成する。従って、エッジの領域が存在するブロックとその近隣に位置するブロックについて、エッジの存在が検出されなくても、確実にそのブロックについて拡大画像の各画素に対応した階調データを生成することができる。
【００７５】
Ｓ６１０で注目ブロック内にエッジの領域が存在しないと判断した場合、適切な補間処理を選択するため、拡大前画像上で注目ブロックに対応する対応画素を中心とする５×５画素のガウスぼかし処理前における輝度値Ｙの最大値と最小値の差（画像データの異なり度合）を求める（Ｓ６３５）。図１８に示すように、同５×５画素は、注目画素の近隣に位置する補間処理前の拡大前画像における第二の所定領域Ｒ２内の複数の画素であり、注目ブロック内の画素の階調データを生成する際に参照画素とされる可能性のある画素である。なお、ガウスぼかし処理が行われた拡大前画像上で対応画素を中心とする５×５画素の輝度値の最大値と最小値の差を求めてもよい。
なお、対応画素とその近隣に位置する画素の画像データの異なり度合は、上記最大値と最小値との差等の最大値と最小値との組み合わせに基づく値の他、２番目に大きい値と２番目に小さい値との組み合わせに基づく値、これらに中間値も組み合わせた値、等、様々なものを採用可能である。
【００７６】
そして、求めた差に応じて処理を分岐させ、補間処理の種類を切り換える（Ｓ６４０）。すなわち、所定のしきい値Ｌ６，Ｌ７（Ｌ６＜Ｌ７）を用意しておき、求めた差がＬ６以下（またはより小）のときにニアリストネイバ処理を行って（Ｓ６４５）Ｓ６７０に進み、求めた差がＬ６より大（または以上）かつＬ７以下（またはより小）のときに選択バイリニア処理を行って（Ｓ６５０）Ｓ６７０に進み、求めた差がＬ７より大（または以上）のときに選択バイキュービック処理を行って（Ｓ６５５）Ｓ６７０に進む。注目ブロックに近隣する画素の画像データに応じて適切な補間処理を行うことが可能となるので、エッジ部分の鮮鋭さを維持して補間処理後の拡大画像を高画質にさせることが可能となる。ここで、参照する画素の数はニアリストネイバ法、バイリニア法、バイキュービック法の順に１、４、１６と増えるので、領域Ｒ２内の５×５画素についての輝度値の最大値と最小値の差が大きくなるほど、画像データを参照する画素の数が増える。輝度値の異なり度合が大きいほど高精度にて補間処理を行う必要があるが、同異なり度合が大きくなるほど補間処理にて参照する画素の数が増えて高精度の補間処理が行われ、同異なり度合が小さくなるほど補間処理にて参照する画素の数が減って高速にて補間処理が行われる。従って、効率よく、高精度にて補間処理を行って高画質の拡大画像を得ることが可能となる。
なお、選択バイリニア処理と選択バイキュービック処理のいずれか一方のみを行うようにしてもよいし、ニアリストネイバ処理の代わりにバイリニア法による補間処理等を行ってもよい。
【００７７】
図１９は、Ｓ６５５で行われる選択バイキュービック処理をフローチャートにより示している。
図３を参照して説明すると、まず、注目ブロックＮ２内で注目画素Ｎ１の位置（ｘ，ｙ）を設定する（Ｓ８０５）。拡大画像上における注目ブロックの設定順序と同様、（０，０），（０，１）…（２，２）の順に設定する。次に、図１８で示したように、注目画素Ｎ１の近隣に位置する拡大前画像Ｉ１における所定領域Ｒ１内の４×４の参照画素Ｐ１１〜Ｐ４４を決定する（Ｓ８１０）。
【００７８】
その後、決定した複数の参照画素Ｐ１１〜Ｐ４４のそれぞれについて、順次、ガウスぼかし処理が行われていない画像データの階調値Ｐ’を取得する（Ｓ８１５）。画像データがＹＣｂＣｒデータであれば、ＹＣｂＣｒ各成分別に階調値を取得する。ガウスぼかし処理が行われた階調値を取得してもよい。なお、参照画素が拡大前画像の外側となる場合には、拡大前画像の端部の画素における階調値が拡大前画像の外側に向かって連続しているものとして階調値を取得する。そして、取得した階調値Ｐ’について、注目ブロックＮ２に対応する対応画素の階調値Ｐ０との差が所定のしきい値Ｌ８より大（または以上）であるか否か、すなわち、
｜Ｐ’−Ｐ０｜＞Ｌ８
が成立するか否かを判断していく（Ｓ８２０）。拡大前画像の画像データの階調値が２５６階調であるとき、しきい値Ｌ８を例えば５０等とすればよい。
【００７９】
階調値の差がＬ８より大きい（所定範囲外）とき、参照画素Ｐｉｊの階調値を対応画素の階調値Ｐ０に置き換えて上記補間処理の演算式（８）に代入する階調値Ｐｉｊとし（Ｓ８２５）、Ｓ８３０に進む。一方、階調値の差がＬ８以下（所定範囲内）であるとき、階調値を置き換えることなく参照画素Ｐｉｊの階調値をそのまま上記演算式（８）に代入する階調値Ｐｉｊとし、Ｓ８３０に進む。対応画素の階調値との差異が大きい画素の階調値が用いられないので、Ｓ８２０では、注目画素の近隣に位置する所定領域内の複数の画素上を画像のエッジの領域が横切っているか否かを拡大前画像の画像データに基づいて判断していることになる。そして、横切っていると判断したとき、Ｓ８２５で、エッジの領域から注目画素側にある画素の画像データのみを用いて補間処理を行う。
Ｓ８３０では、Ｓ８２０の判断処理をしていない他の参照画素が存在するか否かを判断する。他の参照画素が存在している場合には繰り返しＳ８１５〜Ｓ８３０の処理を行い、全ての参照画素について同処理を行った場合にはＳ８３５に進む。
【００８０】
Ｓ８３５では、階調値の置き換え処理が行われた参照画素の階調値Ｐｉｊを用いて上記演算式（８）により補間処理後の階調値Ｅを算出するバイキュービック補間処理を行う。補間処理を行うと、算出した階調値Ｅをバッファに格納する（Ｓ８４０）。このように、階調値を置き換えるという簡易な構成で、公知の補間処理を利用することができ、注目ブロックに対応する拡大前画像における対応画素との階調値の差異が所定範囲内となる画素の画像データのみを用いて容易に補間処理を行うことができる。
その後、注目ブロック内の全画素について、補間処理を行ったか否かを判断する（Ｓ８４５）。条件不成立の場合には、注目ブロック内で注目画素を順次移動させながら繰り返しＳ８０５〜Ｓ８４５の処理を行い、バイキュービック法による補間処理を行う。条件成立の場合には、本フローを終了する。
【００８１】
すなわち、補間処理後の画像上で階調データを生成する注目画素の近隣に位置する所定領域内の複数の画素の画像データを参照して補間処理を行う際、同所定領域内の複数の画素のうち注目画素に対応する補間処理前の画像における対応画素との画像データの差異が所定範囲内となる画素の画像データのみを用いた補間処理が行われる。
以上の処理により、補間処理の際に注目ブロックに対応した対応画素の画像データとの差異が大きい画素の画像データが用いられないので、図４で示したように、実質的にはエッジの領域から注目画素側にある画素の画像データのみを用いた補間処理が行われる。すなわち、エッジ部分が平滑化されないので、補間処理後でもエッジ部分の鮮鋭さを維持して画質を向上させることが可能となる。また、エッジブロックに鮮鋭化等の処理を行っても、エッジブロックと非エッジブロックとで色の差が出なくなり、この点でも画質を向上させることができる。
【００８２】
バイリニア法による補間処理についても、同様のことが言える。
図２０は、Ｓ６５０で行われる選択バイキュービック処理をフローチャートにより示している。
図２１に示すように、まず、注目ブロックＮ２内で注目画素Ｎ１の位置（ｘ，ｙ）を設定する（Ｓ９０５）。次に、注目画素Ｎ１の近隣に位置する拡大前画像における所定領域Ｒ３内の２×２の参照画素Ａ〜Ｄを決定する（Ｓ９１０）。ここで、注目ブロックＮ２に対応する拡大前画像における対応画素の位置を（Ｘ，Ｙ）、注目ブロック内での注目画素Ｎ１の位置を（ｘ，ｙ）、画像の拡大率をＭ、ｓ＝Ｍ／２（ただし、小数点以下切り捨て）とすると、Ｍ＝３のとき、ｘ＝０〜２、ｙ＝０〜２、ｓ＝１となり、４点の参照画素の位置は以下のように決定される。
【００８３】
ｘ＜ｓかつｙ＜ｓ、すなわち、注目画素が（０，０）のとき、
（Ｘ−１，Ｙ−１）〜（Ｘ，Ｙ）
ｘ≧ｓかつｙ＜ｓ、すなわち、注目画素が（１，０），（２，０）のとき、
（Ｘ，Ｙ−１）〜（Ｘ＋１，Ｙ）
ｘ＜ｓかつｙ≧ｓ、すなわち、注目画素が（０，１），（０，２）のとき、
（Ｘ−１，Ｙ）〜（Ｘ，Ｙ＋１）
ｘ≧ｓかつｙ≧ｓ、すなわち、注目画素が（１，１），（１，２），（２，１），（２，２）のとき、
（Ｘ，Ｙ）〜（Ｘ＋１，Ｙ＋１）
このように、バイリニア法による補間処理を行う場合でも、注目ブロック内の画素の位置に応じた適切な領域の参照画素が設定される。
【００８４】
そして、ガウスぼかし処理が行われていない参照画素Ａ，Ｂ，Ｃ，Ｄの画像データの階調値をそれぞれａ，ｂ，ｃ，ｄで表すと、補間処理後の階調値Ｅは、以下の式により算出することができる。
【数２】
2004215163.tif 000004
ただし、バイリニア法での距離係数ｄｉ，ｄｊは、
ｘ＜ｓかつｙ＜ｓのとき、ｄｉ＝（ｘ−ｓ＋Ｍ），  ｄｊ＝（ｙ−ｓ＋Ｍ）
ｘ≧ｓかつｙ＜ｓのとき、ｄｉ＝（ｘ−ｓ），  ｄｊ＝（ｙ＋Ｍ−ｓ）
ｘ＜ｓかつｙ≧ｓのとき、ｄｉ＝（ｘ＋Ｍ−ｓ），  ｄｊ＝（ｙ−ｓ）
ｘ≧ｓかつｙ≧ｓのとき、ｄｉ＝（ｘ−ｓ），  ｄｊ＝（ｙ−ｓ）
である。
ここで、参照画素が拡大前画像の端部からはみ出るとき、拡大前画像の端部の画素における階調値が外側にある（折り返されている）ものとして階調値を計算する。
【００８５】
その後、決定した複数の参照画素Ａ〜Ｄのそれぞれについて、順次、ガウスぼかし処理が行われていない画像データの階調値を取得する（Ｓ９１５）。そして、取得した階調値について、注目ブロックＮ２に対応する対応画素の階調値Ｐ０との差が所定のしきい値Ｌ９より大（または以上）であるか否かを判断していく（Ｓ９２０）。拡大前画像の画像データの階調値が２５６階調であるとき、しきい値Ｌ９を例えば５０等とすればよい。本実施形態ではＬ８＝Ｌ９としているが、Ｌ８とＬ９とは異なる値であってもよい。
階調値の差がＬ９より大きいとき、参照画素Ａ〜Ｄの階調値を対応画素の階調値Ｐ０に置き換えて上記補間処理の演算式（９）に代入する階調値ａ〜ｄとし（Ｓ９２５）、Ｓ９３０に進む。一方、階調値の差がＬ９以下であるとき、階調値を置き換えることなく参照画素Ａ〜Ｄの階調値をそのまま上記演算式（９）に代入する階調値ａ〜ｄとし、Ｓ９３０に進む。
Ｓ９３０では、Ｓ９２０の判断処理をしていない他の参照画素が存在するか否かを判断する。他の参照画素が存在している場合には繰り返しＳ９１５〜Ｓ９３０の処理を行い、全ての参照画素について同処理を行った場合にはＳ９３５に進む。
【００８６】
Ｓ９３５では、階調値の置き換え処理が行われた参照画素の階調値ａ〜ｄを用いて上記演算式（９）により補間処理後の階調値Ｅを算出するバイリニア補間処理を行う。補間処理を行うと、算出した階調値Ｅをバッファに格納する（Ｓ９４０）。その後、注目ブロック内の全画素について、補間処理を行ったか否かを判断する（Ｓ９４５）。条件不成立の場合には、注目ブロック内で注目画素を順次移動させながら繰り返しＳ９０５〜Ｓ９４５の処理を行い、バイリニア法による補間処理を行う。条件成立の場合には、本フローを終了する。
【００８７】
なお、図１３のＳ６４５で行われるニアリストネイバ処理では、注目画素から最短距離にある拡大前画像上の画素の画像データのみを参照するニアリストネイバ法によって補間処理を行い、算出した階調値をバッファに格納する処理を行う。
そして、Ｓ６７０では、拡大画像の全ブロックについて拡大画像の各画素に対応した階調データを生成したか否かを判断する。条件不成立の場合には、拡大画像上で注目ブロックを順次移動させながら繰り返しＳ６０５〜Ｓ６５５により拡大画像の各画素に対応した階調データを生成する処理を行う。条件成立の場合には、本フローを終了する。
【００８８】
例えば、図２２の上段に示すような輝度値Ｙを有する拡大前画像を３倍に拡大する場合を例に挙げる。わかりやすいように、ここでは拡大前画像の画像データＤ１として輝度値Ｙのみを用いているが、ＹＣｂＣｒ各成分値やＲＧＢ各階調値等についても適用が可能である。
まず、同拡大前画像に対して、ゼロクロス検出処理、ゼロクロス連結処理を行い、エッジ情報を生成する。その結果、（４，０），（３，１），（２．２），（１，２），（１，３），（０，４）の画素に対応する拡大画像のブロック内の各画素に対応してエッジの領域を表すエッジ情報が生成されたとする。
【００８９】
注目ブロックの位置が（０，０）である場合、エッジの領域が存在しないので、図１３のＳ６３５で輝度値の異なり度合を求めることになる。注目ブロックに対応する対応画素（０，０）を中心とする５×５画素の輝度値Ｙは、図２２の中段に示す値となる。なお、拡大前画像の外側となる部分については、端部の輝度値が拡大前画像の外側に向かって連続しているものとしている。ここで、５×５画素の輝度値の最大値は２２４、最小値は９６であるので、最大値と最小値との差は１２８となり、しきい値Ｌ７（１００）より大きくなる。そこで、図１３の６５５で選択バイキュービック処理が行われる。
なお、一般的なバイキュービック補間は、ブロックの左上の画素に、拡大前画像の注目画素の値がくるようになっている。しかし、本画像補間装置は、エッジ検出の結果との整合性を取るため、図１８で示したように、ブロックの中心に拡大前画像の注目画素の値がくるようにブロック内での補間ピクセルの位置によって参照するピクセルを変更して、補間演算を行っている。これは、エッジ検出の方法との兼ね合いで、する必要がない場合もある。
【００９０】
注目ブロック内の右下の画素を補間する場合、このピクセル位置（ｘ，ｙ）はブロック内で（２，２）である。ｘ，ｙともに拡大率Ｍの半分以上であるため、バイキュービック法による計算を行う際に、参照点として用いるのは、（−１，−１）〜（２，２）の１６点となる。ここで、拡大前画像の端部からはみ出る部分については、端部のピクセルが連続しているものとして計算する。つまり、参照画素は、図２２の下段に示す位置となる。
この場合、拡大前画像の画素（２，２）の輝度値（画像データの値）は９６であるため、注目画素の対応する対応画素（注目ブロックに対応する対応画素と同じ）の輝度値２０３との差は１０７となり、しきい値Ｌ８（５０）より大きい。すなわち、画素（２，２）の輝度値は所定範囲外であるため同画素（２，２）の輝度値を画素（０，０）の輝度値２０３で置き換え、他の画素の輝度値は所定範囲内であるためそのままとする。
また、距離係数は、ｄｘ＝（２−１）／３＝０．３３３、ｄｙ＝（２−１）／３＝０．３３３となる。これらの値を用いて、上記演算式（８）により補間処理後の階調値Ｅを計算する。
このような補間処理を注目ブロック内の全てのピクセルに対して繰り返すことになる。
【００９１】
従来からのバイキュービック法やバイリニア法による補間処理では、エッジの領域を跨いで色の画素補間を行うため、エッジ部分に鮮鋭化処理を行い、同エッジ部分の近傍で補間処理を行うと、エッジブロックとその周囲でブロックとの間での色の差が発生していた。本発明によると、エッジの領域を越えた参照画素の画像データを用いないようにしたので、エッジブロックと非エッジブロックとで色の差の発生を少なくすることができる。また、補間処理後の階調データを生成するために所定のパターンを拡大率別に用意しておく必要がないため、任意倍率の画像拡大処理を容易に行うことができる。
なお、本画像補間装置は、２次元デジタル画像を拡大する場合や、プリンタ印刷時の画像拡大処理を行う場合、小型携帯機器などで撮影した低解像度画像を拡大する場合等、様々な場面に利用することができ、少ない計算量による、適切な色の補間処理を行うことができる。
【００９２】
（４）変形例：
本発明の画像補間装置は、様々な構成が可能である。
例えば、プリンタは、コンピュータと一体化されたものであってもよい。上述したフローについては、コンピュータ本体内で実行する以外にも、一部または全部をプリンタあるいは専用の画像出力装置で実行するようにしてもよい。
画像データを構成する多数の画素は、縦横に整然と並んだドットマトリクス状とされる以外にも、様々な構成が考えられる。例えば、正六角形を密に並べたような蜂の巣状に整然と並んだドットマトリクス状の画素から画像データを構成してもよい。
以上説明したように、本発明によると、補間処理の際に注目画素に対応した対応画素の画像データとの差異が大きい画素の画像データが用いられないので、実質的には注目画素の近隣に位置する所定領域内の領域のうちエッジの領域を越えた領域の画素の画像データが用いられず、エッジ部分が平滑化されない。従って、補間処理後でもエッジ部分の鮮鋭さを維持して画質を向上させることが可能な画像補間装置および画像補間プログラムを提供することができる。また、画像補間方法としても適用可能である。
【図面の簡単な説明】
【図１】印刷システムのハードウェア構成の概略を示すブロック図。
【図２】プリンタのハードウェア構成の概略を示すブロック図。
【図３】画像補間装置の構成の概略を模式的に示す図。
【図４】補間処理の様子を模式的に示す図。
【図５】画像補間装置が行う処理を示すフローチャート。
【図６】ゼロクロス検出処理を示すフローチャート。
【図７】フィルタ演算処理を示すフローチャート。
【図８】ゼロクロス位置算出処理を示すフローチャート。
【図９】拡大エッジ位置情報を取得する様子を模式的に示す図。
【図１０】ゼロクロス連結処理を示すフローチャート。
【図１１】エッジ生成処理を示すフローチャート。
【図１２】連結位置情報を取得する様子を模式的に示す図。
【図１３】補間処理を示すフローチャート。
【図１４】２値化データを生成してパターンマッチング処理を行う様子を模式的に示す図。
【図１５】マッチングパターンの一例を模式的に示す図。
【図１６】エッジ色埋め処理を示すフローチャート。
【図１７】エッジ色埋め処理を行う様子を模式的に示す図。
【図１８】選択バイキュービック処理で参照画素を決定する様子を模式的に示す図。
【図１９】選択バイキュービック処理を示すフローチャート。
【図２０】選択バイリニア処理を示すフローチャート。
【図２１】選択バイリニア処理で参照画素を決定する様子を模式的に示す図。
【図２２】補間処理を選択して参照画素を設定する様子を模式的に示す図。
【符号の説明】
１０…パーソナルコンピュータ（ＰＣ）、１１…ＣＰＵ、１２…ＲＯＭ、１３…ＲＡＭ、１４…ハードディスク（ＨＤ）、１５…ＣＤ−ＲＯＭドライブ、１６…フレキシブルディスク（ＦＤ）ドライブ、１７ａ〜ｅ…インターフェイス（Ｉ／Ｆ）、１８ａ…ディスプレイ、１８ｂ…キーボード、１８ｃ…マウス、２０…インクジェットプリンタ、３０…デジタルカメラ、５１…注目画素、５２…隣接画素、５３，５６…ゼロクロス、５４…注目ブロック、５５…隣接ブロック、５７…拡大エッジ位置情報、６１ａ，ｂ，６２ａ，ｂ…エッジ画素、６１ｃ〜ｅ，６２ｃ〜ｅ…連結画素、１００…印刷システム、Ｄ１…画像データ、Ｄ２…エッジ情報、Ｄ３…２値化データ、Ｉ１…拡大前画像、Ｉ１ｕ…画素、Ｉ２…拡大画像、Ｉ２ｄ…ブロック（画素区分）、Ｉ２ｕ…画素、Ｎ１…注目画素、Ｎ１ｕ…対応画素、Ｎ２…注目ブロック、Ｒ１，Ｒ３…所定領域、Ｒ２…第二の所定領域、Ｕ０…画像補間装置、Ｕ１…エッジ生成手段、Ｕ２…補間手段
【図１】
2004215163.tif 000005
【図２】
2004215163.tif 000006
【図３】
2004215163.tif 000007
【図４】
2004215163.tif 000008
【図５】
2004215163.tif 000009
【図６】
2004215163.tif 000010
【図７】
2004215163.tif 000011
【図８】
2004215163.tif 000012
【図９】
2004215163.tif 000013
【図１０】
2004215163.tif 000014
【図１１】
2004215163.tif 000015
【図１２】
2004215163.tif 000016
【図１３】
2004215163.tif 000017
【図１４】
2004215163.tif 000018
【図１５】
2004215163.tif 000019
【図１６】
2004215163.tif 000020
【図１７】
2004215163.tif 000021
【図１８】
2004215163.tif 000022
【図１９】
2004215163.tif 000023
【図２０】
2004215163.tif 000024
【図２１】
2004215163.tif 000025
【図２２】
2004215163.tif 000026