説明

再生装置、プログラム、再生方法

【課題】オーサリング担当者がレジスタ設定を行うにあたっての作業の負担を軽くすることができる再生装置を提供する。
【解決手段】装置状態の変化時に、プロシージャを実行することにより、PSR11にカレントボタン番号を設定する遷移制御部を備える。グラフィクスストリームは、1つ以上のICSと、グラフィクスデータ(ODS)とを含み、ICSは、複数のページ情報と、Composition_TimeOut_Ptsとを含み、Composition_TimeOut_Ptsは、ビデオストリームの再生時間軸のうち、対話的な画面構成の終期が何時であるかを示す。遷移制御部は、ビデオストリームの時間軸における現在の再生時点が、対話制御セグメント内のComposition_TimeOut_Ptsに示される対話的な画面構成の終期に到達した際、PSR10におけるボタン番号を無効化する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、BD-ROM等の記録媒体を再生する再生装置に関し、特に再生装置の状態を設定する状態設定機能の改良に関する。
【背景技術】
【0002】
状態設定とは、再生装置が内蔵する状態レジスタに、所定の値を設定することでなされる。状態レジスタに値を設定する方法には、記録媒体に記録された静的な情報に従い設定する方法、記録媒体に記録されたコマンドに従い、動的に設定する方法、再生装置における組込プログラムが、所定の手順に従い設定する方法の計3通りがある。
尚、上述した設定機能には、以下の特許文献に示す先行技術が存在する。
【特許文献1】特許3128220号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
ところで再生装置の組込プログラムに委ねる方法は、オーサリング担当者が介入する余地がないので、記録媒体に記録されている映像の内容に応じて設定値を変更するという自由度が存在せず、オーサリング担当者の工夫が活かせる場所がない。
静的な設定には、再生すべき映像の内容に応じた値を状態レジスタに設定することができるが、静的データを記録媒体に記録してしまえば、再生装置の状態がどのようなものであっても、かかる静的データにより状態レジスタの設定値が決められてしまう。つまり再生装置の動作に応じて設定値を変化させるという柔軟性に欠ける。
【0004】
記録媒体に記録されたコマンド列による方法は、ユーザがこれまでどのような操作を行ったかとか、再生装置がどのような経路でデジタルストリームを再生したか等、不定要素に応じて適切な値を状態レジスタに設定できるので、工夫凝らす余地がオーサリング担当者に生まれる。しかしこの方法では、状態レジスタの設定を行うようオーサリング担当者はプログラミング・デバッグ・テストを行う必要があるので、オーサリング担当者の負担がとても大きくなる。
【0005】
大資本の製作会社ならともかく、小資本で映画製作を行っているオーサリング担当者にとってかかる作業の発生は大きな痛手であり、本業であるコンテンツ製作を圧迫しかねない。
本発明の目的は、オーサリング担当者が状態レジスタ設定を行うにあたっての作業の負担を軽くすることができる再生装置を提供することである。
【課題を解決するための手段】
【0006】
上記課題を解決することができる再生装置は、グラフィクスストリーム及び動画ストリームを再生する再生装置であって、グラフィクスストリームは、1つ以上の対話制御セグメントと、グラフィクスデータとを含み、前記対話制御セグメントは、複数のページ情報と、タイムアウト情報とを含み、複数のページ情報は、マルチページメニューの画面構成を規定する情報であり、各ページ情報は、1つ以上のボタン情報を含み、各ボタン情報は、グラフィクスデータをボタン部材の一状態として表示させることにより、マルチページメニューを構成する各ページ上で対話的な画面構成を実現する情報であり、タイムアウト情報は、ビデオストリームの再生時間軸のうち、対話的な画面構成の終期が何時であるかを示し、
再生に供すべきグラフィクスを格納するプレーンメモリと、グラフィクスストリームをデコードして、グラフィカルなボタン部材が複数配置されたページを得て、プレーンメモリに書き込むデコード手段と、カレントページの番号を格納するページ番号レジスタとを備え、前記デコード手段は、カレントページ上のボタン部材の確定操作に応じて、ページ番号レジスタに、新たなページ番号を設定する旨の設定コマンドを実行し、前記ページ番号レジスタに格納されたページ番号は、タイムアウト情報に示される時刻に到達した際、無効化され、前記ページ番号の無効化は、デコード手段が、既にプレーンメモリに書き込まれたページをグラフィクスプレーンから消し去ることでなされることを特徴とする。
【発明の効果】
【0007】
対話制御セグメントにおけるタイムアウト情報に従って、ページ番号レジスタの番号を無効化することにより、ページ番号レジスタにおけるページ番号を正しい内容に保障する処理は再生装置側に委ねることができ
記述すべき処理の一部を再生装置側に委ねることができるので、動的な状態設定を行うにあたってのコーディング量は減り、オーサリング担当者の負担を軽減することができる。
【発明を実施するための最良の形態】
【0008】
(第1実施形態)
以降、本発明に係る再生装置の実施形態について説明する。先ず始めに、本発明に係る再生装置の実施行為のうち、使用行為についての形態を説明する。図1は、本発明に係る再生装置の、使用行為についての形態を示す図である。図1において、本発明に係る再生装置は再生装置200であり、テレビ300、リモコン400と共にホームシアターシステムを形成する。
【0009】
このBD-ROM100は、再生装置200、テレビ300、リモコン400により形成されるホームシアターシステムに、映画作品を供給するという用途に供される。
またリモコン400は、再生装置に対する操作をユーザから受け付けるものである。図1(b)は、対話画面に対する操作をユーザから受け付けるためのリモコン400におけるキーを示す図である。本図に示すようにリモコン400は、MoveUpキー、MoveDownキー、MoveRightキー、MoveLeftキー、音声切り換え操作を受け付ける音声切換キー、字幕切り換え操作を受け付ける字幕切換キー、数値キー「0」〜「9」が設けられている。
【0010】
以上が本発明に係る再生装置の使用形態についての説明である。
続いて本発明に係る再生装置の再生の対象となる、記録媒体であるBD-ROMについて説明する。図2は、BD-ROMの構成を示す図である。本図の第4段目にBD-ROMを示し、第3段目にBD-ROM上のトラックを示す。本図のトラックは、BD-ROMの内周から外周にかけて螺旋状に形成されているトラックを、横方向に引き伸ばして描画している。このトラックは、リードイン領域と、ボリューム領域と、リードアウト領域とからなる。本図のボリューム領域は、物理層、ファイルシステム層、応用層というレイヤモデルをもつ。ディレクトリ構造を用いてBD-ROMの応用層フォーマット(アプリケーションフォーマット)を表現すると、図中の第1段目のようになる。本図に示すようにBD-ROMには、ROOTディレクトリの下にBDMVディレクトリがあり、BDMVディレクトリの配下には、YYY.MPLS,XXX.CLPI,XXX.M2TS,ZZZ.M2TS,ZZZ.CLPIといったファイルが存在する。ファイルXXX.M2TSがAVClipにあたり、ファイルXXX.CLPIがClip情報にあたる。
【0011】
本図に示すようなアプリケーションフォーマットを作成することにより、本発明に係る記録媒体は生産される。
<AVClipの構成>
続いて、映画コンテンツの構成要素(AVClip−Clip情報)のうち、AVClipについて説明する。
【0012】
図3は、AVClipがどのように構成されているかを模式的に示す図である。
AVClipは(中段)、複数のビデオフレーム(ピクチャpj1,2,3)からなるビデオストリーム、複数のオーディオフレームからなるオーディオストリームを(上1段目)、PESパケット列に変換し(上2段目)、更にTSパケットに変換し(上3段目)、同じく字幕系のプレゼンテーショングラフィクスストリーム(PGストリーム)及び対話系のインタラクティブグラフィクスストリーム(IGストリーム)を(下1段目)を、PESパケット列に変換し(下2段目)、更にTSパケットに変換して(下3段目)、これらを多重化することで構成される。
【0013】
字幕を構成するのはAVClipに多重されたPGストリームだけではない。textSTストリームによっても字幕は構成される、textSTストリームとは、テキストデータにより字幕を表現するデータ列である。textSTストリームは、SubClipと呼ばれ、AVClipとは別のファイル名でBD-ROM又は再生装置内のHDに記録される。字幕を構成するPGストリーム、textSTストリームはPG_textST_streamという名称で呼ばれる。以上がAVClipについての説明である。
【0014】
<Clip情報の構成>
続いて、XXX.CLPIについて説明する。
Clip情報(XXX.CLPI)は、個々のAVClipについての管理情報である。図4は、Clip情報の内部構成を示す図である。図中の引き出し線はClip情報の構成をクローズアップしている。引き出し線hn1に示すように、Clip情報(XXX.CLPI)は、「Program Info.」と、ビデオストリームのうち、Iピクチャの先頭に頭出しするための「EP_map」とを含む。
【0015】
『Program info』は、AVClipに多重化されている個々のエレメンタリストリームについてのPID及び属性を、stream_indexに対応づけて示す情報である。stream_indexは、本Clip情報が対応するAVClipに多重化されている個々のエレメンタリストリームについてのインデックスである。stream_indexで識別されるエレメンタリストリームのPIDは、破線の矢印hn2に示す複数のstream_PID[stream_index]entryに示される。
【0016】
また各エレメンタリストリームの属性は、破線の矢印hn3に示す複数のstream_Attribute[stream_index]に示される。これに示される属性には、ビデオの属性、オーディオの属性、グラフィクスの属性といったものがある。ビデオ属性は、PIDに対応するエレメンタリストリームがどのような圧縮方式で圧縮されたか(Coding)、ビデオストリームを構成する個々のピクチャデータの解像度がどれだけであるか(Resolution)、アスペクト比はどれだけであるか(Aspect)、フレームレートはどれだけであるか(Framerate)等を示す。一方、オーディオ属性は、そのオーディオストリームがどのような圧縮方式で圧縮されたか(Coding)、そのオーディオストリームのチャネル属性が何であるか(Ch.)、何という言語に対応しているか(Lang)等を示す。stream_indexを介することにより、所望のエレメンタリストリームの属性をProgram Info.から検索することができる。
【0017】
『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情報についての説明である。
【0018】
<ZZZ.M2TS、ZZZ.CLPI>
続いてZZZ.M2TS、ZZZ.CLPIについて説明する。サブClip(ZZZ.M2TS)は、他のAVClipと同期再生されるストリームを格納したファイルである。かかるストリームの代表的なものが上述したtextSTストリームである。この他のサブClipには、オーディオストリームやIGストリームがある。サブClipと区別するため、図3に示したAVClipをメインClipと呼ぶ。
【0019】
Clip情報(ZZZ.CLPI)は、サブClipに対するClip情報である。
<PL情報の構成>
続いてYYY.MPLSについて説明する。プレイリスト情報(YYY.MPLS)は、メインパス、サブパスと呼ばれる2種類の再生経路を束ねたものをPlaylist(PL)として定義する情報である。図5は、プレイリスト情報のデータ構造を示す図であり、本図に示すようにプレイリスト情報は、メインパスを定義するPlay Item情報#1,#2・・・・#mと、サブパスを定義するサブパス情報#1,#2・・・・#pとからなる。
【0020】
メインパスとは、主たる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』とから構成される。
【0021】
PlayItem情報の特徴は、時間情報−アドレス変換を前提にした表記法にある。つまりEP_mapをリファレンステーブルとして用いた間接参照の形式で、再生区間が定義されている。図6は、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パケットのアドレスを指定するという間接参照であることがわかる。
【0022】
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情報と呼ばれる情報により規定される。
【0023】
尚、PL情報のファイル名YYYは、BD-ROMにおいてPL情報に付与される3桁の識別番号を抽象化している。つまり本図におけるPL情報は、この識別番号YYYを用いて一意に識別される。PL情報の識別番号を”YYY”と表現しているのは、PL情報の識別番号が、AVClip及びAVClip情報の識別番号XXXとは別の番号体系であることを意味している(ここでの3桁という桁数は例示に過ぎず、何桁でもよい。)。
【0024】
以上がメインパスについての説明である。続いてサブパスについて説明する。 <サブパス>
図5の矢印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』からなる。
【0025】
『Clip_information_file_name』は、Clip情報のファイル名を記述することにより、サブPlayItemに対応するサブClipを一意に指定する情報である。
『Clip_codec_identifier』は、サブClipがどのような符号化方式で符号化されているかを示す。
『SubPlayItem_In_time』は、サブClipの再生時間軸上における、サブPlayItemの始点を示す情報である。
【0026】
『SubPlayItem_Out_time』は、サブClipの再生時間軸上における、サブPlayItemの終点を示す情報である。
『sync_PlayItem_id』は、メインパスを構成するPlayItemのうち、本サブPlayItemが同期すべきものを一意に指定する情報である。SubPlayItem_In_timeは、このsync_PlayItem_idで指定されたPlay Itemの再生時間軸上に存在する。
【0027】
『sync_start_PTS_of_PlayItem』は、sync_PlayItem_idで指定されたPlay Itemの再生時間軸上において、SubPlayItem_In_timeで指定されたサブPlayItemの始点が、どこに存在するかを示す。サブPlayItemの再生時において、現在の再生時点が、このsync_start_PTS_of_PlayItemで指示される時点に到来した場合、サブPlayItemによる再生が開始される。
【0028】
図7は、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と同期再生されることになる。以上がサブパス情報についての説明である。
【0029】
上述した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ストリーム)も含む。
【0030】
図8は、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)を示すデータ構造になっている。
【0031】
entry-attributeの組みは、図中の括弧記号”{”に示すように、Play Itemにおいて再生可能なビデオストリーム、オーディオストリーム、PG_textST_stream、IGストリームのそれぞれに対応している。
entry−attributeの詳細について説明する。図9(a)〜(d)は、entry−attributeの詳細を示す図である。
【0032】
図9(a)は、ビデオストリームに対応したentry−attributeの組みを示す図である。
ビデオストリームにおけるentryは、AVClipを多重分離するにあたって、当該ビデオストリームの抽出に用いられるPIDを示す『ref_to_stream_PID_of_mainClip』を含む。
ビデオストリームにおけるattributeは、0x02に設定された『stream_coding_type』と、ビデオストリームの表示レートを示す『Frame_rate』等を含む。
【0033】
図9(b)は、オーディオストリームに対応したentry−attributeの組みを示す図である。
オーディオストリームにおけるentryは、AVClipを多重分離するにあたって、当該オーディオストリームの抽出に用いられるPIDを示す『ref_to_stream_PID_of_mainClip』を含む。
【0034】
オーディオストリームにおけるattributeは、0x80(LinearPCM),0x81(AC-3),0x82(DTS)の何れかに設定されることによりオーディオストリームのコーデイングタイプを示す『stream_coding_type』と、対応するオーディオストリームのチャネル構成を示し、サラウンド出力の可否を示す『audio_presentation_type』と、対応するオーディオストリームの言語属性を示す『audio_language code』等からなる。
【0035】
図9(c)は、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』とからなる。
【0036】
図9(d)は、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』とからなる。
【0037】
textSTストリームにおけるattributeは、0x92に設定されることによりtextSTストリームである旨を示す『stream_coding_type』と、対応するtextSTストリームのキャラクタコードを示す『character code』と、対応するtextSTストリームの言語属性を示す『language code』とからなる。
図9(e)は、IGストリームに対応したentry−attributeの組みを示す図である。
【0038】
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ストリームが優先的に選択されることになる。
【0039】
以上のSTN_tableは、プレイリスト情報毎に存在するから、あるプレイリスト情報内のSTN_tableでは、あるエレメンタリストリームのentryが上位であるが、別のプレイリスト情報内のSTN_tableでは、そのエレメンタリストリームのentryが下位に設定されることもある。
以上がBD-ROMにおけるアプリケーションフォーマットのデータ構造である。本発明に係る再生装置が対象としている記録媒体は、BD-ROMだけではない。再生装置に内蔵されているHDも再生の対象となる。このHDに記録されているデータについて説明する。かかるHDにも、サブClipを格納したファイル、Clip情報を格納したファイル、プレイリスト情報を格納したファイルが存在する。これらのファイルは、ネットワークを介してプリロードされたサブClip、Clip情報、プレイリスト情報である。図10は、プリロードされたプレイリスト情報の内部構成を示す図である。本図に示すようにプリロードプレイリスト情報は、図5に示した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を指定することができる。図11は、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上に定義されたメインパスと同期して再生することができる。
【0040】
以上説明したデータ構造は、プログラミング言語で記述されたクラス構造体のインスタンスであり、オーサリングを行う制作者は、このクラス構造体を記述することにより、BD-ROM上のこれらのデータ構造を得ることができる。
以上が記録媒体の説明である。続いて本発明に係る再生装置の実施形態について説明する。図12は、本発明に係る再生装置の内部構成を示す図である。本発明に係る再生装置は、本図に示す内部に基づき、工業的に生産される。本発明に係る再生装置は、主としてシステムLSIと、ドライブ装置という2つのパーツからなり、これらのパーツを装置のキャビネット及び基板に実装することで工業的に生産することができる。システムLSIは、再生装置の機能を果たす様々な処理部を集積した集積回路である。こうして生産される再生装置は、BDドライブ1、リードバッファ2、デマルチプレクサ3、ビデオデコーダ4、ビデオプレーン5、P-Graphicsデコーダ9、Presentation Graphicsプレーン10、合成部11、フォントゼネレータ12、I-Graphicsデコーダ13、スイッチ14、Interactive Graphicsプレーン15、合成部16、HDD17、リードバッファ18、デマルチプレクサ19、オーディオデコーダ20、シナリオメモリ23、制御部24、スイッチ25、CLUT部26、CLUT部27、PSRセット28、操作受付部29、遷移制御部30から構成される。
【0041】
BD-ROMドライブ1は、BD-ROMのローディング/イジェクトを行い、BD-ROMに対するアクセスを実行する。
リードバッファ2は、FIFOメモリであり、BD-ROMから読み出されたTSパケットが先入れ先出し式に格納される。
デマルチプレクサ(De-MUX)3は、リードバッファ2からTSパケットを取り出して、このTSパケットを構成するTSパケットをPESパケットに変換する。そして変換により得られたPESパケットのうち、制御部24から設定されたstreamPIDをもつものをビデオデコーダ4、オーディオデコーダ20、P-Graphicsデコーダ9、I-Graphicsデコーダ13のどれかに出力する。
【0042】
ビデオデコーダ4は、デマルチプレクサ3から出力された複数PESパケットを復号して非圧縮形式のピクチャを得てビデオプレーン5に書き込む。
ビデオプレーン5は、非圧縮形式のピクチャを格納しておくためのプレーンである。プレーンとは、再生装置において一画面分の画素データを格納しておくためのメモリ領域である。再生装置に複数のプレーンを設けておき、これらプレーンの格納内容を画素毎に加算して、映像出力を行えば、複数の映像内容を合成させた上で映像出力を行うことができる。ビデオプレーン5における解像度は1920×1080であり、このビデオプレーン5に格納されたピクチャデータは、16ビットのYUV値で表現された画素データにより構成される。
【0043】
P-Graphicsデコーダ9は、BD-ROM、HDから読み出されたグラフィクスストリームをデコードして、非圧縮グラフィクスをPresentation Graphicsプレーン10に書き込む。グラフィクスストリームのデコードにより、字幕が画面上に現れることになる。
Presentation Graphicsプレーン10は、一画面分の領域をもったメモリであり、一画面分の非圧縮グラフィクスを格納することができる。本プレーンにおける解像度は1920×1080であり、Presentation Graphicsプレーン10中の非圧縮グラフィクスの各画素は8ビットのインデックスカラーで表現される。CLUT(Color Lookup Table)を用いてかかるインデックスカラーを変換することにより、Presentation Graphicsプレーン10に格納された非圧縮グラフィクスは、表示に供される。
【0044】
合成部11は、非圧縮状態のピクチャデータ(i)を、Presentation Graphicsプレーン10の格納内容と合成する。
フォントゼネレータ12は、文字フォントを用いてtextSTストリームに含まれるテキストコードをビットマップに展開する。
I-Graphicsデコーダ13は、BD-ROM又はHDから読み出されたIGストリームをデコードして、非圧縮グラフィクスをInteractive Graphicsプレーン15に書き込む。
【0045】
スイッチ14は、フォントゼネレータ12が生成したフォント列、P-Graphicsデコーダ9のデコードにより得られたグラフィクスの何れかを選択的にPresentation Graphicsプレーン10に書き込むスイッチである。
Interactive Graphicsプレーン15は、I-Graphicsデコーダ13によるデコードで得られた非圧縮グラフィクスが書き込まれる。
【0046】
合成部16は、非圧縮状態のピクチャデータ(i)、Presentation Graphicsプレーン10の格納内容と合成されたピクチャデータ(ii)をInteractive Graphicsプレーン15の格納内容と合成する。
HDD17は、上述した再生装置組込型のHDである。本HDDの記録内容を読み出し、BD-ROMの記録内容と動的に組み合わせることにより、BD-ROMに存在しないグラフィクスストリームの再生や、BD-ROMに存在しないtextSTストリームによる再生を実現することができる。
【0047】
リードバッファ18は、FIFOメモリであり、HDD17から読み出されたTSパケットが先入れ先出し式に格納される。
デマルチプレクサ(De-MUX)19は、リードバッファ18からTSパケットを取り出して、TSパケットをPESパケットに変換する。そして変換により得られたPESパケットのうち、制御部24により指示されたstreamPIDをもつものをフォントゼネレータ12に出力する。
【0048】
オーディオデコーダ20は、デマルチプレクサ19から出力されたPESパケットを復号して、非圧縮形式のオーディオデータを出力する。
シナリオメモリ23は、カレントのPL情報やカレントのClip情報を格納しておくためのメモリである。カレントPL情報とは、BD-ROMに記録されている複数PL情報のうち、現在処理対象になっているものをいう。カレントClip情報とは、BD-ROMに記録されている複数Clip情報のうち、現在処理対象になっているものをいう。
【0049】
制御部24は、シナリオメモリ23に読み出されたカレントPL情報、カレントClip情報に従い、BD-ROMに記録されたAVClipを読み出し、再生するとの制御を行う。この制御にあたってデマルチプレクサ3はカレントPL情報のうち、プレイリスト情報からカレントPlay Itemを特定し、そのカレントPlay ItemのClip_information_file_nameにより指定されているAVClipをアクセスする。そしてカレントClip情報を参照して、AVClipのうち、Play ItemのIn_timeからOut_timeまでに相当するTSパケットを読み出すようBD-ROMドライブ1を制御する。TSパケットが読み出されれば、これを順次デマルチプレクサ3を介して、ビデオデコーダ4、P-Graphicsデコーダ9、I-Graphicsデコーダ13、オーディオデコーダ20に投入し、AVClipを再生させてゆく。
【0050】
カレントPlay Itemに同期するサブPlayItemがプレイリスト情報内に存在する場合、制御部24はそのサブPlayItemにて指定されるサブClipをメインClipと同期して再生させる。この同期は、サブPlayItemのSync_Start_PTS_of_PlayItemに相当するピクチャデータが、メインClipから読み出されるのを待ち、そのサブPlayItemのSubPlayItem_In_timeからSubPlayItem_Out_timeまでに存在するデータを再生することでなされる。
【0051】
スイッチ25は、BD-ROM及びHDから読み出された各種データを、リードバッファ2、リードバッファ18、シナリオメモリ23のどれかに選択的に投入するスイッチである。
CLUT部26は、ビデオプレーン5に格納された非圧縮グラフィクスにおけるインデックスカラーを、Y,Cr,Cb値に変換する。
CLUT部27は、Interactive Graphicsプレーン15に格納された非圧縮グラフィクスにおけるインデックスカラーを、Y,Cr,Cb値に変換する。
【0052】
PSRセット28は、再生装置に内蔵されるレジスタであり、64個のPlayer Status Register(PSR)と、4096個のGeneral Purpose Register(GPR)とからなる。Player Status Registerの設定値(PSR)がどのような意味をもつかは、後で詳細に説明する。
操作受付部29は、ストリーム等を選択する操作が、リモコンや再生装置のフロントパネルに対してなされれば、その操作を示すUser Operation情報を制御部24に出力する。
【0053】
遷移制御部30は、制御部24の1つ構成要素であり、STN_tableに記述されているentry−attributeの組みのうち、PSRの数値に対応するものの中からStream-PIDを取り出して、デマルチプレクサ3、デマルチプレクサ19に設定する。デマルチプレクサ3、デマルチプレクサ19に対する設定は、PSRの設定値に基づくため、遷移制御部30は装置における状態変化や変更要求に応じてPSRに値を設定するとの処理を行う。
【0054】
再生装置の状態変化時において遷移制御部30は、設定値が無効な値(Invalid)であるか、不定値であるかを判定し、有効な値(Valid)であるなら、PSRの設定値を維持する。不定値又は無効な値であるなら、最適な値をPSRに設定する。
また操作受付部29から出力されたUser Operation情報やI-Graphicsデコーダ13から出力されたボタンコマンドによりPSRの変更が要求された場合、遷移制御部30は、操作受付部29から出力されたUser Operation情報、I-Graphicsデコーダ13から出力されたボタンコマンドに基づき、PSRに設定すべき値(値X)を決定し、この値Xに基づき、PSRを更新する処理を行う。ここで操作受付部29から出力されたUser Operation情報が、音声切換キー、副映像切換キーの押下を示すものであるなら、PSRの数値に1を加えた値を値Xとして決定する。また操作受付部29から出力されたUser Operation情報が数値キーの押下を示すものなら、その押下された値を値Xとして決定する。一方、操作受付部29から出力されたボタンコマンドがPSRの設定を再生装置に命じるものなら、そのボタンコマンドの引数で指定された値を値Xとして決定する。このようにして値Xが決定されれば、値Xが有効な値(Valid)であるか、不定値である場合は、無効な値(Invalid)であるかを判定し、判定結果に応じたPSR更新処理を行う。ここで値Xが有効であるなら、値Xを用いてPSRを上書きする。値Xが不定値であるなら、最適な値を選んでPSRに設定する。値Xが無効な値であるなら、PSRの数値を維持する。
【0055】
<PSRについての説明>
以上が本発明に係る再生装置の構成である。続いてPSRセットにおける個々のPSRについて説明する。PSRセットのうちPSR1、PSR2、PSR15、PSR16、PSR30は、再生装置における音声・字幕の選択や、これらをデコード・表示する能力の有無、言語設定を示すものである。図13は、PSR1、PSR2、PSR15、PSR16、PSR30の詳細設定を示すである。
【0056】
PSR1は、再生装置により現在選択されているオーディオストリームを特定する。
PSR2は、disp_flagを含み、再生装置により現在選択されているPG_textST_streamを特定する。disp_flagは、”0”に設定されることにより、PGストリーム及びtextSTストリームの表示が不可能であることを示し、”1”に設定されることによりPGストリーム及びtextSTストリームの表示が可能であることを示す。
【0057】
PSR15は、LPCM capability,AC-3 capability,DTS capabilityを含む。LPCM capabilityは、0001bに設定されることによりLPCM形式のステレオ音声を再生できる能力が再生装置にあることを示し、0010bに設定されることによりLPCM形式のサラウンド音声を再生できる能力が再生装置にあることを示す。
AC-3 capabilityは、0001bに設定されることによりAC-3形式のステレオ音声を再生できる能力が再生装置にあることを示し、0010bに設定されることによりAC-3形式のサラウンド音声を再生できる能力が再生装置にあることを示す。
【0058】
DTS capabilityは、0001bに設定されることによりDTS形式のステレオ音声を再生できる能力が再生装置にあることを示し、0010bに設定されることによりDTS形式のサラウンド音声を再生できる能力が再生装置にあることを示す。一方、0000に設定されることにより、DTS形式のオーディオストリームをデコードする能力が再生装置に存在しないことを示す。
【0059】
PSR16は、0XFFFF以外の値が設定されることでオーディオストリームの言語属性を示す。0XFFFFが設定されることでオーディオストリームの言語属性が不特定であることを示す。
PSR30は、最上位ビットが”0”に設定されることによりテキスト字幕を表示する能力が再生装置に存在しない旨を示し、最上位ビットが”1”に設定されることによりテキスト字幕を表示する能力が再生装置に存在する旨を示す。
【0060】
以上が図13についての説明である。続いて図14を参照しながら、PSR4〜PSR8について説明する。図14は、PSR4〜PSR8の詳細設定を示す。
PSR4は、1〜100の値に設定されることで、現在の再生時点が属するタイトルを示し、0に設定されることで、現在の再生時点がトップメニューであることを示す。
PSR5は、1〜999の値に設定されることで、現在の再生時点が属するチャプター番号を示し、0xFFFFに設定されることで、再生装置においてチャプター番号が無効であることを示す。
【0061】
PSR6は、0〜999の値に設定されることで、現在の再生時点が属するPL(カレントPL)の番号を示す。
PSR7は、0〜255の値に設定されることで、現在の再生時点が属するPlay Item(カレントPlay Item)の番号を示す。
PSR8は、0〜OxFFFFFFFFの値に設定されることで、45KHzの時間精度を用いて現在の再生時点(カレントPTM)を示す。以上がPSR4〜PSR8についての説明である。
【0062】
<PSR1の状態遷移>
図13に示したPSRのうち、PSR1の状態遷移について更に詳しく説明する。
PSR1は、カレントPlay ItemのSTN_tableにentryが記述されている複数オーディオストリームのうち、1つを特定するものである。PSR1の設定値が変化すれば、再生装置はこの変化後のオーディオストリームを再生する。PSR1は初期値として0xFFが設定されており、再生装置により1〜32の値に設定されうる。この0xFFは、不定値であり、オーディオストリームが存在しない旨、又は、オーディオストリームが選択されてない旨を示す。1〜32の設定値は、オーディオストリーム番号として解釈される。
【0063】
図15(a)は、PSR1の設定値が取り得る状態遷移を示す。本図においてValidとは、PSR1の値が、Play ItemのSTN_tableに記述されたentry数以下の番号になっていて、尚且つ、デコード可能であることを意味する。
Invalidとは、PSR1の値が、0であるか、又は、Play ItemのSTN_tableに記述されたentry数を上回る番号になっていることを意味する。また、Play ItemのSTN_tableに記述されたentry数が1〜32の値であったとしても、デコードできない場合がある。
【0064】
図15(a)における破線枠は、状態遷移時にあたってPSRの値を決定する手順を模式的に示す。PSRの設定処理手順には、『Procedure when playback condition is changed』、『Procedure when change is requested』がある。
Procedure when playback condition is changedは、何等かの事象が再生装置に生じたため、再生装置の状態が変化した際に実行すべき処理手順を示す。
【0065】
Procedure when YYYchange is requestedは、ユーザが何等かの切り換え(図15においてstream)を要求した際、実行すべき処理手順を示す。
これら破線枠に示されるProcedure when playback condition is changed、Procedure when change is requestedが、本発明の主眼となるストリームの選択手順であり、後でフローチャートを交えて詳細に説明する。
【0066】
図15(a)における矢印は、PSRが取り得る状態間の状態遷移を象徴的に示す。
状態遷移を意味する矢印に添えられた注釈は、各状態遷移のトリガとなるべき事象を意味する。つまり本図では、”Load Disc”、”Change a Stream”,”Start PlayList playback”,”Cross a PlayItem boundary”,”Terminate PlayList playback”というような事象が発生した際、PSR1の状態遷移がなされることになる。これらの記法を理解して図15(a)を参照すれば、Invalid→Invalidの状態遷移時、Valid→Invalidの状態遷移時には、上述した処理手順は実行されていないことがわかる。これに対しInvalid→Valid間の状態遷移、Valid→Valid間の状態遷移は何れも破線枠を経由している。つまりPSR1をValidに設定するにあたって、上述したProcedure when playback condition is changed、Procedure when change is requestedによりPSR1は設定されるのである。
【0067】
以降、状態遷移のトリガとなるべき事象について説明する。
『Load Disc』とは、再生装置にBD-ROMがローディングされたとの事象を意味する。PSR1は、かかるローディング時において、一旦不定値(0xFF)に設定されるのである。
『Start PlayList playback』とは、PLに基づく再生処理が開始したとの事象を意味する。かかる事象が発生時において、Procedure when playback condition is changedが実行され、PSR1はValidに設定されることがわかる。
【0068】
『Terminate PlayList playback』とは、PLに基づく再生処理終了したとの事象を意味する。かかる事象の発生時では、Procedure when playback condition is changedは実行されず、Invalidに移行していることがわかる。
『ChangeXXX』とは、ユーザによるXXX(本図ではStream)の切り換え要求がなされたとの事象を意味する。PSR1がInvalidである場合に、かかる事象が発生すれば(図中のcj1)、PSR1はその要求通りの値に設定される。こうして設定された値がたとえ有効なストリーム番号を示していたとしても、このPSR1の設定値はInvalidな値として取り扱われる。即ち、事象”ChangeXXX”による状態遷移では、InvalidであるPSRが、Validに変えることはない。
【0069】
一方、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側で保証するからである。
【0070】
『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に設定するというのが、この状態遷移の趣旨である。
【0071】
この状態遷移においてProcedure when playback condition is changedは、図15(b)のようになる。本処理手順は、ステップS1、ステップS2という2つの判定ステップの組合せで、PSR1の設定を行うものである。
ステップS1は、STN_tableにおけるentry数が0であるか否かの判定であり、もし0であればPSR1の値を維持する(ステップS3)。
【0072】
ステップS2は、STN_tableにおけるentry数は0ではない場合に、PSR1よりSTN_tableのentry数が多く、尚且つ、条件(A)が真であるかを判定するものである。条件(A)とは、PSR1で特定されるオーディオストリームを再生する能力が再生装置に存在することである。もしステップS2がYesであればPSR1を維持する(ステップS4)。もしPSR1の値がentry数より大きいか、或は条件(A)を満たさない場合は、PSR1を再設定する(ステップS5)。
【0073】
図16は、ステップS5の詳細な処理手順に示したフローチャートである。
ステップS6、ステップS7は、全てのオーディオストリームについてステップS8を繰り返すループ処理を形成している。このループ処理において、処理対象となる個々のオーディオストリームを、オーディオストリームiという。ステップS8は、オーディオストリームiが3つの条件(a)(b)(c)を満たすかのチェックを行う。
【0074】
条件(a)とは、オーディオストリームiを再生する能力が再生装置に存在することであり、これを満たすか否かの判定は、PSR15と、オーディオストリームiのstream_coding_typeとの比較でなされる。
条件(b)とは、オーディオストリームiの言語属性が再生装置の言語設定と同じであることであり、これを満たすか否かの判定は、STN_tableに記述されたオーディオストリームiのAudio_language_codeがPSR16の設定値と同じであるか否かの比較でなされる。
【0075】
条件(c)とは、オーディオストリームiのチャネル属性がサラウンドであり、これを再生する能力が再生装置に存在することである。これを満たすか否かの判定は、PSR15と,Audio Streamのaudio_presentation_type、stream_coding_typeとの比較でなされる。
条件(c)が、どのようなケースで満たされるかについて、図17を参照しながら説明する。図17は、再生能力と、ストリームの属性との組合せを表形式で示した図である。再生装置の能力には、ステレオ出力、サラウンド出力の2つがあり、ストリームの属性には、ステレオ、サラウンドの2つがある。
【0076】
再生装置側のステレオ出力の能力があり、オーディオストリームの属性がステレオである場合、オーディオストリームの再生は可能になる。
再生装置側のサラウンド出力の能力があり、オーディオストリームの属性がステレオである場合、オーディオストリームの再生は可能になる。
再生装置側のサラウンド出力の能力があり、オーディオストリームの属性がサラウンドである場合、このオーディオストリームの再生は可能になる。
【0077】
再生装置側のステレオ出力の能力があり、オーディオストリームの属性がサラウンドである場合、再生装置側で、AC-3(5.1ch)を2チャネルにダウンミキシングするという処理を行えば、再生装置による再生は可能になる。以上のように、ストリームのチャネル属性、再生装置の能力の何れの組合せでも、オーディオストリームの再生は可能になる。しかし条件(c)は、これらの4つの組合せのうち、「サラウンド出力の能力が再生装置側に有り」「ストリームのチャネル属性=サラウンド」の組合せ時においてのみ、満たされることになる。以上のことから、条件(c)の成立要件は厳しく設定されていることがわかる。
【0078】
尚、図17において、上述した組合せ時においてのみ、条件(c)が成立するとしたのは一例であり、この組合せの他に、「ステレオ出力の能力が再生装置側に有り」「ストリームのチャネル属性=ステレオ」の組合せ時においても、条件(c)が満たされるとしてもよい。この場合、ステレオ音声しか再生できない再生装置、又は、サラウンド再生よりステレオ再生が優先されている再生装置において、2chオーディオストリームのステレオ再生が、5.1chオーディオストリームのダウンミキシング再生より優先されることになる。
【0079】
これらの複数の条件のうち、「オーディオストリームiがどれとどれを満たすか」、また「何個の条件を満たすか」という、満たすべき条件のパターンにより、本フローチャートは、オーディオストリームに優先順位を付与する。
以上の処理をオーディオストリームの全てについて繰り返されれば、ステップS9〜ステップS13の処理を行う。ステップS9は、(a)を満たすオーディオストリームが存在しないかどうかの判定である。もし、存在しなければ、不定値(0xFF)をPSR1に設定する(ステップS14)。
【0080】
ステップS10は、(a)(b)(c)の全てを満たすオーディオストリームが存在するかどうかの判定である。もし存在すれば、(a)(b)(c)を満たすオーディオストリームの番号をPSR1に設定する(ステップS15)。
ここで問題になるのが、(a)(b)(c)を満たすオーディオストリームが複数存在する場合である。条件(a)〜条件(c)が全てみたされるので、同じ優先順位になってしまうので優劣を決めることができない。この場合ステップS15では、STN_tableにおけるentryの順序に応じて、各ストリームにおける順位が定める。即ち、コーディック−言語属性−チャネル属性が同じオーディオストリームについては、STN_tableにおけるentryの順位を参照することで、最も優先順位が高いオーディオストリームが選ばれることになる。
【0081】
ここでコーディック、言語属性、チャネル属性が同じオーディオストリームが複数存在しており、これらがそれぞれ本編音声、コメンタリ、BGMである場合、図18に示すように本編音声にあたるオーディオストリームについてのentryを、STN_tableにおいて先頭順位に記述する。そしてコメンタリーにあたるオーディオストリーム、BGMにあたるオーディオストリームのentryを次順位以降に記述しておく。そうすると、自動的に本編音声が選択され、コメンタリ、BGMが後回しにされる。
【0082】
このようにSTN_tableにおける記述順序を変えることで、オーサリング担当者は再生時においてどのストリームを優先的に再生させ、どのストリームを後回しにするかという選択制御をオーサリング時に規定することができる。
ステップS11は、(a)(b)(c)の全てを満たすオーディオストリームが存在しない場合、(a)(b)を満たすオーディオストリームが存在するかどうかの判定である。もし存在すれば、(a)(b)を満たすオーディオストリームのうち、STN_tableにおけるエントリー順位が最も高いものをPSR1に設定する(ステップS16)。
【0083】
ステップS12は、(a)(b)(c)の全てを満たすオーディオストリーム、又は、(a)(b)を満たすオーディオストリームが存在しない場合に、(a)(c)を満たすオーディオストリームが存在するかどうかの判定である。もし存在すれば、(a)(c)を満たすオーディオストリームのうち、STN_tableにおけるエントリー順位が最も高いものをPSR1に設定する(ステップS17)。
【0084】
ステップS13は、(a)(b)(c)の全て、(a)(b)、(a)(c)を満たすオーディオストリームが存在しない場合に、(a)を満たすオーディオストリームが存在するかどうかの判定である。もし存在すれば、(a)を満たすオーディオストリームのうち、STN_tableにおけるエントリー順位が最も高いものをPSR1に設定する(ステップS18)。
以上がProcedure when playback condition is changedである。続いてProcedure when change is requestedについて説明する。図19は、ストリーム変化時におけるPSR1の設定手順を示すフローチャートである。本フローチャートと、図15(b)との違いは、図15(b)におけるPSR1の表記がXに置き換えられている点である。このXは、操作受付部29から出力されたUser Operation情報やI-Graphicsデコーダ13から出力されたボタンコマンドに基づく値である。
【0085】
本フローチャートにおけるステップS19は、XよりSTN_tableのentry数が多く、尚且つ、条件(A)が真であるかを判定するものである。条件(A)とは、PSR1で特定されるオーディオストリームを再生する能力が再生装置に存在することであり、PSR15と、オーディオストリームのStream_codeig_typeの比較で判定される。もしXがこの条件を満たすなら、PSR1にXを設定する(ステップS21)。
【0086】
もしXがentry数より大きいか、或は条件(A)を満たさない場合は、Xが、0xFFであるか否かを判定する。もしOxFFでなければ、ユーザが選択を意図するオーディオストリームの番号は無効であると考えられるので、ユーザ操作に基づく値Xを無視し、PSR1の設定値を維持する(ステップS23)。
もしPSR1の設定値が0xFFであるなら、PSR1を設定する(ステップS24)。このステップS24の処理手順は、図16に示した処理手順と同一である(図16のうち、ステップS9の判定はProcedure when change is requestedでは必要ではない。何故ならProcedure when change is requestedでは、条件(a)(b)(c)を満たすオーディオストリームが1つも存在しない場合、ユーザが設定した値XをPSR1に設定せず、PSR1の設定値を維持するからである。)。
【0087】
以上のProcedure when playback condition is changed、Procedure when change is requestedにより、確実に再生され、尚且つBD-ROM、再生装置双方の能力を発揮することができるオーディオストリームが選択されることになる。
<PSR1設定の具体例>
以降具体例を交えながら、本フローチャートの処理について説明する。
【0088】
この具体例で想定している再生装置は、ミドルクラスの再生装置である。ここでのミドルクラスとは、DTS形式のオーディオストリームをデコードする能力は持っていないが、LPCMのデコード能力や、AC-3サラウンド音声の出力能力は具備している。そして日本語音声を示すよう、言語設定がなされているものとする。
かかる再生装置に対し、図20(b)に示すオーディオストリーム、STN_tableが記録されたBD-ROMがローディングされたとする。このSTN_tableには、図20(c)に示すように6つのオーディオストリームのentryが記述されている。
【0089】
かかる記述内容のSTN_tableが処理対象であると、図16のステップS8において各オーディオストリームが、条件(a)、条件(b)、条件(c)を具備しているかどうかのチェックがなされる。ここで1つ目のオーディオストリーム(1)は、3つの条件のうち、条件(a)しか満たさない。2つ目のオーディオストリーム(2)は、3つの条件のうち、条件(a)、条件(c)を満たす。
【0090】
STN_tableにentryが示されている全てのオーディオストリームに対し、上述したチェックがなされれば、5つ目のオーディオストリームが条件(a)〜条件(c)の全てを満たし、4つ目のオーディオストリームは条件(a)、条件(b)を、2つ目のオーディオストリームは条件(a)(c)を、1つ目のオーディオストリームは条件(a)のみを満たしていることが判明する。これら以外のオーディオストリームは条件(a)を欠くので処理対象にならない。
【0091】
各オーディオストリームについての条件具備が明らかになったので、条件(a)〜条件(c)の全てを満たす5つ目のオーディオストリームに最高順位を付与する。このように最高順位が付加されたため、オーディオストリーム5が選択されてビデオストリームと共に再生されることになる。
以上の説明により、条件(a)、条件(b)、条件(c)の全てを満たすストリームが選択されることが明らかになったが、サラウンド出力の能力が再生装置にない場合、ストリーム選択はどのように行われるのだろうか。ここで再生装置側にサラウンドの出力能力が存在せず、AVClipに、AC-3(2ch)のオーディオストリームと、AC-3(5.1ch)のオーディオストリームとが多重化されているケースを想定する。図17の表では、何れのオーディオストリームの再生も可能になるので、かかるオーディオストリームを図16の処理手順の対象とした場合、これらのオーディオストリームには、優劣がつかない。
【0092】
この場合、STN_tableにおけるentryを参照することで、選択が望ましいオーディオストリームの優劣を規定する。図17において再生装置側に能力がない場合、再生装置はAC-3(5.1ch)をAC-3(2ch)にダウンミキシングして再生するとの処理を行う。かかるダウンミキシングがなされれば、再生時の音質はオーサリング担当者が意図したものより落ちてしまう恐れがある。これに対しAC-3(2ch)は、当初からステレオ出力を意図して作成されたものであるから、オーサリング担当者は、AC-3(5.1ch)のダウンミキシング再生より、AC-3(2ch)の再生を期待していることが多い。
【0093】
そこで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を高く設定すればよい。
【0094】
こうすることでサラウンド出力能力がない再生装置による再生は、ダウンミキシングでなされることになる。
ここで、オーサリング担当者が、AC-3(5.1ch)のダウンミキシング再生より、AC-3(2ch)の再生を期待している場合のSTN_tableの記述例と、オーディオストリームの選択例とについて図21を参照しながら説明する。
【0095】
ここで想定する再生装置はサラウンド出力能力がない再生装置なので、PSR15,16の値は、図21(a)の通りになる。またSTN_tableは、図20(b)と同じ内容に設定されており(図21(b))、再生装置がサラウンド出力能力がない再生装置である。この場合、条件(a)、条件(b)を満たすオーディオストリーム4、オーディオストリーム5が同じ優先順位"1"に、条件(a)のみを満たすオーディオストリーム1、オーディオストリーム2が次の優先順位"2"になる。優先順位は"1"になったため、オーディオストリーム4、オーディオストリーム5の優劣がつかない。この場合、再生装置は、STN_tableにおけるentry順位に従いオーディオストリームを選ぶ。この記述例においてオーサリング担当者は、AC-3(5.1ch)のダウンミキシングより、AC-3(2ch)の再生を期待しているので、図21(b)におけるSTN_tableにおいて、AC-3(2ch)のオーディオストリームのentryは、AC-3(5.1ch)のentryより高く設定されている。このようにオーディオストリーム4のentry順位はオーディオストリーム5よりも高く設定されているので、再生装置はオーディオストリーム5を選んで再生する。
【0096】
続いてオーサリング担当者が、AC-3(2ch)の再生より、AC-3(5.1ch)のダウンミキシング再生を期待している場合のSTN_tableの記述例と、オーディオストリームの選択例とについて図22を参照しながら説明する。
AC-3(5.1ch)のダウンミキシング再生を期待しているので、STN_tableにおいて、AC-3(5.1ch)のオーディオストリーム(オーディオストリーム2、オーディオストリーム5)のentry順位は、AC-3(2ch)のオーディオストリーム(オーディオストリーム1、オーディオストリーム4)のentry順位より高く設定されている(図22(b))。このようにオーディオストリーム5のentry順位はオーディオストリーム4よりも高く設定されているので、オーディオストリーム4、オーディオストリーム5が同じ条件(a)、条件(b)を満たす場合、再生装置はオーディオストリーム5を選んで再生する(図22(c))。
【0097】
サラウンドの再生出力能力が再生装置にない場合、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番号として解釈される。図23(a)は、PSR2が取り得る状態遷移を示す図である。本図の状態遷移は、図15(a)と同じになっている。また、図23(b)は、PSR2におけるProcedure when playback condition is changedを示すフローチャート、図24はProcedure when change is requestedを示すフローチャートである。これらのフローチャートも、図15(b)、図19と同じになっている。ただし、ステップS5、ステップS23におけるPSR2の設定は、大きく異なっている。
【0098】
図25は、PSR2の設定手順を示すフローチャートである。
本フローチャートのステップS31、ステップS32は、STN_tableに記述されているPG_textST_streamのそれぞれについて、ステップS33〜ステップS35の処理を繰り返すループ処理になっている。本ループ処理において処理対象となるPG_textST_streamをPG_textST_streamiとする。ステップS33は、PG_textST_streamiのstream_coding_typeが0x90であるか、0x92であるかの判定であり、もし0x91であるならステップS34に移行する。
【0099】
ステップS34は、PG_textST_streamiが、以下の(a)(b)を満たすか否かの判定である。
(a)PGストリームiを再生する能力が再生装置に存在すること
(b)PGストリームiの言語属性が再生装置の言語設定と一致すること
この(b)の条件は、STN_tableにおけるPG_language_codeがPSR17と一致するか否かの判定でなされる。
【0100】
一方ステップS35は、PG_textST_streamiが(a)(b)を満たすかを否かの判定である。
(a)textSTストリームiを再生する能力が再生装置に存在すること
(b)textSTストリームiの言語属性が再生装置の言語設定と一致すること
(a)の条件を具備しているかの判定は、再生装置のPSR30が"再生能力有"を示すかどうかでなされる。(b)の条件を具備しているかの判定は、STN_tableのtextST_language_codeがPSR17の設定値と一致しているかどうかでなされる。
【0101】
以上のステップS33〜ステップS35の処理が全てのPG_textST_streamについて繰り返されれば、ステップS36〜ステップS41の処理が実行される。
ステップS36は、(a)を満たすPG_textST_streamが存在しないかどうかの判定であり、もし存在しないのなら、ステップS39においてInvalidな値(0xFFFF)をPSR2に設定する(ステップS38)。
【0102】
ステップS37は、(a)(b)の双方を満たすPG_textST_streamが存在するかどうかの判定であり、もし存在するのなら(a)(b)を満たすPG_textST_streamのうち、STN_tableにおけるエントリー順位が最も高いものをPSR2に設定する(ステップS39)。
ステップS41は、(a)のみを満たすPGstream、(a)のみを満たすtextST_streamのうち、STN_tableにおけるエントリー順位が最も高いものをPSR2に設定する。以降具体例を交えながら、本フローチャートの処理について説明する。
【0103】
<PSR2設定の具体例>
この具体例で想定している再生装置は、図26(a)に示すようにPGストリームをデコードする能力はもっているが、textSTストリームをデコードする能力はもっていない再生装置である。そして日本語音声を示すよう、言語設定がなされているものとする。
かかる再生装置に対し、図26(b)に示すようなSTN_tableがロードされたとする。このSTN_tableには、2つのtextSTストリームのentry(PG_textST_stream1,3)と、2つのPGストリームのentry(PG_textST_stream2,4)とが記述されている。
【0104】
かかる記述内容のSTN_tableが処理対象であると、ステップS34、ステップS35において各PG_textST_streamが、条件(a)、条件(b)を具備しているかどうかのチェックが図26(c)に示すようになされる。ここで1つ目のPG_textST_stream、3つ目のPG_textST_streamは、条件(a)を満たさない。2つ目のオーディオストリームは、3つの条件のうち、条件(a)しか満たさない。4つ目のPG_textST_streamは、条件(a)、条件(b)を満たす。
【0105】
STN_tableにentryが示されている全てのストリームに対し、上述したチェックがなされれば、4つ目のストリームが条件(a)〜条件(b)の全てを満たし、2つ目のストリームは条件(a)を、1つ目,3つ目のストリームは、選択の対象から除外される。
各ストリームについての条件具備が明らかになったので、条件(a)〜条件(b)の全てを満たす4つ目のストリームに最高順位を付与する。
【0106】
ここで、同じ条件を満たしているPG_textST_streamが複数ある場合、上述したフローチャートでは、これらのPG_textST_streamについての優先順位が同じになってしまう。そのため優劣を決めることができない。本実施形態ではこの場合、STN_tableにおけるentryの事象に応じて、各ストリームにおける順位が定める。
以降、図27を参照しながら、STN_tableにおけるentryの順序によるPG_textST_stream選択について説明する。ここで想定する再生装置は、PGストリーム、textSTストリームの双方をデコードする能力をもつ再生装置である。この再生装置の言語設定と同じ言語属性をもつPGストリーム、textSTストリームが複数存在する場合、これらPGストリーム、textSTストリームに対する優先順位が同じになってしまう。かかる場合、図27に示すように、オーサリング担当者が選択を望むストリームについてのentryを、STN_tableの先頭順位に記述する。そしてPGストリームにあたるentryを次順位以降に記述しておく。ここでオーサリング担当者が選択を望んでいるストリームがtextSTストリームであり、これのentryがSTN_tableの先頭に記述されたとすると、自動的にtextSTストリームが選択され、PGストリームが後回しにされる。
【0107】
このようにSTN_tableにおける記述順序を変えることで、オーサリング担当者は再生時においてどのストリームを優先的に再生させ、どのストリームを後回しにするかという選択制御をオーサリング時に規定することができる。
<変更例>
Procedure when change is requestedにおいて値Xが無効な値であるなら、遷移制御部30はPSR1,2の格納値を維持するとしたが、ユーザにより音声切換キー、字幕切換キーが押下された場合の処理としては望ましくない。音声切換キー、字幕切換キーが押下された場合、本来値Xは”PSR+1”になるべきである。にも拘らず、値Xが無効であるとの理由で、PSR1,2の格納値が維持されれば、ユーザは再生装置が誤動作しているように、感じるからである。
【0108】
そこで音声切換キー、字幕切換キーが押下された場合、遷移制御部30は、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の数値を採用してストリームの選択を行う。
【0109】
例えばPSR1に"3"が格納されており、ストリーム番号=4,5が無効である場合の上述の処理の具体例について簡単に説明する。この場合遷移制御部30は、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が、自動的に選ばれることになる。音声切換キーの押下時に、上述した処理を行えば、無効なストリーム番号の存在をユーザに意識することなく、スムーズな音声切り換えを実現することができる。
【0110】
(第2実施形態)
第2実施形態は、マルチアングル区間における状態設定に関する。マルチアングル区間実現のためのデータ構造は図5に示したPlay Item情報にある。図28は、Play Item情報のデータ構造を示す図である。本図に示すようにマルチアングル区間対応のPlay Item情報は、通常のPlay Itemとの互換部分と、マルチアングル区間実現のための拡張部分とからなる。互換部分のデータ構造は図5と同じであり、『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]』からなる。
【0111】
『is_multi_angles』は、このPlay Itemに対応する再生区間がマルチアングル区間であるか、非アングル区間であるかを示す。
『number_of_angles』は、マルチアングル区間を示すよう『is_multi_angles』が設定されている場合、このマルチアングル区間を構成するアングル数を示す。
『Angle情報[2]・・・[j]』は、マルチアングル区間における個々のアングル区間についての情報であり、『Clip_Information_file_name』、『Clip_codec_identifier』を含む。
【0112】
『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)の値が厳密に同一でなければならない。
【0113】
マルチアングル区間対応のPlay Itemについて、以降具体例を説明する。本具体例で想定しているPlay Itemは、3つのPlay Item(PlayItem#1、PlayItem#2、PlayItem#3)である。これらのPlay Itemのうち、PlayItem#1、PlayItem#3はマルチアングル区間を構成しており、PlayItem#2は構成していない。またBD-ROMには、図29に示すような複数AVClip(Front1、Right1、Left1、Front2、Front3、Right2)が記録されているものとする。具体例においてPlayItem#1のClip_Information_file_nameは、図29中のFront1、Left1、Right1を指定しており、PlayItem#2はFront2を、PlayItem#3は、Front3、Right2を指定しているものとする。これらのPlay Itemにより、マルチアングル区間−非アングル区間−マルチアングル区間からなるメインパスが定義されることになる。図30(a)(b)は、このようにして定義されたマルチアングル区間、非アングル区間を示す図である。本図における矢印my1,my2は、PlayItem#1における2つのアングル情報による指定を、矢印my3は、PlayItem#3におけるアングル情報による指定をそれぞれ示す。これらPlayItem情報#1におけるアングル情報による指定my1,my2で、Right1、Left1はAVClip上の一部分と選択的に再生されることになる。同様にアングル情報による指定my3でRight2は、AVClip上の一部分と選択的に再生されることになる。
【0114】
図30(b)は、マルチアングル区間、非アングル区間における再生進行を示す図である。本図における矢印ag1,2,3に示すように、マルチアングル区間#1においては3つのアングル区間のうち1つを選ぶという選択が可能になり、マルチアングル区間#3においては矢印ag4,5に示すように2つのアングル区間のうち1つを選ぶという選択が可能になる。以上が本実施形態に係る記録媒体の改良である。
【0115】
続いて再生装置の改良について説明する。第1実施形態に示した再生装置において、アングル区間の指定を示すのはPSR3である。第2実施形態に係る制御部24は、このPSR3の設定値に従い、アングル区間を選択して再生するとの処理を行う。
具体的にいうと制御部24は、カレントPL情報のうち、1つのPlay Itemを再生する際、PSR3の設定値を参照する。PSR3の設定値が=1であれば、Play ItemのIn_time,Out_timeが存在するAVClipをアクセスし、これのPlay ItemのIn_timeからOut_timeまでのTSパケットを読み出すようBD-ROMドライブ1を制御する。そしてTSパケットが読み出されれば、これを順次ビデオデコーダ4に投入し、アングル区間を再生させてゆく。
【0116】
PSR3の設定値が2以上であれば、Play Itemのアングル情報内のClip_Information_file_nameで指定されているAVClip(先に述べたRight1、Left1、Right2)をアクセスし、これを構成するTSパケットを読み出すようBD-ROMドライブ1を制御する。そしてTSパケットが読み出されれば、これを順次ビデオデコーダ4に投入し、アングル区間を再生させてゆく。このようにPSR3の設定値に応じて、異なるAVClipをアクセスすることにより、アングル区間の選択的な再生が実現される。
【0117】
以上のようなアングル区間選択を規定するPSR3について説明する。図31はPSR3の内部構成を示す図である。PSR3は現在選択されているアングル区間の番号を示す。PSR3は1〜9の値をとり、1〜9のアングル区間をそれぞれ指定する。
PSR3の状態遷移について説明する。図32(a)は、PSR3の状態遷移を示す図である。本図を図15(a)とを比較すると、事象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の状態遷移は図15(a)と同じになっている。
【0118】
オーディオストリームの数は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の状態遷移は、マルチアングル区間の再生終了をトリガとしている。
【0119】
このValid→Invalidの状態遷移にあたって本実施形態では、PSR3の設定値を維持したまま、取り扱いのみをInvalidにする。つまりマルチアングル区間、非アングル区間が代わる代わる出現する場合(図30の一例)、PSR3は、設定値の取り扱いのみがValidからInvalidに、InvalidからValidに遷移することになる。以上がPSR3の状態遷移である。続いてPSR3のProcedure when playback condition is changed、Procedure when change is requestedについて説明する。
【0120】
図32(b)は、PSR3におけるProcedure when playback condition is changedを示すフローチャートである。本フローチャートは、図15(b)に類似したアルゴリズムになる。ステップS51は、PSR3が、Play Itemに記述されたnumber of Angle未満であるか否かの判定である。もしステップS51がYesであるなら、PSR3の設定値を変化させない(ステップS53)。もしステップS51がNoであるなら、PSR3に初期値1を設定する(ステップS52)。
【0121】
図32(c)は、PSR3におけるProcedure when change is requestedを示すフローチャートである。本フローチャートは、図19に準じたものとなる。ステップS54は、Xが、Play Itemに記述されたnumber of Angleを越えるか否かの判定である。もしステップS54がYesであるなら、番号XをPSR3に設定する(ステップS57)。もしステップS54はNoであるなら、PSR3を維持する(ステップS55)。
【0122】
図30に示した3つのPlay Itemによりマルチアングル区間→非アングル区間→マルチアングル区間を連続して再生する場合に、アングル区間の選択がどのように行われるかについて図33を参照しながら説明する。
図33(a)では、PSR3がアングル番号=2を示すよう設定されていると仮定する。この状態でPlayItem#1の再生が開始されると、制御部24はPSR3の設定値=2により指示されるアングル区間(Right1)を選択して再生する。かかるRight1の再生が継続し、Right1の再生が終了すれば、PSR3は、アングル番号=2を維持したままInvalidになる。
【0123】
PlayItem#1により指定されるマルチアングル区間#1には、PlayItem#2により指定される非アングル区間が後続している。PlayItem#2は非アングル区間であるので、PSR3はInvalidのままである。この際PSR3は、設定値=2を維持したまま無効な状態として取り扱われる。PSR3がInvalidであるため制御部24は、このPSR3の設定値に拘らず、PlayItem#2のIn_time,Out_timeが存在するAVClip(XXX.M2TS)の再生を実行する。
【0124】
非アングル区間#2にはPlayItem#3により指定されるマルチアングル区間#3が後続している。マルチアングル区間#3の再生が開始されれば、PSR3は、設定値を維持したまま、InvalidからValidに移行する。こうしてPSR3がValidになれば、このPSR3の設定値に応じたアングル区間が選択されることになる。PSR3は、設定値=2を維持したままなので、制御部24はこのアングル番号=2により指示されるアングル区間(Right2)を選択して再生する。本図における矢印gg1は、以上に述べたアングル区間選択の移り変わりを示す。
【0125】
以上はPSR3の設定値が「PSR3=2」に設定されている場合の説明である。続いて、PSR3の設定値が「PSR3=3」に設定されている場合について説明する。図33(a)と同様に再生がなされ、非アングル区間の再生がなされている場合を想定する。図32(a)に示した状態遷移によりPSR3の設定値は、Invalidとしての取り扱いのまま、”3”に更新される。こうしてPSR3の設定値=3を保ったまま非アングル区間の再生が継続することになる。こうした再生の継続後、非アングル区間の再生が終了しマルチアングル区間#3の再生が開始したとする。マルチアングル区間の再生開始なので、Procedure when playback condition is changedが実行される。図32(b)のステップS51において、現在のPSR3の設定値が、Play Item#3に規定されているアングル数(number of angles)を上回っているかどうかの判定がなされる(ステップS51)。ここでPlay Item#3において選択可能なアングル区間数は2本であり、PSR3=3は、上回っている。これによりPSR3は、1に設定されることになる(ステップS52)。PSR3は1に設定されるので、XXX.M2TSが選択され、1本目のアングルが再生されることになる。本図における矢印gg2は、以上に述べたアングル区間選択の移り変わりを示す。
【0126】
以上のように本実施形態によれば、実在しないアングル区間の選択を避けるように、PSR3の状態遷移を行うので、マルチアングル区間から非アングル区間への移り変わり、非アングル区間からマルチアングル区間への移り変わりが頻繁に発生したとしても、おかしな番号が状態レジスタに設定されることはない。アングル選択の正当性を保証するので、マルチアングル区間を取り込んだ映画作品の普及を促進することができる。
【0127】
(第3実施形態)
第3実施形態は、対話機能の実行時における状態設定に関する。ここで想定する対話機能とは、複数ページからなり、個々のページにグラフィカルなボタン部材を配置させてユーザからの操作を受け付けるというものである。対話機能の実行にあたって、表示可能な複数ページのうち、どのページを表示させるか、そしてそのページにおける複数ボタンのうち、どれにフォーカスをあてるかを規定するのが本実施形態における状態設定である。
【0128】
<対話機能のためのデータ構造>
2以上のページ、ボタンを表示させるためのデータ構造は、第1実施形態に示したIGストリームに存在する。図34を参照しながらIGストリームについて説明する。IGストリームは、ICS、PDS、ODSからなる。ODSはボタンをグラフィカルに表示させるためのグラフィクスデータであり、PDSは、ボタンの発色を規定するパレットデータである。
【0129】
ICSは、動画の再生と同期させながら、ページを表示させるための制御情報である。動画との同期は、ICSを格納したPESパケットのDTS、PTSにより規定される。つまりICSを格納したPESパケットのDTSは、対話機能を有効とする期間(ICSをValidとする期間)の開始時期を示す。
図34の矢印cu1は、ICSの内部構成をクローズアップしている。この矢印に示すようにICSは、『loading_model』,『user_interface_model』,『composition_time_out_pts』,『selection_time_out_pts』,『user_time_out_duration』、表示可能な複数ページのそれぞれに対応する『ページ情報(1)(2)・・・(i)・・・(n)』を含む。
【0130】
『loading_model』は、本IGストリームがAVClipに多重されて存在するか、AVClipとは別に、再生装置に予めプリロードされているかを示す。
『user_Interface_model』は、動画の再生進行中、ページを常時表示させるか(Always-on)、ユーザ操作に基づきポップアップ表示させるかを示す(Pop-up)。
『composition_time_out_PTS』は、対話機能を有効とする期間の終期を示す。
【0131】
『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)』を含む。
【0132】
『Page_id』は、ページ情報に対応するページを一意に識別する識別子である。
『UO_Mask_Table』は、ICSに対応するDisplay Setにおけるユーザ操作の許可/不許可を示す。このマスクフィールドが不許可に設定されていれば、再生装置に対するユーザ操作は無効になる。
『In_effect』は、ページの表示開始時あたって実行すべき表示効果を示す。
【0133】
『Out_effect』は、ページの表示終了時あたって実行すべき表示効果を示す。
『animation_frame_rate_code』は、アニメーション型ボタンに適用すべきフレームレートを記述する。
『default_selected_button_id_ref』は、対話画面の表示が始まったとき、デフォルトでセレクテッド状態に設定すべきボタンを動的に定めるか、静的に定めるかを示す。本フィールドが”OxFF”であれば、デフォルトでセレクテッド状態に設定すべきボタンを動的に定める旨を示す。この場合、再生装置におけるPSRの設定値が優先的に解釈され、PSR10に示されるボタンがセレクテッド状態になる。本フィールドが0xFFでなければ、デフォルトでセレクテッド状態に設定すべきボタンを静的に定める旨を示す。この場合、『default_selected_button_id_ref』に規定されたボタン番号でPSR10を上書きし、本フィールドで指示されるボタンをセレクテッド状態に設定する。
【0134】
『default_activated_button_id_ref』は、Selection_Timeout_PTSにより定義された時間の前に、ユーザがどのボタンもアクティブ状態にしなかったとき、自動的にアクティブ状態に設定されるボタンを示す。default_activated_button_numberが”FF”であれば、Selection_Timeout_PTSにより定義される時刻において、現在セレクテッド状態にあるボタンが自動的に選択される。このdefault_activated_button_numberが00であれば、自動選択はなされない。00,FF以外の値であれば本フィールドは、有効なボタン番号として解釈される。
【0135】
『pallet_id_ref』は、対話画面において、CLUT部に設定すべきパレットのidを示す。
『ボタン情報(Button_info)』は、対話画面において合成される各ボタンを定義する情報である。図35は、ボタン情報についての内部構成を示す図である。図中の引き出し線hp1はICSにより制御されるi番目のボタンについてのボタン情報iの内部構成をクローズアップしている。ページに表示される個々のボタンの状態には、ノーマル状態、セレクテッド状態、アクティブ状態がある。ノーマル状態とは、単に表示されているに過ぎない状態である。これに対しセレクテッド状態とは、ユーザ操作によりフォーカスが当てられているが、確定に至っていない状態をいう。アクティブ状態とは、確定に至った状態をいう。かかる状態があるので、ボタン情報iには、以下の情報要素が規定されている。
【0136】
『button_number』は、ボタンiを、ICSにおいて一意に識別する数値である。
『numerically_selectable_flag』は、ボタンiの数値選択を許可するか否かを示すフラグである。
『auto_action_flag』は、ボタンiを自動的にアクティブ状態にするかどうかを示す。auto_action_flagがオン(ビット値1)に設定されれば、ボタンiは、セレクテッド状態になる代わりにアクティブ状態になる。auto_action_flagがオフ(ビット値0)に設定されれば、ボタンiは、選択されたとしてもセレクテッド状態になるにすぎない。
【0137】
『button_horizontal_position』、『button_vertical_position』は、対話画面におけるボタンiの左上画素の水平位置、垂直位置を示す。
『upper_button_number』は、ボタンiがセレクテッド状態である場合においてMOVEUPキーが押下された場合、ボタンiの代わりに、セレクテッド状態にすべきボタンの番号を示す。もしこのフィールドにボタンiの番号が設定されていれば、MOVEUPキーの押下は無視される。
【0138】
『lower_button_number』,『left_button_number』,『right_button_number』は、ボタンiがセレクテッド状態である場合においてMOVE Down キー,MOVE Left キー,MOVE Right キーが押下された場合、ボタンiの押下の代わりに、セレクテッド状態にすべきボタンの番号を示す。もしこのフィールドにボタンiの番号が設定されていれば、これらのキーの押下は無視される。
【0139】
『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の絵柄になる。
【0140】
『repeated_normal_flag』は、ノーマル状態にあるボタンiのアニメーション表示を反復継続させるかどうかを示す。
『start_object_id_selected』は、セレクテッド状態のボタンiをアニメーションで描画する場合、アニメーションを構成する複数ODSに付加された連番のうち、最初の番号がこのstart_object_id_selectedに記述される。
【0141】
『end_object_id_selected』は、セレクト状態のボタンiをアニメーションで描画する場合、アニメーションを構成する複数ODSに付加された連番たる『object_ID』のうち、最後の番号がこのend_object_id_selectedに記述される。このEnd_object_id_selectedに示されるIDが、start_object_id_selectdに示されるIDと同じである場合、このIDにて示されるグラフィックスオブジェクトの静止画が、ボタンiの絵柄になる。
【0142】
『repeat_selected_flag』は、セレクテッド状態にあるボタンiのアニメーション表示を、反復継続するかどうかを示す。start_object_id_selectedと、end_object_id_selectedとが同じ値になるなら、本フィールド00に設定される。
『start_object_id_activated』は、アクティブ状態のボタンiをアニメーションで描画する場合、アニメーションを構成する複数ODSに付加された連番のうち、最初の番号がこのstart_object_id_activatedに記述される。
【0143】
『end_object_id_activated』は、アクティブ状態のボタンをアニメーションで描画する場合、アニメーションを構成する複数ODSに付加された連番たる『object_ID』のうち、最後の番号がこのend_object_id_activatedに記述される。
続いてボタンコマンドについて説明する。
『ボタンコマンド(button_command)』は、ボタンiがアクティブ状態になれば、実行されるコマンドである。ボタンコマンドでは、以下の(i)〜(iv)のコマンドを使用することにより、PSR,GPRに値を設定したり、これらPSR,GPRから値を取得したりすることができる。
【0144】
(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(第1引数、第2引数)
この関数は、第1引数で指定されたPlayer Status Registerに、第2引数で指定された値を設定させる。
【0145】
(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(第1引数、第2引数)
この関数は、第1引数で指定されたGeneral Purpose Registerに、第2引数で指定された値を設定させる。
【0146】
<具体例>
以上がICSの内部構成である。ICSによる対話制御の具体例について以下説明する。本具体例は、図36のようなODS、ICSを想定している。図36は、ある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参照)。
【0147】
このICSによる制御の実行タイミングが、図37に示す動画のうち、任意のピクチャデータpt1の表示タイミングであれば、ICSにより表示可能な3つのページ(ページ1、ページ2、ページ3)のうちページ1が、このピクチャデータpt1に合成されて表示されることになる(gs2)。動画の中身に併せて、複数ボタンからなる対話画面が表示されるので、ICSによりボタンを用いたリアルな演出が可能になる。
【0148】
図38に示すボタン1-A〜ボタン1-Dの状態遷移を実行する場合のICSの記述例を図39に示す。図38における矢印hh1,hh2は、button info(1)のneighbor_info()による状態遷移を象徴的に表現している。button info(1)のneighbor_info()におけるlower_button_numberは、ボタン1-Cに設定されているため、ボタン1-Aがセレクテッド状態になっている状態で、MOVEDownキー押下のUOが発生すれば(図38のup1)、ボタン1-Cがセレクテッド状態になる(図38のsj1)。button info(1)のneighbor_info()におけるright_button_numberは、ボタン1-Bに設定されているため、ボタン1-Aがセレクテッド状態になっている状態で、MOVERightキー押下のUOが発生すれば(図38のup2)、ボタン1-Bがセレクテッド状態になる(図38のsj2)。
【0149】
図38における矢印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がアクティブ状態になってかかるボタンコマンドが実行されれば、図40に示すように、ページ1からページ2への表示切り換えがなされることになる。
【0150】
<再生装置>
以上が記録媒体の改良である。続いて本実施形態に係る再生装置について説明する。再生装置が有する複数PSRのうち、対話機能に係るものは、PSR0、PSR11、PSR10である。図41を参照しながら、PSR0、PSR10、PSR11について説明する。
PSR0は、カレントPlay ItemのSTN_tableにentryが記述されている複数IGストリームのうち、1つを特定するものである。
【0151】
PSR11は、PSR0により特定されるIGストリームにより複数ページの表示が可能である場合、それら複数ページのうち1つを特定するものである。
PSR10は、PSR11により特定されるページに複数ボタンが存在する場合、それら複数ボタンのうち1つを特定するものである。
対話機能を実現するにあたって、PSR0は、以下のような状態遷移を行う。PSR0は初期値として1が設定されており、再生装置により2〜32の値に設定されうる。図42(a)は、PSR0が取り得る状態遷移を示す。図42(b)は、PSR0におけるProcedure when playback condition is changedを示し、図43はPSR0におけるProcedure when change is requestedのフローチャートを示す。これらの状態遷移、フローチャートは、第1実施形態に示したPSR1、PSR2と同じである。オーディオストリーム、PG_textST_streamの場合と同様、複数言語に対応するIGストリームがAVClipに多重されている場合、これらの中から何れかのものが選ばれ、表示されることになる。この際、再生装置は、対応するentryが、STN_tableにおいて何番目に位置するかに従いIGストリームを選ぶ。これによりオーサリング担当者は、STN_tableにおけるentryの記述順序を規定することができ、複数IGストリームのうち、所望のものを優先的に選択させることができる。以上がPSR0の状態遷移についての説明である。
【0152】
PSR10、PSR11もPSR0同様、第1実施形態、第2実施形態に示したような状態遷移を行うが、その詳細については後で説明する。
続いて本実施形態に係る再生装置の構成について説明する。再生すべきIGストリームがPSR0に示されているので、第2実施形態に係る再生装置において制御部24、デマルチプレクサ3は、以下の処理を行う。
【0153】
制御部24は、STN_tableにおけるIGストリームのentry−attributeのうち、PSR0の格納されているストリーム番号に対応するものからPIDを取り出してデマルチプレクサ3に設定する。
デマルチプレクサ3は、BD-ROM及びHDから読み出されたTSパケットのうち、制御部24から設定されたPIDを有するものをI-Graphicsデコーダ13に出力する。これによりI-Graphicsデコーダ13には、ICS、PDS、ODSが順次供給されることになる。
【0154】
<I-Graphicsデコーダ13の内部構成>
続いて図44を参照しながら、I-Graphicsデコーダ13の内部構成について説明する。図44に示すようにI-Graphicsデコーダ13は、Coded Data Buffer33、Stream Graphics Processor34、Object Buffer35、Composition Buffer36、Graphics Controller37から構成される。
【0155】
Coded Data Buffer33は、ICS、PDS、ODSがDTS、PTSと共に一時的に格納されるバッファである。
Stream Graphics Processor34は、ODSをデコードして、デコードにより得られた非圧縮グラフィクスをObject Buffer35に書き込む。
Object Buffer35は、Stream Graphics Processor34のデコードにより得られた非圧縮グラフィクス(図中の四角枠)が多数配置されるバッファである。
【0156】
Composition Buffer36は、ICSが配置されるメモリであり、ここに格納されたICSにおける複数のページ情報及び各ページ情報内に存在するボタン情報を、Graphics Controller37に供する。
Graphics Controller37は、Composition Buffer36に配置されたICSにおける複数ページ情報のうち、PSR11により指定されているもの(カレントページ情報)のボタン情報を参照して、グラフィクスの描画を行う。この描画は、カレントページ情報内の各ボタン情報において、normal_state_infoのstart_object_id_normal,End_object_id_normalにより指定されているグラフィクスをObject Buffer15から読み出し、Interactive Graphicsプレーン15に書き込むことでなされる。カレントページ情報内のボタン情報のうち、PSR10により指定されているものについては、selected_state_infoのstart_object_id_selected,End_object_id_selectedにより指定されているグラフィクスをObject Buffer15から読み出し、Interactive Graphicsプレーン15に書き込むこと描画される。図中の矢印bg1,2,3,4は、以上のGraphics Controller37による描画を象徴的に示している。かかる描画により、ボタン1-A〜ボタン1-Dが配されたページがInteractive Graphicsプレーン15に現れ、動画に合成されることになる。
【0157】
以上はGraphics Controller37が行うべき処理の概要であり、Graphics Controller37が行うべき処理の詳細は、図45〜図51に示したものとなる。
図45は、Graphics Controller37の処理のうち、メインルーチンにあたる処理を示すフローチャートである。本フローチャートは、ステップS88(アニメーション処理)、ステップS89(UO処理)を行いつつも、ステップS81、S82、ステップS83の何れかの事象が成立しているかどうかを判定し、もしどれかの事象が成立すれば、該当する処理を実行してメインルーチンにリターンするものである。
【0158】
ステップS81は、現在の再生時点においてICSがValidになったか否かの判定であり、もしそうであるなら、ICSにおける最初のページ情報をPSR10に設定する(ステップS84)。その後、カレントページの表示処理を実行する(ステップS85)。
ステップS82は、現在の再生時点がselection_TimeOut_PTSに示される時刻であるかの判定であり、もしそうであれば、ボタンをアクティベートする処理を行う(ステップS86)。
【0159】
ステップS83は、現在の再生時点がComposition_TimeOut_PTSであるかの判定であり、もしそうであれば、画面クリアを行って、PSR10、PSR11を無効化する(ステップS87)。以上がタイムスタンプによる同期処理である。この同期処理において、ステップS85、ステップS86の処理手順は、サブルーチン化されている。ステップS85のサブルーチンの処理手順を、図46を参照しながら説明する。
【0160】
図46は、初期表示の処理手順を示すフローチャートである。ステップS91は、カレントページのIn_effectに規定された表示効果の実行であり、これを実行した後、カレントボタンの設定処理を行う。カレントボタンは、PSR10に規定されており、このPSR10についてのProcedure when playback condition is changedの実行が、このステップS92の処理である。かかるステップS92によりカレントボタンが決定されれば、ステップS93〜ステップS98に移行する。
【0161】
ステップS93〜ステップS98は、カレントページにおける各ボタン情報について繰り返されるループ処理を形成している(ステップS93、ステップS94)。本ループ処理において処理対象になるべきボタン情報をボタン情報(p)という。
ステップS95では、button_info(p)がカレントボタンに対応するbutton_infoであるか否かを判定する。もしそうであれば、ステップS96に、異なるならステップS97に移行する。
【0162】
ステップS96では、button_info(p)のselected_state_infoに指定されているstart_object_id__selectedのグラフィクスオブジェクトを、グラフィクスオブジェクト(p)としてObject Buffer35から特定する。
ステップS97では、button_info(p)のnormal_state_infoに指定されているstart_object_id_normalのグラフィクスオブジェクトを、グラフィクスオブジェクト(p)としてObject Buffer35から特定する。
【0163】
ステップS96、ステップS97を経ることでグラフィクスオブジェクト(p)が特定されれば、button_info(p)のbutton_horizontal_position,button_vertical_positionに示されるInteractive Graphicsプレーン15上の位置に、グラフィクスオブジェクト(p)を書き込む(ステップS98)。かかる処理をカレントページにおける各ボタン情報について繰り返せば、各ボタンの状態を表す複数グラフィクスオブジェクトのうち、最初のグラフィクスオブジェクトがInteractive Graphicsプレーン15上に書き込まれることになる。
【0164】
続いてステップS86のサブルーチンの処理手順を、図47を参照しながら説明する。
図47は、ボタンのオートアクティベートの処理手順を示すフローチャートである。先ずdefault_activated__button_id_refが0であるか,FFであるかどうかを判定し(ステップS100)、00であれば何の処理も行わずメインルーチンにリターンする。FFであれば、カレントボタンiをアクティブ状態に遷移する(ステップS102)。そしてカレントボタンiに対応する変数animation(i)を0に設定してメインルーチンにリターンする(ステップS103)。
【0165】
00でも、FFでもなければ、default_activated_button_numberで指定されるボタンをカレントボタンとし(ステップS101)、カレントボタンiをアクティブ状態に遷移し(ステップS102)、カレントボタンiに対応する変数animation(i)を0に設定してメインルーチンにリターンする(ステップS103)。
以上の処理により、セレクテッド状態のボタンは、所定時間の経過時においてアクティブ状態に遷移させられることになる。以上が、図47のフローチャートの全容である。
【0166】
続いて、ページにおけるアニメーション表示について説明する。図48は、アニメーション表示の処理手順を示すフローチャートである。
ここで初期表示は、各button_infoのnormal_state_infoにおけるstart_object_id_normal、selected_state_infoにおけるstart_object_id_selectedで指定されているグラフィクスオブジェクトを、Interactive Graphicsプレーン15に書き込まれることにより実現した。アニメーションとは、メインルーチンのループ処理が一巡する度に、各ボタンにおける任意のコマ(qコマ目にあるグラフィクスオブジェクト)をこのInteractive Graphicsプレーン15に上書する処理である。この更新は、button_infoのnormal_state_info、selected_state_infoで指定されているグラフィクスオブジェクトを、一枚ずつInteractive Graphicsプレーン15に書き込んでメインルーチンにリターンすることでなされる。ここで変数qとは、各ボタン情報のbutton_infoのnormal_state_info、selected_state_infoで指定されている個々のグラフィクスオブジェクトを指定するための変数である。
【0167】
このアニメーション表示を実現するための処理を、図48を参照しながら説明する。尚本フローチャートは、記述の簡略化を期するため、ICSのrepeat_normal_flag、repeat_selected_flagが繰り返し要と設定されているとの前提で作図している。
ステップS110は初期表示が済んでいるか否かの判定であり、もし済んでいなけれ何の処理も行わずにリターンする。もし済んでいればステップS111〜ステップS123の処理を実行する。ステップS111〜ステップS123は、ICSにおける各button_infoについて、ステップS113〜ステップS123の処理を繰り返すというループ処理を構成している(ステップS111、ステップS112)。
【0168】
ステップS113は、button_info(p)に対応する変数animation(p)を変数qに設定する。こうして、変数qは、button_info(p)に対応する、現在のコマ数を示すことになる。
ステップS114は、button_info(p)が、現在セレクテッド状態にあるボタン(カレントボタン)に対応するbutton_infoであるか否かの判定である。
カレントボタン以外のボタンならば、button_info(p).normal_state_infoにおけるstart_object_id_normalに変数qを足した識別子をID(q)とする(ステップS115)。
【0169】
カレントボタンに対応するボタンであれば、ステップS116の判定を行う。
ステップS116は、カレントボタンがアクティブ状態であるかの判定であり、もしそうであれば、ステップS117においてbutton_info(p).actioned_state_infoにおけるstart_object_id_activatedに変数qを足した識別子をID(q)とする。そしてbutton_info(p)に含まれるボタンコマンドのうち、1つを実行する(ステップS118)。
【0170】
カレントボタンがアクティブ状態でなければ、button_info(p).selected_state_infoにおけるstart_object_id_selectedに変数qを足した識別子をID(q)とする(ステップS119)。
こうしてID(q)が決まれば、Object Buffer35に存在する、ID(q)を有するグラフィクスオブジェクト(q)を、button_info(p)のbutton_horizontal_position,button_vertical_positionに示されるGraphics Plane15上の位置に書き込む(ステップS120)。
【0171】
以上のループ処理により、カレントボタンのセレクテッド状態(若しくはアクティブ状態)及びその他のボタンのノーマル状態を構成する複数グラフィクスオブジェクトのうち、q枚目のものがInteractive Graphicsプレーン15に書き込まれることになる。
ステップS121は、start_object_id_normal+qがend_object_id_normalに達したか否かの判定であり、もし達しないなら変数qをインクリメントした値を変数animation(p)に設定する(ステップS122)。もし達したなら変数animation(p)を0に初期化する(ステップS123)。以上の処理は、ICSにおける全てのbutton_infoについて繰り返される(ステップS111、ステップS112)。全てのbutton_infoについて、処理がなされれば、メインルーチンにリターンする。
【0172】
以上のステップS110〜ステップS123により対話画面における各ボタンの絵柄は、メインルーチンが一巡する度に新たなグラフィクスオブジェクトに更新される。メインルーチンが何度も反復されれば、いわゆるアニメーションが可能になる。アニメーションにあたって、グラフィクスオブジェクト一コマの表示間隔は、animation_frame_rate_codeに示される値になるようにGraphics Controller37は時間調整を行う。
【0173】
続いて、ボタンコマンドの実行処理について、図49のフローチャートを参照しながら説明する。ステップS131は、ボタン情報におけるボタンコマンドを1つ取り出し、ステップS132はボタンコマンドがページ切換コマンドであるか否かの判定である。もしページ切換コマンドでないなら、ステップS133においてボタンコマンドをそのまま実行する。もしページ切換コマンドであるなら、カレントページのOut_effectに規定された表示効果を実行する(ステップS134)。そしてbutton_commandのオペランドから特定される切換先ページをXにし、button_commandのオペランドから特定されるbutton番号をPSR10に格納して(ステップS135)、PSR11についてのProcedure when change is requestedを実行する(ステップS136)。ここでPSR11は、現在表示されているページを示すものであり、これについてのProcedure when change is requestedを実行することで、カレントページが定まる。その後、R10についてのProcedure when playback condition is changedを実行して、ボタンコマンド実行処理を終える。
【0174】
以上でボタンコマンド実行処理についての説明を終わる。続いてメインルーチンのステップS37におけるUO処理の処理手順について図50を参照しながら説明する。
図50は、UO処理の処理手順を示すフローチャートである。本フローチャートは、ステップS140〜ステップS143の何れかの事象が成立しているかどうかを判定し、もしどれかの事象が成立すれば、該当する処理を実行してメインルーチンにリターンする。ステップS140は、UOmaskTableが"1"に設定されているかどうかの判定であり、もしに設定されていれば、何の処理も行わずに、メインルーチンにリターンする。
【0175】
ステップS141は、MoveUP/Down/Left/Rightキーが押下されたかどうかの判定であり、もしこれらのキーが押下されれば、カレントボタンを変更して(ステップS147)、カレントボタンのauto_action_flagが01かどうかを判定する(ステップS148)。もし違うならメインルーチンにリターンする。もしそうであるなら、ステップS144に移行する。
【0176】
ステップS143は、数値入力であるかどうかの判定であり、もし数値入力であれば、数値入力処理を行って(ステップS146)、メインルーチンにリターンする。
ステップS142は、activatedキーが押下されたかどうかの判定であり、もしそうであれば、カレントボタンiをアクティブ状態に遷移する(ステップS144)。その後、変数animation(i)を0に設定する(ステップS145)。図51の処理手順のうち、ステップS147はサブルーチン化されている。このサブルーチンの処理手順を示したのが図51である。以降これらのフローチャートについて説明する。
【0177】
図51は、カレントボタンの変更処理の処理手順を示すフローチャートである。先ず初めに、カレントボタンのneighbor_infoにおけるupper_button_number,lower_button_number,left_button_number,right_button_numberのうち、押下されたキーに対応するものを特定する(ステップS150)。
そしてカレントボタンをボタンYとし、新たにカレントボタンになるボタンをボタンXとする(ステップS151)。XをPSR10に設定するにあたって、Procedure when change is requestedを実行する(ステップS152)。
【0178】
設定後、変数animation(X),変数animation(Y)を0に設定した上でメインルーチンにリターンする(ステップS153)。
以上がグラフィクスデコーダの処理である。
<フォーカス移動の具体例>
以上のページ切り換えにおいて、切換先ページにおけるどのボタンをセレクテッド状態にするかの指定は、オーサリング担当者の判断にかかっている。ここでどのようなフォーカス移動を実現するかが問題となる。ここでフォーカスとは、セレクテッド状態になっているボタンのことをいい、フォーカス移動とは、上述したボタンコマンドやデフォルトセレクテッドボタンを用いることにより、ページ切り換えに応じてセレクテッド状態になっているボタンを動的に、又は、静的に移動させることである。
【0179】
ここで、連続ドラマ等複数のコンテンツが記録されたパッケージメディアの視聴を支援するためのフォーカス移動について説明する。連続ドラマが記録されたパッケージメディアでは、第1話、第2話、第3話、第4話というように各話にあたるコンテンツが一枚のディスクに記録されている。この際、第1話→第2話、第2話→第3話、第3話→第4話というように、話数順に、各話毎のコンテンツを再生してゆくことが一般的である。話数選択が、選択メニューを介してなされる場合、一話の再生が終わる度に、第1話→第2話、第2話→第3話、第3話→第4話というような選択操作をユーザに行わせるのは、ユーザに煩雑感を与える。
【0180】
この選択操作を具体的に示したのが図52である。本図において選択メニューには、第1話、第2話、第3話、第4話のそれぞれに対応するボタンがあり、各ボタンの確定時には、第1話に対応するチャプターメニュー、第2話に対応するチャプターメニュー、第3話に対応するチャプターメニューがそれぞれ表示される。これらのチャプターメニューの表示後、選択メニューが再表示された際、ユーザはいちいち、次の話数のコンテンツを選ぶよう、キー操作を行わねばならない。つまり、第1話に対応するチャプターメニューが表示され(hw1)、選択メニューが再表示された場合(hw2)、第2話を選ぶようにキー操作(ks1)を行う必要がある。
【0181】
また第2話に対応するチャプターメニューが表示され(hw3)、選択メニューが再表示された場合(hw4)、第3話を選ぶようにキー操作(ks2)を行う必要がある。
このようなキー操作の手間の煩わしさを軽減するのが、フォーカス移動である。以降フォーカス移動の実現手順について説明する。図53は、図52に示したページ1〜ページ4を、選択メニュー、チャプターメニューにどのように割り当てるかを示す図である。図52に示した複数ページのうち、ページ1を選択メニューに割り当て、ページ2を第1話のチャプターメニュー、ページ3を第2話のチャプターメニュー、ページ4を第3話のチャプターメニューにそれぞれ割り当てるものとする。
【0182】
そしてページ1のボタン1-A〜ボタン1-Dを、選択メニューの第1話〜第4話の選択ボタンに割り当て、ページ2のボタン2-A〜ボタン2-Fを、チャプターメニューのチャプター1〜チャプター5、戻りボタンに割り当てるものとする。ここで戻りボタンとは、選択メニューを再表示させる旨をユーザから受け付けるボタンである。
このような割り当てを行った後、ページ1のボタン1-Aのボタンコマンド、ページ2のボタン2-Fのボタンコマンドを用いて、図54のような処理手順を記述する。本図におけるボタン1-Aのボタンコマンドで記述された処理手順は、ボタン1-Aの確定時には、(1)PSR10の設定値をGPRに退避し、(2)PSR11に値2を、(3)PSR10に値1を設定するというものである。
【0183】
このようにPSRが設定されることで、第1話のチャプターメニューが表示され、ボタン2-Aがセレクテッド状態になる。
一方、ページ2のボタン2-Fのボタンコマンドで記述された処理手順は、(1)PSR11に1を設定し、(2)”GPRに退避した値+1”をPSR10に設定するというものである。
以上のようにページ1のボタン1-A、ページ2のボタン2-Fのボタンコマンドを記述すれば、第1話のチャプターメニューの表示が終了して選択メニューの再表示する際、第1話から第2話のボタンに、フォーカスが自動的に移動することになる。同様のボタンコマンドの記述を、ページ1のボタン1-B〜ボタン1-D、他のページのボタンについて繰り返せば、図55に示すようなフォーカス移動が実現されることになる。
【0184】
かかるフォーカス移動により、沢山のコンテンツからなる連続ドラマから、見たいチャプターを探し出すという検索を簡易に行うことができる。
以上のフォーカス移動の実現において、個々のボタン毎にボタンコマンドを記述せねばならないので、ボタンやページの数が多ければ、バグの発生もあるだろうし、かかるバグを発見するためのテスト作業も必要になる。
【0185】
フォーカス移動にあたって起こりうるバグとしては以下のようなものがある。ページ1の表示時において、4つ目のボタン1-Dがセレクテッド状態になっている状態で、上述した手順が実行されれば、ページ1→ページ2の切り換え、ページ2→ページ1の切り換え時においてボタン1-Dのボタン番号に1を加えたボタン番号(=5)がPSRに設定される。5つの目のボタンが存在しないので、PSRのかかる設定により、ページ1において実在しないボタンにフォーカスが移動することになる。また図56に示すように、ページ2における6つ目のボタン(ボタン1-F)がセレクテッド状態に設定された後、PSRが更新されないままページ1が再表示されるというケースも考えられる。この場合も、ページ1の再表示時に実在しないボタンにフォーカスが移動することになり、再表示時でのフォーカス移動がおかしくなる。以上のように個々のページ毎のボタン数が異なる場合、切り換え後のページに存在し得ないボタンをセレクテッド状態にするような誤って状態設定が頻繁に起こりうる。コンテンツの出荷にあたってはかかる瑕疵の発生は許されないので、かかる状態設定の正常動作を保証するべくオーサリング担当者は、プログラムの出荷時のように、デバッグ・テストに努めなければならない。しかしソフトハウスのようなデバッグ・テストをオーサリング担当者に徹底させるというのは、本業であるコンテンツ製作に悪影響を及ぼしかねない。
【0186】
そこで本実施形態では、PSR1、PSR2、PSR3同様、Procedure when playback condition is changed、Procedure when change is requestedを介した状態遷移をPSR10、PSR11に行わせる。
<PSR11の状態遷移>
PSR11は、IGストリームにおいて現在表示されているページ(カレントページ)を示す。PSR11は、00〜FFの値をとり、再生装置はこのPSR11の値をページ番号として解釈してページ表示を行う。図57(a)は、PSR11の状態遷移を示す図である。本図を図15(a)と比較すると、事象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に置き換わっている。これらを除き、図15(a)と同じである。
【0187】
”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になったことをトリガとしている。
【0188】
続いてPSR11についてのProcedure when playback condition is changedについて説明する。図57(b)は、PSR11についてのProcedure when playback condition is changedを示すフローチャートである。Procedure when playback condition is changedは、ICSにおける最初のページ情報をPSR11を設定するというものである(ステップS154)。
図57(c)は、PSR11についてのProcedure when change is requestedを示すフローチャートである。Procedure when change is requestedは、XがValidであるか否かを判定し(ステップS155)、もしValidであれば、このXをPSR11に設定し、もしInvalidであるなら(ステップS156)、このPSR11を維持するというものである(ステップS157)。以上がPSR11についての説明である。
【0189】
<PSR10の状態遷移>
以下、PSR10の状態遷移について説明する。図58(a)は、PSR10の状態遷移を示す図である。本図を図57(a)と比較すると、事象Change Page,事象Button Disabledをトリガとした状態遷移が加えられている点を除き、図57と同じになっている。そして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に戻る。
【0190】
以上がPSR10の状態遷移である。続いてPSR10のProcedure when playback condition is changed、Procedure when change is requestedについて説明する。
図58(b)は、PSR10のProcedure when playback condition is changedを示すフローチャートである。
ステップS161は、カレントページにおけるデフォルトセレクテッドボタンが有効であるか否かの判定である。もしステップS161がYesであるなら、デフォルトセレクテッドボタンをPSR10に設定する(ステップS162)。
【0191】
ステップS163は、デフォルトセレクテッドボタンがInvalidである場合にPSR10が有効かどうかの判定を行う判定ステップである。もしPSR10がValidであるなら、PSR10の値を維持し(ステップS164)、PSR10がInvalidであるなら、カレントページの最初のボタンをPSR10に設定する(ステップS165)。
図59は、PSR10のProcedure when change is requestedを示すフローチャートである。本フローチャートにおけるステップS166は、XがValidなボタン番号であるか否かを判定し、もしValidであるならXをPSR10に設定する(ステップS168)。もしXがInvalidであるなら、PSR10の設定値を維持する(ステップS167)。
【0192】
上述した処理手順によれば、PSRがInvalidであるなら、そのページに記述されたボタン情報のうち、先頭のボタン情報をセレクテッド状態にするようPSR10が設定されるので、たとえページ切り換え時において、切換先のページに存在し得ないようなボタン番号をオーサリング担当者が設定してしまったとしても、これを正しい値に置き換えるような処理が自動的に実行されることになる。フォーカス移動を実現するために記述したボタンコマンドに誤りがあっても、これのリカバリーが自動的に行われるので、オーサリング担当者にとっての負担は軽減する。
【0193】
(備考)
以上の説明は、本発明の全ての実施行為の形態を示している訳ではない。下記(A)(B)(C)(D)・・・・・の変更を施した実施行為の形態によっても、本発明の実施は可能となる。本願の請求項に係る各発明は、以上に記載した複数の実施形態及びそれらの変形形態を拡張した記載、ないし、一般化した記載としている。拡張ないし一般化の程度は、本発明の技術分野の、出願当時の技術水準の特性に基づく。
【0194】
(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)であってもよい。更に、機器内蔵型のハードディスクであってもよい。
【0195】
(B)全ての実施形態における再生装置は、BD-ROMに記録されたAVClipをデコードした上でTVに出力していたが、再生装置をBD-ROMドライブのみとし、これ以外の構成要素をTVに具備させてもい、この場合、再生装置と、TVとをIEEE1394で接続されたホームネットワークに組み入れることができる。また、実施形態における再生装置は、テレビと接続して利用されるタイプであったが、ディスプレィと一体型となった再生装置であってもよい。更に、各実施形態の再生装置において、処理の本質的部分をなすシステムLSI(集積回路)のみを、実施としてもよい。これらの再生装置及び集積回路は、何れも本願明細書に記載された発明であるから、これらの何れの態様であろうとも、第1実施形態に示した再生装置の内部構成を元に、再生装置を製造する行為は、本願の明細書に記載された発明の実施行為になる。第1実施形態に示した再生装置の有償・無償による譲渡(有償の場合は販売、無償の場合は贈与になる)、貸与、輸入する行為も、本発明の実施行為である。店頭展示、カタログ勧誘、パンフレット配布により、これらの譲渡や貸渡を、一般ユーザに申し出る行為も本再生装置の実施行為である。
【0196】
(C)各フローチャートに示したプログラムによる情報処理は、ハードウェア資源を用いて具体的に実現されていることから、上記フローチャートに処理手順を示したプログラムは、単体で発明として成立する。全ての実施形態は、再生装置に組み込まれた態様で、本発明に係るプログラムの実施行為についての実施形態を示したが、再生装置から分離して、第1実施形態に示したプログラム単体を実施してもよい。プログラム単体の実施行為には、これらのプログラムを生産する行為(1)や、有償・無償によりプログラムを譲渡する行為(2)、貸与する行為(3)、輸入する行為(4)、双方向の電子通信回線を介して公衆に提供する行為(5)、店頭、カタログ勧誘、パンフレット配布により、プログラムの譲渡や貸渡を、一般ユーザに申し出る行為(6)がある。
【0197】
(D)各フロ−チャ−トにおいて時系列に実行される各ステップの「時」の要素を、発明を特定するための必須の事項と考える。そうすると、これらのフロ−チャ−トによる処理手順は、再生方法の使用形態を開示していることがわかる。各ステップの処理を、時系列に行うことで、本発明の本来の目的を達成し、作用及び効果を奏するよう、これらのフロ−チャ−トの処理を行うのであれば、本発明に係る記録方法の実施行為に該当することはいうまでもない。
【0198】
(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”という。
【0199】
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パケットは、他の機器に記録されることはない。
【0200】
(F)各実施形態におけるデジタルストリームは、BD-ROM規格のAVClipであったが、DVD-Video規格、DVD-Video Recording規格のVOB(Video Object)であってもよい。VOBは、ビデオストリーム、オーディオストリームを多重化することにより得られたISO/IEC13818-1規格準拠のプログラムストリームである。またAVClipにおけるビデオストリームは、MPEG4やWMV方式であってもよい。更にオーディオストリームは、Linear-PCM方式、MP3方式、MPEG-AAC方式であってもよい。
【0201】
(G)各実施形態における映画作品は、アナログ放送で放送されたアナログ映像信号をエンコードすることにより得られたものでもよい。デジタル放送で放送されたトランスポートストリームから構成されるストリームデータであってもよい。
またビデオテープに記録されているアナログ/デジタルの映像信号をエンコードしてコンテンツを得ても良い。更にビデオカメラから直接取り込んだアナログ/デジタルの映像信号をエンコードしてコンテンツを得ても良い。他にも、配信サーバにより配信されるデジタル著作物でもよい。
【0202】
(H)各実施形態に示したグラフィックスオブジェクトは、ランレングス符号化されたラスタデータである。グラフィックスオブジェクトの圧縮・符号化方式にランレングス符号方式を採用したのは、ランレングス符号化は字幕の圧縮・伸長に最も適しているためである。字幕には、同じ画素値の水平方向の連続長が比較的長くなるという特性があり、ランレングス符号化による圧縮を行えば、高い圧縮率を得ることができる。また伸長のための負荷も軽く、復号処理のソフトウェア化に向いている。デコードを実現する装置構成を、字幕−ボタン間で共通化する目的で、字幕と同じ圧縮・伸長方式をボタンに採用している。しかし、ランレングス符号化方式を採用したというのは、本発明の必須事項ではなく、グラフィックスオブジェクトはPNGデータであってもよい。またラスタデータではなくベクタデータであってもよい、更に透明な絵柄であってもよい。
【0203】
(I)PCSによる表示効果の対象は、装置側のディスプレィ設定に応じて選ばれた字幕グラフィクスであってもよい。つまり、ワイドビジョン、パンスキャン、レターボックス用といった様々な表示モード用のグラフィクスがBD-ROMに記録されており、装置側は自身に接続されたテレビの設定に応じてこれらの何れかを選んで表示する。この場合、そうして表示された字幕グラフィクスに対し、PCSに基づく表示効果をほどこすので、見栄えがよくなる。これにより、動画像本体で表現していたような文字を用いた表示効果を、装置側のディスプレィ設定に応じて表示された字幕で実現することができるので、実用上の価値は大きい。
【0204】
(J)各実施形態において再生装置には、グラフィックスプレーンを実装したが、このグラフィックスプレーンに代えて、一ライン分の非圧縮画素を格納するラインバッファを具備してもよい。映像信号への変換は水平行(ライン)毎に行われるので、このラインバッファさえ具備していれば、この映像信号への変換は行なえるからである。
(K)第3実施形態では、PSR10、PSR10に値を設定するようなボタンコマンドをICSに記述したが、PSR1、PSR2、PSR3に値を設定するようなボタンコマンドを記述してもよい。例えばPSR2が英語字幕を示しているのであれば、日本語音声を選択するように、ボタンコマンドを記述してもよい。
【0205】
(L)オーディオ選択メニュー、字幕選択メニューを表示して、オーディオストリーム選択、字幕選択を受け付けるにあたって、オーディオ選択メニュー、字幕選択メニューに”おまかせボタン”なるボタンを設けてもよい。かかるボタンに対応するボタン情報は、PSR1、PSR2に不定値を設定するボタンコマンドを有している。おまかせボタンの確定で、かかるボタンコマンドが実行されれば、PSR1、PSR2に不定値が設定され、Procedure when playback condition is changedが起動されて最適なオーディオストリーム、PG_textST_streamが選択されることになる。
【0206】
(M)第1実施形態において、満たすべき条件は(a)〜(c)の3つであったが、4つ以上であってもよい。
【産業上の利用可能性】
【0207】
本発明に係る再生装置は、上記実施形態に内部構成が開示されており、この内部構成に基づき量産することが可能なので、資質において工業上利用することができる。このことから本発明に係る再生装置は、産業上利用可能性を有する。
【図面の簡単な説明】
【0208】
【図1】(a)本発明に係る再生装置の、使用行為についての形態を示す図である。 (b)対話画面に対する操作をユーザから受け付けるためのリモコン400におけるキーを示す図である。
【図2】BD-ROMの構成を示す図である。
【図3】AVClipがどのように構成されているかを模式的に示す図である。
【図4】Clip情報の内部構成を示す図である。
【図5】PL情報の内部構成を示す図である。
【図6】PL情報による間接参照を模式化した図である。
【図7】sync_PlayItem_id,sync_start_PTS_of_PlayItemによるサブPlayItemの同期を模式的に示す図である。
【図8】STN_tableの内部構成を示す図である。
【図9】(a)ビデオストリームに対応したentry−attributeの組みを示す図である。
【0209】
(b)オーディオストリームに対応したentry−attributeの組みを示す図である。
(c)PGストリームに対応したentry−attributeの組みを示す図である。
(d)textSTストリームに対応したentry−attributeの組みを示す図である。
(e)IGストリームに対応したentry−attributeの組みを示す図である。
【図10】HDにプリロードされたプレイリスト情報の内部構成を示す図である。
【図11】HD上のプレイリスト情報内のClip_Information_file_nameによるファイル指定を示す図である。
【図12】本発明に係る再生装置の内部構成を示す図である。
【図13】PSR1、PSR2、PSR15、PSR16、PSR30の詳細設定を示すである。
【図14】PSR4〜PSR8の詳細設定を示す図である。
【図15】(a)PSR1の設定値が取り得る状態遷移を示す。
【0210】
(b)PSR1についてのProcedure when playback condition is changedを示すフローチャートである。
【図16】ステップS5の詳細な処理手順に示したフローチャートである。
【図17】再生能力と、ストリームの属性との組合せを表形式で示した図である。
【図18】STN_tableにおけるentryの順位に基づく、オーディオストリーム選択を示す図である。
【図19】PSR1についてのProcedure when change is requestedを示すフローチャートである。
【図20】(a)〜(c)Procedure when playback condition is changedによるオーディオストリーム選択の第1具体例を示す図である。
【図21】(a)〜(c)Procedure when playback condition is changedによるオーディオストリーム選択の第2具体例を示す図である。
【図22】(a)〜(c)Procedure when playback condition is changedによるオーディオストリーム選択の第3具体例を示す図である。
【図23】(a)PSR2が取り得る状態遷移を示す図である。
【0211】
(b)PSR2におけるProcedure when playback condition is changedを示すフローチャートである。
【図24】PSR2についてのProcedure when change is requestedを示すフローチャートである。
【図25】PSR2の設定手順を示すフローチャートである。
【図26】(a)〜(c)Procedure when playback condition is changedによるPG_textST_stream選択の具体例を示す図である。
【図27】STN_tableにおけるentryの順位に基づく、PG_textST_stream選択を示す図である。
【図28】第2実施形態に係るPlayList情報の構成を示す図である。
【図29】第2実施形態に係るファイル構成を示す図である。
【図30】(a)(b)マルチアングル区間、非アングル区間を示す図である。
【図31】PSR3の内部構成を示す図である。
【図32】(a)PSR3の状態遷移を示す図である。
【0212】
(b)PSR3におけるProcedure when playback condition is changedを示すフローチャートである。
(c)PSR3におけるProcedure when change is requestedを示すフローチャートである。
【図33】(a)(b)アングル区間の選択がどのように行われるかを示す図である。
【図34】IGストリーム、ICSを示す図である。
【図35】ボタン情報についての内部構成を示す図である。
【図36】あるDSnに含まれるODSと、ICSとの関係を示す図である。
【図37】任意のピクチャデータpt1の表示タイミングにおける画面合成を示す図である。
【図38】ボタン1-A〜ボタン1-Dの状態遷移を示す図である。
【図39】ICSにおけるボタン情報の設定例を示す図である。
【図40】ページ1からページ2への表示切り換えを示す図である。
【図41】PSR0、PSR10、PSR11を説明するための図である。
【図42】(a)PSR0が取り得る状態遷移を示す。
【0213】
(b)PSR0におけるProcedure when playback condition is changedを示す。
【図43】PSR0におけるProcedure when change is requestedのフローチャートを示す。
【図44】I-Graphicsデコーダ13の内部構成を示す図である。
【図45】タイムスタンプによる同期制御の処理手順を示すフローチャートである。
【図46】初期表示の処理手順を示すフローチャートである。
【図47】オートアクティベートの処理手順を示すフローチャートである。
【図48】アニメーション表示の処理手順を示すフローチャートである。
【図49】ボタンコマンド実行処理の処理手順を示すフローチャートである。
【図50】UO処理の処理手順を示すフローチャートである。
【図51】カレントボタンの変更処理の処理手順を示すフローチャートである。
【図52】連続ドラマを視聴する場合に、ユーザが行うべきキー操作を示す図である。
【図53】図52に示したページ1〜ページ4を、選択メニュー、チャプターメニューにどのように割り当てるかを示す図である。
【図54】フォーカス移動を実現するにあたって、各ボタンコマンドに記述すべき処理手順を示す図である。
【図55】前ページのフォーカス位置と連動しているようなフォーカス移動を示す図である。
【図56】フォーカス移動にあたって起こりうるバグを示す図である。
【図57】(a)PSR11の状態遷移を示す図である。
【0214】
(b)PSR11についてのProcedure when playback condition is changedを示すフローチャートである。
(c)PSR11についてのProcedure when change is requestedを示すフローチャートである。
【図58】(a)PSR10の状態遷移を示す図である。
【0215】
(b)PSR10のProcedure when playback condition is changedを示すフローチャートである。
【図59】PSR10のProcedure when change is requestedを示すフローチャートである。
【符号の説明】
【0216】
1 BDドライブ
2 リードバッファ
3 デマルチプレクサ
4 ビデオデコーダ
5 ビデオプレーン
9 P-Graphicsデコーダ
10 Presentation Graphicsプレーン
11 合成部
12 フォントゼネレータ
13 I-Graphicsデコーダ
14 スイッチ
15 Interactive Graphicsプレーン
16 合成部
17 コントローラ
18 リードバッファ
19 デマルチプレクサ
20 オーディオデコーダ
21 スイッチ
22 スイッチ
23 シナリオメモリ
24 制御部
25 スイッチ
26 CLUT部
27 CLUT部
28 PSRセット
29 操作受付部
30 遷移制御部
200 再生装置
300 テレビ
400 リモコン

【特許請求の範囲】
【請求項1】
グラフィクスストリーム及び動画ストリームを再生する再生装置であって、
グラフィクスストリームは、1つ以上の対話制御セグメントと、グラフィクスデータとを含み、
前記対話制御セグメントは、複数のページ情報と、タイムアウト情報とを含み、
複数のページ情報は、マルチページメニューの画面構成を規定する情報であり、各ページ情報は、1つ以上のボタン情報を含み、各ボタン情報は、グラフィクスデータをボタン部材の一状態として表示させることにより、マルチページメニューを構成する各ページ上で対話的な画面構成を実現する情報であり、
タイムアウト情報は、ビデオストリームの再生時間軸のうち、対話的な画面構成の終期が何時であるかを示し、
再生に供すべきグラフィクスを格納するプレーンメモリと、
グラフィクスストリームをデコードして、グラフィカルなボタン部材が複数配置されたページを得て、プレーンメモリに書き込むデコード手段と、
カレントページの番号を格納するページ番号レジスタとを備え
前記デコード手段は、カレントページ上のボタン部材の確定操作に応じて、ページ番号レジスタに、新たなページ番号を設定する旨の設定コマンドを実行し、
前記ページ番号レジスタに格納されたページ番号は、タイムアウト情報に示される時刻に到達した際、無効化され、
前記ページ番号の無効化は、デコード手段が、既にプレーンメモリに書き込まれたページをグラフィクスプレーンから消し去ることでなされる
ことを特徴とする再生装置。
【請求項2】
グラフィクスストリーム及び動画ストリームを再生する処理をコンピュータに実行させるプログラムであって、
グラフィクスストリームは、1つ以上の対話制御セグメントと、グラフィクスデータとを含み、
前記対話制御セグメントは、複数のページ情報と、タイムアウト情報とを含み、
複数のページ情報は、マルチページメニューの画面構成を規定する情報であり、各ページ情報は、1つ以上のボタン情報を含み、各ボタン情報は、グラフィクスデータをボタン部材の一状態として表示させることにより、マルチページメニューを構成する各ページ上で対話的な画面構成を実現する情報であり、
タイムアウト情報は、ビデオストリームの再生時間軸のうち、対話的な画面構成の終期が何時であるかを示し、
再生に供すべきグラフィクスを格納するプレーンメモリと、
カレントページの番号を格納するページ番号レジスタを備えるコンピュータに、
グラフィクスストリームをデコードして、グラフィカルなボタン部材が複数配置されたページを得て、プレーンメモリに書き込むデコードステップを実行させ、
前記デコードステップは、カレントページ上のボタン部材の確定操作に応じて、ページ番号レジスタに、新たなページ番号を設定する旨の設定コマンドを実行し、
前記ページ番号レジスタに格納されたページ番号は、タイムアウト情報に示される時刻に到達した際、無効化され、
前記ページ番号の無効化は、デコードステップが、既にプレーンメモリに書き込まれたページをグラフィクスプレーンから消し去ることでなされる
ことを特徴とするプログラム。
【請求項3】
グラフィクスストリーム及び動画ストリームを再生する再生方法であって、
グラフィクスストリームは、1つ以上の対話制御セグメントと、グラフィクスデータとを含み、
前記対話制御セグメントは、複数のページ情報と、タイムアウト情報とを含み、
複数のページ情報は、マルチページメニューの画面構成を規定する情報であり、各ページ情報は、1つ以上のボタン情報を含み、各ボタン情報は、グラフィクスデータをボタン部材の一状態として表示させることにより、マルチページメニューを構成する各ページ上で対話的な画面構成を実現する情報であり、
タイムアウト情報は、ビデオストリームの再生時間軸のうち、対話的な画面構成の終期が何時であるかを示し、
再生に供すべきグラフィクスを格納するプレーンメモリと、
カレントページの番号を格納するページ番号レジスタを備えるコンピュータ上で、、
グラフィクスストリームをデコードして、グラフィカルなボタン部材が複数配置されたページを得て、プレーンメモリに書き込むデコードステップを実行し、
前記デコードステップは、カレントページ上のボタン部材の確定操作に応じて、ページ番号レジスタに、新たなページ番号を設定する旨の設定コマンドを実行し、
前記ページ番号レジスタに格納されたページ番号は、タイムアウト情報に示される時刻に到達した際、無効化され、
前記ページ番号の無効化は、デコードステップが、既にプレーンメモリに書き込まれたページをグラフィクスプレーンから消し去ることでなされる
ことを特徴とする再生方法。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate

【図35】
image rotate

【図36】
image rotate

【図37】
image rotate

【図38】
image rotate

【図39】
image rotate

【図40】
image rotate

【図41】
image rotate

【図42】
image rotate

【図43】
image rotate

【図44】
image rotate

【図45】
image rotate

【図46】
image rotate

【図47】
image rotate

【図48】
image rotate

【図49】
image rotate

【図50】
image rotate

【図51】
image rotate

【図52】
image rotate

【図53】
image rotate

【図54】
image rotate

【図55】
image rotate

【図56】
image rotate

【図57】
image rotate

【図58】
image rotate

【図59】
image rotate


【公開番号】特開2009−81864(P2009−81864A)
【公開日】平成21年4月16日(2009.4.16)
【国際特許分類】
【出願番号】特願2008−269334(P2008−269334)
【出願日】平成20年10月20日(2008.10.20)
【分割の表示】特願2005−511981(P2005−511981)の分割
【原出願日】平成16年6月17日(2004.6.17)
【出願人】(000005821)パナソニック株式会社 (73,050)
【Fターム(参考)】