以下、図面を参照して、本発明が適用される画像処理装置について説明する。
図1は、本発明が適用される画像処理装置の構成例を表している。
図1において、画像処理装置1は、液晶型表示装置等として構成されるホールド型表示装置2に対して、動画像の表示を制御する。即ち、画像処理装置1は、動画像を構成する複数のフレームのそれぞれの表示を順次指示する。これにより、ホールド型表示装置2は、上述したように、第1のフレームの表示が指示されてから所定の時間の間、第1のフレームを構成する複数の画素のそれぞれを対応する表示素子(図示せず)に表示させ、それら表示素子のうちの少なくとも一部の表示を保持させる。即ち、所定の時間、各表示素子のうちの少なくとも一部はホールド表示する。
なお、画像処理装置1の処理単位(動画像の単位)は、ここでは説明の簡略上、上述したようにフレームであるとして説明するが、フィールドを単位とすることも勿論可能である。即ち、本明細書において、フレームやフィールドのような単位をアクセスユニットとも称するが、画像処理装置1は、このアクセスユニットを単位とする画像処理を行うことができる。ただし、以下の説明においては、画像処理装置1は、アクセスユニットのうちの特にフレームを単位とする画像処理を行うとする。
また、以下、ホールド型表示装置2は、第1のフレームの表示が指示されてから、その次の第2のフレームの表示が指示されるまでの間、第1のフレームを構成する全ての画素のそれぞれを対応する表示素子(図示せず)に表示させ、それら全ての表示素子の表示を保持させる(全ての表示素子がホールド表示する)とする。
詳細には、画像処理装置1には、動画像を構成する複数のフレームのそれぞれの画像データが順次入力される。即ち、画像処理装置1には、表示対象フレームの画像データ(例えば、表示対象フレームを構成する全ての画素の画素値)が入力される。具体的には、表示対象フレームの画像データは、画像処理部11、画像処理部12、参照画像記憶部13、および、動き検出部14のそれぞれに入力される。
画像処理部11は、表示対象フレームの画像データに対して画素を単位とする所定の画像処理を施して、切替部15に出力する。即ち、画像処理部11は、表示対象フレームを構成する複数の画素のそれぞれに対して所定の画像処理を施すことで、それらの画素の画素値を補正し、補正した画素値を切替部15に所定の順番で順次出力する。
なお、画像処理部11が実行する画像処理は特に限定されない。例えば、図1の例では、画像処理部11には、後述する参照画像記憶部13から出力される参照画像(表示対象フレームの直前のフレームであって、以下、単に直前フレームと称する)の画像データ、および、後述する動き検出部14の検出結果(表示対象フレームを構成する各画素のそれぞれの動きベクトル)、といった2つの情報が入力される。この場合、画像処理部11は、これらの2つの情報を全て利用する画像処理を行ってもよいし、いずれか一方の情報を利用する画像処理を行ってもよいし、或いは、いずれの情報も利用しない画像処理を行ってもよい。具体的には、例えば、画像処理部11は、表示対象フレームを構成する各画素のそれぞれの画素値を所定の規則のテーブル(図示せず)に従って補正することができる。
また、画像処理部11は、画像処理装置1にとって必須な構成要素ではなく、省略されてもよい。この場合、表示対象フレームの画像データは、画像処理部12、参照画像記憶部13、動き検出部14、および、切替部15の入力端(2つの入力端のうちの、図1の画像処理装置11に接続された方の入力端)のそれぞれに入力されることになる。
画像処理部12は、表示対象フレームの画像データ(各画素の画素値)のうちの、動きのあるオブジェクトに対応する画素(例えば、動き検出部14により検出された動きベクトルの大きさが閾値以上の画素)の画素値を補正し(0補正含む)、補正した画素値を切替部15に出力する。
なお、画像処理部12は、表示対象フレーム内の任意の空間方向に動くオブジェクトを処理対象とし、そのオブジェクトに対応する画素の画素値を補正することが可能である。ただし、以下、説明の簡略上、表示対象フレームの左上端の画素を基準とした場合、その基準画素に対して右(横)方向X(以下、空間方向Xと称する)またはその逆方向に動くオブジェクトが、画像処理部12の処理対象とされる。従って、後述するように、動き検出部14により検出される注目画素の動きベクトルの方向も、フレーム内の任意の空間方向となり得るが、以下、説明の簡略上、空間方向Xまたはその逆方向とされる。
詳細には、画像処理部12は、ステップエッジ検出部21と補正部22とから構成される。
ステップエッジ検出部21は、動き検出部14の検出結果(動きベクトル)に基づいて、表示対象フレームの画像データの中から、動きのあるオブジェクトのエッジ部分に対応する画素を検出し、その検出結果を補正部22に供給する。
具体的には、例えば、ステップエッジ検出部21は、ステップエッジをオブジェクトして捉え、表示対象フレームの画像データを、空間方向Xに形成される複数のステップエッジの画像データの集合体に分解した上、複数のステップエッジのそれぞれのエッジ部分に対応する画素を検出し、その検出結果を補正部22に供給する。
なお、ステップエッジとは、第1の画素値を有する画素が所定の方向(ここでは、空間方向X)に連続して並び、所定の画素を境に、第1の画素値とは異なる第2の画素値を有する画素がその方向に連続して並んで形成される画素の集合体を指す。
即ち、ステップエッジ検出部21は、注目画素の画素値と、それに隣接する画素のうちの予め定められた方(いまの場合、空間方向Xとその逆方向とのうちの予め定められた方)の画素値との差分を演算する。そして、ステップエッジ検出部21は、例えば、その演算結果(差分値)が0でない場合、ステップエッジのエッジ部分に対応する画素として注目画素を検出する。
ただし、ここでは、動きボケを抑制することが主目的とされているので、エッジ部分が検出される対象は動きのあるステップエッジのみで足りる。
そこで、ステップエッジ検出部21は、例えば、動き検出部14より供給された注目画素の動きベクトルの大きさが閾値以上であった場合、その注目画素を一構成要素とするステップエッジは動いていると判断し、その処理を実行する。即ち、ステップエッジ検出部21は、注目画素の画素値とそれに隣接する画素の画素値との差分値(以下、単に差分値と称する)を演算し、その差分値と注目画素の画素値とを検出結果として補正部22に供給する。
これに対して、ステップエッジ検出部21は、例えば、動き検出部14より供給された注目画素の動きベクトルの大きさが閾値未満であった場合、その注目画素を一構成要素とするステップエッジは動いていないと判断し、その処理の実行を禁止する。
補正部22は、例えば、動き検出部14より供給された注目画素の動きベクトルの大きさが閾値以上であった場合(即ち、注目画素を一構成要素とするステップエッジが空間方向Xまたはその逆方向に動いている場合)、ステップエッジ検出部21より供給された注目画素の画素値を補正する(0補正を含む)。このとき、補正部22は、動き検出部14より供給された注目画素の動きベクトル(ステップエッジの移動方向と移動量)と、ステップエッジ検出部21より供給された差分値(ステップエッジの高さ)とに基づいて、注目画素の画素値を補正する。
即ち、補正部22は、例えば、供給された差分値が0でなく、かつ、供給された動きベクトルの大きさが閾値以上であった場合、注目画素は、動きのあるステップエッジのエッジ部分に対応する画素であると判断し、供給された差分値と動きベクトルとに基づいて注目画素の画素値を補正する。
これに対して、補正部22は、例えば、供給された差分値が0であり、かつ、供給された動きベクトルの大きさが閾値以上であった場合、注目画素は、動きのあるステップエッジの一構成要素ではあるがエッジ部分に対応する画素ではない(それ以外の部分に対応する画素である)と判断し、注目画素の画素値を0補正する(補正しない)。
また、補正部22は、例えば、供給された動きベクトルの大きさが閾値未満である場合、ステップエッジ検出部21と同様に、その注目画素を一構成要素とするステップエッジは動いていないと判断し、その処理自体を禁止する(0補正も含めた補正の処理を禁止する)。
なお、補正部22の画素値の補正方法は、動きのあるステップエッジのエッジ部分に対応する注目画素の画素値を、動き検出部14により検出された注目画素の動きベクトルに基づいて補正する方法であれば、特に限定されない。具体的には、例えば、次のような補正方法を適用することもできる。
即ち、補正部22は、次の式(1)の右辺を演算することで左辺の補正値Rを求め、その補正値Rを注目画素の画素値に加算することで、注目画素の画素値を補正する。
なお、式(1)において、Erは、ステップエッジ検出部21より供給される差分値を、Vは、動き検出部14より供給される動きベクトルの大きさを、それぞれ示している。また、式(1)は、ホールド型表示装置2の全ての表示素子(例えば、ホールド型表示装置2が液晶型表示装置である場合、全ての液晶)の時間応答が時定数一定の一次遅れ要素であると仮定した場合の式であり、式(1)においては、この時定数がτで示されている。また、Tは表示対象フレームの表示時間(表示対象フレームの表示が指示されてから、次のフレームの表示が指示されるまでの時間)を示している。なお、以下、このような時間Tをフレーム時間Tと称する。液晶型表示装置においては、フレーム時間Tは一般的に16.6msとされている。
参照画像記憶部13は、表示対象フレームの画像データを、その次の(直後の)フレームに対する参照画像の画像データとして記憶する。
即ち、動き検出部14(および上述した画像処理部11)は、新たなフレームの画像データが表示対象フレームの画像データとして入力された場合、参照画像記憶部13に記憶されている直前フレーム(直前に表示対象フレームであったフレーム)の画像データを、表示対象フレームに対する参照画像の画像データとして取得する。そして、動き検出部14は、表示対象フレームの画像データと参照画像の画像データとを比較することで、表示対象フレームの注目画素の動きベクトルを検出し、画像処理部11、画像処理部12(ステップエッジ検出部21と補正部22)、および、切替部15のそれぞれに供給する。
なお、動き検出部14は、実際には、空間方向Xと空間方向Yとに平行な2次元平面上の任意の方向を有する動きベクトルを検出することが可能である。即ち、動きベクトルの方向は、実際には、この2次元平面上の任意の方向となり得る。ただし、ここでは、上述したように、説明の簡略上、空間方向Xまたはその逆方向に動くステップエッジが処理の対象とされているため、動きベクトルの方向も空間方向Xまたはその逆方向とされる。
具体的には、例えば、ステップエッジが1フレームの間に空間方向XにN(Nは任意の正の整数値)画素分だけ移動した場合、動き検出部14は、そのステップエッジの動きベクトル(ステップエッジの一構成要素である注目画素における動きベクトル)として「+N」を検出する。一方、ステップエッジが1フレームの間に空間方向Xの逆方向にN画素分だけ移動した場合、動き検出部14は、そのステップエッジの動きベクトルとして「−N」を検出する。このように、ここでは、動きベクトルの方向は、空間方向Xの場合「+」で表現され、空間方向Xの逆方向の場合「−」で表現される。
切替部15は、動き検出部14の検出結果(動きベクトル)に応じて、その入力を切り替える。
即ち、動き検出部14より供給された注目画素の動きベクトルの大きさが閾値未満である場合(注目画素が、動きのあるステップエッジに対応する画素ではない場合)、切替部15は、その入力を画像処理部11側の端に切り替え、画像処理部11より供給される注目画素のデータ(画素値)を表示制御部16に供給する。
これに対して、動き検出部14より供給された注目画素の動きベクトルの大きさが閾値以上である場合(注目画素が、動きのあるステップエッジに対応する画素である場合)、切替部15は、その入力を画像処理部12の補正部22側の端に切り替え、補正部22より供給される注目画素のデータ(画素値)を表示制御部16に供給する。
表示制御部16は、切替部15より順次供給されてくる、表示対象フレームを構成する各画素のデータ(画素値)のそれぞれを、所定の形式の信号(ホールド型表示装置2における、対応付けられた表示素子の目標レベルのそれぞれを示す信号)に変換した後、ホールド型表示装置2に出力する。即ち、表示制御部16は、このような処理を行うことで、表示対象フレームの表示をホールド型表示装置2に指示する。
このように、本実施の形態の画像処理装置1においては、注目画素の画素値が、動き検出部14により検出された動きベクトルに基づいて補正される。ここで注目すべき点は、この動きベクトルは、注目画素の周囲の画素における他の動きベクトルと調和が取れている点である。換言すると、本実施の形態の動き検出部14は、周囲と調和の取れた動きベクトルを容易に検出するために、即ち、上述した従来の第2の課題を解決するために、例えば、図2の構成を有している点である。そこで、以下、図2を参照して、本実施の形態の動き検出部14の詳細について説明する。
図2に示されるように、本実施の形態の動き検出部14は、ローパスフィルタ(以下、LPFと記述する)31、LPF32、輝度勾配検出部33、テンプレートマッチング部34、ヒストグラム部35、動きベクトル補正部36、および、LPF37から構成される。
入力画像(画像データ)、即ち、表示対象フレームの画像データは、LPF31を介して輝度勾配検出部33とテンプレートマッチング部34のそれぞれに供給される。
輝度勾配検出部33は、表示対象フレームの注目画素の配置位置における輝度勾配を検出する。
なお、輝度勾配とは次の値を指す。即ち、例えば、所定の方向の座標値(例えば、ここでは、空間方向Xの座標x)がパラメータとして入力され、入力された座標xの輝度(画素値)を出力する関数f(x)が存在した場合、注目画素の配置位置i(iは、空間方向Xの座標値)における関数f(x)の1次微分値の絶対値、即ち、|f'(i)|が、輝度勾配である。
ただし、このような関数f(x)の生成や、その関数f(x)を利用する1次微分値の演算は、輝度勾配検出部33にとって負荷の重い処理となる。そこで、ここでは、例えば、次の式(2)で示される値slopeを輝度勾配として定義する。即ち、輝度勾配検出部33がこの式(2)の右辺を演算することで輝度勾配slopeを求める。これにより、輝度勾配検出部33は、表示対象フレームの注目画素(例えば、図3に示される画素51)の配置位置における輝度勾配slopeを簡単に(軽負荷で)演算することができる。
なお、式(2)において、Yiは、図3に示されるように、配置位置iの注目画素51の輝度(画素値)を示している。Yi-1は、注目画素51の左隣の画素52(空間方向Xと逆方向に注目画素51と隣接する、配置位置i-1の画素52)の輝度(画素値)を示している。Yi+1は、注目画素51の右隣の画素53(空間方向Xに注目画素51と隣接する、配置位置i+1の画素53)の輝度(画素値)を示している。また、max(A,B,・・・,N)は、数値A乃至数値Nのそれぞれがパラメータとして入力され、入力された数値A乃至数値Nのうちの最大値を出力する関数を示している。なお、この関数max()に入力されるパラメータの個数(数値A乃至数値Nの個数)は特に限定されない。
即ち、輝度勾配検出部33は、注目画素51の輝度Yiとその左隣の画素52の輝度Yi-1との差分絶対値Aと、注目画素51の輝度Yiとその右隣の画素53の輝度Yi+1との差分絶対値Bとのそれぞれを演算し、差分絶対値Aと差分絶対値Bとのうちの値が大きい方(最大値)を、注目画素51の配置位置における輝度勾配slopeとして動きベクトル補正部36に供給する。
ところで、表示対象フレームの画像データは、上述したように、LPF31を介してテンプレートマッチング部34にも供給される。このとき、テンプレートマッチング部34にはさらに、参照画像記憶部13に記憶されている直前フレーム(直前に表示対象フレームであったフレーム)の画像データが、表示対象フレームに対する参照画像の画像データとしてLPF32を介して供給される。
すると、テンプレートマッチング部34は、直前フレームの中から、注目画素の配置位置に対応する位置を少なくとも含む所定の領域(以下、このような領域をウィンドウと称する)を切り出し、そのウィンドウが表示対象フレームのどの領域とマッチングするのかを求め、そのマッチング結果に基づいて注目画素の動きベクトル候補pvecを決定し、ヒストグラム部35に供給する。
また、テンプレートマッチング部34は、動きベクトル補正部36が使用する制御信号flagを生成し、動きベクトル補正部36に供給する。なお、制御信号flagの詳細については後述する。
このテンプレートマッチング部34の詳細について、以下、図4乃至図10を参照して説明する。
図4は、本実施の形態のテンプレートマッチング部34の詳細な構成例を示している。
図4に示されるように、本実施の形態のテンプレートマッチング部34は、SAD(Sum of Absolute Difference)演算部61、SAD極小値検出部62、および、SAD極小値評価部63から構成される。
SAD演算部61は、例えば、図5に示されるように、直前フレームの中から、表示対象フレームの注目画素51の配置位置i(iは、上述したように、空間方向Xの座標値を示す)に対応する位置iに配置された画素71を中心とする、空間方向Xに連続して並ぶ所定の個数(図5の例では、5個)の画素から構成されるウィンドウ72を切り出す。
また、SAD演算部61は、表示対象フレームの中から次のような領域(なお、このような領域をウィンドウと区別するために、比較領域と称する)を切り出す。即ち、注目画素の配置位置iから空間方向Xまたはその逆方向にn(nは、予め設定された範囲内の整数値であり、図5の例では、-6乃至(+6)のうちのいずれかの整数値)だけ離間した位置i+n(以下、探索位置i+nと称する)に配置された画素を中心とする、空間方向Xに連続して並ぶ所定の個数(ウィンドウ72と同一の個数であって、図5の例では、5個)の画素から構成される比較領域73−nが切り出される。なお、探索位置i-6に対応する比較領域73−(−6)と、探索位置i+6に対応する比較領域73−(+6)のみが図示されているが、ここでは(図5の例では)、実際には、比較領域73−(−6)と比較領域73−(+6)とを含めた、13個の比較領域73−nのそれぞれが所定の順番で順次切り出される。
そして、SAD演算部61は、ウィンドウ72と、13個の比較領域73−n(比較領域73−(−6)乃至比較領域73−(+6))のそれぞれとの相関を所定の評価関数を用いて演算し、各演算結果のそれぞれをSAD極小値検出部62に供給する。
なお、SAD演算部61が利用する評価関数については特に限定されず、例えば、SAD演算部61は、正規化相関関数やSSD(Sum of Squared Difference)等を利用することもできる。ただし、ここでは、SAD演算部61は、SADを利用するとして説明する。
即ち、SAD演算部61は、次の式(3)の右辺を演算することで、ウィンドウ72と各比較領域73−nのそれぞれとの相関値SAD(j)(jはi+nである。即ち、ここでは、jは、図5の探索範囲i-6乃至i+6のうちのいずれかの整数値)のそれぞれを求め、SAD極小値検出部62にそれぞれ供給する。
なお、式(3)において、Ck jは、図5に示されるように、探索位置j(j=i+n)における比較領域73−nを構成する5つの画素のうちの、図中左からk番目の画素の輝度(画素値)を示している。Pk iは、図5に示されるように、配置位置iの画素71を中心とするウィンドウ72を構成する5つの画素のうちの、図中左からk番目の画素の輝度(画素値)を示している。
具体的には、例えば、いま、図6に示されるように、表示対象フレームの空間方向Xにおける輝度(画素値)の変化が曲線81とされ、その直前フレームの空間方向Xにおける輝度(画素値)の変化が曲線82とされたとする。なお、図6において、縦軸は輝度(画素値)を示しており、横軸は画素位置(配置位置)を示している。また、画素位置iは、上述したように、注目画素51の配置位置を示している。
この場合におけるSAD演算部61の演算結果、即ち、各相関値SAD(j(=i+n))のそれぞれが図7に示されている。なお、図7において、縦軸は相関値SAD(j)を示しており、横軸は探索位置(配置位置)を示している。即ち、図7は、図6の曲線82に示される画素値(輝度)を有する5つの画素から構成されるウィンドウ72と、図6の曲線81に示される画素値(輝度)を有する5つの画素から構成される各比較領域73−nのそれぞれとの、探索位置i+nにおけるSAD(i+n(=j))を示している。
図4に戻り、相関値SAD(j)が小さいほど相関が高いことを表すので、SAD極小値検出部62は、SAD演算部61より供給された各相関値SAD(j(=i+n))のそれぞれの中から最小値minを検出し、最小値minに対応する探索位置pos(図7の例では、pos=i+3)をSAD極小値評価部63とヒストグラム部35のそれぞれに供給する。
なお、最小値minは、各相関値SAD(j)のそれぞれを結んだ曲線の極小点(z,SAD(z))(zは、ここでは、i-6乃至i+6のうちのいずれかの整数値)における相関値SAD(z)、具体的には、例えば、図7の例では、極小点(i+3,SAD(i+3))における相関値SAD(i+3)(=約40)となる。そこで、以下、最小値minを極小値minとも称する。
以上のSAD演算部61とSAD極小値検出部62との処理を要約すると次の通りとなる。即ち、SAD演算部61は、直前フレームの中から、注目画素51の配置位置に対応する位置iに配置される画素71を検出し、その画素71を少なくとも含むウィンドウ72を切りだす。次に、SAD演算部61は、そのウィンドウ72を、表示対象フレームにおける注目画素51を含む水平ライン(空間方向Xに平行なライン)上で順次変移させる。このとき、SAD演算部61は、ウィンドウ72の各変移位置(探索位置)i+nのそれぞれにおいて、ウィンドウ72とそれと重なり合う領域(比較領域)73−nとの間で一致度(相関)を、所定の評価関数(ここではSAD)を用いて演算する。そして、SAD極小値検出部62は、もっとも一致度(相関)が高いと判断される(即ち、極小値minを有する)比較領域73−nの中心画素を、ウィンドウ72の中心画素71(注目画素51に対応する画素71)の対応画素として設定する。即ち、表示対象フレームを構成する各画素のうちの、極小値minに対応する探索位置posに配置される画素が、ウィンドウ72の中心画素71の対応画素として設定される。
なお、このようなSAD演算部61とSAD極小値検出部62とが実行する手法は、ウィンドウマッチング手法、エリアベースマッチング手法、或いは、テンプレートマッチング手法等と称されている。また、対応画素は、対応点とも称される。
ただし、正確には、ヒストグラム部35には、注目画素51の配置位置iを起点とし探索位置pos(=i+n)を終点とするベクトルn(ウィンドウ72の基準位置iからの変移量と変移方向を示す値n)が、動きベクトル候補pvecとして供給される。即ち、ここでは、上述したように、値nの絶対値が、ベクトル(動きベクトル候補pvec)の大きさを示し、値nの正負が、ベクトル(動きベクトル候補pvec)の方向を示すことになる。詳細には、値nが正の場合、動きベクトル候補pvecの方向は、空間方向X、即ち、注目画素51に対して図5中右方向となる。一方、値nが負の場合、動きベクトル候補pvecの方向は、空間方向Xと逆方向、即ち、注目画素51に対して図5中左方向となる。具体的には、例えば、図7の例では、注目画素51の動きベクトル候補pvecとして「+3」がヒストグラム部35に供給される。
より正確には、後述するように、ヒストグラム部35は、注目画素51とその周辺の複数の画素のそれぞれの動きベクトル候補pvecのヒストグラムを生成し、このヒストグラムに基づいて注目画素51の動きベクトルvecを決定する。そこで、SAD演算部61とSAD極小値検出部62は、注目画素51の動きベクトル候補pvecだけではなく、注目画素51を中心としてX方向に連続して並ぶ所定の個数の画素から構成される領域(例えば、後述する図11の領域95)を設定し、この領域を構成する各画素のそれぞれの動きベクトル候補pvecを求め(求め方は上述した手法と全く同様の手法)、ヒストグラム部35にそれぞれ供給する。
ところで、例えば、いま、図8に示されるように、表示対象フレームの空間方向Xにおける輝度(画素値)の変化が曲線91とされ、その直前フレームの空間方向Xにおける輝度(画素値)の変化が曲線92とされたとする。なお、図8において、縦軸は輝度(画素値)を示しており、横軸は画素位置(配置位置)を示している。また、画素位置iは、上述したように、注目画素51の配置位置を示している。
この場合におけるSAD演算部61の演算結果、即ち、各相関値SAD(j(=i+n))のそれぞれが図9に示されている。なお、図9において、縦軸は相関値SAD(j)を示しており、横軸は探索位置(配置位置)を示している。即ち、図9は、図8の曲線92に示される画素値(輝度)を有する5つの画素から構成されるウィンドウ72と、図8の曲線91に示される画素値(輝度)を有する5つの画素から構成される各比較領域73−nのそれぞれとの、探索位置i+nにおけるSAD(i+n)を示している。
図9においては、各相関値SAD(j)のそれぞれを結んだ曲線の極小点は、点(i-1,SAD(i-1))と点(i+5,SAD(i+5))である。即ち、図9の例では、2つの極小点が存在する。このように複数の極小点が存在する場合、SAD演算部61は、複数の極小点のそれぞれに対応する相関値SAD(j)のうちの最小値、即ち、全てのSAD(j)の中での最小値を極小値minとして適用する。具体的には、例えば、図9の例では、極小点(i+5,SAD(i+5))における相関値SAD(i+5)(=約27)が極小値minとして適用される。従って、比較領域73−5(図示せず)の中心画素、即ち、表示対象フレーム内の配置位置i+5の画素が、ウィンドウ72の中心画素71の対応画素(対応点)として設定される。即ち、注目画素51の動きベクトル候補pvecとして「+5」がヒストグラム部35に供給される。
しかしながら、図9に示されるように、この極小値min、即ち、極小点(i+5,SAD(i+5))における相関値SAD(i+5)(=約27)と、極小点(i-1,SAD(i-1))における相関値SAD(i-1)(=約30)とは差異が小さく、ウィンドウ72の中心画素71の対応画素(対応点)は、配置位置i+5の画素であるとは一概に言えない。即ち、ウィンドウ72の中心画素71の対応画素(対応点)は、配置位置i-1の画素である可能性もある。
このように、ウィンドウ72の中心画素71の対応画素(対応点)の候補が2以上存在する場合(図9に示されるように、グラフ化されたSAD(j)において2以上の極小点が存在し、各極小点のそれぞれに対応する各相関値SAD(j)間の差異が小さい場合)、設定された対応画素(最下点の極小点に対応する画素)の信頼度、即ち、ヒストグラム部35に供給された注目画素51の動きベクトル候補pvecの信頼度が低いと言える。
また、たとえ、ウィンドウ72の中心画素71の対応画素(対応点)の候補が1つだけの場合(図7に示されるように、グラフ化されたSAD(j)において1つの極小点だけが存在する場合、或いは、図示はしないが、グラフ化されたSAD(j)において2以上の極小点が存在するが、最小の相関値SAD(j)(=極小値min)と、他の相関値SAD(j)との間の差異が大きい場合)であっても、設定された対応画素の相関値SAD(j)(=極小値min)が十分に小さくないとき、その対応画素の信頼度、即ち、ヒストグラム部35に供給された注目画素51の動きベクトル候補pvecの信頼度が低いと言える。
そこで、このような極小値minの評価、即ち、極小値minに対応する画素が対応画素であることの信頼度(ヒストグラム部35に供給された注目画素51の動きベクトル候補pvecの信頼度)の評価を行うために、本実施の形態のテンプレートマッチング部34は、図4に示される構成を有している。即ち、図4に示されるように、本実施の形態のテンプレートマッチング部34には、上述したSAD演算部61とSAD極小値検出部62の他にさらに、SAD極小値評価部63が設けられている。
このSAD極小値評価部63は、極小値minに対応する画素が対応画素であることの信頼度(ヒストグラム部35に供給された注目画素51の動きベクトル候補pvecの信頼度)の評価を行い、その評価が低いと判断した場合、上述した制御信号flagとして、例えば、「1」を動きベクトル修正部36に供給する。このとき、後述するように、動きベクトル修正部36は、注目画素51の動きベクトルvecを補正する。
これに対して、SAD極小値評価部63は、上述した評価が高いと判断した場合、制御信号flagとして、例えば、「0」を動きベクトル修正部36に供給する。このとき、後述するように、動きベクトル修正部36は、注目画素51の動きベクトルvecの補正を禁止する(補正しない)。
具体的には、例えば、本実施の形態においては、SAD極小値評価部63が上述した評価を行うために必要な値が、SAD極小値検出部62により演算または検出され、SAD極小値評価部36に供給される。
即ち、本実施の形態において、SAD極小値検出部62が検出する値とは、上述した極小値min、即ち、相関値SAD(j)の最小値min(ただし、以下、後述する値min2と区別するために、極小値min1と称する)の他にさらに、図10に示されるように、その極小値min1に対応する探索位置pos1、極小値min1の次に小さい相関値SAD(j)(即ち、全ての相関値SAD(j)の中で2番目に小さい値であって、以下、極小値min2と記述する)、および、その極小値min2に対応する探索位置pos2である。
また、本実施の形態において、SAD極小値検出部62が演算する値とは、探索範囲(図5の例では、探索位置i-6乃至i+6の範囲)における各相関値SAD(j)の平均値SADaveと極小値min1との差分値eval1(平均値SADaveから極小値min1までの深さeval1)、および、平均値SADaveと極小値min2との差分値eval2(平均値SADaveから極小値min2までの深さeval2)である。
なお、いまの場合(探索範囲が探索位置i-6乃至i+6の場合)、平均値SADaveは次の式(4)により演算される。
図4に戻り、このような各値(極小値min1、その探索位置pos1、および、その深さeval1、並びに、極小値min2,その探索位置pos2、および、その深さeval2)がSAD極小値検出部62から供給されると、SAD極小値評価部63は、次の第1の条件または第2の条件が満たされるか否かを判定する。
即ち、第1の条件とは、次の不等式(5)乃至不等式(7)の全てが成立することである。
eval1 > eval_thresh ・・・(5)
eval2 > eval_thresh ・・・(6)
|pos1−pos2| > pos_thresh ・・・(7)
なお、不等式(5)と不等式(6)において、eval_threshは所定の閾値を示しており、予め設定されている値である。同様に、不等式(7)において、pos_threshは所定の閾値を示しており、予め設定されている値である。
不等式(5)乃至不等式(7)から容易にわかることであるが、結局、上述した図9に示されるような場合(極小点が2以上存在し、それらに対応する各相関値S(j)の差異が小さい場合)、即ち、ウィンドウ72の中心画素71の対応画素(対応点)の候補が2以上存在し、はっきりとした対応画素が見つけられない場合(図9の例では、探索位置i+5と探索位置i-1のそれぞれに配置される画素が、対応画素の候補となる)、第1の条件が満たされることになる。
一方、第2の条件とは、次の不等式(8)が成立することである。
min1 > min_thresh ・・・(8)
なお、不等式(8)において、min_threshは所定の閾値を示しており、予め設定されている値である。
不等式(8)から容易にわかることであるが、結局、極小値min1が十分に小さくない場合、即ち、ウィンドウ72と、極小値min1に対応する比較領域73−nとの対応がしっかりと取れていない場合、第2の条件が満たされることになる。
従って、第1の条件と第2の条件のうちの少なくとも一方が満たされたと判定した場合、SAD極小値評価部63は、極小値min1に対応する画素が対応画素であることの信頼度(ヒストグラム部35に供給された注目画素51の動きベクトル候補pvecの信頼度)が低いと評価し、制御信号flagとして「1」を動きベクトル修正部36に出力する。
これに対して、第1の条件と第2の条件とのいずれも満たされていないと判定した場合、SAD極小値評価部63は、極小値min1に対応する画素が対応画素であることの信頼度(ヒストグラム部35に供給された注目画素51の動きベクトル候補pvecの信頼度)が高いと評価し、制御信号flagとして「0」を動きベクトル修正部36に出力する。
図2に戻り、ヒストグラム部35には、表示対象フレームのうちの注目画素51を含む複数の画素から構成される領域に対する、テンプレートマッチング部34の出力結果が供給される。即ち、その領域を構成する複数の画素のそれぞれの動きベクトル候補pvecがヒストグラム部35に供給される。そこで、ヒストグラム部35は、供給された複数の動きベクトル候補pvecのヒストグラムを生成し、そのヒストグラムを参照して最も頻度の高い動きベクトル候補pvecを検出し、検出した動きベクトル候補pvecを注目画素51の動きベクトルvecとして動きベクトル補正部36に供給する。
なお、ヒストグラムが生成される対象領域は、注目画素51を含む領域であれば特に限定されない。即ち、その領域を構成する画素の個数や、その領域内の注目画素51の位置は特に限定されない。ただし、ここでは、例えば、注目画素51を中心として空間方向Xに連続して並ぶ17個の画素から構成される領域、即ち、注目画素51の左方(空間方向Xの逆方向)に連続して並ぶ8個の画素、注目画素51、および、注目画素51の右方(空間方向X)に連続して並ぶ8個の画素から構成される領域が、ヒストグラムが生成される対象領域とされる。
具体的には、例えば、いま、テンプレートマッチング部34から、図11に示されるような領域95を構成する各画素のそれぞれのベクトル候補pvecが出力されたとする。なお、図11の領域95において、17個に区分された小領域のそれぞれは各画素のそれぞれを示しており、それらの17個の小領域のうちの中心の小領域は注目画素51を示している。また、各画素(各小領域)のそれぞれの中に記載された値が、対応する画素の動きベクトル候補pvec例を示している。ただし、「+」は省略されている。
この場合、ヒストグラム部35は、図12に示されるようなヒストグラムを生成する。図12の例では、最も頻度の高い(頻度7の)動きベクトル候補pvecは「+4」とされているので、ヒストグラム部35は、「+4」を注目画素51の動きベクトルvecとして決定し、図2の動きベクトル補正部36に供給する。
動きベクトル補正部36は、後段の処理内容(例えば、ここでは、上述した図1の画像処理部12の処理内容等)、若しくは、輝度勾配検出部33とテンプレートマッチング部34の処理結果(例えば、ここでは、上述した輝度勾配slopeや制御信号flag)、またはそれらの組み合わせに基づいて、ヒストグラム部35から供給された注目画素51の動きベクトルvecを、注目画素51の周囲の画素における他の動きベクトルと調和が取れるように適切に補正する。
動きベクトル補正部36により補正された注目画素51の動きベクトルvecは、LPF37を介して外部に出力される。
この動きベクトル補正部36の詳細について、以下、図13乃至図19を参照して説明する。
図13は、本実施の形態の動きベクトル補正部36の詳細な構成の一例を示している。
なお、後述する図18や図19に示されるように、動きベクトル補正部36は、様々な形態を取ることが可能である。そこで、動きベクトル補正部36が取り得る様々な形態のうちの、図13、図18、および図19のそれぞれの形態を、個々に区別する必要がある場合、以下、動きベクトル補正部36A、動きベクトル補正部36B、および、動きベクトル補正部36Cのそれぞれと称する。一方、動きベクトル補正部36A、動きベクトル補正部36B、および、動きベクトル補正部36Cのそれぞれを、個々に区別する必要が無い場合、それらを総称して動きベクトル補正部36と称する。
図13に示されるように、動きベクトル補正部36Aは、後段処理用補正部101、切替部102、信頼度評価部103、および、信頼度用補正部104のそれぞれから構成される。
後段処理用補正部101は、後段の処理内容、例えば、ここでは、上述した図1の画像処理部12の処理内容の特徴に基づいて、注目画素51の動きベクトルvecを補正する。
なお、以下、補正前の動きベクトルvec、後段処理用補正部101により補正された動きベクトルvec、および、後述する信頼度用補正部104によりさらに補正される動きベクトルvecのそれぞれを、個々に区別する必要がある場合、動きベクトルvec、動きベクトルvec'、および、動きベクトルvec''のそれぞれと称する。一方、動きベクトルvec、動きベクトルvec'、および、動きベクトルvec''のそれぞれを、個々に区別する必要がない場合、それらを総称して動きベクトルvecと称する。
即ち、後段処理用補正部101からは、補正された動きベクトルvec'が出力されて、切替部102に供給される。
なお、後段処理用補正部101の補正方法については特に限定されず、後段の処理内容の特徴に応じて可変することが可能である。
具体的には、例えば、ここでの後段の処理のひとつである、図1の補正部22の処理に適した補正方法として、次のような方法を適用することができる。
即ち、例えば、上述したように、補正部22は、図1のステップエッジ検出部21より供給された注目画素51の画素値を補正する(0補正を含む)。このとき、補正部22は、動き検出部14より供給された注目画素51の動きベクトルvec(実際には、補正された動きベクトルvec'または動きベクトルvec'')に基づいて、注目画素51の画素値を補正することになる。
なお、動き検出部14の後段、例えば、画像処理部12等から見た場合、動きベクトルvec、動きベクトルvec'、および、動きベクトルvec''のそれぞれを、個々に区別する必要がない。従って、以下、動き検出部14の後段から見た場合の説明、即ち、動き検出部14の後段の処理内容の説明等においては、単に動きベクトルvecと称して説明していく。
例えば、いま、補正部22が、注目画素51の画素値の補正量(値)を決定する場合、上述した式(1)の演算結果である補正値Rを使用するのではなく、図14に示されるような関係に従って補正量を決定するとする。
即ち、図14は、補正部22における、注目画素51の画素値の補正量の決定方法の一例を示す図であって、上述した例(式(1)を利用する例)とは異なる例を示す図である。
図14の補正方法(補正部22の処理内容)の例では、動きベクトルvecの大きさ(絶対値)が、探索範囲である6(「−6」または「+6」)になるまでは、画素値の補正量がリニアに増加していくのに対して、この探索範囲である6を境にして、それ以降、画素値の補正量は0となってしまう(即ち、補正が禁止されてしまう)。
従って、注目画素51とその近傍の画素における動きベクトルvecとして、大きさが6前後の動きベクトルvecが動き検出部14から出力されてしまうと、注目画素51とその近傍からなる画像の範囲において、画素値が最大補正量で補正される画素と、画素値が全く補正されない画素とが混在してしまう。
具体的には、例えば、仮に、注目画素51の動きベクトルvecとして「+6」が動き検出部14から出力され、一方、その近傍の他の画素の動きベクトルvecとして「+7」が動き検出部14から出力されたとする。
この場合、注目画素51の画素値だけが最大補正量で補正され、その近傍の他の画素の画素値は全く補正されないことになり、最終的に得られる補正画像(表示対象フレーム)において、注目画素51の画素値(補正値)は、その周囲の画素の画素値(補正が禁止された値)に対して異質な値となってしまう。即ち、上述した従来の第2の課題が発生してしまうことになる。
換言すると、注目画素51の動きベクトルvecである「+6」は、その近傍の他の画素の動きベクトルvecである「+7」に対して異質なベクトルとなってしまう。即ち、注目画素51の動きベクトルvecである「+6」は、周囲と調和の取れていない動きベクトルとなってしまう。
そこで、このような周囲と調和の取れていない動きベクトルvecの動き検出部14からの出力数を軽減させるために、即ち、補正部22の動きベクトルvecの探索範囲を超えたところで発生する、上述したような画素値の補正量の不連続性を発生させないために、図13の後段処理用補正部101は、例えば、図15に示されるような関係に従って、動きベクトルvecを動きベクトルvec'に補正することができる。
即ち、図15は、後段処理用補正部101における、注目画素51の動きベクトルvecの補正方法の一例を示している。
図15の補正方法の例では、補正前の動きベクトルvec、即ち、ヒストグラム部35から供給された動きベクトルvecの大きさ(絶対値)が、3(「−3」または「+3」)になるまでは、「vec'=vec」の関係で補正され(即ち、補正が禁止され)、その3を境にしてそれ以降、6(「−6」または「+6」)になるまでは、「vec'=-vec+6 or -6」の関係で補正され、6以降、「vec'=0」の関係で補正されることになる。
従って、検出部14から、このような図15の関係に従って補正された動きベクトルvec'が出力されれば、その動きベクトルvec'の大きさ(絶対値)は最大でも3となり、その大きさが6前後となる動きベクトルvecが出力されることはなくなり、その結果、上述したような画素値の補正量の不連続性の発生を防止することが可能になる。即ち、従来の第2の課題を解決することが可能になる。
なお、図13の後段処理用補正部101が、図15の関係に従って補正を行う場合、図15に示されるようなテーブルを保持し、そのテーブルを参照して動きベクトルvecを補正してもよい。或いは、後段処理用補正部101は、上述したような関数、即ち、「vec'=vec : -3≦vec≦3」,「vec'=-vec-6 : -6≦vec<-3」,「vec'=-vec+6 : 3<vec≦6」,「vec'=0 : vec<-6,6<vec」のような関数を保持し、対応する関数に動きベクトルvecを代入して演算し、その関数の出力値を、補正された動きベクトルvec'として出力してもよい。
また、繰り替えしになるが、図15に示される例は、後段処理用補正部101における、注目画素51の動きベクトルvecの様々な補正方法のうちの、後段の処理である図1の補正部22の処理が上述した図14に示されるような特徴を有している場合に適した補正方法の一例である。
即ち、ここで重要な点は、後段処理用補正部101の補正方法は、単に、後段の処理内容の特徴に適した補正方法とすればよく、このため、後段の処理内容の特徴に応じて可変できるという点である。
例えば、いま、図示せぬ後段の処理内容が、動き検出部14より出力された注目画素51の動きベクトルvecのうちの、その大きさ(絶対値)が中程度(例えば、3)の動きベクトルvecに着目する処理であって、中程度の動きベクトルvecの影響を大きくする必要がある処理である、といった特徴を有しているとする。
このような場合、後段処理用補正部101は、例えば、図16に示されるような関係に従って、動きベクトルvecを動きベクトルvec'に補正することができる。
即ち、図16は、後段処理用補正部101における、注目画素51の動きベクトルvecの補正方法の他の例(図15とは異なる例)を示している。
図16の補正方法の例では、補正前の動きベクトルvec、即ち、ヒストグラム部35から供給された動きベクトルvecの大きさ(絶対値)が、3(「−3」または「+3」)になるまでは、「vec'=2vec」の関係で補正され、その3を境にしてそれ以降、6(「−6」または「+6」)になるまでは、「vec'=-2vec+12 or -12」の関係で補正され、6以降、「vec'=0」の関係で補正されることになる。
なお、後段処理用補正部101が、図16の関係に従って補正を行う場合、図15の例と同様に、図16に示されるようなテーブルを保持し、そのテーブルを参照して動きベクトルvecを補正してもよい。或いは、後段処理用補正部101は、上述したような関数、即ち、「vec'=2vec : -3≦vec≦3」,「vec'=-2vec-12 : -6≦vec<-3」,「vec'=-2vec+12 : 3<vec≦6」,「vec'=0 : vec<-6,6<vec」のような関数を保持し、対応する関数に動きベクトルvecを代入して演算し、その関数の出力値を、補正された動きベクトルvec'として出力してもよい。
また、後段の処理が複数存在する場合、或いは、複数になる可能性がある場合、後段処理用補正部101は、その補正方法を適宜切り替えて、動きベクトルvecを補正することもできる。即ち、後段の処理がQ個(Qは、1以上の任意の整数値)存在する場合、後段処理用補正部101は、注目画素51の1つの動きベクトルvecを、Q種類の補正方法のそれぞれに従って補正し、その結果得られるQ個の動きベクトルvec'のそれぞれを個別に出力することもできる。
図13に戻り、ヒストグラム部35から出力された、注目画素51の動きベクトルvecは、このようにして、後段処理用補正部101により補正されて動きベクトルvec'となり、切替部102に供給される。
切替部102は、信頼度評価部103の制御に基づいて、その出力先を、外部のLPF37側と信頼度用補正部104側のうちのいずれか一方の側に切り替える。
信頼度評価部103は、輝度勾配検出部33より供給された輝度勾配slopeとテンプレートマッチング部34より供給された制御信号flagに基づいて、ヒストグラム部35より供給された注目画素51の動きベクトルvecの信頼度を評価する。
そして、信頼度評価部103は、注目画素51の動きベクトルvecの信頼度が低いと評価した場合、切替部102の出力先を信頼度用補正部104側に切り替える。
従って、信頼度評価部103により注目画素51の動きベクトルvecの信頼度が低いと評価された場合、後段処理用補正部101により補正されて出力された動きベクトルvec'は、信頼度用補正部104に供給される。そして、後述するように、後段処理用補正部101により補正された動きベクトルvec'は、信頼度用補正部104によりさらに補正されて動きベクトルvec''となり、この動きベクトルvec''が、LPF37を介して動き検出部14の外部(図1の画像処理部11、画像処理部12、および、切替部15)に供給されることになる。
これに対して、信頼度評価部103は、注目画素51の動きベクトルvecの信頼度が高いと評価した場合、切替部102の出力先を外部のLPF37側に切り替える。
従って、信頼度評価部103により注目画素51の動きベクトルvecの信頼度が高いと評価された場合、後段処理用補正部101により補正されて出力された動きベクトルvec'は、信頼度用補正部104には供給されずに、そのまま、LPF37を介して動き検出部14の外部に供給されることになる。
詳細には、例えば、信頼度評価部103は、次の不等式(9)が成立するという第3の条件と、制御信号flagが「1」であるという第4の条件とのうちの少なくとも一方が満たされている場合、ヒストグラム部35より供給された注目画素51の動きベクトルvecの信頼度が低いと評価し、切替部102の出力先を信頼度用補正部104側に切り替える。。
これに対して、動きベクトル補正部36は、第3の条件と第4の条件とのいずれも満たされていない場合、ヒストグラム部35より供給された注目画素51の動きベクトルvecの信頼度が高いと評価し、切替部102の出力先を外部のLPF37側に切り替える。
slope < slope_thresh ・・・(9)
不等式(9)において、slope_threshは所定の閾値を示しており、予め設定されている値である。
不等式(9)から容易にわかることであるが、結局、注目画素51における輝度勾配が低い場合、即ち、注目画素51が、上述したステップエッジのエッジ部分のような特徴的な部分に対応していない場合、第3の条件が満たされることになる。
また、制御信号flagは、上述したように、テンプレートマッチング部34における注目画像51の動きベクトルvecの信頼度の評価結果を示す信号であるとも言えるので、制御信号flagが「1」の場合、即ち、テンプレートマッチング部34が注目画像51の動きベクトルvecの信頼度が低いと既に評価している場合、第4の条件が満たされることになる。
信頼度用補正部104は、切替部102の出力先が自分自身の側に切り替えられている場合、後段処理用補正部101から出力された動きベクトルvec'、即ち、ヒストグラム部35より入力された動きベクトルvec'が後段処理用補正部101により補正された結果として出力される動きベクトルvec'を、所定の補正方法でさらに補正し、その結果得られる動きベクトルvec''を、LPF37を介して動き検出部14の外部(図1の画像処理部11、画像処理部12、および、切替部15)に出力する。
この信頼度用補正部104の補正方法も特に限定されず、様々な方法を適用することができる。
具体的には、例えば、注目画素51の動きベクトルvecは、ここでは、上述した画像処理部12により利用される。即ち、画像処理部12は、注目画素51の動きベクトルvecの方向や大きさに応じて、注目画素51の画素値を補正する(画像強調する方向に補正する)。このような場合、信頼度の低い注目画素51の動きベクトルvecが利用されると、注目画素51の画素値は過補正されてしまうといった課題が発生する。
そこで、この課題を解決するために、例えば、信頼度用補正部104は、注目画素51の動きベクトルvecが後段処理用補正部101により補正された結果得られる動きベクトルvec'に対して次の式(10)の右辺に示されるような補正を行い、その補正結果、即ち、式(10)の左辺の値vec''を、注目画素51の最終的な(補正された)動きベクトルとして、LPF37を介して動き検出部14の外部に出力することができる。
vec'' = α×vec' ・・・(10)
なお、式(10)において、αは補正係数を示している。この補正係数αは、0乃至1の範囲で任意に設定可能な値である。
ところで、信頼度評価部103は、上述した第3の条件と第4の条件以外の条件に基づいて、ヒストグラム部35より供給された注目画素51の動きベクトルvecの信頼度を評価することも可能である。
具体的には、例えば、極小値min1の次に小さい相関値SAD(j)、即ち、極小値min2に対応する探索位置pos2が、図17に示されるように、注目画素51の配置位置iである場合、ウィンドウ72の中心画素71の対応画素(対応点)は、極小値min1に対応する探索位置pos1の画素ではなく、配置位置i(探索位置pos2)の注目画素51であることが多い。
そこで、例えば、極小値min2に対応する探索位置pos2が注目画素51の配置位置iであることを第5の条件に加え、その第5の条件が満たされている場合、図13の信頼度評価部103は、ヒストグラム部35より供給された注目画素51の動きベクトルvecの信頼度が低いと評価し、切替部102の出力先を信頼度用補正部104側に切り替えることもできる。これにより、信頼度用補正部104は、その動きベクトルvecが後段処理用補正部101により補正された結果得られる動きベクトvec'をさらに補正することになる。
なお、第5の条件が満たされた場合、図示はしないが、信頼度評価部103がそのことを信頼度用補正部104に通知することで、信頼度用補正部104は、ウィンドウ72の中心画素71の対応画素(対応点)は配置位置i(探索位置pos2)の注目画素51であるとみなし、即ち、注目画素51の配置位置iにおける動きはないとみなし、後段処理用補正部101により補正された注目画素51の動きベクトルvec'を「0」に置き換える。或いは、信頼度用補正部104は、上述した式(10)の補正係数αを0に設定して、後段処理用補正部101により補正された注目画素51の動きベクトルvec'を補正すると捉えてもよい。即ち、第5の条件が満たされた場合、信頼度用補正部104は、後段処理用補正部101により補正された注目画素51の動きベクトルvec'を0ベクトルに補正する。
ただし、この場合、テンプレートマッチング部34(図4のSAD極小値評価部63)は、制御信号flagの他に、この探索位置pos2を信頼度評価部103に供給する必要がある。
或いは、SAD極小値評価部63が、第5の条件が満たされた場合、制御信号flagとして「1」を強制的に出力するようにしてもよい。
以上、図2の動きベクトル補正部36が取り得る様々な実施形態のうちの、図13に示される実施形態の動きベクトル補正部36Aの構成例について説明した。
図2の動きベクトル補正部36はまた、例えば、図18に示される動きベクトル補正部36Bや、図19に示される動きベクトル補正部36Cとして構成することもできる。
図18の動きベクトル補正部36Bは、後段処理用補正部101から構成されている。この講談処理用補正部101は、図13の動きベクトル補正部36Aの対応するそれと基本的に同様の機能と構成を有している。従って、図18の動きベクトル補正部36Bは、ヒストグラム部35から入力された動きベクトルvecに対して、図13の信頼度用補正部104に対応する補正処理は施さずに、後段処理用補正部101による補正処理のみを施すことになる。
これに対して、図19の動きベクトル補正部36Cの構成は、図13の動きベクトル補正部36Aの構成に対して、後段処理用補正部101が省略された構成となっている。従って、図19の動きベクトル補正部36Cは、ヒストグラム部35から入力された動きベクトルvecに対して、図13の後段処理用補正部101に対応する補正処理は施さずに、信頼度用補正部104による補正処理のみを施す(ただし、信頼度評価部103により、動きベクトルvecの信頼度が低いと判定された場合)ことになる。
以上、図2乃至図19を参照して、図2の動き検出部14の構成例について説明したが、その説明の内容をまとめると、次のようになる。
即ち、本実施の形態の動き検出部14においては、表示対象フレームを構成する画素のうちの所定の画素を注目画素として設定し、その注目画素における動きベクトルを生成し、その動きベクトルの信頼性や後段の処理内容の特徴に基づいて補正した上、外部(図1の画像処理部11、画像処理部12、および、切替部15)に出力することができる。
詳細には、テンプレートマッチング部34は、表示対象フレーム(画像データ)とその直前フレーム(画像データ)とを比較することで、注目画素における動きベクトル候補pvecを生成し、ヒストグラム部35に提供する。
換言すると、テンプレートマッチング部34は、注目画素の配置位置に対応する直前フレーム内の位置に配置される第1の画素(例えば、図5に示されるように、注目画素として画素51が設定されている場合、配置位置iの画素71)の対応画素として、表示対象フレームから第2の画素(例えば、図5の探索範囲i-6乃至i+6のうちのいずれかの画素)を検出し、注目画素を起点とし第2の画素を終点とするベクトル(例えば、図5に示されるように、注目画素として画素51が設定され、第2の画素として、比較領域73−(+6)の中心画素、即ち、配置位置i+6の画素が検出された場合、「+6」)を、注目画素における動きベクトル候補pvecとして生成し、ヒストグラム部35に提供する。
さらに、このとき、テンプレートマッチング部34は、表示対象フレームの中に対応画素の候補が複数個存在すると判定した場合(例えば、図9に示されるように、探索位置i-1の画素と探索位置i+5の画素が対応画素の候補である場合であって、具体的には、例えば、上述した不等式(5)乃至不等式(7)の全てが成立するといった第1の条件が満たされる場合)、または、第2の画素が対応画素であることの信頼度が低いと判定した場合(例えば、上述した不等式(8)が成立するといった第2の条件が満たされる場合)、動きベクトルの補正指令を示す第1の情報(即ち、ここでは、制御信号flagとして「1」)を動きベクトル補正部36に提供する。
ヒストグラム部35は、テンプレートマッチング部34により生成された注目画素とその周辺の画素のそれぞれにおける動きベクトル候補pvec(例えば、図11の領域95内の各画素(枠)内のそれぞれの数値)のうちの頻度が最も高い動きベクトル候補(例えば、図12のヒストグラムの頻度が最も高い「+4」)を、注目画素における動きベクトルvecとして決定し、動きベクトル補正部36に出力する。
輝度勾配検出部33は、注目画素周辺の輝度の変化の度合(例えば、上述した輝度勾配であって、具体的には、例えば、上述した式(2)で示される値slope)を演算し、動きベクトル補正部36に提供する。
動きベクトル補正部36は、後段(例えば、図1の補正部22等)の処理内容の特徴に基づいて、ヒストグラム部35より供給された動きベクトルvecを補正し、その結果得られる特徴ベクトルvec'を、そのまま外部(図1の画像処理部11、画像処理部12、および、切替部15)に出力することができるし、次のような補正処理をさらに施した上で、外部に出力することもできる。
即ち、動きベクトル補正部36は、輝度勾配検出部33の処理結果(ここでは、輝度勾配slope)と、テンプレートマッチング部34の処理結果(ここでは、制御信号flag)に基づいて、ヒストグラム部35より供給された動きベクトルvecの信頼度を評価し、動きベクトルvecの信頼度が低いと評価した場合、具体的には、例えば、上述した不等式(9)が成立するという第3の条件と、図2のテンプレートマッチング部34より供給される制御信号flagが「1」であるという第4の条件とのうちの少なくとも一方が満たされている場合、後段の処理内容に応じて補正された動きベクトルvec'をさらに補正し、その結果得られる動きベクトルvec''を、外部(図1の画像処理部11、画像処理部12、および、切替部15)に出力することもできる。
或いは、動きベクトル補正部36は、後段の処理内容に応じた補正の処理を行わずに、輝度勾配検出部33の処理結果と、テンプレートマッチング部34の処理結果に基づいて、ヒストグラム部35より供給された動きベクトルvecの信頼度を評価し、動きベクトルvecの信頼度が低いと評価した場合、ヒストグラム部35より供給された動きベクトルvecを補正し、外部(図1の画像処理部11、画像処理部12、および、切替部15)に出力することもできる。
このようにして、本実施の形態の動き検出部14は、周囲と調和の取れた動きベクトvec(実際には、補正された動きベクトルvec'または動きベクトルvec'')を出力することが可能になる。その結果、例えば、図1の画像処理部12等は、ホールド型表示装置2において発生する動きボケ(特に、追従視に起因する動きボケ)を、周囲との違和感のないように精度よく抑制することが可能になる。
次に、図20のフローチャートを参照して、本実施の形態の画像処理装置1(図1)の画像処理について説明する。
はじめに、ステップS1において、画像処理装置1は、表示対象フレームの画像データを入力する。詳細には、表示対象フレームの画像データは、画像処理部11、画像処理部12、参照画像記憶部13、および、動き検出部14のそれぞれに入力される。
ステップS2において、画像処理装置1(画像処理部11、画像処理部12、および、動き検出部14等)は、表示対象フレームを構成する複数の画素の中から、注目画素を設定する。
ステップS3において、動き検出部14は、表示対象フレームの画像データと、参照画像記憶部13に記憶されている参照画像(直前フレーム)の画像データとを比較することで、注目画素の動きベクトルvecを演算し、必要に応じてその動きベクトルvecを補正し、画像処理部11、画像処理部12、および、切替部15のそれぞれに供給する。
このような動き検出部14の処理(ステップS3の処理)を、以下、「動きベクトル演算処理」と称する。なお、「動きベクトル演算処理」の詳細については図21のフローチャートを参照して後述する。
ステップS4において、画像処理装置1(画像処理部11、画像処理部12、および、切替部15等)は、注目画素の動きベクトルvecの大きさが閾値以上であるか否かを判定する。
なお、実際には、ステップS4乃至S7の処理では、動き検出部14のステップS3の処理である「動きベクトル演算処理」の結果として、注目画素の補正された動きベクトルvec'または動きベクトルvec''を利用することになるが、ステップS4乃至S7の処理の説明では、これらを個々に区別する必要がないので、上述したように、単に動きベクトルvecと称する。
ステップS4において、動きベクトルvecの大きさが閾値未満であると判定された場合(動きベクトルvecの大きさが閾値以上ではないと判定された場合)、即ち、注目画素に動きがない場合、切替部15は、その入力を画像処理部11側の端に切り替える。すると、ステップS5において、画像処理部11が、注目画素に対して所定の画像処理を施すことで、注目画素の画素値を補正し、補正した画素値を切替部15を介して表示制御部16に供給する。
これに対して、ステップS4において、動きベクトルvecの大きさが閾値以上であると判定された場合、即ち、注目画素に動きがある場合、切替部15は、その入力を画像処理部12(補正部22)側の端に切り替える。
このとき、ステップS6において、ステップエッジ検出部21は、注目画素の画素値と、所定の方向(いまの場合、空間方向Xまたはその逆方向であり、動き検出部24より供給される動きベクトルvecの方向(プラスかマイナス)に従って決定される)に隣接する画素の画素値との差分値を演算し、演算した差分値と注目画素の画素値とを補正部22に供給する。
ステップS7において、補正部22は、動き検出部14より供給された注目画素の動きベクトルと、ステップエッジ検出部21より供給された差分値とに基づいて、ステップエッジ検出部21より供給された注目画素の画素値を補正し、補正した画素値を切替部15を介して表示制御部16に供給する。
ステップS8において、表示制御部16は、画像処理部11または画像処理部12より切替部15を介して供給された注目画素の画素値を(必要に応じて、その画素値を、ホールド型表示装置2に対応する信号に変換して)ホールド型表示装置2に出力する。即ち、表示制御部16は、注目画素の画素値を、ホールド型表示装置2の表示素子のうちの注目画素に対応する表示素子に対する目標レベルとして、ホールド型表示装置2に出力するのである。
ステップS9において、画像処理装置1は、全ての画素の画素値を出力したか否かを判定する。
ステップS9において、全ての画素の画素値がまだ出力されていないと判定された場合、処理はステップS2に戻され、それ以降の処理が繰り返される。即ち、表示対象フレームを構成する複数の画素のうちのまだ処理が施されていない画素が注目画素として順次設定され、注目画素の画素値が補正され(0補正も含む)、ホールド型表示装置2に出力される。
以上の処理が繰り返されて、表示対象フレームを構成する全ての画素の画素値がホールド型表示装置2に供給されると、ステップS9において、全ての画素の画素値を出力したと判定され、処理はステップS10に進められる。
このとき、ホールド型表示装置2は、その画面を構成する表示素子(液晶等)のそれぞれに対して、供給された画素値(目標レベル)に対応するレベルの電圧をそれぞれ印加し、次のフレームの表示が指示されるまで(次のフレームを構成する全ての画素の画素値が供給されるまで)、そのレベルの電圧の印加を保持し続ける。即ち、各表示素子のそれぞれは、対応する画素をホールド表示する。
ステップS10において、画像処理装置1は、動画像を構成する全てのフレームを処理したか否かを判定する。
ステップS10において、全てのフレームをまだ処理していないと判定された場合、処理はステップS1に戻され、次のフレームの画像データが表示対象フレームの画像データとして入力され、それ以降の処理が繰り返される。
そして、動画像を構成する複数のフレームのうちの最後のフレームを構成する全ての画素の画素値が補正され(0補正も含む)、ホールド型表示装置2に出力されると、ステップS10において、全てのフレームを処理したと判定され、画像処理装置1の画像処理は終了される。
なお、図20の例では、画像処理装置1は、ホールド型表示装置2に対して、表示対象フレームを構成する各画素の画素値(補正された画素値)のそれぞれを個別に出力しているが、表示対象フレームを構成する全ての画素の画素値を補正した後、それらを一括して(表示対象フレームの画像信号として)出力してもよい。
次に、図21のフローチャートを参照して、図2の動き検出部14の「動きベクトル演算処理(図20のステップS3の処理)」について説明する。
はじめに、ステップS21において、輝度勾配検出部33は、注目画素周囲の輝度勾配slopeを検出し、動きベクトル補正部36に供給する。
ステップS22において、テンプレートマッチング部34は、注目画素を含む画素群を構成する各画素(例えば、図11の領域95を構成する各画素)のそれぞれの動きベクトル候補pvecを演算し、ヒストグラム部35に供給する。
また、ステップS23において、テンプレートマッチング部34は、注目画素の動きベクトルvecの補正可否を示す制御信号(フラグ)flagを生成し、動きベクトル補正部36に供給する。
ステップS24において、ヒストグラム部35は、注目画素を含む画素群を構成する各画素のそれぞれの動きベクトル候補pvecのヒストグラム(例えば、図12のヒストグラム)を生成し、最も頻度の高い動きベクトル候補pvecを注目画素の動きベクトルvecとして決定し、動きベクトル補正部36に供給する。
ステップS25において、図13の動きベクトル補正部36Aの後段用補正部101は、注目画素の動きベクトルvecを、第1の補正方法で補正し、その結果得られる動きベクトルvec'を切替部102に供給する。
なお、図2の動きベクトル補正部36が、図19の動きベクトル補正部36Cとして構成される場合、このステップS25の処理は省略される。
一方、図2の動きベクトル補正部36が、図18の動きベクトル補正部36Bとして構成される場合、このステップS25の処理は実行されるが、後述するステップS26乃至S28の処理が省略されることになる。
このように、図2の動きベクトル補正部36の形態によって、「動きベクトル演算処理」の内容は若干異なることになる。換言すると、図21は、図2の動きベクトル補正部36が、図13の動きベクトル補正部36Aとして構成されている場合の「動きベクトル演算処理」の一例を説明するフローチャートである。
ところで、上述したステップS25の処理が終了すると、処理はステップS26に進む。
ステップS26において、図13の信頼度評価部103は、ステップS23の処理でテンプレートマッチング部34により生成された制御信号(フラグ)flagと、ステップS21の処理で輝度勾配検出部33により検出された輝度勾配slopeとに基づいて、動きベクトルvecの信頼度を評価する。
ステップS27において、信頼度評価部103は、ステップS26の処理結果に基づいて動きベクトルvecの信頼度が低いか否かを判定する。
ステップS27において、信頼度評価部103は、動きベクトルvecの信頼度が高い(低くない)と判定した場合、切替部102の出力先を外部のLPF37側に切り替え、処理をステップS29に進める。
ステップS29において、切替部102は、ステップS25の処理で後段処理用補正部101により第1の補正方法で補正された動きベクトルvec'をLPF37を介して動き検出部14の外部(図1の画像処理装置11、画像処理装置12、および、切替部15)に出力する。
これに対して、ステップS27において、信頼度評価部103は、動きベクトルvecの信頼度が低いと判定した場合、切替部102の出力先を信頼度用補正部104側に切り替え、処理をステップS28に進める。
すると、後段処理用補正部101により、ステップS25の処理で第1の補正方法を利用して補正された動きベクトルvec'は、信頼度用補正部104に供給されるので、ステップS28において、信頼度用補正部104は、注目画素の(後段処理用補正部101により補正された)動きベクトルvec'を、第2の補正方法でさらに補正し、ステップS29において、その補正された動きベクトルvec''をLPF37を介して動き検出部14の外部に出力する。
このようにして、ステップS29の処理で注目画素の補正された動きベクトルvec'
または動きベクトルvec''が出力されると、「動きベクトル演算処理」は終了となる。
ところで、本発明が適用される画像処理装置は、上述した図1の構成に限定されず、様々な実施の形態を取ることができる。
例えば、本発明が適用される画像処理装置は、図22に示されるように構成することもできる。即ち、図22は、本実施の他の形態の画像処理装置の構成例を表しており、図1の画像処理装置1と対応する部分には対応する符号が付されている。
図22に示されるように、この実施の形態の画像処理装置151には、図1の画像処理装置1と基本的に同様の構成と機能を有する、画像処理部11乃至表示制御部16のそれぞれが設けられており、それらの基本的な接続形態も図1のそれと同様とされている。
ただし、図1の画像処理装置1においては、動き検出部14の検出結果(動きベクトルvec)が、ステップエッジ検出部21に供給されていたが、図22の画像処理装置151においては、動き検出部14の検出結果は、ステップエッジ検出部21に供給されず、逆に、ステップエッジ検出部21の検出結果が、動き検出部14と画像処理部11のそれぞれに供給されている。
画像処理装置151は、このような構成を有しているので、次のような動作を行うことになる。
即ち、画像処理装置151においては、初めに、ステップエッジ検出部21が、所定のフレームを構成する複数の画素の中からステップエッジに対応する画素を検出し、その検出結果を、補正部22の他、動き検出部14と画像処理部11のそれぞれに供給する。
これにより、動き検出部14は、ステップエッジ検出部21により検出された画素(ステップエッジに対応する画素)に対してのみその処理を実行することができる。即ち、動き検出部14は、ステップエッジ検出部31により検出されたステップエッジが動いているか否かを検出するとも言える。
また、画像処理部11は、ステップエッジ検出部21により検出された画素(ステップエッジに対応する画素)のうちの、動き検出部14により動きが検出された画素に対しては、その処理を禁止する。即ち、画像処理部11は、動きのあるステップエッジに対応する画素に対してはその処理を禁止し、それ以外の画素に対してのみその処理を実行する。
このように、図22の画像処理装置151においては、1つの画素に対する画像処理は、画像処理部11と画像処理部12のうちのいずれか一方のみにより実行される。換言すると、1つのフレームに対して画像処理が1回だけ施されることになる。さらに、動き検出部14の処理も、ステップエッジに対応する画素についてのみ実行される。従って、画像処理装置151の全体の処理量を抑制することが可能になる。
また、上述した一連の処理は、ハードウエアにより実行させることもできるが、ソフトウエアにより実行させることができる。
この場合、図1の画像処理装置1や図22の画像処理装置151は、例えば、図23に示されるようなパーソナルコンピュータで構成することができる。
図23において、CPU(Central Processing Unit)201は、ROM(Read Only Memory)202に記録されているプログラム、または記憶部208からRAM(Random Access Memory)203にロードされたプログラムに従って各種の処理を実行する。RAM203にはまた、CPU201が各種の処理を実行する上において必要なデータなども適宜記憶される。
CPU201、ROM202、およびRAM203は、バス204を介して相互に接続されている。このバス204にはまた、入出力インタフェース205も接続されている。
入出力インタフェース205には、キーボード、マウスなどよりなる入力部206、ディスプレイなどよりなる出力部207、ハードディスクなどより構成される記憶部208、および、モデム、ターミナルアダプタなどより構成される通信部209が接続されている。通信部209は、インターネットを含むネットワークを介して他の情報処理装置(図示せず)との通信処理を行う。
なお、この場合、出力部207自身がホールド型表示装置であってもよいし、或いは、入出力インタフェース205に必要に応じて接続される図示せぬ接続部に、外部のホールド型表示装置2(図1)が接続されてもよい。
入出力インタフェース205にはまた、必要に応じてドライブ210が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどよりなるリムーバブル記録媒体211が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部208にインストールされる。
一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、ネットワークや記録媒体からインストールされる。
このようなプログラムを含む記録媒体は、図23に示されるように、装置本体とは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク(フロッピディスクを含む)、光ディスク(CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む)、光磁気ディスク(MD(Mini-Disk)を含む)、もしくは半導体メモリなどよりなるリムーバブル記録媒体(パッケージメディア)211により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM202や、記憶部208に含まれるハードディスクなどで構成される。
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、その順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、以上の説明においては、ホールド型表示装置2の画面を構成する各表示素子(液晶型表示装置の場合、液晶)のそれぞれには、フレームを構成する複数の画素のうちの所定の1つが対応付けられていたが、1つの画素に複数の表示素子が対応付けられていてもよい。即ち、複数の表示素子で1つの画素を表示してもよい。
さらに、以上の説明においては、画像処理装置は、空間方向Xと平行な動きベクトルを生成したが、上述したように、上述した一連の処理と基本的に同様な処理を実行することで、空間方向Yと平行な動きベクトルを生成することもできるし、空間方向Xと空間方向Yとに平行な2次元平面上の任意な方向の動きベクトルを生成することもできる。
1 画像処理装置, 2 ホールド型表示装置, 11 画像処理部, 12 画像処理部, 13 参照画像記憶部, 14 動き検出部, 15 切替部, 16 表示制御部, 21 ステップエッジ検出部, 22 補正部, 31 ローパスフィルタ(LPF), 32 LPF, 33 輝度勾配部, 34 テンプレートマッチング部, 35 ヒストグラム部, 36,36A,36B,36C 動きベクトル補正部, 37 LPF, 51 注目画素, 61 SAD演算部, 62 SAD極小検出部, 63 SAD極小値評価部, 101 後段処理用補正部, 102 切替部, 103 信頼度評価部, 104 信頼度用補正部 201 CPU, 202 ROM, 203 RAM, 208 記憶部, 211 リムーバブル記録媒体