(57)【特許請求の範囲】
【請求項１】
突然の電源断からファイル管理領域の情報の整合性を保証する機能を有し、映像ファイル及びこの映像ファイルの中のピクチャーグループの場所を格納しているインデックスファイルの両方の末尾の無意味なデータを削除する映像記録装置であって、
８バイト単位のレコードにより構成される前記インデックスファイルのファイルサイズを取得し、この取得したファイルサイズを前記バイト単位に対応する８で除算し、余りの長さだけインデックスファイルを切り詰め、単調増加する各レコードの値を調べて単調増加の条件に該当しないレコード以降を切り捨てるインデックスファイル処理手段と、
前記インデックスファイル処理手段により処理されたインデックスファイルに基づき、映像ファイルの中のピクチャーグループを構成する先頭パックの所定位置に所定コードが存在するか否かに基づきピクチャーグループの正常又は異常を判断し、異常と判断されたピクチャーグループ以降を削除し、さらにインデックスファイルの中の異常と判断されたピクチャーグループ以降を指すレコードも削除するファイル相互処理手段と、
前記ファイル相互処理手段により処理された映像ファイルの中の最終のピクチャーグループが所定バイト数の倍数で構成されているか否かを検査し、所定バイト数の倍数ではなく余りが生じる場合には、その余り部分を切り捨てる映像ファイル処理手段と、
前記インデックスファイル処理手段、前記ファイル相互処理手段、及び前記映像ファイル処理手段により処理された前記インデックスファイル及び前記映像ファイルを記録する記録手段と、
を備えたことを特徴とする映像記録装置。
【請求項２】
記録開始指示の受け取りに基づき記録中を示す情報を記録し、記録停止指示の受け取りに基づき前記記録中を示す情報をクリアする状態記録手段と、
前記状態記録手段により記録された記録中を示す情報の存在に基づき、前記インデックスファイル処理手段、前記ファイル相互処理手段、前記映像ファイル処理手段による前記インデックスファイル及び前記映像ファイルの両方の末尾の無意味なデータを削除する処理を実行する制御手段と、
を備えたことを特徴とする請求項１に記載の映像記録装置。
【請求項３】
突然の電源断からファイル管理領域の情報の整合性を保証する機能を有し、映像ファイル及びこの映像ファイルの中のピクチャーグループの場所を格納しているインデックスファイルの両方の末尾の無意味なデータを削除する映像記録方法であって、
８バイト単位のレコードにより構成される前記インデックスファイルのファイルサイズを取得し、この取得したファイルサイズを前記バイト単位に対応する８で除算し、余りの長さだけインデックスファイルを切り詰め、単調増加する各レコードの値を調べて単調増加の条件に該当しないレコード以降を切り捨て、
前記インデックスファイルに基づき、映像ファイルの中のピクチャーグループを構成する先頭パックの所定位置に所定コードが存在するか否かに基づきピクチャーグループの正常又は異常を判断し、異常と判断されたピクチャーグループ以降を削除し、さらにインデックスファイルの中の異常と判断されたピクチャーグループ以降を指すレコードも削除し、
前記映像ファイルの中の最終のピクチャーグループが所定バイト数の倍数で構成されているか否かを検査し、所定バイト数の倍数ではなく余りが生じる場合には、その余り部分を切り捨て、
前記インデックスファイル及び前記映像ファイルを記録する、
ことを特徴とする映像記録方法。
【請求項４】
記録開始指示の受け取りに基づき記録され、記録停止指示の受け取りに基づきクリアされる記録中を示す情報の存在に基づき、前記インデックスファイル及び前記映像ファイルの両方の末尾の無意味なデータを削除する処理を実行する、
ことを特徴とする請求項３に記載の映像記録方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、映像記録装置及び映像記録方法に関し、特にＭＰＥＧ２エンコードされた映像をハードディスクなどの記録媒体に記録する映像記録装置及び映像記録方法に関する。
【０００２】
【従来の技術】
近年、地上波TV放送をMPEG2エンコードし、ハードディスクやDVD-RAMディスクへ記録する装置が注目を浴びている。これらの機器に映像を記録する場合、ファイルとして記録されるのが一般的であり、OS(Operating System)としてLinuxなどの汎用のOSを使用した場合には、ファイルシステム（ファイルの管理や書込み、読み込みの制御を行なう部分）もOS付属のファイルシステムを用いることになる。
【０００３】
この場合、録画中に停電が発生したりユーザが誤ってACプラグを抜いてしまい強制電源断が発生した場合には、次回の電源投入、OS起動時に、OSのファイルシステムが持つファイル修復機能が働きファイル修復が行われるが、最悪の場合はファイルシステム自体が破壊される場合もありうる。近年のLinuxには、突然の電源断からファイルシステムの不整合や破壊を防ぐ機能を持ったジャーナリングファイルシステムも採用され始めている。
【０００４】
【発明が解決しようとする課題】
しかしながら、上記従来技術においてファイルシステムとして修復機能を持ったジャーナリングファイルシステムを用いた場合でも、保証されるのはファイル管理領域(I-node)の整合性のみであり、ファイルに書き込まれるデータ自体は保証されていない。これは、データそのものまで保証するとファイルシステムの書込み速度などの効率が落ちるためである。
【０００５】
録画中に電源断が発生した場合の録画対象ファイルのデータの概略を図７に示す。図７に示すように、録画開始から電源断発生までに録画された映像データ長、つまり管理領域が示すファイル長のうち、ファイル途中までは正常なデータであるが、ファイル末尾付近にはランダムなデータが書き込まれてしまう。この現象は、ファイルの長さなどを管理している管理領域部分は２重化などを行なうことにより不整合が発生しないようにしているが、ファイルのデータ自体はOSの書込みバッファおよびハードディスクのライトキャッシュ中に含まれるデータの吐き出しは管理領域の書込みより遅延して行われるためである。
【０００６】
また、映像記録装置では、入力映像をMPEG2圧縮した映像ファイルと映像ファイル中のGOP(Group of picture)位置などを保存しているインデックスファイルを同時に書き込んでいる場合が多い。この場合、映像ファイルおよびインデックスファイルの両方のファイル末尾に無意味なデータが存在してしまうことになる。これらのファイルをそのまま再生に用いると、映像ファイルの無意味なデータ部分のデコードは行なえず、記録媒体上の無駄な領域を消費するという問題がある。また、インデックスファイル末尾に無意味なデータが存在すると、ありえないGOP位置を示すことになり再生が全く行なえない可能性もあるなどの問題があった。
【０００７】
本発明は、これらの問題点を解決するものであり、映像ファイル及びこの映像ファイルのインデックスファイルによる記録容量の無駄な消費及びこれらファイルの再生エラーを防止することが可能な映像記録装置及び映像記録方法を提供することにある。
【０００８】
【課題を解決するための手段】
上記課題を解決し目的を達成するために、この発明の映像記録装置及び映像記録方法は、以下のように構成されている。
【０００９】
（１）この発明の映像記録装置は、映像ファイルの検査及び修復を行なう映像ファイル検査修復手段と、前記映像ファイルのインデックス情報を含むインデックスファイルの検査及び修復を行なうインデックスファイル検査修復手段と、前記映像ファイル及び前記インデックスファイルを記録する記録手段とを備えている。
【００１０】
（２）この発明の映像記録方法は、映像ファイル及びこの映像ファイルのインデックス情報を含むインデックスファイルの検査及び修復を行い、前記映像ファイル及び前記インデックスファイルを記録する。
【００１１】
【発明の実施の形態】
以下、図面を参照しながら本実施の形態について説明する。
【００１２】
図１は、この発明の第１の実施形態に係る映像記録装置の概略構成を示す図である。本装置の動作概略は次の通りである。
【００１３】
システム制御部１０２は、ユーザからの指示１０１を受け取るとともに、各部への制御指示１０３を出力する。具体的に言うと、まず、システム制御部１０２は、映像入力選択指示を受け取る。それにより、システム制御部１０２は、各部へ制御指示１０３を出力し、入力映像をチューナからの映像またはライン入力からの映像のどちらかに切り替える。次に、システム制御部１０２は、即ち録画の開始指示を受け取る。システム制御部１０２は、MPEG2エンコーダ１１０及び録画制御部１１１を起動させる。MPEG2エンコーダ部１１０は、チューナ入力あるいはライン入力のうち選択された方の信号を受け取り、MPEG2圧縮を行い後段へ送出する。録画制御部１１１が起動されると、インデックスファイル１１８および映像ファイル１１７がオープンされ、それぞれのファイル名がファイルシステム１２０へ通知される。
【００１４】
図２は、インデックスファイル１１８のデータ構造の一例を示す図である。インデックスファイル１１８は、映像ファイル１１７のインデックス情報を含む。インデックス情報とは、例えばGOP位置を示す情報である。映像ファイル１１７には、MPEG2エンコーダ部１１０から出力されるMPEG2圧縮されたデジタルデータが保存される。録画制御部１１１はMPEG2エンコーダ１１０から送信されるMPEG2圧縮されたデータを受け取り、MPEG2ヘッダを調べ、GOP先頭を検出した場合にはインデックスファイル１１８にファイル先頭からのGOP位置を書き込む。なお、GOP先頭の検出はMPEG2エンコーダ部１１０からの通知によって行っても構わない。GOP先頭の検出如何にかかわらず、MPEG2圧縮データは映像ファイル１１７へ書き込まれる。それぞれのファイル書き込みはファイルシステム１２０を経由して行われる。録画が継続している間はこの処理を継続する。
【００１５】
最後に、システム制御部１０２が、ユーザからの指示１０１、即ち録画停止指示を受け取ると、MPEG2エンコーダ部１１０へエンコード停止、録画制御部１１１へ処理停止を行なう。MPEG2エンコード部１１０はエンコード停止指示を受け取ると、後段へのデータ送信を中止する。録画制御部１１１では、録画停止指示を受け取ると、映像ファイル１１７およびインデックスファイル１１８のクローズを行なう。
【００１６】
この第１の実施形態の映像記録装置は、例えば起動時にシステム制御部１０２により修復処理が行われる。修復処理の概要フローチャートを図３に示す。システム制御部１０２は、記憶している全録画タイトルの映像ファイル名とインデックスファイル名の組を取り出す（ＳＴ１０１）。ここでは、全タイトルの修復は終了していないので（ＳＴ１０２、ＮＯ）、映像ファイル名とインデックスファイル名の組を一つずつ取り出し（ＳＴ１０３）、インデックスファイル修復部１１３、相互修復部１１４、映像ファイル修復部１１５を順にコールする（ＳＴ１０４、ＳＴ１０５、ＳＴ１０６）。この処理を映像ファイル名とインデックスファイル名の組の全てに対して行なう。
【００１７】
まずインデックス修復部１１３が起動される。図４にインデックス修復部１１３の処理フローチャートを示す。例えば、インデックスファイルの各GOPの映像ファイル先頭からのオフセット値は8バイトで格納されているとする。この各々の8バイトをレコードと呼び、インデックスファイル中のそれぞれのレコードの値をindex[0], index[1], ....., index[Ｎ]と表す。なおＮは総レコード長を示す。各レコードの値は、映像ファイル中のGOPの場所を順に格納しているため、単調に増加する。あるレコードの値index[i]よりも次のレコードの値index[i+1]が小さい場合はありえない。まず、インデックス修復部１１３では、インデックスファイルのファイルサイズを取得し、fSizeへ代入する（ＳＴ２０１）。次に、fSize/8の余りを求め（ＳＴ２０２）、0ならば（ＳＴ２０３、ＹＥＳ）、何も行なわないで次に進む。0以外ならば（ＳＴ２０３、ＮＯ）、余りの長さだけインデックスファイルのサイズを切り詰める（ＳＴ２０４）。次に変数Iに0を代入し（ＳＴ２０５）、インデックスファイルより8バイト読み込み、index[0]へ代入する（ＳＴ２０６）。ここからループに入る。インデックスファイルから8バイト読み込み、index[I+1]へ代入する（ＳＴ２０７）。index[I]＜index[I+1]ならば（ＳＴ２０８、ＹＥＳ）、Iを1増やす（ＳＴ２０９）。IがN-1より大きい場合に（ＳＴ２１１、ＮＯ）、ループを抜け終了し、それ以外の場合はループ先頭（ＳＴ２０７）へ戻る。index[I]≧index[I+1]が成立する場合は（ＳＴ２０８、ＮＯ）、異常なデータが書き込まれていると判断し、index[I+1]以降のインデックスファイルを切り捨て（ＳＴ２１０）、修復処理は終了する。インデックス修復部１１３の処理により、インデックスファイルの各レコードは単調増加していることが保証される。
【００１８】
次に相互修復部１１４が起動される。図５に相互修復部１１４の処理フローチャートを示す。本実施例では、簡単のために各pack長は2048バイト固定とし、Pack Hader長も14バイト固定する。さらに、GOPの先頭packには必ずSystem Headerが存在するものとする。この構造をもつ場合、各packを調べて15バイト目から18バイト目までのデータが0x00, 0x00, 0x01, 0xbb(System Header start code)ならばGOP先頭と判断が可能である。まず変数Iに０を代入する（ＳＴ３０１）。ここからループに入る。インデックスファイルから8バイト読み込み（ＳＴ３０２）、index[0]へ代入する。次に映像ファイルを先頭からindex[0]だけseekし（ＳＴ３０３）、1024バイト読み込み、bufferへ代入する（ＳＴ３０４）。Buffer[14] == 0 かつ buffer[15] == 0 かつ buffer[16] == 1 かつ buffer[17] == 0xbb ならば正常GOPと判断し（ＳＴ３０５、ＹＥＳ）、Iを1増やす（ＳＴ３０６）。IがN以上になった場合に（ＳＴ３０７、ＮＯ）、ループを抜け終了し、それ以外の場合は（ＳＴ３０７、ＹＥＳ）、ループ先頭（ＳＴ３０２）へ戻る。Buffer[14] != 0 または buffer[15] != 0 または buffer[16] != 1 または buffer[17] != 0xbbの場合は異常GOPと判断し（ＳＴ３０５、ＮＯ）、映像ファイルのうちindex[I]以降の部分を削除（ＳＴ３０８）、インデックスファイルのI番目以降のレコードを削除し（ＳＴ３０９）、修正処理を終了する。
【００１９】
最後に映像ファイル修復部１１５が起動される。映像ファイル記録部では最終GOPのみ検査が行われ、MPEG2規格に準拠しているかの詳細な確認を行なう。映像ファイル修復部１１５の目的は、上記相互修復部１１４では、GOP先頭部分のみしか確認しないため、最終GOP直前までのGOPについては正当性が保証できるが、最終GOPについてはGOP先頭が存在することしか保証できない。よって、映像ファイル修復部１１５にて最終GOPの検査が必要になる。例えば、最終GOPが2048バイトの倍数(pack長の倍数)かの判断を行い、pack長の倍数でなければ、余り部分を切り捨てる。
【００２０】
映像記録装置において録画実行中に停電などが発生してシステムへの電源供給が絶たれた場合において、既に記録媒体に記録されている映像ファイルおよびインデックスファイルを修復し、壊れた部分および映像ファイルとインデックスファイル間で不整合が発生している部分、不完全なGOPが取り除かれる。これにより、電源断までに録画していたタイトルを出来る限り救うことが出来る。さらに映像ファイルとインデックスファイルの不整合が無くなるため、再生において不具合が発生することも無くなる。また、起動時に録画済の全てのタイトルに対して修復処理が行われるが、この処理により全てのタイトルの整合性が常に保たれることになる。
【００２１】
なおインデックスファイルの形式は、上記説明した形式にとらわれるものではない。映像ファイル中の各GOPの位置が何らかの形式で保存されていれば、上記説明した映像記録装置における修復処理が実現可能である。
【００２２】
以上説明した映像記録装置は、録画実行中に電源断が発生しても、次回起動時に録画中に電源断が発生したことを検出し、録画対象となっていた映像ファイルおよびインデックスファイルに対して、それぞれファイルの単独修復および相互関係の整合性による修復を行い、映像ファイルおよびインデックスファイル中の異常なデータの切捨てを行い、正常に再生可能なファイルにすることができる。
【００２３】
図６は、この発明の第２の実施形態に係る映像記録装置の概略構成を示す図である。本装置の動作概略について、図１に示す映像記録装置と異なる箇所を中心に説明する。
【００２４】
この映像記録装置では、システム制御部１０２がユーザからの録画の開始指示を受け取った場合、システム制御部１０２は、MPEG2エンコーダ１１０の起動、及び録画制御部１１１の起動に加えて、状態記録部１１２へ「録画中」情報を通知する。状態記録部１１２では、システム制御部１１０から受け取った「録画中」情報により、「録画中フラグ」を記録媒体１１６または不揮発性メモリなどに書き込み、電源断でも情報が失われないようにする。
【００２５】
次にユーザからの録画停止指示をシステム制御部１０２が受け取ると、システム制御部１０２は状態記録部１１２へ「録画停止」情報の通知を行なう。状態記録部１１２では、システム制御部１０２からの「録画停止」通知を受け取った場合にのみ録画が正常に終了したと判断し、記録媒体１１６に保持していた「録画中フラグ」をクリアする。このように、「録画中」フラグは、システムで録画を実行している時のみＯＮになっている。
【００２６】
上記の録画中の状態の時に、停電が発生したり、ユーザが誤って電源プラグを抜いたりした場合には、システム全体への電源供給が絶たれるため全てのシステムが停止する。その後、初めて電源が投入され、システムが起動した後、システム制御部１０２は状態制御部１１２に修復の必要性の問い合わせを行なう。システム制御部１０２は、記録媒体１１６または不揮発性メモリに記録している「録画中フラグ」により修復の必要性の可否を判断する。「録画中フラグ」が存在したならば、録画実行中に予期せぬ電源断が発生したと判断して、システム制御部１０２へ修復要の通知と、修復対象のファイル名の通知を行なう。「録画中フラグ」がクリアされていれば、録画は正常に終了しており修復の必要は無いため、システム制御部１０２へ修復不要の通知を行なう。
【００２７】
システム制御部１０２は修復要の通知を受け取った場合には、修復対象のファイルのみファイル修復処理を開始する。図６に示す記録再生装置のファイル修復処理は、図１に示す映像記録再生装置のファイル修復処理と同様であり、再度の説明は省略する。
【００２８】
この第２の実施形態の映像記録装置により、必要な場合のみ修復処理を起動させることが可能になり、システムの起動が迅速に行なえる。
【００２９】
なお、本願発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、各実施形態は可能な限り適宜組み合わせて実施してもよく、その場合組み合わせた効果が得られる。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適当な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【００３０】
【発明の効果】
この発明によれば、映像ファイル及びこの映像ファイルのインデックスファイルによる記録容量の無駄な消費及びこれらファイルの再生エラーを防止することが可能な映像記録装置及び映像記録方法を提供できる。
【図面の簡単な説明】
【図１】この発明の第１の実施形態に係る映像記録装置の概略構成を示すブロック図である。
【図２】インデックスファイルのデータ構造の一例を示す図である。
【図３】映像ファイル及びインデックスファイルの修復処理の概要を示すフローチャートである。
【図４】インデックスファイル修復部によるインデックスファイルの修復処理を示すフローチャートである。
【図５】相互修復部による映像ファイル及びインデックスファイルの修復処理を示すスフローチャートである。
【図６】この発明の第２の実施形態に係る映像記録装置の概略構成を示すブロック図である。
【図７】録画中の電源断の影響を受けた映像ファイルのデータの概略を示す図である。
【符号の説明】
１０２…システム制御部
１１０…MPEGエンコーダ
１１１…録画制御部
１１２…状態記録部
１１３…インデックスファイル修復部
１１４…相互修復部
１１５…映像ファイル修復部
１１６…記録媒体
１２０…ファイルシステム
【図１】
0003984100.tif 000002
【図２】
0003984100.tif 000003
【図３】
0003984100.tif 000004
【図４】
0003984100.tif 000005
【図５】
0003984100.tif 000006
【図６】
0003984100.tif 000007
【図７】
0003984100.tif 000008