以下に添付図面を参照して、この発明にかかる補間画像生成装置、補間画像生成方法および補間画像生成プログラムの最良な実施の形態を詳細に説明する。
(実施の形態1)
実施の形態1にかかる補間画像生成装置は、動画像の第1の参照フレームp1(第1の参照画像)と第2の参照フレームp2(第2の参照画像)との間に内挿する補間フレームの画像を生成する際に、参照フレームp1内の所定サイズのブロックを、一致領域と不一致領域とに分割し、領域分割が尤もらしい領域分割か否かを、ベイズ決定規定の概念を用いてMAP(maximum a posteriori probability)推定問題として定式化したものである。ここで、一致判定問題は、動き推定によって求められた動きベクトルによって定まるブロック対の中を一致領域と不一致領域に分割する問題である。
まず、本実施の形態の補間画像生成装置で行われる一致判定処理で利用するベイズ決定規定について説明する。
ベイズ決定規定は、統計的パターン認識の確率モデルに基づいている。一般的に、m個の類をc1,c2,・・・cmとし、入力パターンから抽出されたn個の特徴の値の組(特徴ベクトル)を、x=(x1,x2,・・・xn)とすると、各類に属するパターンが生起する確率(事前確率)p(ci)(i=1,・・・,m)と、各類ciのもとで、パターンxの生起確率p(x|ci)(i=1,・・・,m)が知られているものとする。このとき、xが生起したという条件のもとで事後確率を最大とする類ck、すなわち、次式
p(ck|x)=maxp(ci|x)
を満たす類ckにパターンxは属すると決定すれば、全体的な識別の誤り確率が最小になることがわかっているという規則がベイズ決定規則である。
本実施の形態の補間画像生成装置では、このベイズ決定規則を、一致判定に利用している。すなわち、一致領域と不一致領域が、入力された画像に対してどの程度尤もらしいかを事後確率(posteriori probability)として定式化している。
ベイズ決定規則では、事後確率は、尤度と事前確率の積で表現される。事前確率は、一致領域と不一致領域の空間分布の確率を示すものとして定式化する。尤度は、観測されるノイズがガウス分布に従うと仮定して、一致領域内のブロック差分をガウス分布としてモデル化する。このようにノイズも考慮に入れて定式化を行うことによってノイズに対してロバスト性を向上させて領域の一致判定をおこなうことができる。
ここで、ya,ybをブロックBの画素値、xを一致領域、不一致領域を示すラベルとする。すなわち、x=1が一致領域のラベル、x=0が不一致領域のラベルである。MAP推定問題は、画像yが与えられたときの一致判定xの確率(事後確率)p(x|y)を最大化する問題である。ベイス決定規則から、事前確率p(x)と、一致判定xが与えられたときのyの尤度p(y|x)には、数1式に示す関係がある。
事前確率p(x)は、局所的に0(不一致領域)と1(一致領域)が交互に繰り返される空間分布、すなわち0(不一致領域)と1(一致領域)が分散している場合に確率的に低くなり、さらに0(不一致領域)の空間分布よりも1(一致領域)の空間分布の方が確率的に高いと定められ、数2式のように定式化される。
ここで、β、cはブロック内の隣接画素の2点であるクリークであり、Zは正規化定数である。図24は、ブロック内の隣接画素の2点であるクリークの一例を示す説明図である。
尤度p(y|x)は、他の条件が同一の場合には、値が大きい程、条件xの元でより尤もらしいことを示す。本実施の形態では、尤もらしさを画素の差分によって表している。よって、一致判定xが与えられたときに、一致領域内の差分値が小さいほど、p(y|x)の値が大きくなり、より尤もらしいとする。
画像で観測されるノイズが、分散σ2、平均0の白色ガウスノイズであるとすると、尤度は数3式のようにモデル化することができる。
なお、本実施の形態では、ノイズがガウス分布に従うとして尤度のモデル化を行ったが、この他、一般化ガウス分布やポアソン分布に従うとして尤度のモデル化を行っても良い。
数3式のように尤度をモデル化した場合に、MAP推定問題が、数4式に示すように定式化することができる。
ここで数4式の対数を取って、数5式のように定式化してもよい。
上記数4式(若しくは数5式)を解法して一致判定xを算出することにより、ベイズ決定規則のもとでの一致判定を行うことができる。言い換えれば、本実施の形態の補間画像生成装置では、数2式で示される事前確率を求め、数3式で示される尤度を求め、かかる事前確率と尤度とを乗算した数4式で示される事後確率が最大値になる一致判定xを求めている。
次に、このようなヘイズ決定規則を利用した一致判定をおこない補間フレームを生成する本実施の形態にかかる補間画像生成装置について説明する。
なお、本実施の形態では、入力画像信号(動画像信号)が60Hzのノンインタレース信号(プログレッシブ信号)であり、60Hzのノンインタレース信号に対して隣接する二つの参照フレーム間の時間的中央位置(補間フレーム面)に補間フレームを生成し、その補間フレームを二つの参照フレーム間に内挿することにより120Hzのノンインタレース信号に変換する場合を例にとって説明する。また、時間的に先の参照フレームを参照フレームp1、時間的に後の参照フレームを参照フレームp2とする。ただし、本発明は、上記画像信号に限定されるものではなく、様々なフレームレートの画像信号に対して本発明を適用することができる。
図1は、実施の形態1にかかる補間画像生成装置の機能的構成を示すブロック図である。本実施の形態にかかる補間画像生成装置100は、図1に示すように、動き推定部110と動き補償部120とフレームメモリ130とを備えている。
動き推定部110は、入力される2つの参照フレームp1、p2を格子状のブロックに分割して分割されたブロックを一致領域と不一致領域に分割して、各領域で動きベクトルを求めるものである。
動き推定部110は、図1に示すように、動き探索部111と、領域分割部112と、尤度算出部113と、事前確率算出部114と、事後確率算出部115と、判断部116とを備えている。
動き探索部111は、2つの参照フレームp1、p2を入力して、一様格子のブロックごとに第1の動きベクトルを求める処理を行う。また、動き探索部111は、後述する判断部116によって一致領域と不一致領域が尤もらしい領域分割であると判断された場合に、さらに不一致領域のみに基づいて第2の動きベクトルを求める処理を行う。
領域分割部112は、参照フレームp1,p2内のブロックを、一致領域と不一致領域とに分割する処理を行う。また、領域分割部112は、尤度算出部113、事前確率算出部114、事後確率算出部115、判断部116とともに、分割された一致領域と不一致領域についての一致判定処理を行う。
尤度算出部113は、動き探索部111によって求めた第1の動きベクトルによって定められる参照フレームp1のブロックと参照フレームp2上のブロックにおける一致領域の内部の画素値の差分のガウス分布に基づいた尤度p(y|x)を数3式に従って算出する処理を行う。この尤度は、画素の差分によって表され、一致判定xが与えられたときに、一致領域内の差分値が小さいほど、尤度p(y|x)の値が大きくなり、より尤もらしいことを意味する。
事前確率算出部114は、一致領域と不一致領域の空間分布の確率を示す事前確率p(x)を数2式に従って算出する処理を行う。この事前確率p(x)は、不一致領域と一致領域が分散している空間分布の場合には低い値となり、さらに不一致領域の空間分布よりも一致領域の空間分布の方が高い値となるように数3式で設定される。
事後確率算出部115は、尤度算出部113によって算出された尤度と事前確率算出部114によって算出された事前確率とを乗算し、一致領域と不一致領域の分割の尤もらしさを示す事後確率p(x|y)を数4式に従って算出する処理を行う。
判断部116は、事後確率p(x|y)が最大値を有するか否かを判定し、最大値となる場合に、領域分割部112によって分割した一致領域と不一致領域を、尤もらしい領域分割であると判断する一致判定処理を行うものである。
動き補償部120は、判断部116によって一致領域と不一致領域が尤もらしい領域分割であると判断された場合に、参照フレームp1,p2と動き探索部111で求めた第1の動きベクトルとから一致領域のみに基づいて動き補償を行い、補間フレームを生成する処理を行う。フレームメモリ130は、参照フレームの画像を一時的に保存する記憶装置である。
次に、以上のように構成された補間画像生成装置100による補間画像生成処理について説明する。図2は、補間画像生成の全体処理の手順を示すフローチャートである。
まず、動き探索部111は、補間フレームを一様格子の小ブロックbl0に分割し(ステップS201)、ブロックの走査を開始する(ステップS202)。そして、動き推定を行い、ブロック内の一致領域となる動きベクトルグループmvgと不一致フィルタグループafgを求める(ステップ203)。ここで、かかる動き推定処理については後述する。
次に、動きベクトルグループmvg、不一致フィルタグループafg、参照フレームp1,参照フレームp2から動き補償処理を行い、補間フレームを生成をする(ステップS204)。かかる動き補償処理については後述する。そして、小ブロックbl0をすべて走査するまで、ステップS203およびS204の処理を繰り返し、小ブロックbl0をすべて走査した場合には処理を完了する(ステップS205)。
次に、ステップS202における動き推定処理について説明する。図3は、動き推定処理の手順を示すフローチャートである。
動き推定処理では、参照フレームp1、p2の探索領域からもっとも相関度の高いブロックを探索し、第1の動きベクトルを求め(動き探索処理)、探索されたブロック対である小ブロックbl1,bl2の内部において一致・不一致を判定し不一致フィルタafを求め(一致判定処理)、不一致画素のみから再帰的に第2の動きベクトルを探索する処理を行う。
まず、動き探索部111により反復処理のための変数iteを1に初期化して、反復処理を開始し、小ブロックbl0と同サイズのデジタルフィルタを不一致フィルタとし、最初の反復処理の不一致フィルタaf[0]にすべて1(不一致画素)を代入する(ステップS301)。
図4は、最初の反復処理の不一致フィルタaf[0]の状態を示す説明図である。図4に示すように、ステップS301では、不一致フィルタaf[0]にすべて1(不一致画素)が設定される。なお、不一致フィルタaf[α]は反復回数α(ite=α)における不一致フィルタであることを示している。
不一致フィルタは、小ブロックbl0と同サイズで、0または1を値として有するデジタルフィルタである。図5は、不一致フィルタの内容を示す説明図である。図5に示すように、不一致フィルタには、一致画素については0、不一致画素について1が設定される。
次に、動き探索部111により動き探索処理を行う。図6は、動き探索処理の概要を示す説明図である。図6に示すように、動き探索部111は、不一致フィルタ[iteー1]の値が1の画素、すなわち不一致領域のみを用いて、補間フレーム上の小ブロックbl0を中心として、幾何学的に対称的な参照フレームp1上の小ブロックbl1と参照フレームp2上の小ブロックbl2の探索をおこない、最も相関度の高い小ブロックの対を探索し、動きベクトルmv[ite]を求める(ステップS302)。
図7は、最初の反復時(ite=1)の場合における動きベクトル推定処理の説明図である。最初の反復処理時において、相関度演算の際に、図7に示すように、不一致フィルタaf[0]の値が1の画素のみについて演算をおこなうが、最初の反復時において不一致フィルタaf[0]はブロック内の全画素が1(不一致画素)に設定されているので、ブロック内のすべての画素について相関度演算が行われることになる。
図8は、二回目以降の反復時(ite>1)の場合における動きベクトル推定処理の説明図である。二回目以降の反復処理時においては、相関度演算の際に、図8に示すように、不一致フィルタaf[ite−1]の値が1の画素のみについて相関度演算が行われる。
次に、動き探索部111によって、動きベクトルmv[Ite]によって定まる、参照フレームp1上の小ブロックbl1と、参照フレームp2上の小ブロックbl2を求める(ステップS303)。
次に、領域分割部112は、小ブロックbl1と小ブロックbl2から一致判定をおこない、不一致フィルタaf[ite]を求める(ステップS304)。なお、かかる一致判定処理については後述する。
次に、領域分割部112は、不一致フィルタaf[ite]と不一致フィルタaf[ite−1]の論理積を求めて、求めた論理積を不一致フィルタaf[ite]に設定する(ステップS305)。これにより、一致判定処理で得られた不一致フィルタの値が不一致フィルタaf[ite]に反映されることになる。
そして、動き探索部111は、変数iteを1だけ増加して(ステップS306)、ステップS302からS306までの動き探索処理および一致判定処理を繰り返し実行し、変数iteが任意の整数であるnを越えた時点で(ステップS307)、ステップS302からS306までの処理の反復を終了する。これにより、動きベクトルグループmvg(動きベクトルmv[i](i=1...n))と、不一致フィルタグループafg(不一致フィルタaf[i](i=1...n))が出力される。
次に、ステップS304における一致判定処理について説明する。図9は、一致判定処理の手順を示すフローチャートである。
本実施の形態では、階層的にMAP推定問題を解法することにより一致判定をおこなっている。まず、領域分割部112は、小ブロックbl1と小ブロックbl2を入力して、小ブロックbl1からブロック層bl_lay1を生成し、小ブロックbl2からブロック層bl_lay2を生成する(ステップS901)。かかる階層生成処理については後述する。
次に、領域分割部112は、ループ変数をiとして、階層を順に再帰的に下るループを開始し、ループ変数iの初期値として0を設定する(ステップS902)。
次に、領域分割部112は、ブロック層bl_lay1[i+1]と同サイズの不一致フィルタafを生成し、生成した不一致フィルタafの値にすべて1(不一致画素)を設定し(ステップS903)、ブロック内の走査を開始する(ステップS904)。ここで、走査インデックスを(x、y)とする。
次いで、探索領域についての組み合わせ探索ループを開始する(ステップS905)。図10は、探索領域についての全組み合わせを示す探索領域パターンの例を示す説明図である。図10において斜線部分が探索領域であることを示している。
そして、領域分割部112は、図10に示す探索領域パターンの中からまだ選択されていない任意の探索領域パターンを一つ選択して組み合わせブロックを生成する(ステップS906)。そして、組み合わせブロックを不一致フィルタafにおける(2x、2y)の位置に貼付して不一致フィルタaf_tmpを生成する(ステップS907)。
次に、事前確率算出部114により、不一致フィルタaf_tmpを用いて事前確率p(x)を算出する(ステップS908)。ここで、事前確率p(x)の算出処理については後述する。
そして、尤度算出部113によって、不一致フィルタaf_tmp、ブロック層bl_lay1[i+1]、ブロック層bl_lay2[i+1]を用いて尤度p(y|x)を算出する(ステップS909)。ここで、尤度p(y|x)の算出処理については後述する。
次に、事後確率算出部115によって、事前確率p(x)と尤度p(y|x)の積から事後確率p(x|y)を算出する(ステップS910)。
次に、判断部116によって、事後確率pの最大値を与える不一致フィルタaf_tmpを不一致フィルタaf_maxとする(ステップS911)。具体的には、判断部116は、前回までの組み合わせループ内において、ステップS906で選択された探索領域パターンに応じて生成された不一致フィルタaf_tmpから求めた事後確率p(x|y)の最大値より、今回の組み合わせループ内で選択された探索領域パターンに応じて生成された不一致フィルタaf_tmpから求めた事後確率p(x|y)が大きいか否かを判断して大きい場合に、今回の事前確率p(x|y)を与える不一致フィルタaf_tmpを不一致フィルタaf_maxとする。
そして、探索領域の全組み合わせについて探索したか否か、すなわち図10に示す全ての探索領域パターンを選択したか否かを判断し(ステップS912)、全組み合わせを探索していない場合には(ステップS912:No)、ステップS905からS911までの処理を繰り返して実行する。
一方、ステップS912において、探索領域の全組み合わせを探索したと判断された場合には(ステップS912:Yes)、現在の不一致フィルタaf_maxを不一致フィルタafと設定する(ステップS913)。
そして、ブロック内をすべて走査するまでステップS904からS913までの処理を繰り返し実行し(ステップS914:No)、ブロック内をすべて走査したら(ステップS914:Yes)、ループ変数iをi=i+1に更新する(ステップS915)。そして、ループ変数iが階層数n以上になるまで、ステップS902からS915までの処理を繰り返し(ステップS916:No)、ループ変数iが階層数n以上になったら(ステップS916:Yes)、処理を終了する。これにより、事後確率p(x|y)の最大を与える不一致フィルタafが出力される。
次に、ステップS901における階層生成処理について説明する。図11は、階層生成処理の手順を示すフローチャートである。ここでは、入力された小ブロックlblから、空間方向にサンプリングされた階層状のブロック層lbl_layを生成する処理について説明する。かかる階層生成処理は、図9の一致判定処理におけるステップS901において、小ブロックbl1、小ブロックbl2のそれぞれに対して実行され、小ブロックbl1のブロック層、小ブロックbl2のブロック層が生成されることになる。ここでは、一般的に、小ブロックlblを入力して、小ブロックlblからブロック層lbl_layを生成する処理について説明する。
まず、領域分割部112は、小ブロックlblの縦サイズと横サイズから空間方向へのサンプリング回数nを算出する(ステップS1101)。例えば、16×16サイズのブロックの場合には、縦横とも4回ずつ1/2スケールのサンプリングを繰り返し適用すると(n=4)、1×1の最小ブロックとなる。32×16であれば、縦横とも4回ずつ1/2スケールのサンプリングを適用すると(n=4)、2×1の最小ブロックとなる。
次に、領域分割部112は、n階ブロック層lbl_layのn+1配列を確保する(ステップS1102)。この配列は、各層の小ブロックを格納する領域として使用される。そして、領域分割部112は、ブロック層lbl_lay[n]に小ブロックlblを格納する(ステップS1103)。
次に、領域分割部112は、ループ変数iの初期値をnとして、階層ループを開始する(ステップS1104)。そして、ブロック層lbl_lay[i]を、空間方向に1回サンプリングし、lbl_lay[i−1]に格納する(ステップS1105)。ここで、空間方向のサンプリングは任意のサンプリングを用いても良いが、例えば、周囲4点の平均をサンプリング点とするサンプリングを用いることができる。このサンプリングをおこなうと、スケールは1/2となる。
次に、領域分割部112は、ループ変数iをi−1に更新する(ステップS1106)。そして、ループ変数iが0よりも小さいか否かを判断し(ステップS1107)、0以上である場合には(ステップS1107:No)、ステップS1104からS1106までの処理を繰り返し実行する。一方、ループ変数iが0よりも小さい場合には(ステップS1107:Yes)、階層生成処理を終了する。これにより、ブロック層lbl_layが生成されて出力される。ステップS901の処理により、小ブロックbl1からブロック層bl_lay1が生成され、小ブロックbl2からブロック層bl_lay2が生成されることになる。
次に、図9の一致判定処理のステップS908における事前確率算出部114による事前確率p(x)の算出処理について説明する。図12は、事前確率算出部114による事前確率の算出処理の手順を示すフローチャートである。
事前確率算出部114は、まず、不一致フィルタaf_tmpを入力して、変数a,n,dをすべて0に初期化し(ステップS1201)、ブロック内の隣接画素の2点であるクリークを走査する(ステップS1202)。
次に、対象クリーク内の不一致フィルタaf_tmpの値がすべて0(一致画素)か否かを調べる(ステップS1203)。そして、対象クリーク内の不一致フィルタaf_tmpの値がすべて0(一致画素)である場合には(ステップS1203:Yes)、変数aを1だけインクリメントする(ステップS1205)。
一方、ステップS1203において、対象クリーク内の不一致フィルタaf_tmpのいずれかの値が0(一致画素)でない場合には(ステップS1203:No)、対象クリーク内の不一致フィルタaf_tmpの値がすべて1(不一致画素)であるか否かを調べる(ステップS1204)。そして、対象クリーク内の不一致フィルタaf_tmpの値がすべて1(不一致画素)である場合には(ステップS1204:Yes)、変数nを1だけインクリメントする(ステップS1206)。
一方、ステップS1204において、対象クリーク内の不一致フィルタaf_tmpのいずれかの値が1(不一致画素)でない場合には(ステップS1204:No)、変数dを1だけ増加する(ステップS1207)。
そして、すべてのクリークを走査したか否かを判断し(ステップS1208)、すべて走査していない場合には(ステップS1208:No)、ステップS1202からS1207までの処理を繰り返し実行する。一方、すべてのクリークを走査した場合には(ステップS1208:Yes)、数6式で示されるsumを算出する(ステップS1209)。
次に、ステップ1209で算出されたsumを用いて、数7式により事前確率p(x)を算出する(ステップS1210)。
かかる数6式および数7式は、数2式で定式化された事前確率を具体的に求める算出式である。これにより、事前確率が算出されて出力される。
次に、図9の一致判定処理のステップS909における尤度算出部113による尤度p(y|x)の算出処理について説明する。図13は、尤度算出部113による尤度の算出処理の手順を示すフローチャートである。
まず、尤度算出部113は、ブロックbl_lay1,bl_lay2および不一致フィルタaf_tmpを入力し、ブロックbl_lay1とbl_lay2の差分ブロックdblを算出する(ステップS1301)。そして、不一致フィルタaf_tmpが0の画素(一致画素)のみに対して、(差分ブロックdblの2乗)/2の総和sumを求める(ステップS1302)。そして、数8式により尤度p(y|x)を算出し(ステップS1303)、出力する。
次に、図2のステップS204における動き補償部120による動き補償処理について説明する。図14は、動き補償部120による動き補償処理の手順を示すフローチャートである。
動き補償処理では、動き推定処理で出力された動きベクトルグループmvg(動きベクトルmv[i](i=1...n))、不一致フィルタグループafg(不一致フィルタaf[i](i=1...n))、参照フレームp1,参照フレームp2から動き補償をおこない、補間フレームを生成する。
まず、動き補償部120は、反復処理のための変数iteを初期値1に設定する(ステップS1401)。そして、補間フレーム上の小ブロックbl0を中心として、動きベクトルグループmvgの動きベクトルmv[ite]の点対称位置によって定まる参照フレームp1上の画像ブロックpb1を求め(ステップS1402)、動きベクトルmv[ite]によって定まる参照フレームp2上の画像ブロックpb2を求める(ステップS1403)。そして、動き補償部120は、補間フレーム上の小ブロックbl0の位置を求める(ステップS1404)。
そして、動き補償部120は、ブロック内の画素の走査を開始し(ステップS1405)、画像ブロックpb1の対象画素位置における画素と、画像ブロックpb2の画素の平均値を求める(ステップS1406)。
次に、動き補償部120は、不一致フィルタ[ite]の値が0か否か、すなわち、一致画素か否かを調べる(ステップS1407)。そして、不一致フィルタ[ite]の値が0である場合、すなわち一致画素の場合には(ステップS1407:Yes)、上記平均画素を補間フレーム上の対象画素位置にコピーする(ステップS1408)。一方、ステップS1407において、不一致フィルタ[ite]の値が1の場合、すなわち不一致画素の場合には(ステップS1407:No)、上記平均画素のコピーを行わない。
ステップS1407、S1408の処理は、ブロック内の全画素を走査するまで繰り返し実行される(ステップS1409)。これにより、一致領域のみに対して動き補償処理がなされ補間フレームが生成されることになる。一方、不一致領域の場合には、上記平均画素の補間フレームの小ブロックbl0へのコピーは行われないが、動き補償処理終了後、動き推定処理(図3)において、再帰的に動きベクトル(第2の動きベクトル)が求められることになる。
ブロック内の全画素の走査が終了したら(ステップS1409:Yes)、動き補償部120は、反復処理のための変数iteを1だけ増加して(ステップS1410)、変数iteがn(任意の整数)を越えたか否かを判断する(ステップS1411)。そして、変数iteがnを越えるまで、ステップS1402からS1410までの処理を繰り返し実行する。
図2のステップS203の動き推定処理と上述した動き補償処理は、図2のステップS201で分割した小ブロック0のすべてを走査するまで繰り返し実行され、小ブロック0の走査を終了したら終了し、補間フレームが生成されることになる。
次に、本実施の形態にかかる補間画像生成装置100による一致判定の結果と従来の手法による一致判定の結果を比較して示す。図15は、ブロック内で一致領域を変化させた状態を示す説明図である。図15に示すように、x軸とy軸で走査しながら一致領域を変更しその時の事後確率を集計した。図16は、左半分の領域が一致領域となるノイズのない画像の2つのブロックの例を示す説明図である。従って、事後確率分布は理想的には左半分が一致領域となったときに最大となる。
まず、図16に示す画像において従来の手法による一致判定、すなわち単純にブロック内の相対位置が等しい画素同士の絶対値差分を取り、その絶対値差分値が閾値(例えば10)より小さければ一致領域とする一致判定を行って補間フレームを生成した。図17は、従来の一致判定手法を利用して生成した補間フレームの画像を示す説明図である。図17に示すように、ノイズが全く存在しない画像の場合には従来の一致判定の手法でも補間画像が正常に生成される。
図18は、図16に示す2つのブロックに対して本実施の形態にかかる補間画像生成装置100による一致判定により求めた事後確率の分布を示す説明図である。図18に示すように、事後確率分布は、左半分が一致領域のときに事後確率p(x|y)が最大となっており正確に動作していることが分かる。
図19は、左半分の領域が一致領域となるノイズが存在する画像の2つのブロックの例を示す説明図である。図19に示す画像において従来の手法による一致判定を行って補間フレームを生成した。図20は、従来の一致判定手法を利用して生成した補間フレームの画像を示す説明図である。従来の手法では、画素同士の絶対値差分値が一定の閾値より小さい場合に一致領域とする一致判定を行っているため、ノイズ成分に対応することが出来ず、このため図20に示すように補間フレームにごま塩雑音が発生していることがわかる。
図21は、図16に示す2つのブロックに対して本実施の形態にかかる補間画像生成装置100による一致判定により求めた事後確率の分布を示す説明図である。図21に示すように、事後確率分布は、左半分が一致領域のときに事後確率p(x|y)が最大となっており、ノイズが含まれる画像に対しても正確に動作していることがわかる。
このように実施の形態1にかかる補間画像生成装置では、ベイズ決定理論を用いて一致判定問題をMAP推定問題として定式化し、画素毎での一致判定を行う必要がなくなり、より確からしい手法で一致領域と不一致領域を分割することができるので、ごま塩雑音のようなノイズを低減するとともに、ロバスト性を向上させながら、ブロック歪みを低減して動画像を滑らかに表示することができる。
(実施の形態2)
実施の形態1にかかる補間画像生成装置100では、一致判定処理において入力される小ブロックをまず階層生成処理(図11)によって階層化してから階層ブロックごとに一致判定、事後確率の算出を行っているが、この実施の形態2にかかる補間画像生成装置は、一致判定の処理を行いながら階層化を行うものである。
本実施の形態にかかる補間画像生成装置の機能的構成は実施の形態1の補間画像装置と同様である。また、補間画像生成の全体処理、動き推定処理、動き補償処理については、実施の形態1の全体処理(図2)、動き推定処理(図3)、動き補償処理(図14)とそれぞれ同様に行われる。本実施の形態の補間画像生成装置では、図3に示す動き推定処理のステップ304における一致判定の処理が実施の形態1と異なっている。
図22は、実施の形態2における一致判定処理の手順を示すフローチャートである。まず、領域分割部112は、小ブロックbl1と小ブロックbl2を入力して、ループ変数をiとして、階層を順に再帰的に下っていくループを開始し、ループ変数の初期値として1を設定する(ステップS2201)。そして、領域分割部112は、小ブロックbl1と同サイズの不一致フィルタafを用意し、不一致フィルタafにすべて1を設定する(ステップS2202)。
次に、領域分割部112は、ブロック内の走査を開始し、走査インデックスを(x、y)とする(ステップS2203)。ここで、走査インデックス(x、y)の範囲は(0,0)<=(x、y)<(2(i-1),2(i-1))とする。そして、領域分割部112は、組み合わせ探索ループを開始する(ステップS2204)。ここで、探索領域の組み合わせは、実施の形態1と同様に、図10に示す探索領域パターンと同様のものである。
次に、領域分割部112は、図10の中から一つの探索領域パターンを選択して組み合わせブロックを生成し(ステップS2205)、この組み合わせブロックを縦横2(n-i-1)倍にスケール変換する(ステップS2206)。そして、sizeを数9式により算出する(ステップS2207)。
次に、領域分割部112は、組み合わせブロックを不一致フィルタafにおける(x*size,y*size)の位置に貼付して、不一致フィルタaf_tmpを生成する(ステップS2208)。
次に、事前確率算出部114により、不一致フィルタaf_tmpを用いて事前確率p(x)を算出する(ステップS2209)。ここで、事前確率p(x)の算出処理については実施の形態1の事前確率算出処理(図12)と同様に行われる。
そして、尤度算出部113によって、不一致フィルタaf_tmp、ブロック層bl_lay1[i+1]、ブロック層bl_lay2[i+1]を用いて尤度p(y|x)を算出する(ステップS2210)。ここで、尤度p(y|x)の算出処理については実施の形態1の尤度算出処理(図13)と同様に行われる。
次に、事後確率算出部115によって、事前確率p(x)と尤度p(y|x)の積から事後確率p(x|y)を算出する(ステップS2211)。
次に、判断部116によって、事後確率pの最大値を与えるaf_tmpを不一致フィルタaf_maxとする(ステップS2212)。具体的には、判断部116は、実施の形態1と同様に、前回までの組み合わせループ内において、ステップS2205で選択された探索領域パターンに応じて生成された不一致フィルタaf_tmpから求めた事後確率p(x|y)の最大値より、今回の組み合わせループ内で選択された探索領域パターンに応じて生成された不一致フィルタaf_tmpから求めた事後確率p(x|y)が大きいか否かを判断して大きい場合に、今回の事前確率p(x|y)を与える不一致フィルタaf_tmpを不一致フィルタaf_maxとする。
そして、探索領域の全組み合わせを探索したか否かを判断し(ステップS2213)、全組み合わせを探索していない場合には(ステップS2213:No)、ステップS2204からS2212までの処理を繰り返して実行する。
一方、ステップS2213において、探索領域の全組み合わせを探索したと判断された場合には(ステップS2213:Yes)、判断部116は、不一致フィルタaf_maxを不一致フィルタafと設定する(ステップS2214)。
そして、ブロック内をすべて走査するまでステップS2203からS2214までの処理を繰り返し実行し(ステップS2215:No)、ブロック内をすべて走査したら(ステップS2215:Yes)、ループ変数iをi=i+1に更新する(ステップS2216)。そして、ループ変数iが階層数n以上になるまで、ステップS2201からS2216までの処理を繰り返し(ステップS2217:No)、ループ変数iが階層数n以上になったら(ステップS2217:Yes)、処理を終了する。これにより、不一致フィルタafが出力される。
このように実施の形態2にかかる補間画像生成装置では、一致判定処理を行いながら小ブロックの階層化を行っているので、別途、予め階層生成処理を必要がなく、一致判定の処理を迅速に行うことができる。
また、実施の形態2にかかる補間画像生成装置では、ベイズ決定理論を用いて一致判定問題をMAP推定問題として定式化し、画素毎での一致判定を行う必要がなくなり、より確からしい手法で一致領域と不一致領域を分割することができるので、ごま塩雑音のようなノイズを低減するとともに、ロバスト性を向上させながら、ブロック歪みを低減して動画像を滑らかに表示することができる。
(実施の形態3)
実施の形態1および2にかかる補間画像生成装置では、一致判定処理において階層的な不一致フィルタを用いたが、この実施の形態3にかかる補間画像生成装置は、不一致フィルタをランダムに与え、統計物理学等におけるメトロポリスアルゴリズムを利用して行って一致判定処理を行うものである。
本実施の形態にかかる補間画像生成装置の機能的構成は実施の形態1の補間画像装置と同様である。また、補間画像生成の全体処理についても実施の形態1の全体処理(図2)と同様に行われる。本実施の形態の補間画像生成装置では、図2に示す全体処理のステップ304における一致判定の処理において、事後確率p(x|y)の最大値の算出手法が実施の形態1と異なっている。
本実施の形態における一致判定処理で使用されるメトロポリスアルゴリズム(A. Murat Tekalp, “Digital Video Processing”, Prentice Hall, 1995、p31参照)では、ランダムに与えられた不一致フィルタに対して、事後確率を計算し、アニーリング温度に従って事後確率を採択するかどうかが決定される。アニーリング温度は、アニーリングスケジュールに従って設定される。アニーリング温度が高い場合には、事後確率が低い場合でも採択する可能性があり、それによりローカルマキシマムを脱出できる。アニーリング温度が低くなると、事後確率が低いものが採択される可能性は小さくなり、徐々にグローバルマキシマムへと収束する。
図23は、実施の形態3における一致判定処理の手順を示すフローチャートである。領域分割部112は、小ブロックbl1と小ブロックbl2を入力して、小ブロックbl1と小ブロックbl2から一致判定を行って不一致フィルタafを得る(ステップS2301)。そして、アニーリング温度Tを初期温度T0で初期化し、ある温度における反復回数MをM0で初期化し、事後確率の最大値を与える不一致フィルタaf_maxを入力した不一致フィルタafとする(ステップS2302)。
次に、事前確率算出部114により、不一致フィルタafを用いて事前確率p(x)を算出する(ステップS2303)。ここで、事前確率p(x)の算出処理については実施の形態1の事前確率算出処理(図12)と同様に行われる。
そして、尤度算出部113によって、不一致フィルタaf、小ブロックbl1、小ブロックbl2を用いて尤度p(y|x)を算出する(ステップS2304)。ここで、尤度p(y|x)の算出処理については実施の形態1の尤度算出処理(図13)と同様に行われる。
次に、事後確率算出部115によって、事前確率p(x)と尤度p(y|x)の積から現在の事後確率p(x|y)であるCurPを算出し、最大の事後確率p(x|y)であるMaxPにCurPを設定する(ステップS2305)。
次に、領域分割部112は、不一致フィルタafに摂動を加えて摂動解としての不一致フィルタaf_newを生成する(ステップS2306)。ここで、摂動としては、例えば、ランダムに4ピクセルを選択し、選択された4ピクセルの値を反転させるなどが考えられる。
そして、事前確率算出部114により、生成された不一致フィルタaf_newを用いて事前確率p(x)を算出する(ステップS2307)。また 尤度算出部113によって、不一致フィルタaf_new、小ブロックbl1、小ブロックbl2を用いて尤度p(y|x)を算出する(ステップS2308)。そして、事後確率算出部115によって、事前確率p(x)と尤度p(y|x)の積から次の状態の事後確率p(x|y)であるNewPを算出する(ステップS2309)。そして、判断部116は、次の状態の事後確率p(x|y)であるNewPと現在の事後確率p(x|y)であるCurPの差ΔCostを求め(ステップS2310)、差ΔCostが0より大きいか否かを判断する(ステップS2311)。
そして、次の状態の事後確率NewPと現在の事後確率CurPの差ΔCostが0より大きい場合には(ステップS2311:Yes)、判断部116は、現在の事後確率CurPに次の状態の事後確率NewPを設定し、不一致フィルタafに不一致フィルタaf_newを設定する(ステップS2312)。そして、判断部116は、次の状態の事後確率NewPが、最大の事後確率MaxPより大きいか否かを判断する(ステップS2313)。
そして、次の状態の事後確率NewPが、最大の事後確率MaxPより大きい場合には(ステップS2313:Yes)、判断部116は、最大の事後確率MaxPに次の状態の事後確率NewPを設定し、事後確率の最大値を与える不一致フィルタaf_maxに不一致フィルタaf_newを設定する(ステップS2314)。
一方、ステップS2313において、次の状態の事後確率NewPが、最大の事後確率MaxP以下の場合には(ステップS2313:No)、最大の事後確率MaxPと事後確率の最大値を与える不一致フィルタaf_maxは変更されない。
ステップS2311において、次の状態の事後確率NewPと現在の事後確率CurPの差ΔCostが0以下である場合には(ステップS2311:No)、判断部116は、現在の事後確率CurPと不一致フィルタafは変更せず、0から1までの一様乱数を発生させ、この一様乱数がexp(ΔCost/T)より小さいか否かを調べる(ステップS2315)。そして、一様乱数がexp(ΔCost/T)より小さい場合には(ステップS2315:Yes)、判断部116は、現在の事後確率CurPに次の状態の事後確率NewPを設定し、不一致フィルタafに不一致フィルタaf_newを設定する(ステップS2316)。
一方、ステップS2315において、一様乱数がexp(ΔCost/T)以上である場合には(ステップS2315:No)、現在の事後確率CurPと不一致フィルタafは変更されない。
次に、反復回数Mを1だけデクリメントし、Mが0になったか否かを調べる(ステップS2317)。そして、反復回数Mが0になっていない場合には(ステップS2317:No)、ステップS2306からS2316までの処理を繰り返し実行する。一方、ステップS2317において、反復回数Mが0になった場合には(ステップS2317:Yes)、判断部116は、時間Timeに反復回数Mを加算し、温度Tに減少率αを乗じ、さらに反復回数Mに上昇率βを乗じて、それぞれ時間Time、温度T、反復回数Mを更新する(ステップS2318)。ここで、温度Tの減少率αは0.8から1.0の間の値とする。また、Mの上昇率βは1.0以上の値とする。
そして、判断部116は、時間Timeが最大時間TimeMaxを超えたか否かを判断して(ステップS2319)、最大時間TimeMaxを超えていない間は(ステップS2319:No)、ステップS2306からS2318までの処理を繰り返し実行する。一方、ステップS2319において、時間Timeが最大時間TimeMaxを超えた場合には(ステップS2319:Yes)、処理を終了する。このような処理により、事後確率p(x|y)を最大値とする不一致フィルタaf_maxが出力される。
このように本実施の形態にかかる補間画像生成装置では、不一致フィルタをランダムに与え、統計物理学等におけるメトロポリスアルゴリズムを利用して行って判定処理を行っているので、より確からしい手法で一致領域と不一致領域を分割することができるので、ごま塩雑音のようなノイズを低減するとともに、ロバスト性を向上させながら、ブロック歪みを低減して動画像を滑らかに表示することができる。
実施の形態1〜3にかかる補間画像生成装置は、CPUなどの制御装置と、ROM(Read Only Memory)やRAMなどの記憶装置と、HDD、CDドライブ装置などの外部記憶装置と、ディスプレイ装置などの表示装置と、キーボードやマウスなどの入力装置を備えており、通常のコンピュータを利用したハードウェア構成となっている。
実施の形態1〜3にかかる補間画像生成装置で実行される補間画像生成プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
また、実施の形態1〜3にかかる補間画像生成装置で実行される補間画像生成プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本実施形態の〜装置で実行される補間画像生成プログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
また、実施の形態1〜3にかかる補間画像生成プログラムを、ROM等に予め組み込んで提供するように構成してもよい。
実施の形態1〜3にかかる補間画像生成装置で実行される補間画像生成プログラムは、上述した各部(動き探索部111、領域分割部112、尤度算出部113、事前確率算出部114、事後確率算出部114、判断部116、動き補償部120)を含むモジュール構成となっており、実際のハードウェアとしてはCPU(プロセッサ)が上記記憶媒体から補間画像生成プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、動き探索部111、領域分割部112、尤度算出部113、事前確率算出部114、事後確率算出部114、判断部116、動き補償部120が主記憶装置上に生成されるようになっている。