"映像データを、所定の時間毎にビットレートを変更する可変ビットレートにより符号化する符号化器と、記録してからの時間経過に対して符号化される前記映像データのファイルサイズが比例するように、前記所定の時間内では固定ビットレートとし、単位時間あたりの映像符号化データ発生量が所定量に満たない場合、スタッフィングバイトを符号化し映像符号化データに挿入してVBV制御を行う制御部とを有する映像データ符号化装置。前記所定の時間はGOPである請求項1に記載の映像データ符号化装置。前記制御部は、前記所定の時間区間毎の時間経過に対して符号化データ量が所定の誤差の範囲内で比例するような符号化制御を行う第1の符号化モードと、前記符号化制御を行わない第2の符号化モードのどちらか一方で符号化するように制御する請求項1に記載の映像データ符号化装置。前記制御部は、前記所定の時間区間毎の時間経過に対して前記符号化データ量が前記所定の誤差の範囲内で比例するように符号化する前記第1の符号化モードか否かを示す付加情報を生成する請求項3に記載の映像データ符号化装置。映像データを、所定の時間毎にビットレートを変更する可変ビットレートにより符号化する符号化ステップと、記録してからの時間経過に対して符号化される前記映像データのファイルサイズが比例するように、前記所定の時間内では固定ビットレートとし、単位時間あたりの映像符号化データ発生量が所定量に満たない場合、スタッフィングバイトを符号化し映像符号化データに挿入してVBV制御を行う制御ステップとを含む映像データ符号化方法。映像データを、所定の時間毎にビットレートを変更する可変ビットレートにより符号化する符号化ステップと、記録してからの時間経過に対して符号化される前記映像データのファイルサイズが比例するように、前記所定の時間内では固定ビットレートとし、単位時間あたりの映像符号化データ発生量が所定量に満たない場合、スタッフィングバイトを符号化し映像符号化データに挿入してVBV制御を行う制御ステップとをコンピュータに実行させるコンピュータが読み取り可能なプログラムが記録されている記録媒体。映像データを、所定の時間毎にビットレートを変更する可変ビットレートにより符号化する符号化ステップと、記録してからの時間経過に対して符号化される前記映像データのファイルサイズが比例するように、前記所定の時間内では固定ビットレートとし、単位時間あたりの映像符号化データ発生量が所定量に満たない場合、スタッフィングバイトを符号化し映像符号化データに挿入してVBV制御を行う制御ステップとを実行させるプログラム。上述したように、記録媒体の容量が増大することにより、その記録媒体には、多くのデータこの場合、番組に関する映像や音声などが記録できるようになる。従って、1枚のディスクに多くの番組が記録されることになり、ユーザが、それらのディスク内に記録されている多くの番組から視聴したい1番組を選択するといったような操作が煩雑になってしまう。そこで、ユーザがディスクの再生時に、簡便に記録されているデータを確認し、所望の番組データが選択できるようにする必要があるといった課題があった。本技術はこのような状況に鑑みてなされたものであり、記録媒体に記録されているデータの内容の管理情報をファイル化して記録する事により、記録媒体に記録されているデータ内容、および、再生情報を適切に管理することができるようにする。本技術の一側面の映像データ符号化装置は、映像データを、所定の時間毎にビットレートを変更する可変ビットレートにより符号化する符号化器と、記録してからの時間経過に対して符号化される前記映像データのファイルサイズが比例するように、前記所定の時間内では固定ビットレートとし、単位時間あたりの映像符号化データ発生量が所定量に満たない場合、スタッフィングバイトを符号化し映像符号化データに挿入してVBV制御を行う制御部とを有する。前記所定の時間はGOPであるようにすることができる。前記制御部は、前記所定の時間区間毎の時間経過に対して符号化データ量が所定の誤差の範囲内で比例するような符号化制御を行う第1の符号化モードと、前記符号化制御を行わない第2の符号化モードのどちらか一方で符号化するように制御することができる。前記制御部は、前記所定の時間区間毎の時間経過に対して前記符号化データ量が前記所定の誤差の範囲内で比例するように符号化する前記第1の符号化モードか否かを示す付加情報を生成することができる。本技術の一側面の映像データ符号化方法、記録媒体、またはプログラムは、映像データを、所定の時間毎にビットレートを変更する可変ビットレートにより符号化する符号化ステップと、記録してからの時間経過に対して符号化される前記映像データのファイルサイズが比例するように、前記所定の時間内では固定ビットレートとし、単位時間あたりの映像符号化データ発生量が所定量に満たない場合、スタッフィングバイトを符号化し映像符号化データに挿入してVBV制御を行う制御ステップとを含む映像データ符号化方法、コンピュータに実行させるコンピュータが読み取り可能なプログラムが記録されている記録媒体、またはプログラムである。本技術の一側面においては、映像データが、所定の時間毎にビットレートを変更する可変ビットレートにより符号化され、記録してからの時間経過に対して符号化される映像データのファイルサイズが比例するように、所定の時間内では固定ビットレートとし、単位時間あたりの映像符号化データ発生量が所定量に満たない場合、スタッフィングバイトを符号化し映像符号化データに挿入してVBV制御が行われる。本技術の側面によれば、記録媒体に記録する情報の管理を容易にすることが可能になる。以下に、本技術の実施の形態について、図面を参照して説明する。図1は、本技術を適用した記録再生装置1の内部構成例を示す図である。まず、外部から入力された信号を記録媒体に記録する動作を行う部分の構成について説明する。記録再生装置1は、アナログデータ、または、デジタルデータを入力し、記録することができる構成とされている。端子11には、アナログのビデオ信号が、端子12には、アナログのオーディオ信号が、それぞれ入力される。端子11に入力されたビデオ信号は、解析部14とAVエンコーダ15に、それぞれ出力される。端子12に入力されたオーディオ信号は、AVエンコーダ15に出力される。解析部14は、入力されたビデオ信号からシーンチェンジなどの特徴点を抽出する。AVエンコーダ15は、入力されたビデオ信号とオーディオ信号を、それぞれ符号化し、符号化ビデオストリーム、符号化オーディオストリーム、およびAV同期等のシステム情報をマルチプレクサ16に出力する。符号化ビデオストリームは、例えば、MPEGMovingPictureExpertGroup2方式により符号化されたビデオストリームであり、符号化オーディオストリームは、例えば、MPEG1方式により符号化されたオーディオストリームや、ドルビーAC3方式により符号化されたオーディオストリーム等である。マルチプレクサ16は、入力されたビデオおよびオーディオのストリームを、入力システム情報に基づいて多重化して、スイッチ17を介して多重化ストリーム解析部18とソースパケッタイザ19に出力する。多重化ストリームは、例えば、MPEG2トランスポートストリームやMPEG2プログラムストリームである。ソースパケッタイザ19は、入力された多重化ストリームを、そのストリームを記録させる記録媒体100のアプリケーションフォーマットに従って、ソースパケットから構成されるAVストリームを符号化する。AVストリームは、ECC誤り訂正符号化部20、変調部21で所定の処理が施され、書き込み部22に出力される。書き込み部22は、制御部23から出力される制御信号に基づいて、記録媒体100にAVストリームファイルを書き込む記録する。デジタルインタフェースまたはデジタルテレビジョンチューナから入力されるデジタルテレビジョン放送等のトランスポートストリームは、端子13に入力される。端子13に入力されたトランスポートストリームの記録方式には、2通りあり、それらは、トランスペアレントに記録する方式と、記録ビットレートを下げるなどの目的のために再エンコードをした後に記録する方式である。記録方式の指示情報は、ユーザインタフェースとしての端子24から制御部23へ入力される。入力トランスポートストリームをトランスペアレントに記録する場合、端子13に入力されたトランスポートストリームは、多重化ストリーム解析部18と、ソースパケッタイザ19に出力される。これ以降の記録媒体100へAVストリームが記録されるまでの処理は、上述の入力オーディオ浸透とビデオ信号を符号化して記録する場合と同一の処理なので、その説明は省略する。入力トランスポートストリームを再エンコードした後に記録する場合、端子13に入力されたトランスポートストリームは、デマルチプレクサ26に入力される。デマルチプレクサ26は、入力されたトランスポートストリームに対してデマルチプレクス処理を施し、ビデオストリーム、オーディオストリーム、およびシステム情報を抽出する。デマルチプレクサ26により抽出されたストリーム情報のうち、ビデオストリームはAVデコーダ27に、オーディオストリームとシステム情報はマルチプレクサ16に、それぞれ出力される。AVデコーダ27は、入力されたビデオストリームを復号し、その再生ビデオ信号をAVエンコーダ15に出力する。AVエンコーダ15は、入力ビデオ信号を符号化し、符号化ビデオストリームをマルチプレクサ16に出力する。一方、デマルチプレクサ26から出力され、マルチプレクサ16に入力されたオーディオストリームとシステム情報、および、AVエンコーダ15から出力されたビデオストリームは、入力システム情報に基づいて、多重化されて、多重化ストリームとして多重化ストリーム解析部18とソースパケットタイザ19にスイッチ17を介して出力される。これ以後の記録媒体100へAVストリームが記録されるまでの処理は、上述の入力オーディオ信号とビデオ信号を符号化して記録する場合と同一の処理なので、その説明は省略する。本実施の形態の記録再生装置1は、AVストリームのファイルを記録媒体100に記録すると共に、そのファイルを説明するアプリケーションデータベース情報も記録する。アプリケーションデータベース情報は、制御部23により作成される。制御部23への入力情報は、解析部14からの動画像の特徴情報、多重化ストリーム解析部18からのAVストリームの特徴情報、および端子24から入力されるユーザからの指示情報である。解析部14から供給される動画像の特徴情報は、入力動画像信号の中の特徴的な画像に関係する情報であり、例えば、プログラムの開始点、シーンチェンジ点、コマーシャルCMの開始終了点などの指定情報マークであり、また、その指定場所の画像のサムネイル画像の情報も含まれる。多重化ストリーム解析部18からのAVストリームの特徴情報は、記録されるAVストリームの符号化情報に関係する情報であり、例えば、AVストリーム内のIピクチャのアドレス情報、AVストリームの符号化パラメータ、AVストリームの中の符号化パラメータの変化点情報、ビデオストリームの中の特徴的な画像に関係する情報マークなどである。端子24からのユーザの指示情報は、AVストリームの中の、ユーザが指定した再生区間の指定情報、その再生区間の内容を説明するキャラクター文字、ユーザが好みのシーンにセットするブックマークやリジューム点の情報などである。制御部23は、上記の入力情報に基づいて、AVストリームのデータベース、AVストリームの再生区間をグループ化したものPlayListのデータベース、記録媒体100の記録内容の管理情報、およびサムネイル画像の情報を作成する。これらの情報から構成されるアプリケーションデータベース情報は、AVストリームと同様にして、ECC符号化部20、変調部21で処理されて、書き込み部22へ入力される。書き込み部22は、制御部23から出力される制御信号に基づいて、記録媒体100へデータベースファイルを記録する。上述したアプリケーションデータベース情報についての詳細は後述する。このようにして記録媒体100に記録されたAVストリームファイル画像データと音声データのファイルと、アプリケーションデータベース情報が再生される場合、まず、制御部23は、読み出し部28に対して、記録媒体100からアプリケーションデータベース情報を読み出すように指示する。そして、読み出し部28は、記録媒体100からアプリケーションデータベース情報を読み出し、そのアプリケーションデータベース情報は、復調部29、ECC復号部30の処理を経て、制御部23へ入力される。制御部23は、アプリケーションデータベース情報に基づいて、記録媒体100に記録されているPlayListの一覧を端子24のユーザインタフェースへ出力する。ユーザは、PlayListの一覧から再生したいPlayListを選択し、再生を指定されたPlayListに関する情報が制御部23へ入力される。制御部23は、そのPlayListの再生に必要なAVストリームファイルの読み出しを、読み出し部28に指示する。読み出し部28は、その指示に従い、記録媒体100から対応するAVストリームを読み出し復調部29に出力する。復調部29に入力されたAVストリームは、所定の処理が施されることにより復調され、さらにECC復号部30の処理を経て、ソースデパケッタイザ31出力される。ソースデパケッタイザ31は、記録媒体100から読み出され、所定の処理が施されたアプリケーションフォーマットのAVストリームを、デマルチプレクサ26に出力できるストリームに変換する。デマルチプレクサ26は、制御部23により指定されたAVストリームの再生区間を構成するビデオストリーム、オーディオストリーム、およびAV同期等のシステム情報を、AVデコーダ27に出力する。AVデコーダ27は、ビデオストリームとオーディオストリームを復号し、再生ビデオ信号と再生オーディオ信号を、それぞれ対応する端子32と端子33から出力する。また、ユーザインタフェースとしての端子24から、ランダムアクセス再生や特殊再生を指示する情報が入力された場合、制御部23は、AVストリームのデータベースの内容に基づいて、記憶媒体100からのAVストリームの読み出し位置を決定し、そのAVストリームの読み出しを、読み出し部28に指示する。例えば、ユーザにより選択されたPlayListを、所定の時刻から再生する場合、制御部23は、指定された時刻に最も近いタイムスタンプを持つIピクチャからのデータを読み出すように読み出し部28に指示する。また、ユーザによって高速再生が指示された場合、制御部23は、AVストリームのデータベースに基づいて、AVストリームの中のIピクチャデータを順次連続して読み出すように読み出し部28に指示する。読み出し部28は、指定されたランダムアクセスポイントからAVストリームのデータを読み出し、読み出されたデータは、後段の各部の処理を経て再生される。次に、ユーザが、記録媒体100に記録されているAVストリームの編集をする場合を説明する。ユーザが、記録媒体100に記録されているAVストリームの再生区間を指定して新しい再生経路を作成したい場合、例えば、番組Aという歌番組から歌手Aの部分を再生し、その後続けて、番組Bという歌番組の歌手Aの部分を再生したいといった再生経路を作成したい場合、ユーザインタフェースとしての端子24から再生区間の開始点イン点と終了点アウト点の情報が制御部23に入力される。制御部23は、AVストリームの再生区間をグループ化したものPlayListのデータベースを作成する。ユーザが、記録媒体100に記録されているAVストリームの一部を消去したい場合、ユーザインタフェースとしての端子24から消去区間のイン点とアウト点の情報が制御部23に入力される。制御部23は、必要なAVストリーム部分だけを参照するようにPlayListのデータベースを変更する。また、AVストリームの不必要なストリーム部分を消去するように、書き込み部22に指示する。ユーザが、記録媒体100に記録されているAVストリームの再生区間を指定して新しい再生経路を作成したい場合であり、かつ、それぞれの再生区間をシームレスに接続したい場合について説明する。このような場合、制御部23は、AVストリームの再生区間をグループ化したものPlayListのデータベースを作成し、さらに、再生区間の接続点付近のビデオストリームの部分的な再エンコードと再多重化を行う。まず、端子24から再生区間のイン点のピクチャの情報と、アウト点のピクチャの情報が制御部23へ入力される。制御部23は、読み出し部28にイン点側ピクチャとアウト点側のピクチャを再生するために必要なデータの読み出しを指示する。そして、読み出し部28は、記録媒体100からデータを読み出し、そのデータは、復調部29、ECC復号部30、ソースデパケッタイザ31を経て、デマルチプレクサ26に出力される。制御部23は、デマルチプレクサ26に入力されたデータを解析して、ビデオストリームの再エンコード方法picturecodingtypeの変更、再エンコードする符号化ビット量の割り当てと、再多重化方式を決定し、その方式をAVエンコーダ15とマルチプレクサ16に供給する。次に、デマルチプレクサ26は、入力されたストリームをビデオストリーム、オーディオストリーム、およびシステム情報に分離する。ビデオストリームは、AVデコーダ27に入力されるデータとマルチプレクサ16に入力されるデータがある。前者のデータは、再エンコードするために必要なデータであり、これはAVデコーダ27で復号され、復号されたピクチャはAVエンコーダ15で再エンコードされて、ビデオストリームにされる。後者のデータは、再エンコードをしないで、オリジナルのストリームからコピーされるデータである。オーディオストリーム、システム情報については、直接、マルチプレクサ16に入力される。マルチプレクサ16は、制御部23から入力された情報に基づいて、入力ストリームを多重化し、多重化ストリームを出力する。多重化ストリームは、ECC符号化部20、変調部21で処理されて、書き込み部22に入力される。書き込み部22は、制御部23から供給される制御信号に基づいて、記録媒体100にAVストリームを記録する。以下に、アプリケーションデータベース情報や、その情報に基づく再生、編集といった操作に関する説明をする。図2は、アプリケーションフォーマットの構造を説明する図である。アプリケーションフォーマットは、AVストリームの管理のためにPlayListとClipの2つのレイヤをもつ。VolumeInformationは、ディスク内のすべてのClipとPlayListの管理をする。ここでは、1つのAVストリームとその付属情報のペアを1つのオブジェクトと考え、それをClipと称する。AVストリームファイルはClipAVstreamfileと称し、その付属情報は、ClipInformationfileと称する。1つのClipAVstreamfileは、MPEG2トランスポートストリームをアプリケーションフォーマットによって規定される構造に配置したデータをストアする。一般的に、ファイルは、バイト列として扱われるが、ClipAVstreamfileのコンテンツは、時間軸上に展開され、Clipの中のエントリーポイントは、主に時間ベースで指定される。所定のClipへのアクセスポイントのタイムスタンプが与えられた時、ClipInformationfileは、ClipAVstreamfileの中でデータの読み出しを開始すべきアドレス情報を見つけるために役立つ。PlayListについて、図3を参照して説明する。PlayListは、Clipの中からユーザが見たい再生区間を選択し、それを簡単に編集することができるようにするために設けられている。1つのPlayListは、Clipの中の再生区間の集まりである。所定のClipの中の1つの再生区間は、PlayItemと呼ばれ、それは、時間軸上のイン点INとアウト点OUTの対で表される。従って、PlayListは、複数のPlayItemが集まることにより構成される。PlayListには、2つのタイプがある。1つは、RealPlayListであり、もう1つは、VirtualPlayListである。RealPlayListは、それが参照しているClipのストリーム部分を共有している。すなわち、RealPlayListは、それの参照しているClipのストリーム部分に相当するデータ容量をディスクの中で占め、RealPlayListが消去された場合、それが参照しているClipのストリーム部分もまたデータが消去される。VirtualPlayListは、Clipのデータを共有していない。従って、VirtualPlayListが変更または消去されたとしても、Clipの内容には何も変化が生じない。次に、RealPlayListの編集について説明する。図4Aは、RealPlayListのクリエイトに関する図であり、AVストリームが新しいClipとして記録される場合、そのClip全体を参照するRealPlayListが新たに作成される操作である。図4Bは、RealPlayListのディバイドに関する図であり、RealPlayListが所望な点で分けられて、2つのRealPlayListに分割される操作である。この分割という操作は、例えば、1つのPlayListにより管理される1つのクリップ内に、2つの番組が管理されているような場合に、ユーザが1つ1つの番組として登録記録し直したいといったようなときに行われる。この操作により、Clipの内容が変更されるClip自体が分割されることはない。図4Cは、RealPlayListのコンバインに関する図であり、2つのRealPlayListを結合して、1つの新しいRealPlayListにする操作である。この結合という操作は、例えば、ユーザが2つの番組を1つの番組として登録し直したいといったようなときに行われる。この操作により、Clipが変更されるClip自体が1つにされることはない。図5Aは、RealPlayList全体のデリートに関する図であり、所定のRealPlayList全体を消去する操作がされた場合、削除されたRealPlayListが参照するClipの、対応するストリーム部分も削除される。図5Bは、RealPlayListの部分的な削除に関する図であり、RealPlayListの所望な部分が削除された場合、対応するPlayItemが、必要なClipのストリーム部分だけを参照するように変更される。そして、Clipの対応するストリーム部分は削除される。図5Cは、RealPlayListのミニマイズに関する図であり、RealPlayListに対応するPlayItemを、VirtualPlayListに必要なClipのストリーム部分だけを参照するようにする操作である。VirtualPlayListにとって不必要なClipの、対応するストリーム部分は削除される。上述したような操作により、RealPlayListが変更されて、そのRealPlayListが参照するClipのストリーム部分が削除された場合、その削除されたClipを使用しているVirtualPlayListが存在し、そのVirtualPlayListにおいて、削除されたClipにより問題が生じる可能性がある。そのようなことが生じないように、ユーザに、削除という操作に対して、そのRealPlayListが参照しているClipのストリーム部分を参照しているVirtualPlayListが存在し、もし、そのRealPlayListが消去されると、そのVirtualPlayListもまた消去されることになるが、それでも良いかといったメッセージなどを表示させることにより、確認警告を促した後に、ユーザの指示により削除の処理を実行、または、キャンセルする。または、VirtualPlayListを削除する代わりに、RealPlayListに対してミニマイズの操作が行われるようにする。次にVirtualPlayListに対する操作について説明する。VirtualPlayListに対して操作が行われたとしても、Clipの内容が変更されることはない。図6は、アセンブル編集に関する図であり、ユーザが見たいと所望した再生区間のPlayItemを作り、VirtualPlayListを作成するといった操作である。PlayItem間のシームレス接続が、アプリケーションフォーマットによりサポートされている後述。図6Aに示したように、2つのRealPlayList1,2と、それぞれのRealPlayListに対応するClip1,2が存在している場合に、ユーザがRealPlayList1内の所定の区間In1乃至Out1までの区間:PlayItem1を再生区間として指示し、続けて再生する区間として、RealPlayList2内の所定の区間In2乃至Out2までの区間:PlayItem2を再生区間として指示したとき、図6Bに示すように、PlayItem1とPlayItem2から構成される1つのVirtualPlayListが作成される。次に、VirtualPlayListの再編集について説明する。再編集には、VirtualPlayListの中のイン点やアウト点の変更、VirtualPlayListへの新しいPlayItemの挿入や追加、VirtualPlayListの中のPlayItemの削除などがある。また、VirtualPlayListそのものを削除することもできる。図7は、VirtualPlayListへのオーディオのアフレコに関する図であり、VirtualPlayListへのオーディオのアフレコをサブパスとして登録する操作のことである。このオーディオのアフレコは、アプリケーションフォーマットによりサポートされている。VirtualPlayListのメインパスのAVストリームに、付加的なオーディオストリームが、サブパスとして付加される。RealPlayListとVirtualPlayListで共通の操作として、図8に示すようなPlayListの再生順序の変更がある。この操作は、ディスクの中でのPlayListの再生順序の変更であり、アプリケーションフォーマットにおいて定義されるTableOfPlayList図20などを参照して後述するによってサポートされる。この操作により、Clipの内容が変更されるようなことはない。次に、マークMarkについて説明する。マークは、ClipおよびPlayListの中のハイライトや特徴的な時間を指定するために設けられている。Clipに付加されるマークは、AVストリームの内容に起因する特徴的なシーンを指定する、例えば、シーンチェンジ点などである。PlayListを再生する時、そのPlayListが参照するClipのマークを参照して、使用する事ができる。PlayListに付加されるマークは、主にユーザによってセットされる、例えば、ブックマークやリジューム点などである。ClipまたはPlayListにマークをセットすることは、マークの時刻を示すタイムスタンプをマークリストに追加することにより行われる。また、マークを削除することは、マークリストの中から、そのマークのタイムスタンプを除去する事である。従って、マークの設定や削除により、AVストリームは何の変更もされない。次にサムネイルについて説明する。サムネイルは、Volume、PlayList、およびClipに付加される静止画である。サムネイルには、2つの種類があり、1つは、内容を表す代表画としてのサムネイルである。これは主としてユーザがカーソル不図示などを操作して見たいものを選択するためのメニュー画面で使われるものである。もう1つは、マークが指しているシーンを表す画像である。Volumeと各Playlistは代表画を持つことができるようにする必要がある。Volumeの代表画は、ディスク記録媒体100、以下、記録媒体100はディスク状のものであるとし、適宜、ディスクと記述するを記録再生装置1の所定の場所にセットした時に、そのディスクの内容を表す静止画を最初に表示する場合などに用いられることを想定している。Playlistの代表画は、Playlistを選択するメニュー画面において、Playlistの内容を表すための静止画として用いられることを想定している。Playlistの代表画として、Playlistの最初の画像をサムネイル代表画にすることが考えられるが、必ずしも再生時刻0の先頭の画像が内容を表す上で最適な画像とは限らない。そこで、Playlistのサムネイルとして、任意の画像をユーザが設定できるようにする。以上2種類のサムネイルをメニューサムネイルと称する。メニューサムネイルは頻繁に表示されるため、ディスクから高速に読み出される必要がある。このため、すべてのメニューサムネイルを1つのファイルに格納することが効率的である。メニューサムネイルは、必ずしもボリューム内の動画から抜き出したピクチャである必要はなく、図10に示すように、パーソナルコンピュータやデジタルスチルカメラから取り込こまれた画像でもよい。一方、ClipとPlaylistには、複数個のマークを打てる必要があり、マーク位置の内容を知るためにマーク点の画像を容易に見ることが出来るようにする必要がある。このようなマーク点を表すピクチャをマークサムネイルMarkThumbnailsと称する。従って、サムネイルの元となる画像は、外部から取り込んだ画像よりも、マーク点の画像を抜き出したものが主となる。図11は、PlayListに付けられるマークと、そのマークサムネイルの関係について示す図であり、図12は、Clipに付けられるマークと、そのマークサムネイルの関係について示す図である。マークサムネイルは、メニューサムネイルと異なり、Playlistの詳細を表す時に、サブメニュー等で使われるため、短いアクセス時間で読み出されるようなことは要求されない。そのため、サムネイルが必要になる度に、記録再生装置1がファイルを開き、そのファイルの一部を読み出すことで多少時間がかかっても、問題にはならない。また、ボリューム内に存在するファイル数を減らすために、すべてのマークサムネイルは1つのファイルに格納するのがよい。Playlistはメニューサムネイル1つと複数のマークサムネイルを有することができるが、Clipは直接ユーザが選択する必要性がない通常、Playlist経由で指定するため、メニューサムネイルを設ける必要はない。図13は、上述したことを考慮した場合のメニューサムネイル、マークサムネイル、PlayList、およびClipの関係について示した図である。メニューサムネイルファイルには、PlayList毎に設けられたメニューサムネイルがファイルされている。メニューサムネイルファイルには、ディスクに記録されているデータの内容を代表するボリュームサムネイルが含まれている。マークサムネイルファイルは、各PlayList毎と各Clip毎に作成されたサムネイルがファイルされている。次に、CPICharacteristicPointInformationについて説明する。CPIは、Clipインフォメーションファイルに含まれるデータであり、主に、それはClipへのアクセスポイントのタイムスタンプが与えられた時、ClipAVstreamfileの中でデータの読み出しを開始すべきデータアドレスを見つけるために用いられる。本実施の形態では、2種類のCPIを用いる。1つは、EPmapであり、もう一つは、TUmapである。EPmapは、エントリーポイントデータのリストであり、それはエレメンタリストリームおよびトランスポートストリームから抽出されたものである。これは、AVストリームの中でデコードを開始すべきエントリーポイントの場所を見つけるためのアドレス情報を持つ。1つのEPデータは、プレゼンテーションタイムスタンプPTSと、そのPTSに対応するアクセスユニットのAVストリームの中のデータアドレスの対で構成される。EPmapは、主に2つの目的のために使用される。第1に、PlayListの中でプレゼンテーションタイムスタンプによって参照されるアクセスユニットのAVストリームの中のデータアドレスを見つけるために使用される。第2に、ファーストフォワード再生やファーストリバース再生のために使用される。記録再生装置1が、入力AVストリームを記録する場合、そのストリームのシンタクスを解析することができるとき、EPmapが作成され、ディスクに記録される。TUmapは、デジタルインタフェースを通して入力されるトランスポートパケットの到着時刻に基づいたタイムユニットTUデータのリストを持つ。これは、到着時刻ベースの時間とAVストリームの中のデータアドレスとの関係を与える。記録再生装置1が、入力AVストリームを記録する場合、そのストリームのシンタクスを解析することができないとき、TUmapが作成され、ディスクに記録される。本実施の形態では、セルフエンコードのストリームフォーマットSESFを定義する。SESFは、アナログ入力信号を符号化する目的、およびデジタル入力信号例えばDVをデコードしてからMPEG2トランスポートストリームに符号化する場合に用いられる。SESFは、MPEG2トランスポートストリームおよびAVストリームについてのエレメンタリストリームの符号化制限を定義する。記録再生装置1が、SESFストリームをエンコードし、記録する場合、EPmapが作成され、ディスクに記録される。デジタル放送のストリームは、次に示す方式のうちのいずれかが用いられて記録媒体100に記録される。まず、デジタル放送のストリームをSESFストリームにトランスコーディングする。この場合、記録されたストリームは、SESFに準拠しなければならない。この場合、EPmapが作成されて、ディスクに記録されなければならない。あるいは、デジタル放送ストリームを構成するエレメンタリストリームを新しいエレメンタリストリームにトランスコーディングし、そのデジタル放送ストリームの規格化組織が定めるストリームフォーマットに準拠した新しいトランスポートストリームに再多重化する。この場合、EPmapが作成されて、ディスクに記録されなければならない。例えば、入力ストリームがISDB日本のデジタルBS放送の規格名称準拠のMPEG2トランスポートストリームであり、それがHDTVビデオストリームとMPEGAACオーディオストリームを含むとする。HDTVビデオストリームをSDTVビデオストリームにトランスコーディングし、そのSDTVビデオストリームとオリジナルのAACオーディオストリームをTSに再多重化する。SDTVストリームと記録されるトランスポートストリームは、共にISDBフォーマットに準拠しなければならない。デジタル放送のストリームが、記録媒体100に記録される際の他の方式として、入力トランスポートストリームをトランスペアレントに記録する入力トランスポートストリームを何も変更しないで記録する場合であり、その時にEPmapが作成されてディスクに記録される。または、入力トランスポートストリームをトランスペアレントに記録する入力トランスポートストリームを何も変更しないで記録する場合であり、その時にTUmapが作成されてディスクに記録される。次にディレクトリとファイルについて説明する。以下、記録再生装置1をDVRDigitalVideoRecordingと適宜記述する。図14はディスク上のディレクトリ構造の一例を示す図である。DVRのディスク上に必要なディレクトリは、図14に示したように、DVRディレクトリを含むrootディレクトリ、PLAYLISTディレクトリ、CLIPINFディレクトリ、M2TSディレクトリ、およびDATAディレクトリを含むDVRディレクトリである。rootディレクトリの下に、これら以外のディレクトリを作成されるようにしても良いが、それらは、本実施の形態のアプリケーションフォーマットでは、無視されるとする。DVRディレクトリの下には、DVRアプリケーションフォーマットによって規定される全てのファイルとディレクトリがストアされる。DVRディレクトリは、4個のディレクトリを含む。PLAYLISTディレクトリの下には、RealPlayListとVirtualPlayListのデータベースファイルが置かれる。このディレクトリは、PlayListが1つもなくても存在する。CLIPINFディレクトリの下には、Clipのデータベースが置かれる。このディレクトリも、Clipが1つもなくても存在する。M2TSディレクトリの下には、AVストリームファイルが置かれる。このディレクトリは、AVストリームファイルが1つもなくても存在する。DATAディレクトリは、デジタルTV放送などのデータ放送のファイルがストアされる。DVRディレクトリは、次に示すファイルをストアする。infodvrファイルは、DVRディレクトリの下に作られ、アプリケーションレイヤの全体的な情報をストアする。DVRディレクトリの下には、ただ一つのinfodvrがなければならない。ファイル名は、infodvrに固定されるとする。menuthmbファイルは、メニューサムネイル画像に関連する情報をストアする。DVRディレクトリの下には、ゼロまたは1つのメニューサムネイルがなければならない。ファイル名は、memuthmbに固定されるとする。メニューサムネイル画像が1つもない場合、このファイルは、存在しなくても良い。markthmbファイルは、マークサムネイル画像に関連する情報をストアする。DVRディレクトリの下には、ゼロまたは1つのマークサムネイルがなければならない。ファイル名は、markthmbに固定されるとする。メニューサムネイル画像が1つもない場合、このファイルは、存在しなくても良い。PLAYLISTディレクトリは、2種類のPlayListファイルをストアするものであり、それらは、RealPlayListとVirtualPlayListである。xxxxxrplsファイルは、1つのRealPlayListに関連する情報をストアする。それぞれのRealPlayList毎に、1つのファイルが作られる。ファイル名は、xxxxxrplsである。ここで、xxxxxは、5個の0乃至9まで数字である。ファイル拡張子は、rplsでなければならないとする。yyyyyvplsファイルは、1つのVirtualPlayListに関連する情報をストアする。それぞれのVirtualPlayList毎に、1つのファイルが作られる。ファイル名は、yyyyyvplsである。ここで、yyyyyは、5個の0乃至9まで数字である。ファイル拡張子は、vplsでなければならないとする。CLIPINFディレクトリは、それぞれのAVストリームファイルに対応して、1つのファイルをストアする。zzzzzclpiファイルは、1つのAVストリームファイルに対応するClipInformationfileである。ファイル名は、zzzzzclpiであり、zzzzzは、5個の0乃至9までの数字である。ファイル拡張子は、clpiでなければならないとする。M2TSディレクトリは、AVストリームのファイルをストアする。zzzzzm2tsファイルは、DVRシステムにより扱われるAVストリームファイルである。これは、ClipAVstreamfileまたはBridgeClipAVstreamである。ファイル名は、zzzzzm2tsであり、zzzzzは、5個の0乃至9までの数字である。ファイル拡張子は、m2tsでなければならないとする。DATAディレクトリは、データ放送から伝送されるデータをストアするものであり、データとは、例えば、XMLfileやMHEGファイルなどである。次に、各ディレクトリファイルのシンタクスとセマンティクスを説明する。まず、infodvrファイルについて説明する。図15は、infodvrファイルのシンタクスを示す図である。infodvrファイルは、3個のオブジェクトから構成され、それらは、DVRVolume、TableOfPlayLists、およびMakerPrivateDataである。図15に示したinfodvrのシンタクスについて説明するに、TableOfPlayListsStartaddressは、infodvrファイルの先頭のバイトからの相対バイト数を単位として、TableOfPlayListの先頭アドレスを示す。相対バイト数はゼロからカウントされる。MakerPrivateDataStartaddressは、infodvrファイルの先頭のバイトからの相対バイト数を単位として、MakerPrivateDataの先頭アドレスを示す。相対バイト数はゼロからカウントされる。paddingwordパディングワードは、infodvrのシンタクスに従って挿入される。N1とN2は、ゼロまたは任意の正の整数である。それぞれのパディングワードは、任意の値を取るようにしても良い。DVRVolumeは、ボリュームディスクの内容を記述する情報をストアする。図16は、DVRVolumeのシンタクスを示す図である。図16に示したDVRVolumeのシンタクスを説明するに、versionnumberは、このDVRVolumeのバージョンナンバーを示す4個のキャラクター文字を示す。versionnumberは、ISO646に従って、0045と符号化される。lengthは、このlengthフィールドの直後からDVRVolumeの最後までのDVRVolumeのバイト数を示す32ビットの符号なし整数で表される。ResumeVolumeは、ボリュームの中で最後に再生したRealPlayListまたはVirtualPlayListのファイル名を記憶している。ただし、RealPlayListまたはVirtualPlayListの再生をユーザが中断した時の再生位置は、PlayListMarkにおいて定義されるresumemarkにストアされる。図17は、ResumeVolumeのシンタクスを示す図である。図17に示したResumeVolumeのシンタクスを説明するに、validflagは、この1ビットのフラグが1にセットされている場合、resumePlayListnameフィールドが有効であることを示し、このフラグが0にセットされている場合、resumePlayListnameフィールドが無効であることを示す。resumePlayListnameの10バイトのフィールドは、リジュームされるべきRealPlayListまたはVirtualPlayListのファイル名を示す。図16に示したDVRVolumeのシンタクスのなかの、UIAppInfoVolumeは、ボリュームについてのユーザインタフェースアプリケーションのパラメータをストアする。図18は、UIAppInfoVolumeのシンタクスを示す図であり、そのセマンティクスを説明するに、charactersetの8ビットのフィールドは、Volumenameフィールドに符号化されているキャラクター文字の符号化方法を示す。その符号化方法は、図19に示される値に対応する。namelengthの8ビットフィールドは、Volumenameフィールドの中に示されるボリューム名のバイト長を示す。Volumenameのフィールドは、ボリュームの名称を示す。このフィールドの中の左からnamelength数のバイト数が、有効なキャラクター文字であり、それはボリュームの名称を示す。Volumenameフィールドの中で、それら有効なキャラクター文字の後の値は、どんな値が入っていても良い。Volumeprotectflagは、ボリュームの中のコンテンツを、ユーザに制限することなしに見せてよいかどうかを示すフラグである。このフラグが1にセットされている場合、ユーザが正しくPIN番号パスワードを入力できたときだけ、そのボリュームのコンテンツを、ユーザに見せる事再生される事が許可される。このフラグが0にセットされている場合、ユーザがPIN番号を入力しなくても、そのボリュームのコンテンツを、ユーザに見せる事が許可される。最初に、ユーザが、ディスクをプレーヤへ挿入した時点において、もしこのフラグが0にセットされているか、または、このフラグが1にセットされていてもユーザがPIN番号を正しく入力できたならば、記録再生装置1は、そのディスクの中のPlayListの一覧を表示させる。それぞれのPlayListの再生制限は、volumeprotectflagとは無関係であり、それはUIAppInfoPlayListの中に定義されるplaybackcontrolflagによって示される。PINは、4個の0乃至9までの数字で構成され、それぞれの数字は、ISOIEC646に従って符号化される。refthumbnailindexのフィールドは、ボリュームに付加されるサムネイル画像の情報を示す。refthumbnailindexフィールドが、0xFFFFでない値の場合、そのボリュームにはサムネイル画像が付加されており、そのサムネイル画像は、menuthumファイルの中にストアされている。その画像は、menuthumファイルの中でrefthumbnailindexの値を用いて参照される。refthumbnailindexフィールドが、0xFFFFである場合、そのボリュームにはサムネイル画像が付加されていないことを示す。次に図15に示したinfodvrのシンタクス内のTableOfPlayListsについて説明する。TableOfPlayListsは、PlayListのファイル名をストアする。ボリュームに記録されているすべてのPlayListファイルは、TableOfPlayListの中に含まれる。TableOfPlayListsは、ボリュームの中のPlayListのデフォルトの再生順序を示す。図20は、TableOfPlayListsのシンタクスを示す図であり、そのシンタクスについて説明するに、TableOfPlayListsのversionnumberは、このTableOfPlayListsのバージョンナンバーを示す4個のキャラクター文字を示す。versionnumberは、ISO646に従って、0045と符号化されなければならない。lengthは、このlengthフィールドの直後からTableOfPlayListsの最後までのTableOfPlayListsのバイト数を示す32ビットの符号なしの整数である。numberofPlayListsの16ビットのフィールドは、PlayListfilenameを含むforloopのループ回数を示す。この数字は、ボリュームに記録されているPlayListの数に等しくなければならない。PlayListfilenameの10バイトの数字は、PlayListのファイル名を示す。図21は、TableOfPlayListsのシンタクスを別実施の構成を示す図である。図21に示したシンタクスは、図20に示したシンタクスに、UIAppinfoPlayList後述を含ませた構成とされている。このように、UIAppinfoPlayListを含ませた構成とすることで、TableOfPlayListsを読み出すだけで、メニュー画面を作成することが可能となる。ここでは、図20に示したシンタクスを用いるとして以下の説明をする。図15に示したinfodvrのシンタクス内のMakersPrivateDataについて説明する。MakersPrivateDataは、記録再生装置1のメーカが、各社の特別なアプリケーションのために、MakersPrivateDataの中にメーカのプライベートデータを挿入できるように設けられている。各メーカのプライベートデータは、それを定義したメーカを識別するために標準化されたmakerIDを持つ。MakersPrivateDataは、1つ以上のmakerIDを含んでも良い。所定のメーカが、プライベートデータを挿入したい時に、すでに他のメーカのプライベートデータがMakersPrivateDataに含まれていた場合、他のメーカは、既にある古いプライベートデータを消去するのではなく、新しいプライベートデータをMakersPrivateDataの中に追加するようにする。このように、本実施の形態においては、複数のメーカのプライベートデータが、1つのMakersPrivateDataに含まれることが可能であるようにする。図22は、MakersPrivateDataのシンタクスを示す図である。図22に示したMakersPrivateDataのシンタクスについて説明するに、versionnumberは、このMakersPrivateDataのバージョンナンバーを示す4個のキャラクター文字を示す。versionnumberは、ISO646に従って、0045と符号化されなければならない。lengthは、このlengthフィールドの直後からMakersPrivateDataの最後までのMakersPrivateDataのバイト数を示す32ビットの符号なし整数を示す。mpdblocksstartaddressは、MakersPrivateDataの先頭のバイトからの相対バイト数を単位として、最初のmpdblockの先頭バイトアドレスを示す。相対バイト数はゼロからカウントされる。numberofmakerentriesは、MakersPrivateDataの中に含まれているメーカプライベートデータのエントリー数を与える16ビットの符号なし整数である。MakersPrivateDataの中に、同じmakerIDの値を持つメーカプライベートデータが2個以上存在してはならない。mpdblocksizeは、1024バイトを単位として、1つのmpdblockの大きさを与える16ビットの符号なし整数である。例えば、mpdblocksize1ならば、それは1つのmpdblockの大きさが1024バイトであることを示す。numberofmpdblocksは、MakersPrivateDataの中に含まれるmpdblockの数を与える16ビットの符号なし整数である。makerIDは、そのメーカプライベートデータを作成したDVRシステムの製造メーカを示す16ビットの符号なし整数である。makerIDに符号化される値は、このDVRフォーマットのライセンサによって指定される。makermodelcodeは、そのメーカプライベートデータを作成したDVRシステムのモデルナンバーコードを示す16ビットの符号なし整数である。makermodelcodeに符号化される値は、このフォーマットのライセンスを受けた製造メーカによって設定される。startmpdblocknumberは、そのメーカプライベートデータが開始されるmpdblockの番号を示す16ビットの符号なし整数である。メーカプライベートデータの先頭データは、mpdblockの先頭にアラインされなければならない。startmpdblocknumberは、mpdblockのforloopの中の変数jに対応する。mpdlengthは、バイト単位でメーカプライベートデータの大きさを示す32ビットの符号なし整数である。mpdblockは、メーカプライベートデータがストアされる領域である。MakersPrivateDataの中のすべてのmpdblockは、同じサイズでなければならない。次に、RealPlayListfileとVirtualPlayListfileについて、換言すれば、xxxxxrplsとyyyyyvplsについて説明する。図23は、xxxxxrplsRealPlayList、または、yyyyyvplsVirtualPlayListのシンタクスを示す図である。xxxxxrplsとyyyyyvplsは、同一のシンタクス構成をもつ。xxxxxrplsとyyyyyvplsは、それぞれ、3個のオブジェクトから構成され、それらは、PlayList、PlayListMark、およびMakerPrivateDataである。PlayListMarkStartaddressは、PlayListファイルの先頭のバイトからの相対バイト数を単位として、PlayListMarkの先頭アドレスを示す。相対バイト数はゼロからカウントされる。MakerPrivateDataStartaddressは、PlayListファイルの先頭のバイトからの相対バイト数を単位として、MakerPrivateDataの先頭アドレスを示す。相対バイト数はゼロからカウントされる。paddingwordパディングワードは、PlayListファイルのシンタクスにしたがって挿入され、N1とN2は、ゼロまたは任意の正の整数である。それぞれのパディングワードは、任意の値を取るようにしても良い。ここで、既に、簡便に説明したが、PlayListについてさらに説明する。ディスク内にあるすべてのRealPlayListによって、BridgeClip後述を除くすべてのClipの中の再生区間が参照されていなければならない。かつ、2つ以上のRealPlayListが、それらのPlayItemで示される再生区間を同一のClipの中でオーバーラップさせてはならない。図24を参照してさらに説明するに、図24Aに示したように、全てのClipは、対応するRealPlayListが存在する。この規則は、図24Bに示したように、編集作業が行われた後においても守られる。従って、全てのClipは、どれかしらのRealPlayListを参照することにより、必ず視聴することが可能である。図24Cに示したように、VirtualPlayListの再生区間は、RealPlayListの再生区間またはBridgeClipの再生区間の中に含まれていなければならない。どのVirtualPlayListにも参照されないBridgeClipがディスクの中に存在してはならない。RealPlayListは、PlayItemのリストを含むが、SubPlayItemを含んではならない。VirtualPlayListは、PlayItemのリストを含み、PlayListの中に示されるCPItypeがEPmaptypeであり、かつPlayListtypeが0ビデオとオーディオを含むPlayListである場合、VirtualPlayListは、ひとつのSubPlayItemを含む事ができる。本実施の形態におけるPlayListでは、SubPlayIteはオーディオのアフレコの目的にだけに使用される、そして、1つのVirtualPlayListが持つSubPlayItemの数は、0または1でなければならない。次に、PlayListについて説明する。図25は、PlayListのシンタクスを示す図である。図25に示したPlayListのシンタクスを説明するに、versionnumberは、このPlayListのバージョンナンバーを示す4個のキャラクター文字である。versionnumberは、ISO646に従って、0045と符号化されなければならない。lengthは、このlengthフィールドの直後からPlayListの最後までのPlayListのバイト数を示す32ビットの符号なし整数である。PlayListtypeは、このPlayListのタイプを示す8ビットのフィールドであり、その一例を図26に示す。CPItypeは、1ビットのフラグであり、PlayItemおよびSubPlayItemによって参照されるClipのCPItypeの値を示す。1つのPlayListによって参照される全てのClipは、それらのCPIの中に定義されるCPItypeの値が同じでなければならない。numberofPlayItemsは、PlayListの中にあるPlayItemの数を示す16ビットのフィールドである。所定のPlayItemに対応するPlayItemidは、PlayItemを含むforloopの中で、そのPlayItemの現れる順番により定義される。PlayItemidは、0から開始される。numberofSubPlayItemsは、PlayListの中にあるSubPlayItemの数を示す16ビットのフィールドである。この値は、0または1である。付加的なオーディオストリームのパスで符号化したものである。例えば、20011223010203は、0x20011223010203と符号化される。durationは、PlayListの総再生時間を時間/分/秒の単位で示した24ビットのフィールドである。このフィールドは、6個の数字を4ビットのBinaryCodedDecimalで符号化したものである。例えば、014530は、0x014530と符号化される。validperiodは、PlayListが有効である期間を示す32ビットのフィールドである。このフィールドは、8個の数字を4ビットのBinaryCodedDecimalで符号化したものである。例えば、記録再生装置1は、この有効期間の過ぎたPlayListを自動消去する、といったように用いられる。例えば、20010507は、0x20010507と符号化される。makeridは、そのPlayListを最後に更新したDVRプレーヤ記録再生装置1の製造者を示す16ビットの符号なし整数である。makeridに符号化される値は、DVRフォーマットのライセンサによって割り当てられる。makercodeは、そのPlayListを最後に更新したDVRプレーヤのモデル番号を示す16ビットの符号なし整数である。makercodeに符号化される値は、DVRフォーマットのライセンスを受けた製造者によって決められる。playbackcontrolflagのフラグが1にセットされている場合、ユーザが正しくPIN番号を入力できた場合にだけ、そのPlayListは再生される。このフラグが0にセットされている場合、ユーザがPIN番号を入力しなくても、ユーザは、そのPlayListを視聴することができる。writeprotectflagは、図28Aにテーブルを示すように、1にセットされている場合、writeprotectflagを除いて、そのPlayListの内容は、消去および変更されない。このフラグが0にセットされている場合、ユーザは、そのPlayListを自由に消去および変更できる。このフラグが1にセットされている場合、ユーザが、そのPlayListを消去、編集、または上書きする前に、記録再生装置1はユーザに再確認するようなメッセージを表示させる。writeprotectflagが0にセットされているRealPlayListが存在し、かつ、そのRealPlayListのClipを参照するVirtualPlayListが存在し、そのVirtualPlayListのwriteprotectflagが1にセットされていても良い。ユーザが、RealPlayListを消去しようとする場合、記録再生装置1は、そのRealPlayListを消去する前に、上記VirtualPlayListの存在をユーザに警告するか、または、そのRealPlayListをMinimizeする。isplayedflagは、図28Bに示すように、フラグが1にセットされている場合、そのPlayListは、記録されてから一度は再生されたことを示し、0にセットされている場合、そのPlayListは、記録されてから一度も再生されたことがないことを示す。archiveは、図28Cに示すように、そのPlayListがオリジナルであるか、コピーされたものであるかを示す2ビットのフィールドである。refthumbnailindexのフィールドは、PlayListを代表するサムネイル画像の情報を示す。refthumbnailindexフィールドが、0xFFFFでない値の場合、そのPlayListには、PlayListを代表するサムネイル画像が付加されており、そのサムネイル画像は、menuthumファイルの中にストアされている。その画像は、menuthumファイルの中でrefthumbnailindexの値を用いて参照される。refthumbnailindexフィールドが、0xFFFFである場合、そのPlayListには、PlayListを代表するサムネイル画像が付加されていない。次にPlayItemについて説明する。1つのPlayItemは、基本的に次のデータを含む。Clipのファイル名を指定するためのClipinformationfilename、Clipの再生区間を特定するためのINtimeとOUTtimeのペア、PlayListにおいて定義されるCPItypeがEPmaptypeである場合、INtimeとOUTtimeが参照するところのSTCsequenceid、および、先行するPlayItemと現在のPlayItemとの接続の状態を示すところのconnectionconditionである。PlayListが2つ以上のPlayItemから構成される時、それらのPlayItemはPlayListのグローバル時間軸上に、時間のギャップまたはオーバーラップなしに一列に並べられる。PlayListにおいて定義されるCPItypeがEPmaptypeであり、かつ現在のPlayItemがBridgeSequenceを持たない時、そのPlayItemにおいて定義されるINtimeとOUTtimeのペアは、STCsequenceidによって指定される同じSTC連続区間上の時間を指していなければならない。そのような例を図29に示す。図30は、PlayListにおいて定義されるCPItypeがEPmaptypeであり、かつ現在のPlayItemがBridgeSequenceを持つ時、次に説明する規則が適用される場合を示している。現在のPlayItemに先行するPlayItemのINtimeは、先行するPlayItemのSTCsequenceidによって指定されるSTC連続区間上の時間を指している。先行するPlayItemのOUTtime図の中でOUTtime1と示されているものは、現在のPlayItemのBridgeSequenceInfoの中で指定されるBridgeClipの中の時間を指している。このOUTtimeは、後述する符号化制限に従っていなければならない。現在のPlayItemのINtime図の中でINtime2と示されているものは、現在のPlayItemのBridgeSequenceInfoの中で指定されるBridgeClipの中の時間を指している。このINtimeも、後述する符号化制限に従っていなければならない。現在のPlayItemのPlayItemのOUTtimeは、現在のPlayItemのSTCsequenceidによって指定されるSTC連続区間上の時間を指している。図31に示すように、PlayListのCPItypeがTUmaptypeである場合、PlayItemのINtimeとOUTtimeのペアは、同じClipAVストリーム上の時間を指している。PlayItemのシンタクスは、図32に示すようになる。図32に示したPlayItemのシンタクスを説明するに、ClipInformationfilenameのフィールドは、ClipInformationfileのファイル名を示す。このClipInformationfileのClipInfoにおいて定義されるClipstreamtypeは、ClipAVstreamを示していなければならない。STCsequenceidは、8ビットのフィールドであり、PlayItemが参照するSTC連続区間のSTCsequenceidを示す。PlayListの中で指定されるCPItypeがTUmaptypeである場合、この8ビットフィールドは何も意味を持たず、0にセットされる。INtimeは、32ビットフィールドであり、PlayItemの再生開始時刻をストアする。INtimeのセマンティクスは、図33に示すように、PlayListにおいて定義されるCPItypeによって異なる。OUTtimeは、32ビットフィールドであり、PlayItemの再生終了時刻をストアする。OUTtimeのセマンティクスは、図34に示すように、PlayListにおいて定義されるCPItypeによって異なる。ConnectionConditionは、図35に示したような先行するPlayItemと、現在のPlayItemとの間の接続状態を示す2ビットのフィールドである。図36は、図35に示したConnectionConditionの各状態について説明する図である。次に、BridgeSequenceInfoについて、図37を参照して説明する。BridgeSequenceInfoは、現在のPlayItemの付属情報であり、次に示す情報を持つ。BridgeClipAVstreamファイルとそれに対応するClipInformationfileを指定するBridgeClipInformationfilenameを含む。また、先行するPlayItemが参照するClipAVstream上のソースパケットのアドレスであり、このソースパケットに続いてBridgeClipAVstreamファイルの最初のソースパケットが接続される。このアドレスは、RSPNexitfrompreviousClipと称される。さらに現在のPlayItemが参照するClipAVstream上のソースパケットのアドレスであり、このソースパケットの前にBridgeClipAVstreamファイルの最後のソースパケットが接続される。このアドレスは、RSPNentertocurrentClipと称される。図37において、RSPNarrivaltimediscontinuityは、theBridgeClipAVstreamファイルの中でアライバルタイムベースの不連続点があるところのソースパケットのアドレスを示す。このアドレスは、ClipInfoの中において定義される。図38は、BridgeSequenceinfoのシンタクスを示す図である。図38に示したBridgeSequenceinfoのシンタクスを説明するに、BridgeClipInformationfilenameのフィールドは、BridgeClipAVstreamファイルに対応するClipInformationfileのファイル名を示す。このClipInformationfileのClipInfoにおいて定義されるClipstreamtypeは、BridgeClipAVstreamを示していなければならない。RSPNexitfrompreviousClipの32ビットフィールドは、先行するPlayItemが参照するClipAVstream上のソースパケットの相対アドレスであり、このソースパケットに続いてBridgeClipAVstreamファイルの最初のソースパケットが接続される。RSPNexitfrompreviousClipは、ソースパケット番号を単位とする大きさであり、先行するPlayItemが参照するClipAVstreamファイルの最初のソースパケットからClipInfoにおいて定義されるoffsetSPNの値を初期値としてカウントされる。RSPNentertocurrentClipの32ビットフィールドは、現在のPlayItemが参照するClipAVstream上のソースパケットの相対アドレスであり、このソースパケットの前にBridgeClipAVstreamファイルの最後のソースパケットが接続される。RSPNexitfrompreviousClipは、ソースパケット番号を単位とする大きさであり、現在のPlayItemが参照するClipAVstreamファイルの最初のソースパケットからClipInfoにおいて定義されるoffsetSPNの値を初期値としてカウントされる。次に、SubPlayItemについて、図39を参照して説明する。SubPlayItemの使用は、PlayListのCPItypeがEPmaptypeである場合だけに許される。本実施の形態においては、SubPlayItemはオーディオのアフレコの目的のためだけに使用されるとする。SubPlayItemは、次に示すデータを含む。まず、PlayListの中のsubpathが参照するClipを指定するためのClipinformationfilenameを含む。また、Clipの中のsubpathの再生区間を指定するためのSubPathINtimeとSubPathOUTtimeを含む。さらに、mainpathの時間軸上でsubpathが再生開始する時刻を指定するためのsyncPlayItemidとsyncstartPTSofPlayItemを含む。subpathに参照されるオーディオのClipAVstreamは、STC不連続点システムタイムベースの不連続点を含んではならない。subpathに使われるClipのオーディオサンプルのクロックは、mainpathのオーディオサンプルのクロックにロックされている。図40は、SubPlayItemのシンタクスを示す図である。図40に示したSubPlayItemのシンタクスを説明するに、ClipInformationfilenameのフィールドは、ClipInformationfileのファイル名を示し、それはPlayListの中でsubpathによって使用される。このClipInformationfileのClipInfoにおいて定義されるClipstreamtypeは、ClipAVstreamを示していなければならない。SubPathtypeの8ビットのフィールドは、subpathのタイプを示す。ここでは、図41に示すように、0x00しか設定されておらず、他の値は、将来のために確保されている。syncPlayItemidの8ビットのフィールドは、mainpathの時間軸上でsubpathが再生開始する時刻が含まれるPlayItemのPlayItemidを示す。所定のPlayItemに対応するPlayItemidの値は、PlayListにおいて定義される図25参照。syncstartPTSofPlayItemの32ビットのフィールドは、mainpathの時間軸上でsubpathが再生開始する時刻を示し、syncPlayItemidで参照されるPlayItem上のPTSの上位32ビットを示す。SubPathINtimeの32ビットフィールドは、Subpathの再生開始時刻をストアする。SubPathINtimeは、SubPathの中で最初のプレゼンテーションユニットに対応する33ビット長のPTSの上位32ビットを示す。SubPathOUTtimeの32ビットフィールドは、Subpathの再生終了時刻をストアする。SubPathOUTtimeは、次式によって算出されるPresenationendTSの値の上位32ビットを示す。PresentationendTSPTSoutAUdurationここで、PTSoutは、SubPathの最後のプレゼンテーションユニットに対応する33ビット長のPTSである。AUdurationは、SubPathの最後のプレゼンテーションユニットの90kHz単位の表示期間である。次に、図23に示したxxxxxrplsとyyyyyvplsのシンタクス内のPlayListMarkについて説明する。PlayListについてのマーク情報は、このPlayListMarkにストアされる。図42は、PlayListMarkのシンタクスを示す図である。図42に示したPlayListMarkのシンタクスについて説明するに、versionnumberは、このPlayListMarkのバージョンナンバーを示す4個のキャラクター文字である。versionnumberは、ISO646に従って、0045と符号化されなければならない。lengthは、このlengthフィールドの直後からPlayListMarkの最後までのPlayListMarkのバイト数を示す32ビットの符号なし整数である。numberofPlayListmarksは、PlayListMarkの中にストアされているマークの個数を示す16ビットの符号なし整数である。numberofPlayListmarksは、0であってもよい。marktypeは、マークのタイプを示す8ビットのフィールドであり、図43に示すテーブルに従って符号化される。marktimestampの32ビットフィールドは、マークが指定されたポイントを示すタイムスタンプをストアする。marktimestampのセマンティクスは、図44に示すように、PlayListにおいて定義されるCPItypeによって異なる。PlayItemidは、マークが置かれているところのPlayItemを指定する8ビットのフィールドである。所定のPlayItemに対応するPlayItemidの値は、PlayListにおいて定義される図25参照。charactersetの8ビットのフィールドは、marknameフィールドに符号化されているキャラクター文字の符号化方法を示す。その符号化方法は、図19に示した値に対応する。namelengthの8ビットフィールドは、Marknameフィールドの中に示されるマーク名のバイト長を示す。marknameのフィールドは、マークの名称を示す。このフィールドの中の左からnamelength数のバイト数が、有効なキャラクター文字であり、それはマークの名称を示す。Marknameフィールドの中で、それら有効なキャラクター文字の後の値は、どのような値が設定されても良い。refthumbnailindexのフィールドは、マークに付加されるサムネイル画像の情報を示す。refthumbnailindexフィールドが、0xFFFFでない値の場合、そのマークにはサムネイル画像が付加されており、そのサムネイル画像は、markthmbファイルの中にストアされている。その画像は、markthmbファイルの中でrefthumbnailindexの値を用いて参照される後述。refthumbnailindexフィールドが、0xFFFFである場合、そのマークにはサムネイル画像が付加されていない事を示す。次に、Clipinformationfileについて説明する。zzzzzclpiClipinformationfileファイルは、図45に示すように6個のオブジェクトから構成される。それらは、ClipInfo、STCInfo、ProgramInfo、CPI、ClipMark、およびMakerPrivateDataである。AVストリームとそれに対応するClipInformationファイルは、同じ数字列のzzzzzが使用される。図45に示したzzzzzclpiClipinformationfileファイルのシンタクスについて説明するに、ClipInfoStartaddressは、zzzzzclpiファイルの先頭のバイトからの相対バイト数を単位として、ClipInfoの先頭アドレスを示す。相対バイト数はゼロからカウントされる。STCInfoStartaddressは、zzzzzclpiファイルの先頭のバイトからの相対バイト数を単位として、STCInfoの先頭アドレスを示す。相対バイト数はゼロからカウントされる。ProgramInfoStartaddressは、zzzzzclpiファイルの先頭のバイトからの相対バイト数を単位として、ProgramInfoの先頭アドレスを示す。相対バイト数はゼロからカウントされる。CPIStartaddressは、zzzzzclpiファイルの先頭のバイトからの相対バイト数を単位として、CPIの先頭アドレスを示す。相対バイト数はゼロからカウントされる。ClipMarkStartaddressは、zzzzzclpiファイルの先頭のバイトからの相対バイト数を単位として、ClipMarkの先頭アドレスを示す。相対バイト数はゼロからカウントされる。MakerPrivateDataStartaddressは、zzzzzclpiファイルの先頭のバイトからの相対バイト数を単位として、MakerPrivateDataの先頭アドレスを示す。相対バイト数はゼロからカウントされる。paddingwordパディングワードは、zzzzzclpiファイルのシンタクスにしたがって挿入される。N1,N2,N3,N4、およびN5は、ゼロまたは任意の正の整数でなければならない。それぞれのパディングワードは、任意の値がとられるようにしても良い。次に、ClipInfoについて説明する。図46は、ClipInfoのシンタクスを示す図である。ClipInfoは、それに対応するAVストリームファイルClipAVストリームまたはBridgeClipAVストリームファイルの属性情報をストアする。図46に示したClipInfoのシンタクスについて説明するに、versionnumberは、このClipInfoのバージョンナンバーを示す4個のキャラクター文字である。versionnumberは、ISO646に従って、0045と符号化されなければならない。lengthは、このlengthフィールドの直後からClipInfoの最後までのClipInfoのバイト数を示す32ビットの符号なし整数である。Clipstreamtypeの8ビットのフィールドは、図47に示すように、ClipInformationファイルに対応するAVストリームのタイプを示す。それぞれのタイプのAVストリームのストリームタイプについては後述する。offsetSPNの32ビットのフィールドは、AVストリームClipAVストリームまたはBridgeClipAVストリームファイルの最初のソースパケットについてのソースパケット番号のオフセット値を与える。AVストリームファイルが最初にディスクに記録される時、このoffsetSPNは0でなければならない。図48に示すように、AVストリームファイルのはじめの部分が編集によって消去された時、offsetSPNは、ゼロ以外の値をとっても良い。本実施の形態では、offsetSPNを参照する相対ソースパケット番号相対アドレスが、しばしば、RSPNxxxxxxは変形する。例.RSPNEPstartの形式でシンタクスの中に記述されている。相対ソースパケット番号は、ソースパケット番号を単位とする大きさであり、AVストリームファイルの最初のソースパケットからoffsetSPNの値を初期値としてカウントされる。AVストリームファイルの最初のソースパケットから相対ソースパケット番号で参照されるソースパケットまでのソースパケットの数SPNxxxは、次式で算出される。SPNxxxRSPNxxxoffsetSPN図48に、offsetSPNが、4である場合の例を示す。TSrecordingrateは、24ビットの符号なし整数であり、この値は、DVRドライブ書き込み部22へまたはDVRドライブ読み出し部28からのAVストリームの必要な入出力のビットレートを与える。recordtimeanddateは、Clipに対応するAVストリームが記録された時の日時をストアする56ビットのフィールドであり、年/月/日/時/分/秒について、14個の数字を4ビットのBinaryCodedDecimalで符号化したものである。例えば、20011223010203は、0x20011223010203と符号化される。durationは、Clipの総再生時間をアライバルタイムクロックに基づいた時間/分/秒の単位で示した24ビットのフィールドである。このフィールドは、6個の数字を4ビットのBinaryCodedDecimalで符号化したものである。例えば、014530は、0x014530と符号化される。timecontrolledflagのフラグは、AVストリームファイルの記録モードを示す。このtimecontrolledflagが1である場合、記録モードは、記録してからの時間経過に対してファイルサイズが比例するようにして記録されるモードであることを示し、次式に示す条件を満たさなければならない。TSaveragerate192188-α0個のSTC不連続点を含む場合、Clipのシステムタイムベースは、個のSTCsequenceに分割される。STCInfoは、STCの不連続システムタイムベースの不連続が発生する場所のアドレスをストアする。図51を参照して説明するように、RSPNSTCstartが、そのアドレスを示し、最後のSTCsequenceを除くk番目k0のSTCsequenceは、k番目のRSPNSTCstartで参照されるソースパケットが到着した時刻から始まり、番目のRSPNSTCstartで参照されるソースパケットが到着した時刻で終わる。最後のSTCsequenceは、最後のRSPNSTCstartで参照されるソースパケットが到着した時刻から始まり、最後のソースパケットが到着した時刻で終了する。図52は、STCInfoのシンタクスを示す図である。図52に示したSTCInfoのシンタクスについて説明するに、versionnumberは、このSTCInfoのバージョンナンバーを示す4個のキャラクター文字である。versionnumberは、ISO646に従って、0045と符号化されなければならない。lengthは、このlengthフィールドの直後からSTCInfoの最後までのSTCInfoのバイト数を示す32ビットの符号なし整数である。CPIのCPItypeがTUmaptypeを示す場合、このlengthフィールドはゼロをセットしても良い。CPIのCPItypeがEPmaptypeを示す場合、numofSTCsequencesは1以上の値でなければならない。numofSTCsequencesの8ビットの符号なし整数は、Clipの中でのSTCsequenceの数を示す。この値は、このフィールドに続くforloopのループ回数を示す。所定のSTCsequenceに対応するSTCsequenceidは、RSPNSTCstartを含むforloopの中で、そのSTCsequenceに対応するRSPNSTCstartの現れる順番により定義されるものである。STCsequenceidは、0から開始される。RSPNSTCstartの32ビットフィールドは、AVストリームファイル上でSTCsequenceが開始するアドレスを示す。RSPNSTCstartは、AVストリームファイルの中でシステムタイムベースの不連続点が発生するアドレスを示す。RSPNSTCstartは、AVストリームの中で新しいシステムタイムベースの最初のPCRを持つソースパケットの相対アドレスとしても良い。RSPNSTCstartは、ソースパケット番号を単位とする大きさであり、AVストリームファイルの最初のソースパケットからClipInfoにおいて定義されるoffsetSPNの値を初期値としてカウントされる。そのAVstreamファイルの中での絶対アドレスは、既に上述したSPNxxxRSPNxxxoffsetSPNにより算出される。次に、図45に示したzzzzzclipのシンタクス内のProgramInfoについて説明する。図53を参照しながら説明するに、ここでは、Clipの中で次の特徴をもつ時間区間をprogramsequenceと呼ぶ。まず、PCRPIDの値が変わらない。次に、ビデオエレメンタリストリームの数が変化しない。また、それぞれのビデオストリームについてのPIDの値とそのVideoCodingInfoによって定義される符号化情報が変化しない。さらに、オーディオエレメンタリストリームの数が変化しない。また、それぞれのオーディオストリームについてのPIDの値とそのAudioCodingInfoによって定義される符号化情報が変化しない。programsequenceは、同一の時刻において、ただ1つのシステムタイムベースを持つ。programsequenceは、同一の時刻において、ただ1つのPMTを持つ。ProgramInfoは、programsequenceが開始する場所のアドレスをストアする。RSPNprogramsequencestartが、そのアドレスを示す。図54は、ProgramInfoのシンタクスを示す図である。図54に示したProgramInfoのシンタクを説明するに、versionnumberは、このProgramInfoのバージョンナンバーを示す4個のキャラクター文字である。versionnumberは、ISO646に従って、0045と符号化されなければならない。lengthは、このlengthフィールドの直後からProgramInfoの最後までのProgramInfoのバイト数を示す32ビットの符号なし整数である。CPIのCPItypeがTUmaptypeを示す場合、このlengthフィールドはゼロにセットされても良い。CPIのCPItypeがEPmaptypeを示す場合、numberofprogramsは1以上の値でなければならない。numberofprogramsequencesの8ビットの符号なし整数は、Clipの中でのprogramsequenceの数を示す。この値は、このフィールドに続くforloopのループ回数を示す。Clipの中でprogramsequenceが変化しない場合、numberofprogramsequencesは1をセットされなければならない。RSPNprogramsequencestartの32ビットフィールドは、AVストリームファイル上でプログラムシーケンスが開始する場所の相対アドレスである。RSPNprogramsequencestartは、ソースパケット番号を単位とする大きさであり、AVストリームファイルの最初のソースパケットからClipInfoにおいて定義されるoffsetSPNの値を初期値としてカウントされる。そのAVストリームファイルの中での絶対アドレスは、SPNxxxRSPNxxxoffsetSPNにより算出される。シンタクスのforloopの中でRSPNprogramsequencestart値は、昇順に現れなければならない。PCRPIDの16ビットフィールドは、そのprogramsequenceに有効なPCRフィールドを含むトランスポートパケットのPIDを示す。numberofvideosの8ビットフィールドは、videostreamPIDとVideoCodingInfoを含むforloopのループ回数を示す。numberofaudiosの8ビットフィールドは、audiostreamPIDとAudioCodingInfoを含むforloopのループ回数を示す。videostreamPIDの16ビットフィールドは、そのprogramsequenceに有効なビデオストリームを含むトランスポートパケットのPIDを示す。このフィールドに続くVideoCodingInfoは、そのvideostreamPIDで参照されるビデオストリームの内容を説明しなければならない。audiostreamPIDの16ビットフィールドは、そのprogramsequenceに有効なオーディオストリームを含むトランスポートパケットのPIDを示す。このフィールドに続くAudioCodingInfoは、そのaudiostreamPIDで参照されるビデオストリームの内容を説明しなければならない。なお、シンタクスのforloopの中でvideostreamPIDの値の現れる順番は、そのprogramsequenceに有効なPMTの中でビデオストリームのPIDが符号化されている順番に等しくなければならない。また、シンタクスのforloopの中でaudiostreamPIDの値の現れる順番は、そのprogramsequenceに有効なPMTの中でオーディオストリームのPIDが符号化されている順番に等しくなければならない。図55は、図54に示したPrograminfoのシンタクス内のVideoCodingInfoのシンタクスを示す図である。図55に示したVideoCodingInfoのシンタクスを説明するに、videoformatの8ビットフィールドは、図56に示すように、ProgramInfoの中のvideostreamPIDに対応するビデオフォーマットを示す。framerateの8ビットフィールドは、図57に示すように、ProgramInfoの中のvideostreamPIDに対応するビデオのフレームレートを示す。displayaspectratioの8ビットフィールドは、図58に示すように、ProgramInfoの中のvideostreamPIDに対応するビデオの表示アスペクト比を示す。図59は、図54に示したPrograminfoのシンタクス内のAudioCodingInfoのシンタクスを示す図である。図59に示したAudioCodingInfoのシンタクスを説明するに、audiocodingの8ビットフィールドは、図60に示すように、ProgramInfoの中のaudiostreamPIDに対応するオーディオの符号化方法を示す。audiocomponenttypeの8ビットフィールドは、図61に示すように、ProgramInfoの中のaudiostreamPIDに対応するオーディオのコンポーネントタイプを示す。samplingfrequencyの8ビットフィールドは、図62に示すように、ProgramInfoの中のaudiostreamPIDに対応するオーディオのサンプリング周波数を示す。次に、図45に示したzzzzzclipのシンタクス内のCPIについて説明する。CPIは、AVストリームの中の時間情報とそのファイルの中のアドレスとを関連づけるためにある。CPIには2つのタイプがあり、それらはEPmapとTUmapである。図63に示すように、CPIの中のCPItypeがEPmaptypeの場合、そのCPIはEPmapを含む。図64に示すように、CPIの中のCPItypeがTUmaptypeの場合、そのCPIはTUmapを含む。1つのAVストリームは、1つのEPmapまたは一つのTUmapを持つ。AVストリームがSESFトランスポートストリームの場合、それに対応するClipはEPmapを持たなければならない。図65は、CPIのシンタクスを示す図である。図65に示したCPIのシンタクスを説明するに、versionnumberは、このCPIのバージョンナンバーを示す4個のキャラクター文字である。versionnumberは、ISO646に従って、0045と符号化されなければならない。lengthは、このlengthフィールドの直後からCPIの最後までのCPIのバイト数を示す32ビットの符号なし整数である。CPItypeは、図66に示すように、1ビットのフラグであり、ClipのCPIのタイプを表す。次に、図65に示したCPIのシンタクス内のEPmapについて説明する。EPmapには、2つのタイプがあり、それはビデオストリーム用のEPmapとオーディオストリーム用のEPmapである。EPmapの中のEPmaptypeが、EPmapのタイプを区別する。Clipが1つ以上のビデオストリームを含む場合、ビデオストリーム用のEPmapが使用されなければならない。Clipがビデオストリームを含まず、1つ以上のオーディオストリームを含む場合、オーディオストリーム用のEPmapが使用されなければならない。ビデオストリーム用のEPmapについて図67を参照して説明する。ビデオストリーム用のEPmapは、streamPID、PTstart、および、RSPNEPstartというデータを持つ。streamPIDは、ビデオストリームを伝送するトランスポートパケットのPIDを示す。PTstartは、ビデオストリームのシーケンスヘッダから始めるアクセスユニットのPTSを示す。RSPNEPstartは、AVストリームの中でPTstartにより参照されるアクセスユニットの第1バイト目を含むソースポケットのアドレスを示す。EPmapforonestreamPIDと呼ばれるサブテーブルは、同じPIDを持つトランスポートパケットによって伝送されるビデオストリーム毎に作られる。Clipの中に複数のビデオストリームが存在する場合、EPmapは複数のEPmapforonestreamPIDを含んでも良い。オーディオストリーム用のEPmapは、streamPID、PTstart、およびRSPNEPstartというデータを持つ。streamPIDは、オーディオストリームを伝送するトランスポートパケットのPIDを示す。PTstartは、オーディオストリームのアクセスユニットのPTSを示す。RSPNEPstartは、AVストリームの中でPTstartで参照されるアクセスユニットの第1バイト目を含むソースポケットのアドレスを示す。EPmapforonestreamPIDと呼ばれるサブテーブルは、同じPIDを持つトランスポートパケットによって伝送されるオーディオストリーム毎に作られる。Clipの中に複数のオーディオストリームが存在する場合、EPmapは複数のEPmapforonestreamPIDを含んでも良い。EPmapとSTCInfoの関係を説明するに、1つのEPmapforonestreamPIDは、STCの不連続点に関係なく1つのテーブルに作られる。RSPNEPstartの値とSTCInfoにおいて定義されるRSPNSTCstartの値を比較する事により、それぞれのSTCsequenceに属するEPmapのデータの境界が分かる図68を参照。EPmapは、同じPIDで伝送される連続したストリームの範囲に対して、1つのEPmapforonestreamPIDを持たねばならない。図69に示したような場合、program1とprogram3は、同じビデオPIDを持つが、データ範囲が連続していないので、それぞれのプログラム毎にEPmapforonestreamPIDを持たねばならない。図70は、EPmapのシンタクスを示す図である。図70に示したEPmapのシンタクスを説明するに、EPtypeは、4ビットのフィールドであり、図71に示すように、EPmapのエントリーポイントタイプを示す。EPtypeは、このフィールドに続くデータフィールドのセマンティクスを示す。Clipが1つ以上のビデオストリームを含む場合、EPtypeは0にセットされなければならない。または、Clipがビデオストリームを含まず、1つ以上のオーディオストリームを含む場合、EPtypeは1にセットされなければならない。numberofstreamPIDsの16ビットのフィールドは、EPmapの中のnumberofstreamPIDsを変数にもつforloopのループ回数を示す。streamPIDの16ビットのフィールドは、EPmapforonestreamPIDによって参照されるk番目のエレメンタリストリームビデオまたはオーディオストリームを伝送するトランスポートパケットのPIDを示す。EPtypeが0に等しい場合、そのエレメンタリストリームはビデオストリームでなけれならない。また、EPtypeが1に等しい場合、そのエレメンタリストリームはオーディオストリームでなければならない。numEPentriesの16ビットのフィールドは、EPmapforonestreamPIDによって参照されるnumEPentriesを示す。EPmapforonestreamPIDStartaddressこの32ビットのフィールドは、EPmapの中でEPmapforonestreamPIDが始まる相対バイト位置を示す。この値は、EPmapの第1バイト目からの大きさで示される。paddingwordは、EPmapのシンタクスにしたがって挿入されなければならない。XとYは、ゼロまたは任意の正の整数でなければならない。それぞれのパディングワードは、任意の値を取っても良い。図72は、EPmapforonestreamPIDのシンタクスを示す図である。図72に示したEPmapforonestreamPIDのシンタクスを説明するに、PTstartの32ビットのフィールドのセマンティクスは、EPmapにおいて定義されるEPtypeにより異なる。EPtypeが0に等しい場合、このフィールドは、ビデオストリームのシーケンスヘッダで始まるアクセスユニットの33ビット精度のPTSの上位32ビットを持つ。EPtypeが1に等しい場合、このフィールドは、オーディオストリームのアクセスユニットの33ビット精度のPTSの上位32ビットを持つ。RSPNEPstartの32ビットのフィールドのセマンティクスは、EPmapにおいて定義されるEPtypeにより異なる。EPtypeが0に等しい場合、このフィールドは、AVストリームの中でPTstartにより参照されるアクセスユニットのシーケンスヘッダの第1バイト目を含むソースポケットの相対アドレスを示す。または、EPtypeが1に等しい場合、このフィールドは、AVストリームの中でPTstartにより参照されるアクセスユニットのオーディオフレームの第一バイト目を含むソースポケットの相対アドレスを示す。RSPNEPstartは、ソースパケット番号を単位とする大きさであり、AVストリームファイルの最初のソースパケットからClipInfoにおいて定義されるoffsetSPNの値を初期値としてカウントされる。そのAVストリームファイルの中での絶対アドレスは、SPNxxxRSPNxxxoffsetSPNにより算出される。シンタクスのforloopの中でRSPNEPstartの値は、昇順に現れなければならない。次に、TUmapについて、図73を参照して説明する。TUmapは、ソースパケットのアライバルタイムクロック到着時刻ベースの時計に基づいて、1つの時間軸を作る。その時間軸は、TUmaptimeaxisと呼ばれる。TUmaptimeaxisの原点は、TUmapの中のoffsettimeによって示される。TUmaptimeaxisは、offsettimeから一定の単位に分割される。その単位を、timeunitと称する。AVストリームの中の各々のtimeunitの中で、最初の完全な形のソースパケットのAVストリームファイル上のアドレスが、TUmapにストアされる。これらのアドレスを、RSPNtimeunitstartと称する。TUmaptimeaxis上において、k番目のtimeunitが始まる時刻は、TUstarttimeと呼ばれる。この値は次式に基づいて算出される。TUstarttimeoffsettimektimeunitsizeTUstarttimeは、45kHzの精度を持つ。図74は、TUmapのシンタクスを示す図である。図74に示したTUmapのシンタクスを説明するに、offsettimeの32bit長のフィールドは、TUmaptimeaxisに対するオフセットタイムを与える。この値は、Clipの中の最初のtimeunitに対するオフセット時刻を示す。offsettimeは、27MHz精度のアライバルタイムクロックから導き出される45kHzクロックを単位とする大きさである。AVストリームが新しいClipとして記録される場合、offsettimeはゼロにセットされなければならない。timeunitsizeの32ビットフィールドは、timeunitの大きさを与えるものであり、それは27MHz精度のアライバルタイムクロックから導き出される45kHzクロックを単位とする大きさである。timeunitsizeは、1秒以下timeunitsizeSTC21videoendΔT1この不等式が満たされるように、Clip1および、または、Clip2の部分的なストリームを再エンコードおよび、または、再多重化する必要がある場合は、その必要に応じて行われる。次に、STC1とSTC2を同じ時間軸上に換算したシステムタイムベースの時間軸上において、TS1からのビデオパケットの入力とそれに続くTS2からのビデオパケットの入力は、ビデオバッファをオーバーフローおよびアンダーフローさせてはならない。このようなシンタクス、データ構造、規則に基づく事により、記録媒体に記録されているデータの内容、再生情報などを適切に管理することができ、もって、ユーザが再生時に適切に記録媒体に記録されているデータの内容を確認したり、所望のデータを簡便に再生できるようにすることができる。次に、図46で示したClipInfoのシンタクスの中にあるtimecontrolledflagを1にセットする場合のAVストリームファイルの記録について、詳細な内容を説明する。timecontrolledflagを1にセットする場合、AVストリームの時間経過とAVストリームのデータバイト量が、次の関係にあることを示す。すなわち、AVストリームの時間経過とAVストリームのデータバイト量との関係が、所定の誤差の範囲内で比例する、ことを保証する。TSaveragerate1921880ここで、bavは、ビデオの平均符号化ビットレートから計算される、GOPあたりの符号化の割り当てビット量の平均値である。GOPの時間長を、05秒とするとbavは次の値である。bavビデオの平均ビットレート05ステップS202でYesの場合は、ステップS203へ進む。ステップS202でNoの場合は、ステップS204へ進み、ballocをbavとし、ステップS205へ進む。ステップS203では、以下の不等式が成り立つかを調べる。このステップSは、VBRの余裕量が最大値SVMAXを超えないかどうかチェックである。svnowbavballoc0ここで、bavは、ビデオの平均符号化ビットレートから計算される、GOPあたりの符号化の割り当てビット量の平均値である。GOPの時間長を、05秒とするとbavは次の値である。bavビデオの平均ビットレート05ステップS502でYesの場合は、ステップS504へ進む。ステップS502でNoの場合は、ステップS504へ進み、ballocをbavとし、ステップS504へ進む。ステップS504で、現在のGOPのエンコードする。そして、現在のGOPを割り当てビット量ballocでエンコードし、その時のVBV制御は、その時のVBV制御は、VBVバッファに空きがあるときは、バッファへの入力ビットレートをVBRの最大ビットレートにし、VBVバッファのビット占有量がフルの場合は、バッファへの入力ビットレートをゼロにする場合のVBV制御とする図101参照。このステップSでは、ビデオストリームにスタッフィングバイトを符号化しない。ステップS505で、VBRの余裕量svnowを次式のように更新する。ここで、bgenは、ステップS504で、現在のGOPのエンコードした結果、得られた現GOPの符号化ビット量である。svnowbavbgenステップS506で、現GOPが最後のGOPであるか調べる。ステップS506で、Yesの場合は、処理を終了する。ステップS506で、Noの場合は、ステップS501へ戻る。上記の図108および図109の記録方法の場合、前述したようにAVストリームの時間経過とAVストリームのデータバイト量との関係が所定の誤差範囲内で比例することを保証しない。例えば、入力ビデオの中に長い時間の静止画像があると、AVストリームの時間経過とAVストリームのデータバイト量との関係が図104に示したようになる。すなわち、静止画像は情報量が比較的小さいため、その情報量よりも符号化の割り当てビット量を大きくしても、実際に符号化して発生するビット量はある比較的小さな値に飽和してしまう。したがって、この場合、AVストリームの時間経過とAVストリームのデータバイト量の関係が、比例しない。一方、ビデオエンコーダが所定時間のビデオに割り当てられたビット量を使うように制御することを目的として、VBVバッファへの入力ビットレートが現在のGOPの符号化ビットレートであり、VBVバッファがオーバーフローしないようにビデオエンコーダがスタッフィングバイトを発生するように制御すれば、AVストリームの時間経過とAVストリームのデータバイト量との関係が、所定の誤差範囲内でほぼ比例することを保証できる。また、AVストリームの時間経過とAVストリームのデータバイト量との関係が、比例することを保証する符号化モードtimecontrolledflag1を簡単に実現する方法として、トランスポートストリームを多重化する時にヌルパケットを挿入して、一定ビットレートのトランスポートストリームを記録することも考えられる。これは、主にテープ記録媒体D-VHS等で用いられている符号化方法である。ここで、ヌルパケットは、そのパケットIDPIDが、0x1FFFにセットされている、情報としては何も意味をもたないトランスポートパケットである。図99の方法と比較する参考のために、図110に、所定の一定ビットレートのトランスポートストリームを符号化することによって、AVストリームの時間経過とAVストリームのデータバイト量との関係が、比例することを保証する符号化モードのフローチャートを示す。ステップS600で、トランスポートストリームの多重化ビットレートおよびビデオ符号化のビットレートを設定する。ステップS601で、ビデオストリームを、所定の一定のビットレート、または、そのビットレート以下で、エンコードする。ステップS602で、トランスポートパケット化するエレメンタリストリームがない場合にヌルパケット情報としては意味をもたないトランスポートパケットを発生して多重化し、所定の一定の多重化ビットレートのトランスポートストリームを符号化する。ステップS603で、各トランスポートパケットにアライバルタイムスタンプを付加して、ソースパケット化する。ソースパケットを記録媒体に記録する。上記の記録方法でAVストリームをClipとして記録した場合、そのClipのtimecontrolledflagは1にセットされる。しかしながら、この方法は、ヌルパケットを使用するため、ビデオ符号化に効率良く符号ビットを使用していないので、図99の符号化方法よりもビデオの画質が劣る問題があるこのことについては、例えば特願平11220727の従来の技術の欄に詳しく述べている。そのため、本技術では上記の図110の記録方法を推奨しない。次に、AVストリームファイルのある時間分だけ部分的にストリームを消去する方法について説明する。図111は、オリジナルのAVストリームファイルと、そのストリームの部分的な再生範囲のストリームを消去する編集を行った後のAVストリームファイルの例を示す。編集前に、VirtualPlayListは、オリジナルAVストリーム上のINtimeとOUTtimeを指しているとする。この時、VirtualPlayListが使用していないストリーム部分を消去する編集ミニマイズ編集をした場合、それはオリジナルAVストリームを図111に示す編集後のストリームへ変える。オリジナルAVストリームの先頭からX点までのデータと、Y点から最後までのデータが消去される。以下の説明では、このX点とY点を決める方法の例を説明する。図112は、AVストリームの内容を解析することをしないで、IN点の前の不要なデータを消去する方法を説明する図である。PlayListはオリジナルAVストリーム上のIN点を指す。また、そのAVストリームのEPmapを図示する。IN点が指すピクチャをデコードするためには、アドレスISA2から開始するIピクチャが必要である。また、X点の後で、PATPMTおよびPCRパケットが必要である。RSPNEPstartISA1のPTSはpts1であり、RSPNEPstartISA2のPTSはpts2である。pts1とpts2のシステムタイムベースの時間差が100msec以上ならば、アドレスISA1とISA2の間にはPATPMTおよびPCRパケットが存在する少なくとも、SESFDVBATSCISDBの場合はそうである。したがって、X点はアドレスISA1の前に決められる。そして、X点はアラインドユニットの境界でなければならない。記録装置は、AVストリームの内容を解析することをしないで、X点をEPmapを使用して次のステップSで決めることができる。S1システムタイムベース上でINtimeのPTSに最も近く、かつそれよりも過去の表示時刻のPTSの値を持つSPNEPstartを見つける。S2ステップS1で見つけたSPNEPstartのPTSの値よりも少なくとも100msec過去の表示時刻のPTSの値を持つSPNEPstartを見つける。S3X点は、ステップS2で見つけたSPNEPstartよりも前に決められる。そして、X点はアラインドユニットの境界でなければならない。この方法は、X点を決めるためにAVストリームのデータを読み出し、その内容を解析することを必要としないので、簡単である。しかし、編集後のAVストリームは、そのPlayListの再生には不要なデータを残してしまう場合がある。もし、X点を決めるためにAVストリームのデータを読み出し、その内容を解析するならば、そのPlayListの再生には不要なデータをより効率良く消去できる。図113は、AVストリームの内容を解析することをしないで、OUT点の後ろの不要なデータを消去する方法を説明する図である。PlayListはオリジナルAVストリーム上のOUT点を指す。また、そのAVストリームのEPmapを図示する。SPNEPstartISA4から開始するビデオシーケンスは次に示すものであることを前提とする。I2B0B1P5...ここで、IPBはそれぞれIピクチャ,PピクチャそしてBピクチャを表す。数字は表示順序を表す。この処理において、記録装置がAVストリームの内容を解析しない場合、記録装置はOUTtimeのPTSが参照するところのピクチャの情報ピクチャコーディングタイプ,テンポラルレファレンスなどがわからない。OUTtimeのPTSはピクチャB0またはB1を参照しているかもしれない記録装置がAVストリームの内容を解析しない場合、このことはわからない、この場合、ピクチャB0B1をデコードするためにはI2が必要である。I2のPTSはOUTtimeのPTSよりも大きいOUTtimepts4ここでpts4はI2のPTSである。I2のPTSはOUTtimeのPTSよりも大きいが、B0B1のためにI2が必要である。したがって、Y点は図に示すアドレスISA5の後ろに決められる。ISA5は、EPmapの中でISA4の直後にあるSPNEPstartの値である。Y点はまたアラインドユニットの境界でなければならない。記録装置は、AVストリームの内容を解析することをしないで、Y点をEPmapを使用して次のステップSで決めることができる。S1システムタイムベース上でOUTtimeのPTSに最も近く、かつそれよりも未来の表示時刻のPTSの値を持つSPNEPstartを見つける。S2ステップS1で見つけたSPNEPstartの直後にあるSPNEPstartを見つける。S3Y点は、ステップS2で見つけたSPNEPstartよりも後ろに決められる。そして、Y点はアラインドユニットの境界でなければならない。この方法は、Y点を決めるためにAVストリームのデータを読み出し、その内容を解析することを必要としないので、簡単である。しかし、編集後のAVストリームは、そのPlayListの再生には不要なデータを残してしまう場合がある。もし、Y点を決めるためにAVストリームのデータを読み出し、その内容を解析するならば、そのPlayListの再生には不要なデータをより効率良く消去できる。次に、EPmapの作成の動作例を図114のフローチャートを用いて説明する。この処理は図1の記録再生装置の多重化ストリーム解析部18で行われる。ステップS11でストリーム解析部18は、記録するAVプログラムのビデオのPIDをセットする。トランスポートストリームの中に複数のビデオが含まれている場合は、それぞれのビデオPIDをセットする。ステップS12でストリーム解析部18は、ビデオのトランスポートパケットを受信する。ステップS13でストリーム解析部は、トランスポートパケットのペイロードパケットヘッダーに続くデータ部がPESパケットの第一バイト目から開始しているかを調べるPESパケットは、MPEG2で規定されているパケットであり、エレメンタリストリームをパケット化するものである。これは、トランスポートパケットヘッダにあるpayloadunitstartindicatorの値を調べることによりわかり、この値が1である場合、トランスポートパケットのペイロードがPESパケットの第一バイト目から開始する。ステップS13でNoの場合は、ステップS12へ戻り、Yesの場合は、ステップS14へ進む。ステップS14でストリーム解析部は、PESパケットのペイロードが、MPEGビデオのsequenceheadercodeの第一バイト目から開始しているかを調べる。ステップS14でNoの場合は、ステップS12へ戻り、Yesの場合は、ステップS15へ進む。ステップS15へ進んだ場合、現在のトランスポートパケットをエントリーポイントとする。ステップS16でストリーム解析部は、上記パケットのパケット番号と上記sequenceheadercodeから開始するIピクチャのPTSとそのエントリーポイントが属するビデオのPIDを取得し、制御部23へ入力する。制御部23はEPmapを作成する。ステップS17で、現在のパケットが最後に入力されるトランスポートパケットであるかどうかを判定する。最後のパケットでない場合、ステップS12へ戻る。最後のパケットである場合、処理を終了する。上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。この記録媒体は、図115に示すように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク221フロッピディスクを含む、光ディスク222CDROMCompactDiskReadOnlyMemory,DVDDigitalVersatileDiskを含む、光磁気ディスク223MDMiniDiskを含む、若しくは半導体メモリ224などよりなるパッケージメディアにより構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記憶されているROM202や記憶部208が含まれるハードディスクなどで構成される。なお、本明細書において、媒体により提供されるプログラムを記述するステップSは、記載された順序に従って、時系列的に行われる処理は勿論、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。"