(57)【特許請求の範囲】
【請求項１】
オーディオストリームをデコードする能力を示す情報を通知することが可能な外部機器と接続された再生装置であって、
所定品質の音声データが得られる基本データと、基本データには存在しないデータであって、基本データと共に用いられることにより前記所定品質と異なる品質の音声データが得られる拡張データとからオーディオフレームが構成されるオーディオストリームを、外部機器が有するデコーダにおいてデコードする際に、拡張データをデコードすることができるか否かを示す情報を、外部機器から取得する取得手段と、
自装置及び前記外部機器の何れかの機器によりオーディオストリームをデコードする再生環境で、拡張データをデコードすることができるかを、フラグで示すレジスタと、
自装置における拡張データのデコードの可否と、前記外部機器から取得した情報により示される拡張データのデコードの可否とにより、前記レジスタのフラグをセットする制御手段と、
前記レジスタのフラグに基づいて、オーディオストリームを選択する選択手段と
を備えることを特徴とする再生装置。
【請求項２】
前記外部機器から取得される情報はさらに、外部機器が有するデコーダにおいて基本データをステレオレベルおよびサラウンドレベルの何れのレベルの音声データにデコードできるかを示し、
前記レジスタはさらに、前記再生環境で、基本データをどのレベルの音声データにデコードすることができるかを、前記フラグと異なる他のフラグで示し、
前記制御手段はさらに、自装置において基本データをデコードできるレベルと、前記外部機器から取得した情報により示される基本データをデコードできるレベルとにより、前記他のフラグをセットする
ことを特徴とする請求項１に記載の再生装置。
【請求項３】
所定品質の音声データが得られる基本データと、基本データには存在しないデータであって、基本データと共に用いられることにより前記所定品質と異なる品質の音声データが得られる拡張データとからオーディオフレームが構成されるオーディオストリームのデコードにおいて、拡張データをデコードすることができるか否かを示す情報を、当該情報を通知することが可能な外部機器が自装置に接続されている場合に、前記外部機器から取得する取得手段と、
自装置及び前記外部機器の何れかの機器によりオーディオストリームをデコードする再生環境で、拡張データをデコードすることができるかを、フラグで示すレジスタと、
前記外部機器が接続されている場合は、自装置における拡張データのデコードの可否と、前記外部機器から取得した情報により示される拡張データのデコードの可否とにより、前記レジスタのフラグをセットし、
前記外部機器が接続されていない場合は、自装置における拡張データのデコードの可否により、前記レジスタのフラグをセットする制御手段と、
前記レジスタのフラグに基づいて、オーディオストリームを選択する選択手段と
を備えることを特徴とする再生装置。
【請求項４】
前記外部機器から取得される情報はさらに、外部機器が有するデコーダにおいて基本データをステレオレベルおよびサラウンドレベルの何れのレベルの音声データにデコードできるかを示し、
前記レジスタはさらに、前記再生環境で、基本データをどのレベルの音声データにデコードすることができるかを、前記フラグと異なる他のフラグで示し、
前記制御手段はさらに、
前記外部機器が接続されている場合は、自装置において基本データをデコードできるレベルと、前記外部機器から取得した情報により示される基本データをデコードできるレベルとにより、前記他のフラグをセットし、
前記外部機器が接続されていない場合は、自装置において基本データをデコードできるレベルにより、前記他のフラグをセットする
ことを特徴とする請求項３に記載の再生装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オーディオストリーム再生技術に関する。
【背景技術】
【０００２】
ＡＶ機器では、映像の高画質化と共に、音声についても高品質化が求められ、多様な音声符号化方式が採用されている。例えばBD（Blu-ray Disc）では、符号化方式や言語の異なる複数（最大３２本）のオーディオストリームを記録媒体に記録して、再生装置の性能や使用言語に応じて適した音声の再生を実現している。
オーディオストリームの選択に際しては、従来の視聴環境では、デコーダを備えたプレーヤが記録媒体からストリームを読み出し、自装置のデコーダに適したオーディオストリームを選択しているものが多い。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平９−２８２８４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、音声符号化方式は高度化が進み、ロッシーな圧縮から高音質なロスレス圧縮の利用が本格化している。
ロスレス符号化方式のなかにはDTS-HD方式のように、音質が劣る下位のロッシーな符号化方式に対応したデコーダとの互換性を保ちつつ、最新のデコーダではよりロスレスな再生を可能とする符号化方式もある。そのため、DTS-HD方式のような符号化方式を用いる際には、単にデコーダが符号化されたオーディオストリームを再生できるか否かを認識するのみでは、実際にどのような品質で音声再生されるか事前に把握できないという問題がある。
【０００５】
特に、テレビやオーディオアンプがそれぞれデコーダを備え、記録媒体からストリームを読み出す供給装置が、記録媒体から読み出したデジタルストリームをデコードすることなく、テレビやオーディオアンプ等の再生装置へ映像や音声のストリームを振り分けて出力するホームシアターシステムのような視聴環境では、ユーザは主に供給装置に対して機器操作を行うため、機器操作に応じて出力されるオーディオストリームの符号化方式を根拠にユーザが期待していた品質で音声が再生されず、ユーザに混乱を招くおそれがある。
【０００６】
本発明はかかる問題に鑑み、再生装置から外部機器へデジタルストリームをパススルー出力するような視聴環境において、外部機器で再生される音声の品質が適切に判断できる再生装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するため、本発明に係る再生装置は、
オーディオストリームをデコードする能力を示す情報を通知することが可能な外部機器と接続された再生装置であって、所定品質の音声データが得られる基本データと、基本データには存在しないデータであって、基本データと共に用いられることにより前記所定品質と異なる品質の音声データが得られる拡張データとからオーディオフレームが構成されるオーディオストリームを、外部機器が有するデコーダにおいてデコードする際に、拡張データをデコードすることができるか否かを示す情報を、外部機器から取得する取得手段と、自装置及び前記外部機器の何れかの機器によりオーディオストリームをデコードする再生環境で、拡張データをデコードすることができるかを、フラグで示すレジスタと、自装置における拡張データのデコードの可否と、前記外部機器から取得した情報により示される拡張データのデコードの可否とにより、前記レジスタのフラグをセットする制御手段と、前記レジスタのフラグに基づいて、オーディオストリームを選択する選択手段とを備えることを特徴とする。
【発明の効果】
【０００８】
音声符号化方式がＤＴＳ−ＨＤ方式のように、音質が劣る下位の符号化方式に対応したデコーダとの互換性を保ちつつ、最新のデコーダではより高品質な再生を可能とする符号化方式を用いる場合にも、再生装置から外部機器へオーディオストリームをパススルー出力するような視聴環境において、外部機器におけるオーディオデコードに拡張データを用いることができるか否かが再生装置へ通知されるので、実際にどのような品質で音声再生されるかを、再生装置側で事前に把握することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明に係る記録媒体の、使用行為についての形態を示す図である。
【図２】BD-ROMの内部構成を示す図である。
【図３】拡張子.m2tsが付与されたファイルがどのように構成されているかを模式的に示す図である。
【図４】AVClipを構成するTSパケットがどのような過程を経てBD-ROMに書き込まれるかを示す。
【図５】BD-ROMの物理単位と、1つのファイルエクステントを構成するSourceパケットとの対応関係を示す図である。
【図６】AVClipにどのようなエレメンタリストリームが多重化されているかを示す図である。
【図７】Clip情報の内部構成を示す図である。
【図８】PlayList情報のデータ構造を示す図である。
【図９】AVClipと、PlayList情報との関係を示す図である。
【図１０】ファイルsound.bdmvの構成を示す図である。
【図１１】ローカルストレージ２００の内部構成を示す図である。
【図１２】SubClipに多重化されるエレメンタリストリームを示す図である。
【図１３】BD-ROM規格におけるPID割当マップを示す図である。
【図１４】（ａ）Secondaryオーディオストリームの内部構成を示す図である。  （ｂ）オーディオフレームの一例を示す図である。  （ｃ）メタデータの内部構成を示す図である。  （ｄ）ゲイン制御情報の一例を模式的に示す図である。
【図１５】Secondaryオーディオストリーム内のメタデータにより、Primaryオーディオストリームの音量がどのように制御されるかを示す図である。
【図１６】PlayList情報のデータ構造を示す図である。
【図１７】Subpath情報の内部構成をクローズアップして示す図である。
【図１８】ローカルストレージ２００上のSubClipと、ローカルストレージ２００上のPlayList情報と、BD-ROM上のMainClipとの対応を示す図である。
【図１９】MainClipに対して設定されたEP_map及びPlayItem時間軸と、Primaryオーディオストリーム、SecondaryオーディオストリームとなるSubClipに対して設定されたEP_map及びSubPlayItem時間軸とを集約して示す図である。
【図２０】STN_tableの内部構成を示す図である。
【図２１】（ａ）ビデオストリームに対応したStream_attributeを示す図である。  （ｂ）Primaryオーディオストリーム、Secondaryオーディオストリームに対応したStream_attributeを示す図である。  （ｃ）ビデオストリームにおけるStream_entryを示す図である。  （ｄ）SecondaryオーディオストリームにおけるStream_entryを示す図である。  （ｅ）SecondaryオーディオストリームにおけるStream_entryと、Stream_attributeとの組みに対応付けられている、Comb_info_Secondary_audio_Primary_audioの内部構成を示す図である。
【図２２】DTS-HD形式のPrimaryオーディオストリームのオーディオフレームにおいて、Stream_attributeの「format_depending_coding_type」におけるBase,Level1,Level2,Level3がそれぞれ、どのようなデータ構造に割り当てられるかを示す図である。
【図２３】Comb_info_Secondary_audio_Primary_audioによるPrimaryオーディオストリームの指定を示す図である。
【図２４】ストリーム供給装置３００により生成されるバーチャルファイルシステムを示す図である。
【図２５】本発明に係るオーディオアンプ４００の内部構成を示す図である。
【図２６】（ａ）DIBにおいて、音声再生性能に関する部分のデータ構造を模式的に示した図である。  （ｂ）DIBの各フィールドに設定しうる値を示す図である。
【図２７】コントローラ３４の処理手順を示す図である。
【図２８】本発明に係るストリーム供給装置３００の内部構成を示す図である。
【図２９】Audio InfoFrameのデータ構造を模式的に示した図である。
【図３０】コントローラ２２を機能的に表現した図である。
【図３１】（ａ）PSR1のビットアサインを示す図である。  （ｂ）PSR14のビットアサインを示す図である。  （ｃ）PSR31のビットアサインを示す図である。
【図３２】PSR15のビットアサインを示す図である。
【図３３】機器起動時のストリーム供給装置３００、オーディオアンプ４００間の通信シーケンスを示す。
【図３４】起動処理部４０の処理手順を示すフローチャートである。
【図３５】起動処理部４０の処理手順を示すフローチャートである。
【図３６】CODING TYPEがDTS-HDである際に、DIBに応じてPSR15におけるPlayer capability for Audioを追加設定する処理手順を示すフローチャートである。
【図３７】プレイリスト処理部によるプレイリスト再生手順を示すフローチャートである。
【図３８】（ａ）PSR1の設定値が取り得る状態遷移を示す図である。  （ｂ）PSR1のProcedure when playback condition is changedの処理手順を示す図である。
【図３９】実際に再生される音声の品質を示すメニューの一例を示す図である。
【図４０】ステップＳ５の詳細な処理手順に示したフローチャートである。
【図４１】ストリーム変化時におけるPSR1の設定手順を示すフローチャートである。
【図４２】（ａ）PSR14の設定値が取り得る状態遷移を示す図である。  （ｂ）PSR14のProcedure when playback condition is changedの処理手順を示す図である。
【図４３】ステップＳ３５の詳細な処理手順に示したフローチャートである。
【図４４】ストリーム変化時におけるPSR14の設定手順を示すフローチャートである。
【図４５】変形例に係るDIBのデータ構造を示す図である。
【発明を実施するための形態】
【００１０】
以降、本発明に係る再生装置の実施形態について説明する。先ず始めに、本発明に係る再生装置の実施行為のうち、使用行為についての形態を説明する。図１は、本発明に係るストリーム再生装置の、使用行為についての形態を示す図である。図１において、本発明に係るストリーム再生装置は、オーディオアンプ４００である。このオーディオアンプ４００は、ストリーム供給装置３００、スピーカ５００、及びテレビ６００と共にホームシアターシステムを形成し、ストリーム供給装置から供給されるオーディオストリームを再生するという用途で使用される。
【００１１】
以降、BD-ROM１００、ストリーム供給装置３００、オーディオアンプ４００について説明を行う。
BD-ROM１００は、映画作品が記録された記録媒体である。
ストリーム供給装置３００は、ネット対応型のデジタル家電機器であり、リモコンを用いたユーザの操作に応じてBD-ROM１００に記録された映画作品を読み出し、映像データをテレビ６００へ、音声データをオーディオアンプ４００へ出力する機能をもつ。本実施形態では、ストリーム供給装置３００とオーディオアンプ４００とはＨＤＭＩ（HDMI:High Definition Multimedia Interface）により規定されているＩ／Ｆ規格に準拠して接続されており、ストリーム供給装置３００は、BD-ROM１００から読み出したオーディオストリームをデコードすることなくオーディオアンプ４００へ出力する。以下、オーディオストリームを構成するTSパケットをデコードせずそのエレメンタリーストリームを他の機器に出力することを“パススルー出力”という。
【００１２】
また、ストリーム供給装置３００内部には、映画配給者のサーバから配信されたコンテンツの受け皿として利用されるハードディスクであるローカルストレージ２００が組み込まれており、映画配給者のサーバから、ネットを通じてダウンロードしたコンテンツを、BD-ROM１００に記録されたコンテンツと組み合わせて、BD-ROM１００のコンテンツを拡張/更新をすることができる。BD-ROM１００の記録内容に、ローカルストレージ２００の記録内容を組み合わせて、BD-ROM１００に記録されていないデータを、恰も、記録されているように扱う技術を“バーチャルパッケージ”という。
【００１３】
オーディオアンプ４００は、オーディオデコーダを内部に備え、ストリーム供給装置３００から供給されるオーディオストリームをデコードし、デコードにより得られるLPCM状態のオーディオデータをスピーカ５００へ出力する。
以上が本発明に係る再生装置の使用形態についての説明である。
続いて本発明に係る記録媒体の詳細について説明する。
【００１４】
＜BD-ROMの概要＞
図２は、BD-ROMの内部構成を示す図である。本図の第４段目にBD-ROMを示し、第３段目にBD-ROM上のトラックを示す。本図のトラックは、BD-ROMの内周から外周にかけて螺旋状に形成されているトラックを、横方向に引き伸ばして描画している。このトラックは、リードイン領域と、ボリューム領域と、リードアウト領域とからなる。本図のボリューム領域は、物理層、ファイルシステム層、応用層というレイヤモデルをもつ。ディレクトリ構造を用いてBD-ROMの応用層フォーマット(アプリケーションフォーマット)を表現すると、図中の第１段目のようになる。この第1段目においてBD-ROMには、Rootディレクトリの下に、BDMVディレクトリがある。
【００１５】
BDMVディレクトリには、拡張子bdmvが付与されたファイル(index.bdmv,MovieObject.bdmv)がある。そしてこのBDMVディレクトリの配下には、更にPLAYLISTディレクトリ、CLIPINFディレクトリ、STREAMディレクトリ、BDBJディレクトリ、BDJAディレクトリ、AUXDATAディレクトリと呼ばれる6つのサブディレクトリが存在する。
PLAYLISTディレクトリには、拡張子mplsが付与されたファイル(00001.mpls)がある。
【００１６】
CLIPINFディレクトリには、拡張子clpiが付与されたファイル(00001.clpi)がある。
STREAMディレクトリには、拡張子m2tsが付与されたファイル(00001.m2ts)がある。
BDBJディレクトリには、拡張子bobjが付与されたファイル(00001.bobj)が存在する。
BDJAディレクトリには、拡張子jarが付与されたファイル(00001.jar)がある。
AUXDATAディレクトリには、ファイルsound.bdmvが格納される。
【００１７】
以上のディレクトリ構造により、互いに異なる種別の複数ファイルが、BD-ROM上に配置されていることがわかる。
＜BD-ROMの構成その１.AVClip＞
先ず初めに、拡張子.m2tsが付与されたファイルについて説明する。図３は、拡張子.m2tsが付与されたファイルがどのように構成されているかを模式的に示す図である。拡張子.m2tsが付与されたファイル(00001.m2ts)は、AVClipを格納している。AVClipはMPEG2-Transport Stream形式のデジタルストリームである。このデジタルストリームは、デジタル化された映像、デジタル化された音声を(上１段目)、PESパケットからなるエレメンタリストリームに変換し(上２段目)、更にTSパケットに変換して(上３段目)、同じく字幕系のプレゼンテーショングラフィクスストリーム(Presentatiion Graphics(PG)ストリーム)及び対話系のインタラクティブグラフィクスストリーム(Interactive Graphics(IG)ストリーム)を(下１段目、下２段目)、更にTSパケットに変換して(下３段目)、これらを多重化することで構成される。
【００１８】
PGストリームは、言語毎の字幕を構成するグラフィクスストリームであり、英語、日本語、フランス語というように複数言語についてのストリームが存在する。PGストリームは、PCS(Presentation Control Segment)、PDS(Pallet Define Segment)、WDS(Window Define Segment)、ODS(Object Define Segment)、END(END of Display Set Segment)という一連の機能セグメントからなる。ODS(Object Define Segment)は、字幕たるグラフィクスオブジェクトを定義する機能セグメントである。
【００１９】
WDS(Window Define Segment)は、画面におけるグラフィクスオブジェクトの描画領域を定義する機能セグメントであり、PDS(Pallet Define Segment)は、グラフィクスオブジェクトの描画にあたっての、発色を規定する機能セグメントである。PCS(Presentation Control Segment)は、字幕表示におけるページ制御を規定する機能セグメントである。かかるページ制御には、Cut-In/Out、Fade-In/Out、Color Change、Scroll、Wipe-In/Outといったものがあり、PCSによるページ制御を伴うことにより、ある字幕を徐々に消去しつつ、次の字幕を表示させるという表示効果が実現可能になる。
【００２０】
IGストリームは、対話制御を実現するグラフィクスストリームである。IGストリームにて定義される対話制御は、DVD再生装置上の対話制御と互換性がある対話制御である。かかるIGストリームは、ICS(Interactive Composition Segment)、PDS(Palette Difinition Segment)、ODS(Object Definition Segment)、END(END of Display Set Segment)と呼ばれる機能セグメントからなる。ODS(Object Definition Segment)は、グラフィクスオブジェクトを定義する機能セグメントである。このグラフィクスオブジェクトが複数集まって、対話画面上のボタンが描画される。PDS(Palette Difinition Segment)は、グラフィクスオブジェクトの描画にあたっての、発色を規定する機能セグメントである。ICS(Interactive Composition Segment)は、ユーザ操作に応じてボタンの状態を変化させるという状態変化を実現する機能セグメントである。ICSは、ボタンに対して確定操作がなされた際、実行すべきボタンコマンドを含む。
【００２１】
ここでAVClipは、1つ以上の“STC_Sequence”から構成される。“STC_Sequence”とは、AVストリームのシステム基準時刻であるSTC(System Time Clock)の不連続点(system time-base discontinuity)が存在しない区間をいう。STCの不連続点はデコーダがSTCを得るために参照するPCR(Program Clock Reference)を運ぶPCRパケットの不連続情報(discontinuity_indicator)がONである点である。
【００２２】
続いて、以上のように構成されたAVClipが、BD-ROMにどのように書き込まれるかを説明する。図４は、AVClipを構成するTSパケットがどのような過程を経てBD-ROMに書き込まれるかを示す。本図の第１段目にAVClipを構成するTSパケットを示す。
AVClipを構成する188バイトのTSパケットは、第２段目に示すように4バイトのTS_extra_header(図中のハッチング部)、が付されて、192バイト長のSourceパケットになる。このTS_extra_headerは、当該TSパケットのデコーダ入力時刻情報を示すArrival_Time_Stampを含む。
【００２３】
AVClipを構成するSourceパケットは、第3段目におけるAVClipにおいて、1つ以上の“ATC_Sequence”を構成する。“ATC_Sequence”とは、Sourceパケットの配列であって、そのArrival_Time_Stampが参照しているArrival_Time_Clockに、不連続点(no arrival time-base discontinutiy)が存在しないものをいう。いいかえれば、そのArrival_Time_Stampが参照しているArrival_Time_Clockに、連続性が存在するSourceパケット列を“ATC_Sequence”という。
【００２４】
かかるATC_SequenceがAVClipになり、xxxxx.m2tsというファイル名でBD-ROMに記録される。
かかるAVClipは、通常のコンピュータファイル同様、1つ以上のファイルエクステントに分割され、BD-ROM上の領域に記録される。第4段目はAVClipがどのようにBD-ROMに記録されるかを模式的に示す。この第4段目においてファイルを構成する各ファイルエクステントは、予め定められたＳextent以上のデータ長を有する。
【００２５】
AVClipを複数のエクステントに分割して記録する場合の、エクステント一個当たりの最小データ長Ｓextentを検討する。
ここでBD-ROMにおいて光ピックアップのジャンプに要する時間は、
Ｔjump＝Ｔaccess+Ｔoverhead
で与えられる。
【００２６】
Ｔaccessは、ジャンプ距離（ジャンプする物理アドレスの距離）に応じて与えられる時間である。
BD-ROMから読み出されたTSパケットは、リードバッファと呼ばれるバッファに格納された上、デコーダに出力されるが、リードバッファへの入力が、Rudというビットレートで行われ、ECCブロックにおけるセクタ数をSeccとした場合、
Ｔoverheadは、
Ｔoverhead≦(2×Secc×8)／Rud＝20m秒
という計算で与えられる。
【００２７】
BD-ROMから読み出されたTSパケットは、Sourceパケットの状態でリードバッファに格納された上、TS_Recording_rateという転送レートで、デコーダに供給される。
TS_Recording_rateという転送レートでの、デコーダへのTSパケット供給が跡絶えさせないなめには、Ｔjumpの間、リードバッファからデコーダへのTSパケット出力が継続している必要がある。ここでリードバッファからの出力は、TSパケットではなく、Sourceパケットの状態でなされるので、TSパケットのSourceパケットとのサイズ比を192/188とした場合、Ｔjumpの間、(192/188×TS_Recording_rate)という転送レートにより、リードバッファからのSourceパケット出力が継続している必要がある。
【００２８】
従って、リードバッファが、アンダーフローしないためのバッファ蓄積量は、
Ｂoccupied≧(Tjump/1000×8)×((192/188)×TS_Recording_rate)
となる。
リードバッファへの入力レートはRud、リードバッファからの出力レートはTS_Recording_rate×(192/188)であるので、リードバッファへの蓄積レートは、入力レート−出力レートの計算で与えられ、(Rud−TS_Recording_rate×(192/188))になる。
【００２９】
このＢoccupiedを、リードバッファに蓄積するのに要する時間Txは、
Tx＝Ｂoccupied/(Rud−TS_Recording_rate×(192/188))
になる。
BD-ROMからの読み出しには、この時間TxにおいてRudでのTSパケット入力を継続する必要があるので、AVClipを複数のエクステントに分割して記録する場合の、エクステント一個当たりの最小データ長Ｓextentは、
Ｓextent＝Rud×Tx
＝Rud×Ｂoccupied/(Rud−TS_Recording_rate×(192/188))
≧Rud×(Tjump/1000×8)×((192/188)×TS_Recording_rate)
/(Rud−TS_Recording_rate×(192/188))
≧(Rud×Tjump/1000×8)
×TS_Recording_rate×192/(Rud×188−TS_Recording_rate×192)
になる。
よって
Ｓextent≧
(Tjump×Rud/1000×8)×
（TS_Recording_rate×192/(Rud×188−TS_Recording_rate×192))
になる。
【００３０】
AVClipを構成する各ファイルエクステントは、デコーダのアンダーフローをおこさないように算出されたＳextent以上のデータ長をもつことにより、AVClipを構成する各ファイルエクステントが、BD-ROM上において離散的に位置されたとしても、再生時においてデコーダへのTSパケット供給が途絶えさせることなく、連続的に読み出されることになる。
【００３１】
図５は、BD-ROMの物理単位と、1つのファイルエクステントを構成するSourceパケットとの対応関係を示す図である。第２段目に示すように、BD-ROM上には複数セクタが形成されている。ファイルエクステントを構成するSourceパケットは、第1段目に示すように、32個毎にグループ化されて、連続する3つのセクタに書き込まれる。32個のSourceパケットからなるグループは、6144バイト(=32×192)であり、これは3個のセクタサイズ6144バイト(=2048×3)と一致する。3個のセクタに収められた32個のSourceパケットを“Aligned Unit”といい、BD-ROMへの書き込みは、Aligned Unit単位でなされる。
【００３２】
第３段目においてセクタは、32個単位で誤り訂正符号が付され、ECCブロックを構成する。ストリーム供給装置３００はAligned Unitの単位でBD-ROMをアクセスする限り、32個の完結したSourceパケットを得ることができる。以上がBD-ROMに対するAVClipの書き込みのプロセスである。
＜エレメンタリストリームの種類＞
図６は、AVClipにどのようなエレメンタリストリームが多重化されているかを示す図である。
【００３３】
本図に示すように、AVClipには、0x1011のPIDをもつ高画質ビデオストリーム、0x1100から0x111FまでのPIDをもつPrimaryオーディオストリーム、0x1200から0x121FまでのPIDをもつPGストリーム、0x1400から0x141FまでのPIDをもつIGストリームが多重化されている。これらのエレメンタリストリームを構成するパケットは、それに対応するPIDが付与されており、このPIDを手掛かりにして多重分離されることになる。このように、高画質なビデオストリームが多重化されているAVClipを、以下“MainClip”と呼ぶ。これに対し、MainClipと同時に再生されるAVClipを、“SubClip”とよぶ。
【００３４】
＜BD-ROMの構成その２.Clip情報＞
続いて拡張子.clpiが付与されたファイルについて説明する。拡張子.clpiが付与されたファイル(00001.clpi)は、Clip情報を格納している。Clip情報は、個々のAVClipについての管理情報である。図７は、Clip情報の内部構成を示す図である。本図の左側に示すようにClip情報は、
i)AVClipについての情報を格納した『ClipInfo()』、
ii)ATC Sequence,STC Sequenceに関する情報を格納した『Sequence Info()』
iii)Program Sequenceに関する情報を格納した『Program Info()』
iv)『Characteristic Point Info(CPI())』からなる。
【００３５】
ClipInfoには、このClip情報が参照するAVClipのアプリケーションタイプ（application_type）がある。アプリケーションタイプによってMainClipかSubClipかや、動画を含んでいるのか静止画(スライドショー)を含んでいるのかなどが識別できる。TS_recording_rateは該当AVClipのシステムビットレート情報である。
Sequence Infoは、AVClipに含まれる、1つ以上のSTC-Sequence、ATC-Sequenceについての情報である。これらの情報を設けておくことの意義は、STC、ATCの不連続点を、予めストリーム供給装置３００に通知するためである。つまりかかる不連続点が存在すると、AVClip内において同じ値のPTSが出現する可能性があり、PTS指定での飛び込み再生時に不都合が生じる。STC,ATCが連続しているのは、トランスポートストリームのうち、どこからどこまでであるかを示すため、Sequence Infoは設けられている。
【００３６】
Program Infoとは、Program内容が一定である区間(Program Sequence)を示す情報である。Programとは、同期再生のための時間軸を共有し合うエレメンタリーストリーム同士の集まりである。Program Sequence情報を設けておくことの意義は、Program内容の変化点を、予めストリーム供給装置３００に通知するためである。ここでのProgram内容の変化点とは、ビデオストリームのPIDが変化したり、ビデオストリームの種類がSDTVからHDTVに変化している点等をいう。
【００３７】
続いてCharacteristic Point Infoについて説明する。図中の引き出し線cu2は、CPIの構成をクローズアップしている。引き出し線cu2に示すように、CPIは、Ne個のEP_map_for_one_stream_PID(EP_map_for_one_stream_PID[0]〜EP_map_for_one_stream_PID[Ne-1])からなる。これらEP_map_for_one_stream_PIDは、AVClipに属する個々のエレメンタリストリームについてのEP_mapである。EP_mapは、1つのエレメンタリストリーム上において、Access Unitが存在するエントリー位置のパケット番号(SPN_EP_start)を、エントリー時刻(PTS_EP_start)と対応づけて示す情報である。図中の引き出し線cu3は、EP_map_for_one_stream_PIDの内部構成をクローズアップしている。
【００３８】
これによると、EP_map_for_one_stream_PIDは、Nc個のEP_High(EP_High(0)〜EP_High(Nc-1))と、Nf個のEP_Low(EP_Low(0)〜EP_Low(Nf-1))とからなることがわかる。ここでEP_Highは、Access Unit(Non-IDR Iピクチャ、IDRピクチャ)のSPN_EP_start及びPTS_EP_startの上位ビットを表す役割をもち、EP_Lowは、Access Unit(Non-IDR Iピクチャ、IDRピクチャ)のSPN_EP_start及びPTS_EP_startの下位ビットを示す役割をもつ。
【００３９】
図中の引き出し線cu4は、EP_Highの内部構成をクローズアップしている。この引き出し線に示すように、EP_High(i)は、EP_Lowに対する参照値である『ref_to_EP_Low_id[i]』と、Access Unit(Non-IDR Iピクチャ、IDRピクチャ)のPTSの上位ビットを示す『PTS_EP_High[i]』と、Access Unit(Non-IDR Iピクチャ、IDRピクチャ)のSPNの上位ビットを示す『SPN_EP_High[i]』とからなる。ここでiとは、任意のEP_Highを識別するための識別子である。
【００４０】
図中の引き出し線cu5は、EP_Lowの構成をクローズアップしている。引き出し線cu5に示すように、EP_Lowは、対応するAccess UnitがIDRピクチャか否かを示す『is_angle_change_point(EP_Low_id)』と、対応するAccess Unitのサイズを示す『I_end_position_offset(EP_Low_id)』と、対応するAccess Unit(Non-IDR Iピクチャ、IDRピクチャ)のPTSの下位ビットを示す『PTS_EP_Low(EP_Low_id)』と、対応するAccess Unit(Non-IDR Iピクチャ、IDRピクチャ)のSPNの下位ビットを示す『SPN_EP_Low(EP_Low_id)』とからなる。ここでEP_Low_idとは、任意のEP_Lowを識別するための識別子である。
【００４１】
＜PlayList情報＞
続いて、PlayList情報について説明する。拡張子“mpls”が付与されたファイル(00001.mpls)は、PlayList(PL)情報を格納したファイルである。
図８は、PlayList情報のデータ構造を示す図であり、本図において、引き出し線mp1に示すようにPlayList情報は、MainPathを定義するMainPath情報(MainPath())と、チャプターを定義するPlayListMark情報(PlayListMark())を含む。
【００４２】
＜PlayList情報の説明その１.MainPath情報＞
先ずMainPathについて説明する。MainPathは、主映像たるビデオストリームやオーディオストリームに対して定義される再生経路である。
MainPathは、矢印mp1で示すように複数のPlayItem情報＃1・・・・＃mから定義される。PlayItem情報は、MainPathを構成する1つの論理的な再生区間を定義する。PlayItem情報の構成は、引き出し線hs1によりクローズアップされている。この引き出し線に示すようにPlayItem情報は、再生区間のIN点及びOut点が属するAVClipの再生区間情報のファイル名を示す『Clip_Information_file_name』と、AVClipの符号化方式を示す『Clip_codec_identifier』と、PlayItemがマルチアングルを構成するか否かを示す『is_multi_angle』と、このPlayItemと、その1つ前のPlayItemとの接続を、シームレスに行うか否かを示す『connection_condition』と、このPlayItemが対象としているSTC_Sequenceを一意に示す『ref_to_STC_id[0]』と、再生区間の始点を示す時間情報『In_time』と、再生区間の終点を示す時間情報『Out_time』と、このPlayItemにおいてマスクすべきユーザオペレーションがどれであるかを示す『UO_mask_table』と、このPlayItemの途中へのランダムアクセスを許可するか否かを示す『PlayItem_random_access_flag』と、このPlayItemの再生終了後、最後のピクチャの静止表示を継続するか否かを示す『Still_mode』と、『STN_table』とから構成される。このうち、再生経路を構成するのは、再生区間の始点を示す時間情報『In_time』、再生区間の終点を示す時間情報『Out_time』の組みであり、再生経路情報とは、この『In_time』及び『Out_time』の組みから構成される。
【００４３】
図９は、AVClipと、PlayList情報との関係を示す図である。第1段目は、PlayList情報がもつ時間軸を示す。第2段目から第5段目は、EP_mapにて参照されているビデオストリームを示す。
PlayList情報は、PlayItem情報＃1,＃2という2つのPlayItem情報を含んでおり、これらPlayItem情報＃1,＃2のIn_time,Out_timeにより、2つの再生区間が定義されることになる。これらの再生区間を配列させると、AVClip時間軸とは異なる時間軸が定義されることになる。これが第1段目に示すPlayList時間軸である。このように、PlayItem情報の定義により、AVClipとは異なる再生経路の定義が可能になる。
【００４４】
以上のClip情報及びプレイリスト情報は、”静的シナリオ”に分類される。何故なら、以上のClip情報及びプレイリスト情報により、静的な再生単位であるプレイリストが定義されるからである。以上で静的シナリオについての説明を終わる。
続いて”動的なシナリオ”について説明する。動的シナリオとは、AVClipの再生制御を動的に規定するシナリオデータである。”動的に”というのは、ホームシアターシステムを構成する機器における状態変化やユーザからのキーイベントにより再生制御の中身がかわることをいう。BD-ROMでは、この再生制御の動作環境として2つのモードを想定している。1つ目は、DVD再生装置の動作環境と良く似た動作環境であり、コマンドベースの実行環境である。2つ目は、Java(登録商標)仮想マシンの動作環境である。これら2つの動作環境のうち1つ目は、HDMVモードと呼ばれる。2つ目は、BD-Jモードと呼ばれる。これら2つの動作環境があるため、動的シナリオはこのどちらかの動作環境を想定して記述される。HDMVモードを想定した動的シナリオはMovie Objectと呼ばれる。一方BD-Jモードを想定した動的シナリオはBD-J Objectと呼ばれる。
【００４５】
先ず初めにMovie Objectについて説明する。
＜Movie Object＞
Movie Objectは、図２に示したMovieObject.bdmvというファイルに格納され、ナビゲーションコマンド列を含む。
ナビゲーションコマンド列は、条件分岐、ストリーム供給装置３００における状態レジスタの設定、状態レジスタの設定値取得等を実現するコマンド列からなる。Movie Objectにおいて記述可能なコマンドを以下に示す。
【００４６】
PlayPLコマンド
書式:PlayPL(第１引数，第２引数)
第１引数は、プレイリストの番号で、再生すべきプレイリストを指定することができる。第２引数は、そのプレイリストに含まれるPlayItemや、そのプレイリストにおける任意の時刻、Chapter、Markを用いて再生開始位置を指定することができる。
【００４７】
PlayItemによりPL時間軸上の再生開始位置を指定したPlayPL関数をPlayPLatPlayItem()、
ChapterによりPL時間軸上の再生開始位置を指定したPlayPL関数をPlayPLatChapter()、
時刻情報によりPL時間軸上の再生開始位置を指定したPlayPL関数をPlayPLatSpecified Time()という。
【００４８】
Movie Objectにおけるナビゲーションコマンドの記述は、DVDにおけるナビゲーションコマンドの記述方式と良く似ているので、DVD上のディスクコンテンツを、BD-ROMに移植するという作業を効率的に行うことができる。Movie Objectについては、以下の国際公開公報に記載された先行技術が存在する。詳細については、本国際公開公報を参照されたい。
【００４９】
国際公開公報W0 2004/074976
以上でMovie Objectについての説明を終える。続いてBD-J Objectについて説明する。
＜BD-J Object＞
BD-J Objectは、Java(登録商標)プログラミング環境で記述された、BD-Jモードの動的シナリオであり、00001.bobjというファイルに格納される。Movie Objectとの違いは、BD-J Objectにコマンドが直接記述されていない点である。つまりMovie Objectにおいて制御手順は、ナビゲーションコマンドにより直接記述されていた。これに対しBD-J Objectでは、Java(登録商標)アプリケーションに対する指定をアプリケーション管理テーブルに記載することにより、間接的に制御手順を規定している。このような間接的な規定により、複数動的シナリオにおいて制御手順を共通化するという、制御手順の共通化を効率的に行うことができる。
【００５０】
またMovieObjectにおけるプレイリスト再生は、プレイリスト再生を命じるナビゲーションコマンド(PlayPlコマンド)の記述によりなされるが、BD-J Objectにおけるプレイリスト再生は、プレイリスト再生手順を示すプレイリスト管理テーブルをBD-J Objectに組み込むことで記述が可能になる。
このBD-JモードにおけるJava(登録商標)アプリケーションについて説明する。ここでBD-Jモードが想定しているJava(登録商標)プラットフォームは、Java(登録商標)2Micro_Edition(J2ME) Personal Basis Profile(PBP 1.0)と、Globally Executable MHP specification(GEM1.0.2)for package media targetsとをフル実装したものである。
【００５１】
このBD-JモードにおけるJava(登録商標)アプリケーションは、xletインターフェイスを通じて、Application Managerにより、制御される。xletインターフェイスは、“loaded”,“paused”、“active”,“destoryed”といった4つの状態をもつ。
上述したJava(登録商標)プラットフォームは、JFIF(JPEG)やPNG,その他のイメージデータを表示するためのスタンダードJava(登録商標)ライブラリを含む。このため、Java(登録商標)アプリケーションは、HDMVモードにおいてIGストリームにより実現されるGUIとは異なるGUIフレームワークを実現することができる。Java(登録商標)アプリケーションにおけるGUIフレームワークは、GEM1.0.2にて規定されたHAViフレームワークを含み、GEM1.0.2におけるリモートコントロールナビゲーション機構を含む。
【００５２】
これにより、Java(登録商標)アプリケーションは、HAViフレームワークに基づくボタン表示、テキスト表示、オンライン表示(BBSの内容)といった表示を、動画像の表示と組み合わせた画面表示を実現することができ、リモートコントロールを用いて、この画面表示に対する操作を行うことができる。
このJava(登録商標)アプリケーションの実体にあたるのが、図２におけるBDMVディレクトリ配下のBDJAディレクトリに格納されたJava(登録商標)アーカイブファイル(00001.jar)である。
【００５３】
BD-J Objectについては、以下の国際公開公報に記載された先行技術が存在する。詳細については、本国際公開公報を参照されたい。
国際公開公報W0 2004/045840 A1
W0 2005/036555 A1
W0 2005/036546 A1
以上でBD-J Objectについての説明を終える。
【００５４】
＜sound.bdmv＞
続いてsound.bdmvについて説明する。sound.bdmvは、IGストリームにて描画されたメニューやJava(登録商標)アプリケーションのGUIフレームワークに対して操作がなされた場合、クリック音として出力すべきオーディオデータ(かかるオーディオデータを、サウンドデータという)が格納されるファイルである。
【００５５】
図１０は、ファイルsound.bdmvの構成を示す図である。ファイルsound.bdmvは、Sound Data()と、Sound Index()とからなる。Sound Data()は、複数のサウンドデータ(sound_data(0),sound_data(1))からなる。これらのサウンドデータのうち、sound_data(0)は、メニューに対する操作時に、第１のクリック音として出力される音源である。sound_data(1)は、メニューに対する操作時に、第２のクリック音として出力される音源である。これらのサウンドデータは、sound_IDと呼ばれる識別子にて指示される。
【００５６】
Sound Index()は、サウンド数(number_of_sound_entries)、sound_data(0)に対するインデックス、sound_data(1)に対するインデックス等からなる。
インデックスは、モノラル/ステレオの別などの各サウンドの属性(sound_attributes)、対応するサウンドデータのアドレス(sound_data_start_address)、対応するサウンドデータの連続長(sound_data_length)からなる。
【００５７】
図２〜図６に示したように、映画の劇中に使用される音声の音源は、Primaryオーディオストリームとして、AVClip内に多重化される。これは、映画劇中の音声を表すPrimaryオーディオストリームを、ビデオストリームの読み出しと同時に供給するためである。これに対し、ファイルsound.bdmvは、AVClipとは別個のファイルとしてBD-ROMに記録され、ユーザーのメニュー操作に対するクリック音を格納する。ファイルsound.bdmvは、AVClipとは別個のファイルとして記録されるので、AVClipの読み出し中に、サウンドデータを出力させようとすると、ファイルsound.bdmvを読み出すための光ピックアップのジャンプが生じ、AVClipの読み出しが中断せざるを得なくなる。かかる中断が生じれば、AVClip再生に途切れが出る。
【００５８】
かかるAVClipの再生途切れを避けるには、AVClipの再生がなされていない時点において、ファイルsound.bdmvを予めバッファにプリロードしておく必要がある。つまりAVClipの再生に先立ち、ファイルsound.bdmv内のサウンドデータを、プリロードしておく必要がある。以上がファイルsound.bdmvについての説明である。
＜Index.bdmv＞
Index.bdmvは、タイトルを構成する、Movie Object又はBD-J Objectを示すテーブルである。
【００５９】
Titleにおいて、あるTitleの構成要素となるMovieObjectはどれであるか、又は、あるTitleの構成要素となるBD-J Objectはどれであるのかを定義する。
Index.bdmvについては、以下の国際公開公報に詳細が記載されている。詳細については、本公報を参照されたい。
国際公開公報WO 2004/025651 A1公報
以上が、BD-ROM１００についての説明である。
【００６０】
＜ローカルストレージ２００＞
続いて、ローカルストレージ２００について説明する。図１１は、ローカルストレージ２００の内部構成を示す図である。本図に示すように、本発明に係る記録媒体は、応用層に対する改良により、生産することができる。
本図の第４段目にローカルストレージ２００を示し、第３段目にローカルストレージ２００上のトラックを示す。本図のトラックは、ローカルストレージ２００の内周から外周にかけて螺旋状に形成されているトラックを、横方向に引き伸ばして描画している。このトラックは、リードイン領域と、ボリューム領域と、リードアウト領域とからなる。本図のボリューム領域は、物理層、ファイルシステム層、応用層というレイヤモデルをもつ。ディレクトリ構造を用いてローカルストレージ２００の応用層フォーマット(アプリケーションフォーマット)を表現すると、図中の第1段目のようになる。
【００６１】
本図のディレクトリ構造においてROOTディレクトリの配下には、「organization＃1」というサブディレクトリがあり、その配下に、「disc＃1」というサブディレクトリがある。ディレクトリ「organization＃1」とは、映画作品の特定のプロバイダに割り当てられたディレクトリである。「disc＃1」は、そのプロバイダが提供したBD-ROMのそれぞれに割り当てられたディレクトリである。
【００６２】
特定のプロバイダに対応するディレクトリに、各BD-ROMに対応するディレクトリを設けることにより、各BD-ROMについてのダウンロードデータが個別に格納される。このサブディレクトリの配下に、BD-ROMに格納されていたのと同様、PlayList情報(00002.mpls)、Clip情報(00002.clpi)、AVClip(00002.m2ts),BD-J Object(00002.bobj),Java(登録商標)アーカイブファイル(00002.jar),クリック音データ(sound.bdmv),Movie Object.bdmvが格納されている。  
【００６３】
続いて、ローカルストレージ２００の構成要素となる、PlayList情報、Clip情報、AVClipについての説明する。
＜ローカルストレージ２００の構成その１.AVClip＞
ローカルストレージ２００上のAVClip(00002.m2ts)は、SubClipを構成する。SubClipとは、MainClipと同時にデコードされ再生されるエレメンタリストリームを含むAVClipである。かかるSubClipには、『Primaryオーディオストリーム』、『Secondaryオーディオストリーム』、『Presentation Graphics(PG)ストリーム』、『Interactive Graphics(IG)ストリーム』といった種別がある。(以後、SubClipのことをOut-of-MUXストリームと呼ぶことがある。)
本実施形態では、図１１に示した00002.m2tsは、Secondaryオーディオストリーム、PGストリーム、IGストリームが1つのSubClipに多重化されているものとする。以降Secondaryオーディオストリームの詳細を説明する。
【００６４】
＜Out-of-MUXストリームの説明その１.Secondaryストリーム＞
『Primaryオーディオストリーム』が、いわゆる主音声となるオーディオストリームであるのに対し、『Secondaryオーディオストリーム』とは、いわゆる副音声となるオーディオストリームである。SubClip再生時において、Secondaryオーディオストリームの音声再生は、Primaryオーディオストリームの再生音声にミキシングされた上で出力に供される。Secondaryオーディオストリームとして扱われる音声には、例えば“コメンタリ音声”がある。Primaryオーディオストリームとなる主音声が、映画作品本編の音声であり、Secondaryオーディオストリームとなる副音声が、映画監督のコメンタリ音声である場合、かかる映画作品本編の音声は、コメンタリ音声がミキシングされた上で出力されることになる。
【００６５】
Secondaryオーディオストリームは、ローカルストレージ２００にのみ記録され再生に供されるが、BD-ROMには記録されない。Primaryオーディオストリームは、BD-ROMに置かれていても、ローカルストレージ２００に置かれていてもよい。またPrimaryオーディオストリームの符号化コーディックは、Secondaryオーディオストリームの符号化コーディックと異なっていてもよい。
【００６６】
図１２は、SubClipに多重化されるエレメンタリストリームを示す図である。SubClipには、0x1200から0x121FまでのPIDをもつPGストリーム、0x1400から0x141FまでのPIDをもつIGストリームのほかに、0x1A00から0x1A1FまでのPIDをもつSecondaryオーディオストリームが多重化される。ここでSubClipにおけるPGストリーム、IGストリームのPIDは、MainClipにおけるPGストリーム、IGストリームのPIDと同じになっているものの、SecondaryオーディオストリームのPIDは、上位バイトが異なるため、32本のSecondaryオーディオストリームのPIDは、32本のPrimaryオーディオストリームのPIDと、一切重複していない。
【００６７】
図１３は、BD-ROM規格におけるPID割当マップを示す図である。本図によれば、0x0100は、Program_mapに割り当てられ、0x1001はPCRに、0x1011はビデオストリームに、0x1100から0x111FまでのゾーンはPrimaryオーディオストリームに、0x1200から0x121FまでのゾーンはPGストリームに、0x1400から0x141FまでのゾーンはIGストリームに、0x1A00から0x1A1FまでのゾーンはSecondaryオーディオストリームに割り当てられている。このPID割当マップからもわかるように、Primaryオーディオストリームに割り当てられているゾーンと、Secondaryオーディオストリームに割り当てられているゾーンとが異なっていることがわかる。
【００６８】
図１４（ａ）は、Secondaryオーディオストリームの内部構成を示す図である。
本図に示すように、Secondaryオーディオストリームは、複数のオーディオフレームからなる。図１４（ｂ）は、オーディオフレームの一例を示す図である。Secondaryオーディオストリームのオーディオフレームは、メタデータを含む。
図１４（ｃ）は、メタデータの内部構成を示す図である。メタデータは、本図に示すように、“ダウンミキシング情報”と、“ゲイン制御情報”とからなる。
【００６９】
“ダウンミキシング情報”は、ダウンミキシングのための情報である。ダウンミキシングとは、音声の再生チャネル数を符号化チャンネル数よりも少なくする変換であり、ダウンミキシング情報は、ダウンミキシングのための変換係数行列を規定することにより、このダウンミキシングをストリーム供給装置３００やオーディオアンプ４００等のオーディオ再生を担当する機器に行わせる。5.1chの音声ストリームを2chで再生することなどがダウンミキシングの一例である。
【００７０】
“ゲイン制御情報”とは、Primaryオーディオストリーム側の音声出力時のゲインを上げ下げする情報であるが、ここでは下げるだけでよい。図１４（ｄ）は、ゲイン制御情報の一例を模式的に示す。このようにSecondaryオーディオストリームのメタデータは、同時に再生されるPrimaryオーディオストリームの出力をリアルタイムに下げることができる。PrimaryオーディオとSecondaryオーディオを重畳する場合には、あらかじめミキシングされるPrimaryオーディオとSecondaryオーディオの対が分かっているため、2本のオーディオのゲインをリアルタイムに制御する必要は無く、Primaryオーディオのゲインだけを下げてSecondaryオーディオのゲインはそのままにミキシング(重畳)することで十分である。
【００７１】
尚、ゲイン制御情報は、PlayListMarkのmark_time_stampに指定される時刻より、durationの時間だけ、有効なゲイン制御情報を格納するようにしても良い。
図１５は、Secondaryオーディオストリーム内のメタデータにより、Primaryオーディオストリームの音量がどのように制御されるかを示す図である。本図における第1段目は、時間軸を示し、第2段目は、ミキシング可能なPrimaryオーディオストリームの再生出力を示す。第3段目は、Secondaryオーディオストリームの再生出力を示し、第4段目は、Secondaryオーディオストリームに多重化されたメタデータを示す。
【００７２】
再生時刻t1にあたるオーディオフレームに配置されたメタデータは、Primaryオーディオストリームの再生出力の音量を全体的に抑えるものであり、再生時刻t2にあたるオーディオフレームに配置されたメタデータは、Primaryオーディオストリームの再生出力の音声を元に戻すものである。再生時刻t1,t2に、かかるメタデータを配置することで、Primaryオーディオストリームとの再生出力の音量と、Secondaryオーディオストリームの再生出力の音量とが合わさり、スピーカを破損させてしまうという事態を避けることができる。
Secondaryオーディオの"ゲイン制御情報“を使ってリアルタイムにミキシングのゲイン調整を行なう場合には、t1からt2までのSecondaryオーディオの各オーディオフレームに格納された”ゲイン制御情報“がPrimaryオーディオのゲインを所定の量だけ下げることを指定していれば良い。特殊再生などでt1からt2の間に飛び込んでミキシング再生を行なうことを想定すれば、常に適切なゲイン制御が可能なこちらの方法の方が都合が良い。
【００７３】
＜ローカルストレージ２００の構成その２.PlayList情報＞
続いて、ローカルストレージ２００上のPlayList情報について説明する。拡張子“mpls”が付与されたファイル(00002.mpls)は、MainPath、Subpathと呼ばれる2種類の再生経路を束ねたものをPlaylist(PL)として定義する情報である。図１６は、PlayList情報のデータ構造を示す図であり、本図に示すようにPlayList情報は、MainPathを定義するMainPath情報(MainPath())と、チャプターを定義するPlayListMark情報(PlayListMark())と、Subpathを定義するSubpath情報(Subpath())とからなる。かかるPlayList情報の内部構成、及び、PlayItem情報の内部構成は、BD-ROMのものと同じであり、説明を省略する。
【００７４】
＜PlayList情報の説明その１.Subpath情報＞
MainPathが、主映像たるMainClipに定義される再生経路であるのに対し、Subpathは、MainPathと同期すべきSubClipに対して定義される再生経路である。
図１７は、Subpath情報の内部構成をクローズアップして示す図である。本図における矢印hc0に示すように各Subpathは、SubClipの類型を示すSubPath_typeと、1つ以上のSubPlayItem情報(・・・SubPlayItem()・・・)とを含む。
【００７５】
図中の引き出し線hc1は、SubPlayItem情報の構成をクローズアップしている。SubPlayItem情報は、図中の矢印hc1に示すように『Clip_information_file_name』、『Clip_codec_identifier』、『ref_to_STC_id[0]』、『SubPlayItem_In_time』、『SubPlayItem_Out_time』、『sync_PlayItem_id』、『sync_start_PTS_of_PlayItem』からなる。
『Clip_information_file_name』は、Clip情報のファイル名を記述することにより、SubPlayItemに対応するSubClipを一意に指定する情報である。
【００７６】
『Clip_codec_identifier』は、AVClipの符号化方式を示す。
『ref_to_STC_id[0]』は、このPlayItemが対象としているSTC_Sequenceを一意に示す。
『SubPlayItem_In_time』は、SubClipの再生時間軸上における、SubPlayItemの始点を示す情報である。
『SubPlayItem_Out_time』は、SubClipの再生時間軸上における、SubPlayItemの終点を示す情報である。
【００７７】
『sync_PlayItem_id』は、MainPathを構成するPlayItemのうち、本SubPlayItemが同期すべきものを一意に指定する情報である。SubPlayItem_In_timeは、このsync_PlayItem_idで指定されたPlay Itemの再生時間軸上に存在する。
『sync_start_PTS_of_PlayItem』は、sync_PlayItem_idで指定されたPlay Itemの再生時間軸上において、SubPlayItem_In_timeで指定されたSubPlayItemの始点が、どこに存在するかを示す。
【００７８】
＜Subpath情報の詳細その１.SubPath_type＞
続いてSubPath_typeについて説明する。SubPath_typeは、0から255までの値に設定されることにより、SubPath情報により定義されるSubPathがどのような再生経路であるのかを示す。
SubPath_typeが5に設定されている場合、このSubPath情報により定義されるSubPathは、Primaryオーディオ再生パスであることを示す。このPrimaryオーディオ再生パスは、MainPath(PlayItem)にて参照されるPrimaryオーディオに置き換えて再生されるべきオーディオストリームがSubPath(SubPlayItem)内に格納されているときに使われる。
【００７９】
SubPath_typeが6に設定された場合、本SubPath情報は、追加・置換のためのPresentation Graphics再生パスを定義していることを示す。何に対する追加・置換であるかというと、PlayItem情報にて再生され得るPGストリームに対して、追加・置換され得るPGストリームである。
SubPath_typeが7に設定された場合、本SubPath情報は、追加・置換のためのIntaractive Graphics再生パスを定義していることを示す。何に対する追加・置換であるかというと、PlayItem情報にて再生され得るIGストリームに対して、追加・置換され得るIGストリームである。
【００８０】
SubPath_typeが8に設定された場合、SubPath情報はSecondaryオーディオ再生パスを定義する旨を示す。このSecondaryオーディオ再生パスは、追加のために定義されている。何に対する追加かというと、PlayItem情報にて再生され得るPrimaryオーディオの再生音声にミキシングされるべきSecondaryオーディオである。
例えば、PrimaryオーディオとSecondaryオーディオのミキシング再生を行う場合には、２つのオーディオデコーダとミキサーを動作させる必要があるため、通常のPrimaryオーディオだけを再生する場合とは要求が異なり、前もってプレイヤがどのような再生タイプかを取得できる必要がある。このために、SubPath_typeやSTN_tableのPIDによって、同期再生すべきSecondaryオーディオが存在することを再生前にプレイヤに通知することが可能となる。
【００８１】
以上がSubPath_typeについての説明である。
＜SubPath情報についての詳細その２.三者の関係＞
ここでの三者とは、ローカルストレージ２００上のSubClip、ローカルストレージ２００上のPlayList情報、BD-ROM上のMainClipの三者をいう。
図１８は、ローカルストレージ２００上のSubClipと、ローカルストレージ２００上のPlayList情報と、BD-ROM上のMainClipとの対応を示す図である。本図において第1段目は、ローカルストレージ２００上に存在するSubClipを示す。この第1段目に示すように、ローカルストレージ２００上のSubClipには、Secondaryオーディオストリーム、PGストリーム、IGストリームといった種別がある。これらのうち何れかが、SubPathとして同期再生に供されることになる。
【００８２】
第2段目は、PlayList情報により定義される2つの時間軸を示す。第2段目のうち下側の時間軸は、PlayItem情報により定義されるPlayItem時間軸を示し、上側の時間軸はSubPlayItemにより定義されるSubPlayItem時間軸を示す。
本図に示すように、SubPlayItem情報のSubPlayItem_Clip_information_file_nameは、STREAMディレクトリに格納された.m2tsファイルのうち、どれを再生区間指定の対象として選ぶかという、SubClip選択の役割を果たしていることがわかる。
【００８３】
そしてSubPlayItem.IN_time、SubPlayItem.Out_timeは、SubClip上の、再生区間の始点及び終点を定義するという役割を果たしていることがわかる。
矢印Sync_PlayItem_Idは、どのPlayItemとの同期を意図しているかという同期指定の役割を果たし、sync_start_PTS_of_PlayItemは、PlayItem時間軸上におけるSubPlayItem_In_timeの位置を決める役割を果たす。
【００８４】
図１９は、MainClipに対して設定されたEP_map及びPlayItem時間軸と、SubClipに対して設定されたEP_map及びSubPlayItem時間軸とを集約して示す図である。
本図の中段、下4段〜下1段は、図９に示したPlayItem時間軸、ピクチャ列、MainClip時間軸、EP_map、TSパケット列を示す。
また上1段目〜上3段目は、TSパケット列、EP_map、SubClip時間軸を示す。上4段目は、SubPlayItem時間軸を示す。
【００８５】
以上が、SubPath情報についての説明である。
＜STN_table＞
このローカルストレージ２００におけるPlayList情報において特徴的であるのは、STN_Tableである。以降、ローカルストレージ２００上のPlayList情報について説明する。
STN_tableは、PlayItem情報のClip_Information_file_nameで指定されているAVClipに多重化された複数エレメンタリストリーム、SubPlayItem情報のClip_Information_file_nameで指定されているOut_of_MUXストリームのうち、再生可能なものを示すテーブルである。具体的にいうとSTN_tableは、MainClipに多重化されている複数エレメンタリストリーム、SubClipに多重化されているOut_of_MUXストリームのそれぞれについてのStream_entryを、Stream_attributeと対応付けることで構成される。
【００８６】
図２０は、STN_tableの内部構成を示す図である。本図に示すようにSTN_tableは、STN_tableにおけるentryと、attributeとの組み(entry-attribute)を複数含み、これらentry−attributeの組みの個数(number_of_video_stream_entries,number_of_audio_stream_entries,number_of_PG_stream_entries,number_of_IG_stream_entries)を示すデータ構造になっている。
【００８７】
entry-attributeの組みは、図中の括弧記号”｛”に示すように、Play Itemにおいて再生可能なビデオストリーム、Primaryオーディオストリーム、Secondaryオーディオストリーム、PGストリーム、IGストリームのそれぞれに対応している。特に注意すべきは、SecondaryオーディオストリームにおけるStream_entryと、Stream_attributeとの組みが、Comb_info_Secondary_audio_Primary_audioと対応付けられている点である。
【００８８】
entry−attributeの詳細について説明する。
図２１（ａ）は、ビデオストリームに対応したStream_attributeを示す図である。
ビデオストリームにおけるStream_attributeは、ビデオストリームの表示方式を示す『Video_format』と、ビデオストリームの表示周波数を示す『frame_rate』等を含む。
【００８９】
図２１（ｂ）は、Primaryオーディオストリーム、Secondaryオーディオストリームに対応したStream_attributeを示す図である。
Primaryオーディオストリーム,SecondaryオーディオストリームにおけるStream_attributeは、オーディオストリームの符号化方式を示す『stream_coding_type』と、stream_coding_typeにより示される符号化方式がDTSまたはDTS-HDである場合に、オーディオフレームの構成を示す『format_depending_coding_type』と、対応するオーディオストリームのチャネル構成を示す『audio_presentation_type』と、対応するオーディオストリームのサンプリング周波数を示す対応する『Sampling_frequency』と、オーディオストリームの言語属性を示す『audio_language code』からなる。
【００９０】
format_depending_coding_typにおいて、オーディオフレームの構成は、Base,Level1,Level2,Level3という、4つのパラメータの何れかを用いて規定される。図２２は、DTS-HD形式のPrimaryオーディオストリームのオーディオフレームにおいて、「format_depending_coding_type」におけるBase,Level1,Level2,Level3がそれぞれ、どのようなデータ構造に割り当てられるかを示す図である。DTS-HDオーディオストリームのオーディオフレームは、基礎データである「Core 
Substream」と拡張データである「Extension Substream」とからなる。Core 
SubstreamはDTSオーディオストリームと同等であり、1.5Mbpsの帯域でも伝送させることができる。従ってS/PIDFでもこのCore 
Substreamを伝送させることができる。それに対して、Extension 
Substreamは、DTSオーディオストリームには存在しない拡張データであり、DTS-HDに対応したデコーダでないと再生ができない。
【００９１】
DTS-HDのCore SubstreamであるCOREは、48kHz/5.1chのオーディオデータを格納している。
Extension Substreamは、図の第3段目〜第5段目に示すように
XCH、X96、XLLの何れかからなる。
DTS-ESのXCHは、Core Substreamと共に用いることで、5.1chに1チャネルを足した6.1Ch,48KHzの音声再生が可能となるオーディオデータを格納することができ、DTS-96/24のX96は、Core Substreamと共に用いることで、5.1Ch,96KHzの音声再生が可能となるオーディオデータを格納することができる。DTS-HDのXLLは、Core Substreamと共に用いることで、192kHz/マルチチャンネルロスレスの音声再生が可能となるオーディオデータを格納することができる。
【００９２】
「format_depending_coding_type」にBaseが設定されている場合、オーディオフレームがCore SubstreamであるCOREのみから構成されていることが示される。「format_depending_coding_type」にLevel1が設定されている場合、オーディオフレームがCore SubstreamであるCOREとExtension SubstreamであるXCHとから構成されたDTS-ES形式であることが示される。「format_depending_coding_type」にLevel2が設定されている場合、オーディオフレームがCore SubstreamであるCOREとExtension SubstreamであるX96とから構成されたDTS-96/24形式であることが示される。「format_depending_coding_type」にLevel3が設定されている場合、オーディオフレームがCore SubstreamであるCOREとExtension SubstreamであるXLLとから構成されたDTS-HD形式であることが示される。
【００９３】
尚、上記ではCore SubstreamにはDTSオーディオストリームのCOREだけが格納されるとして説明したが、「format depending coding type」にはCore SubstreamとExtension Substreamを区別せずに、DTS(CORE)、DTS-ES(XCH)、DTS-96/24(X96)、DTS-HD(XLL)のどの拡張データが含まれているかを示すようにしても良い。
図２１（ｃ）は、ビデオストリームにおけるStream_entryを示す図である。本図に示すように、ビデオストリームのStream_entryは、ビデオストリームの多重分離に用いられるPIDを示す「ref_to_Stream_PID_of_Main_Clip」を含む。
【００９４】
MainClipにて多重化されているPrimaryオーディオストリーム、IGストリーム、PGストリームのStream_entryは、この図２１（ｃ）の形式になっている。
図２１（ｄ）は、SubClipにて多重化されているストリーム(以下Secondaryオーディオストリームとして説明)におけるStream_entryを示す図である。SecondaryオーディオストリームのStream_entryは、Secondaryオーディオストリームを参照しているSubPath情報を示す『ref_to_Sub_Path_id』、Secondaryオーディオストリームが多重化されているSubClipを示す『ref_to_Sub_Clip_entry_id』、Secondaryオーディオストリームの多重分離に用いられるPIDを示す『ref_to_stream_PID_of_Sub_Clip』を含む。
【００９５】
図２１（ｅ）は、SecondaryオーディオストリームにおけるStream_entryと、Stream_attributeとの組みに対応付けられている、Comb_info_Secondary_audio_Primary_audioの内部構成を示す。Comb_info_Secondary_audio_Primary_audioは、各Secondaryオーディオストリームごとに組合せ可能なPrimaryオーディオストリームの総数を示すnumber_of_primary_audio_stream_ref_entriesと、再生時に組合せることができるPrimaryオーディオストリームのストリーム番号を示すPrimary_audio_stream_id_ref[0]〜[n]とからなる。
【００９６】
図２３は、Comb_info_Secondary_audio_Primary_audioによるPrimaryオーディオストリームの指定を示す図である。ここで本図の右側は、32本のSecondaryオーディオストリームを示し、左側は、32本のPrimaryオーディオストリームを示す。そして矢印ym1は、Secondaryオーディオストリーム＃1におけるComb_info_Secondary_audio_Primary_audioによる指定を示す。このようにSecondaryオーディオストリーム毎に設定されるComb_info_Secondary_audio_Primary_audioは、そのSecondaryオーディオストリームの再生出力をミキシングすることができる1つ以上のPrimaryオーディオストリームを一意に指定する。これにより、所定の属性を有しているようなPrimaryオーディオストリームの再生時においては、Secondaryオーディオストリームをミキシングさせず、それ以外の属性を有しているようなPrimaryオーディオストリームの再生時においてのみ、Secondaryオーディオストリームをミキシングするというような、音声属性に応じた、ミキシングの可否を、オーサリング時に設定しておくことができる。
【００９７】
以上がローカルストレージ２００の構成たるPlayList情報についての説明である。以上で、ローカルストレージ２００についての説明を終える。
＜バーチャルパッケージ＞
以降、バーチャルパッケージについて説明する。図２４は、ストリーム供給装置３００により生成されるバーチャルパッケージを示す図である。本図の左上は、BD-ROMの記録内容を示し、左下は、ローカルストレージ２００の記録内容を示す。右側は、バーチャルパッケージの構成を示す。
【００９８】
ストリーム供給装置３００は、BD-ROMに存在するAVClip、Clip情報、PlayList情報に、ローカルストレージ２００に存在するAVClip、Clip情報、PlayList情報を組み合わせて、仮想的な１つのBD-ROMディスクイメージ（バーチャルパッケージ）を得る。
この組合せは、
i)Local Storage上のPlayList(00002.mpls)を、BD-ROMにおけるMPLSディレクトリに仮想的に追加し、
ii)Local Storage上のClip情報＃2(00002.clpi)を、BD-ROMにおけるCLPIディレクトリに仮想的に追加し、
iii)Local Storage上のAVClip＃2(00002.m2ts)を、BD-ROMにおけるSTREAMディレクトリに仮想的に追加することでなされる。
【００９９】
こうすることにより、図２４の右側に示すようなバーチャルパッケージが構成される。
以上が記録媒体についての説明である。続いて本発明に係るオーディオアンプ４００について説明する。
図２５は、本発明に係るオーディオアンプ４００の内部構成を示す図である。本発明に係るオーディオアンプ４００は、本図に示す内部構成に基づき、工業的に生産される。本発明に係るオーディオアンプ４００は、主としてシステムLSIを装置のキャビネット及び基板に実装することで工業的に生産することができる。システムLSIは、オーディオアンプ４００の機能を果たす様々な処理部を集積した集積回路である。こうして生産されるオーディオアンプ４００は、バッファ３１、オーディオデコーダ３２、Mixer３３、コントローラ３４、HDMI送受信部３５、EEPROM３６から構成される。
【０１００】
バッファ３１は、HDMI送受信部３５で受信したデータのうち、Primaryオーディオストリームを、先入れ先だし式に格納して、オーディオデコーダ３２に供する。
オーディオデコーダ３２は、バッファ３１に格納されたPrimaryオーディオストリームに対しデコード処理を行い、非圧縮状態のLPCM状態のオーディオデータを得てMixer３３へ出力する。
【０１０１】
Mixer３３は、オーディオデコーダ３２から出力されたデジタルオーディオを、オーディオアンプ４００に接続されているスピーカ５００のスピーカ数や配置（以下、スピーカ構成という）に応じたチャンネル数となるように変換し、各スピーカへ割り当てて出力する。例えば、デコードして得られた5.1chのデジタルオーディオを接続されたスピーカ数（2.1chなど）に減らして出力することもあれば、デコードして得られた2chのデジタルオーディオを接続されたスピーカ数（5.1chなど）に増やして出力することもある。
【０１０２】
コントローラ３４は、CPUが命令ROMに記録されているプログラムを読み出して実行することで、オーディオアンプ４００の動作を制御する。
HDMI送受信部３５は、HDMIを介して接続されたストリーム供給装置３００へ自装置の機器性能を示す情報を送信する。また、HDMI送受信部３５は、HDMIを介したストリーム供給装置３００からのオーディオデータの受信を行なう。
【０１０３】
EEPROM３６は、HDMI送受信部３５がストリーム供給装置３００へ通知する、自装置の機器性能を示す情報（以下、DIB（Decoder Infomation Block））を保持している不揮発性メモリである。DIBとしては、EIA/CEA-861Bに規定されたE-EDID（ENHANCED EXTENDED DISPLAY IDENTIFICATION DATA）等を用いることができる。図２６（ａ）は、DIBにおいて、音声再生性能に関する部分のデータ構造を模式的に示した図である。
【０１０４】
本図に示すようにDIBは、音声再生性能に関する情報として、「CODING TYPE」、「Format depending coding type」、「Channel Count」、「Channle/Speaker Allocation」、及び「Sample Frenquency」の各フィールドを含む。
図２６（ｂ）は、DIBの各フィールドに設定しうる値を示す。
「CODING TYPE」は、オーディオデコーダ３２でデコードすることができる符号化方式が、DTS-HD、MLP、DD+などのうち、どれであるかを示す。
【０１０５】
「Format depending coding type」は、「CODING TYPE」によりDTS-HDのデコードが可能であると示される場合に、DTSオーディオストリームの拡張規格であるDTS-HDオーディオストリームの拡張データを、どのレベルまでデコード可能であるかを示す。拡張データをデコード可能なレベルは、Base,Level1,Level2,Level3という、4つのパラメータの何れかを用いて規定される。
【０１０６】
「Channel Count」は、7.1ch、5.1ch、2chなどデコード可能なチャンネル数を示す。
「Channel/Speaker Allocation」は、5.1chのステレオ配置である「L/R/C/LS/RS/LFE」、7.1chのステレオ配置である「L/R/C/LS/RS/LR/RR/LFE」、2chのステレオ配置である「L/R」などのスピーカーの物理的な配置情報を示す。
「Sample Frenquency」は、「48KHz」、「192KHz」、「96KHz」などの再生することができるサンプリング周波数示す。
【０１０７】
以下、「Format depending coding type」の詳細について説明する。
「Format depending coding type」におけるBase,Level1,Level2,Level3はそれぞれ、DTS-HDに対して、図２２に示すように、BaseはDTS(CORE)に割り当てられ、Level1はDTS-ES(CORE+XCH)、Level2はDTS-96/24(CORE+X96)に割り当てられ、Level3はDTS-HD(CORE+XLL)に割り当てられる。そこで「Format depending coding type」にBaseが設定されている場合、オーディオデコーダ３２がDTS-HD形式のオーディオストリームのデコードにDTS(のCORE)のみをデコードすることが可能であることが示される。「Format depending coding type」にLevel1が設定されている場合、オーディオデコーダ３２がDTS-HD形式のオーディオストリームのデコードにDTS-ES(CORE+XCH)までデコードできることが示される。「Format depending coding type」にLevel2が設定されている場合、オーディオデコーダ３２がDTS-HD形式のオーディオストリームのデコードにDTS-96/24(CORE+X96)までデコードできることが示される。「Format depending coding type」にLevel3が設定されている場合、オーディオデコーダ３２がDTS-HD形式のオーディオストリームのデコードにDTS-HD(CORE+XCH+X96+XLL)までデコードできることが示される。
【０１０８】
以上が、本実施形態に係るオーディオアンプ４００のハードウェア構成である。続いて本実施形態に係るオーディオアンプ４００のソフトウェア構成について説明する。CPUが命令ROMに記録されたソフトウェアを読み出して実行することで、コントローラ３４は、オーディオアンプの音声再生を制御する。図２７は、コントローラ３４の処理手順を示す図である。
【０１０９】
ステップＳ４０１は、装置起動がなされたかか否かの起動待ち判定であり、もし起動されれば、HDMIを介した接続相手の機器の認証を行う（ステップＳ４０２）。この認証により、相互の正当性が判明すれば、ステップＳ４０３に移行する。ステップＳ４０３で、ストリーム供給装置３００へのEEPROM３６が保持しているDIBの送信処理をHDMI送受信部３５に実行させた後は、ステップＳ４０４に移行する。ステップＳ４０４は、オーディオストリームの受信待ちループであり、もしオーディオストリームを受信すれば（ステップＳ４０４でyes）、音声再生を開始する（ステップＳ４０５）。
【０１１０】
以上が、本実施形態に係るオーディオアンプ４００についての説明である。続いて本発明に係るストリーム供給装置３００について説明する。
図２８は、本発明に係るストリーム供給装置３００の内部構成を示す図である。本発明に係るストリーム供給装置３００は、本図に示す内部構成に基づき、工業的に生産される。本発明に係るストリーム供給装置３００は、主としてシステムLSIと、ドライブ装置という2つのパーツからなり、これらのパーツを装置のキャビネット及び基板に実装することで工業的に生産することができる。システムLSIは、ストリーム供給装置３００の機能を果たす様々な処理部を集積した集積回路である。こうして生産されるストリーム供給装置３００は、BD-ROMドライブ１a、バス１b、リードバッファ２a,b、デマルチプレクサ３a,b、ビデオデコーダ４、ビデオプレーン５、バッファ６a,b、オーディオデコーダ７a,b、DownMix/DownSample８、ミキサー９a、ミキサー９b、スイッチ１０a、エンコーダ１０b、Interactive Graphicsデコーダ１１、Interactive Graphicsプレーン１２、Presentation Graphicsデコーダ１３、Presentation Graphicsプレーン １４、JPEGデコーダ１５、Stillプレーン１６、合成部１７、STC生成部１８a,b、ATC生成部１９a,b、メモリ２１、コントローラ２２、PSRセット２３、PID変換部２４、通信部２５、操作受付部２６、HDMI送受信部２７から構成される。
【０１１１】
BD-ROMドライブ１aは、BD-ROMのローディング／イジェクトを行い、BD-ROMディスクに対するアクセスを実行する。
バス１bは、BD-ROMから読み出されたTSパケット、ローカルストレージ２００から読み出されたTSパケットが転送される。
リードバッファ２aは、FIFOメモリであり、BD-ROMディスク１００またはローカルストレージ２００から読み出されたTSパケットが先入れ先出し式に格納される。
【０１１２】
リードバッファ２bは、FIFOメモリであり、ローカルストレージ２００から読み出されたTSパケットが先入れ先出し式に格納される。
デマルチプレクサ３aは、バスに伝送しているTSパケットのうち、0x1011,0x1100〜0x111F,0x1200〜0x121F,0x1400〜141FのPIDをもつTSパケットのうち、PID変換部２４から通知されたPIDをもつものを、夫々ビデオデコーダ４、スイッチ１０ａ、Interactive Graphicsデコーダ１１、Presentation Graphicsデコーダ１３に出力する。
【０１１３】
デマルチプレクサ３bは、バス１bに伝送しているTSパケットのうち、0x1A00〜0x1A1FのPIDをもつもの、即ち、Secondaryオーディオストリームを構成するTSパケットの多重分離を行う。デマルチプレクサ３bによるSecondaryオーディオストリームの多重分離は、STN_tableに含まれるSecondaryオーディオストリームのstream_entryのうち、PSR14に格納されているストリーム番号に対応するものに記述されているPIDの参照値と、バス１bに転送されているTSパケットのPIDとを比較し、当該比較において一致するPIDをもつTSパケットを、スイッチ１０ａに出力することでなされる。再生可能なSecondaryオーディオストリームが1つだけである場合、上述した比較は、stream_entryに記述されているPID参照値の上位バイト“1A”と、バス１bに転送されているTSパケットのPIDの上位バイト“1A”との比較で足りる。何故なら、他にSecondaryオーディオストリームが存在しないので、Secondaryオーディオストリームであることを意味するPID上位バイトを参照すれば充分だからである。
【０１１４】
再生可能なSecondaryオーディオストリームが複数存在する場合、上述した比較は、stream_entryに記述されているPID参照値の上位バイト“1A”と、バス１bに転送されているTSパケットのPIDの上位バイト“1A”との比較に加え、stream_entryに記述されているPID参照値の下位バイト(0x00から0x1Fまでの数値)と、バス１bに転送されているTSパケットのPIDの下位バイト(0x00から0x1Fまでの数値)との比較が必要になる。何故なら、Secondaryオーディオストリームが複数存在するので、再生すべきSecondaryオーディオストリームを一意に特定するように、PIDの下位バイトまで参照する必要があるからである。
【０１１５】
ここでバス１bには、BD-ROMから読み出されたTSパケット、ローカルストレージ２００から読み出されたTSパケットが転送されているので、デマルチプレクサ３a、デマルチプレクサ３bは、これらBD-ROMから読み出されたTSパケット、ローカルストレージ２００から読み出されたTSパケットを、1本のトランスポートストリームとして扱ってバッファに取り込むことができる。Primaryオーディオストリームを構成するTSパケット、Secondaryオーディオストリームを構成するTSパケットに割り当てられているPIDは、PID割当マップにおいて、異なるゾーンに存在しているのでデマルチプレクサ３a、デマルチプレクサ３bは、これらを1つとして、取り込みつつもこれらPrimaryオーディオストリーム、Secondaryオーディオストリームを別々のエレメンタリストリームとして出力することができる。この際、デマルチプレクサ３a、デマルチプレクサ３bは、1つのトランスポートストリームに多重化されている複数のオーディオストリームを多重分離するのと同じ手順を経ることにより、デコーダに供給することができるので、1つのトランスポートストリームから所定のPIDを持つTSパケットだけを多重分離するようなデマルチプレクサと互換を保つ構成で、Primaryオーディオストリーム、Secondaryオーディオストリームを、該当するデコーダに供給することができる。
【０１１６】
尚、実装上デマルチプレクサを１つに集約することが考えられる。この場合にもPrimaryオーディオとSecondaryオーディオのPIDが異なることが同様に有効である。
以上が、BD-ROMドライブ１a、バス１b〜デマルチプレクサ３a、デマルチプレクサ３bについての説明である。
ビデオデコーダ４は、デマルチプレクサ３ａから出力された複数PESパケットを復号して非圧縮形式のピクチャを得てビデオプレーン５に書き込む。
【０１１７】
ビデオプレーン５は、非圧縮形式のピクチャを格納しておくためのプレーンである。プレーンとは、ストリーム供給装置３００において一画面分の画素データを格納しておくためのメモリ領域である。ビデオプレーン５における解像度は1920×1080であり、このビデオプレーン５に格納されたピクチャデータは、16ビットのYUV値で表現された画素データにより構成される。
【０１１８】
バッファ６aは、デマルチプレクサ３aから出力されたTSパケットがスイッチ１０aを介して供給される場合に、PID=0x1100〜111Fのうち再生されるべきオーディオストリームのPIDを有するTSパケットを、先入れ先だし式に格納して、オーディオデコーダ７aに供する。
バッファ６bは、デマルチプレクサ３ｂから出力されたTSパケットがスイッチ１０aを介して供給される場合に、PID=0x1A00〜1A1Fを有するTSパケットのうち再生されるべきオーディオストリームのPIDを有するTSパケットのみを、先入れ先だし式に格納して、オーディオデコーダ７bに供する。
【０１１９】
バッファ６cは、BD-ROM/ローカルストレージから読み出されたファイルsound.bdmvをプリロードしておくためのメモリである。バッファ６cへのプリロードは、BD-ROMのローディング時やタイトル切替時に行うことが望ましい。何故なら、AVClipの再生中にファイルsound.bdmvを読み出そうとすると、AVClipとは別のファイルを読み出すための光ピックアップのシークが発生するからである。一方、BD-ROMの装填時やタイトル切替時には、AVClipの再生が継続していることは希なので、かかるタイミングにファイルsound.bdmvを読み出すことにより、機器の応答性を高めAVClip再生が途切れにくくすることができる。
【０１２０】
オーディオデコーダ７aは、バッファ６aに格納されたTSパケットをPESパケットに変換して、このPESパケットに対しデコード処理を行い、非圧縮状態のLPCM状態のオーディオデータを得て出力する。これによりPrimaryオーディオストリームにおけるデジタル出力がなされる。
オーディオデコーダ７bは、バッファ６bに格納されたTSパケットをPESパケットに変換して、このPESパケットに対しデコード処理を行い、非圧縮状態のLPCM状態のオーディオデータを得て出力する。これによりSecondaryオーディオストリームにおけるデジタル出力がなされる。
【０１２１】
DownMix/DownSample８は、ミキシングを行うにあたって、オーディオデコーダ７aから出力されたデジタルオーディオの音声属性を、オーディオデコーダ７bから出力されるデジタルオーディオの音声属性に合わせるための変換を施す。ここで音声属性とは、サンプリング周波数かつ/またはチャンネル数であり、これらを整合させる処理がなされる。またDownMix/DownSample８もしくはミキサー９ａは、Secondaryオーディオストリームに多重化されている、メタデータに従い、Primaryオーディオストリーム側のゲインを下げたりする処理もオーディオデコーダ７bが抽出したゲイン制御情報によって行う。
【０１２２】
ミキサ９aは、オーディオデコーダ７aから出力されるLPCM状態のデジタルオーディオと、オーディオデコーダ７bから出力されるLPCM状態のデジタルオーディオとをミキシングする。
ミキサ９bは、ミキサ９aから出力されるLPCM状態のデジタルオーディオと、バッファ６cに格納されているサウンドデータとをミキシングする。このサウンドミキサ９bによるミキシングは、クリック音の発音を意図したようなナビゲーションコマンド、又は、クリック音の発音を意図したようなバイトコードを、CPU２２が解読することでなされる。
【０１２３】
スイッチ１０aは、デマルチプレクサ３aにより多重分離がなされた、Primaryオーディオストリームを構成するTSパケット、デマルチプレクサ３bにより多重分離がなされたSecondaryオーディオストリームを構成するTSパケットを、オーディオデコーダ７a,bに供給するか、オーディオデコーダ７a,bに供給せずそのエレメンタリーストリームだけを他機器にパススルー出力するかを、コントローラ２２の制御に応じて切り換えるスイッチである。本実施形態においては、スイッチ１０aは、Primaryオーディオストリームを構成するTSパケット及びSecondaryオーディオストリームを構成するTSパケットを、バッファ６a,bを介してオーディオデコーダ７a,bへ供給することなく、それらのエレメンタリーストリーム(もしくはPrimaryオーディオストリームのみ)をHDMI送受信部２７へ供給する。これによりストリーム供給装置３００は音声データをパスルー出力するよう動作する。パススルー出力の際に用いる、TSパケットからエレメンタリーストリームへの変換部（TS/PESヘッダの除去を行う）はスイッチ１０ａに組み込まれている。（図示はしていない）
エンコーダ１０bは、オーディオデコーダ７a,bのデコードにより得られ、ミキサー９a、ミキサー９bによるミキシングがなされたLPCM状態のオーディオデータを、サラウンド音声としてS/PDIFのようなデジタルインターフェース上で送る場合、ミキシングされたLPCMをDolby Digital(DD)形式やDigital Theater System(DTS)形式に圧縮符号化する。
【０１２４】
Interactive Graphics(IG)デコーダ１１は、BD-ROM１００又はローカルストレージ２００から読み出されたIGストリームをデコードして、非圧縮グラフィクスをIGプレーン１２に書き込む。
Interactive Graphics(IG)プレーン１２は、IGデコーダ１１によるデコードで得られた非圧縮グラフィクスが書き込まれる。またBD-Jモードにおいて、アプリケーションにより描画された文字やグラフィクスが書き込まれる。
【０１２５】
Presentation Graphics(PG)デコーダ１３は、BD-ROM又はローカルストレージ２００から読み出されたPGストリームをデコードして、非圧縮グラフィクスをPresentation Graphicsプレーン１４に書き込む。PGデコーダ１３によるデコードにより、字幕が画面上に現れることになる。
Presentation Graphics(PG)プレーン１４は、一画面分の領域をもったメモリであり、一画面分の非圧縮グラフィクスを格納することができる。
【０１２６】
JPEGデコーダ１５は、BD-ROM又はローカルストレージ２００に記録されているJPEGデータをデコードして、Stillプレーン１６に書き込む。
Stillプレーン１６は、JPEGデータを展開することで得られた非圧縮のグラフィクスデータが格納されるプレーンである。このグラフィクスデータは、Java(登録商標)アプリが描画する、GUIフレームワークのいわゆる“壁紙”として用いられる。
【０１２７】
合成部１７は、Interactive Graphicsプレーン１２の格納内容と、Presentation Graphicsプレーン１４の格納内容と、ビデオプレーン５の格納内容と、Stillプレーン１６の格納内容とを合成した合成画像を得る。
STC生成部１８a,bは、コントローラ２２の指示によってSystem Time Clock(STC)を生成し各デコーダの動作タイミングを調整する。
【０１２８】
ATC生成部１９a,bは、コントローラ２２の指示によってArrival Time Clock(ATC)を生成しデマルチプレクサの動作タイミングを調整する。  メモリ２１は、カレントのPL情報やカレントのClip情報を格納しておくためのメモリである。カレントPL情報とは、BD-ROMに記録されている複数PlayList情報のうち、現在処理対象になっているものをいう。カレントClip情報とは、BD-ROM/ローカルストレージに記録されている複数Clip情報のうち、現在処理対象になっているものをいう。
【０１２９】
コントローラ２２は、MovieObject.bdmvに格納されているMovie Objectや、BD-J Objectにて参照されているJava(登録商標)アプリケーションを解読し、この解読結果に従ったプレイリスト再生(カレントPlayList情報に従った再生制御のことである）を実行することで、BD-ROMの再生制御を実現する。また上述のようなATS、STCの制御も行なう。尚、コントローラ２２は、オーディオアンプが接続され再生可能なことがHDMI接続機器間の認証やDIBの受信により判明している場合には、HDMI送受信部２７及びS/PDIF等のI/Fユニットからテレビ６００へ出力するオーディオデータを削除するか、または無音のオーディオデータを出力するよう制御するとしてもよい。これによりホームシアターシステム環境での視聴中に、テレビ６００内蔵のスピーカから音声が再生されることを防ぐことができる。
【０１３０】
PSRセット２３は、ストリーム供給装置３００に内蔵されるレジスタであり、64個のPlayer Setting/Status Register(PSR)と、4096個のGeneral Purpose Register（GPR)とからなる。Player Setting/Status Registerの設定値(PSR)のうち、PSR4〜PSR8は、現在の再生時点を表現するのに用いられる。
PID変換部２４は、PSRセット２３に格納されているPrimaryオーディオストリーム、Secondaryオーディオストリームのストリーム番号を、STN_Tableに基づき、PIDに変換して、変換結果たるPIDをデマルチプレクサ３a、デマルチプレクサ３bに指示する。
【０１３１】
通信部２５は、読出装置における通信機能を実現するものであり、BD-JモードにおいてURL指定がJava(登録商標)アプリケーションから与えられれば、そのURLにあたるwebサイトとのTCPコネクション、FTPコネクション等を確立する。かかるコネクション確立によりwebサイトからのダウンロードをJava(登録商標)アプリケーションに行わせる。
操作受付部２６は、リモコンに対してなされた操作をユーザから受け付け、そうした操作を示すUser Operation情報をコントローラ２２に通知する。
【０１３２】
HDMI送受信部２７は、HDMIを介して接続された他の機器から、その機器に関する情報を受信してコントローラ２２に通知すると共に、受信した情報に基づいて、HDMIを介して接続された他の機器へのデータ送信を制御する。本実施形態では、ストリーム供給装置３００がテレビ６００及びオーディオアンプ４００とそれぞれ異なるHDMIケーブルで接続されており、HDMI送受信部２７は、ビデオデコーダ４のデコードにより得られたデジタル非圧縮のビデオをテレビ６００へ送信し、LPCMや圧縮されたオーディオデータを、オーディオアンプ４００へ送信するよう制御する。オーディオストリームの送信時に、HDMI送受信部２７は、現在送信中のオーディオストリームの詳細を示すAudio InfoFrameを送信する。図２９は、Audio InfoFrameのデータ構造を模式的に示した図である。
【０１３３】
本図に示すようにAudio InfoFrameは、送信中のオーディオストリームの符号化方式を示す「CT」、チャネル数を示す「CC」、サンプリング周波数を示す「SF」、サンプリングサイズを示す「SS」、CTにより示される符号化方式がDTSである場合に、オーディオフレームの階層構成を示す「Format depending coding type」、各スピーカへのチャンネル割り当てを示す「CA」、ダウンミキシングの際に用いるレベルシフト値を示す「LSV」、及びダウンミキシングの可否を示す「DM_INA」の各フィールドを含む。
【０１３４】
ここで「Format depending coding type」の値が00000001bであればオーディオフレームがDTS(CORE)のみから構成されていることが示される。「Format depending coding type」の値が00000011bであればオーディオフレームがDTS-ESであり、CORE+XCHから構成されていることが示される。「Format depending coding type」の値が00000101bであればオーディオフレームがDTS-96/24であり、CORE+X96から構成されていることが示される。「Format depending coding type」の値が00001001bであればオーディオフレームがDTS-HDであり、CORE+XLLから構成されていることが示される。つまりビット位置ごとに、どのような拡張フレームデータ(XCH,X96,XLLなど)があるかを識別できるようになっている。
【０１３５】
これによりオーディオストリームがDTS形式である場合に、オーディオストリームにどのような拡張データが含まれているかをオーディオアンプ４００へ詳細に通知することができる。
以上が、本実施形態に係るストリーム供給装置３００のハードウェア構成である。続いて本実施形態に係るストリーム供給装置３００のソフトウェア構成について説明する。  
【０１３６】
図２８に示したコントローラ２２を、機能的に表現すると、図３０のようになる。図３０は、コントローラ２２を機能的に表現した図であり、本図に示すようにコントローラ２２は、起動処理部４０、プレイリスト処理部４１、Procedure実行部４２、Procedure実行部４３、ミキシング制御部４４、ATC生成部１９a,b、STC生成部１８a,bに対して、ATC/STCの生成を行わせるATC/STC制御部から構成される。
【０１３７】
これらの構成要素の処理は、PSRセット２３に基づく。以降、PSR1、PSR14、PSR31について説明する。
＜PSR1＞
図３１（ａ）は、PSR1のビットアサインを示す図である。
本図によると、32ビット長のPSR1の下位8ビット(b0〜b7)は、ストリーム番号であり、カレントPlay ItemのSTN_tableにentryが記述されている複数Primaryオーディオストリームのうち、1つを特定する。PSR1の設定値が変化すれば、ストリーム供給装置３００はこの変化後のPrimaryオーディオストリームを再生の対象に特定する。PSR1は初期値として0xFFが設定されており、ストリーム供給装置３００により1〜32の値に設定されうる。この0xFFは、不定値であり、Primaryオーディオストリームが存在しない旨、又は、Primaryオーディオストリームが選択されてない旨を示す。1〜32の設定値は、Primaryオーディオストリームのストリーム番号として解釈される。
【０１３８】
＜PSR14＞
図３１（ｂ）は、PSR14のビットアサインを示す図である。
本図によると、32ビット長のPSR14における下位8ビット(b0〜b7)は、ストリーム番号であり、カレントPlay ItemのSTN_tableにentryが記述されている複数Secondaryオーディオストリームのうち、1つを特定する。PSR14の設定値が変化すれば、ストリーム供給装置３００はこの変化後のSecondaryオーディオストリームを再生の対象に特定する。PSR14は初期値として0xFFが設定されており、ストリーム供給装置３００により1〜32の値に設定されうる。この0xFFは、不定値であり、Secondaryオーディオストリームが存在しない旨、又は、Secondaryオーディオストリームが選択されてない旨を示す。1〜32の設定値は、Secondaryオーディオストリームのストリーム番号として解釈される。
【０１３９】
＜PSR31＞
図３１（ｃ）は、PSR31のビットアサインを示す図である。
本図によると、32ビット長のPSR31のうち、16ビット目から19ビット目まで(b16〜b19)は、Player Profile情報であり、0000bであれば、当該ストリーム供給装置は、グレースピリオド内に出荷されたストリーム供給装置であることを示す。ここでグレースピリオドとは、この期間内に出荷されたなら、一定の機能の実装を省くことができる期間である。このグレースピリオドに出荷するため、省略することができる機能には、音声のミキシング機能があり、かかるPSR31のPlayer Profile情報が、0000bであれば、ミキシングを始めとする、様々な機能の実装が省略されているストリーム供給装置であると、知ることができる。
【０１４０】
Player Profile情報が0001bであれば、当該ストリーム供給装置は、グレースピリオド経過後に出荷されたストリーム供給装置であることを示す。グレースピリオドの経過後に出荷されたストリーム供給装置は、原則として、全ての機能の実装が義務付けられているので、かかるPlayer Profile情報が0001bであるなら、ミキシングが実装されているストリーム供給装置であると、知ることができる。
【０１４１】
Player Profile情報が0011bであれば、当該ストリーム供給装置は、全ての機能を実装しているストリーム供給装置であることを示す。かかるストリーム供給装置は、グレースピリオドの経過前後にかかわらず、全ての機能を実装しているので、かかるPlayer Profile情報が0011bであるなら、サウンドミキシング機能が実装されているストリーム供給装置であると、知ることができる。
【０１４２】
尚、ミキシング機能を示す情報として、ストリーム供給装置がミキシングできるチャンネル数を示す情報をPSRに持たせても良い。
尚、最終の音声出力チャンネル数を示す情報をPSRに持たせても良い。例えばミキシングした結果の5.1chのLPCM音声はHDMIなどのI/Fが繋がっているのであればそのままLPCMでも出力が可能だが、S/PDIFのようなI/Fの場合にはエンコーダにて圧縮処理を行なわないと5.1chとしてはS/PDIFに出力できずに、2ch(L/R)の出力となってしまう。したがって、ミキサーの後段にエンコーダがありS/PDIFに繋がっている（例えばHDMIで繋がっていない）と判断した場合には、最終の音声出力チャンネル数は5.1chと設定できる。もしミキサーの後段にエンコーダがなければ、最終の音声出力チャンネル数はミキシングした後では2chと設定することができる。
【０１４３】
＜PSR15＞
図３２は、PSR15のビットアサインを示す図である。
PSR15は、32ビットのビット長を有する。
PSR15のビットb0からビットb3までは、LPCMオーディオストリームをデコードして再生する能力が再生環境(プレイヤ＋アンプなど)に存在するか否かを示す。この4ビットが0001bなら、ステレオ属性をもつ48/96HzのLPCMオーディオストリームを再生する能力が再生環境内にある。この4ビットが0010bなら、サラウンド属性をもつ48/96HzのLPCMオーディオストリームを再生する能力が再生環境内にある。この4ビットが0101bなら、ステレオ属性をもつ全ての周波数のLPCMオーディオストリームを再生する能力が再生環境内にある。この4ビットが0110bなら、サラウンド属性をもつ全ての周波数のLPCMオーディオストリームを再生する能力が再生環境内にある。
【０１４４】
PSR15のビットb4からビットb7までは、DD/DD+形式のオーディオストリームをデコードして再生する能力が再生環境(プレイヤ＋アンプなど)に存在するか否かを示す。この4ビットの下位2ビットが01bなら、DD/DD+オーディオストリームの基本データ(independent substream)がステレオをもっている場合、これを再生する能力が再生環境内にある。この4ビットの下位2ビットが10bなら、DD/DD+オーディオストリームの基本データ(independent substream)がサラウンドをもっている場合、これを再生する能力が再生環境内にある。
【０１４５】
この4ビットの上位2ビットが01bなら、DD/DD+オーディオストリームの拡張データ(Dependent substream)がステレオ属性をもっている場合、これを再生する能力が再生環境内にある。この4ビットの上位2ビットが10bなら、DD/DD+オーディオストリームの拡張データ(Dependent substream)がサラウンドをもっている場合、これを再生する能力が再生環境内にある。
【０１４６】
上位2ビットが00であるなら、これを再生する能力が再生環境内に存在しないことを示す。
PSR15のビットb8からビットb11までは、DTS-HD形式のオーディオストリームをデコードして再生する能力が再生環境(プレイヤ＋アンプなど)に存在するか否かを示す。この4ビットの下位2ビットが01bなら、DTS-HDオーディオストリームの基本データ(Core substream)の2chまでを再生する能力が再生環境内にある。この4ビットの下位2ビットが10bなら、DTS-HDオーディオストリームの基本データ(Core substream)のマルチチャンネルを再生する能力が再生環境内にある。
【０１４７】
この4ビットの上位2ビットが01bなら、DTS-HDオーディオストリームの拡張データ(Extension substream)の2chまでを再生する能力が再生環境内にある。この4ビットの上位2ビットが10bなら、DTS-HDオーディオストリームの拡張データ(Extension substream)のマルチチャンネルを再生する能力が再生環境内にある。
上位2ビットが00bであるなら、DTS-HDオーディオストリームの拡張データ(Extension substream)を再生する能力が再生環境内に存在しないことを意味する。
【０１４８】
PSR15のビットb12からビットb15までは、DD/MLP形式のオーディオストリームをデコードして再生する能力が再生環境(プレイヤ＋アンプなど)に存在するか否かを示す。この4ビットの下位2ビットが01bなら、DD形式のオーディオストリームがステレオの音声属性をもっている場合、これを再生する能力が再生環境内にある。この4ビットの下位2ビットが10bなら、DD形式のオーディオストリームがサラウンドの音声属性をもっている場合、これを再生する能力が再生環境内にある。
【０１４９】
この4ビットの上位2ビットが01bなら、MLPオーディオストリームがステレオの音声属性をもっている場合、これを再生する能力が再生環境内にある。この4ビットの上位2ビットが10bなら、MLPオーディオストリームがサラウンドの音声属性をもっている場合、これを再生する能力が再生環境内にある。
上位2ビットが00であるなら、これを再生する能力がユーザーの再生環境に存在しないことを示す。
【０１５０】
このように、PSR15は、符号化方式毎に、基本データ、拡張データのそれぞれを処理する能力があるか否かを規定できるようにしている。
さらに、PSR15のビットb16からビットb19までは、PSR15のビットb8からビットb11までのDTS-HD Capabilityが、再生環境を構成する何れの機器のデコード能力に基づいて設定されたかを示す。この4ビットの下位2ビットが01bなら、DTS-HDオーディオストリームの基本データ(Core substream)のCapabilityは、自装置であるプレイヤのデコード能力に基づいて設定されている。この4ビットの下位2ビットが10bなら、DTS-HDオーディオストリームの基本データ(Core substream)のCapabilityは、アンプ等の外部機器のデコード能力に基づいて設定されている。この4ビットの下位2ビットが11bなら、自装置であるプレイヤとアンプ等の外部機器とのデコード能力が同等であり、DTS-HDオーディオストリームの基本データ(Core substream)のCapabilityは、これら双方のデコード能力に基づいて設定されている。この4ビットの下位2ビットが00bなら、再生環境を構成する何れの機器にもデコード能力がなく、DTS-HDオーディオストリームの基本データ(Core substream)のCapabilityはincapableに設定されている。
【０１５１】
この4ビットの上位2ビットが01bなら、DTS-HDオーディオストリームの拡張データ(Extension substream)のCapabilityは、自装置であるプレイヤのデコード能力に基づいて設定されている。この4ビットの上位2ビットが10bなら、DTS-HDオーディオストリームの拡張データ(Extension substream)のCapabilityは、アンプ等の外部機器のデコード能力に基づいて設定されている。この4ビットの上位2ビットが11bなら、自装置であるプレイヤとアンプ等の外部機器とのデコード能力が同等であり、DTS-HDオーディオストリームの拡張データ(Extension substream)のCapabilityは、これら双方のデコード能力に基づいて設定されている。この4ビットの上位2ビットが00bなら、再生環境を構成する何れの機器にもデコード能力がなく、DTS-HDオーディオストリームの拡張データ(Extension substream)のCapabilityはincapableに設定されている。
【０１５２】
より詳細には、ビットb16は自装置であるプレイヤのデコード能力に基づいて、基本データ(Core substream)のCapabilityが設定されたか否かを示し、ビットb17はアンプ等の外部機器のデコード能力に基づいて、基本データ(Core substream)のCapabilityが設定されたか否かを示している。ビットb18は自装置であるプレイヤのデコード能力に基づいて、拡張データ(Extension substream)のCapabilityが設定されたか否かを示し、ビットb19はアンプ等の外部機器のデコード能力に基づいて、拡張データ(Extension substream)のCapabilityが設定されたか否かを示している。
【０１５３】
以上が、PSRセット２３についての説明である。
以降、起動処理部４０〜ミキシング制御部４４についての説明を開始する。
＜機能構成の詳細その１.起動処理部４０＞
図３３は、ストリーム供給装置３００、オーディオアンプ４００間の通信シーケンスを示す。
【０１５４】
ストリーム供給装置３００のHDMI送受信部２７は、ストリーム供給装置３００が起動された際や、オーディオアンプ４００と接続された際に、◎1に示すように、相互認証を行い、その後、ストリーム供給装置３００のHDMI送受信部２７は、レシーバとなるオーディオアンプ４００側から、◎2に示すようにDIBを受信する。こうして受信したDIBにおいて、オーディオアンプ４００側に、Primaryオーディオストリームをデコードする能力が存在すれば、オーディオアンプ４００に対し、◎3に示すようにPrimaryオーディオストリームのパススルー出力を行う。
【０１５５】
この時、オーディオアンプ４００のデコード能力に応じたPrimaryオーディオストリームがパススルー出力の対象となるように、起動処理部４０は、HDMI送受信部２７を介してホームシアターシステムの構成を取得し、その構成に応じてPSR15を設定する。
オーディオの再生可否を行なう基本情報であるPSR15をプレイヤ内蔵のデコーダだけでなく、アンプなどを含めたユーザーの再生環境全体を参照して規定することで、音声選択の幅が増え、より適切な再生可否判断が実現できる。
【０１５６】
図３４、図３５は、起動処理部４０による処理手順を示すフローチャートである。
図３４のステップＳ１０１は、装置起動がなされたかか否かの起動待ち判定であり、もし起動されれば自機のデコード能力に応じたPSR15を設定する（ステップＳ１０２）。その後、HDMIを介して他の機器と接続されているかを判定する（ステップＳ１０３）。HDMIを介して他の機器と接続されていない場合は（ステップＳ１０３でno）、PSR15により示されるデコード能力に応じたPrimaryオーディオストリームを選択させる手順をProcedure実行部４２に実行させる（ステップＳ１０８）。HDMIを介して他の機器と接続されている場合は（ステップＳ１０３でyes）、HDMIを介した接続相手の機器の認証を行う（ステップＳ１０４）。この認証により、相互の正当性が判明すれば、ステップＳ１０５に移行する。ステップＳ１０５は、DIBを受信したかどうかの受信待ちループであり、もしDIBを受信すれば（ステップＳ１０５でyes）、接続相手から受け取ったDIBにより、接続相手の能力及びスピーカ配置を認識する（ステップＳ１０６）。ステップＳ１０７は、接続相手に再生能力が存在するか否かの判定であり、もし再生能力が存在するなら、DIBに応じて、PSR15におけるPlayer capability for Audioの追加設定を行う（ステップＳ１０８）。そして、PSR15により示されるデコード能力に応じたPrimaryオーディオストリームを選択させる手順をProcedure実行部４２に実行させる（ステップＳ１０９）。
【０１５７】
以降、選択されたPrimaryオーディオストリームがDTS-HDオーディオストリームである場合を例に、説明を続ける。
図３５のステップＳ１１０は、ステップＳ１０９で選択されたDTS-HDオーディオストリームがExtension Substreamを含まないフレーム構成であるか否かの判定である。この判定は、図２１（ｂ）に示すStream_attributeのstream_coding_typeに基づいて判定できる。
【０１５８】
ステップＳ１０９で選択されたDTS-HDオーディオストリームがExtension Substreamを含まないフレーム構成である場合（ステップＳ１１０でno）、DTS-HDオーディオストリームのCore substreamのCapabilityが、HDMIを介して接続された機器のデコード能力に基づいて設定されたか否かを、PSR15のビットb17の値によって判定する（ステップＳ１１１）。PSR15のビットb17が0bであるならば（ステップＳ１１１で0b）、HDMIを介して接続された機器のデコード能力に基づいてCore substreamのCapabilityが設定されていないので、BD-ROMから読み出されたAVClipのPrimaryオーディオストリームを、バッファ６aを介してデコーダ７aへ出力するようにスイッチ１０aを制御する（ステップＳ１１２）。PSR15のビットb17が1bであるならば（ステップＳ１１１で1b）、HDMIを介して接続された機器のデコード能力に基づいてCore substreamのCapabilityが設定されているので、BD-ROMから読み出されたAVClipのPrimaryオーディオストリームを、パススルー出力するようにスイッチ１０aを制御する（ステップＳ１１３）。ここでパススルー出力を行う場合、PSR31のPlayer Profile情報には、ミキシング不可能な機器であることを示す値を格納しておく。そうしないと、Procedure実行部４３がSecondaryオーディオストリームを選択しようとして、Primaryオーディオストリームだけでなく、Secondaryオーディオストリームのパススルー出力がなされるからである。
【０１５９】
一方、ステップＳ１０９で選択されたDTS-HDオーディオストリームがExtension Substreamを含むフレーム構成である場合（ステップＳ１１０でyes）、DTS-HDオーディオストリームのExtension substreamのCapabilityが、HDMIを介して接続された機器のデコード能力に基づいて設定されたか否かを、PSR15のビットb19の値によって判定する（ステップＳ１１４）。
PSR15のビットb19が1bであるならば（ステップＳ１１４で1b）、BD-ROMから読み出されたAVClipのPrimaryオーディオストリームを、パススルー出力するようにスイッチ１０aを制御する（ステップＳ１１３）。PSR15のビットb19が0bであるならば（ステップＳ１１４で0b）、さらに、DTS-HDオーディオストリームのExtension substreamのCapabilityが、自機のデコード能力に基づいて設定されたか否かを、PSR15のビットb18の値によって判定する（ステップＳ１１５）。PSR15のビットb18が1bであるならば（ステップＳ１１５で1b）、自機のデコード能力でExtension substreamを再生可能であるので、BD-ROMから読み出されたAVClipのPrimaryオーディオストリームを、バッファ６aを介してデコーダ７aへ出力するようにスイッチ１０aを制御し（ステップＳ１１２）、PSR15のビットb18が0bであるならば（ステップＳ１１４で0b）、自機のデコード能力でExtension substreamを再生不可能であるのでCore substreamを再生対象とし、Core substreamのCapabilityが、HDMIを介して接続された機器のデコード能力に基づいて設定されたか否かを、PSR15のビットb17の値によって判定する（ステップＳ１１１）。HDMIを介して接続された機器のデコード能力に基づいてCore substreamのCapabilityが設定されていなければ（ステップＳ１１１で0b）、BD-ROMから読み出されたAVClipのPrimaryオーディオストリームを、バッファ６aを介してデコーダ７aへ出力するようにスイッチ１０aを制御し（ステップＳ１１２）、HDMIを介して接続された機器のデコード能力に基づいてCore substreamのCapabilityが設定されていれば（ステップＳ１１１で1b）、BD-ROMから読み出されたAVClipのPrimaryオーディオストリームを、パススルー出力するようにスイッチ１０aを制御する（ステップＳ１１３）。
【０１６０】
プレイヤでデコードしてアンプにLPCMとして出力させずに、スピーカが直接繋がっているアンプにて直接デコードすることを優先させることによって、ノイズの混入を抑えたり、転送の帯域を抑えることができる他、スピーカの特性に応じた音声信号の加工が適切に行なえるようになるため高音質な再生が得られる。
尚、上記では階層構造を持つDTS-HDオーディオストリームを例に説明したが、階層構造を持たない他のオーディオストリーム(例えば、Dolby Digital(AC-3)やMPEG-1 Audioなど)であってもPSR15の設定は同様に可能である。PSR15の情報を基にストリームのデコードをPlayerで行なうのか、外部機器(アンプ)で行なうかを判定し、外部機器でデコードできる場合にはパススルー出力を選択するのも同様に可能である。
【０１６１】
図３６は、CODING TYPEがDTS-HDである際に、DIBに応じてPSR15におけるPlayer capability for Audioを追加設定する処理手順を示すフローチャートである。本フローチャートの処理手順が開始される時点で、PSR15には自機のデコード能力に応じた値が設定されており、本フローチャートの実行により、DIBにより性能が示される機器のデコード能力が自機より勝るか同等である符号化方式についてPSR15の設定値が更新される。
【０１６２】
図３６のフローチャートにおいてステップＳ２００は、DIBのFormat depending coding typeにLevel1〜Level3が記載されているか否かの判定であり、ステップＳ２０１は、DIBのChannel Countに２よりも大きな値が記載されているか否かの判定である。
ステップＳ２００がyes、ステップＳ２０１がyesである場合、ステップＳ２０２において、Extension Substreamのcapabilityを、10b:Surround Capableに設定し、Extension substreamのCapabilityがHDMIを介して接続された機器のデコード能力に基づいて設定されたかを示すPSR15のビットb19を1bに設定し、さらに、ステップＳ２０７において、Core Substreamのcapabilityを、10b:Surround Capableに設定し、Core substreamのCapabilityがHDMIを介して接続された機器のデコード能力に基づいて設定されたかを示すPSR15のビットb17を1bに設定する。
【０１６３】
ステップＳ２００がyes、ステップＳ２０１がNoである場合、ステップＳ２０３に移行する。ステップＳ２０３は、Extension Substreamのcapabilityに、10b:Surround Capableが設定されているか否かの判定であり、Extension Substreamのcapabilityに、10b:Surround Capableが設定されていないのであれば（ステップＳ２０３でno）、ステップＳ２０４において、Extension 
Substreamのcapabilityを、01b:Stereo Capableに設定し、Extension substreamのCapabilityがHDMIを介して接続された機器のデコード能力に基づいて設定されたかを示すPSR15のビットb19を1bに設定し、さらに、ステップＳ２０７において、Core Substreamのcapabilityを、10b:Surround Capableに設定し、Core substreamのCapabilityがHDMIを介して接続された機器のデコード能力に基づいて設定されたかを示すPSR15のビットb17を1bに設定する。
【０１６４】
一方、DIBのFormat depending coding typeにLevel1〜Level3が記載されていない場合（ステップＳ２００でno）と、ステップＳ２０３の判定でExtension Substreamのcapabilityに、10b:Surround Capableが設定されている場合（ステップＳ２０３でyes）、PSR15のビットb19を0bに設定し（ステップＳ２０５）、その後、ステップＳ２０６の判定を行う。ステップＳ２０６は、DIBのChannel Countに２よりも大きな値が記載されているか否かの判定である。
【０１６５】
ステップＳ２０６がyesである場合、ステップＳ２０７において、Core Substreamのcapabilityを、10b:Surround Capableに設定し、Core substreamのCapabilityがHDMIを介して接続された機器のデコード能力に基づいて設定されたかを示すPSR15のビットb17を1bに設定する。
ステップＳ２０６がnoである場合、ステップＳ２０８に移行する。ステップＳ２０８は、Core Substreamのcapabilityに、10b:Surround Capableが設定されているか否かの判定であり、Core Substreamのcapabilityに、10b:Surround Capableが設定されていないのであれば（ステップＳ２０８でno）、ステップＳ２０９において、Core Substreamのcapabilityを、01b:Stereo Capableに設定し、Core substreamのCapabilityがHDMIを介して接続された機器のデコード能力に基づいて設定されたかを示すPSR15のビットb17を1bに設定する。ステップＳ２０８の判定でCore Substreamのcapabilityに、10b:Surround Capableが設定されている場合（ステップＳ２０８でyes）、PSR15のビットb17を0bに設定する（ステップＳ２１０）。
【０１６６】
尚、図３６のＳ２０１、Ｓ２０６の判定ではDIBのChannel Countを用いたが、Channel/Speaker Allocationを用いても判定しても良い。
以上、起動処理部４０の処理手順を、DTS-HD方式への対応を例に説明したが、DD/DD+形式、DD/MLP形式等についても同様に扱うことができる。
例えば、DIBに応じてDD/DD+形式、DD/MLP形式等のCapabilityをPSR15を追加設定する際には、PSR15のビットb16からビットb19までの情報と同様の形式で、DD/DD+形式、DD/MLP形式等のCapabilityが再生環境を構成する何れの機器のデコード能力に基づいて設定されたかを示す情報をレジスタに設置するとよい。また、再生時にDD/DD+形式のオーディオストリームや、DD/MLP形式オーディオストリームがPrimaryオーディオストリームが選択された場合には、DD/MLP形式等のCapabilityが再生環境を構成する何れの機器のデコード能力に基づいて設定されたかを示す情報に基づいてパススルー出力の要否を判定するとよい。
【０１６７】
尚、各符号化方式のCapabilityが再生環境を構成する何れの機器のデコード能力に基づいて設定されたかを示す情報は、必ずしもPSR15に設定する必要はなく、他のレジスタやワークメモリに情報を保持する構成としてもよい。
＜機能構成の詳細その２.プレイリスト処理部＞
プレイリスト処理部４１は、PL再生を実現するものであり、PlayItem情報のIn_timeにあたる位置から、Out_timeにあたる位置までビデオストリーム及びPrimaryオーディオストリームを再生し、これと同期して、SubPlayItem情報のSub_PlayItem_In_timeにあたる位置から、Sub_PlayItem_Out_timeにあたる位置までのSecondaryオーディオストリームの再生を、オーディオデコーダ７bに行わせる。
【０１６８】
図３７は、プレイリスト処理部によるプレイリスト再生手順を示すフローチャートである。
本フローチャートは、カレントPL情報(.mpls)の読み込みを行い(ステップＳ３０１)、その後、ステップＳ３０２〜ステップＳ３１０の処理を実行するというものである。ここでステップＳ３０２〜ステップＳ３１０は、ステップＳ３０９がYesになるまで、カレントPL情報を構成するそれぞれのPI情報について、ステップＳ３０３〜ステップＳ３１０の処理を繰り返すというループ処理を構成している。このループ処理において処理対象となるPlayItemを、PlayItem＃x(PI＃x)とよぶ。このPlayItem＃xは、カレントプレイリストの先頭のPlayItemに設定されることにより、初期化される(ステップＳ３０２)。上述したループ処理の終了要件は、このPlayItem＃xがカレントプレイリストの最後のPlayItemになることであり(ステップＳ３０９)、もし最後のPlayItemでなければ、カレントプレイリストにおける次のPlayItemがPlayItem＃xに設定される(ステップＳ３１０)。
【０１６９】
ループ処理において繰り返し実行されるステップＳ３０３〜ステップＳ３１０は、PlayItem＃xのClip_information_file_nameで指定されるClip情報をメモリに読み込み(ステップＳ３０３)、PlayItem＃xのIn_timeを、カレントClip情報のEPmapを用いて、Iピクチャアドレスuに変換し(ステップＳ３０４)、PlayItem＃xのOut_timeを、カレントClip情報のEP_mapを用いて、Iピクチャアドレスvに変換して(ステップＳ３０５)、これらの変換で得られたアドレスvの次のIピクチャを求めて、そのアドレスの1つ手前をアドレスwに設定し(ステップＳ３０７)、そうして算出されたアドレスwを用いて、IピクチャアドレスuからアドレスwまでのTSパケットの読み出しをBD-ROMドライブ１又はローカルストレージ２００に命じるというものである(ステップＳ３０８)。
【０１７０】
一方、ビデオデコーダ等に対しては、カレントPLMarkのmark_time_stampからPlayItem＃xのOut_timeまでの出力を命じる(ステップＳ３０６)。以上のステップＳ３０５〜ステップＳ３０８により、AVClipにおいて、PlayItem＃xにより指示されている部分の再生がなされることになる。
その後、PlayItem＃xがカレントプレイリストの最後のPIであるかの判定がなされる(ステップＳ３０９)。
【０１７１】
PlayItem＃xがカレントプレイリストの最後のPIでなければ、カレントプレイリストにおける次のPlayItemを、PlayItem＃xに設定して(ステップＳ３１０)、ステップＳ３０３に戻る。以上のステップＳ３０３〜ステップＳ３１０を繰り返することにより、プレイリストを構成するPIは順次再生されることになる。
＜機能構成の詳細その３.Procedure実行部４２＞
Procedure実行部４２は、あるPlayItem情報から別のPlayItem情報への切り換わりが生じた場合、又はストリーム番号を切り換える旨の操作がユーザによりなされた場合、所定のストリーム選択プロシージャを実行して、PSR1に新たなストリーム番号を書き込む。ストリーム供給装置３００は、PSR1に書き込まれたストリーム番号に応じて、Primaryオーディオストリームを特定するので、かかるPSR1の設定を通じて、Primaryオーディオストリームが選択されることになる。
【０１７２】
PlayItem情報の切り換わり時に、ストリーム選択プロシージャを実行するのは、STN_TableはPlayItem情報毎に存在するので、あるPlayItem情報においては再生可能であったPrimaryオーディオストリームが、別のPlayItem情報において再生不可能になることが有り得るからである。
このProcedure実行部４２により、PSR1は、図３８（ａ）に示すような状態遷移をなす。図３８（ａ）は、PSR1の設定値が取り得る状態遷移を示す図である。本図においてValidとは、PSR1の値が、Play ItemのSTN_tableに記述されたentry数以下の番号になっていて、尚且つ、デコード可能であることを意味する。
【０１７３】
Invalidとは、PSR1の値が、0であるか、又は、Play ItemのSTN_tableに記述されたentry数を上回る番号になっているか、または、Play ItemのSTN_tableに記述されたentry数が1〜32の値であったとしても、デコードできない場合である。
図３８（ａ）における破線枠は、状態遷移時にあたってPSRの値を決定する手順を模式的に示す。PSRの設定処理手順には、『Procedure when playback condition is changed』、『Procedure when Stream change is requested』がある。
【０１７４】
Procedure when playback condition is changedは、何等かの事象がストリーム供給装置に生じたため、ストリーム供給装置の状態が変化した際に実行すべき処理手順を示す。
Procedure when Stream Change is requestedは、ユーザが何等かの切り換え(図３８（ａ）においてstream)を要求した際、実行すべき処理手順を示す。
これら破線枠に示されるProcedure when playback condition is changed、Procedure when Stream change is requestedが、ストリーム選択プロシージャであり、後でフローチャートを交えて詳細に説明する。
【０１７５】
図３８（ａ）における矢印は、PSRが取り得る状態間の状態遷移を象徴的に示す。
状態遷移を意味する矢印に添えられた注釈は、各状態遷移のトリガとなるべき事象を意味する。つまり本図では、”Load Disc”、”Change a Stream”,”Start PlayList playback”,”Cross a PlayItem boundary”,”Terminate PlayList playback”というような事象が発生した際、PSR1の状態遷移がなされることになる。これらの記法を理解して図３８（ａ）を参照すれば、Invalid→Invalidの状態遷移時、Valid→Invalidの状態遷移時には、上述した処理手順は実行されていないことがわかる。これに対しInvalid→Valid間の状態遷移、Valid→Valid間の状態遷移は何れも破線枠を経由している。つまりPSR1をValidに設定するにあたって、上述したProcedure when playback condition is changed、Procedure when Stream change is requestedによりPSR1は設定されるのである。
【０１７６】
以降、状態遷移のトリガとなるべき事象について説明する。
『Load Disc』とは、ストリーム供給装置にBD-ROMがローディングされたとの事象を意味する。PSR1は、かかるローディング時において、一旦不定値(0xFF)に設定されるのである。
『Start PlayList playback』とは、PLに基づく再生処理が開始したとの事象を意味する。かかる事象が発生時において、Procedure when playback condition is changedが実行され、PSR1はValidに設定されることがわかる。
【０１７７】
『Terminate PlayList playback』とは、PLに基づく再生処理を終了したとの事象を意味する。かかる事象の発生時では、Procedure when playback condition is changedは実行されず、Invalidに移行していることがわかる。
『ChangeXXX』とは、ユーザによるXXX(本図ではStream)の切り換え要求がなされたとの事象を意味する。PSR1がInvalidである場合に、かかる事象が発生すれば(図中のcj1)、PSR1はその要求通りの値に設定される。こうして設定された値がたとえ有効なストリーム番号を示していたとしても、このPSR1の設定値はInvalidな値として取り扱われる。即ち、事象”ChangeXXX”による状態遷移では、InvalidであるPSRが、Validに変えることはない。
【０１７８】
一方、PSR1がValidである場合に、かかる事象Change a Streamが発生すれば(図中のcj2)、Procedure when Stream change is requestedが実行されて、新たな値がPSR1に設定される。ここでProcedure when Stream change is requestedの実行により設定される値は、ユーザが希望した値にならない場合も有り得る。何故なら、Procedure when Stream change is requestedは、無効な値を排除する機能を有しているからである。PSR1がValidにおいて、Change streamが発生した場合、ValidからInvalidに状態遷移することは有り得ない。PSR1がInvalidにならないよう、Procedure when Stream change is requested側で保証するからである。
【０１７９】
『Cross a PlayItem boundary』とは、あるPlay Itemの境界通過という事象を意味する。ここでPlay Itemの境界とは、連続する2つのPlay Itemのうち、先行する側の終端、後続する側の先端の狭間を意味する。PSR1がValidである場合において、かかる事象が発生すれば、Procedure when playback condition is changedが実行されることがわかる。そして、Procedure when playback condition is changedの実行後、PSR1の状態はValidに戻るか、Invalidに移行することが分かる。STN_tableはPlay Item毎に存在しており、Play Itemが変われば、再生可能なエレメンタリストリームも変わってしまう。Play Itemの再生開始毎に、Procedure when playback condition is changeを実行してPlay Item毎に最適な設定値をPSR1に設定するというのが、この状態遷移の趣旨である。
【０１８０】
この状態遷移においてProcedure when playback condition is changedは、図３８（ｂ）のようになる。図３８（ｂ）は、Procedure when playback condition is changedの処理手順を示す図である。本処理手順は、ステップＳ１、ステップＳ２という2つの判定ステップの組合せで、PSR1の設定を行うものである。
ステップＳ１は、STN_tableにおけるentry数が0であるか否かの判定であり、もし0であればPSR1の値を維持する(ステップＳ３)。
【０１８１】
ステップＳ２は、STN_tableにおけるentry数は0ではない場合に、PSR1よりSTN_tableのentry数が多く、尚且つ、条件(A)が真であるかを判定するものである。条件(A)とは、PSR1で特定されるPrimaryオーディオストリームを再生する能力がデコーダに存在することである。もしステップＳ２がYesであればPSR1を維持する(ステップＳ４)。もしPSR1の値がentry数より大きいか、或は条件(A)を満たさない場合は、PSR1を再設定する(ステップＳ５)。ここで、本実施形態では、ストリーム供給装置３００が選択したオーディオストリームをオーディオアンプ４００へ供給し、オーディオアンプ４００がオーディオストリームをデコードするという接続形態をとるため、条件(A)でいうデコーダとしては、オーディオアンプ４００が内蔵するものが相当する。
【０１８２】
その後、PSR1に設定されているPrimaryオーディオストリームがDTS-HD形式で符号化されたものである場合は（ステップＳ１９がyes）、ステップＳ２０で、オーディオアンプ４００で実際に再生される音声の品質を示すメニューを表示する。
図３９は、実際に再生される音声の品質を示すメニューの一例を示す図である。本図におけるメニューは、「お客さまのシアターシステムでは、接続先の機器でDTS-XXXXの品質でオーディオ再生されます」などの注意を喚起する旨のメッセージと確認ボタンからなる。DTS-XXXXの部位には、PSR15のDTS-HD Extension capabilityに設定されている値に応じて、DTS core、DTS-ES、DTS-96/24、DTS-HD(xLL)の何れかを表示する。こうすることで、実際にどのような品質で音声再生されるかをユーザが事前に把握することができる。
【０１８３】
尚、音声品質の提示の際には、必ずしもユーザの確認操作を求める必要はない。そこで、本図に示すようなメッセージを一定期間表示した後、メッセージの表示を終了する構成としてもよい。
更に、実際に再生される音声品質の表示は、オーディオストリームを選択したタイミングに限らず、他のタイミングで表示してもよい。例えば、図３４のステップＳ１０７の判定で、接続相手に再生能力が存在すると判定された時に再生可能な音声品質を表示してもよい。このようなタイミングで音声品質を表示する場合には、「お客さまのシアターシステムでは、接続先の機器でDTS-XXXXの品質でオーディオ再生されます。接続先機器でデコードしますか？」等のメッセージと、接続先機器でのデコード可否を受け付けるボタン「Yes」「No」とからなるメニュー画面を表示することで、ユーザがパススルー出力を希望するか否かを確認することもできる。具体的には、このようなメニューの表示に対して「Yes」ボタンが選択されたならば図３４のステップＳ１０８へ処理を移してDIBに応じたPSR15設定を行い、「No」ボタンが選択されたならばステップＳ１０９へ処理を移して、自機のデコード能力に応じたPSR15設定に基づいてPrimaryオーディオストリームの選択を行うとよい。
【０１８４】
図４０は、ステップＳ５の詳細な処理手順に示したフローチャートである。
ステップＳ６、ステップＳ７は、全てのPrimaryオーディオストリームについてステップＳ８を繰り返すループ処理を形成している。このループ処理において、処理対象となる個々のPrimaryオーディオストリームを、Primaryオーディオストリームiという。ステップＳ８は、Primaryオーディオストリームiが3つの条件(a)(b)(c)を満たすかのチェックを行う。
【０１８５】
条件(a)とは、Primaryオーディオストリームiを再生する能力がデコーダに存在することであり、これを満たすか否かの判定は、PSR15と、Primaryオーディオストリームiのstream_coding_type及びformat_depending_coding_typeとの比較でなされる。
条件(b)とは、Primaryオーディオストリームiの言語属性がストリーム供給装置３００の言語設定と同じであることであり、これを満たすか否かの判定は、STN_tableに記述されたPrimaryオーディオストリームiのAudio_language_codeがPSRの設定値と同じであるか否かの比較でなされる。
【０１８６】
条件(c)とは、Primaryオーディオストリームiのチャネル属性がサラウンドであり、これを再生する能力がデコーダに存在することである。これを満たすか否かの判定は、PSR15と,Audio Streamのaudio_presentation_type、stream_coding_typeとの比較でなされる。ここで条件(a)及び条件(c)でいうデコーダとは、条件(A)と同様に、本実施形態ではオーディオアンプ４００が内蔵するものが相当する。
【０１８７】
これらの複数の条件のうち、「Primaryオーディオストリームiがどれとどれを満たすか」、また「何個の条件を満たすか」という、満たすべき条件のパターンにより、本フローチャートは、Primaryオーディオストリームに優先順位を付与する。
以上の処理をPrimaryオーディオストリームの全てについて繰り返されれば、ステップＳ９〜ステップＳ１３の処理を行う。ステップＳ９は、(a)を満たすPrimaryオーディオストリームが存在しないかどうかの判定である。もし、存在しなければ、不定値(0xFF)をPSR1に設定する(ステップＳ１４)。
【０１８８】
ステップＳ１０は、条件(a)(b)(c)の全てを満たすPrimaryオーディオストリームが存在するかどうかの判定である。もし存在すれば、条件(a)(b)(c)を満たすPrimaryオーディオストリームの番号をPSR1に設定する(ステップＳ１５)。
ここで問題になるのが、条件(a)(b)(c)を満たすPrimaryオーディオストリームが複数存在する場合である。条件(a)〜条件(c)が全てみたされるので、同じ優先順位になってしまうので優劣を決めることができない。この場合ステップＳ１５では、STN_tableにおけるentryの順序に応じて、各ストリームにおける順位が定める。即ち、コーディック−言語属性−チャネル属性が同じPrimaryオーディオストリームについては、STN_tableにおけるentryの順番を参照することで、最もentryの順番が早いPrimaryオーディオストリームが選ばれることになる。
【０１８９】
STN_tableにおける記述順序を変えることで、オーサリング担当者は再生時においてどのストリームを優先的に再生させ、どのストリームを後回しにするかという選択制御をオーサリング時に規定することができる。
ステップＳ１１は、条件(a)(b)(c)の全てを満たすPrimaryオーディオストリームが存在しない場合、条件(a)(b)を満たすPrimaryオーディオストリームが存在するかどうかの判定である。もし存在すれば、条件(a)(b)を満たすPrimaryオーディオストリームのうち、STN_tableにおけるエントリーの順番が最も早いものをPSR1に設定する(ステップＳ１６)。
【０１９０】
ステップＳ１２は、条件(a)(b)(c)の全てを満たすPrimaryオーディオストリーム、又は、条件(a)(b)を満たすPrimaryオーディオストリームが存在しない場合に、条件(a)(c)を満たすPrimaryオーディオストリームが存在するかどうかの判定である。もし存在すれば、条件(a)(c)を満たすPrimaryオーディオストリームのうち、STN_tableにおけるエントリーの順番が最も早いものをPSR1に設定する(ステップＳ１７)。
【０１９１】
ステップＳ１３は、条件(a)(b)(c)の全て、条件(a)(b)、条件(a)(c)を満たすPrimaryオーディオストリームが存在しない場合に、条件(a)を満たすPrimaryオーディオストリームが存在するかどうかの判定である。もし存在すれば、条件(a)を満たすPrimaryオーディオストリームのうち、STN_tableにおけるエントリーの順番が最も早いものをPSR1に設定する(ステップＳ１８)。
【０１９２】
以上がProcedure when playback condition is changedである。続いてProcedure when Stream change is requestedについて説明する。図４１は、ストリーム変化時におけるPSR1の設定手順を示すフローチャートである。本フローチャートと、図３８（ｂ）との違いは、図３８（ｂ）におけるPSR1の表記がXに置き換えられている点である。このXは、操作受付部２６から出力されたUser Operation情報やIGデコーダ１３から出力されたボタンコマンドに基づく値である。
【０１９３】
本フローチャートにおけるステップＳ２１は、XよりSTN_tableのentry数が多く、尚且つ、条件(A)が真であるかを判定するものである。条件(A)とは、PSR1で特定されるPrimaryオーディオストリームを再生する能力が再生装置に存在することであり、PSR15と、PrimaryオーディオストリームのStream_codeig_type、format_depending_coding_typeの比較で判定される。ここで条件(A)でいう再生装置とは、オーディオストリームをデコードする機器を指し、本実施形態ではオーディオアンプ４００が相当する。もしXがこの条件を満たすなら、PSR1にXを設定する(ステップＳ２２)。
【０１９４】
もしXがentry数より大きいか、或は条件(A)を満たさない場合は、Xが、0xFFであるか否かを判定する（ステップＳ２３）。もしOxFFでなければ、ユーザが選択を意図するPrimaryオーディオストリームの番号は無効であると考えられるので、ユーザ操作に基づく値Xを無視し、PSR1の設定値を維持する(ステップＳ２４)。
もしPSR1の設定値が0xFFであるなら、PSR1を設定する(ステップＳ２５)。このステップＳ２５の処理手順は、図４０に示した処理手順と同一である(図４０のうち、ステップＳ９の判定はProcedure when Stream change is requestedでは必要ではない。何故ならProcedure when Stream change is requestedでは、条件(a)(b)(c)を満たすPrimaryオーディオストリームが1つも存在しない場合、ユーザが設定した値XをPSR1に設定せず、PSR1の設定値を維持するからである。
【０１９５】
その後、PSR1に設定されているPrimaryオーディオストリームがDTS-HD形式で符号化されたものである場合は（ステップＳ２６がyes）、ステップＳ２７で、オーディオアンプ４００で実際に再生される音声の品質を示す図３９のメニューを表示する。
＜機能構成の詳細その４.Procedure実行部４３＞
Procedure実行部４３は、あるPlayItem情報から別のPlayItem情報への切り換わりが生じた場合、又はストリーム番号を切り換える旨の操作がユーザによりなされた場合、所定の手順を実行して、PSR14に新たなストリーム番号を書き込む。ストリーム供給装置３００は、PSR14に書き込まれたストリーム番号に対応するSecondaryオーディオストリームを再生対象とするので、かかるPSR14の設定を通じて、Secondaryオーディオストリームが選択されることになる。
【０１９６】
このProcedure実行部４３により、PSR14は、図４２（ａ）に示すような状態遷移をなす。
図４２（ａ）は、PSR14の設定値が取り得る状態遷移を示す図である。本図においてValidとは、PSR14の値が、Play ItemのSTN_tableに記述されたentry数以下の番号になっていて、尚且つ、デコード可能であることを意味する。
【０１９７】
Invalidとは、PSR14の値が、0であるか、又は、Play ItemのSTN_tableに記述されたentry数を上回る番号になっているか、または、Play ItemのSTN_tableに記述されたentry数が1〜32の値であったとしても、デコードできない場合である。
図４２（ａ）における破線枠は、状態遷移時にあたってPSRの値を決定する手順を模式的に示す。PSRの設定処理手順には、『Procedure when playback condition is changed』、『Procedure when Stream change is requested』がある。
【０１９８】
Procedure when playback condition is changedは、何等かの事象がストリーム供給装置に生じたため、ストリーム供給装置の状態が変化した際に実行すべき処理手順を示す。
Procedure when Stream Change is requestedは、ユーザが何等かの切り換え(図４２においてstream)を要求した際、実行すべき処理手順を示す。
これら破線枠に示されるProcedure when playback condition is changed、Procedure when Stream change is requestedが、ストリーム選択プロシージャであり、後でフローチャートを交えて詳細に説明する。
【０１９９】
図４２（ａ）における矢印は、PSRが取り得る状態間の状態遷移を象徴的に示す。
状態遷移を意味する矢印に添えられた注釈は、各状態遷移のトリガとなるべき事象を意味する。つまり本図では、”Load Disc”、”Change a Stream”,”Start PlayList playback”,”Cross a PlayItem boundaryor Change Primary Audio Stream”,”Terminate PlayList playback”というような事象が発生した際、PSR14の状態遷移がなされることになる。これらの記法を理解して図４２（ａ）を参照すれば、Invalid→Invalidの状態遷移時、Valid→Invalidの状態遷移時には、上述した処理手順は実行されていないことがわかる。これに対しInvalid→Valid間の状態遷移、Valid→Valid間の状態遷移は何れも破線枠を経由している。つまりPSR14をValidに設定するにあたって、上述したProcedure when playback condition is changed、Procedure when Stream change is requestedによりPSR14は設定されるのである。
【０２００】
以降、状態遷移のトリガとなるべき事象について説明する。
『Load Disc』とは、ストリーム供給装置にBD-ROMがローディングされたとの事象を意味する。PSR14は、かかるローディング時において、一旦不定値(0xFF)に設定されるのである。
『Start PlayList playback』とは、PLに基づく再生処理が開始したとの事象を意味する。かかる事象が発生時において、Procedure when playback condition is changedが実行され、PSR14はValidに設定されることがわかる。
【０２０１】
『Terminate PlayList playback』とは、PLに基づく再生処理が終了したとの事象を意味する。かかる事象の発生時では、Procedure when playback condition is changedは実行されず、Invalidに移行していることがわかる。
『ChangeXXX』とは、ユーザによるXXX(本図ではStream)の切り換え要求がなされたとの事象を意味する。PSR14がInvalidである場合に、かかる事象が発生すれば(図中のcj1)、PSR14はその要求通りの値に設定される。こうして設定された値がたとえ有効なストリーム番号を示していたとしても、このPSR14の設定値はInvalidな値として取り扱われる。即ち、事象”ChangeXXX”による状態遷移では、InvalidであるPSRが、Validに変えることはない。
【０２０２】
一方、PSR14がValidである場合に、かかる事象Change a Streamが発生すれば(図中のcj2)、Procedure when Stream change is requestedが実行されて、新たな値がPSR14に設定される。ここでProcedure when Stream change is requestedの実行により設定される値は、ユーザが希望した値にならない場合も有り得る。何故なら、Procedure when Stream change is requestedは、無効な値を排除する機能を有しているからである。PSR14がValidにおいて、Change streamが発生した場合、ValidからInvalidに状態遷移することは有り得ない。PSR14がInvalidにならないよう、Procedure when Stream change is requested側で保証するからである。
【０２０３】
『Cross a PlayItem boundary  or Change Primary Audio Stream』とは、あるPlay Itemの境界通過、又は、Primaryオーディオストリームの切り替えという事象を意味する。PSR14がValidである場合において、かかる事象が発生すれば、Procedure when playback condition is changedが実行されることがわかる。そして、Procedure when playback condition is changedの実行後、PSR14の状態はValidに戻るか、『Cross a PlayItem boundary  or Change Primary Audio Stream』が発生するとInvalidに移行することが分かる。Play Itemの再生開始やPrimaryオーディオストリームの切り替え毎に、Procedure when playback condition is changeを実行してPlay Item毎に最適な設定値をPSR14に設定するというのが、この状態遷移の趣旨である。
【０２０４】
この状態遷移においてProcedure when playback condition is changedは、図４２（ｂ）のようになる。本処理手順は、ステップＳ３１、ステップＳ３２という2つの判定ステップの組合せで、PSR14の設定を行うものである。
ステップＳ３１は、STN_tableにおけるentry数が0であるか否かの判定であり、もし0であればPSR14の値を維持する(ステップＳ３３)。
【０２０５】
ステップＳ３２は、STN_tableにおけるentry数は0ではない場合に、PSR14よりSTN_tableのentry数が多く、尚且つ、条件(A)と（B）が真であるかを判定するものである。条件(A)とは、PSR14で特定されるSecondaryオーディオストリームを再生する能力が再生装置に存在することである。ここで条件(A)でいうデコーダとしては、本実施形態ではオーディオアンプ４００に内蔵のものが相当する。条件（B）とは、Primary_Audio_Stream_Numberと、Secondary_Audio_Stream_Numberの組み合わせがSTN_tableで許可されていることである。もしステップＳ３２がNoであればPSR14を維持する(ステップＳ３４)。Yesの場合は、PSR14を再設定する(ステップＳ３５)。
【０２０６】
図４３は、ステップＳ３５の詳細な処理手順に示したフローチャートである。
ステップＳ３６、ステップＳ３７は、全てのSecondaryオーディオストリームについてステップＳ３８を繰り返すループ処理を形成している。このループ処理において、処理対象となる個々のSecondaryオーディオストリームを、Secondaryオーディオストリームiという。ステップＳ３８は、Secondaryオーディオストリームiが3つの条件(a)(b)(c)を満たすかのチェックを行う。
【０２０７】
条件(a)とは、Secondaryオーディオストリームiを再生する能力がデコーダに存在することであり、これを満たすか否かの判定は、オーディオストリームの再生能力を示すレジスタ(PSR15)と、Secondaryオーディオストリームiのstream_coding_type及びformat_depending_coding_typeとの比較でなされる。
条件(b)とは、PrimaryオーディオストリームをSecondaryオーディオストリームにミキシングすることができるか否かであり、この条件が満たされているか否かの判定は、PSR1に設定されているストリーム番号が、SecondaryオーディオストリームのComb_info_Secondary_audio_Primary_audioに記載されているかを判断することでなされる。
【０２０８】
条件(c)とは、Secondaryオーディオストリームiの言語属性がストリーム供給装置の言語設定と同じであることであり、これを満たすか否かの判定は、STN_tableに記述されたSecondaryオーディオストリームiのAudio_language_codeがPSRの設定値と同じであるか否かの比較でなされる。
これらの複数の条件のうち、「Secondaryオーディオストリームiがどれとどれを満たすか」、また「何個の条件を満たすか」という、満たすべき条件のパターンにより、本フローチャートは、Secondaryオーディオストリームに優先順位を付与する。
以上の処理をSecondaryオーディオストリームの全てについて繰り返されれば、ステップＳ３９〜ステップＳ４１、ステップＳ４４〜ステップＳ４６の処理を行う。ステップＳ３９は、条件(a)及び条件(b)を満たすSecondaryオーディオストリームが存在しないかどうかの判定である。もし、存在しなければ、不定値(0xFF)をPSR14に設定する(ステップＳ４４)。
【０２０９】
ステップＳ４０は、条件(a)(b)(c)の全てを満たすSecondaryオーディオストリームが存在するかどうかの判定である。もし存在すれば、条件(a)(b)(c)を満たすSecondaryオーディオストリームの番号をPSR14に設定する(ステップＳ４５)。
ここで問題になるのが、条件(a)(b)(c)を満たすSecondaryオーディオストリームが複数存在する場合である。条件(a)〜条件(c)が全てみたされるので、同じ優先順位になってしまうので優劣を決めることができない。この場合ステップＳ４５では、STN_tableにおけるentryの順序に応じて、各ストリームにおける順位が定める。即ち、コーディック−言語属性−チャネル属性が同じSecondaryオーディオストリームについては、STN_tableにおけるentryの順番が最も早いSecondaryオーディオストリームが選ばれることになる。
【０２１０】
STN_tableにおける記述順序を変えることで、オーサリング担当者は再生時においてどのストリームを優先的に再生させ、どのストリームを後回しにするかという選択制御をオーサリング時に規定することができる。
ステップＳ４１は、条件(a)(b)(c)の全てを満たすSecondaryオーディオストリームが存在しない場合、条件(a)(b)を満たすSecondaryオーディオストリームが存在するかどうかの判定である。もし存在すれば、条件(a)(b)を満たすSecondaryオーディオストリームのうち、STN_tableにおけるエントリーの順番が最も早いものをPSR14に設定する(ステップＳ４６)。
【０２１１】
以上がProcedure when playback condition is changedである。続いてProcedure when Stream change is requestedについて説明する。図４４は、ストリーム変化時におけるPSR14の設定手順を示すフローチャートである。本フローチャートと、図４２（ｂ）との違いは、図４２（ｂ）におけるPSR14の表記がXに置き換えられている点である。このXは、操作受付部２６から出力されたUser Operation情報やIGデコーダ１３から出力されたボタンコマンドに基づく値である。
【０２１２】
本フローチャートにおけるステップＳ４９は、XよりSTN_tableのentry数が多く、尚且つ、条件(A)、条件(B)が真であるかを判定するものである。もしXがこの条件を満たすなら、PSR14にXを設定する(ステップＳ５１)。
もしXがentry数より大きいか、或は条件(A)及び条件(B)を満たさない場合は、Xが、0xFFであるか否かを判定する（ステップＳ５２）。もしOxFFでなければ、ユーザが選択を意図するSecondaryオーディオストリームの番号は無効であると考えられるので、ユーザ操作に基づく値Xを無視し、PSR14の設定値を維持する(ステップＳ５３)。
【０２１３】
もしPSR14の設定値が0xFFであるなら、PSR14を設定する(ステップＳ５４)。このステップＳ５４の処理手順は、図４３に示した処理手順と同一である(図４３のうち、ステップＳ３９の判定はProcedure when Stream change is requestedでは必要ではない。何故ならProcedure when Stream change is requestedでは、条件(a)(b)(c)を満たすSecondaryオーディオストリームが1つも存在しない場合、ユーザが設定した値XをPSR14に設定せず、PSR14の設定値を維持するからである。)。
【０２１４】
以上でProcedure実行部４３についての説明を終える。
＜機能構成の詳細その５.ミキシング制御部４４＞
ミキシング制御部４４は、オーディオデコード能力を有する機器がHDMIを介して接続されている場合、Primaryオーディオストリームを構成するTSパケット及びSecondaryオーディオストリームを構成するTSパケットを、オーディオデコーダ７a,bへ供給することなく、それらのエレメンタリーストリームをHDMI送受信部２７へ供給するよう、スイッチ１０aを制御する。ミキシング制御部４４は、さらに、オーディオデコード能力を有する機器がHDMIを介して接続されておらず、且つ、ストリーム供給装置３００のPlayer Profile情報が0001bである場合、又は、0011bである場合、Primaryオーディオストリームの再生出力に対して、Secondaryオーディオストリームの再生出力、又は、サウンドデータの再生出力をミキシングするよう、ミキサー９a、ミキサー９bを制御する。
【０２１５】
ここでPlayItem時間軸における現在の再生時点が、SubPlayItem情報のIn_timeからOut_timeまでであり、また、カレントPlayItem情報のSTN_Tableにおいて、Secondaryオーディオストリームが有効になっている場合、PSR14に格納されたストリーム番号のSecondaryオーディオストリームのデコードが、オーディオデコーダ７bにてなされているので、ミキシング制御部４４は、オーディオデコーダ７aの再生出力に対して、オーディオデコーダ７bの再生出力をミキシングするよう、ミキサー９aを制御する。
【０２１６】
Primaryオーディオストリームにおける属性がサラウンドである場合、L,R,C,LS,RS,LR,RR,LFEといった成分のうち、所望の成分のみを残すようダウンミキシングを行った上で、Secondaryオーディオストリームの再生出力をミキシングすることができる。ここでSecondaryオーディオストリームが映画監督のコメンタリ音声である場合、SecondaryオーディオストリームをミキシングすべきPrimaryオーディオストリームのチャンネルを、L→C→Rというように変化させてゆけば、ユーザの回りを映画監督が、歩き回っているかのような感覚を、ユーザに与えることができる。このようなミキシングをパンニングと呼んでいる。パンニングではPrimaryオーディオストリームよりも少ないチャンネル数のSecondaryオーディオストリーム（例えばモノラル）の音声が使われる。
【０２１７】
Java(登録商標)アプリケーションにて描画されたボタンに対し確定操作がなされた場合、又は、IGストリームにより描画されたボタンに対し確定操作がなされた場合、Primaryオーディオストリームの再生出力、又は、Primaryオーディオストリームの再生出力と、Secondaryオーディオストリームの再生出力とのミキシング結果に対して、サウンドデータをミキシングするよう、ミキサー９bを制御する。
【０２１８】
以上が、本実施形態に係るストリーム供給装置３００についての説明である。
以上のように本実施形態によれば、ストリーム供給装置はHDMIのようにデジタルI/Fを介してオーディオアンプの能力を取得し、それに応じてPSR15を設定した上、このPSR15に基づき、PrimaryオーディオストリームをBD-ROMディスク/ローカルストレージから選択して、このPrimaryオーディオストリームのパススルー出力を行う。このとき符号化形式がDTS-HD形式である場合には、DIBにより拡張データをデコードに利用可能か否かが示されるため、実際にどのような品質で音声再生されるかストリーム供給装置がわで事前に把握することができる。
【０２１９】
尚、ロスレス圧縮されたオーディオデータのデコードは演算量が多く、高い処理能力が必要とされる。そのため、処理速度やメモリ容量のつごうから、DTS-HD(xLL)をデコードすることは出来るが、DTS-ESやDTS-96/24などをデコードする場合よりも少ないチャンネル数にしか対応できないといったケースも考えられる。
このような場合には、図４５に示すようにDIBを改良することで、CODING TYPEがDTSである場合に、DTSの拡張規格であるDTS-ES、DTS-96-24、DTS-HD(xLL)のうちデコード可能な符号化方式毎に、対応可能なチャンネル数、スピーカ構成、サンプリング周波数を、オーディオアンプからストリーム供給装置へ通知することができる。これによって、実際に再生される音声の品質をストリーム供給装置側でより適切に把握することが出来る。図４５の例では、オーディオアンプはCore substreamのデコード、
Extention substreamのDTS-ES部分のデコード、Extention substreamのDTS-96/24部分のデコードが可能であり、Core substreamをデコードに用いる際には5.1ch、48KHzで音声再生が可能であり、DTS-ES部分をデコードに用いる際には7.1ch、48KHzで音声再生が可能であり、DTS-96/24部分をデコードに用いる際には2ch、196KHzで音声再生が可能であることが示される。
【０２２０】
(備考)
以上、本願の出願時点において、出願人が知り得る最良の実施形態について説明したが、 以下に示す技術的トピックについては、更なる改良や変更実施を加えることができる。上記の実施形態に示した通り実施するか、これらの改良・変更を施すか否かは、何れも任意的であり、実施する者の意思によることは留意されたい。
【０２２１】
(追加コンテンツに対する処理)
ローカルストレージ２００にダウンロードされた追加コンテンツは、何ヶ月、何年か経過すれば自動的に消去するよう、ストリーム供給装置を初期設定しておくのが望ましい。
（PIDの代用）
上記実施形態では、Primaryオーディオストリーム、Secondaryオーディオストリームの区別にPIDを用いたが、MPEG２-PSを使う場合には、PESパケットヘッダのstream_idをそれぞれ異なるものにするのが望ましい。
【０２２２】
またPrimaryオーディオストリーム、Secondaryオーディオストリームは、２つの音声ストリームが１つのデマルチプレクサでも弁別可能なように、システムストリームレベルにおいて区別されていればよい。もしくは、２つのストリームを１つに束ねる前に、片方のPIDを重複しないように付け替えておくだけでもよい。
(制御手順の実現)
上記実施形態においてフローチャートを引用して説明した制御手順や、機能的な構成要素による制御手順は、ハードウェア資源を用いて具体的に実現されていることから、自然法則を利用した技術的思想の創作といえ、“プログラムの発明”としての成立要件を満たす。
【０２２３】
・本発明に係るプログラムの生産形態
本発明に係るプログラムは、コンピュータが実行することができる実行形式のプログラム(オブジェクトプログラム)であり、上記実施形態に示したフローチャートの各ステップや、機能的構成要素の個々の手順を、コンピュータに実行させるような1つ以上のプログラムコードから構成される。ここでプログラムコードは、プロセッサのネィティブコード、JAVA(登録商標)バイトコードというように、様々な種類がある。またプログラムコードによる各ステップの実現には、様々な態様がある。外部関数を利用して、各ステップを実現することができる場合、この外部関数をコールするコール文が、プログラムコードになる。また、1つのステップを実現するようなプログラムコードが、別々のオブジェクトプログラムに帰属することもある。命令種が制限されているRISCプロセッサでは、算術演算命令や論理演算命令、分岐命令等を組合せることで、フローチャートの各ステップが実現されることもある。
【０２２４】
本発明にかかるプログラムは、以下のようにして作ることができる。先ず初めに、ソフトウェア開発者は、プログラミング言語を用いて、各フローチャートや、機能的な構成要素を実現するようなソースプログラムを記述する。この記述にあたって、ソフトウェア開発者は、プログラミング言語の構文に従い、クラス構造体や変数、配列変数、外部関数のコールを用いて、各フローチャートや、機能的な構成要素を具現するソースプログラムを記述する。
【０２２５】
記述されたソースプログラムは、ファイルとしてコンパイラに与えられる。コンパイラは、これらのソースプログラムを翻訳してオブジェクトプログラムを生成する。
コンパイラによる翻訳は、構文解析、最適化、資源割付、コード生成といった過程からなる。構文解析では、ソースプログラムの字句解析、構文解析および意味解析を行い、ソースプログラムを中間プログラムに変換する。最適化では、中間プログラムに対して、基本ブロック化、制御フロー解析、データフロー解析という作業を行う。資源割付では、ターゲットとなるプロセッサの命令セットへの適合を図るため、中間プログラム中の変数をターゲットとなるプロセッサのプロセッサが有しているレジスタまたはメモリに割り付ける。コード生成では、中間プログラム内の各中間命令を、プログラムコードに変換し、オブジェクトプログラムを得る。
【０２２６】
オブジェクトプログラムが生成されるとプログラマはこれらに対してリンカを起動する。リンカはこれらのオブジェクトプログラムや、関連するライブラリプログラムをメモリ空間に割り当て、これらを１つに結合して、ロードモジュールを生成する。こうして生成されるロードモジュールは、コンピュータによる読み取りを前提にしたものであり、各フローチャートに示した処理手順や機能的な構成要素の処理手順を、コンピュータに実行させるものである。以上の処理を経て、本発明に係るプログラムを作ることができる。
【０２２７】
・本発明に係るプログラムの使用形態
本発明に係るプログラムは、以下のようにして使用することができる。
(i)組込プログラムとしての使用
本発明に係るプログラムを組込プログラムとして使用する場合、プログラムにあたるロードモジュールを、基本入出力プログラム(BIOS)や、様々なミドルウェア(オペレーションシステム)と共に、命令ROMに書き込む。こうした命令ROMを、制御部に組み込み、CPUに実行させることにより、本発明に係るプログラムを、ストリーム供給装置３００の制御プログラムとして使用することができる。
【０２２８】
(ii)アプリケーションとしての使用
ストリーム供給装置３００が、ハードディスク内蔵モデルである場合は、基本入出力プログラム(BIOS)が命令ROMに組み込まれており、様々なミドルウェア(オペレーションシステム)が、ハードディスクにプレインストールされている。また、ハードディスクから、システムを起動するためのブートROMが、ストリーム供給装置３００に設けられている。
【０２２９】
この場合、ロードモジュールのみを、過搬型の記録媒体やネットワークを通じて、ストリーム供給装置３００に供給し、1つのアプリケーションとしてハードディスクにインストールする。そうすると、ストリーム供給装置３００は、ブートROMによるブートストラップを行い、オペレーションシステムを起動した上で、1つのアプリケーションとして、当該アプリケーションをCPUに実行させ、本発明に係るプログラムを使用する。
【０２３０】
ハードディスクモデルのストリーム供給装置３００では、本発明のプログラムを1つのアプリケーションとして使用しうるので、本発明に係るプログラムを単体で譲渡したり、貸与したり、ネットワークを通じて供給することができる。
(コントローラ２２)
上記実施形態に示したコントローラ２２等の構成要素は、一個のシステムLSIとして実現することができる。
【０２３１】
システムLSIとは、高密度基板上にベアチップを実装し、パッケージングしたものをいう。複数個のベアチップを高密度基板上に実装し、パッケージングすることにより、あたかも1つのLSIのような外形構造を複数個のベアチップに持たせたものも、システムLSIに含まれる(このようなシステムLSIは、マルチチップモジュールと呼ばれる。)。
ここでパッケージの種別に着目するとシステムLSIには、QFP(クッド フラッド アレイ)、PGA(ピン グリッド アレイ)という種別がある。QFPは、パッケージの四側面にピンが取り付けられたシステムLSIである。PGAは、底面全体に、多くのピンが取り付けられたシステムLSIである。
【０２３２】
これらのピンは、他の回路とのインターフェイスとしての役割を担っている。システムLSIにおけるピンには、こうしたインターフェイスの役割が存在するので、システムLSIにおけるこれらのピンに、他の回路を接続することにより、システムLSIは、ストリーム供給装置３００の中核としての役割を果たす。
システムLSIにパッケージングされるベアチップは、“フロントエンド部”、“バックエンド部”、“デジタル処理部”からなる。“フロントエンド部”は、アナログ信号を、デジタル化する部分であり、“バックエンド部”はデジタル処理の結果、得られたデータを、アナログ化して出力する部分である。
【０２３３】
上記実施形態において内部構成図として示した各構成要素は、このデジタル処理部内に実装される。
先に“組込プログラムとしての使用”で述べたように、命令ROMには、プログラムにあたるロードモジュールや、基本入出力プログラム(BIOS)、様々なミドルウェア(オペレーションシステム)が書き込まれる。本実施形態において、特に創作したのは、このプログラムにあたるロードモジュールの部分なので、プログラムにあたるロードモジュールを格納した命令ROMを、ベアチップとしてパッケージングすることにより、本発明に係るシステムLSIは生産することができる。
【０２３４】
具体的な実装については、SoC実装やSiP実装を用いることができ望ましい。SoC(System on chip)実装とは、1チップ上に複数の回路を焼き付ける技術である。SiP(System in Package)実装とは、複数チップを樹脂等で1パッケージにする技術である。以上の過程を経て、本発明に係るシステムLSIは、上記実施形態に示したストリーム供給装置３００の内部構成図を基に作ることができる。
【０２３５】
尚、上述のようにして生成される集積回路は、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。
さらに、各記録読出装置の構成要素の一部又は全てを1つのチップとして構成してもよい。集積回路化は、上述したSoC実装,SiP実装に限るものではなく、専用回路又は汎用プロセスで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA（Field Programmable Gate Array）や、LSI内部の回路セルの接続や設定を再構成可能なシリコンフィギュラブル・プロセッサを利用することが考えられる。更には、半導体技術の進歩又は派生する技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積回路化を行っても良い。例えば、バイオ技術の適応などが可能性としてありうる。
【産業上の利用可能性】
【０２３６】
本発明はホームシアターシステムを構成するストリーム再生装置、ストリーム供給装置等に適用でき、特に、記録媒体からオーディオストリームを読み出すストリーム供給装置と、オーディオストリームをデコードするストリーム再生装置とがHDMI等のデジタルI/Fを介して接続して利用する場合に有用である。
【符号の説明】
【０２３７】
１００  BD-ROM
２００  ローカルストレージ
３００  ストリーム供給装置
４００  オーディオアンプ
５００  スピーカ
６００  テレビ
１a  BD-ROMドライブ
１b  バス
２a,b  リードバッファ
３a,b  デマルチプレクサ
４  ビデオデコーダ
５  ビデオプレーン
６a,b  バッファ
７a,b  オーディオデコーダ
８  DownMix/DownSample
９a  ミキサー
９b  ミキサー
１０a  スイッチ
１０b  エンコーダ
１１  Interactive Graphicsデコーダ
１２  Interactive Graphicsプレーン
１３  Presentation Graphicsデコーダ
１４  Presentation Graphicsプレーン
１５  JPEGデコーダ
１６  Stillプレーン
１７  合成部
１８a,b  STC生成部
１９a,b  ATC生成部
２１  メモリ
２２  コントローラ
２３  PSRセット
２４  PID変換部
２５  通信部
２６  操作受付部
２７  HDMI送受信部
３１  バッファ
３２  オーディオデコーダ
３３  コントローラ
３４  HDMI送受信部
３５  EEPROM
４０  起動処理部
４１  プレイリスト処理部
４２  Procedure実行部
４３  Procedure実行部
４４  ミキシング制御部
【図１】
0004395543.tif 000002
【図２】
0004395543.tif 000003
【図３】
0004395543.tif 000004
【図４】
0004395543.tif 000005
【図５】
0004395543.tif 000006
【図６】
0004395543.tif 000007
【図７】
0004395543.tif 000008
【図８】
0004395543.tif 000009
【図９】
0004395543.tif 000010
【図１０】
0004395543.tif 000011
【図１１】
0004395543.tif 000012
【図１２】
0004395543.tif 000013
【図１３】
0004395543.tif 000014
【図１４】
0004395543.tif 000015
【図１５】
0004395543.tif 000016
【図１６】
0004395543.tif 000017
【図１７】
0004395543.tif 000018
【図１８】
0004395543.tif 000019
【図１９】
0004395543.tif 000020
【図２０】
0004395543.tif 000021
【図２１】
0004395543.tif 000022
【図２２】
0004395543.tif 000023
【図２３】
0004395543.tif 000024
【図２４】
0004395543.tif 000025
【図２５】
0004395543.tif 000026
【図２６】
0004395543.tif 000027
【図２７】
0004395543.tif 000028
【図２８】
0004395543.tif 000029
【図２９】
0004395543.tif 000030
【図３０】
0004395543.tif 000031
【図３１】
0004395543.tif 000032
【図３２】
0004395543.tif 000033
【図３３】
0004395543.tif 000034
【図３４】
0004395543.tif 000035
【図３５】
0004395543.tif 000036
【図３６】
0004395543.tif 000037
【図３７】
0004395543.tif 000038
【図３８】
0004395543.tif 000039
【図３９】
0004395543.tif 000040
【図４０】
0004395543.tif 000041
【図４１】
0004395543.tif 000042
【図４２】
0004395543.tif 000043
【図４３】
0004395543.tif 000044
【図４４】
0004395543.tif 000045
【図４５】
0004395543.tif 000046