画像処理装置、画像処理方法及びプログラム
【課題】非均等速度で移動する物体を含む動画像に対して、多重像を抑制してフレームレート変換処理ができるようにする。
【解決手段】動画像信号の撮影情報からシャッタースピード、撮像フレームレート及び表示フレームレートの情報を取得し、フレーム変換に必要な枚数のフレーム画像を取得する。そして、取得した複数のフレーム画像での被写体の動きベクトルを算出し、前記算出した動きベクトルからフレーム画像ごとに前記被写体の動き距離、動きスピードを算出する。次に、複数のフレーム画像に対して、前記シャッタースピード及び動きスピードに基づく第1のフィルタ処理と、前記動き距離に基づく第2のフィルタ処理とを適用する。
【解決手段】動画像信号の撮影情報からシャッタースピード、撮像フレームレート及び表示フレームレートの情報を取得し、フレーム変換に必要な枚数のフレーム画像を取得する。そして、取得した複数のフレーム画像での被写体の動きベクトルを算出し、前記算出した動きベクトルからフレーム画像ごとに前記被写体の動き距離、動きスピードを算出する。次に、複数のフレーム画像に対して、前記シャッタースピード及び動きスピードに基づく第1のフィルタ処理と、前記動き距離に基づく第2のフィルタ処理とを適用する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、特に、フレームレートを変換するために用いて好適な画像処理装置、画像処理方法及びプログラムに関する。
【背景技術】
【0002】
従来、高フレームレートの動画像を低フレームレートの動画像に変換する際に、高フレームレートの動画像の中から複数枚の画像を用いて平均合成し、1枚の低フレームレートの動画像用の画像に変換する技術がある。以下、このような処理をフレームレート変換処理と呼ぶ。ところが、動画像のフレームレートに対して短いシャッター速度で撮影された画像では被写体は鮮鋭に写るが、フレームレート変換処理で得られた動画像を観察すると多重像に認知してしまうという劣化現象が発生する。そこで、このような多重像を抑えるためには、一般にボケ付加を行う。
【0003】
撮影された動画像にボケ付加を行う従来技術としては、例えば特許文献1に記載されている。この特許文献1に記載の技術では、入力された動画像の処理対象フレームに対して領域ごとの動きベクトルを算出し、シャッタースピードなど撮像時の撮像情報に基づいて動きボケ量の評価値を算出する。そしてこの算出した評価値に基づいて、動きボケの付加と削減処理とを行う。これにより、各フレームで再生できる情報が不連続に再生され、動きの滑らかさが失われる現象(以下、ジャーキネス)と、被写体の動きが大きくぼやけてしまう現象(以下、ブラー)との両方を抑えることができるようにしている。
【0004】
また、動画像における動きベクトルから代表的動きベクトルを求め、動きボケを付加することにより、より自然にジャーキネスによる劣化を抑えることができる技術も開示されている(例えば、特許文献2参照)。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2010−4329号公報
【特許文献2】特開2010−15483号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献1及び特許文献2に記載の技術は共に、フレーム間の動きベクトルを考慮して動きボケを付加しているが、複数のフレーム間に亘った動きの変化を考慮していない。そのため、複数枚のフレーム画像を平均合成して1枚のフレームを生成するフレームレート変換処理に適用すると以下のような課題が生じる。
【0007】
例えば、動き物体が均等速度で移動するような動画像の場合は、複数のフレームで均等間隔に並ぶ同じボケ画像を合成することになるため、動きベクトルのみに応じてボケ量を適切に制御することができる。しかしながら、動き物体が非均等速度で移動するような動画像の場合は、前フレームからの動きベクトルの方向が同一であっても、ある基準フレームから移動した距離が様々に相違する。このため、急に動きベクトルが変化するような場合には孤立したボケ画像が合成されることとなり、フレームレート変換処理を行うと多重像に見えてしまう問題がある。
【0008】
本発明は前述の問題点に鑑み、非均等速度で移動する物体を含む動画像に対して、多重像を抑制してフレームレート変換処理ができるようにすることを目的としている。
【課題を解決するための手段】
【0009】
本発明の画像処理装置は、動画像信号から複数のフレーム画像を入力する入力手段と、前記動画像信号の撮影情報からシャッタースピード及びフレームレートの情報を取得する取得手段と、前記入力手段により入力された複数のフレーム画像での被写体の動きベクトルを算出し、前記算出した動きベクトルからフレーム画像ごとに前記被写体の動き距離を算出する算出手段と、前記入力手段により入力された複数のフレーム画像に対して、前記取得手段によって取得されたシャッタースピード及びフレームレートに基づく第1のフィルタ処理と、前記算出手段により算出された動き距離に基づく第2のフィルタ処理とを適用するフィルタ手段とを有することを特徴とする。
【発明の効果】
【0010】
本発明によれば、入力された動画像に対してフレームレート変換した場合に多重像を抑制した滑らかな動画像を生成することができる。
【図面の簡単な説明】
【0011】
【図1】実施形態に係るPCの概略構成例を示すブロック図である。
【図2】実施形態に係る画像処理部の詳細な構成例を示すブロック図である。
【図3】高速シャッタースピードでのフレームレート変更の一例を示す図である。
【図4】低速シャッタースピードでのフレームレート変更の一例を示す図である。
【図5】従来の方法により動きボケを付加したフレームレート変更の一例を示す図である。
【図6】実施形態により動きボケを付加したフレームレート変更の一例を示す図である。
【図7】フィルタ補正係数αを算出する概要を説明する図である。
【図8】動きベクトルを検出する手順の一例を示すフローチャートである。
【図9】有効なブロックを判定する手順の一例を示すフローチャートである。
【図10】有効な動きベクトルを判定する手順の一例を示すフローチャートである。
【図11】フレーム画像ごとの動き距離及びその平均値を説明する図である。
【図12】フィルタ補正係数βを算出する概要を説明する図である。
【図13】フィルタを適用する処理手順の一例を示すフローチャートである。
【図14】ボケ付加フィルタの一例を示す図である。
【発明を実施するための形態】
【0012】
以下、本発明の実施形態について、図面を参照しながら説明する。
図1は、本実施形態に係るパーソナルコンピュータ(PC)の概略構成例を示すブロック図である。
図1において、高速カメラなどにより撮影された高フレームレートの動画像信号が記憶されたUSBメモリ101がPC102に挿入されると、PC102はこれらの動画像信号を取り込むことができる。具体的には、PC102の読み込み部104により動画像信号の全てのフレーム画像が図示しないメモリに読み込まれる。さらに、動画像を撮影する際のシャッタースピードの情報を含む撮像パラメータとフレームレートの情報を含むが表示パラメータとが撮影情報として読み込まれる。画像処理部105は、これらの読み込まれた動画像信号とパラメータとを用いてフレームレート変換処理を行う。そして、処理された動画像信号は出力部106によりモニタ信号に変換され、変換されたモニタ信号がモニタ103に動画像として表示される。
【0013】
図2は、本実施形態に係る画像処理部105の詳細な構成例を示すブロック図である。
図2において、読み込み部104により入力された動画像信号は、第1の入力端子201から画像処理部105に入力される。一方、撮像パラメータは第2の入力端子202から画像処理部105に入力され、表示パラメータは第3の入力端子203から画像処理部105に入力される。
【0014】
シャッタースピード取得部210は、第2の入力端子202に入力された撮像パラメータからシャッタースピードの情報を取得し、撮像フレームレート取得部211は、入力された撮像パラメータから撮像フレームレートの情報を取得する。表示フレームレート取得部212は、第3の入力端子203に入力された表示パラメータから表示フレームレートの情報を取得する。フレーム数算出部213は、取得された撮像フレームレートと表示フレームレートとの情報を入力し、フレームレート変換処理に必要なフレーム画像の枚数を算出する。例えば、撮像フレームレートが100fpsであり、表示フレームレートが20fpsである場合、フレームレート変換処理に必要な枚数は最低5枚となる。
【0015】
フレーム画像取得部204は、第1の入力端子201に入力された動画像信号から、フレーム数算出部213で算出されたフレームレート変換処理に必要な連続するn枚のフレーム画像を取得する。動きベクトル算出部205は、n枚のフレーム画像からフレーム間の動きベクトルを算出する。動き距離算出部207は、動きベクトル算出部205で算出された動きベクトルから動き距離を算出する。一方、動きスピード算出部206は、動きベクトル算出部205で算出された動きベクトルと撮像フレームレート取得部211により取得された撮像フレームレートとから、対象物体の動きスピードを算出する。
【0016】
第1のフィルタ選択部208は、隣同士のフレーム画像間の動き距離、及びシャッタースピードにより、動きボケを付加するためのフィルタ補正係数αを決定する。一方、第2のフィルタ選択部209は、複数のフレーム画像間における動き距離により、動きボケを付加するためのフィルタ補正係数βを決定する。なお、フィルタ補正係数α、βの詳細については後述する。
【0017】
第1のフィルタ適用部214は、第1のフィルタ選択部208で決定されたフィルタ補正係数αを用いて、動画像信号の複数枚のフレーム画像に対して動きボケを付加する第1のフィルタ処理を行う。そして、第2のフィルタ適用部215は、第1のフィルタ適用部214によりフィルタが適用された後のフレーム画像に対し、第2のフィルタ選択部209で決定されたフィルタ補正係数βを用いて動きボケを付加する第2のフィルタ処理を行う。フレームレート変換処理部216は、動きボケを付加するフィルタを全て適用した後、動画像信号に対してフレームレート変換処理を行って、新規のフレーム画像を複数生成する。そして、フレームレート変換処理部216で生成された新規のフレーム画像を出力端子217から出力動画像信号として出力する。
【0018】
図3〜図6は、フレームレート変換処理を説明するための概念図である。
図3〜図6において、横軸は時間であり、1つの長方形の領域が1つのフレーム画像を表している。長方形の横軸は走査線一本の横方向の位置であり、長方形の縦方向は輝度を表している。
【0019】
以下に説明する例では、入力時の表示フレームレートをInputRate=100fpsとし、出力時の表示フレームレートをOutputRate=20fpsとする。この条件を用いて、以下、フレームレート変換処理を行う際に5枚の入力されたフレーム画像から1枚のフレーム画像を生成する例について示す。
【0020】
図3(a)には、入力される高速シャッタースピードの動画像信号の一例を示している。シャッタースピードは1/1000secであり、N−2番目のフレーム画像からN+2番目までのフレーム画像を用いてフレーム変換処理を行っている。N−2番目のフレーム画像からN+2番目のフレーム画像までの間、インパルス信号が均等速度で左から右へ移動しており、図3(a)に示す例では、短いシャッタースピードで撮影された動画像であるため、インパルス信号は鮮鋭に映っている。
【0021】
図3(b)には、フレームレート変換された動画像の時系列画像を示している。N−2番目のフレーム画像からN+2番目のフレーム画像を用いて平均合成した結果は5本のインパルス信号の画像になる。この場合、被写体は鮮鋭に写り、フレームレート変換処理で得られた動画像を観察すると多重像に認知してしまう。
【0022】
図4(a)には、入力される低速シャッタースピードの動画像信号の一例を示している。シャッタースピードは1/100secであり、N−2番目のフレーム画像からN+2番目のフレーム画像を用いてフレーム変換処理を行っている。N−2番目のフレーム画像からN+2番目のフレーム画像までの間、インパルス信号が均等速度で左から右へ移動しており、図4(a)に示す例では、オープンシャッタースピードで撮影された動画像であるため、インパルス信号は動きボケがあるように映っている。
【0023】
図4(b)には、フレームレート変換された動画像の時系列画像を示している。N−2番目のフレーム画像からN+2番目のフレーム画像を用いて平均合成した結果は5本のインパルス信号の画像になる。この場合、被写体は動きボケがあり、フレームレート変換処理で得られた動画像を観察すると滑らかな動きとして映る。
【0024】
図5(a)には、入力された高速シャッタースピードの動画像信号の一例を示している。シャッタースピードは1/1000secであり、N−2番目のフレーム画像からN+2番目のフレーム画像を用いてフレーム変換処理を行っている。N−2番目のフレーム画像からN+2番目のフレーム画像までの間、インパルス信号が不均等速度で左から右へ移動しており、図5(a)に示す例では、短いシャッタースピードで撮影された動画像であるため、インパルス信号は鮮鋭に映っている。
【0025】
図5(b)には、平均合成処理を行って得られたフレーム画像の結果を示している。図5(b)に示す例では被写体は鮮鋭に写り、フレームレート変換処理によって得られた動画像を観察すると、多重像に認知してしまう。
【0026】
図5(c)には、従来の方法によって動きボケを付加してフレームレート変換された動画像の時系列画像を示している。従来の方法では、隣同士のフレーム間にある被写体のスピードしか考慮していないため、動きボケを付加すると、被写体は空間上に移動する距離の影響により、動きボケ量を付加する量が相違する。動きボケ付加量の相違により、図5(c)に示すように、合成したフレーム画像に輝度の段差が生じる。この段差によって、動画像として観察するとジャーキネスが発生し、画質劣化の原因になる。
【0027】
図6(a)には、入力される高速シャッタースピードの動画像信号の一例を示しており、図5(a)と同様である。図6(b)には、従来の方法により動きボケを付加させてから平均合成処理を行って得られたフレーム画像の結果を示している。動きボケの付加量が不均一であるため、このままフレームレート変換処理を行い、動画像を観察すると多重像に認知してしまう。
【0028】
図6(c)には、本実施形態によりフレームレート変換された動画像の時系列画像を示している。本実施形態では、さらに、時間軸の複数枚のフレームの動きベクトルの分散を取り、分散の値により動きボケの付加量を再決定する。なお、詳細な処理手順については後述する。時間軸に沿って動き物体の移動速度が異なることによって被写体が空間上に移動する距離が異なり、動きボケの付加量に相違が生じる。そこで、図6(b)に示すような段差を再補正することによって、図6(c)に示すように、画像全体に動きボケが付加され、動画像としてみると、滑らかな動きとなる。
【0029】
<被写体の動きスピードと最適シャッタースピードとの関係>
図7(a)は、動きスピードとシャッタースピードとの関係を示す図である。
図7(a)に示すように、動きベクトルから求められた被写体の動きスピードに応じた最適なシャッタースピードが存在する。この最適なシャッタースピードで撮影されると、動き物体が鮮鋭に映る。したがって、最適なシャッタースピードより速いシャッタースピードで撮影すると、動き物体はより鮮鋭に映り、ジャーキネスによる劣化が生じやすくなる。
【0030】
図7(a)の横軸は、動きベクトルから求められた動きスピードを示し、縦軸は、撮影時のシャッタースピードを示している。図7(a)に示すように、最適シャッタースピード曲線701を境に鮮鋭に映す領域と動きボケが存在する領域とが存在する。この動きボケ領域から最適シャッタースピード曲線701に近づくと、動きボケ量が少なくなり、ジャーキネスが発生する可能性が高くなる。以下、ジャーキネスが発生する可能性をジャーキネス発生度eと呼ぶ。
【0031】
ここで、フレームレートをf(frame/秒)とし、動きスピードをv(Pixel/frame)とし、シャッタースピードをs(秒)とする。あるシャッタースピードで撮影する際に、動きブレは以下の式(1)に示すように1pixel以下であれば、画像が鮮鋭に映る。
【0032】
【数1】
【0033】
最適シャッタースピード曲線701は、動きブレが1pixelである場合の動きスピードとシャッタースピードとの関係を表す曲線であり、以下の式(2)により計算される。
【0034】
【数2】
【0035】
図7(a)に示したv−s座標系にある任意点(v0,s0)と最適シャッタースピード曲線701との距離をDistanceとすると、任意点(v0,s0)でのジャーキネス発生度eは、以下の式(3)により計算される。
【0036】
【数3】
【0037】
なお、任意点(v0,s0)と最適シャッタースピード曲線701との距離がゼロである場合、または任意点(v0,s0)が鮮鋭な領域にある場合は、ジャーキネス発生度eは∞とする。
【0038】
図7(b)は、ジャーキネス発生度eとフィルタ補正係数αとの関係を示す図である。図7(b)に示すように、第1のフィルタ選択部208は、ジャーキネス発生度eの値によりフィルタ補正係数αの値を決めることができ、動きボケの付加量をフィルタ補正係数αによって制御することができる。なお、動きスピード、シャッタースピード及びフィルタ補正係数αの三次元データは画像処理部105に事前に保持される。
【0039】
動きボケを付加するためのフィルタに用いられるフィルタ補正係数αは0から1までの正の小数であり、値は大きくなるにつれて、動きボケの付加量が多くなる。
【0040】
<動きベクトルの算出>
図8は、動きベクトル算出部205によりフレーム間の相対移動量を算出する処理手順の一例を示すフローチャートである。本実施形態では、ブロック毎に動きベクトルを求め、その動きベクトルから画面全体の動き量をアフィンパラメータとして求める例について説明する。
まず、ステップS801において、前処理として有効ブロックの判定を行う。これは正しい動きベクトルが求まらない可能性のあるブロックを除外する処理である。この処理の詳細については後述する。
【0041】
次に、ステップS802において、有効ブロックの動きベクトルを算出する。ここで、一般的なブロックマッチング方法について説明する。ブロックマッチング法では、マッチングの評価値としてブロック内の画素間の差分二乗和もしくは差分絶対値和を用いる。まず、動きベクトルを求める対象ブロックを基準画像のサーチ範囲内で順次動かしなら評価値を求めていく。そして、サーチ範囲内で求めた全ての評価値の中から最小の評価値もつ位置が対称ブロックと最も相関の高い位置であり、その移動量が動きベクトルとなる。
【0042】
このサーチ範囲を1画素ずつ求めていく方法はフルサーチと呼ばれている。これに対し、サーチ範囲を間引きながら最小の評価値を求め、次にその近傍に対して細かくサーチする方法は、ステップサーチと呼ばれている。ステップサーチは特に高速に動きベクトルを求める方法としてよく知られている。以上の方法によりステップS802では、有効ブロックの動きベクトルを算出する。
【0043】
次に、ステップS803において、全ブロックに対して動きベクトルの検出を行った否かを判定する。この判定の結果、検出処理を行っていないブロックがまだ存在する場合はステップS801に戻り、全ブロックに対して動きベクトルの検出を行った場合は、次のステップS804に進む。
【0044】
ステップS804においては、有効な動きベクトルの判定を行う。この処理は、求めた動きベクトルのうち、算出結果が正しくないと判断されるものを除外する処理である。この処理の詳細については後述する。次に、ステップS805において、有効な動きベクトルからアフィンパラメータの検出を行う。
【0045】
ここで、アフィンパラメータの検出処理の詳細について説明する。対象ブロックの中心座標が、(x,y)であり、動きベクトルの算出結果から基準画像におけるブロックの中心座標が(x',y')に移動したとすると、これらの関係は、以下の式(4)のように表すことができる。
【0046】
【数4】
【0047】
ここで、式(4)に示す3×3の行列がアフィン変換行列である。行列の各要素がアフィンパラメータであり、a=1,b=0,d=0,e=1のとき、この変換は平行移動となり、cが水平方向の移動量、fが垂直方向の移動量となる。また、a=cosθ,b=−sinθ,c=0,d=sinθ,e=cosθ,f=0のとき、この変換は回転角θでの回転移動となる。上記式(4)は一般化した行列の形式で以下の式(5)のように表することができる。
【0048】
【数5】
【0049】
ここで、x及びx'は1×3の行列であり、Aは3×3のアフィン行列である。なお、有効な動きベクトルがn個であった場合、対象画像の座標値は、以下の式(6)のようにn×3の行列で表すことができる。
【0050】
【数6】
【0051】
同様に、移動後の座標値も式(6)のようにn×3の行列で表すことができる。よって、n個の動きベクトルに対しては、以下の式(7)のように表すことができる。
【0052】
【数7】
【0053】
ここで、式(7)におけるアフィン行列Aを求めれば、それが画面全体の位置ずれ量になる。式(4)を変形すると、アフィン行列Aは以下の式(8)のように表すことができる。
【0054】
【数8】
【0055】
このように動き量がアフィン変換のパラメータで表現できるため、カメラを保持しているときに起こるシフトぶれ以外にも、面内方向でのロールぶれや前後方向のズームぶれなどにも対応することが可能である。
【0056】
ブロックマッチングによりブロック間の相関を求めようとする場合、ブロック内の画像が何らかの特徴量を持っている必要がある。平坦でほとんど直流成分しか含んでいないブロックでは正しい動きベクトルを求めることはできず、逆に水平方向や垂直方向にエッジを含んでいると、マッチングがとりやすくなる。そこで、ステップS801では、このような平坦部のブロックを除外している。
【0057】
図9は、動きベクトル算出部205により図8のステップS801で有効ブロックを判定する処理手順の一例を示すフローチャートである。図9では、1つのブロックに対する処理について説明する。
まず、ステップS901において、ブロック内にある水平方向の1つのラインに対し、最大値と最小値との差分値を算出する。例えば、ブロックのサイズが50×50の画素で構成されている場合、ブロック内における水平方向の50の画素から最大値と最小値とを求め、その差分値を算出する。
【0058】
次に、ステップS902において、水平ライン数の差分値を算出したか否かを判定し、差分値を算出していない水平ラインがまだある場合はステップS901に戻り、全ての水平ラインについて差分値を算出した場合はステップS903に進む。そして、ステップS903において、算出した数の差分値の中から最大の差分値を求める。
【0059】
次に、ステップS904において、予め設定した閾値TxとステップS903で算出した最大差分値とを比較する。この比較の結果、最大差分値が閾値Txよりも小さい場合は、水平方向には特徴量を持たないブロックであるとみなすことができるため、ステップS905に進み、無効ブロックとする。一方、最大差分値が閾値Tx以上である場合は、水平方向に特徴量を持つとみなすことができるため、ステップS906以降へ進み、垂直方向で同様の検証を行う。
【0060】
次に、ステップS906において、ブロック内にある垂直方向の1つのラインに対し、最大値と最小値との差分値を算出する。例えば、ブロックのサイズが50×50の画素で構成されている場合、ブロック内における垂直方向の50の画素から最大値と最小値とを求め、その差分値を算出する。
【0061】
次に、ステップS907において、垂直ライン数の差分値を算出したか否かを判定し、差分値を算出していない垂直ラインがまだある場合はステップS906に戻り、全ての垂直ラインについて差分値を算出した場合はステップS908に進む。そして、ステップS908において、算出した数の差分値の中から最大の差分値を求める。
【0062】
次に、ステップS909において、予め設定した閾値TyとステップS908で算出した最大差分値とを比較する。この比較の結果、最大差分値が閾値Tyよりも小さい場合は、垂直方向には特徴量を持たないブロックであるとみなし、ステップS905に進み、無効ブロックとする。一方、最大差分値が閾値Ty以上である場合は、水平・垂直両方向に特徴を持つブロックであることから、正確なブロックマッチングが行われることが期待できるため、ステップS910に進み、有効ブロックとする。
【0063】
次に、有効な動きベクトルを判定する方法について図10のフローチャートを参照しながら説明する。図10は、動きベクトル算出部205により図8のステップS804で有効な動きベクトルを判定する処理手順の一例を示すフローチャートである。
まず、ステップS1001において、図8のステップS802で検出された動きベクトルを入力し、ステップS1002において、その発生頻度を算出する。次に、ステップS1003において、全ての動きベクトルの発生頻度を算出したか否かを判定し、発生頻度を算出していない動きベクトルがまだある場合はステップS1001に戻る。一方、全ての動きベクトルの発生頻度を算出した場合は、ステップS1004において、最大発生頻度の動きベクトルを求める。
【0064】
次に、ステップS1005において、動きベクトルを再度入力し、ステップS1006において、この動きベクトルが最大発生頻度の動きベクトル、もしくはその近傍の動きベクトルであるかどうかを判定する。画面全体のぶれが、シフトのみである場合、各ブロックの動きベクトルは、最大発生頻度の動きベクトルにほぼ一致し、ロールぶれを伴う場合は、最大発生頻度の動きベクトルの近傍に多くの動きベクトルが発生すると考えられる。したがって、これらの値に含まれる動きベクトルの場合は、ステップS1007に進み、有効な動きベクトルと判定する。
【0065】
一方、これらの値から外れている動きベクトルの場合は、ステップS1008に進み、無効の動きベクトルと判定する。そして、ステップS1009において、すべての動きベクトルに対して有効か無効かの判定処理が終わったかどうかを判定する。まだ判定が終わっていない動きベクトルがある場合はステップS1005に戻り、全ての動きベクトルについて判定が終了した場合は、そのまま処理を終了する。
【0066】
<不均等スピードに関する処理>
フレームレート変換処理を行う際に、複数枚のフレーム画像を平均合成して1枚のフレーム画像を生成する。複数のフレーム画像の間で動き物体が不均等速度で移動する場合、使用する複数のフレーム画像について、動き距離算出部207は、フレーム画像ごとに動きベクトルにより動き物体の動き距離を算出する。そして、第2のフィルタ選択部209は、距離平均Aveを以下の式(9)により算出する。
【0067】
【数9】
【0068】
ここで、Nはフレーム画像の番号であって、D[n]はn枚目のフレーム画像とn−1枚目のフレーム画像との間の動き物体の動き距離である。算出された複数の動き距離D[N]及び距離平均Aveにより、第2のフィルタ選択部209は、各フレーム画像の動き距離との標準偏差Sを以下の式(10)により算出し、算出した標準偏差Sによりフィルタ補正係数βを算出する。
【0069】
【数10】
【0070】
図11は、複数のフレーム画像の間で動き物体が不均等速度で動いている様子を説明する図である。また、図12は、複数のフレーム画像の間で動き物体が不均等速度で動いている場合の標準偏差Sとフィルタ補正係数βとの関係を示す図である。図12において、横軸は動き距離の標準偏差Sであり、縦軸はボケ付加パラメータ(フィルタ補正係数β)である。このように、第2のフィルタ選択部209は、標準偏差Sによりフィルタ補正係数βを決定することができる。そして、フレーム画像上に算出された全ての動きベクトルに対して、係数α、βのボケ付加処理を行う。
【0071】
<ボケ付加フィルタ選択>
図14には、ボケ付加フィルタの一例を示しており、U行V列のフィルタWとする。ここで、第1のフィルタ適用部214及び第2のフィルタ適用部215により、フィルタ処理後の画像Imが以下の式(11)により得られる。
【0072】
【数11】
【0073】
ここで、フィルタ補正係数αは、前述したようにシャッタースピードと動きスピードとにより決定され、フィルタ補正係数βは、複数のフレーム画像での動き距離とその標準偏差とにより決定される。
【0074】
<全体的な処理>
図13は、本実施形態におけるフレームレート変換処理までの処理手順の一例を示すフローチャートである。
まず、ステップS1301において、フレーム画像取得部204は、連続するフレーム画像を取得する。次に、ステップS1302において、撮像フレームレート取得部211は、入力された撮像パラメータから撮像フレームレートの情報を取得する。前述したように撮像フレームレートは、動きスピードを算出する際に用いられる。
【0075】
次に、ステップS1303において、フレーム数算出部213は、フレームレート変換処理に必要な連続するフレーム画像の枚数Numを算出する。そして、ステップS1304において、シャッタースピード取得部210は、撮影した時のシャッタースピードの値の情報を取得する。
【0076】
次に、ステップS1305において、動きベクトル算出部205は、カウント用の整数nを初期化する。そして、ステップS1306において、動きベクトル算出部205は、整数nが枚数Numより小さいか否かを判定し、枚数Numより小さい場合は、次のステップS1307に進み、枚数Numに到達した場合は、ステップS1312に進む。
【0077】
次に、ステップS1307において、動きベクトル算出部205は、n番目のフレーム画像とn+1番目のフレーム画像との間の動きベクトルを算出する。そして、ステップS1308において、動き距離算出部207は、n番目のフレーム画像とn+1番目のフレーム画像との間の動きベクトルによる被写体の動き距離D[n]を算出する。
【0078】
次に、ステップS1309において、動きスピード算出部206は、ステップS1302で取得した撮影フレームレートから動きスピードを算出する。そして、第1のフィルタ選択部208は、算出した動きスピードとステップS1304で取得したシャッタースピードとから、図7で説明したようにフィルタ補正係数αを決定する。
【0079】
次に、ステップS1310において、第1のフィルタ適用部214は、決定されたフィルタ補正係数αによりフレーム画像の被写体にフィルタを適用して動きボケを付加する。そして、ステップS1311において、整数nの値を1つ増やし、ステップS1306に戻る。
【0080】
一方、ステップS1312においては、第2のフィルタ選択部209は、フレームレート変換処理に必要な枚数Numで算出したD[n]により、各フレーム画像の被写体の動き距離の標準偏差Sを求める。次に、ステップS1313において、第2のフィルタ選択部209は、フレーム画像ごとに算出された標準偏差Sからそれぞれのフレーム画像のフィルタ補正係数βを決定する。そして、第2のフィルタ適用部215は、各フレーム画像に異なるローパスフィルタをかけ、動きボケを付加する。全てのフレーム画像について動きボケを付加すると、処理を終了とする。
【0081】
以上説明したように本実施形態によれば、複数のフレーム画像について、各フレーム間の撮像対象の動きスピード、シャッタースピード、及び動き距離により動きボケを付加するためのフィルタ補正係数α、βを調整することできる。これにより、フレームレート変換処理を行う際に、非均等速度で移動する物体が存在しても、ジャーキネスを抑制した動画像を生成することができる。
【0082】
(その他の実施形態)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【符号の説明】
【0083】
204 フレーム画像取得部
205 動きベクトル算出部
207 動き距離算出部
210 シャッタースピード取得部
211 撮像フレームレート取得部
214 第1のフィルタ適用部
215 第2のフィルタ適用部
【技術分野】
【0001】
本発明は、特に、フレームレートを変換するために用いて好適な画像処理装置、画像処理方法及びプログラムに関する。
【背景技術】
【0002】
従来、高フレームレートの動画像を低フレームレートの動画像に変換する際に、高フレームレートの動画像の中から複数枚の画像を用いて平均合成し、1枚の低フレームレートの動画像用の画像に変換する技術がある。以下、このような処理をフレームレート変換処理と呼ぶ。ところが、動画像のフレームレートに対して短いシャッター速度で撮影された画像では被写体は鮮鋭に写るが、フレームレート変換処理で得られた動画像を観察すると多重像に認知してしまうという劣化現象が発生する。そこで、このような多重像を抑えるためには、一般にボケ付加を行う。
【0003】
撮影された動画像にボケ付加を行う従来技術としては、例えば特許文献1に記載されている。この特許文献1に記載の技術では、入力された動画像の処理対象フレームに対して領域ごとの動きベクトルを算出し、シャッタースピードなど撮像時の撮像情報に基づいて動きボケ量の評価値を算出する。そしてこの算出した評価値に基づいて、動きボケの付加と削減処理とを行う。これにより、各フレームで再生できる情報が不連続に再生され、動きの滑らかさが失われる現象(以下、ジャーキネス)と、被写体の動きが大きくぼやけてしまう現象(以下、ブラー)との両方を抑えることができるようにしている。
【0004】
また、動画像における動きベクトルから代表的動きベクトルを求め、動きボケを付加することにより、より自然にジャーキネスによる劣化を抑えることができる技術も開示されている(例えば、特許文献2参照)。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2010−4329号公報
【特許文献2】特開2010−15483号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献1及び特許文献2に記載の技術は共に、フレーム間の動きベクトルを考慮して動きボケを付加しているが、複数のフレーム間に亘った動きの変化を考慮していない。そのため、複数枚のフレーム画像を平均合成して1枚のフレームを生成するフレームレート変換処理に適用すると以下のような課題が生じる。
【0007】
例えば、動き物体が均等速度で移動するような動画像の場合は、複数のフレームで均等間隔に並ぶ同じボケ画像を合成することになるため、動きベクトルのみに応じてボケ量を適切に制御することができる。しかしながら、動き物体が非均等速度で移動するような動画像の場合は、前フレームからの動きベクトルの方向が同一であっても、ある基準フレームから移動した距離が様々に相違する。このため、急に動きベクトルが変化するような場合には孤立したボケ画像が合成されることとなり、フレームレート変換処理を行うと多重像に見えてしまう問題がある。
【0008】
本発明は前述の問題点に鑑み、非均等速度で移動する物体を含む動画像に対して、多重像を抑制してフレームレート変換処理ができるようにすることを目的としている。
【課題を解決するための手段】
【0009】
本発明の画像処理装置は、動画像信号から複数のフレーム画像を入力する入力手段と、前記動画像信号の撮影情報からシャッタースピード及びフレームレートの情報を取得する取得手段と、前記入力手段により入力された複数のフレーム画像での被写体の動きベクトルを算出し、前記算出した動きベクトルからフレーム画像ごとに前記被写体の動き距離を算出する算出手段と、前記入力手段により入力された複数のフレーム画像に対して、前記取得手段によって取得されたシャッタースピード及びフレームレートに基づく第1のフィルタ処理と、前記算出手段により算出された動き距離に基づく第2のフィルタ処理とを適用するフィルタ手段とを有することを特徴とする。
【発明の効果】
【0010】
本発明によれば、入力された動画像に対してフレームレート変換した場合に多重像を抑制した滑らかな動画像を生成することができる。
【図面の簡単な説明】
【0011】
【図1】実施形態に係るPCの概略構成例を示すブロック図である。
【図2】実施形態に係る画像処理部の詳細な構成例を示すブロック図である。
【図3】高速シャッタースピードでのフレームレート変更の一例を示す図である。
【図4】低速シャッタースピードでのフレームレート変更の一例を示す図である。
【図5】従来の方法により動きボケを付加したフレームレート変更の一例を示す図である。
【図6】実施形態により動きボケを付加したフレームレート変更の一例を示す図である。
【図7】フィルタ補正係数αを算出する概要を説明する図である。
【図8】動きベクトルを検出する手順の一例を示すフローチャートである。
【図9】有効なブロックを判定する手順の一例を示すフローチャートである。
【図10】有効な動きベクトルを判定する手順の一例を示すフローチャートである。
【図11】フレーム画像ごとの動き距離及びその平均値を説明する図である。
【図12】フィルタ補正係数βを算出する概要を説明する図である。
【図13】フィルタを適用する処理手順の一例を示すフローチャートである。
【図14】ボケ付加フィルタの一例を示す図である。
【発明を実施するための形態】
【0012】
以下、本発明の実施形態について、図面を参照しながら説明する。
図1は、本実施形態に係るパーソナルコンピュータ(PC)の概略構成例を示すブロック図である。
図1において、高速カメラなどにより撮影された高フレームレートの動画像信号が記憶されたUSBメモリ101がPC102に挿入されると、PC102はこれらの動画像信号を取り込むことができる。具体的には、PC102の読み込み部104により動画像信号の全てのフレーム画像が図示しないメモリに読み込まれる。さらに、動画像を撮影する際のシャッタースピードの情報を含む撮像パラメータとフレームレートの情報を含むが表示パラメータとが撮影情報として読み込まれる。画像処理部105は、これらの読み込まれた動画像信号とパラメータとを用いてフレームレート変換処理を行う。そして、処理された動画像信号は出力部106によりモニタ信号に変換され、変換されたモニタ信号がモニタ103に動画像として表示される。
【0013】
図2は、本実施形態に係る画像処理部105の詳細な構成例を示すブロック図である。
図2において、読み込み部104により入力された動画像信号は、第1の入力端子201から画像処理部105に入力される。一方、撮像パラメータは第2の入力端子202から画像処理部105に入力され、表示パラメータは第3の入力端子203から画像処理部105に入力される。
【0014】
シャッタースピード取得部210は、第2の入力端子202に入力された撮像パラメータからシャッタースピードの情報を取得し、撮像フレームレート取得部211は、入力された撮像パラメータから撮像フレームレートの情報を取得する。表示フレームレート取得部212は、第3の入力端子203に入力された表示パラメータから表示フレームレートの情報を取得する。フレーム数算出部213は、取得された撮像フレームレートと表示フレームレートとの情報を入力し、フレームレート変換処理に必要なフレーム画像の枚数を算出する。例えば、撮像フレームレートが100fpsであり、表示フレームレートが20fpsである場合、フレームレート変換処理に必要な枚数は最低5枚となる。
【0015】
フレーム画像取得部204は、第1の入力端子201に入力された動画像信号から、フレーム数算出部213で算出されたフレームレート変換処理に必要な連続するn枚のフレーム画像を取得する。動きベクトル算出部205は、n枚のフレーム画像からフレーム間の動きベクトルを算出する。動き距離算出部207は、動きベクトル算出部205で算出された動きベクトルから動き距離を算出する。一方、動きスピード算出部206は、動きベクトル算出部205で算出された動きベクトルと撮像フレームレート取得部211により取得された撮像フレームレートとから、対象物体の動きスピードを算出する。
【0016】
第1のフィルタ選択部208は、隣同士のフレーム画像間の動き距離、及びシャッタースピードにより、動きボケを付加するためのフィルタ補正係数αを決定する。一方、第2のフィルタ選択部209は、複数のフレーム画像間における動き距離により、動きボケを付加するためのフィルタ補正係数βを決定する。なお、フィルタ補正係数α、βの詳細については後述する。
【0017】
第1のフィルタ適用部214は、第1のフィルタ選択部208で決定されたフィルタ補正係数αを用いて、動画像信号の複数枚のフレーム画像に対して動きボケを付加する第1のフィルタ処理を行う。そして、第2のフィルタ適用部215は、第1のフィルタ適用部214によりフィルタが適用された後のフレーム画像に対し、第2のフィルタ選択部209で決定されたフィルタ補正係数βを用いて動きボケを付加する第2のフィルタ処理を行う。フレームレート変換処理部216は、動きボケを付加するフィルタを全て適用した後、動画像信号に対してフレームレート変換処理を行って、新規のフレーム画像を複数生成する。そして、フレームレート変換処理部216で生成された新規のフレーム画像を出力端子217から出力動画像信号として出力する。
【0018】
図3〜図6は、フレームレート変換処理を説明するための概念図である。
図3〜図6において、横軸は時間であり、1つの長方形の領域が1つのフレーム画像を表している。長方形の横軸は走査線一本の横方向の位置であり、長方形の縦方向は輝度を表している。
【0019】
以下に説明する例では、入力時の表示フレームレートをInputRate=100fpsとし、出力時の表示フレームレートをOutputRate=20fpsとする。この条件を用いて、以下、フレームレート変換処理を行う際に5枚の入力されたフレーム画像から1枚のフレーム画像を生成する例について示す。
【0020】
図3(a)には、入力される高速シャッタースピードの動画像信号の一例を示している。シャッタースピードは1/1000secであり、N−2番目のフレーム画像からN+2番目までのフレーム画像を用いてフレーム変換処理を行っている。N−2番目のフレーム画像からN+2番目のフレーム画像までの間、インパルス信号が均等速度で左から右へ移動しており、図3(a)に示す例では、短いシャッタースピードで撮影された動画像であるため、インパルス信号は鮮鋭に映っている。
【0021】
図3(b)には、フレームレート変換された動画像の時系列画像を示している。N−2番目のフレーム画像からN+2番目のフレーム画像を用いて平均合成した結果は5本のインパルス信号の画像になる。この場合、被写体は鮮鋭に写り、フレームレート変換処理で得られた動画像を観察すると多重像に認知してしまう。
【0022】
図4(a)には、入力される低速シャッタースピードの動画像信号の一例を示している。シャッタースピードは1/100secであり、N−2番目のフレーム画像からN+2番目のフレーム画像を用いてフレーム変換処理を行っている。N−2番目のフレーム画像からN+2番目のフレーム画像までの間、インパルス信号が均等速度で左から右へ移動しており、図4(a)に示す例では、オープンシャッタースピードで撮影された動画像であるため、インパルス信号は動きボケがあるように映っている。
【0023】
図4(b)には、フレームレート変換された動画像の時系列画像を示している。N−2番目のフレーム画像からN+2番目のフレーム画像を用いて平均合成した結果は5本のインパルス信号の画像になる。この場合、被写体は動きボケがあり、フレームレート変換処理で得られた動画像を観察すると滑らかな動きとして映る。
【0024】
図5(a)には、入力された高速シャッタースピードの動画像信号の一例を示している。シャッタースピードは1/1000secであり、N−2番目のフレーム画像からN+2番目のフレーム画像を用いてフレーム変換処理を行っている。N−2番目のフレーム画像からN+2番目のフレーム画像までの間、インパルス信号が不均等速度で左から右へ移動しており、図5(a)に示す例では、短いシャッタースピードで撮影された動画像であるため、インパルス信号は鮮鋭に映っている。
【0025】
図5(b)には、平均合成処理を行って得られたフレーム画像の結果を示している。図5(b)に示す例では被写体は鮮鋭に写り、フレームレート変換処理によって得られた動画像を観察すると、多重像に認知してしまう。
【0026】
図5(c)には、従来の方法によって動きボケを付加してフレームレート変換された動画像の時系列画像を示している。従来の方法では、隣同士のフレーム間にある被写体のスピードしか考慮していないため、動きボケを付加すると、被写体は空間上に移動する距離の影響により、動きボケ量を付加する量が相違する。動きボケ付加量の相違により、図5(c)に示すように、合成したフレーム画像に輝度の段差が生じる。この段差によって、動画像として観察するとジャーキネスが発生し、画質劣化の原因になる。
【0027】
図6(a)には、入力される高速シャッタースピードの動画像信号の一例を示しており、図5(a)と同様である。図6(b)には、従来の方法により動きボケを付加させてから平均合成処理を行って得られたフレーム画像の結果を示している。動きボケの付加量が不均一であるため、このままフレームレート変換処理を行い、動画像を観察すると多重像に認知してしまう。
【0028】
図6(c)には、本実施形態によりフレームレート変換された動画像の時系列画像を示している。本実施形態では、さらに、時間軸の複数枚のフレームの動きベクトルの分散を取り、分散の値により動きボケの付加量を再決定する。なお、詳細な処理手順については後述する。時間軸に沿って動き物体の移動速度が異なることによって被写体が空間上に移動する距離が異なり、動きボケの付加量に相違が生じる。そこで、図6(b)に示すような段差を再補正することによって、図6(c)に示すように、画像全体に動きボケが付加され、動画像としてみると、滑らかな動きとなる。
【0029】
<被写体の動きスピードと最適シャッタースピードとの関係>
図7(a)は、動きスピードとシャッタースピードとの関係を示す図である。
図7(a)に示すように、動きベクトルから求められた被写体の動きスピードに応じた最適なシャッタースピードが存在する。この最適なシャッタースピードで撮影されると、動き物体が鮮鋭に映る。したがって、最適なシャッタースピードより速いシャッタースピードで撮影すると、動き物体はより鮮鋭に映り、ジャーキネスによる劣化が生じやすくなる。
【0030】
図7(a)の横軸は、動きベクトルから求められた動きスピードを示し、縦軸は、撮影時のシャッタースピードを示している。図7(a)に示すように、最適シャッタースピード曲線701を境に鮮鋭に映す領域と動きボケが存在する領域とが存在する。この動きボケ領域から最適シャッタースピード曲線701に近づくと、動きボケ量が少なくなり、ジャーキネスが発生する可能性が高くなる。以下、ジャーキネスが発生する可能性をジャーキネス発生度eと呼ぶ。
【0031】
ここで、フレームレートをf(frame/秒)とし、動きスピードをv(Pixel/frame)とし、シャッタースピードをs(秒)とする。あるシャッタースピードで撮影する際に、動きブレは以下の式(1)に示すように1pixel以下であれば、画像が鮮鋭に映る。
【0032】
【数1】
【0033】
最適シャッタースピード曲線701は、動きブレが1pixelである場合の動きスピードとシャッタースピードとの関係を表す曲線であり、以下の式(2)により計算される。
【0034】
【数2】
【0035】
図7(a)に示したv−s座標系にある任意点(v0,s0)と最適シャッタースピード曲線701との距離をDistanceとすると、任意点(v0,s0)でのジャーキネス発生度eは、以下の式(3)により計算される。
【0036】
【数3】
【0037】
なお、任意点(v0,s0)と最適シャッタースピード曲線701との距離がゼロである場合、または任意点(v0,s0)が鮮鋭な領域にある場合は、ジャーキネス発生度eは∞とする。
【0038】
図7(b)は、ジャーキネス発生度eとフィルタ補正係数αとの関係を示す図である。図7(b)に示すように、第1のフィルタ選択部208は、ジャーキネス発生度eの値によりフィルタ補正係数αの値を決めることができ、動きボケの付加量をフィルタ補正係数αによって制御することができる。なお、動きスピード、シャッタースピード及びフィルタ補正係数αの三次元データは画像処理部105に事前に保持される。
【0039】
動きボケを付加するためのフィルタに用いられるフィルタ補正係数αは0から1までの正の小数であり、値は大きくなるにつれて、動きボケの付加量が多くなる。
【0040】
<動きベクトルの算出>
図8は、動きベクトル算出部205によりフレーム間の相対移動量を算出する処理手順の一例を示すフローチャートである。本実施形態では、ブロック毎に動きベクトルを求め、その動きベクトルから画面全体の動き量をアフィンパラメータとして求める例について説明する。
まず、ステップS801において、前処理として有効ブロックの判定を行う。これは正しい動きベクトルが求まらない可能性のあるブロックを除外する処理である。この処理の詳細については後述する。
【0041】
次に、ステップS802において、有効ブロックの動きベクトルを算出する。ここで、一般的なブロックマッチング方法について説明する。ブロックマッチング法では、マッチングの評価値としてブロック内の画素間の差分二乗和もしくは差分絶対値和を用いる。まず、動きベクトルを求める対象ブロックを基準画像のサーチ範囲内で順次動かしなら評価値を求めていく。そして、サーチ範囲内で求めた全ての評価値の中から最小の評価値もつ位置が対称ブロックと最も相関の高い位置であり、その移動量が動きベクトルとなる。
【0042】
このサーチ範囲を1画素ずつ求めていく方法はフルサーチと呼ばれている。これに対し、サーチ範囲を間引きながら最小の評価値を求め、次にその近傍に対して細かくサーチする方法は、ステップサーチと呼ばれている。ステップサーチは特に高速に動きベクトルを求める方法としてよく知られている。以上の方法によりステップS802では、有効ブロックの動きベクトルを算出する。
【0043】
次に、ステップS803において、全ブロックに対して動きベクトルの検出を行った否かを判定する。この判定の結果、検出処理を行っていないブロックがまだ存在する場合はステップS801に戻り、全ブロックに対して動きベクトルの検出を行った場合は、次のステップS804に進む。
【0044】
ステップS804においては、有効な動きベクトルの判定を行う。この処理は、求めた動きベクトルのうち、算出結果が正しくないと判断されるものを除外する処理である。この処理の詳細については後述する。次に、ステップS805において、有効な動きベクトルからアフィンパラメータの検出を行う。
【0045】
ここで、アフィンパラメータの検出処理の詳細について説明する。対象ブロックの中心座標が、(x,y)であり、動きベクトルの算出結果から基準画像におけるブロックの中心座標が(x',y')に移動したとすると、これらの関係は、以下の式(4)のように表すことができる。
【0046】
【数4】
【0047】
ここで、式(4)に示す3×3の行列がアフィン変換行列である。行列の各要素がアフィンパラメータであり、a=1,b=0,d=0,e=1のとき、この変換は平行移動となり、cが水平方向の移動量、fが垂直方向の移動量となる。また、a=cosθ,b=−sinθ,c=0,d=sinθ,e=cosθ,f=0のとき、この変換は回転角θでの回転移動となる。上記式(4)は一般化した行列の形式で以下の式(5)のように表することができる。
【0048】
【数5】
【0049】
ここで、x及びx'は1×3の行列であり、Aは3×3のアフィン行列である。なお、有効な動きベクトルがn個であった場合、対象画像の座標値は、以下の式(6)のようにn×3の行列で表すことができる。
【0050】
【数6】
【0051】
同様に、移動後の座標値も式(6)のようにn×3の行列で表すことができる。よって、n個の動きベクトルに対しては、以下の式(7)のように表すことができる。
【0052】
【数7】
【0053】
ここで、式(7)におけるアフィン行列Aを求めれば、それが画面全体の位置ずれ量になる。式(4)を変形すると、アフィン行列Aは以下の式(8)のように表すことができる。
【0054】
【数8】
【0055】
このように動き量がアフィン変換のパラメータで表現できるため、カメラを保持しているときに起こるシフトぶれ以外にも、面内方向でのロールぶれや前後方向のズームぶれなどにも対応することが可能である。
【0056】
ブロックマッチングによりブロック間の相関を求めようとする場合、ブロック内の画像が何らかの特徴量を持っている必要がある。平坦でほとんど直流成分しか含んでいないブロックでは正しい動きベクトルを求めることはできず、逆に水平方向や垂直方向にエッジを含んでいると、マッチングがとりやすくなる。そこで、ステップS801では、このような平坦部のブロックを除外している。
【0057】
図9は、動きベクトル算出部205により図8のステップS801で有効ブロックを判定する処理手順の一例を示すフローチャートである。図9では、1つのブロックに対する処理について説明する。
まず、ステップS901において、ブロック内にある水平方向の1つのラインに対し、最大値と最小値との差分値を算出する。例えば、ブロックのサイズが50×50の画素で構成されている場合、ブロック内における水平方向の50の画素から最大値と最小値とを求め、その差分値を算出する。
【0058】
次に、ステップS902において、水平ライン数の差分値を算出したか否かを判定し、差分値を算出していない水平ラインがまだある場合はステップS901に戻り、全ての水平ラインについて差分値を算出した場合はステップS903に進む。そして、ステップS903において、算出した数の差分値の中から最大の差分値を求める。
【0059】
次に、ステップS904において、予め設定した閾値TxとステップS903で算出した最大差分値とを比較する。この比較の結果、最大差分値が閾値Txよりも小さい場合は、水平方向には特徴量を持たないブロックであるとみなすことができるため、ステップS905に進み、無効ブロックとする。一方、最大差分値が閾値Tx以上である場合は、水平方向に特徴量を持つとみなすことができるため、ステップS906以降へ進み、垂直方向で同様の検証を行う。
【0060】
次に、ステップS906において、ブロック内にある垂直方向の1つのラインに対し、最大値と最小値との差分値を算出する。例えば、ブロックのサイズが50×50の画素で構成されている場合、ブロック内における垂直方向の50の画素から最大値と最小値とを求め、その差分値を算出する。
【0061】
次に、ステップS907において、垂直ライン数の差分値を算出したか否かを判定し、差分値を算出していない垂直ラインがまだある場合はステップS906に戻り、全ての垂直ラインについて差分値を算出した場合はステップS908に進む。そして、ステップS908において、算出した数の差分値の中から最大の差分値を求める。
【0062】
次に、ステップS909において、予め設定した閾値TyとステップS908で算出した最大差分値とを比較する。この比較の結果、最大差分値が閾値Tyよりも小さい場合は、垂直方向には特徴量を持たないブロックであるとみなし、ステップS905に進み、無効ブロックとする。一方、最大差分値が閾値Ty以上である場合は、水平・垂直両方向に特徴を持つブロックであることから、正確なブロックマッチングが行われることが期待できるため、ステップS910に進み、有効ブロックとする。
【0063】
次に、有効な動きベクトルを判定する方法について図10のフローチャートを参照しながら説明する。図10は、動きベクトル算出部205により図8のステップS804で有効な動きベクトルを判定する処理手順の一例を示すフローチャートである。
まず、ステップS1001において、図8のステップS802で検出された動きベクトルを入力し、ステップS1002において、その発生頻度を算出する。次に、ステップS1003において、全ての動きベクトルの発生頻度を算出したか否かを判定し、発生頻度を算出していない動きベクトルがまだある場合はステップS1001に戻る。一方、全ての動きベクトルの発生頻度を算出した場合は、ステップS1004において、最大発生頻度の動きベクトルを求める。
【0064】
次に、ステップS1005において、動きベクトルを再度入力し、ステップS1006において、この動きベクトルが最大発生頻度の動きベクトル、もしくはその近傍の動きベクトルであるかどうかを判定する。画面全体のぶれが、シフトのみである場合、各ブロックの動きベクトルは、最大発生頻度の動きベクトルにほぼ一致し、ロールぶれを伴う場合は、最大発生頻度の動きベクトルの近傍に多くの動きベクトルが発生すると考えられる。したがって、これらの値に含まれる動きベクトルの場合は、ステップS1007に進み、有効な動きベクトルと判定する。
【0065】
一方、これらの値から外れている動きベクトルの場合は、ステップS1008に進み、無効の動きベクトルと判定する。そして、ステップS1009において、すべての動きベクトルに対して有効か無効かの判定処理が終わったかどうかを判定する。まだ判定が終わっていない動きベクトルがある場合はステップS1005に戻り、全ての動きベクトルについて判定が終了した場合は、そのまま処理を終了する。
【0066】
<不均等スピードに関する処理>
フレームレート変換処理を行う際に、複数枚のフレーム画像を平均合成して1枚のフレーム画像を生成する。複数のフレーム画像の間で動き物体が不均等速度で移動する場合、使用する複数のフレーム画像について、動き距離算出部207は、フレーム画像ごとに動きベクトルにより動き物体の動き距離を算出する。そして、第2のフィルタ選択部209は、距離平均Aveを以下の式(9)により算出する。
【0067】
【数9】
【0068】
ここで、Nはフレーム画像の番号であって、D[n]はn枚目のフレーム画像とn−1枚目のフレーム画像との間の動き物体の動き距離である。算出された複数の動き距離D[N]及び距離平均Aveにより、第2のフィルタ選択部209は、各フレーム画像の動き距離との標準偏差Sを以下の式(10)により算出し、算出した標準偏差Sによりフィルタ補正係数βを算出する。
【0069】
【数10】
【0070】
図11は、複数のフレーム画像の間で動き物体が不均等速度で動いている様子を説明する図である。また、図12は、複数のフレーム画像の間で動き物体が不均等速度で動いている場合の標準偏差Sとフィルタ補正係数βとの関係を示す図である。図12において、横軸は動き距離の標準偏差Sであり、縦軸はボケ付加パラメータ(フィルタ補正係数β)である。このように、第2のフィルタ選択部209は、標準偏差Sによりフィルタ補正係数βを決定することができる。そして、フレーム画像上に算出された全ての動きベクトルに対して、係数α、βのボケ付加処理を行う。
【0071】
<ボケ付加フィルタ選択>
図14には、ボケ付加フィルタの一例を示しており、U行V列のフィルタWとする。ここで、第1のフィルタ適用部214及び第2のフィルタ適用部215により、フィルタ処理後の画像Imが以下の式(11)により得られる。
【0072】
【数11】
【0073】
ここで、フィルタ補正係数αは、前述したようにシャッタースピードと動きスピードとにより決定され、フィルタ補正係数βは、複数のフレーム画像での動き距離とその標準偏差とにより決定される。
【0074】
<全体的な処理>
図13は、本実施形態におけるフレームレート変換処理までの処理手順の一例を示すフローチャートである。
まず、ステップS1301において、フレーム画像取得部204は、連続するフレーム画像を取得する。次に、ステップS1302において、撮像フレームレート取得部211は、入力された撮像パラメータから撮像フレームレートの情報を取得する。前述したように撮像フレームレートは、動きスピードを算出する際に用いられる。
【0075】
次に、ステップS1303において、フレーム数算出部213は、フレームレート変換処理に必要な連続するフレーム画像の枚数Numを算出する。そして、ステップS1304において、シャッタースピード取得部210は、撮影した時のシャッタースピードの値の情報を取得する。
【0076】
次に、ステップS1305において、動きベクトル算出部205は、カウント用の整数nを初期化する。そして、ステップS1306において、動きベクトル算出部205は、整数nが枚数Numより小さいか否かを判定し、枚数Numより小さい場合は、次のステップS1307に進み、枚数Numに到達した場合は、ステップS1312に進む。
【0077】
次に、ステップS1307において、動きベクトル算出部205は、n番目のフレーム画像とn+1番目のフレーム画像との間の動きベクトルを算出する。そして、ステップS1308において、動き距離算出部207は、n番目のフレーム画像とn+1番目のフレーム画像との間の動きベクトルによる被写体の動き距離D[n]を算出する。
【0078】
次に、ステップS1309において、動きスピード算出部206は、ステップS1302で取得した撮影フレームレートから動きスピードを算出する。そして、第1のフィルタ選択部208は、算出した動きスピードとステップS1304で取得したシャッタースピードとから、図7で説明したようにフィルタ補正係数αを決定する。
【0079】
次に、ステップS1310において、第1のフィルタ適用部214は、決定されたフィルタ補正係数αによりフレーム画像の被写体にフィルタを適用して動きボケを付加する。そして、ステップS1311において、整数nの値を1つ増やし、ステップS1306に戻る。
【0080】
一方、ステップS1312においては、第2のフィルタ選択部209は、フレームレート変換処理に必要な枚数Numで算出したD[n]により、各フレーム画像の被写体の動き距離の標準偏差Sを求める。次に、ステップS1313において、第2のフィルタ選択部209は、フレーム画像ごとに算出された標準偏差Sからそれぞれのフレーム画像のフィルタ補正係数βを決定する。そして、第2のフィルタ適用部215は、各フレーム画像に異なるローパスフィルタをかけ、動きボケを付加する。全てのフレーム画像について動きボケを付加すると、処理を終了とする。
【0081】
以上説明したように本実施形態によれば、複数のフレーム画像について、各フレーム間の撮像対象の動きスピード、シャッタースピード、及び動き距離により動きボケを付加するためのフィルタ補正係数α、βを調整することできる。これにより、フレームレート変換処理を行う際に、非均等速度で移動する物体が存在しても、ジャーキネスを抑制した動画像を生成することができる。
【0082】
(その他の実施形態)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【符号の説明】
【0083】
204 フレーム画像取得部
205 動きベクトル算出部
207 動き距離算出部
210 シャッタースピード取得部
211 撮像フレームレート取得部
214 第1のフィルタ適用部
215 第2のフィルタ適用部
【特許請求の範囲】
【請求項1】
動画像信号から複数のフレーム画像を入力する入力手段と、
前記動画像信号の撮影情報からシャッタースピード及びフレームレートの情報を取得する取得手段と、
前記入力手段により入力された複数のフレーム画像での被写体の動きベクトルを算出し、前記算出した動きベクトルからフレーム画像ごとに前記被写体の動き距離を算出する算出手段と、
前記入力手段により入力された複数のフレーム画像に対して、前記取得手段によって取得されたシャッタースピード及びフレームレートに基づく第1のフィルタ処理と、前記算出手段により算出された動き距離に基づく第2のフィルタ処理とを適用するフィルタ手段とを有することを特徴とする画像処理装置。
【請求項2】
前記フィルタ手段は、さらに前記動きベクトルの分散に基づいて前記第2のフィルタ処理を適用することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記フィルタ手段は、前記第1のフィルタ処理を適用した後に、前記第2のフィルタ処理を適用することを特徴とする請求項1又は2に記載の画像処理装置。
【請求項4】
前記取得手段により取得されたフレームレートの情報に基づいて前記入力手段により入力するフレーム画像の枚数を算出するフレーム数算出手段をさらに有することを特徴とする請求項1〜3の何れか1項に記載の画像処理装置。
【請求項5】
動画像信号から複数のフレーム画像を入力する入力工程と、
前記動画像信号の撮影情報からシャッタースピード及びフレームレートの情報を取得する取得工程と、
前記入力工程において入力された複数のフレーム画像での被写体の動きベクトルを算出し、前記算出した動きベクトルからフレーム画像ごとに前記被写体の動き距離を算出する算出工程と、
前記入力工程において入力された複数のフレーム画像に対して、前記取得工程において取得されたシャッタースピード及びフレームレートに基づく第1のフィルタ処理と、前記算出工程において算出された動き距離に基づく第2のフィルタ処理とを適用するフィルタ工程とを有することを特徴とする画像処理方法。
【請求項6】
動画像信号から複数のフレーム画像を入力する入力工程と、
前記動画像信号の撮影情報からシャッタースピード及びフレームレートの情報を取得する取得工程と、
前記入力工程において入力された複数のフレーム画像での被写体の動きベクトルを算出し、前記算出した動きベクトルからフレーム画像ごとに前記被写体の動き距離を算出する算出工程と、
前記入力工程において入力された複数のフレーム画像に対して、前記取得工程において取得されたシャッタースピード及びフレームレートに基づく第1のフィルタ処理と、前記算出工程において算出された動き距離に基づく第2のフィルタ処理とを適用するフィルタ工程とをコンピュータに実行させることを特徴とするプログラム。
【請求項1】
動画像信号から複数のフレーム画像を入力する入力手段と、
前記動画像信号の撮影情報からシャッタースピード及びフレームレートの情報を取得する取得手段と、
前記入力手段により入力された複数のフレーム画像での被写体の動きベクトルを算出し、前記算出した動きベクトルからフレーム画像ごとに前記被写体の動き距離を算出する算出手段と、
前記入力手段により入力された複数のフレーム画像に対して、前記取得手段によって取得されたシャッタースピード及びフレームレートに基づく第1のフィルタ処理と、前記算出手段により算出された動き距離に基づく第2のフィルタ処理とを適用するフィルタ手段とを有することを特徴とする画像処理装置。
【請求項2】
前記フィルタ手段は、さらに前記動きベクトルの分散に基づいて前記第2のフィルタ処理を適用することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記フィルタ手段は、前記第1のフィルタ処理を適用した後に、前記第2のフィルタ処理を適用することを特徴とする請求項1又は2に記載の画像処理装置。
【請求項4】
前記取得手段により取得されたフレームレートの情報に基づいて前記入力手段により入力するフレーム画像の枚数を算出するフレーム数算出手段をさらに有することを特徴とする請求項1〜3の何れか1項に記載の画像処理装置。
【請求項5】
動画像信号から複数のフレーム画像を入力する入力工程と、
前記動画像信号の撮影情報からシャッタースピード及びフレームレートの情報を取得する取得工程と、
前記入力工程において入力された複数のフレーム画像での被写体の動きベクトルを算出し、前記算出した動きベクトルからフレーム画像ごとに前記被写体の動き距離を算出する算出工程と、
前記入力工程において入力された複数のフレーム画像に対して、前記取得工程において取得されたシャッタースピード及びフレームレートに基づく第1のフィルタ処理と、前記算出工程において算出された動き距離に基づく第2のフィルタ処理とを適用するフィルタ工程とを有することを特徴とする画像処理方法。
【請求項6】
動画像信号から複数のフレーム画像を入力する入力工程と、
前記動画像信号の撮影情報からシャッタースピード及びフレームレートの情報を取得する取得工程と、
前記入力工程において入力された複数のフレーム画像での被写体の動きベクトルを算出し、前記算出した動きベクトルからフレーム画像ごとに前記被写体の動き距離を算出する算出工程と、
前記入力工程において入力された複数のフレーム画像に対して、前記取得工程において取得されたシャッタースピード及びフレームレートに基づく第1のフィルタ処理と、前記算出工程において算出された動き距離に基づく第2のフィルタ処理とを適用するフィルタ工程とをコンピュータに実行させることを特徴とするプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2012−169701(P2012−169701A)
【公開日】平成24年9月6日(2012.9.6)
【国際特許分類】
【出願番号】特願2011−26472(P2011−26472)
【出願日】平成23年2月9日(2011.2.9)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成24年9月6日(2012.9.6)
【国際特許分類】
【出願日】平成23年2月9日(2011.2.9)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]