(57)【要約】  【課題】マルチアングル区間毎にアングル映像の数が違ったり、またマルチアングル区間と非マルチアングル区間とが交互に出現するような場合でも、アングル映像の選択的な再生を正しく行う。  【解決手段】  遷移制御部は、現在の再生時点がマルチアングル区間に到達した際、有効なアングル番号を状態レジスタ(PSR3)に書き込む。状態レジスタに有効なアングル番号が書き込まれれば、マルチアングル区間に存在する複数のアングル映像のうち、状態レジスタ中のアングル番号に対応するものを選択的に再生する。状態レジスタに格納されたアングル番号は、現在の再生時点がマルチアングル区間から離脱すれば、無効な値として取り扱われる。  【選択図】図３３
2006191667.tif 000002
【特許請求の範囲】
【請求項１】
記録媒体に記録されたデジタルストリームを、再生区間情報に従って再生する再生装置であって、
再生区間情報には、マルチアングル区間を定義したものと、非マルチアングル区間を定義したものとがあり、
状態レジスタと、
現在の再生時点がマルチアングル区間に到達した際、状態レジスタに格納されているアングル番号が有効か否かを判定し、否であるなら、有効なアングル番号を状態レジスタに書き込む遷移制御部と、
マルチアングル区間に存在する複数のアングル映像のうち、状態レジスタ中のアングル番号に対応するものを選択的に再生する再生手段とを備え、
前記再生手段は、
現在の再生時点がマルチアングル区間から非マルチアングル区間に離脱すれば、状態レジスタに格納されているアングル番号にかかわらず、非マルチアングル区間における映像を再生する
ことを特徴とする再生装置。
【請求項２】
マルチアングル区間を定義した再生区間情報には、アングル映像の数が示されており、
前記有効なアングル番号とは、再生区間情報に示されるアングル映像数以下の番号である
ことを特徴とする請求項１記載の再生装置。
【請求項３】
記録媒体に記録されたデジタルストリームを、再生区間情報に従って再生する処理をコンピュータに実行させるプログラムであって、
再生区間情報には、マルチアングル区間を定義したものと、非マルチアングル区間を定義したものとがあり、
現在の再生時点がマルチアングル区間に到達した際、コンピュータにおける状態レジスタに格納されているアングル番号が有効か否かを判定し、否であるなら、有効なアングル番号を状態レジスタに書き込む遷移制御ステップと、
マルチアングル区間に存在する複数のアングル映像のうち、状態レジスタ中のアングル番号に対応するものを選択的に再生する再生ステップとをコンピュータに実行させ、
前記再生ステップは、
現在の再生時点がマルチアングル区間から非マルチアングル区間に離脱すれば、状態レジスタに格納されているアングル番号にかかわらず、非マルチアングル区間における映像を再生する
ことを特徴とするプログラム。
【請求項４】
記録媒体に記録されたデジタルストリームを、再生区間情報に従って再生する再生方法であって、
再生区間情報には、マルチアングル区間を定義したものと、非マルチアングル区間を定義したものとがあり、
現在の再生時点がマルチアングル区間に到達した際、コンピュータにおける状態レジスタに格納されているアングル番号が有効か否かを判定し、否であるなら、有効なアングル番号を状態レジスタに書き込む遷移制御ステップと、
マルチアングル区間に存在する複数のアングル映像のうち、状態レジスタ中のアングル番号に対応するものを選択的に再生する再生ステップとを有し、
前記再生ステップは、
現在の再生時点がマルチアングル区間から非マルチアングル区間に離脱すれば、状態レジスタに格納されているアングル番号にかかわらず、非マルチアングル区間における映像を再生する
ことを特徴とする再生方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記録媒体についての再生装置に関する。
【背景技術】
【０００２】
近年の映画作品には、複数のアングル映像から構成されるマルチアングル区間を記録媒体に記録しておき、このアングル映像を選択的に再生させようという傾向がある。この場合再生装置には、複数のアングル映像のうち、どれを再生しておくかを、内部のレジスタ(状態レジスタ)等に保存しておく必要がある。
尚、上述した再生機能には、以下の特許文献に示す先行技術が存在する。
【特許文献１】特許３１２８２２０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
再生しようとする記録媒体にマルチアングル区間が複数存在し、マルチアングル区間毎にアングル映像の数が違ったり、またマルチアングル区間と非マルチアングル区間とが交互に出現するような場合は、かかる状態レジスタに従って、再生を行おうとすると、アングル映像の選択がおかしくなるような場合がある(原出願の図３３（ａ）（ｂ）)。
本発明の目的は、マルチアングル区間毎にアングル映像の数が違ったり、またマルチアングル区間と非マルチアングル区間とが交互に出現するような場合でも、アングル映像の選択的な再生を正しく行うことができる再生装置を提供することである。
【課題を解決するための手段】
【０００４】
上記目的を達成するため、本発明にかかる再生装置は、記録媒体に記録されたデジタルストリームを、再生区間情報に従って再生する再生装置であって、再生区間情報には、マルチアングル区間を定義したものと、非マルチアングル区間を定義したものとがあり、状態レジスタと、現在の再生時点がマルチアングル区間に到達した際、状態レジスタに格納されているアングル番号が有効か否かを判定し、否であるなら、有効なアングル番号を状態レジスタに書き込む遷移制御部と、マルチアングル区間に存在する複数のアングル映像のうち、状態レジスタ中のアングル番号に対応するものを選択的に再生する再生手段とを備え、前記再生手段は、現在の再生時点がマルチアングル区間から非マルチアングル区間に離脱すれば、状態レジスタに格納されているアングル番号にかかわらず、非マルチアングル区間における映像を再生することを特徴としている。
【発明の効果】
【０００５】
本発明は上述した構成を有しているので、図３３（ｂ）のようにマルチアングル区間におけるアングル映像の数が減ったりする場合は、遷移制御部は、状態レジスタに格納されているアングル番号が有効か否かを判定し、もし否であるなら、マルチアングル区間の突入時に、そのマルチアングル区間において有効なアングル番号を状態レジスタに書き込む。こうすることで、図３３（ｂ）においてアングル映像の数が、“３”から“２”に減った場合でも、減ったアングル映像の中から、最適なアングル映像が選択されるので、たとえアングル映像の数に、増減があったとしても、スムーズなアングル再生を実現することができる。
【０００６】
一方、現在の再生時点がマルチアングル区間から非マルチアングル区間に離脱すると、再生手段は、状態レジスタに格納されているアングル番号にかかわらず、非マルチアングル区間における映像を再生するので、マルチアングル区間及び非マルチアングル区間が、マルチアングル区間→非マルチアングル区間→マルチアングル区間の順に、交互に現れたとしても、遷移制御部は、途中の非マルチアングル区間で、状態レジスタ内のアングル番号を、別の番号に置き変える必要はない。こうすることにより、例えば、再生装置が、図３３（ａ）のように“２番”のアングル番号をユーザ操作に基づいて設定した場合、マルチアングル区間、非マルチアングル区間が、マルチアングル区間→非マルチアングル区間→マルチアングル区間の順に、交互に現れたとしても、２番のアングル映像を、再生させてゆくことができる。
【発明を実施するための最良の形態】
【０００７】
(第１実施形態)
以降、本発明に係る再生装置の実施形態について説明する。先ず始めに、本発明に係る再生装置の実施行為のうち、使用行為についての形態を説明する。図１は、本発明に係る再生装置の、使用行為についての形態を示す図である。図１において、本発明に係る再生装置は再生装置２００であり、テレビ３００、リモコン４００と共にホームシアターシステムを形成する。
【０００８】
このBD-ROM１００は、再生装置２００、テレビ３００、リモコン４００により形成されるホームシアターシステムに、映画作品を供給するという用途に供される。
またリモコン４００は、再生装置に対する操作をユーザから受け付けるものである。図１（ｂ）は、対話画面に対する操作をユーザから受け付けるためのリモコン４００におけるキーを示す図である。本図に示すようにリモコン４００は、MoveUpキー、MoveDownキー、MoveRightキー、MoveLeftキー、音声切り換え操作を受け付ける音声切換キー、字幕切り換え操作を受け付ける字幕切換キー、数値キー「0」〜「9」が設けられている。
【０００９】
以上が本発明に係る再生装置の使用形態についての説明である。
続いて本発明に係る再生装置の再生の対象となる、記録媒体であるBD-ROMについて説明する。図２は、BD-ROMの構成を示す図である。本図の第４段目にBD-ROMを示し、第３段目にBD-ROM上のトラックを示す。本図のトラックは、BD-ROMの内周から外周にかけて螺旋状に形成されているトラックを、横方向に引き伸ばして描画している。このトラックは、リードイン領域と、ボリューム領域と、リードアウト領域とからなる。本図のボリューム領域は、物理層、ファイルシステム層、応用層というレイヤモデルをもつ。ディレクトリ構造を用いてBD-ROMの応用層フォーマット(アプリケーションフォーマット)を表現すると、図中の第１段目のようになる。本図に示すようにBD-ROMには、ROOTディレクトリの下にBDMVディレクトリがあり、BDMVディレクトリの配下には、YYY.MPLS,XXX.CLPI,XXX.M2TS,ZZZ.M2TS,ZZZ.CLPIといったファイルが存在する。ファイルXXX.M2TSがAVClipにあたり、ファイルXXX.CLPIがClip情報にあたる。
【００１０】
本図に示すようなアプリケーションフォーマットを作成することにより、本発明に係る記録媒体は生産される。
＜AVClipの構成＞
続いて、映画コンテンツの構成要素(AVClip−Clip情報)のうち、AVClipについて説明する。
【００１１】
図３は、AVClipがどのように構成されているかを模式的に示す図である。
AVClipは(中段)、複数のビデオフレーム(ピクチャpj1,2,3)からなるビデオストリーム、複数のオーディオフレームからなるオーディオストリームを(上１段目)、PESパケット列に変換し(上２段目)、更にTSパケットに変換し(上３段目)、同じく字幕系のプレゼンテーショングラフィクスストリーム(PGストリーム)及び対話系のインタラクティブグラフィクスストリーム(IGストリーム)を(下１段目)を、PESパケット列に変換し(下２段目)、更にTSパケットに変換して(下３段目)、これらを多重化することで構成される。
【００１２】
字幕を構成するのはAVClipに多重されたPGストリームだけではない。textSTストリームによっても字幕は構成される、textSTストリームとは、テキストデータにより字幕を表現するデータ列である。textSTストリームは、SubClipと呼ばれ、AVClipとは別のファイル名でBD-ROM又は再生装置内のHDに記録される。字幕を構成するPGストリーム、textSTストリームはPG_textST_streamという名称で呼ばれる。以上がAVClipについての説明である。
【００１３】
＜Clip情報の構成＞
続いて、XXX.CLPIについて説明する。
Clip情報(XXX.CLPI)は、個々のAVClipについての管理情報である。図４は、Clip情報の内部構成を示す図である。図中の引き出し線はClip情報の構成をクローズアップしている。引き出し線hn1に示すように、Clip情報(XXX.CLPI)は、「Program Info.」と、ビデオストリームのうち、Iピクチャの先頭に頭出しするための「EP_map」とを含む。
【００１４】
『Program info』は、AVClipに多重化されている個々のエレメンタリストリームについてのPID及び属性を、stream_indexに対応づけて示す情報である。stream_indexは、本Clip情報が対応するAVClipに多重化されている個々のエレメンタリストリームについてのインデックスである。stream_indexで識別されるエレメンタリストリームのPIDは、破線の矢印hn2に示す複数のstream_PID[stream_index]entryに示される。
【００１５】
また各エレメンタリストリームの属性は、破線の矢印hn3に示す複数のstream_Attribute[stream_index]に示される。これに示される属性には、ビデオの属性、オーディオの属性、グラフィクスの属性といったものがある。ビデオ属性は、PIDに対応するエレメンタリストリームがどのような圧縮方式で圧縮されたか(Coding)、ビデオストリームを構成する個々のピクチャデータの解像度がどれだけであるか(Resolution)、アスペクト比はどれだけであるか(Aspect)、フレームレートはどれだけであるか(Framerate)等を示す。一方、オーディオ属性は、そのオーディオストリームがどのような圧縮方式で圧縮されたか(Coding)、そのオーディオストリームのチャネル属性が何であるか(Ch.)、何という言語に対応しているか(Lang)等を示す。stream_indexを介することにより、所望のエレメンタリストリームの属性をProgram Info.から検索することができる。
【００１６】
『EP_map』は、複数の頭出し位置のアドレスを、時刻情報を用いて間接参照するためのリファレンステーブルであり、破線の引き出し線hn5に示すように複数のエントリー情報(ACCESS UNIT#1エントリー、ACCESS UNIT#2エントリー、ACCESS UNIT#3エントリー・・・・・)と、エントリー数(Number)とからなる。
各エントリーは、引き出し線hn6に示すように、対応するIピクチャの再生開始時刻を、Iピクチャのアドレスと、Iピクチャのサイズ(I-size)とを対応づけて示す。Iピクチャの再生開始時刻は、Iピクチャのタイムスタンプ(Presentation Time Stamp)で表現される。またIピクチャアドレスは、TSパケットの連番(SPN(Source Packet Number))で表現される。尚、XXX.CLPIのファイル名XXXは、Clip情報が対応しているAVClipと同じ名称が使用される。つまり本図におけるAVClipのファイル名はXXXであるから、AVClip(XXX.M2TS)に対応していることを意味する。以上がClip情報についての説明である。
【００１７】
＜ZZZ.M2TS、ZZZ.CLPI＞
続いてZZZ.M2TS、ZZZ.CLPIについて説明する。サブClip(ZZZ.M2TS)は、他のAVClipと同期再生されるストリームを格納したファイルである。かかるストリームの代表的なものが上述したtextSTストリームである。この他のサブClipには、オーディオストリームやIGストリームがある。サブClipと区別するため、図３に示したAVClipをメインClipと呼ぶ。
【００１８】
Clip情報(ZZZ.CLPI)は、サブClipに対するClip情報である。  
＜PL情報の構成＞
続いてYYY.MPLSについて説明する。プレイリスト情報(YYY.MPLS)は、メインパス、サブパスと呼ばれる2種類の再生経路を束ねたものをPlaylist(PL)として定義する情報である。図５は、プレイリスト情報のデータ構造を示す図であり、本図に示すようにプレイリスト情報は、メインパスを定義するPlay Item情報#1,#2・・・・#mと、サブパスを定義するサブパス情報#1,#2・・・・#pとからなる。
【００１９】
メインパスとは、主たるAVClip上に定義される再生経路である。一方サブパスは、サブClip上に定義される再生経路である。
先ずメインパスについて説明する。メインパスは、複数のPlayItem情報(PlayItem情報#1,#2,#3・・・#m)と、これらPlayItem情報数(Number)とから定義される。PlayItem情報は、メインパスを構成する1つ以上の論理的な再生区間を定義する。PlayItem情報の構成は、引き出し線hs1によりクローズアップされている。この引き出し線に示すようにPlayItem情報は、再生区間のIn点及びOut点が属するAVClipのClip情報のファイル名を示す『Clip_Information_file_name』と、当該AVClipがどのような符号化方式で符号化されているかを示す『Clip_codec_identifier』と、再生区間の始点を示す時間情報『IN_time』と、再生区間の終点を示す時間情報『OUT_time』と、AVClipやサブClipに多重化されているエレメンタリストリームのうち、再生可能なものを示す『STN_table』とから構成される。
【００２０】
PlayItem情報の特徴は、時間情報−アドレス変換を前提にした表記法にある。つまりEP_mapをリファレンステーブルとして用いた間接参照の形式で、再生区間が定義されている。図６は、PL情報による間接参照を模式化した図である。本図においてAVClipは、複数のTSパケットから構成されている。Clip情報内のEP_mapは、これら複数Iピクチャの先頭にあたる位置のTSパケットのセクタアドレスを、矢印ay1,2,3,4に示すように指定している。図中の矢印jy1,2,3,4は、PlayItem情報によるTSパケットの参照を模式化して示している。つまり、PlayItem情報による参照(矢印jy1,2,3,4)は、EP_mapを介することにより、AVClip内に含まれる複数TSパケットのアドレスを指定するという間接参照であることがわかる。
【００２１】
PlayItem情報−Clip情報−AVClipの組みからなるBD-ROM上の再生区間を『Play Item』という。BD-ROMに記録された映画作品は、このPlay Itemにて構成される。論理的な再生単位にて、BD-ROMにおける映画作品は構成されるので、ある映画作品のシーンを構成するAVClipを他の映画作品で引用するという”使い回し”を効率良く行うことができる。
様々なPL情報を定義するだけで、映画作品のバリエーションは増えるので、映画制作者の表現の幅を増やせることが、静的なシナリオの最大のメリットである。また、BD-ROMにおける再生単位には、PlayItemといったものの他、Title、Chapterがある。Titleとは、いわゆる映画作品に相当する再生単位であり、1つ以上のPL情報から構成される。一方Chapterとは、いわゆる章に相当する単位であり、Mark情報と呼ばれる情報により規定される。
【００２２】
尚、PL情報のファイル名YYYは、BD-ROMにおいてPL情報に付与される3桁の識別番号を抽象化している。つまり本図におけるPL情報は、この識別番号YYYを用いて一意に識別される。PL情報の識別番号を”YYY”と表現しているのは、PL情報の識別番号が、AVClip及びAVClip情報の識別番号XXXとは別の番号体系であることを意味している(ここでの3桁という桁数は例示に過ぎず、何桁でもよい。)。
【００２３】
以上がメインパスについての説明である。続いてサブパスについて説明する。
＜サブパス＞
図５の矢印hc1は、サブパス情報の内部構成をクローズアップして示す。この矢印hc1に示すように各サブパス情報は、1つ以上のサブPlayItemからなる。また各サブPlayItemは、図中の矢印hc2に示すように『Clip_information_file_name』、『clip_codec_identifier』、『SubPlayItem_In_time』、『SubPlayItem_Out_time』、『sync_PlayItem_id』、『sync_start_PTS_of_PlayItem』からなる。
【００２４】
『Clip_information_file_name』は、Clip情報のファイル名を記述することにより、サブPlayItemに対応するサブClipを一意に指定する情報である。
『Clip_codec_identifier』は、サブClipがどのような符号化方式で符号化されているかを示す。
『SubPlayItem_In_time』は、サブClipの再生時間軸上における、サブPlayItemの始点を示す情報である。
【００２５】
『SubPlayItem_Out_time』は、サブClipの再生時間軸上における、サブPlayItemの終点を示す情報である。
『sync_PlayItem_id』は、メインパスを構成するPlayItemのうち、本サブPlayItemが同期すべきものを一意に指定する情報である。SubPlayItem_In_timeは、このsync_PlayItem_idで指定されたPlay Itemの再生時間軸上に存在する。
【００２６】
『sync_start_PTS_of_PlayItem』は、sync_PlayItem_idで指定されたPlay Itemの再生時間軸上において、SubPlayItem_In_timeで指定されたサブPlayItemの始点が、どこに存在するかを示す。サブPlayItemの再生時において、現在の再生時点が、このsync_start_PTS_of_PlayItemで指示される時点に到来した場合、サブPlayItemによる再生が開始される。
【００２７】
図７は、sync_PlayItem_id,sync_start_PTS_of_PlayItemによるサブPlayItemの同期を模式的に示す図である。本図におけるメインパスは、Play Item#1,#2,#3からなる。サブパスを構成するサブPlayItemのsync_PlayItem_id,sync_start_PTS_of_PlayItemの指定は、破線枠wh1の内部に示す通りであり、sync_PlayItem_idはPlayItem#1を示すように設定されている。sync_start_PTS_of_PlayItemは、Play Itemの再生時間軸上における時点t1を示すように設定されている。そうすると、Play Itemの再生時間軸上において、現在の再生時点がt1に到達した際、Clip_information_file_nameで指定されたサブClip(textSTストリーム)のうち、SubPlayItem_In_timeからSubPlayItem_Out_timeまでの部分が再生されることになる。かかる再生により、textSTストリームのうち、SubPlayItem_In_time、SubPlayItem_Out_timeで指定された部分がAVClipと同期再生されることになる。以上がサブパス情報についての説明である。
【００２８】
上述したPlay Item情報の構成においてSTN_tableは、状態設定に用いられる情報であり、本発明の実施になくてはならない必要不可欠な要素である。以降STN_tableについてより詳細に説明する。
＜STN_table＞
STN_tableは、Play ItemのClip_Information_file_nameで指定されているAVClipに多重化された複数エレメンタリストリームやサブPlayItemのClip_Information_file_nameで指定されているサブClip内のエレメンタリストリームのうち、再生可能なものを示すテーブルである。具体的にいうと、複数エレメンタリストリームのそれぞれについてのentryを、attributeと対応付けることで構成される。ここで”再生可能”とは、Play Itemにより指定されているAVClipに多重されているエレメンタリストリームを主として意味する。しかしこれだけではなく、AVClipとは別個に記録されながら、このエレメンタリストリームと共に再生されるエレメンタリストリーム(textSTストリーム)も含む。
【００２９】
図８は、STN_tableの内部構成を示す図である。本図に示すようにSTN_tableは、STN_tableにおけるentryと、attributeとの組み(entry-attribute)を複数含み、これらentry−attributeの組みの個数(number_of_video_stream_entries,number_of_audio_stream_entries,number_of_PG_textST_stream_entries,number_of_IG_stream_entries)を示すデータ構造になっている。
【００３０】
entry-attributeの組みは、図中の括弧記号”｛”に示すように、Play Itemにおいて再生可能なビデオストリーム、オーディオストリーム、PG_textST_stream、IGストリームのそれぞれに対応している。
entry−attributeの詳細について説明する。図９（ａ）〜（ｄ）は、entry−attributeの詳細を示す図である。
【００３１】
図９（ａ）は、ビデオストリームに対応したentry−attributeの組みを示す図である。
ビデオストリームにおけるentryは、AVClipを多重分離するにあたって、当該ビデオストリームの抽出に用いられるPIDを示す『ref_to_stream_PID_of_mainClip』を含む。
ビデオストリームにおけるattributeは、0x02に設定された『stream_coding_type』と、ビデオストリームの表示レートを示す『Frame_rate』等を含む。
【００３２】
図９（ｂ）は、オーディオストリームに対応したentry−attributeの組みを示す図である。
オーディオストリームにおけるentryは、AVClipを多重分離するにあたって、当該オーディオストリームの抽出に用いられるPIDを示す『ref_to_stream_PID_of_mainClip』を含む。
【００３３】
オーディオストリームにおけるattributeは、0x80(LinearPCM),0x81(AC-3),0x82(DTS)の何れかに設定されることによりオーディオストリームのコーデイングタイプを示す『stream_coding_type』と、対応するオーディオストリームのチャネル構成を示し、サラウンド出力の可否を示す『audio_presentation_type』と、対応するオーディオストリームの言語属性を示す『audio_language code』等からなる。
【００３４】
図９（ｃ）は、PGストリームに対応したentry−attributeの組みを示す図である。
PGストリームにおけるentryは、AVClipを多重分離するにあたって、当該PGストリームの抽出に用いられるPIDを示す『ref_to_stream_PID_of_mainClip』を含む。
PGストリームにおけるattributeは、0x90に設定されることによりPGストリームのコーディックを示す『stream_coding_type』と、対応するPGストリームの言語属性を示す『PG_language code』とからなる。
【００３５】
図９（ｄ）は、textSTストリームに対応したentry−attributeの組みを示す図である。
textSTストリームにおけるentryは、textSTストリームを格納したSubClipのentry識別子を示す『ref_to_subClip_entry_ID』と、Subpath情報のIDを示す『ref_to_subPath_ID』と、textSTストリームに付加されたPIDを示す『ref_to_stream_PID_of_subClip』とからなる。
【００３６】
textSTストリームにおけるattributeは、0x92に設定されることによりtextSTストリームである旨を示す『stream_coding_type』と、対応するtextSTストリームのキャラクタコードを示す『character code』と、対応するtextSTストリームの言語属性を示す『language code』とからなる。
図９（ｅ）は、IGストリームに対応したentry−attributeの組みを示す図である。
【００３７】
IGストリームにおけるentryは、AVClipを多重分離するにあたって、当該IGストリームの抽出に用いられるPIDを示す『ref_to_stream_PID_of_mainClip』を含む。
IGストリームにおけるattributeは、0x91に設定されることによりIGストリームのコーディックを示す『stream_coding_type』と、対応するIGストリームの言語属性を示す『language code』とからなる。以上が各エレメンタリストリームについてのentry−attributeのデータ構造である。STN_tableにおけるentryの順位は、対応するストリームを選択するにあたっての優先順位として解釈される。またSTN_tableにおいてtextSTストリーム、PGストリームをひとまとめにして記述しているのは、PGストリーム、textSTストリームを対等に扱い、これらの優劣を規定するためである。つまりPG_textST_streamに相当するentry群においてtextSTストリームに対応するentryがPGストリームに対応するentryより上位に記述されている場合、PGストリームよりもtextSTストリームが優先的に選択されることになる。逆にSTN_tableにおいてPGストリームに対応するentryが、textSTストリームに対応するentryより上位に記述されている場合、PGストリームが優先的に選択されることになる。
【００３８】
以上のSTN_tableは、プレイリスト情報毎に存在するから、あるプレイリスト情報内のSTN_tableでは、あるエレメンタリストリームのentryが上位であるが、別のプレイリスト情報内のSTN_tableでは、そのエレメンタリストリームのentryが下位に設定されることもある。
以上がBD-ROMにおけるアプリケーションフォーマットのデータ構造である。本発明に係る再生装置が対象としている記録媒体は、BD-ROMだけではない。再生装置に内蔵されているHDも再生の対象となる。このHDに記録されているデータについて説明する。かかるHDにも、サブClipを格納したファイル、Clip情報を格納したファイル、プレイリスト情報を格納したファイルが存在する。これらのファイルは、ネットワークを介してプリロードされたサブClip、Clip情報、プレイリスト情報である。図１０は、プリロードされたプレイリスト情報の内部構成を示す図である。本図に示すようにプリロードプレイリスト情報は、図５に示したBD-ROM上のプレイリスト情報と同じ構成になっている。異なるのは、Play Item情報におけるClip_Information_file_name及びサブPlayItem情報のClip_Information_file_nameが、BD-ROM及びHDのどちらに存在するClip情報であっても、指定できる点である。この指定にあたって、プリロードプレイリスト情報は、BD-ROM上のファイルをフルパスで指定する必要はない。本HDは、BD-ROMと一体になって、仮想的な1つのドライブ(バーチャルパッケージと呼ばれる)として、再生装置により認識されるからである。故に、Play Item情報におけるClip_Information_file_name及びサブPlayItem情報のClip_Information_file_nameは、Clip情報の格納したファイルのファイルボデイにあたる数値XXX,ZZZを指定することにより、HD、BD-ROM上のAVClipを指定することができる。図１１は、HD上のプレイリスト情報内のClip_Information_file_nameによるファイル指定を示す図である。本図における矢印rf1,rf2,rf3は、プレイリスト情報におけるPlay ItemのClip_Information_file_nameによる指定を示し、矢印pf1,pf2,pf3は、プレイリスト情報におけるサブPlayItemのClip_Information_file_nameによる指定を示す。このようなClip_Information_file_nameによる指定により、HD上のサブClipに定義されたサブパスを、BD-ROM上のメインClip上に定義されたメインパスと同期して再生することができる。
【００３９】
以上説明したデータ構造は、プログラミング言語で記述されたクラス構造体のインスタンスであり、オーサリングを行う制作者は、このクラス構造体を記述することにより、BD-ROM上のこれらのデータ構造を得ることができる。
以上が記録媒体の説明である。続いて本発明に係る再生装置の実施形態について説明する。図１２は、本発明に係る再生装置の内部構成を示す図である。本発明に係る再生装置は、本図に示す内部に基づき、工業的に生産される。本発明に係る再生装置は、主としてシステムLSIと、ドライブ装置という2つのパーツからなり、これらのパーツを装置のキャビネット及び基板に実装することで工業的に生産することができる。システムLSIは、再生装置の機能を果たす様々な処理部を集積した集積回路である。こうして生産される再生装置は、BDドライブ１、リードバッファ２、デマルチプレクサ３、ビデオデコーダ４、ビデオプレーン５、P-Graphicsデコーダ９、Presentation Graphicsプレーン１０、合成部１１、フォントゼネレータ１２、I-Graphicsデコーダ１３、スイッチ１４、Interactive Graphicsプレーン１５、合成部１６、HDD１７、リードバッファ１８、デマルチプレクサ１９、オーディオデコーダ２０、シナリオメモリ２３、制御部２４、スイッチ２５、CLUT部２６、CLUT部２７、PSRセット２８、操作受付部２９、遷移制御部３０から構成される。
【００４０】
BD-ROMドライブ１は、BD-ROMのローディング／イジェクトを行い、BD-ROMに対するアクセスを実行する。
リードバッファ２は、FIFOメモリであり、BD-ROMから読み出されたTSパケットが先入れ先出し式に格納される。
デマルチプレクサ(De-MUX)３は、リードバッファ２からTSパケットを取り出して、このTSパケットを構成するTSパケットをPESパケットに変換する。そして変換により得られたPESパケットのうち、制御部２４から設定されたstreamPIDをもつものをビデオデコーダ４、オーディオデコーダ２０、P-Graphicsデコーダ９、I-Graphicsデコーダ１３のどれかに出力する。
【００４１】
ビデオデコーダ４は、デマルチプレクサ３から出力された複数PESパケットを復号して非圧縮形式のピクチャを得てビデオプレーン５に書き込む。
ビデオプレーン５は、非圧縮形式のピクチャを格納しておくためのプレーンである。プレーンとは、再生装置において一画面分の画素データを格納しておくためのメモリ領域である。再生装置に複数のプレーンを設けておき、これらプレーンの格納内容を画素毎に加算して、映像出力を行えば、複数の映像内容を合成させた上で映像出力を行うことができる。ビデオプレーン５における解像度は1920×1080であり、このビデオプレーン５に格納されたピクチャデータは、16ビットのYUV値で表現された画素データにより構成される。
【００４２】
P-Graphicsデコーダ９は、BD-ROM、HDから読み出されたグラフィクスストリームをデコードして、非圧縮グラフィクスをPresentation Graphicsプレーン１０に書き込む。グラフィクスストリームのデコードにより、字幕が画面上に現れることになる。
Presentation Graphicsプレーン１０は、一画面分の領域をもったメモリであり、一画面分の非圧縮グラフィクスを格納することができる。本プレーンにおける解像度は1920×1080であり、Presentation Graphicsプレーン１０中の非圧縮グラフィクスの各画素は8ビットのインデックスカラーで表現される。CLUT(Color Lookup Table)を用いてかかるインデックスカラーを変換することにより、Presentation Graphicsプレーン１０に格納された非圧縮グラフィクスは、表示に供される。
【００４３】
合成部１１は、非圧縮状態のピクチャデータ(i)を、Presentation Graphicsプレーン１０の格納内容と合成する。
フォントゼネレータ１２は、文字フォントを用いてtextSTストリームに含まれるテキストコードをビットマップに展開する。
I-Graphicsデコーダ１３は、BD-ROM又はHDから読み出されたIGストリームをデコードして、非圧縮グラフィクスをInteractive Graphicsプレーン１５に書き込む。
【００４４】
スイッチ１４は、フォントゼネレータ１２が生成したフォント列、P-Graphicsデコーダ９のデコードにより得られたグラフィクスの何れかを選択的にPresentation Graphicsプレーン１０に書き込むスイッチである。
Interactive Graphicsプレーン１５は、I-Graphicsデコーダ１３によるデコードで得られた非圧縮グラフィクスが書き込まれる。
【００４５】
合成部１６は、非圧縮状態のピクチャデータ(i)、Presentation Graphicsプレーン１０の格納内容と合成されたピクチャデータ(ii)をInteractive Graphicsプレーン１５の格納内容と合成する。
HDD１７は、上述した再生装置組込型のHDである。本HDDの記録内容を読み出し、BD-ROMの記録内容と動的に組み合わせることにより、BD-ROMに存在しないグラフィクスストリームの再生や、BD-ROMに存在しないtextSTストリームによる再生を実現することができる。
【００４６】
リードバッファ１８は、FIFOメモリであり、HDD１７から読み出されたTSパケットが先入れ先出し式に格納される。
デマルチプレクサ(De-MUX)１９は、リードバッファ１８からTSパケットを取り出して、TSパケットをPESパケットに変換する。そして変換により得られたPESパケットのうち、制御部２４により指示されたstreamPIDをもつものをフォントゼネレータ１２に出力する。
【００４７】
オーディオデコーダ２０は、デマルチプレクサ１９から出力されたPESパケットを復号して、非圧縮形式のオーディオデータを出力する。
シナリオメモリ２３は、カレントのPL情報やカレントのClip情報を格納しておくためのメモリである。カレントPL情報とは、BD-ROMに記録されている複数PL情報のうち、現在処理対象になっているものをいう。カレントClip情報とは、BD-ROMに記録されている複数Clip情報のうち、現在処理対象になっているものをいう。
【００４８】
制御部２４は、シナリオメモリ２３に読み出されたカレントPL情報、カレントClip情報に従い、BD-ROMに記録されたAVClipを読み出し、再生するとの制御を行う。この制御にあたってデマルチプレクサ３はカレントPL情報のうち、プレイリスト情報からカレントPlay Itemを特定し、そのカレントPlay ItemのClip_information_file_nameにより指定されているAVClipをアクセスする。そしてカレントClip情報を参照して、AVClipのうち、Play ItemのIn_timeからOut_timeまでに相当するTSパケットを読み出すようBD-ROMドライブ１を制御する。TSパケットが読み出されれば、これを順次デマルチプレクサ３を介して、ビデオデコーダ４、P-Graphicsデコーダ９、I-Graphicsデコーダ１３、オーディオデコーダ２０に投入し、AVClipを再生させてゆく。
【００４９】
カレントPlay Itemに同期するサブPlayItemがプレイリスト情報内に存在する場合、制御部２４はそのサブPlayItemにて指定されるサブClipをメインClipと同期して再生させる。この同期は、サブPlayItemのSync_Start_PTS_of_PlayItemに相当するピクチャデータが、メインClipから読み出されるのを待ち、そのサブPlayItemのSubPlayItem_In_timeからSubPlayItem_Out_timeまでに存在するデータを再生することでなされる。
【００５０】
スイッチ２５は、BD-ROM及びHDから読み出された各種データを、リードバッファ２、リードバッファ１８、シナリオメモリ２３のどれかに選択的に投入するスイッチである。
CLUT部２６は、ビデオプレーン５に格納された非圧縮グラフィクスにおけるインデックスカラーを、Y,Cr,Cb値に変換する。
CLUT部２７は、Interactive Graphicsプレーン１５に格納された非圧縮グラフィクスにおけるインデックスカラーを、Y,Cr,Cb値に変換する。
【００５１】
PSRセット２８は、再生装置に内蔵されるレジスタであり、64個のPlayer Status Register(PSR)と、4096個のGeneral Purpose Register（GPR)とからなる。Player Status Registerの設定値(PSR)がどのような意味をもつかは、後で詳細に説明する。
操作受付部２９は、ストリーム等を選択する操作が、リモコンや再生装置のフロントパネルに対してなされれば、その操作を示すUser Operation情報を制御部２４に出力する。
【００５２】
遷移制御部３０は、制御部２４の1つ構成要素であり、STN_tableに記述されているentry−attributeの組みのうち、PSRの数値に対応するものの中からStream-PIDを取り出して、デマルチプレクサ３、デマルチプレクサ１９に設定する。デマルチプレクサ３、デマルチプレクサ１９に対する設定は、PSRの設定値に基づくため、遷移制御部３０は装置における状態変化や変更要求に応じてPSRに値を設定するとの処理を行う。
【００５３】
再生装置の状態変化時において遷移制御部３０は、設定値が無効な値(Invalid)であるか、不定値であるかを判定し、有効な値(Valid)であるなら、PSRの設定値を維持する。不定値又は無効な値であるなら、最適な値をPSRに設定する。
また操作受付部２９から出力されたUser Operation情報やI-Graphicsデコーダ１３から出力されたボタンコマンドによりPSRの変更が要求された場合、遷移制御部３０は、操作受付部２９から出力されたUser Operation情報、I-Graphicsデコーダ１３から出力されたボタンコマンドに基づき、PSRに設定すべき値(値X)を決定し、この値Xに基づき、PSRを更新する処理を行う。ここで操作受付部２９から出力されたUser Operation情報が、音声切換キー、副映像切換キーの押下を示すものであるなら、PSRの数値に1を加えた値を値Xとして決定する。また操作受付部２９から出力されたUser Operation情報が数値キーの押下を示すものなら、その押下された値を値Xとして決定する。一方、操作受付部２９から出力されたボタンコマンドがPSRの設定を再生装置に命じるものなら、そのボタンコマンドの引数で指定された値を値Xとして決定する。このようにして値Xが決定されれば、値Xが有効な値(Valid)であるか、不定値であるは、無効な値(Invalid)であるかを判定し、判定結果に応じたPSR更新処理を行う。ここで値Xが有効であるなら、値Xを用いてPSRを上書きする。値Xが不定値であるなら、最適な値を選んでPSRに設定する。値Xが無効な値であるなら、PSRの数値を維持する。
【００５４】
＜PSRについての説明＞
以上が本発明に係る再生装置の構成である。続いてPSRセットにおける個々のPSRについて説明する。PSRセットのうちPSR1、PSR2、PSR15、PSR16、PSR30は、再生装置における音声・字幕の選択や、これらをデコード・表示する能力の有無、言語設定を示すものである。図１３は、PSR1、PSR2、PSR15、PSR16、PSR30の詳細設定を示すである。  
【００５５】
PSR1は、再生装置により現在選択されているオーディオストリームを特定する。
PSR2は、disp_flagを含み、再生装置により現在選択されているPG_textST_streamを特定する。disp_flagは、”0”に設定されることにより、PGストリーム及びtextSTストリームの表示が不可能であることを示し、”1”に設定されることによりPGストリーム及びtextSTストリームの表示が可能であることを示す。
【００５６】
PSR15は、LPCM capability,AC-3 capability,DTS capabilityを含む。LPCM capabilityは、0001bに設定されることによりLPCM形式のステレオ音声を再生できる能力が再生装置にあることを示し、0010bに設定されることによりLPCM形式のサラウンド音声を再生できる能力が再生装置にあることを示す。
AC-3 capabilityは、0001bに設定されることによりAC-3形式のステレオ音声を再生できる能力が再生装置にあることを示し、0010bに設定されることによりAC-3形式のサラウンド音声を再生できる能力が再生装置にあることを示す。
【００５７】
DTS capabilityは、0001bに設定されることによりDTS形式のステレオ音声を再生できる能力が再生装置にあることを示し、0010bに設定されることによりDTS形式のサラウンド音声を再生できる能力が再生装置にあることを示す。一方、0000に設定されることにより、DTS形式のオーディオストリームをデコードする能力が再生装置に存在しないことを示す。
【００５８】
PSR16は、0XFFFF以外の値が設定されることでオーディオストリームの言語属性を示す。0XFFFFが設定されることでオーディオストリームの言語属性が不特定であることを示す。
PSR30は、最上位ビットが”0”に設定されることによりテキスト字幕を表示する能力が再生装置に存在しない旨を示し、最上位ビットが”1”に設定されることによりテキスト字幕を表示する能力が再生装置に存在する旨を示す。
【００５９】
以上が図１３についての説明である。続いて図１４を参照しながら、PSR4〜PSR8について説明する。図１４は、PSR4〜PSR8の詳細設定を示す。
PSR4は、1〜100の値に設定されることで、現在の再生時点が属するタイトルを示し、0に設定されることで、現在の再生時点がトップメニューであることを示す。
PSR5は、1〜999の値に設定されることで、現在の再生時点が属するチャプター番号を示し、0xFFFFに設定されることで、再生装置においてチャプター番号が無効であることを示す。
【００６０】
PSR6は、0〜999の値に設定されることで、現在の再生時点が属するPL(カレントPL)の番号を示す。
PSR7は、0〜255の値に設定されることで、現在の再生時点が属するPlay Item(カレントPlay Item)の番号を示す。
PSR8は、0〜OxFFFFFFFFの値に設定されることで、45KHzの時間精度を用いて現在の再生時点(カレントPTM)を示す。以上がPSR4〜PSR8についての説明である。
【００６１】
＜PSR1の状態遷移＞
図１３に示したPSRのうち、PSR1の状態遷移について更に詳しく説明する。
PSR1は、カレントPlay ItemのSTN_tableにentryが記述されている複数オーディオストリームのうち、1つを特定するものである。PSR1の設定値が変化すれば、再生装置はこの変化後のオーディオストリームを再生する。PSR1は初期値として0xFFが設定されており、再生装置により1〜32の値に設定されうる。この0xFFは、不定値であり、オーディオストリームが存在しない旨、又は、オーディオストリームが選択されてない旨を示す。1〜32の設定値は、オーディオストリーム番号として解釈される。
【００６２】
図１５（ａ）は、PSR1の設定値が取り得る状態遷移を示す。本図においてValidとは、PSR1の値が、Play ItemのSTN_tableに記述されたentry数以下の番号になっていて、尚且つ、デコード可能であることを意味する。
Invalidとは、PSR1の値が、0であるか、又は、Play ItemのSTN_tableに記述されたentry数を上回る番号になっていることを意味する。また、Play ItemのSTN_tableに記述されたentry数が1〜32の値であったとしても、デコードできない場合がある。
【００６３】
図１５（ａ）における破線枠は、状態遷移時にあたってPSRの値を決定する手順を模式的に示す。PSRの設定処理手順には、『Procedure when playback condition is changed』、『Procedure when change is requested』がある。
Procedure when playback condition is changedは、何等かの事象が再生装置に生じたため、再生装置の状態が変化した際に実行すべき処理手順を示す。
【００６４】
Procedure when YYYchange is requestedは、ユーザが何等かの切り換え(図１５においてstream)を要求した際、実行すべき処理手順を示す。
これら破線枠に示されるProcedure when playback condition is changed、Procedure when change is requestedが、本発明の主眼となるストリームの選択手順であり、後でフローチャートを交えて詳細に説明する。
【００６５】
図１５（ａ）における矢印は、PSRが取り得る状態間の状態遷移を象徴的に示す。
状態遷移を意味する矢印に添えられた注釈は、各状態遷移のトリガとなるべき事象を意味する。つまり本図では、”Load Disc”、”Change a Stream”,”Start PlayList playback”,”Cross a PlayItem boundary”,”Terminate PlayList playback”というような事象が発生した際、PSR1の状態遷移がなされることになる。これらの記法を理解して図１５（ａ）を参照すれば、Invalid→Invalidの状態遷移時、Valid→Invalidの状態遷移時には、上述した処理手順は実行されていないことがわかる。これに対しInvalid→Valid間の状態遷移、Valid→Valid間の状態遷移は何れも破線枠を経由している。つまりPSR1をValidに設定するにあたって、上述したProcedure when playback condition is changed、Procedure when change is requestedによりPSR1は設定されるのである。
【００６６】
以降、状態遷移のトリガとなるべき事象について説明する。
『Load Disc』とは、再生装置にBD-ROMがローディングされたとの事象を意味する。PSR1は、かかるローディング時において、一旦不定値(0xFF)に設定されるのである。
『Start PlayList playback』とは、PLに基づく再生処理が開始したとの事象を意味する。かかる事象が発生時において、Procedure when playback condition is changedが実行され、PSR1はValidに設定されることがわかる。
【００６７】
『Terminate PlayList playback』とは、PLに基づく再生処理終了したとの事象を意味する。かかる事象の発生時では、Procedure when playback condition is changedは実行されず、Invalidに移行していることがわかる。
『ChangeXXX』とは、ユーザによるXXX(本図ではStream)の切り換え要求がなされたとの事象を意味する。PSR1がInvalidである場合に、かかる事象が発生すれば(図中のcj1)、PSR1はその要求通りの値に設定される。こうして設定された値がたとえ有効なストリーム番号を示していたとしても、このPSR1の設定値はInvalidな値として取り扱われる。即ち、事象”ChangeXXX”による状態遷移では、InvalidであるPSRが、Validに変えることはない。
【００６８】
一方、PSR1がValidである場合に、かかる事象Change a Streamが発生すれば(図中のcj2)、Procedure when change is requestedが実行されて、新たな値がPSR1に設定される。ここでProcedure when change is requestedの実行により設定される値は、ユーザが希望した値にならない場合も有り得る。何故なら、Procedure when change is requestedは、無効な値を排除する機能を有しているからである。PSR1がValidにおいて、Change streamが発生した場合、ValidからInvalidに状態遷移することは有り得ない。PSR1がInvalidにならないよう、Procedure when change is requested側で保証するからである。
【００６９】
『Cross a PlayItem boundary』とは、あるPlay Itemの境界通過という事象を意味する。ここでPlay Itemの境界とは、連続する2つのPlay Itemのうち、先行する側の終端、後続する側の先端の狭間を意味する。PSR1がValidである場合において、かかる事象が発生すれば、Procedure when playback condition is changedが実行されることがわかる。そして、Procedure when playback condition is changedの実行後、PSR1の状態はValidに戻るか、Invalidに移行することが分かる。STN_tableはPlay Item毎に存在しており、Play Itemが変われば、再生可能なエレメンタリストリームも変わってしまう。Play Itemの再生開始毎に、Procedure when playback condition is changeを実行してPlay Item毎に最適な設定値をPSR1に設定するというのが、この状態遷移の趣旨である。
【００７０】
この状態遷移においてProcedure when playback condition is changedは、図１５（ｂ）のようになる。本処理手順は、ステップＳ１、ステップＳ２という2つの判定ステップの組合せで、PSR1の設定を行うものである。
ステップＳ１は、STN_tableにおけるentry数が0であるか否かの判定であり、もし0であればPSR1の値を維持する(ステップＳ３)。
【００７１】
ステップＳ２は、STN_tableにおけるentry数は0ではない場合に、PSR1よりSTN_tableのentry数が多く、尚且つ、条件(A)が真であるかを判定するものである。条件(A)とは、PSR1で特定されるオーディオストリームを再生する能力が再生装置に存在することである。もしステップＳ２がYesであればPSR1を維持する(ステップＳ４)。もしPSR1の値がentry数より大きいか、或は条件(A)を満たさない場合は、PSR1を再設定する(ステップＳ５)。
【００７２】
図１６は、ステップＳ５の詳細な処理手順に示したフローチャートである。
ステップＳ６、ステップＳ７は、全てのオーディオストリームについてステップＳ８を繰り返すループ処理を形成している。このループ処理において、処理対象となる個々のオーディオストリームを、オーディオストリームiという。ステップＳ８は、オーディオストリームiが3つの条件(a)(b)(c)を満たすかのチェックを行う。
【００７３】
条件(a)とは、オーディオストリームiを再生する能力が再生装置に存在することであり、これを満たすか否かの判定は、PSR15と、オーディオストリームiのstream_coding_typeとの比較でなされる。
条件(b)とは、オーディオストリームiの言語属性が再生装置の言語設定と同じであることであり、これを満たすか否かの判定は、STN_tableに記述されたオーディオストリームiのAudio_language_codeがPSR16の設定値と同じであるか否かの比較でなされる。
【００７４】
条件(c)とは、オーディオストリームiのチャネル属性がサラウンドであり、これを再生する能力が再生装置に存在することである。これを満たすか否かの判定は、PSR15と,Audio Streamのaudio_presentation_type、stream_coding_typeとの比較でなされる。
条件(c)が、どのようなケースで満たされるかについて、図１７を参照しながら説明する。図１７は、再生能力と、ストリームの属性との組合せを表形式で示した図である。再生装置の能力には、ステレオ出力、サラウンド出力の2つがあり、ストリームの属性には、ステレオ、サラウンドの2つがある。
【００７５】
再生装置側のステレオ出力の能力があり、オーディオストリームの属性がステレオである場合、オーディオストリームの再生は可能になる。
再生装置側のサラウンド出力の能力があり、オーディオストリームの属性がステレオである場合、オーディオストリームの再生は可能になる。
再生装置側のサラウンド出力の能力があり、オーディオストリームの属性がサラウンドである場合、このオーディオストリームの再生は可能になる。
【００７６】
再生装置側のステレオ出力の能力があり、オーディオストリームの属性がサラウンドである場合、再生装置側で、AC-3(5.1ch)を2チャネルにダウンミキシングするという処理を行えば、再生装置による再生は可能になる。以上のように、ストリームのチャネル属性、再生装置の能力の何れの組合せでも、オーディオストリームの再生は可能になる。しかし条件(c)は、これらの4つの組合せのうち、「サラウンド出力の能力が再生装置側に有り」「ストリームのチャネル属性＝サラウンド」の組合せ時においてのみ、満たされることになる。以上のことから、条件(c)の成立要件は厳しく設定されていることがわかる。
【００７７】
尚、図１７において、上述した組合せ時においてのみ、条件(c)が成立するとしたのは一例であり、この組合せの他に、「ステレオ出力の能力が再生装置側に有り」「ストリームのチャネル属性＝ステレオ」の組合せ時においても、条件(c)が満たされるとしてもよい。この場合、ステレオ音声しか再生できない再生装置、又は、サラウンド再生よりステレオ再生が優先されている再生装置において、2chオーディオストリームのステレオ再生が、5.1chオーディオストリームのダウンミキシング再生より優先されることになる。
【００７８】
これらの複数の条件のうち、「オーディオストリームiがどれとどれを満たすか」、また「何個の条件を満たすか」という、満たすべき条件のパターンにより、本フローチャートは、オーディオストリームに優先順位を付与する。
以上の処理をオーディオストリームの全てについて繰り返されれば、ステップＳ９〜ステップＳ１３の処理を行う。ステップＳ９は、(a)を満たすオーディオストリームが存在しないかどうかの判定である。もし、存在しなければ、不定値(0xFF)をPSR1に設定する(ステップＳ１４)。
【００７９】
ステップＳ１０は、(a)(b)(c)の全てを満たすオーディオストリームが存在するかどうかの判定である。もし存在すれば、(a)(b)(c)を満たすオーディオストリームの番号をPSR1に設定する(ステップＳ１５)。
ここで問題になるのが、(a)(b)(c)を満たすオーディオストリームが複数存在する場合である。条件(a)〜条件(c)が全てみたされるので、同じ優先順位になってしまうので優劣を決めることができない。この場合ステップＳ１５では、STN_tableにおけるentryの順序に応じて、各ストリームにおける順位が定める。即ち、コーディック−言語属性−チャネル属性が同じオーディオストリームについては、STN_tableにおけるentryの順位を参照することで、最も優先順位が高いオーディオストリームが選ばれることになる。
【００８０】
ここでコーディック、言語属性、チャネル属性が同じオーディオストリームが複数存在しており、これらがそれぞれ本編音声、コメンタリ、BGMである場合、図１８に示すように本編音声にあたるオーディオストリームについてのentryを、STN_tableにおいて先頭順位に記述する。そしてコメンタリーにあたるオーディオストリーム、BGMにあたるオーディオストリームのentryを次順位以降に記述しておく。そうすると、自動的に本編音声が選択され、コメンタリ、BGMが後回しにされる。
【００８１】
このようにSTN_tableにおける記述順序を変えることで、オーサリング担当者は再生時においてどのストリームを優先的に再生させ、どのストリームを後回しにするかという選択制御をオーサリング時に規定することができる。
ステップＳ１１は、(a)(b)(c)の全てを満たすオーディオストリームが存在しない場合、(a)(b)を満たすオーディオストリームが存在するかどうかの判定である。もし存在すれば、(a)(b)を満たすオーディオストリームのうち、STN_tableにおけるエントリー順位が最も高いものをPSR1に設定する(ステップＳ１６)。
【００８２】
ステップＳ１２は、(a)(b)(c)の全てを満たすオーディオストリーム、又は、(a)(b)を満たすオーディオストリームが存在しない場合に、(a)(c)を満たすオーディオストリームが存在するかどうかの判定である。もし存在すれば、(a)(c)を満たすオーディオストリームのうち、STN_tableにおけるエントリー順位が最も高いものをPSR1に設定する(ステップＳ１７)。
【００８３】
ステップＳ１３は、(a)(b)(c)の全て、(a)(b)、(a)(c)を満たすオーディオストリームが存在しない場合に、(a)を満たすオーディオストリームが存在するかどうかの判定である。もし存在すれば、(a)を満たすオーディオストリームのうち、STN_tableにおけるエントリー順位が最も高いものをPSR1に設定する(ステップＳ１８)。
以上がProcedure when playback condition is changedである。続いてProcedure when change is requestedについて説明する。図１９は、ストリーム変化時におけるPSR1の設定手順を示すフローチャートである。本フローチャートと、図１５（ｂ）との違いは、図１５（ｂ）におけるPSR1の表記がXに置き換えられている点である。このXは、操作受付部２９から出力されたUser Operation情報やI-Graphicsデコーダ１３から出力されたボタンコマンドに基づく値である。
【００８４】
本フローチャートにおけるステップＳ１９は、XよりSTN_tableのentry数が多く、尚且つ、条件(A)が真であるかを判定するものである。条件(A)とは、PSR1で特定されるオーディオストリームを再生する能力が再生装置に存在することであり、PSR15と、オーディオストリームのStream_codeig_typeの比較で判定される。もしXがこの条件を満たすなら、PSR1にXを設定する(ステップＳ２１)。
【００８５】
もしXがentry数より大きいか、或は条件(A)を満たさない場合は、Xが、0xFFであるか否かを判定する。もしOxFFでなければ、ユーザが選択を意図するオーディオストリームの番号は無効であると考えられるので、ユーザ操作に基づく値Xを無視し、PSR1の設定値を維持する(ステップＳ２３)。
もしPSR1の設定値が0xFFであるなら、PSR1を設定する(ステップＳ２４)。このステップＳ２４の処理手順は、図１６に示した処理手順と同一である(図１６のうち、ステップＳ９の判定はProcedure when change is requestedでは必要ではない。何故ならProcedure when change is requestedでは、条件(a)(b)(c)を満たすオーディオストリームが1つも存在しない場合、ユーザが設定した値XをPSR1に設定せず、PSR1の設定値を維持するからである。)。
【００８６】
以上のProcedure when playback condition is changed、Procedure when change is requestedにより、確実に再生され、尚且つBD-ROM、再生装置双方の能力を発揮することができるオーディオストリームが選択されることになる。
＜PSR1設定の具体例＞
以降具体例を交えながら、本フローチャートの処理について説明する。
【００８７】
この具体例で想定している再生装置は、ミドルクラスの再生装置である。ここでのミドルクラスとは、DTS形式のオーディオストリームをデコードする能力は持っていないが、LPCMのデコード能力や、AC-3サラウンド音声の出力能力は具備している。そして日本語音声を示すよう、言語設定がなされているものとする。
かかる再生装置に対し、図２０（ｂ）に示すオーディオストリーム、STN_tableが記録されたBD-ROMがローディングされたとする。このSTN_tableには、図２０（ｃ）に示すように6つのオーディオストリームのentryが記述されている。
【００８８】
かかる記述内容のSTN_tableが処理対象であると、図１６のステップＳ８において各オーディオストリームが、条件(a)、条件(b)、条件(c)を具備しているかどうかのチェックがなされる。ここで1つ目のオーディオストリーム(1)は、3つの条件のうち、条件(a)しか満たさない。2つ目のオーディオストリーム(2)は、3つの条件のうち、条件(a)、条件(c)を満たす。
【００８９】
STN_tableにentryが示されている全てのオーディオストリームに対し、上述したチェックがなされれば、5つ目のオーディオストリームが条件(a)〜条件(c)の全てを満たし、4つ目のオーディオストリームは条件(a)、条件(b)を、2つ目のオーディオストリームは条件(a)(c)を、1つ目のオーディオストリームは条件(a)のみを満たしていることが判明する。これら以外のオーディオストリームは条件(a)を欠くので処理対象にならない。
【００９０】
各オーディオストリームについての条件具備が明らかになったので、条件(a)〜条件(c)の全てを満たす5つ目のオーディオストリームに最高順位を付与する。このように最高順位が付加されたため、オーディオストリーム5が選択されてビデオストリームと共に再生されることになる。
以上の説明により、条件(a)、条件(b)、条件(c)の全てを満たすストリームが選択されることが明らかになったが、サラウンド出力の能力が再生装置にない場合、ストリーム選択はどのように行われるのだろうか。ここで再生装置側にサラウンドの出力能力が存在せず、AVClipに、AC-3(2ch)のオーディオストリームと、AC-3(5.1ch)のオーディオストリームとが多重化されているケースを想定する。図１７の表では、何れのオーディオストリームの再生も可能になるので、かかるオーディオストリームを図１６の処理手順の対象とした場合、これらのオーディオストリームには、優劣がつかない。
【００９１】
この場合、STN_tableにおけるentryを参照することで、選択が望ましいオーディオストリームの優劣を規定する。図１７において再生装置側に能力がない場合、再生装置はAC-3(5.1ch)をAC-3(2ch)にダウンミキシングして再生するとの処理を行う。かかるダウンミキシングがなされれば、再生時の音質はオーサリング担当者が意図したものより落ちてしまう恐れがある。これに対しAC-3(2ch)は、当初からステレオ出力を意図して作成されたものであるから、オーサリング担当者は、AC-3(5.1ch)のダウンミキシング再生より、AC-3(2ch)の再生を期待していることが多い。
【００９２】
そこでAC-3(2ch)音声のentryを、AC-3(5.1ch)よりも高く設定しておくのである。
こうすることでサラウンド再生の能力をもたない再生装置では、AC-3(2ch)の音声が優先的に再生されることになる。一方、ビットレートを比較すると、
AC-3(5.1ch)のビットレートは384Kbps、AC-3(2ch)のビットレートは192kbpsであり、AC-3(5.1ch)の方が高い。この事実を重視するオーサリング担当者は、AC-3(2ch)の再生より、AC-3(5.1ch)のダウンミキシング再生を期待していることが多い。このようにダウンミキシングに対する期待が高ければ、オーサリング担当者はSTN_tableにおいて、AC-3(5.1ch)のentryを高く設定すればよい。
【００９３】
こうすることでサラウンド出力能力がない再生装置による再生は、ダウンミキシングでなされることになる。
ここで、オーサリング担当者が、AC-3(5.1ch)のダウンミキシング再生より、AC-3(2ch)の再生を期待している場合のSTN_tableの記述例と、オーディオストリームの選択例とについて図２１を参照しながら説明する。
【００９４】
ここで想定する再生装置はサラウンド出力能力がない再生装置なので、PSR15,16の値は、図２１（ａ）の通りになる。またSTN_tableは、図２０（ｂ）と同じ内容に設定されており(図２１（ｂ）)、再生装置がサラウンド出力能力がない再生装置である。この場合、条件(a)、条件(b)を満たすオーディオストリーム4、オーディオストリーム5が同じ優先順位"1"に、条件(a)のみを満たすオーディオストリーム1、オーディオストリーム2が次の優先順位"2"になる。優先順位は"1"になったため、オーディオストリーム4、オーディオストリーム5の優劣がつかない。この場合、再生装置は、STN_tableにおけるentry順位に従いオーディオストリームを選ぶ。この記述例においてオーサリング担当者は、AC-3(5.1ch)のダウンミキシングより、AC-3(2ch)の再生を期待しているので、図２１（ｂ）におけるSTN_tableにおいて、AC-3(2ch)のオーディオストリームのentryは、AC-3(5.1ch)のentryより高く設定されている。このようにオーディオストリーム4のentry順位はオーディオストリーム5よりも高く設定されているので、再生装置はオーディオストリーム5を選んで再生する。
【００９５】
続いてオーサリング担当者が、AC-3(2ch)の再生より、AC-3(5.1ch)のダウンミキシング再生を期待している場合のSTN_tableの記述例と、オーディオストリームの選択例とについて図２２を参照しながら説明する。
AC-3(5.1ch)のダウンミキシング再生を期待しているので、STN_tableにおいて、AC-3(5.1ch)のオーディオストリーム(オーディオストリーム2、オーディオストリーム5)のentry順位は、AC-3(2ch)のオーディオストリーム(オーディオストリーム1、オーディオストリーム4)のentry順位より高く設定されている(図２２（ｂ）)。このようにオーディオストリーム5のentry順位はオーディオストリーム4よりも高く設定されているので、オーディオストリーム4、オーディオストリーム5が同じ条件(a)、条件(b)を満たす場合、再生装置はオーディオストリーム5を選んで再生する(図２２（ｃ）)。
【００９６】
サラウンドの再生出力能力が再生装置にない場合、AC-3(2ch)の再生を優先させるか、AC-3(5.1ch)のダウンミキシング再生を優先させるかを、オーサリング担当者は自由に規定することができるので、オーサリング担当者の意向に、沿った再生制御が実現されることになる。以上がPSR1についての状態制御である。
＜PSR2の状態遷移＞
続いてPSR2について説明する。PSR2は、カレントPlay ItemのSTN_tableにentryが記述された複数PGストリーム又は複数textSTストリームのうち、再生すべきものの特定に用いられる。PSR2の設定値が変化すれば、再生装置はこの変化後のPGストリーム又はtextSTストリームを再生する。PSR2は初期値として不定値が設定されており、再生装置により1〜255の値に設定されうる。0xFFFFは、不定値であり、PGストリーム及びtextSTストリームが存在しない旨、又は、PGストリーム及びtextSTストリームが選択されてない旨を示す。1〜255の設定値は、PG_textST_stream番号として解釈される。図２３（ａ）は、PSR2が取り得る状態遷移を示す図である。本図の状態遷移は、図１５（ａ）と同じになっている。また、図２３（ｂ）は、PSR2におけるProcedure when playback condition is changedを示すフローチャート、図２４はProcedure when change is requestedを示すフローチャートである。これらのフローチャートも、図１５（ｂ）、図１９と同じになっている。ただし、ステップＳ５、ステップＳ２３におけるPSR2の設定は、大きく異なっている。
【００９７】
図２５は、PSR2の設定手順を示すフローチャートである。
本フローチャートのステップＳ３１、ステップＳ３２は、STN_tableに記述されているPG_textST_streamのそれぞれについて、ステップＳ３３〜ステップＳ３５の処理を繰り返すループ処理になっている。本ループ処理において処理対象となるPG_textST_streamをPG_textST_streamiとする。ステップＳ３３は、PG_textST_streamiのstream_coding_typeが0x90であるか、0x92であるかの判定であり、もし0x91であるならステップＳ３４に移行する。
【００９８】
ステップＳ３４は、PG_textST_streamiが、以下の(a)(b)を満たすか否かの判定である。
(a)PGストリームiを再生する能力が再生装置に存在すること
(b)PGストリームiの言語属性が再生装置の言語設定と一致すること
この(b)の条件は、STN_tableにおけるPG_language_codeがPSR17と一致するか否かの判定でなされる。
【００９９】
一方ステップＳ３５は、PG_textST_streamiが(a)(b)を満たすかを否かの判定である。
(a)textSTストリームiを再生する能力が再生装置に存在すること
(b)textSTストリームiの言語属性が再生装置の言語設定と一致すること
(a)の条件を具備しているかの判定は、再生装置のPSR30が"再生能力有"を示すかどうかでなされる。(b)の条件を具備しているかの判定は、STN_tableのtextST_language_codeがPSR17の設定値と一致しているかどうかでなされる。
【０１００】
以上のステップＳ３３〜ステップＳ３５の処理が全てのPG_textST_streamについて繰り返されれば、ステップＳ３６〜ステップＳ４１の処理が実行される。
ステップＳ３６は、(a)を満たすPG_textST_streamが存在しないかどうかの判定であり、もし存在しないのなら、ステップＳ３９においてInvalidな値(0xFFFF)をPSR2に設定する(ステップＳ３８)。
【０１０１】
ステップＳ３７は、(a)(b)の双方を満たすPG_textST_streamが存在するかどうかの判定であり、もし存在するのなら(a)(b)を満たすPG_textST_streamのうち、STN_tableにおけるエントリー順位が最も高いものをPSR2に設定する(ステップＳ３９)。
ステップＳ４１は、(a)のみを満たすPGstream、(a)のみを満たすtextST_streamのうち、STN_tableにおけるエントリー順位が最も高いものをPSR2に設定する。以降具体例を交えながら、本フローチャートの処理について説明する。
【０１０２】
＜PSR2設定の具体例＞
この具体例で想定している再生装置は、図２６（ａ）に示すようにPGストリームをデコードする能力はもっているが、textSTストリームをデコードする能力はもっていない再生装置である。そして日本語音声を示すよう、言語設定がなされているものとする。
かかる再生装置に対し、図２６（ｂ）に示すようなSTN_tableがロードされたとする。このSTN_tableには、2つのtextSTストリームのentry(PG_textST_stream1,3)と、2つのPGストリームのentry(PG_textST_stream2,4)とが記述されている。
【０１０３】
かかる記述内容のSTN_tableが処理対象であると、ステップＳ３４、ステップＳ３５において各PG_textST_streamが、条件(a)、条件(b)を具備しているかどうかのチェックが図２６（ｃ）に示すようになされる。ここで1つ目のPG_textST_stream、3つ目のPG_textST_streamは、条件(a)を満たさない。2つ目のオーディオストリームは、3つの条件のうち、条件(a)しか満たさない。4つ目のPG_textST_streamは、条件(a)、条件(b)を満たす。
【０１０４】
STN_tableにentryが示されている全てのストリームに対し、上述したチェックがなされれば、4つ目のストリームが条件(a)〜条件(b)の全てを満たし、2つ目のストリームは条件(a)を、1つ目,3つ目のストリームは、選択の対象から除外される。
各ストリームについての条件具備が明らかになったので、条件(a)〜条件(b)の全てを満たす4つ目のストリームに最高順位を付与する。
【０１０５】
ここで、同じ条件を満たしているPG_textST_streamが複数ある場合、上述したフローチャートでは、これらのPG_textST_streamについての優先順位が同じになってしまう。そのため優劣を決めることができない。本実施形態ではこの場合、STN_tableにおけるentryの事象に応じて、各ストリームにおける順位が定める。
以降、図２７を参照しながら、STN_tableにおけるentryの順序によるPG_textST_stream選択について説明する。ここで想定する再生装置は、PGストリーム、textSTストリームの双方をデコードする能力をもつ再生装置である。この再生装置の言語設定と同じ言語属性をもつPGストリーム、textSTストリームが複数存在する場合、これらPGストリーム、textSTストリームに対する優先順位が同じになってしまう。かかる場合、図２７に示すように、オーサリング担当者が選択を望むストリームについてのentryを、STN_tableの先頭順位に記述する。そしてPGストリームにあたるentryを次順位以降に記述しておく。ここでオーサリング担当者が選択を望んでいるストリームがtextSTストリームであり、これのentryがSTN_tableの先頭に記述されたとすると、自動的にtextSTストリームが選択され、PGストリームが後回しにされる。
【０１０６】
このようにSTN_tableにおける記述順序を変えることで、オーサリング担当者は再生時においてどのストリームを優先的に再生させ、どのストリームを後回しにするかという選択制御をオーサリング時に規定することができる。
＜変更例＞
Procedure when change is requestedにおいて値Xが無効な値であるなら、遷移制御部３０はPSR1,2の格納値を維持するとしたが、ユーザにより音声切換キー、字幕切換キーが押下された場合の処理としては望ましくない。音声切換キー、字幕切換キーが押下された場合、本来値Xは”PSR+1”になるべきである。にも拘らず、値Xが無効であるとの理由で、PSR1,2の格納値が維持されれば、ユーザは再生装置が誤動作しているように、感じるからである。
【０１０７】
そこで音声切換キー、字幕切換キーが押下された場合、遷移制御部３０は、Procedure when change is requestedに加えて以下の処理を行う。この処理とは、Procedure when change is requestedを実行するにあたって、Procedure when change is requested実行前のPSRの格納値と、Procedure when change is requested実行後のPSRの格納値とを比較するというものである。もし前後の格納値が同じであれば、X←X+1という処理にて値Xをインクリメントし、再度Procedure when change is requestedを実行する。こうすることで、Procedure when change is requestedによりPSRが更新されるまで、値Xのインクリメントは繰り返される。Procedure when change is requestedの実行によりPSRの数値が更新されれば、前後の数値が違った値になるので、その時点で、Procedure when change is requestedの実行で得られたPSRの数値を採用してストリームの選択を行う。
【０１０８】
例えばPSR1に"3"が格納されており、ストリーム番号＝4,5が無効である場合の上述の処理の具体例について簡単に説明する。この場合遷移制御部３０は、PSR1の格納値に"1"を加えた値4を値Xとする。そしてProcedure when change is requestedを実行する。この場合、ストリーム番号＝4は無効なので、PSR1は元の値3から変化しない。このようにPSR1の格納値に変化がない場合、4である値Xをインクリメントして5にした上で、再度Procedure when change is requestedを実行する。この場合、ストリーム番号＝5は無効なので、PSR1は元の値3から変化しない。このようにPSR1の格納値に変化がない場合、5である値Xをインクリメントし、6にして再度Procedure when change is requestedを実行する。値6は有効なので、Procedure when change is requestedにより有効なストリーム番号=6が、自動的に選ばれることになる。音声切換キーの押下時に、上述した処理を行えば、無効なストリーム番号の存在をユーザに意識することなく、スムーズな音声切り換えを実現することができる。  
【０１０９】
(第２実施形態)
第２実施形態は、マルチアングル区間における状態設定に関する。マルチアングル区間実現のためのデータ構造は図５に示したPlay Item情報にある。図２８は、Play Item情報のデータ構造を示す図である。本図に示すようにマルチアングル区間対応のPlay Item情報は、通常のPlay Itemとの互換部分と、マルチアングル区間実現のための拡張部分とからなる。互換部分のデータ構造は図５と同じであり、『Clip_Information_file_name』、『Clip_codec_identifier_id』『IN_time』、『OUT_time』、『STN_table』である。マルチアングル区間において、この互換部分で指定されるAVClipは、1本目のアングル区間として取り扱われる。こうすることで、マルチアングル区間に対応しえない再生装置(BD-REのデータ構造しか対応しえない再生装置)が、マルチアングル区間対応のPlay Itemを読み取ったとしても、この互換部分のみを参照して再生を行うことで、1本目のアングル区間を再生してゆくことができる。拡張部分のデータ構造は、『is_multi_angles』,『number_of_angles』,『Angle情報[2]・・・[j]』からなる。
【０１１０】
『is_multi_angles』は、このPlay Itemに対応する再生区間がマルチアングル区間であるか、非アングル区間であるかを示す。
『number_of_angles』は、マルチアングル区間を示すよう『is_multi_angles』が設定されている場合、このマルチアングル区間を構成するアングル数を示す。
『Angle情報[2]・・・[j]』は、マルチアングル区間における個々のアングル区間についての情報であり、『Clip_Information_file_name』、『Clip_codec_identifier』を含む。
【０１１１】
『Clip_Information_file_name』は、アングル区間を構成するAVClipのファイル名が記述される。
『Clip_codec_identifier』は、アングル情報のClip_Information_file_nameにて記述されたファイル名のAVClipにおける符号化方式を示す。
以上の説明においてアングル情報には、In_time、Out_timeがない。これは、2本目以降のアングル区間は、互換部分に存在するIn_time、Out_timeにより、Play Itemの始点、終点が指定されるためである。従って、アングル情報内のClip_Information_file_nameで指定されるAVClipは、互換部分内のClip_Information_file_nameで指定されるAVClipと、同一再生時間でなければならない。また、AVClip再生時間軸において、個々の再生タイミングを規定するタイムスタンプ(System Time Clock)の値が厳密に同一でなければならない。
【０１１２】
マルチアングル区間対応のPlay Itemについて、以降具体例を説明する。本具体例で想定しているPlay Itemは、3つのPlay Item(PlayItem#1、PlayItem#2、PlayItem#3)である。これらのPlay Itemのうち、PlayItem#1、PlayItem#3はマルチアングル区間を構成しており、PlayItem#2は構成していない。またBD-ROMには、図２９に示すような複数AVClip(Front1、Right1、Left1、Front2、Front3、Right2)が記録されているものとする。具体例においてPlayItem#1のClip_Information_file_nameは、図２９中のFront1、Left1、Right1を指定しており、PlayItem#2はFront2を、PlayItem#3は、Front3、Right2を指定しているものとする。これらのPlay Itemにより、マルチアングル区間−非アングル区間−マルチアングル区間からなるメインパスが定義されることになる。図３０（ａ）（ｂ）は、このようにして定義されたマルチアングル区間、非アングル区間を示す図である。本図における矢印my1,my2は、PlayItem#1における2つのアングル情報による指定を、矢印my3は、PlayItem#3におけるアングル情報による指定をそれぞれ示す。これらPlayItem情報#1におけるアングル情報による指定my1,my2で、Right1、Left1はAVClip上の一部分と選択的に再生されることになる。同様にアングル情報による指定my3でRight2は、AVClip上の一部分と選択的に再生されることになる。
【０１１３】
図３０（ｂ）は、マルチアングル区間、非アングル区間における再生進行を示す図である。本図における矢印ag1,2,3に示すように、マルチアングル区間#1においては3つのアングル区間のうち1つを選ぶという選択が可能になり、マルチアングル区間#3においては矢印ag4,5に示すように2つのアングル区間のうち1つを選ぶという選択が可能になる。以上が本実施形態に係る記録媒体の改良である。
【０１１４】
続いて再生装置の改良について説明する。第１実施形態に示した再生装置において、アングル区間の指定を示すのはPSR3である。第２実施形態に係る制御部２４は、このPSR3の設定値に従い、アングル区間を選択して再生するとの処理を行う。
具体的にいうと制御部２４は、カレントPL情報のうち、1つのPlay Itemを再生する際、PSR3の設定値を参照する。PSR3の設定値が=1であれば、Play ItemのIn_time,Out_timeが存在するAVClipをアクセスし、これのPlay ItemのIn_timeからOut_timeまでのTSパケットを読み出すようBD-ROMドライブ１を制御する。そしてTSパケットが読み出されれば、これを順次ビデオデコーダ４に投入し、アングル区間を再生させてゆく。
【０１１５】
PSR3の設定値が2以上であれば、Play Itemのアングル情報内のClip_Information_file_nameで指定されているAVClip(先に述べたRight1、Left1、Right2)をアクセスし、これを構成するTSパケットを読み出すようBD-ROMドライブ１を制御する。そしてTSパケットが読み出されれば、これを順次ビデオデコーダ４に投入し、アングル区間を再生させてゆく。このようにPSR3の設定値に応じて、異なるAVClipをアクセスすることにより、アングル区間の選択的な再生が実現される。
【０１１６】
以上のようなアングル区間選択を規定するPSR3について説明する。図３１はPSR3の内部構成を示す図である。PSR3は現在選択されているアングル区間の番号を示す。PSR3は1〜9の値をとり、1〜9のアングル区間をそれぞれ指定する。
PSR3の状態遷移について説明する。図３２（ａ）は、PSR3の状態遷移を示す図である。本図を図１５（ａ）とを比較すると、事象Cross PlayItem Boundaryをトリガとした状態遷移は存在しないことがわかる。そしてStart PlayList Playback、Terminate PlayList PlaybackがStart PlayItem with multiangle structure,End of PlayItem with multiangle structureに置き換わっている。またProcedure when change is requestedは、”stream change is requested”ではなく、”angle change is requested”に置き換わっている。しかしこれらを除き、PSR3の状態遷移は図１５（ａ）と同じになっている。
【０１１７】
オーディオストリームの数はPlay Item毎に違うため、PSR1の状態遷移ではPLの再生が始まり、Play Itemの境界を追加する度にProcedure when playback condition is changedを起動してPSR1を設定する必要があった。しかしPSR3はマルチアングル区間においてのみ意味があり、Play Itemの通過毎にProcedure when playback condition is changedを実行する必然性が乏しいので、Invalid→Validの状態遷移は、マルチアングル区間の再生開始をトリガとしており、Valid→Invalidの状態遷移は、マルチアングル区間の再生終了をトリガとしている。
【０１１８】
このValid→Invalidの状態遷移にあたって本実施形態では、PSR3の設定値を維持したまま、取り扱いのみをInvalidにする。つまりマルチアングル区間、非アングル区間が代わる代わる出現する場合(図３０の一例)、PSR3は、設定値の取り扱いのみがValidからInvalidに、InvalidからValidに遷移することになる。以上がPSR3の状態遷移である。続いてPSR3のProcedure when playback condition is changed、Procedure when change is requestedについて説明する。
【０１１９】
図３２（ｂ）は、PSR3におけるProcedure when playback condition is changedを示すフローチャートである。本フローチャートは、図１５（ｂ）に類似したアルゴリズムになる。ステップＳ５１は、PSR3が、Play Itemに記述されたnumber of Angle未満であるか否かの判定である。もしステップＳ５１がYesであるなら、PSR3の設定値を変化させない(ステップＳ５３)。もしステップＳ５１がNoであるなら、PSR3に初期値1を設定する(ステップＳ５２)。
【０１２０】
図３２（ｃ）は、PSR3におけるProcedure when change is requestedを示すフローチャートである。本フローチャートは、図１９に準じたものとなる。ステップＳ５４は、Xが、Play Itemに記述されたnumber of Angleを越えるか否かの判定である。もしステップＳ５４がYesであるなら、番号XをPSR3に設定する(ステップＳ５７)。もしステップＳ５４はNoであるなら、PSR3を維持する(ステップＳ５５)。
【０１２１】
図３０に示した3つのPlay Itemによりマルチアングル区間→非アングル区間→マルチアングル区間を連続して再生する場合に、アングル区間の選択がどのように行われるかについて図３３を参照しながら説明する。
図３３（ａ）では、PSR3がアングル番号=2を示すよう設定されていると仮定する。この状態でPlayItem#1の再生が開始されると、制御部２４はPSR3の設定値=2により指示されるアングル区間(Right1)を選択して再生する。かかるRight1の再生が継続し、Right1の再生が終了すれば、PSR3は、アングル番号=2を維持したままInvalidになる。
【０１２２】
PlayItem#1により指定されるマルチアングル区間#1には、PlayItem#2により指定される非アングル区間が後続している。PlayItem#2は非アングル区間であるので、PSR3はInvalidのままである。この際PSR3は、設定値=2を維持したまま無効な状態として取り扱われる。PSR3がInvalidであるため制御部２４は、このPSR3の設定値に拘らず、PlayItem#2のIn_time,Out_timeが存在するAVClip(XXX.M2TS)の再生を実行する。
【０１２３】
非アングル区間#2にはPlayItem#3により指定されるマルチアングル区間#3が後続している。マルチアングル区間#3の再生が開始されれば、PSR3は、設定値を維持したまま、InvalidからValidに移行する。こうしてPSR3がValidになれば、このPSR3の設定値に応じたアングル区間が選択されることになる。PSR3は、設定値=2を維持したままなので、制御部２４はこのアングル番号=2により指示されるアングル区間(Right2)を選択して再生する。本図における矢印gg1は、以上に述べたアングル区間選択の移り変わりを示す。
【０１２４】
以上はPSR3の設定値が「PSR3=2」に設定されている場合の説明である。続いて、PSR3の設定値が「PSR3=3」に設定されている場合について説明する。図３３（ａ）と同様に再生がなされ、非アングル区間の再生がなされている場合を想定する。図３２（ａ）に示した状態遷移によりPSR3の設定値は、Invalidとしての取り扱いのまま、”3”に更新される。こうしてPSR3の設定値=3を保ったまま非アングル区間の再生が継続することになる。こうした再生の継続後、非アングル区間の再生が終了しマルチアングル区間#3の再生が開始したとする。マルチアングル区間の再生開始なので、Procedure when playback condition is changedが実行される。図３２（ｂ）のステップＳ５１において、現在のPSR3の設定値が、Play Item#3に規定されているアングル数(number of angles)を上回っているかどうかの判定がなされる(ステップＳ５１)。ここでPlay Item#3において選択可能なアングル区間数は2本であり、PSR3=3は、上回っている。これによりPSR3は、1に設定されることになる(ステップＳ５２)。PSR3は1に設定されるので、XXX.M2TSが選択され、1本目のアングルが再生されることになる。本図における矢印gg2は、以上に述べたアングル区間選択の移り変わりを示す。
【０１２５】
以上のように本実施形態によれば、実在しないアングル区間の選択を避けるように、PSR3の状態遷移を行うので、マルチアングル区間から非アングル区間への移り変わり、非アングル区間からマルチアングル区間への移り変わりが頻繁に発生したとしても、おかしな番号が状態レジスタに設定されることはない。アングル選択の正当性を保証するので、マルチアングル区間を取り込んだ映画作品の普及を促進することができる。
【０１２６】
(第３実施形態)
第３実施形態は、対話機能の実行時における状態設定に関する。ここで想定する対話機能とは、複数ページからなり、個々のページにグラフィカルなボタン部材を配置させてユーザからの操作を受け付けるというものである。対話機能の実行にあたって、表示可能な複数ページのうち、どのページを表示させるか、そしてそのページにおける複数ボタンのうち、どれにフォーカスをあてるかを規定するのが本実施形態における状態設定である。
【０１２７】
＜対話機能のためのデータ構造＞
2以上のページ、ボタンを表示させるためのデータ構造は、第１実施形態に示したIGストリームに存在する。図３４を参照しながらIGストリームについて説明する。IGストリームは、ICS、PDS、ODSからなる。ODSはボタンをグラフィカルに表示させるためのグラフィクスデータであり、PDSは、ボタンの発色を規定するパレットデータである。
【０１２８】
ICSは、動画の再生と同期させながら、ページを表示させるための制御情報である。動画との同期は、ICSを格納したPESパケットのDTS、PTSにより規定される。つまりICSを格納したPESパケットのDTSは、対話機能を有効とする期間(ICSをValidとする期間)の開始時期を示す。
図３４の矢印cu1は、ICSの内部構成をクローズアップしている。この矢印に示すようにICSは、『loading_model』,『user_interface_model』,『composition_time_out_pts』,『selection_time_out_pts』,『user_time_out_duration』、表示可能な複数ページのそれぞれに対応する『ページ情報(1)(2)・・・(i)・・・(n)』を含む。
【０１２９】
『loading_model』は、本IGストリームがAVClipに多重されて存在するか、AVClipとは別に、再生装置に予めプリロードされているかを示す。
『user_Interface_model』は、動画の再生進行中、ページを常時表示させるか(Always-on)、ユーザ操作に基づきポップアップ表示させるかを示す(Pop-up)。
『composition_time_out_PTS』は、対話機能を有効とする期間の終期を示す。
【０１３０】
『user_time_out_duration』は、ユーザ操作がない場合に、ページ表示のタイムアウトさせる時期を示す。
続いてページ情報について説明する。本図における矢印cu2はページ情報の内部構成をクローズアップしている。この矢印に示すようにページ情報は、『page_id』,『UO_mask_table』,『IN_effect』,『Out_effect』,『animation_frame_rate_code』,『default_selected_button_id_ref』、『default_activated_button_id_ref』,『pallet_id_ref』,複数ボタンのそれぞれに対応する『ボタン情報(1)(2)・・・(i)・・・(n)』を含む。
【０１３１】
『Page_id』は、ページ情報に対応するページを一意に識別する識別子である。
『UO_Mask_Table』は、ICSに対応するDisplay Setにおけるユーザ操作の許可／不許可を示す。このマスクフィールドが不許可に設定されていれば、再生装置に対するユーザ操作は無効になる。 
『In_effect』は、ページの表示開始時あたって実行すべき表示効果を示す。
【０１３２】
『Out_effect』は、ページの表示終了時あたって実行すべき表示効果を示す。
『animation_frame_rate_code』は、アニメーション型ボタンに適用すべきフレームレートを記述する。
『default_selected_button_id_ref』は、対話画面の表示が始まったとき、デフォルトでセレクテッド状態に設定すべきボタンを動的に定めるか、静的に定めるかを示す。本フィールドが”OxFF”であれば、デフォルトでセレクテッド状態に設定すべきボタンを動的に定める旨を示す。この場合、再生装置におけるPSRの設定値が優先的に解釈され、PSR10に示されるボタンがセレクテッド状態になる。本フィールドが0xFFでなければ、デフォルトでセレクテッド状態に設定すべきボタンを静的に定める旨を示す。この場合、『default_selected_button_id_ref』に規定されたボタン番号でPSR10を上書きし、本フィールドで指示されるボタンをセレクテッド状態に設定する。
【０１３３】
『default_activated_button_id_ref』は、Selection_Timeout_PTSにより定義された時間の前に、ユーザがどのボタンもアクティブ状態にしなかったとき、自動的にアクティブ状態に設定されるボタンを示す。default_activated_button_numberが”FF”であれば、Selection_Timeout_PTSにより定義される時刻において、現在セレクテッド状態にあるボタンが自動的に選択される。このdefault_activated_button_numberが00であれば、自動選択はなされない。00,FF以外の値であれば本フィールドは、有効なボタン番号として解釈される。
【０１３４】
『pallet_id_ref』は、対話画面において、CLUT部に設定すべきパレットのidを示す。
『ボタン情報(Button_info)』は、対話画面において合成される各ボタンを定義する情報である。図３５は、ボタン情報についての内部構成を示す図である。図中の引き出し線hp1はICSにより制御されるi番目のボタンについてのボタン情報iの内部構成をクローズアップしている。ページに表示される個々のボタンの状態には、ノーマル状態、セレクテッド状態、アクティブ状態がある。ノーマル状態とは、単に表示されているに過ぎない状態である。これに対しセレクテッド状態とは、ユーザ操作によりフォーカスが当てられているが、確定に至っていない状態をいう。アクティブ状態とは、確定に至った状態をいう。かかる状態があるので、ボタン情報iには、以下の情報要素が規定されている。
【０１３５】
『button_number』は、ボタンiを、ICSにおいて一意に識別する数値である。
『numerically_selectable_flag』は、ボタンiの数値選択を許可するか否かを示すフラグである。
『auto_action_flag』は、ボタンiを自動的にアクティブ状態にするかどうかを示す。auto_action_flagがオン(ビット値1)に設定されれば、ボタンiは、セレクテッド状態になる代わりにアクティブ状態になる。auto_action_flagがオフ(ビット値0)に設定されれば、ボタンiは、選択されたとしてもセレクテッド状態になるにすぎない。
【０１３６】
『button_horizontal_position』、『button_vertical_position』は、対話画面におけるボタンiの左上画素の水平位置、垂直位置を示す。
『upper_button_number』は、ボタンiがセレクテッド状態である場合においてMOVEUPキーが押下された場合、ボタンiの代わりに、セレクテッド状態にすべきボタンの番号を示す。もしこのフィールドにボタンiの番号が設定されていれば、MOVEUPキーの押下は無視される。
【０１３７】
『lower_button_number』,『left_button_number』,『right_button_number』は、ボタンiがセレクテッド状態である場合においてMOVE Down キー,MOVE Left キー,MOVE Right キーが押下された場合、ボタンiの押下の代わりに、セレクテッド状態にすべきボタンの番号を示す。もしこのフィールドにボタンiの番号が設定されていれば、これらのキーの押下は無視される。
【０１３８】
『start_object_id_normal』は、ノーマル状態のボタンiをアニメーションで描画する場合、アニメーションを構成する複数ODSに付加された連番のうち、最初の番号がこのstart_object_id_normalに記述される。
『end_object_id_normal』は、ノーマル状態のボタンiをアニメーションで描画する場合、アニメーションを構成する複数ODSに付加された連番たる『object_ID』のうち、最後の番号がこのend_object_id_normalに記述される。このEnd_object_id_normalに示されるIDが、start_object_id_normalに示されるIDと同じである場合、このIDにて示されるグラフィックスオブジェクトの静止画が、ボタンiの絵柄になる。
【０１３９】
『repeated_normal_flag』は、ノーマル状態にあるボタンiのアニメーション表示を反復継続させるかどうかを示す。
『start_object_id_selected』は、セレクテッド状態のボタンiをアニメーションで描画する場合、アニメーションを構成する複数ODSに付加された連番のうち、最初の番号がこのstart_object_id_selectedに記述される。
【０１４０】
『end_object_id_selected』は、セレクト状態のボタンiをアニメーションで描画する場合、アニメーションを構成する複数ODSに付加された連番たる『object_ID』のうち、最後の番号がこのend_object_id_selectedに記述される。このEnd_object_id_selectedに示されるIDが、start_object_id_selectdに示されるIDと同じである場合、このIDにて示されるグラフィックスオブジェクトの静止画が、ボタンiの絵柄になる。
【０１４１】
『repeat_selected_flag』は、セレクテッド状態にあるボタンiのアニメーション表示を、反復継続するかどうかを示す。start_object_id_selectedと、end_object_id_selectedとが同じ値になるなら、本フィールド00に設定される。
『start_object_id_activated』は、アクティブ状態のボタンiをアニメーションで描画する場合、アニメーションを構成する複数ODSに付加された連番のうち、最初の番号がこのstart_object_id_activatedに記述される。
【０１４２】
『end_object_id_activated』は、アクティブ状態のボタンをアニメーションで描画する場合、アニメーションを構成する複数ODSに付加された連番たる『object_ID』のうち、最後の番号がこのend_object_id_activatedに記述される。
続いてボタンコマンドについて説明する。
『ボタンコマンド(button_command)』は、ボタンiがアクティブ状態になれば、実行されるコマンドである。ボタンコマンドでは、以下の(i)〜(iv)のコマンドを使用することにより、PSR,GPRに値を設定したり、これらPSR,GPRから値を取得したりすることができる。
【０１４３】
(i)Get value of Player Status Registerコマンド
書式：Get value of Player Status Register(引数)
この関数は、引数で指定されたPlayer Status Registerの設定値を取得する。
(ii)Set value of Player Status Registerコマンド
書式：Set value of Player Status Register(第１引数、第２引数)
この関数は、第１引数で指定されたPlayer Status Registerに、第２引数で指定された値を設定させる。
【０１４４】
(iii)Get value of General Purpose Registerコマンド
書式：Get value of General Purpose Register(引数)
この関数は、引数で指定されたGeneral Purpose Registerの設定値を取得する関数である。
(iv)Set value of General Purpose Registerコマンド
書式：Set value of General Purpose Register(第１引数、第２引数)
この関数は、第１引数で指定されたGeneral Purpose Registerに、第２引数で指定された値を設定させる。  
【０１４５】
＜具体例＞
以上がICSの内部構成である。ICSによる対話制御の具体例について以下説明する。本具体例は、図３６のようなODS、ICSを想定している。図３６は、あるDSnに含まれるODSと、ICSとの関係を示す図である。このDSnには、ODS11〜19,21〜29,31〜39,41〜49が含まれているものとする。これらのODSのうち、ODS11〜19は、ボタン1-Aの各状態を描いたものであり、ODS21〜29は、ボタンBの各状態を描いたもの、ODS31〜39は、ボタン1-Cの各状態を描いたもの、ODS41〜49は、ボタン1-Dの各状態を描いたものとする(図中の括弧}を参照)。一方、ICSには、ページ1〜ページ3という3枚のページに対応するページ情報(1)(2)(3)が存在しており、このうち先頭ページにあたるページ1おけるbutton_info(1),(2),(3),(4)にて、これらのボタン1-A〜ボタン1-Dの状態制御が記述されている(図中の矢印bh1,2,3,4参照)。
【０１４６】
このICSによる制御の実行タイミングが、図３７に示す動画のうち、任意のピクチャデータpt1の表示タイミングであれば、ICSにより表示可能な3つのページ(ページ1、ページ2、ページ3)のうちページ1が、このピクチャデータpt1に合成されて表示されることになる(gs2)。動画の中身に併せて、複数ボタンからなる対話画面が表示されるので、ICSによりボタンを用いたリアルな演出が可能になる。
【０１４７】
図３８に示すボタン1-A〜ボタン1-Dの状態遷移を実行する場合のICSの記述例を図３９に示す。図３８における矢印hh1,hh2は、button info(1)のneighbor_info()による状態遷移を象徴的に表現している。button info(1)のneighbor_info()におけるlower_button_numberは、ボタン1-Cに設定されているため、ボタン1-Aがセレクテッド状態になっている状態で、MOVEDownキー押下のUOが発生すれば(図３８のup1)、ボタン1-Cがセレクテッド状態になる(図３８のsj1)。button info(1)のneighbor_info()におけるright_button_numberは、ボタン1-Bに設定されているため、ボタン1-Aがセレクテッド状態になっている状態で、MOVERightキー押下のUOが発生すれば(図３８のup2)、ボタン1-Bがセレクテッド状態になる(図３８のsj2)。
【０１４８】
図３８における矢印hh3は、button info(3)のneighbor_info()による状態遷移の制御を示す。button info(3)のneighbor_info()におけるupper_button_numberは、ボタン1-Aに設定されているため、ボタン1-Cがセレクテッド状態になっている状態で(up3)、MOVEUpキー押下のUOが発生すれば、ボタン1-Aがセレクテッド状態に戻る。ボタン1-Aには、ボタンコマンド「SetPage2」が記述されている。このコマンドは、ページ2への切り換えを再生装置に命じるものであり、ボタン1-Aがアクティブ状態になってかかるボタンコマンドが実行されれば、図４０に示すように、ページ1からページ2への表示切り換えがなされることになる。
【０１４９】
＜再生装置＞
以上が記録媒体の改良である。続いて本実施形態に係る再生装置について説明する。再生装置が有する複数PSRのうち、対話機能に係るものは、PSR0、PSR11、PSR10である。図４１を参照しながら、PSR0、PSR10、PSR11について説明する。
PSR0は、カレントPlay ItemのSTN_tableにentryが記述されている複数IGストリームのうち、1つを特定するものである。
【０１５０】
PSR11は、PSR0により特定されるIGストリームにより複数ページの表示が可能である場合、それら複数ページのうち1つを特定するものである。
PSR10は、PSR11により特定されるページに複数ボタンが存在する場合、それら複数ボタンのうち1つを特定するものである。
対話機能を実現するにあたって、PSR0は、以下のような状態遷移を行う。PSR0は初期値として1が設定されており、再生装置により2〜32の値に設定されうる。図４２（ａ）は、PSR0が取り得る状態遷移を示す。図４２（ｂ）は、PSR0におけるProcedure when playback condition is changedを示し、図４３はPSR0におけるProcedure when change is requestedのフローチャートを示す。これらの状態遷移、フローチャートは、第１実施形態に示したPSR1、PSR2と同じである。オーディオストリーム、PG_textST_streamの場合と同様、複数言語に対応するIGストリームがAVClipに多重されている場合、これらの中から、再生装置側の言語設定に応じたものが選ばれ、表示されることになる。この際、再生装置は、対応するentryが、STN_tableにおいて何番目に位置するかに従いIGストリームを選ぶ。これによりオーサリング担当者は、STN_tableにおけるentryの記述順序を規定することができ、複数IGストリームのうち、所望のものを優先的に選択させることができる。以上がPSR0の状態遷移についての説明である。  
【０１５１】
PSR10、PSR11もPSR0同様、第１実施形態、第２実施形態に示したような状態遷移を行うが、その詳細については後で説明する。
続いて本実施形態に係る再生装置の構成について説明する。再生すべきIGストリームがPSR0に示されているので、第２実施形態に係る再生装置において制御部２４、デマルチプレクサ３は、以下の処理を行う。
【０１５２】
制御部２４は、STN_tableにおけるIGストリームのentry−attributeのうち、PSR0の格納されているストリーム番号に対応するものからPIDを取り出してデマルチプレクサ３に設定する。
デマルチプレクサ３は、BD-ROM及びHDから読み出されたTSパケットのうち、制御部２４から設定されたPIDを有するものをI-Graphicsデコーダ１３に出力する。これによりI-Graphicsデコーダ１３には、ICS、PDS、ODSが順次供給されることになる。
【０１５３】
＜I-Graphicsデコーダ１３の内部構成＞
続いて図４４を参照しながら、I-Graphicsデコーダ１３の内部構成について説明する。図４４に示すようにI-Graphicsデコーダ１３は、Coded Data Buffer３３、Stream Graphics Processor３４、Object Buffer３５、Composition Buffer３６、Graphics Controller３７から構成される。
【０１５４】
Coded Data Buffer３３は、ICS、PDS、ODSがDTS、PTSと共に一時的に格納されるバッファである。
Stream Graphics Processor３４は、ODSをデコードして、デコードにより得られた非圧縮グラフィクスをObject Buffer３５に書き込む。
Object Buffer３５は、Stream Graphics Processor３４のデコードにより得られた非圧縮グラフィクス(図中の四角枠)が多数配置されるバッファである。
【０１５５】
Composition Buffer３６は、ICSが配置されるメモリであり、ここに格納されたICSにおける複数のページ情報及び各ページ情報内に存在するボタン情報を、Graphics Controller３７に供する。
Graphics Controller３７は、Composition Buffer３６に配置されたICSにおける複数ページ情報のうち、PSR11により指定されているもの(カレントページ情報)のボタン情報を参照して、グラフィクスの描画を行う。この描画は、カレントページ情報内の各ボタン情報において、normal_state_infoのstart_object_id_normal,End_object_id_normalにより指定されているグラフィクスをObject Buffer１５から読み出し、Interactive Graphicsプレーン１５に書き込むことでなされる。カレントページ情報内のボタン情報のうち、PSR10により指定されているものについては、selected_state_infoのstart_object_id_selected,End_object_id_selectedにより指定されているグラフィクスをObject Buffer１５から読み出し、Interactive Graphicsプレーン１５に書き込むこと描画される。図中の矢印bg1,2,3,4は、以上のGraphics Controller３７による描画を象徴的に示している。かかる描画により、ボタン1-A〜ボタン1-Dが配されたページがInteractive Graphicsプレーン１５に現れ、動画に合成されることになる。
【０１５６】
以上はGraphics Controller３７が行うべき処理の概要であり、Graphics Controller３７が行うべき処理の詳細は、図４５〜図５１に示したものとなる。
図４５は、Graphics Controller３７の処理のうち、メインルーチンにあたる処理を示すフローチャートである。本フローチャートは、ステップＳ８８(アニメーション処理)、ステップＳ８９(UO処理)を行いつつも、ステップＳ８１、Ｓ８２、ステップＳ８３の何れかの事象が成立しているかどうかを判定し、もしどれかの事象が成立すれば、該当する処理を実行してメインルーチンにリターンするものである。
【０１５７】
ステップＳ８１は、現在の再生時点においてICSがValidになったか否かの判定であり、もしそうであるなら、ICSにおける最初のページ情報をPSR10に設定する(ステップＳ８４)。その後、カレントページの表示処理を実行する(ステップＳ８５)。
ステップＳ８２は、現在の再生時点がselection_TimeOut_PTSに示される時刻であるかの判定であり、もしそうであれば、ボタンをアクティベートする処理を行う(ステップＳ８６)。
【０１５８】
ステップＳ８３は、現在の再生時点がComposition_TimeOut_PTSであるかの判定であり、もしそうであれば、画面クリアを行って、PSR10、PSR11を無効化する(ステップＳ８７)。以上がタイムスタンプによる同期処理である。この同期処理において、ステップＳ８５、ステップＳ８６の処理手順は、サブルーチン化されている。ステップＳ８５のサブルーチンの処理手順を、図４６を参照しながら説明する。
【０１５９】
図４６は、初期表示の処理手順を示すフローチャートである。ステップＳ９１は、カレントページのIn_effectに規定された表示効果の実行であり、これを実行した後、カレントボタンの設定処理を行う。カレントボタンは、PSR10に規定されており、このPSR10についてのProcedure when playback condition is changedの実行が、このステップＳ９２の処理である。かかるステップＳ９２によりカレントボタンが決定されれば、ステップＳ９３〜ステップＳ９８に移行する。
【０１６０】
ステップＳ９３〜ステップＳ９８は、カレントページにおける各ボタン情報について繰り返されるループ処理を形成している(ステップＳ９３、ステップＳ９４)。本ループ処理において処理対象になるべきボタン情報をボタン情報(p)という。
ステップＳ９５では、button_info(p)がカレントボタンに対応するbutton_infoであるか否かを判定する。もしそうであれば、ステップＳ９６に、異なるならステップＳ９７に移行する。
【０１６１】
ステップＳ９６では、button_info(p)のselected_state_infoに指定されているstart_object_id__selectedのグラフィクスオブジェクトを、グラフィクスオブジェクト(p)としてObject Buffer３５から特定する。
ステップＳ９７では、button_info(p)のnormal_state_infoに指定されているstart_object_id_normalのグラフィクスオブジェクトを、グラフィクスオブジェクト(p)としてObject Buffer３５から特定する。
【０１６２】
ステップＳ９６、ステップＳ９７を経ることでグラフィクスオブジェクト(p)が特定されれば、button_info(p)のbutton_horizontal_position,button_vertical_positionに示されるInteractive Graphicsプレーン１５上の位置に、グラフィクスオブジェクト(p)を書き込む(ステップＳ９８)。かかる処理をカレントページにおける各ボタン情報について繰り返せば、各ボタンの状態を表す複数グラフィクスオブジェクトのうち、最初のグラフィクスオブジェクトがInteractive Graphicsプレーン１５上に書き込まれることになる。
【０１６３】
続いてステップＳ８６のサブルーチンの処理手順を、図４７を参照しながら説明する。
図４７は、ボタンのオートアクティベートの処理手順を示すフローチャートである。先ずdefault_activated__button_id_refが0であるか,FFであるかどうかを判定し(ステップＳ１００)、00であれば何の処理も行わずメインルーチンにリターンする。FFであれば、カレントボタンiをアクティブ状態に遷移する(ステップＳ１０２)。そしてカレントボタンiに対応する変数animation(i)を0に設定してメインルーチンにリターンする(ステップＳ１０３)。
【０１６４】
00でも、FFでもなければ、default_activated_button_numberで指定されるボタンをカレントボタンとし(ステップＳ１０１)、カレントボタンiをアクティブ状態に遷移し(ステップＳ１０２)、カレントボタンiに対応する変数animation(i)を0に設定してメインルーチンにリターンする(ステップＳ１０３)。
以上の処理により、セレクテッド状態のボタンは、所定時間の経過時においてアクティブ状態に遷移させられることになる。以上が、図４７のフローチャートの全容である。
【０１６５】
続いて、ページにおけるアニメーション表示について説明する。図４８は、アニメーション表示の処理手順を示すフローチャートである。
ここで初期表示は、各button_infoのnormal_state_infoにおけるstart_object_id_normal、selected_state_infoにおけるstart_object_id_selectedで指定されているグラフィクスオブジェクトを、Interactive Graphicsプレーン１５に書き込まれることにより実現した。アニメーションとは、メインルーチンのループ処理が一巡する度に、各ボタンにおける任意のコマ(qコマ目にあるグラフィクスオブジェクト)をこのInteractive Graphicsプレーン１５に上書する処理である。この更新は、button_infoのnormal_state_info、selected_state_infoで指定されているグラフィクスオブジェクトを、一枚ずつInteractive Graphicsプレーン１５に書き込んでメインルーチンにリターンすることでなされる。ここで変数qとは、各ボタン情報のbutton_infoのnormal_state_info、selected_state_infoで指定されている個々のグラフィクスオブジェクトを指定するための変数である。
【０１６６】
このアニメーション表示を実現するための処理を、図４８を参照しながら説明する。尚本フローチャートは、記述の簡略化を期するため、ICSのrepeat_normal_flag、repeat_selected_flagが繰り返し要と設定されているとの前提で作図している。
ステップＳ１１０は初期表示が済んでいるか否かの判定であり、もし済んでいなけれ何の処理も行わずにリターンする。もし済んでいればステップＳ１１１〜ステップＳ１２３の処理を実行する。ステップＳ１１１〜ステップＳ１２３は、ICSにおける各button_infoについて、ステップＳ１１３〜ステップＳ１２３の処理を繰り返すというループ処理を構成している(ステップＳ１１１、ステップＳ１１２)。
【０１６７】
ステップＳ１１３は、button_info(p)に対応する変数animation(p)を変数qに設定する。こうして、変数qは、button_info(p)に対応する、現在のコマ数を示すことになる。
ステップＳ１１４は、button_info(p)が、現在セレクテッド状態にあるボタン(カレントボタン)に対応するbutton_infoであるか否かの判定である。
カレントボタン以外のボタンならば、button_info(p).normal_state_infoにおけるstart_object_id_normalに変数qを足した識別子をID(q)とする(ステップＳ１１５)。
【０１６８】
カレントボタンに対応するボタンであれば、ステップＳ１１６の判定を行う。
ステップＳ１１６は、カレントボタンがアクティブ状態であるかの判定であり、もしそうであれば、ステップＳ１１７においてbutton_info(p).actioned_state_infoにおけるstart_object_id_activatedに変数qを足した識別子をID(q)とする。そしてbutton_info(p)に含まれるボタンコマンドのうち、1つを実行する(ステップＳ１１８)。
【０１６９】
カレントボタンがアクティブ状態でなければ、button_info(p).selected_state_infoにおけるstart_object_id_selectedに変数qを足した識別子をID(q)とする(ステップＳ１１９)。
こうしてID(q)が決まれば、Object Buffer３５に存在する、ID(q)を有するグラフィクスオブジェクト(q)を、button_info(p)のbutton_horizontal_position,button_vertical_positionに示されるGraphics Plane１５上の位置に書き込む(ステップＳ１２０)。
【０１７０】
以上のループ処理により、カレントボタンのセレクテッド状態(若しくはアクティブ状態)及びその他のボタンのノーマル状態を構成する複数グラフィクスオブジェクトのうち、q枚目のものがInteractive Graphicsプレーン１５に書き込まれることになる。
ステップＳ１２１は、start_object_id_normal＋qがend_object_id_normalに達したか否かの判定であり、もし達しないなら変数qをインクリメントした値を変数animation(p)に設定する(ステップＳ１２２)。もし達したなら変数animation(p)を0に初期化する(ステップＳ１２３)。以上の処理は、ICSにおける全てのbutton_infoについて繰り返される(ステップＳ１１１、ステップＳ１１２)。全てのbutton_infoについて、処理がなされれば、メインルーチンにリターンする。
【０１７１】
以上のステップＳ１１０〜ステップＳ１２３により対話画面における各ボタンの絵柄は、メインルーチンが一巡する度に新たなグラフィクスオブジェクトに更新される。メインルーチンが何度も反復されれば、いわゆるアニメーションが可能になる。アニメーションにあたって、グラフィクスオブジェクト一コマの表示間隔は、animation_frame_rate_codeに示される値になるようにGraphics Controller３７は時間調整を行う。
【０１７２】
続いて、ボタンコマンドの実行処理について、図４９のフローチャートを参照しながら説明する。ステップＳ１３１は、ボタン情報におけるボタンコマンドを1つ取り出し、ステップＳ１３２はボタンコマンドがページ切換コマンドであるか否かの判定である。もしページ切換コマンドでないなら、ステップＳ１３３においてボタンコマンドをそのまま実行する。もしページ切換コマンドであるなら、カレントページのOut_effectに規定された表示効果を実行する(ステップＳ１３４)。そしてbutton_commandのオペランドから特定される切換先ページをXにし、button_commandのオペランドから特定されるbutton番号をPSR10に格納して(ステップＳ１３５)、PSR11についてのProcedure when change is requestedを実行する(ステップＳ１３６)。ここでPSR11は、現在表示されているページを示すものであり、これについてのProcedure when change is requestedを実行することで、カレントページが定まる。その後、R10についてのProcedure when playback condition is changedを実行して、ボタンコマンド実行処理を終える。
【０１７３】
以上でボタンコマンド実行処理についての説明を終わる。続いてメインルーチンのステップＳ３７におけるUO処理の処理手順について図５０を参照しながら説明する。
図５０は、UO処理の処理手順を示すフローチャートである。本フローチャートは、ステップＳ１４０〜ステップＳ１４３の何れかの事象が成立しているかどうかを判定し、もしどれかの事象が成立すれば、該当する処理を実行してメインルーチンにリターンする。ステップＳ１４０は、UOmaskTableが"1"に設定されているかどうかの判定であり、もしに設定されていれば、何の処理も行わずに、メインルーチンにリターンする。
【０１７４】
ステップＳ１４１は、MoveUP/Down/Left/Rightキーが押下されたかどうかの判定であり、もしこれらのキーが押下されれば、カレントボタンを変更して(ステップＳ１４７)、カレントボタンのauto_action_flagが01かどうかを判定する(ステップＳ１４８)。もし違うならメインルーチンにリターンする。もしそうであるなら、ステップＳ１４４に移行する。
【０１７５】
ステップＳ１４３は、数値入力であるかどうかの判定であり、もし数値入力であれば、数値入力処理を行って(ステップＳ１４６)、メインルーチンにリターンする。
ステップＳ１４２は、activatedキーが押下されたかどうかの判定であり、もしそうであれば、カレントボタンiをアクティブ状態に遷移する(ステップＳ１４４)。その後、変数animation(i)を0に設定する(ステップＳ１４５)。図５１の処理手順のうち、ステップＳ１４７はサブルーチン化されている。このサブルーチンの処理手順を示したのが図５１である。以降これらのフローチャートについて説明する。
【０１７６】
図５１は、カレントボタンの変更処理の処理手順を示すフローチャートである。先ず初めに、カレントボタンのneighbor_infoにおけるupper_button_number,lower_button_number,left_button_number,right_button_numberのうち、押下されたキーに対応するものを特定する(ステップＳ１５０)。
そしてカレントボタンをボタンYとし、新たにカレントボタンになるボタンをボタンXとする(ステップＳ１５１)。XをPSR10に設定するにあたって、Procedure when change is requestedを実行する(ステップＳ１５２)。
【０１７７】
設定後、変数animation(X),変数animation(Y)を0に設定した上でメインルーチンにリターンする(ステップＳ１５３)。
以上がグラフィクスデコーダの処理である。
＜フォーカス移動の具体例＞
以上のページ切り換えにおいて、切換先ページにおけるどのボタンをセレクテッド状態にするかの指定は、オーサリング担当者の判断にかかっている。ここでどのようなフォーカス移動を実現するかが問題となる。ここでフォーカスとは、セレクテッド状態になっているボタンのことをいい、フォーカス移動とは、上述したボタンコマンドやデフォルトセレクテッドボタンを用いることにより、ページ切り換えに応じてセレクテッド状態になっているボタンを動的に、又は、静的に移動させることである。
【０１７８】
ここで、連続ドラマ等複数のコンテンツが記録されたパッケージメディアの視聴を支援するためのフォーカス移動について説明する。連続ドラマが記録されたパッケージメディアでは、第１話、第２話、第３話、第４話というように各話にあたるコンテンツが一枚のディスクに記録されている。この際、第１話→第２話、第２話→第３話、第３話→第４話というように、話数順に、各話毎のコンテンツを再生してゆくことが一般的である。話数選択が、選択メニューを介してなされる場合、一話の再生が終わる度に、第１話→第２話、第２話→第３話、第３話→第４話というような選択操作をユーザに行わせるのは、ユーザに煩雑感を与える。
【０１７９】
この選択操作を具体的に示したのが図５２である。本図において選択メニューには、第１話、第２話、第３話、第４話のそれぞれに対応するボタンがあり、各ボタンの確定時には、第１話に対応するチャプターメニュー、第２話に対応するチャプターメニュー、第３話に対応するチャプターメニューがそれぞれ表示される。これらのチャプターメニューの表示後、選択メニューが再表示された際、ユーザはいちいち、次の話数のコンテンツを選ぶよう、キー操作を行わねばならない。つまり、第１話に対応するチャプターメニューが表示され(hw1)、選択メニューが再表示された場合(hw2)、第２話を選ぶようにキー操作(ks1)を行う必要がある。
【０１８０】
また第２話に対応するチャプターメニューが表示され(hw3)、選択メニューが再表示された場合(hw4)、第３話を選ぶようにキー操作(ks2)を行う必要がある。
このようなキー操作の手間の煩わしさを軽減するのが、フォーカス移動である。以降フォーカス移動の実現手順について説明する。図５３は、図５２に示したページ1〜ページ4を、選択メニュー、チャプターメニューにどのように割り当てるかを示す図である。図５２に示した複数ページのうち、ページ1を選択メニューに割り当て、ページ2を第１話のチャプターメニュー、ページ3を第２話のチャプターメニュー、ページ4を第３話のチャプターメニューにそれぞれ割り当てるものとする。
【０１８１】
そしてページ1のボタン1-A〜ボタン1-Dを、選択メニューの第１話〜第４話の選択ボタンに割り当て、ページ2のボタン2-A〜ボタン2-Fを、チャプターメニューのチャプター1〜チャプター5、戻りボタンに割り当てるものとする。ここで戻りボタンとは、選択メニューを再表示させる旨をユーザから受け付けるボタンである。
このような割り当てを行った後、ページ1のボタン1-Aのボタンコマンド、ページ2のボタン2-Fのボタンコマンドを用いて、図５４のような処理手順を記述する。本図におけるボタン1-Aのボタンコマンドで記述された処理手順は、ボタン1-Aの確定時には、(1)PSR10の設定値をGPRに退避し、(2)PSR11に値2を、(3)PSR10に値1を設定するというものである。
【０１８２】
このようにPSRが設定されることで、第１話のチャプターメニューが表示され、ボタン2-Aがセレクテッド状態になる。
一方、ページ2のボタン2-Fのボタンコマンドで記述された処理手順は、(1)PSR11に1を設定し、(2)”GPRに退避した値+1”をPSR10に設定するというものである。
以上のようにページ1のボタン1-A、ページ2のボタン2-Fのボタンコマンドを記述すれば、第１話のチャプターメニューの表示が終了して選択メニューの再表示する際、第１話から第２話のボタンに、フォーカスが自動的に移動することになる。同様のボタンコマンドの記述を、ページ1のボタン1-B〜ボタン1-D、他のページのボタンについて繰り返せば、図５５に示すようなフォーカス移動が実現されることになる。
【０１８３】
かかるフォーカス移動により、沢山のコンテンツからなる連続ドラマから、見たいチャプターを探し出すという検索を簡易に行うことができる。
以上のフォーカス移動の実現において、個々のボタン毎にボタンコマンドを記述せねばならないので、ボタンやページの数が多ければ、バグの発生もあるだろうし、かかるバグを発見するためのテスト作業も必要になる。
【０１８４】
フォーカス移動にあたって起こりうるバグとしては以下のようなものがある。ページ1の表示時において、4つ目のボタン1-Dがセレクテッド状態になっている状態で、上述した手順が実行されれば、ページ1→ページ2の切り換え、ページ2→ページ1の切り換え時においてボタン1-Dのボタン番号に1を加えたボタン番号(=5)がPSRに設定される。5つの目のボタンが存在しないので、PSRのかかる設定により、ページ1において実在しないボタンにフォーカスが移動することになる。また図５６に示すように、ページ2における6つ目のボタン(ボタン1-F)がセレクテッド状態に設定された後、PSRが更新されないままページ1が再表示されるというケースも考えられる。この場合も、ページ1の再表示時に実在しないボタンにフォーカスが移動することになり、再表示時でのフォーカス移動がおかしくなる。以上のように個々のページ毎のボタン数が異なる場合、切り換え後のページに存在し得ないボタンをセレクテッド状態にするような誤って状態設定が頻繁に起こりうる。コンテンツの出荷にあたってはかかる瑕疵の発生は許されないので、かかる状態設定の正常動作を保証するべくオーサリング担当者は、プログラムの出荷時のように、デバッグ・テストに努めなければならない。しかしソフトハウスのようなデバッグ・テストをオーサリング担当者に徹底させるというのは、本業であるコンテンツ製作に悪影響を及ぼしかねない。
【０１８５】
そこで本実施形態では、PSR1、PSR2、PSR3同様、Procedure when playback condition is changed、Procedure when change is requestedを介した状態遷移をPSR10、PSR11に行わせる。
＜PSR11の状態遷移＞
PSR11は、IGストリームにおいて現在表示されているページ(カレントページ)を示す。PSR11は、00〜FFの値をとり、再生装置はこのPSR11の値をページ番号として解釈してページ表示を行う。図５７（ａ）は、PSR11の状態遷移を示す図である。本図を図１５（ａ）と比較すると、事象Cross PlayItem Boundaryをトリガとした状態遷移は存在しないことがわかる。そしてInvalidからValidへの状態遷移のトリガがStart PlayList PlaybackからInteractive Composition Segment become Validに置き換わっており、ValidからInvalidへの状態遷移がTerminate PlayList PlaybackからInteractive Composition Segment become invalidに置き換わっている。またProcedure when change is requestedは、Stream change is requestedではなく、page change is requestedに置き換わっている。これらを除き、図１５（ａ）と同じである。
【０１８６】
”Interactive Composition Segment become invalid”とは、ICSのcomposition_time_out_ptsに示された時刻が到達したという事象、ICSが変化したという事象、PLの再生が終了したとの事象を含む包括的なものである。オーディオストリームの数はPlay Item毎に違うため、PSR1の状態遷移ではPLの再生が始まり、Play Itemの境界を通過する度にProcedure when playback condition is changedを起動してPSR1を設定する必要があった。しかしPSR11はICSが多重されている区間において意味があり、Play Itemの通過毎にProcedure when playback condition is changedを実行する必然性が乏しいので、Invalid−Valid、Invalid−Validの状態遷移は、ICSがValidになったことをトリガとしている。
【０１８７】
続いてPSR11についてのProcedure when playback condition is changedについて説明する。図５７（ｂ）は、PSR11についてのProcedure when playback condition is changedを示すフローチャートである。Procedure when playback condition is changedは、ICSにおける最初のページ情報をPSR11を設定するというものである(ステップＳ１５４)。
図５７（ｃ）は、PSR11についてのProcedure when change is requestedを示すフローチャートである。Procedure when change is requestedは、XがValidであるか否かを判定し(ステップＳ１５５)、もしValidであれば、このXをPSR11に設定し、もしInvalidであるなら(ステップＳ１５６)、このPSR11を維持するというものである(ステップＳ１５７)。以上がPSR11についての説明である。
【０１８８】
＜PSR10の状態遷移＞
以下、PSR10の状態遷移について説明する。図５８（ａ）は、PSR10の状態遷移を示す図である。本図を図５７（ａ）と比較すると、事象Change Page,事象Button Disabledをトリガとした状態遷移が加えられている点を除き、図５７と同じになっている。そしてProcedure when change is requestedは、page change is requestedではなく、button change is requestedに置き換わっている
事象Change Pageとは、ページの切り換えが命じられたとの事象であり、事象Button Disabledとは、ページにて表示されたボタンが操作不可能になったという事象である。これらの事象が発生すれば、Procedure when playback condition is changedに移行し、PSR10に設定すべき値を再設定してからValidに戻る。
【０１８９】
以上がPSR10の状態遷移である。続いてPSR10のProcedure when playback condition is changed、Procedure when change is requestedについて説明する。
図５８（ｂ）は、PSR10のProcedure when playback condition is changedを示すフローチャートである。
ステップＳ１６１は、カレントページにおけるデフォルトセレクテッドボタンが有効であるか否かの判定である。もしステップＳ１６１がYesであるなら、デフォルトセレクテッドボタンをPSR10に設定する(ステップＳ１６２)。
【０１９０】
ステップＳ１６３は、デフォルトセレクテッドボタンがInvalidである場合にPSR10が有効かどうかの判定を行う判定ステップである。もしPSR10がValidであるなら、PSR10の値を維持し(ステップＳ１６４)、PSR10がInvalidであるなら、カレントページの最初のボタンをPSR10に設定する(ステップＳ１６５)。
図５９は、PSR10のProcedure when change is requestedを示すフローチャートである。本フローチャートにおけるステップＳ１６６は、XがValidなボタン番号であるか否かを判定し、もしValidであるならXをPSR10に設定する(ステップＳ１６８)。もしXがInvalidであるなら、PSR10の設定値を維持する(ステップＳ１６７)。
【０１９１】
上述した処理手順によれば、PSRがInvalidであるなら、そのページに記述されたボタン情報のうち、先頭のボタン情報をセレクテッド状態にするようPSR10が設定されるので、たとえページ切り換え時において、切換先のページに存在し得ないようなボタン番号をオーサリング担当者が設定してしまったとしても、これを正しい値に置き換えるような処理が自動的に実行されることになる。フォーカス移動を実現するために記述したボタンコマンドに誤りがあっても、これのリカバリーが自動的に行われるので、オーサリング担当者にとっての負担は軽減する。
【０１９２】
(備考)
以上の説明は、本発明の全ての実施行為の形態を示している訳ではない。下記(A)(B)(C)(D)・・・・・の変更を施した実施行為の形態によっても、本発明の実施は可能となる。本願の請求項に係る各発明は、以上に記載した複数の実施形態及びそれらの変形形態を拡張した記載、ないし、一般化した記載としている。拡張ないし一般化の程度は、本発明の技術分野の、出願当時の技術水準の特性に基づく。
【０１９３】
(A)全ての実施形態では、本発明に係る記録媒体をBD-ROMとして実施したが、本発明の記録媒体は、記録されるグラフィクスストリームに特徴があり、この特徴は、BD-ROMの物理的性質に依存するものではない。グラフィクスストリームを記録しうる記録媒体なら、どのような記録媒体であってもよい。例えば、DVD-ROM,DVD-RAM,DVD-RW,DVD-R,DVD+RW,DVD+R,CD-R,CD-RW等の光ディスク、PD,MO等の光磁気ディスクであってもよい。また、コンパクトフラッシュ（登録商標）カード、スマートメディア、メモリスティック、マルチメディアカード、PCM-CIAカード等の半導体メモリカードであってもよい。フレシキブルディスク、SuperDisk,Zip,Clik!等の磁気記録ディスク(i)、ORB,Jaz,SparQ,SyJet,EZFley,マイクロドライブ等のリムーバルハードディスクドライブ(ii)であってもよい。更に、機器内蔵型のハードディスクであってもよい。
【０１９４】
(B)全ての実施形態における再生装置は、BD-ROMに記録されたAVClipをデコードした上でTVに出力していたが、再生装置をBD-ROMドライブのみとし、これ以外の構成要素をTVに具備させてもい、この場合、再生装置と、TVとをIEEE1394で接続されたホームネットワークに組み入れることができる。また、実施形態における再生装置は、テレビと接続して利用されるタイプであったが、ディスプレィと一体型となった再生装置であってもよい。更に、各実施形態の再生装置において、処理の本質的部分をなすシステムLSI(集積回路)のみを、実施としてもよい。これらの再生装置及び集積回路は、何れも本願明細書に記載された発明であるから、これらの何れの態様であろうとも、第１実施形態に示した再生装置の内部構成を元に、再生装置を製造する行為は、本願の明細書に記載された発明の実施行為になる。第１実施形態に示した再生装置の有償・無償による譲渡(有償の場合は販売、無償の場合は贈与になる)、貸与、輸入する行為も、本発明の実施行為である。店頭展示、カタログ勧誘、パンフレット配布により、これらの譲渡や貸渡を、一般ユーザに申し出る行為も本再生装置の実施行為である。
【０１９５】
(C)各フローチャートに示したプログラムによる情報処理は、ハードウェア資源を用いて具体的に実現されていることから、上記フローチャートに処理手順を示したプログラムは、単体で発明として成立する。全ての実施形態は、再生装置に組み込まれた態様で、本発明に係るプログラムの実施行為についての実施形態を示したが、再生装置から分離して、第１実施形態に示したプログラム単体を実施してもよい。プログラム単体の実施行為には、これらのプログラムを生産する行為(1)や、有償・無償によりプログラムを譲渡する行為(2)、貸与する行為(3)、輸入する行為(4)、双方向の電子通信回線を介して公衆に提供する行為(5)、店頭、カタログ勧誘、パンフレット配布により、プログラムの譲渡や貸渡を、一般ユーザに申し出る行為(6)がある。
【０１９６】
(D)各フロ−チャ−トにおいて時系列に実行される各ステップの「時」の要素を、発明を特定するための必須の事項と考える。そうすると、これらのフロ−チャ−トによる処理手順は、再生方法の使用形態を開示していることがわかる。各ステップの処理を、時系列に行うことで、本発明の本来の目的を達成し、作用及び効果を奏するよう、これらのフロ−チャ−トの処理を行うのであれば、本発明に係る記録方法の実施行為に該当することはいうまでもない。
【０１９７】
(E)BD-ROMに記録するにあたって、AVClipを構成する各TSパケットには、拡張ヘッダを付与しておくことが望ましい。拡張ヘッダは、TP_extra_headerと呼ばれ、『Arribval_Time_Stamp』と、『copy_permission_indicator』とを含み4バイトのデータ長を有する。TP_extra_header付きTSパケット(以下EX付きTSパケットと略す)は、32個毎にグループ化されて、3つのセクタに書き込まれる。32個のEX付きTSパケットからなるグループは、6144バイト(=32×192)であり、これは3個のセクタサイズ6144バイト(=2048×3)と一致する。3個のセクタに収められた32個のEX付きTSパケットを”Aligned Unit”という。
【０１９８】
IEEE1394を介して接続されたホームネットワークでの利用時において、再生装置は、以下のような送信処理にてAligned Unitの送信を行う。つまり送り手側の機器は、Aligned Unitに含まれる32個のEX付きTSパケットのそれぞれからTP_extra_headerを取り外し、TSパケット本体をDTCP規格に基づき暗号化して出力する。TSパケットの出力にあたっては、TSパケット間の随所に、isochronousパケットを挿入する。この挿入箇所は、TP_extra_headerのArribval_Time_Stampに示される時刻に基づいた位置である。TSパケットの出力に伴い、再生装置はDTCP_Descriptorを出力する。DTCP_Descriptorは、TP_extra_headerにおけるコピー許否設定を示す。ここで「コピー禁止」を示すようDTCP_Descriptorを記述しておけば、IEEE1394を介して接続されたホームネットワークでの利用時においてTSパケットは、他の機器に記録されることはない。
【０１９９】
(F)各実施形態におけるデジタルストリームは、BD-ROM規格のAVClipであったが、DVD-Video規格、DVD-Video Recording規格のVOB(Video Object)であってもよい。VOBは、ビデオストリーム、オーディオストリームを多重化することにより得られたISO/IEC13818-1規格準拠のプログラムストリームである。またAVClipにおけるビデオストリームは、MPEG4やWMV方式であってもよい。更にオーディオストリームは、Linear-PCM方式、MP3方式、MPEG-AAC方式であってもよい。
【０２００】
(G)各実施形態における映画作品は、アナログ放送で放送されたアナログ映像信号をエンコードすることにより得られたものでもよい。デジタル放送で放送されたトランスポートストリームから構成されるストリームデータであってもよい。
またビデオテープに記録されているアナログ／デジタルの映像信号をエンコードしてコンテンツを得ても良い。更にビデオカメラから直接取り込んだアナログ／デジタルの映像信号をエンコードしてコンテンツを得ても良い。他にも、配信サーバにより配信されるデジタル著作物でもよい。
【０２０１】
(H)各実施形態に示したグラフィックスオブジェクトは、ランレングス符号化されたラスタデータである。グラフィックスオブジェクトの圧縮・符号化方式にランレングス符号方式を採用したのは、ランレングス符号化は字幕の圧縮・伸長に最も適しているためである。字幕には、同じ画素値の水平方向の連続長が比較的長くなるという特性があり、ランレングス符号化による圧縮を行えば、高い圧縮率を得ることができる。また伸長のための負荷も軽く、復号処理のソフトウェア化に向いている。デコードを実現する装置構成を、字幕−ボタン間で共通化する目的で、字幕と同じ圧縮・伸長方式をボタンに採用している。しかし、ランレングス符号化方式を採用したというのは、本発明の必須事項ではなく、グラフィックスオブジェクトはPNGデータであってもよい。またラスタデータではなくベクタデータであってもよい、更に透明な絵柄であってもよい。
【０２０２】
(I)PCSによる表示効果の対象は、装置側のディスプレィ設定に応じて選ばれた字幕グラフィクスであってもよい。つまり、ワイドビジョン、パンスキャン、レターボックス用といった様々な表示モード用のグラフィクスがBD-ROMに記録されており、装置側は自身に接続されたテレビの設定に応じてこれらの何れかを選んで表示する。この場合、そうして表示された字幕グラフィクスに対し、PCSに基づく表示効果をほどこすので、見栄えがよくなる。これにより、動画像本体で表現していたような文字を用いた表示効果を、装置側のディスプレィ設定に応じて表示された字幕で実現することができるので、実用上の価値は大きい。
【０２０３】
(J)各実施形態において再生装置には、グラフィックスプレーンを実装したが、このグラフィックスプレーンに代えて、一ライン分の非圧縮画素を格納するラインバッファを具備してもよい。映像信号への変換は水平行(ライン)毎に行われるので、このラインバッファさえ具備していれば、この映像信号への変換は行なえるからである。
(K)第３実施形態では、PSR10、PSR10に値を設定するようなボタンコマンドをICSに記述したが、PSR1、PSR2、PSR3に値を設定するようなボタンコマンドを記述してもよい。例えばPSR2が英語字幕を示しているのであれば、日本語音声を選択するように、ボタンコマンドを記述してもよい。
【０２０４】
(L)オーディオ選択メニュー、字幕選択メニューを表示して、オーディオストリーム選択、字幕選択を受け付けるにあたって、オーディオ選択メニュー、字幕選択メニューに”おまかせボタン”なるボタンを設けてもよい。かかるボタンに対応するボタン情報は、PSR1、PSR2に不定値を設定するボタンコマンドを有している。おまかせボタンの確定で、かかるボタンコマンドが実行されれば、PSR1、PSR2に不定値が設定され、Procedure when playback condition is changedが起動されて最適なオーディオストリーム、PG_textST_streamが選択されることになる。
【０２０５】
(M)第１実施形態において、満たすべき条件は(a)〜(c)の3つであったが、4つ以上であってもよい。
【産業上の利用可能性】
【０２０６】
本発明に係る再生装置は、上記実施形態に内部構成が開示されており、この内部構成に基づき量産することが可能なので、資質において工業上利用することができる。このことから本発明に係る再生装置は、産業上利用可能性を有する。
【図面の簡単な説明】
【０２０７】
【図１】（ａ）本発明に係る再生装置の、使用行為についての形態を示す図である。  （ｂ）対話画面に対する操作をユーザから受け付けるためのリモコン４００におけるキーを示す図である。
【図２】BD-ROMの構成を示す図である。
【図３】AVClipがどのように構成されているかを模式的に示す図である。
【図４】Clip情報の内部構成を示す図である。
【図５】PL情報の内部構成を示す図である。
【図６】PL情報による間接参照を模式化した図である。
【図７】sync_PlayItem_id,sync_start_PTS_of_PlayItemによるサブPlayItemの同期を模式的に示す図である。
【図８】STN_tableの内部構成を示す図である。
【図９】（ａ）ビデオストリームに対応したentry−attributeの組みを示す図である。  （ｂ）オーディオストリームに対応したentry−attributeの組みを示す図である。  （ｃ）PGストリームに対応したentry−attributeの組みを示す図である。  （ｄ）textSTストリームに対応したentry−attributeの組みを示す図である。  （ｅ）IGストリームに対応したentry−attributeの組みを示す図である。
【図１０】HDにプリロードされたプレイリスト情報の内部構成を示す図である。
【図１１】HD上のプレイリスト情報内のClip_Information_file_nameによるファイル指定を示す図である。
【図１２】本発明に係る再生装置の内部構成を示す図である。
【図１３】PSR1、PSR2、PSR15、PSR16、PSR30の詳細設定を示すである。
【図１４】PSR4〜PSR8の詳細設定を示す図である。
【図１５】（ａ）PSR1の設定値が取り得る状態遷移を示す。  （ｂ）PSR1についてのProcedure when playback condition is changedを示すフローチャートである。
【図１６】ステップＳ５の詳細な処理手順に示したフローチャートである。
【図１７】再生能力と、ストリームの属性との組合せを表形式で示した図である。
【図１８】STN_tableにおけるentryの順位に基づく、オーディオストリーム選択を示す図である。
【図１９】PSR1についてのProcedure when change is requestedを示すフローチャートである。
【図２０】（ａ）〜（ｃ）Procedure when playback condition is changedによるオーディオストリーム選択の第１具体例を示す図である。
【図２１】（ａ）〜（ｃ）Procedure when playback condition is changedによるオーディオストリーム選択の第２具体例を示す図である。
【図２２】（ａ）〜（ｃ）Procedure when playback condition is changedによるオーディオストリーム選択の第３具体例を示す図である。
【図２３】（ａ）PSR2が取り得る状態遷移を示す図である。  （ｂ）PSR2におけるProcedure when playback condition is changedを示すフローチャートである。
【図２４】PSR2についてのProcedure when change is requestedを示すフローチャートである。
【図２５】PSR2の設定手順を示すフローチャートである。
【図２６】（ａ）〜（ｃ）Procedure when playback condition is changedによるPG_textST_stream選択の具体例を示す図である。
【図２７】STN_tableにおけるentryの順位に基づく、PG_textST_stream選択を示す図である。
【図２８】第２実施形態に係るPlayList情報の構成を示す図である。
【図２９】第２実施形態に係るファイル構成を示す図である。
【図３０】（ａ）（ｂ）マルチアングル区間、非アングル区間を示す図である。
【図３１】PSR3の内部構成を示す図である。
【図３２】（ａ）PSR3の状態遷移を示す図である。  （ｂ）PSR3におけるProcedure when playback condition is changedを示すフローチャートである。  （ｃ）PSR3におけるProcedure when change is requestedを示すフローチャートである。
【図３３】（ａ）（ｂ）アングル区間の選択がどのように行われるかを示す図である。
【図３４】IGストリーム、ICSを示す図である。
【図３５】ボタン情報についての内部構成を示す図である。
【図３６】あるDSnに含まれるODSと、ICSとの関係を示す図である。
【図３７】任意のピクチャデータpt1の表示タイミングにおける画面合成を示す図である。
【図３８】ボタン1-A〜ボタン1-Dの状態遷移を示す図である。
【図３９】ICSにおけるボタン情報の設定例を示す図である。
【図４０】ページ1からページ2への表示切り換えを示す図である。
【図４１】PSR0、PSR10、PSR11を説明するための図である。
【図４２】（ａ）PSR0が取り得る状態遷移を示す。  （ｂ）PSR0におけるProcedure when playback condition is changedを示す。
【図４３】PSR0におけるProcedure when change is requestedのフローチャートを示す。
【図４４】I-Graphicsデコーダ１３の内部構成を示す図である。
【図４５】タイムスタンプによる同期制御の処理手順を示すフローチャートである。
【図４６】初期表示の処理手順を示すフローチャートである。
【図４７】オートアクティベートの処理手順を示すフローチャートである。
【図４８】アニメーション表示の処理手順を示すフローチャートである。
【図４９】ボタンコマンド実行処理の処理手順を示すフローチャートである。
【図５０】UO処理の処理手順を示すフローチャートである。
【図５１】カレントボタンの変更処理の処理手順を示すフローチャートである。
【図５２】連続ドラマを視聴する場合に、ユーザが行うべきキー操作を示す図である。
【図５３】図５２に示したページ1〜ページ4を、選択メニュー、チャプターメニューにどのように割り当てるかを示す図である。
【図５４】フォーカス移動を実現するにあたって、各ボタンコマンドに記述すべき処理手順を示す図である。
【図５５】前ページのフォーカス位置と連動しているようなフォーカス移動を示す図である。
【図５６】フォーカス移動にあたって起こりうるバグを示す図である。
【図５７】（ａ）PSR11の状態遷移を示す図である。  （ｂ）PSR11についてのProcedure when playback condition is changedを示すフローチャートである。  （ｃ）PSR11についてのProcedure when change is requestedを示すフローチャートである。
【図５８】（ａ）PSR10の状態遷移を示す図である。  （ｂ）PSR10のProcedure when playback condition is changedを示すフローチャートである。
【図５９】PSR10のProcedure when change is requestedを示すフローチャートである。
【符号の説明】
【０２０８】
１    BDドライブ
２    リードバッファ
３    デマルチプレクサ
４    ビデオデコーダ
５    ビデオプレーン
９    P-Graphicsデコーダ
１０    Presentation Graphicsプレーン
１１    合成部
１２    フォントゼネレータ
１３    I-Graphicsデコーダ
１４    スイッチ
１５    Interactive Graphicsプレーン
１６    合成部
１７    コントローラ
１８    リードバッファ
１９    デマルチプレクサ
２０    オーディオデコーダ
２１    スイッチ
２２    スイッチ
２３    シナリオメモリ
２４    制御部
２５    スイッチ
２６    CLUT部
２７    CLUT部
２８    PSRセット
２９    操作受付部
３０    遷移制御部
２００    再生装置
３００    テレビ
４００    リモコン
【図１】
2006191667.tif 000003
【図２】
2006191667.tif 000004
【図３】
2006191667.tif 000005
【図４】
2006191667.tif 000006
【図５】
2006191667.tif 000007
【図６】
2006191667.tif 000008
【図７】
2006191667.tif 000009
【図８】
2006191667.tif 000010
【図９】
2006191667.tif 000011
【図１０】
2006191667.tif 000012
【図１１】
2006191667.tif 000013
【図１２】
2006191667.tif 000014
【図１３】
2006191667.tif 000015
【図１４】
2006191667.tif 000016
【図１５】
2006191667.tif 000017
【図１６】
2006191667.tif 000018
【図１７】
2006191667.tif 000019
【図１８】
2006191667.tif 000020
【図１９】
2006191667.tif 000021
【図２０】
2006191667.tif 000022
【図２１】
2006191667.tif 000023
【図２２】
2006191667.tif 000024
【図２３】
2006191667.tif 000025
【図２４】
2006191667.tif 000026
【図２５】
2006191667.tif 000027
【図２６】
2006191667.tif 000028
【図２７】
2006191667.tif 000029
【図２８】
2006191667.tif 000030
【図２９】
2006191667.tif 000031
【図３０】
2006191667.tif 000032
【図３１】
2006191667.tif 000033
【図３２】
2006191667.tif 000034
【図３３】
2006191667.tif 000035
【図３４】
2006191667.tif 000036
【図３５】
2006191667.tif 000037
【図３６】
2006191667.tif 000038
【図３７】
2006191667.tif 000039
【図３８】
2006191667.tif 000040
【図３９】
2006191667.tif 000041
【図４０】
2006191667.tif 000042
【図４１】
2006191667.tif 000043
【図４２】
2006191667.tif 000044
【図４３】
2006191667.tif 000045
【図４４】
2006191667.tif 000046
【図４５】
2006191667.tif 000047
【図４６】
2006191667.tif 000048
【図４７】
2006191667.tif 000049
【図４８】
2006191667.tif 000050
【図４９】
2006191667.tif 000051
【図５０】
2006191667.tif 000052
【図５１】
2006191667.tif 000053
【図５２】
2006191667.tif 000054
【図５３】
2006191667.tif 000055
【図５４】
2006191667.tif 000056
【図５５】
2006191667.tif 000057
【図５６】
2006191667.tif 000058
【図５７】
2006191667.tif 000059
【図５８】
2006191667.tif 000060
【図５９】
2006191667.tif 000061