(57)【特許請求の範囲】
【請求項１】
ファイルヘッダと、動画データが格納されるファイルボディと、ファイルフッタとを含み、前記ファイルヘッダが前記ファイルフッタのオフセットを示すオフセット情報を含み、前記ファイルフッタが当該ファイルフッタのオフセットを示す第１の情報を含む動画ファイルを記録媒体に記録する装置であって、
前記動画ファイルの記録開始、及び記録停止を指示する指示手段と、
前記動画ファイルの記録開始の指示に応じて、前記ファイルヘッダに含まれるオフセット情報に対して所定値を格納して記録すると共に、それぞれが自身のファイル先頭からのオフセットに関する情報を含む第２の情報を、前記動画データの所定数のフレーム毎に多重して記録し、前記動画ファイルの記録停止の指示に応じて、前記ファイルフッタを記録すると共に前記ファイルフッタのオフセットの値を検出し、前記記録媒体に記録された前記ファイルヘッダに含まれるオフセット情報に対して前記所定値に代えて前記検出したオフセットの値を格納する記録手段であって、前記動画ファイルの記録中に電源が遮断された場合に、前記ファイルフッタを記録せずに前記動画ファイルの記録を停止する記録手段と、
前記記録媒体に記録された動画ファイルのファイルヘッダに含まれる前記オフセット情報として前記所定値が格納されていた場合に、前記動画ファイルのファイルボディにおける動画データに多重された前記第２の情報を前記第１の情報に変更し、前記第２の情報から変更された第１の情報を含むファイルフッタを新たに生成して前記記録媒体に記録すると共に前記新たに生成したファイルフッタのオフセットの値を前記変更された第１の情報から取得し、前記記録媒体に記録されたファイルヘッダに含まれるオフセット情報に対して前記所定値に代えて前記取得したオフセットの値を格納するように前記記録手段を制御する制御手段
とを備えることを特徴とする記録装置。
【請求項２】
前記記録手段は、前記所定数のフレーム毎に、前記第２の情報に続けて、それぞれが直前の前記所定数のフレームの動画データのオフセットを示すインデックス情報を多重して記録し、
前記ファイルフッタは前記第１の情報と前記インデックス情報とを含み、
前記制御手段は、前記記録媒体に記録された動画ファイルのファイルヘッダに含まれる前記オフセット情報として前記所定値が格納されていた場合に、前記ファイルボディにおける最終の前記インデックス情報を検出し、前記最終のインデックス情報の直前の前記第２の情報を前記第１の情報に変更し、前記第２の情報から変更された第１の情報と前記最終のオフセット情報とを含むファイルフッタを新たに生成することを特徴とする請求項１に記載の記録装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記録装置に関する。
【背景技術】
【０００２】
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−２３５５７０号
【０００４】
従来、撮影した動画や音声をメモリカートやディスク媒体などに記録するビデオカメラが知られている。この様に動画や音声などのファイルを記録する規格として、ＭＸＦ（Material Exchange Format）フォーマットが知られている（例えば、特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
動画や音声をファイルとして記録する場合、記録中に電源が遮断すると、ファイルとして必要なフッタ等の情報を記録できない。すなわち、記録中に電源が遮断されると、記録途中のデータを再生できなくなる。
【０００６】
本発明はこの様な問題を解決し、記録途中での電源遮断などによる記録途中のファイルを再生可能にする記録装置を提示することを目的とする。
【課題を解決するための手段】
【０００７】
本発明にかかる記録装置は、ファイルヘッダと、動画データが格納されるファイルボディと、ファイルフッタとを含み、前記ファイルヘッダが前記ファイルフッタのオフセットを示すオフセット情報を含み、前記ファイルフッタが当該ファイルフッタのオフセットを示す第１の情報を含む動画ファイルを記録媒体に記録する装置であって、前記動画ファイルの記録開始、及び記録停止を指示する指示手段と、前記動画ファイルの記録開始の指示に応じて、前記ファイルヘッダに含まれるオフセット情報に対して所定値を格納して記録すると共に、それぞれが自身のファイル先頭からのオフセットに関する情報を含む第２の情報を、前記動画データの所定数のフレーム毎に多重して記録し、前記動画ファイルの記録停止の指示に応じて、前記ファイルフッタを記録すると共に前記ファイルフッタのオフセットの値を検出し、前記記録媒体に記録された前記ファイルヘッダに含まれるオフセット情報に対して前記所定値に代えて前記検出したオフセットの値を格納する記録手段であって、前記動画ファイルの記録中に電源が遮断された場合に、前記ファイルフッタを記録せずに前記動画ファイルの記録を停止する記録手段と、前記記録媒体に記録された動画ファイルのファイルヘッダに含まれる前記オフセット情報として前記所定値が格納されていた場合に、前記動画ファイルのファイルボディにおける動画データに多重された前記第２の情報を前記第１の情報に変更し、前記第２の情報から変更された第１の情報を含むファイルフッタを新たに生成して前記記録媒体に記録すると共に前記新たに生成したファイルフッタのオフセットの値を前記変更された第１の情報から取得し、前記記録媒体に記録されたファイルヘッダに含まれるオフセット情報に対して前記所定値に代えて前記取得したオフセットの値を格納するように前記記録手段を制御する制御手段とを備えることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、記録途中での電源遮断などによる記録途中のファイルを修復して、再生可能にすることができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の一実施例の概略構成ブロック図である。
【図２】ロングＧＯＰの場合の復号処理を説明する図である。
【図３】インターリーブＭＸＦファイルを説明する図である。
【図４】インターリーブＭＸＦファイルを説明する図である。
【図５】インターリーブＭＸＦファイルを説明する図である。
【図６】本実施例で、記録媒体に記録されるインターリーブＭＸＦファイルの状態遷移の説明例である。
【図７】本実施例の修復動作のフローチャートである。
【図８】修復動作の説明図である。
【図９】ＭＸＦファイルの説明図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照して、本発明の実施例を詳細に説明する。
【００１１】
本発明の一実施例を説明する前に、デジタルビデオデータの代表的な圧縮符号化形式であるＭＰＥＧ（Ｍｏｖｉｅ  Ｐｉｃｔｕｒｅｓ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）２方式と組み合わせて利用する場合を例に、ＭＸＦフォーマットの構成を説明する。
【００１２】
ＭＰＥＧ２は、動き補償予測符号化とＤＣＴ（離散コサイン変換）による変換符号化とを組み合わせた動画圧縮方式である。ＭＰＥＧ２のデータ構造は階層構造をなしており、下層からブロック層、マクロブロック層、スライス層、ピクチャ層、ＧＯＰ層及びシーケンス層からなる。ブロック層は、ＤＣＴを行う単位であるＤＣＴブロックからなる。マクロブロック層は、複数のＤＣＴブロックからなる。スライス層は、ヘッダ部と１以上のマクロブロックからなる。ピクチャ層は、ヘッダ部と１以上のスライスからなる。ピクチャは１画面に対応する。各層の境界は、それぞれ所定の識別符号で識別可能になっている。
【００１３】
ＧＯＰ層は、ヘッダ部（シーケンスヘッダ）と、所定数の画面についての符号化画像データからなる。
【００１４】
ＭＰＥＧ２では、各画面の符号化方式には、フレーム内符号化と、順方向予測符号化と、双方向予測符号化が用意されている。フレーム内符号化画像（イントラ符号化画像）は、Ｉ（Intra-coded）ピクチャと呼ばれる。順方向予測符号化画像は、Ｐ（Predictive-coded）ピクチャと呼ばれる。双方向予測符号化画像は、Ｂ（Bi-directionally predictive coded）ピクチャと呼ばれる。
【００１５】
Ｉピクチャは、それ自身の情報のみで復号が可能である。これに対し、Ｐピクチャ及びＢピクチャは、参照画像として前画像又は前後の画像が必要であり、単独では復号化できない。例えば、Ｐピクチャは、自身より時間的に前のＩピクチャまたはＰピクチャを参照画像として符号化されている。Ｂピクチャは自身の前後のＩピクチャまたはＰピクチャからなる２枚の画像を参照画像として符号化されている。復号化にはこれらの参照画像の画像データが必要になる。但し、Ｐピクチャ及びＢピクチャも、画面内の小ブロックについて画面内で符号化されていることもある。
【００１６】
最低１枚のＩピクチャを含みそれ自身で完結しているグループが、ＧＯＰ（Group Of Picture）と呼ばれる。ＭＰＥＧストリームでは、ＧＯＰが独立してアクセス可能な最小単位とされている。ＧＯＰは、１又は複数のピクチャから構成される。以下では、便宜上、１枚のＩピクチャのみで構成されるＧＯＰをシングルＧＯＰと呼び、ＩピクチャとＰ／Ｂピクチャを含む複数のピクチャからなるＧＯＰをロングＧＯＰと呼ぶ。さらに、ロングＧＯＰのうち、ＧＯＰ内で完全に復号可能な、閉じた構造をもつＧＯＰをクローズドＧＯＰと呼び、一つ前のＧＯＰに含まれる画像を復号に必要とするＧＯＰをオープンＧＯＰと呼ぶこととする。
【００１７】
図２を参照して、ロングＧＯＰの復号処理を説明する。図２（Ａ）は入力フレーム順、同（Ｂ）は伝送順、同（Ｃ）は復号化後の表示順をそれぞれ示す。ここでは、１枚のＩピクチャ、４枚のＰピクチャ及び１０枚のＢピクチャの計１５枚から構成されるオープンＧＯＰであるものとする。ＧＯＰ内の各フレームを、ピクチャタイプを示すＩ，Ｐ又はＢと、これに続くフレーム番号で表記する。入力フレームは、ＧＯＰ内のＩ／Ｂ／Ｐの位置は、図２（Ａ）に示すように、Ｂ０，Ｂ１，Ｉ２，Ｂ３，Ｂ４，Ｐ５，Ｂ６，Ｂ７，Ｐ８，Ｂ９，Ｂ１０，Ｐ１１，Ｂ１２，Ｂ１３，Ｐ１４となる。この例では、フレームＢ０及びＢ１は、一つ前のＧＯＰのフレームＰ１４とこのＧＯＰ内のフレームＩ２を用いて復号される。フレームＰ５はフレームＩ２から予測され、フレームＰ８／Ｐ１１／Ｐ１４はそれぞれ、一つ前のＰピクチャであるフレームから予測される。
【００１８】
Ｂピクチャは、前後のＩピクチャ及びＰピクチャのフレームから予測される。このため、伝送路又は記録媒体上では、Ｉ／Ｂ／Ｐピクチャの並び順は、復号順を考慮して決める必要がある。図２の例では、図２（Ｂ）に示されるように、Ｉ２，Ｂ０，Ｂ１，Ｐ５，Ｂ３，Ｂ４，Ｐ８，Ｂ６，Ｂ７，Ｐ１１，Ｂ９，Ｂ１０，Ｐ１４，Ｂ１２，Ｂ１３の順となる。
【００１９】
復号器は、図２（Ｃ）に示すように、まずフレームＩ２を復号する。そして、このフレームＩ２と一つ前のＧＯＰのフレームＰ１４を用いてフレームＢ０，Ｂ１を復号して出力し、次に、フレームＩ２を出力する。
【００２０】
次に、フレームＰ５を、フレームＩ２を用いて復号する。フレームＢ３，Ｂ４をフレームＩ２，Ｐ５を用いて復号して出力し、続けてフレームＰ５を出力する。
【００２１】
以下同様に、Ｂピクチャの復号に必要なＩピクチャ及びＰピクチャをこのＢピクチャより先に復号して出力し、その後、Ｉ／Ｐピクチャを出力する。
【００２２】
図３、図４および図５を参照して、ＭＸＦフォーマットのＭＰＥＧストリームに対するマッピング構造例を説明する。
【００２３】
ＭＸＦは、ＳＭＰＴＥ（Society of Motion Picture and Television Engineers）に規定されるファイルフォーマット規格である。ここで説明するＭＰＥＧストリームに対するマッピング構造は、ＳＭＰＴＥ−３８１Ｍに規定されている。以下、ＭＳＰＴＥ−３８１ＭなどのＭＸＦ規定に準じ、映像データと音声データがフレームインターリーブされた構造をもつＭＸＦファイルを、インターリーブＭＸＦファイルと呼ぶ。
【００２４】
図３（Ａ）は、インターリーブＭＸＦファイルのファイル構造を示す。図３（Ａ）に示されるように、インターリーブＭＸＦファイルは、ファイルヘッダ（ＦＨ）、ファイルボディ（ＦＢ）およびファイルフッタ（ＦＦ）からなる。ファイルヘッダは、ヘッダパーティションパック（ＨＰＰ：Header Partition Pack）とヘッダメタデータからなる。ファイルボディは、ボディパーティションパック（ＢＰＰ：Body Partition Pack）、エディットユニット（ＥＵ：Edit Unit）及びインデックステーブル（ＩＴ：Index Table）からなる。ファイルフッタは、フッタパーティションパック（ＦＰＰ：Footer Partition Pack）、インデックステーブル（ＩＴ：Index Table）、及びランダムインデックスパック（ＲＩＰ：Random Index Pack）から成る。
【００２５】
ＨＰＰには、ヘッダ識別子、ファイルボディに配置されるデータの形式又はファイルフォーマットを示す情報が格納され，図９に示すように、ＦＰＰ格納開始オフセットなどが格納される。ヘッダメタデータには、ファイル作成日時などファイル単位のメタデータが格納される。
【００２６】
ＢＰＰは、ボディ識別子と、直前に配置されるパーティションパック（ＨＰＰ又はＢＰＰである）のオフセットアドレス、並びに、自身およびＦＰＰの格納開始オフセットなどからなる。ＢＰＰで区分される領域には、０または１個のＩＴと、１又は複数のエディットユニット（ＥＵ）が配置される。ＥＵには、フレーム毎の映像音声データが可能される。ＩＴには、ＢＰＰで区切られる一つ前の領域内に含まれるＥＵの情報が格納される。ＥＵ及びＩＴの詳細は、後述する。
【００２７】
ＦＰＰは、フッタ識別子と、直前に配置されるＢＰＰと自身の格納開始オフセットなどからなる。ＲＩＰは、ＲＩＰを示すヘッダと、このインターリーブＭＸＦファイルにおける各パーティションパックの格納開始オフセットと、ＲＩＰ自身のデータサイズからなる。インターリーブＭＸＦファイルを構成する各要素（ＰＰ及びＩＴ等）の直後には、境界調整用のフィルアイテム（ＮＵＬＬデータ）が配置される。但し、説明簡略化のため、図面及び以下の説明から省略する。
【００２８】
ＢＰＰで区切られる領域毎のＥＵの集合体は、エッセンスコンテナ（Essence Container）と呼ばれる。すなわち、エッセンスコンテナは、このインターリーブＭＸＦファイルに基づき実際に再生される映像音声データを収容する。
【００２９】
インデックステーブルセグメント（ＩＴセグメント）は、図３（Ｂ）に示すように、ファイルボディ及びファイルフッタに配置されるＩＴの集合体である。例えば、このインターリーブＭＸＦをシステムが読み込んだ際、各ＩＴをサーチして読み出し、ＭＸＦファイル全体のＩＴを再構築する。これにより、ＭＸＦファイル全体のＥＵに関する情報を得ることができる。
【００３０】
図３（Ｃ）はＩＴの一構成例を示す。ＩＴは、ＫＬＶ（Key-Length-Value）符号を用いて符号化される。ＫＬＶ符号において、キー（Ｋｅｙ）部は、ＳＭＰＴＥ−３３５Ｍ／ＲＰ２１０Ａに準拠したデータ項目を示す識別子であって、１６バイトのデータ長を有する。長さ（Length）部は４バイトのデータ長を有し、長さ部以降のデータ長をバイト単位で表記した値を保持する。バリュー（Value）部は、データ本体を格納する領域である。バリュー（Value）部は、２バイト長のローカルタグ部、２バイト長の長さ（Length）部、および、データ本体を格納する可変長のデータ（Data）部からなる。
【００３１】
ＩＴの内容を具体的に説明する。ＩＴの先頭には、１６バイトのインデックステーブルセグメントキーが配置される。バリュー（Value）部には、インスタンスＩＤ情報に対して、インスタンスＩＤを示すローカルタグ、長さ（Length）、及びＵＵＩＤ（Universal Unique ID）形式のインスタンスＩＤの実体が、格納される。
【００３２】
続けて、インデックスエディットレート（Index Edit Rate）のために、ローカルタグ、長さ（Length）、及びインデックスエディットレートの実体が格納される。インデックスエディットレートは、映像データのフレームレートを示す。
【００３３】
続けて、インデックス開始位置（Index Start Position）が、同様に、ローカルタグ、長さ（Length）及び実体の順に格納される。インデックス開始位置は、このＩＴが管理するＥＵの、インターリーブＭＸＦファイルの先頭からの番号を示す。
【００３４】
続けて、インデックスデュレーション（Index Duration）が、同様に、ローカルタグ、長さ（Length）及び実体の順で格納される。インデックスデュレーションは、このＩＴが管理するＥＵの個数の情報を保持する。
【００３５】
続けて、エディットユニットバイトカウント（Edit Unit Byte Count）が同様に、ローカルタグ、長さ（Length）及び実体の順で格納される。エディットユニットバイトカウントは、映像フレームが固定長の場合に映像フレームのデータ長を保持し、可変長の場合には”０”を保持する。
【００３６】
続けて、インデックスＳＩＤが同様に、ローカルタグ、長さ（Length）及び実体の順で格納される。さらに続いて、ボディＳＩＤが同様に、ローカルタグ、長さ（Length）及び実体の順で格納される。インデックスＳＩＤ及びボディＳＩＤは、ＭＸＦファイル内で固定値となる。
【００３７】
続けて、スライスカウント（Slice Count）、デルタエントリアレイ（ＤＥＡ：Delta Entry Array）、及びインデックスエントリアレイ（ＩＥＡ：Index Entry Array）が同様の構造で格納される。スライスカウント、デルタエントリアレイ及びインデックスエントリアレイについては後述する。
【００３８】
図４は、ＥＵ及びＤＥＡの一例を示す。すなわち、図４（Ａ）はＥＵの構成を示す。図４（Ｂ）は、図３（Ｃ）に示すＩＴのＤＥＡの構成を示す。ＥＵは１フレーム分のデータを保持する。ＥＵは、当該フレームに対応するメタデータ、ビデオＥＳ及びオーディオＥＳをそれぞれ含むシステムアイテム、ピクチャアイテム及びサウンドアイテムから成る。システムアイテム（ＳＹＳ−Ｉ）及びサウンドアイテム（ＳＩ）は、固定長（ＣＢＥ：Constant Bytes per Element）である。ピクチャアイテム（ＰＩ）は可変長（ＶＢＥ：Variable Bytes per Element）である。１つのＥＵは、可変長データ毎にスライスが切られる。図４に示す例では、ＰＩが可変長であるので、ＰＩの終端でスライスが切られ、前半がスライス０、後半がスライス１とされる。ＩＴのスライスカウントには、（スライス数−１）が格納される。ＤＥＡには、ＥＵに含まれるＳＹＳ−Ｉ、ＰＩ及びＳＩの各スライス先頭からのオフセットとサイズが格納される。
【００３９】
図５は、エッセンスコンテナとＩＥＡの構成例を示す。すなわち、図５（Ａ）はエッセンスコンテナの構成を示す。図５（Ｂ）は、図３（Ｃ）に示すＩＴのＩＥＡの構成を示す。各インデックスエントリは、テンポラルオフセット、キーフレームオフセット、フラグ、ストリームオフセット及びスライスオフセットから成る。テンポラルオフセット（Temporal Offset）は、復号順と出力順の並べ替えの情報を示す。キーフレームオフセット（Key-Frame Offset）は、復号化に用いるＩピクチャの位置情報を示す。フラグ（Flags）はピクチャコーディングタイプを示す。ストリームオフセット（Stream Offset）は、当該ＥＵのエッセンスコンテナにおけるオフセットを示す。スライスオフセット（Slice Offset）は、当該ＥＵ内の各スライスの、ＥＵ先頭からのオフセットを格納する。
【実施例１】
【００４０】
本発明の一実施例を説明する。図１は、本発明の一実施例である記録装置であって、ＭＸＦで動画データを記録媒体に記録する記録装置の概略構成ブロック図を示す。
【００４１】
音声入力端子１０に記録すべき音声データが入力し、映像入力端子１２に記録すべき映像データが入力する。信号処理部１４は、入力端子１０、１２からの音声データ及び映像データからインターリーブＭＸＦファイルデータを生成して一時蓄積メモリ１６に格納する。ＭＸＦ生成部１４は、一時蓄積メモリ１６に格納したインターリーブＭＸＦファイルデータに関する情報を制御部２２に供給する。
【００４２】
一時蓄積メモリ１６は、信号処理部１４からのインターリーブＭＸＦファイルデータを一時蓄積する。一時蓄積メモリ１６はまた、記録媒体２０への書き出し／読み出しバッファとして、制御部２２のワークメモリとしても使用される。記録媒体制御部１８は、一時蓄積メモリ１６に記憶されるデータを記録媒体２０に書込み、また、記録媒体２０に記録されるデータを読み出して一時蓄積メモリ１６に格納することができる。
【００４３】
制御部２２は、図示した記録装置の全体を制御する。制御部２２はまた、記録媒体２０から一時蓄積メモリ１６に読み出され展開されたファイルの内容をチェックし、データを書換え・追加する機能を有する。記録媒体制御部１８は、データを書換え・追加されたファイルを一時蓄積メモリ１６から読み出して記録媒体２０に記録する。制御部２２は更に、記録媒体制御部１８を介して、記録媒体２０の記録済みインターリーブＭＸＦファイルの完全性をチェックし、不完全な場合に修復作業も行う。記録媒体制御部１８は、ＦＡＴ等の所定のファイルシステムに従って、記録媒体２０に対して記録したファイルを管理する。また、本実施形態では、後述の様に記録媒体２０に対して記録した動画ファイル（ＭＸＦファイル）に対してファイル番号を付加する。このとき、動画ファイルの記録を行う度に、ファイル番号を１ずつ自動的に増加させて付加する。
【００４４】
操作部２４は電源スイッチや動画ファイルの記録開始、停止を指示するスイッチ等、ユーザが操作可能な種のスイッチを備える。電源部２６は、バッテリ等の携帯用電源から記録装置の各部に対して電力を供給する。
【００４５】
信号処理部１４の構成と基本機能を説明する。ＭＰＥＧ２符号化部３０は、映像入力端子１２からの映像データをＭＰＥＧ２形式で圧縮符号化し、圧縮データをピクチャアイテム（ＰＩ）生成部３２に出力する。ＰＩ生成部３２は、ＭＰＥＧ２符号化部３０からのＭＰＥＧ２形式のフレーム単位の圧縮データに所定のヘッダを付加してピクチャアイテム化する。サウンドアイテム（ＳＩ）生成部３４は、音声入力端子１０からの音声データを対応する映像データのフレーム単位で分断し、所定のヘッダを付加してサウンドアイテム化する。システムアイテム（ＳＹＳ−Ｉ）生成部３６は、インターリーブＭＸＦファイルの各ＥＵ先頭に付随するシステムアイテム（ＳＹＳ−Ｉ）を生成する。ＰＩ生成部３２、ＳＩ生成部３４及びＳＹＳ−Ｉ生成部３６はそれぞれ、生成したアイテムをサウンドアイテム（ＥＵ）生成部３８に供給する。
【００４６】
ＥＵ生成部３８は、ＰＩ生成部３２、ＳＩ生成部３４およびＳＹＳ−Ｉ生成部３６からそれぞれ入力される各アイテムを結合してＥＵを生成する。生成されたＥＵは、ファイルボディ生成部４０に供給される。ＥＵ生成部３８はまた、生成したＥＵの全体サイズと各スライスのサイズをインデックステーブル（ＩＴ）生成部４２に供給する。
【００４７】
ＩＴ生成部４２は、ＥＵ生成部３８から受け取った全体サイズと各スライスサイズからＩＥＡとＤＥＡを生成し、インデックステーブル（ＩＴ）を作成する。そして、ＩＴ生成部４２は、生成したＩＴをファイルボディ生成部４０及びファイルフッタ生成部４６に出力する。なお、ＩＴ生成部４２が生成するＩＴは、本実施例では固定サイズであり、ＥＵのサイズがその固定サイズに足りない場合にはフィルアイテムを詰められる。
【００４８】
ファイルボディ生成部４０は、ＥＵ生成部３８からのＥＵを一時蓄積メモリ１６に出力する。ファイルボディ生成部４０はまた、所定数のＥＵを一時蓄積メモリ１６に出力する毎に、ボディパーティションパック（ＢＰＰ）にＩＴを連結したデータを一時蓄積メモリ１６に出力する。詳細は後述するが、ＢＰＰは、ファイルヘッダ生成部４８からのファイルヘッダサイズを用いて生成され、ＩＴはＩＴ生成部４２から供給される。ファイルボディ生成部４０は、ＢＰＰを出力するまでに一時蓄積メモリ１６に出力したＥＵのデータサイズをカウントしており、そのカウント値にファイルヘッダサイズを加えたものをＲＩＰ生成部４４に出力する。
【００４９】
ＲＩＰ生成部４４は、ファイルボディ生成部４０から取得したＢＰＰの挿入位置を元に、ランダムインデックスパック（ＲＩＰ）を生成してファイルフッタ生成部４６に出力する。
【００５０】
ファイルヘッダ生成部４８は、ファイルヘッダを生成して一時蓄積メモリ１６に出力する。ファイルヘッダ生成部４８は、生成したファイルヘッダのサイズ情報を、ファイルボディ生成部４０及びファイルフッタ生成部４６に出力する。
【００５１】
ファイルフッタ生成部４６は、ファイルヘッダ生成部４８からのファイルヘッダサイズ情報と、ＲＩＰ生成部４４からのＲＩＰを元にフッタパーティションパック（ＦＰＰ）を生成する。ファイルフッタ生成部４６はまた、ＩＴ生成部４２で生成されたＩＴにＲＩＰ生成部４４が生成したＲＩＰを連結して、一時蓄積メモリ１６に出力する。
【００５２】
図６を参照して、図１に示す実施例の特徴的な動作を説明する。図６は、記録媒体２０上に生成されるインターリーブＭＸＦファイルの内容例を示す。
【００５３】
電源が投入され、操作部２４からの記録指示を受けると、制御部２２は、信号処理部１４に指示してインターリーブＭＸＦファイルの生成を開始させる。信号処理部１４では、制御部２２から記録指示を受けると、ファイルヘッダ生成部４８が符号化方式に適応するファイルヘッダを生成し、一時蓄積メモリ１６に格納する。ただし、この時点で、ＦＰＰ格納開始オフセット値は未定であるので、ダミー値（ここでは”０”）が代入されている。ファイルヘッダ生成部４８はまた、生成したファイルヘッダのサイズをファイルボディ生成部４０とファイルフッタ生成部４６に通知する。
【００５４】
信号処理部１４のＭＰＥＧ２符号化部３０が、映像入力端子１２から入力された非圧縮の映像データをＭＰＥＧ２方式で圧縮符号化し、圧縮映像データをＰＩ生成部３２に供給する。ＰＩ生成部３２は、ＭＰＥＧ２符号化部３０からの圧縮映像データにフレーム単位で所定ヘッダを付加して、ＥＵ生成部３８に出力する。同時に、ＳＩ生成部３４は、音声入力端子１０からの非圧縮の音声データをＭＰＥＧ２符号化部３０による符号化のフレーム間隔にあわせて分割し、所定ヘッダを付加してＥＵ生成部３８に出力する。ＳＹＳ−Ｉ生成部３６は、ＭＰＥＧ２符号化部３０による符号化のフレームに間隔にあわせてＳＹＳ−Ｉ（システムアイテム）を生成し、ＥＵ生成部３８に出力する。
【００５５】
ＥＵ生成部３８は、アイテム生成部３２，３４，３６からのＰＩ、ＳＩおよびＳＹＳ−Ｉを結合してＥＵを生成し、ファイルボディ生成部４０に出力する。また、ＥＵ生成部３８は同時に、インデックスエントリアレイを生成するのに必要な情報をＩＴ生成部４２に供給する。例えば、ＤＥＡ、生成したＥＵのサイズ、内包するＳＹＳ−Ｉ、ＰＩおよびＳＩのサイズ、並びに、ＰＩに含まれるＭＰＥＧ２フレームデータの符号化形式（Ｉ／Ｂ／Ｐ）である。
【００５６】
ＩＴ生成部４２は、ＥＵ生成部３８から受け取った情報が所定数のＥＵ分だけ貯まる毎にＩＴを生成し、ファイルボディ生成部４０とファイルフッタ生成部４６に供給する。生成されたＩＴは、動画データのフレームのオフセットを示すインデックス情報であり、動画データに対して所定のフレーム間隔で多重される。
【００５７】
ファイルボディ生成部４０は、制御部２２からの記録指示に応じて、先頭のボディパーティションを一時蓄積メモリ１６に出力し、一時蓄積メモリ１６への出力を制御部２２に通知する。ただし、この時点では、ＦＰＰ格納開始オフセット値は未定であるので、ダミー値（ここでは”０”）が代入される。その後、ファイルボディ生成部４０は、ＥＵ生成部３８からのＥＵを一時蓄積メモリ１６に出力する。このＥＵが所定数に達する毎に、ファイルボディ生成部４０は、ファイルヘッダ生成部４８からのファイルヘッダサイズと、自身が一時蓄積メモリ１６に出力したデータサイズをカウントする。そして、ファイルボディ生成部４０は、直前及び自身のパーティションパックのインターリーブＭＸＦファイル上の格納開始オフセットを決定し、それらの値を使ってＢＰＰを生成する。ただし、この時点で、ＦＰＰ格納開始オフセット値が未定であるので、ダミー値（ここでは”０”）が代入される。
【００５８】
更に、ファイルボディ生成部４０は、生成したＢＰＰにＩＴ生成部４２からのＩＴを合わせて一時蓄積メモリ１６に出力する。そして、ファイルボディ生成部４０は、ＩＴを一時蓄積メモリ１６に出力したことを制御部２２に通知する。ファイルボディ生成部４０は、直前及び自身のＰＰのインターリーブＭＸＦファイル上の格納開始オフセットアドレスをＲＩＰ生成部４４へ出力する。
【００５９】
制御部２２は、信号処理部１４から一時蓄積メモリ１６への出力状況を取得する。記録開始直後、ファイルヘッダと先頭のＢＰＰの一時蓄積メモリ１６への出力を信号処理部１４から通知されると、制御部２２は、記録媒体制御部１８を制御してこのファイルヘッダ及び先頭のＢＰＰを記録媒体２０に書き込ませる（図６（Ａ））。
【００６０】
以降、制御部２２は、一時蓄積メモリ１６に記憶されているデータ量を検出する。そしてし、制御部２２は、予め決められた量のデータが蓄積される毎に、メモリ１６からデータを読み出して記録媒体２０に書き込むように、記録媒体制御部１８を制御する（図６（Ｂ））。一時蓄積メモリ１６から記録媒体２０へのデータの書き込み開始後、メモリ１６に蓄積されているデータ量が減るので、メモリ１６のデータ量が所定量以下になると記録媒体２０へのデータの書き込みを停止する。この様にメモリ１６に所定量のデータが蓄積される毎に記録媒体２０への書き込みを繰り返すことで、記録媒体２０上でインターリーブＭＸＦファイルのファイルボディ部が形成される（図６（Ｃ），（Ｄ））。
【００６１】
この様に動画ファイルの記録を開始した後、操作部から記録停止指示を受けると、制御部２２は、信号処理部１４に記録停止を指示する。記録停止指示をうけると、ＭＰＥＧ２符号化部３０、アイテム生成部３２，３４，３６、ＥＵ生成部３８およびファイルボディ生成部４０は、ＥＵが１ＧＯＰの終了となるところで記録動作を終了する。この時、上記と同様に、一時蓄積メモリ１６に記憶されたデータ量が予め決められた容量になると、記録媒体２０への書き込みを行う。最終的に、一時蓄積メモリ１６に蓄積されたデータ全てが、記録媒体２０に出力される。（図６（Ｅ））。
【００６２】
ＩＴ生成部４２は、最後に生成したＩＴをファイルフッタ生成部４６に出力する。ＲＩＰ生成部４４は、ファイルボディ生成部４０から受け取った情報を元にＲＩＰを生成し、ファイルフッタ生成部４６に出力する。
【００６３】
ファイルフッタ生成部４６は、ＲＩＰ生成部４４からのＲＩＰを参照して、フッタパーティションパック（ＦＰＰ）を生成する。すなわち、ファイルフッタ生成部４６は、直前に配置されるＢＰＰと、ＦＰＰ格納開始オフセットなどの情報をＲＩＰから取得し、これらを用いてＦＰＰを生成する。次に、ファイルフッタ生成部４６は、生成したＦＰＰ、入力された最終ＩＴおよびＲＩＰを順に一時蓄積メモリ１６に出力し、その旨を制御部２２に通知する。
【００６４】
制御部２２は、一時蓄積メモリ１６にＦＰＰ、最終のＩＴ及びＲＩＰが出力された通知を信号処理部１４から受けると、記録媒体制御部１８にこれらを記録媒体２０に出力させる（図６（Ｆ））。
【００６５】
次に、制御部２２は、一時蓄積メモリ１６に蓄積されたＲＩＰを用いて、記録媒体２０から記録媒体制御部１８を介して各ＢＰＰを一時蓄積メモリ１６に読み出す。一時蓄積メモリ１６上のＲＩＰを用いて、ＦＰＰ格納開始オフセットを取得する。そして、先ほど一時蓄積メモリ１６に読み出したＨＰＰ，ＢＰＰ内のＦＰＰ格納開始オフセットに、この格納開始オフセットアドレスの値を記録する。その後、ＢＰＰ及びＨＰＰをこの順で一時蓄積メモリ１６から記録媒体制御部１８を介して記録媒体２０に上書きで記録する。これで、記録媒体２０上にインターリーブＭＸＦファイルが完成する（図６（Ｇ））。
【００６６】
この様に、本実施例によれば、記録開始の指示があると、ＨＰＰに含まれるＦＰＰ格納開始オフセット情報として所定値、例えば０を格納して記録する。そして、記録停止に応じて、正常にＦＰＰの記録が終了すると、ＦＰＰ格納開始オフセット値を検出し、ＨＰＰにおける所定値に代えて記録する。
【００６７】
動画ファイルの記録中に、電源部２６からの電力供給が遮断した場合の動作を説明する。
【００６８】
制御部２２は、記録中に電源２６による電力供給が遮断すると、直ちに動画ファイルの記録を停止するように記録媒体制御部１８を制御する。記録媒体制御部１８は、この記録停止の指示に従い、動画ファイルの記録を停止する。そのため、この場合にはＦＰＰは正常に記録されず、また、ＨＰＰにおけるＦＰＰ格納開始オフセット情報には所定値０が格納された状態のままとなる。
【００６９】
本実施例では、この様に電源の遮断により記録を中止した後、再度電源が投入されると、記録を中断した動画ファイルを自動修復する。ＭＸＦファイルのチェック及び修復処理を説明する。
【００７０】
図７は、記録媒体２０上の不完全インターリーブＭＸＦファイルをチェックし修復する制御部２２の動作フローチャートを示す。図７の処理は、制御部２２が各部を制御することにより実行される。図８（Ａ）は、電源遮断等の要因により発生した不完全インターリーブＭＸＦファイルの一例を示す。図８（Ａ）に示す例では、ファイルの最終部は異常な状態である。
【００７１】
図１に示す記録装置が電源断から復帰すると、制御部２２は、図７に示すフローをスタートする。制御部２２は、まず、記録媒体制御部１８に対し、記録媒体２０に記録された複数のＭＸＦファイルのうち、最も大きいファイル番号が付加されたＭＸＦファイルのＨＰＰを読み出し、メモリ１６に記憶するように指示する。前述の様に、本実施形態では、ＭＸＦファイルの記録を開始する度に、このＭＸＦファイルに付加するファイル番号を１ずつ増加させている。そのため、前回電源が遮断されていたときに記録していたＭＸＦファイルのファイル番号は、記録媒体２０に記録されているファイルのうち最もファイル番号が大きいものとなる。なお、電源遮断の際に記録途中であったファイルを検出できる構成であれば、これ以外の方法を用いてもよい。例えば、フラッシュメモリ等の不揮発メモリを備えておき、記録中のファイルのファイル番号をこの不揮発メモリに保持しておく、といった構成でもよい。
【００７２】
次に、メモリ１６に記憶されたＨＰＰにＦＰＰ格納開始オフセットが登録されているかどうかをチェックする（Ｓ１）。ＦＰＰ格納開始オフセットには、先に説明したように、当初０が格納されており、記録終了時に正しい値が格納される。従って、ＦＰＰ格納開始オフセットに０以外の値が格納されていれば、正常に記録が終了していることになる。この場合、このインターリーブＭＸＦファイルに異常は無いと判断し、処理を終了する。
【００７３】
ＦＰＰ格納開始オフセットが０である場合（Ｓ１）、制御部２２は、当該インターリーブＭＸＦファイルが異常な状態と判断し、Ｓ２以降の修復処理を実行する。すなわち、当該インターリーブＭＸＦファイルの最終インデックステーブルを検出する（Ｓ２）。最終インデックステーブルが発見できなかった場合（Ｓ２）、当該インターリーブＭＸＦファイルを記録媒体２０から削除し、処理を終了する。
【００７４】
最終インデックステーブルを発見出来た場合（Ｓ２）、当該インターリーブＭＸＦファイルは、図８（Ａ）に示す状態であると判断される。そこで、ステップＳ２で検出したインデックステーブルより後のデータを図８（Ｂ）に示すように、破棄する（Ｓ４）。図８（Ｃ）に示すように、ＩＴの直前に配置されているＰＰのヘッダ領域をＦＰＰのものに書き換えて、ＦＰＰ化する（Ｓ５）。
【００７５】
次に、Ｓ５でＦＰＰ化したＰＰ自身の格納開始オフセットを取得し、ＦＰＰ格納開始オフセットとし、一時蓄積メモリ１６のワーク領域に退避する（Ｓ６）。処理中のＰＰに、Ｓ６で退避したＦＰＰ格納開始オフセットを取り出して設定する（Ｓ７）。処理中のＰＰ自身の格納開始オフセットを取得し、一時蓄積メモリ１６のワーク領域に退避する（Ｓ８）。処理中のＰＰがＨＰＰかどうかを、そのヘッダを見て判定する（Ｓ９）。
【００７６】
当該ＰＰがＨＰＰでなければ（Ｓ９）、処理中の当該ＰＰから記録順で一つ前のＰＰの格納開始オフセットを取得する（Ｓ１０）。そして、記録順で一つ前のＰＰを同様に記録媒体２０から一時蓄積メモリ１６に読み出して、処理対象を一つ前のＰＰに移動させ（Ｓ１１）、Ｓ７以降の処理を繰り返す。これにより、図８（Ｄ）に示すような状態が得られる。
【００７７】
当該ＰＰがＨＰＰであれば（Ｓ９）、Ｓ６及びＳ８で一時蓄積メモリ１６に退避した各ＰＰの格納開始オフセットを用いてＲＩＰを生成し、当該インターリーブＭＸＦファイルの終端に追記する（Ｓ１２）。追記後のファイル構造例を図８（Ｅ）に示す。
【図１】
0005541668.tif 000002
【図２】
0005541668.tif 000003
【図３】
0005541668.tif 000004
【図４】
0005541668.tif 000005
【図５】
0005541668.tif 000006
【図６】
0005541668.tif 000007
【図７】
0005541668.tif 000008
【図８】
0005541668.tif 000009
【図９】
0005541668.tif 000010