まず、本発明の実施の形態の概要を述べる。画像拡大装置は、画像拡大処理において、推定対象となっている小数位置の画素を求める際に、周囲の整数位置の画素から所定の方向に対して類似度を検出し、類似度の高い方向に対して所定のフィルタリング処理を行うことで推定対象となっている画素を求める。
小数位置の画素を推定して画像拡大を行う際に、一般に検出が難しい画像のエッジ方向を特定してエッジ方向に垂直な方向に対してフィルタリングを行うのではなく、画素間の類似度が高い方向を検出して、特定された類似度の高い方向に対してフィルタリング処理を行う。これにより、品質の高い拡大画像を生成することができる。
また、より好適には、類似度の高い方向を少ないステップで絞り込むために、まずは大まかに縦、横、斜め方向の類似度から最も類似度が高いものを選択し、特定された方向を基準として、微小に右方向、左方向に回転させた方向の類似度を検出する。そして、更にこの中から最も類似度の高いものを選択して、対応する方向に対してフィルタリングを行う。これにより、演算量を削減することができる。
より具体的には、実施の形態の画像拡大処理では、所定の空間解像度を持つ画素列によって構成された入力画像に対して、小数位置の画素を推定して画像拡大を行う際に、現在推定処理対象となっている位置(以後、「推定対象位置」)の周辺にある、所定の領域内の画素の特徴に注目する。ここで、上述の所定領域内の画素の特徴として、複数の方向における所定の画素間の類似度を利用する。この所定の画素間の類似度については、後述する。
さらに、上述の複数の方向における類似度を比較して、それぞれの方向の画素間において、最も類似度が高い方向の画素列を特定する。ここで、最も類似度が高い方向を特定する過程において、所定の複数の方向に対して全て類似度を検出するのではなく、大まかな方向の類似度を利用して順次絞り込む構成にすることにより、類似度の比較回数を大きく削減し、良好な拡大画像を生成できるように構成してもよい。
この特定された類似度の高い方向の画素列に対して所定のフィルタリング処理を行い、推定対象位置の推定画素を生成する。
このように、最も類似度が高い方向を特定し、その方向の画素列に対してフィルタリング処理を行うことにより、例えば、急激な画素値の変化を伴うようなエッジに対するフィルタリング処理を回避し、比較的滑らかな信号に対して処理することができる。したがって、本発明の実施の形態では、類似度が高い画素列に対してフィルタリング処理を行えばよいことから、複雑な周波数成分を含む信号に対応して画素の推定を行う必要がなく、フィルタリング処理で利用するフィルタのタップ数が非常に短いタップであっても、推定結果に大きな劣化を伴うことなく十分な画素の推定を行うことができる。また、短いタップを利用することにより、非常に高速なフィルタリング処理を実現し、良好な拡大画像を生成することができる。
本発明の実施の形態では、通常の画像拡大で使用するフィルタリング処理のように、推定対象位置より以前にフィルタリング処理によって推定された画素を利用して、最も類似度が高い方向の画素列を特定し、所定のフィルタリング処理を行い、推定対象位置の推定画素を生成するように構成することができる。
また、本発明の実施の形態は、通常の画像拡大で使用するフィルタリング処理のように、1次元フィルタを縦方向、横方向にそれぞれ施すために生じるような処理の依存関係を、フィルタリング処理によって推定された画素を利用せずに、整数位置の画素のみを利用した類似度方向の1次元フィルタリングとすることで処理の依存関係を排除し、それぞれ単独での処理を実現し、良好な拡大画像を生成できるように構成することもできる。
以上のような処理を実現するような構成例として、以下に本発明の詳細な実施の形態を示す。
(実施の形態1)
本実施の形態の画像拡大装置は、例えば、図1の概念ブロック図で示されるような画像拡大装置100のように構成される。画像拡大装置100は、例えば、図2のフローチャートで示されるような動作を行う。以下、図1および図2で示される構成および動作について説明する。
画像拡大装置100は、図1で示されるように、例えば、下側画像推定部110、横側画像推定部130、斜め側画像推定部150、推定画素格納部103、及び統合制御部109を備える。ここで、画像拡大装置100を構成する各部は、統合制御部109の指令に基づいて動作するものとして説明する。
図1の画像拡大装置100は、撮像装置181、伝送装置182、記録装置183、記録媒体184、蓄積装置185などから、処理対象となる信号を入力画像101として取得する。
画像拡大装置100は、取得した入力画像から、現在処理対象となっている画像領域を特定し(S101)、下側画像推定部110、横側画像推定部130、斜め側画像推定部150に供給する。
ここで、下側画像推定部110、横側画像推定部130、斜め側画像推定部150は、下側の推定画素、横側の推定画素、斜め側の推定画素を、それぞれ所定の画像推定処理によって生成し、推定画素格納部103に供給する。この所定の画像推定処理に関する詳細は後述する。下側、横側、斜め側の推定画素は、図5に示されるような位置関係にある。
図5は、入力画像の画素と、推定画素との位置関係を説明する図である。図5に示されるように、仮に現在処理対象の基準としている画素をAとし、A,B,C,Dなどのように入力画像の画素の位置を整数位置と呼ぶ。画像拡大処理では、Aの位置から見て、横側のAからBまでの間、下側のAからCまでの間、斜め側のAからDまでの間の小数位置が、新たに推定される画素の位置となる。図5では、一例として、縦横それぞれ2倍の拡大画像を生成することを想定しており、推定画素の位置はそれぞれの間の1/2となっている。例えば、横側の推定画素の位置は、Aを基準としてAからB方向の横側に1/2ずれた位置となる。下側の推定画素の位置は、Aを基準としてAからC方向の下側に1/2ずれた位置となる。斜め側の推定画素の位置は、Aを基準としてAからD方向の斜め側に1/2ずれた位置、つまり横側に1/2、下側に1/2それぞれずれた位置となる。
図1および図2の説明に戻る。上述のように入力画像が供給されると、下側画像推定部110、横側画像推定部130、斜め側画像推定部150は、並列処理によって、それぞれ所定の画像推定処理を行い(S102,S103,S104)、下側、横側、斜め側の推定画素を生成する。
ここで、所定の画像推定処理は、下側、横側、斜め側の推定画素を求める際に、それぞれの推定対象位置の周辺にある、所定の領域内の画素の特徴に注目して、画像推定処理を行う。この所定の領域内の画素の特徴としては、例えば、複数の方向における所定の画素間の類似度である。また、例えば、下側、横側、斜め側のそれぞれの推定対象位置を基準として、それぞれに対して所定の領域を設定し、それぞれの領域内の画素に基づいて、複数の方向における方向別の類似度を求めてもよい。また、例えば、下側、横側、斜め側のそれぞれにおいて、このような方向別の類似度の中から、最も類似度が高い方向に沿った画素列を特定する。このように特定された画素列に対して、所定のフィルタリング処理を行い、下側、横側、斜め側のそれぞれの推定対象位置の推定画素を求める。類似度の求め方や所定のフィルタリング処理に関する更に詳細な説明は後述する。
推定画素格納部103は、現在処理対象の基準としている画素が取得されていない場合には、入力画像101から取得して対応する位置に格納するとともに、生成された下側、横側、斜め側の推定画素を取得し、現在求めようとしている拡大画像の、現在処理対象となっている対応する位置に格納する(S105)。
ここで、推定画素格納部103は、拡大画像を構成するための画像メモリを持ち、入力画像で現在処理対象となっている画素と、現在処理対象となっている画素位置の下側、横側、斜め側の推定画素を取得して、拡大画像を構成するための画像メモリの対応する位置に格納するとともに、生成された拡大画像を出力する。
本実施の形態の画像拡大装置100では、下側画像推定部110、横側画像推定部130、斜め側画像推定部150の処理を並列処理によって行っているが、別の一例としては、例えば、下側画像推定部110、横側画像推定部130、斜め側画像推定部150の処理を所定の順序に従って順次処理となるように構成しても構わない。
次に、統合制御部109は、推定画素格納部103における拡大画像において、対象となる全ての推定処理が完了したかどうかを判定する(S106)。
ここで、全ての推定処理が完了した場合(S106 YES)、統合制御部109は、推定画素格納部103に指令を送り、推定画素格納部103は、統合制御部109の制御に従って、生成した拡大画像を出力画像102として出力する。
生成された拡大画像は、出力として、伝送装置191、記録装置192、記録媒体193、蓄積装置194、表示・再生装置195などに対して供給され、伝送や蓄積、そして表示・再生が行われる。このようにして本実施の形態により、空間解像度の低い入力画像に対して画像拡大処理が行われ、拡大画像が供給される。
以上述べたことは、図1および図2で示される本実施の形態の画像拡大装置100の基本的な構成と動作の一例である。このような構成および動作により、次のような効果を得ることができる。
本実施の形態の画像拡大装置100では、入力画像101から、下側、横側、斜め側の、それぞれの推定対象位置の周辺にある、所定の領域内の画素を参照しながら、それぞれの領域内の画素に基づいて、複数の方向における方向別の類似度を求める。そして、下側、横側、斜め側の、それぞれの方向別の類似度の中から、最も類似度が高い方向に沿った画素列を特定し、所定のフィルタリング処理を行い、下側、横側、斜め側のそれぞれの推定対象位置の推定画素を求める。
これにより、一般的なエッジを含む画像に対するフィルタリング処理において生じる、本来エッジとして急峻である部分が滑らかになってしまったり、フィルタリング処理により周辺画素の信号が混ざってしまい、画像ボケや信号劣化を起こしてしまったりする問題を改善することができる。
つまり、最も類似度が高い方向を特定し、その方向の画素列に対してフィルタリング処理できることから、急激な画素値の変化を伴うようなエッジに対するフィルタリング処理を回避し、比較的滑らかな信号に対してフィルタリング処理を施すことができる。
また、本実施の形態の画像拡大装置100では、類似度が高い画素列に対してフィルタリング処理を行えばよいことから、複雑な周波数成分を含む信号に対応する必要がなく、フィルタリング処理で利用するフィルタのタップ数は、非常に短いタップであっても、推定結果に大きな劣化を伴うことなく十分な画素の推定を行うことができる。
更に、フィルタリング処理において、短いタップを利用することにより、非常に高速なフィルタリング処理を実現し、良好な拡大画像を生成することができる。
また、本実施の形態の画像拡大装置100では、通常の画像拡大で使用するフィルタリング処理のように、推定対象位置より以前にフィルタリング処理によって推定された画素を利用せず、入力画像として得られる整数位置の画素を利用して、最も類似度が高い方向の画素列を特定し、所定のフィルタリング処理を行い、推定対象位置の推定画素を生成するような構成になっている。したがって、下側、横側、斜め側の画像推定処理を、小数位置の推定画素が生成されるのを待つことなく、また、下側、横側、斜め側のそれぞれの画像推定処理に依存することなく、並列的に処理を進めることが可能となる。これにより、拡大画像全体を得るまでの時間を大幅に短縮することができるようになる。
次に、下側画像推定部110に関する詳細な構成および動作について説明する。図3(A)は、下側画像推定部110の詳細な概念ブロック図である。また、図4(A)は、下側画像推定部110の動作を表すフローチャートである。
下側画像推定部110は、例えば図3(A)で示されるように、対象領域画像取得部111、下側推定位置特定部112、下側第1評価対象画素特定部113、下側第1類似度検出部114、下側第1類似方向判定部115、下側第2評価対象画素特定部116、下側第2類似度検出部117、下側第2類似方向判定部118、下側フィルタリング位置特定部119、下側フィルタリング部120、及び下側制御部129によって構成される。
下側制御部129は、統合制御部109の制御に応じて、下側画像推定部110に含まれる各部の制御を行い、下側位置の推定画素が生成されるように制御する。下側制御部129は、現在どの部分の推定画素の生成を行おうとしているのかといった、下側画像推定処理の進捗状況を把握し、各部に対して指令を出すことにより、下側画像推定処理の制御を行う。
対象領域画像取得部111は、現在処理対象となっている画素位置や周辺領域の画像列を特定して、入力画像101から、現在処理対象となっている画像領域の画素列を取得し(S201)、下側推定位置特定部112、下側第1評価対象画素特定部113、下側第2評価対象画素特定部116、下側フィルタリング位置特定部119に供給する。
次に、下側推定位置特定部112は、対象領域画像取得部111で特定された画像領域を参照して、現在処理対象となっている下側の推定位置を特定し(S202)、下側の推定位置に関する情報(以後、下側推定位置情報)を、下側第1評価対象画素特定部113、下側第2評価対象画素特定部116に供給する。
次に、下側第1評価対象画素特定部113は、下側推定位置特定部112から下側推定位置情報を取得し、この情報に基づいて対象領域画像取得部111で特定された画像領域を参照しながら、第1の評価対象となる画素を特定し(S203)、下側第1類似度検出部114に供給する。ここで、下側第1評価対象画素特定部113で特定される第1の評価対象となる画素に関しては、後述する。
次に、下側第1類似度検出部114は、下側第1評価対象画素特定部113から特定された第1の評価対象となる画素列を取得し、下側の推定位置における、取得した画素列の所定の画素間の、第1の類似度をそれぞれ検出し(S204)、下側第1類似方向判定部115に供給する。ここで、下側の推定位置における、取得した画素列の所定の画素間の関係や類似度の検出に関しては、後述する。
次に、下側第1類似方向判定部115は、下側第1類似度検出部114から検出されたそれぞれの類似度を取得し、検出された類似度に基づいて、下側の推定位置における第1の判定を行い(S205)、検出された中で類似度が最も高いと判定された画素列の方向を特定する。下側第1類似方向判定部115は、この特定された方向に関する情報(以後、第1類似方向情報)を、下側第2評価対象画素特定部116に供給する。
次に、下側第2評価対象画素特定部116は、下側推定位置特定部112から下側推定位置情報、下側第1類似方向判定部115から第1類似方向情報を取得し、対象領域画像取得部111で特定された画像領域を参照しながら、第2の評価対象となる画素を特定し(S206)、下側第2類似度検出部117に供給する。ここで、下側第2評価対象画素特定部116で特定される第2の評価対象となる画素に関しては、後述する。
次に、下側第2類似度検出部117は、下側第2評価対象画素特定部116から特定された第2の評価対象となる画素列を取得し、下側の推定位置における、取得した画素列の所定の画素間の、第2の類似度をそれぞれ検出し(S207)、下側第2類似方向判定部118に供給する。ここで、下側の推定位置における、取得した画素列の所定の画素間の関係や類似度の検出に関しては、後述する。
次に、下側第2類似方向判定部118は、下側第2類似度検出部117から検出されたそれぞれの類似度を取得し、検出された類似度に基づいて、下側の推定位置における第2の判定を行い(S208)、検出された中で類似度が最も高いと判定された画素列の方向を特定する。下側第2類似方向判定部118は、この特定された方向に関する情報(以後、第2類似方向情報)を、下側フィルタリング位置特定部119に供給する。
次に、下側フィルタリング位置特定部119は、下側制御部129の指令により、下側第2類似方向判定部118から第2類似方向情報を取得し、対象領域画像取得部111で特定された画像領域を参照しながら、下側の推定位置の画素を推定するための、フィルタリング位置を特定し(S209)、対応するそれぞれの画素を、下側フィルタリング部120に供給する。
次に、下側フィルタリング部120は、下側制御部129の指令により、特定された位置の画素に対して、フィルタリング処理を行い(S210)、生成された推定画素を推定画素格納部103に供給する。
その後、推定画素格納部103は、下側制御部129の指令により、下側フィルタリング部120から生成された推定画素を取得し、拡大画像として現在処理対象となっている位置の下側位置に対して推定画素を格納する(S211)ことにより、下側画像推定部における一連の処理が完了する。
図4(B)は、横側画像推定部130の動作を表すためのフローチャートである。この横側画像推定部130は、下側画像推定部110と基本的には同様の動作を行うが、推定画素を求める際に用いる画像列や方向が、下側の推定位置と横側の推定位置で異なるものが用いられる。
図4(B)で示されるように、横側制御部149の指令により、対象領域画像取得部131は、現在処理対象となっている画像領域の画素列を取得し(S301)、横側推定位置特定部132は、画像領域の画素列を参照しながら、横側の推定位置を特定し(S302)、横側第1評価対象画素特定部133は、横側の推定位置に基づいて、第1の評価対象となる画素を特定し(S303)、横側第1類似度検出部134は、特定された第1の評価対象となるそれぞれの画素に基づいて、横側の推定位置における、第1の類似度を検出し(S304)、横側第1類似方向判定部135は、検出されたそれぞれの類似度に基づいて、横側の推定位置における第1の判定を行い(S305)、第1類似方向情報を特定する。
その後、横側第2評価対象画素特定部136は、特定された第1類似方向情報に基づいて、第2の評価対象となる画素を特定し(S306)、横側第2類似度検出部137は、特定された第2の評価対象となるそれぞれの画素に基づいて、横側の推定位置における、第2の類似度を検出し(S307)、横側第2類似方向判定部138は、検出されたそれぞれの類似度に基づいて、横側の推定位置における第2の判定を行い(S308)、第2類似方向情報を特定し、横側フィルタリング位置特定部139は、特定された第2類似方向情報に基づいて、横側の推定位置の画素を推定するための、フィルタリング位置を特定し(S309)、横側フィルタリング部140は、特定された位置に対して、フィルタリング処理を行い(S310)、推定画素格納部103は、推定画素を格納する(S311)ことにより、横側画像推定部における一連の処理が完了する。
このように、基本的な動作のフローチャートは、下側画像推定部110の動作を示す図4(A)で下側に関する部分を横側に置き換えたものと同様であることから説明を省略する。
図4(C)は、斜め側画像推定部150の動作を表すためのフローチャートである。この斜め側画像推定部150は、下側画像推定部110や横側画像推定部130と基本的には同様の動作を行うが、推定画素を求める際に用いる画像列や方向が、下側や横側の推定位置と斜め側の推定位置で異なるものが用いられる。
図4(C)で示されるように、斜め側制御部169の指令により、対象領域画像取得部151は、現在処理対象となっている画像領域の画素列を取得し(S401)、斜め側推定位置特定部152は、画像領域の画素列を参照しながら、斜め側の推定位置を特定し(S402)、斜め側第1評価対象画素特定部153は、斜め側の推定位置に基づいて、第1の評価対象となる画素を特定し(S403)、斜め側第1類似度検出部154は、特定された第1の評価対象となるそれぞれの画素に基づいて、斜め側の推定位置における、第1の類似度を検出し(S404)、斜め側第1類似方向判定部155は、検出されたそれぞれの類似度に基づいて、斜め側の推定位置における第1の判定を行い(S405)、第1類似方向情報を特定する。
その後、斜め側第2評価対象画素特定部156は、特定された第1類似方向情報に基づいて、第2の評価対象となる画素を特定し(S406)、斜め側第2類似度検出部157は、特定された第2の評価対象となるそれぞれの画素に基づいて、斜め側の推定位置における、第2の類似度を検出し(S407)、斜め側第2類似方向判定部158は、検出されたそれぞれの類似度に基づいて、斜め側の推定位置における第2の判定を行い(S408)、第2類似方向情報を特定し、斜め側フィルタリング位置特定部159は、特定された第2類似方向情報に基づいて、斜め側の推定位置の画素を推定するための、フィルタリング位置を特定し(S409)、斜め側フィルタリング部160は、特定された位置に対して、フィルタリング処理を行い(S410)、推定画素格納部103は、推定画素を格納する(S411)。これにより、斜め側画像推定部における一連の処理が完了する。
このように、基本的な動作のフローチャートは、図4(A)や図4(B)で、下側や横側に関する部分を斜め側に置き換えたものと同様であることから説明を省略する。
次に、本実施の形態でフィルタリング処理対象となる画素列の方向を特定するために方向別に検出する類似度に関して説明する。
本実施の形態で利用する類似度は、例えば、類似度を求める際に対象としている領域に属する画素値の平均値(以後、「類似度平均値」と呼ぶ)から、類似度を求める際に比較対象となる画素値(以後、「類似度比較値」と呼ぶ)が、どの程度違っているかを求めて、より類似度平均値に近いものを類似度が高いと判定する。ここで、類似度比較値と類似度平均値との違いを単純に求めると正負の数になってしまって比較する際に煩雑になることから、類似度比較値と類似度平均値との差を2乗することで負号の無い状態で比較に利用するようにしてもよい。つまり、類似度比較値と類似度平均値から分散を求めて比較に利用する構成となる。
また、類似度比較値と類似度平均値との差の2乗において、2乗を計算する際の乗算の演算量が、一般に、加減算やシフト演算よりも大きいことから、類似度比較値と類似度平均値との差の絶対値を求めて利用するようにすると更によい。つまり、類似度比較値と類似度平均値から偏差を求めて比較に利用することで、分散を求めて比較する場合よりも、より簡単な構成により類似度の検出や比較が可能となる。
ここで、一例として、具体的に類似度比較値と類似度平均値がどのように求められるかを示す。例えば、図6において、斜め側の推定画素を求めようとする際に利用するAとDの類似度は、次のように表すことができる。
Aの類似度=(L(A)−類似度平均値)^2
Dの類似度=(L(D)−類似度平均値)^2
ここでL(・)は画像位置の画素値、^2は2乗を意味する。
また、A−D方向の類似度(以後、AD類似度)は、
AD類似度=Aの類似度+Dの類似度
と表すことができる。
一般に、類似度平均値は、類似度比較値を含み、近傍画素集合の画素値の平均値であるから、近傍画素集合をU、近傍画素集合の要素数、つまり近傍画素集合の画素数をNとし、近傍画素集合の画素値の総和をL(SU)とすると、
類似度平均値=L(SU)/N
と表せる。
例えば図6において、U1{A,B,C,D}であるとすると、N1=4、L(SU1)=L(A)+L(B)+L(C)+L(D)であるため、
類似度平均値=L(SU1)/N1
=(L(A)+L(B)+L(C)+L(D))/4
となる。したがって、Aの類似度、Dの類似度は、
Aの類似度=(L(A)−(L(A)+L(B)+L(C)+L(D))/4)^2
Dの類似度=(L(D)−(L(A)+L(B)+L(C)+L(D))/4)^2
となる。また、AD類似度は、
AD類似度=(L(A)−(L(A)+L(B)+L(C)+L(D))/4)^2
+(L(D)−(L(A)+L(B)+L(C)+L(D))/4)^2
となる。
更に、本実施の形態では、2つの代表値の類似度の求め方を次のように変形し、方向別の類似度計算をより簡略化したものを利用すると、更に良い構成となる。
図6において、AとDの類似度を検出してAD類似度を求める場合を例として、説明する。
まず、類似度平均値を(L(A)+L(D))/2として簡略化する。これは、近傍画素集合をU2{A,D}、近傍画素集合の要素数をN2=2とし、U1に基づく類似度平均値であるL(SU1)/N1と、U2に基づく類似度平均値であるL(SU2)/N2で、大きな相違がなく、置き換えが可能であるとすることによる。
これによりAの類似度は、
Aの類似度=(L(A)−(L(A)+L(D))/2)^2
また、同様にDの類似度は、類似度比較値をL(D)、類似度平均値を(L(A)+L(D))/2とすると、
Dの類似度=(L(D)−(L(A)+L(D))/2)^2
次に、AD類似度を、Aの類似度とDの類似度との和として定義すると、
Aの類似度=(L(A)−(L(A)+L(D))/2)^2
=L(A)^2−L(A)(L(A)+L(D))+((L(A)+L(D))/2)^2
=−L(A)L(D)+((L(A)+L(D))/2)^2
=(L(A)^2−2L(A)L(D)+L(D)^2)/4
=(L(A)−L(D))^2/4
Dの類似度=(L(D)−(L(A)+L(D))/2)^2
=L(D)^2−L(D)(L(A)+L(D))+((L(A)+L(D))/2)^2
=−L(D)L(A)+((L(A)+L(D))/2)^2
=(L(A)^2−2L(A)L(D)+L(D)^2)/4
=(L(A)−L(D))^2/4
AD類似度=(L(A)−(L(A)+L(D))/2)^2+(L(D)−(L(A)+L(D))/2)^2
=(L(A)−L(D))^2/4+(L(A)−L(D))^2/4
=(L(A)−L(D))^2/2
となる。したがって、AD類似度は、上式もしくはAとDの差の2乗を比較に利用すればよい構成となる。
また、上式を更に変形し、AとDの差の2乗を、AとDの差の絶対値を求めて利用するようにすると更によい。
AD類似度は、(L(A)−L(D))^2/2であるため、これをs(AD)と置いて変形すると、
(L(A)−L(D))^2/2=s(AD)
L(A)−L(D)=±2*s(AD)^1/2
ここで、評価値としては正の値であることが望ましいことから、
|L(A)−L(D)|=2*s(AD)^1/2
これを新たなAD類似度S(AD)と置き直すことで、
S(AD)=|L(A)−L(D)|
となる。
このように、検出したい方向に属する2つの代表値を特定し、類似度を特定されたそれぞれの代表値の差の絶対値とすることで、より簡単な構成により類似度の検出や比較が可能となる。本実施の形態では、このような方法に基づいて、2つの代表値が示す方向別の類似度を検出するものとして説明する。
また、本実施の形態では、複数の画素値から2つの代表値を特定して、それらの大域的な方向の類似度を検出するように構成することもできる。例えば、図6において、A−D方向の類似度をA,Dを代表値として求めたが、A,A−L,A−T,A−TLの平均値と、D,D−R,D−B,D−BRの平均値を2つの代表値として類似度を求めるようにしても構わない。
図6は、本実施の形態における方向別の類似度を求める際に評価対象となる画素について説明する図である。
本実施の形態では、例えば、横方向であるA−B方向の類似度|L(A)−L(B)|、縦方向であるA−C方向の類似度|L(A)−L(C)|、左斜め方向であるA−D方向の類似度|L(A)−L(D)|、右斜め方向であるB−C方向の類似度|L(B)−L(C)|を、推定画素の推定位置に応じて異なる類似度を利用して、第1の評価を行うようにするとよい。
推定画素の推定位置が下側もしくは横側である場合において、第1の評価対象となる画素は、例えば、A,B,Cである。この評価対象となる画素から、横方向の類似度|L(A)−L(B)|、縦方向の類似度|L(A)−L(C)|を検出する。
ここでは、評価対象となる画素をA,B,Cとしたが、Dを含めるようにしても構わない。そして、横方向の類似度として|L(A)−L(B)|と|L(C)−L(D)|の平均値を利用し、縦方向の類似度として|L(A)−L(C)|と|L(B)−L(D)|の平均値を利用するような構成にしても構わない。
推定画素の推定位置が斜め側である場合において、第1の評価対象となる画素は、例えば、A,B,C,Dである。この評価対象となる画素から、左斜め方向の類似度|L(A)−L(D)|、右斜め方向の類似度|L(B)−L(C)|を検出する。
次に、図7によって、下側の推定位置における、第1および第2の評価対象となる画素について説明する。
図7(A)は、小数位置の画素まで利用する場合、図7(B)は、整数位置の画素のみ利用する場合を示す。
図7(A)のように小数位置の画素まで利用する場合には、まず、第1の評価対象としてh11,h12,h13の横方向、A−T,A,Cの縦方向の、どちらの方向がより類似度が高いかを検出する。ここで利用する類似度は、例えば、下側第1評価対象画素特定部113によって特定される、A,B,Cを評価対象となる画素に基づいて、下側第1類似度検出部114によって検出された、|L(A)−L(B)|、|L(A)−L(C)|である。
ここで、例えば、下側第1類似方向判定部115において、|L(A)−L(B)|と|L(A)−L(C)|を比較して、|L(A)−L(C)|の値が小さい、つまり縦方向の類似度が高いと判定された場合を考える。
この場合において、検出された中で類似度が最も高いものが縦方向であったため、例えば、下側第2評価対象画素特定部116では、A−T,A,Cの縦方向、h14,h15といった縦方向から少し左回転させた方向、h16,h17といった縦方向から少し右回転させた方向の画素が特定される。そして、これらの3方向のうち、どの方向のものが最も類似度が高くなるかを検出する。ここで、利用する類似度は、例えば、下側第2類似度検出部117によって検出された、|L(h14)−L(h15)|、|L(h16)−L(h17)|、および|L(A)−L(C)|である。下側第2類似度検出部117の検出過程において、この|L(A)−L(C)|は、下側第1類似度検出部114によって検出されたものを再度利用するように構成しても構わない。
これらの類似度に対して、例えば、下側第2類似方向判定部118において、|L(h14)−L(h15)|、|L(h16)−L(h17)|、|L(A)−L(C)|を比較して、最も類似度が高いものを特定する。特定された方向に関する情報である第2類似方向情報を、下側フィルタリング位置特定部119に供給して実際にフィルタリング対象となる画素を特定し、下側フィルタリング部120によってフィルタリング処理を行うことにより、下側の推定画素が生成される。一例として、|L(h14)−L(h15)|が最も類似度が高いと判定された場合には、フィルタリング対象となる画素の特定により、例えば、h14,h15が特定され、これらの画素列に対して所定のフィルタリング処理が行われるような構成が考えられる。
また、一例として、|L(h16)−L(h17)|が最も類似度が高いと判定された場合には、フィルタリング対象となる画素の特定により、例えば、h16,h17が特定され、これらの画素列に対して所定のフィルタリング処理が行われるような構成が考えられる。
また、一例として、|L(A)−L(C)|が最も類似度が高いと判定された場合には、フィルタリング対象となる画素の特定により、例えば、A−T,A,Cが特定され、これらの画素列に対して所定のフィルタリング処理が行われるような構成が考えられる。
同様に、例えば、下側第1類似方向判定部115において、|L(A)−L(B)|と|L(A)−L(C)|を比較して、|L(A)−L(B)|の値が小さい、つまり横方向の類似度が高いと判定された場合を考える。
この場合において、検出された中で類似度が最も高いものは横方向であったため、例えば、下側第2評価対象画素特定部116では、h11,h12,h13の横方向、C−L,Bといった横方向から少し左回転させた方向、A−L,Dといった横方向から少し右回転させた方向の画素が特定される。そして、これらの3方向のうち、どの方向のものが最も類似度が高くなるかを検出する。ここで、利用する類似度は、例えば、下側第2類似度検出部117によって検出された、|L(C−L)−L(B)|、|L(A−L)−L(D)|、および|L(A)−L(B)|である。下側第2類似度検出部117の検出過程において、この|L(A)−L(B)|は、下側第1類似度検出部114によって検出されたものを再度利用するように構成しても構わない。
これらの類似度に対して、例えば、下側第2類似方向判定部118において、|L(C−L)−L(B)|、|L(A−L)−L(D)|、|L(A)−L(B)|を比較して、最も類似度が高いものを特定する。特定された方向に関する情報である第2類似方向情報を、下側フィルタリング位置特定部119に供給して実際にフィルタリング対象となる画素を特定し、下側フィルタリング部120によってフィルタリング処理を行うことにより、下側の推定画素が生成される。一例として、|L(C−L)−L(B)|が最も類似度が高いと判定された場合には、フィルタリング対象となる画素の特定により、例えば、C−L,Bが特定され、これらの画素列に対して所定のフィルタリング処理が行われるような構成が考えられる。
また、一例として、|L(A−L)−L(D)|が最も類似度が高いと判定された場合には、フィルタリング対象となる画素の特定により、例えば、A−L,Dが特定され、これらの画素列に対して所定のフィルタリング処理が行われるような構成が考えられる。
また、一例として、|L(A)−L(B)|が最も類似度が高いと判定された場合には、フィルタリング対象となる画素の特定により、例えば、h11,h12,h13が特定され、これらの画素列に対して所定のフィルタリング処理が行われるような構成が考えられる。
図7(B)のように整数位置の画素のみ利用する場合には、まず、第1の評価として、横方向、縦方向のどちらの方向がより類似度が高いかを検出する。
ここで、小数位置の画素を利用しないことから、推定位置が下側である場合には、図7(B)で示されるように、横側に対応する画素列であるh11,h12,h13が存在しないことから、仮に横方向の類似度が高いと判定された場合には、下側第2類似方向判定部118において、|L(C−L)−L(B)|、|L(A−L)−L(D)|のみを比較して、類似度が高いものを特定することになる。また、仮に縦方向の類似度が高いと判定された場合には、縦方向から少し左回転させた方向の画素に対応するh14,h15や、縦方向から少し右回転させた方向の画素に対応するh16,h17が存在しないことから、仮に縦方向の類似度が高いと判定された場合には、下側第2類似方向判定部118において、そのまま縦方向の類似度が高いものとして特定することになる。
このように、整数位置の画素のみ利用する場合では、類似度に応じて選択できる方向の数が制限される代わりに、第2の評価における類似度の比較回数が削減されることから、より簡易で高速に処理できる構成を実現することができる。
フィルタリング対象となる画素の特定において、図7では、縦方向の類似度が最も高いと判定された場合には、A−T,A,Cが特定され、横方向の類似度が最も高いと判定された場合には、h11,h12,h13が特定され、その後のフィルタリング処理では、3タップの所定のフィルタリング処理が特定された画素列に対して行われる例が示されている。
しかし、別の一例としては、縦方向の類似度が最も高いと判定された場合には、A−T,A,Cの他に更にC−Bが特定され、横方向の類似度が最も高いと判定された場合には、h11,h12,h13の他に更にh18が特定され、その後のフィルタリング処理では、4タップの所定のフィルタリング処理が特定された画素列に対して行われるように構成することもできる。
ここでは3画素や4画素の画素列を特定し、3タップや4タップの所定のフィルタリング処理を行う構成について説明したが、更に多くの画素列に対して、対応するタップ数によるフィルタリング処理を行うように構成することもできる。
図8(A)は、横側の推定位置における、第1および第2の評価対象となる画素について説明する図である。基本的な考え方は、下側の推定位置における場合と同様であることから適宜説明を省略し、異なる部分のみ説明する。
図8(A)に示されるように、下側の推定位置と、横側の推定位置では、位置関係が異なっていることから、評価対象となる画素に対しても位置関係がずれた、異なる画素を利用することになる。
例えば、下側の推定位置の場合には、縦方向では整数位置、横方向では小数位置の画素列を利用していたが、横側の推定位置の場合には、縦方向では小数位置、横方向では整数位置の画素列を利用することになる。
また、横側の推定位置において、図8(B)のように整数位置の画素のみ利用する場合には、第2の評価においては、下側の推定位置の場合とは逆に、縦方向の類似度が高いと判定された場合には、縦方向の小数位置の画素が存在しないことから、縦方向から少し左回転させた方向の画素、縦方向から少し右回転させた方向の画素から検出される類似度を比較して、類似度の高い方向を特定することになる。また、横方向の類似度が高いと判定された場合には、横方向から少し左回転させた方向および横方向から少し右回転させた方向に対応する画素がそれぞれ存在しないことから、第2の評価においては、そのまま横方向を類似度が高い方向として特定することになる。
フィルタリング対象となる画素の特定において、図8では、縦方向の類似度が最も高いと判定された場合には、h21,h22,h23が特定され、横方向の類似度が最も高いと判定された場合には、A−L,A,Bが特定され、その後のフィルタリング処理では、3タップの所定のフィルタリング処理が特定された画素列に対して行われる例が示されている。
しかし、別の一例としては、縦方向の類似度が最も高いと判定された場合には、h21,h22,h23の他に更にh28が特定され、横方向の類似度が最も高いと判定された場合には、A−L,A,Bの他に更にB−Rが特定され、その後のフィルタリング処理では、4タップの所定のフィルタリング処理が特定された画素列に対して行われるように構成することもできる。
ここでは3画素や4画素の画素列を特定し、3タップや4タップの所定のフィルタリング処理を行う構成について説明したが、更に多くの画素列に対して、対応するタップ数によるフィルタリング処理を行うように構成することもできる。
図9は、斜め側の推定位置における、第1および第2の評価対象となる画素について説明する図である。
斜め側の推定位置において評価対象として利用する画素は、例えば、図9で示されるように整数位置の画素のみを利用するようにすると、下側および横側の推定画素に依存せずに単独で処理できるため、処理の並列化や高速化に対応することができ、より良い構成となる。
斜め側の推定位置において整数位置の画素のみを利用する場合では、下側および横側の推定位置における処理とは異なり、縦方向、横方向の類似度の比較を行うのではなく、まず第1の評価として、左斜め方向、右斜め方向の類似度の比較を行う点で異なっている。
まず、第1の評価対象としてA−TL,A,Dの左斜め方向、B−TR,B,Cの右斜め方向の、どちらの方向がより類似度が高いかを検出する。ここで利用する類似度は、例えば、斜め側第1評価対象画素特定部153によって特定される、A,B,C,Dを評価対象となる画素に基づいて、斜め側第1類似度検出部154によって検出された、|L(A)−L(D)|、|L(B)−L(C)|である。
ここで、例えば、斜め側第1類似方向判定部155において、|L(A)−L(D)|と|L(B)−L(C)|を比較して、|L(A)−L(D)|の値が小さい、つまり左斜め方向の類似度が高いと判定された場合を考える。
この場合において、検出された中で類似度が最も高いものが左斜め方向であったため、例えば、斜め側第2評価対象画素特定部156では、A−TL,A,Dの左斜め方向、A−L,D−Rといった左斜め方向から少し左回転させた方向、A−T,D−Bといった左斜め方向から少し右回転させた方向の画素が特定される。そして、これらの3方向のうち、どの方向のものが最も類似度が高くなるかを検出する。ここで、利用する類似度は、例えば、斜め側第2類似度検出部157によって検出された、|L(A−L)−L(D−R)|、|L(A−T)−L(D−B)|、および|L(A)−L(D)|である。斜め側第2類似度検出部157の検出過程において、この|L(A)−L(D)|は、斜め側第1類似度検出部154によって検出されたものを再度利用するように構成しても構わない。
これらの類似度に対して、例えば、斜め側第2類似方向判定部158において、|L(A−L)−L(D−R)|、|L(A−T)−L(D−B)|、|L(A)−L(D)|を比較して、最も類似度が高いものを特定する。特定された方向に関する情報である第2類似方向を、斜め側フィルタリング位置特定部159に供給して実際にフィルタリング対象となる画素を特定し、斜め側フィルタリング部160によってフィルタリング処理を行うことにより、斜め側の推定画素が生成される。一例として、|L(A−L)−L(D−R)|が最も類似度が高いと判定された場合には、フィルタリング対象となる画素の特定により、例えば、A−L,D−Rが特定され、これらの画素列に対して所定のフィルタリング処理が行われるような構成が考えられる。
また、一例として、|L(A−T)−L(D−B)|が最も類似度が高いと判定された場合には、フィルタリング対象となる画素の特定により、例えば、A−T,D−Bが特定され、これらの画素列に対して所定のフィルタリング処理が行われるような構成が考えられる。
また、一例として、|L(A)−L(D)|が最も類似度が高いと判定された場合には、フィルタリング対象となる画素の特定により、例えば、A−TL,A,Dが特定され、これらの画素列に対して所定のフィルタリング処理が行われるような構成が考えられる。
同様に、例えば、斜め側第1類似方向判定部155において、|L(A)−L(D)|と|L(B)−L(C)|を比較して、|L(B)−L(C)|の値が小さい、つまり右斜め方向の類似度が高いと判定された場合を考える。
この場合において、検出された中で類似度が最も高いものは右斜め方向であったため、例えば、斜め側第2評価対象画素特定部156では、B−TR,B,Cといった右斜め方向、B−T,C−Bといった右斜め方向から少し左回転させた方向、B−R,C−Lといった右斜め方向から少し右回転させた方向の画素が特定される。そして、これらの3方向のうち、どの方向のものが最も類似度が高くなるかを検出する。ここで、利用する類似度は、例えば、斜め側第2類似度検出部157によって検出された、|L(B−T)−L(C−B)|、|L(B−R)−L(C−L)|、および|L(B)−L(C)|であるとよい。斜め側第2類似度検出部157の検出過程において、この|L(B)−L(C)|は、斜め側第1類似度検出部154によって検出されたものを再度利用するように構成しても構わない。
これらの類似度に対して、例えば、斜め側第2類似方向判定部158において、|L(B−T)−L(C−B)|、|L(B−R)−L(C−L)|、|L(B)−L(C)|を比較して、最も類似度が高いものを特定する。特定された方向に関する情報である第2類似方向情報を、斜め側フィルタリング位置特定部159に供給して実際にフィルタリング対象となる画素を特定し、斜め側フィルタリング部160によってフィルタリング処理を行うことにより、斜め側の推定画素が生成される。一例として、|L(B−T)−L(C−B)|が最も類似度が高いと判定された場合には、フィルタリング対象となる画素の特定により、例えば、B−T,C−Bが特定され、これらの画素列に対して所定のフィルタリング処理が行われるような構成が考えられる。
また、一例として、|L(B−R)−L(C−L)|が最も類似度が高いと判定された場合には、フィルタリング対象となる画素の特定により、例えば、B−R,C−Lが特定され、これらの画素列に対して所定のフィルタリング処理が行われるような構成が考えられる。
また、一例として、|L(B)−L(C)|が最も類似度が高いと判定された場合には、フィルタリング対象となる画素の特定により、例えば、B−TR,B,Cが特定され、これらの画素列に対して所定のフィルタリング処理が行われるような構成が考えられる。
フィルタリング対象となる画素の特定において、図9では、左斜め方向の類似度が最も高いと判定された場合には、A−TL,A,Dが特定され、右斜め方向の類似度が最も高いと判定された場合には、B−TR,B,Cが特定され、その後のフィルタリング処理では、3タップの所定のフィルタリング処理が特定された画素列に対して行われる例が示されている。
しかし、別の一例としては、左斜め方向の類似度が最も高いと判定された場合には、A−TL,A,Dの他に更にD−BRが特定され、右斜め方向の類似度が最も高いと判定された場合には、B−TR,B,Cの他に更にC−BLが特定され、その後のフィルタリング処理では、4タップの所定のフィルタリング処理が特定された画素列に対して行われるように構成することもできる。
ここでは3画素や4画素の画素列を特定し、3タップや4タップの所定のフィルタリング処理を行う構成について説明したが、更に多くの画素列に対して、対応するタップ数によるフィルタリング処理を行うように構成することもできる。
図10は、本実施の形態において、下側の推定位置の推定画素を生成する際に行われる、所定のフィルタリング処理の一例について説明する図である。図10では、一例として、縦方向の類似度が一番高く、フィルタリング対象となる画素の特定により、A−T,A,Cが特定された場合について説明する。
図10のような場合では、次のようなフィルタリング処理を行うように構成するとよい。下側の推定画素を求める際に、まず、特定された画素列の中央の画素、ここではAに注目し、Aの位置の中間値Tを生成するために、特定された画素列の中央の画素の両隣として特定された画素、ここではA−T,Cの位置の画素を利用して、L(T)=(L(A−T)+L(C))>>1とすることにより、A−TとCからAの位置の中間値を生成する。その後、更新後のAをA'として、L(A')=(L(T)+L(A))>>1とすることにより、TとAからAの位置の更新後のAであるA'を生成する。そして最後に、下側の推定画素 = (L(A')+L(C))>>1とすることにより、A'と、両隣の画素のうち推定位置に近いもの、つまりCから下側の推定位置の推定画素を生成する。ここで、各画素の画素値は整数であるものとし、>>NはNビットの右シフト演算であるものとする。つまり、>>1は、1ビットの右シフト演算となる。
また、より簡易的なフィルタリング処理としては、例えば、L(A')=L(T)として、最後に、下側の推定画素=(L(A')+L(C))>>1とすることにより、A'と、両隣の画素のうち推定位置に近いもの、つまりCから下側の推定位置の推定画素を生成するように構成してもよい。
本実施の形態のフィルタリング処理を、例えば、上述のような整数演算の加算とシフト演算によって構成して、3タップのフィルタリング処理を行うことにより、3タップのフィルタリング係数を各対応画素に乗算し、それぞれ加算するような、従来型のフィルタリング処理よりも、大幅に演算量を低減することができるようになる。これは、整数もしくは小数の乗算にかかる演算量が、加減算やシフト演算よりも非常に多くの演算量を必要とすることによるものである。
また、図10で示されるような下側の推定位置の推定画素を求める場合には、従来型のフィルタリング処理では、一般に偶数タップのフィルタ係数を用いたフィルタリング処理を行うために、フィルタリング処理に多くの画素と演算量を必要とする。しかし、本実施の形態のような整数演算の加算とシフト演算によって構成された、3タップのフィルタリング処理では、例えば、図10で示されるように、Cの下の整数位置の画素であるC−Bを必要としないことから、下側の推定位置に隣接する画素よりも外側の画素の特徴、つまり画素値の変化量を取り込みつつ、正しい位相の画素を生成する、最も少ないフィルタリング処理を実現することができる。
また、本実施の形態では、類似度の高い方向に対して、フィルタリング処理を行うため、フィルタリング対象となる画素の変化量はあまり大きくないものに対してフィルタリング処理を行うことで、最大限の効果が得られるように構成されている。本実施の形態のフィルタリング処理では、3タップであるが故に、例えば、CとC−Bとの間に急激な画素値の変化があるような場合であっても、図10に示されるように、縦方向の類似度が最も高いと判定された場合に、生成される推定画素に影響を与えないようにすることが可能となる。
図10では3タップのフィルタリング処理を例として説明しているが、必要であれば、フィルタリング対象となる画素の特定において、更にC−Bが特定され、4タップの所定のフィルタリング処理を行うように構成することもできる。
4タップの所定のフィルタリング処理の一例として、次のような構成が考えられる。
上述のような3タップのフィルタリング処理の過程で、A'を生成するが、この処理と同様に、Cの位置の中間値をT2として、L(T2)=(L(A)+L(C−B))>>1を求め、L(C')=(L(T2)+L(C))>>1のように、C'を生成するとよい。そして、最後に、下側の推定画素=(L(A')+L(C'))>>1として下側の推定位置の推定画素を生成するとよい。
上述の3タップや4タップで構成される所定のフィルタリング処理においては、便宜上、中間値T,T2やA',C'を生成した後に下側推定画素を生成するように説明しているが、これらを単一の計算式によって行い、中間結果はレジスタ等の高速に処理できる一時的なバッファに格納しながら計算を進めるように構成するとよい。
また、ここでの例では、3タップや4タップで構成される所定のフィルタリング処理について説明したが、別の一例としては、更に多くのタップ数による所定のフィルタリング処理を行うような構成をとることができる。例えば、同様の方法でA−T'やC−B'を生成し、その後は3タップや4タップと同様の処理を行うことで、下側推定画素を生成していく。
このように、タップ数が拡大した場合でも同様の方法を再帰的に行うことで、下側の推定位置の推定画素を生成するために必要となる中間値や画素を生成しながら、最終的に下側推定画素を生成するように構成することができる。また、このような計算を単一の計算式によって表現して計算式を高速に処理するように構成してもよい。
図11は、本実施の形態において、横側の推定位置の推定画素を生成する際に行われる、所定のフィルタリング処理の一例について説明する図である。図11では、一例として、横方向の類似度が一番高く、フィルタリング対象となる画素の特定により、A−L,A,Bが特定された場合について説明する。
図11のような場合では、次のようなフィルタリング処理を行うように構成するとよい。横側の推定画素を求める際に、まず、特定された画素列の中央の画素、ここではAに注目し、Aの位置の中間値Tを生成するために、特定された画素列の中央の画素の両隣として特定された画素、ここではA−L,Bの位置の画素を利用して、L(T)=(L(A−L)+L(B))>>1とすることにより、A−LとBからAの位置の中間値を生成する。その後、更新後のAをA'として、L(A')=(L(T)+L(A))>>1とすることにより、TとAからAの位置の更新後のAであるA'を生成する。そして最後に、横側の推定画素=(L(A')+L(B))>>1とすることにより、A'と、両隣の画素のうち推定位置に近いもの、つまりBから横側の推定位置の推定画素を生成する。このように、図10で示される下側の推定位置の推定画素と同様の求め方により、横側の推定画素を生成する。
また、より簡易的なフィルタリング処理としては、例えば、L(A')=L(T)として、最後に、横側の推定画素=(L(A')+L(B))>>1とすることにより、A'と、両隣の画素のうち推定位置に近いもの、つまりBから横側の推定位置の推定画素を生成するように構成してもよい。
図11では3タップのフィルタリング処理を例として説明しているが、下側の推定画素を求める際の例で説明したものと同様に、必要であれば、フィルタリング対象となる画素の特定において、更にB−Rが特定され、4タップの所定のフィルタリング処理を行うように構成することもできる。
図12は、本実施の形態において、斜め側の推定位置の推定画像を生成する際に行われる、所定のフィルタリング処理の一例について説明する図である。図12では、一例として、左斜め方向の類似度が一番高く、フィルタリング対象となる画素の特定により、A−TL,A,Dが特定された場合について説明する。
図11のような場合では、次のようなフィルタリング処理を行うように構成するとよい。斜め側の推定画素を求める際に、まず、特定された画素列の中央の画素、ここではAに注目し、Aの位置の中間値Tを生成するために、特定された画素列の中央の画素の両隣として特定された画素、ここではA−TL,Dの位置の画素を利用して、L(T)=(L(A−TL)+L(D))>>1とすることにより、A−TLとDからAの位置の中間値を生成する。その後、更新後のAをA'として、L(A')=(L(T)+L(A))>>1とすることにより、TとAからAの位置の更新後のAであるA'を生成する。そして最後に、斜め側の推定画素=(L(A')+L(D))>>1とすることにより、A'と、両側の画素のうち推定位置に近いもの、つまりDから斜め側の推定位置の推定画素を生成する。このように、図10や図11で示される下側や横側の推定位置の推定画素と同様の求め方により、斜め側の推定画素を生成する。
また、より簡易的なフィルタリング処理としては、例えば、L(A')=L(T)として、最後に、斜め側の推定画素=(L(A')+L(D))>>1とすることにより、A'と、両隣の画素のうち推定位置に近いもの、つまりDから斜め側の推定位置の推定画素を生成するように構成してもよい。
図12では3タップのフィルタリング処理を例として説明しているが、左斜め方向のフィルタリング処理において、下側や横側の推定画素を求める際の例で説明したものと同様に、必要であれば、フィルタリング対象となる画素の特定において、更にD−BRが特定され、4タップの所定のフィルタリング処理を行うように構成することもできる。
上述の左斜め方向のフィルタリング処理と同様に、右斜め方向のフィルタリング処理についても同様である。図12において、一例として、右斜め方向の類似度が一番高く、フィルタリング対象となる画素の特定により、B−TR,B,Cが特定され、上述の左斜め方向のフィルタリング処理と同様の処理を行うことにより、斜め側の推定画素を生成することができる。
図12では3タップのフィルタリング処理を例として説明しているが、右斜め方向のフィルタリング処理において、下側や横側の推定画素を求める際の例で説明したものと同様に、必要であれば、フィルタリング対象となる画素の特定において、更にC−BLが特定され、4タップの所定のフィルタリング処理を行うように構成することもできる。
ここで、本実施の形態においては、縦方向、横方向、左斜め方向、右斜め方向に対しては、主に、本実施の形態の一例である3タップの所定のフィルタリング処理が行えるように、フィルタリング対象となる画素が特定されるとよい。それ以外の方向に対しては、本実施の形態の2タップのフィルタリング処理が行えるように、フィルタリング対象となる画素が特定されるとよい。このように本実施の形態では、3タップもしくは2タップのフィルタリング処理によって推定画素を生成することから、非常に少ない演算量でフィルタリング処理を行うことができる。
縦方向、横方向、左斜め方向、右斜め方向以外の方向に対する、本実施の形態の所定のフィルタリング処理としては、例えば、2タップのフィルタリング処理を行うように構成するとよい。
一例として、図7で示される、下側の推定画素を求める場合において、横方向の類似度が高く、その後、類似度が最も高い方向が、横方向から少し左回転させた方向である場合について説明する。この一例では、フィルタリング対象となる画素の特定において、C−L,Bが特定される。このC−L,Bの位置の画素を利用して、下側の推定画素を、下側の推定画素=(L(C−L)+L(B))>>1として生成する。他の方向の2タップのフィルタリング処理についても、同様に行う。
このように、2タップのフィルタリング処理によって推定画素を生成することから、非常に少ない演算量で高速にフィルタリング処理を行うことができる。これは、あらかじめ類似度が高い方向が特定されているからこそ、このような非常に短いタップ数のフィルタリング処理を適用できることに注意する。
(実施の形態2)
実施の形態2として、例えば、図13および図14で示されるような画像拡大装置200を構成してもよい。画像拡大装置200は、例えば、図15および図16のフローチャートで示される動作を行う。図16は、より詳細な動作を示したものである。実施の形態2の構成は、実施の形態1の構成から、下側、横側、斜め側の推定画素を求める際に利用する、それぞれの類似度を検出する処理を統合し、下側、横側、斜め側の処理過程において重複して類似度を検出していたものを排除し、より効率良く処理できるようにしている。以下、図13および図14で示される構成および動作について説明する。
画像拡大装置200は、図13で示されるように、例えば、対象領域画像取得部203、統合評価対象画素特定部204、統合類似度検出部205、推定画素格納部206、統合制御部209、下側画像推定部210、横側画像推定部230、及び斜め側画像推定部250を備える。ここで、画像拡大装置200を構成する各部は、統合制御部209の指令に基づいて動作するものとして説明する。
図13の画像拡大装置200は、撮像装置181、伝送装置182、記録装置183、記録媒体184、蓄積装置185などから、処理対象となる信号を入力画像101として取得する。
対象領域画像取得部203は、入力画像101から、現在処理対象となっている画像領域を取得し(S501)、統合評価対象画素特定部204、下側画像推定部210、横側画像推定部230、斜め側画像推定部250、推定画素格納部206にそれぞれ供給する。
次に、統合評価対象画素特定部204は、現在処理対象となっている画像領域を参照しながら、下側、横側、斜め側における、類似度の評価対象になる画素列を特定し(S502)、統合類似度検出部205に供給する。
次に、統合類似度検出部205は、統合評価対象画素特定部204によって特定された、下側、横側、斜め側における、評価対象となっている画素列を用いて類似度を検出し(S503)、検出されたそれぞれの類似度のうち、下側、横側、斜め側の推定画素の生成でそれぞれ必要になるものを、下側画像推定部210、横側画像推定部230、斜め側画像推定部250に供給する。
次に、下側画像推定部210、横側画像推定部230、斜め側画像推定部250のそれぞれは、統合類似度検出部205から検出されたそれぞれの類似度を取得し、対象領域画像取得部203で特定されている画像領域を参照しながら、下側、横側、斜め側の画像推定処理を行い(S504,S505,S506)、生成された下側、横側、斜め側の推定画素を推定画素格納部206に供給する。
次に、推定画素格納部206は、下側画像推定部210、横側画像推定部230、斜め側画像推定部250によって生成された下側、横側、斜め側の推定画素をそれぞれ取得して、下側、横側、斜め側の推定画素を格納する(S507)。
その後、統合制御部209は、対象となる全ての推定処理が完了したかを判定し(S508)、全ての推定処理が完了した場合(S508 YES)、生成された拡大画像を出力するように推定画素格納部206に指令を行う。この指令に基づいて、推定画素格納部206は生成された拡大画像を出力することにより、処理が完了する。
全ての推定処理が完了していない場合(S508 NO)、次の処理対象に更新し、S503に戻って処理を繰り返す。
以上のような実施の形態2の画像拡大装置200の構成および動作を行うことにより、更に効率よく画像拡大処理を行うことができるようになる。
次に、下側画像推定部210の詳細な構成および動作について説明する。図14(A)は、下側画像推定部210の詳細な概念ブロック図である。また、図16(A)は、下側画像推定部210の動作を表すフローチャートである。ここで、下側画像推定部210を構成する各部は、下側制御部229の指令に基づいて動作するものとして説明する。
まず、対象領域画像取得部203は、統合制御部209の指令により、現在処理対象となっている画像領域の画素列を取得し(S601)、下側推定位置特定部211に供給する。
次に、下側推定位置特定部211は、対象領域画像取得部203で特定された画像領域を参照しながら、現在処理対象となっている画素位置の下側の推定位置を特定し(S602)、下側推定位置情報として下側フィルタリング位置特定部213に供給する。
次に、下側類似方向判定部212は、統合類似度検出部205から検出されたそれぞれの類似度を取得し、類似度に基づいて、下側の推定位置における、類似方向の判定を行い(S603)、第1類似方向情報を特定した後に、第2類似方向情報を特定し、下側フィルタリング位置特定部213に供給する。
次に、下側フィルタリング位置特定部213は、下側推定位置特定部211から下側推定位置情報、下側類似方向判定部212から第2類似方向情報を取得し、対象領域画像取得部203で特定された画像領域を参照しながら、下側の推定位置の画素を推定するための、フィルタリング位置を特定し(S604)、対応するそれぞれの画素を、下側フィルタリング部214に供給する。
次に、下側フィルタリング部214は、特定された位置の画素に対して、フィルタリング処理を行い(S605)、生成された推定画素を推定画素格納部206に供給する。
その後、推定画素格納部206は、下側フィルタリング部214から生成された推定画素を取得し、拡大画像として現在処理対象となっている位置の下側の位置に対して推定画素を格納する(S606)ことにより、下側画像推定部210における一連の処理が完了する。
図14(B)は、横側画像推定部230の詳細な概念ブロック図である。また、図16(B)は、横側画像推定部230の動作を表すためのフローチャートである。この横側画像推定部230は、下側画像推定部210と基本的には同様の動作を行うが、推定画素を求める際に用いる画像列や方向が、下側の推定位置と横側の推定位置で異なるものが用いられる。ここで、横側画像推定部230を構成する各部は、横側制御部249の指令に基づいて動作するものとして説明する。
図14(B)で示されるように、対象領域画像取得部203は、統合制御部209の指令により、現在処理対象となっている画素領域の画素列を取得し(S701)、横側推定位置特定部231に供給する。
次に、横側推定位置特定部231は、対象領域画像取得部203で特定された画像領域を参照しながら、横側の推定位置を特定し(S702)、横側推定位置情報として横側フィルタリング位置特定部233に供給する。
次に、横側類似方向判定部232は、統合類似度検出部205から検出されたそれぞれの類似度を取得し、類似度に基づいて、横側の推定位置における、類似方向の判定を行い(S703)、第1類似方向情報を特定した後に、第2類似方向情報を特定し、横側フィルタリング位置特定部233に供給する。
次に、横側フィルタリング位置特定部233は、横側推定位置特定部231から横側推定位置情報、横側類似方向判定部232から第2類似方向情報を取得し、対象領域画像取得部203で特定された画像領域を参照しながら、横側の推定位置の画素を推定するための、フィルタリング位置を特定し(S704)、対応するそれぞれの画素を、横側フィルタリング部234に供給する。
次に、横側フィルタリング部234は、特定された位置の画素に対して、フィルタリング処理を行い(S705)、生成された推定画素を推定画素格納部206に供給する。
その後、推定画素格納部206は、横側フィルタリング部234から生成された推定画素を取得し、拡大画像として現在処理対象となっている位置の横側の位置に対して推定画素を格納する(S706)ことにより、横側画像推定部230における一連の処理が完了する。
図14(C)は、斜め側画像推定部250の詳細な概念ブロック図である。また、図16(C)は、斜め側画像推定部250の動作を示すフローチャートである。この斜め側画像推定部250は、下側画像推定部210、横側画像推定部230と基本的には同様の動作を行うが、推定画素を求める際に用いる画像列や方向が、下側や横側の推定位置と斜め側の推定位置で異なるものが用いられる。ここで、斜め側画像推定部250を構成する各部は、斜め側制御部269の指令に基づいて動作するものとして説明する。
図14(C)で示されるように、対象領域画像取得部203は、統合制御部209の指令により、現在処理対象となっている画素領域の画素列を取得し(S801)、斜め側推定位置特定部251に供給する。
次に、斜め側推定位置特定部251は、対象領域画像取得部203で特定された画像領域を参照しながら、斜め側の推定位置を特定し(S802)、斜め側推定位置情報として斜め側フィルタリング位置特定部253に供給する。
次に、斜め側類似方向判定部252は、統合類似度検出部205から検出されたそれぞれの類似度を取得し、類似度に基づいて、斜め側の推定位置における、類似方向の判定を行い(S803)、第1類似方向情報を特定した後に、第2類似方向情報を特定し、斜め側フィルタリング位置特定部253に供給する。
次に、斜め側フィルタリング位置特定部253は、斜め側推定位置特定部251から斜め側推定位置情報、斜め側類似方向判定部252から第2類似方向情報を取得し、対象領域画像取得部203で特定された画像領域を参照しながら、斜め側の推定位置の画素を推定するための、フィルタリング位置を特定し(S804)、対応するそれぞれの画素を、斜め側フィルタリング部254に供給する。
次に、斜め側フィルタリング部254は、特定された位置の画素に対して、フィルタリング処理を行い(S805)、生成された推定画素を推定画素格納部206に供給する。
その後、推定画素格納部206は、斜め側フィルタリング部254から生成された推定画素を取得し、拡大画像として現在処理対象となっている位置の斜め側の位置に対して推定画素を格納する(S806)ことにより、斜め側画像推定部250における一連の処理が完了する。
以上述べたことは、図13および図14で示される本実施の形態の画像拡大装置200の基本的な構成と動作の一例である。このような構成および動作により、以下のような効果を得ることができる。
実施の形態1では、下側、横側、斜め側の推定位置における推定画素を生成する際に、下側、横側、斜め側の処理において、対象領域を参照しながら必要とする画素間方向の類似度をそれぞれの推定位置の処理ごとに別々に検出していた。よって、対象領域を参照する際の画像の授受の回数が増大したり、同じ画素間方向の類似度を重複して検出していたりすることが生じていた。しかし、実施の形態2のような画像拡大装置200であれば、統合類似度検出部205によって、下側、横側、斜め側の処理において必要とする全ての類似度の検出をあらかじめ行っておくことが可能となる。よって、下側、横側、斜め側の画像推定部210,230,250では、それぞれの推定位置において必要とする類似度を、統合類似度検出部205から取得することが可能となり、不要な対象領域の参照や、類似度を重複して検出することなく、より簡易な構成をとることが可能になる。
(実施の形態3)
更に別の構成の例として、図17の実施の形態3の画像拡大装置300は、実施の形態1の構成を修正して、以前の推定画素を利用して現在処理対象となっている推定画素を求める構成である。この画像拡大装置300において、推定画素格納部303に対する画像列の入出力において、実施の形態1と異なっているものの、各部の基本的な構成や動作は、実施の形態1と同様であるため、重複する部分については説明を省略する。実施の形態3の画像拡大装置300の動作としては、次のような違いがある。
画像拡大装置300の各部は、統合制御部309の指令に基づいて動作する。まず、推定画素格納部303は、現在処理対象の基準としている画素が取得されていない場合には、入力画像101から取得して対応する位置に格納するとともに、入力画像101から、現在処理対象となっている画像領域を特定し、下側、横側、斜め側の画像推定部310、330、350に供給する。ここで、既に以前に生成された推定画素が画像領域に含まれる場合には、必要に応じて下側、横側、斜め側の画像推定部310、330、350に供給する。その後、下側、横側、斜め側の画像推定部310、330、350では、それぞれの推定画素を生成し、新たに生成されたそれぞれの推定画素を推定画素格納部303に供給する。推定画素格納部303では、新たな生成された推定画素を取得し、拡大画像を構成するための画像メモリの対応する位置に格納するとともに、画像拡大処理が完了して拡大画像全体が出来上がった場合には、生成された拡大画像を出力画像102として出力する。
以上述べたことは、図17で示される実施の形態3の画像拡大装置300の基本的な構成と動作の一例である。このような構成および動作により、次のような効果を得ることができる。
実施の形態3の画像拡大装置300では、推定画素格納部303によって、以前に生成された推定画素が供給されることにより、現在処理対象となっている推定位置よりも以前に生成された小数位置の推定画素が利用できるようになる。したがって、類似度の最も高い方向を特定する際に、小数位置の画素を利用して方向の精度をより高めることが可能となる。これにより、所定のフィルタリング処理で用いるフィルタの特性を、急峻な信号に対応することが難しい、より簡易なものを採用することができ、画像拡大装置300をより高速で簡易な構成により実現することができるようになる。
また、より最適な方向に対するフィルタリング処理を行うことができるようになることから、生成される拡大画像の画像品質の向上につながる。
(実施の形態4)
更に別の構成の例として、図18の実施の形態4の画像拡大装置400は、実施の形態2の構成を修正して、以前の推定画素を利用して現在処理対象となっている推定画素を求める構成である。この画像拡大装置400において、対象領域画像取得部403が、以前に生成された推定画像を含む、現在処理対象となっている画像領域を各部に供給するように構成する点で異なっている。他の各部の基本的な構成や動作は、実施の形態2と同様であるため、重複する部分については説明を省略する。実施の形態4の画像拡大装置400の動作としては、次のような違いがある。
画像拡大装置400の各部は、統合制御部409の指令に基づいて動作する。まず、推定画素格納部406は、現在処理対象の基準としている画素が取得されていない場合には、入力画像101から取得して対応する位置に格納するとともに、入力画像101から、現在処理対象となっている画像領域を特定し、対象領域画像取得部403に供給する。ここで、既に以前に生成された推定画素が画像領域に含まれる場合には、これらの推定画素も含めて供給する。対象領域画像取得部403は、既に以前に生成された推定画素を含む画像領域を特定し、統合評価対象画素特定部404、そして、下側、横側、斜め側の画像推定部410,430,450に供給する。その後、統合評価対象画素特定部404では、現在の処理対象となっている画像領域を参照しながら、下側、横側、斜め側における、類似度の評価対象になる画素列を特定し、統合類似度検出部405に供給する。その後、統合類似度検出部405は、統合評価対象画素特定部404によって特定された、下側、横側、斜め側における、評価対象となっている画素列を用いて類似度を検出し、検出されたそれぞれの類似度のうち、下側、横側、斜め側の推定画素の生成でそれぞれ必要になるものを、下側、横側、斜め側の画像推定部410、430、450に供給する。
その後、下側、横側、斜め側の画像推定部410、430、450のそれぞれは、統合類似度検出部405から検出されたそれぞれの類似度を取得し、対象領域画像取得部403で特定されている画像領域を参照しながら、下側、横側、斜め側の画像推定処理を行い、生成された下側、横側、斜め側の推定画素を推定画素格納部406に供給する。推定画素格納部406では、新たな生成された推定画素を取得し、拡大画像を構成するための画像メモリの対応する位置に格納するとともに、画像拡大処理が完了して拡大画像全体出来上がった場合には、生成された拡大画像を出力画像102として出力する。
以上述べたことは、図18で示される本実施の形態の画像拡大装置400の基本的な構成と動作の一例である。このような構成および動作により、次のような効果を得ることができる。
実施の形態4の画像拡大装置400では、推定画素格納部406によって、以前に生成された推定画素が供給されることにより、現在処理対象となっている推定位置よりも以前に生成された小数位置の推定画素が利用できるようになる。したがって、類似度の最も高い方向を特定する際に、小数位置の画素を利用して方向の精度をより高めることが可能となる。これにより、所定のフィルタリング処理で用いるフィルタの特性を、急峻な信号に対応することが難しい、より簡易なものを採用することができ、画像拡大装置400をより高速で簡易な構成により実現することができるようになる。
更に、実施の形態2と同様に、同じ画素間方向の類似度を重複して検出していたものを、下側、横側、斜め側の処理において必要とする全ての類似度の検出をあらかじめ行っておくことを可能にしたことから、小数位置の画素を利用することにより増大する類似度を検出する回数の増大を抑制し、より簡易な構成をとることが可能になる。
また、より最適な方向に対するフィルタリング処理を行うことができるようになることから、生成される拡大画像の画像品質の向上につながる。
(実施形態5)
更に別の構成の例として、実施の形態1の構成を修正して、所定のフィルタリング処理において、4タップのフィルタリング処理を行うような構成としても構わない。
4タップの所定のフィルタリング処理の一例として、次のような構成が考えられる。例えば、図10で示されるように、下側の位置の推定画素を求める際の、3タップのフィルタリング処理の過程においてA'を生成するが、この処理と同様に、Cの位置の中間値をT2として、L(T2)=(L(A)+L(C−B))>>1を求め、L(C')=(L(T)+L(C))>>1のように、C'を生成する。そして、最後に、下側の推定画素=(L(A')+L(C'))>>1として下側の推定位置の推定画素を生成する。同様に、図11で示されるような横側の位置や、図12で示されるような斜め側の位置の推定画素を求める際に、上述のような4タップのフィルタリング処理を行うことにより、推定画素を生成する。
また、より簡易的な4タップのフィルタリング処理の例としては、図10において、L(A')=L(T)とし、L(C')=L(T2)として、最後に、下側の推定画素=(L(A')+L(C'))>>1として下側の推定位置の推定画素を生成してもよい。また、これらの演算を統合して、下側の推定画素=(L(A−T)+L(C)+L(C−B)+L(A))>>2としてもよい。同様に、図11で示されるような横側の位置や、図12で示されるような斜め側の位置の推定画素を求める際に、上述のような4タップのフィルタリング処理を行うことにより、推定画素を生成する。
このように、実施の形態5において4タップのフィルタリング処理を伴うように構成することで、3タップの場合のように片側からの画素間の特徴のみを利用してフィルタリング処理を行うのではなく、両側からの画素間の特徴を利用してフィルタリング処理を行うことから、画素間の類似度があまり高くない場合であっても、周囲の画素と調和のとれた、より確からしい推定画素を、加算とシフト演算により非常に少ない演算量で得ることができるようになる。
(実施の形態6)
なお、上記実施の形態1〜5では、画像拡大装置をブロック図により図示してハードウエアにより構成したものとして説明したが、これに限らず、コンピュータである情報処理装置として構成してもよい。例えば、CPUに代表される中央処理制御装置と、記録媒体や通信装置を介して、例えばメモリに代表される一時記憶装置や、例えばHDDに代表される外部記憶装置に格納された画像拡大プログラムにより、上記実施形態1〜5の機能をソフトウェア処理により達成するようにしても勿論よい。また、これらの実施の形態の画像拡大装置および画像拡大方法の適用される範囲は、信号を取得、および供給する際において、周辺の画素の類似度が最も高いと判定された方向に対して、所定の簡易なフィルタリング処理を行うような装置、方法、プログラム、システム等であれば、特に限定されるものではない。これらの実施の形態は、例えば、TVに代表される放送装置のプリ処理およびポスト処理、携帯電話、テレビ会議装置、監視装置における、画像の高画質化処理、DVD−R/RWやBD−R/RW、HDD、SD、ホログラフィックメモリなどの追記および書き換え可能な記録媒体を利用した録画再生装置、およびディジタルカメラやカムコーダといった撮像記録再生装置、オーサリングなどの記録編集装置、動画像の配信装置などにおける記録、再生時の高画質化処理に適用することができる。また、画像や動画像、音楽等の符号化および復号を行う際の、プリ処理およびポスト処理や、符号化処理および復号処理における、局部復号後の信号や、参照信号、および予測信号を生成する際の信号の改善処理、復元処理に適用することができる。更に、画像や動画像、音楽等の蓄積装置、配信装置、受信装置および転送装置における、通信時のエラー耐性処理等にも適用することが可能である。
以上述べたように、本発明の実施の形態によれば、小数位置の画素を推定して画像拡大を行う際に、類似度が高い方向を検出して、特定された類似度の高い方向に対してフィルタリングすることにより、非常に短いタップのフィルタを利用しても、大きな劣化を伴うことなく十分な画素の推定を行うことができる。また、短いタップを利用することにより、非常に高速なフィルタリング処理を実現し、良好な拡大画像を生成することができる。
また、本発明の実施の形態によれば、類似度の高い方向の絞り込みにおいて、所定の方向に対して全て類似度を検出するのではなく順次絞り込む構成にすることで、類似度の比較回数を大きく削減し、良好な拡大画像を生成することができる。
更に、本発明の実施の形態では、通常の画像拡大で使用するフィルタリング処理のように、1次元フィルタを縦方向、横方向にそれぞれ施すために生じるような処理の依存関係を、フィルタリング処理によって推定された画素を利用せずに、整数位置の画素のみを利用した類似度方向の1次元フィルタリングとすることで処理の依存関係を排除し、それぞれ単独での処理を実現し、良好な拡大画像を生成することができる。
以上述べた実施の形態の画像拡大装置、画像拡大方法および画像拡大プログラムは、例えば、画像や音声を記録・再生・表示・伝送する、TV等のモニタ、ディジタルカメラ、カムコーダ、レコーダ、監視装置、編集装置、動画像配信サーバ、などに利用することができる。
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。