(57)【特許請求の範囲】
【請求項１】
少なくともタイトルの一部の領域を指定したカットを単位データとし、前記単位データを複数個記録媒体に記録させる記録装置において、
前記複数の単位データの中の、所定の順番で再生される任意の数の前記単位データの組み合わせに対して、その上書きの禁止を指定する指定手段と、
データの記録が指令されたとき、そのデータによって上書きされるデータについての前記指定手段による指定を判定する判定手段と、
前記判定手段の判定結果に対応して、前記データの記録媒体への記録を制御する制御手段と
を備えることを特徴とする記録装置。
【請求項２】
前記単位データは階層構造を構成し、前記指定手段は、前記階層構造のうち所定の階層より下位のレベルのデータの変更を可能とするように前記指定を行う
ことを特徴とする請求項１に記載の記録装置。
【請求項３】
前記指定手段は、ファイル単位で前記指定を行う
ことを特徴とする請求項１に記載の記録装置。
【請求項４】
前記指定手段は、前記上書きを禁止する有効期限をさらに指定する
ことを特徴とする請求項１に記載の記録装置。
【請求項５】
前記制御手段は、前記上書きが禁止されているとき、入力されたパスワードに基づいて、前記データの前記記録媒体への記録を制御する
ことを特徴とする請求項１に記載の記録装置。
【請求項６】
前記指定手段による指定を前記記録媒体に記録する記録手段を
さらに備えることを特徴とする請求項１に記載の記録装置。
【請求項７】
少なくともタイトルの一部の領域を指定したカットを単位データとし、前記単位データを複数個記録媒体に記録させる記録装置の記録方法において、
前記複数の単位データの中の、所定の順番で再生される任意の数の前記単位データの組み合わせに対して、その上書きの禁止を指定する指定ステップと、
データの記録が指令されたとき、そのデータによって上書きされるデータについての前記指定ステップによる指定を判定する判定ステップと、
前記判定ステップの判定結果に対応して、前記データの記録媒体への記録を制御する制御ステップと
を含むことを特徴とする記録方法。
【請求項８】
少なくともタイトルの一部の領域を指定したカットを単位データとし、前記単位データを複数個記録媒体に記録させる記録装置に、
前記複数の単位データの中の、所定の順番で再生される任意の数の前記単位データの組み合わせに対して、その上書きの禁止を指定する指定ステップと、
データの記録が指令されたとき、そのデータによって上書きされるデータについての前記指定ステップによる指定を判定する判定ステップと、
前記判定ステップの判定結果に対応して、前記データの記録媒体への記録を制御する制御ステップと
を含む処理を実行させるコンピュータが読みとり可能なプログラムを記録することを特徴とする記録媒体。
【請求項９】
少なくともタイトルの一部の領域を指定したカットを単位データとし、前記単位データが複数個記録されている記録媒体において、
前記複数の単位データの中の、所定の順番で再生される任意の数の前記単位データの組み合わせに対して、その上書きの禁止を指定する指定情報が記録されている
ことを特徴とする記録媒体。
【請求項１０】
少なくともタイトルの一部の領域を指定したカットを単位データとし、前記単位データを複数個記録媒体に記録または再生する記録再生装置において、
前記複数の単位データの中の、所定の順番で再生される任意の数の前記単位データの組み合わせに対して、その上書きの禁止を指定する指定情報を前記記録媒体に記録する記録手段と、
記録が指令されたデータに対応する前記指定情報を前記記録媒体から再生する再生手段と、
前記再生手段により再生された前記指定情報を判定する判定手段と、
前記判定手段の判定結果に対応して、前記データの記録媒体への記録を制御する制御手段と
を備えることを特徴とする記録再生装置。
【請求項１１】
少なくともタイトルの一部の領域を指定したカットを単位データとし、前記単位データを複数個記録媒体に記録または再生する記録再生装置の記録再生方法において、
前記複数の単位データの中の、任意に指定された、所定の順番で再生される任意の数の前記単位データの組み合わせに対して、その上書きの禁止を指定する指定情報を前記記録媒体に記録する記録ステップと、
記録が指令されたデータに対応する前記指定情報を前記記録媒体から再生する再生ステップと、
前記再生ステップの処理で再生された前記指定情報を判定する判定ステップと、
前記判定ステップでの判定結果に対応して、前記データの記録媒体への記録を制御する制御ステップと
を含むことを特徴とする記録再生方法。
【請求項１２】
少なくともタイトルの一部の領域を指定したカットを単位データとし、前記単位データを複数個記録媒体に記録または再生する記録再生装置に、
前記複数の単位データの中の、任意に指定された、所定の順番で再生される任意の数の前記単位データの組み合わせに対して、その上書きの禁止を指定する指定情報を前記記録媒体に記録する記録ステップと、
記録が指令されたデータに対応する前記指定情報を前記記録媒体から再生する再生ステップと、
前記再生ステップの処理で再生された前記指定情報を判定する判定ステップと、
前記判定ステップでの判定結果に対応して、前記データの記録媒体への記録を制御する制御ステップと
を含む処理を実行させるコンピュータが読みとり可能なプログラムを記録することを特徴とする記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、記録装置および方法、記録再生装置および方法、並びに記録媒体に関し、特に、データの種類毎に上書き禁止を指定することができるようにして、操作性を改善した、記録装置および方法、記録再生装置および方法、並びに記録媒体に関する。
【０００２】
【従来の技術】
光ディスクには、多くのタイトル（番組）を記録することが可能である。ユーザは、光ディスクに記録されたタイトルの中から所望のものを選択し、再生することができる。
【０００３】
また、複数のタイトルの内、任意の数のタイトルを組み合わせ、これを１つのプログラムとし、そのプログラム（プログラムとして指定した複数のタイトル）を再生することも可能である。
【０００４】
【発明が解決しようとする課題】
しかしながら、従来の光ディスク装置においては、光ディスク自体に対する上書きを禁止したり、タイトル毎に上書きを禁止するようにすることができるようになされているが、例えば、プログラム毎に上書きを禁止するようなことができず、操作性が悪い課題があった。
【０００５】
また、従来の光ディスク装置においては、これらのタイトルやプログラムを一旦記録すると、その再生は再生者の自由になってしまい、ディスクに記録したデータを、記録した者がデータを再生する者に合わせて管理することができない課題があった。
【０００６】
本発明はこのような状況に鑑みてなされたものであり、複数のデータの組み合わせ毎に上書きの禁止を指定することができるようにし、以て、操作性を改善するようにするものである。また、データを記録したものが、記録したデータの再生を管理することができるようにするものである。
【０００７】
【課題を解決するための手段】
請求項１に記載の記録装置は、複数の単位データの中の、所定の順番で再生される任意の数の単位データの組み合わせに対して、その上書きの禁止を指定する指定手段と、データの記録が指令されたとき、そのデータによって上書きされるデータについての指定手段による指定を判定する判定手段と、判定手段の判定結果に対応して、データの記録媒体への記録を制御する制御手段とを備えることを特徴とする。
【０００８】
請求項７に記載の記録方法は、前記複数の単位データの中の、所定の順番で再生される任意の数の前記単位データの組み合わせに対して、その上書きの禁止を指定する指定ステップと、データの記録が指令されたとき、そのデータによって上書きされるデータについての前記指定ステップによる指定を判定する判定ステップと、前記判定ステップの判定結果に対応して、前記データの記録媒体への記録を制御する制御ステップとを含むことを特徴とする。
【０００９】
請求項８に記載の記録媒体は、前記複数の単位データの中の、所定の順番で再生される任意の数の前記単位データの組み合わせに対して、その上書きの禁止を指定する指定ステップと、データの記録が指令されたとき、そのデータによって上書きされるデータについての前記指定ステップによる指定を判定する判定ステップと、前記判定ステップの判定結果に対応して、前記データの記録媒体への記録を制御する制御ステップとを含む処理を実行させるコンピュータが読みとり可能なプログラムを記録することを特徴とする。
【００１０】
請求項９に記載の記録媒体は、複数の単位データの中の、所定の順番で再生される任意の数の単位データの組み合わせに対して、その上書きの禁止を指定する指定情報が記録されていることを特徴とする。
【００１１】
請求項１０に記載の記録再生装置は、複数の単位データの中の、所定の順番で再生される任意の数の単位データの組み合わせに対して、その上書きの禁止を指定する指定情報を記録媒体に記録する記録手段と、記録が指令されたデータに対応する指定情報を記録媒体から再生する再生手段と、再生手段により再生された指定情報を判定する判定手段と、判定手段の判定結果に対応して、データの記録媒体への記録を制御する制御手段とを備えることを特徴とする。
【００１２】
請求項１１に記載の記録再生方法は、複数の単位データの中の、所定の順番で再生される任意の数の単位データの組み合わせに対して、その上書きの禁止を指定する指定情報を記録媒体に記録する記録ステップと、記録が指令されたデータに対応する指定情報を記録媒体から再生する再生ステップと、再生ステップの処理で再生された指定情報を判定する判定ステップと、判定ステップでの判定結果に対応して、データの記録媒体への記録を制御する制御ステップとを含むことを特徴とする。
【００１３】
請求項１２に記載の記録媒体は、複数の単位データの中の、所定の順番で再生される任意の数の単位データの組み合わせに対して、その上書きの禁止を指定する指定情報を記録媒体に記録する記録ステップと、記録が指令されたデータに対応する指定情報を記録媒体から再生する再生ステップと、再生ステップの処理で再生された指定情報を判定する判定ステップと、判定ステップでの判定結果に対応して、データの記録媒体への記録を制御する制御ステップとを含む処理を実行させるコンピュータが読みとり可能なプログラムを記録することを特徴とする。
【００２４】
請求項１に記載の記録装置、請求項７に記載の記録方法、請求項８に記載の記録媒体、および請求項９に記載の記録媒体においては、複数の単位データの中の、所定の順番で再生される任意の数の単位データの組み合わせに対して、その上書きの禁止が指定され、データの記録が指令されたとき、記録が指令されたデータに対応する指定が判定され、その判定結果に対応して、記録が指令されたデータの記録媒体への記録が制御される。
【００２５】
請求項１０に記載の記録再生装置、請求項１１に記載の記録再生方法、および請求項１２に記載の記録媒においては、複数の単位データの中の、所定の順番で再生される任意の数の単位データの組み合わせに対して、その上書きの禁止を指定する指定情報が記録媒体に記録され、記録が指令されたデータに対応する指定情報が記録媒体から再生され、再生された指定情報が判定され、その判定結果に対応して、記録が指令されたデータの記録媒体への記録が制御される。
【００３０】
【発明の実施の形態】
以下に本発明の実施の形態を説明するが、特許請求の範囲に記載の発明の各手段と以下の実施の形態との対応関係を明らかにするために、各手段の後の括弧内に、対応する実施の形態（但し一例）を付加して本発明の特徴を記述すると、次のようになる。但し勿論この記載は、各手段を記載したものに限定することを意味するものではない。
【００３１】
請求項１に記載の記録装置は、複数の単位データの中の、所定の順番で再生される任意の数の単位データの組み合わせに対して、その上書きの禁止を指定する指定手段（例えば、図１８のflags_for_program）と、データの記録が指令されたとき、そのデータによって上書きされるデータについての指定手段による指定を判定する判定手段（例えば、図３８のステップＳ２６，Ｓ３５）と、判定手段の判定結果に対応して、データの記録媒体への記録を制御する制御手段（例えば、図３８のステップＳ３０，Ｓ３２）とを備えることを特徴とする。
【００３２】
請求項１０に記載の記録再生装置は、複数の単位データの中の、所定の順番で再生される任意の数の単位データの組み合わせに対して、その上書きの禁止を指定する指定情報（例えば、図１８のflags_for_program）を記録媒体に記録する記録手段（例えば、図３７のステップＳ１０）と、記録が指令されたデータに対応する指定情報を記録媒体から再生する再生手段（例えば、図３８のステップＳ２１）と、再生手段により再生された指定情報を判定する判定手段（例えば、図３８のステップＳ２６，Ｓ３５）と、判定手段の判定結果に対応して、データの記録媒体への記録を制御する制御手段（例えば、図３８のステップＳ３０，Ｓ３２）とを備えることを特徴とする。
【００３６】
最初に本発明において情報が記録または再生される記録媒体（メディア）上のファイル配置について説明する。メディア上には、図１に示すように、次の７種類のファイルが記録される。
VOLUME.TOC
ALBUM.STR
PROGRAM_$$$.PGI
TITLE_###.VDR
CHUNKGROUP_@@@.CGIT
CHUNK_%%%%.ABST
CHUNK_%%%%.MPEG2
【００３７】
ルートディレクトリにはVOLUME.TOCおよびALBUM.STRが置かれる。また、ルートディレクトリ直下のディレクトリ"PROGRAM"には、"PROGRAM_$$$.PGI"（ここで"$$$"はプログラム番号を表す）が置かれる。同様に、ルートディレクトリ直下のディレクトリ"TITLE"には、"TITLE_###.VDR"（ここで"###"はタイトル番号を表す）が、ディレクトリ"CHUNKGROUP"には、"CHUNKGROUP_@@@.CGIT"（ここで"@@@"はチャンクグループ番号を表す）が、ディレクトリ"CHUNK"には、"CHUNK_%%%%.ABST"（ここで"%%%%"はチャンク番号を表す）が、それぞれ置かれる。
【００３８】
ルートディレクトリ直下のMPEGAVディレクトリには、更に１つ以上のサブディレクトリが作成され、その下に、"CHUNK_%%%%.MPEG2"（ここで%%%%はチャンク番号を表す）が置かれる。
【００３９】
VOLUME.TOCのファイルは、メディア上に１つ有るのが普通である。ただし、ROMとRAMのハイブリッド構造のメディア等、特殊な構造のメディアでは、複数存在することも有り得る。このファイルは、メディアの全体の性質を示すために用いられる。
【００４０】
VOLUME.TOCの構造は図２に示すようになっている。先頭にfile_type_idが置かれ、これにより該当ファイルがVOLUME.TOCであることが示される。次にvolume_information()が続き、最後にtext_block()が続く。
【００４１】
図３にvolume_information()の構成が示されている。これは、volume_attribute()、resume()、volume_rating()、write_protect()、play_protect()、recording_timer()を含んでいる。
【００４２】
volume_attribute()は、logical volumeの属性を記録する領域であり、図４にその詳細な構造が示されている。同図に示すように、この領域には、title_playback_mode_flag, program_playback_mode_flagなどが含まれている。
【００４３】
resume()は、メディアの再挿入時に、eject直前の状態を復元するための情報を記録する領域であり、その詳細な構造は、図５に示されている。
【００４４】
図３のvolume_rating()は、volume全体に対する視聴年齢制限を年齢やカテゴリに応じて実現するための情報を記録する領域であり、その詳細な構造は、図６に示されている。
【００４５】
図３のwrite_protect()は、volume内に記録されているtitle, programに対する変更や、消去操作を制限する情報を記録する領域であり、その詳細な構造は、図７に示されている。
【００４６】
図３のplay_protect()は、volume内に記録されているtitle, programに対する再生許可、不許可の設定、あるいは、再生回数を制限する情報を記録する領域であり、その詳細な構造は、図８に示されている。
【００４７】
図３のrecording_timer()は、記録時間を制御する情報を記録する領域であり、その詳細な構造は、図９に示されている。
【００４８】
図２のVOLUME.TOCのtext_block()の詳細な構造は図１０に示されている。このtext_block()には、language_set()とtext_itemが含まれており、その詳細な構造は図１１と図１２にそれぞれ示されている。
【００４９】
図１のALBUM.STRのファイルは、メディア上に１つ有るのが普通である。ただし、ROMとRAMのハイブリッド構造のメディア等、特殊な構造のメディアでは、複数存在することも有り得る。このファイルは、複数のメディアを組み合わせて、あたかも１つのメディアであるような構成にするために使用される。
【００５０】
このALBUM.STRの構造は、図１３に示すようになっている。先頭にfile_type_idが置かれ、該当ファイルがALBUM.STRであることを示す。次にalbum()が続き、最後にtext_block()が続く。
【００５１】
album()は、複数のvolume（複数のメディア）を１つのまとまりとして扱うための情報を記録する領域であり、その詳細な構造は、図１４に示されている。
【００５２】
図１のTITLE_###.VDRのファイルは、タイトルの数だけ存在する。タイトルとは、例えばcompact discで言うところの１曲や、テレビ放送の１番組を言う。この情報の構造は図１５に示すようになっている。先頭にfile_type_idが置かれ、これにより該当ファイルがTITLE_###.VDRであることが示される。次にtitle_info()が続き、最後にtext_block()が続く。###はタイトル番号を示す文字列である。
【００５３】
title_info()は、chunkgroup上における、titleの開始点、終了点、その他titleに関する属性を記録するための領域であり、その詳細な構造は、図１６に示されている。
【００５４】
図１のPROGRAM_$$$.PGIのファイルは、プログラムの数だけ存在する。プログラムは、タイトルの一部（あるいは全部）の領域を指定した複数のカットで構成され、各カットは指定された順番で再生される。この情報の構造は図１７に示されている。先頭にfile_type_idが置かれ、該当ファイルがPROGRAM_$$$.PGIであることを示す。次にprogram()が続き、最後にtext_block()が続く。$$$はタイトル番号を示す文字列である。
【００５５】
program()は、素材に対して不可逆な編集を施すことなしに、titleの必要な部分を集めて再生するのに必要な情報を記録する領域であり、その詳細な構造は、図１８に示されている。
【００５６】
図１８のprogram()は、１つのplay_listを有している。このplay_list()の詳細は、図１９に示されている。
【００５７】
play_listには、play_item()が複数置かれている。play_item()の詳細は、図２０に示されている。
【００５８】
図１のCHUNKGROUP_@@@.CGITのファイルは、チャンクグループの数だけ存在する。チャンクグループはビットストリームを並べるためのデータ構造である。このファイルは、ユーザがVDR（ビデオディスクレコーダ）など、メディアを記録再生する装置を普通に操作している分にはユーザに認識されない。
【００５９】
この情報の構造は図２１に示すようになっている。先頭にfile_type_idが置かれ、該当ファイルがCHUNKGROUP_@@@.CGITであることを示す。その次にchunkgroup_time_base_flagsとchunkgroup_time_base_offsetが有り、次にchunk_connection_info()、最後にtext_block()が続く。
【００６０】
chunkgroup_time_base_flagsは、chunkgroupの基準カウンタに関するflagを示し、chunkgroup_time_base_offsetは、chunkgroup内の基準時間軸の開始時刻を示す。これは、９０kHzでカウントアップするカウンタにセットする値であり、３２ビットの大きさを有する。chunk_connection_info()は、videoの切換点や、videoとaudioの同期など、特異な点の情報を記憶する領域であり、その詳細な構造は、図２２に示されている。
【００６１】
このchunk_connection_info()には、チャンクグループに属するチャンクの数だけchunk_arrangement_info()のループが置かれる。図２３にこのchunk_arrangement_info()の詳細が示されている。
【００６２】
図１のCHUNK_%%%%.ABSTのファイルは、チャンクの数だけ存在する。チャンクはストリームファイル１つに対応する情報ファイルである。この情報の構造は図２４に示すようになっている。先頭にfile_type_idが置かれ、これにより、該当ファイルがCHUNK_%%%%.ABSTであることが示される。
【００６３】
図１のCHUNK_%%%%.MPEG2のファイルは、ストリームファイルである。このファイルはMPEGのビットストリームを格納しており、この他のファイルが情報のみを記録しているのと異なっている。
【００６４】
図２５は、以上のようなファイルを有するメディアとしての光ディスクに対して情報を記録または再生する光ディスク装置の構成例を表している。この光ディスク装置では、１枚の書き換え型の光ディスク１に対して１系統の光ヘッド２が設けられており、データの読み出しと書き込みの双方にこの光ヘッド２が共用される。
【００６５】
光ヘッド２により光ディスク１から読み出されたビットストリームは、ＲＦおよび復調／変調回路３で復調された後、ECC回路４で誤り訂正が施され、スイッチ５を介して、読み出しレートとデコード処理レートとの差を吸収するための読み出しチャネル用バッファ６に送られる。読み出しチャネル用バッファ６の出力はデコード７に供給されている。読み出しチャネル用バッファ６はシステムコントローラ１３から読み書きができるように構成されている。
【００６６】
読み出しチャネル用バッファ６から出力されたビットストリームは、デコーダ７でデコードされ、そこからビデオ信号とオーディオ信号が出力される。デコーダ７から出力されたビデオ信号は合成回路８に入力され、0SD（On Screen Display）制御回路９が出力するビデオ信号と合成されたた後、出力端子Ｐ１から図示せぬディスプレイに出力され、表示される。デコーダ７から出力されたオーディオ信号は、出力端子Ｐ２から図示せぬスピーカに送られて再生される。
【００６７】
他方、入力端子Ｐ３から入力されたビデオ信号、および入力端子Ｐ４から入力されたオーディオ信号は、エンコーダ１０でエンコードされた後、エンコード処理レートと書き込みレートとの差を吸収するための書き込みチャネル用バッファ１１に送られる。この書き込みチャネル用バッファ１１もシステムコントローラ１３から読み書きができるように構成されている。
【００６８】
書き込みチャネル用バッファ１１に蓄積されたデータは、書き込みチャネル用バッファ１１から読み出され、スイッチ５を介してECC回路４に入力されて誤り訂正符号が付加された後、ＲＦおよび復調／変調回路３で変調される。ＲＦおよび復調／変調回路３より出力された信号（ＲＦ信号）は、光ヘッド２により光ディスク１に書き込まれる。
【００６９】
アドレス検出回路１２は、光ディスク１の記録または再生するトラックのアドレス情報を検出する。システムコントローラ１３は、この光ディスク装置の各部の動作を制御するものであり、各種の制御を行うCPU２１、CPU２１が実行すべき処理プログラム等を格納したROM２２、処理過程で生じたデータ等を一時記憶するためのRAM２３、および光ディスク１に対して記録または再生する各種の情報ファイルを記憶するRAM２４を有している。CPU２１は、アドレス検出回路１２の検出結果に基づいて、光ヘッド２の位置を微調整する。CPU２１はまた、スイッチ５の切り替え制御を行う。各種のスイッチ、ボタンなどから構成される入力部１４は、各種の指令を入力するとき、ユーザにより操作される。
【００７０】
次に、基本的な情報ファイルの読み込み動作について説明する。例えば、"VOLUME.TOC"情報ファイルの読み込みを行うとき、システムコントローラ１３のCPU２１は、予めその処理プログラムに組み込んであるファイルシステム操作命令を使用し、"VOLUME.TOC"が記録されている光ディスク１上の物理アドレスと、その長さを確定する。続いて、CPU２１は、この"VOLUME.TOC"のアドレス情報に基づき、光ヘッド２を読み出し位置に移動させる。そしてCPU２１は、光ヘッド２、ＲＦおよび復調／変調回路３、並びにECC回路４を読み出しモードに設定するとともに、スイッチ５を読み出しチャネル用バッファ６側に切り替え、さらに光ヘッド２の位置を微調整した後、光ヘッド２による読み出しを開始させる。これにより"VOLUME.TOC"の内容が光ヘッド２により読み出され、ＲＦおよび復調／変調回路３により復調され、さらにECC回路４により誤り訂正が行われた後、読み出しチャネル用バッファ６に蓄積される。
【００７１】
読み出しチャネル用バッファ６に蓄積されたデータ量が、"VOLUME.TOC"の大きさと等しいか、あるいはより大きくなった時点で、CPU２１は読み出しを停止させる。その後、CPU２１は、読み出しチャネル用バッファ６から該当データを読み出し、RAM２４に記憶させる。
【００７２】
次に、基本的な情報ファイル書込み動作について、"VOLUME.TOC"情報ファイルを書き込む場合を例として説明する。CPU２１は、予めその処理プログラムに組み込んであるファイルシステム操作命令を使用し、ファイルシステム（光ディスク１）中に、これから書こうとしている"VOLUME.TOC"と等しいか、より大きい大きさを持つ空き領域を探し、そのアドレスを確定する。
【００７３】
次に、CPU２１は、RAM２４に用意されている、新たに書き込むべき"VOLUME.TOC"を、書き込みチャネル用バッファ１１に転送する。続いて、CPU２１は、空き領域のアドレス情報に基づき、光ヘッド２を書き込み位置に移動させる。そしてCPU２１は、光ヘッド２、ＲＦおよび復調／変調回路３、並びにECC回路４を書き込みモードに設定するとともに、スイッチ５を書き込みチャネル用バッファ１１側に切り替え、光ヘッド２の位置を微調整した後、光ヘッド２による書き込みを開始させる。
【００７４】
これにより新たに用意した"VOLUME.TOC"の内容が、書き込みチャネル用バッファ１１から読み出され、スイッチ５を介してECC回路４に入力され、誤り訂正符号が付加された後、ＲＦおよび復調／変調回路３により変調される。ＲＦおよび復調／変調回路３より出力された信号は、光ヘッド２により光ディスク１に記録される。書き込みチャネル用バッファ１１から読み出され、光ディスク１に記録されたデータ量が、"VOLUME.TOC"の大きさと等しくなった時点で、CPU２１は書き込み動作を停止させる。
【００７５】
最後に、CPU２１は、予めその処理プログラムに組み込んであるファイルシステム操作命令を使用し、ファイルシステム（光ディスク１）中の"VOLUME.TOC"を指し示すポインタを、新しく書込んだ位置を指し示すように書き換える。
【００７６】
次に、基本的なストリーム再生動作について、図１のCHUNK_0001.MPEG2というストリームを再生する場合を例として説明する。CPU２１は、予めその処理プログラムに組み込んであるファイルシステム操作命令を使用し、"CHUNK_0001.MPEG2"が記録されている光ディスク１上の物理アドレスと、その長さを確定する。続いて、CPU２１は、この"CHUNK_0001.MPEG2"のアドレス情報に基づき、光ヘッド２を読み出し位置に移動させる。そして光ヘッド２、ＲＦおよび復調／変調回路３、並びにECC回路４を読み出しモードに設定するとともに、スイッチ５を読み出しチャネル用バッファ６側に切り替え、光ヘッド２の位置を微調整した後、光ヘッド２による読み出しを開始させる。
【００７７】
光ヘッド２により読み出された"CHUNK_0001.MPEG2"の内容が、ＲＦおよび復調／変調回路３、ECC回路４、並びにスイッチ５を介して読み出しチャネル用バッファ６に蓄積される。読み出しチャネル用バッファ６に蓄積されたデータは、デコーダ７に出力され、デコード処理が施されて、ビデオ信号とオーディオ信号がそれぞれ出力される。オーディオ信号は出力端子Ｐ２から出力され、ビデオ信号は、合成回路８を介して出力端子Ｐ１から出力される。
【００７８】
光ディスク１から読みだされ、デコード、表示されたデータ量が、"CHUNK_0001.MPEG2"の大きさと等しくなった時点で、あるいは、入力部１４から読み出し動作の停止が指定された時点で、CPU２１は、読み出しおよびデコード処理を停止させる。
【００７９】
次に、基本的なストリーム記録動作を、"CHUNK_0001.MPEG2"情報ファイルを書き込む場合を例として説明する。CPU２１は、予めその処理プログラムに組み込んであるファイルシステム操作命令を使用し、ファイルシステム（光ディスク１）中にこれから書こうとしている"CHUNK_0001.MPEG2"と等しいか、それより大きい大きさを持つ空き領域を探し、そのアドレスを確定する。
【００８０】
入力端子Ｐ３から入力されたビデオ信号、および入力端子Ｐ４から入力されたオーディオ信号は、エンコーダ１０によりエンコードされた後、書き込みチャネル用バッファ１１に蓄積される。続いて、CPU２１は、空き領域のアドレス情報に基づき、光ヘッド２を書き込み位置に移動させる。そしてCPU２１は、光ヘッド２、ＲＦおよび復調／変調回路３、並びにECC回路４を書き込みモードに設定するとともに、スイッチ５を書き込みチャネル用バッファ１１側に切り替え、光ヘッド２の位置を微調整した後、光ヘッド２による書き込みを開始させる。これにより新たに用意した"CHUNK_0001.MPEG2"の内容が、書き込みチャネル用バッファ１１から読み出され、スイッチ５、ECC回路４、ＲＦおよび復調／変調回路３を介して光ヘッド２に入力され、光ディスク１に記録される。
【００８１】
書き込みチャネル用バッファ１１から読み出され、光ディスク１に記録されたデータ量が、予め設定した値と等しくなったとき、あるいは入力部１４から書き込み動作の停止が指定されたとき、CPU２１は書き込み動作を停止させる。最後に、CPU２１は、予めその処理プログラムに組み込んであるファイルシステム操作命令を使用し、ファイルシステム（光ディスク１）中の"CHUNK_0001.MPEG2"を指し示すポインタを、新しく書込んだ位置を指し示すように書き換える。
【００８２】
いま、光ディスク１に、図２６に示すような情報ファイルとストリームファイルが記録されているものとする。この例では、"PROGRAM_001.PGI"という名前の１つのプログラムのファイルが含まれている。また、この光ディスク１には、"TITLE_001.VDR"、"TITLE_002.VDR"、および"TITLE_003.VDR"という名前の３つのタイトルのファイルが含まれている。
【００８３】
さらに、この光ディスク１には、"CHUNKGROUP_001.CGIT"と"CHUNKGROUP_002.CGIT"という２つのチャンクグループのファイルが含まれている。また、この光ディスク１には、"CHUNK_0001.MPEG2"、"CHUNK_0011.MPEG2"、および"CHUNK_0012.MPEG2"という名前の３つのストリームのファイルが含まれているとともに、それぞれに対応する情報として、"CHUNK_0001.ABST"、"CHUNK_0011.ABST"、および"CHUNK_0012.ABST"の３つの情報ファイルが置かれている。
【００８４】
図２６に示した情報ファイルとストリームファイルを有する光ディスク１の論理構造は、図２７に示すようになる。この例では、チャンク情報ファイル"CHUNK_0001.ABST"は、ストリームファイル"CHUNK_0001.MPEG2"を、またチャンク情報ファイル"CHUNK_0011.ABST"は、ストリームファイル"CHUNK_0011.MPEG2"を、さらに、チャンク情報ファイル"CHUNK_0012.ABST"は、ストリームファイル"CHUNK_0012.MPEG2"を、それぞれ指定している。具体的には、図２４のCHUNK_%%%%.ABST中の、chunk_file_idというフィールドで、ストリームのファイルIDが指定される。
【００８５】
さらに、この例では、チャンクグループ情報ファイル"CHUNKGROUP_001.CGIT"は、チャンク情報ファイル"CHUNK_0001.ABST"を、またチャンクグループ情報ファイル"CHUNKGROUP_002.CGIT"は、チャンク情報ファイル"CHUNK_0011.ABST"と"CHUNK_0012.ABST"を、それぞれ指定している。具体的には、図２３のchunk_arrangement_info()の中のchunk_info_file_idというフィールドでチャンク情報のファイルIDが指定される。このchunk_arrangement_info()はチャンクグループ情報ファイルの中にあり、該当チャンクグループに属するチャンクの数だけ存在するデータ構造となっている（図２３のchunk_arrangement_info()は、図２２のchunk_connection_info()に記述されており、このchunk_connection_info()は、図２１のCHUNKGROUP_###.CGITに記述されている）。
【００８６】
CHUNKGROUP_001には、chunk_arrangement_info()が１つだけあり、その中のchunk_info_file_idがCHUNK_0001を指定している。CHUNKGROUP_002には、chunk_arrangement_info()が２つあり、その中で、それぞれCHUNK_0011とCHUNK_0012が指定されている。このような場合のため、チャンクグループは、複数のチャンクの再生順序等を指定できるようになっている。
【００８７】
具体的には、まず、図２１のCHUNKGROUP_###.CGIT中のchunkgroup_time_base_offsetにより、該当チャンクグループでの時計の初期値が定められる。次に各チャンクを登録する際に、図２３のchunk_arrangement_info()のpresentation_start_cg_countとpresentation_end_cg_time_countが指定される。
【００８８】
例えば、図２８に示すように、CHUNK_0011の長さ（時間）をA、CHUNK_0012の長さ（時間）をBとする。CHUNK_0011のpresentation_start_cg_countがchunkgroup_time_base_offsetに等しく、presentation_end_cg_countが"chunk_group_time_base_offset+A"に等しい。またCHUNK_0012のpresentation_start_cg_countがchunkgroup_time_base_offset+Aに等しく、presentation_end_cg_countが"chunk_group_time_base_offset+A+B"に等しい。このように設定すると、CHUNKGROUP_002は、CHUNK_0011とCHUNK_0012を連続的に再生させたものとして定義される。
【００８９】
なお、CHUNK_0011とCHUNK_0012の再生時刻に重なりがある場合には、時刻をそのようにずらすことで指定ができる。また、図２３のchunk_arrangement_info()中のtransition_info()に記述を行うことで、２つのストリーム間の遷移において、特殊効果（フェードイン、フェードアウト、ワイプ等）を指定できるようになっている。
【００９０】
図２６（図２７）の例では、タイトル情報ファイル"TITLE_001.VDR"と"TITLE_002.VDR"は、チャンクグループ情報ファイル"CHUNKGROUP_001.CGIT"を、またタイトル情報ファイル"TITLE_003.VDR"はチャンクグループ情報ファイル"CHUNKGROUP_002.CGIT"を、それぞれ指定している。具体的には、図１６のtitle_info()中において、cgit_file_idというフィールドで、チャンクグループのファイルIDを指定し、さらにtitle_start_chunk_group_time_stampとtitle_end_chunk_group_time_stampというフィールドで、チャンクグループ内で該当タイトルが定義される時間的な範囲を指定している。
【００９１】
例えば、図２７の例では、CHUNKGROUP_001の前半をTITLE_001が、後半をTITLE_002が、それぞれ指し示している。なお、この分割はユーザからの要求により行われたものであり、その位置はユーザにとって任意であり、予め決めておくことはできない。ここでTITLE_001とTITLE_002による分割の位置を、CHUNKGROUP_001の先頭からＡだけ離れた位置に設定したとする。
【００９２】
TITLE_001はチャンクグループとしてCHUNKGROUP_001を指定し、タイトルの開始時刻として、CHUNKGROUP_001の開始時刻を指定し、タイトルの終了時刻として、ユーザから指定された点の時刻を指定する。
【００９３】
つまりTITLE_001のtitle_start_chunk_group_time_stampとして、CHUNKGROUP_001のchunkgroup_time_base_offset（先頭の位置）が設定され、TITLE_001のtitle_end_chunk_group_time_stampとして、CHUNKGROUP_001のchunkgroup_time_base_offsetにＡの長さを加えたものが設定される。
【００９４】
また、TITLE_002はチャンクグループとしてCHUNKGROUP_001を指定し、タイトルの開始時刻として、ユーザから指定された点の時刻を指定し、タイトルの終了時刻として、CHUNKGROUP_001の終了時刻を指定する。
【００９５】
つまりTITLE_002のtitle_start_chunk_group_time_stampとして、CHUNKGROUP_001のchunkgroup_time_base_offset（先頭の位置）にＡの長さを加えたものが設定され、TITLE_002のtitle_end_chunk_group_time_stampとして、CHUNKGROUP_001のchunkgroup_time_base_offsetにCHUNKGROUP_001の長さを加えたものが設定される。
【００９６】
さらに、TITLE_003はチャンクグループとしてCHUNKGROUP_002を指定し、タイトルの開始時刻としてCHUNKGROUP_002の開始時刻を指定し、タイトルの終了時刻としてCHUNKGROUP_002の終了時刻を指定する。
【００９７】
つまりTITLE_003のtitle_start_chunk_group_time_stampとして、CHUNKGROUP_002のchunkgroup_time_base_offsetが設定され、TITLE_003のtitle_end_chunk_group_time_stampとして、CHUNKGROUP_002のchunkgroup_time_base_offsetにCHUNKGROUP_002の長さを加えたものが設定される。
【００９８】
さらに、この例では、プログラム情報ファイル"PROGRAM_001.PGI"は、TITLE_001の一部とTITLE_003の一部を、この順番で再生するように指定している。具体的には、図２０のplay_item()中のtitle_numberによりタイトルを指定し、各タイトルで定義される時刻で開始点と終了点を定義することで、１つのカットが抜き出される。このようなカットを複数個集めて、プログラムが構成される。
【００９９】
次に、光ディスク１に、新たな情報を追記録（アペンド記録）する場合の動作について説明する。この記録は、具体的には、例えば、タイマ録画により、あるいはユーザが入力部１４を操作して、光ディスク装置に対してリアルタイムに録画を指令することにより行われる。後者の場合、録画ボタンが押されたようなときは、録画終了時刻を予測することはできないが、ワンタッチ録画機能（操作後、一定時間だけ録画が行われる機能）のボタンが押されたときは、終了時刻を予測することができる。
【０１００】
ここではタイマ録画を例にとって説明する。この場合、光ディスク装置のユーザは事前に、録画開始時刻、録画終了時刻、ビットストリームのビットレート、録画を行うチャネル等を指定してあるものとする。また、録画の予約を行った時点で、ビットレートと録画時間に見合う空き容量が光ディスク１に残されていることが、予め確認されているものとする。
【０１０１】
記録予約時と予約された記録の実行時との間に、光ディスク１に対して更なる記録が行われたような場合、今回予約された番組を、指定されたビットレートで記録する分の容量を確保することができなくなる場合がある。このような場合、CPU２１は、ビットレートを、指定された値より下げて、予約された時間分の情報を記録するようにするか、または、ビットレートはそのままにして、記録可能な時間だけ記録するようにする。CPU２１は、このとき、更なる記録が行われ、予約した記録に不具合が出た時点でユーザにその旨を伝えるメッセージを発することは言うまでもない。
【０１０２】
さて、予約された録画の開始時刻が近づくと、CPU２１は内蔵するタイマやクロックを使用して、モードを、スリープモードから動作モードに自動的に復帰させる。そしてCPU２１は、予めその処理プログラムに組み込んであるファイルシステム操作命令を使用し、予約された番組が記録できるだけの領域を光ディスク１上に確保する。つまり、予約録画の終了時刻から開始時刻を減算した結果（録画時間）にビットレートを乗じた数値が、予約された番組を記録するのに必要な領域の大きさであり、CPU２１はこの大きさの領域をまず確保する。その他、この記録に際して、ストリームファイル以外に情報ファイルを記録する必要がある場合、例えば新たなタイトルとして登録するためにタイトル情報ファイル等が必要である場合には、それらの情報ファイルが記録できるだけの容量を光ディスク１に確保しておく必要がある。必要な分の領域を確保することができない場合には、上述したような方法（ビットレートの変更、録画可能な時間内だけの録画などの方法）で対応が取られることになる。
【０１０３】
なおこのとき、新しいタイトルの記録なので、ユーザは、新たなストリームディレクトリの新たなストリームファイルとして新しいストリームファイルのファイル名を付ける。ここでは、これを、\MPEGAV\STREMS_003\CHUNK_0031とする。つまり、図２９に示すように、ルートディレクトリの下のMPEGAVディレクトリの下のSTREAM_003ディレクトリの下のCHUNK_0031.MPEG2という名前のファイルとする。
【０１０４】
CPU２１は、各部に対して記録モードの実行を命令する。例えば、図示せぬチューナから入力端子Ｐ３に入力されたビデオ信号、および入力端子Ｐ４に入力されたオーディオ信号は、エンコーダ１０によりエンコードされた後、書き込みチャネル用バッファ１１に蓄積される。続いて、CPU２１は、先程確保した領域のアドレス情報に基づき、光ヘッド２を書き込み位置に移動させる。そしてCPU２１は、光ヘッド２、ＲＦおよび復調／変調回路３、並びにECC回路４を書き込みモードに設定するとともに、スイッチ５を書き込みチャネル用バッファ１１側に切り替え、光ヘッド２の位置を微調整した後、光ヘッド２による書き込みを開始させる。これにより新たに用意した"CHUNK_0031.MPEG2"の内容が、書き込みチャネル用バッファ１１から読み出され、スイッチ５、ECC回路４、ＲＦおよび復調／変調回路３、並びに光ヘッド２を介して、光ディスク１に記録される。
【０１０５】
以上の書き込み動作を続けて、以下のいずれかの条件が発生した時点で、CPU２１は、書き込み動作を停止させる。
１）予約された記録の終了時刻になったとき
２）容量不足、その他の原因により光ディスク１に記録ができなくなったとき
３）録画動作の停止が指令されたとき
【０１０６】
次に、CPU２１は、予めその処理プログラムに組み込んであるファイルシステム操作命令を使用し、ファイルシステム中の"CHUNK_0031.MPEG2"を指し示すポインタを新しく書込んだ位置を指し示す値に書き換える。また、CPU２１は、チャンク情報、チャンクグループ情報、タイトル情報のそれぞれのファイルを用意し、しかるべき名前をつけて記録する。なお、記録時あるいは予約時に、光ディスク１上に、これらのファイルを記録することができるだけの空き容量を確保しておく必要がある。
【０１０７】
このようにして、例えば図３０に示すように、新たな情報ファイルが作成される。同図において、ファイル名の右肩にアスタリスク(*)をつけたものが、今回新たに作成されたファイルである。
【０１０８】
図３１は、新たにでき上がった情報ファイルの関係を示したものである。TITLE_004はCHUNKGROUP_003を指定し、CHUNKGROUP_003はCHUNK_0031を指定し、CHUNK_0031はSTREAM_0031を指定している。
【０１０９】
すなわち、新たなストリームはTITLE_004として、情報ファイルに登録されている。ユーザは光ディスク装置のタイトルを確認する機能により、TITLE_004の属性等を知ることができ、また、TITLE_004を再生することができる。
【０１１０】
次に、図２６（図２７）に例示するような光ディスク１上に、上書き記録する場合の動作について説明する。上書き記録とは、ビデオテープに信号を記録する場合と同様に、それまでに記録されている番組の上に（その番組を消去して）新たな番組を記録していく動作のことを言う。
【０１１１】
上書き記録では、上書き記録を開始する位置が重要である。例えばユーザからTITLE_001の先頭から上書き記録を開始することが指定されたとする。この時上書き記録は、TITLE_001、TITLE_002、TITLE_003をそれぞれ順に書き換えながら行われる。TITLE_003の最後まで書き換えてもまだ記録動作が終了しない場合には、光ディスク１上の空き領域に新たな領域を確保して記録が続行される。例えばTITLE_002が記録開始位置とされた場合には、TITLE_001は記録開始位置より前に位置するので、今回の記録動作により書き換えられることはない。
【０１１２】
いま、TITLE_003の先頭からタイマ録画により上書きするものとする。この場合、光ディスク装置のユーザは事前に、録画開始時刻、終了時刻、ビットストリームのビットレート、録画を行うチャネル等を指定しているものとする。また、上書き記録では重要な記録開始位置がTITLE_003の先頭と指定されたものとする。さらにこの場合においても、録画の予約を行った時点で、ビットレートと録画時間に見合う容量が光ディスク１上に存在することが、予め確認されているものとする。上書き記録の場合には、指定された位置から上書き可能な（複数の）タイトルの総容量と、光ディスク１の空き容量の和が記録可能容量となる。つまり、今回の場合には、TITLE_003が管理するストリームSTREAM_0011とSTREAM_0012の総容量と、光ディスク１上の空き容量の和が記録可能な容量となる。
【０１１３】
上書き記録では、記録可能な容量分に対して、どのような順番で実際の記録を行なっていくかという選択肢がいくつかある。まず、最初に考えられるのがタイトルで指定されているストリームの順番に記録していく方法である。つまり、今回の場合には、まずSTREAM_0011の先頭から記録を開始し、STREAM_0011の終わりまで記録したら、STREAM_0012の先頭から記録を続行し、STREAM_0012の終わりまで記録したら、今度は空き領域に記録を行なう方法である。もう１つの方法は、まず、空き領域に記録を行い、空き領域が無くなった時点で、現存するストリーム上に記録していく方法である。
【０１１４】
前者の方法は、ビデオテープのエミュレーションという意味で優れている。つまり、ビデオテープと同様の動作であるという意味で、ユーザから理解され易いという特徴を有する。後者の方法は、既に記録されているストリームの消去が後回しにされるため、記録されているものの保護という点で優れていると言う特徴を有する。
【０１１５】
なお、記録予約時と予約された記録の実行時との間に、光ディスク１に対して更なる記録が行われた場合に、今回予約された番組を、指定されたビットレートで記録する分の容量を確保することができない場合がある。このような場合、上述した場合と同様に、予約実行時に、ビットレートが自動的に下げられ、予約された時間分だけすべて記録されるか、または、ビットレートはそのままにして、記録可能な時間だけ記録が行われる。
【０１１６】
予約された録画の開始時刻が近づくと、光ディスク装置はスリープモードから動作モードに復帰する。CPU２１は、光ディスク１上の空き容量をすべて確保する。もちろん、この時点で空き容量を確保せず、必要になった時点で確保するという方法もあるが、ここでは説明のために、記録開始以前に必要な領域を確保するものとする。
【０１１７】
なお、タイマ録画等で、開始時刻、終了時刻、ビットレートが指定されているため、必要な領域の大きさが予め判っている場合には、必要な分だけ（あるいは幾分かのマージンを加えた分だけ）容量を確保するようにしてもよい。この記録に際して情報ファイルを記録する必要がある場合、例えば新たなタイトルとして登録するためにタイトル情報ファイル等が必要である場合、それらの情報ファイルも記録することができるだけの容量を残しておく必要がある。
【０１１８】
ここでは、新たなストリームディレクトリの新たなストリームファイルとして新しいストリームファイルのファイル名をつけるものとする。つまり、ここでは、ファイル名を、\MPEGAV\STREMS_002\CHUNK_0031とする。すなわち、図３２に示すように、ルートディレクトリの下のMPEGAVディレクトリの下のSTREAM_002ディレクトリの下のCHUNK_0031.MPEG2という名前のファイルが作成される。
【０１１９】
入力端子Ｐ３に入力されたビデオ信号、および入力端子Ｐ４に入力されたオーディオ信号は、エンコーダ１０によりエンコードされた後、書き込みチャネル用バッファ１１に蓄積される。続いて、CPU２１は、先程確保した領域のアドレス情報に基づき、光ヘッド２を書き込み位置に移動させる。そしてCPU２１は、光ヘッド２、ＲＦおよび復調／変調回路３、並びにECC回路４を書き込みモードに設定するとともに、スイッチ５を書き込みチャネル用バッファ１１側に切り替え、光ヘッド２の位置を微調整した後、光ヘッド２による書き込みを開始させる。
これにより新たに用意した"CHUNK_0031.MPEG2"の内容が、書き込みチャネル用バッファ１１から読み出され、スイッチ５、ECC回路４、ＲＦおよび復調／変調回路３、並びに光ヘッド２を介して、光ディスク１に記録される。
【０１２０】
この時、まずはストリームファイル"CHUNK_0011.MPEG2"が書き換えられる。そして"CHUNK_0011.MPEG2"の最後まで記録が行われたら、次に、"CHUNK_0012.MPEG2"へ記録が進められ、さらに、"CHUNK_0031.MPEG2"へと記録が進められる。
【０１２１】
以上の動作を続けて、上述した場合と同様に、３つの条件のいずれかが発生した時点で、CPU２１は、書き込み動作を停止させる。
【０１２２】
次に、CPU２１は、予めその処理プログラムに組み込んであったファイルシステム操作命令を使用し、ストリームファイル、チャンク情報、チャンクグループ情報、タイトル情報を更新する。
【０１２３】
ところで、書き込みが終了したタイミングによって、ファイルの構成が変化する。例えば、CHUNK_0011.MPEG2とCHUNK_0012.MPEG2の２つのストリームの上書きを終了した後、さらにCHUNK_0031.MPEG2に記録が行われた場合、光ディスク１のファイルの構成は、図３３に示すようになる。ファイル名の右肩にアスタリスク(*)をつけたものが今回新たに作成されたファイルである。
【０１２４】
図３４は、このようにして新たにでき上がったファイル（図３３のファイル）の関係を示したものである。図３１と比較して明らかなように、TITLE_003が指定しているCHUNKGROUP_002に含まれるCHUNKとしてCHUNK_0031が増えており、CHUNK_0031はSTREAM_0031を指定している。
【０１２５】
一方、既存ストリームの上書きの途中で上書き記録が終了した場合、例えば、CHUNK_0011の記録の途中で上書き記録が終了した場合、上書きのために確保したCHUNK_0031のストリームは上書きされなかったので開放される。この場合、特殊なタイトルの処理が行われる。すなわち、TITLE_003の先頭から上書き記録を開始し、その途中で記録が終了した場合には、そこでタイトルが分割される。つまり、図３５に示すように、上書き記録開始位置から終了位置までが新たなTITLE_003とされ、それ以降の（元々のTITLE_003の残り部分）はTITLE_004とされる。
【０１２６】
次に、タイトル再生の動作について説明する。いま、図２６に示すようなファイルを有する光ディスク１を光ディスク装置に挿入し、タイトル再生するものとする。まず、光ディスク１が挿入されると、CPU２１は情報ファイルを光ディスク１から読み込んで、RAM２４に記憶させる。この動作は上述した、基本的な情報ファイルの読み込み動作を繰り返すことで行われる。
【０１２７】
CPU２１は、まず、VOLUME.TOCとALBUM.STRを読み出す。次にCPU２１は、ディレクトリ"TITLE"以下に、".VDR"の拡張子を持つファイルがいくつ有るかを調べる。この拡張子を持つファイルは、タイトルの情報を持つファイルであり、そのファイルの数はつまりタイトルの数となる。図２６の例ではタイトル数は３となる。次にCPU２１は３つのタイトル情報ファイルを読み込み、RAM２４に記憶させる。
【０１２８】
CPU２１は、OSD制御回路９を制御して、光ディスク１上に記録されているタイトルの情報を示す文字情報を発生させ、合成回路８によりビデオ信号と合成させ、出力端子Ｐ１からディスプレイに出力させ、表示させる。いまの場合、タイトルが３つあること、そして３つのタイトルそれぞれの長さや属性（名前、記録された日時など）が表示される。
【０１２９】
ここで、ユーザが、例えばTITLE_002の再生を指定したとする。TITLE_002の情報ファイルには（図１６のtitle_info()中のcgit_file_idには）、CHUNKGROUP_001を指定するファイルIDが記録されており、CPU２１はこれを記憶するとともに、CHUNKGROUP_001をRAM２４に格納させる。
【０１３０】
次に、CPU２１は、TITLE_002の開始時刻と終了時刻（図１６のtitle_info()中のtitle_start_chunk_group_time_stampとtitle_end_chunk_group_time_stamp）が、どのCHUNKに対応するかを調べる。これは、CHUNKGROUPの情報の中から、それぞれのCHUNKが登録されている情報（図２３のchunk_arrangement_info()中のpresentation_start_cg_time_countとpresentation_end_cg_time_count）を比較することで行なわれる。いまの場合、図２７に示すように、TITLE_002の開始時刻は、CHUNK_0001の途中に入っていることがわかる。つまり、TITLE_002を先頭から再生するには、ストリームファイル"CHUNK_0001.MPEG2"の途中から再生を開始すれば良いと言うことがわかる。
【０１３１】
次に、CPU２１は、TITLE_002の先頭がストリーム中のどこにあたるかを調べる。すなわち、TITLE_002の開始時刻が、ストリーム中のオフセット時刻（タイムスタンプ）としていくつにあたるのかが計算され、次にCHUNKファイル中の特徴点情報を使用して、開始時刻直前にあたる再生開始点が特定される。これにより、再生開始点のファイル先頭からのオフセット距離が確定できたことになる。
【０１３２】
次に、CPU２１は、予めその処理プログラムに組み込んであるファイルシステム操作命令を使用し、"CHUNK_0001.MPEG2"が記録されている光ディスク１上の物理アドレスと、その長さを確定する。更に、このアドレスに、先程求めた再生開始点のオフセットアドレスが加えられて、TITLE_002の再生開始点のアドレスが最終的に確定される。
【０１３３】
続いて、CPU２１は、この"CHUNK_0001.MPEG2"のアドレス情報に基づき、光ヘッド２を読み出し位置に移動させる。そしてCPU２１は、光ヘッド２、ＲＦおよび復調／変調回路３、並びにECC回路４を読み出しモードに設定するとともに、スイッチ５を読み出しチャネル用バッファ６側に切り替え、光ヘッド２の位置を微調整した後、光ヘッド２による読み出しを開始させる。これにより"CHUNK_0001.MPEG2"の内容が読み出しチャネル用バッファ６に蓄積される。
【０１３４】
読み出しチャネル用バッファ６に蓄積されたデータは、デコーダ７に出力され、デコード処理が施されて、ビデオ信号とオーディオ信号が出力される。光ディスク１から読みだされ、デコードされ、表示されたデータ量が、"CHUNK_0001.MPEG2"の大きさと等しくなった時点で、CPU２１は、TITLE_003の再生に移行する。このTITLE_003の再生動作は、TITLE_002の再生動作と同様の動作である。
【０１３５】
登録されているタイトルの再生が終了したとき、あるいは読み出し動作の停止が指示されたとき、読み出し、デコード処理が停止される。
【０１３６】
なお、光ディスク装置に、光ディスク１として、新しいディスクが挿入された場合、あるいは、異なるフォーマットのディスクが挿入された場合、CPU２１は、ディスクが挿入されたとき、VOLUME.TOCとALBUM.STRを読み出そうとするが、これらのディスクには、このようなファイルが存在しないことになる。このような場合、即ち、VOLUME.TOCとALBUM.STRを読み出すことができない場合、CPU２１はメッセージを出力し、ユーザに指示を求める。ユーザは、CPU２１に指示し、光ディスク１をイジェクトさせるか（例えば、異なるフォーマットのディスクである場合）、初期化させるか（例えば、同一フォーマットの新しいディスクである場合）、または何らかの方法によりデータを復旧させる（例えば、同一フォーマットのディスクであるが、データが破壊されている場合）。
【０１３７】
次に、ライトプロテクトについてさらに説明する。光ディスク１のケースには、書き込み禁止ノッチ（図示せず）が設けられており、この書き込み禁止ノッチを操作することで、光ディスク１に対する上書きを禁止することができる。この他、ライトプロテクトに関する情報は、光ディスク１にデータとして記録することも可能である。すなわち、上述したように、VOLUME.TOC（図２）のvolume_infomation()（図３）のwrite_protect()（図７）、または、TITLE_###.VDR（図１５）のtitle_info()（図１６）のflags_for_title、若しくは、PROGRAM_$$$.PGI（図１７）のprogram()（図１８）のflags_for_programに、ライトプロテクトに関する情報を書き込むことができるようになされている。
【０１３８】
このうちの、図７のwrite_protectを例として、ライトプロテクトに関してさらに説明する。図７のwrite_protect()のwrite_protect_lengthは、write_protect()の長さを記録する領域である。volume_write_protect_levelは、図３６に示すように、光ディスク１に記録されているすべてのtitle,programに対するwrite protectの設定を行うための情報が記録される領域である。このlevelの０は、write protectが設定されていないことを意味する。すなわち、この場合においては、光ディスク１に対して上書きが自由になされることになる。これに対して、このlevelの１は、volume_write_protect_levelのみの変更が可能であることを表す。このlevelの２は、ALBUM.STR、または０を除くより下位のレベルの変更が可能であることを意味し、その値の３は、VOLUME.TOC、または０を除くより下位のレベルの変更が可能であることを意味する。
【０１３９】
このlevelの４は、program、または０を除くより下位のレベルの変更が可能であることを意味し、その値の５は、title、または０を除くより下位のレベルの変更が可能であることを意味する。さらに、このlevelの６は、.MPEG2,.ABST、および.CGITのサフィックスが付加されているファイル、または０を除くより下位のレベルの変更が可能であることを意味する。
【０１４０】
password_enable_flagには、後述するpassword_for_volume_write_protectが有効か無効かを示すフラグが記述される。これが有効になっているとき、write_protect()の変更には、password_for_volume_write_protectに記録されているパスワードの入力が必要となる。ここで変更とは、新規作成、既に存在するものの変更、または消去を意味する。append_only_flagには、volume_write_protect_levelで許可された範囲の変更を、さらに追記のみ可能であるように限定するflagが記述される。このフラグが有効になっているとき、既に存在している情報の書き換えができなくなる。
【０１４１】
expiration_time_enable_flagには、後述するwrite_protect_expiration_time()が有効であるか否かを示すフラグが記述される。number_of_times_enable_flagは、後述するnumber_of_timesが有効であるか否かを示すフラグが記述される。password_for_volume_write_protectは、write_protect()を変更するためのパスワードが記述される領域である。
【０１４２】
write_protect_set_time()は、write_protect()が最後に設定または変更された年月日時分秒をＢＣＤ表現したものが記述される領域である。write_protect_expiration_time()は、有効期限を示す年月日時分秒の情報が、ＢＣＤ表現で記述される領域である。パスワードには有効期限が設定でき、この期間を過ぎると、パスワードなしでも、write_protect()に関する情報の変更が可能になる。この期限としては、無期限を設定することも可能である。
【０１４３】
次に、図３７のフローチャートを参照して、write_protectを変更する場合の処理について説明する。最初に、ステップＳ１において、ユーザが、入力部１４を操作して、write_protectの変更を指令すると、ステップＳ２において、CPU２１は、RAM２４に記憶されているVOLUME.TOCのvolume_information()のwrite_protect()のpessword_for_volume_write_protectに、所定のパスワードが記録されているか否かを判定する。password_enable_flagが１で、有効なパスワードが記録されている場合には、ステップＳ３に進み、CPU２１は、write_protect()中のwrite_protect_expiration_time()が、現時点において有効であるか否かを判定する。
【０１４４】
すなわち、このwrite_protect_expiration_time()には、パスワードを有効とする期間が書き込まれており、現在時刻が、このパスワードの有効期間内であるか否かが判定される。パスワードが有効期間内のものであると判定された場合には、ステップＳ４に進み、CPU２１は、OSD制御回路９を制御し、パスワードを入力すべき旨のメッセージを生成させる。このメッセージは、合成回路８、出力端子Ｐ１を介してディスプレイに出力され、表示される。ユーザは、このメッセージを見たとき、そのメッセージに従って、ステップＳ５において、入力部１４を操作し、パスワードを入力する。
【０１４５】
次に、ステップＳ６において、CPU２１は、ステップＳ５で入力されたパスワードが正しいパスワードであるか否か、すなわち、password_for_volume_write_protectに記録されているパスワードと等しいか否かが判定される。両者が等しいと判定された場合には、ステップＳ８に進み、CPU２１はOSD制御回路９を制御し、write_protectの変更を許可するメッセージを生成させる。このメッセージは、合成回路８、出力端子Ｐ１を介してディスプレイに表示される。
【０１４６】
ユーザは、このメッセージの表示を見て、ステップＳ９において、入力部１４を操作し、write_protectを変更する情報を入力する。この入力が行われたとき、ステップＳ１０において、CPU２１は、入力された情報に対応して、write_protectを更新する。すなわち、RAM２４に記憶されているwrite_protectの内容を更新するとともに、その更新した内容を光ディスク１に記録させる。
【０１４７】
ステップＳ６において、入力されたパスワードが正しいパスワードではないと判定された場合には、ステップＳ７に進み、CPU２１は、write_protectの変更を許容しない旨のメッセージをOSD制御回路９に発生させ、ディスプレイに表示させる。この場合、ステップＳ８乃至ステップＳ１０の処理はスキップされ、ユーザは、write_protectの内容を更新することができないことになる。
【０１４８】
一方、ステップＳ２において、password_for_volume_write_protectにパスワードが記録されていないと判定された場合、並びにステップＳ３において、write_protect_expiration_time()が、有効ではないと判定された場合、ステップＳ８に進み、それ以降の処理が実行される。すなわち、この場合には、ユーザは、自由にwrite_protectを更新することができることになる。
【０１４９】
次に、図３８と図３９のフローチャートを参照して、光ディスク１に所定のデータを記録する場合の処理について説明する。この処理は、ユーザが入力部１４を操作して、所定のデータの記録を指令したとき開始される。最初に、ステップＳ２１において、CPU２１は、RAM２４に記憶されているwrite_protect()中のvolume_write_protect_levelを読み取る処理を実行する。そして、ステップＳ２２乃至ステップＳ２８において、このvolume_write_protect_levelが０乃至６のいずれの値に設定されているかを判定する。
【０１５０】
ステップＳ２２において、volume_write_protect_levelが０であると判定された場合、ステップＳ３０に進み、CPU２１は、ユーザが入力部１４を操作して指令した入力に対応する記録処理を実行する。すなわち、この場合には、上書きが禁止されていないので、ユーザは、自由に記録処理を実行することができる。
【０１５１】
ステップＳ２３において、volume_write_protect_levelが１であると判定された場合、ステップＳ３１に進み、CPU２１は、記録するデータは、volume_write_protect_levelであるか否かを判定する。図３６を参照して説明したように、このlevelが１である場合には、このlevel自体の更新は許容されるが、それ以外のデータの上書きは禁止される。従って、ステップＳ３１において、上書きすべきデータとして入力されたのが、このvolume_write_protect_levelであると判定された場合には、ステップＳ３０に進み、その記録（上書き）処理が実行される。
これに対して、ステップＳ３１において、記録すべきデータとして入力されたのが、このvolume_write_protect_levelではないと判定された場合には、ステップＳ３２に進み、CPU２１は、OSD制御回路９を制御し、記録の不許可を示すメッセージを生成させ、ディスプレイに表示させる。
【０１５２】
一方、ステップＳ２４において、volume_write_protect_levelが２であると判定された場合、ステップＳ３３に進み、CPU２１は、記録すべきデータとして入力されたのが、ALBUM.STRであるか否かを判定する。このlevelが２である場合には、ALBUM.STRと、それより下位のレベルの更新データであるvolume_write_protect_levelのみが記録可能とされる。従って、入力されたデータがALBUM.STRである場合には、ステップＳ３０に戻り、入力に対応する記録処理が実行される。これに対して、ステップＳ３３において、入力されたデータが、ALBUM.STRではないと判定された場合には、ステップＳ３１に戻り、それ以降の処理が実行される。すなわち、入力されたのが、volume_write_protect_levelである場合には、その記録が許容されるが、それ以外のデータである場合には、記録が禁止される。
【０１５３】
ステップＳ２５において、volume_write_protect_levelが３であると判定された場合、ステップＳ３４に進み、入力されたデータがVOLUME.TOCであるか否かが判定される。volume_write_protect_levelが３である場合には、VOLUME.TOC，ALBUM.STR、またはvolume_write_protect_levelだけが記録可能とされるので、この場合には、ステップＳ３０に進み、入力に対応する記録処理が実行される。これに対して、ステップＳ３４において、入力されたデータが、VOLUME.TOCではないと判定された場合には、ステップＳ３３に戻り、それ以降の処理が実行される。すなわち、入力されたのが、ALBUM.STR、またはvolume_write_protect_levelである場合には、その記録が許容されるが、それ以外のデータである場合には、記録が禁止される。
【０１５４】
ステップＳ２６において、volume_write_protect_levelが４であると判定された場合には、ステップＳ３５に進み、入力されたデータがプログラム情報ファイルであるか否かが判定される。volume_write_protect_levelが４である場合には、プログラム情報ファイル、VOLUME.TOC，ALBUM.STR、またはvolume_write_protect_levelだけが記録可能とされる。
【０１５５】
従って、ステップＳ３５において入力されたのがプログラム情報ファイルであると判定された場合には、ステップＳ３０に戻り、入力対応する記録処理が実行されるが、入力されたデータがプログラム情報ファイルではないと判定された場合には、ステップＳ３４に戻り、それ以降の処理が実行される。すなわち、この場合には、入力されたデータが、VOLUME.TOC，ALBUM.STR、またはvolume_write_protect_levelであるとき、入力に対応する記録処理が実行されるが、それ以外のデータが入力された場合には、記録が禁止される。
【０１５６】
ステップＳ２７において、volume_write_protect_levelが５であると判定された場合には、ステップＳ３６に進み、入力されたデータが、タイトル情報ファイルであるか否かが判定される。volume_write_protect_levelが５である場合には、タイトル情報ファイル、プログラム情報ファイル、VOLUME.TOC，ALBUM.STR、またはvolume_write_protect_levelだけが記録可能とされる。そこで、ステップＳ３６において、入力されたデータがタイトル情報であると判定された場合には、ステップＳ３０に戻り、入力に対応する記録処理が実行されるが、入力されたデータがタイトル情報ファイルではないと判定された場合には、ステップＳ３５に戻り、それ以降の処理が実行される。すなわち、この場合には、入力されたデータが、プログラム情報ファイル、VOLUME.TOC，ALBUM.STR、またはvolume_write_protect_levelであるとき、その記録が許容されるが、それ以外のデータであるとき、記録が禁止される。
【０１５７】
ステップＳ２８において、volume_write_protect_levelが６であると判定された場合、ステップＳ３７に進み、入力されたデータが、ストリームファイルまたはチャンクグループ情報ファイルであるか否かが判定される。volume_write_protect_levelが６である場合には、ストリームファイル、チャンクグループ情報ファイル、タイトル情報ファイル、プログラム情報ファイル、VOLUME.TOC，ALBUM.STR、またはvolume_write_protect_levelだけが記録可能とされる。そこで、ステップＳ３７において、入力されたデータが、ストリームファイルまたはチャンクグループ情報ファイルであると判定された場合には、ステップＳ３０に戻り、入力に対応する記録処理が実行されるが、入力されたデータが、ストリームファイルまたはチャンクグループ情報ファイルではないと判定された場合には、ステップＳ３６に戻り、それ以降の処理が実行される。すなわち、この場合、入力されたデータが、タイトル情報ファイル、プログラム情報ファイル、VOLUME.TOC，ALBUM.STR、またはvolume_write_protect_levelであると判定されたとき、そのデータの記録が許容されるが、それ以外のデータであるとき、その記録が禁止される。
【０１５８】
ステップＳ２８において、volume_write_protect_levelが６ではないと判定された場合には、ステップＳ２９に進み、エラー処理が実行される。すなわち、図３６に示したように、volume_write_protect_levelは、０乃至６のいずれかの値に設定されており、７乃至１５の値は、さしあたって使用されていない。従って、この場合には、エラー処理が実行される。
【０１５９】
以上のvolume_write_protect_levelの関係を図示すると、図４０に示すようになる。同図に示すように、各levelにおいて、自分自身と、それより内側のデータ（より下位のデータ）の更新は許容されるが、自分より外側のデータ（上位のデータ）の更新は禁止される。
【０１６０】
以上においては、write_protect()について説明したが、flags_for_title、またはflags_for_programにも同様のライトプロテクトに関する情報が記録されており、同様の処理が実行される。
【０１６１】
なお、光ディスク１のケースに設けられた書き込み禁止ノッチ、VOLUME.TOCのwrite_protect()、flags_for_title、またはflags_for_programのそれぞれのライトプロテクトに関する情報の論理和により、書き込み禁止の制御が行われる。
すなわち、これらのいずれか１つに書き込み禁止が規定されている場合には、その書き込みが禁止される。
【０１６２】
次に、図８のplay_protect()についてさらに説明する。このplay_protect()には、その光ディスクに記録されている全てのtitleあるいは全てのprogramに対する再生時のプロテクト情報を設定することができる。個々のtitle，programに対する再生時のプロテクト情報は、図１６のtitle_info()のflags_for_title、あるいは図１８のprogram()のflags_for_programに記録される。
【０１６３】
play_protect_lengthは、play_protect()の長さをbyte単位で表したものが記述される領域である。volume_play_protect_flagは、volume（光ディスク１）全体の再生、protectの状況を表すflagが記述される領域であり、図４１に示すように、４種類の状態が設定できるようになされている。
【０１６４】
すなわち、このflagの００は、全てのtitleとprogramの再生の許容を意味する。このflagの０１は、programの再生は許容するが、titleの再生は禁止することを意味する。このflagの１０は、逆にtitleの再生は許容するが、programの再生は禁止することを意味する。さらに、このflagの１１は、programとtitleの両方の再生が禁止であることを意味する。
【０１６５】
password_enable_flagは、password_for_volume_play_protectが有効か無効かを示すflagである。
【０１６６】
expiration_time_enable_flagは、後述するplay_protect_expiration_time()が有効であるかを示すflagである。このflagが有効になっているとき、password_for_volume_play_protectはplay_protect_expiration_time()に示された有効期限を有する。
【０１６７】
number_of_times_enable_flagは、後述するnumber_of_timesが有効であるか否かを示すflagである。
【０１６８】
password_for_volume_play_protectは、プロテクトのレベルまたは有効期限を変更するためのパスワードを記述する領域である。
【０１６９】
play_protect_set_time()は、設定時間を年月日時分秒で表す領域であり、ＢＣＤにより表現される。
【０１７０】
play_protect_expiration_time()は、有効期限を記述する領域であり、年月日時分秒で記述され、ＢＣＤにより表現される。パスワードには、有効期限を設定できる。この期限を過ぎると、play_protect情報がパスワードなしでも変更可能になる。有効期限として無期限も設定可能である。
【０１７１】
number_of_timesは、回数情報が記述される領域である。
【０１７２】
次に、図４２のフローチャートを参照して、play_protectを変更する場合の処理について説明する。最初に、ステップＳ５１において、ユーザが、入力部１４を操作して、play_protectの変更を指令すると、ステップＳ５２において、CPU２１は、RAM２４に記憶されているVOLUME.TOCのvolume_information()のplay_protect()のpessword_for_volume_play_protectに、所定のパスワードが記録されているか否かを判定する。パスワードが記録されている場合には、ステップＳ５３に進み、CPU２１は、play_protect()中のplay_protect_expiration_time()が、現時点において有効であるか否かを判定する。
【０１７３】
すなわち、このplay_protect_expiration_time()には、パスワードを有効とする期間が書き込まれており、現在時刻が、このパスワードの有効期間内であるか否かが判定される。パスワードが有効期間内のものであると判定された場合には、ステップＳ５４に進み、CPU２１は、OSD制御回路９を制御し、パスワードを入力すべき旨のメッセージを生成させる。このメッセージは、合成回路８、出力端子Ｐ１を介してディスプレイに出力され、表示される。ユーザは、このメッセージを見たとき、そのメッセージに従って、ステップＳ５５において、入力部１４を操作し、パスワードを入力する。
【０１７４】
次に、ステップＳ５６において、CPU２１は、ステップＳ５５で入力されたパスワードが正しいパスワードであるか否か、すなわち、password_for_volume_play_protectに記録されているパスワードと等しいか否かが判定される。両者が等しいと判定された場合には、ステップＳ５８に進み、CPU２１はOSD制御回路９を制御し、play_protectの変更を許可するメッセージを生成させる。このメッセージは、合成回路８、出力端子Ｐ１を介してディスプレイに表示される。
【０１７５】
ユーザは、このメッセージの表示を見て、ステップＳ５９において、入力部１４を操作し、play_protectを変更する情報を入力する。この入力が行われたとき、ステップＳ６０において、CPU２１は、入力された情報に対応して、play_protectを更新する。すなわち、RAM２４に記憶されているplay_protectの内容を更新するとともに、その更新した内容を光ディスク１に記録させる。
【０１７６】
ステップＳ５６において、入力されたパスワードが正しいパスワードではないと判定された場合には、ステップＳ５７に進み、CPU２１は、play_protectの変更を禁止する旨のメッセージをOSD制御回路９に発生させ、ディスプレイに表示させる。この場合、ステップＳ５８乃至ステップＳ６０の処理はスキップされ、ユーザは、play_protectの内容を更新することができないことになる。
【０１７７】
一方、ステップＳ５２において、password_for_volume_play_protectに有効なパスワードが記録されていないと判定された場合、並びにステップＳ５３において、play_protect_expiration_time()が、有効ではないと判定された場合、ステップＳ５８に進み、それ以降の処理が実行される。すなわち、この場合には、ユーザは、自由にplay_protectを更新することができることになる。
【０１７８】
次に、図４３のフローチャートを参照して、再生時の動作について説明する。
この処理は、入力部１４をユーザが操作して、光ディスク１の再生を指令したとき開始される。
【０１７９】
最初に、ステップＳ７１において、CPU２１は、RAM２４に記憶されているvolume_play_protect_flagを読み取る。このflagは、VOLUME.TOCのvolume_information()のplay_protect()に含まれている。
【０１８０】
次に、ステップＳ７２乃至ステップＳ７５において、CPU２１は、ステップＳ７１で読み取ったvolume_play_protect_flagが、００，０１，１０または１１のいずれの値であるかを判定する。
【０１８１】
ステップＳ７２において、volume_play_protect_flagが００であると判定された場合、ステップＳ７７に進み、CPU２１は、ユーザからの指令に対応して、再生処理を実行する。すなわち、この場合、再生に制限が存在しないので、ユーザが指定したとおりの再生が行われる。
【０１８２】
ステップＳ７３において、volume_play_protect_flagが０１であると判定された場合、ステップＳ７８に進み、CPU２１は、いまユーザから指令されている再生は、titleの再生であるか否かを判定する。いま再生が指令されているのがtitleである場合、ステップＳ７９に進み、CPU２１は、OSD制御回路９を制御し、titleの再生は禁止されている旨を表すメッセージを生成させ、それを、合成回路８、出力端子Ｐ１を介して、ディスプレイに出力、表示させる。
【０１８３】
これに対して、いま再生が指令されているのがtitleではないと判定された場合には、ステップＳ７７に戻り、ユーザの指令に対応する再生が実行される。例えば、programの再生ならば実行される。
【０１８４】
ステップＳ７４において、volume_play_protect_flagが１０であると判定された場合、ステップＳ８０に進み、いま再生が指令されているのが、programであるか否かが判定される。再生が指令されているのがprogramである場合には、ステップＳ７９に戻り、CPU２１は、OSD制御回路９を制御し、programの再生禁止のメッセージを生成させ、ディスプレイに表示させる。これに対して、ステップＳ８０において、再生が指令されているのがprogramではないと判定された場合（例えば、titleであると判定された場合）、ステップＳ７７に戻り、CPU２１は、ユーザの指令に対応して、その再生を実行する。
【０１８５】
ステップＳ７５において、volume_play_protect_flagが１１であると判定された場合、ステップＳ８１に進み、CPU２１は、再生が指令されているのが、titleまたはprogramであるか否かを判定する。再生の指示されているデータがtitleまたはprogramである場合には、ステップＳ７９に戻り、CPU２１は、その再生禁止のメッセージを表示させる。これに対して、ステップＳ８１において、再生が指令されているのがtitleまたはprogramではないと判定された場合、ステップＳ７７に戻り、CPU２１は、そのデータの再生を実行させる。
【０１８６】
ステップＳ７５において、volume_play_protect_flagが１１ではないと判定された場合、ステップＳ７６に進み、CPU２１は、エラー処理を実行する。すなわち、このflagは、００，０１，１０，１１のいずれかの値とされているので、そのいずれでもないと判定された場合には、エラー処理が実行される。
【０１８７】
以上においては、volume_play_protect_flagの内容に対応して、titleまたはprogramの再生を制御するようにしたが、このflagが再生を禁止している場合、さらにパスワードが入力されたとき、その再生を許容するようにすることも可能である。図４４のフローチャートは、この場合の処理例を表している。
【０１８８】
すなわち、図４４のステップＳ９１乃至ステップＳ１０４の処理は、基本的に、図４３のステップＳ７１乃至ステップＳ８１の処理と同様の処理であるが、ステップＳ９８（図４３のステップＳ７８に対応する）、ステップＳ１０３（図４３のステップＳ８０に対応する）、またはステップＳ１０４（図４３のステップＳ８１に対応する）において、再生の指令がvolume_play_protect_flagにより禁止されているデータに対してなされたと判定された場合、ステップＳ９９に進み、CPU２１は、OSD制御回路９を制御し、パスワードを入力すべきメッセージを生成し、ディスプレイに表示させる。ユーザは、このメッセージに対応して、入力部１４を操作し、パスワードを入力する。
【０１８９】
そこで、ステップＳ１００において、CPU２１は、パスワードが入力されたか否かを判定し、パスワードが入力された場合には、ステップＳ１０１において、入力されたパスワードが正しいパスワードであるか否か、すなわち、password_for_volume_play_protectに記録されているパスワードと一致するパスワードであるか否かを判定する。パスワードが正しいと判定された場合、ステップＳ９７に戻り、CPU２１は、volume_play_protect_flagの記述に反して、そのデータの再生を実行させる。
【０１９０】
これに対して、ステップＳ１０１において、入力されたパスワードが正しくないと判定された場合、ステップＳ１０２（図４３のステップＳ７９に対応する）に進み、CPU２１は、OSD制御回路９を制御し、再生が禁止されている旨のメッセージを生成させ、ディスプレイに表示させる。ステップＳ１００において、パスワードが入力されなかった場合にも、再生禁止のメッセージが表示される。
【０１９１】
その他の処理は、図４３における場合と同様である。
【０１９２】
programを作成または編集したものは、そのprogramに対して適宜プレイプロテクト情報を記録することで、例えば各ユーザが個々のtitleを個別に再生することは自由とさせるが、programとして複数のtitleを所定の順番に組み合わせたものの再生を禁止させるようにすることができる。
【０１９３】
次に、図６のvolume_rating()についてさらに説明する。rating（格付け）とは、play_protectと同じく、再生制限をする機能の一つに分類されるものである。ここではratingの実現方法の一例として、volume_rating()を取り上げる。volume_rating()は、光ディスクに記録されているすべてのtitleあるいはすべてのprogramに対する、ratingによる視聴制限の設定をするための情報である。その他にprogram，title毎にratingを設定することも可能であるが、ここではvolume全体に効力がおよぶvolume_rating()を例として説明する。
【０１９４】
volume_rating_idは、以下に続く情報がvolume_rating()であることを表す識別子である。volume_rating_lengthは、volume_rating()の長さをbyte単位で表したものを記録するための領域である。volume_rating_typeは、ratingの設定方法を表すflagが記述される領域である。ここでは図４５に示すような、３種類のratingの方法が選択できるものとしている。
【０１９５】
すなわち、このflagの００は、各年齢に対応して視聴許可・不許可の判定をするratingの方法を選択することを意味し、このflagの０１は、MPAA（Motion Picture Association of America）による、CARAと呼ばれる分類に従ったratingの方法で視聴制限をすることを意味する。このflagの１０は、RSAC（Recreational Software Advisory Council）によるcategoryに従ったratingの方法で視聴制限をすることを意味する。
【０１９６】
volume_rating_passwordは、このvolume_rating()の情報を変更する際に必要となるpasswordを記録するための領域である。
【０１９７】
volume_rating_typeが００の場合、年齢により視聴許可・不許可の判定を行うことになる。county_code_for_ratingは、どの国に対するratingであるかを表すための領域で、国を表すcountrycodeが設定される。age_for_volume_ratingで表される年齢は、この年齢以上であれば、このvolume_rating()が記録されているvolumeに含まれる映像を視聴することが可能であるものとする。
【０１９８】
volume_rating_typeが０１の場合、CARAによる作品分類の方法に従ったratingを設定する。CARA_categoryは、volumeに含まれる映像が図４６に示す４種類（Ｇ，ＰＧ，ＰＧ−１３，ＮＣ−１７）のカテゴリの、どれに属するかを示している。
【０１９９】
volume_rating_typeが１０の場合、RSACによる作品分類の方法に従ったratingを設定する。RSAC_categoryで図４７に示すcategory（Violence Rating,Nudity Rating,Sex Rating,Language Rating）を定め、図４８に示すようにRSAC_level（０乃至４）で各categoryにおけるlevelを設定する。
【０２００】
次に、図４９のフローチャートを参照して、volume_ratingを設定する場合の処理について説明する。最初に、ステップＳ１１１において、ユーザが入力部１４を操作して、volume_ratingの変更を指令すると、ステップＳ１１２において、CPU２１は、volume_rating_passwordの入力をユーザに促す。ユーザは、そのメッセージに従って、入力部１４を操作し、パスワードを入力する。
【０２０１】
入力されたpasswordと、volume_rating_passwordが一致したか否かがステップＳ１１３で判定され、一致した場合にはステップＳ１１４に進み、CPU２１はOSD制御回路９を制御し、volume_ratingの変更が可能である旨のメッセージを生成させる。このメッセージは、合成回路８、出力端子Ｐ１を介してディスプレイに出力され、表示される。ステップＳ１１４においては、ユーザにvolume_rating_typeの選択をさせる。
【０２０２】
ステップＳ１１３において、入力されたパスワードがvolume_rating_passwordと一致しなかったと判定された場合には、ステップＳ１１８に進み、CPU２１は、volume_ratingの変更を禁止する旨のメッセージをOSD制御回路９に発生させ、ディスプレイに表示させる。この場合、ステップＳ１１４乃至ステップＳ１１７の処理はスキップされ、ユーザはvolume_ratingの内容を更新することができないことになる。
【０２０３】
ステップＳ１１５において、入力されたvolume_rating_typeがage_limitedであると判定された場合、ステップＳ１１９に進み、CPU２１は、OSD制御回路９を制御し、視聴可能年齢の問い合わせをユーザに対して行う。ユーザは入力部１４を操作して視聴可能年齢を指定する。CPU２１は、ユーザの指示に対応してage_for_volume_ratingの設定を行い、さらにcountry_code_for_ratingの設定を行う。以上の処理が終わったら、ステップＳ１２３に進む。
【０２０４】
ステップＳ１１５において、入力されたvolume_rating_typeがage_limitedでないと判定された場合には、ステップＳ１１６に進む。ステップＳ１１６において、入力されたvolume_rating_typeがCARAであると判定された場合には、ステップＳ１２０に進む。ステップＳ１２０では、CPU２１は、OSD制御回路９を制御し、どのカテゴリに設定するかをユーザに対して問い合わさせ、ユーザが入力部１４を操作して指令した通りにCARA_categoryの設定を行う。以上の処理が終わったら、ステップＳ１２３に進む。
【０２０５】
ステップＳ１１６において、入力されたvolume_rating_typeがCARAではないと判定された場合には、ステップＳ１１７に進む。ステップＳ１１７において、入力されたvolume_rating_typeがRSACであると判定された場合には、ステップＳ１２１に進む。ステップＳ１２１では、CPU２１は、OSD制御回路９を制御し、RSACで定義されているどのカテゴリに設定するかをユーザに対して問い合わさせ、ユーザが入力部１４を操作して指令した通りにRSAC_categoryの設定を行う。さらにステップＳ１２２では、CPU２１は、OSD制御回路９を制御し、RSACで定義されているどのlevelに設定するかをユーザに対して問い合わせ、ユーザが入力部１４を操作して指令した通りにRSAC_levelを設定する。以上の処理が終わったら、ステップＳ１２３に進む。
【０２０６】
ステップＳ１２３では、CPU２１は、OSD制御回路９を制御し、volume_rating_passwordの変更を行うかユーザに問い合わせる。入力部１４を操作して入力されたユーザからの指令がYESである場合、ステップＳ１２４に進み、CPU２１は、OSD制御回路９を制御し、新しいパスワードの入力をユーザに促し、ユーザは入力部１４を操作して指令した通りにパスワードの変更を行う。ステップＳ１２３において、入力部１４を操作して入力されたユーザからの指令がNOである場合には、volume_rating_passwordを変更せずに、volume_ratingの変更処理を完了する。
【０２０７】
ステップＳ１１７において、入力されたvolume_rating_typeがRSACではないと判定された場合には、ステップＳ１１８に進み、CPU２１はエラー処理を行う。すなわち、volume_rating_typeは、age_limited,CARA,RSACのいずれかの値を示すとされているので、そのいずれでもないと判定された場合には、エラー処理が実行される。
【０２０８】
次に、図５０と図５１のフローチャートを参照して、再生時のrating処理について説明する。ユーザが光ディスク装置にディスクを挿入すると、CPU２１は他の処理とともに、ディスクに記録されたvolume_rating()の読み取り処理を行う。すなわち、ステップＳ１３１において、CPU２１は光ヘッド２を制御し、光ディスク１を再生させる。再生されたデータは、光ヘッド２、RFおよび復調／変調回路３、ECC回路４、スイッチ５を介して読み出しチャネル用バッファ６に供給され、記憶される。記憶されたデータは、読み出しチャネル用バッファ６から読み出され、RAM２４に記憶される。CPU２１は、RAM２４に記憶されたデータからvolume_rating()を読み取る。
【０２０９】
ステップＳ１３２において、CPU２１はvolume_rating()中のvolume_rating_typeがage_limitedを表しているか否かを判定する。volume_rating_typeのbitがage_limitedを表しているならば、ステップＳ１３６に進む。ステップＳ１３６では、CPU２１は、volume_rating()中のcountry_code_for_ratingとage_for_volume_ratingを読み取り、光ディスク装置に設定されているcountry codeに対応した、age_for_volume_ratingを選択する。ステップＳ１３７で、光ディスク装置に設定されている視聴可能年齢とage_for_volume_ratingを比較する。ステップＳ１４２で光ディスク装置に設定されている視聴可能年齢で、そのディスクが再生可能であるならば、ステップＳ１４６に進む。ユーザが光ディスク装置に対して設定した視聴可能年齢では、そのディスクを再生することができない場合には、ステップＳ１４５に進み、再生不許可のメッセージを表示して、再生処理を停止する。
【０２１０】
ステップＳ１３２において、volume_rating()中のvolume_rating_typeがage_limitedでないと判定された場合には、CPU２１はステップＳ１３３に進む。
【０２１１】
ステップＳ１３３において、CPU２１はvolume_rating()中のvolume_rating_typeがCARAを表しているか否かを判定する。volume_rating_typeのbitがCARAを表しているならば、ステップＳ１３８に進む。ステップＳ１３８では、volume_rating()中のCARA_categoryを読み取り、ステップＳ１３９で、光ディスク装置に設定されているCARAのカテゴリと比較をする。ステップＳ１４３で光ディスク装置に設定されているCARAのカテゴリで、そのディスクが再生可能であると判定されたならば、ステップＳ１４６に進む。ユーザが光ディスク装置に対して設定したCARAのカテゴリでは、そのディスクを再生することができない場合には、ステップＳ１４５に進み、再生不許可のメッセージを表示して、再生処理を停止する。
【０２１２】
ステップＳ１３３において、volume_rating()中のvolume_rating_typeがCARAでないと判定された場合には、CPU２１はステップＳ１３４に進む。ステップＳ１３４において、CPU２１はvolume_rating()中のvolume_rating_typeがRSACを表しているか否かを判定する。volume_rating_typeのbitがRSACを表しているならば、ステップＳ１４０に進む。ステップＳ１４０では、CPU２１は、volume_rating()中のRSAC_categoryとRSAC_levelを読み取り、ステップＳ１４１で、光ディスク装置に設定されているRSACのカテゴリおよびレベルと比較をする。ステップＳ１４４で光ディスク装置に設定されているRSACのカテゴリおよびレベルで、そのディスクが再生可能であるならば、ステップＳ１４６に進む。ユーザが光ディスク装置に対して設定したRSACのカテゴリおよびレベルでは、そのディスクを再生することができない場合には、ステップＳ１４５に進み、再生不許可のメッセージを表示して、再生処理を停止する。
【０２１３】
ステップＳ１４６においては、図４３と図４４に示された処理と同様にvolume_play_protect_flagのチェックを行う。すなわち、再生制限機能として、play_protectに加えてratingも導入した場合には、図４３と図４４の処理の前にratingのチェックを行う。そして、ratingとplay_protectともに再生許可の判定が出たときにはじめて、指定のタイトルあるいはプログラムが再生可能となる。言い換えると、ratingによる再生許可判定処理とplay_protectによる再生許可判定処理のどちらか一方で再生禁止の判定がでたときには、指定のタイトルあるいはプログラムの再生は禁止される。
【０２１４】
ステップＳ１４６において、図４３と図４４と同様の処理で、再生が許可されているか、禁止されているかを判定する。その結果に基づき、ステップＳ１４７において、play_protectで再生が禁止されていればステップＳ１４５に進み、再生が許可されていれば、ステップＳ１４８に進む。
【０２１５】
ステップＳ１４８に進んだ段階で、指定されたタイトルあるいはプログラムは再生許可であると最終的に判定されたので、そのまま再生処理を続行する。
【０２１６】
以上においては、本発明を光ディスク装置に応用した場合を例として説明したが、本発明は、その他の記録媒体に情報を記録または再生する場合にも適用することが可能である。
【０２１７】
なお、上記したような処理を行うコンピュータプログラムをユーザに提供する提供媒体としては、磁気ディスク、CD-ROM、固体メモリなどの記録媒体の他、ネットワーク、衛星などの通信媒体を利用することができる。
【０２１８】
【発明の効果】
以上の如く、請求項１に記載の記録装置、請求項７に記載の記録方法、請求項８に記載の記録媒体、および請求項９に記載の記録媒体によれば、操作性を改善することが可能となる。
【０２１９】
請求項１０に記載の記録再生装置、請求項１１に記載の記録再生方法、および請求項１２に記載の記録媒体によれば、データを記録または再生する装置において、操作性を改善することが可能となる。
【図面の簡単な説明】
【図１】ディレクトリの構造を説明する図である。
【図２】  VOLUME.TOCを説明する図である。
【図３】  volume_information()を説明する図である。
【図４】  volume_attribute()を説明する図である。
【図５】  resume()を説明する図である。
【図６】  volume_rating()を説明する図である。
【図７】  write_protect()を説明する図である。
【図８】  play_protect()を説明する図である。
【図９】  recording_timer()を説明する図である。
【図１０】  text_block()を説明する図である。
【図１１】  language_set()を説明する図である。
【図１２】  text_item()を説明する図である。
【図１３】  ALBUM.STRを説明する図である。
【図１４】  album()を説明する図である。
【図１５】  TITLE_###.VDRを説明する図である。
【図１６】  title_info()を説明する図である。
【図１７】  PROGRAM_$$$.PGIを説明する図である。
【図１８】  program()を説明する図である。
【図１９】  play_list()を説明する図である。
【図２０】  play_item()を説明する図である。
【図２１】  CHUNKGROUP_###.CGITを説明する図である。
【図２２】  chunk_connection_info()を説明する図である。
【図２３】  chunk_arrangement_info()を説明する図である。
【図２４】  CHUNK_%%%%.ABSTを説明する図である。
【図２５】本発明を適用した光ディスク装置の構成例を示すブロック図である。
【図２６】ディレクトリの構造を説明する図である。
【図２７】ディレクトリの論理構造を説明する図である。
【図２８】  offsetを説明する図である。
【図２９】ディレクトリの構造を説明する図である。
【図３０】ディレクトリの構造を説明する図である。
【図３１】ディレクトリの論理構造を説明する図である。
【図３２】ディレクトリの構造を説明する図である。
【図３３】ディレクトリの構造を説明する図である。
【図３４】ディレクトリの論理構造を説明する図である。
【図３５】ディレクトリの論理構造を説明する図である。
【図３６】  volume_write_protect_levelを説明する図である。
【図３７】  write_protect変更処理を説明するフローチャートである。
【図３８】記録処理を説明するフローチャートである。
【図３９】記録処理を説明するフローチャートである。
【図４０】  volume_write_protect_levelの関係を説明する図である。
【図４１】  volume_play_protect_flagを説明する図である。
【図４２】  play_protect変更処理を説明するフローチャートである。
【図４３】再生処理を説明するフローチャートである。
【図４４】他の再生処理を説明するフローチャートである。
【図４５】  volume_rating_typeを説明する図である。
【図４６】  CARA_categoryを説明する図である。
【図４７】  RSAC_categoryを説明する図である。
【図４８】  RSAC_levelを説明する図である。
【図４９】  volume_ratingの変更処理を説明するフローチャートである。
【図５０】  volume_ratingの実行処理を説明するフローチャートである。
【図５１】  volume_ratingの実行処理を説明するフローチャートである。
【符号の説明】
１  光ディスク，  ２  光ヘッド，  ３  ＲＦおよび復調／変調回路，  ４  ECC回路，  ６  読み出しチャネル用バッファ，  ７  デコーダ，  ８  合成回路，  ９  OSD制御回路，  １０  エンコーダ，  １１  書き込みチャネル用バッファ，  １２  アドレス検出回路，  １３  システムコントローラ，  １４  入力部，  ２１  CPU，  ２２  ROM，  ２３，２４  RAM
【図１】
0004551508.tif 000002
【図２】
0004551508.tif 000003
【図３】
0004551508.tif 000004
【図４】
0004551508.tif 000005
【図５】
0004551508.tif 000006
【図６】
0004551508.tif 000007
【図７】
0004551508.tif 000008
【図８】
0004551508.tif 000009
【図９】
0004551508.tif 000010
【図１０】
0004551508.tif 000011
【図１１】
0004551508.tif 000012
【図１２】
0004551508.tif 000013
【図１３】
0004551508.tif 000014
【図１４】
0004551508.tif 000015
【図１５】
0004551508.tif 000016
【図１６】
0004551508.tif 000017
【図１７】
0004551508.tif 000018
【図１８】
0004551508.tif 000019
【図１９】
0004551508.tif 000020
【図２０】
0004551508.tif 000021
【図２１】
0004551508.tif 000022
【図２２】
0004551508.tif 000023
【図２３】
0004551508.tif 000024
【図２４】
0004551508.tif 000025
【図２５】
0004551508.tif 000026
【図２６】
0004551508.tif 000027
【図２７】
0004551508.tif 000028
【図２８】
0004551508.tif 000029
【図２９】
0004551508.tif 000030
【図３０】
0004551508.tif 000031
【図３１】
0004551508.tif 000032
【図３２】
0004551508.tif 000033
【図３３】
0004551508.tif 000034
【図３４】
0004551508.tif 000035
【図３５】
0004551508.tif 000036
【図３６】
0004551508.tif 000037
【図３７】
0004551508.tif 000038
【図３８】
0004551508.tif 000039
【図３９】
0004551508.tif 000040
【図４０】
0004551508.tif 000041
【図４１】
0004551508.tif 000042
【図４２】
0004551508.tif 000043
【図４３】
0004551508.tif 000044
【図４４】
0004551508.tif 000045
【図４５】
0004551508.tif 000046
【図４６】
0004551508.tif 000047
【図４７】
0004551508.tif 000048
【図４８】
0004551508.tif 000049
【図４９】
0004551508.tif 000050
【図５０】
0004551508.tif 000051
【図５１】
0004551508.tif 000052