(57)【特許請求の範囲】
【請求項１】
ビデオデータを所定の記録単位で情報記録媒体に記録するデータ記録装置において、
連続するフレームで構成されるフレーム列毎にフレーム列識別情報を割り当てるとともに、前記フレーム列毎に、前記フレーム列の先頭フレームの前に隣接する不完全なフレームデータの長さを表すリーディングデータ情報、前記フレーム列の終端フレームの後に隣接する不完全なフレームデータの長さを表すトレーリングデータ情報、前記フレーム列の先頭のフレームを表す第１の情報、および前記フレーム列を構成するフレームの数を表す第２の情報を得る制御部と、
前記フレーム列識別情報に対応して、前記リーディングデータ情報、前記トレーリングデータ情報、前記第１の情報、および前記第２の情報を前記情報記録媒体に記録する記録部と
を備えることを特徴とするデータ記録装置。
【請求項２】
前記リーディングデータ情報の先頭と、前記トレーリングデータの終端は、セクタの境界に一致する
ことを特徴とする請求項１に記載のデータ記録装置。
【請求項３】
前記ビデオデータは、全てのフレームがフレーム内符号化されたデータである
ことを特徴とする請求項２に記載のデータ記録装置。
【請求項４】
前記ビデオデータは、全てのフレームが固定のデータ量とされているデータである
ことを特徴とする請求項２に記載のデータ記録装置。
【請求項５】
前記連続するフレームは、フレーム番号が連続するフレームである
ことを特徴とする請求項２に記載のデータ記録装置。
【請求項６】
前記連続するフレームは、再生時間が連続するフレームである
ことを特徴とする請求項２に記載のデータ記録装置。
【請求項７】
前記第１の情報と前記第２の情報は、前記フレーム列の先頭のフレームのフレーム番号を表わすオフセット番号と、前記フレーム列を構成するフレームの数を表わすフレーム数である
ことを特徴とする請求項２に記載のデータ記録装置。
【請求項８】
前記第１の情報と前記第２の情報は、前記フレーム列の先頭のフレームのフレーム番号を表わす再生開始フレーム番号と、前記フレーム列の最後のフレームのフレーム番号を表わす再生終了フレーム番号である
ことを特徴とする請求項２に記載のデータ記録装置。
【請求項９】
前記第１の情報と前記第２の情報は、前記フレーム列の先頭と最後のフレームを表わすオフセット再生開始時間とオフセット再生終了時間である
ことを特徴とする請求項２に記載のデータ記録装置。
【請求項１０】
ビデオデータを所定の記録単位で情報記録媒体に記録するデータ記録装置のデータ記録方法において、
連続するフレームで構成されるフレーム列毎にフレーム列識別情報を割り当て、
前記フレーム列の先頭フレームの前に隣接する不完全なフレームデータの長さを表すリーディングデータ情報を生成し、
前記フレーム列の終端フレームの後に隣接する不完全なフレームデータの長さを表すトレーリングデータ情報を生成し、
前記フレーム列の先頭のフレームを表す第１の情報を検出し、
前記フレーム列を構成するフレームの数を表す第２の情報を計算し、
前記フレーム列識別情報に対応して、前記リーディングデータ情報、前記トレーリングデータ情報、前記第１の情報、および前記第２の情報を前記情報記録媒体に記録する
ことを特徴とするデータ記録方法。
【請求項１１】
ビデオデータを所定の記録単位で情報記録媒体に記録するデータ記録装置を制御するコンピュータのプログラムであって、
連続するフレームで構成されるフレーム列毎にフレーム列識別情報を割り当てる割り当てステップと、
前記フレーム列の先頭フレームの前に隣接する不完全なフレームデータの長さを表すリーディングデータ情報を生成する第１の生成ステップと、
前記フレーム列の終端フレームの後に隣接する不完全なフレームデータの長さを表すトレーリングデータ情報を生成する第２の生成ステップと、
前記フレーム列の先頭のフレームを表す第１の情報を検出する検出ステップと、
前記フレーム列を構成するフレームの数を表す第２の情報を計算する計算ステップと、
前記フレーム列識別情報に対応して、前記リーディングデータ情報、前記トレーリングデータ情報、前記第１の情報、および前記第２の情報を前記情報記録媒体に記録する記録ステップと
を含む処理をコンピュータに実行させることを特徴とするコンピュータが読み取り可能なプログラムが格納されているプログラム格納媒体。
【請求項１２】
ビデオデータを所定の記録単位で情報記録媒体に記録するデータ記録装置を制御するコンピュータに、
連続するフレームで構成されるフレーム列毎にフレーム列識別情報を割り当てる割り当てステップと、
前記フレーム列の先頭フレームの前に隣接する不完全なフレームデータの長さを表すリーディングデータ情報を生成する第１の生成ステップと、
前記フレーム列の終端フレームの後に隣接する不完全なフレームデータの長さを表すトレーリングデータ情報を生成する第２の生成ステップと、
前記フレーム列の先頭のフレームを表す第１の情報を検出する検出ステップと、
前記フレーム列を構成するフレームの数を表す第２の情報を計算する計算ステップと、
前記フレーム列識別情報に対応して、前記リーディングデータ情報、前記トレーリングデータ情報、前記第１の情報、および前記第２の情報を前記情報記録媒体に記録する記録ステップと
を含む処理を実行させることを特徴とするプログラム。
【請求項１３】
所定の記録単位で情報記録媒体に記録されているビデオデータを再生するデータ再生装置において、
前記情報記録媒体から、連続するフレームで構成されるフレーム列を識別するフレーム列識別情報、前記フレーム列の先頭フレームの前に隣接する不完全なフレームデータの長さを表すリーディングデータ情報、前記フレーム列の終端フレームの後に隣接する不完全なフレームデータの長さを表すトレーリングデータ情報、前記フレーム列の先頭のフレームを表す第１の情報、および前記フレーム列を構成するフレームの数を表す第２の情報を再生する再生部と、
指定されたフレームの再生位置を、前記フレーム列識別情報、前記リーディングデータ情報、前記トレーリングデータ情報、前記第１の情報、および前記第２の情報に基づいて制御する制御部と
を備えることを特徴とするデータ再生装置。
【請求項１４】
前記リーディングデータ情報の先頭と、前記トレーリングデータの終端は、セクタの境界に一致する
ことを特徴とする請求項１３に記載のデータ再生装置。
【請求項１５】
前記連続するフレームは、フレーム番号が連続するフレームである
ことを特徴とする請求項１３に記載のデータ再生装置。
【請求項１６】
前記連続するフレームは、再生時間が連続するフレームである
ことを特徴とする請求項１３に記載のデータ再生装置。
【請求項１７】
前記第１の情報と前記第２の情報は、前記フレーム列の先頭のフレームのフレーム番号を表わすオフセット番号と、前記フレーム列を構成するフレームの数を表わすフレーム数である
ことを特徴とする請求項１３に記載のデータ再生装置。
【請求項１８】
前記フレームのデータ量は、固定のデータ量とされており、
指定されたフレームを特定する数を指定フレーム特定数とするとき、前記制御部は、
前記指定フレーム特定数と、前記指定フレームのフレームが属する前記フレーム列の前記オフセット番号との差を演算し、
前記差に、前記フレームの固定のデータ量を乗算し、
前記乗算して得られた乗算値に、前記指定フレーム特定数のフレームが属する前記フレーム列の前記リーディングデータ情報と、前記指定フレームが属する前記フレーム列より時間的に前のフレームが属するフレーム列のデータ量を加算して、指定された前記フレームの再生位置を計算する
ことを特徴とする請求項１７に記載のデータ再生装置。
【請求項１９】
前記制御部は、前記指定フレーム番号のフレームが属する前記フレーム列より時間的に前のフレームが属するフレーム列のデータ量を、
前記指定フレームが属する前記フレーム列より前のフレームが属するフレーム列を構成するフレーム数を特定する前記フレーム数に、前記フレームの固定データ量を乗算し、
前記乗算して得られた乗算値に、前記指定フレームが属する前記フレーム列より時間的に前のフレームが属するフレーム列の前記リーディング情報と、前記指定フレームが属する前記フレーム列より時間的に前のフレームが属するフレーム列の前記トレーリングデータ情報を加算して計算する
ことを特徴とする請求項１８に記載のデータ再生装置。
【請求項２０】
前記第１の情報と前記第２の情報は、前記フレーム列の先頭のフレームのフレーム番号を表わす再生開始フレーム番号と、前記フレーム列の最後のフレームのフレーム番号を表わす再生終了フレーム番号である
ことを特徴とする請求項１３に記載のデータ再生装置。
【請求項２１】
前記フレームのデータ量は、固定のデータ量とされており、
指定された前記フレームを特定する数を指定フレーム特定数とするとき、前記制御部は、
前記指定フレーム特定数と、前記指定フレームのフレームが属する前記フレーム列の前記再生開始フレーム番号との差を演算し、
前記差に、前記フレームの固定のデータ量を乗算し、
前記乗算して得られた乗算値に、前記指定フレーム特定数のフレームが属する前記フレーム列の前記リーディングデータ情報と、前記指定フレームが属する前記フレーム列より時間的に前のフレームが属するフレーム列のデータ量を加算して、指定された前記フレームの再生位置を制御する
ことを特徴とする請求項２０に記載のデータ再生装置。
【請求項２２】
前記指定フレーム番号のフレームが属する前記フレーム列より時間的に前のフレームが属するフレーム列のデータ量は、
前記指定フレームが属する前記フレーム列より前のフレームが属するフレーム列を構成するフレーム数を特定する前記再生終了フレーム番号と前記指定フレームのフレームが属する前記フレーム列の前記再生開始フレーム番号との差に、前記フレームの固定データ量を乗算し、
前記乗算して得られた乗算値に、前記指定フレームが属する前記フレーム列より時間的に前のフレームが属するフレーム列の前記リーディング情報と、前記指定フレームが属する前記フレーム列より時間的に前のフレームが属するフレーム列の前記トレーリングデータ情報を加算して計算する
ことを特徴とする請求項２１に記載のデータ再生装置。
【請求項２３】
前記第１の情報と前記第２の情報は、前記フレーム列の先頭と最後の前記フレームを表わすオフセット再生開始時間とオフセット再生終了時間である
ことを特徴とする請求項１３に記載のデータ再生装置。
【請求項２４】
前記フレームのデータ量は、固定のデータ量とされており、
指定された前記フレームを特定する数を指定フレーム特定数とするとき、前記制御部は、
前記指定フレーム特定数と、前記指定フレームのフレームが属する前記フレーム列の前記オフセット再生開始時間との差を演算し、
前記差に、前記フレームの固定のデータ量を乗算し、
前記乗算して得られた乗算値に、前記指定フレーム特定数のフレームが属する前記フレーム列の前記リーディングデータ情報と、前記指定フレームが属する前記フレーム列より時間的に前のフレームが属するフレーム列のデータ量を加算して、指定された前記フレームの再生位置を制御する
ことを特徴とする請求項２３に記載のデータ再生装置。
【請求項２５】
前記制御部は、前記指定フレーム番号のフレームが属する前記フレーム列より時間的に前のフレームが属するフレーム列のデータ量を、
前記指定フレームが属する前記フレーム列より前のフレームが属するフレーム列を構成するフレーム数を特定する前記オフセット再生終了時間と前記指定フレームのフレームが属する前記フレーム列の前記オフセット再生開始時間との差に、前記フレームの固定データ量を乗算し、
前記乗算して得られた乗算値に、前記指定フレームが属する前記フレーム列より時間的に前のフレームが属するフレーム列の前記リーディング情報と、前記指定フレームが属する前記フレーム列より時間的に前のフレームが属するフレーム列の前記トレーリングデータ情報を加算して計算する
ことを特徴とする請求項２４に記載のデータ再生装置。
【請求項２６】
所定の記録単位で情報記録媒体に記録されているビデオデータを再生するデータ再生装置のデータ再生方法において、
前記情報記録媒体から、連続するフレームで構成されるフレーム列を識別するフレーム列識別情報、前記フレーム列の先頭フレームの前に隣接する不完全なフレームデータの長さを表すリーディングデータ情報、前記フレーム列の終端フレームの後に隣接する不完全なフレームデータの長さを表すトレーリングデータ情報、前記フレーム列の先頭のフレームを表す第１の情報、および前記フレーム列を構成するフレームの数を表す第２の情報を再生し、
指定されたフレームの再生位置を、前記フレーム列識別情報、前記リーディングデータ情報、前記トレーリングデータ情報、前記第１の情報、および前記第２の情報に基づいて制御する
ことを特徴とするデータ再生方法。
【請求項２７】
所定の記録単位で情報記録媒体に記録されているビデオデータを再生するデータ再生装置を制御するコンピュータのプログラムであって、
前記情報記録媒体から、連続するフレームで構成されるフレーム列を識別するフレーム列識別情報、前記フレーム列の先頭フレームの前に隣接する不完全なフレームデータの長さを表すリーディングデータ情報、前記フレーム列の終端フレームの後に隣接する不完全なフレームデータの長さを表すトレーリングデータ情報、前記フレーム列の先頭のフレームを表す第１の情報、および前記フレーム列を構成するフレームの数を表す第２の情報を再生する再生ステップと、
指定されたフレームの再生位置を、前記フレーム列識別情報、前記リーディングデータ情報、前記トレーリングデータ情報、前記第１の情報、および前記第２の情報に基づいて制御する制御ステップと
を含む処理をコンピュータに実行させることを特徴とするコンピュータが読み取り可能なプログラムが格納されているプログラム格納媒体。
【請求項２８】
所定の記録単位で情報記録媒体に記録されているビデオデータを再生するデータ再生装置を制御するコンピュータに、
前記情報記録媒体から、連続するフレームで構成されるフレーム列を識別するフレーム列識別情報、前記フレーム列の先頭フレームの前に隣接する不完全なフレームデータの長さを表すリーディングデータ情報、前記フレーム列の終端フレームの後に隣接する不完全なフレームデータの長さを表すトレーリングデータ情報、前記フレーム列の先頭のフレームを表す第１の情報、および前記フレーム列を構成するフレームの数を表す第２の情報を再生する再生ステップと、
指定されたフレームの再生位置を、前記フレーム列識別情報、前記リーディングデータ情報、前記トレーリングデータ情報、前記第１の情報、および前記第２の情報に基づいて制御する制御ステップと
を含む処理を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ記録装置および方法、データ再生装置および方法、プログラム格納媒体、並びにプログラムに関し、特に、情報記録媒体に記録されているデータが編集された場合においても、再生位置を確実に特定することができるようにしたデータ記録装置および方法、データ再生装置および方法、プログラム格納媒体、並びにプログラムに関する。
【背景技術】
【０００２】
ＡＶ（Audio Visual）信号を情報量圧縮する高能率符号化方式の１つにＤＶ(Digital Video)方式がある。この符号化方式は、Specification of Consumer-Use Digital VCRs using 6.3mm magnetic tape, HD DIGITAL VCR CONFERENCEに開示されている。ＤＶは、ビデオカセットテープを用いるカムコーダ（カメラ一体型のビデオテープレコーダ）等に応用されている。
【０００３】
ＤＶ信号は、IEEE(Institute of Electrical and Electronic Engineers )1394ディジタルインターフェース（以下、IEEE1394 I/Fと称する）経由で入出力できる。このIEEE1394 I/Fを流れる信号のフォーマットを図１に示す。
【０００４】
IEEE1394 I/F上では、ＤＶ信号をDIF(Directory Interchange Format)ブロックと呼ばれる80バイトのブロック単位で扱い、150 DIF block（ブロック）で、1 DIF Sequence（シーケンス）を構成する。DIF Sequenceは、header section, subcode section, VAUX section,およびAudio&video sectionを持つ。SD-DVCR（スタンダードＴＶ（テレビジョン）信号の標準圧縮モード）の場合、１ビデオフレームは、例えば、NTSC(National Television System Committee)方式のような525-60システムでは、10 DIF sequenceで構成され、また、例えば、PAL(Phase Alternating Line)方式のような625-50システムでは、12 DIF sequenceで構成される。なお、SDL-DVCR（スタンダードＴＶ信号の高圧縮モード）の場合、１ビデオフレームは、525-60システムでは、5 DIF sequenceで構成され、また、625-50システムでは、6 DIF sequenceで構成される。
【０００５】
DIF blockは、先頭の３バイトのＩＤ(Identifier)と、７７バイトのデータから構成される。ＩＤには、section（セクション）のtype（タイプ）を表すDIF block type, カラーシーケンスを表すsequence number, DIF sequence number, およびDIF block numberがある。DIF sequenceの先頭はDIF blockのＩＤ内にあるDIF block typeを見て、Header sectionであれば、そこがDIF sequenceの先頭である。Header sectionのDIF Blockは、１バイト目の上位３bitが000である。
【０００６】
このようなフォーマットのＤＶ信号は、Isochronousパケットの形で、IEEE1394 I/F上を流れる。ＤＶ信号を伝送するIsochronousパケットのペイロードをsource packet（ソースパケット）と呼ぶ。１つのSource packetのサイズは、6 DIF block(480バイト)の固定長である。
【０００７】
525-60システムのDIF blockとソースパケットの関係を図２に示す。ＤＶストリームは、各フレームが、全て、フレーム内符号化され、1フレームが120,000バイトの固定ビットレートであるので、１ビデオフレーム当たりのsource packet数は固定である。SD-DVCRの１ビデオフレーム当たりのsource packet数は、525-60 systemでは250個であり、625-50 systemでは300個である。
【０００８】
ところで、近年、記録再生装置から取り外し可能なディスク型の情報記録媒体として、各種の光ディスクが提案されつつある。このような記録可能な光ディスクは、数ギガバイトの大容量メディアと数十Mbpsの高転送ビットレートの特徴を持ち、ビデオ信号等のＡＶ(Audio Visual)信号を記録するメディアとしての期待が高い。今後は、カムコーダ等でテープに記録したＤＶ信号をIEEE1394 I/Fを経由して、光ディスクへ記録するＤＶ記録再生装置が求められると予想される。
【０００９】
上述したように、記録媒体の容量が増大することにより、その記録媒体には、多くのデータ（例えば、ビデオ素材に関する映像データや音声データなど）が記録できるようになる。従って、１枚のディスクに多くのＤＶビデオ素材が記録されることになり、ユーザが、それらのディスク内に記録されている多くのＤＶビデオ素材の中から、所望の画像を視聴できるように編集するといったような操作が必要になる。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、編集操作が行われた場合、記録されているＤＶビデオ素材のアクセス位置を、迅速に特定することが困難になるという課題があった。
【００１１】
本発明はこのような状況に鑑みてなされたものであり、記録媒体に記録されているＤＶビデオ素材の内容を編集した場合においても、記録媒体に記録されているデータの任意の位置に、迅速にアクセスすることができるようにすることを目的とする。
【課題を解決するための手段】
【００１２】
本発明のデータ記録装置は、連続するフレームで構成されるフレーム列毎にフレーム列識別情報を割り当てるとともに、フレーム列毎に、フレーム列の先頭フレームの前に隣接する不完全なフレームデータの長さを表すリーディングデータ情報、フレーム列の終端フレームの後に隣接する不完全なフレームデータの長さを表すトレーリングデータ情報、フレーム列の先頭のフレームを表す第１の情報、およびフレーム列を構成するフレームの数を表す第２の情報を得る制御部と、フレーム列識別情報に対応して、リーディングデータ情報、トレーリングデータ情報、第１の情報、および第２の情報を情報記録媒体に記録する記録部とを備えることを特徴とする。
【００１３】
データ記録装置は、記録専用の装置として構成しても良いし、記録と再生の両方を実行する装置の記録処理を行うブロックとして構成してもよい。
【００１４】
リーディングデータ情報の先頭と、トレーリングデータの終端は、セクタの境界に一致するようにすることができる。
【００１５】
ビデオデータは、全てのフレームがフレーム内符号化されたデータであるようにすることができる。
【００１６】
ビデオデータは、全てのフレームが固定のデータ量とされているデータであるようにすることができる。
【００１７】
連続するフレームは、フレーム番号が連続するフレームであるようにすることができる。
【００１８】
連続するフレームは、再生時間が連続するフレームであるようにすることができる。
【００１９】
第１の情報と第２の情報は、フレーム列の先頭のフレームのフレーム番号を表わすオフセット番号と、フレーム列を構成するフレームの数を表わすフレーム数であるようにすることができる。
【００２０】
第１の情報と第２の情報は、フレーム列の先頭のフレームのフレーム番号を表わす再生開始フレーム番号と、フレーム列の最後のフレームのフレーム番号を表わす再生終了フレーム番号であるようにすることができる。
【００２１】
第１の情報と第２の情報は、フレーム列の先頭と最後のフレームを表わすオフセット再生開始時間とオフセット再生終了時間であるようにすることができる。
【００２２】
本発明のデータ記録方法は、連続するフレームで構成されるフレーム列毎にフレーム列識別情報を割り当て、フレーム列の先頭フレームの前に隣接する不完全なフレームデータの長さを表すリーディングデータ情報を生成し、フレーム列の終端フレームの後に隣接する不完全なフレームデータの長さを表すトレーリングデータ情報を生成し、フレーム列の先頭のフレームを表す第１の情報を検出し、フレーム列を構成するフレームの数を表す第２の情報を計算し、フレーム列識別情報に対応して、リーディングデータ情報、トレーリングデータ情報、第１の情報、および第２の情報を情報記録媒体に記録することを特徴とする。
【００２３】
本発明の第１のプログラム格納媒体に格納されているプログラムは、連続するフレームで構成されるフレーム列毎にフレーム列識別情報を割り当て、フレーム列の先頭フレームの前に隣接する不完全なフレームデータの長さを表すリーディングデータ情報を生成し、フレーム列の終端フレームの後に隣接する不完全なフレームデータの長さを表すトレーリングデータ情報を生成し、フレーム列の先頭のフレームを表す第１の情報を検出し、フレーム列を構成するフレームの数を表す第２の情報を計算し、フレーム列識別情報に対応して、リーディングデータ情報、トレーリングデータ情報、第１の情報、および第２の情報を情報記録媒体に記録することを特徴とする。
【００２４】
本発明の第１のプログラムは、連続するフレームで構成されるフレーム列毎にフレーム列識別情報を割り当て、フレーム列の先頭フレームの前に隣接する不完全なフレームデータの長さを表すリーディングデータ情報を生成し、フレーム列の終端フレームの後に隣接する不完全なフレームデータの長さを表すトレーリングデータ情報を生成し、フレーム列の先頭のフレームを表す第１の情報を検出し、フレーム列を構成するフレームの数を表す第２の情報を計算し、フレーム列識別情報に対応して、リーディングデータ情報、トレーリングデータ情報、第１の情報、および第２の情報を情報記録媒体に記録する処理をコンピュータに実行させることを特徴とする。
【００２５】
本発明のデータ再生装置は、情報記録媒体から、連続するフレームで構成されるフレーム列を識別するフレーム列識別情報、フレーム列の先頭フレームの前に隣接する不完全なフレームデータの長さを表すリーディングデータ情報、フレーム列の終端フレームの後に隣接する不完全なフレームデータの長さを表すトレーリングデータ情報、フレーム列の先頭のフレームを表す第１の情報、およびフレーム列を構成するフレームの数を表す第２の情報を再生する再生部と、指定されたフレームの再生位置を、フレーム列識別情報、リーディングデータ情報、トレーリングデータ情報、第１の情報、および第２の情報に基づいて制御する制御部とを備えることを特徴とする。
【００２６】
リーディングデータ情報の先頭と、トレーリングデータの終端は、セクタの境界に一致するようにすることができる。
【００２７】
データ再生装置は、再生専用の装置として構成しても良いし、記録と再生の両方を実行する装置の再生処理を行なうブロックとして構成しても良い。
【００２８】
連続するフレームは、フレーム番号が連続するフレームであるようにすることができる。
【００２９】
連続するフレームは、再生時間が連続するフレームであるようにすることができる。
【００３０】
第１の情報と第２の情報は、フレーム列の先頭のフレームのフレーム番号を表わすオフセット番号と、フレーム列を構成するフレームの数を表わすフレーム数であるようにすることができる。
【００３１】
フレームのデータ量は、固定のデータ量とされており、指定されたフレームを特定する数を指定フレーム特定数とするとき、制御部は、指定フレーム特定数と、指定フレームのフレームが属するフレーム列のオフセット番号との差を演算し、差に、フレームの固定のデータ量を乗算し、乗算して得られた乗算値に、指定フレーム特定数のフレームが属するフレーム列のリーディングデータ情報と、指定フレームが属するフレーム列より時間的に前のフレームが属するフレーム列のデータ量を加算して、指定されたフレームの再生位置を計算するようにすることができる。
【００３２】
制御部は、指定フレーム番号のフレームが属するフレーム列より時間的に前のフレームが属するフレーム列のデータ量を、指定フレームが属するフレーム列より前のフレームが属するフレーム列を構成するフレーム数を特定するフレーム数に、フレームの固定データ量を乗算し、乗算して得られた乗算値に、指定フレームが属するフレーム列より時間的に前のフレームが属するフレーム列のリーディング情報と、指定フレームが属するフレーム列より時間的に前のフレームが属するフレーム列のトレーリングデータ情報を加算して計算するようにすることができる。
【００３３】
第１の情報と第２の情報は、フレーム列の先頭のフレームのフレーム番号を表わす再生開始フレーム番号と、フレーム列の最後のフレームのフレーム番号を表わす再生終了フレーム番号であるようにすることができる。
【００３４】
フレームのデータ量は、固定のデータ量とされており、指定されたフレームを特定する数を指定フレーム特定数とするとき、制御部は、指定フレーム特定数と、指定フレームのフレームが属するフレーム列の再生開始フレーム番号との差を演算し、差に、フレームの固定のデータ量を乗算し、乗算して得られた乗算値に、指定フレーム特定数のフレームが属するフレーム列のリーディングデータ情報と、指定フレームが属するフレーム列より時間的に前のフレームが属するフレーム列のデータ量を加算して、指定されたフレームの再生位置を制御するようにすることができる。
【００３５】
指定フレーム番号のフレームが属するフレーム列より時間的に前のフレームが属するフレーム列のデータ量は、指定フレームが属するフレーム列より前のフレームが属するフレーム列を構成するフレーム数を特定する再生終了フレーム番号と指定フレームのフレームが属するフレーム列の再生開始フレーム番号との差に、フレームの固定データ量を乗算し、乗算して得られた乗算値に、指定フレームが属するフレーム列より時間的に前のフレームが属するフレーム列のリーディング情報と、指定フレームが属するフレーム列より時間的に前のフレームが属するフレーム列のトレーリングデータ情報を加算して計算するようにすることができる。
【００３６】
第１の情報と第２の情報は、フレーム列の先頭と最後のフレームを表わすオフセット再生開始時間とオフセット再生終了時間であるようにすることができる。
【００３７】
フレームのデータ量は、固定のデータ量とされており、指定されたフレームを特定する数を指定フレーム特定数とするとき、制御部は、指定フレーム特定数と、指定フレームのフレームが属するフレーム列のオフセット再生開始時間との差を演算し、差に、フレームの固定のデータ量を乗算し、乗算して得られた乗算値に、指定フレーム特定数のフレームが属するフレーム列のリーディングデータ情報と、指定フレームが属するフレーム列より時間的に前のフレームが属するフレーム列のデータ量を加算して、指定されたフレームの再生位置を制御するようにすることができる。
【００３８】
制御部は、指定フレーム番号のフレームが属するフレーム列より時間的に前のフレームが属するフレーム列のデータ量を、指定フレームが属するフレーム列より前のフレームが属するフレーム列を構成するフレーム数を特定するオフセット再生終了時間と指定フレームのフレームが属するフレーム列のオフセット再生開始時間との差に、フレームの固定データ量を乗算し、乗算して得られた乗算値に、指定フレームが属するフレーム列より時間的に前のフレームが属するフレーム列のリーディング情報と、指定フレームが属するフレーム列より時間的に前のフレームが属するフレーム列のトレーリングデータ情報を加算して計算するようにすることができる。
【００３９】
本発明のデータ再生方法は、情報記録媒体から、連続するフレームで構成されるフレーム列を識別するフレーム列識別情報、フレーム列の先頭フレームの前に隣接する不完全なフレームデータの長さを表すリーディングデータ情報、フレーム列の終端フレームの後に隣接する不完全なフレームデータの長さを表すトレーリングデータ情報、フレーム列の先頭のフレームを表す第１の情報、およびフレーム列を構成するフレームの数を表す第２の情報を再生し、指定されたフレームの再生位置を、フレーム列識別情報、リーディングデータ情報、トレーリングデータ情報、第１の情報、および第２の情報に基づいて制御することを特徴とする。
【００４０】
本発明の第２のプログラム格納媒体に格納されているプログラムは、情報記録媒体から、連続するフレームで構成されるフレーム列を識別するフレーム列識別情報、フレーム列の先頭フレームの前に隣接する不完全なフレームデータの長さを表すリーディングデータ情報、フレーム列の終端フレームの後に隣接する不完全なフレームデータの長さを表すトレーリングデータ情報、フレーム列の先頭のフレームを表す第１の情報、およびフレーム列を構成するフレームの数を表す第２の情報を再生し、指定されたフレームの再生位置を、フレーム列識別情報、リーディングデータ情報、トレーリングデータ情報、第１の情報、および第２の情報に基づいて制御することを特徴とする。
【００４１】
本発明の第２のプログラムは、情報記録媒体から、連続するフレームで構成されるフレーム列を識別するフレーム列識別情報、フレーム列の先頭フレームの前に隣接する不完全なフレームデータの長さを表すリーディングデータ情報、フレーム列の終端フレームの後に隣接する不完全なフレームデータの長さを表すトレーリングデータ情報、フレーム列の先頭のフレームを表す第１の情報、およびフレーム列を構成するフレームの数を表す第２の情報を再生し、指定されたフレームの再生位置を、フレーム列識別情報、リーディングデータ情報、トレーリングデータ情報、第１の情報、および第２の情報に基づいて制御する処理をコンピュータに実行させることを特徴とする。
【００４３】
本発明のデータ記録装置および方法、第１のプログラム格納媒体、並びに第１のプログラムにおいては、連続するフレームで構成されるフレーム列毎にフレーム列識別情報が割り当てられるとともに、フレーム列毎に、フレーム列の先頭フレームの前に隣接する不完全なフレームデータの長さを表すリーディングデータ情報、フレーム列の終端フレームの後に隣接する不完全なフレームデータの長さを表すトレーリングデータ情報、フレーム列の先頭のフレームを表す第１の情報、およびフレーム列を構成するフレームの数を表す第２の情報が得られ、フレーム列識別情報に対応して、リーディングデータ情報、トレーリングデータ情報、第１の情報、および第２の情報が情報記録媒体に記録される。
【００４４】
本発明のデータ再生装置および方法、第２のプログラム格納媒体、並びに第２のプログラムにおいては、情報記録媒体から、連続するフレームで構成されるフレーム列を識別するフレーム列識別情報、フレーム列の先頭フレームの前に隣接する不完全なフレームデータの長さを表すリーディングデータ情報、フレーム列の終端フレームの後に隣接する不完全なフレームデータの長さを表すトレーリングデータ情報、フレーム列の先頭のフレームを表す第１の情報、およびフレーム列を構成するフレームの数を表す第２の情報が再生され、指定されたフレームの再生位置が、フレーム列識別情報、リーディングデータ情報、トレーリングデータ情報、第１の情報、および第２の情報に基づいて制御される。
【発明の効果】
【００４６】
以上の如く、本発明によれば、情報記録媒体に記録されているデータが編集された場合においても、再生位置を特定することができる。また、その特定を、迅速、かつ、確実に行うことができる。
【発明を実施するための最良の形態】
【００４７】
図３は、記録媒体（後述する図２７の記録媒体１０）上のアプリケーションフォーマットの簡単化された構造を示している。このフォーマットは、ＡＶストリームの管理のためにPlayList（プレイリスト）とClip（クリップ）の２個のレイヤをもつ。そして、Volume Information（ボリュウム  インフォメーション）は、ディスク内のすべてのClipとPlayListの管理をする。
【００４８】
１個のＡＶストリームファイルと、その付属情報のペアを１個のオブジェクトとし、それをClipとする。ＡＶストリームファイルはClip AVストリームファイルとし、その付属情報は、Clip Information fileとする。
【００４９】
１個のClip AVストリームファイルは、ＤＶストリームをDVR（Digital Video Recording）アプリケーションフォーマットによって規定される構造に配置したデータをストアする。
【００５０】
一般に、コンピュータ等で用いるデータファイルは、バイト列として扱われるが、Clip AVストリームファイルのコンテンツは、時間軸上に展開され、PlayListは、Clipの中のアクセスポイントを、主にタイムスタンプで指定する。PlayList によって、Clipの中のアクセスポイントのタイムスタンプが与えられた時、Clip Information fileは、Clip AVストリームファイルの中でストリームのデコードを開始すべきアドレス情報を見つけるために役立つ。
【００５１】
PlayListは、Clipの中からユーザが視聴したい再生区間を選択し、それを簡単に編集することに利用できる。１つのPlayListは、Clipの中の再生区間の集まりである。あるClipの中の１つの再生区間は、PlayItem（プレイアイテム）と呼ばれ、それは、時間軸上のIN（イン）点とOUT（アウト）点のペアで表される。このため、PlayListは、PlayItemの集まりである。
【００５２】
PlayListには、２つのタイプがある。１つは、Real PlayList（リアルプレイリスト）であり、もう１つは、Virtual PlayList（バーチャルプレイリスト）である。
【００５３】
Real PlayListは、それが参照しているClipのストリーム部分を共有しているとみなされる。すなわち、Real PlayListは、それが参照しているClipのストリーム部分に相当するデータ容量をディスクの中で占める。ＡＶストリームが新しいClipとして記録される場合、そのClip全体の再生可能範囲を参照するReal PlayListが自動的に生成される。Real PlayListの再生範囲の一部分が消去された場合、それが参照しているClipのストリーム部分のデータもまた消去される。
【００５４】
Virtual PlayListは、Clipのデータを共有していないとみなされる。Virtual PlayListが変更または消去されたとしても、Clipは何も変化しない。
【００５５】
なお、以下の説明においては、Real PlayListとVirtual PlayListを総称して単に、PlayListと称する。
【００５６】
図４は、PlayListファイルにストアされるPlayList()のシンタクスを示す。number_of_PlayItemsは、PlayListの中にエントリーされるPlayItemの数を示す。
【００５７】
図５は、PlayItem()のシンタクスを示す。Clip_Information_file_nameは、PlayItemが参照するClip Information fileのファイル名を示す。
【００５８】
connection_conditionは、先行するPlayItemと現在のPlayItemとがシームレスに接続されているかどうかの情報を示す。
【００５９】
IN_timeは、PlayItemの再生開始時刻を示すところのフレーム番号である。
【００６０】
OUT_timeは、PlayItemの再生終了時刻を示すところのフレーム番号である。
【００６１】
IN_timeとOUT_timeがそれぞれ参照するＤＶフレームは、同一のDVF-sequenceの中に存在する。
【００６２】
DVRディスク上に必要なディレクトリは、”DVR”ディレクトリを含むrootディレクトリ、”PLAYLIST”ディレクトリ、”CLIPINF”ディレクトリ、および”STREAM”ディレクトリを含む”DVR”ディレクトリである。
【００６３】
図６に、DVRディスク上のディレクトリ構造の例を示す。rootディレクトリは、１個のディレクトリを含む。
【００６４】
”DVR”で示されるDVRアプリケーションフォーマットによって規定されるすべてのファイルとディレクトリは、このディレクトリの下にストアされる。
【００６５】
”DVR”ディレクトリは、以下に説明するディレクトリを含む。
【００６６】
”PLAYLIST”で示されるReal PlayListとVirtual PlayListのデータベースファイルは、このディレクトリ(DVR)の下に置かれる。
【００６７】
”CLIPINF”で示されるClipのデータベースは、このディレクトリの下に置かれる。
【００６８】
”STREAM”で示されるＡＶストリームファイルは、このディレクトリの下に置かれる。
【００６９】
”PLAYLIST”ディレクトリは、２種類のPlayListファイルをストアするものであり、それらは、Real PlayListとVirtual PlayListである。
【００７０】
”xxxxx.rpls”で示されるファイルは、１個のReal PlayListに関連する情報をストアする。それぞれのReal PlayList毎に、１個のファイルが作られる。ファイル名は、”xxxxx.rpls”である。ここで、”xxxxx”は、５個の０から９まで数字である。ファイル拡張子は、”rpls”とされる。
【００７１】
”yyyyy.vpls”で示されるファイルは、１個のVirtual PlayListに関連する情報をストアする。それぞれのVirtual PlayList毎に、１個のファイルが作られる。ファイル名は、”yyyyy.vpls”である。ここで、”yyyyy”は、５個の０から９まで数字である。ファイル拡張子は、”vpls”とされる。
【００７２】
”CLIPINF”ディレクトリは、それぞれのＡＶストリームファイルに対応して、１個のファイルをストアする。”zzzzz.clpi”で示されるファイルは、１個のＡＶストリームファイル(Clip AVストリームファイルまたは Bridge-Clip AVストリームファイル)に対応するClip Information fileである。ファイル名は、”zzzzz.clpi”であり、ここで、”zzzzz”は、５個の０から９までの数字である。ファイル拡張子は、”clpi”とされる。
【００７３】
”STREAM”ディレクトリは、ＡＶストリームのファイルをストアする。”zzzzz.sddv”で示されるファイルは、DVRシステムにより扱われるＡＶストリームファイルである。これは、Clip AVストリームファイルまたはBridge-Clip AVストリームファイルである。ファイル名は、”zzzzz.sddv”であり、ここで”zzzzz”は、５個の０から９までの数字である。ファイル拡張子は、” sddv”とされる。
【００７４】
１個のＡＶストリームファイルとそれに対応するClip information fileは、同じ５個の数字”zzzzz”が使用される。
【００７５】
図７は、Clip information file とClip AV stream file の関係を示す図である。Clip information file（Clip information  ファイル）は、それが対応するClip AVストリームファイルのデータの内容およびＡＶストリーム上の時間軸情報を管理するためのデータベースファイルである。このClip information fileには、データの内容を管理するためのClipInfoおよびProgram-sequence情報、および、ＡＶストリーム上の時間軸情報を管理するためのDVF-sequence情報が含まれている。
【００７６】
図８は、Clip Information Fileのシンタクスを示す。このファイルは、ClipInfo(), SequenceInfo()およびProgramInfo()を含む。
【００７７】
図９は、ClipInfo()のシンタクスを示す。DV_format_typeは、このClipに対応するＡＶストリームファイルのDV_formatの種類を示す。DV_format_typeによって、１ＤＶフレームのバイトサイズがわかる。DV_format_typeには、SD-DVCR 525-60 system(120,000 byte), SD-DVCR 625-50 system(144,000 byte), SDL-DVCR 525-60 system(60,000 byte)またはSDL-DVCR 625-50 system(72,000 byte)などの種類がある（カッコの中は、それぞれの場合の１フレームのバイトサイズを表わす）。
【００７８】
次に、ＡＶストリームファイルの構造を説明する。ＡＶストリームファイルは、IEEE1394 I/F経由を流れるDV信号フォーマットの１ビデオフレーム（図２参照）を単位として記録される。
【００７９】
図１０に示されるように、１フレーム毎にＤＶストリームを入力し、新規に記録媒体に記録するようにすると、図１１に示されるように、ＡＶストリームファイル上では、入力されてきたＤＶフレームのデータが順次詰められ、論理的に連続なバイト列として（いまの例の場合、フレーム番号０，１，２，３，４で示されるフレームのバイト列として）記録される。
【００８０】
図１２は、図１１のDVF sequenceを説明する図である。横軸はファイルの先頭からのバイト位置を表わし、縦軸は、フレーム番号を表わす。図１０および図１１に示されるように、ＤＶストリームを新規に記録媒体に記録した場合、図１２に示されるように、ＤＶフレームの記録順にフレーム番号が割り当てられる。このように、ＡＶストリームファイルの中でフレーム番号が連続なＤＶフレームのバイト列をDVF-sequenceと呼ぶ。図１１の例の場合、フレーム番号０から４が割り当てられた５枚のフレームからなるバイト列は、１個のDVF-sequenceである（１個のDVF-sequenceに対応する期間Ｔでは、フレーム番号が連続している）。ＤＶストリームを新規に記録媒体に記録する時、そのClipはＤＶフレーム番号の不連続点を含まず、ただ１つのDVF-sequenceを持つ。
【００８１】
上述したＡＶストリームファイルを新規に記録した時にできる１つのDVF-sequenceの記録媒体上でのデータ配置を説明する。ディスクメディアにデータをファイルとして記録する場合、一般のFAT(File Allocation Table)やUDF(Universal Disk Format)等のファイルシステムはデータの記録と再生をセクタと呼ばれるロジカルブロック単位に行うので、ＤＶストリームの記録と再生をセクタの倍数の単位で行う必要がある。ここで、１セクタの大きさは、UDFの場合、2048バイトである。そのため、図１３に示されるように、ＡＶストリームファイルを新規に記録した時、DVF-sequenceの先頭はセクタ境界にアラインして記録される。図１３の上の段は、ＡＶストリームファイルを新規に記録した時のDVF-sequenceを表わし、下の段は、そのときの記録媒体に記録されるデータ配置の例を表わす。
【００８２】
図１４は、図１３のDVF-sequenceのはじめと終わりのデータを部分的に消去したときのディスク上のデータ配置を示す。この場合、DVF-sequenceの先頭がセクタ境界にアラインするようにデータを消去する（データは、セクタ単位で消去される）。そのため、最初の完全なＤＶフレームの前に、”Leading_data_size”で示される大きさの不完全なフレームデータ（削除されたフレームのデータ）が残る。また、DVF-sequenceの最後がセクタ境界にアラインするようにデータを消去する。そのため、最後の完全なＤＶフレームの後ろに、”Trailing_data_size”で示される大きさの不完全なフレームデータ（削除されたフレームのデータ）が残る。
【００８３】
次に、ＡＶストリームファイルの中に複数のDVF-sequenceができる場合について説明する。
【００８４】
図１５は、ＤＶストリームを新規に記録媒体に記録する時にできるDVF-sequenceを示す。これのフレーム番号FN＝aからFN＝bの再生区間と、FN＝cからFN＝dの再生区間を残して、不要な再生区間のデータを消去する場合を考える。図１６は、データを消去する前（編集前）の図１５のDVF-sequenceのフレーム番号(FN)を示す図である（図１２に対応する）。この場合、DVF-sequenceのフレーム番号は、DVF-sequenceのバイト数に対して比例している。
【００８５】
図１７に、図１５において、フレーム番号FN＝aからFN＝bの再生区間とFN＝cからFN＝dの再生区間を残して、不要な再生区間のデータを消去した結果を示す。このような編集が行なわれると、Clip（図１７）には２個のDVF-sequenceが生成される。１番目のDVF-sequence（図中のDVF-sequence#0）は、フレーム番号FN＝aからFN＝bの再生区間のフレームデータを含み、２番目のDVF-sequence（図中のDVF-sequence#1）は、フレーム番号FN＝cからFN＝dの再生区間のフレームデータを含む。図１８は、図１７のDVF-sequenceのフレーム番号（FN）を示す図である。この場合、２つのDVF-sequenceの境界において、フレーム番号が不連続である。図１７に示されるように、DVF-sequence#0は、Leading_data_size#0とTrailing_data_size#0で示されるデータを持つ。DVF-sequence#1は、Leading_data_size#1とTrailing_data_size#1で示されるデータを持つ。
【００８６】
次に、DVF-sequenceの情報を用いて、ＡＶストリームファイル中の任意のフレームにランダムアクセスする方法を説明する。
【００８７】
図１９に示されるように、ＡＶストリームファイルが２個のDVF-sequenceを持つ場合、２番目のDVF-sequence（図中のDVF-sequence#1）の中のx番目のフレームにランダムアクセスする方法について説明する。この時、図１９において、ファイルの先頭からこのx番目のフレームの先頭までのオフセットのバイト数（図中のoffset_x）は、式（１）および式（２）によって計算される。
【００８８】
offset_x ＝ DVF_sequence_size[0] + lds1 + (x-ofn1)×FS・・・（１）
【００８９】
DVF_sequence_size[0] ＝ lds0+tds0+nf0×FS・・・（２）
【００９０】
ここで、DVF_sequence_size[0]は、１番目のDVF-sequence（DVF-sequence#0）のバイト数、lds0 は、DVF-sequence#0のLeading_data_size、tds0 は、DVF-sequence#0のTrailing_data_size、nf0 は、DVF-sequence#0に含まれるＤＶフレームの数、FS は、１枚のＤＶフレームのバイト数（525-60 systemのSD-DVCRでは120,000バイト）、lds1は、DVF-sequence#1のLeading_data_size、およびofn1は、DVF-sequence#1上の最初の完全なフレームに対するオフセットのフレーム番号である。
【００９１】
図２０は、SequenceInfo()のシンタクスを示す。Num_of_DVF_sequencesは、ＡＶストリームファイルの中にあるDVF-sequenceの数を示す。
【００９２】
Offset_FN_DVF[dvf_id]は、ＡＶストリームファイルのdvf_idによって参照されるDVF-sequence上の最初のＤＶフレームに対するオフセットのフレーム番号を示す。
【００９３】
Leading_data_size[dvf_id]は、dvf_idによって参照されるDVF-sequence上の最初のＤＶフレームの前にあるデータのバイト数を示す。
【００９４】
Trailing_data_size[dvf_id]は、dvf_idによって参照されるDVF-sequence上の最後のＤＶフレームの後ろに続くデータのバイト数を示す。
【００９５】
Number_of_frames[dvf_id]は、dvf_idによって参照されるDVF-sequence上にあるフレーム数を示す。これは、上記の最初のＤＶフレームから最後のＤＶフレームまでの区間に含まれるフレームの数である。
【００９６】
SequenceInfo()の中でエントリーされるOffset_FN_DVF[dvf_id]の値は、昇順に並んでいる。すなわち、SequenceInfo()の中でエントリーされるOffset_FN_DVF[dvf_id]は、式（３）および式（４）に示される条件を満たす。
【００９７】
Offset_FN_DVF[dvf_id] ≧ 0・・・（３）
【００９８】
0 < dvf_id < num_of_DVF_sequences である dvf_id について、
Offset_FN_DVF[dvf_id] > Offset_FN_DVF[dvf_id-1]+Number_of_frames[dvf_id-1]・・・（４）
【００９９】
次に、上述したようにClip AVストリームのデータが部分的に消去される時(編集された時)の、DVF-sequenceとPlayListの関係について説明する。
【０１００】
図２１に示されるような１つのDVF-sequenceを持つClip AVストリームの一部分DTPを消去する場合を考える。図２１に示されるように、編集前のDVF-sequenceについてのOffset_FN_DVF[0]（このDVF-sequence上の最初のフレームに対するオフセットのフレーム番号）はゼロである。Virtual PlayListのPlayItem1, PlayItem2, PlayItem3およびPlayItem4は、このDVF-sequenceを参照しているとする。いま、図２１に示すようにDVF-sequenceのＡＶストリームデータについて、どのPlayItemにも使われていないＡＶストリームデータを消去したとする。
【０１０１】
図２１において、Clip AVストリームの一部分DTPを消去した場合、図２２（編集後）に示されるように、DVF-sequenceは、DVF-sequence#0とDVF-sequence#1に分けられる。このように、編集後のClipは２個のDVF-sequenceを持つ。１番目のDVF-sequenceについてのOffset_FN_DVF[0]はゼロにセットされ、２番目のDVF-sequenceについてのOffset_FN_DVF[1]は値Xにセットされる。値Xは、OUT_time2よりも大きく、IN_time3と等しいか、それよりも小さい。すなわち、編集後にVirtual PlayListのPlayItem3とPlayItem4のIN_timeとOUT_timeの値を変更する必要がない。Clip AVストリームファイルの部分的なデータを消去する時に、その消去部分を使用していないVirtual PlayListについては何も変更しなくても良い。
【０１０２】
PlayListを再生する場合、再生部はPlayItemのIN_timeとDVF-sequenceのOffset_FN_DVFの値を比較することにより、そのIN_timeとOUT_timeが指すところのDVF-sequenceを見つけることができる。例えば、図２２の場合、PlayItem3のIN_time3は２番目のDVF-sequenceのOffset_FN_DVF(＝X)よりも大きいので、PlayItem3のIN_time3とOUT_time3は、２番目のDVF-sequenceを指すことがわかる。
【０１０３】
次に、ProgramInfo()について説明する。
【０１０４】
ＡＶストリームファイルの中で本フォーマットが規定するプログラムの内容が一定であるフレーム列を、program-sequenceと称する。図２３は、このprogram-sequenceを説明する図である。
【０１０５】
ＡＶストリームファイルの中で、新しいprogram-sequenceが開始するフレームのフレーム番号をProgramInfo()にストアする。このフレーム番号は、FN_program_sequence_startにより示される。
【０１０６】
ＡＶストリームファイルの中にある最後のprogram-sequence以外のprogram-sequenceは、そのFN_program_sequence_startに示されるフレームから開始し、その次のFN_program_sequence_startで指されるフレームの直前のフレームで終了する。最後のprogram_sequenceは、そのSPN_program_sequence_startに示されるフレームから開始し、ＡＶストリームファイルの最後のフレームで終了する。図２３の例の場合、Clip AVストリームファイルは２個のprogram-sequence(program-sequence#0,program-sequence#1)を持つ。また、program-sequenceは、DVF-sequenceの境界をまたいでも良い。
【０１０７】
図２４は、ProgramInfo()のシンタクスを示す。num_of_program_sequencesは、ＡＶストリームファイルの中にあるprogram-sequenceの数を示す。
【０１０８】
FN_program_sequence_start[pgm_id]は、ＡＶストリームファイル上でprogram-sequenceが開始するＤＶフレームのフレーム番号を示す。
【０１０９】
ProgramInfo()の中でエントリーされるFN_program_sequence_startの値は、昇順に並んでいる。
【０１１０】
audio_mode[pgm_id]は、ＤＶ信号のオーディオのモードを示す。モードの種類には、48kHz mode, 44.1kHz mode, 32kHz-2CHのモードがある。
【０１１１】
lock_flag[pgm_id]は、ビデオ信号とオーディオ信号がLockしているかどうかを示すフラグである。
【０１１２】
図２５は、１つのClip AVストリームのデータを示す図である。この場合、１つのClip AVストリームに対して１つのProgram-sequenceと、１つのDVF-sequenceを持つ。すなわち、このClipの中では、program-sequenceの内容は変化しないものとする。図２５において、編集により斜線部分のＡＶストリームデータを消去した場合のClip AVストリームのデータを図２６に示す。図２６において、Clipは、３個のDVF-sequenceを持つ。また、program-sequenceは、１つのままである。このとき、program-sequenceは、DVF-sequenceの境界をまたいでいる。
【０１１３】
次に、DVRアプリケーション構造のデータを記録再生するシステムについて、図２７のＤＶ記録再生装置１の構成例を示すブロック図を用いて説明する。このＤＶ記録再生装置１は、記録処理を実行する記録部２と再生処理を実行する再生部３とにより構成されている。
【０１１４】
はじめに記録時の動作について説明する。
【０１１５】
端子２８から入力されるＡＶ信号をＤＶ符号化部１８でエンコードしてＤＶストリームを取得するか、または、端子２９からIEEE1394 I/F１９を介してＤＶストリームを取得する。当該ＤＶストリームは、ＤＶストリーム解析部２０による解析処理の後、バッファ２１へ一旦記憶される。バッファ２１から読み出されたＤＶストリームは、ECC（誤り訂正）符号化部２２と変調部２３でECC符号の付加処理と変調処理が行なわれた後、書き込み部２４へ入力される。書き込み部２４は、制御部１７から指示される制御信号に基づいて、記録媒体１０へＡＶストリームファイルを記録する。
【０１１６】
このＤＶ記録再生装置１は、ＡＶストリームファイルを記録すると共に、そのファイルに関係するアプリケーションデータベース情報もまた記録する。アプリケーションデータベース情報は、制御部１７により作成される。制御部１７への入力情報は、ＤＶストリーム解析部２０からの情報と、端子２７から入力されるユーザの指示情報である。
【０１１７】
ＤＶストリーム解析部２０からの情報には、ＤＶ信号のタイプ(DV_format_type)、入力されるＤＶフレームのカウント数、およびプログラム情報が含まれる。ＤＶストリームの記録終了時でのフレームのカウント数は、DVF-sequenceのフレーム数(Number_of_frames)となる。ＡＶストリーム内のプログラム内容の変化情報は、ProgramInfoにストアされるデータとなる。ＤＶストリーム解析部２０からの情報は、ＡＶストリームのデータベース(Clip Information)にストアされるものである。
【０１１８】
端子２７から入力されてきたユーザの指示情報には、ＡＶストリームの中における再生区間の指定情報、その再生区間の内容を説明するキャラクター文字、ユーザが指定したシーンにセットされるブックマークやリジューム点のＡＶストリームの中のタイムスタンプなどが含まれる。これらのユーザの指示情報は、PlayListのデータベースにストアされるものである。
【０１１９】
制御部１７は、上記の入力情報に基づいて、ＡＶストリームのデータベース（Clip Information）、PlayListのデータベース、および記録媒体１０の記録内容の管理情報(info.dvr)を生成する。これらのデータベース情報は、ＡＶストリームと同様にして、ECC（誤り訂正）符号化部２２、および変調部２３で処理されて、書き込み部２４へ入力される。書き込み部２４は、制御部１７から指示される制御信号に基づいて、記録媒体１０へデータベースファイルを記録する。
【０１２０】
次に、再生時の動作について説明する。
【０１２１】
記録媒体１０には、ＡＶストリームファイルとアプリケーションデータベース情報が記録されている。
【０１２２】
はじめに制御部１７は、読み出し部１１に対して、アプリケーションデータベース情報を読み出すように指示する。そして、読み出し部１１は、記録媒体１０からアプリケーションデータベース情報を読み出し、そのデータベース情報は、復調部１２とECC（誤り訂正）復号部１３による復調処理と誤り訂正処理を経て、制御部１７へ入力される。
【０１２３】
制御部１７は、アプリケーションデータベースに基づいて、記録媒体１０に記録されているPlayListの一覧を端子２７のユーザーインターフェースへ出力する。ユーザインターフェースは、ユーザに、PlayListの一覧から再生したいPlayListを選択させ、制御部１７は、ユーザによるPlayListの選択を受け付ける。制御部１７は、そのPlayListの再生に必要なＡＶストリームファイルの読み出しを読み出し部１１に指示する。そして、読み出し部１１は、記録媒体１０からそのＡＶストリームを読み出し、復調部１２、ECC復号部１３の処理を経て、再生されたＤＶストリームはバッファ１４へ入力される。
【０１２４】
制御部１７は、ＡＶストリームの再生区間(PlayItem)に対応するＤＶフレームからなるストリームをバッファ１４から読み出すように制御する。バッファ１４から読み出されたＤＶフレームのデータは、ＤＶ復号部１５へ入力される。ＤＶ復号部１５は、ＤＶフレームのデータを復号し、再生ＡＶ信号を端子２６から出力する。また、バッファから読み出されたＤＶフレームのデータは、IEEE1394 I/F １６を介して、端子２５からＤＶストリームとして出力される。
【０１２５】
次に、ＡＶストリームの編集をする場合を説明する。
【０１２６】
ユーザにより、記録媒体１０に記録されているＡＶストリームの再生区間が指定され、新しい再生経路が作成される場合、端子２７のＵＩ（ユーザーインターフェース）入力から、再生区間のイン点とアウト点の情報が制御部１７へ入力される。制御部１７は、ＡＶストリームの再生区間(PlayItem)をグループ化したもの（PlayList）のデータベースを作成する。
【０１２７】
ユーザが、記録媒体１０に記録されているＡＶストリームの一部を消去したい場合、端子２７のＵＩ入力から、消去区間の情報が制御部１７へ入力される。制御部１７は、必要なＡＶストリーム部分だけを参照するようにPlayListのデータベースを変更する。また、ＡＶストリームの不必要なストリーム部分を消去するように、書き込み部２４に指示する。また、Clip AVストリームの変化に基づいて、そのClip Information fileの内容を変更する。
【０１２８】
次に、ＤＶストリームを新規に記録媒体１０に記録する処理を、図２８のフローチャートを参照して説明する。なお、この処理は、ユーザが端子２７のＵＩを操作して、記録処理の開始を指令したときに開始される。
【０１２９】
ステップＳ１１において、制御部１７は、ＤＶ信号のタイプ(DV_format_type)をＤＶストリーム解析部２０から取得する。DV_format_typeには、上述したように、SD-DVCR 525-60 system(120,000 byte), SD-DVCR 625-50 system(144,000 byte), SDL-DVCR 525-60 system(60,000 byte)またはSDL-DVCR 625-50 system(72,000 byte)などの種類がある。
【０１３０】
ステップＳ１２において、制御部１７は、書き込み部２４を制御して、Clip AV stream fileを記録媒体１０に記録させる。
【０１３１】
ステップＳ１３において、制御部１７は、DVF-sequence情報を作成する。ここで、記録されたフレーム総数がＤＶストリーム解析部２０から取得される。いまの場合、１つのDVF-sequenceが作成されて、Offset_FN_DVF＝0, Leading_data_size＝0, Trailing_data_size＝0となる。また、制御部１７は、ＤＶストリーム解析部２０から取得した記録されたフレーム総数をNumber_of_framesとしてセットする。
【０１３２】
ステップＳ１４において、制御部１７は、program-sequence情報を作成する。具体的には、制御部１７は、プログラム内容が変化した時のフレーム番号を取得し、それをProgramInfoにストアする。図２３の例の場合、program-sequenceは、program-sequence#0とprogram-sequence#1の２つになり、図２６に示される例の場合、program-sequenceは、１つである。
【０１３３】
ステップＳ１５において、制御部１７は、ステップＳ１２において記録されたClip AV stream fileに関する、Clip Information fileを作成し記録する。Clip Information fileは、図７を参照して上述したように、記録するClip AV ストリームファイルのデータ内容およびAVストリーム上の時間軸情報を管理するためのデータベースファイルである。
【０１３４】
ステップＳ１６において、制御部１７は、そのClipの全再生範囲をカバーするReal PlayListファイルを作成し、記録する。図３を参照して上述したように、Real PlayListは、Clipの中のアクセスポイントを、主にタイムスタンプで指定する。
【０１３５】
次に、図２９のフローチャートを参照して、PlayListの再生処理について説明する。なお、この処理は、ユーザがPlayListの再生を指示したときに開始される。
【０１３６】
ステップＳ３１において、制御部１７は、ユーザから１つのPlayListの再生の指示を受け付ける。
【０１３７】
ステップＳ３２において、制御部１７は、現在のPlayItemのIN_timeを取得する。例えば、ステップＳ３１において、図２１に示されるようなClip AのDVF-sequenceに対するPlayListの再生が指示された場合、現在のPlayItem1のIN_time1が取得される。
【０１３８】
ステップＳ３３において、制御部１７は、IN_timeが参照するフレームのアドレスを取得する。この処理を具体的に説明する。
【０１３９】
最初に、制御部１７は、IN_time（図２１の例の場合、IN_time1）が参照するClip（図２１の例の場合、Clip A）のSequenceInfoにエントリーされているN個のDVF-sequenceの各Offset_FN_DVFとIN_timeを比較する。次に、制御部１７は、0 <＝ k < Nに対して、式（５）を満たす最小のｋを取得する。
【０１４０】
Offset_FN_DVF[k] <＝ IN_time・・・（５）
【０１４１】
IN_timeが参照するフレームは、Clipのk番目のDVF-sequenceに含まれている。制御部１７は、ＡＶストリームファイルの中でのIN_timeが参照するフレームのアドレス、すなわち、ファイルの先頭から、そのフレームまでのバイト数 offset_IN_frameは式（６）および式（７）を用いて計算する。
【０１４２】
offset_IN_frame ＝offset_sum + Leading_data_size[k] +(IN_frame - Offset_FN_DVF[k])×FS・・・（６）
【０１４３】
0004423972.tif 000002
【０１４４】
ステップＳ３４において、制御部１７は、読み出し部１１を制御して、ステップＳ３３において計算した上記アドレスからＡＶストリームのデータを読み出し、ＤＶ復号部１５へ供給する。
【０１４５】
ステップＳ３５において、制御部１７は、ＡＶストリームをＤＶ復号部１５にデコードさせ、再生させる。
【０１４６】
ステップＳ３６において、制御部１７は、OUT_time（図２１の例の場合、OUT_time1）のフレームの再生が終了したか否かを判定する。OUT_timeのフレームの再生が終了していないと判定された場合、処理は、ステップＳ３５へ戻り、それ以降の処理が繰り返される。
【０１４７】
ステップＳ３６において、OUT_time（図２１の例の場合、OUT_time1）のフレームの再生が終了したと判定された場合、処理はステップＳ３７に進み、制御部１７は、最後のPlayItem（図２１の例の場合、PlayItem4）の再生が終了したか否かを判定する。最後のPlayItemの再生が終了していないと判定された場合、処理は、ステップＳ３２に戻り、それ以降の処理が繰り返される。
【０１４８】
ステップＳ３７において、最後のPlayItemの再生を終了したと判定された場合、処理は終了される。
【０１４９】
次に、図３０のフローチャートを参照して、ＡＶストリームファイルの部分消去処理を説明する。なお、この処理は、ユーザによりＡＶストリームファイルの部分消去を指令されたとき開始される。
【０１５０】
ステップＳ５１において、制御部１７は、Real PlayListの再生範囲の中から消去する区間を取得する。例えば、図１５において、フレーム番号FN＝aからFN＝bの再生区間と、FN＝cからFN＝dの再生区間を残して、不要な再生区間のデータを消去する場合、DVF-sequenceのフレーム番号FN＝aからFN＝bの再生区間と、FN＝cからFN＝dの再生区間以外の再生区間が取得される。
【０１５１】
ステップＳ５２において、制御部１７は、上記のその消去区間が参照するClipのＡＶストリームデータを消去する。図１５の例の場合、消去区間DTAが参照するClipのＡＶストリームデータが消去される。
【０１５２】
ステップＳ５３において、制御部１７は、データ消去後のＡＶストリームファイルに対応して、DVF-sequence情報を更新する。図１５の例において、ＡＶストリームが消去された結果、図１７に示されるように、DVF-sequenceはDVF-sequence#0とDVF-sequence#1となり、上述した図１９に示されるようなDVF-sequence情報（Offset_FN_DVF , Num_of_frame , Leading_data_size , Trailing_data_size）が更新される。
【０１５３】
ステップＳ５２およびステップＳ５３の処理をさらに具体的に説明する。例として、DVF-sequenceの中のある開始フレーム番号からある終了フレーム番号までの区間だけを保存して、この区間以外のデータを消去する場合を考える。
【０１５４】
１番目に、DVF-sequenceのフレーム番号xよりも前を消去する場合において、このDVF-sequenceは、次の式（８）乃至式（１１）に示されるようなパラメータを持つとする。
【０１５５】
Offset_FN_DVF  ＝ ofn・・・（８）
【０１５６】
Number_of_frame ＝ nf・・・（９）
【０１５７】
Leading_data_size ＝ lds・・・（１０）
【０１５８】
Trailing_data_size ＝ tds・・・（１１）
【０１５９】
このDVF-sequenceのフレーム番号xよりも前を消去すると、パラメータは次の式（１２）乃至式（１５）に示されるように更新される。
【０１６０】
Offset_FN_DVF  ＝ x・・・（１２）
【０１６１】
Number_of_frame ＝ nf - (x-ofn)・・・（１３）
【０１６２】
Leading_data_size ＝ offset_x % SECTOR_SIZE・・・（１４）
【０１６３】
Trailing_data_size ＝ tds・・・（１５）
ここで、「％」は、剰余を計算する演算子である。
【０１６４】
SECTOR_SIZE（セクタサイズ）は、１セクタのバイトサイズであり、例えば、2048バイトである。ここで、offset_xは、このDVF-sequenceの先頭からフレーム番号xまでのバイト数であり、式（１６）に示されるように計算される。このとき、FSは、１フレームのバイトサイズである。
【０１６５】
offset_x ＝ lds + (x - ofn)×FS・・・（１６）
【０１６６】
そして、このDVF-sequenceの先頭から消去されるデータのセクタ数は、 (offset_x / SECTOR_SIZE)である。
【０１６７】
２番目に、DVF-sequenceのフレーム番号ｙよりも後ろを消去する場合このDVF-sequenceは、次の式（１７）乃至式（２０）に示されるパラメータを持つとする。
【０１６８】
Offset_FN_DVF  ＝ ofn    ・・・（１７）
【０１６９】
Number_of_frame ＝ nf    ・・・（１８）
【０１７０】
Leading_data_size ＝ lds ・・・（１９）
【０１７１】
Trailing_data_size ＝ tds・・・（２０）
【０１７２】
このDVF-sequenceのフレーム番号ｙよりも後ろを消去すると、パラメータは次の式（２１）乃至式（２３）に示されるように更新される。
【０１７３】
Offset_FN_DVF  ＝ ofn   ・・・（２１）
【０１７４】
Number_of_frame ＝ y-ofn・・・（２２）
【０１７５】
Leading_data_size ＝ lds・・・（２３）
【０１７６】
Trailing_data_sizeは、次のように与えられる。
【０１７７】
このDVF-sequenceの先頭からフレーム番号yまでのバイト数offset_yを式（２４）乃至式（２７）を用いて計算する。
【０１７８】
offset_y ＝ lds + (y - ofn)×FS・・・（２４）
【０１７９】
tmp ＝ offset_y % SECTOR_SIZE・・・（２５）
【０１８０】
tmp≠0の時、Trailing_data_size ＝ SECTOR_SIZE - tmp・・・（２６）
【０１８１】
tmp＝0の時、Trailing_data_size ＝ 0・・・（２７）
【０１８２】
そして、このDVF-sequence上の((offset_y+ Trailing_data_size) / SECTOR_SIZE)番目のセクタから最後のセクタまでを消去する。
【０１８３】
ステップＳ５４において、制御部１７は、Program-sequence情報の更新する。例えば、Offset_FN_DVF  ＝ ofn であるDVF-sequenceにおいて、フレーム番号xよりも前を消去した時、もし、式（２８）に示されるような条件であれば、式（２９）に示されるように更新する。
【０１８４】
ofn <＝ FN_program_sequence_start <＝x・・・（２８）
【０１８５】
FN_program_sequence_start ＝x・・・（２９）
【０１８６】
ステップＳ５５において、制御部１７は、ステップＳ５３およびステップＳ５４の処理に対応して、Clip Information fileを更新および記録する。
【０１８７】
ステップＳ５６において、制御部１７は、ステップＳ５１における再生範囲の変更に対応して、Real PlayList fileを更新および記録する。
【０１８８】
このようなシンタクス、データ構造、規則に基づく事により、記録媒体１０に記録されているデータの内容、再生情報などを適切に管理することができ、もって、ユーザが再生時に適切に記録媒体に記録されているデータの内容を確認したり、任意の位置の所望のデータを迅速かつ確実に再生することができる。
【０１８９】
なお、以上の例では、ＡＶストリームとしてＤＶストリームを例にして説明しているが、これに限らず、１ビデオフレームのバイトデータサイズが固定である他のストリームについても適用することが可能である。また、ディスクにおけるデータの記録（消去）または再生の単位は、セクタ以外であってもよい。
【０１９０】
また、図１２の説明において、DVF sequenceの定義を、ＡＶストリームファイルの中で『フレーム番号が連続なＤＶフレームのバイト列』と説明したが、これを、『再生時間が連続なＤＶフレームのバイト列』と、変更しても良い。例えば、90kHz精度の再生時間で表す場合は、フレーム番号に3003 (525-60systemの場合)を乗じた値が再生時間となる。この場合、図１１に示すフレーム番号を再生時間に変換するには、フレーム番号の数字に3003 (525-60systemの場合)を乗じる。また、図１２，図１６および図１８のフレーム番号の軸を、再生時間に置きかえる。
【０１９１】
また、SequenceInfoのシンタクスのOffset_FN_DVF, ProgramInfoのFN_program_sequence_start，PlayItemのシンタクスのIN_time, OUT_timeをフレーム番号ではなく、再生時間で表しても良い。例えば、90kHz精度の再生時間で表す場合は、フレーム番号に3003 (525-60systemの場合)を乗じた値となる。
【０１９２】
このとき、例えば、図１９に示されるような２番目のDVF-sequence（図中のDVF-sequence#1）の中のｘ番目のフレームにランダムにアクセスする場合を考える。すなわち、IN_timeがx番目のフレームの再生開始時刻を示す場合であり、そのフレームにアクセスする場合を考える。ｘ番目のフレームの再生開始時刻をtime_xとし、ｘ番目のフレームが属するフレーム列のオフセット再生開始時間をtime_ofn1とすると、上記の式（１）は、次の（１Ａ）のように変形される。ここで、ＦＴは、１フレームの再生時間であり、90kHz精度で表す場合は、3003 (525-60systemの場合)である。
offset_x ＝ 
DVF_sequence_size[0] + lds1 + ((time_x - time_ofn1)/FT)×FS・・・（１Ａ）
【０１９３】
さらに、SequenceInfoのシンタクスのOffset_FN_DVFとNumber_of_framesを用いる代わりに、再生開始フレーム番号 (＝ Offset_FN_DVF)と再生終了フレーム番号 (＝ Offset_FN_DVF+ Number_of_frames-1)を用いても良い。
【０１９４】
このとき、例えば、図１９に示されるような２番目のDVF-sequence（図中のDVF-sequence#1）の中のｘ番目のフレームにランダムにアクセスする場合、再生終了フレーム番号(Offset_FN_DVF+ Number_of_frames-1)から再生開始フレーム番号 (Offset_FN_DVF)を減算して、フレーム数を算出した後、上述した式（１）および式（２）によってその位置を計算することができる。この場合、nfの値は、式（３０）により計算される。
nf ＝(Offset_FN_DVF+ Number_of_frames-1) - (Offset_FN_DVF) +1
・・・（３０）
【０１９５】
また、Leading_data_sizeとTrailing_data_sizeで示される部分に含まれるデータは、不完全なＤＶフレームのデータとは限らず、どんなデータであっても良い。例えば、この部分に完全な形のＤＶフレームやデータベース情報が記録されていても良い。
【０１９６】
すなわち、図１４によれば、リーディングデータのデータ量は、DVFシーケンスの先頭のセクタにおける、このDVFシーケンスを構成しないデータの長さを示しているが、これに限らず、図３１に示されるように、リーディングデータのデータ量は１セクタ以上の長さであっても良い。トレイリングデータのデータ量についても同様である。
【０１９７】
セクタサイズが2048バイトの場合、リーディングデータサイズ、トレイリングデータサイズは、次に示すような値に制限可能である。
【０１９８】
リーディングデータサイズは、SD-DVCR 525-60システムの場合、64バイトの倍数であり、また、SD-DVCR 625-50システムの場合、128バイトの倍数である。トレイリングデータサイズもまた、SD-DVCR 525-60システムの場合、64バイトの倍数であり、また、SD-DVCR 625-50システムの場合、128バイトの倍数である。ここで、64は、2048のセクタサイズとSD-DVCR 525-60システムのDVフレームのサイズ120,000バイトの最大公約数であり、128は、2048のセクタサイズとSD-DVCR 625-50システムのDVフレームのサイズ144,000バイトの最大公約数である。
【０１９９】
なお、ＤＶが採用している符号化方式では、フレーム間の差分符号化をしていないため（全てのフレームがイントラフレーム（フレーム内符号化されたフレーム）とされるため）、ＤＶのストリームをフレーム単位で切断または接続しても、デコードの連続性は保たれる。
【０２００】
さらに、以上の例では、Clip InformationファイルとPlayListファイルを分離したファイルとして管理しているが、これらの情報を１つのファイルにまとめて管理しても良い。例えば、１つのファイルの中でSequenceInfo()を集めたオブジェクトを管理するようにしても良い。さらに、必ずしも、ファイルという形式でデータを管理する（ファイルシステムを使ってデータを管理する）必要もなく、動画像記録再生装置が管理できる形式でデータを管理すれば良い。
【０２０１】
以上のように、ＤＶストリームのように１ビデオフレームのバイトサイズが固定であるストリームを、ロジカルセクタを最小のデータ記録単位として管理する記録媒体に記録し、これを再生するシステムにおいて、フレーム番号もしくは再生時間が連続であるＤＶフレーム列（DVF-sequence）の情報が記録される。具体的には、記録されているＤＶストリームの中で、DVF-sequenceの最初のＤＶフレームに対する、オフセットフレーム番号(Offset_FN_DVF)もしくはオフセット再生始時間が記録される。また、DVF-sequenceに含まれるＤＶフレームの数(Number_of_frames) が記録媒体に記録される。
【０２０２】
例えば、ＤＶストリームを新規に記録する時、連続して記録されたＤＶフレーム列にはフレーム番号および再生時間の不連続点は含まれず、DVF-sequenceは１つである。そのDVF-sequenceは、ＤＶフレーム列の最初のフレームから開始する。
【０２０３】
編集等によって、前記ＤＶフレーム列の中の不必要な再生区間のデータが消去され、残った全てのデータが１つのデータファイルにまとめられる場合を考える。この場合、新しいデータファイルの中には、DVF-sequenceが複数存在する場合がある。このとき、各DVF-sequenceの最初に再生されるＤＶフレームに対する、オフセットフレーム番号もしくはオフセット再生開始時間が記録媒体に記録される。さらに、DVF-sequence毎に、最初に再生されるＤＶフレームの前にあるデータのバイト量（Leading_data_size）と最後に再生されるＤＶフレームの後ろに続くデータのバイト量（Trailing_data_size），DVF-sequenceに含まれるＤＶフレームの数(Number_of_frames) が記録媒体に記録される。
【０２０４】
さらに、DVF-sequence情報を記録するシステムにおいては、ＤＶストリームのプログラム内容の変化点が検出され、そのプログラム内容が連続であるＤＶフレーム列の情報(program-sequence)が記録される。具体的には、記録されている１つのＤＶストリームの中で、program-sequenceが開始するＤＶフレームのフレーム番号または再生開始時間が記録される。program-sequenceは、DVF-sequenceの境界をまたいでも良い。
【０２０５】
従って、記録されている１つのＤＶストリームの中で、フレーム番号もしくは再生時間が連続であるＤＶフレーム列が開始するＤＶフレームのアドレスを正しく管理することが可能となる。DVF-sequenceが増加しても、Clipのファイル数が増加しないので、ファイル管理が容易となる。
【０２０６】
さらに、Offset_FN_DVFで各々のDVF-sequenceを識別するようにしたので、PlayItemが参照するDVF-sequenceの検索が容易となる（図２２参照）。
【０２０７】
また、ＡＶストリームファイルの中にフレーム番号もしくは再生時間の不連続点が含まれる場合であっても、適切にＡＶデータの再生開始時間と終了時間を管理できる。ランダムアクセス再生する時に、ファイル中の目的の再生開始位置を見つけやすいので、ユーザ入力に対して応答の速いランダムアクセス再生を実現できる。
【０２０８】
また、上述した本実施の形態では、ディジタルインターフェースとしてＩＥＥＥ１３９４を使った例を説明したが、ＵＳＢなどの、その他のインターフェースでもよいことは言うまでも無い。
【０２０９】
上述した一連の処理は、ハードウエアにより実行させることができるが、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム格納媒体からインストールされる。
【０２１０】
このプログラム格納媒体は、図２７に示されるように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク４１（フロッピディスクを含む）、光ディスク４２（CD-ROM（Compact Disc-Read Only Memory）、DVD（Digital Versatile Disc）を含む）、光磁気ディスク４３（ＭＤ（Mini Disc）を含む）、半導体メモリ４４などによりなるパッケージメディアにより構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記録されているROMや、ハードディスク（図示せず）などで構成される。
【０２１１】
なお、本明細書において、コンピュータプログラムを記述するステップは、記載された順序に従って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０２１２】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【図面の簡単な説明】
【０２１３】
【図１】従来のＤＶにおいて１ビデオフレームをIEEE1394においてデータ転送するときのデータの構造を示す図である。
【図２】従来のIEEE1394上を流れるSource PacketとDIF Blockの関係を示す図である。
【図３】記録再生システムで用いる記録媒体上のアプリケーションフォーマットの簡単化された構造を説明する図である。
【図４】PlayList()のシンタクスを示す図である。
【図５】PlayItem()のシンタクスを示す図である。
【図６】VDRディスク上のディレクトリ構造の例を示す図である。
【図７】Clip Information fileとClip AV stream fileの関係を示す図である。
【図８】Clip Information fileのシンタクスを示す図である。
【図９】図８のClipInfo()のシンタクスを示す図である。
【図１０】ＤＶストリームを新規に記録媒体に記録するときの入力するＤＶストリームを説明する図である。
【図１１】図１０のＤＶストリームを新規に記録媒体に記録するときにできるClip AV stream fileの構造を説明する図である。
【図１２】DVF sequenceを説明する図である。
【図１３】ＤＶストリームを新規に記録媒体に記録するときにできるClip AV stream fileのディスク上のデータ配列を説明する図である。
【図１４】図１３のClip AV stream fileの一部のデータを消去したときのディスク上のデータ配置を説明する図である。
【図１５】ＤＶストリームを新規に記録媒体に記録する時にできるDVF sequenceを説明する図である。
【図１６】図１５のＤＶストリームを新規に記録媒体に記録する時のDVF-sequenceに対するフレーム番号を説明する図である。
【図１７】図１５のDVF sequenceの一部を消去した後のDVF sequenceを説明する図である。
【図１８】図１７のDVF sequenceの一部を消去した後のDVF-sequenceに対するフレーム番号を説明する図である。
【図１９】DVF sequenceの情報を使用して、任意のＤＶフレームへランダムアクセスする例を説明する図である。
【図２０】Sequenceinfo()のシンタクスを示す図である。
【図２１】Clip AVストリームの一部を消去する前のClipとPlaylistの関係を説明する図である。
【図２２】図２１において選択されたClip AVストリームの一部を消去したときのClipとPlaylistの関係を説明する図である。
【図２３】Program sequenceを説明する図である。
【図２４】PlogramInfo()のシンタクスを示す図である。
【図２５】１つのClip AVストリームのデータを部分的に消去する前のDVF sequenceとprogram sequenceの関係を説明する図である。
【図２６】図２５において選択された１つのClip AVストリームのデータを部分的に消去したときのDVF sequenceとprogram sequenceの関係を説明する図である。
【図２７】本発明のＤＶ記録再生装置の構成例を示すブロック図である。
【図２８】ＤＶストリームの記録処理を説明するフローチャートである。
【図２９】PlayListの再生処理を説明するフローチャートである。
【図３０】ＡＶストリームファイルの部分消去処理を説明するフローチャートである。
【図３１】図１３のClip AV stream fileの一部のデータを消去したときのリーディングデータのデータ量が異なる場合について説明する図である。
【符号の説明】
【０２１４】
１  ＤＶ記録再生装置，  ２  記録部，  ３  再生部，  １０  記録媒体，  １１  読み出し部，  １２  復調部，  １３  ECC復号部，  １４  バッファ，  １５  ＤＶ復号部，  １６  IEEE1394 I/F，  １７  制御部，  １８  DV符号化部，  １９  IEEE1394 I/F，  ２０  ＤＶストリーム解析部，  ２１  バッファ，  ２２  ECC符号化部，  ２３  変調部，  ２４  書き込み部，  ４１  磁気ディスク，  ４２  光ディスク，  ４３  光磁気ディスク，  ４４  半導体メモリ
【図１】
0004423972.tif 000003
【図２】
0004423972.tif 000004
【図３】
0004423972.tif 000005
【図４】
0004423972.tif 000006
【図５】
0004423972.tif 000007
【図６】
0004423972.tif 000008
【図７】
0004423972.tif 000009
【図８】
0004423972.tif 000010
【図９】
0004423972.tif 000011
【図１０】
0004423972.tif 000012
【図１１】
0004423972.tif 000013
【図１２】
0004423972.tif 000014
【図１３】
0004423972.tif 000015
【図１４】
0004423972.tif 000016
【図１５】
0004423972.tif 000017
【図１６】
0004423972.tif 000018
【図１７】
0004423972.tif 000019
【図１８】
0004423972.tif 000020
【図１９】
0004423972.tif 000021
【図２０】
0004423972.tif 000022
【図２１】
0004423972.tif 000023
【図２２】
0004423972.tif 000024
【図２３】
0004423972.tif 000025
【図２４】
0004423972.tif 000026
【図２５】
0004423972.tif 000027
【図２６】
0004423972.tif 000028
【図２７】
0004423972.tif 000029
【図２８】
0004423972.tif 000030
【図２９】
0004423972.tif 000031
【図３０】
0004423972.tif 000032
【図３１】
0004423972.tif 000033