以下に本発明の実施の形態を説明するが、本発明の構成要件と、発明の詳細な説明に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、発明の詳細な説明に記載されていることを確認するためのものである。従って、発明の詳細な説明中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
本発明の第1の側面の再生装置は、少なくとも1つのストリームを含むメインストリームと、前記メインストリームとは異なるサブストリームの再生を制御するための再生管理情報(例えば、プレイリスト)を取得する取得手段(例えば、図35のコントローラ34)と、前記取得手段により取得された前記再生管理情報を基に、再生される前記メインストリームおよび前記サブストリームを読み出す読み出し手段(例えば、図35のストレージドライブ31)と、前記取得手段により取得された前記再生管理情報を基に、前記読み出し手段により読み出された前記メインストリームの映像と、前記サブストリームの映像とを合成する映像合成手段(例えば、図35のビデオプレーン生成部92)とを備え、前記再生管理情報は、前記メインストリームの映像と合成される前記サブストリームの映像の表示位置、大きさ、および透明度に関する情報を含む表示状態に関する情報(例えば、pip_metadata)を含む、前記メインストリーム、前記サブストリームが含まれるファイルとは異なるファイルであり、前記映像合成手段は、前記再生管理情報に含まれる前記表示状態に関する情報を基に、前記透明度に関する情報が、前記サブストリームの映像に透過処理を施すことを示している場合、前記大きさに関する情報に応じた大きさに調整された前記サブストリームの映像に対して、前記透明度に関する情報に応じた前記透過処理を施すとともに、前記透過処理を施すことにより得られた前記サブストリームの映像を、前記メインストリームの映像上の前記表示位置に関する情報に応じた位置に配置して、前記メインストリームの映像と、前記サブストリームの映像とを合成する。
本発明の第1の側面の再生方法は、メインストリームおよびサブストリームを再生する再生装置(例えば、図35の再生装置20)の再生方法において、少なくとも1つのストリームを含むメインストリームと、前記メインストリームとは異なるサブストリームの再生を制御するための再生管理情報(例えば、プレイリスト)であって、前記メインストリーム、前記サブストリームが含まれるファイルとは異なるファイルである前記再生管理情報を読み出し(例えば、図36のステップS1の処理)、読み出された前記再生管理情報を基に、再生される前記メインストリームおよび前記サブストリームを読み出し(例えば、図40のステップS101の処理)、前記再生管理情報に含まれる、前記メインストリームの映像と合成される前記サブストリームの映像の表示位置、大きさ、および透明度に関する情報を含む表示状態に関する情報(例えば、pip_metadata)を基に、前記透明度に関する情報が、前記サブストリームの映像に透過処理を施すことを示している場合、前記大きさに関する情報に応じた大きさに調整された前記サブストリームの映像に対して、前記透明度に関する情報に応じた前記透過処理を施すとともに、前記透過処理を施すことにより得られた前記サブストリームの映像を、前記メインストリームの映像上の前記表示位置に関する情報に応じた位置に配置して、読み出された前記メインストリームの映像と、前記サブストリームの映像とを合成する(例えば、図42のステップS122の処理)ステップを含む。
本発明の第1の側面のプログラムおよびプログラム格納媒体に格納されているプログラムは、少なくとも1つのストリームを含むメインストリームと、前記メインストリームとは異なるサブストリームの再生を制御するための再生管理情報(例えば、プレイリスト)であって、前記メインストリーム、前記サブストリームが含まれるファイルとは異なるファイルである前記再生管理情報を読み出し(例えば、図36のステップS1の処理)、読み出された前記再生管理情報を基に、再生される前記メインストリームおよび前記サブストリームを読み出し(例えば、図40のステップS101の処理)、前記再生管理情報に含まれる、前記メインストリームの映像と合成される前記サブストリームの映像の表示位置、大きさ、および透明度に関する情報を含む表示状態に関する情報を基に、前記透明度に関する情報(例えば、pip_metadata)が、前記サブストリームの映像に透過処理を施すことを示している場合、前記大きさに関する情報に応じた大きさに調整された前記サブストリームの映像に対して、前記透明度に関する情報に応じた前記透過処理を施すとともに、前記透過処理を施すことにより得られた前記サブストリームの映像を、前記メインストリームの映像上の前記表示位置に関する情報に応じた位置に配置して、読み出された前記メインストリームの映像と、前記サブストリームの映像とを合成する(例えば、図42のステップS122の処理)ステップを含む処理をコンピュータに実行させる。
以下、図を参照して、本発明の実施の形態について説明する。
図1は、本発明を適用した再生装置20(図35を参照して後述する)に装着される記録媒体上のアプリケーションフォーマットの例を示す図である。記録媒体は、後述する光ディスクの他、磁気ディスクや半導体メモリであってもよい。
アプリケーションフォーマットは、AV(Audio Visual)ストリームの管理のために、PlayList(プレイリスト)とClip(クリップ)の2つのレイヤを有している。ここでは、1つのAVストリームとそれに付随する情報であるClipインフォメーションのペアを1つのオブジェクトと考え、それらをまとめてClipと称する。以下、AVストリームをAVストリームファイルとも称する。また、ClipインフォメーションをClipインフォメーションファイルとも称する。
一般的に、コンピュータなどで用いられるファイルはバイト列として扱われるが、AVストリームファイルのコンテンツは時間軸上に展開され、Clipのアクセスポイントは、主に、タイムスタンプでPlayListにより指定される。すなわち、PlayListとClipは、AVストリームの管理のためのレイヤである。
Clip中のアクセスポイントがタイムスタンプでPlayListにより示されている場合、Clip Informationファイルは、タイムスタンプから、AVストリームファイル中のデコードを開始すべきアドレス情報を見つけるために使用される。
PlayListは、AVストリームの再生区間の集まりである。あるAVストリーム中の1つの再生区間はPlayItemと呼ばれ、それは、時間軸上の再生区間のIN点(再生開始点)とOUT点(再生終了点)のペアで表される。従って、PlayListは、図1に示されるように1つ、または複数のPlayItemにより構成される。
図1において、左から1番目のPlayListは2つのPlayItemから構成され、その2つのPlayItemにより、左側のClipに含まれるAVストリームの前半部分と後半部分がそれぞれ参照されている。また、左から2番目のPlayListは1つのPlayItemから構成され、それにより、右側のClipに含まれるAVストリーム全体が参照されている。さらに、左から3番目のPlayListは2つのPlayItemから構成され、その2つのPlayItemにより、左側のClipに含まれるAVストリームのある部分と、右側のClipに含まれるAVストリームのある部分がそれぞれ参照されている。
例えば、図1のディスクナビゲーションプログラムにより、そのときの再生位置を表す情報として、左から1番目のPlayListに含まれる左側のPlayItemが指定された場合、そのPlayItemが参照する、左側のClipに含まれるAVストリームの前半部分の再生が行われる。このように、PlayListは、AVストリームファイルの再生を管理するための再生管理情報として用いられる。
ディスクナビゲーションプログラムは、PlayListの再生の順序や、PlayListのインタラクティブな再生をコントロールする機能を有する。また、ディスクナビゲーションプログラムは、各種の再生の実行をユーザが指示するためのメニュー画面を表示する機能なども有する。このディスクナビゲーションプログラムは、例えば、Java(登録商標)などのプログラミング言語で記述され、記録媒体上に用意される。
本実施の形態では、PlayListの中で、1つ以上のPlayItemの並びによって(連続するPlayItemにより)作られる再生パスをメインパス(Main Path)と称し、PlayListの中で、Main Pathに平行(並列)して、1つ以上のSubPlayItemの並びによって(非連続でもよいし、連続してもよいSubPlayItemにより)作られる再生パスをサブパス(Sub Path)と称する。すなわち、再生装置20(図35を参照して後述する)に装着される記録媒体上のアプリケーションフォーマットは、メインパスに関連付けられて(合わせて)再生されるサブパス(Sub Path)をPlayListの中に持つ。
図2は、メインパスとサブパスの構造を説明する図である。PlayListは、1つのメインパスと1つ以上のサブパスを持つことができる。1つのメインパスは、1つ以上のPlayItemの並びによって作られ、1つのサブパスは、1つ以上のSubPlayItemの並びによって作られる。
図2の例の場合、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が参照するClipAVストリームファイルには、少なくともビデオストリームデータ(メイン画像データ)が含まれる。また、ClipAVストリームファイルには、ClipAVストリームファイルに含まれるビデオストリーム(メイン画像データ)と同じタイミングで(同期して)再生されるオーディオストリームが1つ以上含まれてもよいし、含まれなくてもよい。さらに、ClipAVストリームファイルには、ClipAVストリームファイルに含まれるビデオストリームと同じタイミングで再生されるビットマップ字幕ストリームが1つ以上含まれてもよいし、含まれなくてもよい。また、ClipAVストリームファイルには、ClipAVストリームファイルに含まれるビデオストリームと同じタイミングで再生されるインタラクティブグラフィックスストリームが1つ以上含まれてもよいし、含まれなくてもよい。そして、ClipAVストリームファイルに含まれるビデオストリームと、ビデオストリームと同じタイミングで再生されるオーディオストリーム、ビットマップ字幕ストリームファイル、またはインタラクティブグラフィックスストリームとは多重化されている。すなわち、1つのPlayItemが参照するClipAVストリームファイルには、ビデオストリームデータと、そのビデオストリームに合わせて再生される0個以上のオーディオストリーム、0個以上のビットマップ字幕ストリームデータ、および0個以上のインタラクティブグラフィックスストリームデータとが多重化されている。
すなわち、1つのPlayItemが参照するClipAVストリームファイルには、ビデオストリーム、オーディオストリーム、ビットマップ字幕ストリーム、または、インタラクティブグラフィックスストリームなどの、複数の種類のストリームが含まれている。
また、1つのSubPlayItemは、PlayItemが参照するClipAVストリームファイルとは異なるストリーム(別ストリーム)のオーディオストリームデータや字幕データを参照する。
メインパスのみを有するPlayListを再生する場合、ユーザによる音声切り替えや字幕切り替えという操作は、そのメインパスが参照するClipに多重化されているオーディオストリームとサブピクチャストリームの中からしか音声や字幕を選択することができない。これに対し、メインパスとサブパスを持つPlayListを再生する場合、そのメインパスが参照するClipAVストリームファイルに多重化されているオーディオストリームとサブピクチャストリームに加えて、SubPlayItemが参照するClipのオーディオストリームやサブピクチャストリームを参照することができる。
このように、1つのPlayListの中にSubPathを複数含め、それぞれのSubPathがそれぞれSubPlayItemを参照する構成としたので、拡張性の高い、また、自由度の高いAVストリームを実現することができる。すなわち、MainPathで参照されるClipAVストリームに加えて、後で、SubPlayItemを追加できる構成とすることができる。
図3は、メインパスとサブパスの例を説明する図である。図3においては、メインパスと同じタイミングで(AV同期して)再生されるオーディオの再生パスを、サブパスを使用して表している。
図3のPlayListには、メインパスとして、PlayItem_id=0である1つのPlayItemと、サブパスとして1つのSubPlayItemが含まれている。メインパスのPlayItem_id=0である1つのPlayItem()は、図3のメインAVストリームを参照している。SubPlayItem()には、以下に示すデータが含まれる。まず、SubPlayItem ()には、PlayListの中のSub Path(サブパス)が参照するClipを指定するためのClip_Information_file_nameが含まれる。図3の例の場合、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とが含まれる。図3の例の場合、sync_PlayItem_id=0とされ、sync_start_PTS_of_PlayItem=t1とされている。これにより、メインパスのPlayItem_id=0の時間軸(再生時間軸)上でSub Pathが再生を開始する時刻t1を指定することができる。すなわち、図3の例の場合では、メインパスの再生開始時刻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が再生を開始する時刻を指定する情報)に基づいて、メインパスが参照するClipAVストリーム(メインAVストリーム)とは異なるClipAVストリームのオーディオストリームを参照して、再生することができる。
このように、PlayItemとSubPlayItemは、ClipAVストリームファイルをそれぞれ管理するものであり、ここでは、PlayItemが管理するClipAVストリームファイル(メインAVストリーム)とSubPlayItemが管理するClipAVストリームファイルは異なるファイルとなる。
なお、図3の例と同様にして、メインパスと同じタイミングで再生される字幕ストリーム再生パスを、サブパスを使用して表すこともできる。
図4は、メインパスとサブパスの別の例を説明する図である。図4においては、メインパスと同じタイミングで(AV同期して)再生されるビデオとオーディオの再生パスを、サブパスを使用して表している。
メインパスのPlayItem−1が参照するストリームファイルは、Clip−0のプライマリ(primary)ビデオストリームおよびプライマリオーディオストリーム、並びに、PG(Presentation Graphics)ストリームおよびIG(Intaractive Graphics)ストリームの前半部分であり、PlayItem−2が参照するメインAVストリームファイルは、Clip−0のプライマリ(primary)ビデオストリームおよびプライマリオーディオストリーム、並びに、PGストリームおよびIGストリームの後半である。
そして、サブパスのSubPlayItemが参照するストリームファイルは、Clip-1のセカンダリ(2ndary)ビデオストリームと、セカンダリオーディオストリームである。
例えば、メインパスにより参照されるプライマリ(primary)ビデオストリームおよびプライマリオーディオストリーム、並びに、PGストリームおよびIGストリームを1つの映画のコンテンツ(AVコンテンツ)とし、サブパスにより参照されるセカンダリビデオストリームと、セカンダリオーディオストリームをその映画に対して監督がコメントしているボーナストラックとし、メインパスで参照されるビデオおよびオーディオのストリームにサブパスで参照されるビデオおよびオーディオのストリームをミキシング(重ねて)再生するような場合に、このような構成が利用される。
また、セカンダリストリームがプライマリのストリームと同期(必ず同時に再生されるようなプレイリストの設定)していない場合であっても、ユーザが、映画を見ながら、ボーナストラックを合成させて表示させる指令を再生装置(プレーヤ)へ入力した場合に、メインパスで参照されるプライマリストリームの映像および音声と、サブパスで参照されるセカンダリストリームの映像および音声とがミキシングされて再生される場合には、同様にこのような構成が用いられる。
図4においては、メインパスに2つのPlayItemがPlayItem_id=0,1と配置され、サブパス(Subpath_id=0)に1つのSubPlayItemが配置されている。そして、SubPath(図19にて後述する)で呼び出すSubPlayItem(図21にて後述する)は、Subpathの再生区間を指定するための、SubPlayItem_IN_timeと、SubPlayItem_out_timeを含む。
図4を用いて説明したプライマリビデオ、プライマリオーディオに対して、セカンダリビデオ、セカンダリオーディオが重畳されて再生出力される場合、音声は、合成されて出力され、映像は、図5に示されるように、プライマリビデオが表示される主表示画面1に対して、セカンダリビデオが、所定の位置で所定の大きさの副表示画面2によって重ねあわされて表示される。
なお、図4においては、メインパスによって参照されたものがプライマリストリームであり、サブパスによって参照されたものがセカンダリストリームであるが、プライマリストリームおよびセカンダリストリームは、それぞれ、メインパスによって参照されていても、サブパスによって参照されていてもよい。例えば、プライマリストリームおよびセカンダリストリームがいずれもメインパスによって参照されていてもよいし、プライマリストリームおよびセカンダリストリームがいずれもサブパスによって参照されていてもよい。
すなわち、このような構成は、図5に示されるように、プライマリビデオストリームを主画面として表示させ、主画面の中に、セカンダリストリームを子画面として合成して表示させる、いわゆるPinP(ピクチャインピクチャ:Picture-in-Picture)表示を行う場合に利用することができる。
図6は、再生装置20(図35を参照して後述する)において再生可能なデータファイルのファイルシステムの例を示す図である。図6には、一例として、再生装置20において再生可能なデータファイルが光ディスクなどの記録媒体によって供給されている場合を示しており、このファイルシステムはディレクトリ構造を有している。なお、再生装置20において再生可能なデータファイルが光ディスク以外の記録媒体に記録されて供給されている場合や、内部の記録媒体に記録され再生される場合などにおいても、再生装置20において再生可能なデータファイルは、図6に示されるようなファイルシステムを有すると好適である。
このファイルシステムにおいて、「root」の下には「BDMV」の名前が設定されたディレクトリが用意され、そのディレクトリに、「Index.bdmv」の名前が設定されたファイルと、「NavigationObject.bdmv」の名前が設定されたファイルが格納されている。以下、適宜、これらのファイルをそれぞれIndexファイル、NavigationObjectファイルと称する。また、適宜、各ファイルについては、「ファイル名」に「ファイル」を付加した形で、または、各ディレクトリについては、「ディレクトリ名」に「ディレクトリ」を付加した形で称する。
Indexファイルは、上述したインデックステーブルが記載されたファイルであり、再生装置20において再生可能なデータファイルを再生するメニューに関する情報を含む。再生装置20は、例えば、再生装置20において再生可能なデータファイルに含まれるコンテンツを全て再生する、特定のチャプタのみ再生する、繰り返し再生する、初期メニューを表示するなどの内容の項目を含む再生メニュー画面をIndexファイルに基づいて、表示装置に表示させる。Indexファイルのインデックステーブルには各項目が選択されたときに実行するNavigationObjectを設定することができ、ユーザにより再生メニュー画面から1つの項目が選択された場合、再生装置20はIndexファイルのインデックステーブルに設定されているNavigationObjectのコマンドを実行する。
NavigationObjectファイルは、NavigationObjectを含むファイルである。NavigationObjectは、再生装置20において再生可能なデータファイルに含まれているPlayListの再生を制御するコマンドを含み、例えば、再生装置20は、このファイルシステムに含まれているNavigationObjectの中から1つを選択して、実行することにより、コンテンツを再生させることができる。
BDMVディレクトリにはまた、「BACKUP」の名前が設定されたディレクトリ(BACKUPディレクトリ)、「PLAYLIST」の名前が設定されたディレクトリ(PLAYLISTディレクトリ)、「CLIPINF」の名前が設定されたディレクトリ(CLIPINFディレクトリ)、「STREAM」の名前が設定されたディレクトリ(STREAMディレクトリ)、「AUXDATA」の名前が設定されたディレクトリ(AUXDATAディレクトリ)が設けられている。
BACKUPディレクトリには、再生装置20において再生可能なファイルやデータをバックアップするためのファイルやデータが記録される。
PLAYLISTディレクトリには、PlayListファイルが格納される。各PlayListファイルには、図内に示されるように5桁の数字からなるファイル名に拡張子「.mpls」を付加した名称が命名される。PlayListファイルについては、図7を用いて後述する。
CLIPINFディレクトリには、Clip Informationファイルが格納される。各Clip Informationファイルには、図内に示されるように5桁の数字からなるファイル名に拡張子「.clpi」を付加した名称が命名される。
STREAMディレクトリには、Clip AVストリームファイルやサブストリームファイルが格納される。各ストリームファイルには、図内に示されるように5桁の数字からなるファイル名に拡張子「.m2ts」を付加した名称が命名される。
AUXDATAディレクトリには、Clip AVストリームファイルやサブストリームファイルに含まれずに、Clip AVストリームファイルやサブストリームファイルから参照されるデータや、Clip AVストリームファイルやサブストリームファイルとは独立して利用されるデータなどのファイルが格納される。図6の例においては、AUXDATAディレクトリには、「11111.otf」の名前がつけられている字幕のフォントのファイル、「sound.bdmv」の名前が設定された効果音などのサウンドデータが格納されている。
また、再生装置20において再生可能なデータファイルが光ディスクによって配布されている場合、例えば、製作会社や映画の配給会社など、このコンテンツ製作元や、または、この記録媒体の供給元であるタイトルオーサを識別するために各タイトルオーサに割り当てられた識別子であるauthor_id、および、author_idに示されるタイトルオーサにおいて製作された光ディスクの種類を識別するために割り当てられた識別子であるdisc_idが、ユーザなどにより書き換えることができないセキュアな電子データとして、または、物理的にピットによって記録されている。
また、再生装置20において再生可能なデータファイルが光ディスク以外のリムーバブルな記録媒体に記録されている場合や、ネットワークを介してダウンロードされ、再生装置内部の記録媒体に記録されていたり、内部の記憶部に記憶されている場合も、author_id、および、author_idに相当するidが割り当てられてそれぞれ区別可能なようになされ、図6に示す場合と同様のディレクトリ構造を有していると好適である。また、再生装置20において再生可能なデータファイルには、author_id、および、author_idに相当するidが割り当てられていないとしても、図6を用いて説明した場合と同様に、「Index.bdmv」の名前が設定されたファイル、「NavigationObject.bdmv」の名前が設定されたファイルが含まれており、「BACKUP」の名前が設定されたファイル群、「PLAYLIST」の名前が設定されたファイル群、「CLIPINF」の名前が設定されたファイル群、「STREAM」の名前が設定されたファイル群、「AUXDATA」の名前が設定されたファイル群のうち、適宜必要なファイル群が含まれている。
次に、図2乃至図4を用いて説明したメインパスとサブパスの構造を具体的に実現するための、図6を用いて説明したそれぞれのファイルのデータ構造(シンタクス)を説明する。
図7に、PLAYLISTディレクトリに格納される、拡張子「.mpls」を有するPlayListファイルのデータ構造を示す。
type_indicatorは、このファイルの種類を示す情報が記載されているものであり、このフィールドには、ISO646に従って、”MPLS”と符号化されなくてはならない。
version_numberは、このxxxxx.mplsのバージョンナンバを示す4個のキャラクター文字を示すものであり、vesrion_numberはISO”0089”と符号化されなければならない。
PlayList_start_addressは、PlayListファイルの先頭のバイトからの相対バイト数を単位として、PlayList()の先頭アドレスを示すものである。
PlayListMark_start_addressは、PlayListファイルの先頭のバイトからの相対バイト数を単位として、PlayListMark()の先頭アドレスを示すものである。
PlayListEntsnsionData_start_addressは、PlayListファイルの先頭のバイトからの相対バイト数を単位として、PlayListEntsnsionData()の先頭アドレスを示すものである。
AppInfoPlayList()には、PlayListの再生コントロールに関するパラメータが格納されている。
PlayList()には、PlayListのメインパスやサブパスなどに関するパラメータが格納されている。PlayList()の詳細は、図18を用いて後述する。
PlayListMark()には、PlayListのマーク情報が格納されている。また、PlayListExtensionData()の中には、プライベートデータが挿入できるようになっている。
図8に、PlayListExtensionData()のシンタクスを示す。
Lengthは、このlengthフィールドの直後からPlayListExtensionData()の最後までのPlayListExtensionData()のバイト数を示すものである。
data_block_start_addressは、PlayListExtensionData()の先頭のバイトからの相対バイト数を単位として、最初のdata_block()の先頭アドレスを示すものである。
number_of_PL_ext_data_entriesは、PlayListExtensionData()の中に含まれているPlayListExtensionDataのエントリー数を示すものである。PlayListExtensionData()内には、同じIDが2個以上存在してはならない。
ID1/ID2には、このPlayListExtensionData()のdata_blockに記載される情報の種類を識別することができる情報(識別子など)が記載される。
PL_ext_data_start_addressは、そのPlayListExtensionDataが開始されるdata_blockの番号を示すものである。PlayListExtensionDataの先頭データは、 data_blockの先頭にアラインされなければならない。
PL_ext_data_lengthは、バイト単位でPlayListExtensionDataの大きさを示すものである。
data_blockは、PlayListExtensionDataが格納される領域であり、PlayListExtensionData()内の全てのdata_blockは、同じサイズでなければならない。
そして、data_blockには、図5を用いて説明したセカンダリビデオが表示される副表示画面2の表示位置や大きさを示す情報を記載することができる。data_blockには、ピクチャインピクチャ(Picture-in-Picture)の表示設定を示すメタデータを記載することができる。
図9に、data_blockに記載されるpip_metadata(Picture-in-Pictureの表示設定を示すメタデータ)のシンタクスの第1の例を示す。
lengthは、このlengthフィールドの直後からpip_metadata()の最後までのpip_metadata()のバイト数を示すものである。
pip_metadata_typeのフィールドは、pip_metadataの種類を示すものである。図10に示されるように、pip_metadata_type=0x01の場合、このpip_metadata()によりピクチャインピクチャ表示が指定されるセカンダリビデオストリームは同期型、すなわち、Main PathのPlayItemの時間軸(再生時間軸)に同期して再生されるので、プライマリストリームに対して、セカンダリストリームが同期して常に再生出力される。また、pip_metadata_type=0x02の場合、このpip_metadata()によりピクチャインピクチャ表示が指定されるセカンダリビデオストリームは非同期型、すなわち、Sub PathのSubPlayItemの時間軸に同期して再生されるが、Main PathのPlayItemの時間軸には同期しなくてもよいので、ユーザの操作入力により、セカンダリストリームの表示が指令された場合のみ、セカンダリストリームが再生出力されるようになされている。
すなわち、pip_metadata_type = 0x02で、「SubPlayItemに同期する」とは、このpip_metadata()によりピクチャインピクチャ表示が指定されるセカンダリビデオストリームは、main pathの時間軸とは非同期であるが、Sub Pathの時間軸には同期しているという意味である。すなわち、pip_metadata_type = 0x02である場合のpip_metadata()は、ユーザのアクション(操作入力)によってセカンダリビデオの表示がスタートした瞬間を基準に考えた場合のSubPlayItem再生中の副表示画面2の表示位置および大きさを示すものである。
ref_to_PlayItem / SubPath_idは、pip_metadataが適応されるPlayItemのPlayItem_idの値を示すか、または、pip_metadataが適応されるSubPlayItemのSubPath_idの値を示すものである。すなわち、このpip_metadata()によりピクチャインピクチャ表示が指定されるセカンダリビデオストリームがMain Pathと同期する場合(pip_metadata_type=0x01である場合)、ref_to_PlayItmとなり、このpip_metadata()によりピクチャインピクチャ表示が指定されるセカンダリビデオストリームがSub Pathと同期する場合(pip_metadata_type=0x02である場合)、ref_to_SubPath_idとなる。
pip_metadata_time_stampは、pip_metadataが適応されるPlayItemのタイムスタンプであり、pip_metadata_time_stampに示されるタイミングでpip_metadata()により指定される表示位置および大きさで、セカンダリビデオストリームの映像が副表示画面2に表示される。
すなわち、pip_metadata_time_stampは、ref_to_PlayItem/SubPath_idで参照されるPlayItemのIn_time/Out_timeの間にあるpresentation-timeを指す必要がある。そして、このpip_metadata()によりピクチャインピクチャ表示が指定されるセカンダリビデオストリームがSub Pathと同期の場合(すなわち、pip_metadata_type=0x02のとき)には、SubPlayItemの時間軸のなかでpip_metadata_time_stampに示されるタイミングでpip_metadata()により指定される表示位置および大きさで、セカンダリビデオストリームの映像が副表示画面2に表示される。
pip_entry_video_PIDは、ピクチャインピクチャ表示に用いられるセカンダリビデオのPIDの値を示すものである。
pip_horizontal_positionは、プライマリビデオのフレーム(図5の主表示画面1)上において、セカンダリビデオが表示される副表示画面2の左上隅のX座標を示すものである。また、pip_vertical_positionは、プライマリビデオのフレーム(図5の主表示画面1)上において、セカンダリビデオが表示される副表示画面2の左上隅のY座標を示すものである。
なお、例えば、副表示画面2の右下隅のX座標およびY座標の指定や、あらかじめ定められた複数の表示位置のうちのいずれかを指定するなど、pip_horizontal_positionおよびpip_vertical_positionによる副表示画面2の左上隅のX座標およびY座標の指定以外の方法によって、セカンダリビデオが表示される副表示画面2の表示位置を指定するようにしてもよいことはもちろんである。
pip_scaleは、セカンダリビデオが表示される副表示画面2の大きさを示す情報が記載されるフィールドであり、例えば、プライマリビデオに対するセカンダリビデオの大きさの比率、セカンダリビデオのオリジナルの画像の大きさに対する縮小率、または、副表示画面2を構成する画素が、縦横それぞれ何画素で構成されているかを示す情報などが記載される。
図10に、図9のpip_metadata_typeの値とその意味を示す。
pip_metadata_type=0x00は、将来の拡張のために意味が未設定とされている値である。pip_metadata_type=0x01の場合、このpip_metadata()は同期型、すなわち、Main PathのPlayItemの時間軸に同期しているので、プライマリストリームに対して、セカンダリストリームが同期して常に再生出力されるものであり、pip_metadata_type=0x02の場合、このpip_metadata()は非同期型、すなわち、Sub PathのSubPlayItemの時間軸に同期するようになされているので、ユーザの操作入力により、セカンダリストリームの表示が指令された場合のみ、セカンダリビデオストリームの映像が副表示画面2に再生出力されるようになされているものである。また、pip_metadata_typeの上述した3つの値以外は、将来の拡張のために意味が未設定とされている。
図11に、data_blockに記載されるpip_metadataのシンタクスの、図9における場合と異なる第2の例を示す。なお、図9における場合と同一名称で同一定義のデータフィールドに関する説明は適宜省略する。
number_of_pip_entriesは、ピクチャインピクチャのアプリケーション数を示すフィールドである。
Synchronous_PIP_metadata_flagは、ピクチャインピクチャのアプリケーション(すなわち、セカンダリビデオストリーム)がどのパスに同期するかを示すものである。すなわち、Synchronous_PIP_metadata_flagの値が0'の場合、このピクチャインピクチャのアプリケーションは、SubPathに同期するものであり、ref_to_PlayItem / SubPath_id では、ref_to_SubPath_idが登録される。これに対して、Synchronous_PIP_metadata_flagの値が1'の場合、このピクチャインピクチャのアプリケーションは、MainPathに同期するものであり、ref_to_PlayItem / SubPath_id では、ref_to_PlayItemが登録される。
すなわち、図11のSynchronous_PIP_metadata_flagは、図9を用いて説明したpip_metadataにおけるpip_metadata_type(図10)とほぼ同一の内容を定義するための情報である。
number_of_pip_metadata_entriesは、ref_to_PlayItem/ref_to_SubPath_idのVideoストリームのためのPinP Metadataの総数を示すフィールドである。
pip_metadata_typeは、このピクチャインピクチャのメタデータの種類を示すものであり、例えば、セカンダリビデオストリームが表示される副表示画面2の位置と大きさを示す情報以外に、例えば、セカンダリビデオストリームの原映像に対して表示される映像の回転や色の指定などに関する情報を記載することができるものである。
すなわち、図11のpip_metadata_typeは、図9を用いて説明したpip_metadataにおけるpip_metadata_typeとは定義の異なる情報である。
また、図12に、data_blockに記載されるpip_metadataのシンタクスの、図9および図11における場合と異なる第3の例を示す。
Lengthは、このlengthフィールドの直後からpip_metadata()の最後までのpip_metadata()のバイト数を示す情報が記載されるフィールドである。
number_of_metadata_block_entriesは、pip_metadata()の中に含まれているmetadata blockのエントリー数を示す情報が記載されるフィールドである。
metadata_block_header[k]()には、metadata blockに関連するヘッダー情報を含む情報が記載される。
ref_to_PlayItem_id[k]は、pip_metadataが適用されるPlayItemのPlayItem_idの値を示す情報が記載されるフィールドである。
ref_to_secondary_video_stream_id[k]は、pip_metadataが適用されるセカンダリビデオのidで、ref_to_PlayItem_idによって参照されるPlayItem内のSTN_table(図22にて後述する)で定義されているsecondary_video_stream_idの値を示す情報が記載されるフィールドである。
pip_timeline_type[k]は、pip_metadata_time_stampが参照する時間軸のタイプを表す情報が記載されるフィールドである。なお、pip_timeline_type[k]の値とその意味については後述する。
is_luma_keyは、このフラグが1にセットされている場合は、luma-keyingがlower_limit_luma_keyとupper_limit_luma_keyの値に従って、セカンダリビデオストリームに適用される。
lower_limit_luma_keyは、luma keyingのためのセカンダリビデオの輝度値の下限を示す情報が記載されるフィールドである。
upper_limit_luma_keyは、luma keyingのためのセカンダリビデオの輝度値の上限を示す情報が記載されるフィールドである。
ここでluma keyingとは、明るさ(輝度値)の成分差を利用して不要な部分を切り抜いた画像を、映像に重ねて合成することを意味する。すなわち、is_luma_keyのフラグが1に設定されている場合には、lower_limit_luma_keyとupper_limit_luma_keyで定義された、輝度値の下限から上限までの範囲で指定された輝度値を持つ画像を透明に設定することにより、この明るさ情報で指定された範囲の画像が取り除かれたセカンダリビデオがプライマリビデオに重ねて合成される。
これにより、必要最小限のセカンダリビデオを表示することで、セカンダリビデオの不要な部分によって、プライマリビデオが見にくくなるのを防止することができるのに加え、セカンダリビデオとプライマリビデオの合成をより柔軟に行うことができる。
また、この実施例では、lower_limit_luma_keyとupper_limit_luma_keyとの2つの閾値を用いることにより、透明に設定できるとして説明したが、本発明はそれに限らず、閾値をどちらか一方にすることにより、輝度値が、例えば、upper_limit_luma_key以下またはlower_limit_luma_key以上となる部分のみを透明に設定するなどとしてもよい。
metadata_block_data_start_address[k]は、pip_metadata()の先頭のバイトからの相対バイト数を単位として、最初のmetadata_block_data[k]()の先頭アドレスを示す情報が記載されるフィールドである。なお、pip_metadata()内にエントリーされているmetadata_block_data_start_address[k]は、アドレス値の照準で登録されていなければならない。
padding_wordには、metadata_block_data_start_address[k]の値によって、padding wordが挿入される。
metadata_block_data[k]()には、metadata blockのデータ情報を含む情報が記載される。
number_pip_metadata_entries[k]は、metadata_block_dataにあるpip_metadataの総数を示す情報が記載されるフィールドである。
pip_metadata_time_stamp[i]は、pip_metadataが適用される時間を表す、例えば、45kHzのタイムスタンプを含む情報が記載されるフィールドである。なお、連続する2つのpip_metadata_time_stampの最小間隔は1秒である。なお、pip_timeline_typeの値に応じたpip_metadata_time_stampの意味については、後述する。
pip_composition_metadata()は、プライマリビデオのフレームの大きさや位置などに関する情報が記載されるフィールドである。
pip_horizontal_position[i]は、プライマリビデオのフレーム(図5の主表示画面1)上において、セカンダリビデオが表示される副表示画面2の左上隅のX座標を示すものである。pip_vertical_position[i]は、プライマリビデオのフレーム(図5の主表示画面1)上において、セカンダリビデオが表示される副表示画面2の左上隅のY座標を示すものである。
pip_scale[i]は、図13に示すように、セカンダリビデオのオリジナルの画像の大きさに対する縮小率を、1倍、1/2倍、1/4倍、1.5倍、またはfull Screen(セカンダリビデオが図5の主表示画面1の全画面に表示される)にする情報が記載されるフィールドである。
なお、pip_metadata_time_stamp[i]のpip_composition_metadata()は、pip_metadata_time_stamp[i]からpip_metadata_time_stamp[i+1]のintervalの間、有効になる。ただし、最後のpip_compositoin_metadataの有効intervalは、最後のpip_metadata_time_stampから、ref_to_secondary_video_stream_id[k]によって示されるSubPathのpresentation end timeまでとなる。
次に、図14を参照してpip_timeline_typeの値とその意味を説明し、図15乃至図17を参照してpip_timeline_typeの値に応じたpip_metadata_time_stampの意味を説明する。
pip_timeline_type=0は、将来の拡張のために意味が未設定とされている値である。
pip_timeline_type=1は、ピクチャインピクチャプレゼンテーションパスは同期型のタイプであることを意味する。このときref_to_secondary_video_stream_idで指し示されているSubpathのタイプは、5または7でなければならない(Subpathのタイプの詳細は、図20にて後述する)。
pip_metadata_time_stampはこのとき、図15に示すように、ref_to_PlayItem_idのPlayItemの時間軸を参照し、関連付けられたSubPlayItemの再生区間を示している。すなわちSubPlayItemの再生区間はref_to_PlayItem_id[k]で参照されるPlayItemの時間軸に投影される。pip_metadata_time_stamp[0]は、SubPath内のSubPlayItem[0]の再生区間の先頭を示している。
pip_timeline_type=2は、ピクチャインピクチャプレゼンテーションパスは非同期型のタイプであることを意味する。このときref_to_secondary_video_stream_idで指し示されているSubpathのタイプは、6でなければならない。この場合SubPath_type=6のSubPathには1つのSubPlayItemしか含まれていない。
pip_metadata_time_stampはこのとき、図16に示すように、Subpathの時間軸を参照し、ref_to_secondary_video_stream_id[k]によって示されるSubPathのSubPlayItemの再生区間を示している。pip_metadata_time_stamp[0]は、SubPlayItemの再生区間の先頭を示している。
pip_timeline_type=3は、ピクチャインピクチャプレゼンテーションパスは非同期型のタイプであることを意味する。このときref_to_secondary_video_stream_idで指し示されているSubpathのタイプは、6でなければならない。
pip_metadata_time_stampはこのとき、図17に示すように、ref_to_PlayItem_idのPlayItemの時間軸を参照し、ref_to_PlayItem_id[k]のPlayItemの再生区間を示している。pip_metadata_time_stamp[0]は、ref_to_PlayItem_id[k]のPlayItemの再生区間の先頭を示している。
図18は、PlayList()のシンタクスを示す図である。
lengthは、このlengthフィールドの直後からPlayList()の最後までのバイト数を示す32ビットの符号なし整数である。すなわち、reserved_for_future_useからPlaylistの最後までのバイト数を示すフィールドである。このlengthの後には、16ビットのreserved_for_future_useが用意される。number_of_PlayItemsは、PlayListの中にあるPlayItemの数を示す16ビットのフィールドである。例えば、図2の例の場合PlayItemの数は3個である。PlayItem_idの値は、PlayListの中でPlayItem()が現れる順番に0から割り振られる。例えば、図2および図4に示されるように、PlayItem_id=0,1,2が割り振られる。
number_of_SubPathsは、PlayListの中にあるSubPathの数(エントリー数)を示す16ビットのフィールドである。例えば、図2の例の場合、Sub Pathの数は3個である。SubPath_idの値は、PlayListの中でSubPath()が現れる順番に0から割り振られる。例えば、図2に示されるように、Subpath_id=0,1,2が割り振られる。その後のfor文では、PlayItemの数だけPlayItemが参照され、Sub Pathの数だけ、Sub Pathが参照される。
図19は、SubPath()のシンタクスを示す図である。
lengthは、このlengthフィールドの直後からSub Path ()の最後までのバイト数を示す32ビットの符号なし整数である。すなわち、reserved_for_future_useからPlaylistの最後までのバイト数を示すフィールドである。このlengthの後には、8ビットのreserved_for_future_useが用意される。SubPath_typeは、SubPathのアプリケーション種類を示す8ビットのフィールドである。SubPath_typeは、例えば、Sub Pathがオーディオであるか、ビットマップ字幕であるか、テキスト字幕であるかなどの種類を示す場合に利用される。このSubPath_typeについては、図20を参照して後述する。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は、図2のSubPath_id=0のSubPlayItemは1個であり、SubPath_id=1のSubPlayItemは2個である。その後のfor文では、SubPlayItemの数だけ、SubPlayItemが参照される。
図20は、SubPath_type(サブパスのタイプ)の例を説明する図である。すなわち、SubPathの種類は、例えば、図20に示されるように定義されている。
また、それぞれのサブパスタイプのうち、「Out-of-mux・・・type」という記述は、サブパスで参照されるES(エレメンタリストリーム)が含まれるTS(トランスポートストリーム)、すなわち、Clipと、メインパスで参照されるプレイアイテム(1以上のES)が含まれるTS(Clip)とが異なっている場合のサブパスのタイプ(種類)、すなわち、サブパスで参照されるESが、メインパスで参照されるプレイアイテムが含まれるTS(Clip)に多重化されていないサブパスのタイプ(種類)であることを示している。以下、かかる種類を、メインパス非多重型のパスと称する。
図20において、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=2,3のように、メインパスで参照されるESとサブパスで参照されるESとが非同期である場合、そのサブパスのタイプ(種類)を、以下、非同期型のパスと称する。一方、SubPath_type=4のように、メインパスで参照される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)のパスや、ピクチャインピクチャプレゼンテーションパスとされている。
ここで、ピクチャインピクチャプレゼンテーションパスとは、上述したピクチャインピクチャの手法において、所定のプライマリビデオストリーム(メインパスで参照されるビデオストリーム)についての、プライマリオーディオストリームストリーム、セカンダリビデオストリーム、セカンダリオーディオストリーム、および、サブタイトルストリームのうちの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 type」という記述は、サブパスで参照されるESが含まれるTS(Clip)と、メインパスで参照されるプレイアイテム(1以上のES)が含まれるTS(Clip)とが同一の場合のサブパスのタイプ(種類)、すなわち、サブパスで参照されるESが、メインパスで参照されるプレイアイテムが含まれるTS(Clip)に多重化されているサブパスのタイプ(種類)であることを示している。以下、かかる種類を、メインパス多重型のパスと称する。
すなわち、SubPath_type=7は、メインパスTS多重型、かつ、同期型のパスであって、ピクチャインピクチャプレゼンテーションパス(1以上のESのパス)とされている。
SubPath_type=8乃至255は、reservedとされている。
図21は、SubPlayItem(i)のシンタクスを示す図である。
lengthは、このlengthフィールドの直後からSub playItem ()の最後までのバイト数を示す16ビットの符号なし整数である。
図21においては、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は、上述したように、図3と図4の場合(メイン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)である場合、すなわちマルチクリップの登録が行われている場合)について説明する。具体的には、図4に示されるように、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は共通して使われる。図4の例の場合、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である。
図22は、PlayItem()のシンタクスを示す図である。
lengthは、このlengthフィールドの直後からPlayItem()の最後までのバイト数を示す16ビットの符号なし整数である。Clip_Information_file_ name[0]は、PlayItemが参照するClipを指定するためのフィールドである。図3の例の場合、Clip_Information_file_ name[0]により、メインAVストリームが参照される。また、Clipのコーデック方式を指定するClip_codec_identifier[0]、reserved_for_future_use、is_multi_angle、connection_condition、STC不連続点(システムタイムベースの不連続点)に関する情報であるref_to_STC_id[0]を含む。さらに、Clipの中のPlayItemの再生区間を指定するためのIN_time と OUT_timeを含む。図3の例の場合、IN_time と OUT_timeにより、メインClipAVストリームファイルの再生範囲が表される。また、UO_mask_table()、PlayItem_random_access_mode、still_modeを含む。is_multi_angleが複数ある場合については、本発明と直接的には関係ないのでその説明を省略する。
PlayItem()の中のSTN_table()は、対象のPlayItemとそれに関連付けられて再生される1つ以上のSubPathが用意されている場合に、ユーザによる音声切り替えや字幕切り替えという操作が、そのPlayItemが参照するClipとこれらの1つ以上のSubPathが参照するClipsの中から選ぶことができる仕組みを提供するものである。また、STN_table()は、2つのオーディオストリームのミキシング再生を選ぶことができる仕組みを提供するものである。
図23は、STN_table()のシンタクスの第1の例を示す図である。STN_table()は、PlayItemの属性として設定されている。
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が与えられる1番目のオーディオストリームのストリーム数を示す。audio_stream_idは、オーディオストリームを識別するための情報であり、audio_stream_numberは、音声切り替えに使われるユーザから見えるオーディオストリーム番号である。number_of_audio_stream2_entriesは、STN_table()の中でエントリーされるaudio_stream_id2が与えられる2番目のオーディオストリームのストリーム数を示す。audio_stream_id2は、オーディオストリームを識別するための情報であり、audio_stream_numberは、音声切り替えに使われるユーザから見えるオーディオストリーム番号である。具体的には、STN_table()でエントリーされるnumber_of_audio_stream_entriesのオーディオストリームは、後述する図35の再生装置20の1stオーディオデコーダ75−1でデコードされるオーディオストリームであり、STN_table()でエントリーされるnumber_of_audio_stream2_entriesのオーディオストリームは、後述する図35の再生装置20の2ndオーディオデコーダ75−2でデコードされるオーディオストリームである。このように、図23、並びに、後述する図33および図34のSTN_table()では、2つのオーディオデコーダのそれぞれにデコードさせるオーディオストリームをエントリーすることができる。
なお、以下において、図35の再生装置20の1stオーディオデコーダ75−1でデコードされるnumber_of_audio_stream_entriesのオーディオストリーム、すなわち、プライマリオーディオストリームをオーディオストリーム#1と称し、図35の再生装置20の2ndオーディオデコーダ75−2でデコードされるnumber_of_audio_stream2_entriesのオーディオストリーム、すなわち、セカンダリオーディオストリームをオーディオストリーム#2と称する。また、オーディオストリーム#1は、オーディオストリーム#2よりも優先されるオーディオストリームであるものとする。
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()のシンタクスについて図24を参照して説明する。
lengthは、このlengthフィールドの直後からstream_entry ()の最後までのバイト数を示す8ビットの符号なし整数である。typeは、上述したストリーム番号が与えられるストリームを一意に特定するために必要な情報の種類を示す8ビットのフィールドである。
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(type=1とtype=2の2つのtype)を使うことで、PlayItemとそれに関連付けられて再生される1つ以上のSubPathが用意されている場合に、このPlayItemが参照するClipと1つ以上のSubPathが参照するClipの中から1つのエレメンタリストリームを特定することができる。なお、type=1はMain Pathが参照するClip(メインClip)を示しており、type=2はSub Pathが参照するClip(サブClip)を示している。
図23の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から定義される。
同様に、オーディオストリーム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から定義される。
すなわち、図23のSTN_table()においては、number_of_audio_stream_entries(オーディオストリーム#1)のオーディオストリームと、number_of_audio_stream2_entries(オーディオストリーム#2)のオーディオストリームとが定義される。換言すれば、STN_table()を用いて、オーディオストリーム#1とオーディオストリーム#2とをエントリーすることができるので、ユーザは、同期して再生するオーディオストリームを2本選択することができる。
同様に、字幕ストリーム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から定義される。
次に、図23のSTN_table()のstream_attribute()について説明する。
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つのオーディオエレメンタリストリームのストリーム属性情報が記述されている。例えば、図24の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つのオーディオエレメンタリストリームのストリーム属性情報が記述されている。例えば、図24の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つのインタラクティブグラフィックスエレメンタリストリームのストリーム属性情報が記述されている。
ここで、stream_attribute()のシンタクスについて図25を参照して説明する。
lengthは、このlengthフィールドの直後からstream_attribute()の最後までのバイト数を示す16ビットの符号なし整数である。
stream_coding_typeは、図26に示されるようにエレメンタリストリームの符号化タイプを示す。エレメンタリストリームの符号化タイプとしては、MPEG-2 video stream、HDMV LPCM audio、Dolby AC-3 audio、dts audio、Presentation graphics stream、Interactive graphics stream、およびText subtitle streamが記述される。
video_formatは、図27に示されるようにビデオエレメンタリストリームのビデオフォーマットを示す。ビデオエレメンタリストリームのビデオフォーマットとしては、480i、576i、480p、1080i、720p、および1080pが記述される。
frame_rateは、図28に示されるように、ビデオエレメンタリストリームのフレームレートを示す。ビデオエレメンタリストリームのフレームレートとしては、24000/1001、24、25、30000/1001、50、および60000/1001が記述される。
aspect_ratioは、図29に示されるようにビデオエレメンタリストリームのアスペクト比情報を示す。ビデオエレメンタリストリームのアスペクト比情報としては、4:3 display aspect ratio、および16:9 display aspect ratioが記述される。
audio_presentation_typeは、図30に示されるようにオーディオエレメンタリストリームのプレゼンテーションタイプ情報を示す。オーディオエレメンタリストリームのプレゼンテーションタイプ情報としては、single mono channel、dual mono channel、stereo(2-channel)、およびmulti-channelが記述される。
sampling_frequencyは、図31に示されるようにオーディオエレメンタリストリームのサンプリング周波数を示す。オーディオエレメンタリストリームのサンプリング周波数としては、48kHz、および96kHzが記述される。
audio_language_codeは、オーディオエレメンタリストリームの言語コード(日本語、韓国語、中国語など)を示す。
PG_language_codeは、ビットマップ字幕エレメンタリストリームの言語コード(日本語、韓国語、中国語など)を示す。
IG_language_code、インタラクティブグラフィックスエレメンタリストリームの言語コード(日本語、韓国語、中国語など)を示す。
textST_language_codeは、テキスト字幕エレメンタリストリームの言語コード(日本語、韓国語、中国語など)を示す。
character_codeは、図32に示されるようにテキスト字幕エレメンタリストリームのキャラクタコードを示す。テキスト字幕エレメンタリストリームのキャラクタコードとしては、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)が記述される。
以下に、図25のstream_attribute()のシンタクスについて、図25と、図26乃至図32を用いて具体的に説明する。
エレメンタリストリームの符号化タイプ(図25のstream_coding_type)がMPEG-2 video stream(図26)である場合、stream_attribute()には、そのエレメンタリストリームのビデオフォーマット(図27)、フレームレート(図28)、およびアスペクト比情報(図29)が含まれる。
エレメンタリストリームの符号化タイプ(図25のstream_coding_type)がHDMV LPCM audio、Dolby AC-3 audio、またはdts audio(図26)である場合、stream_attribute()には、そのオーディオエレメンタリストリームのプレゼンテーションタイプ情報(図30)、サンプリング周波数(図31)、および言語コードが含まれる。
エレメンタリストリームの符号化タイプ(図25のstream_coding_type)がPresentation graphics stream(図26)である場合、stream_attribute()には、そのビットマップ字幕エレメンタリストリームの言語コードが含まれる。
エレメンタリストリームの符号化タイプ(図25のstream_coding_type)がInteractive graphics stream(図26)である場合、stream_attribute()には、そのインタラクティブグラフィックスエレメンタリストリームの言語コードが含まれる。
エレメンタリストリームの符号化タイプ(図25のstream_coding_type)がText subtitle stream(図26)である場合、stream_attribute()には、そのテキスト字幕エレメンタリストリームのキャラクタコード(図32)、言語コードが含まれる。
なお、これらの属性情報はこれに限定されない。
このように、PlayItemとそれに関連付けられて再生される1つ以上のSubPathが用意されている場合に、このPlayItemが参照するClipと1つ以上のSubPathが参照するClipの中から、stream_entry()によって特定された1つのエレメンタリストリームの属性情報をstream_attribute()によって知ることができる。
再生装置は、この属性情報(stream_attribute())を調べることによって、そのエレメンタリストリームを自分自身が再生する機能を持っているか否かを調べることができる。また、再生装置は、この属性情報を調べることによって、再生装置の言語設定の初期情報に対応したエレメンタリストリームの選択することができる。
例えば、再生装置が、ビットマップ字幕エレメンタリストリームの再生機能だけを有し、テキスト字幕エレメンタリストリームの再生機能を有していない場合を想定する。この再生装置に対して、ユーザが言語切り替えを指示した場合、再生装置は、字幕ストリームID (PG_txtST_stream_id)のforループの中から、ビットマップ字幕エレメンタリストリームだけを順次選択して、再生する。
また、例えば、再生装置の言語設定の初期情報が日本語である場合を想定する。この再生装置に対して、ユーザが音声切り替えを指示した場合、再生装置は、オーディオストリームID (Audio stream id)のforループの中から、言語コードが日本語であるオーディオエレメンタリストリームだけを順次選択して、再生する。
さらに、例えば、メインパスにより参照される、ビデオストリームとオーディオストリームからなるAVストリーム(例えば、映画)を再生する場合、再生装置に対して、ユーザが音声の切り替えを指令し、オーディオストリーム#1(通常の映画で出力される音声)と、オーディオストリーム#2(監督や出演者によるコメント)とを、再生する音声として指定(選択)した場合、再生装置は、オーディオストリーム#1とオーディオストリーム#2とをミキシング(重畳)して、ビデオストリームとともに再生する。
なお、オーディオストリーム#1とオーディオストリーム#2とは、図23のSTN_table()を参照しても分かるように、両方ともメインパスにより参照されるClipに含まれるオーディオストリームとしてもよい。また、オーディオストリーム#1とオーディオストリーム#2のうちの、一方をメインパスにより参照されるClipに含まれるオーディオストリームとし、他方をサブパスにより参照されるClipに含まれるオーディオストリームとしてもよい。このように、メインパスにより参照されるメインAVストリームに重畳された複数のオーディオストリームを2つ選択して、ミキシングして再生することも可能である。
このようにして、PlayItem()の中のSTN_table()は、このPlayItemとそれに関連付けられて再生される1つ以上のSubPathが用意されている場合に、ユーザによる音声切り替えや字幕切り替えという操作が、このPlayItemが参照するClipと1つ以上のSubPathが参照するClipの中から選ぶことができる仕組みを提供するようにしたので、メインAVストリームが記録されている、再生するAVストリームとは異なるストリームやデータファイルに対しても、インタラクティブな操作を行うことができる。
また、1つのPlayListの中にSubPathを複数使用し、それぞれのSubPathがそれぞれSubPlayItemを参照する構成としたので、拡張性の高い、また、自由度の高いAVストリームを実現することができる。すなわち、後で、SubPlayItemを追加できる構成とすることができる。例えば、Main Pathが参照するClipAVストリームファイルとこれに対応付けられるPlayListがあり、このPlayListが新たなSub Pathを追加したPlayListに書き換えられた場合、新たなPlayListに基づいて、Main Pathが参照するClipAVストリームファイルとともに、Main Pathが参照するClipAVストリームファイルとは異なるClipAVストリームファイルを参照して、再生を行うことができる。このように、拡張性を有する構成とすることができる。
さらに、PlayItem()の中のSTN_table()は、後述する図35の再生装置20の1stオーディオデコーダ75−1でデコードされるオーディオストリーム#1と、2ndオーディオデコーダ75−2でデコードされるオーディオストリーム#2とをミキシングして再生することができる仕組みを提供するようにした。例えば、PlayItem()とそれに関連付けられて再生される1つ以上のSubPathが用意されている場合に、PlayItemが参照するClipのオーディオストリームをオーディオストリーム#1とし、SubPathが参照するClipのオーディオストリームをオーディオストリーム#2とし、これらををミキシングして再生することができる仕組みを提供するようにした。また、例えば、PlayItemが参照するClip(メインClip)に含まれる2つのオーディオストリームを、それぞれオーディオストリーム#1とオーディオストリーム#2とし、これらをミキシングして再生することができる仕組みを提供するようにした。これにより、メインAVストリームが記録されている、再生するメインのオーディオストリームとは異なるオーディオストリーム(例えば、監督のコメントのストリーム)の重畳再生を行うことができる。また、メインAVストリームに重畳されている2つのオーディオストリーム#1とオーディオストリーム#2とを重畳(ミキシング)して再生することができる。
また、STN_table()によって、プライマリビデオストリームと組み合わせて同時再生される、セカンダリビデオストリーム、プライマリオーディオストリーム、セカンダリオーディオストリーム、および、サブタイトルストリームの組み合わせを定義することができる。図33および図34は、STN_table()のシンタクスの第2の例を示す図である。
図33と図34とは、プライマリビデオストリームと組み合わせて同時再生される、セカンダリビデオストリーム、プライマリオーディオストリーム、セカンダリオーディオストリーム、および、サブタイトルストリームの組み合わせを定義する場合のSTN_table()のシンタクスの例を示す図である。なお、図中、図23と同一の部分については、繰り返しになるのでその説明は省略する。
図33と図34の例では、プライマリビデオストリームと組み合わせて同時再生される、セカンダリビデオストリーム、プライマリオーディオストリーム、セカンダリオーディオストリーム、および、サブタイトルストリームの組み合わせは、次のように定義される。すなわち、最初に、プライマリビデオストリームと組み合わせて同時再生されるセカンダリビデオストリームが1以上定義される。そして、1以上のセカンダリビデオストリームのそれぞれに対して、同時に再生されるオーディオストリーム(プライマリオーディオストリームとセカンダリオーディオストリーム)とサブタイトルストリームとが定義される。
具体的には、図33において、number_of_video_stream2_entriesは、STN_table()の中でエントリーされる(登録される)video_stream_id2が与えられるストリーム数を示す。video_stream_id2は、セカンダリビデオストリームを識別するための情報であり、video_stream_number2は、ビデオ切り替えに使われる、ユーザから見えるセカンダリビデオストリーム番号である。
図34において、ビデオストリーム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_video2とその後の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文で定義される。
なお、図23を参照して説明した場合と同様に、各IDの代わりに各番号、例えば、audio_stream_idの代わりに、オーディオストリーム番号(audio_stream_number)を用いたり、audio_stream_id2の代わりに、オーディオストリーム番号2(audio_stream_number2)を用いるようにしてもよい。ビデオストリームやサブタイトルストリームについても同様である。
図33と図34によれば、video_stream_id2を用いて、プライマリビデオストリームと同時再生されるセカンダリビデオストリームを定義することができ、さらに、video_stream_id2、および、audio_stream_id、audio_stream_id2、並びに、PG_textST_stream_idを用いて、そのセカンダリビデオストリームと同時再生される、プライマリオーディオストリーム、セカンダリオーディオストリーム、および、サブタイトルストリームの組み合わせを定義することができる。すなわち、プライマリビデオストリームと同時再生される、セカンダリビデオストリーム、プライマリオーディオストリーム、セカンダリオーディオストリーム、および、サブタイトルストリームの組み合わせを定義することができる。
従って、プライマリビデオストリームと同時再生される、セカンダリビデオストリーム、プライマリオーディオストリーム、セカンダリオーディオストリーム、および、サブタイトルストリームの組み合わせとして、矛盾するような組み合わせを定義せずに済むので、ユーザは、プライマリビデオストリームと同時再生可能なストリームの組み合わせの再生を容易に選択することができる。
また、PlayItem()の中のSTN_table()は、このPlayItemとそれに関連付けられて再生される1つ以上のSubPathが用意されている場合に、このSubpathのSubpath_typeを5乃至7、すなわちピクチャインピクチャプレゼンテーションパス(セカンダリビデオストリーム、セカンダリオーディオストリーム、および、プレゼンテーショングラフィックストリームのうちの1以上のパス)と定義することにより、図5を用いて説明したようにして、主に再生表示されるプライマリビデオストリームに対して、セカンダリビデオストリームを表示することにより、ピクチャインピクチャ表示を行うことができるようになる。
また、ピクチャインピクチャの表示設定を、図9、図11、または図12を用いて説明したようにして、pip_metadataに記載するようにしたので、図5を用いて説明した副表示画面2の大きさや表示位置は、再生装置に依存することなく、コンテンツの作成元またはコンテンツの提供元などが任意に設定することができる。また、ピクチャインピクチャの表示設定は、ピクチャインピクチャ表示されるビデオストリーム(セカンダリビデオストリーム)のデータ自体に記載されるのではなく、図9、図11、または図12を用いて説明したpip_metadataに記載される。すなわち、図5を用いて説明した副表示画面2の大きさや表示位置を変更したい場合は、ピクチャインピクチャ表示されるビデオストリーム(セカンダリビデオストリーム)を修正する必要はなく、pip_metadataの記載を修正するようにすればよい。
また、ピクチャインピクチャの表示設定を、図9、図11、または図12を用いて説明したようにして、pip_metadataに記載するようにしたことにより、図5を用いて説明した副表示画面2に表示される映像の大きさは、セカンダリビデオストリームの元となる画像の大きさにも依存することなく、コンテンツの作成元またはコンテンツの提供元などが任意に設定することができる。
次に、本発明を適用した再生装置について説明する。図35は、本発明を適用した再生装置20の構成例を示すブロック図である。この再生装置20は、上述したメインパスとサブパスを有するPlayListを再生する再生装置20である。
再生装置20には、ストレージドライブ31、スイッチ32、AVデコーダ部33、およびコントローラ34が設けられている。
図35の例の場合、最初に、コントローラ34がストレージドライブ31を介してPlayListファイルを読み出し、PlayListファイルの情報に基づいて、ストレージドライブ31を介してHDD、ブルーレイディスク、またはDVDなどの記録媒体からAVストリームやAVデータを読み出す。ユーザは、ユーザインターフェースを用いて、コントローラ34に対し、音声や字幕などの切り替えの指令を行うことができる。また、コントローラ34には、再生装置20の言語設定の初期情報が図示せぬ記憶部などから供給される。
PlayListファイルには、Main Path、Sub Pathの情報の他、STN_table()が含まれている。コントローラ34は、PlayListファイルに含まれるPlayItemが参照するメインClip AVストリームファイル(以下、メインClipと称する)、SubPlayItemが参照するサブClip AVストリームファイル(以下、サブClipと称する)、およびSubPlayItemが参照するテキストサブタイトルデータを、ストレージドライブ31を介して記録媒体などから読み出す。ここで、PlayItemが参照するメインClipとSubPlayItemが参照するサブClipとが、異なる記録媒体に記録されていてもよい。例えば、メインClipが記録媒体に記録されており、対応するサブClipは図示せぬネットワークを介して供給され、HDDに記憶されたものであってもよい。また、コントローラ34は、自分自身(再生装置20)の再生機能に対応するエレメンタリストリームを選択し、再生するよう制御したり、再生装置20の言語設定の初期情報に対応するエレメンタリストリームだけを選択し、再生するよう制御する。
また、コントローラ34は、PlayListファイルのPlayListExtensionData()のID1/ID2に記載されている情報(または識別子)を参照し、このPlayListExtensionData()のdata_blockに、ピクチャインピクチャ表示に関する情報(pip_metadata)が記載されていることを検出した場合、図9または図11を用いて説明したpip_metadataを参照して、図5を用いて説明した副表示画面2に表示されるセカンダリビデオの表示設定を取得し、AVデコーダ部33のビデオプレーン生成部92によるプライマリビデオストリームとセカンダリビデオストリームの映像の合成を制御する。
AVデコーダ部33には、バッファ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、バックグラウンドプレーン生成部91、ビデオプレーン生成部92、プレゼンテーショングラフィックスプレーン生成部93、インタラクティブグラフィックスプレーン生成部94、バッファ95、ビデオデータ処理部96、ミキシング処理部97、およびミキシング処理部101が設けられている。
1stビデオデコーダ72−1は、プライマリビデオストリームをデコードするためのものであり、2ndビデオデコーダ72−2は、セカンダリビデオストリームをデコードするためのものである。また、1stオーディオデコーダ75−1は、オーディオストリーム#1(プライマリオーディオストリーム)をデコードするためのものであり、2ndオーディオデコーダ75−2は、オーディオストリーム#2(セカンダリオーディオストリーム)をデコードするためのものである。具体的には、図23、並びに、図33および図34のSTN_table()において、video_stream_idで与えられるビデオストリームをデコードするためのものが1stビデオデコーダ72−1であり、video_stream_id2で与えられるビデオストリームをデコードするためのものが2ndビデオデコーダ72−2であり、audio_stream_idで与えられるオーディオストリームをデコードするためのものが1stオーディオデコーダ75−1であり、audio_stream_id2で与えられるオーディオストリームをデコードするためのものが2ndオーディオデコーダ75−2である。
このように、再生装置20は、2つのビデオストリームをデコードするために2つのビデオデコーダ(1stビデオデコーダ72−1、2ndビデオデコーダ72−2)を有し、2つのオーディオストリームをデコードするために、2つのオーディオデコーダ(1stオーディオデコーダ75−1、2ndオーディオデコーダ75−2)を有している。なお、以下において、1stビデオデコーダ72−1と2ndビデオデコーダ72−2とを個々に区別しない場合、ビデオデコーダ72と称し、1stオーディオデコーダ75−1と2ndオーディオデコーダ75−2とを個々に区別しない場合、オーディオデコーダ75と称する。
コントローラ34により読み出されたファイルデータは、図示せぬ復調、ECC復号部により、復調され、復調された多重化ストリームに誤り訂正が施される。スイッチ32は、復調され、誤り訂正が施されたデータを、コントローラ34からの制御に基づいて、ストリームの種類ごとに選択し、対応するバッファ51乃至54に供給する。具体的には、スイッチ32は、コントローラ34からの制御に基づいて、バックグラウンドイメージデータをバッファ51に供給し、メインClipのデータをバッファ52に供給し、サブClipのデータをバッファ53に供給し、Text-STのデータをバッファ54に供給するようスイッチ32を切り替える。バッファ51は、バックグラウンドイメージデータをバッファリングし、バッファ52は、メインClipのデータをバッファリングし、バッファ53は、サブClipのデータをバッファリングし、バッファ54は、Text-STデータをバッファリングする。
メインClipは、ビデオとオーディオとビットマップ字幕(Presentation Graphics stream)とインタラクティブグラフィックスのうち、ビデオに加えて1つ以上のストリームを多重化したストリーム(例えばトランスポートストリーム)である。サブClipは、ビデオとビットマップ字幕とインタラクティブグラフィックスとオーディオのうち、1つ以上のストリームを多重化したストリームである。なお、テキストサブタイトルデータファイル(Text-ST)のデータは、トランスポートストリームのような多重化ストリームの形式であっても、そうでなくてもよい。
また、メインClipとサブClipおよびテキストサブタイトルデータを、ストレージドライブ31(記録媒体)から読み出すときに、それぞれのファイルを時分割に交互に読み出しても良いし、または、サブClipやテキストサブタイトルデータをメインClipから読み出す前に、すべてバッファ(バッファ53またはバッファ54)へプリロードしてもよい。
再生装置20は、これらのファイルのデータを、ストレージドライブ31を介して記録媒体から読み出し、ビデオ、ビットマップ字幕、インタラクティブグラフィックス、およびオーディオを再生する。
具体的には、メインClip用リードバッファであるバッファ52から読み出されたストリームデータは、所定のタイミングで、後段のPID(パケットID)フィルタ55へ出力される。このPIDフィルタ55は、入力されたメインClipをPID(パケットID)に応じて、後段の各エレメンタリストリームのデコーダへ振り分けて出力する。すなわち、PIDフィルタ55は、ビデオストリームを1stビデオデコーダ72−1または2ndビデオデコーダ72−2のいずれかに供給するためのPIDフィルタ60に供給し、プレゼンテーショングラフィックスストリームをプレゼンテーショングラフィックスデコーダ73への供給元となるスイッチ57に供給し、インタラクティブグラフィックスストリームをインタラクティブグラフィックスデコーダ74への供給元となるスイッチ58に供給し、オーディオストリームを1stオーディオデコーダ75−1と2ndオーディオデコーダ75−2への供給元となるスイッチ59に供給する。
プレゼンテーショングラフィックスストリームは、例えば、ビットマップの字幕データであり、テキストサブタイトルデータは、例えば、テキスト字幕データである。
サブClip用リードバッファであるバッファ53から読み出されたストリームデータは、所定のタイミングで、後段のPID(パケットID)フィルタ56へ出力される。このPIDフィルタ56は、入力されたサブClipをPID(パケットID)に応じて、後段の各エレメンタリストリームのデコーダへ振り分けて出力する。すなわち、PIDフィルタ56は、供給されたビデオストリームを1stビデオデコーダ72−1または2ndビデオデコーダ72−2のいずれかに供給するためのPIDフィルタ60へ供給し、プレゼンテーショングラフィックスストリームをプレゼンテーショングラフィックスデコーダ73への供給元となるスイッチ57に供給し、インタラクティブグラフィックスストリームをインタラクティブグラフィックスデコーダ74への供給元となるスイッチ58に供給し、オーディオストリームを1stオーディオデコーダ75−1と2ndオーディオデコーダ75−2への供給元となるスイッチ59に供給する。
バックグラウンドイメージデータをバッファリングするバッファ51から読み出されたデータは、所定のタイミングでバックグラウンドデコーダ71に供給される。バックグラウンドデコーダ71は、バックグラウンドイメージデータをデコードし、デコードしたバックグラウンドイメージデータをバックグラウンドプレーン生成部91に供給する。
スイッチ57は、PIDフィルタ55から供給されたメインClipに含まれるプレゼンテーショングラフィックスストリームと、サブClip に含まれるプレゼンテーショングラフィックスストリームのうちのいずれか1つを選択し、選択したプレゼンテーショングラフィックスストリームを、後段のプレゼンテーショングラフィックスデコーダ73に供給する。プレゼンテーショングラフィックスデコーダ73は、プレゼンテーショングラフィックスストリームをデコードし、デコードしたプレゼンテーショングラフィックスストリームのデータをプレゼンテーショングラフィックスプレーン生成部93への供給元となるスイッチ77に供給する。
また、スイッチ58は、PIDフィルタ55から供給されたメインClipに含まれるインタラクティブグラフィックスストリームと、サブClipに含まれるインタラクティブグラフィックスストリームのうちのいずれか1つを選択し、選択したインタラクティブグラフィックスストリームを、後段のインタラクティブグラフィックスストリームデコーダ74に供給する。すなわち、インタラクティブグラフィックスデコーダ74へ同時に入力されるインタラクティブグラフィックスストリームは、メインClipまたはサブClipのどちらかから分離されたストリームである。インタラクティブグラフィックスデコーダ74は、インタラクティブグラフィックスストリームをデコードし、デコードしたインタラクティブグラフィックスストリームのデータを、インタラクティブグラフィックスプレーン生成部94に供給する。
さらに、スイッチ59は、PIDフィルタ55から供給されたメインClipに含まれるオーディオストリームと、サブClip に含まれるオーディオストリームのうちのいずれか1つを選択し、選択したオーディオストリームを、後段の1stオーディオデコーダ75−1または、2ndオーディオデコーダ75−2に供給する。ここで、1stオーディオデコーダ75−1へ同時に入力されるオーディオストリームは、メインClipまたはサブClipのどちらかから分離されたストリームである。また、同様に、2ndオーディオデコーダ75−2へ同時に入力されるオーディオストリームも、メインClipまたはサブClipのどちらかから分離されたストリームである。例えば、メインClipにオーディオストリーム#1とオーディオストリーム#2とが含まれていた場合、PIDフィルタ55は、オーディオストリームのPIDに基づいて、オーディオストリーム#1とオーディオストリーム#2とをフィルタリングし、スイッチ59に供給する。
スイッチ59は、例えば、PIDフィルタ55から供給されたオーディオストリーム#1を、1stオーディオデコーダ75−1に供給するようスイッチを選択し、PIDフィルタ55から供給されたオーディオストリーム#2を、2ndオーディオデコーダ75−2に供給するようスイッチを選択する。
PIDフィルタ60は、PIDフィルタ55から供給されたメインClipに含まれていたビデオストリーム、または、PIDフィルタ56から供給されたサブClipに含まれていたビデオストリームの入力を受け、コントローラ34の制御に基づいて、プライマリビデオストリームであるか、セカンダリビデオストリームであるかを判別し、プライマリビデオストリームを1stビデオデコーダ72−1に供給し、セカンダリビデオストリームを2ndビデオデコーダ72−2に供給する。
PIDフィルタ60により振り分けられたビデオストリームは、後段の1stビデオデコーダ72−1または2ndビデオデコーダ72−2に供給される。1stビデオデコーダ72−1または2ndビデオデコーダ72−2は、供給されたビデオストリームをデコードし、デコードしたビデオデータをビデオプレーン生成部92へ出力する。
ビデオプレーン生成部92は、1stビデオデコーダ72−1および2ndビデオデコーダ72−2からビデオデータが供給された場合、pip_metadataを参照したコントローラ34の制御に基づいて、供給されたビデオデータを合成して、図5を用いて説明したような、主表示画面1および副表示画面2により構成されるビデオプレーンを生成し、これをビデオデータ処理部96に供給する。また、ビデオプレーン生成部92は、1stビデオデコーダ72−1のみからビデオデータが供給された場合、供給されたビデオデータを用いてビデオプレーンを生成し、これをビデオデータ処理部96に供給する。なお、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から供給されてきたサウンドデータをミキシング(重畳、または合成)し、音声信号として出力する。
テキストサブタイトル用リードバッファであるバッファ54から読み出されたデータは、所定のタイミングで、後段のテキストサブタイトルコンポジション(デコーダ)76へ出力される。テキストサブタイトルコンポジション76は、Text-STデータをデコードし、スイッチ77に供給する。
スイッチ77は、プレゼンテーショングラフィックスデコーダ73によりデコードされたプレゼンテーショングラフィックスストリームと、Text-ST(テキストサブタイトルデータ)のうち、いずれかを選択し、選択したデータをプレゼンテーショングラフィックスプレーン生成部93に供給する。すなわち、プレゼンテーショングラフィックスプレーン93へ同時に供給される字幕画像は、プレゼンテーショングラフィックスデコーダ73またはテキストサブタイトル(Text-ST)コンポジション76のうちのいずれかの出力である。また、プレゼンテーショングラフィックスデコーダ73へ同時に入力されるプレゼンテーショングラフィックスストリームは、メインClipまたはサブClipのいずれかから分離されたストリームである(スイッチ57により選択される)。したがって、プレゼンテーショングラフィックスプレーン93へ同時に出力される字幕画像は、メインClipからのプレゼンテーショングラフィックスストリーム、またはサブClipからのからのプレゼンテーショングラフィックスストリーム、またはテキストサブタイトルデータのデコード出力である。
バックグラウンドプレーン生成部91は、バックグラウンドデコーダ71から供給されたバックグラウンドイメージデータに基づいて、例えば、ビデオ画像を縮小表示した場合に壁紙画像となるバックグラウンドプレーンを生成し、これを、ビデオデータ処理部96に供給する。
プレゼンテーショングラフィックスプレーン生成部93は、スイッチ77により選択され、供給されたデータ(プレゼンテーショングラフィックスストリームまたはテキストサブタイトルデータ)に基づいて、例えば、レンダリング画像であるプレゼンテーショングラフィックスプレーンを生成し、これをビデオデータ処理部96に供給する。インタラクティブグラフィックスプレーン生成部94は、インタラクティブグラフィックスデコーダ74から供給されたインタラクティブグラフィックスストリームのデータに基づいて、インタラクティブグラフィックスプレーンを生成し、これをビデオデータ処理部96に供給する。
ビデオデータ処理部96は、バックグラウンドプレーン生成部91からのバックグラウンドプレーン、ビデオプレーン生成部92からのビデオプレーン、プレゼンテーショングラフィックスプレーン生成部93からのプレゼンテーショングラフィックスプレーン、およびインタラクティブグラフィックスプレーン生成部94からのインタラクティブグラフィックスプレーンを合成し、ビデオ信号として出力する。また、ミキシング処理部97は、ミキシング処理部101からのオーディオデータ(1stオーディオデコーダ75−1によりデコードされたオーディオデータと2ndオーディオデコーダ75−2によりデコードされたオーディオデータとがミキシングされたオーディオデータ)と、バッファ95からのサウンドデータをミキシング(合成または重畳)し、音声信号として出力する。
これらのスイッチ57乃至59、並びにスイッチ77は、ユーザインターフェースを介するユーザからの選択、または、対象となるデータが含まれるファイル側に基づいて、スイッチを切り替える。例えば、サブClip AVストリームファイルのみにしか、オーディオストリームが含まれていない場合、スイッチ59はサブ側にスイッチを切り替える。
次に、図35の再生装置20における再生処理を、図36のフローチャートを参照して説明する。なお、この処理は、ユーザによりユーザインターフェースを介して、所定のAVストリームの再生が指令されたとき開始される。
ステップS1において、コントローラ34は、ストレージドライブ31を介して、記録媒体や図示せぬHDD(Hard Disk Drive)に記録されているPlayListファイルを読み出す。例えば、図7を用いて説明したPlayListファイル(×××××.mpls)が読み出される。
ステップS2において、コントローラ34は、読み出したPlayListファイルを基に、再生するストリームにセカンダリビデオが存在するか否かを判断する。
具体的には、コントローラ34は、読み出したPlayListファイルの中のPlayItemの中の、例えば、図33および図34を用いて説明したSTN_table()のセカンダリビデオループ(video_stream_id2のforループ)を実行することにより、再生するストリームにセカンダリビデオが存在するか否かを判断する。
ステップS2において、セカンダリビデオが存在しないと判断された場合、ステップS3において、図37乃至図39を用いて後述するプライマリビデオ再生処理が実行される。
ステップS4において、コントローラ34は、読み出されたPlayListファイルに対応するストリームの再生は終了であるか否かを判断する。ステップS4において、ストリームの再生は終了ではないと判断された場合、処理は、ステップS3に戻り、それ以降の処理が繰り返され、ストリームの再生は終了であると判断された場合、処理が終了される。
ステップS2において、セカンダリビデオが存在すると判断された場合、ステップS5において、コントローラ34は、pip_metadataを読み出す。なお、上記の通りセカンダリビデオが含まれることを確認してから、PlayItemに関連するpip_metadataだけをメモリに保持するようにしても良いし、また、図7乃至図9で説明したようにpip_metadataは、Playlistの一部であるため、ステップS1のPlayListファイル読み出し時にpip_metadataも同時に読み出すようにしても良い。
具体的には、コントローラ34は、例えば、現在のPlayItem_idおよびSTN_table()により判別されるsecondary_video_stream_idに基づいて、対象となるpip_metadataを特定し、PlayListファイルから特定したpip_metadataを読み出す。
ステップS6において、コントローラ34は、読み出したpip_metadataの記載を基に、セカンダリストリームは、プライマリストリームに同期している(すなわち、メインパスのPlayItemの時間軸に同期している)か否かを判断する。
具体的には、例えば、pip_metadataのデータ構造が、図9を用いて説明したものであった場合、コントローラ34は、図10を用いて説明したpip_metadata_typeの値を基に、セカンダリストリームは、プライマリストリームに同期しているか否かを判断し、pip_metadataのデータ構造が、図11を用いて説明したものであった場合、コントローラ34は、Synchronous_PIP_metadata_flagを参照し、セカンダリストリームは、プライマリストリームに同期しているか否かを判断することができる。
また、例えば、pip_metadataのデータ構造が、図12を用いて説明したものであった場合、コントローラ34は、Subpath_typeによって、セカンダリストリームは、プライマリストリームと同期しているか否かを判断することができる。
なお、pip_metadataのデータ構造が、図9または図11を用いて説明したものであった場合、セカンダリストリームがプライマリストリームに同期しているか否かは、pip_metadata以外にも、図12のpip_metadataのデータ構造と同様に、Subpath_typeによって判断することもできる。すなわち、コントローラ34は、Subpath_typeにより、セカンダリストリームがプライマリストリームに同期しているか否かを判断することができる。
ステップS6において、セカンダリストリームは、プライマリストリームに同期していると判断された場合、ステップS7に進み、コントローラ34は、図17を参照して説明したように、プライマリストリームの表示時刻が、セカンダリストリームの再生区間の先頭を示すSubPlayItem_IN_timeとなっているか否かを判断する。
ステップS7において、プライマリストリームの表示時刻が、SubPlayItem_IN_timeでないと判断された場合、ステップS8において、図37乃至図39を用いて後述するプライマリビデオ再生処理が実行される。
一方、ステップS7において、プライマリストリームの表示時刻が、SubPlayItem_IN_timeであると判断された場合、ステップS9において、図40乃至図42を用いて後述するプライマリおよびセカンダリビデオ再生処理が実行される。
ステップS10において、コントローラ34は、プライマリストリームの表示時刻が、セカンダリストリームの再生区間の終了を示すSubPlayItem_OUT_timeであるか否かを判断する。ステップS10において、SubPlayItem_OUT_timeでないと判断された場合、ステップS9に戻り、それ以降の処理が繰り返され、SubPlayItem_OUT_timeであると判断された場合、ステップS11において、コントローラ34は、読み出されたPlayListファイルに対応するストリームの再生は終了であるか否かを判断する。
ステップS11において、ストリームの再生は終了ではないと判断された場合、処理は、ステップS7に戻り、それ以降の処理が繰り返され、ストリームの再生は終了であると判断された場合、処理が終了される。
一方、ステップS6において、セカンダリストリームは、プライマリストリームに同期していない(すなわち、サブパスのSubPlayItemの時間軸に同期している)と判断された場合、ユーザからセカンダリビデオストリームの表示が指示されるまで、プライマリビデオストリームのみが表示されるので、ステップS12において、図37乃至図39を用いて後述するプライマリビデオ再生処理が実行される。
ステップS13において、コントローラ34は、ユーザから、セカンダリビデオストリームの表示の指示を受けたか否かを判断する。
ステップS13において、セカンダリストリームの表示の指示を受けていないと判断された場合、ステップS14において、コントローラ34は、読み出されたPlayListファイルに対応するストリームの再生は終了であるか否かを判断する。ステップS14において、ストリームの再生は終了ではないと判断された場合、処理は、ステップS12に戻り、それ以降の処理が繰り返され、ストリームの再生は終了であると判断された場合、処理が終了される。
一方、ステップS13において、セカンダリビデオストリームの表示の指示を受けたと判断された場合、ステップS15において、図40乃至図42を用いて後述するプライマリおよびセカンダリビデオ再生処理が実行される。
ステップS16において、コントローラ34は、ユーザから、セカンダリビデオストリームの表示終了の指令を受けたか否かを判断する。ステップS16において、セカンダリストリームの表示終了の指令を受けたと判断された場合、処理は、ステップS12に戻り、それ以降の処理が繰り返される。
ステップS16において、セカンダリビデオストリームの表示終了の指令を受けていないと判断された場合、ステップS17において、コントローラ34は、読み出されたPlayListファイルに対応するストリームの再生は終了であるか否かを判断する。ステップS17において、ストリームの再生は終了ではないと判断された場合、処理は、ステップS15に戻り、それ以降の処理が繰り返され、ストリームの再生は終了であると判断された場合、処理が終了される。
このような処理により、読み出されたPlayListファイルに対応するストリームの再生において、セカンダリストリームが存在するか否か、存在する場合は、プライマリストリーム(メインパス)に同期しているか否かを基に、セカンダリストリームをプライマリストリームに重畳させて常に表示させるか否かが決まり、プライマリストリーム(メインパス)に同期していない場合は、ユーザからセカンダリストリームの表示が指令されたか、または、セカンダリストリームの表示終了が指令されたかに基づいて、セカンダリストリームをプライマリストリームに重畳させるか否かが決まる。
次に、図37乃至図39のフローチャートを参照して、図36のステップS3、ステップS8、またはステップS12において実行される、プライマリビデオ再生処理について説明する。
ステップS41において、コントローラ34は、メインClip、サブClip、およびテキストサブタイトルデータ(Text-STデータ)を読み出す。具体的には、コントローラ34は、図18を用いて説明したPlayListに含まれる、図22を用いて説明したPlayItemに基づいて、メインClipを読み出す。また、コントローラ34は、PlayListに含まれるSubPathで参照される、図21を用いて説明したSubPlayItemに基づいて、サブClipと、テキストサブタイトルデータを読み出す。
ステップS42において、コントローラ34は、読み出したデータ(メインClip、サブClip、およびテキストサブタイトルデータ)を対応するバッファ51乃至54に供給するようスイッチ32を制御する。具体的には、コントローラ34は、バックグラウンドイメージデータをバッファ51に供給し、メインClipのデータをバッファ52に供給し、サブClipのデータをバッファ53に供給し、Text-STのデータをバッファ54に供給するようスイッチ32を切り替える。
ステップS43において、スイッチ32はコントローラ34からの制御に基づいて、スイッチ32を切り替える。これにより、バックグラウンドイメージデータはバッファ51に供給され、メインClipのデータはバッファ52に供給され、サブClipのデータはバッファ53に供給され、テキストサブタイトルデータはバッファ54に供給される。
ステップS44において、各バッファ51乃至54は、供給されたデータをそれぞれバッファリングする。具体的には、バッファ51は、バックグラウンドイメージデータをバッファリングし、バッファ52は、メインClipのデータをバッファリングし、バッファ53は、サブClipのデータをバッファリングし、バッファ54は、Text-STデータをバッファリングする。
ステップS45において、バッファ51は、バックグラウンドイメージデータをバックグラウンドデコーダ71に出力する。
ステップS46において、バッファ52はメインClipのストリームデータをPIDフィルタ55に出力する。
ステップS47において、PIDフィルタ55は、メインClip AVストリームファイルを構成するTSパケットに付されているPIDに基づいて、各エレメンタリストリームのデコーダへ振り分ける。具体的には、PIDフィルタ55は、ビデオストリームをPIDフィルタ60を介して1stビデオデコーダ72−1に供給し、プレゼンテーショングラフィックスストリームをプレゼンテーショングラフィックスデコーダ73への供給元となるスイッチ57に供給し、インタラクティブグラフィックスストリームをインタラクティブグラフィックスデコーダ74への供給元となるスイッチ58に供給し、オーディオストリームを1stオーディオデコーダ75−1への供給元となるスイッチ59に供給する。すなわち、ビデオストリーム、プレゼンテーショングラフィックスストリーム、インタラクティブグラフィックスストリーム、およびオーディオストリームには、それぞれ異なるPIDが付されている。
ステップS48において、バッファ53は、サブClipのストリームデータをPIDフィルタ56に出力する。
ステップS49において、PIDフィルタ56は、PIDに基づいて、各エレメンタリストリームのデコーダへ振り分ける。具体的には、PIDフィルタ56は、供給されたビデオストリームをPIDフィルタ60を介して1stビデオデコーダ72−1へ供給し、プレゼンテーショングラフィックスストリームをプレゼンテーショングラフィックスデコーダ73への供給元となるスイッチ57に供給し、インタラクティブグラフィックスストリームをインタラクティブグラフィックスデコーダ74への供給元となるスイッチ58に供給し、オーディオストリームを1stオーディオデコーダ75−1と2ndオーディオデコーダ75−2への供給元となるスイッチ59に供給する。
ステップS50において、PIDフィルタ55およびPIDフィルタ56の後段のスイッチ57乃至59およびPIDフィルタ60は、ユーザインターフェースを介するコントローラ34からの制御に基づいて、メインClip とサブClipのいずれかを選択する。具体的には、スイッチ57は、PIDフィルタ55から供給されたメインClipまたはサブClipのプレゼンテーショングラフィックスストリームを選択し、後段のプレゼンテーショングラフィックスデコーダ73に供給する。また、スイッチ58は、PIDフィルタ55から供給されたメインClipまたはサブClipのインタラクティブグラフィックスストリームを選択し、後段のインタラクティブグラフィックスストリームデコーダ74に供給する。さらに、スイッチ59は、PIDフィルタ55から供給されたメインClip、または、PIDフィルタ56から供給されたサブClipのオーディオストリーム(ここでは、音声が切り替えられる前であるので、オーディオストリーム#1)を選択し、後段の1stオーディオデコーダ75−1に供給する。なお、音声を切り替えるような指令がユーザにより行われた場合には、スイッチ59は、メインClipのオーディオストリームを2ndオーディオデコーダ75−2に供給したり、サブClipのオーディオストリームを1stオーディオデコーダ75−1や2ndオーディオデコーダ75−2に供給したりもするが、ここでは、音声が切り替えられる前の再生処理について説明しているので、その説明は省略している。
ステップS51において、バッファ54は、テキストサブタイトルデータをテキストサブタイトルコンポジション76に出力する。
ステップS52において、バックグラウンドデコーダ71は、バックグラウンドイメージデータをデコードし、これをバックグラウンドプレーン生成部91に出力する。
ステップS53において、1stビデオデコーダ72−1は、ビデオストリーム(すなわち、供給されたプライマリビデオストリーム)をデコードし、これをビデオプレーン生成部92に出力する。
ステップS54において、プレゼンテーショングラフィックスデコーダ73は、スイッチ57により選択され、供給されたプレゼンテーショングラフィックスストリームをデコードし、これを後段のスイッチ77に出力する。
ステップS55において、インタラクティブグラフィックスデコーダ74は、スイッチ58により選択され、供給されたインタラクティブグラフィックスストリームをデコードし、これを後段のインタラクティブグラフィックスプレーン生成部94に出力する。
ステップS56において、1stオーディオデコーダ75−1は、スイッチ59により選択され、供給されたオーティオストリーム(オーディオストリーム#1)をデコードし、これを後段のミキシング処理部101に出力する。音声の切り替えがユーザにより指示されていない状態における再生処理では、2ndオーディオデコーダ75−2からオーディオデータが出力されることはないので、ミキシング処理部101は、1stオーディオデコーダ75−1から出力されたオーディオデータを、そのまま後段のミキシング処理部97に供給する。
ステップS57において、Text-STコンポジション76は、テキストサブタイトルデータをデコードし、これを後段のスイッチ77に出力する。
ステップS58において、スイッチ77は、プレゼンテーショングラフィックスデコーダ73またはText-STコンポジション76からのデータのいずれかを選択する。具体的には、スイッチ77は、プレゼンテーショングラフィックスデコーダ73によりデコードされたプレゼンテーショングラフィックスストリームと、Text-ST(テキストサブタイトルデータ)のうち、いずれか1つを選択し、選択したデータをプレゼンテーショングラフィックスプレーン生成部93に供給する。
ステップS59において、バックグラウンドプレーン生成部91は、バックグラウンドデコーダ71から供給されたバックグラウンドイメージデータに基づいて、バックグラウンドプレーンを生成する。
ステップS60において、ビデオプレーン生成部92は1stビデオデコーダ72−1から供給されたビデオデータに基づいて、ビデオプレーンを生成する。
ステップS61において、プレゼンテーショングラフィックスプレーン生成部93は、ステップS58の処理でスイッチ77により選択され、供給されたプレゼンテーショングラフィックスデコーダ73からのデータまたはText-STコンポジション76からのデータに基づいて、プレゼンテーショングラフィックスプレーンを生成する。
ステップS62において、インタラクティブグラフィックスプレーン生成部94は、インタラクティブグラフィックスデコーダ74から供給されたインタラクティブグラフィックスストリームのデータに基づいて、インタラクティブグラフィックスプレーンを生成する。
ステップS63において、バッファ95は、ステップS43の処理で選択され、供給されたサウンドデータをバッファリングし、所定のタイミングでミキシング処理部97に供給する。
ステップS64において、ビデオデータ処理部96は、各プレーンのデータを合成し、出力する。具体的には、バックグラウンドプレーン生成部91、ビデオプレーン生成部92、プレゼンテーショングラフィックスプレーン生成部93、およびインタラクティブグラフィックスプレーン生成部94からのデータを合成し、ビデオデータとして出力する。
ステップS65において、ミキシング処理部97は、オーディオデータ(ミキシング処理部101から出力されたオーディオデータ)とサウンドデータをミキシング(合成)し、出力して、処理は、図36のステップS3に戻り、ステップS4に進むか、または、図36のステップS8に戻り、ステップS7に進むか、図36のステップS12に戻り、ステップS13に進む。
図37乃至図39を用いて説明した処理により、PlayListに含まれるメインパスとサブパスによりメインClip、サブClip、およびテキストサブタイトルデータが参照され、再生される。ここで、表示される映像は、プライマリビデオストリームの映像のみであり、図5を用いて説明した副表示画面2は表示されない。PlayListにメインパスとサブパスを設けるようにし、サブパスで、メインパスで指定するClip AVストリームファイルとは異なるClipを指定可能な構成としたので、メインパスのPlayItemが指すメインClipとは異なるClipであるサブClipのデータとメインClipのデータを一緒に(同じタイミングで)再生することができる。
なお、図37乃至図39において、ステップS45,ステップS46の処理は、その順番が逆であってもよいし、平行して実行されてもよい。また、ステップS47、ステップS49の処理も、その順番が逆であってもよいし、平行して実行されてもよい。さらに、ステップS52乃至ステップS57の処理も、その順番が逆であってもよいし、平行して実行されてもよい。また、ステップS59乃至ステップS62の処理も、その順番が逆であってもよいし、平行して実行されてもよい。さらに、ステップS64,ステップS65の処理も、その順番が逆であってもよいし、平行して実行されてもよい。すなわち、図35において、縦に同じ階層のバッファ51乃至54の処理、スイッチ57乃至59の処理、デコーダ71乃至76の処理、プレーン生成部91乃至94の処理、ビデオデータ処理部96およびミキシング処理部97の処理は、それぞれ、平行して実行されてもよいし、その順番は問わない。
次に、図40乃至図42のフローチャートを参照して、図36のステップS9またはステップS15において実行される、プライマリおよびセカンダリビデオ再生処理について説明する。
ステップS101乃至ステップS106において、図37および図38を用いて説明したステップS41乃至ステップS46と基本的に同様の処理が実行される。
すなわち、コントローラ34により、メインClip、サブClip、およびテキストサブタイトルデータ(Text-STデータ)が読み出され、読み出したデータ(メインClip、サブClip、およびテキストサブタイトルデータ)を対応するバッファ51乃至54に供給するようスイッチ32が制御される。スイッチ32により、コントローラ34からの制御に基づいて、バックグラウンドイメージデータはバッファ51に供給され、メインClipのデータはバッファ52に供給され、サブClipのデータはバッファ53に供給され、テキストサブタイトルデータはバッファ54に供給され、バッファ51乃至54にバッファリングされる。バッファ51は、バックグラウンドイメージデータをバックグラウンドデコーダ71に出力する。バッファ52はメインClipのストリームデータをPIDフィルタ55に出力する。
ステップS107において、PIDフィルタ55は、メインClip AVストリームファイルを構成するTSパケットに付されているPIDに基づいて、各エレメンタリストリームのデコーダへ振り分ける。具体的には、PIDフィルタ55は、ビデオストリームをPIDフィルタ60に供給し、プレゼンテーショングラフィックスストリームをプレゼンテーショングラフィックスデコーダ73への供給元となるスイッチ57に供給し、インタラクティブグラフィックスストリームをインタラクティブグラフィックスデコーダ74への供給元となるスイッチ58に供給し、オーディオストリームを1stオーディオデコーダ75−1への供給元となるスイッチ59に供給する。すなわち、ビデオストリーム、プレゼンテーショングラフィックスストリーム、インタラクティブグラフィックスストリーム、およびオーディオストリームには、それぞれ異なるPIDが付されている。PIDフィルタ60は、コントローラ34の制御に基づいて、プライマリビデオストリームを1stビデオデコーダ72−1に供給し、セカンダリビデオストリームを2ndビデオデコーダ72−2に供給する。
ステップS108において、バッファ53は、サブClipのストリームデータをPIDフィルタ56に出力する。
ステップS109において、PIDフィルタ56は、PIDに基づいて、各エレメンタリストリームのデコーダへ振り分ける。具体的には、PIDフィルタ56は、供給されたビデオストリームをPIDフィルタ60へ供給し、プレゼンテーショングラフィックスストリームをプレゼンテーショングラフィックスデコーダ73への供給元となるスイッチ57に供給し、インタラクティブグラフィックスストリームをインタラクティブグラフィックスデコーダ74への供給元となるスイッチ58に供給し、オーディオストリームを1stオーディオデコーダ75−1と2ndオーディオデコーダ75−2への供給元となるスイッチ59に供給する。PIDフィルタ60は、コントローラ34の制御に基づいて、プライマリビデオストリームを1stビデオデコーダ72−1に供給し、セカンダリビデオストリームを2ndビデオデコーダ72−2に供給する。
そして、ステップS110乃至ステップS112において、図37および図38を用いて説明したステップS50乃至ステップS52と基本的に同様の処理が実行される。
すなわち、スイッチ57乃至59およびPIDフィルタ60は、コントローラ34からの制御に基づいて、メインClip とサブClipのいずれかを選択する。バッファ54は、テキストサブタイトルデータをテキストサブタイトルコンポジション76に出力する。バックグラウンドデコーダ71は、バックグラウンドイメージデータをデコードし、これをバックグラウンドプレーン生成部91に出力する。
そして、ステップS113において、1stビデオデコーダ72−1は、供給されたプライマリビデオストリームをデコードし、これをビデオプレーン生成部92に出力する。
ステップS114において、2ndビデオデコーダ72−2は、供給されたセカンダリビデオストリームをデコードし、これをビデオプレーン生成部92に出力する。
ステップS115において、プレゼンテーショングラフィックスデコーダ73は、スイッチ57により選択され、供給されたプレゼンテーショングラフィックスストリームをデコードし、これを後段のスイッチ77に出力する。
ステップS116において、インタラクティブグラフィックスデコーダ74は、スイッチ58により選択され、供給されたインタラクティブグラフィックスストリームをデコードし、これを後段のインタラクティブグラフィックスプレーン生成部94に出力する。
ステップS117において、1stオーディオデコーダ75−1は、スイッチ59により選択され、供給されたプライマリオーティオストリームをデコードし、これを後段のミキシング処理部101に出力する。
ステップS118において、2ndオーディオデコーダ75−2は、スイッチ59により選択され、供給されたセカンダリオーティオストリームをデコードし、これを後段のミキシング処理部101に出力する。
ステップS119において、Text-STコンポジション76は、プライマリまたはセカンダリのうち、表示されるテキストサブタイトルデータをデコードし、これを後段のスイッチ77に出力する。
ステップS120において、スイッチ77は、プレゼンテーショングラフィックスデコーダ73またはText-STコンポジション76からのデータのいずれかを選択する。具体的には、スイッチ77は、プレゼンテーショングラフィックスデコーダ73によりデコードされたプレゼンテーショングラフィックスストリームと、Text-ST(テキストサブタイトルデータ)のうち、いずれか1つを選択し、選択したデータをプレゼンテーショングラフィックスプレーン生成部93に供給する。
ステップS121において、バックグラウンドプレーン生成部91は、バックグラウンドデコーダ71から供給されたバックグラウンドイメージデータに基づいて、バックグラウンドプレーンを生成する。
ステップS122において、ビデオプレーン生成部92は、pip_metadataを参照したコントローラ34の制御に基づいて、1stビデオデコーダ72−1および2ndビデオデコーダ72−2から供給されたビデオデータを合成して、図5を用いて説明したような、主表示画面1および副表示画面2により構成されるビデオプレーンを生成し、これをビデオデータ処理部96に供給する。
具体的には、ビデオプレーン生成部92は、例えば、図9、図11、または図12を用いて説明したpip_metadataを参照したコントローラ34の制御に基づいて、ポジショニング、スケーリングしたセカンダリビデオストリームをプライマリビデオストリームに合成して、図5を用いて説明したような、主表示画面1および副表示画面2により構成されるビデオプレーンを生成し、これをビデオデータ処理部96に供給する。
ここで、図43を参照して、ポジショニングとスケーリングの詳細について説明する。
図9、図11、または図12を用いて説明したpip_metadataに示したように、pip_horizontal_positionは、例えば、図5の主表示画面1上において、セカンダリビデオが表示される副表示画面2の左上隅のX座標を示し、pip_vertical_positionは、例えば、図5の主表示画面1上において、セカンダリビデオが表示される副表示画面2の左上隅のY座標を示す。また、pip_scaleは、セカンダリビデオが表示される副表示画面2の大きさに関する情報を示す。
すなわち、図43に示すように、Primary Video plane(プライマリビデオプレーン)上において、pip_scaleに基づいて所定の大きさに調節されたスケーリングセカンダリビデオ(Scaled Secondary Video)は、プライマリビデオプレーンの左上隅から、X軸方向にpip_horizontal_position、Y軸方向にpip_vertical_positionとなる位置が、スケーリングセカンダリビデオの左上隅となるように配置されることになる。
また、このとき、図12を用いて説明したpip_metadataにおいて、“is_luma_key=1”である場合、ビデオプレーン生成部92は、プライマリビデオストリームとセカンダリビデオストリームとをluma_keying合成して、ビデオプレーンを生成し、これをビデオデータ処理部96に供給する。
ここで、luma_keying合成とは、図12のpip_metadataにより説明したように、明るさ(輝度値)の成分差を利用して不要な部分を切り抜いた画像を、映像に重ねて合成する手法である。次に、図44および図45を参照して、luma_keying合成の詳細について説明する。
図44は、luma_keying合成前のPrimary Video(プライマリビデオ)とSecondary Video(セカンダリビデオ)を示す図である。
図中右側のプライマリビデオと、左側のセカンダリビデオとをluma_keying合成する場合、図12のpip_metadataを用いて説明したように、lower_limit_luma_keyにより示される輝度値の下限から、upper_limit_luma_keyにより示される輝度値の上限までの範囲に含まれる、セカンダリビデオの輝度値を透明にし、そのセカンダリビデオをプライマリビデオに合成する。
すなわち、lower_limit_luma_keyとupper_limit_luma_keyで定義された輝度値の下限と上限の範囲が取り除かれたセカンダリビデオがプライマリビデオに重ねて合成される。具体的には、図44で示されるように、左側のセカンダリビデオの平行四辺形と円以外のハッチングされた領域は、輝度値の下限と上限の範囲内の輝度値となるので透明となり、そのように処理された左側のセカンダリビデオが、右側のプライマリビデオに重ねて合成される。
図45は、luma_keying合成後のプライマリビデオとセカンダリビデオを示す図である。
luma_keying合成後のプライマリビデオとセカンダリビデオは、図45に示すように、セカンダリビデオの平行四辺形と円以外の領域は透明となっているので、セカンダリビデオの領域のうち、平行四辺形と円の領域のみが、プライマリビデオと合成されることになる。
なお、図45では、説明を分かり易くするために、セカンダリビデオの領域を点線によって表現しているが、実際には、この点線が表示されることはない。
図42のフローチャートに戻り、ステップS123において、プレゼンテーショングラフィックスプレーン生成部93は、ステップS58の処理でスイッチ77により選択され、供給されたプレゼンテーショングラフィックスデコーダ73からのデータまたはText-STコンポジション76からのデータに基づいて、プレゼンテーショングラフィックスプレーンを生成する。
ステップS124において、インタラクティブグラフィックスプレーン生成部94は、インタラクティブグラフィックスデコーダ74から供給されたインタラクティブグラフィックスストリームのデータに基づいて、インタラクティブグラフィックスプレーンを生成する。
ステップS125において、バッファ95は、ステップS43の処理で選択され、供給されたサウンドデータをバッファリングし、所定のタイミングでミキシング処理部97に供給する。
ステップS126において、ビデオデータ処理部96は、各プレーンのデータを合成し、出力する。具体的には、バックグラウンドプレーン生成部91、ビデオプレーン生成部92、プレゼンテーショングラフィックスプレーン生成部93、およびインタラクティブグラフィックスプレーン生成部94からのデータを合成し、ビデオデータとして出力する。
ステップS127において、ミキシング処理部101は、1stオーディオデコーダ75−1から出力されたプライマリオーディオデータ、および、2ndオーディオデコーダ75−2から出力されたセカンダリオーディオデータを合成し、ミキシング処理部97に供給する。
ステップS128において、ミキシング処理部97は、ミキシング処理部101から出力された、合成されたオーディオデータとサウンドデータをミキシング(合成)し、出力して、処理は、図36のステップS9に戻り、ステップS10に進むか、または、図36のステップS15に戻り、ステップS16に進む。
図40乃至図42を用いて説明した処理により、PlayListに含まれるメインパスとサブパスによりメインClip、サブClip、およびテキストサブタイトルデータが参照され、再生される。PlayListにメインパスとサブパスを設けるようにし、サブパスで、メインパスで指定するClipAVストリームファイルとは異なるClipを指定可能な構成とし、プライマリビデオストリームの表示画像にセカンダリビデオストリームの表示画像を重畳させることができる。
このとき、セカンダリビデオストリームの表示画像の大きさと表示位置を設定することができるようにしたので、副表示画面の表示位置や表示の大きさが再生装置に依存してあらかじめ定められている場合と比較して、コンテンツによって、または、表示されるタイミングによって、プライマリビデオストリームの表示の邪魔とならない位置や大きさでセカンダリビデオストリームを表示させるようにしたり、または、セカンダリビデオストリームの内容に応じて、例えば、重要な内容であれば、目立つ位置に大きく表示させたり、重要でない内容であれば、主表示画面1の端に小さく表示させるようにすることなどが可能である。
また、セカンダリビデオストリームの表示画像の大きさと表示位置は、コンテンツの製作者、または、コンテンツの配給元が、適宜定めることができる。
なお、図40乃至図42において、ステップS105,ステップS106の処理は、その順番が逆であってもよいし、平行して実行されてもよい。また、ステップS107、ステップS109の処理も、その順番が逆であってもよいし、平行して実行されてもよい。さらに、ステップS112乃至ステップS119の処理も、その順番が逆であってもよいし、平行して実行されてもよい。また、ステップS121乃至ステップS124の処理も、その順番が逆であってもよいし、平行して実行されてもよい。さらに、ステップS126の処理と、ステップS127およびステップS128の処理も、その順番が逆であってもよいし、平行して実行されてもよい。すなわち、図35において、縦に同じ階層のバッファ51乃至54の処理、スイッチ57乃至59の処理、デコーダ71乃至76の処理、プレーン生成部91乃至94の処理、ビデオデータ処理部96およびミキシング処理部97の処理は、それぞれ、平行して実行されてもよいし、その順番は問わない。
以上の処理をまとめると、以下のようになる。
再生装置20は、少なくとも1つのストリームを含むメインClipAVストリームファイルの位置を示す主の再生パスであるメインパスと、メインClipAVストリームファイルとは異なる再生パスで再生されるサブClipAVストリームファイルの再生パスであるサブパスの情報を含んで構成される再生管理情報としてのPlayListを取得する。そして、再生装置20は、PlayListに含まれる再生するストリームを選択するためのSTN_table()に基づいて、再生するストリームの選択を受け付ける。STN_table()は、メインClipAVストリームファイルの所定の種類のストリーム(例えば、プライマリビデオストリーム)と、そのストリームの再生のタイミングに合わせて、または、非同期で再生される他のストリームファイルを選択するための情報であるので、このSTN_table()に基づいて、再生するストリームの選択を受け付けることができる。
また、PlayList Subpath_typeがIn-Muxのものであれば、メインパスとサブパスが同一Clipを参照することができ、さらにサブパスを追加することができるので、ストリームに拡張性を持たせることができる。また、1つのSub Pathで複数のファイルを参照可能な構成としたので(例えば、図4)、複数の異なるストリームの中からユーザが選択することができる。
さらに、Main PathのPlayItemの中に、Main Pathにより参照されるAVストリームファイルに多重化されている(含まれる)付属データ(例えば、オーディオストリーム)と、Sub Pathにより参照される付属データとを定義するテーブルとして、図23、並びに、図33および図34のSTN_table()を設けるようにしたので、より、拡張性の高いストリームを実現することができる。また、STN_table()にエントリーすれば、Sub Pathを容易に拡張することができる。
また、STN_table()にストリームの属性情報である図25のstream_attribute()を設けるようにしたので、再生装置20側で、選択されたストリームを再生可能か否かを判定することができる。さらに、stream_attribute()を参照することで、再生機能を有するストリームだけを選択して再生することができる。
さらに、STN_table()(図23、並びに、図33および図34)において、2つの同じ種類のストリームファイル(ここでは、プライマリビデオストリームファイルとセカンダリビデオストリームファイル、または、プライマリオーディオストリームファイルとセカンダリオーディオストリームファイル)を定義するようにした。さらに、図35の再生装置20に2つのビデオデコーダ(1stビデオデコーダ72−1と2ndビデオデコーダ72−2)および2つのオーディオデコーダ(1stオーディオデコーダ75−1と2ndオーディオデコーダ75−2)を設けた。そして、2つのビデオデコーダによりデコードされたプライマリビデオデータとセカンダリビデオデータを合成(ミキシング)するビデオプレーン生成部92を設け、2つのオーディオデコーダによりデコードされたオーディオデータを合成するミキシング処理部101を設けるようにした。これにより、2つの同じ種類のストリームを組み合わせて同時に再生することができる。
すなわち、本発明を適用した再生装置においては、図5に示されるように、プライマリビデオストリームを主画面に表示させ、主画面の中に、セカンダリストリームを子画面として合成して表示させる、いわゆるPinP(ピクチャインピクチャ)表示が可能である。
また、このとき、pip_metadataによって、ピクチャインピクチャ表示におけるセカンダリビデオストリームの表示画像の大きさと表示位置を設定することができるようにした。これにより、副表示画面の表示位置や表示の大きさが再生装置に依存してあらかじめ定められている場合と比較して、コンテンツによって、または、表示されるタイミングによって、プライマリビデオストリームの表示の邪魔とならない位置や大きさでセカンダリビデオストリームを表示させるようにしたり、または、セカンダリビデオストリームの内容に応じて、例えば、重要な内容であれば、目立つ位置に大きく表示させたり、重要でない内容であれば、主表示画面1の端に小さく表示させるようにすることなどが可能である。
また、セカンダリビデオストリームの表示画像の大きさと表示位置は、コンテンツの製作者、または、コンテンツの配給元が、適宜定めることができる。
また、pip_metadataには、セカンダリビデオストリームの表示画像の大きさと表示位置以外に、このピクチャインピクチャの表示の設定を示す情報を記載することができる。セカンダリビデオストリームが表示される副表示画面2の位置と大きさを示す情報以外に、例えば、セカンダリビデオストリームの原映像に対して表示される映像の回転や色の指定などに関する情報を記載することができる。
ここで、セカンダリビデオストリームの表示画像の大きさと表示位置をはじめとする表示に関する情報は、セカンダリビデオストリームには記載されず、セカンダリビデオストリームの再生を制御するためのプレイリストに記載される。すなわち、セカンダリビデオストリームを変更することなく、その表示形式のみを変更したい場合(例えば、セカンダリビデオストリームの表示位置のみを変更したり、表示の大きさを変更したい場合など)、再生装置の設定や、セカンダリビデオストリーム自体に手を加えることなく、プレイリストのpip_metadataの記載のみを更新するようにすればよい。
また、第1のコンテンツと第2のコンテンツにおいて、同一のセカンダリビデオストリームを、異なる表示方法で表示させること(例えば、同一のセカンダリビデオストリームを、第1のコンテンツでは大きく、第2のコンテンツでは小さく表示させることなど)が非常に容易である。すなわち、セカンダリビデオストリーム自体のデータをそれぞれ変更することなく、第1のコンテンツと第2のコンテンツのそれぞれにおいて、プレイリストのpip_metadataに、所望する表示形式を示す情報を記載することにより、第1のコンテンツと第2のコンテンツにおいて、同一のセカンダリビデオストリームを、コンテンツ作成者またはコンテンツ配給元が所望する異なる表示方法で表示させることが可能となる。
また、セカンダリビデオストリームの表示画像の大きさと表示位置をはじめとする表示に関する情報が、時間情報をはじめとする詳細な再生管理情報を有するプレイリストに記載されるので、セカンダリビデオの表示を詳細に設定することが可能となる。
また、Sub Pathには、図20に示されるように、Sub Pathのタイプ(オーディオやテキスト字幕といった種類と、メインパスと同期しているか否かを示すタイプ)を示すSubPath_type、Sub Pathが参照するサブClipの名を示す図21のClip_Information_file_name、およびSub Pathが参照するClipのイン点を示す図21のSubPlayItem_IN_timeとアウト点を示す図21のSubPlayItem_OUT_timeを含むようにしたので、Sub Pathが参照するデータを的確に特定することができる。
なお、図35のストレージドライブ31が読み出すデータは、DVD(Digital Versatile Disc)などの記録媒体に記録されているデータであってもよいし、ハードディスクに記録されているデータであってもよいし、図示せぬネットワークを介してダウンロードしたデータであってもよいし、これらが組み合わされたデータでもよい。例えば、ダウンロードされ、ハードディスクに記録されたPlayListおよびサブClipと、DVDに記録されたメインClipAVストリームファイルに基づいて、再生されてもよい。また、例えば、DVDに記録されたClipAVストリームファイルをサブClipとするようなPlayListとメインClipがハードディスクに記録されている場合に、ハードディスクに記録されているPlayListに基づいて、メインClipとサブClipがそれぞれ、ハードディスクとDVDから読み出され再生されてもよい。
なお、セカンダリビデオの位置、大きさなどが再生装置20(プレーヤ)の機能で変更するようにすることもできるが、この場合、オーサが意図した大きさなどにならないときがある。一方、本願発明のように管理情報であるPlaylistで大きさ、位置などを管理すれば、例えばROMディスクの取得後に位置などを変更させたい場合であっても、実際のClipに変更を加えなくても、サイズが比較的小さいプレイリストを取得するだけで、オーサが意図したとおりにセカンダリビデオの位置などを変更することができる。
次に、図46および図47を参照して、再生装置20において再生可能なデータが記録された記録媒体21の製造方法について、記録媒体21がディスク状の記録媒体だった場合を例として説明する。
すなわち、図46に示すように、例えばガラスなどよりなる原盤が用意され、その上に、例えばフォトレジストなどよりなる記録材料が塗布される。これにより、記録用原盤が製作される。
そして、図47に示すように、ソフト製作処理部において、符号化装置(ビデオエンコーダ)で符号化された、再生装置20において再生可能な形式のビデオデータが、一時バッファに記憶され、オーディオエンコーダで符号化されたオーディオデータが、一時バッファに記憶されるとともに、更に、データエンコーダで符号化された、ストリーム以外のデータ(例えば、Indexes、Playlist、PlayItemなど)が一時バッファに記憶される。それぞれのバッファに記憶されたビデオデータ、オーディオデータ、および、ストリーム以外のデータは、多重化器(MPX)で同期信号と共に多重化され、誤り訂正符号回路(ECC)でエラー訂正用のコードが付加される。そして、変調回路(MOD)で所定の変調がかけられ、所定のフォーマットにしたがって、例えば磁気テープなどに一旦記録され、再生装置20において再生可能な記録媒体21に記録されるソフトウェアが製作される。
このソフトウェアを必要に応じて編集(プリマスタリング)し、光ディスクに記録すべきフォーマットの信号が生成される。そして、図46に示すように、この記録信号に対応して、レーザビームが変調されて、このレーザビームが原盤上のフォトレジスト上に照射される。これにより、原盤上のフォトレジストが記録信号に対応して露光される。
その後、この原盤を現像し、原盤上にピットを出現させる。このようにして用意された原盤に、例えば電鋳などの処理を施し、ガラス原盤上のピットを転写した金属原盤を製作する。この金属原盤から、さらに金属スタンパを製作し、これを成形用金型とする。
この成形用金型に、例えばインジェクションなどによりPMMA(アクリル)またはPC(ポリカーボネート)などの材料を注入し、固定化させる。あるいは、金属スタンパ上に2P(紫外線硬化樹脂)などを塗布した後、紫外線を照射して硬化させる。これにより、金属スタンパ上のピットを、樹脂よりなるレプリカ上に転写することができる。
このようにして生成されたレプリカ上に、反射膜が、蒸着あるいはスパッタリングなどにより形成される。あるいはまた、生成されたレプリカ上に、反射膜が、スピンコートにより形成される。
その後、このディスクに対して内外径の加工が施され、2枚のディスクを張り合わせるなどの必要な処置が施される。さらに、ラベルを貼り付けたり、ハブが取り付けられて、カートリッジに挿入される。このようにして再生装置20によって再生可能なデータが記録された記録媒体21が完成する。
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウェアにより実行させることもできる。この場合、上述した処理は、図48に示されるようなパーソナルコンピュータ500により実行される。
図48において、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(Cathode Ray Tube),LCD(Liquid Crystal Display)などよりなるディスプレイ、スピーカなどよりなる出力部507、ハードディスクなどより構成される記憶部508、並びに、モデム、ターミナルアダプタなどより構成される通信部509が接続されている。通信部509は、電話回線やCATVを含む各種のネットワークを介しての通信処理を行う。
入出力インターフェース505にはまた、必要に応じてドライブ510が接続され、磁気ディスク、光ディスク、光磁気ディスク、あるいは半導体メモリなどによりなるリムーバブルメディア521が適宜装着され、それから読み出されたコンピュータプログラムが、必要に応じて記憶部508にインストールされる。
一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、ネットワークやプログラム格納媒体からインストールされる。
このプログラム格納媒体は、図48に示されるように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されているリムーバブルメディア521よりなるパッケージメディアにより構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM502や記憶部508が含まれるハードディスクなどで構成される。
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
1 主表示画面, 2 副表示画面, 20 再生装置, 31 ストレージドライブ, 32 スイッチ, 33 AVデコーダ部, 34 コントローラ, 51乃至54 バッファ, 55,56 PIDフィルタ, 57乃至59 スイッチ, 71 バックグラウンドデコーダ, 72−1 1stビデオデコーダ, 72−2 2ndビデオデコーダ, 73 プレゼンテーショングラフィックスデコーダ, 74 インタラクティブグラフィックスデコーダ, 75 オーディオデコーダ, 76 Text-STコンポジション, 77 スイッチ, 91 バックグラウンドプレーン生成部, 92 ビデオプレーン生成部, 93 プレゼンテーショングラフィックスプレーン生成部, 94 インタラクティブグラフィックスプレーン生成部, 95 バッファ 96 ビデオデータ処理部, 97 ミキシング処理部, 101 ミキシング処理部