図1は、積層型撮像素子100の断面図である。積層型撮像素子(以下、単に、「撮像素子」)100は、入射光に対応した画素信号を出力する裏面照射型撮像チップ(以下、単に、「撮像チップ」)113と、画素信号を処理する信号処理チップ111と、画素信号を記憶するメモリチップ112とを備える。これら撮像チップ113、信号処理チップ111およびメモリチップ112は積層されており、Cuなどの導電性を有するバンプ109により互いに電気的に接続される。
なお、図1に示すように、入射光は主に白抜き矢印で示すZ軸プラス方向へ向かって入射する。本実施形態においては、撮像チップ113において、入射光が入射する側の面を裏面と称する。また、座標軸120に示すように、Z軸に直交する紙面左方向をX軸プラス方向、Z軸およびX軸に直交する紙面手前方向をY軸プラス方向とする。以降のいくつかの図においては、図1の座標軸を基準として、それぞれの図の向きがわかるように座標軸を表示する。
撮像チップ113の一例は、裏面照射型のMOS(Metal Oxide Semiconductor)イメージセンサである。PD(フォトダイオード)層106は、配線層108の裏面側に配されている。PD層106は、二次元的に配され、入射光に応じた電荷を蓄積する複数のPD104、および、PD104に対応して設けられたトランジスタ105を有する。
PD層106における入射光の入射側にはパッシベーション膜103を介してカラーフィルタ102が設けられる。カラーフィルタ102は、互いに異なる波長領域を透過する複数の種類を有しており、PD104のそれぞれに対応して特定の配列を有している。カラーフィルタ102の配列については後述する。カラーフィルタ102、PD104およびトランジスタ105の組が、一つの画素を形成する。
カラーフィルタ102における入射光の入射側には、それぞれの画素に対応して、マイクロレンズ101が設けられる。マイクロレンズ101は、対応するPD104へ向けて入射光を集光する。
配線層108は、PD層106からの画素信号を信号処理チップ111に伝送する配線107を有する。配線107は多層であってもよく、また、受動素子および能動素子が設けられてもよい。
配線層108の表面には複数のバンプ109が配される。当該複数のバンプ109が信号処理チップ111の対向する面に設けられた複数のバンプ109と位置合わせされて、撮像チップ113と信号処理チップ111とが加圧などされることにより、位置合わせされたバンプ109同士が接合されて、電気的に接続される。
同様に、信号処理チップ111およびメモリチップ112の互いに対向する面には、複数のバンプ109が配される。これらのバンプ109が互いに位置合わせされて、信号処理チップ111とメモリチップ112とが加圧などされることにより、位置合わせされたバンプ109同士が接合されて、電気的に接続される。
なお、バンプ109間の接合には、固相拡散によるCuバンプ接合に限らず、はんだ溶融によるマイクロバンプ結合を採用してもよい。また、バンプ109は、たとえば、後述する一つのブロックに対して一つ程度設ければよい。したがって、バンプ109の大きさは、PD104のピッチよりも大きくてもよい。また、画素が配列された画素領域以外の周辺領域において、画素領域に対応するバンプ109よりも大きなバンプを併せて設けてもよい。
信号処理チップ111は、表裏面にそれぞれ設けられた回路を互いに接続するTSV(シリコン貫通電極)110を有する。TSV110は、周辺領域に設けられることが好ましい。また、TSV110は、撮像チップ113の周辺領域、メモリチップ112にも設けられてよい。
図2は、撮像チップ113の画素配列を説明する図である。特に、撮像チップ113を裏面側から観察した様子を示す。(a)は、撮像チップ113の裏面である撮像面200を模式的に示す平面図であり、(b)は、撮像面200の一部領域200aを拡大した平面図である。(b)に示すように、撮像面200には、画素201が二次元状に多数配列されている。
画素201は、それぞれ不図示の色フィルタを有している。色フィルタは、赤(R)、緑(G)、青(B)の3種類からなり、(b)における「R」、「G」、および「B」という表記は、画素201が有する色フィルタの種類を表している。(b)に示すように、撮像素子100の撮像面200には、このような各色フィルタを備えた画素201が、いわゆるベイヤー配列に従って配列されている。
赤フィルタを有する画素201は、入射光のうち、赤色の波長帯の光を光電変換して受光信号(光電変換信号)を出力する。同様に、緑フィルタを有する画素201は、入射光のうち、緑色の波長帯の光を光電変換して受光信号を出力する。また、青フィルタを有する画素201は、入射光のうち、青色の波長帯の光を光電変換して受光信号を出力する。
撮像素子100は、隣接する2画素×2画素の計4つの画素201から成るブロック202ごとに、個別に制御可能に構成されている。たとえば、互いに異なる2つのブロック202について、同時に電荷蓄積を開始したときに、一方のブロック202では電荷蓄積開始から1/30秒後に電荷の読み出し、すなわち受光信号の読み出しを行い、他方のブロック202では電荷蓄積開始から1/15秒後に電荷の読み出しを行うことができる。換言すると、撮像素子100は、1回の撮像において、ブロック202ごとに異なる露光時間(電荷蓄積時間であり、いわゆるシャッタースピード)を設定することができる。
撮像素子100は、上述した露光時間以外にも、撮像信号の増幅率(いわゆるISO感度)をブロック202ごとに異ならせることが可能である。撮像素子100は、電荷蓄積を開始するタイミングや受光信号を読み出すタイミングをブロック202ごとに変化させることができる。すなわち、撮像素子100は、動画撮像時のフレームレートをブロック202ごとに変化させることができる。
以上をまとめると、撮像素子100は、ブロック202ごとに、露光時間、増幅率、フレームレートなどの撮像条件を異ならせることが可能に構成されている。たとえば、画素201が有する不図示の光電変換部から撮像信号を読み出すための不図示の読み出し線が、ブロック202ごとに設けられ、ブロック202ごとに独立して撮像信号を読み出し可能に構成すれば、ブロック202ごとに露光時間(シャッタースピード)を異ならせることができる。
また、光電変換された電荷により生成された撮像信号を増幅する不図示の増幅回路をブロック202ごとに独立して設け、増幅回路による増幅率を増幅回路ごとに独立して制御可能に構成すれば、ブロック202ごとに信号の増幅率(ISO感度)を異ならせることができる。
また、ブロック202ごとに異ならせることが可能な撮像条件は、上述した撮像条件のほか、フレームレート、ゲイン、解像度(間引き率)、画素信号を加算する加算行数または加算列数、電荷の蓄積時間または蓄積回数、デジタル化のビット数などである。さらに、制御パラメータは、画素からの画像信号取得後の画像処理におけるパラメータであってもよい。
また、撮像条件は、たとえば、ブロック202ごとに独立して制御可能な区画(1区画が1つのブロック202に対応する)を有する液晶パネルを撮像素子100に設け、オンオフ可能な減光フィルタとして利用すれば、ブロック202ごとに明るさ(絞り値)を制御することが可能になる。
なお、ブロック202を構成する画素201の数は、上述した2×2の4画素でなくてもよい。ブロック202は、少なくとも1個の画素201を有していればよいし、逆に、4個より多くの画素201を有していてもよい。
図3は、撮像チップ113の回路図である。図3において、代表的に点線で囲む矩形が、1つの画素201に対応する回路を表す。また、一点鎖線で囲む矩形が1つのブロック202(202−1〜202−4)に対応する。なお、以下に説明する各トランジスタの少なくとも一部は、図1のトランジスタ105に対応する。
上述したように、画素201のリセットトランジスタ303は、ブロック202単位でオン/オフされる。また、画素201の転送トランジスタ302も、ブロック202単位でオン/オフされる。図3に示す例において、左上ブロック202−1に対応する4つのリセットトランジスタ303をオン/オフするためのリセット配線300−1が設けられており、同ブロック202−1に対応する4つの転送トランジスタ302に転送パルスを供給するためのTX配線307−1も設けられる。
同様に、左下ブロック202−3に対応する4つのリセットトランジスタ303をオン/オフするためのリセット配線300−3が、上記リセット配線300−1とは別個に設けられる。また、同ブロック202−3に対応する4つの転送トランジスタ302に転送パルスを供給するためのTX配線307−3が、上記TX配線307−1と別個に設けられる。
右上ブロック202−2や右下ブロック202−4についても同様に、それぞれリセット配線300−2とTX配線307−2、およびリセット配線300−4とTX配線307−4が、それぞれのブロック202に設けられている。
各画素201に対応する16個のPD104は、それぞれ対応する転送トランジスタ302に接続される。各転送トランジスタ302のゲートには、上記ブロック202ごとのTX配線を介して転送パルスが供給される。各転送トランジスタ302のドレインは、対応するリセットトランジスタ303のソースに接続されるとともに、転送トランジスタ302のドレインとリセットトランジスタ303のソース間のいわゆるフローティングディフュージョンFDが、対応する増幅トランジスタ304のゲートに接続される。
各リセットトランジスタ303のドレインは、電源電圧が供給されるVdd配線310に共通に接続される。各リセットトランジスタ303のゲートには、上記ブロック202ごとのリセット配線を介してリセットパルスが供給される。
各増幅トランジスタ304のドレインは、電源電圧が供給されるVdd配線310に共通に接続される。また、各増幅トランジスタ304のソースは、対応する選択トランジスタ305のドレインに接続される。各選択トランジスタ305のゲートには、選択パルスが供給されるデコーダ配線308に接続される。デコーダ配線308は、16個の選択トランジスタ305に対してそれぞれ独立に設けられる。
そして、各々の選択トランジスタ305のソースは、共通の出力配線309に接続される。負荷電流源311は、出力配線309に電流を供給する。すなわち、選択トランジスタ305に対する出力配線309は、ソースフォロアにより形成される。なお、負荷電流源311は、撮像チップ113側に設けてもよいし、信号処理チップ111側に設けてもよい。
ここで、電荷の蓄積開始から蓄積終了後の画素出力までの流れを説明する。上記ブロック202ごとのリセット配線を通じてリセットパルスがリセットトランジスタ303に印加され、同時に上記ブロック202(202−1〜202−4)ごとのTX配線を通じて転送パルスが転送トランジスタ302に印加されると、上記ブロック202ごとに、PD104およびフローティングディフュージョンFDの電位がリセットされる。
各PD104は、転送パルスの印加が解除されると、受光する入射光を電荷に変換して蓄積する。その後、リセットパルスが印加されていない状態で再び転送パルスが印加されると、蓄積された電荷はフローティングディフュージョンFDへ転送され、フローティングディフュージョンFDの電位は、リセット電位から電荷蓄積後の信号電位になる。
そして、デコーダ配線308を通じて選択パルスが選択トランジスタ305に印加されると、フローティングディフュージョンFDの信号電位の変動が、増幅トランジスタ304および選択トランジスタ305を介して出力配線309に伝わる。これにより、リセット電位と信号電位とに対応する画素信号は、単位画素から出力配線309に出力されることになる。
上述したように、ブロック202を形成する4画素に対して、リセット配線とTX配線が共通である。すなわち、リセットパルスと転送パルスはそれぞれ、同ブロック202内の4画素に対して同時に印加される。したがって、あるブロック202を形成するすべての画素201は、同一のタイミングで電荷蓄積を開始し、同一のタイミングで電荷蓄積を終了する。ただし、蓄積された電荷に対応する画素信号は、それぞれの選択トランジスタ305に選択パルスが順次印加されることにより、選択的に出力配線309から出力される。
このように、ブロック202ごとに電荷蓄積開始タイミングを制御することができる。換言すると、異なるブロック202間では、異なったタイミングで撮像することができる。
図4は、撮像素子100の機能的構成例を示すブロック図である。アナログのマルチプレクサ411は、ブロック202を形成する16個のPD104を順番に選択して、それぞれの画素信号を当該ブロック202に対応して設けられた出力配線309へ出力させる。マルチプレクサ411は、PD104と共に、撮像チップ113に形成される。
マルチプレクサ411を介して出力された画素信号は、信号処理チップ111に形成された、相関二重サンプリング(CDS)・アナログ/デジタル(A/D)変換を行う信号処理回路412により、CDSおよびA/D変換が行われる。A/D変換された画素信号は、デマルチプレクサ413に引き渡され、それぞれの画素に対応する画素メモリ414に格納される。デマルチプレクサ413および画素メモリ414は、メモリチップ112に形成される。
演算回路415は、画素メモリ414に格納された画素信号を処理して後段の画像処理部に引き渡す。演算回路415は、信号処理チップ111に設けられてもよいし、メモリチップ112に設けられてもよい。なお、図4では4つのブロック202の分の接続を示すが、実際にはこれらが4つのブロック202ごとに存在して、並列で動作する。
ただし、演算回路415は4つのブロック202ごとに存在しなくてもよく、たとえば、一つの演算回路415がそれぞれの4つのブロック202に対応する画素メモリ414の値を順に参照しながらシーケンシャルに処理してもよい。
上記の通り、ブロック202のそれぞれに対応して出力配線309が設けられている。撮像素子100は撮像チップ113、信号処理チップ111およびメモリチップ112を積層しているので、これら出力配線309にバンプ109を用いたチップ間の電気的接続を用いることにより、各チップを面方向に大きくすることなく配線を引き回すことができる。
撮像光学系501は、複数のレンズから構成され、撮像素子100の撮像面200に被写体像を結像させる。なお、図5では、便宜上、撮像光学系501を1枚のレンズとして図示している。
撮像素子100は、たとえば、CMOS(Complementary Metal Oxide Semiconductor)やCCD(Charge Coupled Device)などの撮像素子であり、撮像光学系501により結像された被写体像を撮像して撮像信号を出力する。制御部502は、電子機器500の各部を制御する電子回路であり、プロセッサとその周辺回路とから構成される。
不揮発性の記憶媒体であるフラッシュメモリ507には、予め所定の制御プログラムが書き込まれている。制御部502のプロセッサは、フラッシュメモリ507から制御プログラムを読み込んで実行することにより、各部の制御を行う。この制御プログラムは、揮発性の記憶媒体であるDRAM506を作業用領域として使用する。
液晶モニタ503は、液晶パネルを利用した表示装置である。制御部502は、所定周期(たとえば60分の1秒)ごとに撮像素子100に繰り返し被写体像を撮像させる。そして、撮像素子100から出力された撮像信号に種々の画像処理を施していわゆるスルー画を作成し、液晶モニタ503に表示する。液晶モニタ503には、上記のスルー画以外に、たとえば撮像条件を設定する設定画面などが表示される。
制御部502は、撮像素子100から出力された撮像信号に基づき、後述する画像ファイルを作成し、可搬性の記録媒体であるメモリカード504に画像ファイルを記録する。操作部505は、プッシュボタンなどの種々の操作部材を有し、それら操作部材が操作されたことに応じて制御部502に操作信号を出力する。
録音部508は、たとえば、マイクロフォンにより構成され、環境音を音声信号に変換して制御部502に入力する。なお、制御部502は、可搬性の記録媒体であるメモリカード504に動画ファイルを記録するのではなく、電子機器500に内蔵されたSSD(Solid State Drive)やハードディスクのような不図示の記録媒体に記録してもよい。
制御部502は、(a)の撮像により得られた被写体像601に対して、所定の画像解析処理を実行する。画像解析処理は、たとえば周知の被写体検出技術(特徴量を演算して所定の被写体が存在する範囲を検出する技術)により、主要被写体を検出する処理である。実施例1では、主要被写体以外は背景とする。画像解析処理によって、主要被写体が検出されるため、撮像面200は、主要被写体が存在する主要被写体領域602と、背景が存在する背景領域603とに分割される。
なお、(a)では、被写体像601を大まかに含む領域を主要被写体領域602として図示しているが、主要被写体領域602は、被写体像601の外形に沿った形状であってもよい。つまり、被写体像601以外のものをできるだけ含まないように主要被写体領域602を設定してもよい。
制御部502は、主要被写体領域602内の各ブロック202と、背景領域603内の各ブロック202とで、異なる撮像条件を設定する。たとえば、前者の各ブロック202には、後者の各ブロック202に比べて高速なシャッタースピードを設定する。このようにすると、(a)の撮像の次に撮像される(c)の撮像において、主要被写体領域602では像ぶれが発生しにくくなる。
また、制御部502は、背景領域603に存在する太陽などの光源の影響で、主要被写体領域602が逆光状態となっている場合には、前者の各ブロック202に、相対的に高めのISO感度を設定したり、低速なシャッタースピードを設定したりする。また、制御部502は、後者の各ブロック202に、相対的に低めのISO感度を設定したり、高速なシャッタースピードを設定したりする。このようにすると、(c)の撮像において、逆光状態の主要被写体領域602の黒つぶれや、光量の大きい背景領域603の白飛びを防止することができる。
なお、画像解析処理は、上述した主要被写体領域602と背景領域603とを検出する処理とは異なる処理であってもよい。たとえば、撮像面200全体のうち、明るさが一定以上の部分(明るすぎる部分)や明るさが一定未満の部分(暗すぎる部分)を検出する処理であってもよい。画像解析処理をこのような処理とした場合、制御部502は、前者の領域に含まれるブロック202について、露出値(Ev値)が他の領域に含まれるブロック202よりも低くなるように、シャッタースピードやISO感度を設定してもよい。
また、制御部502は、後者の領域に含まれるブロック202については、露出値(Ev値)が他の領域に含まれるブロック202よりも高くなるように、シャッタースピードやISO感度を設定する。このようにすることで、(c)の撮像により得られる画像のダイナミックレンジを、撮像素子100の本来のダイナミックレンジよりも広げることができる。
図6の(b)は、(a)に示した撮像面200に対応するマスク情報604の一例を示す。主要被写体領域602に属するブロック202の位置には「1」が、背景領域603に属するブロック202の位置には「2」がそれぞれ格納されている。
制御部502は、1フレーム目の画像データに対して、画像解析処理を実行し、主要被写体領域602を検出する。これにより、(a)の撮像によるフレームは、(b)に示すように、主要被写体領域602と背景領域603とに分割される。制御部502は、主要被写体領域602内の各ブロック202と、背景領域603内の各ブロック202とで、異なる撮像条件を設定して、(c)の撮像を行い、画像データを作成する。このときのマスク情報604の例を(d)に示す。
(a)の撮像の結果に対応する(b)のマスク情報604と、(c)の撮像の結果に対応する(d)のマスク情報604とでは、異なる時刻に撮像を行っている(時間差がある)ため、たとえば、被写体が移動している場合や、ユーザが電子機器500を動かした場合に、これら2つのマスク情報604が異なる内容になる。換言すると、マスク情報604は、時間経過に伴い変化する動的情報である。従って、あるブロック202において、フレームごとに異なる撮像条件が設定されることになる。
<動画圧縮伸張例>
図7は、実施例1にかかる動画圧縮伸張例を示す説明図である。電子機器500は、上述した撮像素子100と、制御部502と、を有する。制御部502は、第1生成部701と、圧縮伸張部702と、合成部703と、再生部704と、を含む。撮像素子100は、上述したように、被写体を撮像する複数の撮像領域を有する。撮像領域は、少なくとも1画素以上の画素集合であり、たとえば、上述した1以上のブロック202である。撮像領域には、ブロック202ごとに撮像条件(たとえば、フレームレート、露光時間、ISO感度)が設定可能である。
ここでは、撮像面200のうち、第1フレームレート(たとえば、30[fps])が設定される撮像領域を「第1撮像領域」と称し、第1フレームレートよりも速い第2フレームレート(たとえば、60[fps])が設定される撮像領域を「第2撮像領域」と称す。なお、第1フレームレートおよび第2フレームレートの値は一例であり、第2フレームレートが第1フレームレートよりも速ければ他の値でもよい。なお、第2フレームレートが第1フレームレートの倍数であれば、第1フレームレートの撮像タイミングで第1撮像領域および第2撮像領域から出力されたフレームを得ることができる。
撮像素子100は、被写体を撮像して、入力動画データ710を第1生成部701に出力する。撮像素子100のある撮像領域から出力された画像データの領域を、(当該撮像領域に対応する)画像領域と称す。
たとえば、撮像面200全域が第1フレームレート(30[fps])に設定された第1撮像領域である場合、第1フレームレート(30[fps])での撮像により当該第1撮像領域(撮像面200全域)から出力される第1画像領域a1(網掛け)の画像データは、画像処理により1枚のフレームとなる。このフレームを「第1フレーム711」と称する。
具体的には、たとえば、風景を定点撮影している場合、第1フレームレート(30[fps])での撮像により、風景のみの第1画像領域a1の画像データとして第1フレーム711が生成される。
また、たとえば、撮像面200全域が第1フレームレート(30[fps])に設定された第1撮像領域である場合で、かつ、特定被写体が検出された撮像領域が第1撮像領域から第2フレームレート(60[fps])に設定された第2撮像領域に変更される場合、第1フレームレート(30[fps])での撮像により当該第1撮像領域から出力される第1画像領域a1(網掛け)の画像データおよび第2撮像領域から出力される第2画像領域a2の画像データの組み合わせも、第1フレーム711である。
具体的には、たとえば、風景の定点撮影中に特定被写体(電車)が検出された場合、第1フレームレート(30[fps])での撮像により、第1フレームレート(30[fps])で得られた当該電車を除いた風景(第1画像領域a1)の画像データと、第2フレームレート(60[fps])で得られた電車(第2画像領域a2)の画像データと、の組み合わせとして、第1フレーム711が生成される。
またこの場合、第2フレームレート(60[fps])での撮像により撮像面200の第2撮像領域から出力される第2撮像領域から出力される第2画像領域a2の画像データを、「画像データ712」と称する。この場合、第1撮像領域から被写体の画像データが出力されなかった画像領域を、「欠損領域712x」と称す。
具体的には、たとえば、風景の定点撮影中に特定被写体(電車)が検出された場合、第2フレームレート(60[fps])での撮像により、第2フレームレート(60[fps])で得られた電車(第2画像領域a2)の画像データは、画像データ712である。
なお、異なるフレームレートが設定される撮像領域は3以上でもよい。この場合、第3撮像領域以降については、第1フレームレートおよび第2フレームレートとは異なるフレームレートが設定可能となる。
第1生成部701は、撮像素子100から入力された入力動画データ710のうち、画像データ712を補完する。具体的には、たとえば、第1生成部701は、撮像素子100の第1撮像領域から画像信号が出力されなかった欠損領域712xを特定色で補完する。本例では、特定色は黒とし、図7でも黒塗りとする。なお、特定色は、黒以外の色でもよく、また、特定のパターンでもよい。また、特定色は、一色ではなく、複数の色を用いてもよい。また、第2画像領域a2の周囲の画素領域を第2画像領域a2の境界と同色にしてもよい。また、特定色で補完された欠損領域712xを「補完領域712y」と称す。
画像処理により画像データ712と補完領域712yとを組み合わせた画像データを、第2フレーム713と称す。また、第1フレーム711群により構成される動画データを第1動画データ721とし、第2フレーム713群により構成される動画データを第2動画データ722と称す。第1生成部701は、第1動画データ721および第2動画データ722を圧縮伸張部702に出力する。
圧縮伸張部702は、第1動画データ721および第2動画データ722をそれぞれ圧縮して、記憶デバイス(たとえば、メモリカード504、フラッシュメモリ507)に格納する。圧縮伸張部702は、たとえば、動き補償フレーム間予測(Motion Compensation:MC)と離散コサイン変換(Discrete Cosine Transform:DCT)とに、エントロピー符号化を組み合わせたハイブリッド符号化によって圧縮する。
圧縮伸張部702は、第1動画データ721を構成する第1フレーム711のうち、網掛けで示した第1画像領域a1については、動き検出や動き補償が不要な圧縮処理を実行する。圧縮伸張部702は、ハッチングした特定被写体像が出力された第2画像領域a2の画像データ712については、上述したハイブリッド符号化によって圧縮する。このように、特定被写体像以外の第1画像領域a1については、動き検出および動き補償が実行されないため、動画圧縮の処理負荷の低減を図ることができる。
なお、第1画像領域a1については、撮像装置の手ブレがない場合、あるいは被写体に動きがない場合を想定して、動き検出や動き補償が不要な圧縮処理を実行することとした。しかしながら、手ブレや被写体の動きがある場合には、圧縮伸張部702は、第1画像領域a1について上述したハイブリッド符号化によって圧縮してもよい。
同様に、圧縮伸張部702は、第2動画データ722を構成する第2フレーム713のうち、黒塗りで示した補完領域712yについては、動き検出や動き補償が不要な圧縮処理を実行する。圧縮伸張部702は、ハッチングした特定被写体像が出力された第2画像領域a2の画像データ712については、上述したハイブリッド符号化によって圧縮する。このように、特定被写体像以外の補完領域712y(黒塗り)については、動き検出および動き補償が実行されないため、動画圧縮の処理負荷の低減を図ることができる。また、手ブレや被写体の動きがある場合には、圧縮伸張部702は、補完領域712yについて上述したハイブリッド符号化によって圧縮してもよい。
このように、第2フレームレート(60[fps])で得られた第2フレーム713は、第1フレームレート(30[fps])で得られた第1フレーム711と同サイズとなる。したがって、第2フレーム713は、第1フレーム711の圧縮処理と同じ圧縮処理が適用されるため、画像データ712のサイズに適合する他の圧縮処理を適用する必要がない。
また、圧縮伸張部702は、動画の再生指示または伸張指示があった場合に、圧縮された第1動画データ721および第2動画データ722を伸張して、元の第1動画データ721および第2動画データ722に戻す。
合成部703は、第2フレーム713の時間的に1つ前の第1フレーム711を参照して、その第1フレーム711を第2フレーム713に複製、すなわち、合成する。具体的には、合成部703は、第2フレームに合成する他の第1フレーム711を複製により生成し、生成した第1フレームと第2フレームとを合成する。合成されたフレームを「第3フレーム730」と称す。第3フレーム730は、第1フレーム711の被写体像に、第2フレーム713における特定被写体像(第2画像領域a2)が重畳されたフレームである。合成部703は、30[fps]の撮像で出力された第1フレーム711と、合成フレームである第3フレーム730と、を含む動画データ(以下、第4動画データ)740を再生部704に出力する。なお、合成指示がない場合、たとえば、30fpsで動画を再生したい場合には、合成部703は合成処理を実行しない。
再生部704は、第4動画データ740を再生して動画を液晶モニタ503に表示する。このように、上述した入力動画データ710そのままでは圧縮伸張部702で圧縮することができない。そのため、第1生成部701は、画像データ712を補完領域712yで補完して、複数の第2フレーム713からなる第2動画データ722を生成する。圧縮伸張部702は、第1動画データ721および第2動画データ722を別々に圧縮、伸張する。
これにより、汎用の圧縮伸張部702により、圧縮伸張部702において通常の動画データ(第1動画データ721)と同様に第2動画データ722の圧縮が可能となる。なお、合成部703で合成処理が実行されなかった場合、再生部704は、フレームレートが30[fps]の第1動画データ721を再生して、その動画を液晶モニタ503に表示することになる。
なお、上記の例では、撮像面200全域が第1フレームレート(30[fps])に設定された第1撮像領域である場合で、かつ、特定被写体が検出された撮像領域が第1撮像領域から第2フレームレート(60[fps])に設定された第2撮像領域に変更される場合について説明したが、撮像面200の撮像領域の撮像条件の設定はこれに限られない。
たとえば、千鳥配置のように、撮像面200において、第1フレームレート(30[fps])に設定された複数の第1撮像領域と第2フレームレート(60[fps])に設置された複数の第2撮像領域とが混在する場合、複数の第1撮像領域に対応する複数の第1画像領域a1により組み合わされた画像データは、第1フレームF711となる。また、この場合、複数の第2撮像領域に対応する複数の第2画像領域a2により組み合わされた画像データは、「第2フレームF712」となる。なお、千鳥配置において、第1撮像領域および第2撮像領域のフレームレートは同一とし、露光時間やISO感度、間引き率といった他の撮像条件を第1撮像領域および第2撮像領域で異なるように設定してもよい。
<動画ファイルのファイルフォーマット例>
図8は、動画ファイルのファイルフォーマット例を示す説明図である。図8では、たとえば、MPEG4(Moving Picture Experts Group phase 4)に準拠するファイルフォーマットを適用した場合を例に挙げて説明する。
動画ファイル800は、ボックスと呼ばれるデータの集合であり、たとえば、ヘッダ部801とデータ部802とを有する。ヘッダ部801は、ボックスとして、ftyp811と、uuid812と、moov813と、を含む。データ部802は、ボックスとして、mdat820を含む。
ftyp811は、動画ファイル800の種別を示す情報を格納するボックスであり、動画ファイル800内で他のボックスよりも前の位置に配置される。uuid812は、汎用固有識別子を格納するボックスであり、ユーザが拡張可能である。実施例1では、たとえば、uuid812には、この動画ファイル800におけるフレーム群のフレームレートが第1フレームレート(たとえば、30[fps])のみの動画データであるか、第1フレームレートおよび第2フレームレート(60[fps])を含む動画データ(第1動画データ721および第2動画データ722)であるかを識別するフレームレート識別情報が書き込まれてもよい。これにより、伸張や合成、再生時にどの動画データがどのフレームレートであるかを特定することができる。
moov813は、動画、音声、テキストといった各種メディアに関するメタデータを格納するボックスである。mdat820は、動画、音声、テキストといった各種メディアのデータを格納するボックスである。
つぎに、moov813内のボックスについて具体的に説明する。moov813は、uuid831と、udta832と、mvhd833と、trak834a,834bと、付加情報835と、を有する。trak834a,834bを区別しない場合には、単に、trak834と表記する。同様に、trak834a内のデータのtkhd841a等やtrak834b内のデータのtkhd841b等を区別しない場合には、単にtkhd841と称する。
uuid831は、uuid812と同様、汎用固有識別子を格納するボックスであり、ユーザが拡張可能である。実施例1では、たとえば、動画ファイル800の生成の際に、uuid831に、この動画ファイル800におけるフレームの各々が、第1フレーム711であるか、第2フレーム713であるかを識別するフレーム種別識別情報が、フレーム番号と対応付けて書き込まれる。
また、uuid831には、第1動画データ721の圧縮データと、第2動画データ722の圧縮データと、の格納位置を示す情報が書き込まれてもよい。具体的には、たとえば、第1動画データ721の圧縮データの格納位置を示す情報として、(SOM(Start Of Movie)850a,EOM(End Of Movie)854a)が書き込まれ、第2動画データ722の圧縮データの格納位置を示す情報として、(SOM850b,EOM854b)が書き込まれる。これにより、伸張や合成、再生時にどの動画データがどの格納位置に格納されているかを特定することができる。
なお、圧縮データの格納位置は、後述のstsz847a,847bおよびstco848a,848bで特定可能である。したがって、SOM850aおよびEOM854aの代わりにstsz847a,847bおよびstco848a,848bから特定した第1動画データ721の圧縮データのアドレスを、第1フレームレートを示す第1フレームレート情報に関連付けて、格納位置を示す情報としてstsz847a,847bおよびstco848a,848bに設定してもよい。
同様に、SOM850bおよびEOM854bの代わりにstsz847a,847bおよびstco848a,848bから特定した第2動画データ722の圧縮データのアドレスを、第2フレームレートを示す第2フレームレート情報に関連付けて、格納位置を示す情報としてstsz847a,847bおよびstco848a,848bに設定してもよい。
udta832は、ユーザデータを格納するボックスである。ユーザデータとしては、たとえば、電子機器の識別コードや電子機器の位置情報がある。
mvhd833は、trak834ごとに、タイムスケールと、デュレーションと、を格納するボックスである。タイムスケールは、フレームレートまたはサンプリング周波数である。デュレーションは、タイムスケールを基準にした長さである。デュレーションをタイムスケールで除算すると、そのtrak834で特定されるメディアの時間長が得られる。
trak834は、メディアの種類(動画、音声、テキスト)ごとに設定されるボックスである。本実施例では、moovは、trak834a,834bを含む。trak834aは、たとえば、30[fps]の撮像で出力された第1動画データ721の動画、音声、テキストに関するメタデータを格納するボックスである。
trak834aは、第1動画データ721の動画、音声、テキストごとに設定される。trak834bは、たとえば、60[fps]の撮像で出力された第2動画データ722の動画、音声、テキストに関するメタデータを格納するボックスである。trak834bも、第2動画データ722の動画、音声、テキストごとに設定される。
付加情報835は、撮像条件情報と挿入位置情報とを含むボックスである。撮像条件情報とは、撮影条件(たとえば、30[fps]、60[fps]のようなフレームレート)ごとに動画ファイル800内でのメディアの格納位置を示す情報である。挿入位置情報とは、速い方のフレームレートのメディアのデータ(第2動画データ722)を遅い方のフレームレートのメディアのデータ(第1動画データ721)に挿入する位置を示す情報である。
つぎに、trak834内のボックスについて具体的に説明する。trak834a,834bはそれぞれ、tkhd841a,841bと、edts842a,842bと、tref843a,843bと、stsc844a,844bと、stts845a,845bと、stss846a,846bと、stsz847a,847bと、stco848a,848bと、を有する。なお、tkhd841a〜stco848aおよびtkhd841b〜stco848bを区別しない場合は、単に、tkhd841〜stco848と表記する。
tkhd841は、trak834の再生時間や表示解像度、メディアの種類を決める識別コードといったtrak834の基本属性を格納するボックスである。たとえば、trak834が動画であればメディアID=1、音声であればメディアID=2、テキストであればメディアID=3となる。
edts842は、trak834のエディットリストとして、trak834の再生開始位置と、その再生位置からの再生時間とを、格納するボックスである。tref843は、trak834間の参照情報を格納するボックスである。たとえば、動画のtrak834がテキストのtrak834をチャプタとして参照する場合、動画のtrak834のtref843には、テキストのtrak834を示すメディアID=3が格納され、テキストのtrak834をチャプタとして参照するため、識別コードとして「chap」が格納される。
stsc844は、1チャンク内のサンプル数を格納するボックスである。チャンクとは、サンプル数分のメディアのデータの集合であり、mdat820に格納される。たとえば、メディアが動画である場合、チャンク内のサンプルはフレームである。サンプル数が「3」であれば、1チャンク内に3フレームが格納されることを意味する。
stts845は、そのtrak834内の各チャンクまたはチャンク内のサンプルについての再生時刻を格納するボックスである。stss846は、キーフレーム(Iピクチャ)の間隔に関する情報を格納するボックスである。GOP(Group of Pictures)が「5」の場合は、stss846には、「1,6,11,・・・」と格納される。
stsz847は、mdat820内のサンプルごとのデータサイズを格納するボックスである。stco848は、mdat820内のチャンクごとに動画ファイル800の先頭アドレスからのオフセットを格納するボックスである。stsz847およびstco848を参照することで、mdat820内のメディアのデータ(フレーム、音声データ、テキスト(チャプタ))の位置を特定することが可能となる。
mdat820は、メディアごとのチャンクを格納するボックスである。SOM850a,850b(区別しない場合は、SOM850と表記)は、ある撮像条件のチャンク群の格納開始位置を示す識別子である。また、EOM854a,854b(区別しない場合は、EOM854と表記)は、ある撮像条件のチャンク群の格納終了位置を示す識別子である。
図8では、mdat820は、動画チャンク851−1、音声チャンク852−1、テキストチャンク853−1、…、動画チャンク851−2、音声チャンク852−2、テキストチャンク853−2、…、動画チャンク851−3、音声チャンク852−3、テキストチャンク853−3を格納する。
本例は、2つの撮像条件(30[fps],60[fps])で動画撮影をおこなう例であるため、撮像条件ごとにチャンクが区分けされる。具体的には、たとえば、SOM850a〜EOM854aまでが30[fps]の撮像タイミングで得られたチャンク群が格納され、SOM850b〜EOM854bまでが60[fps]の撮像タイミングで得られたチャンク群が格納される。
動画チャンク851−1は、30[fps]の撮像で出力されたサンプルである特定被写体検出前の第1フレーム711の圧縮フレーム、すなわち、圧縮フレーム861−s1、861−s2、861−s3を格納する。動画チャンク851−2は、30[fps]の撮像で出力されたサンプルである特定被写体検出時の第1フレーム711の圧縮フレーム、すなわち、圧縮フレーム862−s1、862−s2、862−s3を格納する。フレーム862−s1、862−s2、862−s3は、60[fps]と撮像タイミングが重複するため、60[fps]での特定被写体像(第2画像領域a2)が含まれる。
動画チャンク851−3は、60[fps]の撮像で出力されたサンプルである特定被写体検出時の第2フレーム713の圧縮フレーム、すなわち、圧縮フレーム863−s1、863−s2、863−s3を格納する。
<付加情報>
図9は、フレームと付加情報835との関係を示す説明図である。(A)はフレームFのデータ構造例を示す。フレームFは、フレーム番号901とフレームデータ902とを有する。フレームデータ902は、撮像により生成された画像データである。
(B)は、圧縮フレーム列を示す。(B)では、左(最古)から右(最新)に時系列に圧縮フレームが配列されている。#1a〜#6aは、30[fps]の撮像で出力された圧縮フレーム861−s1、861−s2、861−s3、862−s1、862−s2、862−s3のフレーム番号である。#1b〜#3bは、60[fps]の撮像で出力された圧縮フレーム863−s1、863−s2、863−s3のフレーム番号である。
(C)は、付加情報835のデータ構造例を示す。付加情報835は、撮像条件情報910と、挿入位置情報920と、を有する。撮像条件情報910は、上述したように、撮影条件(たとえば、30[fps]、60[fps]のようなフレームレート)ごとに動画ファイル800内でのメディアの格納位置を示す情報である。撮像条件情報910は、フレームレート情報911と位置情報912とを有する。
フレームレート情報911は、たとえば、30[fps]、60[fps]のようなフレームレートである。位置情報912は、動画ファイル800内での圧縮フレームの格納位置を示す情報であり、stsz847およびstco848を参照することで特定される。具体的には、たとえば、フレームレート情報911が30[fps]の圧縮フレームの位置情報912の値Paは、SOM850a〜EOM854aの範囲のアドレスを示す。同様に、フレームレート情報911が60[fps]の圧縮フレームの位置情報912の値Pbは、SOM850b〜EOM854bの範囲のアドレスを示す。
挿入位置情報920は、速い方のフレームレート(60[fps])のメディアのデータ(第2動画データ722)を遅い方のフレームレート(30[fps])のメディアのデータ(第1動画データ721)に挿入する位置を示す情報である。挿入位置情報920は、挿入フレーム番号921と、挿入先922と、を有する。挿入フレーム番号921は、挿入対象となる圧縮フレームのフレーム番号を示す。本例では、フレーム番号#1b〜#3bで特定される圧縮フレーム863−s1、863−s2、863−s3が挿入対象となる圧縮フレームである。
挿入先922は、挿入フレーム番号921で特定される圧縮フレームの挿入位置を示す。挿入先922は、具体的には、たとえば、2つのフレーム番号の間として特定される。たとえば、挿入フレーム番号#1bの圧縮フレーム863−s1は、挿入先922の2つのフレーム番号(#3a,#4a)で特定される圧縮フレーム861−s3と圧縮フレーム862−s1との間に挿入される。なお、図9では、挿入先922をフレーム番号を用いて特定したが、アドレス(stsz847およびstco848)を参照することで特定)を用いて特定してもよい。
なお、図8および図9においては、1つの動画ファイル800に、第1フレーム711を圧縮した圧縮データと、第2フレーム713を圧縮した圧縮データと、を格納する例について説明したが、第1フレーム711を圧縮した動画ファイルと、第2フレーム713を圧縮した動画ファイルと、を別々に生成してもよい。この場合、両動画ファイル800のヘッダ部801に、一方の動画ファイル800が他方の動画ファイル800と関連付ける関連情報が格納される。関連情報は、たとえば、ヘッダ部801のuuid812,831やmvhd833に格納される。
これにより、1つの動画ファイル800にまとめた場合と同様、伸張、合成、再生をおこなうことができる。たとえば、第1フレームレートが選択された場合には、第1フレーム711を圧縮した動画ファイルが伸張および再生され、第2フレームレートが選択された場合には、第1フレーム711を圧縮した動画ファイル800および第2フレーム713を圧縮した動画ファイル800が伸張され、合成および再生が実行される。
なお、付加情報835は、moov813内に格納されていれば、他のボックス(831〜834)に格納されていてもよい。
<合成処理例>
図10は、図7に示した合成部703における合成処理例1を示す説明図である。合成処理例1では、電子機器500は、田んぼ、山、および空を含む風景の定点撮影中に、特定被写体として、走行する電車を撮影する。特定被写体である電車は、上述した周知の被写体検出技術により特定される。撮影されたフレームFは、時系列順にフレームF1,F2−60,F3,F4−60,F5とする。ここでは、電車は、フレームF1,F2−60,F3,F4−60,F5内において、右から左に向かって走行するものとする。
フレームF1,F3,F5は、第1撮像領域が30[fps]の第1フレームレートの撮像で出力された第1画像領域a1の画像データと、第2撮像領域が60[fps]の第2フレームレートの撮像で出力された第2画像領域a2の画像データと、を含む第1フレーム711である。フレームF2−60,F4−60は、第2撮像領域が60[fps]の第2フレームレートの撮像で出力された第2画像領域a2の画像データを含み、かつ、背景が黒塗りで補完された第2フレーム713である。
具体的には、たとえば、フレームF1,F3,F5は、第1画像領域a1に田んぼ、山、および空を含む風景が撮像され、第2画像領域a2に特定被写体として走行する電車が撮像された第1フレーム711である。フレームF2−60,F4−60は、第2画像領域a2に電車が撮像されたフレームである。
すなわち、フレームF1,F2−60,F3,F4−60,F5において、電車が撮像された第2画像領域a2の画像データが、第2撮像領域(60[fps])の撮像で出力された画像データである。また、フレームF1,F3,F5において、風景が撮像された第1画像領域a1の画像データが、第1撮像領域(30[fps])の撮像で出力された画像データである。第1画像領域a1は、第1フレームレート(30[fps])の撮像で出力されるため、第2フレームレート(60[fps])の撮像で出力されるフレームF2−60,F4−60の補完領域712yは、特定色(黒)で塗りつぶされている。
フレームF1,F2−60,F3,F4−60,F5…は、上述した第1動画データ721および第2動画データ722に相当する。第2動画データ722は、補完領域712yが黒塗りの第2フレーム713を含むため、合成部703は、第1動画データ721と第2動画データ722とを合成する。
具体的には、たとえば、合成部703は、フレームF2−60よりも時間的に1つ前のフレームF1の第1画像領域a1の画像データ(電車を除いた風景)に、フレームF2−60の第2画像領域a2の画像データ(電車)を複製する。これにより、合成部703は、第3フレーム730であるフレームF2を生成する。
フレームF4−60も同様に、合成部703は、フレームF4−60よりも時間的に1つ前のフレームF3の第1画像領域a1の画像データ(電車を除いた風景)に、フレームF4−60の第2画像領域a2の画像データ(電車)を複製する。これにより、合成部703は、第3フレーム730であるフレームF4を生成する。そして、合成部703は、フレームF1〜F5を含む第4動画データ740を出力する。
このようにして、フレームF2−60,F4−60の補完領域712yに、時間的に1つ前の第1フレームレートのフレームF1、F3の第1画像領域a1を設定することにより、第1画像領域a1について、フレームF1,F2間の差分をほぼ0にし、フレームF3,F4間の差分をほぼ0にすることができる。これにより、違和感のない動画を再生することができる。
したがって、第1フレーム711と第3フレーム730とが混在するフレーム列である第4動画データ740を再生することが可能となる。また、第1動画データ721および第2動画データ722をそれぞれ従来の圧縮伸張部702により伸張することができ、伸張処理の処理負荷の低減を図ることができる。また、30[fps]で再生する場合は、圧縮伸張部702は、第1動画データ721のみ伸張するだけで、合成部703による合成は不要であるため、再生処理の効率化を図ることができる。
なお、フレームF2では、フレームF1の第1画像領域a1の画像データ(電車を除いた風景)が複製される。したがって、本来フレームF1の第2画像領域a2だった部分(電車の末尾)がフレームF2に複製されない。このため、フレームF2は、何も出力されていない補完画像部分Da1を有する。
同様に、フレームF4では、フレームF3の第1画像領域a1の画像データ(電車を除いた風景)が複製される。したがって、本来フレームF3の第2画像領域a2だった部分(電車の末尾)がフレームF4に複製されない。このため、フレームF4は、何も出力されていない補完画像部分Da3を有する。
実施例1では、補完画像部分Da1,Da3については、合成部703は、塗りつぶした特定色のままでもよく、周辺画素を用いて補間処理を実行してもよい。これにより、動画圧縮が可能で、かつ、違和感がより少ないフレームF2,F4,…を再現することができる。
図11は、図7に示した合成部703における合成処理例2を示す説明図である。合成処理例2では、電子機器500は、たとえば、ドライブレコーダであり、前方を走行する車(先行車)および風景を撮影する。この場合、先行車が追尾対象となる特定被写体であり、風景が自走により変化する。撮影により生成されたフレームFは、時系列順にフレームF6,F7−60,F8,F9−60,F10とする。
フレームF6,F8,F10は、第1撮像領域が30[fps]の第1フレームレートの撮像で出力された第1画像領域a1の画像データと、第2撮像領域が60[fps]の第2フレームレートの撮像で出力された第2画像領域a2の画像データ712と、を含む第1フレーム711である。フレームF7−60,F9−60は、第2撮像領域が60[fps]の第2フレームレートの撮像で出力された第2画像領域a2の画像データ712である。
具体的には、たとえば、フレームF6,F8,F10は、第1画像領域a1に先行車が撮像され、第2画像領域a2に変わりゆく風景が撮像された第1フレーム711である。フレームF7−60,F9−60は、第2画像領域a2に風景が撮像されたフレームである。
すなわち、フレームF6,F7−60,F8,F9−60,F10において、風景が撮像された第2画像領域a2の画像データが、第2撮像領域(60[fps])の撮像で出力された画像データある。また、フレームF6,F8,F10において、先行車が撮像された第1画像領域a1の画像データが、第1撮像領域(30[fps])の撮像で出力された動画データである。第1撮像領域は、第1フレームレート(30[fps])の撮像で出力されるため、第2フレームレート(60[fps])の撮像で出力されるフレームF7−60,F9−60の第1画像領域a1は、圧縮時に第1生成部701により黒塗りにされる。
合成部703は、フレームF7−60よりも時間的に1つ前のフレームF6の第1画像領域a1の画像データ(風景を除いた先行車)に、フレームF7−60の第2画像領域a2の画像データ(風景)を複製する。これにより、合成部703は、第3フレーム730であるフレームF7を生成する。
フレームF9も同様に、合成部703は、フレームF9−60よりも時間的に1つ前のフレームF8の第1画像領域a1の画像データ(風景を除いた先行車)に、フレームF9−60の第2画像領域a2の画像データ(風景)を複製する。これにより、合成部703は、第3フレーム730であるフレームF9を生成する。そして、合成部703は、フレームF6〜F10を含む第4動画データ740を出力する。
このようにして、フレームF7−60,F9−60の補完領域712yに、時間的に1つ前の第1フレームレートのフレームF6,F8の第2画像領域a2を設定することにより、第1画像領域a1について、フレームF6,F7間の差分を0にし、フレームF8,F9間の差分を0にすることができる。
したがって、第1フレーム711と画像データ712とが混在するフレーム列である第4動画データ740を再生することが可能となる。また、第1動画データ721および第2動画データ722をそれぞれ従来の圧縮伸張部702により伸張することができ、伸張処理の処理負荷の低減を図ることができる。また、30[fps]で再生する場合は、圧縮伸張部702は、第1動画データ721のみ伸張するだけで、合成部703による合成は不要であるため、再生処理の効率化を図ることができる。
<制御部502の構成例>
図12は、図5に示した制御部502の構成例を示すブロック図である。制御部502は、前処理部1210と、第1生成部701と、取得部1220と、圧縮伸張部702と、特定部1240と、合成部703と、再生部704と、を有する。制御部502は、プロセッサ1201、記憶デバイス1202、集積回路1203、およびこれらを接続するバス1204により構成される。なお、記憶デバイス1202、伸張部1234、特定部1240、合成部703、および再生部704は、電子機器500とアクセス可能な他の装置に実装されていてもよい。
前処理部1210、第1生成部701、取得部1220、圧縮伸張部702、特定部1240、合成部703、および再生部704は、記憶デバイス1202に記憶されたプログラムをプロセッサ1201に実行させることにより実現してもよく、ASIC(Application Specific Integrated Circuit)やFPGA(Field−Programmable Gate Array)などの集積回路1203により実現してもよい。また、プロセッサ1201は、記憶デバイス1202をワークエリアとして利用してもよい。また、集積回路1203は、記憶デバイス1202を、画像データを含む各種データを一時的に保持するバッファとして利用してもよい。
なお、少なくとも圧縮伸張部702内の圧縮部1231を含む装置は、動画圧縮装置となる。少なくとも圧縮伸張部702内の第2生成部1232を含む装置は、生成装置となる。また、少なくとも圧縮伸張部702内の伸張部1234を含む装置は、伸張装置となる。また、少なくとも再生部704を含む装置は、再生装置となる。
前処理部1210は、撮像素子100からの入力動画データ710について動画ファイル800の生成の前処理を実行する。具体的には、たとえば、前処理部1210は、検出部1211と設定部1212とを有する。検出部1211は、上述した周知の被写体検出技術により、特定被写体を検出する。
設定部1212は、撮像素子100の撮像面200のうち、特定被写体が検出された撮像領域を第1フレームレート(たとえば、30[fps])から第2フレームレート(たとえば、60[fps])に変更する。
具体的には、たとえば、設定部1212は、入力フレームでの特定被写体が検出された撮像領域と入力済みフレームの特定被写体が検出された撮像領域との差分から特定被写体の動きベクトルを検出して、次の入力フレームでの特定被写体の撮像領域を予測する。設定部1212は、予測した撮像領域について第2フレームレートに変更する。設定部1212は、第1フレームレート(たとえば、30[fps])の画像領域と第2フレームレート(たとえば、60[fps])の画像領域とを示す情報をフレームFに付与する。
第1生成部701は、特定被写体が撮像された第2フレームレートの画像領域である画像データ712について、第2フレームレートの撮像で出力されかなった欠損領域712xを特定色で補完して、補完領域712yにする。具体的には、たとえば、図10のフレームF2−60、F4−60では、60[fps]の撮像で出力された特定被写体像である第2画像領域a2以外の画像領域(背景に相当)が補完領域712yである。
また、図11のフレームF7−60、F9−60では、60[fps]で撮像された変わりゆく風景である第2画像領域a2以外の画像領域(先行車に相当)が補完領域712yである。第1生成部701は当該欠損領域712xを特定色に設定し、欠損領域712xを解消する。
このように、特定色である補完領域712yの画像データは、第2撮像領域からの出力に基づかないデータであり、第2撮像領域からの出力データとは無関係な所定のデータとして構成される。
取得部1220は、前処理部1210から出力された入力動画データ710、または、第1動画データ721および第2動画データ722を取得して、記憶デバイス1202に保持し、所定のタイミングで複数のフレームを時系列順に1フレームずつ圧縮伸張部702に出力する。具体的には、たとえば、取得部1220は、特定被写体が検出されていない場合は前処理部から入力動画データ710を取得し、特定被写体が検出された場合は、第1動画データ721および第2動画データ722を取得する。
圧縮伸張部702は、圧縮部1231と第2生成部1232と選択部1233と伸張部1234と格納部1235とを有する。圧縮部1231は、取得部1220からの動画データを圧縮する。具体的には、たとえば、圧縮部1231は、特定被写体が検出されていない動画データを取得した場合、各フレームは、第1画像領域a1であるため、動き検出や動き補償が不要な圧縮処理を実行する。
また、圧縮部1231は、第1動画データ721および第2動画データ722を取得した場合、第1動画データ721と第2動画データ722とをそれぞれ圧縮する。具体的には、たとえば、圧縮部1231は、第1動画データ721の場合、第1画像領域a1の画像データについては、動き検出や動き補償が不要な圧縮処理を実行し、特定被写体が撮像された第2画像領域a2の画像データについては、上述したハイブリッド符号化によって圧縮する。このように、特定被写体像以外の領域については、動き検出や動き補償が実行されないため、動画圧縮の処理負荷の低減を図る。
また、圧縮部1231は、第2動画データ722の場合も、補完領域712y(黒塗り)の画像データについては、動き検出や動き補償が不要な圧縮処理を実行し、特定被写体が撮像された第2画像領域a2の画像データについては、上述したハイブリッド符号化によって圧縮する。このように、特定被写体像以外の補完領域712yについては、動き検出や動き補償が実行されないため、動画圧縮の処理負荷の低減を図る。また、補完領域712yが存在するため、第2フレーム713は、第1フレーム711と同様に、通常の動画圧縮処理の適用が可能となる。
このように、第2フレームレート(60[fps])で得られた第2フレーム713は、第1フレームレート(30[fps])で得られた第1フレーム711と同サイズとなる。したがって、第2フレーム713は、第1フレーム711の圧縮処理と同じ圧縮処理が適用されるため、画像データ712のサイズに適合する他の圧縮処理を適用する必要がない。すなわち、圧縮部1231は、第1フレーム711で適用した圧縮処理を、第2フレーム713にもそのまま適用することができる。このため、画像データ712用の他の圧縮処理を実装する必要がない。
第2生成部1232は、圧縮部1231で圧縮された動画データ(圧縮データ)を含む動画ファイル800を生成する。具体的には、たとえば、第2生成部1232は、図8に示したようなファイルフォーマットに従って、動画ファイル800を生成する。格納部1235は、生成した動画ファイル800を記憶デバイス1202に格納する。
なお、圧縮部1231は、たとえば、圧縮データをバッファメモリに格納し、第2生成部1232は、バッファメモリに格納された圧縮データを読み出して、動画ファイル800を生成してもよい。
選択部1233は、動画ファイル800の再生指示を操作部505から受け付けて、伸張対象となる動画ファイル800を記憶デバイス1202から読み出して、伸張部1234に渡す。伸張部1234は、選択部1233から渡された動画ファイル800を、ファイルフォーマットに従って伸張する。
すなわち、伸張部1234は、汎用の伸張処理を実行する。具体的には、たとえば、伸張部1234は、入力された圧縮フレームに可変長復号処理、逆量子化、逆変換を実行し、フレーム内予測またはフレーム間予測を適用して、圧縮フレームを元のフレームに伸張する。
動画ファイル800には、特定被写体が検出されていない動画データを圧縮した動画ファイル800と、第1動画データ721および第2動画データ722を圧縮した動画ファイル800とがある。前者の動画ファイル800は、本例では、30[fps]のフレームレートの撮像で出力された、たとえば、電車が通過していない風景のみの定点撮影された動画データである。したがって、伸張部1234は、選択部1233が当該動画ファイル800の再生指示の選択を受け付けると、当該動画ファイル800をファイルフォーマットに従って伸張する。
一方、第1動画データ721および第2動画データ722を圧縮した動画ファイル800は、第1動画データ721および第2動画データ722の圧縮動画データを含む。したがって、選択部1233は、第1動画データ721および第2動画データ722を圧縮した動画ファイル800の再生指示の選択を受け付けた場合には、当該再生指示で選択されているフレームレート(たとえば、30[fps],60[fps])を特定する。
選択フレームレートが30[fps]である場合、選択部1233は、第1動画データ721の圧縮データとして、動画ファイル800のmdat820内のSOM850a〜EOM854aの間に存在するチャンク群を伸張部1234に渡す。これにより、伸張部1234は、第1動画データ721の圧縮データを第1動画データ721に伸張することができる。
選択フレームレートが60[fps]である場合、選択部1233は、第1動画データ721の圧縮データとして、動画ファイル800のmdat820内のSOM850a〜EOM854aの間に存在するチャンク群を伸張部1234に渡すとともに、第2動画データ722の圧縮データとして、動画ファイル800のmdat820内のSOM850b〜EOM854bの間に存在するチャンク群を伸張部1234に渡す。これにより、伸張部1234は、第1動画データ721の圧縮データを第1動画データ721に伸張し、かつ、第2動画データ722の圧縮データを第2動画データ722に伸張することができる。
なお、このように、伸張部1234は、伸張対象の圧縮データが2つ存在する場合、第1動画データ721の圧縮データ,第2動画データ722の圧縮データの順(逆でもよい)に伸張してもよく、第1動画データ721の圧縮データ,第2動画データ722の圧縮データを並列に伸張してもよい。
特定部1240は、伸張部1234で第1動画データ721および第2動画データ722が伸張された場合、第1動画データ721内の第1フレーム711(たとえば、図10のフレームF1)と、第2動画データ722内の第2フレーム713(たとえば、図10のフレームF2−60)と、に基づいて、差分領域を特定する。
差分領域とは、第1フレーム711における第2撮像領域に対応する第2画像領域a2と、第2フレーム713における第2撮像領域に対応する第2画像領域a2と、の差分を示す領域である。フレームF1とフレームF2−60との差分領域は、フレームF2−60における電車の後方の白点線矩形の領域Da1となる。フレームF3とフレームF4−60との差分領域は、フレームF4−60における電車の後方の白点線矩形の領域Da3となる。
合成部703は、図7〜図11に示したように、第2フレーム713(たとえば、図10のフレームF2−60)に、時間的に1つ前の第1画像領域a1の画像データを含む第1フレーム711(たとえば、図10のフレームF1)を複製して合成し、第3フレーム730(たとえば、図10のフレームF2)を生成する。なお、合成部703は、特定部1240で特定された差分領域(Da1,Da3)に、第1フレーム711において当該差分領域と同一位置における第2画像領域a2の画像データ(電車の末尾部分)を複製してもよい。これにより、時間的に連続する第1フレーム711と第3フレーム730との差分をほぼ0にすることができる。したがって、違和感のない動画を再生することができる。
なお、特定部1240および合成部703において、フレームF2−60の第1動画データ721への挿入位置は、付加情報835の挿入位置情報920で特定される。たとえば、フレームF1、F3のフレーム番号がそれぞれ#4a,#5a、フレームF2−60のフレーム番号が#2bとすると、挿入フレーム番号921の値#2bの挿入位置922は(#4a,#5a)となる。したがって、フレームF2−60の挿入位置は、フレームF1、F3の間と特定される。
<圧縮部1231の構成例>
図13は、圧縮部1231の構成例を示すブロック図である。上述したように、圧縮部1231は、動き補償フレーム間予測(MC)と離散コサイン変換(DCT)とに、エントロピー符号化を組み合わせたハイブリッド符号化によって、取得部1220からの各フレームFを圧縮する。
圧縮部1231は、減算部1301と、DCT部1302と、量子化部1303と、エントロピー符号化部1304と、符号量制御部1305と、逆量子化部1306と、逆DCT部1307と、生成部1308と、フレームメモリ1309と、動き検出部1310と、動き補償部1311と、圧縮制御部1312と、を有する。減算部1301〜動き補償部1311は、既存の圧縮器と同様な構成である。
具体的には、たとえば、減算部1301は、入力フレームから、当該入力フレームを予測する動き補償部1311からの予測フレームを減算して差分データを出力する。DCT部1302は、減算部1301からの差分データを離散コサイン変換する。
量子化部1303は、離散コサイン変換された差分データを量子化する。エントロピー符号化部1304は、量子化された差分データをエントロピー符号化し、また、動き検出部1310からの動きベクトルもエントロピー符号化する。
符号量制御部1305は、量子化部1303による量子化を制御する。逆量子化部1306は、量子化部1303で量子化された差分データを逆量子化して、離散コサイン変換された差分データにする。逆DCT部1307は、逆量子化された差分データを逆離散コサイン変換する。
生成部1308は、逆離散コサイン変換された差分データと、動き補償部1311からの予測フレームとを加算して、当該入力フレームよりも時間的に後に入力されるフレームが参照する参照フレームを生成する。フレームメモリ1309は、生成部1308から得られた参照フレームを保持する。動き検出部1310は、入力フレームと参照フレームとを用いて、動きベクトルを検出する。動き補償部1311は、参照フレームと動きベクトルとを用いて、予測フレームを生成する。
動き補償部1311は、具体的には、たとえば、フレームメモリ1309に保持された複数の参照フレームのうち特定の参照フレームと動きベクトルとを用いて、第2フレームレートの撮像で出力されたフレームの動き補償を実行する。参照フレームを特定の参照フレームとすることにより、特定の参照フレーム以外の他の参照フレームをも用いた高負荷の動き補償を抑制することができる。また、特定の参照フレームを、入力フレームの時間的に1つ前のフレームから得られた1枚の参照フレームとすることにより、高負荷な動き補償を回避して、動き補償の処理負荷の低減を図ることができる。
圧縮制御部1312は、動き検出部1310と動き補償部1311を制御する。具体的には、たとえば、圧縮制御部1312は、動き検出部1310で動きがないことを示す特定の動きベクトルを設定する第1圧縮制御方法と、動き検出自体をスキップする第2圧縮制御方法を実行する。
第1圧縮制御方法について説明する。第1動画データ721の場合、圧縮制御部1312は、動き検出部1310を制御して、第1フレームレート(たとえば、30[fps])の撮像で出力された第1画像領域a1については、動きベクトルの検出ではなく、動きがないことを示す特定の動きベクトルを設定して、動き補償部1311に出力する。また、圧縮制御部1312は、動き検出部1310を制御して、第2フレームレート(たとえば、60[fps])の撮像で出力された第2画像領域a2については、動きベクトルを検出して、動き補償部1311に出力する。特定の動きベクトルは、方向が規定されず、かつ、動き量が0の動きベクトルである。このように、第1フレームレート(たとえば、30[fps])の撮像で出力された第1画像領域a1については、動きベクトルの検出は行わない。
この場合、圧縮制御部1312は、動き補償部1311を制御して、第1画像領域a1の画像データについては、特定の動きベクトルと参照フレームとに基づいて動き補償を実行する。圧縮制御部1312は、第2画像領域a2の画像データについては、動き検出部1310によって検出された動きベクトルに基づいて動き補償を実行する。なお、第2動画データ722の場合は、第1フレームレート(たとえば、30[fps])の撮像で出力された第1画像領域a1を特定色で塗りつぶした領域に置き換えればよい。
第2圧縮制御方法について説明する。第1動画データ721の場合、圧縮制御部1312は、動き検出部1310を制御して、補完領域712yの画像データについては、動きベクトルの検出を実行しない。また、圧縮制御部1312は、動き検出部1310を制御して、第2フレームレート(たとえば、60[fps])の撮像で出力された第2画像領域a2については、動きベクトルの検出を実行する。
この場合、圧縮制御部1312は、動き補償部1311を制御して、第1画像領域a1の画像データについては、参照フレームに基づいて動き補償を実行する。すなわち、動きベクトルがないため、圧縮制御部1312は、動き補償部1311を制御して、補完領域712yの画像データについては、参照フレームを、入力フレームの時間的に1つ後のフレームを予測する予測フレームに決定する。
また、圧縮制御部1312は、動き補償部1311を制御して、第2画像領域a2の画像データについては、参照フレームと動き検出部1310によって検出された動きベクトルに基づいて動き補償を実行する。なお、第2動画データ722の場合は、第1フレームレート(たとえば、30[fps])の撮像で出力された第1画像領域a1を補完領域712yに置き換えればよい。
第1圧縮制御方法によれば、動きベクトルが特定の動きベクトルであるため、第1画像領域a1および補完領域712yでの動き検出が簡略化される。したがって、動画圧縮の処理負荷の低減を図る。また、第2圧縮制御方法によれば、第1画像領域a1および補完領域712yについて動き検出自体が実行されないため、第1圧縮制御方法よりも、動画圧縮の処理負荷の低減を図る。
<制御部502の動作処理手順例>
図14は、制御部502の動作処理手順例を示すシーケンス図である。図14では、説明の便宜上、取得部1220を省略する。前処理部1210は、たとえば、ユーザが操作部505を操作することにより、または、ステップS1412の特定被写体の非検出の場合(ステップS1412:Yes)は自動で、撮像素子100の撮像面200全域の撮像条件を第1フレームレート(たとえば、30[fps])に設定する(ステップS1401)。
これにより、撮像素子100では、撮像面200全域の撮像条件が第1フレームレートに設定され(ステップS1402)、撮像素子100は、被写体を第1フレームレートで撮像して、入力動画データ710を前処理部1210に出力する(ステップS1403)。
前処理部1210は、入力動画データ710が入力されると(ステップS1403)、設定処理を実行する(ステップS1404)。設定処理(ステップS1404)は、入力動画データ710の各フレームに、フレームレートを設定する。たとえば、第1フレームレート(たとえば、30[fps])が付加された画像領域は、第1画像領域a1として認識され、第2フレームレート(たとえば、60[fps])が付加された画像領域は、第2画像領域a2として認識される。
また、前処理部1210は、入力動画データ710を第1生成部701に出力する(ステップS1405)。また、前処理部1210は、設定処理(ステップS1404)で次の入力フレームの第2フレームレートの画像領域が検出されなかった場合(ステップS1406:No)、ステップS1403の入力動画データ710の入力を待ち受ける。一方、前処理部1210は、設定処理(ステップS1404)で次の入力フレームの第2フレームレートの画像領域が検出された場合(ステップS1406:Yes)、特定被写体を含む第2画像領域a2を第2フレームレート(たとえば、60[fps])に設定変更する(ステップS1407)。
そして、ステップS1407の設定変更内容にしたがって撮像面200全域のうち第2撮像領域の撮像条件が第2フレームレートに設定される。これにより、撮像素子100は、撮像素子100は、被写体を第1撮像領域では第1フレームレートで撮像し、第2撮像領域では第2フレームレートで撮像して、入力動画データ710を前処理部1210に出力する(ステップS1409)。
前処理部1210は、入力動画データ710が入力されると(ステップS1409)、設定処理を実行する(ステップS1410)。設定処理(ステップS1410)は、設定処理(ステップS1404)と同一処理である。設定処理(ステップS1410)の詳細については、図15で後述する。前処理部1210は、入力動画データ710を第1生成部701に出力する(ステップS1411)。
前処理部1210は、特定被写体が非検出になった場合(ステップS1412:Yes)、ステップS1401に戻り、撮像面200全域を第1フレームレートに設定変更する(ステップS1401)。一方、特定被写体が検出され続けている場合(ステップS1412:No)、ステップS1407に戻り、特定被写体の検出位置に応じた第2画像領域a2を第2フレームレートに変更する(ステップS1407)。なお、この場合、特定被写体が検出されなくなった画像領域については、前処理部1210は、第1フレームレートに設定変更する。
また、第1生成部701は、入力動画データ710が入力されると(ステップS1405)、補完処理を実行する(ステップS1413)。なお、補完処理(ステップS1413)では、第1生成部701は、各フレームのフレームレートを参照して、入力動画データ710の各フレームは、第1フレーム711のみであると特定する。
したがって、特定被写体が撮像されていないため画像データ712が存在しない。したがって、第1生成部701は、画像データ712を補完しない。補完処理(ステップS1413)の詳細については、図18で後述する。第1生成部701は、入力動画データ710を圧縮部1231に出力する(ステップS1414)。
また、第1生成部701は、入力動画データ710が入力されると(ステップS1411)、補完処理を実行する(ステップS1415)。なお、補完処理(ステップS1415)では、第1生成部701は、各フレームのフレームレートを参照して、入力動画データ710の各フレームは、第1フレーム711および画像データ712を含むと判断する。
したがって、第1フレーム711および画像データ712に特定被写体が撮像されているため、第1生成部701は、第2フレーム713を生成する。補完処理(ステップS1415)の詳細については、図18で後述する。第1生成部701は、第1フレーム711および第2フレーム713を圧縮部1231に出力する(ステップS1416)。
圧縮部1231および第2生成部1232は、入力動画データ710が入力されると(ステップS1414)、入力動画データ710の動画ファイル生成処理を実行する(ステップS1417)。入力動画データ710は、第1フレーム711のみで構成されるため、圧縮部1231は、圧縮処理(ステップS1417)において、動き検出や動き補償が不要な圧縮符号化を実行する。動画ファイル生成処理(ステップS1417)の詳細については、図18〜図24で後述する。
また、圧縮部1231および第2生成部1232は、第1動画データ721および第2動画データ722が入力されると(ステップS1416)、第1動画データ721および第2動画データ722の動画ファイル生成処理を実行する(ステップS1418)。第1動画データ721は、第1フレーム711で構成され、第2動画データ722は、第2フレーム713で構成される。
圧縮部1231は、動画ファイル生成処理(ステップS1418)において、圧縮対象が第1動画データ721である場合、第1画像領域a1の画像データについては、動き検出や動き補償が不要な圧縮処理を実行し、特定被写体が撮像された第2画像領域a2の画像データについては、上述したハイブリッド符号化によって圧縮する。このように、特定被写体像以外の領域については、動き検出や動き補償が実行されないため、動画圧縮の処理負荷の低減を図る。
また、圧縮部1231は、圧縮対象が第2動画データ722である場合も、補完領域712y(黒塗り)の画像データについては、動き検出や動き補償が不要な圧縮処理を実行し、特定被写体が撮像された第2画像領域a2の画像データについては、上述したハイブリッド符号化によって圧縮する。このように、特定被写体像以外の領域については、動き検出や動き補償が実行されないため、動画圧縮の処理負荷の低減を図る。動画ファイル生成処理(ステップS1418)の詳細については、図18〜図24で後述する。
<設定処理(ステップS1404、S1410)>
図15は、図14に示した設定処理(ステップS1404、S1410)の詳細な処理手順例を示すフローチャートである。図15では、撮像素子100には、あらかじめ第1フレームレート(例:30[[fps])が設定されており、検出部1211の被写体検出技術により第2フレームレート(例:60[[fps])の画像領域を追尾して、撮像素子100にフィードバックする。なお、第1フレームレートおよび第2フレームレートの画像領域は、常時固定でもよい。
前処理部1210は、入力動画データ710を構成するフレームの入力を待ち受け(ステップS1501)、フレームが入力された場合(ステップS1501:Yes)、検出部1211により主要被写体などの特定被写体が検出されたか否かを判断する(ステップS1502)。特定被写体が検出されていない場合(ステップS1502:No)、ステップS1504に移行する。
一方、特定被写体が検出された場合(ステップS1502:Yes)、前処理部1210は、検出部1211により、時間的に1つ前のフレーム(たとえば、参照フレーム)と入力フレームとを比較して動きベクトルを検出し、次の入力フレームでの第2フレームレートの画像領域を予測し、撮像素子100に出力し、ステップS1504に移行する(ステップS1503)。これにより、撮像素子100は、予測された画像領域に対応する撮像領域を構成するブロック202の撮像条件を第2フレームレートに設定し、残余のブロック202の撮像条件を第1フレームレートに設定して、被写体を撮像することができる。
そして、前処理部1210は、入力フレームについてフレームレート設定処理を実行し(ステップS1504)、ステップS1501に戻る。フレームレート設定処理(ステップS1505)は、上述したフレームレートをフレームFに設定する処理であり、図16で詳細に説明する。
フレームFの入力がない場合(ステップS1501:No)、入力動画データ710の入力が終了しているため、前処理部1210は、設定処理(ステップS1404、S1410)を終了する。
<フレームレート設定処理(ステップS1504)>
図16は、図15に示したフレームレート設定処理(ステップS1504)の詳細な処理手順例を示すフローチャートである。前処理部1210は、フレームが入力されると(ステップS1601)、入力フレームに未選択画像領域があるか否かを判断する(ステップS1602)。未選択画像領域がある場合(ステップS1602:Yes)、前処理部1210は、未選択画像領域を1つ選択し(ステップS1603)、特定被写体の検出フラグがONであるか否かを判断する(ステップS1604)。検出フラグは、特定被写体の検出の有無を示す情報であり、デフォルトはOFF(非検出)である。
図14のステップS1406で特定被写体が検出された場合(ステップS1406:Yes)、前処理部1210は、検出フラグをOFFからON(検出中)に変更する。ステップS1412で特定被写体が非検出となった場合(ステップS1412:Yes)、前処理部1210は、検出フラグをONからOFFに変更する。
検出フラグがOFFである場合(ステップS1604:No)、選択画像領域について第1フレームレートを示す情報を入力フレームに設定し(ステップS1605)、ステップS1602に戻る。一方、検出フラグがONである場合(ステップS1604:Yes)、前処理部1210は、選択画像領域は、特定被写体像が存在する画像領域であるか否かを判断する(ステップS1606)。
特定被写体像が存在しない場合(ステップS1606:No)、ステップS1602に戻る。一方、特定被写体像が存在する場合(ステップS1606:Yes)、前処理部1210は、選択画像領域について第2フレームレートを示す情報を入力フレームに設定し(ステップS1607)、ステップS1602に戻る。
ステップS1602において、未選択画像領域がない場合(ステップS1602:No)、前処理部1210は、フレームレート設定処理を終了する。このあと、前処理部1210は、フレームレートを撮像素子100に設定する(ステップS1401、S1407)。
各フレームの画像領域ごとに、フレームレートを示す情報を設定することにより、前処理部1210は、どの画像領域に対応する撮像素子100の撮像領域をどのフレームレートに設定すればよいかを特定することができる。また、第1生成部701および圧縮部1231は、入力されたフレームFの各画像領域のフレームレートを特定することができる。
<補完処理(ステップS1413,S1415)>
図17は、第1生成部701による補完処理手順例を示すフローチャートである。第1生成部701は、フレームFの入力を受け付けると(ステップS1701)、入力フレームのフレームレートを参照する(ステップS1702)。第2フレームレート(60[fps])のみでない場合(ステップS1703:No)、第1生成部701は、補完処理を実行せずに終了する。第2フレームレート(60[fps])のみである場合(ステップS1703:Yes)、入力フレームは画像データ712であるため、第1生成部701は、補完処理を実行して、入力フレームを第2フレーム713にする(ステップS1704)。これにより、図10に示したフレームF2−60、フレームF4−60、図11に示したフレームF7−60、フレームF9−60を生成することができる。
<動画ファイル生成処理(ステップS1417、S1418)>
図18は、図14に示した動画ファイル生成処理(ステップS1417、S1418)の詳細な処理手順例を示すフローチャートである。圧縮部1231は、第1フレーム711からなる第1動画データ721の圧縮と、第2フレーム713からなる第2動画データ722の圧縮と、を別々に行うことになる。圧縮部1231は、フレームFの入力を受け付けると(ステップS1801)、入力フレームについて圧縮符号化を実行する(ステップS1802)。圧縮符号化の詳細な制御内容については、図19〜図24を用いて後述する。
このあと、第2生成部1232は、圧縮符号化したデータから、図8に示したuuid831,udta832,mvhd833,trak834などのメタデータを生成する(ステップS1803)。なお、第2生成部1232は、圧縮前の情報が必要なメタデータについては、ステップS1803を、圧縮符号化(ステップS1802)の前に実行してもよい。
第2生成部1232は、フレームFに付与されたフレームレートを示す情報を参照して、撮像条件情報910を生成し(ステップS1804)、チャンクの位置情報(stsz847およびstco848)を参照し、第2フレーム713の挿入先を特定して、挿入位置情報を生成する(ステップS1805)。ステップS1804、S1805により付加情報835が生成される。そして、第2生成部1232は、ヘッダ部801とデータ部802とを合わせて動画ファイル800を生成し(ステップS1806)、記憶デバイス1202に格納する(ステップS1807)。
<圧縮処理例:第1圧縮制御方法>
つぎに、図18に示した圧縮部1231による圧縮符号化(ステップS1802)を第1圧縮制御方法と第2圧縮制御方法に分けて説明する。
図19は、圧縮制御部1312による第1圧縮制御方法の圧縮制御処理手順例を示すフローチャートである。圧縮制御部1312は、入力フレーム(第1フレーム711または第2フレーム713)を取得し(ステップS1901)、取得した入力フレームから未選択画像領域を選択する(ステップS1902)。そして、圧縮制御部1312は、選択画像領域のフレームレートを入力フレームから参照する(ステップS1903)。
なお、入力フレームが第1フレーム711である場合、選択画像領域は、第1フレームレートの撮像で出力された第1画像領域a1または第2フレームレートの撮像で出力された第2画像領域a2となる。また、入力フレームが第2フレーム713である場合、選択画像領域は、第1フレームレートの撮像で出力された第1画像領域a1に対応する補完領域712yまたは第2フレームレートの撮像で出力された第2画像領域a2となる。
選択画像領域のフレームレートが第2フレームレートである場合(ステップS1903:第2FR)、圧縮制御部1312は、選択画像領域の画像データを動き検出部1310に出力する(ステップS1904)。これにより、動き検出部1310は、第2フレームレートの選択画像領域については、通常通り、参照フレームを用いて動きベクトルを検出する。
一方、選択画像領域のフレームレートが第1フレームレートである場合(ステップS1903:第1FR)、圧縮制御部1312は、第1フレームレートの選択画像領域にスキップフラグを設定して、動き検出部1310に出力する(ステップS1905)。これにより、動き検出部1310は、第1フレームレートの選択画像領域については、動きがないことを示す特定の動きベクトルを設定することになる。
ステップS1904またはS1905のあと、圧縮制御部1312は、取得した入力フレームに未選択画像領域があるか否かを判断する(ステップS1906)。未選択画像領域がある場合(ステップS1906:Yes)、ステップS1902に戻る。一方、未選択画像領域がない場合(ステップS1906:No)、圧縮制御部1312は、一連の処理を終了する。
図20は、動き検出部1310による第1圧縮制御方法の動き検出処理手順例を示すフローチャートである。動き検出部1310は、入力フレームよりも時間的に1つ前の参照フレームをフレームメモリ1309から取得し(ステップS2001)、図19のステップS1904またはS1905で出力された選択画像領域の入力を待ち受ける(ステップS2002:No)。
選択画像領域が入力された場合(ステップS2002:Yes)、動き検出部1310は、選択画像領域と同一箇所の画像領域の画像データを参照フレームから取得する(ステップS2003)。そして、動き検出部1310は、選択画像領域にスキップフラグがあるか否かを判断する(ステップS2004)。スキップフラグがない場合(ステップS2004:No)、選択画像領域のフレームレートが第2フレームレートである。したがって、動き検出部1310は、選択画像領域の画像データと、ステップS2003で取得した参照フレームの画像領域の画像データとを用いて、動きベクトルを検出する(ステップS2005)。
一方、スキップフラグがある場合(ステップS2004:Yes)、動き検出部1310は、動きがないことを示す特定の動きベクトルを設定する(ステップS2006)。これにより、動き検出部1310での動き検出処理は、常に、動きがないことを示す特定の動きベクトルを用いるため、第1フレームレートの選択画像領域について、動き検出の処理負荷が低減される。そして、動き検出部1310は、ステップS2005またはS2006で得られた動きベクトルを動き補償部1311に出力して(ステップS2007)、一連の処理を終了する。
図21は、動き補償部1311による第1圧縮制御方法の動き補償処理手順例を示すフローチャートである。動き補償部1311は、フレームメモリ1309から参照フレームを取得する(ステップS2101)。動き補償部1311は、選択画像領域と同一箇所の画像領域を参照フレームから取得する(ステップS2102)。
そして、動き補償部1311は、動き検出部1310からの選択画像領域についての動きベクトルと、ステップS2102で取得された参照フレームの画像領域とを用いて、動き補償を実行する(ステップS2103)。これにより、動き補償部1311は、選択画像領域における予測画像データを生成することができる。
そして、動き補償部1311は、全選択画像領域の動き補償が終了したか否かを判断する(ステップS2104)。具体的には、たとえば、圧縮制御部1312がステップS1906で未選択画像領域があると判断した場合に(ステップS1906:Yes)、動き補償部1311は、全選択画像領域の動き補償が終了していないと判断し(ステップS2104:No)、ステップS2102に戻る。
一方、圧縮制御部1312がステップS1906で未選択画像領域がないと判断した場合に(ステップS1906:No)、動き補償部1311は、全選択画像領域の動き補償が終了したと判断する(ステップS2104:Yes)。そして、動き補償部1311は、全選択画像領域についての予測画像データを結合した予測フレームを減算部1301および生成部1308に出力して(ステップS2105)、一連の処理を終了する。
<圧縮処理例:第2圧縮制御方法>
図22は、圧縮制御部1312による第2圧縮制御方法の圧縮制御処理手順例を示すフローチャートである。圧縮制御部1312は、入力フレームを取得し(ステップS2201)、取得した入力フレームから未選択画像領域を選択する(ステップS2202)。そして、圧縮制御部1312は、選択画像領域のフレームレートを入力フレームから参照する(ステップS2203)。
選択画像領域のフレームレートが第2フレームレートである場合(ステップS2203:第2FR)、圧縮制御部1312は、選択画像領域を動き検出部1310に出力する(ステップS2204)。これにより、動き検出部1310は、第2フレームレートの選択画像領域については、通常通り、参照フレームを用いて動きベクトルを検出する。
一方、選択画像領域のフレームレートが第1フレームレートである場合(ステップS2203:第1FR)、圧縮制御部1312は、第1フレームレートの選択画像領域にスキップフラグを設定して、動き検出部1310に出力する(ステップS2205)。これにより、動き検出部1310は、第1フレームレートの選択画像領域については、動き検出を実行しないことになる。そして、圧縮制御部1312は、選択画像領域の動き補償停止指示を発行して、動き補償部1311に出力する(ステップS2206)。これにより、当該選択画像領域について動き補償の実行を停止することができる。
ステップS2204またはS2206のあと、圧縮制御部1312は、取得した入力フレームに未選択画像領域があるか否かを判断する(ステップS2207)。未選択画像領域がある場合(ステップS2207:Yes)、ステップS2202に戻る。一方、未選択画像領域がない場合(ステップS2207:No)、圧縮制御部1312は、一連の処理を終了する。
図23は、動き検出部1310による第2圧縮制御方法の動き検出処理手順例を示すフローチャートである。動き検出部1310は、入力フレームFよりも時間的に1つ前の参照フレームをフレームメモリ1309から取得し(ステップS2301)、図22のステップS2204またはS2205で出力された選択画像領域の入力を待ち受ける(ステップS2302:No)。
選択画像領域が入力された場合(ステップS2302:Yes)、動き検出部1310は、選択画像領域と同一箇所の画像領域の画像データを参照フレームから取得する(ステップS2303)。そして、動き検出部1310は、選択画像領域にスキップフラグがあるか否かを判断する(ステップS2304)。スキップフラグがない場合(ステップS2304:No)、選択画像領域のフレームレートが第2フレームレートである。したがって、動き検出部1310は、選択画像領域の画像データと、ステップS2003で取得した参照フレームの画像領域の画像データとを用いて、動きベクトルを検出する(ステップS2305)。
そして、動き検出部1310は、ステップS2305で得られた動きベクトルを動き補償部1311に出力して(ステップS2306)、一連の処理を終了する。一方、スキップフラグがある場合(ステップS2304:Yes)、動き検出部1310は、動き検出を実行せずに、一連の処理を終了する。
図24は、動き補償部1311による第2圧縮制御方法の動き補償処理手順例を示すフローチャートである。動き補償部1311は、フレームメモリ1309から参照フレームを取得する(ステップS2401)。動き補償部1311は、選択画像領域と同一箇所の画像領域を参照フレームから取得する(ステップS2402)。
そして、動き補償部1311は、選択画像領域についての動き補償のトリガ入力が動きベクトルか動き補償停止指示のいずれかであるかを判断する(ステップS2403)。トリガ入力が動きベクトルである場合(ステップS2403:動きベクトル)、動き補償部1311は、動き検出部1310からの選択画像領域についての動きベクトルと、ステップS2402で取得された参照フレームの画像領域とを用いて、動き補償を実行する(ステップS2404)。これにより、動き補償部1311は、選択画像領域における予測画像データを生成することができる。
一方、トリガ入力が動き補償停止指示である場合(ステップS2403:動き補償停止指示)、動き補償部1311は、取得画像領域の画像データを予測画像領域の画像データ(予測画像データ)に決定する(ステップS2405)。
そして、動き補償部1311は、ステップS2404またはS2405のあと、全選択画像領域の動き補償が終了したか否かを判断する(ステップS2406)。具体的には、たとえば、圧縮制御部1312がステップS2207で未選択画像領域があると判断した場合に(ステップS2007:Yes)、動き補償部1311は、全選択画像領域の動き補償が終了していないと判断し(ステップS2406:No)、ステップS2402に戻る。
一方、圧縮制御部1312がステップS2207で未選択画像領域がないと判断した場合に(ステップS2207:No)、動き補償部1311は、全選択画像領域の動き補償が終了したと判断する(ステップS2406:Yes)。そして、動き補償部1311は、全選択画像領域についての予測画像データを結合した予測フレームを減算部1301および生成部1308に出力して(ステップS2407)、一連の処理を終了する。
<伸張から再生までの処理>
図25は、伸張から再生までの処理手順例を示すフローチャートである。選択部1233は、操作部505から再生指示の選択を待ち受け(ステップS2501:No)、再生指示の選択があった場合(ステップS2501:Yes)、選択部1233は、再生対象となる動画ファイル800のフレームレートが選択可能か否かを判断する(ステップS2502)。選択可能でない場合(ステップS2502:No)、動画ファイル800は、第1フレームレート(30[fps])のみのフレーム群を圧縮した動画ファイル800である。この場合、伸張部1234は、当該動画ファイル800を伸張し(ステップS2504)、ステップS2508に移行する。
一方、ステップS2502で選択可能である場合(ステップS2502:Yes)、選択部1233は、選択されたフレームレートが第1フレームレート(30[fps])であるか否かを判断する(ステップS2503)。第1フレームレート(30[fps])が選択された場合(ステップS2503:Yes)、再生対象となる動画ファイル800は、第1動画データ721を圧縮した動画ファイル800である。したがって、伸張部1234は、当該動画ファイル800を伸張して(ステップS2504)、ステップS2508に移行する。
一方、第2フレームレート(60[fps])が選択された場合(ステップS2503:No)、再生対象となる動画ファイル800は、第1動画データ721および第2動画データ722を圧縮した動画ファイル800である。したがって、伸張部1234は、当該動画ファイル800を伸張して、第1動画データ721および第2動画データ722を出力する(ステップS2505)。
そして、特定部1240は、ステップS2505で伸張された第1動画データ721および第2動画データ722を参照して、差分領域を特定する(ステップS2506)。このあと、合成部703は、図10、図11に示したように、第1動画データ721および第2動画データ722の合成処理を実行する(ステップS2507)。合成処理(ステップS2507)の詳細については、図26で後述する。最後に、再生部704は、合成処理(ステップS2507)またはステップS2504で得られた動画データを液晶モニタに再生する(ステップS2508)。
<合成処理(ステップS2507)>
図26は、図25に示した合成処理(ステップS2507)の詳細な処理手順例を示すフローチャートである。合成部703は、挿入位置情報920に従い、フレームFの出力順を設定する(ステップS2601)。つぎに、合成部703は、再生部704へ未出力の残存フレームがあるか否かを判断する(ステップS2602)。残存フレームがある場合(ステップS2602:Yes)、合成部703は、出力順でフレームを取得する(ステップS2603)。
合成部703は、たとえば、uuid831に書き込まれたフレーム種別識別情報を参照して、取得フレームが第2フレーム713であるか否かを判断する(ステップS2604)。第2フレーム713でない場合(ステップS2604:No)、取得フレームは第1フレーム711であるため、合成部703は、取得フレームを再生対象として再生部704に出力し、バッファに書き込む(ステップS2605)。そして、ステップS2602に戻る。
一方、ステップS2604において、取得フレームが第2フレーム713である場合(ステップS2604:Yes)、合成部703は、バッファ内のフレームと、取得フレームとを合成して、第3フレーム730を生成し、再生対象として再生部704に出力する(ステップS2606)。そして、ステップS2602に戻る。ステップS2602において、残存フレームがない場合(ステップS2602:No)、合成部703は、合成処理(ステップS2507)を終了する。
これにより、合成部703は、図10、図11に示したように、第2フレーム713と、時間的に1つ前の第1フレーム711と、を用いて、第1画像領域a1および第2画像領域a2を含む第3フレーム730に合成することができる。したがって、1フレーム内のフレームレートの相違を吸収することができる。
(1−1)このように、動画圧縮装置は、第1撮像領域から出力されたデータに基づいて複数の第1フレームを生成し、第2撮像領域から出力されたデータに基づいて複数の第2フレームを生成し、複数の第1フレーム711を圧縮するとともに、複数の第2フレーム713を圧縮する。これにより、画像領域毎にフレームレートが異なる動画データを圧縮する際に、当該動画データを別々に圧縮することができる。
(1−2)また、上記(1−1)において、動画圧縮装置は、第1撮像領域から出力されたデータと、第2撮像領域から出力されたデータと、に基づいて、第1フレーム711を生成する。これにより、複数の撮像領域からの出力により欠損のないフレームを生成することができる。
(1−3)また、上記(1−1)において、動画圧縮装置は、第2撮像領域から出力されたデータと、撮像素子100からの出力に基づかないデータと、に基づいて、第2フレーム713を生成する。これにより、撮像素子100からの出力に基づかないデータとは、第1撮像領域からのデータではなく、たとえば、欠損領域712xについて画像処理で得られたデータである。したがって、第2フレーム713を第1フレーム711と同じように圧縮することができる。
(1−4)また、上記(1−3)において、動画圧縮装置は、第2撮像領域から出力されたデータと、所定のデータと、に基づいて、第2フレーム713を生成する。所定のデータとは、たとえば、欠損領域712xについて画像処理で得られたデータである。したがって、第2フレーム713を第1フレーム711と同じように圧縮することができる。
(1−5)また、上記(1−4)において、動画圧縮装置は、第2撮像領域から出力されたデータに対して、第1撮像領域からデータが出力されなかった領域(欠損領域712x)を補完することにより、第2フレーム713を生成する。これにより、欠損領域712xを補って第2フレーム713を第1フレーム711と同じように圧縮することができる。
(1−6)また、上記(1−5)において、動画圧縮装置は、第2撮像領域から出力されたデータに対して、第1撮像領域からデータが出力されなかった領域を特定色で補完することにより、第2フレーム713を生成する。これにより、圧縮効率の向上を図ることができる。
(1−7)また、上記(1−3)〜(1−6)において、動画圧縮装置は、記第2フレームのうちの、前記第2撮像領域から出力されたデータに基づいて生成された領域の画像データについては動きベクトルを検出する。これにより、たとえば、第1画像領域a1および補完領域712yの画像データについては動きベクトルの検出に替えて特定の動きベクトルを設定することにより、動き検出が実行されないこととなり、圧縮処理の負荷低減を図ることができる。
(1−8)また、上記(1−7)において、動画圧縮装置は、前記第2撮像領域から出力されたデータに基づいて生成された領域以外の領域の画像データについては動きベクトルを検出しない。これにより、たとえば、第1画像領域a1および補完領域712yの画像データについて動き検出を実行しないことにより、圧縮処理の負荷低減を図ることができる。
(1−9)また、上記(1−7)または(1−8)において、動画圧縮装置は、動きベクトル検出結果に基づいて動き補償を実行する。これにより、圧縮処理の負荷低減を図ることができる。
このように、上述した動画圧縮装置によれば、第1フレーム711からなる第1動画データ721と、補完後第2フレーム713からなる第2動画データ722と、を別々に圧縮することができる。すなわち、異なるフレームレートが混在する入力動画データ710をフレームレートの撮像タイミングで区分けして圧縮することができる。
したがって、伸張や再生をしたい場合、伸張や再生の対象として、第1動画データ721や、第1動画データ721および第2動画データ722の両方といった選択が可能となる。たとえば、第1フレーム711の撮像タイミングである30[fps]で再生したい場合は、第1動画データ721のみ伸張して再生すればよい。
これにより、第2動画データ722の伸張処理が不要となり、再生対象の伸張処理の高速化および省電力化を図ることができる。また、たとえば、画像データ712の撮像タイミングである60[fps]で再生したい場合には、第1動画データ721および第2動画データ722の両方を伸張して合成すればよい。これにより、必要に応じて被写体動画の再現性が高まり、よりリアルな映像として再生することができる。
(2−1)また、生成装置は、第1フレームレート(たとえば、30[fps])が設定された第1撮像領域から出力されたデータに基づいて生成された複数の第1フレーム711を圧縮した第1圧縮データと、第1フレームレートよりも速い第2フレームレート(たとえば、60[fps])が設定された第2撮像領域から出力されたデータに基づいて生成された複数の第2フレーム713を圧縮した第2圧縮データと、第1圧縮データの格納位置を示す第1位置情報と、前記第2圧縮データの格納位置を示す第2位置情報と、を含む動画ファイル800を生成する生成部(第2生成部1232)と、生成部によって生成された動画ファイル800を記憶デバイス1202に格納する格納部1235と、を有する。
これにより、撮像タイミングが異なる第1フレーム711および第2フレーム713の各圧縮動画データを共通の圧縮方法で圧縮することにより、1つの動画ファイル800にまとめることができる。
(2−2)また、上記(2−1)の生成装置では、第1フレーム711は、第1撮像領域から出力されたデータと、第2撮像領域から出力されたデータと、に基づいて生成されたフレームとしてもよい。
これにより、第1フレームレートの撮像タイミングで撮像された第1フレーム711の圧縮データと、第2フレームレートの撮像タイミングで撮像された第2フレーム713の圧縮データとを、共通の圧縮方法で圧縮することにより、1つの動画ファイル800にまとめることができる。
(2−3)また、上記(2−1)の生成装置では、第2フレーム713は、第2撮像領域から出力されたデータと、撮像素子100からの出力に基づかないデータと、に基づいて生成されたフレームとしてもよい。
これにより、第2フレームレートの撮像タイミングで出力されていない画像領域(欠損領域712x)が存在しても、第2撮像領域から出力されたデータを第2フレーム713として扱うことで、第1フレーム711と共通の圧縮方法で圧縮することができる。
(2−4)また、上記(2−3)の生成装置では、撮像素子100からの出力に基づかないデータは、所定のデータとしてもよい。これにより、撮像素子100からの出力とは無関係なデータにより、第2フレーム713を構成することができ、第1フレーム711と共通の圧縮方法で圧縮することができる。
(2−5)また、上記(2−4)の生成装置では、第2フレーム713は、第2撮像領域から出力されたデータに対して、第1撮像領域からデータが出力されなかった欠損領域712xを補完することにより生成されたフレームとしてもよい。これにより、第2フレーム713は、第2フレームレートの撮像タイミングで出力されていない欠損領域712xが補完されて補完領域712yに設定されているため、第1フレーム711と共通の圧縮方法で圧縮することができる。
(2−6)また、上記(2−1)の生成装置では、生成部は、第1圧縮データおよび第2圧縮データをデータ部802に設定し、第1位置情報および第2位置情報をヘッダ部801に設定することにより、データ部802およびヘッダ部801を含む動画ファイル800を生成する。これにより、データ部802の圧縮データをヘッダ部801を参照して読みだすことができる。
(2−7)また、上記(2−5)の生成装置では、生成部は、ヘッダ部801に、第1フレームレートを示す第1フレームレート情報(911の「30[fps]」)を、第1位置情報(912のPa)に関連付けて設定し、第2フレームレートを示す第2フレームレート情報(911の「60[fps]」)を、第1位置情報(912のPa)および前記第2位置情報(912のPb)に関連付けて設定することにより、ヘッダ部801およびデータ部802を含む動画ファイル800を生成する。
これにより、第1フレームレート情報に関連付けられた第1位置情報で特定される第1動画データ721の圧縮データを読み出したり、第1フレームレート情報に関連付けられた第1位置情報で特定される第1動画データ721を圧縮した第1圧縮動画データと、第2フレームレート情報に関連付けられた第2位置情報で特定される第2動画データ722を圧縮した第2圧縮動画データと、を読み出すことができる。
これにより、第1フレームレートが選択された場合に、動画ファイル800から確実に第1動画データ721を圧縮した第1圧縮動画データを呼び出すことができる。また、第2フレームレートが選択された場合に、動画ファイル800から確実に第2動画データ722を圧縮した第2圧縮動画データを呼び出すことができる。さらに、第1フレームレートが選択された場合に、動画ファイル800からの第1圧縮動画データの呼び出し漏れを抑制することができる。
(2−8)また、上記(2−7)の生成装置では、第2生成部1232は、ヘッダ部801に、第2フレーム713が挿入される第1フレーム711内の挿入先を示す情報(挿入位置情報920)を設定することにより、ヘッダ部801およびデータ部802を含む動画ファイル800を生成する。
これにより、第1動画データ721および第2動画データ722の合成の高精度化を図ることができ、被写体動画の再現性が高まり、よりリアルな映像として再生することができる。
(2−9)また、上記(2−3)の生成装置では、生成部は、第1動画データ721および第2動画データ722ごとに動画ファイル800を生成して、両動画ファイル800を関連付けてもよい。これにより、第1動画データ721の動画ファイル800単体で流通させることができる。また、第2フレームレートで再生したい場合は、別途第2動画データ722の動画ファイル800を取得すればよい。
このように、第1動画データ721と第2動画データ722とを別々の動画ファイル800とすることで、条件に応じた動画ファイル800の流通(たとえば、ダウンロード)を図ることができる。たとえば、動画配信サービスに無課金のユーザの端末は、第1動画データ721の動画ファイル800のみダウンロード可能であり、課金したユーザの端末は、両動画ファイル800がダウンロード可能となる。
(3−1)また、再生装置は、第1フレームレートが設定された第1撮像領域から出力されたデータに基づいて生成された複数の第1フレーム711を圧縮した第1圧縮データと、第1フレームレートよりも速い第2フレームレートが設定された第2撮像領域から出力されたデータに基づいて生成された複数の第2フレーム713を圧縮した第2圧縮データと、を含む動画ファイルを読み込んで、第1圧縮データおよび第2圧縮データのうちの少なくとも第1圧縮データを伸張する伸張部1234と、伸張部1234によって伸張された複数のフレームを再生する再生部704と、を有する。
したがって、再生の対象として、第1動画データ721や、第1動画データ721およびの両方といった選択が可能となる。たとえば、第1フレーム711の撮像タイミングである30[fps]で再生したい場合は、複数の第1フレーム711のみ再生すればよい。
これにより、複数の第2フレーム713の無駄な再生処理が不要となり、省電力化を図ることができる。また、たとえば、画像データ712の撮像タイミングである60[fps]で再生したい場合には、第1動画データ721および第2動画データ722の両方を再生すればよい。これにより、必要に応じて被写体動画の再現性が高まり、よりリアルな映像として再生することができる。
(3−2)また、上記(3−1)の再生装置では、第1フレーム711は、第1撮像領域から出力されたデータと、第2撮像領域から出力されたデータと、に基づいて生成されたフレームとしてもよい。
これにより、第1フレームレートの撮像タイミングで撮像された第1フレーム711の圧縮データと、第2フレームレートの撮像タイミングで撮像された第2フレーム713の圧縮データとが、共通の圧縮方法で圧縮されて動画ファイル800が生成されているため、動画ファイル800を伸張することで、第1動画データ721や、第1動画データ721および第2動画データ722の両方といった再生対象の選択が可能となる。
(3−3)また、上記(3−1)の再生装置では、第2フレーム713は、第2撮像領域から出力されたデータと、撮像素子100からの出力に基づかないデータと、に基づいて生成されたフレームとしてもよい。
これにより、第2フレームレートの撮像タイミングで出力されていない画像領域(欠損領域712x)が存在しても、第2撮像領域から出力されたデータを第2フレーム713として扱うことで、第1フレーム711と共通の圧縮方法で圧縮されて動画ファイル800が生成されているため、動画ファイル800を伸張することで、第1フレームレートおよび第2フレームレートのいずれのフレームレートでも動画再生が可能となる。
(3−4)また、上記(3−3)の再生装置では、撮像素子100からの出力に基づかないデータは、所定のデータとしてもよい。これにより、撮像素子100からの出力とは無関係なデータを用いて構成された第2フレーム713と第1フレーム711とが共通の圧縮方法で圧縮されて動画ファイル800が生成されているため、動画ファイル800を伸張することで、第2フレームレートで再生する場合、第1動画データ721および第2動画データ722の両方を組み合わせて再生することができる。
(3−5)また、上記(3−4)の再生装置では、第2フレーム713は、第2撮像領域から出力されたデータに対して、第1撮像領域からデータが出力されなかった欠損領域712xを補完することにより生成されたフレームとしてもよい。これにより、第2フレームレートで再生する場合、第1動画データ721および第2動画データ722の両方を組み合わせて再生することができる。
(3−6)また、上記(3−1)の再生装置では、再生するフレームレートを選択する選択部1233を備え、伸張部1234は、選択部1233によって選択されたフレームレートに基づいて、第1圧縮データおよび第2圧縮データを伸張する。これにより、第1動画データ721および第2動画データ722の両方といった再生対象を、再生したいフレームレートを選択することにより再生することができる。
(3−7)また、上記(3−6)の再生装置では、伸張部1234は、選択部1233によって第1フレームレートが選択された場合、第1圧縮データを伸張し、選択部1233によって第2フレームレートが選択された場合、第1圧縮データおよび第2圧縮データを伸張する。これにより、選択するフレームレートに応じて再生対象を変えることができる。
このように、伸張の対象として、第1圧縮動画データや、第1圧縮動画データおよび第2圧縮動画データの両方といった選択が可能となる。たとえば、第1フレーム711の撮像タイミングである30[fps]で再生したい場合は、第1圧縮動画データのみ伸張して第1動画データ721を再生すればよい。
これにより、第2圧縮動画データの無駄な伸張処理が不要となり、省電力化を図ることができる。また、たとえば、画像データ712の撮像タイミングである60[fps]で再生したい場合には、第1圧縮動画データおよび第2圧縮動画データの両方を伸張して、第1動画データ721および第2動画データ722を再生すればよい。これにより、必要に応じて被写体動画の再現性が高まり、よりリアルな映像として再生することができる。
実施例2について説明する。実施例1では、図10に示したフレームF2,F4,…において、補完画像部分Da1,Da3,…が存在するため、当該範囲は、特定色に塗りつぶしたり、デモザイク処理を実行したりした。実施例2では、合成部703は、そのような画像処理を実行することなく、より違和感がより少ないフレームF2,F4,…を生成する。なお、実施例2では、実施例1と共通部分については、同一符号を用い、その説明を省略する。
<フレームの合成例>
ここで、実施例2におけるフレームFの合成例について説明する。図10では、電子機器500は、田んぼ、山、および空を含む風景の定点撮影中に、特定被写体として、走行する電車を撮影する合成例について説明した。以下、当該合成例の処理の流れを具体的に説明する。
図27は、図10に示した合成例の具体的な処理の流れを示す説明図である。図10でも説明したように、撮像素子100は、時系列順にフレームF1,F2−60,F3,…を出力する。電車は、フレームF1,F2−60,F3内において、右から左に向かって走行するものとする。
図27において、フレームF1〜F3の枝番は、当該フレームF1〜F3のフレームレートを示す。たとえば、奇数番号のフレームF1−30は、フレームF1のうち30[fps]のフレームレートの撮像で出力された第1画像領域r1−30の画像データを示し、フレームF1−60は、フレームF1のうち60[fps]のフレームレートの撮像で出力された第2画像領域r1−60の画像データを示す。
フレームF1−60の60[fps]のフレームレートの撮像で出力された第2画像領域r1−60は電車の画像データを有するが、フレームF1−30では、第2画像領域r1−60はない。フレームF1−30におけるこのような領域を非画像領域n1−60と称す。フレームF1−60も同様に、フレームF1−30の30[fps]のフレームレートの撮像で出力された第1画像領域r1−30は風景の画像データを有するが、フレームF1−60では、第2画像領域r1−60にない。フレームF1−60におけるこのような領域を非画像領域n1−30と称す。
フレームF3においても同様に、フレームF3−30は、風景の画像データが出力されている第1画像領域r3−30と、何も出力されない非画像領域n3−60と、で構成され、フレームF3−60は、電車の画像データが出力されている第2画像領域r3−60と、何も出力されない非画像領域n3−60と、で構成される。フレームF3−30,F3−60以降の不図示の奇数番号フレームについても同様である。
また、偶数番号のフレームF2−60は、60[fps]のフレームレートの撮像で出力された第2画像領域r2−60の画像データ(電車)と、特定色(たとえば、黒)で塗りつぶされた補完領域712yと、で構成される第2フレーム713である。以降の不図示の偶数番号フレームについても同様である。
合成部703は、フレームF2−60の第2画像領域r2−60の画像データ(電車)と、フレームF1−30の第1画像領域r1−30の画像データ(風景)とを合成することにより、合成画像データであるフレームF2を生成する。この場合、図10でも説明したように、フレームF2は、フレームF1−30の非画像領域n1−60と、非画像領域n2−30から補完されたフレームF2−60の補完領域712yとの重複する補完画像部分Da1を有する。
実施例1では、合成部703が、補完画像部分Da1を特定色に塗りつぶしたり、デモザイク処理を実行したりしたが、実施例2では、合成部703は、そのような画像処理を行うことなく、他の画像領域における補完画像部分Da1の画像データを複製する。これにより、合成部703は、より違和感がより少ないフレームF2を生成する。補完画像部分Da3についても同様であるが、実施例2では、補完画像部分Da1に着目して説明する。
<フレームF2の合成例>
つぎに、合成部703によるフレームF2の合成例について説明する。
[合成例1]
図28は、実施例2にかかる60[fps]のフレームF2の合成例1を示す説明図である。合成例1は、補完画像部分Da1への複製対象となる他の画像領域として、フレームF2−60よりも時間的に1つ後のフレームF3の第1画像領域r3−30において補完画像部分Da1と同一位置の補完画像部分Db1を用いる例である。補完画像部分Db1の画像データは、風景の一部である。
図28において、合成部703は、フレームF1−30の非画像領域n1−60と、非画像領域n2−30から補完されたフレームF2−60の補完領域712yと、が重複する補完画像部分Da1を特定し、特定した補完画像部分Da1と同一位置の補完画像部分Db1をフレームF3から特定する。そして、合成部703は、フレームF2における補完画像部分Da1に補完画像部分Db1の画像データを複製する。これにより、合成部703は、違和感がより少ないフレームF2を生成することができる。
[合成例2]
図29は、実施例2にかかる60[fps]のフレームF2の合成例2を示す説明図である。合成例1では、フレームF1−30の第1画像領域r1−30の画像データをフレームF2の第1画像領域への複製元とし、フレームF3の補完画像部分Db1の画像データを補完画像部分Da1への複製元としたが、合成例2では逆に、フレームF3−30の第1画像領域r3−30の画像データをフレームF2の第1画像領域への複製元とし、フレームF1の補完画像部分Db2の画像データを補完画像部分Da2への複製元とする。
ここで、補完画像部分Da2は、フレームF3−30の非画像領域n3−60と、非画像領域n2−30から補完されたフレームF2−60の補完領域712yとが重複する範囲である。フレームF1の補完画像部分Db2は、補完画像部分Da2と同一位置の範囲である。
図29において、合成部703は、フレームF3−30の非画像領域n3−60と、非画像領域n2−30から補完されたフレームF2−60の補完領域712yと、が重複する補完画像部分Da2を特定し、特定した補完画像部分Da2と同一位置の補完画像部分Db2をフレームF1から特定する。そして、合成部703は、フレームF2における補完画像部分Da2に補完画像部分Db2の画像データを複製する。これにより、合成部703は、違和感がより少ないフレームF2を生成することができる。
[合成例3]
合成例3は、合成例1および合成例2のうちいずれか一方を選択して合成する例である。合成例3では、合成部703は、合成例1における補完画像部分Da1と合成例2における補完画像部分Da2とを特定する。合成部703は、補完画像部分Da1,Da2のうちいずれか一方を選択し、選択した範囲を特定した合成例を適用する。合成部703は、補完画像部分Da1が選択された場合は合成例1、補完画像部分Da2が選択された場合は合成例2を適用する。
合成部703は、補完画像部分Da1,Da2のうちいずれか一方を選択する選択基準として、たとえば、範囲の狭さを選択基準とする。図28および図29の例では、補完画像部分Da1が補完画像部分Da2よりも狭いため、合成例1が適用される。狭い方の範囲を選択することにより、複製による違和感を最小限度に留めることができる。
[合成例4]
図30は、実施例2にかかる60[fps]のフレームF2の合成例4を示す説明図である。合成例4は、合成例1における補完画像部分Da1の複製元を、フレームF3の第1画像領域r3−30内における補完画像部分Db1の画像データ(風景の一部)ではなく、フレームF1の第2画像領域r1−60における補完画像部分Db3の画像データ(電車の末尾)とする。
これにより、フレームF2において第2画像領域r2−60の画像データ(電車)は、補完画像部分Db3の画像データが追加されたことになるが、第2画像領域r2−60の画像データ(電車)の進行方向反対側に追加されるため、ユーザが映像を見た場合に、当該第2画像領域r2−60の画像データ(電車)を、走行する電車の残像と錯覚する。したがって、この場合も違和感がより少ないフレームF2,F4,…を生成することができる。
<フレームF2の合成処理手順例>
以下、上述した合成例1〜合成例4によるフレームF2の合成処理手順例について説明する。以下のフローチャートでは、第2フレーム713は、合成対象となる第2フレームレート(たとえば、60[[fps])のみの撮像で出力され、かつ、欠損領域712xが特定色(黒)で塗りつぶされたフレームである。たとえば、図27〜図30のフレームF2−60が第2フレーム713である。
また、第1フレーム711は、第2フレーム713よりも時間的に1つ前で、かつ、第1フレームレート(たとえば、30[[fps])および第2フレームレートのうち少なくとも第1フレームレートの撮像で出力された画像領域を含むフレームである。たとえば、図27〜図30のフレームF1が第1フレーム711である。
また、第3フレーム730は、第2フレーム713と第1フレーム711または第3フレーム730とにより合成されたフレームである。たとえば、図27〜図30のフレームF2が第3フレーム730である。
また、第4フレームは、第2フレーム713よりも時間的に1つ後で、かつ、第1フレームレートおよび第2フレームレートのうち少なくとも第1フレームレートの撮像で出力された画像領域を含むフレームである。たとえば、図27〜図30のフレームF3が第4フレームである。
[合成例1]
図31は、合成部703によるフレームF2の合成例1による合成処理手順例1を示すフローチャートである。なお、図26と同一ステップには同一ステップ番号を付し、その説明を省略する。
ステップS2604において、取得フレームが第2フレーム713である場合(ステップS2604:Yes)、特定部1240は、第1フレーム711の非画像領域でかつ第2フレーム713の補完領域712yとなる範囲を特定する(ステップS3101)。具体的には、たとえば、特定部1240は、図28に示したように、フレームF1−30の非画像領域n1−60と非画像領域n2−30から補完されたフレームF2−60の補完領域712yとが重複する補完画像部分Da1を特定する。
つぎに、合成部703は、第1フレーム711の第1画像領域a1の画像データを複製する(ステップS3102)。具体的には、たとえば、合成部703は、図28に示したように、フレームF1の第1画像領域r1−30の画像データ(風景)を複製する。
そして、合成部703は、ステップS3101で特定した範囲の画像データを第4フレームから複製する(ステップS3103)。具体的には、たとえば、合成部703は、図28に示したように、ステップS3101で特定した補完画像部分Da1と同補完画像部分Db1の画像データをフレームF3から複製する。
つぎに、合成部703は、合成により第3フレーム730を生成する(ステップS3104)。具体的には、たとえば、合成部703は、図28に示したように、フレームF2−60の第2画像領域r2−60と、複製した第1画像領域r1−30の画像データ(風景)と、複製した補完画像部分Db1の画像データと、を合成することにより、フレームF2−60をフレームF2(第3フレーム730)に更新する。
このあと、ステップS2602に戻る。残存フレームがバッファにない場合(ステップS2602:No)、合成部703は、合成処理(ステップS2507)を終了する。これにより、合成部703は、図28に示したように、違和感がより少ないフレームF2を生成することができる。
[合成例2]
図32は、合成部703によるフレームF2の合成例2による合成処理手順例2を示すフローチャートである。なお、図26と同一ステップには同一ステップ番号を付し、その説明を省略する。
ステップS2604において、取得フレームが第2フレーム713である場合(ステップS2604:Yes)、特定部1240は、第4フレームの非画像領域でかつ第2フレーム713の補完領域712yとなる範囲を特定する(ステップS3201)。具体的には、たとえば、特定部1240は、図29に示したように、フレームF3−30の非画像領域n3−60と非画像領域n2−30から補完されたフレームF2−60の補完領域712yとが重複する補完画像部分Da2を特定する。
つぎに、合成部703は、第4フレームの第1画像領域a1の画像データを複製する(ステップS3202)。具体的には、たとえば、合成部703は、図29に示したように、フレームF3の第1画像領域r3−30の画像データ(風景)を複製する。
そして、合成部703は、ステップS3201で特定した範囲の画像データを第1フレーム711から複製する(ステップS3203)。具体的には、たとえば、合成部703は、図29に示したように、ステップS3201で特定した補完画像部分Da2と同補完画像部分Db2の画像データをフレームF1から複製する。
つぎに、合成部703は、合成により第3フレーム730を生成する(ステップS3204)。具体的には、たとえば、合成部703は、図29に示したように、フレームF2−60の第2画像領域r2−60と、複製した第1画像領域r3−30の画像データ(風景)と、複製した補完画像部分Db2の画像データと、を合成することにより、フレームF2−60をフレームF2(第3フレーム730)に更新する。
このあと、ステップS2602に戻る。残存フレームがバッファにない場合(ステップS2602:No)、合成部703は、合成処理(ステップS2507)を終了する。これにより、合成部703は、図29に示したように、違和感がより少ないフレームF2を生成することができる。
[合成例3]
図33は、合成部703によるフレームF2の合成例3による合成処理手順例3を示すフローチャートである。なお、図26と同一ステップには同一ステップ番号を付し、その説明を省略する。
ステップS2604において、取得フレームが第2フレーム713である場合(ステップS2604:Yes)、特定部1240は、第1フレーム711の非画像領域でかつ第2フレーム713の補完領域712yとなる第1範囲を特定する(ステップS3301)。具体的には、たとえば、特定部1240は、図28に示したように、フレームF1−30の非画像領域n1−60と非画像領域n2−30から補完されたフレームF2−60の補完領域712yとが重複する補完画像部分Da1を特定する。
特定部1240は、第4フレームの非画像領域でかつ第2フレーム713の補完領域712yとなる第2範囲を特定する(ステップS3302)。具体的には、たとえば、特定部1240は、図29に示したように、フレームF3−30の非画像領域n3−60と非画像領域n2−30から補完されたフレームF2−60の補完領域712yとが重複する補完画像部分Da2を特定する。
つぎに、合成部703は、特定した第1範囲および第2範囲のいずれか一方の範囲を選択する(ステップS3303)。具体的には、たとえば、合成部703は、第1範囲および第2範囲のうち狭い方(面積が小さい方)の範囲を選択する。選択された範囲を選択範囲と称す。補完画像部分Da1、Da2の場合、合成部703は、補完画像部分Da1を選択する。これにより、合成に用いる範囲を最小限に抑制することができ、違和感をより一層抑制することができる。
そして、合成部703は、選択フレームの第1画像領域a1の画像データを複製する(ステップS3304)。選択フレームとは、選択範囲の特定元となるフレームであり、たとえば、第1範囲(補完画像部分Da1)が選択された場合は、選択フレームは、第1フレーム711(フレームF1)であり、第2範囲(補完画像部分Da2)が選択された場合は、選択フレームは、第4フレーム(フレームF3)である。
したがって、選択フレームの第1画像領域a1の画像データとは、選択フレームがフレームF1であれば、フレームF1の第1画像領域r1−30の画像データ(風景)であり、選択フレームがフレームF3であれば、フレームF3の第1画像領域r3−30の画像データ(風景)である。
そして、合成部703は、ステップS3303の選択範囲の画像データを非選択フレームから複製する(ステップS3305)。非選択フレームとは、選択されなかった範囲の特定元となるフレームであり、たとえば、第1範囲(補完画像部分Da1)が選択されなかった場合は、非選択フレームは、第1フレーム711(フレームF1)であり、第2範囲(補完画像部分Da2)が選択されなかった場合は、非選択フレームは、第4フレーム(フレームF3)である。したがって、合成部703は、選択範囲が補完画像部分Da1であれば、補完画像部分Da1と同位置の補完画像部分Db1の画像データをフレームF3から複製し、選択範囲が補完画像部分Da2であれば、補完画像部分Da2と同位置の補完画像部分Db2の画像データをフレームF1から複製する。
つぎに、合成部703は、合成により第3フレーム730を生成する(ステップS3306)。具体的には、たとえば、選択範囲が第1範囲(補完画像部分Da1)である場合、合成部703は、フレームF2−60の第2画像領域r2−60と、複製した第1画像領域r1−30の画像データ(風景)と、複製した補完画像部分Db1の画像データと、を合成することにより、フレームF2−60をフレームF2(第3フレーム730)に更新する。
また、選択範囲が第2範囲(補完画像部分Da2)である場合、合成部703は、フレームF2−60の第2画像領域r2−60と、複製した第1画像領域r3−30の画像データ(風景)と、複製した補完画像部分Db2の画像データと、を合成することにより、フレームF2−60をフレームF2(第3フレーム730)に更新する。
このあと、ステップS2602に戻る。残存フレームがバッファにない場合(ステップS2602:No)、合成部703は、合成処理(ステップS2507)を終了する。これにより、合成部703は、狭い方の範囲を選択することにより、複製による違和感を最小限度に留めることができる。
[合成例4]
図34は、合成部703によるフレームF2の合成例4による合成処理手順例4を示すフローチャートである。なお、図26と同一ステップには同一ステップ番号を付し、その説明を省略する。
ステップS2604において、取得フレームが第2フレーム713である場合(ステップS2604:Yes)、特定部1240は、第1フレーム711の非画像領域でかつ第2フレーム713の補完領域712yとなる範囲を特定する(ステップS3401)。具体的には、たとえば、合成部703は、図30に示したように、フレームF1−30の非画像領域n1−60と非画像領域n2−30から補完されたフレームF2−60の補完領域712yとが重複する補完画像部分Da1を特定する。
つぎに、合成部703は、第1フレーム711の第1画像領域a1の画像データを複製する(ステップS3402)。具体的には、たとえば、合成部703は、フレームF1の第1画像領域r1−30の画像データ(風景)を複製する。
そして、合成部703は、ステップS3401で特定した範囲の画像データを第1フレーム711から複製する(ステップS3403)。具体的には、たとえば、合成部703は、ステップS3401で特定した補完画像部分Da1と同補完画像部分Db3の画像データをフレームF1から複製する。
つぎに、合成部703は、合成により第3フレーム730を生成する(ステップS3404)。具体的には、たとえば、合成部703は、フレームF2−60の第2画像領域r2−60と、複製した第1画像領域r1−30の画像データ(風景)と、複製した補完画像部分Db3の画像データと、を合成することにより、フレームF2−60をフレームF2(第3フレーム730)に更新する。
このあと、ステップS2602に戻る。残存フレームがバッファにない場合(ステップS2602:No)、合成部703は、合成処理(ステップS2507)を終了する。これにより、合成部703は、図30に示したように、違和感がより少ないフレームF2を生成することができる。
(3−8)このように、実施例1に示した上記(3−6)の再生装置は、合成部703を有する。合成部703は、第2フレームレートが選択された場合、記憶デバイス1202から第1動画データ721および第2動画データ722を取得して、第1フレーム711と、第1フレーム711よりも時間的に後に得られた第2フレーム713と、を合成して、第2フレーム713を、第1フレーム711における第1画像領域a1の画像データと第2フレーム713における第2画像領域a2の画像データとを合成した第3フレーム730を生成する。
これにより、フレームレートの相違による第2フレーム713での画像データの欠落を抑制することができる。したがって、1枚のフレームにフレームレートの相違がある場合でも、第3フレーム730により被写体動画の再現性が高まり、よりリアルな映像として再生することができる。
(3−9)また、上記(3−8)の再生装置では、合成部703は、第2フレーム713における第2画像領域a2の画像データにおいて、第1フレーム711における第1画像領域a1の画像データと重複する領域については、第2フレーム713における第2画像領域a2の画像データを適用することにより、第3フレーム730を生成する。
これにより、たとえば、第2フレーム713であるフレームF2−60の電車の先頭部分と第1フレーム711であるフレームF1の背景領域とが重複する領域では、合成部703は、第2フレーム713であるフレームF2の電車の先頭部分を優先適用する。したがって、違和感がより少ない画像(第3フレーム730であるフレームF2)を得ることができ、被写体動画の再現性が高まり、よりリアルな映像として再生することができる。
(3−10)また、上記(3−8)の再生装置では、合成部703は、第2フレーム713における第2画像領域a2および第1フレーム711における第1画像領域a1のいずれにも属さない領域については、第1フレーム711における第2画像領域a2の画像データを適用することにより、第3フレーム730を生成する。
これにより、たとえば、第2フレーム713であるフレームF2−60の第2フレームの電車の末尾部分と第1フレーム711であるフレームF1の背景領域との間の画像領域については、第1フレーム711であるフレームF1における第2画像領域a2の画像データ(電車の末尾)を優先適用する。したがって、違和感がより少ない画像(第3フレーム730であるフレームF2)を得ることができ、被写体動画の再現性が高まり、よりリアルな映像として再生することができる。
(3−11)また、上記(3−5)の再生装置では、特定部1240は、第1フレーム711と、第2フレーム713と、に基づいて、第1フレーム711における第2撮像領域に対応する非画像領域n1−60で、かつ、第2フレーム713における補完領域712yである補完画像部分Da1を特定する。
合成部703は、第2フレーム713における第2画像領域a2の画像データと、第1フレーム711における第1撮像領域に対応する第1画像領域a1(r1−30)の画像データと、第1フレーム711における第1画像領域a1(r1−30)の画像データおよび第2フレーム713における第2画像領域a2の画像データ以外の他の画像領域において特定部1240によって特定された補完画像部分Da1の特定の画像データと、を合成する。
これにより、画像データ712の撮像で出力されかなった非画像領域n2−30を、画像データ712と時間的に近いフレームにより補うことができる。したがって、画像データ712よりも違和感が少ない合成フレームを得ることができる。
(3−12)また、上記(3−11)の再生装置では、第1フレーム711は、第2フレーム713よりも時間的に前に生成されたフレーム(たとえば、フレームF1)であり、特定の画像データは、第2フレーム713よりも時間的に後に第1撮像領域および第2撮像領域からの出力により生成されたフレーム(たとえば、フレームF3)の第1画像領域a1(r3−30)における範囲(Da1)の画像データ(すなわち、補完画像部分Db1の画像データ)としてもよい。
これにより、第2フレーム713の撮像で出力されかなった非画像領域n2−30を、第2フレーム713の時間的に1つ前の第1フレーム711と1つ後の第4フレームとにより補うことができる。したがって、違和感が少ない合成フレーム(第3フレーム730)を得ることができる。
また、上記(3−11)の再生装置では、第1フレーム711は、第2フレーム713よりも時間的に後に生成されたフレーム(たとえば、フレームF3)であり、特定の画像データは、第2フレーム713よりも時間的に前に第1撮像領域および第2撮像領域からの出力により生成されたフレーム(たとえば、フレームF1)の第1画像領域a1(r1−30)における範囲(Da2)の画像データ(すなわち、補完画像部分Db2の画像データ)としてもよい。
これにより、第2フレーム713の補完領域712yである非画像領域n2−30を、第2フレーム713の時間的に1つ前の第1フレーム711と1つ後の第4フレームとにより補うことができる。したがって、違和感が少ない合成フレーム(第3フレーム730)を得ることができる。
また、上記(3−5)の再生装置では、特定部1240は、第1範囲(Da1)と第2範囲(Da2)とに基づいて、合成部703で用いる範囲を特定する。また、合成部703は、第2フレーム713と、第1フレーム711および第4フレームのうち特定部1240によって特定された一方の範囲(Da1/Da2)の特定元となる一方のフレーム(F1/F3)における第1画像領域a1(r1−30/r3−30)の画像データと、第1フレーム711および第4フレームのうち特定部1240によって特定されなかった他方の範囲(Da2/Da1)の特定元となる他方のフレーム(F3/F1)の第1画像領域a1(r3−30/r1−30)における一方の範囲(Da1/Da2)の画像データ(Db1/Db2)と、を合成する。
これにより、合成部703は、狭い方の範囲を選択することにより、複製による違和感を最小限度に留めることができる。
また、上記(3−5)の再生装置では、第1フレーム711は、第2フレーム713よりも時間的に前に生成されたフレームであり、特定の画像データは、第1フレーム711の第2画像領域a2における範囲(Da1)の画像データ(すなわち、補完画像部分Db3の画像データ)としてもよい。
これにより、第2フレーム713の補完領域712yである非画像領域n2−30を、第2フレーム713の時間的に1つ前の第1フレーム711により補うことができる。したがって、違和感が少ない合成フレーム(第3フレーム730)を得ることができる。