以下に本発明の実施の形態を説明するが、本明細書に記載の発明と、発明の実施の形態との対応関係を例示すると、次のようになる。この記載は、本明細書に記載されている発明をサポートする実施の形態が、本明細書に記載されていることを確認するためのものである。したがって、発明の実施の形態中には記載されているが、発明に対応するものとして、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その発明に対応するものではないことを意味するものではない。逆に、実施の形態が発明に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その発明以外の発明には対応しないものであることを意味するものでもない。
更に、この記載は、本明細書に記載されている発明の全てを意味するものでもない。換言すれば、この記載は、本明細書に記載されている発明であって、この出願では請求されていない発明の存在、すなわち、将来、分割出願されたり、補正により出現、追加される発明の存在を否定するものではない。
本発明の第1の側面の再生装置(図49の再生装置401)は、
メインストリーム群(例えば図58のClip- AV Stream 0のVideoやAudio等)の時間軸上の位置を示す主の再生パス(例えば、図58のMain path:メインパス)、前記第1のサブストリーム群(例えば、2ndVideoや2ndAudio等)の時間軸上の位置を示す第1の副の再生パス(例えば、図58のSub path-1:サブパス-1)、および、前記第1のサブストリーム群とは異なる第2のサブストリーム群(例えばAudio等)の時間軸上の位置を示す第2の副の再生パス(例えば、図58のClip AV Stream -1を参照するSub path-2:サブパス-2や、Clip AV Stream -2を参照するSub path-3:サブパス-3)を含み、前記メインストリーム群の種類に応じて予め定義されている複数の種類のうちの所定の種類(例えば図53のapplication_type (of Main TS)の項目で分けられている種類のうちの、Movie Type/Time-based Slideshowと記述された種類。即ち、後述する同期型の種類)に分類されている再生管理情報(例えば図58のPlayList)であって、前記第1の副の再生パスと前記第2の副の再生パスのそれぞれは前記所定の種類に対して許可されたタイプ(例えば図53の例の場合、SubPath_type=5,6,7のうちのいずれかである。ただし、ここでいうSubPath_typeは図45の例に従っている)の再生パスである、という第1の条件を少なくとも満たしている前記再生管理情報を取得する取得手段(例えば図61乃至図64のapplication_type=1or2のPlayListの再生処理を実行するために、図26のステップS11等の処理を実行する図49のコントローラ34)と、
前記取得手段により取得された前記再生管理情報に基づいて、再生するストリームの選択を、前記メインストリーム群と前記第1のサブストリーム群との第1の組み合わせ、または、前記メインストリーム群と前記第2のサブストリーム群との第2の組み合わせとして受け付ける受付手段(例えば、図64のステップS163YES,S164乃至S169等の処理を実行する図49のコントローラ34)と、
前記受付手段により前記第1の組み合わせが受け付けられた場合、前記メインストリーム群を前記主の再生パスを参照して読み出すとともに、前記第1のサブストリーム群を前記第1の副の再生パスを参照して読み出し、前記受付手段により前記第2の組み合わせが受け付けられた場合、前記メインストリーム群を前記主の再生パスを参照して読み出すとともに、前記第2のサブストリーム群を前記第2の副の再生パスを参照して読み出す読み出し手段(例えば、図58の例のPlayListの再生の場合には、図62のステップS151、図63のステップS155、図64のステップS161とS162等の処理を実行する前に、図51のステップS108等と等価の処理を実行する図49のコントローラ34)と、
前記読み出し手段により読み出された前記メインストリーム群とともに、前記第1のサブストリーム群と前記第2のサブストリーム群とのうちの前記読み出し手段により読み出された方を再生する(例えば、図58の例のPlayListの再生の場合には、図62のステップS151、図63のステップS155、図64のステップS161とS162等の処理を実行する図49のAVデコーダ部33)と
を備え、
前記メインストリーム群、前記第1のサブストリーム群、および、前記第2のサブストリーム群は、いずれかのファイル(いずれかのClip)に含まれており、
前記読み出し手段が一度に読み出すことが可能なファイルの読み出し個数が予め決められており、
前記主の再生パスは、第1のファイルに含まれる前記メインストリーム群のうちの少なくとも1つのストリーム(例えば、図55乃至図58の例ではClip AV Stream-0)の時間軸上の位置を示し、
前記副の再生パスは、1以上の第2のファイルに含まれる前記第1のサブストリーム群または前記第2のサブストリーム群のうちの少なくとも1つのストリーム(例えば、図55乃至図58の例ではClip AV Stream -1,2,3)のそれぞれの時間軸上の位置を示し、
前記第1の条件に加えてさらに、一度に読み出される前記ファイルの総数が前記読み出し個数以下となるように、1以上の前記副の再生パスを決定する、という第2の条件(例えば図53のnumber of SubPathsの項目と、図54の表とで示される条件)を前記再生管理情報は満たしており、
1以上の前記副の再生パスのそれぞれのタイプの中に、参照される前記第2のファイルが前記第1のファイルの読み出しタイミングとは別のタイミングで読み出されることが規定されている、という別読み出しタイプ(例えば図45のSubpath_type3、即ち、IGをプリロードしておくタイプ)が1以上含まれる場合、
前記第1の条件と前記第2の条件とに加えてさらに、前記別読み出しタイプの1以上の前記副の再生パスのそれぞれで参照される前記第2のファイルは、前記第2の条件における前記総数をカウントする対象に含めない、という第3の条件を満たしており、
前記読み出し手段は、前記取得手段により取得された前記再生管理情報で特定される1以上のストリームのそれぞれを、前記主の再生パスにより参照される前記第1のファイル、および、1以上の前記副の再生パスのそれぞれにより参照される前記第2のファイルのうちの、それぞれ対応するファイルからそれぞれ読み出す。
本発明の第2の側面の記録媒体は、再生管理情報が、メインストリーム群の時間軸上の位置を示す主の再生パス、第1のサブストリーム群の時間軸上の位置を示す第1の副の再生パス、および、前記第1のサブストリーム群とは異なる第2のサブストリーム群の時間軸上の位置を示す第2の副の再生パスを含み、前記メインストリーム群の種類に応じて予め定義されている複数の種類のうちの所定の種類に分類され、前記第1の副の再生パスと前記第2の副の再生パスのそれぞれは前記所定の種類に対して許可されたタイプ(例えば図53の例の場合、SubPath_type=5,6,7のうちのいずれかである。ただし、ここでいうSubPath_typeは図45の例に従っている)の再生パスであるという第1の条件を少なくとも満たしており、前記メインストリーム群、前記第1のサブストリーム群、および、前記第2のサブストリーム群は、いずれかのファイル(いずれかのClip)に含まれており、一度に読み出される前記ファイルの総数が、再生装置において予め決められた、一度に読み出すことが可能な読み出し個数以下となるように、前記第1の副の再生パスおよび前記第2の副の再生パスを決定する、という第2の条件を満たしており、前記主の再生パスは、第1のファイルに含まれる前記メインストリーム群のうちの少なくとも1つのストリーム(例えば、図55乃至図58の例ではClip AV Stream-0)の時間軸上の位置を示し、前記副の再生パスは、1以上の第2のファイルに含まれる前記第1のサブストリーム群または前記第2のサブストリーム群のうちの少なくとも1つのストリーム(例えば、図55乃至図58の例ではClip AV Stream -1,2,3)のそれぞれの時間軸上の位置を示し、1以上の前記副の再生パスのそれぞれのタイプの中に、参照される前記第2のファイルが前記第1のファイルの読み出しタイミングとは別のタイミングで読み出されることが規定されている、という別読み出しタイプ(例えば図45のSubpath_type3、即ち、IGをプリロードしておくタイプ)が1以上含まれる場合、前記第1の条件と前記第2の条件とに加えてさらに、前記別読み出しタイプの1以上の前記副の再生パスのそれぞれで参照される前記第2のファイルは、前記第2の条件における前記総数をカウントする対象に含めない、という第3の条件を満たしている。
本発明の第3の側面の記録方法は、ファイルの再生を管理する再生管理情報が、メインストリーム群の時間軸上の位置を示す主の再生パス、第1のサブストリーム群の時間軸上の位置を示す第1の副の再生パス、および、前記第1のサブストリーム群とは異なる第2のサブストリーム群の時間軸上の位置を示す第2の副の再生パスを含み、前記メインストリーム群の種類に応じて予め定義されている複数の種類のうちの所定の種類に分類され、前記第1の副の再生パスと前記第2の副の再生パスのそれぞれは前記所定の種類に対して許可されたタイプ(例えば図53の例の場合、SubPath_type=5,6,7のうちのいずれかである。ただし、ここでいうSubPath_typeは図45の例に従っている)の再生パスであるという第1の条件を少なくとも満たしており、前記メインストリーム群、前記第1のサブストリーム群、および、前記第2のサブストリーム群は、いずれかのファイル(いずれかのClip)に含まれており、一度に読み出される前記ファイルの総数が、再生装置において予め決められた、一度に読み出すことが可能な読み出し個数以下となるように、前記第1の副の再生パスおよび前記第2の副の再生パスを決定する、という第2の条件を満たしており、前記主の再生パスは、第1のファイルに含まれる前記メインストリーム群のうちの少なくとも1つのストリーム(例えば、図55乃至図58の例ではClip AV Stream-0)の時間軸上の位置を示し、前記副の再生パスは、1以上の第2のファイルに含まれる前記第1のサブストリーム群または前記第2のサブストリーム群のうちの少なくとも1つのストリーム(例えば、図55乃至図58の例ではClip AV Stream -1,2,3)のそれぞれの時間軸上の位置を示し、1以上の前記副の再生パスのそれぞれのタイプの中に、参照される前記第2のファイルが前記第1のファイルの読み出しタイミングとは別のタイミングで読み出されることが規定されている、という別読み出しタイプ(例えば図45のSubpath_type3、即ち、IGをプリロードしておくタイプ)が1以上含まれる場合、前記第1の条件と前記第2の条件とに加えてさらに、前記別読み出しタイプの1以上の前記副の再生パスのそれぞれで参照される前記第2のファイルは、前記第2の条件における前記総数をカウントする対象に含めない、という第3の条件を満たしているデータ構造を有するデータを生成し、記録媒体に記録するステップを含む。
以下、図を参照して、本発明の実施の形態について説明する。
図5は、本発明を適用した再生装置、例えば図25を参照して後述する再生装置20や図49を参照して後述する再生装置401等に装着される記録媒体上のアプリケーションフォーマットの例を示す図である。記録媒体は、後述する光ディスクの他、磁気ディスクや半導体メモリであってもよい。
アプリケーションフォーマットは、AV(Audio Visual)ストリームの管理のために、PlayListとClipの2つのレイヤを有している。ここでは、1つのAVストリームとそれに付随する情報であるClipインフォメーションのペアを1つのオブジェクトと考え、それらをまとめてClipと称する。以下、AVストリームをAVストリームファイルとも称する。なお、AVストリームファイルには、音声データや映像データ以外にも、これらのデータとともに再生される各種のストリームファイルが含まれていてもよい。また、ClipインフォメーションをClipインフォメーションファイルとも称する。
一般的に、コンピュータ等で用いられるファイルはバイト列として扱われるが、AVストリームファイルのコンテンツは時間軸上に展開され、Clipのアクセスポイントは、主に、タイムスタンプでPlayListにより指定される。すなわち、PlayListとClipは、AVストリームの管理のためのレイヤである。
Clip中のアクセスポイントがタイムスタンプでPlayListにより示されている場合、Clip Informationファイルは、タイムスタンプから、AVストリームファイル中のデコードを開始すべきアドレス情報を見つけるために使用される。
PlayListは、AVストリームの再生区間の集まりである。あるAVストリーム中の1つの再生区間はPlayItemと呼ばれ、それは、時間軸上の再生区間のIN点(再生開始点)とOUT点(再生終了点)のペアで表される。従って、PlayListは、図5に示されるように1つ、または複数のPlayItemにより構成される。
図5において、左から1番目のPlayListは2つのPlayItemから構成され、その2つのPlayItemにより、左側のClipに含まれるAVストリームの前半部分と後半部分がそれぞれ参照されている。また、左から2番目のPlayListは1つのPlayItemから構成され、それにより、右側のClipに含まれるAVストリーム全体が参照されている。さらに、左から3番目のPlayListは2つのPlayItemから構成され、その2つのPlayItemにより、左側のClipに含まれるAVストリームのある部分と、右側のClipに含まれるAVストリームのある部分がそれぞれ参照されている。
例えば、図5のディスクナビゲーションプログラムにより、そのときの再生位置を表す情報として、左から1番目のPlayListに含まれる左側のPlayItemが指定された場合、そのPlayItemが参照する、左側のClipに含まれるAVストリームの前半部分の再生が行われる。このように、PlayListは、AVストリームファイルの再生を管理するための再生管理情報として用いられる。
ディスクナビゲーションプログラムは、PlayListの再生の順序や、PlayListのインタラクティブな再生をコントロールする機能を有する。また、ディスクナビゲーションプログラムは、各種の再生の実行をユーザが指示するためのメニュー画面を表示する機能なども有する。このディスクナビゲーションプログラムは、例えば、Java(登録商標)などのプログラミング言語で記述され、記録媒体上に用意される。
本実施の形態では、PlayListの中で、1つ以上のPlayItemの並びによって(連続するPlayItemにより)作られる再生パスをメインパス(Main Path)と称し、PlayListの中で、Main Pathに並行(並列)して、1つ以上のSub Pathの並びによって(非連続でもよいし、連続してもよいSubPlayItemにより)作られる再生パスをサブパス(Sub Path)と称する。すなわち、再生装置20(図25を参照して後述する)や再生装置401(図49を参照して後述する)に装着される記録媒体上のアプリケーションフォーマットは、メインパスに関連付けられて(合わせて)再生されるサブパス(Sub Path)をPlayListの中に持つ。
図6は、メインパスとサブパスの構造を説明する図である。PlayListは、1つのメインパスと1つ以上のサブパスを持つことができる。1つのメインパスは、1つ以上のPlayItemの並びによって作られ、1つのサブパスは、1つ以上のSubPlayItemの並びによって作られる。
図6の例の場合、PlayListは、3つのPlayItemの並びにより作られる1つのメインパスと、3つのサブパスを有している。メインパスを構成するPlayItemには、先頭から順番にそれぞれID(Identification)が付されている。具体的には、メインパスは、PlayItem_id=0、PlayItem_id=1、およびPlayItem_id=2のPlayItemからなる。また、サブパスにも先頭から順番にSubpath_id=0、Subpath_id=1、およびSubpath_id=2、とそれぞれIDが付されている。Subpath_id=0のサブパスには、1つのSubPlayItemが含まれ、Subpath_id=1のサブパスには、2つのSubPlayItemが含まれ、Subpath_id=2のサブパスには、1つのSubPlayItemが含まれる。
Subpath_id=0のサブパスに含まれるSubPlayItemが参照するストリームは、例えば、映画の日本語吹き替えの音声と想定され、Mainpathにより参照されるAVストリームファイルのオーディオストリームに替えて再生される場合が考えられる。また、Subpath_id=1のサブパスに含まれるSubPlayItemが参照するストリームは、例えば、映画のディレクターズカットと想定され、Main Pathにより参照されるAVストリームファイルの所定の部分にのみ、映画監督などのコメントが入っている場合が考えられる。
1つのPlayItemが参照するClip AVストリームファイルには、少なくともビデオストリームデータ(メイン画像データ)が含まれる。また、Clip AVストリームファイルには、Clip AVストリームファイルに含まれるビデオストリーム(メイン画像データ)と同じタイミングで(同期して)再生されるオーディオストリームが1つ以上含まれてもよいし、含まれなくてもよい。さらに、Clip AVストリームファイルには、Clip AVストリームファイルに含まれるビデオストリームと同じタイミングで再生されるビットマップ字幕ストリームが1つ以上含まれてもよいし、含まれなくてもよい。また、Clip AVストリームファイルには、Clip AVストリームファイルに含まれるビデオストリームと同じタイミングで再生されるインタラクティブグラフィックスストリームが1つ以上含まれてもよいし、含まれなくてもよい。そして、Clip AVストリームファイルに含まれるビデオストリームと、ビデオストリームと同じタイミングで再生されるオーディオストリーム、ビットマップ字幕ストリームファイル、またはインタラクティブグラフィックスストリームとは多重化されている。すなわち、1つのPlayItemが参照するClip AVストリームファイルには、ビデオストリームデータと、そのビデオストリームに合わせて再生される0個以上のオーディオストリーム、0個以上のビットマップ字幕ストリームデータ、および0個以上のインタラクティブグラフィックスストリームデータとが多重化されている。
すなわち、1つのPlayItemが参照するClip AVストリームファイルには、ビデオストリーム、オーディオストリーム、ビットマップ字幕ストリームファイル、または、インタラクティブグラフィックスストリームなどの、複数の種類のストリームが含まれている。
また、1つのSubPlayItemは、PlayItemが参照するClip AVストリームファイルとは異なるストリーム(別ストリーム)のオーディオストリームデータや字幕データを参照する。
メインパスのみを有するPlayListを再生する場合、ユーザによる音声切り替えや字幕切り替えという操作は、そのメインパスが参照するClipに多重化されているオーディオストリームとサブピクチャストリームの中からしか音声や字幕を選択することができない。これに対し、メインパスとサブパスを持つPlayListを再生する場合、そのメインパスが参照するClip AVストリームファイルに多重化されているオーディオストリームとサブピクチャストリームに加えて、SubPlayItemが参照するClipのオーディオストリームやサブピクチャストリームを参照することができる。
このように、1つのPlayListの中にSubPathを複数含め、それぞれのSubPathがそれぞれSubPlayItemを参照する構成としたので、拡張性の高い、また、自由度の高いAVストリームを実現することができる。すなわち、MainPathで参照されるClip AVストリームに加えて、後で、SubPlayItemを追加できる構成とすることができる。
図7は、メインパスとサブパスの例を説明する図である。図7においては、メインパスと同じタイミングで(AV同期して)再生されるオーディオの再生パスを、サブパスを使用して表している。
図7のPlayListには、メインパスとして、PlayItem_id=0である1つのPlayItemと、サブパスとして1つのSubPlayItemが含まれている。メインパスのPlayItem_id=0である1つのPlayItem()は、図7のメインAVストリームを参照している。SubPlayItem()には、以下に示すデータが含まれる。まず、SubPlayItem ()には、PlayListの中のSub Path(サブパス)が参照するClipを指定するためのClip_Information_file_nameが含まれる。図7の例の場合、SubPlayItemによって、SubClip_entry_id=0のAuxiliary audio stream(オーディオストリーム)が参照されている。また、SubPlayItem ()には、指定されたClipに含まれるストリーム(ここでは、Auxiliary audio stream)中のSub Pathの再生区間を指定するためのSubPlayItem_IN_timeとSubPlayItem_OUT_timeとが含まれる。さらに、SubPlayItem()には、Main pathの時間軸上でSub Pathが再生開始する時刻を指定するためのsync_PlayItem_idとsync_start_PTS_of_PlayItemとが含まれる。図7の例の場合、sync_PlayItem_id=0とされ、sync_start_PTS_of_PlayItem=t1とされている。これにより、メインパスのPlayItem_id=0の時間軸上でSub Pathが再生を開始する時刻t1を指定することができる。すなわち、図7の例の場合では、メインパスの再生開始時刻t1とサブパスの開始時刻t1が同時刻であることを示している。
ここで、Sub Pathに参照されるオーディオのClip AVストリームは、STC不連続点(システムタイムベースの不連続点)を含んではならない。サブパスに使われるClipのオーディオサンプルのクロックは、メインパスのオーディオサンプルのクロックにロックされている。
換言すると、SubPlayItem()には、Sub Pathが参照するClipを指定する情報、Sub Pathの再生区間を指定する情報、およびMain pathの時間軸上でSub Pathが再生を開始する時刻を指定する情報が含まれている。Sub Pathに使われるClip AVストリームがSTCを含まないため、SubPlayItem()に含まれる情報(Sub Pathが参照するClipを指定する情報、Sub Pathの再生区間を指定する情報、およびMain pathの時間軸上でSub Pathが再生を開始する時刻を指定する情報)に基づいて、メインパスが参照するClip AVストリーム(メインAVストリーム)とは異なるClip AVストリームのオーディオストリームを参照して、再生することができる。
このように、PlayItemとSubPlayItemは、Clip AVストリームファイルをそれぞれ管理するものであり、ここでは、PlayItemが管理するClip AVストリームファイル(メインAVストリーム)とSubPlayItemが管理するClip AVストリームファイルは異なるファイルとなる。
なお、図7の例と同様にして、メインパスと同じタイミングで再生される字幕ストリーム再生パスを、サブパスを使用して表すこともできる。
図8は、メインパスとサブパスの別の例を説明する図である。図8においては、メインパスと同じタイミングで(AV同期して)再生されるオーディオの再生パスを、サブパスを使用して表している。ここで、メインパスのPlayItemが参照するメインAVストリームファイルは、図7と同様であるので省略している。
例えば、メインパスにより参照されるClipAVストリームを1つの映画のコンテンツ(AVコンテンツ)とし、サブパスのオーディオパスにより参照されるAuxiliary audio streamをその映画に対する監督のコメントとし、メインパスで参照されるClipAVストリームのオーディオストリームにサブパスのオーディオパスで参照されるAuxiliary audio streamをミキシング(重ねて)再生するような場合に、このような構成が利用される。すなわち、ユーザが、映画を見ながら、その映画に対する監督のコメントを合わせて聞く指令を再生装置(プレーヤ)へ入力した場合、例えば、メインパスで参照されるClipAVストリームの音声と、サブパスのオーディオパスで参照されるAuxiliary audio streamとを、ミキシングして再生させる場合に利用される。
図8においては、メインパスに3つのPlayItemがPlayItem_id=0,1,2と配置され、サブパス(Subpath_id=0)に2つのSubPlayItemが配置されている。そして、Subpath_id=0のSubPath(図10にて後述する)で呼び出すSubPlayItem(図12にて後述する)は、Auxiliary audio stream(SubClip_entry_id=0の英語のAuxiliary audio streamのクリップ及びSubClip_entry_id=1の日本語のAuxiliary audio streamのクリップ)のSubpathの再生区間を指定するための、SubPlayItem_IN_timeと、SubPlayItem_out_timeを含む。
図8と図7とを比較するに、図8においては、SubPlayItemによって、SubClip_entry_id=0,1のAuxiliary audio stream(英語または日本語のオーディオストリーム)を参照することができる。すなわち、SubPlayItemを用いて、複数のオーディオストリームファイルを参照する構造を有し、このSubPlayItemを再生する場合には、複数のオーディオストームファイルから1つのオーディオストリームファイルが選ばれて再生される。図8の例の場合、英語のオーディオストリームファイルと日本語のオーディオストリームファイルのうち、1つのオーディオストリームファイルが選ばれて再生される。具体的には、subClip_entry_id=0,1の中から(例えば、ユーザの指令に基づいて)1つが選択され、そのIDが参照するAuxiliary audio streamが再生される。また、これに加えて、さらにメインパスにより参照されるオーディオストリームとのミキシングによる再生が選択された場合(再生するオーディオストリームとして2つのオーディオストリームが選択された場合)、例えば、メインパスで参照されるオーディオストリームファイルと、サブパスのオーディオパスで参照されるオーディオストリームファイルとが、ミキシングされて再生される。
次に、図6乃至図8を用いて説明したメインパスとサブパスの構造を具体的に実現するためのデータ構造(シンタクス)を説明する。
図9は、PlayList()のシンタクスを示す図である。
lengthは、このlengthフィールドの直後からPlayList()の最後までのバイト数を示す32ビットの符号なし整数である。すなわち、reserved_for_future_useからPlaylistの最後までのバイト数を示すフィールドである。このlengthの後には、16ビットのreserved_for_future_useが用意される。number_of_PlayItemsは、PlayListの中にあるPlayItemの数を示す16ビットのフィールドである。例えば、図6の例の場合PlayItemの数は3個である。PlayItem_idの値は、PlayListの中でPlayItem()が現れる順番に0から割り振られる。例えば、図6および図8に示されるように、PlayItem_id=0,1,2が割り振られる。
number_of_SubPathsは、PlayListの中にあるSubPathの数(エントリー数)を示す16ビットのフィールドである。例えば、図6の例の場合、Sub Pathの数は3個である。SubPath_idの値は、PlayListの中でSubPath()が現れる順番に0から割り振られる。例えば、図6に示されるように、Subpath_id=0,1,2が割り振られる。その後のfor文では、PlayItemの数だけPlayItemが参照され、Sub Pathの数だけ、Sub Pathが参照される。
図10は、SubPath()のシンタクスを示す図である。
lengthは、このlengthフィールドの直後からSub Path ()の最後までのバイト数を示す32ビットの符号なし整数である。すなわち、reserved_for_future_useからPlaylistの最後までのバイト数を示すフィールドである。このlengthの後には、16ビットのreserved_for_future_useが用意される。SubPath_typeは、SubPathのアプリケーション種類を示す8ビットのフィールドである。SubPath_typeは、例えば、Sub Pathがオーディオであるか、ビットマップ字幕であるか、テキスト字幕であるかなどの種類を示す場合に利用される。このSubPath_typeについては、図11を参照して後述する。SubPath_typeの後には、15ビットのreserved_for_future_useが用意される。is_repeat_SubPathは、SubPathの再生方法を指定する1ビットのフィールドであり、メインパスの再生の間にSubPathの再生を繰り返し行うか、またはSubPathの再生を1回だけ行うかを示すものである。例えば、メインAVストリームとサブパスが指定するClipの再生タイミングが異なる場合(メインパスを静止画のスライドショーとし、サブパスのオーディオパスをメインパスのBGM(バックグラウンドミュージック)として使う場合など)に利用される。Is_repeat_SubPathの後には、8ビットのreserved_for_future_useが用意される。number_of_SubPlayItemsは、1つのSubPathの中にあるSubPlayItemの数(エントリー数)を示す8ビットのフィールドである。例えば、number_of_SubPlayItemsは、図6のSubPath_id=0のSubPlayItemは1個であり、SubPath_id=1のSubPlayItemは2個である。その後のfor文では、SubPlayItemの数だけ、SubPlayItemが参照される。
ところで、SubPath_type(サブパスタイプ)については、例えば特開2002−158965号公報や特開2002−158972号公報のそれぞれの図42に開示されている。しかしながら、これらの公報では、SubPath_typeの種類は1つのみしか定義されておらず、その定義をそのまま利用しても、上述したまたは後述する各種処理や各種手法を実現することはできない。そこで、本実施の形態では、対象となる各種処理または各種手法に応じて、例えば図11、または図45で示されるSubPath_typeの種類を採用するようにしている。
そこで、以下、はじめに、図11の例のSubPath_typeの種類について説明する。なお、図45の例のSubPath_typeについては後述する。
即ち、図11は、SubPath_typeの種類の例を説明する図である。すなわち、図11の例では、SubPathの種類は次のように定義することができる。
図11において、SubPath_type=0,1は、reservedとされている。SubPath_type=2は、Audio presentation path of the Browsable slideshow(プラウザブルスライドショーのオーディオプレゼンテーションパス)とされている。例えば、SubPath_type=2は、プレイリストの中において、サブパスで参照されるオーディオプレゼンテーションパスと、プレイアイテムで参照されるメインパスとが非同期であることを示している。
SubPath_type=3は、Interactive graphics presentation menu(インタラクティブグラフィックスのプレゼンテーションメニュー)とされている。例えば、SubPath_type=3は、プレイリストの中において、サブパスで参照されるインタラクティブグラフィックスのメニューと、プレイアイテムで参照されるメインパスとが非同期であることを示している。
SubPath_type=4は、Text subtitle presentation path(テキスト字幕のプレゼンテーションパス)とされている。例えば、SubPath_type=4は、プレイリストの中において、サブパスで参照されるテキスト字幕のプレゼンテーションパスと、プレイアイテムで参照されるメインパスとが同期していることを示している。
SubPath_type=5は、2nd Audio Presentation path(2番目のオーディオプレゼンテーションパス)(2ndオーディオストリームを参照するためのパス)とされている。具体的には、SubPath_type=5は、プレイリストの中において、サブパスで参照される2番目のオーディオプレゼンテーションパスと、プレイアイテムで参照されるメインパスとが同期していることを示している。例えば、このサブパスで参照される(2番目の)オーディオストリームは、映画に対する監督のコメント(音声)である。図8においてSubpath_id=0で示されるSubPathの場合、図10のSubPath_typeは、このSubPath_type=5となる。
SubPath_type=6は、2nd Video Presentation path(2番目のビデオプレゼンテーションパス)(2ndビデオストリームを参照するためのパス)とされている。具体的には、SubPath_type=6は、プレイリストの中において、サブパスで参照される2番目のビデオプレゼンテーションパスと、プレイアイテムで参照されるメインパスとが同期していることを示している。例えば、このサブパスで参照される(2番目の)ビデオストリームは、映画に対する監督のコメント(動画像)である。
SubPath_type=7乃至255は、reservedとされている。
図12は、SubPlayItem(i)のシンタクスを示す図である。
lengthは、このlengthフィールドの直後からSub playItem ()の最後までのバイト数を示す16ビットの符号なし整数である。
図12においては、SubPlayItemが1つのClip を参照する場合と、複数のClip を参照する場合に分けられている。
最初に、SubPlayItemが1つのClipを参照する場合について説明する。
SubPlayItemには、Clipを指定するためのClip_Information_file_ name[0]が含まれる。また、Clipのコーデック方式を指定するClip_codec_identifier[0]、reserved_for_future_use、マルチクリップの登録の有無を示すフラグであるis_multi_Clip_entries、STC不連続点(システムタイムベースの不連続点)に関する情報であるref_to_STC_id[0]を含む。is_multi_Clip_entriesのフラグが立っている場合、SubPlayItemが複数のClipを参照する場合のシンタクスが参照される。また、Clipの中にあるSub Pathの再生区間を指定するためのSubPlayItem_IN_timeとSubPlayItem_OUT_timeを含む。さらに、main pathの時間軸上でSub Pathが再生開始する時刻を指定するためsync_PlayItem_id とsync_start_PTS_of_PlayItemを含む。このsync_PlayItem_id とsync_start_PTS_of_PlayItemは、上述したように、図7と図8の場合(メインAVストリームとサブパスにより示されるファイルの再生タイミングが同じである場合)に使用され、メインAVストリームとサブパスにより示されるファイルの再生タイミングが異なる場合(例えば、静止画により構成されるスライドショーのBGMのように、メインパスにより参照される静止画像とサブパスにより参照されるオーディオとが同期しない場合)には使用されない。また、SubPlayItem_IN_time、SubPlayItem_OUT_time、sync_PlayItem_id、sync_start_PTS_of_PlayItemは、SubPlayItemが参照するClipにおいて共通に使用される。
次に、SubPlayItemが複数のClipを参照する場合(if(is_multi_Clip_entries==1b)である場合、すなわちマルチクリップの登録が行われている場合)について説明する。具体的には、図8に示されるように、SubPlayItemが複数のClip を参照する場合を示す。
num_of_Clip_entriesは、Clipの数を示しており、Clip_Information_file_name[SubClip_entry_id]の数が、Clip_Information_file_ name[0]を除く、Clipsを指定する。すなわち、Clip_Information_file_ name[0]を除く、Clip_Information_file_ name[1]、Clip_Information_file_ name[2]などのClipを指定する。また、SubPlayItemは、Clipのコーデック方式を指定するClip_codec_identifier[SubClip_entry_id]、STC不連続点(システムタイムベースの不連続点)に関する情報であるref_to_STC_id[SubClip_entry_id]、およびreserved_for_future_useを含む。
なお、複数のClipの間で、SubPlayItem_IN_time, SubPlayItem_OUT_time、sync_PlayItem_id、およびsync_start_PTS_of_PlayItemは共通して使われる。図8の例の場合、SubPlayItem_IN_time, SubPlayItem_OUT_time、sync_PlayItem_id、およびsync_start_PTS_of_PlayItemは、SubClip_entry_id=0とSubClip_entry_id=1との間で共通して使用されるものであり、選択されたSubClip_entry_idに対するText based subtitleがこのSubPlayItem_IN_time, SubPlayItem_OUT_time、sync_PlayItem_id、およびsync_start_PTS_of_PlayItemに基づいて再生される。
ここで、SubClip_entry_idの値は、SubPlayItemの中にあるClip_Information_file_name[SubClip_entry_id]が現れる順番に1から割り振られる。また、Clip_Information_file_ name[0]のSubClip_entry_idは0である。
図13は、PlayItem()のシンタクスを示す図である。
lengthは、このlengthフィールドの直後からPlayItem()の最後までのバイト数を示す16ビットの符号なし整数である。Clip_Information_file_ name[0]は、PlayItemが参照するClipを指定するためのフィールドである。図7の例の場合、Clip_Information_file_ name[0]により、メインAVストリームが参照される。また、PlayItem()には、Clipのコーデック方式を指定するClip_codec_identifier[0]、reserved_for_future_use、is_multi_angle、connection_condition、STC不連続点(システムタイムベースの不連続点)に関する情報であるref_to_STC_id[0]が含まれている。さらに、PlayItem()には、Clipの中のPlayItemの再生区間を指定するためのIN_time とOUT_timeが含まれている。図7の例の場合、IN_time とOUT_timeにより、メインClipAVストリームファイルの再生範囲が表される。また、PlayItem()には、UO_mask_table()、PlayItem_random_access_mode、still_modeが含まれている。なお、is_multi_angleが複数ある場合については、本発明と直接的には関係ないのでその説明を省略する。
PlayItem()の中のSTN_table()は、対象のPlayItemとそれに関連付けられて再生される1つ以上のSubPathが用意されている場合に、ユーザによる音声切り替えや字幕切り替えという操作が、そのPlayItemが参照するClipとこれらの1つ以上のSubPathが参照するClipsの中から選ぶことができる仕組みを提供するものである。また、STN_table()は、2つのオーディオストリームのミキシング再生を選ぶことができる仕組みを提供するものである。
図14は、STN_table()のシンタクスの第1の例(第1のSTN_table())を示す図である。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のオーディオストリームは、後述する図25の再生装置20または図49の再生装置401の1stオーディオデコーダ75−1でデコードされるオーディオストリームであり、STN_table()でエントリーされるnumber_of_audio_stream2_entriesのオーディオストリームは、後述する図25の再生装置20または図49の再生装置401の2ndオーディオデコーダ75−2でデコードされるオーディオストリームである。このように、図14のSTN_table()では、2つのオーディオデコーダのそれぞれにデコードさせるオーディオストリームをエントリーすることができる。
なお、以下において、図25の再生装置20または図49の再生装置401の1stオーディオデコーダ75−1でデコードされるnumber_of_audio_stream_entriesのオーディオストリームをオーディオストリーム#1と称し(さらに、オーディオストリーム#1は、後述するように、プライマリオーディオストリームと称される場合もある)、図25の再生装置20または図49の再生装置401の2ndオーディオデコーダ75−2でデコードされるnumber_of_audio_stream2_entriesのオーディオストリームをオーディオストリーム#2と称する(さらに、オーディオストリーム#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()のシンタクスについて図15を参照して説明する。
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が一度に複数個のClipを参照し、それぞれの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)を示している。
図14の第1のSTN_table()の説明に戻って、ビデオストリームID (video_stream_id)のforループの中で、順番にstream_entry()ごとに特定される1つのビデオエレメンタリストリームに、0からvideo_stream_idが与えられる。なお、ビデオストリームID(video_stream_id)の代わりに、ビデオストリーム番号(video_stream_number)を用いるようにしてもよい。この場合、video_stream_numberは、0ではなく1から与えられる。すなわち、video_stream_idの値に1を加算したものがvideo_stream_numberである。ビデオストリーム番号は、ビデオ切り替えに使われる、ユーザから見えるビデオストリーム番号であるので、1から定義される。
同様に、オーディオストリームID (audio_stream_id)のforループの中で、順番にstream_entry()ごとに特定される1つのオーディオエレメンタリストリームに、0からaudio_stream_idが与えられる。なお、ビデオストリームの場合と同様に、オーディオストリームID(audio_stream_id)の代わりに、オーディオストリーム番号(audio_stream_number)を用いるようにしてもよい。この場合、audio_stream_numberは、0ではなく1から与えられる。すなわち、audio_stream_idの値に1を加算したものがaudio_stream_numberである。オーディオストリーム番号は、音声切り替えに使われる、ユーザから見えるオーディオストリーム番号であるので、1から定義される。
同様に、オーディオストリーム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から定義される。
すなわち、図14の第1の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から定義される。
次に、図14の第1の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つのオーディオエレメンタリストリームのストリーム属性情報が記述されている。例えば、図15のstream_entry()のtype=1またはtype=2で特定されるオーディオエレメンタリストリームは1つであるので、stream_attribute()は、その1つのオーディオエレメンタリストリームのストリーム属性情報を与える。
同様に、オーディオストリームID2(audio_stream_id2)のforループの中のstream_attribute()は、stream_entry()ごとに特定される1つのオーディオエレメンタリストリームのストリーム属性情報を与える。すなわち、このstream_attribute()には、stream_entry()ごとに特定される1つのオーディオエレメンタリストリームのストリーム属性情報が記述されている。例えば、図15のstream_entry()のtype=1またはtype=2で特定されるオーディオエレメンタリストリームは1つであるので、stream_attribute()は、その1つのオーディオエレメンタリストリームのストリーム属性情報を与える。
同様に、字幕ストリームID(PG_txtST_stream_id)のforループの中のstream_attribute()は、stream_entry()ごとに特定される1つのビットマップ字幕エレメンタリストリームまたはテキスト字幕エレメンタリストリームのストリーム属性情報を与える。すなわち、このstream_attribute()には、stream_entry()ごとに特定される1つのビットマップ字幕エレメンタリストリームのストリーム属性情報が記述されている。
同様に、グラフィックスストリームID(IG_stream_id)のforループの中のstream_attribute()は、stream_entry()ごとに特定される1つのインタラクティブグラフィックスエレメンタリストリームのストリーム属性情報を与える。すなわち、このstream_attribute()には、stream_entry()ごとに特定される1つのインタラクティブグラフィックスエレメンタリストリームのストリーム属性情報が記述されている。
ここで、stream_attribute()のシンタクスについて図16を参照して説明する。
lengthは、このlengthフィールドの直後からstream_attribute()の最後までのバイト数を示す16ビットの符号なし整数である。
stream_coding_typeは、図17に示されるようにエレメンタリストリームの符号化タイプを示す。エレメンタリストリームの符号化タイプとしては、MPEG-2 video stream等のビデオのコーデックのフォーマット、HDMV LPCM audio、Dolby AC-3 audio、dts audio等のオーディオコーデックのフォーマット、Presentation graphics stream、Interactive graphics stream、およびText subtitle streamが記述される。
video_formatは、図18に示されるようにビデオエレメンタリストリームのビデオフォーマットを示す。ビデオエレメンタリストリームのビデオフォーマットとしては、480i、576i、480p、1080i、720p、および1080pが記述される。
frame_rateは、図19に示されるように、ビデオエレメンタリストリームのフレームレートを示す。ビデオエレメンタリストリームのフレームレートとしては、24000/1001、24、25、30000/1001、50、および60000/1001が記述される。
aspect_ratioは、図20に示されるようにビデオエレメンタリストリームのアスペクト比情報を示す。ビデオエレメンタリストリームのアスペクト比情報としては、4:3 display aspect ratio、および16:9 display aspect ratioが記述される。
audio_presentation_typeは、図21に示されるようにオーディオエレメンタリストリームのプレゼンテーションタイプ情報を示す。オーディオエレメンタリストリームのプレゼンテーションタイプ情報としては、single mono channel、dual mono channel、stereo(2-channel)、およびmulti-channelが記述される。
sampling_frequencyは、図22に示されるようにオーディオエレメンタリストリームのサンプリング周波数を示す。オーディオエレメンタリストリームのサンプリング周波数としては、48kHz、および96kHzが記述される。
audio_language_codeは、オーディオエレメンタリストリームの言語コード(日本語、韓国語、中国語など)を示す。
PG_language_codeは、ビットマップ字幕エレメンタリストリームの言語コード(日本語、韓国語、中国語など)を示す。
IG_language_code、インタラクティブグラフィックスエレメンタリストリームの言語コード(日本語、韓国語、中国語など)を示す。
textST_language_codeは、テキスト字幕エレメンタリストリームの言語コード(日本語、韓国語、中国語など)を示す。
character_codeは、図23に示されるようにテキスト字幕エレメンタリストリームのキャラクタコードを示す。テキスト字幕エレメンタリストリームのキャラクタコードとしては、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)が記述される。
以下に、図16のstream_attribute()のシンタクスについて、図16と、図17乃至図23を用いて具体的に説明する。
エレメンタリストリームの符号化タイプ(図16のstream_coding_type)がMPEG-2 video stream(図17)である場合、stream_attribute()には、そのエレメンタリストリームのビデオフォーマット(図18)、フレームレート(図19)、およびアスペクト比情報(図20)が含まれる。
エレメンタリストリームの符号化タイプ(図16のstream_coding_type)がHDMV LPCM audio、Dolby AC-3 audio、またはdts audio(図17)である場合、stream_attribute()には、そのオーディオエレメンタリストリームのプレゼンテーションタイプ情報(図21)、サンプリング周波数(図22)、および言語コードが含まれる。
エレメンタリストリームの符号化タイプ(図16のstream_coding_type)がPresentation graphics stream(図17)である場合、stream_attribute()には、そのビットマップ字幕エレメンタリストリームの言語コードが含まれる。
エレメンタリストリームの符号化タイプ(図16のstream_coding_type)がInteractive graphics stream(図17)である場合、stream_attribute()には、そのインタラクティブグラフィックスエレメンタリストリームの言語コードが含まれる。
エレメンタリストリームの符号化タイプ(図16のstream_coding_type)がText subtitle stream(図17)である場合、stream_attribute()には、そのテキスト字幕エレメンタリストリームのキャラクタコード(図23)、言語コードが含まれる。
なお、これらの属性情報はこれに限定されない。
このように、PlayItemとそれに関連付けられて再生される1つ以上のSubPathが用意されている場合に、このPlayItemが参照するClipと1つ以上のSubPathが参照するClipの中から、stream_entry()によって特定された1つのエレメンタリストリームの属性情報をstream_attribute()によって知ることができる。
再生装置は、この属性情報(stream_attribute())を調べることによって、そのエレメンタリストリームを自分自身が再生する機能を持っているか否かを調べることができる。また、再生装置は、この属性情報を調べることによって、再生装置の言語設定の初期情報に対応したエレメンタリストリームの選択することができる。
例えば、再生装置が、ビットマップ字幕エレメンタリストリームの再生機能だけを有し、テキスト字幕エレメンタリストリームの再生機能を有していない場合を想定する。この再生装置に対して、ユーザが言語切り替えを指示した場合、再生装置は、字幕ストリームID (PG_txtST_stream_id)のforループの中から、ビットマップ字幕エレメンタリストリームだけを順次選択して、再生する。
また、例えば、再生装置の言語設定の初期情報が日本語である場合を想定する。この再生装置に対して、ユーザがユーザが副音声(すなわちSecondary audio)への切り替えまたは主音声と副音声のミキシング再生を指示した場合、再生装置は、副音声として用意されているオーディオストリームID (Audio stream id)のforループの中から、言語コードが日本語であるオーディオエレメンタリストリームだけを順次選択して、再生する。
さらに、例えば、メインパスにより参照される、ビデオストリームとオーディオストリームからなるAVストリーム(映画)を再生する場合、再生装置に対して、ユーザが音声の切り替えを指令し、オーディオストリーム#1(通常の映画で出力される音声)と、オーディオストリーム#2(監督や出演者によるコメント)とを、再生する音声として指定(選択)した場合、再生装置は、オーディオストリーム#1とオーディオストリーム#2とをミキシング(重畳)して、ビデオストリームとともに再生する。
なお、オーディオストリーム#1とオーディオストリーム#2とは、図14および図15の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ストリームを実現することができる。すなわち、このPlaylistにより再生されるコンテンツにおいて、後で、SubPlayItemを追加できる構成とすることができる。例えば、Main Pathが参照するClipAVストリームファイルとこれに対応付けられるPlayListがあり、このPlayListが新たなSub Pathを追加したPlayListに書き換えられた場合、新たなPlayListに基づいて、Main Pathが参照するClipAVストリームファイルとともに、Main Pathが参照するClipAVストリームファイルとは異なるClipAVストリームファイルを参照して、再生を行うことができる。このように、拡張性を有する構成とすることができる。
さらに、PlayItem()の中にSTN_table()を設けることにより、後述する図25の再生装置20または図49の再生装置401の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とを重畳(ミキシング)して再生することができる。
具体的な例を、図24を参照して説明する。図24は、ユーザに提供する音声信号と字幕信号の関係を表すストリームナンバーテーブルの例を示す図である。
図24においては、音声番号をA_SN(Audio Stream Number)、A_SN2と称し、字幕番号をS_SN(SubPicture Stream Number)と称する。図24においては、PlayListのMain Pathを構成するPlayItemのSTN_table()でエントリーされるオーディオストリーム#1(audio_stream_idでエントリーされるオーディオストリーム)のそれぞれにA_SNが与えられ、PlayListのMain Pathを構成するPlayItemのSTN_table()でエントリーされるオーディオストリーム#2(audio_stream_id2でエントリーされるオーディオストリーム)のそれぞれにA_SN2が与えられる。
具体的には、A_SN=1にオーディオ2が与えられ、A_SN=2にオーディオ1が与えられ、A_SN=3にオーディオ3が与えられている。また、A_SN2=1にオーディオ4が与えられ、A_SN2=2にオーディオ5が与えられている。ユーザは、A_SNが与えられているオーディオストリームの中から、再生するオーディオストリーム#1を選択し、選択したオーディオストリーム#1とミキシングするオーディオストリーム#2を、A_SN2が与えられているオーディオストリームの中から選択する。例えば、ユーザは、A_SN=2のオーディオ1と、A_SN2=2のオーディオ5とを再生するオーディオストリームとして選択する。
具体的な例としては、A_SN=1のオーディオ2が選択されている場合に、ユーザが、オーディオの切り替えを指令した場合、オーディオはA_SN=2のオーディオ1に切り替えられ、ユーザが、さらにオーディオの切り替えを指令した場合、オーディオは、A_SN=3のオーディオ3に切り替えられる。また、ユーザが、さらにオーディオの切り替えを指令した場合、オーディオは、A_SN=1のオーディオ2に切り替えられる。また、例えば、A_SN2=1のオーディオ4が選択されている場合に、ユーザが、オーディオの切り替えを指令した場合、オーディオはA_SN2=2のオーディオ5に切り替えられ、ユーザが、さらにオーディオの切り替えを指令した場合、オーディオはA_SN2=1のオーディオ4に切り替えられる。このように、オーディオストリーム#1を選択するためのA_SNと、オーディオストリーム#2を選択するためのA_SN2とは、音声の切り替えを独立させている。すなわち、ユーザは、A_SN=1乃至A_SN=3から1つオーディオストリームを選択し、A_SN2=1およびA_SN2=2から1つオーディオストリームを選択することになる。
また、PlayListのMain Pathで参照されるメインAVストリームの複数のサブピクチャストリームのそれぞれに、S_SNが与えられている。すなわち、S_SN=1にサブピクチャ3が与えられ、S_SN=2にサブピクチャ1が与えられ、S_SN=3にサブピクチャ2が与えられる。
なお、ここでは、A_SN、A_SN2、S_SNの番号が小さい程、ユーザに提供される音声信号やサブピクチャの優先度が高い。また、A_SNで与えられるストリームの方が、A_SN2で与えられるストリームより優先度が高い。すなわち、A_SN=1はデフォルトで再生されるオーディオストリームであり、S_SN=1はデフォルトで再生されるサブピクチャストリームである。
具体的には、再生装置の言語設定の初期情報に基づいて再生される音声は、A_SN=1であるオーディオ2(図24)に対応しており、音声が切り替えられた後、再生される音声は、A_SN=2であるオーディオ1(図24)に対応している。
このようなストリームナンバーテーブルを提供するために、PlayList()で参照されるPlayItem()の中のSTN table()(図14)において、最初に、オーディオストリーム#1にエントリーするためのaudio_stream_id=0(A_SN=1)でオーディオ2を与え、audio_stream_id=1(A_SN=2)でオーディオ1を与え、audio_stream_id=2(A_SN=3)でオーディオ3を与える。次に、STN table()(図14)において、オーディオストリーム#2にエントリーするためのaudio_stream_id2=0(A_SN2=1)でオーディオ4を与え、audio_stream_id2=1(A_SN2=2)でオーディオ5を与える。
すなわち、再生する2つのオーディオストリーム(オーディオストリーム#1とオーディオストリーム#2)とを別々に定義することで、ユーザは、再生する2つのオーディオストリームを、定義されたものの中から任意に選択することができる。換言すれば、ユーザは、再生する2つのオーディオストリームの選択を自由に(オーディオストリーム#1とオーディオストリーム#2で定義されているものの中から自由に)行うことができるので、組み合わせの自由度の高い選択を行うことができる。例えば、ユーザは、オーディオ2+オーディオ4の組み合わせ(A_SN=1とA_SN2=1の組み合わせ)や、オーディオ2+オーディオ5の組み合わせ(A_SN=1とA_SN2=2の組み合わせ)を選択することができる。
このように、PlayItem()の中のSTN table()(図14)のstream_entry()(図15)で、2本のオーディオストリームをエントリーすることが可能な構成としたので、2つのオーディオストリームをミキシングして再生することができる。すなわち、複数の種類からなるストリームから、同じ種類(この例の場合、オーディオストリーム)の2本のストリームをミキシング(重畳、または合成)して、同時に再生することができる。また、ユーザは、所望する2本の同じ種類のストリームのミキシング再生を指令することができる。
次に、本発明を適用した再生装置について説明する。図25は、本発明を適用した再生装置20の構成例を示すブロック図である。この再生装置20は、上述したメインパスとサブパスを有するPlayListを再生する再生装置20である。
再生装置20には、ストレージドライブ31、スイッチ32、AVデコーダ部33、およびコントローラ34が設けられている。
図25の例の場合、最初に、コントローラ34がストレージドライブ31を介してPlayListファイルを読み出し、PlayListファイルの情報に基づいて、ストレージドライブ31を介してHDD、Blu-Ray Disc(商標)、またはDVDなどの記録媒体からAVストリームやAVデータを読み出す。ユーザは、ユーザインターフェースを用いて、コントローラ34に対し、音声や字幕などの切り替えの指令を行うことができる。また、コントローラ34には、再生装置20の言語設定の初期情報が図示せぬ記憶部などから供給される。
PlayListファイルには、Main Path、Sub Pathの情報の他、STN_table()が含まれている。コントローラ34は、PlayListファイルに含まれるPlayItemが参照するメインClip AVストリームファイル、SubPlayItemが参照するサブClip AVストリームファイル、およびSubPlayItemが参照するテキストサブタイトルデータ等を、ストレージドライブ31を介して記録媒体などから読み出す。ここで、PlayItemが参照するメインClip AV StreamとSubPlayItemが参照するサブClip AV Streamとが、異なる記録媒体に記録されていてもよい。例えば、メインClip AV Streamが記録媒体に記録されており、対応するサブClip AV Streamは図示せぬネットワークを介して供給され、HDDに記憶されたものであってもよい。また、コントローラ34は、自分自身(再生装置20)の再生機能に対応するエレメンタリストリームを選択し、再生するよう制御したり、再生装置20の言語設定の初期情報に対応するエレメンタリストリームを選択し、再生するよう制御する。なお、一般的にはPlayItemが参照するストリームには、ビデオストリームが含まれているので、PlayItem(メインパス)が参照するストリームを含むClipを、メインClipと称する。また、このメインClip以外のストリームをサブClipと称する。すなわち、サブClipは、サブパスで参照されるストリームであって、PlayItemで参照するビデオストリームを置き換えるビデオストリーム、PlayItemで参照するビデオストリームと合成するビデオストリーム、又は、ビデオストリームを含まずオーディオストリーム、IG,PGストリーム等のうちの、少なくとも一つのストリームを含むClipをサブClipと称するものである。
AVデコーダ部33には、バッファ51乃至54、PIDフィルタ55、PIDフィルタ56、スイッチ57乃至59、バックグラウンドデコーダ71、ビデオデコーダ72、プレゼンテーショングラフィックスデコーダ73、インタラクティブグラフィックスデコーダ74、1stオーディオデコーダ75−1、2ndオーディオデコーダ75−2、Text-STコンポジション76、スイッチ77、バックグラウンドプレーン生成部91、ビデオプレーン生成部92、プレゼンテーショングラフィックスプレーン生成部93、インタラクティブグラフィックスプレーン生成部94、バッファ95、ビデオデータ処理部96、ミキシング処理部97、およびミキシング処理部98が設けられている。1stオーディオデコーダ75−1は、オーディオストリーム#1をデコードするためのものであり、2ndオーディオデコーダ75−2は、オーディオストリーム#2をデコードするためのものである。具体的には、図14のSTN_table()において、audio_stream_idで与えられるオーディオストリームをデコードするためのものが1stオーディオデコーダ75−1であり、audio_stream_id2で与えられるオーディオストリームをデコードするためのものが2ndオーディオデコーダ75−2である。
このように、再生装置20は、2つのオーディオストリームをデコードするために、2つのオーディオデコーダ(1stオーディオデコーダ75−1、2ndオーディオデコーダ75−2)を有している。なお、以下において、1stオーディオデコーダ75−1と2ndオーディオデコーダ75−2とを個々に区別しない場合、オーディオデコーダ75と称する。
コントローラ34により読み出されたファイルデータは、図示せぬ復調、ECC復号部により、復調され、復調された多重化ストリームに誤り訂正が施される。スイッチ32は、復調され、誤り訂正が施されたデータを、コントローラ34からの制御に基づいて、ストリームの種類ごとに選択し、対応するバッファ51乃至54に供給する。具体的には、スイッチ32は、コントローラ34からの制御に基づいて、バックグラウンドイメージデータをバッファ51に供給し、メインClip AV Streamのデータをバッファ52に供給し、サブClip AV Streamのデータをバッファ53に供給し、Text-STのデータをバッファ54に供給するようスイッチ32を切り替える。バッファ51は、バックグラウンドイメージデータをバッファリングし、バッファ52は、メインClip AV Streamのデータをバッファリングし、バッファ53は、サブClip AV Streamのデータをバッファリングし、バッファ54は、Text-STデータをバッファリングする。
メインClip AV Streamは、ビデオとオーディオとビットマップ字幕(Presentation Graphics stream)とインタラクティブグラフィックスのうち、ビデオに加えて1つ以上のストリームを多重化したストリーム(例えばトランスポートストリーム)である。サブClip AV Streamは、オーディオとビットマップ字幕(Presentation Graphics stream)とインタラクティブグラフィックスとオーディオのうち、1つ以上のストリームを多重化したストリームである。なお、テキストサブタイトルデータファイル(Text-ST)のデータは、トランスポートストリームのような多重化ストリームの形式であっても、そうでなくてもよい。
また、メインClip AV StreamとサブClip AV Streamおよびテキストサブタイトルデータを、ストレージドライブ31(記録媒体)から読み出すときに、それぞれのファイルを時分割に交互に読み出しても良いし、または、サブClip AV StreamやテキストサブタイトルデータをメインClip AV Streamから読み出す前に、すべてバッファ(バッファ53またはバッファ54)へプリロードしてもよい。
再生装置20は、これらのファイルのデータを、ストレージドライブ31を介して記録媒体から読み出し、ビデオ、ビットマップ字幕、インタラクティブグラフィックス、およびオーディオを再生する。
具体的には、メインClip AV Stream用リードバッファであるバッファ52から読み出されたストリームデータは、所定のタイミングで、後段のPID(パケットID)フィルタ55へ出力される。このPIDフィルタ55は、入力されたメインClip AV StreamをPID(パケットID)に応じて、後段の各エレメンタリストリームのデコーダへ振り分けて出力する。すなわち、PIDフィルタ55は、ビデオストリームをビデオデコーダ72に供給し、プレゼンテーショングラフィックスストリームをプレゼンテーショングラフィックスデコーダ73への供給元となるスイッチ57に供給し、インタラクティブグラフィックスストリームをインタラクティブグラフィックスデコーダ74への供給元となるスイッチ58に供給し、オーディオストリームを1stオーディオデコーダ75−1と2ndオーディオデコーダ75−2への供給元となるスイッチ59に供給する。
プレゼンテーショングラフィックスストリームは、例えば、ビットマップの字幕データであり、テキストサブタイトルデータは、例えば、テキスト字幕データである。
サブClip AV Stream用リードバッファであるバッファ53から読み出されたストリームデータは、所定のタイミングで、後段のPID(パケットID)フィルタ56へ出力される。このPIDフィルタ56は、入力されたサブClipをPID(パケットID)に応じて、後段の各エレメンタリストリームのデコーダへ振り分けて出力する。すなわち、PIDフィルタ56は、プレゼンテーショングラフィックスストリームをプレゼンテーショングラフィックスデコーダ73への供給元となるスイッチ57に供給し、インタラクティブグラフィックスストリームをインタラクティブグラフィックスデコーダ74への供給元となるスイッチ58に供給し、オーディオストリームを1stオーディオデコーダ75−1と2ndオーディオデコーダ75−2への供給元となるスイッチ59に供給する。
バックグラウンドイメージデータをバッファリングするバッファ51から読み出されたデータは、所定のタイミングでバックグラウンドデコーダ71に供給される。バックグラウンドデコーダ71は、バックグラウンドイメージデータをデコードし、デコードしたバックグラウンドイメージデータをバックグラウンドプレーン生成部91に供給する。
PIDフィルタ55により振り分けられたビデオストリームは、後段のビデオデコーダ72に供給される。ビデオデコーダ72は、ビデオストリームをデコードし、デコードしたビデオデータをビデオプレーン生成部92へ出力する。
スイッチ57は、PIDフィルタ55から供給されたメインClip AV Streamに含まれるプレゼンテーショングラフィックスストリームと、サブClip AV Streamに含まれるプレゼンテーショングラフィックスストリームのうちのいずれか1つを選択し、選択したプレゼンテーショングラフィックスストリームを、後段のプレゼンテーショングラフィックスデコーダ73に供給する。プレゼンテーショングラフィックスデコーダ73は、プレゼンテーショングラフィックスストリームをデコードし、デコードしたプレゼンテーショングラフィックスストリームのデータをプレゼンテーショングラフィックスプレーン生成部93への供給元となるスイッチ77に供給する。
また、スイッチ58は、PIDフィルタ55から供給されたメインClip AV Streamに含まれるインタラクティブグラフィックスストリームと、サブClip AV Streamに含まれるインタラクティブグラフィックスストリームのうちのいずれか1つを選択し、選択したインタラクティブグラフィックスストリームを、後段のインタラクティブグラフィックスストリームデコーダ74に供給する。すなわち、インタラクティブグラフィックスデコーダ74へ同時に入力されるインタラクティブグラフィックスストリームは、メインClip AV StreamまたはサブClip AV Streamのどちらかから分離されたストリームである。インタラクティブグラフィックスデコーダ74は、インタラクティブグラフィックスストリームをデコードし、デコードしたインタラクティブグラフィックスストリームのデータを、インタラクティブグラフィックスプレーン生成部94に供給する。
さらに、スイッチ59は、PIDフィルタ55から供給されたメインClip AV Streamに含まれるオーディオストリームと、サブClip AV Streamに含まれるオーディオストリームのうちのいずれか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に供給するようスイッチを選択する。
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 AV StreamまたはサブClip AV Streamのいずれかから分離されたストリームである(スイッチ57により選択される)。したがって、プレゼンテーショングラフィックスプレーン生成部93へ同時に出力される字幕画像は、メインClip AV Streamからのプレゼンテーショングラフィックスストリーム、またはサブClip AV Streamからのからのプレゼンテーショングラフィックスストリーム、またはテキストサブタイトルデータのデコード出力である。
バックグラウンドプレーン生成部91は、バックグラウンドデコーダ71から供給されたバックグラウンドイメージデータに基づいて、例えば、ビデオ画像を縮小表示した場合に壁紙画像となるバックグラウンドプレーンを生成し、これを、ビデオデータ処理部96に供給する。ビデオプレーン生成部92は、ビデオデコーダ72から供給されたビデオデータに基づいて、ビデオプレーンを生成し、これをビデオデータ処理部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はサブ側にスイッチを切り替える。
次に、図25の再生装置20における再生処理を、図26乃至図28のフローチャートを参照して説明する。なお、この処理は、ユーザによりユーザインターフェースを介して、所定のAVストリームの再生が指令されたとき開始される。
ステップS11において、コントローラ34は、ストレージドライブ31を介して、記録媒体や図示せぬHDD(Hard Disk Drive)に記録されているPlayListファイルを読み出す。例えば、図9を用いて説明したPlayListのファイルが読み出される。
ステップS12において、コントローラ34は、メインClip AV Stream、サブClip AV Stream、およびテキストサブタイトルデータ(Text-STデータ)を読み出す。具体的には、コントローラ34は、図9を用いて説明したPlayListに含まれるPlayItemに基づいて、メインClip AV Streamを読み出す。また、コントローラ34は、PlayListに含まれるSubPathで参照される、図10乃至図12を用いて説明したSubPlayItemに基づいて、サブClip AV Streamと、テキストサブタイトルデータを読み出す。
ステップS13において、コントローラ34は、読み出したデータ(メインClip AV Stream、サブClip AV Stream、およびテキストサブタイトルデータ)を対応するバッファ51乃至54に供給するようスイッチ32を制御する。具体的には、コントローラ34は、バックグラウンドイメージデータをバッファ51に供給し、メインClip AV Streamのデータをバッファ52に供給し、サブClipのデータをバッファ53に供給し、Text-STのデータをバッファ54に供給するようスイッチ32を切り替える。
ステップS14において、スイッチ32はコントローラ34からの制御に基づいて、スイッチ32を切り替える。これにより、バックグラウンドイメージデータはバッファ51に供給され、メインClip AV Streamのデータはバッファ52に供給され、サブClip AV Streamのデータはバッファ53に供給され、テキストサブタイトルデータはバッファ54に供給される。
ステップS15において、各バッファ51乃至54は、供給されたデータをそれぞれバッファリングする。具体的には、バッファ51は、バックグラウンドイメージデータをバッファリングし、バッファ52は、メインClip AV Streamのデータをバッファリングし、バッファ53は、サブClip AV Streamのデータをバッファリングし、バッファ54は、Text-STデータをバッファリングする。
ステップS16において、バッファ51は、バックグラウンドイメージデータをバックグラウンドデコーダ71に出力する。
ステップS17において、バッファ52はメインClip AV StreamのストリームデータをPIDフィルタ55に出力する。
ステップS18において、PIDフィルタ55は、メインClip AVストリームファイルを構成するTS(Transport Stream)パケットに付されているPIDに基づいて、各エレメンタリストリームのデコーダへ振り分ける。具体的には、PIDフィルタ55は、ビデオストリームをビデオデコーダ72に供給し、プレゼンテーショングラフィックスストリームをプレゼンテーショングラフィックスデコーダ73への供給元となるスイッチ57に供給し、インタラクティブグラフィックスストリームをインタラクティブグラフィックスデコーダ74への供給元となるスイッチ58に供給し、オーディオストリームを1stオーディオデコーダ75−1への供給元となるスイッチ59に供給する。すなわち、ビデオストリーム、プレゼンテーショングラフィックスストリーム、インタラクティブグラフィックスストリーム、およびオーディオストリームには、それぞれ異なるPIDが付されている。
ステップS19において、バッファ53は、サブClip AV StreamのストリームデータをPIDフィルタ56に出力する。
ステップS20において、PIDフィルタ56は、PIDに基づいて、各エレメンタリストリームを、それぞれのエレメンタリストリームに対応するデコーダへ振り分ける。具体的には、PIDフィルタ56は、プレゼンテーショングラフィックスストリームをプレゼンテーショングラフィックスデコーダ73への供給元となるスイッチ57に供給し、インタラクティブグラフィックスストリームをインタラクティブグラフィックスデコーダ74への供給元となるスイッチ58に供給し、オーディオストリームを1stオーディオデコーダ75−1と2ndオーディオデコーダ75−2への供給元となるスイッチ59に供給する。
ステップS21において、PIDフィルタ55およびPIDフィルタ56の後段のスイッチ57乃至59は、ユーザインターフェースを介するコントローラ34からの制御に基づいて、メインClip AV Stream とサブClip AV Streamのいずれかを選択する。具体的には、スイッチ57は、PIDフィルタ55から供給されたメインClip AV StreamまたはサブClip AV Streamのプレゼンテーショングラフィックスストリームを選択し、後段のプレゼンテーショングラフィックスデコーダ73に供給する。また、スイッチ58は、PIDフィルタ55から供給されたメインClip AV StreamまたはサブClip AV Streamのインタラクティブグラフィックスストリームを選択し、後段のインタラクティブグラフィックスストリームデコーダ74に供給する。さらに、スイッチ59は、PIDフィルタ55から供給されたメインClip AV Stream、または、PIDフィルタ56から供給されたサブClip AV Streamのオーディオストリーム(ここでは、音声が切り替えられる前であるので、オーディオストリーム#1)を選択し、後段の1stオーディオデコーダ75−1に供給する。なお、音声を切り替えるような指令がユーザにより行われた場合には、スイッチ59は、メインClip AV Streamのオーディオストリームを2ndオーディオデコーダ75−2に供給したり、サブClip AV Streamのオーディオストリームを1stオーディオデコーダ75−1や2ndオーディオデコーダ75−2に供給したりもするが、ここでは、音声が切り替えられる前の再生処理について説明しているので、その説明は省略している。
ステップS22において、バッファ54は、テキストサブタイトルデータをテキストサブタイトルコンポジション76に出力する。
ステップS23において、バックグラウンドデコーダ71は、バックグラウンドイメージデータをデコードし、これをバックグラウンドプレーン生成部91に出力する。
ステップS24において、ビデオデコーダ72は、ビデオストリームをデコードし、これをビデオプレーン生成部92に出力する。
ステップS25において、プレゼンテーショングラフィックスデコーダ73は、スイッチ57により選択され、供給されたプレゼンテーショングラフィックスストリームをデコードし、これを後段のスイッチ77に出力する。
ステップS26において、インタラクティブグラフィックスデコーダ74は、スイッチ58により選択され、供給されたインタラクティブグラフィックスストリームをデコードし、これを後段のインタラクティブグラフィックスプレーン生成部94に出力する。
ステップS27において、1stオーディオデコーダ75−1は、スイッチ59により選択され、供給されたオーティオストリーム(オーディオストリーム#1)をデコードし、これを後段のミキシング処理部101に出力する。音声の切り替えがユーザにより指示されていない状態における再生処理(図26乃至図28の再生処理)では、2ndオーディオデコーダ75−2からオーディオデータが出力されることはないので、ミキシング処理部101は、1stオーディオデコーダ75−1から出力されたオーディオデータを、そのまま後段のミキシング処理部97に供給する。
ステップS28において、Text-STコンポジション76は、テキストサブタイトルデータをデコードし、これを後段のスイッチ77に出力する。
ステップS29において、スイッチ77は、プレゼンテーショングラフィックスデコーダ73またはText-STコンポジション76からのデータのいずれかを選択する。具体的には、スイッチ77は、プレゼンテーショングラフィックスデコーダ73によりデコードされたプレゼンテーショングラフィックスストリームと、Text-ST(テキストサブタイトルデータ)のうち、いずれか1つを選択し、選択したデータをプレゼンテーショングラフィックスプレーン生成部93に供給する。
ステップS30において、バックグラウンドプレーン生成部91は、バックグラウンドデコーダ71から供給されたバックグラウンドイメージデータに基づいて、バックグラウンドプレーンを生成する。
ステップS31において、ビデオプレーン生成部92は、ビデオデコーダ72から供給されたビデオデータに基づいて、ビデオプレーンを生成する。
ステップS32において、プレゼンテーショングラフィックスプレーン生成部93は、ステップS29の処理でスイッチ77により選択され、供給されたプレゼンテーショングラフィックスデコーダ73からのデータまたはText-STコンポジション76からのデータに基づいて、プレゼンテーショングラフィックスプレーンを生成する。
ステップS33において、インタラクティブグラフィックスプレーン生成部94は、インタラクティブグラフィックスデコーダ74から供給されたインタラクティブグラフィックスストリームのデータに基づいて、インタラクティブグラフィックスプレーンを生成する。
ステップS34において、バッファ95は、ステップS14の処理で選択され、供給されたサウンドデータをバッファリングし、所定のタイミングでミキシング処理部97に供給する。
ステップS35において、ビデオデータ処理部96は、各プレーンのデータを合成し、出力する。具体的には、バックグラウンドプレーン生成部91、ビデオプレーン生成部92、プレゼンテーショングラフィックスプレーン生成部93、およびインタラクティブグラフィックスプレーン生成部94からのデータを合成し、ビデオデータとして出力する。
ステップS36において、ミキシング処理部97は、オーディオデータ(ミキシング処理部101から出力されたオーディオデータ)とサウンドデータをミキシング(合成)し、出力する。
図26乃至図28の処理により、PlayListに含まれるメインパスとサブパスに関連付けられているメインClip AV Stream、サブClip AV Stream、およびテキストサブタイトルデータが参照され、再生される。PlayListにメインパスとサブパスを設けるようにし、サブパスで、メインパスで指定するClip AV Streamファイルとは異なるClip AV Streamファイルを指定可能な構成としたので、メインパスのPlayItemが指すメインClip AV Streamを含むClipとは異なるClipであるサブClipのデータとメインClipのデータを一緒に(同じタイミングで)再生することができる。
なお、図26乃至図28において、ステップS16,ステップS17の処理は、その順番が逆であってもよいし、並行して実行されてもよい。また、ステップS18、ステップS20の処理も、その順番が逆であってもよいし、並行して実行されてもよい。さらに、ステップS23乃至ステップS28の処理も、その順番が逆であってもよいし、並行して実行されてもよい。また、ステップS30乃至ステップS33の処理も、その順番が逆であってもよいし、並行して実行されてもよい。さらに、ステップS35,ステップS36の処理も、その順番が逆であってもよいし、並行して実行されてもよい。すなわち、図25において、縦に同じ階層のバッファ51乃至54の処理、スイッチ57乃至59の処理、デコーダ71乃至76の処理、プレーン生成部91乃至94の処理、ビデオデータ処理部96およびミキシング処理部97の処理は、それぞれ、並行して実行されてもよいし、その順番は問わない。
次に、音声の切り替えが指示された場合の再生装置20における処理を、図29と図30のフローチャートを参照して説明する。最初に、図29のフローチャートを参照して、ユーザによりオーディオストリーム#1に対する音声の切り替えが指示される場合の処理を説明する。オーディオストリーム#2に対する音声の切り替えの処理については、図30を参照して後述する。なお、図29と図30の処理は、例えば、図26乃至図28の再生処理の実行中に実行される処理である。
ステップS51において、コントローラ34は、オーディオストリーム番号(IDでもよい)の順番リストを取得する。具体的には、コントローラ34は、図13を用いて説明したPlayItemのSTN_table()を参照し、さらに図14を用いて説明したSTN_table()にエントリーされているオーディオストリーム番号(ID)の順番のリストを取得する。この処理は、図26乃至図28の再生処理が開始されたときに実行される処理である。
ユーザにより、ユーザインターフェースを介して、音声切り替えの指令が行われた場合、ステップS52において、コントローラ34は、ユーザからのオーディオストリーム#1に対する音声切り替えの指令を受け付ける。このとき、コントローラ34は、図示せぬ表示部を制御して、図24に示されるようなストリームナンバーテーブルを表示部に表示させるように制御するようにしてもよい。図29の処理は、オーディオストリーム#1に対する音声の切り替えが指令される場合の処理であるので、ユーザは、例えば、図24に示されるようなストリームナンバーテーブルにおける、A_SN=1、A_SN=2、A_SN=3のオーディオの切り替えを指令する。具体的には、ユーザは、A_SN=1のオーディオ2からA_SN=2のオーディオ1へのオーディオの切り替えを指令する。コントローラ34は、この、ユーザからのオーディオストリーム#1に対する音声の切り替えを受け付ける。図29において、ステップS51の処理はあらかじめ実行されている処理であり、ユーザによりオーディオストリーム#1に対する音声切り替えの指令が行われた場合に、ステップS52以降の処理が行われる。
ステップS53において、コントローラ34は、再生しているオーディオストリーム番号の次のオーディオストリーム番号を取得する。例えば、ステップS52の処理で、図24のA_SN=1のオーディオ2に対応するオーディオストリームファイルが再生されていた場合、次は、A_SN=2のオーディオ1であるので、コントローラ34は、オーディオ1に対応するオーディオストリームの番号を取得する。
ステップS54において、コントローラ34は、取得した番号に対応するオーディオストリーム(オーディオストリーム#1)を再生する機能を有するか否かを判定する。具体的には、コントローラ34は、stream_attribute()(図16)に記述されている内容に基づいて、取得した番号に対応するオーディオストリーム(オーディオストリーム#1)を自分自身(再生装置20)が再生する機能を有するか否かを判定する。例えば、図15のStream_entry()において、type=1である場合、コントローラ34は、取得した番号に対応するメインClip AV Streamのオーディオストリームを、再生装置20が再生する機能を有するか否かを判定する。取得した番号に対応するオーディオストリームは、オーディオデコーダ75−1でデコードされるオーディオストリーム#1であるので、この処理は、このオーディオストリーム#1を、オーディオデコーダ75−1がデコードできるか否かを判定しているとも換言することができる。
ステップS54において、取得した番号に対応するオーディオストリームを再生する機能を有しないと判定された場合、処理はステップS55に進み、コントローラ34は、現在のストリーム番号の次のストリーム番号を取得する。すなわち、現在のストリーム番号のオーディオストリームを再生する機能を有さない場合には、そのストリーム番号は飛ばされ(再生対象とならず)、次のストリーム番号が取得される。そして、ステップS55の処理の後、処理はステップS54に戻り、それ以降の処理が繰り返される。すなわち、コントローラ34により、自分自身が再生する機能を有するオーディオストリーム(オーディオストリーム#1)の番号が取得されるまで、処理が繰り返される。
ステップS54において、取得した番号に対応するオーディオストリームを再生する機能を有すると判定された場合、処理はステップS56において、コントローラ34は、取得した番号に対応するオーディオストリームを含むClipを調べる。例えば、コントローラ34は、図15のtypeに基づいて、取得した番号に対応するオーディオストリームがメインClipにあるのか(type=1)、サブClipにあるのか(type=2)を調べる。また、例えば、図15のStream_entry()において、type=1である場合、コントローラ34は、取得した番号に対応するオーディオストリームが、メインClipにあることを確認する。さらに、例えば、type=2である場合、コントローラ34は、取得した番号に対応するオーディオストリームがサブClipにあることを確認する。
ステップS57において、コントローラ34は、所望のオーディオストリームを特定する。具体的には、取得した番号に対応するストリームの属するメインClipまたはサブClipの中の所望のオーディオストリームを特定する。例えば、ステップS54の処理で、取得した番号に対応するオーディオストリームが、メインClipに含まれることが確認された場合、コントローラ34は、図15のtype=1でエントリーされている情報(ref_to_stream_PID_of_mainClip)に基づいて、メインClipの中の所定のオーディオストリームを特定する。また、例えば、ステップS54の処理で、取得した番号に対応するオーディオストリームがサブClipに含まれることが確認された場合、コントローラ34は、図15のtype=2でエントリーされている情報(ref_to_SubPath_id、ref_to_SubClip_entry_id、ref_to_stream_PID_of_SubClip)に基づいて、サブClipの中の所定のオーディオストリームを特定する。この特定されたオーディオストリームが、オーディオデコーダ75−1でデコードされるオーディオストリーム#1となる。
ステップS58において、コントローラ34は、所望のオーディオストリームが多重化されているClipに対応するClip AV Stream(メインClip AV StreamまたはサブClip AV Stream)を読み出すようストレージドライブ31に指示する。ストレージドライブ31は、この指示に基づいて、対象となるClip AV Streamを読み出す。具体的には、コントローラ34は、ステップS57の処理で特定したClip AV Streamを読み出すようストレージドライブ31に指示する。
ステップS59において、コントローラ34は、読み出されたClip AV Streamからオーディオストリームを再生するようAVデコーダ部33に指示する。具体的には、コントローラ34は、読み出されたClip AV Streamに含まれる所望のオーディオストリーム(すなわち、オーディオストリーム#1)をAVデコーダ部33のオーディオデコーダ75−1にデコードさせるよう指示する。
ステップS60において、AVデコーダ部33は、オーディオストリーム(オーディオストリーム#1)をデコードし、オーディオ出力する。具体的には、AVデコーダ部33のオーディオデコーダ75−1は、オーディオストリーム#1(ステップS58の処理で読み出しが指令されたオーディオストリーム)をデコードし、ミキシング処理部101に出力する。ここで、後述する図30の処理で、オーディオストリーム#2がオーディオデコーダ75−2によってデコードされている場合には、ミキシング処理部101は、デコードされたオーディオストリーム#1とオーディオストリーム#2とをミキシングし、後段のミキシング処理部97に供給する。一方、後述する図30の処理で、オーディオストリーム#2がオーディオデコーダ75−2によってデコードされていない場合には、ミキシング処理部101は、デコードされたオーディオストリーム#1をそのまま、後段のミキシング処理部97に供給する。ミキシング処理部97は、ミキシング処理部101から供給されたオーディオデータ(オーディオストリーム#1のみがデコードされたオーディオデータ、または、オーディオストリーム#1とオーディオストリーム#2とがそれぞれデコードされ、ミキシングされたオーディオデータ)と、バッファ95から出力されるサウンドデータとを、ミキシング処理し、オーディオ信号として出力する。なお、この図29のステップS60の処理の詳細な例は、図31のフローチャートを参照して後述する。
次に、図30のフローチャートを参照して、ユーザによりオーディオストリーム#2に対する音声の切り替えが指示される場合の処理を説明する。なお、この処理は、例えば、図26乃至図28の再生処理の実行中に実行される処理である。また、一般的には、オーディオストリーム#2を再生する場合、オーディオストリーム#1もまた再生されているので、この図30の処理は、例えば、図29の処理と並行して実行される処理とされる(オーディオストリーム#2がユーザにより選択されない場合には、図30の処理が実行されず、図29の処理のみが実行されることになる)。
ステップS71において、コントローラ34は、オーディオストリーム番号(IDでもよい)の順番リストを取得する。具体的には、コントローラ34は、図13を用いて説明したPlayItemのSTN_table()を参照し、さらに図14を用いて説明したSTN_table()にエントリーされているオーディオストリーム番号(ID)の順番のリストを取得する。この処理は、図26乃至図28の再生処理が開始されたときに実行される処理である。
ユーザにより、ユーザインターフェースを介して、音声切り替えの指令が行われた場合、ステップS72において、コントローラ34は、ユーザからのオーディオストリーム#2に対する音声切り替えの指令を受け付ける。このとき、コントローラ34は、図示せぬ表示部を制御して、図24に示されるようなストリームナンバーテーブルを表示部に表示させるように制御するようにしてもよい。図30の処理は、オーディオストリーム#2に対する音声の切り替えが指令される場合の処理であるので、ユーザは、例えば、図24に示されるようなストリームナンバーテーブルにおける、A_SN2=1とA_SN2=2とに対応するオーディオの切り替えを指令する。具体的には、ユーザは、A_SN2=1のオーディオ4からA_SN2=2のオーディオ5へのオーディオの切り替えを指令する。コントローラ34は、この、ユーザからのオーディオストリーム#2に対する音声の切り替えを受け付ける。図30において、ステップS71の処理はあらかじめ実行されている処理であり、ユーザによりオーディオストリーム#2に対する音声切り替えの指令が行われた場合に、ステップS72以降の処理が行われる。
ステップS73において、コントローラ34は、再生しているオーディオストリーム番号の次のオーディオストリーム番号を取得する。例えば、図8のSubClip_entry_id=0のオーディオストリーム(Auxiliary audio stream)が再生されていた場合、次のSubClip_entry_id=1に対応するオーディオストリームファイルの番号が取得される。例えば、ステップS72の処理で、図24のA_SN2=1のオーディオ4に対応するオーディオストリームファイルが再生されていた場合、次は、A_SN2=2のオーディオ5であるので、コントローラ34は、オーディオ5に対応するオーディオストリームの番号を取得する。
ステップS74において、コントローラ34は、取得した番号に対応するオーディオストリーム(オーディオストリーム#2)を再生する機能を有するか否かを判定する。具体的には、コントローラ34は、stream_attribute()(図16)に記述されている内容に基づいて、取得した番号に対応するオーディオストリーム(オーディオストリーム#2)を自分自身(再生装置20)が再生する機能を有するか否かを判定する。例えば、図15のStream_entry()において、type=1である場合、コントローラ34は、取得した番号に対応するメインClipのオーディオストリームを、再生装置20が再生する機能を有するか否かを判定する。取得した番号に対応するオーディオストリームは、オーディオデコーダ75−2でデコードされるオーディオストリーム#2であるので、この処理は、このオーディオストリーム#2を、オーディオデコーダ75−2がデコードできるか否かを判定しているとも換言することができる。
なお、1stオーディオデコーダ75−1でデコードされるオーディオストリーム#1の方が、2ndオーディオデコーダ75−2でデコードされるオーディオストリーム#2より拡張性が高くマルチストリームであることが仮定される場合、例えば、1stオーディオデコーダ75−1の方が2ndオーディオデコーダ75−2よりも高い性能を有する場合(オーディオストリーム#1が通常の映画の音声であり、オーディオストリーム#2が映画に対する監督のコメントなどの場合)、このステップS74とステップS75の処理を省略するようにしてもよい。
このことは、上述したように仮定した場合、2ndオーディオデコーダ75−2でデコードされるオーディオストリーム#2は、ある程度の制約が設けられている可能性が高く、オーディオデコーダ75−2がデコードできないようなストリームは、オーディオストリーム#2として設定されない可能性が高いと仮定している為である。
ステップS74において、取得した番号に対応するオーディオストリームを再生する機能を有しないと判定された場合、処理はステップS75に進み、コントローラ34は、現在のストリーム番号の次のストリーム番号を取得する。すなわち、現在のストリーム番号のオーディオストリームを再生する機能を有さない場合には、そのストリーム番号は飛ばされ(再生対象とならず)、次のストリーム番号が取得される。そして、ステップS75の処理の後、処理はステップS74に戻り、それ以降の処理が繰り返される。すなわち、自分自身が再生する機能を有するオーディオストリーム(オーディオストリーム#2)の番号が取得されるまで、処理が繰り返される。
ステップS74において、取得した番号に対応するオーディオストリームを再生する機能を有すると判定された場合、処理はステップS76において、コントローラ34は、取得した番号に対応するオーディオストリームを含むClipを調べる。例えば、コントローラ34は、図15のtypeに基づいて、取得した番号に対応するオーディオストリームがメインClipにあるのか(type=1)、サブClipにあるのか(type=2)を調べる。図15のStream_entry()において、type=1である場合、コントローラ34は、取得した番号に対応するオーディオストリームが、メインClipにあることを確認する。また、図15のStream_entry()において、type=2である場合、コントローラ34は、取得した番号に対応するオーディオストリームがサブClipにあることを確認する。
ステップS77において、コントローラ34は、所望のオーディオストリームを特定する。具体的には、取得した番号に対応するストリームの属するメインClipまたはサブClipの中の所望のオーディオストリームを特定する。例えば、ステップS74の処理で、取得した番号に対応するオーディオストリームが、メインClipに含まれることが確認された場合、コントローラ34は、図15のtype=1でエントリーされている情報(ref_to_stream_PID_of_mainClip)に基づいて、メインClipの中の所定のオーディオストリームを特定する。また、例えば、ステップS74の処理で、取得した番号に対応するオーディオストリームがサブClipに含まれることが確認された場合、コントローラ34は、図15のtype=2でエントリーされている情報(ref_to_SubPath_id、ref_to_SubClip_entry_id、ref_to_stream_PID_of_SubClip)に基づいて、サブClipの中の所定のオーディオストリームを特定する。この特定されたオーディオストリームが、オーディオデコーダ75−1でデコードされるオーディオストリーム#2となる。
ステップS78において、コントローラ34は、所望のオーディオストリームが多重化されているClipに対応するClip AV Stream(メインClip AV StreamまたはサブClip AV Stream)を読み出すようストレージドライブ31に指示する。ストレージドライブ31は、この指示に基づいて、対象となるClip AV Streamを読み出す。具体的には、コントローラ34は、ステップS77の処理で特定したClip AV Streamを読み出すようストレージドライブ31に指示する。
ステップS79において、コントローラ34は、読み出されたClip AV Streamからオーディオストリームを再生するようAVデコーダ部33に指示する。具体的には、コントローラ34は、読み出されたClip AV Streamに含まれる所望のオーディオストリーム(すなわち、オーディオストリーム#2)をAVデコーダ部33のオーディオデコーダ75−2にデコードさせるよう指示する。
ステップS80において、AVデコーダ部33は、オーディオストリーム(オーディオストリーム#2)をデコードし、オーディオ出力する。具体的には、AVデコーダ部33のオーディオデコーダ75−2は、オーディオストリーム#2(ステップS78の処理で読み出しが指令されたオーディオストリーム)をデコードし、ミキシング処理部101に出力する。この図30の処理で、オーディオストリーム#2がオーディオデコーダ75−2によってデコードされているということは、図29の処理でオーディオストリーム#1がオーディオデコーダ75−1によってもデコードされ、デコードされたオーディオストリーム#1がミキシング処理部101に出力されているので、ミキシング処理部101は、デコードされたオーディオストリーム#1とオーディオストリーム#2とをミキシングし、後段のミキシング処理部97に供給する。ミキシング処理部97は、ミキシング処理部101から供給されたオーディオデータ(オーディオストリーム#1とオーディオストリーム#2とがそれぞれデコードされ、ミキシングされたオーディオデータ)と、バッファ95から出力されるサウンドデータとを、ミキシング処理し、オーディオ信号として出力する。なお、この図30のステップS80の処理(および図20のステップS60)の詳細な例を、図31のフローチャートを参照して説明する。
図31は、AVデコーダ部33におけるオーディオストリームを出力する処理の例を説明するフローチャートである。すなわち、図31は、図29のステップS60の処理と図30のステップS80の処理の詳細な例を説明するフローチャートである。
ステップS81において、AVデコーダ部33は、コントローラ34からの制御に基づいて、再生するオーディオストリームが1つであるか否かを判定する。具体的には、AVデコーダ部33は、コントローラ34からの制御に基づいて、ユーザによりオーディオストリーム#1とオーディオストリーム#2とが選択されたか否かを判定する。例えば、図29のステップS52の処理と図30のステップS72の処理により、ユーザによりオーディオストリーム#1とオーディオストリーム#2の切り替えが指令された場合や、ユーザによりオーディオストリーム#1とオーディオストリーム#2の再生が指令された場合には、AVデコーダ部33は、再生するオーディオストリームが1つでない、すなわち2つであると判定する。また、例えば、ユーザにより、オーディオストリーム#1の再生が指令されたり、図29のステップS52の処理で、ユーザによりオーディオストリーム#1の切り替えが指令された場合であって、ユーザによりオーディオストリーム#2の再生が指令されていない場合には、AVデコーダ部33は、再生するオーディオストリームが1つであると判定する。
ステップS81において、再生するオーディオストリームが1つであると判定された場合、ステップS82において、1stオーディオデコーダ75−1は、その再生する1つのオーディオストリーム、すなわちオーディオストリーム#1をデコードする。例えば、再生するオーディオストリームがメインClip AV Streamのオーディオストリームである場合、PIDフィルタ55により選択されて供給されてきたメインClip AV Streamのオーディオストリームが、スイッチ59により選択され、1stオーディオデコーダ75−1に供給されるので、1stオーディオデコーダ75−1は、メインClip AV Streamのオーディオストリーム(ここでは、オーディオストリーム#1)をデコードする。1stオーディオデコーダ75−1は、デコードしたオーディオストリーム#1を、後段のミキシング処理部101に供給する。ミキシング処理部101は、供給されてきたオーディオデータをそのまま後段のミキシング処理部97に出力する。
ステップS81において、再生するオーディオストリームが1つでないと判定された場合、すなわち、再生するオーディオストリームが2つであると判定された場合、2つのオーディオストリームのうち、オーディオストリーム#1が1stオーディオデコーダ75−1に供給され、オーディオストリーム#2が2ndオーディオデコーダ75−2に供給される。すなわち、スイッチ59は、PIDフィルタ55またはPIDフィルタ56を介して供給されてきたオーディオストリーム#1をオーディオデコーダ75−1に供給するようスイッチを選択し、PIDフィルタ55またはPIDフィルタ56を介して供給されてきたオーディオストリーム#2をオーディオデコーダ75−2に供給するようスイッチを選択する。
そこで、ステップS83において、1stオーディオデコーダ75−1は、オーディオストリーム#1をデコードする。例えば、再生するオーディオストリーム#1がメインClip AV Streamのオーディオストリームである場合、PIDフィルタ55により選択されて供給されてきたメインClip AV Streamのオーディオストリームが、スイッチ59により選択され、1stオーディオデコーダ75−1に供給されるので、1stオーディオデコーダ75−1は、メインClipのオーディオストリーム(オーディオストリーム#1)をデコードする。1stオーディオデコーダ75−1は、デコードしたオーディオストリーム#1を、後段のミキシング処理部101に供給する。
また、ステップS84において、2ndオーディオデコーダ75−2は、オーディオストリーム#2をデコードする。例えば、再生するオーディオストリーム#2がサブClip AV Streamのオーディオストリームである場合、PIDフィルタ56により選択されて供給されてきたサブClip AV Streamのオーディオストリームが、スイッチ59により選択され、2ndオーディオデコーダ75−2に供給されるので、2ndオーディオデコーダ75−2は、このサブClip AV Streamのオーディオストリーム(オーディオストリーム#2)をデコードする。2ndオーディオデコーダ75−2は、デコードしたオーディオストリーム#2を、後段のミキシング処理部101に供給する。なお、ステップS83とステップS84の処理は、並行して実行されてもよいし、順番を逆にして実行されてもよい。
ステップS85において、ミキシング処理部101は、1stオーディオデコーダ75−1によりデコードされたオーディオストリーム#1と、2ndオーディオデコーダ75−2によりデコードされたオーディオストリーム#2とをミキシングする。すなわち、ミキシング処理部101は、1stオーディオデコーダ75−1から供給されてきたオーディオデータと2ndオーディオデコーダ75−2から供給されてきたオーディオデータとを、ミキシング(合成、重畳)し、1つのオーディオデータとする。ミキシング処理部101は、ミキシングした結果得られたオーディオデータを、後段のミキシング処理部97に供給する。
ステップS82の処理の後、またはステップS85の処理の後、処理はステップS86に進み、ミキシング処理部97は、供給されてきたオーディオデータと、バッファ95から供給されてきたサウンドデータとをミキシングし、出力する。例えば、このステップS86の処理が、ステップS82の処理の後の場合、ミキシング処理部97は、オーディオストリーム#1がデコードされたオーディオデータと、サウンドデータとをミキシングする。また、例えば、このステップS86の処理が、ステップS85の処理の後の場合、ミキシング処理部97は、オーディオストリーム#1がデコードされたオーディオデータとオーディオストリーム#2がデコードされたオーディオデータとがミキシングされたオーディオデータに、サウンドデータをミキシングする。その後、処理を終了する。
図31の処理によれば、2つのオーディオストリームをミキシングして再生することができる。
図31の処理により、図27のステップS21における図25のスイッチ59の選択が決定される。すなわち、図31において再生するオーディオストリームが1つである場合、スイッチ59は、PIDフィルタ55またはPIDフィルタ56からから供給されたオーディオストリームを1stオーディオデコーダ75−1に供給するよう選択し(図31のステップS81でYES)、再生するオーディオストリームが2つである場合、スイッチ59は、PIDフィルタ55またはPIDフィルタ56から供給されたオーディオストリームを2ndオーディオデコーダ75−2に供給するよう選択(図31のステップS81でYES)する。
このように、コントローラ34は、PlayItemのSTN_table()に基づいて、音声(オーディオ)の切り替えを制御することができる。また、コントローラ34は、STN_table()のstream_attributeを参照することで、自分自身が再生機能を有するストリームだけを選んで、再生切り替えの制御をすることができる。さらに、コントローラ34は、STN_table()に基づいて、2つのオーディオストリームを重畳して再生するよう制御することができる。また、コントローラ34は、1つのメインとなるオーディオストリーム#1と、オーディオストリーム#1と同期して再生される同じ種類のストリーム(オーディオストリーム)であるオーディオストリーム#2とを、ミキシングして再生するよう制御することができる。
なお、図29の処理では、オーディオストリーム番号に基づいて、オーディオを切り替えるようにしたが、オーディオストリームID(audio_stream_id)に基づいて、オーディオを切り替えるようにしてもよい。この場合、オーディオストリーム番号から1を減算したものが、オーディオストリームIDとなる。
また、以上の例では、2つのオーディオストリームをミキシング(合成)して再生する場合の例を説明したが、オーディオストリームに限らず、ストリームの種類が同じであれば、各種のストリームファイルについて同様に適用することができる。例えば、ビデオストリーム(ストリームの種類がビデオストリームであるストリーム)を2つ合成して再生するピクチャインピクチャ表示をする場合にも、この構成は適用することができる。このように、本発明によれば、2つの同じ種類のストリームファイルを合成して再生することができる。
例えば、メインパスで参照されるAVストリームのビデオストリーム(ビデオストリーム#1)を主画面として表示させ、主画面の中に、サブパス(やメインパス)のビデオパスで参照されるビデオストリーム(ビデオストリーム#2)を子画面として合成して表示させる、いわゆるPinP(ピクチャインピクチャ)表示などについても利用することができる。
以上により、メインのAVストリームとは別のストリームやデータファイルでオーディオや字幕などを用意する場合に、PlayListの中にメインパスとサブパスを有する構成としたので、ユーザによる音声切り替えや字幕切り替えという操作が、メインAVストリームとは異なる別ストリームや別データファイルの中から選ぶことができる。
また、メインパスのPlayItemの中に、AVストリームファイルに多重化されているデータと、Sub Pathにより参照されるデータのtypeを定義するStream Number Definition Tableを設けるようにしたので、より、拡張性の高いストリームを実現することができる。
さらに、再生装置20は、STN_table()のstream_attributeを参照することで、自分自身が有する機能に対応するストリームだけを順次選択して再生することができる。
以上の処理をまとめると、以下のようになる。
再生装置20は、少なくとも1つのストリームを含むメインClip AVストリームファイルの位置を示す主の再生パスであるメインパスと、メインClipAVストリームファイルのタイミングに合わせて再生されるサブClip AVストリームファイルのそれぞれの位置を示す複数のサブパスにより構成される再生管理情報としてのPlayListを取得する。そして、再生装置20は、PlayListに含まれる再生するストリームを選択するためのSTN_table()に基づいて、再生するストリームの選択を受け付ける。STN_table()は、メインClip AVストリームファイルの所定の種類のストリーム(例えば、オーディオストリーム#1)と、そのストリームの再生のタイミングに合わせて再生される、同じ種類のストリームファイル(例えば、オーディオストリーム#2)とを選択するための情報であるので、このSTN_table()(PlayItemで示されるSTN_table())に基づいて、再生するストリームの選択を受け付ける。
ここで、2つの同じ種類のストリーム(オーディオストリーム)が再生するストリームとして選択された場合、再生装置20は、選択された2つのストリームファイルを読み出し、再生装置20のミキシング処理部101は、この2つのオーディオストリーム(デコードされたオーディオストリーム)を合成し、ミキシング処理部97(AVデコーダ部33)は、合成されたストリームを再生(出力)する。
これにより、図32に示されるように、A_SN=2のオーディオ1とA_SN2=2のオーディオ5の2つが再生するストリームとしてユーザに選択された場合(切り替えられて選択された場合)、オーディオ1とオーディオ5とをミキシング(合成)して再生することができる。
また、PlayListにMain PathとSub Pathを含め、Main PathとSub Pathが異なるClipを参照する構成としたので、ストリームに拡張性を持たせることができる。また、1つのSub Pathで複数のファイルを参照可能な構成としたので(例えば、図8)、複数の異なるストリームの中からユーザが選択することができる。
さらに、Main PathのPlayItemの中に、Main Pathにより参照されるAVストリームファイルに多重化されている(含まれる)付属データ(例えば、Main Pathにより参照されるAVストリームファイルに含まれるオーディオストリーム)と、Sub Pathにより参照される付属データとを定義するテーブルとして、図14のSTN_table()を設けるようにしたので、より、拡張性の高いストリームを実現することができる。また、STN_table()にエントリーすれば、Sub Pathを容易に拡張することができる。
また、STN_table()にストリームの属性情報である図16のstream_attribute()を設けるようにしたので、再生装置20側で、選択されたストリームを再生可能か否かを判定することができる。さらに、stream_attribute()を参照することで、再生機能を有するストリームだけを選択して再生することができる。
さらに、STN_table()(図14)において、2つの同じ種類のストリームファイル(ここでは、オーディオストリームファイル)を定義するようにし、さらに、図20の再生装置20に2つのオーディオデコーダ(1stオーディオデコーダ75−1と2ndオーディオデコーダ75−2)を設けるとともに、2つのオーディオデコーダによりデコードされたオーディオデータを合成(ミキシング)するミキシング処理部101を設けるようにしたので、2つの同じ種類のストリームを組み合わせて同時に再生することができる。
また、Sub Pathには、図11に示されるように、Sub Pathのタイプ(オーディオやテキスト字幕といったタイプ)を示すSubPath_type、Sub Pathが参照するサブClipの名を示す図12のClip_Information_file_name、およびSub Pathが参照するClipのイン点を示す図12のSubPlayItem_IN_timeとアウト点を示す図12のSubPlayItem_OUT_timeを含むようにしたので、Sub Pathが参照するデータを的確に特定することができる。
さらに、Sub Pathには、Sub PathがMain Pathとを同じタイミングで再生するためのMain Path上のAVストリームファイルを指定する指定情報である図12のsync_PlayItem_id(例えば、図7と図8のsync_PlayItem_id)と、Sub Pathが参照するデータのイン点がMain Pathの時間軸上で同期してスタートするMain Path上の時刻であるsync_start_PTS_of_PlayItem(例えば、図7と図8のsync_start_PTS_of_PlayItem)とをさらに含むため、図7や図8に示されるように、Main Pathが参照するメインClipAVストリームファイルに同期してSub Pathが参照するデータ(ファイル)を再生することができる。
なお、図25のストレージドライブ31が読み出すデータは、DVD(Digital Versatile Disc)などの記録媒体に記録されているデータであってもよいし、ハードディスクに記録されているデータであってもよいし、図示せぬネットワークを介してダウンロードしたデータであってもよいし、これらが組み合わされたデータでもよい。例えば、ダウンロードされ、ハードディスクに記録されたPlayListおよびサブClip AV Streamを含むClipと、DVDに記録されたメインClip AV Streamを含むClipに基づいて、再生されてもよい。また、例えば、DVDに記録されたClipをサブClip AV Streamを含むClipとして認識とするようなPlayListと、メインClip AV Streamを含むClipとがハードディスクに記録されている場合に、ハードディスクに記録されているPlayListに基づいて、メインClip AV StreamとサブClip AV Streamがそれぞれ、ハードディスクとDVDから読み出され再生されてもよい。
また、2つのオーディオストリームをミキシングして再生する場合、再生装置20の1stオーディオデコーダ75−1はオーディオストリーム#1をデコードし、2ndオーディオデコーダ75−2はオーディオストリーム#2をデコードするのであるが、コーデック(エンコード)方式が同一(例えば、図17のDolby AC-3 audio)であるか否かを、図29のステップS54と図30のステップS74の処理でさらに判定するようにしてもよい。このことは、1stオーディオデコーダ75−1と2ndオーディオデコーダ75−2がオーディオストリームをデコードしている途中であっても、コーデック方式が同一であれば、デコード途中のデータ方式も同様であるので、ミキシング処理部101によりミキシング可能となるからである。
なお、以上の例では、図25の再生装置20の1stオーディオデコーダ75−1でデコードされるオーディオストリーム#1と、2ndオーディオデコーダ75−2でデコードされるオーディオストリーム#2とを、ユーザが別々に選択可能な構成としたが、オーディオストリーム#1とオーディオストリーム#2との組み合わせを定義し、ミキシング再生する場合には、この組み合わせの中からユーザに選択させる構成としてもよい。すなわち、オーディオストリーム#1とミキシング再生可能なオーディオストリーム#2の組み合わせを定義しておくようにしてもよい。この場合の例を、図33乃至図37を参照して2つ説明する。
最初に、1番目の例を説明する。図33は、オーディオストリーム#1とオーディオストリーム#2との組み合わせを定義する場合のSTN_table()のシンタクスのの第2の例(第2のSTN_table())を示す図である。なお、図中、図14と同一の部分については、繰り返しになるのでその説明は省略する。
図33において、オーディオストリームID2 (audio_stream_id2)のforループの中で、順番にstream_entry()ごとに特定される1つのオーディオエレメンタリストリームに、0からaudio_stream_id2が与えられる。このとき、audio_stream_id2に対し、stream_entry()とstream_attribute()との他に、新たにCombination_of_Primary_and_Secondaryが定義される。Combination_of_Primary_and_Secondaryは、オーディオストリーム#1(Primary)とオーディオストリーム#2(Secondary)との組み合わせを定義する情報である。すなわち、オーディオストリームID2(audio_stream_id2)で特定されるオーディオストリーム#2に対して、どのオーディオストリーム#1が組み合わせ可能であるかを示す情報が、オーディオストリームID2のforループの中で定義される。換言すれば、Combination_of_Primary_and_Secondaryにより、オーディオストリーム#1に対して組み合わせ可能なオーディオストリーム#2が定義される。このように、オーディオストリームID1のfor ループ内で組み合わせるオーディオストリームID2を定義するのではなく、オーディオストリームID1とオーディオストリームID2を個別に定義し、オーディオストリームID2のforループの中で組み合わせを定義することにより、オーディオストリームID1の登録可能数が決まっている場合にでも、組み合わせの登録を1つとカウントさせないことにより、その登録可能数を有効に使うことができる。
なお、図14を参照して説明したように、オーディオストリームID2(audio_stream_id2)の代わりに、オーディオストリーム番号2(audio_stream_number2)を用いるようにしてもよい。この場合、audio_stream_number2は、0ではなく1から与えられる。すなわち、audio_stream_id2の値に1を加算したものがaudio_stream_number2である。オーディオストリーム番号2は、音声切り替えに使われる、ユーザから見えるオーディオストリーム番号2であるので、1から定義される。
ここで、図33のCombination_of_Primary_and_Secondaryのビットマップシンタクスの例を、図34を参照して説明する。
Combination_of_Primary_and_Secondaryのビットマップシンタクスは、図34の例の場合、32bitとされる。図34において、audio_stream_idは、図33の第2のSTN_table()で定義されるaudio_stream_id(オーディオストリームID)を示しており、indicatorの値は、対応するaudio_stream_id2(オーディオストリームID2)のオーディオストリーム#2と組み合わせ可能なオーディオストリーム#1を特定するaudio_stream_idを示すフラグである。すなわち、audio_stream_idとindicatorとにより、audio_stream_id2で与えられるオーディオストリーム#2と組み合わせ可能なオーディオストリーム#1のaudio_stream_idを特定することができる。
すなわち、図37においてaudio_stream_id2のforループの中にCombination_of_Primary_and_Secondaryが規定されるように、それぞれのaudio_stream_id2に対して、Combination_of_Primary_and_Secondaryが存在し、ある特定のaudio_stream_id2により特定されるオーディオストリーム#2に対して組み合わせが可能なオーディオストリーム#1が、indicatorにより示されるaudio_stream_idにより特定される。
具体的には、Indicatorの値が0の場合、そのaudio_stream_id2は、audio_stream_idで特定されるオーディオストリーム#1に対応していないことを示し、indicatorの値が1の場合、そのaudio_stream_id2は、audio_stream_idで特定されるオーディオストリーム#1に対応していることを示す。
すなわち、図34の例の場合、audio_stream_id2(オーディオストリームID2)で特定されるオーディオストリーム#2には、audio_stream_id=0と、audio_stream_id=1で特定される2つのオーディオストリーム(オーディオストリーム#1)が組み合わせ可能であることが示されている。
なお、図34においては、組み合わせ可能なオーディオストリーム#1を、audio_stream_idで特定するようにしたが、audio_stream_idの代わりに、オーディオストリーム番号を用いるようにしてもよい。この場合、audio_stream_idは、0ではなく1から与えられる。
図34のように、Combination_of_Primary_and_Secondaryを32bitのビットマップシンタクスで定義するようにしたので、32本のオーディオストリーム#1に対して、組み合わせ可能なオーディオストリーム#2をそれぞれ定義することができる。
図33と図34によれば、audio_stream_idおよびaudio_stream_id2、並びに、Combination_of_Primary_and_Secondaryを用いて、オーディオストリーム#1とオーディオストリーム#2との組み合わせを定義することができる。すなわち、矛盾するようなオーディオストリームの組み合わせを定義せずに済むので、ユーザは、常に再生可能なオーディオストリームの組み合わせの再生を選択することができる。
具体的な例を、図35を参照して説明する。図35は、ユーザに提供する音声信号と字幕信号の関係を表すストリームナンバーテーブルの例を示す図である。なお、図中、字幕信号(サブピクチャ)の記載については、図24と同様であるので、その説明は省略する。
図35においては、PlayListのMain Pathを構成するPlayItemのSTN_table()でエントリーされるオーディオストリーム#1(audio_stream_idでエントリーされるオーディオストリーム)のそれぞれにA_SNが与えられる。
具体的には、A_SN=1にオーディオ2が与えられ、A_SN=2にオーディオ1が与えられ、A_SN=3にオーディオ3が与えられている。
このとき、A_SN=1のオーディオ2に対しては、オーディオ4(audio_stream_id2=0、すなわち、オーディオストリーム番号2が1であるオーディオ4)が組み合わせ可能とされている。また、A_SN=2のオーディオ1に対しては、オーディオ4(audio_stream_id2=0、すなわち、オーディオストリーム番号2が1であるオーディオ4)とオーディオ5(audio_stream_id2=1、すなわち、オーディオストリーム番号2が2であるオーディオ5)とが組み合わせ可能とされている。
具体的には、オーディオ4(audio_stream_id2=0のオーディオ4)の場合、図34のCombination_of_Primary_and_Secondaryのビットマップシンタクスは、audio_stream_id=0とaudio_stream_id=1に対するindicatorの値がともに1とされ、audio_stream_id=2からaudio_stream_id=31までのindicatorの値は、すべて0とされる。また、オーディオ5(audio_stream_id2=1のオーディオ5)の場合、図34のCombination_of_Primary_and_Secondaryのビットマップシンタクスは、audio_stream_id=1に対するindicatorの値のみが1とされ、audio_stream_id=0と、audio_stream_id=2からaudio_stream_id=31までのindicatorの値は、すべて0とされる。
ユーザは、A_SNが与えられているオーディオストリームの中から、再生するオーディオストリーム#1を選択し、選択したオーディオストリーム#1とミキシングするオーディオストリーム#2を、A_SNが与えられているオーディオストリームの図中右側に表示されているものの中から選択する。図35の例の場合、オーディオストリーム#1として、オーディオ2(A_SN=1)を選択する場合、ミキシング可能なオーディオストリーム#2は、オーディオ2の図中右側に表示されているオーディオ4のみであるので、これを、ミキシング再生するか否かを選択する。図35においては、A_SN=1のオーディオ2に対応するオーディオ4は、「×」、すなわち、ミキシング再生を選択しない状態とされている。ユーザは、この「×」を切り替えて「○」とすることで、オーディオ2とオーディオ4とのミキシング再生が選択された状態とすることができる。
また、例えば、図35の例の場合、オーディオストリーム#1として、オーディオ1(A_SN=2)を選択する場合、ミキシング可能なオーディオストリーム#2は、オーディオ2の図中右側に表示されているオーディオ4とオーディオ5の中から選択することができる。そのため、ユーザは、オーディオストリーム#1をどのオーディオストリーム#2と再生するか否かを選択する。図35においては、A_SN=2のオーディオ1に対応するオーディオ4とオーディオ5は、「×」、すなわち、ミキシング再生を選択しない状態とされている。ユーザは、この「×」を切り替えて「○」とすることで、オーディオ2とオーディオ4、またはオーディオ2とオーディオ5のミキシング再生を選択する状態とすることができる。
この再生の選択の具体的な例としては、A_SN=1のオーディオ2が選択されている場合に、ユーザが、オーディオの切り替えを指令した場合、A_SN=1のオーディオ2とオーディオ4との組み合わせの再生(図35のオーディオ2に対応するオーディオ4が「○」となる)に切り替えられ、ユーザが、さらにオーディオの切り替えを指令した場合、オーディオは、A_SN=2のオーディオ1の再生(図35のオーディオ2に対応するオーディオ4が「×」となる)に切り替えられ、ユーザが、さらにオーディオの切り替えを指令した場合、オーディオは、A_SN=2のオーディオ1とオーディオ4との組み合わせの再生(図35のオーディオ1に対応するオーディオ4が「○」となる)に切り替えらる。また、ユーザが、さらにオーディオの切り替えを指令した場合、オーディオは、A_SN=2のオーディオ1とオーディオ5との組み合わせの再生(図35のオーディオ1に対応するオーディオ4が「×」となり、オーディオ5が「○」となる)に切り替えられる。
ユーザは、このようにして再生されるオーディオストリームの選択を切り替えて、例えば、図36に示されるように、A_SN2のオーディオ1とオーディオ5との組み合わせの再生を選択することができる。これにより、オーディオ1(オーディオストリーム#1)とオーディオ5(オーディオストリーム#2)とをミキシング再生することができる。
このように、audio_stream_idおよびaudio_stream_id2、並びに、Combination_of_Primary_and_Secondaryを用いて、オーディオストリーム#1とオーディオストリーム#2との組み合わせを定義するようにすることで、矛盾するような組み合わせを定義せずに済み、ユーザは、常に再生可能なオーディオストリームの組み合わせを選択することができる。すなわち、図35の例においては、矛盾するオーディオストリームの組み合わせであるオーディオ2+オーディオ5を定義しないようにすることで、ユーザに、選択可能なもののみを提供することができる。
換言すれば、PlayItem()の中の第2のSTN table()(図33)で、図25の1stオーディオデコーダ75−1でデコードするオーディオストリーム#1と、2ndオーディオデコーダ75−2でデコードするオーディオストリーム#2との組み合わせを、Combination_of_Primary_and_Secondaryを用いて定義するようにしたので、2つのオーディオストリームをミキシングして再生することができる。すなわち、複数の種類からなるストリームから、同じ種類(この例の場合、オーディオストリーム)のストリームをミキシング(重畳、または合成)して、同時に再生することができる。
また、このような構成とすることにより、ユーザは、ミキシングする2つのオーディオストリームを個々に選ぶ必要がなく、2つのオーディオストリームが組み合わせられたものの中から、再生するオーディオストリームを選択することができる。
次に、オーディオストリーム#1とオーディオストリーム#2との組み合わせを定義し、ミキシング再生する場合、すなわち、オーディオストリーム#1とオーディオストリーム#2の組み合わせの中からユーザに再生の選択をさせる構成とする場合の2番目の例を、図37を参照して説明する。換言すれば、図37は、オーディオストリーム#1とミキシング再生可能なオーディオストリームを、オーディオストリーム#2として定義する場合の2番目の例である。
図37は、オーディオストリーム#1とオーディオストリーム#2との組み合わせを定義する場合のSTN_table()のシンタクスの第3の例(第3のSTN_table())を示す図である。なお、図中、図14と同一の部分については、繰り返しになるのでその説明は省略する。
図37において、オーディオストリームID2 (audio_stream_id2)のforループの中で、順番にstream_entry()ごとに特定される1つのオーディオエレメンタリストリームに、0からaudio_stream_id2が与えられる。このとき、audio_stream_id2に対して、number_of_combinationsが与えられ、number_of_combinationsの後のfor文では、number_of_combinationsの数だけ、audio_stream_idが与えられる。number_of_combinationsと、number_of_combinationsの後のfor文は、オーディオストリーム#1とオーディオストリーム#2との組み合わせを定義する情報であり、audio_stream_id2で特定されるオーディオストリーム#2と組み合わせ可能なオーディオストリーム#1の数が、number_of_combinationsとされる。そして、audio_stream_id2で特定されるオーディオストリーム#2と組み合わせ可能なオーディオストリーム#1を特定するaudio_stream_idが、number_of_combinationsの後のfor文で定義される。
すなわち、図33とは異なり、図37の第3のSTN_table()のオーディオストリームID2 (audio_stream_id2)のfor文の中では、そのオーディオストリームID2で特定されるオーディオストリーム#2に対して、オーディオストリーム#1との組み合わせ可能な数がnumber_of_combinationsで定義され、number_of_combinationsの後のfor文で、対象となるオーディオストリーム#1を特定するaudio_stream_idを直接定義している。
このように、第3のSTN_table()においては、オーディオストリームID2(audio_stream_id2)で特定されるオーディオストリーム#2に対して、どのオーディオストリーム#1が組み合わせ可能であるかを示す情報が、オーディオストリームID2のnumber_of_combinationsの後のfor文で定義される。すなわち、オーディオストリームID2のnumber_of_combinationsの後のfor文により、オーディオストリーム#1に対して組み合わせ可能なオーディオストリーム#2が定義される。
なお、図14を参照して説明したように、オーディオストリームID2(audio_stream_id2)の代わりに、オーディオストリーム番号2(audio_stream_number2)を用いるようにしてもよい。また、オーディオストリームID(audio_stream_id)の代わりに、オーディオストリーム番号(audio_stream_number)を用いるようにしてもよい。すなわち、number_of_combinationsの後のfor文で定義されるaudio_stream_idも、オーディオストリーム番号としてもよい。
図37によれば、number_of_combinationsと、その後のfor文を用いて、オーディオストリーム#1とオーディオストリーム#2との組み合わせを定義することができる。すなわち、矛盾するようなオーディオストリームの組み合わせを定義せずに済むので、ユーザは、常に再生可能なオーディオストリームの組み合わせの再生を選択することができる。
この場合のストリームナンバーテーブルの具体的な例は、図35および図36を用いて説明した場合と同様である。
すなわち、図35が図37の第3のSTN_table()に対応する場合、オーディオ4(audio_stream_id2=0、すなわち、オーディオストリーム番号2が1であるオーディオ4)に対して、組み合わせ可能なオーディオストリーム#1として、A_SN=1のオーディオ2(audio_stream_id=0)と、A_SN=2のオーディオ1(audio_stream_id=1)とが定義されていることになる。この場合、図37のaudio_stream_id2=0に対応するnumber_of_combinationsの数は2つであり、定義されるaudio_stream_idは、audio_stream_id=0とaudio_stream_id=1である。また、オーディオ5(audio_stream_id2=1、すなわち、オーディオストリーム番号2が2であるオーディオ5)に対して、組み合わせ可能なオーディオストリーム#1として、A_SN=2のオーディオ1(audio_stream_id=1)が定義されていることになる。この場合、図37のaudio_stream_id2=1に対応するnumber_of_combinationsの数は1つであり、定義されるaudio_stream_idは、audio_stream_id=1である。
ユーザは、図35に示されるオーディオの再生の選択を切り替えて、例えば、図36に示されるように、A_SN=2のオーディオ1とオーディオ5との組み合わせの再生を選択する。これにより、オーディオ1(オーディオストリーム#1)とオーディオ5(オーディオストリーム#2)とをミキシング再生することができる。
このように、図37のnumber_of_combinationsと、その後のfor文を用いて、オーディオストリーム#1とオーディオストリーム#2との組み合わせを定義するようにすることで、矛盾するような組み合わせを定義せずに済み、ユーザは、常に再生可能なオーディオストリームの組み合わせを選択することができる。すなわち、図35の例においては、矛盾するオーディオストリームの組み合わせであるオーディオ2+オーディオ5を定義しないようにすることで、ユーザに、選択可能なもののみを提供することができる。
換言すれば、PlayItem()の中のSTN table()(図37)で、図25の1stオーディオデコーダ75−1でデコードするオーディオストリーム#1と、2ndオーディオデコーダ75−2でデコードするオーディオストリーム#2との組み合わせを、number_of_combinationsと、その後のfor文とを用いて定義するようにしたので、2つの組み合わせ可能なオーディオストリームをミキシングして再生することができる。すなわち、複数の種類からなるストリームから、同じ種類(この例の場合、オーディオストリーム)のストリームをミキシング(重畳、または合成)して、同時に再生することができる。
また、第3のSTN_table()を用いることにより、ユーザは、ミキシングする2つのオーディオストリームを個々に選ぶ必要がなく、2つのオーディオストリームが組み合わせられたものの中から、再生するオーディオストリームを選択することができる。
次に、図38は、オーディオストリーム#1とオーディオストリーム#2との組み合わせを定義する場合のSTN_table()のシンタクスのの第4の例(第4のSTN_table())を示す図である。なお、図中、図14や図37と同一の部分については、繰り返しになるのでその説明は省略する。
図38の例のオーディオストリームID (audio_stream_id)のforループの中で、順番にstream_entry()ごとに特定される1つのオーディオストリーム#1に、0からaudio_stream_idが与えられることと、その後に配置されるstream_attribute()とについては、図14の例と同様とされている。
ただし、図38の例のオーディオストリームID (audio_stream_id)のforループの中には、さらに、オーディオストリーム#1とオーディオストリーム#2との組み合わせを定義する次のような情報が含まれる。即ち、number_of_audio_stream2_entriesが0でない場合(if(number_of_audio_stream2_entries!=0))、number_of_audio_stream2_ref_entriesが与えられる。number_of_audio_stream2_ref_entriesは、audio_stream_idで特定されるオーディオストリーム#1と組み合わせ可能なオーディオストリーム#2の数を示す。そして、audio_stream_idで特定されるオーディオストリーム#1と組み合わせ可能なオーディオストリーム#2を特定するaudio_stream2_id_refが、number_of_audio_stream2_ref_entriesの後のfor文で定義される。
なお、他の例と同様に、オーディオストリームID2ref(audio_stream_id2_ref)の代わりに、オーディオストリーム番号2ref(audio_stream_number2_ref)を用いるようにしてもよい。また、オーディオストリームID(audio_stream_id)の代わりに、オーディオストリーム番号(audio_stream_number)を用いるようにしてもよい。
このように、図38を用いて説明した第4の例のSTN_table()を利用しても、オーディオストリーム#1とオーディオストリーム#2との組み合わせを定義することができる。すなわち、矛盾するようなオーディオストリームの組み合わせを定義せずに済むので、ユーザは、常に再生可能なオーディオストリームの組み合わせの再生を選択することができる。
ところで、上述したように、本発明の再生装置に装着される記録媒体上のアプリケーションフォーマットは、PlayListとClipの2つのレイヤを有している。そして、PlayListは、1つ以上のPlayItemの並びによって(連続するPlayItemにより)作られるメインパス(Main Path)と、そのMain Pathに並行(並列)して、1つ以上のSubPlayItemの並びによって(非連続でもよいし、連続してもよいSubPlayItemにより)作られるサブパス(Sub Path)を1以上含むことができる。
従って、例えば図39に示されるように、1画面のうちの、全画面301に、メインパスで参照されるAVストリーム(図39中、Primary Videoと記述されているビデオストリーム311、および、Primary Audioと記述されているオーディオストリーム312)に対応する映画本編等のコンテンツを再生させるとともに、全画面301に配置される子画面302に、サブパスで参照されるAVストリーム(図39中、Secondary Videoと記述されているビデオストリーム313、および、Secondary Audioと記述されているオーディオストリーム314)に対応する映画の監督のコメンタリー等、メインパスで参照されるAVストリームとは別のコンテンツを再生させる、といった手法を適用することが可能になる。
即ち、全画面(親画面)301と子画面302のそれぞれに別々のコンテンツを同時再生させる、といった手法を適用することが可能になる。
このような手法は、ピクチャインピクチャ(Picture in Picture)手法と称される。
なお、Primary Audioと記述されているオーディオストリーム312に対応する音声と、Secondary Audioと記述されているオーディオストリーム314に対応する音声との再生とは、上述したように、それら2つのオーディオストリームに対してミキシング処理が施された結果得られる音声の出力のことをいう。
また、実際の再生対象は、上述したように、各ストリームに対応する音声や画像であるが、以下の説明においては、説明の簡略上、各ストリームとする場合もある。即ち、所定のストリームを再生する、といった表現を使用する場合もある。
ピクチャインピクチャ手法を適用するアプリケーションを実現するためには、例えば、次のようなシンタクス(Syntax)が必要になる。即ち、例えば、図40および図41の例のSTN_ definition Tableにおけるvideo_stream_idで指定されるビデオストリーム(以下、プライマリビデオストリームと称する。例えば、図39の例では、Primary Videoと記述されているビデオストリーム311を、プライマリビデオストリーム311と称する)の数は、1つとされている。そこで、このことを考慮して、プライマリビデオストリームと同時に再生され得るストリームの組み合わせを定義するSyntaxがあれば、ピクチャインピクチャ手法の実現、即ち、ピクチャインピクチャを適用するアプリケーションの実現が可能になる。
ここで、ピクチャインピクチャ手法により、プライマリビデオストリームと同時に再生され得るストリームとして、例えば本実施の形態では、次の第1乃至第4の種類のストリームが用意されている。
第1の種類のストリームとは、図40および図41の例のSTN_ definition Tableにおけるaudio_stream_idで指定されるオーディオストリーム、即ち、上述したオーディオストリーム#1(以下、プライマリオーディオストリームと称する。例えば、図39の例では、Primary Audioと記述されているオーディオストリーム312を、プライマリオーディオストリーム312と称する)のことをいう。
第2の種類のストリームとは図40および図41の例のSTN_ definition Tableにおけるvideo_stream_id2で指定されるビデオストリーム(以下、セカンダリビデオストリームと称する。例えば、図39の例では、Secondary Videoと記述されているビデオストリーム313を、セカンダリビデオストリーム313と称する)のことをいう。
第3の種類のストリームとは図40および図41の例のSTN_ definition Tableにおけるaudio_stream_id2で指定されるオーディオストリーム、即ち、上述したオーディオストリーム#2(以下、セカンダリオーディオストリームと称する。例えば、図39の例では、Secondary Audioと記述されているオーディオストリーム314を、セカンダリオーディオストリーム314と称する)のことをいう。
第4の種類のストリームとは、サブパスで参照されるテキスト字幕ストリーム(txtST)や、DVDのサブピクチャのようなビットマップ字幕をランレングス符号化したストリーム(PG, Presentation Graphics stream)等のことをいう。例えば図39の例では、Subtitleと記述されているストリーム315が、第4の種類のストリームの一例である。なお、以下、第4の種類のストリームを、即ち、txtSTやPG等をまとめて、サブタイトルストリームと称する。なお、サブタイトルストリームの再生位置(字幕等の表示位置)は、特に子画面内である必要は無く、全画面のうちの何れの位置でもよい。このため、図39の例では、サブタイトルストリーム315は、子画面302からはみ出すように描画されている。
以上説明したように、ピクチャインピクチャ手法を適用するアプリケーションを実現するためには、例えば、プライマリビデオストリームと組み合わせて同時再生され得るストリームの組み合わせの定義、即ち、セカンダリビデオストリーム、プライマリオーディオストリーム、セカンダリオーディオストリーム、および、サブタイトルストリームの組み合わせの定義が必要となる。
さらに、複数の組み合わせを定義することで、全画面301に再生されるプライマリビデオストリームやプライマリオーディオスオストリームの切り替えのみならず、子画面302に再生されるセカンダリビデオストリームの切り替えや、サブタイトルストリームの切り替えも容易に行えるようになる。ただし、その切り替え操作の例については、図42と図43を参照して後述する。
このような、プライマリビデオストリームと組み合わせて同時再生され得るストリームの組み合わせの定義は、例えば、図40と図41に示されるようにSTN_tableにて行うことが可能である。即ち、図40と図41とは、プライマリビデオストリームと組み合わせて同時再生され得る、セカンダリビデオストリーム、プライマリオーディオストリーム、セカンダリオーディオストリーム、および、サブタイトルストリームの組み合わせを定義する場合のSTN_table()のシンタクスの第5の例(第5のSTN_table())を示す図である。なお、図中、上述した図37と同一の部分については、繰り返しになるのでその説明は省略する。
図40と図41の例では、プライマリビデオストリームと組み合わせて同時再生され得る、セカンダリビデオストリーム、プライマリオーディオストリーム、セカンダリオーディオストリーム、および、サブタイトルストリームの組み合わせは、次のように定義される。即ち、最初に、プライマリビデオストリームと組み合わせて同時再生され得るセカンダリビデオストリームが1以上定義される。そして、1以上のセカンダリビデオストリームのそれぞれに対して、同時に再生され得るオーディオストリーム(プライマリオーディオストリームとセカンダリオーディオストリーム)とサブタイトルストリームとが定義される。
具体的には、図40において、number_of_video_stream2_entriesは、STN_table()の中でエントリーされる(登録される)video_stream_id2が与えられるストリーム数を示す。video_stream_id2は、セカンダリビデオストリームを識別するための情報であり、video_stream_number2は、ビデオ切り替えに使われる、ユーザから見えるセカンダリビデオストリーム番号である。
図41において、ビデオストリームID2 (video_stream_id2)のforループの中で、順番にstream_entry()ごとに特定される1つのビデオエレメンタリストリーム(セカンダリビデオストリームとなるビデオエレメンタリストリーム)に、0からvideo_stream_id2が与えられる。
このとき、video_stream_id2に対して、number_of_Audio_combinations_for_video2が与えられ、その後のfor文では、number_of_Audio_combinations_for_video2の数だけ、audio_stream_idとaudio_stream_id2が与えられる。number_of_Audio_combinations_for_video 2とその後のfor文とは、セカンダリビデオストリームと同時再生されるオーディオストリームの組み合わせ、即ち、audio_stream_idで特定されるプライマリオーディオストリームと、audio_stream_id2で特定されるセカンダリオーディオストリームとの組み合わせを定義する情報である。video_stream_id2で特定されるセカンダリビデオストリームと組み合わせ可能なオーディオストリームの組(プライマリオーディオストリームとセカンダリオーディオストリームとの組)の数が、number_of_Audio_combinations_for_video2とされる。そして、video_stream_id2で特定されるセカンダリビデオストリームと組み合わせ可能なオーディオストリームの組として、プライマリオーディオストリームを特定するaudio_stream_idと、セカンダリオーディオストリームを特定するaudio_stream_id2とが、number_of_Audio_combinations_for_video2の後のfor文でそれぞれ定義される。
また、同じvideo_stream_id2に対して、number_of_Subtitle_combinations_for_video2が与えられ、その後のfor文では、number_of_Subtitle_combinations_for_video2の数だけ、PG_textST_stream_idが与えられる。number_of_Subtitle_combinations_for_video2とその後のfor文とは、セカンダリビデオストリームと同時再生されるサブタイトルストリームの組み合わせ、即ち、PG_textST_stream_idで特定されるサブタイトルストリームの組み合わせを定義する情報である。video_stream_id2で特定されるセカンダリビデオストリームと組み合わせ可能なサブタイトルストリームの数が、number_of_Subtitle_combinations_for_video2とされる。そして、video_stream_id2で特定されるセカンダリビデオストリームと組み合わせ可能なサブタイトルストリームを特定するPG_textST_stream_idが、number_of_Subtitle_combinations_for_video2の後のfor文で定義される。
なお、図14や図37を参照して説明したように、各IDの代わりに各番号、例えば、audio_stream_idの代わりに、オーディオストリーム番号(audio_stream_number)を用いたり、audio_stream_id2の代わりに、オーディオストリーム番号2(audio_stream_number2)を用いるようにしてもよい。ビデオストリームやサブタイトルストリームについても同様である。
図40と図41を用いて説明した第5のSTN_table()によれば、video_stream_id2を用いて、プライマリビデオストリームと同時再生されるセカンダリビデオストリームを定義することができ、さらに、そのvideo_stream_id2、および、audio_stream_id、audio_stream_id2、並びに、PG_textST_stream_idを用いて、そのセカンダリビデオストリームと同時再生され得る、プライマリオーディオストリーム、セカンダリオーディオストリーム、および、サブタイトルストリームの組み合わせを定義することができる。即ち、プライマリビデオストリームと同時再生され得る、セカンダリビデオストリーム、プライマリオーディオストリーム、セカンダリオーディオストリーム、および、サブタイトルストリームの組み合わせを定義することができる。
従って、プライマリビデオストリームと同時再生され得る、セカンダリビデオストリーム、プライマリオーディオストリーム、セカンダリオーディオストリーム、および、サブタイトルストリームの組み合わせとして、矛盾するような組み合わせを定義せずに済むので、ユーザは、プライマリビデオストリームと同時再生可能なストリームの組み合わせの再生を容易に選択することができる。
具体的な例を、図42と図43を参照して説明する。図42は、図40と図41を用いて説明した第5のSTN_table()が用いられた場合の、ユーザに提供するプライマリオーディオストリームまたはセカンダリオーディオストリームに対応する音声信号、セカンダリビデオストリームに対応する映像信号、および、サブタイトルストリームに対応する字幕信号の組み合わせの関係を表すストリームナンバーテーブルの例を示す図である。なお、図中、音声信号(オーディオ)と字幕信号(サブピクチャ)との記載については、図24または図35と同様であるので、その説明は省略する。
図42においては、PlayListのMain Pathを構成するPlayItemのSTN_table()でエントリーされるセカンダリビデオストリーム(video_stream_id2でエントリーされるセカンダリビデオストリーム)のそれぞれにV2_SN(Video2 Stream Number:セカンダリビデオストリーム番号とも称する)が与えられる。
具体的には、V2_SN=1にビデオ2が与えられ、V2_SN=2にビデオ1が与えられている。
このとき、V2_SN=1のビデオ2に対しては、プライマリオーディオストリームとしてオーディオ2(図41のvideo_stream_id2がビデオ2を特定するIDである場合のfor文中において、audio_stream_idでエントリーされるプライマリオーディオストリーム)が、セカンダリオーディオストリームとしてオーディオ4(図41のvideo_stream_id2がビデオ2を特定するIDである場合のfor文中において、audio_stream_id2でエントリーされるセカンダリオーディオストリーム)が、サブタイトルストリームとしてサブピクチャ3(図41のvideo_stream_id2がビデオ2を特定するIDである場合のfor文中において、PG_textST_stream_idでエントリーされるサブタイトルストリーム)が、それぞれ組み合わせ可能とされている。
また、V2_SN=2のビデオ1に対しては、プライマリオーディオストリームとしてオーディオ1(図41のvideo_stream_id2がビデオ1を特定するIDである場合のfor文中において、audio_stream_idでエントリーされるプライマリオーディオストリーム)が、セカンダリオーディオストリームとしてオーディオ4若しくはオーディオ5(図41のvideo_stream_id2がビデオ1を特定するIDである場合のfor文中において、2つのaudio_stream_id2のそれぞれでエントリーされる2つのセカンダリオーディオストリームのそれぞれ)が、サブタイトルストリームとしてサブピクチャ1(図41のvideo_stream_id2がビデオ1を特定するIDである場合のfor文中において、PG_textST_stream_idでエントリーされるサブタイトルストリーム)が、それぞれ組み合わせ可能とされている。
即ち、図41のvideo_stream_id2がビデオ1を特定するIDである場合のfor文中において、V2_SN=2のビデオ1と同時再生可能なオーディオストリームの組として、次の第1の組と第2の組とがそれぞれ定義されている。第1の組とは、プライマリオーディオストリームがオーディオ1であり、セカンダリオーディオストリームがオーディオ4である組のことをいう。第2の組とは、プライマリオーディオストリームがオーディオ1であり、セカンダリオーディオストリームがオーディオ5である第2の組のことをいう。
かかる図42のストリームナンバーテーブルがユーザに呈示された場合(ここでは、呈示形態は特に問わない)、ユーザは、はじめに、映画本編等と同時再生させる監督のコメンタリー等の映像に対応するセカンダリビデオストリームとして、即ち、子画面(図39の例では子画面302)に表示させる映像に対応するセカンダリビデオストリームとして、ビデオ2(VS_SN=1)とビデオ1(VS_SN2)とのうちの何れか一方を選択することができる(そのような選択操作ができる)。
例えば、セカンダリビデオストリームとしてビデオ2(VS_SN=1)が選択された場合には、図42に示されるように、そのビデオ2(VS_SN=1)と同時再生可能な組み合わせは、オーディオ2、オーディオ4、およびサブピクチャ3の組み合わせのみである。従って、セカンダリビデオストリームとしてビデオ2(VS_SN=1)が選択された時点で、ユーザの選択操作は終了となる。
一方、図43に示されるように、セカンダリビデオストリームとしてビデオ1(VS_SN=2)が選択された場合には、そのビデオ1(VS_SN=2)と同時再生可能な組み合わせとしては、オーディオ1、オーディオ4、およびサブピクチャ1の第1の組み合わせと、オーディオ1、オーディオ5、およびサブピクチャ1の第2の組み合わせ、といった2通りの組み合わせが存在する。従って、セカンダリビデオストリームとしてビデオ1(VS_SN=2)を選択した場合、ユーザは、さらに、かかる第1の組み合わせと第2の組み合わせとのうちの何れか一方を選択することができる(そのような選択操作ができる)。
具体的には、例えばここでは、図35で説明した選択操作と同様に、ユーザは、ビデオ1(VS_SN=2)と同時再生させるストリームに対して(ストリームナンバーテーブル上の対応する表示の右方に対して)、再生を選択するときには、「×」から「○」に切り換える一方、再生を選択しないときには、「×」のまま保持する、といった選択操作を実行することができる。なお、図35を用いて説明した場合と同様に、「○」は再生を選択する状態を示すシンボルとされている一方、「×」は再生を選択していない状態を示すシンボルとされている。
図43の例では、かかる選択操作により、オーディオ1、オーディオ4、およびサブピクチャ1の第1の組み合わせが選択された結果が示されている。即ち、図43に示されるように、V2_SN=2のビデオ1と同時再生されるプライマリオーディオストリームとしてオーディオ1が選択されるので、その選択状態は、「×」から「○」に切り換えられる。また、V2_SN=2のビデオ1と同時再生されるセカンダリオーディオストリームとしてオーディオ4が選択されるので(オーディオ5が選択されないので)、オーディオ4の選択状態は、「×」から「○」に切り換えられる一方、オーディオ5の選択状態は「×」のまま保持される。また、V2_SN=2のビデオ1と同時再生されるサブタイトルストリームとしてサブピクチャ1が選択されるので、その選択状態は、「×」から「○」に切り換えられる。
即ち、以上の一連の選択操作により、ビデオ1、オーディオ1、オーディオ4、および、サブピクチャ1を、メインビデオ(プライマリビデオストリームのことである)とともに再生可能な状態(そのような再生を選択する状態)とすることができる。
なお、上述した例では、プライマリビデオストリームと同時再生させるストリームの選択操作として、セカンダリビデオストリームを軸とする操作、即ち、先にセカンダリビデオストリームを選択した後、プライマリオーディオストリーム、セカンダリオーディオストリーム、および、サブタイトルストリームを選択する操作について説明した。
しかしながら、かかる選択操作として、上述した例のみならず、例えば、図35等を用いて上述した操作と同様にして、先にプライマリオーディオストリームを選択した後、セカンダリビデオストリーム、セカンダリオーディオストリーム、および、サブタイトルストリームを選択する操作を採用してもよい。即ち、図43のストリームナンバーテーブルのうちの、A_SN=1であるオーディオ2、A_SN=2であるオーディオ1、および、A_SN=3であるオーディオ3のうちの何れか1つを、プライマリオーディオストリームとして先に選択した後、図35等を用いて上述した操作と同様の操作により、セカンダリビデオストリーム、セカンダリオーディオストリーム、および、サブタイトルストリームを選択する、といった選択操作を採用することもできる。
また、例えば、先にサブタイトルストリームを選択した後、プライマリオーディオストリーム、セカンダリビデオストリーム、および、セカンダリオーディオストリームを選択する操作を採用することもできる。即ち、図43のストリームナンバーテーブルのうちの、S_SN=1であるサブピクチャ3、S_SN=2でサブピクチャ1、および、S_SN=3であるサブピクチャ2のうちの何れか1つを、サブタイトルストリームとして先に選択した後、図43中図示はされていないが、セカンダリビデオストリーム、プライマリオーディオストリーム、セカンダリオーディオストリームを選択する、といった選択操作を採用することもできる。
なお、本実施の形態では、セカンダリオーディオストリームのユーザの切り換え操作は禁止されている。このため、図43の例では、セカンダリオーディオストリームに対するA_SNは与えられていない。即ち、図43の例では、オーディオ1乃至3がプライマリオーディオストリームとして利用され、オーディオ4,5がセカンダリオーディオストリームとして利用されている。
ところで、以上説明した図40と図41の第5のSTN_table()を利用するシンタクスにより、ピクチャインピクチャ手法(図39参照)を実現させる場合、Subpath_typeの種類として上述した図11を用いて説明した第1の例の種類を利用すると、例えば図44に示されるPlayListが生成される。
図44の例では、メインパス(Main path)を構成するプレイアイテム1(PlayItem1)により参照されるclip AV Stream -0(メインClip AV Stream)に含まれるVideo(ビデオストリーム)とAudio(オーディオストリーム)とのそれぞれが、プライマリビデオストリームとプライマリオーディオストリームのそれぞれとなる。即ち、図39の例に対応させると、clip AV Stream -0に含まれるVideoとAudioとのそれぞれが、プライマリビデオストリーム311とプライマリオーディオストリーム312のそれぞれとして、全画面301に再生表示されるとともに、音声出力される。
一方、サブパス1(Sub path-1)に含まれるサブプレイアイテム(SubPlayItem:SPI)により参照されるClip AV Stream -1に含まれる2ndVideo(ビデオストリーム)が、セカンダリビデオストリームとなり、また、サブパス2(Sub path-2)がに含まれるサブプレイアイテム(SPI)としてのClip AV Stream -1に含まれる2ndAudio(オーディオストリーム)が、セカンダリオーディオストリームとなる。即ち、図39の例に対応させると、Clip AV Stream -1に含まれる2ndVideoと2ndAudioとのそれぞれが、セカンダリビデオストリーム313とセカンダリオーディオストリーム314のそれぞれとして、子画面302に再生表示されるとともに、音声出力される。
ただし、Clip AV Stream -0に含まれるAudioをプライマリオーディオストリームとして全画面301に対応つけて再生(音声出力)させ、かつ、Clip AV Stream -1に含まれる2ndAudioをセカンダリオーディオストリームとして子画面302に対応つけて再生(音声出力)させるとは、上述したように、それら2つのオーディオストリームに対してミキシング処理が施された結果得られる音声が再生出力されることを指す。
このように、図44の例では、SubPath_typeの種類として図11の例の種類が利用されて、その結果、メインパス、サブパス1、および、サブパス2により、ピクチャインピクチャ手法が実現されている。
しかしながら、図44の例では、プライマリビデオストリームであるClip AV Stream -0のVideoと同時に再生されるセカンダリビデオストリームとセカンダリオーディオストリームとのそれぞれは、同一のClip AV Stream -1内に含まれる2ndVideoと2ndAudioとのそれぞれであるにも関わらず、別々のサブパス1とサブパス2とのそれぞれで定義されている。なぜならば、図11の例では、参照されるES(エレメンタリストリーム)の本数は1本のみである、というSubPath_typeの種類しか用意されていないためである。即ち、図11の例では、Audio,IG,Text,Videoといった各種類のESが、同一のClipに含まれるClip AV Streamファイルに含まれているか否かによらず、ES1本ずつに対して、SubPath_typeが1つずつ常に割り当てられる、というSubPath_typeの種類しか用意されていないためである。
即ち、図44の例によらず、図11の例のSubPath_typeの種類が利用される場合、メインパスで参照されるESと別に、再生対象のESが2本以上存在するときには、それらの2本以上のESは別々のサブパスにそれぞれ分けられて、即ち、2つの別のSPIのそれぞれとして定義されることになる。
この場合、それらの2本以上のESが同一のClipに含まれるClip AV Streamファイルに含まれているならば、上述したSubPlayItem_IN_time,SubPlayItem_OUT_time等は同一となるにも関わらず、それぞれ個別に持つ(その結果何重にも持つ)必要が生じてしまい、SubPlayItem_IN_time、および、SubPlayItem_OUT_timeの情報が冗長となる、という第1の問題点が発生する。
また、この場合、再生対象のESごとにサブパスを定義しなければならないので、PlayListの構造が必要以上に複雑になる、という第2の問題点も発生する。
さらに、かかる第2の問題点から、次のような第3の問題点も発生する。
即ち、例えば、本実施の形態では、再生装置(例えば上述した図25の再生装置20や後述する図49の再生装置401)には、同時に2本のTS(2つのClip)までしか読めないという制限(縛り)が課せられている。かかる制限が課せられた再生装置では、このような複雑な構造のPlayListを再生しようとすると、そのPlayList内に定義されているメインパスと、何れのサブパスを組み合わせて再生すればよいのかを直ちに決められない、即ち、そのような組み合わせを決定するために複雑な処理の実行が必要になる、という第3の問題点が発生する。
そこで、本発明人は、かかる第1乃至第3の問題点を解決すべく、SubPath_typeの種類として、複数のESを取り扱える種類、即ち、複数のESを同時に参照可能とする種類を追加する、という手法をさらに発明した。かかる手法が適用されたSubPath_typeの種類の第2の例が図45に示されている。
即ち、図45は、SubPath_type(サブパスのタイプ)の種類の第2の例であって、図11とは異なる例、即ち、図11の例にも存在する種類に対して、かかる第1乃至第3の問題点を解決可能な種類を追加した例を説明する図である。すなわち、かかる第1乃至第3の問題点を解決するためには、例えば図45に示される第2のSubPath_typeを採用すればよい。
図45において、SubPath_type=0乃至4は、図11の対応するタイプと同一とされているので、ここではその説明については省略する。
ただし、SubPath_type=2乃至4の「Meaning」において、図45の例では「Out-of-mux」という記述がなされているが、図11の例ではその記述は省略されている。そこで、その記述について説明する。即ち、この「Out-of-mux」という記述は、サブパスで参照されるESが含まれるTSと、メインパスで参照されるESが含まれるTSとが異なっている場合のサブパスのタイプ(種類)、即ち、サブパスで参照されるESが、メインパスで参照されるプレイアイテムが含まれるTSに多重化されていないサブパスのタイプ(種類)であることを示している。以下、かかる種類を、メインパスTS非多重型のパスと称する。
また、SubPath_type=2,3のように、メインパスで参照されるESとサブパスで参照されるESとが非同期である場合、そのサブパスのタイプ(種類)を、以下、非同期型のパスと称する。一方、SubPath_type=4,5のように、メインパスで参照されるESとサブパスで参照されるESとが同期する場合、そのサブパスのタイプ(種類)を、以下、同期型のパスと称する。
SubPath_type=5は、Out-of-mux and AV Synchronized type of one or more elementary streams path(Primary audio/PG/IG/Secondary audio path).Out of mux and AV synchronized type of Picture-in-Picture presentation path which contains one or more elementary streams pathsとされている。即ち、SubPath_type=5は、メインパスTS非多重型、かつ、同期型のパスであって、1本以上のES(Primary audio/PG/IG/Secondary audio)のパスや、ピクチャインピクチャプレゼンテーションパスとされている。
すなわち、SubPath_type=5は、図11を用いて説明した例におけるSubPath_type=5,6のそれぞれで示される種類も含まれ、2nd Audio Presentation path(2番目のオーディオプレゼンテーションパス)(2ndオーディオストリームを参照するためのパス)や、2nd Video Presentation path(2番目のビデオプレゼンテーションパス)(2ndビデオストリームを参照するためのパス)を含むものである。
ここで、ピクチャインピクチャプレゼンテーションパスとは、上述したピクチャインピクチャ手法(図39参照)において、所定のプライマリビデオストリームについての、プライマリオーディオストリームストリーム、セカンダリビデオストリーム、セカンダリオーディオストリーム、および、サブタイトルストリームのうちの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=8は、メインパスTS非多重型、かつ、非同期型のパスであって、ピクチャインピクチャプレゼンテーションパス(1以上のESのパス)とされている。
SubPath_type=7は、In-mux type and AV Synchronized type of Picture-in-Picture presentation path which contains one or more elementary streams pathsとされている。
ここで、「In-mux」という記述は、サブパスで参照されるESが含まれるTSと、メインパスで参照される1以上のESが含まれるTSとが同一の場合のサブパスのタイプ(種類)、即ち、サブパスで参照されるESが、メインパスで参照されるESを含むTSに多重化されているサブパスのタイプ(種類)であることを示している。換言すれば、メインクリップに含まれるメインTSに、メインのClip AVストリームと、サブのClip AVストリームとが含まれている状態である。以下、かかる種類を、メインパスTS多重型のパスと称する。
即ち、SubPath_type=7は、メインパスTS多重型、かつ、同期型のパスであって、ピクチャインピクチャプレゼンテーションパス(1以上のESのパス)とされている。
そして、SubPath_type=8乃至255は予備(reserved)とされている。
図45の例のSubpath_typeの種類を利用することにより、新たに追加されたSubPath_type=5,6,7を利用することが可能となる。ここで、SubPath_type=7においては、PlayItemにより参照されるMainTS、すなわち、メインClip AVストリームには、SubPathにより参照されるSubSTも含まれる。そのため、図17を用いて説明したStream_entry()に代わって、type=3が定義された、図46に示される第2のStream_entry()が用いられる。
すなわち、第2のStream_entry()において定義されているtype=3は、対応するPlayItemにおいてSubPath_type=7の場合に、MainClipに含まれ、SubPathによって参照されるエレメンタリストリームを識別するためのものである。
なお、図46において、図15と同一の部分については、その説明を適宜省略する。
すなわち、type=3では、SubPathがMainPathと同じClipを参照し、換言すれば、MainClipに複数のエレメンタリストリームが多重化され、MainPathとSubPathとのいずれも、MainClipに多重化されているエレメンタリストリームのうちのいずれかを参照している場合に、SubPath_type=7において、MainClipの複数のエレメンタリストリームの中から、SubPathによって参照される1つのエレメンタリストリームを再生時に特定するために、ref_to_stream_PID_of_MainClipにより、MainClipのパケットID(PID)が指定される。また、ref_to_SubPath_idによりSubPath_idが示され、このSubPath_idにより図9のPlayList()で定義されたSubPathが特定され、このSubpathから対応するSubPlayItemが呼び出されることにより(図10)、エレメンタリストリームの再生時間(In_time, Out_time)等を把握することができる(図12)ようになされている。
このように、type(type1乃至type3の3つのtype)を使うことで、PlayItemとそれに関連付けられて再生される1つ以上のSubPathが用意されている場合に、このPlayItemが参照するClipが、さらに、SubPathから参照されている場合であっても、Clipの中から1つのエレメンタリストリームを特定することができる。
以上説明したような図45の例のSubpath_typeの種類を利用することで、即ち、図11の例にも存在したSubPath_type=1乃至4とともに、新たに追加されたSubPath_type=5,6,7を利用することで、ピクチャインピクチャ手法(図39参照)を実現させる場合のPlayListとして、図44の例のような複雑な構造のPlayListの代わりに、例えば図47に示されるような簡単な構造のPlayListの作成/利用が可能になる。
即ち、図47の例でも、メインパス(Main path)に含まれるプレイアイテム1(PlayItem1)が参照するClip AV Stream -0に含まれるVideo(ビデオストリーム)とAudio(オーディオストリーム)とのそれぞれが、プライマリビデオストリームとプライマリオーディオストリームのそれぞれとなる。即ち、図39の例に対応させると、clip AV Stream -0に含まれるVideoとAudioとのそれぞれが、プライマリビデオストリーム311とプライマリオーディオストリーム312のそれぞれとして、全画面301に再生されるとともに、音声出力される。
また、図47の例でも、プライマリビデオストリームであるClip AV Stream -0のVideoと同時に再生されるセカンダリビデオストリームとセカンダリオーディオストリームとのそれぞれは、同一のClip AV Stream -1内に含まれる2ndVideoと2ndAudioとのそれぞれとされている。
そこで、図47の例では、サブパスA(Sub path-A)のタイプとして、上述したSubPath_type=7、即ち、メインパスTS非多重型、かつ、同期型のパスであって、ピクチャインピクチャプレゼンテーションパスが採用されている。これにより、サブパスA(Sub path-A)が参照するサブプレイアイテム(SPI)として、Clip AV Stream -1に含まれる2ndVideoと2ndAudioとの2つのESを同時に参照できるようになる。その結果、図39の例に対応させると、1つのサブパスA(Sub path-A)のみで参照されるClip AV Stream -1に含まれる2ndVideoと2ndAudioとのそれぞれが、セカンダリビデオストリーム313とセカンダリオーディオストリーム314のそれぞれとして、子画面302に再生されるとともに、音声出力される。
その際、サブパスA(Sub path-A)のタイプとして、上述したSubPath_type=5が採用されている場合、セカンダリビデオストリーム313とセカンダリオーディオストリーム314とは、プライマリビデオストリーム311と同期して再生されることになる。
換言すると、セカンダリビデオストリーム313とセカンダリオーディオストリーム314とを、プライマリビデオストリーム311と非同期で再生したい場合には(或いは非同期で再生する必要がある場合には)、サブパスA(Sub path-A)のタイプとして、上述したSubPath_type=8、即ち、メインパスTS非多重型、かつ、非同期型のパスであって、ピクチャインピクチャプレゼンテーションパス(1以上のESのパス)を採用すればよい。
このように、図47の例では、図45の例のSubpath_typeの種類が採用された結果、メインパスの他1つのサブパスのみで、ピクチャインピクチャ手法が実現されている。
即ち、同一のClip AV Stream -1に含まれる2ndvideoと2ndAudioとのそれぞれをセカンダリビデオストリーム313とセカンダリオーディオストリーム314として利用する、といったピクチャインピクチャ手法を実現する場合、図11の例のSubpath_typeの種類を利用して生成された図44の例のPlayListでは、同一のClip AV Stream -1に含まれる2ndvideoと2ndAudioとのそれぞれは2つの別々のサブパスで参照されていた。これに対して、図45の例のSubpath_typeを利用して生成された図47の例のPlayListでは、同一のClip AV Stream -1に含まれる2ndvideoと2ndAudioとのそれぞれは1つのサブパスのみで参照できるようになっている。
その結果、2ndvideoと2ndAudioとのそれぞれについての、SubPlayItem_IN_time,SubPlayItem_OUT_time等は1つ持てばよいため、上述した第1の問題点を解決することが可能になる。
また、図44の例と図47の例のPlayListを比較すれば明らかなように、その構造を簡素化できるので、第2の問題点と第3の問題点を解決することが可能になる。
さらに、図45の例のSubpath_typeの種類のうちのSubPath_type=7、即ち、メインパスTS多重型、かつ、同期型のパスであって、ピクチャインピクチャプレゼンテーションパス(1以上のESのパス)を利用することで、例えば図48に示されるようなPlayListを作成することが可能になる。その結果、図48の例のPlayListを利用したピクチャインピクチャ手法の実現も容易に可能になる。
図48の例では、メインパス(Main path)が参照するプレイアイテム1(PlayItem1)により参照されるMain TSには、Clip AV Stream -0(ただし、図47のClip AV Stream -0とは異なるClip AV Stream)が含まれており、Clip AV Stream -0には、PlayItem1によって参照されるMain TSと、SubPlayItemによって参照されるSub TSが含まれている。そして、Main TSに含まれるVideo(ビデオストリーム)とAudio(オーディオストリーム)とのそれぞれが、プライマリビデオストリームとプライマリオーディオストリームのそれぞれとなる。即ち、図39の例に対応させると、Clip AV Stream -0に含まれるVideoとAudioとのそれぞれが、プライマリビデオストリーム311とプライマリオーディオストリーム312のそれぞれとして、全画面301に再生されるとともに音声出力される。
また、図48の例では、プライマリビデオストリームであるMain TSのVideoと同時に再生されるセカンダリビデオストリームとセカンダリオーディオストリームとのそれぞれは、同じMain TSに含まれるClip AV Stream -0に含まれる2ndVideoと2ndAudioとのそれぞれとなる。
この場合、図48の例のPlayListを作成するためには、サブパスA(Sub path-A)のタイプとして、SubPath_type=7を採用すればよい。これにより、サブパスA(Sub path-A)に含まれるサブプレイアイテム(SPI)が参照するESとして、メインパスでも参照しているMain TSのClip AV Stream -0に含まれるSubSTの2ndVideoと2ndAudioとの2つのESを参照できるようになる。その結果、図39の例に対応させると、サブパスA(Sub path-A)で参照されるClip AV Stream -0に含まれる2ndVideoと2ndAudioとのそれぞれを、セカンダリビデオストリーム313とセカンダリオーディオストリーム314のそれぞれとして、子画面302に再生するとともに、音声出力することができるようになる。すなわち一つのファイルがメインパス、サブパスを含むように構成することにより、更に別のファイルに含まれるストリームを同時に再生させることも可能となる。
その他、図48に示されるように、PlayItem-1に対するサブパスとして、サブパスAに加えて、Clip AV Stream -0が含まれているMainTSとは異なるTSに含まれているClip AV Stream -1(ただし、図44のClip AV Stream -1とは異なるClip AV Stream)を参照するサブパスB(Subpath-B)が定義されている場合には、上述したように、本実施の形態の再生装置は、2つのTS(Clip)を同時に読み出すことが可能であるので、MainTSに含まれるVideo,Audio,2ndVideo,2ndAudioとともに、SubTSに含まれるPG等も読み出すことが可能になる。
以上、ピクチャインピクチャ手法(図39参照)を適用するために必要なSyntaxの例、即ち、図40と図41の例のSTN_table()や、図45の例のSubPath_typeの種類について説明した。
かかるピクチャインピクチャ手法を実現するためには、プライマリビデオストリームとセカンダリビデオストリームとを同時再生できる機能を有する再生装置、例えば図49に示されるような再生装置の適用が必要である。
即ち、図49は、本発明を適用した再生装置の構成例であって、図25の例とは異なる構成例を示すブロック図である。
図49の例の再生装置401は、上述したメインパスとサブパスを有するPlayListであって、ピクチャインピクチャ手法を実現するためのPlayList(例えば図47や図48の例のPlayList)に従った再生を行うことができる。
なお、図49において、図25と対応する部分(ブロック)には対応する符号が付してあり、それらの説明については適宜省略する。
図49の例の再生装置401には、図25の例の再生装置20と同様の機能と構成を有する、ストレージドライブ31、スイッチ32、およびコントローラ34が設けられている。ただし、コントローラ34の機能は追加されている。追加された機能の詳細については後述する。さらに、図49の例の再生装置401には、図25の例の再生装置20のAVデコーダ部33とは機能と構成が若干異なるAVデコーダ部403が設けられている。
即ち、図49の例のAVデコーダ部403には、図25の例のAVデコーダ部33とほぼ同様の機能と構成を有するバッファ51乃至ミキシング処理部101が設けられている他、さらに、図25の例のAVデコーダ部33には設けられていないPIDフィルタ411乃至プリロード用バッファ414が設けられている。
なお、「図25の例のAVデコーダ部33とほぼ同様の機能と構成を有する」といったように「ほぼ」と記述したのは、ビデオデコーダ72やビデオプレーン生成部92の呼称が、1stビデオデコーダ72や1stビデオプレーン生成部92と変更されていたり、PIDフィルタ56の出力が1つ増加していたり等、若干異なるところがあるからである。
以下、図49の例のAVデコーダ部403のうちの、図25の例のAVデコーダ部33とは異なる箇所について説明する。
AVデコータ部403は、ピクチャインピクチャ手法を実現するために、プライマリビデオストリームとセカンダリビデオストリームとをデコードする必要がある。このため、図25の例のAVデコーダ部33に設けられていたビデオデコーダ72とビデオプレーン生成部92とのそれぞれは、図49の例のAVデコーダ部403においては、プライマリビデオストリーム用の1stビデオデコーダ72と1stビデオプレーン生成部92とのそれぞれとして設けられている。さらに、図49の例のAVデコーダ部403には、1stビデオデコーダ72と1stビデオプレーン生成部92とのそれぞれと同様の機能と構成を有する、セカンダリビデオストリーム用の2ndビデオデコーダ412と2ndビデオプレーン生成部413とのそれぞれが設けられている。
また、PIDフィルタ411には、メインClipAV Streamのビデオストリーム、または、サブClip AV Streamのビデオストリームが、PIDフィルタ55またはPIDフィルタ56を介して入力されてくる。そこで、PIDフィルタ411は、入力されたビデオストリームを、そのPID(パケットID)に応じて、後段の1stビデオデコーダ72または2ndビデオデコーダ412に振り分けて出力する。即ち、PIDフィルタ411は、プライマリビデオストリームが入力された場合には、そのプライマリビデオストリームを1stビデオデコーダ72に供給する。これに対して、PIDフィルタ411は、セカンダリビデオストリームが入力された場合には、そのセカンダリビデオストリームを2ndビデオデコーダ412に供給する。
なお、本実施の形態では、プライマリビデオストリームとして、メインClipAV Streamのビデオストリームのみが利用され、サブClip AV Streamのビデオストリームは利用されないとされている。ただし、将来、サブClip AV Streamのビデオストリームもプライマリビデオストリームとして利用され得ることも考慮して、PIDフィルタ56から供給されたサブClip AV Streamのビデオストリームも1stビデオデコーダ72に供給され得るように、PIDフィルタ411が構成されている。
プリロード用バッファ414は、インタラクティブグラフィックスデコーダ74から供給されたインタラクティブグラフィックスストリームを一時記憶する。即ち、上述したように、本実施の形態では、再生装置401には、一度に2つのTS(Clip)しか読み出せないという制限が課せられている。そこで、再生装置401は、インタラクティブグラフィックスストリームを予め取得しておくことで(プリロードしておくことで)、ビデオストリームやオーディオストリームを再生するときに、プリロードしておいたインタラクティブグラフィックスストリームも同時再生することができる、といった機能を有している。かかる機能を実現するために、即ち、プリロードされたインタラクティブグラフィックスストリームを、ビデオストリームやオーディオストリームが再生されるタイミングまで保存しておくために、プリロード用バッファ414が図49の例のAVデコード部403に設けられているのである。
次に、かかる図49の例の再生装置401が実行するピクチャインピクチャ手法による処理の一例であって、プライマリビデオストリーム等の再生中等に、再生対象のセカンダリビデオストリーム等を切り替えるために必要な一連の処理(以下、セカンダリビデオ切り換え処理と称する)の一例について、図50と図51のフローチャートを参照して説明する。
図50のステップS101において、コントローラ34は、セカンダリビデオストリーム番号(IDでもよい)の順番リストと、セカンダリビデオストリームに組み合わされているプライマリオーディオストリーム、セカンダリオーディオストリーム、および、サブタイトルストリームのリストを、図40と図41とを用いて説明した第5のSTN_table()から取得する。
ここでは、このステップS101の処理後、取得されたリストに基づいて、例えば上述した図42のようなストリームナンバーテーブルが生成され、そのストリームナンバーテーブル自身またはそれに基づいて生成された所定のGUI(Graphical User Interface)画像がユーザに呈示されるとする。そして、これにより、処理はステップS102に進むとする。
ステップS102において、コントローラ34は、ユーザからのセカンダリビデオストリームに対する切り替えの指令を受け付ける。
即ち、上述した図42と図43を用いて説明したユーザの切り替え操作の内容が、ステップS102において、ユーザからのセカンダリビデオストリームに対する切り替えの指令としてコントローラ34に受け付けられることになる。
ステップS103において、コントローラ34は、再生しているセカンダリビデオストリーム、プライマリオーディオストリーム、セカンダリオーディオストリーム、および、サブタイトルの組み合わせの次の組み合わせの番号を取得する。
具体的には、例えば、図42の例のストリームナンバーテーブルがユーザに呈示されたとすると、セカンダリビデオストリーム、プライマリオーディオストリーム、セカンダリオーディオストリーム、および、サブタイトルの組み合わせとして、次の第1の組み合わせ乃至第3の組み合わせが存在することになる。即ち、第1の組み合わせとは、ビデオ2、オーディオ2、オーディオ4、サブピクチャ3の組み合わせをいう。第2の組み合わせとは、ビデオ1、オーディオ1、オーディオ4、サブピクチャ1の組み合わせをいう。第3の組み合わせとは、ビデオ1、オーディオ1、オーディオ5、サブピクチャ1の組み合わせをいう。そこで、例えばここでは、第1の組み合わせ、第2の組み合わせ、および、第3の組み合わせのそれぞれの組み合わせの番号として、1、2−1、2−2のそれぞれが与えられているとする。そして、例えばここでは、ステップS102の処理で、図43の例の選択操作結果、即ち、第2の組み合わせの選択指令がコントローラ34に受け付けられたとする。この場合、ステップS103の処理では、次の組み合わせの番号として2−1が取得される。
ステップS104において、コントローラ34は、stream_attribute()を参照して、取得した番号(初回のステップS104の処理では、直前のステップS103の処理で取得した番号)に対応する複数のストリームの再生する機能を有するか否かを判定する。
具体的には、例えば、オーディオストリームの再生機能に着目すると、図43の例の選択操作結果、即ち、第2の組み合わせの選択指令がコントローラ34に受け付けられた場合には、オーディオ1とオーディオ4とのそれぞれの再生機能を有するか否かの判定がステップS104の処理として実行される。
なお、オーディオストリームの再生機能の有無の判定手法の具体例については、上述した図30のステップS74の処理の説明の際に併せて説明しているので、ここでは省略する。
また、その他、ビデオストリーム等他のストリームの再生機能の有無の判定もステップS104の処理として併せて実行することも可能である。
ステップS104において、取得した番号に対応する複数のストリームの再生する機能を有していないと判定した場合、コントローラ34は、ステップS105において、現在の組み合わせの番号の次の組み合わせの番号を取得する。即ち、現在の組み合わせ番号で特定されるオーディオストリーム等を再生する機能を有しない場合には、その組み合わせ番号は飛ばされ(再生対象とならず)、次の組み合わせ番号が取得される。その後、処理はステップS104に戻され、それ以降の処理が繰り返される。即ち、再生装置401自身が再生する機能を有するオーディオストリーム等を特定する組み合わせ番号が取得されるまで、ステップS104とS105のループ処理が繰り返される。
ステップS104において、取得した番号(1回目の処理の場合は上述したように直前のステップS103の処理で取得された番号であり、2回目以降の処理の場合は直前のステップS105の処理で取得された番号である)に対応する複数のストリームの再生する機能を有すると判定された場合、処理は図51のステップS106に進む。
ステップS106において、コントローラ34は、stream_entry()びtype情報に基づいて、取得した番号に対応するセカンダリビデオストリーム、プライマリオーディオストリーム、セカンダリオーディオストリーム、およびサブタイトルストリーム各々を含むClipを調べる。即ち、取得した番号に対応するセカンダリビデオストリーム、プライマリオーディオストリーム、セカンダリオーディオストリーム、およびサブタイトルストリームは各々、メインClipにあるのか、それとも、サブClipにあるのかが確認される。なお、各ストリームの確認手法の具体例については、上述した図30のステップS76の処理の説明の際に併せて説明しているので、ここでは省略する。
ステップS107において、コントローラ34は、所望のセカンダリビデオストリーム、プライマリオーディオストリーム、セカンダリオーディオストリーム、およびサブタイトルストリーム各々を特定する。即ち、ステップS107の処理で、メインClipまたはサブClipの中の中から、取得した番号に対応する所望の各ストリームが特定される。なお、各ストリームの特定手法の具体例については、上述した図30のステップS77の処理の説明の際に併せて説明しているので、ここでは省略する。
ステップS108において、コントローラ34は、特定されたそれぞれの所望のストリームが多重化されているClip(メインClipまたはサブClip)から、所望のセカンダリビデオストリーム、プライマリオーディオストリーム、セカンダリオーディオストリーム、およびサブタイトルストリーム各々を読み出すようストレージドライブ31に指示する。ストレージドライブ31は、この指示に基づいて、対象となるClipから所望のストリームを読み出す。具体的には、コントローラ34は、ステップS106の処理で特定したClipから、ステップS7の処理で特定したストリームを読み出すようストレージドライブ31に指示する。
ステップS109において、コントローラ34は、読み出された各々のストリーム、すなわち、セカンダリビデオストリーム、プライマリオーディオストリーム、セカンダリオーディオストリーム、およびサブタイトルストリームなどを再生するようAVデコーダ部403に指示する。具体的には、コントローラ34は、読み出された所望のセカンダリビデオストリームを2ndビデオデコーダ412にデコードさせるよう、読み出された所望のプライマリオーディオストリームを1stオーディオデコーダ75−1にデコードさせるよう、読み出された所望のセカンダリオーディオストリームを2ndオーディオデコーダ75−2にデコードさせるよう、読み出された所望のサブタイトルストリームをプレゼンテーショングラフィックスデコーダ73等にデコードさせるよう、それぞれ指示する。
ステップS110において、AVデコーダ部403は、セカンダリビデオストリーム、プライマリオーディオストリーム、セカンダリオーディオストリーム、およびサブタイトルストリームをデコードし出力し、処理が終了される。
その際、プライマリオーディオストリームとセカンダリオーディオストリームとについては、上述した図30のステップS80の処理の説明の際に併せて説明したように、ミキシングされた結果得られるオーディオ信号が出力されることになる。
このようなセカンダリビデオ切り替え処理の結果、図39を用いて説明したピクチャインピクチャ手法が実現される。即ち、図39の例では、プライマリビデオストリーム311に対応する映像が全画面311に表示(再生)されている最中に、ステップS110の処理で出力されたセカンダリビデオストリーム313に対応する映像が子画面302に表示(再生)され、ステップS110の処理で出力されたサブタイトルストリーム315に対応する字幕等が全画面311の所定の位置に表示(再生)され、ステップS110の処理で出力されたプライマリオーディオストリーム311とセカンダリオーディオストリーム402とがミキシングされた結果得られる音声が、図39には図示せぬスピーカから出力(再生)される。
以上説明したように、図40と図41の例のSTN_tableを採用することで、ピクチャインピクチャ手法を実現することが可能になる。
このようなピクチャインピクチャ手法を実現する場合、図11の例のSubPath_typeの種類を利用して生成されるPlaylist(例えば図44参照)を利用することも可能であるが、上述したように、同一のClip AV Streamに含まれているセカンダリビデオストリームやセカンダリオーディオストリーム等は、それぞれ別々のサブパスに分けられること、即ち、2つの別のSPIとして定義されることになってしまう。その結果、上述した各種問題点、例えばPlayListの構造が必要以上に複雑になるという問題点が発生する。
そこで、これらの各種問題点を解決する場合には、同一Clip AV Stream内の2以上のES(セカンダリビデオストリームやセカンダリオーディオストリーム等)を1つのサブパスで参照できるように、即ち、同一Clip AV Stream内の2以上のESを1つのSPIとして定義できるようなSubPath_typeの種類、即ち例えば図45を用いて説明したSubPath_typeの種類を採用すればよい。
ただし、PlayListの作成者側の観点に立つと、図45の例のSubPath_typeの種類を採用することで簡単な構造のPlayListを作成できるようになったとは言え、即ち、作成された結果のPlayListの構造が簡単になったとは言え、そのような簡単な構造のPlayListを作成するまでには、次のような困難な作業が必要になる。即ち、PlayListの作成者は、ピクチャインピクチャ手法を実現するために、どのような種類のストリームの組み合わせが可能であり、どのような種類のストリームの組み合わせが不可能であるのかを自分自身で判断した上で、即ち、どのような種類のサブパスを含めるのかを自分自身で判断した上で、PlayListを作成しなければいけない、といった困難な作業が必要になる。従って、PlayListの作成者側から、PlayListを簡単に作成したいという要望が挙げられるようになることは想像に難くない。
従って、かかる要望に予め応えるべく、本発明人は、さらに、PlayListの種類に応じて、作成可能(そのPlayListに含めることが可能なサブパス)を、図45を用いて説明したSubPath_typeにより制限する、といった手法を発明した。なお、以下、かかる手法を、サブパス制限手法と称する。
サブパス制限手法を適用することで、1つのPlayListに含め得るサブパスが限定されるため、作成者にとっては、PlayListにどのようなサブパスを含めるのかを判断した上でサブパスを作成することが容易になり、ひいては、PlayListの作成自体も容易になる、という効果を奏することが可能になる。
以下、サブパス制限手法について、詳しく説明していく。
ただし、サブパス制限手法では、再生装置が一度に読み出すことが可能なTSの数によって、その制限内容が変化する。本実施の形態では、上述したように、再生装置が一度に読み出すことが可能なTSは2つとされている。そこで、以下、再生装置が一度に読み出すことが可能なTSは2つである場合のサブパス制限手法について説明していく。
本実施の形態では、PlayListは、Browsable Slideshow(非同期型)と、Movie Type/Time-based Slideshow(同期型)といった2種類に大別される。PlayListの種類が非同期型であるのか或いは同期型であるのかといった区別は、そのPlayListにより参照されるClipのClip_Information_fileに含まれるapplication_type(アプリケーションタイプ)に従って行うことが可能である。
application_typeは、あるClipについてのClip Informationファイル中のClipInfo()に記述されている。ただし、ここでは、説明の簡略上、ClipInfo()のシンタクスの説明については省略し、以下、そのClipinfo()に記述され得るapplication_typeの種類についてのみ、図52を参照して説明する。
即ち、図52は、application_typeの種類の例を説明する図である。
図52に示されるように、application_type=0は、予備(reserved)とされている。application_type=1は、映画のアプリケーション用のMainTSとされている。ここで「MainTS」とは、Playlistにおいてメインパスにより参照されるPlayItemとしてのTS、即ち、Main TSを指している。application_type=2は、Time-based Slideshow用のMainTS、即ち、静止画のスライドショー用のMainTSとされている。application_type=3は、Browsable Slideshow用のTS、即ち、ビデオのスライドショー用のMainTSとされている。application_type=4は、SubPath用のBrowsable SlideshowのTSとされている。これは、例えば、上述したapplication_type=3と非同期で再生されるBGM(サウンド)データを保持するClip AVストリームに対してのClip Info()に付与される。application_type=5は、SubPathのインタラクティブグラフィックス用のTSとされている。application_type=6は、SubPathのテキストサブタイトル(テキスト字幕データ)用のTSとされている。application_type=7は、1つ以上のES(エレメンタリストリーム)を含むSubPath用のTSとされている。application_type=8乃至255は、予備(reserved)とされている。
そこで、本実施の形態では、PlayListにより示されるMain TSについてのClipInfo()に記述されているapplication_typeが、application_type=3の場合、そのPlayListはBrowsable Slideshow(非同期型)に分類され、application_type=1or2の場合、そのPlayListはMovie Type/Time-based Slideshow(同期型)に分類されるとする。
この場合、PlayListの種類(非同期型または同期型)に対する、そのPlayListが持ち得るSubPath(サブパス)の組み合わせは、図53に示される組み合わせのみ許可する、という制限がサブパス制限手法により課されることになる。
図53において、「number of SubPaths」の項目には、PlayListにより示されるMain TSが持ち得る、左方の「SubPath_type」の項目に示される種類のSubPathの個数が記述されている。
また、図53における「SubPath_type」の項目の各記述値(SubPath_typeの種類)は、上述した図11を用いて説明した種類ではなく、図45を用いて説明した種類に対応している。
図53に示されるように、PlayListの種類が非同期型の場合、即ち、application_type(of Main TS)=3であるBrowsable slideshowの場合、(1)0本以上のSubPath_type=2のSubPath、(2)0本以上のSubPath_type=3のSubPathのみが許可される。換言すると、(1)と(2)以外のSubPathの組み合わせは禁止される。
また、(2)の組み合わせであっても、application_type=3のMain TSにIGが含まれる場合には、SubPath_type=3のSubPathは禁止される(図53中*2参照)。これは、次の制約によるものである。
即ち、IGの観点に立つと、IGを含むPlayListは、次の第1の種類と第2の種類に大別される。第1の種類とは、参照されるMain TSにIGが多重化されていて、そのMain TSのAudio/VideoとIGが同期再生される、という種類をいう。第2の種類とは、SubPath_type=3のSubPatを含み、IGはプリロードされる(このIGはポップアップメニューに使われる)、という種類をいう。なお、この第2の種類のPlayListを再生可能とするために、上述したように、図49の再生装置401にはプリロード用バッファ414が設けられているのである。
また、本実施の形態の再生装置はIGデコーダを1つしか有しないため、具体的には例えば図49の再生装置401はインタラクティブグラフィックスデコーダ74を1つしか有しないため、次の制限が課せられている。即ち、上述した第1の種類のPlayListでは、IGデコーダがMain TSのIGをデコード中に、別のIGをプリロードできない、という制限が課せられている。一方、上述した第2のPlayListでは、IGデコーダ中にプリロードされた第1のIGが入力されている状態のとき、別のMain TSからの第2のIGをIGデコーダへ入力できない、という制限が課せられている。
以上のことから、Main TSに多重化されているIGを参照するSTN_table()を含むPlayListは、SubPath_type=3のSubPathを持てないという制約が課せられることになる。かかる制約のため、application_type=3のMainTsにIGが含まれる場合には、SubPath_type=3のSubPathは禁止される、としたのである(図53中*2参照)。
一方、PlayListの種類が同期型の場合、即ち、application_type(of Main TS)=1 or 2であるMovie Type/Time-based Slideshowの場合、(3)0本以上のSubPath_type=3のSubPath、(4)0本以上のSubPath_type=4のSubPath、(5)0本以上のSubPath_type=5のSubPath、(6)0本以上のSubPath_type=6のSubPath、(7)0本または1本のSubPath_type=7のSubPathのみが許可される。換言すると、SubPath_type=2のSubPathの組み合わせは禁止される。
また、(3)の組み合わせであっても、application_type=3のMainTSにIGが含まれる場合、または、SubPath_type=5のSubPathが参照するTSにIGが含まれる場合には、SubPath_type=3のSubPathは禁止される(図53中*1参照)。これも、上述した制約によるものである。
さらに、本実施の形態では、上述したように、PlayListが一度に参照することができるClipの数、すなわち、再生装置が一度に読み出すことが可能なTS(Clip)は2つとされている。そこで、同一のPlayListにより参照されるESが多くても2つのClipに含まれていること、すなわち、同時に再生されるESは、多くても2つのClip AVストリームファイルから同時に参照されることを保証するために、次に示される条件を満たすという制限がサブパス制限手法により課せられている。
即ち、サブパス制限手法により課せられている、STN_table()によって参照される、primary_video_stream、primary_audio_stream、PG_textST_stream(Text subtitle streamを除く)、IG_stream、,secondary_video_stream(IG for Pop-up menuを除く)、および、secondary_audio_streamのそれぞれを組み合わせる時の条件とは、次の通りである。
ある値のprimary_video_stream_numberで特定されるES、ある値のprimary_audio_stream_number で特定されるES、ある値のPG_textST_stream_numberで特定されるES、ある値のIG_stream_number valueで特定されるES、ある値の secondary_video_stream_number で特定されるES、ある値のsecondary_audio_stream_number で特定されるESにおいて、同時に再生可能である組み合わせは、多くても2つのClip AVストリームファイルに格納されている必要がある。なお、除いたText subtitle streamや、IG for Pop-up menuは、プリロード型のストリームであるため、同時に再生(表示)するものであっても、同時には光ディスク、ハードディスク等から読み出さないため、上記のように2つのClip AVストリームファイルとは別のClip AVストリームファイルに格納されていても良い。
なお、STN_table()によって参照されるESは、3本以上のClip AVストリームファイルに格納されていてもよいが、同時に再生可能であるESは、そのうちの多くても2つのClip AVストリームファイルに格納されるようになされている。
また、PlayList内にあるPlayItem(MainPath)とSubPathの数の組み合わせは、図54に示されるように、次の(a)乃至(c)のうちのいずれかの組み合わせである必要がある、という制限もサブパス制限手法により課せられている。即ち、(a)の組み合わせとは、1つのPlayItemのみの組み合わせ(図54中、一番上の行の組み合わせ)をいう。(b)の組み合わせとは、1つのPlayItemと1つのSubPathとの組み合わせ(図54中、中央の行の組み合わせ)をいう。(c)の組み合わせとは、1つのPlayItemと1つSubPathと1つのSubPath_type=7のSubPathとの組み合わせ、即ち、1つのPlayItemと2つSubPath(ただし、そのうちの1つのSubPath_type=7であること)との組み合わせ(図54中、一番下の行の組み合わせ)をいう。
以上説明した各種制限による結果として、所定の種類のPlayListについて作成可能なSubPath_typeを制限する、といった手法が、サブパス制限手法の一例である。
換言すると、サブパス制限手法とは、PlayListの種類(上述した例では、Main TSのapplication_typeで区別される種類)、再生装置が一度に読み出すことが可能なTSの数(上述した例では2つ)、および、PlayListのサブパス(SubPath)で参照されるESにプリロードされるIGが含まれているか否か(上述した例ではSubPath_type=3等のSubPathであるか否か)といった条件(制限)が存在し、これらの条件を満たすように、そのPlayListに含めるSubPathを決定する、ひいては、そのようにして決定したSubPathを含むPlayListを作成する、といった手法であるともいえる。
以下、図55乃至図58を参照して、かかるサブパス制限手法により作成されたPlayListの具体例について説明する。
図55は、Browsable Slideshow(非同期型)のPlayListであって、SubPath_type=3のSubPathが存在しない場合のPlayList、即ち、SubPath_type=2のSub_Path-1乃至Sub_Path-3のみが存在する場合のPlayListの一例を示している。なお、SubPath_type=3のSubPathが存在しない理由は、PlayListのPlayItem-1/PlayItem-2が参照しているClip AV Stream -0(すなわち、Main TS)にIGが含まれているためである。なお、この例は、複数の静止画をユーザ操作によって連続して表示していくBrowsable Slideshowを表しているため、Clip AVストリームファイル-0に含まれる、「video」のストリームは、静止画データを保持している。
図55の例のPlayListを作成するために利用された制限(条件)の内容は次の通りである。即ち、図53を用いて上述した、「(1)0本以上のSubPath_type=2のSubPath、(2)0本以上のSubPath_type=3のSubPathのみを許可する」という制限と、「(1)と(2)以外のSubPathの組み合わせは禁止する」という制限と、「(2)の組み合わせであっても、application_type=3のMainTSにIGが含まれる場合には、SubPath_type=3のSubPathは禁止される(図53中*2参照)」という制限とが利用されて、図55の例のPlayListが作成されている。
このような図55の例に対して、図56は、Browsable Slideshow(非同期型)のPlayListであって、SubPath_type=3のSubPathが存在する場合のPlayList、即ち、SubPath_type=2のSub_Path-1,2に加えてさらに、SubPath_type=3のSub_Path-3が存在する場合のPlayListの一例を示している。なお、SubPath_type=3のSubPathが存在する理由は、PlayListのPlayItem-1/PlayItem-2が参照しているClip AV Stream -0にIGが含まれていない、即ち、SubPath_type=3のSubPathにより、Clip AV Stream -0とは異なるClip AV Stream -3のIGを参照するためである。
図56の例のPlayListを作成するために利用された制限(条件)の内容は、図55の例の上述した制限内容と同一である。
換言すると、図53中*2で示される制限、即ち、「(2)の組み合わせであっても、application_type=3のMainTSにIGが含まれる場合には、SubPath_type=3のSubPathは禁止される」という制限を課す必要がある場合のPlayListの例が、図55の例であり、そのような制限を課す必要がない場合のPlayListの例が、図56の例である。
このように、図55と図56は、Browsable Slideshow(非同期型)のPlayListの例を示している。これに対して、図57と図58は、Movie Type Slideshow(同期型)のPlayListの例を示している。
即ち、図57は、同期型のPlayListのうちの、セカンダリビデオストリーム(2ndVideo)とセカンダリオーディオストリーム(2ndAudio)とがMain TS(すなわち、Clip AV Stream -0)に多重化されていない場合のPlayListであって、SubPath_type=6のSub_Path-1,2が存在する場合のPlayListの一例を示している。
図57の例のPlayListを作成するために利用された制限(条件)の内容は次の通りである。即ち、図53を用いて上述した、「(6)0本以上のSubPath_type=6のSubPathを許可する」という制限が利用されて、図57の例のPlayListが作成されている。
このような図57の例に対して、図58は、同期型のPlayListにより参照されるMainTS、すなわちClip AVストリームファイル-0が、MainSTとSubSTとを含み、セカンダリビデオストリーム(2ndVideo)とセカンダリオーディオストリーム(2ndAudio)がMain TS(Clip-0)に多重化されている場合のPlayListであって、それゆえ、SubPath_type=7のSub_Path-1が存在し、さらに、SubPath_type=5のSub_Path-2,3が存在する場合のPlayListの一例を示している。
図58の例のPlayListを作成するために利用された制限(条件)の内容は次の通りである。即ち、図53を用いて上述した、「(5)0本以上のSubPath_type=5のSubPathを許可する」という制限と、「(7)0本のSubPathとSubPath_type=7のSubPathを許可する」という制限とが利用されて、図58の例のPlayListが作成されている。
また、以上説明したようなサブパス制限手法により作成されたPlayListは、例えば図49の再生装置401により再生可能とされている。
例えば、非同期型のPlayListの場合、即ち、application_type=3であるBrowsable slideshowのPlayListの場合、再生装置401は、そのPlayListを次のようにして再生することができる。即ち、再生装置401は、PlayListが1本以上のSubPath_type=3(Interactive graphics presentation menu、)のSubPathsを参照している場合、SubPath_type=3用のClip AVストリーム、即ち、インタラクティブグラフィックスストリームをPlayListの再生前にプリロードして、プリロード用バッファ414に蓄積させる。また、再生装置401は、PlayListが1本以上のSubPath_type=2のSubPathを参照している場合、1つずつしかSubPathを参照できないので(一度に読み出すことが可能なTSは2つであり、そのうちの1つはMainPathにより参照されるMainTSであるので)、SubPath_type=2の1以上のSubPathのうちの所定の1つを参照して再生する。
なお、Interactive graphics presentation menuには、ユーザによるON/OFFの操作入力を基に、表示させたり、表示を取り消したりすることが可能な“Pop-up menu”と、常時表示される“Always-on”の2種類の表示方法が用意されており、application_type=3のPlayListの再生処理の詳細例については、図59,図60を参照して後述する。
また、例えば同期型のPlayListの場合、即ち、application_type=1または2であるMovie Type/Time-based SlideshowのPlayListの場合、再生装置401は、そのPlayListを次のようにして再生することができる。即ち、再生装置401は、PlayListが1本以上のSubPath_type=3またはSubPath_type=4のSubPathを参照している場合、SubPath_type=3またはSubPath_type-4用のClip AVストリーム、即ち、インタラクティブグラフィックスストリームまたはテキストサブタイトルストリームをPlayListの再生前にプリロードして、プリロード用バッファ414またはバッファ54に蓄積させる。また、再生装置401は、PlayListが1本以上SubPath_type=5or6のSubPathを参照している場合、Playerは1つずつしかSubPathを参照できないので(一度に読み出すことが可能なTSは2つであり、そのうちの1つはMainPathにより参照されるMainTSであるので)、SubPath_type=5または6の1以上のSubPathのうちの所定の1つを参照して再生する。ただし、SubPath_type=7のSubPathが1以上含まれている場合には、そのSubPathはMain TSに含まれるESを参照しているので、再生装置401は、SubPath_type=5または6の1以上のSubPathのうちの所定の1つを参照して再生している最中に、さらに、SubPath_type=7の1つのSubPathを参照して再生することができる。
なお、application_type=1or2のPlayListの再生処理の詳細例については、図61乃至図64を参照して後述する。
次に、図59,図60のフローチャートを参照して、application_type=3のPlayListの再生処理の一例について説明する。
例えば、図49のコントローラ34は、再生対象のPlayListのMainPathで参照されるMain TSのapplication_typeを調査し、その調査によりapplication_type=3であることを認識した場合、application_type=3のPlayListの再生処理を開始させる。
図59のステップS121において、コントローラ34は、Main TSはIG(インタラクティブグラフィックスストリーム)を含むか否かを判定する。
ステップS121において、Main TSはIGを含まないと判定された場合、処理は図60のステップS126に進む。ただし、ステップS126以降の処理については後述する。
これに対して、ステップS121において、Main TSはIGを含むと判定された場合、処理はステップS122に進む。
ステップS122において、コントローラ34は、SubPath_type=3のSub Pathは存在するか否かを判定する。
ステップS122において、SubPath_type=3のSub Pathは存在しないと判定された場合、処理は図60のステップS126に進む。ただし、ステップS126以降の処理については後述する。
これに対して、ステップS122において、SubPath_type=3のSub Pathは存在すると判定された場合、処理はステップS123に進む。ステップS123において、コントローラ34は、選択されたSub Path(SubPath_type=3のSub Path)が参照するClipを調べる。
そして、コントローラ34は、そのClipから、Sub Pathにより特定されるストリーム、すなわち、IGを読み出すようストレージドライブ31に指示する。ストレージドライブ31は、この指示に基づいて、対象となるIGを読み出す。そして、コントローラ34は、読み出されたIGを、インタラクティブグラフィックスデコーダ74にデコードさせるように指示する。これにより処理はステップS124に進む。
ステップS124において、インタラクティブグラフィックスデコーダ74は、読み出されたClip内のIGをデコードする。そして、ステップS125において、インタラクティブグラフィックスデコーダ74は、デコードされたIGをプリロード用バッファ414に格納する。
このようにしてステップS125の処理が終了したとき、または、上述したようにステップS121若しくはS122の処理でNOであると判定されたとき、処理は図60のステップS126に進む。
ステップS126において、コントローラ34は、SubPath_type=2のSub Pathは存在するか否かを判定する。
ステップS126において、SubPath_type=2のSub Pathは存在しないと判定された場合、処理はステップS129に進む。ただし、ステップS129以降の処理については後述する。
これに対して、ステップS126において、SubPath_type=2のSub Pathは存在すると判定された場合、処理はステップS127に進む。ステップS127において、コントローラ34は、選択されたSubPath(SubPath_type=2のSub Path)が参照するClipを調べる。
そして、コントローラ34は、そのClipからSubPathにより特定されるストリーム、すなわち、オーディオストリームを読み出すようストレージドライブ31に指示する。ストレージドライブ31は、この指示に基づいて、対象となるオーディオストリームを読み出す。そして、コントローラ34は、読み出されたオーディオストリームを、例えば2ndオーディオデコーダ75−2にデコードさせるように指示する。これにより処理はステップS128に進む。
ステップS128において、2ndオーディオデコーダ75−2は、読み出されたClip内のオーディオストリームをデコードする。
このようにして、ステップS128の処理が終了したとき、または、ステップS126の処理でNOであると判定されたとき、処理はステップS129に進む。
ステップS129において、AVデコーダ部403は、メインClip AV Streamをデコードする。ここで、メインClip AV Streamとは、再生対象のPlaylistのMainPathにより参照されるMain TSに含まれているビデオストリームやオーディオストリーム等のこと、例えばピクチャインピクチャ手法ではプライマリビデオストリームやプライマリオーディオストリーム等のことをいう。即ち、AVデコーダ部403のうちの、1stビデオデコーダ72や1stオーディオデコーダ75−1等が、このステップS129の処理を実行する。
ステップS130において、AVデコーダ部403は、デコードされたメインClip AV Streamと、デコードされたSubPathストリームを合成し、出力する。ここで、デコードされたSubPathストリームとは、図59のステップS124の処理でデコードされてステップS125の処理でプリロード用バッファ414に格納されたIGや、図60のステップS128の処理でデコードされたオーディオストリームのことをいう。
ステップS131において、コントローラ34は、ステップS130の処理で合成されたストリームを出力中に、SubPath_type=2のSubPathの切り替え指示(ユーザの切り替え操作)があったか否かを判定する。
ステップS131において、合成されたストリームを出力中に、SubPath_type=2のSubPathの切り替え指示があったと判定された場合、処理はステップS127に戻され、それ以降の処理が繰り返される。即ち、メインClip AV Streamと合成されるオーディオストリームが切り替えられる。
これに対して、ステップS131において、合成されたストリームを出力中に、SubPath_type=2のSubPathの切り替え指示がなかったと判定された場合、application_type=3のPlayListの再生処理が終了となる。
次に、図61乃至図64のフローチャートを参照して、application_type=1or2のPlayListの再生処理の一例について説明する。
例えば、図49のコントローラ34は、再生対象のPlayListのMainPathで参照されるMain TSのapplication_typeを調査し、その調査の結果、application_type=1or2であることを認識した場合、application_type=1or2のPlayListの再生処理を開始させる。
図61のステップS141において、コントローラ34は、Main TSはIG(インタラクティブグラフィックスストリーム)を含むか否かを判定する。
ステップS141において、Main TSはIGを含まないと判定された場合、処理はステップS146に進む。ただし、ステップS146以降の処理については後述する。
これに対して、ステップS141において、Main TSはIGを含むと判定された場合、処理はステップS142に進む。
ステップS142において、コントローラ34は、SubPath_type=3のSub Pathは存在するか否かを判定する。
ステップS142において、SubPath_type=3のSub Pathは存在しないと判定された場合、処理はステップS146に進む。ただし、ステップS146以降の処理については後述する。
これに対して、ステップS142において、SubPath_type=3のSub Pathは存在すると判定された場合、処理はステップS143に進む。ステップS143において、コントローラ34は、選択されたSubPath(SubPath_type=3のSub Path)が参照するClipを調べる。
そして、コントローラ34は、そのClipから、SubPathにより特定されるストリーム、すなわち、IGを読み出すようストレージドライブ31に指示する。ストレージドライブ31は、この指示に基づいて、対象となるIGを読み出す。そして、コントローラ34は、読み出されたIGを、インタラクティブグラフィックスデコーダ74にデコードさせるように指示する。これにより処理はステップS144に進む。
ステップS144において、インタラクティブグラフィックスデコーダ74は、読み出されたClip内のIGをデコードする。そして、ステップS145において、インタラクティブグラフィックスデコーダ74は、デコードされたIGをプリロード用バッファ414に格納する。
このようにしてステップS145の処理が終了したとき、または、上述したようにステップS141若しくはS142の処理でNOであると判定されたとき、処理はステップS146に進む。
ステップS146において、コントローラ34は、SubPath_type=4のSub Pathは存在するか否かを判定する。
ステップS146において、SubPath_type=4のSub Pathは存在しないと判定された場合、処理は図62のステップS149に進む。ただし、ステップS149以降の処理については後述する。
これに対して、ステップS146において、SubPath_type=4のSub Pathは存在すると判定された場合、処理はステップS147に進む。ステップS147において、コントローラ34は、選択されたSubPath(SubPath_type=4のSub Path )が参照するClipを調べる。
そして、コントローラ34は、そのClipから、SubPathにより特定されるストリーム、すなわち、テキストサブタイトルストリームを読み出すようストレージドライブ31に指示する。ストレージドライブ31は、この指示に基づいて、対象となるテキストサブタイトルストリームを読み出す。そして、コントローラ34は、読み出されたテキストサブタイトルを、Text-STコンポジション76にデコードさせるように指示する。これにより処理はステップS148に進む。
ステップS148において、Text-STコンポジション76は、読み出されたClip内のテキストサブタイトルをデコードする。
このようにしてステップS148の処理が終了したとき、または、上述したステップS146の処理でNOであると判定されたとき、処理は図62のステップS149に進む。
ステップS149において、コントローラ34は、SubPath_type=7のSub Pathは存在するか否かを判定する。
ステップS149において、SubPath_type=7のSub Pathは存在しないと判定された場合、処理は図63のステップS152に進む。ただし、ステップS152以降の処理については後述する。
これに対して、ステップS149において、SubPath_type=7のSub Pathは存在すると判定された場合、処理はステップS150に進む。ステップS150において、コントローラ34は、選択されたSubPath(SubPath_type=7のSub Path )が参照するClipを調べる。
そして、コントローラ34は、そのClipから、SubPathにより特定されるストリーム、すなわち、ビデオ/オーディオストリームを読み出すようストレージドライブ31に指示する。ストレージドライブ31は、この指示に基づいて、対象となるビデオ/オーディオストリームを読み出す。そして、コントローラ34は、読み出されビデオ/オーディオストリームを、例えば2ndビデオデコーダ412/2ndオーディオデコーダ75−2にデコードさせるように指示する。これにより処理はステップS151に進む。
ステップS151において、2ndビデオデコーダ412/2ndオーディオデコーダ75−2は、読み出されたClip内のビデオ/オーディオストリームをデコードする。
このようにしてステップS151の処理が終了したとき、または、上述したステップS149の処理でNOであると判定されたとき、処理は図63のステップS152に進む。
ステップS152において、コントローラ34は、SubPath_type=5のSub Pathは存在するか否かを判定する。
ステップS152において、SubPath_type=5のSub Pathは存在しないと判定された場合、処理はステップS156に進む。ただし、ステップS156以降の処理については後述する。
これに対して、ステップS152において、SubPath_type=5のSub Pathは存在すると判定された場合、処理はステップS153に進む。ステップS153において、コントローラ34は、選択されたSubPath(SubPath_type=5のSub Path)が参照するClipを調べる。
ステップS154において、コントローラ34は、stream_attribute()に記述されている内容に基づいて、そのClip内にあるオーディオストリームを再生する機能はあるか否かを判定する。なお、オーディオストリームの再生機能の有無の判定方法の具体例については、上述した図30のステップS74の処理の説明の際に併せて説明しているので、ここでは省略する。
ステップS154において、Clip内にあるオーディオストリームを再生する機能は無いと判定された場合、処理はステップS156に進む。ただし、ステップS156以降の処理については後述する。
これに対して、ステップS154において、Clip内にあるオーディオストリームを再生する機能はあると判定した場合、コントローラ34は、そのClipから、SubPathによって特定されるストリーム、すなわち、オーディオストリームを読み出すようストレージドライブ31に指示する。ストレージドライブ31は、この指示に基づいて、対象となるオーディオストリームを読み出す。そして、コントローラ34は、読み出されたオーディオストリームを、例えば2ndオーディオデコーダ75−2にデコードさせるように指示する。これにより処理はステップS155に進む。
ステップS155において、2ndオーディオデコーダ75−2は、読み出されたClip内のオーディオストリームをデコードする。
このようにしてステップS155の処理が終了したとき、または、上述したステップS152若しくはS154の処理でNOであると判定されたとき、処理はステップS156に進む。
ステップS156において、コントローラ34は、SubPath_type=6のSub Pathは存在するか否かを判定する。
ステップS156において、SubPath_type=6のSub Pathは存在しないと判定された場合、処理は図64のステップS161に進む。ただし、ステップS161以降の処理については後述する。
これに対して、ステップS156において、SubPath_type=6のSub Pathは存在すると判定された場合、処理はステップS157に進む。ステップS157において、コントローラ34は、選択されたSubPath(SubPath_type=6のSub Path)が参照するClipを調べる。
ステップS158において、コントローラ34は、stream_attribute()に記述されている内容に基づいて、そのClip内にあるオーディオストリームを再生する機能はあるか否かを判定する。なお、オーディオストリームの再生機能の有無の判定方法の具体例については、上述した図30のステップS74の処理の説明の際に併せて説明しているので、ここでは省略する。
ステップS158において、Clip内にあるオーディオストリームを再生する機能は無いと判定された場合、コントローラ34は、そのClipから、SubPathによって特定されるストリーム、すなわち、ビデオストリームを読み出すようストレージドライブ31に指示する。ストレージドライブ31は、この指示に基づいて、対象となるビデオストリームを読み出す。ただし、この場合、コントローラ34は、読み出されたClipに含まれるオーディオストリームのデコードの禁止を指示し、かつ、読み出されたビデオストリームを、例えば2ndビデオデコーダ412にデコードさせるように指示する。これにより処理はステップS160に進む。ただし、ステップS160以降の処理については後述する。
これに対して、ステップS158において、Clip内にあるオーディオストリームを再生する機能はあると判定された場合、コントローラ34は、そのClipから、SubPathによって特定されるストリーム、すなわち、ビデオストリームおよびオーディオストリームを読み出すようストレージドライブ31に指示する。ストレージドライブ31は、この指示に基づいて、対象となるビデオストリームおよびオーディオストリームを読み出す。そして、コントローラ34は、読み出されたオーディオストリームを、例えば2ndオーディオデコーダ75−2にデコードさせるように指示し、かつ、読み出されたビデオストリームを、例えば2ndビデオデコーダ412にデコードさせるように指示する。これにより処理はステップS159に進む。
ステップS159において、2ndオーディオデコーダ75−2は、読み出されたClip内のオーディオストリームをデコードする。
このようにしてステップS159の処理が終了したとき、または、上述したステップS158の処理でNOであると判定されたとき、処理はステップS160に進む。
ステップS160において、2ndビデオデコーダ412は、読み出されたClip内のビデオストリームをデコードする。
このようにしてステップS160の処理が終了したとき、または、上述したステップS156の処理でNOであると判定されたとき、処理は図64のステップS161に進む。
ステップS161において、AVデコーダ部403は、メインClip AV Streamをデコードする。ここで、メインClip AV Streamとは、再生対象のPlaylistのMainPathにより参照されるMain TSに含まれているビデオストリームやオーディオストリーム等のことであり、Main TSに含まれている。メインClip AV Streamとは、例えば、ピクチャインピクチャ手法ではプライマリビデオストリームやプライマリオーディオストリーム等のことをいう。即ち、AVデコーダ部403のうちの、1stビデオデコーダ72や1stオーディオデコーダ75−1等が、このステップS161の処理を実行する。
ステップS162において、AVデコーダ部403は、デコードされたメインClip AV Streamと、デコードされたSubPathストリームを合成し、出力する。ここで、デコードされたSubPathストリームとは、図61のステップS144の処理でデコードされてステップS145の処理でプリロード用バッファ414に格納されたIG、図61のステップS148の処理でデコードされたテキストサブタイトル、図62のステップS151の処理でデコードされたオーディオストリーム、図63のステップS155の処理でデコードされたオーディオストリーム、図62のステップS159の処理でデコードされたオーディオストリーム、および、図62のステップS160の処理でデコードされたビデオストリームのうちの0以上のことをいう。
ステップS163において、コントローラ34は、ステップS162の処理で合成されたストリームを出力中にSubPathの切り替え指示(ユーザの切り替え操作)があったか否かを判定する。
ステップS163において、合成されたストリームを出力中にSubPathの切り替え指示が無かったと判定された場合、application_type=1or2のPlayListの再生処理が終了となる。
これに対して、ステップS163において、合成されたストリームを出力中にSubPathの切り替え指示が有ったと判定された場合、処理はステップS164に進む。
ステップS164において、コントローラ34は、その切り替え指示により選択されたSubPathのSubPath_typeを調べる。
ステップS165において、コントローラ34は、ステップS164の調査結果がSubPath_type=3であるか否かを判定する。
ステップS165において、SubPath_type=3であると判定された場合、処理は図61のステップS143に戻され、処理が繰り返される。即ち、メインClip AV Streamと合成されるIGが切り替えられる。
これに対して、ステップS165において、SubPath_type=3ではないと判定された場合、処理はステップS166に進む。
ステップS166において、コントローラ34は、ステップS164の調査結果がSubPath_type=4であるか否かを判定する。
ステップS166において、SubPath_type=4であると判定された場合、処理は図61のステップS147に戻され、処理が繰り返される。即ち、メインClip AV Streamと合成されるテキストサブタイトルが切り替えられる。
これに対して、ステップS166において、SubPath_type=4ではないと判定された場合、処理はステップS167に進む。
ステップS167において、コントローラ34は、ステップS164の調査結果がSubPath_type=7であるか否かを判定する。
ステップS167において、SubPath_type=7であると判定された場合、処理は図62のステップS150に戻され、処理が繰り返される。即ち、メインClip AV Streamと合成されるビデオ/オーディオストリームが切り替えられる。
これに対して、ステップS167において、SubPath_type=7ではないと判定された場合、処理はステップS168に進む。
ステップS168において、コントローラ34は、ステップS164の調査結果がSubPath_type=5であるか否かを判定する。
ステップS168において、SubPath_type=5であると判定された場合、処理は図63のステップS153に戻され、処理が繰り返される。即ち、メインClip AV Streamと合成されるオーディオストリームが切り替えられる。
これに対して、ステップS168において、SubPath_type=5ではないと判定された場合、処理はステップS169に進む。
ステップS169において、コントローラ34は、ステップS164の調査結果がSubPath_type=6であるか否かを判定する。
ステップS169において、SubPath_type=6であると判定された場合、処理は図63のステップS157に戻され、処理が繰り返される。即ち、メインClip AV Streamと合成されるオーディオストリームやビデオストリームが切り替えられる。
これに対して、ステップS169において、SubPath_type=6ではないと判定された場合、application_type=1or2のPlayListの再生処理が終了となる。
以上説明したように、ピクチャインピクチャ手法を適用するアプリケーションを実現するためには、例えば、プライマリビデオストリームと組み合わせて同時再生され得るストリームの組み合わせの定義、即ち、セカンダリビデオストリーム、プライマリオーディオストリーム、セカンダリオーディオストリーム、および、サブタイトルストリームの組み合わせの定義が必要となる。
さらに、複数の組み合わせを定義することで、全画面301に再生されるプライマリビデオストリームやプライマリオーディオスオストリームの切り替えのみならず、子画面302に再生されるセカンダリビデオストリームの切り替えや、サブタイトルストリームの切り替えも容易に行えるようになる。
次に、図65および図66を参照して、再生装置20において再生可能なデータが記録された記録媒体21の製造方法について、記録媒体21がディスク状の記録媒体だった場合を例として説明する。
即ち、図65に示すように、例えばガラスなどよりなる原盤が用意され、その上に、例えばフォトレジストなどよりなる記録材料が塗布される。これにより、記録用原盤が製作される。
そして、図66に示すように、ソフト製作処理部において、符号化装置(ビデオエンコーダ)で符号化された、再生装置20や再生装置401において再生可能な形式のビデオデータが、一時バッファに記憶され、オーディオエンコーダで符号化されたオーディオデータが、一時バッファに記憶されるとともに、更に、データエンコーダで符号化された、ストリーム以外のデータ(例えば、Indexes、Playlist、PlayItemなど)が一時バッファに記憶される。それぞれのバッファに記憶されたビデオデータ、オーディオデータ、および、ストリーム以外のデータは、多重化器(MPX)で同期信号と共に多重化され、誤り訂正符号回路(ECC)でエラー訂正用のコードが付加される。そして、変調回路(MOD)で所定の変調がかけられ、所定のフォーマットにしたがって、例えば磁気テープなどに一旦記録され、再生装置20や再生装置401において再生可能な記録媒体21に記録されるソフトウェアが製作される。
このソフトウェアを必要に応じて編集(プリマスタリング)し、光ディスクに記録すべきフォーマットの信号が生成される。そして、この記録信号に対応して、レーザビームが変調されて、このレーザビームが原盤上のフォトレジスト上に照射される。これにより、原盤上のフォトレジストが記録信号に対応して露光される。
その後、この原盤を現像し、原盤上にピットを出現させる。このようにして用意された原盤に、例えば電鋳等の処理を施し、ガラス原盤上のピットを転写した金属原盤を製作する。この金属原盤から、さらに金属スタンパを製作し、これを成形用金型とする。
この成形用金型に、例えばインジェクションなどによりPMMA(アクリル)またはPC(ポリカーボネート)などの材料を注入し、固定化させる。あるいは、金属スタンパ上に2P(紫外線硬化樹脂)などを塗布した後、紫外線を照射して硬化させる。これにより、金属スタンパ上のピットを、樹脂よりなるレプリカ上に転写することができる。
このようにして生成されたレプリカ上に、反射膜が、蒸着あるいはスパッタリングなどにより形成される。あるいはまた、生成されたレプリカ上に、反射膜が、スピンコートにより形成される。
その後、このディスクに対して内外径の加工が施され、2枚のディスクを張り合わせるなどの必要な処置が施される。さらに、ラベルを貼り付けたり、ハブが取り付けられて、カートリッジに挿入される。このようにして再生装置20や再生装置401によって再生可能なデータが記録された記録媒体21が完成する。
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウェアにより実行させることもできる。この場合、上述した処理は、図67に示されるようなパーソナルコンピュータ500により実行される。
図67において、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にインストールされる。
一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、ネットワークや記録媒体からインストールされる。
この記録媒体は、図67に示されるように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されているリムーバブルメディア521よりなるパッケージメディアにより構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM502や記憶部508が含まれるハードディスクなどで構成される。
なお、本明細書において、コンピュータプログラムを記述するステップは、記載された順序に従って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、ドライブ510は、装着されたリムーバブルメディア521に記録されたデータを読み出すことができるのみならず、装着されたリムーバブルメディア521にデータを記録することができる。そして、パーソナルコンピュータ500が、図66を用いて説明したソフト製作処理部と同様の機能を有する(例えば、CPU501を用いて、ソフト製作処理部と同様の機能を実現するためのプログラムを実行する)ことが可能であるのは言うまでもない。
すなわち、パーソナルコンピュータ500は、図66を用いて説明したソフト制作処理部により生成されたデータと同様のデータを、CPU501の処理により生成するか、または、外部の装置で生成された図66を用いて説明したソフト制作処理部により生成されたデータと同様のデータを、通信部509またはドライブ510に装着されたリムーバブルメディア521を介して取得することができる。そして、パーソナルコンピュータ500は、生成または取得された図66を用いて説明したソフト制作処理部により生成されたデータと同様のデータを、ドライブ510に装着されたリムーバブルメディア521に記録する記録装置としての機能を実現することができる。
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。