(57)【要約】  再生装置は、プレイリストを再生する。カレントプレイアイテムが変化する度に、カレントプレイアイテムにとって最適なサブストリームをカレントサブストリームとして決定する。この選択の際、カレントサブプレイアイテムを特定する。  カレントサブプレイアイテムによって参照されているクリップファイルが、ダウンロード済みであり、ローカルストレージにおいてEnable状態になっていればプレイアイテムの再生を進行するが、カレントサブプレイアイテムによって参照されているクリップファイルが記録媒体においてMissing状態になっているか、又は、無効状態になっていれば、DataStarvedイベントを出力することにより、プレイアイテムの再生を停止する。
2009101787.tif 000002
【特許請求の範囲】
【請求項１】
プレイリストを再生する再生装置であって、
プレイリストは、複数のプレイアイテムと、複数のサブプレイアイテムとを含み、
前記プレイアイテムは、メインストリームを含むクリップファイルと、当該クリップファイルにおける再生区間を規定する情報であり、
前記サブプレイアイテムは、サブストリームを含むクリップファイルと、当該クリップファイルにおける再生区間を、プレイアイテムと同期すべき再生区間として規定する情報であり、
前記サブプレイアイテムが参照するクリップファイルは、伝送路を介して伝送されるクリップファイルであり、サブストリームは、プレイアイテムが参照しているクリップファイルとは多重化されておらず、
プレイリストに含まれるプレイアイテムを再生する再生手段と、
複数のプレイアイテムのうち、再生対象になっているものをカレントプレイアイテムとして特定する特定手段と、
カレントプレイアイテムが変化する度に、カレントプレイアイテムにとって最適なサブプレイアイテムをカレントサブプレイアイテムとして決定する決定手段と、
前記カレントプレイアイテムと同期して再生すべきカレントサブストリームを指し示すサブストリームレジスタとを備え、
前記カレントサブプレイアイテムとは、
カレントプレイアイテムと同期すべき再生区間を規定するサブプレイアイテムであって、前記サブストリームレジスタが指し示すサブストリームの再生区間を規定するものであり、
前記再生手段は、
再生装置がアクセス可能な記録媒体に、カレントサブプレイアイテムによって参照されているクリップファイルが存在すればプレイアイテムの再生を進行し、カレントサブプレイアイテムによって参照されているクリップファイルが記録媒体において存在しないか又は認識不能な状態になっていれば、プレイアイテムの再生を停止する
ことを特徴とする再生装置。
【請求項２】
サブストリームには、オーディオストリーム、ビデオストリーム、字幕ストリームという種別があり、
サブストリームレジスタは、サブストリームの種別毎にストリーム番号を保持する番号レジスタを備え、各番号レジスタは、ストリーム番号を保持することで、サブストリームの種別毎のカレントサブストリームを指し示し、
前記カレントサブプレイアイテムは、
番号レジスタが指し示すカレントサブストリームを格納したクリップファイルを参照しているサブプレイアイテムである
ことを特徴とする請求項１記載の再生装置。
【請求項３】
前記再生装置は、
記録媒体におけるクリップファイルの状態を管理する管理手段を備え、
前記クリップファイルは、
アプリケーションがサーバ装置に対してダウンロードを要求することで伝送路を介して再生装置に送信され、
前記再生手段による再生開始は、
アプリケーションが、プレイリスト情報に対してプレーヤインスタンスを生成することでなされ、
前記再生手段の停止は、
カレントサブプレイアイテムによって参照されているクリップファイルが記録媒体において存在しないか又は認識不能な状態になっている場合、管理手段が、再生手段及びプレーヤインスタンスに、再生停止を指示するイベントを出力することでなされる
ことを特徴とする請求項１記載の再生装置
【請求項４】
プレイアイテムから参照されるクリップファイルはビデオストリームを含み、
サブストリームは、前記ビデオストリームと同期して再生することで立体視をユーザに行うサブビデオストリームであり、
プレイリストは、立体視セッティング情報を含み、立体視セッティング情報は、立体視をオンとするか、オフとするかを示し、
立体視セッティング情報が立体視オフを示している場合、再生手段は、サブプレイアイテムにて参照されているクリップファイルであって、サブビデオストリームを含むクリップファイルが前記記録媒体に存在しないか又は認識不能な状態になっていたとしても、再生を停止せず、
再生手段が再生を停止するのは、プレイリストにおける立体視セッティング情報が立体視オンを示している場合であって、カレントサブプレイアイテムによって参照されているクリップファイルが前記記録媒体に存在しないか又は認識不能な状態になっている場合に限る
ことを特徴とする請求項１記載の再生装置。
【請求項５】
サブストリームは、字幕ストリームであり、
前記サブストリームレジスタは更に、字幕オン／オフの設定を含み、
前記再生手段は、
前記サブストリームレジスタが字幕オフを示している場合、字幕ストリームを含む何れのクリップファイルが記録媒体に存在しないか、又は、認識不能な状態であったとしても再生を停止せず、
再生を停止するのは、前記サブストリームレジスタが字幕オンを示している場合であって、カレントサブプレイアイテムによって参照されているクリップファイルが記録媒体において存在しないか又は認識不能な状態になっている場合に限る
ことを特徴とする請求項１記載の再生装置。
【請求項６】
プレイアイテム情報は、再生が可能なサブストリームを示すストリーム番号テーブルを含み、
前記ストリーム番号テーブルは、複数のサブストリームエントリーとを含み、
複数のサブストリームエントリーは、プレイアイテムと同期して再生することができる複数のサブストリームを示す情報であり、
各々サブストリームエントリーは、同期再生可能なサブストリームと、サブプレイアイテム情報との対応付けて示す情報であり、ストリーム番号テーブルにおけるサブストリームエントリーの順序は、サブストリームの優先順位を示し、
カレントサブストリームは、
同期再生可能な複数のサブストリームのうち、対応するサブストリームエントリーの優先順位が最高位のものである
ことを特徴とする請求項１記載の再生装置。
【請求項７】
前記再生装置は、デッキ情報を格納するセッティングレジスタを備え、
デッキ情報は、再生装置における言語設定を示し、
前記決定手段は、
再生が許可されているサブストリームのうち、デッキ情報に示される言語設定と合致する言語属性を有するものを、カレントサブストリームとして決定する
ことを特徴とする請求項１記載の再生装置。
【請求項８】
プレイリストの再生時に参照されるクリップファイルを記録媒体に書き込む記録装置であって、
プレイリストは、複数のプレイアイテムと、複数のサブプレイアイテムとを含み、
前記プレイアイテムは、メインストリームを含むクリップファイルと、当該クリップファイルにおける再生区間を規定する情報であり、
前記サブプレイアイテムは、サブストリームを含むクリップファイルと、当該クリップファイルにおける再生区間を、プレイアイテムと同期すべき再生区間として規定する情報であり、
前記サブプレイアイテムが参照するクリップファイルは、伝送路を介して伝送されるクリップファイルであり、サブストリームは、プレイアイテムが参照しているクリップファイルとは多重化されておらず、
クリップファイルを伝送路を介して受け取って、記録媒体に書き込む書込手段と、
記録媒体に書き込まれたクリップファイルの状態を管理する管理手段と、
プレイリストに含まれるプレイアイテムを再生する再生手段と、
複数のプレイアイテムのうち、再生対象になっているものをカレントプレイアイテムとして特定する特定手段と、
カレントプレイアイテムが変化する度に、カレントプレイアイテムにとって最適なサブプレイアイテムをカレントサブプレイアイテムとして決定する決定手段と、
前記カレントプレイアイテムと同期して再生すべきカレントサブストリームを指し示すサブストリームレジスタとを備え、
前記カレントサブプレイアイテムとは、
カレントプレイアイテムと同期すべき再生区間を規定するサブプレイアイテムであって、前記サブストリームレジスタが指し示すサブストリームの再生区間を規定するものであり、
前記再生手段は、
再生装置がアクセス可能な記録媒体に、カレントサブプレイアイテムによって参照されているクリップファイルが存在すればプレイアイテムの再生を進行し、カレントサブプレイアイテムによって参照されているクリップファイルが記録媒体において存在しないか又は認識不能な状態になっていれば、プレイアイテムの再生を停止する
ことを特徴とする記録装置。
【請求項９】
アプリケーションは、カレントプレイアイテムの再生がなされている期間内に、プレイリスト情報に含まれる複数のサブプレイアイテム情報のうち、カレントサブプレイアイテムの次順位となるものをネクストサブプレイアイテムとして特定して、ネクストサブプレイアイテムによって参照されているクリップファイルのダウンロードを、サーバ装置に対して要求し、
前記書込手段によって記録媒体に書き込まれるクリップファイルは、ネクストサブプレイアイテム情報によって参照されているクリップファイルである
ことを特徴とする請求項８記載の記録装置。
【請求項１０】
プレイリストを再生する再生方法であって、
プレイリストは、複数のプレイアイテムと、複数のサブプレイアイテムとを含み、
前記プレイアイテムは、メインストリームを含むクリップファイルと、当該クリップファイルにおける再生区間を規定する情報であり、
前記サブプレイアイテムは、サブストリームを含むクリップファイルと、当該クリップファイルにおける再生区間を、プレイアイテムと同期すべき再生区間として規定する情報であり、
前記サブプレイアイテムが参照するクリップファイルは、伝送路を介して伝送されるクリップファイルであり、サブストリームは、プレイアイテムが参照しているクリップファイルとは多重化されておらず、
プレイリストに含まれるプレイアイテムを再生する再生ステップと、
複数のプレイアイテムのうち、再生対象になっているものをカレントプレイアイテムとして特定する特定ステップと、
カレントプレイアイテムが変化する度に、カレントプレイアイテムにとって最適なサブプレイアイテムをカレントサブプレイアイテムとして決定する決定ステップと、
前記カレントプレイアイテムと同期して再生すべきカレントサブストリームを指し示すステップとを有し、
前記カレントサブプレイアイテムとは、
カレントプレイアイテムと同期すべき再生区間を規定するサブプレイアイテムであって、カレントサブストリームの再生区間を規定するものであり、
前記再生ステップは、
アクセス可能な記録媒体に、カレントサブプレイアイテムによって参照されているクリップファイルが存在すればプレイアイテムの再生を進行し、カレントサブプレイアイテムによって参照されているクリップファイルが記録媒体において存在しないか又は認識不能な状態になっていれば、プレイアイテムの再生を停止する
ことを特徴とする再生方法。
【請求項１１】
プレイリストの再生時に参照されるクリップファイルを記録媒体に書き込む記録方法であって、
プレイリストは、複数のプレイアイテムと、複数のサブプレイアイテムとを含み、
前記プレイアイテムは、メインストリームを含むクリップファイルと、当該クリップファイルにおける再生区間を規定する情報であり、
前記サブプレイアイテムは、サブストリームを含むクリップファイルと、当該クリップファイルにおける再生区間を、プレイアイテムと同期すべき再生区間として規定する情報であり、
前記サブプレイアイテムが参照するクリップファイルは、伝送路を介して伝送されるクリップファイルであり、サブストリームは、プレイアイテムが参照しているクリップファイルとは多重化されておらず、
クリップファイルを伝送路を介して受け取って、記録媒体に書き込む書込ステップと、
記録媒体に書き込まれたクリップファイルの状態を管理する管理ステップと、
プレイリストに含まれるプレイアイテムを再生する再生ステップと、
複数のプレイアイテムのうち、再生対象になっているものをカレントプレイアイテムとして特定する特定ステップと、
カレントプレイアイテムが変化する度に、カレントプレイアイテムにとって最適なサブプレイアイテムをカレントサブプレイアイテムとして決定する決定ステップと、
前記カレントプレイアイテムと同期して再生すべきカレントサブストリームを指し示すステップとを有し、
前記カレントサブプレイアイテムとは、
カレントプレイアイテムと同期すべき再生区間を規定するサブプレイアイテムであって、カレントサブストリームの再生区間を規定するものであり、
前記再生ステップは、
カレントサブプレイアイテムによって参照されているクリップファイルが、記録媒体において存在すればプレイアイテムの再生を進行し、カレントサブプレイアイテムによって参照されているクリップファイルが記録媒体において存在しないか又は認識不能な状態になっていれば、プレイアイテムの再生を停止する
ことを特徴とする記録方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プレイリスト再生技術の技術分野に属する発明である。
【背景技術】
【０００２】
プレイリストとは、論理的な再生経路を定義するための情報であり、コンテンツ格納のための様々なアプリケーションフォーマットでは、このプレイリストが、1つの決まった再生単位となる。一般にプレイリストは、プレイアイテム、サブプレイアイテムから構成される。プレイアイテムとは、主たる動画像を構成するビデオストリームの時間軸において、イン点、及び、アウト点の組みを指定することで定義される論理的な再生区間である。【０００３】
サブプレイアイテムとは、サブストリームの時間軸において、イン点、及び、アウト点の組みを指定することで定義される論理的な再生区間である。ここでサブストリームとは、ビデオストリームとは多重化されていないが、ビデオストリームと共に再生されるようなオーディオストリーム、字幕ストリーム、ビデオストリームのことである。【０００４】
ROMディスクの記録内容と、他の記録媒体の記録内容とを組合せて、仮想パッケージを構築する場合、ネットワークを通じてダウンロードされるサブストリームの再生区間を、サブプレイアイテムにて定義することができる。ここで、プレイリストにおけるプレイアイテムにおいて、ROMディスクに記録されているAVストリームの再生区間を定義し、プレイリストにおけるサブプレイアイテムにおいて、ダウンロードされるべきサブストリームの再生区間を定義することにより、当該プレイリストは、光ディスクにない、新しい字幕・音声と、動画像との組合せを実現することができる。【０００５】
この仮想的なパッケージを生成する技術の先行技術としては、以下の特許文献１に記載されたものがある。
【特許文献１】特開２００６-１０９４９４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところが、ROMディスクからの読み出しには、54Mbpsというビットレートを確保することができる。しかし、一般のユーザ宅内では、ストリーミング再生時に保障されるビットレートが、ベストエフォートであることが多く、ROMディスクからのストリーム再生のように、常時、一定の高さのビットレートを確保できない。【０００７】
ストリーミング再生のためのビットレートが制約されている状況下で、多くのサブプレイアイテムを包含しているようなプレイリストを再生しようとした場合を考える。【０００８】
例えば、本編映像の特定のシーンにおいて、あるプレイアイテムには、１０個のサブプレイアイテムが付随しており、これらのサブプレイアイテムが、オプション扱いとなる１０ヶ国の言語をサポートしているケースを想定する。そして、個々のサブプレイアイテムによって参照されているクリップファイルが10Ｍバイトのデータサイズをもつものとすると、一個のプレイアイテムの再生を開始するには、本編であるプレイアイテムによって参照されているAVクリップとは別に、“１０ヶ国の言語×１0Ｍバイト=100Ｍバイト”のファイルのダウンロードが完了しなければならない。この場合、クリップファイルのダウンロードを担うアプリケーションが、１０個のサブプレイアイテムによって参照されている合計１００Ｍバイトのクリップファイルのダウンロードを先に行い、プレイアイテムによって参照されているクリップファイルのダウンロードを後回しにすれば、ビットレートが制限されている状況下では、プレイアイテムによって参照されているクリップファイルの供給が遅れて、再生進行が遅れる恐れがある。【０００９】
これを避けるため、メインパスによって参照されているクリップファイルのダウンロードを先に行い、サブプレイアイテムによって参照されているクリップファイルのダウンロードを後回しにすると、ユーザが、サブプレイアイテムにて参照されているクリップファイル内のエレメンタリストリームを、再生対象として選択している場合、再生対象となるエレメンタリストリームをデコーダに供給することができず、字幕、音声、動画像の何れかが欠落したまま再生が進行する恐れがある。【００１０】
このように、多くのサブプレイアイテムが存在しているためダウンロードすべきクリップファイルが多くなると、これらのうち、何を優先してダウンロードすべきかという指針を、アプリケーションに与えることができなくなるので、ビットレートが制限されている状況下では、再生の途切れが顕著化したり、字幕、音声、動画像の何れかが欠落したまま再生が進行する恐れがある。【００１１】
加えてユーザは、ROMディスクからのストリーム読み出しであるか、ネットワークからのストリーム供給であるかを意識していないので、再生内容の一部が欠落した場合、再生装置が、故障しているかのように勘違いして、メーカーの相談窓口に、商品苦情を訴え出る可能性がある。サブプレイアイテムを構成するようなクリップファイルのダウンロード手続きは、再生装置における組込みプログラムではなく、映画作品の制作者が作成したアプリケーションプログラムによってなされることが一般的である。映画作品の制作者が作成したアプリケーションプログラムが、たまたまサブプレイアイテムを構成するクリップファイルのダウンロードを優先したために、メーカーが上述したような苦情にまきこまれるのは、メーカーにとって望ましいことではない。【００１２】
本発明の目的は、多くのサブプレイアイテムが存在しているためダウンロードすべきクリップファイルが多く存在する場合、これらのうち、何を優先してダウンロードすべきかという指針を、アプリケーションに与えることができる再生装置を提供することである。    
【課題を解決するための手段】
【００１３】
上記課題を解決するため、本発明にかかる再生装置は、プレイリストを再生する再生装置であって、プレイリストは、複数のプレイアイテムと、複数のサブプレイアイテムとを含み、前記プレイアイテムは、メインストリームを含むクリップファイルと、当該クリップファイルにおける再生区間を規定する情報であり、前記サブプレイアイテムは、サブストリームを含むクリップファイルと、当該クリップファイルにおける再生区間を、プレイアイテムと同期すべき再生区間として規定する情報であり、前記サブプレイアイテムが参照するクリップファイルは、伝送路を介して伝送されるクリップファイルであり、サブストリームは、プレイアイテムが参照しているクリップファイルとは多重化されておらず、プレイリストに含まれるプレイアイテムを再生する再生手段と、複数のプレイアイテムのうち、再生対象になっているものをカレントプレイアイテムとして特定する特定手段と、カレントプレイアイテムが変化する度に、カレントプレイアイテムにとって最適なサブプレイアイテムをカレントサブプレイアイテムとして決定する決定手段と、前記カレントプレイアイテムと同期して再生すべきカレントサブストリームを指し示すサブストリームレジスタとを備え、前記カレントサブプレイアイテムとは、カレントプレイアイテムと同期すべき再生区間を規定するサブプレイアイテムであって、前記サブストリームレジスタが指し示すサブストリームの再生区間を規定するものであり、前記再生手段は、再生装置がアクセス可能な記録媒体に、カレントサブプレイアイテムによって参照されているクリップファイルが存在すればプレイアイテムの再生を進行し、カレントサブプレイアイテムによって参照されているクリップファイルが記録媒体において存在しないか又は認識不能な状態になっていれば、プレイアイテムの再生を停止することを特徴とする。
【発明の効果】
【００１４】
上記再生装置によれば、カレントサブプレイアイテムによって参照されているクリップファイルであって、カレントサブストリームを含むものが記録媒体に存在しない場合、一律に再生停止されることになる。【００１５】
言い換えれば、カレントサブプレイアイテム情報によって参照されているクリップファイルであって、カレントサブストリームを含むものさえ記録媒体に揃っていれば、再生進行を継続することができるので、優先的にダウンロードを行うべきクリップファイルは、メインストリームを含むクリップファイル、及び、カレントサブプレイアイテム情報によって参照されているクリップファイルであって、カレントサブストリームを含むクリップファイルになる。【００１６】
よってアプリケーションが、これらのクリップファイルを優先的にダウンロードして、その他のサブプレイアイテムから参照されるクリップファイルのダウンロードを後回しにすれば、ROMディスクと比較して、充分なビットレートを確保することができでなくても、サブプレイアイテムを多く含むようなプレイリストの再生を継続することができる。【００１７】
サブプレイアイテムが多く存在したとしても、これらのうち、カレントサブプレイアイテム情報によって参照されているクリップファイルであって、カレントサブストリームを含むものさえ揃っていれば、再生を継続することができるため、何を優先してダウンロードすべきかという指針を、アプリケーションに与えることができる。よってアプリケーションは、“あるプレイアイテムの再生がなされている期間に、次にカレントサブプレイアイテム情報になるべきサブプレイアイテムによって参照されているクリップファイルをダウンロードする”とのルールで、ダウンロードを行えば、たとえサブプレイアイテムが多く存在していて、ビットレートが制限されていたとしても、再生を継続させることができる。ダウンロードを行うべきクリップファイルの優先順序を律することができるので、字幕、音声、動画像の何れかが欠落したまま再生が進行する恐れがなくなり、またストリーム供給が遅れることによる再生進行の途切れを最小限に留めることができる。【００１８】
更に詳しくいうと、上記ルールでダウンロードを行う場合、クリップファイルのダウンロードに必要なビットレートBは、以下の計算で示されるものとなる。
ビットレートB＝
（ネクストプレイアイテムに対応するクリップファイルのデータサイズ＋ネクストサブプレイアイテムに対応するクリップファイルのデータサイズ）
／カレントプレイアイテムの再生時間
ここで、
「ネクストプレイアイテム」は、プレイアイテムの次に再生されるべきプレイアイテムであり、「ネクストサブプレイアイテム」は、カレントサブプレイアイテム情報の次に再生されるべきサブプレイアイテムを規定するサブプレイアイテムである。
ダウンロードに必要となるビットレートは、上述したような値で足りるので、ビットレートが制限されていても、再生の中断を必要最低限にすることができる。【００１９】
また、カレントサブプレイアイテム情報によって参照されるクリップファイルが認識できない状態であれば、再生進行を停止させるとの処理を行えば、ROMディスクからのストリーム供給であるか、ダウンロードによるストリーム供給であるかをユーザに意識させることはなくなる。サブプレイアイテムによる再生が欠落した状況で、再生内容がどのようになるかを検証する必要はなくなり、オーサリング時の負担も軽減する。【００２０】
再生装置は、再生に必要最低限のクリップファイルのダウンロードだけをダウンロードして再生できるため、ユーザは不必要にクリップファイルのダウンロードを待つことなく、プレイリストの再生を継続できる。
【図面の簡単な説明】
【００２１】
【図１】再生装置１０１の、使用行為についての形態の一例を示す図である。
【図２】プレイリストの一例を示す図である。
【図３】動作例の題材となるプレイリストの一例を示す図である。
【図４】図３に示したプレイリストが、どのようにして再生されるかを示す。
【図５】再生装置１０１の構成の一例を示す図である。
【図６】システムパラメータ(SPRM）の一覧である。
【図７】ストリーミングライクな再生機能を模式的に示す図である。
【図８】サブプレイアイテムを伴う場合のストリーミングライクな再生進行の一例を示す図である。
【図９】再生位置がプレイアイテム#2に到達しようとしている状態の一例を示す図である。
【図１０】字幕切替えがユーザによって要求されたため、現在の再生時点が、サブパス(ID=#0)の10003.m2tsを参照しているサブプレイアイテム#3から、サブパス(ID=#1)の20003.m2tsを参照しているサブプレイアイテム#3に変化した場合を想定した図である。
【図１１】チャプタージャンプがあったため、プレイアイテム#3がカレントプレイアイテムになり、サブプレイアイテム#3がカレントサブプレイアイテム情報になったことを想定した図である。
【図１２】BD-Jアプリケーションの処理手順を示すフローチャートである。
【図１３】AVクリップダウンロードの処理手順を示すフローチャートである。
【図１４】プレイリスト再生処理の処理手順を示すフローチャートである。
【図１５】カレントサブプレイアイテムの決定手順を示すフローチャートである。
【図１６】プログレッシブ属性AVクリップ制御の処理手順を示すフローチャートである。
【図１７】再生停止リカバリー処理の処理手順を示すフローチャートである。
【図１８】カレントプレイアイテムがプレイアイテム#1であり、カレントサブプレイアイテム情報がサブパス(ID=1)のサブプレイアイテム#1である場合に、ダウンロードを要求すべきクリップファイルを示す。
【図１９】カレントプレイアイテムがプレイアイテム#2であり、カレントサブプレイアイテム情報がサブパス(ID=1)のサブプレイアイテム#2である場合に、ダウンロードを要求すべきクリップファイルを示す。
【図２０】カレントプレイアイテムがプレイアイテム#3であり、カレントサブプレイアイテム情報がサブパス(ID=1)のサブプレイアイテム#3である場合に、ダウンロードを要求すべきクリップファイルを示す。
【図２１】AVクリップの構成の一例を示す図である。
【図２２】AVクリップがどのように多重化されるかを模式的に示す図である。
【図２３】PESパケット列に、ビデオストリームがどのように格納されるかを更に詳しく示している。
【図２４】AVクリップに最終的に書き込まれるTSパケットの形式を示した図である。
【図２５】PMTのデータ構造を詳しく説明する図である。
【図２６】クリップ情報ファイルの一例を示す図である。
【図２７】ストリーム属性情報の一例を示す図である。
【図２８】エントリマップの一例を示す図である。
【図２９】システムターゲットデコーダ１３の内部構成の一例を示す図である。
【図３０】プレイリスト情報のデータ構造の一例を示す図である。
【図３１】サブパス情報の内部構成をクローズアップして示す図である。
【図３２】STN＿tableの全体構成の一例を示す図である。
【図３３】図３２に示したSTN＿tableの全体構成のうち、セカンダリビデオストリームについてのstream＿entryの一例を示す図である。
【図３４】（ａ）プライマリビデオストリームにおけるStream＿entry及びStream＿attributeの一例を示す図である。
【００２２】
（ｂ）セカンダリビデオストリームにおけるStream＿entryを示す。
【図３５】（ａ）PSR14のビットアサインの一例を示す図である。
【００２３】
（ｂ）PSR29のビットアサインの一例を示す図である。
【図３６】再生制御エンジンの内部構成の一例を示す図である。
【図３７】カレントセカンダリビデオストリームを決定するための処理手順を示すフローチャートである。
【図３８】カレントプレイアイテムについて最適なカレントセカンダリビデオストリームを決定する処理手順を示すフローチャートである。
【図３９】継時型ステレオゴーグルの一例を示す図である。
【図４０】立体視のためのプライマリビデオストリーム、セカンダリビデオストリームの内部構成の一例を示す図である。
【図４１】システムターゲットデコーダ１３の内部構成の一例を示す図である。
【図４２】Primary＿audio＿stream＿entry、Secondary＿audio＿stream＿entryの内部構成と、Comb＿info＿Secondary＿video＿Secondary＿audioの内部構成との一例を示す図である。
【図４３】（ａ）PSR1のビットアサインの一例を示す図である。
【００２４】
（ｂ）PSR14のビットアサインの一例を示す図である。
【図４４】カレントプレイアイテム変化時におけるカレントプライマリオーディオストリーム決定手順を示すフローチャートである。
【図４５】セカンダリオーディオストリームのストリーム選択プロシージャの処理手順を示すフローチャートである。
【図４６】カレントプレイアイテムについて最適なカレントセカンダリオーディオストリームを選択する手順を示すフローチャートである。
【図４７】STN＿tableのうち、PGtestSTストリームに特に関連あるものを抜き出して描いた図である。
【図４８】（ａ）カレントPGtestSTストリームのストリーム番号が取りうる数値範囲の一例を示す図である。
【００２５】
（ｂ）PSR2のビットアサインの一例を示す図である。
【図４９】カレントプレイアイテム変化時におけるカレントPGtestSTストリームの決定手順を示すフローチャートである。
【図５０】カレントプレイアイテムについて最適なカレントPGTextSTストリームを選択する処理手順を示すフローチャートである。
【図５１】BD-ROMの構成の一例を示す図である。
【図５２】インデックスファイルの内部構成の一例を示す図である。
【図５３】ローカルストレージ１０３に格納されるアップデートキットの内部構成の一例を示す図である。
【図５４】マージ管理情報ファイルの内容と、その内容を元にBD-ROMのファイルとアップデートキットのファイルとから、仮想パッケージを構築する過程の一例を示す図である。
【図５５】オーサリングシステムの一例を示す図である。
【図５６】ROMディスクイメージ、アップデートキットイメージの作成方法について説明する図である。
【符号の説明】
【００２６】
１００  BD-ROM
１０２  WWWサーバ
１０３  ローカルストレージ
１０４  テレビ
【発明を実施するための最良の形態】
【００２７】
以下、上記課題解決手段を具備した再生装置及び記録装置の実施の形態について、図面を参照しながら説明する。【００２８】
（第１実施形態）
以降、上記再生装置及び記録装置の実施形態について説明する。先ず始めに、再生装置の実施行為のうち、使用行為についての形態を説明する。図１は、再生装置１０１の、使用行為についての形態の一例を示す図である。本図に示すように、再生装置１０１は、第１記録媒体の一例であるBD-ROM１００、WWWサーバ１０２、ローカルストレージ１０３、テレビ１０４と共にユーザによる使用に供される。【００２９】
BD-ROM１００は、映画作品が記録された記録媒体である。【００３０】
再生装置１０１は、テレビ１０３と共に、ホームシアターシステムを構築して、BD-ROM１００を再生する。かかる記録装置は、記録媒体に対してデータをダウンロードを書き込む機能を有したものであり、記録装置としての機能を兼備している。【００３１】
WWWサーバ１０２は、映画配給者の公式サイトを運営するサーバ装置であり、BD-ROM１００に記録された映画作品の部分的な置き換えや追加を実現するファイル一式(アップデートキット)を、インターネット等を介してユーザに供給する。【００３２】
ローカルストレージ１０３は、再生装置に装填され、映画配給者のWWWサーバ１０２から配信されたコンテンツの受け皿として利用される。そのため、ネットを通じてダウンロードされ、ローカルストレージに格納されたコンテンツと、BD-ROM１００に記録されたコンテンツとを組み合わせて、BD-ROM１００のコンテンツを拡張/更新をすることができる。【００３３】
テレビ１０４は、映画作品の再生映像を表示したり、メニュー等を表示することで、対話的な操作環境をユーザに提供する。【００３４】
以上が再生装置の使用形態についての説明である。続いて再生装置が再生の対象としている、プレイリストについて説明する。【００３５】
図２は、プレイリストの一例を示す図である。プレイリストは、「メインパス」、1つ以上の「サブパス」から構成される。【００３６】
「メインパス」は、1つ以上のプレイアイテムから構成される。【００３７】
「サブパス」は、メインパスと一緒に再生される一連の再生経路を示し、プレイリストに登録される順にID(サブパスID)が振られる。サブパスIDは、サブパスを識別するために使われる。サブパスには、メインパスの再生に同期して再生される同期型、メインパスの再生に非同期で再生可能な非同期型があり、そのタイプはサブパスタイプに記される。サブプレイアイテムは、1つ以上のサブプレイアイテム情報から構成される。サブパスタイプが同期型の場合は、サブプレイアイテムの再生開始と再生終了時刻は、メインパスと同じ時間軸で表されるが、サブパスタイプが非同期型の場合は、サブプレイアイテムの再生開始時刻と再生終了時刻は、メインパスと違う時間軸で表される。【００３８】
また「プレイアイテム」は、ストリーム番号テーブルを含む。ストリーム番号テーブルは、プレイアイテムにおいて再生が許可されているエレメンタリストリームのストリーム番号を示す情報である。プレイリスト情報、プレイアイテム情報、サブプレイアイテム情報、ストリーム番号テーブルの詳細については、後の実施形態に説明の場を譲る。【００３９】
以降の動作例の説明では、以下のようなプレイリストを題材として選らぶ。【００４０】
図３は、動作例の題材となるプレイリストの一例を示す図である。【００４１】
題材となるプレイリストは、1つのメインパスと、2つのサブパス(サブパス(ID=0),サブパス(ID=1))から構成される。メインパスは、5つのプレイアイテム#1,#2,#3,#4,#5を含み、ID=0のサブパスは、５つのサブプレイアイテム#1,#2,#3,#4,#5を含む。ID=1のサブパスは、５つのサブプレイアイテム#1,#2,#3,#4,#5を含む。【００４２】
どちらのサブパスも同期型で、それぞれ別々の言語の字幕データであるプレゼンテーショングラフィックスストリームが多重化されたAVクリップを参照している。プレイリストから利用されるAVクリップはすべてローカルストレージに格納されたアップデートキットのコンテンツであり、プログレッシブ属性が付与されている。プログレッシブ属性とは、プレイリスト再生にあたって、予めローカルストレージに格納されていることは必要ではなく、当該AVクリップを参照しているサブプレイアイテムが、カレントサブプレイアイテム情報になる直前に、ローカルストレージに格納されていれば足りるというAVクリップの属性のことである。【００４３】
5つのプレイアイテム#1,#2,#3,#4,#5は、それぞれ00001.m2ts、00002.m2ts、00003.m2ts、00004.m2ts、00005.m2tsを参照している。【００４４】
ID=0のサブパスにおけるサブプレイアイテム#1,#2,#3,#4,#5は、それぞれ10001.m2ts、10002.m2ts、10003.m2ts、10004.m2ts、10005.m2tsを参照している。【００４５】
ID=1のサブパスにおけるサブプレイアイテム#1,#2,#3,#4,#5は、それぞれ20001.m2ts、20002.m2ts、20003.m2ts、20004.m2ts、20005.m2tsを参照している。【００４６】
メインパスの各プレイアイテムは、図中右上のようなストリーム番号テーブルを有する。このストリーム番号テーブルは、ストリーム番号1,2,3が割り当てられた3つのエントリーをもつ。これら3つのエントリーは、メインパスのプレイアイテム情報によって参照されるプライマリビデオストリーム、サブプレイアイテム(サブパスID=0)によって参照されるAVクリップに包含されているプレゼンテーショングラフィクスストリーム(PG#1)、サブプレイアイテム(サブパスID=1)によって参照されるAVクリップに包含されているプレゼンテーショングラフィクスストリーム(PG#2)の再生を許可するものである。【００４７】
カレントとなる字幕ストリーム番号が“２”であるとき、該当するストリームエントリはサブパスID=０で示されるPG#1であるため、プレイアイテムの再生と同期して、サブパスID=０のPG#1が再生される。【００４８】
図４は、図３に示したプレイリストが、どのようにして再生されるかを示す。本図における右側は、WWWサーバ１０２を示し、左側は、再生装置１０１を示す。真ん中は、インターネット、イントラネット等の伝送路を示す。図３における00001.m2ts、00002.m2ts、00003.m2ts、00004.m2ts、00005.m2tsは、テレビ１０３に存在する。これらのAVクリップのうち、00001.m2ts、10001.m2tsは、WWWサーバ１０２に対してダウンロード要求を送信することで、WWWサーバ１０２から再生装置１０１へと伝送されていることがわかる。【００４９】
サーバ装置のデータベースにおいて、AVクリップは、00001.m2ts、00002.m2ts、00003.m2ts、00004.m2ts、00005.m2tsというファイル名とは異なるファイル名のファイルに格納されて管理される。これは、仮想パッケージ構築の対象となるファイルは、マニフェストファイルによって別名でアクセスされることが可能だからである。【００５０】
以下、再生装置１０１が、プレイリスト再生、ダウンロード要求及びダウンロードを行うための構成要素について説明する。これらの処理のための構成要素には、BD-Jアプリケーションと、BD-Jオブジェクトとがある。以下、これらの構成要素について説明する。【００５１】
＜BD-Jアプリケーション＞
「BD-Jアプリケーション」とは、Java２Micro＿Edition（J２ME）  Personal  Basis  Profile（PBP  １.０）と、Globally  Excecutable  MHP  specification（GEM１.０.２）for  package  media  targetsとをフル実装したプラットフォーム部において、タイトルを生存区間としたアプリケーションシグナリングによって起動されるJava(TM)アプリケーションである。BD-Jアプリケーションは、プレイリスト情報を再生するJMFプレーヤインスタンスの生成をJava(TM)仮想マシンに命じることで、プレイリスト再生を開始させる。JMF(Java Media Frame work)プレーヤインスタンスとは、JMFプレーヤクラスを基にして仮想マシンのヒープメモリ上に生成される実際のデータのことである。【００５２】
JMF A”BD://00001.mpls”;は、00001.mplsというファイルのプレイリストを再生するプレーヤインスタンスの生成をJava(TM)仮想マシンに命じるメソッドである。A.playは、JMFプレーヤインスタンスに再生を命じるメソッドである。かかるJMFプレーヤインスタンス生成は、JMFライブラリに基づきなされる。【００５３】
JMFインスタンスを生成した後、プレイリスト再生にあたって、必要となるAVクリップのダウンロードをWWWサーバ１０２に対して要求する。ダウンロードにあたって、WWWサーバ１０２上のAVクリップを取得するためのコネクションは java.netと呼ばれるJavaソフトウェアライブラリィのopenConnectionメソッドを使って、確立することができる。サーバ上のファイルのURLが、http:／／xxx.com／vp＿data／00001.m2tsである場合におけるコネクション接続の用例を以下に示す。用例：new java.net.URL(http:／／xxx.com／vp＿data／00001.m2ts.openConnection()
上述したようなプレイリスト再生及びAVクリップダウンロードに先立ち、BD-Jアプリケーションは、GUIフレームワークを用いて、ユーザ操作を受け付ける。Java(TM)アプリケーションにおけるGUIフレームワークは、GEM1.0.2にて規定されたHAViフレームワークを含み、GEM1.0.2におけるリモートコントロールナビゲーション機構を含む。【００５４】
これにより、Java(TM)アプリケーションは、HAViフレームワークに基づくボタン表示、テキスト表示、オンライン表示(BBSの内容)といった表示を、動画像の表示と組み合わせた画面表示を実現することができ、リモートコントロールを用いて、上述したようなプレイリスト再生やAVクリップダウンロードを実現することができる。BD-Jアプリケーションを構成する一連のファイルは、Http：//Java（TM）.sun.com/j２se/１.４.２/docs/guide/jar/jar.htmlに記載された仕様に準じた、Java（TM）アーカイブファイルに変換される。Java（TM）アーカイブファイルは、ZIPファイルの形式を、Java（TM）に特化したものであり、市販されているZIP展開ソフトウェアにより中身を確認することができる。【００５５】
＜BDJオブジェクト＞
BDJオブジェクトは、アプリケーション管理テーブル（ApplicationManagementTable（））を含み、BD-ROM再生時において、タイトル切り替えに伴うアプリケーションシグナリングをプラットフォーム部に実行させるデータのことである。より具体的にいうと、ApplicationManagementTable（）は、実行すべきBD-Jアプリケーションを示すapplication＿idと、BD-Jアプリケーションを起動する際の制御を示すapplication＿control＿codeを含む。application＿control＿codeは、タイトル選択後におけるアプリケーションの最初の実行状態を規定しており、またapplication＿control＿codeは、BD-Jアプリケーションを仮想マシンにロードして自動開始するか（AUTOSTART）、BD-Jアプリケーションを仮想マシンにロードするが自動開始はしないか（PRESENT）を規定することができる。【００５６】
続いて、再生装置の内部構成について説明する。【００５７】
図５は、再生装置１０１の構成の一例を示す図である。再生装置１０１は、BD-ROMドライブ１０、リードバッファ１１、リードバッファ１２、システムターゲットデコーダ１３、BD-J実行部１４、ネットワークインターフェイス１５、仮想パッケージ制御部１６、状態管理部１７、ユーザイベント処理部１８、再生エンジン１９、再生制御エンジン２０、HDMI送受信部２１、ヒープメモリ２２、仮想マシンインタプリタ２３、PSRセット ２４から構成されている。以降、これらの構成要素について説明する。【００５８】
＜BD-ROMドライブ１０＞
BD-ROMドライブ１０は、BD-ROMディスクからデータを読み出し、リードバッファ１１にデータを蓄える。【００５９】
＜リードバッファ１１＞
リードバッファ１１は、BD-ROMドライブを使って読み込んだデータを一時的に格納するメモリ等で構成されたバッファである。【００６０】
＜リードバッファ１２＞
リードバッフ１ァ１２は、ローカルストレージから読み込んだデータを一時的に格納するメモリ等で構成されたバッファである。【００６１】
＜システムターゲットデコーダ１３＞
システムターゲットデコーダ１３は、リードバッファ１１に読み出されたソースパケットやリードバッファ１２に読み出されたソースパケットに対して多重分離処理を行い、各ストリームをデコードし再生する処理を行う。また、BD-J実行部１４よりメニューなどに表示するためのJPEG，PNGなどのグラフィックスデータをデコードして再生する処理を行う。システムターゲットデコーダ１３の詳細については後述する。【００６２】
＜BD-J実行部１４＞
BD-J実行部１４は、仮想パッケージ制御部１６から転送されるBD-Jアプリケーションを実行するプログラム処理エンジンである。BD-Jアプリケーションのプログラムに従った動作を行い次のような制御を行う。（１）仮想パッケージ制御部１６に対してプレイリスト再生する。（２）インターネットなどのWWWサーバからアップデートキットのローカルストレージへ蓄積する。（３）BD-ROMとアップデートキットとを組み合わせて仮想パッケージの構築を命令する。（４）プレーヤ変数に値をセットする。（５）システムターゲットデコーダに対してメニューやゲームのグラフィックスのためのPNG・JPEGを転送して画面に表示する。これらはプログラムの作りに応じて自由に行うことができ、どのように制御するかは、オーサリング工程によるBD-Jアプリケーションのプログラミング工程によって決まる。【００６３】
＜ネットワークインターフェイス１５＞
ネットワークインターフェイス１５は、再生装置における通信機能を実現するものであり、URL指定がBD-Jアプリケーションから与えられれば、そのURLにあたるwebサイトとのTCPコネクション、FTPコネクション等を確立する。かかるコネクション確立によりwebサイトからのダウンロードをJava(TM)アプリケーションに行わせる。【００６４】
＜仮想パッケージ制御部１６＞
仮想パッケージ制御部１６は、BD-ROMドライブ１０、ローカルストレージ１０３を制御して、仮想パッケージを構築し、プレーヤの再生を制御する機能を持つ。仮想パッケージとは、BD-ROMディスクに記録されたコンテンツと、ローカルストレージ１０３に格納された差分データと、ローカルストレージ１０３に格納されたマージ管理情報を元に、BD-ROM上のコンテンツとをメモリ上で組み合せた仮想的なBD-ROMパッケージである。構築された仮想パッケージは、BD-ROMのデータ構造と同じ形式を持つ。仮想パッケージを構築するタイミングは、ディスクがインサートされた時や、BD-J実行部１４の仮想パッケージ構築命令が実行された時などがある。仮想パッケージ制御部１６は、仮想パッケージが構築された後は、BD-J実行部の再生命令や、ユーザイベント処理部より通知に基づきプレイリスト情報を介してAVクリップの再生処理を制御する。また、仮想パッケージ制御部１６は、プレーヤ変数の設定や参照を行い、再生動作を行う。【００６５】
＜状態管理部１７＞
状態管理部１７は、BD-ROM又ローカルストレージに存在する個々のAVクリップが、Missing状態、Enable状態、Disable状態の何れであるかを管理し、プレイリストの再生を停止させるかどうかの制御を行う。【００６６】
Missing状態とは、プレイアイテム情報、サブプレイアイテム情報から参照されているAVクリップがBD-ROM又ローカルストレージに存在しない状態を意味する。【００６７】
Enable状態とは、仮想パッケージ制御部１６での再生可能な状態を意味し、BD-JアプリケーションのAPIで制御される。Enable状態にセットするAPIが実行された場合、AVクリップはリードオンリー属性になり、仮想パッケージ制御部１６でのAVクリップの再生が可能になる。【００６８】
Disable状態は、Enable状態の反対を意味し、仮想パッケージ制御部１６は該当AVクリップの再生をすることができない。BD-JアプリケーションによりAVクリップに対してEnable状態に一度もセットされていない場合は、そのAVクリップはDisable状態である。もし、BD-Jアプリケーションが、Enable状態のAVクリップを削除や上書きなどをしたい場合は、Disable状態に一度APIを使って遷移して実行する。【００６９】
これらのうち、Missing状態になっているAVクリップ、Disable状態になっているAVクリップを併せてUnavailableクリップという。【００７０】
プレイリストの再生を停止させるかどうかの制御とは、カレントサブプレイアイテム情報が変化した場合、カレントサブプレイアイテム情報にて参照されているAVクリップがUnavailableクリップかどうかを判定して、Unavailableクリップであれば、DataStarvedイベントをJMFプレーヤインスタンス及び再生制御エンジンに通知して、JMFプレーヤインスタンス及び再生制御エンジンを再生状態からストップ状態に遷移させるというものである。【００７１】
＜ユーザイベント処理部１８＞
ユーザイベント処理部１８は、リモコンを通じたユーザ操作に応答して、BD-J実行部１４や仮想パッケージ制御部１６に処理の実行を依頼する。例えば、リモコンでボタンを押した場合は、そのボタンに含まれるコマンドを実行するようBD-J実行部１４に依頼する。例えば、リモコンで早送り・巻戻しボタンが押された場合には、仮想パッケージ制御部１６に、現在再生しているプレイリストのAVクリップに対する早送り・巻戻し処理の実行を命令する。【００７２】
＜再生エンジン１９＞
再生エンジン１９は、AV再生ファンクションを実行する。再生装置のAV再生ファンクションとは、DVDプレーヤ、CDプレーヤから踏襲した伝統的な機能群であり、再生開始(Play)、再生停止(Stop)、一時停止(PauseOn)、一時停止の解除(Pause Off)、Still機能の解除(still off)、速度指定付きの早送り(Forward Play(speed))、速度指定付きの巻戻し(BackwardPlay(speed))、音声切り換え(Audio Change)、Secondaryビデオ切り換え(Subtitle Change)、アングル切り換え(AngleChange)といった機能である。AV再生ファンクションを実現するべく、再生エンジン１９は、AVクリップのうち、所望に時刻にあたる部分のデコードを行うよう、システムターゲットデコーダを制御する。【００７３】
＜再生制御エンジン２０＞
再生制御エンジン２０は、プレイリストに対する再生制御ファンクションを実行する。プレイリストに対する再生制御ファンクションとは、再生エンジン１９が行うAV再生ファンクションのうち、再生開始や再生停止を、カレントプレイリスト情報及びクリップ情報に従って行わせることをいう。【００７４】
＜HDMI送受信部２１＞
HDMI送受信部２１は、HDMI（HDMI:High Definition Multimedia Interface）を介して接続された他の機器から、その機器に関する情報を受信とすると共に、システムターゲットデコーダのデコードにより得られたデジタル非圧縮のビデオを、LPCMや圧縮されたオーディオデータと共に、HDMIを介して接続された他の機器に送信する。【００７５】
＜ヒープメモリ２２＞
ヒープメモリ２２は、BD-J実行部１４のために確保されるスタックメモリであり、BD-Jアプリケーションによって生成されたJMFプレーヤインスタンスや、BD-Jアプリケーションに対してクラスローダを行うことで生成されるバイトコードが格納される。これらは、スレッドの態様をなし、先入先出し式に、仮想マシンインタプリタ２３による実行に供される。【００７６】
＜仮想マシンインタプリタ２３＞
仮想マシンインタプリタ２３は、ヒープメモリ２２に格納されたバイトコードをCPUが実行可能なネィティブコードに変換してCPUに実行させる。
＜PSRセット ２４＞
PSRセット ２４は、プレーヤ変数を格納しているプレーヤセッティングレジスタ、プレーヤステータスレジスタである。プレーヤ変数は、プレーヤの状態を示すシステムパラメータ（SPRM）と一般用途として使用可能なゼネラルパラメータ（GPRM）とがある。【００７７】
図６はシステムパラメータ（SPRM）の一覧である。【００７８】
SPRM（０）      ：  言語コード
SPRM（１）      ：  Primaryオーディオストリーム番号
SPRM（２）      ：  字幕ストリーム番号
SPRM（３）      ：  アングル番号
SPRM（４）      ：  タイトル番号
SPRM（５）      ：  チャプタ番号
SPRM（６）      ：  プログラム番号
SPRM（７）      ：  セル番号
SPRM（８）      ：  選択キー情報
SPRM（９）      ：  ナビゲーションタイマー
SPRM（１０）    ：  再生時刻情報
SPRM（１１）    ：  カラオケ用ミキシングモード
SPRM（１２）    ：  パレンタル用国情報
SPRM（１３）    ：  パレンタルレベル
SPRM（１４）    ：  プレーヤ設定値（ビデオ）
SPRM（１５）    ：  プレーヤ設定値（オーディオ）
SPRM（１６）    ：  音声ストリーム用言語コード
SPRM（１７）    ：  音声ストリーム用言語コード（拡張）
SPRM（１８）    ：  字幕ストリーム用言語コード
SPRM（１９）    ：  字幕ストリーム用言語コード（拡張）
SPRM（２０）    ：  プレーヤリージョンコード
SPRM（２１）    ：  Secondaryビデオストリーム番号
SPRM（２２）    ：  Secondaryオーディオストリーム番号
SPRM（２３）    ：  再生状態
SPRM（２４）    ：  予備
SPRM（２５）    ：  予備
SPRM（２６）    ：  予備
SPRM（２７）    ：  予備
SPRM（２８）    ：  予備
SPRM（２９）    ：  予備
SPRM（３０）    ：  予備
SPRM（３１）    ：  予備
SPRM（１０）は、AVクリップに属する各ピクチャデータが表示される度に更新される。つまり再生装置が新たなピクチャデータを表示させれば、その新たなピクチャデータの表示時刻（PTS）を示す値にSPRM（１０）は更新される。このSPRM（１０）を参照すれば、現在の再生時点を知得することができる。【００７９】
SPRM（１６）の音声ストリーム用言語コードやSPRM（１８）の字幕ストリーム用言語コードは、プレーヤのOSDなどで設定できる項目であり、プレーヤのデフォルトの言語コードを示す。例えば、SPRM（１６）の音声ストリーム用言語コードが英語であれば、プレイリストを再生する上で、プレイアイテムのストリーム選択テーブルの中から同じ言語コードを持つストリームエントリを探し出し、その音声ストリームを選択して再生するといった機能をBD-ROMディスクの中のBD-Jアプリケーションに入れることが出来る。これらのSPRMは、それぞれが３２ビットの語長をもつレジスタに格納される。SPRMを特定する括弧書きの数値は、基本的には、対応するレジスタのレジスタ番号を意味する(但し、SPRM(21),SPRM(22)は、対応するレジスタのレジスタ番号を意味している訳ではない。)。【００８０】
＜ストリーミングライクな再生機能＞
次に図７を用いながら、仮想パッケージを利用したストリーミングライクな再生機能における仮想パッケージ制御部１６の再生遷移について説明する。図７は、ストリーミングライクな再生機能を模式的に示す図である。【００８１】
ストリーミングライクな再生機能とは、プレイアイテム情報又はサブプレイアイテム情報によって参照されているAVクリップであって、プログレッシブ属性が付与されているものを、当該プレイアイテム情報又はサブプレイアイテム情報が、カレントプレイアイテム又はカレントサブプレイアイテム情報になる直前にローカルストレージに格納するよう、再生動作とダウンロード動作とを並列に行うことをいう。【００８２】
図７上段は、プレイリストを示し、５つのプレイアイテムは、それぞれ、００００１.m２ts、０００２.m２ts、００００３.m２ts、００００４.m２ts、００００５.m２tsを参照するが、これらはすべてローカルストレージに格納されたアップデートキットのコンテンツであり、プログレッシブ属性が付与されている。このうち、００００１.m２ts、００００２.m２tsは、すでにダウンロードが完了しており、BD-JアプリケーションによりEnable状態にセットされている。００００３.m２ts、００００４.m２ts、００００５.m２tsはまだダウンロードがされていないか、あるいは、ダウンロードはされているがDisable状態であることを示す。仮想パッケージ制御部１６は、プレイリストの先頭プレイアイテムから順に再生する場合、図７上段のとおり、再生位置がプレイアイテム#1、プレイアイテム#2に存在する場合は、再生が妨げられることはない。これらのプレイアイテムのプレイアイテム情報は、Enable状態であるAVクリップを参照しているからである。よって、プレイアイテム#3まで再生が進行する。【００８３】
図７中段は、図７上段からさらに再生位置が進んだ図を示し、再生位置がプレイアイテム#3に遷移する前に００００３.m２tsのダウンロードが完了し、BD-JアプリケーションによりEnable状態にセットされたことを示す。よって、再生は、プレイアイテム#3まで進行する。【００８４】
図７下段は、図７中段からさらに再生位置が進んだ図を示し、再生位置がプレイアイテム#4に遷移した時に、参照する００００４.m２tsがまだダウンロードがされていないか、Disable状態であることを示す。この場合、DataStarvedイベントが出力されることになる。BD-Jアプリケーションは、DataStarvedイベントを受け取った後は、００００４.m２tsのダウンロードを完了させ、Enable状態に遷移させ、DataStarvedイベントを受け取った地点から再生開始するという制御などでリカバーを図る。【００８５】
以上のように、ストリーミングライクな再生では、次の再生位置にあるプレイアイテムのAVクリップが、前もってダウンロードされてEnable状態にセットされる限り、再生進行が妨げられることはない。【００８６】
図８は、サブプレイアイテムを伴う場合のストリーミングライクな再生進行の一例を示す図である。【００８７】
第３段目は、図３のプレイリストに、再生がどこまで進行を示したかを模式的に示す矢印を書き加えたものである。【００８８】
第１段目は、JMFプレーヤインスタンスの状態を示し、第２段目は、再生制御エンジンの状態を示す。第３段目は、題材となるプレイリストを示す。第１段目によると、JMFプレーヤインスタンスは、再生状態になっているが、DataStarvedイベントが出力されれば、ストップ状態になる。DataStarvedイベントとは、再生すべきデータが、欠乏していることを示すイベントであり、このDataStarvedイベントを受け取ったJMFプレーヤインスタンス及び再生制御エンジンは、ストップ状態に遷移することになる。JMFプレーヤインスタンス及び再生制御エンジンの動作を停止させるので、DataStarvedイベントは、“再生停止イベント”とも呼ばれる。【００８９】
第２段目によると、再生制御エンジンは、再生状態になっているが、DataStarvedイベントが出力されれば、JMFプレーヤインスタンスと共にストップ状態になる。即ちJMFプレーヤインスタンス及び再生制御エンジンは、DataStarvedイベントをトリガとして、再生状態からストップ状態に切り替わっていることがわかる。【００９０】
図８では、サブプレイアイテム(パスID=0)に属するサブプレイアイテム#1がカレントサブプレイアイテム情報になっているため、再生は、プレイアイテム#1,SubPlayItem#1まで進行する。プレイアイテム#2では、対応するサブプレイアイテム#2によって参照されている20002.m2tsがUnavailableクリップであるから、カレントサブプレイアイテムがサブプレイアイテム#2になると、DataStarvedイベントを出力して再生をストップせざるをえない。【００９１】
図９は、再生位置がプレイアイテム#2に到達しようとしている状態の一例を示す図である。本図の例では、現在の再生位置であるプレイアイテム#2に対応する、サブパスID=０のサブプレイアイテム#2はEnable状態のAVクリップを参照している。しかし、サブパスID=１のサブプレイアイテム#2は、まだダウンロードがされていないか、Disable状態のAVクリップを参照している。SPRM（２）が示すのは、サブパスID=０のサブプレイアイテム#2であるため、サブパスID=１のサブプレイアイテム#2のAVクリップがEnable状態になっていなくても、仮想パッケージ制御部１６は再生を継続できる。【００９２】
20002.m2tsが、Unavailableクリップであっても、再生が妨げられないので、再生は、プレイアイテム#3まで進行する。プレイアイテム#4では、対応するサブプレイアイテム#4にて参照されている、10004.m2tsがUnavailableクリップになるから、カレントプレイアイテム情報がプレイアイテム#4になった時点で再生が中断する。【００９３】
以上のことから次のことがいえる。つまり、プレイアイテム#2の再生区間に対応するすべてのサブパス(ID=0,ID=1)のサブプレイアイテムから参照されるAVクリップをダウンロードしようとすると、ダウンロードの対象となるAVクリップは、10001.m2ts、10002.m2ts、10003.m2ts、10004.m2ts、10005.m2ts、20001.m2ts、20002.m2ts、20003.m2ts、20004.m2ts、20005.m2tsになるので、仮想パッケージ制御部１６は、サブパスの数だけAVクリップのダウンロードを待たなければならない。その場合、サブパスの数が増えると、ユーザはプレイリストの再生を行う上で多くの時間を待たなければならなくなる。【００９４】
一方、上述したような動作では、サブプレイアイテムにおいては、Primaryオーディオストリーム番号SPRM（１）、字幕ストリーム番号SPRM（２）、Secondaryビデオストリーム番号SPRM（２１）、Secondaryオーディオストリーム番号SPRM（２２）によって指定されるストリームを含むAVクリップがすべてEnable状態であれば、他のサブパスのサブプレイアイテムのAVクリップがEnable状態になるまで待つことなく、再生を続行できるとする。こうすることによって、ユーザは不要なAVクリップのダウンロードを待たずにプレイリストの再生を継続できる。【００９５】
図１０は、字幕切替えがユーザによって要求されたため、現在の再生時点が、サブパス(ID=#0)の10003.m2tsを参照しているサブプレイアイテム#3から、サブパス(ID=#1)の20003.m2tsを参照しているサブプレイアイテム#3に変化した場合を想定した図である。【００９６】
ユーザ操作などでSPRM（２）を３に変更した場合、再生する字幕はサブパスID=１のサブプレイアイテム#3になる。サブプレイアイテム#3が参照している20003.m2tsは、Unavailableクリップであるから、この切り替えと同時に、DataStarvedイベントが出力されることになる。以上のように、字幕切り替えが要求された場合、切り替え先の字幕ストリームを包含しているAVクリップがダウンロードされていないか、Disable状態であれば、仮想パッケージ制御部１６は再生を停止し、DataStarvedイベントをBD-Jアプリケーションに通知する。【００９７】
図１１は、チャプタージャンプがあったため、プレイアイテム#3がカレントプレイアイテムになり、サブプレイアイテム#3がカレントサブプレイアイテム情報になったことを想定した図である。サブプレイアイテム#3によって参照されている20003.m2tsは、Unavailableクリップであるため、DataStarvedイベントを発生し、再生をストップ状態させる。【００９８】
Unavailableクリップを参照しているサブプレイアイテムがカレントサブプレイアイテム情報になった際、再生がストップ状態するので、ダウンロードにあたっては、次のプレイアイテム及び次のサブプレイアイテムにて参照されているクリップファイルであって、再生対象となるカレントストリームを含むものを優先的にダウンロードすれば、再生を継続することができる。【００９９】
以上のように、チャプタジャンプなどの飛び込み再生では、Primaryオーディオストリーム番号SPRM（１）、字幕ストリーム番号SPRM（２）、Secondaryビデオストリーム番号SPRM（２１）、Secondaryオーディオストリーム番号SPRM（２２）のどれかのストリーム番号が、SubPlayItemに対応しており、そのサブプレイアイテムが、まだダウンロードがされていないか、Disable状態であるAVクリップを参照するときに、仮想パッケージ制御部１６はDataStarvedイベントをBD-Jアプリケーションに通知することになる。このような仮想パッケージ制御部１６の再生動作を定義することにより、同様に最小のAVクリップのダウンロードで再生を継続することができる。【０１００】
図１２は、BD-Jアプリケーションの処理手順を示すフローチャートである。【０１０１】
ステップＳ１において、ローディングされたBD-ROMに対応するアップデートキットを、ローカルストレージのBUDA(Biding Unit Data Area)ディレクトリにダウンロードする。ステップＳ２では、アップデートキット内のMissing状態を指定した仮想パッケージ構築要求を発行する。【０１０２】
以降、ステップＳ３〜ステップＳ８のループを実行する。このループは、プレイリストを選択してJMFプレーヤインスタンスをクリエイトし(ステップＳ３)、プレイリスト情報における先頭のプレイアイテムを、カレントプレイアイテムに設定し(ステップＳ４)、カレントプレイアイテムにおけるClip＿Information＿file＿nameで指定されているAVクリップを選択して(ステップＳ５)、AVクリップをダウンロードし(ステップＳ６)、仮想マシン内で、以下の3つのスレッドを仮想マシン内に立てて、これらの処理を並列で実行する(ステップＳ７)という処理を繰り返すものである。【０１０３】
（１）.プレイリスト再生、
（２）.プログレッシブ属性AVクリップ制御
（３）.DataStarvedイベントリカバリー処理
これらの3つの処理の実行が終了すれば、３つのスレッドを終了させ、ステップＳ３に戻る。【０１０４】
図１３は、AVクリップダウンロードの処理手順を示すフローチャートである。ステップＳ１１において、WWW上のサーバー装置からBUDAディレクトリにAVクリップをダウンロードするようネットワークインターフェイスに指示し、ステップＳ１２において、AVクリップをMissing状態からDisable状態に変更する。ステップＳ１３においてダウンロードがなされるのを待ち、ダウンロードがなされれば、ステップＳ１４においてベリファイを行って、正常であれば、ステップＳ１５においてAVクリップをEnable状態にする。【０１０５】
図１４は、プレイリスト再生処理の処理手順を示すフローチャートである。ステップＳ２１においてカレントサブプレイアイテム情報を決定して、ステップＳ２２〜ステップＳ２４のループに移行する。ステップＳ２２〜ステップＳ２４のループは、カレントプレイアイテムのClip＿Information＿file＿nameで指定されているAVクリップはUnavailableクリップであるかどうかを判定し(ステップＳ２２)、Unavailableクリップでなければ、AVクリップを構成するソースパケットのうち、カレントプレイアイテムのIn＿TimeからOut＿TimeまでのものをBD-ROMから読み出すという処理(ステップＳ２３)、カレントサブプレイアイテム情報のClip＿Information＿file＿nameで指定されているAVクリップがUnavailableクリップであるかどうかを判定して(ステップＳ２４)、Unavailableクリップでなければ、AVクリップを構成するソースパケットのうち、カレントプレイアイテムのIn＿TimeからOut＿Timeまでのものをローカルストレージから読み出すという処理(ステップＳ２５)、読み出されたソースパケットのうち、カレントプレイアイテムのSTN＿tableで再生が許可されているものを、デコーダに出力するという処理(ステップＳ２６)、カレントプレイアイテムが最後のプレイアイテムであるか否かを判定する処理(ステップＳ２７)、カレントプレイアイテムを変更するという処理(ステップＳ２８)を繰り返すものである。このループの終了条件は、プレイリスト内に、次のプレイアイテムがないと判定されることである(ステップＳ２７でYes)。【０１０６】
ステップＳ２９において、カレントプレイアイテムのClip＿Information＿file＿nameで指定されているAVクリップ、又は、カレントサブプレイアイテム情報のClip＿Information＿file＿nameで指定されているAVクリップがUnavailableクリップであるなら、DataStarvedイベントを発生して、再生制御エンジン及びJMFプレーヤインスタンスのストップ状態にさせ、その後、再開を待つ(ステップＳ３０)。【０１０７】
図１５は、カレントサブプレイアイテム情報の決定手順を示すフローチャートである。ステップＳ３１において、プロシージャによってカレントプライマリオーディオストリームを決定して、SPRM(1)に設定し、ステップＳ３２においてプロシージャによってカレントセカンダリオーディオストリームを決定して、SPRM(14)に設定する。ステップＳ３３において、カレントセカンダリビデオストリームを決定して、SPRM(21)に設定し、ステップＳ３４において、カレントPGテキスト字幕ストリームを決定して、SPRM(2)に設定する。【０１０８】
そして、カレントプライマリオーディオストリーム、カレントセカンダリオーディオストリーム、カレントプライマリビデオストリーム、カレントPGテキスト字幕ストリームをClip＿Information＿file＿nameで参照している全てのサブプレイアイテムを、カレントサブプレイアイテムに設定する。【０１０９】
図１６は、プログレッシブ属性AVクリップ制御の処理手順を示すフローチャートである。【０１１０】
ステップＳ４１において、カレントプレイアイテムの次のプレイアイテム(ネクストプレイアイテム)におけるClip＿Information＿file＿nameで指定されているAVクリップを選択し、ステップＳ４２において、ネクストプレイアイテムをSync＿PlayItem＿Idに記述しているサブプレイアイテム(ネクストサブプレイアイテム)を特定する。ステップＳ４３において、ネクストサブプレイアイテムのClip＿Information＿file＿nameで指定されているAVクリップであって、PSRにおけるカレントストリーム番号に対応するエレメンタリストリームを含むAVクリップを選択する。【０１１１】
ステップＳ４４では、選択されたAVクリップがローカルストレージに存在するかどうかを判定し、存在しなければ、ステップＳ４５において選択されたAVクリップのダウンロードを行う。ステップＳ４６では、削除すべきAVクリップの選択を行い、削除すべきAVクリップが存在するかどうかを判定する(ステップＳ４７)。存在すれば、AVクリップの削除を行う(ステップＳ４８)。ステップＳ４９では、カレントプレイアイテム、カレントサブプレイアイテム情報が変化するのを待ち、変化すれば、プレイリストの再生が終了したかどうかを判定した上で、ステップＳ４１に移行する(ステップＳ５０)。【０１１２】
図１７は、再生停止リカバリー処理の処理手順を示すフローチャートである。ステップＳ６１は、DataStarvedイベントを取得待ちを構成するループであり、DataStarvedイベントがなされれば、ステップＳ６２は、ステップＳ６２は、DataStarvedイベントを取得したAVクリップのダウンロードが完了するのを待つ事象完了待ちループである。ステップＳ６３は、DataStarvedイベントを取得した再生位置からのプレイリスト再生を開始し、ステップＳ６４では、プレイリストの再生が終了したか否かを判定する。【０１１３】
次に、AVクリップにおけるカレントの再生位置と、ダウンロードの対象となるAVクリップとの関係を示す。【０１１４】
図１８は、カレントプレイアイテムがプレイアイテム#1であり、カレントサブプレイアイテム情報がサブパス(ID=1)のサブプレイアイテム#1である場合に、ダウンロードを要求すべきクリップファイルを示す。ローカルストレージでは、カレントプレイアイテムを構成する00001.m2ts、及び、カレントサブプレイアイテム情報を構成する20001.m2tsが、Enable状態になっている必要がある。この場合、ネクストプレイアイテムはプレイアイテム#2、ネクストサブプレイアイテムはサブプレイアイテム情報#2になるから、カレントプレイアイテム及びカレントサブプレイアイテム情報の再生中に、ダウンロードを要求すべきクリップファイルは、ネクストプレイアイテムを構成する00002.m2ts、及び、ネクストサブプレイアイテムを構成する20002.m2tsとなる。【０１１５】
図１９は、カレントプレイアイテムがプレイアイテム#2であり、カレントサブプレイアイテム情報がサブパス(ID=1)のサブプレイアイテム#2である場合に、ダウンロードを要求すべきクリップファイルを示す。ローカルストレージでは、カレントプレイアイテムを構成する00002.m2ts、及び、カレントサブプレイアイテム情報を構成する20002.m2tsが、Enable状態になっている必要がある。この場合、ネクストプレイアイテムはプレイアイテム#3、ネクストサブプレイアイテムはサブプレイアイテム情報#3になるから、カレントプレイアイテム及びカレントサブプレイアイテム情報の再生中に、ダウンロードを要求すべきクリップファイルは、ネクストプレイアイテムを構成する00003.m2ts、及び、ネクストサブプレイアイテムを構成する20003.m2tsとなる。【０１１６】
図２０は、カレントプレイアイテムがプレイアイテム#3であり、カレントサブプレイアイテム情報がサブパス(ID=1)のサブプレイアイテム#3である場合に、ダウンロードを要求すべきクリップファイルを示す。ローカルストレージでは、カレントプレイアイテムを構成する00003.m2ts、及び、カレントサブプレイアイテム情報を構成する20003.m2tsが、Enable状態になっている必要がある。この場合、ネクストプレイアイテムはプレイアイテム#4、ネクストサブプレイアイテムはサブプレイアイテム情報#4になるから、カレントプレイアイテム及びカレントサブプレイアイテム情報の再生中に、ダウンロードを要求すべきクリップファイルは、ネクストプレイアイテムを構成する00004.m2ts、及び、ネクストサブプレイアイテムを構成する20004.m2tsとなる。
サブパスが同期型である場合、カレントサブプレイアイテム情報の再生時間長は、カレントプレイアイテムの再生時間長に等しいため、以上のダウンロードでは、カレントプレイアイテムの再生継続中に、ネクストプレイアイテム及びネクストサブプレイアイテムを構成するクリップファイルのダウンロードを実現すればよい。【０１１７】
よってダウンロードに必要なビットレートBは、以下の計算で示されるものとなる。
ビットレートB＝
ネクストプレイアイテムを構成するクリップファイルのデータサイズ＋ネクストサブプレイアイテムを構成するクリップファイルのデータサイズ
／カレントプレイアイテムの再生時間
このように、カレントプレイアイテム及びカレントサブプレイアイテム情報の再生中に、ネクストプレイアイテムによって参照されるAVクリップと、ネクストサブプレイアイテムによって参照されるAVクリップとをダウンロードしておけば、必要最低限のAVクリップは、ローカルストレージに揃うので、DataStarvedイベントの発生によって再生進行が妨げられることはない。【０１１８】
以上のように本実施の形態によれば、複数のサブパスから構成されるプレイリストを再生する上で、再生装置に内蔵されるどのストリームが選択されているかを示すプレーヤ変数を参照し、再生に必要でないAVクリップは、ダウンロードが完了していない状態でも再生を継続することができるようになり、効率的なストリーミングライクな再生を実現できる
＜備考＞
第１実施形態のうち、以下に示す技術的トピックについては、更なる改良や変更実施を加えることができる。第１実施形態に示した通り実施するか、これらの改良・変更を施すか否かは、何れも任意的であり、実施する者の主観によることは留意されたい。【０１１９】
＜プレイリスト再生の前処理＞
プレイリスト再生の前処理では、SPRM（１６）の音声ストリーム用言語コードやSPRM（１８）の字幕ストリーム用言語コードに記された言語コードを持つ音声ストリームや字幕ストリームを含むAVクリップを優先的にダウンロードするべきである。このような構成にすることによって、ユーザがプレイリスト再生で利用する可能性が高いAVクリップをダウンロード対象に選べることができる。【０１２０】
＜BD-ROMとの併用＞
メインパスがディスクに格納されている本編映像を示す場合には、現在の再生位置以降のサブプレイアイテムで利用される、
現在のPrimaryオーディオストリーム番号SPRM（１）、
字幕ストリーム番号SPRM（２）、
Secondaryビデオストリーム番号SPRM（２１）、
Secondaryオーディオストリーム番号SPRM（２２）が示すストリーム番号に対応するストリームを含むAVクリップ
を逐次、現在の再生位置から近い順にシーケンシャルに決定することが望ましい。【０１２１】
このようにすることで、本編映像を見る間ユーザは、字幕や音声を変えることはまれなので、ユーザに待ち時間を与えることなくプレイリストの再生を実現できる。【０１２２】
＜本編再生の中断防止＞
本編再生中に、字幕・音声・Secondaryビデオ・Secondaryオーディオのダウンロードが間に合わないため、DataStarvedイベントが発行されて、一時的に本編再生がストップしてしまうという状態を避けるためには、次のような処理をBD-Jアプリケーションに用意しておく。それは、例えば現在のPrimaryオーディオストリーム番号SPRM（１）で、そのストリーム番号に対応するストリームを含むAVクリップがまだEnable状態になっていない場合は、そのAVクリップを含むサブプレイアイテムに到達する前に、BD-JアプリケーションがSPRM（１）を「何もストリームが選択されていない」という特殊値か、すでにEnable状態になっている、もしくはディスク上に存在するAVクリップのストリーム番号を決定するように書き換える（この場合、あらかじめこの状況を想定してダミーのコンテンツをディスク上に用意しておくとよい）。このような構成にすることによりBDーJアプリケーションはDataStarvedイベントを発行させない制御が可能となる。上記の処理は、日本語音声を英語音声に切り替えるようなユーザ操作によるストリーム切り替えに対しても同じことがいえる。ストリーム切り替えSPRM（１）の書き換えが実際に発生する前にBD-Jアプリケーションがそれを禁止することで本編再生の一時的な再生停止を防ぐことができる。【０１２３】
(第２実施形態)
AVクリップ（XXX.M２TS）とクリップ情報ファイル（XXX.CLPI）、システムターゲットデコーダについて説明する。【０１２４】
＜AVクリップの内部構成＞
AVクリップは、MPEG-２トランスポートストリーム形式のデジタルストリームである。【０１２５】
図２１は、AVクリップの構成の一例を示す図である。本図に示すようにAVクリップは、ビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム（PG）、インタラクティブグラファイックスストリームのうち、１つ以上を多重化することで得られる。ビデオストリームは映画のPrimaryビデオおよびSecondaryビデオを、オーディオストリームは、映画のPrimaryオーディオ部分とそのPrimaryオーディオとミキシングするSecondaryオーディオを、プレゼンテーショングラフィックスストリームは、映画の字幕をそれぞれ示している。ここでPrimaryビデオとは画面に表示される通常の映像を示し、SecondaryビデオとはPrimaryビデオの中に小さな画面で表示する映像のことである。また、インタラクティブグラフィックスストリームは、画面上にGUI部品を配置することにより作成される対話画面を示している。AVクリップに含まれる各ストリームはPIDによって識別される。例えば、映画の映像に利用するビデオストリームには0x１０１１が、オーディオストリームには0x１１００から０x１１１Fまでが、プレゼンテーショングラフィックスには0x１２００から０x１２１Fまでが、インタラクティブグラフィックスストリームには0x１４００から０x１４１Fまでが、映画のSecondaryビデオに利用するビデオストリームには0x１B００から０x１B１Fまで、PrimaryオーディオとミキシングするSecondaryオーディオに利用するオーディオストリームには0x１A００から0x１A１Fが、それぞれ割り当てられている。【０１２６】
＜AVクリップにおける多重化＞
図２２は、AVクリップがどのように多重化されるかを模式的に示す図である。まず、ビデオストリーム、及び、オーディオストリームを(第１段目)、それぞれPESパケット列に変換し(第２段目)、TSパケット列に変換する(第３段目)。同じくプレゼンテーショングラフィックスストリームおよびインタラクティブグラフィックス７(第７段目)を、それぞれPESパケット列に変換し(エレメンタリストリーム)、更にTSパケット列に変換する(第５段目)。AVクリップ(第４段目)はこれらのTSパケットを１本のストリームに多重化することで構成される。【０１２７】
図２３は、PESパケット列に、ビデオストリームがどのように格納されるかを更に詳しく示している。本図における第１段目はビデオストリームのビデオフレーム列を示す。第２段目は、PESパケット列を示す。第３段目は、これらのPESパケット列を変換することで得られるTSパケット列を示す。本図の矢印yy１,yy２, yy３, yy４に示すように、ビデオストリームにおける複数のVideo  Presentation  UnitであるIピクチャ、Bピクチャ、Pピクチャは、ピクチャ毎に分割され、PESパケットのペイロードに格納される。各PESパケットはPESヘッダを持ち、PESヘッダには、ピクチャの表示時刻であるPTS（Presentation  Time-Stamp）やピクチャの復号時刻であるDTS（Decoding  Time-Stamp）が格納される。【０１２８】
＜TSパケット列＞
図２４は、AVクリップに最終的に書き込まれるTSパケットの形式を示している。第１段目は、TSパケット列を示し、第２段目は、ソースパケット列を示す。第３段目は、AVクリップを示す。【０１２９】
第１段目に示すようにTSパケットは、ストリームを識別するPIDなどの情報を持つ４Byteの「TSヘッダ」とデータを格納する１８４Byteの「TSペイロード」に分かれる固定長のパケットであり、前述で説明したPESパケットは分割されTSペイロードに格納される。【０１３０】
第２段目によると、TSパケットには、４ByteのTP＿Extra＿Headerが付与されて、１９２Byteのソースパケットに変換された状態で、AVクリップに書き込まれる。TP＿Extra＿HeaderにはATS（Arrival＿Time＿Stamp）などの情報が記載される。ATSは当該TSパケットのPIDフィルタへの転送開始時刻を示す。AVクリップには、第３段目に示すようにソースパケットが並ぶこととなり、AVクリップの先頭からインクリメントする番号はSPN（ソースパケットナンバー）と呼ばれる。【０１３１】
AVクリップに含まれるTSパケットには、映像・音声・字幕などの各ストリーム以外にもPAT（Program  Association  Table）、PMT（Program  Map  Table）、PCR（Program  Clock  Reference）などがある。PATはAVクリップ中に利用されるPMTのPIDが何であるかを示し、PAT自身のPID配列で登録される。PMTは、AVクリップ中に含まれる映像・音声・字幕などの各ストリームのPIDと各PIDに対応するストリームの属性情報を持ち、またAVクリップに関する各種ディスクリプタを持つ。ディスクリプタにはAVクリップのコピーを許可・不許可を指示するコピーコントロール情報などがある。PCRは、ATSの時間軸であるATC（Arrival  Time  Clock）とPTS・DTSの時間軸であるSTC（System  Time  Clock）の同期を取るために、そのPCRパケットがデコーダに転送されるATSに対応するSTC時間の情報を持つ。【０１３２】
図２５はPMTのデータ構造を詳しく説明する図である。PMTの先頭には、そのPMTに含まれるデータの長さなどを記した「PMTヘッダ」が配置される。その後ろには、AVクリップに関する「ディスクリプタ」が配置される。前述したコピーコントロール情報などが、ディスクリプタとして記載される。ディスクリプタの後には、AVクリップに含まれる各ストリームに関する「ストリーム情報#1〜#N」が複数配置される。ストリーム情報は、ストリームの圧縮コーデックなどを識別するためストリームタイプ、ストリームのPID、ストリームの属性情報（フレームレート、アスペクト比など）が記載されたストリームディスクリプタから構成される。ストリームディスクリプタはAVクリップに存在するストリームの数だけ存在する。  以上がAVクリップについての説明である。続いて、クリップ情報ファイルの詳細について説明する。【０１３３】
＜クリップ情報ファイル＞
図２６は、クリップ情報ファイルの一例を示す図である。クリップ情報ファイルは、本図に示すようにAVクリップの管理情報であり、AVクリップと１対１に対応し、ストリーム属性情報とエントリマップから構成される。【０１３４】
図２７は、ストリーム属性情報の一例を示す図である。ストリーム属性情報は本図に示すように、AVクリップに含まれる各ストリームについての属性情報が、PID毎に登録される。属性情報はビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム、インタラクティブグラフィックスストリーム毎に異なる情報を持つ。【０１３５】
「ビデオストリーム属性情報」は、そのビデオストリームがどのような圧縮コーデックで圧縮されたか、ビデオストリームを構成する個々のピクチャデータの解像度がどれだけであるか、アスペクト比はどれだけであるか、フレームレートはどれだけであるかなどの情報を持つ。【０１３６】
「オーディオストリーム属性情報」は、そのオーディオストリームがどのような圧縮コーデックで圧縮されたか、そのオーディオストリームに含まれるチャンネル数は何であるか、何の言語に対応するか、サンプリング周波数がどれだけであるかなどの情報を持つ。これらの情報は、再生機が再生する前のデコーダの初期化などに利用される。【０１３７】
図２８は、エントリマップの一例を示す図である。【０１３８】
エントリマップは、本図に示すように、AVクリップ内に含まれるビデオストリームの各フレーム内符号化画像（以下Iピクチャと呼ぶ）の表示時刻を示すPTSと各Iピクチャが開始するAVクリップのSPNが記載されたテーブル情報である。【０１３９】
ここではテーブルの１つの行で示される対となるPTSとSPNの情報をエントリポイントと呼ぶことにする。また先頭を０として各エントリポイント毎にインクリメントした値をエントリポイントID（以下EP＿ID）と呼ぶことにする。このエントリマップを利用することにより、再生機はビデオストリームの時間軸上の任意の地点に対応するAVクリップのファイル位置を特定することが出来るようになる。例えば、早送り・巻戻しの特殊再生の際には、エントリマップに登録されるIピクチャを特定し選択して再生することによりAVクリップを解析することなく効率的に処理を行うことが出来る。また、エントリマップはAVクリップ内に多重化される各ビデオストリーム毎に作られ、PIDで管理される。【０１４０】
以上がAVクリップ、クリップ情報ファイルについての説明である。続いて、システムターゲットデコーダ１３の詳細について説明する。【０１４１】
図２９は、システムターゲットデコーダ１３の内部構成の一例を示す図である。本図に示すように、システムターゲットデコーダ１３は、ソースデパケットタイザ３２a,bと、PIDフィルタ３３a,bと、Primaryビデオデコーダ３４と、Primaryビデオプレーン３５と、Secondaryビデオデコーダ３６と、Secondaryビデオプレーン３７と、PGデコーダ３８と、PGプレーン３９と、IGデコーダ４０と、IGプレーン４１と、Primaryオーディオデコーダ４２と、Secondaryオーディオデコーダ４３と、音声ミキサー４４と、BD-Jプロセッサ４５と、BD-Jプレーン４６と、加算部４７とから構成される。【０１４２】
ソースデパケットタイザ３２a,bは、システムターゲットデコーダ１３に転送されるソースパケットを解釈し、TSパケットを取り出しPIDフィルタに送出する。この送出にあたって、各ソースパケットのATSに応じてデコーダへの入力時刻を調整する。具体的には、ATCカウンタが生成するATCの値と、ソースパケットのATS値とが同一になった瞬間に、AVクリップの記録レートにしたがって、そのTSパケットだけをPIDフィルタに転送する。【０１４３】
PIDフィルタ３３a,bは、ソースデパケッタイザから出力されたTSパケットのうち、TSパケットのPIDが、再生に必要とされるPIDに一致するものを、PIDにしたがって、Primaryビデオデコーダ、Secondaryビデオデコーダ、IGデコーダ、PGデコーダ、音声デコーダ、Secondaryオーディオデコーダに転送する。例えば、BD-ROMの場合には、TSパケットに含まれるPIDが０x１０１１である場合はPrimaryビデオデコーダに、PIDが０x１B００から０x１B１Fである場合はSecondaryビデオデコーダ２５０５に、PIDが０x１１００から０x１１１Fである場合はPrimaryオーディオデコーダに、PIDが０x１A００から０x１A１Fである場合はSecondaryオーディオデコーダに、PIDが０x１２００から０x１２１Fである場合はPGデコーダ２５０７に、PIDが０x１４００から０x１４１Fである場合はIGデコーダ２５０６に転送される。【０１４４】
図２８の通りソースデパケッタイザとPIDフィルタはそれぞれ二つもち、一つはリードバッファ１１から転送されるAVクリップ、一つはリードバッファ１２から転送されるAVクリップを処理する。サブパスタイプが同期型の場合は、メインパスから参照されるAVクリップとサブパスから参照されるAVクリップは同期を取りながら再生する。サブパスタイプが非同期型の場合は、メインパスから参照されるAVクリップとサブパスから参照されるAVクリップは非同期で再生する。【０１４５】
Primaryビデオデコーダ３４は、緩衝バッファを有し、バッファにデータを蓄えながら、TSヘッダ、PESヘッダなどの情報を取り除いて、符号化状態にあるピクチャ(Iピクチャ、Bピクチャ、Pピクチャ)を取り出し、ビデオストリームの個々のフレーム画像を所定の復号時刻（DTS）ごとにデコードすることにより複数フレーム画像を作成し、表示時刻（PTS）のタイミングでPrimaryビデオプレーン３５に書き込む。AVクリップに多重化されるビデオストリームの圧縮符号化形式にはMPEG２、MPEG４AVC、VC１などがあるため、ストリームの属性に応じて、圧縮映像の復号化方式を切り替える。【０１４６】
Primaryビデオプレーン３５は、Primaryビデオデコーダ３４によって得られたフレーム画像が格納される。【０１４７】
Secondaryビデオデコーダ３６は、Primaryビデオデコーダ３５と同様の構成を持ち、入力されるSecondaryビデオストリームのデコードを行い、表示時刻（PTS）のタイミングでピクチャをSecondaryビデオプレーンに書き出す。【０１４８】
Secondaryビデオプレーン３７は、Secondaryビデオデコーダ３６によって得られたフレーム画像が格納される。【０１４９】
PGデコーダ３８は、ソースパケタイザから入力されるTSパケットからプレゼンテーショングラフィックスストリームを抽出してデコードし、非圧縮のグラフィックスデータを表示時刻（PTS）のタイミングでPGプレーンに書き出す。【０１５０】
PGプレーン３９は、非圧縮のグラフィクスデータが格納される。【０１５１】
IGデコーダ４０は、ソースパケタイザから入力されるTSパケットからインタラクティブグラフィックスストリームを抽出してデコードし、非圧縮のグラフィックスデータを表示時刻（PTS）のタイミングでIGプレーンに書き出す。【０１５２】
IGプレーン４１には、非圧縮のグラフィクスデータが格納される。【０１５３】
Primaryオーディオデコーダ４２は、緩衝バッファを有し、バッファにデータを蓄えながら、TSヘッダ、PESヘッダなどの情報を取り除いて、音声ストリームデコード処理を行い、非圧縮のLPCM状態のオーディオデータを得て再生時刻（PTS）のタイミングで音声ミキサーに出力する。AVクリップに多重化されるオーディオストリームの圧縮符号化形式にはAC３、DTSなどがあるため、ストリームの属性に応じて、圧縮音声の復号化方式を切り替える。【０１５４】
Secondaryオーディオデコーダ４３は、Primaryオーディオデコーダと同様の構成を持ち、入力されるSecondaryオーディオストリームのデコードを行い、表示時刻のタイミングで非圧縮のLPCMの状態のオーディオデータを音声ミキサーに出力する。AVクリップに多重化されるオーディオストリームの圧縮符号化形式にはDolbyDigitalPlus、DTS-HD  LBRなどがあるため、ストリームの属性に応じて、圧縮音声の復号化方式を切り替える。【０１５５】
音声ミキサー４４は、Primaryオーディオデコーダから出力される非圧縮音声データとSecondaryオーディオデコーダから出力される非圧縮音声データとをミキシング（音の重ね合わせ）をしてスピーカなどに出力する。【０１５６】
BD-Jプロセッサ４５は、BD-J実行部から転送されるPNG形式又はJPEG形式のグラフィクスデータをデコードして、BD-Jアプリケーションから指定される表示時刻にしたがって、BD-Jプレーンに出力する。【０１５７】
BD-Jプレーン４６には、BD-Jプロセッサ４５によってデコードされたグラフィクスデータが格納される。【０１５８】
加算部４７は、Primaryビデオプレーン、Secondaryビデオプレーン、IGプレーン、PGプレーン、BD-Jプレーンに書かれたデータを瞬時に重畳し、TVなどの画面に表示する。【０１５９】
以上のように本実施形態によれば、BD-ROMプレーヤモデルに準拠した内部構成を実現しすることにより、プレイリストの再生を実現することができる。【０１６０】
(第３実施形態)
本実施形態では、プレイリスト情報の詳細なデータ構造と、カレントセカンダリビデオストリームの決定の仕方とを述べる。【０１６１】
図３０は、プレイリスト情報のデータ構造を示す図であり、本図に示すようにプレイリスト情報は、MainPathを定義するMainPath情報(MainPath())と、Subpathを定義するサブパス情報(Subpath())とを含む。【０１６２】
＜プレイリスト情報の説明その１.サブパス情報＞
MainPathが、プライマリビデオたるMainClipに定義される再生経路であるのに対し、Subpathは、MainPathと同期すべきSubClipに対して定義される再生経路である。【０１６３】
図３１は、サブパス情報の内部構成をクローズアップして示す図である。本図における矢印hc0に示すように各Subpathは、サブパスの類型を示すSubPath＿typeと、1つ以上のSubPlayItem情報(・・・SubPlayItem()・・・)とを含む。【０１６４】
図中の引き出し線hc1は、SubPlayItem情報の構成をクローズアップしている。【０１６５】
SubPlayItemは、メインパスから分離した、1以上のエレメンタリストリーム再生パスを定義し、当該パスをメインパスとどのように同期するかという類型を表現するのに使われる。SubPlayItemで使用されるのが、The Primary audio / PG / IG / Secondary audio / Secondary video のサブパスであるなら、これらのSubPlayItemは、PlayList中のPlayItemを使っているメインパスと同期することになる。このエレメンタリストリーム再生のためのサブパスによって使われるエレメンタリストリームは、MainPath側のPlayItemによって使われるMainClipから分離したClip、つまりSubClipに多重化される。【０１６６】
以降、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』は、クリップ情報のファイル名を記述することにより、SubPlayItemに対応するSubClipを一意に指定する情報である。【０１６８】
『Clip＿codec＿identifier』は、AVクリップの符号化方式を示す。【０１６９】
『ref＿to＿STC＿id[0]』は、このSubPlayItemが対象としている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の始点が、どこに存在するかを45KHzの時間精度で示す。あるSubPlayItemがセカンダリビデオストリーム上の再生区間を定義していて、そのSubPlayItemのsync＿start＿PTS＿of＿PlayItemが、PlayItem時間軸における一時点を示している場合、そのSubPlayItemは、“同期ピクチャインピクチャ”を実現することになる。【０１７４】
また、このSync＿Start＿Pts＿of＿PlayItemには、不定値(0xFFF)を設定することもできる。この不定値は、Sync＿PlayItem＿Idにて指定されたPlayItemの時間軸において、ユーザによりロック操作がなされた時点を、Sync＿PlayItem＿Idにて指定されたPlayItemとの同期時点に定める旨を示す。sync＿start＿PTS＿of＿PlayItemが不定値に設定されており、尚且つSubPlayItemが、セカンダリビデオストリームの再生を意図している場合、かかるSubPlayItemは、“非同期ピクチャインピクチャ”を実現することになる。【０１７５】
以上が、SubPath情報についての説明である。【０１７６】
＜STN＿table＞
プレイリスト情報において特徴的であるのは、STN＿Tableである。【０１７７】
STN＿tableは、PlayItem情報のClip＿Information＿file＿nameで指定されているAVクリップに多重化された複数エレメンタリストリーム、SubPlayItem情報のClip＿Information＿file＿nameで指定されているOut＿of＿MUXストリームのうち、再生可能なものを示すテーブルである。具体的にいうとSTN＿tableは、MainClipに多重化されている複数In＿MUXストリーム、SubClipに多重化されているOut＿of＿MUXストリームのそれぞれについてのStream＿entryを、Stream＿attributeと対応付けることで構成される。【０１７８】
図３２は、STN＿tableの全体構成の一例を示す図である。図３３は、図３２に示したSTN＿tableの全体構成のうち、セカンダリビデオストリームについてのstream＿entryの一例を示す図である。本図に示すようにSTN＿tableは、n個のSecondary＿video＿stream＿entry「Secondary＿video＿stream＿entry[1]〜Secondary＿video＿stream＿entry[n]」と、セカンダリビデオストリームの個数「number＿of＿Secondary＿video＿stream＿entries(=n)」とから構成される。【０１７９】
引き出し線hs1は、Secondary＿video＿stream＿entry[1]の内部構成をクローズアップして示している。つまり、Secondary＿video＿stream＿entry[1]〜Secondary＿video＿stream＿entry[n]は、同一のクラス構造体から生成した複数のインスタンスであり、その内部構成は、どれも、この引き出し線hs1に示すものと同じになる。そして、Secondary＿video＿stream＿entryにおける括弧書き[]の中の数値は、Secondary＿video＿stream＿entryが、STN＿tableにおいて何番目に位置するかという、Secondary＿video＿stream＿entryの順位を示す。【０１８０】
引き出し線hs1に示すように、Secondary＿video＿stream＿entry[1]は、Secondary Video  Stream Number=1に対応するPIDを再生装置に提示する「Stream＿entry」と、Secondary Video  Stream Number=1に対応するビデオ属性を示す「Stream＿attribute」と、econdary Video Stream Number=1の設定時にて、再生可能となるセカンダリオーディオストリームを示す「Comb＿info＿Secondary＿Video＿Secondary＿Audio」と、Secondary Video Stream Number=1の設定時にて、再生可能となるPGストリーム又はテキスト字幕ストリームを示す「Comb＿info＿Secondary＿Video＿PiP＿PG＿textST()」とからなる。【０１８１】
引き出し線hs2に示すように、Secondary＿video＿stream＿entry[2]は、Secondary Video  Stream Number=2に対応するPIDを再生装置に提示する「Stream＿entry」と、Secondary Video  Stream Number=2に対応するビデオ属性を示す「Stream＿attribute」と、Secondary Video Stream Number=2の設定時にて、再生可能となるセカンダリオーディオストリームを示す「Comb＿info＿Secondary＿Video＿Secondary＿Audio」と、Secondary Video Stream Number=2の設定時にて、再生可能となるPGストリーム又はテキスト字幕ストリームを示す「Comb＿info＿Secondary＿Video＿PiP＿PG＿textST()」とからなる。【０１８２】
引出線hs3についても同様である。以上のように、STN＿tableにおいてx番目に位置するsecondary＿video＿stream＿entry[x]は、セカンダリビデオストリーム番号がxに設定された際、そのxに対応するセカンダリビデオストリームのPIDは何か、そのセカンダリビデオストリームのビデオ属性はどのようなものか、どのようなセカンダリオーディオストリーム、PGTextSTストリームと組合せ可能であるかを再生装置に指示する。【０１８３】
字幕を表すストリームには、これまでの実施形態で述べたプレゼンテーショングラフィクスストリームの他に、テキストコードによって表現されたテキスト字幕ストリームがある。ここでのPGテキスト字幕ストリームとは、プレゼンテーショングラフィクスストリームと、テキスト字幕ストリームとを併せた呼び名である。また、ピクチャインピクチャに使用されるPGテキスト字幕ストリームをPiP＿PG＿テキスト字幕ストリームと呼ぶ。【０１８４】
図３４（ａ）は、プライマリビデオストリームにおけるStream＿entry及びStream＿attributの一例を示す図である。Stream＿entryは、プライマリビデオストリームを構成するPESパケットの、パケット識別子を示す『ref＿to＿stream＿PID＿of＿mainClip』を含む。【０１８５】
Stream＿attributeは、ビデオストリームの表示方式を示す『Video＿format』と、ビデオストリームの表示周波数を示す『frame＿rate』を含む。【０１８６】
図３４（ｂ）は、セカンダリビデオストリームにおけるStream＿entryを示す。本図に示すように、SecondaryビデオストリームのStream＿entryは、Secondaryビデオストリームを参照しているSubPath情報を示す『ref＿to＿Sub＿Path＿id』、Secondaryビデオストリームを構成するPESパケットの、パケット識別子を示す『ref＿to＿stream＿PID＿of＿mainClip』を含む。【０１８７】
以上が、本実施形態における記録媒体の詳細についての説明である。【０１８８】
以降、PSR1、PSR14、PSR31について説明する。PSRにおける語長は、32ビットである。PSRの一語(32ビット)を構成する各ビットデータのビット位置を、以降、b0〜b31と呼ぶことにする。この呼び方では、PSRの最上位ビットはb31、最下位ビットはb0と呼ばれることになる。【０１８９】
＜PSR14＞
図３５（ａ）は、PSR14のビットアサインの一例を示す図である。【０１９０】
本図によると、32ビット長のPSR14におけるb8〜b15は、セカンダリビデオストリームのストリーム番号であり、カレントPlay ItemのSTN＿tableにentryが記述されている複数Secondaryビデオストリームのうち、1つを特定する。PSR14の設定値が変化すれば、再生装置はこの変化後のSecondaryビデオストリームを再生する。PSR14におけるセカンダリビデオストリームのストリーム番号は初期値として0xFFが設定されており、再生装置により1〜32の値に設定されうる。この0xFFは、不定値であり、Secondaryビデオストリームが存在しない旨、又は、Secondaryビデオストリームが選択されてない旨を示す。1〜32の設定値は、Secondaryビデオストリームのストリーム番号として解釈される。【０１９１】
PSR14のb31は、disp＿v＿flagであり、セカンダリビデオを再生する能力が再生装置に存在するか(1b:Presentation of Secondary Video is enable)、セカンダリビデオを再生する能力が再生装置に存在しないか(0b:Presentation of Secondary Video is disable)を示す。【０１９２】
＜PSR29＞
図３５（ｂ）は、PSR29のビットアサインの一例を示す図である。【０１９３】
PSR29のb0は、HD＿Secondary＿video＿Capabilityであり、HDTV対応のセカンダリビデオを再生する能力が再生装置に存在するか(1b:HD Secondary Video is capable)、HDTV対応のカンダリビデオを再生する能力が再生装置に存在しないか(0b:HD Secondary Video is incapable)を示す。【０１９４】
PSR29のb1は、50&25Hz＿video＿Capabilityであり、50&25Hzビデオ、つまりPAL方式のビデオを再生する能力が再生装置に存在するか(1b:50&25Hz Video is capable)、50&25Hzビデオを再生する能力が再生装置に存在しないか(0b:50&25Hz Video is incapable)を示す。【０１９５】
以上が、PSRセット２３についての説明である。【０１９６】
図３６は、再生制御エンジンの内部構成の一例を示す図である。本図に示すように、再生制御エンジン部は、Procedure実行部４８、PID変換部４９を含む。【０１９７】
Procedure実行部４８は、あるPlayItem情報から別のPlayItem情報への切り換わりが生じた場合、又はストリーム番号を切り換える旨の操作がユーザによりなされた場合、所定のストリーム選択プロシージャを実行して、PSR14に新たなセカンダリビデオストリームのストリーム番号を書き込む。再生装置は、PSR14に書き込まれたストリーム番号に応じて、セカンダリビデオストリームを再生するので、かかるPSR14の設定を通じて、セカンダリビデオストリームが選択されることになる。【０１９８】
PlayItem情報の切り換わり時に、ストリーム選択プロシージャを実行するのは、STN＿TableはPlayItem情報毎に存在するので、あるPlayItem情報においては再生可能であったセカンダリビデオストリームが、別のPlayItem情報において再生不可能になることが有り得るからである。【０１９９】
PID変換部４９は、PSRセット２３に格納されているストリーム番号を、STN＿Tableに基づき、PID参照値に変換して、変換結果たるPID参照値をPID Filter３３a、PID Filter３３bに指示する。【０２００】
図３７は、カレントセカンダリビデオストリームを選択するためのストリーム選択プロシージャの処理手順を示すフローチャートである。【０２０１】
ステップＳ７１では、PSR14に設定された番号のセカンダリビデオストリームが、以下の条件(A)、条件(B)を満たすか否かをチェックする。、
条件(A):Video format,frame＿rateと、HD Secondary Video Capabilityや50&25Hz Video Capabilityとの比較では、PSR14に格納された番号により定められるセカンダリビデオストリームの再生能力が再生装置に存在している。【０２０２】
条件(B)：セカンダリビデオストリームにおけるSubPath＿Typeは、“=6(非同期ピクチャインピクチャ)”である
ここで、Video format,frame＿rateは、STN＿tableにおいて、セカンダリビデオストリームについてのstream＿attributeに記載されている。また、HD Secondary Video Capabilityや50&25Hz Video Capabilityの有無は、PSR29のb0,b1に示されている。これらSTN＿tableによる設定と、PSR29のb1の値とを照合することで、条件(A)を具備しているかどうかの判断がなされる。【０２０３】
ステップＳ７１の実行後、ステップＳ７２、ステップＳ７３を実行する。【０２０４】
ステップＳ７２は、カレントプレイアイテムのSTN＿tableにおけるセカンダリビデオストリームのSTN＿tableにおけるStream＿entryの個数が0であるか否かを判定する判定ステップである。ここでセカンダリビデオストリームのSTN＿tableにおけるStream＿entryの個数が0であることは、再生許可されているセカンダリビデオストリームが1つも存在しないことを意味する。もし0である場合、PSR14のセカンダリビデオストリーム番号を維持する(ステップＳ７３)。カレントプレイアイテムにおいて、再生許可されているセカンダリビデオストリームが存在しない以上、PSR14の現状値を維持すべきだからである。【０２０５】
ステップＳ７４は、ステップＳ７３が0でないと判定された場合、実行される判定ステップであり、PSR14に格納された番号XがSTN＿tableにおけるstream＿entryの総数以下であり、且つ、条件(A)を満たすかどうかを判定する。このステップＳ７４がYesと判定されたなら、カレントプレイアイテムについて最適なカレントセカンダリビデオストリームを選択する(ステップＳ７５)。【０２０６】
もしステップＳ７４において、Noと判定されたなら、ステップＳ７６の判定ステップを実行する。この判定ステップは、条件(B)を満たすかどうかを判定するものである。条件(B)を満たせば、ステップＳ７８におけるPSR14に、OxFEを設定する。このOxFEは、PSR14におけるセカンダリビデオストリーム番号はValidだが、セカンダリビデオストリームは非選択であることを意味する値である。非同期ピクチャインピクチャの実行時において、かかる値をPSR14に設定しておけば、ユーザ操作があった際、カレントストリームの決定手順が実行されることになる。しかし、仮に、PSR14のストリーム番号がInvalidであれば、たとえユーザ操作がなされたとしても、カレントストリームの決定手順は実行されず、いつまでたっても、セカンダリビデオストリームが再生されないという事態に陥る。これを避けるため、非同期ピクチャインピクチャの実行時においては、PSR14にOxFEを設定することにしている。【０２０７】
条件(B)は満たさないが、有効なセカンダリビデオストリーム番号が既にPSR14に存在するなら、これを変化させない(ステップＳ７７)。【０２０８】
以上が、セカンダリビデオストリームにおけるストリーム選択プロシージャについての説明である。【０２０９】
図３８は、カレントプレイアイテムについて最適なカレントセカンダリビデオストリームを選択する処理手順を示すフローチャートである。【０２１０】
ステップＳ８１〜ステップＳ８３では、以下の条件(a)、条件(b)が満たされているかのチェックを、STN＿tableにおける全てのstream＿entryに記述されているストリームに対して実行する。【０２１１】
条件(a):セカンダリビデオストリームについてのVideo format、frame＿rateと、HD Secondary Video Capabilityや50&25Hz Video Capabilityとの比較では、PSR14に格納された番号により定められるセカンダリビデオストリームの再生能力が再生装置に存在している。【０２１２】
条件(b)：セカンダリビデオストリームにおけるSubPath＿Typeは、“=6(非同期ピクチャインピクチャ)”である
以上のようなチェックが、STN＿tableにおいて再生許可されている全てのセカンダリビデオストリームについてなされれば、ステップＳ８４の判定ステップを実行する。【０２１３】
ステップＳ８４は、条件(a)を満たすセカンダリビデオストリームが1つも存在しないか否かの判定であり、もしそうであれば、0xFFFをセカンダリビデオストリームについてのストリーム番号としてPSR14に設定する(ステップＳ８５)。【０２１４】
もしセカンダリビデオストリームが1つでも存在するなら、ステップＳ８４がYesになり、ステップＳ８６が実行されることになる。ステップＳ８６は、条件(a)を満たすセカンダリビデオストリームであって、STN＿tableにおいて先頭順位になっているものは、条件(b)を満たすかどうかを判定する。もし条件(b)を満たすなら、ステップＳ８７において0xFEとなるセカンダリビデオストリーム番号をPSRに設定する。【０２１５】
条件(b)を満たさないなら、条件(a)を満たすセカンダリビデオストリームのうち、対応するStream＿EntryがSTN＿tableにおいて先頭順位に位置するものを選択して、選択したセカンダリビデオストリームのストリーム番号を、PSR14に設定する(ステップＳ８８)。【０２１６】
カレントセカンダリビデオストリームにおける再生区間がSubPlayItemによって規定されていれば、カレントセカンダリビデオストリームにおける再生区間を規定しているサブプレイアイテムをカレントサブプレイアイテムとして特定されることになる。【０２１７】
これらの手順を経て、カレントプレイアイテムにとって最適なカレントセカンダリビデオストリームがPSR14に格納されることになる。以上が、最適なカレントセカンダリビデオストリーム番号を選択するための選択手順である。【０２１８】
以上のように本実施形態によれば、BD-ROMやローカルストレージに記録されているセカンダリビデオストリームの中に、再生不能なものが存在したとしても、次のストリームを選ぶという手順を実行することで、「自身が再生できるものをピクチャインピクチャに用いる」という選択の余地がうまれる。従って、セカンダリビデオの総サイズ自体にバラツキがあり、再生装置におけるセカンダリビデオの再生能力の有無にバラツキががあったとしても、何等かのセカンダリビデオを再生装置に表示させ、ピクチャインピクチャを実行させることができる。【０２１９】
そうして選択されたセカンダリビデオに対応するセカンダリビデオストリームを包含しているAVクリップがサブプレイアイテムによって参照されている場合、かかるAVクリップがUnavailableクリップであると、再生が中断することになる。よって、カレントセカンダリビデオストリームを包含しているAVクリップであって、サブプレイアイテム情報から参照されているもののダウンロードを急げば、再生が中断することはないのでスムーズな再生進行を確保することができる。【０２２０】
(第４実施形態)
再生されるべきプレイリストが、立体視映像用のプレイリストである場合の改良である。【０２２１】
立体視を実現する手法としては、ホログラフィ技術を用いる方法と、視差画像を用いる方式とがある。【０２２２】
まず、１つ目のホログラフィ技術の特徴としては、人間が通常物体を認識するのと全く同じように物体を立体として再現することができるが、動画生成に関しては、技術的な理論は確立しているが、ホログラフィ用の動画をリアルタイムで生成する膨大な演算量を伴うコンピューター、及び1mmの間に数千本の線を引けるだけの解像度を持ったディスプレイデバイスが必要であるが、現在の技術での実現は非常に難しく、商用として実用化されている例はほとんどない。【０２２３】
２つ目の視差画像を用いた方式である。この方式のメリットは、高々右目用と左目用の２つの視点の映像を準備するだけで立体視を実現できることにあり、技術的には、左右のそれぞれの目に対応した絵を、いかにして対応した目にだけ見せることができるかの観点から、継時分離方式を始めとするいくつかの技術が実用化されている。【０２２４】
この立体視を実現するため、第１実施形態に説明した、再生装置、テレビを含むホームシアターシステムには、継時型ステレオゴーグルが存在する。【０２２５】
図３９は、継時型ステレオゴーグルの一例を示す図である。本図（ａ）は、立体視を実現することができるホームシアターシステムを示す。本図のホームシアターシステムには、テレビ１０４の付属品として継時型ステレオゴーグル１０５が存在する。【０２２６】
同図（ｂ）は、継時型ステレオゴーグル１０５をユーザが装着した状態を示す。継時型ステレオゴーグル１０５は、液晶シャッターを備え、継時分離方式による視差画像をユーザに視聴させる。視差画像とは、右目に入る映像と、左目に入る映像とから構成される一組の映像であり、それぞれの目に対応したピクチャーだけがユーザの目に入るようにして立体視を行わせる。【０２２７】
継時分離方式とは、左目用映像及び右目用映像を時間軸方向で交互に表示させ、目の残像反応により左右のシーンを脳内で重ね合わさせて、立体映像として認識させる方法である。本図（ｃ）は、平面視を実現する場合の継時型ゴーグル１０５の状態を示す。平面視を実現する場合、両眼の液晶シャッターが透光状態になる。同図（ｄ）は、左目用映像の表示時を示す。ディスプレイ上に左目用の映像が表示されている瞬間において、前述の継時型ステレオゴーグル１０５は、左目に対応する液晶シャッターを透過にし、右目に対応する液晶シャッターは遮光する。同図（ｅ）は、右目用映像の表示時を示す。ディスプレイ上に右目用の映像が表示されている瞬間において、先ほどと逆に右目に対応する液晶シャッターを透過にし、左目に対応する液晶シャッターを遮光する。【０２２８】
この方式では、左右の映像を時間軸方向で交互に表示させるために、例えば、通常の2次元の映画であれば1秒に２４枚の映像を表示させるのに対して、左右の映像合わせて１秒に４８枚の映像を表示させる必要がある。従って、この方式では、一画面の書き換えが比較的早いディスプレイにおいて好適であるが、1秒間に所定の回数書き換え可能なディスプレイであれば限定されない。【０２２９】
また、別の方法としては、先ほどの継時型ステレオゴーグル１０５では左右のピクチャーを時間軸方向で交互に出力していたのに対して、一画面中の縦方向に左目用のピクチャーと右目用のピクチャーを同時に交互に並べ、ディスプレイ表面にレンチキュラーレンズと呼ばれる蒲鉾上のレンズを通して、左目用のピクチャーを構成する画素は左目だけに結像し、右目用のピクチャーを構成する画素は右目だけに結像するようにすることで、左右の目に視差のあるピクチャーを見せ、立体視を実現させる方式がある。なお、レンチキュラーレンズだけでなく、同様の機能を持たせたデバイス、例えば液晶素子を用いてもよいし、また左目用の画素には縦偏光のフィルター、右目用の画素には横偏光のフィルターを設置し、視聴者は、左目用には縦偏光、右目用には横偏光のフィルターを設置した偏光メガネを用いてディスプレイを見ることによって立体視が可能となる。【０２３０】
この視差画像を用いた立体視は、既に遊園地の遊具などで一般的に使用されており、技術的にも確立されているため、家庭における実用化に最も近いものと言える。なお、視差画像を用いた立体視のための方法はこの他にも、2色分離方式などさまざまな技術が提案されており、本実施形態においては、継時分離方式あるいは偏光メガネ方式を例として用いて説明するが、視差画像を用いる限りこれら２方式に限定するものではない。【０２３１】
本実施形態では、立体視に使う視差画像を情報記録媒体に格納する方法を説明する。ここでは、左目用の画面が格納された映像を「左目映像」、右目用の画面が格納された映像を「右目映像」、両方の映像のことを「立体視映像」と呼ぶことにする。【０２３２】
＜プライマリビデオストリーム、セカンダリビデオストリームの改良＞
本実施形態におけるプライマリビデオストリームは、平面視再生装置では平面視映像として、平面視/立体視映像再生装置で立体視映像を再生する際の左目映像として再生されるビデオストリームである。このビデオストリームを平面視/左目視聴用ビデオストリームと呼ぶことにする。【０２３３】
本実施形態におけるセカンダリビデオストリームは、右目視聴用ビデオストリームが格納されている。右目視聴用ビデオストリームは、平面視/立体視再生装置で立体視映像を再生する際の右目用の映像として再生されるビデオストリームである。右目視聴用ビデオストリームは、プライマリビデオストリームのPIDと異なる0x1012が割り当てられている。続いて、平面視/左目視聴用ビデオストリームと、右目視聴用ビデオストリームの構造について説明する。【０２３４】
ただし、左右の視点からは同じ被写体を見るため映像の相関が大きいため、視点間のピクチャ間予測符号化を行うことで、右目用ビデオストリームは平面視/左目視聴用ビデオストリームに比べてデータ量を大幅に削減できる。また、平面視/左目視聴用ビデオストリームのフレームレートは、平面視/左目視聴用ビデオストリーム単体で平面視再生装置が再生したときのフレームレートであり、この値がGOPヘッダに格納される。【０２３５】
図４０は、立体視のためのプライマリビデオストリーム、セカンダリビデオストリームの内部構成の一例を示す図である。【０２３６】
本図の第２段目は、プライマリビデオストリームの内部構成を示す。このプライマリビデオストリームには、ピクチャデータI1,P2,Br3,Br4,P5,Br6,Br7,P9というピクチャデータが含まれている。これらのピクチャデータは、DTSに従いデコードされる。第１段目は、右目画像を示す。そうしてデコードされたピクチャデータI1,P2,Br3,Br4,P5,Br6,Br7,P9をPTSに従い、I1,Br3,Br4,P2,Br6,Br7,P5の順序で再生することで、右目画像が再生されることになる。【０２３７】
第４段目は、セカンダリビデオストリームの内部構成を示す。このセカンダリビデオストリームは、P1,P2,B3,B4,P5,B6,B7,P8というピクチャデータが含まれている。これらのピクチャデータは、DTSに従いデコードされる。第１段目は、左目画像を示す。そうしてデコードされたピクチャデータP1,P2,B3,B4,P5,B6,B7,P8をPTSに従い、P1,B3,B4,P2,B6,B7,P5の順序で再生することで、左目画像が再生されることになる。【０２３８】
第５段目は、継時型ゴーグル１０５の状態をどのように変化させるかを示す。この第５段目に示すように、左目画像の視聴時は、右目のシャッターを閉じ、右目画像の視聴時は、左目のシャッターを閉じていることがわかる。【０２３９】
これらのプライマリビデオストリーム、セカンダリビデオストリームは、時間方向の冗長性を利用したピクチャ間予測符号化に加えて、視点間の冗長性を利用したピクチャ間予測符号化によって圧縮されている。右目視聴用ビデオストリームのピクチャは、平面視/左目視聴用ビデオストリームの同じ表示時刻のピクチャを参照して圧縮されている。【０２４０】
例えば、右目視聴用ビデオストリームの先頭Pピクチャは、平面視/左目視聴用ビデオストリームのIピクチャを参照し、右目視聴用ビデオストリームのBピクチャは、平面視/左目視聴用ビデオストリームのBrピクチャを参照し、右目視聴用ビデオストリームの二つ目のPピクチャは、平面視/左目視聴用ビデオストリームのPピクチャを参照している。【０２４１】
＜ビデオアクセスユニット＞
平面視/左目視聴用ビデオストリームと右目視聴用ビデオストリームの各ビデオアクセスユニットに割り当てる表示時刻（PTS）、デコード時刻（DTS）の関係は、図４０の時間軸に示す通りである。平面視/左目視聴用ビデオストリームにおける各ピクチャデータのDTSと、右目視聴用ビデオストリームにおける各ピクチャデータのDTSは時間軸上で交互になるように設定され、平面視/左目視聴用ビデオストリームにおける各ピクチャデータのPTSと、右目視聴用ビデオストリームのにおける各ピクチャデータのPTSも時間軸上で交互になるように設定される。これは、ピクチャ間予測符合化の参照関係にある平面視/左目視聴用と右目視聴用のピクチャのデコード順、表示順を交互に設定することで実現できる。【０２４２】
また、平面視/左目視聴用のフレームと次の右目視聴用のフレーム間のDTSの時間間隔は、平面視/左目視聴用の１フレームの表示時間間隔の半分になるように設定する。同様に、平面視/左目視聴用のフレームと次の右目視聴用のフレーム間のPTSの時間間隔は、平面視/左目視聴用の１フレームの表示間隔の半分になるように設定する。【０２４３】
＜立体視表示ディレイ＞
平面視/左目視聴用ビデオストリームのピクチャと同じ表示時刻の右目視聴用ビデオストリームのピクチャのPTSの間隔の差分を立体視表示ディレイとする。立体視表示ディレイは、平面視/左目視聴用ビデオストリームの１フレームの表示間隔の半分の値となる。【０２４４】
＜立体視プレイリスト＞
立体視プレイリストには、右目視聴用を格納するためのサブパスが用意されている。サブパスは右目視聴用を格納する複数のAVクリップを参照しており、メインパスと時間軸上で同期するように設定される。この構造により、平面視プレイリストと立体視プレイリストで、平面視/左目視聴用が格納されたAVクリップを共有することができ、立体視プレイリストでは左目映像と右目視聴用を時間軸上で同期させて関連付けることができる。【０２４５】
立体視プレイリストと、平面視プレイリストとを区別するため、プレイリスト情報には立体視フラグが存在する。立体視フラグは、プレイリスト情報内のストリーム番号テーブルにおいてセカンダリビデオストリームの再生が許可されていて、セカンダリビデオストリームを再生することによる立体視が可能であるか否かを示す。【０２４６】
以上が記録媒体の改良である。続いて、再生装置の詳細について説明する。本実施形態における再生装置は、Primaryビデオプレーン３５が、2D/左目映像プレーン６１と、右目視聴用プレーン６２とに置き換えられている。そして、ｑ１３がｚ４１のような内部構成を有する。【０２４７】
図４１は、システムターゲットデコーダ１３の内部構成の一例を示す図である。本図の内部構成のうち、Secondaryビデオデコーダ、IGデコーダ、PGデコーダ、Primaryオーディオデコーダ、Secondaryオーディオデコーダ、音声ミキサー、イメージプロセッサの構成は第１実施形態で説明した平面視用の再生装置と同じであるため省略する。【０２４８】
ソースデパケットタイザ３２aは、リードバッファ１１に蓄えられたソースパケットを解釈し、TSパケットを取り出し、PIDフィルタ３３aに送出する。【０２４９】
ソースデパケットタイザ３２bは、リードバッファ１１に蓄えられたソースパケットを解釈し、TSパケットを取り出し、PIDフィルタ３４bに送出する。この送出にあたって、各ソースパケットのATSに応じてデコーダへの入力時刻を調整する。具体的には、ATCカウンタが生成するATCの値と、ソースパケットのATS値とが同一になった瞬間に、AVクリップの記録レートにしたがって、そのTSパケットだけをPIDフィルタに転送する。【０２５０】
PIDフィルタ３３aは、ソースデパケッタイザ３２aから出力されたTSパケットのうち、TSパケットのPIDが、再生に必要とされるPIDに一致するものを、PIDにしたがって、3DビデオデコーダのTB３１、Secondaryビデオデコーダ、IGデコーダ、PGデコーダ、音声デコーダ、Secondaryオーディオデコーダに転送する。また、PIDフィルタ３４は、ソースデパケッタイザ３２aから出力されたTSパケットのうち、TSパケットのPIDが、再生に必要とされるPIDに一致するものを、PIDにしたがって、3DビデオデコーダのTB５１に転送する。【０２５１】
3Dビデオデコーダ５０は、TB５１、M５２、EB５３、TB５８、M５９、デコーダ５４、DPB５５、バッファスイッチ５６、ピクチャスイッチ５７、EB６０から構成される。【０２５２】
TB５１は、2D/左目映像ビデオストリームを含むTSパケットがPIDフィルタ３３から出力された際、TSパケットのまま一旦蓄積されるバッファである。【０２５３】
MB５２は、TB５１からEB５３にビデオストリームを出力するにあたって、一旦PESパケットを蓄積しておくためのバッファである。TB５１からMB５２にデータが転送される際に、TSパケットのTSヘッダは取り除かれる。【０２５４】
EB５３は、符号化状態にあるビデオアクセスユニットが格納されるバッファである。MB５２からEB５３にデータが転送される際にPESヘッダが取り除かれる。【０２５５】
TB５８は、右目視聴用ビデオストリームを含むTSパケットがPIDフィルタ３４から出力された際、TSパケットのまま一旦蓄積されるバッファである。【０２５６】
MB５９は、TB５８からEB６０にビデオストリームを出力するにあたって、一旦PESパケットを蓄積しておくためのバッファである。TB５８からMB５９にデータが転送される際に、TSパケットのTSヘッダは取り除かれる。【０２５７】
EB６０は、符号化状態にあるビデオアクセスユニットが格納されるバッファである。MB５９からEB６０にデータが転送される際にPESヘッダが取り除かれる。【０２５８】
デコーダ５４は、ビデオエレメンタリストリームの個々のビデオアクセスユニットを所定の復号時刻（DTS）でデコードすることによりフレーム/フィールド画像を作成する。AVクリップに多重化されるビデオストリームの圧縮符号化形式にはMPEG２、MPEG４AVC、VC１などがあるため、ストリームの属性に応じて、デコーダ５４のデコード方法は切り替えられる。デコーダ５４は、デコードされたフレーム/フィルド画像をDPB５５に転送し、表示時刻（PTS）のタイミングで対応するフレーム/フィールド画像をピクチャスイッチに転送する。【０２５９】
DPB５５は、復号されたフレーム/フィールド画像を一時的に保持しておくバッファである。デコーダ５４が、ピクチャ間予測符号化されたPピクチャやBピクチャなどのビデオアクセスユニットをデコードする際に、既にデコードされたピクチャを参照するために利用する。【０２６０】
バッファスイッチ５６は、EBとEBに蓄えられたピクチャをビデオアクセスユニットに割り当てられた復号時刻（DTS）のタイミングでデコーダ５４に転送する。また、デコーダ５４がビデオアクセスユニットをデコードする際に取得したデコードスイッチ情報を使って、次のアクセスユニットをEB、EBのどちらから引き抜くかを決定しても良い。また、2D/左目映像ビデオストリームと右目視聴用ビデオストリームのDTSは時間軸上でピクチャ単位で交互に来るように設定されているため、例えばDTSを無視して前倒しでデコードするようなデコーダ５４の場合には、ピクチャ単位でビデオアクセスユニットをデコーダ５４に転送しても良い。【０２６１】
ピクチャスイッチ５７は、デコーダ５４から転送されたデコード済みのフレーム/フィールド画像が、2D/左目映像のストリームの場合は2D/左目映像プレーン６１に、右目視聴用のストリームの場合は右目視聴用プレーン６２に瞬時に書き出す。【０２６２】
以上がシステムターゲットデコーダについての説明である。続いて、本実施形態における仮想パッケージ制御部１６の改良について説明する。【０２６３】
仮想パッケージ制御部１６は、立体視フラグがオフに設定されていれば、何れのセカンダリビデオストリームを包含しているAVクリップが、ダウンロードされていなかっても、DataStarvedイベントを出力しない。よって、セカンダリビデオストリームがダウンロードされていなくでも、JMFプレーヤインスタンス及び再生制御エンジンは、再生を停止しない。【０２６４】
逆に立体視フラグがオンに設定されていれば、カレントセカンダリビデオストリームがサブプレイアイテムに対応しており、そのサブプレイアイテムが未だダウンロードされていないAVクリップやDisable状態であるAVクリップを参照している場合、仮想パッケージ制御部１６はDataStarvedイベントを再生制御エンジン及びJMFプレーヤインスタンスに通知する。これにより再生が停止する。【０２６５】
また、継時型ゴーグル１０５が取り外されていて、再生装置１０１の設定が、“立体視オフ”である場合も、セカンダリビデオストリームを格納したAVクリップのダウンロードを待たずに、再生を進行する。【０２６６】
以上のように本実施形態によれば、立体視がオフに設定されている場合、セカンダリビデオストリームを含むAVクリップのダウンロードを待つことなく、プレイアイテムの再生を進行させることができる。【０２６７】
(第５実施形態)
本実施形態では、カレントプライマリオーディオストリーム、カレントセカンダリオーディオストリームを選択するための詳細なデータ構造と、再生装置における構成とについて説明する。【０２６８】
図４２は、Primary＿audio＿stream＿entry、Secondary＿audio＿stream＿entryの内部構成と、Comb＿info＿Secondary＿video＿Secondary＿audioの内部構成との一例を示す図である。図中の引出線ha1,ha2は、Primary＿audio＿stream＿entry、Secondary＿audio＿stream＿entryの内部構成をクローズアップしている。これらの内部構成は、何れも共通であり、stream＿entryと、stream＿attributeとからなる。【０２６９】
引出線ha3は、Stream＿entryの内部構成をクローズアップして示している。この引出線に示すように、プライマリオーディオストリーム及びセカンダリオーディオストリームのStream＿entryは、セカンダリオーディオストリームを参照しているSubPath情報を示す『ref＿to＿Sub＿Path＿id』、プライマリオーディオストリーム及びセカンダリオーディオストリームが多重化されているSubClipを示す『ref＿to＿Sub＿Clip＿entry＿id』、プライマリオーディオストリーム及びセカンダリオーディオストリームを構成するPESパケットのPIDに対する参照値を示す『ref＿to＿stream＿PID＿of＿Sub＿Clip』を含む。【０２７０】
引出線ha4は、stream＿attributeの内部構成をクローズアップして示している。この引出線に示すように、プライマリオーディオストリーム,セカンダリオーディオストリームにおけるStream＿attributeは、オーディオストリームの符号化方式を示す『stream＿coding＿type』と、対応するオーディオストリームのチャネル構成を示す『audio＿presentation＿type』と、対応するオーディオストリームのサンプリング周波数を示す対応する『Sampling＿frequency』と、オーディオストリームの言語属性を示す『audio＿language code』からなる。【０２７１】
このセカンダリオーディオストリームに対応する情報として、セカンダリビデオストリーム用のstream＿entryには、引出線ha5に示すように、Comb＿info＿Secondary＿video＿Secondary＿audioが存在する。【０２７２】
引出線ha6は、Comb＿info＿Secondary＿video＿Secondary＿audioの内部構成をクローズアップして示している。Comb＿info＿Secondary＿video＿Secondary＿audioは、各Secondaryビデオストリームごとに組合せ可能なセカンダリオーディオストリームの総数を示す「number＿of＿Secondary＿audio＿stream＿ref＿entries」と、セカンダリビデオストリームの再生時に組合せることができるセカンダリオーディオストリームのストリーム番号を示す「Secondary＿audio＿stream＿id＿ref[0]〜[n]」とからなる。【０２７３】
以上のように、STN＿tableには、プライマリビデオストリームの音声となるプライマリオーディオストリームのstream＿entry、セカンダリビデオストリームの音声となるセカンダリオーディオストリームのstream＿entryのそれぞれがあり、また、セカンダリビデオストリームのstream＿entryには、セカンダリビデオストリームとの組合せを意図したセカンダリオーディオストリームが、セカンダリビデオストリーム毎に記述されている(Comb＿info＿Secondary＿video＿Secondary＿audio)ことがわかる。【０２７４】
以上がオーディオストリーム再生のための記録媒体の特徴である。次に、オーディオストリーム再生のための再生装置の特徴について説明する。【０２７５】
音声再生のための構成として、再生装置には、カレントプライマリオーディオストリームのストリーム番号と、カレントセカンダリオーディオストリームのストリーム番号とについて説明する。【０２７６】
＜PSR1＞
図４３（ａ）は、PSR1のビットアサインの一例を示す図である。【０２７７】
本図によると、32ビット長のPSR1の下位8ビット(b0〜b7)は、プライマリオーディオストリーム番号であり、カレントPlay ItemのSTN＿tableにentryが記述されている複数プライマリオーディオストリームのうち、1つを特定する。PSR1の設定値が変化すれば、再生装置はこの変化後のプライマリオーディオストリームを再生する。PSR1は初期値として0xFFが設定されており、再生装置により1〜32の値に設定されうる。この0xFFは、不定値であり、プライマリオーディオストリームが存在しない旨、又は、プライマリオーディオストリームが選択されてない旨を示す。1〜32の設定値は、プライマリオーディオストリームのストリーム番号として解釈される。【０２７８】
＜PSR14＞
図４３（ｂ）は、PSR14のビットアサインの一例を示す図である。【０２７９】
本図によると、32ビット長のPSR14における下位8ビット(b0〜b7)は、セカンダリオーディオストリーム番号であり、カレントPlay ItemのSTN＿tableにentryが記述されている複数セカンダリオーディオストリームのうち、1つを特定する。PSR14の設定値が変化すれば、再生装置はこの変化後のセカンダリオーディオストリームを再生する。PSR14は初期値として0xFFが設定されており、再生装置により1〜32の値に設定されうる。この0xFFは、不定値であり、セカンダリオーディオストリームが存在しない旨、又は、セカンダリオーディオストリームが選択されてない旨を示す。1〜32の設定値は、セカンダリオーディオストリームのストリーム番号として解釈される。【０２８０】
図４４は、カレントプレイアイテム変化時におけるカレントプライマリオーディオストリーム決定手順を示すフローチャートである。ステップＳ９６、ステップＳ９７は、STN＿tableに示される全てのPrimaryオーディオストリームについてステップＳ９８を繰り返すループ処理を形成している。このループ処理において、処理対象となる個々のPrimaryオーディオストリームを、Primaryオーディオストリームiという。ステップＳ９８は、Primaryオーディオストリームiが3つの条件条件(a)(b)(c)を満たすかのチェックを行う。【０２８１】
条件(a)とは、Primaryオーディオストリームiを再生する能力が再生装置に存在することであり、これを満たすか否かの判定は、PSR15と、Primaryオーディオストリームiのstream＿coding＿typeとの比較でなされる。【０２８２】
条件(b)とは、Primaryオーディオストリームiの言語属性がデッキ情報と同じであることである。デッキ情報とは、再生装置の言語設定を示す情報であり、条件(b)を満たすか否かの判定は、STN＿tableに記述されたPrimaryオーディオストリームiのAudio＿language＿codeがPSR16の設定値と同じであるか否かの比較でなされる。【０２８３】
条件(c)とは、Primaryオーディオストリームiのチャネル属性がサラウンドであり、これを再生する能力が再生装置に存在することである。これを満たすか否かの判定は、PSR15と,AudioStreamのaudio＿presentation＿type、stream＿coding＿typeとの比較でなされる。【０２８４】
これらの複数の条件のうち、「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の順位を参照することで、最も優先順位が高い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に設定する(ステップＳ１０８)。【０２９２】
カレントプライマリオーディオストリームにおける再生区間がSubPlayItemによって規定されていれば、カレントプライマリオーディオストリームにおける再生区間を規定しているサブプレイアイテムがカレントサブプレイアイテムとして特定されることになる。【０２９３】
以上がカレントプライマリオーディオストリームを選択するためのストリーム選択プロシージャである。【０２９４】
続いて、セカンダリオーディオストリームを選択するためのストリーム選択プロシージャの処理手順について説明する。【０２９５】
図４５は、セカンダリオーディオストリームのストリーム選択プロシージャの処理手順を示すフローチャートである。ステップＳ１１１において、PSR14からセカンダリオーディオストリーム番号を取得し、ステップＳ１１２では、取得した番号のセカンダリオーディオストリームが条件(A)を満たすか否かを判定する。【０２９６】
条件(A):Comb＿info＿secondary＿video＿Secondary＿audioに規定されたセカンダリオーディオストリーム番号と、PSR14から取得したセカンダリオーディオストリーム番号との比較では、どの番号のセカンダリオーディオストリームと、カレントセカンダリビデオストリームとの組合せが許可されている。【０２９７】
この判定を経た後、ステップＳ１１３を実行する。ステップＳ１１３では、カレントプレイアイテムにおけるセカンダリオーディオストリームのSTN＿tableにおけるStream＿entryの個数が0であるか否かを判定するものである。もし、STN＿tableにおけるStream＿entryの個数が0であるなら、PSR14のセカンダリオーディオストリーム番号を維持する(ステップＳ１１６)。もしSTN＿tableにおけるStream＿entryの個数が0でなければ、ステップＳ１１４の判定を行う。【０２９８】
ステップＳ１１４では、セカンダリオーディオストリーム番号が、カレントプレイアイテムにおけるSTN＿tableのstream＿entry数以下であり、尚且つ、条件(A)を満たすかどうかを判定する。もし満たすなら、有効なセカンダリオーディオストリーム番号が既にPSR14に存在すると考えられるので、これを変化させない(ステップＳ１１７)。満たさないなら、カレントプレイアイテムについて最適なカレントセカンダリオーディオストリームを選択する(ステップＳ１１５)。【０２９９】
以上が、セカンダリオーディオストリームにおけるストリーム選択プロシージャについての説明である。【０３００】
図４６は、カレントプレイアイテムについて最適なカレントセカンダリオーディオストリームを選択する手順を示すフローチャートである。【０３０１】
ステップＳ１２１〜ステップＳ１２３は、任意のストリームについて、以下の条件が満たされているかのチェックを、STN＿tableにおける全てのstream＿entryに記述されているストリームに対して実行する。【０３０２】
条件(a):Comb＿info＿secondary＿video＿Secondary＿audioに規定されたセカンダリオーディオストリーム番号と、セカンダリオーディオストリームiの番号との比較では、セカンダリオーディオストリームiと、カレントセカンダリビデオストリームとの組合せが許可されている。【０３０３】
条件(b):カレントプライマリオーディオストリームのaudio＿language＿codeと、セカンダリオーディオストリームのaudio＿language＿codeとが一致している。【０３０４】
以上のチェックを、STN＿tableにおいて再生許可されている全てのセカンダリオーディオストリームに対して実行すれば、ステップＳ１２４を実行する。【０３０５】
ステップＳ１２４は、条件(a)を満たすセカンダリオーディオストリームが存在するか否かを判定する判定ステップである。存在しないなら0xFFとなるセカンダリオーディオストリーム番号をPSR14に設定する(ステップＳ１２５)。【０３０６】
条件(a)を満たすセカンダリオーディオストリームが存在するなら、ステップＳ１２６の判定を実行する。これは、条件(a)及び条件(b)を満たすセカンダリオーディオストリームが、少なくとも1つ存在するか否かを判定するというものである。存在するなら、条件(a)及び条件(b)を満たすストリームのうち、対応するStream＿EntryがSTN＿tableにおいて最初に位置するものを選択して、選択したセカンダリオーディオストリームのセカンダリオーディオストリーム番号を、PSR14に設定する(ステップＳ１２７)。【０３０７】
条件(a)及び条件(b)を満たすセカンダリオーディオストリームが存在しないなら、ステップＳ１２８の判定を実行する。これは、条件(a)を満たすセカンダリオーディオトリームが存在するか否かを判定するものである。もし存在するなら、条件(a)を満たすセカンダリオーディオストリームのうち、対応するStream＿EntryがSTN＿tableにおいて先頭順位に位置するものを選択して、選択したセカンダリオーディオストリームのセカンダリオーディオストリーム番号を、PSR14に設定する(ステップＳ１２９)。【０３０８】
カレントセカンダリオーディオストリームにおける再生区間がSubPlayItemによって規定されていれば、カレントセカンダリオーディオストリームにおける再生区間を規定しているサブプレイアイテムがカレントサブプレイアイテムとして特定されることになる。【０３０９】
以上のように本実施形態によれば、プライマリビデオストリーム用のプライマリオーディオストリーム、セカンダリビデオストリーム用のセカンダリオーディオストリームとしてそれぞれどれの再生を許可するかを、STN＿tableに規定しておき、このSTN＿tableに存在するstream＿entryからプライマリオーディオストリーム、セカンダリオーディオストリームをそれぞれ1つ選んで、これらのミキシング出力を行うので、ピクチャインピクチャの実行時において、本編の音声に、映画監督によるコメンタリが加わった合成音声を聴くことができる。【０３１０】
そうして選択されたプライマリオーディオストリーム、セカンダリオーディオストリームを包含しているAVクリップがサブプレイアイテムによって参照されている場合、かかるAVクリップがUnavailableクリップであると、再生が中断することになる。よって、カレントプライマリオーディオストリーム、カレントセカンダリオーディオストリームを包含しているAVクリップであって、サブプレイアイテム情報から参照されているもののダウンロードを急げば、再生が中断することはないのでスムーズな再生進行を確保することができる。【０３１１】
(第５実施形態)
本実施形態では、カレント字幕ストリームを選択するためのデータ構造と、再生装置における改良とを説明する。【０３１２】
始めに、STN＿tableにおける字幕のためのstream＿entryについて説明する。プライマリオーディオストリーム、セカンダリオーディオストリームはそれぞれ、プライマリビデオストリーム、セカンダリビデオストリームに割り当てられたが、字幕には、プレゼンテーショングラフィクスストリーム、テキスト字幕ストリームという区別はあるものの、プライマリビデオストリーム用、セカンダリビデオストリーム用という明確な区別は存在しない。【０３１３】
以降、PGtestSTストリームについてのstream＿entryについて説明する。図４７は、STN＿tableのうち、PGtestSTストリームに特に関連あるものを抜き出して描いた図である。この図によると、STN＿tableのうち、字幕表示に特に関連するのは、「number＿of＿PG＿textST＿streams＿entries[1]〜[n]」、「number＿of＿PiP＿PG＿textST＿stream＿entries＿plus」、「PGtestST＿stream＿entry」、「Secondary＿video＿Stream＿entry」内の「Comb＿info＿Secondary＿video＿PiP＿PG＿textST」であることがわかる。【０３１４】
「number＿of＿PG＿textST＿streams＿entries」は、ピクチャインピクチャを実行していない場合に、選択の対象となるPGtestSTストリームの個数を示す
「number＿of＿PiP＿PG＿textST＿stream＿entries＿plus」は、ピクチャインピクチャアプリケーションのため、STN＿tableに定義されているnumber＿of＿PG＿textST＿streams＿entriesに追加すべきプレゼンテーショングラフィクスストリーム及びテキスト字幕ストリームの個数を示す。このnumber＿of＿PG＿textST＿streams＿entriesと、number＿of＿PiP＿PG＿textST＿stream＿entries＿plusとの和は、255以下になる。【０３１５】
ここでnumber＿of＿PG＿textST＿streams＿entriesがn1である場合、1からn1までのストリーム番号の範囲が、PGテキスト字幕ストリームの範囲となるが、number＿of＿PiP＿PG＿textST＿stream＿entries＿plusがn2であれば、ピクチャインピクチャの実行時において、1からn1+n2までのストリーム番号の範囲が、PGテキスト字幕ストリームの範囲となる。つまり、number＿of＿PiP＿PG＿textST＿stream＿entries＿plusがSTN＿tableに記述されていれば、PGTextSTストリームのストリーム番号の範囲は、number＿of＿PiP＿PG＿textST＿stream＿entries＿plusに記述された個数だけ広がることになる。【０３１６】
非ピクチャインピクチャ時にあっては、PGtestSTストリームについてのstream＿entryのうち、1からn1までのものが選択の対象になり、ピクチャインピクチャ時にあっては、PGtestSTストリームについてのstream＿entryのうち、1からn1+n2までのものが選択の対象になる。予め断っておくが、ピクチャインピクチャが行われる場合であっても、プライマリビデオの字幕、セカンダリビデオの字幕がそれぞれ再生される訳ではない。ピクチャインピクチャで表示されるのは、プライマリビデオ用の字幕、セカンダリビデオ用の字幕のどちらか1つである。これは、プライマリビデオ用、セカンダリビデオ用の字幕を別々にBD-ROMに記録しておくとすると、再生装置には、グラフィクス用のデコーダが2つ必要になり、ハードウェアコストの増大をもたらすこと(i)、セカンダリビデオ用に字幕を縮小して表示したとしても、見づらくなるだけであること(ii)、という2つの理由による。【０３１７】
引出線hp1は、PG＿testST＿Stream＿entryの内部構成をクローズアップして示している。この引出線に示すように、PG＿testST＿Stream＿entryは、Stream＿entry,Stream＿Attributeを有していて、Stream＿entryの中に、再生が許可されているPGtestSTストリームのPIDが存在する。【０３１８】
引出線hp2は、「Secondary＿video＿Stream＿entry[1]」の内部構成をクローズアップして示している。この内部構成におけるComb＿info＿Secondary＿video＿PiP＿PG＿textSTには、PGtestSTストリームのうち、セカンダリビデオストリームとの組合せが許可されているものを一意に示している。【０３１９】
引出線hp3は、Comb＿info＿Secondary＿video＿PiP＿PG＿textSTの内部構成を示す。Comb＿info＿Secondary＿video＿PiP＿PG＿textSTは、各Secondaryビデオストリームごとに組合せ可能なPiP＿PG＿テキスト字幕ストリームの総数を示す「number＿of＿PiP＿PG＿textST＿stream＿ref＿entries」と、再生時に組合せることができるPiP＿PG＿テキスト字幕ストリームのストリーム番号を示す「PiP＿PG＿textST＿stream＿id＿ref[0]〜[n]」とからなる。【０３２０】
以上が、本実施形態における記録媒体の改良である。続いて、本実施形態における再生装置についての改良について説明する。字幕再生のための構成として、再生装置には、ピクチャインピクチャ実行時におけるカレントPGTextSTストリームのストリーム番号と、ピクチャインピクチャ非実行時におけるカレントPGTextSTストリームのストリーム番号とが、それぞれ別々にPSRセット２３に格納されている。【０３２１】
図４８（ａ）は、カレントPGtestSTストリームのストリーム番号が取りうる数値範囲の一例を示す図である。非ピクチャインピクチャ実行時において、カレントPGtestSTストリームのストリーム番号は、STN＿tableに記載されたPiP＿PG＿text＿ST＿stream＿numberをn1とすると、本図の上段に示すように、1からn1までの値をとる。【０３２２】
一方、ピクチャインピクチャ実行時におけるカレントPGtestSTストリームの番号は、PiP＿PG＿TextSTストリーム番号と呼ばれ、STN＿tableに記載されたPG＿text＿ST＿stream＿numberをn1、STN＿tableに記載されたnumber＿of＿PiP＿PG＿textST＿stream＿entries＿plusをn2とすると、本図の下段に示すように、PiP＿PG＿TextSTストリーム番号は1からn1+n2までの値をとる。【０３２３】
図４８（ｂ）は、PSR2のビットアサインの一例を示す図である。以降、PSR2における各ビットの意味合いについて述べる。disp＿s＿flag
PSR2のb31は、disp＿s＿flagであり、その1ビットの設定値は以下のように解釈される。【０３２４】
0b: 「PG textST ストリーム」と「PiP PG textST ストリーム」の両方を表示することは不可となることを示す。【０３２５】
1b: 「PG textST ストリーム」と「PiP PG textST ストリーム」の両方を表示することは可能となることを示す
disp＿s＿flagがオフになっている場合、PGテキスト字幕ストリーム選択のためのプロシージャを実行しない。PSR2におけるdisp＿s＿flagがオフになっていれば、カレントのPGテキスト字幕ストリームが存在しないため、図３４のステップＳ３４、Ｓ３５では、PGテキスト字幕ストリームのみを包含しているAVクリップは、ダウンロードの選択対象から除外する。PGテキスト字幕ストリームのみを包含しているAVクリップのダウンロードを省くことができるので、字幕がオフになっていれば、PGテキスト字幕ストリームのみを包含しているAVクリップが未ダウンロードであっても、再生を進行してゆくことができる。これにより、あるプレイアイテムから次のプレイアイテムの切り替えを高速に実現することができる。PiP＿PG＿textST＿valid＿flag
PSR2のb30は、PiP＿PG＿textST＿valid＿flagであり、その1ビットの設定値は以下のように解釈される。【０３２６】
0b: カレントプレイアイテム 表示中に Secondary ビデオストリームが表示されている場合、PSR2 で定義された PG TextST Stream Numberが用いられる。【０３２７】
1b: カレントプレイアイテム 表示中に Secondary ビデオストリームが表示されている場合、PSR2 で定義された PiP PG TextST Stream Numberが用いられる。【０３２８】
カレントプレイアイテム 表示中に Secondary ビデオストリームが表示されていないとき、PiP＿PG＿textST＿valid＿flag は BD-ROM再生装置の表示に影響しない。この場合、PSR2 で定義された PG TextST Stream Numberが用いられる。【０３２９】
PG TextST Stream Number:
PSR2のb0〜b11は、PG TextST Stream Numberであり、その12ビットの設定値は以下のように解釈される。【０３３０】
カレントプレイアイテム 表示中に Secondary ビデオストリームが表示されていない場合(Secondary ビデオストリームは表示されていない場合とは、PSR14 の disp＿v＿flag は 0b に設定されている状態をいう)、PSR2 における PG TextST Stream Numberの値は、カレントプレイアイテム の STN＿tableにおける PG TextST ストリーム項目の中から、PG ストリームと TextST ストリームのどちらが表示されるかを特定するために用いられる。【０３３１】
PiP PG TextST Stream Number:
PSR2のb16〜b27は、PiP PG TextST Stream Numberであり、その12ビットの設定値は以下のように解釈される。【０３３２】
カレントプレイアイテム 表示中に Secondary ビデオストリームが表示されていて、PSR2 の PiP＿PG＿textST＿valid＿flag が 1b に設定されている場合(ここでセカンダリビデオストリームの表示時とは、PSR14 の disp＿v＿flag は 1b に設定され、カレントプレイアイテム 表示中に PSR14 によって決定された Secondary ビデオストリームが表示される場合をいう。)、PSR2 における PiP PG TextST Stream Numberの値は、カレントプレイアイテム の STN＿table における PG TextST ストリーム項目の中から、PG ストリームと TextST ストリームのどちらが表示されるかを特定するために用いられる。【０３３３】
図４９は、カレントプレイアイテム変化時におけるカレントPGtestSTストリームの決定手順を示すフローチャートである。【０３３４】
ここで非ピクチャインピクチャのためのPGtestSTストリームのストリーム番号及びその取り扱いは、ピクチャインピクチャのためのPGtestSTストリームの選択を簡略にしたものに過ぎないから説明を省略する。本実施形態では、ピクチャインピクチャのためのPGtestSTストリームの番号について説明する。【０３３５】
ステップＳ１５１においてPSR2からカレントPiP＿PG＿TextSTストリーム番号を取得し、ステップＳ１５２において、カレントPiP＿PG＿TextSTストリーム番号は、プレゼンテーショングラフィクスストリームについてのものかテキスト字幕ストリームについてのものかを判定する。ステップＳ１５３は、カレントPiP＿PG＿TextSTストリーム番号に対応するプレゼンテーショングラフィクスストリームが、条件(A)、条件(B)、条件(C)を満たすか否かをチェックする。【０３３６】
ここで条件(A),条件(B)、条件(C)は、以下のように規定される。【０３３７】
条件(A)：カレントPiP＿PG＿TextSTストリーム番号から特定されるプレゼンテーショングラフィクスストリームをデコードする能力が再生装置に存在する。【０３３８】
条件(B)：特定された言語を再生する能力が再生装置に存在する。【０３３９】
条件(C)：PSR14におけるセカンダリビデオストリーム番号と、comb＿info＿Secondary＿video＿PiP＿textST()によるPGテキスト字幕ストリーム番号との比較では、カレントセカンダリビデオストリームと、カレントPiP＿PG＿TextSTストリーム番号から特定されるPGテキスト字幕ストリームとの組合せが許可されている。【０３４０】
一方ステップＳ１５４では、カレントPiP＿PG＿TextSTストリーム番号に対応するテキスト字幕ストリームが、条件(A)、条件(B)、条件(C)を満たすか否かをチェックするものである。【０３４１】
条件(A):カレントPiP＿PG＿TextSTストリーム番号のテキスト字幕ストリームのキャラクターコードをビットマップに展開する能力が再生装置に存在すること。かかる再生能力は、PSRセット２３におけるPSR30に示されている。【０３４２】
条件(B):カレントPiP＿PG＿TextSTストリーム番号のテキスト字幕ストリームの言語属性をサポートする能力が再生装置に存在すること。かかるサポート能力は、PSRセット２３におけるPSR48〜61に示されている。【０３４３】
条件(C):PSR14におけるセカンダリビデオストリーム番号と、comb＿info＿Secondary＿video＿PiP＿textST()によるPGテキスト字幕ストリーム番号との比較では、PSR14に格納されているカレントセカンダリビデオストリームと、カレントPiP＿PG＿TextSTストリーム番号から特定されるPGテキスト字幕ストリームとの組合せが許可されていること。【０３４４】
ここで、ある言語の字幕がテキスト字幕ストリームで表現されている場合、その言語のテキスト字幕ストリームを、“デコードすることができる”といえるには、その言語における文字コードを、ビットマップに展開する能力と、その言語の特性をサポートするサポート能力とが再生装置側に存在する必要がある。【０３４５】
英語、日本語、アラビア語を例にとってみると、英語の字幕表示は、“横書き”,“カーニング”,“合字・抱き字”という機能がサポートされて初めて、言語特性がサポートされていると判断することができる。【０３４６】
日本語の字幕表示は、“横書き”,“縦書き”,“行末禁則”,“ルビ”という機能がサポートされて初めて、言語特性がサポートされていると判断することができる。【０３４７】
アラビア語の字幕表示は、“右から左の描画”、“合字・抱き字”という機能がサポートされて初めて、言語特性がサポートされていると判断することができる。【０３４８】
ある言語のテキスト字幕ストリームをビットマップに展開することができ、その言語の特性をサポートすることができる場合、上記条件(A)、条件(B)は、満たされているということができる。その言語のテキスト字幕ストリームをビットマップに展開することができるが、その言語の特性をサポートすることができない場合、上記条件(B)は満たされず、条件(A)のみが、満たされているということができる。
以上の判定を経た後、ステップＳ１５５を実行する。ステップＳ１５５は、再生装置は、条件(Z)を満たすか否かを判定するものである
ここで条件(Z)とは、アンサポート言語の字幕を、再生することをユーザが意図していることであり、かかる意図は、PSRセット２３におけるPSR30に示されている。【０３４９】
その後、ステップＳ１５６の判定ステップを実行する。これは、カレントプレイアイテムのSTN＿tableにおけるnumber＿of＿PG＿textST＿streams＿entriesと、number＿of＿PiP＿PG＿textST＿stream＿entries＿plusとの和が=0であるか否かを判定するものである。STN＿tableに再生が許可されているPGTextSTストリームが存在しない場合、PSR2におけるPGTextSTストリームの番号を維持する(ステップＳ１５７)。カレントSTN＿tableにおいて再生が許可されているPGTextSTストリームが少なくとも1つ存在する場合、ステップＳ１５８を実行する。これは、カレントPiP＿PG＿TextSTストリーム番号の有効性を問うステップであり、カレントPiP＿PG＿TextSTストリーム番号がSTN＿tableにおけるstream＿entryの総数以下であり、且つ、条件(A)、条件(B)、条件(C)を満たすかどうかを判定する。【０３５０】
もし満たすなら、有効なPiP＿PG＿TextSTストリーム番号が既にPSR2に存在するとして、これを変化させない(ステップＳ１５９)。【０３５１】
もしステップＳ１５８で満たさないと判定されたなら、ステップＳ１６０の判定を実行する。これは、カレントPiP＿PG＿TextSTストリーム番号がSTN＿tableにおけるstream＿entryの総数以下であり、且つ、条件(A)を満たすかどうかを判定するものである。もし満たすなら、PSR2には、アンサポート言語のテキスト字幕のPiP＿PG＿TextSTストリーム番号が設定されているが、ユーザはアンサポート言語の再生を意図しているので、PSR2を変化させない(ステップＳ１６１)。ステップＳ１６０において満たさないと判定されたなら、カレントプレイアイテムについて最適なカレントPGテキスト字幕ストリームを選択する(ステップＳ１６２)。【０３５２】
以上が、PGTextSTストリームにおけるストリーム選択プロシージャについての説明である。【０３５３】
図５０は、カレントプレイアイテムについて最適なカレントPGTextSTストリームを選択する処理手順を示すフローチャートである。【０３５４】
ステップＳ１ ９０において、全てのPGTextSTストリームについて、条件(a)〜条件(d)を満たすかどうかをチェックする。【０３５５】
チェック対象となるプレゼンテーショングラフィクスストリームを、プレゼンテーショングラフィクスストリームiとした場合、条件(a)〜条件(d)は、以下のように規定される。【０３５６】
条件(a)：プレゼンテーショングラフィクスストリームiをデコードする能力が再生装置に存在する。【０３５７】
条件(b)：プレゼンテーショングラフィクスストリームiから特定された言語を再生する能力が再生装置に存在する。【０３５８】
条件(c)：PSR14におけるセカンダリビデオストリーム番号と、comb＿info＿Secondary＿video＿PiP＿textST()によるPGテキスト字幕ストリーム番号との比較では、カレントセカンダリビデオストリームと、プレゼンテーショングラフィクスストリームiとの組合せが許可されている。【０３５９】
条件(d):プレゼンテーショングラフィクスストリームiのPG＿language＿codeが、デッキ情報と一致している。ここで、デッキ情報とは、再生装置内のデッキ情報における言語設定を示すものであり、具体的には、PSRセット２３におけるPSR17を示す。【０３６０】
チェック対象となるテキスト字幕ストリームを、テキスト字幕ストリームiとした場合、条件(a)〜条件(d)は、以下のように規定される。【０３６１】
条件(a):テキスト字幕ストリームiのキャラクターコードをビットマップに展開する能力が再生装置に存在すること。【０３６２】
条件(b):テキスト字幕ストリームiの言語属性をサポートする能力が再生装置に存在すること。【０３６３】
条件(c):PSR14におけるセカンダリビデオストリーム番号と、comb＿info＿Secondary＿video＿PiP＿textST()によるPGテキスト字幕ストリームiの番号との比較では、カレントセカンダリビデオストリームと、PiP＿PG＿TextSTストリーム番号から特定されるテキスト字幕ストリームiとの組合せが許可されていること。【０３６４】
条件(d):テキスト字幕ストリームiのtextST＿language＿codeが、再生装置内のデッキ情報における言語設定と一致していること。【０３６５】
以上のチェックを経た後、ステップＳ１９１では、再生装置が、前のフローチャートで述べた条件(Z)(：アンサポート言語の再生)を満たすかどうかを判定する。みたさない場合、ステップＳ１９２において、条件(a)〜条件(d)を満たすPGTextSTストリームが存在するかを判定する。存在するなら、条件(a)〜条件(d)を満たすPGTextSTストリームのうち、対応するStream＿EntryがSTN＿tableにおいて先頭順位に位置するものを選択して、選択したPiP＿PG＿TextSTストリーム番号を、PSR2に設定する(ステップＳ１９３)。【０３６６】
存在しないなら、ステップＳ１９４において、より緩和された条件を満たすPGTextSTストリームが存在するか否かを判定する。緩和された条件とは、条件(a)、条件(b)、条件(c)の3つを満たすことであり、これを満たすPGTextSTストリームが存在するかが、ステップＳ１９４で判定される。存在するなら、条件(a)、条件(b)、条件(c)を満たすPiPPGtestSTストリームのうち、対応するStream＿EntryがSTN＿tableにおいて先頭順位に位置するものを選択して、選択したPiP＿PG＿TextSTストリーム番号を、PSR2に設定する(ステップＳ１９６)。【０３６７】
存在しないなら、0xFFFであるPiP＿PG＿TextSTストリーム番号をPSR2に設定する(ステップＳ１９５)。ステップＳ１９１において、条件(Z)を満たすと判定されたなら、ステップＳ１９７において、別の緩和された条件を満たすPGTextSTストリームが存在するかを判定する。別の緩和された条件とは、条件(a)、条件(c)、条件(d)を満たすものであり、ステップＳ１９８では、これらを満たすPGTextSTストリームが存在するかか否かが判定される。【０３６８】
もし存在するなら、条件(a)、条件(c)、条件(d)を満たすPiP＿PGTextSTストリームのうち、対応するStream＿EntryがSTN＿tableの最初に位置するものを選択して、選択したもののPiP＿PG＿TextSTストリーム番号を、PSR2に設定する(ステップＳ１９８)。【０３６９】
存在しない場合、ステップＳ１９９において、条件(a)、条件(c)を満たすPGTextSTストリームが存在するかを判定する。存在する場合、条件(a)、条件(c)を満たすPiP＿PGtestSTストリームのうち、対応するStream＿EntryがSTN＿tableにおいて先頭順位に位置するものを選択して、選択したもののPiP＿PG＿TextSTストリーム番号を、カレントPiP＿PG＿TextSTストリームのストリーム番号としてPSR2に設定する(ステップＳ２００)。存在しない場合、0xFFFをPSR2に設定する(ステップＳ２０１)。【０３７０】
カレントPiP＿PG＿TextSTストリーム番号における再生区間は、必ずSubPlayItemによって規定されているので、カレントPiP＿PG＿TextSTストリーム番号における再生区間を規定しているサブプレイアイテムをカレントサブプレイアイテムとして特定されることになる。【０３７１】
以上が、カレントPGTextSTストリームの選択手順についての説明である。【０３７２】
以上のように本実施形態によれば、ピクチャインピクチャが有効である場合、number＿of＿PG＿textST＿streams＿entriesと、number＿of＿PiP＿PG＿textST＿stream＿entries＿plusとを足しあわせた数値範囲のの中から、PiP＿PG＿TextSTストリーム番号が選ばれ、このPiP＿PG＿TextSTストリーム番号に対応するプレゼンテーショングラフィクスストリーム又はテキスト字幕ストリームを再生するので、あるときは、プライマリビデオストリームに適した字幕を動画像と共に再生させ、またあるときは、セカンダリビデオストリームに適した字幕を動画像と共に再生させることができ、字幕選択の幅を広げることができる。【０３７３】
そうして選択された字幕に対応するテキスト字幕ストリームを包含しているAVクリップがサブプレイアイテムによって参照されている場合、かかるAVクリップがUnavailableクリップであると、再生が中断することになる。よって、カレントテキスト字幕ストリームを包含しているAVクリップであって、サブプレイアイテム情報から参照されているもののダウンロードを急げば、再生が中断することはないのでスムーズな再生進行を確保することができる。  (第６実施形態)
本実施形態では、仮想パッケージの構築について詳しく説明する。【０３７４】
先ず始めに、仮想パッケージの基本部分となるBD-ROMのデータ構造について説明する。【０３７５】
図５１は、BD-ROMの構成の一例を示す図である。【０３７６】
本図の第４段目にBD-ROM１００を示し、第３段目にBD-ROM上のトラック２０２を示す。本図のトラック２０２は、BD-ROM１００の内周から外周にかけて螺旋状に形成されているトラック２０２を横方向に引き伸ばして描画している。BD-ROM１００は他の光ディスク、例えばDVDやCDなどと同様にその内周から外周に向けてらせん状に記録領域を持ち、内周のリードインと外周のリードアウトの間に論理データを記録できる論理アドレス空間を有している。また、リードインの内側にはBCA（Burst  Cutting  Area）と呼ばれるドライブでしか読み出せない特別な領域がある。この領域はアプリケーションから読み出せないため、例えば著作権保護技術などに利用されることがよくある。【０３７７】
「論理アドレス空間」には、先頭からファイルシステムのボリューム情報が記録され、続いて映像データなどのアプリケーションデータが記録されている。ファイルシステムとはディスク上のデータをディレクトリまたはファイルと呼ばれる単位で表現する仕組みであり、BD-ROM１００の場合ではUDF（Universal  Disc  Format）によって記録される。日常使っているPC（パーソナルコンピュータ）の場合でも、FATまたはNTFSと呼ばれるファイルシステムを通すことにより、ディレクトリやファイルという構造でハードディスクに記録されたデータがコンピュータ上で表現され、ユーザビリティを高めている。このファイルシステムにより、通常のPCと同じように記録されている論理データをディレクトリ、ファイル構造を使って読み出しする事が可能になっている。【０３７８】
BD-ROM１００上のディレクトリ、ファイル構造は、ルートディレクトリ（ROOT）直下にBDMVディレクトリが置かれている。BDMVディレクトリはBD-ROM１００で扱うAVコンテンツや管理情報などのデータが記録されているディレクトリである。BDMVディレクトリの配下には、タイトルを構成するインデックステーブルが定義されたインデックスファイル（index.bdmv）、動的なシナリオを定義するムービーオブジェクトファイル（MovieObject.bdmv）と、PLAYLISTディレクトリ、CLIPINFディレクトリ、STREAMディレクトリ、BDJOディレクトリ、JARディレクトリが存在する。【０３７９】
これらのディレクトリには、映像・音声といったAVコンテンツが多重化され格納されたAVクリップ（XXX.M２TS）、AVクリップの管理情報を格納したクリップ情報ファイル（XXX.CLPI)、AVクリップの論理的な再生経路を定義したプレイリストファイル（YYY.MPLS）が存在する。【０３８０】
これらの他にも、以下のファイルが存在する。つまりどのJARファイルを実行するかおよびその実行方法について定義したBDJオブジェクトファイル（BBB.BDJO）、BD-Jアプリケーションを格納したJARファイル（AAA.JAR)が存在する。これらのファイルは、それぞれ前述のSTREAMディレクトリ、CLIPINFディレクトリ、PLAYLISTディレクトリ、BDJOディレクトリ、JARディレクトリの下に配置される。【０３８１】
以下に、BDMVディレクトリ配下に置かれる各ファイルのデータ構造について説明する。まずインデックスファイル（Index.bdmv）について説明する。インデックスファイルはインデックステーブルを持つ。【０３８２】
図５２は、インデックスファイルの内部構成の一例を示す図である。【０３８３】
「インデックステーブル」は、BD-ROMに格納されるすべてのタイトル、トップメニュー、FirstPlayといったタイトル構成を定義する最上位層のテーブルである。このテーブルには、全てのタイトル、トップメニュー、FirstPlayから最初に実行されるムービーオブジェクトファイルに含まれるムービーオブジェクトが指定されている。BD-ROMの再生機は、タイトルあるいはメニューが呼び出されるたびにインデックステーブルを参照して、所定のムービーオブジェクトもしくはBDJオブジェクトを実行する。ここで、FirstPlayとは、コンテンツプロバイダによって設定されるもので、ディスク投入時に自動実行されるムービーオブジェクトまたはBDJオブジェクトが設定されている。また、トップメニューは、リモコンでのユーザ操作で、「メニューに戻る」というようなコマンドが実行されるときに、呼び出されるムービーオブジェクト、BDJオブジェクトが指定されている。プログレッシブ属性で再生されるべきプレイリストは、必ずBD-Jオブジェクトによって再生されねばならない。【０３８４】
以上が、仮想パッケージの前提となるBD-ROMのデータ構造である。【０３８５】
次に、図５３を参照しながらローカルストレージ１０３に格納されるアップデートキットのデータ構造について説明する。【０３８６】
図５３は、ローカルストレージ１０３に格納されるアップデートキットの内部構成の一例を示す図である。【０３８７】
ローカルストレージ１０３に格納されるアップデートキットは、本図に示すように、追加コンテンツ格納ディレクトリ、OrgIDディレクトリ、DiscIDディレクトリと、マージ管理情報ファイル（MERGE.XML）、署名情報ファイル（MERGE.SF）、追加コンテンツデータファイル（CCC.MPL、VVV.M２T、VVV.CLPなど）を含む。追加コンテンツ領域ルートディレクトリは、ローカルストレージ１０３のルートディレクトリの直下に存在し、追加コンテンツ領域のルートを示すディレクトリで、ディレクトリ名配布媒体文字以内の固定値（BD＿BUDA）である。【０３８８】
「OrgIDディレクトリ」は、BD-ROM記録層上のBD管理情報（インデックスファイル）に記載されている、映画作品のプロバイダを特定する３２bitの識別子（OrganizationID）を１６進表記で表した、８文字の名前のディレクトリである。また、OrganizationIDの先頭の連続する０は、ディレクトリの名前から省略する。例えば、OrganizationIDが０x００００００１Aの場合は、ディレクトリの名前は"１A"となる。【０３８９】
「DiscIDディレクトリ」は、BD-ROM記録層上のBD管理情報（インデックスファイル）に記載されている、BD-ROM記録層を特定する１２８bitの識別子（DiscID）を先頭から３２bitずつ４分割し、それぞれを１６進表記で表したディレクトリである。また、OrganizationIDと同様にDiscIDの先頭の連続する０は、ディレクトリの名前から省略する。【０３９０】
DiscIDディレクトリの配下には、マージ管理情報ファイル、署名情報ファイル、追加コンテンツデータファイルが存在する。【０３９１】
「マージ管理情報ファイル（MERGE.XML）」は、仮想パッケージを構成するためのローカルストレージに記録される各ファイル格納位置情報と、仮想パッケージ上でそれらのファイルへアクセスするための仮想パス情報から構成され、DiscIDディレクトリ直下に保存される。【０３９２】
「署名情報ファイル」は、マージ管理情報ファイルに対するプロバイダの電子的な署名を示すファイルであり、MERGE.SFというファイル名でDiscIDディレクトリ直下に保存される。電子的な署名は、一般的に改ざん防止が必要な情報に対してハッシュ値を計算し、ハッシュ値をなんらかの秘密鍵を用いて暗号化したものを用いる。本実施形態の署名情報ファイルでは、BD-ROM記録層上にあるマージ証明書中の公開鍵に対応する秘密鍵を利用して、マージ管理情報ファイルのハッシュ値が暗号化されている。【０３９３】
「マージ証明書」は、マージ管理情報ファイルの認証に利用する証明書で、プロバイダが公開する公開鍵が含まれる。プロバイダが提供するマージ証明書は、BD-ROM記録層上にbd.certというファイル名で保存されている。マージ証明書のファイル形式の一例としてはX.５０９を利用することができる。【０３９４】
「追加コンテンツデータファイル」は、BD-ROM記録層に記録されたオリジナルのコンテンツに対し、追加/更新するファイル群である。ここには、プレイリストファイル、AVクリップなどが記録される。【０３９５】
図５４は、マージ管理情報ファイルの内容と、その内容を元にBD-ROMのファイルとアップデートキットのファイルとから、仮想パッケージを構築する過程の一例を示す図である。【０３９６】
図５４の左上は、BD-ROMのディレクトリ・ファイル構成を示す。本図の左下は、アップデートキットのディレクトリ・ファイル構成を示す。【０３９７】
図５４の右下は、マージ管理情報ファイルの内容を示す。マニフェストファイルは、仮想パッケージを構成するローカルストレージにおける「ローカルストレージパス」と、仮想パッケージ上でそれらのファイルへアクセスするための「仮想パッケージパス」と、「プログレッシブ属性」から構成される。プログレッシブ属性は、仮想パッケージを構築する前に、そのファイルがなくても良いことを示す。【０３９８】
ローカルストレージパスの一例として、本図では、１/１/CCC.MPL、１/１/VVV.M２T、１/１/VVV.CLP、１/１/SSS.M２T、１/１/SSS.CLPが記述されている。BD＿BUMFディレクトリから追加コンテンツデータファイルへのパスが明記されている。【０３９９】
一方、仮想パッケージパスとして、BDMV/PLAYLIST/CCC.MPLS、BDMV/STREAM/VVV.M２TS、BDMV/CLIPINF/VVV.CLPI、BDMV/STREAM/SSS.M２TS、BDMV/CLIPINF/SSS.CLPIが記述されている。【０４００】
図５４の右上は、このマニフェストファイルによって生成される仮想パッケージを示す。ローカルストレージパスにおいて、１/１/CCC.MPL、１/１/VVV.M２T、１/１/VVV.CLP、１/１/SSS.M２T、１/１/SSS.CLPに存在するファイルが、BDMV/PLAYLIST/CCC.MPLS、BDMV/STREAM/VVV.M２TS、BDMV/CLIPINF/VVV.CLPI、BDMV/STREAM/SSS.M２TS、BDMV/CLIPINF/SSS.CLPIに配置されるように、仮想的にディレクトリ・ファイル構成が変更される。こうすることで、BD-ROMにはないVVV.CLPI、VVV.M２TS、SSS.CLPI、SSS.M２TSが、仮想パッケージでは存在するかの如く取り扱われることになる。【０４０１】
マージ管理情報に基づき、仮想パッケージが生成されれば、ローカルストレージ上のこれらのファイルは、このマージ管理情報におけるパス情報でアクセスすることができる。このとき、プログレッシブ属性が付与されているSSS.M２TSにおいては、仮想パッケージが構築される前に、ローカルストレージにダウンロードが完了している必要はない。仮想パッケージが構築された後、必要になる段階でダウンロードしても良い。
よって、アップデートキットのダウンロードにあたって、ローカルストレージへの書き込みの順序は、
マージ管理情報ファイル→プレイリスト情報→複数クリップ情報→複数AVクリップ
となる。ここでプレイリスト情報−複数のクリップ情報の書き込みが完了した段階で、仮想パッケージの構築は可能になる。何故なら、AVクリップをDisable状態として扱えば、足りるからである。【０４０２】
以上のように本実施形態によれば、サブプレイアイテムを、仮想的なファイルシステムを通じて、システムターゲットデコーダに供給することができる。（第６実施形態）
本実施形態では、PGストリームプレイリストを実現するアップデートキットを作成するためのオーサリングシステムについての説明する。本図に示すように、オーサリングシステムは、ストレージ３００a,b、素材制作部３０１、シナリオ生成部３０２、BD-J制作部３０３、多重化処理部３０４、フォーマット処理部から構成される。【０４０３】
図５５は、オーサリングシステムの一例を示す図である。【０４０４】
ストレージ３００a,b,cは、それぞれ、ROMシナリオデータ、ROMディスクイメージのバージョン１(ver.1)、ROMディスクイメージのバージョン２(ver.2)を格納している。【０４０５】
素材制作部３０１は、ビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム、インタラクティブグラフィックストリームなどの各ストリームを作成する。素材制作部３０１は、非圧縮のビットマップなどの画像イメージをMPEG４-AVCやMPEG２などの圧縮方式に従い符号化することでビデオストリームを作成する。また素材制作部３０１は、非圧縮のLinearPCM音声などをAC３などの圧縮方式に従い符号化することでオーディオストリームを作成する。素材制作部３０１は、字幕イメージと表示タイミング、およびフェードイン/フェードアウトなどの字幕の効果を含む字幕情報ファイルを元にして、字幕ストリームであるプレゼンテーショングラフィックスストリームを作成する。素材制作部３０１は、メニューに使うビットマップイメージと、メニューに配置されるボタンの遷移や表示効果を記載したメニューファイルを元にして、メニュー画面を構成するインタラクティブグラフィックスストリームを作成する。【０４０６】
シナリオ生成部３０２は、素材制作部３０１で作成した各ストリームの情報や、オーサリングスタッフからのGUIを経由した操作にしたがって、シナリオを作成する。ここで言うシナリオは、インデックスファイル、ムービーオブジェクトファイル、プレイリストファイルなどのファイルがそれにあたる。また、シナリオ生成部３０２は、多重化処理を実現するための各AVクリップがどのストリームから構成されるかを記述したパラメータファイルを作成する。【０４０７】
BD-J制作部３０３は、BD-Jアプリケーションをプログラミングする手段である。GUI等のユーザインターフェースを通じて、ユーザからの要求に従って、BD-Jアプリケーションプログラムのソースコードを作成し、BD-Jアプリケーションを作成する。【０４０８】
多重化処理部３０４は、ROMシナリオデータに記述されているビデオ、オーディオ、字幕、ボタンなどの複数のストリームを多重化して、MPEG２-TS形式のAVクリップを作成する。このとき、AVクリップと対になるクリップ情報ファイルも同時に作成する。多重化処理部３０４によるクリップ情報ファイル内の生成は、以下の方法で行われる。多重化処理部３０４はAVクリップを作成と同時にエントリマップを作成する。より具体的には、素材制作部３０１で生成された各ストリームにおいて、含まれるビデオストリームがMPEG２であればIピクチャ、MPEG４-AVCであればIピクチャかIDRピクチャ、VC-１であればIピクチャが何処に存在するかを検出し、前述の各ピクチャの表示時刻と、MPEG２-TSとなっているAVクリップの何パケット目のソースパケットに前述の各ピクチャの先頭データが入っているかを対応付けたエントリポイントをエントリマップに登録していく。AVクリップに含まれるビデオストリームが、Primaryビデオ・Secondaryビデオの２種類がある場合は、どちらのエントリマップも同時に作成していく。多重化処理部３０４は、自ら生成したエントリマップと、AVクリップに含まれるストリーム毎の音声属性、映像属性などを示す属性情報をペアにしてクリップ情報ファイルを作成する。【０４０９】
フォーマット処理部３０５は、シナリオ生成部３０２で生成したROMシナリオデータと、BD-J制作部３０３で制作したBD-Jアプリケーション、多重化処理部２６０４で生成したAVクリップやクリップ情報ファイルや、これまでの実施形態で説明したフォーマットでファイルやディレクトリを配置し、UDFのフォーマットでディスクイメージを作成する。生成したディスクイメージをBD-ROMプレス用データに変換し、このデータに対してプレス工程を行うことで、BD-ROMの製造が可能となる。【０４１０】
アップデートキットを作成するには、二つのディスクイメージを用意する。１つはBD-ROMに格納されるディスクイメージであり、も第１の特徴つは仮想パッケージ構築後のディスクイメージである。【０４１１】
差分抽出部３０６は、ストレージ３００a,bに格納された二つのROMディスクイメージをコンペアして、差分データを抽出する。例えば、オリジナルのディスクイメージになかったファイルや、バイナリコンペアしてアップデートされているファイルなどを抽出する。【０４１２】
アップデートキット制作部３０７は、差分抽出部３０６を元に前述で説明したアップデートキットのデータフォーマットに合うようにマージ管理情報ファイルや署名情報ファイルを作成し、ファイルやディレクトリを配置する。【０４１３】
図５６は、ROMディスクイメージ、アップデートキットイメージの作成方法について説明する。【０４１４】
ステップS２１１において、素材制作部３０１はビデオストリーム、オーディオストリーム、IGストリーム、PGストリームを生成する。【０４１５】
ステップS２１２において、シナリオ生成部３０２は、インデックスファイル、ムービーオブジェクトファイル、プレイリストファイルなど再生シナリオを記述するROMシナリオデータを作成する。【０４１６】
ステップS２１３において、BD-J制作部３０３は、BD-Jアプリケーションのプログラムを作成する。【０４１７】
ステップS２１４において、多重化処理部３０４はROMシナリオデータを元にAVクリップとクリップ情報ファイルを作成する。【０４１８】
ステップS２１５において、フォーマット処理部３０７は、ROMシナリオデータ、変形AVクリップ、クリップ情報ファイル、復元バイトコードデータを、これまでの実施形態で述べたファイル・ディレクトリ構造に並び替え、ROMディスクイメージを作成する。【０４１９】
ステップS２２１において、差分抽出部３０６は二つのディスクイメージを比較して差分データを抽出する。【０４２０】
ステップS２２２において、アップデートキット制作部３０７は、インデックスファイル、ムービーオブジェクトファイル、プレイリストファイルなど再生シナリオを記述するROMシナリオデータを作成する。【０４２１】
ステップS２２３において、BD-J制作部３０３は、BD-Jアプリケーションのプログラムを作成する。【０４２２】
ステップS２２４において、多重化処理部３０４はROMシナリオデータを元にAVクリップとクリップ情報ファイルを作成する。【０４２３】
ステップS２２５において、フォーマット処理部３０７は、差分データをアップデートキットのデータフォーマットに合うように変換する。ステップＳ２２６において、マージ管理情報ファイルや署名情報ファイルを作成し、アップデートキット内に配置する。【０４２４】
(備考)
以上、本願の出願時点において、出願人が知り得る最良の実施形態について説明したが、以下に示す技術的トピックについては、更なる改良や変更実施を加えることができる。各実施形態に示した通り実施するか、これらの改良・変更を施すか否かは、何れも任意的であり、実施する者の主観によることは留意されたい。【０４２５】
(プログラミング言語の適用範囲)
上記実施形態では、仮想マシンのプログラミング言語としてJava（TM）を利用したが、Java（TM）ではなく、UNIX（TM） OSなどで使われているB-Shellや、Perl Script、ECMA Scriptなど他のプログラミング言語であっても良い。【０４２６】
（リアルタイムレコーディング）
再生装置１０１は、リアルタイムレコーディングを行うことで、クリップファイルをローカルストレージに記録してもよい。この際、AVストリームは、アナログ入力信号を記録装置がセルフエンコードすることにより得られたトランスポートストリームであってもよいし、記録装置がデジタル入力したトランスポートストリームをパーシャル化することで得られるトランスポートストリームであってもよい。【０４２７】
リアルタイムレコーディングにあたって上記装置は、AVストリームの記録と共に、メモリ上でクリップ情報やプレイリスト情報を生成する処理を行うが、この際、上述した各実施形態に記載したクリップ情報、プレイリスト情報をメモリ上で生成する。そしてAVストリームの記録を終えた後、生成されたクリップ情報、プレイリスト情報を記録媒体に書き込む。こうすることで、オーサリングシステムを用いずとも、家庭用の記録装置や、記録装置としての機能を具備したパーソナルコンピュータにて、各実施形態に示したクリップ情報、プレイリスト情報を作成することができる。そうして作成されたAVストリーム、クリップ情報、プレイリスト情報を、ライトワンス型の記録媒体に書き込んでもよい。【０４２８】
(AV再生の対象)
AV再生の対象は、デジタルストリーム、マップ情報、プレイリスト情報から構成されるコンテンツであるなら、BD-ROMに規定されたものに限らない。デジタルストリームは、MPEG2,MPEG4-AVC等の符号化方式で符号化されたビデオストリーム、オーディオストリームを多重化することで、得られた多重化ストリームであり、DVD Video-RecordingではVOBと呼ばれる。【０４２９】
マップ情報は、上述したビデオストリームにおけるアクセスユニット(独立復号可能な再生単位をいう)のアドレス情報と、ビデオストリームの再生時間軸における再生時刻との対応を示す情報であり、DVD Video-RecordingではTime Mapと呼ばれる。【０４３０】
プレイリスト情報は、開始点たる時刻情報と、終了点たる時刻情報との組みにより、1つ以上の再生区間を定義する情報である。【０４３１】
(制御手順の実現)
各実施形態においてフローチャートを引用して説明した制御手順や、機能的な構成要素による制御手順は、ハードウェア資源を用いて具体的に実現されていることから、自然法則を利用した技術的思想の創作といえ、“プログラムの発明”としての成立要件を満たす。【０４３２】
・クリップファイルのダウンロードやDataStarvedイベントの出力を行うアプリケーションプログラムの生産形態
クリップファイルのダウンロードやDataStarvedイベントの出力を行うアプリケーションプログラムは、以下のようにして作ることができる。先ず初めに、ソフトウェア開発者は、プログラミング言語を用いて、各フローチャートや、機能的な構成要素を実現するようなソースプログラムを記述する。この記述にあたって、ソフトウェア開発者は、プログラミング言語の構文に従い、クラス構造体や変数、配列変数、外部関数のコールを用いて、各フローチャートや、機能的な構成要素を具現するソースプログラムを記述する。この際、Java言語でのプログラムのための様々なAPIコールを使用する。【０４３３】
記述されたソースプログラムは、ファイルとしてコンパイラに与えられる。コンパイラは、これらのソースプログラムを翻訳してオブジェクトプログラムを生成する。【０４３４】
コンパイラによる翻訳は、構文解析、最適化、資源割付、コード生成といった過程からなる。構文解析では、ソースプログラムの字句解析、構文解析および意味解析を行い、ソースプログラムを中間プログラムに変換する。最適化では、中間プログラムに対して、基本ブロック化、制御フロー解析、データフロー解析という作業を行う。資源割付では、ターゲットとなるプロセッサの命令セットへの適合を図るため、中間プログラム中の変数をターゲットとなるプロセッサのプロセッサが有しているレジスタまたはメモリに割り付ける。コード生成では、中間プログラム内の各中間命令を、プログラムコードに変換し、オブジェクトプログラムを得る。【０４３５】
ここで生成されたオブジェクトプログラムは、各実施形態に示したフローチャートの各ステップや、機能的構成要素の個々の手順を、コンピュータに実行させるような1つ以上のプログラムコードから構成される。ここでプログラムコードは、プロセッサのネィティブコード、JAVAバイトコードというように、様々な種類がある。プログラムコードによる各ステップの実現には、様々な態様がある。外部関数を利用して、各ステップを実現することができる場合、この外部関数をコールするコール文が、プログラムコードになる。また、1つのステップを実現するようなプログラムコードが、別々のオブジェクトプログラムに帰属することもある。命令種が制限されているRISCプロセッサでは、算術演算命令や論理演算命令、分岐命令等を組合せることで、フローチャートの各ステップを実現してもよい。【０４３６】
オブジェクトプログラムが生成されるとプログラマはこれらに対してリンカを起動する。リンカはこれらのオブジェクトプログラムや、関連するライブラリプログラムをメモリ空間に割り当て、これらを１つに結合して、ロードモジュールを生成する。こうして生成されるロードモジュールは、コンピュータによる読み取りを前提にしたものであり、各フローチャートに示した処理手順や機能的な構成要素の処理手順を、コンピュータに実行させるものである。以上の処理を経て、クリップファイルのダウンロードやDataStarvedイベントの出力を行うアプリケーションプログラムを作ることができる。こうして作成したプログラムをコンピュータ読取可能な記録媒体に記録してユーザに供給してもよい。【０４３７】
(システムLSI化)
再生装置１０１を構成するハードウェアのうち、機構的な構成要素(BDドライブ)、大容量のメモリによって実装される構成要素(ビデオプレーン、グラフィクスプレーン)を除いた、論理素子を主要部とするシステムターゲットデコーダやBD-J処理部の部分を一体化してシステムLSIとして構成することが望ましい。何故なら、論理素子を主要部とする部分は、高密度に集積化することができるからである。【０４３８】
システムLSIとは、高密度基板上にベアチップを実装し、パッケージングしたものをいう。複数個のベアチップを高密度基板上に実装し、パッケージングすることにより、あたかも1つのLSIのような外形構造を複数個のベアチップに持たせたものも、システムLSIに含まれる(このようなシステムLSIは、マルチチップモジュールと呼ばれる。)。【０４３９】
ここでパッケージの種別に着目するとシステムLSIには、QFP(クッド フラッド アレイ)、PGA(ピン グリッド アレイ)という種別がある。QFPは、パッケージの四側面にピンが取り付けられたシステムLSIである。PGAは、底面全体に、多くのピンが取り付けられたシステムLSIである。【０４４０】
これらのピンは、他の回路とのインターフェイスとしての役割を担っている。システムLSIにおけるピンには、こうしたインターフェイスの役割が存在するので、システムLSIにおけるこれらのピンに、他の回路を接続することにより、システムLSIは、再生装置１０１の中核としての役割を果たす。【０４４１】
かかるシステムLSIは、再生装置１０１は勿論のこと、TVやゲーム、パソコン、ワンセグ携帯等、映像再生を扱う様々な機器に組込みが可能であり、再生装置の用途を多いに広げることができる。【０４４２】
エレメンタバッファやビデオデコーダ、オーディオデコーダ、グラフィクスデコーダをも、一体のシステムLSIにする場合、システムLSIのアーキテクチャは、Uniphierアーキテクチャに準拠させるのが望ましい。【０４４３】
Uniphierアーキテクチャに準拠したシステムLSIは、以下の回路ブロックから構成される。【０４４４】
・データ並列プロセッサDPP
これは、複数の要素プロセッサが同一動作するSIMD型プロセッサであり、各要素プロセッサに内蔵されている演算器を、1つの命令で同時動作させることで、ピクチャを構成する複数画素に対するデコード処理の並列化を図る。【０４４５】
・命令並列プロセッサIPP
これは、命令RAM、命令キャッシュ、データRAM、データキャッシュからなる「Local Memory Controller」、命令フェッチ部、デコーダ、実行ユニット、レジスタファイルからなる「Processing Unit部」、複数アプリケーションの並列実行をProcessing Unit部に行わせる「Virtual Multi Processor Unit部」で構成される。【０４４６】
・MPUブロック
これは、ARMコア、外部バスインターフェイス(Bus Control Unit:BCU)、DMAコントローラ、タイマー、ベクタ割込コントローラといった周辺回路、UART、GPIO(General Purpose Input Output)、同期シリアルインターフェイスなどの周辺インターフェイスで構成される。【０４４７】
・ストリームI/Oブロック
これは、USBインターフェイスやATA Packetインターフェイスを介して、外部バス上に接続されたドライブ装置、ハードリムーバブルメディアドライブ装置、SDメモリカードドライブ装置とのデータ入出力を行う。【０４４８】
・AVI/Oブロック
これは、オーディオ入出力、ビデオ入出力、OSDコントローラで構成され、テレビ、AVアンプとのデータ入出力を行う。【０４４９】
・メモリ制御ブロック
これは、外部バスを介して接続されたSD-RAMの読み書きを実現するブロックであり、各ブロック間の内部接続を制御する内部バス接続部、システムLSI外部に接続されたSD-RAMとのデータ転送を行うアクセス制御部、各ブロックからのSD-RAMのアクセス要求を調整するアクセススケジュール部からなる。【０４５０】
具体的な生産手順の詳細は以下のものになる。まず各実施形態に示した構成図を基に、システムLSIとすべき部分の回路図を作成し、回路素子やIC,LSIを用いて、構成図における構成要素を具現化する。【０４５１】
そうして、各構成要素を具現化してゆけば、回路素子やIC,LSI間を接続するバスやその周辺回路、外部とのインターフェイス等を規定する。更には、接続線、電源ライン、グランドライン、クロック信号線等も規定してゆく。この規定にあたって、LSIのスペックを考慮して各構成要素の動作タイミングを調整したり、各構成要素に必要なバンド幅を保証する等の調整を加えながら、回路図を完成させてゆく。【０４５２】
回路図が完成すれば、実装設計を行う。実装設計とは、回路設計によって作成された回路図上の部品(回路素子やIC,LSI)を基板上のどこへ配置するか、あるいは、回路図上の接続線を、基板上にどのように配線するかを決定する基板レイアウトの作成作業である。【０４５３】
こうして実装設計が行われ、基板上のレイアウトが確定すれば、実装設計結果をCAMデータに変換して、NC工作機械等の設備に出力する。NC工作機械は、このCAMデータを基に、SoC実装やSiP実装を行う。SoC(System on chip)実装とは、1チップ上に複数の回路を焼き付ける技術である。SiP(System in Package)実装とは、複数チップを樹脂等で1パッケージにする技術である。以上の過程を経て、本発明に係るシステムLSIは、各実施形態に示した再生装置１０１の内部構成図を基に作ることができる。【０４５４】
尚、上述のようにして生成される集積回路は、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。【０４５５】
FPGAを用いてシステムLSIを実現した場合は、多数のロジックエレメントが格子状に配置されており、LUT(Look Up Table)に記載されている入出力の組合せに基づき、縦・横の配線をつなぐことにより、各実施形態に示したハードウェア構成を実現することができる。LUTは、SRAMに記憶されており、かかるSRAMの内容は、電源断により消滅するので、かかるFPGAの利用時には、コンフィグ情報の定義により、各実施形態に示したハードウェア構成を実現するLUTを、SRAMに書き込ませる必要がある。
【産業上の利用可能性】
【０４５６】
本発明に係る再生装置は、ストリーミングライクな再生機能を効率的に行い、ユーザに長いダウンロード時間を与えずにすむので、より魅力的な映画タイトルなどの動画コンテンツを市場に供給することができ、映画市場や民生機器市場を活性化させることができる。故に本発明に係る再生装置は、映画産業や民生機器産業において高い利用可能性をもつ
【図１】
2009101787.tif 000003
【図２】
2009101787.tif 000004
【図３】
2009101787.tif 000005
【図４】
2009101787.tif 000006
【図５】
2009101787.tif 000007
【図６】
2009101787.tif 000008
【図７】
2009101787.tif 000009
【図８】
2009101787.tif 000010
【図９】
2009101787.tif 000011
【図１０】
2009101787.tif 000012
【図１１】
2009101787.tif 000013
【図１２】
2009101787.tif 000014
【図１３】
2009101787.tif 000015
【図１４】
2009101787.tif 000016
【図１５】
2009101787.tif 000017
【図１６】
2009101787.tif 000018
【図１７】
2009101787.tif 000019
【図１８】
2009101787.tif 000020
【図１９】
2009101787.tif 000021
【図２０】
2009101787.tif 000022
【図２１】
2009101787.tif 000023
【図２２】
2009101787.tif 000024
【図２３】
2009101787.tif 000025
【図２４】
2009101787.tif 000026
【図２５】
2009101787.tif 000027
【図２６】
2009101787.tif 000028
【図２７】
2009101787.tif 000029
【図２８】
2009101787.tif 000030
【図２９】
2009101787.tif 000031
【図３０】
2009101787.tif 000032
【図３１】
2009101787.tif 000033
【図３２】
2009101787.tif 000034
【図３３】
2009101787.tif 000035
【図３４】
2009101787.tif 000036
【図３５】
2009101787.tif 000037
【図３６】
2009101787.tif 000038
【図３７】
2009101787.tif 000039
【図３８】
2009101787.tif 000040
【図３９】
2009101787.tif 000041
【図４０】
2009101787.tif 000042
【図４１】
2009101787.tif 000043
【図４２】
2009101787.tif 000044
【図４３】
2009101787.tif 000045
【図４４】
2009101787.tif 000046
【図４５】
2009101787.tif 000047
【図４６】
2009101787.tif 000048
【図４７】
2009101787.tif 000049
【図４８】
2009101787.tif 000050
【図４９】
2009101787.tif 000051
【図５０】
2009101787.tif 000052
【図５１】
2009101787.tif 000053
【図５２】
2009101787.tif 000054
【図５３】
2009101787.tif 000055
【図５４】
2009101787.tif 000056
【図５５】
2009101787.tif 000057
【図５６】
2009101787.tif 000058
【手続補正書】
【提出日】平成21年10月1日(2009.10.1)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プレイリスト再生技術の技術分野に属する発明である。
【背景技術】
【０００２】
プレイリストとは、論理的な再生経路を定義するための情報であり、コンテンツ格納のための様々なアプリケーションフォーマットでは、このプレイリストが、1つの決まった再生単位となる。一般にプレイリストは、プレイアイテム、サブプレイアイテムから構成される。プレイアイテムとは、主たる動画像を構成するビデオストリームの時間軸において、イン点、及び、アウト点の組みを指定することで定義される論理的な再生区間である。
【０００３】
サブプレイアイテムとは、サブストリームの時間軸において、イン点、及び、アウト点の組みを指定することで定義される論理的な再生区間である。ここでサブストリームとは、ビデオストリームとは多重化されていないが、ビデオストリームと共に再生されるようなオーディオストリーム、字幕ストリーム、ビデオストリームのことである。
ROMディスクの記録内容と、他の記録媒体の記録内容とを組合せて、仮想パッケージを構築する場合、ネットワークを通じてダウンロードされるサブストリームの再生区間を、サブプレイアイテムにて定義することができる。ここで、プレイリストにおけるプレイアイテムにおいて、ROMディスクに記録されているAVストリームの再生区間を定義し、プレイリストにおけるサブプレイアイテムにおいて、ダウンロードされるべきサブストリームの再生区間を定義することにより、当該プレイリストは、光ディスクにない、新しい字幕・音声と、動画像との組合せを実現することができる。
【０００４】
この仮想的なパッケージを生成する技術の先行技術としては、以下の特許文献１に記載されたものがある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６-１０９４９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところが、ROMディスクからの読み出しには、54Mbpsというビットレートを確保することができる。しかし、一般のユーザ宅内では、ストリーミング再生時に保障されるビットレートが、ベストエフォートであることが多く、ROMディスクからのストリーム再生のように、常時、一定の高さのビットレートを確保できない。
ストリーミング再生のためのビットレートが制約されている状況下で、多くのサブプレイアイテムを包含しているようなプレイリストを再生しようとした場合を考える。
【０００７】
例えば、本編映像の特定のシーンにおいて、あるプレイアイテムには、１０個のサブプレイアイテムが付随しており、これらのサブプレイアイテムが、オプション扱いとなる１０ヶ国の言語をサポートしているケースを想定する。そして、個々のサブプレイアイテムによって参照されているクリップファイルが10Ｍバイトのデータサイズをもつものとすると、一個のプレイアイテムの再生を開始するには、本編であるプレイアイテムによって参照されているAVクリップとは別に、“１０ヶ国の言語×１0Ｍバイト=100Ｍバイト”のファイルのダウンロードが完了しなければならない。この場合、クリップファイルのダウンロードを担うアプリケーションが、１０個のサブプレイアイテムによって参照されている合計１００Ｍバイトのクリップファイルのダウンロードを先に行い、プレイアイテムによって参照されているクリップファイルのダウンロードを後回しにすれば、ビットレートが制限されている状況下では、プレイアイテムによって参照されているクリップファイルの供給が遅れて、再生進行が遅れる恐れがある。
【０００８】
これを避けるため、メインパスによって参照されているクリップファイルのダウンロードを先に行い、サブプレイアイテムによって参照されているクリップファイルのダウンロードを後回しにすると、ユーザが、サブプレイアイテムにて参照されているクリップファイル内のエレメンタリストリームを、再生対象として選択している場合、再生対象となるエレメンタリストリームをデコーダに供給することができず、字幕、音声、動画像の何れかが欠落したまま再生が進行する恐れがある。
【０００９】
このように、多くのサブプレイアイテムが存在しているためダウンロードすべきクリップファイルが多くなると、これらのうち、何を優先してダウンロードすべきかという指針を、アプリケーションに与えることができなくなるので、ビットレートが制限されている状況下では、再生の途切れが顕著化したり、字幕、音声、動画像の何れかが欠落したまま再生が進行する恐れがある。
【００１０】
加えてユーザは、ROMディスクからのストリーム読み出しであるか、ネットワークからのストリーム供給であるかを意識していないので、再生内容の一部が欠落した場合、再生装置が、故障しているかのように勘違いして、メーカーの相談窓口に、商品苦情を訴え出る可能性がある。サブプレイアイテムを構成するようなクリップファイルのダウンロード手続きは、再生装置における組込みプログラムではなく、映画作品の制作者が作成したアプリケーションプログラムによってなされることが一般的である。映画作品の制作者が作成したアプリケーションプログラムが、たまたまサブプレイアイテムを構成するクリップファイルのダウンロードを優先したために、メーカーが上述したような苦情にまきこまれるのは、メーカーにとって望ましいことではない。
【００１１】
本発明の目的は、多くのサブプレイアイテムが存在しているためダウンロードすべきクリップファイルが多く存在する場合、これらのうち、何を優先してダウンロードすべきかという指針を、アプリケーションに与えることができる再生装置を提供することである。    
【課題を解決するための手段】
【００１２】
上記課題を解決するため、本発明にかかる再生装置は、プレイリストを再生する再生装置であって、プレイリストは、複数のプレイアイテムと、複数のサブプレイアイテムとを含み、前記プレイアイテムは、メインストリームを含むクリップファイルと、当該クリップファイルにおける再生区間を規定する情報であり、前記サブプレイアイテムは、サブストリームを含むクリップファイルと、当該クリップファイルにおける再生区間を、プレイアイテムと同期すべき再生区間として規定する情報であり、前記サブプレイアイテムが参照するクリップファイルは、伝送路を介して伝送されるクリップファイルであり、サブストリームは、プレイアイテムが参照しているクリップファイルとは多重化されておらず、プレイリストに含まれるプレイアイテムを再生する再生手段と、複数のプレイアイテムのうち、再生対象になっているものをカレントプレイアイテムとして特定する特定手段と、カレントプレイアイテムが変化する度に、カレントプレイアイテムにとって最適なサブプレイアイテムをカレントサブプレイアイテムとして決定する決定手段と、前記カレントプレイアイテムと同期して再生すべきカレントサブストリームを指し示すサブストリームレジスタとを備え、前記カレントサブプレイアイテムとは、カレントプレイアイテムと同期すべき再生区間を規定するサブプレイアイテムであって、前記サブストリームレジスタが指し示すサブストリームの再生区間を規定するものであり、前記再生手段は、再生装置がアクセス可能な記録媒体に、カレントサブプレイアイテムによって参照されているクリップファイルが存在すればプレイアイテムの再生を進行し、カレントサブプレイアイテムによって参照されているクリップファイルが記録媒体において存在しないか又は認識不能な状態になっていれば、プレイアイテムの再生を停止することを特徴とする。
【発明の効果】
【００１３】
上記再生装置によれば、カレントサブプレイアイテムによって参照されているクリップファイルであって、カレントサブストリームを含むものが記録媒体に存在しない場合、一律に再生停止されることになる。
言い換えれば、カレントサブプレイアイテム情報によって参照されているクリップファイルであって、カレントサブストリームを含むものさえ記録媒体に揃っていれば、再生進行を継続することができるので、優先的にダウンロードを行うべきクリップファイルは、メインストリームを含むクリップファイル、及び、カレントサブプレイアイテム情報によって参照されているクリップファイルであって、カレントサブストリームを含むクリップファイルになる。
【００１４】
よってアプリケーションが、これらのクリップファイルを優先的にダウンロードして、その他のサブプレイアイテムから参照されるクリップファイルのダウンロードを後回しにすれば、ROMディスクと比較して、充分なビットレートを確保することができでなくても、サブプレイアイテムを多く含むようなプレイリストの再生を継続することができる。
サブプレイアイテムが多く存在したとしても、これらのうち、カレントサブプレイアイテム情報によって参照されているクリップファイルであって、カレントサブストリームを含むものさえ揃っていれば、再生を継続することができるため、何を優先してダウンロードすべきかという指針を、アプリケーションに与えることができる。よってアプリケーションは、“あるプレイアイテムの再生がなされている期間に、次にカレントサブプレイアイテム情報になるべきサブプレイアイテムによって参照されているクリップファイルをダウンロードする”とのルールで、ダウンロードを行えば、たとえサブプレイアイテムが多く存在していて、ビットレートが制限されていたとしても、再生を継続させることができる。ダウンロードを行うべきクリップファイルの優先順序を律することができるので、字幕、音声、動画像の何れかが欠落したまま再生が進行する恐れがなくなり、またストリーム供給が遅れることによる再生進行の途切れを最小限に留めることができる。
【００１５】
更に詳しくいうと、上記ルールでダウンロードを行う場合、クリップファイルのダウンロードに必要なビットレートBは、以下の計算で示されるものとなる。
ビットレートB＝
（ネクストプレイアイテムに対応するクリップファイルのデータサイズ＋ネクストサブプレイアイテムに対応するクリップファイルのデータサイズ）
／カレントプレイアイテムの再生時間
ここで、
「ネクストプレイアイテム」は、プレイアイテムの次に再生されるべきプレイアイテムであり、「ネクストサブプレイアイテム」は、カレントサブプレイアイテム情報の次に再生されるべきサブプレイアイテムを規定するサブプレイアイテムである。
【００１６】
ダウンロードに必要となるビットレートは、上述したような値で足りるので、ビットレートが制限されていても、再生の中断を必要最低限にすることができる。
また、カレントサブプレイアイテム情報によって参照されるクリップファイルが認識できない状態であれば、再生進行を停止させるとの処理を行えば、ROMディスクからのストリーム供給であるか、ダウンロードによるストリーム供給であるかをユーザに意識させることはなくなる。サブプレイアイテムによる再生が欠落した状況で、再生内容がどのようになるかを検証する必要はなくなり、オーサリング時の負担も軽減する。
【００１７】
再生装置は、再生に必要最低限のクリップファイルのダウンロードだけをダウンロードして再生できるため、ユーザは不必要にクリップファイルのダウンロードを待つことなく、プレイリストの再生を継続できる。
【図面の簡単な説明】
【００１８】
【図１】再生装置１０１の、使用行為についての形態の一例を示す図である。
【図２】プレイリストの一例を示す図である。
【図３】動作例の題材となるプレイリストの一例を示す図である。
【図４】図３に示したプレイリストが、どのようにして再生されるかを示す。
【図５】再生装置１０１の構成の一例を示す図である。
【図６】システムパラメータ(SPRM）の一覧である。
【図７】ストリーミングライクな再生機能を模式的に示す図である。
【図８】サブプレイアイテムを伴う場合のストリーミングライクな再生進行の一例を示す図である。
【図９】再生位置がプレイアイテム＃2に到達しようとしている状態の一例を示す図である。
【図１０】字幕切替えがユーザによって要求されたため、現在の再生時点が、サブパス(ID=＃0)の10003.m2tsを参照しているサブプレイアイテム＃3から、サブパス(ID=＃1)の20003.m2tsを参照しているサブプレイアイテム＃3に変化した場合を想定した図である。
【図１１】チャプタージャンプがあったため、プレイアイテム＃3がカレントプレイアイテムになり、サブプレイアイテム＃3がカレントサブプレイアイテム情報になったことを想定した図である。
【図１２】BD-Jアプリケーションの処理手順を示すフローチャートである。
【図１３】AVクリップダウンロードの処理手順を示すフローチャートである。
【図１４】プレイリスト再生処理の処理手順を示すフローチャートである。
【図１５】カレントサブプレイアイテムの決定手順を示すフローチャートである。
【図１６】プログレッシブ属性AVクリップ制御の処理手順を示すフローチャートである。
【図１７】再生停止リカバリー処理の処理手順を示すフローチャートである。
【図１８】カレントプレイアイテムがプレイアイテム＃1であり、カレントサブプレイアイテム情報がサブパス(ID=1)のサブプレイアイテム＃1である場合に、ダウンロードを要求すべきクリップファイルを示す。
【図１９】カレントプレイアイテムがプレイアイテム＃2であり、カレントサブプレイアイテム情報がサブパス(ID=1)のサブプレイアイテム＃2である場合に、ダウンロードを要求すべきクリップファイルを示す。
【図２０】カレントプレイアイテムがプレイアイテム＃3であり、カレントサブプレイアイテム情報がサブパス(ID=1)のサブプレイアイテム＃3である場合に、ダウンロードを要求すべきクリップファイルを示す。
【図２１】AVクリップの構成の一例を示す図である。
【図２２】AVクリップがどのように多重化されるかを模式的に示す図である。
【図２３】PESパケット列に、ビデオストリームがどのように格納されるかを更に詳しく示している。
【図２４】AVクリップに最終的に書き込まれるTSパケットの形式を示した図である。
【図２５】PMTのデータ構造を詳しく説明する図である。
【図２６】クリップ情報ファイルの一例を示す図である。
【図２７】ストリーム属性情報の一例を示す図である。
【図２８】エントリマップの一例を示す図である。
【図２９】システムターゲットデコーダ１３の内部構成の一例を示す図である。
【図３０】プレイリスト情報のデータ構造の一例を示す図である。
【図３１】サブパス情報の内部構成をクローズアップして示す図である。
【図３２】STN＿tableの全体構成の一例を示す図である。
【図３３】図３２に示したSTN＿tableの全体構成のうち、セカンダリビデオストリームについてのstream＿entryの一例を示す図である。
【図３４】（ａ）プライマリビデオストリームにおけるStream＿entry及びStream＿attributeの一例を示す図である。  （ｂ）セカンダリビデオストリームにおけるStream＿entryを示す。
【図３５】（ａ）PSR14のビットアサインの一例を示す図である。  （ｂ）PSR29のビットアサインの一例を示す図である。
【図３６】再生制御エンジンの内部構成の一例を示す図である。
【図３７】カレントセカンダリビデオストリームを決定するための処理手順を示すフローチャートである。
【図３８】カレントプレイアイテムについて最適なカレントセカンダリビデオストリームを決定する処理手順を示すフローチャートである。
【図３９】継時型ステレオゴーグルの一例を示す図である。
【図４０】立体視のためのプライマリビデオストリーム、セカンダリビデオストリームの内部構成の一例を示す図である。
【図４１】システムターゲットデコーダ１３の内部構成の一例を示す図である。
【図４２】Primary＿audio＿stream＿entry、Secondary＿audio＿stream＿entryの内部構成と、Comb＿info＿Secondary＿video＿Secondary＿audioの内部構成との一例を示す図である。
【図４３】（ａ）PSR1のビットアサインの一例を示す図である。  （ｂ）PSR14のビットアサインの一例を示す図である。
【図４４】カレントプレイアイテム変化時におけるカレントプライマリオーディオストリーム決定手順を示すフローチャートである。
【図４５】セカンダリオーディオストリームのストリーム選択プロシージャの処理手順を示すフローチャートである。
【図４６】カレントプレイアイテムについて最適なカレントセカンダリオーディオストリームを選択する手順を示すフローチャートである。
【図４７】STN＿tableのうち、PGtestSTストリームに特に関連あるものを抜き出して描いた図である。
【図４８】（ａ）カレントPGtestSTストリームのストリーム番号が取りうる数値範囲の一例を示す図である。  （ｂ）PSR2のビットアサインの一例を示す図である。
【図４９】カレントプレイアイテム変化時におけるカレントPGtestSTストリームの決定手順を示すフローチャートである。
【図５０】カレントプレイアイテムについて最適なカレントPGTextSTストリームを選択する処理手順を示すフローチャートである。
【図５１】BD-ROMの構成の一例を示す図である。
【図５２】インデックスファイルの内部構成の一例を示す図である。
【図５３】ローカルストレージ１０３に格納されるアップデートキットの内部構成の一例を示す図である。
【図５４】マージ管理情報ファイルの内容と、その内容を元にBD-ROMのファイルとアップデートキットのファイルとから、仮想パッケージを構築する過程の一例を示す図である。
【図５５】オーサリングシステムの一例を示す図である。
【図５６】ROMディスクイメージ、アップデートキットイメージの作成方法について説明する図である。
【発明を実施するための形態】
【００１９】
以下、上記課題解決手段を具備した再生装置及び記録装置の実施の形態について、図面を参照しながら説明する。
（第１実施形態）
以降、上記再生装置及び記録装置の実施形態について説明する。先ず始めに、再生装置の実施行為のうち、使用行為についての形態を説明する。図１は、再生装置１０１の、使用行為についての形態の一例を示す図である。本図に示すように、再生装置１０１は、第１記録媒体の一例であるBD-ROM１００、WWWサーバ１０２、ローカルストレージ１０３、テレビ１０４と共にユーザによる使用に供される。
【００２０】
BD-ROM１００は、映画作品が記録された記録媒体である。
再生装置１０１は、テレビ１０３と共に、ホームシアターシステムを構築して、BD-ROM１００を再生する。かかる記録装置は、記録媒体に対してデータをダウンロードを書き込む機能を有したものであり、記録装置としての機能を兼備している。
WWWサーバ１０２は、映画配給者の公式サイトを運営するサーバ装置であり、BD-ROM１００に記録された映画作品の部分的な置き換えや追加を実現するファイル一式(アップデートキット)を、インターネット等を介してユーザに供給する。
【００２１】
ローカルストレージ１０３は、再生装置に装填され、映画配給者のWWWサーバ１０２から配信されたコンテンツの受け皿として利用される。そのため、ネットを通じてダウンロードされ、ローカルストレージに格納されたコンテンツと、BD-ROM１００に記録されたコンテンツとを組み合わせて、BD-ROM１００のコンテンツを拡張/更新をすることができる。
【００２２】
テレビ１０４は、映画作品の再生映像を表示したり、メニュー等を表示することで、対話的な操作環境をユーザに提供する。
以上が再生装置の使用形態についての説明である。続いて再生装置が再生の対象としている、プレイリストについて説明する。
図２は、プレイリストの一例を示す図である。プレイリストは、「メインパス」、1つ以上の「サブパス」から構成される。
【００２３】
「メインパス」は、1つ以上のプレイアイテムから構成される。
「サブパス」は、メインパスと一緒に再生される一連の再生経路を示し、プレイリストに登録される順にID(サブパスID)が振られる。サブパスIDは、サブパスを識別するために使われる。サブパスには、メインパスの再生に同期して再生される同期型、メインパスの再生に非同期で再生可能な非同期型があり、そのタイプはサブパスタイプに記される。サブプレイアイテムは、1つ以上のサブプレイアイテム情報から構成される。サブパスタイプが同期型の場合は、サブプレイアイテムの再生開始と再生終了時刻は、メインパスと同じ時間軸で表されるが、サブパスタイプが非同期型の場合は、サブプレイアイテムの再生開始時刻と再生終了時刻は、メインパスと違う時間軸で表される。
【００２４】
また「プレイアイテム」は、ストリーム番号テーブルを含む。ストリーム番号テーブルは、プレイアイテムにおいて再生が許可されているエレメンタリストリームのストリーム番号を示す情報である。プレイリスト情報、プレイアイテム情報、サブプレイアイテム情報、ストリーム番号テーブルの詳細については、後の実施形態に説明の場を譲る。
以降の動作例の説明では、以下のようなプレイリストを題材として選らぶ。
【００２５】
図３は、動作例の題材となるプレイリストの一例を示す図である。
題材となるプレイリストは、1つのメインパスと、2つのサブパス(サブパス(ID=0),サブパス(ID=1))から構成される。メインパスは、5つのプレイアイテム＃1,＃2,＃3,＃4,＃5を含み、ID=0のサブパスは、５つのサブプレイアイテム＃1,＃2,＃3,＃4,＃5を含む。ID=1のサブパスは、５つのサブプレイアイテム＃1,＃2,＃3,＃4,＃5を含む。
【００２６】
どちらのサブパスも同期型で、それぞれ別々の言語の字幕データであるプレゼンテーショングラフィックスストリームが多重化されたAVクリップを参照している。プレイリストから利用されるAVクリップはすべてローカルストレージに格納されたアップデートキットのコンテンツであり、プログレッシブ属性が付与されている。プログレッシブ属性とは、プレイリスト再生にあたって、予めローカルストレージに格納されていることは必要ではなく、当該AVクリップを参照しているサブプレイアイテムが、カレントサブプレイアイテム情報になる直前に、ローカルストレージに格納されていれば足りるというAVクリップの属性のことである。
【００２７】
5つのプレイアイテム＃1,＃2,＃3,＃4,＃5は、それぞれ00001.m2ts、00002.m2ts、00003.m2ts、00004.m2ts、00005.m2tsを参照している。
ID=0のサブパスにおけるサブプレイアイテム＃1,＃2,＃3,＃4,＃5は、それぞれ10001.m2ts、10002.m2ts、10003.m2ts、10004.m2ts、10005.m2tsを参照している。
ID=1のサブパスにおけるサブプレイアイテム＃1,＃2,＃3,＃4,＃5は、それぞれ20001.m2ts、20002.m2ts、20003.m2ts、20004.m2ts、20005.m2tsを参照している。
【００２８】
メインパスの各プレイアイテムは、図中右上のようなストリーム番号テーブルを有する。このストリーム番号テーブルは、ストリーム番号1,2,3が割り当てられた3つのエントリーをもつ。これら3つのエントリーは、メインパスのプレイアイテム情報によって参照されるプライマリビデオストリーム、サブプレイアイテム(サブパスID=0)によって参照されるAVクリップに包含されているプレゼンテーショングラフィクスストリーム(PG＃1)、サブプレイアイテム(サブパスID=1)によって参照されるAVクリップに包含されているプレゼンテーショングラフィクスストリーム(PG＃2)の再生を許可するものである。
【００２９】
カレントとなる字幕ストリーム番号が“２”であるとき、該当するストリームエントリはサブパスID=０で示されるPG＃1であるため、プレイアイテムの再生と同期して、サブパスID=０のPG＃1が再生される。
図４は、図３に示したプレイリストが、どのようにして再生されるかを示す。本図における右側は、WWWサーバ１０２を示し、左側は、再生装置１０１を示す。真ん中は、インターネット、イントラネット等の伝送路を示す。図３における00001.m2ts、00002.m2ts、00003.m2ts、00004.m2ts、00005.m2tsは、テレビ１０３に存在する。これらのAVクリップのうち、00001.m2ts、10001.m2tsは、WWWサーバ１０２に対してダウンロード要求を送信することで、WWWサーバ１０２から再生装置１０１へと伝送されていることがわかる。
【００３０】
サーバ装置のデータベースにおいて、AVクリップは、00001.m2ts、00002.m2ts、00003.m2ts、00004.m2ts、00005.m2tsというファイル名とは異なるファイル名のファイルに格納されて管理される。これは、仮想パッケージ構築の対象となるファイルは、マニフェストファイルによって別名でアクセスされることが可能だからである。
以下、再生装置１０１が、プレイリスト再生、ダウンロード要求及びダウンロードを行うための構成要素について説明する。これらの処理のための構成要素には、BD-Jアプリケーションと、BD-Jオブジェクトとがある。以下、これらの構成要素について説明する。
【００３１】
＜BD-Jアプリケーション＞
「BD-Jアプリケーション」とは、Java２Micro＿Edition（J２ME）  Personal  BasisProfile（PBP １.０）と、Globally  Excecutable MHP  specification（GEM１.０.２）for package  mediatargetsとをフル実装したプラットフォーム部において、タイトルを生存区間としたアプリケーションシグナリングによって起動されるJava(登録商標)アプリケーションである。BD-Jアプリケーションは、プレイリスト情報を再生するJMFプレーヤインスタンスの生成をJava(登録商標)仮想マシンに命じることで、プレイリスト再生を開始させる。JMF(JavaMedia Frame work)プレーヤインスタンスとは、JMFプレーヤクラスを基にして仮想マシンのヒープメモリ上に生成される実際のデータのことである。
【００３２】
JMF A”BD://00001.mpls”;は、00001.mplsというファイルのプレイリストを再生するプレーヤインスタンスの生成をJava(登録商標)仮想マシンに命じるメソッドである。A.playは、JMFプレーヤインスタンスに再生を命じるメソッドである。かかるJMFプレーヤインスタンス生成は、JMFライブラリに基づきなされる。
JMFインスタンスを生成した後、プレイリスト再生にあたって、必要となるAVクリップのダウンロードをWWWサーバ１０２に対して要求する。ダウンロードにあたって、WWWサーバ１０２上のAVクリップを取得するためのコネクションはjava.netと呼ばれるJavaソフトウェアライブラリィのopenConnectionメソッドを使って、確立することができる。サーバ上のファイルのURLが、http:／／xxx.com／vp＿data／00001.m2tsである場合におけるコネクション接続の用例を以下に示す。用例：newjava.net.URL(http:／／xxx.com／vp＿data／00001.m2ts.openConnection()
上述したようなプレイリスト再生及びAVクリップダウンロードに先立ち、BD-Jアプリケーションは、GUIフレームワークを用いて、ユーザ操作を受け付ける。Java(登録商標)アプリケーションにおけるGUIフレームワークは、GEM1.0.2にて規定されたHAViフレームワークを含み、GEM1.0.2におけるリモートコントロールナビゲーション機構を含む。
【００３３】
これにより、Java(登録商標)アプリケーションは、HAViフレームワークに基づくボタン表示、テキスト表示、オンライン表示(BBSの内容)といった表示を、動画像の表示と組み合わせた画面表示を実現することができ、リモートコントロールを用いて、上述したようなプレイリスト再生やAVクリップダウンロードを実現することができる。BD-Jアプリケーションを構成する一連のファイルは、Http：//Java（登録商標）.sun.com/j２se/１.４.２/docs/guide/jar/jar.htmlに記載された仕様に準じた、Java（登録商標）アーカイブファイルに変換される。Java（登録商標）アーカイブファイルは、ZIPファイルの形式を、Java（登録商標）に特化したものであり、市販されているZIP展開ソフトウェアにより中身を確認することができる。
【００３４】
＜BDJオブジェクト＞
BDJオブジェクトは、アプリケーション管理テーブル（ApplicationManagementTable（））を含み、BD-ROM再生時において、タイトル切り替えに伴うアプリケーションシグナリングをプラットフォーム部に実行させるデータのことである。より具体的にいうと、ApplicationManagementTable（）は、実行すべきBD-Jアプリケーションを示すapplication＿idと、BD-Jアプリケーションを起動する際の制御を示すapplication＿control＿codeを含む。application＿control＿codeは、タイトル選択後におけるアプリケーションの最初の実行状態を規定しており、またapplication＿control＿codeは、BD-Jアプリケーションを仮想マシンにロードして自動開始するか（AUTOSTART）、BD-Jアプリケーションを仮想マシンにロードするが自動開始はしないか（PRESENT）を規定することができる。
【００３５】
続いて、再生装置の内部構成について説明する。
図５は、再生装置１０１の構成の一例を示す図である。再生装置１０１は、BD-ROMドライブ１０、リードバッファ１１、リードバッファ１２、システムターゲットデコーダ１３、BD-J実行部１４、ネットワークインターフェイス１５、仮想パッケージ制御部１６、状態管理部１７、ユーザイベント処理部１８、再生エンジン１９、再生制御エンジン２０、HDMI送受信部２１、ヒープメモリ２２、仮想マシンインタプリタ２３、PSRセット２４から構成されている。以降、これらの構成要素について説明する。
【００３６】
＜BD-ROMドライブ１０＞
BD-ROMドライブ１０は、BD-ROMディスクからデータを読み出し、リードバッファ１１にデータを蓄える。
＜リードバッファ１１＞
リードバッファ１１は、BD-ROMドライブを使って読み込んだデータを一時的に格納するメモリ等で構成されたバッファである。
【００３７】
＜リードバッファ１２＞
リードバッフ１ァ１２は、ローカルストレージから読み込んだデータを一時的に格納するメモリ等で構成されたバッファである。
＜システムターゲットデコーダ１３＞
システムターゲットデコーダ１３は、リードバッファ１１に読み出されたソースパケットやリードバッファ１２に読み出されたソースパケットに対して多重分離処理を行い、各ストリームをデコードし再生する処理を行う。また、BD-J実行部１４よりメニューなどに表示するためのJPEG，PNGなどのグラフィックスデータをデコードして再生する処理を行う。システムターゲットデコーダ１３の詳細については後述する。
【００３８】
＜BD-J実行部１４＞
BD-J実行部１４は、仮想パッケージ制御部１６から転送されるBD-Jアプリケーションを実行するプログラム処理エンジンである。BD-Jアプリケーションのプログラムに従った動作を行い次のような制御を行う。（１）仮想パッケージ制御部１６に対してプレイリスト再生する。（２）インターネットなどのWWWサーバからアップデートキットのローカルストレージへ蓄積する。（３）BD-ROMとアップデートキットとを組み合わせて仮想パッケージの構築を命令する。（４）プレーヤ変数に値をセットする。（５）システムターゲットデコーダに対してメニューやゲームのグラフィックスのためのPNG・JPEGを転送して画面に表示する。これらはプログラムの作りに応じて自由に行うことができ、どのように制御するかは、オーサリング工程によるBD-Jアプリケーションのプログラミング工程によって決まる。
【００３９】
＜ネットワークインターフェイス１５＞
ネットワークインターフェイス１５は、再生装置における通信機能を実現するものであり、URL指定がBD-Jアプリケーションから与えられれば、そのURLにあたるwebサイトとのTCPコネクション、FTPコネクション等を確立する。かかるコネクション確立によりwebサイトからのダウンロードをJava(登録商標)アプリケーションに行わせる。
【００４０】
＜仮想パッケージ制御部１６＞
仮想パッケージ制御部１６は、BD-ROMドライブ１０、ローカルストレージ１０３を制御して、仮想パッケージを構築し、プレーヤの再生を制御する機能を持つ。仮想パッケージとは、BD-ROMディスクに記録されたコンテンツと、ローカルストレージ１０３に格納された差分データと、ローカルストレージ１０３に格納されたマージ管理情報を元に、BD-ROM上のコンテンツとをメモリ上で組み合せた仮想的なBD-ROMパッケージである。構築された仮想パッケージは、BD-ROMのデータ構造と同じ形式を持つ。仮想パッケージを構築するタイミングは、ディスクがインサートされた時や、BD-J実行部１４の仮想パッケージ構築命令が実行された時などがある。仮想パッケージ制御部１６は、仮想パッケージが構築された後は、BD-J実行部の再生命令や、ユーザイベント処理部より通知に基づきプレイリスト情報を介してAVクリップの再生処理を制御する。また、仮想パッケージ制御部１６は、プレーヤ変数の設定や参照を行い、再生動作を行う。
【００４１】
＜状態管理部１７＞
状態管理部１７は、BD-ROM又ローカルストレージに存在する個々のAVクリップが、Missing状態、Enable状態、Disable状態の何れであるかを管理し、プレイリストの再生を停止させるかどうかの制御を行う。
Missing状態とは、プレイアイテム情報、サブプレイアイテム情報から参照されているAVクリップがBD-ROM又ローカルストレージに存在しない状態を意味する。
【００４２】
Enable状態とは、仮想パッケージ制御部１６での再生可能な状態を意味し、BD-JアプリケーションのAPIで制御される。Enable状態にセットするAPIが実行された場合、AVクリップはリードオンリー属性になり、仮想パッケージ制御部１６でのAVクリップの再生が可能になる。
Disable状態は、Enable状態の反対を意味し、仮想パッケージ制御部１６は該当AVクリップの再生をすることができない。BD-JアプリケーションによりAVクリップに対してEnable状態に一度もセットされていない場合は、そのAVクリップはDisable状態である。もし、BD-Jアプリケーションが、Enable状態のAVクリップを削除や上書きなどをしたい場合は、Disable状態に一度APIを使って遷移して実行する。
【００４３】
これらのうち、Missing状態になっているAVクリップ、Disable状態になっているAVクリップを併せてUnavailableクリップという。
プレイリストの再生を停止させるかどうかの制御とは、カレントサブプレイアイテム情報が変化した場合、カレントサブプレイアイテム情報にて参照されているAVクリップがUnavailableクリップかどうかを判定して、Unavailableクリップであれば、DataStarvedイベントをJMFプレーヤインスタンス及び再生制御エンジンに通知して、JMFプレーヤインスタンス及び再生制御エンジンを再生状態からストップ状態に遷移させるというものである。
【００４４】
＜ユーザイベント処理部１８＞
ユーザイベント処理部１８は、リモコンを通じたユーザ操作に応答して、BD-J実行部１４や仮想パッケージ制御部１６に処理の実行を依頼する。例えば、リモコンでボタンを押した場合は、そのボタンに含まれるコマンドを実行するようBD-J実行部１４に依頼する。例えば、リモコンで早送り・巻戻しボタンが押された場合には、仮想パッケージ制御部１６に、現在再生しているプレイリストのAVクリップに対する早送り・巻戻し処理の実行を命令する。
【００４５】
＜再生エンジン１９＞
再生エンジン１９は、AV再生ファンクションを実行する。再生装置のAV再生ファンクションとは、DVDプレーヤ、CDプレーヤから踏襲した伝統的な機能群であり、再生開始(Play)、再生停止(Stop)、一時停止(PauseOn)、一時停止の解除(PauseOff)、Still機能の解除(still off)、速度指定付きの早送り(Forward Play(speed))、速度指定付きの巻戻し(BackwardPlay(speed))、音声切り換え(AudioChange)、Secondaryビデオ切り換え(Subtitle Change)、アングル切り換え(AngleChange)といった機能である。AV再生ファンクションを実現するべく、再生エンジン１９は、AVクリップのうち、所望に時刻にあたる部分のデコードを行うよう、システムターゲットデコーダを制御する。
【００４６】
＜再生制御エンジン２０＞
再生制御エンジン２０は、プレイリストに対する再生制御ファンクションを実行する。プレイリストに対する再生制御ファンクションとは、再生エンジン１９が行うAV再生ファンクションのうち、再生開始や再生停止を、カレントプレイリスト情報及びクリップ情報に従って行わせることをいう。
【００４７】
＜HDMI送受信部２１＞
HDMI送受信部２１は、HDMI（HDMI:High DefinitionMultimedia Interface）を介して接続された他の機器から、その機器に関する情報を受信とすると共に、システムターゲットデコーダのデコードにより得られたデジタル非圧縮のビデオを、LPCMや圧縮されたオーディオデータと共に、HDMIを介して接続された他の機器に送信する。
【００４８】
＜ヒープメモリ２２＞
ヒープメモリ２２は、BD-J実行部１４のために確保されるスタックメモリであり、BD-Jアプリケーションによって生成されたJMFプレーヤインスタンスや、BD-Jアプリケーションに対してクラスローダを行うことで生成されるバイトコードが格納される。これらは、スレッドの態様をなし、先入先出し式に、仮想マシンインタプリタ２３による実行に供される。
【００４９】
＜仮想マシンインタプリタ２３＞
仮想マシンインタプリタ２３は、ヒープメモリ２２に格納されたバイトコードをCPUが実行可能なネィティブコードに変換してCPUに実行させる。
＜PSRセット ２４＞
PSRセット ２４は、プレーヤ変数を格納しているプレーヤセッティングレジスタ、プレーヤステータスレジスタである。プレーヤ変数は、プレーヤの状態を示すシステムパラメータ（SPRM）と一般用途として使用可能なゼネラルパラメータ（GPRM）とがある。
【００５０】
図６はシステムパラメータ（SPRM）の一覧である。
SPRM（０）      ：  言語コード
SPRM（１）      ：  Primaryオーディオストリーム番号
SPRM（２）      ：  字幕ストリーム番号
SPRM（３）      ：  アングル番号
SPRM（４）      ：  タイトル番号
SPRM（５）      ：  チャプタ番号
SPRM（６）      ：  プログラム番号
SPRM（７）      ：  セル番号
SPRM（８）      ：  選択キー情報
SPRM（９）      ：  ナビゲーションタイマー
SPRM（１０）    ：  再生時刻情報
SPRM（１１）    ：  カラオケ用ミキシングモード
SPRM（１２）    ：  パレンタル用国情報
SPRM（１３）    ：  パレンタルレベル
SPRM（１４）    ：  プレーヤ設定値（ビデオ）
SPRM（１５）    ：  プレーヤ設定値（オーディオ）
SPRM（１６）    ：  音声ストリーム用言語コード
SPRM（１７）    ：  音声ストリーム用言語コード（拡張）
SPRM（１８）    ：  字幕ストリーム用言語コード
SPRM（１９）    ：  字幕ストリーム用言語コード（拡張）
SPRM（２０）    ：  プレーヤリージョンコード
SPRM（２１）    ：  Secondaryビデオストリーム番号
SPRM（２２）    ：  Secondaryオーディオストリーム番号
SPRM（２３）    ：  再生状態
SPRM（２４）    ：  予備
SPRM（２５）    ：  予備
SPRM（２６）    ：  予備
SPRM（２７）    ：  予備
SPRM（２８）    ：  予備
SPRM（２９）    ：  予備
SPRM（３０）    ：  予備
SPRM（３１）    ：  予備
SPRM（１０）は、AVクリップに属する各ピクチャデータが表示される度に更新される。つまり再生装置が新たなピクチャデータを表示させれば、その新たなピクチャデータの表示時刻（PTS）を示す値にSPRM（１０）は更新される。このSPRM（１０）を参照すれば、現在の再生時点を知得することができる。
【００５１】
SPRM（１６）の音声ストリーム用言語コードやSPRM（１８）の字幕ストリーム用言語コードは、プレーヤのOSDなどで設定できる項目であり、プレーヤのデフォルトの言語コードを示す。例えば、SPRM（１６）の音声ストリーム用言語コードが英語であれば、プレイリストを再生する上で、プレイアイテムのストリーム選択テーブルの中から同じ言語コードを持つストリームエントリを探し出し、その音声ストリームを選択して再生するといった機能をBD-ROMディスクの中のBD-Jアプリケーションに入れることが出来る。これらのSPRMは、それぞれが３２ビットの語長をもつレジスタに格納される。SPRMを特定する括弧書きの数値は、基本的には、対応するレジスタのレジスタ番号を意味する(但し、SPRM(21),SPRM(22)は、対応するレジスタのレジスタ番号を意味している訳ではない。)。
【００５２】
＜ストリーミングライクな再生機能＞
次に図７を用いながら、仮想パッケージを利用したストリーミングライクな再生機能における仮想パッケージ制御部１６の再生遷移について説明する。図７は、ストリーミングライクな再生機能を模式的に示す図である。
ストリーミングライクな再生機能とは、プレイアイテム情報又はサブプレイアイテム情報によって参照されているAVクリップであって、プログレッシブ属性が付与されているものを、当該プレイアイテム情報又はサブプレイアイテム情報が、カレントプレイアイテム又はカレントサブプレイアイテム情報になる直前にローカルストレージに格納するよう、再生動作とダウンロード動作とを並列に行うことをいう。
【００５３】
図７上段は、プレイリストを示し、５つのプレイアイテムは、それぞれ、００００１.m２ts、０００２.m２ts、００００３.m２ts、００００４.m２ts、００００５.m２tsを参照するが、これらはすべてローカルストレージに格納されたアップデートキットのコンテンツであり、プログレッシブ属性が付与されている。このうち、００００１.m２ts、００００２.m２tsは、すでにダウンロードが完了しており、BD-JアプリケーションによりEnable状態にセットされている。００００３.m２ts、００００４.m２ts、００００５.m２tsはまだダウンロードがされていないか、あるいは、ダウンロードはされているがDisable状態であることを示す。仮想パッケージ制御部１６は、プレイリストの先頭プレイアイテムから順に再生する場合、図７上段のとおり、再生位置がプレイアイテム＃1、プレイアイテム＃2に存在する場合は、再生が妨げられることはない。これらのプレイアイテムのプレイアイテム情報は、Enable状態であるAVクリップを参照しているからである。よって、プレイアイテム＃3まで再生が進行する。
【００５４】
図７中段は、図７上段からさらに再生位置が進んだ図を示し、再生位置がプレイアイテム＃3に遷移する前に００００３.m２tsのダウンロードが完了し、BD-JアプリケーションによりEnable状態にセットされたことを示す。よって、再生は、プレイアイテム＃3まで進行する。
図７下段は、図７中段からさらに再生位置が進んだ図を示し、再生位置がプレイアイテム＃4に遷移した時に、参照する００００４.m２tsがまだダウンロードがされていないか、Disable状態であることを示す。この場合、DataStarvedイベントが出力されることになる。BD-Jアプリケーションは、DataStarvedイベントを受け取った後は、００００４.m２tsのダウンロードを完了させ、Enable状態に遷移させ、DataStarvedイベントを受け取った地点から再生開始するという制御などでリカバーを図る。
【００５５】
以上のように、ストリーミングライクな再生では、次の再生位置にあるプレイアイテムのAVクリップが、前もってダウンロードされてEnable状態にセットされる限り、再生進行が妨げられることはない。
図８は、サブプレイアイテムを伴う場合のストリーミングライクな再生進行の一例を示す図である。
【００５６】
第３段目は、図３のプレイリストに、再生がどこまで進行を示したかを模式的に示す矢印を書き加えたものである。
第１段目は、JMFプレーヤインスタンスの状態を示し、第２段目は、再生制御エンジンの状態を示す。第３段目は、題材となるプレイリストを示す。第１段目によると、JMFプレーヤインスタンスは、再生状態になっているが、DataStarvedイベントが出力されれば、ストップ状態になる。DataStarvedイベントとは、再生すべきデータが、欠乏していることを示すイベントであり、このDataStarvedイベントを受け取ったJMFプレーヤインスタンス及び再生制御エンジンは、ストップ状態に遷移することになる。JMFプレーヤインスタンス及び再生制御エンジンの動作を停止させるので、DataStarvedイベントは、“再生停止イベント”とも呼ばれる。
【００５７】
第２段目によると、再生制御エンジンは、再生状態になっているが、DataStarvedイベントが出力されれば、JMFプレーヤインスタンスと共にストップ状態になる。即ちJMFプレーヤインスタンス及び再生制御エンジンは、DataStarvedイベントをトリガとして、再生状態からストップ状態に切り替わっていることがわかる。
図８では、サブプレイアイテム(パスID=0)に属するサブプレイアイテム＃1がカレントサブプレイアイテム情報になっているため、再生は、プレイアイテム＃1,SubPlayItem＃1まで進行する。プレイアイテム＃2では、対応するサブプレイアイテム＃2によって参照されている20002.m2tsがUnavailableクリップであるから、カレントサブプレイアイテムがサブプレイアイテム＃2になると、DataStarvedイベントを出力して再生をストップせざるをえない。
【００５８】
図９は、再生位置がプレイアイテム＃2に到達しようとしている状態の一例を示す図である。本図の例では、現在の再生位置であるプレイアイテム＃2に対応する、サブパスID=０のサブプレイアイテム＃2はEnable状態のAVクリップを参照している。しかし、サブパスID=１のサブプレイアイテム＃2は、まだダウンロードがされていないか、Disable状態のAVクリップを参照している。SPRM（２）が示すのは、サブパスID=０のサブプレイアイテム＃2であるため、サブパスID=１のサブプレイアイテム＃2のAVクリップがEnable状態になっていなくても、仮想パッケージ制御部１６は再生を継続できる。
【００５９】
20002.m2tsが、Unavailableクリップであっても、再生が妨げられないので、再生は、プレイアイテム＃3まで進行する。プレイアイテム＃4では、対応するサブプレイアイテム＃4にて参照されている、10004.m2tsがUnavailableクリップになるから、カレントプレイアイテム情報がプレイアイテム＃4になった時点で再生が中断する。
以上のことから次のことがいえる。つまり、プレイアイテム＃2の再生区間に対応するすべてのサブパス(ID=0,ID=1)のサブプレイアイテムから参照されるAVクリップをダウンロードしようとすると、ダウンロードの対象となるAVクリップは、10001.m2ts、10002.m2ts、10003.m2ts、10004.m2ts、10005.m2ts、20001.m2ts、20002.m2ts、20003.m2ts、20004.m2ts、20005.m2tsになるので、仮想パッケージ制御部１６は、サブパスの数だけAVクリップのダウンロードを待たなければならない。その場合、サブパスの数が増えると、ユーザはプレイリストの再生を行う上で多くの時間を待たなければならなくなる。
【００６０】
一方、上述したような動作では、サブプレイアイテムにおいては、Primaryオーディオストリーム番号SPRM（１）、字幕ストリーム番号SPRM（２）、Secondaryビデオストリーム番号SPRM（２１）、Secondaryオーディオストリーム番号SPRM（２２）によって指定されるストリームを含むAVクリップがすべてEnable状態であれば、他のサブパスのサブプレイアイテムのAVクリップがEnable状態になるまで待つことなく、再生を続行できるとする。こうすることによって、ユーザは不要なAVクリップのダウンロードを待たずにプレイリストの再生を継続できる。
【００６１】
図１０は、字幕切替えがユーザによって要求されたため、現在の再生時点が、サブパス(ID=＃0)の10003.m2tsを参照しているサブプレイアイテム＃3から、サブパス(ID=＃1)の20003.m2tsを参照しているサブプレイアイテム＃3に変化した場合を想定した図である。
ユーザ操作などでSPRM（２）を３に変更した場合、再生する字幕はサブパスID=１のサブプレイアイテム＃3になる。サブプレイアイテム＃3が参照している20003.m2tsは、Unavailableクリップであるから、この切り替えと同時に、DataStarvedイベントが出力されることになる。以上のように、字幕切り替えが要求された場合、切り替え先の字幕ストリームを包含しているAVクリップがダウンロードされていないか、Disable状態であれば、仮想パッケージ制御部１６は再生を停止し、DataStarvedイベントをBD-Jアプリケーションに通知する。
【００６２】
図１１は、チャプタージャンプがあったため、プレイアイテム＃3がカレントプレイアイテムになり、サブプレイアイテム＃3がカレントサブプレイアイテム情報になったことを想定した図である。サブプレイアイテム＃3によって参照されている20003.m2tsは、Unavailableクリップであるため、DataStarvedイベントを発生し、再生をストップ状態させる。
【００６３】
Unavailableクリップを参照しているサブプレイアイテムがカレントサブプレイアイテム情報になった際、再生がストップ状態するので、ダウンロードにあたっては、次のプレイアイテム及び次のサブプレイアイテムにて参照されているクリップファイルであって、再生対象となるカレントストリームを含むものを優先的にダウンロードすれば、再生を継続することができる。
【００６４】
以上のように、チャプタジャンプなどの飛び込み再生では、Primaryオーディオストリーム番号SPRM（１）、字幕ストリーム番号SPRM（２）、Secondaryビデオストリーム番号SPRM（２１）、Secondaryオーディオストリーム番号SPRM（２２）のどれかのストリーム番号が、SubPlayItemに対応しており、そのサブプレイアイテムが、まだダウンロードがされていないか、Disable状態であるAVクリップを参照するときに、仮想パッケージ制御部１６はDataStarvedイベントをBD-Jアプリケーションに通知することになる。このような仮想パッケージ制御部１６の再生動作を定義することにより、同様に最小のAVクリップのダウンロードで再生を継続することができる。
【００６５】
図１２は、BD-Jアプリケーションの処理手順を示すフローチャートである。
ステップＳ１において、ローディングされたBD-ROMに対応するアップデートキットを、ローカルストレージのBUDA(BidingUnit Data Area)ディレクトリにダウンロードする。ステップＳ２では、アップデートキット内のMissing状態を指定した仮想パッケージ構築要求を発行する。
【００６６】
以降、ステップＳ３〜ステップＳ８のループを実行する。このループは、プレイリストを選択してJMFプレーヤインスタンスをクリエイトし(ステップＳ３)、プレイリスト情報における先頭のプレイアイテムを、カレントプレイアイテムに設定し(ステップＳ４)、カレントプレイアイテムにおけるClip＿Information＿file＿nameで指定されているAVクリップを選択して(ステップＳ５)、AVクリップをダウンロードし(ステップＳ６)、仮想マシン内で、以下の3つのスレッドを仮想マシン内に立てて、これらの処理を並列で実行する(ステップＳ７)という処理を繰り返すものである。
【００６７】
（１）.プレイリスト再生、
（２）.プログレッシブ属性AVクリップ制御
（３）.DataStarvedイベントリカバリー処理
これらの3つの処理の実行が終了すれば、３つのスレッドを終了させ、ステップＳ３に戻る。
【００６８】
図１３は、AVクリップダウンロードの処理手順を示すフローチャートである。ステップＳ１１において、WWW上のサーバー装置からBUDAディレクトリにAVクリップをダウンロードするようネットワークインターフェイスに指示し、ステップＳ１２において、AVクリップをMissing状態からDisable状態に変更する。ステップＳ１３においてダウンロードがなされるのを待ち、ダウンロードがなされれば、ステップＳ１４においてベリファイを行って、正常であれば、ステップＳ１５においてAVクリップをEnable状態にする。
【００６９】
図１４は、プレイリスト再生処理の処理手順を示すフローチャートである。ステップＳ２１においてカレントサブプレイアイテム情報を決定して、ステップＳ２２〜ステップＳ２４のループに移行する。ステップＳ２２〜ステップＳ２４のループは、カレントプレイアイテムのClip＿Information＿file＿nameで指定されているAVクリップはUnavailableクリップであるかどうかを判定し(ステップＳ２２)、Unavailableクリップでなければ、AVクリップを構成するソースパケットのうち、カレントプレイアイテムのIn＿TimeからOut＿TimeまでのものをBD-ROMから読み出すという処理(ステップＳ２３)、カレントサブプレイアイテム情報のClip＿Information＿file＿nameで指定されているAVクリップがUnavailableクリップであるかどうかを判定して(ステップＳ２４)、Unavailableクリップでなければ、AVクリップを構成するソースパケットのうち、カレントプレイアイテムのIn＿TimeからOut＿Timeまでのものをローカルストレージから読み出すという処理(ステップＳ２５)、読み出されたソースパケットのうち、カレントプレイアイテムのSTN＿tableで再生が許可されているものを、デコーダに出力するという処理(ステップＳ２６)、カレントプレイアイテムが最後のプレイアイテムであるか否かを判定する処理(ステップＳ２７)、カレントプレイアイテムを変更するという処理(ステップＳ２８)を繰り返すものである。このループの終了条件は、プレイリスト内に、次のプレイアイテムがないと判定されることである(ステップＳ２７でYes)。
【００７０】
ステップＳ２９において、カレントプレイアイテムのClip＿Information＿file＿nameで指定されているAVクリップ、又は、カレントサブプレイアイテム情報のClip＿Information＿file＿nameで指定されているAVクリップがUnavailableクリップであるなら、DataStarvedイベントを発生して、再生制御エンジン及びJMFプレーヤインスタンスのストップ状態にさせ、その後、再開を待つ(ステップＳ３０)。
【００７１】
図１５は、カレントサブプレイアイテム情報の決定手順を示すフローチャートである。ステップＳ３１において、プロシージャによってカレントプライマリオーディオストリームを決定して、SPRM(1)に設定し、ステップＳ３２においてプロシージャによってカレントセカンダリオーディオストリームを決定して、SPRM(14)に設定する。ステップＳ３３において、カレントセカンダリビデオストリームを決定して、SPRM(21)に設定し、ステップＳ３４において、カレントPGテキスト字幕ストリームを決定して、SPRM(2)に設定する。
【００７２】
そして、カレントプライマリオーディオストリーム、カレントセカンダリオーディオストリーム、カレントプライマリビデオストリーム、カレントPGテキスト字幕ストリームをClip＿Information＿file＿nameで参照している全てのサブプレイアイテムを、カレントサブプレイアイテムに設定する。
図１６は、プログレッシブ属性AVクリップ制御の処理手順を示すフローチャートである。
【００７３】
ステップＳ４１において、カレントプレイアイテムの次のプレイアイテム(ネクストプレイアイテム)におけるClip＿Information＿file＿nameで指定されているAVクリップを選択し、ステップＳ４２において、ネクストプレイアイテムをSync＿PlayItem＿Idに記述しているサブプレイアイテム(ネクストサブプレイアイテム)を特定する。ステップＳ４３において、ネクストサブプレイアイテムのClip＿Information＿file＿nameで指定されているAVクリップであって、PSRにおけるカレントストリーム番号に対応するエレメンタリストリームを含むAVクリップを選択する。
【００７４】
ステップＳ４４では、選択されたAVクリップがローカルストレージに存在するかどうかを判定し、存在しなければ、ステップＳ４５において選択されたAVクリップのダウンロードを行う。ステップＳ４６では、削除すべきAVクリップの選択を行い、削除すべきAVクリップが存在するかどうかを判定する(ステップＳ４７)。存在すれば、AVクリップの削除を行う(ステップＳ４８)。ステップＳ４９では、カレントプレイアイテム、カレントサブプレイアイテム情報が変化するのを待ち、変化すれば、プレイリストの再生が終了したかどうかを判定した上で、ステップＳ４１に移行する(ステップＳ５０)。
【００７５】
図１７は、再生停止リカバリー処理の処理手順を示すフローチャートである。ステップＳ６１は、DataStarvedイベントを取得待ちを構成するループであり、DataStarvedイベントがなされれば、ステップＳ６２は、ステップＳ６２は、DataStarvedイベントを取得したAVクリップのダウンロードが完了するのを待つ事象完了待ちループである。ステップＳ６３は、DataStarvedイベントを取得した再生位置からのプレイリスト再生を開始し、ステップＳ６４では、プレイリストの再生が終了したか否かを判定する。
【００７６】
次に、AVクリップにおけるカレントの再生位置と、ダウンロードの対象となるAVクリップとの関係を示す。
図１８は、カレントプレイアイテムがプレイアイテム＃1であり、カレントサブプレイアイテム情報がサブパス(ID=1)のサブプレイアイテム＃1である場合に、ダウンロードを要求すべきクリップファイルを示す。ローカルストレージでは、カレントプレイアイテムを構成する00001.m2ts、及び、カレントサブプレイアイテム情報を構成する20001.m2tsが、Enable状態になっている必要がある。この場合、ネクストプレイアイテムはプレイアイテム＃2、ネクストサブプレイアイテムはサブプレイアイテム情報＃2になるから、カレントプレイアイテム及びカレントサブプレイアイテム情報の再生中に、ダウンロードを要求すべきクリップファイルは、ネクストプレイアイテムを構成する00002.m2ts、及び、ネクストサブプレイアイテムを構成する20002.m2tsとなる。
【００７７】
図１９は、カレントプレイアイテムがプレイアイテム＃2であり、カレントサブプレイアイテム情報がサブパス(ID=1)のサブプレイアイテム＃2である場合に、ダウンロードを要求すべきクリップファイルを示す。ローカルストレージでは、カレントプレイアイテムを構成する00002.m2ts、及び、カレントサブプレイアイテム情報を構成する20002.m2tsが、Enable状態になっている必要がある。この場合、ネクストプレイアイテムはプレイアイテム＃3、ネクストサブプレイアイテムはサブプレイアイテム情報＃3になるから、カレントプレイアイテム及びカレントサブプレイアイテム情報の再生中に、ダウンロードを要求すべきクリップファイルは、ネクストプレイアイテムを構成する00003.m2ts、及び、ネクストサブプレイアイテムを構成する20003.m2tsとなる。
【００７８】
図２０は、カレントプレイアイテムがプレイアイテム＃3であり、カレントサブプレイアイテム情報がサブパス(ID=1)のサブプレイアイテム＃3である場合に、ダウンロードを要求すべきクリップファイルを示す。ローカルストレージでは、カレントプレイアイテムを構成する00003.m2ts、及び、カレントサブプレイアイテム情報を構成する20003.m2tsが、Enable状態になっている必要がある。この場合、ネクストプレイアイテムはプレイアイテム＃4、ネクストサブプレイアイテムはサブプレイアイテム情報＃4になるから、カレントプレイアイテム及びカレントサブプレイアイテム情報の再生中に、ダウンロードを要求すべきクリップファイルは、ネクストプレイアイテムを構成する00004.m2ts、及び、ネクストサブプレイアイテムを構成する20004.m2tsとなる。
【００７９】
サブパスが同期型である場合、カレントサブプレイアイテム情報の再生時間長は、カレントプレイアイテムの再生時間長に等しいため、以上のダウンロードでは、カレントプレイアイテムの再生継続中に、ネクストプレイアイテム及びネクストサブプレイアイテムを構成するクリップファイルのダウンロードを実現すればよい。
【００８０】
よってダウンロードに必要なビットレートBは、以下の計算で示されるものとなる。
ビットレートB＝
ネクストプレイアイテムを構成するクリップファイルのデータサイズ＋ネクストサブプレイアイテムを構成するクリップファイルのデータサイズ
／カレントプレイアイテムの再生時間
このように、カレントプレイアイテム及びカレントサブプレイアイテム情報の再生中に、ネクストプレイアイテムによって参照されるAVクリップと、ネクストサブプレイアイテムによって参照されるAVクリップとをダウンロードしておけば、必要最低限のAVクリップは、ローカルストレージに揃うので、DataStarvedイベントの発生によって再生進行が妨げられることはない。
【００８１】
以上のように本実施の形態によれば、複数のサブパスから構成されるプレイリストを再生する上で、再生装置に内蔵されるどのストリームが選択されているかを示すプレーヤ変数を参照し、再生に必要でないAVクリップは、ダウンロードが完了していない状態でも再生を継続することができるようになり、効率的なストリーミングライクな再生を実現できる
＜備考＞
第１実施形態のうち、以下に示す技術的トピックについては、更なる改良や変更実施を加えることができる。第１実施形態に示した通り実施するか、これらの改良・変更を施すか否かは、何れも任意的であり、実施する者の主観によることは留意されたい。
【００８２】
＜プレイリスト再生の前処理＞
プレイリスト再生の前処理では、SPRM（１６）の音声ストリーム用言語コードやSPRM（１８）の字幕ストリーム用言語コードに記された言語コードを持つ音声ストリームや字幕ストリームを含むAVクリップを優先的にダウンロードするべきである。このような構成にすることによって、ユーザがプレイリスト再生で利用する可能性が高いAVクリップをダウンロード対象に選べることができる。
【００８３】
＜BD-ROMとの併用＞
メインパスがディスクに格納されている本編映像を示す場合には、現在の再生位置以降のサブプレイアイテムで利用される、
現在のPrimaryオーディオストリーム番号SPRM（１）、
字幕ストリーム番号SPRM（２）、
Secondaryビデオストリーム番号SPRM（２１）、
Secondaryオーディオストリーム番号SPRM（２２）が示すストリーム番号に対応するストリームを含むAVクリップ
を逐次、現在の再生位置から近い順にシーケンシャルに決定することが望ましい。
【００８４】
このようにすることで、本編映像を見る間ユーザは、字幕や音声を変えることはまれなので、ユーザに待ち時間を与えることなくプレイリストの再生を実現できる。
＜本編再生の中断防止＞
本編再生中に、字幕・音声・Secondaryビデオ・Secondaryオーディオのダウンロードが間に合わないため、DataStarvedイベントが発行されて、一時的に本編再生がストップしてしまうという状態を避けるためには、次のような処理をBD-Jアプリケーションに用意しておく。それは、例えば現在のPrimaryオーディオストリーム番号SPRM（１）で、そのストリーム番号に対応するストリームを含むAVクリップがまだEnable状態になっていない場合は、そのAVクリップを含むサブプレイアイテムに到達する前に、BD-JアプリケーションがSPRM（１）を「何もストリームが選択されていない」という特殊値か、すでにEnable状態になっている、もしくはディスク上に存在するAVクリップのストリーム番号を決定するように書き換える（この場合、あらかじめこの状況を想定してダミーのコンテンツをディスク上に用意しておくとよい）。このような構成にすることによりBDーJアプリケーションはDataStarvedイベントを発行させない制御が可能となる。上記の処理は、日本語音声を英語音声に切り替えるようなユーザ操作によるストリーム切り替えに対しても同じことがいえる。ストリーム切り替えSPRM（１）の書き換えが実際に発生する前にBD-Jアプリケーションがそれを禁止することで本編再生の一時的な再生停止を防ぐことができる。
【００８５】
(第２実施形態)
AVクリップ（XXX.M２TS）とクリップ情報ファイル（XXX.CLPI）、システムターゲットデコーダについて説明する。
＜AVクリップの内部構成＞
AVクリップは、MPEG-２トランスポートストリーム形式のデジタルストリームである。
【００８６】
図２１は、AVクリップの構成の一例を示す図である。本図に示すようにAVクリップは、ビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム（PG）、インタラクティブグラファイックスストリームのうち、１つ以上を多重化することで得られる。ビデオストリームは映画のPrimaryビデオおよびSecondaryビデオを、オーディオストリームは、映画のPrimaryオーディオ部分とそのPrimaryオーディオとミキシングするSecondaryオーディオを、プレゼンテーショングラフィックスストリームは、映画の字幕をそれぞれ示している。ここでPrimaryビデオとは画面に表示される通常の映像を示し、SecondaryビデオとはPrimaryビデオの中に小さな画面で表示する映像のことである。また、インタラクティブグラフィックスストリームは、画面上にGUI部品を配置することにより作成される対話画面を示している。AVクリップに含まれる各ストリームはPIDによって識別される。例えば、映画の映像に利用するビデオストリームには0x１０１１が、オーディオストリームには0x１１００から０x１１１Fまでが、プレゼンテーショングラフィックスには0x１２００から０x１２１Fまでが、インタラクティブグラフィックスストリームには0x１４００から０x１４１Fまでが、映画のSecondaryビデオに利用するビデオストリームには0x１B００から０x１B１Fまで、PrimaryオーディオとミキシングするSecondaryオーディオに利用するオーディオストリームには0x１A００から0x１A１Fが、それぞれ割り当てられている。
【００８７】
＜AVクリップにおける多重化＞
図２２は、AVクリップがどのように多重化されるかを模式的に示す図である。まず、ビデオストリーム、及び、オーディオストリームを(第１段目)、それぞれPESパケット列に変換し(第２段目)、TSパケット列に変換する(第３段目)。同じくプレゼンテーショングラフィックスストリームおよびインタラクティブグラフィックス７(第７段目)を、それぞれPESパケット列に変換し(エレメンタリストリーム)、更にTSパケット列に変換する(第５段目)。AVクリップ(第４段目)はこれらのTSパケットを１本のストリームに多重化することで構成される。
【００８８】
図２３は、PESパケット列に、ビデオストリームがどのように格納されるかを更に詳しく示している。本図における第１段目はビデオストリームのビデオフレーム列を示す。第２段目は、PESパケット列を示す。第３段目は、これらのPESパケット列を変換することで得られるTSパケット列を示す。本図の矢印yy１,yy２,yy３, yy４に示すように、ビデオストリームにおける複数のVideo Presentation UnitであるIピクチャ、Bピクチャ、Pピクチャは、ピクチャ毎に分割され、PESパケットのペイロードに格納される。各PESパケットはPESヘッダを持ち、PESヘッダには、ピクチャの表示時刻であるPTS（Presentation  Time-Stamp）やピクチャの復号時刻であるDTS（Decoding  Time-Stamp）が格納される。
【００８９】
＜TSパケット列＞
図２４は、AVクリップに最終的に書き込まれるTSパケットの形式を示している。第１段目は、TSパケット列を示し、第２段目は、ソースパケット列を示す。第３段目は、AVクリップを示す。
第１段目に示すようにTSパケットは、ストリームを識別するPIDなどの情報を持つ４Byteの「TSヘッダ」とデータを格納する１８４Byteの「TSペイロード」に分かれる固定長のパケットであり、前述で説明したPESパケットは分割されTSペイロードに格納される。
【００９０】
第２段目によると、TSパケットには、４ByteのTP＿Extra＿Headerが付与されて、１９２Byteのソースパケットに変換された状態で、AVクリップに書き込まれる。TP＿Extra＿HeaderにはATS（Arrival＿Time＿Stamp）などの情報が記載される。ATSは当該TSパケットのPIDフィルタへの転送開始時刻を示す。AVクリップには、第３段目に示すようにソースパケットが並ぶこととなり、AVクリップの先頭からインクリメントする番号はSPN（ソースパケットナンバー）と呼ばれる。
【００９１】
AVクリップに含まれるTSパケットには、映像・音声・字幕などの各ストリーム以外にもPAT（ProgramAssociation  Table）、PMT（Program Map  Table）、PCR（Program Clock  Reference）などがある。PATはAVクリップ中に利用されるPMTのPIDが何であるかを示し、PAT自身のPID配列で登録される。PMTは、AVクリップ中に含まれる映像・音声・字幕などの各ストリームのPIDと各PIDに対応するストリームの属性情報を持ち、またAVクリップに関する各種ディスクリプタを持つ。ディスクリプタにはAVクリップのコピーを許可・不許可を指示するコピーコントロール情報などがある。PCRは、ATSの時間軸であるATC（ArrivalTime Clock）とPTS・DTSの時間軸であるSTC（System  Time  Clock）の同期を取るために、そのPCRパケットがデコーダに転送されるATSに対応するSTC時間の情報を持つ。
【００９２】
図２５はPMTのデータ構造を詳しく説明する図である。PMTの先頭には、そのPMTに含まれるデータの長さなどを記した「PMTヘッダ」が配置される。その後ろには、AVクリップに関する「ディスクリプタ」が配置される。前述したコピーコントロール情報などが、ディスクリプタとして記載される。ディスクリプタの後には、AVクリップに含まれる各ストリームに関する「ストリーム情報＃1〜＃N」が複数配置される。ストリーム情報は、ストリームの圧縮コーデックなどを識別するためストリームタイプ、ストリームのPID、ストリームの属性情報（フレームレート、アスペクト比など）が記載されたストリームディスクリプタから構成される。ストリームディスクリプタはAVクリップに存在するストリームの数だけ存在する。  以上がAVクリップについての説明である。続いて、クリップ情報ファイルの詳細について説明する。
【００９３】
＜クリップ情報ファイル＞
図２６は、クリップ情報ファイルの一例を示す図である。クリップ情報ファイルは、本図に示すようにAVクリップの管理情報であり、AVクリップと１対１に対応し、ストリーム属性情報とエントリマップから構成される。
図２７は、ストリーム属性情報の一例を示す図である。ストリーム属性情報は本図に示すように、AVクリップに含まれる各ストリームについての属性情報が、PID毎に登録される。属性情報はビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム、インタラクティブグラフィックスストリーム毎に異なる情報を持つ。
【００９４】
「ビデオストリーム属性情報」は、そのビデオストリームがどのような圧縮コーデックで圧縮されたか、ビデオストリームを構成する個々のピクチャデータの解像度がどれだけであるか、アスペクト比はどれだけであるか、フレームレートはどれだけであるかなどの情報を持つ。
「オーディオストリーム属性情報」は、そのオーディオストリームがどのような圧縮コーデックで圧縮されたか、そのオーディオストリームに含まれるチャンネル数は何であるか、何の言語に対応するか、サンプリング周波数がどれだけであるかなどの情報を持つ。これらの情報は、再生機が再生する前のデコーダの初期化などに利用される。
【００９５】
図２８は、エントリマップの一例を示す図である。
エントリマップは、本図に示すように、AVクリップ内に含まれるビデオストリームの各フレーム内符号化画像（以下Iピクチャと呼ぶ）の表示時刻を示すPTSと各Iピクチャが開始するAVクリップのSPNが記載されたテーブル情報である。
ここではテーブルの１つの行で示される対となるPTSとSPNの情報をエントリポイントと呼ぶことにする。また先頭を０として各エントリポイント毎にインクリメントした値をエントリポイントID（以下EP＿ID）と呼ぶことにする。このエントリマップを利用することにより、再生機はビデオストリームの時間軸上の任意の地点に対応するAVクリップのファイル位置を特定することが出来るようになる。例えば、早送り・巻戻しの特殊再生の際には、エントリマップに登録されるIピクチャを特定し選択して再生することによりAVクリップを解析することなく効率的に処理を行うことが出来る。また、エントリマップはAVクリップ内に多重化される各ビデオストリーム毎に作られ、PIDで管理される。
【００９６】
以上がAVクリップ、クリップ情報ファイルについての説明である。続いて、システムターゲットデコーダ１３の詳細について説明する。
図２９は、システムターゲットデコーダ１３の内部構成の一例を示す図である。本図に示すように、システムターゲットデコーダ１３は、ソースデパケットタイザ３２a,bと、PIDフィルタ３３a,bと、Primaryビデオデコーダ３４と、Primaryビデオプレーン３５と、Secondaryビデオデコーダ３６と、Secondaryビデオプレーン３７と、PGデコーダ３８と、PGプレーン３９と、IGデコーダ４０と、IGプレーン４１と、Primaryオーディオデコーダ４２と、Secondaryオーディオデコーダ４３と、音声ミキサー４４と、BD-Jプロセッサ４５と、BD-Jプレーン４６と、加算部４７とから構成される。
【００９７】
ソースデパケットタイザ３２a,bは、システムターゲットデコーダ１３に転送されるソースパケットを解釈し、TSパケットを取り出しPIDフィルタに送出する。この送出にあたって、各ソースパケットのATSに応じてデコーダへの入力時刻を調整する。具体的には、ATCカウンタが生成するATCの値と、ソースパケットのATS値とが同一になった瞬間に、AVクリップの記録レートにしたがって、そのTSパケットだけをPIDフィルタに転送する。
【００９８】
PIDフィルタ３３a,bは、ソースデパケッタイザから出力されたTSパケットのうち、TSパケットのPIDが、再生に必要とされるPIDに一致するものを、PIDにしたがって、Primaryビデオデコーダ、Secondaryビデオデコーダ、IGデコーダ、PGデコーダ、音声デコーダ、Secondaryオーディオデコーダに転送する。例えば、BD-ROMの場合には、TSパケットに含まれるPIDが０x１０１１である場合はPrimaryビデオデコーダに、PIDが０x１B００から０x１B１Fである場合はSecondaryビデオデコーダ２５０５に、PIDが０x１１００から０x１１１Fである場合はPrimaryオーディオデコーダに、PIDが０x１A００から０x１A１Fである場合はSecondaryオーディオデコーダに、PIDが０x１２００から０x１２１Fである場合はPGデコーダ２５０７に、PIDが０x１４００から０x１４１Fである場合はIGデコーダ２５０６に転送される。
【００９９】
図２８の通りソースデパケッタイザとPIDフィルタはそれぞれ二つもち、一つはリードバッファ１１から転送されるAVクリップ、一つはリードバッファ１２から転送されるAVクリップを処理する。サブパスタイプが同期型の場合は、メインパスから参照されるAVクリップとサブパスから参照されるAVクリップは同期を取りながら再生する。サブパスタイプが非同期型の場合は、メインパスから参照されるAVクリップとサブパスから参照されるAVクリップは非同期で再生する。
【０１００】
Primaryビデオデコーダ３４は、緩衝バッファを有し、バッファにデータを蓄えながら、TSヘッダ、PESヘッダなどの情報を取り除いて、符号化状態にあるピクチャ(Iピクチャ、Bピクチャ、Pピクチャ)を取り出し、ビデオストリームの個々のフレーム画像を所定の復号時刻（DTS）ごとにデコードすることにより複数フレーム画像を作成し、表示時刻（PTS）のタイミングでPrimaryビデオプレーン３５に書き込む。AVクリップに多重化されるビデオストリームの圧縮符号化形式にはMPEG２、MPEG４AVC、VC１などがあるため、ストリームの属性に応じて、圧縮映像の復号化方式を切り替える。
【０１０１】
Primaryビデオプレーン３５は、Primaryビデオデコーダ３４によって得られたフレーム画像が格納される。
Secondaryビデオデコーダ３６は、Primaryビデオデコーダ３５と同様の構成を持ち、入力されるSecondaryビデオストリームのデコードを行い、表示時刻（PTS）のタイミングでピクチャをSecondaryビデオプレーンに書き出す。
【０１０２】
Secondaryビデオプレーン３７は、Secondaryビデオデコーダ３６によって得られたフレーム画像が格納される。
PGデコーダ３８は、ソースパケタイザから入力されるTSパケットからプレゼンテーショングラフィックスストリームを抽出してデコードし、非圧縮のグラフィックスデータを表示時刻（PTS）のタイミングでPGプレーンに書き出す。
【０１０３】
PGプレーン３９は、非圧縮のグラフィクスデータが格納される。
IGデコーダ４０は、ソースパケタイザから入力されるTSパケットからインタラクティブグラフィックスストリームを抽出してデコードし、非圧縮のグラフィックスデータを表示時刻（PTS）のタイミングでIGプレーンに書き出す。
IGプレーン４１には、非圧縮のグラフィクスデータが格納される。
【０１０４】
Primaryオーディオデコーダ４２は、緩衝バッファを有し、バッファにデータを蓄えながら、TSヘッダ、PESヘッダなどの情報を取り除いて、音声ストリームデコード処理を行い、非圧縮のLPCM状態のオーディオデータを得て再生時刻（PTS）のタイミングで音声ミキサーに出力する。AVクリップに多重化されるオーディオストリームの圧縮符号化形式にはAC３、DTSなどがあるため、ストリームの属性に応じて、圧縮音声の復号化方式を切り替える。
【０１０５】
Secondaryオーディオデコーダ４３は、Primaryオーディオデコーダと同様の構成を持ち、入力されるSecondaryオーディオストリームのデコードを行い、表示時刻のタイミングで非圧縮のLPCMの状態のオーディオデータを音声ミキサーに出力する。AVクリップに多重化されるオーディオストリームの圧縮符号化形式にはDolbyDigitalPlus、DTS-HD  LBRなどがあるため、ストリームの属性に応じて、圧縮音声の復号化方式を切り替える。
【０１０６】
音声ミキサー４４は、Primaryオーディオデコーダから出力される非圧縮音声データとSecondaryオーディオデコーダから出力される非圧縮音声データとをミキシング（音の重ね合わせ）をしてスピーカなどに出力する。
BD-Jプロセッサ４５は、BD-J実行部から転送されるPNG形式又はJPEG形式のグラフィクスデータをデコードして、BD-Jアプリケーションから指定される表示時刻にしたがって、BD-Jプレーンに出力する。
【０１０７】
BD-Jプレーン４６には、BD-Jプロセッサ４５によってデコードされたグラフィクスデータが格納される。
加算部４７は、Primaryビデオプレーン、Secondaryビデオプレーン、IGプレーン、PGプレーン、BD-Jプレーンに書かれたデータを瞬時に重畳し、TVなどの画面に表示する。
以上のように本実施形態によれば、BD-ROMプレーヤモデルに準拠した内部構成を実現しすることにより、プレイリストの再生を実現することができる。
【０１０８】
(第３実施形態)
本実施形態では、プレイリスト情報の詳細なデータ構造と、カレントセカンダリビデオストリームの決定の仕方とを述べる。
図３０は、プレイリスト情報のデータ構造を示す図であり、本図に示すようにプレイリスト情報は、MainPathを定義するMainPath情報(MainPath())と、Subpathを定義するサブパス情報(Subpath())とを含む。
【０１０９】
＜プレイリスト情報の説明その１.サブパス情報＞
MainPathが、プライマリビデオたるMainClipに定義される再生経路であるのに対し、Subpathは、MainPathと同期すべきSubClipに対して定義される再生経路である。
図３１は、サブパス情報の内部構成をクローズアップして示す図である。本図における矢印hc0に示すように各Subpathは、サブパスの類型を示すSubPath＿typeと、1つ以上のSubPlayItem情報(・・・SubPlayItem()・・・)とを含む。
【０１１０】
図中の引き出し線hc1は、SubPlayItem情報の構成をクローズアップしている。
SubPlayItemは、メインパスから分離した、1以上のエレメンタリストリーム再生パスを定義し、当該パスをメインパスとどのように同期するかという類型を表現するのに使われる。SubPlayItemで使用されるのが、ThePrimary audio / PG / IG / Secondary audio / Secondary video のサブパスであるなら、これらのSubPlayItemは、PlayList中のPlayItemを使っているメインパスと同期することになる。このエレメンタリストリーム再生のためのサブパスによって使われるエレメンタリストリームは、MainPath側のPlayItemによって使われるMainClipから分離したClip、つまりSubClipに多重化される。
【０１１１】
以降、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』は、クリップ情報のファイル名を記述することにより、SubPlayItemに対応するSubClipを一意に指定する情報である。
【０１１２】
『Clip＿codec＿identifier』は、AVクリップの符号化方式を示す。
『ref＿to＿STC＿id[0]』は、このSubPlayItemが対象としているSTC＿Sequenceを一意に示す。
『SubPlayItem＿In＿time』は、SubClipの再生時間軸上における、SubPlayItemの始点を示す情報である。
【０１１３】
『SubPlayItem＿Out＿time』は、SubClipの再生時間軸上における、SubPlayItemの終点を示す情報である。
『sync＿PlayItem＿id』は、MainPathを構成するPlayItemのうち、本SubPlayItemが同期すべきものを一意に指定する情報である。SubPlayItem＿In＿timeは、このsync＿PlayItem＿idで指定されたPlayItemの再生時間軸上に存在する。
【０１１４】
『sync＿start＿PTS＿of＿PlayItem』は、sync＿PlayItem＿idで指定されたPlayItemの再生時間軸上において、SubPlayItem＿In＿timeで指定されたSubPlayItemの始点が、どこに存在するかを45KHzの時間精度で示す。あるSubPlayItemがセカンダリビデオストリーム上の再生区間を定義していて、そのSubPlayItemのsync＿start＿PTS＿of＿PlayItemが、PlayItem時間軸における一時点を示している場合、そのSubPlayItemは、“同期ピクチャインピクチャ”を実現することになる。
【０１１５】
また、このSync＿Start＿Pts＿of＿PlayItemには、不定値(0xFFF)を設定することもできる。この不定値は、Sync＿PlayItem＿Idにて指定されたPlayItemの時間軸において、ユーザによりロック操作がなされた時点を、Sync＿PlayItem＿Idにて指定されたPlayItemとの同期時点に定める旨を示す。sync＿start＿PTS＿of＿PlayItemが不定値に設定されており、尚且つSubPlayItemが、セカンダリビデオストリームの再生を意図している場合、かかるSubPlayItemは、“非同期ピクチャインピクチャ”を実現することになる。
【０１１６】
以上が、SubPath情報についての説明である。
＜STN＿table＞
プレイリスト情報において特徴的であるのは、STN＿Tableである。
STN＿tableは、PlayItem情報のClip＿Information＿file＿nameで指定されているAVクリップに多重化された複数エレメンタリストリーム、SubPlayItem情報のClip＿Information＿file＿nameで指定されているOut＿of＿MUXストリームのうち、再生可能なものを示すテーブルである。具体的にいうとSTN＿tableは、MainClipに多重化されている複数In＿MUXストリーム、SubClipに多重化されているOut＿of＿MUXストリームのそれぞれについてのStream＿entryを、Stream＿attributeと対応付けることで構成される。
【０１１７】
図３２は、STN＿tableの全体構成の一例を示す図である。図３３は、図３２に示したSTN＿tableの全体構成のうち、セカンダリビデオストリームについてのstream＿entryの一例を示す図である。本図に示すようにSTN＿tableは、n個のSecondary＿video＿stream＿entry「Secondary＿video＿stream＿entry[1]〜Secondary＿video＿stream＿entry[n]」と、セカンダリビデオストリームの個数「number＿of＿Secondary＿video＿stream＿entries(=n)」とから構成される。
【０１１８】
引き出し線hs1は、Secondary＿video＿stream＿entry[1]の内部構成をクローズアップして示している。つまり、Secondary＿video＿stream＿entry[1]〜Secondary＿video＿stream＿entry[n]は、同一のクラス構造体から生成した複数のインスタンスであり、その内部構成は、どれも、この引き出し線hs1に示すものと同じになる。そして、Secondary＿video＿stream＿entryにおける括弧書き[]の中の数値は、Secondary＿video＿stream＿entryが、STN＿tableにおいて何番目に位置するかという、Secondary＿video＿stream＿entryの順位を示す。
【０１１９】
引き出し線hs1に示すように、Secondary＿video＿stream＿entry[1]は、SecondaryVideo Stream Number=1に対応するPIDを再生装置に提示する「Stream＿entry」と、Secondary Video StreamNumber=1に対応するビデオ属性を示す「Stream＿attribute」と、econdary Video Stream Number=1の設定時にて、再生可能となるセカンダリオーディオストリームを示す「Comb＿info＿Secondary＿Video＿Secondary＿Audio」と、SecondaryVideo Stream Number=1の設定時にて、再生可能となるPGストリーム又はテキスト字幕ストリームを示す「Comb＿info＿Secondary＿Video＿PiP＿PG＿textST()」とからなる。
【０１２０】
引き出し線hs2に示すように、Secondary＿video＿stream＿entry[2]は、SecondaryVideo Stream Number=2に対応するPIDを再生装置に提示する「Stream＿entry」と、Secondary Video StreamNumber=2に対応するビデオ属性を示す「Stream＿attribute」と、Secondary Video Stream Number=2の設定時にて、再生可能となるセカンダリオーディオストリームを示す「Comb＿info＿Secondary＿Video＿Secondary＿Audio」と、SecondaryVideo Stream Number=2の設定時にて、再生可能となるPGストリーム又はテキスト字幕ストリームを示す「Comb＿info＿Secondary＿Video＿PiP＿PG＿textST()」とからなる。
【０１２１】
引出線hs3についても同様である。以上のように、STN＿tableにおいてx番目に位置するsecondary＿video＿stream＿entry[x]は、セカンダリビデオストリーム番号がxに設定された際、そのxに対応するセカンダリビデオストリームのPIDは何か、そのセカンダリビデオストリームのビデオ属性はどのようなものか、どのようなセカンダリオーディオストリーム、PGTextSTストリームと組合せ可能であるかを再生装置に指示する。
【０１２２】
字幕を表すストリームには、これまでの実施形態で述べたプレゼンテーショングラフィクスストリームの他に、テキストコードによって表現されたテキスト字幕ストリームがある。ここでのPGテキスト字幕ストリームとは、プレゼンテーショングラフィクスストリームと、テキスト字幕ストリームとを併せた呼び名である。また、ピクチャインピクチャに使用されるPGテキスト字幕ストリームをPiP＿PG＿テキスト字幕ストリームと呼ぶ。
【０１２３】
図３４（ａ）は、プライマリビデオストリームにおけるStream＿entry及びStream＿attributの一例を示す図である。Stream＿entryは、プライマリビデオストリームを構成するPESパケットの、パケット識別子を示す『ref＿to＿stream＿PID＿of＿mainClip』を含む。
Stream＿attributeは、ビデオストリームの表示方式を示す『Video＿format』と、ビデオストリームの表示周波数を示す『frame＿rate』を含む。
【０１２４】
図３４（ｂ）は、セカンダリビデオストリームにおけるStream＿entryを示す。本図に示すように、SecondaryビデオストリームのStream＿entryは、Secondaryビデオストリームを参照しているSubPath情報を示す『ref＿to＿Sub＿Path＿id』、Secondaryビデオストリームを構成するPESパケットの、パケット識別子を示す『ref＿to＿stream＿PID＿of＿mainClip』を含む。
【０１２５】
以上が、本実施形態における記録媒体の詳細についての説明である。
以降、PSR1、PSR14、PSR31について説明する。PSRにおける語長は、32ビットである。PSRの一語(32ビット)を構成する各ビットデータのビット位置を、以降、b0〜b31と呼ぶことにする。この呼び方では、PSRの最上位ビットはb31、最下位ビットはb0と呼ばれることになる。
【０１２６】
＜PSR14＞
図３５（ａ）は、PSR14のビットアサインの一例を示す図である。
本図によると、32ビット長のPSR14におけるb8〜b15は、セカンダリビデオストリームのストリーム番号であり、カレントPlayItemのSTN＿tableにentryが記述されている複数Secondaryビデオストリームのうち、1つを特定する。PSR14の設定値が変化すれば、再生装置はこの変化後のSecondaryビデオストリームを再生する。PSR14におけるセカンダリビデオストリームのストリーム番号は初期値として0xFFが設定されており、再生装置により1〜32の値に設定されうる。この0xFFは、不定値であり、Secondaryビデオストリームが存在しない旨、又は、Secondaryビデオストリームが選択されてない旨を示す。1〜32の設定値は、Secondaryビデオストリームのストリーム番号として解釈される。
【０１２７】
PSR14のb31は、disp＿v＿flagであり、セカンダリビデオを再生する能力が再生装置に存在するか(1b:Presentationof Secondary Video is enable)、セカンダリビデオを再生する能力が再生装置に存在しないか(0b:Presentation ofSecondary Video is disable)を示す。
＜PSR29＞
図３５（ｂ）は、PSR29のビットアサインの一例を示す図である。
【０１２８】
PSR29のb0は、HD＿Secondary＿video＿Capabilityであり、HDTV対応のセカンダリビデオを再生する能力が再生装置に存在するか(1b:HDSecondary Video is capable)、HDTV対応のカンダリビデオを再生する能力が再生装置に存在しないか(0b:HD SecondaryVideo is incapable)を示す。
PSR29のb1は、50&25Hz＿video＿Capabilityであり、50&25Hzビデオ、つまりPAL方式のビデオを再生する能力が再生装置に存在するか(1b:50&25HzVideo is capable)、50&25Hzビデオを再生する能力が再生装置に存在しないか(0b:50&25Hz Video isincapable)を示す。
【０１２９】
以上が、PSRセット２３についての説明である。
図３６は、再生制御エンジンの内部構成の一例を示す図である。本図に示すように、再生制御エンジン部は、Procedure実行部４８、PID変換部４９を含む。
Procedure実行部４８は、あるPlayItem情報から別のPlayItem情報への切り換わりが生じた場合、又はストリーム番号を切り換える旨の操作がユーザによりなされた場合、所定のストリーム選択プロシージャを実行して、PSR14に新たなセカンダリビデオストリームのストリーム番号を書き込む。再生装置は、PSR14に書き込まれたストリーム番号に応じて、セカンダリビデオストリームを再生するので、かかるPSR14の設定を通じて、セカンダリビデオストリームが選択されることになる。
【０１３０】
PlayItem情報の切り換わり時に、ストリーム選択プロシージャを実行するのは、STN＿TableはPlayItem情報毎に存在するので、あるPlayItem情報においては再生可能であったセカンダリビデオストリームが、別のPlayItem情報において再生不可能になることが有り得るからである。
PID変換部４９は、PSRセット２３に格納されているストリーム番号を、STN＿Tableに基づき、PID参照値に変換して、変換結果たるPID参照値をPIDFilter３３a、PID Filter３３bに指示する。
【０１３１】
図３７は、カレントセカンダリビデオストリームを選択するためのストリーム選択プロシージャの処理手順を示すフローチャートである。
ステップＳ７１では、PSR14に設定された番号のセカンダリビデオストリームが、以下の条件(A)、条件(B)を満たすか否かをチェックする。、
条件(A):Video format,frame＿rateと、HDSecondary Video Capabilityや50&25Hz Video Capabilityとの比較では、PSR14に格納された番号により定められるセカンダリビデオストリームの再生能力が再生装置に存在している。
【０１３２】
条件(B)：セカンダリビデオストリームにおけるSubPath＿Typeは、“=6(非同期ピクチャインピクチャ)”である
ここで、Video format,frame＿rateは、STN＿tableにおいて、セカンダリビデオストリームについてのstream＿attributeに記載されている。また、HDSecondary Video Capabilityや50&25Hz Video Capabilityの有無は、PSR29のb0,b1に示されている。これらSTN＿tableによる設定と、PSR29のb1の値とを照合することで、条件(A)を具備しているかどうかの判断がなされる。
【０１３３】
ステップＳ７１の実行後、ステップＳ７２、ステップＳ７３を実行する。
ステップＳ７２は、カレントプレイアイテムのSTN＿tableにおけるセカンダリビデオストリームのSTN＿tableにおけるStream＿entryの個数が0であるか否かを判定する判定ステップである。ここでセカンダリビデオストリームのSTN＿tableにおけるStream＿entryの個数が0であることは、再生許可されているセカンダリビデオストリームが1つも存在しないことを意味する。もし0である場合、PSR14のセカンダリビデオストリーム番号を維持する(ステップＳ７３)。カレントプレイアイテムにおいて、再生許可されているセカンダリビデオストリームが存在しない以上、PSR14の現状値を維持すべきだからである。
【０１３４】
ステップＳ７４は、ステップＳ７３が0でないと判定された場合、実行される判定ステップであり、PSR14に格納された番号XがSTN＿tableにおけるstream＿entryの総数以下であり、且つ、条件(A)を満たすかどうかを判定する。このステップＳ７４がYesと判定されたなら、カレントプレイアイテムについて最適なカレントセカンダリビデオストリームを選択する(ステップＳ７５)。
【０１３５】
もしステップＳ７４において、Noと判定されたなら、ステップＳ７６の判定ステップを実行する。この判定ステップは、条件(B)を満たすかどうかを判定するものである。条件(B)を満たせば、ステップＳ７８におけるPSR14に、OxFEを設定する。このOxFEは、PSR14におけるセカンダリビデオストリーム番号はValidだが、セカンダリビデオストリームは非選択であることを意味する値である。非同期ピクチャインピクチャの実行時において、かかる値をPSR14に設定しておけば、ユーザ操作があった際、カレントストリームの決定手順が実行されることになる。しかし、仮に、PSR14のストリーム番号がInvalidであれば、たとえユーザ操作がなされたとしても、カレントストリームの決定手順は実行されず、いつまでたっても、セカンダリビデオストリームが再生されないという事態に陥る。これを避けるため、非同期ピクチャインピクチャの実行時においては、PSR14にOxFEを設定することにしている。
【０１３６】
条件(B)は満たさないが、有効なセカンダリビデオストリーム番号が既にPSR14に存在するなら、これを変化させない(ステップＳ７７)。
以上が、セカンダリビデオストリームにおけるストリーム選択プロシージャについての説明である。
図３８は、カレントプレイアイテムについて最適なカレントセカンダリビデオストリームを選択する処理手順を示すフローチャートである。
【０１３７】
ステップＳ８１〜ステップＳ８３では、以下の条件(a)、条件(b)が満たされているかのチェックを、STN＿tableにおける全てのstream＿entryに記述されているストリームに対して実行する。
条件(a):セカンダリビデオストリームについてのVideo format、frame＿rateと、HDSecondary Video Capabilityや50&25Hz Video Capabilityとの比較では、PSR14に格納された番号により定められるセカンダリビデオストリームの再生能力が再生装置に存在している。
【０１３８】
条件(b)：セカンダリビデオストリームにおけるSubPath＿Typeは、“=6(非同期ピクチャインピクチャ)”である
以上のようなチェックが、STN＿tableにおいて再生許可されている全てのセカンダリビデオストリームについてなされれば、ステップＳ８４の判定ステップを実行する。
ステップＳ８４は、条件(a)を満たすセカンダリビデオストリームが1つも存在しないか否かの判定であり、もしそうであれば、0xFFFをセカンダリビデオストリームについてのストリーム番号としてPSR14に設定する(ステップＳ８５)。
【０１３９】
もしセカンダリビデオストリームが1つでも存在するなら、ステップＳ８４がYesになり、ステップＳ８６が実行されることになる。ステップＳ８６は、条件(a)を満たすセカンダリビデオストリームであって、STN＿tableにおいて先頭順位になっているものは、条件(b)を満たすかどうかを判定する。もし条件(b)を満たすなら、ステップＳ８７において0xFEとなるセカンダリビデオストリーム番号をPSRに設定する。
【０１４０】
条件(b)を満たさないなら、条件(a)を満たすセカンダリビデオストリームのうち、対応するStream＿EntryがSTN＿tableにおいて先頭順位に位置するものを選択して、選択したセカンダリビデオストリームのストリーム番号を、PSR14に設定する(ステップＳ８８)。
カレントセカンダリビデオストリームにおける再生区間がSubPlayItemによって規定されていれば、カレントセカンダリビデオストリームにおける再生区間を規定しているサブプレイアイテムをカレントサブプレイアイテムとして特定されることになる。
【０１４１】
これらの手順を経て、カレントプレイアイテムにとって最適なカレントセカンダリビデオストリームがPSR14に格納されることになる。以上が、最適なカレントセカンダリビデオストリーム番号を選択するための選択手順である。
以上のように本実施形態によれば、BD-ROMやローカルストレージに記録されているセカンダリビデオストリームの中に、再生不能なものが存在したとしても、次のストリームを選ぶという手順を実行することで、「自身が再生できるものをピクチャインピクチャに用いる」という選択の余地がうまれる。従って、セカンダリビデオの総サイズ自体にバラツキがあり、再生装置におけるセカンダリビデオの再生能力の有無にバラツキががあったとしても、何等かのセカンダリビデオを再生装置に表示させ、ピクチャインピクチャを実行させることができる。
【０１４２】
そうして選択されたセカンダリビデオに対応するセカンダリビデオストリームを包含しているAVクリップがサブプレイアイテムによって参照されている場合、かかるAVクリップがUnavailableクリップであると、再生が中断することになる。よって、カレントセカンダリビデオストリームを包含しているAVクリップであって、サブプレイアイテム情報から参照されているもののダウンロードを急げば、再生が中断することはないのでスムーズな再生進行を確保することができる。
【０１４３】
(第４実施形態)
再生されるべきプレイリストが、立体視映像用のプレイリストである場合の改良である。
立体視を実現する手法としては、ホログラフィ技術を用いる方法と、視差画像を用いる方式とがある。
【０１４４】
まず、１つ目のホログラフィ技術の特徴としては、人間が通常物体を認識するのと全く同じように物体を立体として再現することができるが、動画生成に関しては、技術的な理論は確立しているが、ホログラフィ用の動画をリアルタイムで生成する膨大な演算量を伴うコンピューター、及び1mmの間に数千本の線を引けるだけの解像度を持ったディスプレイデバイスが必要であるが、現在の技術での実現は非常に難しく、商用として実用化されている例はほとんどない。
【０１４５】
２つ目の視差画像を用いた方式である。この方式のメリットは、高々右目用と左目用の２つの視点の映像を準備するだけで立体視を実現できることにあり、技術的には、左右のそれぞれの目に対応した絵を、いかにして対応した目にだけ見せることができるかの観点から、継時分離方式を始めとするいくつかの技術が実用化されている。
この立体視を実現するため、第１実施形態に説明した、再生装置、テレビを含むホームシアターシステムには、継時型ステレオゴーグルが存在する。
【０１４６】
図３９は、継時型ステレオゴーグルの一例を示す図である。本図（ａ）は、立体視を実現することができるホームシアターシステムを示す。本図のホームシアターシステムには、テレビ１０４の付属品として継時型ステレオゴーグル１０５が存在する。
同図（ｂ）は、継時型ステレオゴーグル１０５をユーザが装着した状態を示す。継時型ステレオゴーグル１０５は、液晶シャッターを備え、継時分離方式による視差画像をユーザに視聴させる。視差画像とは、右目に入る映像と、左目に入る映像とから構成される一組の映像であり、それぞれの目に対応したピクチャーだけがユーザの目に入るようにして立体視を行わせる。
【０１４７】
継時分離方式とは、左目用映像及び右目用映像を時間軸方向で交互に表示させ、目の残像反応により左右のシーンを脳内で重ね合わさせて、立体映像として認識させる方法である。本図（ｃ）は、平面視を実現する場合の継時型ゴーグル１０５の状態を示す。平面視を実現する場合、両眼の液晶シャッターが透光状態になる。同図（ｄ）は、左目用映像の表示時を示す。ディスプレイ上に左目用の映像が表示されている瞬間において、前述の継時型ステレオゴーグル１０５は、左目に対応する液晶シャッターを透過にし、右目に対応する液晶シャッターは遮光する。同図（ｅ）は、右目用映像の表示時を示す。ディスプレイ上に右目用の映像が表示されている瞬間において、先ほどと逆に右目に対応する液晶シャッターを透過にし、左目に対応する液晶シャッターを遮光する。
【０１４８】
この方式では、左右の映像を時間軸方向で交互に表示させるために、例えば、通常の2次元の映画であれば1秒に２４枚の映像を表示させるのに対して、左右の映像合わせて１秒に４８枚の映像を表示させる必要がある。従って、この方式では、一画面の書き換えが比較的早いディスプレイにおいて好適であるが、1秒間に所定の回数書き換え可能なディスプレイであれば限定されない。
【０１４９】
また、別の方法としては、先ほどの継時型ステレオゴーグル１０５では左右のピクチャーを時間軸方向で交互に出力していたのに対して、一画面中の縦方向に左目用のピクチャーと右目用のピクチャーを同時に交互に並べ、ディスプレイ表面にレンチキュラーレンズと呼ばれる蒲鉾上のレンズを通して、左目用のピクチャーを構成する画素は左目だけに結像し、右目用のピクチャーを構成する画素は右目だけに結像するようにすることで、左右の目に視差のあるピクチャーを見せ、立体視を実現させる方式がある。なお、レンチキュラーレンズだけでなく、同様の機能を持たせたデバイス、例えば液晶素子を用いてもよいし、また左目用の画素には縦偏光のフィルター、右目用の画素には横偏光のフィルターを設置し、視聴者は、左目用には縦偏光、右目用には横偏光のフィルターを設置した偏光メガネを用いてディスプレイを見ることによって立体視が可能となる。
【０１５０】
この視差画像を用いた立体視は、既に遊園地の遊具などで一般的に使用されており、技術的にも確立されているため、家庭における実用化に最も近いものと言える。なお、視差画像を用いた立体視のための方法はこの他にも、2色分離方式などさまざまな技術が提案されており、本実施形態においては、継時分離方式あるいは偏光メガネ方式を例として用いて説明するが、視差画像を用いる限りこれら２方式に限定するものではない。
【０１５１】
本実施形態では、立体視に使う視差画像を情報記録媒体に格納する方法を説明する。ここでは、左目用の画面が格納された映像を「左目映像」、右目用の画面が格納された映像を「右目映像」、両方の映像のことを「立体視映像」と呼ぶことにする。
＜プライマリビデオストリーム、セカンダリビデオストリームの改良＞
本実施形態におけるプライマリビデオストリームは、平面視再生装置では平面視映像として、平面視/立体視映像再生装置で立体視映像を再生する際の左目映像として再生されるビデオストリームである。このビデオストリームを平面視/左目視聴用ビデオストリームと呼ぶことにする。
【０１５２】
本実施形態におけるセカンダリビデオストリームは、右目視聴用ビデオストリームが格納されている。右目視聴用ビデオストリームは、平面視/立体視再生装置で立体視映像を再生する際の右目用の映像として再生されるビデオストリームである。右目視聴用ビデオストリームは、プライマリビデオストリームのPIDと異なる0x1012が割り当てられている。続いて、平面視/左目視聴用ビデオストリームと、右目視聴用ビデオストリームの構造について説明する。
【０１５３】
ただし、左右の視点からは同じ被写体を見るため映像の相関が大きいため、視点間のピクチャ間予測符号化を行うことで、右目用ビデオストリームは平面視/左目視聴用ビデオストリームに比べてデータ量を大幅に削減できる。また、平面視/左目視聴用ビデオストリームのフレームレートは、平面視/左目視聴用ビデオストリーム単体で平面視再生装置が再生したときのフレームレートであり、この値がGOPヘッダに格納される。
【０１５４】
図４０は、立体視のためのプライマリビデオストリーム、セカンダリビデオストリームの内部構成の一例を示す図である。
本図の第２段目は、プライマリビデオストリームの内部構成を示す。このプライマリビデオストリームには、ピクチャデータI1,P2,Br3,Br4,P5,Br6,Br7,P9というピクチャデータが含まれている。これらのピクチャデータは、DTSに従いデコードされる。第１段目は、右目画像を示す。そうしてデコードされたピクチャデータI1,P2,Br3,Br4,P5,Br6,Br7,P9をPTSに従い、I1,Br3,Br4,P2,Br6,Br7,P5の順序で再生することで、右目画像が再生されることになる。
【０１５５】
第４段目は、セカンダリビデオストリームの内部構成を示す。このセカンダリビデオストリームは、P1,P2,B3,B4,P5,B6,B7,P8というピクチャデータが含まれている。これらのピクチャデータは、DTSに従いデコードされる。第１段目は、左目画像を示す。そうしてデコードされたピクチャデータP1,P2,B3,B4,P5,B6,B7,P8をPTSに従い、P1,B3,B4,P2,B6,B7,P5の順序で再生することで、左目画像が再生されることになる。
【０１５６】
第５段目は、継時型ゴーグル１０５の状態をどのように変化させるかを示す。この第５段目に示すように、左目画像の視聴時は、右目のシャッターを閉じ、右目画像の視聴時は、左目のシャッターを閉じていることがわかる。
これらのプライマリビデオストリーム、セカンダリビデオストリームは、時間方向の冗長性を利用したピクチャ間予測符号化に加えて、視点間の冗長性を利用したピクチャ間予測符号化によって圧縮されている。右目視聴用ビデオストリームのピクチャは、平面視/左目視聴用ビデオストリームの同じ表示時刻のピクチャを参照して圧縮されている。
【０１５７】
例えば、右目視聴用ビデオストリームの先頭Pピクチャは、平面視/左目視聴用ビデオストリームのIピクチャを参照し、右目視聴用ビデオストリームのBピクチャは、平面視/左目視聴用ビデオストリームのBrピクチャを参照し、右目視聴用ビデオストリームの二つ目のPピクチャは、平面視/左目視聴用ビデオストリームのPピクチャを参照している。
＜ビデオアクセスユニット＞
平面視/左目視聴用ビデオストリームと右目視聴用ビデオストリームの各ビデオアクセスユニットに割り当てる表示時刻（PTS）、デコード時刻（DTS）の関係は、図４０の時間軸に示す通りである。平面視/左目視聴用ビデオストリームにおける各ピクチャデータのDTSと、右目視聴用ビデオストリームにおける各ピクチャデータのDTSは時間軸上で交互になるように設定され、平面視/左目視聴用ビデオストリームにおける各ピクチャデータのPTSと、右目視聴用ビデオストリームのにおける各ピクチャデータのPTSも時間軸上で交互になるように設定される。これは、ピクチャ間予測符合化の参照関係にある平面視/左目視聴用と右目視聴用のピクチャのデコード順、表示順を交互に設定することで実現できる。
【０１５８】
また、平面視/左目視聴用のフレームと次の右目視聴用のフレーム間のDTSの時間間隔は、平面視/左目視聴用の１フレームの表示時間間隔の半分になるように設定する。同様に、平面視/左目視聴用のフレームと次の右目視聴用のフレーム間のPTSの時間間隔は、平面視/左目視聴用の１フレームの表示間隔の半分になるように設定する。
＜立体視表示ディレイ＞
平面視/左目視聴用ビデオストリームのピクチャと同じ表示時刻の右目視聴用ビデオストリームのピクチャのPTSの間隔の差分を立体視表示ディレイとする。立体視表示ディレイは、平面視/左目視聴用ビデオストリームの１フレームの表示間隔の半分の値となる。
【０１５９】
＜立体視プレイリスト＞
立体視プレイリストには、右目視聴用を格納するためのサブパスが用意されている。サブパスは右目視聴用を格納する複数のAVクリップを参照しており、メインパスと時間軸上で同期するように設定される。この構造により、平面視プレイリストと立体視プレイリストで、平面視/左目視聴用が格納されたAVクリップを共有することができ、立体視プレイリストでは左目映像と右目視聴用を時間軸上で同期させて関連付けることができる。
【０１６０】
立体視プレイリストと、平面視プレイリストとを区別するため、プレイリスト情報には立体視フラグが存在する。立体視フラグは、プレイリスト情報内のストリーム番号テーブルにおいてセカンダリビデオストリームの再生が許可されていて、セカンダリビデオストリームを再生することによる立体視が可能であるか否かを示す。
以上が記録媒体の改良である。続いて、再生装置の詳細について説明する。本実施形態における再生装置は、Primaryビデオプレーン３５が、2D/左目映像プレーン６１と、右目視聴用プレーン６２とに置き換えられている。そして、ｑ１３がｚ４１のような内部構成を有する。
【０１６１】
図４１は、システムターゲットデコーダ１３の内部構成の一例を示す図である。本図の内部構成のうち、Secondaryビデオデコーダ、IGデコーダ、PGデコーダ、Primaryオーディオデコーダ、Secondaryオーディオデコーダ、音声ミキサー、イメージプロセッサの構成は第１実施形態で説明した平面視用の再生装置と同じであるため省略する。
ソースデパケットタイザ３２aは、リードバッファ１１に蓄えられたソースパケットを解釈し、TSパケットを取り出し、PIDフィルタ３３aに送出する。
【０１６２】
ソースデパケットタイザ３２bは、リードバッファ１１に蓄えられたソースパケットを解釈し、TSパケットを取り出し、PIDフィルタ３４bに送出する。この送出にあたって、各ソースパケットのATSに応じてデコーダへの入力時刻を調整する。具体的には、ATCカウンタが生成するATCの値と、ソースパケットのATS値とが同一になった瞬間に、AVクリップの記録レートにしたがって、そのTSパケットだけをPIDフィルタに転送する。
【０１６３】
PIDフィルタ３３aは、ソースデパケッタイザ３２aから出力されたTSパケットのうち、TSパケットのPIDが、再生に必要とされるPIDに一致するものを、PIDにしたがって、3DビデオデコーダのTB３１、Secondaryビデオデコーダ、IGデコーダ、PGデコーダ、音声デコーダ、Secondaryオーディオデコーダに転送する。また、PIDフィルタ３４は、ソースデパケッタイザ３２aから出力されたTSパケットのうち、TSパケットのPIDが、再生に必要とされるPIDに一致するものを、PIDにしたがって、3DビデオデコーダのTB５１に転送する。
【０１６４】
3Dビデオデコーダ５０は、TB５１、M５２、EB５３、TB５８、M５９、デコーダ５４、DPB５５、バッファスイッチ５６、ピクチャスイッチ５７、EB６０から構成される。
TB５１は、2D/左目映像ビデオストリームを含むTSパケットがPIDフィルタ３３から出力された際、TSパケットのまま一旦蓄積されるバッファである。
MB５２は、TB５１からEB５３にビデオストリームを出力するにあたって、一旦PESパケットを蓄積しておくためのバッファである。TB５１からMB５２にデータが転送される際に、TSパケットのTSヘッダは取り除かれる。
【０１６５】
EB５３は、符号化状態にあるビデオアクセスユニットが格納されるバッファである。MB５２からEB５３にデータが転送される際にPESヘッダが取り除かれる。
TB５８は、右目視聴用ビデオストリームを含むTSパケットがPIDフィルタ３４から出力された際、TSパケットのまま一旦蓄積されるバッファである。
MB５９は、TB５８からEB６０にビデオストリームを出力するにあたって、一旦PESパケットを蓄積しておくためのバッファである。TB５８からMB５９にデータが転送される際に、TSパケットのTSヘッダは取り除かれる。
【０１６６】
EB６０は、符号化状態にあるビデオアクセスユニットが格納されるバッファである。MB５９からEB６０にデータが転送される際にPESヘッダが取り除かれる。
デコーダ５４は、ビデオエレメンタリストリームの個々のビデオアクセスユニットを所定の復号時刻（DTS）でデコードすることによりフレーム/フィールド画像を作成する。AVクリップに多重化されるビデオストリームの圧縮符号化形式にはMPEG２、MPEG４AVC、VC１などがあるため、ストリームの属性に応じて、デコーダ５４のデコード方法は切り替えられる。デコーダ５４は、デコードされたフレーム/フィルド画像をDPB５５に転送し、表示時刻（PTS）のタイミングで対応するフレーム/フィールド画像をピクチャスイッチに転送する。
【０１６７】
DPB５５は、復号されたフレーム/フィールド画像を一時的に保持しておくバッファである。デコーダ５４が、ピクチャ間予測符号化されたPピクチャやBピクチャなどのビデオアクセスユニットをデコードする際に、既にデコードされたピクチャを参照するために利用する。
バッファスイッチ５６は、EBとEBに蓄えられたピクチャをビデオアクセスユニットに割り当てられた復号時刻（DTS）のタイミングでデコーダ５４に転送する。また、デコーダ５４がビデオアクセスユニットをデコードする際に取得したデコードスイッチ情報を使って、次のアクセスユニットをEB、EBのどちらから引き抜くかを決定しても良い。また、2D/左目映像ビデオストリームと右目視聴用ビデオストリームのDTSは時間軸上でピクチャ単位で交互に来るように設定されているため、例えばDTSを無視して前倒しでデコードするようなデコーダ５４の場合には、ピクチャ単位でビデオアクセスユニットをデコーダ５４に転送しても良い。
【０１６８】
ピクチャスイッチ５７は、デコーダ５４から転送されたデコード済みのフレーム/フィールド画像が、2D/左目映像のストリームの場合は2D/左目映像プレーン６１に、右目視聴用のストリームの場合は右目視聴用プレーン６２に瞬時に書き出す。
以上がシステムターゲットデコーダについての説明である。続いて、本実施形態における仮想パッケージ制御部１６の改良について説明する。
【０１６９】
仮想パッケージ制御部１６は、立体視フラグがオフに設定されていれば、何れのセカンダリビデオストリームを包含しているAVクリップが、ダウンロードされていなかっても、DataStarvedイベントを出力しない。よって、セカンダリビデオストリームがダウンロードされていなくでも、JMFプレーヤインスタンス及び再生制御エンジンは、再生を停止しない。
【０１７０】
逆に立体視フラグがオンに設定されていれば、カレントセカンダリビデオストリームがサブプレイアイテムに対応しており、そのサブプレイアイテムが未だダウンロードされていないAVクリップやDisable状態であるAVクリップを参照している場合、仮想パッケージ制御部１６はDataStarvedイベントを再生制御エンジン及びJMFプレーヤインスタンスに通知する。これにより再生が停止する。
【０１７１】
また、継時型ゴーグル１０５が取り外されていて、再生装置１０１の設定が、“立体視オフ”である場合も、セカンダリビデオストリームを格納したAVクリップのダウンロードを待たずに、再生を進行する。
以上のように本実施形態によれば、立体視がオフに設定されている場合、セカンダリビデオストリームを含むAVクリップのダウンロードを待つことなく、プレイアイテムの再生を進行させることができる。
【０１７２】
(第５実施形態)
本実施形態では、カレントプライマリオーディオストリーム、カレントセカンダリオーディオストリームを選択するための詳細なデータ構造と、再生装置における構成とについて説明する。
図４２は、Primary＿audio＿stream＿entry、Secondary＿audio＿stream＿entryの内部構成と、Comb＿info＿Secondary＿video＿Secondary＿audioの内部構成との一例を示す図である。図中の引出線ha1,ha2は、Primary＿audio＿stream＿entry、Secondary＿audio＿stream＿entryの内部構成をクローズアップしている。これらの内部構成は、何れも共通であり、stream＿entryと、stream＿attributeとからなる。
【０１７３】
引出線ha3は、Stream＿entryの内部構成をクローズアップして示している。この引出線に示すように、プライマリオーディオストリーム及びセカンダリオーディオストリームのStream＿entryは、セカンダリオーディオストリームを参照しているSubPath情報を示す『ref＿to＿Sub＿Path＿id』、プライマリオーディオストリーム及びセカンダリオーディオストリームが多重化されているSubClipを示す『ref＿to＿Sub＿Clip＿entry＿id』、プライマリオーディオストリーム及びセカンダリオーディオストリームを構成するPESパケットのPIDに対する参照値を示す『ref＿to＿stream＿PID＿of＿Sub＿Clip』を含む。
【０１７４】
引出線ha4は、stream＿attributeの内部構成をクローズアップして示している。この引出線に示すように、プライマリオーディオストリーム,セカンダリオーディオストリームにおけるStream＿attributeは、オーディオストリームの符号化方式を示す『stream＿coding＿type』と、対応するオーディオストリームのチャネル構成を示す『audio＿presentation＿type』と、対応するオーディオストリームのサンプリング周波数を示す対応する『Sampling＿frequency』と、オーディオストリームの言語属性を示す『audio＿languagecode』からなる。
【０１７５】
このセカンダリオーディオストリームに対応する情報として、セカンダリビデオストリーム用のstream＿entryには、引出線ha5に示すように、Comb＿info＿Secondary＿video＿Secondary＿audioが存在する。
引出線ha6は、Comb＿info＿Secondary＿video＿Secondary＿audioの内部構成をクローズアップして示している。Comb＿info＿Secondary＿video＿Secondary＿audioは、各Secondaryビデオストリームごとに組合せ可能なセカンダリオーディオストリームの総数を示す「number＿of＿Secondary＿audio＿stream＿ref＿entries」と、セカンダリビデオストリームの再生時に組合せることができるセカンダリオーディオストリームのストリーム番号を示す「Secondary＿audio＿stream＿id＿ref[0]〜[n]」とからなる。
【０１７６】
以上のように、STN＿tableには、プライマリビデオストリームの音声となるプライマリオーディオストリームのstream＿entry、セカンダリビデオストリームの音声となるセカンダリオーディオストリームのstream＿entryのそれぞれがあり、また、セカンダリビデオストリームのstream＿entryには、セカンダリビデオストリームとの組合せを意図したセカンダリオーディオストリームが、セカンダリビデオストリーム毎に記述されている(Comb＿info＿Secondary＿video＿Secondary＿audio)ことがわかる。
【０１７７】
以上がオーディオストリーム再生のための記録媒体の特徴である。次に、オーディオストリーム再生のための再生装置の特徴について説明する。
音声再生のための構成として、再生装置には、カレントプライマリオーディオストリームのストリーム番号と、カレントセカンダリオーディオストリームのストリーム番号とについて説明する。
【０１７８】
＜PSR1＞
図４３（ａ）は、PSR1のビットアサインの一例を示す図である。
本図によると、32ビット長のPSR1の下位8ビット(b0〜b7)は、プライマリオーディオストリーム番号であり、カレントPlayItemのSTN＿tableにentryが記述されている複数プライマリオーディオストリームのうち、1つを特定する。PSR1の設定値が変化すれば、再生装置はこの変化後のプライマリオーディオストリームを再生する。PSR1は初期値として0xFFが設定されており、再生装置により1〜32の値に設定されうる。この0xFFは、不定値であり、プライマリオーディオストリームが存在しない旨、又は、プライマリオーディオストリームが選択されてない旨を示す。1〜32の設定値は、プライマリオーディオストリームのストリーム番号として解釈される。
【０１７９】
＜PSR14＞
図４３（ｂ）は、PSR14のビットアサインの一例を示す図である。
本図によると、32ビット長のPSR14における下位8ビット(b0〜b7)は、セカンダリオーディオストリーム番号であり、カレントPlayItemのSTN＿tableにentryが記述されている複数セカンダリオーディオストリームのうち、1つを特定する。PSR14の設定値が変化すれば、再生装置はこの変化後のセカンダリオーディオストリームを再生する。PSR14は初期値として0xFFが設定されており、再生装置により1〜32の値に設定されうる。この0xFFは、不定値であり、セカンダリオーディオストリームが存在しない旨、又は、セカンダリオーディオストリームが選択されてない旨を示す。1〜32の設定値は、セカンダリオーディオストリームのストリーム番号として解釈される。
【０１８０】
図４４は、カレントプレイアイテム変化時におけるカレントプライマリオーディオストリーム決定手順を示すフローチャートである。ステップＳ９６、ステップＳ９７は、STN＿tableに示される全てのPrimaryオーディオストリームについてステップＳ９８を繰り返すループ処理を形成している。このループ処理において、処理対象となる個々のPrimaryオーディオストリームを、Primaryオーディオストリームiという。ステップＳ９８は、Primaryオーディオストリームiが3つの条件条件(a)(b)(c)を満たすかのチェックを行う。
【０１８１】
条件(a)とは、Primaryオーディオストリームiを再生する能力が再生装置に存在することであり、これを満たすか否かの判定は、PSR15と、Primaryオーディオストリームiのstream＿coding＿typeとの比較でなされる。
条件(b)とは、Primaryオーディオストリームiの言語属性がデッキ情報と同じであることである。デッキ情報とは、再生装置の言語設定を示す情報であり、条件(b)を満たすか否かの判定は、STN＿tableに記述されたPrimaryオーディオストリームiのAudio＿language＿codeがPSR16の設定値と同じであるか否かの比較でなされる。
【０１８２】
条件(c)とは、Primaryオーディオストリームiのチャネル属性がサラウンドであり、これを再生する能力が再生装置に存在することである。これを満たすか否かの判定は、PSR15と,AudioStreamのaudio＿presentation＿type、stream＿coding＿typeとの比較でなされる。
これらの複数の条件のうち、「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の順位を参照することで、最も優先順位が高い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に設定する(ステップＳ１０８)。
【０１８８】
カレントプライマリオーディオストリームにおける再生区間がSubPlayItemによって規定されていれば、カレントプライマリオーディオストリームにおける再生区間を規定しているサブプレイアイテムがカレントサブプレイアイテムとして特定されることになる。
以上がカレントプライマリオーディオストリームを選択するためのストリーム選択プロシージャである。
【０１８９】
続いて、セカンダリオーディオストリームを選択するためのストリーム選択プロシージャの処理手順について説明する。
図４５は、セカンダリオーディオストリームのストリーム選択プロシージャの処理手順を示すフローチャートである。ステップＳ１１１において、PSR14からセカンダリオーディオストリーム番号を取得し、ステップＳ１１２では、取得した番号のセカンダリオーディオストリームが条件(A)を満たすか否かを判定する。
【０１９０】
条件(A):Comb＿info＿secondary＿video＿Secondary＿audioに規定されたセカンダリオーディオストリーム番号と、PSR14から取得したセカンダリオーディオストリーム番号との比較では、どの番号のセカンダリオーディオストリームと、カレントセカンダリビデオストリームとの組合せが許可されている。
この判定を経た後、ステップＳ１１３を実行する。ステップＳ１１３では、カレントプレイアイテムにおけるセカンダリオーディオストリームのSTN＿tableにおけるStream＿entryの個数が0であるか否かを判定するものである。もし、STN＿tableにおけるStream＿entryの個数が0であるなら、PSR14のセカンダリオーディオストリーム番号を維持する(ステップＳ１１６)。もしSTN＿tableにおけるStream＿entryの個数が0でなければ、ステップＳ１１４の判定を行う。
【０１９１】
ステップＳ１１４では、セカンダリオーディオストリーム番号が、カレントプレイアイテムにおけるSTN＿tableのstream＿entry数以下であり、尚且つ、条件(A)を満たすかどうかを判定する。もし満たすなら、有効なセカンダリオーディオストリーム番号が既にPSR14に存在すると考えられるので、これを変化させない(ステップＳ１１７)。満たさないなら、カレントプレイアイテムについて最適なカレントセカンダリオーディオストリームを選択する(ステップＳ１１５)。
【０１９２】
以上が、セカンダリオーディオストリームにおけるストリーム選択プロシージャについての説明である。
図４６は、カレントプレイアイテムについて最適なカレントセカンダリオーディオストリームを選択する手順を示すフローチャートである。
ステップＳ１２１〜ステップＳ１２３は、任意のストリームについて、以下の条件が満たされているかのチェックを、STN＿tableにおける全てのstream＿entryに記述されているストリームに対して実行する。
【０１９３】
条件(a):Comb＿info＿secondary＿video＿Secondary＿audioに規定されたセカンダリオーディオストリーム番号と、セカンダリオーディオストリームiの番号との比較では、セカンダリオーディオストリームiと、カレントセカンダリビデオストリームとの組合せが許可されている。
条件(b):カレントプライマリオーディオストリームのaudio＿language＿codeと、セカンダリオーディオストリームのaudio＿language＿codeとが一致している。
【０１９４】
以上のチェックを、STN＿tableにおいて再生許可されている全てのセカンダリオーディオストリームに対して実行すれば、ステップＳ１２４を実行する。
ステップＳ１２４は、条件(a)を満たすセカンダリオーディオストリームが存在するか否かを判定する判定ステップである。存在しないなら0xFFとなるセカンダリオーディオストリーム番号をPSR14に設定する(ステップＳ１２５)。
【０１９５】
条件(a)を満たすセカンダリオーディオストリームが存在するなら、ステップＳ１２６の判定を実行する。これは、条件(a)及び条件(b)を満たすセカンダリオーディオストリームが、少なくとも1つ存在するか否かを判定するというものである。存在するなら、条件(a)及び条件(b)を満たすストリームのうち、対応するStream＿EntryがSTN＿tableにおいて最初に位置するものを選択して、選択したセカンダリオーディオストリームのセカンダリオーディオストリーム番号を、PSR14に設定する(ステップＳ１２７)。
【０１９６】
条件(a)及び条件(b)を満たすセカンダリオーディオストリームが存在しないなら、ステップＳ１２８の判定を実行する。これは、条件(a)を満たすセカンダリオーディオトリームが存在するか否かを判定するものである。もし存在するなら、条件(a)を満たすセカンダリオーディオストリームのうち、対応するStream＿EntryがSTN＿tableにおいて先頭順位に位置するものを選択して、選択したセカンダリオーディオストリームのセカンダリオーディオストリーム番号を、PSR14に設定する(ステップＳ１２９)。
【０１９７】
カレントセカンダリオーディオストリームにおける再生区間がSubPlayItemによって規定されていれば、カレントセカンダリオーディオストリームにおける再生区間を規定しているサブプレイアイテムがカレントサブプレイアイテムとして特定されることになる。
以上のように本実施形態によれば、プライマリビデオストリーム用のプライマリオーディオストリーム、セカンダリビデオストリーム用のセカンダリオーディオストリームとしてそれぞれどれの再生を許可するかを、STN＿tableに規定しておき、このSTN＿tableに存在するstream＿entryからプライマリオーディオストリーム、セカンダリオーディオストリームをそれぞれ1つ選んで、これらのミキシング出力を行うので、ピクチャインピクチャの実行時において、本編の音声に、映画監督によるコメンタリが加わった合成音声を聴くことができる。
【０１９８】
そうして選択されたプライマリオーディオストリーム、セカンダリオーディオストリームを包含しているAVクリップがサブプレイアイテムによって参照されている場合、かかるAVクリップがUnavailableクリップであると、再生が中断することになる。よって、カレントプライマリオーディオストリーム、カレントセカンダリオーディオストリームを包含しているAVクリップであって、サブプレイアイテム情報から参照されているもののダウンロードを急げば、再生が中断することはないのでスムーズな再生進行を確保することができる。
【０１９９】
(第５実施形態)
本実施形態では、カレント字幕ストリームを選択するためのデータ構造と、再生装置における改良とを説明する。
始めに、STN＿tableにおける字幕のためのstream＿entryについて説明する。プライマリオーディオストリーム、セカンダリオーディオストリームはそれぞれ、プライマリビデオストリーム、セカンダリビデオストリームに割り当てられたが、字幕には、プレゼンテーショングラフィクスストリーム、テキスト字幕ストリームという区別はあるものの、プライマリビデオストリーム用、セカンダリビデオストリーム用という明確な区別は存在しない。
【０２００】
以降、PGtestSTストリームについてのstream＿entryについて説明する。図４７は、STN＿tableのうち、PGtestSTストリームに特に関連あるものを抜き出して描いた図である。この図によると、STN＿tableのうち、字幕表示に特に関連するのは、「number＿of＿PG＿textST＿streams＿entries[1]〜[n]」、「number＿of＿PiP＿PG＿textST＿stream＿entries＿plus」、「PGtestST＿stream＿entry」、「Secondary＿video＿Stream＿entry」内の「Comb＿info＿Secondary＿video＿PiP＿PG＿textST」であることがわかる。
【０２０１】
「number＿of＿PG＿textST＿streams＿entries」は、ピクチャインピクチャを実行していない場合に、選択の対象となるPGtestSTストリームの個数を示す
「number＿of＿PiP＿PG＿textST＿stream＿entries＿plus」は、ピクチャインピクチャアプリケーションのため、STN＿tableに定義されているnumber＿of＿PG＿textST＿streams＿entriesに追加すべきプレゼンテーショングラフィクスストリーム及びテキスト字幕ストリームの個数を示す。このnumber＿of＿PG＿textST＿streams＿entriesと、number＿of＿PiP＿PG＿textST＿stream＿entries＿plusとの和は、255以下になる。
【０２０２】
ここでnumber＿of＿PG＿textST＿streams＿entriesがn1である場合、1からn1までのストリーム番号の範囲が、PGテキスト字幕ストリームの範囲となるが、number＿of＿PiP＿PG＿textST＿stream＿entries＿plusがn2であれば、ピクチャインピクチャの実行時において、1からn1+n2までのストリーム番号の範囲が、PGテキスト字幕ストリームの範囲となる。つまり、number＿of＿PiP＿PG＿textST＿stream＿entries＿plusがSTN＿tableに記述されていれば、PGTextSTストリームのストリーム番号の範囲は、number＿of＿PiP＿PG＿textST＿stream＿entries＿plusに記述された個数だけ広がることになる。
【０２０３】
非ピクチャインピクチャ時にあっては、PGtestSTストリームについてのstream＿entryのうち、1からn1までのものが選択の対象になり、ピクチャインピクチャ時にあっては、PGtestSTストリームについてのstream＿entryのうち、1からn1+n2までのものが選択の対象になる。予め断っておくが、ピクチャインピクチャが行われる場合であっても、プライマリビデオの字幕、セカンダリビデオの字幕がそれぞれ再生される訳ではない。ピクチャインピクチャで表示されるのは、プライマリビデオ用の字幕、セカンダリビデオ用の字幕のどちらか1つである。これは、プライマリビデオ用、セカンダリビデオ用の字幕を別々にBD-ROMに記録しておくとすると、再生装置には、グラフィクス用のデコーダが2つ必要になり、ハードウェアコストの増大をもたらすこと(i)、セカンダリビデオ用に字幕を縮小して表示したとしても、見づらくなるだけであること(ii)、という2つの理由による。
【０２０４】
引出線hp1は、PG＿testST＿Stream＿entryの内部構成をクローズアップして示している。この引出線に示すように、PG＿testST＿Stream＿entryは、Stream＿entry,Stream＿Attributeを有していて、Stream＿entryの中に、再生が許可されているPGtestSTストリームのPIDが存在する。
引出線hp2は、「Secondary＿video＿Stream＿entry[1]」の内部構成をクローズアップして示している。この内部構成におけるComb＿info＿Secondary＿video＿PiP＿PG＿textSTには、PGtestSTストリームのうち、セカンダリビデオストリームとの組合せが許可されているものを一意に示している。
【０２０５】
引出線hp3は、Comb＿info＿Secondary＿video＿PiP＿PG＿textSTの内部構成を示す。Comb＿info＿Secondary＿video＿PiP＿PG＿textSTは、各Secondaryビデオストリームごとに組合せ可能なPiP＿PG＿テキスト字幕ストリームの総数を示す「number＿of＿PiP＿PG＿textST＿stream＿ref＿entries」と、再生時に組合せることができるPiP＿PG＿テキスト字幕ストリームのストリーム番号を示す「PiP＿PG＿textST＿stream＿id＿ref[0]〜[n]」とからなる。
【０２０６】
以上が、本実施形態における記録媒体の改良である。続いて、本実施形態における再生装置についての改良について説明する。字幕再生のための構成として、再生装置には、ピクチャインピクチャ実行時におけるカレントPGTextSTストリームのストリーム番号と、ピクチャインピクチャ非実行時におけるカレントPGTextSTストリームのストリーム番号とが、それぞれ別々にPSRセット２３に格納されている。
【０２０７】
図４８（ａ）は、カレントPGtestSTストリームのストリーム番号が取りうる数値範囲の一例を示す図である。非ピクチャインピクチャ実行時において、カレントPGtestSTストリームのストリーム番号は、STN＿tableに記載されたPiP＿PG＿text＿ST＿stream＿numberをn1とすると、本図の上段に示すように、1からn1までの値をとる。
一方、ピクチャインピクチャ実行時におけるカレントPGtestSTストリームの番号は、PiP＿PG＿TextSTストリーム番号と呼ばれ、STN＿tableに記載されたPG＿text＿ST＿stream＿numberをn1、STN＿tableに記載されたnumber＿of＿PiP＿PG＿textST＿stream＿entries＿plusをn2とすると、本図の下段に示すように、PiP＿PG＿TextSTストリーム番号は1からn1+n2までの値をとる。
【０２０８】
図４８（ｂ）は、PSR2のビットアサインの一例を示す図である。以降、PSR2における各ビットの意味合いについて述べる。disp＿s＿flag
PSR2のb31は、disp＿s＿flagであり、その1ビットの設定値は以下のように解釈される。
0b: 「PG textST ストリーム」と「PiP PG textST ストリーム」の両方を表示することは不可となることを示す。
【０２０９】
1b: 「PG textST ストリーム」と「PiP PG textST ストリーム」の両方を表示することは可能となることを示す
disp＿s＿flagがオフになっている場合、PGテキスト字幕ストリーム選択のためのプロシージャを実行しない。PSR2におけるdisp＿s＿flagがオフになっていれば、カレントのPGテキスト字幕ストリームが存在しないため、図３４のステップＳ３４、Ｓ３５では、PGテキスト字幕ストリームのみを包含しているAVクリップは、ダウンロードの選択対象から除外する。PGテキスト字幕ストリームのみを包含しているAVクリップのダウンロードを省くことができるので、字幕がオフになっていれば、PGテキスト字幕ストリームのみを包含しているAVクリップが未ダウンロードであっても、再生を進行してゆくことができる。これにより、あるプレイアイテムから次のプレイアイテムの切り替えを高速に実現することができる。PiP＿PG＿textST＿valid＿flag
PSR2のb30は、PiP＿PG＿textST＿valid＿flagであり、その1ビットの設定値は以下のように解釈される。
【０２１０】
0b: カレントプレイアイテム 表示中に Secondary ビデオストリームが表示されている場合、PSR2で定義された PG TextST Stream Numberが用いられる。
1b: カレントプレイアイテム 表示中に Secondary ビデオストリームが表示されている場合、PSR2で定義された PiP PG TextST Stream Numberが用いられる。
カレントプレイアイテム 表示中に Secondary ビデオストリームが表示されていないとき、PiP＿PG＿textST＿valid＿flagは BD-ROM再生装置の表示に影響しない。この場合、PSR2 で定義された PG TextST Stream Numberが用いられる。
【０２１１】
PG TextST Stream Number:
PSR2のb0〜b11は、PG TextST Stream Numberであり、その12ビットの設定値は以下のように解釈される。
カレントプレイアイテム 表示中に Secondary ビデオストリームが表示されていない場合(Secondaryビデオストリームは表示されていない場合とは、PSR14 の disp＿v＿flag は 0b に設定されている状態をいう)、PSR2 における PGTextST Stream Numberの値は、カレントプレイアイテム の STN＿tableにおける PG TextST ストリーム項目の中から、PG ストリームとTextST ストリームのどちらが表示されるかを特定するために用いられる。
【０２１２】
PiP PG TextST Stream Number:
PSR2のb16〜b27は、PiP PG TextST Stream Numberであり、その12ビットの設定値は以下のように解釈される。
カレントプレイアイテム 表示中に Secondary ビデオストリームが表示されていて、PSR2の PiP＿PG＿textST＿valid＿flag が 1b に設定されている場合(ここでセカンダリビデオストリームの表示時とは、PSR14 の disp＿v＿flagは 1b に設定され、カレントプレイアイテム 表示中に PSR14 によって決定された Secondary ビデオストリームが表示される場合をいう。)、PSR2における PiP PG TextST Stream Numberの値は、カレントプレイアイテム の STN＿table における PG TextST ストリーム項目の中から、PGストリームと TextST ストリームのどちらが表示されるかを特定するために用いられる。
【０２１３】
図４９は、カレントプレイアイテム変化時におけるカレントPGtestSTストリームの決定手順を示すフローチャートである。
ここで非ピクチャインピクチャのためのPGtestSTストリームのストリーム番号及びその取り扱いは、ピクチャインピクチャのためのPGtestSTストリームの選択を簡略にしたものに過ぎないから説明を省略する。本実施形態では、ピクチャインピクチャのためのPGtestSTストリームの番号について説明する。
【０２１４】
ステップＳ１５１においてPSR2からカレントPiP＿PG＿TextSTストリーム番号を取得し、ステップＳ１５２において、カレントPiP＿PG＿TextSTストリーム番号は、プレゼンテーショングラフィクスストリームについてのものかテキスト字幕ストリームについてのものかを判定する。ステップＳ１５３は、カレントPiP＿PG＿TextSTストリーム番号に対応するプレゼンテーショングラフィクスストリームが、条件(A)、条件(B)、条件(C)を満たすか否かをチェックする。
【０２１５】
ここで条件(A),条件(B)、条件(C)は、以下のように規定される。
条件(A)：カレントPiP＿PG＿TextSTストリーム番号から特定されるプレゼンテーショングラフィクスストリームをデコードする能力が再生装置に存在する。
条件(B)：特定された言語を再生する能力が再生装置に存在する。
条件(C)：PSR14におけるセカンダリビデオストリーム番号と、comb＿info＿Secondary＿video＿PiP＿textST()によるPGテキスト字幕ストリーム番号との比較では、カレントセカンダリビデオストリームと、カレントPiP＿PG＿TextSTストリーム番号から特定されるPGテキスト字幕ストリームとの組合せが許可されている。
【０２１６】
一方ステップＳ１５４では、カレントPiP＿PG＿TextSTストリーム番号に対応するテキスト字幕ストリームが、条件(A)、条件(B)、条件(C)を満たすか否かをチェックするものである。
条件(A):カレントPiP＿PG＿TextSTストリーム番号のテキスト字幕ストリームのキャラクターコードをビットマップに展開する能力が再生装置に存在すること。かかる再生能力は、PSRセット２３におけるPSR30に示されている。
【０２１７】
条件(B):カレントPiP＿PG＿TextSTストリーム番号のテキスト字幕ストリームの言語属性をサポートする能力が再生装置に存在すること。かかるサポート能力は、PSRセット２３におけるPSR48〜61に示されている。
条件(C):PSR14におけるセカンダリビデオストリーム番号と、comb＿info＿Secondary＿video＿PiP＿textST()によるPGテキスト字幕ストリーム番号との比較では、PSR14に格納されているカレントセカンダリビデオストリームと、カレントPiP＿PG＿TextSTストリーム番号から特定されるPGテキスト字幕ストリームとの組合せが許可されていること。
【０２１８】
ここで、ある言語の字幕がテキスト字幕ストリームで表現されている場合、その言語のテキスト字幕ストリームを、“デコードすることができる”といえるには、その言語における文字コードを、ビットマップに展開する能力と、その言語の特性をサポートするサポート能力とが再生装置側に存在する必要がある。
英語、日本語、アラビア語を例にとってみると、英語の字幕表示は、“横書き”,“カーニング”,“合字・抱き字”という機能がサポートされて初めて、言語特性がサポートされていると判断することができる。
【０２１９】
日本語の字幕表示は、“横書き”,“縦書き”,“行末禁則”,“ルビ”という機能がサポートされて初めて、言語特性がサポートされていると判断することができる。
アラビア語の字幕表示は、“右から左の描画”、“合字・抱き字”という機能がサポートされて初めて、言語特性がサポートされていると判断することができる。
ある言語のテキスト字幕ストリームをビットマップに展開することができ、その言語の特性をサポートすることができる場合、上記条件(A)、条件(B)は、満たされているということができる。その言語のテキスト字幕ストリームをビットマップに展開することができるが、その言語の特性をサポートすることができない場合、上記条件(B)は満たされず、条件(A)のみが、満たされているということができる。
【０２２０】
以上の判定を経た後、ステップＳ１５５を実行する。ステップＳ１５５は、再生装置は、条件(Z)を満たすか否かを判定するものである
ここで条件(Z)とは、アンサポート言語の字幕を、再生することをユーザが意図していることであり、かかる意図は、PSRセット２３におけるPSR30に示されている。
【０２２１】
その後、ステップＳ１５６の判定ステップを実行する。これは、カレントプレイアイテムのSTN＿tableにおけるnumber＿of＿PG＿textST＿streams＿entriesと、number＿of＿PiP＿PG＿textST＿stream＿entries＿plusとの和が=0であるか否かを判定するものである。STN＿tableに再生が許可されているPGTextSTストリームが存在しない場合、PSR2におけるPGTextSTストリームの番号を維持する(ステップＳ１５７)。カレントSTN＿tableにおいて再生が許可されているPGTextSTストリームが少なくとも1つ存在する場合、ステップＳ１５８を実行する。これは、カレントPiP＿PG＿TextSTストリーム番号の有効性を問うステップであり、カレントPiP＿PG＿TextSTストリーム番号がSTN＿tableにおけるstream＿entryの総数以下であり、且つ、条件(A)、条件(B)、条件(C)を満たすかどうかを判定する。
【０２２２】
もし満たすなら、有効なPiP＿PG＿TextSTストリーム番号が既にPSR2に存在するとして、これを変化させない(ステップＳ１５９)。
もしステップＳ１５８で満たさないと判定されたなら、ステップＳ１６０の判定を実行する。これは、カレントPiP＿PG＿TextSTストリーム番号がSTN＿tableにおけるstream＿entryの総数以下であり、且つ、条件(A)を満たすかどうかを判定するものである。もし満たすなら、PSR2には、アンサポート言語のテキスト字幕のPiP＿PG＿TextSTストリーム番号が設定されているが、ユーザはアンサポート言語の再生を意図しているので、PSR2を変化させない(ステップＳ１６１)。ステップＳ１６０において満たさないと判定されたなら、カレントプレイアイテムについて最適なカレントPGテキスト字幕ストリームを選択する(ステップＳ１６２)。
【０２２３】
以上が、PGTextSTストリームにおけるストリーム選択プロシージャについての説明である。
図５０は、カレントプレイアイテムについて最適なカレントPGTextSTストリームを選択する処理手順を示すフローチャートである。
ステップＳ１ ９０において、全てのPGTextSTストリームについて、条件(a)〜条件(d)を満たすかどうかをチェックする。
【０２２４】
チェック対象となるプレゼンテーショングラフィクスストリームを、プレゼンテーショングラフィクスストリームiとした場合、条件(a)〜条件(d)は、以下のように規定される。
条件(a)：プレゼンテーショングラフィクスストリームiをデコードする能力が再生装置に存在する。
【０２２５】
条件(b)：プレゼンテーショングラフィクスストリームiから特定された言語を再生する能力が再生装置に存在する。
条件(c)：PSR14におけるセカンダリビデオストリーム番号と、comb＿info＿Secondary＿video＿PiP＿textST()によるPGテキスト字幕ストリーム番号との比較では、カレントセカンダリビデオストリームと、プレゼンテーショングラフィクスストリームiとの組合せが許可されている。
【０２２６】
条件(d):プレゼンテーショングラフィクスストリームiのPG＿language＿codeが、デッキ情報と一致している。ここで、デッキ情報とは、再生装置内のデッキ情報における言語設定を示すものであり、具体的には、PSRセット２３におけるPSR17を示す。
チェック対象となるテキスト字幕ストリームを、テキスト字幕ストリームiとした場合、条件(a)〜条件(d)は、以下のように規定される。
【０２２７】
条件(a):テキスト字幕ストリームiのキャラクターコードをビットマップに展開する能力が再生装置に存在すること。
条件(b):テキスト字幕ストリームiの言語属性をサポートする能力が再生装置に存在すること。
条件(c):PSR14におけるセカンダリビデオストリーム番号と、comb＿info＿Secondary＿video＿PiP＿textST()によるPGテキスト字幕ストリームiの番号との比較では、カレントセカンダリビデオストリームと、PiP＿PG＿TextSTストリーム番号から特定されるテキスト字幕ストリームiとの組合せが許可されていること。
【０２２８】
条件(d):テキスト字幕ストリームiのtextST＿language＿codeが、再生装置内のデッキ情報における言語設定と一致していること。
以上のチェックを経た後、ステップＳ１９１では、再生装置が、前のフローチャートで述べた条件(Z)(：アンサポート言語の再生)を満たすかどうかを判定する。みたさない場合、ステップＳ１９２において、条件(a)〜条件(d)を満たすPGTextSTストリームが存在するかを判定する。存在するなら、条件(a)〜条件(d)を満たすPGTextSTストリームのうち、対応するStream＿EntryがSTN＿tableにおいて先頭順位に位置するものを選択して、選択したPiP＿PG＿TextSTストリーム番号を、PSR2に設定する(ステップＳ１９３)。
【０２２９】
存在しないなら、ステップＳ１９４において、より緩和された条件を満たすPGTextSTストリームが存在するか否かを判定する。緩和された条件とは、条件(a)、条件(b)、条件(c)の3つを満たすことであり、これを満たすPGTextSTストリームが存在するかが、ステップＳ１９４で判定される。存在するなら、条件(a)、条件(b)、条件(c)を満たすPiPPGtestSTストリームのうち、対応するStream＿EntryがSTN＿tableにおいて先頭順位に位置するものを選択して、選択したPiP＿PG＿TextSTストリーム番号を、PSR2に設定する(ステップＳ１９６)。
【０２３０】
存在しないなら、0xFFFであるPiP＿PG＿TextSTストリーム番号をPSR2に設定する(ステップＳ１９５)。ステップＳ１９１において、条件(Z)を満たすと判定されたなら、ステップＳ１９７において、別の緩和された条件を満たすPGTextSTストリームが存在するかを判定する。別の緩和された条件とは、条件(a)、条件(c)、条件(d)を満たすものであり、ステップＳ１９８では、これらを満たすPGTextSTストリームが存在するかか否かが判定される。
【０２３１】
もし存在するなら、条件(a)、条件(c)、条件(d)を満たすPiP＿PGTextSTストリームのうち、対応するStream＿EntryがSTN＿tableの最初に位置するものを選択して、選択したもののPiP＿PG＿TextSTストリーム番号を、PSR2に設定する(ステップＳ１９８)。
存在しない場合、ステップＳ１９９において、条件(a)、条件(c)を満たすPGTextSTストリームが存在するかを判定する。存在する場合、条件(a)、条件(c)を満たすPiP＿PGtestSTストリームのうち、対応するStream＿EntryがSTN＿tableにおいて先頭順位に位置するものを選択して、選択したもののPiP＿PG＿TextSTストリーム番号を、カレントPiP＿PG＿TextSTストリームのストリーム番号としてPSR2に設定する(ステップＳ２００)。存在しない場合、0xFFFをPSR2に設定する(ステップＳ２０１)。
【０２３２】
カレントPiP＿PG＿TextSTストリーム番号における再生区間は、必ずSubPlayItemによって規定されているので、カレントPiP＿PG＿TextSTストリーム番号における再生区間を規定しているサブプレイアイテムをカレントサブプレイアイテムとして特定されることになる。
以上が、カレントPGTextSTストリームの選択手順についての説明である。
【０２３３】
以上のように本実施形態によれば、ピクチャインピクチャが有効である場合、number＿of＿PG＿textST＿streams＿entriesと、number＿of＿PiP＿PG＿textST＿stream＿entries＿plusとを足しあわせた数値範囲のの中から、PiP＿PG＿TextSTストリーム番号が選ばれ、このPiP＿PG＿TextSTストリーム番号に対応するプレゼンテーショングラフィクスストリーム又はテキスト字幕ストリームを再生するので、あるときは、プライマリビデオストリームに適した字幕を動画像と共に再生させ、またあるときは、セカンダリビデオストリームに適した字幕を動画像と共に再生させることができ、字幕選択の幅を広げることができる。
【０２３４】
そうして選択された字幕に対応するテキスト字幕ストリームを包含しているAVクリップがサブプレイアイテムによって参照されている場合、かかるAVクリップがUnavailableクリップであると、再生が中断することになる。よって、カレントテキスト字幕ストリームを包含しているAVクリップであって、サブプレイアイテム情報から参照されているもののダウンロードを急げば、再生が中断することはないのでスムーズな再生進行を確保することができる。  (第６実施形態)
本実施形態では、仮想パッケージの構築について詳しく説明する。
【０２３５】
先ず始めに、仮想パッケージの基本部分となるBD-ROMのデータ構造について説明する。
図５１は、BD-ROMの構成の一例を示す図である。
本図の第４段目にBD-ROM１００を示し、第３段目にBD-ROM上のトラック２０２を示す。本図のトラック２０２は、BD-ROM１００の内周から外周にかけて螺旋状に形成されているトラック２０２を横方向に引き伸ばして描画している。BD-ROM１００は他の光ディスク、例えばDVDやCDなどと同様にその内周から外周に向けてらせん状に記録領域を持ち、内周のリードインと外周のリードアウトの間に論理データを記録できる論理アドレス空間を有している。また、リードインの内側にはBCA（BurstCutting  Area）と呼ばれるドライブでしか読み出せない特別な領域がある。この領域はアプリケーションから読み出せないため、例えば著作権保護技術などに利用されることがよくある。
【０２３６】
「論理アドレス空間」には、先頭からファイルシステムのボリューム情報が記録され、続いて映像データなどのアプリケーションデータが記録されている。ファイルシステムとはディスク上のデータをディレクトリまたはファイルと呼ばれる単位で表現する仕組みであり、BD-ROM１００の場合ではUDF（Universal Disc Format）によって記録される。日常使っているPC（パーソナルコンピュータ）の場合でも、FATまたはNTFSと呼ばれるファイルシステムを通すことにより、ディレクトリやファイルという構造でハードディスクに記録されたデータがコンピュータ上で表現され、ユーザビリティを高めている。このファイルシステムにより、通常のPCと同じように記録されている論理データをディレクトリ、ファイル構造を使って読み出しする事が可能になっている。
【０２３７】
BD-ROM１００上のディレクトリ、ファイル構造は、ルートディレクトリ（ROOT）直下にBDMVディレクトリが置かれている。BDMVディレクトリはBD-ROM１００で扱うAVコンテンツや管理情報などのデータが記録されているディレクトリである。BDMVディレクトリの配下には、タイトルを構成するインデックステーブルが定義されたインデックスファイル（index.bdmv）、動的なシナリオを定義するムービーオブジェクトファイル（MovieObject.bdmv）と、PLAYLISTディレクトリ、CLIPINFディレクトリ、STREAMディレクトリ、BDJOディレクトリ、JARディレクトリが存在する。
【０２３８】
これらのディレクトリには、映像・音声といったAVコンテンツが多重化され格納されたAVクリップ（XXX.M２TS）、AVクリップの管理情報を格納したクリップ情報ファイル（XXX.CLPI)、AVクリップの論理的な再生経路を定義したプレイリストファイル（YYY.MPLS）が存在する。
これらの他にも、以下のファイルが存在する。つまりどのJARファイルを実行するかおよびその実行方法について定義したBDJオブジェクトファイル（BBB.BDJO）、BD-Jアプリケーションを格納したJARファイル（AAA.JAR)が存在する。これらのファイルは、それぞれ前述のSTREAMディレクトリ、CLIPINFディレクトリ、PLAYLISTディレクトリ、BDJOディレクトリ、JARディレクトリの下に配置される。
【０２３９】
以下に、BDMVディレクトリ配下に置かれる各ファイルのデータ構造について説明する。まずインデックスファイル（Index.bdmv）について説明する。インデックスファイルはインデックステーブルを持つ。
図５２は、インデックスファイルの内部構成の一例を示す図である。
「インデックステーブル」は、BD-ROMに格納されるすべてのタイトル、トップメニュー、FirstPlayといったタイトル構成を定義する最上位層のテーブルである。このテーブルには、全てのタイトル、トップメニュー、FirstPlayから最初に実行されるムービーオブジェクトファイルに含まれるムービーオブジェクトが指定されている。BD-ROMの再生機は、タイトルあるいはメニューが呼び出されるたびにインデックステーブルを参照して、所定のムービーオブジェクトもしくはBDJオブジェクトを実行する。ここで、FirstPlayとは、コンテンツプロバイダによって設定されるもので、ディスク投入時に自動実行されるムービーオブジェクトまたはBDJオブジェクトが設定されている。また、トップメニューは、リモコンでのユーザ操作で、「メニューに戻る」というようなコマンドが実行されるときに、呼び出されるムービーオブジェクト、BDJオブジェクトが指定されている。プログレッシブ属性で再生されるべきプレイリストは、必ずBD-Jオブジェクトによって再生されねばならない。
【０２４０】
以上が、仮想パッケージの前提となるBD-ROMのデータ構造である。
次に、図５３を参照しながらローカルストレージ１０３に格納されるアップデートキットのデータ構造について説明する。
図５３は、ローカルストレージ１０３に格納されるアップデートキットの内部構成の一例を示す図である。
【０２４１】
ローカルストレージ１０３に格納されるアップデートキットは、本図に示すように、追加コンテンツ格納ディレクトリ、OrgIDディレクトリ、DiscIDディレクトリと、マージ管理情報ファイル（MERGE.XML）、署名情報ファイル（MERGE.SF）、追加コンテンツデータファイル（CCC.MPL、VVV.M２T、VVV.CLPなど）を含む。追加コンテンツ領域ルートディレクトリは、ローカルストレージ１０３のルートディレクトリの直下に存在し、追加コンテンツ領域のルートを示すディレクトリで、ディレクトリ名配布媒体文字以内の固定値（BD＿BUDA）である。
【０２４２】
「OrgIDディレクトリ」は、BD-ROM記録層上のBD管理情報（インデックスファイル）に記載されている、映画作品のプロバイダを特定する３２bitの識別子（OrganizationID）を１６進表記で表した、８文字の名前のディレクトリである。また、OrganizationIDの先頭の連続する０は、ディレクトリの名前から省略する。例えば、OrganizationIDが０x００００００１Aの場合は、ディレクトリの名前は"１A"となる。
【０２４３】
「DiscIDディレクトリ」は、BD-ROM記録層上のBD管理情報（インデックスファイル）に記載されている、BD-ROM記録層を特定する１２８bitの識別子（DiscID）を先頭から３２bitずつ４分割し、それぞれを１６進表記で表したディレクトリである。また、OrganizationIDと同様にDiscIDの先頭の連続する０は、ディレクトリの名前から省略する。
DiscIDディレクトリの配下には、マージ管理情報ファイル、署名情報ファイル、追加コンテンツデータファイルが存在する。
【０２４４】
「マージ管理情報ファイル（MERGE.XML）」は、仮想パッケージを構成するためのローカルストレージに記録される各ファイル格納位置情報と、仮想パッケージ上でそれらのファイルへアクセスするための仮想パス情報から構成され、DiscIDディレクトリ直下に保存される。
「署名情報ファイル」は、マージ管理情報ファイルに対するプロバイダの電子的な署名を示すファイルであり、MERGE.SFというファイル名でDiscIDディレクトリ直下に保存される。電子的な署名は、一般的に改ざん防止が必要な情報に対してハッシュ値を計算し、ハッシュ値をなんらかの秘密鍵を用いて暗号化したものを用いる。本実施形態の署名情報ファイルでは、BD-ROM記録層上にあるマージ証明書中の公開鍵に対応する秘密鍵を利用して、マージ管理情報ファイルのハッシュ値が暗号化されている。
【０２４５】
「マージ証明書」は、マージ管理情報ファイルの認証に利用する証明書で、プロバイダが公開する公開鍵が含まれる。プロバイダが提供するマージ証明書は、BD-ROM記録層上にbd.certというファイル名で保存されている。マージ証明書のファイル形式の一例としてはX.５０９を利用することができる。
「追加コンテンツデータファイル」は、BD-ROM記録層に記録されたオリジナルのコンテンツに対し、追加/更新するファイル群である。ここには、プレイリストファイル、AVクリップなどが記録される。
【０２４６】
図５４は、マージ管理情報ファイルの内容と、その内容を元にBD-ROMのファイルとアップデートキットのファイルとから、仮想パッケージを構築する過程の一例を示す図である。
図５４の左上は、BD-ROMのディレクトリ・ファイル構成を示す。本図の左下は、アップデートキットのディレクトリ・ファイル構成を示す。
【０２４７】
図５４の右下は、マージ管理情報ファイルの内容を示す。マニフェストファイルは、仮想パッケージを構成するローカルストレージにおける「ローカルストレージパス」と、仮想パッケージ上でそれらのファイルへアクセスするための「仮想パッケージパス」と、「プログレッシブ属性」から構成される。プログレッシブ属性は、仮想パッケージを構築する前に、そのファイルがなくても良いことを示す。
【０２４８】
ローカルストレージパスの一例として、本図では、１/１/CCC.MPL、１/１/VVV.M２T、１/１/VVV.CLP、１/１/SSS.M２T、１/１/SSS.CLPが記述されている。BD＿BUMFディレクトリから追加コンテンツデータファイルへのパスが明記されている。
一方、仮想パッケージパスとして、BDMV/PLAYLIST/CCC.MPLS、BDMV/STREAM/VVV.M２TS、BDMV/CLIPINF/VVV.CLPI、BDMV/STREAM/SSS.M２TS、BDMV/CLIPINF/SSS.CLPIが記述されている。
【０２４９】
図５４の右上は、このマニフェストファイルによって生成される仮想パッケージを示す。ローカルストレージパスにおいて、１/１/CCC.MPL、１/１/VVV.M２T、１/１/VVV.CLP、１/１/SSS.M２T、１/１/SSS.CLPに存在するファイルが、BDMV/PLAYLIST/CCC.MPLS、BDMV/STREAM/VVV.M２TS、BDMV/CLIPINF/VVV.CLPI、BDMV/STREAM/SSS.M２TS、BDMV/CLIPINF/SSS.CLPIに配置されるように、仮想的にディレクトリ・ファイル構成が変更される。こうすることで、BD-ROMにはないVVV.CLPI、VVV.M２TS、SSS.CLPI、SSS.M２TSが、仮想パッケージでは存在するかの如く取り扱われることになる。
【０２５０】
マージ管理情報に基づき、仮想パッケージが生成されれば、ローカルストレージ上のこれらのファイルは、このマージ管理情報におけるパス情報でアクセスすることができる。このとき、プログレッシブ属性が付与されているSSS.M２TSにおいては、仮想パッケージが構築される前に、ローカルストレージにダウンロードが完了している必要はない。仮想パッケージが構築された後、必要になる段階でダウンロードしても良い。
【０２５１】
よって、アップデートキットのダウンロードにあたって、ローカルストレージへの書き込みの順序は、
マージ管理情報ファイル→プレイリスト情報→複数クリップ情報→複数AVクリップ
となる。ここでプレイリスト情報−複数のクリップ情報の書き込みが完了した段階で、仮想パッケージの構築は可能になる。何故なら、AVクリップをDisable状態として扱えば、足りるからである。
【０２５２】
以上のように本実施形態によれば、サブプレイアイテムを、仮想的なファイルシステムを通じて、システムターゲットデコーダに供給することができる。（第６実施形態）
本実施形態では、PGストリームプレイリストを実現するアップデートキットを作成するためのオーサリングシステムについての説明する。本図に示すように、オーサリングシステムは、ストレージ３００a,b、素材制作部３０１、シナリオ生成部３０２、BD-J制作部３０３、多重化処理部３０４、フォーマット処理部から構成される。
【０２５３】
図５５は、オーサリングシステムの一例を示す図である。
ストレージ３００a,b,cは、それぞれ、ROMシナリオデータ、ROMディスクイメージのバージョン１(ver.1)、ROMディスクイメージのバージョン２(ver.2)を格納している。
素材制作部３０１は、ビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム、インタラクティブグラフィックストリームなどの各ストリームを作成する。素材制作部３０１は、非圧縮のビットマップなどの画像イメージをMPEG４-AVCやMPEG２などの圧縮方式に従い符号化することでビデオストリームを作成する。また素材制作部３０１は、非圧縮のLinearPCM音声などをAC３などの圧縮方式に従い符号化することでオーディオストリームを作成する。素材制作部３０１は、字幕イメージと表示タイミング、およびフェードイン/フェードアウトなどの字幕の効果を含む字幕情報ファイルを元にして、字幕ストリームであるプレゼンテーショングラフィックスストリームを作成する。素材制作部３０１は、メニューに使うビットマップイメージと、メニューに配置されるボタンの遷移や表示効果を記載したメニューファイルを元にして、メニュー画面を構成するインタラクティブグラフィックスストリームを作成する。
【０２５４】
シナリオ生成部３０２は、素材制作部３０１で作成した各ストリームの情報や、オーサリングスタッフからのGUIを経由した操作にしたがって、シナリオを作成する。ここで言うシナリオは、インデックスファイル、ムービーオブジェクトファイル、プレイリストファイルなどのファイルがそれにあたる。また、シナリオ生成部３０２は、多重化処理を実現するための各AVクリップがどのストリームから構成されるかを記述したパラメータファイルを作成する。
【０２５５】
BD-J制作部３０３は、BD-Jアプリケーションをプログラミングする手段である。GUI等のユーザインターフェースを通じて、ユーザからの要求に従って、BD-Jアプリケーションプログラムのソースコードを作成し、BD-Jアプリケーションを作成する。
多重化処理部３０４は、ROMシナリオデータに記述されているビデオ、オーディオ、字幕、ボタンなどの複数のストリームを多重化して、MPEG２-TS形式のAVクリップを作成する。このとき、AVクリップと対になるクリップ情報ファイルも同時に作成する。多重化処理部３０４によるクリップ情報ファイル内の生成は、以下の方法で行われる。多重化処理部３０４はAVクリップを作成と同時にエントリマップを作成する。より具体的には、素材制作部３０１で生成された各ストリームにおいて、含まれるビデオストリームがMPEG２であればIピクチャ、MPEG４-AVCであればIピクチャかIDRピクチャ、VC-１であればIピクチャが何処に存在するかを検出し、前述の各ピクチャの表示時刻と、MPEG２-TSとなっているAVクリップの何パケット目のソースパケットに前述の各ピクチャの先頭データが入っているかを対応付けたエントリポイントをエントリマップに登録していく。AVクリップに含まれるビデオストリームが、Primaryビデオ・Secondaryビデオの２種類がある場合は、どちらのエントリマップも同時に作成していく。多重化処理部３０４は、自ら生成したエントリマップと、AVクリップに含まれるストリーム毎の音声属性、映像属性などを示す属性情報をペアにしてクリップ情報ファイルを作成する。
【０２５６】
フォーマット処理部３０５は、シナリオ生成部３０２で生成したROMシナリオデータと、BD-J制作部３０３で制作したBD-Jアプリケーション、多重化処理部２６０４で生成したAVクリップやクリップ情報ファイルや、これまでの実施形態で説明したフォーマットでファイルやディレクトリを配置し、UDFのフォーマットでディスクイメージを作成する。生成したディスクイメージをBD-ROMプレス用データに変換し、このデータに対してプレス工程を行うことで、BD-ROMの製造が可能となる。
【０２５７】
アップデートキットを作成するには、二つのディスクイメージを用意する。１つはBD-ROMに格納されるディスクイメージであり、も第１の特徴つは仮想パッケージ構築後のディスクイメージである。
差分抽出部３０６は、ストレージ３００a,bに格納された二つのROMディスクイメージをコンペアして、差分データを抽出する。例えば、オリジナルのディスクイメージになかったファイルや、バイナリコンペアしてアップデートされているファイルなどを抽出する。
【０２５８】
アップデートキット制作部３０７は、差分抽出部３０６を元に前述で説明したアップデートキットのデータフォーマットに合うようにマージ管理情報ファイルや署名情報ファイルを作成し、ファイルやディレクトリを配置する。
図５６は、ROMディスクイメージ、アップデートキットイメージの作成方法について説明する。
【０２５９】
ステップS２１１において、素材制作部３０１はビデオストリーム、オーディオストリーム、IGストリーム、PGストリームを生成する。
ステップS２１２において、シナリオ生成部３０２は、インデックスファイル、ムービーオブジェクトファイル、プレイリストファイルなど再生シナリオを記述するROMシナリオデータを作成する。
【０２６０】
ステップS２１３において、BD-J制作部３０３は、BD-Jアプリケーションのプログラムを作成する。
ステップS２１４において、多重化処理部３０４はROMシナリオデータを元にAVクリップとクリップ情報ファイルを作成する。
ステップS２１５において、フォーマット処理部３０７は、ROMシナリオデータ、変形AVクリップ、クリップ情報ファイル、復元バイトコードデータを、これまでの実施形態で述べたファイル・ディレクトリ構造に並び替え、ROMディスクイメージを作成する。
【０２６１】
ステップS２２１において、差分抽出部３０６は二つのディスクイメージを比較して差分データを抽出する。
ステップS２２２において、アップデートキット制作部３０７は、インデックスファイル、ムービーオブジェクトファイル、プレイリストファイルなど再生シナリオを記述するROMシナリオデータを作成する。
【０２６２】
ステップS２２３において、BD-J制作部３０３は、BD-Jアプリケーションのプログラムを作成する。
ステップS２２４において、多重化処理部３０４はROMシナリオデータを元にAVクリップとクリップ情報ファイルを作成する。
ステップS２２５において、フォーマット処理部３０７は、差分データをアップデートキットのデータフォーマットに合うように変換する。ステップＳ２２６において、マージ管理情報ファイルや署名情報ファイルを作成し、アップデートキット内に配置する。
【０２６３】
(備考)
以上、本願の出願時点において、出願人が知り得る最良の実施形態について説明したが、以下に示す技術的トピックについては、更なる改良や変更実施を加えることができる。各実施形態に示した通り実施するか、これらの改良・変更を施すか否かは、何れも任意的であり、実施する者の主観によることは留意されたい。
【０２６４】
(プログラミング言語の適用範囲)
上記実施形態では、仮想マシンのプログラミング言語としてJava（登録商標）を利用したが、Java（登録商標）ではなく、UNIX（登録商標）OSなどで使われているB-Shellや、Perl Script、ECMA Scriptなど他のプログラミング言語であっても良い。
（リアルタイムレコーディング）
再生装置１０１は、リアルタイムレコーディングを行うことで、クリップファイルをローカルストレージに記録してもよい。この際、AVストリームは、アナログ入力信号を記録装置がセルフエンコードすることにより得られたトランスポートストリームであってもよいし、記録装置がデジタル入力したトランスポートストリームをパーシャル化することで得られるトランスポートストリームであってもよい。
【０２６５】
リアルタイムレコーディングにあたって上記装置は、AVストリームの記録と共に、メモリ上でクリップ情報やプレイリスト情報を生成する処理を行うが、この際、上述した各実施形態に記載したクリップ情報、プレイリスト情報をメモリ上で生成する。そしてAVストリームの記録を終えた後、生成されたクリップ情報、プレイリスト情報を記録媒体に書き込む。こうすることで、オーサリングシステムを用いずとも、家庭用の記録装置や、記録装置としての機能を具備したパーソナルコンピュータにて、各実施形態に示したクリップ情報、プレイリスト情報を作成することができる。そうして作成されたAVストリーム、クリップ情報、プレイリスト情報を、ライトワンス型の記録媒体に書き込んでもよい。
【０２６６】
(AV再生の対象)
AV再生の対象は、デジタルストリーム、マップ情報、プレイリスト情報から構成されるコンテンツであるなら、BD-ROMに規定されたものに限らない。デジタルストリームは、MPEG2,MPEG4-AVC等の符号化方式で符号化されたビデオストリーム、オーディオストリームを多重化することで、得られた多重化ストリームであり、DVDVideo-RecordingではVOBと呼ばれる。
【０２６７】
マップ情報は、上述したビデオストリームにおけるアクセスユニット(独立復号可能な再生単位をいう)のアドレス情報と、ビデオストリームの再生時間軸における再生時刻との対応を示す情報であり、DVDVideo-RecordingではTime Mapと呼ばれる。
プレイリスト情報は、開始点たる時刻情報と、終了点たる時刻情報との組みにより、1つ以上の再生区間を定義する情報である。
【０２６８】
(制御手順の実現)
各実施形態においてフローチャートを引用して説明した制御手順や、機能的な構成要素による制御手順は、ハードウェア資源を用いて具体的に実現されていることから、自然法則を利用した技術的思想の創作といえ、“プログラムの発明”としての成立要件を満たす。
【０２６９】
・クリップファイルのダウンロードやDataStarvedイベントの出力を行うアプリケーションプログラムの生産形態
クリップファイルのダウンロードやDataStarvedイベントの出力を行うアプリケーションプログラムは、以下のようにして作ることができる。先ず初めに、ソフトウェア開発者は、プログラミング言語を用いて、各フローチャートや、機能的な構成要素を実現するようなソースプログラムを記述する。この記述にあたって、ソフトウェア開発者は、プログラミング言語の構文に従い、クラス構造体や変数、配列変数、外部関数のコールを用いて、各フローチャートや、機能的な構成要素を具現するソースプログラムを記述する。この際、Java(登録商標)言語でのプログラムのための様々なAPIコールを使用する。
【０２７０】
記述されたソースプログラムは、ファイルとしてコンパイラに与えられる。コンパイラは、これらのソースプログラムを翻訳してオブジェクトプログラムを生成する。
コンパイラによる翻訳は、構文解析、最適化、資源割付、コード生成といった過程からなる。構文解析では、ソースプログラムの字句解析、構文解析および意味解析を行い、ソースプログラムを中間プログラムに変換する。最適化では、中間プログラムに対して、基本ブロック化、制御フロー解析、データフロー解析という作業を行う。資源割付では、ターゲットとなるプロセッサの命令セットへの適合を図るため、中間プログラム中の変数をターゲットとなるプロセッサのプロセッサが有しているレジスタまたはメモリに割り付ける。コード生成では、中間プログラム内の各中間命令を、プログラムコードに変換し、オブジェクトプログラムを得る。
【０２７１】
ここで生成されたオブジェクトプログラムは、各実施形態に示したフローチャートの各ステップや、機能的構成要素の個々の手順を、コンピュータに実行させるような1つ以上のプログラムコードから構成される。ここでプログラムコードは、プロセッサのネィティブコード、JAVA（登録商標）バイトコードというように、様々な種類がある。プログラムコードによる各ステップの実現には、様々な態様がある。外部関数を利用して、各ステップを実現することができる場合、この外部関数をコールするコール文が、プログラムコードになる。また、1つのステップを実現するようなプログラムコードが、別々のオブジェクトプログラムに帰属することもある。命令種が制限されているRISCプロセッサでは、算術演算命令や論理演算命令、分岐命令等を組合せることで、フローチャートの各ステップを実現してもよい。
【０２７２】
オブジェクトプログラムが生成されるとプログラマはこれらに対してリンカを起動する。リンカはこれらのオブジェクトプログラムや、関連するライブラリプログラムをメモリ空間に割り当て、これらを１つに結合して、ロードモジュールを生成する。こうして生成されるロードモジュールは、コンピュータによる読み取りを前提にしたものであり、各フローチャートに示した処理手順や機能的な構成要素の処理手順を、コンピュータに実行させるものである。以上の処理を経て、クリップファイルのダウンロードやDataStarvedイベントの出力を行うアプリケーションプログラムを作ることができる。こうして作成したプログラムをコンピュータ読取可能な記録媒体に記録してユーザに供給してもよい。
【０２７３】
(システムLSI化)
再生装置１０１を構成するハードウェアのうち、機構的な構成要素(BDドライブ)、大容量のメモリによって実装される構成要素(ビデオプレーン、グラフィクスプレーン)を除いた、論理素子を主要部とするシステムターゲットデコーダやBD-J処理部の部分を一体化してシステムLSIとして構成することが望ましい。何故なら、論理素子を主要部とする部分は、高密度に集積化することができるからである。
【０２７４】
システムLSIとは、高密度基板上にベアチップを実装し、パッケージングしたものをいう。複数個のベアチップを高密度基板上に実装し、パッケージングすることにより、あたかも1つのLSIのような外形構造を複数個のベアチップに持たせたものも、システムLSIに含まれる(このようなシステムLSIは、マルチチップモジュールと呼ばれる。)。
ここでパッケージの種別に着目するとシステムLSIには、QFP(クッド フラッド アレイ)、PGA(ピングリッド アレイ)という種別がある。QFPは、パッケージの四側面にピンが取り付けられたシステムLSIである。PGAは、底面全体に、多くのピンが取り付けられたシステムLSIである。
【０２７５】
これらのピンは、他の回路とのインターフェイスとしての役割を担っている。システムLSIにおけるピンには、こうしたインターフェイスの役割が存在するので、システムLSIにおけるこれらのピンに、他の回路を接続することにより、システムLSIは、再生装置１０１の中核としての役割を果たす。
かかるシステムLSIは、再生装置１０１は勿論のこと、TVやゲーム、パソコン、ワンセグ携帯等、映像再生を扱う様々な機器に組込みが可能であり、再生装置の用途を多いに広げることができる。
【０２７６】
エレメンタバッファやビデオデコーダ、オーディオデコーダ、グラフィクスデコーダをも、一体のシステムLSIにする場合、システムLSIのアーキテクチャは、Uniphierアーキテクチャに準拠させるのが望ましい。
Uniphierアーキテクチャに準拠したシステムLSIは、以下の回路ブロックから構成される。
【０２７７】
・データ並列プロセッサDPP
これは、複数の要素プロセッサが同一動作するSIMD型プロセッサであり、各要素プロセッサに内蔵されている演算器を、1つの命令で同時動作させることで、ピクチャを構成する複数画素に対するデコード処理の並列化を図る。
・命令並列プロセッサIPP
これは、命令RAM、命令キャッシュ、データRAM、データキャッシュからなる「LocalMemory Controller」、命令フェッチ部、デコーダ、実行ユニット、レジスタファイルからなる「Processing Unit部」、複数アプリケーションの並列実行をProcessingUnit部に行わせる「Virtual Multi Processor Unit部」で構成される。
【０２７８】
・MPUブロック
これは、ARMコア、外部バスインターフェイス(Bus ControlUnit:BCU)、DMAコントローラ、タイマー、ベクタ割込コントローラといった周辺回路、UART、GPIO(General Purpose InputOutput)、同期シリアルインターフェイスなどの周辺インターフェイスで構成される。
【０２７９】
・ストリームI/Oブロック
これは、USBインターフェイスやATA Packetインターフェイスを介して、外部バス上に接続されたドライブ装置、ハードリムーバブルメディアドライブ装置、SDメモリカードドライブ装置とのデータ入出力を行う。
・AVI/Oブロック
これは、オーディオ入出力、ビデオ入出力、OSDコントローラで構成され、テレビ、AVアンプとのデータ入出力を行う。
【０２８０】
・メモリ制御ブロック
これは、外部バスを介して接続されたSD-RAMの読み書きを実現するブロックであり、各ブロック間の内部接続を制御する内部バス接続部、システムLSI外部に接続されたSD-RAMとのデータ転送を行うアクセス制御部、各ブロックからのSD-RAMのアクセス要求を調整するアクセススケジュール部からなる。
【０２８１】
具体的な生産手順の詳細は以下のものになる。まず各実施形態に示した構成図を基に、システムLSIとすべき部分の回路図を作成し、回路素子やIC,LSIを用いて、構成図における構成要素を具現化する。
そうして、各構成要素を具現化してゆけば、回路素子やIC,LSI間を接続するバスやその周辺回路、外部とのインターフェイス等を規定する。更には、接続線、電源ライン、グランドライン、クロック信号線等も規定してゆく。この規定にあたって、LSIのスペックを考慮して各構成要素の動作タイミングを調整したり、各構成要素に必要なバンド幅を保証する等の調整を加えながら、回路図を完成させてゆく。
【０２８２】
回路図が完成すれば、実装設計を行う。実装設計とは、回路設計によって作成された回路図上の部品(回路素子やIC,LSI)を基板上のどこへ配置するか、あるいは、回路図上の接続線を、基板上にどのように配線するかを決定する基板レイアウトの作成作業である。
こうして実装設計が行われ、基板上のレイアウトが確定すれば、実装設計結果をCAMデータに変換して、NC工作機械等の設備に出力する。NC工作機械は、このCAMデータを基に、SoC実装やSiP実装を行う。SoC(Systemon chip)実装とは、1チップ上に複数の回路を焼き付ける技術である。SiP(System in Package)実装とは、複数チップを樹脂等で1パッケージにする技術である。以上の過程を経て、本発明に係るシステムLSIは、各実施形態に示した再生装置１０１の内部構成図を基に作ることができる。
【０２８３】
尚、上述のようにして生成される集積回路は、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。
FPGAを用いてシステムLSIを実現した場合は、多数のロジックエレメントが格子状に配置されており、LUT(LookUp Table)に記載されている入出力の組合せに基づき、縦・横の配線をつなぐことにより、各実施形態に示したハードウェア構成を実現することができる。LUTは、SRAMに記憶されており、かかるSRAMの内容は、電源断により消滅するので、かかるFPGAの利用時には、コンフィグ情報の定義により、各実施形態に示したハードウェア構成を実現するLUTを、SRAMに書き込ませる必要がある。
【産業上の利用可能性】
【０２８４】
本発明に係る再生装置は、ストリーミングライクな再生機能を効率的に行い、ユーザに長いダウンロード時間を与えずにすむので、より魅力的な映画タイトルなどの動画コンテンツを市場に供給することができ、映画市場や民生機器市場を活性化させることができる。故に本発明に係る再生装置は、映画産業や民生機器産業において高い利用可能性をもつ  
【符号の説明】
【０２８５】
１００  BD-ROM
１０２  WWWサーバ
１０３  ローカルストレージ
１０４  テレビ
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プレイリストを再生する再生装置であって、
プレイリストは、複数のプレイアイテムと、複数のサブプレイアイテムとを含み、
前記プレイアイテムは、メインストリームを含むクリップファイルと、当該クリップファイルにおける再生区間を規定する情報であり、
前記サブプレイアイテムは、サブストリームを含むクリップファイルと、当該クリップファイルにおける再生区間を、プレイアイテムと同期すべき再生区間として規定する情報であり、
前記サブプレイアイテムが参照するクリップファイルは、伝送路を介して伝送されるクリップファイルであり、サブストリームは、プレイアイテムが参照しているクリップファイルとは多重化されておらず、
プレイリストに含まれるプレイアイテムを再生する再生手段と、
複数のプレイアイテムのうち、再生対象になっているものをカレントプレイアイテムとして特定する特定手段と、
カレントプレイアイテムが変化する度に、カレントプレイアイテムにとって最適なサブプレイアイテムをカレントサブプレイアイテムとして決定する決定手段と、
前記カレントプレイアイテムと同期して再生すべきカレントサブストリームを指し示すサブストリームレジスタとを備え、
前記カレントサブプレイアイテムとは、
カレントプレイアイテムと同期すべき再生区間を規定するサブプレイアイテムであって、前記サブストリームレジスタが指し示すサブストリームの再生区間を規定するものであり、
前記再生手段は、
再生装置がアクセス可能な記録媒体に、カレントサブプレイアイテムによって参照されているクリップファイルが存在すればプレイアイテムの再生を進行し、カレントサブプレイアイテムによって参照されているクリップファイルが記録媒体において存在しないか又は認識不能な状態になっていれば、プレイアイテムの再生を停止する
ことを特徴とする再生装置。
【請求項２】
サブストリームには、オーディオストリーム、ビデオストリーム、字幕ストリームという種別があり、
サブストリームレジスタは、サブストリームの種別毎にストリーム番号を保持する番号レジスタを備え、各番号レジスタは、ストリーム番号を保持することで、サブストリームの種別毎のカレントサブストリームを指し示し、
前記カレントサブプレイアイテムは、
番号レジスタが指し示すカレントサブストリームを格納したクリップファイルを参照しているサブプレイアイテムである
ことを特徴とする請求項１記載の再生装置。
【請求項３】
前記再生装置は、
記録媒体におけるクリップファイルの状態を管理する管理手段を備え、
前記クリップファイルは、
アプリケーションがサーバ装置に対してダウンロードを要求することで伝送路を介して再生装置に送信され、
前記再生手段による再生開始は、
アプリケーションが、プレイリスト情報に対してプレーヤインスタンスを生成することでなされ、
前記再生手段の停止は、
カレントサブプレイアイテムによって参照されているクリップファイルが記録媒体において存在しないか又は認識不能な状態になっている場合、管理手段が、再生手段及びプレーヤインスタンスに、再生停止を指示するイベントを出力することでなされる
ことを特徴とする請求項１記載の再生装置
【請求項４】
プレイアイテムから参照されるクリップファイルはビデオストリームを含み、
サブストリームは、前記ビデオストリームと同期して再生することで立体視をユーザに行うサブビデオストリームであり、
プレイリストは、立体視セッティング情報を含み、立体視セッティング情報は、立体視をオンとするか、オフとするかを示し、
立体視セッティング情報が立体視オフを示している場合、再生手段は、サブプレイアイテムにて参照されているクリップファイルであって、サブビデオストリームを含むクリップファイルが前記記録媒体に存在しないか又は認識不能な状態になっていたとしても、再生を停止せず、
再生手段が再生を停止するのは、プレイリストにおける立体視セッティング情報が立体視オンを示している場合であって、カレントサブプレイアイテムによって参照されているクリップファイルが前記記録媒体に存在しないか又は認識不能な状態になっている場合に限る
ことを特徴とする請求項１記載の再生装置。
【請求項５】
サブストリームは、字幕ストリームであり、
前記サブストリームレジスタは更に、字幕オン／オフの設定を含み、
前記再生手段は、
前記サブストリームレジスタが字幕オフを示している場合、字幕ストリームを含む何れのクリップファイルが記録媒体に存在しないか、又は、認識不能な状態であったとしても再生を停止せず、
再生を停止するのは、前記サブストリームレジスタが字幕オンを示している場合であって、カレントサブプレイアイテムによって参照されているクリップファイルが記録媒体において存在しないか又は認識不能な状態になっている場合に限る
ことを特徴とする請求項１記載の再生装置。
【請求項６】
プレイアイテム情報は、再生が可能なサブストリームを示すストリーム番号テーブルを含み、
前記ストリーム番号テーブルは、複数のサブストリームエントリーとを含み、
複数のサブストリームエントリーは、プレイアイテムと同期して再生することができる複数のサブストリームを示す情報であり、
各々サブストリームエントリーは、同期再生可能なサブストリームと、サブプレイアイテム情報との対応付けて示す情報であり、ストリーム番号テーブルにおけるサブストリームエントリーの順序は、サブストリームの優先順位を示し、
カレントサブストリームは、
同期再生可能な複数のサブストリームのうち、対応するサブストリームエントリーの優先順位が最高位のものである
ことを特徴とする請求項１記載の再生装置。
【請求項７】
前記再生装置は、デッキ情報を格納するセッティングレジスタを備え、
デッキ情報は、再生装置における言語設定を示し、
前記決定手段は、
再生が許可されているサブストリームのうち、デッキ情報に示される言語設定と合致する言語属性を有するものを、カレントサブストリームとして決定する
ことを特徴とする請求項１記載の再生装置。
【請求項８】
プレイリストの再生時に参照されるクリップファイルを記録媒体に書き込む記録装置であって、
プレイリストは、複数のプレイアイテムと、複数のサブプレイアイテムとを含み、
前記プレイアイテムは、メインストリームを含むクリップファイルと、当該クリップファイルにおける再生区間を規定する情報であり、
前記サブプレイアイテムは、サブストリームを含むクリップファイルと、当該クリップファイルにおける再生区間を、プレイアイテムと同期すべき再生区間として規定する情報であり、
前記サブプレイアイテムが参照するクリップファイルは、伝送路を介して伝送されるクリップファイルであり、サブストリームは、プレイアイテムが参照しているクリップファイルとは多重化されておらず、
クリップファイルを伝送路を介して受け取って、記録媒体に書き込む書込手段と、
記録媒体に書き込まれたクリップファイルの状態を管理する管理手段と、
プレイリストに含まれるプレイアイテムを再生する再生手段と、
複数のプレイアイテムのうち、再生対象になっているものをカレントプレイアイテムとして特定する特定手段と、
カレントプレイアイテムが変化する度に、カレントプレイアイテムにとって最適なサブプレイアイテムをカレントサブプレイアイテムとして決定する決定手段と、
前記カレントプレイアイテムと同期して再生すべきカレントサブストリームを指し示すサブストリームレジスタとを備え、
前記カレントサブプレイアイテムとは、
カレントプレイアイテムと同期すべき再生区間を規定するサブプレイアイテムであって、前記サブストリームレジスタが指し示すサブストリームの再生区間を規定するものであり、
前記再生手段は、
再生装置がアクセス可能な記録媒体に、カレントサブプレイアイテムによって参照されているクリップファイルが存在すればプレイアイテムの再生を進行し、カレントサブプレイアイテムによって参照されているクリップファイルが記録媒体において存在しないか又は認識不能な状態になっていれば、プレイアイテムの再生を停止する
ことを特徴とする記録装置。
【請求項９】
アプリケーションは、カレントプレイアイテムの再生がなされている期間内に、プレイリスト情報に含まれる複数のサブプレイアイテム情報のうち、カレントサブプレイアイテムの次順位となるものをネクストサブプレイアイテムとして特定して、ネクストサブプレイアイテムによって参照されているクリップファイルのダウンロードを、サーバ装置に対して要求し、
前記書込手段によって記録媒体に書き込まれるクリップファイルは、ネクストサブプレイアイテム情報によって参照されているクリップファイルである
ことを特徴とする請求項８記載の記録装置。
【請求項１０】
プレイリストを再生する再生方法であって、
プレイリストは、複数のプレイアイテムと、複数のサブプレイアイテムとを含み、
前記プレイアイテムは、メインストリームを含むクリップファイルと、当該クリップファイルにおける再生区間を規定する情報であり、
前記サブプレイアイテムは、サブストリームを含むクリップファイルと、当該クリップファイルにおける再生区間を、プレイアイテムと同期すべき再生区間として規定する情報であり、
前記サブプレイアイテムが参照するクリップファイルは、伝送路を介して伝送されるクリップファイルであり、サブストリームは、プレイアイテムが参照しているクリップファイルとは多重化されておらず、
プレイリストに含まれるプレイアイテムを再生する再生ステップと、
複数のプレイアイテムのうち、再生対象になっているものをカレントプレイアイテムとして特定する特定ステップと、
カレントプレイアイテムが変化する度に、カレントプレイアイテムにとって最適なサブプレイアイテムをカレントサブプレイアイテムとして決定する決定ステップと、
前記カレントプレイアイテムと同期して再生すべきカレントサブストリームを指し示すステップとを有し、
前記カレントサブプレイアイテムとは、
カレントプレイアイテムと同期すべき再生区間を規定するサブプレイアイテムであって、カレントサブストリームの再生区間を規定するものであり、
前記再生ステップは、
アクセス可能な記録媒体に、カレントサブプレイアイテムによって参照されているクリップファイルが存在すればプレイアイテムの再生を進行し、カレントサブプレイアイテムによって参照されているクリップファイルが記録媒体において存在しないか又は認識不能な状態になっていれば、プレイアイテムの再生を停止する
ことを特徴とする再生方法。
【請求項１１】
プレイリストの再生時に参照されるクリップファイルを記録媒体に書き込む記録方法であって、
プレイリストは、複数のプレイアイテムと、複数のサブプレイアイテムとを含み、
前記プレイアイテムは、メインストリームを含むクリップファイルと、当該クリップファイルにおける再生区間を規定する情報であり、
前記サブプレイアイテムは、サブストリームを含むクリップファイルと、当該クリップファイルにおける再生区間を、プレイアイテムと同期すべき再生区間として規定する情報であり、
前記サブプレイアイテムが参照するクリップファイルは、伝送路を介して伝送されるクリップファイルであり、サブストリームは、プレイアイテムが参照しているクリップファイルとは多重化されておらず、
クリップファイルを伝送路を介して受け取って、記録媒体に書き込む書込ステップと、
記録媒体に書き込まれたクリップファイルの状態を管理する管理ステップと、
プレイリストに含まれるプレイアイテムを再生する再生ステップと、
複数のプレイアイテムのうち、再生対象になっているものをカレントプレイアイテムとして特定する特定ステップと、
カレントプレイアイテムが変化する度に、カレントプレイアイテムにとって最適なサブプレイアイテムをカレントサブプレイアイテムとして決定する決定ステップと、
前記カレントプレイアイテムと同期して再生すべきカレントサブストリームを指し示すステップとを有し、
前記カレントサブプレイアイテムとは、
カレントプレイアイテムと同期すべき再生区間を規定するサブプレイアイテムであって、カレントサブストリームの再生区間を規定するものであり、
前記再生ステップは、
カレントサブプレイアイテムによって参照されているクリップファイルが、記録媒体において存在すればプレイアイテムの再生を進行し、カレントサブプレイアイテムによって参照されているクリップファイルが記録媒体において存在しないか又は認識不能な状態になっていれば、プレイアイテムの再生を停止する
ことを特徴とする記録方法。
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2009101787.tif 000059
【図２】
2009101787.tif 000060
【図３】
2009101787.tif 000061
【図４】
2009101787.tif 000062
【図５】
2009101787.tif 000063
【図６】
2009101787.tif 000064
【図７】
2009101787.tif 000065
【図８】
2009101787.tif 000066
【図９】
2009101787.tif 000067
【図１０】
2009101787.tif 000068
【図１１】
2009101787.tif 000069
【図１２】
2009101787.tif 000070
【図１３】
2009101787.tif 000071
【図１４】
2009101787.tif 000072
【図１５】
2009101787.tif 000073
【図１６】
2009101787.tif 000074
【図１７】
2009101787.tif 000075
【図１８】
2009101787.tif 000076
【図１９】
2009101787.tif 000077
【図２０】
2009101787.tif 000078
【図２１】
2009101787.tif 000079
【図２２】
2009101787.tif 000080
【図２３】
2009101787.tif 000081
【図２４】
2009101787.tif 000082
【図２５】
2009101787.tif 000083
【図２６】
2009101787.tif 000084
【図２７】
2009101787.tif 000085
【図２８】
2009101787.tif 000086
【図２９】
2009101787.tif 000087
【図３０】
2009101787.tif 000088
【図３１】
2009101787.tif 000089
【図３２】
2009101787.tif 000090
【図３３】
2009101787.tif 000091
【図３４】
2009101787.tif 000092
【図３５】
2009101787.tif 000093
【図３６】
2009101787.tif 000094
【図３７】
2009101787.tif 000095
【図３８】
2009101787.tif 000096
【図３９】
2009101787.tif 000097
【図４０】
2009101787.tif 000098
【図４１】
2009101787.tif 000099
【図４２】
2009101787.tif 000100
【図４３】
2009101787.tif 000101
【図４４】
2009101787.tif 000102
【図４５】
2009101787.tif 000103
【図４６】
2009101787.tif 000104
【図４７】
2009101787.tif 000105
【図４８】
2009101787.tif 000106
【図４９】
2009101787.tif 000107
【図５０】
2009101787.tif 000108
【図５１】
2009101787.tif 000109
【図５２】
2009101787.tif 000110
【図５３】
2009101787.tif 000111
【図５４】
2009101787.tif 000112
【図５５】
2009101787.tif 000113
【図５６】
2009101787.tif 000114
【国際調査報告】
2009101787.tif 000115
2009101787.tif 000116
2009101787.tif 000117