(57)【要約】【課題】記録媒体に記録されているデータの内容および再生情報を適切に管理できるようにする。【解決手段】コピー元の記録媒体には、Clip（Clip Information fileとClip AV  stream file）とPlayListが記録されている。PlayListとClipのファイルが、コピー元からコピー先の記録媒体へIEEE１３９４のデジタルバスを経由して、転送され、コピーされる。コピーされたClip AV stream fileの各ソースパケットのTP_extra_headerのアライバルタイムスタンプは、コピー元と同じであり、また、コピーされたClip AV stream fileに対応するClip Information fileとPlay Listファイルもコピー先へコピーされる。【選択図】図６１
2006216227.tif 000002
【特許請求の範囲】
【請求項１】
自分に接続された送信装置から転送されるデータストリームを受信して記録するデータ受信装置であって、
前記送信装置による前記データストリームの送信に用いられる転送方式がアイソクロナス転送であるかアシンクロナス転送であるかを判定する判定部を備え、
前記転送方式がアイソクロナス転送であると判定された場合、記録される前記データストリームにおける時間情報を、前記データストリームを受信した時刻に基づいて新たに生成して付加し、
前記転送方式がアシンクロナス転送であると判定された場合、受信した前記データストリームに含まれる時間情報を、記録される前記データストリームにおける時間情報とする
データ受信装置。
【請求項２】
前記データストリームは、複数のトランスポートパケットに分割されて受信される
請求項１に記載のデータ受信装置。
【請求項３】
前記時間情報は、前記トランスポートパケットのヘッダ部に格納される
請求項２に記載のデータ受信装置。
【請求項４】
前記送信装置からバスを伝送路として転送される前記データストリームを受信する
請求項１に記載のデータ受信装置。
【請求項５】
前記送信装置から無線波を伝送路として転送される前記データストリームを受信する
請求項１に記載のデータ受信装置。
【請求項６】
前記データストリームを再生するために必要な管理情報を、前記データストリームを受信してから新たに作成する
請求項１に記載のデータ受信装置。
【請求項７】
前記受信したデータストリームを記録媒体に記録する
請求項１に記載のデータ受信装置。
【請求項８】
アシンクロナス転送により送信されてくる、前記データストリームを再生するために必要なデータベースファイルをさらに受信する
請求項１に記載のデータ受信装置。
【請求項９】
前記受信したデータストリーム及びデータベースファイルを記録媒体に記録する
請求項８に記載のデータ受信装置。
【請求項１０】
前記データベースファイルは前記転送されたデータストリームの再生開始点及び再生終了点を示す再生管理情報を含み、
前記データベースファイルを受信してから、前記再生管理情報を予め保持しているデータストリームの再生管理情報のリストへ追加する
請求項９に記載のデータ受信装置。
【請求項１１】
前記データベースファイルは前記転送されたデータストリームに関するサムネール情報を含み、
前記データベースファイルを受信してから、前記サムネール情報を予め保持しているデータストリームのサムネール情報を集めたサムネール情報ファイルへ追加する
請求項９に記載のデータ受信装置。
【請求項１２】
自分に接続された送信装置から転送されるデータストリームを受信して記録するデータ受信装置のデータ受信方法であって、
前記送信装置による前記データストリームの送信に用いられる転送方式がアイソクロナス転送であるかアシンクロナス転送であるかを判定し、
前記転送方式がアイソクロナス転送であると判定された場合、記録される前記データストリームにおける時間情報を、前記データストリームを受信した時刻に基づいて新たに生成して付加し、
前記転送方式がアシンクロナス転送であると判定された場合、受信した前記データストリームに含まれる時間情報を、記録される前記データストリームにおける時間情報とする
データ受信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ受信装置および方法に関し、特に、記録媒体に記録されているデータの内容を編集した場合においても、記録媒体に記録されているデータ内容、および、再生情報を適切に管理することができるようにしたデータ受信装置および方法に関する。
【背景技術】
【０００２】
近年、記録再生装置から取り外し可能なディスク型の情報記録媒体として、各種の光ディスクが提案されつつある。このような記録可能な光ディスクは、数ギガバイトの大容量メディアとして提案されており、ビデオ信号等のAV(Audio Visual)信号を記録するメディアとしての期待が高い。この記録可能な光デイスクに記録するデジタルのAV信号のソース（供給源）としては、CSデジタル衛星放送やBSデジタル放送があり、また、将来はデジタル方式の地上波テレビジョン放送等も提案されている。
【０００３】
ここで、これらのソースから供給されるデジタルビデオ信号は、通常MPEG（Moving Picture Experts Group）２方式で画像圧縮されているのが一般的である。また、記録装置には、その装置固有の記録レートが定められている。従来の民生用映像蓄積メディアで、デジタル放送からのデジタルビデオ信号を記録する場合、アナログ記録方式であれば、デジタルビデオ信号をデコード後、帯域制限をして記録が行われる。あるいは、MPEG１ Video、MPEG２ Video、DV（Digital Video）方式をはじめとするデジタル記録方式であれば、１度デコードされた後に、その装置固有の記録レート、かつ符号化方式で再エンコードされて記録される。
【０００４】
しかしながら、このような記録方法は、供給されたビットストリームを１度デコードし、その後で帯域制限や再エンコードを行って記録するため、画質の劣化を伴う。画像圧縮されたデジタル信号の記録をする場合、入力されたデジタル信号の伝送レートが記録再生装置の記録レートを超えない場合には、供給されたビットストリームをデコードや再エンコードすることなく、そのまま記録する方法が最も画質の劣化が少ない。ただし、画像圧縮されたデジタル信号の伝送レートが記録媒体としてのディスクの記録レートを超える場合には、記録再生装置でデコード後、伝送レートがディスクの記録レートの上限以下になるように、再エンコードをして記録する必要がある。ようにすることができる。
【０００５】
また、入力デジタル信号のビットレートが時間により増減する可変レート方式によって伝送されている場合には、回転ヘッドが固定回転数であるために記録レートが固定レートになるテープ記録方式に比べ、１度バッファにデータを蓄積し、バースト的に記録ができるディスク記録装置の方が、情報記録媒体としてのディスクの容量をより無駄なく利用できる。
【０００６】
以上のように、デジタル放送が主流となる将来においては、データストリーマのように放送信号をデジタル信号のまま、デコードや再エンコードすることなく記録し、記録媒体としてディスクを使用した記録再生装置が求められると予測される。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上述したように、記録媒体の容量が増大することにより、その記録媒体には、多くのデータ（例えば、番組に関する映像データや音声データなど）が記録できるようになり、１枚のディスクに多くの番組が記録されることになる。この時に、ユーザが、それらのディスク内に記録されている多くの番組の中から、所望のデータを別のディスクにコピーする、といったような操作が必要になる。
【０００８】
しかしながら、コピー操作が行われた場合、記録されているデータの内容、および、再生情報を適切に管理することが困難になる。
【０００９】
本発明はこのような状況に鑑みてなされたものであり、記録媒体に記録されているデータの内容を別の記録媒体にコピーした場合においても、記録媒体に記録されているデータの内容、および、再生情報を適切に管理することができるようにすることを目的とする。
【課題を解決するための手段】
【００１０】
本発明の一側面は、自分に接続された送信装置から転送されるデータストリームを受信して記録するデータ受信装置であって、前記送信装置による前記データストリームの送信に用いられる転送方式がアイソクロナス転送であるかアシンクロナス転送であるかを判定する判定部を備え、前記転送方式がアイソクロナス転送であると判定された場合、記録される前記データストリームにおける時間情報を、前記データストリームを受信した時刻に基づいて新たに生成して付加し、前記転送方式がアシンクロナス転送であると判定された場合、受信した前記データストリームに含まれる時間情報を、記録される前記データストリームにおける時間情報とするデータ受信装置である。
【００１１】
前記データストリームは、複数のトランスポートパケットに分割されて受信されるようにすることができる。
【００１２】
前記時間情報は、前記トランスポートパケットのヘッダ部に格納されるようにすることができる。
【００１３】
前記送信装置からバスを伝送路として転送される前記データストリームを受信するようにすることができる。
【００１４】
前記送信装置から無線波を伝送路として転送される前記データストリームを受信するようにすることができる。
【００１５】
前記データストリームを再生するために必要な管理情報を、前記データストリームを受信してから新たに作成するようにすることができる。
【００１６】
前記受信したデータストリームを記録媒体に記録するようにすることができる。
【００１７】
アシンクロナス転送により送信されてくる、前記データストリームを再生するために必要なデータベースファイルをさらに受信するようにすることができる。
【００１８】
前記受信したデータストリーム及びデータベースファイルを記録媒体に記録するようにすることができる。
【００１９】
前記データベースファイルは前記転送されたデータストリームの再生開始点及び再生終了点を示す再生管理情報を含み、前記データベースファイルを受信してから、前記再生管理情報を予め保持しているデータストリームの再生管理情報のリストへ追加するようにすることができる。
【００２０】
前記データベースファイルは前記転送されたデータストリームに関するサムネール情報を含み、前記データベースファイルを受信してから、前記サムネール情報を予め保持しているデータストリームのサムネール情報を集めたサムネール情報ファイルへ追加するようにすることができる。
【００２１】
本発明の一側面は、自分に接続された送信装置から転送されるデータストリームを受信して記録するデータ受信装置のデータ受信方法であって、前記送信装置による前記データストリームの送信に用いられる転送方式がアイソクロナス転送であるかアシンクロナス転送であるかを判定し、前記転送方式がアイソクロナス転送であると判定された場合、記録される前記データストリームにおける時間情報を、前記データストリームを受信した時刻に基づいて新たに生成して付加し、前記転送方式がアシンクロナス転送であると判定された場合、受信した前記データストリームに含まれる時間情報を、記録される前記データストリームにおける時間情報とするデータ受信方法である。
【００２２】
本発明の一側面においては、前記送信装置による前記データストリームの送信に用いられる転送方式がアイソクロナス転送であるかアシンクロナス転送であるかが判定され、前記転送方式がアイソクロナス転送であると判定された場合、記録される前記データストリームにおける時間情報が、前記データストリームを受信した時刻に基づいて新たに生成されて付加され、前記転送方式がアシンクロナス転送であると判定された場合、受信した前記データストリームに含まれる時間情報が、記録される前記データストリームにおける時間情報とされる。
【発明の効果】
【００２３】
本発明によれば、シンタクス、データ構造、規則に基づくことにより、記録媒体に記録されているＡＶストリームファイルとそのデータベースファイルの内容を適切に管理することができ、もって、ユーザが所望のＡＶストリームファイルとそのデータベースファイルを別の記録媒体に簡便にコピーできるようにすることができる。
【発明を実施するための最良の形態】
【００２４】
以下に、本発明の実施の形態について、図面を参照して説明する。
【００２５】
図１は、記録媒体（後述する図４４の記録媒体１０）上のアプリケーションフォーマットの簡単化された構造を示している。このフォーマットは、AVストリームの管理のためにPlayListとClipの２個のレイヤをもつ。そして、Volume Informationは、ディスク内のすべてのClipとPlayListの管理をする。
【００２６】
１個のAVストリームと、それの付属情報のペアを１個のオブジェクトと考え、それをClipと呼ぶ。AVストリームファイルはClip AVストリームファイルと呼ばれ、その付属情報は、Clip Information fileと呼ばれる。
【００２７】
１個のClip AVストリームファイルは、MPEG2トランスポートストリームを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のストリーム部分に相当するデータ容量をディスクの中で占める。AVストリームが新しいClipとして記録される場合、そのClip全体の再生可能範囲を参照するReal PlayListが自動的に作られる。Real PlayListの再生範囲の一部分が消去された場合、それが参照しているClipのストリーム部分のデータもまた消去される。
【００３２】
Virtual PlayListは、Clipのデータを共有していないとみなされる。Virtual PlayListが変更または消去されたとしても、Clipは何も変化しない。
【００３３】
なお、以下の説明においては、Real PlayListとVirtual PlayListを総称して単に、PlayListと呼んでいる。
【００３４】
DVRディスク上に必要なディレクトリは、次の通りである。
”DVR”ディレクトリを含むrootディレクトリ
”PLAYLIST”ディレクトリ,”CLIPINF”ディレクトリ，”STREAM”ディレクトリ
および”DATA”ディレクトリを含む”DVR”ディレクトリ
【００３５】
rootディレクトリの下に、これら以外のディレクトリを作っても良いが、それらは、このDVRアプリケーションフォーマットでは、無視される。
【００３６】
図２に、DVRディスク上のディレクトリ構造の例を示す。同図に示されるように、rootディレクトリは、１個のディレクトリを含む。
”DVR” -- DVRアプリケーションフォーマットによって規定されるすべてのファイルとディレクトリは、このディレクトリの下にストアされなければならない。
【００３７】
”DVR”ディレクトリは、次に示すファイルをストアする。”info.dvr”ファイルは、 DVRディレクトリの下に作られ、アプリケーションレイヤの全体的な情報をストアする。DVRディレクトリの下には、ただ一つのinfo.dvrがなければならない。ファイル名は、info.dvrに固定されるとする。”menu.tidx”と”menu.tdat”、そして”mark.tidx”と”mark.tdat”は、サムネールについての情報をストアするためのファイルである。
【００３８】
”DVR”ディレクトリは、以下に説明するディレクトリを含む。
”PLAYLIST” -- Real PlayListとVirtual PlayListのデータベースファイルは、このディレクトリの下に置かなければならない。このディレクトリは、PlayListが１個もなくても存在しなければならない。
”CLIPINF” -- Clipのデータベースは、このディレクトリの下に置かなければならない。このディレクトリは、Clipが１個もなくても存在しなければならない。
”STREAM” -- AVストリームファイルは、このディレクトリの下に置かなければならない。このディレクトリは、AVストリームファイルが１個もなくても存在しなければならない。
【００３９】
”PLAYLIST”ディレクトリは、2種類のPlayListファイルをストアするものであり、それらは、Real PlayListとVirtual PlayListである。
”xxxxx.rpls” -- このファイルは、１個のReal PlayListに関連する情報をストアする。それぞれのReal PlayList毎に、１個のファイルが作られる。ファイル名は、”xxxxx.rpls”である。ここで、”xxxxx”は、5個の0から9まで数字である。ファイル拡張子は、”rpls”でなければならない。
”yyyyy.vpls” -- このファイルは、１個のVirtual PlayListに関連する情報をストアする。それぞれのVirtual PlayList毎に、１個のファイルが作られる。ファイル名は、”yyyyy.vpls”である。ここで、”yyyyy”は、5個の0から9まで数字である。ファイル拡張子は、”vpls”でなければならない。
【００４０】
”CLIPINF”ディレクトリは、それぞれのAVストリームファイルに対応して、１個のファイルをストアする。
”zzzzz.clpi” -- このファイルは、１個のAVストリームファイル(Clip AVストリームファイル または Bridge-Clip AVストリームファイル)に対応するClip Information fileである。ファイル名は、”zzzzz.clpi”であり、ここで、”zzzzz”は、5個の0から9までの数字である。ファイル拡張子は、”clpi”でなければならない。
【００４１】
”STREAM”ディレクトリは、AVストリームのファイルをストアする。
”zzzzz.m2ts” -- このファイルは、DVRシステムにより扱われるAVストリームファイルである。これは、Clip AVストリームファイルまたはBridge-Clip AVストリームファイルである。ファイル名は、”zzzzz.m2ts”であり、ここで”zzzzz”は、5個の0から9までの数字である。ファイル拡張子は、”m2ts”でなければならない。
【００４２】
１個のAVストリームファイルとそれに対応するClip information fileは、同じ5個の数字”zzzzz”を使用しなければならない。
【００４３】
その他のディレクトリとファイル名は、本発明の実施の形態を説明するために必要ないので、説明を省略する。
【００４４】
次に、ＡＶストリームファイルの構造を説明する。AVストリームファイルは図３示すDVR MPEG2トランスポートストリームの構造を持たなければならない。DVR MPEG2トランスポートストリームは次に示す特徴を持つ。
【００４５】
DVR MPEG2トランスポートストリームは、整数個のAligned unitから構成される。
Aligned unitの大きさは、6144 バイト (2048×3 バイト)である。
Aligned unitは、ソースパケットの第１バイト目から始まる。
ソースパケットは、192バイト長である。１個のソースパケットは、TP_extra_headerとトランスポートパケットから成る。TP_extra_headerは、4バイト長であり、またトランスポートパケットは、188バイト長である。
１個のAligned unitは、32個のソースパケットから成る。
DVR MPEG2トランスポートストリームの中の最後のAligned unitも、また32個の
ソースパケットから成る。
最後のAligned unitが、入力トランスポートストリームのトランスポートパケットで完全に満たされなかった場合、残りのバイト領域をヌルパケット（PID=0x1FFFのトランスポートパケット）を持ったソースパケットで満たさねばならない。
【００４６】
Source packet のシンタクスを図４に示す。
【００４７】
TP_extra_header()は、４バイト長のヘッダである。また、transport_packet() は、 ISO/IEC 13818-1で規定される188バイト長のMPEG-2トランスポートパケットである。
【００４８】
TP_extra_headerのシンタクスを図５に示す。
【００４９】
copy_permission_indicatorは、 対応するトランスポートパケットのペイロードのコピー制限を表す整数である。
【００５０】
arrival_time_stampは、AVストリームの中で、対応するトランスポートパケットがデコーダ（後述する図４４のＡＶデコーダ１６が対応する）に到着する時刻を示すタイムスタンプである。これは、後述する式(1)の中でarrival_time_stampによって指定される値を持つ整数値である。
【００５１】
図６は、DVR MPEG-2トランスポートストリームのレコーダモデル（後述する図４４の動画像記録再生装置１が対応する）を示す。これは、レコーディングプロセスを規定するための概念上のモデルである。DVR MPEG-2トランスポートストリームは、このモデルに従っていなければならない。
【００５２】
MPEG-2トランスポートストリームの入力タイミングについて説明する。
入力MPEG2トランスポートストリームは、フルトランスポートストリームまたはパーシャルトランスポートストリームである。
入力MPEG2トランスポートストリームは、ISO/IEC13818-1またはISO/IEC13818-9に従っていなければならない。
MPEG2トランスポートストリームのi番目のバイトは、T-STD(ISO/IEC 13818-1で規定されるTransport stream system target decoder)２０１（図４４のAVデコーダ１６が対応する）とソースパケッタイザ（source packetizer）２０４（図４４のソースパケッタイザ２９が対応する）へ、時刻t(i)に同時に入力される。
【００５３】
27MHz PLL２０２（図４４の動画像記録再生装置１では、制御部１７に内蔵されている）について説明する。
27MHzクロックの周波数は、MPEG-2トランスポートストリームのPCR (Program Clock Reference)の値にロックしなければならない。
【００５４】
arrival time clockについて説明する。
アライバルタイムクロックカウンタ（Arrival time clock counter）２０３（図４４の動画像記録再生装置１では、制御部１７に内蔵されている）は、27MHz PLL２０２が出力する27MHzの周波数のパルスをカウントするバイナリーカウンターである。
Arrival_time_clock(i)は、時刻t(i)におけるArrival time clock counter２０３のカウント値である。
【００５５】
ソースパケッタイザ２０４について説明する。
ソースパケッタイザ２０４は、すべてのトランスポートパケットにTP_extra_headerを付加し、ソースパケットを作る。
Arrival_time_stampは、トランスポートパケットの第１バイト目がT-STD２０１とソースパケッタイザ２０４の両方へ到着する時刻を表す。Arrival_time_stamp(k)は、等式(1)で示されるように、Arrival_time_clock(k)のサンプル値であり、ここで、kはトランスポートパケットの第１バイト目を示す。
arrival_time_stamp(k) = arrival_time_clock(k)% 230  (1)
【００５６】
ライトバッファ（Write Buffer）２０５（図４４の動画像記録再生装置１では、書き込み部３２に内蔵されている）について説明する。
Rmaxは、ソースパケッタイザ２０４からライトバッファ２０５へのソースパケットストリームの入力ビットレートである。入力トランスポートストリームの最大ビットレートをTS_recording_rateとすると、Rmaxは次のように計算される。
Rmax = TS_recording_rate × 192/188
【００５７】
Rudは、ライトバッファ２０５からDVRドライブ（DVR drive）２０６（図４４の動画像記録再生装置１では、書き込み部３２に内蔵されている）への出力ビットレートである。
ライトバッファ２０５が空でない時のバッファからのソースパケットストリームの出力ビットレートはRudである。バッファが空である時、バッファからの出力ビットレートはゼロである。
【００５８】
DVRドライブ２０６は、T-STD２０１への各パケットの到着時刻に対応するATSが付加された、ライトバッファ２０５からの各パケットを、ディスク（図４４の記録媒体１０に対応する）に記録する。
【００５９】
図７は、DVR MPEG-2トランスポートストリームのプレーヤモデル（図４４の動画像記録再生装置１が対応する）を示す。これは、再生プロセスを規定するための概念上のモデルである。DVR MPEG-2トランスポートストリームは、このモデルに従っていなければならない。
【００６０】
リードバッファ（Read buffer）２２２（図４４の動画像記録再生装置１では、読み出し部１１に内蔵されている）について説明する。
Rudは、DVRドライブ（DVR drive）２２１（図４４の動画像記録再生装置１では、読み出し部１１に内蔵されている）からリードバッファ２２２への入力ビットレートである。
リードバッファ２２２がフルでない時のバッファへのソースパケットストリームの入力ビットレートはRudである。バッファがフルである時、バッファへの入力は止められる。
Rmaxは、リードバッファ２２２からソースデパケッタイザ（source depacketizer）２２３（図４３のソースデパケッタイザ１４が対応する）へのソースパケットストリームの出力ビットレートである。
【００６１】
アライバルタイムクロックカウンタ（arrival time clock counter）２２５（図４４の動画像記録再生装置１では、制御部１７に内蔵されている）について説明する。
アライバルタイムクロックカウンタ２２５は、27MHz クリスタル発振器（27MHzX-tal）２２４（図４４の動画像記録再生装置１では、制御部１７に内蔵されている）が発生する27MHzの周波数のパルスをカウントするバイナリーカウンターである。
現在のソースパケットがAVストリームファイルの最初のソースパケットであるか、または後述するSequenceInfo()の中で SPN_ATC_start が指すところのソースパケットである場合、そのパケットのarrival time stampの値でアライバルタイムクロックカウンタ２２５のカウント値をリセットする。
Arrival_time_clock(i)は、時刻t(i)におけるアライバルタイムクロックカウンタ２２５のカウント値である。
【００６２】
MPEG-2トランスポートストリームの出力タイミングについて説明する。
現在のソースパケットのarrival_time_stampがarrival_time_clock(i)のLSB 30ビットの値と等しい時、そのソースパケットのトランスポートパケットは、バッファから引き抜かれる。
【００６３】
次に、ＡＶストリームファイルの再生情報を管理するデータベースフォーマットについて説明する。
【００６４】
図８は、Clip Information fileのシンタクスを示す。Clip Information fileは、SequenceInfo(), ProgramInfo(), CPI(), ClipMark()を持つ。
【００６５】
SequenceInfo_start_addressは、zzzzz.clpiファイルの先頭のバイトからの相対バイト数を単位として、SequenceInfo()の先頭アドレスを示す。相対バイト数はゼロからカウントされる。
【００６６】
ProgramInfo_Start_addressは、zzzzz.clpiファイルの先頭のバイトからの相対バイト数を単位として、ProgramInfo()の先頭アドレスを示す。相対バイト数はゼロからカウントされる。
【００６７】
CPI_Start_addressは、zzzzz.clpiファイルの先頭のバイトからの相対バイト数を単位として、CPI()の先頭アドレスを示す。相対バイト数はゼロからカウントされる。
【００６８】
ClipMark_Start_addressは、zzzzz.clpiファイルの先頭のバイトからの相対バイト数を単位として、ClipMark()の先頭アドレスを示す。相対バイト数はゼロからカウントされる。
【００６９】
その他のシンタクスフィールドは、本発明の実施の形態を説明するために必要ないので、説明を省略する。
【００７０】
SequenceInfo()は、Clip AV streamの中のATC-sequenceとSTC-sequenceの情報を定義する。
【００７１】
ATC-sequenceについて説明する。AVストリームファイルを構成する各ソースパケットのarrival time stamp (ATS) に基づいて作られる時間軸を、アライバルタイムベースと呼び、そのクロックを、ATC (Arrival Time Clock)と呼ぶ。そして、ATCの不連続点（アライバルタイムベースの不連続点）を含まないソースパケット列を、ATC-sequenceと呼ぶ。
【００７２】
図９は、ATC-sequenceについて説明する図である。入力トランスポートストリームをClip AVストリームファイルとして新しく記録する時、そのClipはATCの不連続点を含んではならず、ただ１つのATC-sequenceを持つ。ATCの不連続点は、編集等によってClip AVストリームファイルのストリームデータを部分的に消去した場合にだけ作られることを想定している。これについての詳細は後述する。
【００７３】
AVストリームファイルの中で、新しいATCが開始するアドレス、すなわち、ATC-sequenceのスタートアドレスを、SequenceInfo()にストアする。このアドレスは、SPN_ATC_startにより示される。
【００７４】
AVストリームファイルの中にある最後のATC-sequence以外のATC-sequenceは、そのSPN_ATC_startで指されるソースパケットから開始し、その次のSPN_ATC_startで指されるソースパケットの直前のソースパケットで終了する。最後のATC-sequenceは、そのSPN_ATC_startで指されるソースパケットから開始し、AVストリームファイルの最後のソースパケットで終了する。
【００７５】
図１０は、ATCの不連続点とATC-sequenceの関係を説明する図である。この例の場合、Clip AVストリームファイルは、2個のATC不連続点を持ち、３個のATC-sequenceを持つ。
【００７６】
STC-sequenceについて説明する。STC(System Time Clock)の定義は、MPEG-2で規定されている定義に従う。すなわち、これは、トランスポートストリームの中のPCR(Program Clock Reference)に基づいて作られる時間軸であるシステムタイムベースのクロックである。STCの値は90kHz精度、33ビット長のバイナリーカウンタのカウント値で表される。
【００７７】
図１１は、連続なSTC区間について説明する図である。ここで横軸は、Arrival Time Clock（またはアライバルタイムベース）であり、縦軸は STC （またはシステムタイムベース）である。Case-1の場合、STCは単調増加しており、その区間のSTCは連続である。Case-2の場合、33ビットのSTCが途中でラップアラウンドしている。STCのラップアラウンド点はSTCの不連続ではない。ラップアラウンドしてもSTCは連続である。
【００７８】
STCの不連続は、放送局が伝送系を切り替えた場合、記録側が記録するチャンネルを切り替えた場合、ユーザが編集動作を行った場合などに発生する。
【００７９】
STCの不連続点（システムタイムベースの不連続点）を含まないソースパケット列を、STC-sequenceと呼ぶ。なお、同じSTC_sequenceの中で同じSTCの値は、決して現れない。そのために、Clipの最大時間長を、33ビットのSTCのラップアラウンド周期（約26時間）以下に制限している。
【００８０】
AVストリームファイルの中で、新しいSTCが開始するアドレス、すなわち、STC-sequenceのスタートアドレスが、SequenceInfo()にストアされる。このアドレスは、SPN_STC_startにより示される。
【００８１】
STC-sequenceは、ATC-sequenceの境界をまたぐことはない。
【００８２】
AVストリームファイルの中にある最後のSTC-sequence以外のSTC-sequenceは、そのSPN_STC_startで指されるソースパケットから開始し、その次のSPN_STC_startで指されるソースパケットの直前のソースパケットで終了する。最後のSTC-sequenceは、そのSPN_STC_startで指されるソースパケットから開始し、AVストリームファイルの最後のソースパケットで終了する。
【００８３】
図１２は、STCの不連続点とSTC-sequenceの関係、およびSTC-sequenceとATC-sequenceの関係を説明する図である。この例の場合、Clip AVストリームファイルは、3個のSTCを持ち、3個のSTC-sequenceを持つ。１つのSTC-sequenceが、ATC-sequenceの境界をまたぐことはない。
【００８４】
AVストリームがSTCの不連続点を持つ場合、そのAVストリームファイルの中で同じ値のPTSが現れるかもしれない。そのため、AVストリーム上のある時刻をPTSベースで指す場合、アクセスポイントのPTSだけではそのポイントを特定するためには不十分である。PTSに加えて、そのPTSを含むところのSTC-sequenceのインデックスが必要である。そのインデックスをSTC-idと呼ぶ。
【００８５】
図１３は、SequenceInfo()のシンタクスを示す。
【００８６】
lengthは、このlengthフィールドの直後のバイトからSequenceInfo()の最後のバイトまでのバイト数を示す。
【００８７】
num_of_ATC_sequencesは、AVストリームファイルの中にあるATC-sequenceの数を示す。
【００８８】
SPN_ATC_start[atc_id]は、AVストリームファイル上でatc_idによって指されるATC-sequenceが開始するアドレスを示す。SPN_ATC_start[atc_id]は、ソースパケット番号を単位とする大きさであり、AVストリームファイルの最初のソースパケットからゼロを初期値としてカウントされる。
【００８９】
SequenceInfo()の中の最初のSPN_ATC_start[0]は、ゼロである。また、SequenceInfo()の中でエントリーされるSPN_ATC_start[atc_id]の値は、昇順に並んでいる。すなわち、SequenceInfo()の中でエントリーされるSPN_ATC_start[atc_id]は、次の条件を満たす。
【００９０】
SPN_ATC_start[0] = 0
0 < atc_id < num_of_ATC_sequences なる atc_id について、
SPN_ATC_start[atc_id -1] < SPN_ATC_start[atc_id]
【００９１】
num_of_STC_sequences[atc_id]は、atc_idによって指されるATC-sequence上にあるSTC-sequenceの数を示す。
【００９２】
offset_STC_id[atc_id]は、atc_idによって指されるATC-sequence上にある最初のSTC-sequenceに対するsct_id のオフセット値を示す。AVストリームファイルを新たに記録する時、offset_STC_id[atc_id]は、ゼロである。
【００９３】
atc_idによって指されるATC-sequence上にあるSTC-sequenceに対応するstc_idの値は、シンタクス中のstc_idのfor-loopによって記述される順番によって定義され、その値はoffset_STC_id[atc_id]から開始する。
【００９４】
SequenceInfo()の中で定義される連続する2個のATC-sequenceについて、前側のATC-sequenceの最後の stc_id と それに続くATC-sequenceの最初の stc_id は、同じ値でも良い。もし、これら２個の stc_id が同じ値の場合、それらの値で参照される2個の STC-sequenceの中で同じSTCの値が現れることはない。
【００９５】
SequenceInfo()の中でエントリーされるstc_idの値は、昇順に並ばなければならない。offset_STC_id[atc_id]は、この制限を満たすように値がセットされる。
【００９６】
PCR_PID[atc_id][stc_id]は、atc_idによって指されるATC-sequence上にあるところのstc_idによって指されるSTC-sequence に有効なPCRを持つトランスポートパケットのPIDの値である。
【００９７】
SPN_STC_start[atc_id][stc_id]は、atc_idによって指されるATC-sequence上にあるところのstc_idによって指されるSTC-sequence が、AVストリームファイル上で開始するアドレスを示す。SPN_STC_start[atc_id][stc_id]は、ソースパケット番号を単位とする大きさであり、AVストリームファイルの最初のソースパケットからゼロを初期値としてカウントされる。
【００９８】
SequenceInfo()の中でエントリーされるSPN_STC_start[atc_id][stc_id]の値は、昇順に並んでいる。atc_idによって指されるATC-sequence上にある最初のSPN_STC_start[atc_id][stc_id] は、SPN_ATC_start[atc_id]以上の値である。すなわち、次の条件を満たす。
【００９９】
SPN_ATC_start[atc_id] <= SPN_STC_start[atc_id][0]
【０１００】
presentation_start_time[atc_id][stc_id]は、atc_idによって指されるATC-sequence上にある stc_id によって指されるSTC-sequence上にあるAVストリームデータのプレゼンテーション・スタート・タイムを示す。これは、そのSTC-sequenceのSTCから導かれる45 kHzを単位とするプレゼンテーション・タイムの値である。
【０１０１】
presentation_end_time[atc_id][stc_id]は、atc_idによって指されるATC-sequence上にある stc_id によって指されるSTC-sequence上にあるAVストリームデータのプレゼンテーション・エンド・タイムを示す。これは、そのSTC-sequenceのSTCから導かれる45 kHzを単位とするプレゼンテーション・タイムの値である。
【０１０２】
次に、ProgramInfo()について説明する。プログラムは、エレメンタリストリームの集まりであり、これらのストリームの同期再生のために、ただ１つのシステムタイムベースを共有するものである。
【０１０３】
再生装置（後述する図４４の動画像記録再生装置１）にとって、AVストリームのデコードに先だち、そのAVストリームの内容がわかることは有用である。この内容とは、例えば、ビデオやオーディオのエレメンタリーストリームを伝送するトランスポートパケットのPIDの値や、ビデオやオーディオのコンポーネント種類（例えば、HDTVのビデオとMPEG-2 AACのオーディオストリームなど）などの情報である。
【０１０４】
この情報はAVストリームを参照するところのPlayListの内容をユーザーに説明するところのメニュー画面を作成するのに有用であるし、また、AVストリームのデコードに先だって、再生装置のAVデコーダ１６（後述する図４４）およびデマルチプレクサ１５（後述する図４４）の初期状態をセットするために役立つ。この理由のために、Clip Information fileは、プログラムの内容を説明するためのProgramInfoを持つ。
【０１０５】
MPEG2トランスポートストリームをストアしているAVストリームファイルは、ファイルの中でプログラム内容が変化するかもしれない。例えば、ビデオエレメンタリーストリームを伝送するところのトランスポートパケットのPIDが変化したり、ビデオストリームのコンポーネント種類がSDTVからHDTVに変化するなどである。ProgramInfoは、AVストリームファイルの中でのプログラム内容の変化点の情報をストアする。
【０１０６】
AVストリームファイルの中で本フォーマットが規定するプログラム内容が一定であるソースパケット列を、program-sequenceと呼ぶ。
【０１０７】
AVストリームファイルの中で、新しいprogram-sequenceが開始するアドレスをProgramInfo()にストアする。このアドレスは、SPN_program_sequence_startにより示される。
【０１０８】
AVストリームファイルの中にある最後のprogram-sequence以外のprogram-sequenceは、そのSPN_program_sequence_startで指されるソースパケットから開始し、その次のSPN_program_sequence_startで指されるソースパケットの直前のソースパケットで終了する。最後のprogram_sequenceは、そのSPN_program_sequence_startで指されるソースパケットから開始し、AVストリームファイルの最後のソースパケットで終了する。
【０１０９】
図１４は、program-sequenceを説明する図である。この例の場合、Clip AVストリームファイルは3個のprogram-sequenceを持つ。
【０１１０】
program-sequenceは、ATC-sequenceの境界およびSTC-sequenceの境界をまたいでも良い。
【０１１１】
図１５は、ProgramInfo()のシンタクスを示す。
【０１１２】
lengthは、このlengthフィールドの直後のバイトからProgramInfo()の最後のバイトまでのバイト数を示す。
【０１１３】
num_of_program_sequencesは、AVストリームファイルの中にあるprogram-sequenceの数を示す。
【０１１４】
SPN_program_sequence_startは、AVストリームファイル上でprogram-sequenceが開始するアドレスを示す。SPN_program_sequence_startは、ソースパケット番号を単位とする大きさであり、AVストリームファイルの最初のソースパケットから、ゼロを初期値としてカウントされる。ProgramInfo()の中でエントリーされるSPN_program_sequence_startの値は、昇順に並んでいる。
【０１１５】
SPN_program_sequence_startは、そのprogram_sequenceに対する最初のPMTを持つソースパケットを指していることを前提とする。SPN_program_sequence_startは、データを記録する記録機（図４４の動画像記録再生装置１が対応する）がトランスポートストリーム中のPSI/SIを解析することによって作られる。記録機（例えば、図４４のビデオ解析部２４または多重化ストリーム解析部２６）がPSI/SIを解析し、その変化を検出するまでの遅延時間が必要なために、SPN_program_sequence_startは、実際のPSI/SIの変化点から所定の時間以内にあるソースパケットを指しても良い。
【０１１６】
program_map_PIDは、そのprogram-sequenceに適用できるPMT(program map table)を持つトランスポートパケットのPIDの値である。
【０１１７】
num_of_streams_in_psは、そのprogram-sequenceの中で定義されるエレメンタリーストリームの数を示す。
【０１１８】
num_of_groupsは、そのprogram-sequenceの中で定義されるエレメンタリーストリームのグループの数を示す。num_of_groupsは、１以上の値である。トランスポートストリームのPSI/SIがエレメンタリーストリームのグループ情報を持つ場合、num_of_groupsは、１以上の値をとることを想定している。それぞれのグループは、マルチ・ビュー・プログラム中の１つのビューを構成する。
【０１１９】
stream_PIDは、そのprogram-sequenceのprogram_map_PIDが参照するところのPMTの中で定義されているエレメンタリーストリームに対するPIDの値を示す。
【０１２０】
StreamCodingInfo() は、前記stream_PIDで指されるエレメンタリーストリームの情報を示す。詳細は後述する。
【０１２１】
num_of_streams_in_groupは、エレメンタリーストリームのグループが持つエレメンタリーストリームの数を示す。
【０１２２】
stream_indexは、前記エレメンタリーストリームのグループが持つエレメンタリーストリームに対応するところの、シンタクス中のfor-loopで定義されるstream_indexの値を示す。
【０１２３】
図１６は、StreamCodingInfo()のシンタクスを示す。
【０１２４】
lengthは、このlengthフィールドの直後のバイトからStreamCodingInfo()の最後のバイトまでのバイト数を示す。
【０１２５】
stream_coding_typeは、このStreamCodingInfo()に対応するstream_PIDで指されるエレメンタリーストリームの符号化タイプを示す。値の意味を図１７に示す。
【０１２６】
video_formatは、このStreamCodingInfo()に対応するstream_PIDで指されるビデオストリームのビデオフォーマットを示す。値の意味を図１８に示す。
【０１２７】
frame_rateは、このStreamCodingInfo()に対応するstream_PIDで指されるビデオストリームのフレームレートを示す。値の意味を図１９に示す。
【０１２８】
display_aspect_ratioは、このStreamCodingInfo()に対応するstream_PIDで指されるビデオストリームのディスプレイ・アスペクト・レシオを示す。値の意味を図２０に示す。
【０１２９】
cc_flagは、このStreamCodingInfo()に対応するstream_PIDで指されるビデオストリームの中でクローズド・キャプション(closed caption data)信号が符号化されているかを示すフラグである。
【０１３０】
original_video_format_flagは、このStreamCodingInfo()の中にoriginal_video_formatとoriginal_display_aspect_ratioが存在するかを示すフラグである。
【０１３１】
original_video_formatは、このStreamCodingInfo()に対応するstream_PIDで指されるビデオストリームが符号化される前のオリジナルのビデオフォーマットである。値の意味は、前記のvideo_formatと同じである。
【０１３２】
original_display_aspect_ratioは、このStreamCodingInfo()に対応するstream_PIDで指されるビデオストリームが符号化される前のオリジナルのディスプレイ・アスペクト・レシオである。値の意味は、前記のdisplay_aspect_ratioと同じである。
【０１３３】
ビデオストリームと共にマルチメディアデータストリーム（BMLストリーム, 字幕など）が多重化されているトランスポートストリームをトランス・コーディングする場合において、ビデオストリームは再エンコードされることによって、そのビデオフォーマットが変化する（例えば、1080iから480iへ変化する）が、マルチメディアデータストリームはオリジナルのストリームを保つ場合を考える。
【０１３４】
この時、新しいビデオストリームとマルチメディアデータストリームの間に情報のミスマッチが生じる場合がある。例えば、マルチメディアデータストリームの表示に関するパラメータは、オリジナルのビデオストリームのビデオフォーマットを想定して決められているにもかかわらず、ビデオストリームの再エンコードによって、そのビデオフォーマットが変化した場合である。
【０１３５】
このような場合、original_video_formatとoriginal_display_aspect_ratioに、オリジナルのビデオストリームに関する情報を保存する。再生機は、前記の新しいビデオストリームとマルチメディアデータストリームから次のようにして、表示画像をつくる。
【０１３６】
ビデオストリームは、original_video_formatとoriginal_display_aspect_ratioで示されるビデオフォーマットにアップ・サンプリングされる。そのアップ・サンプリングされた画像とマルチメディアデータストリームが合成されて、正しい表示画像をつくる。
【０１３７】
audio_presentation_typeは、このStreamCodingInfo()に対応するstream_PIDで指されるオーディオストリームのプレゼンテーション・タイプを示す。値の意味を図２１に示す。
【０１３８】
sampling_frequencyは、このStreamCodingInfo()に対応するstream_PIDで指されるオーディオストリームのサンプリング周波数を示す。値の意味を図２２に示す。
【０１３９】
次に、CPI()について説明する。CPI (Characteristic Point Information)は、AVストリームの中の再生時間情報とそのファイルの中のアドレスとを関連づけるためにある。
【０１４０】
CPIには２個のタイプがあり、それらはEP_mapとTU_mapである。CPI()の中のCPI_typeがEP_map typeの場合、そのCPI()はEP_mapを含む。また、CPI()の中のCPI_typeがTU_map typeの場合、そのCPI()はTU_mapを含む。１個のAVストリームファイルは、１個のEP_mapまたは１個のTU_mapを持つ。
【０１４１】
EP_mapは、エントリーポイント(EP)データのリストであり、それはエレメンタリーストリームおよびトランスポートストリームから抽出されたものである。これは、AVストリームの中でデコードを開始すべきエントリーポイントの場所を見つけるためのアドレス情報を持つ。１つのEPデータは、プレゼンテーションタイムスタンプ（PTS）と、そのPTSに対応するアクセスユニットのAVストリームの中のデータアドレスの対で構成される。
【０１４２】
EP_mapは、主に２つの目的のために使用される。第１に、PlayListの中でプレゼンテーションタイムスタンプによって参照されるアクセスユニットのAVストリームの中のデータアドレスを見つけるために使用される。第２に、ファーストフォワード再生やファーストリバース再生のために使用される。記録装置が、入力AVストリームを記録する場合、そのストリームのシンタクスを解析することができるとき、EP_mapが作成され、ディスクに記録される。
【０１４３】
TU_mapは、デジタルインタフェースを通して入力されるトランスポートパケットの到着時刻に基づいたタイムユニット（TU）データのリストを持つ。これは、到着時刻ベースの時間とAVストリームの中のデータアドレスとの関係を与える。
録装置が、入力AVストリームを記録する場合、そのストリームのシンタクスを解析することができないとき、TU_mapが作成され、ディスクに記録される。
【０１４４】
図２３はCPI()のシンタクスを示す。
【０１４５】
lengthは、このlengthフィールドの直後のバイトからCPI()の最後のバイトまでのバイト数を示す。
【０１４６】
CPI_typeは、1ビットのフラグであり、ClipのCPIのタイプを表す。
【０１４７】
EP_mapは、AVストリームファイルの中にある１つのビデオストリームに対して、次に示すデータを持つ。
(1) stream_PID :  そのビデオストリームを伝送するトランスポートパケットのPIDを示す。
(2) num_EP_entries : そのビデオストリームに対するエントリーポイントの数。EP_mapは、num_EP_entriesの数のPTS_EP_startとSPN_EP_startのペアのデータを持つ。
(3) PTS_EP_start : そのビデオストリームの中で、シーケンスヘッダから始まるアクセスユニットのPTSを示す。
(4) SPN_EP_start : 前記PTS_EP_startにより参照されるアクセスユニットの第１バイト目を含むソースポケットのAVストリームファイルの中でのアドレスを示す。SPN_EP_startはソースパケット番号を単位とする大きさであり、AVストリームファイルの最初のソースパケットから、ゼロを初期値としてカウントされる。
【０１４８】
AVストリームファイルの中に複数のビデオストリームが存在する場合、EP_mapは各ビデオストリームに対して、前記のデータを持つことができる。
【０１４９】
図２４は、EP_mapの例を示す。ここでは、Clip AV streamの中に、stream_PID=xのビデオストリームがあり、k個のエントリポイントがある（num_EP_entries=k）。SPN_EP_startで指されるソースパケットの例を図に示す。そのソースパケットの中のトランスポートパケットのTP_headerに続くペイロードは、PESパケットヘッダから開始する。それに続いて、シーケンスヘッダ（SQH）があり、それに続いてGOPヘッダ(GOPH)があり、それに続いてI-ピクチャヘッダ(I-PICH)がある。このシーケンスヘッダから始まるアクセスユニットのPTSは、PESパケットヘッダの中に符号化されている。
【０１５０】
次に、TU_mapについて説明する。
【０１５１】
図２５は、AVストリームを新しくClipとして記録する時にできるTU_mapについて説明する図である。１つのATC-sequenceの中にあるソースパケットのアライバルタイムに基づいて作られる時間軸を所定の時間単位で分割する。この時間単位をtime-unitと呼ぶ。
【０１５２】
各々のtime_unitの中に入るところの最初の完全な形のソースパケットのAVストリームファイル上でのアドレスをTU_mapにストアする。これらのアドレスをSPN_time_unit_startと呼ぶ。ATC-sequenceの上の時刻は、TU_start_timeに基づいて定義される。これについてはSPN_time_unit_startのセマンティクスで後述する。
【０１５３】
図２６は、TU_mapのシンタクスを説明する図である。
【０１５４】
time_unit_sizeは、１つのtime_unitの大きさを与えるものであり、それは27MHz精度のアライバルタイムクロックから導き出される45kHzクロックを単位とする大きさである。
【０１５５】
シンタクス中の atc_id のfor-loopで使われている num_of_ATC_sequencesの値は、SequenceInfo()の中で定義されている。
【０１５６】
offset_arrival_time[atc_id] は、atc_idで指されるATC-sequenceの中の最初の完全なtime-unitに対するオフセットの時間である。これは、27MHz精度のアライバルタイムクロックから導き出される45kHzクロックを単位とする大きさである。
【０１５７】
AVストリームを新しくClipとして記録した時、そのAVストリームファイルはただ１つのATC-sequenceを持ち、offset_arrival_time[atc_id]はゼロである。
【０１５８】
複数のoffset_arrival_time[atc_id]がTU_mapにエントリーされる場合は、次の条件式が満たされる。
offset_arrival_time[0] = 0
0 < atc_id < num_of_ATC_sequences なる atc_idについて、
offset_arrival_time[atc_id] 
>offset_arrival_time[atc_id-1]+time_unit 
*num_of_time_unit_entries[atc_id-1]
【０１５９】
num_of_time_unit_entries[atc_id] は、atc_idで指されるATC-sequenceの中に含まれるtime_unitのエントリー数を示す。
【０１６０】
SPN_time_unit_start[atc_id][i] は、atc_idで指されるATC-sequence中のi番目のtime_unitの開始するアドレスである。これはソースパケット番号を単位とし、AVストリームファイルの最初のソースパケットからゼロを初期値としてカウントされる。
【０１６１】
現在のtime_unitに入るソースパケットが何もない場合、現在のtime_unitに対するSPN_time_unit_startの値は、その１つ前のSPN_time_unit_startの値と等しい。
【０１６２】
TU_mapの中のSPN_time_unit_startの値のエントリは、昇順にならんでいなければならない。
【０１６３】
atc_idで指されるATC-sequence中のi番目のtime_unitの開始時刻は、次式で定義されるTU_start_time[atc_id][i]である。
TU_start_time[atc_id][i]=offset_arrival_time[atc_id]+i*time_unit_size
【０１６４】
次に、ClipMark()について説明する。
【０１６５】
ClipMark()は、Clip AVストリームの中のマーク（Mark）の情報を定義する。
マークは、Clipの中のハイライトや特徴的な時間を指定するために設けられている。Clipに付加されるマークは、AVストリームの内容に起因する特徴的なシーンを指定する、例えば、ＣＭ開始点やＣＭ終了点、またシーンチェンジ点などである。Clipにセットされるマークは、AVストリームが新しいClipとして記録される時に記録器がセットする。なお、後でPlayListファイルの中で説明するが、PlayListにセットされるマークをストアするために、PlayListファイルはPlayListMarkを持つ。PlayListにセットされるマークは、主にユーザによってセットされる、例えば、ブックマークやリジューム点などである。
【０１６６】
ClipまたはPlayListにマークをセットすることは、マークの時刻を示すタイムスタンプをClipMark / PlayListMarkに追加することにより行われる。また、マークを削除することは、ClipMark / PlayListMarkの中から、そのマークのタイムスタンプを削除する事で行われる。従って、マークのセットや削除により、AVストリームは何の変更もされない。
【０１６７】
図２７は、ClipにセットされるマークとPlayListにセットされるマークの関係を示す図である。PlayListを再生する時、そのPlayListが参照するClipのClipMarkにストアされているマークを参照する事ができる。したがって、１つのClipをReal PlayListや複数のVirtual PlayListによって参照している場合、それらのPlayListは、その１つのClipのClipMarkを共有することができるので、マークのデータを効率良く管理することができる。
【０１６８】
図２８は、ClipMarkのシンタクスを示す。
lengthは、このlengthフィールドの直後のバイトからClipMark()の最後のバイトまでのバイト数を示す。
maker_IDは、そのmark_typeを定義しているメーカーのメーカーＩＤを示す。
number_of_Clip_marksは、ClipMarkの中にストアされているマークのエントリー数を示す。
【０１６９】
mark_invalid_flagは、１ビットのフラグであり、これの値がゼロにセットされている時、このマークは有効な情報を持っていることを示し、また、これの値が１にセットされている時、このマークは無効であることを示す。
ユーザーがユーザーインタフェース上で１つのマークのエントリーを消去するオペレーションをした時、記録機はClipMarkからそのマークのエントリーを消去する代わりに、そのmark_invalid_flagの値を１に変更しても良い。
mark_typeは、マークのタイプを示す。
ref_to_STC_idは、mark_time_stampとrepresentative_picture_time_stampの両方が置かれているところのSTC-sequenceを指定するところのstc-idを示す。stc-idの値は、SequenceInfo()の中で定義される。
【０１７０】
mark_time_stampは、Clip AVストリームの中でマークが指定されたポイントをプレゼンテーションタイムスタンプをベースとして表す。
entry_ES_PIDが、0xFFFFにセットされている場合、そのマークはClipの中のすべてのエレメンタリーストリームに共通の時間軸上へのポインターである。
entry_ES_PIDが、0xFFFFでない値にセットされている場合、entry_ES_PIDは、そのマークによって指されるところのエレメンタリーストリームを含んでいるところのトランスポートパケットのPIDの値を示す。
ref_to_thumbnail_indexは、マークに付加されるサムネール画像の情報を示す。ref_to_thumbnail_indexフィールドが、0xFFFFでない値の場合、そのマークにはサムネール画像が付加されており、そのサムネール画像は、mark.tdatファイルの中にストアされている。その画像は、mark.tidxファイルの中でthumbnail_indexの値を用いて参照される（後述）。ref_to_thumbnail_indexフィールドが、0xFFFF である場合、そのマークにはサムネール画像が付加されていない事を示す。
representative_picture_time_stampは、mark_time_stampによって示されるマークを代表する画像のポイントを示すタイムスタンプをストアする。
【０１７１】
図２９は、PlayList fileのシンタクスを示す。PlayList fileは、UIAppInfoPlayList()，PlayList()，PlayListMark()を持つ。
【０１７２】
PlayList_start_addressは、PlayListファイルの先頭のバイトからの相対バイト数を単位として、PlayList()の先頭アドレスを示す。相対バイト数はゼロからカウントされる。
PlayListMark_start_addressは、PlayListファイルの先頭のバイトからの相対バイト数を単位として、PlayListMark()の先頭アドレスを示す。相対バイト数はゼロからカウントされる。
【０１７３】
その他のシンタクスフィールドは、本発明の実施の形態を説明するために必要ないので、説明を省略する。
【０１７４】
UIAppInfoPlayList()は、PlayListについてのユーザインターフェースアプリケーションのパラメータをストアする。
【０１７５】
図３０に、UIAppInfoPlayList()のシンタクスを示す。
ref_to_thumbnail_indexは、マークに付加されるサムネール画像の情報を示す。ref_to_thumbnail_indexフィールドが、0xFFFFでない値の場合、そのマークにはサムネール画像が付加されており、そのサムネール画像は、menu.tdatファイルの中にストアされている。その画像は、menu.tidxファイルの中でthumbnail_indexの値を用いて参照される（後述）。ref_to_thumbnail_indexフィールドが、0xFFFF である場合、そのマークにはサムネール画像が付加されていない事を示す。
その他のシンタクスフィールドは、PlayListについてのユーザインターフェースアプリケーションのパラメータを示すものであるが、本発明の実施の形態を説明するために必要ないので、詳細な説明を省略する。
【０１７６】
図３１は、PlayList()のシンタクスを示す。
【０１７７】
lengthは、このlengthフィールドの直後のバイトからPlayList()の最後のバイトまでのバイト数を示す。
【０１７８】
CPI_type: 1ビットのフラグであり、PlayItem()が使用するClipのCPI_typeの値を示す。CPI_typeは、Clip Information fileのCPI_typeで定義される。
【０１７９】
number_of_PlayItemsは、PlayList()の中にあるPlayItem()の数を示す。
【０１８０】
シンタクス中のPlayItem_idのfor-loopの中で、PlayItem()の現れる順番によって、そのPlayItem()に対するPlayItem_idの値が決る。PlayItem_idは、0から開始する。
【０１８１】
その他のシンタクスフィールドは、本発明の実施の形態を説明するために必要ないので、説明を省略する。
【０１８２】
次に、PlayItemについて説明する。１個のPlayItemは、基本的に次のデータを含む。
(1)PlayItem が指すClipのファイル名を指定するためのClip_information_file_name。
(2)そのClipの再生区間を特定するためのIN_timeとOUT_timeのペア。
(3)PlayListの中で連続する2個のPlayItemについて、前側のPlayItemと現在のPlayItemとの接続の状態を示すところのconnection_condition。
【０１８３】
図３２は、CPI_typeがEP_mapのPlayList（これをEP_map typeのPlayListと呼ぶ）を説明する図である。EP_map typeのPlayListの場合、PlayItemのIN_timeとOUT_timeは、PTSベースの時間を示す。そのIN_timeとOUT_timeは、同じSTC-sequence上の時刻を指す。そのSTC-sequenceを示すために、ref_to_STC_idを用いる。そのIN_timeとOUT_timeは、そのSTC-sequenceに対して定義される presentation_start_time と presentation_end_time（これらの情報はSequenceInfoの中にある）で示される再生区間の中の時間を指す。
【０１８４】
図３３は、CPI_typeがTU_mapのPlayList（これをTU_map typeのPlayListと呼ぶ）を説明する図である。TU_map typeのPlayList の場合、PlayItemのIN_timeとOUT_timeは、アライバルタイムベースの時間を指す。そのIN_timeとOUT_timeは、同じATC-sequence上の時刻を指す。
【０１８５】
図３４は、EP_map typeのPlayList の時間情報とAVストリームファイルの中のアドレス情報との関係を説明する図である。PlayList の時間情報は、AVストリームファイルの中のピクチャやオーディオフレームのPTS情報である。そして、Clip Information fileのEP_mapとSequenceInfoが、AVストリームの中の時間情報とそのファイルの中のアドレスとを関連づける。
【０１８６】
図３５は、TU_map typeのPlayList の時間情報とAVストリームファイルの中のアドレス情報との関係を説明する図である。PlayList の時間情報は、AVストリームファイルの中のアライバル・タイム情報である。そして、Clip Information fileのTU_mapが、AVストリームの中の時間情報とそのファイルの中のアドレスとを関連づける。
【０１８７】
図３６は、PlayItem()のシンタクスを示す。
【０１８８】
lengthは、このlengthフィールドの直後のバイトからPlayItem()の最後のバイトまでのバイト数を示す。
【０１８９】
Clip_Information_file_nameは、PlayItemが参照するClip Information fileのファイル名を示す。
【０１９０】
connection_conditionは、先行するPlayItemと現在のPlayItemとがシームレスに接続されているかどうかの情報を示す。
【０１９１】
ref_to_STC_idは、PlayItemが参照するClipのSTC-sequenceのstc-idを示す。stc-idの値は、SequenceInfoの中で定義されている。
【０１９２】
IN_timeは、PlayItemの再生開始時刻をストアする。
【０１９３】
OUT_timeは、PlayItemの再生終了時刻をストアする。
【０１９４】
Bridge_Clip_Information_file_nameは、先行するPlayItemと現在のPlayItemとがシームレスに接続されている場合の再生の補助情報である。
【０１９５】
図３７は、PlayListMark()のシンタクスを示す。PlayListMarkは前述したように、主にユーザによってセットされるマークをストアする。
lengthは、このlengthフィールドの直後のバイトからPlayListMark()の最後のバイトまでのバイト数を示す。
number_of_PlayList_marksは、PlayListMarkの中にストアされているマークのエントリー数を示す。
mark_invalid_flagは、１ビットのフラグであり、これの値がゼロにセットされている時、このマークは有効な情報を持っていることを示し、また、これの値が１にセットされている時、このマークは無効であることを示す。
ユーザーがユーザーインタフェース上で１つのマークのエントリーを消去するオペレーションをした時、記録機はPlayListMarkからそのマークのエントリーを消去する代わりに、そのmark_invalid_flagの値を１に変更しても良い。
mark_typeは、マークのタイプを示す。
mark_name_lengthは、Mark_nameフィールドの中に示されるマーク名のバイト長を示す。このフィールドの値は32以下である。
【０１９６】
ref_to_PlayItem_idは、マークが置かれているところのPlayItemを指定するところのPlayItem_idの値を示す。あるPlayItemに対応するPlayItem_idの値は、PlayList()において定義される。
mark_time_stampは、そのマークが指定されたポイントを示すタイムスタンプをストアする。mark_time_stampは、ref_to_PlayItem_idで示されるPlayItemの中で定義されているところのIN_timeとOUT_timeで特定される再生範囲の中の時間を指す。
PlayListのCPI_typeがEP_map typeの場合、mark_time_stampは、プレゼンテーションタイムスタンプをベースとして表され、また、CPI_typeがTU_map typeの場合、mark_time_stampはアライバルタイムスタンプをベースとして表される。
【０１９７】
entry_ES_PIDが、0xFFFFにセットされている場合、そのマークはPlayListによって使用されるすべてのエレメンタリーストリームに共通の時間軸上へのポインターである。entry_ES_PIDが、0xFFFFでない値にセットされている場合、entry_ES_PIDは、そのマークによって指されるところのエレメンタリーストリームを含んでいるところのトランスポートパケットのPIDの値を示す。
ref_to_thumbnail_indexは、マークに付加されるサムネール画像の情報を示す。ref_to_thumbnail_indexフィールドが、0xFFFFでない値の場合、そのマークにはサムネール画像が付加されており、そのサムネール画像は、mark.tdatファイルの中にストアされている。その画像は、mark.tidxファイルの中でthumbnail_indexの値を用いて参照される（後述）。ref_to_thumbnail_indexフィールドが、0xFFFF である場合、そのマークにはサムネール画像が付加されていない事を示す。
【０１９８】
mark_nameは、マークの名前を示す。このフィールドの中の左からmark_name_lengthで示されるバイト数が、有効なキャラクター文字であり、前記名前を示す。このキャラクター文字は、UIAppInfoPlayListの中でcharacter_setによって示される方法で符号化されている。mark_nameフィールドの中で、それら有効なキャラクター文字に続くバイトの値は、どんな値が入っていても良い。
【０１９９】
次に、”info.dvr”ディレクトリについて説明する。図３８は、”info.dvr”ファイルのシンタクスを示す図である。”info.dvr”ディレクトリは、UIAppInfoVolume()，TableOfPlayLists()を持つ。
TableOfPlayLists_Start_addressは、info.dvrファイルの先頭のバイトからの相対バイト数を単位として、TableOfPlayLists()の先頭アドレスを示す。相対バイト数はゼロからカウントされる。
【０２００】
図３９に、UIAppInfoPlayList()のシンタクスを示す。
ref_to_thumbnail_indexは、マークに付加されるサムネール画像の情報を示す。ref_to_thumbnail_indexフィールドが、0xFFFFでない値の場合、そのマークにはサムネール画像が付加されており、そのサムネール画像は、menu.tdatファイルの中にストアされている。その画像は、menu.tidxファイルの中でthumbnail_indexの値を用いて参照される（後述）。ref_to_thumbnail_indexフィールドが、0xFFFF である場合、そのマークにはサムネール画像が付加されていない事を示す。
【０２０１】
その他のシンタクスフィールドは、Volumeについてのユーザインターフェースアプリケーションのパラメータを示すものであるが、本発明の実施の形態を説明するために必要ないので、詳細な説明を省略する。
【０２０２】
図４０は、TableOfPlayLists()のシンタクスを示す。TableOfPlayLists()は、PlayList(Real PlayListとVirtual PlayList)のファイル名をストアする。ボリューム（ディスク）に記録されているすべてのPlayListファイルは、TableOfPlayList()の中に含まれる。TableOfPlayLists()は、ボリュームの中のPlayListのデフォルトの再生順序を示す。
lengthは、このlengthフィールドの直後からTableOfPlayLists()の最後までのTableOfPlayLists()のバイト数を示す。
number_of_PlayListsは、ボリュームに記録されているPlayListの数を示す。
PlayList_file_nameの１０バイトの数字は、PlayListのファイル名を示す。
【０２０３】
次に、サムネールについての情報をストアするファイルの内容を説明する。
”menu.tidx”と”menu.tdat”は、メニューサムネール，すなわちVolumeを代表する１つのピクチャおよびPlayList毎にそれを代表する１つのピクチャの情報をストアする。すべてのメニューサムネールのヘッダ情報は、１つのmenu.tidxに集めて管理される。すべてのメニューサムネールのピクチャデータは、１つのmenu.tdatに集めて管理される。
【０２０４】
”mark.tidx”と”mark.tdat”は、マークサムネール，すなわちマーク点で指されるピクチャについての情報をストアする。Volume中のすべてのClipおよびPlayListに付加されているすべてのマークサムネールのヘッダ情報は、１つのmark.tidxに集めて管理される。すべてのマークサムネールのピクチャデータは、１つのmark.tdatに集めて管理される。
サムネールのピクチャデータは、例えば、画像をＪＰＥＧで符号化したデータである。
【０２０５】
これら4個のファイルのシンタクスとセマンティクスを説明する。
”menu.tidx”と”mark.tidx”は、同じシンタクス構造を持つ。図４１は、”menu.tidx”と”mark.tidx”のシンタクス構造を示す。
version_numberは、このサムネールヘッダ情報ファイルのバージョンナンバーを示す4個の数字である。
lengthは、このlengthフィールドの直後のバイトからmenu.tidx/mark.tidxの最後のバイトまでのバイト数である。
number_of_thumbnailsは、menu.tidxの場合にはmenu.tdatにストアされているサムネールピクチャの数であり、mark.tidxの場合にはmark.tdatにストアされているサムネールピクチャの数である。
【０２０６】
tn_block_sizeは、menu.tidxの場合にはmenu.tdatの中の１つのtn_blockのサイズを示し、mark.tidxの場合にはmark.tdatの中の１つのtn_blockのサイズを示す。このサイズは、1024バイトを単位とする大きさである。例えば、tn_block_size=1は、１つのtn_blockのサイズが1024バイトであることを示す。１つのサムネールピクチャは、１つのtn_blockの中にストアされなければならない。
number_of_tn_blocksは、menu.tidxの場合にはmenu.tdatの中にあるtn_blockの数を示し、mark.tidxの場合にはmark.tdatの中にあるtn_blockの数を示す。
thumbnail_indexは、このthumbnail_indexフィールドに続くサムネール情報のインデクス番号を表す。thumbnail_indexして、0xFFFF という値を使用してはならない。
【０２０７】
menu.tidxの場合、thumbnail_indexはUIAppInfoVolume(), UIAppInfoPlayList() の中のref_to_thumbnail_indexによって参照される。mark.tidxの場合、thumbnail_indexはPlayListMark()およびClipMark()の中のref_to_thumbnail_indexによって参照される。
ref_to_tn_block_idは、menu.tidxの場合にはmenu.tdat中の１つのtn_blockを示し、そのtn_blockは、thumbnail_indexで指されるピクチャデータをストアしている。ref_to_tn_block_idの値は、menu.tdatのシンタクス中のtn_block_idの値を参照する。
mark.tidxの場合にはmark.tdat中の１つのtn_blockを示し、そのtn_blockは、thumbnail_indexで指されるピクチャデータをストアしている。ref_to_tn_block_idの値は、menu.tdatのシンタクス中のtn_block_idの値を参照する。
【０２０８】
picture_byte_sizeは、thumbnail_indexで指される１つの符号化サムネールピクチャのデータ長をバイト単位で示す。picture_byte_sizeは、1024*tn_block_sizeの値以下でなければならない。すなわち、記録機は１つの符号化サムネールピクチャのデータ長を1024*tn_block_sizeの値以下になるように、符号化しなければならない。
horizontal_picture_sizeは、thumbnail_indexで指される符号化サムネールピクチャの水平方向の画素数を示す。
vertical_picture_sizeは、thumbnail_indexで指される符号化サムネールピクチャの垂直方向の画素数を示す。
display_aspect_ratioは、thumbnail_indexで指される符号化サムネールピクチャのディスプレイ・アスペクト・レシオを示す。
【０２０９】
図４２は、”menu.tdat”と”mark.tdat”のシンタクス構造を示す。”menu.tdat”と”mark.tdat”は、同じシンタクス構造を持つ。
tn_blockは、１つの符号化サムネールピクチャがストアされる領域である。一つのサムネールピクチャのバイト長は、１つのtn_blockの大きさ以下である。１つのピクチャデータの第一バイト目は、tn_blockの第一バイト目と一致していなければならない。
【０２１０】
menu.tdatの場合、１つのtn_blockのサイズはmenu.tdatの中のtn_block_sizeで示される。mark.tdatの場合、１つのtn_blockのサイズはmark.tdatの中のtn_block_sizeで示される。
各tn_blockは、それがシンタクス中のfor-loopの中で現れるときのtn_block_idの値で区別される。menu.tidx中のtn_block_idは、menu.tidx中のref_to_tn_block_idによって参照される。mark.tidx中のtn_block_idは、mark.tidx中のref_to_tn_block_idによって参照される。
サムネールは頻繁に追加、削除されるので、追加操作と部分削除の操作は容易に高速に実行できなければならない。この理由のため、menu.tdat とmark.tdatはブロック構造を有する。一つのピクチャデータは１つのtn_blockに格納される。
【０２１１】
menu.tdatおよびmark.tdatのtn_block列の中に、使用されていないtn_blockが存在してもよい。例えば、あるサムネールの削除をする場合、サムネールのヘッダ情報ファイルの中にエントリーされているthumbnail_indexを消去し、サムネールのピクチャデータファイルを何も変更しなかったとき、tn_block列の中に、使用されていないtn_blockができる。
【０２１２】
図４３は、サムネールピクチャデータがどのようにtn_blockに格納されるかを模式的に表した図である。図のように、一つのサムネールピクチャのバイト長は、１つのtn_blockの大きさ以下である。tn_block列の中に、使用されていないtn_blockが存在してもよい。
【０２１３】
次に、PlayListの編集動作のコンセプトについて説明する。以下の処理は、ユーザからの操作に基づいて、例えば、後述する図４４の制御部１７により実行される。
【０２１４】
図４５は、AVストリームが新しいClipとして記録される時のClipとPlayListの関係のコンセプトを説明する図である。AVストリームが新しいClipとして記録される場合、そのClip全体の再生可能範囲を参照するReal PlayListが作られる。
【０２１５】
図４６は、Virtual PlayListの作成のコンセプトについて説明する図である。
ユーザがReal PlayListの再生範囲の中から、IN-timeとOUT-timeを指定することによって、見たい再生区間のPlayItemを作り、Virtual PlayListをつくる。
【０２１６】
図４７は、Real PlayListの再生区間の一部分を消去したときのClipとPlayListの関係のコンセプトを説明する図である。必要なClip AVストリームの再生部分だけを参照するように、Real PlayListのPlayItemを変更する。そして、Clip AVストリームの不必要なストリーム部分を消去する。図４７に示すように、Clip AVストリームの中央部のデータを消去しても、Clip AVストリームファイルは分割されないで、１つのファイルである。１つのClip AVストリームのデータを部分的に消去しても、残ったデータ部分は１つのClip AVストリームにまとめられる。
【０２１７】
Real PlayListが変更されて、それが参照するClipのストリーム部分が消去された時、それと同じClipを使用しているVirtual PlayListが参照するClipがなくなって、問題が起きるかもしれない。そのようなことがないように、ユーザインターフェースは、次に示す対策をとるべきである。
【０２１８】
その”消去”の操作に対して、ユーザに「そのReal PlayListが参照しているClipのストリーム部分を参照しているVirtual PlayListが存在し、もし、そのReal PlayListが消去されると、そのVirtual PlayListもまた消去されることになるが、それで良いか？」と確認，警告する。または、前記Virtual PlayListを消去する代わりに、Real PlayListに対して次に示す”ミニマイズ(Minimize)”の操作をする。
【０２１９】
図４８は、ミニマイズの編集をしたときのClipとReal PlayList, Virtual PlayListの関係のコンセプトを説明する図である。ミニマイズ編集は、Real PlayListのPlayItemを、Virtual PlayListに必要なClipのストリーム部分だけを参照するように変更する。そして、Virtual PlayList にとって不必要なClipのストリーム部分を消去する。
【０２２０】
図４８に示すように、Clip AVストリームの中央部のデータを消去しても、Clip AVストリームファイルは分割されないで、１つのファイルである。１つのClip AVストリームのデータを部分的に消去しても、残ったデータ部分は１つのClip AVストリームにまとめられる。
【０２２１】
次に、前記のコンセプトに基づいて、Clip AVストリームのデータを部分的に消去する場合のClip Information fileの変化について説明する。
【０２２２】
前述したように、AVストリームをClipファイルとして新たに記録する時、そのClipはATCの不連続点を含まず、ただ１つのATC-sequenceを持つ。そして、ATCの不連続点は、編集等によってClip AVストリームファイルのストリームデータを部分的に消去した場合にだけ、作られることを想定している。すなわち、図４７や図４８に示すように、１つのClip AVストリームのデータを部分的に消去して、残ったデータ部分が１つのClip AVストリームにまとめられた時、そのClipはATCの不連続点を持ち、複数のATC-sequenceを持つ。例えば、図４９において、編集前のClipはATCの不連続点を含まず、ただ１つのATC-sequenceを持つとする。
そして図に示すように、Clip AVストリームの中央部のデータを消去した場合、編集後のClipは、2個のATC-sequenceを持つ。
【０２２３】
図５０は、１つのClip AVストリームのデータを部分的に消去した時のATC-sequence, STC-sequence および program-sequenceの関係を説明する図である。編集前のClipは、ただ１つのATC-sequenceと１つのSTC-sequenceと１つのprogram-sequenceを持つとする。すなわち、このClipの中では、program-sequenceの内容が変化しないとする。この時、図に影で示す部分のAVストリームデータを消去したとする。編集の結果、Clipは3個のATC-sequenceと3個のSTC-sequenceを持つ、一方、program-sequenceは１個のままである。このprogram-sequenceは、ATC-sequenceの境界とSTC-sequenceの境界をまたいでいる。
【０２２４】
次に、前記のようにClip AVストリームのデータが部分的に消去される時の、ClipとPlayListの関係について説明する。
【０２２５】
図５１は、CPIがEP_mapであるClip AVストリームの一部分を消去した時のClipとPlayListの関係を説明する図である。編集前のClipは１個のATC-sequenceと3個のSTC-sequenceを持つとする。このATC-sequenceについてのoffset_STC_id[0]はゼロである。そして、Clipの中のstc=1であるSTC-sequenceは、PlayItem2とPlayItem3に使われているとする。今、図に示すようにstc=1であるSTC-sequenceのAVストリームデータについて、PlayItem2とPlayItem3に使われていない部分のAVストリームデータを消去したとする。
【０２２６】
編集後のClipは2個のATC-sequenceを持ち、stc_id=1であったSTC-sequenceは2個のSTC-sequenceに分かれる。１番目のATC-sequenceについてのoffset_STC_id[0]はゼロにセットされ、２番目のATC-sequenceについてのoffset_STC_id[1]は１にセットされる。すなわち、１番目のATC-sequenceの中で最後のSTC-sequenceのstc_id と ２番目のATC-sequenceの中で最初のSTC-sequenceのstc_id は、同じ値で１になる。
【０２２７】
これにより、編集後のVirtual PlayListのPlayItem3とPlayItem4のref_to_STC_idの値を変更する必要がない。Clip AVストリームファイルの部分的なデータを消去する時に、その消去部分を使用していないVirtual PlayListについては何も変更しなくても良い。
【０２２８】
このように、Clip AVストリームの中にATCの不連続点を作ることができるので、Clip AVストリームのミドル(middle)部分のストリームデータを消去した場合に、Clipファイルを2個に分割する必要がない。さらに、ATCシーケンス毎に、その上にある最初のSTCシーケンスのSTC-idに対するoffset_STC_idを用いることにより、Clip AVストリームファイルの部分的なデータを消去する時に、その消去部分を使用していないVirtual PlayListについては何も変更しなくて良い。
【０２２９】
この効果についての理解を助けるために、図５２はClipの中にATCの不連続を許さない場合において、Clip AVストリームの一部分を消去した時に、Clipファイルが二つに分かれる場合を説明する図であり、また、その時のClipとPlayListの関係を説明する図である。
【０２３０】
図５１と同様にして、編集前のClipは１個のATC-sequenceと3個のSTC-sequenceを持つとする。このATC-sequenceについてのoffset_STC_id[0]はゼロである。そして、Clipの中のstc=1であるSTC-sequenceは、PlayItem2とPlayItem3に使われているとする。今、図に示すようにstc=1であるSTC-sequenceのAVストリームデータについて、PlayItem2とPlayItem3に使われていない部分のAVストリームデータを消去したとする。
【０２３１】
Clipの中にATCの不連続を許さない場合、編集後はClip-AとClip-Bの2個のClipファイルに分かれる。そのため、PlayItem3とPlayItem4が参照するClipファイルの名前を変更する必要がある。すなわち、Clip AVストリームファイルの部分的なデータを消去する時に、その消去部分を使用していないVirtual PlayListであっても、その内容を変更しなければならない場合がある。
【０２３２】
Clipの中にATCの不連続を許さない場合は、これを許す場合に比べると次の問題がある。
(1) ディスク中のClipファイル数が多くなる問題。
これによって、ディスクの再生開始時に全てのClipファイルを読み出し、再生装置（動画像記録再生装置１）のメモリ（制御部１７に内蔵されているメモリ）にストアする処理にかかる時間が増える問題がある。また、ディスク（記録媒体１０）中に記録可能なファイル数の上限をある所定の値に決めた時、編集等によりClipファイル数が多くなり、その数が上限に達してしまい、ディスク中にまだ空き領域があるのに記録できなくなる問題が発生する。
(2) Clip AVストリームファイルの部分的なデータを消去した時に、ディスク中にあるVirtual PlayListの変更にかかる時間が大きい問題。
【０２３３】
本発明は、これらの問題を解決する。すなわち、ディスクの再生開始時に全てのClipファイルを読み出し、再生装置のメモリにストアする処理にかかる時間を小さくできる。また、ディスク中に記録可能なファイル数の上限をより小さく設定できる。また、Clip AVストリームファイルの部分的なデータを消去した時に、ディスク中にあるVirtual PlayListの変更にがかかる時間が小さくなる。
【０２３４】
図５３は、CPIがTU_mapであるClip AVストリームの一部分を消去した時のClipとPlayListの関係を説明する図である。編集前のClipは１個のATC-sequenceを持つ。このATC-sequenceについてのoffset_arrival_time[0]はゼロである。Virtual PlayListのPlayItem1, PlayItem2, PlayItem3およびPlayItem4は、このATC-sequenceを参照しているとする。今、図に示すようにATC-sequenceのAVストリームデータについて、どのPlayItemにも使われていないAVストリームデータを消去したとする。
【０２３５】
編集後のClipは2個のATC-sequenceを持つ。1番目のATC-sequenceについてのoffset_arrival_time[0]はゼロにセットされ、２番目のATC-sequenceについてのoffset_arrival_time[1]は値Xにセットされる。値Xは、OUT_time2よりも大きく、IN_time3よりも小さい。すなわち、編集後にVirtual PlayListのPlayItem3とPlayItem4のIN_timeとOUT_timeの値を変更する必要がない。
【０２３６】
Clip AVストリームファイルの部分的なデータを消去する時に、その消去部分を使用していないVirtual PlayListについては何も変更しなくても良い。
【０２３７】
TU_map typeのPlayListを再生する場合、再生機はPlayItemのIN_timeとATC-sequenceのoffset_arrival_timeの値を比較することにより、そのIN_timeとOUT_timeが指すところのATC-sequenceを見つけることができる。例えば、図５３の場合、PlayItem3のIN_time3は２番目のATC-sequenceのoffset_arrival_time(=X)よりも大きいので、PlayItem3のIN_time3とOUT_time3は、２番目のATC-sequenceを指すことがわかる。
【０２３８】
次に、DVRアプリケーション構造のデータを記録再生するシステムについて、図４４の動画像記録再生装置１のブロック図を用いて説明する。
【０２３９】
例えば、光ディスクにより構成される記録媒体１０は、再生部６１の読み出し部１１により、そこに記録されている情報が読み出される。復調部１２は、読み出し部１１が記録媒体１０から読み出したデータを復調し、ECC復号部１３に供給する。ECC復号部１３は、復調部１２より供給されたデータを、AVストリームとデータベースとに分離し、AVストリームをソースデパケッタイザ１４に供給し、データベースを制御部１７に出力する。
【０２４０】
ソースデパケッタイザ１４は、入力されたAVストリームをデパッケタイズし、デマルチプレクサ１５に出力する。デマルチプレクサ１５は、ソースデパケッタイザ１４より供給されたデータをビデオ（Ｖ）、オーディオ（Ａ）、およびシステム（Ｓ）の各データに分離し、AVデコーダ１６とマルチプレクサ２５に出力する。
【０２４１】
AVデコーダ１６は、入力されたビデオデータとオーディオデータを、システムデータに基づいてデコードし、ビデオ信号を端子１８から、オーディオ信号を端子１９から、それぞれ出力する。
【０２４２】
記録部６２のAVエンコーダ２３には、端子２１から入力されたビデオ信号と、端子２２から入力されたオーディオ信号が供給される。ビデオ信号はまた、ビデオ解析部２４にも供給される。AVエンコーダ２３とビデオ解析部２４には、端子２１から入力されたビデオ信号の代わりに、必要に応じて、AVデコーダ１６が出力したビデオ信号が供給される。
【０２４３】
AVエンコーダ２３は、入力されたビデオ信号とオーディオ信号をエンコードし、エンコードしたビデオ信号（Ｖ）、オーディオ信号（Ａ）、およびエンコードに対応するシステムデータ（Ｓ）を、マルチプレクサ２５に出力する。
【０２４４】
ビデオ解析部２４は、入力されたビデオ信号を解析し、解析結果を制御部１７に出力する。
【０２４５】
端子３３には、デジタルインタフェースまたはデジタルテレビチューナからのトランスポートストリームが入力され、スイッチ２７を介して、デマルチプレクサ１５、またはさらにスイッチ２８を介して、多重化ストリーム解析部２６、およびソースパケッタイザ２９に供給される。多重化ストリーム解析部２６とソースパケッタイザ２９にはまた、スイッチ２８を介してマルチプレクサ２５が出力した信号も、スイッチ２７からの信号に代えて供給可能とされている。
【０２４６】
多重化ストリーム解析部２６は、入力された信号を解析し、解析結果を制御部１７に出力する。ソースパケッタイザ２９は、入力された信号をパケッタイズし、ECC符号化部３０に供給する。ECC符号化部３０には、制御部１７が出力するデータベースも供給されている。
【０２４７】
ECC符号化部３０は、入力に誤り訂正符号を付加し、符号化し、変調部３１に出力する。変調部３１は、ECC符号化部３０から入力されたデータを変調し、書き込み部３２に出力する。書き込み部３２は、変調部３１から入力されたデータを記録媒体１０に書き込む処理を実行する。
【０２４８】
制御部１７は、各種のデータを記憶する記憶部１７Ａを有しており、上述したフォーマットを管理し、データの記録媒体１０に対する記録または再生のために、各部を制御する。
【０２４９】
制御部１７にはまた、ドライブ４１が接続されており、磁気ディスク５１、光ディスク５２、光磁気ディスク５３、または半導体メモリ５４などがドライブされる。
【０２５０】
なお、光ディスク５２は、記録媒体１０と兼用することも可能である。
【０２５１】
次に記録時の基本的動作について、動画像記録再生装置１自身が、入力オーディオビデオ信号を符号化して記録する場合を例として説明する。
【０２５２】
記録部６２の端子２１と端子２２からは、それぞれビデオ信号とオーディオ信号が入力される。ビデオ信号は、ビデオ解析部２４とAVエンコーダ２３へ入力される。また、オーディオ信号もまたAVエンコーダ２３へ入力される。AVエンコーダ２３は、入力ビデオ信号とオーディオ信号を符号化し、符号化ビデオストリーム(V)，符号化オーディオストリーム(A)、およびシステム情報(S)をマルチプレクサ２５に出力する。
【０２５３】
符号化ビデオストリーム(V)は、例えばMPEG2ビデオストリームであり、符号化オーディオストリーム(A)は、例えばMPEG1オーディオストリームやドルビーAC3（商標）オーディオストリーム等である。システム情報(S)は、ビデオオーディオの符号化情報（符号化ピクチャやオーディオフレームのバイトサイズ，ピクチャ符号化タイプ等）やAV同期等の時間情報である。
【０２５４】
マルチプレクサ２５は、入力ストリームを入力システム情報に基づいて多重化して、多重化ストリームを出力する。多重化ストリームは、例えば、MPEG2トランスポートストリームやMPEG2プログラムストリームである。多重化ストリームは、多重化ストリーム解析部２６およびソースパケッタイザ２９に入力される。
ソースパケッタイザ２９は、入力多重化ストリームを、記録媒体１０のアプリケーションフォーマットに従って、ソースパケットから構成されるAVストリームに符号化する。AVストリームは、ECC（誤り訂正）符号化部３０で誤り訂正符号が付加され、変調部３１で変調処理されて、書き込み部３２へ入力される。書き込み部３２は、制御部１７から指示される制御信号に基づいて、記録媒体１０へAVストリームファイルを記録する。
【０２５５】
次に、例えば、図示せぬディジタルインタフェースまたはディジタルTVチューナから入力されるディジタルTV放送等のトランスポートストリームを記録する場合を説明する。
【０２５６】
端子３３からはトランスポートストリームが入力される。入力トランスポートストリームの記録方法は、２通りあり、それらは、トランスペアレントに記録する方法と記録ビットレートを下げるなどの目的のために再エンコードをして記録する方法である。記録方法の指示情報は、ユーザインターフェースとしての端子２０から制御部１７へ入力され、制御部１７が記録方法を制御する。
【０２５７】
入力トランスポートストリームをトランスペアレントに記録する場合、トランスポートストリームは、多重化ストリーム解析部２６およびソースパケッタイザ２９に入力される。これ以後、記録媒体１０へAVストリームが記録されるまでの処理は、上述の入力オーディオ信号とビデオ信号を符号化して記録する場合と同じである。
【０２５８】
入力トランスポートストリームを再エンコードして記録する場合、入力トランスポートストリームは、デマルチプレクサ１５へ入力される。デマルチプレクサ１５は、ビデオストリーム(V)をAVデコーダ１６へ入力する。AVデコーダ１６は、ビデオストリームを復号し、再生ビデオ信号をAVエンコーダ２３へ入力する。AVエンコーダ２３は、入力ビデオを符号化し、符号化ビデオストリーム(V)をマルチプレクサ２５へ入力する。
【０２５９】
一方、デマルチプレクサ１５から出力されるオーディオストリーム(A)とシステム情報(S)は、ダイレクトにマルチプレクサ２５へ入力される。マルチプレクサ２５は、入力ストリームを、入力システム情報に基づいて多重化して、多重化ストリームを出力する。これ以後、記録媒体１０へAVストリームが記録されるまでの処理は、上述の入力オーディオビデオ信号を符号化して記録する場合と同じである。
【０２６０】
この動画像記録再生装置１は、AVストリームファイルを記録すると共に、そのファイルに関係するアプリケーションデータベース情報もまた記録する。アプリケーションデータベース情報は、制御部１７により作成される。制御部１７への入力情報は、ビデオ解析部２４からの動画像の特徴情報、多重化ストリーム解析部２６からのAVストリームの特徴情報、およびユーザインタフェースとしての端子２０から入力されるユーザの指示情報である。
【０２６１】
ビデオ解析部２４からの動画像の特徴情報は、動画像記録再生装置１自身がビデオ信号を符号化する場合において、動画像記録再生装置１により生成されるものである。ビデオ解析部２４は、入力ビデオ信号の内容を解析し、入力動画像信号の中の特徴的なマーク点の画像に関係する情報を生成する。この情報は、例えば、入力ビデオ信号の中のプログラムの開始点、シーンチェンジ点、CMのスタート・エンド点などの特徴的なマーク点の画像の指示情報であり、また、これには、その画像のサムネールも含まれる。これらの画像の指示情報は、制御部１７を介して、マルチプレクサ２５へ入力される。
【０２６２】
マルチプレクサ２５は、制御部１７から指示されるマーク点の画像の符号化ピクチャを多重化した時に、その符号化ピクチャのAVストリーム上でのアドレス情報を制御部１７に返す。制御部１７は、特徴的な画像の種類と、その符号化ピクチャのAVストリーム上でのアドレス情報を関連付けて記憶する。
【０２６３】
多重化ストリーム解析部２６からのAVストリームの特徴情報は、記録されるAVストリームの符号化情報に関係する情報であり、これらは動画像記録再生装置１により生成される。例えば、AVストリームの中におけるIピクチャのタイムスタンプとアドレス情報，STCの不連続情報，プログラム内容の変化情報，アライバルタイムとアドレス情報、などが含まれる。
【０２６４】
AVストリーム内のIピクチャのタイムスタンプとアドレス情報は、上述のEP_mapにストアされるデータとなる。AVストリーム内のSTCの不連続情報は、上述のSequenceInfoにストアされるデータとなる。AVストリーム内のプログラム内容の変化情報は、ProgramInfoにストアされるデータとなる。また、AVストリーム内のアライバルタイムとアドレス情報は、上述のTU_mapにストアされる。
【０２６５】
また、多重化ストリーム解析部２６は、端子３３から入力されるトランスポートストリームをトランスペアレントに記録する場合、AVストリームの中の特徴的なマーク点の画像を検出し、その種類とアドレス情報を生成する。この情報は、ClipMarkにストアされるデータとなる。
【０２６６】
多重化ストリーム解析部２６からのAVストリームの特徴情報は、AVストリームのデータベース(Clip Information)にストアされるものである。
【０２６７】
端子２０からのユーザの指示情報には、AVストリームの中のお好みの再生区間の指定情報，その再生区間の内容を説明するキャラクター文字，ユーザがお好みのシーンにセットするブックマークやリジューム点のAVストリームの中のタイムスタンプなどが含まれる。これらのユーザの指示情報は、PlayListのデータベースにストアされるものである。
【０２６８】
制御部１７は、前記入力情報に基づいて、AVストリームのデータベース（Clip Information）, PlayListのデータベース, 記録媒体１０の記録内容の管理情報(info.dvr)、およびサムネール情報を作成する。これらのデータベース情報は、AVストリームと同様にして、ECC（誤り訂正）符号化部３０，変調部３１で処理されて、書き込み部３２へ入力される。書き込み部３２は、制御部１７から指示される制御信号に基づいて、このデータベース情報を、記録媒体１０へ、アプリケーションデータベース情報として記録する。
【０２６９】
次に、再生時の基本的な動作について説明する。
【０２７０】
記録媒体１０には、AVストリームファイルとアプリケーションデータベース情報が記録されている。
【０２７１】
はじめに制御部１７は、再生部６１の読み出し部１１に対して、アプリケーションデータベース情報を読み出すように指示する。そして、読み出し部１１は、記録媒体１０からアプリケーションデータベース情報を読み出し、そのデータベース情報は、復調部１２，ECC（誤り訂正）復号部１３の処理を経て、制御部１７へ入力される。
【０２７２】
制御部１７は、アプリケーションデータベースに基づいて、記録媒体１０に記録されているPlayListの一覧を、端子２０のユーザインターフェースへ出力する。ユーザは、PlayListの一覧から再生したいPlayListを選択し、再生を指定されたPlayListが制御部１７へ入力される。制御部１７は、そのPlayListの再生に必要なAVストリームファイルの読み出しを読み出し部１１に指示する。そして、読み出し部１１は、記録媒体１０からそのAVストリームを読み出し、AVストリームは復調部１２，ECC復号部１３の処理を経て、ソース・デパケッタイザ１４へ入力される。
【０２７３】
ソース・デパケッタイザ１４は、記録媒体のアプリケーションフォーマットのAVストリームを、デマルチプレクサ１５へ入力できるストリームに変換する。デマルチプレクサ１５は、制御部１７により指定されたAVストリームの再生区間(PlayItem)を構成するビデオストリーム(V)，オーディオストリーム(A)、およびシステム情報(S)をAVデコーダ１６へ入力する。AVデコーダ１６は、ビデオストリームとオーディオストリームを復号し、再生ビデオ信号と再生オーディオ信号を、それぞれ端子１８と端子１９から出力する。
【０２７４】
ユーザによって選択されたEP_mapタイプのPlayListをある時間から途中再生する場合、制御部１７は、指定された時間にもっとも近いPTSを持つIピクチャのアドレスからデータを読み出すように読み出し部１１へ指示する。
【０２７５】
また、ユーザによって選択されたTU_mapタイプのPlayListをある時間から途中再生する場合、制御部１７は、指定された時間にもっとも近いアライバルタイムのソースパケットのアドレスからデータを読み出すように読み出し部１１へ指示する。
【０２７６】
さらに、Clip Informationの中のClipMarkにストアされている番組の頭出し点やシーンチェンジ点の中から、ユーザがあるマークを選択した時（例えば、この選択動作は、ClipMarkにストアされている番組の頭出し点やシーンチェンジ点のサムネール画像リストをユーザインタフェースに表示して、ユーザが、その中からある画像を選択することにより行われる）、制御部１７は、Clip Informationの内容に基づいて、記録媒体１０からのAVストリームの読み出し位置を決定し、そのAVストリームの読み出しを読み出し部１１へ指示する。
【０２７７】
すなわち、ユーザが選択した画像がストアされているAVストリーム上でのアドレスに最も近いアドレスにあるIピクチャからのデータを読み出すように読み出し部１１へ指示が出される。読み出し部１１は、指定されたアドレスからデータを読み出し、読み出されたデータは、復調部１２，ECC復号部１３の処理を経て、デマルチプレクサ１５へ入力され、AVデコーダ１６で復号されて、マーク点のピクチャのアドレスで示されるAVデータが再生される。
【０２７８】
次に、ユーザが、AVストリームの編集をする場合を説明する。
【０２７９】
ユーザが、記録媒体１０に記録されているAVストリームの再生区間を指定して新しい再生経路を作成したい場合、ユーザインタフェースの端子２０から、再生区間のイン点とアウト点の情報が制御部１７へ入力される。制御部１７は、AVストリームの再生区間(PlayItem)をグループ化したもの（PlayList）のデータベースを作成する。
【０２８０】
ユーザが、記録媒体１０に記録されているAVストリームの一部を消去したい場合、ユーザインタフェースの端子２０から、消去区間の情報が制御部１７へ入力される。制御部１７は、必要なAVストリーム部分だけを参照するようにPlayListのデータベースを変更する。また、AVストリームの不必要なストリーム部分を消去するように、書き込み部３２に指示する。また、Clip AVストリームの変化に基づいて、そのClip Information fileの内容を変更する。
【０２８１】
ユーザが、記録媒体１０に記録されているAVストリームの再生区間を指定して新しい再生経路を作成したい場合であり、かつそれぞれの再生区間をシームレスに接続したい場合の動作を説明する。この場合、制御部１７は、AVストリームの再生区間(PlayItem)をグループ化したもの（PlayList）のデータベースを作成し、さらに、再生区間の接続点付近のビデオストリームの部分的な再エンコードと再多重化が必要になる。
【０２８２】
まず、ユーザインタフェースとしての端子２０から、再生区間のイン点のピクチャとアウト点のピクチャの情報が制御部１７へ入力される。制御部１７は、読み出し部１１に、イン点のピクチャとアウト点のピクチャを再生するために必要なデータの読み出しを指示する。そして、読み出し部１１は、記録媒体１０からそのデータを読み出し、そのデータは、復調部１２，ECC復号部１３, ソース・デパケッタイザ１４を経て、デマルチプレクサ１５へ入力される。
【０２８３】
制御部１７は、デマルチプレクサ１５へ入力されたストリームを解析して、ビデオストリームの再エンコード方法（picture_coding_typeの変更，再エンコードする符号化ビット量の割り当て）と再多重化方法を決定して、その方法をAVエンコーダ２３とマルチプレクサ２５へ供給する。
【０２８４】
次に、デマルチプレクサ１５は、入力されたストリームをビデオストリーム(V)，オーディオストリーム(A)、およびシステム情報(S)に分離する。ビデオストリームは、「AVデコーダ１６へ入力されるデータ」と、「マルチプレクサ２５へ直接入力されるデータ」がある。前者のデータは、再エンコードするために必要なデータであり、これはAVデコーダ１６で復号され、復号されたピクチャは、AVエンコーダ２３で再エンコードされて、ビデオストリームになる。後者のデータは、再エンコードをしないで、オリジナルのストリームからコピーされるデータである。オーディオストリームとシステム情報は、マルチプレクサ２５に直接入力される。
【０２８５】
マルチプレクサ２５は、制御部１７から入力された情報に基づいて、入力ストリームを多重化し、多重化ストリームを出力する。多重化ストリームは、ECC（誤り訂正）符号化部３０，変調部３１で処理されて、書き込み部３２へ入力される。書き込み部３２は、制御部１７から指示される制御信号に基づいて、記録媒体１０へAVストリームを記録する。
【０２８６】
次に、図５４は、AVストリームをClipをして新しく記録するときの、Clip AVストリームファイルと、それに関連するClip Informationファイルの、動画像記録再生装置１の記録動作のフローチャートを示す。
【０２８７】
ステップＳ１１で、制御部１７は、端子２１および２２から入力されるAV入力をエンコードして得たトランスポートストリーム、または端子３３のディジタルインタフェースから入力されるトランスポートストリームをファイル化して、Clip AVストリームファイルを作成して記録する。
【０２８８】
ステップＳ１２で、制御部１７は上記AVストリームファイルについてのClipInfo（図８）を作成する。
【０２８９】
ステップＳ１３で、制御部１７は上記AVストリームファイルについてのSequenceInfo（図１３）を作成する。
【０２９０】
ステップＳ１４で、制御部１７は上記AVストリームファイルについてのProgramInfo（図１５）を作成する。
【０２９１】
ステップＳ１５で、制御部１７は上記AVストリームファイルについてのCPI (EP-mapまたはTU-map)（図２４、図２５および図２６）を作成する。
【０２９２】
ステップＳ１６で、制御部１７は上記AVストリームファイルについてのClipMarkを作成する。
【０２９３】
ステップＳ１７で、制御部１７は上記ClipInfo, SequenceInfo, ProgramInfo, CPI, およびClipMarkがストアされたClip Informationファイル（図８）を記録する。
【０２９４】
なお、ここでは各処理を時系列に説明したが、ステップＳ１１からステップＳ１１６は、実際には同時に動作するものである。
【０２９５】
次に、AVストリームをClipをして新しく記録するときの、SequenceInfo（図１３）の作成の動作例を、図５５のフローチャートを用いて説明する。この処理は、図４４の多重化ストリーム解析部２６で行われる。
【０２９６】
ステップＳ３１において、制御部１７は最初のトランスポートパケットをATCシーケンスの開始点とする。すなわち、SPN_ATC_startが設定される。また、このとき、atc_idとstc_idも設定される。
【０２９７】
ステップＳ３２において、多重化ストリーム解析部２６はAVストリームに含まれるアクセスユニット（例えば、ピクチャやオーディオフレーム）のPTSを解析する。
【０２９８】
ステップＳ３３において、多重化ストリーム解析部２６はPCRパケットが受信されたかどうかを調べる。ステップＳ３３において、Noの場合はステップＳ３２へ戻り、Yesの場合はステップＳ３４へ進む。
【０２９９】
ステップＳ３４において、多重化ストリーム解析部２６はSTCの不連続が検出されたか否かを調べる。NOの場合は、ステップＳ３２へ戻る。YESの場合は、ステップＳ３５へ進む。なお、記録開始後、最初に受信されたPCRパケットの場合は、必ずステップＳ３５へ進む。
【０３００】
ステップＳ３５において、多重化ストリーム解析部２６は、新しいSTCの最初のPCRを伝送するトランスポートパケットの番号(アドレス)を取得する。
【０３０１】
ステップＳ３６において、制御部１７は上記パケット番号をSTCシーケンスの開始するソースパケット番号として取得する。すなわち、SPN_STC_startが設定される。また、ことのき、新たなstc_idが設定される。
【０３０２】
ステップＳ３７において、制御部１７はSTCシーケンスの表示開始のPTSと表示終了のPTSを取得し、それぞれ、presentation_start_time、またはpresentation_end_timeに設定し、それらに基づいて、SequenceInfo（図１３）を作成する。
【０３０３】
ステップＳ３８において、制御部１７は最後のトランスポートパケットが入力終了したかどうかを調べる。Noの場合は、ステップＳ３２へ戻り、Yesの場合は処理を終了する。
【０３０４】
ProgramInfo（図１５）の作成の動作例を図５６のフローチャートを用いて説明する。この処理は図４４の多重化ストリーム解析部２６で行われる。
【０３０５】
ステップＳ５１において、多重化ストリーム解析部２６はPSI/SIを含むトランスポートパケットが受信されたかどうかを調べる。ここで、PSI/SIのトランスポートパケットは、具体的には、PAT, PMT, SITのパケットである。SITは、DVB規格で規定されているパーシャルトランスポートストリームのサービス情報が記述されているトランスポートパケットである。ステップＳ５１において、Noの場合はステップＳ５１へ戻り、Yesの場合はステップＳ５２へ進む。
【０３０６】
ステップＳ５２において、多重化ストリーム解析部２６は、PSI/SIの内容が変わったかを調べる。すなわち、PAT,PMT,SITのそれぞれの内容が、以前に受信したそれぞれの内容と比べて変化したかどうかが調べられる。内容が変化していない場合は、ステップＳ５１へ戻る。内容が変化した場合は、ステップＳ５３へ進む。なお、記録開始後、最初に受信されたPSI/SIの場合は、必ずステップＳ５３へ進む。
【０３０７】
ステップＳ５３において、制御部１７は新しいPSI/SIを伝送するトランスポートパケットの番号(アドレス)とその内容を取得する。
【０３０８】
ステップＳ５４において、制御部１７はProgram-sequenceの情報を作成し、ProgramInfo（図１５）を作成する。
【０３０９】
ステップＳ５５において、制御部１７は最後のトランスポートパケットが入力終了したかどうかを調べる。Noの場合は、ステップＳ５１へ戻り、Yesの場合は処理を終了する。
【０３１０】
次にEP_map（図２４）の作成の動作例を、図５７のフローチャートを用いて説明する。この処理は図４４の多重化ストリーム解析部２６で行われる。
【０３１１】
ステップＳ７１で多重化ストリーム解析部２６は、記録するAVプログラムのビデオのPIDをセットする。トランスポートストリームの中に複数のビデオが含まれている場合は、それぞれのビデオPIDがセットされる。
【０３１２】
ステップＳ７２で多重化ストリーム解析部２６は、ビデオのトランスポートパケットを受信する。
【０３１３】
ステップＳ７３で多重化ストリーム解析部２６は、トランスポートパケットのペイロード（パケットヘッダーに続くデータ部）がPESパケットの第１バイト目から開始しているかを調べる（PESパケットは、MPEG2で規定されているパケットであり、エレメンタリーストリームをパケット化するものである）。これは、トランスポートパケットヘッダにある”payload_unit_start_indicator”の値を調べることによりわかり、この値が1である場合、トランスポートパケットのペイロードがPESパケットの第１バイト目から開始する。ステップＳ７３でNoの場合は、ステップＳ７２へ戻り、Yesの場合は、ステップＳ７４へ進む。
【０３１４】
ステップＳ７４で多重化ストリーム解析部２６は、PESパケットのペイロードが、MPEGビデオのsequence_header_code(32ビット長で”0x000001B3”の符号)の第１バイト目から開始しているかを調べる。ステップＳ７４でNoの場合は、ステップＳ７２へ戻り、Yesの場合は、ステップＳ７５へ進む。
【０３１５】
ステップＳ７５へ進んだ場合、制御部１７は現在のトランスポートパケットをエントリーポイントとする。
【０３１６】
ステップＳ７６で制御部１７は、上記パケットのパケット番号と上記sequence_header_code から開始するIピクチャのPTSとそのエントリーポイントが属するビデオのPIDを取得し、EP_mapを作成する。
【０３１７】
ステップＳ７７で、多重化ストリーム解析部２６は、現在のパケットが最後に入力されるトランスポートパケットであるかどうかを判定する。最後のパケットでない場合、ステップＳ７２へ戻る。最後のパケットである場合、処理を終了する。
【０３１８】
図５８は、Real PlayListの作成方法を説明するフローチャートを示す。図４４の動画像記録再生装置１のブロック図を参照しながら説明する。
【０３１９】
ステップＳ９１で、制御部１７はClip AVストリームを記録する。
【０３２０】
ステップＳ９２で、制御部１７は上記Clipの全ての再生可能範囲をカバーするPlayItem（図３６）からなるPlayList()（図３１）を作成する。Clipの中にSTC不連続点があり、PlayList()が２つ以上のPlayItemからなる場合は、制御部１７はPlayItem間のconnection_conditionもまた決定する。
【０３２１】
ステップＳ９３で、制御部１７はUIAppInfoPlayList()を作成する。UIAppInfoPlayList()はPlayListの内容をユーザーへ説明するための情報を含む。本実施の形態ではその説明を省略する。
【０３２２】
ステップＳ９４で、制御部１７はPlayListMarkを作成する（本実施の形態ではその説明を省略）。
【０３２３】
ステップＳ９５で、制御部１７はMakersPrivateDataを作成する（本実施の形態ではその説明を省略）。
【０３２４】
ステップＳ９６で、制御部１７はReal PlayListファイルを記録する。
【０３２５】
このようにして、新規にClip AVストリームを記録する毎に、１つのReal PlayListファイルが作られる。
【０３２６】
図５９は、Virtual PlayListの作成方法を説明するフローチャートである。
【０３２７】
ステップＳ１１１で、ユーザーインターフェースを通して、ディスク（記録媒体１０）に記録されている１つのReal PlayListの再生が指定される。そして、そのReal PlayListの再生範囲の中から、ユーザーインターフェースを通して、IN点とOUT点で示される再生区間が指定される。
【０３２８】
ステップＳ１１２で、制御部１７はユーザーによる再生範囲の指定操作がすべて終了したか調べる。ユーザーが上記指示した再生区間に続けて再生する区間を選ぶ場合はステップＳ１１１へ戻る。
【０３２９】
ステップＳ１１２でユーザーによる再生範囲の指定操作がすべて終了したと判定された場合は、ステップＳ１１３へ進む。
【０３３０】
ステップＳ１１３で、連続して再生される２つの再生区間の間の接続状態(connection_condition)を、ユーザーがユーザーインタフェースを通して決定するか、または制御部１７が決定する。
【０３３１】
ステップＳ１１４で、ユーザーインタフェースを通して、ユーザーがサブパス(アフレコ用オーディオ)情報を指定する。ユーザーがサブパスを作成しない場合はこのステップの処理はスルーされる。サブパス情報は、PlayListの中のSubPlayItemにストアされる情報であるが、本発明の趣旨に必要ないので説明を省略する。
【０３３２】
ステップＳ１１５で、制御部１７はユーザーが指定した再生範囲情報、およびconnection_conditionに基づいて、PlayList()（図２８）を作成する。
【０３３３】
ステップＳ１１６で、制御部１７はUIAppInfoPlayList()を作成する。UIAppInfoPlayList()はPlayListの内容をユーザーへ説明するための情報を含む。本実施の形態ではその説明を省略する。
【０３３４】
ステップＳ１１７で、制御部１７はPlayListMarkを作成する（本実施の形態ではその説明を省略）。
【０３３５】
ステップＳ１１８で、制御部１７はMakersPrivateDataを作成する（本実施の形態ではその説明を省略）。
【０３３６】
ステップＳ１１９で、制御部１７はVirtual PlayListファイルを記録媒体１０に記録する。
【０３３７】
このようにして、記録媒体１０に記録されているReal PlayListの再生範囲の中から、ユーザーが見たい再生区間を選択してその再生区間をグループ化したもの毎に、１つのVirtual PlayListファイルが作られる。
【０３３８】
図６０はPlayListの再生方法を説明するフローチャートである。
【０３３９】
ステップＳ１３１で、制御部１７はInfo.dvr, Clip Information file, PlayList fileおよびサムネールファイルの情報を取得し、ディスク（記録媒体１０）に記録されているPlayListの一覧を示すGUI画面を作成し、ユーザーインタフェースを通して、GUIに表示する。
【０３４０】
ステップＳ１３２で、制御部１７はそれぞれのPlayListのUIAppInfoPlayList()に基づいて、PlayListを説明する情報をGUI画面に提示する。
【０３４１】
ステップＳ１３３で、ユーザーインタフェースを通して、GUI画面上からユーザーが１つのPlayListの再生を指示する。
【０３４２】
ステップＳ１３４で、制御部１７は現在のPlayItemのSTC-idとIN_timeのPTSから、IN_timeより時間的に前で最も近いエントリーポイントのあるソースパケット番号を取得する。
【０３４３】
ステップＳ１３５で、制御部１７は上記エントリーポイントのあるソースパケット番号からAVストリームのデータを読み出し、デコーダへ供給する。
【０３４４】
ステップＳ１３６で、現在のPlayItemの時間的に前のPlayItemがあった場合は、制御部１７は、前のPlayItemと現在のPlayItemとの表示の接続処理をconnection_conditionに従って行う。
【０３４５】
ステップＳ１３７で、制御部１７は、AVデコーダ１６にIN_timeのPTSのピクチャから表示を開始するように指示する。
【０３４６】
ステップＳ１３８で、制御部１７は、AVデコーダ１６にAVストリームのデコードを続けるように指示する。
【０３４７】
ステップＳ１３９で、制御部１７は、現在表示の画像が、OUT_timeのPTSの画像か否かを調べる。Noの場合は、ステップＳ１４０へ進む。ステップＳ１４０で現在の画像を表示して、ステップＳ１３８へ戻る。
ステップS１３９で現在表示の画像がOUT_timeのPTSの画像の場合はステップS１４１へ進む。
【０３４８】
ステップＳ１４１で、制御部１７は、現在のPlayItemがPlayListの中で最後のPlayItemかを調べる。Noの場合はステップＳ１３４へ戻る。Yesの場合は、PlayListの再生を終了する。
【０３４９】
このようなシンタクス、データ構造、規則に基づく事により、記録媒体１０に記録されているデータの内容、再生情報などを適切に管理することができ、もって、ユーザが再生時に適切に記録媒体に記録されているデータの内容を確認したり、所望のデータを簡便に再生できるようにすることができる。
【０３５０】
次に、本発明のＡＶストリームファイルとデータベースファイルが記録されている記録媒体から、ディジタルバス経由で、別の記録媒体へＡＶストリームファイルとデータベースファイルをファイルコピーする方法を説明する。
【０３５１】
まず、本方法の目的を説明するために、AVストリームとそのデータベースを共にデータ転送する場合と、AVストリームだけをデータ転送する場合の違いを説明する。
【０３５２】
図６１、図６２は、AVストリームとそのデータベースを共にデータ転送する場合を示す。一方、図６３、図６４は、AVストリームだけをデータ転送する場合を示す。
【０３５３】
コピー元の記録媒体（例えば、後述する図７１の記録媒体１０）には、ClipとPlayListが記録されている。説明を簡単化するために、いま、１個のClip（Clip Information fileとClip AV stream file）を使用しているPlayListファイルがコピー元の記録媒体に記録されているとする。
【０３５４】
図６１は、当該PlayListとClipのファイルを、コピー元（図７１の再生装置２）からコピー先（図７１の記録装置３）へ、IEEE1394のディジタルバス（図７１のディジタルバス６０）を経由して、Asynchronous（アシンクロナス）転送によって、ファイル転送する場合を示す。この場合、コピーされたClip AV stream fileの各ソースパケットのTP_extra_headerのATS（アライバルタイムスタンプ）は、コピー元と同じであり、また、コピーされたClip AV stream fileに対応するClip Information fileとPlayListファイルもコピー先へコピーされる。
【０３５５】
また、図６２は、PlayList fileとClip Information fileのファイルを、コピー元（図７１の再生装置２）からコピー先（図７１の記録装置３）へ、IEEE1394のディジタルバス（図７１のディジタルバス６０）を経由して、Asynchronous（アシンクロナス）転送によって、ファイル転送し、ＡＶストリームを、コピー元からコピー先へ、Isochronous（アイソクロナス）転送によって、リアルタイム転送（ストリーム転送）する場合を示す。
【０３５６】
この場合、コピー元（図７１の再生装置２）は、Clip Information fileに対応するClip AV stream fileをディジタルバス（図７１のディジタルバス６０）へ出力する時に、各ソースパケットのアライバルタイムスタンプに従って、トランスポートパケットを出力する（図７の再生モデルを参照）。各ソースパケットのTP_extra_header(ATS)は、コピー先（図７１の記録装置３）で新たに付加される。また、コピーされたClip AV stream fileに対応するClip Information fileとPlayListファイルもコピー先へコピーされる。
【０３５７】
図６１または図６２の場合、コピー元のPlayListとClipの内容を全て、コピー先へ転送することができるので、有効である。すなわち、コピー元のPlayListにセットされていた再生指定情報，UIAppInfoPlayList，PlayListMark，サムネール情報の内容など、また、コピー元のClipにセットされていた CPI, SequenceInfo, ProgramInfo, ClipMark，サムネール情報の内容などを、コピー先へ転送することができるので、有効である。
【０３５８】
一方、図６３、図６４は、AVストリームだけをデータ転送する場合を示す。
【０３５９】
図６３は、ＡＶストリームだけを、コピー元（図７１の再生装置２）からコピー先（図７１の記録装置３）へ、IEEE1394のディジタルバス（図７１のディジタルバス６０）を経由して、Isochronous（アイソクロナス）転送によって、リアルタイム転送（ストリーム転送）する場合を示す。この場合、コピー元は、PlayListが指定する再生区間のＡＶストリームをディジタルバスへ出力する時に、各ソースパケットのアライバルタイムスタンプに従って、トランスポートパケットを出力する（図７の再生モデルを参照）。コピー先の側から見ると、ディジタル放送のトランスポートストリームを記録する場合と同じ状態であり、入力されたＡＶストリームが新たに、Clipとして記録される。すなわち、各ソースパケットのTP_extra_header(ATS)は、コピー先で新たに付加される。また、当該Clipの再生範囲をカバーするReal PlayListファイルが新たに作られる。
【０３６０】
また、図６４は、コピー先の記録装置（図７１の記録装置３）がＤＶＲフォーマットに準拠したものでない場合に、AVストリームだけをリアルタイムにデータを再生する速度でデータ転送する場合を説明する図である。
この場合も、図６３の場合と同様にして、ＡＶストリームを、コピー元からコピー先へ、IEEE1394のIsochronous（アイソクロナス）転送によって、リアルタイム転送（ストリーム転送）する。コピー先では、その記録装置（図７１の記録装置３）のフォーマットを用いて、入力されたAVストリームを記録する。例えば、コピー先の記録装置が、Ｄ−ＶＨＳ（商標）の場合は、そのフォーマットでAVストリームを記録する。このように、コピー元のＤＶＲフォーマットに準拠した再生装置（図７１の再生装置２の制御部１７）が、コピー先の記録装置（図７１の記録装置３の制御部１７−２）と相互認証を行い、前記記録装置がＤＶＲフォーマットに準拠していないことをわかると、前記再生装置（図７１の再生装置２の制御部１７）は、AVストリームをリアルタイム転送する。
【０３６１】
図６３または図６４の場合、コピー元のPlayListとClipの内容を全て、コピー先へ転送することができないので、問題がある。すなわち、コピー元のPlayListにセットされていた再生指定情報，UIAppInfoPlayList，PlayListMark，サムネール情報の内容など、また、コピー元のClipにセットされていた CPI, SequenceInfo, ProgramInfo, ClipMark，サムネール情報の内容などを、コピー先へ転送することができない。一方、図６１または図６２の場合は、コピー元のPlayListとClipの内容を全て、コピー先へ転送することができる。
【０３６２】
コピー先の記録装置が、本実施の形態で説明しているＤＶＲフォーマットに準拠している場合、図６１と図６２のどちらでも使用することができる。
【０３６３】
図６１の方法は、ＡＶストリームをファイル転送するので、リアルタイムにデータを再生する速度でデータ転送する場合よりも高速にデータを転送することができる。しかし、コピー先の記録装置で入力されるデータを、リアルタイムにデコードして再生することは難しい。
【０３６４】
一方、図６２の方法は、ＡＶストリームをリアルタイムにデータを再生する速度でデータ転送するので、コピー先の記録装置で入力されるデータをリアルタイムにデコードして再生することができる。しかし、ＡＶストリームのコピーにかかる時間は、リアルタイムにデータを再生する場合と同じ時間が必要である。図６１と図６２の方法は、上記のように目的別に切り替えて使用するものである。
【０３６５】
図６１と図６２の例は、PlayListが一つのClipの再生範囲の全体をカバーしている場合であるが、図４６で説明したように、PlayListが指定する再生範囲は、一つのClip AVストリームの全体をカバーするとは限らない。これは、Real PlayListおよびVirtual PlayListのどちらでも、そうである。PlayListをコピー先へ転送するときは、PlayListの再生に必要なＡＶストリーム部分とそれが参照するClipのデータだけを、コピー先へ転送するようにした方が良い。すなわち、図６５の例のように、コピー元（図７２の再生装置２）から、コピー先（図７１の記録装置３）へ、PlayListとそれに必要なClipの部分だけをコピーする。このようにすれば、コピー先の記録媒体（図７１の記録装置３の記録媒体１０−２）上に必要な空き記録容量を小さくできる。
【０３６６】
コピー元(出力側の再生装置)から、コピー先(入力側の記録装置)へ、PlayListをコピーする場合に、そのPlayListの再生に必要なClip AVストリームの部分を決める方法について説明する。
【０３６７】
図６６は、あるPlayListが、オリジナルのＡＶストリームファイルの部分的な再生範囲を指示している時に、そのPlayListの再生に必要なストリーム部分を示す。
【０３６８】
当該PlayListは、オリジナルAVストリーム上のIN_timeとOUT_timeを指しているとする。この場合、PlayListの再生に必要なストリーム部分は、図に示すようにソースパケット番号のＸ番目からＹ番目までである。以下の説明では、このＸ点とＹ点を決める方法の例を説明する。
【０３６９】
図６７は、AVストリームの内容を解析することをしないで、IN点の前のデータのコピー開始点（Ｘ点）を決める方法を説明する図である。PlayListはオリジナルAVストリーム上のIN点を指す。また、そのAVストリームのEP_mapを図示する。IN点が指すピクチャをデコードするためには、アドレスISA2から開始するＩピクチャが必要である。また、Ｘ点の後で、PAT,PMTおよびPCRパケットが必要である。SPN_EP_start=ISA1のPTSはpts1であり、SPN_EP_start=ISA2のPTSはpts2である。pts1とpts2のシステムタイムベースの時間差が100 msec以上ならば、アドレスISA1とISA2の間にはPAT, PMTおよびPCRパケットが存在する（少なくとも、SESF, DVB, ATSC, ISDBの場合はそうである）。したがって、Ｘ点はアドレスISA1の前に決められる。そして、X点はアラインドユニットの境界でなければならない。
【０３７０】
コピー元の再生装置は、AVストリームの内容を解析することをしないで、X点をEP_mapを使用して次のステップで決めることができる。
【０３７１】
（Ｓ１）システムタイムベース上でIN timeのPTSに最も近く、かつそれよりも過去の表示時刻のPTSの値を持つSPN_EP_startを見つける。
（Ｓ２）ステップＳ1で見つけたSPN_EP_startのPTSの値よりも少なくとも100 msec過去の表示時刻のPTSの値を持つSPN_EP_startを見つける。
（Ｓ３）Ｘ点は、ステップＳ２で見つけたSPN_EP_startよりも前に決められる。
そして、Ｘ点はアラインドユニットの境界でなければならない。
【０３７２】
この方法は、Ｘ点を決めるためにＡＶストリームのデータを読み出し、その内容を解析することを必要としないので、簡単である。しかし、Ｘ点より後のAVストリームは、そのPlayListの再生には不要なデータを残してしまう場合がある。もし、Ｘ点を決めるためにＡＶストリームのデータを読み出し、その内容を解析するならば、そのPlayListの再生には不要なデータをより効率良く除去できる。
【０３７３】
図６８は、AVストリームの内容を解析することをしないで、OUT点の後のデータのコピー終了点（Ｙ点）を決める方法を説明する図である。PlayListはオリジナルAVストリーム上のOUT点を指す。また、そのAVストリームのEP_mapを図示する。SPN_EP_start=ISA4から開始するビデオシーケンスは次に示すものであることを前提とする。
I2 B0 B1 P5．．．
【０３７４】
ここで、I,P,BはそれぞれIピクチャ，PピクチャそしてBピクチャを表す。数字は表示順序を表す。この処理において、記録装置がAVストリームの内容を解析しない場合、動画像記録再生装置１（図７１の記録装置３）は、OUT_timeのPTSが参照するところのピクチャの情報（ピクチャコーディングタイプ，テンポラル・レファレンスなど）がわからない。OUT_timeのPTSはピクチャB0またはB1を参照しているかもしれない（コピー元の再生装置（図７１の再生装置２）がAVストリームの内容を解析しない場合、このことはわからない）、この場合、ピクチャB0,B1をデコードするためにはI2が必要である。I2のPTSはOUT timeのPTSよりも大きい（OUT_time < pts4, ここでpts4はI2のPTSである）。I2のPTSはOUT_timeのPTSよりも大きいが、B0, B1のためにI2が必要である。
【０３７５】
したがって、Y点は図に示すアドレスISA5の後ろに決められる。ISA5は、EP_mapの中でISA4の直後にあるSPN_EP_startの値である。Y点はまたアラインドユニットの境界でなければならない。
【０３７６】
コピー元の再生装置（図７１の再生装置２）は、AVストリームの内容を解析することをしないで、Y点をEP_mapを使用して次のステップで決めることができる。
（Ｓ１）システムタイムベース上でOUT timeのPTSに最も近く、かつそれよりも未来の表示時刻のPTSの値を持つSPN_EP_startを見つける。
（Ｓ２）ステップＳ1で見つけたSPN_EP_startの直後にあるSPN_EP_start を見つける。
（Ｓ３）Y点は、ステップＳ２で見つけたSPN_EP_startよりも後ろに決められる。そして、Y点はアラインドユニットの境界でなければならない。
【０３７７】
この方法は、Y点を決めるためにＡＶストリームのデータを読み出し、その内容を解析することを必要としないので、簡単である。しかし、Ｙ点より前のAVストリームは、そのPlayListの再生には不要なデータを残してしまう場合がある。もし、Y点を決めるためにＡＶストリームのデータを読み出し、その内容を解析するならば、そのPlayListの再生には不要なデータをより効率良く除去できる。
【０３７８】
次に、前記のように、コピー元から、コピー先へ、PlayListをコピーする場合に、そのPlayListの再生に必要なClip AVストリームを作成した場合の、Clip InformationファイルとPlayListの関係について説明する。
【０３７９】
図６９は、コピー元から、コピー先へ、PlayListをコピーする場合の例であり、そのPlayListの再生に必要なClip AVストリームを作成したときの、ClipとPlayListの関係を説明する図である。ここで、ClipのCPIはEP_mapであるとする。オリジナルのClipは１個のATC-sequenceと3個のSTC-sequenceを持つとする。このATC-sequenceについてのoffset_STC_id[0]はゼロである。そして、Clipの中で、stc_id=0のSTC-sequenceは、PlayItem1に使われており、stc_id=1であるSTC-sequenceは、PlayItem2とPlayItem3に使われており、stc_id=2であるSTC-sequenceは、PlayItem4に使われているいるとする。
【０３８０】
今、このPlayListを別の記録媒体にコピーしたとする。すなわち、これにより、図６９に示したように、このPlayListの再生に必要なClipの部分から成るClipが作られる。このように、コピー元において、1個のClip AVストリームから取り出された一つ以上のストリーム部分は、コピー先でも1個のClip AVストリームにコンバインされる。そして、新たに作られたClipは4個のATC-sequenceを持ち、それぞれのATC-sequenceは1個のSTC-sequenceを持つ。
【０３８１】
stc_id=0であったSTC-sequenceが含まれるATC-sequenceのoffset_STC_id[0]はゼロにセットされる。また、stc_id=1であったSTC-sequenceは2個のSTC-sequenceに分かれる。１番目のATC-sequenceについてのoffset_STC_id[0]はゼロにセットされ、２番目のATC-sequenceについてのoffset_STC_id[1]は１にセットされる。すなわち、１番目のATC-sequenceの中で最後のSTC-sequenceのstc_id と ２番目のATC-sequenceの中で最初のSTC-sequenceのstc_id は、同じ値で１になる。また、stc_id=2であったSTC-sequenceが含まれるATC-sequenceのoffset_STC_id[0]は２にセットされる。
【０３８２】
これにより、コピーするPlayListのPlayItem1, PlayItem2, PlayItem3とPlayItem4のref_to_STC_idの値を変更する必要がない。あるPlayListを別の記録媒体にコピーする場合、このPlayListの再生に必要なClipの部分から成るClipを作成したときに、PlayListの内容については何も変更しなくても良い。
【０３８３】
このように、Clip AVストリームの中にATCの不連続点を作ることができるので、PlayListの再生に必要なClipのストリームデータを部分的に取り出す場合に、Clipファイルを分割する必要がない。さらに、ATCシーケンス毎に、その上にある最初のSTCシーケンスのSTC-idに対するoffset_STC_idを用いることにより、PlayListの再生に必要なClipの部分から成るClipを作成したときに、PlayListの内容については何も変更しなくても良い。
【０３８４】
次に、前記のように、Clipを部分的にコピーする場合のClipの変更方法について説明する。図７０は、Clipを部分的にコピーする場合の例であり、その時のSequenceInfo, ProgramInfo, CPI(EP_map)およびClipMarkの変更方法を説明する図である。
【０３８５】
図７０（Ａ）に示すClipが、コピー元に記録されているとする。このClipは、1個のATC-sequenceを持ち、その上にそれぞれ2個のSTC-sequenceとprogram-sequenceがある。1番目のSTC-sequenceとprogram-sequenceの開始アドレスは同じであり、それはClip AVストリーム上で0のソースパケット番号である。２番目のSTC-sequenceとprogram-sequenceの開始アドレスは同じであり、それはClip AVストリーム上でＢなるソースパケット番号である。
【０３８６】
今、図７０（Ａ）のソースパケット番号Ａ（Ａ＜Ｂ）から始まる付影部分のストリームデータをコピーするとする。この付影部分は、AVストリームのIN_timeからOUT_timeの再生区間に必要なストリーム部分である。コピー先に転送されるClipを図７０（Ｂ）に示す。コピー先に転送されるClipは、1個のATC-sequenceを持ち、その上にそれぞれ2個のSTC-sequenceとprogram-sequenceがある。1番目のSTC-sequenceとprogram-sequenceの開始アドレスは同じであり、それはClip AVストリーム上で0（Ａ−Ａ）のソースパケット番号である。２番目のSTC-sequenceとprogram-sequenceの開始アドレスは同じであり、それはClip AVストリーム上で（Ｂ−A）なるソースパケット番号である。
【０３８７】
図７０（Ｃ）は、図７０（Ａ）に示すClipのClip Information fileの内容を示す。上記の説明のように、SPN_ATC_start[0] = 0
SPN_STC_start[0] = 0,  SPN_STC_start[1] = B
SPN_program_sequence_start[0] = 0, SPN_program_sequence_start[1] = B
である。
また、このClip Information file が、図示するようなEP_mapとClipMarkを持つとする。この中で、図７０（Ａ）の付影部分のClipが使用するEP_mapとClipMarkのデータ部分は次の範囲である。
EP_mapにおいては、
IN_time<pts(xa),
pts(xz)<OUT_time
のPTSの値を持つエントリーポイントのデータが、図７０（Ａ）の付影部分のClipに必要である。
ClipMarkにおいては、
IN_time<pts(F),
pts(Q)<OUT_time
のPTSの値を持つマークのデータが、図７０（Ａ）の付影部分のClipに必要である。
【０３８８】
図７０（Ｄ）は、図７０（Ｂ）に示すClipのClip Information fileの内容を示す。上記の説明のように、
SPN_ATC_start[0] = 0
SPN_STC_start[0] = 0,  SPN_STC_start[1] = B-A
SPN_program_sequence_start[0] = 0, SPN_program_sequence_start[1] = B-A
である。
また、EP_mapのデータは、図７０（Ｃ）において斜線部分のClipが使用するEP_mapのデータを元にして作成される。すなわち、エントリーポイントのPTSの値は同じであり、ソースポケット番号の値は、コピー元のClipのコピーの開始ソースパケット番号Ａが差し引かれる。また、ClipMarkのデータは、図７０（Ｃ）において付影部分のClipが使用するClipMarkのデータがそのままコピーされる。
【０３８９】
図７１は、コピー元（出力側）の再生装置２から、コピー先（入力側）の記録装置３へ、ＡＶストリームとそれに関係するデータベースを転送する場合、および、ＡＶストリームだけをデータ転送する場合の構成を示す。図中で、図４４と同じブロック番号がついているものは同じもであることを示す。また、記録装置３の記録媒体１０−２と制御部１７−２は、それぞれ記録媒体１０と制御部１７と同じ働きをするものである。
【０３９０】
はじめに、ＡＶストリームとそれに関係するデータベースを共に転送する場合を説明する。
【０３９１】
まず、再生装置２の記録媒体１０に記録されている所望のPlayListを記録装置３の記録媒体１０−２へコピーすることを指示する情報が、図示しないユーザーインタフェースを通して、コピー制御コマンドに乗って、再生装置２へ入力される。このコマンドは、ディジタルバスインタフェース５０、バスコントローラ５２を経由して、制御部１７へ入力される。
【０３９２】
制御部１７は、上記PlayListの再生に必要なＡＶストリームのストリーム部分を決定し、そのＡＶストリームデータを記録媒体１０から読み出すように、読み出し部１１に指示を出す（図６６、図６７、図６８参照）。また、制御部１７は、上記PlayListに関係するデータベースファイル（PlayListファイル、Clip Information fileとサムネールファイル）を記録媒体１０から読み出すように、読み出し部１１に指示を出す。
【０３９３】
制御部１７は、復調部１２、ＥＣＣ復号部１３を経て読み出された前記ＡＶストリームデータを、スイッチ61の接点Ａ側を通して、ＡＶストリームファイルとして、ディジタルバスインタフェース５０へ供給するように指示する（図６１の場合）。ここで、1個のClip AVストリームファイルから取り出された一つ以上のストリーム部分は、1個のClip AVストリームファイルにコンバインされる（図６９参照）。
【０３９４】
または、制御部１７は、復調部１２、ＥＣＣ復号部１３を経て読み出された前記ＡＶストリームデータを、スイッチ61の接点Ｉ側を通して、ソースデパケッタイザ14へ入力しても良い（図６２の場合）。この場合、ソースデパケッタイザ14は、アライバルタイムスタンプに従って、トランスポートストリームをディジタルバスインタフェース５０へ供給する。
【０３９５】
一方、記録媒体１０から読み出されたＡＶストリームデータに対応するデータベースファイルが、復調部１２、ＥＣＣ復号部１３を経て、メモリ５１へ入力される。制御部１７は、メモリ５１にあるデータを元にして、ディジタルバスインタフェース５０から出力される上記のＡＶストリームファイルの再生に必要なデータベース（Clip Informationファイル，PlayListファイル）を作成する（図６９、図７０参照）。また、制御部１７は、上記のＡＶストリームファイルに対応するClipとコピーするPlayListファイルが使用するサムネールファイルを作成する（後述の図７２のステップＳ１７２参照）。
【０３９６】
そして、制御部１７は、上記新たに作成されたデータベースファイル（Clip Informationファイル，PlayListファイルとサムネールファイル）をメモリ５１からディジタルバスインタフェース５０へ供給するように指示する。
【０３９７】
バスコントローラ５２は、ディジタルインタフェース５０からのファイル出力を制御する。制御部１７は、バスコントローラ５２に対して、ディジタルバスインタフェース５０から、ＡＶストリームとそれに関係するデータベースを出力するように指示する。
【０３９８】
前記ＡＶストリームとそれに関係するデータベースは、ディジタルバス６０を経由して、コピー先の記録装置３へ入力される。
【０３９９】
コピー先の記録装置３のバスコントローラ５７は、ディジタルバスインタフェース５５からのファイル入力を制御する。また、バスコントローラ５２とバスコントローラ５７は、ファイルのコピー制御コマンドを交換して、データ伝送／受信のタイミングを制御する。
【０４００】
記録装置３の制御部１７−２は、コピー元からディジタルバスインタフェース５５へ、ＡＶストリームファイルとして入力される場合、スイッチ６２の接点Ａ側を通して、ＥＣＣ符号化部３０，変調部３１、書き込み部３２の処理を経て、記録媒体１０−２に記録するように指示する。
【０４０１】
または、制御部１７−２は、コピー元からディジタルバスインタフェース５５へ、トランスポートストリームとして入力される場合、スイッチ６２の接点Ｉ側を通して、ソースパケッタイザ29へ入力する。ソースパケッタイザ29は、トランスポートパケットをソースパケット化して出力する。制御部１７−２は、ソースパケットから成るＡＶストリームを、ＥＣＣ符号化部３０，変調部３１、書き込み部３２の処理を経て、記録媒体１０−２に記録するように指示する。
【０４０２】
また、制御部１７−２は、ディジタルバスインターフェース５５へ入力されるデータベースファイルを、メモリ５６へ書きこむように指示する。
【０４０３】
また、制御部１７−２は、記録媒体１０−２に記録されているデータベースファイル（Info.dvrファイルとサムネールファイル）を、読み出し部１１、復調部１２，ＥＣＣ復号部１３の処理を経て、メモリ５６へ読み出すように指示する。
【０４０４】
そして、制御部１７−２は、メモリ５６にあるInfo.dvrファイルとサムネールファイルを更新する。具体的には、コピー先にあるInfo.dvrファイルのTableOfPlayListに、新たに記録するPlayListファイル名を追加し、また、コピー先にあるサムネールファイルに新たに記録するサムネールを追加する（後述の図７４のステップ２２４，Ｓ２２５参照）。
【０４０５】
制御部１７−２は、メモリ５６にあるデータベースファイルを読み出して、ＥＣＣ符号化部３０，変調部３１、書き込み部３２の処理を経て、記録媒体１０−２に記録するように指示する。
【０４０６】
このようにして、再生装置２から、記録装置３へ、ＡＶストリームとそれに関係するデータベースをデータ転送してコピーする場合の処理を行う。
【０４０７】
次に、再生装置２がコピー先へＡＶストリームだけを転送する場合を説明する。これは、コピー先の記録装置３が、ＤＶＲフォーマットに準拠していない場合における、再生装置２のトランスポートストリームの再生動作と考えられる。
【０４０８】
制御部１７は、上記PlayListの再生に必要なＡＶストリームのストリーム部分を決定し、そのＡＶストリームデータを記録媒体１０から読み出すように、読み出し部１１に指示を出す。制御部１７は、復調部１２、ＥＣＣ復号部１３を経て読み出された前記ＡＶストリームデータを、スイッチ61の接点Ｉ側を通して、ソースデパケッタイザ14へ入力する。ソースデパケッタイザ14は、アライバルタイムスタンプに従って、トランスポートパケットをディジタルバスインタフェース５０へ供給する。ディジタルバスインタフェース５０は、トランスポートパケットをアイソクロナス転送する。
【０４０９】
また、記録装置３へＡＶストリームだけが転送される場合を説明する。これは、コピー元の再生装置２が、ＤＶＲフォーマットに準拠していない場合における、記録装置３のトランスポートストリームの記録動作と考えられる。
【０４１０】
記録装置３の制御部１７−２は、ディジタルバスインターフェース５５へ入力されるトランスポートストリームを、スイッチ６２の接点Ｉ側を通して、ソースパケッタイザ29へ入力する。ソースパケッタイザ29は、トランスポートパケットをソースパケット化して出力する。制御部１７−２は、ソースパケットから成るＡＶストリームを、ＥＣＣ符号化部３０，変調部３１、書き込み部３２の処理を経て、記録媒体１０−２に記録するように指示する。
【０４１１】
また、スイッチ６２の接点Ｉ側を通して、トランスポートストリームは多重化ストリーム解析部26へ入力される。ここでの処理の内容は、前述の図４４で説明したとおりである。制御部１７−2は、解析部26での解析結果に基づいて、データベースファイルを作成する。制御部１７−2は、データベースファイルをＥＣＣ符号化部３０，変調部３１、書き込み部３２の処理を経て、記録媒体１０−２に記録するように指示する。
【０４１２】
このようにして、再生装置２からＡＶストリームだけをデータ転送する場合の処理、また、再生装置３へＡＶストリームだけがデータ転送される場合の処理を行う。
【０４１３】
図７２は、コピー元(出力側の再生装置２)から、コピー先(入力側の記録装置３)へ、PlayListをコピーする場合の、コピー元の制御部１７が行う処理を説明するフローチャートである。
【０４１４】
ステップＳ１７０で、ＡＶストリームとそれに関係するデータベースをデータ転送してコピーする場合と、ＡＶストリームだけをデータ転送してコピーする場合かを決める。前者の場合は、ステップＳ１７１へ進む。後者の場合は、ステップＳ１７５へ進む。
【０４１５】
ステップＳ１７１で、Clipについての次の処理を行う。
・当該PlayListの再生に必要なClip AVストリームの部分を決定する（図６６、図６７、図６８参照）。
・上記決定したAVストリーム部分が使用するClip Informationファイルを作成する（図７０参照）。
【０４１６】
ステップＳ１７２で、サムネールファイルについての次の処理を行う。
・当該PlayListが使用するメニューサムネールを含むファイルを作成する。
・当該PlayListおよび上記決定したAVストリーム部分が、使用するマークサムネールを含むファイルを作成する。
【０４１７】
ステップＳ１７３で、ＡＶストリームファイルの転送の処理を行う。
・上記Clipの処理で決定したストリーム部分のAVストリームデータをコピー先へ転送する（図６９参照）。
【０４１８】
ステップＳ１７４で、データベースファイルの転送の処理を行う。
・上記PlayListファイルをコピー先へ転送する。
・上記Clipの処理で作成したClip Informationファイルをコピー先へ転送する。
・上記ステップＳ１７２で作成したサムネールファイルをコピー先へ転送する。
【０４１９】
ステップＳ１７０で、ＡＶストリームだけをデータ転送してコピーすると判定され、ステップＳ１７５へ進む場合、図６０に示すPlayListの再生を説明するフローチャートで読み出されるAVストリームデータ(Ｓ１３５で読み出すAVストリームデータ)を、トランスポートストリーム化して、コピー先へ転送する。
【０４２０】
図７３は、上記ステップＳ１７１のClipについての処理の詳細を説明するフローチャートである（図７０参照）。
【０４２１】
ステップＳ２０１で、PlayListが、当該Clipの中で使用する再生区間の表示開始時刻および表示終了時刻を取得する。
【０４２２】
ステップＳ２０２で、上記時間区間に対応するClip AVストリーム上のコピー開始パケット（アドレス）とコピー終了パケット（アドレス）をCPIに基づいて決定する。
【０４２３】
ステップＳ２０３で、CPIについての次の処理を行う。
・コピーする区間のAVストリーム部分が使用するCPIエントリーを取得する。
・CPIのエントリーポイントのソースパケット番号の値を、コピーするAVストリーム部分の中でのソースパケット番号の値へ変更する。
【０４２４】
ステップＳ２０４で、SequenceInfoについての次の処理を行う。
・コピーする区間のAVストリーム部分におけるATC-sequenceの開始パケット番号を更新する。
・コピーする区間のAVストリーム部分におけるSTC-sequenceの開始パケット番号を更新する。
・コピーする区間のAVストリーム部分におけるATCシーケンス上にあるSTC-sequenceに対するSTC-idの値が変わらないようにoffset_STC_idを更新する。
【０４２５】
ステップＳ２０５で、ProgramInfoについての次の処理を行う。コピーする区間のAVストリーム部分におけるprogram-sequenceの開始パケット番号を更新する。
【０４２６】
ステップＳ２０６で、ClipMarkについての次の処理を行う。コピーする区間のAVストリーム部分が使用するMarkエントリーを取得する。
【０４２７】
ステップＳ２０７で、ファイル作成についての次の処理を行う。
・コピーする区間のAVストリーム部分をコンバインしてClip AV stream fileにする。
・Clip Information fileを作成する。
【０４２８】
図７４は、コピー元(出力側の再生装置２)から、コピー先(入力側の記録装置３)へ、PlayListをコピーする場合の、コピー先が行う処理を説明するフローチャートである。
【０４２９】
ステップＳ２２１で、ＡＶストリームとそれに関係するデータベースをデータ転送してコピーする場合と、ＡＶストリームだけをデータ転送してコピーする場合かを決める。前者の場合は、ステップＳ２２２へ進む。後者の場合は、ステップＳ２２６へ進む。
【０４３０】
ステップＳ２２２で、ＡＶストリームファイルの管理の処理を行う。
入力されたAVストリームデータをClip AVストリームファイルとして、STREAMディレクトリへ記録する。
【０４３１】
ステップＳ２２３で、データベースファイルの管理についての処理を行う。
・入力されたPlayListファイルをPLAYLISTディレクトリへ記録する。
・入力されたClip InformationファイルをCLIPINFディレクトリへ記録する。
【０４３２】
ステップＳ２２４で、Info.dvrについての処理を行う。
入力されたPlayListファイルをコピー先にあるInfo.dvrのTableOfPlayListに追加する。
【０４３３】
ステップＳ２２５で、サムネールファイルについての処理を行う。
入力されたサムネールファイルにエントリーされているサムネールデータを、コピー先にあるサムネールファイルへ追加する。
【０４３４】
ステップＳ２２１で、ＡＶストリームだけをデータ転送してコピーすると判定され、ステップＳ２２６へ進む場合、図５８に示すReal PlayListの作成を説明するフローチャートによって、コピー先に入力されるトランスポートストリームを記録して、Real PlayListを作成する。
【０４３５】
このようなシンタクス、データ構造、規則に基づく事により、記録媒体１０に記録されているＡＶストリームファイルとそのデータベースファイルの内容を適切に管理することができ、もって、ユーザが所望のＡＶストリームファイルとそのデータベースファイルを別の記録媒体に簡便にコピーできるようにすることができる。
【０４３６】
また、記録媒体１０に記録されているＡＶストリームファイルの部分的な再生区間を別の記録媒体にコピーする場合に、当該再生区間の再生に必要なＡＶストリームファイルを簡便に作成することができ、当該再生区間の再生に必要なデータベースファイルを簡便に作成ことができるので、もって、ユーザが、所望のＡＶストリームファイルの部分的な再生区間の再生に必要なＡＶストリームファイルとデータベースファイルを作成することができ、それらファイルを別の記録媒体に簡便にコピーできるようにすることができる。
【０４３７】
なお、図７１の説明では、コピー先からコピー元へのファイル転送に用いる伝送路が、IEEE1394等のディジタルバスの場合を説明したが、これに限らず、図７５に示すように、放送波等の無線波を伝送路としてもよい。また、コピー制御のコマンドは、ファイル転送用の伝送路と同じである必要はない。（図７５参照）
【０４３８】
また、ＡＶストリームファイルとそのデータベースファイルが別々の記録媒体から、コピー先に転送されてもよい。図７６に示すように、ＡＶストリームファイルが記録されているサーバーとデータベースファイルが記録されているサーバーが別々に用意されており、記録装置３からのコピー制御コマンドに対して、ＡＶストリームファイルサーバーとデータベースファイルサーバーから、ファイルが記録装置３へ転送されるようにしても良い。
【０４３９】
なお、本実施の形態は、多重化ストリームとしてMPEG2トランスポートストリームを例にして説明しているが、これに限らず、DSSトランスポートストリームやMPEG2プログラムストリームについても適用することが可能である。
【０４４０】
上述した一連の処理は、ハードウエアにより実行させることもできるが、ソフトウエアにより実行させることもできる。この場合、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、ネットワークや記録媒体からインストールされる。
【０４４１】
この記録媒体は、図４４に示すように、装置本体とは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク５１（フロッピディスクを含む）、光ディスク５２（CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む）、光磁気ディスク５３（ＭＤ（Mini-Disk）を含む）、もしくは半導体メモリ５４などよりなるパッケージメディアにより構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される、プログラムが記録されているROMやハードディスクなどで構成される。
【０４４２】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０４４３】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【図面の簡単な説明】
【０４４４】
【図１】volume Informationを説明する図である。
【図２】ディスク上につくられるディレクトリ構造を説明する図である。
【図３】DVR MPEG-2 transport streamの構造を示す図である。
【図４】source_packetのシンタクスを示す図である。
【図５】TP_extra_header()のシンタクスを示す図である。
【図６】DVR MPEG-2 transport stream recorder modelを示す図である。
【図７】DVR MPEG-2 transport stream player modelを示す図である。
【図８】Clip Information fileのシンタクスを示す図である。
【図９】ATC-sequenceについて説明する図である。
【図１０】ATCの不連続点とATC-sequenceの関係を説明する図である。
【図１１】連続なSTC区間について説明する図である。
【図１２】STCの不連続点とSTC-sequenceの関係、およびSTC-sequenceとATC-sequenceの関係を説明する図である。
【図１３】SequenceInfo()のシンタクスを示す図である。
【図１４】program_sequenceを説明する図である。
【図１５】ProgramInfo()のシンタクスを示す図である。
【図１６】StreamCodingInfo()のシンタクスを示す図である。
【図１７】stream_coding_typeを示す図である。
【図１８】video_formatを示す図である。
【図１９】frame_rateを示す図である。
【図２０】display_aspect_ratioを示す図である。
【図２１】audio_presentation_typeを示す図である。
【図２２】sampling_frequencyを示す図である。
【図２３】CPI()のシンタクスを示す図である。
【図２４】EP_mapを説明する図である。
【図２５】AVストリームをはじめてClipとして記録するときにできるTU_mapについて説明する図である。
【図２６】TU_mapのシンタクスを示す図である。
【図２７】PlayListMarkとClipMarkの関係について説明する図である。
【図２８】ClipMarkのシンタクスを示す図である。
【図２９】PlayList fileのシンタクスを示す図である。
【図３０】UIAppInfoPlayListのシンタクスを示す図である。
【図３１】PlayList()のシンタクスを示す図である。
【図３２】EP_map typeのPlayListについて説明する図である。
【図３３】TU_map typeのPlayListについて説明する図である。
【図３４】EP_map typeのPlayListの時間情報とAVストリームファイルの中のアドレス情報の関係を説明する図である。
【図３５】TU_map typeのPlayListの時間情報とAVストリームファイルの中のアドレス情報の関係を説明する図である。
【図３６】PlayItem()のシンタクスを示す図である。
【図３７】PlayListMarkのシンタクスを示す図である。
【図３８】Info.dvrのシンタクスを示す図である。
【図３９】UIAppInfoVolumeのシンタクスを示す図である。
【図４０】TableOfPlayListsのシンタクスを示す図である。
【図４１】サムネールのヘッダ情報ファイルのシンタクスを示す図である。
【図４２】サムネールのピクチャデータファイルのシンタクスを示す図である。
【図４３】tn_blockへのデータの格納方法を説明する図である。
【図４４】動画像記録再生装置の構成を示すブロック図である。
【図４５】AVストリームが新しいClipとして記録される時のClipとPlayListの関係のコンセプトを説明する図である。
【図４６】Virtual PlayListの作成のコンセプトについて説明する図である。
【図４７】Real PlayListの再生区間の一部分を消去したときのClipとPlayListの関係のコンセプトを説明する図である。
【図４８】Minimizeの編集をしたときのClipとPlayList，Virtual PlayListの関係のコンセプトを説明する図である。
【図４９】１つのClip AVストリームのデータを部分的に消去した時に、Clipの中に２つのATC_sequencesができる場合を説明する図である。
【図５０】１つのClip AVストリームのデータを部分的に消去した時の、ATC_sequences， STC_sequencesおよびprogram_sequenceの関係を説明する図である。
【図５１】CPIがEP_mapであるClip AVストリームの一部分を消去した時のClipとPlayListの関係を説明する図である。
【図５２】Clipの中にATCの不連続を許さない場合において、Clip AVストリームの一部分を消去した時に、Clipが２つに分かれる場合を説明する図である。
【図５３】CPIがTU_mapであるClip AVストリームの一部分を消去した時のClipとPlayListの関係を説明する図である。
【図５４】AVストリームをClipして新しく記録するときの、Clip AVストリームファイルおよびClip Informationファイルの作成を説明するフローチャートである。
【図５５】はじめにAVストリームをClipとして記録するときのSequenceInfoの作成の動作例を説明するフローチャートである。
【図５６】ProgramInfoの作成の動作例を説明するフローチャートである。
【図５７】EP_mapの作成の動作例を説明するフローチャートである。
【図５８】Real PlayListの作成方法を説明するフローチャートである。
【図５９】Virtual PlayListの作成方法を説明するフローチャートである。
【図６０】PlayListの再生方法を説明するフローチャートである。
【図６１】AVストリームファイルとデータベースファイルを共にファイル転送する場合を説明する図である。
【図６２】AVストリームをリアルタイム転送（ストリーム転送）し、データベースをファイル転送する場合を説明する図である。
【図６３】AVストリームだけをリアルタイム転送し、コピー先でデータベースファイルを新たに作成する場合を説明する図である。
【図６４】コピー先の記録装置がDVRフォーマットに準拠したものではない場合に、AVストリームをリアルタイムにデータを再生する速度で転送する場合を説明する図である。
【図６５】コピー元（出力側の再生装置）から、コピー先（入力側の記録装置）へ、PlayListとそれに必要なClipの部分だけをコピーする場合のClipとPlayListの関係を説明する図である。
【図６６】コピー元（出力側の再生装置）から、コピー先（入力側の記録装置）へ、PlayListをコピーする場合に、そのPlayListの再生に必要なClipの部分について説明する図である。
【図６７】コピー元（出力側の再生装置）から、コピー先（入力側の記録装置）へ、PlayListをコピーする場合に、IN_timeの前のデータのコピー開始点を決める方法を説明する図である。
【図６８】コピー元（出力側の再生装置）から、コピー先（入力側の記録装置）へ、PlayListをコピーする場合に、OUT_timeの後のデータのコピー終了点を決める方法を説明する図である。
【図６９】コピー元（出力側の再生装置）から、コピー先（入力側の記録装置）へ、PlayListとそれに必要なClipの部分だけをコピーする場合のClipとPlayListの関係を説明する図である。
【図７０】コピー元（出力側の再生装置）から、コピー先（入力側の記録装置）へ、Clipの部分的にコピーする場合のClipの変更方法について説明する図である。
【図７１】コピー元（出力側の再生装置）から、コピー先（入力側の記録装置）へ、DVRのAVストリームファイルとそれに関係するデータベースファイルを、ディジタルバス経由でコピーする場合の構成を示すブロック図である。
【図７２】コピー元（出力側の再生装置）から、コピー先（入力側の記録装置）へ、PlayListをコピーする場合の、コピー元の処理を説明するフローチャートである。
【図７３】コピー元（出力側の再生装置）から、コピー先（入力側の記録装置）へ、PlayListをコピーする場合において、コピー元の側のClipについての処理を説明するフローチャートである。
【図７４】コピー元（出力側の再生装置）から、コピー先（入力側の記録装置）へ、PlayListをコピーする場合の、コピー先の処理を説明するフローチャートである。
【図７５】AVストリームファイルとデータベースファイルが、無線波を経由して、記録装置へファイルが転送される場合を説明する図である。
【図７６】AVストリームファイルとデータベースファイルが、別々のサーバに記録されており、それぞれのサーバから記録媒体へファイルが転送される場合を説明する図である。
【符号の説明】
【０４４５】
１０  記録媒体，  １１  読み出し部，  １２  復調部，  １３  ECC復号部，  １４  ソースデパケッタイザ，  １５  デマルチプレクサ，  １６  AVデコーダ，  １７  制御部，  ２３  AVエンコーダ，  ２４  ビデオ解析部，  ２５  マルチプレクサ，  ２６  多重化ストリーム解析部，  ２９  ソースパケッタイザ，  ３０  ECC符号化部，  ３１  変調部，  ３２  書き込み部，  ６１  再生部，  ６２  記録部
【図１】
2006216227.tif 000003
【図２】
2006216227.tif 000004
【図３】
2006216227.tif 000005
【図４】
2006216227.tif 000006
【図５】
2006216227.tif 000007
【図６】
2006216227.tif 000008
【図７】
2006216227.tif 000009
【図８】
2006216227.tif 000010
【図９】
2006216227.tif 000011
【図１０】
2006216227.tif 000012
【図１１】
2006216227.tif 000013
【図１２】
2006216227.tif 000014
【図１３】
2006216227.tif 000015
【図１４】
2006216227.tif 000016
【図１５】
2006216227.tif 000017
【図１６】
2006216227.tif 000018
【図１７】
2006216227.tif 000019
【図１８】
2006216227.tif 000020
【図１９】
2006216227.tif 000021
【図２０】
2006216227.tif 000022
【図２１】
2006216227.tif 000023
【図２２】
2006216227.tif 000024
【図２３】
2006216227.tif 000025
【図２４】
2006216227.tif 000026
【図２５】
2006216227.tif 000027
【図２６】
2006216227.tif 000028
【図２７】
2006216227.tif 000029
【図２８】
2006216227.tif 000030
【図２９】
2006216227.tif 000031
【図３０】
2006216227.tif 000032
【図３１】
2006216227.tif 000033
【図３２】
2006216227.tif 000034
【図３３】
2006216227.tif 000035
【図３４】
2006216227.tif 000036
【図３５】
2006216227.tif 000037
【図３６】
2006216227.tif 000038
【図３７】
2006216227.tif 000039
【図３８】
2006216227.tif 000040
【図３９】
2006216227.tif 000041
【図４０】
2006216227.tif 000042
【図４１】
2006216227.tif 000043
【図４２】
2006216227.tif 000044
【図４３】
2006216227.tif 000045
【図４４】
2006216227.tif 000046
【図４５】
2006216227.tif 000047
【図４６】
2006216227.tif 000048
【図４７】
2006216227.tif 000049
【図４８】
2006216227.tif 000050
【図４９】
2006216227.tif 000051
【図５０】
2006216227.tif 000052
【図５１】
2006216227.tif 000053
【図５２】
2006216227.tif 000054
【図５３】
2006216227.tif 000055
【図５４】
2006216227.tif 000056
【図５５】
2006216227.tif 000057
【図５６】
2006216227.tif 000058
【図５７】
2006216227.tif 000059
【図５８】
2006216227.tif 000060
【図５９】
2006216227.tif 000061
【図６０】
2006216227.tif 000062
【図６１】
2006216227.tif 000063
【図６２】
2006216227.tif 000064
【図６３】
2006216227.tif 000065
【図６４】
2006216227.tif 000066
【図６５】
2006216227.tif 000067
【図６６】
2006216227.tif 000068
【図６７】
2006216227.tif 000069
【図６８】
2006216227.tif 000070
【図６９】
2006216227.tif 000071
【図７０】
2006216227.tif 000072
【図７１】
2006216227.tif 000073
【図７２】
2006216227.tif 000074
【図７３】
2006216227.tif 000075
【図７４】
2006216227.tif 000076
【図７５】
2006216227.tif 000077
【図７６】
2006216227.tif 000078