図5は、本発明を適用した再生装置1(図27および図28を参照して後述する)のローカルストレージ(例えば、ハードディスクやメモリなど)上の、または、装着される記録媒体上のアプリケーションフォーマットの例を示す図である。記録媒体は、後述する光ディスクの他、磁気ディスクや半導体メモリであってもよい。
アプリケーションフォーマットは、AV(Audio Visual)ストリームの管理のために、PlayListとClipの2つのレイヤを有している。ここでは、1つのAVストリームとそれに付随する情報であるClipインフォメーションのペアを1つのオブジェクトと考え、それらをまとめてClipと称する。以下、AVストリームをAVストリームファイルとも称する。
なお、AVストリームファイルには、音声データや映像データ以外にも、これらのデータとともに再生される各種のストリームファイルが含まれていてもよい。また、ClipインフォメーションをClipインフォメーションファイルとも称する。
一般的に、コンピュータ等で用いられるファイルはバイト列として扱われるが、AVストリームファイルのコンテンツは時間軸上に展開され、Clipのアクセスポイントは、主に、タイムスタンプでPlayListにより指定される。すなわち、PlayListとClipは、AVストリームの管理のためのレイヤである。
Clip中のアクセスポイントがタイムスタンプでPlayListにより示されている場合、Clip Informationファイルは、タイムスタンプから、AVストリームファイル中のデコードを開始すべきアドレス情報を見つけるために使用される。
PlayListは、AVストリームの再生区間の集まりである。あるAVストリーム中の1つの再生区間はPlayItemと呼ばれ、それは、時間軸上の再生区間のIN点(再生開始点)とOUT点(再生終了点)のペアで表される。従って、PlayListは、図5に示されるように1つ、または複数のPlayItemにより構成される。
図5において、左から1番目のPlayListは2つのPlayItemから構成され、その2つのPlayItemにより、左側のClipに含まれるAVストリームの前半部分と後半部分がそれぞれ参照されている。また、左から2番目のPlayListは1つのPlayItemから構成され、それにより、右側のClipに含まれるAVストリーム全体が参照されている。さらに、左から3番目のPlayListは2つのPlayItemから構成され、その2つのPlayItemにより、左側のClipに含まれるAVストリームのある部分と、右側のClipに含まれるAVストリームのある部分がそれぞれ参照されている。
例えば、図5のディスクナビゲーションプログラムにより、そのときの再生位置を表す情報として、左から1番目のPlayListに含まれる左側のPlayItemが指定された場合、そのPlayItemが参照する、左側のClipに含まれるAVストリームの前半部分の再生が行われる。このように、PlayListは、AVストリームファイルの再生を管理するための再生管理情報として用いられる。
ディスクナビゲーションプログラムは、PlayListの再生の順序や、PlayListのインタラクティブな再生をコントロールする機能を有する。また、ディスクナビゲーションプログラムは、各種の再生の実行をユーザが指示するためのメニュー画面を表示する機能なども有する。このディスクナビゲーションプログラムは、例えば、Java(登録商標)などのプログラミング言語で記述され、記録媒体上に用意される。
本実施の形態では、PlayListの中で、1つ以上のPlayItemの並びによって(連続するPlayItemにより)作られる再生パスをメインパス(Main Path)と称し、PlayListの中で、Main Pathに並行(並列)して、1つ以上のSub Pathの並びによって(非連続でもよいし、連続してもよいSubPlayItemにより)作られる再生パスをサブパス(Sub Path)と称する。
すなわち、再生装置1(図27および図28を参照して後述する)内部のローカルストレージ上の、または、装着される記録媒体上のアプリケーションフォーマットは、メインパスに関連付けられて(合わせて)再生されるサブパス(Sub Path)をPlayListの中に持つ。
図6は、メインパスとサブパスの構造を説明する図である。PlayListは、1つのメインパスと1つ以上のサブパスを持つことができる。1つのメインパスは、1つ以上のPlayItemの並びによって作られ、1つのサブパスは、1つ以上のSubPlayItemの並びによって作られる。
図6の例の場合、PlayListは、3つのPlayItemの並びにより作られる1つのメインパスと、3つのサブパスを有している。メインパスを構成するPlayItemには、先頭から順番にそれぞれID(Identification)が付されている。具体的には、メインパスは、PlayItem_id=0、PlayItem_id=1、およびPlayItem_id=2のPlayItemからなる。また、サブパスにも先頭から順番にSubpath_id=0、Subpath_id=1、およびSubpath_id=2、とそれぞれIDが付されている。Subpath_id=0のサブパスには、1つのSubPlayItemが含まれ、Subpath_id=1のサブパスには、2つのSubPlayItemが含まれ、Subpath_id=2のサブパスには、1つのSubPlayItemが含まれる。
Subpath_id=0のサブパスに含まれるSubPlayItemが参照するストリームは、例えば、映画の日本語吹き替えの音声と想定され、Mainpathにより参照されるAVストリームファイルのオーディオストリームに替えて再生される場合が考えられる。また、Subpath_id=1のサブパスに含まれるSubPlayItemが参照するストリームは、例えば、映画のディレクターズカットと想定され、Main Pathにより参照されるAVストリームファイルの所定の部分にのみ、映画監督などのコメントが入っている場合が考えられる。
1つのPlayItemが参照するClip AVストリームファイルには、少なくともビデオストリームデータ(メイン画像データ)が含まれる。また、Clip AVストリームファイルには、Clip AVストリームファイルに含まれるビデオストリーム(メイン画像データ)と同じタイミングで(同期して)再生されるオーディオストリームが1つ以上含まれてもよいし、含まれなくてもよい。さらに、Clip AVストリームファイルには、Clip AVストリームファイルに含まれるビデオストリームと同じタイミングで再生されるビットマップ字幕ストリーム(Presentation Graphic stream)が1つ以上含まれてもよいし、含まれなくてもよい。また、Clip AVストリームファイルには、Clip AVストリームファイルに含まれるビデオストリームと同じタイミングで再生されるインタラクティブグラフィックスストリームが1つ以上含まれてもよいし、含まれなくてもよい。そして、Clip AVストリームファイルに含まれるビデオストリームと、ビデオストリームと同じタイミングで再生されるオーディオストリーム、ビットマップ字幕ストリームファイル、またはインタラクティブグラフィックスストリームとは多重化されている。すなわち、1つのPlayItemが参照するClip AVストリームファイルには、ビデオストリームデータと、そのビデオストリームに合わせて再生される0個以上のオーディオストリーム、0個以上のビットマップ字幕ストリームデータ、および0個以上のインタラクティブグラフィックスストリームデータとが多重化されている。
すなわち、1つのPlayItemが参照するClip AVストリームファイルには、ビデオストリーム、オーディオストリーム、ビットマップ字幕ストリームファイル、または、インタラクティブグラフィックスストリームなどの、複数の種類のストリームが含まれている。
また、1つのSubPlayItemは、PlayItemが参照するClip AVストリームファイルとは異なるストリーム(別ストリーム)のオーディオストリームデータや字幕データを参照する。
メインパスのみを有するPlayListを再生する場合、ユーザによる音声切り替えや字幕切り替えという操作は、そのメインパスが参照するClipに多重化されているオーディオストリームとサブピクチャストリームの中からしか音声や字幕を選択することができない。これに対し、メインパスとサブパスを持つPlayListを再生する場合、そのメインパスが参照するClip AVストリームファイルに多重化されているオーディオストリームとサブピクチャストリームに加えて、SubPlayItemが参照するClipのオーディオストリームやサブピクチャストリームを参照することもできる。
このように、1つのPlayListの中にSubPathを複数含め、それぞれのSubPathがそれぞれSubPlayItemを参照する構成としたので、拡張性の高い、また、自由度の高いAVストリームを実現することができる。すなわち、MainPathで参照されるClip AVストリームに加えて、後で、SubPlayItemを追加できる構成とすることができる。
図7は、メインパスとサブパスの例を説明する図である。図7においては、メインパスと同じタイミングで(AV同期して)再生されるオーディオの再生パスを、サブパスを使用して表している。
図7のPlayListには、メインパスとして、PlayItem_id=0である1つのPlayItemと、サブパスとして1つのSubPlayItemが含まれている。メインパスのPlayItem_id=0である1つのPlayItem()は、メインClipAVストリームを参照している。SubPlayItem()には、以下に示すデータが含まれる。まず、SubPlayItem ()には、PlayListの中のSub Path(サブパス)が参照するClipを指定するためのClip_Information_file_nameが含まれる。図7の例の場合、SubPlayItemによって、SubClip_entry_id=0のAuxiliary audio stream(オーディオストリーム)が参照されている。また、SubPlayItem ()には、Clip(ここでは、Auxiliary audio stream)の中のSub Pathの再生区間を指定するためのSubPlayItem_IN_timeとSubPlayItem_OUT_timeとが含まれる。さらに、SubPlayItem()には、Main pathの時間軸上でSub Pathが再生開始する時刻を指定するためのsync_PlayItem_idとsync_start_PTS_of_PlayItemとが含まれる。図7の例の場合、sync_PlayItem_id=0とされ、sync_start_PTS_of_PlayItem=t1とされている。これにより、メインパスのPlayItem_id=0の時間軸上でSub Pathが再生を開始する時刻t1を指定することができる。すなわち、図7の例の場合では、メインパスの再生開始時刻t1とサブパスの開始時刻t1が同時刻であることを示している。
ここで、Sub Pathに参照されるオーディオのClip AVストリームは、STC不連続点(システムタイムベースの不連続点)を含んではならない。サブパスに使われるClipのオーディオサンプルのクロックは、メインパスのオーディオサンプルのクロックにロックされている。
換言すると、SubPlayItem()には、Sub Pathが参照するClipを指定する情報、Sub Pathの再生区間を指定する情報、およびMain pathの時間軸上でSub Pathが再生を開始する時刻を指定する情報が含まれている。Sub Pathに使われるClip AVストリームがSTCを含まないため、SubPlayItem()に含まれる情報(Sub Pathが参照するClipを指定する情報、Sub Pathの再生区間を指定する情報、およびMain pathの時間軸上でSub Pathが再生を開始する時刻を指定する情報)に基づいて、メインパスが参照するClip AVストリーム(主に再生されるメインAVストリーム)とは異なるClip AVストリームのオーディオストリームを参照して、再生することができる。
このように、PlayItemとSubPlayItemは、Clip AVストリームファイルをそれぞれ管理するものであり、ここでは、PlayItemが管理するClip AVストリームファイル(メインAVストリーム)とSubPlayItemが管理するClip AVストリームファイルは異なるファイルとなりうる。
なお、図7の例と同様にして、メインパスと同じタイミングで再生される字幕ストリーム再生パスを、サブパスを使用して表すこともできる。
図8は、メインパスとサブパスの別の例を説明する図である。図8においては、メインパスと同じタイミングで(AV同期して)再生されるオーディオの再生パスを、サブパスを使用して表している。ここで、メインパスのPlayItemが参照するメインClipAVストリームファイルは、図7と同様であるので省略している。
例えば、メインパスにより参照されるClipAVストリームを1つの映画のコンテンツ(AVコンテンツ)とし、サブパスのオーディオパスにより参照されるAuxiliary audio stream(Clip)をその映画に対する監督のコメントとし、メインパスで参照されるClipAVストリームのオーディオストリームにサブパスのオーディオパスで参照されるAuxiliary audio streamをミキシング(重ねて)再生するような場合に、このような構成が利用される。すなわち、ユーザが、映画を見ながら、その映画に対する監督のコメントを合わせて聞く指令を再生装置(プレーヤ)へ入力した場合、換言すれば、メインパスで参照されるClipAVストリームの音声と、サブパスのオーディオパスで参照されるAuxiliary audio streamとを、ミキシングして再生させる場合に利用される。
図8においては、メインパスに3つのPlayItemがPlayItem_id=0,1,2と配置され、サブパス(Subpath_id=0)に2つのSubPlayItemが配置されている。そして、Subpath_id=0のSubPath(図10にて後述する)で呼び出すSubPlayItem(図12にて後述する)は、Auxiliary audio stream(SubClip_entry_id=0の英語のAuxiliary audio streamのクリップ及びSubClip_entry_id=1の日本語のAuxiliary audio streamのクリップ)のSubpathの再生区間を指定するための、SubPlayItem_IN_timeと、SubPlayItem_out_timeを含む。
図8と図7とを比較するに、図8においては、SubPlayItemによって、SubClip_entry_id=0,1のAuxiliary audio stream(英語または日本語のオーディオストリーム)を参照することができる。すなわち、SubPlayItemを用いて、複数のオーディオストリームファイルを参照する構造を有し、このSubPlayItemを再生する場合には、複数のオーディオストリームファイルからオーディオストリームファイルが選ばれて再生される。図8の例の場合、英語のオーディオストリームファイルと日本語のオーディオストリームファイルのうち、1つのオーディオストリームファイルが選ばれて再生される。具体的には、subClip_entry_id=0,1の中から(例えば、ユーザの指令に基づいて)1つが選択され、そのIDが参照するAuxiliary audio streamが再生される。また、これに加えて、さらにメインパスにより参照されるオーディオストリームとの組み合わせによる再生が選択された場合、メインパスで参照される1stオーディオストリームと、サブパスのオーディオパスで参照される2ndオーディオストリームファイルとが、ミキシングされて再生される。なお、2つのサブパスで参照される2つのオーディオストリームが、ミキシングされて再生されるようにすることも可能であるが、これについては後述する。
次に、図6乃至図8を用いて説明したメインパスとサブパスの構造を具体的に実現するためのデータ構造(シンタクス)を説明する。
図9は、PlayList()のシンタクスを示す図である。
lengthは、このlengthフィールドの直後からPlayList()の最後までのバイト数を示す32ビットの符号なし整数である。すなわち、reserved_for_future_useからPlayListの最後までのバイト数を示すフィールドである。このlengthの後には、16ビットのreserved_for_future_useが用意される。number_of_PlayItemsは、PlayListの中にあるPlayItemの数を示す16ビットのフィールドである。例えば、図6の例の場合PlayItemの数は3個である。PlayItem_idの値は、PlayListの中でPlayItem()が現れる順番に0から割り振られる。例えば、図6および図8に示されるように、PlayItem_id=0,1,2が割り振られる。
number_of_SubPathsは、PlayListの中にあるSubPathの数(エントリー数)を示す16ビットのフィールドである。例えば、図6の例の場合、Sub Pathの数は3個である。SubPath_idの値は、PlayListの中でSubPath()が現れる順番に0から割り振られる。例えば、図6に示されるように、Subpath_id=0,1,2が割り振られる。その後のfor文では、PlayItemの数だけPlayItemが参照され、Sub Pathの数だけ、Sub Pathが参照される。
図10は、SubPath()のシンタクスを示す図である。
lengthは、このlengthフィールドの直後からSub Path ()の最後までのバイト数を示す32ビットの符号なし整数である。すなわち、reserved_for_future_useからPlayListの最後までのバイト数を示すフィールドである。このlengthの後には、16ビットのreserved_for_future_useが用意される。SubPath_typeは、SubPathのアプリケーション種類を示す8ビットのフィールドである。SubPath_typeは、例えば、Sub Pathがオーディオであるか、ビットマップ字幕であるか、テキスト字幕であるかなどの種類を示す場合に利用される。このSubPath_typeの第1の例については、図11を参照して後述する。SubPath_typeの後には、15ビットのreserved_for_future_useが用意される。is_repeat_SubPathは、SubPathの再生方法を指定する1ビットのフィールドであり、メインパスの再生の間にSubPathの再生を繰り返し行うか、またはSubPathの再生を1回だけ行うかを示すものである。例えば、メインAVストリームとサブパスが指定するClipに含まれるストリームとの再生タイミングが異なる場合(メインパスを静止画のスライドショーとし、サブパスのオーディオパスをメインパスのBGM(バックグラウンドミュージック)として使う場合など)に利用される。Is_repeat_SubPathの後には、8ビットのreserved_for_future_useが用意される。number_of_SubPlayItemsは、1つのSubPathの中にあるSubPlayItemの数(エントリー数)を示す8ビットのフィールドである。例えば、number_of_SubPlayItemsは、図6のSubPath_id=0のSubPlayItemは1個であり、SubPath_id=1のSubPlayItemは2個である。その後のfor文では、SubPlayItemの数だけ、SubPlayItemが参照される。
図11は、SubPath_type(サブパスのタイプ)の第1の例を説明する図である。すなわち、SubPathの種類は、例えば、図11に示されるように定義することができる。
図11において、SubPath_type=0,1は、reservedとされている。SubPath_type=2は、Audio presentation path of the Browsable slideshow(プラウザブルスライドショーのオーディオプレゼンテーションパス)とされている。例えば、SubPath_type=2は、プレイリストの中において、サブパスで参照されるオーディオプレゼンテーションパスと、プレイアイテムで参照されるメインパスとが非同期であることを示している。
SubPath_type=3は、Interactive graphics presentation menu(インタラクティブグラフィックスのプレゼンテーションメニュー)とされている。例えば、SubPath_type=3は、プレイリストの中において、サブパスで参照されるインタラクティブグラフィックスのメニューと、プレイアイテムで参照されるメインパスとが非同期であることを示している。
SubPath_type=4は、Text subtitle presentation path(テキスト字幕のプレゼンテーションパス)とされている。例えば、SubPath_type=4は、プレイリストの中において、サブパスで参照されるテキスト字幕のプレゼンテーションパスと、プレイアイテムで参照されるメインパスとが同期していることを示している。
SubPath_type=5は、2nd Audio Presentation path(2番目のオーディオプレゼンテーションパス)(2ndオーディオストリームを参照するためのパス)とされている。具体的には、SubPath_type=5は、プレイリストの中において、サブパスで参照される2番目のオーディオプレゼンテーションパスと、プレイアイテムで参照されるメインパスとが同期していることを示している。例えば、このサブパスで参照される(2番目の)オーディオストリームは、映画に対する監督のコメント(音声)である。図8においてSubpath_id=0で示されるSubpathの場合、図10のSubPath_typeは、このSubPath_type=5となる。
SubPath_type=6は、2nd Video Presentation path(2番目のビデオプレゼンテーションパス)(2ndビデオストリームを参照するためのパス)とされている。具体的には、SubPath_type=6は、プレイリストの中において、サブパスで参照される2番目のビデオプレゼンテーションパスと、プレイアイテムで参照されるメインパスとが同期していることを示している。例えば、このサブパスで参照される(2番目の)ビデオストリームは、映画に対する監督のコメント(動画像)である。なお、図27および図28を用いて説明する再生装置1の処理の説明ではオーディオの合成のみを詳述するが、動画像の合成も同様の構成で実現をすることができ、その詳細については後述する。
SubPath_type=7乃至255は、reservedとされている。
図12は、SubPlayItem(i)のシンタクスを示す図である。
lengthは、このlengthフィールドの直後からSub playItem ()の最後までのバイト数を示す16ビットの符号なし整数である。
図12においては、SubPlayItemが1つのClip を参照する場合と、複数のClip を参照する場合に分けられている。
最初に、SubPlayItemが1つのClipを参照する場合について説明する。
SubPlayItemには、Clipを指定するためのClip_Information_file_ name[0]が含まれる。また、Clipのコーディック方式を指定するClip_codec_identifier[0]、reserved_for_future_use、マルチクリップの登録の有無を示すフラグであるis_multi_Clip_entries、STC不連続点(システムタイムベースの不連続点)に関する情報であるref_to_STC_id[0]を含む。is_multi_Clip_entriesのフラグが立っている場合、SubPlayItemが複数のClipを参照する場合のシンタクスが参照される。また、Clipの中にあるSub Pathの再生区間を指定するためのSubPlayItem_IN_timeとSubPlayItem_OUT_timeを含む。さらに、main pathの時間軸上でSub Pathが再生開始する時刻を指定するためsync_PlayItem_id と sync_start_PTS_of_PlayItemを含む。このsync_PlayItem_id と sync_start_PTS_of_PlayItemは、上述したように、図7と図8の場合(メインAVストリームとサブパスにより示されるファイルに含まれるストリームの再生タイミングが同じである場合)に使用され、メインAVストリームとサブパスにより示されるファイルに含まれるストリームの再生タイミングが異なる場合(例えば、静止画により構成されるスライドショーのBGMのように、メインパスにより参照される静止画像とサブパスにより参照されるオーディオとが同期しない場合)には使用されない。また、SubPlayItem_IN_time、SubPlayItem_OUT_time、sync_PlayItem_id、sync_start_PTS_of_PlayItemは、SubPlayItemが参照するClipにおいて共通に使用される。
次に、SubPlayItemが複数のClipを参照する場合(if(is_multi_Clip_entries==1b)である場合、すなわちマルチクリップの登録が行われている場合)について説明する。
具体的には、図8に示されるように、SubPlayItemが複数のClip を参照する場合を示す。
num_of_Clip_entriesは、Clipの数を示しており、Clip_Information_file_name[SubClip_entry_id]の数が、Clip_Information_file_ name[0]を除く、Clipsを指定する。すなわち、Clip_Information_file_ name[0]を除く、Clip_Information_file_ name[1]、Clip_Information_file_ name[2]などのClipを指定する。また、SubPlayItemは、Clipのコーディック方式を指定するClip_codec_identifier[SubClip_entry_id]、STC不連続点(システムタイムベースの不連続点)に関する情報であるref_to_STC_id[SubClip_entry_id]、およびreserved_for_future_useを含む。
なお、複数のClipの間で、SubPlayItem_IN_time, SubPlayItem_OUT_time、sync_PlayItem_id、およびsync_start_PTS_of_PlayItemは共通して使われる。図8の例の場合、SubPlayItem_IN_time, SubPlayItem_OUT_time、sync_PlayItem_id、およびsync_start_PTS_of_PlayItemは、SubClip_entry_id=0とSubClip_entry_id=1との間で共通して使用されるものであり、選択されたSubClip_entry_idに対するText based subtitleがこのSubPlayItem_IN_time, SubPlayItem_OUT_time、sync_PlayItem_id、およびsync_start_PTS_of_PlayItemに基づいて再生される。
ここで、SubClip_entry_idの値は、SubPlayItemの中にあるClip_Information_file_name[SubClip_entry_id]が現れる順番に1から割り振られる。また、Clip_Information_file_ name[0]のSubClip_entry_idは0である。
図13は、PlayItem()のシンタクスを示す図である。
lengthは、このlengthフィールドの直後からPlayItem()の最後までのバイト数を示す16ビットの符号なし整数である。Clip_Information_file_ name[0]は、PlayItemが参照するClipを指定するためのフィールドである。図7の例の場合、Clip_Information_file_ name[0]により、メインClipAVストリームファイルが参照される。また、PlayItem()には、Clipのコーディック方式を指定するClip_codec_identifier[0]、reserved_for_future_use、is_multi_angle、connection_condition、STC不連続点(システムタイムベースの不連続点)に関する情報であるref_to_STC_id[0]が含まれる。さらに、PlayItem()には、Clipの中のPlayItemの再生区間を指定するためのIN_time と OUT_timeが含まれる。図7の例の場合、IN_time と OUT_timeにより、メインClipAVストリームファイルの再生範囲が表される。また、PlayItem()には、UO_mask_table()、PlayItem_random_access_mode、still_modeが含まれる。なお、is_multi_angleが複数ある場合については、本発明と直接的には関係ないのでその説明を省略する。
PlayItem()の中のSTN_table()は、対象のPlayItemとそれに関連付けられて再生される1つ以上のSubPathが用意されている場合に、ユーザによる音声切り替えや字幕切り替えという操作が、そのPlayItemが参照するClipとこれらの1つ以上のSubPathが参照するClipsの中から選ぶことができる仕組みを提供するものである。
図14は、STN_table()のシンタクスの第1の例(第1のSTN_table())を示す図である。第1のSTN_table()は、PlayItemの属性として設定されている。また、図14の第1のSTN_table()は、PlayItemが参照するClipとSubPathが参照するClipを組み合わせたものの再生を選ぶことができる仕組みを提供するものである。
lengthは、このlengthフィールドの直後からSTN_table()の最後までのバイト数を示す16ビットの符号なし整数である。lengthの後には、16ビットのreserved_for_future_useが用意される。number_of_video_stream_entriesは、STN_table()の中でエントリーされる(登録される)video_stream_idが与えられるストリーム数を示す。video_stream_idは、ビデオストリームを識別するための情報であり、video_stream_numberは、ビデオ切り替えに使われる、ユーザから見えるビデオストリーム番号である。number_of_audio_stream_entriesは、STN_table()の中でエントリーされるaudio_stream_idが与えられるストリーム数を示す。audio_stream_idは、オーディオストリームを識別するための情報であり、audio_stream_numberは、音声切り替えに使われるユーザから見えるオーディオストリーム番号である。
number_of_PG_txtST_stream_entriesは、STN_table()の中でエントリーされるPG_txtST_stream_idが与えられるストリーム数を示す。この中では、DVDのサブピクチャのようなビットマップ字幕をランレングス符号化したストリーム(PG, Presentation Graphics stream)とテキスト字幕ファイル(txtST)がエントリーされる。PG_txtST_stream_idは、字幕ストリームを識別するための情報であり、PG_txtST_stream_numberは、字幕切り替えに使われるユーザから見える字幕ストリーム番号(テキストサブタイトルストリームの番号)である。
number_of_IG_stream_entriesは、STN_table()の中でエントリーされる IG_stream_idが与えられるストリーム数を示す。この中では、インタラクティブグラフィックスストリームがエントリーされる。IG_stream_idは、インタラクティブグラフィックスストリームを識別するための情報であり、IG_stream_numberは、グラフィックス切り替えに使われるユーザから見えるグラフィックスストリーム番号である。
ここで、stream_entry()のシンタクスについて図15を参照して説明する。
lengthは、このlengthフィールドの直後からstream_entry ()の最後までのバイト数を示す8ビットの符号なし整数である。typeは、上述したストリーム番号が与えられるストリームを一意に特定するために必要な情報の種類を示す8ビットのフィールドである。
type=1またはtype=3では、PlayItemによって参照されるClip(Main Clip)の中に多重化されている複数のエレメンタリストリームの中から1つのエレメンタリストリームを特定するために、16ビットのパケットID(PID)が指定される。ref_to_stream_PID_of_mainClipが、このPIDを示している。すなわち、type=1とtype=3では、メインClipAVストリームファイルの中のPIDを指定するだけでストリームが決定される。
type=2またはtype=3では、SubPathが一度に複数個のClipsを参照し、それぞれのClipが複数のエレメンタリストリームを多重化する場合に、SubPathによって参照される1つのClip(SubClip)の複数のエレメンタリストリームの中から1つのエレメンタリストリームを特定するために、そのSubPathのSubPath_id、Clip id、およびパケットID(PID)が指定される。ref_to_SubPath_idがこのSubPath_idを示し、ref_to_SubClip_entry_idがこのClip idを示し、ref_to_stream_PID_of_SubClipがこのPIDを示している。SubPlayItemの中で複数のClipが参照され、さらにこのClipに複数のエレメンタリストリームが参照されている場合に用いられる。
すなわち、type=3の場合、PlayItemによって参照されるClip(Main Clip)の中に多重化されている複数のエレメンタリストリームの中から1つのエレメンタリストリームを特定するためのパケットID(PID)と、SubPathが一度に複数個のClipsを参照し、それぞれのClipが複数のエレメンタリストリームを多重化する場合に、SubPathによって参照される1つのClip(SubClip)の複数のエレメンタリストリームの中から1つのエレメンタリストリームを特定するための、SubPathのSubPath_id、Clip id、およびパケットID(PID)とにより、2つのストリームをエントリーすることができる。例えば、メインパスが参照するオーディオストリームと、サブパスが参照するオーディオストリームとの2つのオーディオストリームをエントリーすることができる。なお、以下においては、メインパスが参照するオーディオストリームを1st オーディオストリームとも称し、サブパスが参照するオーディオストリームを2ndオーディオストリームとも称する。
このように、type(1乃至3の3つのtype)を使うことで、PlayItemとそれに関連付けられて再生される1つ以上のSubPathが用意されている場合に、このPlayItemが参照するClipと1つ以上のSubPathが参照するClipの中から1つのエレメンタリストリームを特定することができる。なお、type=1はMain Pathが参照するClip(メインClip)を示しており、type=2および3はSub Pathが参照するClip(サブClip)を示している。
また、type=3の場合、メインパスで参照されるメインClipAVストリームファイルのオーディオストリーム(1stオーディオストリーム)と、サブパスで参照されるオーディオストリーム(2ndオーディオストリーム)とを特定し、エントリーすることができる。
例えば、1stオーディオストリームと、2ndオーディオストリームとを合わせて(ミキシングして)再生することができる。
図14の第1のSTN_table()の説明に戻って、ビデオストリームID (video_stream_id)のforループの中で、順番にstream_entry()ごとに特定される1つのビデオエレメンタリストリームに、0からvideo_stream_idが与えられる。なお、ビデオストリームID(video_stream_id)の代わりに、ビデオストリーム番号(video_stream_number)を用いるようにしてもよい。この場合、video_stream_numberは、0ではなく1から与えられる。すなわち、video_stream_idの値に1を加算したものがvideo_stream_numberである。ビデオストリーム番号は、ビデオ切り替えに使われる、ユーザから見えるビデオストリーム番号であるので、1から定義される。
同様に、オーディオストリームID (audio_stream_id)のforループの中で、順番にstream_entry()ごとに特定される1つのオーディオエレメンタリストリームに、0からaudio_stream_idが与えられる。なお、ビデオストリームの場合と同様に、オーディオストリームID(audio_stream_id)の代わりに、オーディオストリーム番号(audio_stream_number)を用いるようにしてもよい。この場合、audio_stream_numberは、0ではなく1から与えられる。すなわち、audio_stream_idの値に1を加算したものがaudio_stream_numberである。オーディオストリーム番号は、音声切り替えに使われる、ユーザから見えるオーディオストリーム番号であるので、1から定義される。
同様に、字幕ストリームID (PG_txtST_stream_id)のforループの中で、順番にstream_entry()ごとに特定される1つのビットマップ字幕エレメンタリストリームまたはテキスト字幕に、0からPG_txtST_stream_idが与えられる。なお、ビデオストリームの場合と同様に、字幕ストリームID(PG_txtST_stream_id)の代わりに、字幕ストリーム番号(PG_txtST_stream_number)を用いるようにしてもよい。この場合、PG_txtST_stream_numberは、0ではなく1から与えられる。すなわち、PG_txtST_stream_idの値に1を加算したものがPG_txtST_stream_numberである。字幕ストリーム番号は、字幕切り替えに使われるユーザから見える字幕ストリーム番号(テキストサブタイトルストリームの番号)であるので、1から定義される。
同様に、グラフィックスストリームID (IG_stream_id)のforループの中で、順番にstream_entry()ごとに特定される1つのインタラクティブグラフィックスエレメンタリストリームに、0からIG_stream_idが与えられる。なお、ビデオストリームの場合と同様に、グラフィックスストリームID(IG_stream_id)の代わりに、グラフィックスストリーム番号(IG_stream_number)を用いるようにしてもよい。この場合、IG_stream_numberは、0ではなく1から与えられる。すなわち、IG_stream_idの値に1を加算したものがIG_stream_numberである。グラフィックスストリーム番号は、グラフィックス切り替えに使われるユーザから見えるグラフィックスストリーム番号であるので、1から定義される。
次に、図14の第1のSTN_table()のstream_attribute()について説明する。このstream_attributeでは、stream_entry()で特定されるストリームの属性情報が記録される。
ビデオストリームID (video_stream_id)のforループの中のstream_attribute()は、stream_entry()ごとに特定される1つのビデオエレメンタリストリームのストリーム属性情報を与える。すなわち、このstream_attribute()には、stream_entry()ごとに特定される1つのビデオエレメンタリストリームのストリーム属性情報が記述されている。
オーディオストリームID(audio_stream_id)のforループの中のstream_attribute()は、stream_entry()ごとに特定される少なくとも1つ以上のオーディオエレメンタリストリームのストリーム属性情報を与える。すなわち、このstream_attribute()には、stream_entry()ごとに特定される少なくとも1つ以上のオーディオエレメンタリストリームのストリーム属性情報が記述されている。具体的には、図15のstream_entry()においてtype=1またはtype=2である場合、このstream_entry()で特定されるオーディオエレメンタリストリームは1つであるので、stream_attribute()は、その1つのオーディオエレメンタリストリームのストリーム属性情報を与える。ここで、図15のstream_entry()においてtype=3である場合、このstream_entry()で特定されるオーディオエレメンタリストリームは2つ(メインパスで参照される1stオーディオストリームとサブパスで参照される2ndオーディオストリームの2つ)であるので、stream_attribute()は、2つのオーディオエレメンタリストリームのストリーム属性情報を与える。
このように、type=3である場合、すなわち、メインパスとサブパスの両方で、audio streamを参照する場合、stream_attributesも2本分挿入できるものとされている。すなわち、for文のaudio streamにおいて、stream_entry()でtype=3である場合、その後のstream_attributes()では、stream_attributes()が2つエントリーされる。
すなわち、図14の第1のSTN_table()では、オーディオストリームID (audio_stream_id)のstream_entry()ごとに、stream_attributes()が定義されるのであるが、type=3の場合、stream_entry()に対して、2つのstream_attributes()が与えられる。これにより、audio_stream_idひとつに対して、メインパスとサブパスにより参照される2つのstream_attributes()がエントリーされることになるので、同時に再生するオーディオストリームを2本エントリーすることが可能となる。
字幕ストリームID(PG_txtST_stream_id)のforループの中のstream_attribute()は、stream_entry()ごとに特定される1つのビットマップ字幕エレメンタリストリームまたはテキスト字幕エレメンタリストリームのストリーム属性情報を与える。すなわち、このstream_attribute()には、stream_entry()ごとに特定される1つのビットマップ字幕エレメンタリストリームのストリーム属性情報が記述されている。
同様に、グラフィックスストリームID(IG_stream_id)のforループの中のstream_attribute()は、stream_entry()ごとに特定される1つのインタラクティブグラフィックスエレメンタリストリームのストリーム属性情報を与える。すなわち、このstream_attribute()には、stream_entry()ごとに特定される1つのインタラクティブグラフィックスエレメンタリストリームのストリーム属性情報が記述されている。
なお、図14と図15の例では、メインパスで参照されるオーディオストリームとサブパスで参照されるオーディオストリームの2本のオーディオストリームをエントリーする場合について説明したが、2本のサブパスで参照される2本のオーディオストリームをエントリーすることができるようにした第2のSTN_table()のシンタクスと、第2のStream_entry()のシンタクスの例を、図16と図17に示す。なお、図中、図14および図15と対応する部分については、繰り返しになるのでその説明は省略する。
図16は、第2のSTN_table()のシンタクスを示す図である。第2のSTN_table()は、PlayItemの属性として設定されている。図17は、第2のStream_entry()のシンタクスを示す図である。
図17のtype=1では、PlayItemによって参照されるClip(Main Clip)の中に多重化されている複数のエレメンタリストリームの中から1つのエレメンタリストリームを特定するために、16ビットのパケットID(PID)が指定される。ref_to_stream_PID_of_mainClipが、このPIDを示している。すなわち、type=1では、メインClipAVストリームファイルの中のPIDを指定するだけでストリームが決定される。
type=2では、SubPathが一度に複数個のClipsを参照し、それぞれのClipが複数のエレメンタリストリームを多重化する場合に、SubPathによって参照される1つのClip(SubClip)の複数のエレメンタリストリームの中から1つのエレメンタリストリームを特定するために、そのSubPathのSubPath_id、Clip id、およびパケットID(PID)が指定される。ref_to_SubPath_idがこのSubPath_idを示し、ref_to_SubClip_entry_idがこのClip idを示し、ref_to_stream_PID_of_SubClipがこのPIDを示している。SubPlayItemの中で複数のClipが参照され、さらにこのClipに複数のエレメンタリストリームが参照されている場合に用いられる。
このように、type(type1とtype2の2つのtype)を使うことで、PlayItemとそれに関連付けられて再生される1つ以上のSubPathが用意されている場合に、このPlayItemが参照するClipと1つ以上のSubPathが参照するClipの中から1つのエレメンタリストリームを特定することができる。なお、type=1はMain Pathが参照するClip(メインClip)を示しており、type=2はSub Pathが参照するClip(サブClip)を示している。
図16の第2のSTN_table()の説明に戻って、オーディオストリームID (audio_stream_id)のforループの中で、順番にstream_entry()ごとに特定されるオーディオエレメンタリストリームに、0からaudio_stream_idが与えられる。ここでは、図14とは異なり、1番目のオーディオストリームのための(後述する図28の再生装置の1stオーディオデコーダ75−1がデコードする)Stream_entry()とStream_attributes()の後に、2番目のオーディオストリームを定義するか否かを示すsecondary_audio_present_flagが設けられている。2番目のオーディオストリーム(Secondary Audio Stream)を定義する場合、このsecondary_audio_present_flagの値が1にセットされ、その後に記述されているif文の中のStream_entry()、Stream_attributes()にて、2番目のオーディオストリームが定義される。Secondary_audio_present_flagが1である場合、オーディオストリームID (audio_stream_id)のforループの中に、2つのstream_entry()が定義されているので、2つのstream_entry()のそれぞれにより特定される2つのオーディオエレメンタリストリームに、0からaudio_stream_idが与えられる。なお、ビデオストリームの場合と同様に、オーディオストリームID(audio_stream_id)の代わりに、オーディオストリーム番号(audio_stream_number)を用いるようにしてもよい。この場合、audio_stream_numberは、0ではなく1から与えられる。すなわち、audio_stream_idの値に1を加算したものがaudio_stream_numberである。オーディオストリーム番号は、音声切り替えに使われる、ユーザから見えるオーディオストリーム番号であるので、1から定義される。
また、Secondary Audio Streamがエントリーされない場合(すなわち、2つ目のstream_entry()がエントリーされない場合)もあり、その場合には、secondary_audio_present_flagが0とされ、1番目のオーディオストリーム(Main Audio Stream)のみがエントリーされる。すなわち、2つ目のオーディオストリームがない場合には、2つ目のStream_entry()がエントリーされないことになる。この場合、2本のオーディオのミキシング再生は行われない。
オーディオストリームID(audio_stream_id)のforループには、stream_entry()とstream_attribute()との組み合わせが2つ記述されている。最初のstream_entry()とstream_attribute()との組み合わせは、後述する図28の再生装置1の1stオーディオデコーダ75−1でデコードされるオーディオストリームのための定義であり、secondary_audio_present_flagが1である場合にエントリーされる2番目のstream_entry()とstream_attribute()との組み合わせは、後述する図28の再生装置1の2ndオーディオデコーダ75−2でデコードされるオーディオストリームのための定義である。すなわち、2つのオーディオストリームを定義することができる。
オーディオストリームID(audio_stream_id)のforループの中のstream_attribute()は、stream_entry()ごとに特定される少なくとも1つ以上のオーディオエレメンタリストリームのストリーム属性情報を与える。すなわち、このstream_attribute()には、stream_entry()ごとに特定される少なくとも1つ以上のオーディオエレメンタリストリームのストリーム属性情報が記述されている。具体的には、図16のsecondary_audio_present_flagが1である場合、2つのstream_entry()で特定されるオーディオエレメンタリストリームは2つであるので、stream_attribute()は、それぞれ対応するオーディオエレメンタリストリームのストリーム属性情報を与える。すなわち、オーディオストリームID(audio_stream_id)のforループの中の最初のstream_entry()により、後述する図28の再生装置1の1stオーディオデコーダ75−1でデコードされるオーディオストリーム(Main Audio Stream)が定義され、これにより特定されるオーディオエレメンタリストリームのストリーム属性情報が、オーディオストリームID(audio_stream_id)のforループの中の最初のstream_attribute()により与えられる。同様にして、secondary_audio_present_flagが1である場合、オーディオストリームID(audio_stream_id)のforループの中の次の(2番目)のstream_entry()により、後述する図28の再生装置1の2ndオーディオデコーダ75−2でデコードされるオーディオストリーム(Secondary Audio Stream)が定義され、これにより特定されるオーディオエレメンタリストリームのストリーム属性情報が、オーディオストリームID(audio_stream_id)のforループの中の2番目のstream_attribute()により与えられる。
例えば、オーディオストリームID(audio_stream_id)のforループの中の最初のstream_entry()により定義されるオーディオストリームは、例えば、映画の日本語吹き替えの音声や、英語の音声とされ、オーディオストリームID(audio_stream_id)のforループの中のsecondary_audio_present_flagが1である場合、2番目のstream_entry()により定義されるオーディオストリームは、例えば、映画のディレクターズカット用の音声と想定され、Main Pathにより参照されるAVストリームファイルの所定の部分にのみ、映画監督などのコメントが入っている場合などに用いられることが考えられる。
すなわち、2つのオーディオストリームを合成する場合には、Primary(1st)のオーディオストリームに合成すべきオーディオストリームが存在することを示すフラグである、図16のsecondary_audio_present_flagに1がセットされ、合成すべきオーディオストリームのstream_entry(), stream_attribute()が参照されて、オーディオストリームの合成が行われる。
詳しくは、合成する一方のオーディオストリームを、メインパスで参照されるオーディオストリーム(後述する図28の再生装置1の1stオーディオデコーダ75−1でデコードされるMain Audio Stream)とし、他方をサブパスで参照されるオーディオストリーム(後述する図28の再生装置1の2ndオーディオデコーダ75−2でデコードされるSecondary Audio Stream)とした場合、図16の最初のstream_entry()のtypeの値が、type=1とされ、それにより特定されるオーディオエレメンタリストリームのストリーム属性情報がstream_attribute()により与えられ、図16のsecondary_audio_present_flagが1とされ、2番目のstream_entry()のtypeの値が、type=2とされ、それにより特定されるオーディオエレメンタリストリームのストリーム属性情報がstream_attribute()により与えられる。
また、合成するオーディオストリームを、2つとも、サブパスで参照されるオーディオストリームとした場合、図16のオーディオストリームID(audio_stream_id)のforループの中の最初のstream_entry()のtypeの値が、type=2とされ、それにより特定されるオーディオエレメンタリストリームのストリーム属性情報がstream_attribute()により与えられ、図16のオーディオストリームID(audio_stream_id)のforループの中のsecondary_audio_present_flagが1とされ、2番目のstream_entry()のtypeの値が、type=2とされ、それにより特定されるオーディオエレメンタリストリームのストリーム属性情報がstream_attribute()により与えられる。すなわち、合成するオーディオストリームを、2つともサブパスで参照されるオーディオストリームとする場合、図17のstream_entry()のtypeは、いずれも2とされる。
このように、オーディオストリーム(又はビデオストリーム)をそれぞれサブパスで指定する形で追加することとしたため、ディスク上にあるオーディオストリーム(又はビデオストリーム)と、ダウンロード等により取得したまたはローカルストレージ上にあるオーディオストリーム(又はビデオストリーム)とを同期して再生することができると共に、共にダウンロード等により取得したオーディオストリーム同士(又はビデオストリーム同士)を、ディスク上のまたは取得したビデオストリーム(又はオーディオストリーム)と同期して再生することができる。
なお、PlayListも取得するようにすれば、メインパスにより指定される取得したビデオストリーム(又はオーディオストリーム)と、サブパスにより指定される取得した2本のオーディオストリーム(又はビデオストリーム)を同期して再生することもできる。
なお、メインパスで参照されるオーディオのみを再生、もしくは、1つのサブパスで指定されるオーディオのみを再生する場合には、図16のsecondary_audio_present_flagに0がセットされ、最初のstream_entry()でメインパスで参照される場合にはtype=1とし、サブパスで指定されるオーディオのみを再生する場合にはtype=2として、それにより特定されるオーディオエレメンタリストリームのストリーム属性情報がstream_attribute()により与えられる。すなわち、ミキシングせずに1つのオーディオストリームのみを再生することもできる。
このように、図16では、stream_entry()とstream_attributesとを、2本のオーディオエレメンタリストリームの分だけ挿入できるものとされている。すなわち、for文のaudio streamにおいて、2つのstream_entry()を用いて、それぞれ対応するstream_attributes()をエントリーすることができる。
すなわち、図16の第2のSTN_table()では、オーディオストリームID (audio_stream_id)の2つのstream_entry()によって、それぞれ対応するstream_attributes()が定義される。これにより、audio_stream_idひとつに対して、メインパスとサブパスにより参照される、または、2つのサブパスにより参照される2つのstream_entry()とstream_attributes()の組み合わせがエントリーされることになるので、同時に再生するオーディオストリームを2本エントリーすることが可能となる。
なお、図16のビデオストリームID(video_stream_id)、字幕ストリームID (PG_txtST_stream_id)、グラフィックスストリームID (IG_stream_id)については、図14と同様である。
次に、stream_attribute()のシンタクスについて図18を参照して説明する。
lengthは、このlengthフィールドの直後からstream_attribute()の最後までのバイト数を示す16ビットの符号なし整数である。
stream_coding_typeは、図19に示されるようにエレメンタリストリームの符号化タイプを示す。エレメンタリストリームの符号化タイプとしては、MPEG-2 video stream、HDMV LPCM audio、Dolby AC-3 audio、dts audio、Presentation graphics stream、Interactive graphics stream、およびText subtitle streamが記述される。なお、このstream_coding_typeを拡張し、MPEG−4 AVC、VC−1等の他のコーディックにより圧縮されたビデオストリームを扱えるようにしてもよい。
video_formatは、図20に示されるようにビデオエレメンタリストリームのビデオフォーマットを示す。ビデオエレメンタリストリームのビデオフォーマットとしては、480i、576i、480p、1080i、720p、および1080pが記述される。
frame_rateは、図21に示されるように、ビデオエレメンタリストリームのフレームレートを示す。ビデオエレメンタリストリームのフレームレートとしては、24000/1001、24、25、30000/1001、50、および60000/1001が記述される。
aspect_ratioは、図22に示されるようにビデオエレメンタリストリームのアスペクト比情報を示す。ビデオエレメンタリストリームのアスペクト比情報としては、4:3 display aspect ratio、および16:9 display aspect ratioが記述される。
audio_presentation_typeは、図23に示されるようにオーディオエレメンタリストリームのプレゼンテーションタイプ情報を示す。オーディオエレメンタリストリームのプレゼンテーションタイプ情報としては、single mono channel、dual mono channel、stereo(2-channel)、およびmulti-channelが記述される。
sampling_frequencyは、図24に示されるようにオーディオエレメンタリストリームのサンプリング周波数を示す。オーディオエレメンタリストリームのサンプリング周波数としては、48kHz、および96kHzが記述される。
audio_language_codeは、オーディオエレメンタリストリームの言語コード(日本語、韓国語、中国語など)を示す。
PG_language_codeは、ビットマップ字幕エレメンタリストリームの言語コード(日本語、韓国語、中国語など)を示す。
IG_language_code、インタラクティブグラフィックスエレメンタリストリームの言語コード(日本語、韓国語、中国語など)を示す。
textST_language_codeは、テキスト字幕エレメンタリストリームの言語コード(日本語、韓国語、中国語など)を示す。
character_codeは、図25に示されるようにテキスト字幕エレメンタリストリームのキャラクタコードを示す。テキスト字幕エレメンタリストリームのキャラクタコードとしては、Unicode V1.1(ISO 10646-1)、Shift JIS(Japanese)、KSC 5601-1987 including KSC 5653 for Roman character(Korean)、GB 18030-2000(Chinese)、GB2312(Chinese)、およびBIG5(Chinese)が記述される。
以下に、図18のstream_attribute()のシンタクスについて、図18と、図19乃至図25を用いて具体的な例を説明する。
エレメンタリストリームの符号化タイプ(図18のstream_coding_type)がMPEG-2 video stream(図19)である場合、stream_attribute()には、そのエレメンタリストリームのビデオフォーマット(図20)、フレームレート(図21)、およびアスペクト比情報(図22)が含まれる。
エレメンタリストリームの符号化タイプ(図18のstream_coding_type)がHDMV LPCM audio、Dolby AC-3 audio、またはdts audio(図19)である場合、stream_attribute()には、そのオーディオエレメンタリストリームのプレゼンテーションタイプ情報(図23)、サンプリング周波数(図24)、および言語コードが含まれる。
エレメンタリストリームの符号化タイプ(図18のstream_coding_type)がPresentation graphics stream(図19)である場合、stream_attribute()には、そのビットマップ字幕エレメンタリストリームの言語コードが含まれる。
エレメンタリストリームの符号化タイプ(図18のstream_coding_type)がInteractive graphics stream(図19)である場合、stream_attribute()には、そのインタラクティブグラフィックスエレメンタリストリームの言語コードが含まれる。
エレメンタリストリームの符号化タイプ(図18のstream_coding_type)がText subtitle stream(図19)である場合、stream_attribute()には、そのテキスト字幕エレメンタリストリームのキャラクタコード(図25)、言語コードが含まれる。
なお、これらの属性情報はこれに限定されない。
このように、PlayItemとそれに関連付けられて再生される1つ以上のSubPathが用意されている場合に、このPlayItemが参照するClipと1つ以上のSubPathが参照するClipの中から、stream_entry()によって特定されたエレメンタリストリーム(type=1とtype=2の場合は1つ、type=3の場合は2つ)の属性情報をstream_attribute()によって知ることができる。
再生装置は、この属性情報(stream_attribute())を調べることによって、そのエレメンタリストリームを自分自身が再生する機能を持っているか否かを調べることができる。
また、再生装置は、この属性情報を調べることによって、再生装置の言語設定の初期情報に対応したエレメンタリストリームの選択することができる。
例えば、再生装置が、ビットマップ字幕エレメンタリストリームの再生機能だけを有し、テキスト字幕エレメンタリストリームの再生機能を有していない場合を想定する。この再生装置に対して、ユーザが言語切り替えを指示した場合、再生装置は、字幕ストリームID (PG_txtST_stream_id)のforループの中から、ビットマップ字幕エレメンタリストリームだけを順次選択して、再生する。
また、例えば、再生装置の言語設定の初期情報が日本語である場合を想定する。この再生装置に対して、ユーザが副音声(すなわちSecondary audio)への切り替えまたは、主音声と副音声とのミキシング再生を指示した場合、再生装置は、副音声として用意されているオーディオストリームID (Audio stream id)のforループの中から、言語コードが日本語であるオーディオエレメンタリストリームだけを順次選択して、再生する。
さらに、例えば、メインパスにより参照される、ビデオストリームとオーディオストリームからなるAVストリーム(映画)を再生する場合、再生装置に対して、ユーザが音声の切り替えを指令し、サブパスにより参照されるオーディオストリーム(監督や出演者によるコメント)とのミキシング再生が指令された場合、再生装置は、メインパスにより参照される1stオーディオストリームに、さらに、サブパスにより参照される2ndオーディオストリームをミキシング(重畳)して、ビデオストリームとともに再生する。
また、例えば、ユーザが音声の切り替えを指令し、2つのサブパスにより参照される2つのオーディオストリームのミキシング再生が再生装置に対して指令された場合(図16と図17のシンタクスが用いられ、図16のsecondary_audio_present_flagが1とされ、図17のtypeがともに2とされているオーディオストリームIDに対応するオーディオストリームの再生が指令された場合)、再生装置は、2つのサブパスによりそれぞれ参照される2つのオーディオストリームをミキシング(重畳)して、ビデオストリームとともに再生する。
このようにして、PlayItem()の中にSTN_table()を設けることにより、PlayItemとそれに関連付けられて再生される1つ以上のSubPathが用意されている場合に、ユーザによる音声切り替えや字幕切り替えという操作により、このPlayItemが参照するClipと1つ以上のSubPathが参照するClipの中から再生されるストリームを選ぶことができる仕組みが提供されるので、再生するAVストリームとは異なるストリームやデータファイルに対しても、インタラクティブな操作を行うことができる。
また、1つのPlayListの中にSubPathを複数使用し、それぞれのSubPathがそれぞれSubPlayItemを参照する構成としたので、拡張性の高い、また、自由度の高いAVストリームを実現することができる。すなわち、このPlayListにより再生されるコンテンツにおいて、後で、SubPlayItemを追加できる構成とすることができる。例えば、Main Pathが参照するClipAVストリームファイルと、これに対応付けられるPlayListがあり、このPlayListが新たなSub Pathを追加したPlayListに書き換えられた場合、新たなPlayListに基づいて、Main Pathが参照するClipAVストリームファイルとともに、Main Pathが参照するClipAVストリームファイルとは異なるClipAVストリームファイルを参照して、再生を行うことができる。このように、拡張性を有する構成とすることができる。
さらに、PlayItem()の中のSTN_table()は、このPlayItemとそれに関連付けられて再生される1つ以上のSubPathが用意されている場合に、2つのSubPathが参照するClipのオーディオストリームをミキシングして再生することができる仕組みを提供するようにしたので(図16と図17)、1stオーディオデコーダ75−1でデコードされるオーディオストリーム(例えば、映画の日本語吹き替え音声)と、2ndオーディオデコーダ75−2でデコードされるオーディオストリーム(例えば、監督のディレクターズカット)との重畳再生に対しても、インタラクティブな操作を行うことができる。
また、PlayItem()の中にSTN_table()が設けられることにより、PlayItemとそれに関連付けられて再生される1つ以上のSubPathが用意されている場合に、このPlayItemが参照するClipの1stオーディオストリームと、SubPathが参照するClipの2ndオーディオストリームとをミキシングして再生することができる仕組みが提供されるので、ユーザは、メインClipAVストリームとは異なるオーディオストリーム(2ndオーディオストリーム、例えば、監督のコメントのストリーム)の重畳再生に対しても、インタラクティブな操作を行うことができる。
具体的な例を、図26を参照して説明する。図26は、ユーザに提供する音声信号と字幕信号の関係を表すストリームナンバーテーブルの例を示す図である。図26は、図16と図17の第2のSTN_tableと第2のStream_entry()に対応する場合の例である。
図26においては、音声番号をA_SN(Audio Stream Number)と称し、字幕番号をS_SN(SubPicture Stream Number)と称する。図26においては、PlayListのMain Pathで参照されるメインClipAVストリームの複数のオーディオストリームと、Sub Pathで参照されるサブClipAVストリームのオーディオストリームのそれぞれにA_SNが与えられている。すなわち、A_SN=1にMain Pathで参照されるオーディオストリームであるオーディオ2が与えられ、A_SN=2にSub Pathで参照されるオーディオストリームであるオーディオ1が与えられ、A_SN=3にMain Pathで参照されるオーディオストリームであるオーディオ3が与えられている。
また、PlayListのSubPathで参照されるオーディオストリームが、A_SN=1乃至3で与えられるオーディオストリームオーディオストリームのそれぞれとミキシング再生可能なように、A_SNが与えられている。すなわち、A_SN=4にオーディオ2+Sub Pathで参照されるオーディオストリームであるオーディオ4が与えられ、A_SN=5にSub Pathで参照されるオーディオストリームであるオーディオ1+Sub Pathで参照されるオーディオストリームであるオーディオ4が与えられている。すなわち、A_SN=4では、メインパスにより参照されるオーディオストリームと、サブパスにより参照されるオーディオストリームのミキシング再生のためのA_SNが与えられ、A_SN=5では、2つのサブパスにより参照される2つのオーディオストリームのミキシング再生のためのA_SNが与えられている。
また、PlayListのMain Pathで参照されるメインClipAVストリームの複数のサブピクチャストリームのそれぞれに、S_SNが与えられている。すなわち、S_SN=1にサブピクチャ3が与えられ、S_SN=2にサブピクチャ1が与えられ、S_SN=3にサブピクチャ2が与えられる。ここでは、A_SNやS_SNの番号が小さい程、ユーザに提供される音声信号やサブピクチャの優先度が高い。すなわち、A_SN=1はデフォルトで再生されるオーディオストリームであり、S_SN=1はデフォルトで再生されるサブピクチャストリームである。
具体的には、再生装置の言語設定の初期情報に基づいて再生される音声は、A_SN=1であるオーディオ2(図26)に対応しており、音声が切り替えられた後、再生される音声は、A_SN=2であるオーディオ1(図26)に対応している。
このようなストリームナンバーテーブルを提供するために、まず、PlayList()で参照されるPlayItem()の中のSTN table()において、PlayItemのメインパスで「オーディオ1,またはオーディオ3」と、「サブピクチャ1、サブピクチャ2、またはサブピクチャ3」とを参照できる構成とし、さらに、PlayItemに関連付けられて再生されるサブパス(PlayListで参照されるSubPath())で「オーディオ2、またはオーディオ4」を参照できる構成とする。そして、STN table()(図16)のaudio_stream_id=0(A_SN=1)でオーディオ2(type=1)を与え、audio_stream_id=1(A_SN=2)でオーディオ1(type=2)を与え、audio_stream_id=2(A_SN=3)でオーディオ3(type=1)を与え、audio_stream_id=3(A_SN=4)でオーディオ2とオーディオ4(type=1とtype=2)を与え、audio_stream_id=4(A_SN=5)でオーディオ1とオーディオ4(type=2とtype=2)を与える。
すなわち、audio_stream_id=3(A_SN=4)の場合、図16のオーディオストリームIDに対応する最初のstream_entry()とstream_attributes()とにより、メインパスが参照するオーディオストリーム(type=1)が登録され、その後のsecondary_audio_present_flagが1とされ、2番目のstream_entry()とstream_attributes()により、サブパスが参照するオーディオストリーム(type=2)が登録される。このとき、audio_stream_idを用いて、メインパスが参照するオーディオストリームとサブパスが参照するオーディオストリームとの組み合わせを定義することができる。すなわち、矛盾するような組み合わせを定義せずに済むので、ユーザは、常に再生可能なオーディオストリームの組み合わせを選択することができる。すなわち、図26の例においては、矛盾するオーディオストリームの組み合わせであるオーディオ2+オーディオ3を定義しないようにすることで、ユーザに、選択可能なもののみを提供することができる。
このように、PlayItem()の中のSTN table()(図16)のstream_entry()(図17)で、メインパスで参照される1stオーディオストリームと、サブパスで参照される2ndオーディオストリームとをエントリー(登録)することが可能な構成とし(secondary_audio_present_flagを設け)、さらに、audio_stream_idを用いて、1stオーディオストリームと2ndオーディオストリームとを組み合わせて提供する構成としたので、2つのオーディオストリームをミキシングして再生することができる。すなわち、複数の種類からなるストリームから、同じ種類(この例の場合、オーディオストリーム)のストリームをミキシング(重畳、または合成)して、同時に再生することができる。
また、audio_stream_id=4(A_SN=5)の場合、図16のオーディオストリームIDに対応する最初のstream_entry()およびstream_attributes()、secondary_audio_present_flag、並びに、2番目のstream_entry()およびstream_attributes()とにより、2つのサブパスが参照する2つのオーディオストリーム(いずれもtype=2)が登録される。
このとき、audio_stream_idを用いて、2つのサブパスが参照する2本のオーディオストリームの組み合わせを定義することができる。すなわち、矛盾するような組み合わせを定義せずに済むので、ユーザは、常に再生可能なオーディオストリームの組み合わせを選択することができる。
このように、PlayItem()の中のSTN table()(図16)のstream_entry()(図17)で、2つのサブパスで参照される2本のオーディオストリームとをエントリー(登録)することが可能な構成とし、さらに、audio_stream_idを用いて、2本のオーディオストリームの組み合わせを提供する構成としたので、2つのオーディオストリームをミキシングして再生することができる。すなわち、複数の種類からなるストリームから、同じ種類(この例の場合、オーディオストリーム)のストリームをミキシング(重畳、または合成)して、同時に再生することができる。
また、ミキシングする2つのオーディオストリームを個々に選ぶ必要がなく、2つのオーディオストリームが組み合わせられたものの中から、再生するオーディオストリームを選択することができる。
なお、図14と図15のシンタクスにおいても、図26のメインパスで参照される1stオーディオストリームとサブパスで参照される2ndオーディオストリームとの組み合わせ(audio_stream_id=3(A_SN=4))は定義可能である。この場合、図14のstream_entry()にtype=3でメインパスが参照するオーディオストリームとサブパスが参照するオーディオストリームとを登録し、これに伴い、stream_attributes()も2本挿入する。このように、PlayItem()の中のSTN table()(図14)のstream_entry()(図15)で、メインパスで参照される1stオーディオストリームと、サブパスで参照される2ndオーディオストリームとをエントリー(登録)することが可能な構成とし(type=3を設けた)、さらに、audio_stream_idを用いて、1stオーディオストリームと2ndオーディオストリームとを組み合わせて提供する構成としたので、2つのオーディオストリームをミキシングして再生することができる。すなわち、複数の種類からなるストリームから、同じ種類(この例の場合、オーディオストリーム)のストリームをミキシング(重畳、または合成)して、同時に再生することができる。
次に、本発明を適用した再生装置の第1の構成例について説明する。図27は、本発明を適用した再生装置1の構成例を示すブロック図である。この再生装置1は、上述したメインパスとサブパスを有するPlayListを再生する再生装置1である。
コントローラ21は、予め用意されている制御プログラムを実行するか、または、ストレージドライブ22を制御して、例えば、光ディスクなどの記録媒体11に記録されている、または、ローカルストレージ24に記録されているナビゲーションプログラムを読み出し、メモリ23に展開して実行することで、再生装置1の全体の動作を制御する。例えば、コントローラ21は、記録媒体11が装着されたとき、所定のメニュー画面を外部の表示装置に表示させることができる。
ストレージドライブ22は、コントローラ21による制御に従って記録媒体11からデータを読み出し、読み出したデータを、コントローラ21、メモリ23、または、AVデコーダ部26に出力する。記録媒体11から読み出された情報が、ナビゲーションプログラムやPlayListなどであった場合、ストレージドライブ22により読み出された情報は、コントローラ21、または、メモリ23に出力される。記録媒体11から読み出された情報が、AVストリームやテキストデータであった場合、ストレージドライブ22により読み出された情報は、AVデコーダ部26に出力される。
メモリ23は、コントローラ21が各種の処理を実行する上において必要なデータなどを適宜記憶する。さらに、メモリ23の記憶領域の一部には、再生装置1の再生処理において必要な情報が設定される各種のレジスタが設けられている。ローカルストレージ24は、例えば、HDD(Hard Disk Drive)などより構成される。
インターネットインタフェース25は、有線または無線によりネットワーク2に接続されており、コントローラ21からの制御に従って、ネットワーク2を介して、サーバ3との間で通信を行い、サーバ3からダウンロードされたデータをローカルストレージ24に供給する。サーバ3からは、例えば、そのとき再生装置1に装着されている記録媒体11に記録されている、図5を用いて説明したデータをアップデートさせるデータがコンテンツとしてダウンロードされる。ローカルストレージ24は、サーバ3からネットワーク2経由でダウンロードしたコンテンツを記録することができる。
AVデコーダ部26は、ストレージドライブ22、または、ローカルストレージ24から供給されるAVストリーム、または、テキストデータをデコードし、得られたビデオ信号とオーディオ信号を外部の表示装置に出力する。表示装置においては、AVデコーダ部26によりデコードされた信号に基づいて、例えば、記録媒体11に記録されているコンテンツの出力(映像の表示、音声の出力)が行われる。
操作入力部29は、例えば、ボタン、キー、タッチパネル、ジョグダイヤル、マウスなどの入力デバイスや、所定のリモートコマンダから送信される赤外線などの信号を受信する受信部により構成され、ユーザの操作入力を取得し、コントローラ21に供給する。
また、コントローラ21には、必要に応じてドライブ27も接続されており、ドライブ27には、例えば、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disk-Read Only Memory),DVDを含む)、光磁気ディスク(MD(登録商標)(Mini-Disk)を含む)、もしくは半導体メモリなどよりなるリムーバブルメディア28が装着される。
図28は、図27の再生装置1のAVデコーダ部26の構成例を示すブロック図である。
図28の例の場合、最初に、コントローラ21がストレージドライブ22、または、ローカルストレージ24からPlayListファイルを読み出し、PlayListファイルの情報に基づいて、ストレージドライブ22を介してHDD、Blu−ray Disc(商標)、またはDVDなどの記録媒体11から、または、ローカルストレージ24から、AVストリームやAVデータを読み出す。ユーザは、操作入力部29を用いて、コントローラ21に対し、音声や字幕などの切り替えの指令を行うことができる。また、コントローラ21は、メモリ23のレジスタに登録されている再生装置1の言語設定の初期情報を含む各種設定情報を読み込む。
PlayListファイルには、Main Path、Sub Pathの情報の他、STN_table()が含まれている。コントローラ21は、PlayListファイルに含まれるPlayItemが参照するメインClip AVストリームファイル、SubPlayItemが参照するサブClip AVストリームファイル、およびSubPlayItemが参照するテキストサブタイトルデータを、ストレージドライブ22を介して記録媒体11またはローカルストレージ24から読み出す。ここで、PlayItemが参照するメインClip AVストリームファイルとSubPlayItemが参照するサブClip AVストリームファイルとが、異なる記録媒体に記録されていてもよい。例えば、メインClip AVストリームファイルが記録媒体11に記録されており、対応するサブClip AVストリームファイルは図示せぬネットワーク2を介して供給され、HDDなどのローカルストレージ24に記憶されたものであってもよい。また、コントローラ21は、メモリ23のレジスタに登録されている各種設定情報を参照して、自分自身(再生装置1)の再生機能に対応するエレメンタリストリームを選択し、再生するよう制御したり、再生装置1の言語設定の初期情報に対応するエレメンタリストリームを選択し、再生するよう制御する。
AVデコーダ部26には、バッファ51乃至54、PIDフィルタ55、PIDフィルタ56、スイッチ57乃至59、バックグラウンドデコーダ71、MPEG(Moving Picture Experts Group)2ビデオデコーダ72、プレゼンテーショングラフィックスデコーダ73、インタラクティブグラフィックスデコーダ74、1stオーディオデコーダ75−1、2ndオーディオデコーダ75−2、Text-STコンポジション76、スイッチ77、バックグラウンドプレーン生成部91、ビデオプレーン生成部92、プレゼンテーショングラフィックスプレーン生成部93、インタラクティブグラフィックスプレーン生成部94、バッファ95、ビデオデータ処理部96、ミキシング処理部97、およびミキシング処理部98が設けられている。1stオーディオデコーダ75−1と2ndオーディオデコーダ75−2は、ともにオーディオストリームをデコードする。1stオーディオデコーダ75−1は、2ndオーディオデコーダ75−2よりも優先的に使用されるオーディオデコーダである。すなわち、デコードするオーディオストリームが1つしかない場合、そのオーディオストリームがメインClip AVストリームファイルに含まれるオーディオストリームであっても、サブClip AVストリームファイルに含まれるオーディオストリームであっても、1stオーディオデコーダ75−1でデコードされる。すなわち、再生装置1は、2つのオーディオストリームをデコードするために、2つのオーディオデコーダ(1stオーディオデコーダ75−1、2ndオーディオデコーダ75−2)を有している。なお、以下において、1stオーディオデコーダ75−1と2ndオーディオデコーダ75−2とを個々に区別しない場合、オーディオデコーダ75と称する。
コントローラ21により読み出されたファイルデータは、図示せぬ復調、ECC復号部により、復調され、復調された多重化ストリームに誤り訂正が施される。スイッチ32は、復調され、誤り訂正が施されたデータを、コントローラ21からの制御に基づいて、ストリームの種類ごとに選択し、対応するバッファ51乃至54に供給する。具体的には、スイッチ32は、コントローラ21からの制御に基づいて、バックグラウンドイメージデータをバッファ51に供給し、メインClip AVストリームファイルのデータをバッファ52に供給し、サブClipのデータをバッファ53に供給し、Text-STのデータをバッファ54に供給するようスイッチ32を切り替える。バッファ51は、バックグラウンドイメージデータをバッファリングし、バッファ52は、メインClip AVストリームファイルのデータをバッファリングし、バッファ53は、サブClip AVストリームファイルのデータをバッファリングし、バッファ54は、Text-STデータをバッファリングする。
メインClip AVストリームファイルは、ビデオとオーディオとビットマップ字幕(Presentation Graphics stream)とインタラクティブグラフィックスのうち、ビデオに加えて1つ以上のストリームを多重化したストリーム(例えばトランスポートストリーム)である。サブClip AVストリームファイルは、オーディオとビットマップ字幕(Presentation Graphics stream)とインタラクティブグラフィックスとオーディオのうち、1つ以上のストリームを多重化したストリームである。なお、テキストサブタイトルデータファイル(Text-ST)のデータは、トランスポートストリームのような多重化ストリームの形式であっても、そうでなくてもよい。
また、メインClip AVストリームファイルとサブClip AVストリームファイルおよびテキストサブタイトルデータを、ストレージドライブ22(記録媒体11)から読み出すときに、それぞれのファイルを時分割に交互に読み出しても良いし、または、サブClip AVストリームファイルやテキストサブタイトルデータをメインClipから読み出す前に、すべてバッファ(バッファ53またはバッファ54)へプリロードしてもよい。
再生装置1は、これらのファイルのデータを、ストレージドライブ22を介して記録媒体11から読み出し、ビデオ、ビットマップ字幕、インタラクティブグラフィックス、およびオーディオを再生する。
具体的には、メインClip AVストリームファイル用リードバッファであるバッファ52から読み出されたストリームデータは、所定のタイミングで、後段のPID(パケットID)フィルタ55へ出力される。このPIDフィルタ55は、入力されたメインClip AVストリームファイルをPID(パケットID)に応じて、後段の各エレメンタリストリームのデコーダへ振り分けて出力する。すなわち、PIDフィルタ55は、ビデオストリームをビデオデコーダ72に供給し、プレゼンテーショングラフィックスストリームをプレゼンテーショングラフィックスデコーダ73への供給元となるスイッチ57に供給し、インタラクティブグラフィックスストリームをインタラクティブグラフィックスデコーダ74への供給元となるスイッチ58に供給し、オーディオストリームを1stオーディオデコーダ75−1への供給元となるスイッチ59に供給する。
プレゼンテーショングラフィックスストリームは、例えば、ビットマップの字幕データであり、テキストサブタイトルデータは、例えば、テキスト字幕データである。
サブClip AVストリームファイル用リードバッファであるバッファ53から読み出されたストリームデータは、所定のタイミングで、後段のPID(パケットID)フィルタ56へ出力される。このPIDフィルタ56は、入力されたサブClip AVストリームファイルをPID(パケットID)に応じて、後段の各エレメンタリストリームのデコーダへ振り分けて出力する。すなわち、PIDフィルタ56は、プレゼンテーショングラフィックスストリームをプレゼンテーショングラフィックスデコーダ73への供給元となるスイッチ57に供給し、インタラクティブグラフィックスストリームをインタラクティブグラフィックスデコーダ74への供給元となるスイッチ58に供給し、メインClipのオーディオストリームとサブClip AVストリームファイルのオーディオストリームを1stオーディオデコーダ75−1と2ndオーディオデコーダ75−2への供給元となるスイッチ59に供給する。
バックグラウンドイメージデータをバッファリングするバッファ51から読み出されたデータは、所定のタイミングでバックグラウンドデコーダ71に供給される。バックグラウンドデコーダ71は、バックグラウンドイメージデータをデコードし、デコードしたバックグラウンドイメージデータをバックグラウンドプレーン生成部91に供給する。
PIDフィルタ55により振り分けられたビデオストリームは、後段のビデオデコーダ72に供給される。ビデオデコーダ72は、ビデオストリームをデコードし、デコードしたビデオデータをビデオプレーン生成部92へ出力する。
スイッチ57は、PIDフィルタ55から供給されたメインClip AVストリームファイルに含まれるプレゼンテーショングラフィックスストリームと、サブClip AVストリームファイルに含まれるプレゼンテーショングラフィックスストリームのうちのいずれか1つを選択し、選択したプレゼンテーショングラフィックスストリームを、後段のプレゼンテーショングラフィックスデコーダ73に供給する。プレゼンテーショングラフィックスデコーダ73は、プレゼンテーショングラフィックスストリームをデコードし、デコードしたプレゼンテーショングラフィックスストリームのデータをプレゼンテーショングラフィックスプレーン生成部93への供給元となるスイッチ77に供給する。
また、スイッチ58は、PIDフィルタ55から供給されたメインClip AVストリームファイルに含まれるインタラクティブグラフィックスストリームと、サブClip AVストリームファイルに含まれるインタラクティブグラフィックスストリームのうちのいずれか1つを選択し、選択したインタラクティブグラフィックスストリームを、後段のインタラクティブグラフィックスストリームデコーダ74に供給する。すなわち、インタラクティブグラフィックスデコーダ74へ同時に入力されるインタラクティブグラフィックスストリームは、メインClip AVストリームファイルまたはサブClip AVストリームファイルのどちらかから分離されたストリームである。インタラクティブグラフィックスデコーダ74は、インタラクティブグラフィックスストリームをデコードし、デコードしたインタラクティブグラフィックスストリームのデータを、インタラクティブグラフィックスプレーン生成部94に供給する。
さらに、スイッチ59は、PIDフィルタ55から供給されたメインClip AVストリームファイルに含まれるオーディオストリームと、サブClip AVストリームファイルに含まれるオーディオストリームのうちのいずれか1つを選択し、選択したオーディオストリームを、後段の1stオーディオデコーダ75−1または、2ndオーディオデコーダ75−2に供給する。ここで、1stオーディオデコーダ75−1へ同時に入力されるオーディオストリームは、メインClip AVストリームファイルまたはサブClip AVストリームファイルのどちらかから分離されたストリームである。また、2ndオーディオデコーダ75−2へ同時に入力されるオーディオストリームは、サブClipから分離されたストリームである。
具体的には、スイッチ59は、図15または図17のstream_entry()のtypeの値によって、その選択を切り替える。例えば、type=1である場合、スイッチ59は、PIDフィルタ55を介して供給されるメインClip AVストリームファイルのオーディオストリームを、1stオーディオデコーダ75−1に供給するよう選択を切り替える。また、例えば、type=2である場合、スイッチ59は、PIDフィルタ56を介して供給されるサブClip AVストリームファイルのオーディオストリームを、1stオーディオデコーダ75−1または2ndオーディオデコーダ75−2に供給するよう選択を切り替える。
例えば、メインClip AVストリームファイルのオーディオストリームと、サブClip AVストリームファイルのオーディオストリームとのミキシング再生が指令された場合(すなわち、図14を用いて説明した第1のSTN_tableのStream_entry()ではtype=3、図16用いて説明した第2のSTN_tableのStream_entry()では、secondary_audio_present_flagが1とされ、1番目のStream_entry()でtype=1、2番目のStream_entry()でtype=2とされるオーディオの再生が指令された場合)、スイッチ59は、PIDフィルタ55を介して供給されるメインClip AVストリームファイルのオーディオストリームを1stオーディオデコーダ75−1に供給するよう選択を切り替えるとともに、PIDフィルタ56を介して供給されるサブClip AVストリームファイルのオーディオストリームを2ndオーディオデコーダ75−2に供給するよう選択を切り替える。
また、例えば、2つのサブClip AVストリームファイルのオーディオストリームのミキシング再生が指令された場合(図16のsecondary_audio_present_flagが1、1番目のStream_entry()でtype=2、2番目のStream_entry()でtype=2であるオーディオストリームの再生が指令された場合)、スイッチ59は、PIDフィルタ56を介して供給されるサブClip AVストリームファイルのオーディオストリームが、図16のstream_entry()のオーディオストリームID(audio_stream_id)のforループの中の最初のstream_entry()により定義されるオーディオストリームに対応する場合、1stオーディオデコーダ75−1に供給するよう選択を切り替え、PIDフィルタ56を介して供給されるサブClip AVストリームファイルのオーディオストリームが、図16のstream_entry()のオーディオストリームID(audio_stream_id)のforループの中の2番目のstream_entry()により定義されるオーディオストリームに対応する場合、2ndオーディオデコーダ75−2に供給するよう選択を切り替える。
すなわち、1stオーディオデコーダ75−1には、メインClip AVストリームファイル用リードバッファであるバッファ52から読み出されたオーディオストリーム(図15の例でtype=1またはtype=3、もしくは図17の例でtype=1である場合)、または、サブClip AVストリームファイル用リードバッファであるバッファ53から読み出されたオーディオストリーム(図15の例でtype=2またはtype=3、もしくは、図17の例でtype=2である場合)が供給され、2ndオーディオデコーダ75−2には、サブClip AVストリームファイル用リードバッファであるバッファ53から読み出されたオーディオストリームのみが供給される。
1stオーディオデコーダ75−1は、オーディオストリームをデコードし、デコードしたオーディオストリームのデータをミキシング処理部101に供給する。また、2ndオーディオデコーダ75−2は、オーディオストリームをデコードし、デコードしたオーディオストリームのデータをミキシング処理部101に供給する。
ここで、2つのオーディオストリームを重畳して再生するような場合、1stオーディオデコーダ75−1によりデコードされたオーディオストリームと、2ndオーディオデコーダ75−2によりデコードされたオーディオストリームとが、ミキシング処理部101に供給される。
例えば、メインパスで参照される1stオーディオストリームとサブパスで参照される2ndオーディオストリームとを重畳して再生するような場合(図15の例ではtype=3であり、図16ではsecondary_audio_present_flagが1、1番目のStream_entry()のtype=1、2番目のStream_entry()のtype=2である場合)、1stオーディオデコーダ75−1によりデコードされたメインClip AVストリームファイルのオーディオストリームと、2ndオーディオデコーダ75−2によりデコードされたサブClip AVストリームファイルのオーディオストリームとが、ミキシング処理部101に供給される。
また、例えば、サブパスで参照される2本のオーディオストリームを重畳して再生するような場合(図16のsecondary_audio_present_flagが1であり、1番目および2番目のStream_entry()のいずれにおいてもtypeが2である場合)、1stオーディオデコーダ75−1によりデコードされたサブClip AVストリームファイルのオーディオストリーム(type=2、図16の最初のstream entry()で定義されるオーディオストリーム)と、2ndオーディオデコーダ75−2によりデコードされたサブClip AVストリームファイルのオーディオストリーム(type=2、図16のsecondary_audio_present_flagが1である場合に、2番目のstream entry()で定義されるオーディオストリーム)とが、ミキシング処理部101に供給される。
ミキシング処理部101は、1stオーディオデコーダ75−1からのオーディオデータと、2ndオーディオデコーダ75−2からのオーディオデータとをミキシング(重畳)し、後段のミキシング処理部97に出力する。なお、本実施の形態においては、1stオーディオデコーダ75−1から出力されるオーディオデータと2ndオーディオデコーダ75−2から出力されるオーディオデータとをミキシング(重畳)することを、合成するとも称する。すなわち、合成とは、2つのオーディオデータを、ミキシングすることも示すものとする。
また、スイッチ32により選択されたサウンドデータは、バッファ95に供給され、バッファリングされる。バッファ95は、所定のタイミングでサウンドデータをミキシング処理部97に供給する。サウンドデータは、例えば、メニュー選択などによる効果音のデータなどである。ミキシング処理部97は、ミキシング処理部101によりミキシングされたオーディオデータ(1stオーディオデコーダ75−1から出力されたオーディオデータと2ndオーディオデコーダ75−2から出力されたオーディオデータとがミキシングされたオーディオデータ)と、バッファ95から供給されてきたサウンドデータをミキシング(重畳、または合成)し、音声信号として出力する。
テキストサブタイトル用リードバッファであるバッファ54から読み出されたデータは、所定のタイミングで、後段のテキストサブタイトルコンポジション(デコーダ)76へ出力される。テキストサブタイトルコンポジション76は、Text-STデータをデコードし、スイッチ77に供給する。
スイッチ77は、プレゼンテーショングラフィックスデコーダ73によりデコードされたプレゼンテーショングラフィックスストリームと、Text-ST(テキストサブタイトルデータ)のうち、いずれかを選択し、選択したデータをプレゼンテーショングラフィックスプレーン生成部93に供給する。すなわち、プレゼンテーショングラフィックスプレーン93へ同時に供給される字幕画像は、プレゼンテーショングラフィックスデコーダ73またはテキストサブタイトル(Text-ST)コンポジション76のうちのいずれかの出力である。また、プレゼンテーショングラフィックスデコーダ73へ同時に入力されるプレゼンテーショングラフィックスストリームは、メインClip AVストリームファイルまたはサブClip AVストリームファイルのいずれかから分離されたストリームである(スイッチ57により選択される)。したがって、プレゼンテーショングラフィックスプレーン93へ同時に出力される字幕画像は、メインClip AVストリームファイルからのプレゼンテーショングラフィックスストリーム、またはサブClip AVストリームファイルからのからのプレゼンテーショングラフィックスストリーム、またはテキストサブタイトルデータのデコード出力である。
バックグラウンドプレーン生成部91は、バックグラウンドデコーダ71から供給されたバックグラウンドイメージデータに基づいて、例えば、ビデオ画像を縮小表示した場合に壁紙画像となるバックグラウンドプレーンを生成し、これを、ビデオデータ処理部96に供給する。ビデオプレーン生成部92は、ビデオデコーダ72から供給されたビデオデータに基づいて、ビデオプレーンを生成し、これをビデオデータ処理部96に供給する。
プレゼンテーショングラフィックスプレーン生成部93は、スイッチ77により選択され、供給されたデータ(プレゼンテーショングラフィックスストリームまたはテキストサブタイトルデータ)に基づいて、例えば、レンダリング画像であるプレゼンテーショングラフィックスプレーンを生成し、これをビデオデータ処理部96に供給する。インタラクティブグラフィックスプレーン生成部94は、インタラクティブグラフィックスデコーダ74から供給されたインタラクティブグラフィックスストリームのデータに基づいて、インタラクティブグラフィックスプレーンを生成し、これをビデオデータ処理部96に供給する。
ビデオデータ処理部96は、バックグラウンドプレーン生成部91からのバックグラウンドプレーン、ビデオプレーン生成部92からのビデオプレーン、プレゼンテーショングラフィックスプレーン生成部93からのプレゼンテーショングラフィックスプレーン、およびインタラクティブグラフィックスプレーン生成部94からのインタラクティブグラフィックスプレーンを合成し、ビデオ信号として出力する。
これらのスイッチ57乃至59、並びにスイッチ77は、操作入力部29を介するユーザからの選択に基づいて、または、対象となるデータが含まれるファイルが供給される側に、スイッチを切り替える。例えば、サブClip AVストリームファイルのみにしか、オーディオストリームが含まれていない場合、スイッチ59はサブClip AVストリームファイルを供給する側(PIDフィルタ56の出力)にスイッチを切り替える。
次に、図28の再生装置1における再生処理を、図29乃至図31のフローチャートを参照して説明する。なお、この処理は、ユーザにより操作入力部29を介して、所定のAVストリームの再生が指令されたとき開始される。
ステップS11において、コントローラ21は、ストレージドライブ22を介して、記録媒体11やHDD(Hard Disk Drive)などのローカルストレージ24に記録されているPlayListファイルを読み出す。例えば、図9を用いて説明したPlayListのファイルが読み出される。
ステップS12において、コントローラ21は、メインClip AVストリームファイル、サブClip AVストリームファイル、およびテキストサブタイトルデータ(Text-STデータ)を読み出す。具体的には、コントローラ21は、図9を用いて説明したPlayListに含まれるPlayItemに基づいて、メインClipから対応するメインClip AVストリームファイルを読み出す。また、コントローラ21は、PlayListに含まれるSubPathで参照される、図10乃至図12を用いて説明したSubPlayItemに基づいて、サブClip AVストリームファイルと、テキストサブタイトルデータを読み出す。
ステップS13において、コントローラ21は、読み出したデータ(メインClip AVストリームファイル、サブClip AVストリームファイル、およびテキストサブタイトルデータ)を対応するバッファ51乃至54に供給するようスイッチ32を制御する。具体的には、コントローラ21は、バックグラウンドイメージデータをバッファ51に供給し、メインClip AVストリームファイルのデータをバッファ52に供給し、サブClip AVストリームファイルのデータをバッファ53に供給し、Text-STのデータをバッファ54に供給するようスイッチ32を切り替える。
ステップS14において、スイッチ32はコントローラ21からの制御に基づいて、スイッチ32を切り替える。これにより、バックグラウンドイメージデータはバッファ51に供給され、メインClip AVストリームファイルのデータはバッファ52に供給され、サブClip AVストリームファイルのデータはバッファ53に供給され、テキストサブタイトルデータはバッファ54に供給される。
ステップS15において、各バッファ51乃至54は、供給されたデータをそれぞれバッファリングする。具体的には、バッファ51は、バックグラウンドイメージデータをバッファリングし、バッファ52は、メインClip AVストリームファイルのデータをバッファリングし、バッファ53は、サブClip AVストリームファイルのデータをバッファリングし、バッファ54は、Text-STデータをバッファリングする。
ステップS16において、バッファ51は、バックグラウンドイメージデータをバックグラウンドデコーダ71に出力する。
ステップS17において、バッファ52はメインClip AVストリームファイルのストリームデータをPIDフィルタ55に出力する。
ステップS18において、PIDフィルタ55は、メインClip AVストリームファイルを構成するTS(transport stream)パケットに付されているPIDに基づいて、各エレメンタリストリームのデコーダへ振り分ける。具体的には、PIDフィルタ55は、ビデオストリームをビデオデコーダ72に供給し、プレゼンテーショングラフィックスストリームをプレゼンテーショングラフィックスデコーダ73への供給元となるスイッチ57に供給し、インタラクティブグラフィックスストリームをインタラクティブグラフィックスデコーダ74への供給元となるスイッチ58に供給し、オーディオストリームを1stオーディオデコーダ75−1への供給元となるスイッチ59に供給する。すなわち、ビデオストリーム、プレゼンテーショングラフィックスストリーム、インタラクティブグラフィックスストリーム、およびオーディオストリームには、それぞれ異なるPIDが付されている。
ステップS19において、バッファ53は、サブClip AVストリームファイルのストリームデータをPIDフィルタ56に出力する。
ステップS20において、PIDフィルタ56は、PIDに基づいて、各エレメンタリストリームを、それぞれのエレメンタリストリームに対応するデコーダへ振り分ける。具体的には、PIDフィルタ56は、プレゼンテーショングラフィックスストリームをプレゼンテーショングラフィックスデコーダ73への供給元となるスイッチ57に供給し、インタラクティブグラフィックスストリームをインタラクティブグラフィックスデコーダ74への供給元となるスイッチ58に供給し、オーディオストリームを1stオーディオデコーダ75−1と2ndオーディオデコーダ75−2への供給元となるスイッチ59に供給する。
ステップS21において、PIDフィルタ55およびPIDフィルタ56の後段のスイッチ57乃至59は、コントローラ21からの制御に基づいて、メインClip AVストリームファイルとサブClip AVストリームファイルのいずれかを選択する。具体的には、スイッチ57は、PIDフィルタ55から供給されたメインClip AVストリームファイルまたはサブClip AVストリームファイルのプレゼンテーショングラフィックスストリームを選択し、後段のプレゼンテーショングラフィックスデコーダ73に供給する。また、スイッチ58は、PIDフィルタ55から供給されたメインClip AVストリームファイルまたはサブClip AVストリームファイルのインタラクティブグラフィックスストリームを選択し、後段のインタラクティブグラフィックスストリームデコーダ74に供給する。さらに、スイッチ59は、PIDフィルタ55から供給されたメインClip AVストリームファイルまたはPIDフィルタ56から供給されたサブCli AVストリームファイルのオーディオストリームを選択し、後段の1stオーディオデコーダ75−1に供給する。なお、音声を切り替えるような指令がユーザにより行われた場合には、スイッチ59は、サブClip AVストリームファイルのオーディオストリームを2ndオーディオデコーダ75−2に供給したりもするが、ここでは、音声が切り替えられる前の処理について説明しているので、その説明は省略している。
ステップS22において、バッファ54は、テキストサブタイトルデータをテキストサブタイトルコンポジション76に出力する。
ステップS23において、バックグラウンドデコーダ71は、バックグラウンドイメージデータをデコードし、これをバックグラウンドプレーン生成部91に出力する。
ステップS24において、ビデオデコーダ72は、ビデオストリームをデコードし、これをビデオプレーン生成部92に出力する。
ステップS25において、プレゼンテーショングラフィックスデコーダ73は、スイッチ57により選択され、供給されたプレゼンテーショングラフィックスストリームをデコードし、これを後段のスイッチ77に出力する。
ステップS26において、インタラクティブグラフィックスデコーダ74は、スイッチ58により選択され、供給されたインタラクティブグラフィックスストリームをデコードし、これを後段のインタラクティブグラフィックスプレーン生成部94に出力する。
ステップS27において、1stオーディオデコーダ75−1は、スイッチ59により選択され、供給されたオーティオデータをデコードし、これを後段のミキシング処理部101に出力する。音声の切り替えがユーザにより指示されていない状態における再生処理(図29乃至図32の再生処理)では、2ndオーディオデコーダ75−2からオーディオデータが出力されることはないので、ミキシング処理部101は、1stオーディオデコーダ75−1から出力されたオーディオデータを、そのまま後段のミキシング処理部97に供給する。
ステップS28において、Text-STコンポジション76は、テキストサブタイトルデータをデコードし、これを後段のスイッチ77に出力する。
ステップS29において、スイッチ77は、プレゼンテーショングラフィックスデコーダ73またはText-STコンポジション76からのデータのいずれかを選択する。具体的には、スイッチ77は、プレゼンテーショングラフィックスデコーダ73によりデコードされたプレゼンテーショングラフィックスストリームと、Text-ST(テキストサブタイトルデータ)のうち、いずれか1つを選択し、選択したデータをプレゼンテーショングラフィックスプレーン生成部93に供給する。
ステップS30において、バックグラウンドプレーン生成部91は、バックグラウンドデコーダ71から供給されたバックグラウンドイメージデータに基づいて、バックグラウンドプレーンを生成する。
ステップS31において、ビデオプレーン生成部92は、ビデオデコーダ72から供給されたビデオデータに基づいて、ビデオプレーンを生成する。
ステップS32において、プレゼンテーショングラフィックスプレーン生成部93は、ステップS29の処理でスイッチ77により選択され、供給されたプレゼンテーショングラフィックスデコーダ73からのデータまたはText-STコンポジション76からのデータに基づいて、プレゼンテーショングラフィックスプレーンを生成する。
ステップS33において、インタラクティブグラフィックスプレーン生成部94は、インタラクティブグラフィックスデコーダ74から供給されたインタラクティブグラフィックスストリームのデータに基づいて、インタラクティブグラフィックスプレーンを生成する。
ステップS34において、バッファ95は、ステップS14の処理で選択され、供給されたサウンドデータをバッファリングし、所定のタイミングでミキシング処理部97に供給する。
ステップS35において、ビデオデータ処理部96は、各プレーンのデータを合成し、出力する。具体的には、バックグラウンドプレーン生成部91、ビデオプレーン生成部92、プレゼンテーショングラフィックスプレーン生成部93、およびインタラクティブグラフィックスプレーン生成部94からのデータを合成し、ビデオデータとして出力する。
ステップS36において、ミキシング処理部97は、オーディオデータ(ミキシング処理部101から出力されたオーディオデータ)とサウンドデータをミキシング(合成)し、出力し、処理が終了される。
図29乃至図31を用いて説明した処理により、PlayListに含まれるメインパスとサブパスに関連付けられているメインClip AVストリームファイル、サブClip AVストリームファイル、およびテキストサブタイトルデータが参照され、再生される。PlayListにメインパスとサブパスを設けるようにし、サブパスで、メインパスで指定するClip AVストリームファイルとは異なるClip AVストリームファイルを指定可能な構成としたので、メインパスのPlayItemが指すメインClipとは異なるClipであるサブClipに含まれるサブClip AVストリームファイルのデータとメインClipに含まれるメインClip AVストリームファイルのデータを一緒に(同じタイミングで)再生することができる。
なお、図29乃至図31において、ステップS16,ステップS17の処理は、その順番が逆であってもよいし、並行して実行されてもよい。また、ステップS18、ステップS20の処理も、その順番が逆であってもよいし、並行して実行されてもよい。さらに、ステップS23乃至ステップS28の処理も、その順番が逆であってもよいし、並行して実行されてもよい。また、ステップS30乃至ステップS33の処理も、その順番が逆であってもよいし、並行して実行されてもよい。さらに、ステップS35,ステップS36の処理も、その順番が逆であってもよいし、並行して実行されてもよい。すなわち、図28において、縦に同じ階層のバッファ51乃至54の処理、スイッチ57乃至59の処理、デコーダ71乃至76の処理、プレーン生成部91乃至94の処理、ビデオデータ処理部96およびミキシング処理部97の処理は、それぞれ、並行して実行されてもよいし、その順番は問わない。
次に、音声の切り替えが指示された場合の再生装置1における処理を、図32のフローチャートを参照して説明する。なお、この処理は、例えば、図29乃至図31の再生処理の実行中に実行される処理である。
ステップS51において、コントローラ21は、オーディオストリーム番号(IDでもよい)の順番リストを取得する。具体的には、コントローラ21は、図13を用いて説明したPlayItemのSTN_table()を参照し、さらに図14または図16を用いて説明したSTN_table()にエントリーされているオーディオストリーム番号(ID)の順番のリストを取得する。この処理は、図29乃至図31の再生処理が開始されたときに実行される処理である。
ユーザにより操作入力部29を介して、音声切り替えの指令が行われた場合、ステップS52において、コントローラ21は、ユーザからの音声切り替えの指令を受け付ける。
このとき、コントローラ21は、図示せぬ外部の表示装置を制御して、図26に示されるようなストリームナンバーテーブルを外部の表示装置に表示させるように制御してもよい。このように、コントローラ21は、ユーザに提供する音声信号と字幕信号の選択肢を表示させ、ユーザからの音声切り替え(音声選択)の指令を受け付ける。図32において、ステップS51の処理はあらかじめ実行されている処理であり、ユーザにより音声切り替えの指令が行われた場合に、ステップS52以降の処理が行われる。
ステップS53において、コントローラ21は、再生しているオーディオストリーム番号の次のオーディオストリーム番号を取得する。例えば、図8のSubClip_entry_id=0のオーディオストリーム(Auxiliary audio stream)が再生されていた場合、次のSubClip_entry_id=1に対応するオーディオストリームファイルの番号が取得される。例えば、図26のA_SN=3のオーディオ3に対応するオーディオストリームファイルが再生されていた場合、次は、A_SN=4のオーディオ2+オーディオ4であるので、コントローラ21は、メインパスで参照される、オーディオ2に対応するオーディオストリームの番号と、サブパスで参照される、オーディオ4に対応するオーディオストリームの番号とを取得する。
ステップS54において、コントローラ21は、取得した番号に対応するオーディオストリームを再生する機能を有するか否かを判定する。具体的には、コントローラ21は、stream_attribute()(図18)に記述されている内容に基づいて、例えば、必要に応じて、メモリ23に登録されている各種設定を参照することなどにより、取得した番号に対応するオーディオストリームを自分自身(再生装置1)が再生する機能を有するか否かを判定する。例えば、図15または図17のStream_entry()において、type=1である場合、コントローラ21は、取得した番号に対応するメインClip AVストリームファイルのオーディオストリームを再生する機能を有するか否かを判定する。また、例えば、図15または図17のStream_entry()において、type=2である場合、コントローラ21は、取得した番号に対応するサブClipのオーディオストリームを再生する機能を有するか否かを判定する。
さらに、例えば、メインClip AVストリームファイルのオーディオストリームとサブClip AVストリームファイルのオーディオストリームとをミキシングして再生する場合(図14の第1のSTN_tableにおいて、図15のstream_entry()でtype=3である場合、または、図16の第2のSTN_tableにおいて、secondary_audio_present_flagが1であり、1番目のStream_entry()でtype=1であり、2番目のStream_entry()でtype=2である場合)、コントローラ21は、メインClip AVストリームファイルのオーディオストリームのみに対して、取得した番号に対応するオーディオストリームを再生する機能を有するか否かを判定する。ここで、メインClip AVストリームファイルのオーディオストリームとサブClipのオーディオストリームのミキシング再生をする場合、サブClip AVストリームファイルのオーディオストリームを再生する機能を有するか否かの判定は省略してもよい。
このことは、メインClip AVストリームファイルには、拡張されたストリームやマルチチャンネルのストリームが含まれる可能性があるが、サブClip AVストリームファイルだと、ある程度の制約が設けられている可能性が高く、特にサブClip AVストリームファイルに含まれるストリームが再生できるか否かを判定する必要がないからである。勿論、コントローラ21は、サブClip AVストリームファイルに含まれるストリームを再生できるか否かも判定するようにしてもよい。
また、例えば、2本のサブClip AVストリームファイルのオーディオストリームをミキシングして再生する場合(図16の第2のSTN_tableにおいて、secondary_audio_present_flagが1であり、1番目のStream_entry()のtype=2であり、2番目のStream_entry()のtype=2である場合)、コントローラ21は、1stオーディオデコーダ75−1でデコードされる(図16のオーディオストリームID(audio_stream_id)のforループの中の最初の)オーディオストリームに対して、取得した番号に対応するオーディオストリームを再生する機能を有するか否かを判定する。ここで、図16のstream entry()においてsecondary_audio_present_flagが1とされた後の2番目にエントリーされているサブClip AVストリームファイルのオーディオストリームを再生する機能を有するか否かの判定は省略してもよい。このことは、図16のオーディオストリームID(audio_stream_id)のforループの中の最初のオーディオストリームは、映画の日本語吹き替えなどの音声と想定され、図16のstream entry()において2番目にエントリーされているサブClip AVストリームファイルのオーディオストリームとして想定される映画のディレクターズカットよりも高品質の音声である可能性が高いため、特に、品質の低い方の図16のstream entry()において2番目にエントリーされているサブClip AVストリームファイルのオーディオストリームを再生する機能を有するかの判定が必要ないからである。勿論、コントローラ21は、2本のサブパスで参照される2つのサブClip AVストリームファイルのオーディオストリームに対して、再生できるか否かを判定するようにしてもよい。
ステップS54において、取得した番号に対応するオーディオストリームを再生する機能を有しないと判定された場合、ステップS55において、コントローラ21は、現在のストリーム番号の次のストリーム番号を取得する。すなわち、現在のストリーム番号のオーディオストリームを再生する機能を有さない場合には、そのストリーム番号は飛ばされ(再生対象とならず)、次のストリーム番号が取得される。そして、ステップS55の処理の後、処理はステップS54に戻り、それ以降の処理が繰り返される。すなわち、コントローラ21により自分自身が再生する機能を有するオーディオストリームの番号が取得されるまで、処理が繰り返される。
ステップS54において、取得した番号に対応するオーディオストリームを再生する機能を有すると判定された場合、ステップS56において、コントローラ21は、取得した番号に対応するメインClipに含まれるClip AVストリームファイルのオーディオストリームと、サブClipに含まれるClip AVストリームファイルのオーディオストリームとを調べる。例えば、図8の例の場合、取得されたSubClip_entry_id=1はSub Pathにより参照されるので、コントローラ21は、取得した番号に対応するオーディオストリームが、サブClip AVストリームファイルにあることを確認することができる。また、例えば、図15または図17のStream_entry()において、type=1である場合、コントローラ21は、取得した番号に対応するオーディオストリームが、メインClip AVストリームファイルにあることを確認する。さらに、例えば、図15または図17のStream_entry()において、type=2である場合、コントローラ21は、取得した番号に対応するオーディオストリームがサブClip AVストリームファイルにあることを確認する。また、例えば、メインClip AVストリームファイルとサブClip AVストリームファイルのオーディオストリームをミキシング再生する場合(図14の第1のSTN_tableにおいて図15のstream_entry()でtype=3である場合、または、図16の第2のSTN_tableにおいて、secondary_audio_present_flagが1であり、1番目のStream_entry()でtype=1であり、2番目のStream_entry()でtype=2である場合)、コントローラ21は、取得した番号に対応するオーディオストリームが、メインClip AVストリームファイルとサブClip AVストリームファイルの両方にあることを確認する。さらに、例えば、2本のサブClip AVストリームファイルのオーディオストリームをミキシング再生する場合(図16のsecondary_audio_present_flagが1であり、1番目のStream_entry()でtype=2であり、2番目のStream_entry()でtype=2である場合)、コントローラ21は、取得した番号に対応するオーディオストリームが、サブClip AVストリームファイルのみにあることを確認する。
ステップS57において、コントローラ21は、所望のオーディオストリームを特定する。具体的には、取得した番号に対応するストリームの属するメインClip AVストリームファイルまたはサブClip AVストリームファイルの中の所望のオーディオストリームを特定する。例えば、コントローラ21は、図15または図17において、type=1である場合、メインClip AVストリームファイルの中の所定のオーディオストリームを特定し、type=2である場合、サブClip AVストリームファイルの中の所定のオーディオストリームを特定し、図15においてtype=3であるか、図17において、secondary_audio_present_flagが1、1番目のStream_entry()がtype=1、2番目のStream_entry()がtype=2である場合、メインClip AVストリームファイルの中の所定のオーディオストリームと、サブClipの中の所定のオーディオストリームとを特定する。また、図17においてsecondary_audio_present_flagが1、1番目のStream_entry()がtype=2、2番目のStream_entry()がtype=2である場合、コントローラ21は、2つのサブClip AVストリームファイルの中の2つの所定のオーディオストリームを特定する。
ステップS58において、コントローラ21は、所望のオーディオストリームが多重化されているClip(メインClip AVストリームファイルのみ、サブClip AVストリームファイルのみ、メインClip AVストリームファイルとサブClip AVストリームファイル、または、2本のサブClip AVストリームファイル、のうちのいずれかを含むClip)から、特定されたオーディオストリームを読み出すようストレージドライブ22に指示するか、または、ローカルストレージ24に記録されている所望のオーディオストリームが多重化されているClipから、特定されたオーディオストリームを読み出す。ストレージドライブ22は、コントローラ21から指示を受けた場合、この指示に基づいて、対象となるオーディオストリームを読み出す。そして、コントローラ21は、読み出されたオーディオストリームをAVデコーダ部26に供給して、再生するようAVデコーダ部26に指示する。コントローラ21は、例えば、図14の第1のSTN_tableにおいて、図15のstream_entry()でtype=3である場合、または、図16の第2のSTN_tableにおいて、secondary_audio_present_flagが1であり、1番目のStream_entry()がtype=1であり、2番目のStream_entry()がtype=2である場合、メインClipのオーディオストリームとサブClip AVストリームファイルのオーディオストリームの両方を再生するよう、AVデコーダ部26に指示する。
ステップS59において、AVデコーダ部26は、オーディオストリームをデコードし、オーディオ出力する。すなわち、オーディオデコーダ75によりデコードされたオーディオデータと、バッファ95から出力されるサウンドデータが、ミキシング処理部97によりミキシング処理され、オーディオ信号として出力される。具体的には、図15または図17においてtype=1である場合、1stオーディオデコーダ75−1は、メインClip AVストリームファイルの中の所定のオーディオストリームをデコードし、これを、ミキシング処理部101を介してミキシング処理部97に供給する。また、図15または図17においてtype=2である場合、1stオーディオデコーダ75−1または2ndオーディオデコーダ75−2のうちのいずれか(STN_tableの記載によって決まる)は、サブClip AVストリームファイルの中の所定のオーディオストリームをデコードし、これを、ミキシング処理部101を介してミキシング処理部97に供給する。
このとき、メインClip AVストリームファイルとサブClip AVストリームファイルのオーディオストリームをミキシング再生する場合(図15のtype=3である場合、または、図16のsecondary_audio_present_flagが1、1番目のStream_entry()のtype=1、2番目のStream_entry()のtype=2である場合)、1stオーディオデコーダ75−1は、メインClip AVストリームファイルの中の所定のオーディオストリームをデコードし、これをミキシング処理部101に供給し、2ndオーディオデコーダ75−2は、サブClip AVストリームファイルの中の所定のオーディオストリームをデコードし、これをミキシング処理部101に供給する。また、2本のサブClip AVストリームファイルのオーディオストリームをミキシング再生する場合(図16のsecondary_audio_present_flagが1、1番目のStream_entry()のtype=2、2番目のStream_entry()のtype=2である場合)、1stオーディオデコーダ75−1は、サブClip AVストリームファイルの中の所定のオーディオストリームをデコードし、これをミキシング処理部101に供給し、2ndオーディオデコーダ75−2は、サブClip AVストリームファイルの中の所定のオーディオストリームをデコードし、これをミキシング処理部101に供給する。ミキシング処理部101は、1stオーディオデコーダ75−1から供給されたオーディオデータと、2ndオーディオデコーダ75−2から供給されたオーディオデータとをミキシング(重畳、合成)し、これをミキシング処理部97に供給する。ミキシング処理部97は、ミキシング処理部101から供給されてきたオーディオデータと、バッファ95から供給されてきたサウンドデータとをミキシング(重畳、合成)し、これをオーディオ信号として出力する。
この図32のステップS59の処理の詳細な例を、図33のフローチャートを参照して説明する。図33は、AVデコーダ部26におけるオーディオストリームを出力する処理の例を説明するフローチャートである。
ステップS81において、AVデコーダ部26は、コントローラ21からの制御に基づいて、再生するオーディオストリームがメインClip AVストリームファイルのオーディオストリームのみであるか否かを判定する。例えば、AVデコーダ部26は、図14または図16でエントリーされているオーディオストリームが、図15または図17においてtype=1のみであるか否かを判定する。
ステップS81において、再生するオーディオストリームがメインClip AVストリームファイルのオーディオストリームのみであると判定された場合、PIDフィルタ55により選択されて供給されてきたメインClip AVストリームファイルのオーディオストリームが、スイッチ59により選択され、1stオーディオデコーダ75−1に供給されるので、ステップS82において、1stオーディオデコーダ75−1は、メインClip AVストリームファイルのオーディオストリームをデコードする。1stオーディオデコーダ75−1は、デコードしたメインClip AVストリームファイルのオーディオストリームを、後段のミキシング処理部101に供給する。ミキシング処理部101は、供給されてきたオーディオデータをそのまま後段のミキシング処理部97に出力する。
ステップS81において、再生するオーディオストリームがメインClip AVストリームファイルのオーディオストリームのみでないと判定された場合、(すなわち、再生するオーディオストリームが図15においてtype=2またはtype=3である場合、または、図17において、type=2を少なくとも含む場合)、ステップS83において、AVデコーダ部26は、コントローラ21からの制御に基づいて、再生するオーディオストリームがサブClip AVストリームファイルのオーディオストリームのみであるか否かを判定する。すなわち、AVデコーダ部26は、図14または図16でエントリーされているオーディオストリームが図15または図17においてtype=2のみであるか否かを判定する。
ステップS83において、再生するオーディオストリームがサブClip AVストリームファイルのオーディオストリームのみでないと判定された場合、再生するオーディオストリームがメインClip AVストリームファイルのオーディオストリームとサブClip AVストリームファイルのオーディオストリームとの組み合わせであることを示す、すなわち、再生するオーディオストリームが図15においてtype=3である、または、図16において、secondary_audio_present_flagが1とされ、さらに、1番目のStream_entry()がtype=1と2番目のStream_entry()がtype=2とされる組み合わせであるので、PIDフィルタ55により選択されて供給されてきたメインClip AVストリームファイルのオーディオストリームがスイッチ59により選択され、1stオーディオデコーダ75−1に供給されると共に、PIDフィルタ56により選択されて供給されてきたサブClip AVストリームファイルのオーディオストリームが、スイッチ59により選択され、2ndオーディオデコーダ75−2に供給される。
そこで、ステップS84において、1stオーディオデコーダ75−1は、メインClip AVストリームファイルのオーディオストリームをデコードする。1stオーディオデコーダ75−1は、デコードしたメインClip AVストリームファイルのオーディオストリームを、後段のミキシング処理部101に供給する。
また、ステップS85において、2ndオーディオデコーダ75−2は、サブClip AVストリームファイルのオーディオストリームをデコードする。2ndオーディオデコーダ75−2は、デコードしたサブClip AVストリームファイルのオーディオストリームを、後段のミキシング処理部101に供給する。なお、ステップS84とステップS85の処理は、並行して実行されてもよいし、順番を逆にして実行されてもよい。
ステップS86において、ミキシング処理部101は、1stオーディオデコーダ75−1によりデコードされたメインClip AVストリームファイルのオーディオストリームと、2ndオーディオデコーダ75−2によりデコードされたサブClip AVストリームファイルのオーディオストリームとをミキシングする。すなわち、ミキシング処理部101は、1stオーディオデコーダ75−1から供給されてきたオーディオデータと2ndオーディオデコーダ75−2から供給されてきたオーディオデータとを、ミキシング(合成、重畳)する。ミキシング処理部101は、ミキシングした結果得られたオーディオデータを、後段のミキシング処理部97に供給する。
一方、ステップS83において、再生するオーディオストリームがサブClip AVストリームファイルのオーディオストリームのみであると判定された場合(図15または図17においてtype=2のみである場合)、処理はステップS87に進み、AVデコーダ部26は、コントローラ21からの制御に基づいて、再生するオーディオストリームは、サブClip AVストリームファイルの2つのオーディオストリームの組み合わせであるか否かを判定する。すなわち、図16のstream entry()において、secondary_audio_present_flagが1とされて2本のオーディオストリームがエントリーされ、さらに図17において、ともにtype=2とされているか否かが判定される。なお、図14と図15のシンタクスの場合、サブClip AVストリームファイルの2つのオーディオストリームの組み合わせは定義されないので、ステップS87においては、再生するオーディオストリームは、サブClip AVストリームファイルの2つのオーディオストリームの組み合わせではないと判定される。
ステップS87において、再生するオーディオストリームは、サブClip AVストリームファイルの2つのオーディオストリームの組み合わせでないと判定された場合(図14と図15において、type=2とされる場合、または、図16と図17において、secondary_audio_present_flagが0とされ、1番目のStream_entry()でtype=2とされる場合)、すなわち、オーディオストリームが1本しかエントリーされていない場合、このオーディオストリームは、勿論サブClip AVストリームファイルのオーディオストリームであるので、PIDフィルタ56により選択されて供給されてきたサブClip AVストリームファイルのオーディオストリームが、スイッチ59により選択され、1stオーディオデコーダ75−1に供給される。そこで、ステップS88において、1stオーディオデコーダ75−1は、サブClip AVストリームファイルのオーディオストリームをデコードする。1stオーディオデコーダ75−1は、デコードしたサブCli AVストリームファイルpのオーディオストリームを、後段のミキシング処理部101に供給する。ミキシング処理部101は、供給されてきたオーディオデータをそのまま後段のミキシング処理部97に出力する。
一方、ステップS87において、再生するオーディオストリームは、サブClip AVストリームファイルの2つのオーディオストリームの組み合わせであると判定された場合(図16と図17において、secondary_audio_present_flagが1とされ、1番目のStream_entry()と2番目のStream_entry()がともにtype=2とされる場合)、PIDフィルタ56により選択されて供給されてきたサブClip AVストリームファイルのオーディオストリームは2本となるので、スイッチ59は、1stオーディオデコーダ75−1でデコードされるオーディオストリーム、すなわち、図16において、オーディオストリームID(audio_stream_id)のforループの中の最初にエントリーされたオーディオストリームを、1stオーディオデコーダ75−1に供給するようスイッチを選択し、2ndオーディオデコーダ75−2でデコードされるオーディオストリーム、すなわち、図16において、オーディオストリームID(audio_stream_id)のforループの中のsecondary_audio_present_flagが1とされた後に、2番目にエントリーされたオーディオストリームを、2ndオーディオデコーダ75−2に供給するようスイッチを選択する。
そこで、ステップS89において、1stオーディオデコーダ75−1は、供給されてきたサブClip AVストリームファイルのオーディオストリームをデコードする。1stオーディオデコーダ75−1は、デコードしたサブClip AVストリームファイルのオーディオストリームを、後段のミキシング処理部101に供給する。
また、ステップS90において、2ndオーディオデコーダ75−2は、供給されてきたサブClip AVストリームファイルのオーディオストリームをデコードする。2ndオーディオデコーダ75−2は、デコードしたサブClip AVストリームファイルのオーディオストリームを、後段のミキシング処理部101に供給する。なお、ステップS89とステップS90の処理は、並行して実行されてもよいし、順番を逆にして実行されてもよい。
ステップS91において、ミキシング処理部101は、1stオーディオデコーダ75−1によりデコードされたサブClip AVストリームファイルのオーディオストリームと、2ndオーディオデコーダ75−2によりデコードされたサブClip AVストリームファイルのオーディオストリームと(すなわち、2つのサブClip AVストリームファイルのオーディオストリーム)をミキシングする。換言すれば、ミキシング処理部101は、1stオーディオデコーダ75−1から供給されてきたオーディオデータと2ndオーディオデコーダ75−2から供給されてきたオーディオデータとを、ミキシング(合成、重畳)する。ミキシング処理部101は、ミキシングした結果得られたオーディオデータを、後段のミキシング処理部97に供給する。
ステップS82の処理の後、ステップS86の処理の後、ステップS88の処理の後、または、ステップS91の処理の後、処理はステップS92に進み、ミキシング処理部97は、供給されてきたオーディオデータと、バッファ95から供給されてきたサウンドデータとをミキシングし、出力する。例えば、このステップS92の処理が、ステップS82の処理の後の場合、ミキシング処理部97は、メインClip AVストリームファイルのオーディオストリームがデコードされたオーディオデータと、サウンドデータとをミキシングする。また、例えば、このステップS92の処理が、ステップS88の処理の後の場合、ミキシング処理部97は、サブClip AVストリームファイルのオーディオストリームがデコードされたオーディオデータとサウンドデータとをミキシングする。さらに、例えば、このステップS92の処理が、ステップS86の処理の後の場合、ミキシング処理部97は、メインClip AVストリームファイルのオーディオストリームがデコードされたオーディオデータとサブClip AVストリームファイルのオーディオストリームがデコードされたオーディオデータとがミキシングされたオーディオデータに、サウンドデータをミキシングする。また、例えば、このステップS92の処理が、ステップS91の処理の後の場合、ミキシング処理部97は、2本のサブClip AVストリームファイルのオーディオストリームがそれぞれデコードされたオーディオデータがミキシングされたオーディオデータに、サウンドデータをミキシングする。
図33の処理によれば、メインパスで参照されるオーディオストリームとサブパスで参照されるオーディオストリームとのミキシング再生を行うことができる。また、2つのサブパスで参照される2本のオーディオストリームのミキシング再生を行うことができる。
図33を用いて説明した処理のようにして、図30のステップS21における図28のスイッチ59の選択が決定される。すなわち、図33を用いて説明した処理において再生されるオーディオストリームがメインClip AVストリームファイルのみである場合、スイッチ59は、メイン側、すなわちPIDフィルタ55から供給されたオーディオストリームを1stオーディオデコーダ75−1に供給するよう選択し(図33のステップS81でYES)、対象となるClipが1本のサブClip AVストリームファイルのみである場合、スイッチ59は、サブ側、すなわち、PIDフィルタ56から供給されたオーディオストリームを1stオーディオデコーダ75−1に供給するよう選択し(図33のステップS87でNO)、対象となるClip AVストリームファイルがメインClip AVストリームファイルとサブClip AVストリームファイルの両方である場合、スイッチ59は、PIDフィルタ55から供給されたオーディオストリームを1stオーディオデコーダ75−1に供給するとともに、PIDフィルタ56から供給されたオーディオストリームを、2ndオーディオデコーダ75−2に供給するよう選択し(図33のステップS83でNO)、対象となるClipが2本のサブClip AVストリームファイルである場合、スイッチ59は、サブ側、すなわち、PIDフィルタ56から供給されたオーディオストリームを、1stオーディオデコーダ75−1または2ndオーディオデコーダ75−2に供給するよう選択(図33のステップS87でYES)する。
このように、コントローラ21は、PlayItemのSTN_table()に基づいて、音声(オーディオ)の切り替えを制御することができる。また、コントローラ21は、STN_table()のstream_attributeを参照することで、自分自身が再生機能を有するストリームだけを選んで、再生切り替えの制御をすることができる。さらに、コントローラ21は、STN_table()に基づいて、メインClip AVストリームファイルに含まれるオーディオストリームと、サブClip AVストリームファイルに含まれるオーディオストリームとを重畳して再生するとともに、2本のサブClip AVストリームファイルに含まれるオーディオストリームを重畳して再生するよう制御することができる。
なお、図14と図15のシンタクス(第1のSTN_table())を用いる場合、サブClip AVストリームファイルの2つのオーディオストリームの組み合わせは定義されないので、図33のステップS87では必ずNOと判定され、ステップS88以降の処理が実行される。すなわち、図14と図15のシンタクスに対応する場合、図33のステップS89、ステップS90、およびステップS91の処理は実行されない。
なお、図32の処理では、オーディオストリーム番号に基づいて、オーディオを切り替えるようにしたが、オーディオストリームID(audio_stream_id)に基づいて、オーディオを切り替えるようにしてもよい。この場合、オーディオストリーム番号から1を減算したものが、オーディオストリームIDとなる。
また、以上の例では、メインパスにより参照されるオーディオストリームと、サブパスにより参照されるオーディオストリームとをミキシング(合成)して再生する場合の例(図14と図15、または、図16と図17)や、2本のサブパスにより参照されるオーディオストリームをミキシング(合成)して再生する場合の例(図16と図17)を説明したが、オーディオストリームに限らず、ストリームの種類が同じであれば、各種のストリームファイルについて同様に適用することができる。例えば、ビデオストリーム(ストリームの種類がビデオストリーム)を2つ合成して再生するピクチャインピクチャ表示をする場合にも、この構成は適用することができる。このように、本発明によれば、メインClipに含まれる所定の種類のストリームファイルと、同じ種類のサブClipに含まれるストリームファイルとの組み合わせを定義したり、サブClipに含まれる同じ種類のストリームファイルの組み合わせを定義することで、メインパスで参照されるストリームとサブパスで参照されるストリーム(同じ種類の2つのストリーム)や、2つのサブパスで参照されるストリーム(同じ種類の2つのストリーム)を合成して再生することができる。
すなわち、上述したような構成は、例えば、図43を用いて後述するように、メインパスで参照されるAVストリームのビデオストリームを主画面として表示させ、主画面の中に、サブパスのビデオパスで参照されるビデオストリームを子画面として合成して表示させる、いわゆるPinP(ピクチャインピクチャ)表示などについても利用することができる。上述した構成を応用することにより、PinP(ピクチャインピクチャ)表示を実行する場合の詳細については、後述する。
以上により、メインのAVストリームとは別のストリームやデータファイルでオーディオや字幕などを用意する場合、PlayListの中にメインパスとサブパスを有する構成としたので、ユーザにより音声切り替えや字幕切り替えという操作が行われる場合、メインClipAVストリームとは異なる別ストリームや別データファイルの中から再生されるストリームを選ぶことができる。
また、第1および第2のSTN_table()で、メインClipに含まれるオーディオストリームと、サブClipに含まれるオーディオストリームとの2つのオーディオストリームの組み合わせを選択できる構成としたので、ユーザは、2つのオーディオストリームの重畳再生を選ぶことができる。具体的には、STN_table()において、オーディオストリームとして2つのstream_attributes()をエントリー可能な構成とし、stream_entry()を、メインClipとサブClipの両方の組み合わせでオーディオストリームをエントリーすることが可能な構成としたので、オーディオストリームを2つ重畳して再生するよう指令することができる。
また、図16と図17に示されるように、第2のSTN_table()で、2つのサブClipに含まれる2本のオーディオストリームの組み合わせを選択できる構成としたので(secondary_audio_present_flagを設けたので)、ユーザは、2つのオーディオストリームの重畳再生を選ぶことができる。具体的には、第2のSTN_table()において、オーディオストリームとして1つのオーディオストリームIDで、2つのstream_entry()とstream_attributes()との組み合わせをエントリー可能な構成としたので、オーディオストリームを2つ重畳して再生するよう指令することができる。
また、メインパスのPlayItemの中に、AVストリームファイルに多重化されているデータと、Sub Pathにより参照されるデータのtypeを定義するSTN_Tableを設けるようにしたので、より、拡張性の高いストリームを実現することができる。
さらに、再生装置1は、STN_table()のstream_attributeを参照することで、自分自身が有する機能に対応するストリームだけを順次選択して再生することができる。
以上説明した再生装置1の処理をまとめると、以下のようになる。
再生装置1は、記録媒体に記録されている、少なくとも1つのストリームを含むメインClipAVストリームファイル(複数の種類のストリームからなるメインClip AVストリームファイル)の位置を示す主の再生パスであるMain Pathと、メインClipAVストリームファイルに含まれるメインストリームファイルの再生のタイミングに合わせて再生されるサブClip AVストリームファイルのそれぞれの位置を示す複数のサブパスにより構成される再生管理情報としてのPlayListを取得し、PlayListの中のメインパスに含まれる、メインClip AVストリームファイルの所定の種類のメインストリームファイル(例えば、1stオーディオストリーム)の再生のタイミングに合わせて再生される、同じ種類のサブClip AVストリームファイル(例えば、2ndオーディオストリーム)の組み合わせを示す情報であるSTN_table()(PlayItemで示されるSTN_table())に基づいて、再生するストリームの選択を受け付ける。
ここで、メインClipAVストリームファイルに含まれる所定の種類のメインストリームファイル(例えば、1stオーディオストリーム)と、そのメインストリームファイルの再生のタイミングに合わせて再生される、同じ種類のサブClipAVストリーム(2ndオーディオストリーム)との組み合わせの選択が受け付けられた場合、再生装置1は、選択されたメインClipAVストリームファイルとともに、サブパスにより参照される、対応するサブClipAVストリームファイルを読み出す。そして、再生装置1のミキシング処理部101は、この2つのオーディオストリーム(デコードされたオーディオストリーム)を合成し、ミキシング処理部97(AVデコーダ部26)は、合成されたストリームを再生(出力)する。
これにより、図34に示されるように、メインClip AVストリームファイルである本編のMovie(映画)にビデオデータ(Video)とオーディオデータ(Audio)が含まれており、監督のコメンタリ(Commentary)として、英語のコメンタリと、日本語のコメンタリがサブClipAVストリームファイルで与えられている場合に、ユーザは、audio_stream_number=1の本編のaudioと、audio_stream_number=2の本編のaudio+英語のコメンタリと、audio_stream_number=3の本編のaudio+日本語のコメンタリとの中から、再生するオーディオストリームを選択することができる。そして、メインClipAVストリームファイルとサブClipAVストリームファイルの組み合わせ(audio_stream_number=1と2)が選択された場合には、それらを合成して再生することができる。
このように、PlayListにMain PathとSub Pathを含め、Main PathとSub Pathが異なるClip AVストリームファイルを参照する構成としたので、ストリームに拡張性を持たせることができる。また、1つのSub Pathで複数のファイルを参照可能な構成としたので(例えば、図8)、複数の異なるストリームの中からユーザが選択することができる。
さらに、Main PathのPlayItemの中に、Main Pathにより参照されるAVストリームファイルに多重化されている(含まれる)付属データ(例えば、オーディオストリーム)と、Sub Pathにより参照される付属データとを定義するテーブルとして、図14を用いて説明した第1のSTN_table()または図16を用いて説明した第2のSTN_table()を設けるようにしたので、より、拡張性の高いストリームを実現することができる。また、STN_table()にエントリーすることにより、Sub Pathを容易に拡張することができる。
また、STN_table()にストリームの属性情報である図18のstream_attribute()を設けるようにしたので、再生装置1側で、選択されたストリームを再生可能か否かを判定することができる。さらに、stream_attribute()を参照することで、再生機能を有するストリームだけを選択して再生することができる。
さらに、第1または第2のSTN_table()(図14または図16)において、stream_entry()(図15または図17)でメインパスにより参照されるストリームファイルと、サブパスにより参照される、同じ種類のストリームファイル(ここでは、オーディオストリームファイル)との組み合わせを定義するとともに、図16と図17でサブパスにより参照される2本のオーディオストリームファイルの組み合わせを定義するようにし、さらに、図28を用いて説明したように、再生装置1に2つのオーディオデコーダ(1stオーディオデコーダ75−1と2ndオーディオデコーダ75−2)を設けるとともに、2つのオーディオデコーダによりデコードされたオーディオデータを合成(ミキシング)するミキシング処理部101を設けるようにしたので、2つの同じ種類のストリームを組み合わせて同時に再生することができる。
例えば、サブClipAVストリームファイルに含まれる所定の種類の2つのサブClipAVストリームファイルの組み合わせの選択が受け付けられた場合(すなわち、第2のSTN_table()が参照され、secondary_audio_present_flagが1とされ、1番目のStream_entry()と2番目のStream_entry()がともにtype=2とされる場合)、再生装置1は、選択された2つのサブClipAVストリームファイルを読み出す。そして、再生装置1のミキシング処理部101は、この2つのオーディオストリーム(デコードされたオーディオストリーム)を合成し、ミキシング処理部97(AVデコーダ部26)は、合成されたストリームを再生(出力)する。
また、Sub Pathには、図11に示されるように、Sub Pathのタイプ(オーディオやテキスト字幕といったタイプ)を示すSubPath_type、Sub Pathが参照するサブClipの名を示す図12のClip_Information_file_name、およびSub Pathが参照するClipのイン点を示す図12のSubPlayItem_IN_timeとアウト点を示す図12のSubPlayItem_OUT_timeを含むようにしたので、Sub Pathが参照するデータを的確に特定することができる。
さらに、Sub Pathには、Sub PathがMain Pathとを同じタイミングで再生するためのMain Path上のAVストリームファイルを指定する指定情報である図12のsync_PlayItem_id(例えば、図7と図8のsync_PlayItem_id)と、Sub Pathが参照するデータのイン点がMain Pathの時間軸上で同期してスタートするMain Path上の時刻であるsync_start_PTS_of_PlayItem(例えば、図7と図8のsync_start_PTS_of_PlayItem)とをさらに含むため、図7や図8に示されるように、Main Pathが参照するメインClipAVストリームファイルに同期してSub Pathが参照するデータ(ファイル)を再生することができる。
なお、図28のストレージドライブ22が読み出してAVデコーダ部26に供給するデータは、例えば、DVD(Digital Versatile Disc)などの記録媒体11に記録されているデータである。そして、ハードディスクなどで構成されているローカルストレージ24に記録されているデータも、ストレージドライブ22が読み出したデータとともに、AVデコーダ部26に供給される。そして、ローカルストレージ24に記録されているデータは、ネットワーク2を介してダウンロードしたデータであってもよい。換言すれば、AVデコーダ部26に供給されるデータは、着脱可能な記録媒体11に記録されているデータであっても、あらかじめ再生装置1に記憶されているデータであっても、他の装置からネットワークを介して供給されたデータであっても、これらが組み合わされたデータでもよい。例えば、ダウンロードされ、ハードディスクなどで構成されているローカルストレージ24に記録されたPlayListおよびサブClipと、DVDなどの記録媒体11に記録されたメインClipAVストリームファイルに基づいて、AVストリームの再生処理が実行されてもよい。また、例えば、DVDなどの記録媒体11に記録されたClipAVストリームファイルをサブClipとするようなPlayListとメインClipとがハードディスクなどで構成されているローカルストレージ24に記録されている場合に、ローカルストレージ24に記録されているPlayListに基づいて、メインClip AVストリームファイルとサブClip AVストリームファイルがそれぞれ、ローカルストレージ24と記録媒体11から読み出され再生されてもよい。
また、例えば、1つのメインパスと1つのサブパスで示されるストリームデータが再生される場合、又は2本のサブパスで示されるストリームデータが再生される場合、メインパスとサブパス、または、2本のサブパスで示されるストリームデータがそれぞれ別のトランスポートストリーム(TS)としてダウンロード等により取得されたときには、取得された2本の異なるTSにそれぞれ含まれるオーディオストリームが合成されることになる。一方、2本のサブパスで示されるストリームデータが再生される場合であっても、その2本のサブパスで示される少なくとも2つのストリームが含まれる1つのTSが取得された場合には、1つのTSに含まれる2つのオーディオストリームが合成されることになる。
また、図14を用いて説明した第1のSTN_tableを用い、図15のstream_attribute()においてtype=3とすることによりメインパスとサブパスで、2つのオーディオストリームを定義した場合や、図16を用いて説明した第2のSTN_tableを用い、secondary_audio_present_flagを用いて、図17のstream_attribute()においてメインパスとサブパス、またはサブパスのみで2つのオーディオストリームを定義した場合、再生装置1の1stオーディオデコーダ75−1は、メインClip AVストリームファイルまたはサブClip AVストリームファイルのオーディオストリームをデコードし、2ndオーディオデコーダ75−2はサブClip AVストリームファイルのオーディオストリームをデコードするのであるが、コーディック(エンコード)方式が同一(例えば、図19のDolby AC-3 audio)である2つのClipのオーディオストリームの組み合わせを、STN_table()で定義するよう制約を設けてもよい。換言すれば、STN_table()で定義される組み合わせにおいて同時にデコードされるものを、同一のコーディック方式となるように、制限を設けるようにしてもよい。
この場合、1stオーディオデコーダ75−1と2ndオーディオデコーダ75−2がオーディオストリームをデコードしている途中(例えば、MPEGにおいては、逆量子化されたが、IDCTされていない状態)であっても、コーディック方式が同一であれば、デコード途中のデータ方式も同様であるので、ミキシング処理部101によりミキシング可能となるからである。
以上説明した再生装置1においては、上述した図14の第1のSTN_table()または図16の第2のSTN_table()を参照することにより、PlayItemが参照するClipとSubPathが参照するClipを組み合わせたものの再生を選ぶことができるようになされていた。次に、2つのオーディオストリームのミキシング再生を選ぶことができる仕組みを提供するための異なる例について説明する。
図35は、2つのオーディオストリームのミキシング再生を行う場合における、STN_table()のシンタクスの第3の例(第3のSTN_table())を示す図である。第3のSTN_table()も、PlayItemの属性として設定されていることは言うまでもない。図35の第3のSTN_table()は、PlayItemが参照するClipとSubPathが参照するClipを組み合わせたものの再生を選ぶのではなく、再生されるClipを自由に選択することができるようになされている。
なお、図14を用いて説明した場合と同様の部分については、その説明を、適宜省略する。
図35の第3のSTN_table()は、2つのオーディオストリームが定義されている点で、図14を用いて説明した場合と異なる。Length、number_of_video_stream_entries、video_stream_id、video_stream_numberについては、図14を用いて説明した場合と同様である。
number_of_audio_stream_entriesは、第3のSTN_table()の中でエントリーされるaudio_stream_idが与えられる1番目のオーディオストリームのストリーム数を示す。audio_stream_idは、オーディオストリームを識別するための情報であり、audio_stream_numberは、音声切り替えに使われるユーザから見えるオーディオストリーム番号である。number_of_audio_stream2_entriesは、第3のSTN_table()の中でエントリーされるaudio_stream_id2が与えられる2番目のオーディオストリームのストリーム数を示す。audio_stream_id2は、オーディオストリームを識別するための情報であり、audio_stream_numberは、音声切り替えに使われるユーザから見えるオーディオストリーム番号である。
具体的には、第3のSTN_table()でエントリーされるnumber_of_audio_stream_entriesのオーディオストリームは、後述する図36の再生装置141または図53の再生装置401の1stオーディオデコーダ75−1でデコードされるオーディオストリームであり、第3のSTN_table()でエントリーされるnumber_of_audio_stream2_entriesのオーディオストリームは、後述する図36の再生装置141または図53の再生装置401の2ndオーディオデコーダ75−2でデコードされるオーディオストリームである。このように、図35の第3のSTN_table()では、2つのオーディオデコーダのそれぞれにデコードさせるオーディオストリームをエントリーすることができる。
なお、以下において、図36の再生装置141または図53の再生装置401の1stオーディオデコーダ75−1でデコードされるnumber_of_audio_stream_entriesのオーディオストリームをオーディオストリーム#1と称し(さらに、オーディオストリーム#1は、後述するように、プライマリ(Primary)オーディオストリームと称される場合もある)、図36の再生装置141または図53の再生装置401の2ndオーディオデコーダ75−2でデコードされるnumber_of_audio_stream2_entriesのオーディオストリームをオーディオストリーム#2と称する(さらに、オーディオストリーム#2は、後述するように、セカンダリ(Secondary)オーディオストリームと称される場合もある)。また、オーディオストリーム#1は、オーディオストリーム#2よりも優先されるオーディオストリームであるものとする。
number_of_PG_txtST_stream_entries、PG_txtST_stream_id、および、PG_txtST_stream_numberについては、図14を用いて説明した場合と同様である。
また、number_of_IG_stream_entries、IG_stream_id、IG_stream_numberについては、図14を用いて説明した場合と同様である。
そして、stream_entry()のシンタクスについては、図17を用いて説明した場合と同様である。
そして、図14、図16を用いて説明したビデオストリームID (video_stream_id)のforループ、および、オーディオストリームID (audio_stream_id)のforループにおける場合と同様に、オーディオストリームID2 (audio_stream_id2)のforループの中で、順番にstream_entry()ごとに特定される1つのオーディオエレメンタリストリームに、0からaudio_stream_id2が与えられる。なお、ビデオストリームの場合と同様に、オーディオストリームID2(audio_stream_id2)の代わりに、オーディオストリーム番号2(audio_stream_number2)を用いるようにしてもよい。この場合、audio_stream_number2は、0ではなく1から与えられる。すなわち、audio_stream_id2の値に1を加算したものがaudio_stream_number2である。オーディオストリーム番号2は、音声切り替えに使われる、ユーザから見えるオーディオストリーム番号2であるので、1から定義される。
すなわち、図35の第3のSTN_table()においては、number_of_audio_stream_entries(オーディオストリーム#1)のオーディオストリームと、number_of_audio_stream2_entries(オーディオストリーム#2)のオーディオストリームとが定義される。換言すれば、第3のSTN_table()を用いて、オーディオストリーム#1とオーディオストリーム#2とをエントリーすることができるので、ユーザは、同期して再生するオーディオストリームを2本選択することができる。
そして、字幕ストリームID (PG_txtST_stream_id)のforループ、および、グラフィックスストリームID (IG_stream_id)のforループの中idについても、図14、または、図16における場合と同様である。
次に、図35の第3のSTN_table()のstream_attribute()について説明する。なお、stream_attribute()のシンタクスについては、図18乃至図25を用いて説明した場合と同様である。
reserved_for_future_useの後のfor文では、video streamの分だけvideo streamが参照され、ディスク製造者が、オーディオストリームに対してMain PathおよびSub Pathを設定した分だけaudio streamが参照され、PG textST streamの分だけPG textST streamが参照され、IG streamの分だけIG streamが参照される。
ビデオストリームID (video_stream_id)のforループの中のstream_attribute()は、stream_entry()ごとに特定される1つのビデオエレメンタリストリームのストリーム属性情報を与える。すなわち、このstream_attribute()には、stream_entry()ごとに特定される1つのビデオエレメンタリストリームのストリーム属性情報が記述されている。
同様に、オーディオストリームID(audio_stream_id)のforループの中のstream_attribute()は、stream_entry()ごとに特定される1つのオーディオエレメンタリストリームのストリーム属性情報を与える。すなわち、このstream_attribute()には、stream_entry()ごとに特定される1つのオーディオエレメンタリストリームのストリーム属性情報が記述されている。例えば、図15のstream_entry()のtype=1またはtype=2で特定されるオーディオエレメンタリストリームは1つであるので、stream_attribute()は、その1つのオーディオエレメンタリストリームのストリーム属性情報を与える。
同様に、オーディオストリームID2(audio_stream_id2)のforループの中のstream_attribute()は、stream_entry()ごとに特定される1つのオーディオエレメンタリストリームのストリーム属性情報を与える。すなわち、このstream_attribute()には、stream_entry()ごとに特定される1つのオーディオエレメンタリストリームのストリーム属性情報が記述されている。例えば、図15のstream_entry()のtype=1またはtype=2で特定されるオーディオエレメンタリストリームは1つであるので、stream_attribute()は、その1つのオーディオエレメンタリストリームのストリーム属性情報を与える。
同様に、字幕ストリームID(PG_txtST_stream_id)のforループの中のstream_attribute()は、stream_entry()ごとに特定される1つのビットマップ字幕エレメンタリストリームまたはテキスト字幕エレメンタリストリームのストリーム属性情報を与える。すなわち、このstream_attribute()には、stream_entry()ごとに特定される1つのビットマップ字幕エレメンタリストリームのストリーム属性情報が記述されている。
同様に、グラフィックスストリームID(IG_stream_id)のforループの中のstream_attribute()は、stream_entry()ごとに特定される1つのインタラクティブグラフィックスエレメンタリストリームのストリーム属性情報を与える。すなわち、このstream_attribute()には、stream_entry()ごとに特定される1つのインタラクティブグラフィックスエレメンタリストリームのストリーム属性情報が記述されている。
このように、第3のSTN_tableが用いられる場合においても、PlayItemとそれに関連付けられて再生される1つ以上のSubPathが用意されているとき、このPlayItemが参照するClipと1つ以上のSubPathが参照するClipの中から、stream_entry()によって特定された1つのエレメンタリストリームの属性情報をstream_attribute()によって知ることができる。
再生装置は、第1または第2のSTN_tableが用いられる場合と同様にして、この属性情報(stream_attribute())を調べることによって、そのエレメンタリストリームを自分自身が再生する機能を持っているか否かを調べることができる。また、再生装置は、この属性情報を調べることによって、再生装置の言語設定の初期情報に対応したエレメンタリストリームの選択することができる。
なお、図35の第3のSTN_table()が適用される場合、オーディオストリーム#1とオーディオストリーム#2とは、両方ともメインパスにより参照されるClipに含まれるオーディオストリームとしてもよい。また、オーディオストリーム#1とオーディオストリーム#2のうちの、一方をメインパスにより参照されるClipに含まれるオーディオストリームとし、他方をサブパスにより参照されるClipに含まれるオーディオストリームとしてもよい。このように、図35の第3のSTN_table()が適用される場合、メインパスにより参照されるメインClipAVストリームに重畳された複数のオーディオストリームを2つ選択して、ミキシングして再生することも可能である。
このようにして、PlayItem()の中に第3のSTN_table()を設けるようにすることにより、PlayItemとそれに関連付けられて再生される1つ以上のSubPathが用意されている場合に、ユーザによる音声切り替えや字幕切り替えという操作により、このPlayItemが参照するClipと1つ以上のSubPathが参照するClipの中から再生されるストリームを自由に組み合わせて選ぶことができる仕組みが提供されるので、ユーザは、再生するAVストリームとは異なるストリームやデータファイルに対しても、インタラクティブな操作を行うことができる。
また、第1および第2のSTN_tableにおける場合と同様に、第3のSTN_tableが適用される場合においても、1つのPlayListの中にSubPathを複数使用し、それぞれのSubPathがそれぞれSubPlayItemを参照する構成としたので、拡張性の高い、また、自由度の高いAVストリームを実現することができる。すなわち、このPlayListにより再生されるコンテンツにおいて、後で、SubPlayItemを追加できる構成とすることができる。
さらに、図35を用いて説明した第3のSTN_table()は、後述する図36の再生装置141または図53の再生装置401の1stオーディオデコーダ75−1でデコードされるオーディオストリーム#1と、2ndオーディオデコーダ75−2でデコードされるオーディオストリーム#2とをミキシングして再生することができる仕組みを提供するようにした。例えば、PlayItem()とそれに関連付けられて再生される1つ以上のSubPathが用意されている場合に、PlayItemが参照するClipに含まれるオーディオストリームをオーディオストリーム#1とし、SubPathが参照するClipに含まれるオーディオストリームをオーディオストリーム#2とし、これらををミキシングして再生することができる仕組みを提供するようにした。また、例えば、PlayItemが参照するClip(メインClip)に含まれる2つのオーディオストリームを、それぞれオーディオストリーム#1とオーディオストリーム#2とし、これらをミキシングして再生することができる仕組みを提供するようにした。
これにより、メインオーディオストリームと、メインのオーディオストリームとは異なるオーディオストリーム(例えば、監督のコメントのストリーム)の重畳再生を行うことができる。また、メインClipAVストリームに重畳されている2つのオーディオストリーム#1とオーディオストリーム#2とを重畳(ミキシング)して再生することができる。
具体的には、例えば、図26を参照して説明した場合と同様にして、ユーザに提供する音声信号と字幕信号の関係を表すストリームナンバーテーブルにおいて、音声番号をA_SN(Audio Stream Number)、A_SN2と称し、字幕番号をS_SN(SubPicture Stream Number)と称した場合、PlayListのMain Pathを構成するPlayItemの第3のSTN_table()でエントリーされるオーディオストリーム#1(audio_stream_idでエントリーされるオーディオストリーム)のそれぞれにA_SNが与えられ、ユーザは、A_SNが与えられているオーディオストリームの中から、再生するオーディオストリーム#1を選択することができるようになされる。同様に、第3のSTN_table()でエントリーされるオーディオストリーム#2(audio_stream_id2でエントリーされるオーディオストリーム)のそれぞれにA_SN2を与えることにより、ユーザに、選択したオーディオストリーム#1とミキシングされるオーディオストリーム#2を、A_SN2が与えられているオーディオストリームの中から選択させるようにすることができる。
ここで、オーディオストリーム#1を選択するためのA_SNと、オーディオストリーム#2を選択するためのA_SN2とは、ユーザにより独立に選択可能なようになされているため、2つの音声の切り替えは独立している。
すなわち、再生する2つのオーディオストリーム(オーディオストリーム#1とオーディオストリーム#2)とを別々に定義することで、ユーザは、再生する2つのオーディオストリームを、定義されたものの中から任意に選択することができる。換言すれば、ユーザは、再生する2つのオーディオストリームの選択を自由に(オーディオストリーム#1とオーディオストリーム#2で定義されているものの中から自由に)行うことができるので、組み合わせの自由度の高い選択を行うことができる。例えば、ユーザは、オーディオ2+オーディオ4の組み合わせ(A_SN=1とA_SN2=1の組み合わせ)や、オーディオ2+オーディオ5の組み合わせ(A_SN=1とA_SN2=2の組み合わせ)を選択することができる。
このように、PlayItem()の中の第3のSTN table()(図35)のstream_entry()で、2本のオーディオストリームをエントリーすることが可能な構成としたので、2つのオーディオストリームをミキシングして再生することができる。すなわち、複数の種類からなるストリームから、同じ種類(この例の場合、オーディオストリーム)の2本のストリームをミキシング(重畳、または合成)して、同時に再生することができる。また、ユーザは、所望する2本の同じ種類のストリームのミキシング再生を指令することができる。
次に、本発明を適用した再生装置の異なる例として、第3のSTN table()(図35)など、2本のオーディオストリームを個別にエントリーすることが可能な構成を用いて、2つのオーディオストリームをミキシングして再生することができる再生装置141について説明する。
再生装置141は、再生装置1のAVデコーダ部26に代わって、AVデコーダ部151が設けられている以外は、基本的に、図27を用いて説明した再生装置1と同様の構成を有するものである。図36は、AVデコーダ部151の構成例を示すブロック図である。このAVデコーダ部151を備えた再生装置141は、上述したメインパスとサブパスを有する、図35を用いて説明した第3のSTN_tableが記載されたPlayListに基づいて、AVストリームを再生することができる。
そして、再生装置141のAVデコーダ部151は、PIDフィルタ55に代わってPIDフィルタ161が設けられ、スイッチ59に代わってスイッチ162が設けられている以外は、基本的に、再生装置1のAVデコーダ部26と同様の構成を有するものである。また、図35の第3のSTN_table()において、audio_stream_idで与えられるオーディオストリームをデコードするためのものが1stオーディオデコーダ75−1であり、audio_stream_id2で与えられるオーディオストリームをデコードするためのものが2ndオーディオデコーダ75−2である。
コントローラ21により読み出されたファイルデータは、図示せぬ復調、ECC復号部により、復調され、復調された多重化ストリームに誤り訂正が施される。スイッチ32は、復調され、誤り訂正が施されたデータを、コントローラ21からの制御に基づいて、ストリームの種類ごとに選択し、対応するバッファ51乃至54に供給する。具体的には、スイッチ32は、コントローラ21からの制御に基づいて、バックグラウンドイメージデータをバッファ51に供給し、メインClipから読み出されたデータ(すなわち、メインClip AVストリーム)をバッファ52に供給し、サブClipから読み出されたデータ(すなわち、サブClip AVストリーム)をバッファ53に供給し、Text-STのデータをバッファ54に供給するようスイッチ32を切り替える。バッファ51は、バックグラウンドイメージデータをバッファリングし、バッファ52は、メインClipから読み出されたデータをバッファリングし、バッファ53は、サブClipから読み出されたデータをバッファリングし、バッファ54は、Text-STデータをバッファリングする。
メインClip AVストリーム用リードバッファであるバッファ52から読み出されたストリームデータは、所定のタイミングで、後段のPID(パケットID)フィルタ161へ出力される。このPIDフィルタ161は、入力されたメインClip AVストリームをPID(パケットID)に応じて、後段の各エレメンタリストリームのデコーダへ振り分けて出力する。すなわち、PIDフィルタ161は、ビデオストリームをビデオデコーダ72に供給し、プレゼンテーショングラフィックスストリームをプレゼンテーショングラフィックスデコーダ73への供給元となるスイッチ57に供給し、インタラクティブグラフィックスストリームをインタラクティブグラフィックスデコーダ74への供給元となるスイッチ58に供給し、オーディオストリームを1stオーディオデコーダ75−1と2ndオーディオデコーダ75−2への供給元となるスイッチ162に供給する。
サブClip AVストリーム用リードバッファであるバッファ53から読み出されたストリームデータは、所定のタイミングで、後段のPID(パケットID)フィルタ56へ出力される。このPIDフィルタ56は、入力されたサブClip AVストリームをPID(パケットID)に応じて、後段の各エレメンタリストリームのデコーダへ振り分けて出力する。すなわち、PIDフィルタ56は、プレゼンテーショングラフィックスストリームをプレゼンテーショングラフィックスデコーダ73への供給元となるスイッチ57に供給し、インタラクティブグラフィックスストリームをインタラクティブグラフィックスデコーダ74への供給元となるスイッチ58に供給し、オーディオストリームを1stオーディオデコーダ75−1と2ndオーディオデコーダ75−2への供給元となるスイッチ162に供給する。
PIDフィルタ161により振り分けられたビデオストリームは、後段のビデオデコーダ72に供給される。ビデオデコーダ72は、ビデオストリームをデコードし、デコードしたビデオデータをビデオプレーン生成部92へ出力する。
スイッチ57は、PIDフィルタ161から供給されたメインClip AVストリームに含まれるプレゼンテーショングラフィックスストリームと、サブClip AVストリームに含まれるプレゼンテーショングラフィックスストリームのうちのいずれか1つを選択し、選択したプレゼンテーショングラフィックスストリームを、後段のプレゼンテーショングラフィックスデコーダ73に供給する。プレゼンテーショングラフィックスデコーダ73は、プレゼンテーショングラフィックスストリームをデコードし、デコードしたプレゼンテーショングラフィックスストリームのデータをプレゼンテーショングラフィックスプレーン生成部93への供給元となるスイッチ77に供給する。
また、スイッチ58は、PIDフィルタ161から供給されたメインClip AVストリームに含まれるインタラクティブグラフィックスストリームと、サブClip AVストリームに含まれるインタラクティブグラフィックスストリームのうちのいずれか1つを選択し、選択したインタラクティブグラフィックスストリームを、後段のインタラクティブグラフィックスストリームデコーダ74に供給する。すなわち、インタラクティブグラフィックスデコーダ74へ同時に入力されるインタラクティブグラフィックスストリームは、メインClip AVストリームまたはサブClip AVストリームのどちらかから分離されたストリームである。インタラクティブグラフィックスデコーダ74は、インタラクティブグラフィックスストリームをデコードし、デコードしたインタラクティブグラフィックスストリームのデータを、インタラクティブグラフィックスプレーン生成部94に供給する。
さらに、スイッチ162は、PIDフィルタ161から供給されたメインClip AVストリームに含まれるオーディオストリームと、サブClip AVストリームに含まれるオーディオストリームのうちのいずれか1つを選択し、選択したオーディオストリームを、後段の1stオーディオデコーダ75−1または、2ndオーディオデコーダ75−2に供給する。ここで、1stオーディオデコーダ75−1へ同時に入力されるオーディオストリームは、メインClip AVストリームまたはサブClip AVストリームのどちらかから分離されたストリームである。また、同様に、2ndオーディオデコーダ75−2へ同時に入力されるオーディオストリームも、メインClip AVストリームまたはサブClip AVストリームのどちらかから分離されたストリームである。例えば、メインClip AVストリームにオーディオストリーム#1とオーディオストリーム#2とが含まれていた場合、PIDフィルタ161は、オーディオストリームのPIDに基づいて、オーディオストリーム#1とオーディオストリーム#2とをフィルタリングし、スイッチ162に供給する。
スイッチ162は、例えば、PIDフィルタ161から供給されたオーディオストリーム#1を、1stオーディオデコーダ75−1に供給するようスイッチを選択し、PIDフィルタ161から供給されたオーディオストリーム#2を、2ndオーディオデコーダ75−2に供給するようスイッチを選択する。
1stオーディオデコーダ75−1は、オーディオストリームをデコードし、デコードしたオーディオストリームのデータをミキシング処理部101に供給する。また、2ndオーディオデコーダ75−2は、オーディオストリームをデコードし、デコードしたオーディオストリームのデータをミキシング処理部101に供給する。
ここで、オーディオストリーム#1とオーディオストリーム#2とを重畳して再生するような場合(ユーザにより再生するオーディオストリームとして、2つのオーディオストリームが選択された場合)、1stオーディオデコーダ75−1によりデコードされたオーディオストリーム#1と、2ndオーディオデコーダ75−2によりデコードされたオーディオストリーム#2とが、ミキシング処理部101に供給される。
ミキシング処理部101は、1stオーディオデコーダ75−1からのオーディオデータと、2ndオーディオデコーダ75−2からのオーディオデータとをミキシング(重畳)し、後段のミキシング処理部97に出力する。なお、本実施の形態においては、1stオーディオデコーダ75−1から出力されるオーディオデータと2ndオーディオデコーダ75−2から出力されるオーディオデータとをミキシング(重畳)することを、合成するとも称する。すなわち、合成とは、2つのオーディオデータを、ミキシングすることも示すものとする。
また、スイッチ32により選択されたサウンドデータは、バッファ95に供給され、バッファリングされる。バッファ95は、所定のタイミングでサウンドデータをミキシング処理部97に供給する。サウンドデータは、この場合、メニュー選択などによる効果音のデータである。ミキシング処理部97は、ミキシング処理部101によりミキシングされたオーディオデータ(1stオーディオデコーダ75−1から出力されたオーディオデータと2ndオーディオデコーダ75−2から出力されたオーディオデータとがミキシングされたオーディオデータ)と、バッファ95から供給されてきたサウンドデータをミキシング(重畳、または合成)し、音声信号として出力する。
そして、テキストサブタイトル(Text-ST)データ、プレゼンテーショングラフィックスストリーム、バックグラウンドイメージデータ、および、ビデオデータの処理については、基本的に、再生装置1のAVデコーダ部26を用いて説明した場合と同様である。
また、スイッチ57乃至58、および、スイッチ162、並びにスイッチ77は、操作入力部29を用いて指令されるユーザからの選択に基づいて、または、対象となるデータが含まれるファイルが供給される側に、スイッチを切り替える。例えば、サブClip AVストリームファイルのみにしか、オーディオストリームが含まれていない場合、スイッチ162はサブClip AVストリームファイルを供給する側(PIDフィルタ56の出力)にスイッチを切り替える。
次に、図36の再生装置141における再生処理について説明する。操作入力部29を用いてユーザにより所定のAVストリームの再生が指令されたとき、コントローラ21は、ストレージドライブ22を介して記録媒体11から、または、HDD(Hard Disk Drive)などで構成されるローカルストレージ24から、例えば、図9を用いて説明したPlayListのファイルと、PlayListに含まれるPlayItemおよびSubPlayItemに基づいて、メインClip AVストリーム、サブClip AVストリーム、およびテキストサブタイトルデータ(Text-STデータ)を読み出す。
コントローラ21は、バックグラウンドイメージデータをバッファ51に供給し、メインClip AVストリームのデータをバッファ52に供給し、サブClip AVストリームのデータをバッファ53に供給し、Text-STのデータをバッファ54に供給するようスイッチ32を切り替える。
そして、スイッチ32が切り替えられて、バックグラウンドイメージデータはバッファ51に供給され、メインClip AVストリームのデータはバッファ52に供給され、サブClip AVストリームのデータはバッファ53に供給され、テキストサブタイトルデータはバッファ54に供給され、各バッファ51乃至54は、供給されたデータをそれぞれバッファリングする。
そして、バッファ51は、バックグラウンドイメージデータをバックグラウンドデコーダ71に出力し、バッファ52はメインClip AVストリームのストリームデータをPIDフィルタ161に出力し、バッファ54は、テキストサブタイトルデータをテキストサブタイトルコンポジション76に出力し、バッファ53は、サブClip AVストリームのストリームデータをPIDフィルタ56に出力する。
PIDフィルタ161は、ビデオストリームをビデオデコーダ72に供給し、プレゼンテーショングラフィックスストリームをプレゼンテーショングラフィックスデコーダ73への供給元となるスイッチ57に供給し、インタラクティブグラフィックスストリームをインタラクティブグラフィックスデコーダ74への供給元となるスイッチ58に供給し、オーディオストリームを1stオーディオデコーダ75−1または2ndオーディオデコーダ75−2への供給元となるスイッチ162に供給する。すなわち、ビデオストリーム、プレゼンテーショングラフィックスストリーム、インタラクティブグラフィックスストリーム、およびオーディオストリームには、それぞれ異なるPIDが付されている。
そして、PIDフィルタ56は、プレゼンテーショングラフィックスストリームをプレゼンテーショングラフィックスデコーダ73への供給元となるスイッチ57に供給し、インタラクティブグラフィックスストリームをインタラクティブグラフィックスデコーダ74への供給元となるスイッチ58に供給し、オーディオストリームを1stオーディオデコーダ75−1と2ndオーディオデコーダ75−2への供給元となるスイッチ162に供給する。
そして、PIDフィルタ161およびPIDフィルタ56の後段のスイッチ57、スイッチ58、および、スイッチ162は、コントローラ21からの制御に基づいて、メインClipとサブClipのいずれかを選択する。すなわち、スイッチ57は、PIDフィルタ161から供給されたメインClip AVストリームまたはサブClip AVストリームのプレゼンテーショングラフィックスストリームを選択し、後段のプレゼンテーショングラフィックスデコーダ73に供給する。また、スイッチ58は、PIDフィルタ161から供給されたメインClip AVストリームまたはサブClip AVストリームのインタラクティブグラフィックスストリームを選択し、後段のインタラクティブグラフィックスストリームデコーダ74に供給する。
さらに、スイッチ162は、PIDフィルタ161から供給されたメインClip AVストリーム、または、PIDフィルタ56から供給されたサブClip AVストリームのオーディオストリーム(ここでは、音声が切り替えられる前であるので、オーディオストリーム#1)を選択し、後段の1stオーディオデコーダ75−1に供給する。なお、音声を切り替えるような指令がユーザにより行われた場合には、スイッチ162は、メインClip AVストリームのオーディオストリームを2ndオーディオデコーダ75−2に供給したり、サブClip AVストリームのオーディオストリームを1stオーディオデコーダ75−1や2ndオーディオデコーダ75−2に供給したりもするが、ここでは、音声が切り替えられる前の再生処理について説明しているので、その説明は省略している。
そして、バックグラウンドデコーダ71は、バックグラウンドイメージデータをデコードし、これをバックグラウンドプレーン生成部91に出力し、ビデオデコーダ72は、ビデオストリームをデコードし、これをビデオプレーン生成部92に出力し、プレゼンテーショングラフィックスデコーダ73は、スイッチ57により選択され、供給されたプレゼンテーショングラフィックスストリームをデコードし、これを後段のスイッチ77に出力し、インタラクティブグラフィックスデコーダ74は、スイッチ58により選択され、供給されたインタラクティブグラフィックスストリームをデコードし、これを後段のインタラクティブグラフィックスプレーン生成部94に出力し、Text-STコンポジション76は、テキストサブタイトルデータをデコードし、これを後段のスイッチ77に出力する。
そして、1stオーディオデコーダ75−1は、スイッチ162により選択され、供給されたオーティオストリーム(オーディオストリーム#1)をデコードし、これを後段のミキシング処理部101に出力する。音声の切り替えがユーザにより指示されていない状態における再生処理では、2ndオーディオデコーダ75−2からオーディオデータが出力されることはないので、ミキシング処理部101は、1stオーディオデコーダ75−1から出力されたオーディオデータを、そのまま後段のミキシング処理部97に供給する。
スイッチ77は、プレゼンテーショングラフィックスデコーダ73またはText-STコンポジション76からのデータのいずれかを選択し、選択したデータをプレゼンテーショングラフィックスプレーン生成部93に供給する。バックグラウンドプレーン生成部91は、バックグラウンドデコーダ71から供給されたバックグラウンドイメージデータに基づいて、バックグラウンドプレーンを生成し、ビデオプレーン生成部92は、ビデオデコーダ72から供給されたビデオデータに基づいて、ビデオプレーンを生成し、プレゼンテーショングラフィックスプレーン生成部93は、スイッチ77により選択され、供給されたプレゼンテーショングラフィックスデコーダ73からのデータまたはText-STコンポジション76からのデータに基づいて、プレゼンテーショングラフィックスプレーンを生成し、インタラクティブグラフィックスプレーン生成部94は、インタラクティブグラフィックスデコーダ74から供給されたインタラクティブグラフィックスストリームのデータに基づいて、インタラクティブグラフィックスプレーンを生成する。また、バッファ95は、供給されたサウンドデータをバッファリングし、所定のタイミングでミキシング処理部97に供給する。
そして、ビデオデータ処理部96は、各プレーンのデータを合成し、ビデオデータとして出力する。ミキシング処理部97は、オーディオデータ(ミキシング処理部101から出力されたオーディオデータ)とサウンドデータをミキシング(合成)し、出力する。
このような処理により、PlayListに含まれるメインパスとサブパスによりメインClip AVストリーム、サブClip AVストリーム、およびテキストサブタイトルデータが参照され、再生される。PlayListにメインパスとサブパスを設けるようにし、サブパスで、メインパスで指定するClip AVストリームファイルとは異なるClip AVストリームである、サブClip AVストリームを指定可能な構成としたので、メインパスのPlayItemが指すメインClipとは異なるClipであるサブClipに含まれるデータとメインClipに含まれるデータとを一緒に(同じタイミングで)再生することができる。
次に、音声の切り替えが指示された場合の再生装置141における処理について説明する。最初に、ユーザによりオーディオストリーム#1に対する音声の切り替えが指示される場合の処理を説明する。オーディオストリーム#2に対する音声の切り替えの処理については、後述する。なお、これらの処理は、例えば、再生装置141の再生処理の実行中に実行される処理である。
まず、コントローラ21は、オーディオストリーム番号(IDでもよい)の順番リストを取得する。具体的には、コントローラ21は、PlayItemのSTN_table()を参照し、さらに図35を用いて説明した第3のSTN_table()にエントリーされているオーディオストリーム番号(ID)の順番のリストを取得する。この処理は、再生処理が開始されたときに実行される処理である。
ユーザにより、操作入力部29を用いて、音声切り替えの指令が行われた場合、コントローラ21は、ユーザからのオーディオストリーム#1に対する音声切り替えの指令を受け付ける。このとき、コントローラ21は、図示せぬ外部の表示装置を制御して、ストリームナンバーテーブルを外部の表示装置に表示させるように制御するようにしてもよい。
この処理は、オーディオストリーム#1に対する音声の切り替えが指令される場合の処理であるので、ユーザは、例えば、ストリームナンバーテーブルにおける、A_SN=1、A_SN=2、A_SN=3のオーディオの切り替えを指令する。具体的には、ユーザは、A_SN=1のオーディオ2からA_SN=2のオーディオ1へのオーディオの切り替えを指令する。コントローラ21は、この、ユーザからのオーディオストリーム#1に対する音声の切り替えを受け付ける。
コントローラ21は、再生しているオーディオストリーム番号の次のオーディオストリーム番号を取得する。例えば、A_SN=1に対応するオーディオストリームファイルが再生されていた場合、A_SN=2に対応するオーディオストリームの番号が取得される。
コントローラ21は、stream_attribute()(図18)に記述されている内容に基づいて、自分自身(再生装置141)が、取得した番号に対応するオーディオストリーム(オーディオストリーム#1)を再生する機能を有するか否かを判定する。例えば、Stream_entry()において、type=1である場合、コントローラ21は、再生装置141が取得した番号に対応するメインClipに含まれるオーディオストリームを再生する機能を有するか否かを判定する。取得した番号に対応するオーディオストリームは、オーディオデコーダ75−1でデコードされるオーディオストリーム#1であるので、この処理は、このオーディオストリーム#1を、オーディオデコーダ75−1がデコードできるか否かを判定しているとも換言することができる。
取得した番号に対応するオーディオストリームを再生する機能を有しない場合、コントローラ21は、現在のストリーム番号の次のストリーム番号を取得する。すなわち、現在のストリーム番号のオーディオストリームを再生する機能を有さない場合には、そのストリーム番号は飛ばされ(再生対象とならず)、自分自身が再生する機能を有するオーディオストリーム(オーディオストリーム#1)の番号が取得されるまで、次のストリーム番号を取得する処理が繰り返される。
一方、取得した番号に対応するオーディオストリームを再生する機能を有する場合、コントローラ21は、取得した番号に対応するオーディオストリームを含むClipを調べる。
例えば、コントローラ21は、Stream_entry()のtypeに基づいて、取得した番号に対応するオーディオストリームがメインClipにあるのか(type=1)、サブClipにあるのか(type=2)を調べる。また、例えば、Stream_entry()において、type=1である場合、コントローラ21は、取得した番号に対応するオーディオストリームが、メインClipにあることを確認する。さらに、例えば、type=2である場合、コントローラ21は、取得した番号に対応するオーディオストリームがサブClipにあることを確認する。
そして、コントローラ21は、所望のオーディオストリーム、具体的には、取得した番号に対応するストリームの属するメインClipまたはサブClipの中の所望のオーディオストリームを特定する。例えば、取得した番号に対応するオーディオストリームが、メインClipに含まれることが確認された場合、コントローラ21は、Stream_entry()のtype=1でエントリーされている情報(ref_to_stream_PID_of_mainClip)に基づいて、メインClipの中の所定のオーディオストリームを特定する。また、例えば、取得した番号に対応するオーディオストリームがサブClipに含まれることが確認された場合、コントローラ21は、Stream_entry()のtype=2でエントリーされている情報(ref_to_SubPath_id、ref_to_SubClip_entry_id、ref_to_stream_PID_of_SubClip)に基づいて、サブClipの中の所定のオーディオストリームを特定する。この特定されたオーディオストリームが、オーディオデコーダ75−1でデコードされるオーディオストリーム#1となる。
そして、コントローラ21は、所望のオーディオストリームが多重化されているClipに含まれるClip AVストリーム(メインClip AVストリームまたはサブClip AVストリーム)から特定されたオーディオストリームを読み出すようストレージドライブ22に指示し、ストレージドライブ22は、この指示に基づいて、対象となるClipから所望のオーディオストリームを読み出して、AVデコーダ部151に供給する。または、コントローラ21は、ローカルストレージ24に記録されている、所望のオーディオストリームが多重化されているClip AVストリーム(メインClip AVストリームまたはサブClip AVストリーム)から所望のオーディオストリームを読み出して、AVデコーダ部151に供給する。そして、コントローラ21は、読み出された所望のオーディオストリーム(すなわち、オーディオストリーム#1)をAVデコーダ部151のオーディオデコーダ75−1に供給するとともに、そのオーディオストリームをデコードさせるようオーディオデコーダ75−1に指示する。
AVデコーダ部151のオーディオデコーダ75−1は、オーディオストリーム#1(ステップS58の処理で読み出しが指令されたオーディオストリーム)をデコードし、ミキシング処理部101に出力する。ここで、オーディオストリーム#2がオーディオデコーダ75−2によってデコードされている場合には、ミキシング処理部101は、デコードされたオーディオストリーム#1とオーディオストリーム#2とをミキシングし、後段のミキシング処理部97に供給する。一方、オーディオストリーム#2がオーディオデコーダ75−2によってデコードされていない場合には、ミキシング処理部101は、デコードされたオーディオストリーム#1をそのまま、後段のミキシング処理部97に供給する。ミキシング処理部97は、ミキシング処理部101から供給されたオーディオデータ(オーディオストリーム#1のみがデコードされたオーディオデータ、または、オーディオストリーム#1とオーディオストリーム#2とがそれぞれデコードされ、ミキシングされたオーディオデータ)と、バッファ95から出力されるサウンドデータとを、ミキシング処理し、オーディオ信号として出力する。
次に、ユーザによりオーディオストリーム#2に対する音声の切り替えが指示される場合の処理を説明する。なお、この処理も、再生処理の実行中に実行される処理である。また、一般的には、オーディオストリーム#2を再生する場合、オーディオストリーム#1もまた再生されているので、この処理は、例えば、オーディオストリーム#1の再生処理と並行して実行され、オーディオストリーム#2がユーザにより選択されない場合には、オーディオストリーム#1の再生処理のみが実行される。
まず、コントローラ21は、PlayItemのSTN_table()を参照し、さらに図35を用いて説明した第3のSTN_table()にエントリーされているオーディオストリーム番号(ID)の順番のリストを取得する。この処理は、再生処理が開始されたときに実行される処理である。
ユーザにより、操作入力部29を用いて、音声切り替えの指令が行われた場合、コントローラ21は、ユーザからのオーディオストリーム#2に対する音声切り替えの指令を受け付ける。このとき、コントローラ21は、図示せぬ外部の表示装置を制御して、図26ストリームナンバーテーブルを外部の表示装置に表示させるように制御するようにしてもよい。この処理は、オーディオストリーム#2に対する音声の切り替えが指令される場合の処理であるので、ユーザは、例えば、ストリームナンバーテーブルにおける、A_SN2=1とA_SN2=2とに対応するオーディオの切り替えを指令する。コントローラ21は、この、ユーザからのオーディオストリーム#2に対する音声の切り替えを受け付ける。コントローラ21は、再生しているオーディオストリーム番号の次のオーディオストリーム番号を取得する。
そして、コントローラ21は、stream_attribute()(図18)に記述されている内容に基づいて、取得した番号に対応するオーディオストリーム(オーディオストリーム#2)を自分自身(再生装置141)が再生する機能を有するか否かを判定する。取得した番号に対応するオーディオストリームは、オーディオデコーダ75−2でデコードされるオーディオストリーム#2であるので、この処理は、このオーディオストリーム#2を、オーディオデコーダ75−2がデコードできるか否かを判定しているとも換言することができる。
なお、1stオーディオデコーダ75−1でデコードされるオーディオストリーム#1の方が、2ndオーディオデコーダ75−2でデコードされるオーディオストリーム#2より拡張性が高くマルチストリームである場合を仮定するような場合、例えば、1stオーディオデコーダ75−1の方が2ndオーディオデコーダ75−2よりも高い性能を有する場合(オーディオストリーム#1が通常の映画の音声であり、オーディオストリーム#2が映画に対する監督のコメントなどの場合)、2ndオーディオデコーダ75−2でデコードされるオーディオストリーム#2は、ある程度の制約が設けられている可能性が高く、オーディオデコーダ75−2がデコードできないようなストリームは、オーディオストリーム#2として設定されない可能性が高いと仮定することができるので、この処理を省略するようにしてもよい。
取得した番号に対応するオーディオストリームを再生する機能を有しない場合、コントローラ21は、現在のストリーム番号の次のストリーム番号を取得する。すなわち、現在のストリーム番号のオーディオストリームを再生する機能を有さない場合には、そのストリーム番号は飛ばされ(再生対象とならず)、自分自身が再生する機能を有するオーディオストリーム(オーディオストリーム#2)の番号が取得されるまで、次のストリーム番号を取得する処理が繰り返される。
一方、取得した番号に対応するオーディオストリームを再生する機能を有する場合、コントローラ21は、Stream_entry()のtypeに基づいて、取得した番号に対応するオーディオストリームがメインClipにあるのか(type=1)、サブClipにあるのか(type=2)を調べる。Stream_entry()において、type=1である場合、コントローラ21は、取得した番号に対応するオーディオストリームが、メインClipにあることを確認する。また、Stream_entry()において、type=2である場合、コントローラ21は、取得した番号に対応するオーディオストリームがサブClipにあることを確認する。
そして、コントローラ21は、取得した番号に対応するストリームの属するメインClipまたはサブClipの中の所望のオーディオストリームを特定する。例えば、取得した番号に対応するオーディオストリームが、メインClipに含まれることが確認された場合、コントローラ21は、Stream_entry()のtype=1でエントリーされている情報(ref_to_stream_PID_of_mainClip)に基づいて、メインClipの中の所定のオーディオストリームを特定する。また、例えば、取得した番号に対応するオーディオストリームがサブClipに含まれることが確認された場合、コントローラ21は、Stream_entry()のtype=2でエントリーされている情報(ref_to_SubPath_id、ref_to_SubClip_entry_id、ref_to_stream_PID_of_SubClip)に基づいて、サブClipの中の所定のオーディオストリームを特定する。この特定されたオーディオストリームが、オーディオデコーダ75−1でデコードされるオーディオストリーム#2となる。
そして、コントローラ21は、所望のオーディオストリームが多重化されているClip AVストリーム(メインClip AVストリームまたはサブClip AVストリームAVストリーム)を読み出すようストレージドライブ22に指示し、ストレージドライブ22は、この指示に基づいて、対象となるClip AVストリームを読み出し、AVデコーダ151に供給する。
または、コントローラ21は、ローカルストレージ24からは、所望のオーディオストリームが多重化されているClip AVストリーム(メインClip AVストリームまたはサブClip AVストリーム)を読み出させ、AVデコーダ151に供給させる。そして、コントローラ21は、読み出されたClipに含まれる所望のオーディオストリーム(すなわち、オーディオストリーム#2)をAVデコーダ部151のオーディオデコーダ75−2にデコードさせるよう指示する。
AVデコーダ部151は、オーディオストリーム(オーディオストリーム#2)をデコードし、オーディオ出力する。具体的には、AVデコーダ部151のオーディオデコーダ75−2は、オーディオストリーム#2(ステップS78の処理で読み出しが指令されたオーディオストリーム)をデコードし、ミキシング処理部101に出力する。この処理で、オーディオストリーム#2がオーディオデコーダ75−2によってデコードされているということは、の処理でオーディオストリーム#1がオーディオデコーダ75−1によってもデコードされ、デコードされたオーディオストリーム#1がミキシング処理部101に出力されているので、ミキシング処理部101は、デコードされたオーディオストリーム#1とオーディオストリーム#2とをミキシングし、後段のミキシング処理部97に供給する。ミキシング処理部97は、ミキシング処理部101から供給されたオーディオデータ(オーディオストリーム#1とオーディオストリーム#2とがそれぞれデコードされ、ミキシングされたオーディオデータ)と、バッファ95から出力されるサウンドデータとを、ミキシング処理し、オーディオ信号として出力する。
このようにして、2つのオーディオストリームを選択し、ミキシングして再生することができる。すなわち、再生するオーディオストリームが1つである場合、スイッチ59は、PIDフィルタ55またはPIDフィルタ56からから供給されたオーディオストリームを1stオーディオデコーダ75−1に供給するよう選択し、再生するオーディオストリームが2つである場合、スイッチ59は、PIDフィルタ55またはPIDフィルタ56から供給されたオーディオストリームを2ndオーディオデコーダ75−2に供給するよう選択する。
すなわち、コントローラ21は、PlayItemのSTN_table()に基づいて、音声(オーディオ)の切り替えを制御することができ、STN_table()のstream_attributeを参照することで、自分自身が再生機能を有するストリームだけを選んで、再生切り替えの制御をすることができる。さらに、コントローラ21は、STN_table()に基づいて、2つのオーディオストリームを重畳して再生するよう制御することができる。また、コントローラ21は、1つのメインとなるオーディオストリーム#1と、オーディオストリーム#1と同期して再生される同じ種類のストリーム(オーディオストリーム)であるオーディオストリーム#2とを、ミキシングして再生するよう制御することができる。
なお、この処理においても、オーディオストリーム番号に基づいて、オーディオを切り替えるものとして説明したが、オーディオストリームID(audio_stream_id)に基づいて、オーディオを切り替えるようにしてもよい。この場合、オーディオストリーム番号から1を減算したものが、オーディオストリームIDとなる。
また、第3のSTN_tableを用いる場合の処理も、オーディオストリームに限らず、ストリームの種類が同じであれば、各種のストリームファイルについて同様に適用することができる。例えば、ビデオストリーム(ストリームの種類がビデオストリームであるストリーム)を2つ合成して再生するピクチャインピクチャ表示をする場合にも、この構成は適用することができる。このように、本発明によれば、2つの同じ種類のストリームファイルを合成して再生することができる。
すなわち、この構成も、例えば、図43を用いて後述するように、メインパスで参照されるAVストリームのビデオストリーム(ビデオストリーム#1)を主画面として表示させ、主画面の中に、サブパス(やメインパス)のビデオパスで参照されるビデオストリーム(ビデオストリーム#2)を子画面として合成して表示させる、いわゆるPinP(ピクチャインピクチャ)表示などについても利用することができる。
以上により、再生装置141も、再生装置1における場合と同様に、メインのAVストリームとは別のストリームやデータファイルでオーディオや字幕などを用意する場合に、PlayListの中にメインパスとサブパスを有する構成としたので、ユーザによる音声切り替えや字幕切り替えという操作が、メインClipAVストリームとは異なる別ストリームや別データファイルの中から選ぶことができる。
また、メインパスのPlayItemの中に、AVストリームファイルに多重化されているデータと、Sub Pathにより参照されるデータのtypeを定義するSTN_Tableを設けるようにしたので、より、拡張性の高いストリームを実現することができる。
さらに、再生装置141も、再生装置1における場合と同様に、STN_table()のstream_attributeを参照することで、自分自身が有する機能に対応するストリームだけを順次選択して再生することができる。
以上説明した再生装置141が、図35の第3のSTN_tableを参照して再生処理を行った場合についてまとめると、以下のようになる。
再生装置141は、少なくとも1つのストリームを含むメインClip AVストリームファイルの位置を示す主の再生パスであるメインパスと、メインClipAVストリームファイルのタイミングに合わせて再生されるサブClip AVストリームファイルのそれぞれの位置を示す複数のサブパスにより構成される再生管理情報としてのPlayListを取得する。そして、再生装置141は、PlayListに含まれる再生するストリームを選択するためのSTN_table()に基づいて、再生するストリームの選択を受け付ける。STN_table()は、メインClip AVストリームファイルの所定の種類のストリーム(例えば、オーディオストリーム#1)と、そのストリームの再生のタイミングに合わせて再生される、同じ種類のストリームファイル(例えば、オーディオストリーム#2)とを選択するための情報であるので、このSTN_table()(PlayItemで示されるSTN_table())に基づいて、再生するストリームの選択を受け付ける。
ここで、2つの同じ種類のストリーム(オーディオストリーム)が再生するストリームとして選択された場合、再生装置141は、選択された2つのストリームファイルを読み出し、再生装置141のミキシング処理部101は、この2つのオーディオストリーム(デコードされたオーディオストリーム)を合成し、ミキシング処理部97(AVデコーダ部151)は、合成されたストリームを再生(出力)する。
これにより、ユーザに選択された(切り替えられて選択された)2つのオーディオがミキシング(合成)されて再生される。
また、上述した再生装置1における場合と同様に、PlayListにMain PathとSub Pathを含め、Main PathとSub Pathが異なるClipを参照する構成としたので、ストリームに拡張性を持たせることができ、例えば、図8を用いて説明したように、1つのSub Pathで複数のファイルを参照可能な構成としたので、複数の異なるストリームの中からユーザが選択することができる。
さらに、Main PathのPlayItemの中に、Main Pathにより参照されるAVストリームファイルに多重化されている(含まれる)付属データ(例えば、オーディオストリーム)と、Sub Pathにより参照される付属データとを定義するテーブルとして、図35のSTN_table()を設けるようにしたので、より、拡張性の高いストリームを実現することができる。また、STN_table()にエントリーすれば、Sub Pathを容易に拡張することができる。
また、STN_table()にストリームの属性情報である図18のstream_attribute()を設けるようにしたので、再生装置141は、選択されたストリームを再生可能か否かを判定することができ、再生機能を有するストリームだけを選択して再生することができる。
さらに、STN_table()(図35)において、2つの同じ種類のストリームファイル(ここでは、オーディオストリームファイル)を定義するようにし、さらに、図36の再生装置141に2つのオーディオデコーダ(1stオーディオデコーダ75−1と2ndオーディオデコーダ75−2)を設けるとともに、2つのオーディオデコーダによりデコードされたオーディオデータを合成(ミキシング)するミキシング処理部101を設けるようにしたので、2つの同じ種類のストリームを組み合わせて同時に再生することができる。
また、上述した再生装置1における場合と同様に、Sub Pathには、図11を用いて説明した、Sub Pathのタイプ(オーディオやテキスト字幕といったタイプ)を示すSubPath_type、Sub Pathが参照するサブClipの名を示す図12のClip_Information_file_name、およびSub Pathが参照するClip AVストリームのイン点を示す図12のSubPlayItem_IN_timeとアウト点を示す図12のSubPlayItem_OUT_timeを含むようにしたので、Sub Pathが参照するデータを的確に特定することができる。
さらに、上述した再生装置1における場合と同様に、Sub Pathには、Sub PathがMain Pathとを同じタイミングで再生するためのMain Path上のAVストリームファイルを指定する指定情報である図12のsync_PlayItem_id(例えば、図7と図8のsync_PlayItem_id)と、Sub Pathが参照するデータのイン点がMain Pathの時間軸上で同期してスタートするMain Path上の時刻であるsync_start_PTS_of_PlayItem(例えば、図7と図8のsync_start_PTS_of_PlayItem)とをさらに含むため、図7や図8に示されるように、Main Pathが参照するメインClipAVストリームファイルに同期してSub Pathが参照するデータ(ファイル)を再生することができる。
また、2つのオーディオストリームをミキシングして再生する場合、再生装置141の1stオーディオデコーダ75−1はオーディオストリーム#1をデコードし、2ndオーディオデコーダ75−2はオーディオストリーム#2をデコードするのであるが、コーディック(エンコード)方式が同一(例えば、図19のDolby AC-3 audio)であるか否かを、さらに判定するようにしてもよい。このことは、1stオーディオデコーダ75−1と2ndオーディオデコーダ75−2がオーディオストリームをデコードしている途中であっても、コーディック方式が同一であれば、デコード途中のデータ方式も同様であるので、途中の同一の段階までデコードされた2つのストリームを、ミキシング処理部101によりミキシングすることが可能となるからである。
なお、図36を用いて説明した再生装置141のAVデコーダ部151に供給されるデータは、上述した再生装置1における場合と同様に、DVD(Digital Versatile Disc)などの記録媒体11に記録されているデータであってもよいし、ハードディスクなどで構成されるローカルストレージ24に記録されているデータであってもよいし、ネットワーク2を介してダウンロードされたデータであってもよいし、これらが組み合わされたデータでもよい。
また、図35を用いて説明した第3のSTN_tableを参照して再生処理が行われる場合においては、図36の再生装置141の1stオーディオデコーダ75−1でデコードされるオーディオストリーム#1と、2ndオーディオデコーダ75−2でデコードされるオーディオストリーム#2とを、ユーザが別々に選択可能な構成としたが、オーディオストリーム#1とオーディオストリーム#2との組み合わせを定義し、ミキシング再生する場合には、この組み合わせの中からユーザに選択させる構成としてもよい。すなわち、オーディオストリーム#1とミキシング再生可能なオーディオストリーム#2の組み合わせを定義しておくようにしてもよい。
以下、再生されるストリームの組み合わせが定義されている場合について説明する。
図37は、オーディオストリーム#1とオーディオストリーム#2との組み合わせを定義する場合のSTN_table()のシンタクスの第4の例(第4のSTN_table())の例を示す図である。第4のSTN_table()を参照して実行される再生処理は、図36を用いて説明した再生装置141において実行可能である。なお、図中、図35と同一の部分については、繰り返しになるのでその説明は省略する。
図37において、オーディオストリームID2 (audio_stream_id2)のforループの中で、順番にstream_entry()ごとに特定される1つのオーディオエレメンタリストリームに、0からaudio_stream_id2が与えられる。このとき、audio_stream_id2に対し、stream_entry()とstream_attribute()との他に、新たにCombination_of_Primary_and_Secondaryが定義される。Combination_of_Primary_and_Secondaryは、オーディオストリーム#1(Primary)とオーディオストリーム#2(Secondary)との組み合わせを定義する情報である。
すなわち、オーディオストリームID2(audio_stream_id2)で特定されるオーディオストリーム#2に対して、どのオーディオストリーム#1が組み合わせ可能であるかを示す情報が、オーディオストリームID2のforループの中で定義される。換言すれば、Combination_of_Primary_and_Secondaryにより、オーディオストリーム#1に対して組み合わせ可能なオーディオストリーム#2が定義される。このように、オーディオストリームID1のforループ内で組み合わせるオーディオストリームID2を定義するのではなく、オーディオストリームID1とオーディオストリームID2を個別に定義し、オーディオストリームID2のforループの中で組み合わせを定義することにより、オーディオストリームID1の登録可能数が決まっている場合にでも、組み合わせの登録を1つとカウントさせないことにより、その登録可能数を有効に使うことができる。
なお、図35を参照して説明したように、オーディオストリームID2(audio_stream_id2)の代わりに、オーディオストリーム番号2(audio_stream_number2)を用いるようにしてもよい。この場合、audio_stream_number2は、0ではなく1から与えられる。すなわち、audio_stream_id2の値に1を加算したものがaudio_stream_number2である。オーディオストリーム番号2は、音声切り替えに使われる、ユーザから見えるオーディオストリーム番号2であるので、1から定義される。
ここで、図37のCombination_of_Primary_and_Secondaryのビットマップシンタクスの例を、図38を参照して説明する。
Combination_of_Primary_and_Secondaryのビットマップシンタクスは、図38の例の場合、32bitとされる。図38において、audio_stream_idは、図37の第3のSTN_table()で定義されるaudio_stream_id(オーディオストリームID)を示しており、indicatorの値は、対応するaudio_stream_id2(オーディオストリームID2)により特定されるオーディオストリーム#2と組み合わせ可能なオーディオストリーム#1を特定するaudio_stream_idを示すフラグである。すなわち、audio_stream_idとindicatorとにより、audio_stream_id2で与えられるオーディオストリーム#2と組み合わせ可能なオーディオストリーム#1のaudio_stream_idを特定することができる。
すなわち、図37のaudio_stream_id2のforループの中にCombination_of_Primary_and_Secondaryが規定されるように、それぞれのaudio_stream_id2に対して、Combination_of_Primary_and_Secondaryが存在し、ある特定のaudio_stream_id2により特定されるオーディオストリーム#2に対して組み合わせが可能なオーディオストリーム#1が、indicatorにより示されるaudio_stream_idにより特定される。
具体的には、Indicatorの値が0の場合、そのaudio_stream_id2は、audio_stream_idで特定されるオーディオストリーム#1に対応していないことを示し、indicatorの値が1の場合、そのaudio_stream_id2は、audio_stream_idで特定されるオーディオストリーム#1に対応していることを示す。
すなわち、図38の例の場合、audio_stream_id2(オーディオストリームID2)で特定されるオーディオストリーム#2には、audio_stream_id=0と、audio_stream_id=1で特定される2つのオーディオストリーム(オーディオストリーム#1)が組み合わせ可能であることが示されている。
なお、図38においては、組み合わせ可能なオーディオストリーム#1を、audio_stream_idで特定するようにしたが、audio_stream_idの代わりに、オーディオストリーム番号を用いるようにしてもよい。この場合、audio_stream_idは、0ではなく1から与えられる。
図38のように、Combination_of_Primary_and_Secondaryを32bitのビットマップシンタクスで定義するようにしたので、32本のオーディオストリーム#1に対して、組み合わせ可能なオーディオストリーム#2をそれぞれ定義することができる。
図37と図38によれば、audio_stream_idおよびaudio_stream_id2、並びに、Combination_of_Primary_and_Secondaryを用いて、オーディオストリーム#1とオーディオストリーム#2との組み合わせを定義することができる。すなわち、矛盾するようなオーディオストリームの組み合わせを定義せずに済むので、ユーザは、常に再生可能なオーディオストリームの組み合わせの再生を選択することができる。
具体的な例を、図39を参照して説明する。図39は、ユーザに提供する音声信号と字幕信号の関係を表すストリームナンバーテーブルの例を示す図である。なお、図中、字幕信号(サブピクチャ)の記載については、図26と同様であるので、その説明は省略する。
図39においては、PlayListのMain Pathを構成するPlayItemの第4のSTN_table()でエントリーされるオーディオストリーム#1(audio_stream_idでエントリーされるオーディオストリーム)のそれぞれにA_SNが与えられる。
具体的には、A_SN=1にオーディオ2が与えられ、A_SN=2にオーディオ1が与えられ、A_SN=3にオーディオ3が与えられている。
このとき、A_SN=1のオーディオ2に対しては、オーディオ4(audio_stream_id2=0、すなわち、オーディオストリーム番号2が1であるオーディオ4)が組み合わせ可能とされている。また、A_SN=2のオーディオ1に対しては、オーディオ4(audio_stream_id2=0、すなわち、オーディオストリーム番号2が1であるオーディオ4)とオーディオ5(audio_stream_id2=1、すなわち、オーディオストリーム番号2が2であるオーディオ5)とが組み合わせ可能とされている。
具体的には、オーディオ4(audio_stream_id2=0のオーディオ4)の場合、図38のCombination_of_Primary_and_Secondaryのビットマップシンタクスは、audio_stream_id=0とaudio_stream_id=1に対するindicatorの値がともに1とされ、audio_stream_id=2からaudio_stream_id=31までのindicatorの値は、すべて0とされる。また、オーディオ5(audio_stream_id2=1のオーディオ5)の場合、図38のCombination_of_Primary_and_Secondaryのビットマップシンタクスは、audio_stream_id=1に対するindicatorの値のみが1とされ、audio_stream_id=0と、audio_stream_id=2からaudio_stream_id=31までのindicatorの値は、すべて0とされる。
ユーザは、A_SNが与えられているオーディオストリームの中から、再生するオーディオストリーム#1を選択し、選択したオーディオストリーム#1とミキシングするオーディオストリーム#2を、A_SNが与えられているオーディオストリームの図中右側に表示されているものの中から選択する。図39の例の場合、オーディオストリーム#1として、オーディオ2(A_SN=1)を選択する場合、ミキシング可能なオーディオストリーム#2は、オーディオ2の図中右側に表示されているオーディオ4のみであるので、これを、ミキシング再生するか否かを選択する。図39においては、A_SN=1のオーディオ2に対応するオーディオ4は、「×」、すなわち、ミキシング再生を選択しない状態とされている。ユーザは、この「×」を切り替えて「○」とすることで、オーディオ2とオーディオ4とのミキシング再生が選択された状態とすることができる。
また、例えば、図39の例の場合、オーディオストリーム#1として、オーディオ1(A_SN=2)を選択する場合、ミキシング可能なオーディオストリーム#2は、オーディオ2の図中右側に表示されているオーディオ4とオーディオ5の中から選択することができる。そのため、ユーザは、オーディオストリーム#1をどのオーディオストリーム#2と再生するか否かを選択する。図39においては、A_SN=2のオーディオ1に対応するオーディオ4とオーディオ5は、「×」、すなわち、ミキシング再生を選択しない状態とされている。ユーザは、この「×」を切り替えて「○」とすることで、オーディオ2とオーディオ4、またはオーディオ2とオーディオ5のミキシング再生が選択された状態とすることができる。
この再生の選択の具体的な例としては、A_SN=1のオーディオ2が選択されている場合に、ユーザが、オーディオの切り替えを指令した場合、A_SN=1のオーディオ2とオーディオ4との組み合わせの再生(図39のオーディオ2に対応するオーディオ4が「○」となる)に切り替えられ、ユーザが、さらにオーディオの切り替えを指令した場合、オーディオは、A_SN=2のオーディオ1の再生(図39のオーディオ2に対応するオーディオ4が「×」となる)に切り替えられ、ユーザが、さらにオーディオの切り替えを指令した場合、オーディオは、A_SN=2のオーディオ1とオーディオ4との組み合わせの再生(図39のオーディオ1に対応するオーディオ4が「○」となる)に切り替えられる。また、ユーザが、さらにオーディオの切り替えを指令した場合、オーディオは、A_SN=2のオーディオ1とオーディオ5との組み合わせの再生(図39のオーディオ1に対応するオーディオ4が「×」となり、オーディオ5が「○」となる)に切り替えられる。
ユーザは、このようにして再生されるオーディオストリームの選択を切り替えて、例えば、図40に示されるように、A_SN2のオーディオ1とオーディオ5との組み合わせの再生を選択することができる。これにより、オーディオ1(オーディオストリーム#1)とオーディオ5(オーディオストリーム#2)とをミキシング再生することができる。
このように、audio_stream_idおよびaudio_stream_id2、並びに、Combination_of_Primary_and_Secondaryを用いて、オーディオストリーム#1とオーディオストリーム#2との組み合わせを定義するようにすることで、矛盾するような組み合わせを定義せずに済み、ユーザは、常に再生可能なオーディオストリームの組み合わせを選択することができる。すなわち、図39の例においては、矛盾するオーディオストリームの組み合わせであるオーディオ2+オーディオ5を定義しないようにすることで、ユーザに、選択可能なもののみを提供することができる。
換言すれば、PlayItem()の中の第4のSTN table()(図37)で、図36の1stオーディオデコーダ75−1でデコードするオーディオストリーム#1と、2ndオーディオデコーダ75−2でデコードするオーディオストリーム#2との組み合わせを、Combination_of_Primary_and_Secondaryを用いて定義するようにしたので、2つのオーディオストリームをミキシングして再生することができる。すなわち、複数の種類からなるストリームから、同じ種類(この例の場合、オーディオストリーム)のストリームをミキシング(重畳、または合成)して、同時に再生することができる。
また、このような構成とすることにより、ユーザは、ミキシングする2つのオーディオストリームを個々に選ぶ必要がなく、2つのオーディオストリームが組み合わせられたものの中から、再生するオーディオストリームを選択することができる。
次に、オーディオストリーム#1とオーディオストリーム#2との組み合わせを定義し、ミキシング再生する場合、すなわち、オーディオストリーム#1とオーディオストリーム#2の組み合わせの中からユーザに再生の選択をさせる構成とする場合の2番目の例を、図41を参照して説明する。換言すれば、図41は、オーディオストリーム#1とミキシング再生可能なオーディオストリームを、オーディオストリーム#2として定義する場合の2番目の例である。
図41は、オーディオストリーム#1とオーディオストリーム#2との組み合わせを定義する場合のSTN_table()のシンタクスの第5の例(第5のSTN_table())の他の例を示す図である。第5のSTN_table()を参照して実行される再生処理も、図36を用いて説明した再生装置141において実行可能である。なお、図中、図35と同一の部分については、繰り返しになるのでその説明は省略する。
図41において、オーディオストリームID2 (audio_stream_id2)のforループの中で、順番にstream_entry()ごとに記録位置が特定される1つのオーディオエレメンタリストリームに、0からaudio_stream_id2が与えられる。このとき、audio_stream_id2に対して、number_of_combinationsが与えられ、number_of_combinationsの後のfor文では、number_of_combinationsの数だけ、audio_stream_idが与えられる。number_of_combinationsと、number_of_combinationsの後のfor文は、オーディオストリーム#1とオーディオストリーム#2との組み合わせを定義する情報であり、audio_stream_id2で特定されるオーディオストリーム#2と組み合わせ可能なオーディオストリーム#1の数が、number_of_combinationsとされる。そして、audio_stream_id2で特定されるオーディオストリーム#2と組み合わせ可能なオーディオストリーム#1を特定するaudio_stream_idが、number_of_combinationsの後のfor文で定義される。
すなわち、図37とは異なり、図41の第5のSTN_table()のオーディオストリームID2 (audio_stream_id2)のfor文の中では、そのオーディオストリームID2で特定されるオーディオストリーム#2に対して、オーディオストリーム#1との組み合わせ可能な数がnumber_of_combinationsで定義され、number_of_combinationsの後のfor文で、対象となるオーディオストリーム#1を特定するaudio_stream_idを直接定義している。
このように、第5のSTN_table()では、オーディオストリームID2(audio_stream_id2)で特定されるオーディオストリーム#2に対して、どのオーディオストリーム#1が組み合わせ可能であるかを示す情報が、オーディオストリームID2のnumber_of_combinationsの後のfor文で定義される。すなわち、オーディオストリームID2のnumber_of_combinationsの後のfor文により、オーディオストリーム#1に対して組み合わせ可能なオーディオストリーム#2が定義される。
なお、図35を参照して説明した場合と同様に、オーディオストリームID2(audio_stream_id2)の代わりに、オーディオストリーム番号2(audio_stream_number2)を用いるようにしてもよい。また、オーディオストリームID(audio_stream_id)の代わりに、オーディオストリーム番号(audio_stream_number)を用いるようにしてもよい。すなわち、number_of_combinationsの後のfor文で定義されるaudio_stream_idも、オーディオストリーム番号としてもよい。
図41によれば、number_of_combinationsと、その後のfor文を用いて、オーディオストリーム#1とオーディオストリーム#2との組み合わせを定義することができる。すなわち、矛盾するようなオーディオストリームの組み合わせを定義せずに済むので、ユーザは、常に再生可能なオーディオストリームの組み合わせの再生を選択することができる。
この場合のストリームナンバーテーブルの具体的な例は、図39および図40を用いて説明した場合と同様である。
すなわち、図39が図41の第5のSTN_table()に対応する場合、オーディオ4(audio_stream_id2=0、すなわち、オーディオストリーム番号2が1であるオーディオ4)に対して、組み合わせ可能なオーディオストリーム#1として、A_SN=1のオーディオ2(audio_stream_id=0)と、A_SN=2のオーディオ1(audio_stream_id=1)とが定義されていることになる。この場合、図41のaudio_stream_id2=0に対応するnumber_of_combinationsの数は2つであり、定義されるaudio_stream_idは、audio_stream_id=0とaudio_stream_id=1である。また、オーディオ5(audio_stream_id2=1、すなわち、オーディオストリーム番号2が2であるオーディオ5)に対して、組み合わせ可能なオーディオストリーム#1として、A_SN=2のオーディオ1(audio_stream_id=1)が定義されていることになる。この場合、図41のaudio_stream_id2=1に対応するnumber_of_combinationsの数は1つであり、定義されるaudio_stream_idは、audio_stream_id=1である。
ユーザは、図39に示されるオーディオの再生の選択を切り替えて、例えば、図40に示されるように、A_SN=2のオーディオ1とオーディオ5との組み合わせの再生を選択する。これにより、オーディオ1(オーディオストリーム#1)とオーディオ5(オーディオストリーム#2)とをミキシング再生することができる。
このように、図41のnumber_of_combinationsと、その後のfor文を用いて、オーディオストリーム#1とオーディオストリーム#2との組み合わせを定義するようにすることで、矛盾するような組み合わせを定義せずに済み、ユーザは、常に再生可能なオーディオストリームの組み合わせを選択することができる。すなわち、図39の例においては、矛盾するオーディオストリームの組み合わせであるオーディオ2+オーディオ5を定義しないようにすることで、ユーザに、選択可能なもののみを提供することができる。
換言すれば、PlayItem()の中の第5のSTN table()(図41)で、図36の1stオーディオデコーダ75−1でデコードするオーディオストリーム#1と、2ndオーディオデコーダ75−2でデコードするオーディオストリーム#2との組み合わせを、number_of_combinationsと、その後のfor文とを用いて定義するようにしたので、2つの組み合わせ可能なオーディオストリームをミキシングして再生することができる。すなわち、複数の種類からなるストリームから、同じ種類(この例の場合、オーディオストリーム)のストリームをミキシング(重畳、または合成)して、同時に再生することができる。
また、第5のSTN table()を用いることにより、ユーザは、ミキシングする2つのオーディオストリームを個々に選ぶ必要がなく、2つのオーディオストリームが組み合わせられたものの中から、再生するオーディオストリームを選択することができる。
次に、図42は、オーディオストリーム#1とオーディオストリーム#2との組み合わせを定義する場合のSTN_table()のシンタクスの第6の例(第6のSTN_table())のさらに他の例を示す図である。第6のSTN_table()を参照して実行される再生処理も、図36を用いて説明した再生装置141において実行可能である。なお、図中、図35や図41と同一の部分については、繰り返しになるのでその説明は省略する。
図42の例のオーディオストリームID (audio_stream_id)のforループの中で、順番にstream_entry()ごとに特定される1つのオーディオストリーム#1に、0からaudio_stream_idが与えられることと、その後に配置されるstream_attribute()とについては、図35の例と同様とされている。
ただし、図42の例のオーディオストリームID (audio_stream_id)のforループの中には、さらに、オーディオストリーム#1とオーディオストリーム#2との組み合わせを定義する次のような情報が含まれる。即ち、number_of_audio_stream2_entriesが0でない場合(if(number_of_audio_stream2_entries!=0))、number_of_audio_stream2_ref_entriesが与えられる。number_of_audio_stream2_ref_entriesは、audio_stream_idで特定されるオーディオストリーム#1と組み合わせ可能なオーディオストリーム#2の数を示す。そして、audio_stream_idで特定されるオーディオストリーム#1と組み合わせ可能なオーディオストリーム#2を特定するaudio_stream2_id_refが、number_of_audio_stream2_ref_entriesの後のfor文で定義される。
なお、他の例と同様に、オーディオストリームID2ref(audio_stream_id2_ref)の代わりに、オーディオストリーム番号2ref(audio_stream_number2_ref)を用いるようにしてもよい。また、オーディオストリームID(audio_stream_id)の代わりに、オーディオストリーム番号(audio_stream_number)を用いるようにしてもよい。
このように、図42の例の第6のSTN_table()を利用しても、オーディオストリーム#1とオーディオストリーム#2との組み合わせを定義することができる。すなわち、矛盾するようなオーディオストリームの組み合わせを定義せずに済むので、ユーザは、常に再生可能なオーディオストリームの組み合わせの再生を選択することができる。
ところで、上述したように、本発明の再生装置に装着される記録媒体上、または、再生装置のローカルストレージに記録されるデータのアプリケーションフォーマットは、PlayListとClipの2つのレイヤを有している。そして、PlayListは、1つ以上のPlayItemの並びによって(連続するPlayItemにより)作られるメインパス(Main Path)と、そのMain Pathに並行(並列)して、1つ以上のSubPlayItemの並びによって(非連続でもよいし、連続してもよいSubPlayItemにより)作られるサブパス(Sub Path)を1以上含むことができる。
従って、例えば図43に示されるように、1画面のうちの、全画面301に、メインパスで参照されるAVストリーム(図43中、Primary Videoと記述されているビデオストリーム311、および、Primary Audioと記述されているオーディオストリーム312)に対応する映画本編等のコンテンツを再生させるとともに、全画面301に配置される子画面302に、サブパスで参照されるAVストリーム(図43中、Secondary Videoと記述されているビデオストリーム313、および、Secondary Audioと記述されているオーディオストリーム314)に対応する映画の監督のコメンタリー等、メインパスで参照されるAVストリームとは別のコンテンツを再生させる、といった手法を適用することが可能になる。
即ち、全画面(親画面)301と子画面302のそれぞれに別々のコンテンツを同時再生させる、といった手法を適用することが可能になる。
このような手法はピクチャインピクチャ(Picture in Picture)手法と称される。
なお、Primary Audioと記述されているオーディオストリーム312に対応する音声と、Secondary Audioと記述されているオーディオストリーム314に対応する音声との再生とは、上述したように、それら2つのオーディオストリームに対してミキシング処理が施された結果得られる音声の出力のことをいう。
また、実際の再生対象は、上述したように、各ストリームに対応する音声や画像であるが、以下の説明においては、説明の簡略上、各ストリームとする場合もある。即ち、所定のストリームを再生する、といった表現を使用する場合もある。
ピクチャインピクチャ手法を適用するアプリケーションを実現するためには、例えば次のようなシンタクス(Syntax)が必要になる。即ち、例えば、本実施の形態では、STN_tableにおいてvideo_stream_idで定義されたビデオストリーム(以下、プライマリビデオストリームと称する。例えば、図43の例では、Primary Videoと記述されているビデオストリーム311を、プライマリビデオストリーム311と称する)の数は、1つとされている。そこで、このことを考慮して、プライマリビデオストリームと同時に再生され得るストリームの組み合わせを定義するシンタクスがあれば、ピクチャインピクチャ手法の実現、即ち、ピクチャインピクチャを適用するアプリケーションの実現が可能になる。
ここで、ピクチャインピクチャ手法により、プライマリビデオストリームと同時に再生され得るストリームとして、例えば本実施の形態では、次の第1乃至第4の種類のストリームが用意されている。
第1の種類のストリームとはSTN_tableにおいてaudio_stream_idで定義されたオーディオストリーム、即ち、上述したオーディオストリーム#1(以下、プライマリオーディオストリームと称する。例えば、図43の例では、Primary Audioと記述されているオーディオストリーム312を、プライマリオーディオストリーム312と称する)のことをいう。
第2の種類のストリームとは、STN_tableにおいてvideo_stream_id2で定義されたビデオストリーム(以下、セカンダリビデオストリームと称する。例えば、図43の例では、Secondary Videoと記述されているビデオストリーム313を、セカンダリビデオストリーム313と称する)のことをいう。
第3の種類のストリームとは、STN_tableにおいてaudio_stream_id2で定義されたオーディオストリーム、即ち、上述したオーディオストリーム#2(以下、セカンダリオーディオストリームと称する。例えば、図43の例では、Secondary Audioと記述されているオーディオストリーム314を、セカンダリオーディオストリーム314と称する)のことをいう。
第4の種類のストリームとは、サブパスで参照されるテキスト字幕ストリーム(txtST)や、DVDのサブピクチャのようなビットマップ字幕をランレングス符号化したストリーム(PG, Presentation Graphics stream)等のことをいう。例えば図43の例では、Subtitleと記述されているストリーム315が、第4の種類のストリームの一例である。なお、以下、第4の種類のストリームを、即ち、txtSTやPG等をまとめて、サブタイトルストリームと称する。なお、サブタイトルストリームの再生位置(字幕等の表示位置)は、特に子画面内である必要は無く、全画面のうちの何れの位置でもよい。このため、図43の例では、サブタイトルストリーム315は、子画面302からはみ出すように描画されている。
以上説明したように、ピクチャインピクチャ手法を適用するアプリケーションを実現するためには、例えば、プライマリビデオストリームと組み合わせて同時再生され得るストリームの組み合わせの定義、即ち、セカンダリビデオストリーム、プライマリオーディオストリーム、セカンダリオーディオストリーム、および、サブタイトルストリームの組み合わせの定義が必要となる。
さらに、複数の組み合わせを定義することで、全画面301に再生されるプライマリビデオストリームやプライマリオーディオスオストリームの切り替えのみならず、子画面302に再生されるセカンダリビデオストリームの切り替えや、サブタイトルストリームの切り替えも容易に行えるようになる。ただし、その切り替え操作の例については、図46と図47を参照して後述する。
このような、プライマリビデオストリームと組み合わせて同時再生され得るストリームの組み合わせの定義は、例えば、図44と図45に示されるような第7のSTN_tableにて行うことが可能である。即ち、図44と図45とは、プライマリビデオストリームと組み合わせて同時再生され得る、セカンダリビデオストリーム、プライマリオーディオストリーム、セカンダリオーディオストリーム、および、サブタイトルストリームの記録位置(stream_entry)、属性(stream_attribute)、および、組み合わせを定義する場合のSTN_table()のシンタクスの第7の例(第7のSTN_table())の例を示す図である。なお、図中、上述した図41と同一の部分については、繰り返しになるのでその説明は省略する。
図44と図45の例では、プライマリビデオストリームと組み合わせて同時再生され得る、セカンダリビデオストリーム、プライマリオーディオストリーム、セカンダリオーディオストリーム、および、サブタイトルストリームの組み合わせは、次のように定義される。即ち、最初に、プライマリビデオストリームと組み合わせて同時再生され得るセカンダリビデオストリームが1以上定義される。そして、1以上のセカンダリビデオストリームのそれぞれに対して、同時に再生され得るオーディオストリーム(プライマリオーディオストリームとセカンダリオーディオストリーム)とサブタイトルストリームとが定義される。
具体的には、図44において、number_of_video_stream2_entriesは、第7のSTN_table()の中でエントリーされる(登録される)video_stream_id2が与えられるストリーム数を示す。video_stream_id2は、セカンダリビデオストリームを識別するための情報であり、video_stream_number2は、ビデオ切り替えに使われる、ユーザから見えるセカンダリビデオストリーム番号である。
図45において、ビデオストリームID2 (video_stream_id2)のforループの中で、順番にstream_entry()ごとに特定される1つのビデオエレメンタリストリーム(セカンダリビデオストリームとなるビデオエレメンタリストリーム)に、0からvideo_stream_id2が与えられる。
このとき、video_stream_id2に対して、number_of_Audio_combinations_for_video2が与えられ、その後のfor文では、number_of_Audio_combinations_for_video2の数だけ、audio_stream_idとaudio_stream_id2が与えられる。number_of_Audio_combinations_for_video 2とその後のfor文とは、セカンダリビデオストリームと同時再生されるオーディオストリームの組み合わせ、即ち、audio_stream_idで特定されるプライマリオーディオストリームと、audio_stream_id2で特定されるセカンダリオーディオストリームとの組み合わせを定義する情報である。video_stream_id2で特定されるセカンダリビデオストリームと組み合わせ可能なオーディオストリームの組(プライマリオーディオストリームとセカンダリオーディオストリームとの組)の数が、number_of_Audio_combinations_for_video2とされる。そして、video_stream_id2で特定されるセカンダリビデオストリームと組み合わせ可能なオーディオストリームの組として、プライマリオーディオストリームを特定するaudio_stream_idと、セカンダリオーディオストリームを特定するaudio_stream_id2とが、number_of_Audio_combinations_for_video2の後のfor文でそれぞれ定義される。
また、同じvideo_stream_id2に対して、number_of_Subtitle_combinations_for_video2が与えられ、その後のfor文では、number_of_Subtitle_combinations_for_video2の数だけ、PG_textST_stream_idが与えられる。number_of_Subtitle_combinations_for_video2とその後のfor文とは、セカンダリビデオストリームと同時再生されるサブタイトルストリームの組み合わせ、即ち、PG_textST_stream_idで特定されるサブタイトルストリームの組み合わせを定義する情報である。video_stream_id2で特定されるセカンダリビデオストリームと組み合わせ可能なサブタイトルストリームの数が、number_of_Subtitle_combinations_for_video2とされる。そして、video_stream_id2で特定されるセカンダリビデオストリームと組み合わせ可能なサブタイトルストリームを特定するPG_textST_stream_idが、number_of_Subtitle_combinations_for_video2の後のfor文で定義される。
なお、図35や図41を参照して説明したように、各IDの代わりに各番号、例えば、audio_stream_idの代わりに、オーディオストリーム番号(audio_stream_number)を用いたり、audio_stream_id2の代わりに、オーディオストリーム番号2(audio_stream_number2)を用いるようにしてもよい。ビデオストリームやサブタイトルストリームについても同様である。
図44と図45で示される第7のSTN_tabkeによれば、video_stream_id2を用いて、プライマリビデオストリームと同時再生されるセカンダリビデオストリームを定義することができ、さらに、そのvideo_stream_id2、および、audio_stream_id、audio_stream_id2、並びに、PG_textST_stream_idを用いて、そのセカンダリビデオストリームと同時再生され得る、プライマリオーディオストリーム、セカンダリオーディオストリーム、および、サブタイトルストリームの組み合わせを定義することができる。即ち、プライマリビデオストリームと同時再生され得る、セカンダリビデオストリーム、プライマリオーディオストリーム、セカンダリオーディオストリーム、および、サブタイトルストリームの組み合わせを定義することができる。
従って、プライマリビデオストリームと同時再生され得る、セカンダリビデオストリーム、プライマリオーディオストリーム、セカンダリオーディオストリーム、および、サブタイトルストリームの組み合わせとして、矛盾するような組み合わせを定義せずに済むので、ユーザは、プライマリビデオストリームと同時再生可能なストリームの組み合わせの再生を容易に選択することができる。
具体的な例を、図46と図47を参照して説明する。図46は、第7のSTN_tableが用いられた場合の、ユーザに提供するプライマリオーディオストリームまたはセカンダリオーディオストリームに対応する音声信号、セカンダリビデオストリームに対応する映像信号、および、サブタイトルストリームに対応する字幕信号の組み合わせの関係を表すストリームナンバーテーブルの例を示す図である。なお、図中、音声信号(オーディオ)と字幕信号(サブピクチャ)との記載については、図26または図39と同様であるので、その説明は省略する。
図46においては、PlayListのMain Pathを構成するPlayItemの第7のSTN_table()でエントリーされるセカンダリビデオストリーム(video_stream_id2でエントリーされるセカンダリビデオストリーム)のそれぞれにV2_SN(Video2 Stream Number:セカンダリビデオストリーム番号とも称する)が与えられる。
具体的には、V2_SN=1にビデオ2が与えられ、V2_SN=2にビデオ1が与えられている。
このとき、V2_SN=1のビデオ2に対しては、プライマリオーディオストリームとしてオーディオ2(図45のvideo_stream_id2がビデオ2を特定するIDである場合のfor文中において、audio_stream_idでエントリーされるプライマリオーディオストリーム)が、セカンダリオーディオストリームとしてオーディオ4(図45のvideo_stream_id2がビデオ2を特定するIDである場合のfor文中において、audio_stream_id2でエントリーされるセカンダリオーディオストリーム)が、サブタイトルストリームとしてサブピクチャ3(図45のvideo_stream_id2がビデオ2を特定するIDである場合のfor文中において、PG_textST_stream_idでエントリーされるサブタイトルストリーム)が、それぞれ組み合わせ可能とされている。
また、V2_SN=2のビデオ1に対しては、プライマリオーディオストリームとしてオーディオ1(図45のvideo_stream_id2がビデオ1を特定するIDである場合のfor文中において、audio_stream_idでエントリーされるプライマリオーディオストリーム)が、セカンダリオーディオストリームとしてオーディオ4若しくはオーディオ5(図45のvideo_stream_id2がビデオ1を特定するIDである場合のfor文中において、2つのaudio_stream_id2のそれぞれでエントリーされる2つのセカンダリオーディオストリームのそれぞれ)が、サブタイトルストリームとしてサブピクチャ1(図45のvideo_stream_id2がビデオ1を特定するIDである場合のfor文中において、PG_textST_stream_idでエントリーされるサブタイトルストリーム)が、それぞれ組み合わせ可能とされている。
即ち、図45のvideo_stream_id2がビデオ1を特定するIDである場合のfor文中において、V2_SN=2のビデオ1と同時再生可能なオーディオストリームの組として、次の第1の組と第2の組とがそれぞれ定義されている。第1の組とは、プライマリオーディオストリームがオーディオ1であり、セカンダリオーディオストリームがオーディオ4である組のことをいう。第2の組とは、プライマリオーディオストリームがオーディオ1であり、セカンダリオーディオストリームがオーディオ5である第2の組のことをいう。
かかる図46のストリームナンバーテーブルがユーザに呈示された場合(ここでは、呈示形態は特に問わない)、ユーザは、はじめに、映画本編等と同時再生させる監督のコメンタリー等の映像に対応するセカンダリビデオストリームとして、即ち、子画面(図43の例では子画面302)に表示させる映像に対応するセカンダリビデオストリームとして、ビデオ2(VS_SN=1)とビデオ1(VS_SN2)とのうちの何れか一方を選択することができる(そのような選択操作ができる)。
例えば、セカンダリビデオストリームとしてビデオ2(VS_SN=1)が選択された場合には、図46に示されるように、そのビデオ2(VS_SN=1)と同時再生可能な組み合わせは、オーディオ2、オーディオ4、およびサブピクチャ3の組み合わせのみである。従って、セカンダリビデオストリームとしてビデオ2(VS_SN=1)が選択された時点で、ユーザの選択操作は終了となる。
一方、図47に示されるように、セカンダリビデオストリームとしてビデオ1(VS_SN=2)が選択された場合には、そのビデオ1(VS_SN=2)と同時再生可能な組み合わせとしては、オーディオ1、オーディオ4、およびサブピクチャ1の第1の組み合わせと、オーディオ1、オーディオ5、およびサブピクチャ1の第2の組み合わせ、といった2通りの組み合わせが存在する。従って、セカンダリビデオストリームとしてビデオ1(VS_SN=2)を選択した場合、ユーザは、さらに、かかる第1の組み合わせと第2の組み合わせとのうちの何れか一方を選択することができる(そのような選択操作ができる)。
具体的には、例えば、ここでは、図39で説明した選択操作と同様に、ユーザは、ビデオ1(VS_SN=2)と同時再生させるストリームに対して(ストリームナンバーテーブル上の対応する表示の右方に対して)、再生を選択するときには、「×」から「○」に切り替える一方、再生を選択しないときには、「×」のまま保持する、といった選択操作を実行することができる。なお、図39を用いて説明した場合と同様に、「○」は再生を選択する状態を示すシンボルとされている一方、「×」は再生を選択していない状態を示すシンボルとされている。
図47の例では、かかる選択操作により、オーディオ1、オーディオ4、およびサブピクチャ1の第1の組み合わせが選択された結果が示されている。即ち、図47に示されるように、V2_SN=2のビデオ1と同時再生されるプライマリオーディオストリームとしてオーディオ1が選択されるので、その選択状態は、「×」から「○」に切り替えられる。また、V2_SN=2のビデオ1と同時再生されるセカンダリオーディオストリームとしてオーディオ4が選択されるので(オーディオ5が選択されないので)、オーディオ4の選択状態は、「×」から「○」に切り替えられる一方、オーディオ5の選択状態は「×」のまま保持される。また、V2_SN=2のビデオ1と同時再生されるサブタイトルストリームとしてサブピクチャ1が選択されるので、その選択状態は、「×」から「○」に切り替えられる。
即ち、以上の一連の選択操作により、ビデオ1、オーディオ1、オーディオ4、および、サブピクチャ1を選択し、メインビデオ(プライマリビデオストリームのことである)とともに再生可能な状態(そのような再生を選択する状態)とすることができる。
なお、上述した例では、プライマリビデオストリームと同時再生させるストリームの選択操作として、セカンダリビデオストリームを軸とする操作、即ち、先にセカンダリビデオストリームを選択した後、プライマリオーディオストリーム、セカンダリオーディオストリーム、および、サブタイトルストリームを選択する操作について説明した。
しかしながら、かかる選択操作として、上述した例のみならず、例えば、図39等を用いて上述した操作と同様にして、先にプライマリオーディオストリームを選択した後、セカンダリビデオストリーム、セカンダリオーディオストリーム、および、サブタイトルストリームを選択する操作を採用してもよい。即ち、図47のストリームナンバーテーブルのうちの、A_SN=1であるオーディオ2、A_SN=2であるオーディオ1、および、A_SN=3であるオーディオ3のうちの何れか1つを、プライマリオーディオストリームとして先に選択した後、図39等を用いて上述した操作と同様の操作により、セカンダリビデオストリーム、セカンダリオーディオストリーム、および、サブタイトルストリームを選択する、といった選択操作を採用することもできる。
また、例えば、先にサブタイトルストリームを選択した後、プライマリオーディオストリーム、セカンダリビデオストリーム、および、セカンダリオーディオストリームを選択する操作を採用することもできる。即ち、図47のストリームナンバーテーブルのうちの、S_SN=1であるサブピクチャ3、S_SN=2でサブピクチャ1、および、S_SN=3であるサブピクチャ2のうちの何れか1つを、サブタイトルストリームとして先に選択した後、図47中図示はされていないが、セカンダリビデオストリーム、プライマリオーディオストリーム、セカンダリオーディオストリームを選択する、といった選択操作を採用することもできる。
なお、本実施の形態では、セカンダリオーディオストリームのユーザの切り替え操作は禁止されている。このため、図47の例では、セカンダリオーディオストリームに対するA_SNは与えられていない。即ち、図47の例では、オーディオ1乃至3がプライマリオーディオストリームとして利用され、オーディオ4,5がセカンダリオーディオストリームとして利用されている。
ところで、以上説明した図44と図45の第7のSTN_table()を利用するシンタクスにより、ピクチャインピクチャ手法(図43参照)を実現させる場合、Subpath_typeの種類として、上述した図11の第1の例の種類を利用すると、例えば図48に示されるPlayListが生成される。
図48の例では、メインパス(Main path)を構成するプレイアイテム1(PlayItem1)により参照されるClip AV ストリームファイル-0(メインClip AVストリームファイル)に含まれるVideo(ビデオストリーム)とAudio(オーディオストリーム)とのそれぞれが、プライマリビデオストリームとプライマリオーディオストリームのそれぞれとしている。
つまり、STN_tableにおいて、video_stream_id、audio_stream_idに対応するstream_entryにおいて、type=1を設定した場合である。即ち、図43の例に対応させると、Clip AVストリームファイル-0に含まれるVideoとAudioとのそれぞれが、プライマリビデオストリーム311とプライマリオーディオストリーム312のそれぞれに対応したClip AVストリームファイル-0に含まれるVideoが全画面301に再生されるとともに、Clip AVストリームファイル-0に含まれるAudioが再生出力される。
一方、サブパス1(Sub path-1)に含まれるサブプレイアイテム(SubPlayItem:SPI)としにより参照されるClip AVストリームファイル−1(サブClip AVストリームファイル)に含まれる2ndVideo(ビデオストリーム)が、セカンダリビデオストリームとなり、また、サブパス2(Sub path-2)に含まれるサブプレイアイテム(SPI)により参照されるClip AVストリームファイル-1に含まれる2ndAudio(オーディオストリーム)が、セカンダリオーディオストリームとしている。つまり、STN_tableにおいて、video_stream_id2、audio_stream_id2のstream_entryにおいて、type=2を設定した場合である。即ち、図43の例に対応させると、Clip AVストリームファイル-1に含まれる2ndVideoと2ndAudioとのそれぞれが、セカンダリビデオストリーム313とセカンダリオーディオストリーム314のそれぞれに対応し、Clip AVストリームファイル-1に含まれる2ndVideoが子画面302に再生されるとともに、Clip AVストリームファイル-1に含まれる2nd Audioが再生出力される。
ただし、Clip AVストリームファイル-0に含まれるAudioをプライマリオーディオストリームとして全画面301と対応付けて再生させ、かつ、Clip AVストリームファイル-1に含まれる2ndAudioをセカンダリオーディオストリームとして子画面302と対応付けて再生させるとは、上述したように、それら2つのオーディオストリームに対してミキシング処理が施された結果得られる音声が出力されることを指す。
このように、図48の例では、SubPath_typeの種類として図11の第1の例の種類が利用されて、その結果、メインパス、サブパス1、および、サブパス2により、ピクチャインピクチャ手法が実現されている。
しかしながら、図48の例では、プライマリビデオストリームであるClip AVストリームファイル-0のVideoと同時に再生されるセカンダリビデオストリームとセカンダリオーディオストリームとのそれぞれは、同一のClip AVストリームファイル-1内に含まれる2ndVideoと2ndAudioとのそれぞれであるにも関わらず、別々のサブパス1とサブパス2とのそれぞれで定義されている。なぜならば、図11の例では、参照されるES(エレメンタリストリーム)の本数は1本のみである、というSubPath_typeの種類しか用意されていないためである。即ち、図11の例では、Audio,IG,Text,Videoといった各種類のESが、同一のClipに含まれるClip AVストリームファイルに含まれているか否かによらず、ES1本ずつに対して、SubPath_typeが1つずつ常に割り当てられる、というSubPath_typeの種類しか用意されていないためである。
即ち、図48の例によらず、図11の例のSubPath_typeの種類が利用される場合、メインパスで参照されるESと別に、再生対象のESが2本以上存在するときには、それらの2本以上のESは別々のサブパスにそれぞれ分けられて、即ち、2つの別のSPIのそれぞれとして定義されることになる。
この場合、それらの2本以上のESが同一のClipに含まれるClip AVストリームファイルに含まれているならば、上述したSubPlayItem_IN_time,SubPlayItem_OUT_time等は同一となるにも関わらず、それぞれ個別に持つ(その結果何重にも持つ)必要が生じてしまい、SubPlayItem_IN_time、および、SubPlayItem_OUT_timeの情報が冗長となる、という第1の問題点が発生する。
また、この場合、再生対象のESごとにサブパスを定義しなければならないので、PlayListの構造が必要以上に複雑になる、という第2の問題点も発生する。
さらに、かかる第2の問題点から、次のような第3の問題点も発生する。
即ち、例えば、本実施の形態では、再生装置(例えば上述した図36の再生装置141や後述する図53の再生装置401)には、同時に2本のTS(すなわち、2つのClipに含まれるそれぞれのTS)までしか読めないという制限(縛り)が課せられている。かかる制限が課せられた再生装置では、このような複雑な構造のPlayListを再生しようとすると、そのPlayList内に定義されているメインパスと、何れのサブパスを組み合わせて再生すればよいのかを直ちに決められない、即ち、そのような組み合わせを決定するために複雑な処理の実行が必要になる、という第3の問題点が発生する。
そこで、本発明人は、かかる第1乃至第3の問題点を解決すべく、SubPath_typeの種類として、複数のESを取り扱える種類、即ち、複数のESを同時に参照可能とする種類を追加する、という手法をさらに発明した。かかる手法が適用されたSubPath_typeの種類の第2の例が図49に示されている。
即ち、図49は、SubPath_type(サブパスのタイプ)の種類の第2の例であって、図11とは異なる例、即ち、図11の例にも存在する種類に対して、かかる第1乃至第3の問題点を解決可能な種類を追加した例を説明する図である。すなわち、かかる第1乃至第3の問題点を解決するためには、例えば、図49に示される第2のSubPath_typeを採用すればよい。
図49において、SubPath_type=0乃至4は、図11の対応するタイプと同一とされているので、ここではその説明については省略する。
ただし、SubPath_type=0乃至4の「Meaning」において、図49の例では「Out-of-mux」という記述がなされているが、図11の例ではその記述は省略されている。そこで、その記述について説明する。即ち、この「Out-of-mux」という記述は、サブパスで参照されるESが含まれるTSと、メインパスで参照されるESが含まれるTSとが異なっている場合のサブパスのタイプ(種類)、即ち、サブパスで参照されるESが、メインパスで参照されるプレイアイテムが含まれるTSに多重化されていないサブパスのタイプ(種類)であることを示している。以下、かかる種類を、メインパスTS非多重型のパスと称する。
また、SubPath_type=2,3のように、メインパスで参照されるESとサブパスで参照されるESとが非同期である場合、そのサブパスのタイプ(種類)を、以下、非同期型のパスと称する。一方、SubPath_type=4,5のように、メインパスで参照されるESとサブパスで参照されるESとが同期する場合、そのサブパスのタイプ(種類)を、以下、同期型のパスと称する。
SubPath_type=5は、Out-of-mux and AV Synchronized type of one or more elementary streams path(Primary audio/PG/IG/Secondary audio path).Out of mux and AV synchronized type of Picture-in-Picture presentation path which contains one or more elementary streams pathsとされている。即ち、SubPath_type=5は、メインパスTS非多重型、かつ、同期型のパスであって、1本以上のES(Primary audio/PG/IG/Secondary audio)のパスや、ピクチャインピクチャプレゼンテーションパスとされている。
すなわち、SubPath_type=5は、図11を用いて説明した例におけるSubPath_type=5,6のそれぞれで示される種類も含まれ、2nd Audio Presentation path(2番目のオーディオプレゼンテーションパス)(2ndオーディオストリームを参照するためのパス)や、2nd Video Presentation path(2番目のビデオプレゼンテーションパス)(2ndビデオストリームを参照するためのパス)を含むものである。
ここで、ピクチャインピクチャプレゼンテーションパスとは、上述したピクチャインピクチャ手法(図43参照)において、所定のプライマリビデオストリーム(メインパスで参照されるビデオストリーム)についての、プライマリオーディオストリームストリーム、セカンダリビデオストリーム、セカンダリオーディオストリーム、および、サブタイトルストリームのうちの1以上のパス(そのようなサブパスのタイプ)であることをいう。
SubPath_type=6は、Out-of-mux and AV non-Synchronized type of Picture-in-Picture presentation path which contains one or more elementary streams pathsとされている。即ち、SubPath_type=6は、メインパスTS非多重型、かつ、非同期型のパスであって、ピクチャインピクチャプレゼンテーションパス(1以上のESのパス)とされている。
SubPath_type=7は、In-mux type and AV Synchronized type of Picture-in-Picture presentation path which contains one or more elementary streams pathsとされている。
ここで、「In-mux」という記述は、サブパスで参照されるESが含まれるTSと、メインパスで参照される1以上のESが含まれるTSとが同一の場合のサブパスのタイプ(種類)、即ち、サブパスで参照されるESが、メインパスで参照されるESを含むTSに多重化されているサブパスのタイプ(種類)であることを示している。換言すれば、メインクリップに含まれるメインTSに、メインのClip AVストリームと、サブのClip AVストリームとが含まれている状態である。以下、かかる種類を、メインパスTS多重型のパスと称する。
即ち、SubPath_type=7は、メインパスTS多重型、かつ、同期型のパスであって、ピクチャインピクチャプレゼンテーションパス(1以上のESのパス)とされている。
そして、SubPath_type=8−255は予備(reserved)とされている。
図49の例のSubpath_typeの種類を利用することにより、新たに追加されたSubPath_type=5,6,7を利用することが可能となる。ここで、SubPath_type=7においては、PlayItemにより参照されるMainTS、すなわち、メインClip AVストリームには、SubPathにより参照されるSubSTも含まれる。そのため、図17を用いて説明したStream_entry()に代わって、type=3(なお、図50におけるtype=3は、図15を用いて説明した場合のtype=3とは異なる)が定義された、図50に示される第3のStream_entry()が用いられる。
すなわち、第3のStream_entry()において定義されているtype=3は、対応するPlayItemにおいてSubPath_type=7の場合に、MainClipに含まれ、SubPathによって参照されるエレメンタリストリームを識別するためのものである。
なお、図50において、図17と同一の部分については、その説明を適宜省略する。
すなわち、type=3では、SubPathがMainPathと同じClipを参照し、換言すれば、MainClipに複数のエレメンタリストリームが多重化され、MainPathとSubPathとのいずれも、MainClipに多重化されているエレメンタリストリームのうちのいずれかを参照している場合に、SubPath_type=7において、MainClipの複数のエレメンタリストリームの中から、SubPathによって参照される1つのエレメンタリストリームを再生時に特定するために、ref_to_stream_PID_of_MainClipにより、MainClipのパケットID(PID)が指定される。また、ref_to_SubPath_idによりSubPath_idが示され、このSubPath_idにより図9のPlayList()で定義されたSubPathが特定され、このSubpathから対応するSubPlayItemが呼び出されることにより(図10)、エレメンタリストリームの再生時間(In_time, Out_time)等を把握することができる(図12)ようになされている。
このように、type(type1乃至type3の3つのtype)を使うことで、PlayItemとそれに関連付けられて再生される1つ以上のSubPathが用意されている場合に、このPlayItemが参照するClipが、さらに、SubPathから参照されている場合であっても、Clipの中から1つのエレメンタリストリームを特定することができる。
また、以上説明したような図49の例のSubpath_typeの種類を利用することで、即ち、図11の例にも存在したSubPath_type=1乃至4とともに、新たに追加された複数(1以上)のエレメンタリストリームを扱いうるSubPath_type=5,6,7を利用することで、ピクチャインピクチャ手法(図43参照)を実現させる場合のPlayListとして、図48の例のような複雑な構造のPlayListの代わりに、例えば図51に示されるような簡単な構造のPlayListの作成/利用が可能になる。
即ち、図51の例では、メインパス(Main path)に含まれるプレイアイテム1(PlayItem1)が参照するClip AVストリームファイル-0に含まれるVideo(ビデオストリーム)とAudio(オーディオストリーム)とのそれぞれが、プライマリビデオストリームとプライマリオーディオストリームのそれぞれとしている。即ち、図43の例に対応させると、clip AVストリームファイル-0に含まれるVideoとAudioとのそれぞれが、プライマリビデオストリーム311とプライマリオーディオストリーム312のそれぞれに対応し、clip AVストリームファイル-0に含まれるVideoが全画面301に再生されるとともに、clip AVストリームファイル-0に含まれるAudioが再生出力される。
なお、STN_tableにおいて、video_stream_id, audio_stream_id, video_stream_id2, audio_stream_id2のそれぞれでstream_entryを定義し、かつ、図50のstream_entryにおいて、MainPathで指定されMainClipに存在する場合(type=1)、SubPathで指定し、SubClipに存在する場合、(type=2)、MainClipに存在するがSubPathで指定する場合(type=3、図50)のそれぞれを定義しているため、プライマリオーディオストリーム(audio_stream_idで示されるオーディオストリーム)であっても、SubPathで指定される場合もありえる。また、同様にして、本構成では、プライマリビデオストリーム(video_stream_idで示されるビデオストリーム)もSubPathで指定されることも可能であるが、プライマリビデオストリームが前提のAVデータと考えているため、プライマリビデオストリームは、MainPathにより指定されるものとする。なお、SubPathによりプライマリビデオを指定する場合には、SubPath_typeの定義の変更、追加を行うのみでよい。
また、図51の例でも、プライマリビデオストリームであるClip AVストリームファイル-0のVideoと同時に再生されるセカンダリビデオストリームとセカンダリオーディオストリームとのそれぞれは、同一のClip AVストリームファイル-1内に含まれる2ndVideoと2ndAudioとのそれぞれとされている。
そこで、図51の例では、サブパスA(Sub path-A)のタイプとして、上述したSubPath_type=5、即ち、メインパスTS非多重型、かつ、同期型のパスであって、ピクチャインピクチャプレゼンテーションパスが採用されている。これにより、サブパスA(Sub path-A)が参照するサブプレイアイテム(SPI)として、Clip AVストリームファイル-1に含まれる2ndVideoと2ndAudioとの2つのESを同時に参照できるようになる。その結果、図43の例に対応させると、1つのサブパスA(Sub path-A)のみで参照されるClip AVストリームファイル-1に含まれる2ndVideoと2ndAudioとのそれぞれが、セカンダリビデオストリーム313とセカンダリオーディオストリーム314のそれぞれに対応し、Clip AVストリームファイル-1に含まれる2ndVideoが子画面302に再生されるとともに、Clip AVストリームファイル-1に含まれる2ndAudioが再生出力される。
その際、サブパスA(Sub path-A)のタイプとして、上述したSubPath_type=5が採用されている場合、セカンダリビデオストリーム313とセカンダリオーディオストリーム314とは、プライマリビデオストリーム311と同期して再生されることになる。
換言すると、セカンダリビデオストリーム313とセカンダリオーディオストリーム314とを、プライマリビデオストリーム311と非同期で再生したい場合には(或いは非同期で再生する必要がある場合には)、サブパスA(Sub path-A)のタイプとして、上述したSubPath_type=6、即ち、メインパスTS非多重型、かつ、非同期型のパスであって、ピクチャインピクチャプレゼンテーションパス(1以上のESのパス)を採用すればよい。
このように、図51の例では、図49の例のSubpath_typeの種類が採用された結果、メインパスの他1つのサブパス(例えば、図50のサブパスA)のみで、ピクチャインピクチャ手法が実現されている。
即ち、同一のClip AVストリームファイル-1に含まれる2ndvideoと2ndAudioとのそれぞれをセカンダリビデオストリーム313とセカンダリオーディオストリーム314として利用する、といったピクチャインピクチャ手法を実現する場合、図11の例のSubpath_typeの種類を利用して生成された図48の例のPlayListでは、同一のClip AVストリームファイル-1に含まれる2ndvideoと2ndAudioとのそれぞれは2つの別々のサブパスで参照されていた。これに対して、図49の例のSubpath_typeを利用して生成された図51の例のPlayListでは、同一のClip AVストリームファイル-1に含まれる2ndvideoと2ndAudioとのそれぞれは1つのサブパスのみで参照できるようになっている。
その結果、2ndvideoと2ndAudioとのそれぞれについての、SubPlayItem_IN_time,SubPlayItem_OUT_time等は1つ持てばよいため、上述した第1の問題点を解決することが可能になる。
また、図48の例と図51の例のPlayListを比較すれば明らかなように、その構造を簡素化できるので、第2の問題点と第3の問題点を解決することが可能になる。
さらに、図49の例のSubpath_typeの種類のうちのSubPath_type=7、即ち、メインパスTS多重型、かつ、同期型のパスであって、ピクチャインピクチャプレゼンテーションパス(1以上のESのパス)を利用することで、例えば図52に示されるようなPlayListを作成することが可能になる。その結果、図52の例のPlayListを利用したピクチャインピクチャ手法の実現も容易に可能になる。
図52の例では、メインパス(Main path)に含まれるプレイアイテム1(PlayItem1)により参照されるMain TSには、Clip AVストリームファイル-0(ただし、図51のClip AVストリームファイル-0とは異なるClip AVストリームファイル)が含まれており、Clip AVストリームファイル-0には、PlayItem−1によって参照されるMainSTと、SubPlayItemによって参照されるSubSTが含まれている。そして、MainSTに含まれるVideo(ビデオストリーム)とAudio(オーディオストリーム)とのそれぞれが、プライマリビデオストリームとプライマリオーディオストリームのそれぞれとなる。即ち、図43の例に対応させると、Clip AVストリームファイル-0に含まれるMainSTのVideoとAudioとのそれぞれが、プライマリビデオストリーム311とプライマリオーディオストリーム312のそれぞれに対応し、Clip AVストリームファイル-0に含まれるVideoが全画面301に再生されるとともに、Clip AVストリームファイル-0に含まれるAudioが再生出力される。
また、図52の例では、プライマリビデオストリームであるMainSTのVideoと同時に再生されるセカンダリビデオストリームとセカンダリオーディオストリームとのそれぞれは、同じMain TSに含まれる、Clip AVストリームファイル-1に含まれる2ndVideoと2ndAudioとのそれぞれとなる。
この場合、図52の例のPlayListを作成するためには、サブパスA(Sub path-A)のタイプとして、SubPath_type=7を採用すればよい。これにより、サブパスA(Sub path-A)に含まれるサブプレイアイテム(SPI)が参照するESとして、メインパスでも参照しているMain TSのClip AVストリームファイル-0に含まれるSubSTの2ndVideoと2ndAudioとの2つのESを参照できるようになる。その結果、図43の例に対応させると、サブパスA(Sub path-A)で参照されるClip AVストリームファイル-0に含まれる2ndVideoと2ndAudioとのそれぞれを、セカンダリビデオストリーム313とセカンダリオーディオストリーム314のそれぞれに対応し、Clip AVストリームファイル-0に含まれる2ndVideoが子画面302に再生できるとともに、Clip AVストリームファイル-0に含まれる2nd Audioが再生出力されるようになる。すなわち、図52における場合では、メインクリップに含まれるメインTSに、メインのストリームであるMainSTと、サブのストリームであるSubSTとが含まれている。
その他、図52に示されるように、PlayItem-1に対するサブパスとして、サブパスAに加えて、Clip AVストリームファイル-1が含まれているMain TSとは異なるTS(Sub TS)に含まれているClip AVストリームファイル-1を参照するサブパスB(Subpath-B)が定義されている場合には、上述したように、本実施の形態の再生装置は、2つのTSを同時に読み出すことが可能であるので、メインTSに含まれるVideo,Audio,2ndVideo,2ndAudioとともに、サブTSに含まれるPG等も読み出すことが可能になる。
以上、ピクチャインピクチャ手法(図43参照)を適用するために必要なシンタクスの例、即ち、図44と図45の第7のSTN_table()や、図49の例のSubPath_typeの種類について説明した。
かかるピクチャインピクチャ手法を実現するためには、プライマリビデオストリームとセカンダリビデオストリームとを同時再生できる機能を有する再生装置、例えば図53に示されるような再生装置の適用が必要である。
次に、本発明を適用した再生装置の異なる例について説明する。再生装置401は、図36を用いて説明した再生装置141のAVデコーダ部151に代わって、AVデコーダ部403が設けられている以外は、基本的に、図36を用いて説明した再生装置141と同様の構成を有するものである。図53は、AVデコーダ部403の構成例を示すブロック図である。このAVデコーダ部403を備えた再生装置401は、ピクチャインピクチャ手法を適用して、図47を用いて説明したように、1画面のうちの、全画面301に、メインパスで参照されるAVストリームに対応する映画本編等のコンテンツを再生させるとともに、全画面301に配置される子画面302に、サブパスで参照されるAVストリームに対応する映画の監督のコメンタリー等の別のコンテンツを再生させることが可能である。
図53の再生装置401は、上述したメインパスとサブパスを有するPlayListであって、ピクチャインピクチャ手法を実現するためのPlayList(例えば図51や図52の例のPlayList)に従った再生を行うことができる。
なお、図53において、図36と対応する部分(ブロック)には対応する符号が付してあり、それらの説明については適宜省略する。
図53の例の再生装置401には、図36の例の再生装置141と同様の機能と構成を有する、ストレージドライブ22、スイッチ32、およびコントローラ21が設けられている。ただし、コントローラ21の機能は追加されている。追加された機能の詳細については後述する。さらに、図53の例の再生装置401には、図36の例の再生装置141のAVデコーダ部151とは機能と構成が若干異なるAVデコーダ部403が設けられている。
即ち、図53の例のAVデコーダ部403には、図36の例のAVデコーダ部151とほぼ同様の機能と構成を有するバッファ51乃至ミキシング処理部101が設けられている他、さらに、図36の例のAVデコーダ部151には設けられていないPIDフィルタ411乃至プリロード用バッファ414が設けられている。
なお、「図36の例のAVデコーダ部151とほぼ同様の機能と構成を有する」といったように「ほぼ」と記述したのは、ビデオデコーダ72やビデオプレーン生成部92の呼称が、1stビデオデコーダ72や1stビデオプレーン生成部92と変更されていたり、PIDフィルタ56の出力が1つ増加していたり等、若干異なるところがあるからである。
以下、図53の例のAVデコーダ部403のうちの、図36の例のAVデコーダ部151とは異なる箇所について説明する。
AVデコータ部403は、ピクチャインピクチャ手法を実現するために、プライマリビデオストリームとセカンダリビデオストリームとをデコードする必要がある。このため、図36の例のAVデコーダ部151に設けられていたビデオデコーダ72とビデオプレーン生成部92とのそれぞれは、図53の例のAVデコーダ部403においては、プライマリビデオストリーム用の1stビデオデコーダ72と1stビデオプレーン生成部92とのそれぞれとして設けられている。さらに、図53の例のAVデコーダ部403には、1stビデオデコーダ72と1stビデオプレーン生成部92とのそれぞれと同様の機能と構成を有する、セカンダリビデオストリーム用の2ndビデオデコーダ412と2ndビデオプレーン生成部413とのそれぞれが設けられている。
また、PIDフィルタ411には、メインClipAV Streamのビデオストリーム、または、サブClip AV Streamのビデオストリームが、PIDフィルタ161またはPIDフィルタ56を介して入力されてくる。そこで、PIDフィルタ411は、入力されたビデオストリームを、そのPID(パケットID)に応じて、後段の1stビデオデコーダ72または2ndビデオデコーダ412に振り分けて出力する。即ち、PIDフィルタ411は、プライマリビデオストリームが入力された場合には、そのプライマリビデオストリームを1stビデオデコーダ72に供給する。これに対して、PIDフィルタ411は、セカンダリビデオストリームが入力された場合には、そのセカンダリビデオストリームを2ndビデオデコーダ412に供給する。
なお、本実施の形態では、プライマリビデオストリームとして、メインClipAV Streamのビデオストリームのみが利用され、サブClip AV Streamのビデオストリームは利用されないとされている。ただし、将来、サブClip AV Streamのビデオストリームもプライマリビデオストリームとして利用され得ることも考慮して、PIDフィルタ56から供給されたサブClip AV Streamのビデオストリームも1stビデオデコーダ72に供給され得るように、PIDフィルタ411が構成されている。すなわち、Subpathにより指定されたサブClipに含まれるビデオストリームのみを再生し、ビデオストリームの再生にメインClipを使わず、オーディオストリームの再生は、サブClip、もしくは、メインClipを用いる場合である。従って、ビデオストリーム、オーディオストリームの再生に、メインクリップを使わず(MainPathを使わず)、SubClipのみを用いた(SubPathのみを用いた)再生とする構成も可能である。
プリロード用バッファ414は、インタラクティブグラフィックスデコーダ74から供給されたインタラクティブグラフィックスストリームを一時記憶する。即ち、上述したように、本実施の形態では、再生装置401には、一度に2つのTSしか読み出せないという制限が課せられている。そこで、再生装置401は、インタラクティブグラフィックスストリームを予め取得しておくことで(プリロードしておくことで)、ビデオストリームやオーディオストリームを再生するときに、プリロードしておいたインタラクティブグラフィックスストリームも同時再生することができる、といった機能を有している。かかる機能を実現するために、即ち、プリロードされたインタラクティブグラフィックスストリームを、ビデオストリームやオーディオストリームが再生されるタイミングまで保存しておくために、プリロード用バッファ414が図53の例のAVデコード部403に設けられているのである。
次に、かかる図53の例の再生装置401が実行するピクチャインピクチャ手法による処理の一例であって、プライマリビデオストリーム等の再生中等に、再生対象のセカンダリビデオストリーム等を切り替えるために必要な一連の処理(以下、セカンダリビデオ切り替え処理と称する)の一例について、図54と図55のフローチャートを参照して説明する。
図54のステップS101において、コントローラ21は、セカンダリビデオストリーム番号(IDでもよい)の順番リストと、セカンダリビデオストリームに組み合わされているプライマリオーディオストリーム、セカンダリオーディオストリーム、および、サブタイトルストリームのリストを、図44と図45とを用いて説明した第7のSTN_table()から取得する。
ここでは、このステップS101の処理後、取得されたリストに基づいて、例えば上述した図46のようなストリームナンバーテーブルが生成され、そのストリームナンバーテーブル自身またはそれに基づいて生成された所定のGUI(Graphical User Interface)画像が、コントローラ21により生成され、表示装置への表示が制御されて、ユーザに呈示されるとする。そして、これにより、処理はステップS102に進むとする。
ステップS102において、コントローラ21は、ユーザからのセカンダリビデオストリームに対する切り替えの指令を受け付ける。
即ち、上述した図46と図47を用いて説明したユーザの切り替え操作の内容が、ステップS102において、ユーザからのセカンダリビデオストリームに対する切り替えの指令としてコントローラ21に受け付けられることになる。
ステップS103において、コントローラ21は、再生しているセカンダリビデオストリーム、プライマリオーディオストリーム、セカンダリオーディオストリーム、および、サブタイトルの組み合わせの次の組み合わせの番号を取得する。
具体的には、例えば、図46の例のストリームナンバーテーブルがユーザに呈示されたとすると、セカンダリビデオストリーム、プライマリオーディオストリーム、セカンダリオーディオストリーム、および、サブタイトルの組み合わせとして、次の第1の組み合わせ乃至第3の組み合わせが存在することになる。即ち、第1の組み合わせとは、ビデオ2、オーディオ2、オーディオ4、サブピクチャ3の組み合わせをいう。第2の組み合わせとは、ビデオ1、オーディオ1、オーディオ4、サブピクチャ1の組み合わせをいう。第3の組み合わせとは、ビデオ1、オーディオ1、オーディオ5、サブピクチャ1の組み合わせをいう。そこで、例えばここでは、第1の組み合わせ、第2の組み合わせ、および、第3の組み合わせのそれぞれの組み合わせの番号として、1、2−1、2−2のそれぞれが与えられているとする。そして、例えば、ここでは、ステップS102の処理で、図47の例の選択操作結果、即ち、第2の組み合わせの選択指令がコントローラ21に受け付けられたとする。この場合、ステップS103の処理では、次の組み合わせの番号として2−1が取得される。
ステップS104において、コントローラ21は、stream_attribute()(図18)に記述されている内容に基づいて、取得した番号(初回のステップS104の処理では、直前のステップS103の処理で取得した番号)に対応する複数のストリームを再生する機能を有するか否かを判定する。
具体的には、例えば、オーディオストリームの再生機能に着目すると、図47の例の選択操作結果、即ち、第2の組み合わせの選択指令がコントローラ21に受け付けられた場合には、オーディオ1とオーディオ4とのそれぞれの再生機能を有するか否かの判定がステップS104の処理として実行される。
また、その他、ビデオストリーム等他のストリームの再生機能の有無の判定もステップS104の処理として併せて実行することも可能である。
ステップS104において、取得した番号に対応する複数のストリームの再生する機能を有していないと判定した場合、コントローラ21は、ステップS105において、現在の組み合わせの番号の次の組み合わせの番号を取得する。即ち、現在の組み合わせ番号で特定されるオーディオストリーム等を再生する機能を有しない場合には、その組み合わせ番号は飛ばされ(再生対象とならず)、次の組み合わせ番号が取得される。その後、処理はステップS104に戻され、それ以降の処理が繰り返される。即ち、再生装置401自身が再生する機能を有するオーディオストリーム等を特定する組み合わせ番号が取得されるまで、ステップS104とS105のループ処理が繰り返される。
ステップS104において、取得した番号(1回目の処理の場合は上述したように直前のステップS103の処理で取得された番号であり、2回目以降の処理の場合は直前のステップS105の処理で取得された番号である)に対応する複数のストリームの再生する機能を有すると判定された場合、処理は図55のステップS106に進む。
ステップS106において、コントローラ21は、Stream_entry()のtypeに基づいて、取得した番号に対応するセカンダリビデオストリーム、プライマリオーディオストリーム、セカンダリオーディオストリーム、およびサブタイトルストリーム各々を含むClipを調べる。即ち、取得した番号に対応するセカンダリビデオストリーム、プライマリオーディオストリーム、セカンダリオーディオストリーム、およびサブタイトルストリームは各々、メインClipにあるのか、それとも、サブClipにあるのかが確認される。
ステップS107において、コントローラ21は、所望のセカンダリビデオストリーム、プライマリオーディオストリーム、セカンダリオーディオストリーム、およびサブタイトルストリーム各々を特定する。即ち、ステップS107の処理で、メインClipまたはサブClipの中の中から、取得した番号に対応する所望の各ストリームが特定される。
ステップS108において、コントローラ21は、ストレージドライブ22に、所望のセカンダリビデオストリーム、プライマリオーディオストリーム、セカンダリオーディオストリーム、およびサブタイトルストリーム各々が多重化されているClip(メインClipまたはサブClip)から、特定されたそれぞれのストリームを読み出すよう指示するか、または、ローカルストレージ24に記録されているClipから、特定されたそれぞれのストリームを読み出して、AVデコーダ部403に供給させる。対象となるClipが記録媒体11に記録されている場合、ストレージドライブ22は、この指示に基づいて、記録媒体11に記録されている対象となるClipから、特定されたストリームを読み出す。具体的には、コントローラ21は、ステップS107の処理で特定したそれぞれのストリームを、記録媒体11に記録されているClipから読み出すようストレージドライブ22に指示する。
そして、コントローラ21は、読み出された各々のストリームをAVデコーダ部403に供給するとともに、セカンダリビデオストリーム、プライマリオーディオストリーム、セカンダリオーディオストリーム、およびサブタイトルストリームを再生するようAVデコーダ部403に指示する。具体的には、コントローラ21は、読み出された所望のセカンダリビデオストリームを2ndビデオデコーダ412にデコードさせるよう、読み出された所望のプライマリオーディオストリームを1stオーディオデコーダ75−1にデコードさせるよう、読み出された所望のセカンダリオーディオストリームを2ndオーディオデコーダ75−2にデコードさせるよう、読み出された所望のサブタイトルストリームをプレゼンテーショングラフィックスデコーダ73等にデコードさせるよう、それぞれ指示する。
ステップS109において、AVデコーダ部403は、セカンダリビデオストリーム、プライマリオーディオストリーム、セカンダリオーディオストリーム、およびサブタイトルストリームをデコードし出力して、処理が終了される。
その際、プライマリオーディオストリームとセカンダリオーディオストリームとについては、上述したように、プライマリオーディオストリームとセカンダリオーディオストリームとがミキシングされた結果得られるオーディオ信号が出力されることになる。
このようなセカンダリビデオ切り替え処理の結果、図43を用いて説明したピクチャインピクチャ手法が実現される。即ち、図43の例では、プライマリビデオストリーム311に対応する映像が全画面311に表示(再生)されている最中に、ステップS109の処理で出力されたセカンダリビデオストリーム313に対応する映像が子画面302に表示(再生)され、ステップS109の処理で出力されたサブタイトルストリーム315に対応する字幕等が全画面311の所定の位置に表示(再生)され、ステップS109の処理で出力されたプライマリオーディオストリーム311とセカンダリオーディオストリーム402とがミキシングされた結果得られる音声が、図43には図示せぬスピーカから出力(再生)される。
以上説明したように、図44と図45の例の第7のSTN_tableを採用することで、ピクチャインピクチャ手法を実現することが可能になる。
このようなピクチャインピクチャ手法を実現する場合、図11の例のSubPath_typeの種類を利用して生成されるPlaylist(例えば図48参照)を利用することも可能であるが、上述したように、同一のClip AV Streamに含まれているセカンダリビデオストリームやセカンダリオーディオストリーム等は、それぞれ別々のサブパスに分けられること、即ち、2つの別のSPIとして定義されることになってしまう。その結果、上述した各種問題点、例えばPlayListの構造が必要以上に複雑になるという問題点が発生する。
そこで、これらの各種問題点を解決する場合には、同一Clip AV Stream内の2以上のES(セカンダリビデオストリームやセカンダリオーディオストリーム等)を1つのサブパスで参照できるように、即ち、同一Clip AV Stream内の2以上のESを1つのSPIとして定義できるようなSubPath_typeの種類、即ち、例えば図49を用いて説明したSubPath_typeの種類を採用すればよい。
ただし、PlayListの作成者側の観点に立つと、図45の例のSubPath_typeの種類を採用することで簡単な構造のPlayListを作成できるようになったとは言え、即ち、作成された結果のPlayListの構造が簡単になったとは言え、そのような簡単な構造のPlayListを作成するまでには、次のような困難な作業が必要になる。即ち、PlayListの作成者は、ピクチャインピクチャ手法を実現するために、どのような種類のストリームの組み合わせが可能であり、どのような種類のストリームの組み合わせが不可能であるのかを自分自身で判断した上で、即ち、どのような種類のサブパスを含めるのかを自分自身で判断した上で、PlayListを作成しなければいけない、といった困難な作業が必要になる。従って、PlayListの作成者側から、PlayListを簡単に作成したいという要望が挙げられるようになることは想像に難くない。
従って、かかる要望に予め応えるべく、本発明人は、PlayListの種類に応じて、作成可能(そのPlayListに含めることが可能なサブパス)を、図49を用いて説明したSubPath_typeにより制限する、といった手法を発明した。なお、以下、かかる手法を、サブパス制限手法と称する。
サブパス制限手法を適用することで、1つのPlayListに含め得るサブパスが限定されるため、作成者にとっては、PlayListにどのようなサブパスを含めるのかを判断した上でサブパスを作成することが容易になり、ひいては、PlayListの作成自体も容易になる、という効果を奏することが可能になる。
以下、サブパス制限手法について、詳しく説明していく。
ただし、サブパス制限手法では、再生装置が一度に読み出すことが可能なTSの数によって、その制限内容が変化する。本実施の形態では、上述したように、再生装置が一度に読み出すことが可能なTSは2つとされている。そこで、以下、再生装置が一度に読み出すことが可能なTSは2つである場合のサブパス制限手法について説明していく。
本実施の形態では、PlayListは、Browsable Slideshow(非同期型)と、Movie Type/Time-based Slideshow(同期型)といった2種類に大別される。PlayListの種類が非同期型であるのか或いは同期型であるのかといった区別は、そのPlayListにより参照されるClipのclip_Information_fileに含まれるapplication_type(アプリケーションタイプ)に従って行うことが可能である。
application_typeは、あるClipについてのClip Informationファイル中のClipInfo()に記述されている。ただし、ここでは、説明の簡略上、ClipInfo()のシンタクスの説明については省略し、以下、そのClipinfo()に記述され得るapplication_typeの種類についてのみ、図56を参照して説明する。
即ち、図56は、application_typeの種類の例を説明する図である。
図56に示されるように、application_type=0は、予備(reserved)とされている。application_type=1は、映画のアプリケーション用のMain TSとされている。ここで「Main TS」とは、Playlistにおいてメインパスにより参照されるPlayItemとしてのTransport stream、即ち、Main TSを指している。application_type=2は、Time-based Slideshow用のMain TS、即ち、画像のスライドショー用のMain TSとされている。application_type=3は、Browsable Slideshow用のTS、即ち、ビデオのスライドショー用のMain TSとされている。
application_type=4は、SubPath用のBrowsable SlideshowのTSとされている。これは、例えば、上述したapplication_type=3と非同期で再生されるBGM(サウンド)データを保持するClip AVストリームに対してのClip Info()に付与される。application_type=5は、SubPathのインタラクティブグラフィックス用のTSとされている。application_type=6は、SubPathのテキストサブタイトル(テキスト字幕データ)用のTSとされている。application_type=7は、1つ以上のES(エレメンタリストリーム)を含むSubPath用のTSとされている。application_type=8乃至255は、予備(reserved)とされている。
そして、application_type=1乃至application_type=6で表されるClip AV Stream Fileは、ストレージドライブ22を介して記録媒体11から取得されるか、または、ローカルストレージ24から取得される。これに対して、application_type=7で表されるClip AV Stream Fileは、ローカルストレージ24から取得され、ストレージドライブ22を介して記録媒体11から取得されない。
そこで、本実施の形態では、PlayListにより参照されるMain TSについてのClipInfo()に記述されているapplication_typeが、application_type=3の場合、そのPlayListはBrowsable Slideshow(非同期型)に分類され、application_type=1or2の場合、そのPlayListはMovie Type/Time-based Slideshow(同期型)に分類されるとする。
この場合、PlayListの種類(非同期型または同期型)に対する、そのPlayListが持ち得るSubPath(サブパス)の組み合わせは、図57に示される組み合わせのみ許可する、という制限がサブパス制限手法により課されることになる。
図57において、「number of SubPaths」の項目には、PlayListにより示されるMain TSが持ち得る、左方の「SubPath_type」の項目に示される種類のSubPathの個数が記述されている。
また、図57における「SubPath_type」の項目の各記述値(SubPath_typeの種類)は、上述した図11の例の種類ではなく、図49の例の種類に対応している。
図57に示されるように、PlayListの種類が非同期型の場合、即ち、application_type(of Main TS)=3であるBrowsable slideshowの場合、(1)0本以上のSubPath_type=2のSubPath、(2)0本以上のSubPath_type=3のSubPathのみが許可される。換言すると、(1)と(2)以外のSubPathの組み合わせは禁止される。
また、(2)の組み合わせであっても、application_type=3のMain TSにIGが含まれる場合には、SubPath_type=3のSubPathは禁止される(図57中*2参照)。これは、次の制約によるものである。
即ち、IGの観点に立つと、IGを含むPlayListは、次の第1の種類と第2の種類に大別される。第1の種類とは、参照されるMain TSにIGが多重化されていて、そのMain TSのAudio/VideoとIGが同期再生される、という種類をいう。第2の種類とは、SubPath_type=3のSubPathを含み、IGはプリロードされる(このIGはポップアップメニューに使われる)、という種類をいう。なお、この第2の種類のPlayListを再生可能とするために、上述したように、図53の再生装置401にはプリロード用バッファ414が設けられているのである。
また、本実施の形態の再生装置はIGデコーダを1つしか有しないため、具体的には、例えば、図53の再生装置401はインタラクティブグラフィックスデコーダ74を1つしか有しないため、次の制限が課せられている。即ち、上述した第1の種類のPlayListでは、IGデコーダがMain TSのIGをデコード中に、別のIGをプリロードできない、という制限が課せられている。一方、上述した第2のPlayListでは、IGデコーダ中にプリロードされた第1のIGが入力されている状態のとき、別のMain TSからの第2のIGをIGデコーダへ入力できない、という制限が課せられている。
以上のことから、Main TSに多重化されているIGを参照するSTN_table()を含むPlayListは、SubPath_type=3のSubPathを持てないという制約が課せられることになる。かかる制約のため、application_type=3のMainTSにIGが含まれる場合には、SubPath_type=3のSubPathは禁止される、としたのである(図57中*2参照)。
一方、PlayListの種類が同期型の場合、即ち、application_type(of Main TS)=1 or 2であるMovie Type/Time-based Slideshowの場合、(3)0本以上のSubPath_type=3のSubPath、(4)0本以上のSubPath_type=4のSubPath、(5)0本以上のSubPath_type=5のSubPath、(6)0本以上のSubPath_type=6のSubPath、(7)0本または1本のSubPath_type=7のSubPathのみが許可される。換言すると、SubPath_type=2のSubPathの組み合わせは禁止される。
また、(3)の組み合わせであっても、application_type=3のMainTSにIGが含まれる場合、または、SubPath_type=5のSubPathが参照するTSにIGが含まれる場合には、SubPath_type=3のSubPathは禁止される(図57中*1参照)。これも、上述した制約によるものである。
さらに、本実施の形態では、上述したように、PlayListが一度に参照することができるClipの数、すなわち、再生装置が一度に読み出すことが可能なTSは、多くても2つとされている。そこで、同一のPlayListにより参照されるESが多くても2つのClipに含まれていること、すなわち、同時に再生されるESは、多くても2つのClip AVストリームファイルから同時に参照されることを保証するために、次に示される条件を満たすという制限が、サブパス制限手法により課せられている。
即ち、サブパス制限手法により課せられている、STN_table()によって参照される、primary_video_stream、 primary_audio_stream、 Text subtitle stream以外のPG_textST_stream、 IG for Pop-up menu 以外のIG_stream、,secondary_video_stream、および、secondary_audio_streamのそれぞれを組み合わせる時の条件とは、次の通りである。
ある値のprimary_video_stream_numberで特定されるES、 ある値のprimary_audio_stream_number で特定されるES、 ある値のPG_textST_stream_numberで特定されるES、ある値のIG_stream_number valueで特定されるES、ある値の secondary_video_stream_number で特定されるES、ある値のsecondary_audio_stream_number で特定されるESにおいて、同時に再生可能である組み合わせは、多くても2つのPlayListによって同時に参照されるClip AVストリームファイルに格納されている必要がある。
なお、STN_table()によって参照されるESは、3本以上のClip AVストリームファイルに格納されていてもよいが、同時に再生可能であるESは、そのうちの多くても2つのClip AVストリームファイルに格納されるようになされている。
また、PlayList内にあるPlayItem(MainPath)とSubPathの数の組み合わせは、図58に示されるように、次の(a)乃至(c)のうちのいずれかの組み合わせである必要がある、という制限もサブパス制限手法により課せられている。即ち、(a)の組み合わせとは、1つのPlayItemのみの組み合わせ(図58中、一番上の行の組み合わせ)をいう。(b)の組み合わせとは、1つのPlayItemと1つのSubPathとの組み合わせ(図58中、中央の行の組み合わせ)をいう。(c)の組み合わせとは、1つのPlayItemと1つSubPathと1つのSubPath_type=7のSubPathとの組み合わせ、即ち、1つのPlayItemと2つSubPath(ただし、そのうちの1つのSubPath_type=7であること)との組み合わせ(図58中、一番下の行の組み合わせ)をいう。
以上説明した各種制限による結果として、所定の種類のPlayListについて作成可能なSubPath_typeを制限する、といった手法が、サブパス制限手法の一例である。
換言すると、サブパス制限手法とは、PlayListの種類(上述した例では、Main TSのapplication_typeで区別される種類)、再生装置が一度に読み出すことが可能なTSの数(上述した例では2つ)、および、PlayListのサブパス(SubPath)で参照されるESにプリロードされるIGが含まれているか否か(上述した例ではSubPath_type=3等のSubPathであるか否か)といった条件(制限)が存在し、これらの条件を満たすように、そのPlayListに含めるSubPathを決定する、ひいては、そのようにして決定したSubPathを含むPlayListを作成する、といった手法であるともいえる。
以下、図59乃至図62を参照して、かかるサブパス制限手法により作成されたPlayListの具体例について説明する。
図59は、Browsable Slideshow(非同期型)のPlayListであって、SubPath_type=3のSubPathが存在しない場合のPlayList、即ち、SubPath_type=2のSub_Path-1乃至Sub_Path-3のみが存在する場合のPlayListの一例を示している。なお、SubPath_type=3のSubPathが存在しない理由は、PlayListのPlayItem−1/PlayItem−2が参照しているClip AVストリームファイル-0(すなわち、Main TS)にIGが含まれているためである。なお、この例は、複数の静止画をユーザ操作によって連続して表示していくBrowsable Slideshowを表しているため、Clip AVストリームファイル-0に含まれる、「video」のストリームは、静止画データを保持している。
図59の例のPlayListを作成するために利用された制限(条件)の内容は次の通りである。即ち、図57を用いて上述した、「(1)0本以上のSubPath_type=2のSubPath、(2)0本以上のSubPath_type=3のSubPathのみを許可する」という制限と、「(1)と(2)以外のSubPathの組み合わせは禁止する」という制限と、「(2)の組み合わせであっても、application_type=3のMainTSにIGが含まれる場合には、SubPath_type=3のSubPathは禁止される(図57中*2参照)」という制限とが利用されて、図59の例のPlayListが作成されている。
このような図59の例に対して、図60は、Browsable Slideshow(非同期型)のPlayListであって、SubPath_type=3のSubPathが存在する場合のPlayList、即ち、SubPath_type=2のSub_Path−1,2に加えてさらに、SubPath_type=3のSub_Path−3が存在する場合のPlayListの一例を示している。なお、SubPath_type=3のSubPathが存在する理由は、PlayListのPlayItem−1/PlayItem−2が参照しているMain-STのClip AVストリームファイル-0にIGが含まれていない、即ち、SubPath_type=3のSubPathにより、Clip AVストリームファイル-0とは異なるClip AVストリームファイル−3のIGを参照するためである。
図60の例のPlayListを作成するために利用された制限(条件)の内容は、図59の例の上述した制限内容と同一である。
換言すると、図57中*2で示される制限、即ち、「(2)の組み合わせであっても、application_type=3のMainTSにIGが含まれる場合には、SubPath_type=3のSubPathは禁止される」という制限を課す必要がある場合のPlayListの例が、図59の例であり、そのような制限を課す必要がない場合のPlayListの例が、図60の例である。
このように、図59と図60は、Browsable Slideshow(非同期型)のPlayListの例を示している。これに対して、図61と図62は、Movie Type / Time-based Slideshow(同期型)のPlayListの例を示している。
即ち、図61は、同期型のPlayListのうちの、セカンダリビデオストリーム(2ndVideo)とセカンダリオーディオストリーム(2ndAudio)とがMain TS(すなわち、Clip AVストリームファイル-0)に多重化されていない場合のPlayListであって、SubPath_type=6のSub_Path-1,2が存在する場合のPlayListの一例を示している。
図61の例のPlayListを作成するために利用された制限(条件)の内容は次の通りである。即ち、図57を用いて上述した、「(6)0本以上のSubPath_type=6のSubPathを許可する」という制限が利用されて、図61の例のPlayListが作成されている。
このような図61の例に対して、図62は、同期型のPlayListにより参照されるMainTSすなわちClip AVストリームファイル-0が、MainSTとSubSTとを含み、、セカンダリビデオストリーム(2ndVideo)とセカンダリオーディオストリーム(2ndAudio)がMain TSを構成するClip AVストリームファイル-0に SubSTとして多重化されている場合のPlayListであって、それゆえ、SubPath_type=7のSub_Path-1が存在し、さらに、SubPath_type=5のSub_Path-2,3が存在する場合のPlayListの一例を示している。
図62の例のPlayListを作成するために利用された制限(条件)の内容は次の通りである。即ち、図57を用いて上述した、「(5)0本以上のSubPath_type=5のSubPathを許可する」という制限と、「(7)0本のSubPathとSubPath_type=7のSubPathを許可する」という制限とが利用されて、図62の例のPlayListが作成されている。
また、以上説明したようなサブパス制限手法により作成されたPlayListも、例えば図53の再生装置401により再生可能とされている。
例えば、非同期型のPlayListの場合、即ち、application_type=3であるBrowsable slideshowのPlayListの場合、再生装置401は、そのPlayListを次のようにして再生することができる。即ち、再生装置401は、PlayListが1本以上のSubPath_type=3(Interactive graphics presentation menu)のSubPathsを参照している場合、SubPath_type=3用のClip AVストリーム、即ち、インタラクティブグラフィックスストリームをPlayListの再生前にプリロードして、プリロード用バッファ414に蓄積させる。また、再生装置401は、PlayListが1本以上のSubPath_type=2のSubPathを参照している場合、1つずつしかSubPathを参照できないので(一度に読み出すことが可能なTSは2つであり、そのうちの1つはMainPathにより参照されるMainTSであるので)、SubPath_type=2の1以上のSubPathのうちの所定の1つを参照して再生する。
なお、Interactive graphics presentation menuには、ユーザによるON/OFFの操作入力を基に、表示させたり、表示を取り消したりすることが可能な“Pop-up menu”と、常時表示される“Always-on”の2種類の表示方法が用意されており、application_type=3のPlayListの再生処理の詳細例については、図63,図64を参照して後述する。
また、例えば同期型のPlayListの場合、即ち、application_type=1or2であるMovie Type/Time-based SlideshowのClipを含むPlayListの場合、再生装置401は、そのPlayListを次のようにして再生することができる。即ち、再生装置401は、PlayListが1本以上のSubPath_type=3またはSubPath_type=4のSubPathを参照している場合、SubPath_type=3またはSubPath_type=4用のClip AVストリーム、即ち、インタラクティブグラフィックスストリームまたはテキストサブタイトルストリームをPlayListの再生前にプリロードして、プリロード用バッファ414またはバッファ54に蓄積させる。また、再生装置401は、PlayListが1本以上SubPath_type=5or6のSubPathを参照している場合、Playerは1つずつしかSubPathを参照できないので(一度に読み出すことが可能なTSは2つであり、そのうちの1つはMainPathにより参照されるMainTSであるので)、SubPath_type=5 or 6の1以上のSubPathのうちの所定の1つを参照して再生する。ただし、SubPath_type=7のSubPathが1以上含まれている場合には、そのSubPathはMain TSに含まれるESを参照しているので、再生装置401は、SubPath_type=5 or 6の1以上のSubPathのうちの所定の1つを参照して再生している最中に、さらに、SubPath_type=7の1つのSubPathを参照して再生することができる。
なお、application_type=1or2のPlayListの再生処理の詳細例については、図65乃至図68を参照して後述する。
次に、図63および図64のフローチャートを参照して、application_type=3のClipを含むPlayListの再生処理の一例について説明する。
例えば、図53のコントローラ21は、再生対象のPlayListのMainPathで参照されるClip_informationファイル中のclipinfo()に含まれるのapplication_typeを調査し、その調査によりapplication_type=3であることを認識した場合、application_type=3のPlayListの再生処理を開始させる。
図63のステップS121において、コントローラ21は、Main TSはIG(インタラクティブグラフィックスストリーム)を含むか否かを判定する。
ステップS121において、Main TSはIGを含まないと判定された場合、処理は図64のステップS126に進む。ただし、ステップS126以降の処理については後述する。
これに対して、ステップS121において、Main TSはIGを含むと判定された場合、処理はステップS122に進む。
ステップS122において、コントローラ21は、SubPath_type=3のSub Pathは存在するか否かを判定する。
ステップS122において、SubPath_type=3のSub Pathは存在しないと判定された場合、処理は図64のステップS126に進む。ただし、ステップS126以降の処理については後述する。
これに対して、ステップS122において、SubPath_type=3のSub Pathは存在すると判定された場合、処理はステップS123に進む。ステップS123において、コントローラ21は、選択されたSub Path(SubPath_type=3のSub Path)が参照するClipを調べる。
そして、コントローラ21は、そのClipから、Sub Pathにより特定されるストリーム、すなわち、IGを読み出すようストレージドライブ22に指示する。ストレージドライブ22は、この指示に基づいて、対象となるIGを読み出す。または、コントローラ21は、ローカルストレージ24から対象となるIGを読み出す。そして、コントローラ21は、読み出されたIGを、インタラクティブグラフィックスデコーダ74にデコードさせるように指示する。これにより処理はステップS124に進む。
ステップS124において、インタラクティブグラフィックスデコーダ74は、読み出されたIGをデコードする。そして、ステップS125において、インタラクティブグラフィックスデコーダ74は、デコードされたIGをプリロード用バッファ414に格納する。
このようにしてステップS125の処理が終了したとき、または、上述したようにステップS121若しくはS122の処理でNOであると判定されたとき、処理は図64のステップS126に進む。
ステップS126において、コントローラ21は、SubPath_type=2のSub Pathは存在するか否かを判定する。
ステップS126において、SubPath_type=2のSub Pathは存在しないと判定された場合、処理はステップS129に進む。ただし、ステップS129以降の処理については後述する。
これに対して、ステップS126において、SubPath_type=2のSub Pathは存在すると判定された場合、処理はステップS127に進む。ステップS127において、コントローラ21は、選択されたSubPath(SubPath_type=2のSub Path)が参照するClipを調べる。
そして、コントローラ21は、そのClipからSubPathにより特定されるストリーム、すなわち、オーディオストリームを読み出すようストレージドライブ22に指示する。ストレージドライブ22は、この指示に基づいて、対象となるオーディオストリームを読み出す。または、コントローラ21は、ローカルストレージ24から対象となるオーディオストリームを読み出す。そして、コントローラ21は、読み出されたオーディオストリームを、例えば2ndオーディオデコーダ75−2にデコードさせるように指示する。これにより処理はステップS128に進む。
ステップS128において、2ndオーディオデコーダ75−2は、読み出されたオーディオストリームをデコードする。
このようにして、ステップS128の処理が終了したとき、または、ステップS126の処理でNOであると判定されたとき、処理はステップS129に進む。
ステップS129において、AVデコーダ部403は、メインClip AV Streamをデコードする。ここで、メインClip AV Streamとは、再生対象のPlaylistのMainPathにより参照されるビデオストリームやオーディオストリーム等のことであり、Main TSに含まれている。即ち、AVデコーダ部403のうちの、1stビデオデコーダ72や1stオーディオデコーダ75−1等が、このステップS129の処理を実行する。
ステップS130において、AVデコーダ部403は、デコードされたメインClip AV Streamと、デコードされたSubPathストリームを合成し、出力する。ここで、デコードされたSubPathストリームとは、図63のステップS124の処理でデコードされてステップS125の処理でプリロード用バッファ414に格納されたIGや、図64のステップS128の処理でデコードされたオーディオストリームのことをいう。
ステップS131において、コントローラ21は、ステップS130の処理で合成されたストリームを出力中に、SubPath_type=2のSubPathの切り替え指示(ユーザの切り替え操作)があったか否かを判定する。
ステップS131において、合成されたストリームを出力中に、SubPath_type=2のSubPathの切り替え指示があったと判定された場合、処理はステップS127に戻され、それ以降の処理が繰り返される。即ち、メインClip AV Streamと合成されるオーディオストリームが切り替えられる。
これに対して、ステップS131において、合成されたストリームを出力中に、SubPath_type=2のSubPathの切り替え指示がなかったと判定された場合、application_type=3のPlayListの再生処理が終了となる。
次に、図65乃至図68のフローチャートを参照して、application_type=1or2のClipを含むPlayListの再生処理の一例について説明する。
例えば、図53のコントローラ21は、再生対象のPlayListのMainPathで参照されるClipのapplication_typeを調査し、その調査の結果、application_type=1or2であることを認識した場合、application_type=1or2のPlayListの再生処理を開始させる。
図65のステップS141において、コントローラ21は、Main TSはIG(インタラクティブグラフィックスストリーム)を含むか否かを判定する。
ステップS141において、Main TSはIGを含まないと判定された場合、処理はステップS146に進む。ただし、ステップS146以降の処理については後述する。
これに対して、ステップS141において、Main TSはIGを含むと判定された場合、処理はステップS142に進む。
ステップS142において、コントローラ21は、SubPath_type=3のSub Pathは存在するか否かを判定する。
ステップS142において、SubPath_type=3のSub Pathは存在しないと判定された場合、処理はステップS146に進む。ただし、ステップS146以降の処理については後述する。
これに対して、ステップS142において、SubPath_type=3のSub Pathは存在すると判定された場合、処理はステップS143に進む。ステップS143において、コントローラ21は、選択されたSubPath(SubPath_type=3のSub Path)が参照するClipを調べる。
そして、コントローラ21は、そのClipから、SubPathにより特定されるストリーム、すなわち、IGを読み出すようストレージドライブ22に指示する。ストレージドライブ22は、この指示に基づいて、対象となるIGを読み出す。または、コントローラ21は、ローカルストレージ24から対象となるIGを読み出す。そして、コントローラ21は、読み出されたIGを、インタラクティブグラフィックスデコーダ74にデコードさせるように指示する。これにより処理はステップS144に進む。
ステップS144において、インタラクティブグラフィックスデコーダ74は、読み出されたIGをデコードする。そして、ステップS145において、インタラクティブグラフィックスデコーダ74は、デコードされたIGをプリロード用バッファ414に格納する。
このようにしてステップS145の処理が終了したとき、または、上述したようにステップS141若しくはS142の処理でNOであると判定されたとき、処理はステップS146に進む。
ステップS146において、コントローラ21は、SubPath_type=4のSub Pathは存在するか否かを判定する。
ステップS146において、SubPath_type=4のSub Pathは存在しないと判定された場合、処理は図66のステップS149に進む。ただし、ステップS149以降の処理については後述する。
これに対して、ステップS146において、SubPath_type=4のSub Pathは存在すると判定された場合、処理はステップS147に進む。ステップS147において、コントローラ21は、選択されたSubPath(SubPath_type=4のSub Path )が参照するClipを調べる。
そして、コントローラ21は、そのClipから、SubPathにより特定されるストリーム、すなわち、デキストサブタイトルストリームを読み出すようストレージドライブ22に指示する。ストレージドライブ22は、この指示に基づいて、対象となるデキストサブタイトルストリームを読み出す。または、コントローラ21は、ローカルストレージ24から対象となるデキストサブタイトルストリームを読み出す。そして、コントローラ21は、読み出されたデキストサブタイトルストリームを、Text-STコンポジション76にデコードさせるように指示する。これにより処理はステップS148に進む。
ステップS148において、Text-STコンポジション76は、読み出されたテキストサブタイトルをデコードする。
このようにしてステップS148の処理が終了したとき、または、上述したステップS146の処理でNOであると判定されたとき、処理は図66のステップS149に進む。
ステップS149において、コントローラ21は、SubPath_type=7のSub Pathは存在するか否かを判定する。
ステップS149において、SubPath_type=7のSub Pathは存在しないと判定された場合、処理は図67のステップS152に進む。ただし、ステップS152以降の処理については後述する。
これに対して、ステップS149において、SubPath_type=7のSub Pathは存在すると判定された場合、処理はステップS150に進む。ステップS150において、コントローラ21は、選択されたSubPath(SubPath_type=7のSub Path )が参照するClipを調べる。
そして、コントローラ21は、そのClipから、SubPathにより特定されるストリーム、すなわち、ビデオ/オーディオストリームを読み出すようストレージドライブ22に指示する。ストレージドライブ22は、この指示に基づいて、対象となるビデオ/オーディオストリームを読み出す。または、コントローラ21は、ローカルストレージ24から対象となるビデオ/オーディオストリームを読み出す。そして、コントローラ21は、読み出されたビデオ/オーディオストリームを、例えば2ndビデオデコーダ412/2ndオーディオデコーダ75−2にデコードさせるように指示する。これにより処理はステップS151に進む。
ステップS151において、2ndビデオデコーダ412/2ndオーディオデコーダ75−2は、読み出されたビデオ/オーディオストリームをデコードする。
このようにしてステップS151の処理が終了したとき、または、上述したステップS149の処理でNOであると判定されたとき、処理は図67のステップS152に進む。
ステップS152において、コントローラ21は、SubPath_type=5のSub Pathは存在するか否かを判定する。
ステップS152において、SubPath_type=5のSub Pathは存在しないと判定された場合、処理はステップS156に進む。ただし、ステップS156以降の処理については後述する。
これに対して、ステップS152において、SubPath_type=5のSub Pathは存在すると判定された場合、処理はステップS153に進む。ステップS153において、コントローラ21は、選択されたSubPath(SubPath_type=5のSub Path)が参照するClipを調べる。
ステップS154において、コントローラ21は、stream_attribute()(図18)に記述されている内容に基づいて、そのClip内にあるオーディオストリームを再生する機能はあるか否かを判定する。
ステップS154において、Clip内にあるオーディオストリームを再生する機能は無いと判定された場合、処理はステップS156に進む。ただし、ステップS156以降の処理については後述する。
これに対して、ステップS154において、Clip内にあるオーディオストリームを再生する機能はあると判定した場合、コントローラ21は、そのClipから、SubPathによって特定されるストリーム、すなわち、オーディオストリームを読み出すように、ストレージドライブ22に指示する。ストレージドライブ22は、この指示に基づいて、対象となるオーディオストリームを読み出す。または、コントローラ21は、ローカルストレージ24から対象となるオーディオストリームを読み出す。そして、コントローラ21は、読み出されたオーディオストリームを、例えば2ndオーディオデコーダ75−2にデコードさせるように指示する。これにより処理はステップS155に進む。
ステップS155において、2ndオーディオデコーダ75−2は、読み出されたオーディオストリームをデコードする。
このようにしてステップS155の処理が終了したとき、または、上述したステップS152若しくはS154の処理でNOであると判定されたとき、処理はステップS156に進む。
ステップS156において、コントローラ21は、SubPath_type=6のSub Pathは存在するか否かを判定する。
ステップS156において、SubPath_type=6のSub Pathは存在しないと判定された場合、処理は図68のステップS161に進む。ただし、ステップS161以降の処理については後述する。
これに対して、ステップS156において、SubPath_type=6のSub Pathは存在すると判定された場合、処理はステップS157に進む。ステップS157において、コントローラ21は、選択されたSubPath(SubPath_type=6のSub Path)が参照するClipを調べる。
ステップS158において、コントローラ21は、stream_attribute()(図18)に記述されている内容に基づいて、そのClip内にあるオーディオストリームを再生する機能はあるか否かを判定する。
ステップS158において、Clip内にあるオーディオストリームを再生する機能は無いと判定された場合、コントローラ21は、そのClipから、SubPathによって特定されるストリームのうちの、ビデオストリームを読み出すようストレージドライブ22に指示する。ストレージドライブ22は、この指示に基づいて、対象となるビデオストリームを読み出す。または、コントローラ21は、ローカルストレージ24から対象となるビデオストリームを読み出す。ただし、この場合、コントローラ21は、オーディオストリームのデコードの禁止を指示し、かつ、読み出されたビデオストリームを、例えば2ndビデオデコーダ412にデコードさせるように指示する。これにより処理はステップS160に進む。ただし、ステップS160以降の処理については後述する。
これに対して、ステップS158において、Clip内にあるオーディオストリームを再生する機能はあると判定した場合、コントローラ21は、そのClipから、SubPathによって特定されるストリーム、すなわち、ビデオストリームおよびオーディオストリームを読み出すようストレージドライブ22に指示する。ストレージドライブ22は、この指示に基づいて、対象となるビデオストリームおよびオーディオストリームを読み出す。そして、コントローラ21は、読み出されたオーディオストリームを、例えば2ndオーディオデコーダ75−2にデコードさせるように指示し、かつ、読み出されたビデオストリームを、例えば2ndビデオデコーダ412にデコードさせるように指示する。これにより処理はステップS159に進む。
ステップS159において、2ndオーディオデコーダ75−2は、読み出されたオーディオストリームをデコードする。
このようにしてステップS159の処理が終了したとき、または、上述したステップS158の処理でNOであると判定されたとき、処理はステップS160に進む。
ステップS160において、2ndビデオデコーダ412は、読み出されたビデオストリームをデコードする。
このようにしてステップS160の処理が終了したとき、または、上述したステップS156の処理でNOであると判定されたとき、処理は図68のステップS161に進む。
ステップS161において、AVデコーダ部403は、メインClip AV Streamをデコードする。ここで、メインClip AV Streamとは、再生対象のPlaylistのMainPathにより参照されるビデオストリームやオーディオストリーム等のことであり、Main TSに含まれている。メインClip AV Streamとは、例えば、ピクチャインピクチャ手法では、プライマリビデオストリームやプライマリオーディオストリーム等のことをいう。即ち、AVデコーダ部403のうちの、1stビデオデコーダ72や1stオーディオデコーダ75−1等が、このステップS161の処理を実行する。
ステップS162において、AVデコーダ部403は、デコードされたメインClip AV Streamと、デコードされたSubPathストリームを合成し、出力する。ここで、デコードされたSubPathストリームとは、図65のステップS144の処理でデコードされてステップS145の処理でプリロード用バッファ414に格納されたIG、図65のステップS148の処理でデコードされたテキストサブタイトル、図66のステップS151の処理でデコードされたオーディオストリーム、図67のステップS155の処理でデコードされたオーディオストリーム、図66のステップS159の処理でデコードされたオーディオストリーム、および、図66のステップS160の処理でデコードされたビデオストリームのうちの0以上のSubPathストリームのことをいう。
ステップS163において、コントローラ21は、ステップS162の処理で合成されたストリームを出力中にSubPathの切り替え指示(ユーザの切り替え操作)があったか否かを判定する。
ステップS163において、合成されたストリームを出力中にSubPathの切り替え指示が無かったと判定された場合、application_type=1or2のPlayListの再生処理が終了となる。
これに対して、ステップS163において、合成されたストリームを出力中にSubPathの切り替え指示が有ったと判定された場合、処理はステップS164に進む。
ステップS164において、コントローラ21は、その切り替え指示により選択されたSubPathのSubPath_typeを調べる。具体的には、STN_tableに定義されている1以上のsecondary_audio_stream(audio_stream_id2)またはsecondary_video_stream(video_stream_id2)から、特定のsecondary audio _streamまたはsecondary video _streamが選択された場合、STN_tableを基にその特定のsecondary audio _streamまたはsecondary video _streamに対応するstream entryが調べられて、このstream entryに記録されているref_to_SubPath_idからsubpath_idが取得され、このsubpath_idにより図9のPlayList()のSubpathが特定されて、図10のSubPath()により、Subpath_typeが取得される。
ステップS165において、コントローラ21は、ステップS164の調査結果がSubPath_type=3であるか否かを判定する。
ステップS165において、SubPath_type=3であると判定された場合、処理は図65のステップS143に戻され、処理が繰り返される。即ち、メインClip AV Streamと合成されるIGが切り替えられる。
これに対して、ステップS165において、SubPath_type=3ではないと判定された場合、処理はステップS166に進む。
ステップS166において、コントローラ21は、ステップS164の調査結果がSubPath_type=4であるか否かを判定する。
ステップS166において、SubPath_type=4であると判定された場合、処理は図65のステップS147に戻され、処理が繰り返される。即ち、メインClip AV Streamと合成されるテキストサブタイトルが切り替えられる。
これに対して、ステップS166において、SubPath_type=4ではないと判定された場合、処理はステップS167に進む。
ステップS167において、コントローラ21は、ステップS164の調査結果がSubPath_type=7であるか否かを判定する。
ステップS167において、SubPath_type=7であると判定された場合、処理は図66のステップS150に戻され、処理が繰り返される。即ち、メインClip AV Streamと合成されるビデオ/オーディオストリームが切り替えられる。
これに対して、ステップS167において、SubPath_type=7ではないと判定された場合、処理はステップS168に進む。
ステップS168において、コントローラ21は、ステップS164の調査結果がSubPath_type=5であるか否かを判定する。
ステップS168において、SubPath_type=5であると判定された場合、処理は図67のステップS153に戻され、処理が繰り返される。即ち、メインClip AV Streamと合成されるオーディオストリームが切り替えられる。
これに対して、ステップS168において、SubPath_type=5ではないと判定された場合、処理はステップS169に進む。
ステップS169において、コントローラ21は、ステップS164の調査結果がSubPath_type=6であるか否かを判定する。
ステップS169において、SubPath_type=6であると判定された場合、処理は図67のステップS157に戻され、処理が繰り返される。即ち、メインClip AV Streamと合成されるオーディオストリームやビデオストリームが切り替えられる。
これに対して、ステップS169において、SubPath_type=6ではないと判定された場合、application_type=1or2のPlayListの再生処理が終了となる。
以上説明したように、ピクチャインピクチャ手法を適用するアプリケーションを実現するためには、例えば、プライマリビデオストリームと組み合わせて同時再生され得るストリームの組み合わせの定義、即ち、セカンダリビデオストリーム、プライマリオーディオストリーム、セカンダリオーディオストリーム、および、サブタイトルストリームの組み合わせの定義が必要となる。
さらに、複数の組み合わせを定義することで、全画面301に再生されるプライマリビデオストリームやプライマリオーディオスオストリームの切り替えのみならず、子画面302に再生されるセカンダリビデオストリームの切り替えや、サブタイトルストリームの切り替えも容易に行えるようになる。
図44と図45を用いて説明したような、プライマリビデオストリームと組み合わせて同時再生され得るストリームの組み合わせを定義するSTN_tableの異なる例、すなわち、第8のSTN_tableの例を、図69および図70を用いて説明する。
即ち、図69と図70とは、プライマリビデオストリームと組み合わせて同時再生され得る、セカンダリビデオストリーム、プライマリオーディオストリーム、セカンダリオーディオストリーム、および、サブタイトルストリームの組み合わせを定義するにあたって、特に、セカンダリオーディオストリームとプライマリオーディオストリームとの組み合わせ、セカンダリビデオストリームとセカンダリオーディオストリームとの組み合わせ、セカンダリビデオストリームとピクチャインピクチャアプリケーション用のプレゼンテーショングラフィックス(PG)またはテキスト字幕の組み合わせを定義する場合のSTN_table()のシンタクスの第8の例(第8のSTN_table())の例を示す図である。第8のSTN_table()を参照して実行される再生処理も、図52を用いて説明した再生装置401において実行可能である。なお、図中、上述した図44および図45と同一の部分については、繰り返しになるのでその説明は省略する。
number_of_audio_stream2_entriesの8ビットのフィールドは、STN_tableに登録されるセカンダリオーディオの数を示す。
セカンダリビデオストリームの数は、audio_stream2_number=audio_stream2_id+1によって求められる。
number_of_video_stream2_entriesの8ビットのフィールドは、STN_tableに登録されるセカンダリビデオの数を示す。
セカンダリビデオストリームの数は、video_stream2_number=video_stream2_id+1によって求められる。
また、各video_stream2_idのstream_entry()ブロックは、typeフィールドが2に設定されていなければならない。
そして、number_of_PiP_PG_textST_stream_entriesの8ビットのフィールドは、STN_tableに登録されるPiPアプリケーション用のPG・テキスト字幕のストリームの数を示す。
PIPアプリケーション用のPG(プレゼンテーショングラフィックス)または、テキスト字幕のストリームの数は、PiP_PG_textST_stream_number=PiP_PG_textST_stream_id+1によって求められる。
そして、comb_info_Secondary_audio_Primary_audio()のブロックは、セカンダリオーディオとプライマリオーディオの組み合わせを示す。
comb_info_Secondary_audio_Primary_audio()のブロック内において、number_of_audio_stream_ref_entriesの8ビットのフィールドは、セカンダリオーディオストリームと組み合わせることが出来るプライマリオーディオストリームの数を示す。そして、audio_stream_id_refの8ビットのフィールドは、セカンダリオーディオストリームと組み合わせることが出来るプライマリオーディオストリームのIDを示す。
次に、comb_info_Secondary_video_Secondary_audio()のブロックは、セカンダリビデオストリームとセカンダリオーディオストリームの組み合わせを示す。
comb_info_Secondary_video_Secondary_audio()のブロック内において、number_of_audio_stream2_ref_entriesの8ビットのフィールドは、セカンダリビデオストリームと組み合わせることが出来るセカンダリオーディオストリームの数を示す。そして、audio_stream_id2_refの8ビットのフィールドは、セカンダリビデオストリームと組み合わせることが出来るセカンダリオーディオストリームのIDを示す。
そして、comb_info_Secondary_video_PiP_PG_textST()のブロックは、セカンダリビデオストリームとピクチャインピクチャアプリケーション用のPG・テキスト字幕のストリームの組み合わせを示す。
comb_info_Secondary_video_PiP_PG_textST()のブロック内において、number_of_PiP_PG_textST_ref_entriesの8ビットのフィールドは、セカンダリビデオストリームと組み合わせることが出来るPIPアプリケーション用のPG・テキスト字幕のストリームの数を示す。また、PiP_PG_textST_stream_id_refの8ビットのフィールドは、セカンダリビデオストリームと組み合わせることが出来るピクチャインピクチャアプリケーション用のPG・テキスト字幕のストリームのIDを示す。
なお、図35、図41、図42、または、図44および図45を参照して説明した場合と同様に、各IDの代わりに各番号、例えば、audio_stream_idの代わりに、オーディオストリーム番号(audio_stream_number)を用いたり、audio_stream_id2の代わりに、オーディオストリーム番号2(audio_stream_number2)を用いるようにしてもよい。ビデオストリームやサブタイトルストリームについても同様である。
図69と図70によれば、セカンダリオーディオとプライマリオーディオの組み合わせ、セカンダリビデオとセカンダリオーディオの組み合わせ、および、セカンダリビデオとピクチャインピクチャアプリケーション用のPG・テキスト字幕の組み合わせを定義することができる。
従って、プライマリビデオストリーム(#1ビデオストリーム)と同時再生され得る、セカンダリビデオストリーム(#2ビデオストリーム)、プライマリオーディオストリーム(#1オーディオストリーム)、セカンダリオーディオストリーム(#2オーディオストリーム)、および、サブタイトルストリーム(PG TextSTストリーム)の組み合わせに加えて、ピクチャインピクチャアプリケーション用のPG・テキスト字幕ストリーム(PiP PG TextSTストリーム)の組み合わせとして矛盾するような組み合わせを選択することを防ぐようにすることができる。
また、再生装置401においては、再生装置401のメモリ23の書き換え可能なメモリ領域のうちの一部に、複数のレジスタが設けられ、このレジスタに設定される値を基に、再生処理が実行される。
レジスタのうち、例えば、再生装置401が#2オーディオストリームを再生することが可能か否かが設定されているレジスタの値など、再生装置401固有の機能について設定されているものは、その値が変更されることはない。これに対して、レジスタのうちの所定のものの設定は、例えば、ユーザから所定の操作入力を受けた場合、または、ナビゲーションプログラムにより発生されるナビゲーションコマンドにより変更される。
なお、ナビゲーションコマンドは、ストリームデータとは個別に記録媒体や内部のハードディスク等に記録され、再生装置401によってプリロードされ、コントローラ21に供給されるようになされていてもよいし、ストリームデータに埋め込まれて記録媒体や内部のハードディスク等に記録され、再生装置401によってストリームデータが再生されるのに伴ってロードされ、コントローラ21に供給されるようになされていてもよい。
レジスタには、再生装置401における再生処理に必要な各種設定を示す値が保持されている。レジスタには、例えば、再生装置401が再生するサブタイトルストリーム(PG TextSTストリーム)を定義するレジスタ、再生装置401が再生するピクチャインピクチャアプリケーション用のPG・テキスト字幕ストリーム(PiP PG TextSTストリーム)を定義するレジスタ、再生装置401が再生可能なサブタイトルストリーム(PG TextSTストリーム)のストリームIDを示すレジスタ、再生装置401が再生可能なサブタイトルストリーム(PG TextSTストリーム)の言語コード番号(またはID)を示すレジスタ、初期設定されている言語のIDを示すレジスタ、再生装置401が再生可能なサブタイトルストリーム(PG TextSTストリーム)に対応する国のコード番号(またはID)を示すレジスタなどが含まれるものとすると好適である。
ピクチャインピクチャアプリケーションが起動されたとき、再生装置401は、表示の見易さを考慮して、サブタイトルストリーム(PG TextSTストリーム)か、ピクチャインピクチャアプリケーション用のPG・テキスト字幕ストリーム(PiP PG TextSTストリーム)かのいずれか一方のみしか表示させないようにしてもよいし、サブタイトルストリーム(PG TextSTストリーム)とピクチャインピクチャアプリケーション用のPG・テキスト字幕ストリーム(PiP PG TextSTストリーム)の両方を表示することができるものとしてもよい。
図71を用いて、ピクチャインピクチャアプリケーションが起動されたとき、再生装置401がプライマリ(すなわち、ピクチャインピクチャアプリケーション用ではない)のサブタイトルストリーム(PG TextSTストリーム)を再生表示するか否か、および、再生表示する場合はいずれのストリームを再生するかを決定するために参照するレジスタ、ならびに、ピクチャインピクチャアプリケーション用のPG・テキスト字幕ストリーム(PiP PG TextSTストリーム)を再生表示するか否か、および、再生表示する場合はいずれのストリームを再生するかを決定するために参照されるレジスタについて説明する。
#1レジスタは、プライマリのPG TextSTストリームのID番号を示すレジスタである。
すなわち、#1レジスタは、現在のPlayItemのSTN_tableに登録されているプライマリのPG TextSTの中で、再生されるPG TextSTストリームを示すものである。
#1レジスタにおいて、disp_flag(display_flag)の値が0であるとき、プライマリのPG TextSTストリームは表示されず、disp_flagの値が1であるとき、プライマリのPG TextSTストリームは表示される。また、#1レジスタにおいて、PG TextST stream numberは、現在のPlayItem()のSTN_table()に登録されているプライマリのPG Text STのID番号である。
そして、#2レジスタは、ピクチャインピクチャアプリケーション用のPG TextSTストリームのID番号を示すレジスタである。
#2レジスタにおいて、disp_flagの値が0である場合、ピクチャインピクチャアプリケーション用のPG TextSTストリームは表示されず、disp_flagの値が1である場合、ピクチャインピクチャアプリケーション用のPG TextSTストリームは表示される。また、PiP PG TextST stream numberは、現在のPlayItem()のSTN_table()に登録されているピクチャインピクチャアプリケーション用PG TextSTストリームのID番号を示す。そして、invalid_flagの値が0である場合、ピクチャインピクチャアプリケーション用のPG TextSTストリームのID番号は有効であり、1の場合には、無効である。
なお、PG TextST stream numberに0xFFが登録されている場合、PG TextSTストリームが選択されていないか、または、存在しない。そして、PiP PG TextST stream numberに0xFFが登録されている場合、ピクチャインピクチャ用のTextSTストリームが選択されていないか、または、存在しない。
また、PG TextST stream numberまたはPiP PG TextST stream numberに0xFF以外が登録されていた場合でもinvalid_flagやdisp_flagの組み合わせによって、表示の有効または無効が決められる。すなわち、#1レジスタ及び#2レジスタのdisp _flag=0で表示無効状態のときは、必ず、PG TextST stream numberまたはPiP PG TextST stream numberが0xFFに設定されるようになされているのではない。例えば、#1レジスタまたは#2レジスタのdisp_flag=0で表示無効状態のときは、PG TextST stream numberまたはPiP PG TextST stream numberに0xFF以外が登録されていても、PG TextST stream numberまたはPiP PG TextST stream numberに登録されている値は無視されて、表示されないようになされている。
これらのレジスタに設定されている値を参照することにより、再生装置401においてそれぞれのストリームの再生処理が実行される。
例えば、再生装置401が、ピクチャインピクチャアプリケーションが起動されたときに、サブタイトルストリーム(PG TextSTストリーム)か、ピクチャインピクチャアプリケーション用のPG・テキスト字幕ストリーム(PiP PG TextSTストリーム)かのいずれか一方のみしか表示させないものとしている場合、#1レジスタのPG TextST stream numberに設定されている値に対応するプライマリのPG TextSTストリームが再生されるのは、disp_flagの値が1であり、#2レジスタのinvalid_flagが1に設定されているとき、または、Secondary Videoの表示が無効になっている、すなわち、ピクチャインピクチャ表示が実行されていない場合である。#1レジスタの値が変更された場合、プライマリのPG TextSTストリームの再生も直ちに変更される。
また、#1レジスタのPG TextST stream numberに示された値が、PlayItemのSTN_tableに登録されているPG TextSTストリームの番号と一致しなかった場合、再生されるプライマリのPG TextSTストリームは、PG TextSTストリーム自動選択ルーチンにより選択される。
自動選択ルーチンにおいては、まず、再生装置401において表示できる言語、または、表示できない言語を表す値が設定されているレジスタが参照されて、再生装置401が表示能力を有する言語が優先して選択され、次に、再生装置401に設定されている言語コードと同等のものが優先され、そして、次に、STN_table()に登録されている順番で番号が若いものから順番に優先して選択される。
そして、#2レジスタのPiP PG TextST stream numberに設定されている値に対応するピクチャインピクチャアプリケーション用のPG TextSTストリームが再生されるのは、セカンダリビデオの表示が有効になっていて、かつ、#2レジスタのdisp_flagの値が1、invalid_flagが0に設定され、#2レジスタに登録されているピクチャインピクチャアプリケーション用のPiP PG TextSTのID番号が、現在のPlayItemのSTN_tableに登録されているピクチャインピクチャアプリケーション用のPiP PG TextSTストリームに含まれているときである。
そして、セカンダリビデオの表示が有効になっていて、かつ、#2レジスタのdisp_flagの値が1、invalid_flagが0に設定されているのに、#2レジスタに示された値が、PlayItemのSTN_tableに登録されているPiP PG TextSTストリームの番号と一致しなかった場合、再生されるピクチャインピクチャアプリケーション用のPG TextSTストリームは、PiP PG TextSTストリーム自動選択ルーチンにより選択される。
自動選択ルーチンにおいては、まず、再生装置401において表示できる言語、または、表示できない言語を表す値が登録されたレジスタが参照されて、再生装置401が表示能力を有する言語が優先して選択され、次に、再生装置401に設定されている言語コードと同等のものが優先され、そして、次に、STN_table()に登録されている順番で番号が若いものから順番に優先して選択される。
次に、図72を参照して、ピクチャインピクチャ表示の実行時に、プライマリのPG TextSTストリームが再生される場合の例について説明する。
例えば、ピクチャインピクチャ表示が実行されていない状態(図中、「No PiP」と示されている状態)において、#1レジスタのdisp_flagが1であるとき、#2レジスタの設定にかかわらず、#1レジスタのPG TextST stream numberに設定されている値が参照され、STN_table()に登録されているPG TextST number=0x05のPG TextSTが再生表示される。
そして、ナビゲーションプログラムによってコマンドが発生されるか、または、ユーザにより所定の操作入力が行われることにより、ピクチャインピクチャ表示の実行が開始(図中、PiP on)される。ピクチャインピクチャ表示の実行が開始されても、#2レジスタのinvalid_flagが1に設定(例えば、ナビゲーションプログラムによって発生されるナビゲーションコマンドによりinvalid_flagが1に設定)されていれば、ユーザがピクチャインピクチャアプリケーション用のPiP PG TextSTストリームの表示を選択したとしても(disp_flag=1であったとしても)、ピクチャインピクチャアプリケーション用のPiP PG TextSTストリームは、表示されない。すなわち、ピクチャインピクチャ表示が実行されている状態(図中、「PiP enabled」と示されている状態)においても、#1レジスタのPG TextST stream numberに設定されている値が参照され、STN_table()に登録されているPG TextST number=0x05のPG TextSTが再生表示される。
なお、ナビゲーションコマンドは、ストリームデータとは個別に記録媒体等に記録され、再生装置401によってプリロードされ、コントローラ21に供給されるようになされていてもよいが、ストリームデータに埋め込まれて記録媒体等に記録され、再生装置401によってストリームデータが再生されるのに伴ってロードされ、コントローラ21に供給されるようになされていると、コマンドの実行タイミングの制御が容易であり、好適である。
また、invalid_flagを設定しうるナビゲーションコマンドが発生される場合の例として、例えば、コンテンツ製作者が、自動でinvalid_flagが変更されるように、ストリーム中(例えば、インタラクティブグラフィックストリーム(IGストリーム)中)にナビゲーションコマンドを埋め込むようにしてもよいし、例えば、IGストリームにボタン情報およびinvalid_flagを変更する制御情報を含めて記録し、ユーザにより選択操作可能なボタンをストリーム再生中に表示可能なようにすることにより、対応するボタンがユーザにより押下される(選択される)操作入力に基づいてinvalid_flagを変更することができるような構成であってもよい。
そして、ピクチャインピクチャ表示の実行が終了(図中、PiP off)され、再び、ピクチャインピクチャ表示が実行されていない状態(図中、「No PiP」と示されている状態)となった場合、#1レジスタのdisp_flagが1であれば、#2レジスタの設定にかかわらず、#1レジスタのPG TextST stream numberに設定されている値が参照され、STN_table()に登録されているPG TextST number=0x05のPG TextSTが再生表示される。
次に、図73を参照して、ピクチャインピクチャ表示の実行時に、ピクチャインピクチャアプリケーション用のPG TextSTストリームが再生される場合の例について説明する。
例えば、ピクチャインピクチャ表示が実行されていない状態(図中、「No PiP」と示されている状態)において、#1レジスタのdisp_flagが1であるとき、#2レジスタの設定にかかわらず、#1レジスタのPG TextST stream numberに設定されている値が参照され、STN_table()に登録されているPG TextST number=0x05のPG TextSTが再生表示される。
そして、ナビゲーションプログラムによってコマンド(例えば、ストリームに埋め込まれているナビゲーションコマンド)が発生されるか、または、ユーザにより所定の操作入力が行われることにより、ピクチャインピクチャ表示の実行が開始(図中、PiP on)され、#2レジスタのinvalid_flagが0に設定され、disp_flagが1に設定されている場合、#2レジスタのPiP PG TextST stream numberに設定されている値が参照されて、STN_table()に登録されているPiP PG TextST number=0x02のピクチャインピクチャアプリケーション用のPiP PG TextSTストリームが表示される。なお、ユーザがピクチャインピクチャアプリケーション用のPiP PG TextSTストリームの表示を選択しない場合(disp_flag=0の場合)、ピクチャインピクチャアプリケーション用のPiP PG TextSTストリームは、表示されない。
そして、ピクチャインピクチャ表示の実行が終了(図中、PiP off)され、再び、ピクチャインピクチャ表示が実行されていない状態(図中、「No PiP」と示されている状態)となった場合、#1レジスタのdisp_flagが1であれば、#2レジスタの設定にかかわらず、#1レジスタのPG TextST stream numberに設定されている値が参照され、STN_table()に登録されているPG TextST number=0x05のPG TextSTが再生表示される。
なお、図72および図73において、PiP PG TextST stream numberに0xFFが登録されている場合、TextSTストリームが選択されていないか、または、存在しない。例えば、PiP PG TextST stream numberに0xFF以外が登録されていた場合でもinvalid_flagやdisp_flagの組み合わせによって、表示の有効または無効が決められる。すなわち、invalid_flag=1で表示無効状態のときは、PiP PG TextST stream numberに0xFF以外が登録されていても、PG TextST stream numberまたはPiP PG TextST stream numberに登録されている値は無視されて、表示されないようになされている。
また、図72、図73の例では、プライマリビデオの画像(字幕)情報に対する#1のレジスタと、セカンダリビデオ(PiP)の画像(字幕)情報に対する#2のレジスタを分けて設定しているが、レジスタを1つにしてもよい。
さらに、この例における2つのdisp_flagをを1つにして、プライマリビデオの画像(字幕)ストリームであるPG TextST stream、または、セカンダリビデオ(PiP)の画像(字幕)ストリームであるPiP PG_TextST_streamの表示をするか否かのflag、すなわち、「画像情報を示すか否かを表すflag」としてもよい。この場合、invalid_flagを、プライマリビデオの画像情報またはPiPの画像情報の、いずれの画像の表示を行うかを決定するflagとする構成とする。
次に、図74のフローチャートを参照して、PiP(ピクチャインピクチャ)を含んだアプリケーションのPG TextST再生処理について説明する。
ステップS301において、コントローラ21は、#1レジスタに設定されているPG TextST番号(PG TextST stream number)より、対応するPG TextSTを現在のPlayItemのSTN_table()から調べる。
ステップS302において、コントローラ21は、所望のPG TextSTを特定して、記録媒体11、または、ローカルストレージ24に記録されているClipから、特定されたストリームを読み出し、disp_flag等に応じ、再生を行う。
例えば、コントローラ21は、#1レジスタのdisp_flagが1であるとき、#1レジスタのPG TextST stream numberに設定されている値を参照し、STN_table()に登録されているPG TextST numberのPG TextSTを読み出し、AVデコーダ部403に供給する。読み出されたPG TextSTは、各バッファ、PIDフィルタ、スイッチ等の処理により、プレゼンテーショングラフィックスプレーン生成部93に供給されて、レンダリング画像であるプレゼンテーショングラフィックスプレーンが生成され、ビデオデータ処理部96に供給されて、プライマリビデオストリームなどと合成され、対応する音声データとともに再生出力される。
ステップS303において、コントローラ21は、ピクチャインピクチャ表示を開始(PiPをONに)する。
ここで、ピクチャインピクチャ表示がメインパスに同期して設定されている場合、ピクチャインピクチャ表示の開始(PiPのON)およびピクチャインピクチャ表示の終了(PiPのOFF)は、そのピクチャインピクチャにより再生されるビデオストリームを示す図12SubPlayItemのIN_time, Out_timeで示される、所定のタイミングで実行される。これに対して、ピクチャインピクチャ表示がメインパスと非同期で設定されている場合、ピクチャインピクチャ表示の開始(PiPのON)およびピクチャインピクチャ表示の終了(PiPのOFF)は、ユーザの操作入力、または、ナビゲーションコマンドにより設定される。
ステップS304において、コントローラ21は、ストリームに埋め込まれている、または、ストリームとは異なる位置に記憶されてプリロードされているNavigation Command(ナビゲーションコマンド)等により、必要に応じて、#2レジスタのinvalid_flagの設定値を変更する。
ステップS305において、コントローラ21は、#2レジスタにおいて、invalid_flag=0(PiP PG TextST有効)であるか否かを判断する。
ステップS305において、invalid_flag=0であると判断された場合、ステップS306において、コントローラ21は、#2レジスタにおいてdisp_flag=1(PiP PGTextST表示)であるか否かを判断する。すなわち、コントローラ21は、ピクチャインピクチャ表示がメインパスと非同期で設定されている場合、ピクチャインピクチャ表示が、ユーザの操作入力により指令され、#2レジスタのdisp_flagの値が1に設定されているか否かを判断する。
なお、ステップS305の処理と、ステップS306の処理とにおいては、いずれの判断が先に行われるようにしてもよい。
ステップS306において、#2レジスタのdisp_flag=1であると判断された場合、ステップS307において、図75のフローチャートを用いて後述するPiP PG TextST表示処理が実行され、処理は、後述するステップS311に進む。
なお、このとき、#1レジスタにおいて、disp_flag=1に設定されている場合、ピクチャインピクチャアプリケーション用のPiP PG TextSTストリームとともに、プライマリのPG TextSTストリームを表示するようにしてもかまわない。
ステップS305において、invalid_flag=0ではない(すなわち、invalid_flag=1である)と判断された場合、または、ステップS306において、disp_flag=1ではない(すなわち、disp_flag=0である)と判断された場合、ステップS308において、コントローラ21は、#1レジスタにおいて、disp_flag=1(PGTextST表示)であるか否かを判断する。
ステップS308において、#1レジスタのdisp_flag=1であると判断された場合、ステップS309において、コントローラ21は、#1レジスタに設定されているPG TextST番号(PG TextST stream number)より対応するPG TextSTを現在のPlayItemのSTN_table()より調べ、再生すべきPG TextSTを特定し、表示させ、処理は、後述するステップS311に進む。なお、disp_flagを1つにして、プライマリビデオの画像(字幕)ストリームであるPG TextST stream、または、PiPの画像(字幕)ストリームであるPiP PG_TextST_streamの表示をするか否かを表すflag、すなわち、「画像情報を示すか否かを表すflag」とした場合、ステップS306およびステップS308の処理においては、同じdisp_flagが参照される。
例えば、コントローラ21は、#1レジスタのdisp_flagが1であるとき、#1レジスタのPG TextST stream numberに設定されている値を参照し、STN_table()に登録されているPG TextST numberのPG TextSTを読み出し、AVデコーダ部403に供給する。読み出されたPG TextSTは、各バッファ、PIDフィルタ、スイッチ等の処理により、プレゼンテーショングラフィックスプレーン生成部93に供給されて、レンダリング画像であるプレゼンテーショングラフィックスプレーンが生成され、ビデオデータ処理部96に供給されて、プライマリビデオストリームなどと合成され、対応する音声データとともに再生出力される。
ステップS308において、disp_flag=1ではない(すなわち、disp_flag=0である)と判断された場合、ステップS310において、コントローラ21は、PG, TextSTの表示なし(例えば、全画面301および子画面302のいずれに対応する字幕も表示されない状態)とし、処理は、後述するステップS311に進む。
ステップS307、ステップS309、または、ステップS310の処理の終了後、ステップS311において、コントローラ21は、ピクチャインピクチャ(PiP)表示が終了されるか否かを判断する。
上述したように、ピクチャインピクチャ表示がメインパスに同期して設定されている場合、ピクチャインピクチャ表示の開始(PiPのON)およびピクチャインピクチャ表示の終了(PiPのOFF)は、ユーザの操作入力にかかわらず、所定のタイミングで実行される。これに対して、ピクチャインピクチャ表示がメインパスと非同期で設定されている場合、ピクチャインピクチャ表示の開始(PiPのON)およびピクチャインピクチャ表示の終了(PiPのOFF)は、ユーザの操作入力により設定される。
ステップS311において、ピクチャインピクチャ(PiP)表示が終了されないと判断された場合、処理は、ステップS304に戻り、それ以降の処理が繰り返される。ステップS311において、ピクチャインピクチャ(PiP)表示が終了されると判断された場合、処理は終了される。
このような処理により、ピクチャインピクチャ表示が実行される場合、#1レジスタおよび#2レジスタに設定されている値を基に、プライマリ(すなわち、ピクチャインピクチャアプリケーション用ではない)サブタイトルストリーム(PG TextSTストリーム)を再生表示するか否か、および、ピクチャインピクチャアプリケーション用のPG・テキスト字幕ストリーム(PiP PG TextSTストリーム)を再生表示するか否かが決定される。また、再生表示されるストリームはいずれのストリームであるかも、基本的には、#1レジスタまたは#2レジスタの設定により決定されるが、#1レジスタまたは#2レジスタの設定がSTN_table()の登録内容と一致しない場合には、上述した自動選択ルーチンにより、再生表示されるストリームが決定される。
次に、図75のフローチャートを参照して、図74のステップS307において実行される、PiP PG TextST表示処理について説明する。
ステップS351において、コントローラ21は、#2レジスタに設定されているPiP PG TextST番号(PiP PG TextST stream number)を取得する。#2レジスタに設定されているPiP PG TextST番号(PiP PG TextST stream number)は、例えば、ストリームナンバーテーブルを参照して選択されて設定されたり、前回ピクチャインピクチャ表示が行われた場合の設定値が保持されていたり、ユーザの操作入力を基に設定されたり、または、上述したナビゲーションコマンドにより設定された値である。
ステップS352において、コントローラ21は、図69および図70を用いて説明した第8のSTN_tableのPiP_PG_textST_stream_id_refの値に1を加えた値が、#2レジスタに保存されているか否かを判断する。
ステップS352において、第8のSTN_tableのPiP_PG_textST_stream_id_refの値に1を加えた値(PiP_PG_textST_id_ref+1)が、#2レジスタに保存されていると判断された場合、ステップS353において、コントローラ21は、#2レジスタに設定(換言すれば、保存)されているPiP PG TextST stream numberに対応するPiP PG TextSTを表示させ、処理は、図74のステップS307に戻り、ステップS311に進む。
すなわち、コントローラ21は、#2レジスタのPiP PG TextST stream numberに設定されている値に対応するPG TextSTを、ストレージドライブ22を介して記録媒体11から、または、ローカルストレージ24から読み出させる。読み出されたPG TextSTは、各バッファ、PIDフィルタ、スイッチ等の処理により、プレゼンテーショングラフィックスプレーン生成部93に供給されて、レンダリング画像であるプレゼンテーショングラフィックスプレーンが生成され、ビデオデータ処理部96に供給されて、プライマリビデオストリームやセカンダリビデオストリームなどと合成され、対応する音声データとともに再生出力される。
ステップS352において、第8のSTN_tableのPiP_PG_textST_stream_id_refの値に1を加えた値が、#2レジスタに保存されていないと判断された場合、ステップS354において、コントローラ21は、STN_tableのstream_attribute()(図18)のPG_language_codeおよびtextST_language_codeを参照し、#1レジスタまたは#2レジスタとは異なる別のレジスタ、すなわち、言語の初期設定が登録されるレジスタを参照し、設定されている言語の初期設定が、自分自身(再生装置401)の再生可能言語であり、かつ、STN_tableのPiP_PG_textST_id_refの値に1を加えた値(PiP_PG_textST_id_ref+1)で規定されているか否かを判断する。
ステップS354において、別のレジスタに設定されている初期設定が、再生可能言語であり、かつ、STN_tableのPiP_PG_textST_id_refの値に1を加えた値で規定されていると判断された場合、ステップS355において、コントローラ21は、初期設定されている言語に対応するPiP PG TextSTを表示させ、処理は、図74のステップS307に戻り、ステップS311に進む。
すなわち、コントローラ21は、言語の初期設定が登録されるレジスタに設定されている値に対応するPG TextSTを、ストレージドライブ22を介して記録媒体11から、または、ローカルストレージ24から読み出させる。読み出されたPG TextSTは、各バッファ、PIDフィルタ、スイッチ等の処理により、プレゼンテーショングラフィックスプレーン生成部93に供給されて、レンダリング画像であるプレゼンテーショングラフィックスプレーンが生成され、ビデオデータ処理部96に供給されて、プライマリビデオストリームなどと合成され、対応する音声データとともに再生出力される。
ステップS354において、別のレジスタに設定されている初期設定が再生可能言語ではない、または、第8のSTN_tableのPiP_PG_textST_id_ref+1で規定されていないと判断された場合、ステップS356において、コントローラ21は、iの設定値をi=0とする。ここで、値iは、後述するステップS357において、再生できるか否かを確認するのは、STN_tableに定義されているPiP_PG_textST_id_refのうちの何番目についてであるかを表す値である。
ステップS357において、コントローラ21は、所定のレジスタ、すなわち、再生装置141が復号可能な言語を示す情報が登録されているレジスタを参照することにより、再生装置141が復号可能な言語を確認して、i番目のPiP_PG_textST_id_refに1を加えた値に対応するPiP PG textSTを再生できるか否かを判断する。
ステップS357において、再生できないと判断された場合、ステップS358において、コントローラ21は、値iを、i=i+1とし、処理は、ステップS357に戻り、それ以降の処理が繰り返される。すなわち、STN_table()に登録されている順番で番号が若いものから順番に、PiP PG textSTが再生できるか否かが判断される。
ステップS357において、再生できると判断された場合、ステップS359において、コントローラ21は、i番目のPiP_PG_textST_id_refに1を加えた値で規定されているPG textSTを表示させ、処理は、図74のステップS307に戻り、ステップS311に進む。
すなわち、コントローラ21は、ステップS357において再生できると判断された、i番目のPiP_PG_textST_id_refに1を加えた値で規定されているPG TextSTを、ストレージドライブ22を介して記録媒体11から、または、ローカルストレージ24から読み出させる。読み出されたPG TextSTは、各バッファ、PIDフィルタ、スイッチ等の処理により、プレゼンテーショングラフィックスプレーン生成部93に供給されて、レンダリング画像であるプレゼンテーショングラフィックスプレーンが生成され、ビデオデータ処理部96に供給されて、プライマリビデオストリームなどと合成され、対応する音声データとともに再生出力される。
このような処理により、#2レジスタのPiP PG TextST stream numberに示された値が、PlayItemのSTN_tableに登録されているPiP PG TextSTストリームの番号と一致した場合、PiP PG TextST stream numberに示された値に対応するPiP PG textSTが再生される。そして、#2レジスタのPiP PG TextST stream numberに示された値が、PlayItemのSTN_tableに登録されているPiP PG TextSTストリームの番号と一致しなかった場合、再生されるピクチャインピクチャアプリケーション用のPG TextSTストリームは、PiP PG TextSTストリーム自動選択ルーチンにより選択される。
次に、プライマリビデオストリームと組み合わせて同時再生され得るストリームの組み合わせを定義するSTN_tableの異なる例、すなわち、STN_tableの第9の例を、図76乃至図78を用いて説明する。
即ち、図76乃至図78は、プライマリビデオストリームと組み合わせて同時再生され得る、セカンダリビデオストリーム、プライマリオーディオストリーム、セカンダリオーディオストリーム、および、サブタイトルストリームの組み合わせを定義するにあたって、特に、ピクチャインピクチャアプリケーション用のプライマリオーディオをさらに定義するとともに、セカンダリオーディオストリームとプライマリオーディオストリームとの組み合わせ、セカンダリビデオストリームとセカンダリオーディオストリームとの組み合わせ、セカンダリビデオストリームとピクチャインピクチャアプリケーション用のプレゼンテーショングラフィックス(PG)またはテキスト字幕の組み合わせに加えて、セカンダリビデオとピクチャインピクチャアプリケーション用のプライマリオーディオとの組み合わせをさらに定義する場合のSTN_table()のシンタクスの第9の例(第9のSTN_table())の例を示す図である。
第9のSTN_table()を参照して実行される再生処理も、図52を用いて説明した再生装置401において実行可能である。なお、図中、上述した図69および図70と同一の部分については、繰り返しになるのでその説明は省略する。
新たに加えられたnumber_of_PiP_primary_audio_stream_entriesの8ビットのフィールドは、STN_tableに登録されるピクチャインピクチャ表示用のプライマリオーディオストリームの数を示す。ピクチャインピクチャ表示用のプライマリオーディオストリームの数は、PiP_primary_audio_stream_number=PiP_primary_audio_stream_id+1によって求められる。
そして、comb_info_Secondary_video_PiP_primary_audio()のブロックは、セカンダリビデオストリームとピクチャインピクチャ表示用のプライマリオーディオストリームの組み合わせを示す。
comb_info_Secondary_video_PiP_primary_audio()のブロック内において、number_of_PiP_primary_audio_ref_entries_SVの8ビットのフィールドは、セカンダリビデオストリームと組み合わせることが出来るピクチャインピクチャ表示用のプライマリオーディオストリームの数を示す。そして、PiP_primary_audio_id_ref_SVの8ビットのフィールドは、セカンダリビデオストリームと組み合わせることが出来るピクチャインピクチャ表示用のプライマリオーディオストリームのIDを示す。
なお、上述したそれぞれのSTN_tableにおける場合と同様に、各IDの代わりに各番号、例えば、audio_stream_idの代わりに、オーディオストリーム番号(audio_stream_number)を用いたり、audio_stream_id2の代わりに、オーディオストリーム番号2(audio_stream_number2)を用いるようにしてもよい。ビデオストリームやサブタイトルストリームについても同様である。
図76乃至図78の第9のSTN_table()によれば、セカンダリオーディオとプライマリオーディオの組み合わせ、セカンダリビデオとセカンダリオーディオの組み合わせ、および、セカンダリビデオとピクチャインピクチャアプリケーション用のPG・テキスト字幕の組み合わせに加えて、セカンダリビデオとピクチャインピクチャ表示用のプライマリオーディオの組み合わせを定義することができる。
従って、プライマリビデオストリーム(#1ビデオストリーム)と同時再生され得る、セカンダリビデオストリーム(#2ビデオストリーム)、プライマリオーディオストリーム(#1オーディオストリーム)、セカンダリオーディオストリーム(#2オーディオストリーム)、サブタイトルストリーム(PG TextSTストリーム)、および、ピクチャインピクチャアプリケーション用のPG・テキスト字幕ストリーム(PiP PG TextSTストリーム)の組み合わせに加えて、セカンダリビデオとピクチャインピクチャ表示用のプライマリオーディオの組み合わせとして矛盾するような組み合わせを選択することを防ぐようにすることができる。
また、再生装置141においては、上述したように、再生装置141のメモリ23の書き換え可能なメモリ領域のうちの一部に、複数のレジスタが設けられ、このレジスタに設定される値を基に、再生処理が実行される。再生装置141のメモリ23の書き換え可能なメモリ領域のうちの一部には、図70を用いて説明したレジスタに加えて、さらに、ピクチャインピクチャアプリケーションが起動されたときに再生されるオーディオについての設定を行うためのレジスタが設けられており、図76乃至図78の第9のSTN_table()が用いられる場合、それらのレジスタが参照される。
図79を用いて、図76乃至図78の第9のSTN_table()が適用されている場合において、ピクチャインピクチャアプリケーションが起動されたとき、再生装置141がいずれのオーディオストリームを再生するかを決定するために参照されるレジスタについて説明する。
#3レジスタは、プライマリオーディオストリームのID番号を示すレジスタである。すなわち、#3レジスタは、現在のPlayItemのSTN_tableに登録されているプライマリオーディオストリームの中で、再生されるプライマリオーディオストリームが設定されているレジスタである。
ピクチャインピクチャ表示がされていないとき、#3レジスタに設定されているID番号のオーディオストリームは再生されるようになされている。ただし、#3レジスタに設定されているID番号のオーディオストリームが現在のPlayItem()のSTN_table()に登録されていない場合、プライマリオーディオストリームの自動選択ルーチンにより再生されるオーディオストリームが選択される。
一方、ピクチャインピクチャ表示時に、#3レジスタに設定されているID番号のオーディオストリームが再生されるか否かは、後述する、#5レジスタの設定によって決まる。ピクチャインピクチャ表示時のオーディオの再生の具体的な例については後述する。
そして、#4レジスタは、セカンダリオーディオストリームのID番号を示すレジスタである。すなわち、#4レジスタは、現在のPlayItemのSTN_tableに登録されているセカンダリオーディオストリームの中で、再生されるセカンダリオーディオストリームが設定されているレジスタである。
ピクチャインピクチャ表示がされていないとき、#4レジスタに設定されているID番号のオーディオストリームは、ユーザの操作入力に基づいて、または、各種設定に基づいて再生されるようになされている。ただし、#4レジスタに設定されているID番号のオーディオストリームが現在のPlayItem()のSTN_table()に登録されていない場合、セカンダリオーディオストリームの自動選択ルーチンにより再生されるオーディオストリームが選択される。一方、#4レジスタに設定されているID番号のオーディオストリームがピクチャインピクチャ表示時に再生される場合もある。ピクチャインピクチャ表示時のオーディオの再生の具体的な例については後述する。
そして、#5レジスタは、ピクチャインピクチャ表示用のプライマリオーディオストリームのID番号を示すレジスタである。すなわち、#5レジスタは、現在のPlayItemのSTN_tableに登録されているピクチャインピクチャ表示用のプライマリオーディオストリームの中で、再生されるピクチャインピクチャ表示用のプライマリオーディオストリームが設定されているレジスタである。そして、#5レジスタにおいて、invalid_flagの値が0である場合、ピクチャインピクチャアプリケーション用のプライマリオーディオストリームのID番号は有効であり、1の場合には、無効である。
#5レジスタに設定されているID番号のオーディオストリームがPlayItem()のSTN_table()においてセカンダリビデオストリームとの組み合わせが許可されているピクチャインピクチャ表示用のプライマリオーディオストリームではない場合、再生されるオーディオストリームは、ピクチャインピクチャ表示用のプライマリオーディオストリームの自動選択ルーチンによって選択される。
なお、それぞれのオーディオストリームの自動選択ルーチンにおいては、まず、再生装置141において再生できるオーディオか、再生できないオーディオかを表すレジスタが参照されて、再生装置141が再生能力を有するオーディオが優先されて選択され、次に、再生装置141に設定されている言語コードと同等の言語のオーディオデータが優先されて選択され、そして、次に、STN_table()に登録されている順番で番号が若いものから順番に優先されて選択されるようになされている。
なお、Secondary audio stream numberに0xFFが登録されている場合、セカンダリオーディオストリームが選択されていないか、または、存在しない。そして、PiP primary audio stream numberに0xFFが登録されている場合、ピクチャインピクチャ表示用のプライマリオーディオストリームが選択されていないか、または、存在しない。
また、PiP primary audio stream numberに0xFF以外が登録されていた場合でもinvalid_flagによって、再生の有効または無効が決められる。すなわち、invalid_flag=1で再生無効状態のときは、必ず、PiP primary audio stream numberが0xFFに設定されるようになされているのではない。例えば、invalid_flag=1で再生無効状態のときは、PiP primary audio stream numberに0xFF以外が登録されていても、PiP primary audio stream numberに登録されている値は無視されて、再生されないようになされている。
これらのレジスタに設定されている値を参照することにより、再生装置141においてそれぞれのストリームの再生処理が実行される。
次に、図80を参照して、ピクチャインピクチャ表示の実行時に、プライマリオーディオとセカンダリオーディオとが再生(セカンダリオーディオは、ユーザの操作入力に基づいて、または、各種設定に基づいて再生)される場合の例について説明する。
例えば、ピクチャインピクチャ表示が実行されていない状態(図中、「No PiP」と示されている状態)において、#3レジスタのprimary audio stream numberに設定されている値が参照され、STN_table()に登録されているaudio stream number=0x05のプライマリオーディオストリームが再生される。
このとき、#4レジスタのSecondary audio stream numberに0xFF以外が登録されていれば、設定されているID番号のオーディオストリームは、ユーザの操作入力に基づいて、または、各種設定に基づいて再生される。
そして、ナビゲーションプログラムによってコマンドが発生されるか、または、ユーザにより所定の操作入力が行われることにより、ピクチャインピクチャ表示の実行が開始(図中、PiP on)される。ピクチャインピクチャ表示の実行が開始されても、#5レジスタのinvalid_flagが1に設定(例えば、ナビゲーションプログラムによって発生されるナビゲーションコマンドによりinvalid_flagが1に設定)されていれば、ピクチャインピクチャアプリケーション用のプライマリオーディオストリームは、再生されない。すなわち、ピクチャインピクチャ表示が実行されている状態(図中、「PiP enabled」と示されている状態)においても、#3レジスタのPrimary stream numberに設定されている値、および、#4レジスタのSecondary stream numberに設定されている値が参照され、STN_table()に登録されているaudio stream number=0x07が再生されるとともに、ユーザの操作入力に基づいて、または、各種設定に基づいて、audio stream2 number=0x01のオーディオストリームがミキシングされて再生される。
そして、ピクチャインピクチャ表示の実行が終了(図中、PiP off)され、再び、ピクチャインピクチャ表示が実行されていない状態(図中、「No PiP」と示されている状態)となった場合、#3レジスタのPrimary stream numberに設定されている値が参照され、STN_table()に登録されているaudio stream number=0x05のオーディオストリームが再生される。
このときも、#4レジスタのSecondary audio stream numberに0xFF以外が登録されていれば、設定されているID番号のオーディオストリームは、ユーザの操作入力に基づいて、または、各種設定に基づいて再生される。
次に、図81を参照して、ピクチャインピクチャ表示の実行時に、ピクチャインピクチャアプリケーション用のプライマリオーディオストリームが再生される場合の例について説明する。
例えば、ピクチャインピクチャ表示が実行されていない状態(図中、「No PiP」と示されている状態)において、#3レジスタのPrimary stream numberに設定されている値が参照され、STN_table()に登録されているaudio stream number=0x05のオーディオストリームが再生される。
このとき、#4レジスタのSecondary audio stream numberに0xFF以外が登録されていれば、設定されているID番号のオーディオストリームは、ユーザの操作入力に基づいて、または、各種設定に基づいて再生される。
そして、ナビゲーションプログラムによってコマンド(例えば、ストリームに埋め込まれているナビゲーションコマンド)が発生されるか、または、ユーザにより所定の操作入力が行われることにより、ピクチャインピクチャ表示の実行が開始(図中、PiP on)され、#5レジスタのinvalid_flagが0に設定されている場合、#5レジスタのPiP primary audio stream numberに設定されている値が参照されて、STN_table()に登録されているPiP primary audio stream number=0x07のピクチャインピクチャアプリケーション用のプライマリオーディオストリームが再生される。
そして、ピクチャインピクチャ表示の実行が終了(図中、PiP off)され、再び、ピクチャインピクチャ表示が実行されていない状態(図中、「No PiP」と示されている状態)となった場合、#3レジスタのPrimary stream numberに設定されている値が参照され、STN_table()に登録されているaudio stream number=0x05のオーディオストリームが再生される。
このときも、#4レジスタのSecondary audio stream numberに0xFF以外が登録されていれば、設定されているID番号のオーディオストリームは、ユーザの操作入力に基づいて、または、各種設定に基づいて再生される。
なお、図80および図81において、PiP primary audio stream numberに0xFFが登録されている場合、ピクチャインピクチャ表示用のプライマリオーディオストリームが選択されていないか、または、存在しない。例えば、PiP primary audio stream numberに0xFF以外が登録されていた場合でもinvalid_flagの設定によって、再生の有効または無効が決められる。すなわち、invalid_flag=1で再生無効状態のときは、PiP primary audio stream numberに0xFF以外が登録されていても、PiP primary audio stream numberに登録されている値は無視されて、再生されないようになされている。
次に、図82のフローチャートを参照して、PiP(ピクチャインピクチャ)を含んだアプリケーションのオーディオストリーム再生処理1について説明する。
ステップS401において、コントローラ21は、#3レジスタに設定されているprimary audio stream番号(primary audio stream number)より、対応するプライマリオーディオを現在のPlayItemのSTN_table()から調べる。
ステップS402において、コントローラ21は、所望のプライマリオーディオストリームを特定して、記録媒体11、または、ローカルストレージ24に記録されているClipから、特定されたストリームを読み出し、再生を行う。
例えば、コントローラ21は、#3レジスタのprimary audio stream numberに設定されている値を参照し、STN_table()に登録されているprimary audio stream numberのプライマリオーディオストリームを読み出し、AVデコーダ部403に供給する。読み出されたプライマリオーディオストリームは、各バッファ、PIDフィルタ、スイッチ等の処理により、1stオーディオデコーダ75−1に供給されてデコードされ、対応するビデオデータとともに再生出力される。
ステップS403において、コントローラ21は、ピクチャインピクチャ表示を開始(PiPをONに)する。
ここで、ピクチャインピクチャ表示がメインパスに同期して設定されている場合、ピクチャインピクチャ表示の開始(PiPのON)およびピクチャインピクチャ表示の終了(PiPのOFF)は、ユーザの操作入力にかかわらず、所定のタイミングで実行される。これに対して、ピクチャインピクチャ表示がメインパスと非同期で設定されている場合、ピクチャインピクチャ表示の開始(PiPのON)およびピクチャインピクチャ表示の終了(PiPのOFF)は、ユーザの操作入力により設定される。
ステップS404において、コントローラ21は、ストリームに埋め込まれている、または、ストリームとは異なる位置に記憶されてプリロードされているNavigation Command(ナビゲーションコマンド)等により、必要に応じて、#5レジスタのinvalid_flagの設定値を変更する。
ステップS405において、コントローラ21は、#5レジスタにおいて、invalid_flag=0(PiPプライマリオーディオストリーム有効)であるか否かを判断する。
ステップS405において、invalid_flag=0であると判断された場合、ステップS406において、コントローラ21は、図80を用いて説明したようにして、#5レジスタに設定されているPiP primary audio stream番号より、対応するピクチャインピクチャ表示用のプライマリオーディオを、現在のPlayItemのSTN_table()より調べる。
ステップS407において、コントローラ21は、再生するべきピクチャインピクチャ表示用のプライマリオーディオを特定し、上述した場合と同様にしてClipから読み出してAVデコーダ部403に供給して再生させ、処理は、後述するステップS409に進む。
例えば、コントローラ21は、#5レジスタのPip primary audio stream numberに設定されている値を参照し、STN_table()に登録されているPip primary audio stream numberのピクチャインピクチャ表示用のプライマリオーディオストリームを読み出し、AVデコーダ部403に供給する。読み出されたピクチャインピクチャ表示用のプライマリオーディオストリームは、各バッファ、PIDフィルタ、スイッチ等の処理により、1stオーディオデコーダ75−1に供給されてデコードされ、対応するビデオデータとともに再生出力される。なお、コントローラ21は、#5レジスタに設定されているID番号のオーディオストリームが現在のPlayItem()のSTN_table()に登録されていない場合、ピクチャインピクチャ表示用のプライマリオーディオストリームの自動選択ルーチンにより、再生されるオーディオストリームを選択する。
ステップS405において、invalid_flag=0ではない(すなわち、invalid_flag=1である)と判断された場合、ステップS408において、コントローラ21は、図80を用いて説明したようにして、#3レジスタに設定されているprimary audio stream番号(primary audio stream number)、および、#4レジスタに設定されているsecondary audio stream番号(secondary audio stream number)より対応するプライマリとセカンダリのオーディオストリームを現在のPlayItemのSTN_table()より調べ、再生すべきプライマリとセカンダリのオーディオストリームを特定し、上述した場合と同様にしてClipから読み出してAVデコーダ部403に供給して、合成して再生させる。
例えば、コントローラ21は、#3レジスタのprimary audio stream number、および、#4レジスタのsecondary audio stream numberに設定されている値を参照し、STN_table()に登録されているプライマリとセカンダリのオーディオストリームを読み出し、AVデコーダ部403に供給する。読み出されたプライマリとセカンダリのオーディオストリームは、各バッファ、PIDフィルタ、スイッチ等の処理により、プライマリオーディオストリームは1stオーディオデコーダ75−1に、セカンダリオーディオストリームは2ndオーディオデコーダ75−2にそれぞれ供給されてデコードされ、対応するビデオデータとともに再生出力される。なお、コントローラ21は、#3レジスタまたは#4に設定されているID番号のオーディオストリームが現在のPlayItem()のSTN_table()に登録されていない場合、それぞれのオーディオストリームの自動選択ルーチンにより、再生されるオーディオストリームを選択する。
ステップS407、または、ステップS408の処理の終了後、ステップS409において、コントローラ21は、ピクチャインピクチャ(PiP)表示が終了されるか否かを判断する。
上述したように、ピクチャインピクチャ表示がメインパスに同期して設定されている場合、ピクチャインピクチャ表示の開始(PiPのON)およびピクチャインピクチャ表示の終了(PiPのOFF)は、ユーザの操作入力にかかわらず、所定のタイミングで実行される。これに対して、ピクチャインピクチャ表示がメインパスと非同期で設定されている場合、ピクチャインピクチャ表示の開始(PiPのON)およびピクチャインピクチャ表示の終了(PiPのOFF)は、ユーザの操作入力により設定される。
ステップS409において、ピクチャインピクチャ(PiP)表示が終了されないと判断された場合、処理は、ステップS404に戻り、それ以降の処理が繰り返される。ステップS409において、ピクチャインピクチャ(PiP)表示が終了されると判断された場合、処理は終了される。
このような処理により、ピクチャインピクチャ表示が実行される場合、#3レジスタ乃至#5レジスタに設定されている値を基に、いずれのオーディオストリームが再生されるかが決定される。なお、これらのレジスタの設定がSTN_table()の登録内容と一致しない場合には、上述した自動選択ルーチンにより、再生されるストリームが決定される。
次に、プライマリビデオストリームと組み合わせて同時再生され得るストリームの組み合わせを定義するSTN_tableのさらに異なる例、すなわち、STN_tableの第10の例を、図83乃至図85を用いて説明する。
即ち、図83乃至図85は、プライマリビデオストリームと組み合わせて同時再生され得る、セカンダリビデオストリーム、プライマリオーディオストリーム、セカンダリオーディオストリーム、および、サブタイトルストリームの組み合わせを定義するにあたって、第9の例における場合と同様に、ピクチャインピクチャアプリケーション用のプライマリオーディオを定義するとともに、セカンダリオーディオストリームとプライマリオーディオストリームとの組み合わせ、セカンダリビデオストリームとセカンダリオーディオストリームとの組み合わせ、セカンダリビデオストリームとピクチャインピクチャアプリケーション用のプレゼンテーショングラフィックス(PG)またはテキスト字幕の組み合わせ、セカンダリビデオとピクチャインピクチャアプリケーション用のプライマリオーディオとの組み合わせに加えて、セカンダリオーディオとピクチャインピクチャアプリケーション用のプライマリオーディオとの組み合わせをさらに定義する場合のSTN_table()のシンタクスの第10の例(第10のSTN_table())の例を示す図である。
第10のSTN_table()を参照して実行される再生処理も、図52を用いて説明した再生装置401において実行可能である。なお、図中、上述した図76乃至図79と同一の部分については、繰り返しになるのでその説明は省略する。
新たに加えられたcomb_info_Secondary_audio_PiP_primary_audio()のブロックは、セカンダリオーディオストリームとピクチャインピクチャ表示用のプライマリオーディオストリームの組み合わせを示す。
comb_info_Secondary_audio_PiP_primary_audio()のブロック内において、number_of_PiP_primary_audio_ref_entries_SAの8ビットのフィールドは、セカンダリオーディオストリームと組み合わせることが出来るピクチャインピクチャ表示用のプライマリオーディオストリームの数を示す。そして、PiP_primary_audio_id2_ref_SAの8ビットのフィールドは、セカンダリオーディオストリームと組み合わせることが出来るピクチャインピクチャ表示用のプライマリオーディオストリームのIDを示す。
なお、上述したそれぞれのSTN_tableにおける場合と同様に、各IDの代わりに各番号、例えば、audio_stream_idの代わりに、オーディオストリーム番号(audio_stream_number)を用いたり、audio_stream_id2の代わりに、オーディオストリーム番号2(audio_stream_number2)を用いるようにしてもよい。ビデオストリームやサブタイトルストリームについても同様である。
図83乃至図85の第10のSTN_table()によれば、セカンダリオーディオとプライマリオーディオの組み合わせ、セカンダリビデオとセカンダリオーディオの組み合わせ、セカンダリビデオとピクチャインピクチャアプリケーション用のPG・テキスト字幕の組み合わせ、および、セカンダリビデオとピクチャインピクチャ表示用のプライマリオーディオの組み合わせに加えて、セカンダリオーディオとピクチャインピクチャ表示用のプライマリオーディオの組み合わせを定義することができる。
従って、プライマリビデオストリーム(#1ビデオストリーム)と同時再生され得る、セカンダリビデオストリーム(#2ビデオストリーム)、プライマリオーディオストリーム(#1オーディオストリーム)、セカンダリオーディオストリーム(#2オーディオストリーム)、サブタイトルストリーム(PG TextSTストリーム)、ピクチャインピクチャアプリケーション用のPG・テキスト字幕ストリーム(PiP PG TextSTストリーム)の組み合わせ、および、セカンダリビデオとピクチャインピクチャ表示用のプライマリオーディオの組み合わせに加えて、セカンダリオーディオとピクチャインピクチャ表示用のプライマリオーディオの組み合わせとして矛盾するような組み合わせを選択することを防ぐようにすることができる。
また、再生装置141においては、上述したように、再生装置141のメモリ23の書き換え可能なメモリ領域のうちの一部に、複数のレジスタが設けられ、このレジスタに設定される値を基に、再生処理が実行される。図83乃至図85の第10のSTN_table()が用いられる場合、再生装置141のメモリ23の書き換え可能なメモリ領域のうちの一部には、図71を用いて説明したレジスタに加えて、図79を用いて説明した、ピクチャインピクチャアプリケーションが起動されたときに再生されるオーディオについての設定を行うためのレジスタが設けられる。
これらのレジスタに設定されている値を参照することにより、再生装置141においてそれぞれのストリームの再生処理が実行される。
また、ピクチャインピクチャ表示の実行時に、プライマリオーディオとセカンダリオーディオとが再生される場合については、図79を参照して説明したのと同様の処理が実行される。
次に、図86を参照して、ピクチャインピクチャ表示の実行時に、セカンダリオーディオストリームとピクチャインピクチャアプリケーション用のプライマリオーディオストリームが再生される場合の例について説明する。
例えば、ピクチャインピクチャ表示が実行されていない状態(図中、「No PiP」と示されている状態)において、#3レジスタのPrimary stream numberに設定されている値が参照され、STN_table()に登録されているaudio stream number=0x05のオーディオストリームが再生される。
そして、ナビゲーションプログラムによってコマンド(例えば、ストリームに埋め込まれているナビゲーションコマンド)が発生されるか、または、ユーザにより所定の操作入力が行われることにより、ピクチャインピクチャ表示の実行が開始(図中、PiP on)され、#5レジスタのinvalid_flagが0に設定されている場合、#4レジスタのSecondary stream numberに設定されている値、および、#5レジスタのPiP primary audio stream numberに設定されている値が参照されて、STN_table()に登録されているaudio stream2 number=0x01のオーディオストリームとPiP primary audio stream number=0x07のピクチャインピクチャアプリケーション用のプライマリオーディオストリームとがミキシングされて再生される。
そして、ピクチャインピクチャ表示の実行が終了(図中、PiP off)され、再び、ピクチャインピクチャ表示が実行されていない状態(図中、「No PiP」と示されている状態)となった場合、#3レジスタのPrimary stream numberに設定されている値が参照され、STN_table()に登録されているaudio stream number=0x05のオーディオストリームが再生される。
なお、図86においても、PiP primary audio stream numberに0xFFが登録されている場合、ピクチャインピクチャ表示用のプライマリオーディオストリームが選択されていないか、または、存在しない。例えば、PiP primary audio stream numberに0xFF以外が登録されていた場合でもinvalid_flagの設定によって、再生の有効または無効が決められる。すなわち、invalid_flag=1で再生無効状態のときは、PiP primary audio stream numberに0xFF以外が登録されていても、PiP primary audio stream numberに登録されている値は無視されて、再生されないようになされている。
次に、図87のフローチャートを参照して、PiP(ピクチャインピクチャ)を含んだアプリケーションのオーディオストリーム再生処理2について説明する。
ステップS451乃至ステップS455において、図82を用いて説明したステップS401乃至ステップS405と基本的に同様の処理が実行される。
すなわち、コントローラ21は、#3レジスタに設定されているprimary audio stream番号より、対応するプライマリオーディオを現在のPlayItemのSTN_table()から調べ、所望のプライマリオーディオストリームを特定して、Clipから読み出し、再生を行い、所定のタイミングで、ピクチャインピクチャ表示を開始する。ピクチャインピクチャ表示がメインパスに同期して設定されている場合、ピクチャインピクチャ表示の開始(PiPのON)およびピクチャインピクチャ表示の終了(PiPのOFF)は、ユーザの操作入力にかかわらず、所定のタイミングで実行される。これに対して、ピクチャインピクチャ表示がメインパスと非同期で設定されている場合、ピクチャインピクチャ表示の開始(PiPのON)およびピクチャインピクチャ表示の終了(PiPのOFF)は、ユーザの操作入力により設定される。
コントローラ21は、ストリームに埋め込まれている、または、ストリームとは異なる位置に記憶されてプリロードされているNavigation Command(ナビゲーションコマンド)等により、必要に応じて、#5レジスタのinvalid_flagの設定値を変更する。そして、コントローラ21は、#5レジスタにおいて、invalid_flag=0(PiPプライマリオーディオストリーム有効)であるか否かを判断する。
ステップS455において、invalid_flag=0であると判断された場合、ステップS456において、コントローラ21は、#5レジスタに設定されているPiP primary audio stream番号より、対応するピクチャインピクチャ表示用のプライマリオーディオを、現在のPlayItemのSTN_table()より調べる。
ステップS457において、コントローラ21は、#4レジスタに設定されているsecondary audio stream番号より、対応するセカンダリオーディオを、現在のPlayItemのSTN_table()より調べる。
ステップS458において、コントローラ21は、再生するべきピクチャインピクチャ表示用のプライマリオーディオおよびセカンダリオーディオを特定し、上述した場合と同様にしてClipから読み出してAVデコーダ部403に供給して、合成(ミキシング)して再生させ、処理は、後述するステップS460にすすむ。
例えば、コントローラ21は、#5レジスタのPip primary audio stream number、および、#4レジスタのsecondary audio stream numberに設定されている値を参照し、STN_table()に登録されているPip primary audio stream numberのピクチャインピクチャ表示用のプライマリオーディオストリームとセカンダリオーディオストリームを読み出し、AVデコーダ部403に供給する。読み出されたピクチャインピクチャ表示用のプライマリオーディオストリームとセカンダリオーディオストリームは、各バッファ、PIDフィルタ、スイッチ等の処理により、ピクチャインピクチャ表示用のプライマリオーディオストリームは1stオーディオデコーダ75−1に供給されてデコードされ、セカンダリオーディオストリームは2ndオーディオデコーダ75−2にそれぞれ供給されてデコードされ、対応するビデオデータとともに再生出力される。なお、コントローラ21は、#5レジスタまたは#4レジスタに設定されているID番号のオーディオストリームが現在のPlayItem()のSTN_table()に登録されていない場合、それぞれのオーディオストリームの自動選択ルーチンにより、再生されるオーディオストリームを選択する。
ステップS455において、invalid_flag=0ではない(すなわち、invalid_flag=1である)と判断された場合、ステップS459において、コントローラ21は、図80を用いて説明したようにして、#3レジスタに設定されているprimary audio stream番号(primary audio stream number)、および、#4レジスタに設定されているsecondary audio stream番号(secondary audio stream number)より対応するプライマリとセカンダリのオーディオストリームを現在のPlayItemのSTN_table()より調べ、再生すべきプライマリとセカンダリのオーディオストリームを特定し、上述した場合と同様にしてClipから読み出してAVデコーダ部403に供給して、合成して再生させる。
例えば、コントローラ21は、#3レジスタのprimary audio stream number、および、#4レジスタのsecondary audio stream numberに設定されている値を参照し、STN_table()に登録されているプライマリとセカンダリのオーディオストリームを読み出し、AVデコーダ部403に供給する。読み出されたプライマリとセカンダリのオーディオストリームは、各バッファ、PIDフィルタ、スイッチ等の処理により、プライマリオーディオストリームは1stオーディオデコーダ75−1に、セカンダリオーディオストリームは2ndオーディオデコーダ75−2にそれぞれ供給されてデコードされ、対応するビデオデータとともに再生出力される。なお、コントローラ21は、#3レジスタまたは#4に設定されているID番号のオーディオストリームが現在のPlayItem()のSTN_table()に登録されていない場合、それぞれのオーディオストリームの自動選択ルーチンにより、再生されるオーディオストリームを選択する。
ステップS457、または、ステップS459の処理の終了後、ステップS460において、コントローラ21は、ピクチャインピクチャ(PiP)表示が終了されるか否かを判断する。
上述したように、ピクチャインピクチャ表示がメインパスに同期して設定されている場合、ピクチャインピクチャ表示の開始(PiPのON)およびピクチャインピクチャ表示の終了(PiPのOFF)は、ユーザの操作入力にかかわらず、所定のタイミングで実行される。これに対して、ピクチャインピクチャ表示がメインパスと非同期で設定されている場合、ピクチャインピクチャ表示の開始(PiPのON)およびピクチャインピクチャ表示の終了(PiPのOFF)は、ユーザの操作入力により設定される。
ステップS460において、ピクチャインピクチャ(PiP)表示が終了されないと判断された場合、処理は、ステップS454に戻り、それ以降の処理が繰り返される。ステップS460において、ピクチャインピクチャ(PiP)表示が終了されると判断された場合、処理は終了される。
このような処理により、ピクチャインピクチャ表示が実行される場合、#3レジスタ乃至#5レジスタに設定されている値を基に、いずれのオーディオストリームが再生されるかが決定される。なお、これらのレジスタの設定がSTN_table()の登録内容と一致しない場合には、上述した自動選択ルーチンにより、再生されるストリームが決定される。
次に、図88および図89を参照して、再生装置1、再生装置141、または、再生装置401において再生可能なデータが記録された記録媒体11の製造方法について、記録媒体11がディスク状の記録媒体だった場合を例として説明する。
即ち、図88に示すように、例えばガラスなどよりなる原盤が用意され、その上に、例えばフォトレジストなどよりなる記録材料が塗布される。これにより、記録用原盤が製作される。
そして、図89に示すように、ソフト製作処理部において、符号化装置(ビデオエンコーダ)で符号化された、再生装置1、再生装置141、または、再生装置401において再生可能な形式のビデオデータが、一時バッファに記憶され、オーディオエンコーダで符号化されたオーディオデータが、一時バッファに記憶されるとともに、更に、データエンコーダで符号化された、ストリーム以外のデータ(例えば、Indexes、Playlist、PlayItemなど)が一時バッファに記憶される。それぞれのバッファに記憶されたビデオデータ、オーディオデータ、および、ストリーム以外のデータは、多重化器(MPX)で同期信号と共に多重化され、誤り訂正符号回路(ECC)でエラー訂正用のコードが付加される。
そして、変調回路(MOD)で所定の変調がかけられ、所定のフォーマットにしたがって、例えば磁気テープなどに一旦記録され、再生装置1、再生装置141、または、再生装置401において再生可能な記録媒体11に記録されるソフトウェアが製作される。
このソフトウェアを必要に応じて編集(プリマスタリング)し、光ディスクに記録すべきフォーマットの信号が生成される。そして、この記録信号に対応して、レーザビームが変調されて、このレーザビームが原盤上のフォトレジスト上に照射される。これにより、原盤上のフォトレジストが記録信号に対応して露光される。
その後、この原盤を現像し、原盤上にピットを出現させる。このようにして用意された原盤に、例えば電鋳等の処理を施し、ガラス原盤上のピットを転写した金属原盤を製作する。この金属原盤から、さらに金属スタンパを製作し、これを成形用金型とする。
この成形用金型に、例えばインジェクションなどによりPMMA(アクリル)またはPC(ポリカーボネート)などの材料を注入し、固定化させる。あるいは、金属スタンパ上に2P(紫外線硬化樹脂)などを塗布した後、紫外線を照射して硬化させる。これにより、金属スタンパ上のピットを、樹脂よりなるレプリカ上に転写することができる。
このようにして生成されたレプリカ上に、反射膜が、蒸着あるいはスパッタリングなどにより形成される。あるいはまた、生成されたレプリカ上に、反射膜が、スピンコートにより形成される。
その後、このディスクに対して内外径の加工が施され、2枚のディスクを張り合わせるなどの必要な処置が施される。さらに、ラベルを貼り付けたり、ハブが取り付けられて、カートリッジに挿入される。このようにして再生装置1、再生装置141、または、再生装置401によって再生可能なデータが記録された記録媒体11が完成する。
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウェアにより実行させることもできる。この場合、上述した処理は、図90に示されるようなパーソナルコンピュータ500により実行される。
図90において、CPU(Central Processing Unit)501は、ROM(Read Only Memory)502に記憶されているプログラム、または、記憶部508からRAM(Random Access Memory)503にロードされたプログラムに従って各種の処理を実行する。RAM503にはまた、CPU501が各種の処理を実行する上において必要なデータなどが適宜記憶される。
CPU501、ROM502、およびRAM503は、内部バス504を介して相互に接続されている。この内部バス504にはまた、入出力インターフェース505も接続されている。
入出力インターフェース505には、キーボード、マウスなどよりなる入力部506、CRT,LCDなどよりなるディスプレイ、スピーカなどよりなる出力部507、ハードディスクなどより構成される記憶部508、並びに、モデム、ターミナルアダプタなどより構成される通信部509が接続されている。通信部509は、電話回線やCATVを含む各種のネットワークを介しての通信処理を行う。
入出力インターフェース505にはまた、必要に応じてドライブ510が接続され、磁気ディスク、光ディスク、光磁気ディスク、あるいは半導体メモリなどによりなるリムーバブルメディア521が適宜装着され、それから読み出されたコンピュータプログラムが、必要に応じて記憶部508にインストールされる。
一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、ネットワークや記録媒体からインストールされる。
この記録媒体は、図90に示されるように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されているリムーバブルメディア521よりなるパッケージメディアにより構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM502や記憶部508が含まれるハードディスクなどで構成される。
なお、本明細書において、コンピュータプログラムを記述するステップは、記載された順序に従って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。