(57)【要約】      （修正有）【課題】画像に対する動きブレ効果を高める画像処理装置、画像処理方法、及びプログラムを提供する。【解決手段】動きブレ付与部２００は、入力画像データの動きベクトルと、撮像装置と入力画像データに表されている被写体との距離情報とに基づいて、撮像画像にブレを付与する。【選択図】図２
2019114143.tif 000002
【特許請求の範囲】
【請求項１】
撮像手段により撮像された画像に基づいて動きベクトルを導出する第１導出手段と、
前記撮像手段から前記画像に存在する被写体までの距離を示す距離情報を導出する第２導出手段と、
前記動きベクトルと、前記距離情報とに基づいて、前記画像の少なくとも一部の被写体の領域にブレを付与する付与手段と、を有することを特徴とする画像処理装置。
【請求項２】
前記付与手段は、前記動きベクトルと、前記距離情報とに基づいて、前記ブレの大きさに関する情報を導出し、当該導出した情報に基づく大きさのブレを、前記画像の少なくとも一部の被写体の領域に付与することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記付与手段は、前記動きベクトルと、前記距離情報とに基づいて、前記画像における被写体の動きの速度を導出し、当該導出した速度に基づいて、前記ブレの大きさに関する情報を導出することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記動きベクトルと、前記距離情報とに基づいて、前記画像の水平方向、垂直方向、および奥行方向により定まる３次元動きベクトルを導出する第３導出手段を更に有し、
前記付与手段は、前記動きベクトルと、前記３次元動きベクトルと、前記距離情報とに基づいて、前記画像の少なくとも一部の被写体の領域にブレを付与することを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記付与手段は、前記動きベクトルと、前記３次元動きベクトルとに基づいて、前記ブレの大きさに関する情報を導出し、当該導出した情報に基づく大きさのブレを、前記画像の少なくとも一部の被写体の領域に付与することを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記付与手段は、合成する前記画像の数を、前記ブレの大きさに関する情報として導出し、前記画像と、当該画像と異なるタイミングで前記撮像手段により撮像された他の画像であって、当該導出した数の他の画像とを合成することにより、当該画像の少なくとも一部の被写体の領域にブレを付与することを特徴とする請求項２〜５の何れか１項に記載の画像処理装置。
【請求項７】
前記付与手段は、空間フィルタのタップ数を、前記ブレの大きさに関する情報として導出し、前記画像に対して、当該空間フィルタを用いた空間フィルタ処理を行うことにより、当該画像の少なくとも一部の被写体の領域にブレを付与することを特徴とする請求項２〜５の何れか１項に記載の画像処理装置。
【請求項８】
前記付与手段は、前記動きベクトルに基づいて、前記空間フィルタ処理を適用するタップの方向を、前記ブレの大きさに関する情報として更に導出し、前記画像に対して、当該空間フィルタを用いた空間フィルタ処理を行うことにより、当該画像の少なくとも一部の被写体の領域にブレを付与することを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記付与手段は、前記ブレの大きさに関する情報を、１つの前記画像に対して１つ導出し、当該導出した情報に基づく大きさのブレを、前記画像の全ての領域に付与することを特徴とする請求項２〜８の何れか１項に記載の画像処理装置。
【請求項１０】
前記付与手段は、前記ブレの大きさに関する情報を、前記画像の一部の領域ごとに導出し、当該導出した情報に基づく大きさのブレを、当該領域ごとに付与することを特徴とする請求項２〜８の何れか１項に記載の画像処理装置。
【請求項１１】
請求項１〜１０の何れか１項に記載の画像処理装置を有することを特徴とする撮像装置。
【請求項１２】
撮像手段により撮像された画像に基づいて動きベクトルを導出する第１導出工程と、
前記撮像手段から前記画像に存在する被写体までの距離を示す距離情報を導出する第２導出工程と、
前記動きベクトルと、前記距離情報とに基づいて、前記画像の少なくとも一部の被写体の領域にブレを付与する付与工程と、を有することを特徴とする画像処理方法。
【請求項１３】
請求項１〜１０の何れか１項に記載の画像処理装置の各手段としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法、およびプログラムに関し、特に、動く被写体を含む撮像画像を処理するために用いて好適なものである。
【背景技術】
【０００２】
動画像のフレーム間の時間間隔を超える長期間の露光をしたかのような動画像を生成することにより、見者に動感を与えるように画像を表現する技術がある。この技術では、例えば、動画の複数のフレームに対して移動平均をとることにより各フレームを合成することにより、画像における動く被写体に対して動きブレ効果（動く被写体に対する動感を見者に与える効果）を付与する。この技術を用いることにより、例えば、移動量が大きい被写体には強い動きブレ効果が付き、移動量が小さい被写体には弱い動きブレ効果を付くようになる。このように画像処理により被写体の動きを表現する技術が開示されている。
特許文献１には、複数枚の画像を合成することにより、移動体の軌跡を生成することにより、見者に動感を与えるように画像を表現する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第５９４８９６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
前述のように、例えば、動画の複数フレームに対して移動平均をとることにより各フレームを合成すれば、動く被写体に対して動きブレ効果を付与することができる。しかしながら、動く被写体の撮像装置からの距離に応じて、動きブレ効果が変わる虞がある。
【０００５】
例えば、撮像装置からの距離が遠い被写体を撮像する場合、当該被写体に対する動きブレ効果が弱くなる虞がある。例えば、撮像装置から見て左右方向に一定速度で移動する被写体を撮像する場合を考える。撮像装置からの距離が遠い被写体は、撮像装置からの距離が近い被写体と比較して見かけ上の移動量が小さい。このため、動きブレ効果が弱くなる虞がある。
【０００６】
また、例えば、撮像装置に対して奥行き方向に移動する被写体を撮像する場合、当該被写体に対する動きブレ効果は、左右方向や上下方向に移動する被写体に対する動きブレ効果よりも弱くなる虞がある。例えば、時速４ｋｍで奥行き方向に移動している被写体を撮像する場合と、同じく時速４ｋｍで左右方向に移動している被写体を撮像する場合とでは、奥行き方向に移動している被写体に対する動きブレ効果が弱くなる虞がある。合成する複数枚の画像間において、奥行き方向に移動している被写体の、位置的に重なる領域が大きくなることにより、移動している被写体の領域を当該被写体以外の領域と合成し難くなるためである。このように、合成画像において移動している被写体の領域では、背景などの当該被写体以外の領域が透過せず、動きブレ効果が弱くなる虞がある。
【０００７】
本発明は、以上の問題点に鑑みてなされたものであり、画像に対する動きブレ効果を高めることを目的とする。
【課題を解決するための手段】
【０００８】
本発明の画像処理装置は、撮像手段により撮像された画像に基づいて動きベクトルを導出する第１導出手段と、前記撮像手段から前記画像に存在する被写体までの距離を示す距離情報を導出する第２導出手段と、前記動きベクトルと、前記距離情報とに基づいて、前記画像の少なくとも一部の被写体の領域にブレを付与する付与手段と、を有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、画像に対する動きブレ効果を高めることができる。
【図面の簡単な説明】
【００１０】
【図１】撮像装置の構成を示す図である。
【図２】動きブレ付与部の構成の第１の例を示す図である。
【図３】動きブレ付与部の処理の第１の例を示すフローチャートである。
【図４】動きベクトルの算出処理を示すフローチャートである。
【図５】入力画像データと動きベクトルを示す図である。
【図６】動きベクトルの算出方法を説明する図である。
【図７】合成枚数の算出処理の第１の例を示すフローチャートである。
【図８】動きブレ付与部の構成の第２の例を示す図である。
【図９】動きブレ付与部の処理の第２の例を示すフローチャートである。
【図１０】タップ数の算出処理の第１の例を示すフローチャートである。
【図１１】合成枚数の算出処理の第２の例を示すフローチャートである。
【図１２】動きブレ付与部の構成の第３の例を示す図である。
【図１３】動きブレ付与部の処理の第３の例を示すフローチャートである。
【図１４】３次元動きベクトルの算出処理を示すフローチャートである。
【図１５】距離情報を示す図である。
【図１６】３次元動きベクトルを示す図である。
【図１７】合成枚数の算出処理の第３の例を示すフローチャートである。
【図１８】動きブレ付与部の構成の第４の例を示す図である。
【図１９】動きブレ付与部の処理の第４の例を示すフローチャートである。
【図２０】タップ数の算出処理の第２の例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、図面を参照しながら、実施形態を説明する。尚、以下の各実施形態において、撮像装置は、デジタルカメラであっても、ビデオカメラであっても、スマートフォンやタブレット等の各種の携帯機器に含まれるものであっても良い。また、撮像装置は、工業用カメラ、車載用カメラ、または医療用カメラに適用されるものであってもよい。また、以下の各実施形態では、画像処理装置が撮像装置に含まれる場合を例に挙げて説明する。しかしながら、画像処理装置は、撮像手段を備える装置とは別の装置であってもよい。また、以下の各実施形態では、撮像装置は、動画像を撮影するものとする。
【００１２】
（第１の実施形態）
まず、第１の実施形態を説明する。
図１は、撮像装置１００の構成の一例を示すブロック図である。
制御部１０１は、例えばＣＰＵである。制御部１０１は、撮像装置１００が備える各ブロックの動作プログラムを後述のＲＯＭ１０２より読み出し、後述のＲＡＭ１０３に展開して実行することにより撮像装置１００が備える各ブロックの動作を制御する。ＲＯＭ１０２は、電気的に消去・記録が可能な不揮発性メモリである。ＲＯＭ１０２は、撮像装置１００が備える各ブロックの動作プログラムに加え、各ブロックの動作に必要なパラメータ等を記憶する。ＲＡＭ１０３は、書き換え可能な揮発性メモリである。ＲＡＭ１０３は、撮像装置１００が備える各ブロックの動作において出力されたデータの一時的な記憶領域として用いられる。
【００１３】
光学系１０４は、ズームレンズ、フォーカスレンズを含むレンズ群で構成される。光学系１０４は、被写体像を後述の撮像部１０５に結像する。撮像部１０５は、例えばＣＣＤやＣＭＯＳセンサー等の撮像素子を有する。撮像部１０５は、光学系１０４により撮像素子に結像された光学像を光電変換し、この光電変換により得られたアナログ画像信号をＡ／Ｄ変換部１０６に出力する。Ａ／Ｄ変換部１０６は、撮像部１０５から入力されたアナログ画像信号をデジタル画像信号に変換し、当該デジタル画像データをＲＡＭ１０３に出力する。
【００１４】
画像処理部１０７は、ＲＡＭ１０３に記憶されている画像データに対して、ホワイトバランス調整、色補間、ガンマ処理など、様々な画像処理を適用する。本実施形態では、画像処理部１０７は、動きブレ付与部２００を具備する。動きブレ付与部２００は、後述する距離情報および画像データより算出する動きベクトルに基づき、動きブレ付与画像を生成する。
【００１５】
記録部１０８は、撮像装置１００に対して着脱可能なメモリカード等である。画像処理部１０７で処理された画像が、ＲＡＭ１０３を介し、記録画像として記録部１０８に記録される。
表示部１０９は、ＬＣＤ等の表示デバイスである。表示部１０９は、ＲＡＭ１０３および記録部１０８に記録された画像や、ユーザーからの指示を受け付けるための操作ユーザーインターフェイスを表示する。
【００１６】
距離情報生成部１１０は、撮像装置１００と撮影対象の被写体との距離を示す距離情報を生成する。距離情報は、例えば、ＡＦ用の測距情報、撮像面位相差情報、反射光所要時間情報、および被写体のサイズ情報のうち、いずれかに基づき算出される。
【００１７】
まず、ＡＦ用の測距情報に基づき距離情報を算出する例について説明する。
この場合、距離情報生成部１１０は、ＡＦセンサー（ラインセンサー）および制御部を有する。光学系１０４を介して入射した被写体からの光束は２分割され、２分割された光束は、それぞれ２つのラインセンサーで受光される。距離情報生成部１１０は、２つのラインセンサーからの信号の相関を演算する。そして、距離情報生成部１１０は、ラインセンサーの何画素分のシフト量（位置ずれ量）で相関が最大になるかを演算し、このシフト量に基づいて三角測量の原理で、距離情報を生成する。
【００１８】
次に、撮像面位相差情報に基づき距離情報を算出する例について説明する。
この場合、各画素は、マイクロレンズとその背後に配置された一対のサブ画素（光電変換部）とを有するようにする。複数の画素のそれぞれにおいて、光学系１０４および撮像部１０５の射出瞳のうち、互いに異なる領域（以下、瞳領域という）からの一対の光束がマイクロレンズを通ることで一対の像（以下、Ａ像およびＢ像ともいう）を一対のサブ画素に形成する。そして、複数の画素のそれぞれにおいて、一対のサブ画素がＡ像およびＢ像を光電変換することで位相差検出用の一対の像信号（以下、Ａ像信号およびＢ像信号という）が生成される。距離情報生成部１１０は、このＡ像信号およびＢ像信号の相関演算に基づき位相差を検出する。距離情報生成部１１０は、このように検出した位相差に基づき距離情報を生成する。
【００１９】
次に、被写体のサイズ情報に基づいて距離情報を算出する例について説明する。
距離情報生成部１１０は、撮影された被写体のサイズを計測し、計測したサイズに基づいて距離情報を生成する。
以上、撮像装置１００の構成と、基本動作について説明した。
【００２０】
次に、本実施形態の画像処理部１０７の動作の一例について、詳細に説明を行う。本実施形態では、撮像装置１００からの距離情報を加味して、異なるタイミングで撮像された複数枚の画像を合成することにより、画像に対して動きによるブレを付与した画像（動きブレ付与画像）を生成する例について説明する。尚、以下の説明では、画像において動きのある被写体を必要に応じて移動体という。
【００２１】
まず、画像処理部１０７が具備する動きブレ付与部２００の構成の一例について、図２を参照して説明する。動きブレ付与部２００は、ＲＡＭ１０３に記憶されている複数枚の画像データを合成し、動きブレ付与画像を生成する。尚、本実施形態では、画像に付与するブレの強度は、合成する画像の枚数を変更することにより調整される。
図２は、動きブレ付与部２００の構成の一例を示すブロック図である。動きブレ付与部２００は、動きベクトル算出部２０１、合成枚数算出部２０２、および画像合成部２０３を有する。このような動きブレ付与部２００の処理の一例について、図３のフローチャートを参照して説明する。
【００２２】
Ｓ３０１において、動きベクトル算出部２０１は、異なるタイミングで撮像された２つのフレームの画像間における動きベクトルを算出する。本実施形態における動きベクトルとは、画像の水平方向における移動体の移動量と垂直方向における移動体の移動量とを動きベクトルとして表したものである。以下に、動きベクトルの算出方法の一例について詳しく説明する。
【００２３】
図４は、動きベクトル算出部２０１による動きベクトルの算出処理の一例を示すフローチャートである。図５は、入力画像データと動きベクトルの一例を概念的に示す図である。具体的に図５（ａ）は、第Ｍフレームの入力画像データの一例を示す図である。図５（ｂ）は、第Ｍ＋１フレームの入力画像データの一例を示す図である。第Ｍ＋１フレームは、第Ｍフレームの次のフレームである。図５（ｃ）は、第Ｍフレームの入力画像データと第Ｍ＋１フレームの入力画像データとの間における動きベクトルの一例を示す図である。図５（ｃ）には、代表的な動きベクトルのみを示す。尚、Ｍは正の整数である。図６は、ブロックマッチング法による動きベクトルの算出方法の一例を説明する図である。尚、本実施形態では、動きベクトルの算出手法として、ブロックマッチング法を例として説明する。しかしながら、動きベクトルの算出手法はこの例に限定されず、例えばオプティカルフロー法でもよい。
【００２４】
図４のＳ４０１において、動きベクトル算出部２０１には、時間的に互いに隣接する２枚の入力画像データが入力される。そして、動きベクトル算出部２０１は、第Ｍフレームの入力画像データを基準フレームに設定すると共に、第Ｍ＋１フレームの入力画像データを参照フレームに設定する。
次に、Ｓ４０２において、動きベクトル算出部２０１は、図６に示すように、基準フレーム６０１に対し、Ｎ×Ｎ画素の基準ブロック６０２を配置する。尚、Ｎは、正の整数である。
【００２５】
次に、Ｓ４０３において、動きベクトル算出部２０１は、参照フレーム６０３に対し、探索範囲６０５を設定する。探索範囲６０５は、基準フレーム６０１の基準ブロック６０２の中心座標と同じ座標６０４を中心とする領域であって、（Ｎ＋ｎ）×（Ｎ＋ｎ）画素の矩形の領域である。尚、ｎは、正の整数である。
次に、Ｓ４０４において、動きベクトル算出部２０１は、基準フレーム６０１の基準ブロック６０２と、参照フレーム６０３の探索範囲６０５内に存在するＮ×Ｎ画素の参照ブロック６０６との相関演算を行い、相関値を算出する。相関値は、基準ブロック６０２および参照ブロック６０６の相互に対応する画素同士の画素値の差分の絶対値の和（差分絶対値和）をとることにより算出される。動きベクトル算出部２０１は、このような差分絶対値和の算出を、探索範囲６０５に設定可能な参照ブロック６０６のそれぞれについて行う。このようにして算出される差分絶対値和のうち、最も小さい差分絶対値和となる参照ブロックの中心座標が、最も相関値が高い座標となる。尚、相関値の算出方法は、差分絶対値和を求める方法に限定されない。例えば差分二乗和や正規相互相関値に基づく相関値を算出する方法でもよい。図６の例では、参照ブロック６０６が最も相関が高いことを示しているとする。
【００２６】
次に、Ｓ４０５において、動きベクトル算出部２０１は、Ｓ４０４で求めた最も高い相関値を示す参照ブロックの中心座標に基づき動きベクトルを算出する。図６に示す例の場合、参照フレーム６０３の探索範囲６０５の中で、基準フレーム６０１の基準ブロック６０２の中心座標に対応した座標６０４と、参照ブロック６０６の中心座標とに基づき動きベクトルが求められる。つまり、座標６０４から参照ブロック６０６の中心座標に向かう方向と、これらの座標間の距離とで表される動きベクトルが求められる。
【００２７】
次に、Ｓ４０６において、動きベクトル算出部２０１は、基準フレーム６０１の全画素について動きベクトルを算出したか否か判定する。動きベクトル算出部２０１は、Ｓ４０６において基準フレーム６０１の全画素の動きベクトルを算出していないと判定した場合には、Ｓ４０２に処理を戻す。そして、ステップ４０２では、動きベクトルが算出されていない画素を中心とするＮ×Ｎ画素の基準ブロック６０２が基準フレーム６０１に配置される。そして、前述したのと同様に、Ｓ４０３〜Ｓ４０５の処理が行われる。即ち、動きベクトル算出部２０１は、図６に示す基準ブロック６０２を移動させながら、Ｓ４０２〜Ｓ４０５の処理を繰り返して、基準フレーム６０１の全画素の動きベクトルを算出する。
【００２８】
この動きベクトルの例を図５（ｃ）に示す。図５（ａ）に示す第Ｍフレームの入力画像データと、図５（ｂ）に示す第Ｍ＋１フレームの入力画像データでは、人が左から右に移動している例を示す。このように被写体が移動している場合の動きベクトルの代表例を図５（ｃ）に示す。図５（ｃ）の示す動きベクトルは、第Ｍフレームの画像に存在している移動体の位置を始点とし、それに対応する第Ｍ＋１フレームの画像に存在している移動体の位置を終点とする動きベクトルである。
尚、動きベクトル算出部２０１は、基準フレーム６０１の全画素の動きベクトルを算出するのではなく、１つまたは複数の所定数の画素毎に動きベクトルを算出してもよい。
【００２９】
ここまでの処理は、時間的に互いに隣接する２枚の入力画像データに対する処理である。図４のフローチャートの処理は、記録部１０８に記録されている一つの動画ファイルの動画データ内の時間的に互いに隣接する２枚の画像データ毎に行われる。即ち、動きベクトル算出部２０１は、以上の方法により、動画を構成する全てのフレームを基準フレーム６０１として、当該全てのフレームについて動きベクトルを算出する。
以上、図３のＳ３０１における動きベクトルの算出方法の一例について説明した。
【００３０】
図３の説明に戻り、Ｓ３０２において、合成枚数算出部２０２は、動きベクトルおよび距離情報に基づき、合成枚数を算出する。合成枚数の算出処理の一例について、図７のフローチャートを参照して説明する。
Ｓ７０１において、合成枚数算出部２０２は、動きベクトルに基づき、入力画像データの画素毎に初期合成枚数を算出する。この算出式を式（１）に示す。
ＣＭＰＮＵＭ＿Ｖ  ＝  ＲＮＤ｛Ｌｅｎ＿Ｖ  ×  Ｇａｉｎ＿Ｖ｝＋１・・・式（１）
式（１）において、ＣＭＰＮＵＭ＿Ｖは、初期合成枚数を示す。Ｌｅｎ＿Ｖは、動きベクトルの長さを示す。Ｇａｉｎ＿Ｖは、所定の定数ゲインを示す。ＲＮＤは、整数への四捨五入演算処理を示す。初期合成枚数ＣＭＰＮＵＭ＿Ｖは、式（１）のように、動きベクトルの長さＬｅｎ＿Ｖに、所定の定数ゲインＧａｉｎ＿Ｖを乗算した値を四捨五入することにより算出される。所定の定数ゲインＧａｉｎ＿Ｖの値は、動きブレ効果が適度に付与できるように経験則に基づき予め決められる。尚、合成枚数が１枚の場合は、合成しないことを示す。
【００３１】
次に、Ｓ７０２において、合成枚数算出部２０２は、距離情報に基づいた補正係数を、入力画像データの画素毎に算出する。この算出式を式（２）に示す。
Ｃｏｒ＿Ｌ  ＝  Ｄｅｐｔｈ  ／  Ｔ  （Ｄｅｐｔｈ  ＞  Ｔ）
Ｃｏｒ＿Ｌ  ＝  １                  （Ｄｅｐｔｈ  ＜＝  Ｔ）  ・・・式（２）
式（２）において、Ｃｏｒ＿Ｌは、補正係数を示す。Ｄｅｐｔｈは、撮像装置１００からの距離を示す。Ｔは、所定の定数を示す。撮像装置１００からの距離Ｄｅｐｔｈが定数Ｔを上回る場合（Ｄｅｐｔｈ  ＞  Ｔ）、補正係数Ｃｏｒ＿Ｌは、１より大きい値をとる。一方、撮像装置１００からの距離Ｄｅｐｔｈが定数Ｔ以下の場合（Ｄｅｐｔｈ  ＜＝  Ｔ）、補正係数Ｃｏｒ＿Ｌは、１となる。尚、補正係数の算出方法は、このような方法に限らない。例えば、所定の定数Ｔを用いずに、撮像装置１００からの距離に比例して大きくなるように、補正係数を算出する方法を採用してもよい。
【００３２】
次に、Ｓ７０３において、合成枚数算出部２０２は、式（３）に示すように、距離情報を加味した補正合成枚数を、入力画像データの画素毎に算出する。
ＣＭＰＮＵＭ  ＝  ＲＮＤ｛ＣＭＰＮＵＭ＿Ｖ×Ｃｏｒ＿Ｌ｝・・・式（３）
式（３）において、ＣＭＰＮＵＭは、補正合成枚数を示す。ＲＮＤは、整数への四捨五入演算処理を示す。撮像装置１００からの距離Ｄｅｐｔｈが定数Ｔを上回る場合、補正係数Ｃｏｒ＿Ｌは１より大きい値をとる。このため、この場合には、合成枚数を多く設定することができ、画像に対し動きブレ効果を強くかけることが可能となる。
【００３３】
次に、Ｓ７０４において、合成枚数算出部２０２は、入力画像データの全画素について、距離情報を加味した補正合成枚数ＣＭＰＮＵＭを算出すると、当該補正合成枚数ＣＭＰＮＵＭを当該全画素分で平均化した枚数を、最終合成枚数として算出する。このとき、合成枚数算出部２０２は、入力画像データの全画素のうち、補正合成枚数ＣＭＰＮＵＭが１枚の画素を除外した画素の補正合成枚数ＣＭＰＮＵＭの平均化を行う。動きブレ効果を付与する移動体の領域のみに限定してブレの強度を算出するためである。尚、平均化は、例えば、算術平均値の算出により実現される。
以上、図３のＳ３０２における合成枚数の算出方法の一例について説明した。
【００３４】
図３の説明に戻り、Ｓ３０３において、画像合成部２０３は、第Ｍフレームの入力画像データに対し、当該第Ｍフレームの入力画像データの前後のフレームの入力画像データを合成することにより動きブレ付与画像を生成する。合成する前後のフレームの枚数は、図３のＳ３０２において合成枚数算出部２０２が算出した最終合成枚数とする。入力画像データの合成は、例えば、互いに対応する画素の画素値の移動平均をとることにより実現される。尚、第Ｍフレームの入力画像データの前のフレームの数と、第Ｍフレームの入力画像データの後のフレームの数は、同じであっても異なっていてもよい。
【００３５】
図３のＳ３０２の合成枚数の算出およびＳ３０３の画像合成処理は、記録部１０８に記録されている一つの動画ファイルのフレーム毎に行われる。即ち、以上の方法により、動画を構成する全てのフレームのそれぞれについて、当該フレームに対して算出した合成枚数に基づき画像合成を行い、動きブレ付与画像を生成する。
【００３６】
以上のように本実施形態では、動きブレ付与部２００は、入力画像データの動きベクトルと、撮像装置１００と入力画像データに存在する被写体との距離を示す距離情報とを導出する。動きブレ付与部２００は、動きベクトルに基づき、初期合成枚数を入力画像データの画素毎に導出すると共に、距離情報に基づいて補正係数を入力画像データの画素毎に導出する。動きブレ付与部２００は、初期合成枚数と補正係数とに基づいて補正合成枚数を入力画像データの画素毎に導出し、補正合成枚数を平均化して最終補正枚数を導出する。動きブレ付与部２００は、入力画像データの前後のフレームであって、最終補正枚数のフレームを当該入力画像データと合成する。従って、撮像装置１００からの被写体の距離を加味して動きブレ強度を決定することにより、撮像装置１００からの距離が遠い移動体に対する動きブレ効果を強めることができる。
【００３７】
尚、本実施形態では、時間的に互いに隣接する２つの入力画像データの動きベクトルを算出する例について説明したが、動きベクトルの算出方法はこれに限ったものではない。例えば、２フレーム以上離れた２つの入力画像データの動きベクトルを算出してもよい。移動量が小さく、時間的に互いに隣接する２つの入力画像データでは小数画素精度の移動量しかない移動体であっても、２フレーム以上離れた入力画像データでは、移動量が大きくなることが期待できる。このため、以上のようにすれば、より正確に動きベクトルを算出することが可能となる。
【００３８】
また、本実施形態では、合成枚数算出部２０２は、画素毎に算出した補正合成枚数を、入力画像データ（画面）の全画素分で平均化することにより、最終合成枚数を算出する例について説明したが、合成枚数の算出方法はこれに限ったものではない。例えば、画素毎に算出した補正合成枚数を最終合成枚数としてもよい。これにより、例えば、撮像装置１００からの距離が異なる移動体が画像に混在する場合、画素毎に合成枚数を変えることできる。このため、それぞれの移動体に最適な動きブレ効果を付与することが可能となる。
【００３９】
また、本実施形態では、画像合成部２０３は、第Ｍフレームの入力画像データの前後のフレームの入力画像データを合成することにより動きブレ付与画像を生成する例について説明したが、合成するフレームはこれに限ったものではない。画像合成部２０３は、例えば、第Ｍフレームの入力画像データの前のフレームのみを第Ｍフレームの入力画像データと合成してもよいし、第Ｍフレームの入力画像データの後のフレームのみを第Ｍフレームの入力画像データと合成してもよい。第Ｍフレームの前のフレームまたは後のフレームの枚数は、図３のＳ３０３において合成枚数算出部２０２が算出した最終合成枚数とする。
【００４０】
（第２の実施形態）
次に、第２の実施形態を説明する。第１の実施例形態では、動きベクトルおよび距離情報に基づき合成枚数を導出し、当該合成枚数の画像を合成することにより動きブレ付与画像を生成する場合を例に挙げて説明した。これに対し、本実施形態では、動きベクトルおよび距離情報に基づき、空間フィルタ処理を行うことにより動きブレ付与画像を生成する。このように本実施形態と第１の実施形態では、主として、図２における動きブレ付与部２００の構成および動作の一部が異なる。従って、本実施形態の説明において、第１の実施形態と同一の部分については、図１〜図７に付した符号と同一の符号を付す等して詳細な説明を省略する。
【００４１】
以下、本実施形態の画像処理部１０７の動作の一例について、詳細に説明を行う。前述したように本実施形態では、動きベクトルおよび距離情報に基づき、空間フィルタ処理を行うことにより、動きによるブレを付与した画像を生成する例について説明する。
【００４２】
まず、画像処理部１０７が具備する動きブレ付与部８００の構成の一例について、図８を参照して説明する。動きブレ付与部８００は、ＲＡＭ１０３に記憶されている画像データに対して空間フィルタ処理を行い、動きブレ付与画像を生成する。尚、本実施形態では、画像に付与するブレの強度は、空間フィルタのタップ数を変更することにより調整する。また、空間フィルタ処理は、入力画像の注目画素の画素値だけではなく、注目画素を中心とする参照領域の画素の画素値を用いて、注目画素の画素値を決定する処理である。空間フィルタ処理の一例として平滑化フィルタ処理を実行することができる。また、タップ数とは、前述した参照領域に含まれる注目画素の周辺の画素の数を指す。
【００４３】
図８は、動きブレ付与部８００の構成の一例を示すブロック図である。動きブレ付与部８００は、動きベクトル算出部２０１、空間フィルタタップ数算出部８０１、空間フィルタ方向算出部８０２、および空間フィルタ処理部８０３を有する。このような動きブレ付与部８００の処理の一例について、図９のフローチャートを参照して説明する。
【００４４】
図９のＳ３０１における動きベクトルの算出処理は、第１の実施形態で説明した図３のＳ３０１における動きベクトルの算出処理と同じである。
次に、Ｓ９０１において、空間フィルタタップ数算出部８０１は、動きベクトルおよび距離情報に基づき、空間フィルタのタップ数を算出する。空間フィルタタップ数の算出処理の一例について、図１０のフローチャートを参照して説明する。
Ｓ１００１において、空間フィルタタップ数算出部８０１は、動きベクトルに基づき、初期空間フィルタタップ数を、入力画像データの画素毎に算出する。この算出式を式（４）に示す。
ＴＡＰＮＵＭ＿Ｖ  ＝  ＲＮＤ｛Ｌｅｎ＿Ｖ×Ｇａｉｎ＿Ｖ｝＋１・・・式（４）
【００４５】
式（４）において、ＴＡＰＮＵＭ＿Ｖは、初期空間フィルタタップ数を示す。Ｌｅｎ＿Ｖは、動きベクトルの長さを示す。Ｇａｉｎ＿Ｖは、所定の定数ゲインを示す。ＲＮＤは、整数への四捨五入演算処理を示す。初期空間フィルタタップ数ＴＡＰＮＵＭ＿Ｖは、式（４）のように、動きベクトルの長さＬｅｎ＿Ｖに所定の定数ゲインＧａｉｎ＿Ｖを乗算した値を四捨五入することにより算出される。所定の定数ゲインＧａｉｎ＿Ｖの値は、動きブレ効果が適度に付与できるように経験則に基づき予め決められる。尚、タップ数が１の場合は、空間フィルタ処理を行わないことを示す。
【００４６】
次に、Ｓ７０２において、空間フィルタタップ数算出部８０１は、第１の実施形態で説明した図７のＳ７０２と同じ処理を行い、距離情報に基づいて補正係数Ｃｏｒ＿Ｌを、入力画像データの画素毎に算出する（式（２）を参照）。
次に、Ｓ１００２において、空間フィルタタップ数算出部８０１は、以下の式（５）に示すように、距離情報を加味した補正空間フィルタタップ数を、入力画像データの画素毎に算出する。
ＴＡＰＮＵＭ  ＝  ＲＮＤ｛ＴＡＰＮＵＭ＿Ｖ×Ｃｏｒ＿Ｌ｝・・・式（５）
式（５）において、ＴＡＰＮＵＭは、補正空間フィルタタップ数を示す。ＲＮＤは、整数への四捨五入演算処理を示す。撮像装置１００からの距離Ｄｅｐｔｈが定数Ｔを上回る場合、補正係数Ｃｏｒ＿Ｌが１より大きい値をとる。このため、この場合には、空間フィルタタップ数を大きく設定でき、入力画像データに対し、動きブレ効果を強くかけることが可能となる。
【００４７】
次に、Ｓ１００３において、空間フィルタタップ数算出部８０１は、入力画像データの全画素について、距離情報を加味した補正空間フィルタタップ数ＴＡＰＮＵＭを算出すると、以下の処理を行う。即ち、空間フィルタタップ数算出部８０１は、当該補正空間フィルタタップ数ＴＡＰＮＵＭを当該全画素分で平均化した値を、最終空間フィルタタップ数として算出する。このとき、空間フィルタタップ数算出部８０１は、入力画像データの全画素のうち、補正空間フィルタタップ数ＴＡＰＮＵＭが１の画素を除外した画素の補正空間フィルタタップ数ＴＡＰＮＵＭの平均化を行う。ブレを付与する移動体の領域のみに限定してブレの強度を算出するためである。尚、平均化は、例えば、算術平均値の算出により実現される。
以上、図９のＳ９０１における空間フィルタタップ数の算出方法の一例について説明した。
【００４８】
図９の説明に戻り、Ｓ９０２において、空間フィルタ方向算出部８０２は、入力画像データの全画素のうち、補正空間フィルタタップ数ＴＡＰＮＵＭが１の画素を除外した画素における動きベクトルの方向を、当該全画素分で平均化する。空間フィルタ方向算出部８０２は、この平均化した動きベクトルの方向を空間フィルタ方向とする。ブレを付与する移動体の領域のみに限定してブレの方向を算出するためである。尚、平均化は、例えば、動きベクトルの各成分の算術平均値の算出により実現される。また、空間フィルタ方向とは、注目画素を決定する際に参照する参照領域内の方向（空間フィルタ処理を適用するタップの方向）であり、空間フィルタ方向により、参照領域において使用する画素（使用するタップ）が定められる。例えば、空間フィルタ方向が、画像の左右方向であり、参照領域が注目画素の周囲の３×３画素である場合、注目画素の左右方向で隣接する合計２つの画素の画素値と、注目画素の画素値とを用いて、当該注目画素の画素値が決定される。
【００４９】
次に、Ｓ９０３において、空間フィルタ処理部８０３は、第Ｍフレームの入力画像データに対して空間的な平均フィルタ処理を行うことにより動きブレ付与画像を生成する。空間的な平均フィルタ処理を行う際のタップ数は、図９のＳ９０１（図１０のＳ１００３）において空間フィルタタップ数算出部８０１が算出した最終空間フィルタタップ数とする。また、空間的な平均フィルタ処理を行う際のフィルタ方向は、図９のＳ９０２において空間フィルタ方向算出部８０２が算出した空間フィルタ方向とする。
【００５０】
図９のＳ９０１の空間フィルタタップ数の算出、Ｓ９０２の空間フィルタ方向の算出、およびＳ９０３の空間フィルタ処理は、記録部１０８に記録されている一つの動画ファイルのフレーム毎に行われる。即ち、以上の方法により、動画を構成する全てのフレームのそれぞれについて、当該フレームに対して算出した空間フィルタタップ数および空間フィルタ方向に基づき空間フィルタ処理を行い、動きブレ付与画像を生成する。
【００５１】
以上のように本実施形態では、動きブレ付与部８００は、動きベクトルに基づき、初期空間フィルタタップ数を入力画像データの画素毎に導出すると共に、距離情報に基づいて補正係数を入力画像データの画素毎に導出する。動きブレ付与部８００は、初期空間フィルタタップ数と補正係数とに基づいて、補正空間フィルタタップ数を入力画像データの画素毎に導出し、補正空間フィルタタップ数を平均化して最終空間フィルタタップ数を導出する。また、動きブレ付与部８００は、動きベクトルを平均化した方向を空間フィルタ方向として導出する。動きブレ付与部８００は、入力画像データの注目画素に対し、最終空間フィルタタップ数のタップ数の空間フィルタを設定し、空間フィルタにおける空間フィルタ方向の画素の画素値と注目画素の画素値とを用いて、注目画素の画素値を導出する。従って、第１の実施形態で説明したのと同様に、撮像装置１００からの被写体の距離を加味して動きブレ強度を決定することにより、撮像装置１００からの距離が遠い移動体に対する動きブレ効果を強めることができる。
【００５２】
尚、本実施形態では、空間フィルタタップ数算出部８０１は、画素毎に算出した補正空間フィルタタップ数を入力画像データ（画面）の全画素分で平均化することにより最終空間フィルタタップ数を算出する例について説明した。しかしながら、空間フィルタタップ数の算出方法はこれに限ったものではない。また、空間フィルタ方向算出部８０２は、動きベクトルの方向を入力画像データ（画面）の全画素分で平均化することにより空間フィルタ方向を算出する例について説明したが、空間フィルタ方向の算出方法はこれに限ったものではない。例えば、画素毎に算出した補正空間フィルタタップ数を、当該画素に対する最終空間フィルタタップ数としてもよい。また、画素毎に算出した動きベクトルの方向を、当該画素に対する空間フィルタ方向としてもよい。これにより、例えば、撮像装置１００からの距離が異なる移動体が画像に混在する場合、画素毎に空間フィルタタップ数および空間フィルタ方向を変えることできる。このため、それぞれの移動体に最適な動きブレ効果を付与することが可能となる。
【００５３】
（第３の実施形態）
次に、第３の実施形態を説明する。第１の実施形態では、動きベクトルおよび距離情報に基づき合成枚数を導出し、当該合成枚数の画像を合成することにより動きブレ付与画像を生成する場合を例に挙げて説明した。これに対し、本実施形態では、動きベクトルおよび距離情報に基づく移動体の速度に基づいて合成枚数を導出し、当該合成枚数の画像を合成することにより動きブレ付与画像を生成する。このように本実施形態と第１の実施形態では、主として、図２における合成枚数算出部２０２の構成および動作の一部が第１の実施形態と異なる。従って、本実施形態の説明において、第１の実施形態と同一の部分については、図１〜図７に付した符号と同一の符号を付す等して詳細な説明を省略する。また、本実施形態では、同一速度で動いている複数の移動体に対して、撮像装置１００からの距離によらず同一の動きブレ量を付与する例について説明する。
【００５４】
第１の実施形態と同様に、本実施形態の動きブレ付与部２００も、動きベクトル算出部２０１と、合成枚数算出部２０２と、画像合成部２０３とを有する。動きベクトル算出部２０１および画像合成部２０３は、第１の実施形態で説明したものと同じであるため、詳細な説明を省略する。
【００５５】
本実施形態の合成枚数算出部２０２により実行される合成枚数の算出処理の一例について、図１１のフローチャートを参照して説明する。
Ｓ１１０１において、合成枚数算出部２０２は、動きベクトルと距離情報とに基づいて移動体の速度を算出する。この算出式を式（６）に示す。
ＶＥＬＯＣＩＴＹ  ＝  Ｌｅｎ＿Ｖ  ×  Ｄｅｐｔｈ  ・・・式（６）
式（６）において、ＶＥＬＯＣＩＴＹは、移動体の速度を示す。Ｌｅｎ＿Ｖは、動きベクトルの長さを示す。Ｄｅｐｔｈは、撮像装置１００からの距離を示す。速度ＶＥＬＯＣＩＴＹは、式（６）のように、動きベクトルの長さＬｅｎ＿Ｖに撮像装置１００からの距離Ｄｅｐｔｈを乗算することにより算出される。
【００５６】
次に、Ｓ１１０２において、合成枚数算出部２０２は、Ｓ１１０１で算出した速度に基づいて合成枚数を算出する。この算出式を式（７）に示す。
ＣＭＰＮＵＭ  ＝  ＲＮＤ｛ＶＥＬＯＣＩＴＹ  ×  Ｇａｉｎ＿Ｓ｝＋１・・・式（７）
式（７）において、ＣＭＰＮＵＭは、合成枚数を示す。Ｇａｉｎ＿Ｓは、所定の定数ゲインを示す。ＲＮＤは、整数への四捨五入演算処理を示す。式（７）のように、合成枚数ＣＭＰＮＵＭは、速度ＶＥＬＯＣＩＴＹに所定の定数ゲインＧａｉｎ＿Ｓを乗算した値を四捨五入することにより算出される。所定の定数ゲインＧａｉｎ＿Ｓの値は、動きブレ効果が適度に付与できるように経験則に基づき予め決められる。式（７）のように、移動体の速度に基づいて合成枚数を算出することによって、同一の速度で動いている複数の移動体に対して、撮像装置１００からの距離によらず、当該移動体に対するブレの強度が同一になるように合成枚数を求めることが可能になる。尚、合成枚数が１枚の場合は、合成しないことを示す。
以上、本実施形態における合成枚数の算出方法の一例について説明した。
【００５７】
尚、本実施形態では、合成枚数算出部２０２が、移動体の速度に基づいて合成枚数を算出する方法について説明したが、合成枚数の算出方法はこれに限ったものではない。例えば、移動体の速度と撮像装置１００からの距離とに基づいて合成枚数を算出してもよい。
【００５８】
また、本実施形態では、異なるタイミングで撮像された複数枚の画像を合成することにより、ブレを付与した画像を生成する際に、移動体の速度に基づいて合成枚数を算出する方法について説明した。しかしながら、画像に対してブレを付与することができれば、合成枚数を算出しなくてもよい。例えば、第２の実施形態のように、空間フィルタ処理を行うことによりブレを付与した画像を生成する際に、移動体の速度に基づいて空間フィルタタップ数を算出してもよい。
【００５９】
（第４の実施形態）
次に、第４の実施形態について説明する。第１の実施形態では、動きベクトルと距離情報とに基づいて、撮像画像において、撮像装置１００から遠い距離の移動体に対する動きブレ効果を調整する場合を例に挙げて説明した。これに対し、本実施形態では、動きベクトルと距離情報とに基づいて、撮像画像において、画像の奥行方向に移動する移動体に対する動きブレ効果を調整する場合について説明する。このように本実施形態と第１の実施形態では、主として、図２における動きブレ付与部２００の構成および動作の一部が第１の実施形態と異なる。従って、本実施形態の説明において、第１の実施形態と同一の部分については、図１〜図７に付した符号と同一の符号を付す等して詳細な説明を省略する。
【００６０】
以下、本実施形態の画像処理部１０７の動作の一例について、詳細に説明を行う。本実施形態では、３次元空間における移動体の移動量に基づいて、異なるタイミングで撮像された複数枚の画像を合成することにより、動きによるブレを付与した画像（動きブレ付与画像）を生成する例について説明する。
図１において、本実施形態の画像処理部１０７は、距離情報および画像データより算出される３次元動きベクトルに基づき、ＲＡＭ１０３に記憶されている複数枚の画像データを合成し、動きブレ付与画像を生成する。
【００６１】
次に、本実施形態の画像処理部１０７の動作の一例について、詳細に説明を行う。前述したように本実施形態では、３次元空間における移動体の移動量に基づいて、異なるタイミングで撮像された複数枚の画像を合成することにより、動きによるブレを付与した画像（動きブレ付与画像）を生成する例について説明する。
【００６２】
まず、画像処理部１０７が具備する動きブレ付与部１２００の構成の一例について、図１２を参照して説明する。動きブレ付与部１２００は、ＲＡＭ１０３に記憶されている複数枚の画像データを合成し、動きブレ付与画像を生成する。尚、本実施形態では、画像に付与するブレの強度は、合成する画像の枚数を変更することにより調整される。
図１２は、動きブレ付与部１２００の構成の一例を示す図である。動きブレ付与部１２００は、２次元動きベクトル算出部１２０１、３次元動きベクトル算出部１２０２、合成枚数算出部１２０３、および画像合成部１２０４より構成する。このような動きブレ付与部１２００の処理の一例について、図１３のフローチャートを参照して説明する。
【００６３】
図１３のＳ１３０１において、２次元動きベクトル算出部１２０１は、入力画像データの２枚の画像間における２次元動きベクトルを算出する。２次元動きベクトル算出部１２０１は、第１の実施形態で説明した動きベクトル算出部２０１と同じである。動きベクトル算出部２０１で算出される動きベクトルは、画像を構成する２次元平面における動きベクトル（画像の水平方向における移動体の移動量と垂直方向における移動体の移動量とに基づき定まる動きベクトル）である。そこで、この動きベクトルを必要に応じて２次元動きベクトルという。従って、２次元動きベクトル算出部１２０１の説明は、第１の実施形態の動きベクトル算出部２０１における動きベクトルを２次元動きベクトルに置き換えたものとなる。よって、２次元動きベクトル算出部１２０１の詳細な説明を省略する。
【００６４】
次に、Ｓ１３０２において、３次元動きベクトル算出部１２０２は、２次元動きベクトルと距離情報とに基づき３次元動きベクトルを算出する。３次元動きベクトルとは、２次元動きベクトルに、画像の奥行き方向における移動体の移動量を加えた３次元空間における移動体の動きを表す動きベクトルである。以下に、３次元動きベクトルの算出方法の一例について詳しく説明する。
図１４は、３次元動きベクトル算出部１２０２による３次元動きベクトルの算出処理の一例を示すフローチャートである。図１５は、距離情報の一例を示す図である。具体的に図１５（ａ）は、第Ｍフレームの距離情報の一例を示す図である。図１５（ｂ）は、第Ｍ＋１フレームの距離情報の一例を示す図である。図１５では、明るさが距離値を示し、白いほど手前に位置する被写体を示し、黒いほど奥に存在する被写体を示す。つまり、図１５の例では、第Ｍフレームから第Ｍ＋１フレームになるにつれて、被写体（移動体）は奥から手前に移動することを示す。図１６は、３次元動きベクトルの一例を示す図である。
【００６５】
図１４のＳ１４０１において、３次元動きベクトル算出部１２０２は、２次元動きベクトル算出部１２０１により算出された２次元動きベクトルを取得する。
次に、Ｓ１４０２において、３次元動きベクトル算出部１２０２は、２次元動きベクトルの始点の距離値（距離情報の値）と２次元動きベクトルの終点の距離値（距離情報の値）との差を算出する。例えば、図１５（ａ）および図１５（ｂ）において、２次元動きベクトルの始点ｐ１５０１の距離値と２次元動きベクトルの終点ｐ１５０２の距離値との差を算出する。２次元動きベクトルの始点の距離値は、第Ｍフレームに存在する被写体の距離値を示し、同じ２次元動きベクトルの終点の距離値は、第Ｍ＋１フレームに存在する同一被写体の距離値を示す。つまり、２次元動きベクトルの始点と終点の距離値の差が０以外の場合は、被写体（移動体）は画像の奥行き方向（撮像装置１００から離れる方向または撮像装置１００に近づく方向）に移動していることを示す。２次元動きベクトルの始点と終点の距離値の差が０の場合は、被写体（移動体）は画像の奥行き方向に移動していないことを示す。
【００６６】
次に、Ｓ１４０３において、３次元動きベクトル算出部１２０２は、２次元動きベクトルの始点と終点の距離値との差を、移動体の奥行き方向の移動量に変換する。この変換式を式（８）に示す。
Ｖｚ  ＝  Ｄｄｉｆｆ  ×  Ｇａｉｎ＿Ｄｄｉｆｆ    ・・・式（８）
式（８）において、Ｖｚは、移動体の奥行き方向の移動量を示す。Ｄｄｉｆｆは、２次元動きベクトルの始点と終点の距離値との差を示す。Ｇａｉｎ＿Ｄｄｉｆｆは、所定の定数ゲインを示す。移動体の奥行き方向の移動量Ｖｚは、式（８）のように、２次元動きベクトルの始点と終点の距離値の差Ｄｄｉｆｆに所定の定数ゲインＧａｉｎ＿Ｄｄｉｆｆを乗算することにより算出される。
【００６７】
次に、Ｓ１４０４において、３次元動きベクトル算出部１２０２は、図１６に示すように、２次元動きベクトルと、移動体の奥行き方向の移動量とに基づいて３次元動きベクトルを算出する。図１６は、２次元動きベクトルをｘ軸、ｙ軸に、移動体の奥行き方向の移動量Ｖｚをｚ軸にプロットした場合の３次元動きベクトルを示す。このように２次元動きベクトルに対して移動体の奥行き方向の移動量を加えることにより、３次元空間での移動体の移動方向と移動量を表現することが可能となる。
【００６８】
次に、Ｓ１４０５において、３次元動きベクトル算出部１２０２は、基準フレーム６０１の全画素について３次元動きベクトルを算出したか否か判定する。３次元動きベクトル算出部１２０２は、Ｓ１４０５において、基準フレーム６０１の全画素の動きベクトルを算出していないと判定した場合には、Ｓ１４０１に処理を戻す。そして、３次元動きベクトルが算出されていない画素に対して、前述したのと同様に、Ｓ１４０１〜Ｓ１４０４の処理が行われる。即ち、３次元動きベクトル算出部１２０２は、Ｓ１４０１〜Ｓ１４０４の処理を繰り返して、基準フレーム６０１の全画素の３次元動きベクトルを算出する。尚、３次元動きベクトル算出部１２０２は、基準フレーム６０１の全画素の３次元動きベクトルを算出するのではなく、１つまたは複数の所定数の画素毎に３次元動きベクトルを算出してもよい。
【００６９】
ここまでの処理は、時間的に互いに隣接する２枚のフレームに対する処理である。図１４のフローチャートの処理は、記録部１０８に記録されている一つの動画ファイルの動画データ内の時間的に互いに隣接する２枚の画像データ毎に行われる。即ち、３次元動きベクトル算出部１２０２は、以上の方法により、動画を構成する全てのフレームを基準フレーム６０１として、当該全てのフレームについて３次元動きベクトルを算出する。
以上、図１３のＳ１３０２における３次元動きベクトルの算出方法の一例について説明した。
【００７０】
図１３の説明に戻り、Ｓ１３０３において、合成枚数算出部１２０３は、２次元動きベクトルおよび３次元動きベクトルに基づき、合成枚数を算出する。合成枚数の算出処理の一例について、図１７のフローチャートを参照して説明する。
Ｓ１７０１において、合成枚数算出部１２０３は、２次元動きベクトルに基づき、入力画像データの画素毎に２次元動きベクトル合成枚数を算出する。この算出式を式（９）に示す。
ＣＭＰＮＵＭ＿２Ｄ＝ＲＮＤ｛Ｖｌｅｎ＿２Ｄ  ×  Ｇａｉｎ＿２Ｄ｝＋１・・・式（９）
式（９）において、ＣＭＰＮＵＭ＿２Ｄは２次元動きベクトル合成枚数を示す。Ｖｌｅｎ＿２Ｄは、２次元動きベクトルの長さを示す。Ｇａｉｎ＿２Ｄは、所定の定数ゲインを示す。ＲＮＤは、整数への四捨五入演算処理を示す。２次元動きベクトル合成枚数ＣＭＰＮＵＭ＿２Ｄは、式（９）のように、２次元動きベクトルの長さＶｌｅｎ＿２Ｄに所定の定数ゲインＧａｉｎ＿２Ｄを乗算した値を四捨五入することにより算出される。ゲイン定数Ｇａｉｎ＿２Ｄの値は、動きブレ効果が適度に付与できるように経験則に基づき予め決められる。この２次元動きベクトル合成枚数の入力画像データを合成することにより、画像の奥行き方向以外の方向に移動している移動体に対して、適度に動きブレ効果を付与することができる。尚、合成枚数が１枚の場合は、合成しないことを示す。また、Ｓ１７０１は、第１の実施形態で説明した図７のＳ７０１と同等の処理である。
【００７１】
次に、Ｓ１７０２において、合成枚数算出部１２０３は、２次元動きベクトルの長さに対する３次元動きベクトルの長さの比を、入力画像データの画素毎に算出する。この算出式を式（１０）に示す。
Ｖｌｅｎ＿ｒａｔｉｏ  ＝  Ｖｌｅｎ＿３Ｄ  ／  Ｖｌｅｎ＿２Ｄ  ・・・式（１０）
式（１０）において、Ｖｌｅｎ＿ｒａｔｉｏは、２次元動きベクトルの長さに対する３次元動きベクトルの長さの比を示す。Ｖｌｅｎ＿３Ｄは、３次元動きベクトルの長さを示す。移動体が画像の奥行き方向に移動している場合、２次元動きベクトルの長さに対する３次元動きベクトルの長さの比Ｖｌｅｎ＿ｒａｔｉｏは、１より大きい値をとる。一方、移動体が画像の奥行き方向に移動していない場合、２次元動きベクトルの長さに対する３次元動きベクトルの長さの比Ｖｌｅｎ＿ｒａｔｉｏは１となる。
【００７２】
次に、Ｓ１７０３において、合成枚数算出部１２０３は、式（１１）に示すように、３次元動きベクトルに基づき、３次元動きベクトル合成枚数を、入力画像データの画素毎に算出する。
ＣＭＰＮＵＭ＿３Ｄ＝ＲＮＤ｛ＣＭＰＮＵＭ＿２Ｄ×Ｖｌｅｎ＿ｒａｔｉｏ｝・・・式（１１）
【００７３】
式（１１）において、ＣＭＰＮＵＭ＿３Ｄは、３次元動きベクトル合成枚数を示す。ＲＮＤは、整数への四捨五入演算処理を示す。移動体が画像の奥行き方向に移動している場合、２元動きベクトルの長さに対する３次元動きベクトルの長さの比Ｖｌｅｎ＿ｒａｔｉｏは、１を上回る値をとる。このため、３次元動きベクトル合成枚数は、２次元動きベクトル合成枚数よりも多くなる。また、移動体が画像の奥行き方向に移動していない場合、２元動きベクトルの長さに対する３次元動きベクトルの長さの比Ｖｌｅｎ＿ｒａｔｉｏは１となる。このため、３次元動きベクトル合成枚数は、２次元動きベクトル合成枚数と同じ枚数となる。つまり、移動体が画像の奥行き方向に移動している場合には、移動体が画像の奥行き方向に移動していない場合に比べ、合成枚数を多く設定することができ、画像に対し動きブレ効果を強くかけることが可能となる。
【００７４】
次に、Ｓ１７０４において、合成枚数算出部１２０３は、入力画像データの全画素について３次元動きベクトル合成枚数ＣＭＰＮＵＭ＿３Ｄを算出すると、当該３次元動きベクトル合成枚数ＣＭＰＮＵＭ＿３Ｄを、当該全画素分で平均化する。合成枚数算出部１２０３は、当該平均化した枚数を、最終合成枚数とする。このとき、合成枚数算出部１２０３は、入力画像データの全画素のうち、３次元動きベクトル合成枚数ＣＭＰＮＵＭ＿３Ｄが１枚の画素を除外した画素の３次元動きベクトル合成枚数ＣＭＰＮＵＭ＿３Ｄの平均化を行う。動きブレ効果を付与する移動体の領域のみに限定してブレの強度を算出するためである。尚、平均化は、例えば、算術平均値の算出により実現される。
以上、図１３のＳ１３０３における合成枚数の算出方法の一例について説明した。
【００７５】
図１３の説明に戻り、Ｓ１３０４において、画像合成部１２０４は、第Ｍフレームの入力画像データに対し、当該第Ｍフレームの入力画像データの前後のフレームの入力画像データを合成することにより動きブレ付与画像を生成する。合成する前後のフレームの枚数は、図１３のＳ１３０３（図１７のＳ１７０４）において合成枚数算出部１２０３が算出した最終合成枚数とする。入力画像データの合成は、例えば、互いに対応する画素の画素値の移動平均をとることにより実現される。尚、第Ｍフレームの入力画像データの前のフレームの数と、第Ｍフレームの入力画像データの後のフレームの数は、同じであっても異なっていてもよい。
【００７６】
図１３のＳ１３０３の合成枚数の算出およびＳ１３０４の画像合成処理は、記録部１０８に記録されている一つの動画ファイルのフレーム毎に行われる。即ち、以上の方法により、動画を構成する全てのフレームのそれぞれについて、当該フレームに対して算出した合成枚数に基づき画像合成を行い、動きブレ付与画像を生成する。
【００７７】
以上のように本実施形態では、動きブレ付与部１２００は、入力画像データの２次元動きベクトルと、撮像装置１００と入力画像データに存在する被写体との距離情報とを導出し、これらに基づいて３次元動きベクトルを導出する。動きブレ付与部１２００は、２次元動きベクトルに基づき、２次元動きベクトル合成枚数を入力画像データの画素毎に導出すると共に、２次元動きベクトルの長さに対する３次元動きベクトルの長さの比を導出する。動きブレ付与部１２００は、２次元動きベクトル合成枚数と２次元動きベクトルの長さに対する３次元動きベクトルの長さの比とに基づいて３次元動きベクトル合成枚数を入力画像データの画素毎に導出する。動きブレ付与部１２００は、３次元動きベクトル合成枚数を平均化して最終補正枚数を導出する。動きブレ付与部１２００は、入力画像データの前後のフレームであって、最終補正枚数のフレームを当該入力画像データと合成する。従って、少なくとも画像の奥行き方向を含む移動体の移動方向と移動量に基づき、動きブレ強度を決定することにより、画像の奥行き方向に移動する移動体に対する動きブレ効果を強めることができる。
【００７８】
尚、本実施形態では、時間的に互いに隣接する３つの入力画像データの２次元動きベクトルおよび３次元動きベクトルを算出する例について説明をしたが、２次元動きベクトルおよび３次元動きベクトルの算出方法はこれに限ったものではない。例えば、２フレーム以上離れた２つの入力画像データの２次元動きベクトルおよび３次元動きベクトルを算出してもよい。移動量が小さく、時間的に互いに隣接する２つの入力画像データでは小数画素精度の移動量しかない移動体であっても、２フレーム以上離れた入力画像データでは、移動量が大きくなることが期待できる。このため、以上のようにすれば、より正確に動きベクトルを算出することが可能となる。
【００７９】
また、本実施形態では、合成枚数算出部１２０３は、画素毎に算出した３次元動きベクトル合成枚数を入力画像データ（画面）の全画素分で平均化することにより、最終合成枚数を算出する例について説明した。しかしながら、合成枚数の算出方法はこれに限ったものではない。例えば、画素毎に算出した３次元動きベクトル合成枚数を最終合成枚数としてもよい。これにより、例えば、画像の奥行き方向に移動する移動体と、画像の左右または上下方向に移動する移動体とが画像に混在する場合、画素毎に合成枚数を変えることできる。このため、それぞれの移動体に最適な動きブレ効果を付与することが可能となる。
【００８０】
また、本実施形態では、画像合成部１２０４は、第Ｍフレームの入力画像データの前後のフレームを合成することにより動きブレ付与画像を生成する例について説明したが、合成するフレームはこれに限ったものではない。画像合成部１２０４は、例えば、第Ｍフレームの入力画像データの前のフレームのみを第Ｍフレームの入力画像データと合成してもよいし、第Ｍフレームの入力画像データの後のフレームのみを第Ｍフレームの入力画像データと合成してもよい。第Ｍフレームの前のフレームまたは後のフレームの枚数は、図１３のＳ１３０３において合成枚数算出部１２０３が算出した最終合成枚数とする。
【００８１】
（第５の実施形態）
次に、第５の実施形態を説明する。第４の実施形態では、２次元動きベクトル、３次元動きベクトル、および距離情報に基づき合成枚数を導出し、当該合成枚数の画像を合成することにより動きブレ付与画像を生成する場合を例に挙げて説明した。これに対し、本実施形態では、２次元動きベクトル、３次元動きベクトル、および距離情報に基づき、空間フィルタ処理を行うことにより動きブレ付与画像を生成する。このように本実施形態と第３の実施形態では、主として、図１２における動きブレ付与部１２００の構成および動作の一部が異なる。また、本実施形態でも第２の実施形態で説明した空間フィルタ処理を用いる。従って、本実施形態の説明において、第１、第２、第４の実施形態と同一の部分については、図１〜図１０、図１２〜図１７に付した符号と同一の符号を付す等して詳細な説明を省略する。
【００８２】
本実施形態の画像処理部１０７の動作の一例について、詳細に説明を行う。前述したように本実施形態では、２次元動きベクトル、３次元動きベクトル、および距離情報に基づき、空間フィルタ処理を行うことにより、画像に対して動きによるブレを付与した画像を生成する例について説明する。
【００８３】
まず、画像処理部１０７が具備する動きブレ付与部１８００の構成の一例について、図１８を参照して説明する。動きブレ付与部１８００は、ＲＡＭ１０３に記憶されている画像データに対して空間フィルタ処理を行い、動きブレ付与画像を生成する。尚、本実施形態では、画像に付与するブレの強度は、空間フィルタのタップ数を変更することにより調整する。
【００８４】
図１８は、動きブレ付与部１８００の構成の一例を示すブロック図である。動きブレ付与部１８００は、２次元動きベクトル算出部１２０１、３次元動きベクトル算出部１２０２、空間フィルタタップ数算出部１８０１、空間フィルタ方向算出部１８０２、および空間フィルタ処理部１８０３を有する。このような動きブレ付与部１８００の処理の一例について、図１９のフローチャートを参照して説明する。
【００８５】
図１９のＳ１３０１における２次元動きベクトルの算出処理は、第４の実施形態で説明した図１３のＳ１３０１における２次元動きベクトルの算出処理と同じである。また、図１９のＳ１３０２における３次元動きベクトルの算出処理は、第４の実施形態で説明した図１３のＳ１３０２における３次元動きベクトルの算出処理と同じである。
【００８６】
次に、Ｓ１９０１において、空間フィルタタップ数算出部１８０１は、２次元動きベクトルおよび３次元動きベクトルに基づき、空間フィルタタップ数を算出する。空間フィルタタップ数の算出処理の一例について、図２０のフローチャートを参照して説明する。
Ｓ２００１において、空間フィルタタップ数算出部１８０１は、２次元動きベクトルに基づき、２次元動きベクトル空間フィルタタップ数を、入力画像データの画素毎に算出する。この算出式を式（１２）に示す。
ＴＡＰＮＵＭ＿２Ｄ＝ＲＮＤ｛Ｖｌｅｎ＿２Ｄ×Ｇａｉｎ＿２Ｄ｝＋１・・・式（１２）
式（１２）において、ＴＡＰＮＵＭ＿２Ｄは、２次元動きベクトル空間フィルタタップ数を示す。Ｖｌｅｎ＿２Ｄは、２次元動きベクトルの長さを示す。Ｇａｉｎ＿２Ｄは、所定の定数ゲインを示す。ＲＮＤは、整数への四捨五入演算処理を示す。２次元動きベクトル空間フィルタタップ数ＴＡＰＮＵＭ＿２Ｄは、式（１２）のように、２次元動きベクトルの長さＶｌｅｎ＿２Ｄに所定の定数ゲインＧａｉｎ＿２Ｄを乗算した値を四捨五入することにより算出される。定数ゲインＧａｉｎ＿２Ｄの値は、動きブレ効果が適度に付与できるように経験則に基づき予め決められる。この２次元動きベクトル空間フィルタタップ数で入力画像データに対して空間フィルタ処理を行うことにより、画像の奥行き方向以外の方向に移動している移動体に対して、適度に動きブレ効果を付与することができる。尚、タップ数が１の場合は、空間フィルタ処理を行わないことを示す。また、Ｓ２００１は、第２の実施形態で説明した図１０のＳ１００１と同等の処理である。
【００８７】
次に、Ｓ１７０２において、空間フィルタタップ数算出部１８０１は、第４の実施形態で説明した図１７のＳ１７０２と同じ処理を行う。即ち、空間フィルタタップ数算出部１８０１は、２次元動きベクトルの長さに対する３次元動きベクトルの長さの比Ｖｌｅｎ＿ｒａｔｉｏを、入力画像データの画素毎に算出する（式（１０）を参照）。
次に、Ｓ２００２において、空間フィルタタップ数算出部１８０１は、式（１３）に示すように、３次元動きベクトル空間フィルタタップ数を、入力画像データの画素毎に算出する。
ＴＡＰＮＵＭ＿３Ｄ＝ＲＮＤ｛ＴＡＰＮＵＭ＿２Ｄ×Ｖｌｅｎ＿ｒａｔｉｏ｝・・・式（１３）
【００８８】
式（１３）において、ＴＡＰＮＵＭ＿３Ｄは、３次元動きベクトル空間フィルタタップ数を示す。ＲＮＤは、整数への四捨五入演算処理を示す。移動体が画像の奥行き方向に移動している場合、２元動きベクトルの長さに対する３次元動きベクトルの長さの比Ｖｌｅｎ＿ｒａｔｉｏは、１を上回る値をとる。このため、３次元動きベクトル空間フィルタタップ数は、２次元動きベクトル空間フィルタタップ数よりも多くなる。また、移動体が画像の奥行き方向に移動していない場合、２元動きベクトルの長さに対する３次元動きベクトルの長さの比Ｖｌｅｎ＿ｒａｔｉｏは１となる。このため、３次元動きベクトル空間フィルタタップ数は、２次元動きベクトル空間フィルタタップ数と同じ数となる。つまり、移動体が画像の奥行き方向に移動している場合には、移動体が画像の奥行き方向に移動していない場合に比べ、空間フィルタタップ数を多く設定することができ、画像に対し動きブレ効果を強くかけることが可能となる。
【００８９】
次に、Ｓ２００３において、空間フィルタタップ数算出部１８０１は、入力画像データの全画素について、３次元動きベクトル空間フィルタタップ数ＴＡＰＮＵＭ＿３Ｄを算出すると、以下の処理を行う。即ち、空間フィルタタップ数算出部１８０１は、当該３次元動きベクトル空間フィルタタップ数ＴＡＰＮＵＭ＿３Ｄを当該全画素分で平均化した値を、最終空間フィルタタップ数として算出する。このとき、空間フィルタタップ数算出部１８０１は、入力画像データの全画素のうち、３次元動きベクトル空間フィルタタップ数ＴＡＰＮＵＭ＿３Ｄが１の画素を除外した画素の３次元動きベクトル空間フィルタタップ数ＴＡＰＮＵＭ＿３Ｄの平均化を行う。ブレを付与する移動体の領域のみに限定してブレの強度を算出するためである。尚、平均化は、例えば、算術平均値の算出により実現される。
以上、図１９のＳ１９０１における空間フィルタタップ数の算出方法の一例について説明した。
【００９０】
図１９の説明に戻り、Ｓ１９０２において、空間フィルタ方向算出部１８０２は、以下の処理を行う。即ち、空間フィルタ方向算出部１８０２は、入力画像データの全画素のうち、３次元動きベクトル空間フィルタタップ数ＴＡＰＮＵＭ＿３Ｄが１の画素を除外した画素における２次元動きベクトルの方向を、当該全画素分で平均化する。空間フィルタ方向算出部１８０２は、この平均化した２次元動きベクトルの方向を空間フィルタ方向とする。ブレを付与する移動体の領域のみに限定してブレの方向を算出するためである。尚、平均化は、例えば、動きベクトルの各成分の算術平均値の算出により実現される。
【００９１】
次に、Ｓ１９０３において、空間フィルタ処理部１８０３は、第Ｍフレームの入力画像データに対して空間的な平均フィルタ処理を行うことにより動きブレ付与画像を生成する。空間的な平均フィルタ処理を行う際のタップ数は、図１９のＳ１９０１（図２０のＳ２００３）において空間フィルタタップ数算出部１８０１が算出した最終空間フィルタタップ数とする。また、空間的な平均フィルタ処理を行う際のフィルタ方向は、図１９のＳ１９０２において空間フィルタ方向算出部１８０２が算出した空間フィルタ方向とする。
【００９２】
図１９のＳ１９０１の空間フィルタタップ数の算出、Ｓ１９０２の空間フィルタ方向の算出、およびＳ１９０３の空間フィルタ処理は、記録部１０８に記録されている一つの動画ファイルのフレーム毎に行われる。即ち、以上の方法により、動画を構成する全てのフレームのそれぞれについて、当該フレームに対して算出した空間フィルタタップ数および空間フィルタ方向に基づき空間フィルタ処理を行い、動きブレ付与画像を生成する。
【００９３】
以上のように本実施形態では、動きブレ付与部１８００は、２次元動きベクトルに基づき、２次元動きベクトル空間フィルタタップ数を入力画像データの画素毎に導出する。動きブレ付与部１８００は、２次元動きベクトルの長さに対する３次元動きベクトルの長さの比と、２次元動きベクトル空間フィルタタップ数とに基づいて、３次元動きベクトル空間フィルタタップ数を入力画像データの画素毎に導出する。動きブレ付与部１８００は、３次元動きベクトル空間フィルタタップ数を平均化して最終空間フィルタタップ数を導出する。また、動きブレ付与部１８００は、２次元動きベクトルを平均化した方向を空間フィルタ方向として導出する。動きブレ付与部１８００は、入力画像データの注目画素に対し、最終空間フィルタタップ数のタップ数の空間フィルタを設定し、空間フィルタにおける空間フィルタ方向の画素の画素値と注目画素の画素値とを用いて、注目画素の画素値を導出する。従って、第４の実施形態で説明したのと同様に、少なくとも画像の奥行き方向を含む移動体の移動方向と移動量に基づき、動きブレ強度を決定することにより、画像の奥行き方向に移動する移動体に対する動きブレ効果を強めることができる。
【００９４】
尚、本実施形態では、空間フィルタタップ数算出部１８０１は、画素毎に算出した３次元動きベクトル空間フィルタタップ数を入力画像データ（画面）の全画素分で平均化することにより最終空間フィルタタップ数を算出する例について説明した。しかしながら、空間フィルタタップ数の算出方法はこれに限ったものではない。また、空間フィルタ方向算出部１８０２は、２次元動きベクトルの方向を入力画像データ（画面）の全画素分で平均化することにより空間フィルタ方向を算出する例について説明したが、空間フィルタ方向の算出方法はこれに限ったものではない。例えば、画素毎に算出した３次元動きベクトル空間フィルタタップ数を当該画素に対する最終空間フィルタタップ数としてもよい。また、画素毎に算出した２次元動きベクトルの方向を、当該画素に対する空間フィルタ方向としてもよい。これにより、画像の奥行き方向に移動する移動体と、画像の左右または上下方向に移動する移動体とが画像に混在する場合、画素毎に空間フィルタタップ数および空間フィルタ方向を変えることできる。このため、それぞれの移動体に最適な動きブレ効果を付与することが可能となる。
【００９５】
尚、前述した実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【００９６】
（その他の実施例）
本発明は、前述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００９７】
１００：撮像装置、１０７：画像処理部、２００、８００、１２００、１８００：動きブレ付与部
【図１】
2019114143.tif 000003
【図２】
2019114143.tif 000004
【図３】
2019114143.tif 000005
【図４】
2019114143.tif 000006
【図５】
2019114143.tif 000007
【図６】
2019114143.tif 000008
【図７】
2019114143.tif 000009
【図８】
2019114143.tif 000010
【図９】
2019114143.tif 000011
【図１０】
2019114143.tif 000012
【図１１】
2019114143.tif 000013
【図１２】
2019114143.tif 000014
【図１３】
2019114143.tif 000015
【図１４】
2019114143.tif 000016
【図１５】
2019114143.tif 000017
【図１６】
2019114143.tif 000018
【図１７】
2019114143.tif 000019
【図１８】
2019114143.tif 000020
【図１９】
2019114143.tif 000021
【図２０】
2019114143.tif 000022