(57)【特許請求の範囲】
【請求項１】
第１の画像データと、前記第１の画像データとは表現方法の異なる第２の画像データとを取得する取得手段と、
前記第１の画像データと、前記第２の画像データとを、前記第１の画像データのメタデータおよび前記第２の画像データのメタデータとともに、コンテナ構造を有するデータファイルに格納して記録する記録手段と、を有し、
前記記録手段は、前記第１の画像データと前記第２の画像データとを同じコンテナ形式で前記データファイルに格納し、
前記第１の画像データと、前記第２の画像データとは、同じ画像を示す画像データであり、画像データの符号化形式が異なることを特徴とするデータ記録装置。
【請求項２】
前記第１の画像データが動画撮影で得られたデータであり、
前記第２の画像データが、前記動画撮影中の静止画撮影で得られたデータである、
ことを特徴とする請求項１に記載のデータ記録装置。
【請求項３】
前記静止画撮影に対応する期間の前記第１の画像データが存在しない場合は、前記記録手段は、前記第１の画像データと前記第２の画像データとを同じ符号化形式で記録することを特徴とする請求項２に記載のデータ記録装置。
【請求項４】
符号化手段をさらに有し、
前記静止画撮影に対応する期間の前記第１の画像データが存在しない場合であっても、前記第１の画像データと前記第２の画像データとを連続して再生する必要がない場合には、前記符号化手段は、前記第１の画像データと前記第２の画像データとを異なる符号化形式で符号化することを特徴とする請求項３に記載のデータ記録装置。
【請求項５】
符号化手段をさらに有し、
前記符号化手段は、前記第１の画像データを不可逆圧縮符号化し、前記第２の画像データを可逆圧縮符号化することを特徴とする請求項１に記載のデータ記録装置。
【請求項６】
前記第１の画像データおよび前記第２の画像データの少なくとも一方がＲＡＷ形式を有することを特徴とする請求項１に記載のデータ記録装置。
【請求項７】
動画データと、前記動画データの解像度を下げた縮小動画データとを取得する取得手段と、
前記動画データと前記縮小動画データとを、それぞれの動画データのメタデータとともに、コンテナ構造を有するデータファイルに格納して記録する記録手段と、を有し、
前記記録手段は、前記動画データと前記縮小動画データとを同じコンテナ形式で前記データファイルに格納することを特徴とするデータ記録装置。
【請求項８】
符号化手段をさらに有し、
前記符号化手段は、前記動画データと前記縮小動画データを同じ符号化形式で符号化し、
前記記録手段は前記符号化手段が符号化した前記動画データと前記縮小動画データを記録する、
ことを特徴とする請求項７に記載のデータ記録装置。
【請求項９】
ＲＡＷ形式の連続する複数のＲＡＷ画像データと、前記複数のＲＡＷ画像データから得られる複数の画像データとを取得する取得手段と、
前記複数のＲＡＷ画像データと、前記複数の画像データとを、前記複数のＲＡＷ画像データのメタデータおよび前記複数の画像データのメタデータとともに、コンテナ構造を有する１つのデータファイルに格納して記録する記録手段と、を有し、
前記記録手段は、前記複数のＲＡＷ画像データと前記複数の画像データとを同じコンテナ形式で前記１つのデータファイルに格納することを特徴とするデータ記録装置。
【請求項１０】
視差画像から構成される動画データと、前記動画データから得られる距離画像データとを取得する取得手段と、
前記動画データと、前記距離画像データとを、前記動画データのメタデータおよび前記距離画像データのメタデータとともに、コンテナ構造を有するデータファイルに格納して記録する記録手段と、を有し、
前記記録手段は、前記動画データと前記距離画像データとを同じコンテナ形式で前記データファイルに格納することを特徴とするデータ記録装置。
【請求項１１】
複数の視差画像データから前記距離画像データを生成する生成手段をさらに有し、
前記動画データが、前記複数の視差画像データを加算したデータに相当することを特徴とする請求項１０に記載のデータ記録装置。
【請求項１２】
前記コンテナ構造がＩＳＯベースメディアファイルフォーマットあるいはＩＳＯベースメディアファイルフォーマットの互換フォーマットに準拠したコンテナ構造であることを特徴とする請求項１から請求項１１のいずれか１項に記載のデータ記録装置。
【請求項１３】
請求項１から請求項１２のいずれか１項に記載のデータ記録装置と、
前記データ記録装置が有する取得手段が取得する画像データを取得するための撮像素子と、を有することを特徴とする撮像装置。
【請求項１４】
取得手段が、第１の画像データと、前記第１の画像データとは表現方法の異なる第２の画像データとを取得する取得工程と、
記録手段が、前記第１の画像データと、前記第２の画像データとを、前記第１の画像データのメタデータおよび前記第２の画像データのメタデータとともに、コンテナ構造を有するデータファイルに格納して記録する記録工程と、を有し、
前記記録工程において前記記録手段は、前記第１の画像データと前記第２の画像データとを同じコンテナ形式で前記データファイルに格納し、
前記第１の画像データと、前記第２の画像データとは、同じ画像を示す画像データであり、画像データの符号化形式が異なることを特徴とするデータ記録装置の制御方法。
【請求項１５】
取得手段が、動画データと、前記動画データの解像度を下げた縮小動画データとを取得する取得工程と、
記録手段が、前記動画データと前記縮小動画データとを、それぞれの動画データのメタデータとともに、コンテナ構造を有するデータファイルに格納して記録する記録工程と、を有し、
前記記録工程において前記記録手段は、前記動画データと前記縮小動画データを同じコンテナ形式で前記データファイルに格納することを特徴とするデータ記録装置の制御方法。
【請求項１６】
取得手段が、ＲＡＷ形式の連続する複数のＲＡＷ画像データと、前記複数のＲＡＷ画像データから得られる複数の画像データとを取得する取得工程と、
記録手段が、前記複数のＲＡＷ画像データと、前記複数の画像データとを、前記複数のＲＡＷ画像データのメタデータおよび前記複数の画像データのメタデータとともに、コンテナ構造を有する１つのデータファイルに格納して記録する記録工程と、を有し、
前記記録工程において前記記録手段は、前記複数のＲＡＷ画像データと前記複数の画像データとを同じコンテナ形式で前記１つのデータファイルに格納することを特徴とするデータ記録装置の制御方法。
【請求項１７】
取得手段が、視差画像から構成される動画データと、前記動画データから得られる距離画像データとを取得する取得工程と、
記録手段が、前記動画データと、前記距離画像データとを、前記動画データのメタデータおよび前記距離画像データのメタデータとともに、コンテナ構造を有するデータファイルに格納して記録する記録工程と、を有し、
前記記録工程において前記記録手段は、前記動画データと前記距離画像データとを同じコンテナ形式で前記データファイルに格納することを特徴とするデータ記録装置。
【請求項１８】
コンピュータを、請求項１から請求項１２のいずれか１項に記載のデータ記録装置が有する各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ記録装置およびその制御方法、撮像装置に関し、特にデータをデータファイルに格納する技術に関する。
【背景技術】
【０００２】
近年、デジタルカメラの種類や機能は多様化しており、記録されるデータの形式もまた同様に多様化している。そして、静止画、動画、音声といった表現形式と、ＲＡＷ形式、ＪＰＥＧ形式といった符号化形式との組み合わせに応じた別個の形式でデータファイルが生成され、記録されている。
【０００３】
例えば、動画撮影中の静止画撮影を許容するデジタルカメラでは、動画データと、静止画データとを、それぞれ別個の方式で符号化して別個のデータファイルを生成し、記録媒体に記録している。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】CIPA DC-007-2009 ”マルチピクチャフォーマット” 2009年2月4日制定、［online］、一般社団法人 カメラ映像機器工業会、［平成２７年５月１９日検索］、インターネット＜URL：www.cipa.jp/std/documents/j/DC-007_J.pdf＞
【発明の概要】
【発明が解決しようとする課題】
【０００５】
関連するデータを別ファイルとして記録した場合、関連するデータファイルを管理する仕組みや、ファイルを検索する処理が必要になるほか、一部のデータファイルが削除されたり移動されたりする可能性がある。このような課題に対し、複数の静止画データを同一ファイルに記録するマルチピクチャフォーマットが規定されている（非特許文献１）。
【０００６】
しかしながら、マルチピクチャフォーマットは静止画データを対象としたものであり、静止画以外の表現方法のデータ（例えば動画データ）の格納には利用できない。従って、関連する複数の動画データを同一ファイルに格納したり、関連する動画データと静止画データを同一ファイルに格納したりするためには利用できない。
【０００７】
本発明はこのような従来技術の課題に鑑みなされたもので、様々な形式のデータを格納し、かつ汎用性を有するデータファイルを生成可能なデータ記録装置およびその制御方法を提供することを目的の１つとする。
【課題を解決するための手段】
【０００８】
上述の目的は、第１の画像データと、第１の画像データとは表現方法の異なる第２の画像データとを取得する取得手段と、第１の画像データと、第２の画像データとを、第１の画像データのメタデータおよび第２の画像データのメタデータとともに、コンテナ構造を有するデータファイルに格納して記録する記録手段と、を有し、記録手段は、第１の画像データと第２の画像データとを同じコンテナ形式でデータファイルに格納し、第１の画像データと、第２の画像データとは、同じ画像を示す画像データであり、画像データの符号化形式が異なることを特徴とするデータ記録装置によって達成される。
【発明の効果】
【０００９】
このような構成により、本発明によれば、様々な形式のデータを格納し、かつ汎用性を有するデータファイルを生成可能なデータ記録装置およびその制御方法を提供することができる。
【図面の簡単な説明】
【００１０】
【図１】実施形態に係るデジタルカメラの機能構成例を示すブロック図
【図２】実施形態に係るデジタルカメラの背面の外観例を模式的に示した図
【図３】実施形態に係るデジタルカメラのメモリマップを模式的に示す図
【図４】実施形態に係るデジタルカメラが生成するデータファイルの構成例を示す図
【図５】実施形態における例示的な撮影シーケンスを模式的に示す図
【図６】実施形態における例示的なデータ記録動作を模式的に示す図
【図７】実施形態に係るデジタルカメラの一連の動作を示すフローチャート
【図８】実施形態で生成されるデータファイルの再生装置の一例としてのスマートフォンの機能構成例を示すブロック図
【図９】実施形態に係るスマートフォンの再生処理動作を示すフローチャート
【図１０】図９のＳ９０５で実施する次フレーム取得処理の詳細を示すフローチャート
【図１１】実施形態におけるチャンクオフセット取得動作を説明するための図
【図１２】実施形態におけるチャンクオフセット取得動作を説明するためのフローチャート
【図１３】第２実施形態における例示的な撮影シーケンスを模式的に示す図
【図１４】第２実施形態における例示的なデータ記録動作を模式的に示す図
【図１５】第３実施形態における例示的なデータ記録動作を模式的に示す図
【図１６】第３実施形態における動作を説明するためのフローチャート
【図１７】第４実施形態における撮像素子の構成例を模式的に示す図
【図１８】第４実施形態における距離画像の生成方法を説明するための図
【図１９】第４実施形態における例示的な撮影シーケンスを模式的に示す図
【図２０】第４実施形態における例示的なデータ記録動作を模式的に示す図
【図２１】第５実施形態における４視点の動画データの記録動作を模式的に示す図
【図２２】第５実施形態におけるデータファイルの構成例を示す図
【発明を実施するための形態】
【００１１】
●（第１実施形態）
以下、添付図面を参照して、本発明の例示的な実施形態について詳細に説明する。なお、ここでは、データ記録装置の一例としてのデジタルカメラに本発明を適用した実施形態について説明するが、本発明は撮影機能を有する任意の電子機器、あるいは画像データファイルを操作可能な任意の電子機器において実施可能である。このような電子機器にはビデオカメラ、携帯電話機（例えばフィーチャーフォン、スマートフォンなど）、タブレット端末、パーソナルコンピュータ（デスクトップ、ラップトップ、ノート型など）、ゲーム機などが含まれるが、これらは一部の例にすぎない。
【００１２】
図１は、本発明の実施形態に係るデジタルカメラ１００の機能構成例を示すブロック図であり、図２は、デジタルカメラ１００の背面の外観例を模式的に示した図である。撮像ユニット１１３は、撮像光学系１１３１と撮像素子１１３２とを含む。また、デジタルカメラ１００がメカニカルシャッターを有する場合には、撮像ユニット１１３に含まれる。メカニカルシャッターはフォーカルプレーンシャッターでもレンズシャッターであってもよい。
【００１３】
撮像光学系１１３１は撮像素子１１３２の撮像面に被写体光学像を形成する。撮像光学系１１３１の画角（焦点距離）および合焦距離（フォーカスレンズ位置）は、ＣＰＵ１０１が制御する。撮像素子１１３２は例えばＣＭＯＳイメージセンサである。撮像素子１１３２の電荷蓄積動作および読み出し動作についてもＣＰＵ１０１が制御する。なお、撮像ユニット１１３は、ステレオ画像のような視差画像を取得可能に構成されていてもよい。この場合、撮像光学系１１３１および撮像素子１１３２の組み合わせを複数有するいわゆる多眼構成としてもよいし、撮像光学系１１３１および撮像素子１１３２は１つずつとし、撮像素子１１３２で視差画像を取得可能な構成としてもよい。後者の場合、撮像素子１１３２は例えば、１つのマイクロレンズを複数の光電変換部が共有する構成とすることができる。このような撮像素子１１３２を用いた場合、像面位相差ＡＦを行うこともできる。なお、撮像光学系１１３１は交換レンズのように着脱可能であってもよい。
【００１４】
ＣＰＵ１０１は、デジタルカメラ１００の制御部であり、ＲＯＭ１０２に格納されたプログラムをＤＲＡＭ１０３にロードして実行することにより、デジタルカメラ１００の機能ブロックを制御し、デジタルカメラ１００の機能を実現する。後述するデータ記録処理も、ＣＰＵ１０１の制御によって実現される。
【００１５】
ＲＯＭ１０２は、ＣＰＵ１０１が実行するプログラムや、各種の設定値、初期値、ＧＵＩデータなどを格納する不揮発性メモリであり、少なくとも一部は書き換え可能であってよい。
ＤＲＡＭ１０３は揮発性メモリであり、ＣＰＵ１０１のワークエリアやバッファメモリなど、一時的な記憶領域として用いられる。
【００１６】
リアルタイムクロック１０４は、デジタルカメラ１００の内蔵時計であり、年月日時分秒や曜日などを提供する。ＣＰＵ１０１のイベントタイマの較正や、タイムスタンプの生成に用いられる。
【００１７】
メモリカードインタフェース（ＩＦ）１０５は、記録媒体の一例としてのメモリカード１０６のリーダライタであり、メモリカード１０６を装着するためのカードスロットを有する。メモリカードＩＦ１０５を通じたメモリカード１０６の読み書きは、ＣＰＵ１０１が制御する。
【００１８】
操作部１０７は、ユーザがデジタルカメラ１００に各種の指示や設定を行うための入力デバイス群である。ボタン、スイッチ、タッチパネル、ダイヤルなどが含まれるのが一般的であるが、物理的な入力手段に限定されず、音声入力や視線入力などを実現する構成が含まれてもよい。
図１では、操作部１０７の一部として、電源ボタン１０８、各種メニューボタン１０９（メニューボタン、方向キー、決定／実行キーなどの組み合わせ）、レリーズボタン１１０、動画撮影指示ボタン１１１、再生モードボタン１１２が示されている。
【００１９】
通信部１１４はデジタルカメラ１００が外部機器と通信するための有線および／または無線通信インタフェースである。通信部１１４がサポートする規格としては、有線通信ではＵＳＢやＨＤＭＩ（登録商標）、無線通信ではブルートゥース（登録商標）やＩＥＥＥ８０２．１１系が一般的であるが、これらに限定されない。
【００２０】
信号処理プロセッサ１１８は、信号処理や画像処理に特化したマイクロプロセッサであり、本実施形態では画像処理部１１９および圧縮伸長部（コーデック）１２０の機能を実現する。画像処理部１１９はデジタルカメラにおいて一般的な画像処理を実施する。具体例には、Ａ／Ｄ変換、ノイズ除去、デモザイク（色補間）処理、ホワイトバランス調整処理、光学歪み補正、階調補正、色空間変換、解像度変換、被写体検出（顔検出）、ＡＦ評価値の算出などが含まれるが、これらに限定されない。圧縮伸長部１２０は予め定められた形式に応じたデータの符号化処理および復号処理を実行する。圧縮伸長部１２０がサポートする符号化形式に制限は無いが、動画と静止画など、異なる表現方法に対応した符号化形式を１つ以上サポートする。このような符号化形式の例にはＨ．２６４（またはＨＰＥＧ−４ ＡＶＣ）、Ｈ．２６５（またはＨＥＶＣ）、Motion JPEGなどが含まれるが、これらに限定されない。また、圧縮伸長部１２０は、ＪＰＥＧ形式のようなデジタルカメラが一般的にサポートする符号化形式や、メーカ独自のＲＡＷ圧縮形式などもサポートする。
【００２１】
なお、図１には示していないが、デジタルカメラ１００には集音装置（マイク）が設けられており、マイクから入力される音声についても、画像処理部１１９でＡ／Ｄ変換され、圧縮伸長部１２０で符号化処理および復号処理が行われる。
【００２２】
表示部１２１は例えば液晶ディスプレイ（ＬＣＤ）であり、タッチパネルが設けられていても良い。タッチパネルと表示部１２１のＧＵＩ表示とを組み合わせることで、操作部１０７を構成するソフトウェアキー・ボタンを実現してもよい。撮影スタンバイ時や動画撮影中には撮影した動画をリアルタイムに表示部１２１で表示することにより、表示部１２１を電子ビューファインダーとして用いることができる。また、表示部１２１には、設定のためのメニュー画面や、デジタルカメラ１００の状態や設定値、メモリカード１０６に記憶されている画像データなども表示される。
【００２３】
上述した各機能ブロックはバス１２２を通じて相互に接続され、ＣＰＵ１０１による制御や、機能ブロック間の通信を可能にしている。なお、図１はデジタルカメラ１００が有する機能ブロックのうち、実施形態の説明に必要な一部を模式的に示したものである。
【００２４】
本実施形態のデジタルカメラ１００は、電源ボタン１０８の操作により電源が投入されると、静止画の撮影スタンバイ状態になる。具体的には、ＣＰＵ１０１は、撮像ユニット１１３、信号処理プロセッサ１１８を制御し、動画撮影と、撮影した動画を表示部１２１にリアルタイム表示する動作とを開始する。これにより、表示部１２１がビューファインダーとして機能し始める。なお、ここで撮影される動画は表示用であるため、表示部１２１の解像度に応じた、記録用の動画よりも低い解像度を有する。
【００２５】
また、ＣＰＵ１０１は、画像処理部１１９が生成するＡＦ評価値に基づいて撮像光学系１１３１のフォーカスレンズを駆動し、画面の中央が合焦するように自動焦点検出（ＡＦ）を行う。さらに、ＣＰＵ１０１は、画像処理部１１９が算出した、撮影画像の輝度情報に基づいて適正な露出条件（蓄積期間もしくは電子シャッタースピード、ゲインなど）を決定する自動露出制御（ＡＥ）を行う。
【００２６】
レリーズボタン１１０が半押しされるなどの撮影準備指示が入力されると、ＣＰＵ１０１は静止画撮影用のＡＦ処理およびＡＥ処理を実行する。すなわち、ＣＰＵ１０１は、設定された焦点検出領域に合焦する位置にフォーカスレンズを駆動し、露出条件（絞り値、シャッタースピード、撮影感度）を決定する。なお、ＡＦ処理はコントラスト方式、位相差方式、およびコントラスト方式と位相差方式の組み合わせなど、公知の方法で実施することができる。撮像素子１１３２が位相差方式の焦点検出信号を生成可能な構造を有する場合には位相差方式を用いることができる。撮像素子１１３２が一般的な構成であれば、コントラスト方式を用いることができる。位相差方式のＡＦ（位相差ＡＦ）を実現するためのセンサを別途設けてもよい。ここでは、画像処理部１１９が算出するＡＦ評価値（コントラスト評価値またはデフォーカス量）に基づいて、ＣＰＵ１０１がフォーカスレンズの位置を決定し、駆動することでＡＦ処理が実行されるものとする。
【００２７】
また、ＡＥ処理についても公知の方法を用いて行うことができる。例えば画像処理部１１９で顔検出を行う場合、検出された顔が適正露出となるように露出条件を決定してもよい。あるいは、中央重点測光、スポット測光など、設定された測光モードに応じて露出条件を決定してもよい。いずれの場合も、本実施形態では画像処理部１１９が算出する輝度情報に基づいてＣＰＵ１０１が露出条件を決定するものとする。
【００２８】
図３は、デジタルカメラ１００の動作時におけるＤＲＡＭ１０３のメモリマップを模式的に示す図である。デジタルカメラ１００の電源が投入されると、ＣＰＵ１０１はＲＯＭ１０２からプログラムをＤＲＡＭ１０３にロードし、実行する。本実施形態では、ＣＰＵ１０１が、基本制御プログラム３０１、撮影制御プログラム３０２、コンテナプログラム３０３を実行することにより、デジタルカメラ１００の機能を実現する。
【００２９】
基本制御プログラム３０１は、操作部１０７を通じたユーザ入出力に関する処理や、基本的なユーザインターフェース処理、ファイルＩ／Ｏ処理などを実現する。また、撮影制御プログラム３０２は、動画や静止画の撮影に係る各種の機能を実現するためのプログラムで、主に撮像ユニット１１３や信号処理プロセッサ１１８の動作内容やタイミングの制御に関するプログラムである。
【００３０】
コンテナプログラム３０３は、撮影によって得られた画像データや、画像データに基づいて生成されたデータ（例えば距離画像）を、後述する特定の形式のデータファイルに格納し、メモリカード１０６に記録する動作を実現するためのプログラムである。また、コンテナプログラム３０３は、再生時には、データを見つけるための決まりに従ってデータファイル内の所望のデータを見つけたり、再生に必要なメタデータを見つけたりする。コンテナプログラムは、パーサプログラムと呼ばれることもある。
【００３１】
図３において、作業用メモリ領域３０４はプログラムではなく、プログラムの実行に必要な変数値などを一時的に記憶するためのメモリ空間を示している。
【００３２】
図４は、本実施形態のデジタルカメラ１００が生成するデータファイルの構成例を示す図である。本実施形態のデータファイルは、汎用性があり、動画データ（第１の画像データ）と静止画データ（第２の画像データ）のような表現方法の異なる画像データを１つのファイルに格納可能な、コンテナ構造を有するファイルフォーマットに準拠した構成を有する。具体的には、データファイルは、ＩＳＯベースメディアファイルフォーマット(ISO/IEC 14496-12)あるいはその互換フォーマットに準拠したコンテナ構造を有する。また、異なる表現方法のデータを、共通のコンテナ形式で格納することを特徴とする。これは、異なる表現方法のデータを、同じ決まりに基づいて１つのデータファイルから取得可能なことを意味する。
【００３３】
ＩＳＯベースメディアファイルフォーマットは、コンテナボックスと、コンテナボックスに格納されるサブボックスとからなるコンテナ構造を有する。図４において、データファイル４００は最上位のコンテナボックスであり、ファイルタイプボックス(ftyp)４０１、ムービーボックス(moov)４０２、メディアデータボックス(mdat)４０６を格納する。ムービーボックス４０２は複数のトラックボックス(trak)４０３〜４０５を格納する。メディアデータボックス４０６は実データを格納する。
【００３４】
なお、ＩＳＯベースメディアファイルフォーマットでは、実データを、サンプル、チャンク、トラックという単位で管理する。トラックは画像シーケンスや音声シーケンスであり、サンプルの集合である。サンプルは単独のビデオフレーム、時間の連続したビデオフレーム群、または時間の連続した圧縮音声部分である。また、チャンクは、あるトラックに関する、複数の連続するサンプルからなり、メディアデータボックス４０６に格納される実データの管理単位である。なお、ＩＳＯベースメディアファイルフォーマットの詳細については、ISO/IEC 14496-12規格書を参照されたい。
【００３５】
したがって、図４のメディアデータボックス４０６における動画データストリーム４０７、静止画連写データストリーム４０８、音声データストリーム４０９は、それぞれ共通した単位時間ごとに管理されている。あるトラックに関する実データの各チャンクの開始アドレスは、ファイルの先頭からの絶対オフセット(Chunk Offset)によって管理される。なお、静止画連写データストリーム４０８は、連写期間以外はデータが無く、連写期間には１秒間あたりの連写枚数に換算したフレームレートを有する動画フレームとして個々の静止画データが格納される。
【００３６】
ファイルタイプボックス４０１には、データファイルの種別を４文字の識別子（ブランド）で示す。識別子は登録制であり、国際的に管理されている。
【００３７】
ムービーボックス４０２は、メディアデータボックス４０６に格納される実データに関するメタデータ（管理情報）を格納するコンテナボックスである。
ムービーボックス４０２には、
mvhd（ムービーヘッダ）作成日時、修正日時、タイムスケール、長さ(duration)、再生速度、音量など
trak（トラック）１つのトラックに関するコンテナボックス
が含まれる。
【００３８】
また、各トラックボックス(trak)には、以下のボックスが含まれ、予め定められた設定値に応じた値が格納される。これらのボックスや格納される情報は規格で定められたものであるため、詳細についての説明は省略する。
tkhd（トラックヘッダ）フラグ（使用可能か否かなど）、作成日時、修正日時、トラックＩＤ、長さ(duration)、レイヤ、音量、トラック幅・高さなど
edts（編集）編集リストを格納するコンテナボックス
elst（編集リスト）時系列マップを格納する。各エントリは、トラックの一部を時系列で規定する。エントリ数、トラック長さ（編集セグメントの長さ）、メディア時間（編集セグメントの開始時刻）、メディア速度（再生速度）
mdia（メディア）トラック内のメディアデータに関するボックスを格納するコンテナボックス
mdhd（メディアヘッダ）メディアに依存しない、トラック内のメディアの特徴に関する情報（生成日時、修正日時、タイムスケール、長さ、言語など）
hdlr（ハンドラリファレンス）メディアハンドラのタイプ（トラックの種類）、トラックタイプに関する、人間が理解できる名称など
minf（メディア情報）トラック内のメディアの特徴情報を格納するコンテナボックス
vmhd/smhd/hmhd/nmhd（メディア情報ヘッダ）トラックの種類に応じた１つが設けられる。バージョンなど、符号化とは独立した情報。
dinf（データ情報）トラック内のメディア情報の位置に関するボックスを格納するコンテナボックス
dref（データ参照）バージョン、実エントリ数、エントリフォーマットのバージョン、データエントリ名（ＵＲＮ）またはデータエントリ位置（ＵＲＬ）
stbl（サンプルテーブル）トラック内のメディアサンプルについての時刻およびデータの全インデックスを含むサンプルテーブル
stsd（サンプル記述）符号化形式に関する詳細情報と初期化情報
stts（復号時刻−サンプル）復号時刻からサンプル番号への変換テーブル
stsc（サンプル−チャンク）サンプルから、それが含まれるチャンクを見つけるための情報（チャンクあたりのサンプル数など）
stsz（サンプルサイズ）サンプルカウントおよび各サンプルのデータサイズ（バイト）
stco（チャンクオフセット）ファイル内の各チャンクについての位置情報のテーブル
【００３９】
なお、図４では簡単のため、メディアデータボックス４０６に格納されるデータストリームの各々についてのトラックボックス４０３〜４０５のみを示している。なお、上述のボックス以外のボックスがムービーボックス４０２やトラックボックス４０３〜４０５に含まれてもよい。
【００４０】
本実施形態においてトラックボックス４０３〜４０５はそれぞれ、メディアデータボックス４０６に格納されている動画データ、静止画データ、音声データに関するメタデータを格納している。
【００４１】
なお、トラックボックスは基本的に時系列的なデータを取り扱うような構成を有するので、上述したように、静止画データに利用する場合にはフレームレートを表すパラメータを調整する。例えば、連写された複数の静止画データについては、１秒あたりの連写コマ数に換算した値をフレームレートのパラメータ値として設定する。
【００４２】
なお、チャンクオフセットはチャンクごとに格納されるが、実データのないチャンクに対するチャンクオフセットは、実際にはありえない値とし、チャンクオフセットボックスを参照した際に実データが存在しないことを判別できるようにする。全てのメディアデータが１つのファイルに格納される本実施形態では、実際にはあり得ないチャンクオフセットとして例えば０を用いることができる。
【００４３】
●（デジタルカメラの動作フロー）
次に、図７に示すフローチャートを用いて、デジタルカメラ１００の撮影に係る一連の動作について説明する。図７に示す処理は、電源ボタン１０８の操作によってデジタルカメラ１００の電源がオンになり、撮影スタンバイ状態で動作中である時点から開始する。以下では便宜上、ＣＰＵ１０１が特定のプログラムを実行することで実現する処理について、プログラムを主体として説明する。
【００４４】
Ｓ１０１で基本制御プログラム３０１は、操作部１０７に対して何らかの操作が行われるのを待機する。操作部１０７が操作されるとＳ７０２で基本制御プログラム３０１は、操作が電源オフ操作か判断し、電源オフ操作であればＳ７０３で所定の電源オフ処理を実行する。
【００４５】
一方、電源オフ操作でなければ、Ｓ７０４で基本制御プログラム３０１は、動画撮影指示ボタン１１１の操作（動画記録開始指示の入力）かどうか判断する。動画撮影指示ボタン１１１の操作でなければ、基本制御プログラム３０１は操作に応じた動作を実行し（Ｓ７０５）、処理をＳ７０１に戻す。一方、動画撮影指示ボタン１１１の操作であれば、基本制御プログラム３０１は、Ｓ７０６でコンテナプログラム３０３をＤＲＡＭ１０３にロードし、初期化処理を実行する。本実施形態では、静止画、動画、音声を共通のコンテナ形式で取り扱うため、コンテナプログラム３０３のロードおよび初期化も１回で足りる。
【００４６】
次にＳ７０７でコンテナプログラム３０３は、データファイルのヘッダ情報、具体的には、ファイルタイプボックス４０１およびムービーボックス４０２に格納する情報を生成する。なお、ここでは全てのヘッダ情報を生成するわけではなく、生成可能なものだけ（例えば動画データの解像度やレート等の静的な情報）を生成する。また、基本制御プログラム３０１は、ファイルオープン処理を行い、ヘッダ情報をメモリカード１０６に書き込む。
【００４７】
Ｓ７０８で撮影制御プログラム３０２は、動画用の自動焦点検出（ＡＦ）および自動露出制御（ＡＥ）を実行する。なお、ここでのＡＦおよびＡＥ処理は公知の方法を用いることができるため、その詳細については説明を省略する。
【００４８】
Ｓ７０９で撮影制御プログラム３０２は、Ｓ７０８で決定した露出条件に基づく動画用の撮影処理（１フレーム分）を実行し、撮像素子１１３２から読み出した画像信号を画像処理部１１９へ供給する。
【００４９】
Ｓ７１０で画像処理部１１９は、Ａ／Ｄ変換処理や解像度変換処理など、圧縮伸長部１２０での符号化処理に依存しない画像処理を実行する。なお、ＲＡＷ形式で記録する場合以外は色補間処理（デモザイク処理）やホワイトバランス調整処理もここで行う。また、動画とともに音声を記録する場合、画像処理部１１９は音声信号のＡ／Ｄ変換やノイズ低減処理などを行う。
【００５０】
Ｓ７１１で圧縮伸長部１２０は、画像処理部１１９から入力される画像（および音声）データに対し、符号化処理を適用する。ここでどのような符号化を適用するかに制限は無く、動画、静止画、および音声でそれぞれ異なる規格の符号化を適用してもよい。しかしながら、共通した規格の符号化を適用することで、再生機器の負荷を軽減できるほか、再生時の応答性を良好にすることができる。なお、ここで「共通」した規格の符号化とは、１つのエンコーダプログラムで対応可能な符号化、もしくは同一の規格がサポートする符号化方法の範囲であることを意味し、規格内での差異があってもよい。なお、フレーム間予測符号化を適用する場合、Ｓ７１１の処理は必ずしも直前に撮影された動画フレームに適用されない。圧縮伸長部１２０は、符号化したデータをＤＲＡＭ１０３の作業用メモリ領域３０４に書き込む。
【００５１】
Ｓ７１２でコンテナプログラム３０３は、ムービーボックス４０２内のトラックボックス４０３〜４０５に格納するオフセット情報を算出する。具体的には、コンテナプログラム３０３は、メディアデータボックス４０６に格納されうるデータの種類ごとに設けられたトラックボックスの各々について、復号時刻とサンプルとの対応や、サンプルサイズ、チャンクオフセットなどを算出する。ここでコンテナプログラム３０３は、実データが存在しないトラックにおけるチャンクオフセットには、実データが存在しないことを判別できるよう、「０」などの特別なオフセット値とする。
【００５２】
なお、実データが発生していない種別のトラックについてもオフセット情報を算出（生成）するのは、各トラックボックスが格納するテーブルにおいて、同じ番号のエントリが、同じチャンクのデータに対応する情報を格納するようにするためである。また、Ｓ７１２でオフセット情報を算出するトラックは予め定められており、例えば動画撮影が開始された場合には、途中で静止画撮影が行われるか否かにかかわらず、動画トラック、静止画トラック、音声トラックのオフセット情報を算出する。
【００５３】
撮影で得られたデータが失われることのないよう、書き込み可能になったデータは記録媒体に順次記録していくことが望ましい。そのためには、メディアデータボックス４０６内の実データに関するオフセット情報を算出する必要がある。しかし、管理情報に含まれるオフセット情報（チャンクオフセット）はファイル先頭からのオフセットであるため、メディアデータボックス４０６よりも前に記録されるファイルタイプボックス４０１およびムービーボックス４０２の大きさを確定する必要がある。そのため、本実施形態では、ムービーボックス４０２用の固定容量を予め確保した上でオフセット情報を算出する。
【００５４】
通常、デジタルカメラ１００で１ファイルに記録可能な動画の長さには、ファイルシステム上の上限（例えば４ＧＢ）や、連続撮影時間の上限（例えば２９分５９秒）などが存在する。従って、チャンクあたりのサンプル数とフレームレートから、トラックボックス４０３〜４０５（特にチャンクオフセットボックスstco）に必要なエントリ数の上限を求めることができる。そのため、上限数のエントリを格納できるムービーボックス４０２の大きさを確保した上でオフセット情報を算出する。なお、規格上はファイル内のムービーボックス４０２の位置は任意であるが、ファイル内でのデータ移動処理などの負荷を考慮すると、ムービーボックス４０２はファイル内のどの可変長ボックスよりも前に配置する方が有利である。
【００５５】
このように、管理情報のための領域を予め確保しておくことにより、実際に記録される実データに必要な管理情報の領域よりも大きな領域をメモリカード１０６に確保することになる。しかし、例えば上限よりも短い動画データに対応する管理情報の領域を確保した場合、確保した領域で足りなくなると、メディアデータボックス４０６の開始位置を後ろにずらすために、相当量のデータの読み書きが必要となる。特にデジタルカメラ、スマートフォン、タブレット端末のようなメモリ容量の少ない機器で、このような大量のデータ移動（またはコピー）処理を行うと、時間がかかる上、電力消費の点からも好ましくない。管理情報のために確保する領域の大きさは、動画データの大きさと比較すれば十分小さい。従って、本実施形態では管理情報を格納するコンテナボックスであるムービーボックス４０２の大きさを予め最大限確保した上で、メディアデータボックス４０６への実データ記録を実施する。
【００５６】
なお、便宜上「静止画トラック」という表現をしているが、上述の通り、トラックは動画のような時系列データを取り扱うことが前提となっているため、静止画も動画のフレーム画像のように取り扱う必要がある。従ってコンテナプログラム３０３は、静止画が撮影された場合には、動画管理用の情報を用いて静止画を管理できるように、ムービーボックス４０２に記録する各種の情報（管理情報）を生成する。
【００５７】
Ｓ７１３でコンテナプログラム３０３は、ＤＲＡＭ１０３の作業用メモリ領域３０４に格納された符号化データストリームの所定の書き込み単位分を基本制御プログラム３０１に受け渡す。基本制御プログラム３０１は、データをメモリカード１０６に記録する。
【００５８】
また、Ｓ７１４でコンテナプログラム３０３は、Ｓ７１３で書き込んだ実データに対応する管理情報を基本制御プログラム３０１に受け渡す。基本制御プログラム３０１は、データをメモリカード１０６に記録する。このように、書き込まれた実データに対応する管理情報を書き込むことで、電源が突然オフされたりして記録動作が異常終了した場合でも、それまでに撮影されたデータはメモリカード１０６に正常に記録された状態とすることができる。
【００５９】
Ｓ７１５で撮影制御プログラム３０２は、基本制御プログラム３０１からレリーズボタン１１０の押下（静止画撮影指示の入力）の検出が通知されたか否か判断する。撮影動作中の操作部１０７の操作については撮影制御プログラム３０２が検出してもよい。静止画撮影指示の入力があれば、撮影制御プログラム３０２はＳ７１６へ処理を進める。
【００６０】
静止画撮影指示の入力がなければ、Ｓ７１９で撮影制御プログラム３０２は動画撮影指示ボタン１１１の押下（動画撮影終了指示の入力）があったか判断し、動画撮影終了指示の入力があれば、撮影動作を終了する。そして、基本制御プログラム３０１によってファイルクローズ処理などを行ったあと、処理をＳ７０１へ戻す。一方、Ｓ７１９で動画撮影終了指示の入力が無ければ処理をＳ７０８へ戻して次のフレームについての処理を継続する。
【００６１】
Ｓ７１６で撮影制御プログラム３０２は、静止画用の自動焦点検出（ＡＦ）および自動露出制御（ＡＥ）を実行する。静止画撮影にメカニカルシャッターを用いる場合、この時点で、動画の記録処理は中断するが、ＡＦおよびＡＥ処理用に動画の撮影処理は継続してもよい。なお、ここでのＡＦおよびＡＥ処理は公知の方法を用いることができるため、その詳細については説明を省略する。
【００６２】
Ｓ７１７で撮影制御プログラム３０２は、Ｓ７１６で決定した露出条件に基づく静止画用の撮影処理（１コマ）を実行する。静止画撮影にメカニカルシャッターを用いる場合、には、撮影制御プログラム３０２は、動画の撮影処理を終了し、電荷のリセット処理などを行った後、絞りやメカニカルシャッターを駆動して静止画を撮影する。静止画撮影にメカニカルシャッターを用いない場合には、動画の撮影および記録処理は継続する。撮影制御プログラム３０２は、撮像素子１１３２から読み出した画像信号を画像処理部１１９へ供給する。
【００６３】
Ｓ７１８で画像処理部１１９は、Ａ／Ｄ変換処理や解像度変換処理など、圧縮伸長部１２０での符号化処理に依存しない画像処理を実行し、処理をＳ７１１へ進める。なお、ＲＡＷ形式で記録する場合以外は色補間処理（デモザイク処理）やホワイトバランス調整処理もここで行う。
【００６４】
図５および図６は、動画撮影中にメカニカルシャッターを用いた静止画の連写撮影が行われる場合のデジタルカメラ１００の動作と、データ記録動作を模式的に示している。
【００６５】
デジタルカメラ１００が撮影スタンバイ状態にある時刻ｔ０において、ユーザが動画撮影指示ボタン１１１を押下したものとする。これにより、ＣＰＵ１０１（撮影制御プログラム３０２）は動画記録動作の実行を開始する。ここでは、ＦＨＤ（１９２０×１０８０画素）、６０ｆｐｓの動画を撮影するものとする。撮影動作は撮影スタンバイ状態の動画撮影と同様であるが、表示用の動画像とは別に、記録用の動画像についての処理が追加される。記録用の動画像は表示用の動画像より解像度が高いのが一般的であり、またデータ量を削減するために圧縮伸長部１２０による符号化処理を適用する。符号化形式に制限は無く、Motion-JPEG、ＭＰＥＧ−２、Ｈ．２６４といった公知の方法を用いることができる。なお、撮影された各フレームをＲＡＷ形式のまま（データ圧縮は行ってもよい）記録してもよい。
【００６６】
また、動画撮影時に音声も記録する設定になっていれば、音声データについても圧縮伸長部１２０で符号化処理を行う。圧縮伸長部１２０は、動画データストリームおよび音声データストリームを生成し、ＤＲＡＭ１０３の作業用メモリ領域３０４に順次格納していく。
【００６７】
コンテナプログラム３０３は、作業用メモリ領域３０４に格納されたデータストリームから、図４を参照して説明したコンテナ構造のデータファイルを生成する処理を開始する。また、基本制御プログラム３０１は、生成されたデータファイルを、メモリカードインタフェース１０５を通じてメモリカード１０６に記録する処理を開始する。撮影・符号化処理、データファイルの生成処理、データファイルの記録処理は並列に行うことができる。
【００６８】
時刻ｔ１において、レリーズボタン１１０の全押しなどの静止画撮影の実行指示が検出されると、撮影制御プログラム３０２は動画撮影を中断して静止画撮影処理を実行する。ここでは、静止画撮影時にメカニカルシャッターを用いるため動画撮影を中断しているが、電子シャッターを用いた静止画撮影（後述）は動画撮影と同等であるため、静止画撮影区間も動画データは得られる。
【００６９】
また、本実施形態のデジタルカメラ１００は、レリーズボタン１１０が全押しされ続けている間は静止画撮影処理を繰り返し実行する（連写）。静止画は、５４７２×３６４８画素で、連写速度は１０コマ／秒（１０ｆｐｓ）とする。図５の例では、時刻ｔ１からｔ２までレリーズボタン１１０が全押しされ、静止画撮影処理が連続して複数回実行されたものとする。静止画撮影処理は、解像度と圧縮伸長部１２０における符号化方式が動画撮影時と異なりうることを除き、動画撮影時の１フレーム分の処理と同様である。圧縮伸長部１２０は、静止画データストリームを生成し、ＤＲＡＭ１０３の作業用メモリ領域３０４に格納する。
【００７０】
時刻ｔ２でレリーズボタン１１０の全押しが解除されると、ＣＰＵ１０１（撮影制御プログラム３０２）は、中断していた動画撮影処理を再開する。その後、時刻ｔ３で動画撮影終了（または一時停止）指示（例えば動画撮影指示ボタン１１１の再押下）を検出すると、ＣＰＵ１０１（撮影制御プログラム３０２）は動画撮影処理を終了（または一時停止）する。
【００７１】
図６は、図５のような撮影シーケンスで得られるデータの符号化処理およびデータファイル内での格納状態を模式的に示している。ここでは、圧縮伸長部１２０が動画、音声、静止画の全てのデータについて、１つの符号化方式（Ｈ．２６４）に従って符号化し、データファイル内の同一コンテナ（メディアデータボックス(mdat)４０６）に格納されることを示している。
【００７２】
図において、動画データストリーム４０７および音声データストリーム４０９は、実データが存在する時刻ｔ０〜ｔ１の区間と、時刻ｔ２〜ｔ３の区間に分割されているが、実際には一連のデータストリームであってよい。撮影時刻とデータストリーム内の実データの位置とはムービーボックス４０２内のトラックボックス４０３，４０５で管理されているため、実データの存在する区間だけを繋ぎ合わせたデータストリームを格納することができる。ただし、上述の通り、メディアデータボックス４０６内の実データの管理単位はチャンクであるため、データストリームを構成するサンプル数がチャンクあたりのサンプル数の倍数となるようにサンプル数を調整してもよい。
【００７３】
なお、ここでは撮影データの喪失防止や、小容量のＤＲＡＭ１０３での処理を想定してデータを順次メモリカード１０６に記録する構成について説明した。しかし、ＤＲＡＭ１０３の容量が十分に大きい場合や、処理時間が問われない場合には、記録終了まで撮影データをＤＲＡＭ１０３にバッファリングしておき、まとめてデータファイルに書き込むようにしてもよい。
【００７４】
また、解像度の異なる複数の動画データを記録するように構成してもよい。例えば、通常の解像度の動画像と、解像度の低い（縮小された）動画像の両方を同一のデータファイルに記録するように構成してもよい。この場合、画像処理部１１９で縮小フレーム画像を生成し、圧縮伸長部１２０で縮小フレーム画像についても符号化処理を行う。また、ムービーボックス４０２内に縮小動画像用のトラックボックスを追加する。縮小動画像データも実データはメディアデータボックス４０６に格納する。
【００７５】
以上説明したように、本実施形態のデジタルカメラ１００は、動画データと静止画データのような、表現方法の異なる画像データを、同一ファイルに記録するようにした。そのため、動画と、この動画の撮影中に撮影された静止画像のように、表現方法の異なる関連画像データがまとめて取り扱い可能となり、管理や利用が容易になる。また、汎用的なコンテナ構造を利用することで、記録や再生を容易に行うことができる。
【００７６】
例えば、図５で説明したように、動画の撮影中における静止画撮影が可能で、かつ静止画撮影中には動画の記録が中断するような場合がある。この場合、動画データは、時刻ｔ０からｔ１までの区間Ａと、時刻ｔ２からｔ３までの区間Ｂにしか存在しない。このような場合、動画再生時、区間Ａが最後まで再生された後、時刻ｔ１からｔ２については撮影された静止画を表示してから区間Ｂの再生を開始する処理が必要となることがある。
【００７７】
従来、図５のような撮影シーケンスで得られた動画データと静止画データとはそれぞれ別個のファイルとして記録されていた。そのため、再生時には、動画のデータのない区間に再生する静止画ファイルを探索する必要がある。例えば静止画が連写撮影された場合、ファイル数も連写枚数に応じて増加し、管理が煩雑になるほか、一部の静止画ファイルだけが移動されたり削除されたりする可能性も増加する。しかし、本実施形態のように、動画データと静止画データを同一コンテナ形式で格納するデータファイル構造とすることで、静止画ファイルの探索が不要となる。なお、コンテナ形式とはファイル内のデータ格納方法であり、コンテナ形式が同一であることは、同じ規則に基づいてデータを取得できるということである。
【００７８】
また、一般的に用いられる動画データのファイルと静止画データのファイルは全く異なるデータ構造を有するため、再生時に静止画データを取得するには、静止画ファイルからデータを取り出すためのコンテナプログラムをロード、初期化する必要があった。しかし、本実施形態では動画データと静止画データとを同一コンテナ形式でデータファイルに格納しているため、同一のコンテナプログラムを用いてファイル内のデータ探索および取り出しが可能である。従って、再生機器における、静止画データ用のコンテナプログラムのロードや初期化のためのリソースや時間が不要となり、動画再生と静止画再生とのスムーズな切り替わりを実現できる。
【００７９】
さらに、静止画と動画の符号化形式も共通とした場合にはデコードプログラムも１つで足りるため、別個の符号化形式とした場合よりも、再生機器におけるデコードプログラムのロードに必要なリソースや、初期化処理のための時間を削減することができる。再生機器が撮像装置やスマートフォンのように、パーソナルコンピュータよりも処理能力やメモリリソースの制約が大きい場合、これらの効果は一層大きくなる。
【００８０】
以下、このような効果についての理解を提供するため、本実施形態のデータファイルの再生動作について説明する。
図８は、再生装置の一例としてのスマートフォン８００の機能構成例を示すブロック図である。携帯電話網との通信機能を除けば、リソースの少ないコンピュータ機器と同様の構成を有している。
【００８１】
ＣＰＵ８０１は、不揮発性の記憶装置であるＳＳＤ８０９に記憶されている各種プログラム８０２をＤＲＡＭ８０３にロードして実行することにより、スマートフォン８００の機能を実現する。各種プログラム８０２には、制御プログラム（オペレーティングシステム）８０４、コンテナプログラム８０５、デコードプログラム８０６、アプリケーションプログラム８０７などが含まれる。ＳＳＤ８０９には各種プログラム８０２の他に、各種設定値や、画像データ８１０などが記憶されている。ここで、画像データ８１０は図４を用いて説明した構成を有するデータファイルである。なお、画像データ８１０は、半導体メモリカードやＵＳＢメモリのような着脱可能な記録装置に格納されていてもよい。
【００８２】
表示部８１２は一般的にタッチパネルディスプレイである。また、入力部８１３は電源スイッチや音量ボタン、マナーモードボタンなどである。表示部８１２に設けられているタッチパネルも入力部８１３に含まれる。通信部８１４はＷｉＦｉ，ブルートゥース（登録商標），携帯電話網などと無線通信するための送受信機や、ＵＳＢなどの有線通信用のコネクタおよびインタフェースなどを有している。スピーカ８１５は音声、呼び出し音などを出力する。
【００８３】
ＤＲＡＭ８０３は揮発性メモリであり、ＣＰＵ８０１がプログラムをロードしたり、ワークエリアやバッファメモリとして用いたりする。図８では画像データの再生時の状況として、制御プログラム８０４、コンテナプログラム８０５、デコードプログラム８０６、アプリケーションプログラム８０７がロードされており、空き領域の一部が作業用メモリ領域８０８として図示されている。
上述の機能ブロックはバス８１６で通信可能に相互接続されている。
【００８４】
次に、図９〜図１２を参照して、再生時の動作の詳細について説明する。
ここでは、例えばアプリケーションプログラム８０７が表示する、再生可能な画像データの一覧表示画面などを通じて、ある特定のデータファイルに対する再生指示が入力部８１３を通じて入力されたものとする。以下の説明においても、ＣＰＵ８０１がプログラムを実行することで実現する処理ステップについては、プログラムを実行主体として記載する。なお、制御プログラム８０４はＯＳであり、他のプログラムは制御プログラム８０４が提供する基本的な機能を利用して動作する。
【００８５】
図９はスマートフォン８００における再生処理動作を示すフローチャートである。Ｓ９０１でＣＰＵ１０１（アプリケーションプログラム８０７）は、コンテナプログラム８０５をＳＳＤ８０８から読み出してＤＲＡＭ８０３にロードする。そして、ＣＰＵ１０１はコンテナプログラム８０５の実行を開始する。
【００８６】
Ｓ９０２でＣＰＵ１０１（コンテナプログラム８０５）は、コンテナプログラム８０５の初期化処理を実行する。コンテナプログラム８０５の初期化処理では、再生対象のデータファイルから、画像サイズ、ビット深度、フレームレートなどの情報を取得したり、ＤＲＡＭ８０３にバッファ領域を確保したり、再生時刻や再生フレーム番号の初期値を設定したりする。
【００８７】
Ｓ９０３でＣＰＵ１０１（アプリケーションプログラム８０７）は、デコードプログラム８０６をＳＳＤ８０９から読み出してＤＲＡＭ８０３にロードする。そして、ＣＰＵ１０１はデコードプログラム８０６の実行を開始する。
【００８８】
コンテナプログラムにより、データファイルにどの様なデータが記録されているのか、いくつのデータが記録されているのか、どの領域にデータが記録されているのか、等の情報を得ることができる。
【００８９】
このような、データファイル内に記録されたデータの情報に基づいて、再生処理に必要なデコードプログラムだけをＤＲＡＭ８０３にロードしたり初期化することができる。特に本実施形態のように、多様な形式のデータを１ファイルに格納する構成では、あらゆる形式のデコードプログラムをＤＲＡＭ８０３にロードして起動させることは再生装置に大きい負荷を与える。したがって、１つのコンテナプログラムによって、再生に必要なデコードプログラムを特定できる効果は特に大きい。また、データの数やサイズ等の情報をいち早く入手することで、その先の再生処理に活用することが可能になる。
【００９０】
Ｓ９０４でＣＰＵ１０１（デコードプログラム８０６）は、デコードプログラム８０６の初期化処理を実行する。初期化処理では画像サイズ、ビット深度、コンポーネント数、などの初期値を設定したり、ＤＲＡＭ８０３にバッファ領域を確保したりする。
【００９１】
なお、各種プログラム８０２にはコンテナプログラムとデコードプログラムがそれぞれ複数保存されていてもよい。この場合、アプリケーションプログラム８０７は例えば再生対象のデータファイルのメタデータ（ムービーボックス）を参照し、ファイルに格納されているデータの符号化方式に応じて、Ｓ９０１およびＳ９０３でロードすべきプログラムを決定（選択）してもよい。
【００９２】
Ｓ９０５でコンテナプログラム８０５は、データファイルからフレームデータを取得する。この動作の詳細については後述する。
Ｓ９０６でデコードプログラム８０６は、Ｓ９０５で取得したデータのデコード処理を行う。
【００９３】
Ｓ９０７でコンテナプログラム８０５は、フレームに対応した音声データがあればデータファイルから取得する。なお、音声データはＳ９０５でフレームデータ（画像データ）とともに取得してもよい。
Ｓ９０８でデコードプログラム８０６は、音声データのデコード処理を行い、再生タイミングになるのを待機する。
【００９４】
Ｓ９０９でアプリケーションプログラム８０７は、Ｓ９０６でデコードしたフレームを表示部８１２に表示させる。
Ｓ９１０でアプリケーションプログラム８０７は、Ｓ９０７でデコードした音声データを再生し、スピーカ８１５から出力する。
【００９５】
Ｓ９１１でアプリケーションプログラム８０７は、入力部８１３から再生停止指示が入力されたか確認し、入力されていれば再生処理を終了し、入力されていなければ処理をＳ９１２に進める。
Ｓ９１２でアプリケーションプログラム８０７は、再生対象のデータファイルが最後まで再生されたか確認し、再生されていれば再生処理を終了し、再生されていなければ処理をＳ９０５へ戻し、次のフレームに対する処理を繰り返す。
【００９６】
図１０は、図９のＳ９０５で実施する次フレーム取得処理の詳細を示すフローチャートである。この処理は、ＣＰＵ８０１がコンテナプログラム８０５を実行することで実施される。
Ｓ１０００でコンテナプログラム８０５は、再生チャンク内の全フレームを再生したか確認し、再生していなければＳ１０１０で再生フレーム番号(frame index)をインクリメントし、処理をＳ１０１１に進める。
【００９７】
一方、再生チャンク内の全フレームを再生していれば、コンテナプログラム８０５は次の再生チャンクを探索する。コンテナプログラム８０５はまずＳ１００１でデータファイルのムービーボックス(moov)内のトラックボックス（動画）を参照し、Ｓ１００２で再生時刻に対応するチャンクの先頭位置（チャンクオフセット）を取得する。チャンクオフセットの取得処理については後でさらに詳細に説明する。
【００９８】
Ｓ１００３でコンテナプログラム８０５は、Ｓ１００２で取得したチャンクオフセットが０であるか（再生時刻に対応する動画データが存在しないか）確認し、０であれば処理をＳ１００４へ進め、０でなければ処理をＳ１００８に進める。
【００９９】
Ｓ１００８でコンテナプログラム８０５は、Ｓ１００２で取得したチャンクオフセットから始まるチャンクを再生チャンクに設定する。そしてコンテナプログラム８０５はＳ１００９で再生チャンク内の再生フレーム番号(frame index)を初期値１に設定し、処理をＳ１０１１へ進める。
【０１００】
Ｓ１００４でコンテナプログラム８０５は、データファイルのムービーボックス(moov)内のトラックボックス（静止画）を参照し、Ｓ１００５で再生時刻に対応するチャンクの先頭位置（チャンクオフセット）を取得する。チャンクオフセットの取得処理については後でさらに詳細に説明する。
【０１０１】
Ｓ１００６でコンテナプログラム８０５は、Ｓ１００５で取得したチャンクオフセットが０であるか（再生時刻に対応する静止画データが存在しないか）確認し、０であれば処理をＳ１０１１へ進め、０でなければ処理をＳ１００７に進める。Ｓ１００７でコンテナプログラム８０５は、Ｓ１００５で取得したチャンクオフセットから始まるチャンクを再生チャンクに設定し、処理をＳ１００９へ進める。
【０１０２】
Ｓ１０１１でコンテナプログラム８０５は、再生チャンク内のframe indexに対応するフレームのデータを取得し、例えばＤＲＡＭの作業用メモリ領域８０８に格納する。上述の通り、動画トラックに再生すべきデータが存在しない期間には静止画トラックを参照し、再生データがあれば静止画トラックの同一フレーム(frame index=1)が繰り返し再生される。なお、図１０のフローチャートでは静止画を繰り返し再生する場合にデータ取得も繰り返すようになっているが、既に取得しているデータは繰り返し取得しないように構成してもよい。
【０１０３】
図１１および図１２を用いて、Ｓ１００２およびＳ１００５でのチャンクオフセット取得動作についてさらに説明する。
ここでは、図５に示した撮影シーケンスで得られた、動画データと静止画データが格納されたデータファイルが再生対象であり、チャンクあたりのサンプル数（フレーム数）は４であるものとする。
【０１０４】
図１１の上段はデータファイル内のメディアボックス(mdat)に格納されているデータを模式的に示し、下段は対応するトラックボックス(trak)に含まれる編集リスト(elst)の時系列マップを模式的に示している。
【０１０５】
再生時刻ｔに対するチャンクオフセットの取得方法の例について、図１２のフローチャートをさらに用いて説明する。
Ｓ１２０１でコンテナプログラム８０５は、データファイルのムービーボックス４０２内の編集ボックス(elst)を参照し、再生時刻ｔにおいて対象のトラック（動画または静止画トラック）がアクティブか否かを判定する。図１１の例では、ｔ１≦ｔ＜ｔ２であるため、コンテナプログラム８０５は対象のトラックがアクティブトラックであると判定し、処理をＳ１２０２に進める。対象のトラックがアクティブトラックでないと判定された場合、コンテナプログラム８０５は処理をＳ１２０５へ進め、再生すべきフレームが無いと判定し、チャンクオフセットを０にして処理を終了する。
【０１０６】
Ｓ１２０２でコンテナプログラム８０５は、復号時刻−サンプルボックス(stts)を参照する。復号時刻−サンプルボックスは、復号開始時刻の間隔(sample-delta)が等しいサンプルの連続数を表形式で示したデータを格納している。例えば、復号時刻がタイムスケール１０ごとに並んだ１０サンプルについては、サンプル数１０、サンプルデルタ１０というテーブルエントリで表される。サンプルデルタの値は、メディアヘッダボックス(mdhd)に規定されたタイムスケールにおける値である。最初のテーブルエントリから順にサンプルデルタとサンプル数を累積することにより、任意の復号時刻におけるサンプル番号を得ることができる。
【０１０７】
具体的には、コンテナプログラム８０５は、再生時刻ｔから以下の様にして再生サンプル番号を決定することができる。メディア時刻はｔ−ｔ１で求められるので、例えば、ｔ１＝１０秒、ｔ＝１２．２６秒の場合、メディア時刻＝２．２６秒となる。ここでは簡単のためにサンプルデルタが表すサンプル間隔が１／３０秒固定であるとすると、サンプル番号は、２．２６／（１／３０）＝６７．８から、６７番目と求められる。
【０１０８】
次にＳ１２０３でコンテナプログラム８０５は、サンプル−チャンクボックス(stsc)を参照し、チャンクあたりのサンプル数を取得し、Ｓ１２０２で求めたサンプル番号が格納されているチャンク番号を求める。ここでは４サンプル／チャンクとしているので、６７／４＝１６．２５から、コンテナプログラム８０５は、チャンク番号を１７番目と求めることができる。
【０１０９】
次にＳ１２０４でコンテナプログラム８０５は、チャンクオフセットボックス(stco)を参照する。チャンクオフセットボックスは、各チャンクのファイル内における位置をファイルオフセット（ファイルの先頭からのオフセット）で示した、チャンクの位置情報テーブルである。従って、コンテナプログラム８０５は、１７番目のチャンクに対応するテーブルエントリを参照し、１７番目のチャンクの開始位置（開始アドレス）を取得する。
このようにして、チャンクオフセットが求められる。
【０１１０】
Ｓ１０１１において、frame indexとチャンクオフセットからフレームデータを取得する場合、コンテナプログラム８０５は、まず、サンプルサイズボックス(stco)を参照し、対象のチャンクに含まれるサンプルのサイズを取得する。６７番目のサンプルは、１７番目のチャンクの３番目のサンプル(frame index=3）である。
【０１１１】
従って、６７番目のサンプルのデータ開始アドレスは、６５番目と６６番目のサンプルのサイズをstsz/table[65]、stsz/table[66]とすると、
開始アドレス＝チャンクオフセット＋stsz/table[65]＋stsz/table[66]
として求めることができる。
そして、コンテナプログラム８０５は、６７番目のサンプルの開始アドレスからstsz/table[67]分のデータを、再生フレームデータとしてデータファイルから取得する。なお、音声データについても同様の手順で取得することができる。
【０１１２】
一般にスマートフォンやタブレット端末などの携帯電子機器はメモリリソースが少ないため、複数のコンテナプログラムをＤＲＡＭにロードするとメモリの空き容量を圧迫して操作感の低下などの要因になる。例えば動画データと、この動画撮影中に撮影された静止画のデータとを別コンテナ形式（別ファイル）で記録したものとする。この場合、動画データの記録が中断した区間に静止画を再生しようとすると、再生する静止画ファイルを探索したり、静止画ファイルから再生するデータを取得するためのコンテナプログラムをＤＲＡＭにロードする必要がある。しかし、本実施形態では、データファイルを記録する際に、動画データと静止画データを同一コンテナ形式でデータファイルに格納している。そのため、ＤＲＡＭ８０３にロードするコンテナプログラム８０５は１つでよく、メモリリソースの少ない装置での再生に有利である。また、動画再生から静止画再生に切り替える場合であっても、静止画データを探索する必要が無い。
【０１１３】
なお、符号化形式についても同様のことが当てはまる。したがって、同一コンテナ形式でデータファイルに格納するデータのエンコード形式を共通にすると、デコードプログラムについてもＤＲＡＭに１種類ロードすれば足りるため、効果は一層大きくなる。
【０１１４】
また、本実施形態では、１つのコンテナプログラムにより、データファイルにどの様なデータが記録されているのか、いくつのデータが記録されているのか、どの領域にデータが記録されているのか、等の情報を得ることができるので、その後の処理に有用である。
【０１１５】
例えば、データファイル内に記録されたデータの情報に基づいて、再生処理に必要なデコードプログラムだけをメモリにロードしたり初期化することができる。特に本実施形態のように、多様な形式のデータを１ファイルに格納する構成では、可能性のある全ての形式のデコードプログラムをメモリにロードして起動させることは再生装置に大きい負荷を与える。したがって、１つのコンテナプログラムによって、再生に必要なデコードプログラムを特定できる効果は特に大きい。また、データの数やサイズ等の情報をいち早く入手することで、その先の再生処理に活用することが可能になる。
【０１１６】
なお、上述の例では、説明および理解を容易にするため、フレームを記録順に再生するものとしたが、フレーム間予測符号化された動画データを再生する場合など、必ずしも記録順にフレームが再生されない場合があることは当業者に理解されるところである。また、静止画は連写されなくてもよい。また、リソースが制限される再生機器の例としてスマートフォンを説明したが、デジタルカメラ１００も同様の再生機器に含まれる。
【０１１７】
●（第２実施形態）
次に、本発明の第２実施形態について説明する。第１実施形態で例示した図５の撮影シーケンスは、静止画撮影にメカニカルシャッターを用いていたため、静止画撮影中（時刻ｔ１からｔ２の区間）は動画撮影が中断されていた。これに対し、本実施形態では、図１１に示すように、電子シャッターを用いて静止画撮影を行うことで、静止画撮影区間についても動画データが取得可能な撮影シーケンスで得られるデータの記録方法に関する。
【０１１８】
図１３および図１４は、動画撮影中に電子シャッターを用いた静止画の連写撮影が行われる場合のデジタルカメラ１００の動作と、データ記録動作とを、図５および図６と同様に模式的に示している。以下では、第１実施形態と異なる点について説明する。
【０１１９】
動画撮影および静止画撮影の開始タイミングは第１実施形態と同様である。時刻ｔ１において、静止画撮影の実行指示が検出されると、撮影制御プログラム３０２は動画撮影のパラメータを変更する。具体的には、撮影解像度を静止画用に変更する。また、撮影制御プログラム３０２は、信号処理プロセッサ１１８の設定を変更する。具体的には、撮影制御プログラム３０２は、静止画撮影期間について得られる各フレーム画像について、ＲＡＷ形式のデータと、縮小したのちに現像処理を行ったデータの両方を生成するように画像処理部１１９に設定する。また、撮影制御プログラム３０２は、圧縮伸長部１２０に対し、ＲＡＷ形式のデータについては可逆圧縮処理を、縮小画像については静止画撮影期間における動画データのフレームとして符号化処理を行うように設定する。ここでは、可逆圧縮処理としてランレングス符号化を、動画用の符号化処理としてＨ．２６４形式の符号化を行うものとするが、これらは一例である。なお、ＲＡＷ形式のデータを不可逆圧縮符号化してもよいし、動画データをＲＡＷ形式とする場合などは動画データを可逆圧縮符号化してもよい。
【０１２０】
したがって、図１３の例では、時刻ｔ１からｔ２までの間、静止画用の解像度で６０フレーム秒の撮影が行われる。この間、画像処理部１１９は、ＲＡＷ形式の撮影画像を圧縮伸長部１２０に出力するとともに、縮小処理と現像処理を行った動画用のフレーム画像を生成し、こちらも圧縮伸長部１２０に出力する。圧縮伸長部１２０は、ＲＡＷ形式の撮影画像にランレングス符号化を行って静止画データストリームを生成し、ＤＲＡＭ１０３の作業用メモリ領域３０４に格納する。また、圧縮伸長部１２０は、動画用のフレーム画像については時刻ｔ０からと同様にＨ．２６４符号化を行い、生成した動画データストリームをＤＲＡＭ１０３の作業用メモリ領域３０４に格納する。
【０１２１】
時刻ｔ２でレリーズボタン１１０の全押しが解除されると、ＣＰＵ１０１（撮影制御プログラム３０２）は、動画撮影処理のパラメータを元に戻す。これにより、時刻ｔ０からｔ１までと同様、撮影解像度が動画撮影用に、画像処理部１１９の処理は現像処理に、圧縮伸長部１２０の処理は動画データストリームの生成に、それぞれ復帰する。その後、時刻ｔ３で動画撮影終了（または一時停止）指示（例えば動画撮影指示ボタン１１１の再押下）を検出すると、ＣＰＵ１０１（撮影制御プログラム３０２）は動画撮影処理を終了（または一時停止）する。
【０１２２】
図１４は、図１３のような撮影シーケンスで得られるデータの符号化処理およびデータファイル内での格納状態を模式的に示している。ここでは、圧縮伸長部１２０が動画および音声についてはＨ．２６４符号化を、静止画についてはランレングス符号化を行い、データファイル内の同一コンテナ（メディアデータボックス(mdat)４０６）に格納されることを示している。
【０１２３】
なお、本実施形態においても、ＤＲＡＭ１０３の容量が十分に大きい場合や、処理時間が問われない場合には、記録終了まで撮影データをＤＲＡＭ１０３にバッファリングしておき、まとめてデータファイルに書き込むようにしてもよい。
【０１２４】
また、解像度の異なる複数の動画データを記録するように構成してもよい。例えば、通常の解像度の動画データと、この動画像を解像度を下げた縮小動画データの両方を同一のデータファイルに記録するように構成してもよい。この場合、画像処理部１１９で縮小フレーム画像を生成し、圧縮伸長部１２０で縮小フレーム画像についても符号化処理を行う。また、ムービーボックス４０２内に縮小動画像用のトラックボックスを追加する。縮小動画像データも実データはメディアデータボックス４０６に格納する。
【０１２５】
このように、動画撮影中に静止画撮影を行う場合でも動画データが途切れずに取得可能な場合には、静止画データの符号化形式を動画データの符号化形式と同じにする必要がない。そのため、静止画データと動画データのそれぞれについて、符号化形式を自由に選択することができる。例えば動画については圧縮率の高い非可逆圧縮符号化を用い、ＲＡＷ形式の静止画データについては可逆圧縮符号化方式を用いることが可能になり、データの目的や種類に応じて適切な符号化を行うことができる。また、本実施形態においても、静止画と動画とを同一コンテナ形式で１つのデータファイルに格納するため、関連するデータの管理が容易、ファイルの探索が不要、再生機器で複数のコンテナプログラムをロードしなくてよいといった効果を得ることができる。
【０１２６】
●（第３実施形態）
次に、本発明の第３実施形態について説明する。例えば、動画撮影中に撮影された静止画に対して時間のかかる画像処理を適用する必要があり、バッファメモリの容量や処理能力に余裕がない場合、静止画データに対する画像処理が終わる前に動画データを記録しなければならないことが生じうる。このような場合、図１５に示すように、静止画データは動画データの記録が終わるまでバッファメモリに保存しておき、動画データの記録が終わってから必要な画像処理を適用し、動画データとは別ファイルとして記録することになる。
【０１２７】
しかしながら、第１実施形態のように静止画撮影中（時刻ｔ１からｔ２の区間）は動画撮影が中断される場合、先に記録された動画データファイルには、時刻ｔ１からｔ２の区間に再生するためのデータが含まれない。本実施形態では、動画データファイルの記録後に静止画データを追加し、第１実施形態で説明したような構成のデータファイルを生成することを特徴とする。
【０１２８】
この場合、図７を参照して説明したデータファイルの記録処理の一部を、例えば図１６（ａ）に示すように変更する。具体的には、静止画撮影（Ｓ７１７）の後、Ｓ１６０１で撮影制御プログラム３０２は、静止画に、時間のかかる特定の画像処理（例えばノイズリダクション処理）が適用されるかどうかを判定する。例えば、特定の画像処理が適用される条件（例えば撮影モード、撮影感度など）に合致するか否かを判定すればよい。
【０１２９】
そして、撮影制御プログラム３０２は、特定の画像処理が適用されないのであれば、第１実施形態と同様にＳ７１８へ処理を進める。一方、特定の画像処理が適用される場合、撮影制御プログラム３０２は、撮影された静止画データをＳ１６０２でバッファ（ＤＲＡＭ１０３の作業用メモリ領域３０４）に保存する。
【０１３０】
そしてＳ１６０３で撮影制御プログラム３０２は、動画データ用のトラックボックス(trak)４０３の編集ボックス(elst)の、再生時刻に対応するエントリに、静止画データの固有情報を格納し、処理をＳ７１５へ進める。静止画データの固有情報に特に制限は無いが、例えば撮像装置が割り当てる画像固有ＩＤ(ImageUniqueID)を用いることができる。
【０１３１】
その後、Ｓ７１９で動画撮影終了指示の入力があったら、撮影制御プログラム３０２は、バッファに静止画データが格納されているか確認する。そして、静止画データが格納されていれば、撮影制御プログラム３０２は画像処理部１１９によって画像処理を適用し、圧縮伸長部１２０で符号化処理を適用して静止画ファイルをメモリカード１０６に記録する。なお、バッファに静止画データが格納されているかどうかは、Ｓ１６０２でフラグをセットするように構成することで、フラグから容易に判別できる。
【０１３２】
また、ここで圧縮伸長部１２０は、動画データと共通した規格の符号化を静止画データに適用するようにしてもよいし、動画データとは異なる規格の符号化を適用するようにしてもよい。例えば、後述するファイル統合処理後に静止画データファイルを削除するのであれば、動画データと共通した規格の符号化を静止画データに適用するようにし、削除しないのであれば動画データとは異なる規格の符号化を適用するようにしてもよい。
【０１３３】
次に、ファイルの統合処理について説明する。例えば撮影制御プログラム３０２は、静止画ファイルを動画ファイルと別に記録した直後、装置の処理負荷が低い場合、ユーザ指示などのタイミングで、ファイル統合処理を実行する。ファイル統合処理は、動画データファイルのうち、データ記録が中断された期間があるものについて、中断期間に撮影された静止画データを追加する処理である。
【０１３４】
ファイル統合処理について図１６（ｂ）に示すフローチャートを用いて説明する。Ｓ１６１１で撮影制御プログラム３０２は、メモリカード１０６内のデータファイルのムービーボックス４０２を解析し、動画データ用のトラックボックス４０３に静止画の固有情報が格納されているかどうかを判定する。
【０１３５】
そして、静止画の固有情報が格納されていれば、Ｓ１６１２で撮影制御プログラム３０２は、ファイルの統合処理を行う。具体的には、撮影制御プログラム３０２は、動画トラックボックス４０３に格納されている固有情報に対応する静止画ファイルから静止画データを取得し、メディアデータボックス４０６の末尾に静止画データストリームとして追加する。この際、必要に応じて、圧縮伸長部１２０によって静止画データの符号化形式を変更する。また、対応する静止画トラックボックス４０４に必要なメタデータを格納する。
【０１３６】
さらに撮影制御プログラム３０２は、動画トラックボックス４０３に格納されていた静止画固有情報を削除する。上述のように、静止画トラックボックス４０４は予め領域が確保されているため、ムービーボックス４０２の容量を拡張するためにメディアデータボックス４０６を移動させるファイルコピー処理は不要である。したがって、デジタルカメラ１００のようなリソースの少ない装置でもファイル統合処理を実現することができる。なお、ファイル統合処理を静止画ファイルの記録直後に行う場合、バッファに残っている静止画データを用いて統合処理を実行してもよい。また、ファイル統合処理が完了したら、静止画ファイルは削除してもよい。
【０１３７】
本実施形態によれば、撮影時には同一データファイルに記録できない場合であっても、記録後に同一データファイルに統合することで、第１実施形態と同様の効果を実現することができる。
【０１３８】
●（第４実施形態）
次に、本発明の第４実施形態について説明する。上述の実施形態では、動画データと同一ファイル内に格納する静止画データとして、動画撮影中に撮影された静止画のデータを例として説明した。しかし、本発明において動画データと同一ファイルに格納可能な静止画データは撮影で得られた画像データに限らない。
【０１３９】
本実施形態では、動画データと距離画像データを同一ファイルに記録する構成について説明する。距離画像は各画素の輝度がその位置における被写体距離を表す情報であり、デプスマップ、奥行き画像などと呼ばれることもある。距離画像データは様々な方法で生成することができるが、本実施形態では１対の視差画像データ（ステレオ画像データ）から画像処理部１１９が生成するものとする。
【０１４０】
ステレオ画像は、撮像ユニット１１３をステレオカメラのような多眼カメラとしたり、瞳分割機能を有する撮像素子１１３２を用いたりすることで取得可能である。ここでは、一例として、瞳分割機能を有する撮像素子１１３２を用いる構成について説明する。
【０１４１】
まず、撮像素子１１３２の構成例について、図１７（ａ）〜図１７（ｄ）を用いて説明する。図１７（ａ）は撮像素子１１３２をデジタルカメラ１００の正面および側方から見た状態を模式的に示している。撮像素子１１３２が有する画素群１４３の受光面上にはマイクロレンズアレイ１４１が形成されている。画素群１４３を構成する各画素は、図１７（ｂ）および（ｃ）に示すように、一つのマイクロレンズ１４２と二つのフォトダイオード（光電変換領域）１４３ａ，１４３ｂで構成される。以下、フォトダイオード１４３ａをＡ像用フォトダイオード（Ａピクセル）、フォトダイオード１４３ｂをＢ像用フォトダイオード（Ｂピクセル）と呼ぶ。
【０１４２】
図１７（ｄ）は撮像光学系１１３１の射出瞳１４４を概念的に示しており、Ａ像瞳１４５ａとＡピクセル１４３ａ、Ｂ像瞳１４５ｂとＢピクセル１４３ｂは、それぞれマイクロレンズ１４２により共役の関係を有する。従って、撮像素子１１３２の各画素は瞳分割機能を有し、Ａピクセル１４３ａには射出瞳１４４の右半分のＡ像瞳１４５ａを通過した光束が、Ｂピクセル１４３ｂには射出瞳１４４の左半分のＢ像瞳１４５ｂを通過した光束が入射する。従って、Ａピクセル群からなる画像（Ａ像）と、Ｂピクセル群からなる画像（Ｂ像）は１対の視差画像である。また、１対の視差画像を加算することで、通常の撮像画像を得ることもできる。
【０１４３】
Ａ像とＢ像のずれ量を検出することにより、撮像光学系１１３１のデフォーカス量とデフォーカス方向を検出することができる。従って、撮像素子１１３２の出力する信号から位相差検出方式の自動焦点検出（ＡＦ）を実現することができる。
【０１４４】
次に、図１８を参照して、このような構成の撮像素子１１３２から得られる視差画像から距離画像を得る方法の一例を説明する。図１８はある画素位置における被写体距離の算出方法を模式的に示した図である。いま、ある画素ラインでＡ像１５１ａとＢ像１５１ｂが得られているとすると、撮像光学系１１３１の焦点距離および、フォーカスレンズと撮像素子１１３２との距離情報から、実線のように光束が屈折されることがわかる。従って、ピントの合う被写体は１５２ａの位置にあることがわかる。同様にして、Ａ像１５１ａに対してＢ像１５１ｃが得られた場合には位置１５２ｂ、Ｂ像１５１ｄが得られた場合には位置１５２ｃにピントの合う被写体があることがわかる。以上のように、各画素において、その画素を含むＡ像信号と、対応するＢ像信号との相対位置から、その画素位置における被写体の距離情報を算出することができる。
【０１４５】
例えば図１８においてＡ像１５１ａとＢ像１５１ｄが得られている場合、像のずれ量の半分に相当する中間点の画素１５４から被写体位置１５２ｃまでの距離１５３を、画素１５４の輝度範囲（例えば０〜２５５）に換算して記憶する。例えば距離が大きいほど小さい輝度を有するように換算すると、背景部分が暗い距離画像になる。このようにして、各画素の位置における被写体の距離情報を算出し、距離画像を生成することができる。
【０１４６】
したがって、本実施形態では、撮像素子１１３２のＡピクセル群とＢピクセル群とから別個に信号（視差画像信号）を読み出し、画像処理部１１９に供給する。そして画像処理部１１９は、１対の視差画像であるＡ像とＢ像とを用い、距離画像を生成する。また、画像処理部１１９は、Ａ像とＢ像とを加算して通常の画像（動画フレームや静止画）を生成する。
【０１４７】
なお、画像処理部１１９でＡ像とＢ像が生成可能であれば、撮像素子１１３２からの読み出しは、必ずしもＡピクセル群とＢピクセル群とから行う必要はない。例えば、各画素からＡピクセルとＢピクセルの加算信号（Ａ＋Ｂと表記する）と、Ａピクセルの信号（Ａと表記）を読み出し、Ｂピクセルの信号は（Ａ＋Ｂ）−Ａの演算から得るようにしてもよい。あるいは、データ量を削減するため、（Ａ＋Ｂ）と、ＡピクセルとＢピクセルの差分信号（Ａ−Ｂ）とを読み出してもよい。｛（Ａ＋Ｂ）＋（Ａ−Ｂ）｝／２でＡを、｛（Ａ＋Ｂ）−（Ａ−Ｂ）｝／２でＢを得ることができる。
【０１４８】
なお、ステレオカメラを用いて視差画像を取得する場合、画像の対応点を抽出して、３角測量の原理で各画素位置における距離情報を算出することができる。また、通常画像は、視差画像を加算平均することで得ることができる。
【０１４９】
距離画像は、例えば特定の撮影モードでの動画撮影中にレリーズボタン１１０が押下されている間だけ生成するように構成したり、動画の各フレームについて（あるいは特定数のフレームごとに）生成するように構成したりすることができる。あるいは、第１および第２実施形態における静止画撮影時に生成し、静止画として記録するように構成してもよい。これらは距離画像の生成タイミングの例であり、他の任意のきっかけで生成されるように構成可能である。
【０１５０】
一例として、図１９および図２０に、第２実施形態における静止画の代わりに距離画像を生成、記録する場合の撮影シーケンスとデータ記録動作とを模式的に示す。この場合、時刻ｔ１〜ｔ２では、動画１７０１と並行して距離画像１７０２の生成が実行される。距離画像は動画像と同じ解像度で良いため、ｔ１で動画撮影のパラメータを変更する必要はない。また、距離画像は可逆圧縮しても差し支えないため、再生時の利便性を考慮し、図２０の例では圧縮伸長部１２０では動画と同じ符号化を適用している。
【０１５１】
たとえば距離画像１７０２は静止画連写データストリーム４０８とは異なる動画データストリーム４１０としてメディアデータボックス４０６に記録される。また、ムービーボックス４０２内のトラックボックスも別途確保される。あるいは、第１実施形態における静止画の代わりに距離画像を記録してもよい。
【０１５２】
再生機器がデータファイル内の動画データを再生する場合、動画データと同一コンテナ内に記録されている距離画像を用いた再生処理を行うことができる。距離画像を用いて再生画像フレームにどのような画像処理を適用するかは任意であるが、例えば背景部分をぼかす処理を適用することができる。距離画像が、距離が大きいほど輝度が小さくなるように生成されている場合、距離画像の輝度が閾値以下である領域に対応する動画フレーム内の領域をぼかす（平滑化する）処理を適用することで、主要被写体が強調された動画１７０３の再生が可能である。ぼかし処理は、距離が大きいほど強くぼかすなど、強弱を制御するようにしてもよい。
【０１５３】
再生フレームに利用できる距離画像の存在有無の確認と、距離画像を利用した再生フレームの画像処理は、例えば図９の再生処理におけるＳ９０６とＳ９０７の間で実行することができる。再生フレームに利用できる距離画像の有無は、動画のトラックボックスと距離画像のトラックボックスの対応エントリを参照することで判定できる。
【０１５４】
（変形例）
なお、距離画像を用いた再生は動画に限らず、静止画においても有用である。したがって、静止画撮影時に距離画像を生成し、静止画と距離画像を同一データファイルに格納するように構成してもよい。この場合、静止画と距離画像の符号化形式は同一（例えばＪＰＥＧ形式）であってもよいし、異なっていてもよい（例えば静止画はランレングス符号化、距離画像はＪＰＥＧ形式）。なお、静止画撮影は連写であっても単写であってもよく、連写の場合は連写された複数の静止画と、対応する複数の距離画像とが同一ファイルに格納される。
【０１５５】
本実施形態でも、動画データや静止画データと、距離画像データとを同一コンテナ形式で同一ファイルに格納するため、ファイル再生機器側で距離画像データを取り出すためのコンテナプログラムのロードと初期化を行う必要がない。また、動画データや静止画データと、距離画像データとの符号化形式を共通とすることで、距離画像データのためにデコードプログラムをロードしたり初期化したりする必要がなくなる。そのため、リソースの少ない再生機器でもスムーズな再生処理が実現できる。
【０１５６】
●（第５実施形態）
次に、本発明の第５実施形態について説明する。第４の実施形態では視差画像から距離画像を生成して記録する構成について説明したが、視差画像を同一ファイルに格納することもできる。視差画像を同一ファイルに格納することで、例えば立体表示を行う再生装置において、対になる視差画像を探索する必要がなくなる。また、立体表示に必要な、各画像の撮影視点の位置情報や輻輳角、基線長といった情報もメタデータとして同一ファイルに格納する。
【０１５７】
ここでは、図１７（ｅ）に示すように、撮像素子１１３２の各画素が水平および垂直方向にそれぞれ２分割された、計４つのピクセル（Ａピクセル１４３ａ、Ｂピクセル１４３ｂ、Ｃピクセル１４３ｃ、Ｄピクセル１４３ｄ）を有するものとする。そして、Ａピクセル群からなる画像の撮像視点位置を基準として、他のピクセル群からなる画像の撮像視点位置を規定する。
【０１５８】
図２１は４視点の動画データの記録動作を模式的に示している。撮像素子１１３２のＡ（左上）ピクセル群、Ｂ（左下）ピクセル群、Ｃ（右上）ピクセル群、Ｄ（右下）ピクセル群のそれぞれから得られる４つの視差画像は、別個の動画データストリームとして同一コンテナ（メディアデータボックス）４０６に格納される。なお、ここでは説明および理解を容易にするため、各視差画像のデータを記録する構成を説明したが、一部を加算画像のデータとするなど、最終的に各視差画像のデータが得られれば、他の画像データの組み合わせを記録してもよい。
【０１５９】
一方、４つの視差画像を立体視に利用するためのメタデータは、図２２に示すように、拡張タイプのボックス(uuid)２１０１を用いてムービーボックス４０２に格納される。拡張ボックス２１０１には、撮影情報ボックス２１０２と撮像方式ボックス２１０３が格納される。撮影情報ボックス２１０２には４つの視差画像が含まれることや、フレームレートや解像度など、各動画データストリームに共通な情報が格納される。また、撮像方式ボックス２１０３には、各視差画像の視点位置に関する情報（基準視点と他の視点との位置関係情報など）とトラック識別子とが対応付けられたテーブル２１０９が格納される。
【０１６０】
トラックボックス２１０４〜２１０７は動画トラックボックス４０３と同様である。なお、図示していないが音声トラックボックスも存在する。メディアデータボックス４０６には、図２１に示すように個々の動画データストリームが格納される。なお、図２１では便宜上メディアデータボックス４０６内に視点ごとのストリームが独立して格納されるように記載しているが、実際には図４に示したように同じ時刻に得られた各視点の画像データが順次記録されている。
【０１６１】
本実施形態では多視点の動画データを同一ファイル、同一コンテナ形式で格納する構成を説明したが、多視点の静止画データについても同様に記録することができる。本実施形態によっても、再生機器において画像データの探索が不要になるほか、１つのコンテナプログラムをロード、実行すれば足りる。また、各視差画像の符号化形式を共通としたことで、再生装置で１つのデコードプログラムをロード、実行すれば足り、メモリ容量の消費を抑制することができる。
【０１６２】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１６３】
１００…デジタルカメラ、１０１…ＣＰＵ、１０６…メモリカード、１０７…操作部、１１０…レリーズボタン、１１１…ボタン、１１３…撮像ユニット、１１４…通信部、１１８…信号処理プロセッサ、１１９…画像処理部、１２０…圧縮伸長部、１２１…表示部
【図１】
0006576122.tif 000002
【図２】
0006576122.tif 000003
【図３】
0006576122.tif 000004
【図４】
0006576122.tif 000005
【図５】
0006576122.tif 000006
【図６】
0006576122.tif 000007
【図７】
0006576122.tif 000008
【図８】
0006576122.tif 000009
【図９】
0006576122.tif 000010
【図１０】
0006576122.tif 000011
【図１１】
0006576122.tif 000012
【図１２】
0006576122.tif 000013
【図１３】
0006576122.tif 000014
【図１４】
0006576122.tif 000015
【図１５】
0006576122.tif 000016
【図１６】
0006576122.tif 000017
【図１７】
0006576122.tif 000018
【図１８】
0006576122.tif 000019
【図１９】
0006576122.tif 000020
【図２０】
0006576122.tif 000021
【図２１】
0006576122.tif 000022
【図２２】
0006576122.tif 000023