(57)【要約】【課題】  コンテンツの再生および再生の一時停止状態の何れにおいてもインタラクティブに表示および操作が可能なメニュー表示を行う。【解決手段】  ビデオストリームをデコードするビデオデコーダ４０３に対して、ＳＴＣを供給する。メニュー表示が可能な状態において、メニュー表示を行うＩＧストリームをデコードするＩＧデコーダ４０２に対して、ＳＴＣと独立したクロックＣＬＫを供給し、メニュー表示をビデオストリームと非同期に制御する。ポーズ指示に応じてＳＷ２がＯＦＦとされビデオストリームによる表示が一時停止とされても、ＩＧデコーダ４０２に対してクロックＣＬＫが供給され、メニュー表示に対する操作が受付可能な状態とされる。ビデオストリームとメニュー表示とが同期的に表示される場合には、ＩＧデコーダ４０２およびビデオデコーダ４０３に対して、それぞれＳＴＣが供給される。【選択図】  図２７
2008077775.tif 000002
【特許請求の範囲】
【請求項１】
基準信号に基づき再生制御される、主画像を表示するための第１のストリームと、少なくとも該第１のストリームの再生方法が記述される再生制御情報とが少なくとも入力され、さらに、該第１のストリームに対して非同期であって、該第１のストリームによる該主画像に重ねて表示される、メニュー表示を行うための第２のストリームが入力可能とされる入力部と、
上記メニュー表示に対する操作を受け付ける操作入力部と、
上記再生制御情報に基づき上記第１のストリームおよび上記第２のストリームの再生制御を行う再生制御部と
を有し、
上記再生制御部は、上記第１のストリームの再生を一時停止した場合でも、上記メニュー表示に対する上記操作入力部による操作を受付可能に制御する
ことを特徴とする再生装置。
【請求項２】
請求項１に記載の再生装置において、
上記再生制御情報に、該再生制御情報に基づき再生制御される上記第１のストリームに対応する他のストリームの種別を示す情報が記述されており、
上記再生制御部は、
上記再生制御情報中の上記種別情報に基づき、上記第１のストリームに対応して上記入力部に入力される上記他のストリームが上記第２のストリームであるか否かを判断する
ことを特徴とする再生装置。
【請求項３】
請求項１に記載の再生装置において、
上記基準信号を出力する基準信号出力部と、
上記基準信号とは独立したクロック信号を出力するクロック信号出力部と
をさらに有し、
上記第２のストリームは、上記クロック信号出力部から出力される上記クロック信号と、上記基準信号出力部から出力される上記基準信号とのうち、上記再生制御部により選択された信号に基づき再生制御される
ことを特徴とする再生装置。
【請求項４】
請求項３に記載の再生装置において、
上記再生制御部は、
上記第２のストリームを、上記クロック信号出力部から出力される上記クロック信号に基づき再生制御することで、上記第１のストリームの再生を一時停止した場合の上記メニュー表示に対する上記操作入力部による操作を受付可能とする制御を行う
ことを特徴とする再生装置。
【請求項５】
基準信号に基づき再生制御される、主画像を表示するための第１のストリームと、少なくとも該第１のストリームの再生方法が記述される再生制御情報とが少なくとも入力され、さらに、該第１のストリームに対して非同期であって、該第１のストリームによる該主画像に重ねて表示される、メニュー表示を行うための第２のストリームが入力可能とされる入力のステップと、
上記メニュー表示に対する操作を受け付ける操作入力のステップと、
上記再生制御情報に基づき上記第１のストリームおよび上記第２のストリームの再生制御を行う再生制御のステップと
を有し、
上記再生制御のステップは、上記第１のストリームの再生を一時停止した場合でも、上記メニュー表示に対する上記操作入力のステップによる操作を受付可能に制御する
ことを特徴とする再生方法。
【請求項６】
基準信号に基づき再生制御される、主画像を表示するための第１のストリームと、少なくとも該第１のストリームの再生方法が記述される再生制御情報とが少なくとも入力され、さらに、該第１のストリームに対して非同期であって、該第１のストリームによる該主画像に重ねて表示される、メニュー表示を行うための第２のストリームが入力可能とされる入力のステップと、
上記メニュー表示に対する操作を受け付ける操作入力のステップと、
上記再生制御情報に基づき上記第１のストリームおよび上記第２のストリームの再生制御を行う再生制御のステップと
を有し、
上記再生制御のステップは、上記第１のストリームの再生を一時停止した場合でも、上記メニュー表示に対する上記操作入力のステップによる操作を受付可能に制御する再生方法をコンピュータ装置に実行させる
ことを特徴とする再生プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ブルーレイディスク(Blu-ray Disc)といった大容量の記録媒体に記録されたプログラムに対する、ユーザによるインタラクティブな操作の操作性を向上させるような再生装置、再生方法および再生プログラムに関する。
【背景技術】
【０００２】
近年、記録可能で記録再生装置から取り外し可能なディスク型記録媒体の規格として、Ｂｌｕ−ｒａｙ  Ｄｉｓｃ（ブルーレイディスク）規格が実用化されている。Ｂｌｕ−ｒａｙ  Ｄｉｓｃ規格では、記録媒体として直径１２ｃｍ、カバー層０．１ｍｍのディスクを用い、光学系として波長４０５ｎｍの青紫色レーザ、開口数０．８５の対物レンズを用いて、最大で２７ＧＢ（ギガバイト）の記録容量を実現している。これにより、日本のＢＳディジタルハイビジョン放送を、画質を劣化させることなく２時間以上記録することが可能である。
【０００３】
この記録可能光ディスクに記録するＡＶ(Audio/Video)信号のソース（供給源）としては、従来からの、例えばアナログテレビジョン放送によるアナログ信号によるものと、例えばＢＳディジタル放送をはじめとするディジタルテレビジョン放送によるディジタル信号によるものとが想定されている。Ｂｌｕ−ｒａｙ  Ｄｉｓｃ規格では、これらの放送によるＡＶ信号を記録する方法を定めた規格は、既に作られている。
【０００４】
一方で、現状のＢｌｕ−ｒａｙ  Ｄｉｓｃのの派生規格として、映画や音楽などが予め記録された、再生専用の記録媒体を開発する動きが進んでいる。映画や音楽を記録するためのディスク状記録媒体としては、既にＤＶＤ(Digital Versatile Disc)が広く普及しているが、このＢｌｕ−ｒａｙ  Ｄｉｓｃの規格に基づいた再生専用光ディスクは、Ｂｌｕ−ｒａｙ  Ｄｉｓｃの大容量および高速な転送速度などを活かし、ハイビジョン映像を高画質なままで２時間以上収録できる点が、既存のＤＶＤとは大きく異なり、優位である。
【０００５】
ところで、ディスクに映画などのコンテンツを記録して、パッケージメディアとして販売等を行う場合、コンテンツに伴う様々なプログラムの実行などを制御するためのユーザインターフェイスをコンテンツと共にディスクに記録することが行われる。代表的なユーザインターフェイスとしては、メニュー表示が挙げられる。一例として、メニュー表示は、プレーヤに対応したリモートコントロールコマンダの所定のキーを操作することで画面に表示され、十字キーなどを用いてメニュー項目を選択し、決定ボタンを操作することで、プレーヤにおいて、選択された項目に対応した動作がなされる。
【０００６】
上述した、Ｂｌｕ−ｒａｙ  Ｄｉｓｃの規格に基づいた再生専用光ディスクにおいては、コンテンツ再生中になされるユーザ操作に応じてメニュー表示を行う、所謂インタラクティブな機能が実現されている。すなわち、コンテンツ再生中に、ユーザがリモートコントロールコマンダの所定のキーを操作することによって、コンテンツの再生画面にメニュー表示が重ねて表示され、ユーザのキー操作に応じてメニュー項目の選択、決定および実行などがなされる。特許文献１には、メニュー表示時にコンテンツの再生を維持できるようにした技術が記載されている。
【特許文献１】特開２００５−２２２６８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、従来では、上述したような、コンテンツの再生と、当該コンテンツの再生時にユーザ操作に応じてインタラクティブなされるメニュー表示とを、同一の時系列に基づき再生制御していた。そのため、例えばコンテンツ再生中にメニュー表示を行わせた際に、ユーザ操作によりコンテンツの再生を一時停止（ポーズ）状態にすると、コンテンツ再生が一時停止されるのに伴い、メニュー表示も停止状態とされ、メニューに対するユーザ操作が受け付けられなくなってしまうという問題点があった。
【０００８】
一例として、コンテンツの再生中に表示および操作可能なメニュー表示により、音声（日本語または英語）と、字幕（英語または日本語）とを切り換える可能とされている場合について考える。例えば、ユーザがコンテンツを途中まで視聴した時点でメニューを表示させて音声や字幕を切り換えようとしたときに、再生状態のままメニュー表示を表示させて切り換え操作を行うと、メニュー表示およびメニュー表示に基づく切り換え操作を行っている最中にもコンテンツの再生が進んでしまい、ユーザは、その間に再生されるコンテンツを注目することができない。
【０００９】
一方、メニューを表示後に、再生中のコンテンツを一時停止させて音声や字幕を切り換えようと思っても、上述したように、コンテンツの再生を一時停止状態とするのに伴いメニューに対する操作もできなくなってしまうことになる。そのため、結局、コンテンツの再生中にメニュー表示させて音声や字幕を切り換えた後に、所望の場面まで再生位置を戻して再生をやり直さなければならず、ユーザに対する利便性に欠けているという問題点があった。
【００１０】
したがって、この発明の目的は、コンテンツの再生および再生の一時停止状態の何れにおいてもインタラクティブに表示および操作が可能なメニュー表示を行うことができるようにした再生装置、再生方法および再生プログラムを提供することにある。
【課題を解決するための手段】
【００１１】
この発明は、上述した課題を解決するために、基準信号に基づき再生制御される、主画像を表示するための第１のストリームと、少なくとも第１のストリームの再生方法が記述される再生制御情報とが少なくとも入力され、さらに、第１のストリームに対して非同期であって、第１のストリームによる主画像に重ねて表示される、メニュー表示を行うための第２のストリームが入力可能とされる入力部と、メニュー表示に対する操作を受け付ける操作入力部と、再生制御情報に基づき第１のストリームおよび第２のストリームの再生制御を行う再生制御部とを有し、再生制御部は、第１のストリームの再生を一時停止した場合でも、メニュー表示に対する操作入力部による操作を受付可能に制御することを特徴とする再生装置である。
【００１２】
また、この発明は、基準信号に基づき再生制御される、主画像を表示するための第１のストリームと、少なくとも第１のストリームの再生方法が記述される再生制御情報とが少なくとも入力され、さらに、第１のストリームに対して非同期であって、第１のストリームによる主画像に重ねて表示される、メニュー表示を行うための第２のストリームが入力可能とされる入力のステップと、メニュー表示に対する操作を受け付ける操作入力のステップと、再生制御情報に基づき第１のストリームおよび第２のストリームの再生制御を行う再生制御のステップとを有し、再生制御のステップは、第１のストリームの再生を一時停止した場合でも、メニュー表示に対する操作入力のステップによる操作を受付可能に制御することを特徴とする再生方法である。
【００１３】
また、この発明は、基準信号に基づき再生制御される、主画像を表示するための第１のストリームと、少なくとも第１のストリームの再生方法が記述される再生制御情報とが少なくとも入力され、さらに、第１のストリームに対して非同期であって、第１のストリームによる主画像に重ねて表示される、メニュー表示を行うための第２のストリームが入力可能とされる入力のステップと、メニュー表示に対する操作を受け付ける操作入力のステップと、再生制御情報に基づき第１のストリームおよび第２のストリームの再生制御を行う再生制御のステップとを有し、再生制御のステップは、第１のストリームの再生を一時停止した場合でも、メニュー表示に対する操作入力のステップによる操作を受付可能に制御する再生方法をコンピュータ装置に実行させることを特徴とする再生プログラムである。
【００１４】
この発明は、上述したように、基準信号に基づき再生制御される、主画像を表示するための第１のストリームと、少なくとも第１のストリームの再生方法が記述される再生制御情報とが少なくとも入力され、さらに、第１のストリームに対して非同期であって、第１のストリームによる主画像に重ねて表示される、メニュー表示を行うための第２のストリームが入力可能とされ、第１のストリームの再生を一時停止した場合でも、メニュー表示に対する操作を受付可能に制御するようにしているため、第２のストリームによるメニュー表示に対する操作が第１のストリームの再生が一時停止していても受付られるようにできる。
【発明の効果】
【００１５】
上述したように、この発明は、基準信号に基づき再生制御される、主画像を表示するための第１のストリームと、少なくとも第１のストリームの再生方法が記述される再生制御情報とが少なくとも入力され、さらに、第１のストリームに対して非同期であって、第１のストリームによる主画像に重ねて表示される、メニュー表示を行うための第２のストリームが入力可能とされ、第１のストリームの再生を一時停止した場合でも、メニュー表示に対する操作を受付可能に制御するようにしているため、第２のストリームによるメニュー表示に対する操作が第１のストリームの再生が一時停止していても受付られるようにできる効果がある。
【発明を実施するための最良の形態】
【００１６】
以下、この発明の実施の形態を、図面を参照しながら説明する。先ず、理解を容易とするために、Ｂｌｕ−ｒａｙ  Ｄｉｓｃに関し、"Blu-ray Disc Read-Only Format Ver1.0 part3 Audio Visual Specifications"で規定されている、読み出し専用タイプのＢｌｕ−ｒａｙ  ＤｉｓｃであるＢＤ−ＲＯＭに記録されたコンテンツすなわちＡＶ(Audio/Video)データの管理構造について説明する。以下では、このＢＤ−ＲＯＭにおける管理構造をＢＤＭＶフォーマットと称する。
【００１７】
例えばＭＰＥＧ(Moving Pictures Experts Group)ビデオやＭＰＥＧオーディオなどの符号化方式で符号化され、ＭＰＥＧ２システムに従い多重化されたビットストリームは、クリップＡＶストリーム（またはＡＶストリーム）と称される。クリップＡＶストリームは、Ｂｌｕ−ｒａｙ  Ｄｉｓｃに関する規格の一つである"Blu-ray Disc Read-Only Format part2"で定義されたファイルシステムにより、ファイルとしてディスクに記録される。このファイルを、クリップＡＶストリームファイル（またはＡＶストリームファイル）と称する。
【００１８】
クリップＡＶストリームファイルは、ファイルシステム上での管理単位であり、ユーザにとって必ずしも分かりやすい管理単位であるとは限らない。ユーザの利便性を考えた場合、複数のクリップＡＶストリームファイルに分割された映像コンテンツを一つにまとめて再生する仕組みや、クリップＡＶストリームファイルの一部だけを再生する仕組み、さらには、特殊再生や頭出し再生を滑らかに行うための情報などをデータベースとしてディスクに記録しておく必要がある。Ｂｌｕ−ｒａｙ  Ｄｉｓｃに関する規格の一つである"Blu-ray Disc Read-Only Format part3"で、このデータベースが規定される。
【００１９】
図１は、ＢＤ−ＲＯＭのデータモデルを概略的に示す。ＢＤ−ＲＯＭのデータ構造は、図１に示されるように４層のレイヤよりなる。最も最下層のレイヤは、クリップＡＶストリームが配置されるレイヤである（便宜上、クリップレイヤと呼ぶ）。その上のレイヤは、クリップＡＶストリームに対する再生箇所を指定するための、ムービープレイリスト(Movie PlayList)と、プレイアイテム(PlayItem)とが配置されるレイヤである（便宜上、プレイリストレイヤと呼ぶ）。さらにその上のレイヤは、ムービープレイリストに対して再生順などを指定するコマンドからなるムービーオブジェクト(Movie Object)などが配置されるレイヤである（便宜上、オブジェクトレイヤと呼ぶ）。最上層のレイヤは、このＢＤ−ＲＯＭに格納されるタイトルなどを管理するインデックステーブルが配置される（便宜上、インデックスレイヤと呼ぶ）。
【００２０】
クリップレイヤについて説明する。クリップＡＶストリームは、ビデオデータやオーディオデータがＭＰＥＧ２  ＴＳ（トランスポートストリーム）の形式などに多重化されたビットストリームである。このクリップＡＶストリームに関する情報がクリップ情報(Clip Information)としてファイルに記録される。
【００２１】
また、クリップＡＶストリームには、ビデオデータやオーディオデータによるコンテンツデータに対して付随して表示される字幕やメニュー表示を行うためのストリームも多重化される。字幕を表示するためのグラフィクスストリームは、プレゼンテーショングラフィクス（ＰＧ）ストリームと呼ばれる。また、メニュー表示などに用いられるデータをストリームにしたものは、インタラクティブグラフィクス（ＩＧ）ストリームと呼ばれる。
【００２２】
クリップＡＶストリームファイルと、対応するクリップ情報が記録されたクリップ情報ファイルとをひとまとまりのオブジェクトと見なし、クリップ(Clip)と称する。すなわち、クリップは、クリップＡＶストリームとクリップ情報とから構成される、一つのオブジェクトである。
【００２３】
ファイルは、一般的に、バイト列として扱われる。クリップＡＶストリームファイルのコンテンツは、時間軸上に展開され、クリップ中のエントリポイントは、主に時間ベースで指定される。所定のクリップへのアクセスポイントのタイムスタンプが与えられた場合、クリップＡＶストリームファイルの中でデータの読み出しを開始すべきアドレス情報を見つけるために、クリップ情報ファイルを用いることができる。
【００２４】
プレイリストレイヤについて説明する。ムービープレイリストは、再生するＡＶストリームファイルの指定と、指定されたＡＶストリームファイルの再生箇所を指定する再生開始点（ＩＮ点）と再生終了点（ＯＵＴ点）の集まりとから構成される。この再生開始点と再生終了点の情報を一組としたものは、プレイアイテム(PlayItem)と称される。ムービープレイリストは、プレイアイテムの集合で構成される。プレイアイテムを再生するということは、そのプレイアイテムに参照されるＡＶストリームファイルの一部分を再生するということになる。すなわち、プレイアイテム中のＩＮ点およびＯＵＴ点情報に基づき、クリップ中の対応する区間が再生される。
【００２５】
オブジェクトレイヤについて説明する。ムービーオブジェクトは、ＨＤＭＶナビゲーションコマンドプログラム（ＨＤＭＶプログラム）と、ムービーオブジェクトとを連携するターミナルインフォメーションを含む。ＨＤＭＶプログラムは、プレイリストの再生を制御するためのコマンドである。ターミナルインフォメーションは、ユーザのＢＤ−ＲＯＭプレーヤに対するインタラクティブな操作を許可するための情報を含んでいる。このターミナルインフォメーションに基づき、メニュー画面の呼び出しや、タイトルサーチといったユーザオペレーションが制御される。
【００２６】
ＢＤ−Ｊオブジェクトは、Ｊａｖａプログラム（Ｊａｖａは登録商標）によるオブジェクトからなる。ＢＤ−Ｊオブジェクトは、この発明と関わりが薄いので、詳細な説明を省略する。
【００２７】
インデックスレイヤについて説明する。インデックスレイヤは、インデックステーブルからなる。インデックステーブルは、ＢＤ−ＲＯＭディスクのタイトルを定義する、トップレベルのテーブルである。インデックステーブルに格納されているタイトル情報に基づき、ＢＤ−ＲＯＭ常駐システムソフトウェア中のモジュールマネージャによりＢＤ−ＲＯＭディスクの再生が制御される。
【００２８】
すなわち、図２に概略的に示されるように、インデックステーブル中の任意のエントリは、タイトルと称され、インデックステーブルにエントリされるファーストプレイバック(First Playback)、トップメニュー(Top Menu)およびタイトル(Title)＃１、＃２、・・・は、全てタイトルである。各タイトルは、ムービーオブジェクトあるいはＢＤ−Ｊオブジェクトに対するリンクを示し、各タイトルは、ＨＤＭＶタイトルあるいはＢＤ−Ｊタイトルの何れかを示す。
【００２９】
例えば、ファーストプレイバックは、当該ＢＤ−ＲＯＭに格納されるコンテンツが映画であれば、映画本編に先立って映出される映画会社の宣伝用映像（トレーラ）である。トップメニューは、例えばコンテンツが映画である場合、本編再生、チャプタサーチ、字幕や言語設定、特典映像再生などを選択するためのメニュー画面である。また、タイトルは、トップメニューから選択される各映像である。タイトルがさらにメニュー画面であるような構成も可能である。
【００３０】
図３は、上述のようなクリップＡＶストリーム、クリップ情報(Stream Attributes)、クリップ、プレイアイテムおよびプレイリストの関係を示すＵＭＬ(Unified Modeling Language)図である。プレイリストは、１または複数のプレイアイテムに対応付けられ、プレイアイテムは、１のクリップに対応付けられる。１のクリップに対して、それぞれ開始点および／または終了点が異なる複数のプレイアイテムを対応付けることができる。１のクリップから１のクリップＡＶストリームファイルが参照される。同様に、１のクリップから１のクリップ情報ファイルが参照される。また、クリップＡＶストリームファイルとクリップ情報ファイルとは、１対１の対応関係を有する。このような構造を定義することにより、クリップＡＶストリームファイルを変更することなく、任意の部分だけを再生する、非破壊の再生順序指定を行うことが可能となる。
【００３１】
また、図４のように、複数のプレイリストから同一のクリップを参照することもできる。また、１のプレイリストから複数のクリップを指定することもできる。クリップは、プレイリスト中のプレイアイテムに示されるＩＮ点およびＯＵＴ点により、参照される。図４の例では、クリップ３００は、プレイリスト３１０のプレイアイテム３２０から参照されると共に、プレイリスト３１１を構成するプレイアイテム３２１および３２２のうちプレイアイテム３２１から、ＩＮ点およびＯＵＴ点で示される区間が参照される。また、クリップ３０１は、プレイリスト３１１のプレイアイテム３２２からＩＮ点およびＯＵＴ点で示される区間が参照されると共に、プレイリスト３１２のプレイアイテム３２３および３２４のうち、プレイアイテム３２３のＩＮ点およびＯＵＴ点で示される区間が参照される。
【００３２】
なお、プレイリストは、図５に一例が示されるように、主として再生されるプレイアイテムに対応するメインパスに対して、サブプレイアイテムに対応するサブパスを持つことができる。サブプレイアイテムは、異なる複数のクリップと関連付けることができ、サブプレイアイテムは、サブプレイアイテムに関連付けられる複数のクリップのうち１を選択的に参照することができる。詳細は省略するが、プレイリストは、所定の条件を満たす場合にだけ、サブプレイアイテムを持つことができる。
【００３３】
次に、"Blu-ray Disc Read-Only Format part3"で規定された、ＢＤ−ＲＯＭに記録されるファイルの管理構造について、図６を用いて説明する。ファイルは、ディレクトリ構造により階層的に管理される。記録媒体上には、先ず、１つのディレクトリ（図６の例ではルート(root)ディレクトリ）が作成される。このディレクトリの下が、１つの記録再生システムで管理される範囲とする。
【００３４】
ルートディレクトリの下に、ディレクトリ"BDMV"およびディレクトリ"CERTIFICATE"が置かれる。ディレクトリ"CERTIFICATE"は、著作権に関する情報が格納される。ディレクトリ"BDMV"に、図１を用いて説明したデータ構造が格納される。
【００３５】
ディレクトリ"BDMV"の直下には、ファイルは、ファイル"index.bdmv"およびファイル"MovieObject.bdmv"の２つのみを置くことができる。また、ディレクトリ"BDMV"の下に、ディレクトリ"PLAYLIST"、ディレクトリ"CLIPINF"、ディレクトリ"STREAM"、ディレクトリ"AUXDATA"、ディレクトリ"META"、ディレクトリ"BDJO"、ディレクトリ"JAR"、およびディレクトリ"BACKUP"が置かれる。
【００３６】
ファイル"index.bdmv"は、ディレクトリBDMVの内容について記述される。すなわち、このファイル"index.bdmv"が上述した最上層のレイヤであるインデックスレイヤにおけるインデックステーブルに対応する。また、ファイルMovieObject.bdmvは、１つ以上のムービーオブジェクトの情報が格納される。すなわち、このファイル"MovieObject.bdmv"が上述したオブジェクトレイヤに対応する。
【００３７】
ディレクトリ"PLAYLIST"は、プレイリストのデータベースが置かれるディレクトリである。すなわち、ディレクトリ"PLAYLIST"は、ムービープレイリストに関するファイルであるファイル"xxxxx.mpls"を含む。ファイル"xxxxx.mpls"は、ムービープレイリストのそれぞれに対して作成されるファイルである。ファイル名において、"."（ピリオド）の前の"xxxxx"は、５桁の数字とされ、ピリオドの後ろの"mpls"は、このタイプのファイルに固定的とされた拡張子である。
【００３８】
ディレクトリ"CLIPINF"は、クリップのデータベースが置かれるディレクトリである。すなわち、ディレクトリCLIPINF"は、クリップＡＶストリームファイルのそれぞれに対するクリップインフォメーションファイルであるファイル"zzzzz.clpi"を含む。ファイル名において、"."（ピリオド）の前の"zzzzz"は、５桁の数字とされ、ピリオドの後ろの"clpi"は、このタイプのファイルに固定的とされた拡張子である。
【００３９】
ディレクトリ"STREAM"は、実体としてのＡＶストリームファイルが置かれるディレクトリである。すなわち、ディレクトリ"STREAM"は、クリップインフォメーションファイルのそれぞれに対応するクリップＡＶストリームファイルを含む。クリップＡＶストリームファイルは、ＭＰＥＧ２(Moving Pictures Experts Group 2)のトランスポートストリーム（以下、ＭＰＥＧ２  ＴＳと略称する）からなり、ファイル名が"zzzzz.m2ts"とされる。ファイル名において、ピリオドの前の"zzzzz"は、対応するクリップインフォメーションファイルと同一することで、クリップインフォメーションファイルとこのクリップＡＶストリームファイルとの対応関係を容易に把握することができる。
【００４０】
ディレクトリ"AUXDATA"は、メニュー表示などに用いられる、サウンドファイル、フォントファイル、フォントインデックスファイルおよびビットマップファイルなどが置かれる。ファイル"sound.bdmv"は、ＨＤＭＶのインタラクティブなグラフィクスストリームのアプリケーションに関連したサウンドデータが格納される。ファイル名は、"sound.bdmv"に固定的とされる。ファイル"aaaaa.otf"は、字幕表示や上述したＢＤ−Ｊアプリケーションなどで用いられるフォントデータが格納される。ファイル名において、ピリオドの前の"aaaaa"は、５桁の数字とされ、ピリオドの後ろの"otf"は、このタイプのファイルに固定的とされた拡張子である。ファイル"bdmv.fontindex"は、フォントのインデックスファイルである。
【００４１】
ディレクトリ"META"は、メタデータファイルが格納される。ディレクトリ"BDJO"およびディレクトリ"JAR"は、上述のＢＤ−Ｊオブジェクトに関連するファイルが格納される。また、ディレクトリ"BACKUP"は、上述までの各ディレクトリおよびファイルのバックアップが格納される。これらディレクトリ"META"、ディレクトリ"BDJO"、ディレクトリ"JAR"およびディレクトリ"BACKUP"は、この発明の主旨と直接的な関わりがないので、詳細な説明を省略する。
【００４２】
次に、上述した各ファイルのうち、この発明に関連性の深いファイルについて、より詳細に説明する。図７は、ムービーオブジェクトから呼び出されるムービープレイリストファイル"xxxxx.mpls"の一例の構造を表すシンタクスを示す。フィールドtype_indicatorは、３２ビット（４バイト）のデータ長を有し、このファイルがムービープレイリストファイルであることを示す。フィールドversion_numberは、３２ビット（４バイト）のデータ長を有し、このムービープレイリストファイルのバージョンを示す。フィールドPlayList_start_addressは、３２ビットのデータ長を有し、このシンタクス中のブロックPlayList()の開始アドレスを示す。フィールドPlayListMark_start_addressは、３２ビットのデータ長を有し、このシンタクス中のブロックPlayListMark()の開始アドレスを示す。
【００４３】
フィールドExtensionData_start_addressは、３２ビットのデータ長を有し、このシンタクス中のブロックExtensionData()の開始アドレスを示す。フィールドExtensionData_start_addressは、ブロックExtensionData()の開始アドレスを、ファイル"xxxxx.mpls"の最初のバイトからの相対バイト数を表した値である。相対バイト数は、"０"から開始される。若し、このフィールドExtensionData_start_addressの値が"０"であれば、このファイル"xxxxx.mpls"内に、ブロックExtensionData()が存在しないことを示す。
【００４４】
ブロックAppInfoPlayList()は、次のブロックPlayList()に記述されるプレイリストのタイプ、再生制限などの情報が記述される。ブロックPlayList()は、プレイリストが記述される。ブロックPlayListMark()は、チャプタジャンプなどでジャンプされるポイントが記述される。ブロックExtensionData()は、この発明の実施の一形態に係るデータが記述される。
【００４５】
図８は、ブロックPlayList()の一例の構造を表すシンタクスを示す。フィールドlengthは、３２ビットのデータ長を有し、このフィールドlengthの直後からブロックPlayList()の最後までのデータ長を示す。フィールドlengthに続くデータ長が１６ビットの領域は、将来の使用のために予約されている領域である。フィールドnumber_of_PlayItemsは、１６ビットのデータ長を有し、このブロックPlayList()に含まれるプレイアイテムの数を示す。フィールドnumber_of_SubPathは、このブロックPlayList()に含まれるサブパスの数を示す。
【００４６】
次のfor文に従い、フィールドnumber_of_PlayItemsで示される数だけ、プレイアイテムが記述されるブロックPlayItem()が記述される。for文に基づくカウント数がブロックPlayItem()の識別子PlayItem_idとなる。さらに次のfor文に従い、フィールドnumber_of_SubPathで示される数だけ、ブロックSubPath()が記述される。for文に基づくカウント数がブロックSubPath()の識別子SubPath_idとなる。
【００４７】
なお、サブパスは、上述のアフレコ用のオーディオデータの例以外にも、例えば２枚の映像を合成する際に、プレイアイテムで指定されるクリップと同期して再生する副映像を指定するといった目的で用いられる。
【００４８】
図９は、ブロックPlayItem()の一例の構造を表すシンタクスを示す。フィールドlengthは、１６ビットのデータ長を有し、このフィールドlengthの直後からブロックPlayItem()の最後までのデータ長を示す。
【００４９】
フィールドClip_Information_file_name[0]は、４０ビット（５バイト）のデータ長を有し、このブロックPlayItem()が参照するクリップインフォメーションファイルのファイル名が示される。このプレイアイテムにおいて、フィールドClip_Information_file_name[0]で示されるファイル名のクリップインフォメーションファイルが読み出される。フィールドClip_codec_identifier[0]は、３２ビット（４バイト）のデータ長を有し、このブロックPlayItem()によるプレイアイテムにおいて用いられるクリップＡＶストリームのコーデック方式を示す。
【００５０】
続く１１ビットの領域は、将来の使用のために予約されている領域である。１ビットのデータ長を有するフラグis_multi_angleは、マルチアングルに対応しているか否かを示す。フィールドconnection_conditionは、４ビットのデータ長を有し、接続状態に関する情報を示す。フィールドref_to_STC_id[0]は、８ビットのデータ長を有し、システムタイムベース（ＳＴＣ）の不連続点に関する情報を示す。
【００５１】
フィールドIN_timeおよびフィールドOUT_timeは、それぞれ３２ビットのデータ長を有し、メインクリップＡＶストリームの再生範囲を示す。フィールドIN_timeが開始点を示し、フィールドOUT_timeが終了点を示す。
【００５２】
フィールドUO_mask_table()は、ユーザ入力の受付制限が設定されるテーブルである。１ビットのデータ長を有するフラグPlayItem_random_access_flagは、このブロックPlayItem()によるプレイアイテムに対してランダムアクセスを許可するか否かを規定する。続く７ビットのデータ長を有する領域は、将来の使用のために予約された領域である。
【００５３】
フィールドstill_modeは、８ビットのデータ長を有し、ブロックPlayItem()によるプレイアイテムにおいて、最後に表示した映像を静止画として表示させるか否かを示す。フィールドstill_modeの値が"０ｘ０１"（バイナリ）であれば、if文に基づき、１６ビットのデータ長を有するフィールドstill_timeにより静止時間が示される。フィールドstill_modeの値が"０ｘ０１"以外であれば、当該１６ビットのデータ長を有する領域が将来の使用のために予約された領域とされる。
【００５４】
上述したフラグis_multi_angleの値がマルチアングルに対応していることを示す値（"１"）であれば、if文において示されるマルチアングルを管理するための構造が記述される。このマルチアングルに関しては、この発明と直接的な関わりがないので、説明を省略する。
【００５５】
図１０および図１１は、ブロックSTN_table()の一例の構造を表すシンタクスを示す。このブロックSTN_table()は、メインパスを構成するプレイアイテムが参照するクリップに含まれるビデオストリーム（以下、プライマリビデオストリーム：Primary Video Streamと呼ぶ)と組み合わせて同時に再生される可能性のある、他のストリームの組み合わせを定義する。
【００５６】
ここで、プライマリビデオストリームと組み合わされる他のストリームは、例えば、メインパスを構成するプレイアイテムが参照するクリップに含まれるオーディオストリーム（以下、プライマリオーディオストリーム：Primary Audio Streamと呼ぶ)、メインパスに対応するサブパスを構成するクリップに含まれるビデオストリームおよびオーディオストリーム（以下、それぞれセカンダリビデオストリーム：Secondary Video Stream、セカンダリオーディオストリーム：Secondary Video Streamと呼ぶ）、ならびに、サブタイトルストリームの組み合わせを定義する。
【００５７】
より詳細には、ブロックSTN_table()は、特に、セカンダリオーディオストリームとプライマリオーディオストリームとの組み合わせ、セカンダリビデオストリームとセカンダリオーディオストリームとの組み合わせ、セカンダリビデオストリームとピクチャインピクチャ（ＰｉＰ）アプリケーション用のプレゼンテーショングラフィックス（ＰＧ）またはテキスト字幕との組み合わせを定義する。
【００５８】
フィールドlengthは、１６ビットのデータ長を有する符号なし整数であって、このフィールドlengthフィールドの直後からブロックSTN_table()の終わりまでのデータ長をバイトで示す。フィールドlengthの次に、１６ビットのデータ長を有する予約領域reserved_for_future_useを介して、８ビットのデータ長を有するフィールドnumber_of_primary_video_stream_entriesが配される。フィールドnumber_of_primary_video_stream_entriesは、このブロックSTN_table()においてエントリされる、値primary_video_stream_idが与えられるストリーム数を示す。値primary_video_stream_idは、ビデオストリームを識別するための情報であり、値primary_video_stream_numberは、ビデオ切り替えに使われる、ユーザから見えるビデオストリーム番号である。
【００５９】
フィールドnumber_of_primary_audio_stream_entriesは、８ビットのデータ長を有し、このブロックSTN_table()においてエントリされる、値primary_audio_stream_idが与えられるストリーム数を示す。値primary_audio_stream_idは、オーディオストリームを識別するための情報であり、値primary_audio_stream_numberは、音声切り替えに使われる、ユーザから見えるオーディオストリーム番号である。
【００６０】
フィールドnumber_of_PG_txtST_stream_entriesは、８ビットのデータ長を有し、このブロックSTN_table()の中でエントリされる、値PG_txtST_stream_idが与えられるストリーム数を示す。この中では、ＤＶＤのサブピクチャのような、ビットマップ字幕をランレングス符号化した、プレゼンテーショングラフィクスストリーム（ＰＧ）と、とテキスト字幕ファイル(txtST)とがエントリされる。値PG_txtST_stream_idは、字幕ストリームを識別するための情報であり、値PG_txtST_stream_numberは、字幕切り替えに使われる、ユーザから見える字幕ストリーム番号である。
【００６１】
フィールドnumber_of_IG_stream_entriesは、８ビットのデータ長を有し、このブロックSTN_table()の中でエントリされる、値IG_stream_idが与えられるストリーム数を示す。この中では、インタラクティブグラフィックスストリーム（ＩＧ）がエントリされる。値IG_stream_idは、インタラクティブグラフィックスストリームを識別するための情報であり、値IG_stream_numberは、グラフィックス切り替えに使われる、ユーザから見えるグラフィックスストリーム番号である。
【００６２】
なお、インタラクティブグラフィックスストリームにより再生されるインタラクティブグラフィックメニューは、例えば、ユーザの操作入力を受けることが可能なボタンやアイコン、または、サムネイルなどのアイテムを含ませることができる。インタラクティブグラフィックメニューには、ユーザのリモートコントロールコマンダなどによるＯＮ／ＯＦＦの操作入力に応じてインタラクティブグラフィックを表示させたり、表示を取り消したりすることが可能なポップアップメニュー(Pop-up menu)と、インタラクティブグラフィックが常時表示されるオールウェイズオン(Always-on)の２種類の表示方法が用意されている。
【００６３】
フィールドnumber_of_secondary_audio_stream_entriesは、８ビットのデータ長を有し、このブロックSTN_table()の中でエントリされる、値secondary_audio_stream_idが与えられるストリーム数を示す。値secondary_audio_stream_idは、オーディオストリームを識別するための情報であり、値secondary_audio_stream_numberは、オーディオ切り替えに使われる、ユーザから見えるオーディオストリーム番号である。
【００６４】
フィールドnumber_of_secondary_video_stream_entriesは、８ビットのデータ長を有し、このブロックSTN_table()の中でエントリされる、値secondary_video_stream_idが与えられるストリーム数を示す。値secondary_video_stream_idは、ビデオストリームを識別するための情報であり、値secondary_video_stream_numberは、ビデオ切り替えに使われる、ユーザから見えるビデオストリーム番号である。
【００６５】
フィールドnumber_of_PiP_PG_textST_stream_entries_plusは、８ビットのデータ長を有し、このブロックSTN_table()の中でエントリされる、ピクチャインピクチャ用の字幕ストリーム（PiP_PG_textST_stream）のストリーム数を示す。
【００６６】
４０ビットのデータ長を有する予約領域reserved_for_feature_useを介して、６個のforループ文が配される。第１のforループ文は、値が"０"から始まる値primary_video_stream_idをループ変数とし、上述のフィールドnumber_of_primary_video_stream_entriesに示される回数だけ、ブロックstream_entries()およびブロックstream_attribute()が繰り返される。この第１のforループ文により、ブロックstream_entry()毎に特定される１のビデオストリームに対して、値"０"から１ずつインクリメントされる値primary_video_stream_idが、順番に与えられる。なお、ループ変数として、値primary_video_stream_idの代わりに、値primary_video_stream_numberを用いることができる。この場合には、値primary_video_stream_numberは、値"１"から１ずつインクリメントされる。
【００６７】
第２のforループ文は、値primary_audio_stream_idをループ変数とし、上述のフィールドnumber_of_primary_audio_stream_entriesに示される回数だけ、ブロックstream_entries()およびブロックstream_attribute()が繰り返される。この第２のforループ文により、ブロックstream_entry()毎に特定される１のオーディオストリームに対して、値"０"から１ずつインクリメントされる値primary_audio_stream_idが、順番に与えられる。なお、ループ変数として、値primary_audio_stream_idの代わりに、値primary_audio_stream_numberを用いることができる。この場合には、値primary_audio_stream_numberは、値"１"から１ずつインクリメントされる。
【００６８】
第３のforループ文は、値PG_textST_stream_idをループ変数とし、上述のフィールドnumber_of_PG_txtST_stream_entriesとフィールドnumber_of_PiP_PG_textST_stream_entries_plusとの合計の回数だけ、ブロックstream_entries()およびブロックstream_attribute()が繰り返される。この第３のforループ文により、ブロックstream_entry()毎に特定される１のＰＧストリームに対して、値"０"から１ずつインクリメントされる値PG_textST_stream_idが、順番に与えられる。なお、ループ変数として、値PG_textST_stream_idの代わりに、値PG_textST_stream_numberを用いることができる。この場合には、値pPG_textST_stream_numberは、値"１"から１ずつインクリメントされる。
【００６９】
第４のforループ文は、値IG_stream_idをループ変数とし、上述のフィールドnumber_of_IG_stream_entriesに示される回数だけ、ブロックstream_entries()およびブロックstream_attribute()が繰り返される。この第４のforループ文により、ブロックstream_entry()毎に特定される１のＩＧストリームに対して、値"０"から１ずつインクリメントされる値IG_stream_idが、順番に与えられる。なお、ループ変数として、値IG_stream_idの代わりに、値IG_stream_numberを用いることができる。この場合には、値IG_stream_numberは、値"１"から１ずつインクリメントされる。
【００７０】
第５のforループ文は、値secondary_audio_stream_idをループ変数とし、上述のフィールドnumber_of_secondary_audio_stream_entriesに示される回数だけ、ブロックstream_entries()およびブロックstream_attribute()が繰り返される。この第５のforループ文により、ブロックstream_entry()毎に特定される１のオーディオストリームに対して、値"０"から１ずつインクリメントされる値secondary_audio_stream_idが、順番に与えられる。なお、ループ変数として、値secondary_audio_stream_idの代わりに、値secondary_audio_stream_numberを用いることができる。この場合には、値secondary_audio_stream_numberは、値"１"から１ずつインクリメントされる。
【００７１】
第５のループにおいて、値secondary_audio_stream_idをループ変数とし、上述のフィールドnumber_of_secondary_audio_stream_entriesに示される回数だけ、さらにブロックcomb_info_Secondary_audio_Primary_audio()が繰り返される。ブロックcomb_info_Secondary_audio_Primary_audio()は、セカンダリオーディオとプライマリオーディオとの組み合わせを示す。
【００７２】
ブロックcomb_info_Secondary_audio_Primary_audio()において、フィールドnumber_of_primary_audio_ref_entriesは、８ビットのデータ長を有し、このブロックcomb_info_Secondary_audio_Primary_audio()から参照されるプライマリオーディオストリームの数を示す。８ビットのデータ長を有する予約領域reserved_for_word_alignを介してforループ文が配され、フィールドnumber_of_primary_audio_ref_entriesに示される回数だけ、８ビットのデータ長を有するフィールドprimary_audio_stream_id_refが繰り返される。なお、次のif文に示されるように、フィールドnumber_of_primary_audio_ref_entriesに示される値が奇数のときは、８ビットのデータ長を有する予約領域reserved_for_word_alignがさらに配される。
【００７３】
第６のforループ文は、値secondary_video_stream_idをループ変数とし、上述のフィールドnumber_of_secondary_video_stream_entriesに示される回数だけ、ブロックstream_entries()およびブロックstream_attribute()が繰り返される。この第６のforループ文により、ブロックstream_entry()毎に特定される１のビデオストリームに対して、値"０"から１ずつインクリメントされる値secondary_avideo_stream_idが、順番に与えられる。なお、ループ変数として、値secondary_video_stream_idの代わりに、値secondary_video_stream_numberを用いることができる。この場合には、値secondary_video_stream_numberは、値"１"から１ずつインクリメントされる。
【００７４】
第６のループにおいて、値secondary_video_stream_idをループ変数とし、上述のフィールドnumber_of_secondary_video_stream_entriesに示される回数だけ、さらにブロックcomb_info_Secondary_video_Primary_audio()と、ブロックcomb_info_Secondary_video_PiP_PG_textST()とが繰り返される。
【００７５】
ブロックcomb_info_Secondary_video_Secondary_audio()は、セカンダリビデオとセカンダリオーディオとの組み合わせを示す。ブロックcomb_info_Secondary_video_Secondary_audio()において、フィールドnumber_of_secondary_audio_ref_entriesは、８ビットのデータ長を有し、このブロックcomb_info_Secondary_video_Secondary_audio()から参照されるセカンダリオーディオストリームの数を示す。８ビットのデータ長を有する予約領域reserved_for_word_alignを介してforループ文が配され、フィールドnumber_of_secondary_audio_ref_entriesに示される回数だけ、８ビットのデータ長を有するフィールドsecondary_audio_stream_id_refが繰り返される。なお、次のif文に示されるように、フィールドnumber_of_secondary_audio_ref_entriesに示される値が奇数のときは、８ビットのデータ長を有する予約領域reserved_for_word_alignがさらに配される。
【００７６】
ブロックcomb_info_Secondary_video_PiP_PG_textST()は、セカンダリビデオとピクチャインピクチャアプリケーション用のＰＧおよび／またはテキスト字幕の組み合わせを示す。ブロックcomb_info_Secondary_video_PiP_PG_textST()において、フィールドnumber_of_PiP_PG_testST_ref_entriesは、８ビットのデータ長を有し、このブロックブロックcomb_info_Secondary_video_PiP_PG_textST()から参照されるＰＧストリームおよび／またはテキスト字幕ストリームの数を示す。８ビットのデータ長を有する予約領域reserved_for_word_alignを介してforループ文が配され、フィールドnumber_of_PiP_PG_testST_ref_entriesに示される回数だけ、８ビットのデータ長を有するフィールドPiP_PG_testST_stream_id_refが繰り返される。なお、次のif文に示されるように、フィールドnumber_of_PiP_PG_testST_ref_entriesに示される値が奇数のときは、８ビットのデータ長を有する予約領域reserved_for_word_alignがさらに配される。
【００７７】
このようなテーブルSTN_tableを用いることにより、プライマリビデオストリームと同時に再生される可能性を有するセカンダリビデオストリーム、プライマリオーディオストリーム、セカンダリオーディオストリームおよびサブタイトルストリームの組み合わせに加えて、ピクチャインピクチャアプリケーション用のＰＧ・テキスト字幕ストリームの組み合わせとして矛盾するような組み合わせを選択することを防ぐようにすることができる。
【００７８】
なお、第１〜第６のforループ文におけるブロックstream_attribute()は、stream_entry()毎に特定される１つのエレメンタリストリームのストリーム属性情報を与える。このブロックstream_attribute()は、この発明と関わりが薄いので、詳細な説明を省略する。
【００７９】
図１２は、ブロックstream_entry()の一例の構造を表すシンタクスを示す。フィールドlengthは、８ビットのデータ長を有し、このフィールドlengthの直後からこのブロックstream_entryの最後までのデータ長を示す。次のフィールドtypeは、８ビットのデータ長を有し、このブロックstream_entry()ににより特定されるストリームのタイプを示す。この例では、フィールドtypeに対して、値"１"、値"２"および値"３"が定義される。次のif文の記述に従い、フィールドtypeの値に応じて記述される内容が変化される。
【００８０】
フィールドtypeの値が"１"であれば、１６ビットのデータ長を有するフィールドref_to_stream_PID_of_mainClipが記述される。フィールドref_to_stream_PID_of_mainClipは、このブロックstream_entry()が含まれるプレイアイテムにより参照されるメインクリップにおいて多重化される複数のエレメンタリストリームの中から１のエレメンタリストリームを特定するためのパケットＩＤ（ＰＩＤ）を示す。すなわち、フィールドtypeの値が"１"のときは、メインパスに対応するクリップＡＶストリームファイルにおけるＰＩＤを指定するだけで、ストリームが決定される。
【００８１】
フィールドtypeの値が"２"であれば、８ビットのデータ長を有するフィールドref_to_SubPath_id、８ビットのデータ長を有するフィールドref_to_subClip_entry_id、１６ビットのデータ長を有するフィールドref_to_stream_PID_of_subClipがそれぞれ配される。フィールドref_to_SubPath_idは、サブパスを識別するための識別情報が記述される。フィールドref_to_subClip_entry_idは、参照されるクリップを示す。また、フィールドref_to_stream_PID_of_subClipは、フィールドref_to_subClip_entry_idで示されるクリップのＰＩＤを示す。すなわち、フィールドtypeの値が"２"のときは、サブパスが、それぞれ複数のエレメンタリストリームが多重化された複数のクリップを一度に参照する際に、これら複数のクリップの中から１のエレメンタリストリームを特定する。
【００８２】
フィールドtypeの値が"２"で定義されるブロックstream_entry()は、サブプレイアイテムの中で複数のクリップが参照され、さらにこれら複数のクリップに複数のエレメンタリストリームが参照されている場合に、用いられる。
【００８３】
フィールドtypeの値が"３"であれば、８ビットのデータ長を有するフィールドref_to_SubPath_idおよび１６ビットのデータ長を有するフィールドref_to_stream_PID_of_mainClipが記述される。フィールドref_to_SubPath_idは、サブパスを識別するための識別情報が記述される。フィールドref_to_stream_PID_of_mainClipは、フィールドref_to_SubPath_idで示されるサブパスによって参照される、メインクリップに含まれるエレメンタリストリームのＰＩＤを示す。すなわち、フィールドtypeの値が"３"のときは、メインクリップに複数のエレメンタリストリームが多重化され、メインパスとサブパスの何れもメインクリップに多重化されている複数のエレメンタリストリームのうちの何れかを参照している場合に、メインクリップに多重化されるこれら複数のエレメンタリストリームの中からサブパスによって参照される１のエレメンタリストリームを再生時に特定する。
【００８４】
フィールドtypeの値が"３"で定義されるブロックstream_entry()において、フィールドref_to_SubPath_idにより値SubPath_idが示され、この値SubPath_idにより、図８を用いて説明したブロックPlayList()で定義されたサブパス（ブロックSubPath()）が特定される。そして、このサブパスから、対応するサブプレイアイテム（後述する）が呼び出されることにより、エレメンタリストリームの再生時間(IN_timeおよびOUT_time)などを把握することができる。
【００８５】
なお、フィールドtypeの値が"３"をとり、メインクリップに複数のエレメンタリストリームが多重化され、メインパスおよびサブパスの何れも、メインクリップに多重化されている複数のエレメンタリストリームのうち１のエレメンタリストリームを参照するのは、後述するサブパスタイプ(フィールドSubPath_type)が値"７"の場合である。
【００８６】
上述のように、ブロックSTN_table()中のブロックstream_entry()において、フィールドtypeの値"１"および値"２"の定義を用いることで、プレイアイテムと、当該プレイアイテムに関連付けられて再生される１以上のサブパスとが用意されている場合に、当該プレイアイテムが参照するクリップと、１以上のサブパスが参照するクリップとから１のエレメンタリストリームを特定することができる。すなわち、フィールドtypeの値が"１"で、メインパスが参照するクリップ（メインクリップ）を示し、フィールドtypeの値が２で、サブパスが参照するクリップ（サブクリップ）を示す。
【００８７】
また、上述のように、ブロックSTN_table()中のブロックstream_entry()においてフィールドtypeの値"１"、値"２"および値"３"の定義を用いることで、プレイアイテムと、当該プレイアイテムに関連付けられて再生される１以上のサブパスとが用意されている場合に、当該プレイアイテムが参照するクリップが、さらにサブパスから参照されている場合であっても、クリップの中から１のエレメンタリストリームを特定することができる。
【００８８】
次に、図８を用いて説明したブロックPlayList()におけるブロックSubPath()について、より詳細に説明する。図１３は、ブロックSubPath()の一例の構造を表すシンタクスを示す。フィールドlengthは、３２ビットのデータ長を有し、このフィールドlength直後からブロックSubPath()の終わりまでのデータ長を示す。８ビットのデータ長を有する予約領域reserved_for_feature_useを介して、８ビットのデータ長を有するフィールドSubPath_typeが配される。フィールドSubPath_typeは、このブロックSubPath()で定義されるサブパスのアプリケーション種類を示す。例えば、フィールドSubPath_typeの値に応じて、当該ブロックSubPath()で定義されるサブパスがオーディオであるか、ビットマップ字幕であるか、テキスト字幕であるかなどが示される。フィールドSubPath_typeの値で定義される各アプリケーション種類の詳細については、後述する。
【００８９】
１５ビットのデータ長を有する予約領域reserved_for_feature_useを介して、１ビットのデータ長でフラグis_repeat_SubPathが記述される。フラグis_repeat_SubPathは、メインパスの再生の間に当該ブロックSubPath()で定義されるサブパスの再生を繰り返し行うか、あるいは、当該サブパスの再生を１回のみ行うかを示す。このフラグis_repeat_SubPathは、例えばメインパスによるクリップＡＶストリームとサブパスが指定するクリップに含まれるストリームとの再生タイミングが異なる場合に用いられる。一例として、メインパスを、複数の静止画を自動的に切り換えながら連続的に再生するスライドショートし、サブパスのオーディオをメインパスのバックグラウンドミュージックとして用いるような場合が考えられる。
【００９０】
フラグis_repeat_SubPathの次に、８ビットのデータ長を有する予約領域reserved_for_feature_useを介して、フィールドnumber_of_SubPlayItemsが配される。フィールドnumber_of_SubPlayItemsは、当該ブロックSubPath()で定義されるサブパスが有するサブプレイアイテムの数を示す。次のforループ文に従い、フィールドnumber_of_SubPlayItemsで示される回数だけ、ブロックSubPlayItem(i)が記述される。
【００９１】
図１４は、ブロックSubPlayItem(i)の一例の構造を表すシンタクスを示す。フィールドlengthは、１６ビットのデータ長を有し、このフィールドlengthの直後からブロックSubPlayItem(i)の終わりまでのデータ長を示す。次のフィールドClip_Information_file_name[0]は、５バイト（４０ビット）のデータ長を有し、クリップを指定するためのクリップインフォメーションファイルのファイル名が記述される。末尾の括弧（[ ]）内の値は、値subclip_entry_idの値を示す。これは、以下の同様の記述について、共通である。フィールドClip_codec_identifier[0]は、４バイト（３２ビット）のデータ長を有し、クリップのコーデック方式が指定される。
【００９２】
３１ビットのデータ長を有する予約領域reserved_for_feature_useを介して、１ビットのデータ長のフラグis_multi_Clip_entriesが配される。このフラグis_multi_Clip_entriesは、このブロックSubPlayItem(i)において、複数のクリップに対する参照がなされているか否かが示される。フラグis_multi_Clip_entriesの値がバイナリ値で"１"（「１ｂ」と記す）のときに、複数のクリップに対する参照がなされていることを示す。
【００９３】
次のフィールドref_to_STC_id[0]は、８ビットのデータ長を有し、システムタイムクロック(ＳＴＣ：System Time Clock)の不連続点に関する情報を示す。フィールドSubPlayIten_IN_timeおよびフィールドSubPlayItem_OUT_timeは、それぞれ３２ビットのデータ長を有し、サブプレイアイテムの再生開始時刻および再生終了時刻を示す。すなわち、これらフィールドSubPlayIten_IN_timeおよびフィールドSubPlayItem_OUT_timeにより、クリップ中のサブパスに対する再生区間が指定される。
【００９４】
次のフィールドsync_PlayItem_idは、１６ビットのデータ長を有し、このブロックSubPlayItem(i)で定義されるサブプレイアイテムによるサブパスが同期するプレイアイテムが示され、３２ビットのデータ長を有するフィールドsync_start_PTS_of_PlayItemは、当該サブパスの再生開始時刻をメインパスの時間軸上で指定する。これらフィールドsync_PlayItem_idおよびフィールドsync_start_PTS_of_PlayItemは、メインパスに含まれるクリップＡＶストリームと、サブパスにより示されるストリームとで再生時刻が異なる場合には、使用されない。
【００９５】
上述したフラグis_multi_Clip_entriesが値"１"であれば、さらに以下の記述が追加される。８ビットのデータ長を有する予約領域reserved_for_feature_useを介してフィールドnum_of_Clip_entriesが配される。このフィールドnum_of_Clip_entriesは、８ビットのデータ長を有し、このブロックSunPlayItem(i)にエントリされるクリップの数が示される。
【００９６】
次のforループ文に従い、値subClip_entry_idの値をループ変数として、フィールドnum_of_Clip_entriesで示される回数だけ、このブロックSunPlayItem(i)にエントリされるクリップの情報が記述される。フィールドフィールドClip_Information_file_name[subClip_entry_id]は、５バイト（４０ビット）のデータ長を有し、クリップを指定するためのクリップインフォメーションファイルのファイル名が記述される。フィールドClip_codec_identifier[subClip_entry_id]は、４バイト（３２ビット）のデータ長を有し、クリップのコーデック方式が指定される。フィールドref_to_STC_id[subClip_entry_id]は、８ビットのデータ長を有し、システムタイムクロック(ＳＴＣ：System Time Clock)の不連続点に関する情報を示す。
【００９７】
なお、このforループ文は、値subClip_entry_idの値が"１"から開始される。一方、このforループ文内の記述に対応する、上述のif文以前の記述（フィールドClip_Information_file_name[0]、フィールドClip_codec_identifier[0]およびフィールドref_to_STC_id[0]）は、値subClip_entry_idの値が"０"として記述されている。また、上述したフィールドSubPlayIten_IN_timeおよびフィールドSubPlayItem_OUT_time、ならびに、フィールドsync_PlayItem_idおよびフィールドsync_start_PTS_of_PlayItemは、forループ文の記述により参照される複数のクリップに対して、共通して用いられる。
【００９８】
図１５は、上述したブロックSubPath()におけるフィールドSubPath_typeの値（以下、値SubPath_typeと称する）によって定義される一例のサブパスタイプを示す。この図１５の例では、フィールドSubPath_typeの値"２"〜値"７"に対してサブパスタイプが定義され、値"０"および値"１"、ならびに、値"８"〜値"２５５"は、予約とされている。
【００９９】
なお、図１５の表記において、「Out-of-mux」という記述は、そのサブパスのタイプが、サブパスで参照されるエレメンタリストリームが含まれるトランスポートストリームと、メインパスで参照されるエレメンタリストリームが含まれるトランスポートストリームとが異なっている場合のサブパスのタイプであることを示している。換言すれば、「Out-of-mux」という記述は、サブパスで参照されるエレメンタリストリームが、メインパスで参照されるプレイアイテムが含まれるトランスポートストリームに多重化されていないサブパスのタイプであることを示している。以下、「Out-of-mux」という記述で示されるサブパスのタイプを、メインパスＴＳ非多重型のパスと称する。
【０１００】
一方、図１５の表記において、「In-mux」という記述は、そのサブパスのタイプが、サブパスで参照されるエレメンタリストリームが含まれるトランスポートストリームと、メインパスで参照される１以上のエレメンタリストリームが含まれるトランスポートストリームとが同一の場合のサブパスのタイプであることを示している。換言すれば、「In-mux」という記述は、サブパスで参照されるエレメンタリストリームが、メインパスで参照されるエレメンタリストリームを含むトランスポートストリームに多重化されているサブパスのタイプであることを示している。さらに換言すれば、「In-mux」という記述は、メインクリップに含まれるトランスポートストリームに、メインのクリップＡＶストリームと、サブのクリップＡＶストリームとが含まれている状態である。以下、「In-mux」という記述で示されるサブパスのタイプを、メインパスＴＳ多重型のパスと称する。
【０１０１】
また、メインパスで参照されるエレメンタリストリームとサブパスで参照されるエレメンタリストリームとが非同期である場合、そのサブパスのタイプを、以下、非同期型のパスと称する。一方、メインパスで参照されるエレメンタリストリームとサブパスで参照されるエレメンタリストリームとが同期する場合、そのサブパスのタイプを、以下、同期型のパスと称する。
【０１０２】
値SubPath_type＝"２"は、そのサブパスがプラウザブルスライドショーのオーディオプレゼンテーションパスであることを示す。例えば、値SubPath_type＝"２"は、メインパスＴＳ非多重型のパスであり、非同期型パス、すなわち、プレイリストの中において、サブパスで参照されるオーディオプレゼンテーションパスとプレイアイテムで参照されるメインパスとが非同期であることを示している。
【０１０３】
値SubPath_type＝"３"は、この発明に関わるサブパスタイプであって、そのサブパスがインタラクティブグラフィックスのプレゼンテーションメニューを表示させるためのサブパスであることを示す。例えば、値SubPath_type＝"３"は、メインパスＴＳ非多重型のパスであり、非同期型パス、すなわちプレイリストの中において、サブパスで参照されるインタラクティブグラフィックスのメニューとプレイアイテムで参照されるメインパスとが非同期であることを示している。
【０１０４】
値SubPath_type＝"４"は、テキスト字幕のプレゼンテーションパスであることを示す。例えば、値SubPath_type＝４は、メインパスＴＳ非多重型のパスであり、同期型パス、すなわちプレイリストの中において、サブパスで参照されるテキスト字幕のプレゼンテーションパスとプレイアイテムで参照されるメインパスとが同期していることを示している。
【０１０５】
値SubPath_type＝"５"は、メインパスＴＳ非多重型、且つ、同期型のパスであって、１本以上のエレメンタリストリーム（プライマリオーディオストリーム、ＰＧストリーム、ＩＧストリームまたはセカンダリオーディオストリーム）のパスや、ピクチャインピクチャプレゼンテーションパスであることを示す。
【０１０６】
ここで、ピクチャインピクチャプレゼンテーションパスとは、ピクチャインピクチャ手法において、メインパスで参照されるビデオストリームである所定のプライマリビデオストリームに対応して再生される、プライマリオーディオストリームストリーム、セカンダリビデオストリーム、セカンダリオーディオストリームおよびサブタイトルストリームのうちの１以上のパスによるサブパスのタイプであることをいう。
【０１０７】
値SubPath_type＝"６"は、メインパスＴＳ非多重型、且つ、非同期型のパスであって、ピクチャインピクチャプレゼンテーションパスであって、１以上のエレメンタリストリームを含むパスであることを示す。また、値SubPath_type＝"７"は、メインパスＴＳ多重型、かつ、同期型のパスであって、ピクチャインピクチャプレゼンテーションパスであって、１以上のエレメンタリストリームを含むパスであることを示す。
【０１０８】
次に、インタラクティブグラフィクスストリーム（ＩＧストリーム）について説明する。ここでは、ＩＧストリームのうち、この発明に関わりの深い部分に注目して説明する。ＩＧストリームは、上述したように、メニュー表示に用いられるデータストリームにしたものである。例えば、メニュー表示に用いられるボタン画像がＩＧストリームに格納される。また、ＩＧストリームには、メインパスＴＳ非多重型およびメインパスＴＳ多重型が定義され、メインパスＴＳ非多重型は、プライマリビデオが格納されるメインパスとは非同期のサブパスである、非同期型パスとして定義される。
【０１０９】
ＩＧストリームは、クリップＡＶストリームに多重化される。インタラクティブグラフィクスストリーム（図１６Ａ参照）は、図１６Ｂに一例が示されるように、ＩＣＳ(Interactive Composition Segment)、ＰＤＳ(Palette Definition Segment)およびＯＤＳ(Object Definition Segment)の３種類のセグメントからなる。
【０１１０】
３種類のセグメントのうち、ＩＣＳは、詳細は後述するが、ＩＧの基本構造を保持するためのセグメントである。ＰＤＳは、ボタン画像の色情報を保持するためのセグメントである。また、ＯＤＳは、ボタンの形状を保持するための情報である。より具体的には、ＯＤＳは、ボタン画像そのもの、例えばボタン画像を表示するためのビットマップデータが、ランレングス圧縮など所定の圧縮符号化方式で圧縮符号化されて格納される。
【０１１１】
ＩＣＳ、ＰＤＳおよびＯＤＳは、図１６Ｃに一例が示されるように、それぞれ必要に応じて所定に分割され、ＰＩＤ(Packet Identification)により区別されてＰＥＳ(Packetized Elementary Stream)パケットのペイロードに格納される。ＰＥＳパケットは、サイズが６４ＫＢ（キロバイト）と決められているため、比較的サイズが大きなＩＣＳおよびＯＤＳは、それぞれ所定に分割されてＰＥＳパケットのペイロードに詰め込まれる。一方、ＰＤＳは、サイズが６４ＫＢに満たないことが多いので、１つのＰＥＳパケットに１ＩＧ分のＰＤＳが格納可能である。ＰＥＳパケットのそれぞれには、ペイロードに格納されたデータがＩＣＳ、ＰＤＳおよびＯＤＳのうち何れであるかの情報や、パケット毎の順番などを示す識別情報がＰＩＤに格納される。
【０１１２】
ＰＥＳパケットのそれぞれは、さらに所定に分割され、ＭＰＥＧ  ＴＳ（トランスポートストリーム）によるトランスポートパケットに詰め込まれる（図１６Ｄ）。トランスポートパケット毎の順序や、トランスポートパケットに格納されたデータを識別する識別情報などがＰＩＤに格納される。
【０１１３】
図１７は、ＩＣＳのヘッダ情報の一例の構造を表すシンタクスを示す。ＩＣＳのヘッダは、ブロックsegment_descriptor()、ブロックvideo_descriptor()、ブロックcomposition_descriptor()、ブロックsequence_descriptor()およびブロックinteractive_composition_data_fragemnt()からなる。ブロックsegment_descriptor()は、このセグメントがＩＣＳであることを示す。ブロックvideo_descriptor()は、このメニューと同時に表示されるビデオのフレームレートや画枠サイズを示す。ブロックcomposition_descriptor()は、このＩＣＳのステータスを示す。ブロックsequence_descriptor()は、このＩＣＳが複数のＰＥＳパケットに跨るか否かを示す。
【０１１４】
より具体的には、このブロックsequence_descriptor()は、現在のＰＥＳパケットに含まれるＩＣＳが１つのＩＧストリームの先頭または最後尾の何れのＩＣＳであるか否かを示す。
【０１１５】
すなわち、上述したように、データサイズが６４ＫＢと固定的とされたＰＥＳパケットに対して、ＩＣＳのデータサイズが大きい場合には、ＩＣＳが所定に分割されてＰＥＳパケットにそれぞれ詰め込まれる。このとき、この図７に示されるヘッダ部分は、ＩＣＳが分割して詰め込まれたＰＥＳパケットのうち先頭および最後尾のＰＥＳパケットにだけあればよく、途中のＰＥＳパケットにおいては省略することができる。このブロックsequence_descriptor()が先頭および最後尾を示していれば、ＩＣＳが１つのＰＥＳパケットに収まっていることが分かる。
【０１１６】
図１８は、ブロックinteractive_composition_data_fragemnt()の一例の構造を表すシンタクスを示す。なお、図１８では、自身のブロックがブロックinteractive_composition()として示されている。フィールドintaractive_composition_lengthは、２４ビットのデータ長を有し、ブロックinteractive_composition()のこのフィールドintaractive_composition_length以降の長さを示す。フィールドstream_modelは、１ビットのデータ長を有し、このストリームが多重化されているか否かを示す。
【０１１７】
フィールドstream_modelの値が"０"であれば、多重化されていることを示し、ＭＰＥＧ２トランスポートストリーム内に、インタラクティブグラフィクスストリームと共に関連する他のエレメンタリストリームが多重化されている可能性があることを示す。フィールドstream_modelの値が"１"で非多重化を示し、ＭＰＥＧ２トランスポートストリーム内にはインタラクティブグラフィクスストリームのみが存在することを示す。すなわち、インタラクティブグラフィクスストリームは、ＡＶストリームに対して多重化することもできるし、単独でクリップＡＶストリームを構成することもできる。なお、非多重化であるインタラクティブグラフィクスストリームは、非同期のサブパス（上述した値SubPath_type＝"３"）としてのみ、定義される。
【０１１８】
フィールドuser_interface_modelは、１ビットのデータ長を有し、このストリームが表示するメニューがポップアップメニューか、常時表示メニューの何れであるかを示す。ポップアップメニューは、例えばリモートコントロールコマンダのボタンのＯＮ／ＯＦＦといった、所定の入力手段で表示の有無を制御できるメニューである。一方、常時表示メニューは、ユーザ操作により表示の有無を制御できない。フィールドuser_interface_modelの値が"０"で、ポップアップメニューを示し、"１"で常時表示メニューを示す。なお、フィールドstream_modelの値が"１"であり、且つ、他のエレメンタリストリームと多重化されていない場合に限り、ポップアップメニューが許可される。
【０１１９】
フィールドstream_modelの値が"０"であれば、If文If(stream_model=='0b'以下のフィールドcomposition_time_out_ptsおよびフィールドselection_time_out_ptsが有効になる。フィールドcomposition_time_out_ptsは、３３ビットのデータ長を有し、このメニュー表示が消える時刻を示す。また、フィールドselection_time_out_ptsは、３３ビットのデータ長を有し、このメニュー表示における選択操作が可能でなくなる時刻を示す。時刻は、それぞれＭＰＥＧ２に規定されるＰＴＳ(Presentation Time Stamp)で記述される。
【０１２０】
フィールドuser_time_out_durationは、２４ビットのデータ長を有し、このメニュー表示の自動初期化時間を示す。次のフィールドnumber_of_pageは、８ビットのデータ長を有し、このメニューが有するページ数を、初期値を"０"として示す。すなわち、このメニュー表示が階層構造を有し、複数のページを有するときは、フィールドnumber_of_pageの値は、"１"以上を示す。このフィールドnumber_of_pageで示された回数だけ、次のfor文からのループが繰り返され、メニュー表示における各ページがそれぞれ定義される。
【０１２１】
上述したようなデータ構造を有するディスクがプレーヤに装填されると、プレーヤは、ディスクから読み出されたムービーオブジェクトなどに記述されたコマンドを、プレーヤ内部のハードウェアを制御するための固有のコマンドに変換する必要がある。プレーヤは、このような変換を行うためのソフトウェアを、プレーヤに内蔵されるＲＯＭ(Read Only Memory)にあらかじめ記憶している。このソフトウェアは、ディスクとプレーヤを仲介してプレーヤにＢＤ−ＲＯＭの規格に従った動作をさせることから、ＢＤ仮想プレーヤと称される。
【０１２２】
図１９は、このＢＤ仮想プレーヤの動作を概略的に示す。図１９Ａは、ディスクのローディング時の動作の例を示す。ディスクがプレーヤに装填されディスクに対するイニシャルアクセスがなされると（ステップＳ３０）、１のディスクにおいて共有的に用いられる共有パラメータが記憶されるレジスタが初期化される（ステップＳ３１）。そして、次のステップＳ３２で、プログラムがディスクから読み込まれて実行される。なお、イニシャルアクセスは、ディスク装填時のように、ディスクの再生が初めて行われることをいう。
【０１２３】
図１９Ｂは、プレーヤが停止状態からユーザにより例えばプレイキーが押下され再生が指示された場合の動作の例を示す。最初の停止状態（ステップＳ４０）に対して、ユーザにより、例えばリモートコントロールコマンダなどを用いて再生が指示される（ＵＯ：User Operation）。再生が指示されると、先ず、レジスタすなわち共通パラメータが初期化され（ステップＳ４１）、次のステップＳ４２で、プレイリストの再生フェイズに移行する。なお、この場合にレジスタがリセットされない実装としてもよい。
【０１２４】
ムービーオブジェクトの実行フェイズにおけるプレイリストの再生について、図２０を用いて説明する。ＵＯなどにより、タイトル番号＃１のコンテンツを再生開始する指示があった場合について考える。プレーヤは、コンテンツの再生開始指示に応じて、上述した図２に示されるインデックステーブル(Index Table)を参照し、タイトル＃１のコンテンツ再生に対応するオブジェクトの番号を取得する。例えばタイトル＃１のコンテンツ再生を実現するオブジェクトの番号が＃１であったとすると、プレーヤは、ムービーオブジェクト＃１の実行を開始する。
【０１２５】
この図２０の例では、ムービーオブジェクト＃１に記述されたプログラムは２行からなり、１行目のコマンドが"Play PlayList(1)"であるとすると、プレーヤは、プレイリスト＃１の再生を開始する。プレイリスト＃１は、１以上のプレイアイテムから構成され、プレイアイテムが順次再生される。プレイリスト＃１中のプレイアイテムの再生が終了すると、ムービーオブジェクト＃１の実行に戻り、２行目のコマンドが実行される。図２０の例では、２行目のコマンドが"jump TopMenu"であって、このコマンドが実行されインデックステーブルに記述されたトップメニュー(Top Menu)を実現するムービーオブジェクトの実行が開始される。
【０１２６】
次に、この発明の実施の形態に適用可能な画像の表示系について説明する。この発明の実施の形態では、画像の表示系について、図２１に一例が示されるようなプレーン構成を取る。動画プレーン１０は、最も後ろ側（ボトム）に表示され、プレイリストで指定された画像（主に動画データ）が扱われる。字幕プレーン１１は、動画プレーン１０の上に表示され、動画再生中に表示される字幕データが扱われる。インタラクティブグラフィクスプレーン１２は、最も前面に表示され、メニュー画面を表示するための文字データや、ボタン画像用のビットマップデータなどのグラフィクスデータが扱われる。１つの表示画面は、これら３つのプレーンが合成されて表示される。
【０１２７】
なお、以下では、グラフィクスプレーン１２をインタラクティブグラフィクスプレーン１２と称する。
【０１２８】
動画プレーン１０、字幕プレーン１１およびインタラクティブグラフィクスプレーン１２は、それぞれ独立して表示が可能とされる。動画プレーン１０は、解像度が１９２０画素×１０８０ラインで１画素当たりに換算したデータ長が１６ビットであって、輝度信号Ｙ、色差信号Ｃｂ、Ｃｒが４：２：２のシステム（以下、ＹＣｂＣｒ（４：２：２））とされる。なお、ＹＣｂＣｒ（４：２：２）は、各画素当たり輝度信号Ｙが８ビット、色差信号Ｃｂ、Ｃｒがそれぞれ８ビットで、色差信号Ｃｂ、Ｃｒが水平２画素で一つの色データを構成すると見なすカラーシステムである。インタラクティブグラフィクスプレーン１２および字幕プレーン１１は、１９２０画素×１０８０ラインで各画素のサンプリング深さが８ビットとされ、カラーシステムは、２５６色のパレットを用いた８ビットカラーマップアドレスとされる。
【０１２９】
インタラクティブグラフィクスプレーン１２および字幕プレーン１１は、２５６段階のアルファブレンディングが可能とされており、他のプレーンとの合成の際に、不透明度を２５６段階で設定することが可能とされている。不透明度の設定は、画素毎に行うことができる。以下では、不透明度αが（０≦α≦１）の範囲で表され、不透明度α＝０で完全に透明、不透明度α＝１で完全に不透明であるものとする。
【０１３０】
字幕プレーン１１では、例えばＰＮＧ(Portable Network Graphics)形式の画像データが扱われる。また、インタラクティブグラフィクスプレーン１２でも、例えばＰＮＧ形式の画像データを扱うことができる。ＰＮＧ形式は、１画素のサンプリング深さが１ビット〜１６ビットとされ、サンプリング深さが８ビットまたは１６ビットの場合に、アルファチャンネル、すなわち、それぞれの画素成分の不透明度情報（アルファデータと称する）を付加することができる。サンプリング深さが８ビットの場合には、２５６段階で不透明度を指定することができる。このアルファチャンネルによる不透明度情報を用いてアルファブレンディングが行われる。また、２５６色までのパレットイメージを用いることができ、予め用意されたパレットの何番目の要素（インデックス）であるかがインデックス番号により表現される。
【０１３１】
なお、字幕プレーン１１およびインタラクティブグラフィクスプレーン１２で扱われる画像データは、ＰＮＧ形式に限定されない。ＪＰＥＧ方式など他の圧縮符号化方式で圧縮符号化された画像データや、ランレングス圧縮された画像データ、圧縮符号化がなされていないビットマップデータなどを扱うようにしてもよい。
【０１３２】
図２２は、上述の図２１のプレーン構成に従い３つのプレーンを合成するグラフィクス処理部の一例の構成を示す。この図２２に示される構成は、ハードウェアおよびソフトウェアの何れでも実現可能なものである。動画プレーン１０の動画データが４２２／４４４変換回路２０に供給される。動画データは、４２２／４４４変換回路２０でカラーシステムがＹＣｂＣｒ（４：２：２）からＹＣｂＣｒ（４：４：４）に変換され、乗算器２１に入力される。
【０１３３】
字幕プレーン１１の画像データがパレット２２Ａに入力され、ＲＧＢ（４：４：４）の画像データとして出力される。この画像データに対してアルファブレンディングによる不透明度が指定されている場合には、指定された不透明度α１（０≦α１≦１）がパレット２２Ａから出力される。パレット２２Ａは、例えばＰＮＧ形式のファイルに対応したパレット情報がテーブルとして格納され、入力された８ビットの画素データをアドレスとして、インデックス番号が参照される。このインデックス番号に基づき、それぞれ８ビットのデータからなるＲＧＢ（４：４：４）のデータが出力される。それと共に、パレット２２Ａでは、不透明度を表すアルファチャンネルのデータαが取り出される。
【０１３４】
図２３は、パレット２２Ａに格納される一例のパレットテーブルを示す。２５６個のカラーインデックス値〔０ｘ００〕〜〔０ｘＦＦ〕（〔０ｘ〕は１６進表記であることを示す）のそれぞれに対して、各々８ビットで表現される三原色の値Ｒ、ＧおよびＢと、不透明度αとが割り当てられる。パレット２２Ａは、入力されたＰＮＧ形式の画像データに基づきパレットテーブルが参照され、画像データにより指定されたインデックス値に対応する、それぞれ８ビットのデータからなるＲ、ＧおよびＢ各色のデータ（ＲＧＢデータ）と、不透明度αとを画素毎に出力する。
【０１３５】
パレット２２Ａから出力されたＲＧＢデータは、ＲＧＢ／ＹＣｂＣｒ変換回路２２Ｂに供給され、各データ長が８ビットの輝度信号Ｙと色信号Ｃｂ、Ｃｒのデータに変換される（以下、まとめてＹＣｂＣｒデータと称する）。これは、以降のプレーン間合成を共通のデータ形式で行う必要があるためで、動画データのデータ形式であるＹＣｂＣｒデータに統一している。
【０１３６】
ＲＧＢ／ＹＣｂＣｒ変換回路２２Ｂから出力されたＹＣｂＣｒデータと不透明度データα１とがそれぞれ乗算器２３に入力される。乗算器２３では、入力されたＹＣｂＣｒデータに不透明度データα１が乗ぜられる。乗算結果は、加算器２４の一方の入力端に入力される。なお、乗算器２３では、ＹＣｂＣｒデータにおける輝度信号Ｙ、色差信号Ｃｂ、Ｃｒのそれぞれについて、不透明度データα１との乗算が行われる。また、不透明度データα１の補数（１−α１）が乗算器２１に供給される。
【０１３７】
乗算器２１では、４２２／４４４変換回路２０から入力された動画データに不透明度データα１の補数（１−α１）が乗ぜられる。乗算結果は、加算器２４の他方の入力端に入力される。加算器２４において、乗算器２１および２３の乗算結果が加算される。これにより、動画プレーン１０と字幕プレーン１１とが合成される。加算器２４の加算結果が乗算器２５に入力される。
【０１３８】
インタラクティブグラフィクスプレーン１２の画像データがパレット２６Ａに入力され、ＲＧＢ（４：４：４）の画像データとして出力される。この画像データに対してアルファブレンディングによる不透明度が指定されている場合には、指定された不透明度α２（０≦α２≦１）がパレット２６Ａから出力される。パレット２６Ａから出力されたＲＧＢデータは、ＲＧＢ／ＹＣｂＣｒ変換回路２６Ｂに供給されてＹＣｂＣｒデータに変換され、動画データのデータ形式であるＹＣｂＣｒデータに統一される。ＲＧＢ／ＹＣｂＣｒ変換回路２６Ｂから出力されたＹＣｂＣｒデータが乗算器２７に入力される。
【０１３９】
インタラクティブグラフィクスプレーン１２’で用いられる画像データがＰＮＧ形式である場合には、画像データ中に、画素毎に不透明度データα２（０≦α２≦１）を設定することができる。不透明度データα２は、乗算器２７に供給される。乗算器２７では、ＲＧＢ／ＹＣｂＣｒ変換回路２６から入力されたＹＣｂＣｒデータに対し、輝度信号Ｙ、色差信号Ｃｂ、Ｃｒのそれぞれについて、不透明度データα２との乗算が行われる。乗算器２７による乗算結果が加算器２８の一方の入力端に入力される。また、不透明度データα２の補数（１−α２）が乗算器２５に供給される。
【０１４０】
乗算器２５では、加算器２４の加算結果に対して不透明度データα２の補数（１−α２）が乗ぜられる。乗算器２５の乗算結果は、加算器２８の他方の入力端に入力され、上述した乗算器２７による乗算結果と加算される。これにより、動画プレーン１０と字幕プレーン１１との合成結果に対して、さらに、グラフィクスプレーン１２が合成される。
【０１４１】
字幕プレーン１１およびグラフィクスプレーン１２において、例えば、表示すべき画像の無い領域の不透明度α＝０と設定することで、そのプレーンの下に表示されるプレーンを透過表示させることができ、例えば動画プレーン１０に表示されている動画データを、字幕プレーン１１やグラフィクスプレーン１２の背景として表示することができる。
【０１４２】
次に、この発明の実施の一形態について説明する。この発明では、非同期型パスのサブパスとして定義されるＩＧストリームを、メインパスのプレイリストに基づき再生されるビデオストリームに対して非同期のものとして扱うようにする。これにより、メインパスのプレイリストに基づき再生されるビデオストリームに対してポーズが指定された状態でも、ＩＧストリームによるメニュー表示に対する操作を可能とする。
【０１４３】
図２４〜図２６を用いて、ＩＧストリームによるメニュー表示と、メインパスのプレイリストに基づき再生されるビデオストリームとを合成して表示する例について、概略的に説明する。
【０１４４】
図２４は、ＩＧストリームにより表示される一例のメニュー表示を示す。この例では、ＩＧストリームにより、メニューの背景２００が表示されると共に、ボタン２０１Ａ、ボタン２０１Ｂおよびボタン２０１Ｃが表示される。これらボタン２０１Ａ、２０１Ｂおよび２０１Ｃは、例えばリモートコントロールコマンダの十字キーの操作により右または左が指示されると、操作に応じて順次、選択状態とされる。さらに、ボタンが選択状態になっているときに、例えば十字キーの操作により下が指示されると、プルダウンメニュー２０２が表示される。プルダウンメニュー２０２が表示されている状態で例えば十字キーの操作により上または下が指示されると、プルダウンメニュー２０２の各ボタン２０３Ａ、２０３Ｂおよび２０３Ｃが操作に応じて順次、選択状態とされる。決定ボタンの操作により、選択されたボタンに割り当てられた機能がプレーヤに実行される。
【０１４５】
このようなメニュー表示と、図２５に一例が示される、メインパスのプレイアイテムにより再生され動画プレーン１０に表示される動画データとを合成する場合について考える。図２４の画面中、プルダウンメニュー２０２部分を含むメニュー表示以外の部分の不透明度αが"０"に設定され、インタラクティブグラフィクスプレーン１２と、動画プレーン１０とが合成される。これにより、図２６に一例が示されるように、図２５に例示される動画データに対して図２４に例示されるメニュー表示が合成された表示が得られる。
【０１４６】
この発明の実施の一形態では、メインパスのプレイアイテムにより再生され動画プレーン１０に表示される動画データは、ＳＴＣに基づき処理を行う。一方、非同期型パスのサブパスによりグラフィクスプレーン１２に表示されるメニュー表示は、メインパスのプレイアイテムにより再生される動画データとは異なる系統のクロック、例えばフリーランのクロックに基づき処理を行うようにする。これにより、例えば図２６のように、メインパスによる動画データと、サブパスによるメニュー表示とが１画面に同時に表示されている場合に、動画データをポーズ状態としても、メニュー表示に対する選択や決定の操作や、操作に応じたメニュー表示のボタン画像の表示などを行うことができる。
【０１４７】
図２７は、この発明の実施の一形態による表示制御を行うための一例の構成を概略的に示す。ＳＴＣ部４００は、ＳＴＣを発生する。ＳＴＣ部４００で発生されたＳＴＣは、第１のスイッチであるスイッチ部４１０の選択入力端４１０Ｂに供給され、スイッチ部４１０の選択に応じてＩＧデコーダ４０２に供給されると共に、第２のスイッチ部であるスイッチ部４１１を介してビデオデコーダ４０３に供給される。フリーランクロック部４０１は、任意の周波数のクロックＣＬＫを発生する。クロックＣＬＫは、スイッチ部４１０の選択入力端４１０Ａに供給され、スイッチ部４１０の選択に応じてＩＧデコーダ４０２に供給される。
【０１４８】
ＩＧデコーダ４０２は、供給されるクロックＣＬＫまたはＳＴＣに基づきＩＧストリームをデコードし、インタラクティブグラフィクスプレーン１２に供給可能な状態とする。同様に、ビデオデコーダ４０３は、供給されるＳＴＣに基づきメインパスのビデオストリームをデコードし、動画プレーン１０に供給可能な状態とする。
【０１４９】
コントローラ４２０は、例えばリモートコントロールコマンダといった操作部（図示しない）に対する操作に応じた処理を行う。例えば、コントローラ４２０は、操作部に対する操作に応じて、スイッチ部４１０、スイッチ部４１１およびスイッチ部４１２を制御する。また、コントローラ４２０は、ＩＧデコーダ４０２を制御するための制御信号を、第３のスイッチ部であるスイッチ部４１２を介してＩＧデコーダ４０２に対して供給する。スイッチ部４１２をＯＮ／ＯＦＦすることで、ＩＧデコーダ４０２による出力のＯＮ／ＯＦＦを制御することができる。
【０１５０】
図２８および図２９のフローチャートを用いて、この発明の実施の一形態による表示制御方法について説明する。図２８において、メインパスによるプレイリストに基づくビデオストリームの再生が開始されると、先ず、ステップＳ１０で、当該プレイリストから参照されているサブパスのタイプが調べられる。すなわち、ステップＳ１０では、当該プレイリストのブロックPlayList()内のブロックSubPath()が参照され、このブロックSubPath()内のフィールドSubPath_typeの値が"３"であるか否かが判断される。図１５を用いて既に説明したように、フィールドSubPath_typeの値が"３"で、当該サブパスがインタラクティブグラフィクスのプレゼンテーションメニューを表示するためのサブパスであることが示される。
【０１５１】
より具体的には、ステップＳ１０において、先ず、図８に示すプレイリストのブロックPlayList()内のブロックPlayItem()が参照され、当該ブロックPlayItem()内のブロックSTN_table()が参照される（図９参照）。さらに、ブロックSTN_table()において、選択するＩＧストリームのブロックstream_entry()が検索され、このブロックstream_entry()により特定されるストリームのタイプを示すフィールドtypeの値が取得される。ここで、このフィールドtypeの値が"１"または"３"であれば、メインパスのクリップが参照されるので、フィールドSubPath_typeの値が"３"とはならないことが分かる。
【０１５２】
なお、ＩＧストリームの選択は、例えばリモートコントロールコマンダによるユーザ操作に応じて、操作入力を制御するためのコントローラなどによりなされる。例えば、操作入力制御コントローラは、ユーザ操作に応じて、選択するＩＧストリームを特定するための値IG_stream_idを生成し、プレイリストのシンタクスを解釈するためのコントローラに渡す。このコントローラは、渡された値IG_stream_idに基づきブロックSTN_table()を参照し、対応するブロックstream_entry()を検索する。また、値IG_stream_idは、デフォルト値として値"０"が設定される。
【０１５３】
フィールドtypeの値が"２"であれば、このブロックstream_entry()内のフィールドref_to_SubPath_idの値が取得され、プレイリストのブロックPlayList()から、取得されたフィールドref_to_SubPath_idの値に対応するブロックSubPath()が参照され、このブロックSubPath()内のフィールドSubPath_typの値が取得される。
【０１５４】
若し、ステップＳ１０で、サブパスタイプを示す値SubPath_typeが"３"であると判断されれば、処理はステップＳ１１に移行される。ステップＳ１１では、第１のスイッチであるスイッチ部４１０において選択入力端４１０Ａが選択され、フリーランのクロックＣＬＫがＩＧデコーダ４０２に供給されると共に、第３のスイッチであるスイッチ部４１２がＯＮ状態とされる。また、第２のスイッチであるスイッチ部４１１がＯＮ状態とされ、ビデオデコーダ４０３に対してＳＴＣが供給される。これにより、ＩＧデコーダ４０２の出力と、ビデオデコーダ４０３の出力とが非同期的に制御される。
【０１５５】
一方、ステップＳ１０で、サブパスタイプを示す値Subpath_typeが"３"以外であると判断されれば、処理はステップＳ１２に移行される。ステップＳ１２では、スイッチ部４１０において選択入力端４１０Ｂが選択されると共にスイッチ部４１１がＯＮ状態とされ、ＳＴＣがＩＧデコーダ４０２およびビデオデコーダ４０３にそれぞれ供給される。また、スイッチ部４１２がＯＮとされる。これにより、ＩＧデコーダ４０２の出力とビデオデコーダ４０３の出力とがＳＴＣに対して同期的に制御される。
【０１５６】
図２９は、メインパスのプレイリストに基づくビデオストリームの再生中に、ユーザ操作によりポーズが指定された場合の一例の処理を示す。例えばリモートコントロールコマンダなどの操作部によるユーザ操作で、再生中のビデオストリームに対してポーズ（一時停止）が指示される。この指示は、コントローラ４２０に渡される。この指示に応じて、コントローラ４２０により、当該プレイリストから参照されているサブパスのタイプが調べられ、サブパスのタイプを示す値SubPath_typeの値が"３"であるか否かが判断される（ステップＳ２０）。このステップＳ２０の処理は、上述した図２８におけるステップＳ１０と同一なので、詳細な説明を省略する。
【０１５７】
若し、サブパスタイプを示す値SubPath_typeが"３"であると判断されれば、処理はステップＳ２１に移行される。ステップＳ２１では、第１のスイッチであるスイッチ部４１０において選択入力端４１０Ａが選択され、フリーランのクロックＣＬＫがＩＧデコーダ４０２に供給されると共に、第３のスイッチであるスイッチ部４１２がＯＮ状態とされる。また、第２のスイッチであるスイッチ部４１１がＯＦＦ状態とされる。
【０１５８】
これにより、メインパスのプレイアイテムに基づくビデオストリームの再生が一時停止状態とされると共に、ＩＧデコーダ４０２においてＩＧストリームのデコードおよび出力が可能な状態とされる。したがって、ポーズ状態において、ユーザ操作に応じたＩＧストリームによる表示制御が可能とされる。
【０１５９】
次のステップＳ２２で、ユーザ操作によりポーズ解除の指示がなされたか否かが判断される。若し、ポーズ解除の指示がなされたと判断されれば、処理はステップＳ２３に移行され、上述したステップＳ１１の状態に戻される。すなわち、スイッチ部４１０において選択入力端４１０Ａが選択され、フリーランのクロックＣＬＫがＩＧデコーダ４０２に供給されると共に、スイッチ部４１２がＯＮ状態とされる。また、スイッチ部４１１がＯＮ状態とされ、ビデオデコーダ４０３に対してＳＴＣが供給される。
【０１６０】
一方、ステップＳ２２で、ポーズ解除の指示がなされていないと判断されれば、処理はステップＳ２４に移行され、インタラクティブＵＯ(User Operation)またはナビゲーションコマンドが受信されたか否かが判断される。インタラクティブＵＯおよびナビゲーションコマンドの何れも受信されていないと判断されれば、処理はステップＳ２２に戻される。
【０１６１】
ステップＳ２４で、インタラクティブＵＯまたはナビゲーションコマンドが受信されたと判断されれば、処理はステップＳ２５に移行され、受信されたインタラクティブＵＯまたはナビゲーションコマンドが実行される。
【０１６２】
インタラクティブＵＯは、ＩＧストリームにより表示されるメニュー表示などに基づき、リモートコントロールコマンダなどの操作部に対するユーザ操作によりなされる指示である。例えば、操作部に対する操作に応じた、メニューに表示される選択ボタンの移動や決定の指示、ポップアップメニューのＯＮ／ＯＦＦの指示などが、インタラクティブＵＯによる指示として、操作部から送信される。
【０１６３】
また、ナビゲーションコマンドは、オブジェクトレイヤにおいてプレイリストの再生制御を行うためのコマンドである。例えば、ストリーム選択、音声や字幕の切り換え、アングル切り換え、ピクチャインピクチャの切り換えなどを制御するためのコマンドが、ナビゲーションコマンドとして用意される。ナビゲーションコマンドは、例えばインタラクティブＵＯに連動して、送信される。
【０１６４】
上述した図２６の例では、メニュー表示を表示させる操作、メニュー表示においてボタン２０１Ａ、２０１Ｂおよび２０１Ｃを選択する操作や、選択されたボタンに対応したプルダウンメニュー２０２を表示させる操作、プルダウンメニュー２０２上のボタン２０３Ａ、２０３Ｂおよび２０３Ｃを選択、決定する操作がインタラクティブＵＯである。また、インタラクティブＵＯにより、ボタン２０３Ｂが決定されると、当該ボタン２０３Ｂに割り当てられたナビゲーションコマンドが送信される。このような、インタラクティブＵＯやナビゲーションコマンドを受信したか否かの判断、受信された場合の処理が、ステップＳ２４およびステップＳ２５においてなされる。
【０１６５】
なお、ステップＳ２４において受信されたナビゲーションコマンドが、チャプタジャンプや、再生タイトルの切り換えといった、ストリームの再生位置を変更するようなコマンドである場合には、ポーズ状態の解除が、ポーズ解除の指示を待たずに行われる。一方、音声や字幕の切り換え、アングルの切り換え、ピクチャインピクチャ表示への切り替えといったコマンドは、ストリームの再生位置を変更しないので、ポーズ状態が維持される。
【０１６６】
上述したステップＳ２０で、サブパスタイプを示す値Subpath_typeが"３"以外であると判断されれば、処理はステップＳ２６に移行される。ステップＳ１２では、スイッチ部４１０、スイッチ部４１１およびスイッチ部４１２が何れもＯＦＦ状態とされる。これにより、メインパスのプレイアイテムに基づくビデオストリームの再生が一時停止状態にされると共に、ＩＧストリームのデコードが停止され、メニュー表示がＯＦＦとされる。
【０１６７】
そして、ポーズ解除の指示がなされると（ステップＳ２７）、処理はステップＳ２８に移行され、上述したステップＳ１２の状態に戻される。すなわち、スイッチ部４１０において選択入力端４１０Ｂが選択されると共にスイッチ部４１１がＯＮ状態とされ、ＳＴＣがＩＧデコーダ４０２およびビデオデコーダ４０３にそれぞれ供給される。また、スイッチ部４１２がＯＮとされる。これにより、ＩＧデコーダ４０２の出力とビデオデコーダ４０３の出力とがＳＴＣに対して同期的に制御される。
【０１６８】
このように、この発明の実施の一形態では、ＳＴＣに対して独立的なフリーランクロックＣＬＫを設け、ＩＧストリームを再生するためのサブパスが、メインパスと非同期、且つ、メインパスで参照されるプレイアイテムが含まれるトランスポートストリームに多重化されていないタイプのサブパスである場合に、ＩＧストリームをデコードするＩＧデコーダ４０２を、フリーランクロックＣＬＫで動作させるようにしている。そのため、ＳＴＣに基づき再生される、メインパスのビデオストリームをポーズ状態としてもＩＧストリームのデコードが可能とされ、メインパスのビデオストリームの再生一時停止中でも、ＩＧストリームによるメニュー表示に対する操作を行うことができる。
【０１６９】
なお、上述では、ＩＧストリームをメインパスに対して非同期で制御するか否かを、メインパスのプレイリストを解析し、プレイリストの解析によって取得されたサブパスタイプ情報に基づき判断するように説明したが、これはこの例に限定されない。すなわち、メインパスおよびサブパスのストリームそのものに基づき、この判断を行うようにできる。例えば、メインパスに対応したサブパスのストリームが１つしかなく、且つ、当該サブパスのストリームがＩＧストリームであれば、当該サブパスのストリームをメインパスに対して非同期で制御することができると判断可能である。
【０１７０】
次に、上述した実施の一形態に適用可能な再生装置について説明する。図３０は、この発明の実施の一形態に適用可能な再生装置１の一例の構成を示す。再生装置１は、ストレージドライブ５０、スイッチ回路５１、ＡＶデコーダ部５２およびコントローラ部５３を有する。ストレージドライブ５０は、例えば、上述したＢＤ−ＲＯＭを装填して再生可能とされているものとする。
【０１７１】
コントローラ部５３は、例えばＣＰＵ(Central Processing Unit)と、ＣＰＵ上で動作されるプログラムが予め格納されたＲＯＭ(Read Only Memory)、ＣＰＵによりプログラムの実行時にワークメモリとして用いられるＲＡＭ(Random Access Memory)などからなり、この再生装置１の全体的な動作を制御する。図２７を用いて説明したコントローラ４２０は、このコントローラ部５３に対応する。
【０１７２】
また、図示は省略するが、再生装置１には、ユーザに対して所定の制御情報を提供すると共に、ユーザオペレーションに応じた制御信号を出力するようにされたユーザインターフェイスが設けられる。例えば、赤外線通信など所定の無線通信手段を介して再生装置１と遠隔的に通信を行うリモートコントロールコマンダがユーザインターフェイスとして用いられる。リモートコントロールコマンダ上には、上下左右方向をそれぞれ指示可能な十字キーといった方向キーや、数字キー、各種機能が予め割り当てられた機能キーなど、複数の入力手段が設けられる。
【０１７３】
リモートコントロールコマンダは、これらの入力手段に対してなされた操作に応じた制御信号を生成し、生成された制御信号を例えば赤外線信号に変調して送信する。再生装置１は、図示されない赤外線受信部においてこの赤外線信号を受信し、赤外線信号を電気信号に変換して復調し、元の制御信号を復元する。この制御信号がコントローラ部５３に供給される。コントローラ部５３は、この制御信号に応じて、プログラムに従い、再生装置１の動作を制御する。
【０１７４】
ユーザインターフェイスは、リモートコントロールコマンダに限らず、例えば再生装置１の操作パネルに設けられたスイッチ群により構成することができる。また、再生装置１に、ＬＡＮ(Local Area Network)などを介して通信を行う通信手段を設け、この通信手段を介して外部のコンピュータ装置などから供給された信号を、ユーザインターフェイスによる制御信号としてコントローラ部５３に供給することも可能である。
【０１７５】
また、当該再生装置１の言語設定の初期情報が、再生装置１が有する不揮発性メモリなどに記憶される。この言語設定の初期情報は、例えば再生装置１の電源投入時などにメモリから読み出され、コントローラ部５３に供給される。
【０１７６】
ストレージドライブ５０にディスクが装填されると、コントローラ部５３は、ストレージドライブ５０を介してディスク上のファイル"index.bdmv"やファイル"MovieObject.bdmv"を読み出し、読み出されたファイルの記述に基づきディレクトリ"PLAYLIST"内のプレイリストファイルを読み出し、メインパス、サブパスに関する情報や、プレイアイテム内のブロックSTN_table()の情報などがコントローラ部５３に読み込まれる。コントローラ部５３は、プレイリストファイルに含まれるプレイアイテムが参照するクリップＡＶストリームを、ディスクからストレージドライブ５０を介して読み出す。また、コントローラ部５３は、プレイリストがサブプレイアイテムを含む場合は、サブプレイアイテムにより参照されるクリップＡＶストリームやサブタイトルデータも、ディスクからストレージドライブ５０を介して読み出す。
【０１７７】
コントローラ部５３は、読み込まれたプレイリストファイルの情報を解析して、メインパスに対応するサブパスのタイプを値SubPath_typeに基づき判断する。そして、判断結果に基づき後述するインタラクティブグラフィクスデコーダ７７をＳＴＣで動作させるか、フリーランクロックＣＬＫで動作させるかを選択する。
【０１７８】
なお、以下では、サブプレイアイテムに対応するクリップＡＶストリームを、サブクリップＡＶストリームと呼び、サブプレイアイテムに対する主たるプレイアイテムに対応するクリップＡＶストリームを、メインクリップＡＶストリームと呼ぶ。
【０１７９】
ストレージドライブ５０から出力されたデータは、図示されない復調部およびエラー訂正部により復調処理およびエラー訂正処理を所定に施され、多重化ストリームが復元される。ここでの多重化ストリームは、ＰＩＤによりデータの種類や並び順などが識別され、所定サイズに分割され時分割多重されたトランスポートストリームである。この多重化ストリームは、スイッチ回路５１に供給される。コントローラ部５３は、例えばＰＩＤに基づきスイッチ回路５１を所定に制御してデータを種類毎に分類し、メインクリップＡＶストリームのパケットをバッファ６０に供給し、サブクリップＡＶストリームのパケットをバッファ６１に供給し、サウンドデータのパケットをバッファ６２に供給し、テキストデータのパケットをバッファ６３に供給する。
【０１８０】
バッファ６０に溜め込まれたメインクリップＡＶストリームのパケットは、コントローラ部５３の制御に基づきバッファ６０からパケット毎に読み出され、ＰＩＤフィルタ６４に供給される。ＰＩＤフィルタ６４は、供給されたパケットのＰＩＤに基づき、パケットを、ビデオストリームによるパケット、プレゼンテーショングラフィクスストリーム（以下、ＰＧストリーム）によるパケット、インタラクティブグラフィクスストリーム（以下、ＩＧストリーム）によるパケットおよびオーディオストリームによるパケットに振り分ける。
【０１８１】
一方、バッファ６１に溜め込まれたサブクリップＡＶストリームのパケットは、コントローラ部５３の制御に基づきバッファ６１からパケット毎に読み出され、ＰＩＤフィルタ９０に供給される。ＰＩＤフィルタ９０は、供給されたパケットのＰＩＤに基づき、パケットを、ビデオストリームによるパケット、ＰＧストリームによるパケット、ＩＧストリームによるパケットおよびオーディオストリームによるパケットに振り分ける。
【０１８２】
ＰＩＤフィルタ６４により振り分けられたビデオストリームによるパケットと、ＰＩＤフィルタ９０により振り分けられたビデオストリームによるパケットは、それぞれＰＩＤフィルタ６５に供給され、ＰＩＤに応じて振り分けられる。すなわち、ＰＩＤフィルタ６５は、ＰＩＤフィルタ６４から供給された、メインクリップＡＶストリームによるパケットを１ｓｔビデオデコーダ６９に、ＰＩＤフィルタ９０から供給された、サブクリップＡＶストリームによるパケットを２ｎｄビデオデコーダ７２に、それぞれ供給するように、パケットを振り分ける。
【０１８３】
１ｓｔビデオデコーダ６９は、供給されたパケットのペイロードからビデオストリームを所定に取り出し、取り出されたビデオストリームのＭＰＥＧ２方式による圧縮符号を復号化する。１ｓｔビデオデコーダ６９の出力は、１ｓｔビデオプレーン生成部７０に供給され、ビデオプレーンが生成される。ビデオプレーンの生成は、例えばベースバンドのディジタルビデオデータの１フレームがフレームメモリに書き込まれることで生成される。１ｓｔビデオプレーン生成部７０で生成されたビデオプレーンは、ビデオデータ処理部７１に供給される。
【０１８４】
２ｎｄビデオデコーダ７２および２ｎｄビデオプレーン生成部７３において、上述の１ｓｔビデオデコーダ６９および１ｓｔビデオプレーン生成部７０と略同様の処理がなされ、ビデオストリームが復号化されビデオプレーンが生成される。２ｎｄビデオプレーン生成部７３で生成されたビデオプレーンは、ビデオデータ処理部７１に供給される。
【０１８５】
図２７を用いて説明したビデオデコーダ４０３は、例えば、１ｓｔビデオデコーダ６９に対応する。ビデオデコーダ４０３が１ｓｔビデデコーダ６９および２ｎｄビデオデコーダ７２にそれぞれ対応していてもよい。なお、この図３０において、図２７に示したＳＴＣ部４００およびスイッチ部４１１は、省略されている。
【０１８６】
ビデオデータ処理部７１は、１ｓｔビデオプレーン生成部７０で生成されたビデオプレーンと、２ｎｄビデオプレーン生成部７３で生成されたビデオプレーンとを、１つのフレームに例えば所定に嵌め込んで１枚のビデオプレーンを生成することができる。１ｓｔビデオプレーン生成部７０で生成されたビデオプレーンと、２ｎｄビデオプレーン生成部７３で生成されたビデオプレーンとを、選択的に用いてビデオプレーンを生成してもよい。このビデオプレーンは、例えば上述の図９に例示した動画プレーン１０に対応する。
【０１８７】
ＰＩＤフィルタ６４により振り分けられたＰＧストリームによるパケットと、ＰＩＤフィルタ９０により振り分けられたＰＧストリームによるパケットは、それぞれスイッチ回路６６に供給されて一方が所定に選択され、プレゼンテーショングラフィクスデコーダ７４に供給される。プレゼンテーショングラフィクスデコーダ７４は、供給されたパケットのペイロードからＰＧストリームを所定に取り出してデコードして字幕を表示するグラフィクスデータを生成し、スイッチ回路７５に供給する。
【０１８８】
スイッチ回路７５は、このグラフィクスデータと、後述するテキストデータによる字幕データとを所定に選択し、プレゼンテーショングラフィクスプレーン生成部７６に供給する。プレゼンテーショングラフィクスプレーン生成部７６は、供給されたデータに基づきプレゼンテーショングラフィクスプレーンを生成し、ビデオデータ処理部７１に供給する。このプレゼンテーショングラフィクスプレーンは、例えば上述の図９に例示した字幕プレーン１１に対応する。
【０１８９】
ＰＩＤフィルタ６４により振り分けられたＩＧストリームによるパケットと、ＰＩＤフィルタ９０により振り分けられたＩＧストリームによるパケットは、それぞれスイッチ回路６７に供給されて一方が所定に選択され、インタラクティブグラフィクスデコーダ７７に供給される。図２７を用いて説明したＩＧデコーダ４０２は、このインタラクティブグラフィクスデコーダ７７に対応する。なお、この図３０において、フリーランクロック部４００、スイッチ部４１０およびスイッチ部４１２は、省略されている。
【０１９０】
インタラクティブグラフィクスデコーダ７７は、供給されたＩＧストリームによるパケットからＩＧストリームのＩＣＳ、ＰＤＳおよびＯＤＳを所定に取り出してデコードする。例えば、インタラクティブグラフィクスデコーダ７７は、供給されたパケットのペイロードからデータを取り出し、ＰＥＳパケットを再構築する。そして、このＰＥＳパケットのヘッダ情報などに基づき、ＩＧストリームのＩＣＳ、ＰＤＳおよびＯＤＳをそれぞれ取り出す。デコードされたＩＣＳはおよびＰＤＳは、ＣＢ(Composition Buffer)と呼ばれるバッファに格納される。また、ＯＤＳは、ＤＢ(Decoded Buffer)と呼ばれるバッファに格納される。例えば図３０におけるプリロードバッファ７８が、これらＣＢおよびＤＢに相当する。
【０１９１】
なお、ＰＥＳパケットは、再生出力に関する時間管理情報であるＰＴＳ(Presentation Time Stamp)と、復号化に関する時間管理情報であるＤＴＳ(Decoding Time Stamp)とを有している。ＩＧストリームによるメニュー表示は、対応するＰＥＳパケットに格納されるＰＴＳにより時間管理されて表示される。例えば、上述したプリロードバッファに格納されたＩＧストリームを構成する各データは、ＰＴＳに基づき所定の時間に読み出すように制御される。このとき、ＰＴＳの基準となる時間情報は、ＩＧストリームのサブパスタイプに応じて、ＳＴＣまたはフリーランクロックＣＬＫのうち何れかが用いられる。ＰＴＳの基準としてフリーランクロックＣＬＫを用いている場合には、ＩＧストリームによるメニュー表示は、上述した１ｓｔビデオデコーダ６９や２ｎｄビデオデコーダ７２の主つつ力とは非同期となる。
【０１９２】
プリロードバッファ７８から読み出されたＩＧストリームのデータは、インタラクティブグラフィクスプレーン生成部７９に供給され、インタラクティブグラフィクスプレーンが生成される。このインタラクティブグラフィクスプレーンは、例えば上述の図２１に例示したグラフィクスプレーン１２に対応する。
【０１９３】
ビデオデータ処理部７１は、例えば図２２を用いて説明したグラフィクス処理部を含み、供給されたビデオプレーン（図２２における動画プレーン１０）、プレゼンテーショングラフィクスプレーン（図２２における字幕プレーン１１）およびインタラクティブグラフィクスプレーン（図２２におけるグラフィクスプレーン１２）を、所定に合成して１枚の画像データとし、ビデオ信号にして出力する。
【０１９４】
ＰＩＤフィルタ６４により振り分けられたオーディオストリームと、ＰＩＤフィルタ９０により振り分けられたオーディオストリームは、それぞれスイッチ回路６８に供給される。スイッチ回路６８は、供給された２つのオーディオストリームのうち一方を１ｓｔオーディオデコーダ８０に、他方を２ｎｄオーディオデコーダ８１に供給するように、所定に選択する。１ｓｔオーディオデコーダ８０および２ｎｄオーディオデコーダ８１でそれぞれデコードされたオーディオストリームは、加算器８２で合成され、さらに加算器８３で、バッファ６２から読み出されたサウンドデータと合成され、出力される。
【０１９５】
バッファ６３から読み出されたテキストデータは、Ｔｅｘｔ−ＳＴコンポジション部で所定に処理され、スイッチ回路７５に供給される。
【０１９６】
上述では、再生装置１の各部がハードウェアで構成されるように説明したが、これはこの例に限られない。例えば、再生装置１をソフトウェア上の処理として実現することも可能である。この場合、再生装置１をコンピュータ装置上で動作させることができる。また、再生装置１をハードウェアおよびソフトウェアが混合された構成で実現することもできる。例えば、再生装置１における各デコーダ、特に、１ｓｔビデオデコーダ６９、２ｎｄビデオデコーダ７２など処理の負荷が他と比べて大きな部分をハードウェアで構成し、その他をソフトウェアで構成することが考えられる。
【０１９７】
再生装置１をソフトウェアのみ、または、ハードウェアおよびソフトウェアの混合により構成し、コンピュータ装置で実行させるためのプログラムは、例えばＣＤ−ＲＯＭ(Compact Disc-Read Only Memory)やＤＶＤ−ＲＯＭ(Digital Versatile Disc Read Only Memory)といった記録媒体に記録されて提供される。この記録媒体をコンピュータ装置のドライブに装填し、記録媒体上に記録されたプログラムを所定にコンピュータ装置にインストールすることで、上述の処理をコンピュータ装置上で実行可能な状態とすることができる。プログラムをＢＤ−ＲＯＭに記録することも考えられる。なお、コンピュータ装置の構成は、極めて周知であるため、説明は省略する。
【図面の簡単な説明】
【０１９８】
【図１】ＢＤ−ＲＯＭのデータモデルを概略的に示す略線図である。
【図２】インデックステーブルを説明するための略線図である。
【図３】クリップＡＶストリーム、クリップ情報、クリップ、プレイアイテムおよびプレイリストの関係を示すＵＭＬ図である。
【図４】複数のプレイリストから同一のクリップを参照する方法を説明するための略線図である。
【図５】サブパスについて説明するための略線図である。
【図６】記録媒体に記録されるファイルの管理構造を説明するための略線図である。
【図７】ムービーオブジェクトから呼び出されるムービープレイリストファイル"xxxxx.mpls"の一例の構造を表すシンタクスを示す略線図である。
【図８】ブロックPlayList()の一例の構造を表すシンタクスを示す略線図である。
【図９】ブロックPlayItem()の一例の構造を表すシンタクスを示す略線図である。
【図１０】ブロックSTN_table()の一例の構造を表すシンタクスを示す略線図である。
【図１１】ブロックSTN_table()の一例の構造を表すシンタクスを示す略線図である。
【図１２】ブロックstream_entry()の一例の構造を表すシンタクスを示す略線図である。
【図１３】ブロックSubPath()の一例の構造を表すシンタクスを示す略線図である。
【図１４】ブロックSubPlayItem(i)の一例の構造を表すシンタクスを示す略線図である。
【図１５】ブロックSubPath()におけるフィールドSubPath_typeの値によって定義される一例のサブパスタイプを示す略線図である。
【図１６】ボタン画像の一例の格納形式を説明するための略線図である。
【図１７】ＩＣＳのヘッダ情報の一例の構造を表すシンタクスを示す略線図である。
【図１８】ブロックinteractive_composition_data_fragemnt()の一例の構造を表すシンタクスを示す略線図である。
【図１９】ＢＤ仮想プレーヤの動作を概略的に示すフローチャートである。
【図２０】ＢＤ仮想プレーヤの動作を概略的に示すフローチャートである。
【図２１】この発明の実施の一形態で画像の表示系として用いられるプレーン構造の一例を示す略線図である。
【図２２】動画プレーン、字幕プレーンおよびグラフィクスプレーンを合成する一例の構成を示すブロック図である。
【図２３】パレットに格納される一例のパレットテーブルを示す略線図である。
【図２４】ＩＧストリームによるメニュー表示と、メインパスのプレイリストに基づき再生されるビデオストリームとを合成して表示する例について説明するための略線図である。
【図２５】ＩＧストリームによるメニュー表示と、メインパスのプレイリストに基づき再生されるビデオストリームとを合成して表示する例について説明するための略線図である。
【図２６】ＩＧストリームによるメニュー表示と、メインパスのプレイリストに基づき再生されるビデオストリームとを合成して表示する例について説明するための略線図である。
【図２７】この発明の実施の一形態による表示制御を行うための一例の構成を概略的に示すブロック図である。
【図２８】この発明の実施の一形態による一例の表示制御方法を示すフローチャートである。
【図２９】この発明の実施の一形態による一例の表示制御方法を示すフローチャートである。
【図３０】この発明の実施の一形態に適用可能な再生装置の一例の構成を示すブロック図である。
【符号の説明】
【０１９９】
１  再生装置
１０  動画プレーン
１１  字幕プレーン
１２  インタラクティブグラフィクスプレーン
２０１Ａ，２０１Ｂ，２０１Ｃ  ボタン
２０２  プルダウンメニュー
２０３Ａ，２０３Ｂ，２０３Ｃ  ボタン
４００  ＳＴＣ部
４０１  フリーランクロック部
４０２  ＩＧデコーダ
４０３  ビデオデコーダ
４１０  第１のスイッチ
４１１  第２のスイッチ
４１２  第３のスイッチ
４２０  コントローラ
【図１】
2008077775.tif 000003
【図２】
2008077775.tif 000004
【図３】
2008077775.tif 000005
【図４】
2008077775.tif 000006
【図５】
2008077775.tif 000007
【図６】
2008077775.tif 000008
【図７】
2008077775.tif 000009
【図８】
2008077775.tif 000010
【図９】
2008077775.tif 000011
【図１０】
2008077775.tif 000012
【図１１】
2008077775.tif 000013
【図１２】
2008077775.tif 000014
【図１３】
2008077775.tif 000015
【図１４】
2008077775.tif 000016
【図１５】
2008077775.tif 000017
【図１６】
2008077775.tif 000018
【図１７】
2008077775.tif 000019
【図１８】
2008077775.tif 000020
【図１９】
2008077775.tif 000021
【図２０】
2008077775.tif 000022
【図２１】
2008077775.tif 000023
【図２２】
2008077775.tif 000024
【図２３】
2008077775.tif 000025
【図２４】
2008077775.tif 000026
【図２５】
2008077775.tif 000027
【図２６】
2008077775.tif 000028
【図２７】
2008077775.tif 000029
【図２８】
2008077775.tif 000030
【図２９】
2008077775.tif 000031
【図３０】
2008077775.tif 000032