以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書または図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書または図面に記載されていることを確認するためのものである。従って、明細書または図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
本発明の一側面の情報処理装置は、記録媒体から第1および第2のストリームの再生を制御するための再生管理情報(例えば、PlayList)を取得する第1の取得手段(例えば、図32のPlayList読み出し制御部351)と、前記第1の取得手段により取得された前記再生管理情報を解析し、解析結果から、前記第1のストリームを再生する主の再生パスとは異なる再生パスであって、1つまたは複数の副の再生パスにより再生される前記第2のストリームの再生位置と種類を示す情報を含む前記副の再生パスに関する情報を取得する第2の取得手段(例えば、図32のPlayList解析部352およびIN_time/OUT_time取得部356)と、前記第2の取得手段により取得された前記副の再生パスに関する情報を基に、前記第1のストリームの再生時間軸(例えば、図34のメインタイムライン401)に対応づけて、前記第2のストリームの再生位置と種類を示す画像(例えば、図33または図34のGUI表示画面391のデータ)を生成する情報生成手段と、前記情報生成手段により生成された前記画像の表示を制御する表示制御手段(例えば、図32のGUI表示制御部359)と、前記第1の取得手段により取得された前記再生管理情報に基づいて、前記第1および第2のストリームの再生を制御する再生制御手段(例えば、図32の再生制御部355)とを備える。
前記第2のストリームの所定のフレームの画像データを取得する第3の取得手段(例えば、図32のストリームデータ読み出し制御部354)を更に備えることができ、前記情報生成手段は、前記第3の取得手段により取得された前記第2のストリームの所定のフレームの画像データを基に、前記第2のストリームの種類を示す情報(例えば、サムネイル)を生成することができる。
前記第1のストリームを取得する第3の取得手段(例えば、図32のストリームデータ読み出し制御部354)を更に備え、前記再生制御手段は、前記第1の取得手段により取得された前記再生管理情報に基づいて、前記第3の取得手段により取得された前記第1のストリームの再生を制御し、前記表示制御手段は、前記再生制御手段により再生が制御される前記第1のストリームの画像に、前記情報生成手段により生成された前記画像が重畳されて表示されるように、その画像の表示を制御(OSD30による画像合成を制御)することができる。
ユーザによる操作入力を取得する操作入力取得手段(例えば、図32の操作入力取得部353)を更に備えることができ、前記操作入力取得手段によって、前記表示制御手段により表示が制御された前記画像を参照したユーザによる前記第2のストリームの再生位置を選択する操作入力が取得された場合、前記再生制御手段は、選択された前記再生位置からの前記第1および第2のストリームの再生を制御することができる。
本発明の一側面の情報処理方法は、情報処理装置が、記録媒体から第1および第2のストリームの再生を制御するための再生管理情報(例えば、PlayList)を取得し(例えば、図37のステップS41の処理)、前記情報処理装置が、取得された前記再生管理情報を解析して、前記第1のストリームを再生する主の再生パスとは異なる再生パスであって、1つまたは複数の副の再生パスにより再生される前記第2のストリームの再生位置と種類を示す情報を含む前記副の再生パスに関する情報を取得し(例えば、図37のステップS42乃至ステップS51の処理)、前記情報処理装置が、取得された前記副の再生パスに関する情報を基に、前記第1のストリームの再生時間軸に対応づけて、前記第2のストリームの再生位置と種類を示す画像を生成し(例えば、図37のステップS53の処理)、前記情報処理装置が、生成された前記画像の表示を制御し、前記情報処理装置が、取得された前記再生管理情報に基づいて、前記第1および第2のストリームの再生を制御するステップを含む。
本発明の一側面のプログラムは、コンピュータに、記録媒体から第1および第2のストリームの再生を制御するための再生管理情報(例えば、PlayList)を取得し(例えば、図37のステップS41の処理)、取得された前記再生管理情報を解析して、前記第1のストリームを再生する主の再生パスとは異なる再生パスであって、1つまたは複数の副の再生パスにより再生される前記第2のストリームの再生位置と種類を示す情報を含む前記副の再生パスに関する情報を取得し(例えば、図37のステップS42乃至ステップS51の処理)、取得された前記副の再生パスに関する情報を基に、前記第1のストリームの再生時間軸に対応づけて、前記第2のストリームの再生位置と種類を示す画像を生成し(例えば、図37のステップS53の処理)、生成された前記画像の表示を制御し、取得された前記再生管理情報に基づいて、前記第1および第2のストリームの再生を制御するステップを含む処理を実行させる。
以下、図を参照して、本発明の実施の形態について説明する。
図4は、本発明を適用した再生装置(図29を参照して後述する)のローカルストレージ(例えば、ハードディスクやメモリなど)上の、または、装着される記録媒体上のアプリケーションフォーマットの例を示す図である。記録媒体は、後述する光ディスクの他、磁気ディスクや半導体メモリであってもよい。
アプリケーションフォーマットは、AV(Audio Visual)ストリームの管理のために、PlayListとClipの2つのレイヤを有している。ここでは、AVストリームとそれに付随する情報であるクリップインフォメーション(Clip Information)のペアを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は、図4に示されるように1つ、または複数のPlayItemにより構成される。
図4において、左から1番目のPlayListは2つのPlayItemから構成され、その2つのPlayItemにより、左側のClipに含まれるAVストリームの前半部分と後半部分がそれぞれ参照されている。また、左から2番目のPlayListは1つのPlayItemから構成され、それにより、右側のClipに含まれるAVストリーム全体が参照されている。さらに、左から3番目のPlayListは2つのPlayItemから構成され、その2つのPlayItemにより、左側のClipに含まれるAVストリームのある部分と、右側のClipに含まれるAVストリームのある部分がそれぞれ参照されている。
例えば、図4のディスクナビゲーションプログラムにより、そのときの再生位置を表す情報として、左から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)と称する。すなわち、再生装置(図29を参照して後述する)内部のローカルストレージ上の、または、装着される記録媒体上のアプリケーションフォーマットは、メインパスに関連付けられて(合わせて)再生されるサブパス(Sub Path)をPlayListの中に持つことが可能である。
図5は、メインパスとサブパスの構造を説明する図である。PlayListは、1つのメインパスと1つ以上のサブパスを持つことができる。1つのメインパスは、1つ以上のPlayItemの並びによって作られ、1つのサブパスは、1つ以上のSubPlayItemの並びによって作られる。
図5の例の場合、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を追加できる構成とすることができる。
図6は、メインパスとサブパスの例を説明する図である。図6においては、メインパスと同じタイミングで(AV同期して)再生されるオーディオの再生パスを、サブパスを使用して表している。
図6のPlayListには、メインパスとして、PlayItem_id=0である1つのPlayItemと、サブパスとして1つのSubPlayItemが含まれている。メインパスのPlayItem_id=0である1つのPlayItem()は、メインClipAVストリームを参照している。SubPlayItem()には、以下に示すデータが含まれる。まず、SubPlayItem ()には、PlayListの中のSub Path(サブパス)が参照するClipを指定するためのClip_Information_file_nameが含まれる。図6の例の場合、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とが含まれる。図6の例の場合、sync_PlayItem_id=0とされ、sync_start_PTS_of_PlayItem=t1とされている。これにより、メインパスのPlayItem_id=0の時間軸上でSub Pathが再生を開始する時刻t1を指定することができる。すなわち、図6の例の場合では、メインパスの再生開始時刻t1とサブパスの開始時刻t1が同時刻であることを示している。
ここで、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ストリームファイルは同一のファイルに多重化されていても良いし、異なるファイルとしてもよい。
なお、図6の例と同様にして、メインパスと同じタイミングで再生される字幕ストリーム再生パスを、サブパスを使用して表すこともできる。
図7は、メインパスとサブパスの別の例を説明する図である。図7においては、メインパスと同じタイミングで(AV同期して)再生されるオーディオの再生パスを、サブパスを使用して表している。ここで、メインパスのPlayItemが参照するメインClipAVストリームファイルは、図6と同様であるので省略している。
例えば、メインパスにより参照されるClipAVストリームを1つの映画のコンテンツ(AVコンテンツ)とし、サブパスのオーディオパスにより参照されるAuxiliary audio stream(Clip)をその映画に対する監督のコメントとし、メインパスで参照されるClipAVストリームのオーディオストリームにサブパスのオーディオパスで参照されるAuxiliary audio streamをミキシング(重ねて)再生するような場合に、このような構成が利用される。すなわち、図7に示されるメインパスとサブパスの構成は、ユーザが、映画を見ながら、その映画に対する監督のコメントを合わせて聞く指令を再生装置(プレーヤ)へ入力した場合、換言すれば、メインパスで参照されるClipAVストリームの音声と、サブパスのオーディオパスで参照されるAuxiliary audio streamとを、ミキシングして再生させる場合に利用される。
図7においては、メインパスに3つのPlayItemがPlayItem_id=0,1,2と配置され、サブパス(Subpath_id=0)に2つのSubPlayItemが配置されている。そして、Subpath_id=0のSubPath(図26にて後述する)で呼び出すSubPlayItem(図28にて後述する)は、Auxiliary audio stream(SubClip_entry_id=0の英語のAuxiliary audio streamのクリップ及びSubClip_entry_id=1の日本語のAuxiliary audio streamのクリップ)のSubpathの再生区間を指定するための、SubPlayItem_IN_timeと、SubPlayItem_out_timeを含む。
図7と図6とを比較するに、図7においては、SubPlayItemによって、SubClip_entry_id=0,1のAuxiliary audio stream(英語または日本語のオーディオストリーム)を参照することができる。すなわち、SubPlayItemを用いて、複数のオーディオストリームファイルを参照する構造を有し、このSubPlayItemを再生する場合には、複数のオーディオストリームファイルからオーディオストリームファイルが選ばれて再生される。図7の例の場合、英語のオーディオストリームファイルと日本語のオーディオストリームファイルのうち、1つのオーディオストリームファイルが選ばれて再生される。具体的には、subClip_entry_id=0,1の中から(例えば、ユーザの指令に基づいて)1つが選択され、そのIDが参照するAuxiliary audio streamが再生される。また、これに加えて、さらにメインパスにより参照されるオーディオストリームとの組み合わせによる再生が選択された場合、メインパスで参照される1stオーディオストリームと、サブパスのオーディオパスで参照される2ndオーディオストリームファイルとが、ミキシングされて再生される。なお、2つのサブパスで参照される2つのオーディオストリームが、ミキシングされて再生されるようにすることも可能であるが、これについては後述する。
次に、図5乃至図7を用いて説明したメインパスとサブパスの構造を具体的に実現するためのデータ構造(シンタクス)を説明する。
図8は、再生装置において再生可能なデータファイルのファイルシステムの例を示す図である。図8には、一例として、再生装置において再生可能なデータファイルが光ディスクなどの記録媒体によって供給されている場合を示しており、このファイルシステムはディレクトリ構造を有している。
このファイルシステムにおいて、「root」の下には「BDMV」の名前が設定されたディレクトリが用意され、そのディレクトリに、「Index.bdmv」の名前が設定されたファイルと、「NavigationObject.bdmv」の名前が設定されたファイルが格納されている。以下、適宜、これらのファイルをそれぞれIndexファイル、NavigationObjectファイルと称する。また、適宜、各ファイルについては、「ファイル名」に「ファイル」を付加した形で、または、各ディレクトリについては、「ディレクトリ名」に「ディレクトリ」を付加した形で称する。
Indexファイルは、インデックステーブルが記載されたファイルであり、再生装置において再生可能なデータファイルを再生するメニューに関する情報を含む。再生装置は、例えば、再生装置において再生可能なデータファイルに含まれるコンテンツを全て再生する、特定のチャプタのみ再生する、繰り返し再生する、初期メニューを表示するなどの内容の項目を含む再生メニュー画面をIndexファイルに基づいて、表示装置に表示させる。Indexファイルのインデックステーブルには各項目が選択されたときに実行するNavigationObjectを設定することができ、ユーザにより再生メニュー画面から1つの項目が選択された場合、再生装置はIndexファイルのインデックステーブルに設定されているNavigationObjectのコマンドを実行する。
NavigationObjectファイルは、NavigationObjectを含むファイルである。NavigationObjectは、再生装置において再生可能なデータファイルに含まれているPlayListの再生を制御するコマンドを含み、例えば、再生装置は、このファイルシステムに含まれているNavigationObjectの中から1つを選択して、実行することにより、コンテンツを再生させることができる。
BDMVディレクトリにはまた、「BACKUP」の名前が設定されたディレクトリ(BACKUPディレクトリ)、「PLAYLIST」の名前が設定されたディレクトリ(PLAYLISTディレクトリ)、「CLIPINF」の名前が設定されたディレクトリ(CLIPINFディレクトリ)、「STREAM」の名前が設定されたディレクトリ(STREAMディレクトリ)、「AUXDATA」の名前が設定されたディレクトリ(AUXDATAディレクトリ)が設けられている。
BACKUPディレクトリには、再生装置において再生可能なファイルやデータをバックアップするためのファイルやデータが記録される。
PLAYLISTディレクトリには、PlayListファイルが格納される。各PlayListファイルには、図内に示されるように5桁の数字からなるファイル名に拡張子「.mpls」を付加した名称が命名される。
CLIPINFディレクトリには、Clip Informationファイルが格納される。各Clip Informationファイルには、図内に示されるように5桁の数字からなるファイル名に拡張子「.clpi」を付加した名称が命名される。
STREAMディレクトリには、Clip AVストリームファイルやサブストリームファイルが格納される。各ストリームファイルには、図内に示されるように5桁の数字からなるファイル名に拡張子「.m2ts」を付加した名称が命名される。
AUXDATAディレクトリには、Clip AVストリームファイルやサブストリームファイルに含まれずに、Clip AVストリームファイルやサブストリームファイルから参照されるデータや、Clip AVストリームファイルやサブストリームファイルとは独立して利用されるデータなどのファイルが格納される。図8の例においては、AUXDATAディレクトリには、「11111.otf」の名前がつけられている字幕のフォントのファイル、「sound.bdmv」の名前が設定された効果音などのサウンドデータが格納されている。
以下、主に再生出力される音声データをプライマリオーディオストリーム(Primary audio stream)と称し、例えば、ユーザの操作入力に対応して発生するクリック音や効果音など、上述したAUXDATAディレクトリにsound.bdmvとして記載されている音声データをサウンドデータと称するものとする。サウンドデータはプライマリオーディオストリームに合成可能である。また、プライマリオーディオストリームとは別のストリームであって、例えば、副音声など、プライマリオーディオストリームに合成可能な音声データをセカンダリオーディオストリームと称するものとする。なお、プライマリオーディオストリームとは別のストリームであって、プライマリオーディオストリームに合成可能な音声データはであるセカンダリオーディオストリームは複数存在してもよく、その場合、例えば、異なるIDを用いて、それぞれ、区別可能なようにすればよい。
また、再生装置において再生可能なデータファイルが光ディスクによって配布されている場合、例えば、製作会社や映画の配給会社など、このコンテンツ製作元や、または、この記録媒体の供給元であるタイトルオーサを識別するために各タイトルオーサに割り当てられた識別子であるauthor_id、および、author_idに示されるタイトルオーサにおいて製作された光ディスクの種類を識別するために割り当てられた識別子であるdisc_idが、ユーザなどにより書き換えることができないセキュアな電子データとして、または、物理的にピットによって記録されている。
また、再生装置において再生可能なデータファイルが光ディスク以外のリムーバブルな記録媒体に記録されている場合や、ネットワークを介してダウンロードされている場合も、author_id、および、author_idに相当するidが割り当てられてそれぞれ区別可能なようになされ、図8に示す場合と同様のディレクトリ構造を有していると好適である。また、再生装置において再生可能なデータファイルには、author_id、および、author_idに相当するidが割り当てられていないとしても、図8を用いて説明した場合と同様に、「Index.bdmv」の名前が設定されたファイル、「NavigationObject.bdmv」の名前が設定されたファイルが含まれており、「BACKUP」の名前が設定されたファイル群、「PLAYLIST」の名前が設定されたファイル群、「CLIPINF」の名前が設定されたファイル群、「STREAM」の名前が設定されたファイル群、「AUXDATA」の名前が設定されたファイル群のうち、適宜必要なファイル群が含まれている。
Indexファイル(Index.bdmv)のシンタクスを図9に示す。
Type_indicatorは、ISO646に基づいて符号化された"INDX"の値が記述されるフィールドである。
version_numberは、Index.bdmvのバージョンナンバを示す4文字の文字列であり、ISO646に基づいて符号化された"0089"の値が記述される。
Indexes_start_addressは、Indexes()ブロックのスタートアドレスが記載されるフィールドである。
AppInfoBDMV()には、このIndexファイルを含むデータファイルの供給元を示す、個別の識別子などが記載されている。
Indexes()には、例えば、メニューを読み出したり、タイトルを検索したり、所定のタイトルにジャンプしたり、または、このIndexファイルを含むデータファイルが記録されている光ディスクなどの記録媒体が再生装置に装着された場合に自動的に起動する処理を実行するアプリケーション(NavigationObject)とのリンクが記載されている。Indexes()のシンタクスについては、図10を用いて後述する。
Padding_wordは、Index.bdmvのシンタクスに基づいて挿入されるものであり、0または正の整数で表される。
Indexes()のシンタクスの例を、図10に示す。
lengthは、Indexes()に何バイトの情報が記載されているかを表すフィールドである。
FirstPlaybackは、このファイルシステムのデータが再生される場合に最初に実行されるNavigationObjectに関する情報が含まれているデータブロックである。具体的には、このファイルシステムのデータが記録された光ディスクなどの記録媒体が再生装置に装着されたときに最初に自動的に実行されるNavigationObjectに関する情報が含まれているデータブロックである。
FirstPlayback_mobj_id_refは、最初に実行されるNavigationObjectのmobj_idの値を指定するためのフィールドである。mobj_idは、NavigationObjectがそれぞれ固有に与えられているIDである。また、再生開始時に自動的に実行されるNavigationObjectが設定されない場合、すなわち、再生開始時にはアプリケーションはいずれも実行されず、ユーザによる指令を受けて、いずれかのアプリケーションが実行されるようになされている場合、このフィールドには、"0Xffff"が記載される。
TopMenu()は、ユーザがメニュー画面を表示させる場合などに呼び出されるTopMenuのNavigationObjectに関する情報が含まれているデータブロックである。
TopMenu_mobj_id_refは、TopMenuのNavigationObjectのmobj_idの値を指定するためのフィールドである。TopMenuが設定されない場合、このフィールドには、"0xFFFF"が記載される。
number_of_Titlesは、Indexes()に記載されているタイトルの数を表すフィールドである。
Title[title_id]()は、title_idによって固有に区別されているそれぞれのタイトルに関する情報が記載されるブロックである。title_idは0から割り当てられる。
Title_playback_type[title_id]は、そのtitle_idによって指定されるタイトルの再生タイプを示す情報であり、例えば、再生される動画と音声による一般的なコンテンツであるMovie Titleか、ユーザの操作入力によって再生される動画や音声が変更されるなどの双方向のやり取りが可能なコンテンツであるInteractive Titleなどのタイプが示される。例えば、そのタイトルがMovie Titleである場合、PlayListに基づいた再生処理が実行される。
Title_access_type[title_id]は、そのtitle_idによって指定されるタイトルが、Title_Searchを用いて再生することが許可されているか否かを示す情報である。
reserved_for_future_useは、将来の拡張に備えるためにデータの記述内容が未設定とされている29ビットのフィールドである。
Title_mobj_id_ref[title_id]は、そのtitle_idによって指定されるタイトルがエントリーされているNavigationObjectのmobj_idの値を指定するためのフィールドである。
図11に、PlayListファイルのデータ構造を示す。PlayListファイルは、再生装置に装着された記録媒体、または、再生装置内部の記憶部(例えば、ハードディスクなどからなるローカルストレージ)において、PLAYLISTディレクトリに格納される、拡張子「.mpls」を有するデータファイルである。
type_indicatorは、このファイルの種類を示す情報が記載されているものである。すなわち、このフィールドには、このファイルの種類が映像の再生を管理する再生管理情報であるPlayList(MoviePlayList)であることを示す情報が記載される。
version_numberは、このxxxx.mpls(MoviePlayList)のバージョンナンバを示す4個のキャラクター文字を示すものである。
PlayList_start_addressは、PlayListファイルの先頭のバイトからの相対バイト数を単位として、PlayList()の先頭アドレスを示すものである。
PlayListMark_start_addressは、PlayListファイルの先頭のバイトからの相対バイト数を単位として、PlayListMark()の先頭アドレスを示すものである。
ExtensionData_start_addressは、PlayListファイルの先頭のバイトからの相対バイト数を単位として、ExtensionData()の先頭アドレスを示すものである。
AppInfoPlayList()には、例えば、再生制限など、PlayListの再生コントロールに関するパラメータが格納されている。AppInfoPlayList()の詳細は、図12を用いて後述する。
PlayList()には、PlayListのメインパスやサブパスなどに関するパラメータが格納されている。PlayList()の詳細は、図13を用いて後述する。
PlayListMark()には、PlayListのマーク情報、すなわち、チャプタジャンプなどを指令するユーザオペレーションまたはコマンドなどにおけるジャンプ先(ジャンプポイント)であるマークに関する情報が格納されている。
ExtensionData()には、プライベートデータが挿入できるようになっている。
次に、図12を参照して、AppInfoPlayList()のシンタクスについて説明する。
lengthは、length以下のシンタクスの長さ、すなわち、このlengthフィールドの直後からreserved_for_future_useの最後までのAppInfoPlayList()のバイト数を示すものである。このlengthの後には、8ビットのreserved_for_future_useが用意される。
PlayList_playback_typeは、連続再生、ランダムアクセス、シャッフルのいずれの再生を行うPlayListであるかを示す情報を記載するフィールドである。
Playback_countは、ランダムアクセス、シャッフルを行うPlayListの場合、再生に用いるPlayItemの数を示す情報を記載するフィールドである。
そして、UO_mask_table()は、一時停止、チャプタサーチ、ジャンプ、早送り、早戻し(後方高速再生)等の特殊再生、または、表示等に関するユーザ操作の制限を決める情報である。
そして、PlayList_random_access_flagは、他のPlayListからのジャンプ再生を制御するためのフラグ情報である。ここでは、PlayList_random_access_flag=1に設定されている場合、他のPlayListからのジャンプ再生を禁止するものとする。
例えば、再生装置においては、例えば、現在のPlayListにより参照されている再生位置から、他のPlayListにより参照される所定のPlayItemの先頭またはチャプタの位置への再生位置のジャンプを指令するユーザオペレーションなど、装置独自で拡張的なユーザオペレーションを用意することができる。PlayList_random_access_flagは、例えば、これらのユーザオペレーションにより、他のPlayListによって参照されるClip AV Streamのある再生位置から、このPlayListによって参照されるClip AV Streamへのジャンプ(再生位置の移動)が指令された場合、このユーザオペレーションを制限するか否かを設定するためのフラグ情報である。
なお、ユーザオペレーションによりジャンプ(再生位置の移動)が指令されるのではなく、ナビゲーションコマンドによりジャンプ(再生位置の移動)が指令された場合、PlayList_random_access_flagは無視される(コマンドは実行され、コマンドの発生に伴って、再生位置が移動される)。
is_MixAppは、このPlayListファイルにより再生されるストリームが音声や効果音の合成を行うか否かのフラグである。すなわち、このis_MixAppは、このPlayListにより参照されるデータに、プライマリオーディオストリームに合成され得るサウンドデータまたはセカンダリオーディオストリームが含まれているか否かを示すフラグとして定義されている。この1つのフラグを確認することのみにより、オーディオデータの合成が行われるか否かを、迅速に認識することが可能となる。
また、Lossless_may_bypass_mixer_flagは、ロスレスの音声の再生に関するフラグである。この後には、13ビットのreserved_for_future_useが用意される。
次に、図13は、PlayList()のシンタクスを示す図である。
lengthは、このlengthフィールドの直後からPlayList()の最後までのバイト数を示す32ビットの符号なし整数である。すなわち、reserved_for_future_useからPlayListの最後までのバイト数を示すフィールドである。このlengthの後には、16ビットのreserved_for_future_useが用意される。reserved_for_future_useは、将来の拡張に備えるためにデータの記述内容が未設定とされている。number_of_PlayItemsは、PlayListの中にあるPlayItemの数を示す16ビットのフィールドである。例えば、図5の例の場合PlayItemの数は3個である。PlayItem_idの値は、PlayListの中でPlayItem()が現れる順番に0から割り振られる。例えば、図5に示されるように、PlayItem_id=0,1,2が割り振られる。
number_of_SubPathsは、PlayListの中にあるSubPathの数(エントリー数)を示す16ビットのフィールドである。例えば、図5の例の場合、Sub Pathの数は3個である。SubPath_idの値は、PlayListの中でSubPath()が現れる順番に0から割り振られる。例えば、図5に示されるように、Subpath_id=0,1,2が割り振られる。その後のfor文では、PlayItemの数だけPlayItemが参照され、Sub Pathの数だけ、Sub Pathが参照される。
次に、図14を参照して、PlayItem()のシンタクスについて説明する。
lengthは、このlengthフィールドの直後からPlayItem()の最後までのバイト数を示す16ビットの符号なし整数である。Clip_Information_file_ name[0]は、PlayItemが参照するClipを指定するためのフィールドである。図14の例の場合、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が含まれる。図14の例の場合、IN_timeとOUT_timeにより、メインClipAVストリームファイルの再生範囲が表される。
また、PlayItem()には、ユーザ入力の受付制限をするUO_mask_table()、他のPlayItemからのジャンプ再生を制御するPlayItem_random_access_flagが含まれる。
図14に示される、PlayItem()のUO_mask_table()には、このPlayItemを参照してClip AV Streamが再生されているときに操作入力される各種のユーザオペレーションについて、それぞれ許可するか否かが設定されている。
そして、図14に示される、PlayItem()のPlayItem_random_access_flagは、ユーザオペレーションにより、他のPlayItemによって参照されるClip AV Streamのある再生位置から、このPlayItemによって参照されるClip AV Streamへのジャンプ(再生位置の移動)が指令された場合、このユーザオペレーションを制限するか否かを設定するためのフラグ情報である。ここでは、PlayItem_random_access_flag=1に設定されている場合、他のPlayItemからのジャンプ再生を禁止するものとする。このフラグについての詳細な説明は後述する。
なお、ユーザオペレーションによりジャンプ(再生位置の移動)が指令されるのではなく、ナビゲーションコマンドによりジャンプ(再生位置の移動)が指令された場合、PlayItem_random_access_flagは無視される(コマンドは実行され、コマンドの発生に伴って、再生位置が移動される)。
さらに、PlayItem()には、最後に表示をした映像を静止画として表示をさせるか否かを示すstill_modeが含まれる。なお、is_multi_angleが複数ある場合(is_multi_angle==1)については、本発明と直接的には関係ないのでその説明を省略する。
そして、STN_table()は、対象のPlayItemとそれに関連付けられて再生される1つ以上のSubPathが用意されている場合に、例えば、音声切り替えや字幕切り替え、または、子画面の表示非表示の選択を指令するユーザの操作入力、または、アプリケーションによるコマンドの発生などによって、そのPlayItemが参照するClipとこれらの1つ以上のSubPathが参照するClipの中から、再生されるストリームを選択することができる仕組みを提供するための情報である。
例えば、PlayItem()とそれに関連付けられて再生される1つ以上のSubPathが用意されている場合に、Main Pathを構成するPlayItemが参照するClipに含まれるビデオストリームをプライマリビデオストリーム(Primary video stream)とし、SubPathを構成するSubPlayItemが参照するClipに含まれるビデオストリームをセカンダリビデオストリーム(secondary video stream)としたり、または、PlayItemが参照するClip(メインClip)に含まれるビデオストリームのうちの2つのビデオストリームを、それぞれプライマリビデオストリームとセカンダリビデオストリームとして、これらをミキシングして、全画面(プライマリビデオストリーム)と子画面(セカンダリビデオストリーム)で再生することができる仕組みを提供するようにした。このような手法は、ピクチャインピクチャ(Picture in Picture)手法と称される。
また、同様にして、例えば、PlayItem()とそれに関連付けられて再生される1つ以上のSubPathが用意されている場合に、Main Pathを構成するPlayItemが参照するClipに含まれるオーディオストリームをプライマリオーディオストリーム(Primary audio stream)とし、SubPathを構成するSubPlayItemが参照するClipに含まれるオーディオストリームをセカンダリオーディオストリーム(secondary audio stream)としたり、または、PlayItemが参照するClip(メインClip)に含まれるオーディオストリームのうちの2つのオーディオストリームを、それぞれプライマリオーディオストリームとセカンダリオーディオストリームとして、これらをミキシングして再生することができる仕組みを提供するようにした。
そして、プライマリビデオストリームと同時に再生され得るストリームとして、ここでは、次の第1乃至第4の種類のストリームが用意される。
第1の種類のストリームとは、STN_tableにおいてPrimary_audio_stream_idで定義されるオーディオストリーム、即ち、上述したプライマリオーディオストリームである。
第2の種類のストリームとは、STN_tableにおいてSecondary_video_stream_idで定義されるビデオストリーム、すなわち、上述したセカンダリビデオストリームである。
第3の種類のストリームとは、STN_tableにおいてSecondary_audio_stream_idで定義されるオーディオストリーム、即ち、上述したセカンダリオーディオストリームである。
第4の種類のストリームとは、サブパスで参照されるテキスト字幕ストリーム(txtST)や、DVDのサブピクチャのようなビットマップ字幕をランレングス符号化したストリーム(PG, Presentation Graphics stream)等であり、STN_tableにおいて、PG_txtST_stream_id、IG_stream_idで定義される。
STN_table()は、これらのストリームの組み合わせを定義する情報である。
次に、図15および図16を用いて、STN_table()のシンタクスについて説明する。
このSTN_table()は、プライマリビデオストリームと組み合わせて同時再生され得る、セカンダリビデオストリーム、プライマリオーディオストリーム、セカンダリオーディオストリーム、および、サブタイトルストリームの組み合わせを定義するにあたって、特に、セカンダリオーディオストリームとプライマリオーディオストリームとの組み合わせ、セカンダリビデオストリームとセカンダリオーディオストリームとの組み合わせ、セカンダリビデオストリームとピクチャインピクチャアプリケーション用のプレゼンテーショングラフィックス(PG)またはテキスト字幕の組み合わせを定義する。
lengthは、このlengthフィールドの直後からSTN_table()の最後までのバイト数を示す16ビットの符号なし整数である。lengthの後には、16ビットのreserved_for_future_useが用意される。
number_of_primary_video_stream_entriesは、STN_table()の中でエントリーされる(登録される)primary_video_stream_idが与えられるストリーム数を示す。primary_video_stream_idは、ビデオストリームを識別するための情報であり、primary_video_stream_numberは、ビデオ切り替えに使われる、ユーザから見えるビデオストリーム番号である。
number_of_primary_audio_stream_entriesは、STN_table()の中でエントリーされるprimary_audio_stream_idが与えられるストリーム数を示す。primary_audio_stream_idは、オーディオストリームを識別するための情報であり、primary_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は、グラフィックス切り替えに使われるユーザから見えるグラフィックスストリーム番号である。
number_of_secondary_audio_stream_entriesは、STN_table()の中でエントリーされる(登録される)secondary_audio_stream_idが与えられるストリーム数を示す。secondary_audio_stream_idは、オーディオストリームを識別するための情報であり、secondary_audio_stream_numberは、オーディオ切り替えに使われる、ユーザから見えるオーディオストリーム番号である。
number_of_secondary_video_stream_entriesは、STN_table()の中でエントリーされる(登録される)secondary_video_stream_idが与えられるストリーム数を示す。secondary_video_stream_idは、ビデオストリームを識別するための情報であり、secondary_video_stream_numberは、ビデオ切り替えに使われる、ユーザから見えるビデオストリーム番号である。
そして、number_of_PiP_PG_textST_stream_entries_plusは、STN_table()の中でエントリーされる(登録される)ピクチャインピクチャ用の字幕ストリーム(PiP_PG_textST_stream)のストリーム数を示す。
プライマリビデオストリームID (primary_video_stream_id)のforループの中で、順番にstream_entry()ごとに特定される1つのビデオエレメンタリストリームに、0からprimary_video_stream_idが与えられる。なお、プライマリビデオストリームID(primary_video_stream_id)の代わりに、プライマリビデオストリーム番号(primary_video_stream_number)を用いるようにしてもよい。この場合、primary_video_stream_numberは、0ではなく1から与えられる。すなわち、primary_video_stream_idの値に1を加算したものがprimary_video_stream_numberである。ビデオストリーム番号は、ビデオ切り替えに使われる、ユーザから見えるビデオストリーム番号であるので、1から定義される。
それぞれのforループの中のstream_entry()については、図17を用いて後述する。
また、それぞれのforループの中のstream_attribute()は、stream_entry()ごとに特定される1つのエレメンタリストリームのストリーム属性情報を与える。すなわち、このstream_attribute()には、stream_entry()ごとに特定される1つのエレメンタリストリームのストリーム属性情報が記述されている。stream_attribute()については、図18を用いて後述する。
また、同様に、プライマリオーディオストリームID (primary_audio_stream_id)のforループの中で、順番にstream_entry()ごとに特定される1つのオーディオエレメンタリストリームに、0からprimary_audio_stream_idが与えられる。なお、ビデオストリームの場合と同様に、プライマリオーディオストリームID(primary_audio_stream_id)の代わりに、プライマリオーディオストリーム番号(primary_audio_stream_number)を用いるようにしてもよい。この場合、primary_audio_stream_numberは、0ではなく1から与えられる。すなわち、primary_audio_stream_idの値に1を加算したものがprimary_audio_stream_numberである。オーディオストリーム番号は、音声切り替えに使われる、ユーザから見えるオーディオストリーム番号であるので、1から定義される。
同様に、字幕ストリームID (PG_txtST_stream_id)のforループの中で、順番にstream_entry()ごとに特定される1つのビットマップ字幕エレメンタリストリームまたはテキスト字幕に、0からPG_txtST_stream_idが与えられる。また、PiP_ 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から定義される。
また、同様に、セカンダリオーディオストリームID (secondary_audio_stream_id)のforループの中で、順番にstream_entry()ごとに特定される1つのオーディオエレメンタリストリームに、0からsecondary_audio_stream_idが与えられる。なお、ビデオストリームの場合と同様に、セカンダリオーディオストリームID(secondary_audio_stream_id)の代わりに、セカンダリオーディオストリーム番号(secondary_audio_stream_number)を用いるようにしてもよい。この場合、secondary_audio_stream_numberは、0ではなく1から与えられる。すなわち、secondary_audio_stream_idの値に1を加算したものがsecondary_audio_stream_numberである。セカンダリオーディオストリーム番号は、音声切り替えに使われる、ユーザから見えるセカンダリオーディオストリーム番号であるので、1から定義される。
そして、comb_info_Secondary_audio_Primary_audio()のブロックは、セカンダリオーディオとプライマリオーディオの組み合わせを示す。
comb_info_Secondary_audio_Primary_audio()のブロック内において、number_of_primary_audio_stream_ref_entriesの8ビットのフィールドは、セカンダリオーディオストリームと組み合わせることが出来るプライマリオーディオストリームの数を示す。そして、primary_audio_stream_id_refの8ビットのフィールドは、セカンダリオーディオストリームと組み合わせることが出来るプライマリオーディオストリームのIDを示す。
また、同様に、セカンダリビデオストリームID (secondary_video_stream_id)のforループの中で、順番にstream_entry()ごとに特定される1つのオーディオエレメンタリストリームに、0からsecondary_video_stream_idが与えられる。なお、ビデオストリームの場合と同様に、セカンダリビデオストリームID(secondary_video_stream_id)の代わりに、セカンダリビデオストリーム番号(secondary_video_stream_number)を用いるようにしてもよい。この場合、secondary_video_stream_numberは、0ではなく1から与えられる。すなわち、secondary_video_stream_idの値に1を加算したものがsecondary_video_stream_numberである。セカンダリビデオストリーム番号は、音声切り替えに使われる、ユーザから見えるセカンダリビデオストリーム番号であるので、1から定義される。
次に、comb_info_Secondary_video_Secondary_audio()のブロックは、セカンダリビデオストリームとセカンダリオーディオストリームの組み合わせを示す。
comb_info_Secondary_video_Secondary_audio()のブロック内において、number_of_Secondary_audio_stream_ref_entriesの8ビットのフィールドは、セカンダリビデオストリームと組み合わせることが出来るセカンダリオーディオストリームの数を示す。そして、Secondary_audio_stream_id_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を示す。
このようなSTN_tableを用いることにより、プライマリビデオストリームと同時再生され得る、セカンダリビデオストリーム、プライマリオーディオストリーム、セカンダリオーディオストリーム、および、サブタイトルストリーム(PG TextSTストリーム)の組み合わせに加えて、ピクチャインピクチャアプリケーション用のPG・テキスト字幕ストリーム(PiP PG TextSTストリーム)の組み合わせとして矛盾するような組み合わせを選択することを防ぐようにすることができる。
図17は、Stream_entry()のシンタクスを示す図である。
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)を示している。
そして、type=3は、対応するPlayItemにおいて、MainClipに含まれ、SubPathによって参照されるエレメンタリストリームを識別するためのものである。
すなわち、type=3では、SubPathがMainPathと同じClipを参照し、換言すれば、MainClipに複数のエレメンタリストリームが多重化され、MainPathとSubPathとのいずれも、MainClipに多重化されているエレメンタリストリームのうちのいずれかを参照している場合に、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(図28)が呼び出されることにより、エレメンタリストリームの再生時間(IN_time, OUT_time)等を把握することができるようになされている。
なお、type=3、すなわち、MainClipに複数のエレメンタリストリームが多重化され、MainPathとSubPathとのいずれも、MainClipに多重化されているエレメンタリストリームのうちのいずれかを参照するのは、図27を用いて後述するSubPath_typeが、SubPath_type =7である場合である。
このように、type(type1乃至type3の3つのtype)を使うことで、PlayItemとそれに関連付けられて再生される1つ以上のSubPathが用意されている場合に、このPlayItemが参照するClipが、さらに、SubPathから参照されている場合であっても、Clipの中から1つのエレメンタリストリームを特定することができる。
次に、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のシンタクスが用いられ、図17のtypeがともに2とされているオーディオストリームIDに対応するオーディオストリームの再生が指令された場合)、再生装置は、2つのサブパスによりそれぞれ参照される2つのオーディオストリームをミキシング(重畳)して、ビデオストリームとともに再生する。
このようにして、PlayItem()の中にSTN_table()を設けることにより、PlayItemとそれに関連付けられて再生される1つ以上のSubPathが用意されている場合に、ユーザによる音声切り替えや字幕切り替えという操作により、このPlayItemが参照するClipと1つ以上のSubPathが参照するClipの中から再生されるストリームを選ぶことができる仕組みが提供されるので、再生するAVストリームとは異なるストリームやデータファイルに対しても、インタラクティブな操作を行うことができる。
図26は、SubPath()のシンタクスを示す図である。
lengthは、このlengthフィールドの直後からSub Path ()の最後までのバイト数を示す32ビットの符号なし整数である。すなわち、reserved_for_future_useからSubPath()の最後までのバイト数を示すフィールドである。このlengthの後には、8ビットのreserved_for_future_useが用意される。SubPath_typeは、SubPathのアプリケーション種類を示す8ビットのフィールドである。SubPath_typeは、例えば、Sub Pathがオーディオであるか、ビットマップ字幕であるか、テキスト字幕であるかなどの種類を示す場合に利用される。このSubPath_typeの例については、図27を参照して後述する。
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が参照される。
図27は、SubPath_type(サブパスのタイプ)の例を説明する図である。
なお、「Out-of-mux」という記述は、サブパスで参照されるESが含まれるTSと、メインパスで参照されるESが含まれるTSとが異なっている場合のサブパスのタイプ(種類)、即ち、サブパスで参照されるESが、メインパスで参照されるプレイアイテムが含まれるTSに多重化されていないサブパスのタイプ(種類)であることを示している。以下、かかる種類を、メインパスTS非多重型のパスと称する。
そして、「In-mux」という記述は、サブパスで参照されるESが含まれるTSと、メインパスで参照される1以上のESが含まれるTSとが同一の場合のサブパスのタイプ(種類)、即ち、サブパスで参照されるESが、メインパスで参照されるESを含むTSに多重化されているサブパスのタイプ(種類)であることを示している。換言すれば、メインクリップに含まれるメインTSに、メインのClip AVストリームと、サブのClip AVストリームとが含まれている状態である。以下、かかる種類を、メインパスTS多重型のパスと称する。
また、メインパスで参照されるESとサブパスで参照されるESとが非同期である場合、そのサブパスのタイプ(種類)を、以下、非同期型のパスと称する。一方、メインパスで参照されるESとサブパスで参照されるESとが同期する場合、そのサブパスのタイプ(種類)を、以下、同期型のパスと称する。
SubPath_type=0,1は、reservedとされている。
SubPath_type=2は、Audio presentation path of the Browsable slideshow(プラウザブルスライドショーのオーディオプレゼンテーションパス)とされている。例えば、SubPath_type=2は、メインパスTS非多重型のパスであり、プレイリストの中において、サブパスで参照されるオーディオプレゼンテーションパスと、プレイアイテムで参照されるメインパスとが非同期である(非同期型のパスである)ことを示している。
SubPath_type=3は、Interactive graphics presentation menu(インタラクティブグラフィックスのプレゼンテーションメニュー)とされている。例えば、SubPath_type=3は、メインパスTS非多重型のパスであり、プレイリストの中において、サブパスで参照されるインタラクティブグラフィックスのメニューと、プレイアイテムで参照されるメインパスとが非同期(非同期型のパスである)であることを示している。
SubPath_type=4は、Text subtitle presentation path(テキスト字幕のプレゼンテーションパス)とされている。例えば、SubPath_type=4は、メインパスTS非多重型のパスであり、プレイリストの中において、サブパスで参照されるテキスト字幕のプレゼンテーションパスと、プレイアイテムで参照されるメインパスとが同期している(同期型のパスである)ことを示している。
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)のパスや、ピクチャインピクチャプレゼンテーションパスとされている。
ここで、ピクチャインピクチャプレゼンテーションパスとは、ピクチャインピクチャ手法において、所定のプライマリビデオストリーム(メインパスで参照されるビデオストリーム)に対応して再生される、プライマリオーディオストリームストリーム、セカンダリビデオストリーム、セカンダリオーディオストリーム、および、サブタイトルストリームのうちの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とされている。
即ち、SubPath_type=7は、メインパスTS多重型、かつ、同期型のパスであって、ピクチャインピクチャプレゼンテーションパス(1以上のESのパス)とされている。
そして、SubPath_type=8乃至255は予備(reserved)とされている。
図28は、SubPlayItem(i)のシンタクスを示す図である。
lengthは、このlengthフィールドの直後からSub playItem ()の最後までのバイト数を示す16ビットの符号なし整数である。
図28においては、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は、上述したように、図6と図7の場合(メイン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)である場合、すなわちマルチクリップの登録が行われている場合)について説明する。具体的には、図7に示されるように、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は共通して使われる。図7の例の場合、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である。
次に、図29は、図8乃至図28を用いて説明したデータ構造を有するデータ、すなわち、上述したメインパスとサブパスを有するPlayListを再生する再生装置1の構成を示すブロック図である。
コントローラ21は、予め用意されている制御プログラムを実行するか、または、ストレージドライブ22を制御して、例えば、光ディスクなどの記録媒体11に記録されている、または、ローカルストレージ24に記録されているナビゲーションプログラムを読み出し、メモリ23に展開して実行することで、再生装置1の全体の動作を制御する。例えば、コントローラ21は、記録媒体11が装着されたとき、または、所定の操作入力を受けた場合、所定のメニュー画面(GUI表示画面)を外部の表示装置に表示させることができる。
すなわち、コントローラ21は、光ディスクなどの記録媒体11、または、ローカルストレージ24に再生されるコンテンツ(PlayListおよびAVストリームなどで構成されたコンテンツ)とともに記録されているメニュー画面(GUI表示画面)の表示を制御するのみならず、記録媒体11、または、ローカルストレージ24に再生されるコンテンツのデータを基に、GUI表示画面に対応するデータを生成して、外部の表示装置に表示させることも可能である。コントローラ21により、GUI表示画面に対応するデータが生成されて、OSD30が制御され、表示画面に生成されたGUI表示画面を重畳させて表示させる処理についての詳細は、後述する。
ストレージドライブ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に記録されている、図4を用いて説明したデータをアップデートさせるデータがコンテンツとしてダウンロードされる。ローカルストレージ24は、サーバ3からネットワーク2経由でダウンロードしたコンテンツを記録することができる。
AVデコーダ部26は、ストレージドライブ22、または、ローカルストレージ24から供給されるAVストリーム、または、テキストデータをデコードし、得られたビデオ信号をOSD(On Screen Display)30に供給するとともに、オーディオ信号を外部の表示装置に出力する。
OSD30は、コントローラ21の制御に基づいて、供給されたビデオ信号を外部の表示装置に出力するか、または、供給されたビデオ信号に所定のメニュー画面(GUI表示画面)のデータを重畳して、生成された画像信号を、外部の表示装置に出力する。
表示装置においては、AVデコーダ部26によりデコードされた信号に基づいて、例えば、記録媒体11に記録されているコンテンツの出力(映像の表示、音声の出力)が行われる。
操作入力部29は、例えば、ボタン、キー、タッチパネル、ジョグダイヤル、マウスなどの入力デバイスや、所定のリモートコマンダから送信される赤外線などの信号を受信する受信部により構成され、ユーザの操作入力を取得し、コントローラ21に供給する。
また、コントローラ21には、必要に応じてドライブ27も接続されており、ドライブ27には、例えば、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disk-Read Only Memory),DVDを含む)、光磁気ディスク(MD(登録商標)(Mini-Disk)を含む)、もしくは半導体メモリなどよりなるリムーバブルメディア28が装着される。
最初に、コントローラ21がストレージドライブ22を介して、HDD、Blu−ray Disc(商標)、またはDVDなどの記録媒体11から、または、ローカルストレージ24から、PlayListファイルを読み出し、PlayListファイルの情報に基づいて、必要に応じて、GUI表示画面に対応するデータを生成するとともに、ストレージドライブ22を介して、HDD、Blu−ray Disc(商標)、またはDVDなどの記録媒体11から、または、ローカルストレージ24から、AVストリームやAVデータを読み出す。ユーザは、操作入力部29を用いて、コントローラ21に対し、音声や字幕などの切り替えの指令や、GUI表示画面の表示の指令などを行うことができる。また、コントローラ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に記憶されたものであってもよい。また、逆に、メインClip AVストリームファイルがHDDなどのローカルストレージ24に記憶されたものであり、サブClip AVストリームファイルが記録媒体11に記録されていてもよい。
また、コントローラ21は、メモリ23のレジスタに登録されている各種設定情報を参照して、自分自身(再生装置1)の再生機能に対応するエレメンタリストリームを選択し、再生するよう制御したり、再生装置1の言語設定の初期情報に対応するエレメンタリストリームを選択し、再生するよう制御する。
図30は、図29の再生装置1のAVデコーダ部26の構成例を示すブロック図である。
AVデコーダ部26には、スイッチ32、バッファ51乃至54、PIDフィルタ55、PIDフィルタ56、スイッチ57乃至59、PIDフィルタ60、バックグラウンドデコーダ71、1stビデオデコーダ72−1、2ndビデオデコーダ72−2、プレゼンテーショングラフィックスデコーダ73、インタラクティブグラフィックスデコーダ74、1stオーディオデコーダ75−1、2ndオーディオデコーダ75−2、Text-STコンポジション76、スイッチ77、プリロードバッファ81、バックグラウンドプレーン生成部91、1stビデオプレーン生成部92−1、2ndビデオプレーン生成部92−2、プレゼンテーショングラフィックスプレーン生成部93、インタラクティブグラフィックスプレーン生成部94、バッファ95、ビデオデータ処理部96、ミキシング処理部97、およびミキシング処理部101が設けられている。
1stビデオデコーダ72−1と2ndビデオデコーダ72−2は、ともにビデオストリームをデコードする。基本的には、STN_table()において、primary_video_stream_idで与えられるビデオストリームをデコードするためのものが1stビデオデコーダ72−1であり、Secondary_video_stream_idで与えられるビデオストリームをデコードするためのものが2ndビデオデコーダ72−2である。すなわち、再生装置1は、2つのビデオストリームをデコードするために、2つのビデオデコーダ(1stビデオデコーダ72−1、2ndビデオデコーダ72−2)を有している。また、1stビデオデコーダ72−1は、2ndビデオデコーダ72−2よりも優先的に使用されるビデオデコーダであるものとすることもできる。すなわち、デコードするビデオストリームが1つしかない場合、そのビデオストリームがメインClip AVストリームファイルに含まれるビデオストリームであっても、サブClip AVストリームファイルに含まれるビデオストリームであっても、1stビデオデコーダ72−1でデコードされるようにしてもよい。なお、以下において、1stビデオデコーダ72−1と2ndビデオデコーダ72−2とを個々に区別しない場合、ビデオデコーダ72と称する。
また、1stオーディオデコーダ75−1と2ndオーディオデコーダ75−2も、ともにオーディオストリームをデコードする。基本的には、STN_table()において、primary_audio_stream_idで与えられるオーディオストリームをデコードするためのものが1stオーディオデコーダ75−1であり、Secondary_audio_stream_idで与えられるオーディオストリームをデコードするためのものが2ndオーディオデコーダ75−2である。すなわち、再生装置1は、2つのオーディオストリームをデコードするために、2つのオーディオデコーダ(1stオーディオデコーダ75−1、2ndオーディオデコーダ75−2)を有している。また、1stオーディオデコーダ75−1は、2ndオーディオデコーダ75−2よりも優先的に使用されるオーディオデコーダであるものとすることもできる。すなわち、デコードするオーディオストリームが1つしかない場合、そのオーディオストリームがメインClip AVストリームファイルに含まれるオーディオストリームであっても、サブClip AVストリームファイルに含まれるオーディオストリームであっても、1stオーディオデコーダ75−1でデコードされるようにしてもよい。なお、以下において、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)またはローカルストレージ24から読み出すときに、それぞれのファイルを時分割に交互に読み出しても良いし、または、メインClipを読み出す前に、サブClip AVストリームファイルやテキストサブタイトルデータを予め読み出しておき、先行してバッファ(バッファ53またはバッファ54)へプリロードしてもよい。
そして、メインClip AVストリームファイル用リードバッファであるバッファ52から読み出されたストリームデータは、所定のタイミングで、後段のPID(パケットID)フィルタ55へ出力される。このPIDフィルタ55は、入力されたメインClip AVストリームファイルをPID(パケットID)に応じて、後段の各エレメンタリストリームのデコーダへ振り分けて出力する。すなわち、PIDフィルタ55は、ビデオストリームを1stビデオデコーダ72−1と2ndビデオデコーダ72−2への供給元となるPIDフィルタ60に供給し、プレゼンテーショングラフィックスストリームをプレゼンテーショングラフィックスデコーダ73への供給元となるスイッチ57に供給し、インタラクティブグラフィックスストリームをインタラクティブグラフィックスデコーダ74への供給元となるスイッチ58に供給し、オーディオストリームを1stオーディオデコーダ75−1と2ndオーディオデコーダ75−2への供給元となるスイッチ59に供給する。
なお、プレゼンテーショングラフィックスストリームは、上述したように、例えば、ビットマップの字幕データであり、テキストサブタイトルデータは、上述したように、例えば、テキスト字幕データである。
サブClip AVストリームファイル用リードバッファであるバッファ53から読み出されたストリームデータは、所定のタイミングで、後段のPID(パケットID)フィルタ56へ出力される。このPIDフィルタ56は、入力されたサブClip AVストリームファイルをPID(パケットID)に応じて、後段の各エレメンタリストリームのデコーダへ振り分けて出力する。すなわち、PIDフィルタ56は、ビデオストリームを1stビデオデコーダ72−1と2ndビデオデコーダ72−2への供給元となるPIDフィルタ60に供給し、プレゼンテーショングラフィックスストリームをプレゼンテーショングラフィックスデコーダ73への供給元となるスイッチ57に供給し、インタラクティブグラフィックスストリームをインタラクティブグラフィックスデコーダ74への供給元となるスイッチ58に供給し、オーディオストリームを1stオーディオデコーダ75−1と2ndオーディオデコーダ75−2への供給元となるスイッチ59に供給する。
また、PIDフィルタ60には、メインClip AV Streamのビデオストリーム、または、サブClip AV Streamのビデオストリームが、PIDフィルタ55またはPIDフィルタ56を介して入力されてくる。そこで、PIDフィルタ60は、入力されたビデオストリームを、そのPID(パケットID)に応じて、後段の1stビデオデコーダ72−1または2ndビデオデコーダ72−2に振り分けて出力する。即ち、PIDフィルタ60は、プライマリビデオストリームが入力された場合には、そのプライマリビデオストリームを1stビデオデコーダ72−1に供給する。これに対して、PIDフィルタ60は、セカンダリビデオストリームが入力された場合には、そのセカンダリビデオストリームを2ndビデオデコーダ72−2に供給する。
なお、ここでは、プライマリビデオストリームとして、メインClip AV Streamのビデオストリームのみが利用され、サブClip AV Streamのビデオストリームは利用されないとされている。ただし、将来、サブClip AV Streamのビデオストリームもプライマリビデオストリームとして利用され得ることも考慮して、PIDフィルタ56から供給されたサブClip AV Streamのビデオストリームも1stビデオデコーダ72に供給され得るように、PIDフィルタ60が構成されている。すなわち、Subpathにより指定されたサブClipに含まれるビデオストリームのみを再生し、ビデオストリームの再生にメインClipを使わず、オーディオストリームの再生は、サブClip、もしくは、メインClipを用いる場合である。
バックグラウンドイメージデータをバッファリングするバッファ51から読み出されたデータは、所定のタイミングでバックグラウンドデコーダ71に供給される。バックグラウンドデコーダ71は、バックグラウンドイメージデータをデコードし、デコードしたバックグラウンドイメージデータをバックグラウンドプレーン生成部91に供給する。
1stビデオデコーダ72−1は、ビデオストリームをデコードし、デコードしたビデオデータを1stビデオプレーン生成部92−1へ出力する。2ndビデオデコーダ72−2は、ビデオストリームをデコードし、デコードしたビデオデータを2ndビデオプレーン生成部92−2へ出力する。
スイッチ57は、PIDフィルタ55から供給されたメインClip AVストリームファイルに含まれるプレゼンテーショングラフィックスストリームと、PIDフィルタ56から供給されたサブClip AVストリームファイルに含まれるプレゼンテーショングラフィックスストリームのうちのいずれか1つを選択し、選択したプレゼンテーショングラフィックスストリームを、後段のプレゼンテーショングラフィックスデコーダ73に供給する。プレゼンテーショングラフィックスデコーダ73は、プレゼンテーショングラフィックスストリームをデコードし、デコードしたプレゼンテーショングラフィックスストリームのデータをプレゼンテーショングラフィックスプレーン生成部93への供給元となるスイッチ77に供給する。
また、スイッチ58は、PIDフィルタ55から供給されたメインClip AVストリームファイルに含まれるインタラクティブグラフィックスストリームと、PIDフィルタ56から供給されたサブClip AVストリームファイルに含まれるインタラクティブグラフィックスストリームのうちのいずれか1つを選択し、選択したインタラクティブグラフィックスストリームを、後段のインタラクティブグラフィックスストリームデコーダ74に供給する。インタラクティブグラフィックスデコーダ74は、インタラクティブグラフィックスストリームをデコードし、デコードしたインタラクティブグラフィックスストリームのデータを、プリロードバッファ81に供給する。
プリロード用バッファ81は、インタラクティブグラフィックスデコーダ74から供給されたインタラクティブグラフィックスストリームを一時記憶する。例えば、再生装置1が、一度に2つのTS(Transport stream)しか読み出せないという制限が課せられている場合などにおいて、再生装置1は、インタラクティブグラフィックスストリームを予め取得しておくことで(プリロードしておくことで)、ビデオストリームやオーディオストリームを再生するときに、プリロードしておいたインタラクティブグラフィックスストリームも同時再生することができる、といった機能を有している。かかる機能を実現するために、即ち、プリロードされたインタラクティブグラフィックスストリームを、ビデオストリームやオーディオストリームが再生されるタイミングまで保存しておくために、プリロード用バッファ81が設けられているのである。
プリロード用バッファ81に蓄積されたデコード済みのインタラクティブグラフィックスストリームは、所定のタイミングでインタラクティブグラフィックスプレーン生成部94に供給される。
さらに、スイッチ59は、PIDフィルタ55から供給されたメインClip AVストリームファイルに含まれるオーディオストリームと、PIDフィルタ56から供給されたサブClip AVストリームファイルに含まれるオーディオストリームを、後段の1stオーディオデコーダ75−1、または、2ndオーディオデコーダ75−2に供給する。具体的には、スイッチ59は、stream_entry()のtypeの値によって、その選択を切り替える。
1stオーディオデコーダ75−1は、オーディオストリームをデコードし、デコードしたオーディオストリームのデータをミキシング処理部101に供給する。また、2ndオーディオデコーダ75−2は、オーディオストリームをデコードし、デコードしたオーディオストリームのデータをミキシング処理部101に供給する。
ここで、2つのオーディオストリームを重畳して再生するような場合、1stオーディオデコーダ75−1によりデコードされたオーディオストリームと、2ndオーディオデコーダ75−2によりデコードされたオーディオストリームとが、ミキシング処理部101に供給される。
例えば、メインパスで参照される1stオーディオストリームとサブパスで参照される2ndオーディオストリームとを重畳して再生するような場合、1stオーディオデコーダ75−1によりデコードされたメインClip AVストリームファイルのオーディオストリームと、2ndオーディオデコーダ75−2によりデコードされたサブClip AVストリームファイルのオーディオストリームとが、ミキシング処理部101に供給される。
また、例えば、サブパスで参照される2本のオーディオストリームを重畳して再生するような場合、1stオーディオデコーダ75−1によりデコードされたサブClip AVストリームファイルのオーディオストリームと、2ndオーディオデコーダ75−2によりデコードされたサブClip AVストリームファイルのオーディオストリームとが、ミキシング処理部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ストリームファイルのいずれかから分離されたストリームである。したがって、プレゼンテーショングラフィックスプレーン生成部93へ同時に出力される字幕画像は、メインClip AVストリームファイルからのプレゼンテーショングラフィックスストリーム、またはサブClip AVストリームファイルからのからのプレゼンテーショングラフィックスストリーム、またはテキストサブタイトルデータのデコード出力である。
バックグラウンドプレーン生成部91は、バックグラウンドデコーダ71から供給されたバックグラウンドイメージデータに基づいて、例えば、ビデオ画像を縮小表示した場合や、ストリーム再生中以外に後述するGUI表示画面を表示する場合に壁紙画像となるバックグラウンドプレーンを生成し、これを、ビデオデータ処理部96に供給する。
1stビデオプレーン生成部92−1は、1stビデオデコーダ72−1から供給されたビデオデータに基づいて、ビデオプレーンを生成し、これをビデオデータ処理部96に供給する。2ndビデオプレーン生成部92−2は、2ndビデオデコーダ72−2から供給されたビデオデータに基づいて、ビデオプレーンを生成し、これをビデオデータ処理部96に供給する。
プレゼンテーショングラフィックスプレーン生成部93は、スイッチ77により選択され、供給されたデータ(プレゼンテーショングラフィックスストリームまたはテキストサブタイトルデータ)に基づいて、例えば、レンダリング画像であるプレゼンテーショングラフィックスプレーンを生成し、これをビデオデータ処理部96に供給する。
インタラクティブグラフィックスプレーン生成部94は、インタラクティブグラフィックスデコーダ74から供給されたインタラクティブグラフィックスストリームのデータに基づいて、インタラクティブグラフィックスプレーンを生成し、これをビデオデータ処理部96に供給する。
ビデオデータ処理部96は、バックグラウンドプレーン生成部91からのバックグラウンドプレーン、1stビデオプレーン生成部92−1からのビデオプレーン、2ndビデオプレーン生成部92−2からのビデオプレーン、プレゼンテーショングラフィックスプレーン生成部93からのプレゼンテーショングラフィックスプレーン、およびインタラクティブグラフィックスプレーン生成部94からのインタラクティブグラフィックスプレーンを合成し、ビデオ信号として出力する。
なお、ビデオデータ処理部96は、ピクチャインピクチャ表示が行われる場合、すなわち、1stビデオプレーン生成部92−1からのビデオプレーン、および、2ndビデオプレーン生成部92−2からのビデオプレーンの両方の入力を受けるとき、メイン画面(親画面)の中に、サブ画面(子画面)を有するピクチャインピクチャ表示画面(図31を用いて後述する)を生成する。
また、これらのスイッチ57乃至59、並びにスイッチ77は、操作入力部29を介するユーザからの選択に基づいて、または、対象となるデータが含まれるファイルが供給される側に、スイッチを切り替える。例えば、サブClip AVストリームファイルのみにしか、オーディオストリームが含まれていない場合、スイッチ59はサブClip AVストリームファイルを供給する側(PIDフィルタ56の出力)にスイッチを切り替える。
次に、再生装置1における再生処理について説明する。操作入力部29を用いてユーザにより所定のAVストリームの再生が指令されたとき、コントローラ21は、ストレージドライブ22を介して記録媒体11から、または、HDD(Hard Disk Drive)などで構成されるローカルストレージ24から、PlayListファイルに含まれるPlayList(PlayListに含まれるPlayItemおよびSubPlayItem)に基づいて、メインClip AVストリーム、サブClip AVストリーム、およびテキストサブタイトルデータ(Text-STデータ)を読み出して、AVデコーダ部26に供給する。
コントローラ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フィルタ55に出力し、バッファ54は、テキストサブタイトルデータをテキストサブタイトルコンポジション76に出力し、バッファ53は、サブClip AVストリームのストリームデータをPIDフィルタ56に出力する。
PIDフィルタ55は、ビデオストリームをPIDフィルタ60に供給し、プレゼンテーショングラフィックスストリームをプレゼンテーショングラフィックスデコーダ73への供給元となるスイッチ57に供給し、インタラクティブグラフィックスストリームをインタラクティブグラフィックスデコーダ74への供給元となるスイッチ58に供給し、オーディオストリームをスイッチ59に供給する。すなわち、ビデオストリーム、プレゼンテーショングラフィックスストリーム、インタラクティブグラフィックスストリーム、およびオーディオストリームには、それぞれ異なるPIDが付されている。
そして、PIDフィルタ56は、ビデオストリームをPIDフィルタ60に供給し、プレゼンテーショングラフィックスストリームをプレゼンテーショングラフィックスデコーダ73への供給元となるスイッチ57に供給し、インタラクティブグラフィックスストリームをインタラクティブグラフィックスデコーダ74への供給元となるスイッチ58に供給し、オーディオストリームをスイッチ59に供給する。
PIDフィルタ60は、プライマリビデオストリームが入力された場合には、そのプライマリビデオストリームを1stビデオデコーダ72−1に供給する。これに対して、PIDフィルタ60は、セカンダリビデオストリームが入力された場合には、そのセカンダリビデオストリームを2ndビデオデコーダ72−2に供給する。
そして、PIDフィルタ55およびPIDフィルタ56の後段のスイッチ57、および、スイッチ58は、コントローラ21からの制御に基づいて、メインClipとサブClipのいずれかを選択する。すなわち、スイッチ57は、PIDフィルタ55から供給されたメインClip AVストリームまたはサブClip AVストリームのプレゼンテーショングラフィックスストリームを選択し、後段のプレゼンテーショングラフィックスデコーダ73に供給する。また、スイッチ58は、PIDフィルタ55から供給されたメインClip AVストリームまたはサブClip AVストリームのインタラクティブグラフィックスストリームを選択し、後段のインタラクティブグラフィックスストリームデコーダ74に供給する。
さらに、スイッチ59は、オーディオの合成が行われない場合、PIDフィルタ55から供給されたメインClip AVストリーム、または、PIDフィルタ56から供給されたサブClip AVストリームのオーディオストリームのうちのいずれかを選択し、後段の1stオーディオデコーダ75−1に供給する。なお、音声を切り替えるような指令や、音声を合成するような指令がユーザにより行われた場合には、スイッチ59は、メインClip AVストリームのオーディオストリームを2ndオーディオデコーダ75−2に供給したり、サブClip AVストリームのオーディオストリームを1stオーディオデコーダ75−1や2ndオーディオデコーダ75−2に供給する。
そして、バックグラウンドデコーダ71は、バックグラウンドイメージデータをデコードし、これをバックグラウンドプレーン生成部91に出力し、1stビデオデコーダ72−1および2ndビデオデコーダ72−2は、ビデオストリームをデコードし、これを、それぞれ、1stビデオプレーン生成部92−1および2ndビデオプレーン生成部92−2に出力し、プレゼンテーショングラフィックスデコーダ73は、スイッチ57により選択され、供給されたプレゼンテーショングラフィックスストリームをデコードし、これを後段のスイッチ77に出力し、インタラクティブグラフィックスデコーダ74は、スイッチ58により選択され、供給されたインタラクティブグラフィックスストリームをデコードし、これを後段のインタラクティブグラフィックスプレーン生成部94に出力し、Text-STコンポジション76は、テキストサブタイトルデータをデコードし、これを後段のスイッチ77に出力する。
そして、1stオーディオデコーダ75−1は、スイッチ59により選択され、供給されたオーティオストリーム(プライマリオーディオストリーム)をデコードし、これを後段のミキシング処理部101に出力する。例えば、音声の切り替えがユーザにより指示されていない状態における再生処理では、2ndオーディオデコーダ75−2からオーディオデータが出力されることはないので、ミキシング処理部101は、1stオーディオデコーダ75−1から出力されたオーディオデータを、そのまま後段のミキシング処理部97に供給する。また、音声の合成がユーザにより指令されている状態においては、2ndオーディオデコーダ75−2は、スイッチ59により選択され、供給されたオーティオストリームをデコードし、これを後段のミキシング処理部101に出力する。ミキシング処理部101は、1stオーディオデコーダ75−1から出力されたオーディオデータと2ndオーディオデコーダ75−2から出力されたオーディオデータとを合成(ミキシング)し、後段のミキシング処理部97に供給する。
スイッチ77は、プレゼンテーショングラフィックスデコーダ73またはText-STコンポジション76からのデータのいずれかを選択し、選択したデータをプレゼンテーショングラフィックスプレーン生成部93に供給する。
バックグラウンドプレーン生成部91は、バックグラウンドデコーダ71から供給されたバックグラウンドイメージデータに基づいて、バックグラウンドプレーンを生成し、ビデオプレーン生成部92は、ビデオデコーダ72から供給されたビデオデータに基づいて、ビデオプレーンを生成し、プレゼンテーショングラフィックスプレーン生成部93は、スイッチ77により選択され、供給されたプレゼンテーショングラフィックスデコーダ73からのデータまたはText-STコンポジション76からのデータに基づいて、プレゼンテーショングラフィックスプレーンを生成し、インタラクティブグラフィックスプレーン生成部94は、インタラクティブグラフィックスデコーダ74から供給されたインタラクティブグラフィックスストリームのデータに基づいて、インタラクティブグラフィックスプレーンを生成する。
そして、ビデオデータ処理部96は、各プレーンのデータを合成し、ビデオデータとして出力する。
また、バッファ95は、供給されたサウンドデータをバッファリングし、所定のタイミングでミキシング処理部97に供給する。ミキシング処理部97は、オーディオデータ(ミキシング処理部101から出力されたオーディオデータ)とサウンドデータをミキシング(合成)し、出力する。
このような処理により、PlayListに含まれるメインパスとサブパスによりメインClip AVストリーム、サブClip AVストリーム、およびテキストサブタイトルデータが参照され、再生される。PlayListにメインパスとサブパスを設けるようにし、サブパスで、メインパスで指定するClip AVストリームファイルとは異なるClip AVストリームである、サブClip AVストリームを指定可能な構成としたので、メインパスのPlayItemが指すメインClipとは異なるClipであるサブClipに含まれるデータとメインClipに含まれるデータとを一緒に(同じタイミングで)再生することができる。
ところで、上述したように、本発明の再生装置1に装着される記録媒体11上、または、再生装置1のローカルストレージ24に記録されるデータのアプリケーションフォーマットは、PlayListとClipの2つのレイヤを有している。そして、PlayListは、1つ以上のPlayItemの並びによって(連続するPlayItemにより)作られるメインパス(Main Path)と、そのMain Pathに並行(並列)して、1つ以上のSubPlayItemの並びによって(非連続でもよいし、連続してもよいSubPlayItemにより)作られるサブパス(Sub Path)を1以上含むことができる。
このような構成を有するデータを、図29および図30を用いて説明した再生装置1において再生することにより、図31に示されるように、全画面(親画面)301と子画面302のそれぞれに別々のコンテンツを同時再生させる、といったピクチャインピクチャ手法を適用することが可能になる。
例えば、図31に示されるように、1画面のうちの、全画面301に、メインパスで参照されるAVストリーム(図31中、Primary Videoと記述されているビデオストリーム311、および、Primary Audioと記述されているオーディオストリーム312)に対応する映画本編等のコンテンツを再生させるとともに、全画面301に配置される子画面302に、サブパスで参照されるAVストリーム(図31中、Secondary Videoと記述されているビデオストリーム313、および、Secondary Audioと記述されているオーディオストリーム314)に対応する映画の監督のコメンタリー等、メインパスで参照されるAVストリームとは別のコンテンツを再生させる、といった手法を適用することが可能になる。
具体的には、ピクチャインピクチャは、例えば映画本編(Primary Video, Primary Audio)を全画面301に表示しているときに、監督のコメンタリー(Secondary Video, Secondary Audio)を子画面302に入れ子画面にして、必要に応じて、音声を合成し、同時に表示出力されるように再生するアプリケーションである。
なお、サブタイトルストリームの再生位置(字幕等の表示位置)は、特に子画面内である必要は無く、全画面のうちの何れの位置でもよい。このため、図31の例では、サブタイトルストリーム315は、子画面302からはみ出すように描画されている。
ユーザがピクチャインピクチャアプリケーションに関して許されているユーザオペレーションは、セカンダリビデオを表示するか否か、換言すれば、ピクチャインピクチャアプリケーションのon/offを指令するためのユーザオペレーションと、一つの区間に複数のセカンダリビデオが用意されている場合に、現在表示されているセカンダリビデオを他のセカンダリビデオに切り替えるユーザオペレーションである。また、セカンダリビデオが表示されている場合には、セカンダリオーディオのon/offおよび再生されるセカンダリオーディオの変更、並びに、ピクチャインピクチャ用の字幕のon/offおよび字幕の変更を指令するユーザオペレーションも許されている。
ピクチャインピクチャにおいて、子画面302として表示可能なSecondary Videoは、1つのPlayList中に複数定義することができる。例えば、1つのPlayList中に子画面302として表示可能なSecondary Videoを255個含めることができるようになされているなど、多数のピクチャインピクチャアプリケーションがPlayList中に定義されていた場合、ユーザが、そのコンテンツにおいて再生可能なピクチャインピクチャアプリケーションを把握することは困難である。
また、例えば、全画面301に表示されるPrimary Videoに対しては、従来行われてきたように、チャプタなどを用いて、特定のシーンを呼び出して再生させることなどができる。しかしながら、これに対して、全画面301に表示されるPrimary Videoの再生区間に対して、いずれの区間に、いずれのSecondary Videoが子画面302として再生可能なようになされているかをユーザが把握することは困難である。したがって、全画面301に表示されるPrimary Videoとともに子画面302に表示されるSecondary Videoの特定のシーンを呼び出す方法は提供されていない。
また、Secondary VideoおよびSecondary Audioは、Primary Videoの全ての再生区間に対して用意されているとは限らず、また、同一の再生区間に、複数のSecondary VideoおよびSecondary Audioが用意されている場合もある。また、Secondary Videoと、それに対応するSecondary Audioは、全てが所定のタイミングで再生されるのではなく、ユーザの所望のタイミングで再生される(非同期)のものも存在する。このため、例えば、再生開始時刻を指定することにより、Secondary Videoと、それに対応するSecondary Audioの特定のシーンを任意に呼び出すのは困難であった。
そこで、再生装置1においては、全画面301に表示されるPrimary Videoの再生区間に対して、いずれの区間に、いずれのSecondary Videoが子画面302として再生可能なようになされているかをユーザが把握することができるようなGUI表示画面を生成して表示する機能を有するものとする。
ユーザは、このGUI表示画面を参照することにより、Secondary Videoと、それに対応するSecondary Audioの特定のシーンを効率的に選択することが可能となる。
また、再生装置1は、全画面301に表示されるPrimary Videoの再生区間に対して、いずれの区間に、いずれのSecondary Videoが子画面302として再生可能なようになされているかをユーザが把握することができるようなGUI表示画面のみならず、例えば、Primary VideoとSecondary Videoとをユーザが明確に区別することなく、Primary VideoとSecondary Videoとのいずれかの特定のシーンを選択することができるようなGUI表示画面を生成して表示するようにしてもよい。
図32に、コントローラ21が有する機能のうち、このようなGUI表示画面を生成して表示する機能について説明するための機能ブロック図を示す。
なお、コントローラ21は、例えば、GUI表示画面を生成して表示する機能や、装着された記録媒体11またはローカルストレージ24に記録されているデータを再生する処理以外にも、さまざまな機能を有するものとしてもよいが、図32においては、GUI表示画面の生成および表示の制御、並びに、ストリームデータの再生の制御以外の機能については、省略する。
PlayList読み出し制御部351は、PlayListファイルを取得する。PlayList読み出し制御部351は、例えば、通常再生時においては、取得したPlayListファイルに含まれるPlayItemおよびSubPlayItemに基づいて、対応するClipのClip_Information_file_nameを検出し、ストリームデータ読み出し制御部354に供給する。また、PlayList読み出し制御部351は、例えば、上述したようなGUI表示画面を表示するために、取得したPlayListファイルを、PlayList解析部352に供給する。
PlayList解析部352は、供給されたPlayListファイルから、STN_table()を読み出し、STN_table()のstream_entryに基づいて、このPlayListファイルによって再生されるストリームに含まれるSecondary VideoおよびSecondary Audioに対応するref_to_Subpath_idを取得し、IN_time/OUT_time取得部356に供給する。
操作入力取得部353は、操作入力部29から供給されるユーザの操作入力を取得し、ストリームデータ読み出し制御部354、再生開始位置情報記憶制御部358、または、GUI表示制御部359に供給する。
ストリームデータ読み出し制御部354は、PlayList読み出し制御部351から供給されたClip_Information_file_nameを基に、対応するClipに含まれるストリームデータの読み出しと、AVデコーダ部26への供給を制御する。またストリームデータ読み出し制御部354は、操作入力取得部353から供給された、GUI表示画面を参照したユーザの操作入力を基に、再生開始位置情報記憶制御部358により記憶が制御されている再生開始位置に関する情報を参照し、対応するClipに含まれるストリームデータの読み出しと、AVデコーダ部26への供給を制御する。
再生制御部355は、ストリームデータ読み出し制御部354の制御に基づいて、AVデコーダ部26へ供給されたデータのデコードおよび再生出力を制御する。
IN_time/OUT_time取得部356は、PlayList解析部352から供給された、Secondary VideoおよびSecondary Audioに対応するref_to_Subpath_idを基に、対応するSubpathに含まれるSubPlayItemを抽出し、それらのSubPlayItem から、それぞれのSubPlayItem_IN_timeおよびSubPlayItem_Out_timeを取得し、GUI生成部357および再生開始位置情報記憶制御部358に供給する。
GUI生成部357は、IN_time/OUT_time取得部356から供給された、Secondary VideoおよびSecondary Audioに対応するそれぞれのSubPlayItem_IN_timeおよびSubPlayItem_Out_timeを基に、GUI表示画面に対応するデータを生成し、GUI表示制御部359に供給する。また、GUI生成部357は、必要に応じて、ストリームデータ読み出し制御部354により、Secondary Videoに対応するサムネイル画像の基となる画像データ(例えば、Secondary Video のストリームの先頭、すなわち、SubPlayItem_IN_timeに対応する部分のフレーム画像データや、その他のいずれかのフレーム画像データなど)を取得し、生成するGUI表示画面データに含ませるようにすることも可能である。また、GUI生成部357は、生成したGUI表示画面データに関する情報を、再生開始位置情報記憶制御部358に供給する。
再生開始位置情報記憶制御部358は、IN_time/OUT_time取得部356から供給された、Secondary VideoおよびSecondary Audioに対応するそれぞれのSubPlayItem_IN_timeおよびSubPlayItem_Out_time、並びに、GUI生成部357から供給されたGUI表示画面データに関する情報を基に、GUI表示画面において表現されているSecondary VideoおよびSecondary Audioと、それらの再生開始位置(SubPlayItem_IN_time)とを関連つけて記憶する。これにより、操作入力取得部353から、生成されたGUI表示画面を参照したユーザが行う操作入力に関する情報が取得された場合、ユーザが所望するSecondary VideoまたはSecondary Audioの少なくともいずれかをMainPathのPrimary VideoおよびPrimary Audioとともに再生させるための再生開始位置情報を抽出し、ストリームデータ読み出し制御部354に供給することができる。
GUI表示制御部359は、操作入力取得部353から供給されるユーザの操作入力に基づいて、GUI生成部357により生成されたGUI表示画面データの表示および表示の取り消しを制御する。具体的には、GUI表示制御部359は、OSD30を制御し、AVデコーダ部26から供給されたビデオ信号または画像信号への、GUI表示画面データの重畳を制御する。
図32に示されるような機能を有するコントローラ21は、再生装置1に記録媒体11が装着されるなどにより、記録媒体11またはローカルストレージ24に記録されているコンテンツの再生が可能な状態となったとき、GUI表示画面データを生成する。
すなわち、PlayList読み出し制御部351により読み出されたPlayListファイルが、PlayList解析部352により解析されて、このPlayListファイルによって再生されるストリームに含まれるSecondary VideoおよびSecondary Audioに対応するref_to_Subpath_idが取得され、IN_time/OUT_time取得部356により、対応するSubpathに含まれるSubPlayItemが抽出されて、それらのSubPlayItem から、それぞれのSubPlayItem_IN_timeおよびSubPlayItem_Out_timeが取得される。
GUI生成部357は、IN_time/OUT_time取得部356から供給された、Secondary VideoおよびSecondary Audioに対応するそれぞれのSubPlayItem_IN_timeおよびSubPlayItem_Out_time、必要に応じて、ストリームデータ読み出し制御部354により取得される、Secondary Videoに対応するサムネイル画像の基となる画像データ(例えば、Secondary Video のストリームの先頭、すなわち、SubPlayItem_IN_timeに対応する部分のフレーム画像データや、その他のいずれかのフレーム画像データなど)などを基に、GUI表示画面に対応するデータを生成し、GUI表示制御部359に供給する。
例えば、ユーザが、映画本編など、MainPathのPrimary VideoおよびPrimary Audioを再生中に、操作入力部19よりGUI表示画面の表示を指令すると、操作入力取得部353は、GUI表示画面の表示を指令するユーザの操作入力を取得し、GUI表示制御部359に、GUI表示画面の表示を制御させる。
そのとき、例えば、図33に示されるように、映画本編などが表示されている画面381の一部に、Primary Videoの再生区間に対して、いずれの区間に、いずれのSecondary Videoが子画面302として再生可能なようになされているかをユーザが把握することができるようなGUI表示画面391が表示される。
GUI表示画面391について、図34を参照して説明する。
GUI表示画面391には、例えば、MainMovie、すなわち、Primary Videoの再生区間全体に対応するメインタイムライン401と、メインタイムライン401上に、現在のPrimary Videoの再生位置を示すスライダ402が表示され、メインタイムライン401に対応付けて、Primary Videoの再生区間に対して、いずれの区間に、いずれのSecondary Videoが子画面302として再生可能であり、Secondary Audioが対応して再生されるかが分かるように、このPlayListファイルによって再生されるストリームに含まれるSecondary VideoまたはSecondary Audioに応じたサブタイムライン403(図34においては、サブタイムライン403−1乃至サブタイムライン403−5)が表示される。
そして、サブタイムライン403に対応付けられて、そのサブタイムライン403が対応付けられているストリームが、Secondary VideoまたはSecondary Audioのいずれであるかを示すためのアイコン404(図34においては、アイコン404-1乃至アイコン404-5)が表示されている。
また、例えば、ストリームデータ読み出し制御部354により、Secondary Videoに対応するサムネイル画像の基となる画像データ(例えば、Secondary Video のストリームの先頭、すなわち、SubPlayItem_IN_timeに対応する部分のフレーム画像データや、その他のいずれかのフレーム画像データなど)を取得し、アイコン404のうち、ビデオストリームに対応するアイコン404を、いわゆるサムネイル画像としてもよい。
また、ユーザの所望のタイミングで再生される(非同期の)Secondary VideoまたはSecondary Audioに対応するサブタイムライン403は、ユーザの所望のタイミングで再生される(非同期)であることがユーザに認識可能なように表示されると好適である。このようなサブタイムライン403は、例えば、メインタイムライン401に対して、再生先頭位置に対応するように表示されても良いし、メインタイムライン401に対応しない異なる位置に表示されるようにしても良い。
このようなGUI表示画面391を表示させることにより、ユーザは、全画面301において、現在本編のどこが再生されているかを認識することができるとともに、いずれの再生位置において、ピクチャインピクチャアプリケーションが何通り存在するか、または、非同期のピクチャインピクチャアプリケーションが何通り存在するかを、視覚的に容易に把握することが可能になる。
したがって、ユーザは、GUI表示画面391を参照することにより、セカンダリビデオを表示するか否かのユーザオペレーションを容易に実行することができる。また、ユーザは、更に、複数のピクチャインピクチャアプリケーションが存在しているか否かも容易に認識できるので、ピクチャインピクチャアプリケーションのon/offを指令するユーザオペレーションを容易に効率的に実行することができる。更に、GUI表示画面391は、ユーザによるForward Play/Backward Play操作にも役立つと考えられる。
また、ストリームデータ読み出し制御部354により、Secondary Videoに対応するサムネイル画像の基となる画像データ(例えば、Secondary Video のストリームの先頭、すなわち、SubPlayItem_IN_timeに対応する部分のフレーム画像データや、その他のいずれかのフレーム画像データなど)を取得して、サムネイル画像をサブタイムライン403とともに表示した場合、ユーザは、ピクチャインピクチャアプリケーションの内容を容易に認識することが可能となる。
なお、MainPathのPrimary VideoおよびPrimary Audioを再生していないときに、GUI表示画面391の表示が指令された場合、AVデコーダ部26から出力されるバックグラウンドプレーン、すなわち、いわゆる背景画像に対して、OSD30によりGUI表示画面391が重畳されて表示される。
そして、ユーザにより、サブタイムライン403またはアイコン404が選択された場合、再生開始位置情報記憶制御部358により記憶が制御されている再生開始位置情報が参照されて、ユーザが所望するSecondary VideoまたはSecondary Audioの少なくともいずれかが、MainPathのPrimary VideoおよびPrimary Audioとともに再生される。
なお、非同期のSecondary VideoまたはSecondary Audioに対応するサブタイムライン403またはアイコン404が選択された場合、例えば、MainPath先頭位置からのPrimary VideoおよびPrimary Audioとともに、ユーザが所望するSecondary VideoまたはSecondary Audioの少なくともいずれかが再生されるものとすることができる。
また、GUI生成部357は、ストリームデータ読み出し制御部354により、Secondary Videoに対応するサムネイル画像の基となる画像データを取得して、これを基にGUI表示画面を生成することが可能であるので、例えば、図35に示されるように、ピクチャインピクチャアプリケーション(Secondary VideoおよびSecondary Audio)とMainMovie(Primary VideoおよびPrimary Audio)とを詳細に区別する必要なくユーザが選択できるようなGUI表示画面421を生成し、表示するようにしても良い。
図35のGUI表示画面421には、例えば、MainMovieに対応するサムネイル画像411に加えて、ピクチャインピクチャのそれぞれに対応するサムネイル画像442(図35においては、サムネイル画像442-1乃至442-6)が表示される。
なお、MainPathのPrimary VideoおよびPrimary Audioが再生されているときに、図35を用いて説明したGUI表示画面421の表示が指令された場合、AVデコーダ部26から出力される画像信号(例えば、Primary Videoに字幕などが合成された画像信号)に対して、OSD30によりGUI表示画面421が重畳されて表示される。MainPathのPrimary VideoおよびPrimary Audioを再生していないときに、GUI表示画面421の表示が指令された場合、AVデコーダ部26から出力されるバックグラウンドプレーン、すなわち、いわゆる背景画像に対して、OSD30によりGUI表示画面421が重畳されて表示される。
このようなGUI表示画面421を参照したユーザは、ピクチャインピクチャアプリケーションがMainMovieに対して同期しているか否か、同期されている場合にはPlayList中でどの再生位置となるように定義されているかなどの詳細を知ることなく、所望のピクチャインピクチャアプリケーションの再生を指令することが可能となる。
この場合においても、ユーザにより、ピクチャインピクチャのそれぞれに対応するサムネイル画像442が選択された場合、再生開始位置情報記憶制御部358により記憶が制御されている再生開始位置情報が参照されて、ユーザが所望するSecondary VideoまたはSecondary Audioの少なくともいずれかが、MainPathのPrimary VideoおよびPrimary Audioとともに再生される。
また、同様にして、非同期のSecondary VideoまたはSecondary Audioに対応する、ピクチャインピクチャのそれぞれに対応するサムネイル画像442が選択された場合、例えば、MainPath先頭位置からのPrimary VideoおよびPrimary Audioとともに、ユーザが所望するSecondary VideoまたはSecondary Audioの少なくともいずれかが再生されるものとすることができる。
すなわち、再生開始位置情報記憶制御部358は、IN_time/OUT_time取得部356から、Secondary VideoおよびSecondary Audioに対応するそれぞれのSubPlayItem_IN_timeおよびSubPlayItem_Out_timeの情報の供給を受けるとともに、GUI生成部357から、GUI表示画面データに関する情報の供給を受ける。そして、再生開始位置情報記憶制御部358は、これらの情報を基に、GUI表示画面において、いずれかのサブタイムライン403、アイコン404、または、サムネイル画像442として表現されているそれぞれのSecondary VideoおよびSecondary Audioと、それらの再生開始位置(SubPlayItem_IN_time)とが関連つけて記憶されるように制御を行っているので、ストリームデータ読み出し制御部354は、この情報を基に、ユーザが所望するピクチャインピクチャ表示における再生開始を指令することが可能となる。
具体的には、図33および図34を用いて説明したGUI表示画面391、または、図35を用いて説明したGUI表示画面421がAVデコーダ部26から出力される画像信号または背景画像などに重畳されて表示されているときに、ユーザにより、いずれかのサブタイムライン403、アイコン404、または、サムネイル画像442を選択する操作入力を受けた場合、操作入力取得部353は、サブタイムライン403、アイコン404、または、サムネイル画像442のうちのいずれが選択されたかを示す情報を再生開始位置情報記憶制御部358に供給する。
再生開始位置情報記憶制御部358は、ユーザが所望するSecondary VideoまたはSecondary Audioの少なくともいずれかをMainPathのPrimary VideoおよびPrimary Audioとともに再生させるための再生開始位置情報を抽出し、ストリームデータ読み出し制御部354に供給する。
ストリームデータ読み出し制御部354は、操作入力取得部353から供給された、GUI表示画面を参照したユーザの操作入力と、再生開始位置情報記憶制御部358から供給された再生開始位置情報を基に、対応するClipに含まれるPrimary VideoおよびPrimary Audio、並びに、Secondary Video、および、必要に応じてSecondary Audioのストリームデータの読み出しを制御するとともに、読み出したストリームデータのAVデコーダ部26への供給を制御する。
再生制御部355は、ストリームデータ読み出し制御部354の制御に基づいて、AVデコーダ部26へ供給されたデータのデコード、合成、および再生出力を制御する。そして、ピクチャインピクチャ表示で、ユーザが指定した位置から、コンテンツの再生が開始される。
次に、図36のフローチャートを参照して、再生装置1において実行される再生処理について説明する。
ステップS1において、PlayList読み出し制御部351は、記録媒体11が装着されたか否かを判断する。ステップS1において、記録媒体11が装着されたと判断されなかった場合、記録媒体11が装着されたと判断されるまで、ステップS1の処理が繰り返される。
ステップS1において、記録媒体11が装着されたと判断された場合、ステップS2において、図37を用いて後述するGUI表示準備処理が実行される。
ステップS3において、操作入力取得部353は、ストリームの再生を指令する操作入力を取得したか否かを判断する。ステップS3において、ストリームの再生を指令する操作入力は取得されていないと判断された場合、処理は、後述するステップS6に進む。
ステップS3において、ストリームの再生を指令する操作入力を取得したと判断された場合、ステップS4において、PlayList読み出し制御部351は、装着された記録媒体11からPlayListファイルを読み出し、取得したPlayListファイルに含まれるPlayItemおよびSubPlayItemに基づいて、対応するClipのClip_Information_file_nameを検出し、ストリームデータ読み出し制御部354に供給する。
ステップS5において、ストリームデータ読み出し制御部354は、PlayList読み出し制御部351から供給されたPlayListのClip_Information_file_nameを基に、対応するClipに含まれるストリームデータの読み出しと、AVデコーダ部26への供給を制御する。再生制御部355は、AVデコーダ部26へ供給されたデータのデコードおよび再生出力を制御する。
ステップS3において、ストリームの再生を指令する操作入力は取得されていないと判断された場合、または、ステップS5の処理の終了後、ステップS6において、操作入力取得部353は、GUI表示が指令されたか否かを判断する。ステップS6において、GUI表示が指令されていないと判断された場合、処理は、後述するステップS13に進む。
ステップS6において、GUI表示が指令されたと判断された場合、ステップS7において、GUI表示制御部359は、ステップS2のGUI表示準備処理において生成されたGUIの表示を制御する。
ステップS8において、操作入力取得部353は、いずれかのSubPlayItemに対応するサムネイル等(いずれかのサブタイムライン403、アイコン404、または、サムネイル画像442)を選択する操作入力を受けたか否かを判断する。ステップS8において、いずれかを選択する操作入力を受けていないと判断された場合、処理は、後述するステップS11に進む。
ステップS8において、いずれかを選択する操作入力を受けたと判断された場合、ステップS9において、操作入力取得部353は、サブタイムライン403、アイコン404、または、サムネイル画像442のうちのいずれが選択されたかを示す情報を再生開始位置情報記憶制御部358に供給する。再生開始位置情報記憶制御部358は、ユーザが所望するSecondary VideoまたはSecondary Audioの少なくともいずれかをMainPathのPrimary VideoおよびPrimary Audioとともに再生させるための再生開始位置情報を抽出し、ストリームデータ読み出し制御部354に供給する。ストリームデータ読み出し制御部354は、対応する再生開始位置を示す情報を取得する。
ステップS10において、ストリームデータ読み出し制御部354は、再生開始位置情報記憶制御部358から取得した対応する再生開始位置を示す情報を基に、対応するClipに含まれるストリームデータの読み出しと、AVデコーダ部26への供給を制御する。再生制御部355は、AVデコーダ部26へ供給されたデータのデコードおよび再生出力、すなわち、所定の再生開始位置からのピクチャインピクチャアプリケーションの再生を制御する。
なお、Subpath_type=6の場合には、サブパスはメインパスに対して非同期であるが、サブパス、すなわち、子画面に対応するsecondary videoおよびsecondary audioは、SubPlayItem_IN_timeおよびSubPlayItem_Out_timeのそのままの値に基づいて、ストリームの読み出しが制御され、全画面に対応するprimary videoおよびprimary audioは、そのPlayListにより再生される先頭位置からの読み出しが制御されて、それぞれが合成されて再生される。
ステップS8において、いずれかを選択する操作入力を受けていないと判断された場合、ステップS11において、操作入力取得部353は、GUIの表示の終了が指令されたか否かを判断する。ステップS11において、GUIの表示の終了が指令されていないと判断された場合、処理は、ステップS6に戻り、それ以降の処理が繰り返される。
ステップS11において、GUIの表示の終了が指令されたと判断された場合、ステップS12において、GUI表示制御部359は、ステップS6において表示されたGUIの表示を終了する。
ステップS10またはステップS12の処理の終了後、ステップS13において、操作入力取得部353は、処理の終了が指令されたか否かを判断する。ステップS13において、処理の終了が指令されていないと判断された場合、処理は、ステップS6に戻り、それ以降の処理が繰り返される。ステップS13において、処理の終了が指令されたと判断された場合、処理が終了される。
このような処理により、GUI表示画面が表示されるので、ユーザは、複数のピクチャインピクチャアプリケーションの内容やメインストリームに対する再生位置などを、容易に明確に認識することができる。そして、GUI表示画面を参照したユーザの操作入力を基に、ユーザが所望するピクチャインピクチャ表示の再生を開始させることが可能となる。
次に、図37のフローチャートを参照して、図36のステップS2において実行されるGUI表示準備処理について説明する。
ステップS41において、PlayList読み出し制御部351は、装着された記録媒体11に記録されているPlayListファイルを読み出し、PlayList解析部352に供給する。
ステップS42において、PlayList解析部352は、供給されたPlayListに含まれるそれぞれのPlayItemを確認し、STN_tableを取得する。
ステップS43において、PlayList解析部352は、供給されたPlayListによって再生可能なストリームにSecondary AudioまたはSecondary Videoが存在するか否かを判断する。ステップS43において、Secondary AudioまたはSecondary Videoが存在しないと判断された場合、処理は、図36のステップS2に戻り、ステップS3に進む。
ステップS43において、Secondary AudioまたはSecondary Videoが存在すると判断された場合、ステップS44において、PlayList解析部352は、STN_tableのstream_entryから、Secondary Audio、Secondary Videoに対応するref_to_SubPath_idを取得し、IN_time/OUT_time取得部356に供給する。
ステップS45において、IN_time/OUT_time取得部356は、ステップS44において取得されたref_to_SubPath_idに対応する未処理のSubPathのうちの一つを選択する。
ステップS46において、IN_time/OUT_time取得部356は、選択されたSubPathは、SubPath_type=5であるか否かを判断する。ステップS46において、SubPath_type=5であると判断された場合、処理は、後述するステップS50に進む。
ステップS46において、SubPath_type=5ではないと判断された場合、ステップS47において、IN_time/OUT_time取得部356は、選択されたSubPathは、SubPath_type=6であるか否かを判断する。
ステップS47において、SubPath_type=6であると判断された場合、ステップS48において、IN_time/OUT_time取得部356は、非同期のサブパスをメインストリームの最初の位置に対応つけるため、すなわち、図33および図34を用いて説明したGUI表示画面391において、対応するサブタイムライン403をメインタイムライン401の先頭に対応つけて表示させたり、図35を用いて説明したGUI表示画面421の対応するサムネイルが選択された場合のメインムービーの再生開始位置をストリームの先頭とするため、SubplayItem_IN_time´=0とし、SubPlayItem_OUT_time´=SubPlayItem_OUT_time−SubplayItem_IN_timeとし、GUI生成部357および再生開始位置情報記憶制御部358に供給する。
ステップS47において、SubPath_type=6ではない、すなわち、SubPath_type=7であると判断された場合、または、ステップS48の処理の終了後、ステップS49において、GUI生成部357は、Secondary VideoおよびSecondary Audioに対応するそれぞれのSubPlayItem_IN_timeおよびSubPlayItem_Out_timeを基に、対応するメインタイムライン401、サブタイムライン403、または、アイコン404など、もしくは、サムネイル441またはサムネイル442等のデータを生成する。ステップS49の処理の終了後、処理は、後述するステップS52に進む。
ステップS46において、SubPath_type=5であると判断された場合、ステップS50において、IN_time/OUT_time取得部356は、PlayList解析部352から供給された、Secondary VideoおよびSecondary Audioに対応するref_to_Subpath_idを基に、対応するSubpathに含まれるSubPlayItemを抽出してストリームを解析する。具体的には、IN_time/OUT_time取得部356は、それらのSubPlayItem から、それぞれのSubPlayItem_IN_timeおよびSubPlayItem_Out_timeを取得するとともに、STN_tableを基に、それらのストリームがsecondary audioであるか、secondary videoであるかなどのストリームの種類を検出し、これらの情報をGUI生成部357および再生開始位置情報記憶制御部358に供給する。
ステップS51において、GUI生成部357は、IN_time/OUT_time取得部356から供給された、Secondary VideoおよびSecondary Audioに対応するそれぞれのSubPlayItem_IN_timeおよびSubPlayItem_Out_time、並びに、その他の解析データを基に、対応するメインタイムライン401、サブタイムライン403、または、アイコン404など、もしくは、サムネイル441またはサムネイル442等のデータを生成する。
ステップS49またはステップS51の処理の終了後、ステップS52において、IN_time/OUT_time取得部356は、全てのSubPathについて処理が終了したか否かを判断する。ステップS52において、全てのSubPathについて処理が終了していないと判断された場合、処理は、ステップS45に戻り、それ以降の処理が繰り返される。
ステップS52において、全てのSubPathについて処理が終了したと判断された場合、ステップS53において、GUI生成部357は、GUI表示画面391またはGUI表示画面421に対応するデータを生成し、GUI表示制御部359に供給するとともに、生成したGUI表示画面データに関する情報を、再生開始位置情報記憶制御部358に供給する。
ステップS54において、再生開始位置情報記憶制御部358は、IN_time/OUT_time取得部356から供給された、Secondary VideoおよびSecondary Audioに対応するそれぞれのSubPlayItem_IN_timeおよびSubPlayItem_Out_time、並びに、GUI生成部357から供給されたGUI表示画面データに関する情報を基に、GUI表示画面において表現されているSecondary VideoおよびSecondary Audioのそれぞれのサムネイル等と、それらの再生開始位置(SubPlayItem_IN_time)とを関連つけて記憶し、処理は、図36のステップS2に戻り、ステップS3に進む。
このような処理により、再生装置1において再生される複数のパスにより再生されるストリームのデータが解析されて、複数のパスのうちの特に副の再生パスにより再生されるSecondary VideoまたはSecondary Audioの再生位置やその内容を示すGUI表示画面が生成される。
具体的には、例えば、全画面301において、現在本編のどこが再生されているかを認識することができるとともに、いずれの再生位置において、ピクチャインピクチャアプリケーションが何通り存在するか、または、非同期のピクチャインピクチャアプリケーションが何通り存在するかを、視覚的に容易に把握することが可能なGUI表示画面(例えば、図33および図34を用いて説明したGUI表示画面391)や、ピクチャインピクチャアプリケーションがMainMovieに対して同期しているか否か、同期されている場合にはPlayList中でどの再生位置となるように定義されているかなどの詳細を知ることなく、所望のピクチャインピクチャアプリケーションの再生を指令することが可能となるようなGUI表示画面(例えば、図35を用いて説明したGUI表示画面421)が生成される。
このようなGUI表示画面を参照することにより、ユーザは、再生可能なピクチャインピクチャアプリケーションについて、視覚的に明確に認識することが可能となる。
また、このようなGUI表示画面を参照することにより、ユーザは、所望のピクチャインピクチャアプリケーションの再生を指令することが可能となる。
次に、図38および図39を参照して、再生装置1において再生可能なデータが記録された記録媒体11の製造方法について、記録媒体11がディスク状の記録媒体だった場合を例として説明する。
即ち、図38に示すように、例えばガラスなどよりなる原盤が用意され、その上に、例えばフォトレジストなどよりなる記録材料が塗布される。これにより、記録用原盤が製作される。
そして、図39に示すように、ソフト製作処理部において、符号化装置(ビデオエンコーダ)で符号化された、再生装置1において再生可能な形式のビデオデータが、一時バッファに記憶され、オーディオエンコーダで符号化されたオーディオデータが、一時バッファに記憶されるとともに、更に、データエンコーダで符号化された、ストリーム以外のデータ(例えば、Indexes、PlayList、PlayItemなど)が一時バッファに記憶される。それぞれのバッファに記憶されたビデオデータ、オーディオデータ、および、ストリーム以外のデータは、多重化器(MPX)で同期信号と共に多重化され、誤り訂正符号回路(ECC)でエラー訂正用のコードが付加される。そして、変調回路(MOD)で所定の変調がかけられ、所定のフォーマットにしたがって、例えば磁気テープなどに一旦記録され、再生装置1において再生可能な記録媒体11に記録されるソフトウェアが製作される。
このソフトウェアを必要に応じて編集(プリマスタリング)し、光ディスクに記録すべきフォーマットの信号が生成される。そして、図38に示すように、この記録信号に対応して、レーザビームが変調されて、このレーザビームが原盤上のフォトレジスト上に照射される。これにより、原盤上のフォトレジストが記録信号に対応して露光される。
その後、この原盤を現像し、原盤上にピットを出現させる。このようにして用意された原盤に、例えば電鋳等の処理を施し、ガラス原盤上のピットを転写した金属原盤を製作する。この金属原盤から、さらに金属スタンパを製作し、これを成形用金型とする。
この成形用金型に、例えばインジェクションなどによりPMMA(アクリル)またはPC(ポリカーボネート)などの材料を注入し、固定化させる。あるいは、金属スタンパ上に2P(紫外線硬化樹脂)などを塗布した後、紫外線を照射して硬化させる。これにより、金属スタンパ上のピットを、樹脂よりなるレプリカ上に転写することができる。
このようにして生成されたレプリカ上に、反射膜が、蒸着あるいはスパッタリングなどにより形成される。あるいはまた、生成されたレプリカ上に、反射膜が、スピンコートにより形成される。
その後、このディスクに対して内外径の加工が施され、2枚のディスクを張り合わせるなどの必要な処置が施される。さらに、ラベルを貼り付けたり、ハブが取り付けられて、カートリッジに挿入される。このようにして再生装置1によって再生可能なデータが記録された記録媒体11が完成する。
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウェアにより実行させることもできる。この場合、上述した処理は、図40に示されるようなパーソナルコンピュータ500により実行される。
図40において、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にインストールされる。
一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、ネットワークやプログラム格納媒体からインストールされる。
このプログラム格納媒体は、図40に示されるように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されているリムーバブルメディア521よりなるパッケージメディアにより構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM502や記憶部508が含まれるハードディスクなどで構成される。
なお、本明細書において、コンピュータプログラムを記述するステップは、記載された順序に従って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、ドライブ510は、装着されたリムーバブルメディア521に記録されたデータを読み出すことができるのみならず、装着されたリムーバブルメディア521にデータを記録することができる。そして、パーソナルコンピュータ500が、図39を用いて説明したソフト製作処理部と同様の機能を有する(例えば、CPU501を用いて、ソフト製作処理部と同様の機能を実現するためのプログラムを実行する)ことが可能であるのは言うまでもない。
すなわち、パーソナルコンピュータ500は、図39を用いて説明したソフト制作処理部により生成されたデータと同様のデータを、CPU501の処理により生成するか、または、外部の装置で生成された図39を用いて説明したソフト制作処理部により生成されたデータと同様のデータを、通信部509またはドライブ510に装着されたリムーバブルメディア521を介して取得することができる。そして、パーソナルコンピュータ500は、生成または取得された図39を用いて説明したソフト制作処理部により生成されたデータと同様のデータを、ドライブ510に装着されたリムーバブルメディア521に記録する記録装置としての機能を実現することができる。
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
1 再生装置, 11 記録媒体, 21 コントローラ, 26 AVデコーダ部, 30 OSD, 32 スイッチ, 33 AVデコーダ部, 34 コントローラ, 51乃至54 バッファ, 55,56 PIDフィルタ, 57乃至59 スイッチ, 71 バックグラウンドデコーダ, 72 ビデオデコーダ, 73 プレゼンテーショングラフィックスデコーダ, 74 インタラクティブグラフィックスデコーダ, 75 オーディオデコーダ, 76 Text-STコンポジション, 77 スイッチ, 91 バックグラウンドプレーン生成部, 92 ビデオプレーン生成部, 93 プレゼンテーショングラフィックスプレーン生成部, 94 インタラクティブグラフィックスプレーン生成部, 95 バッファ 96 ビデオデータ処理部, 97 ミキシング処理部, 101 ミキシング処理部, 351 PlayList読み出し制御部, 352 PlayList解析部, 353 操作入力取得部353, 354 ストリームデータ読み出し制御部, 355 再生制御部, 356 IN_time/OUT_time取得部, 357 GUI生成部, 358 再生開始位置情報記憶制御部, 359 GUI表示制御部, 391 GUI表示画面, 401 メインタイムライン, 402 スライダ, 403 サブタイムライン, 404 アイコン, 421 GUI表示画面, 441,442 サムネイル画像