(57)【特許請求の範囲】
【請求項１】
フレーム毎に圧縮後のサイズが可変である動画の動画ファイルを取得する動画ファイル取得手段と、
前記取得した動画ファイルのヘッダ部から、当該動画ファイルのフレーム部に関するフレーム情報を抽出するフレーム情報抽出手段と、
前記フレーム部を構成する各フレームを検索して、前記検索した各フレームに基づき、当該フレーム部に関するフレーム情報を算出するフレーム情報算出手段と、
前記抽出したフレーム情報と、前記算出したフレーム情報とを比較する比較手段と、
前記抽出したフレーム情報と前記算出したフレーム情報とが異なる場合、前記ヘッダ部のフレーム情報を前記算出したフレーム情報に書き換えて、動画ファイルを修復する動画ファイル修復手段と、
を備えることを特徴とする動画修復装置。
【請求項２】
請求項１に記載の動画修復装置において、
前記フレーム情報算出手段が、前記フレーム部の各フレームを検索して、他のフレーム情報を算出し、
前記動画ファイル修復手段が、前記他のフレーム情報から、前記動画ファイルの末尾部を生成することを特徴とする動画修復装置。
【請求項３】
請求項２に記載の動画修復装置において、
前記フレーム情報が、前記動画ファイルのフレーム数であり、前記他のフレーム情報が、各フレームのデータサイズであることを特徴とする動画修復装置。
【請求項４】
請求項１から請求項３のいずれか１項に記載の動画修復装置において、
前記動画ファイルのファイル名が、記憶手段に記憶された順番を示すファイル名であり、
前記動画ファイル取得手段が、前記ファイル名に基づき、前記記憶手段に最後に記憶された動画ファイルを取得することを特徴とする動画修復装置。
【請求項５】
動画ファイル取得手段が、フレーム毎に圧縮後のサイズが可変である動画の動画ファイルを取得する動画ファイル取得ステップと、
フレーム情報抽出手段が、前記取得した動画ファイルのヘッダ部から、当該動画ファイルのフレーム部に関するフレーム情報を抽出するフレーム情報抽出ステップと、
フレーム情報算出手段が、前記フレーム部を構成する各フレームを検索して、前記検索した各フレームに基づき、当該フレーム部に関するフレーム情報を算出するフレーム情報算出ステップと、
比較手段が、前記抽出したフレーム情報と、前記算出したフレーム情報とを比較する比較ステップと、
動画ファイル修復手段が、前記抽出したフレーム情報と前記算出したフレーム情報とが異なる場合、前記ヘッダ部のフレーム情報を前記算出したフレーム情報に書き換えて、動画ファイルを修復する動画ファイル修復ステップと、
を有することを特徴とする動画修復方法。
【請求項６】
コンピュータを、
フレーム毎に圧縮後のサイズが可変である動画の動画ファイルを取得する動画ファイル取得手段、
前記取得した動画ファイルのヘッダ部から、当該動画ファイルのフレーム部に関するフレーム情報を抽出するフレーム情報抽出手段、
前記フレーム部を構成する各フレームを検索して、前記検索した各フレームに基づき、当該フレーム部に関するフレーム情報を算出するフレーム情報算出手段、
前記抽出したフレーム情報と、前記算出したフレーム情報とを比較する比較手段、および、前記抽出したフレーム情報と前記算出したフレーム情報とが異なる場合、前記ヘッダ部のフレーム情報を前記算出したフレーム情報に書き換えて、動画ファイルを修復する動画ファイル修復手段として機能させることを特徴とする動画修復装置用のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画を修復するための動画修復装置、動画修復方法、および、動画修復装置用のプログラムに関する。
【背景技術】
【０００２】
監視カメラにより撮像した動画データの書き込みに不良が生じ、修復が必要となる場合がある。例えば、特許文献１には、デジタルカメラに対して、記録する一連のデータのファイル情報を修復用ファイル情報として更新し、データファイルとともに更新した修復用ファイル情報を記録媒体に記録し、ドライブ電源切断、蓋あけ、衝撃等によって書き込み処理が中断されると、更新された修復用ファイル情報を検索して読み出し、読み出された修復用ファイル情報に基づいて記録が中断されたファイルのファイル情報を復元するデータ記録再生装置が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−１６９２９３公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１の技術では、動画データとは別に修復用ファイルとして保存しているので、記録媒体の容量を消費し、パソコン等によるデータのコピー、移動などでも制約が生じていた。また、修復用ファイル自体が正常に保存されない場合等の対応も必要になり、処理が煩雑になっていた。
【０００５】
そこで、本発明は上記の問題点等に鑑みて為されたもので、その課題の一例は、修復用ファイル等の動画ファイル以外のファイルの記録を必要としない動画修復装置等を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記の課題を解決するために、請求項１に記載の発明は、フレーム毎に圧縮後のサイズが可変である動画の動画ファイルを取得する動画ファイル取得手段と、前記取得した動画ファイルのヘッダ部から、当該動画ファイルのフレーム部に関するフレーム情報を抽出するフレーム情報抽出手段と、前記フレーム部を構成する各フレームを検索して、前記検索した各フレームに基づき、当該フレーム部に関するフレーム情報を算出するフレーム情報算出手段と、前記抽出したフレーム情報と、前記算出したフレーム情報とを比較する比較手段と、前記抽出したフレーム情報と前記算出したフレーム情報とが異なる場合、前記ヘッダ部のフレーム情報を前記算出したフレーム情報に書き換えて、動画ファイルを修復する動画ファイル修復手段と、を備えることを特徴とする。
【０００７】
また、請求項２に記載の発明は、請求項１に記載の動画修復装置において、前記フレーム情報算出手段が、前記フレーム部の各フレームを検索して、他のフレーム情報を算出し、前記動画ファイル修復手段が、前記他のフレーム情報から、前記動画ファイルの末尾部を生成することを特徴とする。
【０００８】
また、請求項３に記載の発明は、請求項２に記載の動画修復装置において、前記フレーム情報が、前記動画ファイルのフレーム数であり、前記他のフレーム情報が、各フレームのデータサイズであることを特徴とする。
【０００９】
また、請求項４に記載の発明は、請求項１から請求項３のいずれか１項に記載の動画修復装置において、前記動画ファイルのファイル名が、記憶手段に記憶された順番を示すファイル名であり、前記動画ファイル取得手段が、前記ファイル名に基づき、前記記憶手段に最後に記憶された動画ファイルを取得することを特徴とする。
【００１０】
また、請求項５に記載の発明は、動画ファイル取得手段が、フレーム毎に圧縮後のサイズが可変である動画の動画ファイルを取得する動画ファイル取得ステップと、フレーム情報抽出手段が、前記取得した動画ファイルのヘッダ部から、当該動画ファイルのフレーム部に関するフレーム情報を抽出するフレーム情報抽出ステップと、フレーム情報算出手段が、前記フレーム部を構成する各フレームを検索して、、前記検索した各フレームに基づき、当該フレーム部に関するフレーム情報を算出するフレーム情報算出ステップと、比較手段が、前記抽出したフレーム情報と、前記算出したフレーム情報とを比較する比較ステップと、動画ファイル修復手段が、前記抽出したフレーム情報と前記算出したフレーム情報とが異なる場合、前記ヘッダ部のフレーム情報を前記算出したフレーム情報に書き換えて、動画ファイルを修復する動画ファイル修復ステップと、を有することを特徴とする。
【００１１】
また、請求項６に記載の発明は、コンピュータを、フレーム毎に圧縮後のサイズが可変である動画の動画ファイルを取得する動画ファイル取得手段、前記取得した動画ファイルのヘッダ部から、当該動画ファイルのフレーム部に関するフレーム情報を抽出するフレーム情報抽出手段、前記フレーム部を構成する各フレームを検索して、前記検索した各フレームに基づき、当該フレーム部に関するフレーム情報を算出するフレーム情報算出手段、前記抽出したフレーム情報と、前記算出したフレーム情報とを比較する比較手段、および、前記抽出したフレーム情報と前記算出したフレーム情報とが異なる場合、前記ヘッダ部のフレーム情報を前記算出したフレーム情報に書き換えて、動画ファイルを修復する動画ファイル修復手段として機能させることを特徴とする。
【発明の効果】
【００１２】
本発明によれば、修復用ファイル等の動画ファイル以外のファイルを記録していなくても、動画ファイルを修復できる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施形態に係る動画修復装置の概要構成例を示す模式図である。
【図２】動画ファイルの構成例を示す模式図である。
【図３】図１の動画修復装置の動作例を示すフローチャートである。
【図４】動画ファイルの記憶領域の一例を示す模式図である。
【図５】図３のファイルチェックのサブルーチンの一例を示すフローチャートである。
【図６】破損した動画ファイルの一例を示す模式図である。
【図７】破損した動画ファイルの一例を示す模式図である。
【図８】破損した動画ファイルの一例を示す模式図である。
【図９】図３のファイル修復のサブルーチンの一例を示すフローチャートである。
【図１０】修復された動画ファイルの一例を示す模式図である。
【発明を実施するための形態】
【００１４】
以下、図面を参照して本発明の実施形態について説明する。なお、以下に説明する実施の形態は、動画修復装置に対して本発明を適用した場合の実施形態である。
【００１５】
［１．動画修復装置の構成および機能の概要］
（１．１  動画修復装置の構成および機能の概要）
【００１６】
まず、本発明の一実施形態に係る動画修復装置の構成および概要機能について、図１を用いて説明する。
【００１７】
図１は、本発明の実施形態に係る動画修復装置の概要構成例を示す模式図である。
【００１８】
図１に示すように、動画修復装置１０は、動画を撮像するカメラ３からの動画データの入力を継続的に受け付ける入力部１１と、動画データの複数のフレームを、所定の形式の動画ファイルに変換するシステム制御部１２と、動画ファイルを記憶する記憶部１３と、を有する。入力部１１と、システム制御部１２と、記憶部１３とは、システムバス１５を介して接続されている。なお、動画修復装置１０は、ネットワークに接続可能な通信部（図示せず）を有してもよい。また、動画ファイルの形式の一例として、ＡＶＩ（Audio Video Interleave）等が挙げられる。
【００１９】
カメラ３は、ＣＭＯＳ（Complementary Metal Oxide Semiconductor）またはＣＣＤ（Charge Coupled Device）のようなイメージセンサ（撮像手段の一例）と、レンズを有する。カメラ３は、例えば、車載カメラや、監視カメラである。
【００２０】
入力部１１は、カメラ３とのインターフェース機能を有する。なお、入力部１１は、ＴＶを録画するために（例えば、多チャンネルの放送を同時録画するために）、ＴＶとの接続のインターフェースを有してもよい。
【００２１】
システム制御部１２は、ＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）等により構成されている。そして、システム制御部１２は、動画データの複数のフレームをまとめたフレーム部、ヘッダ部と、インデックス部とからなる動画ファイルに変換する。システム制御部１２は、動画ファイルのファイル名を生成する。
【００２２】
記憶部１３は、例えば、メモリカード、ハードディスクドライブ、シリコンディスクドライブ等の記録媒体１３ａにより構成されている。記憶部１３は、メモリカード（記録媒体の一例）を装着するスロットを有する。記憶部１３は、撮像した動画データ、オペレーティングシステムおよび各種プログラム等を記憶する。なお、各種プログラムは、例えば、他のサーバ装置等からネットワークを介して取得されるようにしてもよいし、記録媒体１３ａに記録されてドライブ装置を介して読み込まれるようにしてもよい。
【００２３】
（１．２  動画ファイルの構成例）
次に、図２を用いて動画ファイルの構成例について説明する。
図２は、動画ファイルの構成例を示す模式図である。
【００２４】
図２に示すように、動画ファイルは、動画ファイルの先頭のヘッダ部と、ヘッダ部の次のフレーム部と、動画ファイルの末尾のインデックス部（末尾部の一例）と、を有する。
【００２５】
ヘッダ部（HEADER）は、動画ファイルの形式を認識するための”RIFF” (Resource Interchange File Format)の４文字の識別子と、ＬＩＳＴチャンク等の複数のブロック等と、を有する。ヘッダ部には、動画ファイルの総フレーム数の情報、動画ファイルのデータサイズの情報等のヘッダ情報（フレーム情報の一例）が記載されている。
【００２６】
フレーム部（frame）は、複数のフレームからなる。各フレームは、ＪＰＥＧ（Joint Photographic Experts Group）形式等の圧縮画像の静止画データである。各フレームの先頭に、ＳＯＩマーカ（Start of Image）、末尾にＥＯＩマーカ（End of Image）が付されている。ＳＯＩマーカには、例えば、１６進”ＦＦＤ８”が割り当てられている。ＥＯＩマーカには、例えば、１６進”ＦＦＤ９”が割り当てられている。
【００２７】
インデックス部（INDEX）には、各フレームの相対アドレスを示すオフセット、各フレームのデータサイズの情報が記載される。
【００２８】
ここで、ＪＰＥＧ圧縮方式の場合、フレーム毎に圧縮後のサイズは異なるため、動画ファイルのファイルサイズ、ヘッダ部およびインデックス部のオフセット、サイズは可変となる。従って、録画は停止するまでデータサイズ、フレーム数、インデックス（各フレームのオフセット、サイズ）が不明であるため、停止時に、これらが算出され、ヘッダ部のヘッダ情報の更新、インデックス部の追加を行い動画ファイルの記録が完了する。具体的には、ヘッダ部のAVILISTMOVIタグのmoviListSizeにデータサイズが記載され、AVIMAINHEADERタグのdwTotalFramesに、算出されたフレーム数が上書きされる。そして、各フレームのオフセットとサイズで構成した情報が、インデックスとして動画ファイルの末尾に追加される。
【００２９】
ファイル名およびディレクトリ構造は、時間または録画順の番号により形成される。例えば、年月日でディレクトリを作成し、時間でサブディレクトリを作成し、ファイル名（記憶手段に記憶された順番を示すファイル名の一例）を分秒で作成する。また、録画順にナンバリングしたファイル名（記憶手段に記憶された順番を示すファイル名の一例）でもよい。
【００３０】
［２．動画修復装置１０の動作］
次に、本発明の１実施形態に係る動画修復装置１０の動作について図３を用いて説明する。
図３は、動画修復装置の動作例を示すフローチャートである。
【００３１】
（２．１  動画修復装置の動作）
図３に示すように、動画修復装置１０は、記録媒体１３ａが挿入されたか否かを判定する（ステップＳ１）。具体的には、動画修復装置１０のシステム制御部１２が、電源起動時に記憶部１３のスロットに、メモリカードが挿入されたか否かを検出して判定する。
【００３２】
記録媒体が挿入されている場合（ステップＳ１；ＹＥＳ）、動画修復装置１０は、記録媒体のデータをロードする（ステップＳ２）。具体的には、システム制御部１２が、記憶部１３のメモリカードにアクセスして、記録されているデータを読み込む。更に具体的には、メモリカードに記録してある動画ファイルに関連したディレクトリ情報、FAT情報を読み込み、録画の準備を行うためのロードを行う。
【００３３】
このように、動画修復装置１０は、動画の動画ファイルを取得する動画ファイル取得手段の一例として機能する。
【００３４】
なお、記録媒体が挿入されていない場合（ステップＳ１；ＮＯ）、ステップＳ１に戻り、挿入されるまで、待機状態となる。例えば、電源起動後にメモリカードが挿入されていない場合には、メモリカードの挿入を１秒間隔で確認し、メモリカードが挿入された場合にロードを行う。
【００３５】
次に、動画修復装置１０は、上書きモードか否かを判定する（ステップＳ３）。具体的には、システム制御部１２が、メモリカードに動画ファイルを書き込む際の方式が、メモリカードに上書きをするモードが否かを判定する。
【００３６】
上書きモードである場合（ステップＳ３；ＹＥＳ）、動画修復装置１０は、記録媒体の空き容量があるか否かを判定する（ステップＳ４）。具体的には、システム制御部１２が、ロード時に設定されている録画モードからファイル使用量を算出し、記憶部１３に挿入されたメモリカードの空き容量を確認する。
【００３７】
記録媒体の空き容量が無い場合（ステップＳ４；ＮＯ）、動画修復装置１０は、一番古いファイルを検索し、削除する（ステップＳ６）。具体的には、システム制御部１２が、空き容量が無ければ、記憶部１３に挿入されたメモリカードから一番古いファイルを検索し削除を行う。そして、動画修復装置１０は、ステップＳ４に戻り、さらに空き容量を確認する。
【００３８】
上書きモードでない場合（ステップＳ３；ＮＯ）、動画修復装置１０は、記録媒体の空き容量があるか否かを判定する（ステップＳ６）。
【００３９】
記録媒体の空き容量が無い場合（ステップＳ６；ＮＯ）、処理が終了し、録画を開始する。
【００４０】
記録媒体の空き容量がある場合（ステップＳ４；ＹＥＳ、または、ステップＳ６；ＹＥＳ）、動画修復装置１０は、動画ファイルを検索する（ステップＳ７）。具体的には、システム制御部１２が、ファイル名を検索し、最も新しい動画ファイル、すなわち、最後に記録された動画ファイルを求める。例えば、図４に示すように、動画修復装置１０は、”ファイル４”の動画ファイルを検索して求める。
【００４１】
このように、動画修復装置１０は、動画の動画ファイルを取得する動画ファイル取得手段の一例として機能する。また、動画修復装置１０は、前記ファイル名に基づき、前記記憶手段に最後に記憶された動画ファイルを取得する動画ファイル取得手段の一例として機能する。
【００４２】
次に、動画修復装置１０は、最後に記録した動画ファイルをチェックする（ステップＳ８）。具体的には、システム制御部１２が、ファイルチェックのサブルーチンに従い、最後に記録した動画ファイルを、ファイルの先頭からチェックする。
【００４３】
このように、動画修復装置１０は、動画の動画ファイルを取得する動画ファイル取得手段の一例として機能する。
【００４４】
次に、動画修復装置１０は、動画ファイルが正常か否かを判定する（ステップＳ９）。例えば、システム制御部１２が、最後に記録した動画ファイルのチェック結果（フラグ等）に基づき、動画ファイルが正常か否かを判定する。
【００４５】
動画ファイルが正常でない場合（ステップＳ９；ＮＯ）、動画修復装置１０は、ファイルを修復する（ステップＳ１０）。具体的には、システム制御部１２が、ファイル修復のサブルーチンに従い、破損した動画ファイルが正常に再生できるように、動画ファイルを修復する。
【００４６】
動画ファイルが正常である場合（ステップＳ９；ＹＥＳ）、処理を終了して、録画を開始する、
【００４７】
（２．２  ファイルチェックのサブルーチン）
次に、ファイルチェックのサブルーチンについて、図５から図８を用いて説明する。
図５は、ファイルチェックのサブルーチンの一例を示すフローチャートである。図６は、破損した動画ファイルの一例を示す模式図である。図７は、破損した動画ファイルの一例を示す模式図である。図８は、破損した動画ファイルの一例を示す模式図である。
【００４８】
図５に示すように、動画修復装置１０は、ヘッダ部が正常か否かを判定する（ステップＳ１１）。具体的には、システム制御部１２が、対象の動画ファイルのヘッダ部が、図２に示すような構成されているかを判定する。例えば、システム制御部１２が、動画ファイルのヘッダ部の先頭から読み出し、ヘッダ部の最後のパラメータ”moviListSize"が存在するか否かを判定する。ヘッダ部の生成中に電源が切れたり、メモリカードが抜かれたりした場合、ヘッダ部の生成が完了せずに、中途半端なヘッダ部になる。
【００４９】
このように、動画修復装置１０は、動画の動画ファイルを取得する動画ファイル取得手段の一例として機能する。
【００５０】
ここで、動画ファイルの破損の原因として、録画中に、電源が切れたり、メモリカードが抜かれたりする場合が挙げられる。また、動画ファイルの破損のパターンとして、例えば、以下の３つ挙げられる。図６に示すように、動画ファイルのヘッダ部が破損する場合、図７に示すように、フレーム部が破損する場合（例えば、ｎ＋１番目のフレームが破損）、図８に示すように、ｎ番目のフレームの後のインデックス部が破損する場合が挙げられる。フレームが破損している場合は、ＳＯＩマーカがあるが、ＥＯＩマーカが存在しなく、さらに、インデックス部が存在しない動画ファイルとなる。これらのように、停止時の処理が正常に行われないためデータサイズ、フレーム数、インデックスが存在しない動画ファイルとなる。
【００５１】
ヘッダ部が正常で無い場合（ステップＳ１１；ＮＯ）、動画修復装置１０は、異常終了のフラグを設定し（ステップＳ１２）、サブルーチンを終了する。
【００５２】
ヘッダ部が正常である場合（ステップＳ１１；ＹＥＳ）、動画修復装置１０は、総フレーム数を取得する（ステップＳ１３）。具体的には、システム制御部１２が、ヘッダ部から、動画ファイルの総フレーム数（フレーム情報の一例）を取得する。
【００５３】
このように、動画修復装置１０は、前記取得した動画ファイルのヘッダ部から、当該動画ファイルのフレーム部に関するフレーム情報を抽出するフレーム情報抽出手段の一例として機能する。
【００５４】
次に、動画修復装置１０は、フレーム部に検索のポインタを設定する（ステップＳ１４）。具体的には、動画ファイル先頭から各フレームの先頭（ＳＯＩ）を検索するため、システム制御部１２が、フレーム部に検索のポインタを設定する。
【００５５】
次に、動画修復装置１０は、ＳＯＩマーカおよびＥＯＩマーカを検索する（ステップＳ１５）。具体的には、システム制御部１２が、動画ファイルのフレーム部の先頭から読み出しながら、まず、ＳＯＩマーカを検索して、フレームの先頭を求める。そして、システム制御部１２が、ＥＯＩマーカを検索する。検索しながら、フレームサイズを測定していく。
【００５６】
このように、動画修復装置１０は、動画の動画ファイルを取得する動画ファイル取得手段の一例として機能する。
【００５７】
次に、動画修復装置１０は、マーカが存在するか否かを判定する（ステップＳ１６）。具体的には、システム制御部１２が、記憶部１３のメモリカードのメモリ領域のポインタを進めて、ＳＯＩマーカまたはＥＯＩマーカがあるか否かを判定して行く。
【００５８】
マーカが存在する場合（ステップＳ１６；ＹＥＳ）、動画修復装置１０は、フレーム数をカウントし、インデックスにエントリを追加する（ステップＳ１７）。具体的には、システム制御部１２が、ＳＯＩマーカに対して、対応するＥＯＩマーカがある場合、フレーム数（フレーム情報の一例）のカウントを１つ増加させ、同時に、フレームのサイズ（他のフレーム情報の一例）を求める。そして、システム制御部１２が、インデックス部を生成するためのメモリ領域に、フレーム数や、フレーム番号、フレーム番号毎のフレームサイズ等を書き込み、インデックス部を順次構築していく。なお、インデックス部を生成するためのメモリ領域は、記憶部１３に形成されている。
【００５９】
このように、動画修復装置１０は、前記取得した動画ファイルのヘッダ部から、当該動画ファイルのフレーム部に関するフレーム情報を抽出するフレーム情報抽出手段の一例として機能する。また、動画修復装置１０は、前記フレーム部の各フレームを検索して、前記フレーム情報を算出するフレーム情報算出手段の一例として機能する。また、動画修復装置１０は、前記フレーム部の各フレームを検索して、他のフレーム情報を算出するフレーム情報算出手段の一例として機能する。
【００６０】
インデックスにエントリを追加した後、動画修復装置１０は、ステップＳ１５に戻る。
【００６１】
ポインタが進んでフレームがなくなって、マーカが存在しない場合（ステップＳ１６；ＮＯ）、動画修復装置１０は、フレーム数が等しいか否かを判定する（ステップＳ１８）。具体的には、システム制御部１２が、ヘッダ部に記載してあった総フレーム数（フレーム情報の一例）と、カウントしたフレーム数（他のフレーム情報の一例）とが一致する否かを判定する。一致していない場合は、フレーム部が破損している。
【００６２】
このように、動画修復装置１０は、前記抽出したフレーム情報と、前記算出したフレーム情報とを比較する比較手段の一例として機能する。
【００６３】
フレーム数が等しく無い場合（ステップＳ１８；ＮＯ）、動画修復装置１０は、修復フラグを設定する（ステップＳ１９）。具体的には、システム制御部１２が、ファイルの修復が必要なので、修復フラグを設定し、サブルーチンを終了する。
【００６４】
フレーム数が等しい場合（ステップＳ１８；ＹＥＳ）、動画修復装置１０は、正常終了のフラグを設定する（ステップＳ２０）。具体的には、システム制御部１２が、ファイルが破損していないので、正常終了のフラグを設定し、サブルーチンを終了する。
【００６５】
なお、インデックス部が破損している場合として、カウントしたフレーム数が、インデックス部の最後のフレームの番号と等しく無い場合、または、ヘッダ部の総フレーム数が、インデックス部の最後のフレームの番号と等しく無い場合、または、最後のフレームオフセットがあるが、最後のフレームデータ数が無い場合等が挙げられる。動画修復装置１０は、これらの場合に該当するか否かにより、インデックス部が破損しているか否かを判定する。
【００６６】
（２．３  ファイル修復のサブルーチン）
次に、ファイル修復のサブルーチンについて、図９および図１０を用いて説明する、
図９は、ファイル修復のサブルーチンの一例を示すフローチャートである。図１０は、修復された動画ファイルの一例を示す模式図である。
【００６７】
図９に示すように、動画修復装置１０は、ヘッダ部に検索したフレーム数を設定する（ステップＳ３０）。具体的には、システム制御部１２が、ヘッダ部の総フレーム数のタグに、カウントしたフレーム数を設定する。AVIMAINHEADERタグのdwTotalFramesにカウントしたフレーム数が上書きされる。
【００６８】
このように、動画修復装置１０は、前記抽出したフレーム情報と前記算出したフレーム情報とが異なる場合、前記ヘッダ部のフレーム情報を前記算出したフレーム情報に書き換えて、動画ファイルを修復する動画ファイル修復手段の一例として機能する。
【００６９】
次に、動画修復装置１０は、インデックス部を追加する（ステップＳ３１）。具体的には、システム制御部１２が、記憶部１３に生成されたインデックス部に基づき、図１０に示すように、フレーム部の最後のフレーム（ｎ番目のフレーム）の後に、インデックス部（末尾部の一例）を追加して、動画ファイルを修復し、サブルーチンを終了する。例えば、ｎ＋１番目のフレームが破損している場合は、ｎ番目のフレームの後に、インデックス部が追加され、動画ファイルが完成する。なお、図８に示すように、ｎ番目のフレームの直後のインデックス部が破損している場合は、ｎ番目のフレームの直後に、生成されたインデックス部が追加される。
【００７０】
このように、動画修復装置１０は、前記抽出したフレーム情報と前記算出したフレーム情報とが異なる場合、前記ヘッダ部のフレーム情報を前記算出したフレーム情報に書き換えて、動画ファイルを修復する動画ファイル修復手段の一例として機能する。また、動画修復装置１０は、前記他のフレーム情報から、前記動画ファイルの末尾部を生成する動画ファイル修復手段の一例として機能する。
【００７１】
以上、本実施形態によれば、動画の動画ファイルを取得し、取得した動画ファイルのヘッダ部から、当該動画ファイルのフレーム部に関するフレーム情報を抽出し、フレーム部の各フレームを検索して、フレーム情報を算出し、抽出したフレーム情報と、算出したフレーム情報とを比較し、抽出したフレーム情報と算出したフレーム情報とが異なる場合、ヘッダ部のフレーム情報を算出したフレーム情報に書き換えて、動画ファイルを修復することにより、修復用ファイル等の動画ファイル以外のファイルを記録していなくても、動画ファイルを修復できる。
【００７２】
修復用ファイルなど動画ファイル以外のファイルを記録しないため、記録媒体は必要最低限の容量のみ消費する。またパソコン等において、コピー、移動等のファイル操作も、動画ファイルのみで完結できる。パソコンの準備と小型メモリカードビデオレコーダーからメモリカードをパソコンに移動する等の手間が不要となる。
【００７３】
また、電源断で動画ファイルを保護するために使用するバックアップ電源、電気二重層コンデンサ等のハードウェアが不要になる。
【００７４】
さらに、装置内で動画ファイルを修復するため、パソコンやパソコン用のソフトウェアの開発、インストールが不要となる。また、メモリカードのロード時に自動的に行うため操作の手間がかからない。
【００７５】
フレーム部の各フレームを検索して、他のフレーム情報を算出し、他のフレーム情報から、動画ファイルの末尾部を生成する場合、破損せずに残っているフレーム部の各フレームを検索して動画ファイルの末尾部が生成されるので、動画ファイル以外のファイルを使用せず、ファイルを修復できる。
【００７６】
また、フレーム情報が、動画ファイルのフレーム数であり、他のフレーム情報が、各フレームのデータサイズである場合、破損せずに残ったフレームのフレーム数やデータサイズから、容易に修復できる。
【００７７】
また、動画ファイルのファイル名が、記憶手段（記録媒体１３ａ）に記憶された順番を示すファイル名であり、ファイル名に基づき、記憶手段に最後に記憶された動画ファイルを取得する場合、最後に記録したファイルの検索とチェックのみを行うため短時間で動作することができる。また、電源切断、記録媒体の取り出しによるファイルの破壊は記録中の動画ファイル、すなわち、最後に記録した動画ファイルが該当するため、この動画ファイルのみ検索を行うため処理も効率的になる。
【００７８】
さらに、本発明は、上記各実施形態に限定されるものでは無い。上記各実施形態は、例示であり、本発明の特許請求の範囲に記載された技術的思想と実質的に同一な構成を有し、同様な作用効果を奏するものは、いかなるものであっても本発明の技術的範囲に包含される。
【符号の説明】
【００７９】
１０：動画修復装置
１２：システム制御部
１３：記憶部
１３ａ：記録媒体（記憶手段）
【図１】
0006451102.tif 000002
【図２】
0006451102.tif 000003
【図３】
0006451102.tif 000004
【図４】
0006451102.tif 000005
【図５】
0006451102.tif 000006
【図６】
0006451102.tif 000007
【図７】
0006451102.tif 000008
【図８】
0006451102.tif 000009
【図９】
0006451102.tif 000010
【図１０】
0006451102.tif 000011