以下、図を参照して、本発明の実施の形態について説明する。
図2を用いて、本発明を適用した再生装置について説明する。
再生装置20は、装着された、例えば、光ディスクなどの記録媒体21に記録されている情報、ネットワーク22を介して供給された情報、または、自分自身の内部の記録媒体(例えば、HDDなど)に記録されている情報を再生することができる。再生装置20は、再生されたデータを、有線または無線により接続されている表示・音声出力装置23に供給して、画像を表示させ、音声を出力させることができる。再生装置20はまた、再生されたデータを、ネットワーク22を介して、他の装置に送出することができる。再生装置20は、例えば、リモートコマンダ23のほか、本体に備えられたボタン等の入力デバイスによって、ユーザからの操作入力を受けることができる。
記録媒体21は、再生装置20により再生可能な映像および音声を含むデータを所定のフォーマットで記録している。記録媒体21は、光ディスクの他、例えば、磁気ディスクや半導体メモリであってもよい。
表示・音声出力装置23が、デジタルの非圧縮データの入力を受けるようになされている場合、再生装置20は、記録媒体21などに記録されている符号化データを復号して、非圧縮データを表示・音声出力装置23に供給するようになされているが、表示・音声出力装置23が、復号機能を有し、圧縮データの入力を受けるようになされている場合、再生装置20は、圧縮データを表示・音声出力装置23に供給するようになされている。また、表示・音声出力装置23が、非圧縮のアナログデータの入力を受けるようになされている場合、再生装置20は、記録媒体21などに記録されている符号化データを復号して、非圧縮データをD/A変換してアナログ信号を生成し、表示・音声出力装置23に供給するようになされている。再生装置20はまた、記録媒体21などに記録されているデータを再生し、圧縮データの状態で、ネットワーク22に送出する。
図3は、図2の再生装置20によって再生可能な情報、すなわち、再生装置20に装着される記録媒体21に記録されているデータ、ネットワーク22を介して供給されるデータ、または、再生装置20の内部の記録媒体に記録されているデータのアプリケーションフォーマットの例を示す図である。
アプリケーションフォーマットは、AV(Audio Visual)ストリームの管理のために、PlayListとClipの2つのレイヤを有している。ここでは、1つのAVストリームとそれに付随する情報であるClipインフォメーションのペアを1つのオブジェクトと考え、それらをまとめてClipと称する。以下、AVストリームをAVストリームファイルとも称する。また、ClipインフォメーションをClipインフォメーションファイルとも称する。
一般的に、コンピュータ等で用いられるファイルはバイト列として扱われるが、AVストリームファイルのコンテンツは時間軸上に展開され、Clipのアクセスポイントは、主に、タイムスタンプでPlayListにより指定される。すなわち、PlayListとClipは、AVストリームの管理のためのレイヤである。
Clip中のアクセスポイントがタイムスタンプでPlayListにより示されている場合、Clip Informationファイルは、タイムスタンプから、AVストリームファイル中のデコードを開始すべきアドレス情報を見つけるために使用される。
PlayListは、AVストリームの再生区間の集まりである。あるAVストリーム中の1つの再生区間はPlayItemと呼ばれ、それは、時間軸上の再生区間のIN点(再生開始点)とOUT点(再生終了点)のペアで表される。従って、PlayListは、図3に示されるように1つ、または複数のPlayItemにより構成される。
図3において、左から1番目のPlayListは2つのPlayItemから構成され、その2つのPlayItemにより、左側のClipに含まれるAVストリームの前半部分と後半部分がそれぞれ参照されている。また、左から2番目のPlayListは1つのPlayItemから構成され、それにより、右側のClipに含まれるAVストリーム全体が参照されている。さらに、左から3番目のPlayListは2つのPlayItemから構成され、その2つのPlayItemにより、左側のClipに含まれるAVストリームのある部分と、右側のClipに含まれるAVストリームのある部分がそれぞれ参照されている。
ナビゲーションプログラムは、PlayListの再生の順序や、PlayListのインタラクティブな再生をコントロールする機能を有する。また、ナビゲーションプログラムは、各種の再生の実行をユーザが指示するためのメニュー画面を表示する機能なども有する。このナビゲーションプログラムは、例えば、Java(登録商標)などのプログラミング言語で記述される。
例えば、図3のナビゲーションプログラムにより、そのときの再生位置を表す情報として、左から1番目のPlayListに含まれる左側のPlayItemが指定された場合、そのPlayItemが参照する、左側のClipに含まれるAVストリームの前半部分の再生が行われる。このように、PlayListは、AVストリームファイルの再生を管理するための再生管理情報として用いられる。
ナビゲーションプログラムは、インデックステーブル(Index table)と、インデックステーブルにより読み出されるナビゲーションオブジェクト(Navigation Object)により構成される。図4を用いて、インデックステーブルとナビゲーションオブジェクトについて説明する。
インデックステーブルは、コンテンツのタイトルやメニューの定義を行うものであり、各タイトルやメニューのエントリーポイントを保持している。FirstPlaybackには、このデータを記録している記録媒体21が再生装置20に装着されたときなど、インデックステーブルが読み込まれたときに最初に自動的に実行されるNavigationObjectに関する情報が含まれている。TopMenuには、ユーザが、コンテンツを全て再生する、特定のチャプタのみ再生する、繰り返し再生する、初期メニューを表示するなどの内容の項目を含む再生メニュー画面を表示させる場合などに呼び出されるTopMenuのNavigationObjectに関する情報が含まれている。それぞれのTitleは、所定のTitle IDで区別されるタイトルごとに割り当てられて呼び出すことが可能なNavigationObjectに関する情報が含まれている。この図4においては、1つのTitleに付き1つのNavigation Commandが存在している。
ナビゲーションオブジェクトは、実行可能なコマンドであるNavigation commandから成っている。Navigation Commandは、例えば、PlayListの再生や、他のNavigation Objectの呼び出しなどの各種コマンドを含む。例えば、Navigation Command#3に、PlayList#1を再生するための命令文が含まれる場合、Navigation Command#3を実行すると、PlayList#1が再生される。
インデックステーブルを含むデータファイルであるIndexファイルについては、図9乃至図11を用いて後述する。
本実施の形態では、PlayListの中で、1つ以上のPlayItemの並びによって(連続するPlayItemにより)作られる再生パスをメインパス(Main Path)と称し、PlayListの中で、Main Pathに並行(並列)して、1つ以上のSub Pathの並びによって(非連続でもよいし、連続してもよいSubPlayItemにより)作られる再生パスをサブパス(Sub Path)と称する。すなわち、再生装置20で再生可能なデータのアプリケーションフォーマットは、メインパスに関連付けられて(合わせて)再生されるサブパス(Sub Path)を、PlayListの中に持つ(関連付けられる)ようになされている。
図5は、メインパスとサブパスの構造を説明する図である。PlayListは、1つのメインパスと1つ以上のサブパスを持つことができる。1つのメインパスは、1つ以上のPlayItemの並びによって作られ、1つのサブパスは、1つ以上のSubPlayItemの並びによって作られる。
図5の例の場合、PlayListは、3つのPlayItemの並びにより作られる1つのメインパスと、3つのサブパスを有している。メインパスを構成するPlayItemには、先頭から順番にそれぞれID(Identification)が付されている。具体的には、メインパスは、PlayItem_id=0、PlayItem_id=1、およびPlayItem_id=2のPlayItemからなる。また、サブパスにも先頭から順番にSubpath_id=0、Subpath_id=1、およびSubpath_id=2、とそれぞれIDが付されている。Subpath_id=0のサブパスには、1つのSubPlayItemが含まれ、Subpath_id=1のサブパスには、2つのSubPlayItemが含まれ、Subpath_id=2のサブパスには、1つのSubPlayItemが含まれる。
Subpath_id=0のサブパスに含まれるSubPlayItemが参照するストリームは、例えば、映画の日本語吹き替えの音声と想定され、Mainpathにより参照されるAVストリームファイルのオーディオストリームに替えて再生される場合が考えられる。また、Subpath_id=1のサブパスに含まれるSubPlayItemが参照するストリームは、例えば、映画のディレクターズカットと想定され、Main Pathにより参照されるAVストリームファイルの所定の部分にのみ、映画監督などのコメントが入っている場合が考えられる。
1つのPlayItemが参照するClip AVストリームファイルには、少なくともビデオストリームデータ(メイン画像データ)が含まれる。また、Clip AVストリームファイルには、Clip AVストリームファイルに含まれるビデオストリーム(メイン画像データ)と同じタイミングで(同期して)再生されるオーディオストリームが1つ以上含まれてもよいし、含まれなくてもよい。さらに、Clip AVストリームファイルには、Clip AVストリームファイルに含まれるビデオストリームと同じタイミングで再生されるビットマップ字幕ストリームが1つ以上含まれてもよいし、含まれなくてもよい。また、Clip AVストリームファイルには、Clip AVストリームファイルに含まれるビデオストリームと同じタイミングで再生されるインタラクティブグラフィックスストリームが1つ以上含まれてもよいし、含まれなくてもよい。そして、Clip AVストリームファイルに含まれるビデオストリームと、ビデオストリームと同じタイミングで再生されるオーディオストリーム、ビットマップ字幕ストリームファイル、またはインタラクティブグラフィックスストリームとは多重化されている。すなわち、1つのPlayItemが参照するClip AVストリームファイルには、ビデオストリームデータと、そのビデオストリームに合わせて再生される0個以上のオーディオストリーム、0個以上のビットマップ字幕ストリームデータ、および0個以上のインタラクティブグラフィックスストリームデータとが多重化されている。
すなわち、1つのPlayItemが参照するClip AVストリームファイルには、ビデオストリーム、オーディオストリーム、ビットマップ字幕ストリームファイル、または、インタラクティブグラフィックスストリームなどの、複数の種類のストリームが含まれている。
また、1つのSubPlayItemは、PlayItemが参照するClip AVストリームファイルとは異なるストリーム(別ストリーム)のオーディオストリームデータや字幕データを参照する。
メインパスのみを有するPlayListを再生する場合、ユーザによる音声切り替えや字幕切り替えという操作は、そのメインパスが参照するClipに多重化されているオーディオストリームとサブピクチャストリームの中からしか音声や字幕を選択することができない。これに対し、メインパスとサブパスを持つPlayListを再生する場合、そのメインパスが参照するClip AVストリームファイルに多重化されているオーディオストリームとサブピクチャストリームに加えて、SubPlayItemが参照するClipのオーディオストリームやサブピクチャストリームを参照することができる。
このように、1つのPlayListの中にSubPathを複数含め、それぞれのSubPathがそれぞれSubPlayItemを参照する構成としたので、拡張性の高い、また、自由度の高いAVストリームを実現することができる。すなわち、MainPathで参照されるClip AVストリームに加えて、後で、SubPlayItemを追加できる構成とすることができる。
図6は、メインパスとサブパスの例を説明する図である。図6においては、メインパスと同じタイミングで(AV同期して)再生されるオーディオの再生パスを、サブパスを使用して表している。
図6のPlayListには、メインパスとして、PlayItem_id=0である1つのPlayItemと、サブパスとして1つのSubPlayItemが含まれている。メインパスのPlayItem_id=0である1つのPlayItem()は、図6のメインAVストリームを参照している。SubPlayItem()には、以下に示すデータが含まれる。まず、SubPlayItem ()には、PlayListの中のSub Path(サブパス)が参照するClipを指定するためのClip_Information_file_nameが含まれる。図6の例の場合、SubPlayItemによって、SubClip_entry_id=0のAuxiliary audio stream(オーディオストリーム)が参照されている。また、SubPlayItem ()には、指定されたClipに含まれるストリーム(ここでは、Auxiliary audio stream)中のSub Pathの再生区間を指定するためのSubPlayItem_IN_timeとSubPlayItem_OUT_timeとが含まれる。さらに、SubPlayItem()には、Main pathの時間軸上でSub Pathが再生開始する時刻を指定するためのsync_PlayItem_idとsync_start_PTS_of_PlayItemとが含まれる。図6の例の場合、sync_PlayItem_id=0とされ、sync_start_PTS_of_PlayItem=t1とされている。これにより、メインパスのPlayItem_id=0の時間軸上でSub Pathが再生を開始する時刻t1を指定することができる。すなわち、図6の例の場合では、メインパスの再生開始時刻t1とサブパスの開始時刻t1が同時刻であることを示している。
ここで、Sub Pathに参照されるオーディオのClip AVストリームは、STC不連続点(システムタイムベースの不連続点)を含んではならない。サブパスに使われるClipに含まれるストリームのオーディオサンプルのクロックは、メインパスに使われる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ストリームファイルは異なるファイルとなる。
なお、図6の例と同様にして、メインパスと同じタイミングで再生される字幕ストリーム再生パスを、サブパスを使用して表すこともできる。
図7は、メインパスとサブパスの別の例を説明する図である。図7においては、メインパスと同じタイミングで(AV同期して)再生されるオーディオの再生パスを、サブパスを使用して表している。ここで、メインパスのPlayItemが参照するメインAVストリームファイルは、図6と同様であるので省略している。
例えば、メインパスにより参照されるClipAVストリームを1つの映画のコンテンツ(AVコンテンツ)とし、サブパスのオーディオパスにより参照されるAuxiliary audio streamをその映画に対する監督のコメントとし、メインパスで参照されるClipAVストリームのオーディオストリームにサブパスのオーディオパスで参照されるAuxiliary audio streamをミキシング(重ねて)再生するような場合に、このような構成が利用される。すなわち、ユーザが、映画を見ながら、その映画に対する監督のコメントを合わせて聞く指令を再生装置(プレーヤ)へ入力した場合、例えば、メインパスで参照されるClipAVストリームの音声と、サブパスのオーディオパスで参照されるAuxiliary audio streamとを、ミキシングして再生させる場合に利用される。
図7においては、メインパスに3つのPlayItemがPlayItem_id=0,1,2と配置され、サブパス(Subpath_id=0)に2つのSubPlayItemが配置されている。そして、Subpath_id=0のSubPath(図19にて後述する)で呼び出すSubPlayItem(図21にて後述する)は、Auxiliary audio stream(SubClip_entry_id=0の英語のAuxiliary audio streamのクリップ及びSubClip_entry_id=1の日本語のAuxiliary audio streamのクリップ)のSubpathの再生区間を指定するための、SubPlayItem_IN_timeと、SubPlayItem_out_timeを含む。
図7と図6とを比較するに、図7においては、SubPlayItemによって、SubClip_entry_id=0,1のAuxiliary audio stream(英語または日本語のオーディオストリーム)を参照することができる。すなわち、SubPlayItemを用いて、複数のオーディオストリームファイルを参照する構造を有し、このSubPlayItemを再生する場合には、複数のオーディオストリームファイルから1つのオーディオストリームファイルが選ばれて再生される。図7の例の場合、英語のオーディオストリームファイルと日本語のオーディオストリームファイルのうち、1つのオーディオストリームファイルが選ばれて再生される。具体的には、subClip_entry_id=0,1の中から(ユーザの指令に基づいて)1つが選択され、そのIDが参照するAuxiliary audio streamが再生される。また、これに加えて、さらにメインパスにより参照されるオーディオストリームとのミキシングによる再生が選択された場合(再生するオーディオストリームとして2つのオーディオストリームが選択された場合)、例えば、メインパスで参照されるオーディオストリームファイルと、サブパスのオーディオパスで参照されるオーディオストリームファイルとが、ミキシングされて再生される。
図8は、再生装置20において再生可能なデータファイルのファイルシステムの例を示す図である。図8には、一例として、再生装置20において再生可能なデータファイルが光ディスクなどの記録媒体21によって供給されている場合を示しており、このファイルシステムはディレクトリ構造を有している。
このファイルシステムにおいて、「root」の下には「BDMV」の名前が設定されたディレクトリが用意され、そのディレクトリに、「Index.bdmv」の名前が設定されたファイルと、「NavigationObject.bdmv」の名前が設定されたファイルが格納されている。以下、適宜、これらのファイルをそれぞれIndexファイル、NavigationObjectファイルと称する。また、適宜、各ファイルについては、「ファイル名」に「ファイル」を付加した形で、または、各ディレクトリについては、「ディレクトリ名」に「ディレクトリ」を付加した形で称する。
Indexファイルは、上述したインデックステーブルが記載されたファイルであり、再生装置20において再生可能なデータファイルを再生するメニューに関する情報を含む。再生装置20は、例えば、再生装置20において再生可能なデータファイルに含まれるコンテンツを全て再生する、特定のチャプタのみ再生する、繰り返し再生する、初期メニューを表示するなどの内容の項目を含む再生メニュー画面をIndexファイルに基づいて、表示装置に表示させる。Indexファイルのインデックステーブルには各項目が選択されたときに実行するNavigationObjectを設定することができ、ユーザにより再生メニュー画面から1つの項目が選択された場合、再生装置20はIndexファイルのインデックステーブルに設定されているNavigationObjectのコマンドを実行する。
NavigationObjectファイルは、NavigationObjectを含むファイルである。NavigationObjectは、再生装置20において再生可能なデータファイルに含まれているPlayListの再生を制御するコマンドを含み、例えば、再生装置20は、このファイルシステムに含まれているNavigationObjectの中から1つを選択して、実行することにより、コンテンツを再生させることができる。
BDMVディレクトリにはまた、「BACKUP」の名前が設定されたディレクトリ(BACKUPディレクトリ)、「PLAYLIST」の名前が設定されたディレクトリ(PLAYLISTディレクトリ)、「CLIPINF」の名前が設定されたディレクトリ(CLIPINFディレクトリ)、「STREAM」の名前が設定されたディレクトリ(STREAMディレクトリ)、「AUXDATA」の名前が設定されたディレクトリ(AUXDATAディレクトリ)が設けられている。
BACKUPディレクトリには、再生装置20において再生可能なファイルやデータをバックアップするためのファイルやデータが記録される。
PLAYLISTディレクトリには、PlayListファイルが格納される。各PlayListファイルには、図内に示されるように5桁の数字からなるファイル名に拡張子「.mpls」を付加した名称が命名される。
CLIPINFディレクトリには、Clip Informationファイルが格納される。各Clip Informationファイルには、図内に示されるように5桁の数字からなるファイル名に拡張子「.clpi」を付加した名称が命名される。
STREAMディレクトリには、Clip AVストリームファイルやサブストリームファイルが格納される。各ストリームファイルには、図内に示されるように5桁の数字からなるファイル名に拡張子「.m2ts」を付加した名称が命名される。
AUXDATAディレクトリには、Clip AVストリームファイルやサブストリームファイルに含まれずに、Clip AVストリームファイルやサブストリームファイルから参照されるデータや、Clip AVストリームファイルやサブストリームファイルとは独立して利用されるデータなどのファイルが格納される。図8の例においては、AUXDATAディレクトリには、「11111.otf」の名前がつけられている字幕のフォントのファイル、「sound.bdmv」の名前が設定された効果音などのサウンドデータが格納されている。
また、再生装置20において再生可能なデータファイルが光ディスクによって配布されている場合、例えば、製作会社や映画の配給会社など、このコンテンツ製作元や、または、この記録媒体の供給元であるタイトルオーサを識別するために各タイトルオーサに割り当てられた識別子であるauthor_id、および、author_idに示されるタイトルオーサにおいて製作された光ディスクの種類を識別するために割り当てられた識別子であるdisc_idが、ユーザなどにより書き換えることができないセキュアな電子データとして、または、物理的にピットによって記録されている。
また、再生装置20において再生可能なデータファイルが光ディスク以外のリムーバブルな記録媒体に記録されている場合や、ネットワークを介してダウンロードされている場合も、author_id、および、author_idに相当するidが割り当てられてそれぞれ区別可能なようになされ、図8に示す場合と同様のディレクトリ構造を有していると好適である。また、再生装置20において再生可能なデータファイルには、author_id、および、author_idに相当するidが割り当てられていないとしても、図8を用いて説明した場合と同様に、「Index.bdmv」の名前が設定されたファイル、「NavigationObject.bdmv」の名前が設定されたファイルが含まれており、「BACKUP」の名前が設定されたファイル群、「PLAYLIST」の名前が設定されたファイル群、「CLIPINF」の名前が設定されたファイル群、「STREAM」の名前が設定されたファイル群、「AUXDATA」の名前が設定されたファイル群のうち、適宜必要なファイル群が含まれている。
ところで、再生装置20は、音声データを非圧縮データとして出力する場合と、圧縮符号化されたデータとして出力する場合とがある。また、再生装置20は、音声データを必要に応じて合成することができる。再生装置20は、例えば、主に再生出力される音声データに対して、効果音を合成する機能を有することができ、また、効果音のみならず、第2の音声(副音声など)を主に再生出力される音声データに合成する機能を有することができる。換言すれば、再生装置20が音声データの合成を行うか否かは、再生されるストリームに、再生装置20が有する機能において合成可能な音声データが含まれているか否かによって決まる。
以下、主に再生出力される音声データをオーディオストリーム#1と称し、例えば、ユーザの操作入力に対応して発生するクリック音や効果音など、上述したAUXDATAディレクトリにsound.bdmvとして記載されている音声データをサウンドデータと称するものとする。サウンドデータはオーディオストリーム#1に合成可能である。また、オーディオストリーム#1とは別のストリームであって、例えば、副音声など、オーディオストリーム#1に合成可能な音声データをオーディオストリーム#2と称するものとする。なお、オーディオストリーム#1とは別のストリームであって、オーディオストリーム#1に合成可能な音声データは、オーディオストリーム#2以外にも、複数存在してもよく、その場合、例えば、オーディオストリーム#3、オーディオストリーム#4・・・などとして、それぞれ、区別可能なようにすればよい。
オーディオストリーム#1が圧縮符号化データとして出力される場合であっても、オーディオストリーム#2やサウンドデータとの音声合成が行われる場合、オーディオストリーム#1は、一旦復号され、合成処理が行われた後、再エンコードされて出力される。これに対して、オーディオストリーム#1が圧縮符号化データとして出力され、オーディオストリーム#2やサウンドデータとの音声合成が行われない場合、オーディオストリーム#1は、デコードされずにそのまま出力されるほうが、音質が劣化せず、好適である。
したがって、再生装置20においては、オーディオストリーム#1に対して復号処理を施すか否かを決定するために、出力の形態と、このデータファイルに含まれている音声データの種別(オーディオストリーム#1に合成される他の音声データが含まれているか否か)を認識する必要がある。このため、再生装置20によって再生可能なデータファイルには、サウンドデータが含まれているか否かを示すフラグや、オーディオストリーム#2が含まれているか否かを示すフラグが所定の位置に記載されている。
なお、オーディオストリーム#1に合成される他の音声データが含まれているか否かのフラグが記載される位置としては、例えば、Indexファイル、プレイリスト(PlayList)ファイル、プレイアイテム(PlayItem)などがある。これらのフラグがIndexファイルに記載されている場合、図8を用いて説明したデータ構造に含まれる全てのデータの再生において、オーディオストリーム#1に合成される他の音声データが含まれていると扱われるか、含まれていないと扱われるかが規定される。同様に、これらのフラグがプレイリストに記載されている場合、対応するプレイリストを基に再生されるデータに含まれるオーディオストリーム#1に対して合成される他の音声データが含まれていると扱われるか、含まれていないと扱われるかが規定され、これらのフラグがプレイアイテムに記載されている場合、対応するプレイアイテムに対応するクリップにオーディオストリーム#1に対して合成される他の音声データが含まれていると扱われるか、含まれていないと扱われるかが規定される。
Indexファイル(Index.bdmv)のシンタクスを図9に示す。
Type_indicatorは、ISO646に基づいて符号化された"INDX"の値が記述されるフィールドである。
version_numberは、Index.bdmvのバージョンナンバーを示す4文字の文字列であり、ISO646に基づいて符号化された"0089"の値が記述される。
Indexes_start_addressは、Indexes()ブロックのスタートアドレスが記載されるフィールドである。
AppInfoBDMV()には、このIndexファイルを含むデータファイルの供給元を示す、個別の識別子などが記載されている。
Indexes()には、例えば、メニューを読み出したり、タイトルを検索したり、所定のタイトルにジャンプしたり、または、このIndexファイルを含むデータファイルが記録されている光ディスクなどの記録媒体21が再生装置20に装着された場合に自動的に起動する処理を実行するアプリケーション(NavigationObject)とのリンクが記載されている。Indexes()のシンタクスについては、図10乃至図12を用いて後述する。
Padding_wordは、Index.bdmvのシンタクスに基づいて挿入されるものであり、0または正の整数で表される。
Indexes()のシンタクスの第1の例を、図10に示す。図10は、Indexes()により参照されるデータにオーディオストリーム#1に合成される他の音声データが含まれているか否かのフラグがIndex()に記載されていない場合のシンタクスである。
lengthは、Indexes()に何バイトの情報が記載されているかを表すフィールドである。
FirstPlaybackは、このファイルシステムのデータが再生される場合に最初に実行されるNavigationObjectに関する情報が含まれているデータブロックである。具体的には、このファイルシステムのデータが記録された光ディスクなどの記録媒体21が再生装置20に装着されたときに最初に自動的に実行されるNavigationObjectに関する情報が含まれているデータブロックである。
FirstPlayback_mobj_id_refは、最初に実行されるNavigationObjectのmobj_idの値を指定するためのフィールドである。mobj_idは、NavigationObjectがそれぞれ固有に与えられているIDである。また、再生開始時に自動的に実行されるNavigationObjectが設定されない場合、すなわち、再生開始時にはアプリケーションはいずれも実行されず、ユーザによる指令を受けて、いずれかのアプリケーションが実行されるようになされている場合、このフィールドには、"0Xffff"が記載される。
TopMenu()は、ユーザがメニュー画面を表示させる場合などに呼び出されるTopMenuのNavigationObjectに関する情報が含まれているデータブロックである。
TopMenu_mobj_id_refは、TopMenuのNavigationObjectのmobj_idの値を指定するためのフィールドである。TopMenuが設定されない場合、このフィールドには、"0xFFFF"が記載される。
number_of_Titlesは、Indexes()に記載されているタイトルの数を表すフィールドである。
Title[title_id]()は、title_idによって固有に区別されているそれぞれのタイトルに関する情報が記載されるブロックである。title_idは0から割り当てられる。
Title_playback_type[title_id]は、そのtitle_idによって指定されるタイトルの再生タイプを示す情報であり、例えば、再生される動画と音声による一般的なコンテンツであるMovie Titleか、ユーザの操作入力によって再生される動画や音声が変更されるなどの双方向のやり取りが可能なコンテンツであるInteractive Titleなどのタイプが示される。例えば、そのタイトルがMovie Titleである場合、PlayListに基づいた再生処理が実行される。
Title_access_type[title_id]は、そのtitle_idによって指定されるタイトルが、Title_Searchを用いて再生することが許可されているか否かを示す情報である。
reserved_for_future_useは、将来の拡張に備えるためにデータの記述内容が未設定とされている29ビットのフィールドである。
Title_mobj_id_ref[title_id]は、そのtitle_idによって指定されるタイトルがエントリーされているNavigationObjectのmobj_idの値を指定するためのフィールドである。
次に、Indexes()のシンタクスの第2の例を、図11に示す。図11の例においては、Indexes()により参照されるデータには、サウンドデータのみ合成される(オーディオストリーム#2は含まれていない)ようになされている場合のものであるから、Index()には、Indexes()により参照されるデータにオーディオストリーム#1に合成されるサウンドデータが含まれているか否かのフラグが記載されている。
図11に示されるIndexes()のシンタクスの第2の例においては、Indexes()により参照されるデータにサウンドデータが含まれているか否かを示す1ビットのフラグであるis_MixAppが新たに記載され、reserved_for_future_useが29ビットから28ビットに変更されている以外は、図10を用いて説明したIndexes()のシンタクスの第1の例と同様の構成を有している。なお、このis_MixAppを、Indexes()により参照されるデータに、オーディオストリーム#1に合成され得るサウンドデータまたはオーディオストリーム#2のうちの少なくともいずれかが含まれているか否かを示すフラグとして定義しても良い。この場合には、この1つのフラグを確認することのみにより、オーディオデータの合成が行われるか否か、すなわち、デコード処理の必要性を、迅速に認識することが可能となる。
次に、Indexes()のシンタクスの第3の例を、図12に示す。図12の例においては、Index()には、Indexes()により参照されるデータにオーディオストリーム#1に合成されるサウンドデータが含まれているか否かのフラグと、オーディオストリーム#1に合成されるオーディオストリーム#2が含まれているか否かのフラグとの2種類が記載されている。
図12に示されるIndexes()のシンタクスの第3の例においては、Indexes()により参照されるデータにオーディオストリーム#2が含まれているか否かを示す1ビットのフラグであるis_MixApp_1と、Indexes()により参照されるデータにサウンドデータが含まれているか否かを示す1ビットのフラグであるis_MixApp_2との2種類のフラグが新たに記載され、reserved_for_future_useが29ビットから27ビットに変更されている以外は、図10を用いて説明したIndexes()のシンタクスの第1の例と同様の構成を有している。
また、オーディオストリーム#1に合成すべきデータ(オーディオストリーム#2、またはサウンドデータのうちの少なくともいずれか)がIndexes()により参照されるデータに含まれているか否かを示すフラグではなく、合成処理が行われ得るか、行われないかを示すフラグを定義するものとしても良い。この場合には、定義されるフラグは、再生順を管理するIndex,PlayList等に基づいて再生を行うときに、合成データがそのPlayListに対して適用され得るか、または、適用されないかを示すフラグとなる。
図13に、PlayListファイルのデータ構造を示す。PlayListファイルは、再生装置20に装着された記録媒体、または、再生装置20内部の記憶部(例えば、ハードディスクなどからなるローカルストレージ)において、PLAYLISTディレクトリに格納される、拡張子「.mpls」を有するデータファイルである。
type_indicatorは、このファイルの種類を示す情報が記載されているものである。すなわち、このフィールドには、このファイルの種類が映像の再生を管理する再生管理情報であるPlayList(MoviePlayList)であることを示す情報が記載される。
version_numberは、このxxxx.mpls(MoviePlayList)のバージョンナンバーを示す4個のキャラクター文字を示すものである。
PlayList_start_addressは、PlayListファイルの先頭のバイトからの相対バイト数を単位として、PlayList()の先頭アドレスを示すものである。
PlayListMark_start_addressは、PlayListファイルの先頭のバイトからの相対バイト数を単位として、PlayListMark()の先頭アドレスを示すものである。
ExtensionData_start_addressは、PlayListファイルの先頭のバイトからの相対バイト数を単位として、ExtensionData()の先頭アドレスを示すものである。
AppInfoPlayList()には、例えば、再生制限など、PlayListの再生コントロールに関するパラメータが格納されている。AppInfoPlayList()の詳細については、図14または図15を用いて後述する。
PlayList()には、PlayListのメインパスやサブパスなどに関するパラメータが格納されている。PlayList()の詳細は、図16乃至図18を用いて後述する。
PlayListMark()には、PlayListのマーク情報、すなわち、チャプタジャンプなどを指令するユーザオペレーションまたはコマンドなどにおけるジャンプ先(ジャンプポイント)であるマークに関する情報が格納されている。
ExtensionData()には、プライベートデータが挿入できるようになっている。
次に、図14を参照して、AppInfoPlayList()の第1の例について説明する。図14のAppInfoPlayList()は、Indexes()が、図10を用いて説明したものであるとき、すなわち、Indexes()により参照されるデータにオーディオストリーム#1に合成される他の音声データが含まれているか否かのフラグがIndex()に記載されていない場合に適用することができる。
lengthは、length以下のシンタックスの長さ、すなわち、このlengthフィールドの直後からreserved_for_future_useの最後までのAppInfoPlayList()のバイト数を示すものである。このlengthの後には、8ビットのreserved_for_future_useが用意される。
Playlist_playback_typeは、連続再生、ランダムアクセス、シャッフルのいずれの再生を行うPlaylistであるかを示す情報を記載するフィールドである。
Playback_countは、ランダムアクセス、シャッフルを行うPlayListの場合、再生に用いるPlayItemの数を示す情報を記載するフィールドである。
そして、UO_mask_table()は、一時停止、チャプタサーチ、ジャンプ、早送り、早戻し(後方高速再生)等の特殊再生、または、表示等に関するユーザ操作の制限を決める情報である。
そして、PlayList_random_access_flagは、他のPlayListからのジャンプ再生を制御するためのフラグ情報である。ここでは、PlayList_random_access_flag=1に設定されている場合、他のPlayListからのジャンプ再生を禁止するものとする。
例えば、再生装置20においては、例えば、現在のPlayListにより参照されている再生位置から、他のPlayListにより参照される所定のPlayItemの先頭またはチャプタの位置への再生位置のジャンプを指令するユーザオペレーションなど、装置独自で拡張的なユーザオペレーションを用意することができる。PlayList_random_access_flagは、例えば、これらのユーザオペレーションにより、他のPlayListによって参照されるClip AV Streamのある再生位置から、このPlayListによって参照されるClip AV Streamへのジャンプ(再生位置の移動)が指令された場合、このユーザオペレーションを制限するか否かを設定するためのフラグ情報である。
なお、ユーザオペレーションによりジャンプ(再生位置の移動)が指令されるのではなく、ナビゲーションコマンドによりジャンプ(再生位置の移動)が指令された場合、PlayList_random_access_flagは無視される(コマンドは実行され、コマンドの発生に伴って、再生位置が移動される)。
Is_MixAppは、このPlaylistファイルにより再生されるストリームが音声や効果音の合成を行うか否かのフラグである。すなわち、このis_MixAppは、このPlayListにより参照されるデータに、オーディオストリーム#1に合成され得るサウンドデータおよびオーディオストリーム#2が含まれているか否かを示すフラグとして定義されている。この場合には、この1つのフラグを確認することのみにより、オーディオデータの合成が行われるか否か、すなわち、デコード処理の必要性を、迅速に認識することが可能となる。
また、Lossless_may_bypass_mixer_flagは、ロスレスの音声の再生に関するフラグである。この後には、13ビットのreserved_for_future_useが用意される。
図10に示されるように、Indexes()により参照されるデータにオーディオストリーム#1に合成される他の音声データが含まれているか否かのフラグがIndexes()に記載されていない場合においては、図14を用いて説明したように、AppInfoPlayList()にIs_MixAppを記載し、このPlaylistが音声や効果音の合成を行うか否かを示すようにしてもよいが、例えば、AppInfoPlayList()にIs_MixAppを記載するのではなく、PlayList()またはPlayItemにIs_MixAppを記載するものとしてもよい。
次に、図15を参照して、AppInfoPlayList()の第2の例について説明する。
図15に示されるAppInfoPlayList()の第2の例は、このPlaylistが音声や効果音の合成を行うか否かのフラグであるIs_MixAppが記載されていないこと以外は、図14を用いて説明したAppInfoPlayList()の第1の例と同様の構成を有している。すなわち、図15のAppInfoPlayList()の第2の例は、Indexes()が、図10を用いて説明したものであるが、Is_MixAppなどのフラグが、後述するPlayList()またはPlayItemに記載されているとき、すなわち、Indexes()により参照されるデータにオーディオストリーム#1に合成される他の音声データが含まれているか否かのフラグがIndex()に記載されず、PlayList()またはPlayItemにIs_MixAppが記載される場合、または、Indexes()が、図11または図12を用いて説明したものであるとき、すなわち、Indexes()により参照されるデータにオーディオストリーム#1に合成される他の音声データが含まれているか否かのフラグがIndex()に記載されている場合に適用される。
次に、図16は、PlayList()のシンタクスの第1の例を示す図である。図16は、オーディオストリーム#1に合成される他の音声データがこのプレイリストを参照することにより再生されるデータに含まれているか否かのフラグがPlayList()に記載されていない場合のシンタクスである。
すなわち、図16の、PlayList()のシンタクスの第1の例は、Indexes()が、図10を用いて説明したものであるとき、すなわち、Indexes()により参照されるデータにオーディオストリーム#1に合成される他の音声データが含まれているか否かのフラグがIndex()に記載されていないが、後述するPlayItemに記載されている場合、または、Indexes()が、図11または図12を用いて説明したものであるとき、すなわち、Indexes()により参照されるデータにオーディオストリーム#1に合成される他の音声データが含まれているか否かのフラグがIndex()に記載されている場合に適用される。
lengthは、このlengthフィールドの直後からPlayList()の最後までのバイト数を示す32ビットの符号なし整数である。すなわち、reserved_for_future_useからPlaylistの最後までのバイト数を示すフィールドである。このlengthの後には、16ビットのreserved_for_future_useが用意される。reserved_for_future_useは、将来の拡張に備えるためにデータの記述内容が未設定とされている。number_of_PlayItemsは、PlayListの中にあるPlayItemの数を示す16ビットのフィールドである。例えば、図5の例の場合PlayItemの数は3個である。PlayItem_idの値は、PlayListの中でPlayItem()が現れる順番に0から割り振られる。例えば、図5および図7に示されるように、PlayItem_id=0,1,2が割り振られる。
number_of_SubPathsは、PlayListの中にあるSubPathの数(エントリー数)を示す16ビットのフィールドである。例えば、図5の例の場合、Sub Pathの数は3個である。SubPath_idの値は、PlayListの中でSubPath()が現れる順番に0から割り振られる。例えば、図5に示されるように、Subpath_id=0,1,2が割り振られる。その後のfor文では、PlayItemの数だけPlayItemが参照され、Sub Pathの数だけ、Sub Pathが参照される。
次に、図17は、PlayList()のシンタクスの第2の例を示す図である。図17の例においては、このプレイリストを参照することにより再生されるオーディオストリームは、オーディオストリーム#1のみであり(オーディオストリーム#2は含まれていない)、PlayList()には、PlayList()を参照して再生されるデータにオーディオストリーム#1に合成されるサウンドデータが含まれているか否かのフラグが記載されている。
すなわち、図17の、PlayList()のシンタクスの第2の例は、Indexes()が、図10を用いて説明したものであるとき、すなわち、Indexes()により参照されるデータにオーディオストリーム#1に合成される他の音声データが含まれているか否かのフラグがIndex()に記載されておらず、かつ、後述するPlayItemにもフラグが記載されていない場合に適用される。
図17に示されるPlayList()のシンタクスの第2の例においては、PlayList()により参照されるデータにサウンドデータが含まれているか否かを示す1ビットのフラグであるis_MixAppが新たに記載され、reserved_for_future_useが16ビットから15ビットに変更されている以外は、図16を用いて説明したPlayList()のシンタクスの第1の例と同様の構成を有している。なお、このis_MixAppを、Playlist()により参照されるデータに、オーディオストリーム#1に合成され得るサウンドデータおよびオーディオストリーム#2が含まれているか否かを示すフラグとして定義しても良い。この場合には、この1つのフラグを確認することのみにより、オーディオデータの合成が行われるか否か、すなわち、デコード処理の必要性を、迅速に認識することが可能となる。
次に、PlayList()のシンタクスの第3の例を、図18に示す。図18の例においては、PlayList()には、PlayList()により参照されるデータにオーディオストリーム#1に合成されるサウンドデータが含まれているか否かのフラグと、オーディオストリーム#1に合成されるオーディオストリーム#2が含まれているか否かのフラグとが記載されている。
すなわち、図18の、PlayList()のシンタクスの第3の例も、Indexes()が、図10を用いて説明したものであるとき、すなわち、Indexes()により参照されるデータにオーディオストリーム#1に合成される他の音声データが含まれているか否かのフラグがIndex()に記載されておらず、かつ、後述するPlayItemにもフラグが記載されていない場合に適用される。
図18に示されるPlayList()のシンタクスの第3の例においては、PlayList()により参照されるデータにオーディオストリーム#2が含まれているか否かを示す1ビットのフラグであるis_MixApp_1と、PlayList()により参照されるデータにサウンドデータが含まれているか否かを示す1ビットのフラグであるis_MixApp_2との2種類のフラグが新たに記載され、reserved_for_future_useが16ビットから14ビットに変更されている以外は、図16を用いて説明したPlayList()のシンタクスの第1の例と同様の構成を有している。
図19は、SubPath()のシンタクスの例を示す図である。
lengthは、このlengthフィールドの直後からSub Path ()の最後までのバイト数を示す32ビットの符号なし整数である。すなわち、reserved_for_future_useからPlaylistの最後までのバイト数を示すフィールドである。このlengthの後には、16ビットのreserved_for_future_useが用意される。reserved_for_future_useは、将来の拡張に備えるためにデータの記述内容が未設定とされている。SubPath_typeは、SubPathのアプリケーション種類を示す8ビットのフィールドである。SubPath_typeは、例えば、Sub Pathがオーディオであるか、ビットマップ字幕であるか、テキスト字幕であるかなどの種類を示す場合に利用される。このSubPath_typeについては、図20を参照して後述する。SubPath_typeの後には、15ビットのreserved_for_future_useが用意される。is_repeat_SubPathは、SubPathの再生方法を指定する1ビットのフィールドであり、メインパスの再生の間にSubPathの再生を繰り返し行うか、またはSubPathの再生を1回だけ行うかを示すものである。例えば、メインAVストリームとサブパスが指定するClipの再生タイミングが異なる場合(メインパスを静止画のスライドショーとし、サブパスのオーディオパスをメインパスのBGM(バックグラウンドミュージック)として使う場合など)に利用される。Is_repeat_SubPathの後には、8ビットのreserved_for_future_useが用意される。number_of_SubPlayItemsは、1つのSubPathの中にあるSubPlayItemの数(エントリー数)を示す8ビットのフィールドである。例えば、number_of_SubPlayItemsは、図5のSubPath_id=0のSubPlayItemは1個であり、SubPath_id=1のSubPlayItemは2個である。その後のfor文では、SubPlayItemの数だけ、SubPlayItemが参照される。
図20は、SubPath_type(サブパスのタイプ)の例を説明する図である。すなわち、SubPathの種類は、例えば、図20に示されるように定義されている。
図20において、SubPath_type=0,1は、reservedとされている。SubPath_type=2は、Audio presentation path of the Browsable slideshow(プラウザブルスライドショーのオーディオプレゼンテーションパス)とされている。例えば、SubPath_type=2は、プレイリストの中において、サブパスで参照されるオーディオプレゼンテーションパスと、プレイアイテムで参照されるメインパスとが非同期であることを示している。
SubPath_type=3は、Interactive graphics presentation menu(インタラクティブグラフィックスのプレゼンテーションメニュー)とされている。例えば、SubPath_type=3は、プレイリストの中において、サブパスで参照されるインタラクティブグラフィックスのメニューと、プレイアイテムで参照されるメインパスとが非同期であることを示している。
SubPath_type=4は、Text subtitle presentation path(テキスト字幕のプレゼンテーションパス)とされている。例えば、SubPath_type=4は、プレイリストの中において、サブパスで参照されるテキスト字幕のプレゼンテーションパスと、プレイアイテムで参照されるメインパスとが同期していることを示している。
SubPath_type=5は、2nd Audio Presentation path(2番目のオーディオプレゼンテーションパス)(2ndオーディオストリームを参照するためのパス)とされている。具体的には、SubPath_type=5は、プレイリストの中において、サブパスで参照される2番目のオーディオプレゼンテーションパスと、プレイアイテムで参照されるメインパスとが同期していることを示している。例えば、このサブパスで参照される(2番目の)オーディオストリームは、映画に対する監督のコメント(音声)である。図7に示されるようなSubpath_idの場合、図19のSubPath_typeは、このSubPath_type=5となる。
SubPath_type=6は、2nd Video Presentation path(2番目のビデオプレゼンテーションパス)(2ndビデオストリームを参照するためのパス)とされている。具体的には、SubPath_type=6は、プレイリストの中において、サブパスで参照される2番目のビデオプレゼンテーションパスと、プレイアイテムで参照されるメインパスとが同期していることを示している。例えば、このサブパスで参照される(2番目の)ビデオストリームは、映画に対する監督のコメント(動画像)である。
SubPath_type=7乃至255は、reservedとされている。
図21は、SubPlayItem(i)のシンタクスを示す図である。
lengthは、このlengthフィールドの直後からSub playItem ()の最後までのバイト数を示す16ビットの符号なし整数である。
図21においては、SubPlayItemが1つのClip を参照する場合と、複数のClip を参照する場合に分けられている。
最初に、SubPlayItemが1つのClipを参照する場合について説明する。
SubPlayItemには、Clipを指定するためのClip_Information_file_name[0]が含まれる。また、Clipのコーデック方式を指定するClip_codec_identifier[0]、reserved_for_future_use、マルチクリップの登録の有無を示すフラグであるis_multi_Clip_entries、STC不連続点(システムタイムベースの不連続点)に関する情報であるref_to_STC_id[0]を含む。is_multi_Clip_entriesのフラグが立っている場合、SubPlayItemが複数のClipを参照する場合のシンタクスが参照される。また、Clipの中にあるSub Pathの再生区間を指定するためのSubPlayItem_IN_timeとSubPlayItem_OUT_timeを含む。さらに、main pathの時間軸上でSub Pathが再生開始する時刻を指定するためsync_PlayItem_id と sync_start_PTS_of_PlayItemを含む。このsync_PlayItem_id と sync_start_PTS_of_PlayItemは、上述したように、図6と図7の場合(メインAVストリームとサブパスにより示されるファイルの再生タイミングが同じである場合)に使用され、メインAVストリームとサブパスにより示されるファイルの再生タイミングが異なる場合(例えば、静止画により構成されるスライドショーのBGMのように、メインパスにより参照される静止画像とサブパスにより参照されるオーディオとが同期しない場合)には使用されない。また、SubPlayItem_IN_time、SubPlayItem_OUT_time、sync_PlayItem_id、sync_start_PTS_of_PlayItemは、SubPlayItemが参照するClipにおいて共通に使用される。
次に、SubPlayItemが複数のClipを参照する場合(if(is_multi_Clip_entries==1b)である場合、すなわちマルチクリップの登録が行われている場合)について説明する。具体的には、図7に示されるように、SubPlayItemが複数のClip を参照する場合を示す。
num_of_Clip_entriesは、Clipの数を示しており、Clip_Information_file_name[SubClip_entry_id]の数が、Clip_Information_file_ name[0]を除く、Clipsを指定する。すなわち、Clip_Information_file_ name[0]を除く、Clip_Information_file_ name[1]、Clip_Information_file_ name[2]などのClipを指定する。また、SubPlayItemは、Clipのコーデック方式を指定するClip_codec_identifier[SubClip_entry_id]、STC不連続点(システムタイムベースの不連続点)に関する情報であるref_to_STC_id[SubClip_entry_id]、およびreserved_for_future_useを含む。
なお、複数のClipの間で、SubPlayItem_IN_time, SubPlayItem_OUT_time、sync_PlayItem_id、およびsync_start_PTS_of_PlayItemは共通して使われる。図7の例の場合、SubPlayItem_IN_time, SubPlayItem_OUT_time、sync_PlayItem_id、およびsync_start_PTS_of_PlayItemは、SubClip_entry_id=0とSubClip_entry_id=1との間で共通して使用されるものであり、選択されたSubClip_entry_idに対するText based subtitleがこのSubPlayItem_IN_time, SubPlayItem_OUT_time、sync_PlayItem_id、およびsync_start_PTS_of_PlayItemに基づいて再生される。
ここで、SubClip_entry_idの値は、SubPlayItemの中にあるClip_Information_file_name[SubClip_entry_id]が現れる順番に1から割り振られる。また、Clip_Information_file_ name[0]のSubClip_entry_idは0である。
図22は、PlayItem()のシンタクスの第1の例を示す図である。図22は、オーディオストリーム#1に合成される他の音声データが、このPlayItem()に対応するデータに含まれているか否かのフラグが記載されていない場合のシンタクスである。
すなわち、図22の、PlayItem()のシンタクスの第1の例は、Indexes()が、図11または図12を用いて説明したものであるとき、すなわち、Indexes()により参照されるデータにオーディオストリーム#1に合成される他の音声データが含まれているか否かのフラグがIndex()に記載されているか、AppInfoPlayList()が図14を用いて説明したものであるとき、すなわち、PlayListにより参照されるデータにオーディオストリーム#1に合成される他の音声データが含まれているか否かのフラグがAppInfoPlayList()に記載されているか、もしくは、PlayList()が図17または図18を用いて説明したものであるとき、すなわち、PlayListにより参照されるデータにオーディオストリーム#1に合成される他の音声データが含まれているか否かのフラグが記載されている場合に適用される。
lengthは、このlengthフィールドの直後からPlayItem()の最後までのバイト数を示す16ビットの符号なし整数である。Clip_Information_file_ name[0]は、PlayItemが参照するClipを指定するためのフィールドである。図6の例の場合、Clip_Information_file_ name[0]により、メインAVストリームが参照される。また、Clipのコーデック方式を指定するClip_codec_identifier[0]、将来の拡張に備えるためにデータの記述内容が未設定とされている11ビットのreserved_for_future_use、マルチアングル再生に対応しているか否かを示すフラグであるis_multi_angleを含み、更に、connection_conditionや、STC不連続点(システムタイムベースの不連続点)に関する情報であるref_to_STC_id[0]を含む。さらに、Clipの中のPlayItemの再生区間を指定するためのIN_time と OUT_timeを含む。図6の例の場合、IN_time と OUT_timeにより、メインClipAVストリームファイルの再生範囲が表される。また、UO_mask_table()、PlayItem_random_access_mode、still_modeを含む。is_multi_angleが複数ある場合については、本発明と直接的には関係ないのでその説明を省略する。
PlayItem()の中のSTN_table()は、対象のPlayItemとそれに関連付けられて再生される1つ以上のSubPathが用意されている場合に、ユーザによる音声切り替えや字幕切り替えという操作が、そのPlayItemが参照するClipとこれらの1つ以上のSubPathが参照するClipsの中から選ぶことができる仕組みを提供するものである。また、STN_table()は、2つのオーディオストリームのミキシング再生を選ぶことができる仕組みを提供するものである。
次に、図23は、PlayItem()のシンタクスの第2の例を示す図である。図23の例においては、このPlayItem()に対応するデータにオーディオストリーム#2は含まれておらず、PlayItem()には、PlayItem()に対応するデータにオーディオストリーム#1に合成されるサウンドデータが含まれているか否かのフラグが記載されている。
すなわち、図23の、PlayItem()のシンタクスの第2の例は、Indexes()が、図10を用いて説明したものであるとき、すなわち、Indexes()により参照されるデータにオーディオストリーム#1に合成される他の音声データが含まれているか否かのフラグがIndex()に記載されておらず、AppInfoPlayList()が図15を用いて説明したものであるとき、すなわち、PlayListにより参照されるデータにオーディオストリーム#1に合成される他の音声データが含まれているか否かのフラグがAppInfoPlayList()に記載されておらず、PlayList()が図16を用いて説明したものであるとき、すなわち、PlayListにより参照されるデータにオーディオストリーム#1に合成される他の音声データが含まれているか否かのフラグが記載されていない場合に適用される。
図23に示されるPlayItem()のシンタクスの第2の例においては、PlayItem()により参照されるデータにサウンドデータが含まれているか否かを示す1ビットのフラグであるis_MixAppが新たに記載され、reserved_for_future_useが11ビットから10ビットに変更されている以外は、図22を用いて説明したPlayItem()のシンタクスの第1の例と同様の構成を有している。なお、このis_MixAppを、PlayItem()により参照されるデータに、オーディオストリーム#1に合成され得るサウンドデータおよびオーディオストリーム#2が含まれているか否かを示すフラグとして定義しても良い。この場合には、この1つのフラグを確認することのみにより、オーディオデータの合成が行われるか否か、すなわち、デコード処理の必要性を、迅速に認識することが可能となる。
次に、PlayItem()のシンタクスの第3の例を、図24に示す。図24の例においては、PlayItem()には、PlayItem()に対応するデータにオーディオストリーム#1に合成されるサウンドデータが含まれているか否かのフラグと、オーディオストリーム#1に合成されるオーディオストリーム#2が含まれているか否かのフラグとが記載されている。
すなわち、図24の、PlayItem()のシンタクスの第3の例も、Indexes()が、図10を用いて説明したものであるとき、すなわち、Indexes()により参照されるデータにオーディオストリーム#1に合成される他の音声データが含まれているか否かのフラグがIndex()に記載されておらず、AppInfoPlayList()が図15を用いて説明したものであるとき、すなわち、PlayListにより参照されるデータにオーディオストリーム#1に合成される他の音声データが含まれているか否かのフラグがAppInfoPlayList()に記載されておらず、PlayList()が図16を用いて説明したものであるとき、すなわち、PlayListにより参照されるデータにオーディオストリーム#1に合成される他の音声データが含まれているか否かのフラグが記載されていない場合に適用される。
図24に示されるPlayItem()のシンタクスの第3の例においては、PlayItem()に対応するデータにオーディオストリーム#2が含まれているか否かを示す1ビットのフラグであるis_MixApp_1と、PlayItem()に対応するデータにサウンドデータが含まれているか否かを示す1ビットのフラグであるis_MixApp_2との2種類のフラグが新たに記載され、reserved_for_future_useが11ビットから9ビットに変更されている以外は、図22を用いて説明したPlayItem()のシンタクスの第1の例と同様の構成を有している。
図25は、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のオーディオストリームは、後述する図28の再生装置20の1stオーディオデコーダ75−1でデコードされるオーディオストリームであり、STN_table()でエントリーされるnumber_of_audio_stream2_entriesのオーディオストリームは、後述する図28の再生装置20の2ndオーディオデコーダ75−2でデコードされるオーディオストリームである。このように、図25のSTN_table()では、2つのオーディオデコーダのそれぞれにデコードさせるオーディオストリームをエントリーすることができる。
なお、以下において、図28の再生装置20の1stオーディオデコーダ75−1でデコードされるnumber_of_audio_stream_entriesのオーディオストリームをオーディオストリーム#1と称し、図28の再生装置20の2ndオーディオデコーダ75−2でデコードされるnumber_of_audio_stream2_entriesのオーディオストリームをオーディオストリーム#2と称する。また、オーディオストリーム#1は、オーディオストリーム#2よりも優先されるオーディオストリームであるものとする。
number_of_PG_txtST_stream_entriesは、STN_table()の中でエントリーされるPG_txtST_stream_idが与えられるストリーム数を示す。この中では、DVDのサブピクチャのようなビットマップ字幕をランレングス符号化したストリーム(PG, Presentation Graphics stream)とテキスト字幕ファイル(txtST)がエントリーされる。PG_txtST_stream_idは、字幕ストリームを識別するための情報であり、PG_txtST_stream_numberは、字幕切り替えに使われるユーザから見える字幕ストリーム番号(テキストサブタイトルストリームの番号)である。
number_of_IG_stream_entriesは、STN_table()の中でエントリーされる IG_stream_idが与えられるストリーム数を示す。この中では、インタラクティブグラフィックスストリームがエントリーされる。IG_stream_idは、インタラクティブグラフィックスストリームを識別するための情報であり、IG_stream_numberは、グラフィックス切り替えに使われるユーザから見えるグラフィックスストリーム番号である。
ここで、stream_entry()のシンタクスについて図26を参照して説明する。
lengthは、このlengthフィールドの直後からstream_entry ()の最後までのバイト数を示す8ビットの符号なし整数である。typeは、上述したストリーム番号が与えられるストリームを一意に特定するために必要な情報の種類を示す8ビットのフィールドである。
type=1では、PlayItemによって参照されるClip(Main Clip)の中に多重化されている複数のエレメンタリストリームの中から1つのエレメンタリストリームを特定するために、16ビットのパケットID(PID)が指定される。ref_to_stream_PID_of_mainClipが、このPIDを示している。すなわち、type=1では、メインClipAVストリームファイルの中のPIDを指定するだけでストリームが決定される。
type=2では、SubPathが一度に複数個のClipsを参照し、それぞれのClipが複数のエレメンタリストリームを多重化する場合に、SubPathによって参照される1つのClip(SubClip)の複数のエレメンタリストリームの中から1つのエレメンタリストリームを特定するために、そのSubPathのSubPath_id、Clip id、およびパケットID(PID)が指定される。ref_to_SubPath_idがこのSubPath_idを示し、ref_to_SubClip_entry_idがこのClip idを示し、ref_to_stream_PID_of_SubClipがこのPIDを示している。SubPlayItemの中で複数のClipが参照され、さらにこのClipに複数のエレメンタリストリームが参照されている場合に用いられる。
このように、type(type=1とtype=2の2つのtype)を使うことで、PlayItemとそれに関連付けられて再生される1つ以上のSubPathが用意されている場合に、このPlayItemが参照するClipと1つ以上のSubPathが参照するClipの中から1つのエレメンタリストリームを特定することができる。なお、type=1はMain Pathが参照するClip(メインClip)を示しており、type=2はSub Pathが参照するClip(サブClip)を示している。
図25の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から定義される。
すなわち、図25の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から定義される。
次に、図25のSTN_table()のstream_attribute()について説明する。
reserved_for_future_useの後のfor文では、video streamの分だけvideo streamが参照され、このデータの提供者(例えば、記録媒体21の製造者など)が、オーディオストリームに対して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つのオーディオエレメンタリストリームのストリーム属性情報が記述されている。例えば、図26の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つのオーディオエレメンタリストリームのストリーム属性情報が記述されている。例えば、図26の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()のシンタクスについて図27を参照して説明する。
lengthは、このlengthフィールドの直後からstream_attribute()の最後までのバイト数を示す16ビットの符号なし整数である。
stream_coding_typeは、図28に示されるようにエレメンタリストリームの符号化タイプを示す。エレメンタリストリームの符号化タイプとしては、MPEG-2 video stream、HDMV LPCM audio、Dolby AC-3 audio、dts audio、Presentation graphics stream、Interactive graphics stream、およびText subtitle streamが記述される。
video_formatは、図29に示されるようにビデオエレメンタリストリームのビデオフォーマットを示す。ビデオエレメンタリストリームのビデオフォーマットとしては、480i、576i、480p、1080i、720p、および1080pが記述される。
frame_rateは、図30に示されるように、ビデオエレメンタリストリームのフレームレートを示す。ビデオエレメンタリストリームのフレームレートとしては、24000/1001、24、25、30000/1001、50、および60000/1001が記述される。
aspect_ratioは、図31に示されるようにビデオエレメンタリストリームのアスペクト比情報を示す。ビデオエレメンタリストリームのアスペクト比情報としては、4:3 display aspect ratio、および16:9 display aspect ratioが記述される。
audio_presentation_typeは、図32に示されるようにオーディオエレメンタリストリームのプレゼンテーションタイプ情報を示す。オーディオエレメンタリストリームのプレゼンテーションタイプ情報としては、single mono channel、dual mono channel、stereo(2-channel)、およびmulti-channelが記述される。
sampling_frequencyは、図33に示されるようにオーディオエレメンタリストリームのサンプリング周波数を示す。オーディオエレメンタリストリームのサンプリング周波数としては、48kHz、および96kHzが記述される。
audio_language_codeは、オーディオエレメンタリストリームの言語コード(日本語、韓国語、中国語など)を示す。
PG_language_codeは、ビットマップ字幕エレメンタリストリームの言語コード(日本語、韓国語、中国語など)を示す。
IG_language_code、インタラクティブグラフィックスエレメンタリストリームの言語コード(日本語、韓国語、中国語など)を示す。
textST_language_codeは、テキスト字幕エレメンタリストリームの言語コード(日本語、韓国語、中国語など)を示す。
character_codeは、図34に示されるようにテキスト字幕エレメンタリストリームのキャラクタコードを示す。テキスト字幕エレメンタリストリームのキャラクタコードとしては、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)が記述される。
以下に、図27のstream_attribute()のシンタクスについて、図27と、図28乃至図34を用いて具体的に説明する。
エレメンタリストリームの符号化タイプ(図27のstream_coding_type)がMPEG-2 video stream(図28)である場合、stream_attribute()には、そのエレメンタリストリームのビデオフォーマット(図29)、フレームレート(図30)、およびアスペクト比情報(図31)が含まれる。
エレメンタリストリームの符号化タイプ(図27のstream_coding_type)がHDMV LPCM audio、Dolby AC-3 audio、またはdts audio(図28)である場合、stream_attribute()には、そのオーディオエレメンタリストリームのプレゼンテーションタイプ情報(図32)、サンプリング周波数(図33)、および言語コードが含まれる。
エレメンタリストリームの符号化タイプ(図27のstream_coding_type)がPresentation graphics stream(図28)である場合、stream_attribute()には、そのビットマップ字幕エレメンタリストリームの言語コードが含まれる。
エレメンタリストリームの符号化タイプ(図27のstream_coding_type)がInteractive graphics stream(図28)である場合、stream_attribute()には、そのインタラクティブグラフィックスエレメンタリストリームの言語コードが含まれる。
エレメンタリストリームの符号化タイプ(図27のstream_coding_type)がText subtitle stream(図28)である場合、stream_attribute()には、そのテキスト字幕エレメンタリストリームのキャラクタコード(図34)、言語コードが含まれる。
なお、これらの属性情報はこれに限定されない。
このように、PlayItemとそれに関連付けられて再生される1つ以上のSubPathが用意されている場合に、このPlayItemが参照するClipと1つ以上のSubPathが参照するClipの中から、stream_entry()によって特定された1つのエレメンタリストリームの属性情報をstream_attribute()によって知ることができる。
再生装置は、この属性情報(stream_attribute())を調べることによって、そのエレメンタリストリームを自分自身が再生する機能を持っているか否かを調べることができる。また、再生装置は、この属性情報を調べることによって、再生装置の言語設定の初期情報に対応したエレメンタリストリームの選択することができる。
例えば、再生装置が、ビットマップ字幕エレメンタリストリームの再生機能だけを有し、テキスト字幕エレメンタリストリームの再生機能を有していない場合を想定する。この再生装置に対して、ユーザが言語切り替えを指示した場合、再生装置は、字幕ストリームID (PG_txtST_stream_id)のforループの中から、ビットマップ字幕エレメンタリストリームだけを順次選択して、再生する。
また、例えば、再生装置の言語設定の初期情報が日本語である場合を想定する。この再生装置に対して、ユーザが音声切り替えを指示した場合、再生装置は、オーディオストリームID (Audio stream id)のforループの中から、言語コードが日本語であるオーディオエレメンタリストリームだけを順次選択して、再生する。
さらに、例えば、メインパスにより参照される、ビデオストリームとオーディオストリームからなるAVストリーム(映画)を再生する場合、再生装置に対して、ユーザが音声の切り替えを指令し、オーディオストリーム#1(通常の映画で出力される音声)と、オーディオストリーム#2(監督や出演者によるコメント)とを、再生する音声として指定(選択)した場合、再生装置は、オーディオストリーム#1とオーディオストリーム#2とをミキシング(重畳)して、ビデオストリームとともに再生する。
なお、オーディオストリーム#1とオーディオストリーム#2とは、図25および図26のSTN_table()を参照しても分かるように、両方ともメインパスにより参照されるClipに含まれるオーディオストリームとしてもよい。また、オーディオストリーム#1とオーディオストリーム#2のうちの、一方をメインパスにより参照されるClipに含まれるオーディオストリームとし、他方をサブパスにより参照されるClipに含まれるオーディオストリームとしてもよい。このように、メインパスにより参照されるメインAVストリームに重畳された複数のオーディオストリームを2つ選択して、ミキシングして再生することも可能である。
このようにして、PlayItem()の中のSTN_table()は、このPlayItemとそれに関連付けられて再生される1つ以上のSubPathが用意されている場合に、ユーザによる音声切り替えや字幕切り替えという操作が、このPlayItemが参照するClipと1つ以上のSubPathが参照するClipの中から選ぶことができる仕組みを提供するようにしたので、メインAVストリームが記録されている、再生するAVストリームとは異なるストリームやデータファイルに対しても、インタラクティブな操作を行うことができる。
また、1つのPlayListの中にSubPathを複数使用し、それぞれのSubPathがそれぞれSubPlayItemを参照する構成としたので、拡張性の高い、また、自由度の高いAVストリームを実現することができる。すなわち、後で、SubPlayItemを追加できる構成とすることができる。例えば、Main Pathが参照するClipAVストリームファイルとこれに対応付けられるPlayListがあり、このPlayListが新たなSub Pathを追加したPlayListに書き換えられた場合、新たなPlayListに基づいて、Main Pathが参照するClipAVストリームファイルとともに、Main Pathが参照するClipAVストリームファイルとは異なるClipAVストリームファイルを参照して、再生を行うことができる。このように、拡張性を有する構成とすることができる。
さらに、PlayItem()の中のSTN_table()は、後述する図41の再生装置20−2の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とを重畳(ミキシング)して再生することができる。
具体的な例を、図35を参照して説明する。図35は、ユーザに提供する音声信号と字幕信号の関係を表すストリームナンバーテーブルの例を示す図である。
図35においては、音声番号をA_SN(Audio Stream Number)、A_SN2と称し、字幕番号をS_SN(SubPicture Stream Number)と称する。図35においては、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つオーディオストリームを選択することになる。
なお、ここでは、A_SN、A_SN2の番号が小さい程、ユーザに提供される音声信号の優先度が高い。また、A_SNで与えられるストリームの方が、A_SN2で与えられるストリームより優先度が高い。すなわち、A_SN=1はデフォルトで再生されるオーディオストリームである。
具体的には、再生装置の言語設定の初期情報に基づいて再生される音声は、A_SN=1であるオーディオ2(図35)に対応しており、音声が切り替えられた後、再生される音声は、A_SN=2であるオーディオ1(図35)に対応している。
このようなストリームナンバーテーブルを提供するために、PlayList()で参照されるPlayItem()の中のSTN table()(図25)において、最初に、オーディオストリーム#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()(図25)において、オーディオストリーム#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()(図25)のstream_entry()(図26)で、2本のオーディオストリームをエントリーすることが可能な構成としたので、2つのオーディオストリームをミキシングして再生することができる。すなわち、複数の種類からなるストリームから、同じ種類(この例の場合、オーディオストリーム)の2本のストリームをミキシング(重畳、または合成)して、同時に再生することができる。また、ユーザは、所望する2本の同じ種類のストリームのミキシング再生を指令することができる。
なお、以上の例では、図41の再生装置20−2の1stオーディオデコーダ75−1でデコードされるオーディオストリーム#1と、2ndオーディオデコーダ75−2でデコードされるオーディオストリーム#2とを、ユーザが別々に選択可能な構成としたが、オーディオストリーム#1とオーディオストリーム#2との組み合わせを定義し、ミキシング再生する場合には、この組み合わせの中からユーザに選択させる構成としてもよい。
次に、図36を参照して、AUXDATAディレクトリのsound.bdmvのシンタクスについて説明する。
sound.bdmvは、インタラクティブグラフィックスを用いたストリームに対する1つ又は複数の効果音を含むファイルである。
SoundData_start_addressは、SoundData()の先頭アドレスを示す32ビットのフィールドであり、SoundIndex()は、実際の効果音のデータであるSoundData()の効果音の属性(例えば、チャネル数・周波数など)を示す情報である。
実際の効果音のデータであるSoundData()は、非圧縮のオーディオデータであり、例えば、サウンドストリームとは別に効果音が用意され、所定の位置で出力されるようになされているコンテンツや、ユーザの操作入力を基に再生するデータを変更することができるようになされているなど、ユーザの操作入力を受けることを前提としているコンテンツや、インタラクティブなコンテンツなどにおけるクリック音などとして用意されるデータである。換言すれば、コンテンツ、または、プレイリストまたはプレイアイテムで指定されるコンテンツの一部の仕様によっては、SoundData()を有していないものもある。SoundData()は、例えば、効果音の再生がコマンドによって指令された場合やユーザの操作入力を受けた場合、オーディオストリームに合成されて出力されるようになされている。
次に、上述した構成を有するデータを再生出力する再生装置20の構成例と処理について説明する。
図37は、本発明を適用した再生装置の第1の例である再生装置20−1の構成例を示すブロック図である。この再生装置20−1は、上述したメインパスとサブパスを有するPlayListを再生することができる。再生装置20−1は、audio_stream_idで与えられるオーディオストリーム#1のみを再生することが可能であり、audio_stream_id2で与えられるオーディオストリーム#2が存在するかしないかにかかわらず、再生することができない。そして、再生装置20-1は、オーディオストリーム#1に対して、サウンドデータを合成して再生することができる。
再生装置20−1には、再生データ取得部31、スイッチ32、AVデコーダ部33−1、コントローラ34−1、オーディオエンコーダ41、ビデオエンコーダ42、D/A変換部43、D/A変換部44、非圧縮オーディオ信号インターフェース51、圧縮オーディオ信号インターフェース52、非圧縮ビデオ信号インターフェース53、圧縮ビデオ信号インターフェース54、アナログオーディオ信号インターフェース55、および、アナログビデオ信号インターフェース56が設けられている。
図37の例の場合、最初に、コントローラ34−1が、例えば、装着された記録媒体21からデータを読み込むストレージドライブ、自分自身の内部の記録媒体からデータを読み込むデータドライブ、または、ネットワーク22を介してデータを取得するネットワークインターフェイスなどの再生データ取得部31を介して、Indexファイルを読み出し、発生されるコマンドに基づいて、PlayListファイルを読み出し、PlayListファイルの情報に基づいてPlayItemを読み出し、これに対応するClipを検出し、ClipInfoを基に、対応するAVストリームやAVデータなどを読み出す。ユーザは、上述したリモートコマンダ23などのユーザインターフェースを用いて、コントローラ34−1に対し、音声や字幕などの切り替えの指令を行うことができる。また、コントローラ34−1には、再生装置20−1の言語設定の初期情報が図示せぬ記憶部などから供給される。
また、コントローラ34−1は、Indexファイル,PlayListファイル(AppInfoPlayList()、PlayList()、または、PlayItem)のうちのいずれかに記載される、オーディオストリームに合成可能なサウンドデータの有無を示すフラグであるis_MixAppまたはis_MixApp_2の値を基に、スイッチ61を制御する。
PlayListファイルには、Main Path、Sub Pathの情報の他、STN_table()が含まれている。コントローラ34−1は、PlayListファイルに含まれるPlayItemが参照するメインClipに含まれるメインClip AVストリームファイル、サブClipに含まれるSubPlayItemが参照するサブClip AVストリームファイル、およびSubPlayItemが参照するテキストサブタイトルデータを、再生データ取得部31を介して記録媒体21などから読み出す。ここで、PlayItemが参照するメインClipとSubPlayItemが参照するサブClipとが、異なる記録媒体に記録されていてもよい。例えば、メインClipが記録媒体21に記録されており、対応するサブClipは、例えば、ネットワーク22を介して供給され、再生装置20-1に内蔵されている図示しないHDDに記憶されたものであってもよい。また、コントローラ34−1は、自分自身(再生装置20−1)の再生機能に対応するエレメンタリストリームを選択し、再生するよう制御したり、再生装置20−1の言語設定の初期情報に対応するエレメンタリストリームだけを選択し、再生するよう制御する。
AVデコーダ部33−1には、バッファ51乃至54、PIDフィルタ55、PIDフィルタ56、スイッチ57乃至59、スイッチ61、バックグラウンドデコーダ71、ビデオデコーダ72、プレゼンテーショングラフィックスデコーダ73、インタラクティブグラフィックスデコーダ74、オーディオデコーダ75、Text-STコンポジション76、スイッチ77、バックグラウンドプレーン生成部91、ビデオプレーン生成部92、プレゼンテーショングラフィックスプレーン生成部93、インタラクティブグラフィックスプレーン生成部94、バッファ95、ビデオデータ処理部96、および、ミキシング処理部97が設けられている。ここでは、オーディオデコーダとして、オーディオデコーダ75のみが設けられているので、オーディオストリーム#1をデコードすることができるが、オーディオストリーム#2をデコードすることはできない。具体的には、再生装置20-1においては、図25のSTN_table()において、audio_stream_idで与えられるオーディオストリームをデコードすることは可能であるが、audio_stream_id2で与えられるオーディオストリームをデコードすることができない。また、ビデオデコーダ72としては、再生されるストリームに応じて、例えば、MPEG2,MPEG4,H.264/AVCなどの種々のデコーダを採用することができる。
コントローラ34−1により読み出されたファイルデータは、図示せぬ復調、ECC復号部により復調され、復調された多重化ストリームに誤り訂正が施される。スイッチ32は、復調され、誤り訂正が施されたデータを、コントローラ34−1からの制御に基づいて、ストリームの種類ごとに選択し、対応するバッファ51乃至54に供給する。具体的には、スイッチ32は、コントローラ34−1からの制御に基づいて、バックグラウンドイメージデータをバッファ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は、オーディオとビットマップ字幕(Presentation Graphics stream)とインタラクティブグラフィックスとオーディオのうち、1つ以上のストリームを多重化したストリームである。なお、テキストサブタイトルデータファイル(Text-ST)のデータは、トランスポートストリームのような多重化ストリームの形式であっても、そうでなくてもよい。
また、再生データ取得部31は、メインClip AV StreamとサブClip AV Streamおよびテキストサブタイトルデータのそれぞれのファイルを時分割に交互に読み出しても良いし、または、メインClip AV Streamを読み出す前に、サブClip AV Streamやテキストサブタイトルデータを予め読み出しておき、すべてバッファ(バッファ53またはバッファ54)へプリロードしておくようにしてもよい。
そして、メインClip AV Stream用リードバッファであるバッファ52から読み出されたストリームデータは、所定のタイミングで、後段のPID(パケットID)フィルタ55へ出力される。このPIDフィルタ55は、入力されたメインClip AV StreamをPID(パケットID)に応じて、後段の各エレメンタリストリームのデコーダへ振り分けて出力する。すなわち、PIDフィルタ55は、ビデオストリームをビデオデコーダ72に供給し、プレゼンテーショングラフィックスストリームをプレゼンテーショングラフィックスデコーダ73への供給元となるスイッチ57に供給し、インタラクティブグラフィックスストリームをインタラクティブグラフィックスデコーダ74への供給元となるスイッチ58に供給し、オーディオストリームをオーディオデコーダ75への供給元となるスイッチ59に供給する。
プレゼンテーショングラフィックスストリームは、例えば、ビットマップの字幕データであり、テキストサブタイトルデータは、例えば、テキスト字幕データである。
サブClip AV Stream用リードバッファであるバッファ53から読み出されたストリームデータは、所定のタイミングで、後段のPID(パケットID)フィルタ56へ出力される。このPIDフィルタ56は、入力されたサブClip AV StreamをPID(パケットID)に応じて、後段の各エレメンタリストリームのデコーダへ振り分けて出力する。すなわち、PIDフィルタ56は、プレゼンテーショングラフィックスストリームをプレゼンテーショングラフィックスデコーダ73への供給元となるスイッチ57に供給し、インタラクティブグラフィックスストリームをインタラクティブグラフィックスデコーダ74への供給元となるスイッチ58に供給し、オーディオストリームをスイッチ61への供給元となるスイッチ59に供給する。
バックグラウンドイメージデータをバッファリングするバッファ51から読み出されたデータは、所定のタイミングでバックグラウンドデコーダ71に供給される。バックグラウンドデコーダ71は、バックグラウンドイメージデータをデコードし、デコードしたバックグラウンドイメージデータをバックグラウンドプレーン生成部91に供給する。
PIDフィルタ55により振り分けられたビデオストリームは、後段のビデオデコーダ72に供給される。ビデオデコーダ72は、ビデオストリームをデコードし、デコードしたビデオデータをビデオプレーン生成部92へ出力する。
スイッチ57は、PIDフィルタ55から供給されたメインClipに含まれるプレゼンテーショングラフィックスストリームと、サブClip に含まれるプレゼンテーショングラフィックスストリームのうちのいずれか1つを選択し、選択したプレゼンテーショングラフィックスストリームを、後段のプレゼンテーショングラフィックスデコーダ73に供給する。プレゼンテーショングラフィックスデコーダ73は、プレゼンテーショングラフィックスストリームをデコードし、デコードしたプレゼンテーショングラフィックスストリームのデータをプレゼンテーショングラフィックスプレーン生成部93への供給元となるスイッチ77に供給する。
また、スイッチ58は、PIDフィルタ55から供給されたメインClipに含まれるインタラクティブグラフィックスストリームと、サブClip に含まれるインタラクティブグラフィックスストリームのうちのいずれか1つを選択し、選択したインタラクティブグラフィックスストリームを、後段のインタラクティブグラフィックスストリームデコーダ74に供給する。すなわち、インタラクティブグラフィックスデコーダ74へ同時に入力されるインタラクティブグラフィックスストリームは、メインClip AV StreamまたはサブClip AV Streamのどちらかから分離されたストリームである。インタラクティブグラフィックスデコーダ74は、インタラクティブグラフィックスストリームをデコードし、デコードしたインタラクティブグラフィックスストリームのデータを、インタラクティブグラフィックスプレーン生成部94に供給する。
さらに、スイッチ59は、PIDフィルタ55から供給されたメインClipに含まれるオーディオストリームと、サブClip に含まれるオーディオストリームのうちのいずれか1つを選択し、選択したオーディオストリームを、後段のスイッチ61に供給する。
スイッチ61は、コントローラ34−1の制御に基づいて、供給されたオーディオデータをオーディオデコーダ75に供給するか,または、圧縮オーディオ信号インターフェース52に供給する。
オーディオデコーダ75は、オーディオストリームをデコードし、デコードしたオーディオストリームのデータをミキシング処理部97に供給する。
また、スイッチ32により選択されたサウンドデータは、バッファ95に供給され、バッファリングされる。バッファ95は、所定のタイミングでサウンドデータをミキシング処理部97に供給する。サウンドデータは、この場合、メニュー選択などによる効果音のデータである。ミキシング処理部97は、オーディオデコーダ75から供給されたオーディオデータと、バッファ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からのインタラクティブグラフィックスプレーンを合成し、ビデオ信号として出力する。
これらのスイッチ57乃至59、並びにスイッチ77は、ユーザインターフェースを介するユーザからの選択、または、対象となるデータが含まれるファイル側に基づいて、スイッチを切り替える。例えば、サブClip AVストリームファイルのみにしか、オーディオストリームが含まれていない場合、スイッチ59はサブ側にスイッチを切り替える。
オーディオエンコーダ41は、ミキシング処理部97から供給された非圧縮のオーディオデータをエンコードし、圧縮オーディオ信号インターフェース52に供給する。ビデオエンコーダ42は、ビデオデータ処理部96から供給された非圧縮のビデオ信号をエンコードし、圧縮ビデオ信号インターフェース54に供給する。D/A変換部43は、ミキシング処理部97から供給された非圧縮のオーディオデータをデジタル信号からアナログ信号に変換し、アナログオーディオ信号インターフェース55に供給する。D/A変換部44は、ビデオデータ処理部96から供給された非圧縮のビデオ信号をデジタル信号からアナログ信号に変換し、アナログビデオ信号インターフェース56に供給する。非圧縮オーディオ信号インターフェース51は、ミキシング処理部97から供給された非圧縮のオーディオデータを外部に出力する。圧縮オーディオ信号インターフェース52は、オーディオエンコーダ41またはスイッチ61から供給された圧縮オーディオ信号を外部に出力する。非圧縮ビデオ信号インターフェース53は、ビデオデータ処理部96から供給された非圧縮のビデオ信号を外部に出力する。圧縮ビデオ信号インターフェース54は、ビデオエンコーダ42から供給された圧縮ビデオ信号を外部に出力する。アナログオーディオ信号インターフェース55は、D/A変換部43から供給されたアナログオーディオ信号を外部に出力する。アナログビデオ信号インターフェース56は、D/A変換部44から供給されたアナログビデオ信号を外部に出力する。
次に、図38のフローチャートを参照して、オーディオストリーム#1に合成される他の音声データがあるか否かを示すフラグがIndexファイルのIndexes()に記載されているデータを再生装置20-1が再生する場合に実行される、再生処理1について説明する。
ステップS1において、コントローラ34−1は、再生装置20−1から出力されるのは符号化ストリームであるか否かを判断する。ステップS1において、再生装置20−1から出力されるのは符号化ストリームではないと判断された場合、処理は、後述するステップS24に進む。
ステップS1において、再生装置20−1から出力されるのは符号化ストリームであると判断された場合、ステップS2において、コントローラ34−1は、スイッチ32から供給されるIndexファイルを読み取る。
ステップS3において、コントローラ34−1は、indexes()に記載されている、サウンドデータが存在することを示すフラグis_MixAppまたはis_MixApp_2が1となっているか否かを判断する。
audio_stream_idで与えられるオーディオストリーム#1に加えて、audio_stream_id2で与えられるオーディオストリーム#2も存在しているコンテンツには、サウンドデータが存在するか否かを示すフラグであるis_MixApp_2に加えて、オーディオストリーム#2が存在するか否かを示すフラグであるis_MixApp_1が記載されている。しかしながら、再生装置20-1は、audio_stream_id2で与えられるオーディオストリーム#2を再生する機能を有していない。したがって、再生装置20-1は、ステップS3において、is_MixAppまたはis_MixApp_2で示されるフラグの値のみを検出し、読み出したデータの中にis_MixApp_1で示されるフラグが記載されていても、そのフラグは参照しない。すなわち、再生装置20において、フラグis_MixApp_1の値は、スイッチ61の制御に影響を及ぼさない。
ステップS3において、フラグis_MixAppまたはis_MixApp_2が1となっていると判断された場合、処理は、後述するステップS14に進む。
ステップS3において、フラグis_MixAppまたはis_MixApp_2が1ではないと判断された場合、このIndexファイルに関連するデータには、再生装置20−1においてオーディオストリーム#1に合成することが可能なサウンドデータが含まれていないので、ステップS4において、コントローラ34−1は、このIndexファイルに関連するオーディオデータを圧縮符号化オーディオ信号の出力端子である圧縮オーディオ信号インターフェース52に供給するように、スイッチ61を制御する。
ステップS5において、コントローラ34−1は、例えば、ユーザの操作入力などによって発生されるコマンドにより、Playlistファイル(例えば、図13の×××××.mpls)の読み出しが指令されたか否かを判断する。ステップS5において、Playlistファイルの読み出しが指令されていないと判断された場合、Playlistファイルの読み出しが指令されたと判断されるまで、ステップS5の処理が繰り返される。
ステップS5において、Playlistファイルの読み出しが指令されたと判断された場合、ステップS6において、コントローラ34−1は、スイッチ32から供給されるPlaylistファイルを読み出す。
ステップS7において、コントローラ34−1は、そのPlayListファイルに記載されているPlayList(図13のPlylist())により指定されるPlayItemを読み出し、対応するメインClip AV Stream、サブClip AV Stream、およびテキストサブタイトルデータを読み出してスイッチ32に供給する。
ステップS8において、コントローラ34−1は、読み出したデータを対応するバッファに供給してバッファリングする。具体的には、コントローラ34−1は、バックグラウンドイメージデータをバッファ51に供給し、メインClip AV Streamのデータをバッファ52に供給し、サブClip AV Streamのデータをバッファ53に供給し、Text-STのデータをバッファ54に供給するようスイッチ32を切り替える。そして、バッファ51乃至54は、供給されたデータをそれぞれバッファリングする。具体的には、バッファ51は、バックグラウンドイメージデータをバッファリングし、バッファ52は、メインClip AV Streamのデータをバッファリングし、バッファ53は、サブClip AV Streamのデータをバッファリングし、バッファ54は、Text-STデータをバッファリングする。
ステップS9において、コントローラ34−1は、PIDフィルタ55、56およびスイッチ67乃至59を制御し、映像系データを所定のデコーダでデコードし、ビデオデータ処理部96にて処理する。
ステップS10において、ビデオエンコーダ42は、ビデオデータ処理部96から供給された処理済のビデオデータをエンコードする。
ステップS11において、圧縮符号化オーディオ信号の出力端子である圧縮オーディオ信号インターフェース52は、スイッチ61から出力される符号化オーディオデータであるオーディオストリーム#1を外部に出力し、圧縮符号化ビデオ信号の出力端子である圧縮ビデオ信号インターフェース54は、エンコードされた符号化ビデオデータを外部に出力する。
すなわち、ステップS11において圧縮オーディオ信号インターフェース52から出力される圧縮符号化オーディオデータは、再生装置20−1のAVデコーダ部33−1において、復号処理が施されていないため、音質が劣化していない。
ステップS12において、コントローラ34−1は、PlayListを参照し、再生するべき次のPlayItemがあるか否かを判断する。ステップS12において、次のPlayItemがあると判断された場合、処理は、ステップS7に戻り、それ以降の処理が繰り返される。
ステップS12において、次のPlayItemがないと判断された場合、ステップS13において、コントローラ34−1は、再生終了であるか否かを判断する。ステップS13において、再生終了ではないと判断された場合、処理は、ステップS5に戻り、それ以降の処理が繰り返される。ステップS13において、再生終了であると判断された場合、処理は、終了される。
ステップS3において、フラグis_MixAppまたはis_MixApp_2が1となっていると判断された場合、このIndexファイルに関連するデータには、再生装置20−1においてオーディオストリーム#1に合成することが可能なサウンドデータが含まれているので、ステップS14において、コントローラ34−1は、このIndexファイルに関連するオーディオストリーム#1をオーディオデコーダ75に供給するように、スイッチ61を制御する。
ステップS15乃至ステップS19において、ステップS5乃至ステップS9と基本的に同様の処理が実行される。すなわち、PlayListの読み出しが指令されたか否かが判断され、読み出しが指令されたと判断された場合、PlayListが読み出されて、PlayListにより指定されるPlayItemが読み出される。そして、読み出されたPlayItemに対応するClipのデータ(AV Stream)が対応するバッファに供給されてバッファリングされ、PIDフィルタおよび各スイッチが制御されて、バッファリングされた映像系データがそれぞれ所定のデコーダにてデコードされて、ビデオデータ処理部96において処理される。
ステップS20において、コントローラ34−1は、PIDフィルタおよび各スイッチを制御し、バッファ53にバッファリングされたオーディオストリーム#1を、スイッチ61を介してオーディオデコーダ75に供給してデコードし、ミキシング処理部97を制御して、バッファ95に保持されているサウンドデータとの合成処理を適宜実行させる。
すなわち、スイッチ61が制御されて、オーディオストリーム#1がオーディオデコーダ75によりデコードされるようになされているので、オーディオストリーム#1とサウンドデータを合成することが可能となる。
ステップS21において、オーディオエンコーダ41は、合成処理が施された非圧縮のオーディオデータをエンコードし、圧縮オーディオ信号インターフェース52に供給して外部出力させ、ビデオエンコーダ42はビデオデータ処理部96により処理された非圧縮のビデオデータをエンコードして、圧縮ビデオ信号インターフェース54に供給して外部に出力させる。
ステップS22において、コントローラ34−1は、PlayListを参照し、再生するべき次のPlayItemがあるか否かを判断する。ステップS22において、次のPlayItemがあると判断された場合、処理は、ステップS17に戻り、それ以降の処理が繰り返される。
ステップS22において、次のPlayItemがないと判断された場合、ステップS23において、コントローラ34−1は、再生終了であるか否かを判断する。ステップS23において、再生終了ではないと判断された場合、処理は、ステップS15に戻り、それ以降の処理が繰り返される。ステップS23において、再生終了であると判断された場合、処理は、終了される。
ステップS1において、出力されるのは符号化ストリームではないと判断された場合、ステップS24において、コントローラ34−1は、供給されたオーディオ#1をオーディオデコーダ75に供給するように、スイッチ61を制御する。
すなわち、出力されるのは符号化ストリームではない場合、オーディオストリーム#1に合成されるサウンドデータがあるか否かにかかわらず、オーディオストリーム#1はデコードされる。
ステップS25乃至ステップS30において、ステップS15乃至ステップS20と基本的に同様の処理が実行される。すなわち、PlayListの読み出しが指令されたか否かが判断され、読み出しが指令されたと判断された場合、PlayListが読み出されて、PlayListにより指定されるPlayItemが読み出される。そして、読み出されたPlayItemに対応するClipのデータ(AV Stream)が対応するバッファに供給されてバッファリングされ、PIDフィルタおよび各スイッチが制御されて、バッファリングされた映像系データがそれぞれ所定のデコーダにてデコードされて、ビデオデータ処理部96において処理される。そして、PIDフィルタおよび各スイッチが制御され、バッファ53にバッファリングされたオーディオストリーム#1がスイッチ61を介してオーディオデコーダ75に供給されてデコードされ、バッファ95にサウンドデータが供給されて存在する場合は、ミキシング処理部97の処理により、適宜合成処理が実行される。
ステップS31において、非圧縮オーディオ信号インターフェース51は、ミキシング処理部97から供給された処理済の非圧縮のビデオデータを外部に出力し、非圧縮ビデオ信号インターフェース53は、ビデオデータ処理部96から供給された非圧縮のオーディオデータを外部に出力する。または、D/A変換部43は、非圧縮のオーディオデータをD/A変換し、アナログオーディオ信号インターフェース55は、アナログ信号を外部に出力し、D/A変換部44は、非圧縮のビデオデータをD/A変換し、アナログビデオ信号インターフェース56は、アナログ信号を外部に出力する。
ステップS32において、コントローラ34−1は、PlayListを参照し、再生するべき次のPlayItemがあるか否かを判断する。ステップS32において、次のPlayItemがあると判断された場合、処理は、ステップS27に戻り、それ以降の処理が繰り返される。
ステップS32において、次のPlayItemがないと判断された場合、ステップS33において、コントローラ34−1は、再生終了であるか否かを判断する。ステップS33において、再生終了ではないと判断された場合、処理は、ステップS25に戻り、それ以降の処理が繰り返される。ステップS33において、再生終了であると判断された場合、処理は、終了される。
このような処理により、再生装置20−1は、Indexes()に記載されているフラグを参照して、このIndexes()により参照されるデータにサウンドデータが含まれていない場合は、オーディオストリーム#1をデコードせずに圧縮符号化されたデータのまま外部に出力するので、必要以上に音質を劣化させることを防止することができる。
なお、この処理においては、処置の最初において、出力される信号が圧縮符号化データであるか非圧縮のデータであるかを判断し、その後、フラグを参照して、合成処理が実行されるか否かを判断するものとしているが、例えば、まず、フラグを参照して、合成処理が実行されるか否かを判断し、その後、出力される信号が圧縮符号化データであるか非圧縮のデータであるかを判断するようにしても、判断する処理の順番が異なるだけで、実質的に同様の処理が実行されるのは言うまでもない。
次に、図39のフローチャートを参照して、オーディオストリーム#1に合成される他の音声データがあるか否かを示すフラグがPlayListに記載されているデータを再生装置20-1が再生する場合に実行される、再生処理2について説明する。
ステップS61において、コントローラ34−1は、再生装置20−1から出力されるのは符号化ストリームであるか否かを判断する。ステップS61において、再生装置20−1から出力されるのは符号化ストリームではないと判断された場合、処理は、後述するステップS82に進む。
ステップS61において、再生装置20−1から出力されるのは符号化ストリームであると判断された場合、ステップS62において、コントローラ34−1は、スイッチ32から供給されるIndexファイルを読み取る。
ステップS63において、コントローラ34−1は、例えば、ユーザの操作入力などによって発生されるコマンドにより、Playlistファイル(例えば、図13の×××××.mpls)の読み出しが指令されたか否かを判断する。ステップS63において、Playlistファイルの読み出しが指令されていないと判断された場合、Playlistファイルの読み出しが指令されたと判断されるまで、ステップS63の処理が繰り返される。
ステップS63において、Playlistファイルの読み出しが指令されたと判断された場合、ステップS64において、コントローラ34−1は、スイッチ32から供給されるPlaylistファイルを読み出す。
ステップS65において、コントローラ34−1は、PlayListファイルに記載されている、すなわち、AppInfoPlayList()またはPlayList()に記載されている、サウンドデータが存在することを示すフラグis_MixAppまたはis_MixApp_2が1となっているか否かを判断する。
audio_stream_idで与えられるオーディオストリーム#1に加えて、audio_stream_id2で与えられるオーディオストリーム#2も存在しているコンテンツには、サウンドデータが存在するか否かを示すフラグであるis_MixApp_2に加えて、オーディオストリーム#2が存在するか否かを示すフラグであるis_MixApp_1が記載されている。しかしながら、再生装置20-1は、audio_stream_id2で与えられるオーディオストリーム#2を再生する機能を有していないので、is_MixApp_2で示されるフラグの値のみを検出し、読み出したデータの中にis_MixApp_1で示されるフラグが記載されていても、そのフラグは参照しないようになされている。
ステップS65において、フラグis_MixAppまたはis_MixApp_2が1となっていると判断された場合、処理は、後述するステップS74に進む。
ステップS65において、フラグis_MixAppまたはis_MixApp_2が1となっていないと判断された場合、このPlayListファイルに関連するオーディオデータには、再生装置20−1においてオーディオストリーム#1に合成することが可能なサウンドデータが含まれていないので、ステップS66において、コントローラ34−1は、このPlaylistファイルに関連するオーディオデータを圧縮符号化オーディオ信号の出力端子である圧縮オーディオ信号インターフェース52に供給するように、スイッチ61を制御する。
ステップS67乃至ステップS71において、図38のステップS7乃至ステップS11と基本的に同様の処理が実行される。
すなわち、PlayListにより指定されるPlayItemが読み出されて、対応するClipのデータ(AV Stream)が読み出されて、スイッチ32に供給され、読み出されたデータが対応するバッファに供給されてバッファリングされる。そして、PIDフィルタ55、56およびスイッチ67乃至59が制御されて、映像系データが所定のデコーダでデコードされ、ビデオデータ処理部96にて処理され処理済のビデオデータがエンコードされる。そして、スイッチ61から出力される符号化オーディオデータが圧縮オーディオ信号インターフェース52から外部に出力され、エンコードされた符号化ビデオデータが圧縮ビデオ信号インターフェース54から外部に出力される。
すなわち、ステップS71において圧縮オーディオ信号インターフェース52から出力される圧縮符号化オーディオデータは、再生装置20−1のAVデコーダ部33−1において、復号処理が施されていないため、音質が劣化していない。
ステップS72において、コントローラ34−1は、PlayListを参照し、再生するべき次のPlayItemがあるか否かを判断する。ステップS72において、次のPlayItemがあると判断された場合、処理は、ステップS67に戻り、それ以降の処理が繰り返される。
ステップS72において、次のPlayItemがないと判断された場合、ステップS73において、コントローラ34−1は、再生終了であるか否かを判断する。ステップS73において、再生終了ではないと判断された場合、処理は、ステップS63に戻り、それ以降の処理が繰り返される。すなわち、次に読み出されたPlayListに記載されているフラグの値により、スイッチ61の制御は変更される可能性がある。ステップS73において、再生終了であると判断された場合、処理は、終了される。
ステップS65において、フラグis_MixAppまたはis_MixApp_2が1となっていると判断された場合、このPlayListファイルに関連するデータには、再生装置20−1においてオーディオストリーム#1に合成することが可能なサウンドデータが含まれているので、ステップS74において、コントローラ34−1は、このPlayListファイルに関連するオーディオデータをデコードするデコーダであるオーディオデコーダ75に供給するように、スイッチ61を制御する。
ステップS75乃至ステップS79において、図38のステップS17乃至ステップS21と基本的に同様の処理が実行される。すなわち、PlayListにより指定されるPlayItemが読み出されて、対応するClipのデータ(AV Stream)が読み出され、読み出されたデータが対応するバッファに供給されてバッファリングされ、PIDフィルタおよび各スイッチが制御されて、バッファリングされた映像系データがそれぞれ所定のデコーダにてデコードされて、ビデオデータ処理部96において処理される。
そして、PIDフィルタおよび各スイッチが制御されて、バッファ53にバッファリングされたオーディオストリーム#1がスイッチ61を介して、オーディオデコーダ75に供給されてデコードされ、ミキシング処理部97の処理により、バッファ95に保持されているサウンドデータとの合成処理が適宜実行される。すなわち、スイッチ61が制御されて、オーディオストリーム#1がオーディオデコーダ75によりデコードされるようになされているので、オーディオストリーム#1とサウンドデータを合成することが可能となる。
そして、合成処理が施された非圧縮のオーディオデータがエンコードされて、圧縮オーディオ信号インターフェース52から外部出力され、ビデオデータ処理部96により処理された非圧縮のビデオデータがエンコードされて、圧縮ビデオ信号インターフェース54から外部に出力される。
ステップS80において、コントローラ34−1は、PlayListを参照し、再生するべき次のPlayItemがあるか否かを判断する。ステップS80において、次のPlayItemがあると判断された場合、処理は、ステップS75に戻り、それ以降の処理が繰り返される。
ステップS80において、次のPlayItemがないと判断された場合、ステップS81において、コントローラ34−1は、再生終了であるか否かを判断する。ステップS81において、再生終了ではないと判断された場合、処理は、ステップS63に戻り、それ以降の処理が繰り返される。すなわち、次に読み出されたPlayListに記載されているフラグの値により、スイッチ61の制御は変更される可能性がある。ステップS81において、再生終了であると判断された場合、処理は、終了される。
ステップS61において、出力されるのは符号化ストリームではないと判断された場合、ステップS82乃至ステップS91において、図38のステップS24乃至ステップS33と基本的に同様の処理が実行される。
すなわち、出力されるのは符号化ストリームではない場合、オーディオストリーム#1に合成されるサウンドデータがあるか否かにかかわらず、オーディオストリーム#1はデコードされるので、供給されたオーディオストリーム#1がオーディオデコーダ75に供給されるように、スイッチ61が制御される。そして、PlayListの読み出しが指令されたか否かが判断され、読み出しが指令されたと判断された場合、PlayListが読み出されて、PlayListにより指定されるPlayItemが読み出されて対応するClipのデータが読み出される。そして、読み出されたデータが対応するバッファに供給されてバッファリングされ、PIDフィルタおよび各スイッチが制御されて、バッファリングされた映像系データがそれぞれ所定のデコーダにてデコードされて、ビデオデータ処理部96において処理される。そして、PIDフィルタおよび各スイッチが制御され、バッファ53にバッファリングされたオーディオストリーム#1がスイッチ61を介してオーディオデコーダ75に供給されてデコードされ、バッファ95にサウンドデータが供給されて存在する場合は、ミキシング処理部97の処理により、適宜合成処理が実行される。
そして、非圧縮オーディオ信号インターフェース51は、ミキシング処理部97から供給された処理済の非圧縮のビデオデータを外部に出力し、非圧縮ビデオ信号インターフェース53は、ビデオデータ処理部96から供給された非圧縮のオーディオデータを外部に出力する。または、D/A変換部43は、非圧縮のオーディオデータをD/A変換し、アナログオーディオ信号インターフェース55は、アナログ信号を外部に出力し、D/A変換部44は、非圧縮のビデオデータをD/A変換し、アナログビデオ信号インターフェース56は、アナログ信号を外部に出力する。
そして、再生するべき次のPlayItemがあるか否かが判断され、次のPlayItemがあると判断された場合、処理は、ステップS85に戻り、それ以降の処理が繰り返される。次のPlayItemがないと判断された場合、再生終了であるか否かが判断され、再生終了ではないと判断された場合、処理は、ステップS83に戻り、それ以降の処理が繰り返され再生終了であると判断された場合、処理は、終了される。
このような処理により、再生装置20−1は、Playlistファイルに記載されているフラグを参照して、このPlaylistにより参照されるデータにサウンドデータが含まれていない場合は、オーディオストリーム#1をデコードせずに圧縮符号化されたデータのまま外部に出力するので、必要以上に音質を劣化させることを防止することができる。また、フラグをPlaylistファイル内のAppInfoPlayList()またはPlayList()に記載するようにした場合、サウンドデータが含まれているか否かをPlayListごとに設定することが可能となるので、オーサリングの自由度が増す。
なお、この処理においても、処置の最初において、出力される信号が圧縮符号化データであるか非圧縮のデータであるかを判断し、その後、フラグを参照して、合成処理が実行されるか否かを判断するものとしているが、例えば、まず、フラグを参照して、合成処理が実行されるか否かを判断し、その後、出力される信号が圧縮符号化データであるか非圧縮のデータであるかを判断するようにしても、判断する処理の順番が異なるだけで、実質的に同様の処理が実行されるのは言うまでもない。
次に、図40のフローチャートを参照して、オーディオストリーム#1に合成される他の音声データがあるか否かを示すフラグがPlayItemに記載されているデータを再生装置20-1が再生する場合に実行される、再生処理3について説明する。
ステップS131において、コントローラ34−1は、再生装置20−1から出力されるのは符号化ストリームであるか否かを判断する。ステップS131において、再生装置20−1から出力されるのは符号化ストリームではないと判断された場合、処理は、後述するステップS151に進む。
ステップS131において、再生装置20−1から出力されるのは符号化ストリームであると判断された場合、ステップS132において、コントローラ34−1は、スイッチ32から供給されるIndexファイルを読み取る。
ステップS133において、コントローラ34−1は、例えば、ユーザの操作入力などによって発生されるコマンドにより、Playlistファイル(例えば、図13の×××××.mpls)の読み出しが指令されたか否かを判断する。ステップS133において、Playlistファイルの読み出しが指令されていないと判断された場合、Playlistファイルの読み出しが指令されたと判断されるまで、ステップS133の処理が繰り返される。
ステップS133において、Playlistファイルの読み出しが指令されたと判断された場合、ステップS134において、コントローラ34−1は、スイッチ32から供給されるPlaylistファイルを読み出す。
ステップS135において、コントローラ34−1は、そのPlayListファイルに記載されているPlayList(図13のPlylist())により指定されるPlayItemを読み出す。そして、コントローラ34−1は、PlayItemに基づいて、再生データ取得部31を制御して、対応するメインClip AV Stream、サブClip AV Stream、およびテキストサブタイトルデータを読み出してスイッチ32に供給する。
ステップS136において、コントローラ34−1は、PlayItemに記載されている、サウンドデータが存在することを示すフラグis_MixAppまたはis_MixApp_2が1となっているか否かを判断する。
audio_stream_idで与えられるオーディオストリーム#1に加えて、audio_stream_id2で与えられるオーディオストリーム#2も存在しているコンテンツには、サウンドデータが存在するか否かを示すフラグであるis_MixApp_2に加えて、オーディオストリーム#2が存在するか否かを示すフラグであるis_MixApp_1が記載されている。しかしながら、再生装置20-1は、audio_stream_id2で与えられるオーディオストリーム#2を再生する機能を有していないため、ステップS136において、is_MixAppまたはis_MixApp_2で示されるフラグの値のみを検出し、読み出したデータの中にis_MixApp_1で示されるフラグが記載されていても、そのフラグは参照しない。
ステップS136において、フラグis_MixAppまたはis_MixApp_2が1となっていると判断された場合、処理は、後述するステップS144に進む。
ステップS136において、フラグis_MixAppまたはis_MixApp_2が1ではないと判断された場合、このIndexファイルに関連するオーディオデータには、再生装置20−1においてオーディオストリーム#1に合成することが可能なサウンドデータが含まれていないので、ステップS137において、コントローラ34−1は、このPlayItemに関連するオーディオストリーム#1を圧縮符号化オーディオ信号の出力端子である圧縮オーディオ信号インターフェース52に供給するように、スイッチ61を制御する。
ステップS137乃至ステップS141において、図38のステップS8乃至ステップS11と基本的に同様の処理が実行される。
すなわち、読み出されたデータが対応するバッファに供給されてバッファリングされ、PIDフィルタ55、56およびスイッチ67乃至59が制御されて、映像系データが所定のデコーダでデコードされ、ビデオデータ処理部96にて処理され処理済のビデオデータがエンコードされる。そして、スイッチ61から出力される符号化オーディオデータであるオーディオストリーム#1が圧縮オーディオ信号インターフェース52から外部に出力され、エンコードされた符号化ビデオデータが圧縮ビデオ信号インターフェース54から外部に出力される。
すなわち、ステップS141において圧縮オーディオ信号インターフェース52から出力される圧縮符号化オーディオデータであるオーディオストリーム#1は、再生装置20−1のAVデコーダ部33−1において、復号処理が施されていないため、音質が劣化していない。
ステップS142において、コントローラ34−1は、PlayListを参照し、再生するべき次のPlayItemがあるか否かを判断する。ステップS142において、次のPlayItemがあると判断された場合、処理は、ステップS135に戻り、それ以降の処理が繰り返される。すなわち、次に読み出されたPlayItemに記載されているフラグの値により、スイッチ61の制御は変更される可能性がある。
ステップS142において、次のPlayItemがないと判断された場合、ステップS143において、コントローラ34−1は、再生終了であるか否かを判断する。ステップS143において、再生終了ではないと判断された場合、処理は、ステップS133に戻り、それ以降の処理が繰り返される。ステップS143において、再生終了であると判断された場合、処理は、終了される。
ステップS136において、フラグis_MixAppまたはis_MixApp_2が1となっていると判断された場合、このPlayItemに関連するデータには、再生装置20−1においてオーディオストリーム#1に合成することが可能なサウンドデータが含まれているので、ステップS144において、コントローラ34−1は、このPlayItemに関連するオーディオストリーム#1をオーディオデコーダ75に供給するように、スイッチ61を制御する。
ステップS145乃至ステップS148において、図38のステップS18乃至ステップS21と基本的に同様の処理が実行される。すなわち、読み出されたデータが対応するバッファに供給されてバッファリングされ、PIDフィルタおよび各スイッチが制御されて、バッファリングされた映像系データがそれぞれ所定のデコーダにてデコードされて、ビデオデータ処理部96において処理される。
そして、PIDフィルタおよび各スイッチが制御されて、バッファ53にバッファリングされたオーディオストリーム#1が、スイッチ61を介してオーディオデコーダ75に供給されてデコードされ、ミキシング処理部97の処理により、バッファ95に保持されているサウンドデータとの合成処理が適宜実行される。すなわち、スイッチ61が制御されて、オーディオストリーム#1がオーディオデコーダ75によりデコードされるようになされているので、オーディオストリーム#1とサウンドデータを合成することが可能となる。
そして、合成処理が施された非圧縮のオーディオデータがエンコードされて、圧縮オーディオ信号インターフェース52から外部出力され、ビデオデータ処理部96により処理された非圧縮のビデオデータがエンコードされて、圧縮ビデオ信号インターフェース54から外部に出力される。
ステップS149において、コントローラ34−1は、PlayListを参照し、再生するべき次のPlayItemがあるか否かを判断する。ステップS149において、次のPlayItemがあると判断された場合、処理は、ステップS135に戻り、それ以降の処理が繰り返される。すなわち、次に読み出されたPlayItemに記載されているフラグの値により、スイッチ61の制御は変更される可能性がある。
ステップS149において、次のPlayItemがないと判断された場合、ステップS150において、コントローラ34−1は、再生終了であるか否かを判断する。ステップS150において、再生終了ではないと判断された場合、処理は、ステップS133に戻り、それ以降の処理が繰り返される。ステップS150において、再生終了であると判断された場合、処理は、終了される。
ステップS131において、出力されるのは符号化ストリームではないと判断された場合、ステップS151乃至ステップS160において、図38のステップS24乃至ステップS33と基本的に同様の処理が実行される。
すなわち、出力されるのは符号化ストリームではない場合、オーディオストリーム#1に合成されるサウンドデータがあるか否かにかかわらず、オーディオストリーム#1はデコードされるので、供給されたオーディオストリーム#1がオーディオデコーダ75に供給されるように、スイッチ61が制御される。そして、PlayListの読み出しが指令されたか否かが判断され、読み出しが指令されたと判断された場合、PlayListが読み出されて、PlayListにより指定されるPlayItemが読み出されて対応するClipのデータ(AV Stream)が読み出される。そして、読み出されたデータが対応するバッファに供給されてバッファリングされ、PIDフィルタおよび各スイッチが制御されて、バッファリングされた映像系データがそれぞれ所定のデコーダにてデコードされて、ビデオデータ処理部96において処理される。そして、PIDフィルタおよび各スイッチが制御され、バッファ53にバッファリングされたオーディオストリーム#1がスイッチ61を介してオーディオデコーダ75に供給されてデコードされ、バッファ95にサウンドデータが供給されて存在する場合は、ミキシング処理部97の処理により、適宜合成処理が実行される。
そして、非圧縮オーディオ信号インターフェース51は、ミキシング処理部97から供給された処理済の非圧縮のビデオデータを外部に出力し、非圧縮ビデオ信号インターフェース53は、ビデオデータ処理部96から供給された非圧縮のオーディオデータを外部に出力する。または、D/A変換部43は、非圧縮のオーディオデータをD/A変換し、アナログオーディオ信号インターフェース55は、アナログ信号を外部に出力し、D/A変換部44は、非圧縮のビデオデータをD/A変換し、アナログビデオ信号インターフェース56は、アナログ信号を外部に出力する。
そして、再生するべき次のPlayItemがあるか否かが判断され、次のPlayItemがあると判断された場合、処理は、ステップS154に戻り、それ以降の処理が繰り返される。次のPlayItemがないと判断された場合、再生終了であるか否かが判断され、再生終了ではないと判断された場合、処理は、ステップS152に戻り、それ以降の処理が繰り返され、再生終了であると判断された場合、処理は、終了される。
このような処理により、再生装置20−1は、PlayItemに記載されているフラグを参照して、このPlayItemにより参照されるデータにサウンドデータが含まれていない場合は、オーディオストリーム#1をデコードせずに圧縮符号化されたデータのまま外部に出力するので、必要以上に音質を劣化させることを防止することができる。また、フラグがPlayItemに記載されているので、サウンドデータが含まれているか否かをPlayItemごとに設定することが可能となるので、オーサリングの自由度が更に増す。
なお、この処理においても、処置の最初において、出力される信号が圧縮符号化データであるか非圧縮のデータであるかを判断し、その後、フラグを参照して、合成処理が実行されるか否かを判断するものとしているが、例えば、まず、フラグを参照して、合成処理が実行されるか否かを判断し、その後、出力される信号が圧縮符号化データであるか非圧縮のデータであるかを判断するようにしても、判断する処理の順番が異なるだけで、実質的に同様の処理が実行されるのは言うまでもない。
次に、本発明を適用した再生装置20の第2の実施例である、オーディオストリーム#1およびオーディオストリーム#2の2つの音声ストリームの再生が可能な再生装置20−2について説明する。図41は、本発明を適用した再生装置20−2の構成例を示すブロック図である。この再生装置20−2は、上述したメインパスとサブパスを有するPlayListを再生する再生装置20−2である。再生装置20−2は、audio_stream_idで与えられるオーディオストリーム#1に対して、audio_stream_id2で与えられるオーディオストリーム#2とサウンドデータを合成して再生することができる。
なお、図37を用いて説明した再生装置20-1と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
すなわち、再生装置20−2には、再生装置20-1と同様にして、再生データ取得部31、スイッチ32、オーディオエンコーダ41、ビデオエンコーダ42、D/A変換部43、D/A変換部44、非圧縮オーディオ信号インターフェース51、圧縮オーディオ信号インターフェース52、非圧縮ビデオ信号インターフェース53、圧縮ビデオ信号インターフェース54、アナログオーディオ信号インターフェース55、および、アナログビデオ信号インターフェース56が設けられ、再生装置20-1のAVデコーダ部33−1、およびコントローラ34−1に代わって、AVデコーダ部33−2、およびコントローラ34−2が設けられている。
図41の例の場合も図37を用いて説明した場合と同様にして、コントローラ34−2は、再生データ取得部31を介してIndexファイルを読み出し、発生されるコマンドに基づいて、PlayListファイルを読み出し、PlayListファイルの情報に基づいて、PlayItemを読み出して、対応するClip(AVストリームやAVデータなど)を読み出す。ユーザは、ユーザインターフェースを用いて、コントローラ34−2に対し、音声や字幕などの切り替えの指令を行うことができる。また、コントローラ34−2には、再生装置20の言語設定の初期情報が図示せぬ記憶部などから供給される。
また、コントローラ34−2は、Indexファイル,PlayListファイル(AppInfoPlayList()、PlayList()、または、PlayItem)のうちのいずれかに記載される、オーディオストリーム#1に合成可能なサウンドデータの有無を示すフラグであるis_MixAppまたはis_MixApp_2の値、および、オーディオストリーム#1に合成可能なオーディオストリーム#2有無を示すフラグであるis_MixApp_1を基に、スイッチ61を制御する。
AVデコーダ部33−2には、AVデコーダ部33−1と同様に、バッファ51乃至54、PIDフィルタ55、PIDフィルタ56、スイッチ57乃至58、スイッチ61、スイッチ102、バックグラウンドデコーダ71、ビデオデコーダ72、プレゼンテーショングラフィックスデコーダ73、インタラクティブグラフィックスデコーダ74、Text-STコンポジション76、スイッチ77、バックグラウンドプレーン生成部91、ビデオプレーン生成部92、プレゼンテーショングラフィックスプレーン生成部93、インタラクティブグラフィックスプレーン生成部94、バッファ95、ビデオデータ処理部96、およびミキシング処理部97が設けられ、スイッチ59に代わってスイッチ101が設けられ、オーディオデコーダ75に代わって、1stオーディオデコーダ75−1が設けられ、新たに、2ndオーディオデコーダ75−2、およびミキシング処理部102が設けられている。
1stオーディオデコーダ75−1は、オーディオストリーム#1をデコードするためのものであり、2ndオーディオデコーダ75−2は、オーディオストリーム#2をデコードするためのものである。具体的には、図25のSTN_table()において、audio_stream_idで与えられるオーディオストリームをデコードするためのものが1stオーディオデコーダ75−1であり、audio_stream_id2で与えられるオーディオストリームをデコードするためのものが2ndオーディオデコーダ75−2である。
このように、再生装置20−2は、2つのオーディオストリームをデコードするために、2つのオーディオデコーダ(1stオーディオデコーダ75−1、2ndオーディオデコーダ75−2)を有している。
コントローラ34−2により読み出されたファイルデータは、図示せぬ復調、ECC復号部により、復調され、復調された多重化ストリームに誤り訂正が施される。スイッチ32は、復調され、誤り訂正が施されたデータを、コントローラ34−2からの制御に基づいて、ストリームの種類ごとに選択し、対応するバッファ51乃至54に供給する。
また、メインClipおよびサブClipに含まれるAV Streamのストリームの形式や、再生データ取得部31がデータを読み出すときの方法(時分割であっても、プリロードしても良い)は、上述した場合と同様であることは言うまでもない。
メインClip用リードバッファであるバッファ52から読み出されたストリームデータは、所定のタイミングで、後段のPID(パケットID)フィルタ55へ出力される。このPIDフィルタ55は、入力されたメインClipをPID(パケットID)に応じて、後段の各エレメンタリストリームのデコーダへ振り分けて出力する。すなわち、PIDフィルタ55は、ビデオストリームをビデオデコーダ72に供給し、プレゼンテーショングラフィックスストリームをプレゼンテーショングラフィックスデコーダ73への供給元となるスイッチ57に供給し、インタラクティブグラフィックスストリームをインタラクティブグラフィックスデコーダ74への供給元となるスイッチ58に供給し、オーディオストリームを、スイッチ61と2ndオーディオデコーダ75−2への供給元となるスイッチ101に供給する。
ここで、スイッチ61に供給され、圧縮オーディオ信号インターフェース52から出力されるか、または、1stオーディオデコーダ75−1へ入力されるオーディオストリームは、メインClipまたはサブClipのどちらかから分離されたストリームである。また、同様に、2ndオーディオデコーダ75−2へ入力されるオーディオストリームも、メインClipまたはサブClipのどちらかから分離されたストリームである。例えば、メインClipにオーディオストリーム#1とオーディオストリーム#2とが含まれていた場合、PIDフィルタ55は、オーディオストリームのPIDに基づいて、オーディオストリーム#1とオーディオストリーム#2とをフィルタリングし、スイッチ101に供給する。
再生装置20−2においては、ビデオデータ、ビットマップ字幕データ、インタラクティブグラフィックスデータに関しては、再生装置20-1と同様にして再生処理を行うようになされている。
スイッチ101は、PIDフィルタ55から供給されたメインClipに含まれるオーディオストリームと、サブClip に含まれるオーディオストリームのうちのいずれか1つを選択し、選択したオーディオストリームを、後段のスイッチ61、または、2ndオーディオデコーダ75−2に供給する。
スイッチ101は、例えば、PIDフィルタ55から供給されたオーディオストリーム#1を、スイッチ61に供給するようスイッチを選択し、PIDフィルタ55から供給されたオーディオストリーム#2を、2ndオーディオデコーダ75−2に供給するようスイッチを選択する。
スイッチ61は、コントローラ34−2の制御に基づいて、供給されたオーディオデータを、1stオーディオデコーダ75−1または圧縮オーディオ信号インターフェース52のいずれか一方に供給する
1stオーディオデコーダ75−1は、オーディオストリームをデコードし、デコードしたオーディオストリームのデータをミキシング処理部102に供給する。また、2ndオーディオデコーダ75−2は、オーディオストリームをデコードし、デコードしたオーディオストリームのデータをミキシング処理部102に供給する。
ここで、オーディオストリーム#1とオーディオストリーム#2とを重畳して再生するような場合(ユーザにより再生するオーディオストリームとして、2つのオーディオストリームが選択された場合)、1stオーディオデコーダ75−1によりデコードされたオーディオストリーム#1と、2ndオーディオデコーダ75−2によりデコードされたオーディオストリーム#2とが、ミキシング処理部102に供給される。
ミキシング処理部102は、1stオーディオデコーダ75−1からのオーディオデータと、2ndオーディオデコーダ75−2からのオーディオデータとをミキシング(重畳)し、後段のミキシング処理部97に出力する。なお、本実施の形態においては、1stオーディオデコーダ75−1から出力されるオーディオデータと2ndオーディオデコーダ75−2から出力されるオーディオデータとをミキシング(重畳)することを、合成するとも称する。すなわち、合成とは、2つのオーディオデータを、ミキシングすることも示すものとする。
また、スイッチ32により選択されたサウンドデータは、バッファ95に供給され、バッファリングされる。バッファ95は、所定のタイミングでサウンドデータをミキシング処理部97に供給する。サウンドデータは、この場合、メニュー選択などによる効果音のデータなど、ストリームとは独立して存在する音声データである。ミキシング処理部97は、ミキシング処理部102によりミキシングされたオーディオデータ(1stオーディオデコーダ75−1から出力されたオーディオデータと2ndオーディオデコーダ75−2から出力されたオーディオデータとがミキシングされたオーディオデータ)と、バッファ95から供給されてきたサウンドデータをミキシング(重畳、または合成)し、音声信号として出力する。
次に、図42のフローチャートを参照して、オーディオストリーム#1に合成される他の音声データがあるか否かを示すフラグがIndexファイルのIndexes()に記載されているデータを再生装置20-2が再生する場合に実行される、再生処理4について説明する。
ステップS201において、コントローラ34−2は、再生装置20−2から出力されるのは符号化ストリームであるか否かを判断する。ステップS201において、再生装置20−2から出力されるのは符号化ストリームではないと判断された場合、処理は、後述するステップS224に進む。
ステップS201において、再生装置20−2から出力されるのは符号化ストリームであると判断された場合、ステップS202において、コントローラ34−2は、スイッチ32から供給されるIndexファイルを読み取る。
ステップS203において、コントローラ34−2は、Indexファイルのindexes()に記載されている、メインのオーディオストリームであるオーディオストリーム#1に合成されるデータが存在することを示すフラグのうちのいずれかが1となっているか否か、具体的には、サウンドデータが存在することを示すフラグis_MixAppまたはis_MixApp_2、もしくは、オーディオストリーム#2が存在することを示すフラグis_MixApp_1のうちのいずれかが1となっているか否かを判断する。
audio_stream_idで与えられるオーディオストリーム#1に加えて、audio_stream_id2で与えられるオーディオストリーム#2も存在しているコンテンツには、サウンドデータが存在するか否かを示すフラグであるis_MixApp_2に加えて、オーディオストリーム#2が存在するか否かを示すフラグであるis_MixApp_1が記載されている。再生装置20−2は、audio_stream_id2で与えられるオーディオストリーム#2を再生する機能を有しているので、ステップS203において、is_MixAppまたはis_MixApp_2で示されるフラグの値のみならず、is_MixApp_1で示されるフラグの値を参照するようになされている。
ステップS203において、いずれかのフラグが1となっていると判断された場合、処理は、後述するステップS214に進む。
ステップS203において、いずれのフラグも1ではないと判断された場合、このIndexファイルに関連するデータには、再生装置20−2においてオーディオストリーム#1に合成することが可能なサウンドデータおよびオーディオストリーム#2が含まれていないので、ステップS204において、コントローラ34−2は、このIndexファイルに関連するオーディオデータを圧縮符号化オーディオ信号の出力端子である圧縮オーディオ信号インターフェース52に供給するように、スイッチ61を制御する。
ステップS205において、コントローラ34−2は、例えば、ユーザの操作入力などによって発生されるコマンドにより、Playlistファイル(例えば、図13の×××××.mpls)の読み出しが指令されたか否かを判断する。ステップS205において、Playlistファイルの読み出しが指令されていないと判断された場合、Playlistファイルの読み出しが指令されたと判断されるまで、ステップS205の処理が繰り返される。
ステップS205において、Playlistファイルの読み出しが指令されたと判断された場合、ステップS206において、コントローラ34−2は、スイッチ32から供給されるPlaylistファイルを読み出す。
ステップS207において、コントローラ34−2は、そのPlayListファイルに記載されているPlayList(図13のPlylist())により指定されるPlayItemを読み出し、対応するメインClip AV Stream、サブClip AV Stream、およびテキストサブタイトルデータを読み出してスイッチ32に供給する。
ステップS208において、コントローラ34−2は、読み出したデータを対応するバッファに供給してバッファリングする。具体的には、コントローラ34−2は、バックグラウンドイメージデータをバッファ51に供給し、メインClip AV Streamのデータをバッファ52に供給し、サブClip AV Streamのデータをバッファ53に供給し、Text-STのデータをバッファ54に供給するようスイッチ32を切り替える。そして、バッファ51乃至54は、供給されたデータをそれぞれバッファリングする。具体的には、バッファ51は、バックグラウンドイメージデータをバッファリングし、バッファ52は、メインClip AV Streamのデータをバッファリングし、バッファ53は、サブClip AV Streamのデータをバッファリングし、バッファ54は、Text-STデータをバッファリングする。
ステップS209において、コントローラ34−2は、PIDフィルタ55、56およびスイッチ67乃至59を制御し、映像系データを所定のデコーダでデコードし、ビデオデータ処理部96にて処理する。
ステップS210において、ビデオエンコーダ42は、ビデオデータ処理部96から供給された処理済のビデオデータをエンコードする。
ステップS211において、圧縮符号化オーディオ信号の出力端子である圧縮オーディオ信号インターフェース52は、スイッチ61から出力される符号化オーディオデータであるオーディオストリーム#1を外部に出力し、圧縮符号化ビデオ信号の出力端子である圧縮ビデオ信号インターフェース54は、エンコードされた符号化ビデオデータを外部に出力する。
すなわち、ステップS211において圧縮オーディオ信号インターフェース52から出力される圧縮符号化オーディオデータは、再生装置20−2のAVデコーダ部33−2において、復号処理が施されていないため、音質が劣化していない。
ステップS212において、コントローラ34−2は、PlayListを参照し、再生するべき次のPlayItemがあるか否かを判断する。ステップS212において、次のPlayItemがあると判断された場合、処理は、ステップS207に戻り、それ以降の処理が繰り返される。
ステップS212において、次のPlayItemがないと判断された場合、ステップS213において、コントローラ34−2は、再生終了であるか否かを判断する。ステップS213において、再生終了ではないと判断された場合、処理は、ステップS205に戻り、それ以降の処理が繰り返される。ステップS213において、再生終了であると判断された場合、処理は、終了される。
ステップS203において、いずれかのフラグが1となっていると判断された場合、このIndexファイルに関連するデータには、再生装置20−2においてオーディオストリーム#1に合成することが可能なサウンドデータまたはオーディオストリーム#2のうちの少なくとも一方が含まれているので、ステップS214において、コントローラ34−2は、このIndexファイルに関連するオーディオストリーム#1を1stオーディオデコーダ75−1に供給するように、スイッチ61を制御する。
ステップS215乃至ステップS219において、ステップS205乃至ステップS209と基本的に同様の処理が実行される。すなわち、PlayListファイルの読み出しが指令されたか否かが判断され、読み出しが指令されたと判断された場合、PlayListファイルが読み出されて、そのPlayListファイルに含まれるPlayListにより指定されるPlayItemが読み出される。そして、読み出されたPlayItemに対応するClipのデータ(AV Stream)が対応するバッファに供給されてバッファリングされ、PIDフィルタおよび各スイッチが制御されて、バッファリングされた映像系データがそれぞれ所定のデコーダにてデコードされて、ビデオデータ処理部96において処理される。
ステップS220において、コントローラ34−2は、PIDフィルタおよび各スイッチを制御し、バッファ53にバッファリングされたオーディオストリーム#1を、スイッチ101およびスイッチ61を介して1stオーディオデコーダ75−1に供給してデコードさせ、バッファ53にバッファリングされたオーディオストリーム#2を、スイッチ101を介して2ndオーディオデコーダ75−2に供給してデコードさせ、ミキシング処理部102を制御して、1stオーディオデコーダ75−1および2ndオーディオデコーダ75−2においてデコードされたオーディオストリームの合成処理を適宜実行させ、ミキシング処理部97を制御して、ミキシング処理部102により合成されたオーディオストリームとバッファ95に保持されているサウンドデータとの合成処理を適宜実行させる。
すなわち、スイッチ61が制御されて、オーディオストリーム#1がオーディオデコーダ75によりデコードされるようになされているので、オーディオストリーム#1とオーディオストリーム#2やサウンドデータを合成することが可能となる。
ステップS221において、オーディオエンコーダ41は、合成処理が施された非圧縮のオーディオデータをエンコードし、圧縮オーディオ信号インターフェース52に供給して外部出力させ、ビデオエンコーダ42はビデオデータ処理部96により処理された非圧縮のビデオデータをエンコードして、圧縮ビデオ信号インターフェース54に供給して外部に出力させる。
ステップS222において、コントローラ34−2は、PlayListを参照し、再生するべき次のPlayItemがあるか否かを判断する。ステップS222において、次のPlayItemがあると判断された場合、処理は、ステップS217に戻り、それ以降の処理が繰り返される。
ステップS222において、次のPlayItemがないと判断された場合、ステップS223において、コントローラ34−2は、再生終了であるか否かを判断する。ステップS223において、再生終了ではないと判断された場合、処理は、ステップS215に戻り、それ以降の処理が繰り返される。ステップS223において、再生終了であると判断された場合、処理は、終了される。
ステップS201において、出力されるのは符号化ストリームではないと判断された場合、ステップS224において、コントローラ34−2は、供給されたオーディオストリーム#1をオーディオデコーダ75に供給するように、スイッチ61を制御する。
すなわち、出力されるのは符号化ストリームではない場合、オーディオストリーム#1に合成されるサウンドデータがあるか否かにかかわらず、オーディオストリーム#1はデコードされる。
ステップS225乃至ステップS230において、ステップS215乃至ステップS220と基本的に同様の処理が実行される。すなわち、PlayListファイルの読み出しが指令されたか否かが判断され、読み出しが指令されたと判断された場合、PlayListファイルが読み出されて、そのPlayListファイルに含まれるPlayListにより指定されるPlayItemが読み出される。そして、読み出されたPlayItemに対応するClipのデータ(AV Stream)が対応するバッファに供給されてバッファリングされ、PIDフィルタおよび各スイッチが制御されて、バッファリングされた映像系データがそれぞれ所定のデコーダにてデコードされて、ビデオデータ処理部96において処理される。そして、PIDフィルタおよび各スイッチが制御され、バッファ53にバッファリングされたオーディオストリーム#1がスイッチ101およびスイッチ61を介して1stオーディオデコーダ75−1に供給されてデコードされ、オーディオストリーム#2がスイッチ101を介して2ndオーディオデコーダ75−2に供給されてデコードされ、ミキシング処理部102を制御して、1stオーディオデコーダ75−1および2ndオーディオデコーダ75−2においてデコードされたオーディオストリームが適宜合成され、ミキシング処理部97を制御して、ミキシング処理部102により合成されたオーディオストリームとバッファ95に保持されているサウンドデータとが適宜合成される。
ステップS231において、非圧縮オーディオ信号インターフェース51は、ミキシング処理部97から供給された処理済の非圧縮のビデオデータを外部に出力し、非圧縮ビデオ信号インターフェース53は、ビデオデータ処理部96から供給された非圧縮のオーディオデータを外部に出力する。または、D/A変換部43は、非圧縮のオーディオデータをD/A変換し、アナログオーディオ信号インターフェース55は、アナログ信号を外部に出力し、D/A変換部44は、非圧縮のビデオデータをD/A変換し、アナログビデオ信号インターフェース56は、アナログ信号を外部に出力する。
ステップS232において、コントローラ34−2は、PlayListを参照し、再生するべき次のPlayItemがあるか否かを判断する。ステップS232において、次のPlayItemがあると判断された場合、処理は、ステップS227に戻り、それ以降の処理が繰り返される。
ステップS232において、次のPlayItemがないと判断された場合、ステップS233において、コントローラ34−2は、再生終了であるか否かを判断する。ステップS233において、再生終了ではないと判断された場合、処理は、ステップS225に戻り、それ以降の処理が繰り返される。ステップS233において、再生終了であると判断された場合、処理は、終了される。
このような処理により、再生装置20−2は、IndexファイルのIndexes()に記載されているフラグを参照して、このIndexes()により参照されるデータにサウンドデータまたはオーディオストリーム#2がいずれも含まれていない場合には、オーディオストリーム#1をデコードせずに圧縮符号化されたデータのまま外部に出力するので、必要以上に音質を劣化させることを防止することができる。
なお、この処理においても、処置の最初において、出力される信号が圧縮符号化データであるか非圧縮のデータであるかを判断し、その後、フラグを参照して、合成処理が実行されるか否かを判断するものとしているが、例えば、まず、フラグを参照して、合成処理が実行されるか否かを判断し、その後、出力される信号が圧縮符号化データであるか非圧縮のデータであるかを判断するようにしても、判断する処理の順番が異なるだけで、実質的に同様の処理が実行されるのは言うまでもない。
次に、図43のフローチャートを参照して、再生装置20-2において、オーディオストリーム#1に合成される他の音声データがあるか否かを示すフラグがPlayListファイルに記載されているデータが再生される場合に実行される、再生処理5について説明する。
ステップS261において、コントローラ34−2は、再生装置20−2から出力されるのは符号化ストリームであるか否かを判断する。ステップS261において、再生装置20−2から出力されるのは符号化ストリームではないと判断された場合、処理は、後述するステップS282に進む。
ステップS261において、再生装置20−2から出力されるのは符号化ストリームであると判断された場合、ステップS262において、コントローラ34−2は、スイッチ32から供給されるIndexファイルを読み取る。
ステップS263において、コントローラ34−2は、例えば、ユーザの操作入力などによって発生されるコマンドにより、Playlistファイル(例えば、図13の×××××.mpls)の読み出しが指令されたか否かを判断する。ステップS263において、Playlistファイルの読み出しが指令されていないと判断された場合、Playlistファイルの読み出しが指令されたと判断されるまで、ステップS263の処理が繰り返される。
ステップS263において、Playlistファイルの読み出しが指令されたと判断された場合、ステップS264において、コントローラ34−2は、スイッチ32から供給されるPlaylistファイルを読み出す。
ステップS265において、コントローラ34−2は、Playlistファイルに記載されている、すなわち、AppInfoPlayList()またはPlayList()に記載されている、メインのオーディオストリームであるオーディオストリーム#1に合成されるデータが存在することを示すフラグのうちのいずれかが1となっているか否か、具体的には、サウンドデータ(もしくは、オーディオストリーム#2)が存在することを示すフラグis_MixApp、または、サウンドデータが存在することを示すフラグis_MixApp_2、もしくは、オーディオストリーム#2が存在することを示すフラグis_MixApp_1のうちのいずれかが1となっているか否かを判断する。
audio_stream_idで与えられるオーディオストリーム#1に加えて、audio_stream_id2で与えられるオーディオストリーム#2も存在しているコンテンツには、サウンドデータが存在するか否かを示すフラグであるis_MixApp_2に加えて、オーディオストリーム#2が存在するか否かを示すフラグであるis_MixApp_1が記載されている。再生装置20−2は、audio_stream_id2で与えられるオーディオストリーム#2を再生する機能を有しているので、ステップS265において、is_MixApp_2で示されるフラグの値のみならず、is_MixApp_1で示されるフラグの値を参照するようになされている。
ステップS265において、いずれかのフラグが1となっていると判断された場合、処理は、後述するステップS274に進む。
ステップS265において、いずれのフラグも1ではないと判断された場合、このPlayListファイルに関連するデータには、再生装置20−2においてオーディオストリーム#1に合成することが可能なサウンドデータおよびオーディオストリーム#2が含まれていないので、ステップS266において、コントローラ34−2は、このPlayListファイルに関連するオーディオデータを圧縮符号化オーディオ信号の出力端子である圧縮オーディオ信号インターフェース52に供給するように、スイッチ61を制御する。
ステップS267乃至ステップS271において、図42のステップS207乃至ステップS211と同様の処理が実行される。すなわち、PlayListにより指定されるPlayItemが読み出されて、対応するメインClipまたはサブClipに含まれるストリームデータ、およびテキストサブタイトルデータが読み出されてスイッチ32に供給される。読み出されたデータは対応するバッファに供給されてバッファリングされ、PIDフィルタ55、56およびスイッチ67乃至59が制御されて、映像系データが所定のデコーダでデコードされて、ビデオデータ処理部96にて処理され、処理済のビデオデータがエンコードされる。
そして、圧縮符号化オーディオ信号の出力端子である圧縮オーディオ信号インターフェース52から、スイッチ61から出力される符号化オーディオデータであるオーディオストリーム#1が外部に出力され、圧縮符号化ビデオ信号の出力端子である圧縮ビデオ信号インターフェース54から、エンコードされた符号化ビデオデータが外部に出力される。
すなわち、ステップS271において圧縮オーディオ信号インターフェース52から出力される圧縮符号化オーディオデータは、再生装置20−2のAVデコーダ部33−2において、復号処理が施されていないため、音質が劣化していない。
ステップS272において、コントローラ34−2は、PlayListを参照し、再生するべき次のPlayItemがあるか否かを判断する。ステップS272において、次のPlayItemがあると判断された場合、処理は、ステップS267に戻り、それ以降の処理が繰り返される。
ステップS272において、次のPlayItemがないと判断された場合、ステップS273において、コントローラ34−2は、再生終了であるか否かを判断する。ステップS273において、再生終了ではないと判断された場合、処理は、ステップS263に戻り、それ以降の処理が繰り返される。すなわち、次に読み出されるPlayListファイルに記載されているフラグによって、スイッチ61の制御が変更される可能性がある。ステップS273において、再生終了であると判断された場合、処理は、終了される。
ステップS265において、いずれかのフラグが1となっていると判断された場合、このPlayListファイルに関連するデータには、再生装置20−2においてオーディオストリーム#1に合成することが可能なサウンドデータまたはオーディオストリーム#2のうちの少なくとも一方が含まれているので、ステップS274において、コントローラ34−2は、このPlayListファイルに関連するオーディオストリーム#1を1stオーディオデコーダ75−1に供給するように、スイッチ61を制御する。
ステップS275乃至ステップS279において、図42のステップS217乃至ステップS221と基本的に同様の処理が実行される。すなわち、PlayListにより指定されるPlayItemが読み出され、読み出されたPlayItemを基に、所定のClipに含まれるデータが対応するバッファに供給されてバッファリングされ、PIDフィルタおよび各スイッチが制御されて、バッファリングされた映像系データがそれぞれ所定のデコーダにてデコードされて、ビデオデータ処理部96において処理される。
そして、PIDフィルタおよび各スイッチが制御されて、バッファ53にバッファリングされたオーディオストリーム#1が、スイッチ101およびスイッチ61を介して1stオーディオデコーダ75−1に供給されてデコードされ、バッファ53にバッファリングされたオーディオストリーム#2が、スイッチ101を介して2ndオーディオデコーダ75−2に供給されてデコードされ、ミキシング処理部102が制御されて、1stオーディオデコーダ75−1および2ndオーディオデコーダ75−2においてデコードされたオーディオストリームの合成処理が適宜実行され、ミキシング処理部97が制御されて、ミキシング処理部102により合成されたオーディオストリームとバッファ95に保持されているサウンドデータとの合成処理が適宜実行される。
すなわち、スイッチ61が制御されて、オーディオストリーム#1がオーディオデコーダ75によりデコードされるようになされているので、オーディオストリーム#1とオーディオストリーム#2やサウンドデータを合成することが可能となる。
そして、オーディオエンコーダ41により、合成処理が施された非圧縮のオーディオデータがエンコードされて、圧縮オーディオ信号インターフェース52から外部出力されるとともに、ビデオエンコーダ42によりビデオデータ処理部96により処理された非圧縮のビデオデータがエンコードされて、圧縮ビデオ信号インターフェース54から外部に出力される。
ステップS280において、コントローラ34−2は、PlayListを参照し、再生するべき次のPlayItemがあるか否かを判断する。ステップS280において、次のPlayItemがあると判断された場合、処理は、ステップS275に戻り、それ以降の処理が繰り返される。
ステップS280において、次のPlayItemがないと判断された場合、ステップS281において、コントローラ34−2は、再生終了であるか否かを判断する。ステップS281において、再生終了ではないと判断された場合、処理は、ステップS263に戻り、それ以降の処理が繰り返される。すなわち、次に読み出されるPlayListファイルに記載されているフラグによって、スイッチ61の制御が変更される可能性がある。ステップS281において、再生終了であると判断された場合、処理は、終了される。
ステップS261において、出力されるのは符号化ストリームではないと判断された場合、ステップS282乃至ステップS291において、図42のステップS224乃至ステップS233と基本的に同様の処理が実行される。
すなわち、出力されるのは符号化ストリームではない場合、オーディオストリーム#1に合成されるサウンドデータがあるか否かにかかわらず、オーディオストリーム#1はデコードされる。
具体的には、PlayListファイルの読み出しが指令されたか否かが判断され、読み出しが指令されたと判断された場合、PlayListファイルが読み出されて、そのPlayListファイルに記載されているPlayListにより指定されるPlayItemが読み出される。そして、読み出されたPlayItemに対応するClipのデータ(AV Stream)が対応するバッファに供給されてバッファリングされ、PIDフィルタおよび各スイッチが制御されて、バッファリングされた映像系データがそれぞれ所定のデコーダにてデコードされて、ビデオデータ処理部96において処理される。そして、PIDフィルタおよび各スイッチが制御され、バッファ53にバッファリングされたオーディオストリーム#1がスイッチ101およびスイッチ61を介して1stオーディオデコーダ75−1に供給されてデコードされ、オーディオストリーム#2がスイッチ101を介して2ndオーディオデコーダ75−2に供給されてデコードされ、ミキシング処理部102を制御して、1stオーディオデコーダ75−1および2ndオーディオデコーダ75−2においてデコードされたオーディオストリームが適宜合成され、ミキシング処理部97を制御して、ミキシング処理部102により合成されたオーディオストリームとバッファ95に保持されているサウンドデータとが適宜合成される。そして、ミキシング処理部97から供給された処理済の非圧縮のオーディオデータがそのまま、または、必要に応じてD/A変換されて外部に出力され、ビデオデータ処理部96から供給された非圧縮のビデオデータがそのまま、または、必要に応じてD/A変換されて外部に出力される。
そして、PlayListが参照されて、再生するべき次のPlayItemがあるか否かが判断され、次のPlayItemがあると判断された場合、処理は、ステップS285に戻り、それ以降の処理が繰り返される。次のPlayItemがないと判断された場合、再生終了であるか否かが判断されて、再生終了ではないと判断された場合、処理は、ステップS283に戻り、それ以降の処理が繰り返される。再生終了であると判断された場合、処理は、終了される。
このような処理により、再生装置20−2は、PlayListファイルに記載されているフラグを参照して、このPlayListファイルにより参照されるデータにサウンドデータまたはオーディオストリーム#2がいずれも含まれていない場合には、オーディオストリーム#1をデコードせずに圧縮符号化されたデータのまま外部に出力するので、必要以上に音質を劣化させることを防止することができる。
また、サウンドデータとして提供される音声データのうち、例えば、ボタンのクリック音等は、ユーザの操作に従って発生する効果音であり、この場合には、オーディオストリーム#1と合成するか、合成をしなくとも良いかは不明である。従って、上述した再生処理のフローでは、サウンドデータまたはオーディオストリームが存在するか否かを表すフラグとして、is_MixApp、is_MixApp_1、is_MixApp_2を説明したが、フラグが示すデータは合成のためにデコードする可能性が無いことを示すフラグであればよい。すなわち、フラグが1の場合であっても、必ずしも合成処理が発生するとは限らず、合成処理が発生しない場合もありえる。ただし、合成処理が発生し得ない場合にフラグが0にセットされる。また、Indexes()は、PlayListファイルを複数指定することができるため、フラグをPlaylistに記載することにより、サウンドデータが含まれているか否かをPlayListごとに設定することが可能となるので、Indexes()にフラグ情報を記載するよりも柔軟に制御の設定が可能となるとともに、オーサリングの自由度が増す。
なお、この処理においても、処置の最初において、出力される信号が圧縮符号化データであるか非圧縮のデータであるかを判断し、その後、フラグを参照して、合成処理が実行されるか否かを判断するものとしているが、例えば、まず、フラグを参照して、合成処理が実行されるか否かを判断し、その後、出力される信号が圧縮符号化データであるか非圧縮のデータであるかを判断するようにしても、判断する処理の順番が異なるだけで、実質的に同様の処理が実行されるのは言うまでもない。
次に、図44のフローチャートを参照して、オーディオストリーム#1に合成される他の音声データがあるか否かを示すフラグがPlayItemに記載されているデータを再生装置20-2が再生する場合に実行される、再生処理6について説明する。
ステップS331において、コントローラ34−2は、再生装置20−2から出力されるのは符号化ストリームであるか否かを判断する。ステップS331において、再生装置20−2から出力されるのは符号化ストリームではないと判断された場合、処理は、後述するステップS351に進む。
ステップS331において、再生装置20−2から出力されるのは符号化ストリームであると判断された場合、ステップS332において、コントローラ34−2は、スイッチ32から供給されるIndexファイルを読み取る。
ステップS333において、コントローラ34−2は、例えば、ユーザの操作入力などによって発生されるコマンドにより、Playlistファイル(例えば、図13の×××××.mpls)の読み出しが指令されたか否かを判断する。ステップS333において、Playlistファイルの読み出しが指令されていないと判断された場合、Playlistファイルの読み出しが指令されたと判断されるまで、ステップS333の処理が繰り返される。
ステップS333において、Playlistファイルの読み出しが指令されたと判断された場合、ステップS334において、コントローラ34−2は、スイッチ32から供給されるPlaylistファイルを読み出す。
ステップS335において、コントローラ34−2は、そのPlayListファイルに記載されているPlayList(図13のPlylist())により指定されるPlayItemを読み出し、対応するメインClip AV Stream、サブClip AV Stream、およびテキストサブタイトルデータが読み出されてスイッチ32に供給する。
ステップS336において、コントローラ34−2は、PlayItemに記載されている、メインのオーディオストリームであるオーディオストリーム#1に合成されるデータが存在することを示すフラグのうちのいずれかが1となっているか否か、具体的には、サウンドデータが存在することを示すフラグis_MixAppまたはis_MixApp_2、もしくは、オーディオストリーム#2が存在することを示すフラグis_MixApp_1のうちのいずれかが1となっているか否かを判断する。
audio_stream_idで与えられるオーディオストリーム#1に加えて、audio_stream_id2で与えられるオーディオストリーム#2も存在しているコンテンツには、サウンドデータが存在するか否かを示すフラグであるis_MixApp_2に加えて、オーディオストリーム#2が存在するか否かを示すフラグであるis_MixApp_1が記載されている。再生装置20−2は、audio_stream_id2で与えられるオーディオストリーム#2を再生する機能を有しているので、ステップS265において、is_MixAppまたはis_MixApp_2で示されるフラグの値のみならず、is_MixApp_1で示されるフラグの値を参照するようになされている。
ステップS336において、いずれかのフラグが1となっていると判断された場合、処理は、後述するステップS344に進む。
ステップS336において、いずれのフラグも1ではないと判断された場合、このPlayItemに関連するオーディオデータには、再生装置20−2においてオーディオストリーム#1に合成することが可能なサウンドデータおよびオーディオストリーム#2が含まれていないので、ステップS337において、コントローラ34−2は、このPlayItemに関連するオーディオデータを圧縮符号化オーディオ信号の出力端子である圧縮オーディオ信号インターフェース52に供給するように、スイッチ61を制御する。
ステップS2338乃至ステップS341において、図42のステップS208乃至ステップS211と同様の処理が実行される。すなわち、読み出されたデータが対応するバッファに供給されてバッファリングされ、PIDフィルタ55、56およびスイッチ67乃至59が制御されて、映像系データが所定のデコーダでデコードされて、ビデオデータ処理部96にて処理され、処理済のビデオデータがエンコードされる。
そして、圧縮符号化オーディオ信号の出力端子である圧縮オーディオ信号インターフェース52から、スイッチ61から出力される符号化オーディオデータであるオーディオストリーム#1が外部に出力され、圧縮符号化ビデオ信号の出力端子である圧縮ビデオ信号インターフェース54から、エンコードされた符号化ビデオデータが外部に出力される。
すなわち、ステップS341において圧縮オーディオ信号インターフェース52から出力される圧縮符号化オーディオデータは、再生装置20−2のAVデコーダ部33−2において、復号処理が施されていないため、音質が劣化していない。
ステップS342において、コントローラ34−2は、PlayListを参照し、再生するべき次のPlayItemがあるか否かを判断する。ステップS342において、次のPlayItemがあると判断された場合、処理は、ステップS335に戻り、それ以降の処理が繰り返される。すなわち、次に読み出されるPlayItemに記載されているフラグによって、スイッチ61の制御が変更される可能性がある。
ステップS342において、次のPlayItemがないと判断された場合、ステップS343において、コントローラ34−2は、再生終了であるか否かを判断する。ステップS343において、再生終了ではないと判断された場合、処理は、ステップS333に戻り、それ以降の処理が繰り返される。ステップS343において、再生終了であると判断された場合、処理は、終了される。
ステップS336において、いずれかのフラグが1となっていると判断された場合、このPlayItemに関連するオーディオデータには、再生装置20−2においてオーディオストリーム#1に合成することが可能なサウンドデータまたはオーディオストリーム#2のうちの少なくとも一方が含まれているので、ステップS344において、コントローラ34−2は、このPlayListファイルに関連するオーディオストリーム#1を1stオーディオデコーダ75−1に供給するように、スイッチ61を制御する。
ステップS3435乃至ステップS348において、図42のステップS218乃至ステップS221と基本的に同様の処理が実行される。すなわち、PlayItemに対応するClipのデータが対応するバッファに供給されてバッファリングされ、PIDフィルタおよび各スイッチが制御されて、バッファリングされた映像系データがそれぞれ所定のデコーダにてデコードされて、ビデオデータ処理部96において処理される。
そして、PIDフィルタおよび各スイッチが制御されて、バッファ53にバッファリングされたオーディオストリーム#1が、スイッチ101およびスイッチ61を介して1stオーディオデコーダ75−1に供給されてデコードされ、バッファ53にバッファリングされたオーディオストリーム#2が、スイッチ101を介して2ndオーディオデコーダ75−2に供給されてデコードされ、ミキシング処理部102が制御されて、1stオーディオデコーダ75−1および2ndオーディオデコーダ75−2においてデコードされたオーディオストリームの合成処理が適宜実行され、ミキシング処理部97が制御されて、ミキシング処理部102により合成されたオーディオストリームとバッファ95に保持されているサウンドデータとの合成処理が適宜実行される。
すなわち、スイッチ61が制御されて、オーディオストリーム#1がオーディオデコーダ75によりデコードされるようになされているので、オーディオストリーム#1とオーディオストリーム#2やサウンドデータを合成することが可能となる。
そして、オーディオエンコーダ41により、合成処理が施された非圧縮のオーディオデータがエンコードされて、圧縮オーディオ信号インターフェース52から外部出力されるとともに、ビデオエンコーダ42によりビデオデータ処理部96により処理された非圧縮のビデオデータがエンコードされて、圧縮ビデオ信号インターフェース54から外部に出力される。
ステップS349において、コントローラ34−2は、PlayListを参照し、再生するべき次のPlayItemがあるか否かを判断する。ステップS349において、次のPlayItemがあると判断された場合、処理は、ステップS335に戻り、それ以降の処理が繰り返される。すなわち、次に読み出されるPlayItemに記載されているフラグによって、スイッチ61の制御が変更される可能性がある。
ステップS349において、次のPlayItemがないと判断された場合、ステップS350において、コントローラ34−2は、再生終了であるか否かを判断する。ステップS350において、再生終了ではないと判断された場合、処理は、ステップS333に戻り、それ以降の処理が繰り返される。ステップS350において、再生終了であると判断された場合、処理は、終了される。
ステップS331において、出力されるのは符号化ストリームではないと判断された場合、ステップS351乃至ステップS360において、図42のステップS224乃至ステップS233と基本的に同様の処理が実行される。
すなわち、出力されるのは符号化ストリームではない場合、オーディオストリーム#1に合成されるサウンドデータがあるか否かにかかわらず、オーディオストリーム#1はデコードされる。
具体的には、PlayListファイルの読み出しが指令されたか否かが判断され、読み出しが指令されたと判断された場合、PlayListファイルが読み出されて、そのPlayListファイルに記載されているPlayListにより指定されるPlayItemが読み出される。そして、読み出されたPlayItemに対応するClipのデータ(AV Stream)が対応するバッファに供給されてバッファリングされ、PIDフィルタおよび各スイッチが制御されて、バッファリングされた映像系データがそれぞれ所定のデコーダにてデコードされて、ビデオデータ処理部96において処理される。そして、PIDフィルタおよび各スイッチが制御され、バッファ53にバッファリングされたオーディオストリーム#1がスイッチ101およびスイッチ61を介して1stオーディオデコーダ75−1に供給されてデコードされ、オーディオストリーム#2がスイッチ101を介して2ndオーディオデコーダ75−2に供給されてデコードされ、ミキシング処理部102を制御して、1stオーディオデコーダ75−1および2ndオーディオデコーダ75−2においてデコードされたオーディオストリームが適宜合成され、ミキシング処理部97を制御して、ミキシング処理部102により合成されたオーディオストリームとバッファ95に保持されているサウンドデータとが適宜合成される。そして、ミキシング処理部97から供給された処理済の非圧縮のオーディオデータがそのまま、または、必要に応じてD/A変換されて外部に出力され、ビデオデータ処理部96から供給された非圧縮のビデオデータがそのまま、または、必要に応じてD/A変換されて外部に出力される。
そして、PlayListが参照されて、再生するべき次のPlayItemがあるか否かが判断され、次のPlayItemがあると判断された場合、処理は、ステップS285に戻り、それ以降の処理が繰り返される。次のPlayItemがないと判断された場合、再生終了であるか否かが判断されて、再生終了ではないと判断された場合、処理は、ステップS283に戻り、それ以降の処理が繰り返される。再生終了であると判断された場合、処理は、終了される。
このような処理により、再生装置20−2は、PlayItemに記載されているフラグを参照して、このPlayItemにより参照されるデータにサウンドデータまたはオーディオストリーム#2がいずれもが含まれていない場合は、オーディオストリーム#1をデコードせずに圧縮符号化されたデータのまま外部に出力するので、必要以上に音質を劣化させることを防止することができる。また、フラグの情報をPlayItemに記載することにより、サウンドデータが含まれているか否かをPlayItemごとに設定することが可能となるので、オーサリングの自由度が更に増す。
なお、このように、PlayItemにフラグ情報が記載されている場合には、より柔軟な制御が可能となるが、一方では、1つのPlayListでシームレス再生を保障しつつ、PlayItemで再エンコードのON、OFFを切り換えるとすると、実装上、再生装置の負担が大きくなる。したがって、実装上の条件によっては、フラグ情報は、PlayListファイル単位で記録することが望ましい場合がある。
なお、この処理においても、処置の最初において、出力される信号が圧縮符号化データであるか非圧縮のデータであるかを判断し、その後、フラグを参照して、合成処理が実行されるか否かを判断するものとしているが、例えば、まず、フラグを参照して、合成処理が実行されるか否かを判断し、その後、出力される信号が圧縮符号化データであるか非圧縮のデータであるかを判断するようにしても、判断する処理の順番が異なるだけで、実質的に同様の処理が実行されるのは言うまでもない。
以上においては、音声データの合成において、合成処理が行われるか否かを判断し、それを基に、主となる音声データのデコード処理を行う場合と行わない場合とのそれぞれにおいて実行される処理について説明したが、同様の処理は、音声データの合成に関する場合のみならず、ビデオデータの合成においても、適用可能である。
すなわち、例えば、主な映像データ、すなわち、ビデオデコーダ72においてデコードされるビデオデータに対して合成される、バックグラウンドプレーン、プレゼンテーショングラフィックプレーン、インタラクティブグラフィックプレーンがストリーム中に存在するか否かを示すフラグを、上述した場合と同様に、Indexes、PlayListまたはPlayItemのいずれかに記載する。図45に示される再生装置20−3のAVデコーダ部33−3は、更にスイッチ151を設け、スイッチ151は、PIDフィルタ55から供給された主な映像データを、コントローラ34−3の制御に基づいて、ビデオデコーダ72、または、圧縮ビデオ信号インターフェース54のいずれかに供給する。これにより、主な映像データが圧縮符号化データとして出力され、かつ、主な映像データに対して、バックグラウンドプレーン、プレゼンテーショングラフィックプレーン、インタラクティブグラフィックプレーンがいずれも合成されないとき、主な映像データをデコードすることなく出力することができるので、不必要な画像の劣化を防止することが可能となる。
次に、図46および図47を参照して、再生装置20において再生可能なデータが記録された記録媒体21の製造方法について、記録媒体21がディスク状の記録媒体だった場合を例として説明する。
即ち、図46に示すように、例えばガラスなどよりなる原盤が用意され、その上に、例えばフォトレジストなどよりなる記録材料が塗布される。これにより、記録用原盤が製作される。
そして、図47に示すように、ソフト製作処理部において、符号化装置(ビデオエンコーダ)で符号化された、再生装置20において再生可能な形式のビデオデータが、一時バッファに記憶され、オーディオエンコーダで符号化されたオーディオデータが、一時バッファに記憶されるとともに、更に、データエンコーダで符号化された、ストリーム以外のデータ(例えば、Indexes、Playlist、PlayItemなど)が一時バッファに記憶される。それぞれのバッファに記憶されたビデオデータ、オーディオデータ、および、ストリーム以外のデータは、多重化器(MPX)で同期信号と共に多重化され、誤り訂正符号回路(ECC)でエラー訂正用のコードが付加される。そして、変調回路(MOD)で所定の変調がかけられ、所定のフォーマットにしたがって、例えば磁気テープなどに一旦記録され、再生装置20において再生可能な記録媒体21に記録されるソフトウェアが製作される。
このソフトウェアを必要に応じて編集(プリマスタリング)し、光ディスクに記録すべきフォーマットの信号が生成される。そして、図46に示すように、この記録信号に対応して、レーザビームが変調されて、このレーザビームが原盤上のフォトレジスト上に照射される。これにより、原盤上のフォトレジストが記録信号に対応して露光される。
その後、この原盤を現像し、原盤上にピットを出現させる。このようにして用意された原盤に、例えば電鋳等の処理を施し、ガラス原盤上のピットを転写した金属原盤を製作する。この金属原盤から、さらに金属スタンパを製作し、これを成形用金型とする。
この成形用金型に、例えばインジェクションなどによりPMMA(アクリル)またはPC(ポリカーボネート)などの材料を注入し、固定化させる。あるいは、金属スタンパ上に2P(紫外線硬化樹脂)などを塗布した後、紫外線を照射して硬化させる。これにより、金属スタンパ上のピットを、樹脂よりなるレプリカ上に転写することができる。
このようにして生成されたレプリカ上に、反射膜が、蒸着あるいはスパッタリングなどにより形成される。あるいはまた、生成されたレプリカ上に、反射膜が、スピンコートにより形成される。
その後、このディスクに対して内外径の加工が施され、2枚のディスクを張り合わせるなどの必要な処置が施される。さらに、ラベルを貼り付けたり、ハブが取り付けられて、カートリッジに挿入される。このようにして再生装置20によって再生可能なデータが記録された記録媒体21が完成する。
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウェアにより実行させることもできる。この場合、上述した処理は、図48に示されるようなパーソナルコンピュータ500により実行される。
図48において、CPU(Central Processing Unit)501は、ROM(Read Only Memory)502に記憶されているプログラム、または、記憶部508からRAM(Random Access Memory)503にロードされたプログラムに従って各種の処理を実行する。RAM503にはまた、CPU501が各種の処理を実行する上において必要なデータなどが適宜記憶される。
CPU501、ROM502、およびRAM503は、内部バス504を介して相互に接続されている。この内部バス504にはまた、入出力インターフェース505も接続されている。
入出力インターフェース505には、キーボード、マウスなどよりなる入力部506、CRT,LCDなどよりなるディスプレイ、スピーカなどよりなる出力部507、ハードディスクなどより構成される記憶部508、並びに、モデム、ターミナルアダプタなどより構成される通信部509が接続されている。通信部509は、電話回線やCATVを含む各種のネットワークを介しての通信処理を行う。
入出力インターフェース505にはまた、必要に応じてドライブ510が接続され、磁気ディスク、光ディスク、光磁気ディスク、あるいは半導体メモリなどによりなるリムーバブルメディア521が適宜装着され、それから読み出されたコンピュータプログラムが、必要に応じて記憶部508にインストールされる。
一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、ネットワークやプログラム格納媒体からインストールされる。
このプログラム格納媒体は、図48に示されるように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されているリムーバブルメディア521よりなるパッケージメディアにより構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM502や記憶部508が含まれるハードディスクなどで構成される。
なお、本明細書において、コンピュータプログラムを記述するステップは、記載された順序に従って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、ドライブ510は、装着されたリムーバブルメディア521に記録されたデータを読み出すことができるのみならず、装着されたリムーバブルメディア521にデータを記録することができる。そして、パーソナルコンピュータ500が、図47を用いて説明したソフト製作処理部と同様の機能を有する(例えば、CPU501を用いて、ソフト製作処理部と同様の機能を実現するためのプログラムを実行する)ことが可能であるのは言うまでもない。
すなわち、パーソナルコンピュータ500は、図47を用いて説明したソフト制作処理部により生成されたデータと同様のデータを、CPU501の処理により生成するか、または、外部の装置で生成された図47を用いて説明したソフト制作処理部により生成されたデータと同様のデータを、通信部509またはドライブ510に装着されたリムーバブルメディア521を介して取得することができる。そして、パーソナルコンピュータ500は、生成または取得された図47を用いて説明したソフト制作処理部により生成されたデータと同様のデータを、ドライブ510に装着されたリムーバブルメディア521に記録する記録装置としての機能を実現することができる。
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
20 再生装置, 31 再生データ取得部, 32 スイッチ, 33 AVデコーダ部, 34 コントローラ, 51乃至54 バッファ, 55,56 PIDフィルタ, 57乃至59 スイッチ, 71 バックグラウンドデコーダ, 72 ビデオデコーダ, 73 プレゼンテーショングラフィックスデコーダ, 74 インタラクティブグラフィックスデコーダ, 75 オーディオデコーダ, 76 Text-STコンポジション, 77 スイッチ, 91 バックグラウンドプレーン生成部, 92 ビデオプレーン生成部, 93 プレゼンテーショングラフィックスプレーン生成部, 94 インタラクティブグラフィックスプレーン生成部, 95 バッファ 96 ビデオデータ処理部, 97 ミキシング処理部, 101 ミキシング処理部