(57)【特許請求の範囲】
【請求項１】
動画データを取得する取得手段と、
動画データを格納する領域と、当該動画データに関する付随情報を格納する領域とを有するデータファイル構造で、前記取得手段により取得した動画データを格納したデータファイルを生成する生成手段と、を有し、
前記付随情報は、前記動画データと関連する他の動画データを格納するデータファイルを識別するための識別情報と、前記データファイルに含まれる動画データの先頭フレームおよび最終フレームのフレーム番号を特定する情報と、を含み、
前記生成手段は、前記取得手段により取得した動画データを、第１のデータファイルと第２のデータファイルとを含む複数のデータファイルに分割して格納する場合、前記第２のデータファイルに含まれる動画データの先頭フレームのフレーム番号を特定する情報として、前記第１のデータファイルに含まれる動画データの最終フレームのフレーム番号の次のフレーム番号を記録することにより、前記取得手段により取得した動画データに前記複数のデータファイル間で連続するフレーム番号を付与することを特徴とする情報処理装置。
【請求項２】
前記生成手段は、前記取得手段により取得した動画データを、第１のデータファイルと第２のデータファイルとを含む複数のデータファイルに分割して格納する場合、前記複数のデータファイルのそれぞれに同一の前記識別情報を記録することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記識別情報が、撮影ごとに割り振られる情報であることを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記生成手段は、前記付随情報として、前記取得手段により取得した動画データの総フレーム数の情報をさらに記録することを特徴とする請求項１から請求項３のいずれか１項に記載の情報処理装置。 
【請求項５】
前記生成手段は、前記付随情報として、前記動画データの編集に関する情報をさらに記録することを特徴とする請求項１から請求項４のいずれか１項に記載の情報処理装置。 
【請求項６】
前記編集に関する情報が、編集の有無を表す情報を含むことを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記編集に関する情報が、編集の種別を表す情報を含むことを特徴とする請求項５または請求項６に記載の情報処理装置。
【請求項８】
前記付随情報を格納する領域が、前記動画データを格納する領域よりも前に配置されることを特徴とする請求項１から請求項７のいずれか１項に記載の情報処理装置。 
【請求項９】
前記生成手段は、前記データファイルの先頭からのオフセット値が固定値となる位置に前記付随情報を格納する領域を記録することを特徴とする請求項１から請求項７のいずれか１項に記載の情報処理装置。
【請求項１０】
前記データファイル構造が、ＩＳＯベースメディアファイルフォーマットあるいはその互換フォーマットに準拠したコンテナ構造に基づくことを特徴とする請求項１から請求項９のいずれか１項に記載の情報処理装置。
【請求項１１】
前記生成手段は、前記動画データをメディアデータボックス(mdat)に、前記付随情報をムービーボックス(moov)に記録することを特徴とする請求項９に記載の情報処理装置。 
【請求項１２】
前記付随情報を格納する領域が拡張ボックス(uuid)に含まれることを特徴とする請求項１０または請求項１１に記載の情報処理装置。
【請求項１３】
前記拡張ボックス(uuid)がムービーボックス(moov)の先頭に配置し、前記付随情報を格納する領域が前記拡張ボックス(uuid)の先頭に配置することを特徴とする請求項１２に記載の情報処理装置。
【請求項１４】
前記生成手段は、前記取得手段により取得した動画データを複数のデータファイルに分割して格納する場合、前記複数のデータファイルのそれぞれに、前記付随情報として、前記動画データが分割記録されていることを表す情報を記録することを特徴とする請求項１から請求項１３のいずれか１項に記載の情報処理装置。
【請求項１５】
撮像手段を有し、
前記取得手段は、前記撮像手段により撮像した動画データを取得することを特徴とする請求項１から請求項１４のいずれか１項に記載の情報処理装置。
【請求項１６】
取得手段が、動画データを取得する取得工程と、
生成手段が、動画データを格納する領域と、当該動画データに関する付随情報を格納する領域とを有するデータファイル構造で、前記取得工程で取得した動画データを格納したデータファイルを生成する生成工程と、を有し、
前記付随情報は、前記動画データと関連する他の動画データを格納するデータファイルを識別するための識別情報と、前記データファイルに含まれる動画データの先頭フレームおよび最終フレームのフレーム番号を特定する情報と、を含み、
前記生成手段は前記生成工程において、前記取得手段により取得した動画データを、第１のデータファイルと第２のデータファイルとを含む複数のデータファイルに分割して格納する場合、前記第２のデータファイルの先頭フレームのフレーム番号を特定する情報として、前記第１のデータファイルの最終フレームのフレーム番号の次のフレーム番号を記録することにより、前記複数のデータファイル間で連続するフレーム番号を付与することを特徴とする情報処理装置の制御方法。
【請求項１７】
コンピュータを、請求項１から請求項１５のいずれか１項に記載の情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置およびその制御方法に関し、特には動画データの取り扱い技術に関する。
【背景技術】
【０００２】
近年、動画編集はスマートフォンなどの小型電子機器でも手軽に行うことが可能であるが、動画編集では編集を微妙に異ならせた複数の動画を生成することが良く行われるため、元動画データから多くの編集動画データが生成されやすい。そのため、編集済みの動画データの管理に手間がかかっていた。
【０００３】
動画のフレームデータに基づく静止画データを生成する際、元動画データの識別情報と、元動画データの先頭から何フレーム目のデータを用いたかを示すフレームオフセット情報とを静止画データのヘッダに記録する構成が特許文献１に開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−１５７３４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１の構成では、編集画像データにおいて、元動画データとの関係をフレーム単位で把握することは可能であるが、編集画像データは静止画データに限定されており、動編集画像データが動画データの場合の構成については開示されていない。動画データの場合、編集動画データからさらに別の編集動画データが生成される場合もあるため、静止画データを生成する場合とは異なる考慮が必要である。
【０００６】
本発明はこのような従来技術の問題点に鑑みなされたもので、編集前後の動画データの関係をフレーム単位で容易に把握可能とすることを可能にするデータ構造を取り扱う情報処理装置ならびにその制御方法の提供を目的とする。
【課題を解決するための手段】
【０００７】
上述の目的は、動画データを取得する取得手段と、動画データを格納する領域と、当該動画データに関する付随情報を格納する領域とを有するデータファイル構造で、取得手段により取得した動画データを格納したデータファイルを生成する生成手段と、を有し、付随情報は、動画データと関連する他の動画データを格納するデータファイルを識別するための識別情報と、データファイルに含まれる動画データの先頭フレームおよび最終フレームのフレーム番号を特定する情報と、を含み、生成手段は、取得手段により取得した動画データを、第１のデータファイルと第２のデータファイルとを含む複数のデータファイルに分割して格納する場合、第２のデータファイルに含まれる動画データの先頭フレームのフレーム番号を特定する情報として、第１のデータファイルに含まれる動画データの最終フレームのフレーム番号の次のフレーム番号を記録することにより、取得手段により取得した動画データに複数のデータファイル間で連続するフレーム番号を付与することを特徴とする情報処理装置によって達成される。
【発明の効果】
【０００８】
このような構成により、本発明によれば、編集前後の動画データの関係をフレーム単位で容易に把握可能とすることを可能にするデータ構造を取り扱う情報処理装置ならびにその制御方法を提供できる。
【図面の簡単な説明】
【０００９】
【図１】実施形態に係るデジタルカメラの機能構成例および背面の外観例を示す図
【図２】実施形態に係るデジタルカメラのメモリマップを模式的に示す図
【図３】実施形態に係るデジタルカメラが生成するデータファイルの構成およびシーケンス情報の例を示す図
【図４】実施形態に係るデジタルカメラの一連の動作を示すフローチャート
【図５】実施形態に係るＰＣの機能構成例を示すブロック図
【図６】実施形態に係る結合処理動作に関するフローチャート
【図７】実施形態に係る結合処理に伴うシーケンス情報の生成に関する図
【図８】実施形態に係る管理表示処理に関するフローチャート
【図９】実施形態に係る管理表示処理での表示例を示す図
【図１０】実施形態に係る切り出し処理に関するフローチャート
【図１１】実施形態に係る切り出し処理に伴うシーケンス情報の生成に関する図
【図１２】実施形態に係る管理表示処理での表示例を示す図
【発明を実施するための形態】
【００１０】
●（第１実施形態）
以下、添付図面を参照して、本発明の例示的な実施形態について詳細に説明する。なお、ここでは、デジタルカメラを、動画データの生成および記録機能を有する情報処理装置の一例として、また、パーソナルコンピュータ（ＰＣ）を、画像データの編集および管理機能を有する情報処理装置の一例として説明する。しかし、動画データの生成、編集、管理に関する機能を同じ情報処理装置が有してもよい。また、本実施形態に係る動画データの生成において撮影機能は必須ではない。
【００１１】
従って、以下に説明する、動画データの生成、編集、管理に係る動作は、一般的な電子機器において実施することが可能である。このような電子機器にはデジタル（ビデオ）カメラ、携帯電話機（スマートフォンを含む）、タブレット端末、ゲーム機、パーソナルコンピュータ、メディアプレーヤ、テレビジョン受像器などが含まれるが、これらは一部の例にすぎない。
【００１２】
本発明の実施形態に係るデジタルカメラ１００の機能構成例を図１（ａ）に、背面の外観例を図１（ｂ）に、それぞれ示す。
撮像ユニット１１３は、撮像素子やレンズ群を含み、被写体像を撮像素子が有する複数の画素で電気信号に変換した画像信号を生成する。撮像ユニットによる撮影動作はＣＰＵ１０１が制御する。
【００１３】
ＣＰＵ１０１は、デジタルカメラ１００の制御部であり、ＲＯＭ１０２に格納されたプログラムをＤＲＡＭ１０３にロードして実行することにより、デジタルカメラ１００の機能ブロックを制御し、デジタルカメラ１００の機能を実現する。
ＲＯＭ１０２は、ＣＰＵ１０１が実行するプログラムや、各種の設定値、初期値、ＧＵＩデータなどを格納する不揮発性メモリであり、少なくとも一部は書き換え可能であってよい。
ＤＲＡＭ１０３は揮発性メモリであり、ＣＰＵ１０１のワークエリアやバッファメモリなど、一時的な記憶領域として用いられる。
【００１４】
リアルタイムクロック１０４は、デジタルカメラ１００の内蔵時計であり、年月日時分秒や曜日などを提供する。ＣＰＵ１０１のイベントタイマの較正や、タイムスタンプの生成に用いられる。
メモリカードインタフェース（ＩＦ）１０５は、記録媒体の一例としてのメモリカード１０６のリーダライタであり、メモリカード１０６を装着するためのカードスロットを有する。メモリカードＩＦ１０５を通じたメモリカード１０６の読み書きは、ＣＰＵ１０１が制御する。
【００１５】
操作部１０７は、ユーザがデジタルカメラ１００に各種の指示や設定を行うための入力デバイス群である。ボタン、スイッチ、タッチパネル、ダイヤルなどが含まれるのが一般的であるが、物理的な入力手段に限定されず、音声入力や視線入力などを実現する構成が含まれてもよい。
図１では、操作部１０７の一部として、電源ボタン１０８、各種メニューボタン１０９（メニューボタン、方向キー、決定／実行キーなどの組み合わせ）、レリーズボタン１１０、動画撮影指示ボタン１１１、再生モードボタン１１２が示されている。
【００１６】
通信部１１７はデジタルカメラ１００が外部機器と通信するための有線および／または無線通信インタフェースである。通信部１１７がサポートする規格としては、有線通信ではＵＳＢやＨＤＭＩ（登録商標）、無線通信ではブルートゥース（登録商標）やＩＥＥＥ８０２．１１系が一般的であるが、これらに限定されない。
【００１７】
信号処理プロセッサ１１４は、信号処理や画像処理に特化したマイクロプロセッサであり、本実施形態では画像処理部１１５および圧縮伸長部（コーデック）１１６の機能を実現する。画像処理部１１５はデジタルカメラにおいて一般的な画像処理を実施する。具体例には、Ａ／Ｄ変換、ノイズ除去、デモザイク（色補間）処理、ホワイトバランス調整処理、光学歪み補正、階調補正、色空間変換、解像度変換、被写体検出（顔検出）、ＡＦ評価値の算出などが含まれるが、これらに限定されない。圧縮伸長部１１６は予め定められた形式に応じたデータの符号化処理および復号処理を実行する。圧縮伸長部１１６がサポートする符号化形式に制限は無い。本実施形態では、符号化形式の例にはメーカ独自のＲＡＷ圧縮形式、Ｈ．２６４（またはＨＰＥＧ−４ ＡＶＣ）、Ｈ．２６５（またはＨＥＶＣ）、Ｍｏｔｉｏｎ Ｊｐｅｇなどが含まれるが、これらに限定されない。
【００１８】
なお、図１には示していないが、デジタルカメラ１００には集音装置（マイク）が設けられており、マイクから入力される音声についても、画像処理部１１５でＡ／Ｄ変換され、圧縮伸長部１１６で符号化処理および復号処理が行われる。
【００１９】
表示部１２０は例えば液晶ディスプレイ（ＬＣＤ）であり、タッチパネルが設けられていても良い。タッチパネルと表示部１２０のＧＵＩ表示とを組み合わせることで、操作部１０７を構成するソフトウェアキー・ボタンを実現してもよい。撮影スタンバイ時や動画撮影中には撮影した動画をリアルタイムに表示部１２０で表示することにより、表示部１２０を電子ビューファインダーとして用いることができる。また、表示部１２０には、設定のためのメニュー画面や、デジタルカメラ１００の状態や設定値、メモリカード１０６に記憶されている画像データなども表示される。
【００２０】
上述した各機能ブロックはバス１２１を通じて相互に接続され、ＣＰＵ１０１による制御や、機能ブロック間の通信を可能にしている。なお、図１はデジタルカメラ１００が有する機能ブロックのうち、実施形態の説明に必要な一部を模式的に示したものである。
【００２１】
図２は、デジタルカメラ１００の動作時におけるＤＲＡＭ１０３のメモリマップを模式的に示す図である。デジタルカメラ１００の電源が投入されると、ＣＰＵ１０１はＲＯＭ１０２からプログラムをＤＲＡＭ１０３にロードし、実行する。本実施形態では、ＣＰＵ１０１が、基本制御プログラム３０１、撮影制御プログラム３０２、画像ファイル制御プログラム３０３、シーケンス情報制御プログラム３０４を実行することにより、デジタルカメラ１００の機能を実現する。
【００２２】
基本制御プログラム３０１は、操作部１０７を通じたユーザ入出力に関する処理や、基本的なユーザインターフェース処理、ファイルＩ／Ｏ処理などを実現する。また、撮影制御プログラム３０２は、動画や静止画の撮影に係る各種の機能を実現するためのプログラムで、主に撮像ユニット１１３や信号処理プロセッサ１１４の動作内容やタイミングの制御に関するプログラムである。
【００２３】
画像ファイル制御プログラム３０３は、撮影によって得られた画像データや、画像データに基づいて生成されたデータを、後述する特定の形式のデータファイルに格納し、メモリカード１０６に記録する動作を実現するためのプログラムである。ＣＰＵ１０１は、画像ファイル制御プログラム３０３を実行することで、再生時には、データを見つけるための決まりに従ってデータファイル内の所望のデータ（後述するシーケンス情報を含む）を見つけたり、再生に必要なメタデータを見つけたりする。またＣＰＵ１０１は、画像ファイル制御プログラム３０３を実行することで、データファイルの記録時には、特定のデータをデータファイルの特定の場所に記録する。
【００２４】
シーケンス情報制御プログラム３０４は、シーケンス情報の生成、読込、更新機能を実現するためのプログラムである。シーケンス情報は、データファイルが格納している動画データに関する情報（付随情報）であり、撮影識別情報およびフレーム区間を特定する情報などを含むことができる。ＣＰＵ１０１は画像ファイル制御プログラム３０３を実行することにより、データファイルからシーケンス情報を取得し、シーケンス情報制御プログラム３０４に供給する。また、ＣＰＵ１０１は、シーケンス情報制御プログラム３０４を実行することにより、記録するデータファイルに関するシーケンス情報を生成し、画像ファイル制御プログラム３０３に供給する。ＣＰＵ１０１は、画像ファイル制御プログラム３０３を実行することで、シーケンス情報をデータファイルの特定の場所に格納する。
なお、図２において、作業用メモリ領域３０５はプログラムではなく、プログラムの実行に必要な変数値などを一時的に記憶するためのメモリ空間を示している。
【００２５】
図３（ａ）は、本実施形態のデジタルカメラ１００が生成するデータファイルのデータ構成例を示す図である。本実施形態のデータファイルは、複数の画像データを時系列で表現可能なファイルフォーマットに準拠したデータ構成を有する。具体的には、データファイルは、ＩＳＯベースメディアファイルフォーマット(ISO/IEC 14496-12)あるいはその互換フォーマットに準拠したコンテナ構造を有する。
【００２６】
ＩＳＯベースメディアファイルフォーマットは、コンテナボックスと、コンテナボックスに格納されるサブボックスとからなるコンテナ構造を有する。図３（ａ）において、データファイル４００は最上位のコンテナボックスであり、ファイルタイプボックス(ftyp)４０１、ムービーボックス(moov)４０２、メディアデータボックス(mdat)４０７を格納する。ムービーボックス４０２は独自メタデータを格納可能な拡張ボックス(uuid)４０３、複数のトラックボックス(trak)４０５〜４０６を格納する。メディアデータボックス４０７は実データを格納する。拡張ボックス(uuid)４０３は、シーケンスインフォボックス(sqif)４０４を格納する。
【００２７】
なお、ＩＳＯベースメディアファイルフォーマットでは、実データを、サンプル、チャンク、トラックという単位で管理する。トラックは画像シーケンスや音声シーケンスであり、サンプルの集合である。サンプルは単独のビデオフレーム、時間の連続したビデオフレーム群、または時間の連続した圧縮音声部分である。また、チャンクは、あるトラックに関する、複数の連続するサンプルからなり、メディアデータボックス４０７に格納される実データの管理単位である。なお、ＩＳＯベースメディアファイルフォーマットの詳細については、ISO/IEC 14496-12規格書を参照されたい。
【００２８】
したがって、図３（ａ）のメディアデータボックス４０７における動画データ４０８、音声データ４０９は、それぞれ共通した単位時間ごとに管理されている。あるトラックに関する実データの各チャンクの開始アドレスは、ファイルの先頭からの絶対オフセット(Chunk Offset)によって管理される。
【００２９】
ファイルタイプボックス４０１には、データファイルの種別を４文字の識別子（ブランド）で示す。識別子は登録制であり、国際的に管理されている。
ムービーボックス４０２は、メディアデータボックス４０７に格納される実データに関するメタデータ（管理情報）を格納するコンテナボックスである。
ムービーボックス４０２には、
・mvhd（ムービーヘッダ）：作成日時、修正日時、タイムスケール、長さ、再生速度、音量など、
・trak（トラック）：１つのトラックに関するコンテナボックス
が含まれる。
【００３０】
また、各トラックボックス(trak)には、以下のボックスが含まれ、予め定められた設定値に応じた値が格納される。これらのボックスや格納される情報は規格で定められたものであるため、詳細についての説明は省略する。
tkhd（トラックヘッダ）：フラグ（使用可能か否かなど）、作成日時、修正日時、トラックＩＤ、長さ(duration)、レイヤ、音量、トラック幅・高さなど
mdia（メディア）：トラック内のメディアデータに関するボックスを格納するコンテナボックス
mdhd（メディアヘッダ）：メディアに依存しない、トラック内のメディアの特徴に関する情報（生成日時、修正日時、タイムスケール、長さ、言語など）
hdlr（ハンドラリファレンス）：メディアハンドラのタイプ（トラックの種類）、トラックタイプに関する、人間が理解できる名称など
minf（メディア情報）：トラック内のメディアの特徴情報を格納するコンテナボックス
vmhd/smhd/hmhd/nmhd（メディア情報ヘッダ）：トラックの種類に応じた１つが設けられる。バージョンなど、符号化とは独立した情報。
dinf（データ情報）：トラック内のメディア情報の位置に関するボックスを格納するコンテナボックス
dref（データ参照）：バージョン、実エントリ数、エントリフォーマットのバージョン、データエントリ名（ＵＲＮ）またはデータエントリ位置（ＵＲＬ）
stbl（サンプルテーブル）：トラック内のメディアサンプルについての時刻およびデータの全インデックスを含むサンプルテーブル
stsd（サンプル記述）：符号化形式に関する詳細情報と初期化情報
stts（復号時刻−サンプル）：復号時刻からサンプル番号への変換テーブル
stsc（サンプル−チャンク）：サンプルから、それが含まれるチャンクを見つけるための情報（チャンクあたりのサンプル数など）
stsz（サンプルサイズ）：サンプルカウントおよび各サンプルのデータサイズ（バイト）
stco（チャンクオフセット）：ファイル内の各チャンクについての位置情報のテーブル
【００３１】
なお、図３（ａ）では簡単のため、メディアデータボックス４０７に格納されるデータの各々についてのトラックボックス４０５〜４０６のみを示している。なお、上述のボックス以外のボックスがムービーボックス４０２や拡張ボックス４０３、トラックボックス４０５〜４０６に含まれてもよい。本実施形態においてトラックボックス４０５〜４０６はそれぞれ、メディアデータボックス４０７に格納されている動画データ、音声データに関するメタデータを格納している。
【００３２】
図３（ｂ）に、本実施形態において用いるシーケンス情報の構成例を示す。
５００は、１回の撮影で得られた動画データ全体を格納しているデータファイルに記録されるシーケンス情報の例である。シーケンス情報５００は、シーケンス情報５００が記録されているデータファイルに、１回の撮影で得られた第１〜第１００フレームの区間の動画データが格納されていること、またそのフレーム区間と、同じ撮影で得られた動画データ全体との位置関係を表す。なお、１回の撮影とは、撮影開始指示に応じて開始された撮影の継続期間とする。なお、撮影が一時停止されたのちに再開された場合、一時停止期間が所定時間以内（例えば数秒以内）であれば撮影が継続しているものと見なしてもよい。
【００３３】
また、５１０および５２０は、１回の撮影で得られた動画データが２ファイルに跨がって格納されている場合のシーケンス情報の例である。シーケンス情報５１０は動画データの前半（１〜１００フレーム目）が格納されているデータファイルに、シーケンス情報５２０は動画データの後半（１０１〜２００フレーム目）が格納されているデータファイルに、それぞれ記録される。
【００３４】
例えば、ファイルシステムＦＡＴ３２では、ファイルサイズは最大４ＧＢと規定されている。そのため、ファイルシステムＦＡＴ３２を用いる場合、１回の撮影で得られた動画データであっても、動画データを格納するファイルのサイズが４ＧＢを超える場合には、複数のデータファイルに分割記録される。現在記録中のデータファイルをファイナライズし、新しいデータファイルを作成して記録を継続する分割記録をファイルブレイク記録と呼ぶ。シーケンス情報５１０および５２０が記録される２つのデータファイルは、ファイルブレイク記録された一連の動画を格納している。
【００３５】
シーケンス情報の各要素について説明する。
Shooting ID５０１は、撮影識別情報であり、撮影ごとに割り振られる固有情報（ここでは固有値）である。従って、Shooting ID５０１の値が等しい複数のデータファイルは同じ撮影に係る動画データを格納していることを意味する。従って、図３（ｂ）に示した、ファイルブレイク記録に係る複数のデータファイルに記録されるシーケンス情報５１０および５２０のShooting ID５０１の値は等しい。本実施形態では、Shooting ID５０１に、汎用一意識別子として広く利用されている１６バイトの数値Universally Unique Identifier（ＵＵＩＤ）を用いるものとする。ただし、識別子として利用可能な他の任意の形式の値をShooting ID５０１に用いることができる。
【００３６】
Start Frame Index５０２は、データファイルに記録されている動画データの先頭フレームの番号である。
End Frame Index５０３は、データファイルに記録されている動画データの最終フレームの番号である。
Start Frame Index５０２およびEnd Frame Index５０３は動画データのフレーム区間を特定する情報である。本実施形態ではStart Frame Index５０２およびEnd Frame Index５０３に撮影時のフレーム番号を用いている。そのため、Start Frame Index５０２およびEnd Frame Index５０３の値は、データファイルに格納されている動画データが、撮影時に得られた動画データ全体のどの区間に相当するかをフレーム単位で表す。
【００３７】
例えば、シーケンス情報５２０が記録されたデータファイルは、Shooting ID=1111111111111111の撮影に係る動画データ全体のうち、１０１フレーム目から２００フレーム目までの区間を格納している。同様に、シーケンス情報５１０が記録されたデータファイルは、Shooting ID=1111111111111111の撮影に係る動画データ全体のうち、１フレーム目から１００フレーム目までの区間を格納している。シーケンス情報５１０が記録されたデータファイルと、シーケンス情報５２０が記録されたデータファイルとは、Shooting IDの値が等しいので、同じ撮影に係る動画データを格納していることがわかる。
【００３８】
Total Frame Num５０４は、同一撮影に係る動画データの総フレーム数である。Total Frame Num５０４、Start Frame Index５０２およびEnd Frame Index５０３から、そのデータファイルに格納されている動画データが同一撮影に係る動画データ全体であるのか一部であるのかが分かる。また、一部である場合には、全体のどの部分が格納されているのかが分かる。さらに、ファイルを結合する場合、最後のフレームまで結合したかどうかを判断することもできる。
【００３９】
同一撮影に係る動画データ全体が１つのデータファイルに格納されている場合、シーケンス情報５００のように、Start Frame Index５０２は必ず１となる。また、End Frame Index５０３とTotal Frame Num５０４とが同じ値（ここでは１００）となる。
一方、同一撮影に係る動画データ全体が２ファイルにファイルブレイク記録された場合、前半の動画データを格納しているデータファイルのシーケンス情報５１０におけるStart Frame Index５０２は全体の先頭を示す１となる。一方、End Frame Index５０３には格納している動画データの最終フレーム番号（１００）が、またTotal Frame Num５０４には撮影に係る動画データの総フレーム数（２００）がそれぞれ設定される。また、後半の動画データを格納しているデータファイルのシーケンス情報５２０におけるStart Frame Index５０２には、シーケンス情報５１０のEnd Frame Index５０３を＋１した１０１が設定される。また、シーケンス情報５２０のEnd Frame Index５０３とTotal Frame Num５０４には同じ値（２００）が設定される。
【００４０】
シーケンス情報はさらに、Past Processing Status５０５を含んでいる。Past Processing Status５０５は、そのデータファイルが格納する動画データが、編集されたものか否か（オリジナルかどうか）、および、編集の種別を表す。本実施形態でPast Processing Status５０５は、ビットごとに編集の種別（有無）を示す３２ビットフラグであり、最下位ビットを第０ビット、最上位ビットを第３１ビットとする。そして、最下位ビット（第０ビット）はファイルブレイクによるファイル分割、第１ビットを時間軸方向の切り出し編集、第２ビットを再エンコード、・・・のように各ビットに編集種別を割り当て、実行されている編集を「１」で表すものとする。また、一部のビットを他の用途、例えば編集の世代（子、孫、・・・）や、編集の回数を示すために用いてもよい。
【００４１】
従って、オリジナルの画像データ全体を格納するデータファイルではPast Processing Status５０５は３２ビット全て０のフラグ”0x00000000”が設定される。一方、ファイルブレイク記録された動画データを格納する２つのデータファイルのシーケンス情報５１０および５２０に含まれるPast Processing Status５０５は、ファイルブレイクに割り当てられた最下位ビットが１であるフラグ”0x00000001”が設定される。このように、Past Processing Status５０５の値から、格納されている画像データが全く編集（加工）されていないのか、編集（加工）されているのか、またどのような編集がなされているのかを容易に判別できる。
【００４２】
＜デジタルカメラの記録処理手順＞
次に、図４に示すフローチャートを用いて、デジタルカメラ１００の撮影に係る一連の動作について説明する。図４に示す処理は、電源ボタン１０８の操作によってデジタルカメラ１００の電源がオンになり、撮影スタンバイ状態で動作中である時点から開始する。以下では便宜上、ＣＰＵ１０１が特定のプログラムを実行することで実現する処理について、プログラムを主体として説明する。
【００４３】
Ｓ６００でＣＰＵ１０１（基本制御プログラム３０１）は、操作部１０７に対して何らかの操作が行われるのを待機する。操作部１０７が操作されるとＳ６０１でＣＰＵ１０１（基本制御プログラム３０１）は、操作が電源オフ操作か判断し、電源オフ操作であればＳ６０２で所定の電源オフ処理を実行する。
【００４４】
一方、電源オフ操作でなければ、Ｓ６０３でＣＰＵ１０１（基本制御プログラム３０１）は、動画撮影指示ボタン１１１の操作（動画記録開始指示の入力）かどうか判断する。動画撮影指示ボタン１１１の操作でなければ、ＣＰＵ１０１（基本制御プログラム３０１）は操作に応じた動作を実行し（Ｓ６０４）、処理をＳ６００に戻す。
【００４５】
動画撮影指示ボタン１１１の操作であれば、Ｓ６０５でＣＰＵ１０１（シーケンス情報制御プログラム３０４）は、シーケンス情報を生成する。具体的には、ＣＰＵ１０１（シーケンス情報制御プログラム３０４）は、
Shooting ID：新規生成したＵＩＤ
Start Frame Index：１
Past Processing Status：0x00000000
であるシーケンス情報を生成する。End Frame IndexとTotal Frame Numはこの時点では設定されない。なお、ＵＩＤは、ＵＬ(Universal Label)、ＵＵＩＤ(Universally Unique Identifier)、ＵＭＩＤ(Unique Material Identifier)などの固有識別子の総称である。
【００４６】
本実施形態でＣＰＵ１０１（シーケンス情報制御プログラム３０４）は、ＳＭＴＰＥ−３３０Ｍに規定される”IEEE1394 network method”に準拠した方法で生成されるＵＭＩＤに含まれる１６バイトのＭａｔ＃をＵＩＤとして用いる。しかし、ＯＳやプログラム言語が提供するＵＵＩＤ発生ルーチンを用いるなど、他の方法を用いて生成することもできる。なお、Shooting IDは撮影開始時に限らず、ファイルクローズまでの任意のタイミングにおいて生成することができる。
【００４７】
Ｓ６０６でＣＰＵ１０１（画像ファイル制御プログラム３０３）はデータファイルのヘッダ情報、具体的にはファイルタイプボックス４０１およびムービーボックス４０２に格納する情報（Ｓ６０５またはＳ６１５で生成したシーケンス情報も含む）を生成する。なお、ここでは全てのヘッダ情報を生成するわけではなく、生成可能なものだけ（例えば動画データの解像度やレート等の静的な情報）を生成する。また、ＣＰＵ１０１（基本制御プログラム３０１）は、ファイルオープン処理を行い、ヘッダ情報をメモリカード１０６に書き込む。
【００４８】
Ｓ６０７でＣＰＵ１０１（撮影制御プログラム３０２）は、１フレーム分の動画撮影処理を実行し、撮像ユニット１１３から読み出した画像信号を画像処理部１１５へ供給する。
【００４９】
Ｓ６０８で画像処理部１１５は、Ａ／Ｄ変換処理や解像度変換処理など、圧縮伸長部１１６での符号化処理に依存しない画像処理を実行する。なお、ＲＡＷ形式で記録する場合以外は色補間処理（デモザイク処理）やホワイトバランス調整処理もここで行う。また、動画とともに音声を記録する場合、画像処理部１１５は音声信号のＡ／Ｄ変換やノイズ低減処理などを行う。
【００５０】
Ｓ６０９で圧縮伸長部１１６は、画像処理部１１５から入力される画像（および音声）データに対し、符号化処理を適用する。なお、フレーム間予測符号化を適用する場合、Ｓ６０９の処理は必ずしも直前に撮影された動画フレームに適用されない。圧縮伸長部１１６は、符号化したデータをＤＲＡＭ１０３の作業用メモリ領域３０５に書き込む。
【００５１】
Ｓ６１０でＣＰＵ１０１（画像ファイル制御プログラム３０３）は、ＤＲＡＭ１０３の作業用メモリ領域３０５に格納された符号化データの所定の書き込み単位分を基本制御プログラム３０１に受け渡す。ＣＰＵ１０１（基本制御プログラム３０１）は、データをメモリカード１０６に記録する。なお、ＣＰＵ１０１（画像ファイル制御プログラム３０３）は、記録開始時からのフレーム数を順次カウントする。
【００５２】
なお、ここでは撮影データの喪失防止や、小容量のＤＲＡＭ１０３での処理を想定してデータを順次メモリカード１０６に記録する構成について説明した。しかし、ＤＲＡＭ１０３の容量が十分に大きい場合や、処理時間が問われない場合には、記録終了まで撮影データをＤＲＡＭ１０３にバッファリングしておき、まとめてデータファイルに書き込むようにしてもよい。
【００５３】
Ｓ６１１でＣＰＵ１０１（撮影制御プログラム３０２）は動画撮影指示ボタン１１１の押下（動画撮影終了指示の入力）があったか判断し、動画撮影終了指示の入力があれば、撮影動作を終了し、Ｓ６１２へ処理を進める。
【００５４】
Ｓ６１２でＣＰＵ１０１（シーケンス情報制御プログラム３０４）は、基本制御プログラム３０１を通して、データファイルのヘッダ部のムービーボックス４０２内のシーケンスインフォボックス４０４に格納されているシーケンス情報を更新する。具体的には、ＣＰＵ１０１（シーケンス情報制御プログラム３０４）は、End Frame IndexとTotal Frame Numの値を、記録開始からの総フレーム数で上書き更新する。
【００５５】
なお、Past Processing Statusの最下位ビットが１で、ファイルブレイク記録されたことが示されている場合、Ｓ６１２でさらにＣＰＵ１０１（シーケンス情報制御プログラム３０４）は、以下の動作を実行する。すなわち、同じ撮影で得られた動画データを格納するデータファイル（Shooting IDの値が同じデータファイル）のEnd Frame Indexを、記録開始からの総フレーム数で上書き更新する。
【００５６】
ムービーボックス(moov)４０２に格納されるデータのサイズは可変である。そのため、本実施形態では、拡張ボックス(uuid)４０３をムービーボックス(moov)４０２の先頭に配置し、かつシーケンスインフォボックス(sqif)４０４を拡張ボックス(uuid)４０３の先頭に配置する。これにより、シーケンスインフォボックス(sqif)４０４の先頭位置および、シーケンスインフォボックス４０４内のEnd Frame Indexの先頭位置の、ファイル先頭からのオフセット値を、ムービーボックス(moov)４０２のサイズに依存しない固定値にできる。この配置により、画像ファイル制御プログラム３０３によってシーケンスインフォボックス(sqif)４０４を探索する処理と、シーケンス情報制御プログラム３０４によってEnd Frame Indexの位置を探索する処理を省略することができる。
【００５７】
Ｓ６１２におけるシーケンス情報の更新処理が終わると、ＣＰＵ１０１（基本制御プログラム３０１）はファイルクローズ処理などを行ったあと、処理をＳ６００へ戻す。
【００５８】
一方、Ｓ６１１でＣＰＵ１０１（撮影制御プログラム３０２）は動画撮影指示ボタン１１１の押下（動画撮影終了指示の入力）がなければ、処理をＳ６１３に進める。
Ｓ６１３でＣＰＵ１０１（撮影制御プログラム３０２）は、ファイルブレイク記録が必要か否か判断し、必要と判断されれば処理をＳ６１４に進め、必要と判断されなければ処理をＳ６０７に戻して次のフレームに対する処理を行う。
【００５９】
例えば、ＣＰＵ１０１（撮影制御プログラム３０２）は、
（メモリカード１０６に書き込み済のデータファイルのサイズ＋１フレーム分の動画データサイズおよび音声データサイズの上限値）＞ファイルシステムにおけるファイルサイズの上限値（例えば、ＦＡＴ３２では４ＧＢ）
を満たす場合に、ファイルブレイク記録が必要と判断することができるが、他の条件を用いて判断してもよい。
【００６０】
Ｓ６１４でＣＰＵ１０１（シーケンス情報制御プログラム３０４）は、基本制御プログラム３０１を通して、データファイルのシーケンスインフォボックス(sqif)４０４に格納されているシーケンス情報のEnd Frame Indexと、Past Processing Statusをそれぞれ更新する。ＣＰＵ１０１（シーケンス情報制御プログラム３０４）は、（Start Frame Index＋データファイルに格納した総フレーム数）で得られる値でEnd Frame Indexを更新する。また、ＣＰＵ１０１（シーケンス情報制御プログラム３０４）は、ファイルブレイク記録に割り当てられた最下位ビットを１にした値(0x00000001)でPast Processing Statusを更新する。そしてＣＰＵ１０１（基本制御プログラム３０１）はファイルクローズ処理などを行ったあと、処理をＳ６１５に進める。
【００６１】
Ｓ６１５でＣＰＵ１０１（シーケンス情報制御プログラム３０４）は、次フレーム以降の動画データを格納するデータファイルに記録するシーケンス情報を生成する。具体的には、ＣＰＵ１０１（シーケンス情報制御プログラム３０４）は、Shooting IDに、Ｓ６１４でファイルクローズ処理を行ったデータファイル（前データファイル）のShooting IDと同じ値を設定する。またＣＰＵ１０１（シーケンス情報制御プログラム３０４）は、Start Frame Indexに、前データファイルのEnd Frame Indexより１大きい値を設定し、Past Processing Statusには前データファイル同様、ファイルブレイク記録されたことを示す値(0x00000001)を設定する。そしてＣＰＵ１０１（基本制御プログラム３０１）は、Ｓ６１５で生成したシーケンス情報を画像ファイル制御プログラム３０３に渡し、処理をＳ６０６に戻す。
【００６２】
＜動画結合処理＞
以上のようにして記録されたデータファイル、特にファイルブレイク記録された複数のデータファイルの結合処理について説明する。本実施形態では記録済みデータファイルの編集をパーソナルコンピュータ（ＰＣ）で実行する形態であるため、まず、データファイルを取り扱うＰＣに関して説明する。
【００６３】
図５は、本実施形態に従って記録されたデータファイルを取り扱うことのできるＰＣ７００の機能構成例のブロック図である。
ＣＰＵ７０１は、ＲＯＭ７０４に記憶されている各種プログラムをＲＡＭ７０５にロードして実行することにより、ＰＣ７００の機能を実現する。各種プログラムには、制御プログラム（オペレーティングシステム）７１１、画像ファイル制御プログラム７１２、シーケンス情報制御プログラム７１３、アプリケーションプログラム７１４などが含まれる。
【００６４】
外部記憶装置７０２は、ハードディスク、メモリカード等であり、データファイルなどが記憶されている。ここでデータファイルは図３（ａ）を用いて説明した構成を有するものとする。
【００６５】
通信部７０３はＷｉ−Ｆｉ、ブルートゥース（登録商標）などの無線通信規格に従って外部装置と無線通信するための送受信機や、ＵＳＢなどの有線通信規格に従って外部装置と通信するための送受信回路（インタフェースおよびコネクタ）などを有する。
【００６６】
ＲＯＭ７０４は、ＣＰＵ７０１が実行するプログラム、ＧＵＩデータ、設定値などを格納する。ＲＯＭ７０４の少なくとも一部は書き換え可能であってよい。
【００６７】
ＲＡＭ７０５は揮発性メモリであり、ＣＰＵ７０１がプログラムをロードしたり、ワークエリアやバッファメモリとして用いたりする。図５ではデータファイルを取り扱う場合の状態を示しており、各種のプログラムがロードされている。具体的には、制御プログラム７１１、画像ファイル制御プログラム７１２、シーケンス情報制御プログラム７１３、アプリケーションプログラム７１４、デコードプログラム７１５、エンコードプログラム７１６がロードされている。また、ＲＡＭ７０５の空き領域の一部が作業用メモリ領域７１７として図示されている。
【００６８】
操作入力ＩＦ７０６は、キーボード、マウス、タッチパッドなどを代表とする各種の入力機器７０９との接続を制御し、入力機器７０９に対するユーザ操作の内容をＰＣ７００に通知する。表示装置７１０がタッチディスプレイの場合、表示装置７１０も入力機器７０９の１つを構成する。
表示ＩＦ７０７は、ＬＣＤなどの表示装置７１０との接続を制御する。
上述の機能ブロックはバス７０８で通信可能に相互接続されている。
【００６９】
＜ファイル結合処理＞
次に、図６および図７を参照して、ＰＣ７００による結合処理の詳細について説明する。ここでは結合処理の例として、ファイルブレイク記録された（同一の撮影に係る）複数のデータファイルの結合処理と、異なる撮影に係る動画データを格納した複数のデータファイルの結合処理について説明する。
【００７０】
まず、図６に示すフローチャートを用いて、結合処理に係るＰＣ７００の動作について説明する。
以下の説明においても、ＣＰＵ７０１が特定のプログラムを実行することで実現する処理ステップについては、そのプログラムを実行主体として記載する。なお、制御プログラム７１１はＯＳであり、他のプログラム７１２〜７１６は制御プログラム７１１が提供する基本的な機能を利用して動作する。
【００７１】
Ｓ８０１でＣＰＵ７０１（アプリケーションプログラム７１４）は、外部記憶装置７０２に記憶されているデータファイルを、例えば入力機器７０９によって選択可能な形式で表示装置７１０に表示する。ここでは、本実施形態に係るデータ構造を有するデータファイルだけを、例えば拡張子などから特定して表示する。なお、データファイルは外部記憶装置７０２に記憶されているものに限らず、通信部７０３で通信可能な外部装置に記憶されていてもよい。ＣＰＵ７０１（アプリケーションプログラム７１４）は、入力機器７０９を通じて、結合対象のデータファイルと、結合の順番が指示されると、処理をＳ８０２に進める。
【００７２】
Ｓ８０２でＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、Ｓ８０１で選択された結合対象のデータファイルのそれぞれについて、シーケンスインフォボックス(sqif)４０４内のシーケンス情報を読み込む。なお、ここでは上述したように、シーケンスインフォボックス(sqif)４０４のファイルオフセットが固定かつ既知であるため、シーケンスインフォボックス(sqif)４０４の位置を特定する処理は不要である。シーケンスインフォボックス(sqif)４０４の位置が不明な場合、ＣＰＵ７０１（画像ファイル制御プログラム７１２）によって位置を特定する。ＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、取得した複数のシーケンス情報を、指定された結合順序に従ってリスト化する。なお、１つのデータファイルに複数のシーケンス情報が格納されている場合、書き込まれている順番でリスト化する。
【００７３】
Ｓ８０３でＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、Ｓ８０２で生成したシーケンス情報のリストから、結合後のデータファイル（結合データファイル）に書き込むシーケンス情報を生成する。Ｓ８０３で行うシーケンス情報生成処理の詳細については図６（ｂ）を用いて後述する。
【００７４】
Ｓ８０４でＣＰＵ７０１（アプリケーションプログラム７１４）は、結合データファイルのヘッダ情報、具体的には、ファイルタイプボックス(ftyp)４０１およびムービーボックス(moov)４０２に格納する情報を生成する。この情報には、Ｓ８０３で生成したシーケンス情報も含まれる。また、ＣＰＵ７０１（制御プログラム７１１）は、ファイルオープン処理を行い、生成したヘッダ情報を外部記憶装置７０２に記録する。
【００７５】
Ｓ８０５でＣＰＵ７０１（アプリケーションプログラム７１４）は、Ｓ８０１で指定された結合対象のデータファイルを全て結合したか判断する。全て結合したと判断されればＣＰＵ７０１（制御プログラム７１１）はファイルクローズ処理などを行ったあと、処理を終了し、全て結合したと判断されなければＣＰＵ７０１（アプリケーションプログラム７１４）は処理をＳ８０６に進める。
【００７６】
Ｓ８０６でＣＰＵ７０１（制御プログラム７１１とアプリケーションプログラム７１４）は、結合対象のデータファイルから動画データと音声データを読み出し、ＲＡＭ７０５の作業用メモリ領域７１７に書き込む。なお、ＩＳＯベースメディアファイルフォーマットまたはその互換フォーマットを有するデータファイルから動画データおよび音声データを取得する方法は公知であるため、その詳細に関する説明は省略する。
【００７７】
Ｓ８０７でＣＰＵ７０１（制御プログラム７１１）は、Ｓ８０６で取得した動画データおよび音声データをＲＡＭ７０５から、Ｓ８０４でオープン処理した結合データファイルに書き込む。
【００７８】
ここでは説明および理解を容易にするため、結合時に画像データや音声データの形式を変更しないものとするが、例えば符号化方式や圧縮率などを変更することもできる。この場合、Ｓ８０６でＣＰＵ７０１（デコードプログラム７１５）は、取得した動画データと音声データをデコードし、Ｓ８０７でデコードされたデータをＣＰＵ７０１（エンコードプログラム７１６）によってエンコードしてから書き込み処理を行えばよい。結合時にデータを再エンコードした場合、結合データファイルのシーケンス情報のPast Processing Statusのうち、再エンコード編集に割り当てられた第２ビットを１に設定する。これにより、オリジナルデータから変換されたデータであることを知ることができる。
【００７９】
Ｓ８０８でＣＰＵ７０１（アプリケーションプログラム７１４）は、処理中の結合対象データファイルに記録された全フレームを処理したか判断し、全フレームを処理したと判断されれば、処理対象を次のデータファイルに移行して、処理をＳ８０５に戻す。一方、全フレームを処理したと判断されなければ、ＣＰＵ７０１（アプリケーションプログラム７１４）は、処理対象を次のフレームに移行し、Ｓ８０６に処理を戻す。
【００８０】
次に、Ｓ８０３で実施するシーケンス情報生成処理の詳細について図６（ｂ）のフローチャートを用いて説明する。
Ｓ８２１でＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、Ｓ８０２で生成したシーケンス情報のリストを元に初期化処理を行う。具体的には、ＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、リストの最初のシーケンス情報をシーケンス情報Ａに、２番目のシーケンス情報をシーケンス情報Ｂにそれぞれ格納する。シーケンス情報Ａとシーケンス情報Ｂは共に変数である。
【００８１】
Ｓ８２２でＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、シーケンス情報Ａとシーケンス情報Ｂが同一撮影に関する情報か否かを、Shooting IDの値に基づいて判断する。シーケンス情報ＡのShooting IDと、シーケンス情報ＢのShooting IDとが等しい値であれば、同一撮影に関する情報と判断することができる。ＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、シーケンス情報Ａとシーケンス情報Ｂが同一撮影に関する情報と判断されればＳ８２３に、同一撮影に関する情報と判断されなければＳ８２８に、処理を進める。
【００８２】
Ｓ８２３でＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、シーケンス情報Ａとシーケンス情報Ｂが、連続するデータに関する情報か否かを、End Frame Indexの値に基づいて判断する。シーケンス情報ＡのEnd Frame Indexの値＋１が、シーケンス情報ＢのStart Frame Indexの値と等しければ、シーケンス情報Ａとシーケンス情報Ｂは連続するデータに関する情報と判断できる。ＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、シーケンス情報Ａとシーケンス情報Ｂが、連続するデータに関する情報と判断されればＳ８２４へ、連続するデータに関する情報と判断されなければＳ８２８へ、処理を進める。
【００８３】
Ｓ８２４でＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、シーケンス情報ＡのEnd Frame Indexをシーケンス情報ＢのEnd Frame Indexに置き換えて、シーケンス情報Ａにシーケンス情報Ｂをマージする。シーケンス情報ＢのStart Frame Indexをシーケンス情報ＡのStart Frame Indexに置き換えて、シーケンス情報Ｂにシーケンス情報Ａをマージしてもよい。
マージ後のシーケンス情報（ここではシーケンス情報Ａとする）のStart Frame Indexが１で、かつ、End Frame IndexとTotal Frame Numが同じ値である場合、シーケンス情報Ａは撮影全体のデータを表わす。そのため、ＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、シーケンス情報ＡのPast Processing Statusのファイルブレイクフラグ（最下位ビット）を０にする。
【００８４】
Ｓ８２５でＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、シーケンス情報Ｂがリストの最後のシーケンス情報か（最後の結合対象データファイルのシーケンス情報か）を判断する。ＣＰＵ７０１（シーケンス情報制御プログラム７１３）は最後のシーケンス情報と判断されればＳ８２７に、最後のシーケンス情報と判断されなければＳ８２６に、処理を進める。
【００８５】
Ｓ８２６でＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、シーケンス情報Ｂにリスト中の次のシーケンス情報を格納し、処理をＳ８２２に戻す。
Ｓ８２７でＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、マージ後のシーケンス情報Ａを結合データファイルのシーケンスインフォボックス(sqif)４０４に書き込み（追加し）、処理を終了する。
【００８６】
Ｓ８２８でＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、シーケンス情報Ａを結合データファイルのシーケンスインフォボックス(sqif)４０４に書き込む（追加する）。
Ｓ８２９でＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、Ｓ８２５と同様に、シーケンス情報Ｂがリストの最後のシーケンス情報か（最後の結合対象データファイルのシーケンス情報か）を判断する。ＣＰＵ７０１（シーケンス情報制御プログラム７１３）は最後のシーケンス情報と判断されればＳ８３１に、最後のシーケンス情報と判断されなければＳ８３０に、処理を進める。
【００８７】
Ｓ８３０でＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、シーケンス情報Ａにシーケンス情報Ｂを、シーケンス情報Ｂにリスト中の次のシーケンス情報をそれぞれ格納し、処理をＳ８２２に戻す。
Ｓ８３１でＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、シーケンス情報Ｂを結合結果データファイルのシーケンスインフォボックス(sqif)４０４に書き込み（追加し）、処理を終了する。
【００８８】
このようなファイル結合処理によって結合データファイルのシーケンスインフォボックス(sqif)４０４に書き込まれるシーケンス情報の具体例を、図７を用いて説明する。
まず、ファイルブレイク記録された（同一の撮影に係る）複数のデータファイルの結合処理によって生成されるシーケンス情報について、図７（ａ）を用いて説明する。
【００８９】
図７（ａ）において、ファイルブレイク記録された２つのデータファイルMOV_0001、MOV_0002のシーケンス情報５１０と５２０は、図５（ｂ）に示したものと同じである。シーケンス情報９０１は、データファイルMOV_0001とMOV_0002とを結合した結合データファイルCON_MOV_0001に格納されるシーケンス情報である。
【００９０】
ここでは、Ｓ８０１においてデータファイルMOV_0001、MOV_0002が結合対象として選択され、データファイルMOV_0001、データファイルMOV_0002の順に結合することが指定されたものとする。この場合、Ｓ８０３でのシーケンス情報生成処理は以下の様に行われる。
【００９１】
Ｓ８２１でＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、シーケンス情報Ａにシーケンス情報５１０、シーケンス情報Ｂにシーケンス情報５２０をそれぞれ格納する。
Ｓ８２２でＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、シーケンス情報Ａとシーケンス情報ＢのShooting IDが同じ値(1111111111111111)であることから、同一撮影に関する情報と判断し、Ｓ８２３に処理を進める。
【００９２】
Ｓ８２３でＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、シーケンス情報Ａとシーケンス情報Ｂを連続するシーケンスに関する情報と判断し、処理をＳ８２４に進める。この判断は、シーケンス情報ＡのEnd Frame Index＋１(＝101)とシーケンス情報ＢのStart Frame Index(101)が同じ値であることに基づく。
【００９３】
Ｓ８２４でＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、シーケンス情報ＡのEnd Frame Indexにシーケンス情報ＢのEnd Frame Indexの値(200)を設定し、シーケンス情報をマージする。マージにより、シーケンス情報ＡのEnd Frame IndexとTotal Frame Numが同じ値となる。そのため、ＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、シーケンス情報ＡのPast Processing Statusにおけるファイルブレイク記録の有無を示す最下位ビットを０にリセットする。このようにして、シーケンス情報Ａは、図７（ａ）のシーケンス情報９０１と等しくなる。
【００９４】
次にＳ８２５でＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、シーケンス情報Ｂがリストの最後のシーケンス情報であると判断し、処理をＳ８２７に進める。
Ｓ８２７でＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、シーケンス情報Ａを結合データファイルのシーケンスインフォボックス(sqif)４０４に追加して、処理を終了する。
【００９５】
次に、異なる撮影に係る動画データを格納した複数のデータファイルの結合処理によって生成されるシーケンス情報について、図７（ｂ）を用いて説明する。
図７（ｂ）において、シーケンス情報１００１と１００２は、結合対象の２つのデータファイルMOV_0003、MOV_0004のシーケンス情報である。また、シーケンス情報１００３は、データファイルMOV_0003とMOV_0004とを結合した結合データファイルCON_MOV_0003に格納されるシーケンス情報である。
【００９６】
ここでは、Ｓ８０１においてデータファイルMOV_0003、MOV_0004が結合対象として選択され、データファイルMOV_0003、データファイルMOV_0004の順に結合することが指定されたものとする。この場合、Ｓ８０３でのシーケンス情報生成処理は以下の様に行われる。
【００９７】
Ｓ８２１でＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、シーケンス情報Ａにシーケンス情報１００１、シーケンス情報Ｂにシーケンス情報１００２をそれぞれ格納する。
シーケンス情報ＡのShooting ID(2222222222222222)とシーケンス情報ＢのShooting ID(3333333333333333)とが異なる値である。そのためＳ８２２でＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、シーケンス情報Ａとシーケンス情報Ｂとが同一撮影に関する情報ではないと判断し、Ｓ８２８に処理を進める。
【００９８】
Ｓ８２８でＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、シーケンス情報Ａを結合データファイルのシーケンスインフォボックス(sqif)４０４に書き込む（追加する）。
Ｓ８２９でＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、シーケンス情報Ｂがリストの最後のシーケンス情報であると判断し、処理をＳ８３１に進める。
Ｓ８３１でＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、シーケンス情報Ｂを結合結果データファイルのシーケンスインフォボックス(sqif)４０４に書き込み（追加し）、処理を終了する。
【００９９】
図７（ｂ）から分かるように、シーケンス情報１００３は、結合対象のデータファイルMOV_0003のシーケンス情報１００１と、MOV_0004のシーケンス情報１００２とを含んでいる。このように、異なる撮影に係るデータファイルが結合された場合、結合データファイルのシーケンスインフォボックス(sqif)４０４には複数のシーケンス情報が格納される。結合データファイルCON_MOV_0003のシーケンスインフォボックス(sqif)４０４を参照することで、このファイルが別の撮影に係るデータファイルを結合したものであることを知ることができる。
【０１００】
＜管理処理（結合データファイル）＞
次に、本実施形態に係るデータファイル構造の有用性を説明するために、ＰＣ７００で実行するデータファイル管理動作の一例としての管理表示動作の例について図８〜図９（ｂ）を用いて説明する。
【０１０１】
図８は、管理表示処理に関するＰＣ７００の動作を示すフローチャートである。
以下の説明においても、ＣＰＵ７０１が特定のプログラムを実行することで実現する処理ステップについては、そのプログラムを実行主体として記載する。なお、制御プログラム７１１はＯＳであり、他のプログラム７１２〜７１６は制御プログラム７１１が提供する基本的な機能を利用して動作する。
【０１０２】
Ｓ１１０１でＣＰＵ７０１（アプリケーションプログラム７１４）は、Ｓ８０１と同様にして、外部記憶装置７０２に記憶されているデータファイルを、例えば入力機器７０９によって選択可能な形式で表示装置７１０に表示する。ＣＰＵ７０１（アプリケーションプログラム７１４）は、入力機器７０９を通じて、１つのデータファイルが選択されると、処理をＳ１１０２に進める。
【０１０３】
Ｓ１１０２でＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、Ｓ１１０１で選択されたデータファイルのシーケンスインフォボックス(sqif)４０４からシーケンス情報を読み込む。なお、ここでは上述したように、シーケンスインフォボックス(sqif)４０４のファイルオフセットが固定かつ既知であるため、シーケンスインフォボックス(sqif)４０４の位置を特定する処理は不要である。シーケンスインフォボックス(sqif)４０４の位置が不明な場合、ＣＰＵ７０１（画像ファイル制御プログラム７１２）によって位置を特定する。ここで読み込んだシーケンス情報が管理表示の基準となる。
【０１０４】
Ｓ１１０３でＣＰＵ７０１（アプリケーションプログラム７１４）は、外部記憶装置７０２に記録されているデータファイルのうち、本実施形態に係るデータ構造を有するデータファイルであって、かつＳ１１０１で選択されていないデータファイルを探索する。
【０１０５】
Ｓ１１０４でＣＰＵ７０１（アプリケーションプログラム７１４）は、外部記憶装置７０２に記録されている、本実施形態に係るデータ構造を有するデータファイルのうち、Ｓ１１０５以降の処理を実施していない（未処理の）ものの有無を判断する。ＣＰＵ７０１（アプリケーションプログラム７１４）は、未処理のデータファイルがないと判断されればＳ１１０８に、あると判断されればＳ１１０５に処理を進める。
【０１０６】
Ｓ１１０５でＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、Ｓ１１０３で探索されたデータファイルのシーケンスインフォボックス(sqif)４０４からシーケンス情報を読み込む。そして、Ｓ１１０２読み込んだ、Ｓ１１０１で選択されたファイルのシーケンス情報のShooting IDと、Ｓ１１０５で読み込んだシーケンス情報のShooting IDとで、同じ値の有無を判断する。Ｓ１１０１で選択されたデータファイルに複数のシーケンス情報が格納されている場合、ＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、個々のシーケンス情報のShooting IDについて判断を行う。ＣＰＵ７０１（アプリケーションプログラム７１４）は、同じ値のShooting IDがあると判断されればＳ１１０７に処理を進め、判断されなければＳ１１０３に処理を戻す。
【０１０７】
Ｓ１１０７でＣＰＵ７０１（アプリケーションプログラム７１４）は、Ｓ１１０５でシーケンス情報を読み込んだデータファイルを表示対象データファイルとし、ファイル名とシーケンス情報とを表示用情報リストに追加したのち、処理をＳ１１０３に戻す。
【０１０８】
Ｓ１１０８でＣＰＵ７０１（アプリケーションプログラム７１４）は、Ｓ１１０１で選択されたデータファイルと、Ｓ１１０７で表示対象としたデータファイルとの関係を示す情報を、表示ＩＦ７０７を通して表示装置７１０に表示する。
【０１０９】
図９（ａ）は、Ｓ１１０１で結合データファイルCON_MOV_0001が選択された場合に、Ｓ１１０８でＣＰＵ７０１（アプリケーションプログラム７１４）が表示する情報の一例を示す図である。この場合、Ｓ１１０３〜Ｓ１１０６の処理ループにより、結合元のデータファイルMOV_0001、MOV_0002が表示対象と判定される。従って、表示用情報リストには、データファイルMOV_0001、MOV_0002のファイル名とシーケンス情報が追加される。
【０１１０】
図９（ａ）の例では、選択されたデータファイルと、選択されたデータファイルとShooting IDの値が同じ他のデータファイルについて、Shooting ID、ファイル名、および各データファイルに格納されているデータ区間とを比較表示している。
データ区間については、各データファイルのシーケンス情報からStart Frame IndexとEnd Frame Indexの値を読み出し、フレーム番号の範囲を比較表示している。図９（ａ）の例では、フレーム番号を共通の軸として、各データファイルのデータ区間を帯状に表すことで、関連するデータファイルが格納しているデータ区間の関係を直感的に把握することを可能にしている。また、帯状の区間の表示形態（色やパターンなど）は、対応するShooting IDの表示形態に合わせている。ここでは、表示対象のデータファイルが全て同じShooting IDを有するため、全て同じ表示形態である。ユーザは、図９（ａ）の表示により、データファイルCON_MOV_0001が、同一の撮影に係るデータファイルMOV_0001とMOV_0002の結合データファイルであることを一目で把握することができる。また、編集処理前後のデータファイルが格納する動画データの区間の関係も、フレーム単位で一目で把握することができる。
【０１１１】
また、図９（ｂ）は、Ｓ１１０１で結合データファイルCON_MOV_0003が選択された場合に、Ｓ１１０８でＣＰＵ７０１（アプリケーションプログラム７１４）が表示する情報の一例を示す図である。この場合、Ｓ１１０３〜Ｓ１１０６の処理ループにより、結合元のデータファイルMOV_0003、MOV_0004が表示対象と判定される。従って、表示用情報リストには、データファイルMOV_0003、MOV_0004のファイル名とシーケンス情報が追加される。
【０１１２】
図９（ａ）と基本的な表示形態は同様であるが、結合データファイルCON_MOV_0003の結合元データファイルMOV_0003、MOV_0004は異なる撮影に係るため、Shooting IDも複数存在する。そのため、Shooting IDごとに表示形態が異なり、また各データファイルのデータ区間を表す帯状の区間も、対応するShooting IDごとに異なる表示形態を有している。そのため、関連するデータファイルが格納しているデータ区間の関係だけでなく、Shooting IDの関係も直感的に把握することを可能にしている。ユーザは、図９（ｂ）の表示により、データファイルCON_MOV_0003が、異なる撮影に係るデータファイルMOV_0003とMOV_0004の結合データファイルであることを一目で把握することができる。また、編集処理前後のデータファイルが格納する動画データの区間の関係も、フレーム単位で一目で把握することができる。
【０１１３】
図９では結合データファイルが選択された場合を示したが、結合データファイルの結合元データファイルのいずれかが選択されても同様の表示がなされる。なお、選択されたデータファイルの情報が最初もしくは最後に表示されるようにしてもよいし、結合データファイルやオリジナルデータファイルが最初又は最後に表示されるようにしてもよい。なお、いずれの場合も、選択されたデータファイルの情報を他のデータファイルの情報と視覚的（例えば色や大きさなど）に異ならせて表示することができる。
【０１１４】
＜切り出し処理＞
次に、図１０および図１１を参照して、ＰＣ７００による切り出し処理の詳細について説明する。切り出し処理は、元データファイルの一部を別のデータファイルとして生成する処理である。
【０１１５】
まず、図１０に示すフローチャートを用いて、動画切り出し処理に係るＰＣ７００の動作について説明する。
以下の説明においても、ＣＰＵ７０１が特定のプログラムを実行することで実現する処理ステップについては、そのプログラムを実行主体として記載する。なお、制御プログラム７１１はＯＳであり、他のプログラム７１２〜７１６は制御プログラム７１１が提供する基本的な機能を利用して動作する。
【０１１６】
Ｓ１４０１でＣＰＵ７０１（アプリケーションプログラム７１４）は、外部記憶装置７０２に記憶されているデータファイルを、例えば入力機器７０９によって選択可能な形式で表示装置７１０に表示する。ここでは、本実施形態に係るデータ構造を有するデータファイルだけを、例えば拡張子などから特定して表示する。なお、データファイルは外部記憶装置７０２に記憶されているものに限らず、通信部７０３で通信可能な外部装置に記憶されていてもよい。ＣＰＵ７０１（アプリケーションプログラム７１４）は、入力機器７０９を通じて切り出し元データファイルが選択されると、切り出し開始位置および終了位置を指定するための画面を表示装置７１０に表示する。切り出し開始位置および終了位置を指定するための画面は、公知のビデオ編集アプリケーションで表示されるトリミング画面と同様であってよい。ユーザは例えば切り出し元のデータファイルを例えばコマ送り再生させながら、フレーム単位で切り出しの開始位置および終了位置を指定する。切り出し開始位置および終了位置が指定されると、ＣＰＵ７０１（アプリケーションプログラム７１４）は処理をＳ１４０２に進める。
【０１１７】
Ｓ１４０２でＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、Ｓ１４０１で選択された切り出し元データファイルのシーケンス情報をシーケンスインフォボックス(sqif)４０４から読み込む。
Ｓ１４０３でＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、Ｓ１４０１で指定された切り出し開始位置および終了位置と、Ｓ１４０２で生成したシーケンス情報とから、切り出し処理で生成されるデータファイルに書き込むシーケンス情報を生成する。Ｓ１４０３で行うシーケンス情報生成処理の詳細については図１０（ｂ）を用いて後述する。以下、切り出し処理で生成されるデータファイルを切り出しデータファイルと呼ぶ。切り出し元データファイルに格納されているシーケンス情報が複数の場合、切り出しデータファイルのシーケンス情報も複数になり得る。
【０１１８】
Ｓ１４０４でＣＰＵ７０１（アプリケーションプログラム７１４）は、切り出しデータファイルのヘッダ情報、具体的には、ファイルタイプボックス(ftyp)４０１およびムービーボックス(moov)４０２に格納する情報を生成する。この情報には、Ｓ１４０３で生成したシーケンス情報も含まれる。また、ＣＰＵ７０１（制御プログラム７１１）は、ファイルオープン処理を行い、生成したヘッダ情報を外部記憶装置７０２に記録する。
【０１１９】
Ｓ１４０５でＣＰＵ７０１（制御プログラム７１１とアプリケーションプログラム７１４）は、切り出し元データファイルから、切り出し区間内の１フレーム分の動画データと音声データを読み出し、ＲＡＭ７０５の作業用メモリ領域７１７に書き込む。なお、ＩＳＯベースメディアファイルフォーマットまたはその互換フォーマットを有するデータファイルから動画データおよび音声データを取得する方法は公知であるため、その詳細に関する説明は省略する。
【０１２０】
Ｓ１４０６でＣＰＵ７０１（制御プログラム７１１）は、Ｓ１４０５で取得した動画データおよび音声データをＲＡＭ７０５から、Ｓ１４０４でオープン処理した切り出しデータファイルに書き込む。
【０１２１】
ここでは説明および理解を容易にするため、切り出し時に画像データや音声データの形式を変更しないものとするが、結合処理と同様、必要に応じて再エンコードを行ってもよい。
【０１２２】
Ｓ１４０７でＣＰＵ７０１（アプリケーションプログラム７１４）は、Ｓ１４０１で指定された切り出し終了位置のフレームまで処理したか判断する。処理したと判断されれば、ＣＰＵ７０１（制御プログラム７１１）は、ファイルクローズ処理などを行い、切り出し処理を終了する。一方、切り出し終了位置のフレームまで処理したと判断されなければ、ＣＰＵ７０１（アプリケーションプログラム７１４）は、処理対象を次のフレームに移行し、Ｓ１４０５に処理を戻す。
【０１２３】
次に、Ｓ１４０３で実施するシーケンス情報生成処理の詳細について図１０（ｂ）のフローチャートを用いて説明する。
Ｓ１４２１でＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、Ｓ１４０２で取得した切り出し元データファイルのシーケンス情報のうち、最初のシーケンス情報をシーケンス情報ｔｍｐに格納する。シーケンス情報ｔｍｐは変数である。また、ＣＰＵ７０１（シーケンス情報制御プログラム７１３）は走査位置の変数ｃｕｒに初期値１を設定する。
【０１２４】
Ｓ１４２２でＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、シーケンス情報ｔｍｐが示すフレーム区間に、Ｓ１４０１で設定された切り出し開始位置が含まれる否かを判断する。この判断は、シーケンス情報ｔｍｐが表すフレーム区間の総フレーム数Ｎと変数ｃｕｒとの和より１少ない値（Ｎ＋ｃｕｒ−１）と、切り出し開始位置のフレーム番号Ｓとの大小関係に基づいて行うことができる。
具体的には、
（Ｎ＋ｃｕｒ−１）≧Ｓ
であれば、シーケンス情報ｔｍｐが示すフレーム区間に切り出し開始位置が含まれるとＣＰＵ７０１（シーケンス情報制御プログラム７１３）は判断する。なお、シーケンス情報ｔｍｐが表すフレーム区間の総フレーム数ＮはFrame Indexの差分（End Frame Index−Start Frame Index）＋１として求めることができる。
【０１２５】
ＣＰＵ７０１（シーケンス情報制御プログラム７１３）はシーケンス情報ｔｍｐが示すフレーム区間に切り出し開始位置が含まれると判断されればＳ１４２４に、含まれると判断されなければＳ１４２３に、処理を進める。
【０１２６】
Ｓ１４２３でＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、各変数を更新し、処理をＳ１４２２に戻す。具体的には、ＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、変数ｃｕｒに（ｃｕｒ＋シーケンス情報ｔｍｐが表すフレーム区間の総フレーム数Ｎ）を設定する。また、ＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、シーケンス情報ｔｍｐに切り出し元データファイルの次のシーケンス情報を設定する。
【０１２７】
Ｓ１４２４でＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、シーケンス情報Ａ（変数）にシーケンス情報ｔｍｐを設定する。さらにＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、シーケンス情報ＡのStart Frame Indexにシーケンス情報ｔｍｐの区間に含まれる切り出し開始位置を設定する。Start Frame Indexの値は、シーケンス情報ｔｍｐのStart Frame Index＋切り出し開始位置のフレーム番号−ｃｕｒで求められる。
【０１２８】
シーケンス情報ＡのStart Frame Indexが、元のシーケンス情報ｔｍｐのStart Frame Indexと異なる値の場合、ＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、時間軸方向編集されたことをシーケンス情報に設定する。具体的には、ＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、シーケンス情報ＡのPast Processing Statusの第１ビットを１に設定する。
【０１２９】
次にＳ１４２５でＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、シーケンス情報ｔｍｐに、Ｓ１４０１で設定された切り出し終了位置が含まれるか否かを判断する。この判断は、シーケンス情報ｔｍｐが表すフレーム区間の総フレーム数Ｎと変数ｃｕｒとの和より１少ない値（Ｎ＋ｃｕｒ−１）と、切り出し終了位置のフレーム番号Ｅとの大小関係に基づいて行うことができる。
具体的には、
（Ｎ＋ｃｕｒ−１）≧Ｅ
であれば、シーケンス情報ｔｍｐが示すフレーム区間に切り出し終了位置が含まれるとＣＰＵ７０１（シーケンス情報制御プログラム７１３）は判断する。
【０１３０】
ＣＰＵ７０１（シーケンス情報制御プログラム７１３）はシーケンス情報ｔｍｐが示すフレーム区間に切り出し終了位置が含まれると判断されればＳ１４２８に、含まれると判断されなければＳ１４２６に、処理を進める。
【０１３１】
Ｓ１４２６でＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、切り出しデータファイルのシーケンスインフォボックス(sqif)４０４にシーケンス情報Ａを書き込み（追加し）、処理をＳ１４２７に進める。なお、シーケンス情報Ａとシーケンス情報ｔｍｐのEnd Start Indexの値が異なる場合、ＣＰＵ７０１（シーケンス情報制御プログラム７１３）は時間軸方向編集されたことをシーケンス情報Ａに設定する。すなわち、ＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、シーケンス情報ＡのPast Processing Statusの第１ビットを１に設定する。
【０１３２】
Ｓ１４２７でＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、各変数を更新し、処理をＳ１４２５に戻す。具体的には、ＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、変数ｃｕｒに（ｃｕｒ＋シーケンス情報ｔｍｐが表すフレーム区間の総フレーム数Ｎ）を設定する。また、ＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、シーケンス情報ｔｍｐに切り出し元データファイルの次のシーケンス情報を、シーケンス情報Ａにシーケンス情報ｔｍｐを設定する。
【０１３３】
Ｓ１４２８でＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、シーケンス情報ＡのEnd Frame Indexにシーケンス情報ｔｍｐのフレーム区間における切り出し終了位置を設定する。この切り出し終了位置は、（シーケンス情報ｔｍｐのStart Frame Index＋切り出し終了位置のフレーム番号−ｃｕｒ）で得られる。なお、シーケンス情報Ａとシーケンス情報ｔｍｐのEnd Start Indexの値が異なる場合、ＣＰＵ７０１（シーケンス情報制御プログラム７１３）は時間軸方向編集されたことをシーケンス情報Ａに設定する。すなわち、ＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、シーケンス情報ＡのPast Processing Statusの第１ビットを１に設定する。
ＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、切り出しデータファイルのシーケンスインフォボックス(sqif)４０４にシーケンス情報Ａを書き込み（追加し）、処理を終了する。
【０１３４】
このような切り出し処理によって切り出しデータファイルのシーケンスインフォボックス(sqif)４０４に書き込まれるシーケンス情報の具体例を、図１１（ａ）を用いて説明する。
図１１（ａ）において、切り出し元データファイルのシーケンス情報１００３は、図７（ｂ）に示した、結合データファイルCON_MOV_0003のシーケンス情報である。また、シーケンス情報１５０１は、結合データファイルCON_MOV_0003を切り出し処理して生成した切り出しデータファイルCUT_CON_MOV_0003のシーケンス情報である。
【０１３５】
ここでは、Ｓ１４０１において、切り出し元データファイルに結合データファイルCON_MOV_0003、切り出し開始位置のフレーム番号が５１、終了位置のフレーム番号が１４０と指定されたものとする。この場合Ｓ１４０３のシーケンス情報生成処理は以下の様に行われる。
【０１３６】
Ｓ１４２１でＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、シーケンス情報ｔｍｐにシーケンス情報１００３に含まれる最初のシーケンス情報１００３ａを、変数ｃｕｒに１をそれぞれ設定する。
【０１３７】
Ｓ１４２２でＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、シーケンス情報ｔｍｐが表すフレーム区間の総フレーム数Ｎ（１００）、ｃｕｒ（１）と、切り出し開始位置のフレーム番号Ｓ（５１）とから、
（Ｎ＋ｃｕｒ−１）≧Ｓ
が満たされると判定する。つまり、ＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、シーケンス情報ｔｍｐが表すフレーム区間に、切り出し開始位置が含まれると判断し、Ｓ１４２４に処理を進める。
【０１３８】
Ｓ１４２４でＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、シーケンス情報Ａにシーケンス情報ｔｍｐを設定する。また、ＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、シーケンス情報ＡのStart Frame Indexに（シーケンス情報ｔｍｐのStart Frame Index（１）＋切り出し開始位置（５１）−ｃｕｒ（１）＝５１を設定する。これにより、シーケンス情報ＡのStart Frame Indexの値（５１）と、シーケンス情報ｔｍｐのStart Frame Indexの値（１）とが異なるようになる。そのためＣＰＵ７０１（シーケンス情報制御プログラム７１３）はさらに、シーケンス情報ＡのPast Processing Statusの第１ビットを１に設定する。
【０１３９】
次にＳ１４２５でＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、シーケンス情報ｔｍｐが表すフレーム区間の総フレーム数Ｎ（１００）、変数ｃｕｒ（１）と、切り出し終了位置のフレーム番号Ｅ（１４０）とから、
（Ｎ＋ｃｕｒ−１）≧Ｅ
が満たされないと判定する。つまり、ＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、シーケンス情報ｔｍｐが表すフレーム区間に、切り出し終了位置が含まれないと判断し、Ｓ１４２６に処理を進める。
【０１４０】
Ｓ１４２６でＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、切り出しデータファイルのシーケンス情報１５０１に、シーケンス情報Ａを追加する（図１１（ａ）のシーケンス情報１５０１ａ）。なお、図において３２ビットフラグのPast Processing Statusは１６進数表記しているため、第１ビットが１に設定されていることが最下位４ビットに対応する「２」で表されている。
【０１４１】
次にＳ１４２７でＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、変数ｃｕｒに、（ｃｕｒ（１）＋シーケンス情報ｔｍｐが表すフレーム区間の総フレーム数Ｎ（１００＝１０１）を設定する。また、ＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、シーケンス情報ｔｍｐに切り出し元データファイルの次のシーケンス情報１００３ｂを、さらにシーケンス情報Ａにシーケンス情報ｔｍｐを設定する。これにより、シーケンス情報Ａにもシーケンス情報１００３ｂが設定される。
【０１４２】
２度目のＳ１４２５の処理においてＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、シーケンス情報ｔｍｐが表すフレーム区間の総フレーム数Ｎ（５０）、変数ｃｕｒ（１０１）と、切り出し終了位置のフレーム番号Ｅ（１４０）とから、
（Ｎ＋ｃｕｒ−１）≧Ｅ
が満たされると判定する。つまり、ＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、シーケンス情報ｔｍｐが表すフレーム区間に、切り出し終了位置が含まれると判断し、Ｓ１４２８に処理を進める。
【０１４３】
Ｓ１４２８でＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、シーケンス情報ＡのEnd Frame Indexにシーケンス情報ｔｍｐのStart Frame Index（１）＋切り出し最終位置のフレーム番号（１４０）−ｃｕｒ（１０１）＝４０を設定する。ここで、シーケンス情報ＡのEnd Frame Index（４０）とシーケンス情報ｔｍｐのEnd Frame Index（５０）とが異なる値である。そのため、ＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、シーケンス情報ＡのPast Processing Statusの第１ビットを１に設定する。さらにＣＰＵ７０１（シーケンス情報制御プログラム７１３）は、切り出しデータファイルのシーケンスインフォボックス(sqif)４０４にシーケンス情報Ａを書き込み（追加し）、処理を終了する。
【０１４４】
このようにして、Ｓ１４２６とＳ１４２８で追加されたシーケンス情報を含む切り出しデータファイルに対するシーケンス情報１５０１が生成される。図１１（ｂ）に、上述した処理過程におけるシーケンス情報ｔｍｐとシーケンス情報ＡのStart Frame IndexおよびEnd Frame Index、ならびに変数ｃｕｒの変化について模式的に示す。
【０１４５】
＜管理処理（切り出しデータファイル）＞
次に、本実施形態に係るデータファイル構造の有用性を説明するために、結合データファイルに関して説明した管理表示動作において、切り出しデータファイルを対象とした場合の表示例について図１２を用いて説明する。
【０１４６】
図１２は、Ｓ１１０１で切り出しデータファイルCUT_CON_MOV_0003が選択された場合に、Ｓ１１０８でＣＰＵ７０１（アプリケーションプログラム７１４）が表示する情報の一例を示す図である。この場合、Ｓ１１０３〜Ｓ１１０６の処理ループにより、切り出し元データファイルCON_MOV_0003、データファイルMOV_0003、MOV_0004が表示対象と判定される。従って、表示用情報リストには、切り出し元データファイルCON_MOV_0003、データファイルMOV_0003、MOV_0004のファイル名とシーケンス情報が追加される。
【０１４７】
図１２の表示によれば、切り出しデータファイルCUT_CON_MOV_0003が切り出し元データファイルCON_MOV_0003に切り出し処理を適用して生成されたことが一目で把握できる。また、同時に、切り出しデータファイルCUT_CON_MOV_0003がデータファイルMOV_0003、MOV_0004の一部を結合したデータファイルに相当することも一目で把握できる。また、編集処理前後のデータファイルが格納する動画データの区間の関係も、フレーム単位で一目で把握することができる。
【０１４８】
図１２では切り出しデータファイルが選択された場合を示したが、切り出し元の結合データファイルや、その結合元データファイルのいずれかが選択されても同様の表示がなされる。なお、選択されたデータファイルの情報が最初もしくは最後に表示されるようにしてもよいし、切り出しデータファイルやオリジナルデータファイルが最初又は最後に表示されるようにしてもよい。なお、いずれの場合も、選択されたデータファイルの情報を他のデータファイルの情報と視覚的（例えば色や大きさなど）に異ならせて表示することができる。
【０１４９】
なお、図８〜図９および図１２の例では、選択されたデータファイルと同じ撮影に係るデータファイル（Shooting IDの値が同じデータファイル）を表示対象のデータファイルとする場合を説明した。しかし、表示対象のデータファイルとする条件にとくに制限は無い。例えば、選択されたデータファイルと同じ撮影に係り、かつ格納されている区間が重複するデータファイルだけを表示対象のデータファイルとするなど、複数の条件を組み合わせてもよい。また、Ｓ１１０１でデータファイルを選択する代わりに具体的な条件を指定してもよい。例えば、再エンコードされたデータを格納するデータファイル、格納フレーム数が所定値以上のデータファイル、特定のShooting IDを有するデータファイル、オリジナルのデータファイル、などを条件として指定することができる。Ｓ１１０１でＣＰＵ７０１（アプリケーションプログラム７１４）が表示する画面をユーザが指定可能な条件に応じて変更し、指定された条件に応じてＳ１１０６での判断を行えばよい。
【０１５０】
以上説明したように本実施形態では、動画データを格納するデータファイルに、格納している動画データの撮影識別情報と、動画データに格納されているフレーム区間を特定する情報とを含めるようにした。このようなデータ構造により、同じ撮影に係る動画データを格納しているデータファイルを容易に特定することが可能になる。また、同じ撮影に係る複数のデータファイルに格納されている動画データの区間の関係をフレーム単位で容易に知ることができる。
【０１５１】
さらに、同一撮影に係る動画データの総フレーム数の情報をデータファイルに含めるようにすることで、オリジナルの動画データのうちどの区間を格納しているデータファイルなのかを、他のデータファイルを参照することなく知ることができる。また、格納されている動画データに関する編集の有無を示す情報をデータファイルに含めるようにすることで、撮影に係るオリジナルの（未加工の）動画データを格納するデータファイルを容易に特定することができる。また、編集の種別や回数など、適用された編集に関する情報をデータファイルに含めるようにすることで、特定の編集が適用された動画データを格納するデータファイルを容易に特定することができる。
【０１５２】
上述した、格納している動画データに関する情報（付随情報）を、データファイル内の特定の位置に配置するようにすることで、付随情報を容易に取得できるようになる。特に、動画データよりも前に配置することで、付随情報の取得が一層容易になる。
【０１５３】
このようなデータ構造を有するデータファイルを用いることで、データファイルを取り扱う情報処理装置におけるデータファイルの管理を容易にできるだけでなく、有用な管理情報をユーザに容易に提供することも可能になる。
【０１５４】
例えば、同じ撮影に係るデータファイルの付随情報を比較可能に提示することで、ユーザは例えば不要なデータファイルや、結合すべきデータファイル、オリジナルの動画データから切り出すべきフレーム区間などを容易に特定することができる。
【０１５５】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【０１５６】
なお、上述の実施形態ではシーケンス情報のフレーム開始位置とフレーム終了位置によりシーケンス内の複数フレームを管理するように記載した。しかし、フレーム開始位置とフレーム数を足し算することでフレーム終了位置を算出することができるため、フレーム終了位置をフレーム数に置き換える構成であってもよい。
【０１５７】
上述の実施形態では、記録時に特定のデータ構造とする構成について説明したが、既に記録されているデータファイルの構造を上述した構造に変換することもできる。例えばＰＣ７００でデータファイルをインポートした際に、再エンコード時と同様にして動画データ（および音声データ）をデコードしたのち、図３（ａ）に示したデータ構造を有するデータファイルに変換することができる。このようなデータ形式の変換を行う情報処理装置もまた本発明の範囲に含まれる。
【０１５８】
また、上述の実施形態では、同じ撮影に係る動画データを判別するための付随情報として撮影識別情報を用いた例を説明した。しかし、撮影識別情報はより汎用的には関連する動画データを格納するデータファイルを識別するための情報として用いることができる。従って、必ずしも撮影シーケンスに固有の値とする必要は無い。例えば、ある動画データを編集して派生する動画データを生成する場合、編集元の動画データを格納するデータファイルの撮影識別情報に任意の値を設定することができる。これにより、編集元の動画データを格納するデータファイルと編集によって生成された動画データを格納するデータファイルとを容易に管理することが可能になる。
【符号の説明】
【０１５９】
１００…デジタルカメラ、１０１…ＣＰＵ、１０２…ＲＯＭ、１０３…ＤＲＡＭ、１０７…操作部、１１３…撮像ユニット、１１４…信号処理プロセッサ、１１５…画像処理部、１１６…圧縮伸長部、１１７…通信部、１２０…表示部、１２１…バス
【図１】
0006745629.tif 000002
【図２】
0006745629.tif 000003
【図３】
0006745629.tif 000004
【図４】
0006745629.tif 000005
【図５】
0006745629.tif 000006
【図６】
0006745629.tif 000007
【図７】
0006745629.tif 000008
【図８】
0006745629.tif 000009
【図９】
0006745629.tif 000010
【図１０】
0006745629.tif 000011
【図１１】
0006745629.tif 000012
【図１２】
0006745629.tif 000013