以下、本発明の好適な実施形態に係る記録媒体及び再生装置について、図面を参照しながら説明する。
《実施形態1》
図1は、本発明の実施形態1による記録媒体を使用するホームシアター・システムを示す模式図である。このホームシアター・システムは、視差映像を用いた3D映像(立体視映像)の再生方式を採用し、特に表示方式として継時分離方式を採用している(詳細は<補足>参照)。図1を参照するに、このホームシアター・システムは記録媒体101を再生対象とし、再生装置102、表示装置103、シャッター眼鏡104、及びリモコン105を含む。
記録媒体101は読み出し専用ブルーレイ・ディスク(登録商標)(BD:Blu−ray Disc)、すなわちBD−ROMディスクである。記録媒体101はその他の可搬性記録媒体、例えば、DVD等の他方式による光ディスク、リムーバブル・ハードディスクドライブ(HDD)、又はSDメモリカード等の半導体メモリ装置であってもよい。その記録媒体、すなわちBD−ROMディスク101は3D映像による映画コンテンツを格納している。このコンテンツは、その3D映像のレフトビューとライトビューとのそれぞれを表すビデオ・ストリームを含む。そのコンテンツは更に、その3D映像のデプスマップを表すビデオ・ストリームを含んでいてもよい。それらのビデオ・ストリームは、後述のようにデータ・ブロック単位でBD−ROMディスク101上に配置され、後述のファイル構造を利用してアクセスされる。レフトビュー又はライトビューを表すビデオ・ストリームは、2D再生装置と3D再生装置とのそれぞれにより、そのコンテンツを2D映像として再生するのに利用される。一方、レフトビューとライトビューとのそれぞれを表すビデオ・ストリームの対、又は、レフトビュー若しくはライトビューのいずれかとデプスマップとのそれぞれを表すビデオ・ストリームの対は、3D再生装置により、そのコンテンツを3D映像として再生するのに利用される。
再生装置102はBD−ROMドライブ121を搭載している。BD−ROMドライブ121はBD−ROM方式に準拠の光ディスクドライブである。再生装置102はBD−ROMドライブ121を利用して、BD−ROMディスク101からコンテンツを読み込む。再生装置102は更にそのコンテンツを映像データ/音声データに復号する。ここで、再生装置102は3D再生装置であり、そのコンテンツを2D映像と3D映像とのいずれとしても再生可能である。以下、2D映像と3D映像とのそれぞれを再生するときの再生装置102の動作モードを「2D再生モード」、「3D再生モード」という。2D再生モードでは、映像データはレフトビュー又はライトビューのいずれか一方の映像フレームを含む。3D再生モードでは、映像データはレフトビューとライトビューとの両方の映像フレームを含む。
3D再生モードは更に、レフト/ライト(L/R)モードとデプス・モードとに分けられる。「L/Rモード」では、レフトビューとライトビューとのそれぞれを表すビデオ・ストリームの組み合わせから、レフトビューとライトビューとの映像フレームの対が再生される。「デプス・モード」では、レフトビュー又はライトビューのいずれかとデプスマップとのそれぞれを表すビデオ・ストリームの組み合わせから、レフトビューとライトビューとの映像フレームの対が再生される。再生装置102はL/Rモードを備える。再生装置102は更に、デプス・モードを備えていてもよい。
再生装置102はHDMI(High−Definition Multimedia Interface)ケーブル122で表示装置103に接続されている。再生装置102は映像データ/音声データをHDMI方式の映像信号/音声信号に変換し、HDMIケーブル122を通して表示装置103に伝送する。2D再生モードでは、映像信号にはレフトビュー又はライトビューのいずれか一方の映像フレームが多重化されている。3D再生モードでは、映像信号にはレフトビューとライトビューとの両方の映像フレームが時分割で多重化されている。再生装置102は更に、HDMIケーブル122を通して表示装置103との間でCECメッセージを交換する。それにより、再生装置102は、3D映像の再生に対応可能か否かを表示装置103に問い合わせることができる。
表示装置103は液晶ディスプレイである。表示装置103はその他に、プラズマ・ディスプレイ及び有機ELディスプレイ等、他方式のフラットパネル・ディスプレイ又はプロジェクタであってもよい。表示装置103は、映像信号に従って画面131上に映像を表示し、音声信号に従って内蔵のスピーカから音声を発生させる。表示装置103は3D映像の再生に対応可能である。2D映像の再生時、画面131上にはレフトビュー又はライトビューのいずれか一方が表示される。3D映像の再生時、画面131上にはレフトビューとライトビューとが交互に表示される。
表示装置103は左右信号送信部132を含む。左右信号送信部132は左右信号LRを赤外線又は無線でシャッター眼鏡104へ送出する。左右信号LRは、現時点で画面131に表示される映像がレフトビューとライトビューとのいずれであるのかを示す。3D映像の再生時、表示装置103は、映像信号に付随する制御信号からレフトビュー・フレームとライトビュー・フレームとを識別することによってフレームの切り換えを検知する。表示装置103は更に左右信号送信部132に、検知されたフレームの切り換えに同期して左右信号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とはそれぞれ、その信号IRを受信し、その信号IRの示すボタンを特定し、そのボタンに対応付けられた機能を実行する。こうして、ユーザは再生装置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が模式的に横方向に引き伸ばされて描かれている。その左側はディスク101の内周部を表し、右側は外周部を表す。図2に示されているように、トラック202は内周から順に、リードイン領域202A、ボリューム領域202B、及びリードアウト領域202Cを含む。リードイン領域202AはBCA201のすぐ外周側に設けられている。リードイン領域202Aは、ボリューム領域202Bに記録されたデータのサイズ及び物理アドレス等、BD−ROMドライブ121によるボリューム領域202Bへのアクセスに必要な情報を含む。リードアウト領域202Cはデータ記録領域の最外周部に設けられ、ボリューム領域202Bの終端を示す。ボリューム領域202Bは、映像及び音声等のアプリケーション・データを含む。
ボリューム領域202Bは「セクタ」と呼ばれる小領域202Dに分割されている。セクタのサイズは共通であり、例えば2048バイトである。各セクタ202Dにはボリューム領域202Bの先端から順に通し番号が振られている。この通し番号は論理ブロック番号(LBN)と呼ばれ、BD−ROMディスク101上の論理アドレスに利用される。BD−ROMディスク101からのデータの読み出しでは、読み出し元のセクタのLBNが指定されることによって読み出し対象のデータが特定される。こうして、ボリューム領域202Bはセクタ単位でアクセス可能である。更に、BD−ROMディスク101上では論理アドレスが物理アドレスと実質的に等しい。特に、LBNが連続している領域では物理アドレスも実質的に連続している。従って、BD−ROMドライブ121は、LBNが連続しているセクタからデータを、その光ピックアップにシークを行わせることなく連続して読み出すことができる。
ボリューム領域202Bに記録されたデータは所定のファイルシステムで管理される。そのファイルシステムとしてはUDF(Universal Disc Format)が採用されている。そのファイルシステムはその他にISO9660であってもよい。そのファイルシステムに従い、ボリューム領域202Bに記録されたデータはディレクトリ/ファイル形式で表現される。すなわち、それらのデータはディレクトリ単位又はファイル単位でアクセス可能である。
図2には、ファイルシステムとしてUDFが利用されたときにおける、ボリューム領域202Bのデータ構造が示されている。図2を参照するに、ボリューム領域202Bは、一般に複数のディレクトリ213−215、ファイルセット記述子211、及び終端記述子212のそれぞれが記録された領域を含む。各「ディレクトリ」213、214、215は、同じディレクトリを構成するデータ群である。「ファイルセット記述子」211は、ルートディレクトリ213のファイル・エントリが記録されているセクタのLBNを示す。「終端記述子」212はファイルセット記述子211の記録領域の終端を示す。
各ディレクトリ213、214、215は共通のデータ構造を持つ。図2にはその典型例としてディレクトリ#1214のデータ構造が示されている。ディレクトリ#1214は、ファイル・エントリ221、ディレクトリ・ファイル222、及び下位ファイル群223−225を含む。
「ファイル・エントリ」221は、記述子タグ231、ICB(Information Control Block)タグ232、及びアロケーション記述子233を含む。「記述子タグ」231は、その記述子タグを含むデータの種類がファイル・エントリであることを示す。例えば、記述子タグの値が“261”であるとき、そのデータの種類はファイル・エントリである。「ICBタグ」232はそのファイル・エントリ自身の属性情報を示す。「アロケーション記述子」233は、ディレクトリ#1214に属するディレクトリ・ファイル222が記録されたセクタのLBNを示す。
「ディレクトリ・ファイル」222は、下位ディレクトリのファイル識別記述子241と下位ファイルのファイル識別記述子242とを一般に複数ずつ含む。図3の(a)は、下位ディレクトリのファイル識別記述子241のデータ構造を示す模式図である。「下位ディレクトリのファイル識別記述子」241は、ディレクトリ#1の直下に置かれた下位ディレクトリにアクセスするための情報である。図3の(a)を参照するに、下位ディレクトリのファイル識別記述子241は、その下位ディレクトリの識別情報311、ディレクトリ名の長さ312、ファイル・エントリ・アドレス313、及びディレクトリ名そのもの314を含む。特にファイル・エントリ・アドレス313は、その下位ディレクトリのファイル・エントリが記録されたセクタのLBNを示す。図3の(b)は下位ファイルのファイル識別記述子242のデータ構造を示す模式図である。「下位ファイルのファイル識別記述子」242は、ディレクトリ#1の直下に置かれた下位ファイルにアクセスするための情報である。図3の(b)を参照するに、下位ファイルのファイル識別記述子242は、その下位ファイルの識別情報321、ファイル名の長さ322、ファイル・エントリ・アドレス323、及びファイル名そのもの324を含む。特にファイル・エントリ・アドレス323は、その下位ファイルのファイル・エントリが記録されたセクタのLBNを示す。「下位ファイルのファイル・エントリ」は、後述のとおり、下位ファイルの実体を構成するデータのアドレス情報を含む。
図2、3から理解されるように、ファイルセット記述子211と下位ディレクトリ/ファイルのファイル識別記述子とを順番に辿ってゆけば、ボリューム領域202Bに記録された任意のディレクトリ/ファイルのファイル・エントリにアクセスすることができる。具体的な例として、ディレクトリ#1214の下位ファイル#1223にアクセスする場合を想定する。まずファイルセット記述子211からルートディレクトリ213のファイル・エントリが特定され、そのファイル・エントリ内のアロケーション記述子からルートディレクトリ213のディレクトリ・ファイルが特定される。次に、そのディレクトリ・ファイルからディレクトリ#1214のファイル識別記述子が検出され、その中のファイル・エントリ・アドレスからディレクトリ#1214のファイル・エントリ221が特定される。更に、そのファイル・エントリ221内のアロケーション記述子233からディレクトリ#1214のディレクトリ・ファイル222が特定される。続いて、そのディレクトリ・ファイル222のうち、下位ファイル#1のファイル識別記述子242内のファイル・エントリ・アドレス323から下位ファイル#1223のファイル・エントリが特定される。
図2に示されている下位ファイル群223、224、225、…は共通のデータ構造を持つ。図4は、その共通のデータ構造の典型例として、下位ファイル#1223のデータ構造を示す模式図である。図4を参照するに、下位ファイル#1223はエクステント410−430とファイル・エントリ400とを含む。「エクステント」410、420、430、…は一般に複数であり、それぞれ、ディスク上の論理アドレス、すなわちLBNが連続しているデータ列である。エクステント410、420、430、…の全体が下位ファイル#1223の実体を構成する。「ファイル・エントリ」400は、記述子タグ401、ICBタグ402、及びアロケーション記述子411−413を含む。「記述子タグ」401は、その記述子タグ401を含むデータ400の種類がファイル・エントリであることを示す。「ICBタグ」402はそのファイル・エントリ400自身の属性情報を示す。「アロケーション記述子」411、412、413、…は各エクステント410、420、430、…に対して一つずつ設けられ、ボリューム領域202B上での各エクステント410−430の配置、具体的には各エクステントのサイズとその先端のLBNとを示す。その他に、複数のアロケーション記述子の示す領域間でLBNを連続させることにより、それら複数のアロケーション記述子の全体で一つのエクステントの配置が示されてもよい。図4に破線の矢印で示されているように、各アロケーション記述子411、412、…を参照することにより、各エクステント410、420、…にアクセスすることができる。その他に、各アロケーション記述子411、…の上位2ビットは、そのアロケーション記述子の示すLBNのセクタにエクステント410、…が実際に記録されているか否かを示す。すなわち、その上位2ビットが“0”であるとき、そのセクタにはエクステントが割り付け済みであり、かつ記録済みであることを示し、“1”であるとき、そのセクタにエクステントが割り付け済みではあるが未記録であることを示す。
UDFを利用した上記のファイルシステムと同様、ボリューム領域202Bに対するファイルシステムでは一般に、ボリューム領域202Bに記録された各ファイルが複数のエクステントに分割されているとき、上記のアロケーション記述子のように、各エクステントの配置を示す情報がボリューム領域202Bに併せて記録される。その情報を参照することにより、各エクステントの配置、特にその論理アドレスを知ることができる。
≪BD−ROMディスク上のディレクトリ/ファイル構造≫
図5は、BD−ROMディスク101のボリューム領域202Bに格納されたデータのディレクトリ/ファイル構造を示す模式図である。図5を参照するに、このディレクトリ/ファイル構造では、ルート(ROOT)ディレクトリ500の直下にBDムービー(BDMV:BD Movie)ディレクトリ501が置かれている。BDMVディレクトリ501の直下には、インデックス・ファイル(index.bdmv)511とムービーオブジェクト・ファイル(MovieObject.bdmv)512とが置かれている。
インデックス・ファイル511は、BD−ROMディスク101に記録されたコンテンツの全体を管理するための情報である。その情報は特に、そのコンテンツを再生装置102に認識させるための情報、及びインデックス・テーブルを含む。インデックス・テーブルは、そのコンテンツを構成するタイトルと、再生装置102の動作を制御するためのプログラムとの間の対応表である。そのプログラムを「オブジェクト」という。オブジェクトの種類にはムービーオブジェクトとBD−J(BD Java (登録商標))オブジェクトとがある。
ムービーオブジェクト・ファイル512は一般に複数のムービーオブジェクトを含む。各ムービーオブジェクトはナビゲーション・コマンドの列を含む。ナビゲーション・コマンドは、一般的なDVDプレーヤによる再生処理と同様な再生処理を再生装置102に実行させるための制御指令である。ナビゲーション・コマンドの種類には、例えば、タイトルに対応するプレイリスト・ファイルの読み出し命令、プレイリスト・ファイルの示すAVストリーム・ファイルの再生命令、及び別のタイトルへの遷移命令がある。ナビゲーション・コマンドはインタプリタ型言語で記述され、再生装置102に組み込まれたインタプリタ、すなわちジョブ制御プログラムによって解読され、その制御部に所望のジョブを実行させる。ナビゲーション・コマンドはオペコードとオペランドとから成る。オペコードは、タイトルの分岐と再生及び演算等、再生装置102に実行させるべき操作の種類を示す。オペランドは、タイトル番号等、その操作の対象の識別情報を示す。再生装置102の制御部は、例えばユーザの操作に応じて各ムービーオブジェクトを呼び出し、そのムービーオブジェクトに含まれるナビゲーション・コマンドを列の順に実行する。それにより、再生装置102は一般的なDVDプレーヤと同様に、まず表示装置103にメニューを表示してユーザにコマンドを選択させる。再生装置102は次に、選択されたコマンドに応じて、タイトルの再生開始/停止、及び別のタイトルへの切り換え等、再生される映像の進行を動的に変化させる。
図5に示されているように、BDMVディレクトリ501の直下には、プレイリスト(PLAYLIST)ディレクトリ520、クリップ情報(CLIPINF)ディレクトリ530、ストリーム(STREAM)ディレクトリ540、BD−Jオブジェクト(BDJO:BD Java Object)ディレクトリ550、及びJavaアーカイブ(JAR:Java Archive)ディレクトリ560が置かれている。
STREAMディレクトリ540の直下には、三種類のAVストリーム・ファイル(01000.m2ts)541、(02000.m2ts)542、(03000.m2ts)543、及び、立体視インターリーブ・ファイル(SSIF:Stereoscopic Interleaved File)ディレクトリ544が置かれている。SSIFディレクトリ544の直下には、二種類のAVストリーム・ファイル(01000.ssif)544A、(02000.ssif)544Bが置かれている。
「AVストリーム・ファイル」は、BD−ROMディスク101上に記録された映像コンテンツの実体のうち、ファイルシステムの定めるファイル形式に整えられたものをいう。ここで、映像コンテンツの実体は一般に、映像・音声・字幕等を表す各種のストリーム・データが多重化されたストリーム・データを意味する。この多重化ストリーム・データは内蔵のプライマリ・ビデオ・ストリームの種類に依って、メイン・トランスポート・ストリーム(TS)とサブTSとに大別される。「メインTS」はプライマリ・ビデオ・ストリームとしてベースビュー・ビデオ・ストリームを含む。「ベースビュー・ビデオ・ストリーム」は単独で再生可能であり、2D映像を表す。「サブTS」はプライマリ・ビデオ・ストリームとしてディペンデントビュー・ビデオ・ストリームを含む。「ディペンデントビュー・ビデオ・ストリーム」は、その再生にベースビュー・ビデオ・ストリームを必要とし、そのベースビュー・ビデオ・ストリームとの組み合わせで3D映像を表す。ディペンデントビュー・ビデオ・ストリームの種類には、ライトビュー・ビデオ・ストリーム、レフトビュー・ビデオ・ストリーム、及びデプスマップ・ストリームがある。「ライトビュー・ビデオ・ストリーム」は、ベースビュー・ビデオ・ストリームの表す2D映像がL/Rモードの再生装置によって3D映像のレフトビューとして利用されるとき、その3D映像のライトビューを表すビデオ・ストリームとして利用される。「レフトビュー・ビデオ・ストリーム」はその逆である。「デプスマップ・ストリーム」は、ベースビュー・ビデオ・ストリームの表す2D映像がデプス・モードの再生装置によって仮想的な2D画面への3D映像の射影として利用されるとき、その3D映像のデプスマップを表すストリーム・データとして利用される。
AVストリーム・ファイルは内蔵の多重化ストリーム・データの種類に依って、ファイル2D、ファイル・ディペンデント(以下、ファイルDEPと略す。)、及びインターリーブ・ファイル(以下、ファイルSSと略す。)の三種類に分けられる。「ファイル2D」は2D再生モードでの2D映像の再生に利用されるAVストリーム・ファイルであり、メインTSを含む。「ファイルDEP」はサブTSを含む。「ファイルSS」は、同じ3D映像を表すメインTSとサブTSとの対を含む。ファイルSSは特に、そのメインTSをいずれかのファイル2Dと共有し、そのサブTSをいずれかのファイルDEPと共有する。すなわち、BD−ROMディスク101のファイルシステムでは、メインTSはファイルSSとファイル2Dとのいずれとしてもアクセス可能であり、サブTSはファイルSSとファイルDEPとのいずれとしてもアクセス可能である。このように、BD−ROMディスク101上に記録された一連のデータを異なるファイルに共有させ、いずれのファイルとしてもアクセス可能にする仕組みを「ファイルのクロスリンク」という。
図5に示されている例では、第1AVストリーム・ファイル(01000.m2ts)541はファイル2Dであり、第2AVストリーム・ファイル(02000.m2ts)542と第3AVストリーム・ファイル(03000.m2ts)543とはいずれもファイルDEPである。このように、ファイル2DとファイルDEPとはSTREAMディレクトリ540の直下に置かれる。第1AVストリーム・ファイル、すなわちファイル2D541の含むベースビュー・ビデオ・ストリームは3D映像のレフトビューを表す。第2AVストリーム・ファイル、すなわち第1ファイルDEP542の含むディペンデントビュー・ビデオ・ストリームはライトビュー・ビデオ・ストリームである。第3AVストリーム・ファイル、すなわち第2ファイルDEP543の含むディペンデントビュー・ビデオ・ストリームはデプスマップ・ストリームである。
図5に示されている例では更に、第4AVストリーム・ファイル(01000.ssif)544Aと第5AVストリーム・ファイル(02000.ssif)544BとはいずれもファイルSSである。このように、ファイルSSはSSIFディレクトリ544の直下に置かれる。第4AVストリーム・ファイル、すなわち第1ファイルSS544Aはファイル2D541とはメインTS、特にベースビュー・ビデオ・ストリームを共有し、第1ファイルDEP542とはサブTS、特にライトビュー・ビデオ・ストリームを共有する。第5AVストリーム・ファイル、すなわち第2ファイルSS544Bはファイル2D541とはメインTS、特にベースビュー・ビデオ・ストリームを共有し、第2ファイルDEP543とはサブTS、特にデプスマップ・ストリームを共有する。
CLIPINFディレクトリ530には三種類のクリップ情報ファイル(01000.clpi)531、(02000.clpi)532、(03000.clpi)533が置かれている。「クリップ情報ファイル」はAVストリーム・ファイルの中でもファイル2DとファイルDEPとに一対一に対応付けられ、特に各ファイルのエントリ・マップを含む。「エントリ・マップ」は、ファイル2D又はファイルDEPの表す各シーンの表示時間と、そのシーンが記録された各ファイル内のアドレスとの間の対応表である。クリップ情報ファイルのうち、ファイル2Dに対応付けられているものを「2Dクリップ情報ファイル」といい、ファイルDEPに対応付けられているものを「ディペンデントビュー・クリップ情報ファイル」という。更に、ファイルDEPがライトビュー・ビデオ・ストリームを含むとき、対応するディペンデントビュー・クリップ情報ファイルを「ライトビュー・クリップ情報ファイル」という。ファイルDEPがデプスマップ・ストリームを含むとき、対応するディペンデントビュー・クリップ情報ファイルを「デプスマップ・クリップ情報ファイル」という。図5に示されている例では、第1クリップ情報ファイル(01000.clpi)531は2Dクリップ情報ファイルであり、ファイル2D541に対応付けられている。第2クリップ情報ファイル(02000.clpi)532はライトビュー・クリップ情報ファイルであり、第1ファイルDEP542に対応付けられている。第3クリップ情報ファイル(03000.clpi)533はデプスマップ・クリップ情報ファイルであり、第2ファイルDEP543に対応付けられている。
PLAYLISTディレクトリ520には三種類のプレイリスト・ファイル(00001.mpls)521、(00002.mpls)522、(00003.mpls)523が置かれている。「プレイリスト・ファイル」はAVストリーム・ファイルの再生経路、すなわちAVストリーム・ファイルの再生対象の部分とその再生順とを規定する。プレイリスト・ファイルの種類には2Dプレイリスト・ファイルと3Dプレイリスト・ファイルとがある。「2Dプレイリスト・ファイル」はファイル2Dの再生経路を規定する。「3Dプレイリスト・ファイル」は、2D再生モードの再生装置に対してはファイル2Dの再生経路を規定し、3D再生モードの再生装置に対してはファイルSSの再生経路を規定する。図5に示されている例では、第1プレイリスト・ファイル(00001.mpls)521は2Dプレイリスト・ファイルであり、ファイル2D541の再生経路を規定する。第2プレイリスト・ファイル(00002.mpls)522は3Dプレイリスト・ファイルであり、2D再生モードの再生装置に対してはファイル2D541の再生経路を規定し、L/Rモードの再生装置に対しては第1ファイルSS544Aの再生経路を規定する。第3プレイリスト・ファイル(00003.mpls)523は3Dプレイリスト・ファイルであり、2D再生モードの再生装置に対してはファイル2D541の再生経路を規定し、デプス・モードの再生装置に対しては第2ファイルSS544Bの再生経路を規定する。
BDJOディレクトリ550にはBD−Jオブジェクト・ファイル(XXXXX.bdjo)551が置かれている。BD−Jオブジェクト・ファイル551はBD−Jオブジェクトを一つ含む。BD−Jオブジェクトは、再生装置102に実装されたJava仮想マシンに、タイトルの再生処理及びグラフィックス映像の描画処理を実行させるためのバイトコード・プログラムである。BD−Jオブジェクトは、Java言語等のコンパイラ型言語で記述されている。BD−Jオブジェクトは、アプリケーション管理テーブルと、参照対象のプレイリスト・ファイルの識別情報とを含む。アプリケーション管理テーブルは、Java仮想マシンに実行させるべきJavaアプリケーション・プログラムとその実行時期(ライフサイクル)とのリストである。参照対象のプレイリスト・ファイルの識別情報は、再生対象のタイトルに対応するプレイリスト・ファイルを識別するための情報である。Java仮想マシンは、ユーザの操作又はアプリケーション・プログラムに従って各BD−Jオブジェクトを呼び出し、そのBD−Jオブジェクトに含まれるアプリケーション管理テーブルに従ってJavaアプリケーション・プログラムを実行する。それにより、再生装置102は、再生される各タイトルの映像の進行を動的に変化させ、又は、表示装置103にグラフィックス映像をタイトルの映像とは独立に表示させる。
JARディレクトリ560にはJARファイル(YYYYY.jar)561が置かれている。JARファイル561は、BD−Jオブジェクトの示すアプリケーション管理テーブルに従って実行されるべきJavaアプリケーション・プログラムの本体を一般に複数含む。Javaアプリケーション・プログラムは、BD−Jオブジェクトと同様、Java言語等のコンパイラ型言語で記述されたバイトコード・プログラムである。Javaアプリケーション・プログラムの種類には、Java仮想マシンにタイトルの再生処理を実行させるもの、及びJava仮想マシンにグラフィックス映像の描画処理を実行させるものが含まれる。JARファイル561はJavaアーカイブ・ファイルであり、再生装置102に読み込まれたときにその内部のメモリで展開される。それにより、そのメモリの中にJavaアプリケーション・プログラムが格納される。
≪多重化ストリーム・データの構造≫
図6の(a)は、BD−ROMディスク101上のメインTSに多重化されたエレメンタリ・ストリームを示す模式図である。メインTSはMPEG−2トランスポート・ストリーム(TS)形式のデジタル・ストリームであり、図5に示されているファイル2D541に含まれる。図6の(a)を参照するに、メインTSはプライマリ・ビデオ・ストリーム601とプライマリ・オーディオ・ストリーム602A、602Bとを含む。メインTSはその他に、プレゼンテーション・グラフィックス(PG)ストリーム603A、603B、インタラクティブ・グラフィックス(IG)ストリーム604、セカンダリ・オーディオ・ストリーム605、及びセカンダリ・ビデオ・ストリーム606を含んでもよい。
プライマリ・ビデオ・ストリーム601は映画の主映像を表し、セカンダリ・ビデオ・ストリーム606は副映像を表す。ここで、主映像とは、映画の本編の映像等、コンテンツの主要な映像を意味し、例えば画面全体に表示されるものを指す。一方、副映像とは、例えば主映像の中に小さな画面で表示される映像のように、ピクチャ・イン・ピクチャ方式を利用して主映像と同時に画面に表示される映像を意味する。プライマリ・ビデオ・ストリーム601とセカンダリ・ビデオ・ストリーム606とはいずれもベースビュー・ビデオ・ストリームである。各ビデオ・ストリーム601、606は、MPEG−2、MPEG−4 AVC、又はSMPTE VC−1等の動画圧縮符号化方式で符号化されている。
プライマリ・オーディオ・ストリーム602A、602Bは映画の主音声を表す。ここで、二つのプライマリ・オーディオ・ストリーム602A、602Bの間では言語が異なる。セカンダリ・オーディオ・ストリーム605は、その主音声とミキシングされるべき副音声を表す。各オーディオ・ストリーム602A、602B、605は、AC−3、ドルビー・デジタル・プラス(Dolby Digital Plus:「ドルビー・デジタル」は登録商標)、MLP(Meridian Lossless Packing:登録商標)、DTS(Digital Theater System:登録商標)、DTS−HD、又はリニアPCM(Pulse Code Modulation)等の方式で符号化されている。
各PGストリーム603A、603Bは、グラフィックスによる字幕等、プライマリ・ビデオ・ストリーム601の表す映像に重ねて表示されるべきグラフィックス映像を表す。二つのPGストリーム603A、603Bの間では、例えば字幕の言語が異なる。IGストリーム604は、表示装置103の画面131上に対話画面を構成するためのグラフィックス・ユーザインタフェース(GUI)用のグラフィックス部品及びその配置を表す。
エレメンタリ・ストリーム601−606はパケット識別子(PID)によって識別される。PIDの割り当ては例えば次のとおりである。一つのメインTSはプライマリ・ビデオ・ストリームを一本のみ含むので、プライマリ・ビデオ・ストリーム601には16進数値0x1011が割り当てられる。一つのメインTSに他のエレメンタリ・ストリームが種類ごとに最大32本まで多重化可能であるとき、プライマリ・オーディオ・ストリーム602A、602Bには0x1100から0x111Fまでのいずれかが割り当てられる。PGストリーム603A、603Bには0x1200から0x121Fまでのいずれかが割り当てられる。IGストリーム604には0x1400から0x141Fまでのいずれかが割り当てられる。セカンダリ・オーディオ・ストリーム605には0x1A00から0x1A1Fまでのいずれかが割り当てられる。セカンダリ・ビデオ・ストリーム606には0x1B00から0x1B1Fまでのいずれかが割り当てられる。
図6の(b)は、BD−ROMディスク101上の第1サブTSに多重化されたエレメンタリ・ストリームを示す模式図である。第1サブTSはMPEG−2 TS形式の多重化ストリーム・データであり、図5に示されている第1ファイルDEP542に含まれる。図6の(b)を参照するに、第1サブTSはプライマリ・ビデオ・ストリーム611を含む。第1サブTSはその他に、レフトビューPGストリーム612A、612B、ライトビューPGストリーム613A、613B、レフトビューIGストリーム614、ライトビューIGストリーム615、及びセカンダリ・ビデオ・ストリーム616を含んでもよい。プライマリ・ビデオ・ストリーム611はライトビュー・ビデオ・ストリームであり、メインTS内のプライマリ・ビデオ・ストリーム601が3D映像のレフトビューを表すとき、その3D映像のライトビューを表す。レフトビューとライトビューとのPGストリームの対612A+613A、612B+613Bは、字幕等のグラフィックス映像を3D映像として表示するときにそのレフトビューとライトビューとの対を表す。レフトビューとライトビューとのIGストリームの対614、615は、対話画面のグラフィックス映像を3D映像として表示するときにそのレフトビューとライトビューとの対を表す。セカンダリ・ビデオ・ストリーム616はライトビュー・ビデオ・ストリームであり、メインTS内のセカンダリ・ビデオ・ストリーム606が3D映像のレフトビューを表すとき、その3D映像のライトビューを表す。
エレメンタリ・ストリーム611−616に対するPIDの割り当ては例えば次のとおりである。プライマリ・ビデオ・ストリーム611には0x1012が割り当てられる。一つのサブTSに他のエレメンタリ・ストリームが種類別に最大32本まで多重化可能であるとき、レフトビューPGストリーム612A、612Bには0x1220から0x123Fまでのいずれかが割り当てられ、ライトビューPGストリーム613A、613Bには0x1240から0x125Fまでのいずれかが割り当てられる。レフトビューIGストリーム614には0x1420から0x143Fまでのいずれかが割り当てられ、ライトビューIGストリーム615には0x1440から0x145Fまでのいずれかが割り当てられる。セカンダリ・ビデオ・ストリーム616には0x1B20から0x1B3Fまでのいずれかが割り当てられる。
図6の(c)は、BD−ROMディスク101上の第2サブTSに多重化されたエレメンタリ・ストリームを示す模式図である。第2サブTSはMPEG−2 TS形式の多重化ストリーム・データであり、図5に示されている第2ファイルDEP543に含まれる。図6の(c)を参照するに、第2サブTSはプライマリ・ビデオ・ストリーム621を含む。第2サブTSはその他に、デプスマップPGストリーム623A、623B、デプスマップIGストリーム624、及びセカンダリ・ビデオ・ストリーム626を含んでもよい。プライマリ・ビデオ・ストリーム621はデプスマップ・ストリームであり、メインTS内のプライマリ・ビデオ・ストリーム601との組み合わせで3D映像を表す。デプスマップPGストリーム623A、623Bは、メインTS内のPGストリーム623A、623Bの表す2D映像が仮想的な2D画面への3D映像の射影として利用されるとき、その3D映像のデプスマップを表すPGストリームとして利用される。デプスマップIGストリーム624は、メインTS内のIGストリーム604の表す2D映像が仮想的な2D画面への3D映像の射影として利用されるとき、その3D映像のデプスマップを表すIGストリームとして利用される。セカンダリ・ビデオ・ストリーム626はデプスマップ・ストリームであり、メインTS内のセカンダリ・ビデオ・ストリーム606との組み合わせで3D映像を表す。
エレメンタリ・ストリーム621−626に対するPIDの割り当ては例えば次のとおりである。プライマリ・ビデオ・ストリーム621には0x1013が割り当てられる。一つのサブTSに他のエレメンタリ・ストリームが種類別に最大32本まで多重化可能であるとき、デプスマップPGストリーム623A、623Bには0x1260から0x127Fまでのいずれかが割り当てられる。デプスマップIGストリーム624には0x1460から0x147Fまでのいずれかが割り当てられる。セカンダリ・ビデオ・ストリーム626には0x1B40から0x1B5Fまでのいずれかが割り当てられる。
図7は、メインTS700内の各エレメンタリ・ストリーム701、702、703、704に属するTSパケットの配置を示す模式図である。ビデオ・ストリーム701では、まず、各フレーム701Aが一つのPES(Packetized Elementarty Stream)パケット711に変換される。次に、各PESパケット711が一般に複数のTSパケット721に変換される。同様に、オーディオ・ストリーム702、PGストリーム703、及びIGストリーム704はそれぞれ、一旦PESパケット712、713、714の列に変換された後、TSパケット722、723、724の列に変換される。最後に、各エレメンタリ・ストリーム701、702、703、704から得られたTSパケット721、722、723、724が一本のストリーム・データ、すなわちメインTS700に時分割で多重化される。
図8の(a)は、メインTSを構成するTSパケット列の模式図である。図8の(a)を参照するに、各TSパケット801は188バイト長のパケットであり、4バイト長のTSヘッダ801Hと184バイト長のTSペイロード801Pとを含む。図7に示されているPESパケット711−714はそれぞれ、一般に複数の部分に分割され、各部分が異なるTSペイロード801Pに格納される。一方、TSヘッダ801Hには、同じTSパケット801のTSペイロード801Pに格納されたデータの属するエレメンタリ・ストリームのPIDが格納される。
図8の(b)は、メインTSのTSパケット列から構成されたソースパケット列の模式図である。図8の(a)に示されているTSパケット801がBD−ROMディスク101に記録されるとき、図8の(b)に示されているように、そのTSパケット801には4バイト長のヘッダ(TP_Extra_Header)802Hが付与される。このヘッダ802HとTSパケット802Pとの組み合わせから成る192バイト長のパケット802を「ソースパケット」という。ソースパケット802のヘッダ802HはATS(Arrival_Time_Stamp)を含む。「ATS」は、ソースパケット802がBD−ROMディスク101から再生装置102内のシステム・ターゲット・デコーダへ送られたとき、そのソースパケット802の中からTSパケット802Pが抽出されてそのシステム・ターゲット・デコーダ内のPIDフィルタへ転送され始めるべき時刻を示す。尚、システム・ターゲット・デコーダ、及び再生装置102によるATSの利用の詳細については後述する。
図8の(c)は、一連のソースパケット802が連続的に記録されたBD−ROMディスク101のボリューム領域202B上のセクタ群の模式図である。図8の(c)を参照するに、一連のソースパケット802は32個ずつ、三つの連続するセクタ811、812、813に記録されている。これは、32個のソースパケットのデータ量192バイト×32=6144バイトが三つのセクタの合計サイズ2048バイト×3=6144バイトに等しいことに因る。このように、三つの連続するセクタ811、812、813に記録された32個のソースパケット802を「アラインド・ユニット(Aligned Unit)」820という。再生装置102はBD−ROMディスク101からソースパケット802をアラインド・ユニット820ごとに、すなわち32個ずつ読み出す。また、セクタ群811、812、813、…は先頭から順に32個ずつに分割され、それぞれが一つの誤り訂正符号(ECC)ブロック830を構成している。BD−ROMドライブ121はECCブロック830ごとに誤り訂正処理を行う。
サブTSも、図7、8に示されているメインTSのパケット構造と同様なパケット構造を持つ。但し、サブTSはメインTSとはビデオ・ストリームのデータ構造が異なる。
≪ビデオ・ストリームのデータ構造≫
図9は、ベースビュー・ビデオ・ストリーム901とライトビュー・ビデオ・ストリーム902とのピクチャを表示時間順に示す模式図である。図9を参照するに、ベースビュー・ビデオ・ストリーム901はピクチャ910、911、912、…、919を含み、ライトビュー・ビデオ・ストリーム902はピクチャ920、921、922、…、929を含む。各ピクチャ910−919、920−929は1フレーム又は1フィールドを表し、MPEG−2又はMPEG−4 AVC等の動画圧縮符号化方式によって圧縮されている。
上記の符号化方式による各ピクチャの圧縮には、そのピクチャの空間方向及び時間方向での冗長性が利用される。ここで、空間方向での冗長性のみを利用するピクチャの符号化を「ピクチャ内符号化」という。一方、時間方向での冗長性、すなわち、表示順序の連続する複数のピクチャ間でのデータの近似性を利用するピクチャの符号化を「ピクチャ間予測符号化」という。ピクチャ間予測符号化では、まず符号化対象のピクチャに対して、表示時間が前又は後である別のピクチャが参照ピクチャとして設定される。次に、符号化対象のピクチャとその参照ピクチャとの間で動きベクトルが検出され、それを利用して動き補償が行われる。更に、動き補償後のピクチャと符号化対象のピクチャとの間の差分値が求められ、その差分値から空間方向での冗長性が除去される。こうして、各ピクチャのデータ量が圧縮される。
図9を参照するに、ベースビュー・ビデオ・ストリーム901に含まれるピクチャは一般に複数のGOP931、932に分割されている。「GOP」は、I(Intra)ピクチャを先頭とする複数枚の連続するピクチャの列をいう。「Iピクチャ」は、ピクチャ内符号化によって圧縮されたピクチャをいう。GOPは一般に、Iピクチャの他に、P(Predictive)ピクチャとB(Bidirectionally Predivtive)ピクチャとを含む。「Pピクチャ」は、ピクチャ間予測符号化によって圧縮されたピクチャであって、表示時間がそれよりも前であるIピクチャ又は別のPピクチャが一枚、参照ピクチャとして利用されたものをいう。「Bピクチャ」は、ピクチャ間予測符号化によって圧縮されたピクチャであって、表示時間がそれよりも前又は後であるIピクチャ又はPピクチャが二枚、参照ピクチャとして利用されたものをいう。Bピクチャのうち、他のピクチャに対するピクチャ間予測符号化で参照ピクチャとして利用されるものを特に「Br(reference B)ピクチャ」という。
図9に示されている例では各GOP931、932内のピクチャが以下の順で圧縮される。第1GOP931では、まず先頭のピクチャがI0ピクチャ910に圧縮される。ここで、下付の数字は、各ピクチャに表示時間順に割り振られた通し番号を示す。次に、4番目のピクチャがI0ピクチャ910を参照ピクチャとしてP3ピクチャ913に圧縮される。ここで、図9に示されている各矢印は、先端のピクチャが後端のピクチャに対する参照ピクチャであることを示す。続いて、2、3番目のピクチャがI0ピクチャ910とP3ピクチャ913とを参照ピクチャとして、それぞれ、Br1ピクチャ911、Br2ピクチャ912に圧縮される。更に7番目のピクチャがP3ピクチャ913を参照ピクチャとしてP6ピクチャ916に圧縮される。続いて、4、5番目のピクチャがP3ピクチャ913とP6ピクチャ916とを参照ピクチャとして、それぞれ、Br4ピクチャ914、Br5ピクチャ915に圧縮される。同様に、第2GOP932では、まず先頭のピクチャがI7ピクチャ917に圧縮され、次に3番目のピクチャがI7ピクチャ917を参照ピクチャとしてP9ピクチャ919に圧縮される。続いて、2番目のピクチャがI7ピクチャ917とP9ピクチャ919とを参照ピクチャとしてBr8ピクチャ918に圧縮される。
ベースビュー・ビデオ・ストリーム901では各GOP931、932がその先頭にIピクチャを必ず含むので、ピクチャはGOPごとに復号可能である。例えば第1GOP931では、まずI0ピクチャ910が単独で復号される。次に、復号後のI0ピクチャ910を利用してP3ピクチャ913が復号される。続いて、復号後のI0ピクチャ910とP3ピクチャ913とを利用してBr1ピクチャ911とBr2ピクチャ912とが復号される。後続のピクチャ群914、915、…も同様に復号される。こうして、ベースビュー・ビデオ・ストリーム901は単独で復号可能であり、更にGOP単位でのランダム・アクセスが可能である。
図9を更に参照するに、ライトビュー・ビデオ・ストリーム902内のピクチャ920−929はピクチャ間予測符号化で圧縮されている。しかし、その符号化方法はベースビュー・ビデオ・ストリーム901内のピクチャ910−919の符号化方法とは異なり、映像の時間方向での冗長性に加え、左右の映像間の冗長性をも利用する。具体的には、各ピクチャ920−929の参照ピクチャが、図9に矢印で示されているように、同じストリーム902からだけでなく、ベースビュー・ビデオ・ストリーム901からも選択される。特にライトビュー・ビデオ・ストリーム902内の各ピクチャ920−929と、ベースビュー・ビデオ・ストリーム901から選択されたその参照ピクチャとは表示時刻が実質的に等しい。それらのピクチャは3D映像の同じシーンのライトビューとレフトビューとの対、すなわち視差映像を表す。このように、ライトビュー・ビデオ・ストリームのピクチャ920−929はベースビュー・ビデオ・ストリーム901のピクチャ910−919と一対一に対応する。特にライトビュー・ビデオ・ストリーム902はベースビュー・ビデオ・ストリーム901と同様、GOP単位に分割されている。
図9に示されている例では、まずライトビュー・ビデオ・ストリーム902内の先頭のピクチャがベースビュー・ビデオ・ストリーム901内のI0ピクチャ910を参照ピクチャとしてP0ピクチャ920に圧縮される。ここで、それらのピクチャ910、920は3D映像の先頭フレームのレフトビューとライトビューとを表す。次に、4番目のピクチャがP0ピクチャ920とベースビュー・ビデオ・ストリーム901内のP3ピクチャ913とを参照ピクチャとしてP3ピクチャ923に圧縮される。続いて、2番目のピクチャがP0ピクチャ920とP3ピクチャ923とに加えて、ベースビュー・ビデオ・ストリーム901内のBr1ピクチャ911を参照ピクチャとしてB1ピクチャ921に圧縮される。同様に、3番目のピクチャがP0ピクチャ920とP3ピクチャ930とに加えて、ベースビュー・ビデオ・ストリーム901内のBr2ピクチャ912を参照ピクチャとしてB2ピクチャ922に圧縮される。以降のピクチャ924−929についても同様に、そのピクチャと表示時刻が実質的に等しいベースビュー・ビデオ・ストリーム901内のピクチャが参照ピクチャとして利用される。
上記のような左右の映像間の相関関係を利用した動画圧縮符号化方式としては、MVC(Multiview Video Coding)と呼ばれるMPEG−4 AVC/H.264の修正規格が知られている。MVCは、ISO/IEC MPEGとITU−T VCEGとの共同プロジェクトであるJVT(Joint Video Team)によって2008年7月に策定されたものであり、複数の視点から見える映像をまとめて符号化するための規格である。MVCでは映像間予測符号化に、映像の時間方向での類似性だけでなく、視点の異なる映像間の類似性も利用される。その予測符号化では、各視点から見た映像を個別に圧縮する予測符号化よりも映像の圧縮率が高い。
上記のとおり、ライトビュー・ビデオ・ストリーム902内の各ピクチャの圧縮には、ベースビュー・ビデオ・ストリーム901内の各ピクチャが参照ピクチャとして利用される。従って、ベースビュー・ビデオ・ストリーム901とは異なり、ライトビュー・ビデオ・ストリーム902を単独で復号することはできない。しかし、視差映像間の差異は一般にわずかであり、すなわちレフトビューとライトビューとの間の相関は高い。従って、ライトビュー・ビデオ・ストリーム902内の各ピクチャは一般にベースビュー・ビデオ・ストリーム901内の各ピクチャよりも圧縮率が著しく高く、すなわちデータ量が著しく小さい。
図10は、ベースビュー・ビデオ・ストリーム901とデプスマップ・ストリーム1001とのピクチャを表示時間順に示す模式図である。図10を参照するに、ベースビュー・ビデオ・ストリーム901は、図9に示されているものと同様である。従って、その詳細についての説明は、図9についての説明を援用する。一方、デプスマップ・ストリーム1001はデプスマップ1010、1011、1012、…、1019を含む。デプスマップ1010−1019はベースビュー・ビデオ・ストリーム901のピクチャ910−919と一対一に対応し、各ピクチャの示す1フレーム又は1フィールドの2D映像に対するデプスマップを表す。
各デプスマップ1010−1019は、ベースビュー・ビデオ・ストリーム901内の各ピクチャ910−919と同様、MPEG−2又はMPEG−4 AVC等の動画圧縮符号化方式によって圧縮されている。特にその符号化方式ではピクチャ間予測符号化が利用される。すなわち、各デプスマップが他のデプスマップを参照ピクチャとして利用して圧縮される。図10に示されている例では、まず第1GOP931に対応するデプスマップ群の先頭がI0ピクチャ1010に圧縮される。ここで、下付の数字は、各ピクチャに表示時間順に割り振られた通し番号を示す。次に、4番目のデプスマップがI0ピクチャ1010を参照ピクチャとしてP3ピクチャ1013に圧縮される。ここで、図10に示されている各矢印は、先端のピクチャが後端のピクチャに対する参照ピクチャであることを示す。続いて、2、3番目のデプスマップがI0ピクチャ1010とP3ピクチャ1013とを参照ピクチャとして、B1ピクチャ1011、B2ピクチャ1012のそれぞれに圧縮される。更に7番目のデプスマップがP3ピクチャ1013を参照ピクチャとしてP6ピクチャ1016に圧縮される。続いて、4、5番目のデプスマップがP3ピクチャ1013とP6ピクチャ1016とを参照ピクチャとして、B4ピクチャ1014、B5ピクチャ1015のそれぞれに圧縮される。同様に、第2GOP932に対応するデプスマップ群では、まず先頭のデプスマップがI7ピクチャ1017に圧縮され、次に3番目のデプスマップがI7ピクチャ1017を参照ピクチャとしてP9ピクチャ1019に圧縮される。続いて、2番目のデプスマップがI7ピクチャ1017とP9ピクチャ1019とを参照ピクチャとしてB8ピクチャ1018に圧縮される。
デプスマップ・ストリーム1001はベースビュー・ビデオ・ストリーム901と同様にGOP単位に分割され、各GOPがその先頭にIピクチャを必ず含む。従って、デプスマップはGOPごとに復号可能である。例えば、まずI0ピクチャ1010が単独で復号され、次に復号後のI0ピクチャ1010を利用してP3ピクチャ1013が復号される。続いて、復号後のI0ピクチャ1010とP3ピクチャ1013とを利用して、B1ピクチャ1011とB2ピクチャ1012とが復号される。後続のピクチャ群1014、1015、…も同様に復号される。こうして、デプスマップ・ストリーム1001は単独で復号可能である。しかし、デプスマップ自体は2D映像の各部の奥行きを画素別に表す情報でしかないので、デプスマップ・ストリーム1001を単独で映像の再生に利用することはできない。
ライトビュー・ビデオ・ストリーム902とデプスマップ・ストリーム1001とは同じ符号化方式で圧縮される。例えば、ライトビュー・ビデオ・ストリーム902がMVCのフォーマットで符号化されているとき、デプスマップ・ストリーム1001もMVCのフォーマットで符号化されている。その場合、再生装置102は3D映像の再生時、符号化方式を一定に維持したまま、L/Rモードとデプス・モードとの切り換えをスムーズに実現できる。
図11は、ビデオ・ストリーム1100のデータ構造の詳細を示す模式図である。ビデオ・ストリーム1100は、ベースビュー・ビデオ・ストリーム901であっても、ディペンデントビュー・ビデオ・ストリーム902、1001であってもよい。図11を参照するに、実際のビデオ・ストリーム1100を構成する各GOP1110、1120では、図9に示されているものと同様なGOPの実体930、940に加え、ヘッダが各ピクチャ910、911、912、…に個別に付与されている。このヘッダと各ピクチャの実体との組み合わせを「ビデオ・アクセスユニット(VAU)」という。すなわち、各GOP1110、1120ではピクチャごとに一つのVAU1111、1112、…が構成されている。各ピクチャはVAU単位でビデオ・ストリーム1100から読み出し可能である。
図11を更に参照するに、各GOP1110、1120の先頭のVAU(VAU#1)1111はI0ピクチャ910の実体とヘッダとを含む。I0ピクチャ910の実体は圧縮ピクチャ・データ1111Eに格納されている。ヘッダは、アクセスユニット(AU)識別コード1111A、シーケンス・ヘッダ1111B、ピクチャ・ヘッダ1111C、及び補足データ1111Dを含む。AU識別コード1111Aは、各VAUの先端を示す所定の符号である。シーケンス・ヘッダ1111BはGOPヘッダともいい、そのGOP1110の全体で共通する情報、例えば、解像度、フレームレート、アスペクト比、及びビットレートを含む。ピクチャ・ヘッダ1111Cは、符号化方式の種類等、I0ピクチャ910の復号に必要な情報を含む。補足データ1111Dは、I0ピクチャ910の復号以外に関する付加的な情報、例えば、クローズド・キャプションを示す文字情報、及びタイムコード情報を含む。各GOP1110、1120の二番目以降のVAUは、ヘッダがシーケンス・ヘッダ1111Bを含まない点を除き、VAU#11111と構造が等しい。例えばVAU#21112は、P3ピクチャ913の実体とヘッダとを含む。VAU1111、1112の各部の具体的な内容はビデオ・ストリーム1100の符号化方式ごとに異なる。例えばその符号化方式がMPEG−4 AVCであるとき、VAU1111、1112は複数のNALユニットから構成される。そのとき、AU識別コード1111A、シーケンス・ヘッダ1111B、ピクチャ・ヘッダ1111C、補足データ1111D、及び圧縮ピクチャ・データ111Eはそれぞれ、AUデリミタ(Access Unit Delimiter)、SPS(シーケンス・パラメータ・セット)、PPS(ピクチャ・パラメータ・セット)、SEI(Supplemental Enhancement Information)、及びビュー・コンポーネントに相当する。
図12は、PESパケット列1202へのビデオ・ストリーム1201の格納方法の詳細を示す模式図である。ビデオ・ストリーム1201は、ベースビュー・ビデオ・ストリーム901であっても、ディペンデントビュー・ビデオ・ストリーム902、1001であってもよい。図12を参照するに、実際のビデオ・ストリーム1201では、ピクチャが表示時間順ではなく符号化順に多重化されている。すなわち、図12に示されているように、ビデオ・ストリーム1201を構成するVAUには、先頭から順に、I0ピクチャ1210、P3ピクチャ1211、B1ピクチャ1212、B2ピクチャ1213、…が格納されている。ここで、下付の数字は、各ピクチャに表示時間順に割り振られた通し番号を示す。P3ピクチャ1211の符号化にはI0ピクチャ1210が参照ピクチャとして利用され、B1ピクチャ1212とB2ピクチャ1213との各符号化にはI0ピクチャ1210とP3ピクチャ1211とが参照ピクチャとして利用される。それらのVAUが一つずつ、異なるPESパケット1220、1221、1222、1223、…に格納される。各PESパケット1220はPESペイロード1220PとPESヘッダ1220Hとを含む。VAUはPESペイロード1220Pに格納される。一方、PESヘッダ1220Hは、同じPESパケット1220のPESペイロード1220Pに格納されたピクチャの表示時刻(PTS:Presentation Time−Stamp)、及びそのピクチャの復号時刻(DTS:Decoding Time−Stamp)を含む。
図12に示されているビデオ・ストリーム1201と同様、図6に示されている他のエレメンタリ・ストリームも一連のPESパケットの各PESペイロードに格納される。更に各PESパケットのPESヘッダは、そのPESパケットのPESペイロードに格納されたデータのPTSを含む。
図13の(a)、(b)は、ベースビュー・ビデオ・ストリーム1301とディペンデントビュー・ビデオ・ストリーム1302とのそれぞれについて、各ピクチャに割り当てられたPTSとDTSとの間の関係を示す模式図である。図13を参照するに、両ビデオ・ストリーム1301、1302の間では、3D映像の同じフレーム又はフィールドを表す一対のピクチャに対して同じPTS及び同じDTSが割り当てられている。例えば3D映像の先頭のフレーム又はフィールドは、ベースビュー・ビデオ・ストリーム1301のI1ピクチャ1311とディペンデントビュー・ビデオ・ストリーム1302のP1ピクチャ1321との組み合わせから再現される。従って、それらのピクチャの対1311、1321ではPTSが等しく、かつDTSが等しい。ここで、下付の数字は、各ピクチャにDTSの順に割り振られた通し番号を示す。また、ディペンデントビュー・ビデオ・ストリーム1302がデプスマップ・ストリームであるとき、P1ピクチャ1321は、I1ピクチャ1311に対するデプスマップを表すIピクチャに置き換えられる。同様に、各ビデオ・ストリーム1301、1302の2番目のピクチャ、すなわち、P2ピクチャ1312、1322の対ではPTSが等しく、かつDTSが等しい。各ビデオ・ストリーム1301、1302の3番目のピクチャ、すなわちBr3ピクチャ1313とB3ピクチャ1323との対ではPTSとDTSとがいずれも共通である。Br4ピクチャ1314とB4ピクチャ1324との対でも同様である。
ベースビュー・ビデオ・ストリーム1301とディペンデントビュー・ビデオ・ストリーム1302との間で、PTSが等しく、かつDTSが等しいピクチャを含むVAUの対を「3D・VAU」という。図13に示されているPTSとDTSとの割り当てにより、3D再生モードの再生装置102内のデコーダにベースビュー・ビデオ・ストリーム1301とディペンデントビュー・ビデオ・ストリーム1302とを3D・VAU単位でパラレルに処理させることが容易にできる。それにより、3D映像の同じフレーム又はフィールドを表す一対のピクチャがデコーダによって確実にパラレルに処理される。更に、各GOPの先頭の3D・VAUではシーケンス・ヘッダが、同じ解像度、同じフレームレート、及び同じアスペクト比を含む。特にそのフレームレートは、2D再生モードにおいてベースビュー・ビデオ・ストリーム1301が単独で復号されるときの値に等しい。
図14は、図11に示されている補足データ1111Dのデータ構造を示す模式図である。補足データ111Dは、特にMPEG−4 AVCではNALユニットの一種“SEI”に相当する。図14を参照するに、補足データ1111Dは復号スイッチ情報1401を含む。復号スイッチ情報1401は、ベースビュー・ビデオ・ストリームとディペンデントビュー・ビデオ・ストリームとの両方で各VAUに含まれる。復号スイッチ情報1401は、再生装置102内のデコーダに、次に復号すべきVAUを容易に特定させるための情報である。ここで、そのデコーダは後述のように、ベースビュー・ビデオ・ストリームとディペンデントビュー・ビデオ・ストリームとをVAU単位で交互に復号する。そのとき、そのデコーダは一般に、各VAUに付与されたDTSの示す時刻に合わせて、次に復号すべきVAUを特定する。しかし、デコーダの種類には、DTSを無視してVAUを順次、復号し続けるものも多い。そのようなデコーダにとって、各VAUがDTSに加えて復号スイッチ情報1401を含むことは好ましい。
図14を参照するに、復号スイッチ情報1401は、次アクセスユニット・タイプ1411、次アクセスユニット・サイズ1412、及び復号カウンタ1413を含む。次アクセスユニット・タイプ1411は、次に復号されるべきVAUがベースビュー・ビデオ・ストリームとディペンデントビュー・ビデオ・ストリームとのいずれに属するのかを示す。例えば、次アクセスユニット・タイプ1411の値が「1」であるときは、次に復号されるべきVAUはベースビュー・ビデオ・ストリームに属し、「2」であるときはディペンデントビュー・ビデオ・ストリームに属する。次アクセスユニット・タイプ1411の値が「0」であるときは、現在のVAUが復号対象のストリームの後端に位置し、次に復号されるべきVAUが存在しない。次アクセスユニット・サイズ1412は、次に復号されるべきVAUのサイズを示す。再生装置102内のデコーダは、次アクセスユニット・サイズ1412を参照することにより、VAUの構造自体を解析することなく、そのサイズを特定できる。従って、デコーダはバッファからVAUを容易に抽出できる。復号カウンタ1413は、それの属するVAUが復号されるべき順番を示す。その順番は、ベースビュー・ビデオ・ストリーム内のIピクチャを含むVAUから数えられる。
図15の(a)は、ベースビュー・ビデオ・ストリーム1501とディペンデントビュー・ビデオ・ストリーム1502との各ピクチャに割り当てられた復号カウンタの一例1510、1520を示す模式図である。図15の(a)を参照するに、復号カウンタ1510、1520は両ビデオ・ストリーム1501、1502の間で交互にインクリメントされる。例えば、ベースビュー・ビデオ・ストリーム1501内のIピクチャを含むVAU1511に対し、復号カウンタ1510として「1」が割り当てられる。次に復号されるべきディペンデントビュー・ビデオ・ストリーム1502内のPピクチャを含むVAU1521に対し、復号カウンタ1520として「2」が割り当てられる。更にその次に復号されるべきベースビュー・ビデオ・ストリーム1501内のPピクチャを含むVAU1512に対し、復号カウンタ1510として「3」が割り当てられる。その割り当てにより、何らかの不具合が原因で再生装置102内のデコーダがいずれかのVAUを読み損なったときでも、それによって欠落したピクチャをデコーダは復号カウンタ1510、1520から直ちに特定できる。従って、デコーダはエラー処理を適切に、かつ迅速に実行できる。
図15の(a)に示されている例では、ベースビュー・ビデオ・ストリーム1501の3番目のVAU1513の読み込みにエラーが生じ、Brピクチャが欠落している。しかし、デコーダは、ディペンデントビュー・ビデオ・ストリーム1502の2番目のVAU1522に含まれるPピクチャの復号処理で、そのVAU1522から復号カウンタ1520を読み出して保持している。従って、デコーダは次に処理すべきVAUの復号カウンタ1510を予測できる。具体的には、そのPピクチャを含むVAU1522内の復号カウンタ1520は「4」であるので、次に読み込まれるべきVAUの復号カウンタ1510は「5」であると予測される。しかし、実際には、次に読み込まれたVAUはベースビュー・ビデオ・ストリーム1501の4番目のVAU1514であったので、その復号カウンタ1510は「7」である。そのことから、デコーダは、VAUを一つ読み損ねたことを検出できる。従って、デコーダは次のエラー処理を実行できる:「ディペンデントビュー・ビデオ・ストリーム1502の3番目のVAU1523から抽出されたBピクチャについては、参照すべきBrピクチャが欠落しているので復号処理をスキップする」。このように、デコーダは復号処理ごとに復号カウンタ1510、1520をチェックする。それにより、デコーダはVAUの読み込みエラーを迅速に検出でき、かつ適切なエラー処理を迅速に実行できる。その結果、再生映像へのノイズの混入を防止することができる。
図15の(b)は、ベースビュー・ビデオ・ストリーム1501とディペンデントビュー・ビデオ・ストリーム1502との各ピクチャに割り当てられた復号カウンタの別例1530、1540を示す模式図である。図15の(b)を参照するに、復号カウンタ1530、1540は各ビデオ・ストリーム1501、1502で別々にインクリメントされる。従って、復号カウンタ1530、1540は、同じ3D・VAUに属する一対のピクチャ間で等しい。その場合、デコーダはベースビュー・ビデオ・ストリーム1501のVAUを一つ復号した時点では次のように予測できる:「その復号カウンタ1530が、次に復号されるべきディペンデントビュー・ビデオ・ストリーム1502のVAUの復号カウンタ1540に等しい」。一方、デコーダはディペンデントビュー・ビデオ・ストリーム1502のVAUを一つ復号した時点では次のように予測できる:「その復号カウンタ1540に1を加えた値が、次に復号されるべきベースビュー・ビデオ・ストリーム1501のVAUの復号カウンタ1530に等しい」。従って、デコーダはいずれの時点でも復号カウンタ1530、1540からVAUの読み込みエラーを迅速に検出でき、かつ適切なエラー処理を迅速に実行できる。その結果、再生映像へのノイズの混入を防止することができる。
≪多重化ストリーム・データのインターリーブ配置≫
3D映像のシームレス再生には、ベースビュー・ビデオ・ストリームとディペンデントビュー・ビデオ・ストリームとのBD−ROMディスク101上での物理的な配置が重要である。ここで、「シームレス再生」とは、多重化ストリーム・データから映像と音声とを途切れさせることなく滑らかに再生することをいう。
図16は、図6に示されているメインTS、第1サブTS、及び第2サブTSのそれぞれに属するデータ・ブロック群のBD−ROMディスク101上での物理的な配置を示す模式図である。「データ・ブロック」とは、BD−ROMディスク101上の連続領域、すなわち物理的に連続する複数のセクタに記録された一連のデータをいう。BD−ROMディスク101では物理アドレスが論理アドレスと実質的に等しいので、各データ・ブロック内ではLBNも連続している。従って、BD−ROMドライブ121は一つのデータ・ブロックを、光ピックアップにシークを行わせることなく連続して読み出すことができる。以下、メインTSに属するデータ・ブロックL1、L2、L3、…を「ベースビュー・データ・ブロック」といい、サブTSに属するデータ・ブロックR1、R2、R3、…、D1、D2、D3、…を「ディペンデントビュー・データ・ブロック」という。特に、第1サブTSに属するデータ・ブロックR1、R2、R3、…を「ライトビュー・データ・ブロック」といい、第2サブTSに属するデータ・ブロックD1、D2、D3、…を「デプスマップ・データ・ブロック」という。図16を参照するに、データ・ブロック群はBD−ROMディスク101上のトラック1601に沿って連続的に記録されている。更に、ベースビュー・データ・ブロックL1、L2、L3、…、ライトビュー・データ・ブロックR1、R2、R3、…、及びデプスマップ・データ・ブロックD1、D2、D3、…が一つずつ交互に配置されている。このようなデータ・ブロック群の配置を「インターリーブ配置」という。
本発明の実施形態1によるインターリーブ配置では、隣接する三種類のデータ・ブロックの間でエクステントATC時間が等しい。例えば図16では、先頭のデプスマップ・データ・ブロックD1、先頭のライトビュー・データ・ブロックR1、及び、先頭のベースビュー・データ・ブロックL1が連続している。それらのデータ・ブロックD1、R1、L1間ではエクステントATC時間が等しい。ここで、「ATC(Arrival Time Clock)」は、ATSの基準とされるべきクロックを意味する。また、「エクステントATC時間」はATCの値で定義され、一つのエクステント内のソースパケットに付与されたATSの範囲、すなわち、そのエクステントの先頭のソースパケットのATSから次のエクステントの先頭のソースパケットのATSまでの時間間隔を表す。すなわち、エクステントATC時間は、そのエクステント内のソースパケットを全て、再生装置102内でリード・バッファからシステム・ターゲット・デコーダへ転送するのに要する時間に等しい。尚、「リード・バッファ」は再生装置102内のバッファ・メモリであり、BD−ROMディスク101から読み出されたデータ・ブロックをシステム・ターゲット・デコーダに送るまでの間、一時的に格納する。
エクステントATC時間の等しい三種類のデータ・ブロック間では更に、再生期間が一致し、かつビデオ・ストリームの再生時間が等しくてもよい。例えば図16では、先頭の三つのデータ・ブロックD1、R1、L1間で、再生期間が一致し、かつビデオ・ストリームの再生時間が等しい。後続のデータ・ブロック群でも同様に、エクステントATC時間の等しい三種類のデータ・ブロックD2、R2、L2間では、再生期間が一致し、かつビデオ・ストリームの再生時間が等しくてもよい。
本発明の実施形態1によるインターリーブ配置では更に、エクステントATC時間の等しい三つの連続するデータ・ブロックは、デプスマップ・データ・ブロック、ライトビュー・データ・ブロック、及びベースビュー・データ・ブロックの順に、すなわちデータ量の小さい順に配置されている。例えば図16では、先頭のライトビュー・データ・ブロックR1に含まれるピクチャは、図9に示されているように、先頭のベースビュー・データ・ブロックL1に含まれるピクチャを参照ピクチャとして圧縮されている。従って、先頭のライトビュー・データ・ブロックR1のサイズSext2[1]は先頭のベースビュー・データ・ブロックL1のサイズSext1[1]以下である:Sext2[1]≦Sext1[1]。一方、デプスマップの画素当たりのデータ量、すなわち奥行き値のビット数は一般に、ベースビュー・ビデオ・ストリームに含まれるピクチャの画素当たりのデータ量、すなわち色座標値とα値とのビット数の和よりも小さい。更に、図6の(a)、(b)に示されているように、メインTSは第2サブTSとは異なり、プライマリ・ビデオ・ストリームの他にもプライマリ・オーディオ・ストリーム等のエレメンタリ・ストリームを含む。従って、図16では先頭のデプスマップ・データ・ブロックD1のサイズSext3[1]は先頭のベースビュー・データ・ブロックL1のサイズSext1[1]以下である:Sext3[1]≦Sext1[1]。それ故、図16では、先頭のデプスマップ・データ・ブロックD1、先頭のライトビュー・データ・ブロックR1、及び先頭のベースビュー・データ・ブロックL1がその順で配置されている。次に連続する三つのエクステントD2、R2、L2の順序も同様である。
エクステントATC時間の等しいデータ・ブロックの各先頭に位置するVAUは同じ3D・VAUに属し、特に、同じ3D映像を表すGOPの先頭のピクチャを含む。例えば図16では、エクステントATC時間の等しい三つの連続するデータ・ブロックDn、Rn、Ln(n=1、2、3、…)のうち、デプスマップ・データ・ブロックDnの先端はデプスマップ・ストリームのIピクチャを含み、ライトビュー・データ・ブロックRnの先端はライトビュー・ビデオ・ストリームのPピクチャを含み、ベースビュー・データ・ブロックLnの先端はベースビュー・ビデオ・ストリームのIピクチャを含む。そのデプスマップ・ストリームのIピクチャは、そのベースビュー・ビデオ・ストリームのIピクチャの表す2D映像に対するデプスマップを表す。そのライトビュー・ビデオ・ストリームのPピクチャは、そのベースビュー・ビデオ・ストリームのIピクチャの表す2D映像をレフトビューとするときのライトビューを表す。特にそのPピクチャは、図9に示されているように、そのベースビュー・ビデオ・ストリームのIピクチャを参照ピクチャとして圧縮されている。従って、3D再生モードの再生装置102は、いずれのデータ・ブロックの組Dn、Rn、Lnからも3D映像の再生を開始できる。
≪多重化ストリーム・データをデータ・ブロックに分割する意義≫
再生装置102は、BD−ROMディスク101から3D映像をシームレスに再生するには、メインTSとサブTSとをパラレルに処理しなければならない。しかし、その処理に利用可能なリード・バッファの容量は一般に限られている。特に、BD−ROMディスク101からリード・バッファへ連続して読み込むことのできるデータ量には限界がある。従って、再生装置102はメインTSとサブTSとを、エクステントATC時間の等しい部分の対に分割して読み出さねばならない。
図17の(a)は、あるBD−ROMディスク上に個別に連続して記録されたメインTS1701とサブTS1702との配置を示す模式図である。再生装置102がそれらのメインTS1701とサブTS1702とをパラレルに処理するとき、図17の(a)に実線の矢印(1)−(4)で示されているように、BD−ROMドライブ121はメインTS1701とサブTS1702とを交互に、エクステントATC時間の等しい部分ずつ読み出す。そのとき、BD−ROMドライブ121は、図17の(a)に破線の矢印で示されているように、読み出し処理の途中でBD−ROMディスク上の読み出し対象領域を大きく変化させなければならない。例えば矢印(1)の示すメインTS1701の先端部分が読み出された時、BD−ROMドライブ121は光ピックアップによる読み出し動作を一旦停止し、BD−ROMディスクの回転速度を上げる。それにより、矢印(2)の示すサブTS1702の先端部分が記録されたBD−ROMディスク上のセクタを速やかに光ピックアップの位置まで移動させる。このように、光ピックアップに読み出し動作を一旦停止させて、その間に次の読み出し対象領域上へ光ピックアップを位置づけるための操作を「ジャンプ」という。図17の(a)に示されている破線の矢印は、読み出し処理の途中で必要な各ジャンプの範囲を示す。各ジャンプの期間中光ピックアップによる読み出し処理は停止し、デコーダによる復号処理のみが進行する。その結果、読み出し処理を復号処理に間に合わせることが難しいので、シームレス再生を確実に持続することが難しい。
図17の(b)は、本発明の実施形態1によるBD−ROMディスク101上に交互に記録されたベースビュー・データ・ブロックB[0]、B[1]、B[2]、…とディペンデントビュー・データ・ブロックD[0]、D[1]、D[2]、…との配置を示す模式図である。図17の(b)を参照するに、メインTSとサブTSとはそれぞれ、複数のデータ・ブロックに分割されて交互に配置されている。その場合、再生装置102は3D映像の再生時、図17の(b)に矢印(1)−(4)で示されているように、データ・ブロックB[0]、D[0]、B[1]、D[1]、…を先頭から順番に読み出す。それだけで、再生装置102はメインTSとサブTSとを交互に読み出すことをスムーズに実現できる。特にその読み出し処理ではジャンプが生じないので、3D映像のシームレス再生が確実に持続可能である。
≪隣接するデータ・ブロック間でエクステントATC時間を揃える意義≫
図16に示されているインターリーブ配置では、隣接する三種類のデータ・ブロックDn、Rn、Lnがいずれも同じエクステントATC時間を持つ。すなわち、それらのエクステント間では各エクステントの先頭のソースパケットから次のエクステントの先頭のソースパケットまでのATSの差が等しい(但し、その差の計算では、ATSにラップ・アラウンドが発生することが考慮されている)。その場合、再生装置102内のシステム・ターゲット・デコーダはリード・バッファから、ATCで計られる同じ時間内に、ベースビュー・データ・ブロックLnとディペンデントビュー・データ・ブロックDn又はRnとの両方に含まれる全てのTSパケットを取り出す。従って、特に飛び込み再生時において、システム・ターゲット・デコーダはベースビュー・ストリームとディペンデントビュー・ストリームとの間でTSパケットの復号処理を容易に同期させることができる。
≪再生時間の等しいデータ・ブロックを隣接させる意義≫
図18の(a)は、隣接するベースビュー・データ・ブロックとディペンデントビュー・データ・ブロックとの間でエクステントATC時間が異なり、かつビデオ・ストリームの再生時間が異なるときの再生経路を示す模式図である。図18の(a)に示されている例では、先頭のベースビュー・データ・ブロックB[0]の再生時間は4秒間であり、先頭のディペンデントビュー・データ・ブロックD[0]の再生時間は1秒間である。ここで、ディペンデントビュー・データ・ブロックD[0]の復号に必要なベースビュー・ビデオ・ストリームの部分は、そのディペンデントビュー・データ・ブロックD[0]と同じ再生時間を持つ。従って、再生装置102内のリード・バッファの容量を節約するには、図18の(a)に矢印1810で示されているように、再生装置102にベースビュー・データ・ブロックB[0]とディペンデントビュー・データ・ブロックD[0]とを交互に同じ再生時間ずつ、例えば1秒間ずつ読み込ませることが好ましい。しかし、その場合、図18の(a)に破線で示されているように、読み出し処理の途中でジャンプが生じる。その結果、読み出し処理を復号処理に間に合わせることが難しいので、シームレス再生を確実に持続することが難しい。
図18の(b)は、隣接するベースビュー・データ・ブロックとディペンデントビュー・データ・ブロックとの間でビデオ・ストリームの再生時間が等しいときの再生経路を示す模式図である。本発明の実施形態1によるBD−ROMディスク101上では、図18の(b)に示されているように、隣接する一対のデータ・ブロックの間でビデオ・ストリームの再生時間が等しい。例えば、先頭のベースビュー・データ・ブロックB[0]とディペンデントビュー・データ・ブロックD[0]との対ではビデオ・ストリームの再生時間が共に1秒に等しく、二番目のデータ・ブロックの対B[1]、D[1]ではビデオ・ストリームの再生時間が共に0.7秒に等しい。その場合、再生装置102は3D映像の再生時、図18の(b)に矢印1820で示されているように、データ・ブロックB[0]、D[0]、B[1]、D[1]、…を先頭から順番に読み出す。それだけで、再生装置102はメインTSとサブTSとを交互に同じ再生時間ずつ読み出すことをスムーズに実現できる。特にその読み出し処理ではジャンプが生じないので、3D映像のシームレス再生が確実に持続可能である。
尚、隣接するベースビュー・データ・ブロックとディペンデントビュー・データ・ブロックとの間でエクステントATC時間が等しければ、それらのデータ・ブロック間で再生期間が一致していなくても、更にビデオ・ストリームの再生時間が等しくなくてもよい。その場合でも、図18の(b)に示されているものと同様に、再生装置102はデータ・ブロック群を先頭から順番に読み出すだけで、メインTSとサブTSとの交互の読み出しをスムーズに実現できる。特にその読み出し処理ではジャンプが生じないので、3D映像のシームレス再生が確実に持続可能である。
≪データ・ブロックに対するAVストリーム・ファイルのクロスリンク≫
多重化ストリーム・データに属する各データ・ブロックは、BD−ROMディスク101のファイルシステムでは、ファイル2D又はファイルDEP内の一つのエクステントとしてアクセス可能である。すなわち、各データ・ブロックの論理アドレスは、ファイル2D又はファイルDEPのファイル・エントリに記録されたアロケーション記述子から知ることができる。図5、16に示されている例では、ファイル2D(01000.m2ts)541のファイル・エントリ1610に含まれるアロケーション記述子#1、#2、#3、…は、ベースビュー・データ・ブロックL1、L2、L3、…の各サイズとその先端のLBNとを示す。第1ファイルDEP(02000.m2ts)542のファイル・エントリ1620に含まれるアロケーション記述子#1、#2、#3、…は、ライトビュー・データ・ブロックR1、R2、R3、…の各サイズとその先端のLBNとを示す。第2ファイルDEP(03000.m2ts)543のファイル・エントリ1630に含まれるアロケーション記述子#1、#2、#3、…は、デプスマップ・データ・ブロックD1、D2、D3、…の各サイズとその先端のLBNとを示す。
図19の(a)は、ファイル2D(01000.m2ts)541のデータ構造を示す模式図である。図16に示されているように、ファイル・エントリ1610内のアロケーション記述子#1、#2、#3、…はベースビュー・データ・ブロックL1、L2、L3、…を参照する。従って、各ベースビュー・データ・ブロックL1、L2、L3、…は、図19の(a)に示されているように、ファイル2D541のエクステントEXT2D[0]、EXT2D[1]、EXT2D[2]、…としてアクセス可能である。以下、ファイル2D541に属するエクステントEXT2D[0]、EXT2D[1]、EXT2D[2]、…を「2Dエクステント」という。
図19の(b)は、第1ファイルDEP(02000.m2ts)542のデータ構造を示す模式図である。図16に示されているように、ファイル・エントリ1620内のアロケーション記述子#1、#2、#3、…はライトビュー・データ・ブロックR1、R2、R3、…を参照する。従って、各ライトビュー・データ・ブロックR1、R2、R3、…は、図19の(b)に示されているように、第1ファイルDEP542のエクステントEXT2[0]、EXT2[1]、EXT2[2]、…としてアクセス可能である。以下、第1ファイルDEP542に属するエクステントEXT2[0]、EXT2[1]、EXT2[2]、…を「ライトビュー・エクステント」という。
図19の(c)は、第2ファイルDEP(03000.m2ts)543のデータ構造を示す模式図である。図16に示されているように、ファイル・エントリ1630内のアロケーション記述子#1、#2、#3、…はデプスマップ・データ・ブロックD1、D2、D3、…を参照する。従って、各デプスマップ・データ・ブロックD1、D2、D3、…は、図19の(c)に示されているように、第2ファイルDEP543のエクステントEXT3[0]、EXT3[1]、EXT3[2]、…としてアクセス可能である。以下、第2ファイルDEP543に属するエクステントEXT3[0]、EXT3[1]、EXT3[2]、…を「デプスマップ・エクステント」という。更に、ライトビュー・エクステントとデプスマップ・エクステントとのように、いずれかのファイルDEPに属するエクステントを「ディペンデントビュー・エクステント」と総称する。
図16に示されているデータ・ブロック群に対して、AVストリーム・ファイルのクロスリンクは次のように実現される。第1ファイルSS(01000.ssif)544Aのファイル・エントリ1640に含まれるアロケーション記述子#1、#2、#3、…は、隣接するライトビュー・データ・ブロックとベースビュー・データ・ブロックとの対R1+L1、R2+L2、R3+L3、…をそれぞれ一つのエクステントと見なして各サイズとその先端のLBNとを示す。第2ファイルSS(02000.ssif)544Bのファイル・エントリ1650に含まれるアロケーション記述子#1、#2、#3、…は、デプスマップ・データ・ブロックD1、D2、D3、…とベースビュー・データ・ブロックL1、L2、L3、…との各サイズとその先端のLBNとを交互に示す。
図19の(d)は、第1ファイルSS(01000.ssif)544Aのデータ構造を示す模式図である。図16に示されているように、ファイル・エントリ1640内のアロケーション記述子#1、#2、#3、…は、隣接するライトビュー・データ・ブロックとベースビュー・データ・ブロックとの対R1+L1、R2+L2、R3+L3、…を参照する。従って、隣接するデータ・ブロックの各対R1+L1、R2+L2、R3+L3、…は、図19の(d)に示されているように、第1ファイルSS544AのエクステントEXTSS[0]、EXTSS[1]、EXTSS[2]、…としてアクセス可能である。以下、第1ファイルSS544Aに属するエクステントEXTSS[0]、EXTSS[1]、EXTSS[2]、…を「3Dエクステント」という。各3DエクステントEXTSS[n](n=0、1、2、…)は、ファイル2D541とはベースビュー・データ・ブロックLnを共有し、第1ファイルDEP542とはライトビュー・データ・ブロックRnを共有する。
図19の(e)は、第2ファイルSS(02000.ssif)544Bのデータ構造を示す模式図である。図16に示されているように、ファイル・エントリ1650内のアロケーション記述子#1、#2、#3、…は、デプスマップ・データ・ブロックD1、D2、D3、…とベースビュー・データ・ブロックL1、L2、L3、…とを交互に参照する。従って、各データ・ブロックD1、L1、D2、L2、は、図19の(e)に示されているように、第2ファイルSS544BのエクステントEXTSS[0]、EXTSS[1]、EXTSS[2]、EXTSS[3]、…としてアクセス可能である。第2ファイルSS544Bの各エクステントは、ファイル2D541とはベースビュー・データ・ブロックLnを共有し、第2ファイルDEP543とはデプスマップ・データ・ブロックDnを共有する。
≪インターリーブ配置のデータ・ブロック群に対する再生経路≫
図20は、図16に示されているデータ・ブロック群に対する2D再生モードでの再生経路2001、L/Rモードでの再生経路2002、及びデプス・モードでの再生経路2003を示す模式図である。
再生装置102は2D再生モードではファイル2D541を再生する。従って、2D再生モードでの再生経路2001が示すとおり、ベースビュー・データ・ブロックL1、L2、L3が順番に2DエクステントEXT2D[0]、EXT2D[1]、EXT2D[2]として読み出される。すなわち、まず先頭のベースビュー・データ・ブロックL1が読み出され、その直後のデプスマップ・データ・ブロックD2とライトビュー・データ・ブロックR2との読み出しが最初のジャンプJ2D1によってスキップされる。次に、二番目のベースビュー・データ・ブロックL2が読み出され、その直後のデプスマップ・データ・ブロックD3とライトビュー・データ・ブロックR3との読み出しが二回目のジャンプJ2D2によってスキップされる。続いて、三番目のベースビュー・データ・ブロックL3が読み出される。
再生装置102はL/Rモードでは第1ファイルSS544Aを再生する。従って、L/Rモードでの再生経路2002が示すとおり、隣接するライトビュー・データ・ブロックとベースビュー・データ・ブロックとの対R1+L1、R2+L2、R3+L3が順番に3DエクステントEXTSS[0]、EXTSS[1]、EXTSS[2]として読み出される。すなわち、まず先頭のライトビュー・データ・ブロックR1とその直後のベースビュー・データ・ブロックL1とが連続して読み出され、その直後のデプスマップ・データ・ブロックD2の読み出しが最初のジャンプJLR1によってスキップされる。次に、二番目のライトビュー・データ・ブロックR2とその直後のベースビュー・データ・ブロックL2とが連続して読み出され、その直後のデプスマップ・データ・ブロックD3の読み出しが二回目のジャンプJLR2によってスキップされる。続いて、三番目のライトビュー・データ・ブロックR3とその直後のベースビュー・データ・ブロックL3とが連続して読み出される。
再生装置102はデプス・モードでは第2ファイルSS544Bを再生する。従って、デプス・モードでの再生経路2003が示すとおり、デプスマップ・データ・ブロックD1、D2、D3とベースビュー・データ・ブロックL1、L2とが交互に、第2ファイルSS544BのエクステントEXTSS[0]、EXTSS[1]、EXTSS[2]、EXTSS[3]として読み出される。すなわち、まず先頭のデプスマップ・データ・ブロックD1が読み出され、その直後のライトビュー・データ・ブロックR1の読み出しが最初のジャンプJLD1によってスキップされる。次に、先頭のベースビュー・データ・ブロックL1が読み出され、続けてその直後のデプスマップ・エクステントD2が読み出される。更に、その直後のライトビュー・エクステントR2の読み出しが二回目のジャンプJLD2によってスキップされ、二番目のベースビュー・データ・ブロックL2が読み出される。
図20の各再生経路2001−2003が示すとおり、データ・ブロック群がインターリーブ配置で記録された領域では、再生装置102はそのデータ・ブロック群を実質上、先頭から順に読み出せばよい。ここで、その読み出し処理の途中ではジャンプが生じる。しかし、各ジャンプの距離は、図17の(a)に示されているものとは異なり、メインTSとサブTSとのいずれの全長よりも十分に短い。また、いずれのジャンプも、図18の(a)に示されているものとは異なり、一つのデータ・ブロックの読み出しの途中では生じていない。更に、エクステントATC時間の等しいベースビュー・データ・ブロックとディペンデントビュー・データ・ブロックとの各対では、サイズの比較的小さいディペンデントビュー・データ・ブロックが先に読み出される。従って、その逆の場合よりも、再生装置102はリード・バッファの容量を削減できる。
再生装置102はL/Rモードではデータ・ブロック群を第1ファイルSS544Aのエクステント群として読み込む。すなわち、再生装置102は第1ファイルSS544Aのファイル・エントリ1640内のアロケーション記述子#1、#2、…から各3DエクステントEXTSS[0]、EXTSS[1]、…の先端のLBNとそのサイズとを読み出してBD−ROMドライブ121に渡す。BD−ROMドライブ121はそのLBNからそのサイズのデータを連続して読み出す。これらの処理は、データ・ブロック群を第1ファイルDEP542とファイル2D541との各エクステントとして読み込む処理よりも、BD−ROMドライブ121の制御が次の二点(A)、(B)で簡単である:(A)再生装置102は一箇所のファイル・エントリを利用して、エクステントを順番に参照すればよい;(B)読み込み対象のエクステントの総数が実質上半減するので、BD−ROMドライブ121に渡されるべきLBNとサイズとの対の総数が少ない。利点(A)はデプス・モードでデータ・ブロック群を第2ファイルSS544Bのエクステントとして読み込む処理にも当てはまる。但し、再生装置102は3DエクステントEXTSS[0]、EXTSS[1]、…を読み込んだ後、それぞれをライトビュー・データ・ブロックとベースビュー・データ・ブロックとに分離してデコーダに渡さなければならない。その分離処理にはクリップ情報ファイルが利用される。その詳細については後述する。
≪層境界の前後での多重化ストリーム・データの配置≫
BD−ROMディスク101が記録層を複数含むとき、メインTSとサブTSとは二つの記録層の境界、すなわち層境界を越えて記録されてもよい。また、メインTSとサブTSとは別のデータを間に挟んで記録されてもよい。それらの場合、BD−ROMドライブ121は一般に、メインTSとサブTSとの読み出し中にロングジャンプを行わねばならない。「ロングジャンプ」はジャンプの中でもシーク時間の長いものの総称であり、具体的には、ジャンプ距離が所定の閾値を超えるものをいう。「ジャンプ距離」とは、ジャンプ期間中に読み出し操作がスキップされるBD−ROMディスク101上の領域の長さをいう。ジャンプ距離は通常、その部分のセクタ数で表される。ロングジャンプの定義に利用される閾値は、BD−ROMの規格では例えば40000セクタに規定されている。しかし、その閾値は、BD−ROMディスクの種類とBD−ROMドライブの読み出し処理に関する性能とに依存する。ロングジャンプは特にフォーカス・ジャンプとトラック・ジャンプとを含む。「フォーカス・ジャンプ」は、記録層の切り換えに伴うジャンプであり、光ピックアップの焦点距離を変化させる処理を含む。「トラック・ジャンプ」は、光ピックアップをBD−ROMディスク101の半径方向に移動させる処理を含む。
BD−ROMディスク101では、一連のメインTSとサブTSとが、層境界及び別のデータの記録領域等、ロングジャンプの必要な位置の前後に分離されているとき、それらのデータ・ブロック群が、以下に述べる三種類の配置1−3のいずれかで記録されている。更に、それらのデータ・ブロック群へのアクセスにはAVストリーム・ファイルのクロスリンクが利用される。それにより、再生装置102は後述のとおり、リード・バッファの容量を必要最小限に維持したまま、ロングジャンプ中での映像のシームレス再生を容易に実現できる。
[配置1]
図21は、BD−ROMディスク101の層境界の前後に記録されたデータ・ブロック群の物理的な配置の第1例を示す模式図である。これらのデータ・ブロック群は、図6に示されているメインTS、第1サブTS、及び第2サブTSに属する。以下、この配置を「配置1」という。図21を参照するに、層境界LBの前に位置する第1記録層には、デプスマップ・データ・ブロック群…、D1、D2、ライトビュー・データ・ブロック群…、R1、R2、及びベースビュー・データ・ブロック群…、L1、L2がインターリーブ配置で記録されている。以下、これらのデータ・ブロック群を「第1の3Dエクステント・ブロック」2101という。更に、第1の3Dエクステント・ブロック2101の後端L2と層境界LBとの間に一つのベースビュー・データ・ブロックL32Dが配置されている。一方、層境界LBの後に位置する第2記録層には、デプスマップ・データ・ブロック群D3、D4、…、ライトビュー・データ・ブロック群R3、R4、…、及びベースビュー・データ・ブロック群L3SS、L4、…がインターリーブ配置で記録されている。以下、これらのデータ・ブロック群を「第2の3Dエクステント・ブロック」2102という。
各3Dエクステント・ブロック2101、2102のインターリーブ配置は、図16に示されているものと同様である。すなわち、デプスマップ・データ・ブロック、ライトビュー・データ・ブロック、及びベースビュー・データ・ブロックがその順で交互に並ぶ。更に、三つの連続するデータ・ブロックDn、Rn、Ln(n=…、1、2、3、4、…)間ではエクステントATC時間が等しい。第1の3Dエクステント・ブロック2101の後端に位置する三つのデータ・ブロックD2、R2、L2と、第2の3Dエクステント・ブロック2102の先端に位置する三つのデータ・ブロックD3、R3、L3SSとの間では、各ストリーム・データの内容が連続している。
層境界LBの直前に位置するベースビュー・データ・ブロックL32Dは、第2の3Dエクステント・ブロック2102内の先端のベースビュー・データ・ブロックL3SSとビット単位(bit−for−bit)で一致する。すなわち、それらのデータ・ブロックL32D、L3SSの一方は他方の複製データである。以下、前者L32Dを「2D再生専用ブロック」といい、後者L3SSを「3D再生専用ブロック」という。
図21に示されている各データ・ブロックは、3D再生専用ブロックL3SSを除いて、ファイル2D又はファイルDEPのいずれかのエクステントとしてアクセス可能である。例えばファイル2D(01000.m2ts)541のファイル・エントリ2110では、アロケーション記述子#1が、第1の3Dエクステント・ブロック2101内の最後から二番目のベースビュー・データ・ブロックL1のサイズとその先端のLBNとを示す。従って、そのベースビュー・データ・ブロックL1はファイル2D541の一つの2DエクステントEXT2D[0]としてアクセス可能である。アロケーション記述子#2は、第1の3Dエクステント・ブロック2101内の最後のベースビュー・データ・ブロックL2とその直後の2D再生専用ブロックL32Dとの対L2+L32Dを単一のエクステントと見なしてそのサイズとその先端のLBNとを示す。従って、そのベースビュー・データ・ブロックの対L2+L32Dはファイル2D541の単一の2DエクステントEXT2D[1]としてアクセス可能である。更に、アロケーション記述子#3が、第2の3Dエクステント・ブロック2102内の二番目のベースビュー・データ・ブロックL4のサイズとその先端のLBNとを示す。従って、そのベースビュー・データ・ブロックL4は別の一つの2DエクステントEXT2D[2]としてアクセス可能である。
図21に示されているデータ・ブロック群に対しても、AVストリーム・ファイルのクロスリンクは図16のものと同様に実現される。特に、第1ファイルSS544Aのファイル・エントリ2120では、アロケーション記述子#1、#2、#3、#4が、隣接するライトビュー・データ・ブロックとベースビュー・データ・ブロックとの対R1+L1、R2+L2、R3+L3SS、R4+L4をそれぞれ一つのエクステントと見なして、各サイズとその先端のLBNとを示す。従って、隣接するデータ・ブロックの各対R1+L1、R2+L2、R3+L3SS、R4+L4は第1ファイルSS544Aの3DエクステントEXTSS[0]、EXTSS[1]、EXTSS[2]、EXTSS[3]としてアクセス可能である。ここで、層境界LBの直後の3DエクステントEXTSS[3]を除き、3DエクステントEXTSS[0]、EXTSS[1]、EXTSS[3]はそれぞれ、ベースビュー・データ・ブロックL1、L2、L4をファイル2D541と共有する。一方、2D再生専用ブロックL32Dは、層境界LBの直前に位置するファイル2D541のエクステントEXT2D[1]の一部としてのみアクセス可能である。更に、3D再生専用ブロックL3SSは、層境界LBの直後の3DエクステントEXTSS[2]の一部としてのみアクセス可能である。
図22は、図21に示されているデータ・ブロック群に対する2D再生モードでの再生経路2201とL/Rモードでの再生経路2202を示す模式図である。尚、デプス・モードでの再生経路は、図16に示されているものから、当業者には容易に類推可能であろう。
再生装置102は2D再生モードではファイル2D541を再生する。従って、2D再生モードでの再生経路2201が示すとおり、まず第1の3Dエクステント・ブロック2101内の最後から二番目のベースビュー・データ・ブロックL1が最初の2DエクステントEXT2D[0]として読み出され、その直後のデプスマップ・データ・ブロックD2とライトビュー・データ・ブロックR2との読み出しが最初のジャンプJ2D1によってスキップされる。次に、第1の3Dエクステント・ブロック2101内の最後のベースビュー・データ・ブロックL2とその直後の2D再生専用ブロックL32Dとの対L2+L32Dが二番目の2DエクステントEXT2D[1]として連続して読み出される。その直後の層境界LBではロングジャンプJLYが生じ、フォーカス・ジャンプの実行と共に、第2の3Dエクステント・ブロック2102の先端に位置する5個のデータ・ブロックD3、R3、L3SS、D4、R4の読み出しがスキップされる。続いて、第2の3Dエクステント・ブロック2102内の二番目のベースビュー・データ・ブロックL4が三番目の2DエクステントEXT2D[2]として読み出される。
再生装置102はL/Rモードでは第1ファイルSS544Aを再生する。従って、L/Rモードでの再生経路2202が示すとおり、まず先頭のライトビュー・データ・ブロックR1とその直後のベースビュー・データ・ブロックL1との対R1+L1が最初の3DエクステントEXTSS[0]として連続して読み出され、その直後のデプスマップ・データ・ブロックD2の読み出しが最初のジャンプJLR1によってスキップされる。次に、二番目のライトビュー・データ・ブロックR2とその直後のベースビュー・データ・ブロックL2とが二番目の3DエクステントEXTSS[1]として連続して読み出される。その直後にロングジャンプJLYが生じ、フォーカス・ジャンプの実行と共に、2D再生専用ブロックL32Dと第2の3Dエクステント・ブロック2102内の先頭のデプスマップ・データ・ブロックD3との読み出しがスキップされる。続いて、第2の3Dエクステント・ブロック2102内の先頭のライトビュー・データ・ブロックR3とその直後の3D再生専用ブロックL3SSとが三番目の3DエクステントEXTSS[2]として連続して読み出され、その直後のデプスマップ・データ・ブロックD4の読み出しが二番目のジャンプJLR2によってスキップされる。更に、次のライトビュー・データ・ブロックR4とその直後のベースビュー・データ・ブロックL4とが四番目の3DエクステントEXTSS[3]として連続して読み出される。
図22に示されているとおり、2D再生モードでは、2D再生専用ブロックL32Dは読み出されるが、3D再生専用ブロックL3SSの読み出しはスキップされる。逆に、L/Rモードでは、2D再生専用ブロックL32Dの読み出しはスキップされるが、3D再生専用ブロックL3SSは読み出される。しかし、両方のデータ・ブロックL32D、L3SSはビット単位で一致しているので、いずれの再生モードでも、再生されるレフトビュー・ビデオ・フレームは等しい。このように、配置1ではロングジャンプJLYの前後で2D再生モードでの再生経路2201とL/Rモードでの再生経路2202とが分離されている。デプス・モードについても同様である。
[配置1の利点]
図23は、あるBD−ROMディスクの層境界の前後にインターリーブ配置で記録されているデータ・ブロック群と、それに対する各再生モードでの再生経路とを示す模式図である。図23を参照するに、図21に示されている配置1と同様、第1記録層には、デプスマップ・データ・ブロック群…、D1、D2、ライトビュー・データ・ブロック群…、R1、R2、及びベースビュー・データ・ブロック群…、L1、L2がインターリーブ配置で記録されて第1の3Dエクステント・ブロック2301を構成している。一方、第2記録層には、デプスマップ・データ・ブロック群D3、…、ライトビュー・データ・ブロック群R3、…、及びベースビュー・データ・ブロック群L3、…がインターリーブ配置で記録されて第2の3Dエクステント・ブロック2302を構成している。各3Dエクステント・ブロック2301、2302のインターリーブ配置は、図21に示されているもの2101、2102と同様である。更に、第1の3Dエクステント・ブロック2301の後端に位置する三つのデータ・ブロックD2、R2、L2と、第2の3Dエクステント・ブロック2302の先端に位置する三つのデータ・ブロックD3、R3、L3との間では、各ストリーム・データの内容が連続している。
図23に示されているデータ・ブロック群は、図21に示されているものとは異なり、層境界LBの前後に2D再生専用ブロックL32Dと3D再生専用ブロックL3SSとの対を含んでいない。従って、以下に示すように、2D再生モードでの再生経路2310とL/Rモードでの再生経路2311とがロングジャンプJLYの直前に分離されることなく、いずれも同じベースビュー・データ・ブロックL2を通る。
図23に示されているベースビュー・データ・ブロックL1−L3はいずれもファイル2Dの一つのエクステントEXT2D[0]−EXT2D[2]としてアクセス可能である。一方、隣接するライトビュー・データ・ブロックとベースビュー・データ・ブロックとの各対R1+L1、R2+L2、R3+L3はファイルSSの3DエクステントEXTSS[0]、EXTSS[1]、EXTSS[2]としてアクセス可能である。いずれの3DエクステントEXTSS[0]、EXTSS[1]、EXTSS[2]もそれぞれベースビュー・データ・ブロックL1、L2、L3をファイル2D541と共有する。
2D再生モードの再生装置102はファイル2Dを再生する。従って、2D再生モードでの再生経路2310が示すとおり、まず第1の3Dエクステント・ブロック2301内の最後から二番目のベースビュー・データ・ブロックL1が最初の2DエクステントEXT2D[0]として読み出され、その直後のデプスマップ・データ・ブロックD2とライトビュー・データ・ブロックR2との読み出しが最初のジャンプJ2D1によってスキップされる。次に、第1の3Dエクステント・ブロック2301内の最後のベースビュー・データ・ブロックL2が二番目の2DエクステントEXT2D[1]として読み出される。その直後の層境界LBではロングジャンプJLYが生じ、フォーカス・ジャンプの実行と共に、第2の3Dエクステント・ブロック2302の先端に位置する2個のデータ・ブロックD3、R3の読み出しがスキップされる。続いて、第2の3Dエクステント・ブロック2302内の先頭のベースビュー・データ・ブロックL3が三番目の2DエクステントEXT2D[2]として読み出される。
L/Rモードの再生装置102はファイルSSを再生する。従って、L/Rモードでの再生経路2311が示すとおり、まず先頭のライトビュー・データ・ブロックR1とその直後のベースビュー・データ・ブロックL1との対R1+L1が最初の3DエクステントEXTSS[0]として連続して読み出され、その直後のデプスマップ・データ・ブロックD2の読み出しが最初のジャンプJLR1によってスキップされる。次に、二番目のライトビュー・データ・ブロックR2とその直後のベースビュー・データ・ブロックL2とが二番目の3DエクステントEXTSS[1]として連続して読み出される。その直後にロングジャンプJLYが生じ、フォーカス・ジャンプの実行と共に、第2の3Dエクステント・ブロック2302内の先頭のデプスマップ・データ・ブロックD3の読み出しがスキップされる。続いて、第2の3Dエクステント・ブロック2302内の先頭のライトビュー・データ・ブロックR3とその直後のベースビュー・データ・ブロックL3とが三番目の3DエクステントEXTSS[2]として連続して読み出される。
上記のとおり、図23に示されているデータ・ブロック群では、図21に示されているものとは異なり、2D再生モードでの再生経路2310とL/Rモードでの再生経路2311とがいずれも、ロングジャンプJLYの直前に同じベースビュー・データ・ブロックL2を通る。ここで、ロングジャンプJLYの期間中、BD−ROMドライブ121は読み出し処理を停止するが、システム・ターゲット・デコーダは、リード・バッファに蓄積されたストリーム・データの復号処理を続行する。従って、再生装置102にロングジャンプJLYの前後で映像をシームレスに再生させるには、ロングジャンプJLYの期間中でのバッファ・アンダーフローを防止しなければならない。
L/Rモードでは、第1の3Dエクステント・ブロック2301が復号される間に、リード・バッファに一定量のデータが蓄積される。この一定量のデータを「バッファ余裕量」という(その詳細は後述する)。ロングジャンプJLYの期間中では、その直前に読み込まれた3DエクステントEXTSS[1]、すなわちライトビュー・データ・ブロックR2とベースビュー・データ・ブロックL2とに加えてそのバッファ余裕量のデータが復号される。従って、L/Rモードでバッファ・アンダーフローを防止するにはバッファ余裕量が十分に大きければよい。一方、各データ・ブロックR2、L2のサイズは、ロングジャンプJLYの直前までバッファ余裕量が維持できる値Smin2、Smin1であればよい。しかし、2D再生モードでバッファ・アンダーフローを防止するには、2DエクステントEXT2D[1]、すなわちベースビュー・データ・ブロックL2のサイズSext2D[1]が次の条件を満たさねばならない:2DエクステントEXT2D[1]の読み出し開始からロングジャンプJLYの完了までの間に、リード・バッファからシステム・ターゲット・デコーダに送られるデータ量以上である。その条件を満たすサイズSext2D[1]は、図23に示されているように、L/Rモードでのシームレス再生に必要最小限のサイズSmin1よりも一般に大きい。従って、L/Rモードの再生装置102内に確保されるべきリード・バッファの容量はL/Rモードでのシームレス再生に必要最小限の値よりも大きくなければならない。更に、ライトビュー・データ・ブロックR2はベースビュー・データ・ブロックL2とエクステントATC時間が等しくなければならない。従って、ライトビュー・データ・ブロックR2のサイズSext2[1]はL/Rモードでのシームレス再生に必要最小限の値Smin2よりも一般に大きい。それ故、L/Rモードの再生装置102内に確保されるべきリード・バッファの容量はL/Rモードでのシームレス再生に必要最小限の値よりも更に大きくなければならない。以上の結果、図23に示されている配置では、L/Rモードの再生装置102内に確保されるべきリード・バッファの容量の更なる削減が困難である。
それに対し、図22に示されている配置1では上記のとおり、ロングジャンプJLYの前後で2D再生モードでの再生経路2201とL/Rモードでの再生経路2202とが分離されている。従って、図23に示されている配置とは異なり、層境界LBの直前に位置する2DエクステントEXT2D[1]のサイズSext2D[1]とその直前のライトビュー・データ・ブロックR2のサイズSext2[1]とが、以下のように別々に決定可能である。
まず、2DエクステントEXT2D[1]のサイズSext2D[1]はベースビュー・データ・ブロックL2のサイズSext1[1]と2D再生専用ブロックL32DのサイズS2Dとの和Sext1[1]+S2Dに等しい。従って、2D再生モードでのシームレス再生の実現には、その和Sext1[1]+S2Dが、2DエクステントEXT2D[1]の読み出し開始からロングジャンプJLYの完了までの間にリード・バッファからシステム・ターゲット・デコーダに送られるデータ量以上であればよい。一方、層境界LBの直前に位置する3DエクステントEXTSS[1]に属するライトビュー・データ・ブロックR2とベースビュー・データ・ブロックL2との各サイズSext2[1]、Sext1[1]は、ロングジャンプJLYの直前までバッファ余裕量が維持できる程度の値であればよい。ここで、2DエクステントEXT2D[1]のうち、3DエクステントEXTSS[1]と共有されるのは、前側に位置するベースビュー・データ・ブロックL2だけである。従って、2D再生専用ブロックL32DのサイズS2Dを適切に拡大することにより、2DエクステントEXT2D[1]のサイズSext2D[1]=Sext1[1]+S2Dを一定に維持したまま、ベースビュー・データ・ブロックL2のサイズSext1[1]を更に小さく制限することができる。それに伴い、ライトビュー・データ・ブロックR2のサイズSext2[1]も更に小さく制限することができる。
ここで、3D再生専用ブロックL3SSは2D再生専用ブロックL32Dの複製データであるので、2D再生専用ブロックL32DのサイズS2Dの拡大は、3D再生専用ブロックL3SSの直前に位置するライトビュー・データ・ブロックR3のサイズを拡大させる。しかし、そのサイズは、図23に示されている層境界LBの直前に位置するライトビュー・データ・ブロックR3のサイズよりは十分に小さくできる。こうして、L/Rモードの再生装置102内に確保されるべきリード・バッファの容量を、L/Rモードでのシームレス再生に必要最小限の値に更に接近させることができる。
このように、配置1では各データ・ブロックを、ロングジャンプ中での映像のシームレス再生が2D再生モードとL/Rモードとの両方で実現可能であるようなサイズに設計することが、再生装置102内に確保されるべきリード・バッファの容量を必要最小限に抑えたままで可能である。更に、2D再生モードとL/Rモードとで読み込み対象のデータ・ブロックを変更すること、特に2D再生専用ブロックL32Dと3D再生専用ブロックL3SSとの間の切り換えが、再生対象のAVストリーム・ファイルをファイル2DとファイルSSとの間で切り換えるだけで容易に実現可能である。
[配置2]
図24は、BD−ROMディスク101の層境界の前後に記録されたデータ・ブロック群の物理的な配置の第2例を示す模式図である。これらのデータ・ブロック群は、図6に示されているメインTS、第1サブTS、及び第2サブTSに属する。以下、この配置を「配置2」という。図24を図21と比較するに、配置2は配置1とは、第2の3Dエクステント・ブロック2402の先端に二個の3D再生専用ブロックL3SS、L4SSが設けられている点で異なる。その他の特徴については配置2は配置1と同様であるので、その詳細についての説明は配置1についての説明を援用する。
層境界LBの直前に位置する2D再生専用ブロック(L3+L4)2Dは第2の3Dエクステント・ブロック2402内の3D再生専用ブロックの対L3SS、L4SSとビット単位で一致する。すなわち、2D再生専用ブロック(L3+L4)2Dと3D再生専用ブロックの対L3SS、L4SSとの一方は他方の複製データである。
図24に示されている各データ・ブロックは、3D再生専用ブロックL3SS、L4SSを除いて、ファイル2D又はファイルDEPのいずれかのエクステントとしてアクセス可能である。例えば、ファイル2D541のファイル・エントリ2410では、アロケーション記述子#1が、第1の3Dエクステント・ブロック2401内の最後から二番目のベースビュー・データ・ブロックL1のサイズとその先端のLBNとを示す。従って、そのベースビュー・データ・ブロックL1はファイル2D541の一つの2DエクステントEXT2D[0]としてアクセス可能である。アロケーション記述子#2が、第1の3Dエクステント・ブロック2401内の最後のベースビュー・データ・ブロックL2とその直後の2D再生専用ブロック(L3+L4)2Dとの対L2+(L3+L4)2Dを単一のエクステントと見なしてそのサイズとその先端のLBNとを示す。従って、そのベースビュー・データ・ブロックの対L2+(L3+L4)2Dはファイル2D541の一つの2DエクステントEXT2D[1]としてアクセス可能である。更に、アロケーション記述子#3が、第2の3Dエクステント・ブロック2402内の三番目のベースビュー・データ・ブロックL5のサイズとその先端のLBNとを示す。従って、そのベースビュー・データ・ブロックL5は別の一つの2DエクステントEXT2D[2]としてアクセス可能である。
第1ファイルSS544Aのファイル・エントリ2420では、アロケーション記述子#1、#2、#3、#4、#5が、隣接するライトビュー・データ・ブロックとベースビュー・データ・ブロックとの対R1+L1、R2+L2、R3+L3SS、R4+L4SS、R5+L5をそれぞれ一つのエクステントと見なして、各サイズとその先端のLBNとを示す。従って、隣接するデータ・ブロックの各対R1+L1、…、R5+L5は第1ファイルSS544Aの3DエクステントEXTSS[0]、EXTSS[1]、EXTSS[2]、EXTSS[3]、EXTSS[4]としてアクセス可能である。2D再生専用ブロック(L3+L4)2Dはファイル2D541のエクステントEXT2D[1]の一部としてのみアクセス可能であり、各3D再生専用ブロックL3SS、L4SSは3DエクステントEXTSS[2]、EXTSS[3]の一部としてのみアクセス可能である。
図25は、図24に示されているデータ・ブロック群に対する2D再生モードでの再生経路2501とL/Rモードでの再生経路2502とを示す模式図である。尚、デプス・モードでの再生経路は、図16に示されているものから、当業者には容易に類推可能であろう。
再生装置102は2D再生モードではファイル2D541を再生する。従って、2D再生モードでの再生経路2501が示すとおり、まず第1の3Dエクステント・ブロック2401内の最後から二番目のベースビュー・データ・ブロックL1が最初の2DエクステントEXT2D[0]として読み出され、その直後のデプスマップ・データ・ブロックD2とライトビュー・データ・ブロックR2との読み出しが最初のジャンプJ2D1によってスキップされる。次に、第1の3Dエクステント・ブロック2401内の最後のベースビュー・データ・ブロックL2とその直後の2D再生専用ブロック(L3+L4)2Dとの対L2+(L3+L4)2Dが二番目の2DエクステントEXT2D[1]として連続して読み出される。その直後の層境界LBではロングジャンプJLYが生じ、フォーカス・ジャンプの実行と共に、第2の3Dエクステント・ブロック2402の先端に位置する8個のデータ・ブロックD3、R3、L3SS、D4、R4、L4SS、D5、R5の読み出しがスキップされる。続いて、第2の3Dエクステント・ブロック2402内の三番目のベースビュー・データ・ブロックL5が三番目の2DエクステントEXT2D[2]として読み出される。
再生装置102はL/Rモードでは第1ファイルSS544Aを再生する。従って、L/Rモードでの再生経路2502が示すとおり、まず先頭のライトビュー・データ・ブロックR1とその直後のベースビュー・データ・ブロックL1との対R1+L1が最初の3DエクステントEXTSS[0]として連続して読み出され、その直後のデプスマップ・データ・ブロックD2の読み出しが最初のジャンプJLR1によってスキップされる。次に、二番目のライトビュー・データ・ブロックR2とその直後のベースビュー・データ・ブロックL2とが二番目の3DエクステントEXTSS[1]として連続して読み出される。その直後にロングジャンプJLYが生じ、フォーカス・ジャンプの実行と共に、2D再生専用ブロック(L3+L4)2Dと第2の3Dエクステント・ブロック2402内の先頭のデプスマップ・データ・ブロックD3との読み出しがスキップされる。続いて、第2の3Dエクステント・ブロック2402内の先頭のライトビュー・データ・ブロックR3とその直後の3D再生専用ブロックL3SSとが三番目の3DエクステントEXTSS[2]として連続して読み出され、その直後のデプスマップ・データ・ブロックD4の読み出しが二番目のジャンプJLR2によってスキップされる。同様に、次のライトビュー・データ・ブロックR4とその直後の3D再生専用ブロックL4SSとが四番目の3DエクステントEXTSS[3]として連続して読み出され、その直後のデプスマップ・データ・ブロックD5の読み出しが三番目のジャンプJLR3によってスキップされる。更に次のライトビュー・データ・ブロックR5とその直後のベースビュー・データ・ブロックL5とが五番目の3DエクステントEXTSS[4]として連続して読み出される。
図25に示されているとおり、2D再生モードでは、2D再生専用ブロック(L3+L4)2Dは読み出されるが、3D再生専用ブロックL3SS、L4SSの読み出しはスキップされる。逆にL/Rモードでは、2D再生専用ブロック(L3+L4)2Dの読み出しはスキップされるが、3D再生専用ブロックL3SS、L4SSは読み出される。しかし、2D再生専用ブロック(L3+L4)2Dと3D再生専用ブロックの対L3SS、L4SSとはビット単位で一致しているので、いずれの再生モードでも、再生されるレフトビュー・ビデオ・フレームは等しい。このように、配置2ではロングジャンプJLYの前後で2D再生モードでの再生経路2501とL/Rモードでの再生経路2502とが分離されている。従って、層境界LBの直前に位置する2DエクステントEXT2D[1]のサイズSext2D[1]とその直前のライトビュー・データ・ブロックR2のサイズSext2[1]とが、以下のように別々に決定可能である。尚、デプス・モードについても同様である。
まず、2DエクステントEXT2D[1]のサイズSext2D[1]はベースビュー・データ・ブロックL2のサイズSext1[1]と2D再生専用ブロック(L3+L4)2DのサイズS2Dとの和Sext1[1]+S2Dに等しい。従って、2D再生モードでのシームレス再生の実現には、その和Sext1[1]+S2Dが、2DエクステントEXT2D[1]の読み出し開始からロングジャンプJLYの完了までの間にリード・バッファからシステム・ターゲット・デコーダに送られるデータ量以上であればよい。一方、層境界LBの直前に位置する3DエクステントEXTSS[1]に属するライトビュー・データ・ブロックR2とベースビュー・データ・ブロックL2との各サイズSext2[1]、Sext1[1]は、ロングジャンプJLYの直前までバッファ余裕量が維持できる程度の値であればよい。ここで、2D再生専用ブロック(L3+L4)2DのサイズS2Dの適切な拡大により、2DエクステントEXT2D[1]のサイズSext2D[1]=Sext1[1]+S2Dを一定に維持したまま、ベースビュー・データ・ブロックL2のサイズSext1[1]を更に小さく制限することができる。それに伴い、ライトビュー・データ・ブロックR2のサイズSext2[1]も更に小さく制限することができる。
ここで、3D再生専用ブロックの対L3SS、L4SSは2D再生専用ブロック(L3+L4)2Dの複製データであるので、2D再生専用ブロック(L3+L4)2DのサイズS2Dの拡大は、各3D再生専用ブロックL3SS、L4SSの直前に位置するライトビュー・データ・ブロックR3、R4のサイズを拡大させる。しかし、一つの2D再生専用ブロック(L3+L4)2Dに対して3D再生専用ブロックは二つL3SS、L4SSに分割されているので、各サイズは、図23に示されている層境界LBの直前に位置するライトビュー・データ・ブロックR3のサイズよりは十分に小さくできる。こうして、L/Rモードの再生装置102内に確保されるべきリード・バッファの容量は、L/Rモードでのシームレス再生に必要最小限の値まで更に削減可能である。
このように、配置2では各データ・ブロックを、ロングジャンプ中での映像のシームレス再生が2D再生モードとL/Rモードとの両方で実現可能であるようなサイズに設計することが、再生装置102のデコーダ内に確保されるべきバッファ容量を必要最小限に抑えたままで可能である。更に、2D再生モードとL/Rモードとで読み込み対象のデータ・ブロックを変更すること、特に2D再生専用ブロック(L3+L4)2Dと3D再生専用ブロックの対L3SS、L4SSとの間の切り換えが、再生対象のAVストリーム・ファイルをファイル2DとファイルSSとの間で切り換えるだけで容易に実現可能である。尚、デプス・モードでも同様である。
配置2では、2D再生専用ブロック(L3+L4)2Dの複製データが二個の3D再生専用ブロックL3SS、L4SSとして設けられている。その他に、複製データが三個以上の3D再生専用ブロックとして設けられていてもよい。
[配置3]
図26は、BD−ROMディスク101の層境界の前後に記録されたデータ・ブロック群の物理的な配置の第3例を示す模式図である。これらのデータ・ブロック群は、図6に示されているメインTS、第1サブTS、及び第2サブTSに属する。以下、この配置を「配置3」という。図26を図24と比較するに、配置3は配置2とは、2D再生専用ブロック(L2+L3)2Dが単独で一つの2DエクステントEXT2D[1]としてアクセス可能である点で異なる。その他の特徴については配置3は配置2と同様であるので、その詳細についての説明は配置2についての説明を援用する。
層境界LBの直前に位置する2D再生専用ブロック(L2+L3)2Dは第2の3Dエクステント・ブロック2602内の3D再生専用ブロックの対L2SS、L3SSとビット単位で一致する。すなわち、2D再生専用ブロック(L2+L3)2Dと3D再生専用ブロックの対L2SS、L3SSとの一方は他方の複製データである。
図26に示されている各データ・ブロックは、3D再生専用ブロックL2SS、L3SSを除いて、ファイル2D又はファイルDEPのいずれかのエクステントとしてアクセス可能である。例えば、ファイル2D541のファイル・エントリ2610では、アロケーション記述子#1は、第1の3Dエクステント・ブロック2401内の最後のベースビュー・データ・ブロックL1のサイズとその先端のLBNとを示す。従って、そのベースビュー・データ・ブロックL1は一つの2DエクステントEXT2D[0]としてアクセス可能である。アロケーション記述子#2は2D再生専用ブロック(L2+L3)2Dを単一のエクステントと見なしてそのサイズとその先端のLBNとを示す。従って、2D再生専用ブロック(L2+L3)2Dは次の2DエクステントEXT2D[1]としてアクセス可能である。アロケーション記述子#3は、第2の3Dエクステント・ブロック2602内の三番目のベースビュー・データ・ブロックL4のサイズとその先端のLBNとを示す。従って、そのベースビュー・データ・ブロックL4は三番目の2DエクステントEXT2D[2]としてアクセス可能である。
第1ファイルSS544Aのファイル・エントリ2620では、アロケーション記述子#1、#2、#3、#4が、隣接するライトビュー・データ・ブロックとベースビュー・データ・ブロックとの対R1+L1、R2+L2SS、R3+L3SS、R4+L4をそれぞれ一つのエクステントと見なして、各サイズとその先端のLBNとを示す。従って、隣接するデータ・ブロックの各対R1+L1、…、R4+L4は第1ファイルSS544Aの3DエクステントEXTSS[0]、EXTSS[1]、EXTSS[2]、EXTSS[3]としてアクセス可能である。2D再生専用ブロック(L2+L3)2Dはファイル2D541の一つのエクステントEXT2D[1]としてのみアクセス可能であり、各3D再生専用ブロックL2SS、L3SSは3DエクステントEXTSS[1]、EXTSS[2]の一部としてのみアクセス可能である。
図27は、図26に示されているデータ・ブロック群に対する2D再生モードでの再生経路2701とL/Rモードでの再生経路2702とを示す模式図である。尚、デプス・モードでの再生経路は、図16に示されているものから、当業者には容易に類推可能であろう。
再生装置102は2D再生モードではファイル2D541を再生する。従って、2D再生モードでの再生経路2701が示すとおり、まず第1の3Dエクステント・ブロック2601内の最後のベースビュー・データ・ブロックL1が最初の2DエクステントEXT2D[0]として読み出される。次に、その直後の2D再生専用ブロック(L2+L3)2Dが二番目の2DエクステントEXT2D[1]として連続して読み出される。その直後の層境界LBではロングジャンプJLYが生じ、フォーカス・ジャンプの実行と共に、第2の3Dエクステント・ブロック2602の先端に位置する8個のデータ・ブロックD2、R2、L2SS、D3、R3、L3SS、D4、R4の読み出しがスキップされる。続いて、第2の3Dエクステント・ブロック2602内の三番目のベースビュー・データ・ブロックL4が三番目の2DエクステントEXT2D[2]として読み出される。
再生装置102はL/Rモードでは第1ファイルSS544Aを再生する。従って、L/Rモードでの再生経路2702が示すとおり、まず先頭のライトビュー・データ・ブロックR1とその直後のベースビュー・データ・ブロックL1との対R1+L1が最初の3DエクステントEXTSS[0]として連続して読み出される。その直後にロングジャンプJLYが生じ、フォーカス・ジャンプの実行と共に、2D再生専用ブロック(L2+L3)2Dと第2の3Dエクステント・ブロック2602内の先頭のデプスマップ・データ・ブロックD3との読み出しがスキップされる。次に、第2の3Dエクステント・ブロック2602内の先頭のライトビュー・データ・ブロックR2とその直後の3D再生専用ブロックL2SSとが二番目の3DエクステントEXTSS[1]として連続して読み出され、その直後のデプスマップ・データ・ブロックD3の読み出しが最初のジャンプJLR1によってスキップされる。同様に、次のライトビュー・データ・ブロックR3とその直後の3D再生専用ブロックL3SSとが三番目の3DエクステントEXTSS[2]として連続して読み出され、その直後のデプスマップ・データ・ブロックD4の読み出しが二番目のジャンプJLR2によってスキップされる。更に次のライトビュー・データ・ブロックR4とその直後のベースビュー・データ・ブロックL4とが四番目の3DエクステントEXTSS[3]として連続して読み出される。
図27に示されているとおり、2D再生モードでは、2D再生専用ブロック(L2+L3)2Dは読み出されるが、3D再生専用ブロックL2SS、L3SSの読み出しはスキップされる。逆にL/Rモードでは、2D再生専用ブロック(L2+L3)2Dの読み出しはスキップされるが、3D再生専用ブロックL2SS、L3SSは読み出される。しかし、2D再生専用ブロック(L2+L3)2Dと3D再生専用ブロックの対L2SS、L3SSとはビット単位で一致しているので、いずれの再生モードでも、再生されるレフトビュー・ビデオ・フレームは等しい。このように、配置3ではロングジャンプJLYの前後で2D再生モードでの再生経路2701とL/Rモードでの再生経路2702とが分離されている。従って、層境界LBの直前に位置する2DエクステントEXT2D[1]のサイズSext2D[1]とその直前のライトビュー・データ・ブロックR2のサイズSext2[1]とが、以下のように別々に決定可能である。尚、デプス・モードについても同様である。
まず、層境界LBの直前で連続する二つの2DエクステントEXT2D[0]、EXT2D[1]のサイズの和Sext2D[0]+Sext2D[1]はベースビュー・データ・ブロックL1のサイズSext2D[0]と2D再生専用ブロック(L2+L3)2DのサイズS2Dとの和Sext1[1]+S2Dに等しい。従って、2D再生モードでのシームレス再生の実現には、その和Sext1[1]+S2Dが、2DエクステントEXT2D[1]の読み出し開始からロングジャンプJLYの完了までの間にリード・バッファからシステム・ターゲット・デコーダに送られるデータ量以上であればよい。一方、層境界LBの直前に位置する3DエクステントEXTSS[0]に属するライトビュー・データ・ブロックR1のサイズSext2[0]とベースビュー・データ・ブロックL1との各サイズSext2[0]、Sext2D[0]は、ロングジャンプJLYの直前までバッファ余裕量が維持できる程度の値であればよい。ここで、2D再生専用ブロック(L2+L3)2DのサイズS2Dの適切な拡大により、2Dエクステントの対EXT2D[0]、EXT2D[1]のサイズの和Sext2D[0]+Sext2D[1]を一定に維持したまま、ベースビュー・データ・ブロックL1のサイズSext2D[0]を更に小さく制限することができる。それに伴い、ライトビュー・データ・ブロックR1のサイズSext2[0]も更に小さく制限することができる。
ここで、3D再生専用ブロックの対L2SS、L3SSは2D再生専用ブロック(L2+L3)2Dの複製データであるので、2D再生専用ブロック(L2+L3)2DのサイズS2Dの拡大は、各3D再生専用ブロックL2SS、L3SSの直前に位置するライトビュー・データ・ブロックR2、R3のサイズを拡大させる。しかし、一つの2D再生専用ブロック(L2+L3)2Dに対して3D再生専用ブロックは二つL2SS、L3SSに分割されているので、各サイズは、図23に示されている層境界LBの直前に位置するライトビュー・データ・ブロックR3のサイズよりは十分に小さくできる。こうして、L/Rモードの再生装置102内に確保されるべきリード・バッファの容量は、L/Rモードでのシームレス再生に必要最小限の値まで更に削減可能である。
このように、配置3では各データ・ブロックを、ロングジャンプ中での映像のシームレス再生が2D再生モードとL/Rモードとの両方で実現可能であるようなサイズに設計することが、再生装置102内に確保されるべきリード・バッファの容量を必要最小限に抑えたままで可能である。更に、2D再生モードとL/Rモードとで読み込み対象のデータ・ブロックを変更すること、特に2D再生専用ブロック(L2+L3)2Dと3D再生専用ブロックの対L2SS、L3SSとの間の切り換えが、再生対象のAVストリーム・ファイルをファイル2DとファイルSSとの間で切り換えるだけで容易に実現可能である。尚、デプス・モードでも同様である。
配置3では、2D再生専用ブロック(L2+L3)2Dの複製データが二個の3D再生専用ブロックL2SS、L3SSとして設けられている。その他に、複製データが図1のように一個の3D再生専用ブロックとして設けられてもよく、又は三個以上の3D再生専用ブロックとして設けられていてもよい。
尚、配置1−3とは異なり、2D再生専用ブロックはファイル2Dの二個以上のエクステントとしてアクセス可能であってもよい。更に、各データ・ブロックは二種類以上のファイル2D又はファイルSSのエクステントとしてアクセス可能であってもよい。
≪L/Rモードのみに対応する多重化ストリーム・データの配置≫
3D映像の再生にL/Rモードのみが利用されるとき、上記の配置1−3からデプスマップ・データ・ブロックが除去されてもよい。図28の(a)は、図21に示されている配置1からデプスマップ・データ・ブロックを除去したものを示す模式図である。これらのデータ・ブロック群は、図6に示されているメインTSと第1サブTSとに属する。図28の(a)を参照するに、層境界LBの前に位置する第1の3Dエクステント・ブロック2801では、ライトビュー・データ・ブロック群…、R1、R2、及びベースビュー・データ・ブロック群…、L1、L2がインターリーブ配置で記録されている。一方、層境界LBの後に位置する第2の3Dエクステント・ブロック2802では、ライトビュー・データ・ブロック群R3、R4、…、及びベースビュー・データ・ブロック群L3SS、L4、…がインターリーブ配置で記録されている。更に、第1の3Dエクステント・ブロック2801の後端L2と層境界LBとの間に2D再生専用ブロックL32Dが配置され、第2の3Dエクステント・ブロック2802の先端には3D再生専用ブロックL3SSが配置されている。それらのデータ・ブロックL32D、L3SSの一方は他方の複製データであり、ビット単位で一致する。
各3Dエクステント・ブロック2801、2802のインターリーブ配置では、ライトビュー・データ・ブロックとベースビュー・データ・ブロックとがその順で交互に並ぶ。更に、二つの連続するデータ・ブロックRn、Ln(n=…、1、2、3、4、…)間ではエクステントATC時間が等しい。第1の3Dエクステント・ブロック2801の後端に位置する二つのデータ・ブロックR2、L2と、第2の3Dエクステント・ブロック2802の先端に位置する二つのデータ・ブロックR3、L3SSとの間では、各ストリーム・データの内容が連続している。
図28の(a)に示されている各データ・ブロックは、3D再生専用ブロックL3SSを除いて、ファイル2D又はファイルDEPのいずれかのエクステントとしてアクセス可能である。例えば、ファイル2Dのファイル・エントリ2810では、アロケーション記述子#1は、第1の3Dエクステント・ブロック2801内の最後から二番目のベースビュー・データ・ブロックL1のサイズとその先端のLBNとを示す。従って、そのベースビュー・データ・ブロックL1は一つの2DエクステントEXT2D[0]としてアクセス可能である。アロケーション記述子#2は、そのベースビュー・データ・ブロックの対L2+L32Dを単一のエクステントと見なしてそのサイズとその先端のLBNとを示す。従って、そのベースビュー・データ・ブロックの対L2+L32Dは二番目の2DエクステントEXT2D[1]としてアクセス可能である。アロケーション記述子#3は、第2の3Dエクステント・ブロック2802内の二番目のベースビュー・データ・ブロックL4のサイズとその先端のLBNとを示す。従って、そのベースビュー・データ・ブロックL4は三番目の2DエクステントEXT2D[2]としてアクセス可能である。
図28の(a)に示されているデータ・ブロック群に対しても、AVストリーム・ファイルのクロスリンクは図16のものと同様に実現される。特に、各3Dエクステント・ブロック2801、2802からはデプスマップ・データ・ブロックが除去されているので、エクステントATC時間の等しいライトビュー・データ・ブロックとベースビュー・データ・ブロックとの対が二つ以上、連続して配置されてもよい。その場合、それら二つ以上の対が一つの3Dエクステントとしてアクセスされてもよい。図28の(a)を参照するに、ファイルSSのファイル・エントリ2820では、アロケーション記述子#1は、第1の3Dエクステント・ブロック2801のうち、四つの連続するライトビュー・データ・ブロックとベースビュー・データ・ブロックR1、L1、R2、L2を一つのエクステントと見なして、それらの全体のサイズと先端のLBNとを示す。従って、それらのデータ・ブロックR1、L1、R2、L2、は一つの3DエクステントEXTSS[0]としてアクセス可能である。アロケーション記述子#2は、第2の3Dエクステント・ブロック2802のうち、四つの連続するライトビュー・データ・ブロックとベースビュー・データ・ブロックR3、L3SS、R4、L4を一つのエクステントと見なして、それらの全体のサイズと先端のLBNとを示す。従って、それらのデータ・ブロックR3、L3SS、R4、L4は次の3DエクステントEXTSS[1]としてアクセス可能である。ここで、3DエクステントEXTSS[0]、EXTSS[1]はそれぞれ、ベースビュー・データ・ブロックL1、L2、L4を2DエクステントEXT2D[0]、EXT2D[1]、EXT2D[2]と共有する。一方、2D再生専用ブロックL32Dは、層境界LBの直前に位置する2DエクステントEXT2D[1]の一部としてのみアクセス可能である。更に、3D再生専用ブロックL3SSは、層境界LBの直後の3DエクステントEXTSS[1]の一部としてのみアクセス可能である。
図28の(b)は、図28の(a)に示されているデータ・ブロック群に対する2D再生モードでの再生経路2803とL/Rモードでの再生経路2804とを示す模式図である。
再生装置102は2D再生モードではファイル2Dを再生する。従って、2D再生モードでの再生経路2803が示すとおり、まず第1の3Dエクステント・ブロック2801内の最後から二番目のベースビュー・データ・ブロックL1が最初の2DエクステントEXT2D[0]として読み出され、その直後のライトビュー・データ・ブロックR2の読み出しが最初のジャンプJ2D1によってスキップされる。次に、第1の3Dエクステント・ブロック2801内の最後のベースビュー・データ・ブロックL2とその直後の2D再生専用ブロックL32Dとの対L2+L32Dが二番目の2DエクステントEXT2D[1]として連続して読み出される。その直後の層境界LBではロングジャンプJLYが生じ、フォーカス・ジャンプの実行と共に、第2の3Dエクステント・ブロック2802の先端に位置する3個のデータ・ブロックR3、L3SS、R4の読み出しがスキップされる。続いて、第2の3Dエクステント・ブロック2802内の二番目のベースビュー・データ・ブロックL4が三番目の2DエクステントEXT2D[2]として読み出される。
再生装置102はL/RモードではファイルSSを再生する。従って、L/Rモードでの再生経路2804が示すとおり、まず第1の3Dエクステント・ブロック2801内のデータ・ブロック群R1、L1、R2、L2が最初の3DエクステントEXTSS[0]として連続して読み出される。その直後にロングジャンプJLYが生じ、フォーカス・ジャンプの実行と共に、2D再生専用ブロックL32Dの読み出しがスキップされる。続いて、第2の3Dエクステント・ブロック2802内のデータ・ブロック群R3、L3SS、R4、L4とが次の3DエクステントEXTSS[1]として連続して読み出される。
図28の(b)に示されているとおり、2D再生モードでは、2D再生専用ブロックL32Dは読み出されるが、3D再生専用ブロックL3SSの読み出しはスキップされる。逆に、L/Rモードでは、2D再生専用ブロックL32Dの読み出しはスキップされるが、3D再生専用ブロックL3SSは読み出される。しかし、両方のデータ・ブロックL32D、L3SSはビット単位で一致しているので、いずれの再生モードでも、再生されるレフトビュー・ビデオ・フレームは等しい。このように、配置1では、L/Rモードのみに対応可能な場合でも、ロングジャンプJLYの前後で2D再生モードでの再生経路2801とL/Rモードでの再生経路2802とが分離されている。従って、2D再生専用ブロックL32DのサイズS2Dを適切に拡大することにより、2DエクステントEXT2D[1]のサイズSext2D[1]=Sext1[1]+S2Dを一定に維持したまま、ベースビュー・データ・ブロックL2のサイズSext1[1]を更に小さく制限することができる。それに伴い、ライトビュー・データ・ブロックR2のサイズSext2[1]も更に小さく制限することができる。その結果、L/Rモードの再生装置102内に確保されるべきリード・バッファの容量をL/Rモードでのシームレス再生に必要最小限の値に更に接近させることができる。他の配置2、3についても同様である。
このように、配置1−3がL/Rモードのみ対応可能なものであっても、各データ・ブロックを、ロングジャンプ中での映像のシームレス再生が2D再生モードとL/Rモードとの両方で実現可能であるようなサイズに設計することが、再生装置102内に確保されるべきリード・バッファの容量を必要最小限に抑えたままで可能である。更に、2D再生モードとL/Rモードとで読み込み対象のデータ・ブロックを変更すること、特に2D再生専用ブロックL32Dと3D再生専用ブロックL3SSとの間の切り換えが、再生対象のAVストリーム・ファイルをファイル2DとファイルSSとの間で切り換えるだけで容易に実現可能である。
≪AVストリーム・ファイルに含まれるその他のTSパケット≫
AVストリーム・ファイルに含まれるTSパケットの種類には、図6、7に示されているエレメンタリ・ストリームから変換されたもの以外にも、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を利用して、ATCにSTCを同期させる。
図29は、PMT2910のデータ構造を示す模式図である。PMT2910は、PMTヘッダ2901、ディスクリプタ2902、及びストリーム情報2903を含む。PMTヘッダ2901は、PMT2910に含まれるデータの長さ等を示す。各ディスクリプタ2902は、PMT2910を含むAVストリーム・ファイルの全体に関するディスクリプタである。前述のコピー・コントロール情報はディスクリプタ2902の一つに含まれる。ストリーム情報2903は、AVストリーム・ファイルに含まれる各エレメンタリ・ストリームに関する情報であり、一つずつ異なるエレメンタリ・ストリームに割り当てられている。各ストリーム情報2903は、ストリーム・タイプ2931、PID2932、及びストリーム・ディスクリプタ2933を含む。ストリーム・タイプ2931は、そのエレメンタリ・ストリームの圧縮に利用されたコーデックの識別情報等を含む。PID2932は、そのエレメンタリ・ストリームのPIDを示す。ストリーム・ディスクリプタ2933は、そのエレメンタリ・ストリームの属性情報、例えばフレームレート及びアスペクト比を含む。
PCR、PMT、及びPATを利用することで、再生装置内のデコーダにAVストリーム・ファイルを、欧州デジタル放送規格に準拠のパーシャル・トランスポート・ストリームと同様に処理させることができる。それにより、BD−ROMディスク101用の再生装置と欧州デジタル放送規格に準拠の端末装置との間の互換性を確保することができる。
≪クリップ情報ファイル≫
図30は、第1クリップ情報ファイル(01000.clpi)、すなわち2Dクリップ情報ファイル531のデータ構造を示す模式図である。ディペンデントビュー・クリップ情報ファイル(02000.clpi、03000.clpi)532、533も同様なデータ構造を持つ。以下では、まず、クリップ情報ファイル全般に共通するデータ構造を2Dクリップ情報ファイル531のデータ構造を例に説明する。その後、2Dクリップ情報ファイルとディペンデントビュー・クリップ情報ファイルとのデータ構造上の相違点について説明する。
図30を参照するに、2Dクリップ情報ファイル531は、クリップ情報3010、ストリーム属性情報3020、エントリ・マップ3030、及び3Dメタデータ3040を含む。3Dメタデータ3040はオフセット・テーブル3041とエクステント起点3042とを含む。
クリップ情報3010は、図30に示されているように、システムレート3011、再生開始時刻3012、及び再生終了時刻3013を含む。システムレート3011は、ファイル2D(01000.m2ts)541に属する“TSパケット”が再生装置102内でリード・バッファからシステム・ターゲット・デコーダへ転送される速度の最高値を示す。ファイル2D541では、TSパケットの転送速度がシステムレート以下に抑えられるように、ソースパケットのATSの間隔が設定されている。再生開始時刻3012は、ファイル2D541の先頭のVAUのPTS、例えば先頭の映像フレームのPTSを示す。再生終了時刻3012は、ファイル2D541の後端のVAUのPTSから所定量遅れたSTCの値、例えば最後の映像フレームのPTSに1フレーム当たりの再生時間を加えた値を示す。
ストリーム属性情報3020は、図30に示されているように、ファイル2D541に含まれる各エレメンタリ・ストリームのPID3021とその属性情報3022との間の対応表である。属性情報3022は、ビデオ・ストリーム、オーディオ・ストリーム、PGストリーム、及びIGストリームのそれぞれで異なる。例えばプライマリ・ビデオ・ストリームのPID0x1011に対応付けられた属性情報は、そのビデオ・ストリームの圧縮に利用されたコーデックの種類、そのビデオ・ストリームを構成する各ピクチャの解像度、アスペクト比、及びフレームレートを含む。一方、プライマリ・オーディオ・ストリームのPID0x1101に対応付けられた属性情報は、そのオーディオ・ストリームの圧縮に利用されたコーデックの種類、そのオーディオ・ストリームに含まれるチャンネル数、言語、及びサンプリング周波数を含む。属性情報3022は再生装置102により、デコーダの初期化に利用される。
[エントリ・マップ]
図31の(a)は、エントリ・マップ3030のデータ構造を示す模式図である。図31の(a)を参照するに、エントリ・マップ3030はテーブル3100を含む。テーブル3100は、メインTSに多重化されたビデオ・ストリームと同数であり、各ビデオ・ストリームに一つずつ割り当てられている。図31の(a)では各テーブル3100が割り当て先のビデオ・ストリームのPIDで区別されている。各テーブル3100はエントリ・マップ・ヘッダ3101とエントリ・ポイント3102とを含む。エントリ・マップ・ヘッダ3101は、そのテーブル3100に対応付けられたPIDと、そのテーブル3100に含まれるエントリ・ポイント3102の総数とを含む。エントリ・ポイント3102は、PTS3103とソースパケット番号(SPN)3104との対を個別に異なるエントリ・ポイントID(EP_ID)3105に対応付ける。PTS3103は、エントリ・マップ・ヘッダ3101の示すPIDのビデオ・ストリームに含まれるいずれかのIピクチャのPTSに等しい。SPN3104は、そのIピクチャが格納されたソースパケット群の先頭のSPNに等しい。「SPN」とは、一つのAVストリーム・ファイルに属するソースパケット群に、先頭から順に割り当てられた通し番号をいう。SPNはそのAVストリーム・ファイル内での各ソースパケットのアドレスとして利用される。2Dクリップ情報ファイル531内のエントリ・マップ3030では、SPNは、ファイル2D541に属するソースパケット群、すなわちメインTSを構成するソースパケット群に割り当てられた番号を意味する。従って、エントリ・ポイント3102は、ファイル2D541に含まれるIピクチャのPTSとアドレス、すなわちSPNとの間の対応関係を表す。
エントリ・ポイント3102は、ファイル2D541内の全てのIピクチャに対して設定されていなくてもよい。但し、IピクチャがGOPの先頭に位置し、かつ、そのIピクチャの先頭を含むTSパケットが2Dエクステントの先頭に位置するときは、そのIピクチャにはエントリ・ポイント3102を設定しなければならない。
図31の(b)は、ファイル2D541に属するソースパケット群3110のうち、エントリ・マップ3030によって各EP_ID3105に対応付けられているものを示す模式図である。図31の(c)は、そのソースパケット群3110とBD−ROMディスク101上のデータ・ブロック群3120との間の対応関係を示す模式図である。再生装置102はファイル2D541から2D映像を再生するとき、エントリ・マップ3030を利用して、任意のシーンを表すフレームのPTSから、そのフレームを含むソースパケットのSPNを特定する。具体的には、再生装置102は、再生開始位置として特定のエントリ・ポイントのPTS、例えばPTS=360000が指定されたとき、まずエントリ・マップ3030から、そのPTSに対応付けられたSPN=3200を検索する。再生装置102は次に、そのSPNとソースパケット一つ当たりのデータ量192バイトとの積をセクタ一つ当たりのデータ量2048バイトで割ったときの商SPN/192×2048を求める。図8の(b)、(c)から理解されるとおり、その値は、メインTSのうち、そのSPNが割り当てられたソースパケットを含むアラインド・ユニットよりも前の部分が記録されたセクタの総数に等しい。図31の(b)に示されている例では、その値3200×192/2048=300は、SPNが0から3199までのソースパケット群3111が記録されたセクタの総数に等しい。再生装置102は続いてファイル2D541のファイル・エントリ内のアロケーション記述子を参照し、2Dエクステント群が記録されたセクタ群の先頭から数えて(上記の総数+1)番目のセクタのLBNを特定する。図31の(c)に示されている例では、2DエクステントEXT2D[0]、EXT2D[1]、EXT2D[2]、…としてアクセス可能なベースビュー・データ・ブロックL1、L2+L32D、L4、…が記録されたセクタ群のうち、先頭から数えて301番目のセクタのLBNが特定される。再生装置102はそのLBNをBD−ROMドライブ121に指定する。それにより、そのLBNのセクタから順にベースビュー・データ・ブロック群がアラインド・ユニット単位で読み出される。再生装置102は更に、最初に読み出されたアラインド・ユニットから、再生開始位置のエントリ・ポイントの示すソースパケットを選択してIピクチャに復号する。それ以降、後続のピクチャは、先に復号されたピクチャを利用して順次復号される。こうして、再生装置102はファイル2D541から特定のPTS以降の2D映像を再生できる。
エントリ・マップ3030は更に、早送り再生及び巻戻し再生等の特殊再生の効率的な処理に有利である。例えば2D再生モードの再生装置102は、まずエントリ・マップ3030を参照して、再生開始位置、例えばPTS=360000以降のPTSを含むエントリ・ポイント、EP_ID=2、3、…からSPN=3200、4800、…を順番に読み出す。再生装置102は次にファイル2D541のファイル・エントリを利用して、各SPNに対応するセクタのLBNを特定する。再生装置102は続いて、各LBNをBD−ROMドライブ121に指定する。それにより、各LBNのセクタからアラインド・ユニットが読み出される。再生装置102は更に各アラインド・ユニットから、各エントリ・ポイントの示すソースパケットを選択してIピクチャに復号する。こうして、再生装置102は2Dエクステント群EXT2D[n]自体を解析することなく、ファイル2D541からIピクチャを選択的に再生できる。
[オフセット・テーブル]
図32の(a)はオフセット・テーブル3041のデータ構造を示す模式図である。オフセット・テーブル3041は、3D再生モードの再生装置102によるクロッピング処理に利用される情報である。「クロッピング処理」とは、2D映像を表すデータから、レフトビューとライトビューとを表すプレーン・データの対を生成する処理をいう。「プレーン・データ」とは画素データの二次元配列を意味し、その配列のサイズは映像フレームの解像度に等しい。一組の画素データは色座標値とα値(不透明度)との組み合わせから成る。色座標値はRGB値又はYCrCb値で表される。クロッピング処理の対象には、メインTS内のPGストリーム、IGストリーム、及びセカンダリ・ビデオ・ストリームのそれぞれから生成されるプレーン・データ、並びに、BD−Jオブジェクトに従って生成されるイメージ・プレーン・データが含まれる。クロッピング処理はプレーン・データ内での各画素データの位置を水平方向に変化させる。従って、クロッピング処理によって得られるプレーン・データの対ではレフトビューとライトビューとの各表示位置が元の2D映像の表示位置から左右にずれている。それらの変位が視聴者に両眼視差として知覚されることにより、レフトビューとライトビューとの対がその視聴者には一つの3D映像として見える。
図32の(a)を参照するに、オフセット・テーブル3041は、PGストリーム、IGストリーム、及びセカンダリ・ビデオ・ストリームのPID別にテーブル3210を含む。各テーブル3210はPTS3201とオフセット値3202との対応表である。PTS3201は、PGストリーム、IGストリーム、及びセカンダリ・ビデオ・ストリームから生成される各プレーン・データの表示時刻を表す。オフセット値3202は、クロッピング処理による各画素データの水平方向の変位量を符号付きの画素数で表したものである。例えばプラス符号は右向きの変位を表し、マイナス符号はその逆である。オフセット値3202の符号は、3D映像の奥行きが画面よりも手前か奥かに依って決められている。以下、PTS3201とオフセット値3202との対3203を「オフセット・エントリ」という。
図32の(b)は、オフセット・エントリの有効区間を表す模式図である。各オフセット・エントリの有効区間は、STCで計られる時間において、そのオフセット・エントリのPTSの示す時刻から、次のオフセット・エントリのPTSの示す時刻までの期間である。プレーン・データのPTSがあるオフセット・エントリの有効区間に属するとき、クロッピング処理では、そのプレーン・データ内の画素データの表示位置が、そのオフセット・エントリのオフセット値だけ変化する。図32の(a)に示されている例では、オフセット・エントリ#1のPTSが180000であり、オフセット・エントリ#2のPTSが270000であり、オフセット・エントリ#3のPTSが360000である。その場合、図32の(b)に示されているように、オフセット・エントリ#1のオフセット値“+5”は、180000から270000までのSTCの範囲3204で有効であり、オフセット・エントリ#2のオフセット値“+3”は、270000から360000までのSTCの範囲3205で有効である。
[エクステント起点]
図33の(a)は、エクステント起点3042のデータ構造を示す模式図である。図33の(a)を参照するに、「エクステント起点(Extent_Start_Point)」3042は、ベースビュー・エクステントID(EXT1_ID)3311とSPN3312とを含む。EXT1_ID3311は、第1ファイルSS(01000.ssif)544Aに属する各ベースビュー・データ・ブロックに、先頭から順に割り当てられた通し番号である。SPN3312は各EXT1_ID3311に一つずつ割り当てられ、そのEXT1_ID3311で識別されるベースビュー・データ・ブロックの先端に位置するソースパケットのSPNに等しい。ここで、そのSPNは、第1ファイルSS544Aに属するベースビュー・データ・ブロック群に含まれる各ソースパケットに、先頭から順に割り当てられた通し番号である。
図16に示されているインターリーブ配置のデータ・ブロック群ではベースビュー・データ・ブロックはファイル2D(01000.m2ts)と第1ファイルSS544Aとに共有される。しかし、図21、24、26に示されてる配置1−3では、2D再生専用ブロックはファイル2D541にのみ属し、3D再生専用ブロックは第1ファイルSS544Aにのみ属する。従って、エクステント起点3042の示すSPN3312は、ファイル2D541に属する2Dエクステントの先端に位置するソースパケットのSPNとは一般に異なる。
図33の(b)は、第2クリップ情報ファイル(02000.clpi)、すなわちライトビュー・クリップ情報ファイル532に含まれるエクステント起点3320のデータ構造を示す模式図である。図33の(b)を参照するに、エクステント起点3320は、ライトビュー・エクステントID(EXT2_ID)3321とSPN3322とを含む。EXT2_ID3321は、第1ファイルSS544Aに属する各ライトビュー・データ・ブロックに、先頭から順に割り当てられた通し番号である。SPN3322は各EXT2_ID3321に一つずつ割り当てられ、そのEXT2_ID3321で識別されるライトビュー・データ・ブロックの先端に位置するソースパケットのSPNに等しい。ここで、そのSPNは、第1ファイルSS544Aに属するライトビュー・データ・ブロック群に含まれる各ソースパケットに、先頭から順に割り当てられた通し番号である。
図33の(d)は、第1ファイルDEP(02000.m2ts)542に属するライトビュー・エクステントEXT2[0]、EXT2[1]、…と、エクステント起点3320の示すSPN3322との間の対応関係を表す模式図である。図16、21、24、26のいずれに示されているデータ・ブロック群でも、ライトビュー・データ・ブロックは第1ファイルDEP542と第1ファイルSS544Aとに共有される。従って、図33の(d)に示されているように、エクステント起点3320の示す各SPN3322は、各ライトビュー・エクステントEXT2[0]、EXT2[1]、…の先端に位置するソースパケットのSPNに等しい。
2Dクリップ情報ファイル531のエクステント起点3042とライトビュー・クリップ情報ファイル532のエクステント起点3320とは、以下に説明するように、第1ファイルSS544Aから3D映像が再生されるとき、各3Dエクステントに含まれるデータ・ブロックの境界の検出に利用される。
図33の(e)は、第1ファイルSS544Aに属する3DエクステントEXTSS[0]、EXTSS[1]、…とBD−ROMディスク101上のデータ・ブロック群3350との間の対応関係の一例を示す模式図である。図33の(e)を参照するに、データ・ブロック群3350は、図21に示されている配置1と同様である。尚、以下の説明は、インターリーブ配置、及び他の配置2、3でも同様に成立する。データ・ブロック群3350では、隣接するライトビュー・データ・ブロックとベースビュー・データ・ブロックとの対R1+L1、R2+L2、R3+L3SS、R4+L4がそれぞれ、3DエクステントEXTSS[0]、EXTSS[1]、EXTSS[2]、EXTSS[3]としてアクセス可能である。更に、n番目の3DエクステントEXTSS[n](n=0、1、2、…)では、ベースビュー・データ・ブロックL(n+1)に含まれるソースパケットの数は、エクステント起点3042において、EXT1_ID=n+1、nのそれぞれに対応するSPN間の差A(n+1)−Anに等しい(ここで、A0=0)。一方、ライトビュー・データ・ブロックR(n+1)に含まれるソースパケットの数は、エクステント起点3320において、EXT2_ID=n+1、nのそれぞれに対応するSPN間の差B(n+1)−Bnに等しい(ここで、B0=0)。
L/Rモードの再生装置102は第1ファイルSS544Aから3D映像を再生するとき、各クリップ情報ファイル531、532のエントリ・マップに加え、エクステント起点3042、3320を利用して、任意のシーンのライトビューを表すフレームのPTSから、そのフレームを含むライトビュー・データ・ブロックが記録されたセクタのLBNを特定する。具体的には、再生装置102はまず、例えばライトビュー・クリップ情報ファイル532のエントリ・マップから、そのPTSに対応付けられたSPNを検索する。仮に、そのSPNの示すソースパケットが第1ファイルDEP542の3番目のライトビュー・エクステントEXT2[2]、すなわちライトビュー・データ・ブロックR3に含まれる場合を想定する。再生装置102は次に、ライトビュー・クリップ情報ファイル532のエクステント起点3320の示すSPN3322の中から、目標のSPN以下で最大のもの“B2”と、それに対応するEXT2_ID“2”とを検索する。再生装置102は続いて、2Dクリップ情報ファイル531のエクステント起点3042から、そのEXT2_ID“2”と等しいEXT1_IDに対応するSPN3312の値“A2”を検索する。再生装置102は更に、検索されたSPN3024、3320の値の和B2+A2を求める。図33の(e)から理解されるように、その和B2+A2は、3Dエクステント群EXTSS[0]、EXTSS[1]、…に含まれるデータ・ブロックのうち、3番目のライトビュー・データ・ブロックR3よりも前に配置されたものに含まれるソースパケットの総数に等しい。従って、その和B2+A2とソースパケット一つ当たりのデータ量192バイトとの積をセクタ一つ当たりのデータ量2048バイトで割ったときの商(B2+A2)×192/2048は、3Dエクステント群の先頭から3番目のライトビュー・データ・ブロックR3の直前までのセクタ数に等しい。この商を利用して第1ファイルSS544Aのファイル・エントリ内のアロケーション記述子を辿れば、そのライトビュー・データ・ブロックR3の先端が記録されたセクタのLBNを特定することができる。
再生装置102は、上記のようにLBNを特定した後、そのLBNをBD−ROMドライブ121に指定する。それにより、そのLBNのセクタ以降に記録された3Dエクステント群、すなわち3番目のライトビュー・データ・ブロックR3以降の3Dエクステント群がアラインド・ユニット単位で読み出される。
再生装置102は更にエクステント起点3042、3320を利用して、読み出された各3Dエクステントから、ディペンデントビュー・データ・ブロックとベースビュー・データ・ブロックとを交互に抽出する。例えば、図33の(e)に示されているデータ・ブロック群3350から3Dエクステント群EXTSS[n](n=0、1、2、…)が順番に読み出されるときを想定する。再生装置102はまず、最初の3DエクステントEXTSS[0]の先頭からB1個のソースパケットを最初のディペンデントビュー・データ・ブロックR1として抽出する。再生装置102は次に、B1番目のソースパケットと、それに続く(A1−1)個のソースパケットとの計A1個のソースパケットを最初のベースビュー・データ・ブロックL1として抽出する。再生装置102は続いて、(B1+A1)番目のソースパケットと、それに続く(B2−B1−1)個のソースパケットとの計(B2−B1)個のソースパケットを二番目のディペンデントビュー・データ・ブロックR2として抽出する。再生装置102は更に、(A1+B2)番目のソースパケットと、それに続く(A2−A1−1)個のソースパケットとの計(A2−A1)個のソースパケットを二番目のベースビュー・データ・ブロックL2として抽出する。それ以降も再生装置102は同様に、読み出されるソースパケットの数から各3Dエクステント内のデータ・ブロック間の境界を検出して、ディペンデントビューとベースビューとの各データ・ブロックを交互に抽出する。抽出されたベースビュー・データ・ブロックとライトビュー・データ・ブロックとはパラレルにシステム・ターゲット・デコーダに渡されて復号される。
こうして、L/Rモードの再生装置102は第1ファイルSS544Aから特定のPTS以降の3D映像を再生できる。その結果、再生装置102は、BD−ROMドライブ121の制御に関する上記の利点(A)、(B)を実際に享受できる。
≪ファイル・ベース≫
図33の(c)は、L/Rモードの再生装置102によって第1ファイルSS544Aから抽出されたベースビュー・データ・ブロックL1、L2、…を表す模式図である。図33の(e)に示されているデータ・ブロック群3350は2D再生専用ブロックL32Dと3D再生専用ブロックL3SSとの両方を含む。しかし、図33の(c)に示されているベースビュー・データ・ブロック群は、ファイル2D541の2Dエクステント群とは異なり、2D再生専用ブロックL32Dに代えて3D再生専用ブロックL3SSを含む。従って、エクステント起点3042の示すSPN3312は、各ベースビュー・データ・ブロックの先端に位置するソースパケットのSPNに等しい。図33の(c)に示されているベースビュー・データ・ブロック群のように、エクステント起点を利用して一つのファイルSSから抽出されるベースビュー・データ・ブロック群を「ファイル・ベース」という。更に、ファイル・ベースに含まれるベースビュー・データ・ブロックを「ベースビュー・エクステント」という。各ベースビュー・エクステントは、図33の(c)に示されているように、2Dクリップ情報ファイル内のエクステント起点によって参照される。
ベースビュー・エクステントは、2D再生専用ブロックと3D再生専用ブロックとを除き、2Dエクステントと実体、すなわちベースビュー・データ・ブロックを共有する。更に、互いに対応する2D再生専用ブロックと3D再生専用ブロックとはビット単位で一致する。従って、ファイル・ベースはファイル2Dと同じメインTSを含む。しかし、ベースビュー・エクステントは2Dエクステントとは異なり、いずれのファイルのファイル・エントリ内のアロケーション記述子によっても参照されない。上記のとおり、ベースビュー・エクステントは、クリップ情報ファイル内のエクステント起点を利用して、ファイルSS内の3Dエクステントから抽出される。このように、ファイル・ベースは、図4に示されている本来のファイルとは異なり、ファイル・エントリを含まず、かつ、ベースビュー・エクステントの参照にエクステント起点を必要とする。それらの意味で、ファイル・ベースは「仮想的なファイル」である。特にファイル・ベースはファイルシステムでは認識されず、図5に示されているディレクトリ/ファイル構造には現れない。
BD−ROMディスク101上に記録された3D映像コンテンツは、メインTSに対するサブTSを一種類だけ含むものでもよい。図34は、そのコンテンツを含むデータ・ブロック群の配置の一例を示す模式図である。図34を参照するに、データ・ブロック群3400は、図16、21に示されているものとは異なり、ディペンデントビュー・データ・ブロックD[n](n=…、0、1、2、3、…)とベースビュー・データ・ブロックB[n]とを一種類ずつ含む。層境界LBの前にはディペンデントビュー・データ・ブロック群…、D[0]、D[1]とベースビュー・データ・ブロック群…、B[0]、B[1]とがインターリーブ配置で記録され、第1の3Dエクステント・ブロック3401を構成している。第1の3Dエクステント・ブロック3401の後端B[1]と層境界LBとの間には2D再生専用ブロックB[2]2Dが配置されている。一方、層境界LBの後にはディペンデントビュー・データ・ブロック群D[2]、D[3]、…とベースビュー・データ・ブロック群B[2]SS、B[3]、…とがインターリーブ配置で記録され、第2の3Dエクステント・ブロック3402を構成している。第2の3Dエクステント・ブロック3402内の先頭のベースビュー・データ・ブロックB[2]SSは3D再生専用ブロックであり、2D再生専用ブロックB[2]2Dとビット単位で一致する。
図34には、データ・ブロック群3400とファイル2D3410のエクステント群との間の対応関係も示されている。第1の3Dエクステント・ブロック3401内のベースビュー・データ・ブロック…、B[0]は、最後のものB[1]を除き、単独で一つの2Dエクステント…、EXT2D[0]としてファイル2D3410に属する。第1の3Dエクステント・ブロック3401内の最後のベースビュー・データ・ブロックB[1]は、その直後の2D再生専用ブロックB[2]2Dとの対で一つの2DエクステントEXT2D[1]としてファイル2D3410に属する。第2の3Dエクステント・ブロック3402内のベースビュー・データ・ブロックB[3]、…は、3D再生専用ブロックB[2]SSを除き、2DエクステントEXT2D[2]、…としてファイル2D3410に属する。各2Dエクステントはファイル2D3410のファイル・エントリ内のアロケーション記述子を参照データとして利用することによってアクセス可能である。
図34には、データ・ブロック群3400とファイルDEP3412のエクステント群との間の対応関係も示されている。第1の3Dエクステント・ブロック3401内の各ディペンデントビュー・データ・ブロック…、D[0]、D[1]、及び第2の3Dエクステント・ブロック3402内の各ディペンデントビュー・データ・ブロックD[2]、D[3]、…はディペンデントビュー・エクステント…、EXT2[0]、EXT2[1]、EXT2[2]、…としてファイルDEP3412に属する。各ディペンデントビュー・エクステントはファイルDEP3412のファイル・エントリ内のアロケーション記述子を参照データとして利用することによってアクセス可能である。
図34には、データ・ブロック群3400とファイルSS3420のエクステント群との間の対応関係も示されている。データ・ブロック群3400は、図16に示されているものとは異なり、デプスマップ・データ・ブロックを含まない。従って、いずれの3Dエクステント・ブロック3401、3402内のインターリーブ配置でも、ディペンデントビュー・データ・ブロック…、D[0]、D[1]、D[2]、D[3]、…とベースビュー・データ・ブロック…、B[0]、B[1]、B[2]SS、B[3]、…とは交互に連続している。その場合、ファイルSS3420は、エクステントATC時間の等しいディペンデントビュー・データ・ブロックとベースビュー・データ・ブロックとの対が二つ以上連続する部分を一つの3Dエクステントとして含んでもよい。図34では、第1の3Dエクステント・ブロック3401内の二つの連続するディペンデントビュー・データ・ブロックとベースビュー・データ・ブロックとの対D[0]+B[0]、D[1]+B[1]が、一つの3DエクステントEXTSS[0]としてファイルSS3420に属する。更に、第2の3Dエクステント・ブロック3402内の二つの連続するディペンデントビュー・データ・ブロックとベースビュー・データ・ブロックとの対D[2]+B[2]SS、D[3]+B[3]が、一つの3DエクステントEXTSS[1]としてファイルSS3420に属する。3DエクステントEXTSS[0]、EXTSS[1]は、2DエクステントEXT2D[0]、EXT2D[1]、EXT2D[2]、EXT2D[3]とはベースビュー・データ・ブロックB[0]、B[1]、B[2]SS、B[3]を共有し、ディペンデントビュー・エクステントEXT2[0]、EXT2[1]、EXT2[2]、EXT2[3]とはディペンデントビュー・データ・ブロックD[0]、D[1]、D[2]、D[3]を共有する。各3DエクステントはファイルSS3420のファイル・エントリ内のアロケーション記述子を参照データとして利用してアクセス可能である。
再生装置102は3DエクステントEXTSS[0]、EXTSS[1]を読み込んだ後、ファイル2D3410とファイルDEP3412とのそれぞれに対応するクリップ情報ファイル内のエクステント起点を利用して、各3DエクステントEXTSS[0]、EXTSS[1]からベースビュー・データ・ブロックB[0]、B[1]、B[2]SS、B[3]を抽出する。それらのベースビュー・データ・ブロックB[0]、B[1]、B[2]SS、B[3]はベースビュー・エクステントEXT1[0]、EXT1[1]、EXT1[2]、EXT1[3]としてファイル・ベース3411に属する。各ベースビュー・エクステントEXT1[0]、EXT1[1]、EXT1[2]、EXT1[3]は、ファイル2D3410に対応する2Dクリップ情報ファイル内のエクステント起点によって参照される。
以下、特に区別する必要がない限り、ベースビュー・データ・ブロックは(2D再生専用ブロックを除いて)ベースビュー・エクステントと同一視し、ディペンデントビュー・データ・ブロックはディペンデントビュー・エクステントと同一視する。
≪ディペンデントビュー・クリップ情報ファイル≫
ディペンデントビュー・クリップ情報ファイルは、図30−33に示されている2Dクリップ情報ファイルとデータ構造が同様である。従って、以下の説明では、ディペンデントビュー・クリップ情報ファイルと2Dクリップ情報ファイルとの間の相違点に触れ、同様な点については上記の説明を援用する。
ディペンデントビュー・クリップ情報ファイルは2Dクリップ情報ファイルとは次の三点(i)、(ii)、(iii)で異なる:(i)ストリーム属性情報に条件が課せられている;(ii)エントリ・ポイントに条件が課せられている;(iii)3Dメタデータがオフセット・テーブルを含まない。
(i)ベースビュー・ビデオ・ストリームとディペンデントビュー・ビデオ・ストリームとがL/Rモードの再生装置102によって3D映像の再生に利用されるべきものであるとき、図9に示されているとおり、ディペンデントビュー・ビデオ・ストリームはベースビュー・ビデオ・ストリームを利用して圧縮されている。そのとき、ディペンデントビュー・ビデオ・ストリームはベースビュー・ビデオ・ストリームとビデオ・ストリーム属性が等しく揃えられる。ここで、ベースビュー・ビデオ・ストリームに関するビデオ・ストリーム属性情報は、2Dクリップ情報ファイルのストリーム属性情報3020内でPID=0x1011に対応付けられている。ディペンデントビュー・ビデオ・ストリームに関するビデオ・ストリーム属性情報は、ディペンデントビュー・クリップ情報ファイルのストリーム属性情報内でPID=0x1012又は0x1013に対応付けられている。従って、それらのビデオ・ストリーム属性情報間では、図30に示されている各項目、すなわち、コーデック、解像度、アスペクト比、及びフレームレートが一致しなければならない。コーデックの種類が一致していれば、ベースビュー・ビデオ・ストリームとディペンデントビュー・ビデオ・ストリームとのピクチャ間に符号化での参照関係が成立するので、各ピクチャを復号することができる。解像度、アスペクト比、及びフレームレートがいずれも一致していれば、左右の映像の画面表示を同期させることができる。それ故、それらの映像を3D映像として視聴者に違和感を与えることなく見せることができる。
(ii)ディペンデントビュー・クリップ情報ファイルのエントリ・マップは、ディペンデントビュー・ビデオ・ストリームに割り当てられたテーブルを含む。そのテーブルは、図31の(a)に示されているもの3100と同様に、エントリ・マップ・ヘッダとエントリ・ポイントとを含む。エントリ・マップ・ヘッダは、対応するディペンデントビュー・ビデオ・ストリームのPID、すなわち0x1012又は0x1013を示す。各エントリ・ポイントは一対のPTSとSPNとを一つのEP_IDに対応付けている。各エントリ・ポイントのPTSは、ディペンデントビュー・ビデオ・ストリームに含まれるいずれかのGOPの先頭のピクチャのPTSと等しい。各エントリ・ポイントのSPNは、同じエントリ・ポイントに属するPTSの示すピクチャが格納されたソースパケット群の先頭のSPNに等しい。ここで、SPNは、ファイルDEPに属するソースパケット群、すなわちサブTSを構成するソースパケット群に先頭から順に割り当てられた通し番号を意味する。各エントリ・ポイントのPTSは、2Dクリップ情報ファイルのエントリ・マップのうち、ベースビュー・ビデオ・ストリームに割り当てられたテーブル内のエントリ・ポイントのPTSと一致しなければならない。すなわち、同じ3D・VAUに含まれる一対のピクチャの一方を含むソースパケット群の先頭にエントリ・ポイントが設定されているときは、常に、他方を含むソースパケット群の先頭にもエントリ・ポイントが設定されていなければならない。
図35は、ベースビュー・ビデオ・ストリーム3510とディペンデントビュー・ビデオ・ストリーム3520とに設定されたエントリ・ポイントの例を示す模式図である。各ビデオ・ストリーム3510、3520では、先頭から数えて同じ順番のGOPが同じ再生期間の映像を表す。図35を参照するに、ベースビュー・ビデオ・ストリーム3510では、先頭から数えて奇数番目に位置するGOP#1、GOP#3、GOP#5の各先頭にエントリ・ポイント3501B、3503B、3505Bが設定されている。それに併せて、ディペンデントビュー・ビデオ・ストリーム3520でも、先頭から数えて奇数番目に位置するGOP#1、GOP#3、GOP#5の各先頭にエントリ・ポイント3501D、3503D、3505Dが設定されている。その場合、再生装置102は、例えばGOP#3から3D映像の再生を開始するとき、対応するエントリ・ポイント3503B、3503DのSPNからファイルSS内の再生開始位置のアドレスを直ちに算定できる。特にエントリ・ポイント3503B、3503Dがいずれもデータ・ブロックの先端に設定されているとき、図33の(e)から理解されるとおり、エントリ・ポイント3503B、3503DのSPNの和が、ファイルSSの先頭から再生開始位置までの部分に含まれるソースパケットの数に等しい。図33の(e)の説明で述べたとおり、そのソースパケットの数からは、ファイルSS内の再生開始位置の部分が記録されたセクタのLBNを算定することができる。こうして、3D映像の再生においても、飛び込み再生等、ビデオ・ストリームのランダムアクセスを要する処理の応答速度を向上させることができる。
≪2Dプレイリスト・ファイル≫
図36は、2Dプレイリスト・ファイルのデータ構造を示す模式図である。図5に示されている第1プレイリスト・ファイル(00001.mpls)521はこのデータ構造を持つ。図36を参照するに、2Dプレイリスト・ファイル521はメインパス3601と二つのサブパス3602、3603とを含む。
メインパス3601はプレイアイテム情報(PI)の配列であり、ファイル2D541の主要な再生経路、すなわち再生対象の部分とその再生順とを規定する。各PIは固有のプレイアイテムID=#N(N=1、2、3、…)で識別される。各PI#Nは主要な再生経路の異なる再生区間を一対のPTSで規定する。その対の一方はその再生区間の開始時刻(In−Time)を表し、他方は終了時刻(Out−Time)を表す。更に、メインパス3601内でのPIの順序は、対応する再生区間の再生経路内での順序を表す。
各サブパス3602、3603はサブプレイアイテム情報(SUB_PI)の配列であり、ファイル2D541の主要な再生経路に並列に付随可能な再生経路を規定する。その再生経路は、メインパス3601の表すファイル2D541の部分とは別の部分、又は別のファイル2Dに多重化されたストリーム・データの部分とその再生順とを意味する。そのストリーム・データは、メインパス3601に従ってファイル2D541から再生される2D映像と同時に再生されるべき別の2D映像を表す。その別の2D映像は例えば、ピクチャ・イン・ピクチャ方式における副映像、ブラウザ画面、ポップアップ・メニュー、又は字幕を含む。サブパス3602、3603には2Dプレイリスト・ファイル521への登録順に通し番号「0」、「1」が振られている。その通し番号はサブパスIDとして各サブパス3602、3603の識別に利用される。各サブパス3602、3603では、各SUB_PIが固有のサブプレイアイテムID=#M(M=1、2、3、…)で識別される。各SUB_PI#Mは、再生経路の異なる再生区間を一対のPTSで規定する。その対の一方はその再生区間の再生開始時刻を表し、他方は再生終了時刻を表す。更に、各サブパス3602、3603内でのSUB_PIの順序は、対応する再生区間の再生経路内での順序を表す。
図37は、PI#Nのデータ構造を示す模式図である。図37を参照するに、PI#Nは、参照クリップ情報3701、再生開始時刻(In_Time)3702、再生終了時刻(Out_Time)3703、コネクション・コンディション3704、及びストリーム選択テーブル(以下、STN(Stream Number)テーブルと略す。)3705を含む。参照クリップ情報3701は、2Dクリップ情報ファイル531を識別するための情報である。再生開始時刻3702と再生終了時刻3703とは、ファイル2D541の再生対象部分の先端と後端との各PTSを示す。コネクション・コンディション3704は、再生開始時刻3702と再生終了時刻3703とによって規定された再生区間での映像を、一つ前のPI#(N−1)によって規定された再生区間での映像に接続するときの条件を規定する。STNテーブル3705は、再生開始時刻3702から再生終了時刻3703までの間に再生装置102内のデコーダによってファイル2D541から選択可能なエレメンタリ・ストリームのリストを表す。
SUB_PIのデータ構造は、図37に示されているPIのデータ構造と、参照クリップ情報、再生開始時刻、及び再生終了時刻を含む点で共通する。特にSUB_PIの再生開始時刻と再生終了時刻とは、PIのそれらと同じ時間軸上の値で表される。SUB_PIは更に「SPコネクション・コンディション」というフィールドを含む。SPコネクション・コンディションはPIのコネクション・コンディションと同じ意味を持つ。
[コネクション・コンディション]
コネクション・コンディション3704の値には「1」、「5」、「6」の三種類がある。コネクション・コンディション3704が「1」であるとき、PI#Nによって規定されるファイル2D541の部分から再生される映像は、直前のPI#(N−1)によって規定されるファイル2D541の部分から再生される映像とは必ずしもシームレスに接続されなくてもよい。一方、コネクション・コンディション3704が「5」又は「6」であるとき、それら両方の映像が必ずシームレスに接続されなければならない。
図38の(a)、(b)はそれぞれ、コネクション・コンディション3704が「5」、「6」であるときに接続対象の二つの再生区間3801、3802の間の関係を示す模式図である。ここで、PI#(N−1)はファイル2D541の第1部分3801を規定し、PI#Nはファイル2D541の第2部分3802を規定する。図38の(a)を参照するに、コネクション・コンディション3704が「5」であるとき、2つのPI#(N−1)、PI#Nの間でSTCが途切れていても良い。すなわち、第1部分3801の後端のPTS#1と第2部分3802の先端のPTS#2とは不連続であってもよい。但し、いくつかの制約条件が満たされねばならない。例えば、第1部分3801に続けて第2部分3802をデコーダに供給したときでも、そのデコーダが復号処理をスムーズに持続できるように、各部分3801、3802が作成されていなければならない。更に、第1部分3801に含まれるオーディオ・ストリームの最後のフレームを、第2部分3802に含まれるオーディオ・ストリームの先頭フレームと重複させなければならない。一方、図38の(b)を参照するに、コネクション・コンディション3704が「6」であるとき、第1部分3801と第2部分3802とは、デコーダの復号処理上、一連の部分として扱えるものでなければならない。すなわち、第1部分3801と第2部分3802との間ではSTCとATCとがいずれも連続でなければならない。同様に、SPコネクション・コンディションが「5」又は「6」であるとき、隣接する2つのSUB_PIによって規定されるファイル2Dの部分間では、STCとATCとがいずれも連続でなければならない。
[STNテーブル]
図37を再び参照するに、STNテーブル3705はストリーム登録情報の配列である。「ストリーム登録情報」とは、再生開始時刻3702から再生終了時刻3703までの間にメインTSから再生対象として選択可能なエレメンタリ・ストリームを個別に示す情報である。ストリーム番号(STN)3706はストリーム登録情報に個別に割り当てられた通し番号であり、再生装置102によって各エレメンタリ・ストリームの識別に利用される。STN3706は更に、同じ種類のエレメンタリ・ストリームの間では選択の優先順位を表す。ストリーム登録情報はストリーム・エントリ3709とストリーム属性情報3710と含む。ストリーム・エントリ3709はストリーム・パス情報3707とストリーム識別情報3708とを含む。ストリーム・パス情報3707は、選択対象のエレメンタリ・ストリームが属するファイル2Dを示す情報である。例えばストリーム・パス情報3707が“メインパス”を示すとき、そのファイル2Dは、参照クリップ情報3701の示す2Dクリップ情報ファイルに対応するものである。一方、ストリーム・パス情報3707が“サブパスID=1”を示すとき、選択対象のエレメンタリ・ストリームが属するファイル2Dは、サブパスID=1のサブパスに含まれるSUB_PIの参照クリップ情報が示す2Dクリップ情報ファイルに対応するものである。そのSUB_PIの規定する再生開始時刻又は再生終了時刻のいずれかは、STNテーブル3705を含むPIの規定する再生開始時刻3702から再生終了時刻3703までの期間に含まれる。ストリーム識別情報3708は、ストリーム・パス情報3707によって特定されるファイル2Dに多重化されているエレメンタリ・ストリームのPIDを示す。このPIDの示すエレメンタリ・ストリームが再生開始時刻3702から再生終了時刻3703までの間に選択可能である。ストリーム属性情報3710は各エレメンタリ・ストリームの属性情報を表す。例えば、オーディオ・ストリーム、PGストリーム、及びIGストリームの各属性情報は言語の種類を示す。
[2Dプレイリスト・ファイルに従った2D映像の再生]
図39は、2Dプレイリスト・ファイル(00001.mpls)521の示すPTSと、ファイル2D(01000.m2ts)541から再生される部分との間の対応関係を示す模式図である。図39を参照するに、2Dプレイリスト・ファイル521のメインパス3601では、PI#1は、再生開始時刻IN1を示すPTS#1と、再生終了時刻OUT1を示すPTS#2とを規定する。PI#1の参照クリップ情報3701は2Dクリップ情報ファイル(01000.clpi)531を示す。再生装置102は2Dプレイリスト・ファイル521に従って2D映像を再生するとき、まずPI#1からPTS#1、#2を読み出す。再生装置102は次に、2Dクリップ情報ファイル531のエントリ・マップを参照して、PTS#1、#2に対応するファイル2D541内のSPN#1、#2を検索する。再生装置102は続いて、SPN#1、#2から、それぞれに対応するセクタ数を算定する。再生装置102は更にそれらのセクタ数とファイル2D541のファイル・エントリ内のアロケーション記述子とを利用して、再生対象の2Dエクステント群EXT2D[0]、…、EXT2D[n]が記録されたセクタ群P1の先端のLBN#1と後端のLBN#2とを特定する。セクタ数の算定とLBNの特定とは、図31の(b)、(c)を用いて説明したとおりである。再生装置102は最後に、LBN#1からLBN#2までの範囲をBD−ROMドライブ121に指定する。それにより、その範囲のセクタ群P1から、2Dエクステント群EXT2D[0]、…、EXT2D[n]に属するソースパケット群が読み出される。同様に、PI#2の示すPTS#3、#4の対は、まず2Dクリップ情報ファイル531のエントリ・マップを利用してSPN#3、#4の対に変換される。次にファイル2D541のファイル・エントリ内のアロケーション記述子を利用して、SPN#3、#4の対がLBN#3、#4の対に変換される。更に、LBN#3からLBN#4までの範囲のセクタ群P2から、2Dエクステント群に属するソースパケット群が読み出される。PI#3の示すPTS#5、#6の対からSPN#5、#6の対への変換、SPN#5、#6の対からLBN#5、#6の対への変換、及びLBN#5からLBN#6までの範囲のセクタ群P3からのソースパケット群の読み出しも同様である。こうして、再生装置102は2Dプレイリスト・ファイル521のメインパス3601に従ってファイル2D541から2D映像を再生できる。
2Dプレイリスト・ファイル521はエントリ・マーク3901を含んでもよい。エントリ・マーク3901は、メインパス3601のうち、実際に再生が開始されるべき時点を示す。例えば図39に示されているように、PI#1に対して複数のエントリ・マーク3901が設定されてもよい。エントリ・マーク3901は特に頭出し再生において、再生開始位置の検索に利用される。例えば2Dプレイリスト・ファイル521が映画タイトルの再生経路を規定するとき、エントリ・マーク3901は各チャプタの先頭に付与される。それにより、再生装置102はその映画タイトルをチャプタごとに再生できる。
≪3Dプレイリスト・ファイル≫
図40は、3Dプレイリスト・ファイル4000のデータ構造を示す模式図である。図5に示されている第2プレイリスト・ファイル(00002.mpls)522と第2プレイリスト・ファイル(00003.mpls)523とはいずれも、この3Dプレイリスト・ファイルと同様なデータ構造を持つ。図40を参照するに、3Dプレイリスト・ファイル4000は、メインパス4001、サブパス4002、及び拡張データ4003を含む。
メインパス4001は、図6の(a)に示されているメインTSの再生経路を規定する。従って、メインパス4001は、図36に示されている2Dプレイリスト・ファイルのメインパス3601に等しい。2D再生モードの再生装置102は3Dプレイリスト・ファイル4000のメインパス4001に従ってファイル2D541から2D映像を再生できる。
サブパス4002は、図6の(b)、(c)に示されているサブTSの再生経路、すなわち第1ファイルDEP542又は第2ファイルDEP543のいずれかの再生経路を規定する。サブパス4002のデータ構造は、図36に示されている2Dプレイリスト・ファイルのサブパス3602、3603のデータ構造と同様である。従って、その同様なデータ構造の詳細、特にSUB_PIのデータ構造の詳細についての説明は、図36を用いた説明を援用する。
サブパス4002のSUB_PI#N(N=1、2、3、…)はメインパス4001のPI#Nと一対一に対応する。更に、各SUB_PI#Nの規定する再生開始時刻と再生終了時刻とはそれぞれ、対応するPI#Nの規定する再生開始時刻と再生終了時刻とに等しい。サブパス4002はその上、サブパス・タイプ4021を含む。「サブパス・タイプ」は一般に、メインパスとサブパスとの間で再生処理が同期すべきか否かを示す。3Dプレイリスト・ファイル4000では特にサブパス・タイプ4021が3D再生モードの種類、すなわちサブパス4002に従って再生されるべきディペンデントビュー・ビデオ・ストリームの種類を示す。図40では、サブパス・タイプ4021は、その値が「3D・L/R」であるので、3D再生モードがL/Rモードであること、すなわちライトビュー・ビデオ・ストリームが再生対象であることを示す。一方、サブパス・タイプ4021は、その値が「3Dデプス」であるときは、3D再生モードがデプス・モードであること、すなわちデプスマップ・ストリームが再生対象であることを示す。3D再生モードの再生装置102は、サブパス・タイプ4021の値が「3D・L/R」又は「3Dデプス」であることを検出したとき、メインパス4001に従った再生処理とサブパス4002に従った再生処理とを同期させる。
拡張データ4003は、3D再生モードの再生装置102によってのみ解釈される部分であり、2D再生モードの再生装置102には無視される。拡張データ4003は特に、拡張ストリーム選択テーブル4030を含む。「拡張ストリーム選択テーブル(STN_table_SS)」(以下、STNテーブルSSと略す。)は、3D再生モードにおいて、メインパス4001内の各PIの示すSTNテーブルに追加されるべきストリーム登録情報の配列である。このストリーム登録情報は、サブTSから再生対象として選択可能なエレメンタリ・ストリームを示す。
図41は、STNテーブルSS4030のデータ構造を示す模式図である。図41を参照するに、STNテーブルSS4030はストリーム登録情報列4101、4102、4103、…を含む。ストリーム登録情報列4101、4102、4103、…はメインパス4001内のPI#1、#2、#3、…に個別に対応し、3D再生モードの再生装置102により、対応するPI内のSTNテーブルに含まれるストリーム登録情報列と組み合わされて利用される。各PIに対するストリーム登録情報列4101は、ポップアップ期間のオフセット(Fixed_offset_during_Popup)4111、ディペンデントビュー・ビデオ・ストリームのストリーム登録情報列4112、PGストリームのストリーム登録情報列4113、及びIGストリームのストリーム登録情報列4114を含む。
ポップアップ期間のオフセット4111は、IGストリームからポップアップ・メニューが再生されるか否かを示す。3D再生モードの再生装置102はそのオフセット4111の値に依ってビデオ・プレーンとPGプレーンとの表示モード(presentation mode)を変える。ここで、ビデオ・プレーンの表示モードにはベースビュー(B)−ディペンデントビュー(D)表示モードとB−B表示モードとの二種類があり、PGプレーンとIGプレーンとの各表示モードには、2プレーン・モード、1プレーン+オフセット・モード、及び1プレーン+ゼロ・オフセット・モードとの三種類がある。例えばポップアップ期間のオフセット4111の値が“0”であるとき、IGストリームからはポップアップ・メニューが再生されない。そのとき、ビデオ・プレーンの表示モードとしてB−D表示モードが選択され、PGプレーンの表示モードとして2プレーン・モード又は1プレーン+オフセット・モードが選択される。一方、ポップアップ期間のオフセット4111の値が“1”であるとき、IGストリームからポップアップ・メニューが再生される。そのとき、ビデオ・プレーンの表示モードとしてB−B表示モードが選択され、PGプレーンの表示モードとして1プレーン+ゼロ・オフセット・モードが選択される。
「B−D表示モード」では再生装置102が、レフトビューとライトビューとのビデオ・ストリームから復号されたプレーン・データを交互に出力する。従って、表示装置103の画面には、ビデオ・プレーンの表すレフトビューとライトビューとのフレームが交互に表示されるので、視聴者にはそれらが3D映像として見える。「B−B表示モード」では再生装置102が、動作モードを3D再生モードに維持したまま(特にフレームレートを3D再生時の値、例えば48フレーム/秒に維持したまま)、ベースビュー・ビデオ・ストリームから復号されたプレーン・データのみをフレーム当たり二回ずつ出力する。従って、表示装置103の画面には、ビデオ・プレーンについてはレフトビューとライトビューとのいずれかのフレームしか表示されないので、視聴者にはそれらが2D映像としてしか見えない。
「2プレーン・モード」では、サブTSがレフトビューとライトビューとのグラフィックス・ストリームを両方含むとき、再生装置102が各グラフィックス・ストリームからレフトビューとライトビューとのグラフィックス・プレーン・データを復号して交互に出力する。「1プレーン+オフセット・モード」では、再生装置102がクロッピング処理により、メインTS内のグラフィックス・ストリームからレフトビューとライトビューとのプレーン・データの対を生成して交互に出力する。いずれのモードでも、表示装置103の画面にはレフトビューとライトビューとのPGプレーンが交互に表示されるので、視聴者にはそれらが3D映像として見える。「1プレーン+ゼロ・オフセット・モード」では、再生装置102が、動作モードを3D再生モードに維持したまま、クロッピング処理を一時的に停止させ、メインTS内のグラフィックス・ストリームから復号されたプレーン・データをフレーム当たり二回ずつ出力する。従って、表示装置103の画面には、レフトビューとライトビューとのいずれかのPGプレーンしか表示されないので、視聴者にはそれらが2D映像としてしか見えない。
3D再生モードの再生装置102は、PIごとにポップアップ期間のオフセット4111を参照して、IGストリームからポップアップ・メニューが再生されるときはB−B表示モードと1プレーン+ゼロ・オフセット・モードとを選択する。それにより、ポップアップ・メニューが表示される間、他の3D映像が一時的に2D映像に変更されるので、ポップアップ・メニューの視認性・操作性が向上する。
ディペンデントビュー・ビデオ・ストリームのストリーム登録情報列4112、PGストリームのストリーム登録情報列4113、及びIGストリームのストリーム登録情報列4114はそれぞれ、サブTSから再生対象として選択可能なディペンデントビュー・ビデオ・ストリーム、PGストリーム、及びIGストリームを示すストリーム登録情報を含む。これらのストリーム登録情報列4112、4113、4114はそれぞれ、対応するPI内のSTNテーブルに含まれるストリーム登録情報列のうち、ベースビュー・ビデオ・ストリーム、PGストリーム、及びIGストリームを示すものと組み合わされて利用される。3D再生モードの再生装置102は、STNテーブル内のいずれかのストリーム登録情報を読み出すとき、そのストリーム登録情報に組み合わされたSTNテーブルSS内のストリーム登録情報列も自動的に読み出す。それにより、再生装置102は、2D再生モードを単に3D再生モードへ切り換えるとき、設定済みのSTN、及び言語等のストリーム属性を同一に維持できる。
図42の(a)は、ディペンデントビュー・ビデオ・ストリームのストリーム登録情報列4112のデータ構造を示す模式図である。図42の(a)を参照するに、このストリーム登録情報列4112は一般に複数のストリーム登録情報(SS_dependet_view_block)4201を含む。それらは、対応するPI内のストリーム登録情報のうち、ベースビュー・ビデオ・ストリームを示すものと同数である。各ストリーム登録情報4201は、STN4211、ストリーム・エントリ4212、及びストリーム属性情報4213を含む。STN4211はストリーム登録情報4201に個別に割り当てられた通し番号であり、対応するPI内の組み合わせ対象のストリーム登録情報のSTNと等しい。ストリーム・エントリ4212は、サブパスID参照情報(ref_to_Subpath_id)4221、ストリーム・ファイル参照情報(ref_to_subClip_entry_id)4222、及びPID(ref_to_stream_PID_subclip)4223を含む。サブパスID参照情報4221は、ディペンデントビュー・ビデオ・ストリームの再生経路を規定するサブパスのサブパスIDを示す。ストリーム・ファイル参照情報4222は、そのディペンデントビュー・ビデオ・ストリームが格納されたファイルDEPを識別するための情報である。PID4223は、そのディペンデントビュー・ビデオ・ストリームのPIDである。ストリーム属性情報4213はそのディペンデントビュー・ビデオ・ストリームの属性、例えばフレームレート、解像度、及びビデオフォーマットを含む。特にそれらは、対応するPI内の組み合わせ対象のストリーム登録情報の示すベースビュー・ビデオ・ストリームのものと共通である。
図42の(b)は、PGストリームのストリーム登録情報列4113のデータ構造を示す模式図である。図42の(b)を参照するに、このストリーム登録情報列4113は一般に複数のストリーム登録情報4231を含む。それらは、対応するPI内のストリーム登録情報のうち、PGストリームを示すものと同数である。各ストリーム登録情報4231は、STN4241、立体視フラグ(is_SS_PG)4242、ベースビュー・ストリーム・エントリ(stream_entry_for_base_view)4243、ディペンデントビュー・ストリーム・エントリ(stream_entry_for_depentdent_view)4244、及びストリーム属性情報4245を含む。STN4241はストリーム登録情報4231に個別に割り当てられた通し番号であり、対応するPI内の組み合わせ対象のストリーム登録情報のSTNと等しい。立体視フラグ4242は、BD−ROMディスク101にベースビューとディペンデントビュー、例えばレフトビューとライトビューとのPGストリームが両方含まれているか否かを示す。立体視フラグ4242がオンであるとき、サブTSに両方のPGストリームが含まれている。従って、ベースビュー・ストリーム・エントリ4243、ディペンデントビュー・ストリーム・エントリ4244、及びストリーム属性情報4245のいずれのフィールドも再生装置によって読み出される。立体視フラグ4242がオフであるとき、それらのフィールド4243−4245はいずれも再生装置に無視される。ベースビュー・ストリーム・エントリ4243とディペンデントビュー・ストリーム・エントリ4244とはいずれも、サブパスID参照情報、ストリーム・ファイル参照情報、及びPIDを含む。サブパスID参照情報は、ベースビューとディペンデントビューとの各PGストリームの再生経路を規定するサブパスのサブパスIDを示す。ストリーム・ファイル参照情報は、各PGストリームが格納されたファイルDEPを識別するための情報である。PIDは各PGストリームのPIDである。ストリーム属性情報4245は各PGストリームの属性、例えば言語の種類を含む。
図42の(c)は、IGストリームのストリーム登録情報列4114のデータ構造を示す模式図である。図42の(c)を参照するに、このストリーム登録情報列4114は一般に複数のストリーム登録情報4251を含む。それらは、対応するPI内のストリーム登録情報のうち、IGストリームを示すものと同数である。各ストリーム登録情報4251は、STN4261、立体視フラグ(is_SS_IG)4262、ベースビュー・ストリーム・エントリ4263、ディペンデントビュー・ストリーム・エントリ4264、及びストリーム属性情報4265を含む。STN4261はストリーム登録情報4251に個別に割り当てられた通し番号であり、対応するPI内の組み合わせ対象のストリーム登録情報のSTNと等しい。立体視フラグ4262は、BD−ROMディスク101にベースビューとディペンデントビュー、例えばレフトビューとライトビューとのIGストリームが両方含まれているか否かを示す。立体視フラグ4262がオンであるとき、サブTSに両方のIGストリームが含まれている。従って、ベースビュー・ストリーム・エントリ4263、ディペンデントビュー・ストリーム・エントリ4264、及びストリーム属性情報4265のいずれのフィールドも再生装置によって読み出される。立体視フラグ4262がオフであるとき、それらのフィールド4263−4265はいずれも再生装置に無視される。ベースビュー・ストリーム・エントリ4263とディペンデントビュー・ストリーム・エントリ4264とはいずれも、サブパスID参照情報、ストリーム・ファイル参照情報、及びPIDを含む。サブパスID参照情報は、ベースビューとディペンデントビューとの各IGストリームの再生経路を規定するサブパスのサブパスIDを示す。ストリーム・ファイル参照情報は、各IGストリームが格納されたファイルDEPを識別するための情報である。PIDは各IGストリームのPIDである。ストリーム属性情報4265は各IGストリームの属性、例えば言語の種類を含む。
[3Dプレイリスト・ファイルに従った3D映像の再生]
図43は、3Dプレイリスト・ファイル(00002.mpls)522の示すPTSと、第1ファイルSS(01000.ssif)から再生される部分との間の対応関係を示す模式図である。図43を参照するに、3Dプレイリスト・ファイル522のメインパス4301では、PI#1は、再生開始時刻IN1を示すPTS#1と、再生終了時刻OUT1を示すPTS#2とを規定する。PI#1の参照クリップ情報は2Dクリップ情報ファイル(01000.clpi)531を示す。一方、サブパス・タイプが「3D・L/R」を示すサブパス4302では、SUB_PI#1が、PI#1と同じPTS#1、#2を規定する。SUB_PI#1の参照クリップ情報はライトビュー・クリップ情報ファイル(02000.clpi)532を示す。
再生装置102は3Dプレイリスト・ファイル522に従って3D映像を再生するとき、まずPI#1とSUB_PI#1とからPTS#1、#2を読み出す。再生装置102は次に2Dクリップ情報ファイル531のエントリ・マップを参照し、PTS#1、#2に対応するファイル2D541内のSPN#1、#2を検索する。それと並行して、再生装置102はライトビュー・クリップ情報ファイル532のエントリ・マップを参照し、PTS#1、#2に対応する第1ファイルDEP542内のSPN#11、#12を検索する。再生装置102は続いて、図33の(e)の説明で述べたように各クリップ情報ファイル531、532のエクステント起点3042、3320を利用して、SPN#1、#11から、第1ファイルSS544Aの先頭から再生開始位置までのソースパケット数SPN#21を算定する。再生装置102は同様に、SPN#2、#12から、第1ファイルSS544Aの先頭から再生終了位置までのソースパケット数SPN#22を算定する。再生装置102は更にSPN#21、#22のそれぞれに対応するセクタ数を算定する。再生装置102は続いて、それらのセクタ数と第1ファイルSS544Aのファイル・エントリ内のアロケーション記述子とを利用して、再生対象の3Dエクステント群EXTSS[0]、…、EXTSS[n]が記録されたセクタ群P11の先端のLBN#1と後端のLBN#2とを特定する。セクタ数の算定とLBNの特定とは、図33の(e)の説明で述べたものと同様である。再生装置102は最後に、LBN#1からLBN#2までの範囲をBD−ROMドライブ121に指定する。それにより、その範囲のセクタ群P11から、3Dエクステント群EXTSS[0]、…、EXTSS[n]に属するソースパケット群が読み出される。同様に、PI#2とSUB_PI#2との示すPTS#3、#4の対は、まずクリップ情報ファイル531、532の各エントリ・マップを利用してSPN#3、#4の対とSPN#13、#14の対とに変換される。次に、SPN#3、#13からは第1ファイルSS544Aの先頭から再生開始位置までのソースパケット数SPN#23が算定され、SPN#4、#14からは第1ファイルSS544Aの先頭から再生終了位置までのソースパケット数SPN#24が算定される。続いて、第1ファイルSS544A1のファイル・エントリ内のアロケーション記述子を利用して、SPN#23、#24の対がLBN#3、#4の対に変換される。更に、LBN#3からLBN#4までの範囲のセクタ群P12から、3Dエクステント群に属するソースパケット群が読み出される。
上記の読み出し処理と並行して、再生装置102は、図33の(e)の説明で述べたように各クリップ情報ファイル531、532のエクステント起点3042、3320を利用して、各3Dエクステントからベースビュー・エクステントを抽出し、残りのライトビュー・エクステントとパラレルに復号する。こうして、再生装置102は、3Dプレイリスト・ファイル522に従って第1ファイルSS544Aから3D映像を再生できる。
≪インデックス・テーブル≫
図44は、図5に示されているインデックス・ファイル(index.bdmv)511内のインデックス・テーブル4410を示す模式図である。図44を参照するに、インデックス・テーブル4410は、「ファーストプレイ」4401、「トップメニュー」4402、及び「タイトルk」44303(k=1、2、…、n:nは1以上の整数)という項目を含む。各項目にはムービーオブジェクトMVO−2D、MVO−3D、…、又はBD−JオブジェクトBDJO−2D、BDJO−3D、…のいずれかが対応付けられている。ユーザの操作又はアプリケーション・プログラムによってタイトル又はメニューが呼び出される度に、再生装置102の制御部はインデックス・テーブル4410の対応する項目を参照する。制御部は更に、その項目に対応付けられているオブジェクトをBD−ROMディスク101から呼び出し、それに従って様々な処理を実行する。具体的には、項目「ファーストプレイ」4401には、ディスク101がBD−ROMドライブ121へ挿入された時に呼び出されるべきオブジェクトが指定されている。項目「トップメニュー」4402には、例えばユーザの操作で「メニューに戻れ」というコマンドが入力された時に表示装置103にメニューを表示させるためのオブジェクトが指定されている。項目「タイトルk」4403には、ディスク101上のコンテンツを構成するタイトルが個別に割り当てられている。例えばユーザの操作によって再生対象のタイトルが指定されたとき、そのタイトルが割り当てられている項目「タイトルk」には、そのタイトルに対応するAVストリーム・ファイルから映像を再生するためのオブジェクトが指定されている。
図44に示されている例では、項目「タイトル1」と項目「タイトル2」とが2D映像のタイトルに割り当てられている。項目「タイトル1」に対応付けられているムービーオブジェクトMVO−2Dは、2Dプレイリスト・ファイル(00001.mpls)521を用いた2D映像の再生処理に関する命令群を含む。再生装置102によって項目「タイトル1」が参照されたとき、そのムービーオブジェクトMVO−2Dに従い、2Dプレイリスト・ファイル521がディスク101から読み出され、それに規定された再生経路に沿って2D映像の再生処理が実行される。項目「タイトル2」に対応付けられているBD−JオブジェクトBDJO−2Dは、2Dプレイリスト・ファイル521を用いた2D映像の再生処理に関するアプリケーション管理テーブルを含む。再生装置102によって項目「タイトル2」が参照されたとき、そのBD−JオブジェクトBDJO−2D内のアプリケーション管理テーブルに従ってJARファイル561からJavaアプリケーション・プログラムが呼び出されて実行される。それにより、2Dプレイリスト・ファイル521がディスク101から読み出され、それに規定された再生経路に沿って2D映像の再生処理が実行される。
図44に示されている例では更に、項目「タイトル3」と項目「タイトル4」とが3D映像のタイトルに割り当てられている。項目「タイトル3」に対応付けられているムービーオブジェクトMVO−3Dは、2Dプレイリスト・ファイル521を用いた2D映像の再生処理に関する命令群に加え、3Dプレイリスト・ファイル(00002.mpls)522、(00003.mpls)523のいずれかを用いた3D映像の再生処理に関する命令群を含む。項目「タイトル4」に対応付けられているBD−JオブジェクトBDJO−3Dでは、アプリケーション管理テーブルが、2Dプレイリスト・ファイル521を用いた2D映像の再生処理に関するJavaアプリケーション・プログラムに加え、3Dプレイリスト・ファイル522、523のいずれかを用いた3D映像の再生処理に関するJavaアプリケーション・プログラムを規定する。
再生装置102によって項目「タイトル3」が参照されたとき、ムービーオブジェクトMVO−3Dに従い、まず次の四種類の判別処理が行われる:(1)再生装置102自身が3D映像の再生に対応しているか否か、(2)ユーザが3D映像の再生を選択しているか否か、(3)表示装置103が3D映像の再生に対応しているか否か、及び(4)再生装置102の3D映像再生モードがL/Rモードとデプス・モードとのいずれであるか。次にそれらの判別結果に応じていずれかのプレイリスト・ファイル521−523が再生対象として選択される。再生装置102によって項目「タイトル4」が参照されたとき、BD−JオブジェクトBDJO−3D内のアプリケーション管理テーブルに従ってJARファイル561からJavaアプリケーション・プログラムが呼び出されて実行される。それにより、まず上記の判別処理が行われ、次にその判別結果に応じたプレイリスト・ファイルの選択が行われる。
[3D映像タイトルの選択時でのプレイリスト・ファイルの選択]
図45は、3D映像のタイトルが選択されたときに行われる、再生対象のプレイリスト・ファイルの選択処理のフローチャートである。図44に示されているインデックス・テーブル4410では、項目「タイトル3」が参照されたときはムービーオブジェクトMVO−3Dに従ってその選択処理が実行され、項目「タイトル4」が参照されたときは、BD−JオブジェクトBDJO−3Dに規定されたJavaアプリケーション・プログラムに従ってその選択処理が実行される。
ここで、その選択処理の前提として、再生装置102が第1フラグと第2フラグとを含むときを想定する。第1フラグが“0”であるとき、再生装置102は2D映像の再生のみに対応可能であり、“1”であるとき、3D映像の再生にも対応可能である。第2フラグが“0”であるとき、再生装置102はL/Rモードであり、“1”であるとき、デプス・モードである。
ステップS4501では、再生装置102は第1フラグの値をチェックする。その値が0であるとき、処理はステップS4505へ進む。その値が1であるとき、処理はステップS4502へ進む。
ステップS4502では、再生装置102は表示装置103にメニューを表示させて、ユーザに2D映像と3D映像とのいずれかの再生を選択させる。ユーザがリモコン105等を操作して、2D映像の再生を選択したとき、処理はステップS4505へ進み、3D映像の再生を選択したとき、処理はステップS4503へ進む。
ステップS4503では、再生装置102は、表示装置103が3D映像の再生に対応しているかチェックする。具体的には、再生装置102はHDMIケーブル122を通して表示装置103との間でCECメッセージを交換し、表示装置103が3D映像の再生に対応しているか否かを表示装置103に問い合わせる。表示装置103が3D映像の再生に対応しているとき、処理はステップS4504へ進む。表示装置103が3D映像の再生に対応していないとき、処理はステップS4505へ進む。
ステップS4504では、再生装置102は第2フラグの値をチェックする。その値が0であるとき、処理はステップS4506へ進む。その値が1であるとき、処理はステップS4507へ進む。
ステップS4505では、再生装置102は2Dプレイリスト・ファイル521を再生対象として選択する。尚、そのとき、再生装置102は表示装置103に、3D映像の再生が選択されなかった理由を表示させてもよい。
ステップS4506では、再生装置102はL/Rモード用の3Dプレイリスト・ファイル522を再生対象として選択する。
ステップS4507では、再生装置102はデプス・モード用の3Dプレイリスト・ファイル523を再生対象として選択する。
<2D再生装置の構成>
2D再生モードの再生装置102はBD−ROMディスク101から2D映像コンテンツを再生するとき、2D再生装置として動作する。図46は、2D再生装置4600の機能ブロック図である。図46を参照するに、2D再生装置4600は、BD−ROMドライブ4601、再生部4600A、及び制御部4600Bを含む。再生部4600Aは、リード・バッファ4602、システム・ターゲット・デコーダ4603、及びプレーン加算部4610を含む。制御部4600Bは、動的シナリオ・メモリ4604、静的シナリオ・メモリ4605、プログラム実行部4606、再生制御部4607、プレーヤ変数記憶部4608、及びユーザイベント処理部4609を含む。再生部4600Aと制御部4600Bとは互いに異なる集積回路に実装されている。その他に、両者が単一の集積回路に統合されていてもよい。
BD−ROMドライブ4601は、内部にBD−ROMディスク101が挿入されたとき、そのディスク101にレーザ光を照射してその反射光の変化を検出する。更に、その反射光の光量の変化から、ディスク101に記録されたデータを読み取る。具体的には、BD−ROMドライブ4601は光ピックアップ、すなわち光学ヘッドを備えている。その光学ヘッドは、半導体レーザ、コリメータ・レンズ、ビーム・スプリッタ、対物レンズ、集光レンズ、及び光検出器を含む。半導体レーザから出射された光ビームは、コリメータ・レンズ、ビーム・スプリッタ、及び対物レンズを順に通ってディスク101の記録層に集められる。集められた光ビームはその記録層で反射/回折される。その反射/回折光は、対物レンズ、ビーム・スプリッタ、及び集光レンズを通って光検出器に集められる。光検出器は、その集光量に応じたレベルの再生信号を生成する。更に、その再生信号からデータが復調される。
BD−ROMドライブ4601は、再生制御部4607からの要求に従ってBD−ROMディスク101からデータを読み出す。そのデータのうち、ファイル2Dのエクステント、すなわち2Dエクステントはリード・バッファ4602へ転送され、動的シナリオ情報は動的シナリオ・メモリ4604へ転送され、静的シナリオ情報は静的シナリオ・メモリ4605へ転送される。「動的シナリオ情報」は、インデックス・ファイル、ムービーオブジェクト・ファイル、及びBD−Jオブジェクト・ファイルを含む。「静的シナリオ情報」は2Dプレイリスト・ファイルと2Dクリップ情報ファイルとを含む。
リード・バッファ4602、動的シナリオ・メモリ4604、及び静的シナリオ・メモリ4605はいずれもバッファ・メモリである。リード・バッファ4602としては再生部4600A内のメモリ素子が利用され、動的シナリオ・メモリ4604及び静的シナリオ・メモリ4605としては制御部4600B内のメモリ素子が利用される。その他に、それらのバッファ・メモリ4602、4604、4605として、単一のメモリ素子の異なる領域が利用されてもよい。リード・バッファ4602は2Dエクステントを格納し、動的シナリオ・メモリ4604は動的シナリオ情報を格納し、静的シナリオ・メモリ4605は静的シナリオ情報を格納する。
システム・ターゲット・デコーダ4603は、リード・バッファ4602から2Dエクステントをソースパケット単位で読み出して多重分離処理を行い、更に分離された各エレメンタリ・ストリームに対して復号処理を行う。ここで、各エレメンタリ・ストリームの復号に必要な情報、例えばコーデックの種類及びストリームの属性は予め、再生制御部4607からシステム・ターゲット・デコーダ4603へ転送されている。システム・ターゲット・デコーダ4603は更に、復号後のプライマリ・ビデオ・ストリーム、セカンダリ・ビデオ・ストリーム、IGストリーム、及びPGストリームをそれぞれ、VAUごとに、主映像プレーン・データ、副映像プレーン・データ、IGプレーン・データ、及びPGプレーン・データとして送出する。一方、システム・ターゲット・デコーダ4603は、復号後のプライマリ・オーディオ・ストリームとセカンダリ・オーディオ・ストリームとをミキシングして表示装置103の内蔵スピーカ103A等の音声出力装置へ送出する。その他に、システム・ターゲット・デコーダ4603はプログラム実行部4606からグラフィックス・データを受信する。そのグラフィックス・データは、GUI用のメニュー等のグラフィックスを画面に表示するためのものであり、JPEG又はPNG等のラスタデータで表現されている。システム・ターゲット・デコーダ4603はそのグラフィックス・データを処理してイメージ・プレーン・データとして送出する。尚、システム・ターゲット・デコーダ4603の詳細については後述する。
ユーザイベント処理部4609は、リモコン105又は再生装置102のフロントパネルを通してユーザの操作を検出し、その操作の種類に応じて、プログラム実行部4606又は再生制御部4607に処理を依頼する。例えばユーザがリモコン105のボタンを押下してポップアップ・メニューの表示を指示したとき、ユーザイベント処理部4609はその押下を検出してそのボタンを識別する。ユーザイベント処理部4609は更にプログラム実行部4606に、そのボタンに対応するコマンドの実行、すなわちポップアップ・メニューの表示処理を依頼する。一方、例えばユーザがリモコン105の早送り又は巻戻しボタンを押下したとき、ユーザイベント処理部4609はその押下を検出してそのボタンを識別する。ユーザイベント処理部4609は更に再生制御部4607に、現在再生中のプレイリストの早送り又は巻戻し処理を依頼する。
再生制御部4607は、2Dエクステント及びインデックス・ファイル等、各種のデータをBD−ROMディスク101から、リード・バッファ4602、動的シナリオ・メモリ4604、及び静的シナリオ・メモリ4605へ転送する処理を制御する。その制御には、図5に示されているディレクトリ/ファイル構造を管理するファイルシステムが利用される。すなわち、再生制御部4607はファイル・オープン用のシステムコールを利用して、BD−ROMドライブ4601に各種のファイルを各バッファ・メモリ4602、4604、4605へ転送させる。ここで、ファイル・オープンとは次の一連の処理をいう。まず、システムコールによってファイルシステムに検索対象のファイル名が与えられ、そのファイル名がディレクトリ/ファイル構造から検索される。その検索に成功したとき、再生制御部4607内のメモリには、まず、転送対象のファイルのファイル・エントリが転送され、そのメモリ内にFCB(File Control Block)が生成される。その後、転送対象のファイルのファイル・ハンドルがファイルシステムから再生制御部4607に返される。以後、再生制御部4607はそのファイル・ハンドルをBD−ROMドライブ4601に提示することにより、BD−ROMドライブ4601にその転送対象のファイルをBD−ROMディスク101から各バッファ・メモリ4602、4604、4605へ転送させることができる。
再生制御部4607は、BD−ROMドライブ4601とシステム・ターゲット・デコーダ4603とを制御してファイル2Dから映像データと音声データとを復号させる。具体的には、再生制御部4607はまず、プログラム実行部4606からの命令、又はユーザイベント処理部4609からの依頼に応じて、静的シナリオ・メモリ4605から2Dプレイリスト・ファイルを読み出してその内容を解釈する。再生制御部4607は次に、その解釈された内容、特に再生経路に従って、BD−ROMドライブ4601とシステム・ターゲット・デコーダ4603とに再生対象のファイル2Dを指定して、その読み出し処理及び復号処理を指示する。このようなプレイリスト・ファイルに基づく再生処理を「プレイリスト再生」という。その他に、再生制御部4607は、静的シナリオ情報を利用してプレーヤ変数記憶部4608に各種のプレーヤ変数を設定する。再生制御部4607は更に、それらのプレーヤ変数を参照して、システム・ターゲット・デコーダ4603に復号対象のエレメンタリ・ストリームを指定し、かつ、各エレメンタリ・ストリームの復号に必要な情報を提供する。
プレーヤ変数記憶部4608は、プレーヤ変数を記憶するためのレジスタ群である。プレーヤ変数の種類にはシステム・パラメータ(SPRM)と汎用のパラメータ(GPRM)とがある。SPRMは再生装置102の状態を示す。図47はSPRMの一覧表である。各SPRMには通し番号4701が振られ、各通し番号4701に変数値4702が個別に対応付けられている。主なSPRMの内容は以下のとおりである。ここで、括弧内の数字は通し番号4701を示す。
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等を利用してユーザに変更させることもでき、プログラム実行部4606を通じてアプリケーション・プログラムに変更させることもできる。例えばSPRM(16)が「英語」を示しているとき、再生制御部4607はプレイリスト再生処理において、まずPI内のSTNテーブルから、「英語」の言語コードを含むストリーム・エントリを検索する。再生制御部4607は次に、そのストリーム・エントリのストリーム識別情報からPIDを抽出してシステム・ターゲット・デコーダ4603に渡す。それにより、そのPIDのオーディオ・ストリームがシステム・ターゲット・デコーダ4603によって選択され、復号される。これらの処理は、ムービーオブジェクト・ファイル又はBD−Jオブジェクト・ファイルを利用して再生制御部4607に実行させることができる。
再生制御部4607は再生処理中、再生状態の変化に応じてプレーヤ変数を更新する。再生制御部4607は特に、SPRM(1)、SPRM(2)、SPRM(21)、及びSPRM(22)を更新する。それらは順に、処理中のオーディオ・ストリーム、字幕ストリーム、セカンダリ・ビデオ・ストリーム、及びセカンダリ・オーディオ・ストリームの各STNを示す。例えばプログラム実行部4606によってSPRM(1)が変更されたときを想定する。再生制御部4607はそのとき、まず現時点で再生処理中のPI内のSTNテーブルから、変更後のSPRM(1)の示すSTNを含むストリーム・エントリを検索する。再生制御部4607は次に、そのストリーム・エントリ内のストリーム識別情報からPIDを抽出してシステム・ターゲット・デコーダ4603に渡す。それにより、そのPIDのオーディオ・ストリームがシステム・ターゲット・デコーダ4603によって選択され、復号される。こうして、再生対象のオーディオ・ストリームが切り換えられる。同様に、再生対象の字幕及びセカンダリ・ビデオ・ストリームを切り換えることもできる。
プログラム実行部4606はプロセッサであり、ムービーオブジェクト・ファイル及びBD−Jオブジェクト・ファイルに格納されたプログラムを実行する。プログラム実行部4606は各プログラムに従って、特に次のような制御を行う:(1)再生制御部4607に対してプレイリスト再生処理を命令する;(2)メニュー用又はゲーム用のグラフィックス・データをPNG又はJPEGのラスタデータとして生成し、それをシステム・ターゲット・デコーダ4603へ転送して他の映像データに合成させる。これらの制御の具体的な内容はプログラムの設計を通じて比較的自由に設計することができる。すなわち、それらの制御内容は、BD−ROMディスク101のオーサリング工程のうち、ムービーオブジェクト・ファイル及びBD−Jオブジェクト・ファイルのプログラミング工程によって決まる。
プレーン加算部4610は、システム・ターゲット・デコーダ4603から、主映像プレーン・データ、副映像プレーン・データ、IGプレーン・データ、PGプレーン・データ、及びイメージ・プレーン・データを受信し、それらを互いに重畳して一つの映像フレーム又はフィールドに合成する。合成後の映像データは表示装置103へ送出され、その画面に表示される。
≪システム・ターゲット・デコーダ≫
図48は、システム・ターゲット・デコーダ4603の機能ブロック図である。図48を参照するに、システム・ターゲット・デコーダ4603は、ソース・デパケタイザ4810、ATCカウンタ4820、第1の27MHzクロック4830、PIDフィルタ4840、STCカウンタ(STC1)4850、第2の27MHzクロック4860、主映像デコーダ4870、副映像デコーダ4871、PGデコーダ4872、IGデコーダ4873、主音声デコーダ4874、副音声デコーダ4875、イメージ・プロセッサ4880、主映像プレーン・メモリ4890、副映像プレーン・メモリ4891、PGプレーン・メモリ4892、IGプレーン・メモリ4893、イメージ・プレーン・メモリ4894、及び音声ミキサ4895を含む。
ソース・デパケタイザ4810はリード・バッファ4602からソースパケットを読み出し、その中からTSパケットを取り出してPIDフィルタ4840へ送出する。ソース・デパケタイザ4810は更に、その送出の時刻を各ソースパケットのATSに応じて調整する。具体的には、ソース・デパケタイザ4810はまず、ATCカウンタ4820が生成するATCの値を監視する。ここで、ATCの値はATCカウンタ4820により、第1の27MHzクロック4830のクロック信号のパルスに応じてインクリメントされる。ソース・デパケタイザ4810は次に、ATCの値がソースパケットのATSと一致した瞬間、そのソースパケットから取り出されたTSパケットをPIDフィルタ4840へ転送する。そのような送出時刻の調整により、ソース・デパケタイザ4810からPIDフィルタ4840へのTSパケットの平均転送速度RTSは、図31に示されている2Dクリップ情報ファイルの示すシステムレート3111を超えない。
PIDフィルタ4840はまず、ソース・デパケタイザ4810から送出されたTSパケットの含むPIDを監視する。そのPIDが、再生制御部4807から予め指定されたPIDに一致したとき、PIDフィルタ4840はそのTSパケットを選択し、そのPIDの示すエレメンタリ・ストリームの復号に適したデコーダ4870−4875へ転送する。例えばPIDが0x1011であるとき、そのTSパケットは主映像デコーダ4870へ転送される。一方、PIDが、0x1B00−0x1B1F、0x1100−0x111F、0x1A00−0x1A1F、0x1200−0x121F、及び0x1400−0x141Fの各範囲に属するとき、TSパケットはそれぞれ、副映像デコーダ4871、主音声デコーダ4874、副音声デコーダ4875、PGデコーダ4872、及びIGデコーダ4873へ転送される。
PIDフィルタ4840は更に、各TSパケットのPIDを利用してそのTSパケットの中からPCRを検出する。PIDフィルタ4840はそのとき、STCカウンタ4850の値を所定値に設定する。ここで、STCカウンタ4850の値は第2の27MHzクロック4860のクロック信号のパルスに応じてインクリメントされる。また、STCカウンタ4850に設定されるべき値は予め、再生制御部4807からPIDフィルタ4840に指示されている。各デコーダ4870−4875はSTCカウンタ4850の値をSTCとして利用する。すなわち、PIDフィルタ4840から送出されたTSパケットに対する復号処理の時期を、そのTSパケットに含まれるPTS又はDTSの示す時刻に従って調節する。
主映像デコーダ4870は、図48に示されているように、トランスポート・ストリーム・バッファ(TB:Transport Stream Buffer)4801、多重化バッファ(MB:Multiplexing Buffer)4802、エレメンタリ・ストリーム・バッファ(EB:Elementary Stream Buffer)4803、圧縮映像デコーダ(DEC)4804、及び復号ピクチャ・バッファ(DPB:Decoded Picture Buffer)4805を含む。TB4801、MB4802、EB4803、及びDPB4805はいずれもバッファ・メモリであり、それぞれ主映像デコーダ4870に内蔵のメモリ素子の一領域を利用する。その他に、それらのいずれか又は全てが異なるメモリ素子に分離されていてもよい。TB4801は、PIDフィルタ4840から受信されたTSパケットをそのまま蓄積する。MB4802は、TB4801に蓄積されたTSパケットから復元されたPESパケットを蓄積する。尚、TB4801からMB4802へTSパケットが転送されるとき、そのTSパケットからTSヘッダが除去される。EB4803は、PESパケットから、符号化されたVAUを抽出して格納する。そのVAUには、圧縮ピクチャ、すなわち、Iピクチャ、Bピクチャ、及びPピクチャが格納されている。尚、MB4802からEB4803へデータが転送されるとき、そのPESパケットからPESヘッダが除去される。DEC4804は、EB4803内の各VAUからピクチャを、元のTSパケットに含まれるDTSの示す時刻に復号する。DEC4804はその他に、図14に示されている復号スイッチ情報1401を利用して、各VAUからピクチャをそのDTSに関わらず、順次復号してもよい。DEC4804は、各VAU内に格納された圧縮ピクチャの圧縮符号化方式、例えば、MPEG−2、MPEG−4 AVC、及びVC1、並びにストリーム属性に応じて復号方法を切り換える。DEC4804は更に、復号後のピクチャ、すなわちフレーム又はフィールドをDPB4805へ転送する。DPB4805は復号後のピクチャを一時的に保持する。DEC4804は、Pピクチャ及びBピクチャを復号するとき、DPB4805に保持されている復号後のピクチャを参照する。DPB4805は更に、保持している各ピクチャを、元のTSパケットに含まれるPTSの示す時刻に主映像プレーン・メモリ4890へ書き込む。
副映像デコーダ4871は主映像デコーダ4870と同様の構成を含む。副映像デコーダ4871はまず、PIDフィルタ4840から受信されたセカンダリ・ビデオ・ストリームのTSパケットを非圧縮のピクチャに復号する。副映像デコーダ4871は次に、そのTSパケットに含まれるPTSの示す時刻に非圧縮のピクチャを副映像プレーン・メモリ4891へ書き込む。
PGデコーダ4872は、PIDフィルタ4840から受信されたTSパケットを非圧縮のグラフィックス・データに復号し、そのTSパケットに含まれるPTSの示す時刻にPGプレーン・メモリ4892へ書き込む。
IGデコーダ4873は、PIDフィルタ4840から受信されたTSパケットを非圧縮のグラフィックス・データに復号し、そのTSパケットに含まれるPTSの示す時刻にIGプレーン・メモリ4893へ書き込む。
主音声デコーダ4874はまず、PIDフィルタ4840から受信されたTSパケットを内蔵のバッファに蓄える。主音声デコーダ4874は次に、そのバッファ内の各TSパケットからTSヘッダとPESヘッダとを除去し、残りのデータを非圧縮のLPCM音声データに復号する。主音声デコーダ4874は更にその音声データを、元のTSパケットに含まれるPTSの示す時刻に音声ミキサ4895へ送出する。主音声デコーダ4874は、TSパケットに含まれるプライマリ・オーディオ・ストリームの圧縮符号化方式、例えばAC−3又はDTS、及びストリーム属性に応じて、圧縮音声データの復号方法を切り換える。
副音声デコーダ4875は主音声デコーダ4874と同様の構成を含む。副音声デコーダ4875はまず、PIDフィルタ4840から受信されたセカンダリ・オーディオ・ストリームのTSパケットを非圧縮のLPCM音声データに復号する。副音声デコーダ4875は次に、そのTSパケットに含まれるPTSの示す時刻に非圧縮のLPCM音声データを音声ミキサ4895へ送出する。副音声デコーダ4875は、TSパケットに含まれるセカンダリ・オーディオ・ストリームの圧縮符号化方式、例えば、ドルビー・デジタル・プラス、DTS−HD LBR、及びストリーム属性に応じて圧縮音声データの復号方法を切り換える。
音声ミキサ4895は、主音声デコーダ4874と副音声デコーダ4875とのそれぞれから非圧縮の音声データを受信し、それらを用いてミキシング(音の重ね合わせ)を行う。音声ミキサ4895は更に、そのミキシングで得られた合成音を表示装置103の内蔵スピーカ103A等へ送出する。
イメージ・プロセッサ4880は、プログラム実行部4806からグラフィックス・データ、すなわちPNG又はJPEGのラスタデータを受信する。イメージ・プロセッサ4880はそのとき、そのグラフィックス・データに対するレンダリング処理を行ってイメージ・プレーン・メモリ4894へ書き込む。
<3D再生装置の構成>
3D再生モードの再生装置102はBD−ROMディスク101から3D映像コンテンツを再生するとき、3D再生装置として動作する。その構成の基本部分は、図46−48に示されている2D再生装置の構成と同様である。従って、以下では2D再生装置の構成からの拡張部分及び変更部分について説明し、基本部分の詳細についての説明は上記の2D再生装置についての説明を援用する。また、2Dプレイリスト・ファイルに従った2D映像の再生処理、すなわち2Dプレイリスト再生処理に利用される構成は2D再生装置の構成と同様である。従って、その詳細についての説明も上記の2D再生装置についての説明を援用する。以下の説明では、3Dプレイリスト・ファイルに従った3D映像の再生処理、すなわち3Dプレイリスト再生処理を想定する。
図49は、3D再生装置4900の機能ブロック図である。3D再生装置4900は、BD−ROMドライブ4901、再生部4900A、及び制御部4900Bを含む。再生部4900Aは、スイッチ4911、第1リード・バッファ4921、第2リード・バッファ4922、システム・ターゲット・デコーダ4903、及びプレーン加算部4910を含む。制御部4900Bは、動的シナリオ・メモリ4904、静的シナリオ・メモリ4905、プログラム実行部4906、再生制御部4907、プレーヤ変数記憶部4908、及びユーザイベント処理部4909を含む。再生部4900Aと制御部4900Bとは互いに異なる集積回路に実装されている。その他に、両者が単一の集積回路に統合されていてもよい。特に、動的シナリオ・メモリ4904、静的シナリオ・メモリ4905、プログラム実行部4906、及びユーザイベント処理部4909は、図46に示されている2D再生装置内のものと同様である。従って、それらの詳細についての説明は上記の2D再生装置についての説明を援用する。
BD−ROMドライブ4901は、図46に示されている2D再生装置内のもの4601と同様な構成要素を含む。BD−ROMドライブ4901は、再生制御部4907からLBNの範囲が指示されたとき、その範囲の示すBD−ROMディスク101上のセクタ群からデータを読み出す。特にファイルSSのエクステント、すなわち3Dエクステントに属するソースパケット群は、BD−ROMドライブ4901からスイッチ4911へ転送される。ここで、各3Dエクステントは、図19の(d)及び図34に示されているとおり、ベースビューとディペンデントビューとのデータ・ブロックの対を一つ以上含む。それらのデータ・ブロックは異なるリード・バッファ4921、4922へパラレルに転送されなければならない。従って、BD−ROMドライブ4901には2D再生装置内のBD−ROMドライブ4601以上のアクセス・スピードが求められる。
スイッチ4911はBD−ROMドライブ4901からは3Dエクステントを受信する。一方、スイッチ4911は再生制御部4907からは、その3Dエクステントに含まれる各データ・ブロックの境界を示す情報、例えばその3Dエクステントの先頭から各境界までのソースパケット数を受信する。ここで、再生制御部4907はその情報を、クリップ情報ファイル内のエクステント起点を利用して生成する。スイッチ4911は更に、その情報を利用して各3Dエクステントからベースビュー・データ・ブロックを抽出して、第1リード・バッファ4921へ送出する。一方、スイッチ4911は残りのディペンデントビュー・データ・ブロックを第2リード・バッファ4922へ送出する。
第1リード・バッファ4921と第2リード・バッファ4922とはいずれも、再生部4900A内のメモリ素子を利用したバッファ・メモリである。特に単一のメモリ素子内の異なる領域が各リード・バッファ4921、4922として利用される。その他に、異なるメモリ素子が個別に各リード・バッファ4921、4922として利用されてもよい。第1リード・バッファ4921は、スイッチ4911からベースビュー・データ・ブロックを受信して格納する。第2リード・バッファ4922は、スイッチ4911からディペンデントビュー・データ・ブロックを受信して格納する。
システム・ターゲット・デコーダ4903はまず、第1リード・バッファ4921に格納されたベースビュー・データ・ブロックと、第2リード・バッファ4922に格納されたディペンデントビュー・データ・ブロックとから交互にソースパケットを読み出す。システム・ターゲット・デコーダ4903は次に、多重分離処理によって各ソースパケットからエレメンタリ・ストリームを分離し、更に分離されたものの中から、再生制御部4907から指示されたPIDの示すものを復号する。システム・ターゲット・デコーダ4903は続いて、復号後のエレメンタリ・ストリームをその種類別に内蔵のプレーン・メモリに書き込む。ベースビュー・ビデオ・ストリームは左映像プレーン・メモリに書き込まれ、ディペンデントビュー・ビデオ・ストリームは右映像プレーン・メモリに書き込まれる。一方、セカンダリ・ビデオ・ストリームは副映像プレーン・メモリに書き込まれ、IGストリームはIGプレーン・メモリに書き込まれ、PGストリームはPGプレーン・メモリに書き込まれる。ここで、ビデオ・ストリーム以外のストリーム・データがベースビューとディペンデントビューとのストリーム・データの対から成るとき、対応するプレーン・メモリはレフトビューとライトビューとの両方のプレーン・データに対して個別に用意される。システム・ターゲット・デコーダ4903はその他に、プログラム実行部4906からのグラフィックス・データ、例えばJPEG又はPNG等のラスタデータを処理してイメージ・プレーン・メモリに書き込む。
システム・ターゲット・デコーダ4903は、左映像と右映像との各プレーン・メモリからのプレーン・データの出力をB−D表示モードとB−B表示モードとに対応させる。再生制御部4907からB−D表示モードが指示されたとき、システム・ターゲット・デコーダ4903は左映像と右映像との各プレーン・メモリから交互にプレーン・データを出力する。一方、再生制御部4907からB−B表示モードが指示されたとき、システム・ターゲット・デコーダ4903は動作モードを3D再生モードに維持したまま、左映像と右映像とのいずれかのプレーン・メモリからのみプレーン・データをフレーム当たり二回ずつ出力する。
システム・ターゲット・デコーダ4903は更に、グラフィックス・プレーン・メモリ、すなわち、PGプレーン・メモリ、IGプレーン・メモリ、及びイメージ・プレーン・メモリからの各グラフィックス・プレーン・データの出力を、2プレーン・モード、1プレーン+オフセット・モード、及び1プレーン+ゼロ・オフセット・モードに対応させる。再生制御部4907から2プレーン・モードが指示されたとき、システム・ターゲット・デコーダ4903は各グラフィックス・プレーン・メモリからレフトビューとライトビューとのグラフィックス・プレーン・データを交互に出力する。再生制御部4907から1プレーン+オフセット・モード又は1プレーン+ゼロ・オフセット・モードが指示されたとき、システム・ターゲット・デコーダ4903は動作モードを3D再生モードに維持したまま、各グラフィックス・プレーン・メモリからグラフィックス・プレーン・データを出力する。再生制御部4907から1プレーン+オフセット・モードが指示されたときは更に、システム・ターゲット・デコーダ4903は、再生制御部4907によって指定されたオフセット値をプレーン加算部4910に渡す。ここで、再生制御部4907は、そのオフセット値をクリップ情報ファイル内のオフセット・テーブルに基づいて設定する。一方、再生制御部4907から1プレーン+ゼロ・オフセット・モードが指示されたときは、システム・ターゲット・デコーダ4903はオフセット値として“0”をプレーン加算部4910に渡す。
再生制御部4907は、3Dプレイリスト再生処理をプログラム実行部4906等から命じられたとき、まず、静的シナリオ・メモリ4905に格納された3Dプレイリスト・ファイルを参照する。再生制御部4907は次に、3Dプレイリスト・ファイルに従い、図43に示されている手順で、読み出し対象の3Dエクステントが記録されたセクタ群のLBNの範囲をBD−ROMドライブ4901に指示する。一方、再生制御部4907は、静的シナリオ・メモリ4905に格納されたクリップ情報ファイル内の3Dメタデータを参照して、読み出し対象の各3Dエクステントに関するエクステント起点を検索する。再生制御部4907は更に、そのエクステント起点から、各3Dエクステントに含まれるデータ・ブロックの境界を示す情報を生成する。その情報が再生制御部4907からスイッチ4911へ送出される。
再生制御部4907はその他に、3Dプレイリスト・ファイル内のSTNテーブルとSTNテーブルSSとを利用して、システム・ターゲット・デコーダ4903とプレーン加算部4910との動作条件を制御する。例えば、再生対象のエレメンタリ・ストリームのPIDが選択されて、システム・ターゲット・デコーダ4903に渡される。また、STNテーブルSSのうち、ポップアップ期間のオフセット4111に応じて各プレーンの表示モードが選択されてシステム・ターゲット・デコーダ4903とプレーン加算部4910とに指示される。
プレーヤ変数記憶部4908は、2D再生装置内のものと同様に、図47に示されているSPRMを含む。しかし、図47では予備であったSPRM(24)−(32)のいずれか二つは、図45に示されている第1フラグと第2フラグとを個別に含む。例えば、SPRM(24)が第1フラグを含み、SPRM(25)が第2フラグを含む。その場合、SPRM(24)が“0”であるときは再生装置102が2D映像の再生のみに対応可能であり、“1”であるときは3D映像の再生にも対応可能である。SPRM(25)が“0”であるときは再生装置102がL/Rモードであり、“1”であるときはデプス・モードである。
プレーン加算部4910はシステム・ターゲット・デコーダ4903から各種のプレーン・データを受信し、それらを互いに重畳して一つのフレーム又はフィールドに合成する。特にL/Rモードでは、左映像プレーン・データはレフトビュー・ビデオ・プレーンを表し、右映像プレーン・データはライトビュー・ビデオ・プレーンを表す。従って、プレーン加算部4910は、左映像プレーン・データには、他のプレーン・データのうち、レフトビューを表すものを重畳し、右映像プレーン・データには、ライトビューを表すものを重畳する。一方、デプス・モードでは、右映像プレーン・データは、左映像プレーン・データの表すビデオ・プレーンに対するデプスマップを表す。従って、プレーン加算部4910はまず、両方の映像プレーン・データからレフトビューとライトビューとのビデオ・プレーン・データの対を生成する。その後、プレーン加算部4910はL/Rモードでの合成処理と同様に合成処理を行う。
再生制御部4907から、副映像プレーン、PGプレーン、IGプレーン、又はイメージ・プレーンの表示モードとして1プレーン+オフセット・モード又は1プレーン+ゼロ・オフセット・モードが指示されているとき、プレーン加算部4910は、システム・ターゲット・デコーダ4903から受信されたプレーン・データに対してクロッピング処理を行う。それにより、レフトビューとライトビューとのプレーン・データの対が生成される。特に1プレーン+オフセット・モードが指示されているとき、そのクロッピング処理では、システム・ターゲット・デコーダ4903又はプログラム実行部4906から指示されたオフセット値が利用される。一方、1プレーン+ゼロ・オフセット・モードが指示されているとき、そのクロッピング処理ではオフセット値が“0”に設定されている。従って、同じプレーン・データが、レフトビューとライトビューとを表すものとして繰り返し出力される。その後、プレーン加算部4910はL/Rモードでの合成処理と同様に合成処理を行う。合成後のフレーム又はフィールドは表示装置103へ送出され、その画面に表示される。
≪システム・ターゲット・デコーダ≫
図50は、システム・ターゲット・デコーダ4903の機能ブロック図である。図50に示されている構成要素は、図46に示されている2D再生装置のもの4603とは次の二点で異なる:(1)リード・バッファから各デコーダへの入力系統が二重化されている点、並びに、(2)主映像デコーダは3D再生モードに対応可能であり、副映像デコーダ、PGデコーダ、及びIGデコーダは2プレーン・モードに対応可能である点。すなわち、それらの映像デコーダはいずれもベースビューとディペンデントビューとのそれぞれのストリームを交互に復号できる点。一方、主音声デコーダ、副音声デコーダ、音声ミキサ、イメージ・プロセッサ、及び各プレーン・メモリは、図46に示されている2D再生装置のものと同様である。従って、以下では、図50に示されている構成要素のうち、図46に示されているものとは異なるものについて説明し、同様なものの詳細についての説明は、図46についての説明を援用する。更に、各映像デコーダはいずれも同様な構造を持つので、以下では主映像デコーダ5015の構造について説明し、他の映像デコーダの構造についてはその説明を援用する。
第1ソース・デパケタイザ5011は、第1リード・バッファ4921からソースパケットを読み出して、その中からTSパケットを取り出して第1PIDフィルタ5013へ送出する。第2ソース・デパケタイザ5012は、第2リード・バッファ4922からソースパケットを読み出して、その中からTSパケットを取り出して第2PIDフィルタ5014へ送出する。各ソース・デパケタイザ5011、5012は更に、各TSパケットの送出時刻を各ソースパケットのATSに応じて調整する。その調整方法は、図46に示されているソース・デパケタイザ4610による方法と同様であるので、その詳細についての説明は、図46についての説明を援用する。そのような調節により、第1ソース・デパケタイザ5011から第1PIDフィルタ5013へのTSパケットの平均転送速度RTS1は、図30に示されている2Dクリップ情報ファイルの示すシステムレート3011を超えない。同様に、第2ソース・デパケタイザ5012から第2PIDフィルタ5014へのTSパケットの平均転送速度RTS2は、ディペンデントビュー・クリップ情報ファイルの示すシステムレートを超えない。
第1PIDフィルタ5013は、第1ソース・デパケタイザ5011からTSパケットを受信する度に、そのPIDを選択対象のPIDと比較する。その選択対象のPIDは再生制御部4907によって予め、3Dプレイリスト・ファイル内のSTNテーブルに従って指定されている。両方のPIDが一致したとき、第1PIDフィルタ5013はそのTSパケットを、そのPIDに割り当てられたデコーダへ転送する。例えば、PIDが0x1011であるとき、そのTSパケットは主映像デコーダ5015内のTB(1)5001へ転送される。その他に、PIDが、0x1B00−0x1B1F、0x1100−0x111F、0x1A00−0x1A1F、0x1200−0x121F、及び0x1400−0x141Fの各範囲に属するとき、対応するTSパケットはそれぞれ、副映像デコーダ、主音声デコーダ、副音声デコーダ、PGデコーダ、及びIGデコーダへ転送される。
第2PIDフィルタ5014は、第2ソース・デパケタイザ5012からTSパケットを受信する度に、そのPIDを選択対象のPIDと比較する。その選択対象のPIDは再生制御部4907によって予め、3Dプレイリスト・ファイル内のSTNテーブルSSに従って指定されている。具体的には、両方のPIDが一致したとき、第2PIDフィルタ5014はそのTSパケットを、そのPIDに割り当てられたデコーダへ転送する。例えば、PIDが0x1012又は0x1013であるとき、そのTSパケットは主映像デコーダ5015内のTB(2)5008へ転送される。その他に、PIDが、0x1B20−0x1B3F、0x1220−0x127F、及び0x1420−0x147Fの各範囲に属するとき、対応するTSパケットはそれぞれ、副映像デコーダ、PGデコーダ、及びIGデコーダへ転送される。
主映像デコーダ5015は、TB(1)5001、MB(1)5002、EB(1)5003、TB(2)5008、MB(2)5009、EB(2)5010、バッファ・スイッチ5006、DEC5004、DPB5005、及びピクチャ・スイッチ5007を含む。TB(1)5001、MB(1)5002、EB(1)5003、TB(2)5008、MB(2)5009、EB(2)5010、及びDPB5005はいずれもバッファ・メモリである。各バッファ・メモリは、主映像デコーダ5015に内蔵されたメモリ素子の一領域を利用する。その他に、それらのバッファ・メモリのいずれか又は全てが、異なるメモリ素子に分離されていてもよい。
TB(1)5001は、ベースビュー・ビデオ・ストリームを含むTSパケットを第1PIDフィルタ5013から受信してそのまま蓄積する。MB(1)5002は、TB(1)5001に蓄積されたTSパケットからPESパケットを復元して蓄積する。そのとき、各TSパケットからTSヘッダが除去される。EB(1)5003は、MB(1)5002に蓄積されたPESパケットから、符号化されたVAUを抽出して蓄積する。そのとき、各PESパケットからPESヘッダが除去される。
TB(2)5008は、ディペンデントビュー・ビデオ・ストリームを含むTSパケットを第2PIDフィルタ5014から受信してそのまま蓄積する。MB(2)5009は、TB(2)5008に蓄積されたTSパケットからPESパケットを復元して蓄積する。そのとき、各TSパケットからTSヘッダが除去される。EB(2)5010は、MB(2)5009に蓄積されたPESパケットから、符号化されたVAUを抽出して蓄積する。そのとき、各PESパケットからPESヘッダが除去される。
バッファ・スイッチ5006は、EB(1)5003とEB(2)5010とのそれぞれに蓄積されたVAUを、元のTSパケットに含まれるDTSの示す時刻にDEC5004へ転送する。ここで、ベースビュー・ビデオ・ストリームとディペンデントビュー・ビデオ・ストリームとの間では、同じ3D・VAUに属する一対のピクチャのDTSが等しい。従って、バッファ・スイッチ5006は、EB(1)5003とEB(2)5010とに蓄積された、DTSの等しい一対のVAUのうち、EB(1)5003に蓄積された方を先にDEC5004へ転送する。その他に、バッファ・スイッチ5006は、図14に示されているそのVAU内の復号スイッチ情報1401をDEC5004から返信されてもよい。その場合、バッファ・スイッチ5006はその復号スイッチ情報1401を使って、次に転送すべきVAUをEB(1)5003とEB(2)5010とのいずれから転送すべきか、決定できる。
DEC5004は、バッファ・スイッチ5006から転送されたVAUを復号する。ここで、そのVAU内に格納された圧縮ピクチャの符号化方式、例えば、MPEG−2、MPEG−4 AVC、及びVC1、並びにストリーム属性に応じて、DEC5004は復号方法を切り換える。DEC5004は更に、復号された非圧縮のピクチャ、すなわち映像フレーム又はフィールドをDPB5005へ転送する。
DPB5005は、復号された非圧縮のピクチャを一時的に保持する。DEC5004がPピクチャ及びBピクチャを復号するとき、DPB5005はDEC5004からの要求に応じて、保持されている非圧縮のピクチャの中から参照ピクチャをDEC5004に提供する。
ピクチャ・スイッチ5007は、DPB5005から非圧縮の各ピクチャを、元のTSパケットに含まれるPTSの示す時刻に、左映像プレーン・メモリ5020と右映像プレーン・メモリ5021とのいずれかに書き込む。ここで、ベースビュー・ビデオ・ストリームとディペンデントビュー・ビデオ・ストリームとの間では、同じ3D・VAUに属する一対のピクチャのPTSが等しい。従って、ピクチャ・スイッチ5007は、DPB5005に保持された、PTSの等しい一対のピクチャのうち、ベースビュー・ビデオ・ストリームに属する方を先に左映像プレーン・メモリ5020に書き込み、続いて、ディペンデントビュー・ビデオ・ストリームに属するものを右映像プレーン・メモリ5021に書き込む。
≪プレーン加算部≫
図51はプレーン加算部4910の機能ブロック図である。図51を参照するに、プレーン加算部4910は、視差映像生成部5110、スイッチ5120、四つのクロッピング処理部5131−5134、及び四つの加算部5141−5144を含む。
視差映像生成部5110は、システム・ターゲット・デコーダ4903から左映像プレーン・データ5101と右映像プレーン・データ5102とを受信する。再生装置102がL/Rモードであるとき、左映像プレーン・データ5101はレフトビュー・ビデオ・プレーンを表し、右映像プレーン・データ5102はライトビュー・ビデオ・プレーンを表す。そのとき、視差映像生成部5110は各ビデオ・プレーン・データ5101、5102をそのままスイッチ5120へ送出する。一方、再生装置102がデプス・モードであるとき、左映像プレーン・データ5101は2D映像のビデオ・プレーンを表し、右映像プレーン・データ5102はその2D映像に対するデプスマップを表す。そのとき、視差映像生成部5110は、まずそのデプスマップからその2D映像の各部の両眼視差を計算する。視差映像生成部5110は次に、左映像プレーン・データ5101を加工して、ビデオ・プレーンにおけるその2D映像の各部の表示位置を、計算された両眼視差に応じて左右に移動させる。それにより、レフトビューとライトビューとを表すビデオ・プレーンの対が生成される。視差映像生成部5110は更に、そのビデオ・プレーンの対を左映像と右映像とのプレーン・データの対としてスイッチ5120へ送出する。
スイッチ5120は、再生制御部4907からB−D表示モードが指示されているとき、PTSの等しい左映像プレーン・データ5101と右映像プレーン・データ5102とをその順で第1加算部5141へ送出する。スイッチ5120は、再生制御部4907からB−B表示モードが指示されているとき、PTSの等しい左映像プレーン・データ5101と右映像プレーン・データ5102との一方をフレーム当たり二回ずつ、第1加算部5141へ送出し、他方を破棄する。
各クロッピング処理部5131−5134は、視差映像生成部5110とスイッチ5120との対と同様な構成を含む。2プレーン・モードではそれらの構成が利用される。特に再生装置102がデプス・モードであるとき、システム・ターゲット・デコーダ4903からのプレーン・データはレフトビューとライトビューとのプレーン・データの対に変換される。再生制御部4907からB−D表示モードが指示されているとき、レフトビューとライトビューとのプレーン・データが交互に各加算部5141−5144へ送出される。一方、再生制御部4907からB−B表示モードが指示されているとき、レフトビューとライトビューとのプレーン・データの一方がフレーム当たり二回ずつ各加算部5141−5144へ送出され、他方は破棄される。
1プレーン+オフセット・モードでは、第1クロッピング処理部5131は、システム・ターゲット・デコーダ4903からオフセット値5151を受信し、それを利用して副映像プレーン・データ5103に対してクロッピング処理を行う。それにより、その副映像プレーン・データ5103は、レフトビューとライトビューとを表す一対の副映像プレーン・データに変換されて交互に送出される。一方、1プレーン+ゼロ・オフセット・モードではその副映像プレーン・データ5103が二回繰り返して送出される。
1プレーン+オフセット・モードでは、第2クロッピング処理部5132は、システム・ターゲット・デコーダ4903からオフセット値5151を受信し、それを利用してPGプレーン・データ5104に対してクロッピング処理を行う。それにより、そのPGプレーン・データ5104は、レフトビューとライトビューとを表す一対のPGプレーン・データに変換されて交互に送出される。一方、1プレーン+ゼロ・オフセット・モードではそのPGプレーン・データ5104が二回繰り返して送出される。
1プレーン+オフセット・モードでは、第3クロッピング処理部5133は、システム・ターゲット・デコーダ4903からオフセット値5151を受信し、それを利用してIGプレーン・データ5105に対してクロッピング処理を行う。それにより、そのIGプレーン・データ5105は、レフトビューとライトビューとを表す一対のIGプレーン・データに変換されて交互に送出される。一方、1プレーン+ゼロ・オフセット・モードではそのIGプレーン・データ5105が二回繰り返して送出される。
図52の(a)、(b)は、第2クロッピング処理部5132によるクロッピング処理を示す模式図である。図52の(a)、(b)ではそれぞれ、PGプレーン・データ5104からレフトビューPGプレーン・データ5204LとライトビューPGプレーン・データ5204Rとの対が次のように生成される。第2クロッピング処理部5132はまず、オフセット値5151の中から、PGプレーンに割り当てられたものを検索する。第2クロッピング処理部5132は次に、そのオフセット値に従って、PGプレーン・データ5104の示すグラフィックス映像の表示位置に対するレフトビューとライトビューとの各表示位置を左又は右に変化させる。その結果、レフトビューとライトビューとのPGプレーン・データの対が得られる。尚、1プレーン+ゼロ・オフセット・モードではオフセット値が“0”であるので、元のPGプレーン・データがそのまま維持される。第1クロッピング処理部5131は副映像プレーン・データ5103に対して同様にクロッピング処理を行い、第3クロッピング処理部5133はIGプレーン・データ5105に対して同様にクロッピング処理を行う。
図52の(a)を参照するに、3D映像の奥行きが画面よりも手前であることをオフセット値の符号が示すとき、第2クロッピング処理部5132はまず、PGプレーン・データ5104内の各画素データの位置を元の位置から、オフセット値に等しい画素数5201Lだけ右に変化させる。3D映像の奥行きが画面よりも奥であることをオフセット値の符号が示すときは、左に変化させる。第2クロッピング処理部5132は次に、PGプレーン・データ5104の範囲から右(又は左)にはみ出ている画素データ群5202Lを除去する。こうして、残りの画素データ群5204LがレフトビューPGプレーン・データとして出力される。
図52の(b)を参照するに、3D映像の奥行きが画面よりも手前であることをオフセット値の符号が示すとき、第2クロッピング処理部5132はまず、PGプレーン・データ5104内の各画素データの位置を元の位置から、オフセット値に等しい画素数5201Rだけ左に変化させる。3D映像の奥行きが画面よりも奥であることをオフセット方向が示すときは、右に変化させる。第2クロッピング処理部5132は次に、PGプレーン・データ5104の範囲から左(又は右)にはみ出ている画素データ群5202Rを除去する。こうして、残りの画素データ群5204RがライトビューPGプレーン・データとして出力される。
図53の(a)、(b)、(c)はそれぞれ、図52に示されているクロッピング処理によって生成されたレフトビューとライトビューとのPGプレーン、及びそれらから視聴者に知覚される3D映像を示す模式図である。図53の(a)を参照するに、レフトビューPGプレーン5301Lは画面5302の範囲からオフセット値5201Lだけ右に変位している。その結果、レフトビューPGプレーン5301L内の字幕の2D映像5303は、元の位置よりもオフセット値5201Lだけ右に変位して見える。図53の(b)を参照するに、ライトビューPGプレーン5301Rは逆に、画面5302の範囲からオフセット値5201Rだけ左に変位している。その結果、ライトビューPGプレーン5301R内の字幕の2D映像5303は、元の位置よりもオフセット値5201Rだけ左に変位して見える。それらのPGプレーン5301L、5301Rを画面5302に交互に表示するとき、図53の(c)に示されているように、視聴者5304には字幕の3D映像5305が画面5302よりも手前に見える。そのときの3D映像5305と画面5302との間の距離はオフセット値5201L、5201Rによって調節可能である。PGプレーン・データ5104内の各画素データの位置を、図52の(a)、(b)に示されている方向とは逆に変化させたときは、視聴者5304には字幕の3D映像5305が画面5302よりも奥に見える。
このように、1プレーン+オフセット・モードではクリッピング処理を利用して、一つのプレーン・データから、レフトビューとライトビューとのプレーン・データの対が生成される。それにより、一つのプレーン・データからでも、視差映像を表示することができる。すなわち、平面的なイメージに対して奥行き感を与えることができる。特に視聴者にその平面的なイメージを画面から浮かび上がるようにも、画面の奥に沈み込むようにも見せることができる。尚、1プレーン+ゼロ・オフセット・モードではオフセット値が“0”であるので、平面的なイメージがそのまま維持される。
図51を再び参照するに、イメージ・プレーン・データ5106は、プログラム実行部4906からシステム・ターゲット・デコーダ4903へ転送されたグラフィックス・データが、システム・ターゲット・デコーダ4903によって復号されたものである。そのグラフィックス・データはJPEG又はPNG等のラスタデータであり、メニュー等のGUI用グラフィックス部品を表す。第4クロッピング処理部5134はイメージ・プレーン・データ5106に対するクロッピング処理を他のクロッピング処理部5131−5133と同様に行う。但し、第4クロッピング処理部5134は他のクロッピング処理部5131−5133とは異なり、オフセット値をシステム・ターゲット・デコーダ4903ではなく、プログラムAPI5152から受け取る。ここで、プログラムAPI5152はプログラム実行部4906によって実行される。それにより、グラフィックス・データの表すイメージの奥行きに相当するオフセット値が算出されて、第4クロッピング処理部5134に渡される。
第1加算部5141はまず、スイッチ5120からはビデオ・プレーン・データを受信し、第1クロッピング処理部5131からは副映像プレーン・データを受信する。第1加算部5141は次に、ビデオ・プレーン・データと副映像プレーン・データとを一組ずつ重畳して第2加算部5142に渡す。第2加算部5142は、第2クロッピング処理部5132からPGプレーン・データを受信し、第1加算部5141からのプレーン・データに重畳して第3加算部5143に渡す。第3加算部5143は、第3クロッピング処理部5133からIGプレーン・データを受信し、第2加算部5142からのプレーン・データに重畳して第4加算部5144に渡す。第4加算部5144は、第4クロッピング処理部5134からイメージ・プレーン・データを受信し、第3加算部5143からのプレーン・データに重畳して表示装置103へ送出する。その結果、図51に矢印5100で示されている順序で、左映像プレーン・データ5101又は右映像プレーン・データ5102、副映像プレーン・データ5103、PGプレーン・データ5104、IGプレーン・データ5105、及びイメージ・プレーン・データ5106は重畳される。それらの合成処理により、各プレーン・データの示す映像は表示装置103の画面上に、左映像プレーン又は右映像プレーン、副映像プレーン、IGプレーン、PGプレーン、及びイメージ・プレーンの順に重ねられたように表示される。
プレーン加算部4910は上記の処理の他に、四つの加算部5141−5144によって合成されたプレーン・データの出力形式を、表示装置103等、そのデータの出力先の装置による3D映像の表示方式に合わせて変換する。例えば出力先の装置が経時分離方式を利用するとき、プレーン加算部4910は合成後のプレーン・データを一つの映像フレーム又はフィールドとして送出する。一方、出力先の装置がレンチキュラーレンズを利用するとき、プレーン加算部4910は内蔵のバッファ・メモリを利用して、レフトビューとライトビューとのプレーン・データの対を一つの映像フレーム又はフィールドに合成して送出する。具体的には、プレーン加算部4910は、先に合成されたレフトビュー・プレーン・データを一旦、そのバッファ・メモリに格納して保持する。プレーン加算部4910は続いて、ライトビュー・プレーン・データを合成して、バッファ・メモリに保持されたレフトビュー・プレーン・データと更に合成する。その合成では、レフトビューとライトビューとの各プレーン・データが縦方向に細長い短冊形の小領域に分割され、各小領域が一つのフレーム又はフィールドの中に横方向に交互に並べられて一つのフレーム又はフィールドに再構成される。こうして、レフトビューとライトビューとのプレーン・データの対が一つの映像フレーム又はフィールドに合成される。プレーン加算部4910はその合成後の映像フレーム又はフィールドを出力先の装置へ送出する。
<映像のシームレス再生のためにデータ・ブロックのサイズが満たすべき条件>
本発明の実施形態によるBD−ROMディスク101では、図16、34に示されているとおり、ベースビュー・データ・ブロックとディペンデントビュー・データ・ブロックとが一つずつ交互に配置され、インターリーブ配置を形成している。更に、層境界等、ロングジャンプが必要な箇所では、図21−29、34に示されているとおり、ベースビュー・データ・ブロックとその複製データとが2D再生専用ブロックと3D再生専用ブロックとして配置されている。これらのデータ・ブロックの配置は上記の説明どおり、2D映像と3D映像とのいずれのシームレス再生にも有利である。それらのシームレス再生を更に確実に実現するには、各データ・ブロックのサイズは、再生装置102の性能に基づく条件を満たせばよい。以下、それらの条件について説明する。
≪2D再生モードの性能に基づく条件≫
図54は、2D再生モードの再生装置102内の再生処理系統を示す模式図である。図54を参照するに、その再生処理系統は、図46に示されている要素のうち、BD−ROMドライブ4601、リード・バッファ4602、及びシステム・ターゲット・デコーダ4603を含む。BD−ROMドライブ4601はBD−ROMディスク101から2Dエクステントを読み出し、読み出し速度Rud−2Dでリード・バッファ4602へ転送する。システム・ターゲット・デコーダ4603は、リード・バッファ4602内に蓄積された各2Dエクステントからソースパケットを平均転送速度Rext2Dで読み出し、映像データVDと音声データADとに復号する。
平均転送速度Rext2Dは、図37に示されているソース・デパケタイザ3711からPIDフィルタ3713へのTSパケットの平均転送速度RTSの192/188倍に等しく、一般に2Dエクステントごとに異なる。平均転送速度Rext2Dの最大値Rmax2Dは、ファイル2Dに対するシステムレートの192/188倍に等しい。ここで、そのシステムレートは、図31に示されているように、2Dクリップ情報ファイルに規定されている。また、上記の係数192/188はソースパケットとTSパケットとの間のバイト数の比に等しい。平均転送速度Rext2Dは通常ビット/秒で表され、具体的には、ビット単位で表された2DエクステントのサイズをエクステントATC時間で割ったときの値に等しい。「ビット単位で表されたエクステントのサイズ」は、そのエクステント内のソースパケット数とソースパケット一つ当たりのバイト数(=192バイト)との積の8倍に等しい。
読み出し速度Rud−2Dは通常ビット/秒で表され、平均転送速度Rext2Dの最高値Rmax2Dよりも高い値、例えば54Mbpsに設定される:Rud−2D>Rmax2D。それにより、BD−ROMドライブ4601がBD−ROMディスク101から一つの2Dエクステントを読み出している間、システム・ターゲット・デコーダ4603の復号処理に伴うリード・バッファ4602のアンダーフローが防止される。
図55の(a)は、2Dエクステントの再生処理中、リード・バッファ4602に蓄積されるデータ量DAの変化を示すグラフである。図55の(b)は、それらの2Dエクステントを含む3Dエクステント・ブロック5510と2D再生モードでの再生経路5520との間の対応関係を示す模式図である。図55の(b)を参照するに、3Dエクステント・ブロック5510は、インターリーブ配置のベースビュー・データ・ブロック群とディペンデントビュー・データ・ブロック群とで構成されている。再生経路5520に従い、各ベースビュー・データ・ブロックL0、L1、…が一つの2DエクステントEXT2D[0]、EXT2D[1]、…として、BD−ROMディスク101からリード・バッファ4602へ読み出される。まず、先頭のベースビュー・データ・ブロックL0、すなわち2DエクステントEXT2D[0]の読み出し期間PR2D[0]では、図55の(a)に示されているように、蓄積データ量DAは、読み出し速度Rud−2Dと平均転送速度Rext2D[0]との間の差Rud−2D−Rext2D[0]に等しい速度で増加する。
先頭の2DエクステントEXT2D[0]の後端が読み出された時に最初のジャンプJ2D[0]が生じる。そのジャンプ期間PJ2D[0]では、後続の二つのデータ・ブロックD1、R1の読み出しがスキップされるので、BD−ROMディスク101からのデータの読み出しが停止する。従って、最初のジャンプ期間PJ2D[0]では、図55の(a)に示されているように、蓄積データ量DAは平均転送速度Rext2D[0]で減少する。
ここで、次の場合を想定する:最初の読み出し期間PR2D[0]にリード・バッファ4602に蓄積されたデータ量、すなわち先頭の2DエクステントEXT2D[0]のサイズSext2D[0]が、その読み出し期間PR2D[0]から最初のジャンプ期間PJ2D[0]にわたってリード・バッファ4602からシステム・ターゲット・デコーダ4603へ転送されるデータ量に等しい。その場合、図55の(a)に示されているように、蓄積データ量DAは最初のジャンプ期間PJ2D[0]の終了時、最初の読み出し期間PR2D[0]の開始時での値を下回らない。
最初のジャンプJ2D[0]に続いて次のベースビュー・データ・ブロックL1、すなわち2DエクステントEXT2D[1]の読み出しが開始される。その読み出し期間PR2D[1]では、図55の(a)に示されているように、蓄積データ量DAは、データ転送速度の差Rud−2D−Rext2D[1]に等しい速度で再び増加する。
実際には、BD−ROMドライブ4601は読み出し/転送動作を、図55の(a)に示されているように連続的にではなく断続的に行う。それにより、各2Dエクステントの読み出し期間PR2D[0]、PR2D[1]、…に蓄積データ量DAがリード・バッファ4602の容量を超えないように、すなわちリード・バッファ4602がオーバーフローを生じないようにする。従って、図55の(a)のグラフは、実際には階段状である増減を直線的な増減として近似的に表したものである。
以上のように、2D再生モードでは再生経路5520に従い、2DエクステントLn=EXT2D[n](n=0、1、2、…)の読み出しと、一対のディペンデントビュー・データ・ブロックDn、Rnの記録領域を越えるジャンプJ2D[n]とが交互に繰り返される。それに伴い、リード・バッファ4602の蓄積データ量DAは、読み出し期間PR2D[n]では速度Rud−2D−Rext2D[n]で増加し、ジャンプ期間PJ2D[n]では速度Rext2D[n]で減少する。従って、それらの2DエクステントEXT2D[n]から2D映像をシームレスに再生するには、以下の条件[1]、[2]が満たされればよい。
[1]各ジャンプ期間PJ2D[n]でリード・バッファ4602からシステム・ターゲット・デコーダ4603へのデータ供給を維持して、そのデコーダ4603の連続的な出力を確保する必要がある。図55の(a)から明らかなとおり、各読み出し期間PR2D[n]にリード・バッファ4602に蓄積されるデータ量、すなわち各2DエクステントEXT2D[n]のサイズSext2D[n]が、その読み出し期間PR2D[n]から次のジャンプ期間PJ2D[n]にわたってリード・バッファ4602からシステム・ターゲット・デコーダ4603へ転送されるデータ量に等しければ、そのジャンプ期間PJ2D[n]の途中で蓄積データ量DAがその読み出し期間PR2D[n]の直前の値まで戻ることはない。特にリード・バッファ4602はアンダーフローを生じない。ここで、読み出し期間PR2D[n]の長さは、2DエクステントEXT2D[n]のサイズSext2D[n]を読み出し速度Rud−2Dで割った値Sext2D[n]/Rud−2Dに等しい。従って、各2DエクステントEXT2D[n]のサイズSext2D[n]は次式(1)を満たせばよい:
式(1)では、ジャンプ時間Tjump−2D[n]はジャンプ期間PJ2D[n]の長さであり、秒単位で表される。一方、読み出し速度Rud−2Dと平均転送速度Rext2Dとはいずれもビット/秒で表される。従って、式(1)では平均転送速度Rext2Dを数「8」で割り、2DエクステントのサイズSext2D[n]の単位をビットからバイトへ変換している。すなわち、2DエクステントのサイズSext2D[n]はバイト単位で表される。関数CEIL()は、括弧内の数値の小数点以下の端数を切り上げる操作を意味する。
[2]リード・バッファ4602の容量は有限であることから、ジャンプ時間Tjump−2D[n]の最大値は制限される。すなわち、ジャンプ期間PJ2D[n]の直前に蓄積データ量DAがリード・バッファ4602の容量一杯であっても、ジャンプ時間Tjump−2D[n]が長すぎれば、ジャンプ期間PJ2D[n]中に蓄積データ量DAが0に達し、リード・バッファ4602のアンダーフローが生じる危険性がある。以下、BD−ROMディスク101からリード・バッファ4602へのデータ供給が途絶えている状態で蓄積データ量DAがリード・バッファ4602の最大容量から0に到達するまでの時間、すなわち、シームレス再生を保証できるジャンプ時間Tjump−2Dの最大値を「最大ジャンプ時間」という。
光ディスクの規格では通常、ジャンプ距離と最大ジャンプ時間との間の関係が光ディスクドライブのアクセス・スピード等から決められている。図56は、BD−ROMディスクに関するジャンプ距離Sjumpと最大ジャンプ時間Tjumpとの間の対応表の一例である。図56では、ジャンプ距離Sjumpはセクタ単位で表され、最大ジャンプ時間Tjumpはm秒単位で表されている。ここで、1セクタ=2048バイトとする。図56を参照するに、ジャンプ距離Sjumpが、0セクタ、1−10000セクタ、10001−20000セクタ、20001−40000セクタ、40001セクタ−1/10ストローク、及び1/10ストローク以上の各範囲に属するとき、最大ジャンプ時間Tjumpはそれぞれ、50m秒、250m秒、300m秒、350m秒、700m秒、及び1400m秒である。
ジャンプ距離Sjumpが0セクタに等しいときの最大ジャンプ時間を特に「ゼロ・セクタ遷移時間Tjump−0」という。「ゼロ・セクタ遷移」とは、二つの連続するデータ・ブロック間での光ピックアップの移動をいう。ゼロ・セクタ遷移期間では光ピックアップは読み出し動作を一旦停止して待機する。ゼロ・セクタ遷移時間は、BD−ROMディスク101の回転による光ピックアップの位置の移動時間の他に、誤り訂正処理に伴うオーバーヘッドを含んでもよい。「誤り訂正処理に伴うオーバーヘッド」とは、二つの連続するデータ・ブロック間の境界がECCブロック間の境界と一致していないときに、そのECCブロックを用いた誤り訂正処理が二回行われることに起因する余分な時間をいう。誤り訂正処理には一つのECCブロックの全体が必要である。従って、一つのECCブロックが二つの連続するデータ・ブロックに共有されているとき、いずれのデータ・ブロックの読み出し処理でもそのECCブロックの全体が読み出されて誤り訂正処理に利用される。その結果、それらのデータ・ブロックを一つ読み出すごとに、そのデータ・ブロックの他に最大32セクタの余分なデータが読み出される。誤り訂正処理に伴うオーバーヘッドは、その余分なデータの読み出し時間の合計、すなわち32[セクタ]×2048[バイト]×8[ビット/バイト]×2[回]/読み出し速度Rud−2Dで評価される。尚、各データ・ブロックをECCブロック単位で構成することにより、誤り訂正処理に伴うオーバーヘッドをゼロ・セクタ遷移時間から除外してもよい。
BD−ROMディスク101が多層ディスクであるとき、層切り換えを伴うロングジャンプでは、図56に規定された最大ジャンプ時間Tjumpに加えて、フォーカス・ジャンプ等、その記録層の切り換え操作に特定の時間、例えば350m秒が更に必要である。以下、この時間を「層切換時間」という。
以上のことから、式(1)に代入されるべきジャンプ時間Tjump−2D[n]は二つのパラメータTJ[n]、TL[n]の和で決まる:Tjump−2D[n]=TJ[n]+TL[n]。第1パラメータTJ[n]は、BD−ROMディスクの規格によってジャンプ距離別に規定された最大ジャンプ時間を表す。第1パラメータTJ[n]は例えば図56の表において、n番目の2DエクステントEXT2D[n]の後端から(n+1)番目の2DエクステントEXT2D[n+1]の先端までのセクタ数、すなわちジャンプ距離に対応する最大ジャンプ時間に等しい。第2パラメータTL[n]は、n番目の2DエクステントEXT2D[n]と(n+1)番目の2DエクステントEXT2D[n+1]との間に層境界LBがあるときは層切換時間、例えば350m秒を表し、層境界LBがないときは0を表す。例えばジャンプ時間Tjump−2D[n]の最大値が700m秒に制限されるとき、二つの2DエクステントEXT2D[n]、EXT2D[n+1]間のジャンプ距離は、それらの2Dエクステント間に層境界がないときは1/10ストローク(=約1.2GB)まで許され、層境界があるときは40000セクタ(=約78.1MB)まで許される。
≪3D再生モードに基づく条件≫
図57は、3D再生モードの再生装置102内の再生処理系統を示す模式図である。図57を参照するに、その再生処理系統は、図49に示されている要素のうち、BD−ROMドライブ4901、スイッチ4911、第1リード・バッファ4921、第2リード・バッファ4922、及びシステム・ターゲット・デコーダ4903を含む。BD−ROMドライブ4901はBD−ROMディスク101から3Dエクステントを読み出し、読み出し速度Rud−3Dでスイッチ4911へ転送する。スイッチ4911は各3Dエクステントからベースビュー・エクステントを抽出して、ディペンデントビュー・エクステントと分離する。ベースビュー・エクステントは第1リード・バッファ4921へ格納され、ディペンデントビュー・エクステントは第2リード・バッファ4922へ格納される。第2リード・バッファ4922内の蓄積データは、L/Rモードではライトビュー・エクステントであり、デプス・モードではデプスマップ・エクステントである。システム・ターゲット・デコーダ4903は、第1リード・バッファ4921内に蓄積された各ベースビュー・エクステントからソースパケットを第1平均転送速度Rext1で読み出す。L/Rモードのシステム・ターゲット・デコーダ4903は、第2リード・バッファ4922内に蓄積された各ライトビュー・エクステントからソースパケットを第2平均転送速度Rext2で読み出す。デプス・モードのシステム・ターゲット・デコーダ4903は、第2リード・バッファ4922内に蓄積された各デプスマップ・エクステントからソースパケットを第3平均転送速度Rext3で読み出す。システム・ターゲット・デコーダ4903は更に、読み出されたベースビュー・エクステントとディペンデントビュー・エクステントとの対を映像データVDと音声データADとに復号する。
第1平均転送速度Rext1を「ベースビュー転送速度」という。ベースビュー転送速度Rext1は、図50に示されている第1ソース・デパケタイザ5011から第1PIDフィルタ5013へのTSパケットの平均転送速度RTS1の192/188倍に等しく、一般にベースビュー・エクステントごとに異なる。ベースビュー転送速度Rext1の最高値Rmax1はファイル2Dに対するシステムレートの192/188倍に等しい。そのシステムレートは2Dクリップ情報ファイルに規定されている。ベースビュー転送速度Rext1は通常ビット/秒で表され、具体的には、ビット単位で表されたベースビュー・エクステントのサイズをエクステントATC時間で割ったときの値に等しい。エクステントATC時間は、そのベースビュー・エクステント内のソースパケットに付与されたATSの範囲を表す。従って、エクステントATC時間は、そのベースビュー・エクステント内のソースパケットを全て、第1リード・バッファ4921からシステム・ターゲット・デコーダ4903へ転送するのに要する時間に等しい。
第2平均転送速度Rext2を「ライトビュー転送速度」といい、第3平均転送速度Rext3を「デプスマップ転送速度」という。いずれの転送速度Rext2、Rext3も、第2ソース・デパケタイザ5012から第2PIDフィルタ5014へのTSパケットの平均転送速度RTS2の192/188倍に等しく、一般にディペンデントビュー・エクステントごとに異なる。ライトビュー転送速度Rext2の最高値Rmax2は第1ファイルDEPに対するシステムレートの192/188倍と等しく、デプスマップ転送速度Rext3の最高値Rmax3は第2ファイルDEPに対するシステムレートの192/188倍に等しい。各システムレートはライトビュー・クリップ情報ファイルとデプスマップ・クリップ情報ファイルとに規定されている。各転送速度Rext2、Rext3は通常ビット/秒で表され、具体的には、ビット単位で表されたディペンデントビュー・エクステントのサイズをエクステントATC時間で割ったときの値に等しい。エクステントATC時間は、各ディペンデントビュー・エクステント内のソースパケットに付与されたATSの範囲を表す。従って、エクステントATC時間は、そのディペンデントビュー・エクステント内のソースパケットを全て、第2リード・バッファ4922からシステム・ターゲット・デコーダ4903へ転送するのに要する時間に等しい。
読み出し速度Rud−3Dは通常ビット/秒で表され、第1−3平均転送速度Rext1−Rext3のいずれの最高値Rmax1−Rmax3よりも高い値、例えば72Mbpsに設定される:Rud−3D>Rmax1、Rud−3D>Rmax2、Rud−3D>Rmax3。それにより、BD−ROMドライブ4901によってBD−ROMディスク101から一つの3Dエクステントを読み出している間、システム・ターゲット・デコーダ4903の復号処理に伴う各リード・バッファ4921、4922のアンダーフローが防止される。
[L/Rモード]
図58の(a)、(b)は、L/Rモードでの3Dエクステント・ブロックの再生処理中、各リード・バッファ4921、4922に蓄積されるデータ量DA1、DA2の変化を示すグラフである。図58の(c)は、その3Dエクステント・ブロック5810とL/Rモードでの再生経路5820との間の対応関係を示す模式図である。図58の(c)を参照するに、3Dエクステント・ブロック5810は、インターリーブ配置のベースビュー・データ・ブロック群とディペンデントビュー・データ・ブロック群とで構成されている。再生経路5820に従い、隣接するライトビュー・データ・ブロックRkとベースビュー・データ・ブロックLkとの各対(k=0、1、2、…)が一つの3DエクステントEXTSS[k]として読み出される。ここでは説明の便宜上、(n−1)個の3Dエクステントが既に読み出され、かつ整数nが1より十分に大きい場合を想定する。その場合、両リード・バッファ4921、4922の蓄積データ量DA1、DA2は既にそれぞれの下限値UL1、UL2以上に維持されている。それらの下限値UL1、UL2を「バッファ余裕量」という。バッファ余裕量UL1、UL2を確保するための方法については後述する。
図58の(c)を参照するに、第(2n−1)読み出し期間PRR[n]にn番目のライトビュー・エクステントRnがBD−ROMディスク101から第2リード・バッファ4922へ読み出される。第(2n−1)読み出し期間PRR[n]では、図58の(b)に示されているように、第2リード・バッファ4922の蓄積データ量DA2は、読み出し速度Rud−3Dとライトビュー転送速度Rext2[n]との間の差Rud−3D−Rext2[n]に等しい速度で増加する。一方、図58の(a)に示されているように、第1リード・バッファ4921の蓄積データ量DA1はベースビュー転送速度Rext1[n−1]で減少する。
n番目のライトビュー・エクステントRnの後端が読み出された時、n回目のゼロ・セクタ遷移J0[n]が生じる。第nゼロ・セクタ遷移期間PJ0[n]では、BD−ROMディスク101からのデータの読み出しが停止する。従って、第1リード・バッファ4921の蓄積データ量DA1はベースビュー転送速度Rext1[n−1]で減少し続け、第2リード・バッファ4922の蓄積データ量DA2はライトビュー転送速度Rext2[n]で減少する。
第nゼロ・セクタ遷移期間PJ0[n]の終了時点から、第2n読み出し期間PRL[n]が開始される。第2n読み出し期間PRL[n]ではn番目のベースビュー・エクステントLnがBD−ROMディスク101から第1リード・バッファ4921へ読み出される。従って、図58の(a)に示されているように、第1リード・バッファ4921の蓄積データ量DA1は、読み出し速度Rud−3Dとベースビュー転送速度Rext1[n]との間の差Rud−3D−Rext1[n]に等しい速度で増加する。一方、図58の(b)に示されているように、第2リード・バッファ4922の蓄積データ量DA2はライトビュー転送速度Rext2[n]で減少し続ける。
n番目のベースビュー・エクステントLnの後端が読み出された時、n番目のジャンプJLR[n]が生じる。第nジャンプ期間PJLR[n]では(n+1)番目のデプスマップ・エクステントD(n+1)の読み出しがスキップされるので、BD−ROMディスク101からのデータの読み出しが停止する。従って、第nジャンプ期間PJLR[n]では、図58の(a)に示されているように、第1リード・バッファ4921の蓄積データ量DA1はベースビュー転送速度Rext1[n]で減少する。一方、図58の(b)に示されているように、第2リード・バッファ4922の蓄積データ量DA2はライトビュー転送速度Rext2[n]で減少し続ける。
ここで、次の場合を想定する:第(2n−1)読み出し期間PRR[n]に第2リード・バッファ4922に蓄積されるデータ量、すなわちn番目のライトビュー・エクステントRnのサイズSext2[n]は少なくとも、第(2n−1)読み出し期間PRR[n]から第nジャンプ期間PJLR[n]にわたって第2リード・バッファ4922からシステム・ターゲット・デコーダ4903へ転送されるデータ量に等しい。その場合、ジャンプ期間PJLR[n]の終了時、図58の(b)に示されているように、第2リード・バッファ4922の蓄積データ量DA2が第2バッファ余裕量UL2を下回らない。
第nジャンプ期間PJLR[n]の終了時点から第(2n+1)読み出し期間PRR[n+1]が開始される。第(2n+1)読み出し期間PRR[n+1]では、(n+1)番目のライトビュー・エクステントR(n+1)がBD−ROMディスク101から第2リード・バッファ4922へ読み出される。従って、図58の(b)に示されているように、第2リード・バッファ4922の蓄積データ量DA2は、読み出し速度Rud−3Dとライトビュー転送速度Rext2[n+1]との間の差Rud−3D−Rext2[n+1]に等しい速度で増加する。一方、図58の(a)に示されているように、第1リード・バッファ4921の蓄積データ量DA1はベースビュー転送速度Rext1[n]で減少し続ける。
(n+1)番目のライトビュー・エクステントR(n+1)の後端が読み出された時、(n+1)回目のゼロ・セクタ遷移J0[n+1]が生じる。第(n+1)ゼロ・セクタ遷移期間PJ0[n+1]ではBD−ROMディスク101からのデータの読み出しが停止する。従って、第1リード・バッファ4921の蓄積データ量DA1はベースビュー転送速度Rext1[n]で減少し続け、第2リード・バッファ4922の蓄積データ量DA2はライトビュー転送速度Rext2[n+1]で減少する。
ここで、次の場合を想定する:第2n読み出し期間PRL[n]に第1リード・バッファ4921に蓄積されるデータ量、すなわちn番目のベースビュー・エクステントLnのサイズSext1[n]は少なくとも、第2n読み出し期間PRL[n]から第(n+1)ゼロ・セクタ遷移期間PJ0[n+1]にわたって第1リード・バッファ4921からシステム・ターゲット・デコーダ4903へ転送されるデータ量に等しい。その場合、第(n+1)ゼロ・セクタ遷移期間PJ0[n+1]の終了時、図58の(a)に示されているように、第1リード・バッファ4921の蓄積データ量DA1が第1バッファ余裕量UL1を下回らない。
3DエクステントEXTSS[n]=Rn+Ln、EXTSS[n+1]=R(n+1)+L(n+1)、…から、それらの間のジャンプにかかわらず、3D映像をシームレスに再生するには、上記と同様な蓄積データ量DA1、DA2の変化が繰り返されればよい。それには、以下の条件[3]、[4]、[5]が満たされればよい。
[3]n番目のベースビュー・エクステントLnのサイズSext1[n]は少なくとも、第2n読み出し期間PRL[n]から第(n+1)ゼロ・セクタ遷移期間PJ0[n+1]にわたって第1リード・バッファ4921からシステム・ターゲット・デコーダ4903へ転送されるデータ量に等しい。ここで、第2n読み出し期間PRL[n]の長さは、n番目のベースビュー・エクステントLnのサイズSext1[n]を読み出し速度Rud−3Dで割った値Sext1[n]/Rud−3Dに等しい。第(2n+1)読み出し期間PRR[n+1]の長さは、(n+1)番目のライトビュー・エクステントR(n+1)のサイズSext2[n+1]を読み出し速度Rud−3Dで割った値Sext2[n+1]/Rud−3Dに等しい。従って、n番目のベースビュー・エクステントLnのサイズSext1[n]は次式(2)を満たせばよい:
[4]n番目のライトビュー・エクステントRnのサイズSext2[n]は少なくとも、第(2n−1)読み出し期間PRR[n]から第nジャンプ期間PJLR[n]にわたって第2リード・バッファ4922からシステム・ターゲット・デコーダ4903へ転送されるデータ量に等しい。ここで、第(2n−1)読み出し期間PRR[n]の長さは、n番目のライトビュー・エクステントRnのサイズSext2[n]を読み出し速度Rud−3Dで割った値Sext2[n]/Rud−3Dに等しい。従って、n番目のライトビュー・エクステントRnのサイズSext2[n]は次式(3)を満たせばよい:
[5]式(2)、(3)に代入されるべきジャンプ時間Tjump−3D[n]は、式(1)に代入されるべきジャンプ時間Tjump−2D[n]とは異なり、第1パラメータTJ[n]だけで決まる:Tjump−3D[n]=TJ[n]。第1パラメータTJ[n]は例えば図56の表において、n番目のベースビュー・エクステントLnの後端から(n+1)番目のライトビュー・エクステントR(n+1)の先端までのセクタ数、すなわちジャンプ距離に対応する最大ジャンプ時間に等しい。
[デプス・モード]
図59の(a)、(b)は、デプス・モードでの3Dエクステント・ブロック再生処理中、各リード・バッファ4921、4922に蓄積されるデータ量DA1、DA2の変化を示すグラフである。図59の(c)は、その3Dエクステント・ブロック5910とデプス・モードでの再生経路5920との間の対応関係を示す模式図である。図59の(c)を参照するに、3Dエクステント・ブロック5910は、図58の(c)に示されている3Dエクステント・ブロック5810と同様なインターリーブ配置のデータ・ブロック群で構成されている。再生経路5920に従い、デプスマップ・データ・ブロックDkとベースビュー・データ・ブロックDkとがそれぞれ、一つのエクステントとして読み出される(k=0、1、2、…)。図58の場合と同様、(n−1)個の3Dエクステントが既に読み込まれ、かつ整数nが1より十分に大きい場合を想定する。その場合、両リード・バッファ4921、4922の蓄積データ量DA1、DA2は既にそれぞれのバッファ余裕量UL1、UL2以上に維持されている。
図59の(c)を参照するに、第(2n−1)読み出し期間PRD[n]にn番目のデプスマップ・エクステントDnがBD−ROMディスク101から第2リード・バッファ4922へ読み出される。第(2n−1)読み出し期間PRD[n]では、図59の(b)に示されているように、第2リード・バッファ4922の蓄積データ量DA2は、読み出し速度Rud−3Dとデプスマップ転送速度Rext3[n]との間の差Rud−3D−Rext3[n]に等しい速度で増加する。一方、図59の(a)に示されているように、第1リード・バッファ4921の蓄積データ量DA1はベースビュー転送速度Rext1[n−1]で減少する。
n番目のデプスマップ・エクステントDnの後端が読み出された時、n回目のジャンプJLD[n]が生じる。第nジャンプ期間PJLD[n]では、n番目のライトビュー・エクステントRnの読み出しがスキップされるので、BD−ROMディスク101からのデータの読み出しが停止する。従って、第nジャンプ期間PJLD[n]では、図59の(a)に示されているように、第1リード・バッファ4921の蓄積データ量DA1はベースビュー転送速度Rext1[n−1]で減少し続ける。一方、図59の(b)に示されているように、第2リード・バッファ4922の蓄積データ量DA2はデプスマップ転送速度Rext3[n]で減少する。
第nジャンプ期間PJLD[n]の終了時点から第2n読み出し期間PRL[n]が開始される。第2n読み出し期間PRL[n]では、n番目のベースビュー・エクステントLnがBD−ROMディスク101から第1リード・バッファ4921へ読み出される。従って、図59の(a)に示されているように、第1リード・バッファ4921の蓄積データ量DA1は、読み出し速度Rud−3Dとベースビュー転送速度Rext1[n]との間の差Rud−3D−Rext1[n]に等しい速度で増加する。一方、図59の(b)に示されているように、第2リード・バッファ4922の蓄積データ量DA2はデプスマップ転送速度Rext3[n]で減少し続ける。
n番目のベースビュー・エクステントLnの後端が読み出された時、n回目のゼロ・セクタ遷移J0[n]が生じる。第nゼロ・セクタ遷移期間PJ0[n]では、BD−ROMディスク101からのデータの読み出しが停止する。従って、第1リード・バッファ4921の蓄積データ量DA1はベースビュー転送速度Rext1[n]で減少し、第2リード・バッファ4922の蓄積データ量DA2はデプスマップ転送速度Rext3[n]で減少し続ける。
ここで、次の場合を想定する:第(2n−1)読み出し期間PRD[n]に第2リード・バッファ4922に蓄積されるデータ量、すなわちn番目のデプスマップ・エクステントDnのサイズSext3[n]は少なくとも、第(2n−1)読み出し期間PRD[n]から第nゼロ・セクタ遷移期間PJ0[n]にわたって第2リード・バッファ4922からシステム・ターゲット・デコーダ4903へ転送されるデータ量に等しい。その場合、第nゼロ・セクタ遷移期間PJ0[n]の終了時、図59の(b)に示されているように、第2リード・バッファ4922の蓄積データ量DA2が第2バッファ余裕量UL2を下回らない。
第nゼロ・セクタ遷移期間PJ0[n]の終了時点から第(2n+1)読み出し期間PRD[n+1]が開始される。第(2n+1)読み出し期間PRD[n+1]では(n+1)番目のデプスマップ・エクステントD(n+1)がBD−ROMディスク101から第2リード・バッファ4922へ読み出される。従って、図59の(a)に示されているように、第1リード・バッファ4921の蓄積データ量DA1はベースビュー転送速度Rext1[n]で減少し続ける。一方、図59の(b)に示されているように、第2リード・バッファ4922の蓄積データ量DA2は速度Rud−3D−Rext3[n+1]で増加する。
(n+1)番目のデプスマップ・エクステントD(n+1)の後端が読み出された時、(n+1)回目のジャンプJLD[n+1]が生じる。第(n+1)ジャンプ期間PJLD[n+1]では、(n+1)番目のライトビュー・エクステントR(n+1)の読み出しがスキップされるので、BD−ROMディスク101からのデータの読み出しが停止する。従って、第(n+1)ジャンプ期間PJLD[n+1]では、第1リード・バッファ4921の蓄積データ量DA1はベースビュー転送速度Rext1[n]で減少し続け、第2リード・バッファ4922の蓄積データ量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リード・バッファ4921へ読み出される。従って、図59の(a)に示されているように、第1リード・バッファ4921の蓄積データ量DA1は速度Rud−3D−Rext1[n+1]で増加する。一方、図59の(b)に示されているように、第2リード・バッファ4922の蓄積データ量DA2はデプスマップ転送速度Rext3[n+1]で減少し続ける。
ここで、次の場合を想定する:第2n読み出し期間PRL[n]に第1リード・バッファ4921に蓄積されるデータ量、すなわちn番目のベースビュー・エクステントLnのサイズSext1[n]は少なくとも、第2n読み出し期間PRL[n]から第(n+1)ジャンプ期間PJLD[n+1]にわたって第1リード・バッファ4921からシステム・ターゲット・デコーダ4903へ転送されるデータ量に等しい。その場合、第(n+1)ジャンプ期間PJLD[n+1]の終了時、図59の(a)に示されているように、第1リード・バッファ4921の蓄積データ量DA1が第1バッファ余裕量UL1を下回らない。
デプスマップ・エクステントDn、D(n+1)、…とベースビュー・エクステントLn、L(n+1)、…とから、それらの間のジャンプにかかわらず、3D映像をシームレスに再生するには、上記と同様な蓄積データ量DA1、DA2の変化が繰り返されればよい。それには、以下の条件[6]、[7]、[8]が満たされればよい。
[6]n番目のベースビュー・エクステントLnのサイズSext1[n]は少なくとも、第2n読み出し期間PRL[n]から第(n+1)ジャンプ期間PJLD[n+1]にわたって第1リード・バッファ4921からシステム・ターゲット・デコーダ4903へ転送されるデータ量に等しい。ここで、第2n読み出し期間PRL[n]の長さは、n番目のベースビュー・エクステントLnのサイズSext1[n]を読み出し速度Rud−3Dで割った値Sext1[n]/Rud−3Dに等しい。第(2n+1)読み出し期間PRD[n+1]の長さは、(n+1)番目のデプスマップ・エクステントD(n+1)のサイズSext3[n+1]を読み出し速度Rud−3Dで割った値Sext3[n+1]/Rud−3Dに等しい。従って、n番目のベースビュー・エクステントLnのサイズSext1[n]は次式(4)を満たせばよい:
[7]n番目のデプスマップ・エクステントDnのサイズSext3[n]は少なくとも、第(2n−1)読み出し期間PRD[n]から第nゼロ・セクタ遷移期間PJ0[n]にわたって第2リード・バッファ4922からシステム・ターゲット・デコーダ4903へ転送されるデータ量に等しい。ここで、第(2n−1)読み出し期間PRD[n]の長さは、n番目のデプスマップ・エクステントDnのサイズSext3[n]を読み出し速度Rud−3Dで割った値Sext3[n]/Rud−3Dに等しい。従って、n番目のデプスマップ・エクステントDnのサイズSext3[n]は次式(5)を満たせばよい:
[8]式(4)、(5)に代入されるべきジャンプ時間Tjump−3D[n]は、例えば図56の表において、n番目のデプスマップ・エクステントDnの後端からn番目のベースビュー・エクステントLnの先端までのセクタ数、すなわちジャンプ距離に対応する最大ジャンプ時間に等しい。尚、本発明の実施形態によるデータ・ブロック群の配置では、エクステントATC時間の等しいデプスマップ・エクステントDnとベースビュー・エクステントLnとの対が間に層境界を挟んで配置されることはない。
ゼロ・セクタ遷移時間Tjump−0[n]は、n番目のベースビュー・エクステントLnと(n+1)番目のデプスマップ・エクステントD(n+1)との間における層境界LBの有無に関わらず、実際のゼロ・セクタ遷移に要する時間のみで評価された規定値に等しい。
以上の結果、インターリーブ配置のデータ・ブロック群から、2D映像のシームレス再生、3D映像のL/Rモードでのシームレス再生、及び3D映像のデプス・モードでのシームレス再生のいずれも実現可能にするには、各データ・ブロックのサイズは上記の式(1)−(5)を全て満たすように設計されればよい。特にベースビュー・データ・ブロックのサイズは、式(1)、(3)、及び(5)の各右辺の中で最大のもの以上であればよい。以下、式(1)−(5)を全て満たすデータ・ブロックのサイズの下限値を「最小エクステント・サイズ」という。
<リード・バッファの余裕量>
図58、59の各(a)、(b)に示されている各リード・バッファ4921、4922の蓄積データ量DA1、DA2の下限値UL1、UL2はそれぞれのバッファ余裕量を表す。「バッファ余裕量」とは、一つの3Dエクステント・ブロック、すなわちインターリーブ配置の一連のデータ・ブロック群の読み出し期間中、各リード・バッファに維持されるべき蓄積データ量の下限値をいう。ストリーム・データの読み出し中に、読み出し対象の記録層が切り換えられるとき、又は他のファイルの読み出し処理が割り込まれたとき、異なる3Dエクステント・ブロック間でロングジャンプが生じる。ここで、上記の他のファイルは、図5に示されているAVストリーム・ファイル以外のファイル、例えば、ムービーオブジェクト・ファイル512、BD−Jオブジェクト・ファイル551、及びJARファイル561を含む。ロングジャンプは、式(2)−(5)の導出で考慮された一つの3Dエクステント・ブロック内で生じるジャンプよりも長い。更に、他のファイルの読み出し処理の割り込みに起因するロングジャンプでは、その発生時期が不定であり、特に一つのデータ・ブロックの読み出し途中でも生じ得る。従って、式(2)−(5)にロングジャンプの最大ジャンプ時間を代入して最小エクステント・サイズを設定するよりも、バッファ余裕量を、ロングジャンプ中での各リード・バッファのアンダーフローを防ぐことのできる量に維持しておく方が有利である。
図60は、L/Rモードでの再生処理中に生じるロングジャンプJLY、JBDJ1、JBDJ2を示す模式図である。図60を参照するに、層境界LBの前に位置する第1記録層には、第1の3Dエクステント・ブロック6001が配置され、その後端L3と層境界LBとの間には2D再生専用ブロックL42Dが配置されている。一方、層境界LBの後に位置する第2記録層には第2の3Dエクステント・ブロック6002が配置されている。更に、いずれの3Dエクステント・ブロック6001、6002からも離れた領域にBD−Jオブジェクト・ファイル6003が記録されている。第1の3Dエクステント・ブロック6001から第2の3Dエクステント・ブロック6002への再生処理では、層切り換えに伴うロングジャンプJLYが生じる。一方、第1の3Dエクステント・ブロック6001の読み出し中にBD−Jオブジェクト・ファイル6003の読み出し処理が割り込まれたとき、一対のロングジャンプJBDJ1、JBDJ2が生じる。各ロングジャンプJLY、JBDJに対して必要なバッファ余裕量UL1、UL2は以下のように計算される。
層切り換えに伴うロングジャンプJLYの最大ジャンプ時間Tjump−LYは、図56の表において第1ロングジャンプJLYのジャンプ距離に対応する最大ジャンプ時間と層切換時間との和に等しい。そのジャンプ距離は、第1の3Dエクステント・ブロック6001内の最後のベースビュー・データ・ブロックL3の後端と、第2の3Dエクステント・ブロック6002内の先頭のライトビュー・データ・ブロックR4の先端との間のセクタ数に等しい。一方、ベースビュー転送速度Rext1は最高値Rmax1を超えない。従って、そのロングジャンプJLYの期間に第1リード・バッファ4921から消費されるデータ量は、ベースビュー転送速度の最高値Rmax1と最大ジャンプ時間Tjump−LYとの積を超えない。その積の値が第1バッファ余裕量UL1として決定される。すなわち、第1バッファ余裕量UL1は次式(6)で計算される:
例えばジャンプ距離が40000セクタであるとき、図56の表によれば、最大ジャンプ時間Tjump−LYは、層切換時間350m秒を含めて700m秒である。従って、ファイル2Dに対するシステムレートが48Mbpsであるとき、第1バッファ余裕量UL1は(48Mbps×192/188)×0.7秒=約4.09MBに等しい。
同様に、ロングジャンプJLYの期間に第2リード・バッファ4922から消費されるデータ量の最大値、すなわちライトビュー転送速度の最大値Rmax2と最大ジャンプ時間Tjump−LYとの積が第2バッファ余裕量UL2として決定される。すなわち、第2バッファ余裕量UL2は次式(7)で計算される:
例えばジャンプ距離が40000セクタであり、すなわち最大ジャンプ時間Tjump−LYが700m秒であり、第1ファイルDEPに対するシステムレートが16Mbpsであるとき、第2バッファ余裕量UL2は(16Mbps×192/188)×0.7秒=約1.36MBに等しい。
図60を再び参照するに、第1の3Dエクステント・ブロック6001の読み出し期間にBD−Jオブジェクト・ファイル6003の読み出し処理の割り込みが生じたとき、最初のロングジャンプJBDJ1が生じる。それにより、読み出し対象の位置が第2ベースビュー・データ・ブロックL2の記録領域からBD−Jオブジェクト・ファイル6003の記録領域へ移動する。そのジャンプ時間TBDJは一定値、例えば900m秒に予め規定されている。次に、BD−Jオブジェクト・ファイル6003が読み出される。その読み出しに要する時間は、そのファイル6003に属するエクステントのサイズSBDJの8倍を読み出し速度Rud−3Dで割った値8×SBDJ[n]/Rud−3Dに等しい(通常、エクステントのサイズSBDJはバイト単位で表され、読み出し速度Rud−3Dはビット/秒で表されるので、8倍が必要である)。続いて、2回目のロングジャンプJBDJ2が生じる。それにより、読み出し対象の位置がBD−Jオブジェクト・ファイル6003の記録領域から第2ベースビュー・データ・ブロックL2の記録領域へ戻る。そのジャンプ時間TBDJは最初のジャンプ時間、例えば900m秒に等しい。計2回のロングジャンプJBDJ1、JBDJ2とBD−Jオブジェクト・ファイル6003の読み出しとが行われる間、第1リード・バッファ4921にはデータが読み込まれない。従って、その期間に第1リード・バッファ4921から消費されるデータ量の最大値が第1バッファ余裕量UL1として決定される。すなわち、第1バッファ余裕量UL1は次式(8)で計算される:
同様に、2回のロングジャンプJBDJ1、JBDJ2とBD−Jオブジェクト・ファイル6003の読み出しとが行われる間に第2リード・バッファ4922から消費されるデータ量の最大値が第2バッファ余裕量UL2として決定される。すなわち、第2バッファ余裕量UL2は次式(9)で計算される:
第1バッファ余裕量UL1は、式(6)、(8)の右辺で表される値のいずれか大きい方に設定される。第2バッファ余裕量UL2は、式(7)、(9)の右辺で表される値のいずれか大きい方に設定される。
<リード・バッファの最小容量>
図58、59の各(c)に示されている一連の3Dエクステント・ブロックからの再生処理については、各リード・バッファ4921、4922に必要な容量の最小値は以下のように計算される。
3D再生モードでn番目のベースビュー・データ・ブロックLn(n=0、1、2、…)を読み出すとき、第1リード・バッファ4921に必要な容量RB1[n]は、図58、59の各(a)に示されているグラフのピークのうち、最も高い値以上であればよい。ここで、読み出し対象のベースビュー・データ・ブロックのサイズSext1が一定であれば、ベースビュー転送速度Rext1が最高値Rmax1に等しいときにピーク値は最も高い。従って、その容量RB1[n]は、L/Rモードとデプス・モードとのいずれでも、次式(10)を満たせばよい:
L/Rモードでn番目のライトビュー・データ・ブロックRnを読み出すとき、第2リード・バッファ4922に必要な容量RB2LR[n]は、図58の(b)に示されているグラフのピークのうち、最も高い値以上であればよい。ここで、読み出し対象のライトビュー・データ・ブロックのサイズSext2が一定であれば、ライトビュー転送速度Rext2が最高値Rmax2に等しいときにピーク値は最も高い。従って、その容量RB2LR[n]は次式(11)を満たせばよい:
ここで、ライトビュー・データ・ブロックはいずれも、飛び込み再生によって最初に読み出される可能性を持つ。その場合、最初に読み出されるライトビュー・データ・ブロックの全体が第2リード・バッファ4922に格納されるまでシステム・ターゲット・デコーダ4903は第2リード・バッファ4922からデータを読み出さない。従って、第2リード・バッファ4922の容量RB2LR[n]は第1リード・バッファ4921の容量RB1[n]とは異なり、「少なくともn番目のライトビュー・データ・ブロックRnのサイズSext2[n]よりも大きい」という条件を更に満たす。
同様に、デプス・モードでn番目のデプスマップ・データ・ブロックDnを読み出すときに必要な第2リード・バッファ4922の容量RB2LD[n]は次式(12)を満たせばよい:
<層境界前後での再生経路の分離の効果>
本発明の実施形態によるBD−ROMディスク101では、層境界の前後のデータ・ブロック群が、図22、25、27のそれぞれに示されている配置1、2、3のいずれかで記録されている。それにより、層切り換えの前後ではベースビュー・ビデオ・ストリームの特定部分が、2D再生モードでは2D再生専用ブロックLn2Dから再生され、3D再生モードでは3D再生専用ブロックLnSSから再生される。その場合、図23に示されている配置とは異なり、その特定部分を格納した2DエクステントのサイズSext2Dは、ベースビュー・エクステントのサイズSext1と2D再生専用ブロックLn2Dのサイズとの和に等しい。式(1)はその和Sext2Dによって満たされればよい一方、式(2)−(5)は2D再生専用ブロックLn2D以外のデータ・ブロックのサイズによって満たされればよい。従って、2D再生専用ブロックLn2Dのサイズの調節によって、2Dエクステントの全体のサイズSext2Dが式(1)を満たすこととは実質上独立に、式(2)−(5)を満たすディペンデントビュー・エクステントのサイズSext2、Sext3の下限値、すなわち最小エクステント・サイズが更に縮小可能である。それ故、式(11)、(12)から明らかなとおり、第2リード・バッファ4922の最小容量RB2LR、RB2LDが、式(1)とは実質上独立に、更に削減可能である。
<3Dエクステント・ブロック内のエクステントATC時間>
3Dエクステント・ブロック、すなわち、インターリーブ配置のデータ・ブロック群では、隣接するデータ・ブロックDn、Rn、Ln(n=0、1、2、…)がいずれも同じエクステントATC時間を持つ。言い換えれば、各データ・ブロックの先頭のソースパケットから次のデータ・ブロックの先頭のソースパケットまでのATSの差が等しい。但し、その差の計算では、ATSにラップ・アラウンドが発生することが考慮されている。その場合、ATCで計られる同じ時間内に、第1ソース・デパケタイザ5011はベースビュー・データ・ブロックLn内の全てのソースパケットからTSパケットを取り出して第1PIDフィルタ5013へ送出し、第2ソース・デパケタイザ5012はディペンデントビュー・データ・ブロックDn又はRn内の全てのソースパケットからTSパケットを取り出して第2PIDフィルタ5014へ送出する。従って、特に飛び込み再生時、主映像デコーダ5015はベースビュー・ビデオ・ストリームとディペンデントビュー・ビデオ・ストリームとの間でTSパケットの復号処理を容易に同期させることができる。
<エクステントATC時間を用いたエクステント・サイズの条件式>
式(2)−(5)では、ベースビュー・エクステントとディペンデントビュー・エクステントとの各サイズが、それよりも後方に位置するエクステントのサイズで制限される。しかし、オーサリング工程での利用という観点からは、各エクステントのサイズに対する条件が、他のエクステントのサイズには依存しない形で表現されていることが望ましい。従って、式(2)−(5)は、以下のように、エクステントATC時間を利用した条件式に表現し直される。
上記のとおり、隣接する三つのエクステントDn、Rn、Ln(n=0、1、2、…)はいずれも同じエクステントATC時間Text[n]を持つ。それらのエクステントATC時間の最小値を最小エクステントATC時間minTextとし、最大値を最大エクステントATC時間maxTextとする:minText≦Text[n]≦maxText。その場合、n番目の各エクステントEXT1[n]、EXT2[n]、EXT3[n]のサイズSext1[n]、Sext2[n]、Sext3[n]は次式(13)、(14)、(15)の範囲に制限される:
CEIL(Rext1[n]×minText/8)≦Sext1[n]≦CEIL(Rext1[n]×maxText/8)、 (13)
CEIL(Rext2[n]×minText/8)≦Sext2[n]≦CEIL(Rext2[n]×maxText/8)、 (14)
CEIL(Rext3[n]×minText/8)≦Sext3[n]≦CEIL(Rext3[n]×maxText/8)。 (15)
続いて、最大エクステントATC時間maxTextと最小エクステントATC時間minTextとの間の差を一定値Tmとする:maxText=minText+Tm。その場合、最小エクステントATC時間minTextは最小エクステント・サイズ、すなわち式(2)−(5)の各右辺を利用して、以下のように算定される。
n番目のベースビュー・エクステントのサイズが最小エクステント・サイズに等しいとき、式(2)、(13)から最小エクステントATC時間minTextは次式(16)を満たす:
(n+1)番目のライトビュー・エクステントのサイズSext2[n+1]は、ライトビュー転送速度Rext2の最高値Rmax2と最大エクステントATC時間maxTextとの積まで許される:Sext2[n+1]≦Rmax2×maxText=Rmax2×(minText+Tm)。更に、ベースビュー転送速度Rext1[n]は最高値Rmax1を超えない:Rext1[n]≦Rmax1。最小エクステントATC時間minTextは式(16)の右辺の上限であるべきなので、次式(17)を満たすべきである:
式(2)に代えて式(4)を同様に変形すれば、最小エクステントATC時間minTextは次式(18)を更に満たすべきである:
一方、n番目のベースビュー・エクステントのサイズが最小エクステント・サイズに等しいとき、そのエクステントATC時間Text[n]が最小エクステントATC時間minTextに等しい。n番目のライトビュー・エクステントはn番目のベースビュー・エクステントとエクステントATC時間が共通であるので、式(3)、(14)から、最小エクステントATC時間minTextは次式(19)を満たす:
ライトビュー転送速度Rext2[n]は最高値Rmax2を超えず、ベースビュー転送速度Rext1[n]は最高値Rmax1を超えない:Rext2[n]≦Rmax2、Rext1[n]≦Rmax1。最小エクステントATC時間minTextは式(19)の右辺の上限であるべきなので、次式(20)を満たすべきである:
式(3)に代えて式(5)を利用すれば同様にして、最小エクステントATC時間minTextが次式(21)を満たすべきである:
以上の結果、最小エクステントATC時間minTextは、式(17)、(18)、(20)、(21)の各右辺の中での最大値として定義される。ここで、ゼロ・セクタ遷移時間Tjump−0、ジャンプ時間Tjump−3D、及びエクステントATC時間の変動幅Tmは予め一定に制限できる。特に、後述の変形例(F)と同様、最大ジャンプ距離MAX_EXTJUMP3Dを利用してジャンプ時間Tjump−3Dを評価してもよい。それにより、最小エクステントATC時間minTextは実質上、平均転送時間の最大値Rmax等の定数だけで決定可能である。従って、式(13)−(15)で表されたエクステント・サイズに対する条件はオーサリング工程での利用に有利である。
<バッファ余裕量の確保>
各バッファ余裕量UL1、UL2は、以下に述べるように確保される。まず、各データ・ブロックの設計では「エクステントATC時間Textが最小エクステントATC時間minText以上である」という条件が課される。ここで、最小エクステントATC時間minTextは、式(17)、(18)、(20)、(21)に示されているとおり、平均転送速度Rext1、Rext2、Rext3がそれぞれの最高値Rmax1、Rmax2、Rmax3に等しい場合での値である。しかし、実際の平均転送速度Rext1、Rext2、Rext3はそれぞれの最高値Rmax1、Rmax2、Rmax3よりも一般に低い。従って、実際のデータ・ブロックのサイズRext1×Text、Rext2×Text、Rext3×Textは、上記の条件下で想定される値Rmax1×Text、Rmax2×Text、Rmax3×Textよりも一般に小さい。それ故、各データ・ブロックの読み出し開始からエクステントATC時間Textが経過する前に、次のデータ・ブロックの読み出しが開始される。すなわち、各リード・バッファ4921、4922の蓄積データ量DA1、DA2は実際には、図58、59の(a)、(b)に示されているものとは一般に異なり、読み出し開始時の値まで戻る前に再び増加する。こうして、各蓄積データ量DA1、DA2は、ベースビューとディペンデントビューとのデータ・ブロックの対が一つ読み出されるごとに所定量ずつ増える。その結果、ある程度の数のデータ・ブロックが各リード・バッファ4921、4922に連続して読み込まれることにより、各バッファ余裕量UL1、UL2が確保される。
図61の(a)は、3Dエクステント・ブロック6110とL/Rモードでの再生経路6120との間の対応関係を示す模式図である。図61の(a)を参照するに、3Dエクステント・ブロック6110はインターリーブ配置のベースビュー・データ・ブロック群Lkとディペンデントビュー・データ・ブロック群Dk、Rk(k=0、1、2、…)とで構成されている。再生経路6120に従い、隣接するライトビュー・データ・ブロックRkとベースビュー・データ・ブロックLkとの各対が一つの3Dエクステント、すなわちディペンデントビュー・エクステントとベースビュー・エクステントとの対として読み出される。ベースビュー・エクステントLkのエクステント・サイズSext1[k]はベースビュー転送速度Rext1[k]とエクステントATC時間Text[k]との積に等しい:Sext1[k]=Rext1[k]×Text[k]。このエクステント・サイズSext1[k]は、ベースビュー転送速度の最高値Rmax1とエクステントATC時間Text[k]との積よりも一般に小さい:Sext1[k]<Rmax1×Text[k]。ディペンデントビュー・エクステントDk、Rkのエクステント・サイズSext3[k]、Sext2[k]についても同様である。
図61の(b)は、3Dエクステント・ブロック6110がL/Rモードでの再生経路6120に従って読み出されるときにおける第1リード・バッファ4921の蓄積データ量DA1の変化を示すグラフである。細い実線のグラフは、平均転送速度Rext1[k]、Rext2[k]、Rext3[k]がそれぞれの最高値Rmax1、Rmax2、Rmax3に等しい場合での変化を示す。一方、太い実線のグラフは、先頭のベースビュー・エクステントL0の転送速度Rext1[0]が最高値Rmax1よりも低い場合での変化を示す。尚、説明の便宜上、ディペンデントビュー転送速度Rext2[k]、Rext3[k]はそれぞれの最高値Rmax2、Rmax3に等しい場合を想定する。その場合、ディペンデントビュー・エクステントのサイズRext2[k]×Text[k]、Rext3[k]×Text[k]は想定可能な最大値Rmax2×Text[k]、Rmax3×Text[k]に等しい。
図61の(b)を参照するに、細い実線のグラフでは、先頭のベースビュー・エクステントL0の読み出し開始からエクステントATC時間Text[0]が経過したとき、次のベースビュー・エクステントL1の読み出しが開始される。従って、そのときの蓄積データ量DA1は読み出し開始時の値DM10と実質的に等しい。一方、太い実線のグラフでは、先頭のベースビュー・エクステントL0の全体がBD−ROMディスク101から第1リード・バッファ4921へ読み出されるのに時間Sext1[0]/Rud−3Dが必要である。その時間は細い実線のグラフでの時間Rmax1×Text[0]/Rud−3Dよりも時間ΔTbだけ短い:ΔTb=Sext1[0]/Rud−3D−Rmax1×Text[0]/Rud−3D=(Rext1[0]−Rmax1)×Text[0]/Rud−3D。従って、太い実線のグラフでは細い実線のグラフよりも蓄積データ量DA1が時間ΔTbだけ早くピークに達する。一方、各ディペンデントビュー・エクステントD1、R1のサイズSext2[1]、Sext3[1]は両方のグラフで共通の値Rmax2×Text[1]、Rmax3×Text[1]である。従って、蓄積データ量DA1のピークから次のベースビュー・エクステントL1の読み出し開始までの時間ΔTは両方のグラフで共通である。その結果、太い実線のグラフでは細い実線のグラフとは異なり、先頭のベースビュー・エクステントL0の読み出し開始からエクステントATC時間Textが経過するよりも時間ΔTbだけ早く、次のベースビュー・エクステントL1の読み出しが開始される。それ故、その時点での蓄積データ量DA1の値DM11は先頭のベースビュー・エクステントL0の読み出し開始時の値DM10よりも増分DM1[0]だけ増加する。図61の(b)から明らかなとおり、この増分DM1[0]は蓄積データ量DA1の実際の減少速度Rext1[0]と時間ΔTbとの積に等しい:DM1[0]=Rext1[0]×ΔTb=Rext1[0]×(Rext1[0]−Rmax1)×Text[0]/Rud−3D。
図61の(c)は、図61の(b)に示されている変化を第1リード・バッファ4921の蓄積データ量DA1が示すときにおける第2リード・バッファ4922の蓄積データ量DA2の変化を示すグラフである。細い実線のグラフは、平均転送速度Rext1[k]、Rext2[k]、Rext3[k]がそれぞれの最高値Rmax1、Rmax2、Rmax3に等しい場合での変化を示す。一方、太い実線のグラフは、先頭のベースビュー・エクステントL0の転送速度Rext1[0]が最高値Rmax1よりも低い場合での変化を示す。尚、説明の便宜上、ディペンデントビュー転送速度Rext2[k]、Rext3[k]はそれぞれの最高値Rmax2、Rmax3に等しい場合を想定する。
図61の(c)を参照するに、細い実線のグラフでは、先頭のライトビュー・エクステントR0の読み出し開始からエクステントATC時間Text[0]が経過したとき、次のライトビュー・エクステントR1の読み出しが開始される。従って、そのときの蓄積データ量DA2は読み出し開始時の値DM20と実質的に等しい。一方、太い実線のグラフでは細い実線のグラフよりも時間ΔTbだけ早く、先頭のベースビュー・エクステントL0の全体がBD−ROMディスク101から第1リード・バッファ4921へ読み出される。従って、太い実線のグラフでは細い実線のグラフよりも時間ΔTbだけ早く、すなわち先頭のライトビュー・エクステントR0の読み出し開始からエクステントATC時間Textが経過するよりも時間ΔTbだけ前に、次のライトビュー・エクステントR1の読み出しが開始される。それ故、その時点での蓄積データ量DA2の値DM21は、先頭のライトビュー・エクステントR0の読み出し開始時の値DM20よりも増分DM2[0]だけ増加する。図61の(c)から明らかなとおり、この増分DM2[0]は蓄積データ量DA2の実際の減少速度Rext2[0]と時間ΔTbとの積に等しい:DM2[0]=Rext2[0]×ΔTb=Rext2[0]×(Rext1[0]−Rmax1)×Text[0]/Rud−3D。
図61では、ディペンデントビュー転送速度Rext2[k]、Rext3[k]はそれぞれの最高値Rmax2、Rmax3に等しい場合が想定されている。しかし、実際には、ディペンデントビュー転送速度Rext2[k]、Rext3[k]も一般に、それぞれの最高値Rmax2、Rmax3よりも低い。その場合、図61の(c)のグラフでは図61の(b)のグラフと同様に、蓄積データ量DA2が時間ΔTdだけピークに早く到達する:ΔTd=Sext2[0]/Rud−3D−Rmax2×Text[0]/Rud−3D=(Rext2[0]−Rmax2)×Text[0]/Rud−3D。一方、図61の(b)のグラフでは、蓄積データ量DA1のピークから次のベースビュー・エクステントL1の読み出し開始までの時間ΔTが同じ時間ΔTdだけ短縮される。それらを考慮した場合、ベースビュー・エクステントLkとライトビュー・エクステントRkとの対が一つ処理されるごとに、各リード・バッファの蓄積データ量DA1、DA2は、次式(22)、(23)で表される増分DM1[k]、DM2[k]だけ増加する:
DM1[k]=Rext1[k]×(ΔTb+ΔTd)
=Rext1[k]×{(Rext1[k]−Rmax1)+(Rext2[k]−Rmax2)}×Text[k]/Rud−3D、 (22)
DM2[k]=Rext2[k]×(ΔTb+ΔTd)
=Rext2[k]×{(Rext1[k]−Rmax1)+(Rext2[k]−Rmax2)}×Text[k]/Rud−3D。 (23)
L/Rモードでは、各3DエクステントEXTSS[k]からベースビュー・エクステントLkとライトビュー・エクステントRkとが各リード・バッファ4921、4922に読み込まれるごとに各蓄積データ量DA1、DA2は増分DM1[k]、DM2[k]ずつ増える。デプス・モードでも同様に、ベースビュー・エクステントLkとデプスマップ・エクステントDkとが各リード・バッファ4921、4922に読み込まれるごとに各蓄積データ量DA1、DA2は増分DM3[k]、DM4[k]ずつ増える。ここで、増分DM3[k]、DM4[k]は次式(24)、(25)で表される:
DM3[k]=Rext1[k]×{(Rext1[k]−Rmax1)+(Rext3[k]−Rmax3)}×Text[k]/Rud−3D、 (24)
DM4[k]=Rext3[k]×{(Rext1[k]−Rmax1)+(Rext3[k]−Rmax3)}×Text[k]/Rud−3D。 (25)
従って、3Dエクステント・ブロック6110全体でのエクステントATC時間の合計Tsum=Text[0]+Text[1]+Text[2]+…が次式(26)を満たすとき、その3Dエクステント・ブロック6110の全体の読み出しによって各リード・バッファ4921、4922にバッファ余裕量UL1、UL2を確保することができる:
ここで、次の近似が用いられている:3Dエクステント・ブロック6110の全体で、ベースビュー転送速度Rext1[k]が平均値Rext1−avに等しく、ディペンデントビュー転送速度Rext2[k]、Rext3[k]が平均値Rext2−av、Rext3−avに等しい。
尚、一連の3Dエクステント・ブロックの読み出し期間では、ロングジャンプが生じない限り、各リード・バッファの蓄積データ量DA1、DA2は増え続ける。従って、各蓄積データ量DA1、DA2が所定の閾値を超えた場合、再生装置102はBD−ROMドライブ4901に読み出し/転送動作を断続させる。それにより、読み出し速度Rud−3Dが低下するので、各蓄積データ量DA1、DA2の増加が抑えられる。こうして、各リード・バッファ4921、4922のオーバーフローを回避することができる。
<変形例>
(A)本発明の実施形態1は、記録媒体に3D映像を格納するときのエクステントの配置に関する。しかし、本発明は、記録媒体に高フレームレートの映像を格納するときに利用されても良い。具体的には、例えば高フレームレートの映像を奇数番目のフレーム群と偶数番目のフレーム群とに分け、それぞれをベースビュー・ビデオ・ストリームとディペンデントビュー・ビデオ・ストリームとみなして、上記の実施形態1によるエクステントの配置で記録媒体に記録すればよい。通常のフレームレートでの映像再生のみが可能な再生装置は、その記録媒体からは奇数番目のフレーム群の映像を再生すればよい。一方、高フレームレートでの映像再生が可能な再生装置は、奇数番目のフレーム群のみの映像と両方のフレーム群の映像とを選択的に再生できる。こうして、高フレームレートの映像が格納された記録媒体に、通常のフレームレートでの映像再生のみが可能な再生装置に対する互換性を確保させることができる。
(B)本発明の実施形態1では、ベースビュー・ビデオ・ストリームがレフトビューを表し、ディペンデントビュー・ビデオ・ストリームがライトビューを表す。逆に、ベースビュー・ビデオ・ストリームがライトビューを表し、ディペンデントビュー・ビデオ・ストリームがレフトビューを表してもよい。
(C)図32の(a)に示されているオフセット・テーブル3141は、PID別にオフセット・エントリ3304のテーブル3310を含む。オフセット・テーブルはその他に、プレーン別にオフセット・エントリのテーブルを含んでもよい。その場合、3D再生装置によるオフセット・テーブルの解析処理を簡素化することができる。更に、プレーンの合成処理に関する3D再生装置の性能に合わせて、オフセット・エントリの有効区間の長さに、例えば1秒間という下限が設けられてもよい。
(D)図40に示されている3Dプレイリスト・ファイルは、サブTSの再生経路を示すサブパスを一つ含む。その他に、3Dプレイリスト・ファイルが、異なるサブTSの再生経路を示すサブパスを複数含んでもよい。例えば、一方のサブパスのサブパス・タイプが「3D・L/R」であり、他方のサブパスのサブパス・タイプが「3D・デプス」であってもよい。その3Dプレイリスト・ファイルに従って3D映像が再生されるとき、再生対象のサブパスがそれら二種類のサブパスの間で切り換えられることにより、再生装置102をL/Rモードとデプス・モードとの間で容易に切り換えさせることができる。特にその切り換え処理は、3Dプレイリスト・ファイルそのものを切り換える処理よりも速やかに実現可能である。
3Dプレイリスト・ファイルは、サブパス・タイプの等しいサブパスを複数含んでいてもよい。例えば、同じシーンに対する両眼視差の異なる3D映像が共通のレフトビューに対するライトビューの違いで表現されるとき、異なるライトビュー・ビデオ・ストリームごとに異なるファイルDEPがBD−ROMディスク101に記録される。一方、3Dプレイリスト・ファイルは、サブパス・タイプが「3D・L/R」であるサブパスを複数含む。それらのサブパスは、異なるファイルDEPの再生経路を個別に規定する。その他に、一つのファイル2Dに対してデプスマップ・ストリームが二種類以上含まれていてもよい。その場合、3Dプレイリスト・ファイルは、サブパス・タイプが「3D・デプス」であるサブパスを複数含む。それらのサブパスは、各デプスマップ・ストリームを含むファイルDEPの再生経路を個別に規定する。そのような3Dプレイリスト・ファイルに従って3D映像が再生されるとき、再生対象のサブパスが例えばユーザの操作に応じて速やかに切り換えられるので、3D映像を実質的に途切れさせることなく、その両眼視差を変化させることができる。それにより、ユーザに所望の両眼視差の3D映像を容易に選択させることができる。
(E)リード・バッファからシステム・ターゲット・レコーダへのデータの平均転送速度Rextの評価においてエクステントATC時間が正確に計算されることを目的として、各エクステントのサイズがソースパケット長のある一定の倍数に揃えられてもよい。更に、いずれかのエクステントがその倍数よりも多くのソースパケットを含むとき、その倍数を超えたソースパケット数とソースパケット一つ当たりの転送時間(=188×8/システムレート)との積を、その倍数に相当するエクステントATC時間に加えた値が、そのエクステントのエクステントATC時間とみなされても良い。その他に、エクステントATC時間は、一つのエクステントの先頭のソースパケットのATSから同じエクステントの最後のソースパケットのATSまでの時間間隔にソースパケット一つ当たりの転送時間を加えた値で定義されてもよい。その場合、エクステントATC時間の計算には次のエクステントの参照が不要であるので、その計算を簡単化することができる。尚、上記のエクステントATC時間の計算では、ATSにラップ・アラウンドが発生することを考慮しなければならない。
(F)インターリーブ配置のデータ・ブロック群の中には、例えばBD−Jオブジェクト・ファイル等、別のファイルに属するエクステントが配置されてもよい。図62の(a)は、多重化ストリーム・データのみを含むインターリーブ配置のデータ・ブロック群を示す模式図である。図62の(b)は、他のファイルに属するエクステントを含むインターリーブ配置のデータ・ブロック群を示す模式図である。
図62の(a)を参照するに、データ・ブロック群6201は、デプスマップ・データ・ブロックD1、D2、D3、ライトビュー・データ・ブロックR1、R2、R3、ベースビュー・データ・ブロックL1、L2、L3を交互に含む。L/Rモードでの再生経路6202では、隣接するライトビュー・データ・ブロックとベースビュー・データ・ブロックとの対R1+L1、R2+L2、R3+L3が順番に読み出される。各対ではライトビュー・データ・ブロックとベースビュー・データ・ブロックとの間にゼロ・セクタ遷移J0が生じる。更に各デプスマップ・データ・ブロックD1、D2、D3の読み出しがジャンプJLRによってスキップされる。デプス・モードでの再生経路6203では、デプスマップ・データ・ブロックD1、D2、D3とベースビュー・データ・ブロックL1、L2、L3とが交互に読み出される。隣接するベースビュー・データ・ブロックとデプスマップ・データ・ブロックとの間にはゼロ・セクタ遷移J0が生じる。更に各ライトビュー・データ・ブロックR1、R2、R3の読み出しがジャンプJLDによってスキップされる。
一方、図62の(b)を参照するに、図62の(a)と同様なデータ・ブロック群6204の中に、別のファイルに属するエクステントA1、A2が挿入されている。その別のファイルは、例えばムービーオブジェクト・ファイル、BD−Jオブジェクト・ファイル、及びJARファイルのいずれでもよい。そのエクステントA1、A2はいずれも、図62の(a)では隣接していたデプスマップ・データ・ブロックとライトビュー・データ・ブロックとの間に挿入されている。その場合、L/Rモードでの再生経路6205では、図62の(a)に示されている再生経路6202よりもジャンプJLRの距離が長い。しかし、そのエクステントA1、A2をいずれかのベースビュー・データ・ブロックの隣に挿入する場合とは異なり、ゼロ・セクタ遷移J0を通常のジャンプに変更しなくてもよい。デプス・モードでの再生経路6206でも同様である。ここで、図56の表から明らかなとおり、最大ジャンプ時間は一般に、ジャンプ距離を変更するときよりも、ゼロ・セクタ遷移を通常のジャンプに変更するときの方が大きく増加する。従って、式(2)−(5)から明らかなとおり、最小エクステント・サイズは一般に、ジャンプ距離を変更するときよりも、ゼロ・セクタ遷移を通常のジャンプに変更するときの方が大きく増加する。それ故、インターリーブ配置のデータ・ブロック群6201の中にエクステントA1、A2を挿入するときは、図62の(b)に示されているように、デプスマップ・データ・ブロックとライトビュー・データ・ブロックとの間に挿入する。それにより、その挿入に伴う最小エクステント・サイズの増大を抑えることができるので、リード・バッファの最小容量の増大を回避することができる。
図62の(b)に示されている配置では更に、各エクステントA1、A2のセクタ単位でのサイズG1、G2が最大ジャンプ距離MAX_EXTJUMP3D以下に制限されてもよい:G1≦MAX_EXTJUMP3D、G2≦MAX_EXTJUMP3D。その最大ジャンプ距離MAX_EXTJUMP3Dは、データ・ブロック群6204内で生じるジャンプJLR、JLDの中で最大のジャンプ距離をセクタ単位で表す。その制限の下では、式(2)−(5)の右辺に代入されるべき最大ジャンプ時間が増大しにくいので、最小エクステント・サイズが増大しにくい。従って、エクステントA1、A2の挿入に伴うリード・バッファの最小容量の増大を回避することができる。
その他に、各エクステントA1、A2のサイズG1、G2とそれに隣接するディペンデントビュー・データ・ブロックD2、R2、D3、R3のサイズSext3[2]、Sext2[2]、Sext3[3]、Sext2[3]との和が最大ジャンプ距離MAX_EXTJUMP3D以下に制限されてもよい:
CEIL(Sext3[2]/2048)+G1≦MAX_EXTJUMP3D、
CEIL(Sext2[2]/2048)+G1≦MAX_EXTJUMP3D、
CEIL(Sext3[3]/2048)+G2≦MAX_EXTJUMP3D、
CEIL(Sext2[3]/2048)+G2≦MAX_EXTJUMP3D。
これらの式では、ディペンデントビュー・データ・ブロックのバイト単位でのサイズを1セクタ当たりのバイト数2048で割ることにより、各サイズの単位をバイトからセクタ数に変換している。これらの条件式が満たされている限り、式(2)−(5)の右辺に代入されるべき最大ジャンプ時間は一定値を超えない。例えば最大ジャンプ距離MAX_EXTJUMP3Dを40000セクタに固定した場合、図56の表から最大ジャンプ時間は350m秒を超えない。従って、最小エクステント・サイズは一定値を超えない。こうして、エクステントA1、A2の挿入に伴うリード・バッファの最小容量の増大を確実に回避することができる。
上記の制限とは更に別に、各エクステントA1、A2のサイズG1、G2とそれに隣接するディペンデントビュー・データ・ブロックD2、R2、D3、R3のサイズSext3[2]、Sext2[2]、Sext3[3]、Sext2[3]との和が、そのディペンデントビュー・データ・ブロックのサイズに対する最大ジャンプ距離MAX_JUMP(・)以下に制限されてもよい:
CEIL(Sext3[2]/2048)+G1≦MAX_JUMP(Sext3[2])、
CEIL(Sext2[2]/2048)+G1≦MAX_JUMP(Sext2[2])、
CEIL(Sext3[3]/2048)+G2≦MAX_JUMP(Sext3[3])、
CEIL(Sext2[3]/2048)+G2≦MAX_JUMP(Sext2[3])。
ディペンデントビュー・データ・ブロックのサイズに対する最大ジャンプ距離MAX_JUMP(・)とは、そのサイズをセクタ数で表したとき、図56の表において、そのセクタ数と同じ最大ジャンプ時間に対応するセクタ数の中での最大値をいう。例えばディペンデントビュー・データ・ブロックのサイズが5000セクタであるとき、図56の表において5000セクタは、最大ジャンプ時間250m秒に対応する範囲1−10000セクタに属する。従って、最大ジャンプ距離MAX_JUMP(5000×2048バイト)はその範囲の最大値10000セクタである。上記の条件式が満たされている限り、式(2)−(5)の右辺に代入されるべき最大ジャンプ時間は変更されないので、最小エクステント・サイズは不変である。従って、エクステントA1、A2の挿入に伴うリード・バッファの最小容量の増大を更に確実に回避することができる。
《実施形態2》
以下、本発明の実施形態2として、本発明の実施形態1による記録媒体の記録装置及び記録方法について説明する。
その記録装置はいわゆるオーサリング装置と呼ばれるものである。オーサリング装置は通常、頒布用の映画コンテンツの制作スタジオに設置され、オーサリングスタッフによって使用される。記録装置はオーサリングスタッフの操作に従い、まず映画コンテンツを、MPEG規格に則った圧縮符号化方式のデジタル・ストリーム、すなわちAVストリーム・ファイルに変換する。記録装置は次にシナリオを生成する。シナリオは、映画コンテンツに含まれる各タイトルの再生方法を規定した情報であり、具体的には上記の動的シナリオ情報及び静的シナリオ情報を含む。記録装置は続いて、上記のデジタル・ストリーム及びシナリオから、BD−ROMディスク用のボリュームイメージ又はアップデートキットを生成する。記録装置は最後に、実施形態1によるエクステントの配置を利用して、ボリュームイメージを記録媒体に記録する。
図63は、その記録装置の内部構成を示すブロック図である。図63を参照するに、その記録装置は、ビデオエンコーダ6301、素材制作部6302、シナリオ生成部6303、BDプログラム制作部6304、多重化処理部6305、フォーマット処理部6306、及びデータベース部6307を含む。
データベース部6307は記録装置に内蔵の不揮発性記憶装置であり、特にハードディスクドライブ(HDD)である。データベース部6307はその他に、記録装置に外付けされたHDDであってもよく、記録装置に内蔵の、又は外付けされた不揮発性半導体メモリ装置であってもよい。
ビデオエンコーダ6301は、非圧縮のビットマップ・データ等の映像データをオーサリングスタッフから受け付けて、それをMPEG−4 AVC又はMPEG−2等の圧縮符号化方式で圧縮する。それにより、主映像のデータはプライマリ・ビデオ・ストリームに変換され、副映像のデータはセカンダリ・ビデオ・ストリームに変換される。特に3D映像のデータはベースビュー・ビデオ・ストリームとディペンデントビュー・ビデオ・ストリームとに変換される。ビデオエンコーダ6301は、図9に示されているように、レフトビュー・ビデオ・ストリームをそれ自身のピクチャ間での予測符号化によってベースビュー・ビデオ・ストリームに変換し、ライトビュー・ビデオ・ストリームを、それ自身のピクチャだけでなく、ベースビュー・ビデオ・ストリームのピクチャとの間の予測符号化によってディペンデントビュー・ビデオ・ストリームに変換する。尚、ライトビュー・ビデオ・ストリームがベースビュー・ビデオ・ストリームに変換されてもよい。更に、レフトビュー・ビデオ・ストリームがディペンデントビュー・ビデオ・ストリームに変換されてもよい。変換後の各ビデオ・ストリーム6311はデータベース部6307に保存される。
ビデオエンコーダ6301は更に、このピクチャ間予測符号化の処理過程で、左映像と右映像との間での各イメージの動きベクトルを検出し、それらから3D映像内の各イメージの奥行き情報を算出する。算出された各イメージの奥行き情報はフレーム奥行き情報6310に整理されてデータベース部6307に保存される。
図64の(a)、(b)は、3D映像の一シーンの表示に利用される左映像ピクチャと右映像ピクチャとを表す模式図であり、(c)は、ビデオエンコーダ6301によってそれらのピクチャから算出された奥行き情報を示す模式図である。
ビデオエンコーダ6301はまず、左右のピクチャ間の冗長性を利用して各ピクチャを圧縮する。そのとき、ビデオエンコーダ6301は圧縮前の左右のピクチャを8×8又は16×16の画素マトリクスごとに、すなわちマクロブロックごとに比較して、両ピクチャ間での各イメージの動きベクトルを検出する。具体的には、図64の(a)、(b)に示されているように、まず、左映像ピクチャ6401と右映像ピクチャ6402とはそれぞれ、マクロブロック6403のマトリクスに分割される。次に、両ピクチャ6401、6402間でイメージ・データがマクロブロック6403ごとに比較され、その結果から各イメージの動きベクトルが検出される。例えば「家」のイメージ6404を表す領域は両ピクチャ6401、6402間で実質的に等しい。従って、それらの領域からは動きベクトルが検出されない。一方、「球」のイメージ6405を表す領域は両ピクチャ6401、6402間で実質的に異なる。従って、それらの領域からは、「球」のイメージ6405の変位を表す動きベクトルが検出される。
ビデオエンコーダ6301は次に、検出された動きベクトルを各ピクチャ6401、6402の圧縮に利用する一方、各イメージ・データ6404、6405の表す映像の両眼視差の計算にも利用する。こうして得られた両眼視差から、ビデオエンコーダ6301は更に、「家」及び「球」のイメージ6404、6405等、各イメージの「奥行き」を算出する。各イメージの奥行きを表す情報は、例えば図64の(c)に示されているように、各ピクチャ6401、6402のマクロブロックのマトリクスと同じサイズのマトリクス6406に整理される。図63に示されているフレーム奥行き情報6310はこのマトリクス6406を含む。このマトリクス6406内のブロック6407は、各ピクチャ6401、6402内のマクロブロック6403と一対一に対応する。各ブロック6407は、対応するマクロブロック6403の表すイメージの奥行きを、例えば8ビットの深度で表す。図64に示されている例では、「球」のイメージ6405の奥行きが、マトリクス6406の領域6408内の各ブロックに記録される。その領域6408は、そのイメージ6405を表す各ピクチャ6401、6402内の領域の全体に対応する。
図63を再び参照するに、素材制作部6302は、ビデオ・ストリーム以外のエレメンタリ・ストリーム、例えば、オーディオ・ストリーム6312、PGストリーム6313、及びIGストリーム6314を作成してデータベース部6307に保存する。例えば、素材制作部6302はオーサリングスタッフから非圧縮のLPCM音声データを受け付けて、それをAC−3等の圧縮符号化方式で符号化してオーディオ・ストリーム6312に変換する。素材制作部6302はその他に、オーサリングスタッフから字幕情報ファイルを受け付けて、それに従ってPGストリーム6313を作成する。字幕情報ファイルは、字幕を表すイメージ・データ、その字幕の表示時期、及び、その字幕に加えられるべきフェードイン/フェードアウト等の視覚効果を規定する。素材制作部6302は更に、オーサリングスタッフからビットマップ・データとメニューファイルとを受け付けて、それらに従ってIGストリーム6314を作成する。ビットマップ・データはメニューのイメージを表す。メニューファイルは、そのメニューに配置される各ボタンの状態の遷移、及び各ボタンに加えられるべき視覚効果を規定する。
シナリオ生成部6303は、オーサリングスタッフからGUI経由で受け付けられた指示に従ってBD−ROMシナリオ・データ6315を作成し、データベース部6307に保存する。BD−ROMシナリオ・データ6315は、データベース部6307に保存された各エレメンタリ・ストリーム6311−6314の再生方法を規定する。BD−ROMシナリオ・データ6315は、図5に示されているファイル群のうち、インデックス・ファイル511、ムービーオブジェクト・ファイル512、及びプレイリスト・ファイル521−523を含む。シナリオ生成部6303は更にパラメータ・ファイル6316を作成して多重化処理部6305へ送出する。パラメータ・ファイル6316は、データベース部6307に保存されたエレメンタリ・ストリーム6311−6314の中から、メインTSとサブTSとのそれぞれに多重化されるべきストリーム・データを規定する。
BDプログラム制作部6304はオーサリングスタッフに対して、BD−Jオブジェクト及びJavaアプリケーション・プログラムのプログラミング環境を提供する。BDプログラム制作部6304はGUIを通じてユーザからの要求を受け付け、その要求に従って各プログラムのソースコードを作成する。BDプログラム制作部6304は更に、BD−JオブジェクトからBD−Jオブジェクト・ファイル551を作成し、Javaアプリケーション・プログラムをJARファイル561に圧縮する。それらのファイル551、561はフォーマット処理部6306へ送出される。
ここで、BD−Jオブジェクトが次のようにプログラミングされる場合を想定する:BD−Jオブジェクトは、図46、49に示されているプログラム実行部4606、4906にGUI用のグラフィックス・データをシステム・ターゲット・デコーダ4603、4903へ送出させる。BD−Jオブジェクトは更に、システム・ターゲット・デコーダ4603、4903にそのグラフィックス・データをイメージ・プレーン・データとして処理させる。その場合、BDプログラム制作部6304は、データベース部6307に保存されたフレーム奥行き情報6310を利用して、BD−Jオブジェクトにイメージ・プレーン・データに対するオフセット情報を設定してもよい。
多重化処理部6305はパラメータ・ファイル6316に従い、データベース部6307に保存されている各エレメンタリ・ストリーム6311−6314をMPEG2−TS形式のストリーム・ファイルに多重化する。具体的には図7に示されているように、各エレメンタリ・ストリーム6311−6314がソースパケット列に変換され、各列のソースパケットが一列にまとめられて一本の多重化ストリーム・データを構成する。こうして、メインTSとサブTSとが作成される。
その処理と並行して、多重化処理部6305は、2Dクリップ情報ファイルとディペンデントビュー・クリップ情報ファイルとを以下の手順で作成する。まず、ファイル2DとファイルDEPとのそれぞれについて、図32に示されているエントリ・マップ3130が生成される。次に、各ファイルのエントリ・マップを利用して、図33に示されているエクステント起点の一覧表3310が作成される。続いて、メインTSとサブTSとのそれぞれに多重化されるべき各エレメンタリ・ストリームから、図31に示されているストリーム属性情報が抽出される。更に、図31に示されているように、エントリ・マップ、3Dメタデータ、及びストリーム属性情報の組み合わせがクリップ情報に対応付けられる。
フォーマット処理部6306は、データベース部6307に保存されたBD−ROMシナリオ・データ6315、BDプログラム制作部6304によって制作されたBD−Jオブジェクト・ファイル等のプログラム・ファイル群、及び、多重化処理部6305によって生成された多重化ストリーム・データとクリップ情報ファイルとから、図5に示されているディレクトリ構造のBD−ROMディスクイメージ6320を作成する。そのディレクトリ構造では、ファイルシステムとしてUDFが利用される。
フォーマット処理部6306は、ファイル2D、ファイルDEP、及びファイルSSの各ファイル・エントリを作成するとき、2Dクリップ情報ファイルとディペンデントビュー・クリップ情報ファイルとのそれぞれに含まれるエントリ・マップと3Dメタデータとを参照する。それにより、各エントリ・ポイントと各エクステント起点とのSPNが各アロケーション記述子の作成に利用される。特に図16に示されているようなインターリーブ配置が表現されるようにアロケーション記述子が作成される。それにより、各ベースビュー・データ・ブロックはファイルSSとファイル2Dとに共有され、各ディペンデントビュー・データ・ブロックはファイルSSとファイルDEPとに共有される。一方、ロングジャンプの必要な箇所では、図21、24、26に示されている配置1−3のいずれかが表現されるようにアロケーション記述子が作成される。特に、ベースビュー・データ・ブロックの一部は2D再生専用ブロックとしてファイル2D内のアロケーション記述子によってのみ参照され、その一部の複製データが3D再生専用ブロックとしてファイルSSのアロケーション記述子によってのみ参照される。更に、ベースビューとディペンデントビューとのエクステントの各サイズが式(1)−(5)を満たすように設計され、それに基づいて、各アロケーション記述子の表すべき論理アドレスの値が決定される。
フォーマット処理部6306はその他に、データベース部6307に保存されたフレーム奥行き情報6310を利用して、図32の(a)に示されているオフセット・テーブルを、セカンダリ・ビデオ・ストリーム6311、PGストリーム6313、及びIGストリーム6314のそれぞれについて作成する。フォーマット処理部6306は更にオフセット・テーブルを2Dクリップ情報ファイルの3Dメタデータ内に格納する。ここで、各ストリームの表す3D映像が、他のストリームの表す3D映像と同じ視方向に重なって表示されないように、左右の各映像フレーム内でのイメージ・データの配置が自動的に調整される。更に、各ストリームの表す3D映像の奥行きが互いに重ならないように、各映像フレームに対するオフセット値が自動的に調整される。
フォーマット処理部6306によって生成されたBD−ROMディスクイメージ6320はその後、BD−ROMプレス用データに変換される。更に、このデータはBD−ROMディスクの原盤に記録される。この原盤がプレス工程に利用されることにより、本発明の実施形態1によるBD−ROMディスク101の大量生産が実現可能になる。
《実施形態3》
図65は、本発明の実施形態3による集積回路3の機能ブロック図である。図65を参照するに、集積回路3は実施形態1による再生装置102に実装される。ここで、再生装置102は、集積回路3の他に、媒体インタフェース(IF)部1、メモリ部2、及び出力端子10を含む。
媒体IF部1は、外部の媒体MEからデータを受信し、又は読み出して集積回路3に転送する。そのデータは特に、実施形態1によるBD−ROMディスク101上のデータを含む。媒体MEの種類は、光ディスク及びハードディスク等のディスク記録媒体、SDカード及びUSBメモリ等の半導体メモリ、CATV等の放送波、並びに、イーサネット(登録商標)、無線LAN、及び無線公衆回線等のネットワークを含む。媒体IF部1は媒体MEの種類に合わせて、ディスク・ドライブ、カードIF、CANチューナー、Siチューナー、及びネットワークIFを含む。
メモリ部2は、媒体IF部1によって媒体MEから受信され、又は読み出されたデータ、及び、集積回路3によって処理されている途中のデータを一時的に格納する。メモリ部2としては、SDRAM(Synchronous Dynamic Random Access Memory)、及びDDRx SDRAM(Double−Date−Rate x Synchronous Dynamic Random Access Memory; x=1、2、3、…)等が用いられる。メモリ部2は単一のメモリ素子である。その他に、メモリ部2は複数のメモリ素子を含んでもよい。
集積回路3はシステムLSIであり、媒体IF部1から転送されたデータに対して映像・音声処理を施す。図65を参照するに、集積回路3は、主制御部6、ストリーム処理部5、信号処理部7、メモリ制御部9、及びAV出力部8を含む。
主制御部6はプロセッサコアとプログラム・メモリとを含む。プロセッサコアはタイマ機能と割り込み機能とを有する。プログラム・メモリはOS等の基本的なソフトウェアを格納する。プロセッサコアは、プログラム・メモリ等に格納されたプログラムに従って、集積回路3の全体の制御を行う。
ストリーム処理部5は、主制御部6の制御の下、媒体MEから媒体IF部1を経由して転送されたデータを受信する。ストリーム処理部5は更に、その受信したデータを集積回路3内のデータバスを通してメモリ部2に格納する。ストリーム処理部5はその他に、受信したデータから映像系データと音声系データとを分離する。ここで、前述のとおり、媒体MEから受信されるデータは実施形態1による構造のデータを含む。その場合、「映像系データ」は、プライマリ・ビデオ・ストリーム、セカンダリ・ビデオ・ストリーム、PGストリーム、及びIGストリームを含む。「音声系データ」はプライマリ・オーディオ・ストリームとセカンダリ・オーディオ・ストリームとを含む。実施形態1による構造のデータでは特に、ベースビュー・ストリームとディペンデントビュー・ストリームとがそれぞれ、複数のエクステントに分割され、それらが交互に配置されている。ストリーム処理部5はそのデータを受信したとき、主制御部6の制御に従い、そのデータからベースビュー・ストリームを抽出してメモリ部2内の第1の領域に格納し、ディペンデントビュー・ストリームを抽出してメモリ部2内の第2の領域に格納する。ここで、メモリ部2内の第1の領域と第2の領域とは、単一のメモリ素子の領域を論理的に分割したものである。その他に、各領域が物理的に異なるメモリ素子に含まれてもよい。
ストリーム処理部5によって分離された映像系データと音声系データとはそれぞれ、符号化によって圧縮されている。映像系データの符号化方式の種類は、MPEG−2、MPEG−4 AVC、MPEG4−MVC、及びSMPTE VC−1等を含む。音声系データの符号化方式の種類は、ドルビーAC−3、Dolby Digital Plus、MLP、DTS、DTS−HD、及びリニアPCM等を含む。信号処理部7は、主制御部6の制御の下、映像系データと音声系データとを、それぞれの符号化方式に適した方法で復号する。信号処理部7は、例えば図50に示されている各種デコーダに相当する。
メモリ制御部9は、集積回路3内の各機能ブロック5−8からメモリ部2へのアクセスを調停する。
AV出力部8は、主制御部6の制御の下、信号処理部7によって復号された映像系データと音声系データとをそれぞれ、適切な形式に加工して、個別の出力端子10を通して表示装置103とその内蔵スピーカとへ出力する。その加工の種類は、映像系データの重畳処理、各データのフォーマット変換、及び音声系データのミキシング等を含む。
図66は、ストリーム処理部5の代表的な構成を示す機能ブロック図である。図66を参照するに、ストリーム処理部5は、デバイス・ストリームIF部51、多重分離部52、及び切替部53を備える。
デバイス・ストリームIF部51は、媒体IF部1と集積回路3内の他の機能ブロック6−9との間でデータ転送を行うインターフェースである。例えば媒体MEが光ディスク又はハードディスクであるとき、デバイス・ストリームIF部51は、SATA(Serial Advanced Technology Attachment)、ATAPI(Advanced Technology Attachment Packet Interface)、又はPATA(Parallel Advanced Technology Attachment)を含む。媒体MEがSDカード及びUSBメモリ等の半導体メモリであるとき、デバイス・ストリームIF部51はカードIFを含む。媒体MEがCATV等の放送波であるとき、デバイス・ストリームIF部51はチューナーIFを含む。媒体MEが、イーサネット(登録商標)、無線LAN、及び無線公衆回線等のネットワークであるとき、デバイス・ストリームIF部51はネットワークIFを含む。ここで、媒体MEの種類によっては、デバイス・ストリームIF部51が媒体IF部1に代わって、その機能の一部を実現させてもよい。逆に、媒体IF部1が集積回路3に内蔵されている場合、デバイス・ストリームIF部51は省略されてもよい。
多重分離部52は、媒体MEからメモリ部2に転送されたデータをメモリ制御部9から受信して、そのデータから映像系データと音声系データとを分離する。ここで、実施形態1による構造のデータに含まれる各エクステントは、図7に示されているように、ビデオ・ストリーム、オーディオ・ストリーム、PGストリーム、及びIGストリーム等のソースパケットから構成されている。但し、ディペンデントビュー・ストリームは、オーディオ・ストリームを含まない場合もある。多重分離部52は、各ソースパケットからPIDを読み取り、そのPIDに従って、ソースパケット群を映像系のTSパケットVTSと音声系のTSパケットATSに分別する。分別されたTSパケットVTS、ATSは、直接、若しくは、一旦メモリ部2に格納された後、信号処理部7に転送される。多重分離部52は、例えば図50に示されているソース・デパケタイザ5011、5012、及びPIDフィルタ5013、5014に相当する。
切替部53は、デバイス・ストリームIF部51によって受信されたデータの種類に応じてその出力先を切り換える。例えば、デバイス・ストリームIF部51がベースビュー・ストリームを受信したときは、そのストリームの格納先をメモリ部2の第1の領域に切り換える。一方、デバイス・ストリームIF部51がディペンデントビュー・ストリームを受信したときは、そのストリームの格納先をメモリ部2の第2の領域に切り換える。
切替部53は例えばDMAC(Direct Memory Access Controller)である。図67は、その場合における切替部53の周辺の構造を示す模式図である。DMAC53は、主制御部6の制御の下、デバイス・ストリームIF部51によって受信されたデータと、そのデータの格納先のアドレスとをメモリ制御部9に対して送信する。具体的には、デバイス・ストリームIF部51がベースビュー・ストリームBSを受信したとき、DMAC53は、ベースビュー・ストリームBSと共にアドレス1AD1を送信する。ここで、アドレス1AD1はメモリ部2内の第1の格納領域21の先頭アドレスAD1を示す。一方、デバイス・ストリームIF部51がディペンデントビュー・ストリームDSを受信したとき、DMAC53はディペンデントビュー・ストリームDSと共にアドレス2AD2を送信する。ここで、アドレスAD2はメモリ部2内の第2の格納領域22の先頭アドレスAD2を示す。こうして、DMAC53は、デバイス・ストリームIF部51によって受信されるデータの種類に依って、その出力先、特にメモリ部2内への格納先を切り換える。メモリ制御部9は、DMAC53から受信されたストリームBS、DSを、それと共に受信されたアドレスAD1、AD2の示すメモリ部2内の領域21、22に格納する。
主制御部6は、切替部53による格納先の切り換えの制御に、クリップ情報ファイル内のエクステント起点を利用する。ここで、そのクリップ情報ファイルは、各ストリームBS、DSよりも先に受信され、メモリ部2に格納されている。特に、主制御部6はファイル・ベースを利用して、デバイス・ストリームIF部51によって受信されたデータがベースビュー・ストリームであることを認識する。一方、主制御部6はファイルDEPを利用して、デバイス・ストリームIF部51によって受信されたデータがディペンデントビュー・ストリームであることを認識する。主制御部6は更に、その認識された結果に応じて切替部53に制御信号CSを送り、データの格納先を切り換えさせる。尚、切替部53は、主制御部6とは別の専用の制御回路によって制御されてもよい。
ストリーム処理部5は、図66に示されている機能ブロック51、52、53の他に、暗号エンジン部、セキュア管理部、及びダイレクト・メモリ・アクセス用のコントローラを更に備えていてもよい。暗号エンジン部は、デバイス・ストリームIF部51によって受信された暗号化データ及び鍵データ等を復号する。セキュア管理部は秘密鍵を保持し、それを利用して、媒体MEと再生装置102との間で機器認証プロトコル等の実行制御を行う。
上記の例では、媒体MEから受信されたデータがメモリ部2に格納されるとき、そのデータがベースビュー・ストリームBSとディペンデントビュー・ストリームDSとのいずれであるかに依って、その格納先が切り替えられる。その他に、媒体MEから受信されたデータがその種類に関わらず、一旦メモリ部2内の同じ領域に格納され、その後、メモリ部2から多重分離部52へ転送されるときに、ベースビュー・ストリームBSとディペンデントビュー・ストリームDSとに分けられてもよい。
図68は、AV出力部8の代表的な構成を示す機能ブロック図である。図68を参照するに、AV出力部8は、画像重畳部81、ビデオ出力フォーマット変換部82、及びオーディオ・ビデオ出力IF部83を備える。
画像重畳部81は、信号処理部7によって復号された映像系データVP、PG、IGを互いに重畳する。具体的には、画像重畳部81はまず、ビデオ出力フォーマット変換部82からは処理後のレフトビュー又はライトビューのビデオ・プレーン・データVPを受信し、信号処理部7からは復号後のPGプレーン・データPGとIGプレーン・データIGとを受信する。画像重畳部81は次に、ビデオ・プレーン・データVPにPGプレーン・データPGとIGプレーン・データIGとをピクチャ単位で重畳する。画像重畳部81は、例えば図50、51に示されているプレーン加算部4910に相当する。
ビデオ出力フォーマット変換部82は、信号処理部7からは復号後のビデオ・プレーン・データVPを受信し、画像重畳部81からは重畳後の映像系データVP/PG/IGを受信する。ビデオ出力フォーマット変換部82は更に、それらの映像系データVP、VP/PG/IGに対して種々の処理を必要に応じて行う。その処理の種類には、リサイズ処理、IP変換処理、ノイズ・リダクション処理、及びフレームレート変換処理が含まれる。リサイズ処理は、映像のサイズを拡大/縮小する処理である。IP変換処理は、プログレッシブ方式とインターレース方式との間で走査方式を変換する処理である。ノイズ・リダクション処理は、映像からノイズを除去する処理である。フレームレート変換処理は、フレームレートを変換する処理である。ビデオ出力フォーマット変換部82は、処理後のビデオ・プレーン・データVPを画像重畳部81に送出し、又は処理後の映像系データVSをオーディオ・ビデオ出力IF部83へ送出する。
オーディオ・ビデオ出力IF部83は、ビデオ出力フォーマット変換部82からは映像系データVSを受信し、信号処理部7からは復号後の音声系データASを受信する。オーディオ・ビデオ出力IF部83は更に、受信されたデータVS、ASに対して、データ送信形式に合わせた符号化等の処理を行う。ここで、後述のように、オーディオ・ビデオ出力IF部83の一部は集積回路3の外部に備えられてもよい。
図69は、AV出力部8を含む再生装置102のデータ出力に関する部分の詳細を示す模式図である。図69を参照するに、オーディオ・ビデオ出力IF部83は、アナログ・ビデオ出力IF部83a、デジタル・ビデオ・オーディオ出力IF部83b、及びアナログ・オーディオ出力IF部83cを含む。それにより、集積回路3及び再生装置102は、以下に述べるとおり、複数種類の映像系データと音声系データとのデータ送信方式に対応可能である。
アナログ・ビデオ出力IF部83aは、ビデオ出力フォーマット変換部82から映像系データVSを受信して、そのデータVSをアナログ映像信号形式のデータVDに変換/符号化して出力する。アナログ・ビデオ出力IF部83aは、例えば、NTSC、PAL、及びSECAMのいずれかの方式に対応したコンポジット・ビデオ・エンコーダー、S映像信号(Y/C分離)用エンコーダー、コンポーネント映像信号用エンコーダー、並びにD/Aコンバータ(DAC)等を含む。
デジタル・ビデオ・オーディオ出力IF部83bは、信号処理部7からは復号後の音声系データASを受信し、ビデオ出力フォーマット変換部82からは映像系データVSを受信する。デジタル・ビデオ・オーディオ出力IF部83bは更に、それらのデータAS、VSを一体化して暗号化する。その後、デジタル・ビデオ・オーディオ出力IF部83bは、暗号化データSVAをデータ送信規格に合わせて符号化して出力する。デジタル・ビデオ・オーディオ出力IF部83bは、例えばHDMI(High−Definition Multimedia InterFace)等に相当する。
アナログ・オーディオ出力IF部83cは、信号処理部7から復号後の音声系データASを受信し、D/A変換によってアナログ音声データADに変換して出力する。アナログ・オーディオ出力IF部83cは、例えばオーディオDACに相当する。
上記の映像系データ及び音声系データの送信形式は、表示装置103/スピーカー103Aの備えるデータ受信装置/データ入力端子の種類に合わせて切り換え可能であり、また、ユーザーの選択によっても切り換え可能である。更に、再生装置102は、同じコンテンツのデータを、単一の送信形式だけではなく、複数の送信形式でパラレルに送信可能である。
AV出力部8は、図68、69に示されている機能ブロック81、82、83の他にグラフッィクス・エンジン部を更に備えていてもよい。グラフッィクス・エンジン部は、信号処理部7によって復号されたデータに対して、フィルタ処理、画面合成処理、曲線描画処理、及び3D表示処理等のグラフィックス処理を行う。
集積回路3は、図65、66、68、69に示されている各機能ブロックを内蔵する。しかし、それは必須ではなく、一部の機能ブロックが集積回路3に外付けされていてもよい。また、図65に示されている構成とは異なり、メモリ部2が集積回路3に内蔵されていてもよい。更に、主制御部6と信号処理部7とは、完全に分離された機能ブロックでなくてもよく、例えば主制御部6が信号処理部7の処理の一部を行ってもよい。
集積回路3内の機能ブロック間を接続する制御バス及びデータバスのトポロジーは、各機能ブロックの処理の手順及び内容に合わせて選択されればよい。図70は、集積回路3内の制御バス及びデータバスのトポロジーの例(a)、(b)を示す模式図である。図70の(a)を参照するに、制御バス11とデータバス12とはいずれも、各機能ブロック5−9を他の全ての機能ブロックに直結させるように配置されている。その他に、図70の(b)に示されているように、データバス13は各機能ブロック5−8をメモリ制御部9にのみ直結させるように配置されてもよい。その場合、各機能ブロック5−8はメモリ制御部9、更にメモリ部2を介してデータを他の機能ブロックに転送する。
集積回路3は、単一のチップに実装されたLSIに代えて、マルチチップ・モジュールであってもよい。その場合、集積回路3を構成する複数のチップは一つのパッケージに封止されているので、集積回路3は見かけ上、単一のLSIである。集積回路3はその他に、FPGA(Field Programmable Gate Array)又はリコンフィギュラブル・プロセッサを利用して構成されてもよい。FPGAは、製造後にプログラム可能なLSIである。リコンフィギュラブル・プロセッサは、内部の回路セル間の接続、及び各回路セルの設定を再構成可能なLSIである。
<集積回路3を利用した再生装置102の再生処理>
図71は、集積回路3を利用した再生装置102による再生処理のフローチャートである。その再生処理は、光ディスクがディスクドライブに挿入される等、媒体IF部1が媒体MEにデータ受信可能に接続されたときに開始される。その再生処理では、再生装置102は媒体MEからデータを受信して復号する。その後、再生装置102は復号後のデータを映像信号及び音声信号として出力する。
ステップS1:媒体IF部1が媒体MEからデータを受信し、又は読み出してストリーム処理部5へ転送する。その後、処理はステップS2へ進む。
ステップS2:ストリーム処理部5は、ステップS1において受信され、又は読み出されたデータを映像系データと音声系データとに分離する。その後、処理はステップS3へ進む。
ステップS3:信号処理部7は、ステップS2においてストリーム処理部5によって分離された各データをその符号化方式に適した方法で復号する。その後、処理はステップS4へ進む。
ステップS4:AV出力部8は、ステップS3において信号処理部7によって復号された映像系データに対して重畳処理を行う。その後、処理はステップS5へ進む。
ステップS5:AV出力部8は、ステップS2−4において処理された映像系データ及び音声系データを出力する。その後、処理はステップS6へ進む。
ステップS6:主制御部6が再生処理を続行すべきか否かを判断する。媒体IF部1によって媒体MEから新たに受信されるべき、又は読み出されるべきデータが残されている等の場合は、ステップS1から処理が繰り返される。一方、光ディスクがディスクドライブから取り出され、又はユーザから再生停止が指示された等によって、媒体IF部1が媒体MEからのデータ受信、又は読み出しを終了させたとき、処理は終了する。
図72は、図71に示されている各ステップS1−6の詳細を示すフローチャートである。図72に示されている各ステップS101−110は主制御部6の制御の下で行われる。ステップS101は主にステップS1の詳細に相当し、ステップS102−104は主にステップS2の詳細に相当し、ステップS105は主にステップS3の詳細に相当し、ステップS106−108は主にステップS4の詳細に相当し、ステップS109、S110は主にステップS5の詳細に相当する。
ステップS101:デバイス・ストリームIF部51は、媒体IF部1を通して媒体MEから、再生対象のデータよりも先に、そのデータの再生に必要なデータ、例えばプレイリスト・ファイル及びクリップ情報ファイルを受信し、又は読み出す。デバイス・ストリームIF部51は更に、メモリ制御部9を介してそのデータをメモリ部2に格納する。その後、処理はステップS102へ進む。
ステップS102:主制御部6は、クリップ情報ファイルに含まれるストリーム属性情報から、媒体MEに格納されている映像データ及び音声データの符号化方式を識別する。主制御部6は更に、識別された符号化方式に対応する復号処理が実行できるように信号処理部7の初期化を行う。その後、処理はステップS103へ進む。
ステップS103:デバイス・ストリームIF部51は、媒体IF部1を通して媒体MEから、再生対象の映像データと音声データとを受信し、又は読み出す。特に、それらのデータはエクステント単位で受信され、又は読み出される。デバイス・ストリームIF部51は更に、それらのデータを切替部53とメモリ制御部9とを経由してメモリ部2に格納する。特に、ベースビュー・ストリームが受信され、又は読み出されたとき、主制御部6は切替部53を制御して、そのストリームの格納先をメモリ部2内の第1の領域へ切り換えさせる。一方、ディペンデントビュー・ストリームが受信され、又は読み出されたとき、主制御部6は切替部53を制御して、そのストリームの格納先をメモリ部2内の第2の領域へ切り換えさせる。その後、処理はステップS104へ進む。
ステップS104:メモリ部2に格納されたストリームは、ストリーム処理部5内の多重分離部52に転送される。多重分離部52はまず、そのストリームを構成する各ソースパケットからPIDを読み取る。多重分離部52は次に、そのPIDに従って、そのソースパケットに含まれるTSパケットが映像系データと音声系データとのいずれであるのかを識別する。多重分離部52は更に、識別結果に従って各TSパケットを信号処理部7内の対応するデコーダへ転送する。その後、処理はステップS105へ進む。
ステップS105:信号処理部7内では各デコーダが、転送されたTSパケットを適切な方法で復号する。その後、処理はステップS106へ進む。
ステップS106:信号処理部7において復号されたレフトビュー・ビデオ・ストリーム及びライトビュー・ビデオ・ストリームの各ピクチャがビデオ出力フォーマット変換部82に送られる。ビデオ出力フォーマット変換部82はそれらのピクチャを表示装置103の解像度に合わせてリサイズする。その後、処理はステップS107へ進む。
ステップS107:画像重畳部81は、ステップS106においてリサイズされたピクチャから成るビデオ・プレーン・データをビデオ出力フォーマット変換部82から受信する。一方、画像重畳部81は信号処理部7から復号後のPGプレーン・データとIGプレーン・データとを受信する。画像重畳部81は更に、それらのプレーン・データを重畳する。その後、処理はステップS108へ進む。
ステップS108:ビデオ出力フォーマット変換部82は、ステップS107において重畳されたプレーン・データを画像重畳部81から受信する。ビデオ出力フォーマット変換部82は更に、そのプレーン・データに対してIP変換を行う。その後、処理はステップS109へ進む。
ステップS109:オーディオ・ビデオ出力IF部83は、ビデオ出力フォーマット変換部82からは、ステップS108においてIP変換を受けた映像系データを受信し、信号処理部7からは復号後の音声系データを受ける。オーディオ・ビデオ出力IF部83は更に、それらのデータに対して、表示装置103/スピーカ103Aによるデータ出力方式、又はそれぞれへのデータ送信方式に従って符号化処理及びD/A変換等を行う。それにより、映像系データと音声系データとはそれぞれ、アナログ出力形式又はデジタル出力形式に変換される。例えば、アナログ出力形式の映像系データには、コンポジット映像信号、S映像信号、及びコンポーネント映像信号等が含まれる。また、デジタル出力形式の映像系データ/音声系データには、HDMI等が含まれる。その後、処理はステップS110へ進む。
ステップS110:オーディオ・ビデオ出力IF部83は、ステップS109において処理された映像系データ及び音声系データを表示装置103/スピーカ103Aへ送信する。その後、処理はステップS6へ進む。尚、ステップS6については上記の説明を援用する。
上記の各ステップでは、データが処理される度に、その結果がメモリ部2に一時的に格納されてもよい。また、ステップS106及びS108でのビデオ出力フォーマット変換部82によるリサイズ処理及びIP変換処理は必要に応じて省略されてもよい。更に、それらの処理に加え、又はそれらの処理に代えて、ノイズ・リダクション処理及びフレームレート変換処理等、他の処理が行われてもよい。更に、可能なものについては処理手順が変更されてもよい。
<補足>
≪3D映像の再生方法の原理≫
3D映像の再生方法は、ホログラフィ技術を用いる方法と、視差映像を用いる方法との2つに大別される。
ホログラフィ技術を用いる方法の特徴は、現実の立体的な物体から人間の視覚に与えられる光学的な情報とほぼ全く同じ情報を視聴者の視覚に与えることにより、その視聴者に映像中の物体を立体的に見せる点にある。しかし、この方法を動画表示に利用する技術は理論上確立されてはいる。しかし、その動画表示に必要とされる、膨大な演算をリアルタイムに処理可能なコンピュータ、及び、1mmあたり数千本という超高解像度の表示装置はいずれも、現在の技術ではまだ、実現が非常に難しい。従って、この方法を商業用として実用化する目途は、現時点ではほとんど立っていない。
「視差映像」とは、一つのシーンを見る視聴者の各目に映る2D映像の対、すなわち、レフトビューとライトビューとの対をいう。視差映像を用いる方法の特徴は、一つのシーンのレフトビューとライトビューとを視聴者の各目だけに見えるように再生することにより、その視聴者にそのシーンを立体的に見せる点にある。
図73の(a)−(c)は、視差映像を用いる方法による3D映像(立体視映像)の再生原理を説明するための模式図である。図73の(a)は、視聴者6501が、顔の正面に置かれた立方体6502を見ている光景の上面図である。図73の(b)、(c)はそれぞれ、そのときに視聴者6501の左目6501L、右目6501Rに見える立方体6502の外観を2D映像として示す模式図である。図73の(b)、(c)を比較すれば明らかなとおり、各目に見える立方体6502の外観はわずかに異なる。この外観の差、すなわち両眼視差から、視聴者6501は立方体6502を立体的に認識できる。従って、視差映像を用いる方法では、まず、一つのシーン、例えば図73の(a)に示されている立方体6502に対し、視点が異なる左右の2D映像、例えば図73の(b)に示されている立方体6502のレフトビュー、及び図73の(c)に示されているそのライトビューを準備する。ここで、各視点の位置は視聴者6501の両眼視差から決定される。次に、各2D映像を視聴者6501のそれぞれの目だけに見えるように再生する。それにより、視聴者6501には、画面に再生されるそのシーン、すなわち立方体6502の映像が立体的に見える。このように、視差映像を用いる方法は、ホログラフィ技術を用いる方法とは異なり、高々二つの視点から見える2D映像を準備するだけでよい点で有利である。
視差映像を用いる方法については、それを具体化するための方式が多様に提案されている。それらの方式は、左右の2D映像を視聴者のそれぞれの目にいかにして見せるかという観点から、経時分離方式、レンチキュラーレンズを用いる方式、及び二色分離方式等に分けられる。
継時分離方式では、画面に左右の2D映像を一定時間ずつ交互に表示する一方、視聴者にシャッター眼鏡を通して画面を観察させる。ここで、シャッター眼鏡は、各レンズが例えば液晶パネルで形成されている。各レンズは、画面上の2D映像の切り換えに同期して交互に光をその全体で一様に透過させ、又は遮断する。すなわち、各レンズは、視聴者の目を周期的に塞ぐシャッターとして機能する。より詳細に言えば、画面上に左映像が表示される期間では、シャッター眼鏡は左側のレンズには光を透過させ、右側のレンズには光を遮断させる。逆に、画面上に右映像が表示されている期間では、シャッター眼鏡は右側のレンズには光を透過させ、左側のレンズには光を遮断させる。それにより、視聴者の目には、左右の映像の残像が重なって一つの3D映像に見える。
経時分離方式では、上記のとおり、左右の映像を一定周期で交互に表示する。例えば2D映像の再生において1秒当たり24枚の映像フレームが表示されるとき、3D映像の再生では左右の映像を合わせて、1秒当たり48枚の映像フレームが表示される。従って、この方式には、画面の書き換えを速く実行できる表示装置が好適である。
レンチキュラーレンズを用いる方式では、左右の各映像フレームを、縦方向に細長い短冊形の小領域に分割し、一つの画面の中に左右の映像フレームの各小領域を横方向に交互に並べて同時に表示する。ここで、画面の表面はレンチキュラーレンズで覆われている。レンチキュラーレンズは、細長い蒲鉾レンズを複数平行に並べて一枚のシート状にしたものである。各蒲鉾レンズは画面の表面を縦方向に延びている。レンチキュラーレンズを通して上記左右の映像フレームを視聴者に見せるとき、左映像フレームの表示領域からの光は視聴者の左目だけに結像し、右映像フレームの表示領域からの光は右目だけに結像するようにできる。こうして、左右の目に映る映像間での両眼視差により、視聴者には3D映像が見える。尚、この方式では、レンチキュラーレンズに代えて、同様な機能を持つ液晶素子等の他の光学部品が利用されてもよい。その他に、例えば左映像フレームの表示領域には縦偏光のフィルタを設置し、右映像フレームの表示領域には横偏光のフィルタを設置してもよい。そのとき、視聴者には偏光眼鏡を通して画面を見させる。ここで、その偏光眼鏡では、左側のレンズに縦偏光フィルタが設置され、かつ右側のレンズに横偏光フィルタが設置されている。従って、左右の映像が視聴者のそれぞれの目だけに見えるので、視聴者に3D映像を見せることができる。
視差映像を用いる方法では、3D映像コンテンツが、初めから左右の映像の組み合わせで構成されている場合の他に、2D映像とデプスマップとの組み合わせで構成されていてもよい。その2D映像は、再生対象の3D映像から仮想的な2D画面への射影を表し、デプスマップは、その2D画面に対するその3D映像の各部の奥行きを画素別に表す。3D映像コンテンツが2D映像とデプスマップとの組み合わせで構成されているとき、3D再生装置又は表示装置はまず、それらの組み合わせから左右の映像を構成し、次にそれらの映像から上記の方式のいずれかで3D映像を再現する。
図74は、2D映像6601とデプスマップ6602との組み合わせからレフトビュー6603Lとライトビュー6603Rとを構成する例を示す模式図である。図74を参照するに、2D映像6601では、背景6612の中に円板6611が表示されている。デプスマップ6602はその2D映像6601内の各部の奥行きを画素ごとに示す。そのデプスマップ6602によれば、2D映像6601のうち、円板6611の表示領域6621の奥行きが画面よりも手前であり、かつ、背景6612の表示領域6622の奥行きが画面よりも奥である。再生装置102内では視差映像生成部6600がまず、デプスマップ6602の示す各部の奥行きから2D映像6601内の各部の両眼視差を計算する。視差映像生成部6600は次に、2D映像6601内の各部の表示位置を、計算された両眼視差に応じて左右に移動させて、レフトビュー6603Lとライトビュー6603Rとを構成する。図74に示されている例では、視差映像生成部6600は、2D映像6601内の円板6611の表示位置に対し、レフトビュー6603L内の円板6631Lの表示位置をその両眼視差の半分S1だけ右に移動させ、ライトビュー6603R内の円板6631Rの表示位置をその両眼視差の半分S1だけ左に移動させる。それにより、視聴者には円板6611が画面よりも手前に見える。一方、視差映像生成部6600は、2D映像6601内の背景6612の表示位置に対し、レフトビュー6603L内の背景6632Lの表示位置をその両眼視差の半分S2だけ左に移動させ、ライトビュー6603R内の背景6632Rの表示位置をその両眼視差の半分S2だけ右に移動させる。それにより、視聴者には背景6612が画面よりも奥に見える。
視差映像を用いる方法による3D映像の再生システムは、映画館及び遊園地のアトラクション等で利用されるものについては既に確立され、一般的に使用されている。従って、その方法は、3D映像を再生可能なホームシアター・システムの実用化にも有効である。本発明の実施形態では、視差映像を用いる方法のうち、継時分離方式又は偏光眼鏡を用いた方式を想定する。但し、本発明は、それらの方式とは異なる他の方式に対しても、それらが視差映像を用いている限り、適用可能である。それは、上記の実施形態の説明から当業者には明らかであろう。
≪放送、通信回路を経由したデータ配信≫
本発明の実施形態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、すなわちボリューム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セクション内の「随時アクセスされるファイル」として管理される。すなわち、プレイリスト・ファイル及びクリップ情報ファイルは、再生プログラムの実行時にその構成要素の中に組み込まれる。それ故、プレイリスト・ファイル及びクリップ情報ファイルは再生プログラムにおいて、単なるデータの提示を超えた役割を果たす。