(57)【要約】【課題】エッジの方向を正確に認識し、正確に画像を補間する。【解決手段】方向判別部が注目画素のエッジの方向を認識し、注目画素の位置と共に信頼度格付部１２４、および、方向性分布生成部１２５に出力する。方向補間部１３１が、注目画素を方向補間する。信頼度格付部１２４は、方向補間部１３１により補間された補間画素が適正であるか否かを判定し、信頼度を格付し方向性分布生成部１２５に出力する。方向性分布生成部１２５は、方向の情報と信頼度の情報に基づいて方向性分布を生成する。方向選択部１２６は、方向性分布生成部１２５に生成された方向性分布に基づいてエッジの方向を認識する。本発明は、画像解像度変換装置に適用することができる。【選択図】      図４
2004153668.tif 000002
【特許請求の範囲】
【請求項１】
原画像の空間解像度を垂直方向と水平方向のいずれか一方、または、その両方向をそれぞれＺ倍することにより変換する画像処理装置において、
前記注目画素位置の中心画素エネルギを計算するエネルギ計算手段と、
前記エネルギ計算手段により計算された前記中心画素エネルギに基づいて、エッジを強調するエッジ強調手段と、
前記エッジ強調手段により強調された前記エッジの方向を検出するエッジ方向検出手段と、
線形補間により前記注目画素位置の線形補間画素を補間する線形補間手段と、前記エッジ方向検出手段により検出されたエッジの方向に基づいて、前記注目画素位置の選択方向補間画素を補間する選択方向補間手段と、
前記線形補間画素と前記選択補間画素を合成して合成補間画素を補間する合成補間手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記エネルギ計算手段は、前記原画像の所定の画素の水平方向、または、垂直方向の中心画素エネルギを、前記画素の近傍に存在する近傍画素の画素値より計算する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記エネルギ計算手段により使用された前記近傍画素のうち、前記所定の画素を中心として、垂直方向、または、水平方向に配列された前記近傍画素の画素値の、最大値、および、最小値を検出する最大値最小値検出手段と、
前記中心画素エネルギと、前記最小値、および、前記最小値よりも大きく前記最大値よりも小さい所定の閾値とを比較する第１の比較手段と、
前記エネルギ計算手段により計算された前記中心画素エネルギに基づいて、テクスチャを強調するテクスチャ強調手段とをさらに備え、
前記第１の比較手段の第１の比較結果により、前記中心画素エネルギが、前記最小値以上で、かつ、前記閾値未満の場合、前記テクスチャ強調手段は、前記所定の画素をテクスチャ領域に属するものとみなし、フィルタ処理を施すことによりテクスチャを強調する
ことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記フィルタ処理は、所定のフィルタの係数を、対応する画素に乗算し、その積を加算する１次元フィルタ処理である
ことを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記所定のフィルタの係数は、前記中心画素エネルギに対応する値である
ことを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記フィルタ処理は、前記原画像の垂直方向と水平方向のそれぞれの方向について行う処理である
ことを特徴とする請求項３に記載の画像処理装置。
【請求項７】
前記エネルギ計算手段により使用された前記近傍画素のうち、前記所定の画素を中心として、垂直方向、または、水平方向に方向に配列された前記近傍画素の画素値の、最大値、および、最小値を検出する最大値最小値検出手段と、
前記中心画素エネルギと、前記最小値よりも大きく前記最大値よりも小さい所定の閾値、および、前記最大値とを比較する第２の比較手段とをさらに備え、
前記第２の比較手段の第２の比較結果により、前記中心画素エネルギが、前記閾値以上で、かつ、前記最大値未満の場合、前記エッジ強調手段は、前記所定の画素をエッジ領域に属するものとみなし、フィルタ処理を施し、さらに、クリッピング処理を施すことによりエッジを強調する
ことを特徴とする請求項２に記載の画像処理装置。
【請求項８】
前記フィルタ処理は、所定のフィルタの係数を、対応する画素に乗算し、その積を加算する１次元フィルタ処理である
ことを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記所定のフィルタの係数は、前記中心画素エネルギに対応する値である
ことを特徴とする請求項８に記載の画像処理装置。
【請求項１０】
前記フィルタ処理は、前記原画像の垂直方向と水平方向のそれぞれの方向について行う処理である
ことを特徴とする請求項７に記載の画像処理装置。
【請求項１１】
前記フィルタ処理が施された画素の画素値と、前記最大値、および、前記最小値を比較する第３の比較手段を備え、
前記クリッピング処理は、前記第３の比較手段の第３の比較結果に対応して、前記フィルタ処理が施された画素の画素値が、前記最大値よりも大きい場合、前記フィルタ処理された画素の画素値を最大値に置換する処理であり、前記フィルタ処理された画素の画素値が、前記最小値よりも小さい場合、前記フィルタ処理された画素の画素値を最小値に置換する処理である
ことを特徴とする請求項７に記載の画像処理装置。
【請求項１２】
前記エッジ方向検出手段は、
前記エッジの方向に基づいて、前記注目画素位置にエッジ方向補間画素を補間するエッジ方向補間手段と、
前記エッジ方向補間手段により補間されたエッジ方向補間画素の信頼度を検出する信頼度検出手段と、
前記信頼度検出手段により検出された信頼度のうち、最も信頼度の高いエッジの方向を選択する方向選択手段とを備えることを特徴とする請求項１に記載の画像処理装置。
【請求項１３】
前記原画像が、インタレース画像の場合、垂直方向にのみ２倍に拡大するとき、前記合成補間手段は、プログレッシブ画像の前記合成補間画素を補間する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項１４】
原画像の空間解像度を垂直方向と水平方向のいずれか一方、または、その両方向をそれぞれＺ倍することにより変換する画像処理装置の画像処理方法において、
前記注目画素位置の中心画素エネルギを計算するエネルギ計算ステップと、
前記エネルギ計算ステップの処理で計算された前記中心画素エネルギに基づいて、エッジを強調するエッジ強調ステップと、
前記エッジ強調ステップの処理で強調された前記エッジの方向を検出するエッジ方向検出ステップと、
線形補間により前記注目画素位置の線形補間画素を補間する線形補間ステップと、
前記エッジ方向検出ステップの処理で検出されたエッジの方向に基づいて、前記注目画素位置の選択方向補間画素を補間する選択方向補間ステップと、
前記線形補間画素と前記選択補間画素を合成して合成補間画素を補間する合成補間ステップと
を含むことを特徴とする画像処理方法。
【請求項１５】
原画像の空間解像度を垂直方向と水平方向のいずれか一方、または、その両方向をそれぞれＺ倍することにより変換する画像処理装置を制御するプログラムであって、
前記注目画素位置の中心画素エネルギを計算するエネルギ計算ステップと、
前記エネルギ計算ステップの処理で計算された前記中心画素エネルギに基づいて、エッジを強調するエッジ強調ステップと、
前記エッジ強調ステップの処理で強調された前記エッジの方向を検出するエッジ方向検出ステップと、
線形補間により前記注目画素位置の線形補間画素を補間する線形補間ステップと、
前記エッジ方向検出ステップの処理で検出されたエッジの方向に基づいて、前記注目画素位置の選択方向補間画素を補間する選択方向補間ステップと、
前記線形補間画素と前記選択補間画素を合成して合成補間画素を補間する合成補間ステップと
を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
【請求項１６】
原画像の空間解像度を垂直方向と水平方向のいずれか一方、または、その両方向をそれぞれＺ倍することにより変換する画像処理装置を制御するコンピュータに、
前記注目画素位置の中心画素エネルギを計算するエネルギ計算ステップと、
前記エネルギ計算ステップの処理で計算された前記中心画素エネルギに基づいて、エッジを強調するエッジ強調ステップと、
前記エッジ強調ステップの処理で強調された前記エッジの方向を検出するエッジ方向検出ステップと、
線形補間により前記注目画素位置の線形補間画素を補間する線形補間ステップと、
前記エッジ方向検出ステップの処理で検出されたエッジの方向に基づいて、前記注目画素位置の選択方向補間画素を補間する選択方向補間ステップと、
前記線形補間画素と前記選択補間画素を合成して合成補間画素を補間する合成補間ステップと
を含む処理を実行させることを特徴とするプログラム。
【請求項１７】
原画像の空間解像度を垂直方向と水平方向のいずれか一方、または、その両方向をそれぞれＺ倍することにより変換する画像処理装置において、
注目画素位置の前記エッジの方向を検出する方向検出手段と、
前記方向検出手段により検出された前記エッジの方向に基づいて、前記注目画素位置にエッジ方向補間画素を補間するエッジ方向補間手段と、
前記エッジ方向補間手段により補間されたエッジ方向補間画素の信頼度を検出する信頼度検出手段と、
前記信頼度検出手段により検出された信頼度のうち、最も信頼度の高いエッジの方向を選択する方向選択手段と、
線形補間により前記注目画素位置の線形補間画素を補間する線形補間手段と、前記方向選択手段により選択されたエッジの方向に基づいて、前記注目画素位置の選択方向補間画素を補間する選択方向補間手段と、
前記線形補間画素と前記選択補間画素を合成して合成補間画素を補間する合成補間手段と
を備えることを特徴とする画像処理装置。
【請求項１８】
前記エッジ方向補間手段により補間されたエッジ方向補間画素の局所的構造の整合性を判定する整合性判定手段をさらに備え、
前記信頼度検出手段は、前記整合性判定手段の判定結果に基づいて、前記エッジ方向補間手段により補間されたエッジ方向補間画素の信頼度を検出する
ことを特徴とする請求項１７に記載の画像処理装置。
【請求項１９】
前記信頼度と前記エッジの方向の関係から方向性分布を生成する方向性分布生成手段をさらに備え、
前記方向選択手段は、前記方向性分布に基づいて、最も信頼度の高いエッジ方向を選択する
ことを特徴とする請求項１７に記載の画像処理装置。
【請求項２０】
前記方向性分布より前記方向選択手段により選択された最も信頼度の高い方向の信頼度に基づいて、前記方向選択補間画素の重みを設定する重み設定手段をさらに備え、
前記合成補間手段は、前記重み設定手段により設定された前記重みに対応する係数を用いて、前記線形補間画素と前記選択補間画素の線形和をとることにより合成して合成補間画素を補間する
ことを特徴とする請求項１９に記載の画像処理装置。
【請求項２１】
前記原画像が、インタレース画像の場合、垂直方向にのみ２倍に拡大するとき、前記合成補間手段は、プログレッシブ画像の前記合成補間画素を補間する
ことを特徴とする請求項１７に記載の画像処理装置。
【請求項２２】
原画像の空間解像度を垂直方向と水平方向のいずれか一方、または、その両方向をそれぞれＺ倍することにより変換する画像処理装置の画像処理方法において、
注目画素位置の前記エッジの方向を検出する方向検出ステップと、
前記方向検出ステップの処理で検出された前記エッジの方向に基づいて、前記注目画素位置にエッジ方向補間画素を補間するエッジ方向補間ステップと、
前記エッジ方向補間ステップの処理で補間されたエッジ方向補間画素の信頼度を検出する信頼度検出ステップと、
前記信頼度検出ステップの処理で検出された信頼度のうち、最も信頼度の高いエッジの方向を選択する方向選択ステップと、
線形補間により前記注目画素位置の線形補間画素を補間する線形補間ステップと、
前記方向選択ステップの処理で選択されたエッジの方向に基づいて、前記注目画素位置の選択方向補間画素を補間する選択方向補間ステップと、
前記線形補間画素と前記選択補間画素を合成して合成補間画素を補間する合成補間ステップと
を含むことを特徴とする画像処理方法。
【請求項２３】
原画像の空間解像度を垂直方向と水平方向のいずれか一方、または、その両方向をそれぞれＺ倍することにより変換する画像処理装置を制御するプログラムであって、
注目画素位置の前記エッジの方向を検出する方向検出ステップと、
前記方向検出ステップの処理で検出された前記エッジの方向に基づいて、前記注目画素位置にエッジ方向補間画素を補間するエッジ方向補間ステップと、
前記エッジ方向補間ステップの処理で補間されたエッジ方向補間画素の信頼度を検出する信頼度検出ステップと、
前記信頼度検出ステップの処理で検出された信頼度のうち、最も信頼度の高いエッジの方向を選択する方向選択ステップと、
線形補間により前記注目画素位置の線形補間画素を補間する線形補間ステップと、
前記方向選択ステップの処理で選択されたエッジの方向に基づいて、前記注目画素位置の選択方向補間画素を補間する選択方向補間ステップと、
前記線形補間画素と前記選択補間画素を合成して合成補間画素を補間する合成補間ステップと
を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
【請求項２４】
原画像の空間解像度を垂直方向と水平方向のいずれか一方、または、その両方向をそれぞれＺ倍することにより変換する画像処理装置を制御するプログラムであって、
注目画素位置の前記エッジの方向を検出する方向検出ステップと、
前記方向検出ステップの処理で検出された前記エッジの方向に基づいて、前記注目画素位置にエッジ方向補間画素を補間するエッジ方向補間ステップと、
前記エッジ方向補間ステップの処理で補間されたエッジ方向補間画素の信頼度を検出する信頼度検出ステップと、
前記信頼度検出ステップの処理で検出された信頼度のうち、最も信頼度の高いエッジの方向を選択する方向選択ステップと、
線形補間により前記注目画素位置の線形補間画素を補間する線形補間ステップと、
前記方向選択ステップの処理で選択されたエッジの方向に基づいて、前記注目画素位置の選択方向補間画素を補間する選択方向補間ステップと、
前記線形補間画素と前記選択補間画素を合成して合成補間画素を補間する合成補間ステップと
を含む処理を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像処理装置および方法、並びに記録媒体に関し、特に、静止画および動画像など様々なソースに適用でき、そして人間の視覚系にアピールする方法で鮮明で自然なエッジとテクスチャを再描画し、高画質な高解像度画像を得ることができるようにした画像処理装置および方法、並びに記録媒体に関する。
【０００２】
【従来の技術】
デジタル画像に基づく機器（デジタルカメラやカメラ一体型ビデオテープレコーダなど）の使用機会が多くなるにつれ、いわゆるデジタルズーム処理の必要性が高まってきた。それに伴い、デジタル画像の解像度を上げるための様々な方法が開発されてきた。従来の主な手法として、以下の３つの手法が存在する。第１の手法は、最近隣画素をそのまま用いた補間方法（０次補間（ｚｅｒｏ−ｏｒｄｅｒ−ｈｏｌｄ  ｉｎｔｅｒｐｏｌａｔｉｏｎ））であり、特にハードウェアの観点からみて簡単な補間法である。第２の手法は、最近隣２画素の平均値を計算し、垂直方向と水平方向に新しい画素を挿入する双線形補間方法（ｂｉｌｉｎｅａｒ  ｉｎｔｅｒｐｏｌａｔｉｏｎ）であり、隣接画素の補間にはかなり良い手法だと考えられている。第３の手法は、ノイズにも強く、モザイクパターンが出現しない、Ｂ−スプライン（Ｂ−ｓｐｌｉｎｅ）補間法である。
【０００３】
また、エッジを強調できるようにして、インタレース画面をプログレッシブ画面に変換するものがある（例えば、特許文献１参照）。
【０００４】
【特許文献１】
特開２００２−２１５１２１号公報
【０００５】
【発明が解決しようとする課題】
しかしながら、第１の方法は、特に高倍率で効果が少なく、拡大された画像には、有名な「モザイクパターン」というノイズが出てしまう。そして、エッジが大幅に破壊され、非常に目障りなジャギーが出現してしまう。第２の方法は、画像全体がぼやけてしまうという欠点があり、画像の解像度は改善されない。加えて、高倍率の際にモザイク現象がたくさん出てしまう。第３の方法は、画像はかなりぼやけてしまい、それにもかかわらず相対的に見るとハードウェアは複雑になってしまう。
【０００６】
また、上述の課題を解決すべく、特願２００１−２０１７２９にて注目画素に隣接する上下のライン上、または、左右の列に存在する画素のうち、注目画素を通る対角線上のいずれかの方向に跨る画素から注目画素を補間することにより、画像中のエッジを強調できるように画像を拡大するものが提案されている。しかしながら、画素を補間するにあたり、補間画素とその上下、または、左右に隣接する画素との相関を求めて、その相関性が認められないときは、上下、または、左右の画素間で線形補完するようにしていたため、必ずしも正しい補間画素を生成することができず、例えば、注目画素に対して斜方向に隣接する画素間で補間すべき画素を使用できないことがあり、結果として、鮮明な拡大画像を生成することができないと言う課題があった。
【０００７】
本発明は、このような状況に鑑みてなされたものであり、少ない計算処理量で、効果的かつ簡単に、コンピュータグラフィックスから写真までの範囲に及ぶ様々なタイプの静止画および動画像の解像度の変更にあたり発生する画像のエラーを抑制することができるようにするものである。
【０００８】
【課題を解決するための手段】
本発明の第１の画像処理装置は、注目画素位置の中心画素エネルギを計算するエネルギ計算手段と、エネルギ計算手段により計算された中心画素エネルギに基づいて、エッジを強調するエッジ強調手段と、エッジ強調手段により強調されたエッジの方向を検出するエッジ方向検出手段と、線形補間により注目画素位置の線形補間画素を補間する線形補間手段と、エッジ方向検出手段により検出されたエッジの方向に基づいて、注目画素位置の選択方向補間画素を補間する選択方向補間手段と、線形補間画素と選択補間画素を合成して合成補間画素を補間する合成補間手段とを備えることを特徴とする。
【０００９】
前記エネルギ計算手段には、原画像の所定の画素の水平方向、または、垂直方向の中心画素エネルギを、画素の近傍に存在する近傍画素の画素値より計算させるようにすることができる。
【００１０】
前記エネルギ計算手段により使用された近傍画素のうち、所定の画素を中心として、垂直方向、または、水平方向に配列された近傍画素の画素値の、最大値、および、最小値を検出する最大値最小値検出手段と、中心画素エネルギと、最小値、および、最小値よりも大きく最大値よりも小さい所定の閾値とを比較する第１の比較手段と、エネルギ計算手段により計算された中心画素エネルギに基づいて、テクスチャを強調するテクスチャ強調手段とをさらに設けるようにさせることができ、第１の比較手段の第１の比較結果により、中心画素エネルギが、最小値以上で、かつ、閾値未満の場合、テクスチャ強調手段には、所定の画素をテクスチャ領域に属するものとみなし、フィルタ処理を施すことによりテクスチャを強調させるようにすることができる。
【００１１】
前記フィルタ処理は、所定のフィルタの係数を、対応する画素に乗算し、その積を加算する１次元フィルタ処理とするようにすることができる。
【００１２】
前記所定のフィルタの係数は、中心画素エネルギに対応する値とするようにすることができる。
【００１３】
前記フィルタ処理は、原画像の垂直方向と水平方向のそれぞれの方向について行う処理とするようにすることができる。
【００１４】
前記エネルギ計算手段により使用された近傍画素のうち、所定の画素を中心として、垂直方向、または、水平方向に方向に配列された近傍画素の画素値の、最大値、および、最小値を検出する最大値最小値検出手段と、中心画素エネルギと、最小値よりも大きく最大値よりも小さい所定の閾値、および、最大値とを比較する第２の比較手段とをさらに設けるようにさせることができ、第２の比較手段の第２の比較結果により、中心画素エネルギが、閾値以上で、かつ、最大値未満の場合、エッジ強調手段には、所定の画素をエッジ領域に属するものとみなし、フィルタ処理を施し、さらに、クリッピング処理を施すことによりエッジを強調させるようにすることができる。
【００１５】
前記フィルタ処理は、所定のフィルタの係数を、対応する画素に乗算し、その積を加算する１次元フィルタ処理とするようにすることができる。
【００１６】
前記所定のフィルタの係数は、中心画素エネルギに対応する値とするようにすることができる。
【００１７】
前記フィルタ処理は、原画像の垂直方向と水平方向のそれぞれの方向について行う処理とするようにすることができる。
【００１８】
前記フィルタ処理が施された画素の画素値と、最大値、および、最小値を比較する第３の比較手段を設けるようにさせることができ、クリッピング処理は、第３の比較手段の第３の比較結果に対応して、フィルタ処理が施された画素の画素値が、最大値よりも大きい場合、フィルタ処理された画素の画素値を最大値に置換する処理とするようにすることができ、フィルタ処理された画素の画素値が、最小値よりも小さい場合、フィルタ処理された画素の画素値を最小値に置換する処理とするようにすることができる。
【００１９】
前記エッジ方向検出手段には、エッジの方向に基づいて、注目画素位置にエッジ方向補間画素を補間するエッジ方向補間手段と、エッジ方向補間手段により補間されたエッジ方向補間画素の信頼度を検出する信頼度検出手段と、信頼度検出手段により検出された信頼度のうち、最も信頼度の高いエッジの方向を選択する方向選択手段とを設けるようにさせることができる。
【００２０】
前記原画像が、インタレース画像の場合、垂直方向にのみ２倍に拡大するとき、合成補間手段には、プログレッシブ画像の前記合成補間画素を補間させるようにすることができる。
【００２１】
本発明の第１の画像処理方法は、注目画素位置の中心画素エネルギを計算するエネルギ計算ステップと、エネルギ計算ステップの処理で計算された中心画素エネルギに基づいて、エッジを強調するエッジ強調ステップと、エッジ強調ステップの処理で強調されたエッジの方向を検出するエッジ方向検出ステップと、線形補間により注目画素位置の線形補間画素を補間する線形補間ステップと、エッジ方向検出ステップの処理で検出されたエッジの方向に基づいて、注目画素位置の選択方向補間画素を補間する選択方向補間ステップと、線形補間画素と選択補間画素を合成して合成補間画素を補間する合成補間ステップとを含むことを特徴とする。
【００２２】
本発明の第１の記録媒体のプログラムは、注目画素位置の中心画素エネルギを計算するエネルギ計算ステップと、エネルギ計算ステップの処理で計算された中心画素エネルギに基づいて、エッジを強調するエッジ強調ステップと、エッジ強調ステップの処理で強調されたエッジの方向を検出するエッジ方向検出ステップと、線形補間により注目画素位置の線形補間画素を補間する線形補間ステップと、エッジ方向検出ステップの処理で検出されたエッジの方向に基づいて、注目画素位置の選択方向補間画素を補間する選択方向補間ステップと、線形補間画素と選択補間画素を合成して合成補間画素を補間する合成補間ステップとを含むことを特徴とする。
【００２３】
本発明の第１のプログラムは、注目画素位置の中心画素エネルギを計算するエネルギ計算ステップと、エネルギ計算ステップの処理で計算された中心画素エネルギに基づいて、エッジを強調するエッジ強調ステップと、エッジ強調ステップの処理で強調されたエッジの方向を検出するエッジ方向検出ステップと、線形補間により注目画素位置の線形補間画素を補間する線形補間ステップと、エッジ方向検出ステップの処理で検出されたエッジの方向に基づいて、注目画素位置の選択方向補間画素を補間する選択方向補間ステップと、線形補間画素と選択補間画素を合成して合成補間画素を補間する合成補間ステップとを含む処理をコンピュータに実行させることを特徴とする。
【００２４】
本発明の第２の画像処理装置は、注目画素位置のエッジの方向を検出する方向検出手段と、方向検出手段により検出されたエッジの方向に基づいて、注目画素位置にエッジ方向補間画素を補間するエッジ方向補間手段と、エッジ方向補間手段により補間されたエッジ方向補間画素の信頼度を検出する信頼度検出手段と、信頼度検出手段により検出された信頼度のうち、最も信頼度の高いエッジの方向を選択する方向選択手段と、線形補間により注目画素位置の線形補間画素を補間する線形補間手段と、方向選択手段により選択されたエッジの方向に基づいて、注目画素位置の選択方向補間画素を補間する選択方向補間手段と、線形補間画素と選択補間画素を合成して合成補間画素を補間する合成補間手段とを備えることを特徴とする。
【００２５】
前記エッジ方向補間手段により補間されたエッジ方向補間画素の局所的構造の整合性を判定する整合性判定手段をさらに設けるようにさせることができ、信頼度検出手段には、整合性判定手段の判定結果に基づいて、エッジ方向補間手段により補間されたエッジ方向補間画素の信頼度を検出させるようにすることができる。
【００２６】
前記信頼度とエッジの方向の関係から方向性分布を生成する方向性分布生成手段をさらに設けるようにさせることができ、方向選択手段には、方向性分布に基づいて、最も信頼度の高いエッジ方向を選択させるようにすることができる。
【００２７】
前記方向性分布より方向選択手段により選択された最も信頼度の高い方向の信頼度に基づいて、方向選択補間画素の重みを設定する重み設定手段をさらに設けるようにさせることができ、合成補間手段には、重み設定手段により設定された重みに対応する係数を用いて、線形補間画素と選択補間画素の線形和をとることにより合成して合成補間画素を補間させるようにすることができる。
【００２８】
前記原画像が、インタレース画像の場合、垂直方向にのみ２倍に拡大するとき、合成補間手段には、プログレッシブ画像の前記合成補間画素を補間させるようにすることができる。
【００２９】
本発明の第２の画像処理方法は、注目画素位置のエッジの方向を検出する方向検出ステップと、方向検出ステップの処理で検出されたエッジの方向に基づいて、注目画素位置にエッジ方向補間画素を補間するエッジ方向補間ステップと、エッジ方向補間ステップの処理で補間されたエッジ方向補間画素の信頼度を検出する信頼度検出ステップと、信頼度検出ステップの処理で検出された信頼度のうち、最も信頼度の高いエッジの方向を選択する方向選択ステップと、線形補間により注目画素位置の線形補間画素を補間する線形補間ステップと、方向選択ステップの処理で選択されたエッジの方向に基づいて、注目画素位置の選択方向補間画素を補間する選択方向補間ステップと、線形補間画素と選択補間画素を合成して合成補間画素を補間する合成補間ステップとを含むことを特徴とする。
【００３０】
本発明の第２の記録媒体のプログラムは、注目画素位置のエッジの方向を検出する方向検出ステップと、方向検出ステップの処理で検出されたエッジの方向に基づいて、注目画素位置にエッジ方向補間画素を補間するエッジ方向補間ステップと、エッジ方向補間ステップの処理で補間されたエッジ方向補間画素の信頼度を検出する信頼度検出ステップと、信頼度検出ステップの処理で検出された信頼度のうち、最も信頼度の高いエッジの方向を選択する方向選択ステップと、線形補間により注目画素位置の線形補間画素を補間する線形補間ステップと、方向選択ステップの処理で選択されたエッジの方向に基づいて、注目画素位置の選択方向補間画素を補間する選択方向補間ステップと、線形補間画素と選択補間画素を合成して合成補間画素を補間する合成補間ステップとを含むことを特徴とする。
【００３１】
本発明の第２のプログラムは、注目画素位置のエッジの方向を検出する方向検出ステップと、方向検出ステップの処理で検出されたエッジの方向に基づいて、注目画素位置にエッジ方向補間画素を補間するエッジ方向補間ステップと、エッジ方向補間ステップの処理で補間されたエッジ方向補間画素の信頼度を検出する信頼度検出ステップと、信頼度検出ステップの処理で検出された信頼度のうち、最も信頼度の高いエッジの方向を選択する方向選択ステップと、線形補間により注目画素位置の線形補間画素を補間する線形補間ステップと、方向選択ステップの処理で選択されたエッジの方向に基づいて、注目画素位置の選択方向補間画素を補間する選択方向補間ステップと、線形補間画素と選択補間画素を合成して合成補間画素を補間する合成補間ステップとを含む処理をコンピュータに実行させることを特徴とする。
【００３２】
本発明の第１の画像処理装置および方法、並びにプログラムにおいては、注目画素位置の中心画素エネルギが計算され、計算された中心画素エネルギに基づいて、エッジが強調され、強調されたエッジの方向が検出され、線形補間により注目画素位置の線形補間画素が補間され、検出されたエッジの方向に基づいて、注目画素位置の選択方向補間画素が補間され、線形補間画素と選択補間画素が合成されて合成画素が補間される。
【００３３】
本発明の第２の画像処理装置および方法、並びにプログラムにおいては、注目画素位置のエッジの方向が検出され、検出されたエッジの方向に基づいて、注目画素位置にエッジ方向補間画素が補間され、補間されたエッジ方向補間画素の信頼度が検出され、検出された信頼度のうち、最も信頼度の高いエッジの方向が選択され、線形補間により注目画素位置の線形補間画素が補間され、選択されたエッジの方向に基づいて、注目画素位置の選択方向補間画素が補間され、線形補間画素と選択補間画素が合成されて合成補間画素が補間される。
【００３４】
【発明の実施の形態】
図１は、本発明を適用した画像処理装置の構成例を表している。この画像処理装置２においては、画像入力部１が処理対象とされる画像データを、記録媒体から読み取ったり、ネットワークを介して伝送されてくるものを受信して入力し、画像処理部２に出力している。画像処理部２は、画像入力部１より入力された画像の解像度を変更し（拡大または縮小し）、画像出力部３に出力している。画像出力部３は、画像処理部２より供給された画像データを表示部に表示させたり、記録媒体に記録するか、あるいは、伝送媒体を介して、他の装置に伝送する。
【００３５】
画像処理部２には、エッジコネクタ処理部１１が設けられている。このエッジコネクタ処理部１１は、画像のエッジを太くする処理を実行する。すなわち、小さいサイズの画像は、低解像度であり、信頼できる情報が少ないため、拡大するのが困難である。エッジが１画素と同じくらい細い（薄い）と、後述する高速垂直アップサンプリング処理部１２，垂直アップサンプリング処理部１３，高速水平アップサンプリング処理部１４、または、水平アップサンプリング処理部１５におけるエッジ検出が困難になり、エッジ方向に沿った補間処理を正確に行うことが困難になる。そこで原画像に前処理を行い、エッジを検出し易くする。この画像情報を破壊しない前処理は、例えばコンピュータのアイコンやワードプロセッサのフォントなどの弱接続（ｌｏｏｓｅ  ｃｏｎｎｅｃｔｉｏｎ）を持つ画像に対して行われる。
【００３６】
高速垂直アップサンプリング処理部１２と垂直アップサンプリング処理部１３は、それぞれ原画像の解像度を垂直方向にＺ倍する処理を行う。高速垂直アップサンプリング処理部１２は、Ｚの値が１より大きく２より小さい場合の処理を行い、垂直アップサンプリング処理部１３は、Ｚの値が２である場合の処理を行う。
【００３７】
高速水平アップサンプリング処理部１４と水平アップサンプリング処理部１５は、それぞれ原画像の解像度を水平方向にＺ倍する処理を行う。高速水平アップサンプリング処理部１４は、Ｚの値が１より大きく２より小さい場合の処理を行い、水平アップサンプリング処理部１５は、Ｚの値が２である場合の処理を行う。
【００３８】
線形縮小処理部１６は、原画像の解像度を縮小する（（Ｚ＜１）倍する）処理を行う。
【００３９】
１次元垂直イメージリフレッシュ処理部１７と１次元垂直イメージリフレッシュ処理部１８は、バッファ１７ａ，１８ａを適宜利用しながら、それぞれ垂直方向または水平方向に画像データを１次元のフィルタで処理し、エッジとテクスチャを視覚的に違和感なく強調する。すなわち、記録媒体に画像データが記録される場合、記録媒体の物理的な影響により高域成分が抑制されて、画像中のエッジ部分とテクスチャ部分がぼけてしまうといった現象が生じることがあるので、１次元垂直イメージリフレッシュ処理部１７と１次元垂直イメージリフレッシュ処理部１８は、各画素の中心画素エネルギを求めて、対応するフィルタ処理を行うと共に、中心画素エネルギの値からその画素がエッジ、または、テクスチャのいずれに属しているかを判別し、エッジの場合については、さらに、フィルタ処理により生じてしまう歪みを抑制するため、クリッピング処理を施す。
【００４０】
また、１次元垂直イメージリフレッシュ処理部１７と１次元垂直イメージリフレッシュ処理部１８で使用するフィルタは、各々２種類のフィルタが用意されており、必要に応じてユーザが任意に設定することができる。この２種類のフィルタのうち一方のフィルタは、周波数領域の特性を綿密に制御できるという特性があり、他方のフィルタは、前者のフィルタと比較すると周波数領域の特性を綿密に制御することができないが、処理量を軽減することができるというものである。これらのフィルタは、構成するフィルタの要素が異なると言う他は同様であり、その処理も同様である。以下の説明においては、前者のフィルタをＡタイプ、後者のフィルタをＢタイプと称するものとする。
【００４１】
次に、図２のブロック図を参照して、エッジコネクタ１１の詳細な構成について説明する。エッジ接続部１０１は、検出されたエッジの情報を対角エネルギ算出部１０２に出力し、算出された左右の対角エネルギに基づいて、エッジを太くして接続する。
【００４２】
次に、図３のブロック図を参照して、高速垂直アップサンプリング処理部１２の構成について説明する。高速垂直アップサンプラ１１１は、垂直方向補間部１１２に対して補間画素を生成させて、垂直方向に拡大した画像を生成し、出力する。
【００４３】
次に、図４のブロック図を参照して、図３の垂直方向補間部１１２の構成について説明する。
【００４４】
帯域制限部１２１は、例えば、ＬＰＦ（Ｌｏｗ  Ｐａｓｓ  Ｆｉｌｔｅｒ）などから構成され、入力された画像の各画素の画素値を平滑化して、帯域を制限して方向判別部１２３、および、エッジ検出部１２２に出力する。
【００４５】
エッジ検出部１２２は、帯域制限された画像信号から局所エネルギを算出してその値によりエッジ有無を検出し、斜重み付け部１２９に出力する。
【００４６】
方向判別部１２３は、エッジの方向を判別し、判別したエッジの方向の情報を信頼度格付部１２４、および、方向性分布生成部１２５に出力すると共に、画素情報をも方向補間部１３１に出力する。信頼度格付部１２４は、入力された画像の情報と、方向判別部１２３から入力されるエッジの方向の情報に基づいて、エッジの方向の情報の信頼度を求め、方向性分布生成部１２５に出力する。方向性補間部１３１は、方向判別部１２３からの情報に基づいて、その方向に存在する画素値を用いて画素を補間する。
【００４７】
方向性分布生成部１２５は、方向判別部１２３から入力されるエッジの方向の情報と対応する信頼度格付部１２４からの信頼度の情報に基づいて、方向性分布を生成して方向選択部１２６、および、斜重み付け部１２９に供給する方向選択部１２６は、方向性分布に基づいて信頼度の高い方向を選択し、選択した方向の情報を斜補間部１２８に出力する。また、斜重み付け部１２９は、斜方向のエッジに付する重みを計算して合成部１３０に出力する。
【００４８】
線形補間部１２７は、入力された画像のうち、補間しようとする画素の垂直方向の上下、または、左右に隣接する画素から線形補間により画素を生成し合成部１３０に出力する。斜補間部１２８は、入力された画像のうち、補間しようとする画素を方向選択部１２６より入力された方向に挟むように隣接する画素間の情報から補間画素を生成し合成部１３０に出力する。合成部１３０は、斜重み付け部１２９より入力されてくる斜め方向の重み付けの情報に基づいて、線形補間により生成された補間画素の画素値と、斜補間部１２８により斜補間により生成された補間画素の画素値を、それぞれに重み付けして加算する（重みを係数として線形和を求める）ことにより合成して補間画素として出力する。
【００４９】
次に、図５のブロック図を参照して、垂直アップサンプリング処理部１３の構成について説明する。垂直アップサンプラ１４１は、垂直方向補間部１４２に対して、補間画素を生成させて出力する。尚、垂直方向補間部１４２の構成は、図４を参照して説明した、図３の高速垂直アップサンプリング処理部１２の垂直方向補間部と同様であるので、その説明は省略する。
【００５０】
次に、図６のブロック図を参照して、高速水平アップサンプリング処理部１４の構成について説明する。高速水平アップサンプラ１５１は、補間しようとする画素の周辺画素の情報を出力して、補間画素を水平方向補間部１５２に生成させて、垂直方向に拡大した画像を生成して出力する。尚、水平方向補間部１５２の構成は、図４を参照して説明した、図３の高速垂直アップサンプリング処理部１２の垂直方向補間部１１２と同様の手法で、水平方向の画素について処理するものであるので、その説明は省略する。
【００５１】
次に、図７のブロック図を参照して、水平アップサンプリング処理部１５の構成について説明する。水平アップサンプラ１６１は、垂直方向補間部１６２に対して、補間画素を生成させて出力する。尚、垂直方向補間部１６２の構成は、図４を参照して説明した、図３の高速垂直アップサンプリング処理部１２の垂直方向補間部１１２と同様の手法で、水平方向の画素について処理するものであるので、その説明は省略する。
【００５２】
次に、図８のブロック図を参照して、１次元垂直イメージリフレッシュ処理部１７の構成について説明する。中心画素エネルギ算出部１７１は、入力された画像の注目画素に対応する垂直方向の列に存在する複数の画素から、その中心画素エネルギを算出し、判別比較部１７４に出力する。垂直最大値最小値検出部１７２は、入力された画像の注目画素に対応する垂直方向の複数の画素のうち、その最大値となる画素値と最小値となる画素値を抽出して、判別比較部１７４に出力する。
【００５３】
垂直フィルタ処理部１７３は、入力された画像の注目画素に対応する複数の画素を垂直方向にフィルタ処理して判別比較部１７４に出力する。判別比較部１７４は、中心画素エネルギ算出部１７１より入力される中心画素エネルギの値と、垂直フィルタ処理部１７３により垂直方向にフィルタ処理された値からテクスチャであるか、エッジであるかを判定し、さらに、エッジである場合、垂直最大値最小値検出部１７２より入力されてくる最大値または最小値と比較し、値をクリッピングして、バッファ１７ａに出力する。出力部１７５は、バッファ１７ａに記憶された画像信号を適宜読み出して出力する。
【００５４】
次に、図９のブロック図を参照して、１次元水平イメージリフレッシュ処理部１８の構成について説明する。中心画素エネルギ算出部１８１は、入力された画像の注目画素に対応する複数の画素から、その中心画素エネルギを算出し、判別比較部１８４に出力する。水平最大値最小値検出部１７２は、入力された画像の注目画素に対応する水平方向のライン上に存在する複数の画素のうち、その最大値となる画素値と最小値となる画素値を抽出して、判別比較部１８４に出力する。
【００５５】
水平フィルタ処理部１８３は、入力された画像の注目画素に対応する複数の画素を水平方向にフィルタ処理して判別比較部１８４に出力する。判別比較部１８４は、中心画素エネルギ算出部１８１より入力される中心画素エネルギの値と、水平フィルタ処理部１８３により水平方向にフィルタ処理された値からテクスチャであるか、エッジであるかを判定し、さらに、エッジである場合、水平最大値最小値検出部１８２より入力されてくる最大値または最小値と比較し、値をクリッピングして、バッファ１８ａに出力する。出力部１８５は、バッファ１８ａに記憶された画像信号を適宜読み出して出力する。
【００５６】
次に、図１０のフローチャートを参照して、画像処理部２のズーム処理について説明する。最初にステップＳ１において、画像処理部２は、変数ｚに倍率Ｚの値を設定する。次にステップＳ２において、画像処理部２は、変数ｚの値が２以上であるか否かを判定し、２未満である場合には、ステップＳ３に進み、変数ｚの値が１より大きく２より小さい値であるか否かが判定される。変数ｚの値が１より大きく２より小さい場合にはステップＳ４に進み、画像処理部２は、高速ズーム処理を行う。この高速ズーム処理の詳細は、図１１のフローチャートを参照して後述する。その後、ステップＳ７において、出力表示処理が実行される。
【００５７】
ステップＳ３において変数ｚの値が１と２の間の値ではないと判定された場合、ステップＳ５に進み、その変数ｚの値は、０であるか否かが判定される。その変数ｚの値が０でない場合には（変数ｚの値が１未満である場合には）、ステップＳ６に進み、標準的な線形縮小処理部１６により線形縮小処理が実行される。その後、ステップＳ７において、出力表示処理が実行される。すなわち、生成された画像が、画像出力部３により、表示部に表示される。
【００５８】
これに対してステップＳ５において、変数ｚの値が０であると判定された場合、ステップＳ６におけるズーム処理を所定回数実行した結果、拡大処理は既に完了しているため、ステップＳ７に進み、出力表示処理が実行される。
【００５９】
ステップＳ２において、変数ｚの値が２以上であると判定された場合、ステップＳ８に進み、画像処理部２は、ズーム処理を実行する。このズーム処理の詳細は、図５０のフローチャートを参照して後述する。
【００６０】
ステップＳ８の次にステップＳ９に進み、画像処理部２は、変数ｚの値を２で除算する。その後、処理はステップＳ２に戻り、それ以降の処理が繰り返し実行される。
【００６１】
すなわち、変数ｚの値が２以上である場合には、ステップＳ８の処理が変数ｚの値が２より小さくなるまで所定回数繰り返し行われる。そして、変数ｚの値が２より小さくなった場合には、変数ｚの値が１と２の間の値であるとき、ステップＳ４で高速ズーム処理が行われ、変数ｚの値が１未満である場合には、ステップＳ６で標準的な線形縮小処理が行われる。この標準的な線形縮小処理は、例えば、バイリニアフィルタを用いて実現することができる。
【００６２】
次に、図１１のフローチャートを参照して、ステップＳ４の高速ズーム処理について説明する。最初にステップＳ２１において、画像処理部２は、ユーザより設定されているモードが、画像モードであるか否かを判定する。設定されているモードが画像モードでない場合には（処理対象の画像が、エッジコネクタ処理を必要とするアイコンやフォントなどの弱接続の画像である場合には）、ステップＳ２６に進み、エッジコネクタ処理が行われる。このエッジコネクタ処理の詳細は、図４６と図４７を参照して後述するが、この処理で、弱接続の画像が強接続の画像に前処理される。
【００６３】
ステップＳ２１で設定されているモードが画像モードであると判定された場合（処理対象の画像が強接続の画像である場合）、およびステップＳ２６の処理の後、ステップＳ２２に進み、画像処理部２は、１次元垂直イメージリフレッシュ処理を実行する。
【００６４】
ここで、図１２のフローチャートを参照して、１次元垂直イメージリフレッシュ処理部１７の１次元垂直イメージリフレッシュ処理について説明する。
【００６５】
ステップＳ３１において、画像入力部１より入力された画像データのうち、処理していない画素があるか否かが判定され、処理されていない画素があると判定された場合、その処理は、ステップＳ３２に進む。
【００６６】
ステップＳ３２において、中心画素エネルギ算出部１７１は、未処理画素を検索し、検索された未処理画素の垂直方向中心画素エネルギを算出する。例えば、図１３に示すような画像データが入力され、垂直方向のｙ＋１，ｙ，ｙ−１の各ラインに、画素ａ乃至ｅ、画素ｆ乃至ｊ、および、画素ｋ乃至ｏが配置されているものとするとき、画素ｈの近傍のＡエリア（図中実線で囲まれた範囲）の垂直方向中心画素エネルギＥＶ−ｈは、以下の式（１）により求められる。
【００６７】
ＥＶ−ｈ＝｜（ｂ＋ｃ＋ｄ）−（ｌ＋ｍ＋ｎ）｜・・・（１）
【００６８】
ここで、ｂ，ｃ，ｄ，ｌ，ｍ，およびｎは、画素ｂ，ｃ，ｄ，ｌ，ｍ，およびｎの画素値である。すなわち、式（１）の垂直方向中心画素エネルギＥＶは、未処理画素を中心とした上のラインと下のラインに存在する画素値の和同士の差分の絶対値である。このため、相関のある画素同士が上下にある場合は、その画素値の差分には、大きな差がないので、垂直方向中心画素エネルギも小さくなり、逆に、相関のない画素同士が上下にある場合、その画素値の差分には大きな差が現れることが多く、結果として垂直方向中心画素エネルギも大きくなる。
【００６９】
中心画素エネルギ算出部１７１は、未処理画素の垂直方向中心画素エネルギＥＶ−ｈを上記の式（１）を演算することにより求める。
【００７０】
ステップＳ３３において、垂直最大値最小値検出部１７２は、未処理画素を含めた上下３個の画素の画素値を比較して最大値と最小値を求める。すなわち、例えば、図１３に示すように、未処理画素が画素ｈであった場合、それを含めた上下の画素ｃ，ｈ，ｍ（図１３中の点線で囲まれたＢエリア）の各画素値を読出し、図１４に示すように、その内の最大値（ｃ，ｈ，ｍ）と最小値（ｃ，ｈ，ｍ）を求める。
【００７１】
ステップＳ３４において、判別比較部１７４は、求められた垂直方向中心画素エネルギＥＶ−ｈが、最小値（ｃ，ｈ，ｍ）より大きく、かつ、最大値（ｃ，ｈ，ｍ）未満であるか否かを判定し、最小値（ｃ，ｈ，ｍ）より大きく、かつ、最大値（ｃ，ｈ，ｍ）未満であると判定した場合、すなわち、その画素がエッジか、または、テクスチャであると判定した場合、その処理は、ステップＳ３５に進む。
【００７２】
ステップＳ３５において、垂直フィルタ処理部１７３は、垂直１次元フィルタを構成する係数αの値を計算する。係数αは、式（２）に示すような計算により求められる。
【００７３】
α＝α０−（ＥＶ−ｈ／ＥＶ−ｈ−ｍａｘ）・・・（２）
【００７４】
ここで、α０（１＜α０≦２）は、ユーザにより任意に設定される値であり、ＥＶ−ｈ−Ｍａｘは、垂直方向中心画素エネルギＥＶ−ｈの最大値である。尚、ここで言う垂直中心画素エネルギの最大値ＥＶ−ｈ−ｍａｘは、最大値（ｃ，ｈ，ｍ）とは、異なるものであり、算出され得る最大値を示している。
【００７５】
ステップＳ３６において、垂直フィルタ処理部１７３は、図１３に示すＢエリアの画素ｃ，ｈ，ｍに、図１４に示すような１次元垂直フィルタ処理を施す。すなわち、１次元垂直フィルタは、（１／２−α／２，α，１／２−α／２）（１＜α≦２）といったものであり、例えば、フィルタが上述のタイプＡの場合、以下の式（３）に示すような演算により、フィルタ処理された画素値ｈＶ−ｆｉｌｔｅｒが求められる。
【００７６】
ｈＶ−ｆｉｌｔｅｒ＝ｃ×（１／２−α／２）＋ｈ×α＋ｍ×（１／２−α／２）・・・（３）
【００７７】
ここで、係数αは、上述のステップＳ３５の処理で求められた値であり、フィルタによるエッジ、または、テクスチャの強調の程度を調節することができる。すなわち、係数αは、垂直方向中心画素エネルギＥＶ−ｈの値により動的に変化し、垂直方向中心画素エネルギＥＶ−ｈが小さいと係数αは大きくなり、結果として、図１４に示す１次元垂直フィルタは、画素ｈに強く作用することになり、逆に、垂直方向中心画素エネルギＥＶ−ｈが大きいと係数αは小さくなり、結果として、図１４に示す垂直フィルタは、画素ｈに弱く作用することになる。
【００７８】
ステップＳ３７において、判別比較部１７４は、図１４に示すように、現在処理している画素がエッジであるか、または、テクスチャであるかの判別処理を行う。すなわち、垂直中心画素エネルギＥＶ−ｈは、テクスチャである場合、その値が最小値（ｃ，ｈ，ｍ）に近い値をとり、エッジである場合、その値が最大値（ｃ，ｈ，ｍ）に近い値をとる。そこで、最大値（ｃ，ｈ，ｍ）と最小値（ｃ，ｈ，ｍ）の中間付近に閾値ＥＶ−ｓを設定し、閾値ＥＶ−ｓより垂直中心画素エネルギＥＶ−ｈが大きいとき、エッジであると判別し、逆に、閾値ＥＶ−ｓより垂直中心画素エネルギＥＶ−ｈが小さいとき、テクスチャであると判別する。例えば、垂直中心画素エネルギＥＶ−ｈが閾値ＥＶ−ｓより大きいとき、判別比較部１７４は、注目する処理中の画素が、エッジであると判別し（エッジの表示領域に存在する画素であると判別し）、その処理は、ステップＳ３８に進む。
【００７９】
ステップＳ３８において、判別比較部１７４は、図１４に示すように、フィルタ処理した画素値ｈＶ−ｆｉｌｔｅｒと最大値（ｃ，ｈ，ｍ）を比較し、フィルタ処理した画素値ｈＶ−ｆｉｌｔｅｒが最大値（ｃ，ｈ，ｍ）以上であるか否かを判定し、最大値（ｃ，ｈ，ｍ）以上であると判定した場合、ステップＳ３９において、判別比較部１７４は、画素値ｈＶ−ｆｉｌｔｅｒを最大値（ｃ，ｈ，ｍ）に置き換える。
【００８０】
ステップＳ４０において、判別比較部１７４は、最大値（ｃ，ｈ，ｍ）に置き換えられた画素値を画素ｈの画素値としてバッファ１７ａに記憶させ、その処理は、ステップＳ３１に戻り、全ての画素に１次元垂直エッジ強調処理が施されたと判定されるまで同様の処理が繰り返される。
【００８１】
ステップＳ３４において、垂直方向中心画素エネルギＥＶが、最小値（ｃ，ｈ，ｍ）より大きく、かつ、最大値（ｃ，ｈ，ｍ）未満ではないと判定された場合、すなわち、その画素がエッジか、または、テクスチャでではないと判定された場合、その処理は、ステップＳ４０に進み、判別比較部１７４は、画素ｈの画素値を、フィルタ処理することなく、そのままバッファ１７ａに記憶させ、その処理は、ステップＳ３１に戻り、それ以降の処理が繰り返される。また、ステップＳ３７において、垂直中心画素エネルギＥＶ−ｈが閾値ＥＶ−ｓより小さいとき、判別比較部１７４は、注目する処理中の画素が、テクスチャであると判定し、その処理は、ステップＳ４０に進む。すなわち、テクスチャである場合、判別比較部１７４は、フィルタ処理が施された画素値ｈＶ−ｆｉｌｔｅｒを画素ｈの値としてバッファ１７ａに記憶させる。
【００８２】
ステップＳ３８において、フィルタ処理した画素値ｈＶ−ｆｉｌｔｅｒが最大値（ｃ，ｈ，ｍ）以上ではないと判定した場合、ステップＳ４１において、判別比較部１７４は、フィルタ処理した画素値ｈＶ−ｆｉｌｔｅｒと最小値（ｃ，ｈ，ｍ）を比較し、フィルタ処理した画素値ｈＶ−ｆｉｌｔｅｒが最小値（ｃ，ｈ，ｍ）以下であるか否かを判定し、フィルタ処理した画素値ｈＶ−ｆｉｌｔｅｒが最小値（ｃ，ｈ，ｍ）以下であると判定した場合、その処理は、ステップＳ４２に進む。
【００８３】
ステップＳ４２において、判別比較部１７４は、画素値ｈＶ−ｆｉｌｔｅｒを最小値（ｃ，ｈ，ｍ）に置き換え、ステップＳ４０において、最小値（ｃ，ｈ，ｍ）に置き換えられた画素値を、画素ｈの画素値としてバッファ１７ａに記憶する。
【００８４】
ステップＳ４１において、フィルタ処理した画素値ｈＶ−ｆｉｌｔｅｒが最小値（ｃ，ｈ，ｍ）以下ではないと判定された場合、その処理は、ステップＳ４０に進み、判別比較部１７４は、フィルタ処理された画素値ｈＶ−ｆｉｌｔｅｒを、画素ｈの画素値としてバッファ１７ａに記憶させ、その処理は、ステップＳ３１に戻る。
【００８５】
すなわち、ステップＳ３４の処理で、垂直方向中心画素エネルギＥＶ−ｈが、最小値（ｃ，ｈ，ｍ）より大きく、かつ、最大値（ｃ，ｈ，ｍ）未満である場合、図１４に示すように、ステップＳ３３の処理で求められた最大値（ｃ，ｈ，ｍ）、および、最小値（ｃ，ｈ，ｍ）が、画素ｃ，ｈ，ｍの局所的な範囲の最大値と最小値とみなされ、ステップＳ３６の処理でフィルタ処理して求められた画素値が、その最小値と最大値の範囲に含まれたときは、さらに、ステップＳ３７の処理で、エッジであるかテクスチャであるかが判定され、テクスチャとして判定されると、フィルタ処理した画素値が、そのままバッファ１７ａに記憶させられ、エッジとして判定されると、最小値（ｃ，ｈ，ｍ）以下のときは画素値が最小値に、最大値（ｃ，ｈ，ｍ）以上のときは画素値が最大値にされて（クリッピングされて）、バッファ１７ａに記憶させられる。ステップＳ３４の処理で、垂直方向中心画素エネルギＥＶが、最小値（ｃ，ｈ，ｍ）より大きく、かつ、最大値（ｃ，ｈ，ｍ）未満ではない場合、エッジ、または、テクスチャではないと判定された場合、元の画素値が、フィルタ処理されることもなく、そのままバッファ１７ａに記憶される。
【００８６】
尚、１次元垂直フィルタは、上述のように２種類存在し、図１４に示すＡタイプと、図１５で示すようにＢタイプが存在する。すなわち、Ａタイプでは、式（３）で示したような演算により、フィルタ処理がなされるが、Ｂタイプでは、以下の式（４）に示すような演算がされる。
【００８７】
ｈＶ−ｆｉｌｔｅｒ（ＴｙｐｅＢ）
＝ｃ×（１／４−α／２）＋ｈ×１／２＋α＋ｍ×（１／４−α／２）・・・（４）
【００８８】
尚、係数αは、Ａタイプと同様に、式（２）により設定可能であり、その他の処理も同様であるので、その処理の説明は省略する。
【００８９】
ここで、図１１の処理の説明に戻る。
【００９０】
ステップＳ２２の処理における、１次元垂直イメージリフレッシュ処理が実行されると、続いてステップＳ２３において、１次元水平イメージリフレッシュ処理が実行される。
【００９１】
ここで、図１６のフローチャートを参照して、１次元水平イメージリフレッシュ処理部１８の１次元水平イメージリフレッシュ処理について説明する。
【００９２】
ステップＳ５１において、１次元水平イメージリフレッシュ処理部１８は、１次元垂直イメージリフレッシュ処理部１７により１次元垂直イメージリフレッシュ処理された画像データのうち、処理していない画素があるか否かを判定し、処理していない画素があると判定された場合、その処理は、ステップＳ５２に進む。
【００９３】
ステップＳ５２において、中心画素エネルギ算出部１８１は、未処理画素を検索し、検索された未処理画素の垂直方向中心画素エネルギを算出する。例えば、図１７に示すような画像データが入力され、垂直方向のｙ＋１，ｙ，ｙ−１の各ラインに、画素ａ乃至ｅ、画素ｆ乃至ｊ、および、画素ｋ乃至ｏが配置されているものとするとき、画素ｈの近傍のＡエリア（図中実線で囲まれた範囲）の水平方向中心画素エネルギＥＨ−ｈは、以下の式により求められる。
【００９４】
ＥＶ−ｈ＝｜（ｄ＋ｉ＋ｎ）−（ｂ＋ｇ＋ｌ）｜・・・（５）
【００９５】
ここで、ｂ，ｃ，ｄ，ｌ，ｍ，およびｎは、画素ｂ，ｃ，ｄ，ｌ，ｍ，およびｎの画素値である。すなわち、式（５）の水平方向中心画素エネルギＥＨは、未処理画素を中心とした右のラインと左のラインに存在する画素値の和同士の差分の絶対値である。このため、相関のある画素同士が左右にある場合は、その画素値の差分には、大きな差がないので、水平方向中心画素エネルギも小さくなり、逆に、相関のない画素同士が左右にある場合、その画素値の差分には大きな差が現れることが多く、結果として水平方向中心画素エネルギも大きくなる。
【００９６】
中心画素エネルギ算出部１８１は、未処理画素の水平方向中心画素エネルギＥＨ−ｈを上記の式（５）を演算することにより求める。
【００９７】
ステップＳ５３において、水平最大値最小値検出部１８２は、未処理画素を含めた左右３個の画素の画素値を比較して最大値と最小値を求める。すなわち、例えば、図１７に示すように、未処理画素が画素ｈであった場合、それを含めた上下の画素ｇ，ｈ，ｉ（図１７中の点線で囲まれたＢエリア）の各画素値を読出し、図１８に示すように、その内の最大値（ｇ，ｈ，ｉ）と最小値（ｇ，ｈ，ｉ）を求める。
【００９８】
ステップＳ５４において、判定比較部１８４は、求められた水平方向中心画素エネルギＥＨが、最小値（ｇ，ｈ，ｉ）より大きく、かつ、最大値（ｇ，ｈ，ｉ）未満であるか否かを判定し、最小値（ｇ，ｈ，ｉ）より大きく、かつ、最大値（ｇ，ｈ，ｉ）未満であると判定した場合、すなわち、その画素がエッジか、または、テクスチャであると判定した場合、その処理は、ステップＳ５５に進む。
【００９９】
ステップＳ５５において、水平フィルタ処理部１８３は、水平１次元フィルタを構成する係数αの値を計算する。係数αは、上述の式（２）と同様に、式（６）に示すような計算により求められる。
【０１００】
α＝α０−（ＥＨ−ｈ／ＥＨ−ｈ−ｍａｘ）・・・（６）
【０１０１】
ここで、α０（１＜α０≦２）は、ユーザにより任意に設定される値であり、ＥＨ−ｈ−Ｍａｘは、水平方向中心画素エネルギＥＨ−ｈの最大値である。尚、ここで言う水平中心画素エネルギの最大値ＥＨ−ｈ−ｍａｘは、最大値（ｇ，ｈ，ｉ）とは、異なるものであり、算出され得る最大値を示している。
【０１０２】
ステップＳ５６において、水平フィルタ処理部１８３は、図１７に示すＢエリアの画素ｇ，ｈ，ｉに、図１８に示すような１次元水平フィルタ処理を施す。すなわち、１次元水平フィルタとしては、（１／２−α／２，α，１／２−α／２）（１＜α≦２）といったものであり、例えば、フィルタが上述のタイプＡの場合、以下の式（７）に示すような演算により、フィルタ処理された画素値ｈＨ−ｆｉｌｔｅｒが求められる。
【０１０３】
ｈＨ−ｆｉｌｔｅｒ＝ｇ×（１／２−α／２）＋ｈ×α＋ｉ×（１／２−α／２）・・・（７）
【０１０４】
ここで、係数αは、上述のステップＳ５５の処理で求められた値であり、フィルタによるエッジ、または、テクスチャの強調の程度を調節することができる。すなわち、係数αは、水平方向中心画素エネルギＥＨ−ｈの値により動的に変化し、水平方向中心画素エネルギＥＶ−ｈが小さいと係数αは大きくなり、結果として、図１８に示す１次元水平フィルタは、画素ｈに強く作用することになり、逆に、水平方向中心画素エネルギＥＨ−ｈが大きいと係数αは小さくなり、結果として、図１８に示す垂直フィルタは、画素ｈに弱く作用することになる。
【０１０５】
ステップＳ５７において、判別比較部１８４は、図１８に示すように、現在処理している画素がエッジであるか、または、テクスチャであるかを判定する。すなわち、水平中心画素エネルギＥＨ−ｈは、テクスチャである場合、その値が最小値（ｇ，ｈ，ｉ）に近い値をとり、エッジである場合、その値が最大値（ｇ，ｈ，ｉ）に近い値をとる。そこで、最大値（ｇ，ｈ，ｉ）と最小値（ｇ，ｈ，ｉ）の中間付近に閾値ＥＨ−ｓを設定し、閾値ＥＨ−ｓより水平中心画素エネルギＥＨ−ｈが大きいとき、エッジであると判別し、逆に、閾値ＥＨ−ｓより水平中心画素エネルギＥＨ−ｈが小さいとき、テクスチャであると判別する。例えば、水平中心画素エネルギＥＨ−ｈが閾値ＥＨ−ｓより大きいとき、判別比較部１８４は、注目する処理中の画素が、エッジであると判定し（エッジの表示領域に存在する画素であると判別し）、その処理は、ステップＳ５８に進む。
【０１０６】
ステップＳ５８において、判別比較部１８４は、図１８に示すように、フィルタ処理した画素値ｈＨ−ｆｉｌｔｅｒと最大値（ｇ，ｈ，ｉ）を比較し、フィルタ処理した画素値ｈＨ−ｆｉｌｔｅｒが最大値（ｇ，ｈ，ｉ）以上であるか否かを判定し、最大値（ｇ，ｈ，ｉ）以上であると判定した場合、ステップＳ５９において、判別比較部１８４は、画素値ｈＨ−ｆｉｌｔｅｒを最大値（ｇ，ｈ，ｉ）に置き換える。
【０１０７】
ステップＳ６０において、判別比較部１８４は、最大値（ｇ，ｈ，ｉ）に置き換えられた画素値を画素ｈの画素値としてバッファ１８ａに記憶させ、その処理は、ステップＳ５１に戻り、全ての画素に１次元垂直エッジ強調処理が施されたと判定されるまで同様の処理が繰り返される。
【０１０８】
ステップＳ５４において、水平方向中心画素エネルギＥＨが、最小値（ｇ，ｈ，ｉ）より大きく、かつ、最大値（ｇ，ｈ，ｉ）未満ではないと判定された場合、すなわち、その画素がエッジか、または、テクスチャでではないと判定された場合、その処理は、ステップＳ６０に進み、判別比較部１８４は、画素ｈの画素値を、フィルタ処理することなく、そのままバッファ１８ａに記憶させ、その処理は、ステップＳ５１に戻り、それ以降の処理が繰り返される。また、ステップＳ５７において、水平中心画素エネルギＥＨ−ｈが閾値ＥＨ−ｓより小さいとき、１次元水平イメージリフレッシュ処理部１８は、注目する処理中の画素が、テクスチャであると判定し、その処理は、ステップＳ６０に進む。すなわち、テクスチャである場合、判別比較部１８４は、フィルタ処理が施された画素値ｈＨ−ｆｉｌｔｅｒを画素ｈの値としてバッファ１８ａに記憶させる。
【０１０９】
ステップＳ５８において、フィルタ処理した画素値ｈＨ−ｆｉｌｔｅｒが最大値（ｇ，ｈ，ｉ）以上ではないと判定した場合、ステップＳ６１において、判別比較部１８４は、フィルタ処理した画素値ｈＨ−ｆｉｌｔｅｒと最小値（ｇ，ｈ，ｉ）を比較し、フィルタ処理した画素値ｈＨ−ｆｉｌｔｅｒが最小値（ｇ，ｈ，ｉ）以下であるか否かを判定し、フィルタ処理した画素値ｈＨ−ｆｉｌｔｅｒが最小値（ｇ，ｈ，ｉ）以下であると判定した場合、その処理は、ステップＳ６２に進む。
【０１１０】
ステップＳ６２において、判別比較部１８４は、画素値ｈＨ−ｆｉｌｔｅｒを最小値（ｇ，ｈ，ｉ）に置き換え、ステップＳ６０において、最小値（ｇ，ｈ，ｉ）に置き換えられた画素値を、画素ｈの画素値としてバッファ１８ａに記憶する。
【０１１１】
ステップＳ６１において、フィルタ処理した画素値ｈＨ−ｆｉｌｔｅｒが最小値（ｇ，ｈ，ｉ）以下ではないと判定した場合、その処理は、ステップＳ６０に進み、判別比較部１８４は、フィルタ処理された画素値ｈＨ−ｆｉｌｔｅｒを、画素ｈの画素値としてバッファ１８ａに記憶させ、その処理は、ステップＳ５１に戻る。
【０１１２】
すなわち、ステップＳ５４の処理で、水平方向中心画素エネルギＥＨが、最小値（ｇ，ｈ，ｉ）より大きく、かつ、最大値（ｇ，ｈ，ｉ）未満である場合、図１６に示すように、ステップＳ５３の処理で求められた最大値（ｇ，ｈ，ｉ）、および、最小値（ｇ，ｈ，ｉ）が、画素ｇ，ｈ，ｉの局所的な範囲の最大値と最小値とみなされ、ステップＳ５６の処理でフィルタ処理して求められた画素値が、その最小値と最大値の範囲に含まれたときは、さらに、ステップＳ５７の処理で、エッジであるかテクスチャであるかが判定され、テクスチャとして判定されると、フィルタ処理した画素値が、そのままバッファ１８ａに記憶させられ、エッジとして判定されると、最小値（ｇ，ｈ，ｉ）以下のときは画素値が最小値に、最大値（ｇ，ｈ，ｉ）以上のときは画素値が最大値にされて（クリッピングされて）、バッファ１８ａに記憶させられる。ステップＳ５４の処理で、垂直方向中心画素エネルギＥＨが、最小値（ｇ，ｈ，ｉ）より大きく、かつ、最大値（ｇ，ｈ，ｉ）未満ではない場合、エッジ、または、テクスチャではないと判定されたとき、元の画素値が、フィルタ処理されることもなく、そのままバッファ１８ａに記憶される。
【０１１３】
尚、１次元水平フィルタは、上述のように２種類存在し、図１８に示すＡタイプと、図１９で示すようにＢタイプが存在する。すなわち、Ａタイプでは、式（７）で示したような演算により、フィルタ処理がなされるが、Ｂタイプでは、以下の式（８）に示すような演算がされる。
【０１１４】
ｈＨ−ｆｉｌｔｅｒ（ＴｙｐｅＢ）＝ｇ×（１／４−α／２）＋ｈ×１／２＋α＋ｉ×（１／４−α／２）・・・（８）
【０１１５】
ここで、αの設定は、Ａタイプと同様に、式（６）により設定可能であり、その他の処理も同様であるので、その処理の説明は省略する。
【０１１６】
ここで、図１１の処理の説明に戻る。
【０１１７】
ステップＳ２３において、１次元水平イメージリフレッシュ処理が実行されると、続いて、ステップＳ２４において、高速垂直アップサンプリング処理を実行する。この高速垂直アップサンプリング処理は、例えば、図２０に示されるように、画像入力部１より入力された原画像の画素数を垂直方向に拡大する処理を意味する。この高速垂直アップサンプリング処理は、高速垂直アップサンプリング処理部１２により実行される。
【０１１８】
ここで、図２１のフローチャートを参照して、高速垂直アップサンプリング処理に付いて説明する。高速垂直アップサンプラ１１１は、最初にステップＳ７１において、Ｈバッファ３１（後述する図２３）と２Ｙバッファ４１（後述する図３３）を作成する。画像入力部１より入力された原画像（Ｉ＿ｉｍａｇｅ）のサイズが、Ｉｎ＿ｗｉｄｔｈ×Ｉｎ＿ｈｅｉｇｈｔである場合、Ｈバッファ３１のサイズは、Ｉｎ＿ｗｉｄｔｈ×（ａｌｐｈａ＿Ｚ×Ｉｎ＿ｈｅｉｇｈｔ）となる。ここで、ａｌｐｈａ＿Ｚは、原画像を垂直方向に拡大する倍率を表し、今の場合、高速垂直アップサンプリングであるので、その値は１より大きく、２より小さい値である（ステップＳ３，Ｓ４）。
【０１１９】
２Ｙバッファ４１は、サイズがＩｎ＿ｗｉｄｔｈ×１とされる。この２Ｙバッファ４１には、補間された画素が一次的に格納される。
【０１２０】
次に、ステップＳ７２において、高速垂直アップサンプリング処理部１２は、ケース１乃至ケース３に対応する処理を実行する。
【０１２１】
このケース１乃至ケース３の処理は、Ｈバッファ３１のＹ行の補間データを生成する処理である。Ｙ行の補間データが、ケース１乃至ケース３のいずれの処理により生成されるかは、次のように決定される。
【０１２２】
すなわち、本実施の形態においては、原画像Ｉ＿ｉｍａｇｅを垂直方向に２倍に拡大した画像としての仮想垂直２倍拡大画像２Ｙ＿ｉｍａｇｅが想定される。Ｈバッファ３１に格納する画像は、原画像Ｉ＿ｉｍａｇｅを垂直方向にａｌｐｈａ＿Ｚ倍した画像であるから、仮想垂直２倍拡大画像２Ｙ＿ｉｍａｇｅの行を２Ｙ＿ｌｉｎｅとし、Ｈバッファ３１に格納する画像の行をＹとすると、次の比例式が成立する。
【０１２３】
Ｙ：２Ｙ＿ｌｉｎｅ＝ａｌｐｈａ＿Ｚ：２・・・（９）
この式（９）を整理すると、次式が得られる。
【０１２４】
２Ｙ＿ｌｉｎｅ＝Ｙ×２／ａｌｐｈａ＿Ｚ・・・（１０）
【０１２５】
上記の式（１０）より計算された値２Ｙ＿ｌｉｎｅが整数且つ偶数である場合（２Ｙ＿ｌｉｎｅ＝２ｎであり、ｎが整数である場合）、Ｙ行の補間データは、ケース１の処理で生成される。値２Ｙ＿ｌｉｎｅが整数且つ奇数である場合（２Ｙ＿ｌｉｎｅ＝２ｎ＋１であり、ｎが整数である場合）、Ｙ行の補間データは、ケース２の処理で生成される。その他の場合、すなわち値２Ｙ＿ｌｉｎｅが実数である場合、Ｙ行の補間データは、ケース３の処理で生成される。
【０１２６】
ケース１の場合、図２２のフローチャートに示す処理が実行される。すなわち、ケース１の場合、Ｈバッファ３１の行Ｙの値を、原画像Ｉ＿ｉｍａｇｅ中の所定の行の値（２Ｙ＿ｌｉｎｅ／２＝ｎ）と対応させることができる。このため、ステップＳ８１において、高速垂直アップサンプラ１１１は、原画像Ｉ＿ｉｍａｇｅの２Ｙ＿ｌｉｎｅ／２行をＨバッファ３１のＹ行にそのままコピーする。
【０１２７】
図２３は、この場合の処理を模式的に表している。すなわち、ケース１の場合、Ｈバッファ３１の行Ｙの値が原画像Ｉ＿ｉｍａｇｅの行ｎの値と等しいため、原画像のｎ（＝２Ｙ＿ｌｉｎｅ／２）行がＨバッファ３１のＹ行にそのままコピーされる。
【０１２８】
次に、図２４のフローチャートを参照して、ケース２の場合の処理について説明する。このケース２の場合、（２ｎ＋１）／２の値は整数ではないので、Ｈバッファ３１の行Ｙの値を、原画像Ｉ＿ｉｍａｇｅ中の所定の行の値に対応させることができない。しかしながら、仮想垂直２倍拡大画像２Ｙ＿ｉｍａｇｅ中の所定の行（２ｎ＋１）とは、対応させることができる。
【０１２９】
そこで、この場合、ステップＳ９１において、高速垂直アップサンプラ１１１は、原画像Ｉ＿ｉｍａｇｅ中の所定の範囲（Ｎ画素）の上行ｕｐ＿ｌｉｎｅと下行ｄｏｗｎ＿ｌｉｎｅの画素を抽出する。Ｎの値は可変とされる。従って、上行ｕｐ＿ｌｉｎｅの中心座標は、（Ｘ＋Ｎ／２，ｎ）となり、下行ｄｏｗｎ＿ｌｉｎｅの中心座標は、（Ｘ＋Ｎ／２，ｎ＋１）となる。
【０１３０】
次にステップＳ９２において、垂直方向補間部１１２のエッジ検出部１２２は、帯域制限部１２１により帯域制限された信号に基づいて、局所エネルギＥ（Ｎ）を、次式より算出する。
【０１３１】
Ｅ（Ｎ）＝Σ（Ｉ＝０，Ｎ−１）ＡＢＳ（ｕｐ＿ｌｉｎｅ（Ｉ）−ｄｏｗｎ＿ｌｉｎｅ（Ｎ−Ｉ−１））・・・（１１）
【０１３２】
上記の式（１１）の計算は、ｕｐ＿ｌｉｎｅの個々の画素から対角線上に位置するｄｏｗｎ＿ｌｉｎｅの画素を減算し、その絶対値のＩが０からＮ−１までの和を積算することを示している。
【０１３３】
図２５は、局所エネルギＥ（Ｎ）の計算の例を表している。同図に示されるように、上行ｕｐ＿ｌｉｎｅの画素と、下行ｄｏｗｎ＿ｌｉｎｅの画素のうち、対角線上に位置する上の画素から下の画素の画素値が減算され、その差の絶対値の和が局所エネルギＥ（Ｎ）とされる。図２５の例では、画素Ｙ０，０の値（３０）から、画素Ｙ１，４の値（２５５）が減算される。また画素Ｙ０，１の画素値（１５０）から、画素Ｙ１，３の画素値（２３０）が減算される。以下同様に、画素Ｙ０，２の画素値（１５０）から画素Ｙ１，２の画素値（２００）が減算され、画素Ｙ０，３の画素値（２００）から画素Ｙ１，１の画素値（２００）が減算され、画素Ｙ０，４の画素値（２５５）から、画素Ｙ１，０の画素値（３０）が減算される。そしてそれぞれの差分の絶対値の和が局所エネルギとされる。
【０１３４】
ステップＳ９３において、エッジ検出部１２２は、局所エネルギＥ（Ｎ）が予め設定されている所定の閾値Ｔより大きいか否かを判定する。局所エネルギＥ（Ｎ）が閾値Ｔと等しいか、それより小さい場合、その領域は、エッジを含まない平坦な低エネルギの領域と見なされる。この場合、潜在的エッジの方向を計算する必要がない。このため、ステップＳ９４に進み、方向判別部１２３が、エッジ検出部１２２の判定結果に基づいて、方向補間部１３１に、Ｈバッファ３１中の座標（Ｘ＋Ｎ／２，Ｙ）の画素データとして、隣接する上行中心画素ｕｐ＿ｌｉｎｅ（Ｎ／２）と、隣接する下行中心画素ｄｏｗｎ＿ｌｉｎｅ（Ｎ／２）の平均値を演算し、Ｈバッファ３１のその座標（Ｘ＋Ｎ／２，Ｙ）に格納すると共に、垂直方向（後述する図３１におけるＬ２の方向）を示す方向情報を信頼度格付部１２４、および、方向性分布生成部１２５に出力する。また、信頼度格付部１２４は、この補間画素について信頼度が低いことを示す０を方向性分布生成部１２５に出力する。すなわち、ステップＳ９４においては、次の式に基づいて、標準的な線形補間処理が行われる。
【０１３５】
Ｈ＿ｂｕｆｆｅｒ（Ｘ＋Ｎ／２，Ｙ）＝０．５×（ｕｐ＿ｌｉｎｅ（Ｎ／２）＋ｄｏｗｎ＿ｌｉｎｅ（Ｎ／２））・・・（１２）
【０１３６】
一方、ステップＳ９３において、局所エネルギＥ（Ｎ）の値が閾値Ｔより大きいと判定された場合、その領域は、潜在的エッジを含んだ高エネルギ領域と見なされる。このとき、ステップＳ９５において、垂直方向補間部１１２の方向判別部１２３は、帯域制限部１２１により帯域制限された画像信号に基づいて、エッジ方向を試験的に計算する処理を実行し、検出した方向の情報を信頼度格付部１２４、および、方向性分布生成部１２５に出力すると共に、検出した画素の情報を方向補間部１３１に出力する。具体的には、以下に示す演算は、ｘ＝Ｎ−１からｘをデクリメントし、ｘが−１より大きい間は行われる。
【０１３７】
Ｅｎｅｒｇｙ＝ＡＢＳ（ｕｐ＿ｌｉｎｅ（Ｎ−ｘ−１）−ｄｏｗｎ＿ｌｉｎｅ（ｘ））・・・（１３）
【０１３８】
上記の式（１３）で計算されたエネルギの値のうち、最も小さいものが選択され、その２つの画素が対応する対角線の方向が局所的なエッジの方向と見なされる。
【０１３９】
図２６は、この場合の具体的な例を表している。この例においては、画素Ｙ０，０の画素値（３０）と、画素Ｙ１，４の画素値（２５５）との差、画素Ｙ０，１の画素値（１５０）と、画素Ｙ１，３の画素値（２３０）との差、画素Ｙ０，２の画素値（１５０）と、画素Ｙ１，２の画素値（２００）との差、画素Ｙ０，３の画素値（２００）と、画素Ｙ１，１の画素値（２００）との差、および画素Ｙ０，４の画素値（２５５）と、画素Ｙ１，０の画素値（３０）との差が、それぞれ演算される。そしてそれらの値の絶対値のうち、最も小さい値（この例の場合、画素Ｙ０，３と画素Ｙ１，１を結ぶ方向）が局所的なエッジ方向と見なされる。
【０１４０】
図２７は、Ｈバッファ３１に保持されている上行ｕｐ＿ｌｉｎｅの３画素と下行ｄｏｗｎ＿ｌｉｎｅの３画素との差から局所的なエッジ方向が推測される例を表している。図２７の例においては、Ｎの値が３とされているが、このＮの値としてより大きな値を用いることで、より正確に、かつより多くの方向のエッジの検出が可能となる。
【０１４１】
ステップＳ９５の処理で、エッジ方向が検出された場合、さらにステップＳ９６において、方向補間部１３１は、その検出されたエッジ方向の画素を用いて、補間処理を行う（方向補間処理が行われる）。この方向補間処理は、エッジ方向に対応する２つの画素の画素値に基づいて、その間に位置する画素の画素値を補間することを意味する。例えば、図２６の例では、画素Ｙ０，３と画素Ｙ１，１の画素値の平均値（２００）が、両者の間の画素の画素値とされる。
【０１４２】
次に、ステップＳ９７に進み、信頼度格付部１２４は、構造コレクタ処理を実行する。この構造コレクタ処理は、座標（Ｘ＋Ｎ／２，Ｙ）に補間された画素と、その垂直の近傍画素、すなわち座標ｕｐ＿ｌｉｎｅ（Ｎ／２）と、座標ｄｏｗｎ＿ｌｉｎｅ（Ｎ／２）との関係を解析することで、更新された局所構造（ステップＳ９６の方向補間処理で生成された画素とその上下の画素）の整合性をチェックする処理である。
【０１４３】
すなわち、この構造コレクタ処理では、上行の中心画素から更新された画素を減算する処理が行われ、さらに、更新された画素から下行の中心画素を減算する処理が行われる。さらに、以上のようにして得られた２つの減算結果を乗算することで、垂直方向の変化を表す値Ｖ（Ｎ／２）が計算される。すなわち、ステップＳ９６においては、次の式で示す演算が行われる。
【０１４４】
Ｖ（Ｎ／２）＝（ｕｐ＿ｌｉｎｅ（Ｎ／２）−Ｈ−ｂｕｆｆｅｒ（Ｘ＋Ｎ／２，Ｙ））×（Ｈ−ｂｕｆｆｅｒ（Ｘ＋Ｎ／２，Ｙ）−ｄｏｗｎ＿ｌｉｎｅ（Ｎ／２））・・・（１４）
【０１４５】
次に、ステップＳ９８において、信頼度格付部１２４は、ステップＳ９７での演算結果に基づいて、更新された局所構造の整合性があるか否かを判定する。この判定は、上記式（１４）で演算された値Ｖ（Ｎ／２）が正であるか否かに基づいて行われる。値Ｖ（Ｎ／２）が正である場合には、整合性があると見なされ、ステップＳ９９において、信頼度格付部１２４は、その補間画素の信頼度を１として方向性分布生成部１２５に出力する。
【０１４６】
これに対して、ステップＳ９８において、値Ｖ（Ｎ／２）が負であると判定された場合、整合性はないと見なされる。すなわち、局所方向の識別が誤っており、ステップＳ９６で生成された画素値は、適切でないと判断される。この場合、信頼度格付部１２４は、ステップＳ１００において、その補間画素の信頼度を０として方向性分布生成部１２５に出力する。
【０１４７】
ステップＳ１０１において、注目画素に対する注目領域の全ての補間画素が補間されたか否かが判定され、注目領域の全ての補間画素が補間されていないと判定された場合、その処理は、ステップＳ９１に戻り、全ての補間画素が補間されるまで、ステップＳ９１乃至Ｓ１０１の処理が繰り返され、ステップＳ１０１において、全ての補間画素が補間されたと判定された場合、その処理は、ステップＳ１０２に進む。ここで、注目画素に対する注目領域とは、例えば、図２８でしめすＰ（画素数）×Ｍ（ライン）の範囲の補間画素である。尚、図２８においては、白丸が注目画素（補間画素）を、黒丸が補間画素を、格子状に塗りつぶされた画素を原画像の画素（元々存在する画素）として示している。ステップＳ１０１において、全ての補間画素が補間されるということは、図中の黒丸で示される画素が全て補間されたことを示し、その処理は、ステップＳ１０２に進む。
【０１４８】
ステップＳ１０２において、方向選択処理が実行される。
【０１４９】
ここで、図２９のフローチャートを参照して、方向選択処理について説明する。
【０１５０】
ステップＳ１１１において、方向性分布生成部１２５は、方向性分布を生成する。すなわち、方向性分布生成部１２５は、これまで入力されたエッジの方向と、その信頼度の情報から、方向性分布を生成する。すなわち、方向性分布生成部１２５には、図３０で示すように、補間画素の配置に対応して、それぞれの補間画素の補間方向と対応する信頼度の情報が入力されていることになる。
【０１５１】
尚、図２８においては、図中５画素×３ラインの補間画素が表示されているので、図３０の左部には、この対応する１５個の補間画素の配置が表示されている。また、図３０の中央部には、各補間画素の補間方向が示されている。この補間画素の方向は、図３１で示すように、注目画素について点対象となるように設定された方向に対応する番号であり、方向Ｌ０は、上段左端の補間画素と下段右端の補間画素を結ぶ垂直な直線上の方向であり、方向Ｌ１は、上段左から２番目の補間画素と下段右から２番目の補間画素を結ぶ直線上の方向であり、方向Ｌ２は、真上の補間画素と真下の補間画素を結ぶ直線上の方向であり、方向Ｌ３は、上段右から２番目の補間画素と下段左から２番目の補間画素を結ぶ直線上の方向であり、方向Ｌ４は、上段右端の補間画素と下段左端の補間画素を結ぶ直線上の方向である。また、図３０の右部には、信頼度の分布が示されており、信頼度として１が報告された画素は、○に、信頼度として０が報告された画素には×が表示されている。
【０１５２】
すなわち、図３０によれば、補間画素の補間方向は、上段の左から４，３，４，４，３であり、中段の左から３，４，４，３，４であり、下段の左から４，４，４，４，４であることが示されている。また、信頼度は、上段の左から×，×，○，○，×であり、中断の左から、○，○，×，○，○であり、下段の左から○，○，○，○，×である。
【０１５３】
この結果、方向性分布生成部１２５は、図３２で示すように、各方向別につけられている○の数を示すヒストグラムからなる方向性分布を生成することにより、方向別の分布を示すことができる。すなわち、図３２においては、方向Ｌ０は、○が０個、×が０個、方向Ｌ１は、○が０個、×が０個、方向Ｌ２は、○が０個、×が０個、方向Ｌ３は、○が２個、×が２個、方向Ｌ４は、○が８個、×が３個となる。
【０１５４】
ステップＳ１１２において、方向選択部１２６は、これらの方向性分布（補間方向と、対応する信頼度の分布）から以下のＢａｌａｎｃｅ関数を設定する。
【０１５５】
すなわち、まず、方向選択部１２６は、以下の式（１５）で示す注目画素（Ｘ，Ｙ）に対応するＢａｌａｎｃｅ関数を設定する。
【０１５６】
2004153668.tif 000003
【０１５７】
Ｐｏｐｕｌａｔｉｏｎ（ＬＩ）は、方向ＬＩ毎に信頼度があることを示す画素の個数の示す関数であり、Σは、総和と求めることを示し、（Ｉ＝（Ｎ＋１）／２，Ｎ−１）、または、（Ｉ＝  ０，（Ｎ−３）／２）は、総和を求めるＩの範囲を示している。Ｎは、設定された方向の数を示す。従って、図３１においては、方向Ｌ０乃至Ｌ４であるのでＮ＝５となる。
【０１５８】
ステップＳ１１３において、方向選択部１２６は、Ｂａｌａｎｃｅ（Ｘ，Ｙ）が正の値であるか否かを判定し、例えば、正の値であると判定した場合、ステップＳ１１４において、図３１で定義する方向ＬＩのうち、Ｉが、Ｉ＝（Ｎ＋１）／２からＮ−１の範囲の中で最も信頼度の高い方向を選択する。
【０１５９】
一方、ステップＳ１１３において、正の値ではないと判定された場合、ステップＳ１１５において、図３１で定義する方向ＬＩのうち、Ｉが、Ｉ＝０から（Ｎ−３）／２の範囲の中で最も信頼度の高い方向を選択する。
【０１６０】
すなわち、式（１５）で定義される関数は、方向を垂直方向を中心として、方向を示す矢印の上端の位置を方向Ｌ２で左右に分けた場合、左右のどちら側に信頼性の傾向があるかを示すものであり、例えば、図３１で定義する方向Ｌ０とＬ１のグループ全体の信頼性と、方向Ｌ３，Ｌ４のグループ全体の信頼性のそれぞれの和をとった値の差分をステップＳ１１４の処理により、求めて、その大小比較から、垂直方向に対して左右のどちらに傾いているかを求め、信頼性の傾向を示すグループの中から、最も信頼性の高い方向が選択されるようになっている。
【０１６１】
ステップＳ１１６において、方向選択部１２６は、最も信頼性の高い方向が複数に存在するか否かを判定し、例えば、複数の存在する場合、ステップＳ１１７において、選択された複数の最も信頼性の高い方向の中から、最も垂直方向に近い方向を選択する。一方、ステップＳ１１６において、最も信頼性の高い方向が複数に存在しない場合は、ステップＳ１１７の処理がスキップされて、ステップＳ１１４またはＳ１１５の処理で選択された方向がそのまま選択される。すなわち、信頼性の程度が同じ方向があった場合は、垂直方向に近いものが選択される。
【０１６２】
ステップＳ１１８において、方向選択部１２６は、例外条件に含まれるか否かを判定する。すなわち、方向選択部１２６は、以下の式（１６）乃至式（１８）のいずれかを満たす場合、例外であると判定し、ステップＳ１１９において、垂直方向（図３１の方向Ｌ２）を選択する。
【０１６３】
Ｐｏｐｕｌａｔｉｏｎ＿ＬＩ（Ｉ＝（Ｎ−１）／２）−Ｐｏｐｕｌａｔｉｏｎ（Ｂｅｓｔ＿Ｄｉｒ）≧−１・・・（１６）
Ｔｅｎｄｅｎｃｙ（Ｘ，Ｙ）＜（ＰＭ）／３・・・（１７）
Ｔｏｔａｌ＿  Ｐｏｐｕｌａｔｉｏｎ（Ｘ，Ｙ）＜（ＰＭ）／３・・・（１８）
【０１６４】
ここで、Ｐｏｐｕｌａｔｉｏｎ＿ＬＩ（Ｉ＝（Ｎ−１）／２）は、垂直方向の信頼度であり、Ｐｏｐｕｌａｔｉｏｎ（Ｂｅｓｔ＿Ｄｉｒ）は、ステップＳ１１１乃至Ｓ１１７の処理で選択された方向の信頼度である。または、Ｔｅｎｄｅｎｃｙ（Ｘ，Ｙ）（以下、Ｔｅｎｄｅｎｃｙ関数とも称する）は、Ｂａｌａｎｃｅ関数が正の場合は、Σ（Ｉ＝（Ｎ＋１）／２，Ｎ−１）（Ｐｏｐｕｌａｔｉｏｎ（ＬＩ））を示し、負の場合は、Σ（Ｉ＝  ０，（Ｎ−３）／２）（Ｐｏｐｕｌａｔｉｏｎ（ＬＩ））を示す。すなわち、方向を垂直方向に左右のグループに分けたときの信頼性の高いグループの信頼度の和である。Ｔｏｔａｌ＿  Ｐｏｐｕｌａｔｉｏｎ（Ｘ，Ｙ）は、注目画素が（Ｘ，Ｙ）の時の信頼度の和である。
【０１６５】
すなわち、式（１６）が満たされる場合、ステップＳ１１１乃至Ｓ１１７の処理で選択された方向の信頼度よりも垂直方向の信頼度の方が高いことになるので、垂直方向の方がより信頼度の高い方向の選択となる。また、式（１７），式（１８）が満たされる場合、信頼性の高いグループの信頼度の和が所定の閾値である（ＰＭ）／３よりも小さいことになるので、全体として比較できる精度の画素がなかったものと判断して、垂直方向を選択する。尚、閾値（ＰＭ）／３は、他の値に設定するようにしてもよい。
【０１６６】
ステップＳ１２０において、方向選択部１２６は、選択された方向の情報を斜補間部１２８に出力する。
【０１６７】
すなわち、図３２の場合、Ｂａｌａｎｃｅ関数は、正となる（ステップＳ１１３の処理）ので、方向Ｌ３，Ｌ４のグループから最も信頼性の高い方向として方向Ｌ４が選択されることになる。また、方向Ｌ４と同じ信頼性のものは無く、さらに、例外条件に当たらないので、方向Ｌ４が選択されることになる。
【０１６８】
ここで、図２４のフローチャートの説明に戻る。
【０１６９】
ステップＳ１０３において、線形補間部１２７は、注目画素に対して垂直方向の上下に存在する画素間の平均画素値を線形補間画素として求めて合成部１３０に出力し、同時に、斜補間部１２８は、方向選択部１２６より入力された選択された方向に存在する画素間の平均画素値を斜補間画素値として合成部に出力する。
【０１７０】
すなわち、図３２の場合、方向Ｌ４が選択されるので、図３１のように注目画素が存在する場合、斜補間部１２８は、図３１の上段のライン上にある右端の画素と、下段のライン上にある左端の画素の平均画素値を斜補間画素値として出力することになる。
【０１７１】
ステップＳ１０４において、斜重み付け部１２９は、以下の式（１９）で示すように、注目画素（Ｘ，Ｙ）の斜方向の重みｗｅｉｇｈｔ＿ｓｌａｎｔ（Ｘ，Ｙ）を設定し、合成部１３０に出力する。
【０１７２】
ｗｅｉｇｈｔ＿ｓｌａｎｔ（Ｘ，Ｙ）＝ＡＢＳ（Ｂａｌａｎｃｅ（Ｘ，Ｙ））／Ｔｏｔａｌ＿ｐｏｐｕｌａｔｉｏｎ（Ｘ，Ｙ）（或いは、ｗｅｉｇｈｔ＿ｓｌａｎｔ（Ｘ，Ｙ）＝ＡＢＳ（Ｔｅｎｄｅｎｃｙ（Ｘ，Ｙ））／Ｔｏｔａｌ＿ｐｏｐｕｌａｔｉｏｎ（Ｘ，Ｙ））・・・（１９）
【０１７３】
すなわち、斜方向の重みは、全信頼度に対するＢａｌａｎｃｅ関数（或いは、Ｔｅｎｄｅｎｃｙ関数）の絶対値の割合として設定される。
【０１７４】
ステップＳ１０５において、合成部１３０は、以下の式（２０）の演算により、線形補間部１２７より入力された線形補間画素と斜補間画素とを重み付けして合成し、補間画素として出力する。
【０１７５】
Ｈ＿ｂｕｆｆｅｒ（Ｘ，Ｙ）＝（１−  ｗｅｉｇｈｔ＿ｓｌａｎｔ（Ｘ，Ｙ））×（ｈ−ｂｕｆｆｅｒ（Ｘ，Ｙ−１）＋  ｈ−ｂｕｆｆｅｒ（Ｘ，Ｙ＋１））＋  ｗｅｉｇｈｔ＿ｓｌａｎｔ（Ｘ，Ｙ）×（ｈ−ｂｕｆｆｅｒ（Ｘ＋Ｂｅｓｔ＿Ｄｉｒ−（Ｎ−１）  ／２，Ｙ−１）＋  ｈ−ｂｕｆｆｅｒ（Ｘ−Ｂｅｓｔ＿Ｄｉｒ−（Ｎ−１）  ／２，Ｙ＋１）・・・（２０）
【０１７６】
ここで、ｈ−ｂｕｆｆｅｒ（Ｘ，Ｙ−１）と  ｈ−ｂｕｆｆｅｒ（Ｘ，Ｙ＋１）は、注目画素の上下に存在する画素値であり、ｈ−ｂｕｆｆｅｒ（Ｘ＋Ｂｅｓｔ＿Ｄｉｒ−（Ｎ−１）／２，Ｙ−１）と  ｈ−ｂｕｆｆｅｒ（Ｘ−Ｂｅｓｔ＿Ｄｉｒ−（Ｎ−１）  ／２，Ｙ＋１）は、注目画素からみて選択された方向の対角線上で、かつ、上下のライン上に存在する画素値である。
【０１７７】
すなわち、線形補間画素にかかる重みは、（１−  ｗｅｉｇｈｔ＿ｓｌａｎｔ（Ｘ，Ｙ））で表現できるので、線形補間で求められた画素値には、線形補間に係る重みとして（１−  ｗｅｉｇｈｔ＿ｓｌａｎｔ（Ｘ，Ｙ））を乗じ、斜補間画素にかかる重みとしてｗｅｉｇｈｔ＿ｓｌａｎｔ（Ｘ，Ｙ）が乗じられて、線形和をとった合成補間画素を最終的な補間画素とする。これにより、垂直方向と斜方向の補間が、その重みによりバランスよく合成されるため、正確な補間画素を生成することが可能となる。
【０１７８】
Ｈバッファ３１の個々の未知の行の各画素を求めるため、同様の処理が繰り返し実行される。
【０１７９】
図３３は、図２４のフローチャートで示されるケース２の場合の処理を、原画像Ｉ＿ｉｍａｇｅ、Ｈバッファ３１、２Ｙバッファ４１、および仮想垂直２倍拡大画像２Ｙ＿ｉｍａｇｅの関係から表している。Ｈバッファ３１のＹ行が仮想垂直２倍拡大画像２Ｙ＿ｉｍａｇｅの所定の行２Ｙ＿ｌｉｎｅと所定の関係にある場合には、原画像Ｉ＿ｉｍａｇｅのｎ行と、ｎ＋１行に基づいて、方向補間処理が行われ、得られたデータは２Ｙバッファ４１に格納される。そして、２Ｙバッファ４１に格納されたデータがＨバッファ３１の行Ｙにコピー（格納）される。
【０１８０】
次に、図３４のフローチャートを参照して、ケース３の処理について説明する。このケースは、２ｎ＜２Ｙ＿ｌｉｎｅ＜２ｎ＋１、または、２ｎ−１＜２Ｙ＿ｌｉｎｅ＜２ｎの場合、つまり、Ｈバッファ３１中の行Ｙの値が、仮想垂直２倍拡大画像２Ｙ＿ｉｍａｇｅの行２Ｙ＿ｌｉｎｅのいずれにも対応せず、かつ、原画像Ｉ＿ｉｍａｇｅのどの行とも対応しない場合である。
【０１８１】
この場合、ステップＳ１３１において、高速垂直アップサンプラ１１１は、２Ｙ＿ｌｉｎｅの値が２ｎより大きく、且つ２ｎ＋１より小さいか否かを判定する。２Ｙ＿ｌｉｎｅの値が２ｎより大きく、且つ２ｎ＋１より小さい場合、高速垂直アップサンプラ１１１は、仮想垂直２倍拡大画像２Ｙ＿ｉｍａｇｅの２ｎ＋１行と２ｎ行から、Ｈバッファ３１のＹ行を生成する。
【０１８２】
そこで、この場合、ステップＳ１３２において、高速垂直アップサンプラ１１１は、仮想垂直２倍拡大画像２Ｙ＿ｉｍａｇｅの２ｎ＋１行を、隣接する上行２ｎ行と、下行２ｎ＋２行（原画像Ｉ＿ｉｍａｇｅにおけるｎ行とｎ＋１行）を用いて、図２４のケース２のフローチャートに示すステップＳ９１乃至ステップＳ１０５の処理で計算する。ステップＳ１３２で計算された結果は、Ｈバッファ３１における次のｎ＋１行の計算に使用する可能性があるので、ステップＳ１３３において、２Ｙバッファ４１に格納される。
【０１８３】
さらに、ステップＳ１３４において、高速垂直アップサンプラ１１１は、ステップＳ１３２で計算された２ｎ＋１行（２Ｙバッファ４１に記憶されている値）と、仮想垂直２倍拡大画像２Ｙ＿ｉｍａｇｅの２ｎ行（原画像Ｉ＿ｉｍａｇｅのｎ行）から、Ｈバッファ３１のＹ行を次式から演算し、Ｈバッファ３１のＹ行に記憶させる。
【０１８４】
Ｈ＿ｂｕｆｆｅｒ（Ｘ，Ｙ）＝（２Ｙ＿ｌｉｎｅ−２ｎ）×２Ｙ−ｂｕｆｆｅｒ（Ｘ）＋（２ｎ＋１−２Ｙ＿ｌｉｎｅ）×Ｉ＿ｉｍａｇｅ（Ｘ，ｎ）・・・（２１）
【０１８５】
このように、ステップＳ１３２乃至Ｓ１３４の処理では、原画像Ｉ＿ｉｍａｇｅを垂直方向に２倍に拡大した画像を生成し、その画像と原画像Ｉ＿ｉｍａｇｅとから、ａｌｐｈａ＿Ｚ倍の画像を生成していることになる。
【０１８６】
一方、ステップＳ１３１において、２Ｙ＿ｌｉｎｅが２ｎより大きく、且つ２ｎ＋１より小さいと判定されなかった場合（２Ｙ＿ｌｉｎｅが２ｎ−１より大きく、２ｎより小さいと判定された場合）、高速垂直アップサンプラ１１１は、仮想垂直２倍拡大画像２Ｙ＿ｉｍａｇｅの２ｎ−１行と２ｎ行から、Ｈバッファ３１のＹ行を生成する。この２ｎ−１行は、Ｈバッファ３１中の前行を求める際に計算され、２Ｙバッファ４１に既に格納されている場合がある。そこでステップＳ１３５において、高速垂直アップサンプラ１１１は、２ｎ−１行が２Ｙバッファ４１に既に格納されているか否かを判定し、格納されている場合には、ステップＳ１３８において、２ｎ−１行のデータを２Ｙバッファ４１から取り出す。
【０１８７】
これに対して、ステップＳ１３５において、２ｎ−１行のデータが２Ｙバッファ４１にまだ格納されていないと判定された場合、ステップＳ１３６に進み、高速垂直アップサンプラ１１１は、仮想垂直２倍拡大画像２Ｙ＿ｉｍａｇｅの２ｎ−１行を、上行２ｎ−２行と下行２ｎ行（原画像Ｉ＿ｉｍａｇｅのｎ−１行とｎ行）を用い、図２４のケース２のフローチャートのステップＳ９１乃至ステップＳ１０５の処理により計算する。ステップＳ１３６で計算された２ｎ−１行の値は、ステップＳ１３７において、Ｈバッファ３１における次のＹ＋１行の計算に使用する可能性があるので、高速垂直アップサンプラ１１１は、２Ｙバッファ４１に格納する。
【０１８８】
ステップＳ１３７、またはステップＳ１３８の処理の後、ステップＳ１３９に進み、高速垂直アップサンプラ１１１は、得られた２ｎ−１行と、仮想垂直２倍拡大画像２Ｙ＿ｉｍａｇｅの２ｎ行（原画像Ｉ＿ｉｍａｇｅのｎ行）からＨバッファ３１のＹ行が次式に従って補間する。
【０１８９】
Ｈ−ｂｕｆｆｅｒ（Ｘ，Ｙ）＝（２ｎ−２Ｙ＿ｌｉｎｅ）×２Ｙ−ｂｕｆｆｅｒ（Ｘ）＋（２Ｙ＿ｌｉｎｅ−（２ｎ−１））×Ｉ＿ｉｍａｇｅ（Ｘ，ｎ）・・・（２２）
【０１９０】
この処理は、Ｘ＝０からＩｎ＿ｗｉｄｔｈより小さい値である期間、Ｘの値をインクリメントしつつ行われる。
【０１９１】
Ｈバッファ３１の個々の未知の行の各画素を求めるため、（−１＜Ｘ＜Ｉｎ＿ｗｉｄｔｈ−Ｎ＋１）と、（−１＜Ｙ＜ａｌｐｈａ＿Ｚ×Ｉｎ＿ｈｅｉｇｈｔ−１）の条件を満たす座標（Ｘ＋Ｎ／２，Ｙ）で、同様の処理が繰り返し実行される。
【０１９２】
このように、ケース３の処理においては、仮想垂直２倍拡大画像２Ｙ＿ｉｍａｇｅ中の２ｎ行と２ｎ＋１行、または２ｎ−１行と２ｎ行を用いて、重み付け補間が実行される。
【０１９３】
以上の図３４のケース３に示す処理を模式的に表すと、図３５に示すようになる。仮想垂直２倍拡大画像２Ｙ＿ｉｍａｇｅの２Ｙ＿ｌｉｎｅ行の値が２ｎより大きく、且つ２ｎ＋１関係の場合とＨバッファ３１のＹ行とが所定の原画像Ｉ＿ｉｍａｇｅのｎ行とｎ＋１行から方向補間処理により２ｎ＋１行、または２ｎ−１行のデータが生成され、２Ｙバッファ４１に記憶される。そして、２Ｙバッファ４１に記憶された値と、仮想垂直２倍拡大画像２Ｙ＿ｉｍａｇｅの２ｎ行のデータから、Ｈバッファ３１のＹ行のデータが重み付け補間される。
【０１９４】
図１１のフローチャートに戻って、以上のようにして、ステップＳ２４の高速垂直アップサンプリング処理が行われた後、ステップＳ２５に進み、高速水平アップサンプリング処理が実行される。この高速水平アップサンプリング処理は、高速水平アップサンプリング処理部１４により実行される。高速水平アップサンプリング処理は、図３６に示されるように、画素を水平方向に補間する処理である。
【０１９５】
図３７は、高速水平アップサンプリング処理の詳細を表している。ステップＳ１５１で高速水平アップサンプラ１５１は、Ｖバッファ５１（後述する図３９）と２Ｘバッファ６１（後述する図４５）を作成する。Ｖバッファ５１は、サイズが、（ａｌｐｈａ＿Ｚ×Ｉｎ＿ｗｉｄｔｈ）×（ａｌｐｈａ＿Ｚ×Ｉｎ＿ｈｅｉｇｈｔ）とされ、２Ｘバッファ６１は、そのサイズが１×（ａｌｐｈａ＿Ｚ×Ｉｎ＿ｈｅｉｇｈｔ）とされる。２Ｘバッファ６１には、仮想水平２倍拡大画像２Ｘ＿ｉｍａｇｅのＸ座標（奇数座標）の一列のデータが格納される。
【０１９６】
ステップＳ１５２において、ケース１乃至ケース３に対応する処理が実行される。ケース１乃至ケース３のいずれの処理が実行されるかは、次式を演算することにより判断される。
【０１９７】
２Ｘ＿ｃｏｌｕｍｎ＝Ｘ×２／ａｌｐｈａ＿Ｚ・・・（２３）
【０１９８】
上記演算により求められた２Ｘ＿ｃｏｌｕｍｎの値が整数であり、且つ偶数である場合（２Ｘ＿ｃｏｌｕｍｎ＝２ｎであり、ｎが整数である場合）、ケース１とされ、２Ｘ＿ｃｏｌｕｍｎが整数且つ奇数である場合（２Ｘ＿ｃｏｌｕｍｎ＝２ｎ＋１であり、ｎが整数である場合）、ケース２とされ、２Ｘ＿ｃｏｌｕｍｎが実数である場合（その他の場合）、ケース３とされる。
【０１９９】
ケース１の場合、図３８のフローチャートに示す処理が実行される。このケースは、仮想水平２倍拡大画像２Ｘ＿ｉｍａｇｅにおける２Ｘ＿ｃｏｌｕｍｎ＝２ｎ列が、前もって計算されたＨバッファ３１の２Ｘ＿ｃｏｌｕｍｎ／２＝ｎ列と対応する場合である。この場合、高速水平アップサンプリング処理部１４は、ステップＳ１６１において、Ｈバッファ３１の２Ｘ＿ｃｏｌｕｍｎ／２列をＶバッファの列Ｘにコピーする。
【０２００】
図３９は、このケース１の処理を概念的に表している。仮想水平２倍拡大画像２Ｘ＿ｉｍａｇｅにおける２ｎ列が、Ｖバッファ５１のｎ列と対応する場合、Ｈバッファ３１のｎ列が、Ｖバッファ５１の列Ｘにコピーされる。
【０２０１】
図４０は、図３７のステップＳ１５２のケース２のＶバッファ５１に対する処理のフローチャートを示している。このケースは、Ｖバッファ５１中の列Ｘの値を、仮想水平２倍拡大画像２Ｘ＿ｉｍａｇｅ中の所定の列（２ｎ＋１）と対応させることができるが、Ｈバッファ３１中の所定の列の値に対応させることはできない場合である。
【０２０２】
この場合、ステップＳ１７１において、高速水平アップサンプラ１５１は、Ｈバッファ３１中の所定の範囲（Ｎ画素）の左列ｌｅｆｔ＿ｃｏｌｕｍｎ、および右列ｒｉｇｈｔ＿ｃｏｌｕｍｎを抽出する。左列ｌｅｆｔ＿ｃｏｌｕｍｎの中心座標は、（ｎ，Ｙ＋Ｎ／２）とされ、右列ｒｉｇｈｔ＿ｃｏｌｕｍｎの矩形の中心座標は、（ｎ＋１，Ｙ＋Ｎ／２）とされる。
【０２０３】
次にステップＳ１７２において、水平方向補間部１５２のエッジ検出部１２２は、帯域制限部１２１より帯域制限された信号に基づいて、局所エネルギＥ（Ｎ）を、左列ｌｅｆｔ＿ｃｏｌｕｍｎの個々の画素から、対角線上に位置する右列ｒｉｇｈｔ＿ｃｏｌｕｍｎの画素を減算し、その絶対値の和を演算して求める。すなわち、この処理では次式が演算される。
【０２０４】
Ｅ（Ｎ）＝Σ（Ｉ＝０，Ｎ−１）ＡＢＳ（ｌｅｆｔ＿ｃｏｌｕｍｎ（Ｉ）−ｒｉｇｈｔ＿ｃｏｌｕｍｎ（Ｎ−Ｉ−１））・・・（２４）
【０２０５】
次にステップＳ１７３において、エッジ検出部１２２は、エネルギＥ（Ｎ）が予め設定された閾値Ｔより大きいか否かを判定する。エネルギＥ（Ｎ）が閾値Ｔと等しいか、それより小さい場合、その領域はエッジを含まない平坦な低エネルギ領域と見なされる。この場合、潜在的なエッジの方向を計算する必要がない。このためステップＳ１７４に進み、方向判別部１２３が、エッジ検出部１２２の判定結果に基づいて、線形補間部１２７に、Ｖバッファ５１中の座標（Ｘ＋Ｎ／２，Ｙ）の画素データとして、隣接する左列の中心画素ｌｅｆｔ＿ｃｏｌｕｍｎ（Ｎ／２）と、隣接する右列の中心画素ｒｉｇｈｔ＿ｃｏｌｕｍｎ（Ｎ／２）の平均値を演算させ、Ｖバッファ５１のその座標（Ｘ＋Ｎ／２，Ｙ）に格納させると共に、水平方向（後述する図４４におけるＬ２の方向を示す方向情報を信頼度格付部１２４、および、方向性分布生成部１２５に出力する。また、信頼度格付部１２４は、この補間画素について信頼度が低いことを示す０を方向性分布生成部１２５に出力する。
【０２０６】
すなわち、次式に示すように、隣接する左列の中心画素ｌｅｆｔ＿ｃｏｌｕｍｎ（Ｎ／２）と、隣接する右列の中心画素ｒｉｇｈｔ＿ｃｏｌｕｍｎ（Ｎ／２）の平均値から、新しい画素（Ｘ＋Ｎ／２，Ｙ）の画素値が演算される（標準的な線形補間処理が行われる）。
【０２０７】
Ｖ−ｂｕｆｆｅｒ（Ｘ＋Ｎ／２，Ｙ）＝０．５×（ｌｅｆｔ＿ｃｏｌｕｍｎ（Ｎ／２）＋ｒｉｇｈｔ＿ｃｏｌｕｍｎ（Ｎ／２））・・・（２５）
【０２０８】
ステップＳ１７３において、エネルギＥ（Ｎ）が閾値Ｔより大きいと判定された場合、その領域は潜在的にエッジを含んでいる高エネルギ領域と見なされる。そこで、この場合、ステップＳ１７５に進み、水平方向補間部１５２の方向判別部１２３は、帯域制限部１２１により帯域制限された画像信号に基づいて、エッジ方向を試験的に計算する処理を実行し、検出した方向の情報を信頼度格付部１２４、および、方向性分布生成部１２５に出力すると共に、検出した画素の情報を方向補間部１３１に出力する。具体的には、次式にしたがってエッジ方向計算処理が実行される。
【０２０９】
Ｅｎｅｒｇｙ＝ＡＢＳ（ｌｅｆｔ＿ｃｏｌｕｍｎ（Ｎ−ｘ−１）−ｒｉｇｈｔ＿ｃｏｌｕｍｎ（ｘ））・・・（２６）
【０２１０】
上記演算は、ｘ＝Ｎ−１からｘの値を順次デクリメントし、ｘが−１より大きい間繰り返される。具体的には、図４１に示されるように、左列の画素から対角線上の右列の画素を減算する処理が、右列の上側から実行される。
【０２１１】
計算されたエネルギのうち、最も小さい値に対応する画素の対角線の方向が局所的なエッジの方向と判定される。図４１においては、Ｎ＝３とされているが、このＮの値をより大きい値とすることで、より多くの方向の判定が可能となる。
【０２１２】
ステップＳ１７５の処理で、エッジ方向が検出された場合、さらにステップＳ１７６において、方向補間部１３１は、その検出されたエッジ方向の画素を用いて、補間処理を行う（方向補間処理が行われる）。
【０２１３】
次に、ステップＳ１７７において、信頼度格付部１２４は、構造コレクタ処理を実行する。すなわちＶバッファ５１中の座標（Ｘ，Ｙ＋Ｎ／２）に補間された画素と、その垂直方向の近傍画素である座標ｌｅｆｔ＿ｃｏｌｕｍｎ（Ｎ／２）の画素、およびｒｉｇｈｔ＿ｃｏｌｕｍｎ（Ｎ／２）の画素との関係を解析することで局所構造の整合性をチェックする処理が行われる。このため、次式に従って、補間された画素を左列の中心の画素から減算し、右列の中心画素を補間された画素から減算することで２つの減算結果を得、さらに２つの減算結果を乗算することで、水平方向の変化を表す値Ｈ（Ｎ／２）が計算される。
【０２１４】
Ｈ（Ｎ／２）＝（ｌｅｆｔ＿ｌｉｎｅ（Ｎ／２）−Ｖ−ｂｕｆｆｅｒ（Ｘ＋Ｎ／２，Ｙ））×（Ｖ−ｂｕｆｆｅｒ（Ｘ＋Ｎ／２，Ｙ）−ｒｉｇｈｔ＿ｃｏｌｕｍｎ（Ｎ／２））・・・（２７）
【０２１５】
ステップＳ１７８において、ステップＳ１７７で演算された値Ｈ（Ｎ／２）に基づき、補間された局所構造に整合性があるか否かが判定される。具体的には、値Ｈ（Ｎ／２）が正であるか否かが判定される。値Ｈ（Ｎ／２）が正である場合には、ステップＳ１７６の方向補間処理で求められた画素は正しい（整合性がある）ものとされ、ステップＳ１７９において、その補間画素の信頼度を１として方向性分布生成部１２５に出力する。
【０２１６】
これに対して、ステップＳ１７８において、値Ｈ（Ｎ／２）が負であると判定された場合（整合性がない）、すなわち、ステップＳ１７６の方向補間処理で生成された画素値は適切でないと判定された場合、ステップＳ１８０に進み、信頼度格付部１２４は、その補間画素の信頼度を０として方向性分布生成部１２５に出力する。
【０２１７】
ステップＳ１８１において、注目画素に対する注目領域の全ての補間画素が補間されたか否かが判定され、注目領域の全ての補間画素が補間されていないと判定された場合、その処理は、ステップＳ１７１に戻り、全ての補間画素が補間されるまで、ステップＳ１７１乃至Ｓ１８１の処理が繰り返され、ステップＳ１８１において、全ての補間画素が補間されたと判定された場合、その処理は、ステップＳ１８２に進む。ここで、注目画素に対する注目領域とは、例えば、図４２で示すＭ（画素数）×Ｐ（ライン）の範囲の補間画素である。尚、図４２においては、白丸が注目画素（補間画素）を、黒丸が補間画素を、格子状に塗りつぶされた画素を原画像の画素（元々存在する画素）として示している。ステップＳ１８１において、全ての補間画素が補間されるということは、図中の黒丸で示される画素が全て補間されたことを示す。
【０２１８】
ステップＳ１８２において、方向選択処理が実行される。
【０２１９】
ここで、図４３のフローチャートを参照して、方向選択処理について説明する。
【０２２０】
ステップＳ２０１において、方向性分布生成部１２５は、方向性分布を生成する。すなわち、方向性分布生成部１２５は、これまで選択されたエッジの方向と、その信頼度の情報から、方向性分布を生成する。
【０２２１】
尚、この方向性分布は、図２８，図３０乃至図３２を参照して説明したものと基本的には同様のものであるが、水平方向と垂直方向の関係が反転している。
【０２２２】
ステップＳ２０２において、方向選択部１２６は、これらの方向性分布（補間方向と、対応する信頼度の分布）から以下のＢａｌａｎｃｅ関数を設定する。
【０２２３】
すなわち、まず、方向選択部１２６は、以下の式（２８）で示す注目画素（Ｘ，Ｙ）に対応するＢａｌａｎｃｅ関数を設定する。
【０２２４】
2004153668.tif 000004
【０２２５】
Ｐｏｐｕｌａｔｉｏｎ（ＬＩ）は、方向ＬＩ毎に信頼性のある画素の個数の示す関数であり、Σは、総和と求めることを示し、（Ｉ＝（Ｎ＋１）／２，Ｎ−１）、または、（Ｉ＝  ０，（Ｎ−３）／２）は、総和を求めるＩの範囲を示している。Ｎは、設定された方向の数を示す。
【０２２６】
ステップＳ２０３において、方向選択部１２６は、Ｂａｌａｎｃｅ（Ｘ，Ｙ）が正の値であるか否かを判定し、例えば、正の値であると判定した場合、ステップＳ２０４において、図４４で定義する方向ＬＩのうち、Ｉが、Ｉ＝（Ｎ＋１）／２からＮ−１の範囲の中で最も信頼度の高い方向を選択する。尚、この関係は、図３１で示した方向の定義と水平方向と垂直方向の関係が逆転したものであって、基本的には、同様のものである。
【０２２７】
一方、ステップＳ２０３において、正の値ではないと判定された場合、ステップＳ２０５において、図４４で定義する方向ＬＩのうち、Ｉが、Ｉ＝０から（Ｎ−３）／２の範囲の中で最も信頼度の高い方向を選択する。
【０２２８】
すなわち、式（２８）で定義される関数は、方向を水平方向を中心として、図中の方向の矢印の右端部を方向Ｌ２で上下に分けた場合、上下のどちら側に信頼性の傾向があるかを示すものであり、例えば、図４４で定義する方向Ｌ０とＬ１のグループ全体の信頼性と、方向Ｌ３，Ｌ４のグループ全体の信頼性のそれぞれの和をとった値の差分をステップＳ２０４の処理により、求めて、その大小比較から、水平方向に対して上下のどちらに傾いているかを求め、信頼性の傾向を示すグループの中から、最も信頼性の高い方向が選択されるようになっている。
【０２２９】
ステップＳ２０６において、方向選択部１２６は、最も信頼性の高い方向が複数に存在するか否かを判定し、例えば、複数の存在する場合、ステップＳ２０７において、選択された複数の最も信頼性の高い方向の中から、最も水平方向に近い方向を選択する。一方、ステップＳ２０６において、最も信頼性の高い方向が複数に存在しない場合は、ステップＳ２０７の処理がスキップされて、ステップＳ２０４またはＳ２０５の処理で選択された方向がそのまま選択される。すなわち、信頼性の程度が同じ方向があった場合は、水平方向に近いものが選択される。
【０２３０】
ステップＳ２０８において、方向選択部１２６は、例外条件に含まれるか否かを判定する。すなわち、方向選択部１２６は、以下の式（２９）乃至式（３１）のいずれかを満たす場合、例外であると判定し、ステップＳ２０９において、水平方向（図４４の方向Ｌ２）を選択する。
【０２３１】
Ｐｏｐｕｌａｔｉｏｎ＿ＬＩ（Ｉ＝（Ｎ−１）／２）−Ｐｏｐｕｌａｔｉｏｎ（Ｂｅｓｔ＿Ｄｉｒ）≧−１・・・（２９）
Ｔｅｎｄｅｎｃｙ（Ｘ，Ｙ）＜（ＰＭ）／３・・・（３０）
Ｔｏｔａｌ＿  Ｐｏｐｕｌａｔｉｏｎ（Ｘ，Ｙ）＜（ＰＭ）／３・・・（３１）
【０２３２】
ここで、Ｐｏｐｕｌａｔｉｏｎ＿ＬＩ（Ｉ＝（Ｎ−１）／２）は、水平方向の信頼度であり、Ｐｏｐｕｌａｔｉｏｎ（Ｂｅｓｔ＿Ｄｉｒ）は、ステップＳ２０１乃至Ｓ２０７の処理で選択された方向の信頼度である。または、Ｔｅｎｄｅｎｃｙ（Ｘ，Ｙ）は、Ｂａｌａｎｃｅ関数が正の場合は、Σ（Ｉ＝（Ｎ＋１）／２，Ｎ−１）（Ｐｏｐｕｌａｔｉｏｎ（ＬＩ））を示し、負の場合は、Σ（Ｉ＝  ０，（Ｎ−３）／２）（Ｐｏｐｕｌａｔｉｏｎ（ＬＩ））を示す。すなわち、方向を示す矢印の右端部の位置を上下のグループに分けたときの信頼性の高いグループの信頼度の和である。Ｔｏｔａｌ＿Ｐｏｐｕｌａｔｉｏｎ（Ｘ，Ｙ）は、注目画素が（Ｘ，Ｙ）の時の信頼度の和である。
【０２３３】
すなわち、式（２９）が満たされる場合、ステップＳ２０１乃至Ｓ２０７の処理で選択された方向の信頼度よりも水平方向の信頼度の方が高いことになるので、水平方向の方がより正しい方向の選択となる。また、式（３０），式（３１）が満たされる場合、信頼性の高いグループの信頼度の和が所定の閾値である（ＰＭ）／３よりも小さいことになるので、全体として比較できる精度の画素がなかったものと判断して、水平方向を選択する。尚、閾値（ＰＭ）／３は、他の値に設定するようにしてもよい。
【０２３４】
ステップＳ２１０において、方向選択部１２６は、選択された方向の情報を斜め補間部１２８に出力する。
【０２３５】
ここで、図４０のフローチャートの説明に戻る。
【０２３６】
ステップＳ１８３において、線形補間部１２７は、注目画素に対して水平方向の左右に存在する画素間の平均画素値を線形補間画素として求めて合成部１３０に出力し、同時に、斜補間部１２８は、方向選択部１２６より入力された選択された方向に存在する画素間の平均画素値を線形補間画素値として合成部に出力する。
【０２３７】
ステップＳ１８４において、斜重み付け部１２９は、以下の式（３２）で示すように、注目画素（Ｘ，Ｙ）の斜方向の重みｗｅｉｇｈｔ＿ｓｌａｎｔ（Ｘ，Ｙ）を設定し、合成部１３０に出力する。
【０２３８】
ｗｅｉｇｈｔ＿ｓｌａｎｔ（Ｘ，Ｙ）＝ＡＢＳ（Ｂａｌａｎｃｅ（Ｘ，Ｙ）／Ｔｏｔａｌ＿ｐｏｐｕｌａｔｉｏｎ（Ｘ，Ｙ）（或いは、ｗｅｉｇｈｔ＿ｓｌａｎｔ（Ｘ，Ｙ）＝ＡＢＳ（Ｔｅｎｄｅｎｃｙ（Ｘ，Ｙ））／Ｔｏｔａｌ＿ｐｏｐｕｌａｔｉｏｎ（Ｘ，Ｙ））・・・（３２）
【０２３９】
すなわち、斜方向の重みは、全信頼度に対するＢａｌａｎｃｅ関数（或いは、Ｔｅｎｄｅｎｃｙ関数）の絶対値の割合として設定される。
【０２４０】
ステップＳ１８５において、合成部１３０は、以下の式（３３）の演算により、線形補間部１２７より入力された線形補間画素と斜補間画素とを重み付けして合成し、補間画素として出力する。
【０２４１】
Ｖ＿ｂｕｆｆｅｒ（Ｘ，Ｙ）＝（１−  ｗｅｉｇｈｔ＿ｓｌａｎｔ（Ｘ，Ｙ））×（ｖ−ｂｕｆｆｅｒ（Ｘ−１，Ｙ）＋ｖ−ｂｕｆｆｅｒ（Ｘ＋１，Ｙ））＋  ｗｅｉｇｈｔ＿ｓｌａｎｔ（Ｘ，Ｙ）×（ｖ−ｂｕｆｆｅｒ（Ｘ−１，Ｙ＋Ｂｅｓｔ＿Ｄｉｒ−（Ｎ−１）／２）  ＋ｖ−ｂｕｆｆｅｒ（Ｘ＋１，Ｙ−Ｂｅｓｔ＿Ｄｉｒ−（Ｎ−１）／２）・・・（３３）
【０２４２】
ここで、ｖ−ｂｕｆｆｅｒ（Ｘ−１，Ｙ）と  ｖ−ｂｕｆｆｅｒ（Ｘ＋１，Ｙ）は、注目画素の左右に存在する画素値であり、ｈ−ｂｕｆｆｅｒ（Ｘ−１，Ｙ＋Ｂｅｓｔ＿Ｄｉｒ−（Ｎ−１）／２）＋  ｈ−ｂｕｆｆｅｒ（Ｘ−１，Ｙ−Ｂｅｓｔ＿Ｄｉｒ−（Ｎ−１）／２）は、注目画素からみて選択された方向の対角線上で、かつ、左右の列上に存在する画素値である。
【０２４３】
すなわち、線形補間画素にかかる重みは、（１−  ｗｅｉｇｈｔ＿ｓｌａｎｔ（Ｘ，Ｙ））で表現できるので、線形補間で求められた画素値には、線形補間に係る重みとして（１−  ｗｅｉｇｈｔ＿ｓｌａｎｔ（Ｘ，Ｙ））を乗じ、斜補間画素にかかる重みとしてｗｅｉｇｈｔ＿ｓｌａｎｔ（Ｘ，Ｙ）が乗じられて、線形和をとって最終的な補間画素とする。これにより、水平方向と斜方向の補間が、その重みによりバランスよく合成されるため、正確な補間画素を生成することが可能となる。
【０２４４】
Ｖバッファ５１の個々の未知の行の各画素を求めるため、同様の処理が繰り返し実行される。
【０２４５】
図４５は、以上のケース２の処理を概念的に表したものである。同図に示されるように、Ｖバッファ５１の列Ｘが、仮想水平２倍拡大画像２Ｘ＿ｉｍａｇｅ中の所定の列と所定の関係にある場合、Ｈバッファ３１のｎ列と、ｎ＋１列から方向補間処理により生成されたデータが２Ｘバッファ６１に記憶され、それがＶバッファ５１の列Ｘにコピーされる。
【０２４６】
次に、図４６のフローチャートを参照して、図３７のステップＳ１５２におけるケース３のＶバッファに対する処理について説明する。
【０２４７】
このケースは、２ｎ＜２Ｘ＿ｃｏｌｕｍｎ＜２ｎ＋１、または、２ｎ−１＜２Ｘ＿ｃｏｌｕｍｎ＜２ｎのケースの場合、つまり、Ｖバッファ５１中の列Ｘの値が、仮想水平２倍拡大画像２Ｘ＿ｉｍａｇｅの列２Ｘ＿ｃｏｌｕｍｎのいずれにも対応せず、かつ、Ｈバッファ３１のどの列とも対応しない場合である。
【０２４８】
この場合、ステップＳ２２１において、２Ｘ＿ｃｏｌｕｍｎの値が２ｎより大きく、且つ２ｎ＋１より小さいか否かが判定される。２Ｘ＿ｃｏｌｕｍｎの値が２ｎより大きく、且つ２ｎ＋１より小さい場合、仮想水平２倍拡大画像２Ｘ＿ｉｍａｇｅの２ｎ＋１列と２ｎから、Ｖバッファ５１のＸ列が生成される。
【０２４９】
そこで、この場合、ステップＳ２２２において、高速水平アップサンプリング処理部１５は、仮想水平２倍拡大画像２Ｘ＿ｉｍａｇｅの２ｎ＋１列を、隣接する上列２ｎ列と、下列２ｎ＋２列（Ｈバッファ３１におけるｎ列とｎ＋１列）を用いて、図４０のケース２のフローチャートに示すステップＳ１７１乃至ステップＳ１８５の処理で計算する。ステップＳ２２２で計算された結果は、Ｖバッファ５１における次のｎ＋１列の計算に使用する可能性があるので、ステップＳ２２３において、２Ｘバッファ６１に格納される。
【０２５０】
さらに、ステップＳ２２４において、ステップＳ２２２で計算された２ｎ＋１列（２Ｘバッファ６１に記憶されている値）と、仮想水平２倍拡大画像２Ｘ＿ｉｍａｇｅの２ｎ列（Ｈバッファ３１のｎ列）から、Ｖバッファ５１のＸ列が次式から演算され、Ｖバッファ５１の列Ｘに記憶される。
【０２５１】
Ｖ＿ｂｕｆｆｅｒ（Ｘ，Ｙ）＝（２Ｘ＿ｃｏｌｕｍｎ−２ｎ）×２Ｘ−ｂｕｆｆｅｒ（Ｘ）＋（２ｎ＋１−２Ｘ＿ｃｏｌｕｍｎ）×Ｉ＿ｉｍａｇｅ（ｎ，Ｙ）・・・（３４）
【０２５２】
一方、ステップＳ２２１において、２Ｘ＿ｃｏｌｕｍｎが２ｎより大きく、且つ２ｎ＋１より小さいと判定されなかった場合（２Ｘ＿ｃｏｌｕｍｎが２ｎ−１より大きく、２ｎより小さいと判定された場合）、仮想水平２倍拡大画像２Ｘ＿ｉｍａｇｅの２ｎ−１列と２ｎ列から、Ｖバッファ５１のＸ列が生成される。この２ｎ−１列は、Ｖバッファ５１中の前列を求める際に計算され、２Ｘバッファ６１に既に格納されている場合がある。そこでステップＳ２２５において、２ｎ−１列が２Ｘバッファ６１に既に格納されているか否かが判定され、格納されている場合には、ステップＳ２２８において、２ｎ−１列が２Ｘバッファ６１から取り出される。
【０２５３】
これに対して、ステップＳ２２５において、２ｎ−１列のデータが２Ｘバッファ６１にまだ格納されていないと判定された場合、ステップＳ２２６に進み、仮想水平２倍拡大画像２Ｘ＿ｉｍａｇｅの２ｎ−１列を、上列２ｎ−２列と下列２ｎ列（Ｈバッファ３１のｎ−１列とｎ列）を用い、図４０のケース２のフローチャートのステップＳ１７１乃至ステップＳ１８５の処理により計算する処理が実列される。ステップＳ２２６で計算された２ｎ−１列の値は、ステップＳ２２７において、Ｖバッファ５１における次のＸ＋１列の計算に使用する可能性があるので、２Ｘバッファ６１に格納される。
【０２５４】
ステップＳ２２７、またはステップＳ２２８の処理の後、ステップＳ２２９に進み、得られた２ｎ−１列と、仮想水平２倍拡大画像２Ｘ＿ｉｍａｇｅの２ｎ列（Ｈバッファ３１のｎ列）からＶバッファ５１のＸ列が次式に従って補間される。
【０２５５】
Ｖ−ｂｕｆｆｅｒ（Ｘ，Ｙ）＝（２ｎ−２Ｘ＿ｃｏｌｕｍｎ）×２Ｘ−ｂｕｆｆｅｒ（Ｙ）＋（２Ｘ＿ｃｏｌｕｍｎ−（２ｎ−１））×Ｉ＿ｉｍａｇｅ（ｎ，Ｙ）・・・（３５）
【０２５６】
この処理は、Ｙ＝０からＩｎ＿ｈｅｉｇｈｔ×ａｌｐｈａ＿Ｚより小さい値である期間、Ｙの値をインクリメントしつつ行われる。
【０２５７】
Ｖバッファ５１の個々の未知の列の各画素を求めるため、（−１＜Ｙ＜ａｌｐｈａ＿Ｚ×Ｉｎ＿ｈｅｉｇｈｔ−Ｎ＋１）と、（−１＜Ｙ＜ａｌｐｈａ＿Ｚ×Ｉｎ＿ｗｉｄｔｈ−１）の条件を満たす座標（Ｘ，Ｙ＋Ｎ／２）で、同様の処理が繰り返し実行される。
【０２５８】
このように、ケース３の処理においては、仮想水平２倍拡大画像２Ｘ＿ｉｍａｇｅ中の２ｎ列と２ｎ＋１列、または２ｎ−１列と２ｎ列を用いて、重み付け補間が実行される。
【０２５９】
以上の図４６のケース３に示す処理を模式的に表すと、図４７に示すようになる。Ｖバッファ５１中の列Ｘの値が、仮想水平２倍拡大画像２Ｘ＿ｉｍａｇｅの列と所定の関係にある場合、原画像Ｉ＿ｉｍａｇｅのｎ列と、ｎ＋１列から方向補間処理により２ｎ＋１列、または２ｎ−１列のデータが生成され、２Ｘバッファ６１に記憶される。そして、２Ｘバッファ６１に記憶された値と、仮想水平２倍拡大画像２Ｘ＿ｉｍａｇｅの２ｎ列のデータから、Ｖバッファ５１のＸ列のデータが重み付け補間される。
【０２６０】
以上のようにして、ステップＳ２１において、設定されているモードが、画像モードであると判定された場合、ステップＳ２２乃至ステップＳ２５の処理が行われるのであるが、ステップＳ２１において、設定されているモードが画像モードではないと判定された場合（コンピュータのアイコンやワードプロセッサのフォントなどの弱接続の画像が処理される場合）、ステップＳ２２乃至ステップＳ２５の処理が行われる前に、ステップＳ２６において、エッジコネクタ処理が実行される。図４８と図４９は、このエッジコネクタ処理の詳細を表している。このエッジコネクタ処理は、エッジコネクタ処理部１１により実行される。
【０２６１】
最初にステップＳ２４１において、所定の画素（Ｘ，Ｙ）に対応して、２×２個の画素が切り出される。そしてステップＳ２４２とステップＳ２４３において、それぞれ右対角エネルギと、左対角エネルギが計算される。右対角エネルギは、２×２個の画素のうち、右上の画素から左下の画素を減算することで求められ、左対角エネルギは、左上画素から右下画素を減算することで求められる。
【０２６２】
例えば、画素（Ｘ，Ｙ）を図５０Ａにおける画素（ピクセル）０とした場合、右対角エネルギは、図５０Ａに示されるように、ピクセル１からピクセル２の値を減算することで求められ、左対角エネルギは、図５０Ｂに示されるように、ピクセル０からピクセル３の値を減算することにより求められる。
【０２６３】
次に、ステップＳ２４４において、左対角線上の画素値は、右対角線上の画素値より小さいか否かが判定される。図５０Ａ，Ｂの例の場合、ピクセル０とピクセル３の画素値が、ピクセル１とピクセル２の画素値より小さいか否かが判定される。
【０２６４】
ステップＳ２４４において、左対角線上の画素値が右対角線上の画素値より小さいと判定された場合、ステップＳ２４５に進み、ステップＳ２４３で演算された左対角エネルギは、予め設定されている所定の閾値より小さいか否かが判定される。左対角エネルギが閾値より小さい場合、ステップＳ２４６に進み、画素（ピクセル）２は、画素（ピクセル）１より小さいか否かが判定される。画素２が画素１より小さい場合には、ステップＳ２４７において、画素１を、画素０と画素３の平均値とする処理が実行される。ステップＳ２４６において、画素２が画素１より小さくない（等しいか大きいと判定された場合）、ステップＳ２４８に進み、画素２を、画素０と画素３の平均値とする処理が実行される。
【０２６５】
図５１Ａは、ステップＳ２４７の処理の結果、画素１の値が画素０と画素３の平均値とされた場合を表している。
【０２６６】
ステップＳ２４５において、左対角エネルギが閾値と等しいか閾値より大きいと判定された場合、ステップＳ２４６乃至ステップＳ２４８の処理はスキップされる。
【０２６７】
ステップＳ２４４において、左対角線上の画素値が右対角線上の画素値より小さくないと判定された場合（等しいかより大きいと判定された場合）、ステップＳ２４９に進み、ステップＳ２４２で演算された右対角エネルギが、予め設定されている所定の閾値より小さいか否かが判定される。右対角エネルギが閾値より小さい場合には、ステップＳ２５０に進み、画素３は、画素０より小さいか否かが判定される。画素３が画素０より小さい場合には、ステップＳ２５１において、画素０を、画素１と画素２の平均値とする処理が行われる。ステップＳ２５０において、画素３が画素０より小さくない（等しいかより大きい）と判定された場合、ステップＳ２５２に進み、画素３を、画素１と画素２の平均値とする処理が実行される。
【０２６８】
図５１Ｂは、ステップＳ２５２における処理により、画素３が、画素１と画素２の平均値とされた場合の例を示している。
【０２６９】
ステップＳ２４９において、右対角エネルギが閾値より小さくないと判定された場合、ステップＳ２５０乃至ステップＳ２５２の処理はスキップされる。
【０２７０】
アイコンやフォントなどの弱接続を有するエッジを、以上のエッジコネクタ処理により厚くすることで、エッジ構造を強くすることができる。これにより、図５０Ａ，Ｂに示されるように、エッジが局所的に、たった２つの対角線上にしか存在しない弱接続が存在する場合に、図２４のステップＳ９５におけるエッジ方向計算処理、或いは、図４０におけるステップＳ１７５のエッジ方向計算処理などにより、エッジ方向を認識する際、極端な誤解を引き起こしてしまい、結果的にエッジの連続性を破壊してしまうようなことが抑制される。
【０２７１】
次に、図２のステップＳ８のズーム処理について説明する。このズーム処理の詳細は、図５２のフローチャートに示されている。図５２におけるステップＳ２７１乃至ステップＳ２７５の処理は、図１１の高速ズーム処理におけるステップＳ２１乃至ステップＳ２５の処理と基本的に同様の処理となっている。
【０２７２】
図５２のステップＳ２７６におけるエッジコネクタ処理、ステップＳ２７２における１次元垂直イメージリフレッシュ処理、およびステップＳ２７３における１次元水平イメージリフレッシュ処理は、それぞれ、図１１のステップＳ２２の１次元垂直イメージリフレッシュ処理、および、ステップＳ２３のステップＳ１５の１次元水平イメージリフレッシュ処理と同様の処理であるので、その説明は省略する。以下においては、ステップＳ２７４における垂直アップサンプリング処理と、ステップＳ２７５における水平アップサンプリング処理についてのみ説明する。
【０２７３】
最初に図５３のフローチャートを参照して、ステップＳ２７４における垂直アップサンプリング処理について説明する。この処理は、垂直アップサンプリング処理部１３により実行される。
【０２７４】
最初にステップＳ２９１において、垂直アップサンプラ１４１は、Ｈバッファ３１を作成する。そのサイズは、Ｉｎ＿ｗｉｄｔｈ×（２×Ｉｎ＿ｈｅｉｇｈｔ）とされる。次に、ステップＳ２９２において、垂直アップサンプラ１４１は、図５４に示されるように、原画像Ｉ＿ｉｍａｇｅのＹ行をＨバッファ３１の行２Ｙにコピーする。Ｈバッファ３１の最後の行には、原画像Ｉ＿ｉｍａｇｅの最後の行がコピーされる。
【０２７５】
次に、ステップＳ２９３において、垂直方向補間部１４２のエッジ検出部１２２は、原画像Ｉ＿ｉｍａｇｅ中の上行ｕｐ＿ｌｉｎｅと下行ｄｏｗｎ＿ｌｉｎｅのＮ画素を抽出する。上行ｕｐ＿ｌｉｎｅの中心座標は、（Ｘ＋Ｎ／２，ｎ）となり、下行ｄｏｗｎ＿ｌｉｎｅの中心座標は、（Ｘ＋Ｎ／２，ｎ＋１）となる。
【０２７６】
次にステップＳ２９４において、エッジ検出部１２２は、局所エネルギＥ（Ｎ）を上述の式（１１）より算出する。
【０２７７】
次に、ステップＳ２９５において、エッジ検出部１２２は、局所エネルギＥ（Ｎ）が予め設定されている所定の閾値Ｔより大きいか否かを判定する。局所エネルギＥ（Ｎ）が閾値Ｔと等しいか、それより小さい場合、その領域は、エッジを含まない平坦な低エネルギの領域と見なされる。この場合、潜在的エッジの方向を計算する必要がない。このため、ステップＳ２９６に進み、方向補間部１３１が、Ｈバッファ３１中の座標（Ｘ＋Ｎ／２，Ｙ）の画素データとして、隣接する上行中心画素ａｂ＿ｌｉｎｅ（Ｎ／２）と、隣接する下行中心画素ｄｏｗｎ＿ｌｉｎｅ（Ｎ／２）の平均値を演算し、Ｈバッファ３１のその座標（Ｘ＋Ｎ／２，Ｙ）に格納すると共に、垂直方向を示す方向情報を信頼度格付部１２４、および、方向性分布生成部１２５に出力する。また、信頼度格付部１２４は、この補間画素について信頼度が低いことを示す０を方向性分布生成部１２５に出力する。すなわち、ステップＳ２９６においては、上述の式（１２）に基づいて、標準的な線形補間処理が行われる。
【０２７８】
ステップＳ２９５において、局所エネルギＥ（Ｎ）の値が閾値Ｔより大きいと判定された場合、その領域は、潜在的エッジを含んだ高エネルギ領域と見なされる。このとき、ステップＳ２９７において、エッジ方向を試験的に計算する処理が実行される。具体的には、以下に示す演算が、ｘ＝Ｎ−１から−１より大きくなるまで行われる。
【０２７９】
Ｅｎｅｒｇｙ＝ＡＢＳ（ｕｐ＿ｌｉｎｅ（Ｎ−ｘ−１）−ｄｏｗｎ＿ｌｉｎｅ（ｘ））・・・（３６）
【０２８０】
上記の式（３６）で計算されたエネルギの値のうち、最も小さいものが選択され、その２つの画素が対応する対角線の方向が局所的なエッジの方向と見なされる。
【０２８１】
ステップＳ２９７の処理で、エッジ方向が検出された場合、さらにステップＳ２９８において、方向補間部１３１は、その検出されたエッジ方向の画素を用いて、補間処理を行う（方向補間処理を行う）。この方向補間処理は、エッジ方向に対応する２つの画素の画素値に基づいて、その間に位置する画素の画素値を補間することを意味する。
【０２８２】
次に、ステップＳ２９９に進み、信頼度格付部１２４は、構造コレクタ処理を実行する。この構造コレクタ処理は、座標（Ｘ＋Ｎ／２，Ｙ）に補間された画素と、その垂直の近傍画素、すなわち座標ｕｐ＿ｌｉｎｅ（Ｎ／２）と、座標ｄｏｗｎ＿ｌｉｎｅ（Ｎ／２）との関係を解析することで、更新された局所構造（ステップＳ２９８の方向補間処理で生成された画素とその上下の画素）の整合性をチェックする処理である。
【０２８３】
すなわち、この構造コレクタ処理では、上行の中心画素から更新された画素を減算する処理が行われ、さらに、更新された画素から下行の中心画素を減算する処理が行われる。さらに、以上のようにして得られた２つの減算結果を乗算することで、垂直方向の変化を表す値Ｖ（Ｎ／２）が計算される。ステップＳ２９９においては、次の式で示す演算が行われる。
【０２８４】
Ｖ（Ｎ／２）＝（ｕｐ＿ｌｉｎｅ（Ｎ／２）−Ｈ−ｂｕｆｆｅｒ（Ｘ＋Ｎ／２，Ｙ））×（Ｈ−ｂｕｆｆｅｒ（Ｘ＋Ｎ／２，Ｙ）−ｄｏｗｎ＿ｌｉｎｅ（Ｎ／２））・・・（３７）
【０２８５】
次に、ステップＳ３００において、信頼度格付部１２４は、ステップＳ２９９での演算結果に基づいて、更新された局所構造の整合性があるか否かを判定する。この判定は、上記の式（３７）で演算された値Ｖ（Ｎ／２）が正であるか否かに基づいて行われる。値Ｖ（Ｎ／２）が正である場合には、整合性があると見なされ、ステップＳ３０１において、信頼度格付部１２４は、その補間画素の信頼度を１として方向性分布生成部１２５に出力する。
【０２８６】
これに対して、ステップＳ３００において、値Ｖ（Ｎ／２）が負であると判定された場合、整合性はないと見なされる。すなわち、局所方向の識別が誤っており、ステップＳ２３７で生成された画素値は、適切でないと判断される。この場合、局所エッジの方向は、識別不可能と見なされ、この場合、信頼度格付部１２４は、ステップＳ３０２において、その補間画素の信頼度を０として方向性分布生成部１２５に出力する。
【０２８７】
ステップＳ３０３において、注目画素に対する注目領域の全ての補間画素が補間されたか否かが判定され、注目領域の全ての補間画素が補間されていないと判定された場合、その処理は、ステップＳ２９１に戻り、全ての補間画素が補間されるまで、ステップＳ２９１乃至Ｓ３０３の処理が繰り返され、ステップＳ３０３において、全ての補間画素が補間されたと判定された場合、その処理は、ステップＳ３０４に進む。ここで、注目画素に対する注目領域とは、例えば、図２８で示したＰ（画素数）×Ｍ（ライン）の範囲の補間画素である。そして、ステップＳ３０４において、方向選択処理が実行される。尚、ステップＳ３０４の方向選択処理は、図２４のフローチャートを参照して説明したステップＳ１０２の処理と同様であるので、その説明は省略する。
【０２８８】
ステップＳ３０５において、線形補間部１２７は、注目画素に対して垂直方向の上下に存在する画素間の平均画素値を線形補間画素として求めて合成部１３０に出力し、同時に、斜補間部１２８は、方向選択部１２６より入力された選択された方向に存在する画素間の平均画素値を線形補間画素値として合成部に出力する。
【０２８９】
ステップＳ３０６において、斜重み付け部１２９は、上述の式（１９）により注目画素（Ｘ，Ｙ）の斜方向の重みｗｅｉｇｈｔ＿ｓｌａｎｔ（Ｘ，Ｙ）を設定し、合成部１３０に出力する。
【０２９０】
ステップＳ３０７において、合成部１３０は、上述の式（２０）の演算により、線形補間部１２７より入力された線形補間画素と斜補間画素とを重み付けして合成し、補間画素として出力する。
【０２９１】
図５５は、図５２のステップＳ２７５における水平アップサンプリング処理の詳細を表している。この処理は、水平アップサンプリング処理部１５により実行される。
【０２９２】
最初にステップＳ３２１において、水平アップサンプラ１６１は、Ｖバッファ５１を作成する。そのサイズは、２×Ｉｎ＿ｗｉｄｔｈ×２×Ｉｎ＿ｈｅｉｇｈｔとされる。ステップＳ３２２において、水平アップサンプラ１６１は、Ｈバッファ３１のＸ列をＶバッファ５１の２Ｘ列にコピーする。Ｘの値は−１より大きく、Ｉｎ＿ｗｉｄｔｈより小さい値とされる。
【０２９３】
ステップＳ３２３において、垂直方向補間部１６２のエッジ検出部１２２は、Ｈバッファ３１中の左列ｌｅｆｔ＿ｃｏｌｕｍｎ、および右列ｒｉｇｈｔ＿ｃｏｌｕｍｎを抽出する。左列ｌｅｆｔ＿ｃｏｌｕｍｎの中心座標は、（ｎ，Ｙ＋Ｎ／２）とされ、右列ｒｉｇｈｔ＿ｃｏｌｕｍｎの矩形の中心座標は、（ｎ＋１，Ｙ＋Ｎ／２）とされる。
【０２９４】
次にステップＳ３２４において、エッジ検出部１２２は、局所エネルギＥ（Ｎ）が、左列ｌｅｆｔ＿ｃｏｌｕｍｎの個々の画素から、対角線上に位置する右列ｒｉｇｈｔ＿ｃｏｌｕｍｎの画素を減算し、その絶対値の和を演算することで求められる。すなわち、この処理では上述の式（２４）が演算される。
【０２９５】
次にステップＳ３２５において、エネルギＥ（Ｎ）が予め設定された閾値Ｔより大きいか否かが判定される。エネルギＥ（Ｎ）が閾値Ｔと等しいか、それより小さい場合、その領域はエッジを含まない平坦な低エネルギ領域と見なされる。この場合、潜在的なエッジの方向を計算する必要がない。このためステップＳ３２６に進み、標準的な線形補間処理が行われる。すなわち、上述の式（２５）に示すように、隣接する左列の中心画素ｌｅｆｔ＿ｃｏｌｕｍｎ（Ｎ／２）と、隣接する右列の中心画素ｒｉｇｈｔ＿ｃｏｌｕｍｎ（Ｎ／２）の平均値から、新しい画素（Ｘ＋Ｎ／２，Ｙ）の画素値が演算される。
【０２９６】
ステップＳ３２５において、エネルギＥ（Ｎ）が閾値Ｔより大きいと判定された場合、その領域は潜在的にエッジを含んでいる高エネルギ領域と見なされる。そこで、この場合、ステップＳ３２７に進み、次式にしたがってエッジ方向計算処理が実行される。
【０２９７】
Ｅｎｅｒｇｙ＝ＡＢＳ（ｌｅｆｔ＿ｃｏｌｕｍｎ（Ｎ−ｘ−１）−ｒｉｇｈｔ＿ｃｏｌｕｍｎ（ｘ））・・・（３８）
【０２９８】
上記演算は、ｘ＝Ｎ−１からｘの値を順次デクリメントし、ｘが−１より大きい間繰り返される。
【０２９９】
計算されたエネルギのうち、最も小さい値に対応する画素の対角線の方向が局所的なエッジの方向と判定される。
【０３００】
ステップＳ３２７でエッジ方向が判定されると、ステップＳ３２８において、方向補間部１３１は、ステップＳ３２７で判定されたエッジ方向の２つの画素の平均値を演算することで、その間の画素を補間する（方向補間処理が実行される）。
【０３０１】
次に、ステップＳ３２９において、構造コレクタ処理が実行される。すなわち、Ｖバッファ５１中の座標（Ｘ，Ｙ＋Ｎ／２）に補間された画素と、その水平方向の近傍画素である座標ｌｅｆｔ＿ｃｏｌｕｍｎ（Ｎ／２）の画素、およびｒｉｇｈｔ＿ｃｏｌｕｍｎ（Ｎ／２）の画素との関係を解析することで局所構造の整合性をチェックする処理が行われる。このため、次式に従って、補間された画素を左列の中心の画素から減算し、右列の中心画素を補間された画素から減算することで２つの減算結果を得、さらに２つの減算結果を乗算することで、水平方向の変化を表す値Ｈ（Ｎ／２）が計算される。
【０３０２】
Ｈ（Ｎ／２）＝（ｌｅｆｔ＿ｌｉｎｅ（Ｎ／２）−Ｖ−ｂｕｆｆｅｒ（Ｘ＋Ｎ／２，Ｙ））×（Ｖ−ｂｕｆｆｅｒ（Ｘ＋Ｎ／２，Ｙ）−ｒｉｇｈｔ＿ｃｏｌｕｍｎ（Ｎ／２））・・・（３９）
【０３０３】
ステップＳ３３０において、ステップＳ３２９の処理で演算された値Ｈ（Ｎ／２）に基づき、補間された局所構造に整合性があるか否かが判定される。具体的には、値Ｈ（Ｎ／２）が正であるか否かが判定される。値Ｈ（Ｎ／２）が正である場合には、ステップＳ３２８の方向補間処理で求められた画素は正しい（整合性がある）ものとされ、ステップＳ３３１において、その補間画素の信頼度を１として方向性分布生成部１２５に出力する。
【０３０４】
ステップＳ３３０において、値Ｈ（Ｎ／２）が負である場合（整合性がない、すなわち、ステップＳ３２８の方向補間処理で生成された画素値は適切でないと判定された場合）、ステップＳ３３２に進み、信頼度格付部１２４は、その補間画素の信頼度を０として方向性分布生成部１２５に出力する。
【０３０５】
ステップＳ３３３において、注目画素に対する注目領域の全ての補間画素が補間されたか否かが判定され、注目領域の全ての補間画素が補間されていないと判定された場合、その処理は、ステップＳ３２１に戻り、全ての補間画素が補間されるまで、ステップＳ３２１乃至Ｓ３３３の処理が繰り返され、ステップＳ３３３において、全ての補間画素が補間されたと判定された場合、その処理は、ステップＳ３３４に進む。
【０３０６】
ここで、注目画素に対する注目領域とは、例えば、図４２で示したＭ（画素数）×Ｐ（ライン）の範囲の補間画素である。そして、ステップＳ３３４において、方向選択処理が実行される。尚、ステップＳ３３４の方向選択処理は、図４０のフローチャートを参照して説明したステップＳ１８２の処理と同様であるので、その説明は省略する。
【０３０７】
ステップＳ３３５において、線形補間部１２７は、注目画素に対して水平方向の左右に存在する画素間の平均画素値を線形補間画素として求めて合成部１３０に出力し、同時に、斜補間部１２８は、方向選択部１２６より入力された選択された方向に存在する画素間の平均画素値を斜補間画素値として合成部に出力する。
【０３０８】
ステップＳ３３６において、斜重み付け部１２９は、上述の式（１９）により注目画素（Ｘ，Ｙ）の斜方向の重みｗｅｉｇｈｔ＿ｓｌａｎｔ（Ｘ，Ｙ）を設定し、合成部１３０に出力する。
【０３０９】
ステップＳ３３７において、合成部１３０は、上述の式（２０）の演算により、線形補間部１２７より入力された線形補間画素と斜補間画素とを重み付けして合成し、補間画素として出力する。
【０３１０】
図５６は、以上の図５５おける水平アップサンプリング処理の概念を表している。同図に示されるように、Ｈバッファ３１のＸ列のデータが、Ｖバッファ５１の２Ｘ列にコピーされる。そして、その間の列のデータが補間される。
【０３１１】
以上のようにして、画像の解像度を任意の倍率で変更することができる。この場合、例えば、画像を６倍に拡大するとき、ズーム処理を２回繰り返し、４倍の画像を得た後、３／２倍の高速ズーム処理を行うこともできるし、ズーム処理を３回繰り返し、８倍の画像を得た後、３／４倍の線形縮小処理を行うこともできる。
【０３１２】
また、図１２，図１６のフローチャートで説明したように、１次元垂直イメージリフレッシュ処理、および、１次元水平イメージリフレッシュ処理は、エッジとテクスチャを識別し、エッジに対しては、フィルタ処理とクリッピング処理を施し、テクスチャに対しては、フィルタ処理のみを施すと言ったように処理内容を分けて、それぞれに対応した適切な処理を施すことが可能となる。
【０３１３】
さらに、上述のように、図１０、または、図５２で示すように、高速ズーム処理、または、ズーム処理において、垂直アップサンプリング処理、および、水平アップサンプリング処理を行う前に、１次元垂直イメージリフレッシュ処理、および、１次元水平イメージリフレッシュ処理を実行することにより、１次元垂直イメージリフレッシュ処理、および、１次元水平イメージリフレッシュ処理は、画素数が拡大される前の原画像の画素数での処理を実行するだけで済むため、図１４，図１５，図１８，図１９で示す１次元垂直フィルタ、および、１次元水平フィルタのフィルタタップ数を、拡大処理後の画素数に対応させる必要がなく、その分計算処理量を低減させることができ、処理の高速化を実現することが可能となる。
【０３１４】
また、１次元垂直フィルタ、および、１次元水平フィルタの係数αが、垂直中心画素エネルギＥＶ、および、水平中心画素エネルギＥＨの値の変化に動的に対応するため、エッジ、または、テクスチャへの強調処理の強弱を適切に変化させることが可能となる。
【０３１５】
さらに、図２４，図４０，図５３，図５５のフローチャートを参照して説明したように、方向補間における方向を方向性分布を用いることにより、正確に判断することが可能となる。また、方向性分布により判断された斜補間によって求められる画素値と、線形補間された画素値とを、方向性分布に基づいて重み付けして線形和として補間画素を合成して、生成することにより、正確に画素値を補間することが可能となる。
【０３１６】
結果として、画像の解像度を変換することにより生じる画像上のエラーを抑制することができ、鮮明な変換画像を生成することが可能となる。図５７は、従来の技術（特願２００１−２０１７２９にて出願された発明を適用した技術）により解像度変換された画像を示しており、図５８は、本願発明の手法を適用して解像度変換された画像である。
【０３１７】
両者は、共に均一な２本の曲線を表示した画像である。図５８の画像は、図５７の画像に比較して、２本の曲線の太さがより均一に表現されており、より鮮明な画像が生成されている。すなわち、本発明によれば、解像度変換により生じるエラーが抑制されるので、鮮明な解像度変換画像が生成されている。
【０３１８】
尚、以上の例においては、水平方向、および、垂直方向のそれぞれに拡大する場合について説明してきたが、いずれか一方向のみを拡大するようにしてもよい。このとき、垂直方向にのみ拡大する処理は、インタレース画像からプログレッシブ画像に変換する、いわゆるＩＰ変換と同様の処理となるため、本発明は、ＩＰ変換にも応用することが可能である。尚、実際の処理については、上述で説明した処理における水平方向、または、垂直方向のいずれかの拡大率を１としたときの処理としてもよいし、または、水平方向、または、垂直方向のいずれか一方の処理をスキップすることにより実現されるので、その説明は省略する。
【０３１９】
図５９は、図１に示した機能ブロックを有する画像処理装置２のハードウェアの構成例を表している。ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３１１は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３１２に記憶されているプログラム、または記憶部３１８からＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３１３にロードされたプログラムに従って各種の処理を実行する。ＲＡＭ３１３にはまた、ＣＰＵ３１１が各種の処理を実行する上において必要なデータなども適宜記憶される。
【０３２０】
ＣＰＵ３１１、ＲＯＭ３１２、およびＲＡＭ３１３は、バス３１４を介して相互に接続されている。このバス３１４にはまた、入出力インタフェース３１５も接続されている。
【０３２１】
入出力インタフェース３１５には、キーボード、マウスなどよりなる入力部３１６、ＣＲＴ，ＬＣＤなどよりなるディスプレイ、並びにスピーカなどよりなる出力部３１７、ハードディスクなどより構成される記憶部３１８、モデム、ターミナルアダプタなどより構成される通信部３１９が接続されている。通信部３１９は、インターネットなどに代表されるネットワークを介しての通信処理を行う。
【０３２２】
入出力インタフェース３１５には、また、必要に応じてドライブ３２０が接続され、磁気ディスク３３１、光ディスク３３２、光磁気ディスク３３３、或いは半導体メモリ３３４などが適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部３１８にインストールされる。
【０３２３】
上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、ネットワークや記録媒体からインストールされる。
【０３２４】
この記録媒体は、図５９に示す装置では、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク３３１（フレキシブルディスクを含む）、光ディスク３３２（ＣＤ−ＲＯＭ（ＣｏｍｐａｃｔＤｉｓｃ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ），ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）を含む）、光磁気ディスク３３３（ＭＤ（Ｍｉｎｉ−Ｄｉｓｃ）を含む）、もしくは半導体メモリ３３４などよりなるパッケージメディアにより構成されるだけでなく、装置に予め組み込まれた状態でユーザに提供される、プログラムが記録されているＲＯＭ３１２や、記憶部３１８に含まれるハードディスクなどで構成される。
【０３２５】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０３２６】
【発明の効果】
以上の如く、本発明の画像処理装置および方法、並びにプログラムによれば、補間する画素のエッジの方向を正確に把握することができ、さらに、より正確な補間画素を生成することが可能となる。
【図面の簡単な説明】
【図１】本発明を適用した画像処理装置の構成例を示すブロック図である。
【図２】図１のエッジコネクタ処理部の構成例を示すブロック図である。
【図３】図１の高速垂直アップサンプリング処理部の構成例を示すブロック図である。
【図４】図３の垂直方向補間部の構成例を示すブロック図である。
【図５】図１の垂直アップサンプリング処理部の構成例を示すブロック図である。
【図６】図１の高速水平アップサンプリング処理部の構成例を示すブロック図である。
【図７】図１の水平アップサンプリング処理部の構成例を示すブロック図である。
【図８】図１の１次元垂直イメージリフレッシュ処理部の構成例を示すブロック図である。
【図９】図１の１次元水平イメージリフレッシュ処理部の構成例を示すブロック図である。
【図１０】図１の画像処理装置のズーム処理を説明するフローチャートである。
【図１１】図１０のステップＳ４における高速ズーム処理を説明するフローチャートである。
【図１２】図１１のステップＳ２２における１次元垂直イメージリフレッシュ処理を説明するフローチャートである。
【図１３】図１１のステップＳ２２における１次元垂直イメージリフレッシュ処理を説明する図である。
【図１４】図１１のステップＳ２２における１次元垂直イメージリフレッシュ処理を説明する図である。
【図１５】図１１のステップＳ２２における１次元垂直イメージリフレッシュ処理を説明する図である。
【図１６】図１１のステップＳ２３における１次元水平イメージリフレッシュ処理を説明するフローチャートである。
【図１７】図１１のステップＳ２３における１次元水平イメージリフレッシュ処理を説明する図である。
【図１８】図１１のステップＳ２３における１次元水平イメージリフレッシュ処理を説明する図である。
【図１９】図１１のステップＳ２３における１次元水平イメージリフレッシュ処理を説明する図である。
【図２０】高速垂直アップサンプリング処理を説明する図である。
【図２１】図１１のステップＳ２４における高速垂直アップサンプリング処理の詳細を説明するフローチャートである。
【図２２】図２１のステップＳ７２におけるケース１の処理を説明するフローチャートである。
【図２３】図２２のケース１の処理を説明する図である。
【図２４】図２１のステップＳ７２におけるケース２の処理を説明するフローチャートである。
【図２５】図２４のステップＳ９２における局所エネルギの計算を説明する図である。
【図２６】図２４のステップＳ９４におけるエッジ方向計算処理を説明する図である。
【図２７】図２４のステップＳ９４におけるエッジ方向計算処理を説明する図である。
【図２８】注目領域を説明する図である。
【図２９】図２４のステップＳ１０２における方向選択処理を説明するフローチャートである。
【図３０】方向と信頼度の例を説明する図である。
【図３１】定義されるエッジの方向を説明する図である。
【図３２】方向性分布を説明する図である。
【図３３】図２１のケース２の処理を説明する図である。
【図３４】図２１のステップＳ７２におけるケース３の処理を説明するフローチャートである。
【図３５】図３４におけるケース３の処理を説明する図である。
【図３６】図１１のステップＳ２４における高速水平アップサンプリングを説明する図である。
【図３７】図１１のステップＳ２４における高速水平アップサンプリング処理の詳細を説明するフローチャートである。
【図３８】図３７のステップＳ１５２におけるケース１の処理を説明するフローチャートである。
【図３９】図３７のケース１の処理を説明する図である。
【図４０】図３７のステップＳ１５２におけるケース２の処理を説明するフローチャートである。
【図４１】図３７のケース２の処理を説明する図である。
【図４２】注目画素を説明する図である。
【図４３】図４０のステップＳ１８２における方向選択処理を説明するフローチャートである。
【図４４】定義されるエッジの方向を説明する図である。
【図４５】図３７のケース２の処理を説明する図である。
【図４６】図３７のステップＳ１５２におけるケース３の処理を説明するフローチャートである。
【図４７】図４６のケース３の処理を説明する図である。
【図４８】図１１のステップＳ２６におけるエッジコネクタ処理の詳細を説明するフローチャートである。
【図４９】図１１のステップＳ２６におけるエッジコネクタ処理の詳細を説明するフローチャートである。
【図５０】図４８のステップＳ２４２とステップＳ２４３における右対角エネルギと左対角エネルギを説明する図である。
【図５１】図４８のステップＳ２４７と図４９のステップＳ２５２における処理を説明する図である。
【図５２】図２のステップＳ８におけるズーム処理を説明するフローチャートである。
【図５３】図５２におけるステップＳ２７４の垂直アップサンプリング処理の詳細を説明するフローチャートである。
【図５４】図５３の垂直アップサンプリング処理を説明する図である。
【図５５】図５２のステップＳ２７５における水平アップサンプリング処理を説明するフローチャートである。
【図５６】図５５の水平アップサンプリング処理を説明する図である。
【図５７】従来の解像度変換方式で解像度を変換した画像を示す図である。
【図５８】本発明を適用した解像度変換方式で解像度を変換した画像を示す図である。
【図５９】図１の画像処理装置のハードウェアの構成例を示すブロック図である。
【符号の説明】
１  画像入力部，  ２  画像処理部，  ３  画像出力部，  １０  画像処理装置，  １１  エッジコネクタ処理部，  １２  高速垂直アップサンプリング処理部，  １３  垂直アップサンプリング処理部，  １４  高速水平アップサンプリング処理部，  １５  水平アップサンプリング処理部，  １６  線形縮小処理部，  １７  １次元垂直イメージリフレッシュ処理部，１７ａ  バッファ，  １８１次元水平エッジビルダ処理部，  １８ａ  バッファ
【図１】
2004153668.tif 000005
【図２】
2004153668.tif 000006
【図３】
2004153668.tif 000007
【図４】
2004153668.tif 000008
【図５】
2004153668.tif 000009
【図６】
2004153668.tif 000010
【図７】
2004153668.tif 000011
【図８】
2004153668.tif 000012
【図９】
2004153668.tif 000013
【図１０】
2004153668.tif 000014
【図１１】
2004153668.tif 000015
【図１２】
2004153668.tif 000016
【図１３】
2004153668.tif 000017
【図１４】
2004153668.tif 000018
【図１５】
2004153668.tif 000019
【図１６】
2004153668.tif 000020
【図１７】
2004153668.tif 000021
【図１８】
2004153668.tif 000022
【図１９】
2004153668.tif 000023
【図２０】
2004153668.tif 000024
【図２１】
2004153668.tif 000025
【図２２】
2004153668.tif 000026
【図２３】
2004153668.tif 000027
【図２４】
2004153668.tif 000028
【図２５】
2004153668.tif 000029
【図２６】
2004153668.tif 000030
【図２７】
2004153668.tif 000031
【図２８】
2004153668.tif 000032
【図２９】
2004153668.tif 000033
【図３０】
2004153668.tif 000034
【図３１】
2004153668.tif 000035
【図３２】
2004153668.tif 000036
【図３３】
2004153668.tif 000037
【図３４】
2004153668.tif 000038
【図３５】
2004153668.tif 000039
【図３６】
2004153668.tif 000040
【図３７】
2004153668.tif 000041
【図３８】
2004153668.tif 000042
【図３９】
2004153668.tif 000043
【図４０】
2004153668.tif 000044
【図４１】
2004153668.tif 000045
【図４２】
2004153668.tif 000046
【図４３】
2004153668.tif 000047
【図４４】
2004153668.tif 000048
【図４５】
2004153668.tif 000049
【図４６】
2004153668.tif 000050
【図４７】
2004153668.tif 000051
【図４８】
2004153668.tif 000052
【図４９】
2004153668.tif 000053
【図５０】
2004153668.tif 000054
【図５１】
2004153668.tif 000055
【図５２】
2004153668.tif 000056
【図５３】
2004153668.tif 000057
【図５４】
2004153668.tif 000058
【図５５】
2004153668.tif 000059
【図５６】
2004153668.tif 000060
【図５７】
2004153668.tif 000061
【図５８】
2004153668.tif 000062
【図５９】
2004153668.tif 000063