従来から、ハードディスク等の磁気ディスクやCD/MO/MD/DVD等のメディアを記録媒体に用いた記録装置において、記録媒体へデータを記録する際にベリファイ作業を行うことによって、記録エラーを低減する方法が広く使われている。特に、光ディスク等の光学記録媒体においては、ディスク上の埃・汚れ・欠陥により記録エラーがしばしば発生する。
リアルタイム性を必要としないデータの記録においては、通常、一度記録したデータを読み込んでエラーを検出し、記録エラーがあった場合は再度記録しなおすといったベリファイ処理によって記録エラーおよび記録エラーによるデータの消失を防止している。
しかしながら、ストリームデータなどのリアルタイム性の要求されるデータの記録では、ベリファイ処理により記録処理が中断すると、その間のデータは記録できずに消失してしまう。
この問題を解決するために、ベリファイ処理のリトライ回数を制限する方法や、一般に記録媒体への転送速度がストリームのビットレートよりも速いため、常に記録媒体への記録処理を行われているわけではなく、記録処理が中断している期間が存在することを利用し、この期間にのみベリファイ処理を行う方法が知られている(例えば、特許文献1参照)。
一方、ビットストリームに多少のエラーが含まれる程度では、再生画像にブロックノイズが発生する程度であり、視聴上の支障は少ないと言えることから、リアルタイムにデータの記録を行うために、ベリファイ処理を行わない方法がある。
高ビットレートのストリームデータをリアルタイム記録する場合や、高速ダビング時に有効であるため、DVD−RAMドライブなどで広く採用されている。この方法においても、アドレス検出エラーや制御エラー等の記録エラーの検出が行えるため、信頼性が大きく低下することはない。
ベリファイ処理を行わないことで、高速にリアルタイムデータの記録が行えるが、万一アドレス検出エラー等の記録エラーが発生した場合には、やはりエラー処理のため記録処理が中断し、記録されずに消失するデータがでてしまう。
この問題点について、図10に基づいて具体的に説明する。図10は、従来技術における記録エラーの発生を示す概略図である。
図示のように、ストリームデータは、バッファ12に転送され、バッファ12上に記憶されたデータが所定の量を超えた場合、記録媒体12に記録される。通常、記録媒体14への転送速度はストリームのビットレートよりも早いため、実際に記録媒体14へ記録するのに要する時間はバッファ12に蓄積される時間よりも短い。データ記録装置は、時刻t1に記録エラーを検出した場合、ストリームデータの転送を停止する。
光ディスクのような記録媒体において、ディスクの欠陥があった場合、記録エラーが発生した周辺において、記録および再生に非常に失敗しやすい状態になっている。多少のエラーでは視聴上の支障は少ないが、連続してエラーが発生するとデコーダが正常に動作しなくなり再生が継続できなくなることがある。そのため、エラー発生位置より前に記録したデータを再生して正常に記録できているか否かを確かめるベリファイを行い、正常記録できている箇所まで遡ってデータを削除する。
エラー処理の完了後、時刻t2においてストリームデータの転送が再開される。そのため、削除されたデータ区間に加え、エラー処理のための転送中断中のストリームデータも消失してしまう。
ここで、光ディスクなどの記録媒体に対し、従来、どのようなデータ単位でデータが記録されるかについて、図11および図12に基づいて説明する。
図11は、従来技術における光ディスクなどの記録媒体上に記録されたデータを示す概念図である。
図示のように、記録媒体14には、データがECC(Error Correcting Code)ブロック61の単位で書き込まれる。ECCブロック61は、セクタ71によって構成されている。セクタ71は、それぞれ、2048byteで構成され、誤り訂正を行うために、32セクタで1つのECCブロック61を構成している。
ECCとは、プレマスタリングの際に、データを暗号化し、冗長データをディスクメディア上に記録するシステムである。該冗長データは再生時に利用され、データの転送中に発生するエラーを検出し、訂正するために使用される。
ECCブロックとは、光ディスクなどの記録媒体に書き込むための最小単位であり、エラー訂正をより強固なものにするため、16セクタを1ECCブロックとする技術が広く使用されている。本発明では、32セクタを1つのECCブロック61とし、ECCブロック61単位で記録媒体に記録するものとする。
図12は、従来技術における記録媒体に記録したGOP(Group Of Picture)61およびECC71の対応関係を示す概念図である。
GOPとは、MPEG−1およびMPEG−2において定められている映像の符号化アルゴリズムであり、圧縮および再生ならびに編集を行う際の単位となる映像信号の数フレームずつの組み合わせを意味する。
GOP71は、それぞれ、記録媒体上への記録単位であるECC61にまたがって記録媒体に記録される。
MPEG(Moving Picture Experts Group)を用いた圧縮画像ではGOPを単位としてランダムアクセスが可能となり、MPEG−2ではフィールド単位でのアクセスも可能となる。
入力信号をそのまま符号化するフレーム内符号化フレームであるIピクチャ(Intra−coded Picture)、双方向予測を用いるフレーム間符号化フレームであるPピクチャ(Predictive−coded Picture)、一方向の動き補償予測を用いるフレーム内挿符号化フレームであるBピクチャ(Bidirectinally predictive−coded Picture)をまとめたものがGOPと呼ばれる符号化の単位となる。
ストリーム管理情報としてGOPの先頭位置を記録しておくことによって、デコード可能なデータに高速にアクセスして再生することが可能になる。
また、MPEG−2では、ストリームデータに該当フレームを表示する時間情報PTS(Presentation Time Stamp)がフレーム毎に付加されている。
PTSをストリーム管理情報として記録しておくことによって、ストリームデータの所望の時間から再生するためにアクセスすることが可能になる。
ストリームデータが記録の一時停止などの原因で分断される場合、PTSの基準時間が不連続となり、ストリームデータのデコード処理が正常に行われないことがある。デコードを正常におこなうために、データが不連続であることを示す情報が必要となる。
以上のことを踏まえて、供給されるストリームデータをバッファリングし、バッファ上のストリームデータを読み出して記録媒体に記録する記録装置において、該記録媒体に記録したストリームデータを読み出して記録エラーを検出するに際に、記録エラーを検出して記録媒体への記録を中断した場合、バッファリングされたストリームデータを消去し、ストリームデータのバッファリングを新たに開始して記録を継続すると共に、データが不連続であることを示すフラグを記録することで、再生時も正常に復号が行うことができる方法が提案されている(例えば、特許文献2参照)。
特開平11−53845号公報(公開日平成11年2月26日)
特開2002−185921号公報(公開日平成14年6月28日)
[実施形態1]
本発明の一実施形態について図1〜図9に基づいて説明すると以下の通りである。
図1は、本発明の一実施形態を示すもので、データ記録装置の各部の概略構成を示すブロック図である。
本実施形態の記録装置10は、バッファ12、記録媒体14、メモリ16、データ入力部18、ストリーム制御部20、記録制御部30、および、管理情報制御部40を備えている。
バッファ12は、入力されたストリームデータを一時記憶し、記録制御部30を介して記録媒体14に記録するための高速なメモリで、例えば、FIFO(First In First Out)方式のメモリである。
なお、本実施形態において、ストリームデータとは、リアルタイム性の高い映像(動画)の、途切れなく流れるように転送される一続きのデータを指すものとする。
記録媒体14は、例えば、ハードディスク等の磁気ディスクやCD/MO/MD/DVD等のメディアを用いた記録媒体である。記録媒体14には、ストリームデータを記録したストリームファイル、ストリーム管理情報データを記録したストリーム管理情報ファイル、および、上記のファイルの位置およびサイズの情報を含むファイル管理情報(いわゆるTOC)のデータが記録される。
メモリ16は、ストリーム管理情報、エラー管理情報、記録媒体14上に記録された各ファイルの位置およびサイズの情報を含むファイル管理情報、および、その他の情報を一時記憶するためのものである。
なお、本実施形態において、関連するストリームデータ、ストリーム管理データ、エラー管理データのセットをタイトル呼び、同じセットに含まれるデータ同士を、同一タイトルと呼ぶものとする。
ストリーム管理情報は、対応するストリームデータの再生をスムーズに行うための情報であり、例えば、ファイル先頭からのパケット番号で示されるストリームデータのGOP先頭位置情報、総パケット数、ストリームデータに含まれるエレメンタリーストリームの情報、および、その他のストリーム情報などを含んでいる。
エラー管理情報は、記録エラーが発生した場合に記録エラーの発生状況を示す情報であり、エラー発生を識別するエラー発生フラグ、エラーが発生したストリームファイルを識別する識別子、エラーの発生によって複数のファイルに分けて記録されたストリームファイルを識別する識別子を含んでいる。上記の他、タイトル名、記録開始時間、再生時間長、再生開始および再生終了を示す表示時間(プレゼンテーションタイム)情報、ストリーム管理情報の識別子、ストリームファイル上のエラー発生位置、および、その他の情報を含んでもよい。
なお、ストリーム管理情報データおよびエラー管理データの対応関係について、詳細は後述する。
データ入力部18は、外部と接続し、音声や映像などのストリームデータを入力するためのものである。
ストリーム制御部20は、データ入力部18から受け取ったストリームデータを解析してストリームデータおよびストリーム解析データを作成し、ストリームデータをバッファ12へ転送するとともに、ストリーム解析データを管理情報制御部40へ転送する。バッファ12にストリームデータが所定量蓄積された場合、ストリーム制御部20は、ストリームデータを記録制御部30に転送する。ストリーム制御部20はストリーム解析部22とバッファ監視部24とを含んでいる。
ストリーム解析部22は、入力されたストリームデータを解析し、管理情報制御部40へ転送するためのものである。ストリーム解析部22は、圧縮符号化されたストリームデータの解析を行い、例えば、MPEG−2(Moving Picture Image Coding Expert Group−2)により符号化された動画データでは、GOP開始位置、GOP先頭フレームの表示時間情報(PTS)、および、その他のストリーム情報を解析して、ストリーム解析データを生成する。
バッファ監視部24は、バッファ12を監視し、バッファ12に一時記憶されたストリームデータが所定の量に達した場合、バッファ12に一時記憶されたストリームデータを記録制御部30に転送する指示を出すためのものである。
記録制御部30は、バッファ12から転送されたストリームデータならびにメモリ16から転送されたストリーム管理情報、エラー管理情報、および、ファイル管理情報を含む各種の管理情報データを記録媒体14に記録するためのものである。記録制御部30は、記録エラー検出部32と、データ記録部34とを含んでいる。
記録エラー検出部32は、記録媒体14への記録処理を監視し、記録エラーが発生した場合、エラー発生を伝えるエラー検出信号をストリーム制御部20、管理情報制御部40、および、データ記録部34に送信するためのものである。
データ記録部34は、バッファ12から転送されてきたストリームデータおよびメモリ16から転送されてきた管理情報データを記録媒体14に記録するためのものである。データ記録部34は、記録エラー検出部32によってエラー検出信号が送信された場合、現在記録を行っているストリームファイルの記録を中断し、現在受信しているストリームデータを新たなストリームファイルとして記録媒体14に記録し、新たなストリームファイルの記録媒体14上の記録位置データを管理情報生成部41に通知する処理を行う。
管理情報制御部40は、ストリーム解析部22から受け取ったストリーム解析データおよび記録制御部30から受け取ったエラー検出信号および記録位置データを処理し、管理情報としてメモリ16に転送するためのものである。管理情報制御部40は、管理情報生成部42と、エラー修復部44とを含んでいる。
管理情報生成部42は、ストリーム解析部22からのストリーム解析データをもとにストリーム管理情報を生成する。また、管理情報生成部42は、記録エラー検出部32からのエラー検出信号およびデータ記録部34からの記録位置データをもとにエラー管理情報を生成する。生成したストリーム管理情報およびエラー管理情報は、メモリ16に転送される。なお、管理情報生成部42は、上記の受け取ったデータをもとに記録媒体14のファイル管理情報を作成してもよい。
エラー修復部44は、メモリ16に一時記憶されたストリーム管理情報およびエラー管理情報をもとに、記録媒体14に記録されたストリームファイルおよび記録媒体14のファイル管理情報を修正するためのものである。なお、エラー修復処理については、詳細は後述する。
次に、本実施形態で用いる各データファイルの詳細について、図2〜3を参照して説明する。
図2は、本実施形態におけるストリームデータ、管理情報データ、エラー管理データ、および、各データを記録したファイル群50の関係を示す概略図である。
本実施形態では、エラー管理データとして、以下で詳細を説明するプレイリストファイルを用いるものとする。
ストリームファイルS1〜S3には、それぞれ、ストリームデータDATA1〜DATA3が記録されている。
ストリーム管理情報ファイルM1〜M3には、対応するストリームファイルS1〜S3を識別する識別子I1〜I3と、ストリーム再生開始の表示時間(PTS)を示すデータIN1〜IN3と、再生終了の表示時間(PTS)を示すデータOUT1〜OUT3とを含み、さらに、ストリームファイルをスムーズに再生するためのファイル先頭からのパケット番号で示されるストリームデータのGOP先頭位置情報、GOP先頭フレームの表示時間情報(PTS)、総パケット数、ストリームデータに含まれるエレメンタリーストリームの情報、および、その他のストリーム情報が記録されている。
なお、上述のストリーム再生開始の表示時間情報IN1〜IN3および再生終了の表示時間OUT1〜OUT3は、ストリームデータを連続に記録するものとして単一の再生開始の表示時間情報および再生終了の表示時間情報のデータで示したが、ストリームデータが不連続に記録する場合は不連続な領域ごとに再生開始の表示時間情報および再生終了の表示時間情報のデータが必要となる。
プレイリストファイル(エラー管理データ)P1〜P3は、対応する管理情報ファイルM1〜M3を識別する管理情報ファイル識別子I1〜I3およびエラー発生フラグERROR1〜ERROR3が記録されている。本実施形態では、I1=M1,P2、ERROR1=TRUE、I2=M2,P1、ERROR2=FALSE、I3=M3、ERROR3=FALSEとなっている。
上記各データを記録したファイル群50は、P1・M1・S1がタイトル1を、P2・M2・S2がタイトル2を、P3・M3・S3がタイトル3をそれぞれ形成している。
なお、一連の記録データ(タイトル)であることを示すタイトル名TITLE1〜TITLE3、一連の記録データ(タイトル)の記録開始時刻TIME1〜TIME3、一連の記録データ(タイトル)の合計再生時間SIZE1〜SIZE3、ストリーム再生開始の表示時間情報(PTS)IN1〜IN3および再生終了の表示時間情報(PTS)OUT1〜OUT3、および、その他の付加情報をプレイリストファイルに記録してもよい。
ストリームファイルS1’、ストリーム管理情報ファイルM1’、および、プレイリストファイルP1’は、エラー修復処理をおこなったS1、M1、および、P1それぞれのデータである。分断されたストリームファイルS1およびS2は、プレイリストファイルP1に記録された管理情報ファイル識別子I1=M1,P2およびエラー発生フラグERROR1=TRUE、プレイリストファイルP2に記録された管理情報ファイル識別子I2=M2,P1にもとづき、ストリーム管理情報ファイルM2をプレイリストP1に関連付けるエラー修復処理を行い、プレイリストP2自体は削除される。
エラー修復処理の詳細については、後述する。エラー修復処理によって、プレイリストファイルP1には管理情報ファイルM1およびM2が関連付けられる。ストリームファイルS1、ストリーム管理情報ファイルM1、および、プレイリストファイルP1は、S1’、M1’、および、P1’に更新され、プレイリストファイルP2は削除される。
エラー修復処理が完了すると、P1’・M1’・S1’・M2・S2が同一タイトルとなる。
次に、本実施形態で行う各処理および全体の処理の流れについて、図3〜図7を参照して説明する。
図3は、本実施形態における記録エラー発生時の記録処理を示す概略図である。
下段のストリームデータd1〜d25は、バッファ12に転送されるストリームデータである。
バッファ12は、ストリームデータd6〜d13に相当する8個分のデータを一時記憶するだけのサイズを持つものとする。
実線で示されたストリームデータd1〜d15は、時刻t3までにバッファ12に実際に転送されたストリームデータを示し、破線で示されたストリームデータd16〜d25はこれからバッファに転送される予定のストリームデータを示す。
上段のストリームデータe1〜e24は、記録媒体14に記録されるストリームデータである。
実線で示されたストリームデータe1〜e12、e14は、時刻t3までに記録媒体14に実際に記録されたストリームデータを示し、点線でしめされたストリームデータe15〜e24はこれから記録媒体に記録される予定のストリームデータを示す。
データ入力部18から入力されたストリームデータは、バッファ12に一時記憶され、バッファ12上に記憶されたストリームデータが所定の量を超えた場合、記録媒体12に記録される。
今、時刻t1において、ストリームデータe12を記録中に記録エラーが発生したものとする。このとき、データ入力部18からバッファ12へのストリームデータの一時記録を停止すると共に、バッファ12から記録媒体14へのストリームデータの転送を一時停止し、ストリームデータd13は転送されない。
本実施形態では、記録エラー発生時にはベリファイ処理やエラー修復処理を行わずにエラー発生情報をメモリ16に記録し、エラー復帰処理を短時間で終了して、記録処理に戻る。
時刻t2においてエラー復帰処理が終了した場合、データ入力部18からバッファ12へのデータの一時記録を再開し、ストリームデータd14がバッファ12に一時記録されると、ストリームデータd14を起点にバッファ12から記録媒体14へのデータの転送を再開し、ストリームデータe14を記録媒体へ記録する。
最終的に、一連のストリームデータの転送後に行われるエラー修復処理によって、再生ができないストリームデータe11〜e12は削除され、バッファ12上のストリームデータd11〜d13に相当するストリームデータが消失する。
以上のように、エラー復帰処理を短時間で終了することで、エラー復帰処理に費やす時間を短縮し、データの消失を低減する。
図4は、本実施形態における記録処理の流れを示すフロー図である。
まず、記録処理が開始されると、管理情報制御部40において管理情報をメモリ16に記録する準備が行われる(S401)。具体的には、記録媒体14上にストリームファイルを新規作成し、メモリ16上にストリームファイルのファイル管理情報、ストリーム管理情報、および、エラー管理情報を新規作成する。
次に、信号入力部18より入力されたストリームデータは、ストリーム解析部22で解析され、バッファ12に転送される(S402)。
また、ストリーム解析部22で解析されたストリーム解析データをもとに、管理情報生成部42はストリーム管理情報を作成し、メモリ16の一時記録領域に転送して更新する(S403)。
次に、バッファ監視部24は、バッファ12に転送されたストリームデータが所定量に達しているか監視し(S404)、所定量に達している場合、バッファ12に蓄積されたストリームデータは記録制御部205に所定量転送される(S405)。バッファ12に蓄積されたストリームデータが所定量に達しない場合、S402に戻ってストリームデータの転送を続行する。
記録制御部30に転送されたストリームデータは、データ記録部34によって記憶媒体14に記録される。このとき、記録エラー検出部32によって記録エラーの発生を監視し(S406)、記録エラーが検出された場合、エラー復帰処理が行われ(S410)、その後、S402に戻ってストリームデータの転送を続行する。
記録エラーが発生しなかった場合、管理情報生成部42はメモリ16の作業領域に格納されているストリーム管理情報、ファイル管理情報のうち記録媒体14への記録が完了した分の情報を確定し、メモリ16の作業領域とは別の記憶領域へ転送する(S407)。
その後、記録処理を停止するか判断し(S408)、停止する場合は録画停止処理を行って(S409)、記録処理を終了する。記録処理を停止しない場合、S402に戻ってストリームデータの転送を続行する。
なお、確定された各管理情報ファイルの記録媒体14への記録は、記録停止時に行ってもよいが、記録媒体14のメディア排出指示があった場合や、記録装置10の電源OFF指示があった場合に行ってもよい。
次に、本実施形態におけるエラー復帰処理の手順について説明する。
図5は、本実施形態におけるエラー復帰処理の流れを示すフロー図であり、図4のS410にあたる。
記録エラー検出部32が記録エラーを検出すると、図5に示すエラー復帰処理が開始される。
記録エラー検出部32からエラー検出信号がストリーム制御部20および管理情報生成部に送信され、ストリーム制御部20はストリームデータの転送を停止する(S501)。
データ記録部34は記録媒体14に現在記録しているストリームファイルを終了するための処理を行う。管理情報生成部42は、記録していたストリームファイルに対応する分のストリーム管理情報およびファイル管理情報を作成し、各管理情報の確定を行う(S502)。
各管理情報が確定された後、終了した古いストリームファイルおよび新たに作成するストリームファイルがエラーによって分断された連続するデータであることをエラー管理情報に記録する(S503)。具体的には、図2に示されるように、エラー管理情報である対応するプレイリストファイル内のエラー発生フラグをTRUEにし、管理情報ファイル識別子部分にエラー発生ファイルの識別子として、連続するストリーム管理情報を指し示すエラー管理情報識別子を追加する。
上記の処理の後に、新たに作成されたストリームファイルのエラー管理情報ファイルであるプレイリストファイルを、上記メモリ16上に新たに作成し、新たに作成するストリームファイルおよびストリーム管理情報と対応付ける(S504)。
その後、バッファ12の記録ポインタをバッファ12の先頭に移し(S505)、ストリーム制御部20は、ストリームデータのバッファ12への転送を再開する(S506)。ストリームデータは、新たに作成したストリームファイルに記録される。
次に、本実施形態における記録停止処理の手順について説明する。
図6は、本実施形態における記録停止処理の流れを示すフロー図であり、図4のS409にあたる。
記録停止処理が開始されると、ストリーム制御部20は、ストリームデータのバッファ12への転送を停止し(S601)、バッファ12に残ったストリームデータを記録制御部30に転送し、記録制御部30が記録媒体14に記録する(S602)。
管理情報生成部42は、記録中のタイトルに対応するストリーム管理情報、エラー管理情報、および、ファイル管理情報を更新して管理情報の確定処理を行う(S603)。確定した管理情報は、管理情報制御部40によってメモリ16上に転送される。
管理情報制御部40は、さらに、メモリ16上に一時記憶されているエラー管理情報を参照し、エラー発生フラグをチェックする(S604)。エラー発生フラグ=TRUEのエラー管理情報が存在しない場合、記録停止処理はそのまま終了する。エラー発生フラグ=TRUEのエラー管理情報が1つでもあった場合、記録エラー修復処理を行う(S605)。
図7は、本実施形態におけるエラー修復処理の流れを示すフロー図である。
エラー修復処理が開始されると、エラー修復部44は、記録制御部30を通じて記録媒体14上の修復処理を行うストリームデータの初期再生位置を決定する(S701)。
初期再生位置は、エラー発生地点よりも前の位置で、符号化されたデータを復号するために必要な情報が揃った、ランダムアクセス可能なデータ単位(例えば、GOP)である。
また、ECCブロック71のデータ単位で書き込みを行う記録媒体であれば、ECCブロック71のデータ単位で削除する量を決定しなければならない。上記単位で初期値を時系列に沿って逆にたどり、再生可能な初期位置を決定するまでさかのぼって確認する(図12参照)。
上記方法による時系列逆順の検索によって、エラー修正を行うストリームファイルの先頭まで戻った場合、該ストリームデータに再生可能な部分は存在しないため、S708のタイトルの削除処理に進む。まだ、ストリームファイルの先頭まで戻っていない場合、エラー修復部44は、記録媒体14から上記戻った位置から所定量(例えば、1ブロック分)のストリームデータをメモリ16に転送し(S703)、転送したストリームデータが再生可能な正しいデータであるかどうか判断する(S704)。
上記戻った位置からのストリームデータの再生が可能でなかった場合、再生位置をさらに時系列逆順にさかのぼり(S707)、S702〜S704の処理に戻る。上記ストリームデータが再生可能な正しいデータであった場合、上記戻った位置から最後までのストリームデータを削除する(S705)。
上記の処理で削除したストリームデータに対応するストリーム管理情報についても、同様に削除処理を行う(S706)。ここで、エラー修復処理を確定し、エラー修復処理を行ったストリームファイルに対応する同一タイトルのエラー管理情報のエラー発生フラグをFALSEに変更する。
その後、エラー管理情報をチェックし、エラー発生フラグがTRUEになっている全てのストリームデータに対して修復作業が完了したか、判断を行う(S709)。まだ、エラー発生フラグがTRUEになっているエラー管理情報が残っている場合、次のエラー管理情報に移って(S711)、S701に戻り、対応するストリームファイルの修復処理を同様に続行する。
全てのエラー管理情報のエラー発生フラグがFALSEであった場合、管理情報ファイル識別子が2つ以上存在するプレイリストファイルに対して、連続する同一タイトルのストリームデータならびにストリーム管理情報を結合する処理を行う(S710)。
具体的には、同一タイトルのストリームデータおよびストリーム管理情報を連続して再生できるように、1つのエラー管理情報に一連のストリームデータおよびストリーム管理情報の識別子を追加し、追加した分のエラー管理情報を削除する(図2のP1’を参照)。
以上の手順で、エラー修復処理を終了する。
図8は、本実施形態におけるストリームファイル、管理情報ファイル、および、エラー管理情報であるプレイリストファイルが、エラー修復処理により変更される様子を示す概略図である。
ストリームファイルS1は、時刻Tstartで記録を開始し、ある時点でエラーが発生し、時刻T1においてエラーを検出し、ストリームデータの記録を停止する。
ストリーム管理情報ファイルM1は、時刻TstartにおいてストリームファイルS1と同時に更新を開始し、時刻T1において記録を停止するまで更新を続ける。
プレイリストファイルP1は、ストリーム管理情報ファイルM1と同時に作成され、対応する管理情報ファイルを示す識別子I1に上記ストリーム管理情報のファイル名M1が記憶される。
時刻Terrorにおいてエラーが発生したとき、ストリームファイルS1および管理情報ファイルM1のエラー修復処理はおこなわずに、プレイリストファイルP1のエラー発生フラグERROR1をTRUEにする。また、新しいストリームファイルS2がストリームファイルS1と連続するデータであることを識別するために、管理情報ファイル識別子I1にプレイリストファイルP2の識別子を追加する。
その後、新しいストリームファイルS2、新しいストリーム管理情報ファイルM2、新しいプレイリストファイルP2を作成し、ストリームデータの記録を続行する。
ストリームファイルS2は、時刻T2において新たなファイルとして記録を再開され、時刻Tendにおいて記録を終了する。
ストリーム管理情報ファイルM2は、時刻T2においてストリームファイルS2と同時に新たなファイルとして更新を再開し、時刻Tendにおいて記録を停止するまで同様に更新を続ける。
プレイリストファイルP2は、ストリーム管理情報ファイルM2と同時に作成され、対応する管理情報ファイルを示す識別子I2に上記ストリーム管理情報のファイル名M2およびエラーが発生する前に記録していたプレイリストファイルのファイル名P1が記録され、エラー発生フラグERROR2にFALSEを記録する。
時刻Tendにおいて一連の記録が終了し、ストリームファイルS1およびS2に対応するストリーム管理情報データM1およびM2が確定される。このとき、記録エラーが発生したストリームファイルS1およびストリーム管理情報ファイルM1のエラー修復処理は未だ行われていない。
以上がストリームデータ記録時の各ファイルの記録内容である。
次に、ストリームデータの記録終了後に、記録エラー修復処理を行う場合の各データの変化について説明する。
エラー修復処理において、エラー発生フラグがTRUEであるプレイリストファイルが検出される。ストリームファイルS1の末尾にエラーがあると判断し、エラー修復処理を行う。ストリームファイルS1の末尾から正常に再生可能であるデータにたどり着くまでECCブロック71単位でさかのぼる。
正常に再生できた所定の量だけデータを削除し(S1’)、対応するストリーム管理情報ファイルM1内のストリーム管理情報データを更新する(M1’)。さらに、プレイリストファイルP1のエラー発生フラグERROR1をFALSEに更新する。
なお、削除する所定の量は、GOPの情報をもとにECC単位で決定することが望ましい。また、ストリームファイルS1およびS1’、ストリーム管理情報ファイルM1およびM1’は、そのデータ内容のみが違うものであり、同一のファイルを指す。
ストリームファイルS1’および管理情報ファイルM1’への更新終了後、プレイリストファイルP1の管理情報ファイル識別子I1に記録されたファイル名から、プレイリストファイルP2を参照し、プレイリストP2の管理情報ファイル識別子I2から、ストリームファイルS1ならびにストリームファイルS2がエラーによって分断された連続するストリームデータであることを認識する。プレイリストファイルP1の管理情報ファイル識別子I1をM1’+M2に更新し(P1’)、プレイリストファイルP2を削除する。上記処理によって、プレイリストファイルP1’のみでストリームデータS1’およびS2と、ストリーム管理情報ファイルM1’およびM2とが連続して再生する同一のタイトルであることを示すことができる。
なお、本実施形態では、エラーが発生したエラー管理データのみエラーフラグをTUREにし、連続するデータであることを識別するための管理情報ファイル識別子を用いて関連付けたが、データの安全性を高めるために、エラー発生時に記録していたファイルと、エラー発生後に新たに作成したファイルとの両方のエラー管理データにおいて、エラーフラグをTRUEにしてもよい。この場合、連続したタイトルの最後のタイトルは、エラーは発生していないため、ファイル終端のエラー部分の削除処理は不要である。
また、本実施形態では、管理情報ファイル識別子にプレイリストファイル名を追加で記録することで連続するデータであることを関連付けたが、管理情報データの内容やタイトル名を参照して連続するデータであること、すなわち、同一タイトルであることを識別してもよい。
また、本実施形態では、プレイリストファイルをエラー管理情報ファイルとして用いたが、これに限らず、エラーが発生したタイトルおよびエラーが発生した場所を記録したエラーテーブルをエラー管理情報ファイルとしてメモリ上に作成してもよい。
なお、本実施形態において、ストリームデータとは、映像(動画)の、途切れなく流れるように転送される一続きのデータを指すものとしたが、映像のない音声のみのデータであってもよいし、映像および音声を含むデータであってもよい。
[実施形態2]
次に、本発明の別の実施形態について図9に基づいて説明する。本実施形態のストリームデータ記録方法は、図3に示されるストリームデータ記録方法に比べて、新たなファイルへ記録するストリームデータが異なり、その他の構成は同様である。なお、上記実施形態で説明した構成と同様の機能を有する構成には同一の符号を付して、その説明を省略する。
図9は、本実施形態における記録エラー発生時の記録処理を示す概略図である。
下段のストリームデータd1〜d25は、バッファ12に転送されるストリームデータである。
バッファ12は、ストリームデータd7〜d14に相当する8個分のデータを一時記憶するだけのサイズを持つものとする。
実線で示されたストリームデータd1〜d14は、バッファ12に実際に転送されたストリームデータを示し、点線で示されたストリームデータd16〜d25はこれから転送される予定のストリームデータを示す。
上段のストリームデータe1〜e22は、記録媒体14に記録されるストリームデータである。
実線で示されたストリームデータe1〜e12は、記録媒体14に実際に記録されたストリームデータを示し、点線でしめされたストリームデータe12〜e22はこれから記録される予定のストリームデータを示す。
今、時刻t1において、ストリームデータe12を記録中に記録エラーが発生したものとする。このとき、バッファ12から記録媒体14へのストリームデータの転送を一時停止し、ストリームデータd13は転送されない。ここで、データ入力部18からバッファ12へのストリームデータの一時記録は停止しないで記録を継続する。
本実施形態では、記録エラー発生時にはベリファイ処理やエラー修復処理を行わずにエラー発生情報をメモリ16に記録し、エラー復帰処理を短時間で終了して、記録処理に戻る。
時刻t1において、エラー復帰処理を短時間で終了し、新たなストリームファイルとしてストリームデータを記録媒体14に記録する処理を再開する。その際、エラーが発生したストリームデータe12よりも前のストリームデータe11に対応するストリームデータが、バッファ12から記録媒体14に転送される。
図示の例では、新たなストリームファイルの作成にあたり、バッファ12上に残っているe11に対応するストリームデータd11を先頭にd12、d13……とストリームデータを記録媒体14に転送する。これによって、記録エラーが発生して失われるストリームデータに対応するストリームデータであって、バッファ上に保存されているストリームデータを記録媒体14に再送することで、記録エラー修復処理の際、消失するデータを減少し、理想的には消失するデータを0とすることが可能になる。
なお、再送するストリームデータは1つ前のブロックには限らず、バッファサイズの許す範囲でさらに前のストリームデータから再送してもよい。
また、上記実施形態に示すデータ記録方法を用いる場合、エラーが発生したストリームファイルと新たに作成したストリームファイルとのデータの重複を避けるために、再送によって記録したストリームデータのブロック情報をエラー管理情報(プレイリストファイル)等に記録しておくことが望ましい。該情報を参照しエラー修復処理を行うことで、重複するデータの存在しないストリームファイルをエラー修復によって実現することができる。
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
例えば、上記実施形態のデータ記録装置の各部や各処理ステップは、CPUなどの演算手段が、ROM(Read Only Memory)やRAMなどの記憶手段に記憶されたプログラムを実行し、キーボードなどの入力手段、ディスプレイなどの出力手段、あるいは、インターフェース回路などの通信手段を制御することにより実現することができる。したがって、これらの手段を有するコンピュータが、上記プログラムを記録した記録媒体を読み取り、当該プログラムを実行するだけで、上記データ記録装置の各種機能および各種処理を実現することができる。また、上記プログラムをリムーバブルな記録媒体に記録することにより、任意のコンピュータ上で上記の各種機能および各種処理を実現することができる。
この記録媒体としては、マイクロコンピュータで処理を行うために図示しないメモリ、例えばROMのようなものがプログラムメディアであっても良いし、また、図示していないが外部記憶装置としてプログラム読み取り装置が設けられ、そこに記録媒体を挿入することにより読み取り可能なプログラムメディアであっても良い。
また、何れの場合でも、格納されているプログラムは、マイクロプロセッサがアクセスして実行される構成であることが好ましい。さらに、プログラムを読み出し、読み出されたプログラムは、マイクロコンピュータのプログラム記憶エリアにダウンロードされて、そのプログラムが実行される方式であることが好ましい。なお、このダウンロード用のプログラムは予め本体装置に格納されているものとする。
また、上記プログラムメディアとしては、本体と分離可能に構成される記録媒体であり、磁気テープやカセットテープ等のテープ系、フレキシブルディスクやハードディスク等の磁気ディスクやCD/MO/MD/DVD等のディスクのディスク系、ICカード(メモリカードを含む)等のカード系、あるいはマスクROM、EPROM(Erasable Programmable Read Only Memory)、EEPROM(Electrically Erasable Programmable Read Only Memory)、フラッシュROM等による半導体メモリを含めた固定的にプログラムを担持する記録媒体等がある。
また、インターネットを含む通信ネットワークを接続可能なシステム構成であれば、通信ネットワークからプログラムをダウンロードするように流動的にプログラムを担持する記録媒体であることが好ましい。
さらに、このように通信ネットワークからプログラムをダウンロードする場合には、そのダウンロード用のプログラムは予め本体装置に格納しておくか、あるいは別な記録媒体からインストールされるものであることが好ましい。