(57)【特許請求の範囲】
【請求項１】
コンテンツの実態としての実態情報を参照する再生情報であって、前記実態情報を共有している前記再生情報であるリアルプレイリストが参照する前記実態情報が、他の前記リアルプレイリストにより参照されていることを示すフラグを記録する記録部と、
前記リアルプレイリストの削除が指示された場合、前記フラグを用いて削除可能な前記実態情報を検索する検索部と、
前記リアルプレイリストの削除が指示された場合、削除対象の前記リアルプレイリストと削除可能な前記実態情報とを削除する削除部と
を備え、
前記検索部は、前記フラグが他の前記リアルプレイリストにより参照されていることを示しているすべての前記リアルプレイリストを取得し、それらの前記リアルプレイリストの中から、削除可能な前記実態情報として、削除対象の前記リアルプレイリストが参照する前記実態情報であって、削除対象以外の前記リアルプレイリストにより参照されていない前記実態情報を検索する
情報処理装置。
【請求項２】
削除対象の前記リアルプレイリストの前記フラグが、削除対象の前記リアルプレイリストが参照する前記実態情報が他の前記リアルプレイリストにより参照されていないことを示す場合、前記削除部は、削除対象の前記リアルプレイリストと削除対象の前記リアルプレイリストが参照する前記実態情報とを削除する
請求項１に記載の情報処理装置。
【請求項３】
前記削除部は、削除された前記実態情報を参照する前記再生情報であって、前記実態情報を共有しない前記再生情報であるバーチャルプレイリストをさらに削除する
請求項２に記載の情報処理装置。
【請求項４】
前記リアルプレイリストの編集に伴って前記フラグを設定する設定部を
さらに備える請求項３に記載の情報処理装置。
【請求項５】
前記設定部は、前記再生情報がデバイドされた場合、前記フラグを、前記実態情報が他の前記リアルプレイリストにより参照されていることを示す状態に設定し、前記リアルプレイリストがクリエイト、コンバイン、および部分削除された場合、前記フラグを、前記実態情報が他の前記リアルプレイリストにより参照されていないことを示す状態に設定する
請求項４に記載の情報処理装置。
【請求項６】
前記設定部は、編集前の前記リアルプレイリストの前記フラグが、前記実態情報が他の前記リアルプレイリストにより参照されていることを示す状態に設定されている場合に、編集後の前記リアルプレイリストが参照する前記実態情報が、前記実態情報が他の前記リアルプレイリストにより参照されていることを示す前記フラグの他の前記リアルプレイリストにより参照されないとき、前記フラグを、前記実態情報が他の前記リアルプレイリストにより参照されていないことを示す状態に変更する
請求項５に記載の情報処理装置。
【請求項７】
記録部と、検索部と、削除部とを備える情報処理装置の情報処理方法であって、
前記記録部が、コンテンツの実態としての実態情報を参照する再生情報であって、前記実態情報を共有している前記再生情報であるリアルプレイリストが参照する前記実態情報が、他の前記リアルプレイリストにより参照されていることを示すフラグを記録する記録ステップと、
前記検索部が、前記リアルプレイリストの削除が指示された場合、前記フラグを用いて削除可能な前記実態情報を検索する検索ステップと、
前記削除部が、前記リアルプレイリストの削除が指示された場合、削除対象の前記リアルプレイリストと削除可能な前記実態情報とを削除する削除ステップと
を含み、
前記検索部は、前記フラグが他の前記リアルプレイリストにより参照されていることを示しているすべての前記リアルプレイリストを取得し、それらの前記リアルプレイリストの中から、削除可能な前記実態情報として、削除対象の前記リアルプレイリストが参照する前記実態情報であって、削除対象以外の前記リアルプレイリストにより参照されていない前記実態情報を検索する
情報処理方法。
【請求項８】
コンテンツの実態としての実態情報を参照する再生情報であって、前記実態情報を共有している前記再生情報であるリアルプレイリストが参照する前記実態情報が、他の前記リアルプレイリストにより参照されていることを示すフラグを記録する記録ステップと、
前記リアルプレイリストの削除が指示された場合、前記フラグを用いて削除可能な前記実態情報を検索する検索ステップと、
前記リアルプレイリストの削除が指示された場合、削除対象の前記リアルプレイリストと削除可能な前記実態情報とを削除する削除ステップと
を含み、
前記フラグが他の前記リアルプレイリストにより参照されていることを示しているすべての前記リアルプレイリストを取得し、それらの前記リアルプレイリストの中から、削除可能な前記実態情報として、削除対象の前記リアルプレイリストが参照する前記実態情報であって、削除対象以外の前記リアルプレイリストにより参照されていない前記実態情報を検索する
処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は情報処理装置、情報処理方法、並びにプログラムに関し、特にコンテンツを迅速に削除することができるようにした情報処理装置、情報処理方法、並びにプログラムに関する。
【背景技術】
【０００２】
最近、記録再生装置が普及し、放送されたＡＶ（Audio Visual）信号をディスクに記録し、ユーザが希望するタイミングで再生することが一般的に行われている。ＡＶ信号はデジタル化されており、圧縮が可能なので、長時間のＡＶ信号をディスクに記録することができる。
【０００３】
ところでＡＶ信号を含むコンテンツを記録する記録媒体としては、ブルーレイディスク、DVD（Digital Versatile Disk）、ハードディスク等のディスクの他、フラッシュメモリカードといった半導体メモリも利用される。
【０００４】
これらの記録媒体は、高容量化が進み、信号のデジタル化と相まって、ますます数多くのコンテンツを記録することができるようになってきた。その結果、１個の記録媒体に記録可能なコンテンツの数、より具体的にはPlayListの数は、いままで多くても200個程度であったがものが、10000個以上と、極めて多くなってきた。
【０００５】
記録媒体に記録されているコンテンツを、PlayListとClipにより管理することは、例えば特許文献１に開示されている。Clipはコンテンツの実態としてのデータであり、PlayListはClipの所定の期間を指定する。例えばユーザが再生するコンテンツを指示する場合、実際には、PlayListが指定される。そしてClipのPlayListにより参照されている範囲が再生される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−１５８９７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
１つのClipは２以上のPlayListにより参照されることがある。参照された範囲は共通する場合もあるし、異なる場合もある。このようにコンテンツの実態であるデータとしてのClipと、その再生範囲としてのPlayListを独立に管理することで、データ量が多い実態としてのコンテンツデータを重複して記録することが防止される。その結果、記録媒体の記録容量を効率的に利用することができるようになる。
【０００８】
その結果、１つのPlayListの削除が指示された場合、対応するClipを直ちに削除することはできない。そのClipが他のPlayListにより参照されているか否かを調べ、そのClipが他のPlayListにより参照されていない場合にのみ、そのClipを削除することができる。
【０００９】
しかしながら、PlayListの数が多くなると、記録媒体に記録されているPlayListの削除が指示された場合、対応するClipが他のPlayListにより参照されているか否かを調べるのに長い時間がかかる。その結果、PlayList、つまりコンテンツを迅速に削除することが困難になる。
【００１０】
本技術はこのような状況に鑑みてなされたものであり、コンテンツを迅速に削除することができるようにするものである。
【課題を解決するための手段】
【００１１】
本技術の一側面は、コンテンツの実態としての実態情報を参照する再生情報であって、前記実態情報を共有している前記再生情報であるリアルプレイリストが参照する前記実態情報が、他の前記リアルプレイリストにより参照されていることを示すフラグを記録する記録部と、前記リアルプレイリストの削除が指示された場合、前記フラグを用いて削除可能な前記実態情報を検索する検索部と、前記リアルプレイリストの削除が指示された場合、削除対象の前記リアルプレイリストと削除可能な前記実態情報とを削除する削除部とを備え、前記検索部は、前記フラグが他の前記リアルプレイリストにより参照されていることを示しているすべての前記リアルプレイリストを取得し、それらの前記リアルプレイリストの中から、削除可能な前記実態情報として、削除対象の前記リアルプレイリストが参照する前記実態情報であって、削除対象以外の前記リアルプレイリストにより参照されていない前記実態情報を検索する情報処理装置である。
【００１４】
削除対象の前記リアルプレイリストの前記フラグが、削除対象の前記リアルプレイリストが参照する前記実態情報が他の前記リアルプレイリストにより参照されていないことを示す場合、前記削除部は、削除対象の前記リアルプレイリストと削除対象の前記リアルプレイリストが参照する前記実態情報とを削除することができる。
【００１５】
前記削除部は、削除された前記実態情報を参照する前記再生情報であって、前記実態情報を共有しない前記再生情報であるバーチャルプレイリストをさらに削除することができる。
【００１６】
前記リアルプレイリストの編集に伴って前記フラグを設定する設定部をさらに備えることができる。
【００１７】
前記設定部は、前記再生情報がデバイドされた場合、前記フラグを、前記実態情報が他の前記リアルプレイリストにより参照されていることを示す状態に設定し、前記リアルプレイリストがクリエイト、コンバイン、および部分削除された場合、前記フラグを、前記実態情報が他の前記リアルプレイリストにより参照されていないことを示す状態に設定することができる。
【００１８】
前記設定部は、編集前の前記リアルプレイリストの前記フラグが、前記実態情報が他の前記リアルプレイリストにより参照されていることを示す状態に設定されている場合に、編集後の前記リアルプレイリストが参照する前記実態情報が、前記実態情報が他の前記リアルプレイリストにより参照されていることを示す前記フラグの他の前記リアルプレイリストにより参照されないとき、前記フラグを、前記実態情報が他の前記リアルプレイリストにより参照されていないことを示す状態に変更することができる。
【００２０】
本技術の他の側面は、前記情報処理装置に対応する情報処理方法およびプログラムである。
【００２１】
本技術の側面においては、コンテンツの実態としての実態情報を参照する再生情報であって、実態情報を共有している前記再生情報であるリアルプレイリストが参照する実態情報が、他のリアルプレイリストにより参照されていることを示すフラグが記録される。リアルプレイリストの削除が指示された場合、フラグを用いて削除可能な実態情報が検索される。リアルプレイリストの削除が指示された場合、削除対象のリアルプレイリストと削除可能な実態情報とが削除される。
【発明の効果】
【００２２】
以上のように、本技術の一側面によれば、コンテンツを迅速に削除することができる。
【図面の簡単な説明】
【００２３】
【図１】本技術を適用した情報処理装置の一実施の形態の構成を示す図である。
【図２】制御部の機能的構成を示すブロック図である。
【図３】記録再生装置により記録媒体に記録されるデータのフォーマットについて説明する図である。
【図４】Real PlayListとVirtual PlayListについて説明する図である。
【図５】Real PlayListの作成について説明する図である。
【図６】Real PlayListの削除について説明する図である。
【図７】アセンブル編集について説明する図である。
【図８】Virtual PlayListにサブパスを設ける場合について説明する図である。
【図９】PlayListの再生順序の変更について説明する図である。
【図１０】PlayList上のマークとClip上のマークについて説明する図である。
【図１１】メニューサムネイルについて説明する図である。
【図１２】PlayListに付加されるマークについて説明する図である。
【図１３】クリップに付加されるマークについて説明する図である。
【図１４】PlayList、Clip、サムネイルファイルの関係について説明する図である。
【図１５】ディレクトリ構造について説明する図である。
【図１６】タイトル一覧の表示例を示す図である。
【図１７】NDEX.BAVファイルのシンタクスを示す図である。
【図１８】INFO.BAVファイルのシンタクスを示す図である。
【図１９】ExtensionData()のシンタクスを示す図である。
【図２０】ExtensionData()のシンタクスの例を示す図である。
【図２１】PL_to_Clip_table()のシンタクスを示す図である。
【図２２】xxxxx.RPLとxxxxx.VPLのシンタクスを示す図である。
【図２３】PlayListについて説明する図である。
【図２４】PlayListのシンタクスを示す図である。
【図２５】UIAppinfoPlayListのシンタクスを示す図である。
【図２６】PlayItemのシンタクスを示す図である。
【図２７】PlayListMarkのシンタクスを示す図である。
【図２８】mark_typeのテーブルを示す図である。
【図２９】MENU.THM/MARK.THMのシンタクスを示す図である。
【図３０】Thumbnailのシンタクスを示す図である。
【図３１】記録処理を説明するフローチャートである。
【図３２】Real PlayListのクリエイトを示す図である。
【図３３】Real PlayListのデバイドを示す図である。
【図３４】Real PlayListのコンバインを示す図である。
【図３５】削除処理を説明するフローチャートである。
【図３６】Real PlayListの全体の削除を示す図である。
【図３７】Real PlayListの一部分の削除を示す図である。
【図３８】Real PlayListの編集を示す図である。
【図３９】Real PlayListの編集を示す図である。
【図４０】Real PlayListの編集を示す図である。
【図４１】Real PlayListの編集を示す図である。
【図４２】Real PlayListの編集を示す図である。
【図４３】記録処理を説明するフローチャートである。
【図４４】Real PlayListの編集を示す図である。
【発明を実施するための形態】
【００２４】
以下、本技術を実施するための形態（以下、実施の形態と称する）について説明する。なお、説明は以下の順序で行う。
１．記録再生装置の構成
２．AVストリームの編集
３．制御部の機能的構成
４．操作の説明
５．PlayList
６．Real PlayListの編集
７．Virtual PlayListに対する操作
８．Virtual PlayList の再編集
９．マーク
１０．サムネイル
１１．CPI
１２. ディレクトリとファイル
１３．INDEX.BAVファイル
１４．INFO.BAV
１５．ExtensionData()
１６．PL_to_Clips_table()
１７．Real PlayList fileとVirtual PlayList file
１８．PlayListのシンタクス
１９．UIAppInfoPlayList
２０．PlayItemのシンタクス
２１．PlayListMark()
２２．MENU.THM
２３．AVストリームファイル
２４．記録処理１
２５．コンテンツ削除処理
２６．編集の例１
２７．記録処理２
２８．編集の例２
２９．本技術のプログラムへの適用
３０．その他
【００２５】
［記録再生装置の構成］
【００２６】
以下に、本技術の実施の形態について、図面を参照して説明する。図１は、本技術を適用した情報処理装置の一実施の形態の内部構成例を示す図である。まず、外部から入力された信号を記録媒体に記録する動作を行う部分の構成について説明する。情報の記録または再生の少なくとも一方を実行する情報処理装置としての記録再生装置１は、アナログデータ、または、デジタルデータを入力し、記録することができる構成とされている。
【００２７】
端子１１には、アナログのビデオ信号が、端子１２には、アナログのオーディオ信号が、それぞれ入力される。端子１１に入力されたビデオ信号は、解析部１４とAVエンコーダ１５に、それぞれ出力される。端子１２に入力されたオーディオ信号は、AVエンコーダ１５に出力される。解析部１４は、入力されたビデオ信号からシーンチェンジなどの特徴点を抽出する。
【００２８】
AVエンコーダ１５は、入力されたビデオ信号とオーディオ信号を、それぞれ符号化し、符号化ビデオストリーム(V)、符号化オーディオストリーム(A)、およびAV同期等のシステム情報(S)をマルチプレクサ１６に出力する。
【００２９】
符号化ビデオストリームは、例えば、MPEG（Moving Picture Expert Group）２方式により符号化されたビデオストリームであり、符号化オーディオストリームは、例えば、MPEG１方式により符号化されたオーディオストリームや、ドルビーAC3方式により符号化されたオーディオストリーム等である。マルチプレクサ１６は、入力されたビデオおよびオーディオのストリームを、入力システム情報に基づいて多重化して、スイッチ１７を介して多重化ストリーム解析部１８とソースパケッタイザ１９に出力する。
【００３０】
多重化ストリームは、例えば、MPEG2トランスポートストリームやMPEG2プログラムストリームである。ソースパケッタイザ１９は、入力された多重化ストリームを、そのストリームを記録させる記録媒体１００のアプリケーションフォーマットに従って、ソースパケットから構成されるAVストリームに符号化する。AVストリームは、ECC（誤り訂正）符号化部２０、変調部２１で所定の処理が施され、書き込み部２２に出力される。書き込み部２２は、制御部２３から出力される制御信号に基づいて、記録媒体１００にAVストリームファイルを書き込む（つまり記録する）。なお、記録媒体１００は、ブルーレイディスク、DVD（Digital Versatile Disk）、ハードディスク等のディスクの他、フラッシュメモリカードといった半導体メモリにより構成することができる。
【００３１】
デジタルインタフェイスまたはデジタルテレビジョンチューナから入力されるデジタルテレビジョン放送等のトランスポートストリームは、端子１３に入力される。端子１３に入力されたトランスポートストリームの記録方式には、２通りあり、それらは、トランスペアレントに記録する方式と、記録ビットレートを下げるなどの目的のために再エンコードをした後に記録する方式である。記録方式の指示情報は、ユーザインタフェイス（図示せず）が接続されている端子２４から制御部２３へ入力される。
【００３２】
入力トランスポートストリームをトランスペアレントに記録する場合、端子１３に入力されたトランスポートストリームは、多重化ストリーム解析部１８と、ソースパケッタイザ１９に出力される。これ以降の記録媒体１００へAVストリームが記録されるまでの処理は、上述の入力オーディオ信号とビデオ信号を符号化して記録する場合と同一の処理なので、その説明は省略する。
【００３３】
入力トランスポートストリームを再エンコードした後に記録する場合、端子１３に入力されたトランスポートストリームは、デマルチプレクサ２６に入力される。デマルチプレクサ２６は、入力されたトランスポートストリームに対してデマルチプレクス処理を施し、ビデオストリーム(V)、オーディオストリーム(A)、およびシステム情報(S)を抽出する。
【００３４】
デマルチプレクサ２６により抽出されたストリーム（すなわち情報）のうち、ビデオストリームはAVデコーダ２７に、オーディオストリームとシステム情報はマルチプレクサ１６に、それぞれ出力される。AVデコーダ２７は、入力されたビデオストリームを復号し、その再生ビデオ信号をAVエンコーダ１５に出力する。AVエンコーダ１５は、入力ビデオ信号を符号化し、符号化ビデオストリーム(V)をマルチプレクサ１６に出力する。
【００３５】
一方、デマルチプレクサ２６から出力され、マルチプレクサ１６に入力されたオーディオストリームとシステム情報、および、AVエンコーダ１５から出力されたビデオストリームは、入力システム情報に基づいて、多重化されて、多重化ストリームとして多重化ストリーム解析部１８とソースパケットタイザ１９にスイッチ１７を介して出力される。これ以後の記録媒体１００へAVストリームが記録されるまでの処理は、上述の入力オーディオ信号とビデオ信号を符号化して記録する場合と同一の処理なので、その説明は省略する。
【００３６】
本実施の形態の記録再生装置１は、AVストリームのファイルを記録媒体１００に記録すると共に、そのファイルを説明するアプリケーションデータベース情報も記録する。アプリケーションデータベース情報は、制御部２３により作成される。制御部２３への入力情報は、解析部１４からの動画像の特徴情報、多重化ストリーム解析部１８からのAVストリームの特徴情報、および端子２４から入力されるユーザからの指示情報である。
【００３７】
解析部１４から供給される動画像の特徴情報は、入力動画像信号の中の特徴的な画像に関係する情報であり、例えば、プログラムの開始点、シーンチェンジ点、コマーシャル（ＣＭ）の開始・終了点などの指定情報（例えばマーク）であり、また、その指定場所の画像のサムネイル画像の情報も含まれる。
【００３８】
多重化ストリーム解析部１８からのAVストリームの特徴情報は、記録されるAVストリームの符号化情報に関係する情報であり、例えば、AVストリーム内のIピクチャのアドレス情報、AVストリームの符号化パラメータ、AVストリームの中の符号化パラメータの変化点情報、ビデオストリームの中の特徴的な画像に関係する情報（例えばマーク）などである。
【００３９】
端子２４からのユーザの指示情報は、AVストリームの中の、ユーザが指定した再生区間の指定情報、その再生区間の内容を説明するキャラクタ文字、ユーザが好みのシーンにセットするブックマークやリジューム点の情報などである。
【００４０】
例えばマイクロプロセッサユニットからなる制御部２３は、所定の情報を記憶する記憶部２３Ａを有している。制御部２３は、上記の入力情報に基づいて、AVストリームのデータベース(Clip)、 AVストリームの再生区間(PlayItem)をグループ化したもの（PlayList）のデータベース、記録媒体１００の記録内容の管理情報(INFO.BAV)、およびサムネイル画像の情報を作成する。これらの情報から構成されるアプリケーションデータベース情報は、AVストリームと同様にして、ECC符号化部２０、変調部２１で処理されて、書き込み部２２へ入力される。書き込み部２２は、制御部２３から出力される制御信号に基づいて、記録媒体１００へデータベースファイルを記録する。
【００４１】
上述したアプリケーションデータベース情報についての詳細は後述する。
【００４２】
このようにして記録媒体１００に記録されたAVストリームファイル（すなわち画像データと音声データのファイル）と、アプリケーションデータベース情報が再生される場合、次のように処理される。まず、制御部２３は、読み出し部２８に対して、記録媒体１００からアプリケーションデータベース情報を読み出すように指示する。そして、読み出し部２８は、記録媒体１００からアプリケーションデータベース情報を読み出し、そのアプリケーションデータベース情報は、復調部２９、ECC復号部３０の処理を経て、制御部２３へ入力される。
【００４３】
制御部２３は、アプリケーションデータベース情報に基づいて、記録媒体１００に記録されているPlayListの一覧（つまりコンテンツの一覧）を、ユーザインタフェイス入出力が接続されている端子２４に出力する。勿論、PlayListの一覧をビデオ出力として端子３２から図示せぬディスプレイに出力することもできる。ユーザが、PlayListの一覧から再生したいPlayList（つまりコンテンツ）を選択すると、再生を指定されたPlayListに関する情報が端子２４のユーザインタフェイス入出力から制御部２３へ入力される。制御部２３は、そのPlayListの再生に必要なAVストリームファイルの読み出しを、読み出し部２８に指示する。読み出し部２８は、その指示に従い、記録媒体１００から対応するAVストリームを読み出し復調部２９に出力する。復調部２９に入力されたAVストリームは、所定の処理が施されることにより復調され、さらにECC復号部３０の処理を経て、ソースデパケッタイザ３１出力される。
【００４４】
PlayListの一覧は、ユーザがPlayListの削除を指示した場合にも表示される。ユーザは表示された一覧の中から具体的に削除するPlayListを指定する。
【００４５】
ソースデパケッタイザ３１は、記録媒体１００から読み出され、所定の処理が施されたアプリケーションフォーマットのAVストリームを、デマルチプレクサ２６に出力できるストリームに変換する。デマルチプレクサ２６は、制御部２３により指定されたAVストリームの再生区間(すなわちPlayItem)を構成するビデオストリーム(V)、オーディオストリーム(A)、およびAV同期等のシステム情報(S)を、AVデコーダ２７に出力する。AVデコーダ２７は、ビデオストリームとオーディオストリームを復号し、再生ビデオ信号と再生オーディオ信号を、それぞれ対応する端子３２と端子３３から出力する。
【００４６】
また、ユーザインタフェイスとしての端子２４から、ランダムアクセス再生や特殊再生を指示する情報が入力された場合、制御部２３は、AVストリームのデータベース(Clip)の内容に基づいて、記録媒体１００からのAVストリームの読み出し位置を決定し、そのAVストリームの読み出しを、読み出し部２８に指示する。例えば、ユーザにより選択されたPlayListを、所定の時刻から再生する場合、制御部２３は、指定された時刻に最も近いタイムスタンプを持つIピクチャからのデータを読み出すように読み出し部２８に指示する。
【００４７】
また、ユーザによって高速再生(Fast-forward playback)が指示された場合、制御部２３は、AVストリームのデータベース(Clip)に基づいて、AVストリームの中のI-ピクチャデータを順次連続して読み出すように読み出し部２８に指示する。
【００４８】
読み出し部２８は、指定されたランダムアクセスポイントからAVストリームのデータを読み出し、読み出されたデータは、後段の各部の処理を経て再生される。
【００４９】
［AVストリームの編集］
【００５０】
次に、ユーザが、記録媒体１００に記録されているAVストリームの編集をする場合を説明する。ユーザが、記録媒体１００に記録されているAVストリームの再生区間を指定して新しい再生経路を作成したい場合、例えば、番組Ａという歌番組から歌手ａの部分を再生し、その後続けて、番組Ｂという歌番組の歌手ａの部分を再生したいといった再生経路を作成したい場合、ユーザインタフェイスとしての端子２４から再生区間の開始点（イン点）と終了点（アウト点）の情報が制御部２３に入力される。制御部２３は、AVストリームの再生区間(PlayItem)をグループ化したもの（PlayList）のデータベースを作成する。
【００５１】
ユーザが、記録媒体１００に記録されているAVストリームの一部を削除したい場合、ユーザインタフェイスとしての端子２４から削除区間のイン点とアウト点の情報が制御部２３に入力される。制御部２３は、必要なAVストリーム部分だけを参照するようにPlayListのデータベースを変更する。また、AVストリームの不必要なストリーム部分を削除するように、書き込み部２２に指示する。
【００５２】
ユーザが、記録媒体１００に記録されているAVストリームの再生区間を指定して新しい再生経路を作成したい場合であり、かつ、それぞれの再生区間をシームレスに接続したい場合について説明する。このような場合、制御部２３は、AVストリームの再生区間(PlayItem)をグループ化したもの（PlayList）のデータベースを作成し、さらに、再生区間の接続点付近のビデオストリームの部分的な再エンコードと再多重化を行う。
【００５３】
まず、端子２４から再生区間のイン点のピクチャの情報と、アウト点のピクチャの情報が制御部２３へ入力される。制御部２３は、読み出し部２８にイン点側ピクチャとアウト点側のピクチャを再生するために必要なデータの読み出しを指示する。そして、読み出し部２８は、記録媒体１００からデータを読み出し、そのデータは、復調部２９、ECC復号部３０、ソースデパケッタイザ３１を経て、デマルチプレクサ２６に出力される。
【００５４】
制御部２３は、デマルチプレクサ２６に入力されたデータを解析して、ビデオストリームの再エンコード方法（picture_coding_typeの変更、再エンコードする符号化ビット量の割り当て）と、再多重化方式を決定し、その方式をAVエンコーダ１５とマルチプレクサ１６に供給する。
【００５５】
次に、デマルチプレクサ２６は、入力されたストリームをビデオストリーム(V)、オーディオストリーム(A)、およびシステム情報(S)に分離する。ビデオストリームは、「AVデコーダ２７に入力されるデータ」と「マルチプレクサ１６に入力されるデータ」がある。前者のデータは、再エンコードするために必要なデータであり、これはAVデコーダ２７で復号され、復号されたピクチャはAVエンコーダ１５で再エンコードされて、ビデオストリームにされる。後者のデータは、再エンコードをしないで、オリジナルのストリームからコピーされるデータである。オーディオストリーム、システム情報については、直接、マルチプレクサ１６に入力される。
【００５６】
マルチプレクサ１６は、制御部２３から入力された情報に基づいて、入力ストリームを多重化し、多重化ストリームを出力する。多重化ストリームは、ECC符号化部２０、変調部２１で処理されて、書き込み部２２に入力される。書き込み部２２は、制御部２３から供給される制御信号に基づいて、記録媒体１００にAVストリームを記録する。
【００５７】
［制御部の機能的構成］
【００５８】
図２は、制御部２３の機能的構成を示すブロック図である。この実施の形態においては、制御部２３は、記録部２０１、取得部２０２、設定部２０３、判定部２０４、削除部２０５、更新部２０６、および検索部２０７を有している。これらの各部は、例えばハードウェアにより構成することもできるし、ソフトウェアにより構成することもできる。
【００５９】
記録部２０１は、各種の情報を記録する。取得部２０２は、各種の情報を取得する。設定部２０３は、所定の情報を設定する。判定部２０４は、判定処理を行う。削除部２０５は、所定の情報を削除する。更新部２０６は、所定の情報を更新する。検索部２０７は、所定の情報を検索する。
【００６０】
［操作の説明］
【００６１】
以下に、アプリケーションデータベース情報や、その情報に基づく再生、編集といった操作に関する説明をする。図３は、アプリケーションフォーマットの構造を説明する図である。アプリケーションフォーマットは、AVストリームの管理のためにPlayListとClipの２つのレイヤをもつ。Volume Informationは、ディスク内のすべてのClipとPlayListの管理をする。ここでは、１つのAVストリームとその付属情報のペアを１つのオブジェクトと考え、それをClipと称する。AVストリームファイルはClip AV stream fileと称し、その付属情報は、Clip Information fileと称する。つまり、Clipは、コンテンツの実態としての実態情報であり、PlayListはその実態情報の再生を指定する再生情報である。
【００６２】
１つのClip AV stream fileは、MPEG2トランスポートストリームをアプリケーションフォーマットによって規定される構造に配置したデータをストアする。一般的に、ファイルは、バイト列として扱われるが、Clip AV stream fileのコンテンツは、時間軸上に展開され、Clipの中のエントリポイントは、主に時間ベースで指定される。所定のClipへのアクセスポイントのタイムスタンプが与えられた時、Clip Information fileは、Clip AV stream fileの中でデータの読み出しを開始すべきアドレス情報を見つけるために役立つ。
【００６３】
［PlayList］
【００６４】
PlayListについて、図４を参照して説明する。PlayListは、Clipの中からユーザが見たい再生区間を選択し、それを簡単に編集することができるようにするために設けられている。１つのPlayListは、Clipの中の再生区間の集まりである。所定のClipの中の１つの再生区間は、PlayItemと呼ばれ、それは、時間軸上のイン点（IN）とアウト点（OUT）の対で表される。従って、PlayListは、複数のPlayItemが集まることにより構成される。
【００６５】
PlayListには、２つのタイプがある。１つは、Real PlayListであり、もう１つは、Virtual PlayListである。Real PlayListは、それが参照しているClipのストリーム部分を共有している。すなわち、Real PlayListは、それの参照しているClipのストリーム部分に相当するデータ容量をディスクの中で占め、Real PlayListが削除された場合、それが参照しているClipのストリーム部分もまたデータが削除される。
【００６６】
Virtual PlayListは、Clipのデータを共有していない。従って、Virtual PlayListが変更または削除されたとしても、Clipの内容には何も変化が生じない。
【００６７】
［Real PlayListの編集］
【００６８】
次に、Real PlayListの編集について説明する。図５（Ａ）は、Real PlayListのクリエイト(create：作成)に関する図であり、AVストリームが新しいClipとして記録される場合、そのClip全体を参照するReal PlayListが新たに作成される操作である。
【００６９】
図５（Ｂ）は、Real PlayListのディバイド(divide：分割)に関する図であり、Real PlayListが所望な点で分けられて、２つのReal PlayListに分割される操作である。この分割という操作は、例えば、１つのPlayListにより管理される１つのクリップ内に、２つの番組が管理されているような場合に、ユーザが１つ１つの番組として登録（記録）し直したいといったようなときに行われる。この操作により、Clipの内容が変更される（Clip自体が分割される）ことはない。
【００７０】
図５（Ｃ）は、Real PlayListのコンバイン(combine：結合)に関する図であり、２つのReal PlayListを結合して、１つの新しいReal PlayListにする操作である。この結合という操作は、例えば、ユーザが２つの番組を１つの番組として登録し直したいといったようなときに行われる。この操作により、Clipが変更される（Clip自体が１つにされる）ことはない。
【００７１】
図６（Ａ）は、Real PlayList全体のデリート(delete：削除)に関する図であり、所定のReal PlayList全体を削除する操作がされた場合、削除されたReal PlayListが参照するClipの、対応するストリーム部分も削除される。
【００７２】
図６（Ｂ）は、Real PlayListの部分的な削除に関する図であり、Real PlayListの所望な部分が削除された場合、対応するPlayItemが、必要なClipのストリーム部分だけを参照するように変更される。そして、Clipの対応するストリーム部分は削除される。
【００７３】
図６（Ｃ）は、Real PlayListのミニマイズ(Minimize：最小化)に関する図であり、Real PlayListに対応するPlayItemを、Virtual PlayListに必要なClipのストリーム部分だけを参照するようにする操作である。Virtual PlayList にとって不必要なClipの、対応するストリーム部分は削除される。
【００７４】
上述したような操作により、Real PlayListが変更されて、そのReal PlayListが参照するClipのストリーム部分が削除された場合、その削除されたClipを使用しているVirtual PlayListが存在し、そのVirtual PlayListにおいて、削除されたClipにより問題が生じる可能性がある。
【００７５】
そのようなことが生じないように、ユーザに、削除という操作に対して、「そのReal PlayListが参照しているClipのストリーム部分を参照しているVirtual PlayListが存在し、もし、そのReal PlayListが削除されると、そのVirtual PlayListもまた削除されることになるが、それでも良いか？」といったメッセージなどを表示させることにより、確認（警告）を促した後に、ユーザの指示により削除の処理を実行、または、キャンセルする。または、Virtual PlayListを削除する代わりに、Real PlayListに対してミニマイズの操作が行われるようにする。
【００７６】
［Virtual PlayListに対する操作］
【００７７】
次にVirtual PlayListに対する操作について説明する。Virtual PlayListに対して操作が行われたとしても、Clipの内容が変更されることはない。図７は、アセンブル(Assemble)編集 (IN-OUT 編集)に関する図であり、ユーザが見たいと所望した再生区間のPlayItemを作り、Virtual PlayListを作成するといった操作である。PlayItem間のシームレス接続が、アプリケーションフォーマットによりサポートされている。
【００７８】
図７（Ａ）に示したように、２つのReal PlayList１，２と、それぞれのReal PlayListに対応するClip１，２が存在している場合に、ユーザがReal PlayList１内の所定の区間（In１乃至Out１までの区間：PlayItem１）を再生区間として指示し、続けて再生する区間として、Real PlayList２内の所定の区間（In２乃至Out２までの区間：PlayItem２）を再生区間として指示したとき、図７（Ｂ）に示すように、PlayItem１とPlayItem２から構成される１つのVirtual PlayListが作成される。
【００７９】
［Virtual PlayList の再編集］
【００８０】
次に、Virtual PlayList の再編集(Re-editing)について説明する。再編集には、VirtualPlayListの中のイン点やアウト点の変更、Virtual PlayListへの新しいPlayItemの挿入(insert)や追加(append)、Virtual PlayListの中のPlayItemの削除などがある。また、Virtual PlayListそのものを削除することもできる。
【００８１】
図８は、Virtual PlayListへのオーディオのアフレコ(Audio dubbing (post recording))に関する図であり、Virtual PlayListへのオーディオのアフレコをサブパスとして登録する操作のことである。このオーディオのアフレコは、アプリケーションフォーマットによりサポートされている。Virtual PlayListのメインパスのAVストリームに、付加的なオーディオストリームが、サブパスとして付加される。
【００８２】
Real PlayListとVirtual PlayListで共通の操作として、図９に示すようなPlayListの再生順序の変更(Moving)がある。この操作は、ディスク(ボリューム)の中でのPlayListの再生順序の変更であり、アプリケーションフォーマットにおいて定義されるTable Of PlayListによってサポートされる。この操作により、Clipの内容が変更されるようなことはない。
【００８３】
［マーク］
【００８４】
次に、マーク（Mark）について説明する。マークは、ClipおよびPlayListの中のハイライトや特徴的な時間を指定するために設けられている。Clipに付加されるマークは、AVストリームの内容に起因する特徴的なシーンを指定する、例えば、シーンチェンジ点などである。PlayListを再生する時、そのPlayListが参照するClipのマークを参照して、使用する事ができる。
【００８５】
PlayListに付加されるマークは、主にユーザによってセットされる、例えば、ブックマークやリジューム点などである。ClipまたはPlayListにマークをセットすることは、マークの時刻を示すタイムスタンプをマークリストに追加することにより行われる。また、マークを削除することは、マークリストの中から、そのマークのタイムスタンプを除去する事である。従って、マークの設定や削除により、AVストリームは何の変更もされない。
【００８６】
［サムネイル］
【００８７】
次にサムネイルについて説明する。サムネイルは、Volume、PlayList、およびClipに付加される静止画である。サムネイルには、２つの種類があり、１つは、内容を表す代表画としてのサムネイルである。これは主としてユーザがカーソル（不図示）などを操作して見たいものを選択するためのメニュー画面で使われるものである。もう１つは、マークが指しているシーンを表す画像である。
【００８８】
Volumeと各Playlistは代表画を持つことができるようにする必要がある。Volumeの代表画は、ディスク（記録媒体１００、以下、記録媒体１００はディスク状のものであるとし、適宜、ディスクと記述する）を記録再生装置１の所定の場所にセットした時に、そのディスクの内容を表す静止画を最初に表示する場合などに用いられることを想定している。Playlistの代表画は、Playlistを選択するメニュー画面（コンテンツの一覧の画面）において、Playlistの内容を表すための静止画として用いられることを想定している。
【００８９】
Playlistの代表画として、Playlistの最初の画像をサムネイル（代表画）にすることが考えられるが、必ずしも再生時刻０の先頭の画像が内容を表す上で最適な画像とは限らない。そこで、Playlistのサムネイルとして、任意の画像をユーザが設定できるようにする。以上２種類のサムネイルをメニューサムネイルと称する。メニューサムネイルは頻繁に表示されるため、ディスクから高速に読み出される必要がある。このため、すべてのメニューサムネイルを１つのファイルに格納することが効率的である。メニューサムネイルは、必ずしもボリューム内の動画から抜き出したピクチャである必要はなく、図１１に示すように、パーソナルコンピュータやデジタルスチルカメラから取り込こまれた画像でもよい。
【００９０】
一方、ClipとPlaylistには、複数個のマークを打てる必要があり、マーク位置の内容を知るためにマーク点の画像を容易に見ることが出来るようにする必要がある。このようなマーク点を表すピクチャをマークサムネイル（Mark Thumbnails）と称する。従って、サムネイルの元となる画像は、外部から取り込んだ画像よりも、マーク点の画像を抜き出したものが主となる。
【００９１】
図１２は、PlayListに付けられるマークと、そのマークサムネイルの関係について示す図であり、図１３は、Clipに付けられるマークと、そのマークサムネイルの関係について示す図である。マークサムネイルは、メニューサムネイルと異なり、Playlistの詳細を表す時に、サブメニュー等で使われるため、短いアクセス時間で読み出されるようなことは要求されない。そのため、サムネイルが必要になる度に、記録再生装置１がファイルを開き、そのファイルの一部を読み出すことで多少時間がかかっても、問題にはならない。
【００９２】
また、ボリューム内に存在するファイル数を減らすために、すべてのマークサムネイルは１つのファイルに格納するのがよい。Playlistはメニューサムネイル１つと複数のマークサムネイルを有することができるが、Clipは直接ユーザが選択する必要性がない（通常、Playlist経由で指定する）ため、メニューサムネイルを設ける必要はない。
【００９３】
図１４は、上述したことを考慮した場合のメニューサムネイル、マークサムネイル、PlayList、およびClipの関係について示した図である。メニューサムネイルファイルには、PlayList毎に設けられたメニューサムネイルがファイルされている。メニューサムネイルファイルには、ディスクに記録されているデータの内容を代表するボリュームサムネイルが含まれている。マークサムネイルファイルは、各PlayList毎と各Clip毎に作成されたサムネイルがファイルされている。
【００９４】
［CPI］
【００９５】
次に、CPI（Characteristic Point Information）について説明する。CPIは、Clipインフォメーションファイルに含まれるデータであり、主に、それはClipへのアクセスポイントのタイムスタンプが与えられた時、Clip AV stream fileの中でデータの読み出しを開始すべきデータアドレスを見つけるために用いられる。本実施の形態では、２種類のCPIを用いる。１つは、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が作成され、ディスクに記録される。
【００９９】
STCInfoは、MPEG2トランスポートストリームをストアしているAVストリームファイルの中にあるSTCの不連続点情報をストアする。AVストリームがSTCの不連続点を持つ場合、そのAVストリームファイルの中で同じ値のPTSが現れるかもしれない。そのため、AVストリーム上のある時刻をPTSベースで指す場合、アクセスポイントのPTSだけではそのポイントを特定するためには不十分である。更に、そのPTSを含むところの連続なSTC区間のインデックスが必要である。連続なSTC区間を、このフォーマットでは STC-sequenceと呼び、そのインデックスをSTC-sequence-idと呼ぶ。STC-sequenceの情報は、Clip Information fileのSTCInfoで定義される。STC-sequence-idは、EP_mapを持つAVストリームファイルで使用するものであり、TU_mapを持つAVストリームファイルではオプションである。
【０１００】
プログラムは、エレメンタリーストリームの集まりであり、これらのストリームの同期再生のために、ただ１つのシステムタイムベースを共有するものである。再生装置（図１の記録再生装置１）にとって、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と呼ぶ。Program-sequenceは、EP_mapを持つAVストリームファイルで使用するものであり、TU_mapを持つAVストリームファイルではオプションである。
【０１０３】
本実施の形態では、セルフエンコードのストリームフォーマット（SESF）を定義する。SESFは、アナログ入力信号を符号化する目的、およびデジタル入力信号（例えばDV）をデコードしてからMPEG2トランスポートストリームに符号化する場合に用いられる。
【０１０４】
SESFは、MPEG-2トランスポートストリームおよびAVストリームについてのエレメンタリーストリームの符号化制限を定義する。記録再生装置１が、SESFストリームをエンコードし、記録する場合、EP_mapが作成され、ディスクに記録される。
【０１０５】
デジタル放送のストリームは、次に示す方式のうちのいずれかが用いられて記録媒体１００に記録される。まず、デジタル放送のストリームをSESFストリームにトランスコーディングする。この場合、記録されたストリームは、SESFに準拠しなければならない。この場合、EP_mapが作成されて、ディスクに記録されなければならない。
【０１０６】
あるいは、デジタル放送のストリームを構成するエレメンタリーストリームを新しいエレメンタリーストリームにトランスコーディングし、そのデジタル放送ストリームの規格化組織が定めるストリームフォーマットに準拠した新しいトランスポートストリームに再多重化する。この場合、EP_mapが作成されて、ディスクに記録されなければならない。
【０１０７】
例えば、入力ストリームがISDB（日本のデジタルBS放送の規格名称）準拠のMPEG-2トランスポートストリームであり、それがHDTVビデオストリームとMPEG AACオーディオストリームを含むとする。HDTVビデオストリームをSDTVビデオストリームにトランスコーディングし、そのSDTVビデオストリームとオリジナルのAACオーディオストリームをTSに再多重化する。SDTVストリームと記録されるトランスポートストリームは、共にISDBフォーマットに準拠しなければならない。
【０１０８】
デジタル放送のストリームが、記録媒体１００に記録される際の他の方式として、入力トランスポートストリームをトランスペアレントに記録する（入力トランスポートストリームを何も変更しないで記録する）場合であり、ストリームのシンタクスを解析することができるときに、EP_mapが作成されてディスクに記録される。
【０１０９】
または、入力トランスポートストリームをトランスペアレントに記録する（入力トランスポートストリームを何も変更しないで記録する）場合であり、ストリームのシンタクスを解析することができないときに、TU_mapが作成されてディスクに記録される。
【０１１０】
［ディレクトリとファイル］
【０１１１】
次にディレクトリとファイルについて説明する。以下、記録再生装置１をDVR（Digital Video Recording）と適宜記述する。図１５はディスク上のディレクトリ構造の一例を示す図である。DVRのディスク上に必要なディレクトリは、図１５に示したように、"BDAV"ディレクトリを含むrootディレクトリ、"PLAYLIST"ディレクトリ、"CLIPINF"ディレクトリ、および"STREAM"ディレクトリである。rootディレクトリの下に、これら以外のディレクトリを作成されるようにしても良いが、それらは、本実施の形態のアプリケーションフォーマットでは、無視されるとする。
【０１１２】
"BDAV"ディレクトリの下には、 DVRアプリケーションフォーマットによって規定される全てのファイルとディレクトリがストアされる。"BDAV"ディレクトリは、３個のディレクトリを含む。"PLAYLIST"ディレクトリの下には、Real PlayListとVirtual PlayListのデータベースファイルが置かれる。このディレクトリは、PlayListが１つもなくても存在する。
【０１１３】
"CLIPINF"ディレクトリの下には、Clipのデータベースが置かれる。このディレクトリも、Clipが１つもなくても存在する。"STREAM"ディレクトリの下には、AVストリームファイルが置かれる。このディレクトリは、AVストリームファイルが１つもなくても存在する。
【０１１４】
"BDAV"ディレクトリは、次に示すファイルをストアする。”INDEX.BAV”ファイルは、PLAYLISTディレクトリの下のすべてのPlayList filesについて、UIAppInfoPlayList()の情報の中で、タイトル一覧の表示に有用な表示情報を抜粋して集めたインデックスファイルである。ここには、追加で、PlayList fileファイル毎のメーカのプライベートデータも格納することができる。”INDEX.BAV”ファイルは、コンテンツを記録するPLAYLISTディレクトリと同じ親のディレクトリであるBDAVディレクトリの下に位置し、かつ、同じ並びに位置する。つまり両者は兄弟のディレクトリである。”INDEX.BAV”ファイルの詳細については図１７を参照して後述する。
【０１１５】
"INFO.BAV"ファイルは、 BDAVディレクトリの下に作られ、アプリケーションレイヤの全体的な情報をストアする。BDAVディレクトリの下には、ただ１つのINFO.BAVがなければならない。ファイル名は、INFO.BAVに固定される。"MENU.THM"ファイルは、メニューサムネイル画像（コンテンツ一覧のサムネイル画像）に関連する情報をストアする。BDAVディレクトリの下には、０または１つのメニューサムネイルがなければならない。ファイル名は、MENU.THMに固定される。メニューサムネイル画像が１つもない場合、このファイルは、存在しなくても良い。
【０１１６】
"PLAYLIST"ディレクトリは、２種類のPlayListファイルをストアするものであり、それらは、Real PlayListとVirtual PlayListである。"xxxxx.RPL" ファイルは、１つのReal PlayListに関連する情報をストアする。それぞれのReal PlayList毎に、１つのファイルが作られる。ファイル名は、"xxxxx.RPL"である。ここで、"xxxxx"は、５個の０乃至９まで数字である。ファイル拡張子は、"RPL"でなければならないとする。
【０１１７】
"yyyyy.VPL"ファイルは、１つのVirtual PlayListに関連する情報をストアする。それぞれのVirtual PlayList毎に、１つのファイルが作られる。ファイル名は、"yyyyy.VPL"である。ここで、"yyyyy"は、５個の０乃至９まで数字である。ファイル拡張子は、"VPL"でなければならないとする。
【０１１８】
"CLIPINF"ディレクトリは、それぞれのAVストリームファイルに対応して、１つのファイルをストアする。"zzzzz.CPI" ファイルは、１つのAVストリームファイル(Clip AV stream file または Bridge-Clip AV stream file)に対応するClip Information fileである。ファイル名は、"zzzzz. CPI"であり、"zzzzz"は、５個の０乃至９までの数字である。ファイル拡張子は、"CPI"でなければならないとする。
【０１１９】
"STREAM"ディレクトリは、AVストリームのファイルをストアする。"zzzzz.MTS"ファイルは、DVRシステムにより扱われるAVストリームファイルである。これは、Clip AV stream fileまたはBridge-Clip AV streamである。ファイル名は、"zzzzz. MTS"であり、"zzzzz"は、５個の０乃至９までの数字である。ファイル拡張子は、"MTS"でなければならないとする。
【０１２０】
［INDEX.BAVファイル］
【０１２１】
次に図１５の”INDEX.BAV”ファイルについて説明する。記録媒体１００に記録されたコンテンツである番組をユーザに選択させるために、番組のタイトル一覧（すなわちPlayList一覧）が生成され、そのうちの表示可能な範囲が抽出され、端子２４からユーザインタフェイス入出力に出力され、表示される。または端子３２から図示せぬディスプレイに出力され、表示される。図１７を参照して後述するように、１つの”INDEX.BAV”ファイルには、タイトル一覧を表示するのに必要な全番組の表示情報がまとめて格納されている。その結果、タイトル一覧を迅速に作成し、表示することが可能になる。
【０１２２】
図１６は、タイトル一覧の表示例を示す図である。画面表示のデザインや表示内容は、記録再生装置１のメーカに依存する。この例においては、次の表示情報が表示されている。
番組のタイトル：朝のニュース。昼のニュース、昼のバラエティ、夜のニュース
夜の歌謡番組
記録日時：１月１日（月）７：００ＡＭ、１月１日（月）０：００ＰＭ
１月１日（月）１：００ＰＭ、１月１日（月）７：００ＰＭ
１月１日（月）９：００ＰＭ
番組の時間長：１時間３０分、１時間００分、２時間００分、
チャンネル番号：１ｃｈ、２ｃｈ、３ｃｈ
チャンネル名：日本放送局、AAA放送局
記録モード：直接記録モード、標準記録モード、長時間記録モード
【０１２３】
タイトル一覧には、ユーザが確実に所望の番組（すなわちタイトル）を選択することができるような情報である表示情報を表示する必要がある。この表示情報は、例えば次のような情報を含むことができる。
１  タイトル（番組）の名称 (PlayList_name)
２  記録日時 (time_zone, record_time_and_date)
３  タイトルの時間長  (PlayList_duration)
４  サムネイル参照情報  (ref_to_menu_thumbnail_index)
５  新着(未視聴)の記録かどうかの印  (is_played_flag)
６  チャンネル番号 (channel_number)
７  チャンネルの名称 (channel_name)
【０１２４】
上記した７個の表示情報のうち、タイトル一覧に特に欠くことのできない情報は、番号１乃至３で示した３個の表示情報である。番号４の表示情報もユーザに迅速に番組の内容を理解させるのに重要である。
【０１２５】
上記７個の表示情報の後のカッコの中に示すフィールドの名称は、ref_to_menu_thumbnail_indexを除き、UIAppInfoPlayList()（後述する図２５）の中に現れるフィールドの名称である。ref_to_menu_thumbnail_indexだけは、UIAppInfoPlayList()に含まれていない。これは、PlayListファイル（後述する図２２）の中のPlayListMark()（後述する図２７）のmark_typeの値が0x01または0x02であり（後述する図２８）、プレイリスト代表画像であることを示すときのref_thumbnail_index（後述する図２７）の値が参照される。つまり、ref_thumbnail_indexの値がref_to_menu_thumbnail_indexの値として設定される。
【０１２６】
図１７は、INDEX.BAVのシンタクスを示す図である。同図に示されるように、”INDEX.BAV”ファイルは以下のような情報を含んでいる。
【０１２７】
type_indicatorのフィールドには、"INDX" のキャラクタ文字が入る。version_numberのフィールドは、このINDEX.BAVファイルのバージョンナンバを示す4個のキャラクタ文字を表す。lengthのフィールドは、このlengthフィールドの直後からINDEX.BAVファイルの最後までのバイト数を示す。number_of_PlayListsの数字は、PLAYLISTディレクトリに記録されているPlayListの数に等しくなければならない。PlayList_file_name[k]のフィールドは、PlayListのファイル名を示す。なお[k]は、for-ループ中でインクリメントされる変数である。index_info_start_address[k]のフィールドは、INDEX.BAVファイルの先頭バイトからの相対バイト数を単位として、index_info[k]()の先頭バイトアドレスを示す。相対バイト数はゼロからカウントされる。
【０１２８】
ref_to_menu_thumbnail_index[k]のフィールドは、PlayList_file_name[k]が示すPlayListを代表するサムネイル画像の情報を示す。ref_to_menu_thumbnail_index[k]フィールドが、”0xFFFF”以外の値の場合、そのPlayListには、PlayListを代表するサムネイル画像が付加されており、そのサムネイル画像は、MENU.THMファイルの中にストアされている。ref_to_menu_thumbnail_index[k]フィールドが、0xFFFF である場合、そのPlayListには、PlayListを代表するサムネイル画像が付加されていない。
【０１２９】
PlayList_character_set[k]のフィールドは、channel_name[k], PlayList_name[k]フィールドに符号化されているキャラクタ文字の符号化方法を示す。is_played_flag[k]のフラグは再生の有無を表す。このフラグが'1'にセットされている場合、PlayList_file_name[k]が示すPlayListは、記録されてから一度は再生されている。このフラグが0にセットされている場合、そのPlayListは、記録されてから一度も再生されたことがない。
【０１３０】
is_virtual_PL[k]のフラグが'1'にセットされている場合、PlayList_file_name[k]が示すPlayListは、Virtual PlayListであることを示す。
【０１３１】
is_shared_Clip[k]のフラグが'1'にセットされている場合、PlayList_file_name[k]が示すPlayListは、次の条件を満たす。
（１）そのPlayListは、Real PlayListである。
（２）かつ、そのReal PlayListのPlayItemsが参照するClipsのうちの少なくとも1つが、他のReal PlayListによって参照されている。
【０１３２】
なお、上記（２）の条件は、それを含むより広い次の条件（３）に代えることができる。
（３）PlayList_file_name[k]が示すPlayListは、記録されてから、かつて、is_shared_Clipの値が1にセットされたことがある（現在は、そのReal PlayListが参照するClipsは、他のReal PlayListによって参照されていないかもしれない）。
【０１３３】
time_zone[k]のフィールドは、record_time_and_date[k]が示す時間情報のタイムゾーン（例えば、日本、英国等）を示す。
【０１３４】
record_time_and_date[k]のフィールドは、PlayList_file_name[k]が示すPlayListが記録された時の日時をストアする56ビットのフィールドである。このフィールドは、年／月／日／時／分／秒について、14個の数字を4ビットのBinary Coded Decimal(BCD)で符号化したものである。例えば、2001/12/23:01:02:03 は、"0x20011223010203"と符号化される。PlayList_duration[k]のフィールドは、 PlayList_file_name[k]が示すPlayListの総再生時間を時間／分／秒の単位で示した24ビットのフィールドである。このフィールドは、6個の数字を4ビットのBinary Coded Decimal(BCD)で符号化したものである。例えば、01:45:30は、"0x014530"と符号化される。
【０１３５】
channel_number[k]のフィールドは、PlayList_file_name[k]が示すPlayListが記録されたときにユーザが選択をした放送のチャネル番号またはサービス番号を示す。このフィールドの値が0xFFFFであるときはこのフィールドは無効である。channel_name_length[k]のフィールドは、 channel_name[k]フィールドの示すチャネル名の長さのバイト数を示す。channel_name[k]: このフィールドは、 PlayList_file_name[k]が示すPlayListが記録されたときにユーザが選択した放送のチャネル名またはサービス名を示す。
【０１３６】
PlayList_name_length[k]のフィールドは、 PlayList_name[k] フィールドの示すPlayList名の長さのバイト数を示す。PlayList_name[k]のフィールドは、PlayList_file_name[k]が示すPlayListののタイトル（番組）名を示す。
【０１３７】
length_mpd[k]のフィールド値がゼロでないとき、mdp[k]()が存在し、その値はmdp[k]()のバイト数を示す。maker_ID[k]のフィールドは、mdp[k]()を記録したレコーダの製造者を示す。maker_idに符号化される値は、このフォーマットのライセンサによって割り当てられる。maker_model_code[k]のフィールドは、mdp[k]()を記録したレコーダのモデル番号を示す。maker_model_code[k]に符号化される値は、このフォーマットのライセンスを受けた製造者によって決められる。maker_private_data[k]のフィールドは、メーカプライベートデータがストアされる領域である。ここには、INDEX.BAVファイルで標準化された上記の情報のほかに、メーカ独自の記録情報を格納してよい。例えば、記録モード（標準記録モードや長時間記録モードといった情報）や番組のジャンル、などの情報を記録する。
【０１３８】
これらのlength_mpd[k]，maker_ID[k]，maker_model_code[k]，maker_private_data[k]は、メーカ独自情報を構成する。
【０１３９】
X, Yは、任意の正の整数である。padding_wordの値は何でも良い。
【０１４０】
［INFO.BAV］
【０１４１】
図１８は、"INFO.BAV"ファイルのシンタクスを示す図である。" INFO.BAV "ファイルは、３個のオブジェクトから構成され、それらは、UIAppInfoBDAV()、TableOfPlayLists()、およびExtensionData()である。
【０１４２】
図１８に示したINFO.BAVのシンタクスについて説明する。
【０１４３】
type_indicatorのフィールドには、" INFO " のキャラクタ文字が入る。version_numberのフィールドは、 このINFO.BAVファイルのバージョンナンバを示す4個のキャラクタ文字を表す。TableOfPlayLists_Start_addressのフィールドは、INFO.BAVファイルの先頭のバイトからの相対バイト数を単位として、TableOfPlayList()の先頭アドレスを示す。相対バイト数はゼロからカウントされる。
【０１４４】
ExtensionData_Start_addressのフィールドは、INFO.BAVファイルの先頭のバイトからの相対バイト数を単位として、ExtensionData ()の先頭アドレスを示す。相対バイト数はゼロからカウントされる。padding_word（パディングワード）は、info.dvrのシンタクスに従って挿入される。Ｎ１とＮ２は、ゼロまたは任意の正の整数である。それぞれのパディングワードは、任意の値を取るようにしても良い。
【０１４５】
TableOfPlayLists()のフィールドは、PlayList(Real PlayListとVirtual PlayList)のファイル名をストアする。TableOfPlayLists()は、PlayListのデフォルトの再生順序を示す。
【０１４６】
ExtensionData()のフィールドは、メーカ各社の特別なアプリケーションのためのプライベートデータか、または、BDAV規格により定義される拡張データベースを含む。レコーダーメーカは、各社の特別なアプリケーションのためにExtensionData()の中にメーカのプライベートデータを挿入してもよい。各メーカのプライベートデータは、それを定義したメーカを識別するために標準化されたメーカ識別子を持つ。また、INFO.BAVファイルのExtensionData()には、BDAV規格により定義される拡張データベースとして、後述するPL_to_Clips_table()を記録する。
【０１４７】
［ExtensionData()］
【０１４８】
図１９は、ExtensionData()のシンタクスを示す図である。図１９に示したExtensionData()のシンタクスを以下に説明する。
【０１４９】
lengthのフィールドは、このlengthフィールドの直後からExtensionData()の最後までのバイト数を示す。data_block_start_addressのフィールドは、ExtensionData()の先頭のバイトからの相対バイト数を単位として、data_block()の先頭バイトアドレスを示す。相対バイト数はゼロからカウントされる。
【０１５０】
number_of_ext_data_entriesのフィールドは、ExtensionData()の中に含まれているext_data_entry()のエントリ数を示す。ID1: ID1の値0x0000 〜 0x00FFは、BDAV規格により定義される拡張データベースの識別のために使われる。ID1の値が0x0000 〜 0x00FFの範囲外であるとき、それは、メーカプライベートデータを作成したレコーダの製造メーカを示す。メーカ識別の値は、このBDAVフォーマットのライセンサによって指定される。ID2: ID1の値が0x0000 〜 0x00FFの場合、ID2は、BDAV規格により定義される拡張データベースの識別のために使われる。ID1の値が0x0000 〜 0x00FFの範囲外であるとき、ID2は、そのメーカプライベートデータを作成したレコーダのモデルナンバーコードを示す。この場合、ID2に符号化される値は、このフォーマットのライセンスを受けた製造メーカによって決められる。PL_to_Clips_table()を識別するためのID1とID2の値は、それぞれ0x00F0と0x0001である。
【０１５１】
ext_data_start_addressのフィールドは、ExtensionData()の先頭のバイトからの相対バイト数を単位として、extension dataが開始するバイトアドレスを示す。相対バイト数はゼロからカウントされる。ext_data_length: このフィールドは、extension dataのバイト単位でデータの大きさを示す。padding_wordの値は何でもよい。
【０１５２】
図２０は、ExtensionData()のシンタクスの例を示す図であり、ExtensionData()の中に記録されるPL_to_Clips_table()のイメージを示す。同図に示されるように、PL_to_Clips_table()はExtensionData()の中に記録される。
【０１５３】
data_block_start_addressは、ExtensionData()の中でのdata_block()の先頭バイトのアドレスを示す。この例では、ExtensionData()の中にextension dataとしてのPL_to_Clips_table()を1個記録するだけなので、number_of_ext_data_entriesには１がセットされている。PL_to_Clips_table()を識別するためのID1とID2の値は、それぞれ0x00F0と0x0001とされている。
【０１５４】
ext_data_start_addressは、ExtensionData()の中でのPL_to_Clips_table()の先頭バイトのアドレスを示す（この例ではdata_block()の先頭バイトのアドレスと同じ値である）。ext_data_lengthは、PL_to_Clips_table()のバイト長を示す。data_block()の中に、PL_to_Clips_table()が記録される。
【０１５５】
［PL_to_Clips_table()］
【０１５６】
INFO.BAVファイルのExtensionData()に記録されるPL_to_Clips_table()のシンタクスを図２１に示す。PL_to_Clips_table()は、PLAYLISTディレクトリの下に記録されているすべてのPlayListファイルについて、個々のPlayListファイルが参照するClip Information file(s)が、リスト化されたテーブルである。
【０１５７】
lengthのフィールドは、このlengthフィールドの直後からPL_to_Clips_table()の最後までのバイト数を示す。number_of_PlayListsのフィールドの数字は、PLAYLISTディレクトリに記録されているPlayListの数に等しくなければならない。PlayList_file_name[k]のフィールドは、PlayListのファイル名を示す。
【０１５８】
Clips_table_start_address[k]のフィールドは、PL_to_Clips_table()の先頭バイトからの相対バイト数を単位として、clips_table[k]()の先頭バイトアドレスを示す。相対バイト数はゼロからカウントされる。number_of_PlayItems[k]のフィールドは、PlayList_file_name[k]が示すPlayListの中にあるPlayItemの数を示す。
【０１５９】
Clip_Information_file_name[k][i]のフィールドは、PlayList_file_name[k]が示すPlayListの中にあるPlayItemsが参照するClip Information fileのファイル名を示す。padding_wordの値は何でも良い。
【０１６０】
［Real PlayList fileとVirtual PlayList file］
【０１６１】
次に、Real PlayList fileとVirtual PlayList fileについて、すなわち、図１５の"PLAYLIST"ディレクトリのxxxxx.RPLとyyyyy.VPLについて説明する。図２２は、xxxxx.RPL（Real PlayList）、または、yyyyy.VPL（Virtual PlayList）のシンタクスを示す図である。xxxxx.RPLとyyyyy.VPLは、同一のシンタクス構成をもつ。xxxxx.RPLとyyyyy.VPLは、それぞれ、３個のオブジェクトから構成され、それらは、PlayList()、PlayListMark()、およびMakerPrivateData()である。
【０１６２】
PlayListMark_Start_addressは、PlayListファイルの先頭のバイトからの相対バイト数を単位として、PlayListMark()の先頭アドレスを示す。相対バイト数はゼロからカウントされる。
【０１６３】
MakerPrivateData_Start_addressは、PlayListファイルの先頭のバイトからの相対バイト数を単位として、MakerPrivateData()の先頭アドレスを示す。相対バイト数はゼロからカウントされる。
【０１６４】
padding_word（パディングワード）は、PlayListファイルのシンタクスにしたがって挿入され、Ｎ１とＮ２は、ゼロまたは任意の正の整数である。それぞれのパディングワードは、任意の値を取るようにしても良い。
【０１６５】
ここで、既に、簡便に説明したが、PlayListについてさらに説明する。記録媒体１００内にあるすべてのReal PlayListによって、Bridge-Clipを除くすべてのClipの中の再生区間が参照されていなければならない。かつ、２つ以上のReal PlayListが、それらのPlayItemで示される再生区間を同一のClipの中でオーバーラップさせてはならない。
【０１６６】
図２３を参照してさらに説明するに、図２３（Ａ）に示したように、全てのClipは、対応するReal PlayListが存在する。この規則は、図２３（Ｂ）に示したように、編集作業が行われた後においても守られる。従って、全てのClipは、どれかしらのReal PlayListを参照することにより、必ず視聴することが可能である。
【０１６７】
図２３（Ｃ）に示したように、Virtual PlayListの再生区間は、Real PlayListの再生区間またはBridge-Clipの再生区間の中に含まれていなければならない。どのVirtual PlayListにも参照されないBridge-Clipがディスクの中に存在してはならない。
【０１６８】
Real PlayListは、PlayItemのリストを含むが、SubPlayItemを含んではならない。VirtualPlayListは、PlayItemのリストを含み、PlayList()の中に示されるCPI_typeがEP_map typeであり、かつPlayList_typeが0（ビデオとオーディオを含むPlayList）である場合、Virtual PlayListは、ひとつのSubPlayItemを含む事ができる。本実施の形態におけるPlayList()では、SubPlayItemはオーディオのアフレコの目的にだけに使用される。そして、１つのVirtual PlayListが持つSubPlayItemの数は、０または１でなければならない。
【０１６９】
［PlayListのシンタクス］
【０１７０】
次に、PlayListのシンタクスについて説明する。図２４は、PlayListのシンタクスを示す図である。図２４に示したPlayListのシンタクスを説明するに、version_numberは、このPlayList()のバージョンナンバを示す４個のキャラクタ文字である。version_numberは、ISO 646に従って、"0045"と符号化されなければならない。lengthは、このlengthフィールドの直後からPlayList()の最後までのPlayList()のバイト数を示す３２ビットの符号なし整数である。PlayList_typeは、このPlayListのタイプを示す８ビットのフィールドである。
【０１７１】
CPI_typeは、１ビットのフラグであり、PlayItem()およびSubPlayItem()によって参照されるClipのCPI_typeの値を示す。１つのPlayListによって参照される全てのClipは、それらのCPI()の中に定義されるCPI_typeの値が同じでなければならない。number_of_PlayItemsは、PlayListの中にあるPlayItemの数を示す１６ビットのフィールドである。
【０１７２】
所定のPlayItem()に対応するPlayItem_idは、PlayItem()を含むforループの中で、そのPlayItem()の現れる順番により定義される。PlayItem_idは、０から開始される。number_of_SubPlayItemsは、PlayListの中にあるSubPlayItemの数を示す１６ビットのフィールドである。この値は、０または１である。付加的なオーディオストリームのパス(オーディオストリームパス）は、サブパスの一種である。
【０１７３】
［UIAppInfoPlayList］
【０１７４】
次に、図２４に示したPlayListのシンタクスのUIAppInfoPlayListについて説明する。UIAppInfoPlayListは、PlayListについてのユーザインタフェイスアプリケーションのパラメータをストアする。図２５は、UIAppInfoPlayListのシンタクスを示す図である。図２５に示したUIAppInfoPlayListのシンタクスを以下に説明する。
【０１７５】
PlayList_character_setのフィールドは、channel_name, PlayList_nameフィールドに符号化されているキャラクタ文字の符号化方法を示す。is_played_flagのフィールドは、このPlayListの再生の有無を表す。このフラグが'1'にセットされている場合、このPlayListは、記録されてから一度は再生されている。このフラグが0にセットされている場合、そのPlayListは、記録されてから一度も再生されたことがない。time_zoneのフィールドは、record_time_and_dateが示す時間情報のタイムゾーンを示す。
【０１７６】
record_time_and_dateのフィールドは、このPlayListが記録された時の日時をストアする56ビットのフィールドである。このフィールドは、年／月／日／時／分／秒について、14個の数字を4ビットのBinary Coded Decimal(BCD)で符号化したものである。例えば、2001/12/23:01:02:03 は、"0x20011223010203"と符号化される。PlayList_durationのフィールドは、このPlayListの総再生時間を時間／分／秒の単位で示した24ビットのフィールドである。このフィールドは、6個の数字を4ビットのBinary Coded Decimal(BCD)で符号化したものである。例えば、01:45:30は、"0x014530"と符号化される。
【０１７７】
channel_numberのフィールドは、このPlayListが記録されたときにユーザが選択をした放送のチャネル番号またはサービス番号を示す。このフィールドの値が0xFFFFであるときはこのフィールドは無効である。channel_name_lengthのフィールドは、 channel_nameフィールドの示すチャネル名の長さのバイト数を示す。channel_nameのフィールドは、このPlayListが記録されたときにユーザが選択をした放送のチャネル名またはサービス名を示す。PlayList_name_lengthのフィールドは、このPlayList名の長さのバイト数を示す。PlayList_nameのフィールドは、このPlayListのタイトル（番組）名を示す。
【０１７８】
［PlayItemのシンタクス］
【０１７９】
図２６は、PlayItemのシンタクスを示す図である。図２６に示したPlayItemのシンタクスを説明するに、Clip_Information_file_nameのフィールドは、Clip Information fileのファイル名を示す。このClip Information fileのClipInfo()において定義されるClip_stream_typeは、Clip AV streamを示していなければならない。
【０１８０】
STC_sequence_idは、８ビットのフィールドであり、PlayItemが参照するSTC連続区間のSTC_sequence_idを示す。PlayList()の中で指定されるCPI_typeがTU_map typeである場合、この８ビットフィールドは何も意味を持たず、０にセットされる。IN_timeは、３２ビットフィールドであり、PlayItemの再生開始時刻をストアする。IN_timeのセマンティクスは、PlayList()において定義されるCPI_typeによって異なる。
【０１８１】
OUT_timeは、３２ビットフィールドであり、PlayItemの再生終了時刻をストアする。OUT_timeのセマンティクスは、PlayList()において定義されるCPI_typeによって異なる。
【０１８２】
Connection_Conditionは、先行するPlayItemと、現在のPlayItemとの間の接続状態を示す２ビットのフィールドである。
【０１８３】
［PlayListMark()］
【０１８４】
次に、図２２に示したxxxxx.RPLとyyyyy.VPLのシンタクス内のPlayListMark()について説明する。PlayListについてのマーク情報は、このPlayListMarkにストアされる。図２７は、PlayListMarkのシンタクスを示す図である。図２７に示したPlayListMarkのシンタクスについて説明するに、version_numberは、このPlayListMark()のバージョンナンバを示す４個のキャラクタ文字である。version_numberは、ISO 646に従って、"0045"と符号化されなければならない。
【０１８５】
lengthは、このlengthフィールドの直後からPlayListMark()の最後までのPlayListMark()のバイト数を示す３２ビットの符号なし整数である。number_of_PlayList_marksは、PlayListMarkの中にストアされているマークの個数を示す１６ビットの符号なし整数である。number_of_PlayList_marks は、０であってもよい。mark_typeは、マークのタイプを示す８ビットのフィールドである。
【０１８６】
mark_time_stampの32ビットフィールドは、マークが指定されたポイントを示すタイムスタンプをストアする。mark_time_stampのセマンティクスは、PlayList()において定義されるCPI_typeによって異なる。PlayItem_idは、マークが置かれているところのPlayItemを指定する８ビットのフィールドである。所定のPlayItemに対応するPlayItem_idの値は、PlayList()において定義される（図２４参照）。
【０１８７】
character_setの８ビットのフィールドは、mark_nameフィールドに符号化されているキャラクタ文字の符号化方法を示す。name_lengthの８ビットフィールドは、mark_nameフィールドの中に示されるマーク名のバイト長を示す。mark_nameのフィールドは、マークの名称を示す。このフィールドの中の左からname_length数のバイト数が、有効なキャラクタ文字であり、それはマークの名称を示す。mark_nameフィールドの中で、それら有効なキャラクタ文字の後の値は、どのような値が設定されても良い。
【０１８８】
ref_thumbnail_indexのフィールドは、マークに付加されるサムネイル画像の情報を示す。ref_thumbnail_indexフィールドが、0xFFFFでない値の場合、そのマークにはサムネイル画像が付加されており、そのサムネイル画像は、MENU.THMファイルの中にストアされている。その画像は、MENU.THMファイルの中でref_thumbnail_indexの値を用いて参照される。ref_thumbnail_indexフィールドが、0xFFFF である場合、そのマークにはサムネイル画像が付加されていない事を示す。
【０１８９】
図２８は、mark_typeのテーブルを示す図である。同図に示されるように、mark_typeの値によってマークのタイプが規定されている。mark_typeの値が0x01である場合、そのマークは、プレイリストの代表画像であり、その画像はPlayListが参照するビデオのピクチャから選択されたものである。
【０１９０】
この場合、mark_time_stamp（図２７）は、PlayListが参照するビデオの中のピクチャのPresentation time stampを示す。ref_thumbnail_index（図２７）の値が、xFFFF以外のとき、後述する図２９のMENU.THMの中に、サムネイル画像がストアされる。ref_thumbnail_indexの値が、xFFFFのとき、図２９のMENU.THMの中に、サムネイル画像がストアされていない。この場合、プレーヤは、PlayListが参照するビデオの中のPresentation time stampによって指定されるピクチャをデコードしてよい。PlayListMark()のマークタイプの値0x01または0x02の数は、０または１である。
【０１９１】
mark_typeの値が0x02である場合、そのマークは、プレイリスト代表画像であり、その画像は、PLayListが参照するビデオのピクチャから選択されたものではない。
【０１９２】
この場合、ref_thumbnail_indexの値は、0xFFFF以外でなければならない。図２９のMENU.THMの中に、サムネイル画像がストアされる。mark_time_stampとPlayItem_idにはゼロをセットする。PlayListMark()のマークタイプの値0x01または0x02の数は、０または１である。
【０１９３】
mark_typeの値が0x03である場合、そのマークは、Resume-markである。これは再生リジュームポイントである。PlayListmark()において定義される再生リジュームポイントの数は、０または１でなければならない。
【０１９４】
mark_typeの値が0x04である場合、そのマークは、PlayListの再生エントリポイントである。このマークは、ユーザがセットすることができ、例えばお気に入りのシーンの開始点を指定するマークに使う。
【０１９５】
mark_typeの値が0x06である場合、そのマークは、スキップマークポイントである。このポイントからプログラムの最後まで、プレーヤはプログラムをスキップする。PlayListMark()において定義されるスキップマークポイントの数は、０または１でなければならない。
【０１９６】
［MENU.THM］
【０１９７】
図２９は、図１５のMENU.THM（またはMARK.THM）のシンタクスを示す図であり、 MENU.THMファイルはThumbnail()を有する。
【０１９８】
図３０は、図２９に示したMENU.THM （またはMARK.THM）のシンタクス内のThumbnail()のシンタクスを示す図である。図２９に示したThumbnail()のシンタクスについて説明するに、version_numberは、このThumbnail()のバージョンナンバを示す４個のキャラクタ文字である。version_numberは、ISO 646に従って、"0045"と符号化されなければならない。
【０１９９】
lengthは、このlengthフィールドの直後からThumbnail()の最後までのThumbnail()のバイト数を示す３２ビットの符号なし整数である。tn_blocks_start_addressは、Thumbnail()の先頭のバイトからの相対バイト数を単位として、最初のtn_blockの先頭バイトアドレスを示す３２ビットの符号なし整数である。相対バイト数はゼロからカウントされる。number_of_thumbnailsは、Thumbnail()の中に含まれているサムネイル画像のエントリ数を与える１６ビットの符号なし整数である。
【０２００】
tn_block_sizeは、1024バイトを単位として、１つのtn_blockの大きさを与える16ビットの符号なし整数である。例えば、tn_block_size＝１ならば、それは１つのtn_blockの大きさが1024バイトであることを示す。number_of_tn_blocksは、このThumbnail()中のtn_blockのエントリ数を表す１６ビットの符号なし整数である。thumbnail_indexは、このthumbnail_indexフィールドから始まるforループ１回分のサムネイル情報で表されるサムネイル画像のインデクス番号を表す１６ビットの符号なし整数である。thumbnail_index として、0xFFFFという値を使用してはならない。thumbnail_index はUIAppInfoVolume()、UIAppInfoPlayList()、 PlayListMark()、およびClipMark()の中のref_thumbnail_indexによって参照される。
【０２０１】
thumbnail_picture_formatは、サムネイル画像のピクチャフォーマットを表す8ビットの符号なし整数である。
【０２０２】
picture_data_sizeは、サムネイル画像のバイト長をバイト単位で示す３２ビットの符号なし整数である。start_tn_block_numberは、サムネイル画像のデータが始まるtn_blockのtn_block番号を表す１６ビットの符号なし整数である。サムネイル画像データの先頭は、tn_blockの先頭と一致していなければならない。tn_block番号は、０から始まり、tn_blockのfor-ループ中の変数ｋの値に関係する。
【０２０３】
x_picture_lengthは、サムネイル画像のフレーム画枠の水平方向のピクセル数を表す１６ビットの符号なし整数である。y_picture_lengthは、サムネイル画像のフレーム画枠の垂直方向のピクセル数を表す１６ビットの符号なし整数である。tn_blockは、 サムネイル画像がストアされる領域である。Thumbnail()の中のすべてのtn_blockは、同じサイズ（固定長）であり、その大きさはtn_block_sizeによって定義される。
【０２０４】
［AVストリームファイル］
【０２０５】
次に、AVストリームファイルについて説明する。AVストリームファイルは、"STREAM"ディレクトリ（図１５）のMTSファイルにストアされる。AVストリームファイルには、２つのタイプがあり、それらは、Clip AVストリームとBridge-Clip AVストリームファイルである。両方のAVストリーム共に、DVR MPEG-2トランスポートストリームファイルの構造でなければならない。
【０２０６】
［記録処理１］
【０２０７】
次に図３１乃至図３４を参照して、is_shared_Clipの記録媒体１００への記録処理について説明する。図３１は、記録処理を説明するフローチャートである。図３２乃至図３４は、Real PlayListのクリエイト、Real PlayListのデバイド、Real PlayListのコンバインを示す図である。この処理は、ユーザの指示に基づきコンテンツとしての番組を記録媒体１００に記録したり、編集したりするとき、付随して実行される。
【０２０８】
ステップＳ１１において判定部２０４は、Real PlayListがクリエイトされたかを判定する。例えば新たなコンテンツを記録する場合、Real PlayListがクリエイトされる。
【０２０９】
Real PlayListがクリエイトされた場合、ステップＳ１６において設定部２０３は、Real PlayListのis_shared_Clipに０を設定する。例えば新たなコンテンツを記録する場合、Real PlayListのis_shared_Clipに０が設定される。
【０２１０】
例えば図３２に示されるように、Clip１とClip２を記録媒体１００に記録するため、それぞれに対応するReal PlayList１とReal PlayList２がクリエイトされた場合、それぞれのis_shared_Clipには０が設定される。
【０２１１】
Real PlayListがクリエイトされない場合、ステップＳ１２において判定部２０４は、Real PlayListのis_shared_Clipは０であるかを判定する。例えば、記録済みのコンテンツを編集する場合、記録済みのReal PlayListが編集される。この場合、記録済みのReal PlayList、つまり編集対象のReal PlayListのis_shared_Clipの値が判定される。
【０２１２】
編集対象のReal PlayListのis_shared_Clipが０である場合、ステップＳ１３において判定部２０４は、現在の編集がデバイド編集であるかを判定する。現在の編集がデバイド編集である場合、ステップＳ１４において設定部２０３は、Real PlayListのis_shared_Clipに１を設定する。
【０２１３】
例えば図３３に示されるように、Clip１に対応するReal PlayList１を所定のデバイドポイントでReal PlayList１とReal PlayList２の２つデバイドする場合、編集後のReal PlayList１とReal PlayList２のis_shared_Clipには、それぞれ１が設定される。なお、この操作により、Clipは何も変化しない。
【０２１４】
これに対して、現在の編集がデバイド編集ではない場合、ステップＳ１６において設定部２０３は、Real PlayListのis_shared_Clipに０を設定する。
【０２１５】
例えば図３４に示されるように、それぞれClip１とClip２に対応するReal PlayList１とReal PlayList２をコンバインする場合、編集後のReal PlayList１のis_shared_Clipには０が設定される。なお、この操作により、Clipは何も変化しない。
【０２１６】
一方、ステップＳ１２において編集対象のReal PlayListのis_shared_Clipは０ではない、すなわち１であると判定された場合、ステップＳ１５の判定処理が実行される。ステップＳ１５において判定部２０４は、Clipが他のReal PlayListにより参照されているかを判定する。具体的には、編集後のReal PlayListが参照するClipが、他のis_shared_Clip＝１のReal PlayListにより参照されているかが判定される。
【０２１７】
編集後のReal PlayListが参照するClipが、他のis_shared_Clip＝１のReal PlayListにより参照されている場合、ステップＳ１４の処理が実行される。つまり、編集後のReal PlayListのis_shared_Clipに１が設定される。編集後のReal PlayListが参照するClipが、他のis_shared_Clip＝１のReal PlayListにより参照されていない場合、ステップＳ１６の処理が実行される。つまり、編集後のReal PlayListのis_shared_Clipに０が設定される。
【０２１８】
ステップＳ１４，Ｓ１６の処理の後、ステップＳ１７において更新部２０６は、記録対象のReal PlayListのINDEX.BAVの情報を更新する。つまり、図１７を参照して説明したように、is_shared_Clipは図１７のINDEX.BAVに含まれている。そこで、INDEX.BAVのis_shared_Clipが、ステップＳ１４，Ｓ１６の処理で設定された値に更新される。勿論、その他変更された情報も更新される。
【０２１９】
ステップＳ１８において記録部２０１は、Real PlayListとINDEX.BAVを記録する。すなわちステップＳ１７でis_shared_Clipと各種の情報が更新されたINDEX.BAVが記録媒体１００に記録される。
【０２２０】
図３１の記録処理において、is_shared_Clipフラグが'１'にセットされている場合におけるPlayListが満たす条件は、上述した（２）である。すなわち、is_shared_Clip＝１であるReal PlayListは、そのPlayItemsが参照するClipsのうちの少なくとも1つが、他のReal PlayListによって参照されているPlayListである。
【０２２１】
is_shared_Clipの意味を、上述の（３）のように規定する場合の記録処理を図４３を参照して後述するが、その場合に比べて、この図３１の記録処理では、is_shared_Clip＝１のPlayListが少なくて済む。その結果、この図３１の記録処理では、すべてのis_shared_Clip＝１のPlayListを読み出す時間は、is_shared_Clipの意味を、上述の（３）のように規定する図４３の記録処理の場合に比べて短くて済む。
【０２２２】
［コンテンツ削除処理］
【０２２３】
次に図３５乃至図３７を参照して、コンテンツの削除処理を説明する。図３５は、削除処理を説明するフローチャートである。図３６は、Real PlayListの全体の削除を示す図であり、図３７は、Real PlayListの一部分の削除を示す図である。
【０２２４】
ステップＳ５１において取得部２０２は、INDEX.BAV を取得する。つまり、図３１のステップＳ１８で記録媒体１００に記録されたINDEX.BAV ファイル（図１７）が読み出される。
【０２２５】
ステップＳ５２において取得部２０２は、Real PlayListの削除の指示を取得する。つまり、ユーザがコンテンツの削除を指示するとき、コンテンツの一覧（図１６）が表示される。ユーザはこの一覧の中から削除対象とするコンテンツ（PlayList）を指定する。この指定されたReal PlayListが取得される。
【０２２６】
ステップＳ５３において取得部２０２は、is_shared_Clipの値を取得する。つまり、ステップＳ５１で読み出されたINDEX.BAVに含まれるis_shared_Clipの中から、削除対象のReal PlayListのis_shared_Clipの値が取得される。
【０２２７】
ステップＳ５４において判定部２０４は、ステップＳ５３において取得された削除対象のReal PlayListのis_shared_Clip の値が１であるかを判定する。
【０２２８】
削除対象のReal PlayListのis_shared_Clip が１ではない場合、すなわち０である場合、ステップＳ５８において削除部２０５は、Real PlayListと、それが参照するClipを削除する。つまりこの場合、削除対象のReal PlayListが参照するClipは、他のReal PalyListにより参照されていないので、削除対象のReal PlayListとそれが参照するClipが削除される。
【０２２９】
例えば図３６に示されるように、Real PlayListがClipを参照している場合に、そのReal PlayListの全体の削除が指示された場合、Real PlayListとそれにより参照されているClipが削除される。
【０２３０】
また例えば図３７に示されるように、Real PlayListがClipを参照している場合に、そのReal PlayListの一部の削除が指示された場合、Real PlayListの削除が指示された部分が削除される。また、Clipの、削除が指示された部分により参照されている部分が削除される。is_shared_Clipの値が０のReal PlayListの部分削除の編集をしたとき、編集後のReal PlayListのis_shared_Clipの値もまた０とされる（上述した図３１のステップＳ１２，Ｓ１３，Ｓ１６の処理）。
【０２３１】
実用的には、is_shared_Clip が１であるReal PlayListより、is_shared_Clip が０であるReal PlayListの方がその数は圧倒的に多い。つまり、自身がが参照するClipが、他のReal PalyListにより参照されているReal PlayListより、参照されていないReal PalyListの方が多い。そこで、is_shared_Clip が０であるReal PlayListを直ちに削除することで、削除処理の平均の処理時間を短くすることが可能になる。
【０２３２】
これに対して、ステップＳ５４で削除対象のReal PlayList のis_shared_Clip が１であると判定された場合、削除対象のReal PlayListが参照する少なくとも１つのClipのは、他のReal PalyListにより参照されている。そこでステップＳ５５において取得部２０２は、is_shared_Clip ＝１であるすべてのReal PlayListを取得する。つまり、図１７のINDEX.BAVからis_shared_Clip ＝１であるすべてのReal PlayListが読み出される。
【０２３３】
ステップＳ５６で検索部２０７は、削除可能なClipを検索する。つまり、ステップＳ５５で取得されたis_shared_Clip ＝１であるReal PlayListの中から、削除可能なClipが検索される。ここで削除可能なClipとは、削除対象のReal PlayListが参照するClipのうち、is_shared_Clip ＝１である他のReal PalyListにより参照されていないClipである。
【０２３４】
検索対象とされるReal PlayListは、ステップＳ５５の処理で、is_shared_Clip ＝１であるReal PalyListに限定されている。従って、is_shared_Clip フラグが存在しない場合に比べて、迅速な検索、すなわち迅速な削除が可能となる。
【０２３５】
ステップＳ５７において削除部２０５は、Real PlayListと、削除可能なClipを削除する。つまり、削除対象のReal PlayListと、ステップＳ５６で検索された削除可能なClipが削除される。
【０２３６】
ステップＳ５７，Ｓ５８の処理の後、ステップＳ５９において削除部２０５は、削除したClipを参照するVirtual PlayListを削除する。つまり、削除したClipを参照するVirtual PlayListは最早存在意義がない。また、Virtual PlayListは他のVirtual PlayList とClipを共有していない。そこで、Virtual PlayListが存在する場合、それは直ちに削除される。
【０２３７】
ステップＳ６０において更新部２０６は、INDEX.BAVを更新する。すなわち、ステップＳ５７乃至Ｓ５９の削除処理に対応するようにINDEX.BAVが更新される。なお、この削除処理に伴うis_shared_Clip等の情報は、上述した図３１のステップＳ１７の処理で更新される。
【０２３８】
次にステップＳ６１において記録部２０１は、INDEX.BAVを記録する。つまり、ステップＳ６０で更新されたINDEX.BAVファイルが記録媒体１００に記録される。
【０２３９】
［編集の例１］
【０２４０】
次に、図３８乃至図４２を参照して、Real PlayListの編集について説明する。図３８乃至図４２は、Real PlayListの編集を示す図である。
【０２４１】
図３８は、複数のClip１乃至Clip４に対応するReal PlayList１乃至Real PlayList４をクリエイトによって作成した時の例を示す。図３２に示される場合と同様に、すべてのReal PlayList１乃至Real PlayList４のis_shared_Clipの値は０である。
【０２４２】
図３９は、複数回の編集後の記録媒体１００上のReal PlayListの例を示す。この例ではReal PlayList１のis_shared_Clipの値が０であり、Real PlayList２乃至Real PlayList４のis_shared_Clipの値が１である。Real PlayList１は、Clip１を参照している。Real PlayList２は、Clip２の一部を参照している。Real PlayList３は、Clip２の、Real PlayList２が参照していない部分と、Clip３の一部を参照している。Real PlayList４は、Clip３の、Real PlayList３が参照していない部分と、Clip４を参照している。
【０２４３】
図４０は、図３９のReal PlayList１を削除した後の記録媒体１００上のReal PlayListを示す。Real PlayList１のis_shared_Clipは０であるので、Real PlayList１と、それが参照するClip１(Clip Information fileと対応するClip AV stream file)を削除することができる（上述した図３５のステップＳ５８の処理）。
【０２４４】
図４１は、図４０の状態からReal PlayList４を削除した後の記録媒体１００上のReal PlayListを示す。図４０のReal PlayList４のis_shared_Clipは１であるので、INDEX.BAVの中のis_shared_Clip＝１であるすべてのPlayList filesが記録媒体１００から読み出される（上述した図３５のステップＳ５５の処理）。そして、削除対象のReal PlayList４が参照するClip４が、他のis_shared_Clip＝１のReal PlayListから参照されているかが調べられる（上述した図３５のステップＳ５６の処理）。
【０２４５】
Real PlayList４が参照するClip３は、is_shared_Clip＝１の他のReal PlayList３から参照されているので削除可能なClipではない。Real PlayList４が参照するClip４は、is_shared_Clip＝１の他のReal PlayListから参照されていないので削除可能なClipである。したがって、Real PlayList４と、Clip４が削除され、図４１のようになる（上述した図３５のステップＳ５７の処理）。
【０２４６】
図４２は、図３１の記録処理と図３５の削除処理を行って、図４０の状態からReal PlayList３を削除した後のReal PlayListを示す。図４０のReal PlayList３のis_shared_Clipは１であるので、INDEX.BAVの中のis_shared_Clip＝１であるすべてのPlayListが記録媒体１００から読み出される（上述した図３５のステップＳ５５の処理）。そして、削除対象のReal PlayList３が参照するClipが、他のis_shared_Clip＝１のReal PlayListから参照されているかが調べられる（上述した図３５のステップＳ５６の処理）。
【０２４７】
Real PlayList３が参照するClip２とClip３は、is_shared_Clip＝１の他のReal PlayList１とReal PlayList４から参照されているので、削除可能なClipではない。そこでReal PlayList３だけが削除され、図４２に示される状態になる（上述した図３５のステップＳ５７の処理）。
【０２４８】
なお、図４２の例では、Real PlayList３の削除とともに、Clip２とClip３の不必要なストリーム部分が削除されている。この処理は、図３７のReal PlayListの部分的な削除の例に対応する処理である。
【０２４９】
図４２に示されるように、編集の結果、Real PlayList２が参照するClip２と、Real PlayList４が参照するClip３，４は、他のReal PlayListによって参照されなくなる。そこで、Real PlayList２とReal PlayList４のis_shared_Clipがいずれも０に変更される（上述した図３１のステップＳ１２，Ｓ１５，Ｓ１６の処理）。
【０２５０】
［記録処理２］
【０２５１】
次に、is_shared_Clipフラグが'１'にセットされている場合におけるPlayListが満たす条件を上述した（３）とした場合のis_shared_Clipフラグの記録処理を、図４３を参照して説明する。この場合におけるis_shared_Clip＝１であるReal PlayListは、記録されてから、かつて、is_shared_Clipの値が1にセットされたことがあるReal PlayListである。すなわち、そのReal PlayListは、現在は、それが参照するClipsは、他のReal PlayListによって参照されていないかもしれないReal PlayListである。
【０２５２】
ステップＳ１１１において判定部２０４は、Real PlayListがクリエイトされたかを判定する。例えば新たなコンテンツを記録する場合、Real PlayListがクリエイトされる。
【０２５３】
Real PlayListがクリエイトされた場合、ステップＳ１１５において設定部２０３は、Real PlayListのis_shared_Clipに０を設定する。例えば新たなコンテンツを記録する場合、Real PlayListのis_shared_Clipに０が設定される。
【０２５４】
Real PlayListがクリエイトされていない場合、ステップＳ１１２において判定部２０４は、Real PlayListのis_shared_Clipは０であるかを判定する。例えば、記録済みのコンテンツを編集する場合、記録済みのReal PlayListが編集される。この場合、記録済みのReal PlayList、つまり編集対象のReal PlayListのis_shared_Clipの値が判定される。
【０２５５】
編集対象のReal PlayListのis_shared_Clipが０である場合、ステップＳ１１３において判定部２０４は、現在の編集がデバイド編集であるかを判定する。現在の編集がデバイド編集である場合、ステップＳ１１４において設定部２０３は、Real PlayListのis_shared_Clipに１を設定する。
【０２５６】
これに対して、現在の編集がデバイド編集ではない場合、ステップＳ１１５において設定部２０３は、Real PlayListのis_shared_Clipに０を設定する。
【０２５７】
また、ステップＳ１１２においてReal PlayListのis_shared_Clipが０ではない、すなわち１であると判定された場合、ステップＳ１１３の判定処理はスキップされ、処理はステップＳ１１４に進み、Real PlayListのis_shared_Clipに１が設定される。つまり、is_shared_Clipは一度１に設定されると、以後、０に変更されることはない。
【０２５８】
ステップＳ１１４，Ｓ１１５の処理の後、ステップＳ１１６において更新部２０６は、記録対象のReal PlayListのINDEX.BAVの情報を更新する。
【０２５９】
ステップＳ１１７において記録部２０１は、Real PlayListとINDEX.BAVを記録する。すなわちステップＳ１１６でis_shared_Clipと各種の情報が更新されたINDEX.BAVが記録媒体１００に記録される。
【０２６０】
このように、図４３の記録処理においては、図３１の記録処理のステップＳ１５の処理が削除されている。図４３の記録処理のその他の処理は、図３１の場合と同様である。
【０２６１】
すなわち、図４３のステップＳ１１１乃至Ｓ１１７の処理は、それぞれ図３１のステップＳ１１乃至Ｓ１４，Ｓ１６乃至Ｓ１８の処理に対応する。
【０２６２】
［編集の例２］
【０２６３】
図３１の記録処理においては、図４０と図４２を参照して説明したように、is_shared_Clipが書き替えられる。すなわち、図４０に示される状態でReal PlayList ３が削除されると、図４２に示されるように、Real PlayList２とReal PlayList ４が参照するClipsが、他のReal PlayListによって参照されなくなる。そこで、Real PlayList２とReal PlayList ４のis_shared_Clipは、１から０に書き替えられる。
【０２６４】
しかしながら、図４３の記録処理においては、編集後のReal PlayList２とReal PlayList４のis_shared_Clipの値は変更されず、値１のままとされる（上述した図４３のステップＳ１１２，Ｓ１１４の処理）。
【０２６５】
図４４は、図４３の記録処理と図３５の削除処理を行って、図４０の状態からReal PlayList３を削除した後のReal PlayListを示す。図３５の削除処理に伴うReal PlayListとClipの変化は、図４２を参照して説明した場合と同様である。
【０２６６】
図４４に示されるように、Real PlayList２が参照するClip２と、Real PlayList４が参照するClip３，４が、他のReal PlayListによって参照されなくなると、図４３の記録処理ではis_shared_Clipに関して次のような処理が行われる。すなわち、図４０に示されるように、Real PlayList２とReal PlayList４のis_shared_Clipは、編集前に既に１に設定されている。このような場合、ステップＳ１１２において常にＮＯと判定される。その結果、一旦is_shared_Clipに１が設定されると、ステップＳ１１５のis_shared_Clipに０を設定する処理は実行されることがなく、is_shared_Clipは１のままとされる。
【０２６７】
このようにすると、Real PlayList３の削除のときに、そのReal PlayList３についてのINDEX.BAVの情報の削除（更新）だけで済み、Real PlayList２とReal PlayList４についてのINDEX.BAVの情報を更新しなくてよい。すなわち、is_shared_Clipの意味を、上述の（２）から（３）に広げることにより、削除対象のReal PlayListのINDEX.BAVの情報のみを更新すればよいので、INDEX.BAVの内容管理が容易になる。
【０２６８】
次に、INDEX.BAVのis_shared_Clipの効果について説明する。PLAYLISTディレクトリの下に記録されているすべてのPlayListのClipsの参照状態は、図３９に示されるようであるものとする。
【０２６９】
いま図３９の状態から、Real PlayList２を削除するものとする。Real PlayList２は、Clip２を参照している。仮に、INDEX.BAVのis_shared_Clipが存在しないとすると、他のReal PlayList１, Real PlayList３, Real PlayList４を記録媒体１００から読み出して、それらによりClip２が参照されていないかどうかを調べる必要がある。この例では、PLAYLISTディレクトリの下のPlayListの数が４個なので、高々３個のファイルを読み出す時間はそれ程長くは無い。
【０２７０】
しかし、記録媒体１００に記録されているPlayListの数が非常に大きな数（たとえば、10000個以上）である場合、すべてのPlayListを読み出して、それらによりClip２が参照をされているかどうかを調べる時間は相当に長くなる。
【０２７１】
そこで、INDEX.BAVにis_shared_Clipを記録し、その値を調べて、その値が1であるPlayListだけを読み出すようにすることにより、読み出す必要のあるPlayListの数を減らすことが期待できる。その結果、PlayListとClipsの参照関係を調べる時間を短縮できる。
【０２７２】
[本技術のプログラムへの適用]
【０２７３】
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることができる。
【０２７４】
一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、ネットワークや記録媒体からインストールされる。
【０２７５】
このようなプログラムを含む記録媒体は、装置本体とは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク（フロッピディスクを含む）、光ディスク（CD-ROM(Compact Disk-Read Only Memory),DVDを含む）、光磁気ディスク（MD（Mini-Disk）を含む）、もしくは半導体メモリなどよりなるリムーバブルメディアにより構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される、プログラムが記録されているフラッシュROMやハードディスクなどで構成される。
【０２７６】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、その順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０２７７】
また、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【０２７８】
［その他］
【０２７９】
本技術は、以下のような構成もとることができる。
（１）
再生情報が参照するコンテンツの実態としての実態情報が、他の前記再生情報により参照されていることを示すフラグを記録する記録部と、
前記再生情報の削除が指示された場合、前記フラグを用いて削除可能な前記実態情報を検索する検索部と、
前記再生情報の削除が指示された場合、削除対象の前記再生情報と削除可能な前記実態情報とを削除する削除部と
を備える情報処理装置。
（２）
前記検索部は、削除可能な前記実態情報として、削除対象の前記再生情報が参照する前記実態情報であって、削除対象以外の前記再生情報により参照されていない前記実態情報を検索する
前記（１）に記載の情報処理装置。
（３）
前記検索部は、他の前記再生情報により参照されていることを示す前記フラグを有する前記再生情報が参照する前記実体情報の中から削除可能な前記実態情報を検索する
前記（１）または（２）に記載の情報処理装置。
（４）
削除対象の前記再生情報の前記フラグが、削除対象の前記再生情報が参照する前記実態情報が他の前記再生情報により参照されていないことを示す場合、前記削除部は、削除対象の前記再生情報と削除対象の前記再生情報が参照する前記実態情報とを削除する
前記（１）乃至（３）のいずれかに記載の情報処理装置。
（５）
前記削除部は、削除された前記実態情報を参照する前記再生情報であって、前記実態情報を共有しない前記再生情報をさらに削除する
前記（４）に記載の情報処理装置。
（６）
前記再生情報の編集に伴って前記フラグを設定する設定部を
さらに備える前記（１）乃至（５）のいずれかに記載の情報処理装置。
（７）
前記設定部は、前記再生情報がデバイドされた場合、前記フラグを、前記実態情報が他の前記再生情報により参照されていることを示す状態に設定し、前記再生情報がクリエイト、コンバイン、および部分削除された場合、前記フラグを、前記実態情報が他の前記再生情報により参照されていないことを示す状態に設定する
前記（６）に記載の情報処理装置。
（８）
前記設定部は、編集前の前記再生情報の前記フラグが、前記実態情報が他の前記再生情報により参照されていることを示す状態に設定されている場合に、編集後の前記再生情報が参照する前記実態情報が、前記実態情報が他の前記再生情報により参照されていることを示す前記フラグの他の前記再生情報により参照されないとき、前記フラグを、前記実態情報が他の前記再生情報により参照されていないことを示す状態に変更する
前記（６）または（７）に記載の情報処理装置。
（９）
前記フラグは、前記再生情報が、記録されてから、かつて、前記実態情報が他の前記再生情報により参照されことがあることを示し、
前記設定部は、前記フラグが、一旦、前記実態情報が他の前記再生情報により参照されていることを示す状態に設定された場合、以後、前記実態情報が他の前記再生情報により参照されていないことを示す状態に変更しない
前記（６）乃至（８）のいずれかに記載の情報処理装置。
（１０）
再生情報が参照するコンテンツの実態としての実態情報が、他の前記再生情報により参照されていることを示すフラグを記録する記録ステップと、
前記再生情報の削除が指示された場合、前記フラグを用いて削除可能な前記実態情報を検索する検索ステップと、
前記再生情報の削除が指示された場合、削除対象の前記再生情報と削除可能な前記実態情報とを削除する削除ステップと
を含む情報処理方法。
（１１）
再生情報が参照するコンテンツの実態としての実態情報が、他の前記再生情報により参照されていることを示すフラグを記録する記録ステップと、
前記再生情報の削除が指示された場合、前記フラグを用いて削除可能な前記実態情報を検索する検索ステップと、
前記再生情報の削除が指示された場合、削除対象の前記再生情報と削除可能な前記実態情報とを削除する削除ステップと
を含む処理をコンピュータに実行させるプログラム。
【符号の説明】
【０２８０】
１  記録再生装置，  １１乃至１３  端子，  １４  解析部，  １５  AVエンコーダ，  １６  マルチプレクサ，  １７  スイッチ，  １８  多重化ストリーム解析部，  １９  ソースパケッタイザ，  ２０  ECC符号化部，  ２１  変調部，  ２２  書き込み部，  ２３  制御部，  ２４  ユーザインタフェイス，  ２６  デマルチプレクサ，  ２７  AVデコーダ，  ２８  読み出し部，  ２９  復調部，  ３０  ECC復号部，  ３１  ソースパケッタイザ，  ３２，３３  端子，２０１  記録部，  ２０２  取得部，  ２０３  判定部，  ２０４  表示部
【図１】
0006010900.tif 000002
【図２】
0006010900.tif 000003
【図３】
0006010900.tif 000004
【図４】
0006010900.tif 000005
【図５】
0006010900.tif 000006
【図６】
0006010900.tif 000007
【図７】
0006010900.tif 000008
【図８】
0006010900.tif 000009
【図９】
0006010900.tif 000010
【図１０】
0006010900.tif 000011
【図１１】
0006010900.tif 000012
【図１２】
0006010900.tif 000013
【図１３】
0006010900.tif 000014
【図１４】
0006010900.tif 000015
【図１５】
0006010900.tif 000016
【図１６】
0006010900.tif 000017
【図１７】
0006010900.tif 000018
【図１８】
0006010900.tif 000019
【図１９】
0006010900.tif 000020
【図２０】
0006010900.tif 000021
【図２１】
0006010900.tif 000022
【図２２】
0006010900.tif 000023
【図２３】
0006010900.tif 000024
【図２４】
0006010900.tif 000025
【図２５】
0006010900.tif 000026
【図２６】
0006010900.tif 000027
【図２７】
0006010900.tif 000028
【図２８】
0006010900.tif 000029
【図２９】
0006010900.tif 000030
【図３０】
0006010900.tif 000031
【図３１】
0006010900.tif 000032
【図３２】
0006010900.tif 000033
【図３３】
0006010900.tif 000034
【図３４】
0006010900.tif 000035
【図３５】
0006010900.tif 000036
【図３６】
0006010900.tif 000037
【図３７】
0006010900.tif 000038
【図３８】
0006010900.tif 000039
【図３９】
0006010900.tif 000040
【図４０】
0006010900.tif 000041
【図４１】
0006010900.tif 000042
【図４２】
0006010900.tif 000043
【図４３】
0006010900.tif 000044
【図４４】
0006010900.tif 000045