以下、本発明の好適な実施形態に係る記録媒体及び再生装置について、図面を参照しながら説明する。
《実施形態1》
図1は、本発明の実施形態1による記録媒体を使用するホームシアター・システムを示す模式図である。図1において、その記録媒体101は読み出し専用ブルーレイ・ディスク(BD:Blu−ray Disc)、すなわちBD−ROMディスクである。その記録媒体101はその他の可搬性記録媒体、例えば、DVD等の他方式による光ディスク、リムーバブル・ハードディスクドライブ(HDD)、又はSDメモリカード等の半導体メモリ装置であってもよい。その記録媒体、すなわちBD−ROMディスク101は、3D映像による映画コンテンツを格納している。一方、ホームシアター・システムは、再生装置102、表示装置103、シャッター眼鏡104、及びリモコン105を含む。
再生装置102はBD−ROMドライブ121を搭載している。BD−ROMドライブ121はBD−ROM方式に準拠の光ディスクドライブである。再生装置102はBD−ROMドライブ121を利用して、BD−ROMディスク101から映画コンテンツを読み込む。再生装置102は更に、その映画コンテンツを映像データ/音声データに復号する。ここで、再生装置102が2D再生装置であるとき、又は表示装置103が2D映像の再生にのみ対応可能であるとき、映像データはレフトビュー又はライトビューのいずれか一方の映像フレームのみを含む。一方、再生装置102が3D再生装置であり、かつ表示装置103が3D映像の再生に対応可能であるとき、映像データはレフトビューとライトビューとの両方の映像フレームを含む。
再生装置102はHDMI(High−Definition Multimedia Interface)ケーブル122で表示装置103に接続されている。再生装置102は映像データ/音声データをHDMI方式の映像信号/音声信号に変換し、HDMIケーブル122を通して表示装置103に伝送する。ここで、再生装置102が2D再生装置であるとき、又は表示装置103が2D映像の再生にのみ対応可能であるとき、映像信号にはレフトビュー又はライトビューのいずれか一方の映像フレームのみが多重化されている。一方、再生装置102が3D再生装置であり、かつ表示装置103が3D映像に対応可能であるとき、映像信号にはレフトビューとライトビューとの両方の映像フレームが時分割で多重化されている。再生装置102はその他に、HDMIケーブル122を通して表示装置103との間でCECメッセージを交換する。それにより、再生装置102は表示装置103に対して、3D映像の再生に対応可能か否かを問い合わせる。
表示装置103は液晶ディスプレイである。表示装置103はその他に、プラズマ・ディスプレイ及び有機ELディスプレイ等、他方式のフラットパネル・ディスプレイ又はプロジェクタであってもよい。表示装置103は、映像信号に従って画面131上に映像を再現し、音声信号に従って内蔵のスピーカから音声を発生させる。ここで、再生装置102が2D再生装置であるとき、又は表示装置103が2D映像の再生にのみ対応可能であるとき、画面131上にはレフトビュー又はライトビューのいずれか一方のみが再現される。一方、再生装置102が3D再生装置であり、かつ表示装置103が3D映像に対応可能であるとき、画面131上にはレフトビューとライトビューとが交互に再現される。
表示装置103が3D映像の再生に対応可能であるとき、表示装置103は更に左右信号送信部132を搭載している。表示装置103はそれを利用して左右信号LRを赤外線又は無線でシャッター眼鏡104へ送出する。左右信号LRは、その時点で画面131に表示される映像がレフトビューとライトビューとのいずれであるのかを示す。表示装置103は、映像信号に付随する制御信号からレフトビュー・フレームとライトビュー・フレームとを識別して、左右信号LRの波形の切り換えをフレームの切り換えに同期させる。
シャッター眼鏡104は、二枚の液晶表示パネル141L、141Rと左右信号受信部142とを含む。各液晶表示パネル141L、141Rは左右の各レンズ部分を構成している。左右信号受信部142は左右信号LRを受信し、その波形の変化に応じて左右の液晶表示パネル141L、141Rに信号を送る。各液晶表示パネル141L、141Rはその信号に応じて、光をその全体で一様に透過させ、又は遮断する。特に左右信号LRがレフトビューの表示を示すとき、左目側の液晶表示パネル141Lは光を透過させ、右目側の液晶表示パネル141Rは光を遮断する。左右信号LRがライトビューの表示を示すときはその逆である。このように、二枚の液晶表示パネル141L、141Rは、フレームの切り換えと同期して交互に光を透過させる。その結果、視聴者がシャッター眼鏡104をかけて画面131を見たとき、レフトビューはその視聴者の左目だけに映り、ライトビューはその右目だけに映る。そのとき、その視聴者には、各目に映る映像間の違いが一つの立体的物体に対する両眼視差として知覚されるので、その映像が立体的に見える。
リモコン105は操作部と送信部とを含む。操作部は複数のボタンを含む。各ボタンは、電源のオンオフ、又は、BD−ROMディスク101の再生開始若しくは停止等、再生装置102又は表示装置103の各機能に対応付けられている。操作部はユーザによる各ボタンの押下を検出し、そのボタンを特定する信号を送信部に渡す。送信部はその信号を赤外線又は無線による信号IRで再生装置102又は表示装置103へ送出する。それにより、ユーザは再生装置102又は表示装置103を遠隔操作できる。
<BD−ROMディスク上のデータ構造>
図2は、BD−ROMディスク101上のデータ構造を示す模式図である。図2を参照するに、BD−ROMディスク101上のデータ記録領域の最内周部にはBCA(Burst Cutting Area)201が設けられている。BCAに対してはBD−ROMドライブ121によるアクセスのみが許可され、アプリケーション・プログラムによるアクセスは禁止される。それにより、BCA201は著作権保護技術に利用される。BCA201よりも外側のデータ記録領域にはトラックが、内周から外周へ向けて螺旋状に形成されている。図2にはトラック202が仮想的に横方向に引き伸ばされて描かれている。そのトラック202の左側がディスク101の内周部を表し、右側が外周部を表す。図2に示されているように、トラック202は内周から順に、リードイン領域202A、ボリューム領域202B、及びリードアウト領域202Cを含む。リードイン領域202AはBCA201のすぐ外周側に設けられている。リードイン領域202Aは、ボリューム領域202Bに記録されたデータのサイズ及び物理アドレス等、ボリューム領域202Bへのアクセスに必要な情報を含む。リードアウト領域202Cはデータ記録領域の最外周部に設けられ、ボリューム領域202Bの終端を示す。ボリューム領域202Bは、映像及び音声等のアプリケーション・データを含む。
ボリューム領域202Bは「セクタ」と呼ばれる小領域に分割されている。各セクタにはボリューム領域202Bの先頭から順に通し番号が振られている。この通し番号のことを論理アドレス(又は論理ブロック番号)という。BD−ROMディスク101からのデータの読み出しは、そのデータが格納されたセクタの論理アドレスを指定することによって実行される。こうして、ボリューム領域202Bはセクタ単位でアクセス可能である。BD−ROMディスク101では更に、論理アドレスは物理アドレスと実質的に等しい。すなわち、論理アドレスが連続している領域では物理アドレスも実質的に連続している。従って、BD−ROMドライブ121は、論理アドレスが連続しているセクタからデータを、その光ピックアップにシークを行わせることなく連続して読み出すことができる。
≪BD−ROMディスク上のファイルシステム≫
ボリューム領域202Bに対するファイルシステムとしてはUDF(Universal Disc Format)が採用されている。そのファイルシステムはその他にISO9660であってもよい。そのファイルシステムにより、ボリューム領域202Bに記録されたデータはディレクトリ/ファイル形式で表現される。すなわち、それらのデータはディレクトリ単位又はファイル単位でアクセス可能である。
更に具体的には、そのファイルシステムとしてUDFが利用されるとき、ボリューム領域202Bは、ディレクトリ領域、ファイルセット記述子の記録領域、及び終端記述子の記録領域を含む。「ディレクトリ領域」は一般に複数であり、それぞれが、一つのディレクトリを構成するデータの記録領域である。「ファイルセット記述子」は、ディレクトリ領域のうち、ルートディレクトリのファイル・エントリが記録されているセクタの論理ブロック番号(LBN)を示す。「終端記述子」はファイルセット記述子の終端を示す。
各ディレクトリ領域はいずれも共通のデータ構造を持つ。各ディレクトリ領域は特に、ファイル・エントリ、ディレクトリ・ファイル、及び下位ファイルの各記録領域を含む。
「ファイル・エントリ」は、記述子タグ、ICBタグ、及びアロケーション記述子を含む。「記述子タグ」は、その記述子タグを含むデータがファイル・エントリであることを示す。例えば記述子タグの値が“261”であるとき、そのデータはファイル・エントリである。「ICBタグ」はそのファイル・エントリ自身の属性情報を示す。「アロケーション記述子」は、同じディレクトリ領域に属するディレクトリ・ファイルが記録されたセクタのLBNを示す。
「ディレクトリ・ファイル」は、下位ディレクトリのファイル識別記述子と、下位ファイルのファイル識別記述子とを含む。「下位ディレクトリのファイル識別記述子」は、そのディレクトリ領域に記録されたディレクトリの直下にある下位ディレクトリにアクセスするための情報である。このファイル識別記述子は特に、その下位ディレクトリの識別情報、ディレクトリ名の長さ、ファイル・エントリ・アドレス、及びディレクトリ名そのものを含む。ここで、ファイル・エントリ・アドレスは、その下位ディレクトリのファイル・エントリが記録されたセクタのLBNを示す。「下位ファイルのファイル識別記述子」は、そのディレクトリ領域に記録されたディレクトリの直下にある下位ファイルにアクセスするための情報である。このファイル識別記述子は、その下位ファイルの識別情報、ファイル名の長さ、ファイル・エントリ・アドレス、及びファイル名そのものを含む。ここで、ファイル・エントリ・アドレスは、その下位ファイルのファイル・エントリのLBNを示す。下位ディレクトリ/ファイルのファイル識別記述子を辿ってゆけば、ルートディレクトリのファイル・エントリから下位ディレクトリ/下位ファイルのファイル・エントリに順次、到達することができる。
「下位ファイル」は、そのディレクトリ領域に記録されたディレクトリの直下にある下位ファイルのファイル・エントリと実体とを含む。「ファイル・エントリ」は、記述子タグ、ICBタグ、及びアロケーション記述子を含む。「記述子タグ」は、その記述子タグを含むデータがファイル・エントリであることを示す。「ICBタグ」はそのファイル・エントリ自身の属性情報を示す。「アロケーション記述子」は、その下位ファイルの実体を構成する各エクステントの配置を示す。ここで、「エクステント」は、論理アドレスが連続しているデータ列を意味する。アロケーション記述子は各エクステントに一つずつ設けられる。従って、下位ファイルが複数のエクステントに分割されているとき、ファイル・エントリはアロケーション記述子を複数含む。より具体的には、アロケーション記述子は各エクステントのサイズとLBNとを含む。更に、アロケーション記述子の上位2ビットは、そのLBNのセクタにエクステントが実際に記録されているか否かを示す。すなわち、その上位2ビットが“0”であるとき、そのセクタにはエクステントが割り付け済みであり、かつ記録済みであることを示し、“1”であるとき、そのセクタにエクステントが割り付け済みではあるが未記録であることを示す。各ファイルのファイル・エントリのアロケーション記述子を参照することにより、そのファイルを構成する各エクステントの論理アドレスを知ることができる。
UDFを利用した上記のファイルシステムと同様、ボリューム領域202Bに対するファイルシステムでは一般に、ボリューム領域202Bに記録された各ファイルが複数のエクステントに分割されているとき、上記のアロケーション記述子のように、各エクステントの配置を示す情報がボリューム領域202Bに併せて記録される。その情報を参照することにより、各エクステントの配置、特にその論理アドレスを知ることができる。
≪BD−ROMディスク上のディレクトリ/ファイル構造≫
図2を更に参照するに、BD−ROM101上のディレクトリ/ファイル構造204では、ルート(ROOT)ディレクトリ241の直下にBDムービー(BDMV:BD Movie)ディレクトリ242が置かれている。BDMVディレクトリ242の直下には、インデックス・ファイル(index.bdmv)242Aとムービーオブジェクト・ファイル(MovieObject.bdmv)242Bとが置かれている。
インデックス・ファイル242Aは、BD−ROMディスク101に記録されたコンテンツの全体を管理するための情報である。その情報は特に、そのコンテンツを再生装置に認識させるための情報、及びインデックス・テーブルを含む。インデックス・テーブルは、そのコンテンツを構成するタイトルと、再生装置の動作を制御するためのプログラムとの間の対応関係を規定する。そのプログラムを特に「オブジェクト」という。オブジェクトの種類には、ムービーオブジェクトとBD−J(BD Java (登録商標))オブジェクトとがある。
図3は、インデックス・ファイル242A内のインデックス・テーブル310を示す模式図である。インデックス・テーブル310は、「ファーストプレイ」301、「トップメニュー」302、及び「タイトルk」303(k=1、2、…、n:nは1以上の整数)という項目を含む。各項目にはムービーオブジェクトMVO−2D、MVO−3D、…、又はBD−JオブジェクトBDJO−2D、BDJO−3D、…のいずれかが対応付けられている。ユーザの操作又はアプリケーション・プログラムによってタイトル又はメニューが呼び出される度に、再生装置102の制御部はインデックス・テーブル310の対応する項目を参照して、その項目に対応付けられているオブジェクトをディスク101から呼び出す。制御部は更に、呼び出されたオブジェクトに従って様々な処理を実行する。具体的には、項目「ファーストプレイ」301には、ディスク101がBD−ROMドライブ121へ挿入された時に呼び出されるべきオブジェクトが指定されている。項目「トップメニュー」302には、例えばユーザの操作で「メニューに戻れ」というコマンドが入力された時に表示装置103にメニューを表示させるためのオブジェクトが指定されている。項目「タイトルk」303には、ディスク101上のコンテンツを構成するタイトルが個別に割り当てられている。例えばユーザの操作によって再生対象のタイトルが指定されたとき、そのタイトルが割り当てられている項目「タイトルk」には、そのタイトルに対応するAVストリーム・ファイルから映像を再生するためのオブジェクトが指定されている。
ムービーオブジェクト・ファイル242Bは一般に複数のムービーオブジェクトを含む。各ムービーオブジェクトはナビゲーション・コマンドの列を含む。ナビゲーション・コマンドは、一般的なDVDプレーヤによる再生処理と同様な再生処理を再生装置に実行させるための制御指令である。ナビゲーション・コマンドの種類には、例えば、タイトルに対応するプレイリスト・ファイルの読み出し命令、プレイリスト・ファイルの示すAVストリーム・ファイルの再生命令、及び別のタイトルへの遷移命令がある。ナビゲーション・コマンドはインタプリタ型言語で記述され、再生装置に組み込まれたインタプリタ、すなわちジョブ制御プログラムによって解読され、その制御部に所望のジョブを実行させる。ナビゲーション・コマンドはオペコードとオペランドとから成る。オペコードは、タイトルの分岐と再生及び演算等、再生装置に実行させるべき操作の内容を示す。オペランドは、タイトル番号等、その操作の対象の識別情報を示す。再生装置102の制御部は、例えばユーザの操作に応じて各ムービーオブジェクトを呼び出し、そのムービーオブジェクトに含まれるナビゲーション・コマンドを列の順に実行する。それにより、再生装置102は、一般的なDVDプレーヤと同様に、まず、表示装置103にメニューを表示してユーザにコマンドを選択させる。再生装置102は次に、選択されたコマンドに応じて、タイトルの再生開始/停止、及び別のタイトルへの切り換え等、再生される映像の進行を動的に変化させる。
図2に示されているように、BDMVディレクトリ242は更に、プレイリスト(PLAYLIST)ディレクトリ243、クリップ情報(CLIPINF)ディレクトリ244、ストリーム(STREAM)ディレクトリ245、BD−Jオブジェクト(BDJO:BD Java Object)ディレクトリ246、及びJavaアーカイブ(JAR:Java Archive)ディレクトリ247を含む。
STREAMディレクトリ245には三種類のAVストリーム・ファイル(00001.m2ts)245A、(00002.m2ts)245B、(00003.m2ts)245Cが置かれている。「AVストリーム・ファイル」は映像コンテンツの実体であり、映像・音声・字幕等を表す。AVストリーム・ファイルの種類には、2D・AVストリーム・ファイル、レフトビュー・ストリーム・ファイル、ライトビュー・ストリーム・ファイル、及びデプスマップAVストリーム・ファイルがある。「2D・AVストリーム・ファイル」とは、単独で2D映像の再生に利用可能なAVストリーム・ファイルを意味する。「レフトビュー・ストリーム・ファイル」とは、3D映像のレフトビューを表すAVストリーム・ファイルを意味する。「ライトビュー・ストリーム・ファイル」とは、3D映像のライトビューを表すAVストリーム・ファイルを意味する。レフトビュー・ストリーム・ファイルとライトビュー・ストリーム・ファイルとは一対で3D映像の表示に利用される。「デプスマップAVストリーム・ファイル」とは、3D映像のデプスマップを表すAVストリーム・ファイルを意味する。デプスマップAVストリーム・ファイルは2D・AVストリーム・ファイルとの組み合わせで3D映像の再生に利用される。図2に示されている例では、第1AVストリーム・ファイル(00001.m2ts)245Aは2D・AVストリーム・ファイルであり、かつ、レフトビュー・ストリーム・ファイルでもある。第2AVストリーム・ファイル(00002.m2ts)245Bはライトビュー・ストリーム・ファイルであり、第1AVストリーム・ファイル245Aとの組み合わせで3D映像の再生に利用される。第3AVストリーム・ファイル(00003.m2ts)245CはデプスマップAVストリーム・ファイルであり、第1AVストリーム・ファイル245Aとの組み合わせで3D映像の再生に利用される。
CLIPINFディレクトリ244には三種類のクリップ情報ファイル(00001.clpi)244A、(00002.clpi)244B、(00003.clpi)244Cが置かれている。「クリップ情報ファイル」はAVストリーム・ファイルと一対一に対応付けられ、主にそのAVストリーム・ファイルの表す映像の表示時間とそのAVストリーム・ファイル内の論理アドレスとの間の対応関係を表す。クリップ情報ファイルの種類には、2Dクリップ情報ファイル、レフトビュー・クリップ情報ファイル、ライトビュー・クリップ情報ファイル、及びデプスマップ・クリップ情報ファイルがあり、それぞれ、2D・AVストリーム・ファイル、レフトビュー・ストリーム・ファイル、ライトビュー・ストリーム・ファイル、及びデプスマップAVストリーム・ファイルに対応付けられるべきクリップ情報ファイルをいう。図2に示されている例では、第1クリップ情報ファイル(00001.clpi)244Aは2Dクリップ情報ファイルであり、かつレフトビュー・クリップ情報ファイルでもあり、第1AVストリーム・ファイル(00001.m2ts)245Aに対応付けられている。第2クリップ情報ファイル(00002.clpi)244Bはライトビュー・クリップ情報ファイルであり、第2AVストリーム・ファイル(00002.m2ts)245Bに対応付けられている。第3クリップ情報ファイル(00003.clpi)244Cはデプスマップ・クリップ情報ファイルであり、第3AVストリーム・ファイル(00003.m2ts)245Cに対応付けられている。
PLAYLISTディレクトリ243には三種類のプレイリスト・ファイル(00001.mpls)243A、(00002.mpls)243B、(00003.mpls)243Cが置かれている。「プレイリスト・ファイル」は、AVストリーム・ファイルの再生経路、すなわちAVストリーム・ファイルの復号対象の部分とその復号順とを規定する。プレイリスト・ファイルの種類には2Dプレイリスト・ファイルと3Dプレイリスト・ファイルとがある。「2Dプレイリスト・ファイル」は、2D・AVストリーム・ファイルの再生経路を規定するプレイリスト・ファイルをいう。「3Dプレイリスト・ファイル」は、レフトビュー・ストリーム・ファイルとライトビュー・ストリーム・ファイルとの対の再生経路、又は、2D・AVストリーム・ファイルとデプスマップAVストリーム・ファイルとの対の再生経路を規定するプレイリスト・ファイルをいう。第1プレイリスト・ファイル(00001.mpls)243Aは2Dプレイリスト・ファイルであり、第2プレイリスト・ファイル(00002.mpls)243Bと第3プレイリスト・ファイル(00003.mpls)243Cとはいずれも3Dプレイリスト・ファイルである。特に、レフトビュー・ストリーム・ファイルとライトビュー・ストリーム・ファイルとの組み合わせから3D映像が再生されるとき、第2プレイリスト・ファイル243Bが利用される。一方、2D・AVストリーム・ファイルとデプスマップ・ストリーム・ファイルとの組み合わせから3D映像が再生されるとき、第3プレイリスト・ファイル243Cが利用される。
BDJOディレクトリ246にはBD−Jオブジェクト・ファイル(XXXXX.bdjo)246Aが置かれている。BD−Jオブジェクト・ファイル246AはBD−Jオブジェクトを一つ含む。BD−Jオブジェクトは、再生装置102に実装されたJava仮想マシンに、タイトルの再生処理及びグラフィックス映像の描画処理を実行させるためのバイトコード・プログラムである。BD−Jオブジェクトは、Java言語等のコンパイラ型言語で記述されている。BD−Jオブジェクトは、アプリケーション管理テーブルと、参照対象のプレイリスト・ファイルの識別情報とを含む。アプリケーション管理テーブルは、Java仮想マシンに実行させるべきJavaアプリケーション・プログラムとその実行時期(ライフサイクル)とのリストである。参照対象のプレイリスト・ファイルの識別情報は、再生対象のタイトルに対応するプレイリスト・ファイルを識別するための情報である。Java仮想マシンは、ユーザの操作又はアプリケーション・プログラムに従って各BD−Jオブジェクトを呼び出し、そのBD−Jオブジェクトに含まれるアプリケーション管理テーブルに従ってJavaアプリケーション・プログラムを実行する。それにより、再生装置102は、再生される各タイトルの映像の進行を動的に変化させ、又は、表示装置103にグラフィックス映像をタイトルの映像とは独立に表示させる。
JARディレクトリ247にはJARファイル(YYYYY.jar)247Aが置かれている。JARファイル247Aは、BD−Jオブジェクトの示すアプリケーション管理テーブルに従って実行されるべきJavaアプリケーション・プログラムの本体を一般に複数含む。Javaアプリケーション・プログラムは、BD−Jオブジェクトと同様、Java言語等のコンパイラ型言語で記述されたバイトコード・プログラムである。Javaアプリケーション・プログラムの種類には、Java仮想マシンにタイトルの再生処理を実行させるもの、及び、Java仮想マシンにグラフィックス映像の描画処理を実行させるものが含まれる。JARファイル247AはJavaアーカイブ・ファイルであり、再生装置102に読み込まれたとき、その内部のメモリで展開される。それにより、そのメモリの中にJavaアプリケーション・プログラムが格納される。
ディレクトリ/ファイル構造204は具体的には、BD−ROMディスク101のボリューム領域202B上に、ROOTディレクトリ領域、BDMVディレクトリ領域、PLAYLISTディレクトリ領域、CLIPINFディレクトリ領域、STREAMディレクトリ領域、BDJOディレクトリ領域、及びJARディレクトリ領域として構成されている。上記のファイル識別記述子を辿ってゆけば、ROOTディレクトリのファイル・エントリから各ディレクトリのファイル・エントリに順次、到達することができる。例えば、ROOTディレクトリのファイル・エントリからBDMVディレクトリのファイル・エントリに到達することができ、更に、BDMVディレクトリのファイル・エントリからPLAYLISTディレクトリのファイル・エントリに到達することができる。同様に、BDMVディレクトリのファイル・エントリからは、CLIPINFディレクトリ、STREAMディレクトリ、BDJOディレクトリ、及びJARディレクトリ領域の各ファイル・エントリに到達することができる。
<2D映像コンテンツのデータ構造>
以下、BDMVディレクトリ242内のファイル群のうち、2D映像コンテンツの再生に関する各ファイルのデータ構造について説明する。
≪インデックス・テーブルに記述された各オブジェクト≫
図3に示されている例では、項目「タイトル1」に対応付けられているムービーオブジェクトMVO−2Dが、第1プレイリスト・ファイル243Aを用いた2D映像の再生処理に関する命令群を含む。再生装置102によって項目「タイトル1」が参照されたとき、そのムービーオブジェクトMVO−2Dに従い、第1プレイリスト・ファイル243Aがディスク101から読み出され、それに規定された再生経路に沿って2D映像の再生処理が実行される。
図3に示されている例では更に、項目「タイトル2」に対応付けられているBD−JオブジェクトBDJO−2Dが、第1プレイリスト・ファイル243Aを用いた2D映像の再生処理に関するアプリケーション管理テーブルを含む。再生装置102によって項目「タイトル2」が参照されたとき、そのBD−JオブジェクトBDJO−2D内のアプリケーション管理テーブルに従ってJARファイル247AからJavaアプリケーション・プログラムが呼び出されて実行される。それにより、第1プレイリスト・ファイル243Aがディスク101から読み出され、それに規定された再生経路に沿って2D映像の再生処理が実行される。
≪2D・AVストリーム・ファイル≫
第1AVストリーム・ファイル245AはMPEG−2トランスポート・ストリーム(TS)形式のデジタル・ストリームである。第1AVストリーム・ファイル245Aの中には複数のエレメンタリ・ストリームが多重化されている。図4は、第1AVストリーム・ファイル245Aに多重化されたエレメンタリ・ストリームを示す模式図である。図4を参照するに、第1AVストリーム・ファイル245Aは、プライマリ・ビデオ・ストリーム401、プライマリ・オーディオ・ストリーム402A、402B、プレゼンテーション・グラフィックス(PG)ストリーム403A、403B、インタラクティブ・グラフィックス(IG)ストリーム404、セカンダリ・ビデオ・ストリーム405A、405B、及びセカンダリ・オーディオ・ストリーム406を含む。
プライマリ・ビデオ・ストリーム401は映画の主映像を表し、セカンダリ・ビデオ・ストリーム405A、405Bは副映像を表す。ここで、主映像とは、映画の本編の映像等、コンテンツの主要な映像を意味し、例えば画面全体に表示されるものを指す。一方、副映像とは、例えば主映像の中に小さな画面で表示される映像のように、ピクチャ・イン・ピクチャ方式を利用して主映像と同時に画面に表示される映像を意味する。各ビデオ・ストリームは、MPEG−2、MPEG−4 AVC、又はSMPTE VC−1等の動画圧縮符号化方式で符号化されている。
プライマリ・オーディオ・ストリーム402A、402Bは映画の主音声を表す。ここで、二つのプライマリ・オーディオ・ストリーム402A、402Bの間では言語が異なる。セカンダリ・オーディオ・ストリーム406は、その主音声とミキシングされるべき副音声を表す。各オーディオ・ストリームは、AC−3、ドルビー・デジタル・プラス(Dolby Digital Plus:「ドルビー・デジタル」は登録商標)、MLP、DTS(Digital Theater System:登録商標)、DTS−HD、又はリニアPCM(Pulse Code Modulation)等の方式で符号化されている。
各PGストリーム403A、403Bは映画の字幕を表す。ここで、二つのPGストリーム403A、403Bの間では字幕の言語が異なる。IGストリーム404は、表示装置103の画面131上に対話画面を構成するためのグラフィックス・ユーザインタフェース(GUI)用のグラフィックス部品及びその配置を表す。
エレメンタリ・ストリーム401−406はパケットID(PID)によって識別される。例えば、プライマリ・ビデオ・ストリーム401にはPIDとして16進数値0x1011が割り当てられる。プライマリ・オーディオ・ストリーム402A、402BにはPIDとして0x1100から0x111Fまでのいずれかの値が割り当てられる。PGストリーム403A、403BにはPIDとして0x1200から0x121Fまでのいずれかの値が割り当てられる。IGストリーム404にはPIDとして0x1400から0x141Fまでのいずれかの値が割り当てられる。セカンダリ・ビデオ・ストリーム405A、405BにはPIDとして0x1B00から0x1B1Fまでのいずれかの値が割り当てられる。セカンダリ・オーディオ・ストリーム406にはPIDとして0x1A00から0x1A1Fまでのいずれかの値が割り当てられる。
図5は、2D・AVストリーム・ファイル513内に多重化された各エレメンタリ・ストリーム501、504、507、510のパケットの配置を表す模式図である。まず、複数の映像フレーム501から成るビデオ・ストリーム501がPESパケット502の列に変換される。次に、各PESパケット502がTSパケット503に変換される。同様に、複数の音声フレーム504から成るオーディオ・ストリームがPESパケット505の列に変換された後、TSパケット506の列に変換される。PGストリーム507及びIGストリーム510も同様に、PESパケット508、511の列に変換された後、TSパケット509、512の列に変換される。最後に、これらのTSパケット503、506、509、512が1本のストリーム513に時分割で多重化される。こうして、2D・AVストリーム・ファイル513が構成される。
以下、ビデオ・ストリームを例に挙げて、図5に示されているエレメンタリ・ストリームのパケット化の詳細について説明する。
図6は、ビデオ・ストリーム600に含まれるピクチャ611−614、…、621−624を表示時間順に示す模式図である。各ピクチャ611−614、621−624は映像データの1フレーム又は1フィールドを表す。ビデオ・ストリーム600内では各ピクチャ611−614、621−624は、MPEG−2等、上記の動画圧縮符号化方式によって圧縮されている。
上記の符号化方式による各ピクチャの圧縮には、そのピクチャの空間方向及び時間方向での冗長性が利用される。ここで、空間方向での冗長性のみを利用するピクチャの符号化を「ピクチャ内符号化」という。一方、時間方向での冗長性、すなわち、表示順序の連続する複数のピクチャ間でのデータの近似性を利用するピクチャの符号化を「ピクチャ間予測符号化」という。ピクチャ間予測符号化では、まず、符号化対象のピクチャに対して、表示時間が前又は後である別のピクチャが参照ピクチャとして設定される。次に、符号化対象のピクチャとその参照ピクチャとの間で動きベクトルが検出され、それを利用して動き補償が行われる。更に、動き補償後のピクチャと符号化対象のピクチャとの間の差分値が求められ、その差分値から空間方向での冗長性が除去される。こうして、各ピクチャのデータ量が圧縮される。
図6を参照するに、ビデオ・ストリーム600に含まれるピクチャは一般に複数のGOP610、620に分割されている。ここで、「GOP」は、Iピクチャを先頭とする複数枚の連続するピクチャの列をいう。「Iピクチャ」は、ピクチャ内符号化によって圧縮されたピクチャをいう。GOPは一般に、Iピクチャの他にPピクチャ及びBピクチャを含む。「Pピクチャ」は、ピクチャ間予測符号化によって圧縮されたピクチャであって、表示時間がそれよりも前であるIピクチャ又は別のPピクチャが一枚、参照ピクチャとして利用されたものをいう。「Bピクチャ」は、ピクチャ間予測符号化によって圧縮されたピクチャであって、表示時間がそれよりも前又は後であるIピクチャ又はPピクチャが二枚、参照ピクチャとして利用されたものをいう。
図6に示されている例では各GOP610、620内のピクチャが以下の順で圧縮される。まず、各GOP610、620の先頭のピクチャがI0ピクチャ611、I7ピクチャ621に圧縮される。ここで、下付の数字は、各ピクチャに表示時間順に割り振られた通し番号を示す。次に、各GOP610、620の4番目のピクチャが、図6に矢印で示されているように、同じGOP内のI0ピクチャ611、I7ピクチャ621をそれぞれの参照ピクチャとして、P3ピクチャ614、P10ピクチャ624に圧縮される。続いて、第1GOP610の2、3番目のピクチャが、その前のI0ピクチャ611とその後のP3ピクチャ614とを参照ピクチャとして、それぞれ、B1ピクチャ612、B2ピクチャ613に圧縮される。同様に、第2GOP620の2、3番目のピクチャが、その前のI7ピクチャ621とその後のP10ピクチャ624とを参照ピクチャとして、それぞれ、B8ピクチャ622、B9ピクチャ623に圧縮される。第1GOP610のように、P3ピクチャ614に後続するピクチャが更に存在する場合、それらも同様に圧縮される。
このように、各GOPはその先頭にIピクチャを必ず含むので、GOPごとに各ピクチャが復号可能である。例えば第1GOP610では、まず、I0ピクチャ611が単独で復号される。次に、復号後のI0ピクチャ611を利用してP3ピクチャ614が復号される。続いて、復号後のI0ピクチャ611とP3ピクチャ614とを利用して、B1ピクチャ612及びB2ピクチャ613が復号される。こうして、ビデオ・ストリーム600はGOP単位でのランダム・アクセスが可能である。従って、ビデオ・ストリーム600の編集及び再生をGOP単位で実行することができる。
図7は、ビデオ・ストリーム700のデータ構造の詳細を示す模式図である。図7に示されているように、実際のビデオ・ストリーム700を構成する各GOP710、720では、図6に示されているGOPの実体610、620に加え、ヘッダが各ピクチャ611、612、…に個別に付与されている。このヘッダと各ピクチャの実体との組み合わせを「ビデオ・アクセスユニット」という。すなわち、各GOP710、720ではピクチャごとに一つのビデオ・アクセスユニット711、712、…が構成されている。各ピクチャはビデオ・アクセスユニット単位でビデオ・ストリーム700から読み出し可能である。
図7を参照するに、各GOP710、720の先頭のビデオ・アクセスユニット711はIピクチャ611の実体とヘッダとを含む。Iピクチャ611の実体は圧縮ピクチャ・データ711Eに格納されている。ヘッダは、アクセスユニット(AU)識別コード711A、シーケンス・ヘッダ711B、ピクチャ・ヘッダ711C、及び補足データ711Dを含む。AU識別コード711Aは、各ビデオ・アクセスユニットの先頭を示す所定の符号である。シーケンス・ヘッダ711BはGOPヘッダともいい、そのGOP710の全体で共通する情報、例えば、解像度、フレームレート、アスペクト比、及びビットレートを含む。ピクチャ・ヘッダ711Cは、符号化方式の種類等、Iピクチャ611の復号に必要な情報を含む。補足データ711Dは、Iピクチャ611の復号以外に関する付加的な情報、例えば、クローズド・キャプションを示す文字情報、及び、タイムコード情報を含む。各GOP710、720の二番目以降のビデオ・アクセスユニット712は、ヘッダがシーケンス・ヘッダ711Bを含まない点を除き、先頭のビデオ・アクセスユニット711と構造が等しい。ビデオ・アクセスユニット711、712の各部の具体的な内容は、ビデオ・ストリーム700の符号化方式ごとに異なる。例えばその符号化方式がMPEG−4 AVCであるとき、ビデオ・アクセスユニット711は複数のNALユニットから構成され、AU識別コード711A、シーケンス・ヘッダ711B、ピクチャ・ヘッダ711C、及び補足データ711Dはそれぞれ、AUデリミタ(Access Unit Delimiter)、SPS(シーケンス・パラメータ・セット)、PPS(ピクチャ・パラメータ・セット)、及びSEI(Supplemental Enhancement Information)に相当する。
図8は、PESパケット802へのビデオ・ストリーム801の格納方法の詳細を示す模式図である。ここで、実際のビデオ・ストリームでは、ピクチャが表示時間順ではなく符号化順に多重化されている。すなわち、図8に示されているように、ビデオ・ストリーム801を構成する各ビデオ・アクセスユニットには、先頭から順に、Iピクチャyy1、Pピクチャyy2、Bピクチャyy3、yy4、…が格納されている。Pピクチャyy2の符号化にはIピクチャyy1が参照ピクチャとして利用され、各Bピクチャyy3、yy4の符号化にはIピクチャyy1とPピクチャyy2とが参照ピクチャとして利用される。それらのビデオ・アクセスユニットが一つずつ、異なるPESパケット802に格納される。図8を参照するに、各PESパケット802はPESペイロード802PとPESヘッダ802Hとを含む。各ビデオ・アクセスユニットはPESペイロード802Pに格納される。一方、各PESヘッダ802Hは、同じPESパケット802のPESペイロード802Pに格納されたピクチャの表示時刻、すなわちPTS(Presentation Time−Stamp)、及び、そのピクチャの復号時刻、すなわちDTS(Decoding Time−Stamp)を含む。
図8に示されているビデオ・ストリーム801と同様に、図5に示されている他のエレメンタリ・ストリームも一連のPESパケットの各PESペイロードに格納される。更に、各PESパケットのPESヘッダは、そのPESパケットのPESペイロードに格納されたデータのPTSを含む。
図9は、図5に示されている2D・AVストリーム・ファイル513を構成するTSパケット901及びソースパケット902の形式を示す模式図である。TSパケット901は188Byte長のパケットであり、図9の(a)に示されているように、4Byte長のTSヘッダ901Hと184Byte長のTSペイロード901Pとから構成される。図5に示されている各エレメンタリ・ストリームが格納されたPESパケットはそれぞれ、一般に複数の部分に分割され、部分ごとに異なるTSパケット901のTSペイロード901Pに格納される。TSヘッダ901HはPIDを含む。そのPIDは、同じTSパケット901のTSペイロード901Pに格納されたデータからPESパケット802が復元されたとき、そのPESペイロード802Pに格納されたデータの属するエレメンタリ・ストリームを示す。2D・AVストリーム・ファイル513がBD−ROMディスク101に記録されるときは、図9の(b)に示されているように、各TSパケット901に4Byte長のヘッダ(TP_Extra_Header)902Hが更に付与される。そのヘッダ902Hは特にATS(Arrival_Time_Stamp)を含む。ATSは、そのTSパケット901が後述のシステム・ターゲット・デコーダ内のPIDフィルタへ転送され始めるべき時刻を示す。このヘッダ902HとTSパケット901との組み合わせから成る192Byte長のパケット902を「ソースパケット」という。このソースパケット902が2D・AVストリーム・ファイル513に書き込まれる。その結果、2D・AVストリーム・ファイル513には、図9の(c)に示されているように複数のソースパケット902が順番に並ぶ。各ソースパケット902には、2D・AVストリーム・ファイル513の先頭から順に、通し番号0、1、2、…が振られている。この通し番号を「SPN(ソースパケット・ナンバー)」という。
AVストリーム・ファイルに含まれるTSパケットの種類には、図4、5に示されているエレメンタリ・ストリームから変換されたもの以外にも、PAT(Program Association Table)、PMT(Program Map Table)、及びPCR(Program Clock Reference)がある。PCR、PMT、及びPATは欧州デジタル放送規格で定められたものであり、本来は、一つの番組を構成するパーシャル・トランスポート・ストリームを規定する役割を持つ。PCR、PMT、及びPATを利用することで、AVストリーム・ファイルも、そのパーシャル・トランスポート・ストリームと同様に規定される。具体的には、PATは、同じAVストリーム・ファイルに含まれるPMTのPIDを示す。PAT自身のPIDは0である。PMTは、同じAVストリーム・ファイルに含まれる、映像・音声・字幕等を表す各エレメンタリ・ストリームのPIDとその属性情報とを含む。PMTは更に、そのAVストリーム・ファイルに関する各種のディスクリプタ(記述子ともいう。)を含む。ディスクリプタには特に、そのAVストリーム・ファイルのコピーの許可/禁止を示すコピー・コントロール情報が含まれる。PCRは、そのパケットのATSに対応させるべきSTC(System Time Clock)の値を示す情報を含む。ここで、STCは、デコーダ内でPTS及びDTSの基準として利用されるクロックである。デコーダはPCRを利用して、ATSの基準であるATC(Arrival Time Clock)にSTCを同期させる。
図10は、PMT1010のデータ構造を示す模式図である。PMT1010は、先頭から順に、PMTヘッダ1001、複数のディスクリプタ1002、及び複数のストリーム情報1003を含む。PMTヘッダ1001は、そのPMT1010に含まれるデータの長さ等を示す。各ディスクリプタ1002は、そのPMT1010を含むAVストリーム・ファイルの全体に関するディスクリプタである。前述のコピー・コントロール情報はディスクリプタ1002の一つに含まれる。ストリーム情報1003は、そのAVストリーム・ファイルに含まれる各エレメンタリ・ストリームに関する情報であり、一つずつ異なるエレメンタリ・ストリームに割り当てられている。各ストリーム情報1003は、ストリーム・タイプ1003A、PID1003B、及びストリーム・ディスクリプタ1003Cを含む。ストリーム・タイプ1003Aは、そのエレメンタリ・ストリームの圧縮に利用されたコーデックの識別情報等を含む。PID1003Bは、そのエレメンタリ・ストリームのPIDを示す。ストリーム・ディスクリプタ1003Cは、そのエレメンタリ・ストリームの属性情報、例えばフレームレート及びアスペクト比を含む。
PCR、PMT、及びPATを利用することで、再生装置内のデコーダにAVストリーム・ファイルを、欧州デジタル放送規格に準拠のパーシャル・トランスポート・ストリームと同様に処理させることができる。それにより、BD−ROMディスク101用の再生装置と欧州デジタル放送規格に準拠の端末装置との間の互換性を確保することができる。
≪2Dクリップ情報ファイル≫
図11は、第1クリップ情報ファイル(00001.clpi)244Aのうち、2Dクリップ情報ファイルとして利用される部分のデータ構造を示す模式図である。2Dクリップ情報ファイルは一般にこのデータ構造を持つ。図11を参照するに、第1クリップ情報ファイル244Aは、クリップ情報1101、ストリーム属性情報1102、及びエントリ・マップ1103を含む。
クリップ情報1101は、図11に示されているように、システムレート1101A、再生開始時刻1101B、及び再生終了時刻1101Cを含む。システムレート1101Aは、第1AVストリーム・ファイル245A内の“TSパケット”が再生装置102内でリード・バッファからシステム・ターゲット・デコーダへ転送されるときの転送速度の最高値を示す。尚、リード・バッファとシステム・ターゲット・デコーダについては後述する。第1AVストリーム・ファイル245Aでは、TSパケットの転送速度がシステムレート以下に抑えられるように、ソースパケットのATSの間隔が設定されている。再生開始時刻1101Bは、第1AVストリーム・ファイル245Aの先頭のビデオ・アクセスユニットのPTS、例えば先頭の映像フレームのPTSを示す。再生終了時刻1101Cは、第1AVストリーム・ファイル245Aの終端のビデオ・アクセスユニットのPTSから所定量遅れたSTCの値、例えば終端の映像フレームのPTSに1フレーム当たりの再生時間を加えた値を示す。
図12は、ストリーム属性情報1102のデータ構造を示す模式図である。ストリーム属性情報1102は、図12に示されているように、第1AVストリーム・ファイル245Aに含まれる各エレメンタリ・ストリームのPID1201とその属性情報1202との間の対応表である。ここで、属性情報1202は、ビデオ・ストリーム、オーディオ・ストリーム、PGストリーム、及びIGストリームのそれぞれで異なる。例えば、プライマリ・ビデオ・ストリームのPID0x1011に対応付けられた属性情報1210は、そのビデオ・ストリームの圧縮に利用されたコーデックの種類1211、そのビデオ・ストリームを構成する各ピクチャの解像度1212、アスペクト比1213、及びフレームレート1214を含む。一方、プライマリ・オーディオ・ストリームのPID0x1101に対応付けられた属性情報1220は、そのオーディオ・ストリームの圧縮に利用されたコーデックの種類1221、そのオーディオ・ストリームに含まれるチャンネル数1222、言語1223、及びサンプリング周波数1224を含む。これらの属性情報1202は再生装置102により、デコーダの初期化に利用される。
図13の(a)は、エントリ・マップ1103のデータ構造を示す模式図である。エントリ・マップ1103は、図13の(a)に示されているように、第1AVストリーム・ファイル245A内のビデオ・ストリーム別に割り当てられたテーブル1300を含む。各テーブル1300にはその割り当て先のビデオ・ストリームのPIDが対応付けられている。各テーブル1300はエントリ・マップ・ヘッダ1301と複数のエントリ・ポイント1302とを含む。エントリ・マップ・ヘッダ1301は、そのテーブル1300に対応付けられたPIDと、そのテーブル1300に含まれるエントリ・ポイント1302の総数とを含む。エントリ・ポイント1302は、PTS1303とSPN1304との対を個別に異なるエントリ・ポイントID(EP_ID)1305に対応付ける。PTS1303は、各部分1300の割り当て先のビデオ・ストリームに含まれるいずれかのIピクチャのPTSに等しい。SPN1304は、そのIピクチャが格納されたソースパケット群の先頭のSPNに等しい。
図13の(b)は、第1AVストリーム・ファイル245Aに含まれるソースパケットのうち、エントリ・マップ1103によって各EP_ID1305に対応付けられているものを示す模式図である。再生装置102はエントリ・マップ1103を利用して、ビデオ・ストリームからの映像の再生期間中、任意の時点のシーンに対応する第1AVストリーム・ファイル245A内のSPNを特定できる。例えば、早送り再生及び巻戻し再生等の特殊再生では、再生装置102はエントリ・マップ1103から、各EP_ID1305に対応付けられたSPN1304のソースパケットを特定し、それらを選択的に抽出して復号する。それにより、Iピクチャが選択的に再生される。こうして、再生装置102は、第1AVストリーム・ファイル245A自体を解析することなく、特殊再生を効率的に処理できる。
≪2Dプレイリスト・ファイル≫
図14は、2Dプレイリスト・ファイル1400のデータ構造を示す模式図である。図2に示されている第1プレイリスト・ファイル243Aは、このデータ構造を持つ。2Dプレイリスト・ファイル1400は、2D・AVストリーム・ファイル1404の再生経路、すなわちその2D・AVストリーム・ファイル1404の復号されるべき部分P1、P2、P3、及びそれらの復号順を規定する。2Dプレイリスト・ファイル1400は特に各部分P1、P2、P3の範囲をPTSで規定する。規定されたPTSは、その2D・AVストリーム・ファイル1404に対応付けられたクリップ情報ファイル1403を利用してそのAVストリーム・ファイル1404内のSPNに変換される。その結果、各部分P1、P2、P3の範囲がSPNで特定される。尚、図14とは異なり、部分P1、P2、P3のいずれかが2D・AVストリーム・ファイル1404とは別のAVストリーム・ファイルの一部であってもよい。
図14に示されているように、2Dプレイリスト・ファイル1400はプレイアイテム(PI)情報1401を一つ以上含む。各プレイアイテム情報1401は固有のプレイアイテムIDで識別される。各プレイアイテム情報1401は、再生経路内の異なる再生区間を一対のPTSで規定する。例えば、第1プレイアイテム情報PI#1は第1再生区間を、その開始時刻を表すPTST1と、終了時刻を表すPTST2との対で規定する。開始時刻T1と終了時刻T2とはそれぞれ、2D・クリップ情報ファイル1403を利用して2D・AVストリーム・ファイル1404内のSPNA1、A2に変換される。その結果、その再生区間で復号されるべき部分P1の範囲が、その両端のSPNA1、A2で特定される。図14に示されているPI#1−3のように、複数のプレイアイテム情報1401が2Dプレイリスト・ファイル1400内に記述されているとき、その記述の順序が、対応する再生区間の再生経路内での順序を表す。ここで、各プレイアイテム情報1401によって規定される再生区間をつなぎ合わせた一連の再生経路を「メインパス」という。更に、メインパスを規定する一連のプレイアイテム情報PI#1−3も「メインパス」1405ということがある。
2Dプレイリスト・ファイル1400は更にエントリ・マーク1402を含む。エントリ・マーク1402は、メインパス1405のうち、実際に再生が開始されるべき時点を示す。エントリ・マーク1402は、プレイアイテム情報1401で規定される再生区間内に付与することができる。例えば、図14に示されているように、一つのプレイアイテム情報PI#1に対して複数のエントリ・マーク1402が設定されてもよい。エントリ・マーク1402は特に、頭出し再生において、その再生開始位置の検索に利用される。例えば、2Dプレイリスト・ファイル1400が映画タイトルの再生経路を規定するとき、エントリ・マーク1402は各チャプタの先頭に付与される。それにより、再生装置102はその映画タイトルをチャプタごとに再生できる。
図15は、プレイアイテム情報1500のデータ構造を示す模式図である。図15を参照するに、プレイアイテム情報1500は、参照クリップ情報1501、再生開始時刻1502、再生終了時刻1503、コネクション・コンディション1504、及びストリーム選択テーブル1505を含む。参照クリップ情報1501は、PTSからSPNへの変換に必要なクリップ情報ファイルを識別するための情報である。再生開始時刻1502と再生終了時刻1503とは、AVストリーム・ファイルの復号されるべき部分の先頭と末尾との各PTSを示す。再生装置102は、参照クリップ情報1501の示すクリップ情報ファイルからそのエントリ・マップを参照し、再生開始時刻1502及び再生終了時刻1503のそれぞれに対応するSPNを取得する。それにより、AVストリーム・ファイルから読み出されるべき部分を特定し、その部分に対して再生処理を行う。
コネクション・コンディション1504は、再生開始時刻1502と再生終了時刻1503とによって規定された再生区間での映像を、メインパス上で一つ前のプレイアイテム情報によって規定された再生区間での映像に接続するときの条件を規定する。コネクション・コンディション1504には、例えば「1」、「5」、「6」の三種類がある。コネクション・コンディション1504が「1」であるとき、そのプレイアイテム情報によって規定されるAVストリーム・ファイルの部分から再生される映像は、直前のプレイアイテム情報によって規定されるAVストリーム・ファイルの部分から再生される映像とは、必ずしもシームレスに接続されなくてもよい。一方、コネクション・コンディション1504が「5」又は「6」であるとき、それら両方の映像が必ずシームレスに接続されなければならない。
図16は、コネクション・コンディション1504が「5」又は「6」であるときに接続対象の各プレイアイテム情報によって規定される再生区間の間の関係を示す模式図である。コネクション・コンディション1504が「5」であるとき、図16の(a)に示されているように、2つのプレイアイテム情報PI#1、PI#2の間でSTCが途切れていても良い。すなわち、メインパス上で前に位置する第1プレイアイテム情報PI#1が規定するAVストリーム・ファイルの第1部分1601の終端のPTSTEと、後に位置する第2プレイアイテム情報PI#2が規定するAVストリーム・ファイルの第2部分1602の先頭のPTSTSとは不連続であってもよい。但し、いくつかの制約条件が満たされねばならない。例えば、第1部分1601に続けて第2部分1602をデコーダに供給したときでも、そのデコーダが復号処理をスムーズに継続できるように、各部分1601、1602が作成されていなければならない。更に、第1部分1601に含まれるオーディオ・ストリームの終端フレームを、第2部分1602に含まれるオーディオ・ストリームの先頭フレームと重複させなければならない。一方、コネクション・コンディション1504が「6」であるとき、図16の(b)に示されているように、第1部分1601と第2部分1602とは、デコーダの復号処理上、一連の部分として扱えるものでなければならない。すなわち、第1部分1601と第2部分1602との間ではSTCとATCとがいずれも連続でなければならない。
図15を再び参照するに、ストリーム選択テーブル1505は、再生開始時刻1502から再生終了時刻1503までの間に再生装置102内のデコーダによってAVストリーム・ファイルの中から選択可能なエレメンタリ・ストリームのリストを表す。ストリーム選択テーブル1505は特に複数のストリーム・エントリ1509を含む。各ストリーム・エントリ1509は、ストリーム選択番号1506、ストリーム・パス情報1507、及びストリーム識別情報1508を含む。ストリーム選択番号1506は各ストリーム・エントリ1509の通し番号であり、再生装置102によってエレメンタリ・ストリームの識別に利用される。ストリーム・パス情報1507は、選択対象のエレメンタリ・ストリームが属するAVストリーム・ファイルを示す情報である。例えば、ストリーム・パス情報1507が“メインパス”を示すとき、そのAVストリーム・ファイルは、参照クリップ情報1501の示すクリップ情報ファイルに対応するものである。一方、ストリーム・パス情報1507が“サブパスID=1”を示すとき、選択対象のエレメンタリ・ストリームが属するAVストリーム・ファイルは、サブパスID=1のサブパスに含まれるサブプレイアイテム情報の一つが規定するものである。ここで、そのサブプレイアイテム情報は、それの規定する再生区間が再生開始時刻1502から再生終了時刻1503までの間に含まれるものである。尚、サブパス及びサブプレイアイテム情報については次節で説明する。ストリーム識別情報1508は、ストリーム・パス情報1507によって特定されるAVストリーム・ファイルに多重化されているエレメンタリ・ストリームのPIDを示す。このPIDの示すエレメンタリ・ストリームが再生開始時刻1502から再生終了時刻1503までの間に選択可能である。尚、図15には示されていないが、ストリーム・エントリ1509には各エレメンタリ・ストリームの属性情報も記録されている。例えば、オーディオ・ストリーム、PGストリーム、及びIGストリームの各属性情報は言語の種類を示す。
図17は、再生経路がサブパスを含むときの2Dプレイリスト・ファイル1700のデータ構造を示す模式図である。2Dプレイリスト・ファイル1700は、図17に示されているように、メインパス1701に加えてサブパスを一つ以上規定してもよい。各サブパス1702、1703は、メインパス1701と並列な再生経路を示す。サブパス1702、1703は、2Dプレイリスト・ファイル1700に登録された順に通し番号が振られている。その通し番号はサブパスIDとして各サブパスの識別に利用される。メインパス1701が、各プレイアイテム情報#1−3の規定する再生区間をつなぎ合わせた一連の再生経路であるように、各サブパス1702、1703は、各サブプレイアイテム情報#1−3の規定する再生区間をつなぎ合わせた一連の再生経路である。サブプレイアイテム情報1702Aのデータ構造は、図15に示されているプレイアイテム情報1500のデータ構造と同様である。すなわち、各サブプレイアイテム情報1702Aは、参照クリップ情報、再生開始時刻、及び再生終了時刻を含む。サブプレイアイテム情報の再生開始時刻と再生終了時刻とはメインパス1701の再生時間と同じ時間軸で表される。例えば、プレイアイテム情報#2のストリーム選択テーブル1505に含まれるストリーム・エントリ1509において、ストリーム・パス情報1507が“サブパスID=0”を示し、ストリーム識別情報1508がPGストリーム#1を示すときを想定する。そのとき、サブパスID=0のサブパス1702では、プレイアイテム情報#2の再生区間に、サブプレイアイテム情報#2の参照クリップ情報が示すクリップ情報ファイルに対応するAVストリーム・ファイルの中から、PGストリーム#1が復号対象として選択される。
サブプレイアイテム情報は更に、SPコネクション・コンディションというフィールドを含む。SPコネクション・コンディションは、プレイアイテム情報のコネクション・コンディションと同じ意味を持つ。すなわち、SPコネクション・コンディションが「5」又は「6」であるとき、隣接する2つのサブプレイアイテム情報によって規定されるAVストリーム・ファイルの各部分は、コネクション・コンディションが「5」又は「6」であるときの上記の条件と同様な条件を満たされなければならない。
<2D再生装置の構成>
以下、再生装置102がBD−ROMディスク101から上記の2D映像コンテンツを再生するために必要な構成、すなわち2D再生装置として必要な構成について説明する。
図18は、2D再生装置1800の機能ブロック図である。図18を参照するに、2D再生装置1800は、BD−ROMドライブ1801、再生部1800A、及び制御部1800Bを含む。再生部1800Aは、リード・バッファ1802、システム・ターゲット・デコーダ1803、及びプレーン加算部1810を含む。制御部1800Bは、動的シナリオ・メモリ1804、静的シナリオ・メモリ1805、プログラム実行部1806、再生制御部1807、プレーヤ変数記憶部1808、及びユーザイベント処理部1809を含む。ここで、再生部1800Aと制御部1800Bとは互いに異なる集積回路に実装されている。その他に、両者が単一の集積回路に統合されていてもよい。
BD−ROMドライブ1801は、内部にBD−ROMディスク101が挿入されたとき、そのディスク101にレーザ光を照射してその反射光の変化を検出する。更に、その反射光の光量の変化から、ディスク101に記録されたデータを読み取る。具体的には、BD−ROMドライブ1801は光ピックアップ、すなわち光学ヘッドを備えている。その光学ヘッドは、半導体レーザ、コリメータ・レンズ、ビーム・スプリッタ、対物レンズ、集光レンズ、及び光検出器を含む。半導体レーザから出射された光ビームは、コリメータ・レンズ、ビーム・スプリッタ、及び対物レンズを順に通って、BD−ROMディスク101の記録層に集められる。集められた光ビームはその記録層で反射/回折される。その反射/回折光は、対物レンズ、ビーム・スプリッタ、及び集光レンズを通って光検出器に集められる。光検出器は、その集光量に応じたレベルの再生信号を生成する。更に、その再生信号からデータが復調される。
BD−ROMドライブ1801は、再生制御部1807からの要求に従ってBD−ROMディスク101からデータを読み出す。読み出されたデータのうち、AVストリーム・ファイルはリード・バッファ1802へ転送され、インデックス・ファイル、ムービーオブジェクト・ファイル、及びBD−Jオブジェクト・ファイル等の動的シナリオ情報は動的シナリオ・メモリ1804へ転送され、プレイリスト・ファイル及びクリップ情報ファイル、すなわち静的シナリオ情報は静的シナリオ・メモリ1805へ転送される。
リード・バッファ1802、動的シナリオ・メモリ1804、及び静的シナリオ・メモリ1805はいずれもバッファ・メモリである。リード・バッファ1802としては再生部1800A内のメモリ素子が利用され、動的シナリオ・メモリ1804及び静的シナリオ・メモリ1805としては制御部1800B内のメモリ素子が利用される。その他に、それらのバッファ・メモリ1802、1804、1805として、単一のメモリ素子の異なる領域が利用されてもよい。リード・バッファ1802はAVストリーム・ファイルを格納し、動的シナリオ・メモリ1804は動的シナリオ情報を格納し、静的シナリオ・メモリ1805は静的シナリオ情報を格納する。
システム・ターゲット・デコーダ1803は、リード・バッファ1802からAVストリーム・ファイルをソースパケット単位で読み出して多重分離処理を行い、更に分離された各エレメンタリ・ストリームに対して復号処理を行う。ここで、各エレメンタリ・ストリームの復号に必要な情報、例えばコーデックの種類及びストリームの属性は予め、再生制御部1807からシステム・ターゲット・デコーダ1803へ転送されている。システム・ターゲット・デコーダ1803は更に、復号後のプライマリ・ビデオ・ストリーム、セカンダリ・ビデオ・ストリーム、IGストリーム、及びPGストリームをそれぞれ、ビデオ・アクセスユニットごとに、主映像プレーン・データ、副映像プレーン・データ、IGプレーン・データ、及びPGプレーン・データとして送出する。一方、システム・ターゲット・デコーダ1803は、復号後のプライマリ・オーディオ・ストリームとセカンダリ・オーディオ・ストリームとをミキシングして表示装置103の内蔵スピーカ103A等の音声出力装置へ送出する。その他に、システム・ターゲット・デコーダ1803はプログラム実行部1806からグラフィックス・データを受信する。そのグラフィックス・データは、GUI用のメニュー等のグラフィックスを画面に表示するためのものであり、JPEG又はPNG等のラスタデータで表現されている。システム・ターゲット・デコーダ1803はそのグラフィックス・データを処理してイメージ・プレーン・データとして送出する。尚、システム・ターゲット・デコーダ1803の詳細については後述する。
ユーザイベント処理部1809は、リモコン105又は再生装置102のフロントパネルを通してユーザの操作を検出し、その操作内容に応じて、プログラム実行部1806又は再生制御部1807に処理を依頼する。例えばユーザがリモコン105のボタンを押下してポップアップ・メニューの表示を指示したとき、ユーザイベント処理部1809はその押下を検出してそのボタンを識別する。ユーザイベント処理部1809は更に、プログラム実行部1806に、そのボタンに対応するコマンドの実行、すなわちポップアップ・メニューの表示処理を依頼する。一方、例えばユーザがリモコン105の早送り又は巻戻しボタンを押下したとき、ユーザイベント処理部1809はその押下を検出してそのボタンを識別する。ユーザイベント処理部1809は更に、再生制御部1807に、現在再生中のプレイリストの早送り又は巻戻し処理を依頼する。
再生制御部1807は、AVストリーム・ファイル及びインデックス・ファイル等、各種のデータをBD−ROMディスク101から、リード・バッファ1802、動的シナリオ・メモリ1804、及び静的シナリオ・メモリ1805へ転送する処理を制御する。その制御には、図2に示されているディレクトリ/ファイル構造204を管理するファイルシステムが利用される。すなわち、再生制御部1807はファイル・オープン用のシステムコールを利用して、BD−ROMドライブ1801に各種のファイルを各バッファ・メモリ1802、1804、1805へ転送させる。ここで、ファイル・オープンとは次の一連の処理をいう。まず、システムコールによってファイルシステムに検索対象のファイル名が与えられ、そのファイル名がディレクトリ/ファイル構造204から検索される。その検索に成功したとき、再生制御部1807内のメモリには、まず、転送対象のファイルのファイル・エントリが転送され、そのメモリ内にFCB(File Control Block)が生成される。その後、転送対象のファイルのファイル・ハンドルがファイルシステムから再生制御部1807に返される。以後、再生制御部1807はそのファイル・ハンドルをBD−ROMドライブ1801に提示することにより、BD−ROMドライブ1801にその転送対象のファイルをBD−ROMディスク101から各バッファメモリ1802、1804、1805へ転送させることができる。
再生制御部1807は、BD−ROMドライブ1801とシステム・ターゲット・デコーダ1803とを制御して、AVストリーム・ファイルから映像データと音声データとを復号させる。具体的には、再生制御部1807はまず、プログラム実行部1806からの命令、又はユーザイベント処理部1809からの依頼に応じて、静的シナリオ・メモリ1805からプレイリスト・ファイルを読み出してその内容を解釈する。再生制御部1807は次に、その解釈された内容、特に再生経路に従って、BD−ROMドライブ1801とシステム・ターゲット・デコーダ1803とに再生対象のAVストリーム・ファイルを指定して、その読み出し処理及び復号処理を指示する。このようなプレイリスト・ファイルに基づく再生処理を「プレイリスト再生」という。その他に、再生制御部1807は、静的シナリオ情報を利用してプレーヤ変数記憶部1808に各種のプレーヤ変数を設定する。再生制御部1807は更に、それらのプレーヤ変数を参照して、システム・ターゲット・デコーダ1803に復号対象のエレメンタリ・ストリームを指定し、かつ、各エレメンタリ・ストリームの復号に必要な情報を提供する。
プレーヤ変数記憶部1808は、プレーヤ変数を記憶するためのレジスタ群である。プレーヤ変数の種類にはシステム・パラメータ(SPRM)と汎用のパラメータ(GPRM)とがある。SPRMは再生装置102の状態を示す。図19はSPRMの一覧表である。各SPRMには通し番号1901が振られ、各通し番号1901に変数値1802が個別に対応付けられている。主なSPRMの内容は以下のとおりである。ここで、括弧内の数字は通し番号1901を示す。
SPRM(0) : 言語コード
SPRM(1) : プライマリ・オーディオ・ストリーム番号
SPRM(2) : 字幕ストリーム番号
SPRM(3) : アングル番号
SPRM(4) : タイトル番号
SPRM(5) : チャプタ番号
SPRM(6) : プログラム番号
SPRM(7) : セル番号
SPRM(8) : 選択キー情報
SPRM(9) : ナビゲーション・タイマー
SPRM(10) : 再生時刻情報
SPRM(11) : カラオケ用ミキシングモード
SPRM(12) : パレンタル用国情報
SPRM(13) : パレンタル・レベル
SPRM(14) : プレーヤ設定値(ビデオ)
SPRM(15) : プレーヤ設定値(オーディオ)
SPRM(16) : オーディオ・ストリーム用言語コード
SPRM(17) : オーディオ・ストリーム用言語コード(拡張)
SPRM(18) : 字幕ストリーム用言語コード
SPRM(19) : 字幕ストリーム用言語コード(拡張)
SPRM(20) : プレーヤ・リージョン・コード
SPRM(21) : セカンダリ・ビデオ・ストリーム番号
SPRM(22) : セカンダリ・オーディオ・ストリーム番号
SPRM(23) : 再生状態
SPRM(24) : 予備
SPRM(25) : 予備
SPRM(26) : 予備
SPRM(27) : 予備
SPRM(28) : 予備
SPRM(29) : 予備
SPRM(30) : 予備
SPRM(31) : 予備
SPRM(10)は、復号処理中のピクチャのPTSを示し、そのピクチャが復号されて主映像プレーン・メモリに書き込まれる度に更新される。従って、SPRM(10)を参照すれば、現在の再生時点を知ることができる。
SPRM(16)のオーディオ・ストリーム用言語コード、及びSPRM(18)の字幕ストリーム用言語コードは、再生装置102のデフォルトの言語コードを示す。それらは再生装置102のOSD(オン・スクリーン・ディスプレイ)等を利用してユーザに変更させることもでき、プログラム実行部1806を通じてアプリケーション・プログラムに変更させることもできる。例えばSPRM(16)が「英語」を示しているとき、再生制御部1807はプレイリスト再生処理において、まず、プレイアイテム情報内のストリーム選択テーブルから、「英語」の言語コードを含むストリーム・エントリを検索する。再生制御部1807は次に、そのストリーム・エントリのストリーム識別情報からPIDを抽出してシステム・ターゲット・デコーダ1803に渡す。それにより、そのPIDのオーディオ・ストリームがシステム・ターゲット・デコーダ1803によって選択され、復号される。これらの処理は、ムービーオブジェクト・ファイル又はBD−Jオブジェクト・ファイルを利用して再生制御部1807に実行させることができる。
再生制御部1807は再生処理中、再生状態の変化に応じてプレーヤ変数を更新する。再生制御部1807は特に、SPRM(1)、SPRM(2)、SPRM(21)、及びSPRM(22)を更新する。それらは順に、処理中のオーディオ・ストリーム、字幕ストリーム、セカンダリ・ビデオ・ストリーム、及びセカンダリ・オーディオ・ストリームの各ストリーム選択番号を示す。例えば、プログラム実行部1806によってSPRM(1)が変更されたときを想定する。再生制御部1807はそのとき、まず、現時点で再生処理中のプレイアイテム情報内のストリーム選択テーブルから、変更後のSPRM(1)の示すストリーム選択番号に等しいストリーム選択番号を含むストリーム・エントリを検索する。再生制御部1807は次に、そのストリーム・エントリ内のストリーム識別情報からPIDを抽出してシステム・ターゲット・デコーダ1803に渡す。それにより、そのPIDのオーディオ・ストリームがシステム・ターゲット・デコーダ1803によって選択され、復号される。こうして、再生対象のオーディオ・ストリームが切り換えられる。同様に、再生対象の字幕及びセカンダリ・ビデオ・ストリームを切り換えることもできる。
プログラム実行部1806はプロセッサであり、ムービーオブジェクト・ファイル及びBD−Jオブジェクト・ファイルに格納されたプログラムを実行する。プログラム実行部1806は各プログラムに従って、特に次のような制御を行う:(1)再生制御部1807に対してプレイリスト再生処理を命令する;(2)メニュー用又はゲーム用のグラフィックス・データをPNG又はJPEGのラスタデータとして生成し、それをシステム・ターゲット・デコーダ1803へ転送して他の映像データに合成させる。これらの制御の具体的な内容はプログラムの設計を通じて比較的自由に設計することができる。すなわち、それらの制御内容は、BD−ROMディスク101のオーサリング工程のうち、ムービーオブジェクト・ファイル及びBD−Jオブジェクト・ファイルのプログラミング工程によって決まる。
プレーン加算部1810は、システム・ターゲット・デコーダ1803から、主映像プレーン・データ、副映像プレーン・データ、IGプレーン・データ、PGプレーン・データ、及びイメージ・プレーン・データを受信し、それらを互いに重畳して一つの映像フレーム又はフィールドに合成する。合成後の映像データは表示装置103へ送出され、その画面に表示される。
≪システム・ターゲット・デコーダ≫
図20は、システム・ターゲット・デコーダ1803の機能ブロック図である。図20を参照するに、システム・ターゲット・デコーダ1803は、ソース・デパケタイザ2010、ATCカウンタ2020、第1の27MHzクロック2030、PIDフィルタ2040、STCカウンタ(STC1)2050、第2の27MHzクロック2060、主映像デコーダ2070、副映像デコーダ2071、PGデコーダ2072、IGデコーダ2073、主音声デコーダ2074、副音声デコーダ2075、イメージ・プロセッサ2080、主映像プレーン・メモリ2090、副映像プレーン・メモリ2091、PGプレーン・メモリ2092、IGプレーン・メモリ2093、イメージ・プレーン・メモリ2094、及び音声ミキサ2095を含む。
ソース・デパケタイザ2010はリード・バッファ1802からソースパケットを読み出し、その中からTSパケットを取り出してPIDフィルタ2040へ送出する。ソース・デパケタイザ2010は更に、その送出の時刻を各ソースパケットのATSに応じて調整する。具体的には、ソース・デパケタイザ2010は、まず、ATCカウンタ2020が生成するATCの値を監視する。ここで、ATCの値はATCカウンタ2020により、第1の27MHzクロック2030のクロック信号のパルスに応じてインクリメントされる。ソース・デパケタイザ2010は次に、ATCの値がソースパケットのATSと一致した瞬間、そのソースパケットから取り出されたTSパケットを記録速度RTS1でPIDフィルタ2040へ転送する。
PIDフィルタ2040はまず、ソース・デパケタイザ2010から送出されたTSパケットのうち、そのPIDが、再生制御部1807から予め指定されたPIDに一致するものを選択する。PIDフィルタ2040は次に、選択されたTSパケットを、そのPIDに応じて各デコーダ2070−2075へ転送する。例えばPIDが0x1011であるとき、そのTSパケットは主映像デコーダ2070へ転送される。その他に、PIDが、0x1B00−0x1B1F、0x1100−0x111F、0x1A00−0x1A1F、0x1200−0x121F、及び、0x1400−0x141Fの各範囲に属するとき、対応するTSパケットはそれぞれ、副映像デコーダ2071、主音声デコーダ2074、副音声デコーダ2075、PGデコーダ2072、及びIGデコーダ2073へ転送される。
PIDフィルタ2040は更に、各TSパケットのPIDを利用して、そのTSパケットの中からPCRを検出する。PIDフィルタ2040はそのとき、STCカウンタ2050の値を所定値に設定する。ここで、STCカウンタ2050の値は第2の27MHzクロック2060のクロック信号のパルスに応じてインクリメントされる。また、STCカウンタ2050に設定されるべき値は予め、再生制御部1807からPIDフィルタ2040に指示されている。各デコーダ2070−2075はSTCカウンタ2050の値をSTCとして利用する。すなわち、PIDフィルタ2040から送出されたTSパケットに対する復号処理の時期を、そのTSパケットの示すPTS又はDTSに合わせる。
主映像デコーダ2070は、図20に示されているように、TB(Transport Stream Buffer)2001、MB(Multiplexing Buffer)2002、EB(Elementary Stream Buffer)2003、圧縮映像デコーダ(Dec)2004、及びDPB(Decoded Picture Buffer)2005を含む。TB2001、MB2002、EB2003、及び、DPB2005はいずれもバッファメモリであり、それぞれ主映像デコーダ2070に内蔵のメモリ素子の一領域を利用する。その他に、それらのいずれか又は全てが異なるメモリ素子に分離されていてもよい。TB2001は、PIDフィルタ2040から受信されたTSパケットをそのまま蓄積する。MB2002は、TB2001に蓄積されたTSパケットから復元されたPESパケットを蓄積する。尚、TB2001からMB2002へTSパケットが転送されるとき、そのTSパケットからTSヘッダが除去される。EB2003は、PESパケットから、符号化されたビデオ・アクセスユニットを抽出して格納する。そのビデオ・アクセスユニットには、圧縮ピクチャ、すなわち、Iピクチャ、Bピクチャ、及び、Pピクチャが格納されている。尚、MB2002からEB2003へデータが転送されるとき、そのPESパケットからPESヘッダが除去される。圧縮映像デコーダ2004は、MB2002内の各ビデオ・アクセスユニットを、元のTSパケットの示すDTSの時刻に復号する。ここで、そのビデオ・アクセスユニット内に格納された圧縮ピクチャの圧縮符号化方式、例えば、MPEG−2、MPEG−4 AVC、及びVC1、並びにストリーム属性に応じ、圧縮映像デコーダ2004は復号方法を切り換える。圧縮映像デコーダ2004は更に、復号後のピクチャ、すなわち映像フレーム又はフィールドをDPB2005へ転送する。DPB2005は復号後のピクチャを一時的に保持する。圧縮映像デコーダ2004は、Pピクチャ及びBピクチャを復号するとき、DPB2005に保持されている復号後のピクチャを参照する。DPB2005は更に、保持している各ピクチャを、元のTSパケットの示すPTSの時刻に主映像プレーン・メモリ2090へ書き込む。
副映像デコーダ2071は、主映像デコーダ2070と同様の構成を含む。副映像デコーダ2071はまず、PIDフィルタ2040から受信されたセカンダリ・ビデオ・ストリームのTSパケットを非圧縮のピクチャに復号する。副映像デコーダ2071は次に、そのTSパケットの示すPTSの時刻に非圧縮のピクチャを副映像プレーン・メモリ2091へ書き込む。
PGデコーダ2072は、PIDフィルタ2040から受信されたTSパケットを非圧縮のグラフィックス・データに復号し、そのTSパケットの示すPTSの時刻にPGプレーン・メモリ2092へ書き込む。
IGデコーダ2073は、PIDフィルタ2040から受信されたTSパケットを非圧縮のグラフィックス・データに復号し、そのTSパケットの示すPTSの時刻にIGプレーン・メモリ2093へ書き込む。
主音声デコーダ2074はまず、PIDフィルタ2040から受信されたTSパケットを内蔵のバッファに蓄える。主音声デコーダ2074は次に、そのバッファ内の各TSパケットからTSヘッダとPESヘッダとを除去し、残りのデータを非圧縮のLPCM音声データに復号する。主音声デコーダ2074は更にその音声データを、元のTSパケットの示すPTSの時刻に音声ミキサ2095へ送出する。主音声デコーダ2074は、TSパケットに含まれるプライマリ・オーディオ・ストリームの圧縮符号化方式、例えばAC−3又はDTS、及びストリーム属性に応じて、圧縮音声データの復号方法を切り換える。
副音声デコーダ2075は、主音声デコーダ2074と同様の構成を含む。副音声デコーダ2075はまず、PIDフィルタ2040から受信されたセカンダリ・オーディオ・ストリームのTSパケットを非圧縮のLPCM音声データに復号する。副音声デコーダ2075は次に、そのTSパケットの示すPTSの時刻に非圧縮のLPCM音声データを音声ミキサ2095へ送出する。副音声デコーダ2075は、TSパケットに含まれるセカンダリ・オーディオ・ストリームの圧縮符号化方式、例えばドルビー・デジタル・プラス、DTS−HD LBR、及びストリーム属性に応じて、圧縮音声データの復号方法を切り換える。
音声ミキサ2095は、主音声デコーダ2074と副音声デコーダ2075とのそれぞれから受信される非圧縮の音声データを用いてミキシング(音の重ね合わせ)を行う。音声ミキサ2095は更に、そのミキシングで得られた合成音を、表示装置103の内蔵スピーカ103A等へ送出する。
イメージ・プロセッサ2080は、プログラム実行部1806からグラフィックス・データ、すなわちPNG又はJPEGのラスタデータを受信する。イメージ・プロセッサ2080はそのとき、そのグラフィックス・データを適切に処理してイメージ・プレーン・メモリ2094へ書き込む。
<2D映像を表すAVストリーム・ファイルのディスク上での物理的な配置>
2D映像を表すAVストリーム・ファイルがBD−ROMディスク101上に記録されるとき、その2D映像がシームレスに再生されるように、そのAVストリーム・ファイルのそのディスク101上での物理的な配置が設計されなければならない。そのような物理的な配置について、以下、説明する。ここで、シームレスな再生とは、AVストリーム・ファイルから映像及び音声を、途切れさせることなく滑らかに再生することをいう。
AVストリーム・ファイルは、BD−ROMディスク101上にエクステントの集合として記録されている。ここで、一つのエクステント内では論理アドレスが連続している。一方、前述のとおり、BD−ROMディスク101では論理アドレスが物理アドレスと実質的に等しい。従って、一つのエクステント内では物理アドレスも実質上連続している。それ故、BD−ROMドライブ1801は一つのエクステントを、光ピックアップにシークを行わせることなく連続して読み出すことができる。
各エクステントは一般に、図2に示されているボリューム領域202B内で物理的に連続する複数のセクタに記録されている。それらのセクタは、STREAMディレクトリ領域のうち、AVストリーム・ファイルの記録領域に属する。従って、各エクステントの論理アドレスは、その記録領域内のファイル・エントリに記録されたアロケーション記述子から知ることができる。
図21は、BD−ROMディスク101上でのエクステントの物理的な配置を示す模式図である。図21を参照するに、AVストリーム・ファイル2100が、ディスク101のトラック202上では三つのエクステント2101A、2101B、2101Cに分割されて記録されている。図21を参照するに、各エクステント2101A−C自体は連続であるが、異なるエクステントの間は不連続である。それらのエクステント2101A−Cから映像がシームレスに再生されるには、それらのエクステント2101A−Cの物理的な配置が、以下に述べる条件を満たせばよい。
図21に示されている矢印群A1は再生経路を示す。それらの矢印群A1が示すように、AVストリーム・ファイル2100からの映像の再生では、各エクステント2101A−Cが順次、再生装置102に読み出される。先頭のエクステント2101Aの後端EAが読み出された時、BD−ROMドライブ1801は光ピックアップによる読み出し動作を一旦停止し、BD−ROMディスク101の回転速度を上げて、次のエクステント2101Bの先端TBを速やかに光ピックアップの位置まで移動させる。このように、光ピックアップに読み出し動作を一旦停止させて、その間に次の読み出し対象領域上へ光ピックアップを位置づけるための操作を「ジャンプ」という。図21には、再生経路A1上でジャンプが行われる期間、すなわち「ジャンプ期間」が再生経路A1内の凸部J1、J2で示されている。
ジャンプの種類には、BD−ROMディスク101の回転速度を上下させる操作の他に、トラック・ジャンプ及びフォーカス・ジャンプがある。トラック・ジャンプは、光ピックアップをディスクの半径方向に移動させる操作をいう。フォーカス・ジャンプは、BD−ROMディスク101が多層ディスクであるとき、光ピックアップの焦点を一つの記録層から別の記録層へ移動させる操作をいう。それらのジャンプは一般にシーク時間が長く、かつ、ジャンプによって読み出しがスキップされるセクタ数が大きいので、特に「ロングジャンプ」という。ジャンプ期間中、光ピックアップによる読み出し操作は停止する。従って、図21に示されているジャンプ期間J1、J2では、トラック202上の対応する部分G1、G2からデータは読み出されない。これらの部分G1、G2の各長さのように、ジャンプ期間中、読み出し操作がスキップされる部分の長さを「ジャンプ距離」という。ジャンプ距離は通常、その部分のセクタ数で表される。上記のロングジャンプは具体的には、ジャンプ距離が所定の閾値を超えるジャンプとして定義される。その閾値は、例えばBD−ROMの規格では、BD−ROMディスクの種類及びBD−ROMドライブの読み出し処理に関する性能により、40000セクタに規定されている。
ジャンプ期間中、BD−ROMドライブ1801はBD−ROMディスク101からデータを読み出すことができない。再生装置102がAVストリーム・ファイル2100から映像をシームレスに再生するには、ジャンプ期間中でもシステム・ターゲット・デコーダ1803が復号処理を継続し、かつ復号後の映像データの連続的な出力を維持できればよい。そのための工夫が、ディスク101上でのエクステントの物理的な配置には必要である。
図22は、図18に示されている2D再生装置内の再生処理系統を示す模式図である。その再生処理系統は、BD−ROMディスク101から読み出されたAVストリーム・ファイルを映像データVDと音声データADとに変換する。図22を参照するに、BD−ROMドライブ1801はBD−ROMディスク101からAVストリーム・ファイルをエクステント単位で読み出して、読み出し速度Rudでリード・バッファ1802に格納する。システム・ターゲット・デコーダ1803はリード・バッファ1802内の各エクステントからソースパケットを平均転送速度Rextで読み出して、映像データVDと音声データADとに復号する。尚、平均転送速度Rextは、図11に示されているシステムレート1101Aの192/188倍を超えない。
図23は、AVストリーム・ファイルの再生処理期間中、リード・バッファ1802に蓄積されるデータ量DAの推移を示すグラフである。そのグラフは、図21に示されている三つのエクステント2101A−Cから順番に映像が再生されるときのものである。
まず、先頭のエクステント2101AがBD−ROMディスク101からリード・バッファ1802へ読み出される。その読み出し期間PR1では蓄積データ量DAは、図23に矢印2301で示されているように、読み出し速度Rudと平均転送速度Rextとの間の差Rud−Rextに等しい速度で増加する。図21に示されているように、先頭のエクステント2101Aの後端EAが読み出された時、次のエクステント2101Bの先端TBまでジャンプJ1が行われる。そのジャンプ期間PRJでは、BD−ROMディスク101からのデータの読み出しが停止する。従って、図23に矢印2302で示されているように、蓄積データ量DAは平均転送速度Rextで減少する。ここで、読み出し期間PR1にリード・バッファ1802に蓄積されたデータ量、すなわち先頭のエクステント2101Aのサイズが、その読み出し期間PR1からジャンプ期間PRJにわたってリード・バッファ1802からシステム・ターゲット・デコーダ1803へ転送されるデータ量に等しい場合を想定する。その場合、図23に示されているように、蓄積データ量DAはジャンプ期間PRJの終了時に読み出し期間PR1の開始時での値まで戻る。図21に示されているように、ジャンプJ1に続いて次のエクステント2101Bの読み出しが開始される。その読み出し期間PR2では、図23に矢印2303で示されているように、蓄積データ量DAは再度、データ転送速度の差Rud−Rextに等しい速度で増加する。
実際には、BD−ROMドライブ1801は読み出し/転送動作を、図23の矢印2301、2303に示されているように連続的にではなく、断続的に行う。それにより、各エクステントの読み出し期間PR1、PR2に蓄積データ量DAがリード・バッファ1802の容量を超えないように、すなわちリード・バッファ1802がオーバーフローを生じないようにする。従って、図23の矢印2301、2303は、実際には階段状である増加を直線的な増加として近似的に表したものである。
先頭のエクステント2101Aと次のエクステント2101Bとから、ジャンプJ1にかかわらず、映像をシームレスに再生するには、ジャンプ期間PRJの全体で、リード・バッファ1802からシステム・ターゲット・デコーダ1803へのデータ供給を維持して、そのデコーダ1803の連続的な出力を確保する必要がある。ここで、図23から明らかなとおり、先頭のエクステント2101Aのサイズが少なくとも、その読み出し期間PR1からジャンプ期間PRJにわたってリード・バッファ1802からシステム・ターゲット・デコーダ1803へ転送されるデータ量に等しければ、ジャンプ期間PRJの途中で蓄積データ量DAが0まで達することはない。すなわち、リード・バッファ1802はアンダーフローを生じない。そうであれば、ジャンプ期間PRJ中、システム・ターゲット・デコーダ1803は映像データの連続的な出力を維持できるので、その映像データからは映像のシームレス再生が可能である。従って、映像のシームレス再生には、先頭のエクステント2101AのサイズSextが次式(1)を満たせばよい:
式(1)では、ジャンプ時間Tjumpはジャンプ期間PRJの長さを秒単位で表す。読み出し速度RudはBD−ROMディスク101からリード・バッファ1802へのデータの読み出し速度をビット/秒で表す。平均転送速度Rextは、各エクステントに含まれるソースパケットをリード・バッファ1802からシステム・ターゲット・デコーダ1803へ転送するときの平均転送速度をビット/秒で表す。尚、式(1)の二行目で平均転送速度Rextを数「8」で割っているのは、エクステントのサイズSextの単位をビットからバイトへ変換するためである。すなわち、エクステントのサイズSextはバイト単位で表される。関数CEIL()は、括弧内の数値の小数点以下の端数を切り上げる操作を意味する。以下、式(1)の右辺で表されるエクステントのサイズSextの下限値を「最小エクステント・サイズ」という。
平均転送速度Rextは、具体的には、ビット単位で表されたエクステントのサイズをエクステントATC時間で割ったときの値を利用して評価される。ここで、「ビット単位で表されたエクステントのサイズ」は、そのエクステント内のソースパケット数とソースパケット一つ当たりのバイト数(=192バイト)との積の8倍に等しい。「エクステントATC時間」は、そのエクステント内の各ソースパケットに付与されたATSの範囲、すなわち、そのエクステントの先頭のソースパケットのATSから次のエクステントの先頭のソースパケットのATSまでの時間間隔を表すATCの値として定義される。従って、エクステントATC時間は、そのエクステントに含まれるデータの全体をリード・バッファ1802からシステム・ターゲット・デコーダ1803へ転送するのに要する時間に等しい。
一方、リード・バッファ1802の容量は有限であることから、シームレス再生が可能なジャンプ時間Tjumpの最大値が制限される。すなわち、蓄積データ量DAがリード・バッファ1802の容量一杯であっても、次のエクステントまでのジャンプ距離が過大であるためにジャンプ時間Tjumpが長すぎれば、ジャンプ期間PRJ中に蓄積データ量DAが0に達し、リード・バッファ1802内のデータが枯渇する危険性がある。もしそうなれば、システム・ターゲット・デコーダ1803からの映像データの出力が途切れるので、シームレス再生が実現できない。以下、BD−ROMディスク101からリード・バッファ1802へのデータ供給が途絶えている状態で、蓄積データ量DAがリード・バッファ1802の容量一杯から0に到達するまでの時間、すなわち、シームレス再生を保証できるジャンプ時間Tjumpの最大値を「最大ジャンプ時間」という。
光ディスクの規格では通常、ジャンプ距離とジャンプ時間との間の関係が光ディスクドライブのアクセス・スピード等から決められている。図24は、BD−ROMディスクについて規定されたジャンプ距離Sjumpとジャンプ時間Tjumpとの間の関係の一例を示す表である。図24では、ジャンプ距離Sjumpはセクタ単位で表されている。ここで、1セクタ=2048バイトとする。図24に示されているように、ジャンプ距離Sjumpが0−10000セクタ、10001−20000セクタ、20001−40000セクタ、40001セクタ−1/10ストローク、及び1/10ストローク以上の各範囲に属するとき、ジャンプ時間Tjumpはそれぞれ、250m秒、300m秒、350m秒、700m秒、及び1400m秒である。最小エクステント・サイズは図24の規定に従って計算される。更に、その最小エクステント・サイズに基づき、AVストリーム・ファイルが複数のエクステントに分割されてBD−ROMディスク101上に配置される。そのようなBD−ROMディスク101であれば、再生装置102のBD−ROMドライブ1801は、図24の規定に従うことにより、そのBD−ROMディスク101から映像をシームレスに再生できる。
BD−ROMディスク101が多層ディスクであり、かつ読み出し元の記録層が別の記録層に切り換えられるとき、図24に規定されたジャンプ時間Tjumpに加えて、フォーカス・ジャンプ等、その記録層の切り換え操作に350m秒の時間が更に必要である。以下、この時間を「層切換時間」という。従って、連続して読み出されるべき二つのエクステントの間に層境界があるとき、それらのエクステント間のジャンプ距離Sjumpに対応するジャンプ時間Tjumpと層切換時間との和に基づいて、最小エクステント・サイズが決定される。
最大ジャンプ時間に対応する最大ジャンプ距離は、図24の規定と層切換時間とから決められる。例えば最大ジャンプ時間が700m秒である場合を想定する。その場合、最大ジャンプ距離は、連続する二つのエクステント間に層境界がないときは1/10ストローク(=約1.2GB)であり、層境界があるときは40000セクタ(=約78.1MB)である。
AVストリーム・ファイルの二つの異なる部分の一方から他方にわたって映像を再生するとき、各部分から再生される映像の間をシームレスに接続するには、再生経路上で前に位置する部分の終端のエクステントと、後に位置する部分の先頭のエクステントとの配置が次の条件を満たせばよい。まず、その終端のエクステントのサイズは少なくとも、その先頭エクステントまでのジャンプ距離から算出される最小エクステント・サイズに等しい。次に、そのジャンプ距離は最大ジャンプ距離を超えない。
図25は、AVストリーム・ファイルの三つの異なる部分2511−2513から順次、2D映像を連続再生するときの各エクステントの物理的な配置の一例を示す模式図である。図25を参照するに、プレイリスト・ファイル2500は、三つのプレイアイテム情報(PI#1−3)2501−2503を含む。各プレイアイテム情報2501−2503の規定する再生区間は、三つの異なる部分2511−2513のそれぞれの全体である。各部分2511−2513はBD−ROMディスク101のトラック202上に、複数のエクステント2521A、2521B、2522A、2522B、2523、…に分割されて記録されている。
先頭の部分2511の記録領域ではエクステント2521A、2521Bのサイズが少なくとも、それぞれに対する最小エクステント・サイズに等しい。ここで、先頭のエクステント2521Aに対する最小エクステント・サイズは、そのエクステント2521Aから次のエクステント2521Bまでのジャンプ距離G1から算出される。終端のエクステント2521Bに対する最小エクステント・サイズは、そのエクステント2521Bから二番目の部分2512の先頭のエクステント2522Aまでのジャンプ距離G2から算出される。更に、ジャンプ距離G1、G2はいずれも最大ジャンプ距離を超えない。二番目の部分2512の記録領域でも同様に、エクステント2522A、2522Bのサイズが少なくとも、それぞれに対する最小エクステント・サイズに等しく、各最小エクステント・サイズがエクステント間のジャンプ距離G3、G4から算出される。更に、ジャンプ距離G3、G4はいずれも最大ジャンプ距離を超えない。
各エクステントの配置をこのように設計することにより、いずれのジャンプ期間中でもリード・バッファ1802はアンダーフローを生じることなく、データをシステム・ターゲット・デコーダ1803に供給できる。従って、いずれのジャンプ期間中でも、システム・ターゲット・デコーダ1803は復号処理を継続し、かつ復号後の映像データの連続的な出力を維持できる。こうして、各部分2511−2513から2D映像をシームレスに再生することができる。
<3D映像の再生方法の原理>
3D映像の再生方法は、ホログラフィ技術を用いる方法と、視差映像を用いる方法との2つに大別される。
ホログラフィ技術を用いる方法の特徴は、現実の立体的な物体から人間の視覚に与えられる光学的な情報とほぼ全く同じ情報を視聴者の視覚に与えることにより、その視聴者に映像中の物体を立体的に見せる点にある。しかし、この方法を動画表示に利用する技術は理論上確立されてはいる。しかし、その動画表示に必要とされる、膨大な演算をリアルタイムに処理可能なコンピュータ、及び、1mmあたり数千本という超高解像度の表示装置はいずれも、現在の技術ではまだ、実現が非常に難しい。従って、この方法を商業用として実用化する目途は、現時点ではほとんど立っていない。
「視差映像」とは、一つのシーンを見る視聴者の各目に映る2D映像の対、すなわち、レフトビューとライトビューとの対をいう。視差映像を用いる方法の特徴は、一つのシーンのレフトビューとライトビューとを視聴者の各目だけに見えるように再生することにより、その視聴者にそのシーンを立体的に見せる点にある。
図26は、視差映像を用いる方法による3D映像(立体視映像)の再生原理を説明するための模式図である。図26の(a)は、視聴者2601が、顔の正面に置かれた立方体2602を見ている様子を上から見た図である。図26の(b)、(c)はそれぞれ、そのときに視聴者2601の左目2601L、右目2601Rに見える立方体2602の外観を2D映像として示す。図26の(b)、(c)を比較すれば明らかなとおり、各目に見える立方体2602の外観はわずかに異なる。この外観の差、すなわち両眼視差から、視聴者2601は立方体2602を立体的に認識できる。従って、視差映像を用いる方法では、まず、一つのシーン、例えば図26の(a)に示されている立方体2602に対し、視点が異なる左右の2D映像、例えば図26の(b)に示されている立方体2602のレフトビュー、及び図26の(c)に示されているそのライトビューを準備する。ここで、各視点の位置は視聴者2601の両眼視差から決定される。次に、各2D映像を視聴者2601のそれぞれの目だけに見えるように再生する。それにより、視聴者2601には、画面に再生されるそのシーン、すなわち立方体2602の映像が立体的に見える。このように、視差映像を用いる方法は、ホログラフィ技術を用いる方法とは異なり、高々二つの視点から見える2D映像を準備するだけでよい点で有利である。
視差映像を用いる方法については、それを具体化するための方式が多様に提案されている。それらの方式は、左右の2D映像を視聴者のそれぞれの目にいかにして見せるかという観点から、経時分離方式、レンチキュラーレンズを用いる方式、及び二色分離方式等に分けられる。
継時分離方式では、画面に左右の2D映像を一定時間ずつ交互に表示する一方、視聴者にシャッター眼鏡を通して画面を観察させる。ここで、シャッター眼鏡は、各レンズが例えば液晶パネルで形成されている。各レンズは、画面上の2D映像の切り換えに同期して交互に、光をその全体で一様に透過させ、又は遮断する。すなわち、各レンズは、視聴者の目を周期的に塞ぐシャッターとして機能する。より詳細に言えば、画面上に左映像が表示される期間では、シャッター眼鏡は、左側のレンズには光を透過させ、右側のレンズには光を遮断させる。逆に、画面上に右映像が表示されている期間では、シャッター眼鏡は、右側のレンズには光を透過させ、左側のレンズには光を遮断させる。それにより、視聴者の目には、左右の映像の残像が重なって一つの3D映像に見える。
経時分離方式では、上記のとおり、左右の映像を一定周期で交互に表示する。例えば2D映像の再生において1秒当たり24枚の映像フレームが表示されるとき、3D映像の再生では左右の映像を合わせて、1秒当たり48枚の映像フレームが表示される。従って、この方式には、画面の書き換えを速く実行できる表示装置が好適である。
レンチキュラーレンズを用いる方式では、左右の各映像フレームを、縦方向に細長い短冊形の小領域に分割し、一つの画面の中に左右の映像フレームの各小領域を横方向に交互に並べて同時に表示する。ここで、画面の表面はレンチキュラーレンズで覆われている。レンチキュラーレンズは、細長い蒲鉾レンズを複数平行に並べて一枚のシート状にしたものである。各蒲鉾レンズは画面の表面を縦方向に延びている。レンチキュラーレンズを通して上記左右の映像フレームを視聴者に見せるとき、左映像フレームの表示領域からの光は視聴者の左目だけに結像し、右映像フレームの表示領域からの光は右目だけに結像するようにできる。こうして、左右の目に映る映像間での両眼視差により、視聴者には3D映像が見える。尚、この方式では、レンチキュラーレンズに代えて、同様な機能を持つ液晶素子等の他の光学部品が利用されてもよい。その他に、例えば左映像フレームの表示領域には縦偏光のフィルタを設置し、右映像フレームの表示領域には横偏光のフィルタを設置してもよい。そのとき、視聴者には偏光眼鏡を通して画面を見させる。ここで、その偏光眼鏡では、左側のレンズに縦偏光フィルタが設置され、かつ右側のレンズに横偏光フィルタが設置されている。従って、左右の映像が視聴者のそれぞれの目だけに見えるので、視聴者に3D映像を見せることができる。
視差映像を用いる方法では、3D映像コンテンツが、初めから左右の映像の組み合わせで構成されている場合の他に、2D映像とデプスマップとの組み合わせで構成されていてもよい。その2D映像は、再生対象の3D映像から仮想的な2D画面への射影を表し、デプスマップは、その2D画面に対するその3D映像の各部の奥行きを画素単位で表す。3D映像コンテンツが2D映像とデプスマップとの組み合わせで構成されているとき、3D再生装置又は表示装置はまず、それらの組み合わせから左右の映像を構成し、次にそれらの映像から上記の方式のいずれかで3D映像を再現する。
図27は、2D映像2701とデプスマップ2702との組み合わせからレフトビュー2703Lとライトビュー2703Rとを構成する例を示す模式図である。図27を参照するに、2D映像2701では、背景2712の中に円板2711が表示されている。デプスマップ2702はその2D映像2701内の各部の奥行きを画素ごとに示す。そのデプスマップ2702によれば、2D映像2701のうち、円板2711の表示領域2721の奥行きが画面よりも手前であり、かつ、背景2712の表示領域2722の奥行きが画面よりも奥である。再生装置102内では視差映像生成部2700がまず、デプスマップ2702の示す各部の奥行きから2D映像2701内の各部の両眼視差を計算する。視差映像生成部2700は次に、2D映像2701内の各部の表示位置を、計算された両眼視差に応じて左右に移動させて、レフトビュー2703Lとライトビュー2703Rとを構成する。図27に示されている例では、視差映像生成部2700は、2D映像2701内の円板2711の表示位置に対し、レフトビュー2703L内の円板2731Lの表示位置をその両眼視差の半分S1だけ右に移動させ、ライトビュー2703R内の円板2731Rの表示位置をその両眼視差の半分S1だけ左に移動させる。それにより、視聴者には円板2711が画面よりも手前に見える。一方、視差映像生成部2700は、2D映像2701内の背景2712の表示位置に対し、レフトビュー2703L内の背景2732Lの表示位置をその両眼視差の半分S2だけ左に移動させ、ライトビュー2703R内の背景2732Rの表示位置をその両眼視差の半分S2だけ右に移動させる。それにより、視聴者には背景2712が画面よりも奥に見える。
視差映像を用いる方法による3D映像の再生システムは、映画館及び遊園地のアトラクション等で利用されるものについては既に確立され、一般的に使用されている。従って、その方法は、3D映像を再生可能なホームシアター・システムの実用化にも有効である。本発明の実施形態では、視差映像を用いる方法のうち、継時分離方式又は偏光眼鏡を用いた方式を想定する。但し、本発明はそれらの方式とは他の方式に対しても、それらが視差映像を用いている限り、適用可能である。それは、以下に述べる実施形態の説明から当業者には明らかであろう。
<3D映像コンテンツのデータ構造>
以下、図2に示されているBDMVディレクトリ242内のファイル群のうち、3D映像コンテンツの再生に関する各ファイルのデータ構造について説明する。ここで、そのデータ構造の基本部分は、図2−17に示されている2D映像コンテンツのデータ構造と同様である。従って、以下では、2D映像コンテンツのデータ構造からの拡張部分及び変更部分について説明し、基本部分については上記の説明を援用する。
≪インデックス・テーブルに記述された各オブジェクト≫
図28は、インデックス・テーブル310に記述された3D映像の再生に関するムービーオブジェクトMVO−3DとBD−JオブジェクトBDJO−3D、及び三種類のプレイリスト・ファイル243A−Cの間の関係を示す模式図である。第1プレイリスト・ファイル(00001.mpls)243Aは2Dプレイリスト・ファイルである。第2プレイリスト・ファイル(00002.mpls)243Bと第3プレイリスト・ファイル(00003.mpls)243Cとは3Dプレイリスト・ファイルである。インデックス・テーブル310では、項目「タイトル3」と項目「タイトル4」とが3D映像のタイトルに割り当てられている。項目「タイトル3」に対応付けられているムービーオブジェクトMVO−3Dは、第1プレイリスト・ファイル243Aを用いた2D映像の再生処理に関する命令群に加え、他の二つ243B、243Cのいずれかを用いた3D映像の再生処理に関する命令群を含む。項目「タイトル4」に対応付けられているBD−JオブジェクトBDJO−3Dでは、アプリケーション管理テーブルが、第1プレイリスト・ファイル243Aを用いた2D映像の再生処理に関するJavaアプリケーション・プログラムに加え、他の二つ243B、243Cのいずれかを用いた3D映像の再生処理に関するJavaアプリケーション・プログラムを規定する。
例えば、ユーザの操作によってタイトル3が選択されたとき、再生装置102はインデックス・テーブル310の項目「タイトル3」を参照してムービーオブジェクトMVO−3Dを呼び出して実行する。それにより、再生装置102はまず、次の四種類の判別処理を行う:(1)再生装置102自身が3D映像の再生に対応しているか否か、(2)ユーザが3D映像の再生を選択しているか否か、(3)表示装置103が3D映像の再生に対応しているか否か、及び(4)再生装置102の3D映像再生モードがL/Rモードとデプス・モードとのいずれであるか。ここで、「L/R(レフト/ライト)モード」とは、レフトビュー・ストリーム・ファイルとライトビュー・ストリーム・ファイルとの組み合わせから3D映像を再生するモードを意味し、「デプス・モード」とは、2D・AVストリーム・ファイルとデプスマップAVストリーム・ファイルとの組み合わせから3D映像を再生するモードを意味する。再生装置102は次に、それらの判別結果に応じて、いずれかのプレイリスト・ファイル243A−Cを再生対象として選択する。一方、再生装置102がインデックス・テーブル310の項目「タイトル4」を参照してBD−JオブジェクトBDJO−3Dを呼び出したとき、再生装置102はそのアプリケーション管理テーブルに従って各Javaアプリケーション・プログラムを実行する。それにより、再生装置102は、上記の判別と、その結果に応じたプレイリスト・ファイルの選択とを行う。
図29は、3D映像のタイトルが選択されたときに行われる、再生対象のプレイリスト・ファイルの選択処理のフローチャートである。図28に示されている例では、インデックス・テーブル310の項目「タイトル3」が参照されたときはムービーオブジェクトMVO−3Dに従ってその選択処理が実行される。一方、項目「タイトル4」が参照されたときは、BD−JオブジェクトBDJO−3Dに規定されたJavaアプリケーション・プログラムに従って、その選択処理が実行される。
ここで、その選択処理の前提として、図19に示されているSPRMが次の二種類のフラグを更に含むときを想定する:(A)「再生装置102が2D映像の再生のみに対応可能であるか、それとも3D映像の再生にも対応可能であるか」を識別するためのフラグ、及び、(B)「再生装置102の3D映像再生モードがL/Rモードとデプス・モードとのいずれであるか」を識別するためのフラグ。具体的には、SPRM(24)がフラグ(A)を含み、SPRM(25)がフラグ(B)を含むときを想定する。更に、各フラグの値が次の事項を示すことを想定する:SPRM(24)が「0」であるときは再生装置102が2D映像の再生のみに対応可能であり、「1」であるときは3D映像の再生にも対応可能である。SPRM(25)が「0」であるときは再生装置102の3D映像再生モードがL/Rモードであり、「1」であるときはデプス・モードである。
ステップS2901では、再生装置102はSPRM(24)の値をチェックする。その値が0であるとき、処理はステップS2905へ進む。その値が1であるとき、処理はステップS2902へ進む。
ステップS2902では、再生装置102は表示装置103にメニューを表示させて、ユーザに2D映像と3D映像とのいずれかの再生を選択させる。ユーザがリモコン105等を操作して、2D映像の再生を選択したとき、処理はステップS2905へ進み、3D映像の再生を選択したとき、処理はステップS2903へ進む。
ステップS2903では、再生装置102は、表示装置103が3D映像の再生に対応しているかチェックする。具体的には、再生装置102はHDMIケーブル122を通して表示装置103との間でCECメッセージを交換し、表示装置103が3D映像の再生に対応しているか否かを表示装置103に問い合わせる。表示装置103が3D映像の再生に対応していないとき、処理はステップS2905へ進み、対応しているとき、処理はステップS2904へ進む。
ステップS2904では、再生装置102はSPRM(25)の値をチェックする。その値が0であるとき、処理はステップS2906へ進む。その値が1であるとき、処理はステップS2907へ進む。
ステップS2905では、再生装置102は第1プレイリスト・ファイル243Aを再生対象として選択する。尚、そのとき、再生装置102は表示装置103に、3D映像の再生が選択されなかった理由を表示させてもよい。
ステップS2906では、再生装置102は第2プレイリスト・ファイル243Bを再生対象として選択する。
ステップS2907では、再生装置102は第3プレイリスト・ファイル243Cを再生対象として選択する。
≪3Dプレイリスト・ファイル≫
図30は、第1プレイリスト・ファイル243Aと第2プレイリスト・ファイル243Bとの各構造の一例を示す模式図である。第1AVクリップ群3001は第1AVストリーム・ファイル245A内の部分LCL1−3から成る。第2AVクリップ群3002は第2AVストリーム・ファイル245B内の部分RCL1−3から成る。第1プレイリスト・ファイル243Aのメインパス3003と第2プレイリスト・ファイル243Bのメインパス3004とはいずれも三つのプレイアイテム情報#1−3を含む。いずれのプレイアイテム情報#1−3も第1AVクリップ群3001の中に再生区間を規定する。第2プレイリスト・ファイル243Bは第1プレイリスト・ファイル243Aとは異なり、サブパス3005を更に含む。サブパス3005は三つのサブプレイアイテム情報#1−3を含み、各サブプレイアイテム情報#1−3は第2AVクリップ群3002の中に再生区間を規定する。サブプレイアイテム情報#1−3はプレイアイテム情報#1−3と一対一に対応する。各サブプレイアイテム情報の再生区間の長さは、対応するプレイアイテム情報の再生区間の長さに等しい。サブパス3005は更に、サブパス・タイプ3006を含む。ここで、「サブパス・タイプ」は、メインパスとサブパスとの間で再生処理が同期すべきか否かを示す。図30では、サブパス・タイプ3006の値が「3D・L/R」である。その値は、サブパス3005がL/Rモードでの3D映像の再生に利用されるべきものであり、特にライトビュー・ストリーム・ファイルの再生経路を規定することを示す。
図29に示されている選択処理によって第1プレイリスト・ファイル243Aが再生対象として選択されたとき、再生装置102はそのメインパス3003に従って第1AVクリップ群3001から2D映像を再生する。一方、第2プレイリスト・ファイル243Bが再生対象として選択されたとき、再生装置102は3D映像の再生をL/Rモードで実行する。再生装置102は特に、第2プレイリスト・ファイル243Bのメインパス3004に従って第1AVクリップ群3001からレフトビューを再生し、サブパス3005に従って第2AVクリップ群3002からライトビューを再生する。再生装置102はそのとき、サブパス・タイプ3006の値が「3D・L/R」であることを検出して、メインパス3004とサブパス3005との間で再生処理を同期させる。このように、L/Rモードでの3D映像の再生が行われる。ここで、第1AVクリップ群3001は、2D映像の再生とL/Rモードでの3D映像の再生とで共用される。
第2プレイリスト・ファイル243Bの各プレイアイテム情報には、図15に示されているストリーム選択テーブル1505の中に2D/レフトビュー・ストリームのストリーム・エントリとライトビュー・ストリームのストリーム・エントリとが追加されている。2D/レフトビュー・ストリームとライトビュー・ストリームとではストリーム・エントリ1509の内容、例えばフレームレート、解像度、ビデオフォーマットは共通である。尚、ストリーム・エントリ1509には、2D/レフトビュー・ストリームとライトビュー・ストリームとを識別するためのフラグが更に追加されていても良い。
図31は、第1プレイリスト・ファイル243Aと第3プレイリスト・ファイル243Cとの各構造の一例を示す模式図である。第1AVクリップ群3101は第1AVストリーム・ファイル245A内の部分LCL1−3から成る。第3AVクリップ群3102は第3AVストリーム・ファイル245C内の部分DCL1−3から成る。第1プレイリスト・ファイル243Aのメインパス3103と第3プレイリスト・ファイル243Cのメインパス3104とはいずれも三つのプレイアイテム情報#1−3を含む。いずれのプレイアイテム情報#1−3も第1AVクリップ群3101の中に再生区間を規定する。第3プレイリスト・ファイル243Cは第1プレイリスト・ファイル243Aとは異なり、サブパス3105を更に含む。サブパス3105は三つのサブプレイアイテム情報#1−3を含み、各サブプレイアイテム情報#1−3は第3AVクリップ群3102の中に再生区間を規定する。サブプレイアイテム情報#1−3はプレイアイテム情報#1−3と一対一に対応する。各サブプレイアイテム情報の再生区間の長さは、対応するプレイアイテム情報の再生区間の長さに等しい。サブパス3105では更に、サブパス・タイプ3106の値が「3D・デプス」である。その値は、サブパス3105がデプス・モードでの3D映像の再生に利用されるべきものであり、特にデプスマップAVストリーム・ファイルの再生経路を規定することを示す。
図29に示されている選択処理によって第1プレイリスト・ファイル243Aが再生対象として選択されたとき、再生装置102はそのメインパス3103に従って第1AVクリップ群3101から2D映像を再生する。一方、第3プレイリスト・ファイル243Cが再生対象として選択されたとき、再生装置102は3D映像の再生をデプス・モードで実行する。再生装置102は特に、第3プレイリスト・ファイル243Cのメインパス3104に従って第1AVクリップ群3101から2D映像を再生し、サブパス3105に従って第3AVクリップ群3102からデプスマップを再生する。再生装置102はそのとき、サブパス・タイプ3006の値が「3D・デプス」であることを検出して、メインパス3104とサブパス3105との間で再生処理を同期させる。再生装置102は更に、再生された2D映像とデプスマップとからレフトビューとライトビューとの対を生成する。こうして、デプス・モードでの3D映像の再生が行われる。ここで、第3AVクリップ群3102は第1AVクリップ群3101と組み合わされて利用される。
第3プレイリスト・ファイル243Cの各プレイアイテム情報には、図15に示されているストリーム選択テーブル1505の中にデプスマップ・ストリームのストリーム・エントリが追加されている。プライマリ・ビデオ・ストリームとデプスマップ・ストリームとではストリーム・エントリ1509の内容は共通である。ストリーム・エントリ1509には、プライマリ・ビデオ・ストリームとデプスマップ・ストリームとを識別するためのフラグが更に追加されていても良い。
図32は、第1プレイリスト・ファイル243Aと3Dプレイリスト・ファイル3200との各構造の別例を示す模式図である。第1AVクリップ群3201は、第1AVストリーム・ファイル245A内の部分LCL1−3から成る。第2AVクリップ群3202Rは第2AVストリーム・ファイル245B内の部分RCL1−3から成る。第3AVクリップ群3202Dは第3AVストリーム・ファイル245C内の部分DCL1−3から成る。第1プレイリスト・ファイル243Aのメインパス3103と3Dプレイリスト・ファイル3200のメインパス3204とはいずれも三つのプレイアイテム情報#1−3を含む。いずれのプレイアイテム情報#1−3も第1AVクリップ群3201の中に再生区間を規定する。3Dプレイリスト・ファイル3200は、第2プレイリスト・ファイル243Bと第3プレイリスト・ファイル243Cとのいずれとも異なり、サブパスを二種類含む。第1サブパス3205Rでは、サブパス・タイプ3206Rが「3D・L/R」であり、各サブプレイアイテム情報#1−3が第2AVクリップ群3202Rの中に再生区間を規定する。一方、第2サブパス3205Dでは、サブパス・タイプ3206Dが「3D・デプス」であり、各サブプレイアイテム情報#1−3が第3AVクリップ群3202Dの中に再生区間を規定する。各サブプレイアイテム情報#1−3はプレイアイテム情報#1−3と一対一に対応する。各サブプレイアイテム情報の再生区間の長さは、対応するプレイアイテム情報の再生区間の長さに等しい。
3Dプレイリスト・ファイル3200に従って3D映像が再生されるとき、再生対象のサブパスが二種類のサブパス3205R、3205Dの間で切り換えられることにより、再生装置102にその再生モードをL/Rモードとデプス・モードとの間で切り換えさせることができる。特にその切り換え処理は、第2プレイリスト・ファイル243Bと第3プレイリスト・ファイル243Cとの間での切り換え処理よりも速やかに実現可能である。
図32とは異なり、3Dプレイリスト・ファイルが、サブパス・タイプの等しいサブパスを複数含んでいてもよい。例えば、同じシーンに対する両眼視差の異なる3D映像が共通のレフトビューに対するライトビューの違いで表現されるとき、異なるライトビューごとに異なるライトビュー・ストリーム・ファイルがBD−ROMディスク101に記録される。すなわち、BD−ROMディスク101のSTREAMディレクトリには、一つのレフトビュー・ストリーム・ファイルに対して、ライトビュー・ストリーム・ファイルが二種類以上含まれていてもよい。その場合、3Dプレイリスト・ファイルには、サブパス・タイプが「3D・L/R」であるサブパスが複数設けられる。それらのサブパスは、各ライトビュー・ストリーム・ファイルの再生経路を個別に規定する。その他に、一つの2D・AVストリーム・ファイルに対して、デプスマップAVストリーム・ファイルが二種類以上含まれていてもよい。その場合、3Dプレイリスト・ファイルには、サブパス・タイプが「3D・デプス」であるサブパスが複数設けられる。それらのサブパスは、各デプスマップAVストリーム・ファイルの再生経路を個別に規定する。そのような3Dプレイリスト・ファイルに従って3D映像が再生されるとき、再生対象のサブパスが例えばユーザの操作に応じて速やかに切り換えられるので、3D映像を実質的に途切れさせることなく、その両眼視差を変化させることができる。それにより、ユーザに所望の両眼視差の3D映像を容易に選択させることができる。
≪3D映像の再生に利用されるAVストリーム・ファイル≫
図33の(a)、(b)はそれぞれ、第2AVストリーム・ファイル245B、第3AVストリーム・ファイル245Cに多重化されたエレメンタリ・ストリームを示す模式図である。図4に示されている第1AVストリーム・ファイル245Aとは異なり、第2AVストリーム・ファイル245Bと第3AVストリーム・ファイル245Cとはいずれもプライマリ・ビデオ・ストリーム3321、3331のみを含む。第2AVストリーム・ファイル245B内のプライマリ・ビデオ・ストリーム3321はライトビュー・ストリームを表し、第3AVストリーム・ファイル245C内のプライマリ・ビデオ・ストリーム3331はデプスマップ・ストリームを表す。従って、各プライマリ・ビデオ・ストリーム3321、3331には、レフトビュー・ストリームを表す第1AVストリーム・ファイル245A内のプライマリ・ビデオ・ストリームのPID=0x1011とは別のPID=0x1012、0x1013が割り当てられる。
図34は、レフトビュー・ストリーム3410に含まれるピクチャ3411−3414、…、及びライトビュー・ストリーム3420に含まれるピクチャ3421−3424、…を表示時間順に示す模式図である。各ピクチャ3411−3414、3421−3424は映像データの1フレーム又は1フィールドを表す。
図34を参照するに、レフトビュー・ストリーム3410内の各ピクチャ3411−3414はピクチャ間予測符号化で圧縮されている。その符号化方法は、図6に示されているビデオ・ストリーム600内の各ピクチャの符号化方法と全く同様である。具体的には、まず、GOPの先頭のピクチャがピクチャ内符号化でI0ピクチャ3411に圧縮される。ここで、下付の数字は、各ピクチャに表示時間順に割り振られた通し番号を示す。次に、4番目のピクチャが、図34に矢印で示されているように、I0ピクチャ3411を参照ピクチャとしてP3ピクチャ3414に圧縮される。続いて、2、3番目のピクチャが、その前のI0ピクチャ3411とその後のP3ピクチャ3414とを参照ピクチャとしてそれぞれ、Br1ピクチャ342、Br2ピクチャ3413に圧縮される。ここで、「Brピクチャ」とは、Bピクチャのうち、他のピクチャに対するピクチャ間予測符号化で参照ピクチャとして利用されるものをいう。
ライトビュー・ストリーム3420内の各ピクチャ3421−3424はピクチャ間予測符号化で圧縮されている。しかし、その符号化方法は、レフトビュー・ストリーム3410内の各ピクチャ3411−3414の符号化方法とは異なり、映像の時間方向での冗長性に加えて、左右の映像間の冗長性をも利用する。すなわち、各ピクチャ3421−3424の参照ピクチャが、図34に矢印で示されているように、同じストリーム3420からだけでなく、レフトビュー・ストリーム3410からも選択される。ライトビュー・ストリーム3420内の各ピクチャ3421−3424と、レフトビュー・ストリーム3410から選択されたその参照ピクチャとは表示時刻が実質的に等しい。すなわち、それぞれのピクチャが3D映像の同じシーンのライトビューとレフトビューとを表す。具体的には、まず、ライトビュー・ストリーム3420内の先頭のピクチャが、レフトビュー・ストリーム3410内のI0ピクチャ3411を参照ピクチャとしてP0ピクチャ3421に圧縮される。次に、4番目のピクチャが、P0ピクチャ3421とレフトビュー・ストリーム3410内のP3ピクチャ3414とを参照ピクチャとしてP3ピクチャ3424に圧縮される。続いて、2番目のピクチャが、P0ピクチャ3421とP3ピクチャ3424とに加えて、レフトビュー・ストリーム3410内のBr1ピクチャ3412を参照ピクチャとしてB1ピクチャに圧縮される。同様に、3番目のピクチャが、P0ピクチャ3421とP3ピクチャ3424とに加えて、レフトビュー・ストリーム3410内のBr2ピクチャ3413を参照ピクチャとしてB2ピクチャに圧縮される。
このような左右の映像間の相関関係を利用した動画圧縮符号化方式としては、MVC(Multiview Video Coding)と呼ばれるMPEG−4 AVC/H.264の修正規格が知られている。MVCは、ISO/IEC MPEGとITU−T VCEGとの共同プロジェクトであるJVT(Joint Video Team)によって2008年7月に策定されたものであり、複数の視点から見える映像をまとめて符号化するための規格である。MVCでは、映像間予測符号化に、映像の時間方向での類似性だけでなく、視点の異なる映像間の類似性も利用される。その予測符号化では、各視点から見た映像を個別に圧縮する予測符号化よりも映像の圧縮率が高い。
上記のとおり、ライトビュー・ストリーム3420内の各ピクチャの圧縮には、レフトビュー・ストリーム3410内の各ピクチャが参照ピクチャとして利用される。従って、レフトビュー・ストリーム3410とは異なり、ライトビュー・ストリーム3420を単独で復号することはできない。しかし、その反面、レフトビューとライトビューとの間の相関は高いので、ライトビュー・ストリーム3420内の各ピクチャは一般にレフトビュー・ストリーム3410内の各ピクチャよりも圧縮率が著しく高く、すなわちデータ量が著しく小さい。
デプスマップ・ストリーム内の各ピクチャは、図6に示されているビデオ・ストリーム600内の各ピクチャの符号化方法と全く同様なピクチャ間予測符号化で圧縮されている。ここで、その符号化方式はライトビュー・ストリームの符号化方式に等しい。例えば、ライトビュー・ストリームがMVCのフォーマットで符号化されているとき、デプスマップ・ストリームもMVCのフォーマットで符号化されている。その場合、ライトビュー・ストリームと同様、デプスマップ・ストリームを単独で復号することはできない。しかし、その反面、再生装置102は3D映像再生モードをL/Rモードとデプス・モードとの間で切り換えるとき、ライトビュー・ストリームとデプスマップ・ストリームとをスムーズに切り換えることができる。
以下、レフトビュー・ストリーム3410のように単独で復号可能であって平面視映像の再生に利用されるビデオ・ストリームを「ベースビュー・ストリーム」という。更に、ベースビュー・ストリームを含むAVストリーム・ファイルを「ベースビュー・ストリーム・ファイル」という。それに対し、ライトビュー・ストリーム3420及びデプスマップ・ストリームのように、その復号にベースビュー・ストリームを必要とし、そのベースビュー・ストリームと組み合わされて立体視映像の再生に利用されるビデオ・ストリームを「ディペンデントビュー・ストリーム」という。更に、ディペンデントビュー・ストリームを含むAVストリーム・ファイルを「ディペンデントビュー・ストリーム・ファイル」という。
図35は、ベースビュー・ストリーム3501とディペンデントビュー・ストリーム3502との各ピクチャに割り当てられたPTSとDTSとの間の関係を示す模式図である。図35を参照するに、両ビデオ・ストリーム3501、3502の間では、3D映像の同じフレーム又はフィールドの表示に利用される一対のピクチャに対し、同じPTS及び同じDTSが割り当てられている。例えば、3D映像の先頭のフレーム又はフィールドはベースビュー・ストリーム3501のI1ピクチャ3511とディペンデントビュー・ストリーム3502のP1ピクチャ3521との組み合わせから再現される。従って、それらのピクチャの対3511、3521では、PTSが等しく、かつ、DTSが等しい。ここで、下付の数字は、各ピクチャにDTSの順に割り振られた通し番号を示す。同様に、各ビデオ・ストリーム3501、3502の2番目のピクチャ、すなわちP2ピクチャ3512とP2ピクチャ3522とでは、PTSが等しく、かつDTSが等しい。各ビデオ・ストリーム3501、3502の3番目のピクチャ、すなわちBr3ピクチャ3513とB3ピクチャ3523とではPTSとDTSとがいずれも等しい。Br4ピクチャ3514とB4ピクチャ3524とでも同様である。
図7に示されているビデオ・ストリーム700のデータ構造と同様に、実際のベースビュー・ストリーム及びディペンデントビュー・ストリームのいずれを構成するGOPにおいても、ピクチャごとに一つのビデオ・アクセスユニットが構成されている。更に、互いに対を成すベースビュー・ストリームとディペンデントビュー・ストリームとの各GOPの先頭のビデオ・アクセスユニットの間では、シーケンス・ヘッダが、同じ解像度、同じフレームレート、及び同じアスペクト比を含む。特にそのフレームレートは、ベースビュー・ストリームが2D再生装置によって単独で復号されるときの値に等しい。
ベースビュー・ストリーム3501とディペンデントビュー・ストリーム3502との間で、PTSが等しく、かつDTSが等しいピクチャを含むビデオ・アクセスユニットの対を「3Dビデオ・アクセスユニット」という。図35に示されているようなPTSとDTSとの割り当てにより、3D再生装置のデコーダにベースビュー・ストリーム3501とディペンデントビュー・ストリーム3502とを3Dビデオ・アクセスユニット単位でパラレルに処理させることが容易にできる。それにより、3D映像の同じフレーム又はフィールドの表示に利用されるべき一対のピクチャがデコーダによって確実にパラレルに処理される。
図36は、レフトビュー・ストリーム、ライトビュー・ストリーム、及びデプスマップ・ストリーム内のビデオ・アクセスユニット3600のデータ構造を示す模式図である。図36を参照するに、ビデオ・アクセスユニット3600は、図7に示されているデータ構造に加え、復号スイッチ情報3601を更に含む。復号スイッチ情報3601は、特に補足データ711Dの中、すなわち、MPEG−4 AVCではSEIメッセージの中に格納されている。復号スイッチ情報3601は、3D再生装置のデコーダに復号対象のビデオ・アクセスユニットを容易に特定させるための情報である。ここで、3D再生装置のデコーダは後述のように、ベースビュー・ストリームとディペンデントビュー・ストリームとをビデオ・アクセスユニット単位で交互に復号する。そのとき、そのデコーダは一般に、各ビデオ・アクセスユニットに付与されたDTSの時刻に合わせて、次に復号すべきビデオ・アクセスユニットを特定する。しかし、デコーダの種類には、DTSを無視してビデオ・アクセスユニットを順次、復号し続けるものも多い。そのようなデコーダにとって、各ビデオ・アクセスユニットがDTSに加えて復号スイッチ情報3601を含むことは好ましい。
図36に示されているように、復号スイッチ情報3601は、次アクセスユニット・タイプ3602、次アクセスユニット・サイズ3603、及び復号カウンタ3604を含む。
次アクセスユニット・タイプ3602は、次に復号されるべきビデオ・アクセスユニットがベースビュー・ストリームとディペンデントビュー・ストリームとのいずれに属するのかを示す。例えば、次アクセスユニット・タイプ3602の値が「1」であるときは、次に復号されるべきビデオ・アクセスユニットはベースビュー・ストリームに属し、「2」であるときは、ディペンデントビュー・ストリームに属する。次アクセスユニット・タイプ3602の値が「0」であるときは、現在のビデオ・アクセスユニットが復号対象のストリームの終端に位置し、次に復号されるべきビデオ・アクセスユニットが存在しない。
次アクセスユニット・サイズ3603は、次に復号されるべきビデオ・アクセスユニットのサイズを示す。3D再生装置内のデコーダは次アクセスユニット・サイズ3603を参照することにより、ビデオ・アクセスユニットの構造自体を解析することなく、そのサイズを特定できる。従って、デコーダは、バッファからビデオ・アクセスユニットを容易に抽出できる。
復号カウンタ3604は、それの属するビデオ・アクセスユニットが復号される順番を示す。その順番は、ベースビュー・ストリーム内のIピクチャを含むビデオ・アクセスユニットから数えられる。図37は、ベースビュー・ストリーム3701とディペンデントビュー・ストリーム3702との各ピクチャに割り当てられた復号カウンタの値3604A、3604Bを示す模式図である。図37の(a)、(b)に示されているように、その値の割り当て方には二通りがある。
図37の(a)では、復号カウンタの値3604A、3604Bがベースビュー・ストリーム3701とディペンデントビュー・ストリーム3702との間で交互にインクリメントされる。例えば、ベースビュー・ストリーム3701内のIピクチャ3711に対して、復号カウンタの値3604Aとして「1」が割り当てられる。次に復号されるべきディペンデントビュー・ストリーム3702内のPピクチャ3721に対して、復号カウンタの値3604Bとして「2」が割り当てられる。更にその次に復号されるべきベースビュー・ストリーム3701内のPピクチャ3712に対して、復号カウンタの値3604Aとして「3」が割り当てられる。そのような割り当てにより、何らかの不具合が原因で3D再生装置内のデコーダがいずれかのビデオ・アクセスユニットを読み損なったときでも、それによって欠落したピクチャをデコーダは復号カウンタの値3604A、3604Bから直ちに特定できる。従って、デコーダはエラー処理を適切に、かつ迅速に実行できる。
図37の(a)の例では、ベースビュー・ストリーム3701の3番目のビデオ・アクセスユニットの読み込みにエラーが生じ、Brピクチャ3713が欠落している。しかし、デコーダは、ディペンデントビュー・ストリーム3702の2番目のビデオ・アクセスユニットに含まれるPピクチャ3722の復号処理において、そのビデオ・アクセスユニットの復号カウンタの値3604Bを読み出して保持している。従って、デコーダは、次に処理すべきビデオ・アクセスユニットの復号カウンタの値3604Aを予測できる。具体的には、そのPピクチャ3722を含むビデオ・アクセスユニット内の復号カウンタの値3604Bは「4」である。従って、次に読み込まれるべきビデオ・アクセスユニットの復号カウンタの値3604Aは「5」であると予測される。しかし、実際には、次に読み込まれたビデオ・アクセスユニットはベースビュー・ストリーム3701の4番目のビデオ・アクセスユニットであったので、その復号カウンタの値3604Aは「7」になっている。そのことから、デコーダは、ビデオ・アクセスユニットを一つ読み損ねたことを検出できる。従って、デコーダは「ディペンデントビュー・ストリーム3702の3番目のビデオ・アクセスユニットから抽出されたBピクチャ3723については、参照すべきBrピクチャ3713が欠落しているので復号処理をスキップする」といったエラー処理を実行できる。このように、デコーダは復号処理ごとに復号カウンタの値3604A、3604Bをチェックする。それにより、デコーダはビデオ・アクセスユニットの読み込みエラーを迅速に検出でき、かつ、適切なエラー処理を迅速に実行できる。その結果、再生映像へのノイズの混入を防止することができる。
図37の(b)では、復号カウンタの値3604C、3604Dがビデオ・ストリーム3701、3702ごとにインクリメントされる。従って、復号カウンタの値3604C、3604Dは、同じ3Dビデオ・アクセスユニット内の一対のピクチャ間で等しい。その場合、デコーダはベースビュー・ストリーム3701のビデオ・アクセスユニットを一つ復号した時点では、「その復号カウンタの値3604Cが、次に復号されるべきディペンデントビュー・ストリーム3702のビデオ・アクセスユニットの復号カウンタの値3604Dに等しい」と予測できる。一方、デコーダはディペンデントビュー・ストリーム3702のビデオ・アクセスユニットを一つ復号した時点では、「その復号カウンタの値3604Dに1を加えた値が、次に復号されるべきベースビュー・ストリーム3701のビデオ・アクセスユニットの復号カウンタの値3604Cに等しい」と予測できる。従って、デコーダはいずれの時点でも、復号カウンタの値3604C、3604Dからビデオ・アクセスユニットの読み込みエラーを迅速に検出でき、かつ、適切なエラー処理を迅速に実行できる。その結果、再生映像へのノイズの混入を防止することができる。
≪3D映像に利用されるクリップ情報ファイル≫
図38の(a)、(b)はそれぞれ、ベースビュー・クリップ情報ファイル3801、ディペンデントビュー・クリップ情報ファイル3802のデータ構造を示す模式図である。ここで、「ベースビュー・クリップ情報ファイル」は、ベースビュー・ストリーム・ファイルに対応付けられるべきクリップ情報ファイルであり、この実施形態では2D/レフトビュー・クリップ情報ファイルに相当する。「ディペンデントビュー・クリップ情報ファイル」は、ディペンデントビュー・ストリーム・ファイルに対応付けられるべきクリップ情報ファイルであり、この実施形態ではライトビュー・クリップ情報ファイル及びデプスマップ・クリップ情報ファイルに相当する。各クリップ情報ファイル3801、3802は、図11に示されている2Dクリップ情報ファイルと同様、クリップ情報3811、3821、ストリーム属性情報3812、3822、及びエントリ・マップ3813、3823を含む。それらのデータ構造は、図11−13に示されている2Dクリップ情報ファイル内のデータ構造に等しい。ベースビュー・クリップ情報ファイル3801は更に、3Dメタデータ3814を含む。その他に、ディペンデントビュー・クリップ情報ファイル3802のストリーム属性情報3822には条件が課せられ、エントリ・マップ3823には情報が追加されている。
≪3Dメタデータ≫
図39は、3Dメタデータ3814のデータ構造を示す模式図である。3Dメタデータ3814は、ベースビュー・ストリーム・ファイルに多重化されたPGストリーム、IGストリーム、及びセカンダリ・ビデオ・ストリームのそれぞれに対するクロッピング処理に利用される情報である。「クロッピング処理」とは、各ストリームから再生される2D映像に奥行き感を与えるための処理をいう。その処理では、各2D映像を水平方向に変位させることによって、レフトビューとライトビューとの対が生成される。そのときの変位量は、その2D映像に与えられるべき奥行き感を生み出す両眼視差に相当する。3Dメタデータ3814は特に、その変位量をピクセル数で表した値、すなわち「オフセット値」を含む。
図39の(a)を参照するに、3Dメタデータ3814は、PGストリーム、IGストリーム、及びセカンダリ・ビデオ・ストリームのPID別にテーブル3901を含む。各テーブル3901にはPTS3902とオフセット値3903との対が一般に複数記載されている。PTS3902は、PGストリーム、IGストリーム、及びセカンダリ・ビデオ・ストリーム内の一つのフレーム又はフィールドの表示時刻を示す。オフセット値3903は、そのPTS3902が割り当てられたフレーム又はフィールドに対するオフセット値を表す。オフセット値3903はマイナス値であってもよい。このPTS3902とオフセット値3903との対3904を「オフセット・エントリ」という。各オフセット・エントリの有効区間は、そのオフセット・エントリのPTSから次のオフセット・エントリのPTSまでである。図39の(a)の例では、オフセット・エントリ#1のPTSが180000であり、オフセット・エントリ#2のPTSが270000であり、オフセット・エントリ#3のPTSが360000である。その場合、図39の(b)に示されているように、オフセット・エントリ#1のオフセット値“+5”は、180000から270000までのSTCの範囲3904Aで有効であり、オフセット・エントリ#2のオフセット値“+3”は、270000から360000までのSTCの範囲3904Bで有効である。
≪ディペンデントビュー・ストリームに関するストリーム属性情報≫
図34の説明で述べたとおり、ディペンデントビュー・ストリームはベースビュー・ストリームを利用して圧縮される。従って、ディペンデントビュー・ストリームはベースビュー・ストリームとビデオ・ストリーム属性が等しく揃えられる。ここで、ベースビュー・ストリームに関するビデオ・ストリーム属性情報は、ベースビュー・クリップ情報ファイル3801のストリーム属性情報3812内でPID=0x1011に対応付けられている。ディペンデントビュー・ストリームに関するビデオ・ストリーム属性情報は、ディペンデントビュー・クリップ情報ファイル3802のストリーム属性情報3822内でPID=0x1012又は0x1013に対応付けられている。従って、それらのビデオ・ストリーム属性情報間では、図12に示されている各項目、すなわち、コーデック1211、解像度1212、アスペクト比1213、及び、フレームレート1214が一致する。コーデックの種類が一致していれば、ベースビュー・ストリームとディペンデントビュー・ストリームとのピクチャ間に符号化での参照関係が成立するので、各ピクチャを復号することができる。解像度、アスペクト比、及びフレームレートがいずれも一致していれば、左右の映像の画面表示を同期させることができる。それ故、それらの映像を3D映像として視聴者に違和感を与えることなく見せることができる。
≪ディペンデントビュー・ストリームに関するエントリ・マップ≫
図40の(a)は、図38の(b)に示されているディペンデントビュー・クリップ情報ファイル3802のエントリ・マップ3823のデータ構造を示す模式図である。図40の(a)を参照するに、エントリ・マップ3823は、ディペンデントビュー・ストリームに割り当てられたテーブル4001を含む。そのテーブル4001はエントリ・マップ・ヘッダ4011と複数のエントリ・ポイント4012とを含む。エントリ・マップ・ヘッダ4011は、そのテーブル4001に割り当てられたディペンデントビュー・ストリームのPID、すなわち0x1012又は0x1013を示す。各エントリ・ポイント4012は一対のPTS4013とSPN4014とを一つのEP_ID4016に対応付けている。そのPTS4013は、ディペンデントビュー・ストリームに含まれるいずれかのGOPの先頭のピクチャのPTSに等しい。SPN4014は、そのピクチャが格納されたソースパケット群の先頭のSPNに等しい。特に、エントリ・ポイント4012のPTS4013は、ベースビュー・クリップ情報ファイル3801のエントリ・マップ3813のうち、ベースビュー・ストリームに割り当てられたテーブル内のエントリ・ポイントのPTSに等しい。すなわち、同じ3Dビデオ・アクセスユニットに含まれる一対のピクチャの一方を含むソースパケット群の先頭にエントリ・ポイントが設定されているときは常に、他方を含むソースパケット群の先頭にもエントリ・ポイントが設定されている。
図41は、ベースビュー・ストリーム4110とディペンデントビュー・ストリーム4120とに設定されたエントリ・ポイントの例を示す模式図である。両ビデオ・ストリーム4110、4120では、先頭から数えて同じ順番のGOPが同じ再生期間の映像を表す。図41を参照するに、ベースビュー・ストリーム4110では、先頭のGOP#1、三番目のGOP#3、及び五番目のGOP#5の各先頭にエントリ・ポイント4101B、4103B、4105Bが設定されている。それに併せて、ディペンデントビュー・ストリーム4120でも、先頭のGOP#1、三番目のGOP#3、及び五番目のGOP#5の各先頭にエントリ・ポイント4101D、4103D、4105Dが設定されている。その場合、3D再生装置は例えばGOP#3から3D映像の飛び込み再生を開始するとき、対応するエントリ・ポイント4103B、4103Dから、再生されるべきソースパケット群の先頭のSPNを直ちに取得できる。こうして、3D映像の再生においても、飛び込み再生等、ビデオ・ストリームのランダムアクセスを要する処理の応答速度を向上することができる。
図40の(a)を再び参照するに、各エントリ・ポイント4012はエクステント開始フラグ4015を更に含む。エクステント開始フラグ4015は、ディペンデントビュー・ストリームが格納されたソースパケット群のうち、同じエントリ・ポイント4012のSPN4014で特定されるソースパケットが、BD−ROMディスク101上のエクステントのいずれかの先頭に位置するか否かを示す。図40の(b)は、エントリ・ポイントの示すSPNとBD−ROMディスク101上のエクステントとの間の関係を示す模式図である。例えば、EP_ID=0のエントリ・ポイントではエクステント開始フラグ4015の値が“1”である。その場合、同じエントリ・ポイントのSPN4014の値“3”は、ディスク101のトラック202上の第1エクステント4022の先頭に位置するソースパケットのSPNを示す。EP_ID=1のエントリ・ポイントではエクステント開始フラグ4015の値が“0”である。その場合、SPN4014の値“1500”は、第1エクステント4022の先頭以外の部分に記録されたソースパケットのSPNを示す。EP_ID=2のエントリポイントではエクステント開始フラグ4015の値が“1”である。その場合、SPN4014の値“3200”は、第2エクステント4023の先頭に位置するソースパケットのSPNを示す。従って、EP_ID=0、2の各エントリ・ポイントのSPN4014は、第1エクステント4022に含まれるソースパケットのSPNの範囲を示す。3D再生装置はその範囲の大きさから、第1エクステント4022のサイズを求めることができる。3D再生装置は更に、第1エクステント4022の読み出し処理において、ファイルシステムから第1エクステント4022の論理アドレスの範囲を求めなくても、BD−ROMドライブに読み出し対象の範囲を指定できる。それにより、3D再生装置はその読み出し処理を速やかに実行できる。エントリ・ポイント4012は更に、ディペンデントビュー・ストリームが格納されたソースパケット群のうち、BD−ROMディスク101上の各エクステントの先頭に位置するものには必ず設定される。従って、3D再生装置はいずれのエクステントの読み出し処理も速やかに実行できる。
同様なエクステント開始フラグは、ベースビュー・クリップ情報ファイル3801のエントリ・マップにおいても各エントリ・ポイントに含まれる。従って、3D再生装置はエクステント開始フラグ4015から、ベースビュー・ストリームが格納された各エクステントのサイズを取得できる。それ故、3D再生装置はBD−ROMディスク101からそれらのエクステントを速やかに読み出すことができる。
その他に、各エントリ・マップ・ヘッダ4011はエクステント開始タイプを含む。エクステント開始タイプは、BD−ROMディスク101のトラック202上で、ベースビュー・ストリームを格納しているエクステントと、ディペンデントビュー・ストリームを格納しているエクステントとのいずれが前に配置されているかを示す。従って、3D再生装置は、エクステント開始タイプを参照することにより、いずれのビデオ・ストリームを格納しているエクステントの読み出しをBD−ROMドライブに先に要求すべきかを簡単に判断できる。
<3D再生装置の構成>
以下、再生装置102がBD−ROMディスク101から上記の3D映像コンテンツを再生するために必要な構成、すなわち3D再生装置として必要な構成について説明する。その構成の基本部分は、図18−20に示されている2D再生装置の構成と同様である。従って、以下では、2D再生装置の構成からの拡張部分及び変更部分について説明し、基本部分については上記2D再生装置についての説明を援用する。また、2D映像の再生経路を規定する2Dプレイリスト・ファイルに従った2D映像の再生処理、すなわち2Dプレイリスト再生処理に利用される構成は、2D再生装置の構成と同様であるので、その詳細も上記2D再生装置についての説明を援用する。以下の説明では、3D映像の再生経路を規定する3Dプレイリスト・ファイルに従った3D映像の再生処理、すなわち3Dプレイリスト再生処理を想定する。
図42は、3D再生装置4200の機能ブロック図である。3D再生装置4200は、BD−ROMドライブ4201、再生部4200A、及び制御部4200Bを含む。再生部4200Aは、スイッチ4212、第1リード・バッファ4221、第2リード・バッファ4222、システム・ターゲット・デコーダ4203、及びプレーン加算部4210を含む。制御部4200Bは、動的シナリオ・メモリ4204、静的シナリオ・メモリ4205、プログラム実行部4206、再生制御部4207、プレーヤ変数記憶部4208、及びユーザイベント処理部4209を含む。再生部4200Aと制御部4200Bとは互いに異なる集積回路に実装されている。その他に、両者が単一の集積回路に統合されていてもよい。特に、動的シナリオ・メモリ4204、静的シナリオ・メモリ4205、プログラム実行部4206、及びユーザイベント処理部4209は、図18に示されている2D再生装置内のものと同様である。従って、それらの詳細については上記2D再生装置についての説明を援用する。
BD−ROMドライブ4201は、図18に示されている2D再生装置内のもの1801と同様な構成要素を含み、それらを利用することにより、再生制御部4207からの要求に従ってBD−ROMディスク101からデータを読み出す。そのデータのうち、AVストリーム・ファイルは、BD−ROMドライブ4201から第1リード・バッファ4221と第2リード・バッファ4222とのいずれかへ選択的に転送される。具体的には、まず、BD−ROMドライブ4201は再生制御部4207から、ベースビュー・ストリーム・ファイルとディペンデントビュー・ストリーム・ファイルとのそれぞれに対する読み出し要求をエクステント単位で交互に受ける。BD−ROMドライブ4201はそれらの要求に応じ、各AVストリーム・ファイルに属するエクステントを交互にスイッチ4212へ転送する。スイッチ4212はそれらのエクステントのうち、ベースビュー・ストリーム・ファイルに属するものを第1リード・バッファ4221へ送出し、ディペンデントビュー・ストリーム・ファイルに属するものを第2リード・バッファ4222へ送出する。このように、3D映像の再生では、ベースビュー・ストリーム・ファイルとディペンデントビュー・ストリーム・ファイルとの両方がパラレルに各リード・バッファ4221、4222へ転送されなければならない。従って、BD−ROMドライブ4201には2D再生装置内のBD−ROMドライブ1801以上のアクセス・スピードが求められる。
第1リード・バッファ4221と第2リード・バッファ4222とはいずれも、再生部4200A内のメモリ素子を利用したバッファ・メモリである。特に、単一のメモリ素子内の異なる領域が各リード・バッファ4221、4222として利用される。その他に、異なるメモリ素子が個別に各リード・バッファ4221、4222として利用されてもよい。第1リード・バッファ4221は、BD−ROMドライブ4201から転送されるベースビュー・ストリーム・ファイルを格納する。第2リード・バッファ4222は、BD−ROMドライブ4201から転送されるディペンデントビュー・ストリーム・ファイルを格納する。
再生制御部4207は、3Dプレイリスト再生処理をプログラム実行部4206等から命じられたとき、まず、静的シナリオ・メモリ4205に格納された3Dプレイリスト・ファイルを参照する。例えば図30、31に示されているように、3Dプレイリスト・ファイル243B、243Cはメインパス3004、3104とサブパス3005、3105とを規定する。再生制御部4207は次に、そのメインパス3004、3104の中からプレイアイテム情報#1−3を順番に読み出し、それらを利用してベースビュー・ストリーム・ファイルの部分LCL1−3を順番に特定する。それと並行して、再生制御部4207は更にサブパス3005、3105の中からサブプレイアイテム情報#1−3を順番に読み出し、それらを利用してディペンデントビュー・ストリーム・ファイルの部分RCL1−3、DCL1−3を順番に特定する。再生制御部4207はその後、静的シナリオ・メモリ4205にアクセスして、各部分に対応付けられたクリップ情報ファイルのうち、図13、40に示されているエントリ・マップ1103、3823を参照する。それにより、再生制御部4207は、エントリ・マップ・ヘッダ1301、4011に記述されたエクステント開始タイプから、再生開始地点のエクステントがベースビュー・ストリーム・ファイルとディペンデントビュー・ストリーム・ファイルとのいずれに属するかを判定する。その判定結果から、再生制御部4207はスイッチ4212の初期位置を決定する。再生制御部4207は続いて、BD−ROMドライブ4201に対し、その再生開始地点からベースビュー・ストリーム・ファイルとディペンデントビュー・ストリーム・ファイルとをエクステント単位で交互に読み出すように要求する。特に、両方のAVストリーム・ファイルのうち、上記の判定結果の示す方から先に読み出しが要求される。最初のエクステントの全体がBD−ROMドライブ4201からいずれかのリード・バッファ4221、4222へ転送されたとき、そのエクステントが更にそのリード・バッファ4221、4222からシステム・ターゲット・デコーダ4203へ転送される。それらの処理に加えて、再生制御部4207は、静的シナリオ・メモリ4205に格納されたベースビュー・クリップ情報ファイルの中から、図39に示されている3Dメタデータ3814を読み出してプレーン加算部4210へ転送する。
システム・ターゲット・デコーダ4203は、まず、第1リード・バッファ4221に格納されたベースビュー・ストリーム・ファイルと、第2リード・バッファ4222に格納されたディペンデントビュー・ストリーム・ファイルとから交互にソースパケットを読み出し、多重分離処理によってそれらから各エレメンタリ・ストリームを分離する。システム・ターゲット・デコーダ4203は次に、各エレメンタリ・ストリームに対して個別に復号処理を行う。システム・ターゲット・デコーダ4203は更に、復号後のベースビュー・ストリーム、ディペンデントビュー・ストリーム、セカンダリ・ビデオ・ストリーム、IGストリーム、及びPGストリームをそれぞれ、内蔵の専用メモリ、すなわち、2D/左映像プレーン・メモリ、右映像プレーン・メモリ、副映像プレーン・メモリ、IGプレーン・メモリ、及びPGプレーン・メモリに書き込む。システム・ターゲット・デコーダ4203の詳細については後述する。
プレーヤ変数記憶部4208は、2D再生装置内のものと同様に、図19に示されているSPRMを含む。しかし、図19では予備であったSPRM(24)−(32)のいずれか二つがそれぞれ、上記二種類のフラグ(A)、(B)を含む。具体的には、SPRM(24)がフラグ(A)を含み、SPRM(25)がフラグ(B)を含む。SPRM(24)が「0」であるときは再生装置102が2D映像の再生のみに対応可能であり、「1」であるときは3D映像の再生にも対応可能である。SPRM(25)が「0」であるときは再生装置102の3D映像再生モードがL/Rモードであり、「1」であるときはデプス・モードである。
プレーン加算部4210はシステム・ターゲット・デコーダ4203から、2D/左映像プレーン・データ、右映像プレーン・データ、副映像プレーン・データ、IGプレーン・データ、PGプレーン・データ、及びイメージ・プレーン・データを受信し、それらを互いに重畳して一つの映像フレーム又はフィールドに合成する。合成後の映像フレーム又はフィールドは表示装置103へ送出され、その画面に表示される。
図43は、プレーン加算部4210の機能ブロック図である。プレーン加算部4210は、視差映像生成部4320、スイッチ4310、四つの加算部4311−4314、及び四つのクロッピング処理部4321−4324を含む。
視差映像生成部4320は、システム・ターゲット・デコーダ4203から2D/左映像プレーン・データ4301と右映像プレーン・データ4302とを受ける。再生装置102の3D映像再生モードがL/Rモードであるとき、2D/左映像プレーン・データ4301はレフトビュー・ストリーム内の一つの映像フレーム又はフィールドを表し、右映像プレーン・データ4302はライトビュー・ストリーム内の一つの映像フレーム又はフィールドを表す。そのとき、視差映像生成部4320は2D/左映像プレーン・データ4301と右映像プレーン・データ4302とをそのままスイッチ4310へ送出する。一方、3D映像再生モードがデプス・モードであるとき、2D/左映像プレーン・データ4301は2Dビデオ・ストリーム内の一つの映像フレーム又はフィールドを表し、右映像プレーン・データ4302はその映像フレーム又はフィールドのデプスマップを表す。そのとき、視差映像生成部4320は、まず、そのデプスマップからその映像フレーム又はフィールド内の各部の両眼視差を計算する。視差映像生成部4320は次に、その映像フレーム又はフィールド内の各部の表示位置を、計算された両眼視差に応じて左右に移動させて、レフトビューとライトビューとのそれぞれを表す映像フレーム又はフィールドを構成する。視差映像生成部4320は更に、左右の映像フレーム又はフィールドを2D/左映像プレーン・データ4301と右映像プレーン・データ4302としてスイッチ4310へ送出する。
スイッチ4310は、PTSの等しい2D/左映像プレーン・データ4301と右映像プレーン・データ4302とをその順で第1加算部4311へ送出する。
第1加算部4311は、スイッチ4310からは2D/左映像プレーン・データ4301と右映像プレーン・データ4302とを交互に受ける。一方、第1クロッピング処理部4321からは、レフトビューとライトビューとを表す一対の副映像プレーン・データを交互に受ける。第1加算部4311は次に、2D/左映像プレーン・データ4301には、レフトビューを表す副映像プレーン・データを重畳し、右映像プレーン・データ4302には、ライトビューを表す副映像プレーン・データを重畳する。重畳後の左右の映像プレーン・データは交互に第2加算部4312へ送出される。
第2加算部4312は、第1加算部4311からは左右の映像プレーン・データを交互に受ける。一方、第2クロッピング処理部4322からは、レフトビューとライトビューとを表す一対のPGプレーン・データを交互に受ける。第2加算部4312は次に、レフトビューを表す映像プレーン・データには、レフトビューを表すPGプレーン・データを重畳し、ライトビューを表す映像プレーン・データには、ライトビューを表すPGプレーン・データを重畳する。重畳後の左右の映像プレーン・データは交互に第3加算部4313へ送出される。
第3加算部4313は、第2加算部4312からは左右の映像プレーン・データを交互に受ける。一方、第3クロッピング処理部4323からは、レフトビューとライトビューとを表す一対のIGプレーン・データを交互に受ける。第3加算部4313は次に、レフトビューを表す映像プレーン・データには、レフトビューを表すIGプレーン・データを重畳し、ライトビューを表す映像プレーン・データには、ライトビューを表すIGプレーン・データを重畳する。重畳後の左右の映像プレーン・データは交互に第4加算部4314へ送出される。
第4加算部4314は、第3加算部4313からは左右の映像プレーン・データを交互に受ける。一方、第4クロッピング処理部4324からは、レフトビューとライトビューとを表す一対のイメージ・プレーン・データを交互に受ける。第4加算部4314は次に、レフトビューを表す映像プレーン・データには、レフトビューを表すイメージ・プレーン・データを重畳し、ライトビューを表す映像プレーン・データには、ライトビューを表すイメージ・プレーン・データを重畳する。重畳後の左右の映像プレーン・データは交互に表示装置103へ送出される。
こうして、図43に矢印4300で示されているように、2D/左映像プレーン・データ4301、右映像プレーン・データ4302、副映像プレーン・データ4303、IGプレーン・データ4304、PGプレーン・データ4305、及びイメージ・プレーン・データ4306はその順で重畳される。それらの合成処理により、各プレーン・データの示す映像は表示装置103の画面上に、2D/左映像プレーン又は右映像プレーン、副映像プレーン、IGプレーン、PGプレーン、及びイメージ・プレーンの順に重ねられたように表示される。
第1クロッピング処理部4321は3Dメタデータ3814を利用して、副映像プレーン・データ4303に対してクロッピング処理を行う。それにより、その副映像プレーン・データ4303は、レフトビューとライトビューとを表す一対の副映像プレーン・データに変換されて交互に送出される。
第2クロッピング処理部4322は3Dメタデータ3814を利用して、PGプレーン・データ4304に対してクロッピング処理を行う。それにより、そのPGプレーン・データ4304は、レフトビューとライトビューとを表す一対のPGプレーン・データに変換されて交互に送出される。
第3クロッピング処理部4323は3Dメタデータ3814を利用して、IGプレーン・データ4305に対してクロッピング処理を行う。それにより、そのIGプレーン・データ4305は、レフトビューとライトビューとを表す一対のIGプレーン・データに変換されて交互に送出される。
図44は、第1クロッピング処理部4321−第3クロッピング処理部4323のそれぞれによるクロッピング処理を示す模式図である。図44では、第2クロッピング処理部4322によるPGプレーン・データ4304に対するクロッピング処理を例に挙げている。第2クロッピング処理部4322はまず、図39に示されている3Dメタデータ3814の中から、PGストリームのPID=0x1200に対応付けられたテーブル3901を検索する。第2クロッピング処理部4322は次に、そのテーブル3901の中から、現時点で有効なオフセット・エントリ3904を検索して、そのオフセット値3903を取得する。PGプレーン・データ4304を重畳すべき映像プレーン・データが2D/左映像プレーン・データ4301である場合、第2クロッピング処理部4322は、図44の(a)に示されているように、2D/左映像プレーン・データ4301の位置に対してPGプレーン・データ4304の位置を、取得されたオフセット値に等しいピクセル数4401Lだけ水平方向に変位させる。そのとき、そのオフセット値が正であればPGプレーン・データ4304は右に変位し、負であれば左に変位する。第2クロッピング処理部4322はその後、2D/左映像プレーン・データ4301の範囲からはみ出ているPGプレーン・データ4304の領域4402Lを除去し、残りの領域4403Lを2D/左映像プレーン・データ4301に重畳する。一方、重畳先の映像プレーン・データが右映像プレーン・データ4302である場合、第2クロッピング処理部4322は、図44の(b)に示されているように、右映像プレーン・データ4302の位置に対してPGプレーン・データ4304の位置を、オフセット値に等しいピクセル数4401Rだけ水平方向に変位させる。そのとき、図44の(a)に示されている場合とは逆に、そのオフセット値が正であればPGプレーン・データ4304は左に変位し、負であれば右に変位する。第2クロッピング処理部4322はその後、図44の(a)に示されている場合と同様に、右映像プレーン・データ4302の範囲からはみ出しているPGプレーン・データ4304の領域4402Rを除去し、残りの領域4403Rを右映像プレーン・データ4302に重畳する。第1クロッピング処理部4321は副映像プレーン・データ4303に対して同様にクロッピング処理を行い、第3クロッピング処理部4323はIGプレーン・データ4305に対して同様にクロッピング処理を行う。
図45は、図44に示されているクロッピング処理によって重畳されたレフトビューとライトビュー、及びそれらから視聴者に知覚される3D映像を示す模式図である。レフトビューでは、図45の(a)に示されているように、左映像プレーン4501Lに対してPGプレーン4502がオフセット値4401Lだけ右に変位しているので、PGプレーン4502の左側の領域4503Lが左映像プレーン4501Lに重なって見える。その結果、PGプレーン4502内の字幕の2D映像4504が、元の位置よりもオフセット値4401Lだけ右に変位して見える。ライトビューでは逆に、図45の(b)に示されているように、右映像プレーン4501Rに対してPGプレーン4502がオフセット値4401Rだけ左に変位しているので、PGプレーン4502の右側の領域4503Rが右映像プレーン4501Rに重なって見える。その結果、PGプレーン4502内の字幕の2D映像4504が、元の位置よりもオフセット値4401Rだけ左に変位して見える。その結果、図45の(c)に示されているように、視聴者4505には、字幕の3D映像4504が映像プレーン4506よりも手前に見える。このように、クリッピング処理を利用して、一つのプレーン・データから、レフトビューとライトビューとを表すプレーン・データの対を作成する。それにより、視差映像を再生することができる。すなわち、平面的なイメージに対して奥行き感を与えることができる。特に、視聴者にその平面的なイメージを画面から浮かび上がるように見せることができる。
図43を再び参照するに、イメージ・プレーン・データ4306は、プログラム実行部4206からシステム・ターゲット・デコーダ4203へ転送されたグラフィックス・データが、システム・ターゲット・デコーダ4203によって復号されたものである。そのグラフィックス・データはJPEG又はPNG等のラスタデータであり、メニュー等のGUI用グラフィックス部品を表す。第4クロッピング処理部4324はイメージ・プレーン・データ4306に対するクロッピング処理を他のクロッピング処理部4321−4323と同様に行う。但し、第4クロッピング処理部4324は他のクロッピング処理部4321−4323とは異なり、オフセット値を3Dメタデータ3814ではなく、プログラムAPI4330によって指定されたオフセット情報から読み出す。ここで、プログラムAPI4330はプログラム実行部4206によって実行される。それにより、グラフィックス・データの表すイメージの奥行きに相当するオフセット情報が算出されて、第4クロッピング処理部4324に渡される。
プレーン加算部4210は上記の処理の他に、四つの加算部4311−4314によって合成されたプレーン・データの出力形式を、表示装置103等、そのデータの出力先の装置による3D映像の表示方式に合わせて変換する。例えば、出力先の装置が経時分離方式を利用するとき、プレーン加算部4210は合成後のプレーン・データを一つの映像フレーム又はフィールドとして送出する。一方、出力先の装置がレンチキュラーレンズを利用するとき、プレーン加算部4210は内蔵のバッファ・メモリを利用して、左右の映像のプレーン・データを一つの映像フレーム又はフィールドに合成し、その後送出する。具体的には、プレーン加算部4210は、先に合成された左映像のプレーン・データを一旦、そのバッファ・メモリに格納して保持する。プレーン加算部4210は続いて、右映像のプレーン・データを合成して、バッファ・メモリに保持された左映像のプレーン・データと更に合成する。その合成では、左右の映像の各プレーン・データが縦方向に細長い短冊形の小領域に分割され、各小領域が一つのフレーム又はフィールドの中に横方向に交互に並べられて一つのフレーム又はフィールドに再構成される。こうして、左右の映像のプレーン・データが一つの映像フレーム又はフィールドに合成される。プレーン加算部4210はその合成後の映像フレーム又はフィールドを出力先の装置へ送出する。
≪システム・ターゲット・デコーダの構成≫
図46は、図42に示されているシステム・ターゲット・デコーダ4203の機能ブロック図である。図46に示されている構成要素は、図20に示されている2D再生装置のものとは次の二点で異なる:(1)リード・バッファから主映像デコーダへの入力系統が二重化されている点、及び(2)主映像デコーダが3D映像デコーダであって、ベースビュー・ストリームとディペンデントビュー・ストリームとを交互に復号できる点。一方、副映像デコーダ、IGデコーダ、PGデコーダ、主音声デコーダ、副音声デコーダ、音声ミキサ、イメージ・プロセッサ、及び各プレーン・メモリは、図20に示されている2D再生装置のものと同様である。従って、以下では、図46に示されている構成要素のうち、図20に示されているものとは異なるものについて説明し、同様なものの詳細については図20についての説明を援用する。
第1ソース・デパケタイザ4611は、第1リード・バッファ4221からソースパケットを読み出し、その中からTSパケットを取り出して第1PIDフィルタ4613へ送出する。第2ソース・デパケタイザ4612は、第2リード・バッファ4222からソースパケットを読み出し、その中からTSパケットを取り出して第2PIDフィルタ4614へ送出する。各ソース・デパケタイザ4611、4612は更に、各TSパケットの送出時刻を、各ソースパケットのATSに応じて調整する。その調整方法は、図20に示されているソース・デパケタイザ2010のものと同様であるので、その詳細については図20についての説明を援用する。
第1PIDフィルタ4613は、第1ソース・デパケタイザ4611から受信されたTSパケットのPIDを、再生制御部4207から予め指定されたPIDと比較する。両方のPIDが一致したとき、第1PIDフィルタ4613はそのTSパケットを、そのPIDに応じ、3D映像デコーダ4615内のTB(1)4601、副映像デコーダ、IGデコーダ、PGデコーダ、音声デコーダ、及び副音声デコーダのいずれかへ転送する。同様に、第2PIDフィルタ4614は、第2ソース・デパケタイザ4612から受信された各TSパケットを、そのPIDに応じて各デコーダへ転送する。ここで、図33に示されているように、ディペンデントビュー・ストリーム・ファイルは一般にディペンデントビュー・ストリームしか含まない。従って、3Dプレイリスト再生では、第2PIDフィルタ4614はTSパケットを主に3D映像デコーダ4615内のTB(2)4608へ転送する。
図46を参照するに、3D映像デコーダ4615は、TB(1)4601、MB(1)4602、EB(1)4603、TB(2)4608、MB(2)4609、EB(2)4610、バッファ・スイッチ4606、圧縮映像デコーダ4604、DPB4605、及びピクチャ・スイッチ4607を含む。TB(1)4601、MB(1)4602、EB(1)4603、TB(2)4608、MB(2)4609、EB(2)4610、及びDPB4605はいずれもバッファ・メモリである。各バッファ・メモリは、3D映像デコーダ4615に内蔵されたメモリ素子の一領域を利用する。その他に、それらのバッファ・メモリのいずれか又は全てが、異なるメモリ素子に分離されていてもよい。
TB(1)4601は、ベースビュー・ストリームを含むTSパケットを第1PIDフィルタ4613から受信して、そのまま蓄積する。MB(1)4602は、TB(1)4601に蓄積されたTSパケットからPESパケットを復元して蓄積する。そのとき、各TSパケットからTSヘッダが除去される。EB(1)4603は、MB(1)4602に蓄積されたPESパケットから、符号化されたビデオ・アクセスユニットを抽出して蓄積する。そのとき、各PESパケットからPESヘッダが除去される。
TB(2)4608は、ディペンデントビュー・ストリームを含むTSパケットを第2PIDフィルタ4614から受信して、そのまま蓄積する。MB(2)4609は、TB(2)4608に蓄積されたTSパケットからPESパケットを復元して蓄積する。そのとき、各TSパケットからTSヘッダが除去される。EB(2)4610は、MB(2)4609に蓄積されたPESパケットから、符号化されたビデオ・アクセスユニットを抽出して蓄積する。そのとき、各PESパケットからPESヘッダが除去される。
バッファ・スイッチ4606は、EB(1)4603とEB(2)4610とのそれぞれに蓄積されたビデオ・アクセスユニットを、元のTSパケットの示すDTSの時刻に圧縮映像デコーダ4604へ転送する。ここで、図35に示されているように、ベースビュー・ストリーム3501とディペンデントビュー・ストリーム3502との間では、同じ3Dビデオ・アクセスユニットに属する一対のピクチャのDTSが等しい。従って、バッファ・スイッチ4606は、EB(1)4603とEB(2)4610とのそれぞれに蓄積された、DTSの等しい一対のビデオ・アクセスユニットのうち、EB(1)4603に蓄積されたものを先に圧縮映像デコーダ4604へ転送する。その他に、バッファ・スイッチ4606は、図36に示されている、そのビデオ・アクセスユニット3600内の復号スイッチ情報3601を圧縮映像デコーダ4604から返してもらってもよい。その場合、バッファ・スイッチ4606はその復号スイッチ情報3601を使って、次に転送すべきビデオ・アクセスユニットをEB(1)4603とEB(2)4610とのいずれから転送すべきかを決定できる。
圧縮映像デコーダ4604は、バッファ・スイッチ4606から転送されたビデオ・アクセスユニットを復号する。ここで、そのビデオ・アクセスユニット内に格納された圧縮ピクチャの符号化形式、例えば、MPEG2、MPEG4AVC、及びVC1、並びにストリーム属性に応じて、圧縮映像デコーダ4604は復号方法を切り換える。圧縮映像デコーダ4604は更に、復号後のピクチャ、すなわち映像フレーム又はフィールドをDPB4605へ転送する。
DPB4605は、復号後のピクチャを一時的に保持する。圧縮映像デコーダ4604はPピクチャ及びBピクチャを復号するとき、DPB4605に保持されている復号後のピクチャを参照する。DPB4605は更に、保持している各ピクチャを、元のTSパケットの示すPTSの時刻にピクチャ・スイッチ4607へ転送する。
ピクチャ・スイッチ4607は、圧縮映像デコーダ4604から転送されたピクチャを2D/左映像プレーン・メモリ4620と右映像プレーン・メモリ4621とのいずれかに書き込む。そのピクチャが2D/レフトビュー・ストリームに属するとき、ピクチャ・スイッチ4607はそのピクチャを2D/左映像プレーン・メモリ4620に書き込み、ライトビュー・ストリームに属するとき、右映像プレーン・メモリ4621に書き込む。
<3D映像を表すAVストリーム・ファイルのディスク上での物理的な配置>
次に、3D映像を表すAVストリーム・ファイルの対、すなわち、ベースビュー・ストリーム・ファイルとディペンデントビュー・ストリーム・ファイルとをBD−ROMディスク101上に記録するとき、その3D映像のシームレス再生に有利な各AVストリーム・ファイルの物理的な配置について説明する。
3D再生装置は、3D映像の再生時、再生期間の一致するベースビュー・ストリーム・ファイルとディペンデントビュー・ストリーム・ファイルとをパラレルに処理しなければならない。図47は、両方のAVストリーム・ファイルに属するエクステントのディスク101上での配置を示す模式図である。
仮に図47の(a)のように、一つのベースビュー・ストリーム・ファイルの全体を一つのエクステント4701としてディスク101上に連続して記録し、その後に一つのディペンデントビュー・ストリーム・ファイルの全体を一つのエクステント4702として記録した場合を想定する。3D再生装置が両方のAVストリーム・ファイル4701、4702をパラレルに処理するとき、その処理に利用可能なバッファの容量は一般に限られている。従って、3D映像の再生経路は、図47の(a)に矢印(1)−(4)で示されているように、各エクステント4701、4702を一部ずつ交互に進む。それに伴い、図47の(a)に破線で示されているように、読み出し対象のエクステントが一方から他方へ切り替わる度にジャンプが生じる。特にそのジャンプの距離は各AVストリーム・ファイルの全体と同程度に長い。その結果、BD−ROMドライブによる各AVストリーム・ファイルの読み出し処理を3D映像デコーダによる復号処理に間に合わせることが難しいので、シームレス再生を確実に継続することが難しい。
実施形態1では、図47の(b)に示されているように、両方のAVストリーム・ファイルのエクステントがインターリーブ配置で記録される。具体的には、一つのベースビュー・ストリーム・ファイルが複数のエクステント4701A、4701B、…に分割され、一つのディペンデントビュー・ストリーム・ファイルが複数のエクステント4702A、4702B、…に分割される。更に、両方のAVストリーム・ファイルのエクステントが交互にディスク101上に配置される。その場合、3D映像の再生経路は、図47の(b)に矢印(1)−(4)で示されているように、各エクステント4701A、4701B、4702A、4702B、…を先頭から順番に進む。それにより、3D再生装置は、AVストリーム・ファイルの全体と同程度のジャンプを発生させることなく、両方のAVストリーム・ファイルをエクステント単位で交互に読み出すことができる。それは、3D映像のシームレス再生に有利である。
≪エクステント当たりの再生時間≫
エクステント当たりのビデオ・ストリームの再生時間は次に述べる条件を満たす。図48は、その再生時間と再生経路との間の関係を示す模式図である。
仮に図48の(a)のように、ベースビュー・ストリーム・ファイルのエクステント4801とディペンデントビュー・ストリーム・ファイルのエクステント4802とが隣接する場合を想定する。前者のエクステント4801に含まれるベースビュー・ストリームの再生時間は4秒間であり、後者のエクステント4802に含まれるディペンデントビュー・ストリームの再生時間は1秒間である。ここで、ディペンデントビュー・ストリームの復号に必要なベースビュー・ストリームの再生時間は、そのディペンデントビュー・ストリームの再生時間に等しい。従って、3D再生装置内のバッファ容量の節約には、3D映像の再生経路が、図48の(a)に矢印4810で示されているように、各AVストリーム・ファイルのエクステント4801、4802を交互に同じ再生時間ずつ、例えば1秒間ずつ進むことが好ましい。しかし、その場合、図48の(a)に破線で示されているように、ビデオ・ストリームの再生時間が長いエクステント4801の読み出しの途中でジャンプが生じる。
実施形態1では、図48の(b)に示されているように、再生期間の一致する各AVストリーム・ファイルの部分が、隣接する一対のエクステントに含まれる。特にそれらのエクステント間ではビデオ・ストリームの再生時間が等しい。具体的には、ベースビュー・ストリーム・ファイルの先頭のエクステント4801Aとディペンデントビュー・ストリーム・ファイルの先頭のエクステント4802Aとではビデオ・ストリームの再生時間が共に1秒間に等しく、各AVストリーム・ファイルの二番目のエクステント4801B、4802Bではビデオ・ストリームの再生時間が共に0.7秒間に等しい。このような配置に対しては3D映像の再生経路は、図48の(b)に矢印4820で示されているように、各エクステント4801A、4802A、4801B、4802B、…を先頭から順番に進む。更に、いずれのエクステントの読み出しの途中にもジャンプが生じない。従って、3D再生装置はジャンプを発生させることなく、各エクステントを連続して読み込むことができる。それは、3D映像のシームレス再生に更に有利である。
≪エクステントの先頭に含まれるべきピクチャ≫
ベースビュー・ストリーム・ファイルに属する各エクステントの先頭はベースビュー・ストリームのIピクチャを含み、ディペンデントビュー・ストリーム・ファイルに属する各エクステントの先頭はディペンデントビュー・ストリームのPピクチャを含む。そのPピクチャは、図34に示されているように、ベースビュー・ストリームのIピクチャを参照ピクチャとして圧縮されている。その場合、3D再生装置はクリップ情報ファイルのエントリ・ポイントを使って各エクステントのサイズを特定できる。従って、3D再生装置は、BD−ROMディスク101から両方のAVストリーム・ファイルのエクステントを交互に読み出す処理を簡単化できる。
≪エクステントの配置順と再生経路≫
図49は、2D/レフトビュー・ストリーム・ファイル、ライトビュー・ストリーム・ファイル、及び、デプスマップ・ストリーム・ファイルのそれぞれに属するエクステント群のBD−ROMディスク101上での配置を示す模式図である。各AVストリーム・ファイルは、図2に示されている三種類のAVストリーム・ファイル245A−245Cのそれぞれに相当する。図49を参照するに、それらのエクステント群は、図47の(b)に示されているものと同様に、インターリーブ配置で記録されている。具体的には、まず、2D/レフトビュー・ストリーム・ファイルは複数のエクステントL1、L2、L3、…に分割され、ライトビュー・ストリーム・ファイルは複数のエクステントR1、R2、R3、…に分割され、デプスマップ・ストリーム・ファイルは複数のエクステントD1、D2、D3、…に分割されている。以下、2D/レフトビュー・ストリーム・ファイルに属するエクステントL1、L2、L3、…を「レフトビュー・エクステント」といい、ライトビュー・ストリーム・ファイルに属するエクステントR1、R2、R3、…を「ライトビュー・エクステント」といい、デプスマップ・ストリーム・ファイルに属するエクステントD1、D2、D3、…を「デプスマップ・エクステント」という。レフトビュー・エクステントL1−3、ライトビュー・エクステントR1−3、及びデプスマップ・エクステントD1−3は一つずつ交互に配置されている。そのインターリーブ配置では更に、図48の(b)に示されているものと同様に、再生期間の一致する各AVストリーム・ファイルの部分が、連続する三つのエクステントに個別に含まれる。特にそれらのエクステント間ではビデオ・ストリームの再生時間が等しい。例えば、先頭のレフトビュー・エクステントL1、先頭のライトビュー・エクステントR1、及び先頭のデプスマップ・エクステントD1が連続して配置されている。各エクステントL1、R1、D1に含まれるAVストリーム・ファイルの部分は再生期間が一致し、かつビデオ・ストリームの再生時間が等しい。その次に連続する三つのエクステントL2、R2、D2も同様である。
図49に示されているように、連続する三つのエクステントごとに、すなわち、再生期間の一致するレフトビュー・エクステント、ライトビュー・エクステント、及びデプスマップ・エクステントの組み合わせごとに配置順が一定である。特にサイズの小さいエクステントから順に配置されている。例えば、先頭のライトビュー・エクステントR1に含まれるピクチャは、図34に示されているように、先頭のレフトビュー・エクステントL1に含まれるピクチャを参照ピクチャとして圧縮されている。一方、デプスマップの画素当たりのデータ量、すなわち奥行き値のビット数は一般に、2D/レフトビュー・ストリームに含まれるピクチャの画素当たりのデータ量、すなわち色座標値とα値とのビット数よりも小さい。更に、図4、33に示されているように、ベースビュー・ストリーム・ファイルはディペンデントビュー・ストリーム・ファイルとは異なり、プライマリ・ビデオ・ストリームの他にも、プライマリ・オーディオ・ストリーム等のエレメンタリ・ストリームを含む。従って、先頭のライトビュー・エクステントR1のサイズSext2[1]と先頭のデプスマップ・エクステントD1のサイズSext3[1]とはいずれも一般に、先頭のレフトビュー・エクステントL1のサイズSext1[1]よりも小さい:Sext2[1]≦Sext1[1]、Sext3[1]≦Sext1[1]。それ故、図49では、先頭のデプスマップ・エクステントD1、先頭のライトビュー・エクステントR1、及び先頭のレフトビュー・エクステントL1がその順で配置されている。次に連続する三つのエクステントD2、R2、L2の順序も同様である。
図49には、2D再生装置に2D映像を再生させるときの再生経路4901、3D再生装置に3D映像をL/Rモードで再生させるときの再生経路4902、及び3D再生装置に3D映像をデプス・モードで再生させるときの再生経路4903がそれぞれ示されている。
2D映像の再生経路4901はレフトビュー・エクステントのみを順に通る。例えば、まず、先頭のレフトビュー・エクステントL1が読み出され、その直後のデプスマップ・エクステントD2とライトビュー・エクステントR2との読み出しが最初のジャンプJ2D1によってスキップされる。続いて、二番目のレフトビュー・エクステントL2が読み出され、その直後のデプスマップ・エクステントD3とライトビュー・エクステントR3との読み出しが二回目のジャンプJ2D2によってスキップされる。
L/Rモードでの3D映像の再生経路4902はレフトビュー・エクステントとライトビュー・エクステントとを交互に通る。例えば、まず、先頭のライトビュー・エクステントR1と先頭のレフトビュー・エクステントL1とが連続して読み出される。それらのエクステントR1、L1間では最初のゼロ・セクタ遷移J01が生じる。
「ゼロ・セクタ遷移」とは、論理アドレスの連続する二つのエクステント間での光ピックアップの移動をいう。ゼロ・セクタ遷移期間では、光ピックアップの位置が、直前に読み出されたエクステントの後端から次の読み出し対象のエクステントの先頭まで移動するように、BD−ROMディスク101の回転が行われる。その間、光ピックアップは読み出し動作を一旦停止して待機する。尚、ゼロ・セクタ遷移期間には、各エクステントに後続する誤り訂正符号(ECC)の読み出しとそれを用いた誤り訂正とが行われる期間、すなわちECC訂正時間が含まれてもよい。ゼロ・セクタ遷移時間Tjump-0は二つのパラメータの和で評価される。一方のパラメータは実際のゼロ・セクタ遷移に要する時間を表し、光ピックアップの移動時間とECC訂正時間とに基づいて例えば20m秒以下の値に規定されている。但し、エクステントの読み出しが連続的に行われる期間では通常、ゼロ・セクタ遷移での光ピックアップの待機時間とECC訂正時間とはいずれも無視できるほど短いので、このパラメータは0とみなされてもよい。他方のパラメータを「マージン時間」という。マージン時間は、ベースビュー・エクステントとディペンデントビュー・エクステントとの一対が復号されるごとに各リード・バッファ4221、4222の蓄積データ量が少しずつ増加するように設定されている。マージン時間の詳細については後述する。
先頭のレフトビュー・エクステントL1の後端が読み出された時、最初のジャンプJLR1が生じて、その直後のデプスマップ・エクステントD2の読み出しがスキップされる。続いて、二番目のライトビュー・エクステントR2と二番目のレフトビュー・エクステントL2とが、二回目のゼロ・セクタ遷移J02を挟んで連続して読み出される。更に、二回目のジャンプJLR2によって二番目のデプスマップ・エクステントD3の読み出しがスキップされる。
デプス・モードでの3D映像の再生経路4903はレフトビュー・エクステントとデプスマップ・エクステントとを交互に通る。例えば、まず、先頭のデプスマップ・エクステントD1が読み出され、その直後のライトビュー・エクステントR1の読み出しが最初のジャンプJLD1によってスキップされる。続いて、先頭のレフトビュー・エクステントL1と二番目のデプスマップ・エクステントD2とが、最初のゼロ・セクタ遷移J01を挟んで連続して読み出され、その直後のライトビュー・エクステントR2の読み出しが二回目のジャンプJLD2によってスキップされる。
図49ではエクステント群がインターリーブ配置を構成しているので、3D映像の再生経路4902、4903は各エクステントをディスク101上の順序で進めばよい。従って、図47の(b)に示されている場合と同様に、3D再生装置はL/Rモードとデプス・モードとのいずれでも、ジャンプ距離をAVストリーム・ファイルの全体よりも十分に縮小できる。図49では更に、再生期間の一致する三種類のエクステントが連続して配置されている。従って、図48の(b)に示されている場合と同様に、3D再生装置はいずれのエクステントも、その読み出しの途中にジャンプを発生させることなく、連続して読み込むことができる。その上、連続する三つのエクステントごとに配置順が一定であるので、3D映像の再生経路4902、4903はいずれも一定のパターンの繰り返しで構成される。それにより、3D再生装置はL/Rモードとデプス・モードとのいずれでも、BD−ROMドライブに対するベースビュー・エクステントとディペンデントビュー・エクステントとの各読み出し要求を一定のパターンで繰り返すことができる。更に、再生期間の一致するベースビュー・エクステントとディペンデントビュー・エクステントとの各組み合わせでは、ディペンデントビュー・エクステントが先に読み出される。従って、その逆の場合よりも、3D再生装置はバッファの容量を削減できる。
BD−ROMディスク101が多層ディスクであるとき、図49に示されているように、AVストリーム・ファイルの一連の部分に属するエクステント群が二つの記録層にわたって配置されていてもよい。その場合、層境界はベースビュー・エクステントの直後に設定されるので、次の記録層では後続のエクステント群が、再生期間の一致するエクステントの組み合わせの先頭に配置されるべきディペンデントビュー・エクステントから順に並べられる。図49に示されている例では、層境界LBは三番目のレフトビュー・エクステントL3の直後に設定され、次の記録層では後続のエクステント群が、四番目のデプスマップ・エクステントD4から順に配置されている。その結果、各再生経路4901、4902、4903では、層境界LBを越えるためのジャンプJLYが、ゼロ・セクタ遷移J01、J02、…とも、他のジャンプJ2D1、J2D2、…、JLR1、JLR2、…、JLD1、JLD2、…とも区別されない。但し、ジャンプJLYでは他のジャンプとは異なり、ジャンプ時間が、図24に示されている規定によってジャンプ距離と対応付けられている値よりも層切換時間、すなわち350m秒だけ長い値で評価される。
≪飛び込み再生≫
図50は、図49に示されているインターリーブ配置のうち、n番目のエクステントの組み合わせDn、Rn、Lnに対して設定されたエントリ・ポイントと飛び込み再生時の再生経路とを示す模式図である。図50を参照するに、各エクステントDn、Rn、Lnにはエントリ・ポイントが四つずつ設定されている。各エクステントDn、Rn、Lnのエントリ・ポイントでは、図41に示されているものと同様に、先頭から数えられた順番が同じものの間でPTSが等しい。例えば、ライトビュー・エクステントRnの先頭のエントリ・ポイントEPR1はレフトビュー・エクステントLnの先頭のエントリ・ポイントEPL1とPTSが等しく、ライトビュー・エクステントRnの二番目のエントリ・ポイントEPR2はレフトビュー・エクステントLnの二番目のエントリ・ポイントEPL2とPTSが等しい。
図50には更に、ライトビュー・エクステントRnの三番目のエントリ・ポイントEPR3から3D映像の飛び込み再生を行うときに選択可能な二種類の再生経路5001、5002が示されている。いずれの再生経路5001、5002も、まず、ライトビュー・エクステントRn上を三番目のエントリ・ポイントEPR3から終端まで進む。第1再生経路5001では、ライトビュー・エクステントRnの終端からレフトビュー・エクステントLnの三番目のエントリ・ポイントEPL3までジャンプJEPが生じる。その後、第1再生経路5001はレフトビュー・エクステントLn上をその三番目のエントリ・ポイントEPL3から進む。一方、第2再生経路5002は、ライトビュー・エクステントRnの終端から連続してレフトビュー・エクステントLnの先頭へ進み、更にレフトビュー・エクステントLn上をそのまま進む。但し、レフトビュー・エクステントLnの先頭のエントリ・ポイントEPL1から三番目のエントリ・ポイントEPL3までの範囲に含まれるソースパケットは、復号されることなく破棄される。
二種類の再生経路5001、5002は、次のように選択される。まず、ジャンプJEPのジャンプ距離、すなわち、レフトビュー・エクステントLnの先頭のエントリ・ポイントEPL1から三番目のエントリ・ポイントEPL3までのセクタ数が、図38の(a)に示されているベースビュー・クリップ情報ファイル3801のエントリ・マップ3823から算出される。次に、図24に示されている規定に従って、そのジャンプ距離に対応するジャンプ時間Tjump-EPが、ジャンプJEPの最大ジャンプ時間として決定される。一方、BD−ROMドライブ4201がレフトビュー・エクステントLnを先頭のエントリ・ポイントEPL1から三番目のエントリ・ポイントEPL3まで第1リード・バッファ4221へ読み出すのに要する時間Tread-EPが、BD−ROMドライブ4201から第1リード・バッファ4221へのデータ転送速度に上記のセクタ数を乗じた値から算出される。続いて、その時間Tread-EPが上記のジャンプ時間Tjump-EPと比較される。前者の時間Tread-EPが後者の時間Tjump-EPよりも短いとき、すなわち、Tread-EP<Tjump-EP、第1再生経路5001が選択される。一方、前者の時間Tread-EPが後者の時間Tjump-EPよりも長いとき、すなわち、Tread-EP>Tjump-EP、第2再生経路5002が選択される。こうして、レフトビュー・エクステントLnの先頭のエントリ・ポイントEPL1から三番目のエントリ・ポイントEPL3までの範囲の復号処理が、可能な限り迅速にスキップされる。その結果、飛び込み再生時に、映像の再生が実際に開始されるまでの時間を短縮することができる。
≪3D再生装置内の再生処理系統のデータ転送速度≫
ここで、以下の説明の前提として、3D再生装置内の再生処理系統のデータ転送速度を定義する。図51は、図42に示されている3D再生装置内の再生処理系統を示す模式図である。その再生処理系統は、BD−ROMディスク101から読み出されたベースビュー・ストリーム・ファイルとディペンデントビュー・ストリーム・ファイルとを3D映像データVDと音声データADとに変換する。図51を参照するに、BD−ROMドライブ4201は両方のAVストリーム・ファイルをエクステント単位で交互に読み出し、第1リード・バッファ4221と第2リード・バッファ4222とへ交互に速度Rud-3D(ビット/秒)で格納する。この速度Rud-3Dを「3D映像読み出し速度」という。3D映像読み出し速度Rud-3Dは例えば72Mbpsである。システム・ターゲット・デコーダ4203は第1リード・バッファ4221からソースパケットを平均転送速度Rext1-3D(ビット/秒)で読み出す。この平均転送速度Rext1-3Dを「レフトビュー転送速度」という。レフトビュー転送速度Rext1-3Dは一般にエクステントごとに異なる。レフトビュー転送速度Rext1-3Dの最高値Rmax1-3Dは2D/レフトビュー・ストリーム・ファイルに対するシステムレートの192/188倍に等しい。一方、システム・ターゲット・デコーダ4203は第2リード・バッファ4222から、ライトビュー・ストリーム・ファイルの一部を含むソースパケットを第1平均転送速度Rext2(ビット/秒)で読み出し、デプスマップ・ストリーム・ファイルの一部を含むソースパケットを第2平均転送速度Rext3(ビット/秒)で読み出す。第1平均転送速度Rext2を「ライトビュー転送速度」といい、第2平均転送速度Rext3を「デプスマップ転送速度」という。いずれの転送速度Rext2、Rext3も一般にエクステントごとに異なる。ライトビュー転送速度Rext2の最高値Rmax2はライトビュー・ストリーム・ファイルに対するシステムレートの192/188倍と等しく、デプスマップ転送速度Rext3の最高値Rmax3はデプスマップ・ストリーム・ファイルに対するシステムレートの192/188倍に等しい。尚、システムレートは、図11、38に示されているように、クリップ情報ファイル内のクリップ情報に記述されている。BD−ROMドライブ4201によってディスク101から一つのエクステントを読み出している間、システム・ターゲット・デコーダ4203の復号処理に伴う各リード・バッファ4221、4222のアンダーフローを防ぐには、3D映像読み出し速度Rud-3Dは次式(2)のとおり、各転送速度の最高値Rmax1-3D、Rmax2、Rmax3以上であればよい:
図51に示されている3D再生装置内の再生処理系統は、BD−ROMディスク101から2D映像の再生処理系統としても利用可能である場合を更に想定する。2D映像の再生では、BD−ROMドライブ4201はレフトビュー・エクステントのみを第1リード・バッファ4221へ速度Rud-2D(ビット/秒)で格納する。この速度Rud-2Dを「2D映像読み出し速度」という。2D映像読み出し速度Rud-2Dは例えば54Mbpsである。システム・ターゲット・デコーダ4203は第1リード・バッファ4221からソースパケットを平均転送速度Rext1-2D(ビット/秒)で読み出す。この平均転送速度Rext1-2Dを「2D映像転送速度」という。2D映像転送速度Rext1-2Dは一般にエクステントごとに異なる。2D映像転送速度Rext1-2Dの最高値Rmax1-2Dは2D/レフトビュー・ストリーム・ファイルに対するシステムレートの192/188倍に等しい。BD−ROMドライブ4201によってディスク101から一つのエクステントを読み出している間、システム・ターゲット・デコーダ4203の復号処理に伴う第1リード・バッファ4221のアンダーフローを防ぐには、2D映像読み出し速度Rud-2Dは次式(3)のとおり、2D映像転送速度の最高値Rmax1-2Dよりも高ければよい:
≪2D映像のシームレス再生に必要なレフトビュー・エクステントの配置条件≫
図49に示されているように、2D映像の再生経路4901ではディペンデントビュー・エクステントD2、R2、D3、R3、…の記録領域ごとにジャンプJ2D1、J2D2、…が生じる。一方、第1リード・バッファ4221からシステム・ターゲット・デコーダ4203へのデータ転送は継続される。従って、2D再生装置に2D映像をシームレスに再生させるには、エクステントの読み出しが停止する間にシステム・ターゲット・デコーダ4203へのデータ転送によって第1リード・バッファ4221がアンダーフローを生じないように、エクステントの読み出し期間中に十分なデータ量を第1リード・バッファ4221に蓄積させればよい。すなわち、図22−24を参照して説明したとおり、各ベースビュー・エクステントのサイズは少なくとも最小エクステント・サイズに等しく、ベースビュー・エクステントの間隔は最大ジャンプ距離より小さい。
図52は、図49に示されているエクステント群から2D再生装置が2D映像を再生するときの第1リード・バッファ4221の蓄積データ量DA1の推移を示すグラフである。まず、先頭のレフトビュー・エクステントL1がBD−ROMディスク101から第1リード・バッファ4221へ読み出される。その読み出し期間PR2D1では、図52に矢印5201で示されているように、蓄積データ量DA1は、2D映像読み出し速度Rud-2Dと2D映像転送速度Rext1-2D[1]との間の差Rud-2D−Rext1-2D[1]に等しい速度で増加する。先頭のレフトビュー・エクステントL1の後端が読み出された時、ジャンプJ2D1が生じる。そのジャンプ期間PJ2D1では、先頭のレフトビュー・エクステントL1の直後に位置する二つのエクステントD2、R2の読み出しがスキップされるので、BD−ROMディスク101からのデータの読み出しが停止する。従って、ジャンプ期間PJ2D1では、図52に矢印5202で示されているように、蓄積データ量DA1は2D映像転送速度Rext1-2D[1]で減少する。
ここで、読み出し期間PR2D1に第1リード・バッファ4221に蓄積されたデータ量、すなわち、先頭のレフトビュー・エクステントL1のサイズSext1[1]が、その読み出し期間PR2D1からジャンプ期間PJ2D1にわたって第1リード・バッファ4221からシステム・ターゲット・デコーダ4203へ転送されるデータ量に等しい場合を想定する。その場合、図52に示されているように、蓄積データ量DA1は、ジャンプ期間PJ2D1の終了時、読み出し期間PR2D1の開始時での値までしか下がらない。ジャンプJ2D1に続いて次のレフトビュー・エクステントL2の読み出しが開始される。その読み出し期間PR2D2では、図52に矢印5203で示されているように、蓄積データ量DA1は再度、データ転送速度の差Rud-2D−Rext1-2D[2]に等しい速度で増加する。
上記の蓄積データ量DA1の推移は、先頭の二つのレフトビュー・エクステントL1、L2に限らず、n番目と(n+1)番目とのレフトビュー・エクステントLn、L(n+1)(整数nは2以上である。)から2D映像を再生する場合でも同様である。従って、それらのレフトビュー・エクステントLn、L(n+1)から、その間のジャンプにかかわらず、2D映像をシームレスに再生するには、図23に示されている場合と同様、以下の二つの条件が満たされればよい。まず、n番目のレフトビュー・エクステントLnのサイズSext1[n]は少なくとも、次式(4)の右辺で表される最小エクステント・サイズに等しい:
式(4)では、ジャンプ時間Tjump-2D[n]はn番目のレフトビュー・エクステントLnの終端から(n+1)番目のレフトビュー・エクステントL(n+1)の先端までのジャンプ期間の長さを秒単位で表す。ジャンプ時間Tjump-2D[n]は二つのパラメータTJ[n]、TL[n]の和で決まる:Tjump-2D[n]=TJ[n]+TL[n]。第1パラメータTJ[n]は、図24に示されている規定によってn番目のレフトビュー・エクステントLnの終端から(n+1)番目のレフトビュー・エクステントL(n+1)の先端までのセクタ数、すなわちジャンプ距離と対応付けられている値を表す。第2パラメータTL[n]は、n番目のレフトビュー・エクステントLnと(n+1)番目のレフトビュー・エクステントL(n+1)との間に層境界LBがあるときは層切換時間、すなわち350m秒を表し、層境界LBがないときは0を表す。
次に、n番目と(n+1)番目とのレフトビュー・エクステントLn、L(n+1)の間隔は最大ジャンプ距離よりも小さければよい。最大ジャンプ距離は、図24に示されている規定によって上記のジャンプ時間Tjump-2D[n]と対応付けられている値に等しい。
≪L/Rモードでの3D映像のシームレス再生に必要なエクステントの配置条件≫
図49に示されているように、L/Rモードでの3D映像の再生経路4902ではライトビュー・エクステントR1、R2、…とレフトビュー・エクステントL1、L2、…とは交互に読み出される。従って、二つのリード・バッファ4221、4222の一方にエクステントが読み出されている間、他方にはエクステントは読み出されない。更にその再生経路4902ではデプスマップ・エクステントD2、D3、…の記録領域ごとにジャンプJLR1、JLR2、…が生じる。一方、各リード・バッファ4221、4222からシステム・ターゲット・デコーダ4203へのデータ転送は継続される。従って、3D再生装置に3D映像をシームレスに再生させるには、エクステントの読み出しが停止する間にシステム・ターゲット・デコーダ4203へのデータ転送によって各リード・バッファ4221、4222がアンダーフローを生じないように、エクステントの読み出し期間中に十分なデータ量を各リード・バッファ4221、4222に蓄積させればよい。
図53は、図49に示されているエクステント群から3D再生装置が3D映像をL/Rモードで再生するときでの各リード・バッファ4221、4222の蓄積データ量DA1、DA2の推移を示すグラフである。ここでは説明の便宜上、ライトビュー・エクステントとレフトビュー・エクステントとが先頭の対R1、L1から順に(n−1)番目の対R(n−1)、L(n−1)まで既に各リード・バッファ4221、4222に読み込まれ、かつ整数nが1より十分に大きい場合を想定する。その場合、両リード・バッファ4221、4222の蓄積データ量DA1、DA2は既にそれぞれの下限値UL1、UL2以上に維持されている。それらの下限値UL1、UL2を「バッファ余裕量」という。更に、ゼロ・セクタ遷移時間Tjump-0はマージン時間を含まない値、すなわち、実際のゼロ・セクタ遷移に要する時間のみで評価された規定値に等しい場合を想定する。バッファ余裕量UL1、UL2を確保するための方法については後述する。
図53の(c)に示されている再生経路5301に従い、まず、第(2n−1)読み出し期間PRRnにn番目のライトビュー・エクステントRnがBD−ROMディスク101から第2リード・バッファ4222へ読み出される。第(2n−1)読み出し期間PRRnでは、図53の(b)に示されているように、第2リード・バッファ4222の蓄積データ量DA2は、3D映像読み出し速度Rud-3Dとライトビュー転送速度Rext2[n]との間の差Rud-3D−Rext2[n]に等しい速度で増加する。一方、図53の(a)に示されているように、第1リード・バッファ4221の蓄積データ量DA1はレフトビュー転送速度Rext1-3D[n]で減少する。
n番目のライトビュー・エクステントRnの後端が読み出された時、n回目のゼロ・セクタ遷移J0nが生じる。第nゼロ・セクタ遷移期間PJ0nでは、BD−ROMディスク101からのデータの読み出しが停止する。従って、第1リード・バッファ4221の蓄積データ量DA1はレフトビュー転送速度Rext1-3D[n−1]で減少し、第2リード・バッファ4222の蓄積データ量DA2はライトビュー転送速度Rext2[n]で減少する。
第nゼロ・セクタ遷移期間PJ0nの終了時点から第2n読み出し期間PRLnが開始される。第2n読み出し期間PRLnではn番目のレフトビュー・エクステントLnがBD−ROMディスク101から第1リード・バッファ4221へ読み出される。従って、図53の(a)に示されているように、第1リード・バッファ4221の蓄積データ量DA1は、3D映像読み出し速度Rud-3Dとレフトビュー転送速度Rext1-3D[n]との間の差Rud-3D−Rext1-3D[n]に等しい速度で増加する。一方、図53の(b)に示されているように、第2リード・バッファ4222の蓄積データ量DA2はライトビュー転送速度Rext2[n]で減少する。
n番目のレフトビュー・エクステントLnの後端が読み出された時、ジャンプJLRnが生じる。そのジャンプ期間PJLRnでは、n番目のレフトビュー・エクステントLnの直後に位置するデプスマップ・エクステントD(n+1)の読み出しがスキップされるので、BD−ROMディスク101からのデータの読み出しが停止する。従って、ジャンプ期間PJLRnでは、図53の(a)に示されているように、第1リード・バッファ4221の蓄積データ量DA1はレフトビュー転送速度Rext1-3D[n]で減少する。一方、図53の(b)に示されているように、第2リード・バッファ4222の蓄積データ量DA2はライトビュー転送速度Rext2[n]で減少する。
第(2n−1)読み出し期間PRRnに第2リード・バッファ4222に蓄積されるデータ量、すなわちn番目のライトビュー・エクステントRnのサイズSext2[n]は少なくとも、第(2n−1)読み出し期間PRRnからジャンプ期間PJLRnにわたって第2リード・バッファ4222からシステム・ターゲット・デコーダ4203へ転送されるデータ量に等しい。従って、ジャンプ期間PJLRnの終了時、図53の(b)に示されているように、第2リード・バッファ4222の蓄積データ量DA2が第2バッファ余裕量UL2を下回らない。
ジャンプ期間PJLRnの終了時点から第(2n+1)読み出し期間PRR(n+1)が開始される。第(2n+1)読み出し期間PRR(n+1)では、(n+1)番目のライトビュー・エクステントR(n+1)がBD−ROMディスク101から第2リード・バッファ4222へ読み出される。従って、図53の(b)に示されているように、第2リード・バッファ4222の蓄積データ量DA2は、3D映像読み出し速度Rud-3Dとライトビュー転送速度Rext2[n+1]との間の差Rud-3D−Rext2[n+1]に等しい速度で増加する。一方、図53の(a)に示されているように、第1リード・バッファ4221の蓄積データ量DA1はレフトビュー転送速度Rext1-3D[n]で減少し続ける。
(n+1)番目のライトビュー・エクステントR(n+1)の後端が読み出された時、(n+1)回目のゼロ・セクタ遷移J0(n+1)が生じる。第(n+1)ゼロ・セクタ遷移期間PJ0(n+1)では、BD−ROMディスク101からのデータの読み出しが停止する。従って、第1リード・バッファ4221の蓄積データ量DA1はレフトビュー転送速度Rext1-3D[n]で減少し、第2リード・バッファ4222の蓄積データ量DA2はライトビュー転送速度Rext2[n+1]で減少する。
第2n読み出し期間PRLnに第1リード・バッファ4221に蓄積されるデータ量、すなわち、n番目のレフトビュー・エクステントLnのサイズSext1[n]は少なくとも、第2n読み出し期間PRLnから第(n+1)ゼロ・セクタ遷移期間PJ0(n+1)にわたって第1リード・バッファ4221からシステム・ターゲット・デコーダ4203へ転送されるデータ量に等しい。従って、第(n+1)ゼロ・セクタ遷移期間PJ0(n+1)の終了時、図53の(a)に示されているように、第1リード・バッファ4221の蓄積データ量DA1が第1バッファ余裕量UL1を下回らない。
第(n+1)ゼロ・セクタ遷移期間PJ0(n+1)の終了時点から第(2n+2)読み出し期間PRL(n+1)が開始される。第(2n+2)読み出し期間PRL(n+1)では(n+1)番目のレフトビュー・エクステントL(n+1)がBD−ROMディスク101から第1リード・バッファ4221へ読み出される。従って、図53の(a)に示されているように、第1リード・バッファ4221の蓄積データ量DA1は、3D映像読み出し速度Rud-3Dとレフトビュー転送速度Rext1-3D[n+1]との間の差Rud-3D−Rext1-3D[n+1]に等しい速度で増加する。一方、図53の(b)に示されているように、第2リード・バッファ4222の蓄積データ量DA2はライトビュー転送速度Rext2[n+1]で減少し続ける。
上記の蓄積データ量DA1、DA2の推移は、(n+2)番目以降の各エクステントについても同様である。従って、ライトビュー・エクステントRn、R(n+1)、…とレフトビュー・エクステントLn、L(n+1)、…とから、それらの間のジャンプにかかわらず、3D映像をシームレスに再生するには、次の二つの条件式が満たされればよい。
第一に、n番目のレフトビュー・エクステントLnのサイズSext1[n]は少なくとも、第2n読み出し期間PRLnから第(n+1)ゼロ・セクタ遷移期間PJ0(n+1)にわたって第1リード・バッファ4221からシステム・ターゲット・デコーダ4203へ転送されるデータ量に等しい。ここで、第2n読み出し期間PRLnの長さは、n番目のレフトビュー・エクステントLnのサイズSext1[n]を3D映像読み出し速度Rud-3Dで割った値Sext1[n]/Rud-3Dに等しい。第(2n+1)読み出し期間PRR(n+1)の長さは、(n+1)番目のライトビュー・エクステントR(n+1)のサイズSext2[n+1]を3D映像読み出し速度Rud-3Dで割った値Sext2[n+1]/Rud-3Dに等しい。従って、n番目のレフトビュー・エクステントLnのサイズSext1[n]は少なくとも、次式(5)の右辺で表される最小エクステント・サイズに等しい:
第二に、n番目のライトビュー・エクステントRnのサイズSext2[n]は少なくとも、第(2n−1)読み出し期間PRRnから第nジャンプ期間PJLRnにわたって第2リード・バッファ4222からシステム・ターゲット・デコーダ4203へ転送されるデータ量に等しい。ここで、第(2n−1)読み出し期間PRRnの長さは、n番目のライトビュー・エクステントRnのサイズSext2[n]を3D映像読み出し速度Rud-3Dで割った値Sext2[n]/Rud-3Dに等しい。従って、n番目のライトビュー・エクステントRnのサイズSext2[n]は少なくとも、次式(6)の右辺で表される最小エクステント・サイズに等しい:
式(5)、(6)では、ジャンプ時間Tjump-3D[n]は、n番目のレフトビュー・エクステントLnの終端から(n+1)番目のライトビュー・エクステントR(n+1)の先端までのジャンプ期間PJLRnの長さを秒単位で表す。より詳細には、ジャンプ時間Tjump-3D[n]は二つのパラメータTJ[n]、TL[n]の和で決まる:Tjump-3D[n]=TJ[n]+TL[n]。第1パラメータTJ[n]は、図24に示されている規定によってn番目のレフトビュー・エクステントLnの終端から(n+1)番目のライトビュー・エクステントR(n+1)の先端までのセクタ数、すなわちジャンプ距離と対応付けられている値を表す。第2パラメータTL[n]は、n番目のレフトビュー・エクステントLnと(n+1)番目のライトビュー・エクステントR(n+1)との間に層境界LBがあるときは層切換時間、すなわち350m秒を表し、層境界LBがないときは0を表す。
≪デプス・モードでの3D映像のシームレス再生に必要なエクステントの配置条件≫
図49に示されているように、デプス・モードでの3D映像の再生経路4903ではデプスマップ・エクステントD1、D2、…とレフトビュー・エクステントL1、L2、…とは交互に読み出される。従って、二つのリード・バッファ4221、4222の一方にエクステントが読み出されている間、他方にはエクステントは読み出されない。更に、その再生経路4903ではライトビュー・エクステントR2、R3、…の記録領域ごとにジャンプJLD1、JLD2、…が生じる。一方、各リード・バッファ4221、4222からシステム・ターゲット・デコーダ4203へのデータ転送は継続される。従って、3D再生装置に3D映像をシームレスに再生させるには、エクステントの読み出しが停止する間にシステム・ターゲット・デコーダ4203へのデータ転送によって各リード・バッファ4221、4222がアンダーフローを生じないように、エクステントの読み出し期間中に十分なデータ量を各リード・バッファ4221、4222に蓄積させればよい。
図54は、図49に示されているエクステント群から3D再生装置が3D映像をデプス・モードで再生するときでの各リード・バッファ4221、4222の蓄積データ量DA1、DA2の推移を示すグラフである。ここでは説明の便宜上、デプスマップ・エクステントとレフトビュー・エクステントとが先頭の対D1、L1から順に(n−1)番目の対D(n−1)、L(n−1)まで既に各リード・バッファ4221、4222に読み込まれ、かつ整数nが1より十分に大きい場合を想定する。その場合、両リード・バッファ4221、4222の蓄積データ量DA1、DA2は既にそれぞれのバッファ余裕量UL1、UL2以上に維持されている。更に、ゼロ・セクタ遷移時間Tjump-0はマージン時間を含まない値、すなわち、実際のゼロ・セクタ遷移に要する時間のみで評価された規定値に等しい場合を想定する。
図54の(c)に示されている再生経路5401に従い、まず、第(2n−1)読み出し期間PRDnにn番目のデプスマップ・エクステントDnがBD−ROMディスク101から第2リード・バッファ4222へ読み出される。第(2n−1)読み出し期間PRDnでは、図54の(b)に示されているように、第2リード・バッファ4222の蓄積データ量DA2は、3D映像読み出し速度Rud-3Dとデプスマップ転送速度Rext3[n]との間の差Rud-3D−Rext3[n]に等しい速度で増加する。一方、図54の(a)に示されているように、第1リード・バッファ4221の蓄積データ量DA1はレフトビュー転送速度Rext1-3D[n−1]で減少する。
n番目のデプスマップ・エクステントDnの後端が読み出された時、n回目のジャンプJLDnが生じる。第nジャンプ期間PJLDnでは、n番目のデプスマップ・エクステントDnの直後に位置するライトビュー・エクステントRnの読み出しがスキップされるので、BD−ROMディスク101からのデータの読み出しが停止する。従って、第nジャンプ期間PJLDnでは、図54の(a)に示されているように、第1リード・バッファ4221の蓄積データ量DA1はレフトビュー転送速度Rext1-3D[n−1]で減少する。一方、図54の(b)に示されているように、第2リード・バッファ4222の蓄積データ量DA2はデプスマップ転送速度Rext3[n]で減少する。
第nジャンプ期間PJLDnの終了時点から第2n読み出し期間PRLnが開始される。第2n読み出し期間PRLnでは、n番目のレフトビュー・エクステントLnがBD−ROMディスク101から第1リード・バッファ4221へ読み出される。従って、図54の(a)に示されているように、第1リード・バッファ4221の蓄積データ量DA1は、3D映像読み出し速度Rud-3Dとレフトビュー転送速度Rext1-3D[n]との間の差Rud-3D−Rext1-3D[n]に等しい速度で増加する。一方、図54の(b)に示されているように、第2リード・バッファ4222の蓄積データ量DA2はデプスマップ転送速度Rext3[n]で減少し続ける。
n番目のレフトビュー・エクステントLnの後端が読み出された時、n回目のゼロ・セクタ遷移J0nが生じる。第nゼロ・セクタ遷移期間PJ0nでは、BD−ROMディスク101からのデータの読み出しが停止する。従って、第1リード・バッファ4221の蓄積データ量DA1はレフトビュー転送速度Rext1-3D[n]で減少し、第2リード・バッファ4222の蓄積データ量DA2はデプスマップ転送速度Rext3[n]で減少する。
第(2n−1)読み出し期間PRDnに第2リード・バッファ4222に蓄積されるデータ量、すなわちn番目のデプスマップ・エクステントDnのサイズSext3[n]は少なくとも、第(2n−1)読み出し期間PRDnから第nゼロ・セクタ遷移期間PJ0nにわたって第2リード・バッファ4222からシステム・ターゲット・デコーダ4203へ転送されるデータ量に等しい。従って、第nゼロ・セクタ遷移期間PJ0nの終了時、図54の(b)に示されているように、第2リード・バッファ4222の蓄積データ量DA2が第2バッファ余裕量UL2を下回らない。
第nゼロ・セクタ遷移期間PJ0nの終了時点から第(2n+1)読み出し期間PRD(n+1)が開始される。第(2n+1)読み出し期間PRD(n+1)では(n+1)番目のデプスマップ・エクステントD(n+1)がBD−ROMディスク101から第2リード・バッファ4222へ読み出される。従って、図54の(a)に示されているように、第1リード・バッファ4221の蓄積データ量DA1はレフトビュー転送速度Rext1-3D[n]で減少し続ける。一方、図54の(b)に示されているように、第2リード・バッファ4222の蓄積データ量DA2は3D映像読み出し速度Rud-3Dとデプスマップ転送速度Rext3[n+1]との間の差Rud-3D−Rext3[n+1]に等しい速度で増加する。
(n+1)番目のデプスマップ・エクステントD(n+1)の後端が読み出された時、(n+1)回目のジャンプJLD(n+1)が生じる。第(n+1)ジャンプ期間PJLD(n+1)では、(n+1)番目のデプスマップ・エクステントD(n+1)の直後に位置するライトビュー・エクステントR(n+1)の読み出しがスキップされるので、BD−ROMディスク101からのデータの読み出しが停止する。従って、第(n+1)ジャンプ期間PJLD(n+1)では、第1リード・バッファ4221の蓄積データ量DA1はレフトビュー転送速度Rext1-3D[n]で減少し、第2リード・バッファ4222の蓄積データ量DA2はデプスマップ転送速度Rext3[n+1]で減少する。
第(n+1)ジャンプ期間PJLD(n+1)の終了時点から第(2n+2)読み出し期間PRL(n+1)が開始される。第(2n+2)読み出し期間PRL(n+1)では、(n+1)番目のレフトビュー・エクステントL(n+1)がBD−ROMディスク101から第1リード・バッファ4221へ読み出される。従って、図54の(a)に示されているように、第1リード・バッファ4221の蓄積データ量DA1は、3D映像読み出し速度Rud-3Dとレフトビュー転送速度Rext1-3D[n+1]との間の差Rud-3D−Rext1-3D[n+1]に等しい速度で増加する。一方、図54の(b)に示されているように、第2リード・バッファ4222の蓄積データ量DA2はデプスマップ転送速度Rext3[n+1]で減少し続ける。
第2n読み出し期間PRLnに第1リード・バッファ4221に蓄積されるデータ量、すなわちn番目のレフトビュー・エクステントLnのサイズSext1[n]は少なくとも、第2n読み出し期間PRLnから第(n+1)ジャンプ期間PJLD(n+1)にわたって第1リード・バッファ4221からシステム・ターゲット・デコーダ4203へ転送されるデータ量に等しい。従って、第(n+1)ジャンプ期間PJLD(n+1)の終了時、図54の(a)に示されているように、第1リード・バッファ4221の蓄積データ量DA1が第1バッファ余裕量UL1を下回らない。
上記の蓄積データ量DA1、DA2の推移は、(n+2)番目以降の各エクステントについても同様である。従って、デプスマップ・エクステントDn、D(n+1)、…とレフトビュー・エクステントLn、L(n+1)、…とから、それらの間のジャンプにかかわらず、3D映像をシームレスに再生するには、次の二つの条件式が満たされればよい。
第一に、n番目のレフトビュー・エクステントLnのサイズSext1[n]は少なくとも、第2n読み出し期間PRLnから第(n+1)ジャンプ期間PJLD(n+1)にわたって第1リード・バッファ4221からシステム・ターゲット・デコーダ4203へ転送されるデータ量に等しい。ここで、第2n読み出し期間PRLnの長さは、n番目のレフトビュー・エクステントLnのサイズSext1[n]を3D映像読み出し速度Rud-3Dで割った値Sext1[n]/Rud-3Dに等しい。第(2n+1)読み出し期間PRD(n+1)の長さは、(n+1)番目のデプスマップ・エクステントD(n+1)のサイズSext3[n+1]を3D映像読み出し速度Rud-3Dで割った値Sext3[n+1]/Rud-3Dに等しい。従って、n番目のレフトビュー・エクステントLnのサイズSext1[n]は少なくとも、次式(7)の右辺で表される最小エクステント・サイズに等しい:
第二に、n番目のデプスマップ・エクステントDnのサイズSext3[n]は少なくとも、第(2n−1)読み出し期間PRDnから第nゼロ・セクタ遷移期間PJ0nにわたって第2リード・バッファ4222からシステム・ターゲット・デコーダ4203へ転送されるデータ量に等しい。ここで、第(2n−1)読み出し期間PRDnの長さは、n番目のデプスマップ・エクステントDnのサイズSext3[n]を3D映像読み出し速度Rud-3Dで割った値Sext3[n]/Rud-3Dに等しい。従って、n番目のデプスマップ・エクステントDnのサイズSext3[n]は少なくとも、次式(8)の右辺で表される最小エクステント・サイズに等しい:
式(7)、(8)では、ジャンプ時間Tjump-3D[n]は、n番目のデプスマップ・エクステントDnの終端からn番目のレフトビュー・エクステントLnの先端までのジャンプ期間PJLDnの長さを秒単位で表す。より詳細には、ジャンプ時間Tjump-3D[n]は、図24に示されている規定によってn番目のデプスマップ・エクステントDnの終端からn番目のレフトビュー・エクステントLnの先端までのセクタ数、すなわちジャンプ距離と対応付けられている値に等しい。
ゼロ・セクタ遷移時間Tjump-0[n]は、n番目のレフトビュー・エクステントLnと(n+1)番目のデプスマップ・エクステントD(n+1)との間に層境界LBがないときは、実際のゼロ・セクタ遷移に要する時間のみで評価された規定値に等しい。一方、n番目のレフトビュー・エクステントLnと(n+1)番目のデプスマップ・エクステントD(n+1)との間に層境界LBがあるときは、ゼロ・セクタ遷移時間Tjump-0[n]は、その層境界LBを越えるためのジャンプ時間に置換される。そのジャンプ時間は、図24に示されている規定によってn番目のレフトビュー・エクステントLnと(n+1)番目のデプスマップ・エクステントD(n+1)との間のセクタ数に対応付けられている値よりも層切換時間、すなわち350m秒だけ長い。
図49に示されているエクステント群から、2D映像のシームレス再生、3D映像のL/Rモードでのシームレス再生、及び3D映像のデプス・モードでのシームレス再生のいずれも実現可能にするには、各エクステントのサイズは上記の式(4)−(8)を全て満たすように設計されればよい。特に2D/レフトビュー・ストリーム・ファイルの最小エクステント・サイズは、式(4)、(5)、及び(7)の右辺のうち、最大のものに等しい。
≪3D映像の再生にL/Rモードのみを利用するときのエクステントの配置条件≫
3D映像の再生にL/Rモードのみが利用されるときは、図49の配置からデプスマップ・エクステントが除去されてもよい。図55は、2D/レフトビュー・ストリーム・ファイルとライトビュー・ストリーム・ファイルとの二種類のみがBD−ROMディスク上に記録されたときにおける、各ファイルに属するエクステント群の配置を示す模式図である。図55を参照するに、それら二種類のエクステント群はインターリーブ配置で記録されている。そのインターリーブ配置では、再生期間の一致する各AVストリーム・ファイルの部分が、隣接する二つのエクステントに個別に含まれる。特にそれらのエクステント間ではビデオ・ストリームの再生時間が等しい。例えば、先頭のライトビュー・エクステントR1と先頭のレフトビュー・エクステントL1とは隣接し、それらの間では再生期間が一致し、かつビデオ・ストリームの再生時間が等しい。この配置についても、2D映像のシームレス再生と3D映像のシームレス再生との両立に必要な各エクステントのサイズに対する条件が、図49に示されている配置についてのものと同様に求められる。
まず、2D映像の再生処理では、図55に示されている再生経路5501に沿ってレフトビュー・エクステントL1、L2、…のみが読み出され、ライトビュー・エクステントR1、R2、…の読み出しはジャンプJ2D1、J2D2、…によってスキップされる。ここで、図55に示されているエクステント群は、図49に示されているエクステント群とは異なり、デプスマップ・エクステントを含まない。従って、2D映像の再生経路5501は、図49に示されている2D映像の再生経路4901とは、n番目と(n+1)番目とのレフトビュー・エクステントLn、L(n+1)(整数nは2以上である。)間のジャンプ距離が異なるだけである。従って、2D映像がシームレスに再生されるには、n番目のレフトビュー・エクステントLnのサイズSext1[n]が式(4)を満たせばよい。
次に、3D映像の再生処理では、図55に示されている再生経路5502に沿って、ライトビュー・エクステントR1、R2、…とレフトビュー・エクステントL1、L2、…とが先頭から順番に読み出される。図55に示されているエクステント群は、図49に示されているエクステント群とは異なり、デプスマップ・エクステントを含まない。従って、3D映像の再生経路5502では、図49に示されているL/Rモードでの3D映像の再生経路4902とは異なり、いずれのレフトビュー・エクステントの直後にもジャンプJLRnは生じることがなく、ゼロ・セクタ遷移J0nのみが生じる(n=1、2、…)。従って、3D映像がシームレスに再生されるには、n番目のレフトビュー・エクステントLnのサイズSext1[n]が上記の式(5)に代えて下記の式(9)を満たし、n番目のライトビュー・エクステントRnのサイズSext2[n]が上記の式(6)に代えて下記の式(10)を満たせばよい。ここで、式(9)、(10)はそれぞれ、式(5)、(6)においてジャンプ時間Tjump-3Dをゼロ・セクタ遷移時間Tjump-0に置き換えたものに等しい:
従って、2D/レフトビュー・ストリーム・ファイルの最小エクステント・サイズは、式(4)及び(9)の右辺のうち、最大のものに等しい。
尚、図55に示されている連続するエクステントがBD−ROMドライブ4201によって連続的に読み込まれるとき、式(9)と式(10)とにおけるゼロ・セクタ遷移時間Tjump-0[n]は0とみなされてもよい。すなわち、n番目のレフトビュー・エクステントLnのサイズSext1[n]とn番目のライトビュー・エクステントRnのサイズSext2[n]とは次式を満たせばよい:
≪リード・バッファの余裕量≫
図53、54に示されている両リード・バッファ4221、4222の蓄積データ量DA1、DA2の下限値UL1、UL2はそれぞれのバッファ余裕量を表す。「バッファ余裕量」とは、AVストリーム・ファイルの読み出し期間中、主に、読み出し対象の記録層の切り換え、及び他のファイルの読み出し処理の割り込みに起因するアンダーフローを防ぐために各リード・バッファ4221、4222に維持されるべき蓄積データ量の下限値をいう。ここで、他のファイルは図2に示されているAVストリーム・ファイル以外のファイル、例えば、ムービーオブジェクト・ファイル242B、BD−Jオブジェクト・ファイル246A、及びJARファイル247Aを含む。
図56は、L/Rモードでの3D映像の再生経路中に生じる層切り換えに伴うジャンプJLY、及びBD−Jオブジェクト・ファイル246Aの読み出し処理に伴うジャンプJBDJを示す模式図である。それらのジャンプJLY、JBDJに対して必要なバッファ余裕量UL1、UL2は以下のように計算される。
層切り換えに伴うジャンプJLYでは、最大ジャンプ時間Tjump-LYは、図24に示されている規定によってそのジャンプ距離、すなわち層境界LBの前後のエクステントLn、D(n+1)間のセクタ数に対応付けられている値と層切換時間との和に等しい。一方、式(2)よりレフトビュー転送速度Rext1-3Dは最高値Rmax1-3Dを超えない。従って、層切り換えに伴うジャンプ期間に第1リード・バッファ4221から消費されるデータ量は、レフトビュー転送速度の最高値Rmax1-3Dと最大ジャンプ時間Tjump-LYとの積を超えない。その積の値が第1バッファ余裕量UL1として決定される。すなわち、第1バッファ余裕量UL1は次式(11)で計算される:
例えば、最大ジャンプ距離が40000セクタであるとき、図24に示されている規定によれば、最大ジャンプ時間Tjump-LYは、層切換時間350m秒と合わせて700m秒である。従って、2D/レフトビュー・ストリーム・ファイルに対するシステムレートが48Mbpsであるとき、第1バッファ余裕量UL1は(48Mbps×192/188)×0.7秒=約4.09MBに等しい。
同様に、層切り換えに伴うジャンプ期間に第2リード・バッファ4222から消費されるデータ量の最大値、すなわちライトビュー転送速度の最大値Rmax2と最大ジャンプ時間Tjump-LYとの積が第2バッファ余裕量UL2として決定される。すなわち、第2バッファ余裕量UL2は次式(12)で計算される:
例えば、最大ジャンプ距離が40000セクタであり、すなわち最大ジャンプ時間Tjump-LYが700m秒であり、ライトビュー・ストリーム・ファイルに対するシステムレートが16Mbpsであるとき、第2バッファ余裕量UL2は(16Mbps×192/188)×0.7秒=約1.36MBに等しい。
AVストリーム・ファイルの読み出し期間にBD−Jオブジェクト・ファイル246Aの読み出し処理の割り込みが生じたとき、図56に示されているように、まず、最初のジャンプJBDJ1が生じる。それにより、読み出し対象の位置が(n−1)番目のレフトビュー・エクステントL(n−1)の記録領域からBD−Jオブジェクト・ファイル246Aの記録領域へ移動する。そのジャンプ時間TBDJは一定値、例えば900m秒に予め規定されている。次に、BD−Jオブジェクト・ファイル246Aが読み出される。その読み出しに要する時間は、そのファイル246Aに属するエクステントのバイト単位でのサイズSBDJの8倍を3D映像読み出し速度Rud-3Dで割った値8×SBDJ[n]/Rud-3Dに等しい。続いて、2回目のジャンプJBDJ2が生じる。それにより、読み出し対象の位置がBD−Jオブジェクト・ファイル246Aの記録領域から(n−1)番目のレフトビュー・エクステントL(n−1)の記録領域へ戻る。そのジャンプ時間TBDJは最初のジャンプ時間、例えば900m秒に等しい。計2回のジャンプJBDJ1、JBDJ2とBD−Jオブジェクト・ファイル246Aの読み出しとが行われる間、第1リード・バッファ4221にはデータが読み込まれない。従って、その期間に第1リード・バッファ4221から消費されるデータ量の最大値が第1バッファ余裕量UL1として決定される。すなわち、第1バッファ余裕量UL1は次式(13)で計算される:
同様に、2回のジャンプJBDJ1、JBDJ2とBD−Jオブジェクト・ファイル246Aの読み出しとが行われる間に第2リード・バッファ4222から消費されるデータ量の最大値が第2バッファ余裕量UL2として決定される。すなわち、第2バッファ余裕量UL2は次式(14)で計算される:
第1バッファ余裕量UL1は、式(11)、(13)の右辺で表される値のいずれか大きい方に設定される。第2バッファ余裕量UL2は、式(12)、(14)の右辺で表される値のいずれか大きい方に設定される。
≪マージン時間によるバッファ余裕量の確保≫
各バッファ余裕量UL1、UL2は、次に述べるように確保される。まず、式(5)−(8)に代入されるべきゼロ・セクタ遷移時間Tjump-0[n]にはマージン時間が追加される。マージン時間は例えば100m秒である。それにより、最小エクステント・サイズが拡大されるので、各リード・バッファ4421、4222の蓄積データ量DA1、DA2は、図53、54に示されている推移とは異なり、一対のベースビュー・エクステントとディペンデントビュー・エクステントとが復号されるごとに所定量ずつ増える。従って、ある程度の数のエクステントが各リード・バッファ4221、4222に読み込まれることにより、各バッファ余裕量UL1、UL2が確保される。
図57は、ゼロ・セクタ遷移時間にマージン時間が追加されたときにおける、各リード・バッファ4221、4222の蓄積データ量DA1、DA2の推移を示すグラフである。以下の説明では、図49に示されているエクステント群の先頭からL/Rモードで3D映像が再生される場合を想定する。その説明は、デプス・モードで3D映像が再生される場合にも、飛び込み再生によって任意のエクステントから3D映像が再生される場合にも、同様に当てはまる。
まず、第1読み出し期間PRR1に先頭のライトビュー・エクステントR1がBD−ROMディスク101から第2リード・バッファ4222へ読み出される。一方、システム・ターゲット・デコーダ4203は待機する。従って、第1読み出し期間PRR1では、図57の(b)に示されているように、第2リード・バッファ4222の蓄積データ量DA2は0から3D映像読み出し速度Rud-3Dで増加する。
先頭のライトビュー・エクステントR1の後端が読み出された時、最初のゼロ・セクタ遷移J01が生じる。第1ゼロ・セクタ遷移期間PJ01では、BD−ROMディスク101からのデータの読み出しが停止する。一方、システム・ターゲット・デコーダ4203は引き続いて待機する。従って、第1ゼロ・セクタ遷移期間PJ01では、第1リード・バッファ4221の蓄積データ量DA1と第2リード・バッファ4222の蓄積データ量DA2とはいずれも一定に維持される。
第1ゼロ・セクタ遷移期間PJ01の終了時点からは第2読み出し期間PRL1が開始される。第2読み出し期間PRL1では先頭のレフトビュー・エクステントL1がBD−ROMディスク101から第1リード・バッファ4221へ読み出される。一方、第2読み出し期間PRL1からはシステム・ターゲット・デコーダ4203は復号処理を開始する。従って、図57の(a)に示されているように、第1リード・バッファ4221の蓄積データ量DA1は、3D映像読み出し速度Rud-3Dとレフトビュー転送速度Rext1-3D[1]との間の差Rud-3D−Rext1-3D[1]に等しい速度で0から増加する。一方、図57の(b)に示されているように、第2リード・バッファ4222の蓄積データ量DA2はライトビュー転送速度Rext2[1]で減少する。
先頭のレフトビュー・エクステントL1の後端が読み出された時、最初のジャンプJLR1が生じる。第1ジャンプ期間PJLR1では、先頭のレフトビュー・エクステントL1の直後に位置する二番目のデプスマップ・エクステントD2の読み出しがスキップされるので、BD−ROMディスク101からのデータの読み出しが停止する。従って、第1ジャンプ期間PJLR1では、図57の(a)に示されているように、第1リード・バッファ4221の蓄積データ量DA1はレフトビュー転送速度Rext1-3D[1]で減少する。一方、図57の(b)に示されているように、第2リード・バッファ4222の蓄積データ量DA2はライトビュー転送速度Rext2[1]で減少する。
第1読み出し期間PRR1に第2リード・バッファ4222に蓄積されるデータ量、すなわち先頭のライトビュー・エクステントR1のサイズSext2[1]は少なくとも、式(6)の右辺で表される最小エクステント・サイズに等しい。ここで、ゼロ・セクタ遷移時間Tjump-0[1]にはマージン時間、例えば100m秒が追加されている。更に、第1読み出し期間PRR1では第2リード・バッファ4222からシステム・ターゲット・デコーダ4203へデータが転送されない。従って、先頭のライトビュー・エクステントR1のサイズSext2[1]は、第2読み出し期間PRL1から第1ジャンプ期間PJLR1にわたって第2リード・バッファ4222からシステム・ターゲット・デコーダ4203へ転送されるデータ量よりも大きい。その結果、第1ジャンプ期間PJLR1の終了時、図57の(b)に示されているように、第2リード・バッファ4222の蓄積データ量DA2が、0よりも大きい値DM2まで増える。その値DM2は、ライトビュー転送速度の最高値Rmax2にマージン時間、例えば100m秒を乗じた値で評価される:DM2=Rmax2×Tjump-0[1]。
第1ジャンプ期間PJLR1の終了時点からは第3読み出し期間PRR2が開始される。第3読み出し期間PRR2では二番目のライトビュー・エクステントR2がBD−ROMディスク101から第2リード・バッファ4222へ読み出される。従って、図57の(b)に示されているように、第2リード・バッファ4222の蓄積データ量DA2は、3D映像読み出し速度Rud-3Dとライトビュー転送速度Rext2[2]との間の差Rud-3D−Rext2[2]に等しい速度で増加する。一方、図57の(a)に示されているように、第1リード・バッファ4221の蓄積データ量DA1はレフトビュー転送速度Rext1-3D[1]で減少し続ける。
二番目のライトビュー・エクステントR2の後端が読み出された時、二回目のゼロ・セクタ遷移J02が生じる。第2ゼロ・セクタ遷移期間PJ02では、BD−ROMディスク101からのデータの読み出しが停止する。従って、第1リード・バッファ4221の蓄積データ量DA1はレフトビュー転送速度Rext1-3D[2]で減少し、第2リード・バッファ4222の蓄積データ量DA2はライトビュー転送速度Rext2[2]で減少する。
第2読み出し期間PRL1に第1リード・バッファ4221に蓄積されるデータ量、すなわち先頭のレフトビュー・エクステントL1のサイズSext1[1]は少なくとも、式(5)の右辺で表される最小エクステント・サイズに等しい。ここで、ゼロ・セクタ遷移時間Tjump-0[2]にはマージン時間、例えば100m秒が追加されている。従って、先頭のレフトビュー・エクステントL1のサイズSext1[1]は、第2読み出し期間PRL1から第2ゼロ・セクタ遷移期間PJ02にわたって第1リード・バッファ4221からシステム・ターゲット・デコーダ4203へ転送されるデータ量よりも大きい。その結果、第2ゼロ・セクタ遷移期間PJ02の終了時、図57の(a)に示されているように、第1リード・バッファ4221の蓄積データ量DA1が、0よりも大きい値DM1まで増える。その値DM1は、レフトビュー転送速度の最高値Rmax1-3Dにマージン時間、例えば100m秒を乗じた値で評価される:DM1=Rmax1-3D×Tjump-0[2]。
以上の過程の繰り返しにより、一対のレフトビュー・エクステントとライトビュー・エクステントとが各リード・バッファ4221、4222に読み込まれるごとに、各リード・バッファ4221、4222の蓄積データ量DA1、DA2が値DM1、DM2ずつ増える。従って、ある程度の数のエクステントが各リード・バッファ4221、4222に読み込まれたとき、各バッファ余裕量UL1、UL2が確保される。例えばマージン時間が100m秒であるとき、700m秒のジャンプに伴うアンダーフローの防止に必要なバッファ余裕量UL1、UL2が確保されるには、上記の過程が700m秒/100m秒=7回繰り返されればよい。
一方、大きなジャンプが生じない限り、各リード・バッファ4221、4222の蓄積データ量DA1、DA2は値DM1、DM2ずつ増え続ける。従って、各蓄積データ量DA1、DA2が所定の閾値を超えた場合、3D再生装置はBD−ROMドライブ4201に読み出し/転送動作を断続させる。それにより、3D映像読み出し速度Rud-3Dが低下するので、各蓄積データ量DA1、DA2の増加速度が抑えられる。こうして、各リード・バッファ4221、4222のオーバーフローを回避することができる。
≪リード・バッファの最小容量≫
AVストリーム・ファイルに属する各エクステントのBD−ROMディスク101上での配置が上記のように設計されているとき、各リード・バッファ4221、4222に必要な容量の最小値が次のように計算される。
3D映像を再生するとき、n番目のレフトビュー・エクステントLnを読み出すには、第1リード・バッファ4221の容量RB1[n]は、L/Rモードとデプス・モードとのいずれでも次式(15)を満たせばよい:
一方、L/Rモードで3D映像を再生するとき、n番目のライトビュー・エクステントRnを読み出すには、第2リード・バッファ4222の容量RB2LR[n]は次式(16)を満たせばよい:
ここで、ライトビュー・エクステントはいずれも、飛び込み再生によって最初に読み出される可能性を持つ。その場合、図57の(b)に示されているように、最初に読み出されるライトビュー・エクステントの全体が第2リード・バッファ4222に格納されるまでシステム・ターゲット・デコーダ4203は第2リード・バッファ4222からデータを読み出さない。従って、第2リード・バッファ4222の容量RB2LR[n]は第1リード・バッファ4221の容量RB1[n]とは異なり、「少なくともn番目のライトビュー・エクステントRnのサイズSext2[n]よりも大きい」という条件を更に満たす。
デプス・モードで3D映像を再生するとき、n番目のデプスマップ・エクステントDnを読み出すには、第2リード・バッファ4222の容量RB2LD[n]は次式(17)を満たせばよい:
ライトビュー・エクステントと同様、デプスマップ・エクステントはいずれも、飛び込み再生によって最初に読み出される可能性を持つ。従って、第2リード・バッファ4222の容量RB2LD[n]は更に、「少なくともn番目のデプスマップ・エクステントDnのサイズSext3[n]よりも大きい」という条件も満たす。
本発明の実施形態1によるBD−ROMディスク101では、ベースビュー・エクステントとディペンデントビュー・エクステントとの各サイズに対する下限値が式(4)、(5)、(6)の各右辺で明確に表される。その結果、BD−ROMディスク101から2D映像と3D映像とのいずれを再生するときにも、各リード・バッファ4221、4222のいずれにもアンダーフローを生じさせることなく、各容量を更に削減できるように、各エクステントのサイズを適切に設計することが容易である。
<変形例>
(1)本発明の実施形態1は、記録媒体に3D映像を格納するときのエクステントの配置に関する。しかし、本発明は、記録媒体に高フレームレートの映像を格納するときに利用されても良い。具体的には、例えば高フレームレートの映像を奇数番目のフレーム群と偶数番目のフレーム群とに分け、それぞれをベースビュー・ストリームとディペンデントビュー・ストリームとみなして、上記の実施形態1によるエクステントの配置で記録媒体に記録すればよい。通常のフレームレートでの映像再生のみが可能な再生装置は、その記録媒体からは奇数番目のフレーム群の映像を再生すればよい。一方、高フレームレートでの映像再生が可能な再生装置は、奇数番目のフレーム群のみの映像と両方のフレーム群の映像とを選択的に再生できる。こうして、高フレームレートの映像が格納された記録媒体に、通常のフレームレートでの映像再生のみが可能な再生装置に対する互換性を確保させることができる。
(2)本発明の実施形態1ではレフトビュー・ストリームがベースビュー・ストリームとして想定されている。しかし、ライトビュー・ストリームがベースビュー・ストリームであってもよい。その場合、レフトビュー・ストリームがディペンデントビュー・ストリームとして、ライトビュー・ストリームを利用して圧縮されてもよい。
(3)図22に示されているリード・バッファ1802からシステム・ターゲット・レコーダ1803へのデータの平均転送速度Rextが評価されるときにエクステントATC時間が正確に計算されることを目的として、各エクステントのサイズがソースパケット長のある一定の倍数に揃えられてもよい。更に、いずれかのエクステントがその倍数よりも多くのソースパケットを含むとき、その倍数を超えたソースパケット数とソースパケット一つ当たりの転送時間との積を、その倍数に相当するエクステントATC時間に加えた値が、そのエクステントのエクステントATC時間とみなされても良い。その他に、エクステントATC時間は、一つのエクステントの先頭のソースパケットのATSから同じエクステントの終端のソースパケットのATSまでの時間間隔にソースパケット一つ当たりの転送時間を加えた値で定義されてもよい。その場合、エクステントATC時間の計算には次のエクステントの参照が不要であるので、その計算を簡単化することができる。尚、上記のエクステントATC時間の計算では、ATSにラップアラウンドが発生することが考慮されなければならない。
(4)図35に示されているように、同じ3Dビデオ・アクセスユニットに属する一対のピクチャの間ではPTSとDTSとがそれぞれ等しい。その他に、それら一対のピクチャの一方に割り当てられたPTSとDTSとが、他方に割り当てられたものよりも所定量ずつ、例えば半周期ずつ遅れていてもよい。その場合、図43に示されているスイッチ4310は、2D/左映像プレーン・データ4301と右映像プレーン・データ4302とをPTSの順に第1加算部4311へ送出すればよい。更に、図46に示されているバッファ・スイッチ4606は、EB(1)4603とEB(2)4610とのそれぞれに蓄積されたビデオ・アクセスユニットを、元のTSパケットの示すDTSの時刻どおりに圧縮映像デコーダ4604へ転送すればよい。
(5)図38の(b)に示されているディペンデントビュー・クリップ情報ファイル3802のストリーム属性情報3821のうち、ディペンデントビュー・ストリームに関するビデオ・ストリーム属性情報に、そのストリームの復号にはベースビュー・ストリームの参照が必要であることを示すフラグが追加されてもよい。更に、そのベースビュー・ストリームを含むAVストリーム・ファイルの識別情報が併せて、そのビデオ・ストリーム属性情報に追加されてもよい。その場合、BD−ROMディスク101のオーサリング工程において、そのディスク101上に記録されるべきデータが規定のフォーマットどおりに作られているか否かを検証するとき、上記の追加情報を利用して、ベースビュー・ストリームとディペンデントビュー・ストリームとの間の対応関係の妥当性を判断することができる。
(6)図39に示されている3Dメタデータ3814は、その図に示されているPID別の設定とは異なり、例えばプレーン別に設定されても良い。それにより、3D再生装置は3Dメタデータの解析処理を簡単化できる。その他に、プレーンの合成処理に対する3D再生装置の性能を考慮して、オフセット・エントリの有効区間の長さに、例えば1秒間以上という条件が課せられてもよい。
(7)図40の(a)に示されている例では、各エントリ・ポイント4012にエクステント開始フラグ4015が新たに追加されている。その他に、アングル切り換えフラグ用に既に確保されている各エントリ・ポイント4012内の1ビット領域が、エクステント開始フラグ4015の領域として利用されてもよい。ここで、「アングル切り換えフラグ」は、AVストリーム・ファイルがマルチアングルの映像を表すとき、エントリ・ポイントがアングルの切り換え可能な位置に設定されているか否かを示すフラグである。その1ビット領域を「アングル切り換えフラグ」と「エクステント開始フラグ」とで併用することにより、エントリ・マップ3823の全体のビット量を削減することができる。その場合、その1ビット領域がいずれのフラグの領域として利用されているのかを示す別のフラグが、エントリ・マップ・ヘッダ4011に新たに追加されてもよい。3D再生装置はこのフラグをチェックすることにより、上記の1ビット領域のフラグを速やかに解釈できる。従って、3D再生装置はマルチアングルの映像の再生処理と3D映像の再生処理とを速やかに切り換えることができる。
(8)図40の(a)に示されている例とは異なり、AVストリーム・ファイルに属する各エクステントのサイズの決定に、エクステント開始フラグ4015とは別の情報が利用されてもよい。例えばそれらのエクステントのサイズのリストがメタデータとしてクリップ情報ファイルに格納されても良い。その他に、エントリ・マップ内のエントリ・ポイントと一対一に対応付けられた複数のビットが、エントリ・マップとは別に格納されてもよい。各ビットは、対応付けられたエントリ・ポイントがエクステントの先頭に設定されているときにのみ、「1」に設定される。
(9)図49に示されているインターリーブ配置では好ましくは、再生期間の一致する三種類のエクステントDn、Rn、Lnがいずれも同じエクステントATC時間を持つ。すなわち、それらのエクステント間では各エクステントの先頭のソースパケットから次のエクステントの先頭のソースパケットまでのATSの差が等しい(但し、その差の計算では、ATSにラップ・アラウンドが発生することが考慮されている)。その場合、ATCで計られる同じ時間内に、第1ソース・デパケタイザ4611はベースビュー・エクステントLn内の全てのソースパケットからTSパケットを取り出して第1PIDフィルタ4613へ送出し、第2ソース・デパケタイザ4612はディペンデントビュー・エクステントDn又はRn内の全てのソースパケットからTSパケットを取り出して第2PIDフィルタ4614へ送出する。従って、特に飛び込み再生時において、3D映像デコーダ4615はベースビュー・ストリームとディペンデントビュー・ストリームとの間でTSパケットの復号処理を容易に同期させることができる。
(10)図49に示されているエクステント群はデプスマップ・ストリームに代えて、異なるライトビュー・ストリームを二種類以上含んでもよい。その場合、各ストリームに属するエクステントは、図49に示されているインターリーブ配置と同様、BD−ROMディスク101のトラック上に交互に配置されればよい。更に、各エクステントのサイズは式(4)−(8)と同様な条件式を満たせばよい。具体的には以下のとおりである:
まず、共通のベースビュー・ストリームファイルに対し、第1から第NまでのN種類のディペンデントビュー・ストリームファイルが記録されている場合を想定する。ここで、整数Nは2以上である。その場合、BD−ROMディスク101上には複数のベースビュー・エクステントと、第(k−1)ディペンデントビュー・ストリームファイル(k=2、3、4、…、N+1)に属する複数の第(k−1)ディペンデントビュー・エクステントとが一つずつ交互に配置される。特に図49に示されているインターリーブ配置と同様に、n番目のベースビュー・エクステントと(n+1)番目のベースビュー・エクステントとの間にはn番目の第(k−1)ディペンデントビュー・エクステントが配置される。それらのエクステント群から映像をシームレスに再生するには、n番目(n=2、3、…)のベースビュー・エクステントのサイズSext1[n]とn番目の第(k−1)ディペンデントビュー・エクステントのサイズSextk[n]とが以下の条件式を満たせばよい。
2D映像の再生において、n番目(整数nは十分に大きい。)のベースビュー・エクステントから(n+1)番目のベースビュー・エクステントまでのジャンプが時間Tjump-2D[n]を要し、各ベースビュー・エクステントが第1リード・バッファ4221へ速度Rud-2Dで読み出され、かつ、第1リード・バッファ4221からシステム・ターゲット・デコーダ4203へベースビュー・ストリームファイルが平均速度Rext1-2D[n]で転送されるとき、n番目のベースビュー・エクステントのサイズSext1[n]は式(18)を満たせばよい:
3D映像の再生において、n番目のベースビュー・エクステントからn番目の第(k−1)ディペンデントビュー・エクステントまでのジャンプが時間TFjump-k-3D[n]を要し、n番目の第(k−1)ディペンデントビュー・エクステントから(n+1)番目のベースビュー・エクステントまでのジャンプが時間TBjump-k-3D[n]を要し、各ベースビュー・エクステントが第1リード・バッファ4221へ速度Rud-3Dで読み出され、各第(k−1)ディペンデントビュー・エクステントが第2リード・バッファ4222へ速度Rud-3Dで読み出され、かつ、第1リード・バッファ4221からシステム・ターゲット・デコーダ4203へベースビュー・ストリームファイルが平均速度Rext1-3D[n]で転送されるとき、n番目のベースビュー・エクステントのサイズSext1[n]は式(19)を満たせばよい:
3D映像の再生において更に、(n+1)番目のベースビュー・エクステントから(n+1)番目の第(k−1)ディペンデントビュー・エクステントまでのジャンプが時間TFjump-k-3D[n+1]を要し、かつ、第2リード・バッファ4222からシステム・ターゲット・デコーダ4203へ第(k−1)ディペンデントビュー・ストリームファイルが平均速度Rextk-3D[n]で転送されるとき、n番目の第(k−1)ディペンデントビュー・エクステントのサイズSextk[n]は次式(20)を満たせばよい:
(11)図49に示されているエクステント群から3D映像を再生するとき、図57から容易に理解されるように、ある程度の数のエクステントが連続して各リード・バッファ4221、4222に読み込まれることによって、各バッファ余裕量UL1、UL2が確保される。従って、もし飛び込み再生の開始位置から層境界LBまでの間に配置されたエクステントが少なければ、層切り換えに伴うジャンプまでに各リード・バッファ4221、4222の蓄積データ量DA1、DA2が各バッファ余裕量UL1、UL2まで到達し得ない危険性が生じる。その危険性が回避されるには、層境界LBの直前に位置する所定数のエクステント群では飛び込み再生が禁止されればよい。
図58は、飛び込み再生禁止区間5801と第1リード・バッファ4221の蓄積データ量DA1の推移との間の関係を示す模式図である。図58の(a)を参照するに、デプスマップ・エクステント群D、ライトビュー・エクステント群R、及びレフトビュー・エクステント群Lが、図49に示されているものと同様に、層境界LBで隔てられた二つの記録層にわたってインターリーブ配置で記録されている。飛び込み再生禁止区間5801は、層境界LBの直前に連続して配置された所定数のエクステント群に対して設定される。飛び込み再生禁止区間5801では飛び込み再生が禁止される。図58の(a)に示されている例では、第1エントリ・ポイント5811は飛び込み再生禁止区間5801よりも前に位置するので、そこからの飛び込み再生は許可される。一方、第2エントリ・ポイント5812は飛び込み再生禁止区間5801の中に位置するので、そこからの飛び込み再生は禁止される。
図58の(b)は、第1エントリ・ポイント5811からの飛び込み再生時における第1リード・バッファ4221の蓄積データ量DA1の推移を示すグラフである。その飛び込み再生はL/Rモードで行われ、図58の(a)に示されている再生経路5810に従って、第1エントリ・ポイント5811から層境界LBまでの範囲に含まれるレフトビュー・エクステントLが第1リード・バッファ4221に読み込まれる。そのとき、図58の(b)に示されているように、レフトビュー・エクステントLが一つ処理される度に蓄積データ量DA1が増加する。特に、層境界LBの直前に位置するレフトビュー・エクステント5802が第1リード・バッファ4221に読み込まれた時、蓄積データ量DA1は第1バッファ余裕量UL1を超える。従って、その直後に生じるジャンプJLYの開始時点から、次のレフトビュー・エクステント5803の先端が読み出される時点まで、第1リード・バッファ4221はアンダーフローを生じない。第2リード・バッファ4222についても同様である。
以上のことから、飛び込み再生禁止区間5801の長さは、次の二つの条件を満たせばよい:(A)飛び込み再生禁止区間5801の先頭から層境界LBの直前までに配置されたレフトビュー・エクステントの数が、第1バッファ余裕量UL1をマージン時間で割った値を超え、かつ、(B)その区間の先頭から層境界LBの直前までに配置されたライトビュー・エクステントの数が、第2バッファ余裕量UL2をマージン時間で割った値を超える。
飛び込み再生禁止区間5801は3D再生装置に対して次のように指定される。まず、各エクステントの属するAVストリーム・ファイルに対応するクリップ情報ファイルにおいて、図40の(a)に示されているエントリ・マップ3823内の各エントリ・ポイント4012に飛び込み再生禁止マークが付加される。「飛び込み再生禁止マーク」はフラグであって、そのエントリ・ポイントの示すエクステント内の位置が飛び込み再生禁止区間5801に含まれるか否かを示す。3D再生装置がユーザ等によって3D映像の飛び込み再生を指示されたとき、図42に示されている再生制御部4207がクリップ情報ファイル内の飛び込み再生禁止マークを参照する。それにより、3D再生装置は、飛び込み再生の開始位置が飛び込み再生禁止区間5801に含まれるか否かを判別できる。尚、「飛び込み再生禁止マーク」は、図30に示されている3Dプレイリスト・ファイル243B内のプレイアイテム情報に含まれてもよい。3D再生装置は、3D映像の飛び込み再生が指示されたとき、再生制御部4207に3Dプレイリスト・ファイル内の飛び込み再生禁止マークを参照させることにより、飛び込み再生が許可されているか否かを判別できる。
(12)図49に示されているインターリーブ配置のエクステント群の中に、AVストリーム・ファイルとは別のファイルに属するエクステントが挿入されていてもよい。その別のファイルは、例えば図2に示されているムービーオブジェクト・ファイル242B、BD−Jオブジェクト・ファイル246A、及びJARファイル247Aのいずれでもよい。図59は、その場合のエクステント群の配置を示す模式図である。図59を参照するに、n番目のレフトビュー・エクステントLnと(n+1)番目のデプスマップ・エクステントD(n+1)との間に一つのエクステントExが挿入されている。そのエクステントExの属するファイルはいずれのAVストリーム・ファイルとも異なる。その場合、そのエクステントExの直前に連続して配置されたm組のエクステント群D(n−m+1)、R(n−m+1)、L(n−m+1)、D(n−m+2)、R(n−m+2)、L(n−m+2)、…、Dn、Rn、Lnの間には、AVストリーム・ファイル以外のファイルに属するエクステントの挿入が禁止される。ここで、連続する三種類のエクステントDk、Rk、Lk(k=1、2、3、…)を一組とする。更に、整数mは少なくとも、各バッファ余裕量UL1、UL2をマージン時間で割った値に等しい。それらm組のエクステント群が先頭から順に各リード・バッファ4221、4222に読み込まれた時、各蓄積データ量DA1、DA2は各バッファ余裕量UL1、UL2を超える。従って、その直後のジャンプによってエクステントExの読み出しがスキップされる間、各リード・バッファ4221、4222はアンダーフローを生じない。
ここで、図24に示されている規定では、ジャンプ距離が40000セクタを超えるとき、対応するジャンプ時間が著しく長くなる。そのような長いジャンプ時間に対しては、必要なバッファ容量が過大になりやすい。従って、エクステントExのサイズは、その前後に位置する二つのレフトビュー・エクステントLn、L(n+1)の間隔が40000セクタを超えない程度に設定されることが望ましい。
(13)図49に示されているエクステント群から3D映像を再生するとき、図57から容易に理解されるように、ある程度の数のエクステントが連続して各リード・バッファ4221、4222に読み込まれることによって、各バッファ余裕量UL1、UL2が確保される。従って、BD−ROMディスク101からのAVストリーム・ファイルの読み出しが開始された時点から所定数のエクステントが各リード・バッファ4221、4222に読み込まれるまでは、BD−Jオブジェクト・ファイル246A等、そのAVストリーム・ファイルとは別のファイルの読み出し処理の割り込みが禁止される。その他に、各リード・バッファ4221、4222の蓄積データ量DA1、DA2が監視され、いずれかがバッファ余裕量UL1、UL2を下回っている間、別のファイルの読み出し処理の割り込みが禁止されてもよい。
(14)図57に示されている例では、ある程度の数のエクステントが連続して各リード・バッファ4221、4222に読み込まれたときに、各バッファ余裕量UL1、UL2が確保される。その他に、以下に述べる方法によって、リード・バッファ4221、4222へのAVストリーム・ファイルの読み込みが開始された直後に各バッファ余裕量UL1、UL2が確保されてもよい。その方法は、BD−ROMドライブ4201にAVストリーム・ファイルの読み出しを開始させた直後、最初のディペンデントビュー・エクステントの読み出し期間に加え、最初のベースビュー・エクステントの読み出しが開始された時点から所定時間が経過するまで、システム・ターゲット・デコーダ4203に復号処理を待機させる。その待機期間中に各リード・バッファ4221、4222に十分なデータ量が蓄積されるように、上記の所定時間が設定される。それにより、二番目のベースビュー・エクステント、ディペンデントビュー・エクステントの読み出しが開始される時点では既に、各蓄積データ量DA1、DA2が各バッファ余裕量UL1、UL2に維持される。
図60は、図49に示されているエクステント群に対してその方法が利用されるときにおける各リード・バッファ4221、4222の蓄積データ量DA1、DA2の推移を示すグラフである。以下の説明では、そのエクステント群の先端からL/Rモードで3D映像が再生される場合を想定する。その説明は、デプス・モードで3D映像が再生される場合にも、飛び込み再生によって任意のエクステントから3D映像が再生される場合にも、同様に当てはまる。尚、各エクステントのサイズは既に、式(5)、(6)を満たすように決定されている。ここで、後述のとおり、式(5)、(6)に代入されるべきゼロ・セクタ遷移時間Tjump-0[・]にはマージン時間が含まれていなくてもよい。
まず、第1読み出し期間PRR1に、先頭のライトビュー・エクステントR1がBD−ROMディスク101から第2リード・バッファ4222へ読み出される。第1読み出し期間PRR1では、図60の(b)に示されているように、第2リード・バッファ4222の蓄積データ量DA2は0から3D映像読み出し速度Rud-3Dで増加する。
第1読み出し期間PRR1の終了時点からは第1ゼロ・セクタ遷移期間PJ01が開始される。第1ゼロ・セクタ遷移期間PJ01では、BD−ROMディスク101からのデータの読み出しが停止する。従って、いずれのリード・バッファ4221、4222の蓄積データ量DA1、DA2も一定に維持される。
第1ゼロ・セクタ遷移期間PJ01の終了時点からは第2読み出し期間PRL1が開始される。第2読み出し期間PRL1では先頭のレフトビュー・エクステントL1がBD−ROMディスク101から第1リード・バッファ4221へ読み出される。但し、第2読み出し期間PRL1の開始時点から所定時間dtが経過するまでは、システム・ターゲット・デコーダ4203は待機状態を継続する。従って、図60の(a)に示されているように、第1リード・バッファ4221の蓄積データ量DA1は0から3D映像読み出し速度Rud-3Dで増加する。一方、図60の(b)に示されているように、第2リード・バッファ4222の蓄積データ量DA2は一定に維持される。
第2読み出し期間PRL1の開始時点から所定時間dtが経過した時、システム・ターゲット・デコーダ4203は起動し、各リード・バッファ4221、4222からソースパケットを読み出して復号し始める。従って、図60の(a)に示されているように、第1リード・バッファ4221の蓄積データ量DA1の増加速度は3D映像読み出し速度Rud-3Dからレフトビュー転送速度Rext1-3D[1]だけ低減する。一方、図60の(b)に示されているように、第2リード・バッファ4222の蓄積データ量DA2はライトビュー転送速度Rext2[1]で減少する。
先頭のレフトビュー・エクステントL1の後端が読み出されたとき、その直後のデプスマップ・エクステントD2を越えて次のライトビュー・エクステントR2まで最初のジャンプJLR1が行われる。第1ジャンプ期間PJLR1ではBD−ROMディスク101からのデータの読み出しが停止する。従って、図60の(a)に示されているように、第1リード・バッファ4221の蓄積データ量DA1はレフトビュー転送速度Rext1-3D[1]で減少する。一方、図60の(b)に示されているように、第2リード・バッファ4222の蓄積データ量DA2はライトビュー転送速度Rext2[1]で減少し続ける。
図60の(b)では図57の(b)とは異なり、第2読み出し期間PRL1の開始時点から所定時間dtが経過するまで、第2リード・バッファ4222からシステム・ターゲット・デコーダ4203へはデータが転送されない。すなわち、第2リード・バッファ4222の蓄積データ量DA2の減少する時間が所定時間dtだけ短縮される。その結果、第2読み出し期間PRL1から第1ジャンプ期間PJLR1にわたって第2リード・バッファ4222からシステム・ターゲット・デコーダ4203へ転送されるデータ量は、先頭のライトビュー・エクステントR1のサイズSext2[1]よりも第2バッファ余裕量UL2だけ小さい。従って、第1ジャンプ期間PJLR1の終了時、図60の(b)に示されているように、第2リード・バッファ4222の蓄積データ量DA2が第2バッファ余裕量UL2を下回らない。
第1ジャンプ期間PJLR1の終了時点からは第3読み出し期間PRR2が開始される。第3読み出し期間PRR2では、二番目のライトビュー・エクステントR2がBD−ROMディスク101から第2リード・バッファ4222へ読み出される。従って、図60の(b)に示されているように、第2リード・バッファ4222の蓄積データ量DA2は、3D映像読み出し速度Rud-3Dとライトビュー転送速度Rext2[2]との間の差Rud-3D−Rext2[2]に等しい速度で増加する。一方、図60の(a)に示されているように、第1リード・バッファ4221の蓄積データ量DA1はレフトビュー転送速度Rext1-3D[1]で減少し続ける。
二番目のライトビュー・エクステントR2の後端が読み出された時、第2ゼロ・セクタ遷移期間PJ02が開始される。第2ゼロ・セクタ遷移期間PJ02では、BD−ROMディスク101からのデータの読み出しが停止する。従って、第1リード・バッファ4221の蓄積データ量DA1はレフトビュー転送速度Rext1-3D[1]で減少し、第2リード・バッファ4222の蓄積データ量DA2はライトビュー転送速度Rext2[2]で減少する。
図60の(b)では図57の(b)とは異なり、第2読み出し期間PRL1の開始時点から所定時間dtが経過するまで、第1リード・バッファ4221からシステム・ターゲット・デコーダ4203へはデータが転送されない。すなわち、その転送時間が所定時間dtだけ短縮される。その結果、第2読み出し期間PRL1から第2ゼロ・セクタ遷移期間PJ02にわたって第1リード・バッファ4221からシステム・ターゲット・デコーダ4203へ転送されるデータ量は、先頭のレフトビュー・エクステントL1のサイズSext1[1]よりも第1バッファ余裕量UL1だけ小さい。従って、第2ゼロ・セクタ遷移期間PJ02の終了時、図60の(a)に示されているように、第1リード・バッファ4221の蓄積データ量DA1が第1バッファ余裕量UL1を下回らない。
第2ゼロ・セクタ遷移期間PJ02以降では、各リード・バッファ4221、4222の蓄積データ量DA1、DA2が、図53に示されている推移を示すように、各エクステントのサイズが設計されていればよい。すなわち、一つのエクステントが処理される度に、各リード・バッファ4221、4222の蓄積データ量DA1、DA2は各バッファ余裕量UL1、UL2に戻ればよい。従って、式(5)、(6)に代入されるべきゼロ・セクタ遷移時間Tjump-0[・]にはマージン時間が含まれていなくてもよい。
飛び込み再生では、最初に読み出されるエクステントは先頭のエクステントR1、L1に限らず、任意のエクステントRn、Lnであり得る(但し、飛び込み再生が禁止されている区間内のものは除く)。従って、以上のことから、所定時間dtは任意の整数nについて次式(21)、(22)を満たせばよい:
図60の(a)を参照するに、先頭のレフトビュー・エクステントL1の読み出し処理では、第1リード・バッファ4221の蓄積データ量DA1は第2読み出し期間PRL1の終了時点に最大値に達する。従って、n番目のレフトビュー・エクステントLnを読み出すには、第1リード・バッファ4221の容量RB1[n]は、式(15)に代えて、次式(23)を満たせばよい:
一方、図60の(b)を参照するに、先頭のライトビュー・エクステントR1の読み出し処理では、第2リード・バッファ4222の蓄積データ量DA2は少なくとも、先頭のライトビュー・エクステントR1のサイズに等しければよい。従って、n番目のライトビュー・エクステントRnを読み出すには、第2リード・バッファ4222の容量RB2[n]は上記の式(16)を満たせばよい。
《実施形態2》
以下、本発明の実施形態2として、本発明の実施形態1による記録媒体の記録装置及び記録方法について説明する。
その記録装置はいわゆるオーサリング装置と呼ばれるものである。オーサリング装置は通常、頒布用の映画コンテンツの制作スタジオに設置され、オーサリングスタッフによって使用される。記録装置はオーサリングスタッフの操作に従い、まず映画コンテンツを、MPEG規格に則った圧縮符号化方式のデジタル・ストリーム、すなわちAVストリーム・ファイルに変換する。記録装置は次にシナリオを生成する。シナリオは、映画コンテンツに含まれる各タイトルの再生方法を規定した情報であり、具体的には上記の動的シナリオ情報及び静的シナリオ情報を含む。記録装置は続いて、上記のデジタル・ストリーム及びシナリオから、BD−ROMディスク用のボリュームイメージ又はアップデートキットを生成する。記録装置は最後に、実施形態1によるエクステントの配置を利用して、ボリュームイメージを記録媒体に記録する。
図61は、その記録装置の内部構成を示すブロック図である。図61を参照するに、その記録装置は、ビデオエンコーダ6101、素材制作部6102、シナリオ生成部6103、BDプログラム制作部6104、多重化処理部6105、フォーマット処理部6106、及びデータベース部6107を含む。
データベース部6107は、記録装置に内蔵の不揮発性記憶装置であり、特にハードディスクドライブ(HDD)である。データベース部6107はその他に、記録装置に外付けされたHDDであってもよく、記録装置に内蔵の、又は外付けされた不揮発性半導体メモリ装置であってもよい。
ビデオエンコーダ6101は、非圧縮のビットマップ・データ等の映像データをオーサリングスタッフから受け付けて、それをMPEG4−AVC又はMPEG2等の圧縮符号化方式で圧縮する。それにより、主映像のデータはプライマリ・ビデオ・ストリームに変換され、副映像のデータはセカンダリ・ビデオ・ストリームに変換される。特に3D映像のデータは2D/レフトビュー・ストリームとライトビュー・ストリームとに変換される。ビデオエンコーダ6101は、図34に示されているように、2D/レフトビュー・ストリームをそれ自身のピクチャ間での予測符号化によってベースビュー・ストリームとして形成し、ライトビュー・ストリームを、それ自身のピクチャだけでなく、2D/レフトビュー・ストリームのピクチャとの間の予測符号化によってディペンデントビュー・ストリームとして形成する。尚、ライトビュー・ストリームがベースビュー・ストリームとして形成されてもよい。更に、レフトビュー・ストリームがディペンデントビュー・ストリームとして形成されてもよい。変換後の各ビデオ・ストリーム6111はデータベース部6107に保存される。
ビデオエンコーダ6101は更に、このピクチャ間予測符号化の処理過程の中で、左映像と右映像との間での各イメージの動きベクトルを検出し、それらから3D映像内の各イメージの奥行き情報を算出する。算出された各イメージの奥行き情報はフレーム奥行き情報6110に整理されてデータベース部6107に保存される。
図62は、ビデオエンコーダ6101による、左右の各ピクチャから奥行き情報を算出する処理を示す模式図である。
ビデオエンコーダ6101はまず、左右のピクチャ間の冗長性を利用して、各ピクチャを圧縮する。そのとき、ビデオエンコーダ6101は圧縮前の左右のピクチャを8×8又は16×16のピクセル・マトリクスごとに、すなわちマクロブロックごとに比較して、両ピクチャ間での各イメージの動きベクトルを検出する。具体的には、図62の(a)、(b)に示されているように、まず、左映像ピクチャ6201と右映像ピクチャ6202とはそれぞれ、マクロブロック6203のマトリクスに分割される。次に、両ピクチャ6201、6202間でイメージ・データがマクロブロック6203ごとに比較され、その結果から各イメージの動きベクトルが検出される。例えば「家」のイメージ6204を表す領域は両ピクチャ6201、6202間で実質的に等しい。従って、それらの領域からは動きベクトルが検出されない。一方、「球」のイメージ6205を表す領域は両ピクチャ6201、6202間で実質的に異なる。従って、それらの領域からは、「球」のイメージ6205の変位を表す動きベクトルが検出される。
ビデオエンコーダ6101は次に、検出された動きベクトルを各ピクチャ6201、6202の圧縮に利用する一方、各イメージ・データ6204、6205の表す映像の両眼視差の計算にも利用する。こうして得られた両眼視差から、ビデオエンコーダ6101は更に、「家」及び「球」のイメージ6204、6205等、各イメージの「奥行き」を算出する。各イメージの奥行きを表す情報は、例えば図62の(c)に示されているように、各ピクチャ6201、6202のマクロブロックのマトリクスと同じサイズのマトリクス6206に整理される。図61に示されているフレーム奥行き情報6110はこのマトリクス6206を含む。このマトリクス6206内のブロック6207は、各ピクチャ6201、6202内のマクロブロック6203と一対一に対応する。各ブロック6207は、対応するマクロブロック6203の表すイメージの奥行きを、例えば8ビットの深度で表す。図62に示されている例では、「球」のイメージ6205の奥行きが、マトリクス6206の領域6208内の各ブロックに記録される。その領域6208は、そのイメージ6205を表す各ピクチャ6201、6202内の領域の全体に対応する。
説明を図61に戻す。素材制作部6102は、ビデオ・ストリーム以外のエレメンタリ・ストリーム、例えば、オーディオ・ストリーム6112、PGストリーム6113、及びIGストリーム6114を作成してデータベース部6107に保存する。例えば、素材制作部6102は、オーサリングスタッフから非圧縮のLPCM音声データを受け付けて、それをAC−3等の圧縮符号化方式で符号化してオーディオ・ストリーム6112に変換する。素材制作部6102は、オーサリングスタッフから字幕情報ファイルを受け付けて、それに従ってPGストリーム6113を作成する。字幕情報ファイルは、字幕を表すイメージ・データ、その字幕の表示時期、及び、その字幕に加えられるべきフェードイン/フェードアウト等の視覚効果を規定する。素材制作部6102は、オーサリングスタッフからビットマップ・データとメニューファイルとを受け付けて、それらに従ってIGストリーム6114を作成する。ビットマップ・データはメニューのイメージを表す。メニューファイルは、そのメニューに配置される各ボタンの状態の遷移、及び各ボタンに加えられるべき視覚効果を規定する。
シナリオ生成部6103は、オーサリングスタッフからGUI経由で受け付けられた指示に従って、BD−ROMシナリオ・データ6115を作成して、データベース部6107に保存する。ここで、BD−ROMシナリオ・データ6115は、データベース部6107に保存された各エレメンタリ・ストリーム6111−6114の再生方法を規定するファイル群である。BD−ROMシナリオ・データ6115は、図2に示されているファイル群のうち、インデックス・ファイル242A、ムービーオブジェクト・ファイル242B、及びプレイリスト・ファイル243A−Cを含む。シナリオ生成部6103は更に、パラメータ・ファイル6116を作成して多重化処理部6105へ送出する。パラメータ・ファイル6116は、データベース部6107に保存されたエレメンタリ・ストリーム6111−6114のうち、各AVストリーム・ファイルに多重化されるべきストリームを規定する。
BDプログラム制作部6104は、オーサリングスタッフに対してBD−Jオブジェクト及びJavaアプリケーション・プログラムのプログラミング環境を提供する。BDプログラム制作部6104は、GUIを通じてユーザからの要求を受け付け、その要求に従って各プログラムのソースコードを作成する。BDプログラム制作部6104は更に、BD−JオブジェクトからBD−Jオブジェクト・ファイル246Aを作成し、Javaアプリケーション・プログラムをJARファイル247Aに圧縮する。それらのファイル246A、247Aはフォーマット処理部6106へ送出される。
ここで、BD−Jオブジェクトが次のようにプログラミングされる場合を想定する:BD−Jオブジェクトは、図42に示されているプログラム実行部4206にGUI用のグラフィックス・データをシステム・ターゲット・デコーダ4203へ送出させる。BD−Jオブジェクトは更に、システム・ターゲット・デコーダ4203にそのグラフィックス・データを、図43に示されているイメージ・プレーン・データ4306として処理させる。その場合、BDプログラム制作部6104は、データベース部6107に保存されたフレーム奥行き情報6110を利用して、BD−Jオブジェクトにイメージ・プレーン・データ4306に対するオフセット情報を設定してもよい。
多重化処理部6105は、パラメータ・ファイル6116に従い、データベース部6107に保存されている各エレメンタリ・ストリーム6111−6114をMPEG2−TS形式のストリーム・ファイルに多重化する。具体的には、図5に示されているように、各エレメンタリ・ストリーム6111−6114がソースパケット列に変換され、各列のソースパケットが一列にまとめられて一本のストリーム・ファイルを構成する。こうして、図2に示されているAVストリーム・ファイル245A−Cが作成される。
その処理と並行して、多重化処理部6105は、各AVストリーム・ファイル245A−Cに対応付けられるべきクリップ情報ファイルを以下の手順で作成する。まず、図13、40に示されているエントリ・マップ1103、3823が生成される。次に、AVストリーム・ファイルごとに、多重化されるべき各エレメンタリ・ストリームから、図12に示されているストリーム属性情報1102が抽出される。更に、図11、38に示されているように、エントリ・マップとストリーム属性情報との対が、各AVストリーム・ファイルを示すクリップ情報に対応付けられる。
フォーマット処理部6106は、データベース部6107に保存されたBD−ROMシナリオ・データ6115、BDプログラム制作部6104によって制作されたBD−Jオブジェクト・ファイル等のプログラムファイル群、及び、多重化処理部6105によって生成されたAVストリーム・ファイルとクリップ情報ファイルとから、図2に示されているディレクトリ構造204のBD−ROMディスクイメージ6120を作成する。そのディレクトリ構造204では、ファイルシステムとしてUDFが利用される。
フォーマット処理部6106は、AVストリーム・ファイルのファイル・エントリを作成するとき、対応するクリップ情報ファイルのエントリ・マップを参照する。それにより、各エントリ・ポイントのSPNが各アロケーション記述子の作成に利用される。特に3D映像のAVストリーム・ファイルのファイル・エントリでは、図49に示されているようにデプスマップ・エクステントから順に、三種類のエクステントが交互に配置されるように各アロケーション記述子が作成される。更に、各エクステントのサイズが式(4)−(8)を満たすように設計され、それに基づいて、各アロケーション記述子の表すべき論理アドレスの値が決定される。
フォーマット処理部6106はその他に、データベース部6107に保存されたフレーム奥行き情報6110を利用して、図39に示されている3Dメタデータ3814を、セカンダリ・ビデオ・ストリーム6111、PGストリーム6113、及びIGストリーム6114のそれぞれについて作成する。ここで、各ストリームの表す3D映像が、他のストリームの表す3D映像と同じ視方向に重なって表示されないように、左右の各映像フレーム内でのイメージ・データの配置が自動的に調整される。更に、各ストリームの表す3D映像の奥行きが互いに重ならないように、各映像フレームに対するオフセット値が自動的に調整される。
フォーマット処理部6106によって生成されたBD−ROMディスクイメージ6120はその後、BD−ROMプレス用データに変換される。更に、このデータはBD−ROMディスクの原盤に記録される。この原盤がプレス工程に利用されることにより、本発明の実施形態1によるBD−ROMディスク101の大量生産が実現可能になる。
<補足>
≪放送、通信回路を経由したデータ配信≫
本発明の実施形態1による記録媒体は、光ディスクの他、例えばSDメモリカードを含む可搬性半導体メモリ装置等、パッケージメディアとして利用可能なリムーバブルメディア全般を含む。また、実施形態1の説明では、予めデータが記録された光ディスク、すなわち、BD−ROM又はDVD−ROM等の既存の読み出し専用の光ディスクが例に挙げられている。しかし、本発明の実施形態はそれらに限定されない。例えば放送で、又はネットワーク経由で配信された3D映像のコンテンツを端末装置によって、BD−RE又はDVD−RAM等の既存の書き込み可能な光ディスクへ書き込むときに、実施形態1によるエクステントの配置が利用されてもよい。ここで、その端末装置は、再生装置に組み込まれていても、再生装置とは別の装置であってもよい。
≪半導体メモリカードの再生≫
本発明の実施形態1による記録媒体として、光ディスクに代えて半導体メモリカードを用いたときにおける、再生装置のデータ読み出し部について説明する。
再生装置のうち、光ディスクからデータを読み出す部分は、例えば光ディスクドライブによって構成される。それに対し、半導体メモリカードからデータを読み出す部分は、専用のインタフェース(I/F)で構成される。より詳細には、再生装置にカードスロットが設けられ、その内部に上記のI/Fが実装される。そのカードスロットに半導体メモリカードが挿入されるとき、そのI/Fを通してその半導体メモリカードが再生装置と電気的に接続される。更に、半導体メモリカードからデータがそのI/Fを通して再生装置に読み出される。
≪BD−ROMディスク上のデータに対する著作権保護技術≫
ここで、以降の補足事項の前提として、BD−ROMディスクに記録されているデータの著作権を保護するための仕組みについて説明する。
BD−ROMディスクに記録されたデータの一部が、例えば著作権の保護又はデータの秘匿性の向上の観点から暗号化されている場合がある。その暗号化データは例えば、ビデオ・ストリーム、オーディオ・ストリーム、またはその他のストリームを含む。その場合、暗号化データは以下のように解読される。
再生装置には予め、BD−ROMディスク上の暗号化データを解読するための「鍵」の生成に必要なデータの一部、すなわちデバイスキーが記憶されている。一方、BD−ROMディスクには、そのその「鍵」の生成に必要なデータの別の一部、すなわちMKB(メディアキーブロック)と、その「鍵」自体の暗号化データ、すなわち暗号化タイトルキーとが記録されている。デバイスキー、MKB、及び暗号化タイトルキーは互いに対応付けられ、更に、図2に示されているBD−ROMディスク101上のBCA201に書き込まれた特定の識別子、すなわちボリュームIDにも対応付けられている。デバイスキー、MKB、暗号化タイトルキー、及びボリュームIDの組み合わせが正しくなければ、暗号化データの解読はできない。すなわち、これらの組み合わせが正しい場合にのみ、上記の「鍵」、すなわちタイトルキーが生成される。具体的には、まず、デバイスキー、MKB、及びボリュームIDを利用して暗号化タイトルキーが復号される。それによってタイトルキーを導き出すことができたときのみ、そのタイトルキーを上記の「鍵」として用いて暗号化データを解読することができる。
BD−ROMディスク上の暗号化データを再生装置によって再生しようとしても、例えばそのBD−ROMディスク上の暗号化タイトルキー、MKB、及びボリュームIDに予め対応付けられたデバイスキーがその再生装置内に記憶されていなければ、その暗号化データを再生することができない。何故なら、その暗号化データの解読に必要な鍵、すなわちタイトルキーは、MKB、デバイスキー、及びボリュームIDの正しい組み合わせで暗号化タイトルキーを復号しなければ導き出せないからである。
BD−ROMディスクに記録されるべきビデオ・ストリームとオーディオ・ストリームとの少なくともいずれかの著作権を保護するには、まず、保護対象のストリームをタイトルキーで暗号化して、BD−ROMディスクに記録する。次に、MKB、デバイスキー、及びボリュームIDの組み合わせから鍵を生成し、その鍵で上記のタイトルキーを暗号化して暗号化タイトルキーに変換する。更に、MKB、ボリュームID、及び暗号化タイトルキーをBD−ROMディスクに記録する。そのBD−ROMディスクからは、上述の鍵の生成に利用されたデバイスキーを備えた再生装置でしか、暗号化されたビデオ・ストリーム及び/又はオーディオ・ストリームをデコーダで復号することはできない。こうして、BD−ROMディスクに記録されたデータの著作権を保護することができる。
以上に述べた、BD−ROMディスクにおけるデータの著作権保護の仕組みは、BD−ROMディスク以外にも適用可能である。例えば読み書き可能な半導体メモリ装置、特にSDカード等の可搬性半導体メモリカードにも適用可能である。
≪電子配信を利用した記録媒体へのデータ記録≫
電子配信を利用して本発明の実施形態1による再生装置へ3D映像のAVストリーム・ファイル等のデータ(以下、配信データという。)を伝達し、更にその再生装置にその配信データを半導体メモリカードに記録させる処理について、以下説明する。尚、以下の動作は、上記の再生装置に代えて、その処理に特化した端末装置によって行われてもよい。また、記録先の半導体メモリカードがSDメモリカードである場合を想定する。
再生装置は上記のとおり、カードスロットを備えている。そのカードスロットにはSDメモリカードが挿入されている。この状態で、再生装置はまず、ネットワーク上の配信サーバへ配信データの送信要求を送出する。このとき、再生装置はSDメモリカードからその識別情報を読み出して、その識別情報を送信要求と共に配信サーバへ送出する。ここで、SDメモリカードの識別情報は、例えばそのSDメモリカード固有の識別番号、より具体的にはそのSDメモリカードのシリアル番号である。この識別情報は上述のボリュームIDとして利用される。
配信サーバには配信データが格納されている。その配信データのうち、ビデオ・ストリーム及び/又はオーディオ・ストリーム等、暗号化による保護の必要なデータは、所定のタイトルキーを用いて暗号化されている。ここで、その暗号化データは同じタイトルキーで復号が可能である。
配信サーバは、再生装置と共通の秘密鍵としてデバイスキーを保持している。配信サーバは更に、SDメモリカードと共通のMKBを保持している。配信サーバは、再生装置から配信データの送信要求とSDメモリカードの識別情報とを受け付けたとき、まず、デバイスキー、MKB、及びその識別情報から鍵を生成し、その鍵でタイトルキーを暗号化して暗号化タイトルキーを生成する。
配信サーバは次に公開鍵情報を生成する。その公開鍵情報は、例えば、上述のMKB、暗号化タイトルキー、署名情報、SDメモリカードの識別番号、及びデバイスリストを含む。署名情報は、例えば公開鍵情報のハッシュ値を含む。デバイスリストは、無効にすべきデバイス、すなわち、配信データ中の暗号化データを不正に再生する危険性のあるデバイスのリストである。そのリストには、例えば、再生装置のデバイスキー、再生装置の識別番号、再生装置に内蔵のデコーダ等、各種部品の識別番号、又は機能(プログラム)が特定されている。
配信サーバは更に、配信データと公開鍵情報とを再生装置へ送出する。再生装置は、それらを受信して、カードスロット内の専用I/Fを通してSDメモリカードに記録する。
SDメモリカードに記録された配信データのうち、暗号化データは、例えば公開鍵情報を以下のように利用して復号される。まず、公開鍵情報の認証として次の三種類のチェック(1)−(3)が行われる。尚、それらはどのような順序で行われてもよい。
(1)公開鍵情報に含まれるSDメモリカードの識別情報が、カードスロットに挿入されているSDメモリカードに記憶されている識別番号と一致するか否か。
(2)公開鍵情報から算出されるハッシュ値が、署名情報に含まれるハッシュ値と一致するか否か。
(3)公開鍵情報の示すデバイスリストから当該再生装置が除外されているか否か。具体的には、デバイスリストから当該再生装置のデバイスキーが除外されているか否か。
上述のチェック(1)〜(3)のいずれかの結果が否定的であるとき、再生装置は暗号化データの復号処理を中止する。逆に、上述のチェック(1)〜(3)の全ての結果が肯定的であるとき、再生装置は公開鍵情報の正当性を認め、デバイスキー、MKB、及びSDメモリカードの識別情報を利用して、公開鍵情報内の暗号化タイトルキーをタイトルキーに復号する。再生装置は更に、そのタイトルキーを用いて暗号化データを、例えばビデオ・ストリーム及び/又はオーディオ・ストリームに復号する。
以上の仕組みには次の利点がある。電子配信時に既に、不正使用の危険性がある再生装置、部品、及び機能(プログラム)等が知られている場合、これらの識別情報がデバイスリストに列挙され、公開鍵情報の一部として配信される。一方、配信データを要求した再生装置は必ず、そのデバイスリスト内の識別情報を、その再生装置及びその部品等の識別情報と照合しなければならない。それにより、その再生装置又はその部品等がデバイスリストに示されていれば、たとえ、SDメモリカードの識別番号、MKB、暗号化タイトルキー、及びデバイスキーの組み合わせが正しくても、その再生装置は公開鍵情報を配信データ内の暗号化データの復号には利用できない。こうして、配信データの不正使用を効果的に抑制することができる。
半導体メモリカードの識別情報は、半導体メモリカード内の記録領域のうち、特に秘匿性の高い記録領域に格納することが望ましい。何故なら、万一、その識別情報、例えばSDメモリカードではそのシリアル番号が不正に改竄された場合、SDメモリカードの違法コピーが容易に実行可能になってしまうからである。すなわち、その改竄の結果、同一の識別情報を持つ半導体メモリカードが複数存在するようになれば、上述のチェック(1)では正規品と違法な複製品との識別ができなくなるからである。従って、半導体メモリカードの識別情報は秘匿性の高い記録領域に記録して、不正な改竄から保護されねばならない。
半導体メモリカード内にこのような秘匿性の高い記録領域を構成する手段は、例えば次のとおりである。まず、通常のデータ用の記録領域(以下、第1の記録領域と称す。)から電気的に分離された別の記録領域(以下、第2の記録領域と称す。)が設置される。次に、第2の記録領域へのアクセス専用の制御回路が半導体メモリカード内に設けられる。それにより、第2の記録領域へはその制御回路を介してのみアクセスが可能であるようにする。例えば、第2の記録領域には、暗号化されたデータのみが記録され、その暗号化されたデータを復号するための回路が制御回路内にのみ組み込まれる。それにより、第2の記録領域内のデータへのアクセスは、そのデータを制御回路に復号させなければ不可能である。その他に、第2の記録領域内の各データのアドレスを制御回路にのみ保持させてもよい。その場合、第2の記録領域内のデータのアドレスは制御回路にしか特定できない。
半導体メモリカードの識別情報が第2の記録領域に記録された場合、再生装置上で動作するアプリケーション・プログラムは、電子配信を利用して配信サーバからデータを取得して半導体メモリカードに記録する場合、次のような処理を行う。まず、そのアプリケーション・プログラムは、メモリカードI/Fを介して上記の制御回路に対し、第2の記録領域に記録された半導体メモリカードの識別情報へのアクセス要求を発行する。制御回路はその要求に応じて、まず、第2の記録領域からその識別情報を読み出す。制御回路は次に、メモリカードI/Fを介して上記のアプリケーション・プログラムへその識別情報を送る。そのアプリケーション・プログラムはその後、その識別情報と共に配信データの送信要求を配信サーバに送出する。アプリケーション・プログラムは更に、その要求に応じて配信サーバから受信される公開鍵情報と配信データとを、メモリカードI/Fを介して半導体メモリカード内の第1の記録領域に記録する。
尚、上記のアプリケーション・プログラムは、半導体メモリカード内の制御回路に対して上記のアクセス要求を発行する前に、そのアプリケーション・プログラム自体の改竄の有無をチェックすることが望ましい。そのチェックには、例えばX.509に準拠のデジタル証明書が利用されてもよい。また、配信データは上記のとおり、半導体メモリカード内の第1の記録領域に記録されればよく、その配信データへのアクセスは半導体メモリカード内の制御回路によって制御されなくてもよい。
≪リアルタイム・レコーディングへの適用≫
本発明の実施形態2では、AVストリーム・ファイル及びプレイリスト・ファイルは、オーサリングシステムにおけるプリレコーディング技術によってBD−ROMディスクに記録されてユーザに供給されることを前提とした。しかし、AVストリーム・ファイル及びプレイリスト・ファイルは、リアルタイム・レコーディングによって、BD−REディスク、BD−Rディスク、ハードディスク、又は半導体メモリカード等の書き込み可能な記録媒体(以下、BD−REディスク等と略す。)に記録されてユーザに供給されるものであってもよい。その場合、AVストリーム・ファイルは、アナログ入力信号を記録装置がリアルタイムで復号することによって得られたトランスポート・ストリームであってもよい。その他に、記録装置がデジタル入力したトランスポート・ストリームをパーシャル化することで得られるトランスポート・ストリームであってもよい。
リアルタイム・レコーディングを実行する記録装置は、ビデオエンコーダ、オーディオエンコーダ、マルチプレクサ、及びソースパケタイザを含む。ビデオエンコーダはビデオ信号を符号化してビデオ・ストリームに変換する。オーディオエンコーダはオーディオ信号を符号化してオーディオ・ストリームに変換する。マルチプレクサは、ビデオ・ストリームとオーディオ・ストリームとを多重化して、MPEG2−TS形式のデジタル・ストリームに変換する。ソースパケタイザは、MPEG2−TS形式のデジタル・ストリーム内のTSパケットをソースパケットに変換する。記録装置は各ソースパケットをAVストリーム・ファイルに格納して、BD−REディスク等に書き込む。
AVストリーム・ファイルの書き込み処理と並行して、記録装置の制御部はクリップ情報ファイルとプレイリスト・ファイルとをメモリ上で生成してBD−REディスク等に書き込む。具体的には、ユーザによって録画処理が要求されたとき、制御部はまず、AVストリーム・ファイルに合わせてクリップ情報ファイルを生成してBD−REディスク等に書き込む。その場合、外部から受信されるトランスポート・ストリームからビデオ・ストリーム内の一つのGOPの先頭が検出される度に、又は、ビデオエンコーダによってビデオ・ストリーム内の一つのGOPが生成される度に、制御部は、そのGOPの先頭に位置するIピクチャのPTSと、そのGOPの先頭が格納されたソースパケットのSPNとを取得する。制御部は更に、そのPTSとSPNとの対を一つのエントリ・ポイントとしてクリップ情報ファイルのエントリ・マップに追記する。ここで、そのエントリ・ポイントには「is_angle_changeフラグ」が追加される。is_angle_changeフラグは、そのGOPの先頭がIDRピクチャであるときは“オン”に設定され、そのGOPの先頭がIDRピクチャではないときは“オフ”に設定される。クリップ情報ファイル内には更に、ストリーム属性情報が記録対象のストリームの属性に従って設定される。こうして、AVストリーム・ファイルとクリップ情報ファイルとがBD−REディスク等に書き込まれた後、制御部はそのクリップ情報ファイル内のエントリ・マップを利用してプレイリスト・ファイルを生成し、BD−REディスク等に書き込む。
≪マネージド・コピー≫
本発明の実施形態1による再生装置は更に、マネージド・コピーによってBD−ROMディスク101上のデジタル・ストリームを他の記録媒体へ書き込んでもよい。「マネージド・コピー」とは、BD−ROMディスク等の読み出し専用記録媒体から書き込み可能な記録媒体へ、デジタル・ストリーム、プレイリスト・ファイル、クリップ情報ファイル、及びアプリケーション・プログラムをコピーすることを、サーバとの通信による認証が成功した場合にのみ許可するための技術をいう。その書き込み可能な記録媒体は、BD−R、BD−RE、DVD−R、DVD−RW、及びDVD−RAM等の書き込み可能な光ディスク、ハードディスク、並びに、SDメモリカード、メモリースティック(登録商標)、コンパクトフラッシュ(登録商標)、スマートメディア(登録商標)、及びマルチメディアカード(登録商標)等の可搬性半導体メモリ装置を含む。マネージド・コピーは、読み出し専用記録媒体に記録されたデータのバックアップ回数の制限、及びバックアップ処理に対する課金を可能にする。
BD−ROMディスクからBD−Rディスク又はBD−REディスクへのマネージド・コピーが行われる場合、両ディスクの記録容量が等しいときは、コピー元のディスクに記録されたビット・ストリームがそのまま、順番にコピーされればよい。
マネージド・コピーが異種の記録媒体間で行われるときはトランス・コードが必要である。「トランス・コード」とは、コピー元のディスクに記録されているデジタル・ストリームをコピー先の記録媒体のアプリケーション・フォーマットに適合させるための処理をいう。トランス・コードは、例えば、MPEG2−TS形式からMPEG2プログラム・ストリーム形式へ変換する処理、及び、ビデオ・ストリームとオーディオ・ストリームとのそれぞれに割り当てられているビットレートを低くして符号化し直す処理を含む。トランス・コードでは、上述のリアルタイム・レコーディングによって、AVストリーム・ファイル、クリップ情報ファイル、及びプレイリスト・ファイルが生成されねばならない。
≪データ構造の記述方法≫
本発明の実施形態1によるデータ構造のうち、「所定型の情報が複数存在する」という繰り返し構造は、for文に制御変数の初期値と繰り返し条件とを記述することによって定義される。また、「所定の条件が成立するときに所定の情報が定義される」というデータ構造は、if文にその条件と、その条件の成立時に設定されるべき変数とを記述することによって定義される。このように、実施形態1によるデータ構造は高級プログラミング言語によって記述される。従って、そのデータ構造は、「構文解析」、「最適化」、「資源割付」、及び「コード生成」といったコンパイラによる翻訳過程を経て、コンピュータによって読み取り可能なコードに変換され、記録媒体に記録される。高級プログラミング言語での記述により、そのデータ構造は、オブジェクト指向言語におけるクラス構造体のメソッド以外の部分、具体的には、そのクラス構造体における配列型のメンバー変数として扱われ、プログラムの一部を成す。すなわち、そのデータ構造は、プログラムと実質的に同等である。従って、そのデータ構造はコンピュータ関連の発明として保護を受けるべきである。
≪再生プログラムによるプレイリスト・ファイル、クリップ情報ファイルの管理≫
プレイリスト・ファイルとAVストリーム・ファイルとが記録媒体に記録されるとき、その記録媒体には再生プログラムが実行形式のファイルとして記録される。再生プログラムはコンピュータに、プレイリスト・ファイルに従ってAVストリーム・ファイルを再生させる。再生プログラムは記録媒体からコンピュータ内のメモリ装置にロードされた後、そのコンピュータによって実行される。そのロード処理はコンパイル処理又はリンク処理を含む。それらの処理により、再生プログラムはメモリ装置内では複数のセクションに分割される。それらのセクションは、textセクション、dataセクション、bssセクション、及びstackセクションを含む。textセクションは、再生プログラムのコード列、変数の初期値、及び書き換え不可のデータを含む。dataセクションは、初期値を持つ変数、及び書き換え可能なデータを含む。dataセクションは特に、記録媒体上に記録された、随時アクセスされるファイルを含む。bssセクションは、初期値を持たない変数を含む。bssセクション内のデータは、textセクション内のコードの示す命令に応じて参照される。コンパイル処理又はリンク処理では、コンピュータ内のRAMにbssセクション用の領域が確保される。stackセクションは、必要に応じて一時的に確保されるメモリ領域である。再生プログラムによる各処理ではローカル変数が一時的に使用される。stackセクションはそれらのローカル変数を含む。プログラムの実行が開始されるとき、bssセクション内の変数はゼロで初期化され、stackセクションには必要なメモリ領域が確保される。
プレイリスト・ファイル及びクリップ情報ファイルは上述のとおり、記録媒体上では既に、コンピュータによって読み取り可能なコードに変換されている。従って、それらのファイルは再生プログラムの実行時、textセクション内の「書き換え不可のデータ」、又はdataセクション内の「随時アクセスされるファイル」として管理される。すなわち、プレイリスト・ファイル及びクリップ情報ファイルは、再生プログラムの実行時にその構成要素の中に組み込まれる。それ故、プレイリスト・ファイル及びクリップ情報ファイルは再生プログラムにおいて、単なるデータの提示を超えた役割を果たす。
≪システムLSI≫
本発明の実施形態1による再生装置は、ミドルウェア、システムLSI、及びその他のハードウェアを含む。その再生装置は更に、ミドルウェアに対するインタフェース、ミドルウェアとシステムLSIとの間のインタフェース、ミドルウェアとその他のハードウェアとの間のインタフェース、及びユーザインタフェースを含む。それらの要素は、再生装置に組み込まれたときに互いに連携する。それにより、各要素に固有の機能が再生装置に提供される。ミドルウェアに対するインタフェース、及び、ミドルウェアとシステムLSIとの間のインタフェースが適切に定義されることにより、再生装置内のユーザインタフェース、ミドルウェア、及びシステムLSIのそれぞれの開発を、独立に、並列に、かつ効率良く進めることができる。尚、いずれのインタフェースについても、そのような適切な定義は一般に多様である。