(57)【要約】【課題】動画像を構成する複数のフレーム画像を合成する際に、簡素な構成で動画ブレ補正を行ってブレの少ない動画像を生成する。【解決手段】時系列に撮影された複数の画像のうちの一つの画像に対する他の画像の動きを取得し、前記動きの振幅の中の最大振幅よりも小さい基準移動量だけ前記一つの画像から移動した位置を前記複数の画像の合成を行なうフレーム位置として設定する位置設定部（１０５）と、前記複数の画像を前記複数の画像の合成を行うフレーム位置に移動し、前記複数の画像の対応し合う画素の画素値を合成して、前記合成画像を生成する画像合成部（１０７）と、を備える画像処理装置。【選択図】図１
2013157704.tif 000002
【特許請求の範囲】
【請求項１】
時系列に撮影された複数の画像のうちの一つの画像に対する他の画像の動きを取得し、前記動きの振幅の中の最大振幅よりも小さい基準移動量だけ前記一つの画像から移動した位置を前記複数の画像の合成を行なうフレーム位置として設定する位置設定部と、
前記複数の画像を前記複数の画像の合成を行うフレーム位置に移動し、前記複数の画像の対応し合う画素の画素値を合成して、合成画像を生成する画像合成部と、
を備えることを特徴とする画像処理装置。
【請求項２】
前記位置設定部は、前記複数の画像の中で、最も早い時刻に撮影された画像から最も遅い時刻に撮影された画像までの移動を示す移動ベクトルに係数αを乗算することによって、前記基準移動量を計算することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記位置設定部は、前記係数αを０．５に設定することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記位置設定部は、前記複数の画像の同一方向の移動が継続するほど係数αを１．０に近づけることを特徴とする請求項２に記載の画像処理装置。
【請求項５】
前記位置設定部は、前記複数の画像間の動きの振幅が所定の閾値よりも小さい場合に前記係数αを０．５に設定し、前記複数の画像の同一方向の移動が継続するほど係数αを１．０に近づけることを特徴とする請求項２に記載の画像処理装置。
【請求項６】
前記位置設定部は、前記複数の画像のうち基準となるフレーム画像に対して他の画像の移動を示す移動ベクトルを平均することによって、前記基準移動量を計算することを特徴とする請求項１に記載の画像処理装置。
【請求項７】
請求項１から請求項６のいずれか一つに記載の画像処理装置を備えることを特徴とする電子機器。
【請求項８】
時系列に撮影された複数の画像のうちの一つの画像に対する他の画像の動きを取得する取得ステップと、
前記動きの振幅の中の最大振幅よりも小さい基準移動量だけ前記一つの画像から移動した位置を前記複数の画像の合成を行なうフレーム位置として設定する位置設定ステップと、
前記複数の画像を前記複数の画像の合成を行うフレーム位置に移動し、前記複数の画像の対応し合う画素の画素値を合成して、合成画像を生成する画像合成ステップと、
を含むことを特徴とする画像処理方法。
【請求項９】
時系列に撮影された複数の画像のうちの一つの画像に対する他の画像の動きを取得する取得手順と、
前記動きの振幅の中の最大振幅よりも小さい基準移動量だけ前記一つの画像から移動した位置を前記複数の画像の合成を行なうフレーム位置として設定する位置設定手順と、
前記複数の画像を前記複数の画像の合成を行うフレーム位置に移動し、前記複数の画像の対応し合う画素の画素値を合成して、合成画像を生成する画像合成手順と、
をコンピュータに実行させることを特徴とする画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法、画像処理プログラム、及び、電子機器に関する。
【背景技術】
【０００２】
近年、撮像デバイスおよび動画圧縮技術の急速な進歩により、デジタルビデオカメラのみならずデジタルスチルカメラでも、動画撮影が可能になっている。動画撮影可能なデジタルカメラおよびデジタルビデオカメラにおいて、一般的にフレームレートＦ（fps）で動画を撮影する場合、各フレームの画像を１／Ｆ（秒）以上の露光時間を取ることができない。
【０００３】
従って、周囲環境が暗い状況で撮影する場合に、適正な露光時間に満たない微弱な画像信号に大きなゲインを掛けて出力画像を生成することになるが、この場合副次的にノイズが増幅されＳ／Ｎ比が劣化する問題が生じる。また、フレームレートＦを低下させることで露光時間を長くすることも可能であるが、この場合、動きが離散的になり動画像の質が著しく低下する。
【０００４】
特許文献１において、Ｓ／Ｎ比を向上させるため、フレーム画像をｎ枚合成することで、見かけ上露光時間ｎ／Ｆ（秒）で長露光のフレーム画像が得られる。また、合成枚数ｎを適宜変更することによりフレームレートとは無関係に露光時間を指定でき動画表現の幅が広がる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−１８６５９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、特許文献１において、フレーム画像の合成の際に、常に最新のフレームを基準としてフレーム画像が切り出されて位置合せが行われる。従って、動画像は、動画撮影中の細かい動き（手ブレなど）にも過敏に追従してブレが生じて、動きが滑らかでなくなり品質が低下する。これを抑制するためには、別途動画ブレ補正が必要になる。
【０００７】
本発明の目的は、Ｓ／Ｎ比の向上や長露光の動画像の取得などのために動画像を構成する複数のフレーム画像を合成する際に、簡素な構成で動画ブレ補正を行ってブレの少ない動画像を生成することである。
【課題を解決するための手段】
【０００８】
本発明のある態様に係る画像処理装置は、時系列に撮影された複数の画像を合成して合成画像を生成する画像処理装置であって、前記複数の画像のうちの一つの画像に対する他の画像の動きを取得し、前記動きの振幅の中の最大振幅よりも小さい基準移動量だけ前記一つの画像から移動した位置を前記複数の画像の合成を行なうフレーム位置として設定する位置設定部と、前記複数の画像を前記複数の画像の合成を行うフレーム位置に移動し、前記複数の画像の対応し合う画素の画素値を合成して、前記合成画像を生成する画像合成部と、を備える。
【０００９】
本発明の別の態様に係る画像処理方法は、時系列に撮影された複数の画像を合成して合成画像を生成する画像処理方法であって、前記複数の画像のうちの一つの画像に対する他の画像の動きを取得する取得ステップと、前記動きの振幅の中の最大振幅よりも小さい基準移動量だけ前記一つの画像から移動した位置を前記複数の画像の合成を行なうフレーム位置として設定する位置設定ステップと、前記複数の画像を前記複数の画像の合成を行うフレーム位置に移動し、前記複数の画像の対応し合う画素の画素値を合成して、前記合成画像を生成する画像合成ステップと、を含む。
【００１０】
本発明のさらに別の態様に係る画像処理プログラムは、時系列に撮影された複数の画像を合成して合成画像を生成する画像処理プログラムであって、前記複数の画像のうちの一つの画像に対する他の画像の動きを取得する取得手順と、前記動きの振幅の中の最大振幅よりも小さい基準移動量だけ前記一つの画像から移動した位置を前記複数の画像の合成を行なうフレーム位置として設定する位置設定手順と、前記複数の画像を前記複数の画像の合成を行うフレーム位置に移動し、前記複数の画像の対応し合う画素の画素値を合成して、前記合成画像を生成する画像合成手順と、をコンピュータに実行させる。
【発明の効果】
【００１１】
本発明によると、動画像を構成する複数のフレーム画像を合成する際に、簡素な構成で動画ブレ補正を行ってブレの少ない動画像を生成できる。
【図面の簡単な説明】
【００１２】
【図１】第一実施形態に係る画像処理装置を示すブロック図である。
【図２】（ａ）互いに位置ずれした複数のフレーム画像と、合成画像のフレーム位置（破線）を示す図である。（ｂ）ゲインマップの一例を示す図である。
【図３】（ａ）画像ブレと動きベクトルの一例を示す図である。（ｂ）時間的に隣接して撮影されたフレーム画像の間の動きベクトルを示すテーブルである。
【図４】（ａ）第一実施形態における合成画像の基準移動量（フレーム位置）の設定方法を示す図である。（ｂ）画像ブレと基準移動量の一例を示す図である。（ｃ）画像ブレと基準移動量の他の例を示す図である。
【図５】第一実施形態に係る画像処理を示すフローチャートである。
【図６】第二実施形態に係る画像処理装置を示すブロック図である。
【図７】第二実施形態に係る画像処理を示すフローチャートである。
【図８】（ａ）第三実施形態における合成画像の基準移動量（フレーム位置）の設定方法を示す図である。（ｂ）第三実施形態における合成画像の基準移動量（フレーム位置）の設定方法を示す他の図である。
【発明を実施するための形態】
【００１３】
［第一実施形態］
図１は、第一実施形態に係る画像処理装置１００のブロック構成図を示す。本実施形態では、画像処理装置１００は、動画像を撮影し記録できる電子機器に搭載される。電子機器は、例えば、デジタルスチルカメラ、デジタルビデオカメラ、監視カメラ、およびデジタルカメラ付きモバイル端末である。
【００１４】
画像処理装置１００は、撮像素子１０１、Ａ／Ｄ変換部１０２（Ａ／Ｄ変換回路）、前処理部１０３、動き検出部１０４、位置設定部１０５、カメラ画像処理部１０６、画像合成部１０７、後処理部１０８、液晶モニタ／ファインダ部１０９、ＣＰＵ（中央演算処理装置）１１０、ＤＲＡＭ（ダイナミック・ランダム・アクセス・メモリ）１１１、フラッシュメモリ１１２、圧縮記録部１１３、データバス１１４を備える。前処理部１０３、動き検出部１０４、位置設定部１０５、カメラ画像処理部１０６、画像合成部１０７、後処理部１０８のそれぞれ（又はこれら全体）は、ＡＳＩＣ、ＦＰＧＡなどの論理回路から構成されてよい。或いは、これらの各部（又はこれら全体）は、データを格納するメモリ、演算プログラムを格納するメモリ、この演算プログラムを実行するＣＰＵ／ＤＳＰ（中央演算処理装置／デジタルシグナルプロセッサ）等から構成されてもよい。
【００１５】
撮像素子１０１は、図示しない光学系により受光面上に結像した光学像を光電変換により電気信号に変換するもので、例えば、ＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）撮像素子や、ＣＭＯＳ  （Ｃｏｍｐｌｅｍｅｎｔ  Ｍｅｔａｌ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）  撮像素子である。Ａ／Ｄ変換部１０２は、撮像素子１０１により取得したアナログ電気信号からなる画像信号をデジタル信号に変換する。
【００１６】
前処理部１０３は、Ａ／Ｄ変換部１０２から入力される画像信号に対して、例えば、光学歪補正、シェーディング補正、画素欠陥補正、オプティカルブラック補正など、光学系もしくは撮像系の特性を補正する各種の処理を行う。前処理部１０３で得られた画像データはデータバス１１４を介してＤＲＡＭ１１１に格納される。ＤＲＡＭ１１１は、主に画像処理装置１００のフレームメモリとして使用され、少なくとも画像合成部１０７で合成される対象の時系列の複数のフレーム画像を記憶できる。
【００１７】
動き検出部（動き検出手段）１０４は、データバス１１４を介して入力される二枚の画像を比較し、二枚の画像間のグローバルな動きを検出する。ここでグローバルな動きとは、一方の画像全体を代表する位置と、他方の画像全体を代表する位置との間での相対的な差分を意味する。本実施形態では、動き検出部１０４は、最新のフレーム画像と、その直前に撮影されたフレーム画像との動きを検出する。検出された動きは、画像全体の動きを示す２次元のグローバル動きベクトルとして、ＤＲＡＭ１１１に格納される。動き検出部１０４は、例えばブロックマッチング法を使用して、動きベクトルを検出できる。また、動き検出部１０４は、角速度センサを使用して画像処理装置１００の物理的な動きを直接測定し、画像上の動きベクトルデータに変換してもよい。その場合、動き検出部１０４へ二枚の画像が入力される必要はない。
【００１８】
位置設定部（位置設定手段）１０５は、合成画像のフレーミングのために、画像合成の基準となるフレームの位置（図２（ａ）の破線に対応）を取得可能な被写体像の中に設定する。このフレーム位置は、時系列の複数のフレーム画像のうちの一つを基準となるフレーム画像の位置からの移動量である基準移動量 (ベクトル量：bvx[i],bvy[i])だけ動かした位置であり、図２（ａ）の破線で示すように合成画像のフレーム位置を規定する。即ち、このフレーム位置にあるフレーム内で、合成の対象となる複数のフレーム画像が切り出されて合成されることになる。位置設定部１０５は、動き検出部１０４で検出されたグローバル動きベクトルをＤＲＡＭ１１１から取得して、グローバル動きベクトルに基づいて基準移動量を設定する。なお、合成画像の基準移動量（即ちフレーム位置）の設定方法は、後で詳細に説明される。
【００１９】
カメラ画像処理部１０６は、前処理部１０３の出力であるＲａｗデータを画像化し、例えば、デモザイク処理、階調補正処理、色変換処理を行える。
【００２０】
画像合成部（画像合成手段）１０７は、位置設定部１０５において設定されたフレーム位置に関して、合成の対象となる複数の画像の合成を行う。画像合成部１０７は、基準となるフレーム画像の位置からの移動量である基準移動量 (bvx[i],bvy[i])だけ移動したフレーム位置において画像の合成を行って、合成画像I'[i]を生成する。ｎ枚（ｎ≧２）のフレーム画像を合成した合成画像I'[i]の画素値I'[i](x,y)は、簡単には以下の数式（１）で表される。なお、ここでは合成対象のフレーム画像I[i-(n-1)]からI[i]のうち、時間的に最も早い時刻に撮影されたフレーム画像I[i-(n-1)]の位置を基準に座標軸を設定し、フレーム画像I[i-(n-1)]の左上頂点の座標を(0,0)とする。
【００２１】
【数１】
2013157704.tif 000003
【００２２】
ここで、任意のフレーム番号jに対応するフレーム画像I[j]の画素値は、画像上の座標(x,y)の関数としてI[j](x,y)と表される。(mvx[k],mvy[k])は、画像I[k]とI[k-1]との間の動きベクトルであり、(bvx[i],bvy[i])は、位置設定部１０５において設定されたフレーム画像I[i-(n-1)]の位置からの基準移動量である。なお、(mvx[i-(n-1)],mvy[i-(n-1)])は、(0,0)に設定される。
【００２３】
数式（１）に従って、画像合成部１０７は、画像I[j]と画像I[i-(n-1)]の間の動きベクトル（Σmvx[k]，Σmvy[k]）を用いて画像I[j]を位置合せする。さらに、画像合成部１０７は、基準となる画像I[i-(n-1)]に対して基準移動量(bvx[i],bvy[i])だけ移動させたフレーム位置において、ｎ枚の画像I[i-(n-1)]、I[i-(n-2)]、・・・、I[i-1]、I[i]の対応し合う画素の画素値を加算して、合成画像I'[i]を生成する。なお、複数ｎ枚の画像のうち、画像I[i-(n-1)] は、最も早い時刻に撮影された始端画像であり、画像I[i]は、最も遅い時刻に撮影された終端画像である。
【００２４】
なお、合成対象となるフレーム画像の動きによって、合成画像のフレーム内で合成枚数が変動する。図２（ａ）は、破線で示した合成画像の画角内での画像の合成枚数の変動を示している。画像合成部１０７は、図２（ｂ）に示すように、合成画像の座標系(x,y)において、任意の座標で合成できる画像の数を示すゲインマップG(x,y)を生成してもよい。なお、図２（ｂ）は後述の図４（ｂ）の場合を示す。数式（１）にG(x,y)を掛けることで、数式（２）のように、明度を規格化した合成画像の画素値I'[i](x,y)が得られてもよい。
【００２５】
【数２】
2013157704.tif 000004
【００２６】
なお、数式（２）のように合成画像を求めると、合成画像の端部付近のＳ／Ｎ比が劣化することになる。そこで、通常の撮像素子は、出力の画像サイズに対応する画素数に対して一定割合の余剰画素を有しているので、余剰画素の範囲に収まるブレであれば、数式（１）が使用できる。また、画像合成部１０７は、予め想定する最大ブレ量を決めておき、ブレ補正時において、最大ブレ量に応じて通常時の画像より合成画像のサイズ（フレームのサイズ）を小さくすることによって、数式（１）が使用できる。
【００２７】
後処理部１０８は、主に、液晶モニタ/ファインダ部１０９とのインターフェースであり、例えば、液晶モニタ/ファインダ部１０９に出力するフレーム画像のリサイズや、液晶モニタ/ファインダ部１０９の表示デバイスの特性に合わせた階調変換処理を行う。
【００２８】
また、圧縮記録部１１３は、撮影した画像または合成画像をエンコードして圧縮する。フラッシュメモリ１１２は、圧縮記録部１１３で圧縮された画像からなる動画像データを記録できる。
【００２９】
図３（ａ）（ｂ）と図４（ａ）−（ｃ）を参照して、位置設定部１０５の実行する合成画像のフレーム位置の設定処理（計算処理）を詳細に説明する。ここでは、時系列のフレーム画像としてI[0]〜I[4]が前処理部１０３から入力され、画像合成部１０７が４枚の画像を合成する例を示す。
【００３０】
図３（ａ）は、５枚の時系列画像I[0]〜I[4]の画角の動き（撮影範囲の動き）を示す図である。図３（ｂ）は、この動きを定量的に示す表である。ここで、ｉはフレーム画像の番号を示し、ベクトル(mvx[i],mvy[i])は、ｉ番目のフレーム画像I[i]とその直前のフレーム画像I[i-1]との間の画角の動きを示すグローバルベクトルである。ベクトル(mvx[i],mvy[i])は、動き検出部１０４で検出される。なお、 (mvx[0],mvy[0])は、便宜的に(0,0)とされている。
【００３１】
図４（ａ）は、図３（ａ）（ｂ）の場合において、位置設定部１０５が基準移動量ひいては合成画像のフレーム位置をどのように設定（計算）するかを示す。図４（ａ）では、画像合成部１０７は、I[0]〜I[3]の４枚の画像を合成してI'[3]を生成し、I[1]〜I[4]の４枚の画像を合成してI'[4]を生成する。
【００３２】
位置設定部１０５は、合成画像I'[3]のフレーム位置（基準移動量）を求めるために、I[0]とI[3]との間のグローバルな移動（動き）ベクトル(gmvx[3],gmvy[3])を算出する。時間的に隣接するフレーム間のグローバルベクトル (mvx[i],mvy[i])は図３（ｂ）で示されているので、グローバルな移動ベクトル(gmvx[3],gmvy[3])は、i=0からi=3までの区間で(mvx[i],mvy[i])を累積加算して求められる。すなわち、図４（ｂ）に示すように、グローバルな移動ベクトル(gmvx[3],gmvy[3])は(5,3)となる（(gmvx[3],gmvy[3])= (5,3)）。例えば、位置設定部１０５は、合成画像I'[3]のフレーム位置を規定する基準移動量（bvx[3],bvy[3]）を、グローバルな移動ベクトル(gmvx[3],gmvy[3])に０．５の値を乗算したベクトル量 (2.5，1.5)に設定する。この基準移動量で定まるフレーム位置の中心は、画像I[0]からI[3]を一度に露光した場合の露光重心の位置とも言える。
【００３３】
同様に、位置設定部１０５は、合成画像I'[4] のフレーム位置（基準移動量）を求める。図４（ｃ）に示すように、I[1]とI[4]との間のグローバルな移動ベクトル(gmvx[4],gmvy[4])は、(6,-3)となる（(gmvx[4],gmvy[4])= (6,-3)）。位置設定部１０５は、合成画像I'[4]のフレーム位置を規定する基準移動量（bvx[4],bvy[4]）を、グローバルな移動ベクトル(gmvx[4],gmvy[4])に０．５の値を乗算したベクトル量 (3,-1.5)に設定する。
【００３４】
図４（ａ）に示されたI'[3]とI'[4]の間の軌跡のように、画像合成を行わない場合のI[0]からI[4]の間の動きと比較して、合成画像間の動き量が大幅に緩和されブレが効果的に抑制されている。I'[5]以降も同様の処理を継続することにより、動画撮影中のブレ（手ブレなど）を効果的に抑制できる。
【００３５】
また、上記の処理では、位置設定部１０５は、合成画像I'[i]のフレーム位置を規定する基準移動量(bvx[i],bvy[i])をグローバルな移動ベクトル(gmvx,gmvy)の中点、つまり(1/2)×(gmvx,gmvy)に設定する。しかし、位置設定部１０５は、この係数1/2を任意の係数αに置き換えて、基準移動量(bvx[i],bvy[i])をα×(gmvx,gmvy)に設定してもよい。
【００３６】
例えば、現フレームと、その前の数フレーム間において検出されたグローバル動きベクトルの相関が小さい場合に、位置設定部１０５は、αを０．５に設定し（α=0.5）、相関が大きい場合に、αを１．０に近い値に設定する（α≒1.0）。手ブレによる動きが支配的な場合にグローバル動きベクトルの相関が小さく、撮影者によるパン/チルト動作などのために画角全体が特定方向に動いている場合に相関は大きい。αが１．０の場合に、合成画像のフレーム位置は現フレームの位置と一致するため、合成画像からなる動画像は、動体追従性の高いファインダ画像になる。このため、αが１．０の場合に、ブレ補正の効果が完全に消失するが、画像処理装置１００を使用する撮影者のカメラワーク（撮影動作）に追従する動画像が得られる。
【００３７】
以上の位置設定部１０５の処理を一般化すると、始端画像I[i-(n-1)]から終端画像I[i] までの複数の画像の合成画像I'[i]に関して、合成画像のフレーム位置を決める基準移動量(bvx[i],bvy[i])は、以下の数式（３ａ）（３ｂ）で表される。
【００３８】
【数３】
2013157704.tif 000005
【００３９】
ここで、nは、合成される画像の枚数、(mvx[j],mvy[j])は、任意のフレーム番号jに対応する画像I[j]と画像I[j-1]との間の動きベクトルである。また、αの範囲は、0.5≦α≦1.0である。なお、画像I[i-(n-1)] に対する動きベクトル(mvx[i-(n-1)],mvy[i-(n-1)])は、(0,0)に設定される。終端画像が最大振幅を与える場合もそうでない場合も、数式（３ａ）（３ｂ）のように定めた基準移動量(bvx[i],bvy[i])の大きさは、合成対象の複数の画像のうちの基準となる始端画像I[i-(n-1)]に対する他のフレーム画像I[i-(n-2)]、・・・I[i-1]、I[i]の動きの最大振幅よりも小さくなる。ここで、最大振幅とは、基準となるフレーム画像の位置に対する他のフレーム画像の相対的な振幅（変位）のうち最も大きな振幅を表す。
【００４０】
なお、第一実施形態において、任意の二つのフレーム画像の間の動きベクトルは、隣接フレーム間の動きベクトルを累積加算することによって、（Σmvx，Σmvy）として求められる。例えば、位置設定部１０５は、合成の対象のｎ枚のフレーム画像の始端I[i-(n-1)]から終端I[i]までの移動ベクトル(gmvx,gmvy)を、隣接フレーム間の動きベクトルを累積加算することによって求める。しかし、動き検出部１０４が、マッチングにより二つのフレーム画像を比較して、任意の二つのフレーム画像の間の動きベクトルを直接的に求めることもできる。例えば、動き検出部１０４は、合成対象の複数の画像のうちの始端画像I[i-(n-1)]と終端画像I[i]とを比較して移動ベクトル(gmvx,gmvy)を直接的に求めてよい。この場合に、累積加算による誤差が軽減できる。しかし、合成枚数nが大きいときは、始端から終端までの動きも非常に大きくなり、より大きなマッチングの探索範囲が必要となるため、直接的に移動ベクトル(gmvx,gmvy)を求めることは、処理速度および実装の観点から適切でない。
【００４１】
図５は、第一実施形態による画像処理装置の処理を示すフローチャートである。なお、以下において、符号「Ｓ」はステップを意味する。フローチャート全体の手順は、ＣＰＵ１１０により制御される。なお、図５は、第一実施形態による画像処理装置の画像処理方法の一例である。また、図５に示す各ステップは、時系列に実行されてもよいし、並列的に処理されてもよい。
【００４２】
Ｓ１００において、撮影開始前の初期設定として、合成枚数ｎが設定される。入力フレーム番号ｉが初期化される。Ｓ１０１において、撮像素子１０１は、フレーム画像I[i]を撮影する。Ｓ１０２において、撮影したフレーム画像I[i]は、Ａ／Ｄ変換部１０２、前処理部１０３にて処理された後、ＤＲＡＭ１１１に格納される。そして、フレーム番号iは、インクリメントされる。
【００４３】
Ｓ１０３において、ＤＲＡＭ１１１に二枚以上の画像が格納されているか判断され（Ｓ１０３ａ）、判断が肯定の場合（i≧２の場合）に、動き検出部１０４は、画像I[i]と画像I[i-1]との間の動きを検出する（Ｓ１０３ｂ）。判断が否定の場合（ｉ＜２の場合）に、ルーチンはＳ１０１に戻る。
【００４４】
Ｓ１０４において、ＤＲＡＭ１１１にｎ枚以上の画像が格納されているか判断され（Ｓ１０４ａ）、判断が肯定の場合（i≧ｎの場合）に、位置設定部１０５は、（ｎ−１）個の動きベクトル (mvx[i],mvy[i])〜(mvx[i-(n-1)],mvy[i-(n-1)]) の情報を読み出す。さらに、位置設定部１０５は、数式（３ａ）（３ｂ）にしたがって合成画像I'[i]の基準移動量を計算し、ひいては合成画像I'[i]のフレーム位置を設定する（Ｓ１０４ｂ）。なお、基準移動量の計算において、動きの基準となる画像I[i-(n-1)] の動きベクトル(mvx[i-(n-1)],mvy[i-(n-1)])は(0,0)に設定される。判断が否定の場合（i＜ｎの場合）に、ルーチンはＳ１０１に戻る。
【００４５】
Ｓ１０５において、画像合成部１０７は、ＤＲＡＭ１１１から合成の対象となるｎ枚の画像I[i]〜I[i-(n-1)]を読み出し、数式（１）又は数式（２）にしたがって画素値I'[i](x,y)を計算し、合成画像I'[i]を生成する。
【００４６】
Ｓ１０６において、合成画像I'[i]に対して、カメラ画像処理部１０６は所定の画像処理を行う。Ｓ１０７において、後処理部１０８は各種処理を行い、液晶モニタ/ファインダ部１０９は、合成画像を新たなフレーム画像とした動画像を表示する。Ｓ１０８において、ユーザの操作による撮影完了の信号を得るまでＳ１０１からの手順が繰り返えされる。
【００４７】
−作用効果−
本実施形態によると、時系列に撮影された複数の画像（I[i-(n-1)]、I[i-(n-2)]、・・・、I[i-1]、I[i]）を合成して合成画像を生成する画像処理装置において、位置設定部１０５は、複数の画像のうちの一つの画像（例えば、始端画像I[i-(n-1)]）に対する他の画像の動きを取得し、動きの最大振幅よりも小さい基準移動量(bvx[i],bvy[i])だけこの一つの画像から移動した位置を合成画像のフレーム位置（例えば、図２（ａ）の破線）として設定する。画像合成部１０７は、このフレーム位置において、複数の画像の対応し合う画素の画素値を合成して、合成画像を生成する。これにより、長露光効果を得るため又はＳ／Ｎ比を向上させる等のために動画像を構成する複数のフレーム画像を合成する際に、簡素な構成にて動画像のブレ補正も同時に行い、合成画像を新たなフレーム画像とする動きが滑らかな動画像を得ることができる。
【００４８】
位置設定部１０５は、複数の画像の中で、最も早い時刻に撮影された画像（即ち始端画像）から最も遅い時刻に撮影された画像（即ち終端画像）までの移動を示す移動ベクトル(gmvx,gmvy)に係数０．５を乗算することによって、基準移動量を計算する。これにより、位置設定部１０５は、簡単かつ好適に、画像の動きの最大振幅よりも小さい基準移動量(bvx[i],bvy[i])を設定できる。
【００４９】
位置設定部１０５は、複数の画像の中で、最も早い時刻に撮影された画像（即ち始端画像）から最も遅い時刻に撮影された画像（即ち終端画像）までの移動を示す移動ベクトルに係数αを乗算することによって、基準移動量を計算する。そして、位置設定部１０５は、複数の画像間の動きの振幅が所定の閾値よりも小さい場合に係数αを０．５に設定し、複数の画像の同一方向の移動が継続するほど係数αを１．０に近づける。これにより、位置設定部１０５は、画像処理装置のユーザのカメラワーク（撮影動作）に応じて合成画像の基準移動量（即ち合成画像のフレーム位置）を設定する。従って、画像処理装置は、ユーザのカメラワークに応じて、合成画像をフレームとする好適な動画像を取得できる。
【００５０】
［第二実施形態］
図６は、第二実施形態に係る画像処理装置２００のブロック構成図を示す。画像処理装置２００は、記録メディアから動画像データを取得し、画像表示装置に表示することができ、例えば、ビデオ再生装置、ＤＶＤ（digital versatile disk）／ＢＤ（Blu-ray Disc）再生装置などの動画像再生装置である。
【００５１】
画像処理装置２００は、画像入力装置２０１と、デコーダ２０２と、フレームバッファ２０３と、動き検出部２０４と、位置設定部２０５と、画像合成部２０６と、画像表示装置２０７と、これら各部を制御する制御部（図示しない）を備える。デコーダ２０２、動き検出部２０４、位置設定部２０５、画像合成部２０６、制御部のそれぞれ（又はこれら全体）は、ＡＳＩＣ、ＦＰＧＡなどの論理回路から構成されてよい。或いは、これらの各部（又はこれら全体）は、データを格納するメモリ、演算プログラムを格納するメモリ、この演算プログラムを実行するＣＰＵ／ＤＳＰ（中央演算処理装置／デジタルシグナルプロセッサ）等から構成されてもよい。
【００５２】
画像入力装置２０１は、記録メディアから動画像データを読み出し、画像処理装置２００に入力する。動画データを記録した記録メディアは、例えば、磁気テープ、光ディスク、フラッシュメモリである。また、画像入力装置２０１は、画像処理装置２００に内蔵されたハードディスクドライブなどの記憶装置でもよい。
【００５３】
デコーダ２０２は、記録メディアに記録された圧縮符号化データを非圧縮のフレーム画像に復元する。なお、記録された動画像データが非圧縮であればデコーダ２０２は不要である。フレームバッファ２０３は、復元されたフレーム画像を合成する枚数分格納するメモリ（例えばＲＡＭ）である。
【００５４】
動き検出部（動き検出手段）２０４は、第一実施形態における動き検出部１０４と同じ機能を有する。ただし、第二実施形態では、角速度センサ等は利用できないため、動き検出部１０４は、ブロックマッチングにより画像間の動きを検出する。
【００５５】
位置設定部（位置設定手段）２０５は、第一実施形態における位置設定部１０５と同じ機能を有する。ただし、第二実施形態では、第一実施形態で述べた係数αは固定値０．５を取る。これは、画像処理装置２００は動画像再生装置であるため、ユーザの撮影動作に追従する必要が無いからである。
【００５６】
画像合成部（画像合成手段）２０６は、第一実施形態における画像合成部１０７と同じ機能を有する。画像合成部２０６で生成された合成画像は、画像表示装置２０７に送られる。画像表示装置２０７は、合成画像からなる動画像を表示し、例えば液晶ディスプレイである。
【００５７】
図７は、第二実施形態による画像処理装置２００の処理を示すフローチャートである。なお、以下において、符号「Ｓ」はステップを意味する。なお、図７は、第二実施形態による画像処理装置の画像処理方法の一例である。
【００５８】
Ｓ２００において、画像処理装置２００の制御部は、初期設定として合成枚数ｎを設定し、入力フレーム番号ｉを初期化する。Ｓ２０１において、画像入力装置２０１から符号化データストリームが読み出され、デコーダ２０２は、フレーム画像I[i]を復元する。Ｓ２０２において、復元したフレーム画像I[i]は、フレームバッファ２０３に格納される。そして、フレーム番号iは、インクリメントされる。
【００５９】
Ｓ２０３において、フレームバッファ２０３に二枚以上の画像が格納されているか判断され（Ｓ２０３ａ）、判断が肯定の場合（i≧２の場合）に、動き検出部１０４は、画像I[i]と画像I[i-1]との間の動きを検出する（Ｓ２０３ｂ）。判断が否定の場合（ｉ＜２の場合）に、ルーチンはＳ２０１に戻る。
【００６０】
Ｓ２０４において、フレームバッファ２０３にｎ枚以上の画像が格納されているか判断され（Ｓ２０４ａ）、判断が肯定の場合（i≧ｎの場合）に、（ｎ−１）個の動きベクトル (mvx[i],mvy[i])〜(mvx[i-(n-1)],mvy[i-(n-1)])の情報がフレームバッファ２０３から読み出される。は、数式（３ａ）（３ｂ）にしたがって合成画像I'[i]の基準移動量を計算し、ひいては合成画像I'[i]のフレーム位置を設定する（Ｓ２０４ｂ）。判断が否定の場合（i＜ｎの場合）に、ルーチンはＳ２０１に戻る。
【００６１】
ステップＳ２０５において、画像合成部２０６は、フレームバッファ２０３から合成対象となるｎ枚の画像I[i]〜I[i-(n-1)]を読み出し、数式（１）又は数式（２）にしたがって画素値I'[i](x,y)を計算し、合成画像I'[i]を生成する。
【００６２】
ステップＳ２０６において、画像表示装置２０７は、合成画像I'[i]を表示する。ステップＳ２０７において、ユーザ操作による再生停止信号を得るまでＳ２０１からの手順が繰り返えされる。
【００６３】
なお、画像処理装置２００は、デコーダ２０２から画像合成部２０６までの画像処理をソフトウェア（プログラム）により実行する汎用コンピュータ（パーソナルコンピュータやワークステーション等）でもよい。汎用コンピュータは、ＣＰＵと、画像データを記憶するフレームバッファとなるＲＡＭ等の主記憶装置と、上記の画像処理を実現させるためのプログラムが記憶されたコンピュータ読み取り可能な記憶装置（又は非一時的な記録媒体）とを備えている。ここでは、このプログラムを画像処理プログラムと呼ぶ。そして、ＣＰＵが上記記憶媒体に記憶されている画像処理プログラムを読み出して、画像データの加工・演算処理を実行する。
【００６４】
ここで、コンピュータ読み取り可能な記憶装置（又は非一時的な記録媒体）とは、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等をいう。また、この画像処理プログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該画像処理プログラムを実行するようにしても良い。
【００６５】
第二実施形態によると、画像処理装置としての動画像再生装置において、第一実施形態と同じ効果が得られる。
【００６６】
［第三実施形態］
第三実施形態は、位置設定部１０５、２０５による基準移動量の計算方法（即ち、合成画像のフレーム位置の設定）が、第一と第二実施形態とは異なる。他の構成は、第一と第二実施形態と同じである。
【００６７】
図８（ａ）（ｂ）は、図３（ａ）（ｂ）の場合において、位置設定部１０５（又は２０５）が合成画像の基準移動量ひいてはフレーム位置をどのように設定（計算）するかを示す。画像合成部１０７（又は２０６）は、I[0]〜I[3]の４枚の画像を合成してI'[3]を生成し、I[1]〜I[4]の４枚の画像を合成してI'[4]を生成する。
【００６８】
図８（ａ）を参照すると、位置設定部１０５（又は２０５）は、合成画像I'[3]の基準移動量（即ちフレーム位置）を求めるために、I[0]とI[1]との間のグローバルな移動ベクトル(fmvx[1],fmvy[1])と、I[0]とI[2]との間のグローバルな移動ベクトル(fmvx[2],fmvy[2])と、I[0]とI[3]との間のグローバルな移動ベクトル(fmvx[3],fmvy[3])を算出する。合成画像I'[3]の基準移動量(bvx[3],bvy[3])は、以下の数式（４ａ）（４ｂ）のように、(fmvx[1],fmvy[1])と(fmvx[2],fmvy[2])と(fmvx[3],fmvy[3])の平均に設定される。
【００６９】
【数４】
2013157704.tif 000006
【００７０】
図８（ｂ）を参照すると、位置設定部１０５（又は２０５）は、合成画像I'[4]の基準移動量（即ちフレーム位置）を求めるために、I[1]とI[2]との間のグローバルな移動ベクトル(fmvx'[2],fmvy'[2])と、I[1]とI[3]との間のグローバルな移動ベクトル(fmvx'[3],fmvy'[3]) と、 I[1]とI[4]との間のグローバルな移動ベクトル(fmvx'[4],fmvy'[4])を算出する。合成画像I'[4]の基準移動量（bvx[4],bvy[4]）は、以下の数式（５ａ）（５ｂ）のように、(fmvx'[2],fmvy'[2])と(fmvx'[3],fmvy'[3])と(fmvx'[4],fmvy'[4])の平均に設定される。
【００７１】
【数５】
2013157704.tif 000007
【００７２】
以上の位置設定部１０５（又は２０５）の処理を一般化すると、I[i-(n-1)]からI[i] までの画像を合成して得る合成画像I'[i]に対して、フレーム位置を決める基準移動量(bvx[i],bvy[i])は、以下の数式（６ａ）（６ｂ）で表される。
【００７３】
【数６】
2013157704.tif 000008
【００７４】
ここで、ｎは、合成される画像の枚数、(mvx[k],mvy[k])は、任意のフレーム番号ｋに対応する画像I[k]と画像I[k-1]との間の動きベクトルである。なお、画像I[i-(n-1)] に対する動きベクトル(mvx[i-(n-1)],mvy[i-(n-1)])は、(0,0)に設定される。
【００７５】
数式（６ａ）（６ｂ）において、画像I[i-(n-1)]に対するフレーム画像I[i-(n-2)]、・・・、I[i-1]、I[i]の移動ベクトルは、隣接フレーム間の動きベクトルを累積加算することによって、（Σmvx[k]，Σmvy[k]）として求められる。そして、フレーム画像I[i-(n-2)]、・・・、I[i-1]、I[i]の移動ベクトルの平均が、基準移動量(bvx[i],bvy[i])として求められている。
なお、本実施形態ではフレーム画像I[i-(n-1)]を基準とする動きベクトルを求めたが、基準とするフレーム画像を他のフレーム画像I[i-(n-2)]からI[i]のいずれかとしてもよい。
【００７６】
数式（６ａ）（６ｂ）のように平均化により定めた基準移動量(bvx[i],bvy[i])の大きさは、合成対象の複数の画像のうちの始端画像I[i-(n-1)]に対する他のフレーム画像I[i-(n-2)]、・・・I[i-1]、I[i]の動き（Σmvx[k]，Σmvy[k]）の最大振幅よりも小さくなる。このように求めた基準移動量(bvx[i],bvy[i])によって合成画像I'[i]のフレーム位置が規定されるため、合成画像をフレームとする動画像は、好適にブレが補正されて動きが滑らかになる。
【００７７】
以上のように、第三実施形態によると、位置設定部１０５は、複数の画像のうち最も早い時刻に撮影された画像に対して他の画像の移動を示す移動ベクトルを平均することによって、基準移動量を計算する。これにより、位置設定部１０５は、複数の画像のうちの一つの画像（例えば、始端画像I[i-(n-1)]）に対する他の画像の動きを平均化して、他の画像の動きの最大振幅よりも小さい基準移動量(bvx[i],bvy[i])を設定できる。そして、画像処理装置は、動きが平均化されて好適にブレ補正された動画像を得ることができる。
【００７８】
本発明は上記の各実施形態に限定されずに、その技術的な思想の範囲内において種々の変更がなしうることは明白である。
【符号の説明】
【００７９】
１００  画像処理装置
１０１  撮像素子
１０２  Ａ／Ｄ変換部
１０３  前処理部
１０４  動き検出部
１０５  位置設定部
１０６  カメラ画像処理部
１０７  画像合成部
１０８  後処理部
１０９  液晶モニタ／ファインダ部
１１２  フラッシュメモリ
１１３  圧縮記録部
１１４  データバス
２００  画像処理装置
２０１  画像入力装置
２０２  デコーダ
２０３  フレームバッファ
２０４  動き検出部
２０５  位置設定部
２０６  画像合成部
２０７  画像表示装置
【図１】
2013157704.tif 000009
【図３】
2013157704.tif 000010
【図４】
2013157704.tif 000011
【図５】
2013157704.tif 000012
【図６】
2013157704.tif 000013
【図７】
2013157704.tif 000014
【図８】
2013157704.tif 000015
【図２】
2013157704.tif 000016