以下、本発明の好適な実施形態に係る記録媒体及び再生装置について、図面を参照しながら説明する。
《実施形態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に記録されたデータはディレクトリ/ファイル形式で表現される(詳細は《補足》参照)。すなわち、それらのデータはディレクトリ単位又はファイル単位でアクセス可能である。
≪BD−ROMディスク上のディレクトリ/ファイル構造≫
図2は更に、BD−ROMディスク101のボリューム領域202Bに格納されたデータのディレクトリ/ファイル構造を示す。図2を参照するに、このディレクトリ/ファイル構造では、ルート(ROOT)ディレクトリ203の直下にBDムービー(BDMV:BD Movie)ディレクトリ210が置かれている。BDMVディレクトリ210の直下には、インデックス・ファイル(index.bdmv)211とムービーオブジェクト・ファイル(MovieObject.bdmv)212とが置かれている。
インデックス・ファイル211は、BD−ROMディスク101に記録されたコンテンツの全体を管理するための情報である。その情報は特に、そのコンテンツを再生装置102に認識させるための情報、及びインデックス・テーブルを含む。インデックス・テーブルは、そのコンテンツを構成するタイトルと、再生装置102の動作を制御するためのプログラムとの間の対応表である。そのプログラムを「オブジェクト」という。オブジェクトの種類にはムービーオブジェクトとBD−J(BD Java (登録商標))オブジェクトとがある。
ムービーオブジェクト・ファイル212は一般に複数のムービーオブジェクトを含む。各ムービーオブジェクトはナビゲーション・コマンドの列を含む。ナビゲーション・コマンドは、一般的なDVDプレーヤによる再生処理と同様な再生処理を再生装置102に実行させるための制御指令である。ナビゲーション・コマンドの種類には、例えば、タイトルに対応するプレイリスト・ファイルの読み出し命令、プレイリスト・ファイルの示すAVストリーム・ファイルの再生命令、及び別のタイトルへの遷移命令がある。ナビゲーション・コマンドはインタプリタ型言語で記述され、再生装置102に組み込まれたインタプリタ、すなわちジョブ制御プログラムによって解読され、その制御部に所望のジョブを実行させる。ナビゲーション・コマンドはオペコードとオペランドとから成る。オペコードは、タイトルの分岐と再生及び演算等、再生装置102に実行させるべき操作の種類を示す。オペランドは、タイトル番号等、その操作の対象の識別情報を示す。再生装置102の制御部は、例えばユーザの操作に応じて各ムービーオブジェクトを呼び出し、そのムービーオブジェクトに含まれるナビゲーション・コマンドを列の順に実行する。それにより、再生装置102は一般的なDVDプレーヤと同様に、まず表示装置103にメニューを表示してユーザにコマンドを選択させる。再生装置102は次に、選択されたコマンドに応じて、タイトルの再生開始/停止、及び別のタイトルへの切り換え等、再生される映像の進行を動的に変化させる。
図2を更に参照するに、BDMVディレクトリ210の直下には、プレイリスト(PLAYLIST)ディレクトリ220、クリップ情報(CLIPINF)ディレクトリ230、ストリーム(STREAM)ディレクトリ240、BD−Jオブジェクト(BDJO:BD Java Object)ディレクトリ250、及びJavaアーカイブ(JAR:Java Archive)ディレクトリ260が置かれている。
STREAMディレクトリ240の直下には、三種類のAVストリーム・ファイル(01000.m2ts)241、(02000.m2ts)242、(03000.m2ts)243、及び、立体視インターリーブ・ファイル(SSIF:Stereoscopic Interleaved File)ディレクトリ244が置かれている。SSIFディレクトリ244の直下には、二種類のAVストリーム・ファイル(01000.ssif)244A、(02000.ssif)244Bが置かれている。
「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を含むAVストリーム・ファイルをいう。「ファイルSS」は、同じ3D映像を表すメインTSとサブTSとの対を含むAVストリーム・ファイルをいう。ファイルSSは特に、そのメインTSをいずれかのファイル2Dと共有し、そのサブTSをいずれかのファイルDEPと共有する。すなわち、BD−ROMディスク101のファイルシステムでは、メインTSはファイルSSとファイル2Dとのいずれとしてもアクセス可能であり、サブTSはファイルSSとファイルDEPとのいずれとしてもアクセス可能である。このように、BD−ROMディスク101上に記録された一連のデータを異なるファイルに共有させ、いずれのファイルとしてもアクセス可能にする仕組みを「ファイルのクロスリンク」という。
図2に示されている例では、第1AVストリーム・ファイル(01000.m2ts)241はファイル2Dであり、第2AVストリーム・ファイル(02000.m2ts)242と第3AVストリーム・ファイル(03000.m2ts)243とはいずれもファイルDEPである。このように、ファイル2DとファイルDEPとはSTREAMディレクトリ240の直下に置かれる。第1AVストリーム・ファイル、すなわちファイル2D241の含むベースビュー・ビデオ・ストリームは3D映像のレフトビューを表す。第2AVストリーム・ファイル、すなわち第1ファイルDEP242の含むディペンデントビュー・ビデオ・ストリームはライトビュー・ビデオ・ストリームである。第3AVストリーム・ファイル、すなわち第2ファイルDEP243の含むディペンデントビュー・ビデオ・ストリームはデプスマップ・ストリームである。
図2に示されている例では更に、第4AVストリーム・ファイル(01000.ssif)244Aと第5AVストリーム・ファイル(02000.ssif)244BとはいずれもファイルSSである。このように、ファイルSSはSSIFディレクトリ244の直下に置かれる。第4AVストリーム・ファイル、すなわち第1ファイルSS244Aはファイル2D241とはメインTS、特にベースビュー・ビデオ・ストリームを共有し、第1ファイルDEP242とはサブTS、特にライトビュー・ビデオ・ストリームを共有する。第5AVストリーム・ファイル、すなわち第2ファイルSS244Bはファイル2D241とはメインTS、特にベースビュー・ビデオ・ストリームを共有し、第2ファイルDEP243とはサブTS、特にデプスマップ・ストリームを共有する。
CLIPINFディレクトリ230には、三種類のクリップ情報ファイル(01000.clpi)231、(02000.clpi)232、(03000.clpi)233が置かれている。「クリップ情報ファイル」は、ファイル2DとファイルDEPとに一対一に対応付けられたファイルであって、特に各ファイルのエントリ・マップを含むものをいう。「エントリ・マップ」は、ファイル2D又はファイルDEPの表す各シーンの表示時間と、そのシーンが記録された各ファイル内のアドレスとの間の対応表である。クリップ情報ファイルのうち、ファイル2Dに対応付けられているものを「2Dクリップ情報ファイル」といい、ファイルDEPに対応付けられているものを「ディペンデントビュー・クリップ情報ファイル」という。更に、ファイルDEPがライトビュー・ビデオ・ストリームを含むとき、対応するディペンデントビュー・クリップ情報ファイルを「ライトビュー・クリップ情報ファイル」という。ファイルDEPがデプスマップ・ストリームを含むとき、対応するディペンデントビュー・クリップ情報ファイルを「デプスマップ・クリップ情報ファイル」という。図2に示されている例では、第1クリップ情報ファイル(01000.clpi)231は2Dクリップ情報ファイルであり、ファイル2D241に対応付けられている。第2クリップ情報ファイル(02000.clpi)232はライトビュー・クリップ情報ファイルであり、第1ファイルDEP242に対応付けられている。第3クリップ情報ファイル(03000.clpi)233はデプスマップ・クリップ情報ファイルであり、第2ファイルDEP243に対応付けられている。
PLAYLISTディレクトリ220には三種類のプレイリスト・ファイル(00001.mpls)221、(00002.mpls)222、(00003.mpls)223が置かれている。「プレイリスト・ファイル」は、AVストリーム・ファイルの再生経路、すなわちAVストリーム・ファイルの再生対象の部分とその再生順序とを規定するファイルをいう。プレイリスト・ファイルの種類には2Dプレイリスト・ファイルと3Dプレイリスト・ファイルとがある。「2Dプレイリスト・ファイル」はファイル2Dの再生経路を規定する。「3Dプレイリスト・ファイル」は、2D再生モードの再生装置に対してはファイル2Dの再生経路を規定し、3D再生モードの再生装置に対してはファイルSSの再生経路を規定する。図2に示されている例では、第1プレイリスト・ファイル(00001.mpls)221は2Dプレイリスト・ファイルであり、ファイル2D241の再生経路を規定する。第2プレイリスト・ファイル(00002.mpls)222は3Dプレイリスト・ファイルであり、2D再生モードの再生装置に対してはファイル2D241の再生経路を規定し、L/Rモードの再生装置に対しては第1ファイルSS244Aの再生経路を規定する。第3プレイリスト・ファイル(00003.mpls)223は3Dプレイリスト・ファイルであり、2D再生モードの再生装置に対してはファイル2D241の再生経路を規定し、デプス・モードの再生装置に対しては第2ファイルSS244Bの再生経路を規定する。
BDJOディレクトリ250にはBD−Jオブジェクト・ファイル(XXXXX.bdjo)251が置かれている。BD−Jオブジェクト・ファイル251はBD−Jオブジェクトを一つ含む。BD−Jオブジェクトはバイトコード・プログラムであり、再生装置102に実装されたJava仮想マシンにタイトルの再生処理及びグラフィックス映像の描画処理を実行させる。BD−Jオブジェクトは、Java言語等のコンパイラ型言語で記述されている。BD−Jオブジェクトはアプリケーション管理テーブルと参照対象のプレイリスト・ファイルの識別情報とを含む。「アプリケーション管理テーブル」は、Java仮想マシンに実行させるべきJavaアプリケーション・プログラムとその実行時期、すなわちライフサイクルとの対応表である。「参照対象のプレイリスト・ファイルの識別情報」は、再生対象のタイトルに対応するプレイリスト・ファイルを識別するための情報である。Java仮想マシンはユーザの操作又はアプリケーション・プログラムに従って各BD−Jオブジェクトを呼び出し、そのBD−Jオブジェクトに含まれるアプリケーション管理テーブルに従ってJavaアプリケーション・プログラムを実行する。それにより、再生装置102は、再生される各タイトルの映像の進行を動的に変化させ、又は、表示装置103にグラフィックス映像をタイトルの映像とは独立に表示させる。
JARディレクトリ260にはJARファイル(YYYYY.jar)261が置かれている。JARファイル261は、BD−Jオブジェクトの示すアプリケーション管理テーブルに従って実行されるべきJavaアプリケーション・プログラムの本体を一般に複数含む。「Javaアプリケーション・プログラム」は、BD−Jオブジェクトと同様、Java言語等のコンパイラ型言語で記述されたバイトコード・プログラムである。Javaアプリケーション・プログラムの種類には、Java仮想マシンにタイトルの再生処理を実行させるもの、及びJava仮想マシンにグラフィックス映像の描画処理を実行させるものが含まれる。JARファイル261はJavaアーカイブ・ファイルであり、再生装置102に読み込まれたときにその内部のメモリで展開される。それにより、そのメモリの中にJavaアプリケーション・プログラムが格納される。
≪多重化ストリーム・データの構造≫
図3の(a)は、BD−ROMディスク101上のメインTSに多重化されたエレメンタリ・ストリームの一覧表である。メインTSはMPEG−2トランスポート・ストリーム(TS)形式のデジタル・ストリームであり、図2に示されているファイル2D241に含まれる。図3の(a)を参照するに、メインTSはプライマリ・ビデオ・ストリーム301とプライマリ・オーディオ・ストリーム302A、302Bとを含む。メインTSはその他に、プレゼンテーション・グラフィックス(PG)ストリーム303A、303B、インタラクティブ・グラフィックス(IG)ストリーム304、セカンダリ・オーディオ・ストリーム305、及びセカンダリ・ビデオ・ストリーム306を含んでもよい。
プライマリ・ビデオ・ストリーム301は映画の主映像を表し、セカンダリ・ビデオ・ストリーム306は副映像を表す。ここで、主映像とは、映画の本編の映像等、コンテンツの主要な映像を意味し、例えば画面全体に表示されるものを指す。一方、副映像とは、例えば主映像の中に小さな画面で表示される映像のように、ピクチャ・イン・ピクチャ方式を利用して主映像と同時に画面に表示される映像を意味する。プライマリ・ビデオ・ストリーム301とセカンダリ・ビデオ・ストリーム306とはいずれもベースビュー・ビデオ・ストリームである。各ビデオ・ストリーム301、306は、MPEG−2、MPEG−4 AVC、又はSMPTE VC−1等の動画圧縮符号化方式で符号化されている。
プライマリ・オーディオ・ストリーム302A、302Bは映画の主音声を表す。ここで、二つのプライマリ・オーディオ・ストリーム302A、302Bの間では言語が異なる。セカンダリ・オーディオ・ストリーム305は、対話画面の操作に伴う効果音等、主音声と重ね合わされるべき(ミキシングされるべき)副音声を表す。各オーディオ・ストリーム302A、302B、305は、AC−3、ドルビー・デジタル・プラス(Dolby Digital Plus:「ドルビー・デジタル」は登録商標)、MLP(MeridianLossless Packing:登録商標)、DTS(Digital Theater System:登録商標)、DTS−HD、又はリニアPCM(Pulse Code Modulation)等の方式で符号化されている。
各PGストリーム303A、303Bは、グラフィックスによる字幕等、プライマリ・ビデオ・ストリーム301の表す映像に重ねて表示されるべきグラフィックス映像を表す。二つのPGストリーム303A、303Bの間では、例えば字幕の言語が異なる。IGストリーム304は、表示装置103の画面131上に対話画面を構成するためのグラフィックス・ユーザインタフェース(GUI)用のグラフィックス部品及びその配置を表す。
エレメンタリ・ストリーム301−306はパケット識別子(PID)によって識別される。PIDの割り当ては例えば次のとおりである。一つのメインTSはプライマリ・ビデオ・ストリームを一本のみ含むので、プライマリ・ビデオ・ストリーム301には16進数値0x1011が割り当てられる。一つのメインTSに他のエレメンタリ・ストリームが種類ごとに最大32本まで多重化可能であるとき、プライマリ・オーディオ・ストリーム302A、302Bには0x1100から0x111Fまでのいずれかが割り当てられる。PGストリーム303A、303Bには0x1200から0x121Fまでのいずれかが割り当てられる。IGストリーム304には0x1400から0x141Fまでのいずれかが割り当てられる。セカンダリ・オーディオ・ストリーム305には0x1A00から0x1A1Fまでのいずれかが割り当てられる。セカンダリ・ビデオ・ストリーム306には0x1B00から0x1B1Fまでのいずれかが割り当てられる。
図3の(b)は、BD−ROMディスク101上の第1サブTSに多重化されたエレメンタリ・ストリームの一覧表である。第1サブTSはMPEG−2 TS形式の多重化ストリーム・データであり、図2に示されている第1ファイルDEP242に含まれる。図3の(b)を参照するに、第1サブTSはプライマリ・ビデオ・ストリーム311を含む。第1サブTSはその他に、レフトビューPGストリーム312A、312B、ライトビューPGストリーム313A、313B、レフトビューIGストリーム314、ライトビューIGストリーム315、及びセカンダリ・ビデオ・ストリーム316を含んでもよい。プライマリ・ビデオ・ストリーム311はライトビュー・ビデオ・ストリームであり、メインTS内のプライマリ・ビデオ・ストリーム301が3D映像のレフトビューを表すとき、その3D映像のライトビューを表す。レフトビューとライトビューとのPGストリームの対312A+313A、312B+313Bは、字幕等のグラフィックス映像を3D映像として表示するときにそのレフトビューとライトビューとの対を表す。レフトビューとライトビューとのIGストリームの対314、315は、対話画面のグラフィックス映像を3D映像として表示するときにそのレフトビューとライトビューとの対を表す。セカンダリ・ビデオ・ストリーム316はライトビュー・ビデオ・ストリームであり、メインTS内のセカンダリ・ビデオ・ストリーム306が3D映像のレフトビューを表すとき、その3D映像のライトビューを表す。
エレメンタリ・ストリーム311−316に対するPIDの割り当ては例えば次のとおりである。プライマリ・ビデオ・ストリーム311には0x1012が割り当てられる。一つのサブTSに他のエレメンタリ・ストリームが種類別に最大32本まで多重化可能であるとき、レフトビューPGストリーム312A、312Bには0x1220から0x123Fまでのいずれかが割り当てられ、ライトビューPGストリーム313A、313Bには0x1240から0x125Fまでのいずれかが割り当てられる。レフトビューIGストリーム314には0x1420から0x143Fまでのいずれかが割り当てられ、ライトビューIGストリーム315には0x1440から0x145Fまでのいずれかが割り当てられる。セカンダリ・ビデオ・ストリーム316には0x1B20から0x1B3Fまでのいずれかが割り当てられる。
図3の(c)は、BD−ROMディスク101上の第2サブTSに多重化されたエレメンタリ・ストリームの一覧表である。第2サブTSはMPEG−2 TS形式の多重化ストリーム・データであり、図2に示されている第2ファイルDEP243に含まれる。図3の(c)を参照するに、第2サブTSはプライマリ・ビデオ・ストリーム321を含む。第2サブTSはその他に、デプスマップPGストリーム323A、323B、デプスマップIGストリーム324、及びセカンダリ・ビデオ・ストリーム326を含んでもよい。プライマリ・ビデオ・ストリーム321はデプスマップ・ストリームであり、メインTS内のプライマリ・ビデオ・ストリーム301との組み合わせで3D映像を表す。デプスマップPGストリーム323A、323Bは、メインTS内のPGストリーム303A、303Bの表す2D映像が仮想的な2D画面への3D映像の射影として利用されるとき、その3D映像のデプスマップを表すPGストリームとして利用される。デプスマップIGストリーム324は、メインTS内のIGストリーム304の表す2D映像が仮想的な2D画面への3D映像の射影として利用されるとき、その3D映像のデプスマップを表すIGストリームとして利用される。セカンダリ・ビデオ・ストリーム326はデプスマップ・ストリームであり、メインTS内のセカンダリ・ビデオ・ストリーム306との組み合わせで3D映像を表す。
エレメンタリ・ストリーム321−326に対するPIDの割り当ては例えば次のとおりである。プライマリ・ビデオ・ストリーム321には0x1013が割り当てられる。一つのサブTSに他のエレメンタリ・ストリームが種類別に最大32本まで多重化可能であるとき、デプスマップPGストリーム323A、323Bには0x1260から0x127Fまでのいずれかが割り当てられる。デプスマップIGストリーム324には0x1460から0x147Fまでのいずれかが割り当てられる。セカンダリ・ビデオ・ストリーム326には0x1B40から0x1B5Fまでのいずれかが割り当てられる。
図4は、多重化ストリーム・データ400内でのTSパケットの配置を示す模式図である。このパケット構造はメインTSとサブTSとで共通である。多重化ストリーム・データ400内では各エレメンタリ・ストリーム401、402、403、404はTSパケット421、422、423、424の列に変換されている。例えばビデオ・ストリーム401では、まず、各フレーム401A又は各フィールドが一つのPES(Packetized ElementaryStream)パケット411に変換される。次に、各PESパケット411が一般に複数のTSパケット421に変換される。同様に、オーディオ・ストリーム402、PGストリーム403、及びIGストリーム404はそれぞれ、一旦PESパケット412、413、414の列に変換された後、TSパケット422、423、424の列に変換される。最後に、各エレメンタリ・ストリーム401、402、403、404から得られたTSパケット421、422、423、424が一本のストリーム・データ400に時分割で多重化される。
図5の(b)は、多重化ストリーム・データを構成するTSパケット列の形式を示す模式図である。各TSパケット501は188バイト長のパケットである。図5の(b)を参照するに、各TSパケット501は、TSペイロード501Pとアダプテーション(adaptation)・フィールド(以下、ADフィールドと略す。)501Aとの少なくともいずれか、及びTSヘッダ501Hを含む。TSペイロード501PとADフィールド501Aとは、両方を合わせて184バイト長のデータ領域である。TSペイロード501PはPESパケットの格納領域として利用される。図4に示されているPESパケット411−414はそれぞれ、一般に複数の部分に分割され、各部分が異なるTSペイロード501Pに格納される。ADフィールド501Aは、TSペイロード501Pのデータ量が184バイトに満たないときにスタッフィング・バイト(すなわちダミー・データ)を格納するための領域である。ADフィールド501Aはその他に、TSパケット501が例えば後述のPCRであるときに、その情報の格納領域として利用される。TSヘッダ501Hは4バイト長のデータ領域である。
図5の(a)は、TSヘッダ501Hのデータ構造を示す模式図である。図5の(a)を参照するに、TSヘッダ501Hは、TS優先度(transport_priority)511、PID512、及びADフィールド制御(adaptation_field_control)513を含む。PID512は、同じTSパケット501内のTSペイロード501Pに格納されたデータの属するエレメンタリ・ストリームのPIDを示す。TS優先度511は、PID512の示す値が共通するTSパケット群の中でのTSパケット501の優先度を示す。ADフィールド制御513は、TSパケット501内でのADフィールド501AとTSペイロード501Pとのそれぞれの有無を示す。例えばADフィールド制御513が“1”を示すとき、TSパケット501はADフィールド501Aを含まず、TSペイロード501Pを含む。ADフィールド制御513が“2”を示すときはその逆である。ADフィールド制御513が“3”を示すとき、TSパケット501はADフィールド501AとTSペイロード501Pとの両方を含む。
図5の(c)は、多重化ストリーム・データのTSパケット列から構成されたソースパケット列の形式を示す模式図である。図5の(c)を参照するに、各ソースパケット502は192バイト長のパケットであり、図5の(b)に示されているTSパケット501の一つと4バイト長のヘッダ(TP_Extra_Header)502Hとを含む。TSパケット501がBD−ROMディスク101に記録されるとき、そのTSパケット501にヘッダ502Hが付与されることによってソースパケット502は構成される。ヘッダ502HはATS(Arrival_Time_Stamp)を含む。「ATS」は時刻情報であり、次のように利用される:ソースパケット502がBD−ROMディスク101から再生装置102内のシステム・ターゲット・デコーダへ送られたとき、そのソースパケット502からTSパケット502Pが抽出されてシステム・ターゲット・デコーダ内のPIDフィルタへ転送される。そのヘッダ502H内のATSは、その転送が開始されるべき時刻を示す。ここで、「システム・ターゲット・デコーダ」は、多重化ストリーム・データをエレメンタリ・ストリームごとに復号する装置をいう。システム・ターゲット・デコーダと、それによるATSの利用との詳細については後述する。
図5の(d)は、一連のソースパケット502が連続的に記録されたBD−ROMディスク101のボリューム領域202B上のセクタ群の模式図である。図5の(d)を参照するに、一連のソースパケット502は32個ずつ、三つの連続するセクタ521、522、523に記録されている。これは、32個のソースパケットのデータ量192バイト×32=6144バイトが三つのセクタの合計サイズ2048バイト×3=6144バイトに等しいことに因る。このように、三つの連続するセクタ521、522、523に記録された32個のソースパケット502を「アラインド・ユニット(Aligned Unit)」520という。再生装置102はBD−ROMディスク101からソースパケット502をアラインド・ユニット520ごとに、すなわち32個ずつ読み出す。セクタ群521、522、523、…は先頭から順に32個ずつに分割され、それぞれが一つの誤り訂正符号(ECC)ブロック530を構成している。BD−ROMドライブ121はECCブロック530ごとに誤り訂正処理を行う。
≪PGストリームのデータ構造≫
図6は、PGストリーム600のデータ構造を示す模式図である。図6を参照するに、PGストリーム600は複数のデータ・エントリ#1、#2、…を含む。各データ・エントリはPGストリーム600の表示単位(ディスプレイ・セット)を表し、再生装置102に一枚のグラフィックス・プレーンを構成させるのに必要なデータから成る。ここで、「グラフィックス・プレーン」とは、2Dグラフィックス映像を表すグラフィックス・データから生成されるプレーン・データをいう。「プレーン・データ」とは、画素データの二次元配列であり、その配列のサイズは映像フレームの解像度に等しい。一組の画素データは色座標値とα値(不透明度)との組み合わせから成る。色座標値はRGB値又はYCrCb値で表される。グラフィックス・プレーンの種類には、PGプレーン、IGプレーン、イメージ・プレーン、及びオン・スクリーン・ディスプレイ(OSD)プレーンが含まれる。PGプレーンは、メインTS内のPGストリームから生成される。IGプレーンは、メインTS内のIGストリームから生成される。イメージ・プレーンは、BD−Jオブジェクトに従って生成される。OSDプレーンは、再生装置102のファームウェアに従って生成される。
図6を更に参照するに、各データ・エントリは複数の機能セグメントを含む。それらの機能セグメントは、先頭から順に、表示制御セグメント(Presentation Control Segment:PCS)、ウィンドウ定義セグメント(Window Define Segment:WDS)、パレット定義セグメント(PalletDefine Segment:PDS)、及びオブジェクト定義セグメント(Object DefineSegment:ODS)を含む。
WDSは、グラフィックス・プレーン内の矩形領域、すなわちウィンドウを規定する。具体的には、WDSは、ウィンドウID611、ウィンドウ位置612、及びウィンドウ・サイズ613を含む。ウィンドウID611はWDSの識別情報(ID)である。ウィンドウ位置612はグラフィックス・プレーン内でのウィンドウの位置、例えばウィンドウの左上角の座標を示す。ウィンドウ・サイズ613はウィンドウの高さと幅とを示す。
PDSは、所定種類のカラーIDと色座標値(例えば、輝度Y、赤色差Cr、青色差Cb、不透明度α)との間の対応関係を規定する。具体的には、PDSはパレットID621とカラー・ルックアップ・テーブル(CLUT)622とを含む。パレットID621はPDSのIDである。CLUT622は、グラフィックス・オブジェクトの描画に利用される色の一覧表である。CLUT622には256色が登録可能であり、0から255までのカラーIDが一つずつ、各色に割り当てられている。尚、カラーID=255は「無色透明」に一定に割り当てられている。
ODSは一般に複数で一つのグラフィックス・オブジェクトを表す。「グラフィックス・オブジェクト」とは、グラフィックス画像を画素コードとカラーIDとの間の対応関係で表現するデータである。グラフィックス・オブジェクトは、ランレングス符号化方式を用いて圧縮された後に分割され、各ODSに分配されている。各ODSは更にオブジェクトID、すなわちグラフィックス・オブジェクトのIDを含む。
PCSは、同じデータ・エントリに属するディスプレイ・セットの詳細を示し、特に、グラフィックス・オブジェクトを用いた画面構成を規定する。その画面構成の種類は、カット・イン/アウト(Cut−In/Out)、フェード・イン/アウト(Fade−In/Out)、色変化(Color Change)、スクロール(Scroll)、及びワイプ・イン/アウト(Wipe−In/Out)を含む。具体的には、PCSは、オブジェクト表示位置601、クロッピング情報602、参照ウィンドウID603、参照パレットID604、及び参照オブジェクトID605を含む。オブジェクト表示位置601は、グラフィックス・オブジェクトが表示されるべきグラフィックス・プレーン内の位置、例えばグラフィックス・オブジェクトが表示されるべき領域の左上角の座標を、WDSの規定するウィンドウ内の座標で表す。クロッピング情報602は、クロッピング処理によってグラフィックス・オブジェクトの中から切り出されるべき矩形状の部分の範囲を示す。その範囲は例えば、左上角の座標、高さ、及び幅で規定される。実際にはその部分を、オブジェクト表示位置601の示す位置に描画することができる。参照ウィンドウID603、参照パレットID604、及び参照オブジェクトID605はそれぞれ、グラフィックス・オブジェクトの描画処理において参照されるべきWDS、PDS、及びグラフィックス・オブジェクトのIDを示す。コンテンツ・プロバイダは、PCS内のそれらのパラメータを利用して、再生装置102に画面構成を指示する。それにより、例えば「ある字幕を徐々に消去しつつ、次の字幕を表示させる」という視覚効果を再生装置102に実現させることができる。
≪IGストリームのデータ構造≫
図4を更に参照するに、IGストリーム404は、対話構成セグメント(Interactive Composition Segment:ICS)、PDS、及びODSを含む。PDSとODSとは、PGストリーム403に含まれるものと同様な機能セグメントである。特に、ODSの含むグラフィックス・オブジェクトは、ボタン及びポップアップ・メニュー等、対話画面を構成するGUI用グラフィック部品を表す。ICSは、それらのグラフィックス・オブジェクトを用いた対話操作を規定する。具体的には、ICSは、ボタン及びポップアップ・メニュー等、ユーザ操作に応じて状態が変化するグラフィックス・オブジェクトのそれぞれについて取り得る状態、すなわち、ノーマル、セレクテッド、及びアクティブの各状態を規定する。ICSは更にボタン情報を含む。ボタン情報は、ユーザがボタン等に対して確定操作を行った際に再生装置の実行すべきコマンドを含む。
≪ビデオ・ストリームのデータ構造≫
図7は、ベースビュー・ビデオ・ストリーム701とライトビュー・ビデオ・ストリーム702とのピクチャを表示時間順に示す模式図である。図7を参照するに、ベースビュー・ビデオ・ストリーム701はピクチャ710、711、712、…、719(以下、ベースビュー・ピクチャという。)を含み、ライトビュー・ビデオ・ストリーム702はピクチャ720、721、722、…、729(以下、ライトビュー・ピクチャという。)を含む。各ピクチャ710−719、720−729は1フレーム又は1フィールドを表し、MPEG−2又はMPEG−4 AVC等の動画圧縮符号化方式によって圧縮されている。
上記の符号化方式による各ピクチャの圧縮には、そのピクチャの空間方向及び時間方向での冗長性が利用される。ここで、空間方向での冗長性のみを利用するピクチャの符号化を「ピクチャ内符号化」という。一方、時間方向での冗長性、すなわち、表示順序の連続する複数のピクチャ間でのデータの類似性を利用するピクチャの符号化を「ピクチャ間予測符号化」という。ピクチャ間予測符号化では、まず符号化対象のピクチャに対して、表示時間が前又は後である別のピクチャが参照ピクチャとして設定される。次に、符号化対象のピクチャとその参照ピクチャとの間で動きベクトルが検出され、それを利用して動き補償が行われる。更に、動き補償後のピクチャと符号化対象のピクチャとの間の差分値が求められ、その差分値から空間方向での冗長性が除去される。こうして、各ピクチャのデータ量が圧縮される。
図7を参照するに、ベースビュー・ピクチャ710−719は一般に複数のGOP731、732に分割されている。「GOP」は、I(Intra)ピクチャを先頭とする複数枚の連続するピクチャの列をいう。「Iピクチャ」は、ピクチャ内符号化によって圧縮されたピクチャをいう。GOPは一般に、Iピクチャの他に、P(Predictive)ピクチャとB(Bidirectionally Predivtive)ピクチャとを含む。「Pピクチャ」は、ピクチャ間予測符号化によって圧縮されたピクチャであって、表示時間がそれよりも前であるIピクチャ又は別のPピクチャが一枚、参照ピクチャとして利用されたものをいう。「Bピクチャ」は、ピクチャ間予測符号化によって圧縮されたピクチャであって、表示時間がそれよりも前又は後であるIピクチャ又はPピクチャが二枚、参照ピクチャとして利用されたものをいう。Bピクチャのうち、他のピクチャに対するピクチャ間予測符号化で参照ピクチャとして利用されるものを特に「Br(reference B)ピクチャ」という。
図7に示されている例では、各GOP731、732内のベースビュー・ピクチャが以下の順で圧縮される。第1GOP731では、まず先頭のベースビュー・ピクチャがI0ピクチャ710に圧縮される。ここで、下付の数字は、各ピクチャに表示時間順に割り振られた通し番号を示す。次に、4番目のベースビュー・ピクチャがI0ピクチャ710を参照ピクチャとしてP3ピクチャ713に圧縮される。ここで、図7に示されている各矢印は、先端のピクチャが後端のピクチャに対する参照ピクチャであることを示す。続いて、2、3番目のベースビュー・ピクチャがI0ピクチャ710とP3ピクチャ713とを参照ピクチャとして、それぞれ、Br1ピクチャ711、Br2ピクチャ712に圧縮される。更に7番目のベースビュー・ピクチャがP3ピクチャ713を参照ピクチャとしてP6ピクチャ716に圧縮される。続いて、4、5番目のベースビュー・ピクチャがP3ピクチャ713とP6ピクチャ716とを参照ピクチャとして、それぞれ、Br4ピクチャ714、Br5ピクチャ715に圧縮される。同様に、第2GOP732では、まず先頭のベースビュー・ピクチャがI7ピクチャ717に圧縮される。次に3番目のベースビュー・ピクチャがI7ピクチャ717を参照ピクチャとしてP9ピクチャ719に圧縮される。続いて、2番目のベースビュー・ピクチャがI7ピクチャ717とP9ピクチャ719とを参照ピクチャとしてBr8ピクチャ718に圧縮される。
ベースビュー・ビデオ・ストリーム701では各GOP731、732がその先頭にIピクチャを必ず含むので、ベースビュー・ピクチャはGOPごとに復号可能である。例えば第1GOP731では、まずI0ピクチャ710が単独で復号される。次に、復号後のI0ピクチャ710を利用してP3ピクチャ713が復号される。続いて、復号後のI0ピクチャ710とP3ピクチャ713とを利用してBr1ピクチャ711とBr2ピクチャ712とが復号される。後続のピクチャ群714、715、…も同様に復号される。こうして、ベースビュー・ビデオ・ストリーム701は単独で復号可能であり、更にGOP単位でのランダム・アクセスが可能である。
図7を更に参照するに、ライトビュー・ピクチャ720−729はピクチャ間予測符号化で圧縮されている。しかし、その符号化方法はベースビュー・ピクチャ710−719の符号化方法とは異なり、映像の時間方向での冗長性に加え、左右の映像間の冗長性をも利用する。具体的には、各ライトビュー・ピクチャ720−729の参照ピクチャが、図7に矢印で示されているように、ライトビュー・ビデオ・ストリーム702からだけでなく、ベースビュー・ビデオ・ストリーム701からも選択される。特に各ライトビュー・ピクチャ720−729と、その参照ピクチャとして選択されたベースビュー・ピクチャとは表示時刻が実質的に等しい。それらのピクチャは3D映像の同じシーンのライトビューとレフトビューとの対、すなわち視差映像を表す。このように、ライトビュー・ピクチャ720−729はベースビュー・ピクチャ710−719と一対一に対応する。特にそれらのピクチャ間ではGOP構造が共通である。
図7に示されている例では、まず第1GOP731内の先頭のライトビュー・ピクチャがベースビュー・ビデオ・ストリーム701内のI0ピクチャ710を参照ピクチャとしてP0ピクチャ720に圧縮される。それらのピクチャ710、720は3D映像の先頭フレームのレフトビューとライトビューとを表す。次に、4番目のライトビュー・ピクチャがP0ピクチャ720とベースビュー・ビデオ・ストリーム701内のP3ピクチャ713とを参照ピクチャとしてP3ピクチャ723に圧縮される。続いて、2番目のライトビュー・ピクチャがP0ピクチャ720とP3ピクチャ723とに加えて、ベースビュー・ビデオ・ストリーム701内のBr1ピクチャ711を参照ピクチャとしてB1ピクチャ721に圧縮される。同様に、3番目のライトビュー・ピクチャがP0ピクチャ720とP3ピクチャ730とに加えて、ベースビュー・ビデオ・ストリーム701内のBr2ピクチャ712を参照ピクチャとしてB2ピクチャ722に圧縮される。以降のライトビュー・ピクチャ724−729についても同様に、そのライトビュー・ピクチャと表示時刻が実質的に等しいベースビュー・ピクチャが参照ピクチャとして利用される。
上記のような左右の映像間の相関関係を利用した動画圧縮符号化方式としては、MVC(MultiviewVideo Coding)と呼ばれるMPEG−4 AVC/H.264の修正規格が知られている。MVCは、ISO/IEC MPEGとITU−T VCEGとの共同プロジェクトであるJVT(Joint Video Team)によって2008年7月に策定されたものであり、複数の視点から見える映像をまとめて符号化するための規格である。MVCでは映像間予測符号化に、映像の時間方向での類似性だけでなく、視点の異なる映像間の類似性も利用される。その予測符号化では、各視点から見た映像を個別に圧縮する予測符号化よりも映像の圧縮率が高い。
上記のとおり、各ライトビュー・ピクチャ720−729の圧縮にはベースビュー・ピクチャが参照ピクチャとして利用される。従って、ベースビュー・ビデオ・ストリーム701とは異なり、ライトビュー・ビデオ・ストリーム702を単独で復号することはできない。しかし、視差映像間の差異は一般にわずかであり、すなわちレフトビューとライトビューとの間の相関は高い。従って、ライトビュー・ピクチャは一般にベースビュー・ピクチャよりも圧縮率が著しく高く、すなわちデータ量が著しく小さい。
図7には示されていないが、デプスマップ・ストリームは複数のデプスマップを含む。それらのデプスマップはベースビュー・ピクチャと一対一に対応し、各ベースビュー・ピクチャの示す1フレーム又は1フィールドの2D映像に対するデプスマップを表す。各デプスマップは、ベースビュー・ピクチャと同様、MPEG−2又はMPEG−4 AVC等の動画圧縮符号化方式によって圧縮されている。特にその符号化方式ではピクチャ間予測符号化が利用される。すなわち、各デプスマップが他のデプスマップを参照ピクチャとして利用して圧縮される。デプスマップ・ストリームは、ベースビュー・ビデオ・ストリームと同様にGOP単位に分割され、各GOPがその先頭にIピクチャを必ず含む。従って、デプスマップはGOPごとに単独で復号可能である。しかし、デプスマップ自体は2D映像の各部の奥行きを画素別に表す情報でしかないので、デプスマップ・ストリームを単独で映像の再生に利用することはできない。デプスマップ・ストリームの圧縮に利用される符号化方式は、ライトビュー・ビデオ・ストリームの圧縮に利用される符号化方式と等しい。例えば、ライトビュー・ビデオ・ストリームがMVCのフォーマットで符号化されているとき、デプスマップ・ストリームもMVCのフォーマットで符号化されている。その場合、再生装置102は3D映像の再生時、符号化方式を一定に維持したまま、L/Rモードとデプス・モードとの切り換えをスムーズに実現できる。
図8は、ビデオ・ストリーム800のデータ構造の詳細を示す模式図である。このデータ構造は、ベースビュー・ビデオ・ストリームとディペンデントビュー・ビデオ・ストリームとで実質的に共通である。図8を参照するに、ビデオ・ストリーム800は一般に複数のビデオ・シーケンス#1、#2、…から構成されている。「ビデオ・シーケンス」は、一つのGOP810を構成するピクチャ群811、812、813、814、…に個別にヘッダ等の付加情報を組み合わせたものである。この付加情報と各ピクチャとの組み合わせを「ビデオ・アクセスユニット(VAU)」という。すなわち、各GOP810、820ではピクチャごとに一つのVAU#1、#2、…が構成されている。各ピクチャはVAU単位でビデオ・ストリーム800から読み出し可能である。
図8は更に、ベースビュー・ビデオ・ストリーム内で各ビデオ・シーケンスの先端に位置するVAU#1831の構造を示す。VAU#1831は、アクセスユニット(AU)識別コード831A、シーケンス・ヘッダ831B、ピクチャ・ヘッダ831C、補足データ831D、及び圧縮ピクチャ・データ831Eを含む。2番目以降のVAU#2は、シーケンス・ヘッダ831Bを含まない点を除き、VAU#1831と同じ構造である。AU識別コード831Aは、VAU#1831の先端を示す所定の符号である。シーケンス・ヘッダ831BはGOPヘッダともいい、VAU#1831を含むビデオ・シーケンス#1の識別番号を含む。シーケンス・ヘッダ831Bは更にGOP810の全体で共通する情報、例えば、解像度、フレームレート、アスペクト比、及びビットレートを含む。ピクチャ・ヘッダ831Cは、固有の識別番号、ビデオ・シーケンス#1の識別番号、及びピクチャの復号に必要な情報、例えば符号化方式の種類を示す。補足データ831Dは、ピクチャの復号以外に関する付加的な情報、例えば、クローズド・キャプションを示す文字情報、GOP構造に関する情報、及びタイムコード情報を含む。補足データ831Dは特に復号スイッチ情報を含む(詳細は《補足》参照)。圧縮ピクチャ・データ831Eはベースビュー・ピクチャを含む。VAU#1831はその他に、必要に応じて、パディング・データ831F、シーケンス終端コード831G、及びストリーム終端コード831Hのいずれか又は全てを含んでもよい。パディング・データ831Fはダミーデータである。そのサイズを圧縮ピクチャ・データ831Eのサイズに合わせて調節することにより、VAU#1831のビットレートを所定値に維持することができる。シーケンス終端コード831Gは、VAU#1831がビデオ・シーケンス#1の終端に位置することを示す。ストリーム終端コード831Hはベースビュー・ビデオ・ストリーム800の終端を示す。
図8はまた、ディペンデントビュー・ビデオ・ストリーム内で各ビデオ・シーケンスの先端に位置するVAU#1832の構造も示す。VAU#1832は、サブシーケンス・ヘッダ832B、ピクチャ・ヘッダ832C、補足データ832D、及び圧縮ピクチャ・データ832Eを含む。2番目以降のVAU#2は、サブシーケンス・ヘッダ832Bを含まない点を除き、VAU#1832と同じ構造である。サブシーケンス・ヘッダ832Bは、VAU#1832を含むビデオ・シーケンス#1の識別番号を含む。サブシーケンス・ヘッダ832Bは更に、GOP810の全体で共通する情報、例えば、解像度、フレームレート、アスペクト比、及びビットレートを含む。特にそれらの値は、ベースビュー・ビデオ・ストリームの対応するGOPに対して設定された値、すなわちVAU#1831のシーケンス・ヘッダ831Bの示す値に等しい。ピクチャ・ヘッダ832Cは、固有の識別番号、ビデオ・シーケンス#1の識別番号、及びピクチャの復号に必要な情報、例えば符号化方式の種類を示す。補足データ832Dはオフセット・メタデータのみを含む(詳細は後述する)。ここで、補足データの種類には、オフセット・メタデータを含むもの832Dの他にも、ピクチャの復号以外に関する付加的な情報、例えば、クローズド・キャプションを示す文字情報、GOP構造に関する情報、タイムコード情報、及び復号スイッチ情報を含むものがある。従って、VAU#1832は、補足データ832Dに加えて、他の補足データを一つ以上含んでいてもよい。圧縮ピクチャ・データ832Eはディペンデントビュー・ピクチャを含む。VAU#1832はその他に、必要に応じて、パディング・データ832F、シーケンス終端コード832G、及びストリーム終端コード832Hのいずれか又は全てを含んでもよい。パディング・データ832Fはダミーデータである。そのサイズを圧縮ピクチャ・データ832Eのサイズに合わせて調節することにより、VAU#1832のビットレートを所定値に維持することができる。シーケンス終端コード832Gは、VAU#1832がビデオ・シーケンス#1の終端に位置することを示す。ストリーム終端コード832Hはディペンデントビュー・ビデオ・ストリーム800の終端を示す。
VAUの各部の具体的な内容はビデオ・ストリーム800の符号化方式ごとに異なる。例えば、その符号化方式がMPEG−4 AVCであるとき、図8に示されているVAUの各部は一つのNAL(Network Abstraction Layer)ユニットから構成される。具体的には、AU識別コード831A、シーケンス・ヘッダ831B、ピクチャ・ヘッダ831C、補足データ831D、圧縮ピクチャ・データ831E、パディング・データ831F、シーケンス終端コード831G、及びストリーム終端コード831Hはそれぞれ、AUデリミタ(Access Unit Delimiter)、SPS(シーケンス・パラメータ・セット)、PPS(ピクチャ・パラメータ・セット)、SEI(Supplemental Enhancement Information)、ビュー・コンポーネント、フィラー・データ(Filler Data)、エンド・オブ・シーケンス(End of Sequence)、及びエンド・オブ・ストリーム(End of Stream)に相当する。特にVAU#1832では、オフセット・メタデータを含む補足データ832Dは一つのNALユニットで構成され、そのNALユニットはオフセット・メタデータ以外のデータを含まない。
図9は、PESパケット列902へのビデオ・ストリーム901の格納方法の詳細を示す模式図である。この格納方法は、ベースビュー・ビデオ・ストリームとディペンデントビュー・ビデオ・ストリームとで共通である。図9を参照するに、実際のビデオ・ストリーム901ではピクチャが、表示時間順ではなく符号化順に多重化されている。例えばベースビュー・ビデオ・ストリームのVAUには、図9に示されているように、先頭から順に、I0ピクチャ910、P3ピクチャ911、B1ピクチャ912、B2ピクチャ913、…が格納されている。ここで、下付の数字は、各ピクチャに表示時間順に割り振られた通し番号を示す。P3ピクチャ911の符号化にはI0ピクチャ910が参照ピクチャとして利用され、B1ピクチャ912とB2ピクチャ913との各符号化にはI0ピクチャ910とP3ピクチャ911とが参照ピクチャとして利用される。それらのVAUが一つずつ、異なるPESパケット920、921、922、923、…に格納される。各PESパケット920、…はPESペイロード920PとPESヘッダ920Hとを含む。VAUはPESペイロード920Pに格納される。一方、PESヘッダ920Hは、同じPESパケット920のPESペイロード920Pに格納されたピクチャの表示時刻、すなわちPTS(PresentationTime−Stamp)、及び、そのピクチャの復号時刻、すなわちDTS(Decoding Time−Stamp)を含む。
図9に示されているビデオ・ストリーム901と同様、図3、4に示されている他のエレメンタリ・ストリームも一連のPESパケットの各PESペイロードに格納される。更に各PESパケットのPESヘッダは、そのPESパケットのPESペイロードに格納されたデータのPTSを含む。
図10は、ベースビュー・ビデオ・ストリーム1001とディペンデントビュー・ビデオ・ストリーム1002との各ピクチャに割り当てられたPTSとDTSとの間の関係を示す模式図である。図10を参照するに、両ビデオ・ストリーム1001、1002の間では、3D映像の同じフレーム又はフィールドを表す一対のピクチャに対して、同じPTS及び同じDTSが割り当てられている。例えば3D映像の先頭のフレーム又はフィールドは、ベースビュー・ビデオ・ストリーム1001のI1ピクチャ1011とディペンデントビュー・ビデオ・ストリーム1002のP1ピクチャ1021との組み合わせから再現される。従って、それらのピクチャの対1011、1021ではPTSが等しく、かつDTSが等しい。ここで、下付の数字は、各ピクチャにDTSの順に割り振られた通し番号を示す。また、ディペンデントビュー・ビデオ・ストリーム1002がデプスマップ・ストリームであるとき、P1ピクチャ1021は、I1ピクチャ1011に対するデプスマップを表すIピクチャに置き換えられる。同様に、各ビデオ・ストリーム1001、1002の2番目のピクチャ、すなわち、P2ピクチャ1012、1022の対ではPTSが等しく、かつDTSが等しい。各ビデオ・ストリーム1001、1002の3番目のピクチャ、すなわちBr3ピクチャ1013とB3ピクチャ1023との対ではPTSとDTSとがいずれも共通である。Br4ピクチャ1014とB4ピクチャ1024との対でも同様である。
ベースビュー・ビデオ・ストリーム1001とディペンデントビュー・ビデオ・ストリーム1002との間で、PTSが等しく、かつDTSが等しいピクチャを含むVAUの対を「3D・VAU」という。図10に示されているPTSとDTSとの割り当てにより、3D再生モードの再生装置102内のデコーダにベースビュー・ビデオ・ストリーム1001とディペンデントビュー・ビデオ・ストリーム1002とを3D・VAU単位でパラレルに処理させることが容易にできる。それにより、3D映像の同じフレーム又はフィールドを表す一対のピクチャが、デコーダによって確実にパラレルに処理される。更に、各GOPの先頭の3D・VAUではシーケンス・ヘッダが、同じ解像度、同じフレームレート、及び同じアスペクト比を含む。特にそのフレームレートは、2D再生モードにおいてベースビュー・ビデオ・ストリーム1001が単独で復号されるときの値に等しい。
≪オフセット・メタデータ≫
図11は、ディペンデントビュー・ビデオ・ストリーム1100の含むオフセット・メタデータ1110のデータ構造を示す模式図である。図11を参照するに、オフセット・メタデータ1110は、各ビデオ・シーケンス(すなわち、各GOP)の先端に位置するVAU#1内の補足データ1101に格納されている。図11を参照するに、オフセット・メタデータ1110は、PTS1111、オフセット・シーケンスID1112、及びオフセット・シーケンス1113を含む。PTS1111は、VAU#1内の圧縮ピクチャ・データの表すフレーム、すなわち、各GOPの最初のフレームのPTSに等しい。
オフセット・シーケンスID1112は、オフセット・シーケンス1113に順番に割り振られた通し番号0、1、2、…、Mである。文字Mは1以上の整数を表し、その整数はオフセット・シーケンス1113の総数に等しい。ビデオ・プレーンに合成されるべきグラフィックス・プレーン及び副映像プレーンには、オフセット・シーケンスID1112が割り当てられる。それにより、各プレーン・データにオフセット・シーケンス1113が対応付けられている。ここで、「ビデオ・プレーン」とは、ビデオ・シーケンスの含むピクチャから生成されるプレーン・データ、すなわち画素データの二次元配列をいう。その配列のサイズは映像フレームの解像度に等しい。一組の画素データは、色座標値(RGB値又はYCrCb値)とα値との組み合わせから成る。
各オフセット・シーケンス1113は、フレーム番号1121とオフセット情報1122、1123との対応表である。フレーム番号1121は、一つのビデオ・シーケンス(例えば、ビデオ・シーケンス#1)の表すフレーム#1、#2、…、#Nに表示順に割り振られた通し番号1、2、…、Nである。整数Nは1以上であり、そのビデオ・シーケンスの含むフレームの総数を表す。各オフセット情報1122、1123は、一つのプレーン・データに対するオフセット制御を規定する制御情報である。
「オフセット制御」とは、グラフィックス・プレーン(又は副映像プレーン)に水平座標の左方向と右方向との各オフセットを与えて、ベースビュー・ビデオ・プレーンとディペンデントビュー・ビデオ・プレーンとのそれぞれに合成する処理をいう。「グラフィックス・プレーンに水平方向のオフセットを与える」とは、そのグラフィックス・プレーン内で各画素データを水平方向に変位させることをいう。それにより、一つのグラフィックス・プレーンから、レフトビューとライトビューとを表すグラフィックス・プレーンの対が生成される。その対から再生される2Dグラフィックス映像の各部の表示位置は、元の表示位置から左右にずれている。それらの変位が視聴者に両眼視差として錯覚されることにより、レフトビューとライトビューとの対がその視聴者には一つの3Dグラフィックス映像として見える。副映像プレーンの表す映像についても同様である。
オフセットは方向と大きさとで決まる。従って、図11に示されているとおり、各オフセット情報はオフセット方向1122とオフセット値1123とを含む。オフセット方向1122は、3Dグラフィックス映像の奥行きが画面よりも手前か奥かを示す。オフセット方向1122の値に依り、元の2Dグラフィックス映像の表示位置に対するレフトビューとライトビューとの各表示位置の方向が左又は右に決まる。オフセット値1123は、元の2Dグラフィックス映像の表示位置とレフトビューとライトビューとの各表示位置との間の距離を水平方向の画素数で表す。
図12の(a)、(b)は、PGプレーン1210とIGプレーン1220とに対するオフセット制御を示す模式図である。それらのオフセット制御では、レフトビュー・ビデオ・プレーン1201とライトビュー・ビデオ・プレーン1202とのそれぞれへ二種類のグラフィックス・プレーン1210、1220が合成される。ここで、「レフトビュー/ライトビュー・ビデオ・プレーン」とは、ベースビュー・ビデオ・ストリームとディペンデントビュー・ビデオ・ストリームとの組み合わせから生成される、レフトビュー/ライトビューを表すビデオ・プレーンをいう。以下の説明では、PGプレーン1210の表す字幕1211を画面よりも手前に表示し、IGプレーン1220の表すボタン1221を画面よりも奥に表示する場合を想定する。
図12の(a)を参照するに、PGプレーン1210には、右方向のオフセットが与えられる。具体的には、まず、PGプレーン1210内の各画素データの位置が、レフトビュー・ビデオ・プレーン1201内の対応する画素データの位置から、オフセット値に等しい画素数SFPだけ右に(仮想的に)移動する。次に、レフトビュー・ビデオ・プレーン1201の範囲よりも右側に(仮想的に)はみ出ているPGプレーン1210の右端の帯状領域1212を「切り取る」。すなわち、その領域1212の画素データ群を破棄する。一方、PGプレーン1210の左端に透明な帯状領域1213を追加する。その帯状領域1213の幅は右端の帯状領域1212の幅、すなわちオフセット値SFPに等しい。こうして、PGプレーン1210から、レフトビューを表すPGプレーンが生成され、レフトビュー・ビデオ・プレーン1201に合成される。特に、そのレフトビューPGプレーンでは、字幕1211の表示位置が元の表示位置よりも右に、オフセット値SFPだけずれている。
一方、IGプレーン1220には、左方向のオフセットが与えられる。具体的には、まず、IGプレーン1220内の各画素データの位置が、レフトビュー・ビデオ・プレーン1201内の対応する画素データの位置から、オフセット値に等しい画素数SFIだけ左に(仮想的に)移動する。次に、レフトビュー・ビデオ・プレーン1210の範囲よりも左側に(仮想的に)はみ出ているIGプレーン1220の左端の帯状領域1222を切り取る。一方、IGプレーン1220の右端に透明な帯状領域1223を追加する。その帯状領域1223の幅は左端の帯状領域1222の幅、すなわちオフセット値SFIに等しい。こうして、IGプレーン1220から、レフトビューを表すIGプレーンが生成され、レフトビュー・ビデオ・プレーン1201に合成される。特に、そのレフトビューIGプレーンでは、ボタン1221の表示位置が元の表示位置よりも左に、オフセット値SFIだけずれている。
図12の(b)を参照するに、PGプレーン1210には左方向のオフセットが与えられ、IGプレーン1220には右方向のオフセットが与えられる。すなわち、上記の操作をPGプレーン1210とIGプレーン1220とで反対にすればよい。その結果、各プレーン・データ1210、1220から、ライトビューを表すプレーン・データが生成され、ライトビュー・ビデオ・プレーン1220に合成される。特にライトビューPGプレーンでは、字幕1211の表示位置が元の表示位置よりも左に、オフセット値SFPだけずれている。一方、ライトビューIGプレーンでは、ボタン1221の表示位置が元の表示位置よりも右に、オフセット値SFIだけずれている。
図12の(c)は、(a)、(b)に示されているグラフィックス・プレーンの表す2Dグラフィックス映像から視聴者1230に知覚される3Dグラフィックス映像を示す模式図である。それらのグラフィックス・プレーンの表す2Dグラフィックス映像が画面1240に交互に表示されるとき、視聴者1230には、図12の(c)に示されているように、字幕1231は画面1240よりも手前に見え、ボタン1232は画面1240よりも奥に見える。各3Dグラフィックス映像1231、1232と画面1240との間の距離はオフセット値SFP、SFIによって調節可能である。
図13の(a)、(b)は、オフセット・シーケンスの具体例を示すグラフである。各グラフでは、オフセット方向が画面よりも手前を示すときにオフセット値が正である。図13の(a)は、図13の(b)のうち、最初のGOP、GOP1、の表示期間でのグラフを拡大したものである。図13の(a)を参照するに、階段状のグラフ1301は、オフセット・シーケンスID=0のオフセット・シーケンス、すなわちオフセット・シーケンス[0]のオフセット値を示す。一方、水平なグラフ1302は、オフセット・シーケンスID=1のオフセット・シーケンス、すなわちオフセット・シーケンス[1]のオフセット値を示す。オフセット・シーケンス[0]のオフセット値1301は、最初のGOPの表示期間GOP1ではフレームFR1、FR2、FR3、…、FR15、…の順に階段状に増加している。図13の(b)を参照するに、そのオフセット値1301の階段状の増加は、2番目以降の各GOPの表示期間GOP2、GOP3、…、GOP40、…でも同様に継続される。1フレーム当たりの増加量が十分に細かいので、図13の(b)ではオフセット値1301が線形に連続的に増加しているように見える。一方、オフセット・シーケンス[1]のオフセット値1302は、最初のGOPの表示期間GOP1では負の一定値に維持されている。図13の(b)を参照するに、そのオフセット値1302は、40番目のGOPの表示期間GOP40の終了時、正の値に急増する。このようにオフセット値は不連続に変化してもよい。
図13の(c)は、図13の(a)、(b)に示されているオフセット・シーケンスに従って再現される3Dグラフィックス映像を示す模式図である。字幕の3D映像1303がオフセット・シーケンス[0]に従って表示されるとき、その3D映像1303は、画面1304の直ぐ手前から徐々に飛び出てくるように見える。一方、ボタンの3D映像1305がオフセット・シーケンス[1]に従って表示されるとき、その3D映像1305は、画面1304よりも奥に固定されている状態から突然、画面1304よりも手前に飛び出てくるように見える。このように、フレーム単位でのオフセット値の増減のパターンをオフセット・シーケンスごとに様々に変化させる。それにより、複数の3Dグラフィックス映像について、個々の奥行きの変化を多様に表現することができる。
≪AVストリーム・ファイルに含まれるその他のTSパケット≫
AVストリーム・ファイルに含まれるTSパケットの種類には、図3に示されているエレメンタリ・ストリームから変換されたもの以外にも、PAT(Program Association Table)、PMT(Program MapTable)、及び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」は、再生装置102内のデコーダによって、PTS及びDTSの基準として利用されるクロックである。そのデコーダはPCRを利用して、ATCにSTCを同期させる。
図14は、PMT1410のデータ構造を示す模式図である。PMT1410は、PMTヘッダ1401、ディスクリプタ1402、及びストリーム情報1403を含む。PMTヘッダ1401は、PMT1410に含まれるデータの長さ等を示す。各ディスクリプタ1402は、PMT1410を含むAVストリーム・ファイルの全体に関するディスクリプタである。前述のコピー・コントロール情報はディスクリプタ1402の一つに含まれる。ストリーム情報1403は、AVストリーム・ファイルに含まれる各エレメンタリ・ストリームに関する情報であり、一つずつ異なるエレメンタリ・ストリームに割り当てられている。各ストリーム情報1403は、ストリーム・タイプ1431、PID1432、及びストリーム・ディスクリプタ1433を含む。ストリーム・タイプ1431は、そのエレメンタリ・ストリームの圧縮に利用されたコーデックの識別情報等を含む。PID1432は、そのエレメンタリ・ストリームのPIDを示す。ストリーム・ディスクリプタ1433は、そのエレメンタリ・ストリームの属性情報、例えばフレームレート及びアスペクト比を含む。
PCR、PMT、及びPATを利用することで、再生装置102内のデコーダにAVストリーム・ファイルを、欧州デジタル放送規格に準拠のパーシャル・トランスポート・ストリームと同様に処理させることができる。それにより、BD−ROMディスク101用の再生装置と欧州デジタル放送規格に準拠の端末装置との間の互換性を確保することができる。
≪多重化ストリーム・データのインターリーブ配置≫
3D映像のシームレス再生には、ベースビュー・ビデオ・ストリームとディペンデントビュー・ビデオ・ストリームとのBD−ROMディスク101上での物理的な配置が重要である。ここで、「シームレス再生」とは、多重化ストリーム・データから映像と音声とを途切れさせることなく滑らかに再生することをいう。
図15は、図3に示されているメインTSと、第1サブTS又は第2サブTSのいずれかとのBD−ROMディスク101上での物理的な配置を示す模式図である。図15を参照するに、各TSは複数のデータ・ブロックD[n]、B[n](n=0、1、2、3、…)に分割されて、BD−ROMディスク101上に配置されている。ここで、「データ・ブロック」とは、BD−ROMディスク101上の連続領域、すなわち物理的に連続する複数のセクタに記録された一連のデータをいう。BD−ROMディスク101では物理アドレスが論理アドレスと実質的に等しいので、各データ・ブロック内ではLBNも連続している。従って、BD−ROMドライブ121は一つのデータ・ブロックを、光ピックアップにシークを行わせることなく連続して読み出すことができる。以下、メインTSに属するデータ・ブロックB[n]を「ベースビュー・データ・ブロック」といい、サブTSに属するデータ・ブロックD[n]を「ディペンデントビュー・データ・ブロック」という。特に、第1サブTSに属するデータ・ブロックを「ライトビュー・データ・ブロック」といい、第2サブTSに属するデータ・ブロックを「デプスマップ・データ・ブロック」という。
各データ・ブロックB[n]、D[n]は、BD−ROMディスク101のファイルシステムでは、ファイル2D又はファイルDEP内の一つのエクステントとしてアクセス可能である。すなわち、各データ・ブロックの論理アドレスは、ファイル2D又はファイルDEPのファイル・エントリから知ることができる(詳細は《補足》参照)。
図15に示されている例では、ファイル2D(01000.m2ts)241のファイル・エントリ1510がベースビュー・データ・ブロックB[n]の各サイズとその先端のLBNとを示す。従って、各ベースビュー・データ・ブロックB[n]はファイル2D241のエクステントEXT2D[n]としてアクセス可能である。以下、ファイル2D241に属するエクステントEXT2D[n]を「2Dエクステント」という。一方、第1ファイルDEP(02000.m2ts)242のファイル・エントリ1520がディペンデントビュー・データ・ブロックD[n]の各サイズとその先端のLBNとを示す。従って、各ディペンデントビュー・データ・ブロックD[n]はライトビュー・データ・ブロックであり、第1ファイルDEP242のエクステントEXT2[n]としてアクセス可能である。以下、第1ファイルDEP242に属するエクステントEXT2[n]を「ライトビュー・エクステント」という。ディペンデントビュー・データ・ブロックD[n]がデプスマップ・データ・ブロックである場合も同様に、各デプスマップ・データ・ブロックは第2ファイルDEP(03000.m2ts)243のエクステントとしてアクセス可能である。以下、第2ファイルDEP243に属するエクステントを「デプスマップ・エクステント」という。更に、ライトビュー・エクステントとデプスマップ・エクステントとのように、いずれかのファイルDEPに属するエクステントを「ディペンデントビュー・エクステント」と総称する。
図15を参照するに、データ・ブロック群はBD−ROMディスク101上のトラックに沿って連続的に記録されている。更に、ベースビュー・データ・ブロックB[n]とディペンデントビュー・データ・ブロックD[n]とは一つずつ交互に配置されている。このようなデータ・ブロック群の配置を「インターリーブ配置」という。特に、インターリーブ配置で記録された一連のデータ・ブロック群を「エクステント・ブロック」という。図15には三つのエクステント・ブロック1501、1502、1503が示されている。第1エクステント・ブロック1501と第2エクステント・ブロック1502とのように、エクステント・ブロックの間は多重化ストリーム・データ以外のデータの記録領域NAVによって分離される。また、BD−ROMディスク101が多層ディスクである場合、すなわち記録層を複数含む場合、第2エクステント・ブロック1502と第3エクステント・ブロック1503とのように、エクステント・ブロックの間は記録層間の境界(以下、層境界という。)LBによっても分離される。こうして、一連の多重化ストリーム・データは、一般に複数のエクステント・ブロックに分割されて配置されている。その場合、再生装置102がその多重化ストリーム・データから映像をシームレスに再生するには、各エクステント・ブロックから再生される映像をシームレスに接続しなければならない。以下、そのために再生装置102が必要とする処理を「エクステント・ブロック間のシームレスな接続」という。
本発明の実施形態1によるエクステント・ブロック1501−1503ではそれぞれ、二種類のデータ・ブロックD[n]、B[n]の数が等しい。更に、(n+1)番目の隣接するデータ・ブロックの対D[n]、B[n]ではエクステントATC時間が等しい。以下、このようなデータ・ブロックの対を「エクステント・ペア」という。ここで、「ATC(Arrival Time Clock)」は、ATSの基準とされるべきクロックを意味する。「エクステントATC時間」は、一つのデータ・ブロック内のソースパケットに付与されたATSの範囲の大きさ、すなわち、そのデータ・ブロックの先頭のソースパケットと次のデータ・ブロックの先頭のソースパケットとの間でのATSの差を表す。その差は、再生装置102がそのデータ・ブロック内の全てのソースパケットをリード・バッファからシステム・ターゲット・デコーダへ転送するのに要する時間を、ATCの値で表したものに等しい。「リード・バッファ」は再生装置102内のバッファ・メモリであり、BD−ROMディスク101から読み出されたデータ・ブロックをシステム・ターゲット・デコーダへ送るまでの間、一時的に格納する。リード・バッファの詳細については後述する。図15に示されている例では、三つのエクステント・ブロック1501−1503が互いにシームレスに接続されるので、各エクステント・ペアD[n]、B[n](n=0、1、2、…)でエクステントATC時間が等しい。
各エクステント・ペアD[n]、B[n]では、先頭に位置するVAUは同じ3D・VAUに属し、特に、同じ3D映像を表すGOPの先頭のピクチャを含む。例えば図15では、各ライトビュー・データ・ブロックD[n]の先端はライトビュー・ビデオ・ストリームのPピクチャを含み、先頭のベースビュー・データ・ブロックB[n]の先端はベースビュー・ビデオ・ストリームのIピクチャを含む。そのライトビュー・ビデオ・ストリームのPピクチャは、そのベースビュー・ビデオ・ストリームのIピクチャの表す2D映像をレフトビューとするときのライトビューを表す。特にそのPピクチャは、図7に示されているように、そのIピクチャを参照ピクチャとして圧縮されている。従って、3D再生モードの再生装置102は、いずれのエクステント・ペアD[n]、B[n]からも3D映像の再生を開始できる。すなわち、飛び込み再生等、ビデオ・ストリームのランダムアクセスを要する処理が可能である。
本発明の実施形態1によるインターリーブ配置では更に、各エクステント・ペアD[n]、B[n]の中では、ディペンデントビュー・データ・ブロックD[n]がベースビュー・データ・ブロックB[n]よりも先に配置される。それは、ディペンデントビュー・データ・ブロックD[n]が一般に、ベースビュー・データ・ブロックB[n]よりもデータ量が小さい、すなわちビットレートが低いことに因る。例えば図15では、(n+1)番目のライトビュー・データ・ブロックD[n]に含まれるピクチャは、図7に示されているように、(n+1)番目のベースビュー・データ・ブロックB[n]に含まれるピクチャを参照ピクチャとして圧縮されている。従って、そのライトビュー・データ・ブロックD[n]のサイズSEXT2[n]は一般に、そのベースビュー・データ・ブロックB[n]のサイズSEXT1[n]以下である:SEXT2[n]≦SEXT1[n]。一方、デプスマップの画素当たりのデータ量、すなわち奥行き値のビット数は一般に、ベースビュー・ピクチャの画素当たりのデータ量、すなわち色座標値とα値(不透明度)とのビット数の和よりも小さい。更に図3の(a)、(c)に示されているように、メインTSは第2サブTSとは異なり、プライマリ・ビデオ・ストリームの他にもプライマリ・オーディオ・ストリーム等のエレメンタリ・ストリームを含む。従って、デプスマップ・データ・ブロックのサイズSEXT3[n]は一般に、ベースビュー・データ・ブロックB[n]のサイズSEXT1[n]以下である:SEXT3[n]≦SEXT1[n]。
[多重化ストリーム・データをデータ・ブロックに分割する意義]
再生装置102は、BD−ROMディスク101から3D映像をシームレスに再生するには、メインTSとサブTSとをパラレルに処理しなければならない。しかし、その処理に利用可能なリード・バッファの容量は一般に限られている。特に、BD−ROMディスク101からリード・バッファへ連続して読み込むことのできるデータ量には限界がある。従って、再生装置102はメインTSとサブTSとを、エクステントATC時間の等しい部分の対に分割して読み出さねばならない。
図16の(a)は、あるBD−ROMディスク上に個別に連続して記録されたメインTS1601とサブTS1602との配置を示す模式図である。再生装置102がそれらのメインTS1601とサブTS1602とをパラレルに処理するとき、図16の(a)に実線の矢印(1)−(4)で示されているように、BD−ROMドライブ121はメインTS1601とサブTS1602とを交互に、エクステントATC時間の等しい部分ずつ読み出す。そのとき、BD−ROMドライブ121は、図16の(a)に破線の矢印で示されているように、読み出し処理の途中でBD−ROMディスク上の読み出し対象領域を大きく変化させなければならない。例えば矢印(1)の示すメインTS1601の先端部分が読み出された時、BD−ROMドライブ121は光ピックアップによる読み出し動作を一旦停止し、BD−ROMディスクの回転速度を上げる。それにより、矢印(2)の示すサブTS1602の先端部分が記録されたBD−ROMディスク上のセクタを速やかに光ピックアップの位置まで移動させる。このように、光ピックアップに読み出し動作を一旦停止させて、その間に次の読み出し対象領域上へ光ピックアップを位置づけるための操作を「ジャンプ」という。図16の(a)に示されている破線の矢印は、読み出し処理の途中で必要な各ジャンプの範囲を示す。各ジャンプの期間中、光ピックアップによる読み出し処理は停止し、デコーダによる復号処理のみが進行する。図16の(a)に示されている例ではジャンプが過大であるので、読み出し処理を復号処理に間に合わせることが難しい。その結果、シームレス再生を確実に持続することが難しい。
図16の(b)は、本発明の実施形態1によるBD−ROMディスク101上に記録されたディペンデントビュー・データ・ブロックD[0]、D[1]、D[2]、…とベースビュー・データ・ブロックB[0]、B[1]、B[2]、…とのインターリーブ配置を示す模式図である。図16の(b)を参照するに、メインTSとサブTSとはそれぞれ、複数のデータ・ブロックに分割されて交互に配置されている。その場合、再生装置102は3D映像の再生時、図16の(b)に矢印(1)−(4)で示されているように、データ・ブロックD[0]、B[0]、D[1]、B[1]、…を先頭から順番に読み出す。それだけで、再生装置102はメインTSとサブTSとを交互に読み出すことをスムーズに実現できる。特にその読み出し処理ではジャンプが生じないので、3D映像のシームレス再生が確実に持続可能である。
[隣接するデータ・ブロック間でエクステントATC時間を揃える意義]
図16の(c)は、インターリーブ配置で記録されたディペンデントビュー・データ・ブロック群D[n]とベースビュー・データ・ブロック群B[n]との各エクステントATC時間の一例を示す模式図である(n=0、1、2)。図16の(c)を参照するに、各ディペンデントビュー・データ・ブロックD[n]とその直後のベースビュー・データ・ブロックB[n]との対ではエクステントATC時間が等しい。例えば先頭のデータ・ブロックの対D[0]、B[0]ではエクステントATC時間が共に1秒に等しい。従って、各データ・ブロックD[0]、B[0]が再生装置102内のリード・バッファに読み込まれたとき、その中の全てのTSパケットが、同じ1秒間でリード・バッファからシステム・ターゲット・デコーダへ送られる。同様に、2番目のデータ・ブロックの対D[1]、B[1]ではエクステントATC時間が共に0.7秒に等しいので、同じ0.7秒間で、各データ・ブロック内の全てのTSパケットがリード・バッファからシステム・ターゲット・デコーダへ送られる。
図16の(d)は、インターリーブ配置で記録されたディペンデントビュー・データ・ブロック群D[n]とベースビュー・データ・ブロック群B[n]との各エクステントATC時間の別例を示す模式図である。図16の(d)を参照するに、全てのデータ・ブロックD[n]、B[n]でエクステントATC時間が1秒に等しい。従って、各データ・ブロックD[n]、B[n]が再生装置102内のリード・バッファに読み込まれたとき、いずれのデータ・ブロックでも、同じ1秒間で全てのTSパケットがリード・バッファからシステム・ターゲット・デコーダへ送られる。
上記のとおり、ディペンデントビュー・データ・ブロックは一般に、ベースビュー・データ・ブロックよりもビデオ・ストリームの圧縮率が高い。従って、ディペンデントビュー・データ・ブロックの復号処理の速度は一般に、ベースビュー・データ・ブロックの復号処理の速度よりも低い。一方、エクステントATC時間が等しいとき、ディペンデントビュー・データ・ブロックは一般に、ベースビュー・データ・ブロックよりもデータ量が小さい。従って、図16の(c)、(d)のように、隣接するデータ・ブロック間でエクステントATC時間が等しいとき、復号対象のデータがシステム・ターゲット・デコーダに供給される速度は、そのデコーダの処理速度と均衡を保ちやすい。すなわち、システム・ターゲット・デコーダは、特に飛び込み再生においても、ベースビュー・データ・ブロックの復号処理とディペンデントビュー・データ・ブロックの復号処理とを容易に同期させることができる。
[エクステントATC時間を揃える方法]
図17は、隣接するデータ・ブロック間でエクステントATC時間を揃える方法を示す模式図である。まず、ベースビュー・データ・ブロックに格納されるソースパケット(以下、SP1と略す。)と、ディペンデントビュー・データ・ブロックに格納されるソースパケット(以下、SP2と略す。)とには、同じATC時間軸でATSが付与される。図17を参照するに、矩形1710、1720はそれぞれ、SP1#p(p=0、1、…、k、k+1、…、i、i+1)とSP2#q(q=0、1、…、m、m+1、…、j、j+1)とを表す。それらの矩形1710、1720はATCの時間軸方向で各ソースパケットのATSの順に並べられている。各矩形1710、1720の先頭の位置A1(p)、A2(q)はそのソースパケットのATSの値を表す。各矩形1710、1720の長さAT1、AT2は、3D再生装置が1個のソースパケットをリード・バッファからシステム・ターゲット・デコーダへ転送するのに要する時間を表す。
SP1#0のATSA1(0)からエクステントATC時間TEXT[n]が経過するまでの期間に、リード・バッファからシステム・ターゲット・デコーダへ転送されるSP1、すなわちSP1#0、1、…、kは、(n+1)番目のベースビュー・データ・ブロックEXT1[n]に格納される。同様に、SP1#(k+1)のATSA1(k+1)からエクステントATC時間TEXT[n+1]が経過するまでの期間に、リード・バッファからシステム・ターゲット・デコーダへ転送されるSP1、すなわちSP1#(k+1)、…、iは、(n+2)番目のベースビュー・データ・ブロックEXT1[n+1]に格納される。
一方、(n+1)番目のディペンデントビュー・データ・ブロックEXT2[n]に格納されるべきSP2は次のように選択される。まず、SP1#0のATSA1(0)とエクステントATC時間TEXT[n]との和、すなわち、SP1#(k+1)のATSA1(k+1)=A1(0)+TEXT[n]が求められる。次に、SP1#0のATSA1(0)からSP1#(k+1)のATSA1(k+1)までの期間に、リード・バッファからシステム・ターゲット・デコーダへの転送が開始されるSP2、すなわちSP2#0、1、…、mが選択される。従って、先頭のSP2、すなわちSP2#0のATSA2(0)は必ず、先頭のSP1、すなわちSP1#0のATSA1(0)以上である:A2(0)≧A1(0)。更に、最後のSP2、すなわちSP2#mのATSA2(m)は、SP1#(k+1)のATSA1(k+1)以下である:A2(m)≦A1(k+1)。ここで、SP2#mの転送完了はSP1#(k+1)のATSA1(k+1)以後であってもよい。
同様に、(n+2)番目のディペンデントビュー・データ・ブロックEXT2[n+1]に格納されるべきSP2は次のように選択される。まず、(n+3)番目のベースビュー・データ・ブロックEXT1[n+2]の先頭に位置するSP1#(i+1)のATSA1(i+1)=A1(k+1)+TEXTが求められる。次に、SP1#(k+1)のATSA1(k+1)からSP1#(i+1)のATSA1(i+1)までの期間に、リード・バッファからシステム・ターゲット・デコーダへの転送が開始されるSP2、すなわち、SP2#(m+1)−SP2#jが選択される。従って、先頭のSP2、すなわちSP2#(m+1)のATSA2(m+1)は、先頭のSP1、すなわちSP1#(k+1)のATSA1(k+1)以上である:A2(m+1)≧A1(k+1)。更に、最後のSP2#jのATSA2(j)は、次のベースビュー・データ・ブロックEXT1[n+2]の先頭に位置するSP1#(i+1)のATSA1(i+1)以下である:A2(j)≦A1(i+1)。
[データ量の小さいデータ・ブロックを先に置く意義]
3D再生モードの再生装置102は、各エクステント・ブロックの先頭に位置するデータ・ブロックを読み出すとき、又は再生開始位置のデータ・ブロックを読み出すとき、まず、そのデータ・ブロックを全てリード・バッファに読み込む。その間、そのデータ・ブロックはシステム・ターゲット・デコーダには渡されない。その読み込みが完了した後、再生装置102はそのデータ・ブロックを次のデータ・ブロックとパラレルにシステム・ターゲット・デコーダに渡す。この処理を「プリロード」という。
プリロードの技術的意義は次のとおりである。L/Rモードでは、ディペンデントビュー・データ・ブロックの復号にベースビュー・データ・ブロックが必要である。従って、復号後のデータを出力処理まで保持するためのバッファを必要最小限の容量に維持するには、それらのデータ・ブロックをシステム・ターゲット・デコーダに同時に供給して復号させることが好ましい。デプス・モードでは、復号後のベースビュー・ピクチャとデプスマップとの対から、視差画像を表すビデオ・プレーンの対を生成する処理が必要である。従って、復号後のデータをその処理まで保持するためのバッファを必要最小限の容量に維持するには、ベースビュー・データ・ブロックとデプスマップ・データ・ブロックとをシステム・ターゲット・デコーダに同時に供給して復号させることが好ましい。それ故、プリロードにより、エクステント・ブロックの先頭又は再生開始位置のデータ・ブロックの全体を予めリード・バッファに読み込んでおく。それにより、そのデータ・ブロックと後続のデータ・ブロックとをリード・バッファからシステム・ターゲット・デコーダへ同時に転送して復号させることができる。更に、以降のエクステント・ペアもシステム・ターゲット・デコーダに同時に復号させることができる。
プリロードでは、最初に読み出されるデータ・ブロックの全体がリード・バッファに蓄積される。従って、リード・バッファには少なくとも、そのデータ・ブロックのサイズに等しい容量が要求される。ここで、リード・バッファの容量を最小限に維持するには、プリロードの対象とされるデータ・ブロックのサイズを可能な限り縮小すべきである。一方、飛び込み再生等のランダムアクセスでは、いずれのエクステント・ペアも再生開始位置に選択され得る。それ故、いずれのエクステント・ペアでも、データ量の小さい方を先に置く。それにより、リード・バッファの容量を最小限に維持することができる。
≪データ・ブロックに対するAVストリーム・ファイルのクロスリンク≫
図15に示されているデータ・ブロック群に対して、AVストリーム・ファイルのクロスリンクは次のように実現される。第1ファイルSS(01000.ssif)244Aのファイル・エントリ1540は、各エクステント・ブロック1501−1503を一つのエクステントとみなして、各サイズとその先端のLBNとを示す。従って、各エクステント・ブロック1501−1503は第1ファイルSS244Aの一つのエクステントEXTSS[0]、EXTSS[1]、EXTSS[2]としてアクセス可能である。以下、第1ファイルSS244Aに属するエクステントEXTSS[0]、EXTSS[1]、EXTSS[2]を「エクステントSS」という。各エクステントSSEXTSS[0]、EXTSS[1]、EXTSS[2]は、ファイル2D241とはベースビュー・データ・ブロックB[n]を共有し、第1ファイルDEP242とはライトビュー・データ・ブロックD[n]を共有する。
≪エクステント・ブロック群に対する再生経路≫
図18は、エクステント・ブロック群1501−1503に対する2D再生モードでの再生経路1801を示す模式図である。2D再生モードの再生装置102はファイル2D241を再生する。従って、2D再生モードでの再生経路1801が示すとおり、各エクステント・ブロック1501−1503からベースビュー・データ・ブロックB[n](n=0、1、2、…)が順番に2DエクステントEXT2D[n]として読み出される。具体的には、まず先頭のエクステント・ブロック1501から先頭のベースビュー・データ・ブロックB[0]が読み出され、その直後のライトビュー・データ・ブロックD[0]の読み出しが最初のジャンプJ2D1によってスキップされる。次に2番目のベースビュー・データ・ブロックB[1]が読み出され、その直後のデータNAVとライトビュー・データ・ブロックD[1]との読み出しが二回目のジャンプJNAVによってスキップされる。続いて、2番目以降のエクステント・ブロック1502、1503内でも同様に、ベースビュー・データ・ブロックの読み出しとジャンプとが繰り返される。
2番目のエクステント・ブロック1502と3番目のエクステント・ブロック1503との間に生じるジャンプJLYは、層境界LBを越えるロング・ジャンプである。「ロング・ジャンプ」は、ジャンプの中でもシーク時間の長いものの総称であり、具体的には、(i)記録層の切り換えを伴うジャンプ、及び(ii)ジャンプ距離が所定の閾値を超えるジャンプをいう。「ジャンプ距離」とは、ジャンプ期間中に読み出し操作がスキップされるBD−ROMディスク101上の領域の長さをいう。ジャンプ距離は通常、その部分のセクタ数で表される。上記(ii)の閾値は、BD−ROMの規格では例えば40000セクタである。しかし、その閾値は、BD−ROMディスクの種類と、BD−ROMドライブの読み出し処理に関する性能とに依存する。ロング・ジャンプは特に、フォーカス・ジャンプとトラック・ジャンプとを含む。「フォーカス・ジャンプ」は、記録層の切り換えに伴うジャンプであり、光ピックアップの焦点距離を変化させる処理を含む。「トラック・ジャンプ」は、光ピックアップをBD−ROMディスク101の半径方向に移動させる処理を含む。
図18は、エクステント・ブロック群1501−1503に対するL/Rモードでの再生経路1802も示す。L/Rモードの再生装置102は第1ファイルSS244Aを再生する。従って、L/Rモードでの再生経路1802が示すとおり、各エクステント・ブロック1501、1502、1503が順番に、エクステントSSEXTSS[0]、EXTSS[1]、EXTSS[2]として読み出される。具体的には、まず、先頭のエクステント・ブロック1501からデータ・ブロックD[0]、B[0]、D[1]、B[1]が連続して読み出され、その直後のデータNAVの読み出しが最初のジャンプJNAVによってスキップされる。次に、2番目のエクステント・ブロック1502からデータ・ブロックD[2]、…、B[3]が連続して読み出される。その直後に、記録層の切り換えに伴うロング・ジャンプJLYが生じる。続いて、3番目のエクステント・ブロック1503からデータ・ブロックD[4]、B[4]、…が連続して読み出される。
エクステント・ブロック1501−1503を第1ファイルSS244Aのエクステントとして読み込むとき、再生装置102は第1ファイルSS244Aのファイル・エントリ1540から各エクステントSSEXTSS[0]、EXTSS[1]、…の先端のLBNとそのサイズとを読み出してBD−ROMドライブ121に渡す。BD−ROMドライブ121はそのLBNからそのサイズのデータを連続して読み出す。これらの処理は、データ・ブロック群を第1ファイルDEP242とファイル2D241との各エクステントとして読み込む処理よりも、BD−ROMドライブ121の制御が次の二点(A)、(B)で簡単である:(A)再生装置102は一箇所のファイル・エントリを利用して各エクステントを順番に参照すればよい;(B)読み込み対象のエクステントの総数が実質上半減するので、BD−ROMドライブ121に渡されるべきLBNとサイズとの対の総数が少ない。但し、再生装置102はエクステントSSEXTSS[0]、EXTSS[1]、…を読み込んだ後、それぞれをライトビュー・データ・ブロックとベースビュー・データ・ブロックとに分離してデコーダに渡さなければならない。その分離処理にはクリップ情報ファイルが利用される。その詳細については後述する。
図15に示されているように、各エクステント・ブロック1501−1503の実際の読み出しでは、BD−ROMドライブ121は各データ・ブロックの後端から次のデータ・ブロックの先端までの間にゼロ・セクタ遷移J0を行う。「ゼロ・セクタ遷移」とは、二つの連続するデータ・ブロック間での光ピックアップの移動をいう。ゼロ・セクタ遷移が行われる期間(以下、ゼロ・セクタ遷移期間という。)では、光ピックアップは読み出し動作を一旦停止して待機する。その意味で、ゼロ・セクタ遷移は「ジャンプ距離が0セクタに等しいジャンプ」ともみなせる。ゼロ・セクタ遷移期間の長さ、すなわちゼロ・セクタ遷移時間は、BD−ROMディスク101の回転による光ピックアップの位置の移動時間の他に、誤り訂正処理に伴うオーバーヘッドを含んでもよい。「誤り訂正処理に伴うオーバーヘッド」とは、二つのデータ・ブロックの境界がECCブロックの境界と一致していないときに、そのECCブロックを用いた誤り訂正処理が二回行われることに起因する余分な時間をいう。誤り訂正処理には一つのECCブロックの全体が必要である。従って、一つのECCブロックが二つの連続するデータ・ブロックに共有されているとき、いずれのデータ・ブロックの読み出し処理でもそのECCブロックの全体が読み出されて誤り訂正処理に利用される。その結果、それらのデータ・ブロックを一つ読み出すごとに、そのデータ・ブロックの他に最大32セクタの余分なデータが読み出される。誤り訂正処理に伴うオーバーヘッドは、その余分なデータの読み出し時間の合計、すなわち32[セクタ]×2048[バイト]×8[ビット/バイト]×2[回]/読み出し速度で評価される。尚、各データ・ブロックはECCブロック単位で構成されてもよい。その場合、各データ・ブロックのサイズはECCブロックの整数倍に等しいので、誤り訂正処理に伴うオーバーヘッドをゼロ・セクタ遷移時間から除外することができる。
≪データ・ブロック/エクステント・ブロックのサイズ≫
各データ・ブロックはアラインド・ユニット単位で構成される。特に各データ・ブロックのサイズはアラインド・ユニットのサイズ(=6144バイト=約6KB)の倍数に等しい。その場合、データ・ブロック間の境界はセクタ間の境界と一致するので、BD−ROMドライブはいずれのデータ・ブロックも、その全体を確実に連続して読み出すことができる。
[1:シームレス再生に必要な条件]
図15に示されているように、互いに分離された複数のエクステント・ブロック1501−1503から2D映像と3D映像とのいずれをもシームレスに再生するには、データ・ブロックとエクステント・ブロック1501−1503との各サイズは、以下の[1−1]、[1−2]で説明される条件を満たせばよい。
1−1:2D再生モードでの条件
図19は、2D再生モードの再生装置102内の再生処理系統を示すブロック図である。図19を参照するに、その再生処理系統は、BD−ROMドライブ1901、リード・バッファ1902、及びシステム・ターゲット・デコーダ1903を含む。BD−ROMドライブ1901はBD−ROMディスク101から2Dエクステントを読み出し、読み出し速度RUD54でリード・バッファ1902へ転送する。リード・バッファ1902は、再生装置102に内蔵のバッファ・メモリであり、BD−ROMドライブ1901から2Dエクステントを受信して蓄積する。システム・ターゲット・デコーダ1903は、リード・バッファ1902内に蓄積された各2Dエクステントからソースパケットを平均転送速度REXT2Dで読み出して、映像データVDと音声データADとに復号する。
平均転送速度REXT2Dは、システム・ターゲット・デコーダ1903がリード・バッファ1902内の各ソースパケットからTSパケットを抽出する処理の平均速度の192/188倍に等しい。ここで、係数192/188はソースパケットとTSパケットとの間のバイト数の比に等しい。平均転送速度REXT2Dは通常、ビット/秒で表され、具体的には、ビット単位で表された2DエクステントのサイズをエクステントATC時間で割ったときの値に等しい。「ビット単位で表されたエクステントのサイズ」は、そのエクステント内のソースパケット数とソースパケット一つ当たりのビット数(=192[バイト]×8[ビット/バイト])との積に等しい。平均転送速度REXT2Dは一般に2Dエクステントごとに異なる。平均転送速度REXT2Dの最大値RMAX2Dは、ファイル2Dに対するシステム・レートRTSの192/188倍に等しい。「システム・レート」とは、システム・ターゲット・デコーダ1903によるTSパケットの処理速度の最高値を意味する。システム・レートRTSは通常、ビット/秒(bps)で表されるので、バイト/秒(Bps)で表されるメインTSの記録速度(TS recording rate)の8倍に等しい。
平均転送速度REXT2Dは以下のように評価される。まず、エクステントATC時間が次のように算定される。図17に示されている例では、(n+1)番目のベースビュー・データ・ブロックEXT1[n]のエクステントATC時間TEXT[n]は、SP1#0のATSA1(0)と、(n+2)番目のベースビュー・データ・ブロックEXT1[n+1]の先頭に位置するSP1#(k+1)のATSA1(k+1)との間の差に基づいて、次式で表される:
TEXT[n]=(A1(k+1)−A1(0)+WA)/TATC。
ここで、ラップ・アラウンド値WAは、SP1#0のATSA1(0)からSP1#(k+1)のATSA1(k+1)までATCがカウントされる期間中、ラップ・アラウンドが生じる度に切り捨てられたカウント値の和を表す。すなわち、ラップ・アラウンド値WAは、その期間でのラップ・アラウンドの回数と、ラップ・アラウンドが生じるカウント値との積に等しい。例えば、ATCが30ビットのカウンタでカウントされる場合、ラップ・アラウンド値WAは230に等しい。一方、定数TATCはATCの周期を表し、例えば27MHzに等しい:TATC=27×106。
次に、2Dエクステントのサイズが次のように算定される。図17に示されている例では、(n+1)番目のベースビュー・データ・ブロックEXT1[n]のサイズSEXT1[n]は、そのデータ・ブロックに格納されるソースパケット、すなわちSP1#0、1、…、kの全体のデータ量192×(k+1)×8[ビット]に等しい。
最後に、ベースビュー・データ・ブロックEXT1[n]のサイズSEXT1[n]をエクステントATC時間TEXT[n]で割った値が平均転送速度REXT2D[n]として評価される:REXT2D[n]=SEXT1[n]/TEXT[n]。
上記の評価においてエクステントATC時間が正確に計算されることを目的として、各2Dエクステントのサイズがソースパケット長のある一定の倍数に揃えられてもよい。更に、いずれかの2Dエクステントがその倍数よりも多くのソースパケットを含むとき、その2DエクステントのエクステントATC時間が次のように算定されてもよい:まず、ソースパケットの総数からその倍数を除き、その差にソースパケット一つ当たりの転送時間(=188×8/システム・レート)を乗じる。次に、その積に、上記の倍数に相当するエクステントATC時間を加える。その和が上記の2DエクステントのエクステントATC時間として決定される。
その他に、エクステントATC時間は次のように算定されてもよい:まず、一つの2Dエクステントについて、その先頭のソースパケットのATSから最後のソースパケットのATSまでの時間間隔を求める。次に、その時間間隔にソースパケット一つ当たりの転送時間を加える。その和がその2DエクステントのエクステントATC時間として決定される。具体的には、図17の例において、(n+1)番目のベースビュー・データ・ブロックEXT1[n]のエクステントATC時間TEXT[n]は、SP1#0のATSA1(0)と、そのデータ・ブロックEXT1[n]の後端に位置するSP1#kのATSA1(k)との間の差に基づいて、次式で表される:
TEXT[n]=(A1(k)−A1(0)+WA)/TATC+188×8/RTS1。
ここで、ラップ・アラウンド値WAは、SP1#0のATSA1(0)からSP1#kのATSA1(k)までATCがカウントされる期間中、ラップ・アラウンドが生じる度に切り捨てられたカウント値の和を表す。一方、上式の右辺第2項は、TSパケットのデータ長188[バイト]×8[ビット/バイト]をシステム・レートRTS2で割った値であり、一つのTSパケットをリード・バッファからシステム・ターゲット・デコーダへ転送するのに要する時間と等しい。
上記のエクステントATC時間の計算には次のエクステントの参照が不要であるので、次のエクステントが存在しなくてもエクステントATC時間が算定可能である。また、次のエクステントが存在する場合でも、エクステントATC時間の計算を簡単化することができる。
読み出し速度RUD54は通常、ビット/秒で表され、平均転送速度REXT2Dの最高値RMAX2Dよりも高い値、例えば54Mbpsに設定される:RUD54>RMAX2D。それにより、BD−ROMドライブ1901がBD−ROMディスク101から一つの2Dエクステントを読み出している間、システム・ターゲット・デコーダ1903の復号処理に伴うリード・バッファ1902のアンダーフローが防止される。
図20の(a)は、2D再生モードでの動作中、リード・バッファ1902に蓄積されるデータ量DAの変化を示すグラフである。図20の(b)は、再生対象のエクステント・ブロック2010と2D再生モードでの再生経路2020との間の対応関係を示す模式図である。図20の(b)を参照するに、再生経路2020に従い、エクステント・ブロック2010内の各ベースビュー・データ・ブロックB[n](n=0、1、2、…)が一つの2DエクステントEXT2D[n]としてBD−ROMディスク101からリード・バッファ1902へ読み出される。図20の(a)を参照するに、各2DエクステントEXT2D[n]の読み出し期間PR2D[n]では、蓄積データ量DAは、読み出し速度RUD54と平均転送速度REXT2D[n]との間の差RUD54−REXT2D[n]に等しい速度で増加する。一方、二つの連続する2DエクステントEXT2D[n−1]、EXT2D[n]の間ではジャンプJ2D[n]が生じる。そのジャンプ期間PJ2D[n]では、ディペンデントビュー・データ・ブロックD[n]の読み出しがスキップされるので、BD−ROMディスク101からのデータの読み出しが停止する。従って、ジャンプ期間PJ2D[n]では蓄積データ量DAは平均転送速度REXT2D[n]で減少する。
BD−ROMドライブ1901による読み出し/転送動作は実際には、図20の(a)のグラフから示唆される連続的なものではなく、断続的なものである。それにより、各2Dエクステントの読み出し期間PR2D[n]に蓄積データ量DAがリード・バッファ1902の容量を超えること、すなわちリード・バッファ1902のオーバーフローが防止される。すなわち、図20の(a)のグラフは、実際には階段状である増減を直線的な増減として近似的に表したものである。
図20の(b)に示されているエクステント・ブロック2010から2D映像をシームレスに再生するには、次の二つの条件が満たされればよい:まず、各2DエクステントEXT2D[n]のサイズSEXT2D[n]は所定の下限以上であればよい。この下限を「最小エクステント・サイズ」という。次に、2Dエクステントの間隔は所定の上限以下であればよい。
1−1−1:2Dエクステントの最小エクステント・サイズ
各ジャンプ期間PJ2D[n]ではリード・バッファ1902からシステム・ターゲット・デコーダ1903へのデータ供給を持続させて、そのデコーダ1903に連続的な出力を確保させなければならない。それには、2Dエクステントのサイズが次の条件1を満たせばよい。
各2DエクステントEXT2D[n]のサイズSEXT2D[n]は、その読み出し期間PR2D[n]から次のジャンプ期間PJ2D[n+1]にわたり、リード・バッファ1902からシステム・ターゲット・デコーダ1903へ転送されるデータ量に等しい。その場合、図20の(a)に示されているように、蓄積データ量DAはそのジャンプ期間PJ2D[n+1]の終了時、その読み出し期間PR2D[n]の開始時での量を下回らない。すなわち、各ジャンプ期間PJ2D[n]ではリード・バッファ1902からシステム・ターゲット・デコーダ1903へのデータ供給が持続し、特にリード・バッファ1902はアンダーフローを生じない。ここで、読み出し期間PR2D[n]の長さは2DエクステントEXT2D[n]のサイズSEXT2D[n]を読み出し速度RUD54で割った値SEXT2D[n]/RUD54に等しい。従って、条件1は次のことを示す。各2DエクステントEXT2D[n]の最小エクステント・サイズは、次式(1)の右辺で表される:
式(1)では、ジャンプ時間TJUMP−2D[n]はジャンプ期間PJ2D[n]の長さであり、秒単位で表される。一方、読み出し速度RUD54と平均転送速度REXT2Dとはいずれもビット/秒で表される。従って、式(1)では平均転送速度REXT2Dを数「8」で割り、2DエクステントのサイズSEXT2D[n]の単位をビットからバイトへ変換している。すなわち、2DエクステントのサイズSEXT2D[n]はバイト単位で表される。関数CEIL()は、括弧内の数値の小数点以下の端数を切り上げる操作を意味する。
1−1−2:2Dエクステントの間隔
リード・バッファ1902の容量は有限であることから、ジャンプ時間TJUMP−2D[n]の最大値は制限される。すなわち、ジャンプ期間PJ2D[n]の直前に蓄積データ量DAがリード・バッファ1902の容量一杯であっても、ジャンプ時間TJUMP−2D[n]が長すぎれば、ジャンプ期間PJ2D[n]中に蓄積データ量DAが0に達し、リード・バッファ1902のアンダーフローが生じる危険性がある。以下、BD−ROMディスク101からリード・バッファ1902へのデータ供給が途絶えている状態で蓄積データ量DAがリード・バッファ1902の容量から0に到達するまでの時間、すなわち、シームレス再生を保証できるジャンプ時間TJUMP−2Dの最大値を「最大ジャンプ時間TJUMP_MAX」という。
光ディスクの規格では通常、ジャンプ距離と最大ジャンプ時間との間の関係が光ディスクドライブのアクセス・スピード等から決められている。図21は、BD−ROMディスクに関するジャンプ距離SJUMPと最大ジャンプ時間TJUMP_MAXとの間の対応表の一例である。図21を参照するに、ジャンプ距離SJUMPはセクタ単位で表され、最大ジャンプ時間TJUMP_MAXはm秒単位で表されている。1セクタは2048バイトに等しい。ジャンプ距離SJUMPが、0セクタ、1−10000セクタ、10001−20000セクタ、20001−40000セクタ、40001セクタ−1/10ストローク、及び1/10ストローク以上の各範囲に属するとき、最大ジャンプ時間TJUMP_MAXはそれぞれ、0m秒、200m秒、300m秒、350m秒、700m秒、及び1400m秒である。ジャンプ距離SJUMPが0セクタに等しいときの最大ジャンプ時間TJUMP_MAXはゼロ・セクタ遷移時間TJUMP0に等しい。但し、図21の例ではゼロ・セクタ遷移時間TJUMP0は0m秒とみなされている。
以上のことから、式(1)に代入されるべきジャンプ時間TJUMP−2D[n]は、BD−ROMディスクの規格によってジャンプ距離別に規定された最大ジャンプ時間TJUMP_MAXである。具体的には、図21の表において、二つの連続する2DエクステントEXT2D[n]、EXT2D[n+1]の間でのジャンプ距離SJUMPに対応する最大ジャンプ時間TJUMP_MAXが、ジャンプ時間TJUMP−2D[n]として式(1)に代入される。ここで、そのジャンプ距離SJUMPは、(n+1)番目の2DエクステントEXT2D[n]の後端から(n+2)番目の2DエクステントEXT2D[n+1]の先端までのセクタ数に等しい。
二つの2DエクステントEXT2D[n]、EXT2D[n+1]間のジャンプJ2D[n]では、そのジャンプ時間TJUMP−2D[n]が最大ジャンプ時間TJUMP_MAXに制限されることから、そのジャンプ距離SJUMP、すなわち二つの2DエクステントEXT2D[n]、EXT2D[n+1]の間隔も制限される。例えばジャンプ時間TJUMP−2D[n]が最大ジャンプ時間TJUMP_MAX=700m秒以下に制限されるとき、二つの2DエクステントEXT2D[n]、EXT2D[n+1]間のジャンプ距離SJUMPは、最大で1/10ストローク(=約1.2GB)まで許される。このジャンプ距離SJUMPの最大値のように、ジャンプ時間TJUMPが最大ジャンプ時間TJUMP_MAXに等しいときでのジャンプ距離SJUMPを「最大ジャンプ距離SJUMP_MAX」という。2D映像のシームレス再生には、2Dエクステントの間隔が最大ジャンプ距離SJUMP_MAX以下であることが必要である。
各エクステント・ブロック内では2Dエクステントの間隔はディペンデントビュー・データ・ブロックのサイズに等しい。従って、そのディペンデントビュー・データ・ブロックのサイズは最大ジャンプ距離SJUMP_MAX以下に制限される。具体的には、2Dエクステント間の最大ジャンプ時間TJUMP_MAXが、図21に規定された最小値200m秒に制限される場合、ディペンデントビュー・データ・ブロックのサイズは、対応する最大ジャンプ距離SJUMP_MAX=10000セクタ(=約19.5MB)以下に制限される。
異なる記録層に配置された二つのエクステント・ブロック間をシームレスに接続するとき、先に読み出されたエクステント・ブロックの後端から、次に読み出されるエクステント・ブロックの先端まで、ロング・ジャンプが生じる。そのロング・ジャンプは、フォーカス・ジャンプ等、記録層の切り換え操作を伴う。従って、そのロング・ジャンプに要する時間は、図21の表に規定された最大ジャンプ時間TJUMP_MAXに加えて、記録層の切り換え操作に要する時間、すなわち「層切換時間」を更に含む。層切換時間は例えば350m秒である。ここで、先に読み出されたエクステント・ブロックの後端には(n+1)番目の2DエクステントEXT2D[n]が配置され、後に読み出されるエクステント・ブロックの先端には(n+2)番目の2DエクステントEXT2D[n+1]が配置されている。その場合、(n+1)番目の2DエクステントEXT2D[n]のサイズが満たすべき式(1)では、ジャンプ時間TJUMP−2D[n]は二つのパラメータTJ[n]、TL[n]の和で決まる:TJUMP−2D[n]=TJ[n]+TL[n]。第1パラメータTJ[n]は、BD−ROMディスクの規格によって、ロング・ジャンプのジャンプ距離SJUMPに対して規定された最大ジャンプ時間TJUMP_MAXを表す。その最大ジャンプ時間TJUMP_MAXは、図21の表において、(n+1)番目の2DエクステントEXT2D[n]の後端から(n+2)番目の2DエクステントEXT2D[n+1]の先端までのセクタ数に対応付けられた値に等しい。第2パラメータTL[n]は層切換時間、例えば350m秒を表す。従って、二つの2DエクステントEXT2D[n]、EXT2D[n+1]の間隔は、図21の表において、ロング・ジャンプの最大ジャンプ時間TJUMP_MAXから層切換時間を除いた値に対応する最大ジャンプ距離SJUMP_MAX以下に制限される。例えばジャンプ時間TJUMP−2D[n]が最大ジャンプ時間TJUMP_MAX=700m秒以下、又は600m秒以下に制限されるとき、二つの2DエクステントEXT2D[n]、EXT2D[n+1]間の最大ジャンプ距離SJUMP_MAXは40000セクタ(=約78.1MB)又は10000セクタ(=約19.5MB)である。
1−2:3D再生モードでの条件
図22は、3D再生モードの再生装置102内の再生処理系統を示すブロック図である。図22を参照するに、その再生処理系統は、BD−ROMドライブ2201、スイッチ2202、一対のリード・バッファ2211、2212、及びシステム・ターゲット・デコーダ2203を含む。BD−ROMドライブ2201はBD−ROMディスク101からエクステントSSを読み出し、読み出し速度RUD72でスイッチ2202へ転送する。スイッチ2202は各エクステントSSをベースビュー・データ・ブロックとディペンデントビュー・データ・ブロックとに分離する。その分離処理の詳細については後述する。第1リード・バッファ2211及び第2リード・バッファ2212(以下、RB1及びRB2と略す。)は再生装置102に内蔵のバッファ・メモリであり、スイッチ2202によって分離された各データ・ブロックを蓄積する。RB12211はベースビュー・データ・ブロックを格納し、RB22212はディペンデントビュー・データ・ブロック格納する。システム・ターゲット・デコーダ2203は、RB12211内の各ベースビュー・データ・ブロックからはソースパケットをベースビュー転送速度REXT1で読み出し、RB22212内の各ディペンデントビュー・データ・ブロックからはソースパケットをディペンデントビュー転送速度REXT2で読み出す。システム・ターゲット・デコーダ2203は更に、読み出されたベースビュー・データ・ブロックとディペンデントビュー・データ・ブロックとの対を映像データVDと音声データADとに復号する。
ベースビュー転送速度REXT1は、システム・ターゲット・デコーダ2203がRB12211内の各ソースパケットからTSパケットを抽出する処理の平均速度の192/188倍に等しい。ベースビュー転送速度REXT1の最高値RMAX1は、ファイル2Dに対するシステム・レートRTS1の192/188倍に等しい:RMAX1=RTS1×192/188。そのシステム・レートRTS1は通常、ビット/秒(bps)で表されるので、バイト/秒(Bps)で表されるメインTSの記録速度の8倍に等しい。ディペンデントビュー転送速度REXT2は、システム・ターゲット・デコーダ2203がRB22212内の各ソースパケットからTSパケットを抽出する処理の平均速度の192/188倍に等しい。ディペンデントビュー転送速度REXT2の最高値RMAX2は、ファイルDEPに対するシステム・レートRTS2の192/188倍と等しい:RMAX2=RTS2×192/188。そのシステム・レートRTS2は通常、ビット/秒(bps)で表されるので、バイト/秒(Bps)で表されるサブTSの記録速度の8倍に等しい。各転送速度REXT1、REXT2は通常、ビット/秒で表され、具体的には、ビット単位で表された各データ・ブロックのサイズをエクステントATC時間で割ったときの値に等しい。エクステントATC時間は、そのデータ・ブロック内のソースパケットを全て、RB12211又はRB22212からシステム・ターゲット・デコーダ2203へ転送するのに要する時間に等しい。
ベースビュー転送速度REXT1は、2Dエクステントの平均転送速度REXT2Dと全く同様に評価される:REXT1[・]=SEXT1[・]/TEXT[・]。一方、ディペンデントビュー転送速度REXT2は、ディペンデントビュー・データ・ブロックのサイズとエクステントATC時間との比に代えて、次のデータ量SPEXT2[・]とエクステントATC時間との比で評価される:REXT2[・]=SPEXT2[・]/TEXT[・]。そのデータ量SPEXT2[・]は、ディペンデントビュー・データ・ブロックのうち、対応するベースビュー・データ・ブロックが転送される期間内に実際に転送されるの部分のデータ量に等しい。図17に示されている(n+1)番目のディペンデントビュー・データ・ブロックEXT2[n]について、そのデータ量SPEXT2[n]は、そのディペンデントビュー・データ・ブロックEXT2[n]に格納されるソースパケット、SP2#0、1、…、mのうち、(n+1)番目のベースビュー・データ・ブロックEXT1[n]の先頭のソースパケット、SP1#0のATSA1(0)からエクステントATC時間TEXT[n]が経過するまでの期間に、RB22212からシステム・ターゲット・デコーダ2203へ転送される部分のデータ量に等しい。すなわち、そのデータ量SPEXT2[n]はそのディペンデントビュー・データ・ブロックEXT2[n]のサイズSEXT2[n]よりも、SP1#(k+1)のATSA1(k+1)以降に転送されるSP2#mのデータ量だけ小さい。一方、次のディペンデントビュー・データ・ブロックEXT2[n+1]については、上記のデータ量SPEXT2[n+1]は、そのディペンデントビュー・データ・ブロックEXT2[n+1]に格納されるソースパケット、SP2#(m+1)、…、jに加えて、(n+2)番目のベースビュー・データ・ブロックEXT1[n+1]の先頭のソースパケット、SP1#(k+1)のATSA1(k+1)からエクステントATC時間TEXT[n+1]が経過するまでの期間に、RB22212からシステム・ターゲット・デコーダ2203へ転送されるデータ量に等しい。すなわち、そのデータ量SPEXT2[n+1]はそのディペンデントビュー・データ・ブロックEXT2[n+1]のサイズSEXT2[n+1]よりも、SP1#(k+1)のATSA1(k+1)以降に転送されるSP2#mのデータ量だけ大きい。このように、ベースビュー転送速度REXT1とディペンデントビュー転送速度REXT2とでは評価の仕方が異なる。しかし、その差はわずかであるので、以下の説明では、いずれの転送速度も、データ・ブロックのサイズとエクステントATC時間との比に等しいとみなす。
読み出し速度RUD72は通常、ビット/秒で表され、いずれの転送速度REXT1、REXT2の最高値RMAX1、RMAX2よりも高い値、例えば72Mbpsに設定される:RUD72>RMAX1、RUD72>RMAX2。それにより、BD−ROMドライブ2201によってBD−ROMディスク101から一つのエクステントSSを読み出している間、システム・ターゲット・デコーダ2203の復号処理に伴うRB12211とRB22212とのアンダーフローが防止される。
1−2−1:エクステント・ブロック内でのシームレス接続
図23の(a)、(b)は、一つのエクステント・ブロックから3D映像がシームレスに再生されるとき、RB12211、RB22212に蓄積されるデータ量DA1、DA2の変化を示すグラフである。図23の(c)は、そのエクステント・ブロック2310と3D再生モードでの再生経路2320との間の対応関係を示す模式図である。図23の(c)を参照するに、再生経路2320に従い、エクステント・ブロック2310の全体が一つのエクステントSSとして一括して読み出される。その後、スイッチ2202によってそのエクステントSSからディペンデントビュー・データ・ブロックD[k]とベースビュー・データ・ブロックB[k]とが分離される(k=…、n、n+1、n+2、…)。
BD−ROMドライブ2201による読み出し/転送動作は実際には、図23の(a)、(b)の各グラフから示唆される連続的なものではなく、断続的なものである。それにより、各データ・ブロックD[k]、B[k]の読み出し期間PRD[k]、PRB[k]では、RB12211、RB22212のオーバーフローが防止される。すなわち、図23の(a)、(b)の各グラフは、実際には階段状である増減を直線的な増減として近似的に表したものである。
図23の(a)、(b)を参照するに、(n+1)番目のディペンデントビュー・データ・ブロックD[n]の読み出し期間PRD[n]では、RB22212の蓄積データ量DA2は、読み出し速度RUD72とディペンデントビュー転送速度REXT2[n]との間の差RUD72−REXT2[n]に等しい速度で増加し、RB12211の蓄積データ量DA1はベースビュー転送速度REXT1[n−1]で減少する。図23の(c)を参照するに、(n+1)番目のディペンデントビュー・データ・ブロックD[n]から(n+1)番目のベースビュー・データ・ブロックB[n]まではゼロ・セクタ遷移J0[2n]が生じる。図23の(a)、(b)に示されているように、ゼロ・セクタ遷移期間PJ0[n]では、RB12211の蓄積データ量DA1はベースビュー転送速度REXT1[n−1]で減少し続け、RB22212の蓄積データ量DA2はディペンデントビュー転送速度REXT2[n]で減少する。
図23の(a)、(b)を更に参照するに、(n+1)番目のベースビュー・データ・ブロックB[n]の読み出し期間PRB[n]では、RB12211の蓄積データ量DA1は、読み出し速度RUD72とベースビュー転送速度REXT1[n]との間の差RUD72−REXT1[n]に等しい速度で増加する。一方、RB22212の蓄積データ量DA2は、ディペンデントビュー転送速度REXT2[n]で減少し続ける。図23の(c)を更に参照するに、そのベースビュー・データ・ブロックB[n]から次のディペンデントビュー・データ・ブロックD[n+1]まではゼロ・セクタ遷移J0[2n+1]が生じる。図23の(a)、(b)に示されているように、ゼロ・セクタ遷移期間PJ0[2n+1]では、RB12211の蓄積データ量DA1はベースビュー転送速度REXT1[n]で減少し、RB22212の蓄積データ量DA2はディペンデントビュー転送速度REXT2[n]で減少し続ける。
一つのエクステント・ブロック2310から3D映像をシームレスに再生するには、そのエクステント・ブロックに属するデータ・ブロックB[n]、D[n]の各サイズは、以下に説明される条件2、3を満たせばよい。
(n+1)番目のベースビュー・データ・ブロックB[n]のサイズSEXT1[n]は少なくとも、その読み出し期間PRB[n]から次のベースビュー・データ・ブロックB[n+1]の読み出し期間PRB[n+1]の直前までに、RB12211からシステム・ターゲット・デコーダ2203へ転送されるデータ量に等しい。その場合、図23の(a)に示されているように、次のベースビュー・データ・ブロックB[n+1]の読み出し期間PRB[n+1]の直前では、RB12211の蓄積データ量DA1が、(n+1)番目のベースビュー・データ・ブロックB[n]の読み出し期間PRB[n]の直前での量を下回らない。ここで、(n+1)番目のベースビュー・データ・ブロックB[n]の読み出し期間PRB[n]の長さは、そのベースビュー・データ・ブロックB[n]のサイズSEXT1[n]を読み出し速度RUD72で割った値SEXT1[n]/RUD72に等しい。一方、(n+2)番目のディペンデントビュー・データ・ブロックD[n+1]の読み出し期間PRD[n+1]の長さは、そのディペンデントビュー・データ・ブロックD[n+1]のサイズSEXT2[n+1]を読み出し速度RUD72で割った値SEXT2[n+1]/RUD72に等しい。従って、条件2は次のことを示す。そのベースビュー・データ・ブロックB[n]の最小エクステント・サイズは、次式(2)の右辺で表される:
(n+1)番目のディペンデントビュー・データ・ブロックD[n]のサイズSEXT2[n]は少なくとも、その読み出し期間PRD[n]から次のディペンデントビュー・データ・ブロックD[n+1]の読み出し期間PRD[n+1]の直前までに、RB22212からシステム・ターゲット・デコーダ2203へ転送されるデータ量に等しい。その場合、図23の(b)に示されているように、次のディペンデントビュー・データ・ブロックD[n+1]の読み出し期間PRD[n+1]の直前では、RB22212の蓄積データ量DA2が(n+1)番目のディペンデントビュー・データ・ブロックD[n]の読み出し期間PRD[n]の直前での量を下回らない。ここで、(n+1)番目のディペンデントビュー・データ・ブロックD[n]の読み出し期間PRD[n]の長さは、そのディペンデントビュー・データ・ブロックD[n]のサイズSEXT2[n]を読み出し速度RUD72で割った値SEXT2[n]/RUD72に等しい。従って、条件3は次のことを示す。そのディペンデントビュー・データ・ブロックD[n]の最小エクステント・サイズは、次式(3)の右辺で表される:
1−2−2:エクステント・ブロック間のシームレス接続
図24の(b)は、(M+1)番目(文字Mは1以上の整数を表す。)のエクステント・ブロック2401と(M+2)番目のエクステント・ブロック2402、及び、それらのエクステント・ブロック2401、2402と3D再生モードでの再生経路2420との間の対応関係を示す模式図である。図24の(b)を参照するに、二つのエクステント・ブロック2401、2402の間は層境界LB又は他のデータの記録領域によって分離されている。再生経路2420に従って、先に(M+1)番目のエクステント・ブロック2401の全体が(M+1)番目のエクステントSS、すなわちEXTSS[M]として一括して読み出される。その直後にジャンプJ[M]が生じる。続いて、(M+2)番目のエクステント・ブロック2402が(M+2)番目のエクステントSS、すなわちEXTSS[M+1]として一括して読み出される。
図24の(a)は、二つのエクステント・ブロック2401、2402から連続して3D映像がシームレスに再生されるとき、RB12211、RB22212に蓄積されるデータ量DA1、DA2の変化、及びそれらの和DA1+DA2の変化を示すグラフ群である。図24の(a)では、一点鎖線のグラフは、RB12211に蓄積されるデータ量DA1の変化を示し、破線のグラフは、RB22212に蓄積されるデータ量DA2の変化を示し、実線のグラフは、両データ量の和DA1+DA2の変化を示す。ここで、実線のグラフは、データ・ブロックが一つ読み出されるごとに生じる細かい変化を均して直線的に近似したものである。更に、ゼロ・セクタ遷移時間TJUMP0は0m秒とみなされている。
図24の(a)を参照するに、EXTSS[M]2401の全体がBD−ROMディスク101からRB12211、RB22212へ読み出される期間PRBLK[M]では、それらに蓄積されるデータ量DA1、DA2も増大する。具体的には、EXTSS[M]2401全体の読み出し期間PRBLK[M]中、蓄積データ量の和DA1+DA2は、読み出し速度RUD72と平均転送速度REXTSS[M]との間の差RUD72−REXTSS[M]に等しい速度で増加する。その平均転送速度REXTSS[M]は、EXTSS[M]2401全体のサイズSEXTSS[M]をそのエクステントATC時間TEXTSSで割った値として評価される。
平均転送速度REXTSS[M]の具体的な評価は以下のとおりである。まず、エクステントATC時間が次のように算定される。EXTSS[M]2401のエクステントATC時間TEXTSS[M]は、その先頭のベースビュー・データ・ブロックB0のATSA10と、EXTSS[M+1]2402内の先頭のベースビュー・データ・ブロックB1のATSA11との間の差に基づいて、次式で表される:
TEXTSS[M]=(A11−A10+WA)/TATC。
ここで、ラップ・アラウンド値WAは、EXTSS[M]2401内の先頭のベースビュー・データ・ブロックB0のATSA10からEXTSS[M+1]2402内の先頭のベースビュー・データ・ブロックB1のATSA11までATCがカウントされる期間中、ラップ・アラウンドが生じる度に切り捨てられたカウント値の和を表す。また、定数TATCはATCの周期を表す:TATC=27×106[Hz]。
その他に、エクステントATC時間は次のように算定されてもよい。図24の例において、EXTSS[M]2401のエクステントATC時間TEXT[M]は、その先頭のベースビュー・データ・ブロックB0のATSA10と、最後のベースビュー・データ・ブロックB2のATSA12との間の差に基づいて、次式で表される:
TEXTSS[M]=(A12−A10+WA)/TATC+188×8/min(RTS1、RTS2)。
ここで、ラップ・アラウンド値WAは、EXTSS[M]2401内の先頭のベースビュー・データ・ブロックB0のATSA10から最後のベースビュー・データ・ブロックB2のATSA12までATCがカウントされる期間中、ラップ・アラウンドが生じる度に切り捨てられたカウント値の和を表す。一方、上式の右辺第2項は、TSパケットのデータ長188×8[ビット]を、ファイル2DとファイルDEPとのそれぞれに対するシステム・レートRTS1、RTS2のうち、いずれか小さい方で割った値である。この値は、一つのTSパケットをシステム・ターゲット・デコーダへ、RB1から転送するのに要する時間と、RB2から転送するのに要する時間とのいずれか長い方に等しい。このエクステントATC時間の計算には次のエクステント・ブロックの参照が不要であるので、次のエクステント・ブロックが存在しなくてもエクステントATC時間が算定可能である。また、次のエクステント・ブロックが存在する場合でも、エクステントATC時間の計算を簡単化することができる。
次に、平均転送速度REXTSS[M]が、次のデータ量SPEXTSS[M]とエクステントATC時間TEXTSS[M]との比で評価される:REXTSS[M]=SPEXTSS[M]/TEXTSS[M]。そのデータ量SPEXTSS[M]は、EXTSS[M]2401のうち、先頭のベースビュー・データ・ブロックB0のATSA10からエクステントATC時間TEXTSS[M]が経過する間に、RB1とRB2とからシステム・ターゲット・デコーダへ実際に転送されるデータの総量に等しい。図17に示されている(n+1)番目のディペンデントビュー・データ・ブロックEXT2[n]のように、対応するベースビュー・データ・ブロックEXT1[n]のATSA1(0)からエクステントATC時間TEXTSS[M]が経過するまでの期間よりも後に、RB2からシステム・ターゲット・デコーダへ転送される部分が存在する場合、上記のデータ量SPEXTSS[M]はEXTSS[M]2401のサイズSEXTSS[M]よりも小さい。このように、平均転送速度REXTSSの評価に利用されるデータ量SPEXTSS[M]とエクステント・ブロックのサイズSEXTSS[M]とは異なる。しかし、その差はわずかであるので、以下の説明では、平均転送速度はエクステント・ブロックのサイズとエクステントATC時間との比に等しいとみなす。
EXTSS[M]2401の後端のベースビュー・データ・ブロックB2がRB12211に読み込まれた時点で、蓄積データ量の和DA1+DA2は最大値に達する。その直後のジャンプ期間PJ[M]では、蓄積データ量の和DA1+DA2は平均転送速度REXTSS[M]で減少する。従って、蓄積データ量の和DA1+DA2の最大値を十分に大きく調節することにより、ジャンプJ[M]中でのRB12211、RB22212のいずれのアンダーフローも防止することができる。その結果、二つのエクステント・ブロック2401、2402をシームレスに接続することができる。
蓄積データ量の和DA1+DA2の最大値はEXTSS[M]2401のサイズに依存する。従って、EXTSS[M]2401をEXTSS[M+1]2402にシームレスに接続するには、EXTSS[M]2401のサイズが次の条件4を満たせばよい。
EXTSS[M]2401の先端に位置するディペンデントビュー・データ・ブロックD0の読み出し期間PRD0ではプリロードが行われる。そのプリロード期間PRD0ではまだ、そのディペンデントビュー・データ・ブロックD0に対応するベースビュー・データ・ブロックB0がRB12211には格納されていないので、ディペンデントビュー・データ・ブロックD0をRB22212からシステム・ターゲット・デコーダ2203へ転送することができない。従って、そのプリロード期間PRD0では、その直前のジャンプJ[M−1]の期間に引き続き、M番目のエクステント・ブロックのデータがRB22212からシステム・ターゲット・デコーダ2203へ転送される。それにより、システム・ターゲット・デコーダ2203へのデータ供給が維持される。同様に、EXTSS[M+1]2402の先端に位置するディペンデントビュー・データ・ブロックD1の読み出し期間PRD1でもプリロードが行われる。従って、そのプリロード期間PRD1では、その直前のジャンプ期間PJ[M]に引き続き、EXTSS[M]2401のデータがRB22212からシステム・ターゲット・デコーダ2203へ転送される。それにより、システム・ターゲット・デコーダ2203へのデータ供給が維持される。それ故、ジャンプJ[M]中でのRB12211、RB22212のアンダーフローを防止するには、EXTSS[M]2401のエクステントATC時間TEXTSSが少なくとも、EXTSS[M]2401でのプリロード期間PRD0の終了時点T0からEXTSS[M+1]2402でのプリロード期間PRD1の終了時点T1までの期間の長さに等しければよい。すなわち、EXTSS[M]2401のサイズSEXTSS[M]は少なくとも、その期間T0−T1にRB12211とRB22212とからシステム・ターゲット・デコーダ2203へ転送されるデータ量の和に等しければよい。
図24の(a)から明らかなとおり、期間T0−T1の長さは、EXTSS[M]2401の読み出し期間PRBLK[M]の長さ、ジャンプJ[M]のジャンプ時間TJUMP[M]、及び二つのエクステント・ブロック2401、2402間でのプリロード期間PRD0、PRD1の長さの差TDIFF[M]を足し合わせた値に等しい。更に、EXTSS[M]2401の読み出し期間PRBLK[M]の長さは、EXTSS[M]2401のサイズSEXTSS[M]を読み出し速度RUD72で割った値SEXTSS[M]/RUD72に等しい。従って、条件4は次のことを示す。EXTSS[M]2401の最小エクステント・サイズは、次式(4)の右辺で表される:
各プリロード期間PRD0、PRD1の長さは、各エクステント・ブロック2401、2402の先端に位置するディペンデントビュー・データ・ブロックD0、D1のサイズSEXT20、SEXT21を読み出し速度RUD72で割った値SEXT20/RUD72、SEXT21/RUD72に等しい。従って、プリロード期間PRD0、PRD1の長さの差TDIFFはそれらの値の差に等しい:TDIFF=SEXT21/RUD72−SEXT20/RUD72。尚、式(4)の右辺は、式(1)−(3)の右辺と同様に、バイト単位の整数値で表されてもよい。
ここで、多重化ストリーム・データの復号処理を次のように工夫する場合、式(4)では、差TDIFFを0とみなしてもよい。まず、多重化ストリーム・データの全体での差TDIFFの最大値、すなわち差TDIFFのワースト値を予め求めておく。次に、その多重化ストリーム・データを再生する際、その復号処理の開始時点をその読み出しの開始時点よりも、差TDIFFのワースト値に等しい時間だけ遅らせる。
[2:リード・バッファの容量を節約するための条件]
シームレス再生のための上記の条件1−4により、データ・ブロックとエクステント・ブロックとの最小エクステント・サイズは制限される。一方、以下に説明されるように、一般的には、各データ・ブロックのサイズが大きいほど、リード・バッファは大きな容量を必要とする。従って、リード・バッファの容量を可能な限り削減するには、データ・ブロックとエクステント・ブロックとの各サイズの上限を可能な限り制限することが望ましい。それらの上限を「最大エクステント・サイズ」という。
2−1:リード・バッファの容量の下限
図25の(a)は、図24の(b)に示されている二つのエクステント・ブロック2401、2402から連続して3D映像がシームレスに再生される際に、RB12211に蓄積されるデータ量DA1の変化を示すグラフである。図25の(a)を参照するに、蓄積データ量DA1は、EXTSS[M]2401の後端のベースビュー・データ・ブロックB2がRB12211に読み込まれた直後の値DM1から、ジャンプ期間PJ[M]とEXTSS[M+1]2402のプリロード期間PRD1とにわたり、ベースビュー転送速度REXT1[n]で減少する。ここで、文字nは0以上の整数であって、EXTSS[M]2401内の最後のエクステント・ペアD2、B2が、ファイルDEP、ファイル・ベースの各先頭のエクステントから数えて(n+1)番目であることを示す。従って、そのプリロード期間PRD1の終了まで蓄積データ量DA1が0に達するのを防ぐには、上記の値DM1が次のデータ量以上であればよい。そのデータ量は、ジャンプ期間PJ[M]とプリロード期間PRD1とでRB12211からシステム・ターゲット・デコーダ2203へ転送されるデータ量であり、各期間の長さTJUMP、SEXT2[n+1]/RUD72の和にベースビュー転送速度REXT1[n]を乗じた値に等しい:DM1≧(TJUMP+SEXT2[n+1]/RUD72)×REXT1[n]。ベースビュー転送速度REXT1[n]は最高値RMAX1=RTS1×192/188まで達し得るので、RB12211の容量RB1の下限は、次式(5)の右辺で表される:
図25の(b)は、二つのエクステント・ブロック2401、2402から連続して3D映像がシームレスに再生される際に、RB22212に蓄積されるデータ量DA2の変化を示すグラフである。図25の(b)を参照するに、蓄積データ量DA2は、EXTSS[M]2401の後端に位置するベースビュー・データ・ブロックB2の読み出しが開始された時点での値DM2から、そのベースビュー・データ・ブロックB2の読み出し期間とEXTSS[M+1]2402のプリロード期間PRD1とにわたり、ディペンデントビュー転送速度REXT2[n]で減少する。従って、そのプリロード期間PRD1の終了までシステム・ターゲット・デコーダ2203へのデータ供給を維持するには、上記の値DM2が次のデータ量以上であればよい。そのデータ量は、ベースビュー・データ・ブロックB2の読み出し期間、ジャンプ期間PJ[M]、及びプリロード期間PRD1でRB22212からシステム・ターゲット・デコーダ2203へ転送されるデータ量であり、各期間の長さSEXT1[n]/RUD72、TJUMP、及びSEXT2[n+1]/RUD72の和にディペンデントビュー転送速度REXT2[n]を乗じた値に等しい:DM2≧(SEXT1[n]/RUD72+TJUMP+SEXT2[n+1]/RUD72)×REXT2[n]。ここで、ディペンデントビュー転送速度REXT2[n]は最高値RMAX2=RTS2×192/188まで達し得る。その上、いずれのディペンデントビュー・データ・ブロックも、飛び込み再生時に最初に読み込まれるデータ・ブロックとなり得る。従って、RB22212の容量RB2は、いずれのディペンデントビュー・データ・ブロックのサイズSEXT2[・]も下回ってはならない。すなわち、その容量RB2はディペンデントビュー・エクステントEXT2[・]の最大エクステント・サイズmaxSEXT2以上でなければならない。以上の結果から、RB22212の容量RB2の下限は、次式(6)の右辺で表される:
2−2:2Dエクステントの最大エクステント・サイズ
式(5)に示されているとおり、エクステント・ブロック間のジャンプJ[M]の直後に読み出されるディペンデントビュー・データ・ブロックD1のサイズSEXT2[n+1]が小さいほど、RB12211の容量の下限を縮小することができる。一方、式(6)に示されているとおり、そのジャンプJ[M]の直後に読み出されるディペンデントビュー・データ・ブロックD1のサイズSEXT2[n+1]に加え、そのジャンプJ[M]の直前に読み出されるベースビュー・データ・ブロックB2のサイズSEXT1[n]とディペンデントビュー・データ・ブロックの最大エクステント・サイズmaxSEXT2とのそれぞれが小さいほど、RB22212の容量の下限を縮小することができる。更に、(k+1)番目のベースビュー・エクステントEXT1[k]は、(k+1)番目のディペンデントビュー・エクステントEXT2[k]とエクステントATC時間が共通である(文字kは0以上の整数を表す)。従って、(k+1)番目のベースビュー・エクステントEXT1[k]の最大エクステント・サイズの制限によってそのエクステントATC時間が短縮されれば、(k+1)番目のディペンデントビュー・エクステントEXT2[k]の最大エクステント・サイズも制限される。それ故、RB12211、RB22212の各容量の下限を許容範囲内に抑えるには、各ベースビュー・データ・ブロックEXT1[・]のサイズが次の条件5を満たせばよい。
図15に示されているように、各エクステント・ブロック1501−1503内のベースビュー・データ・ブロックB[k](k=0、1、2、…)はファイル2D241とファイルSS244Aとに共有されている。従って、ベースビュー・データ・ブロックB[k]のサイズSEXT1[k]は式(1)を満たすべきである。式(1)を満たす範囲で、ベースビュー・データ・ブロックB[k]のサイズSEXT1[k]を可能な限り縮小するには、次のようにすればよい:ベースビュー・データ・ブロックB[k]の最大エクステント・サイズを、式(1)の右辺の上限、すなわち、ベースビュー・データ・ブロックB[k]の最小エクステント・サイズの上限に可能な限り近づければよい。本発明の実施形態1では、条件5は次のことを示す。ベースビュー・データ・ブロックB[k]の最大エクステント・サイズは、次式(7)の右辺で表される:
式(7)の右辺は式(1)の右辺とは次の点で異なる。まず、分母に含まれる平均転送速度REXT2Dがその最高値RMAX2Dに置き換えられている。従って、式(7)の右辺の2番目の分数は、式(1)のものの最大値に等しい。次に、式(7)のジャンプ時間TJUMP−2D_MINは、図21の表で規定された最大ジャンプ時間TJUMP_MAXの中で、0m秒の次に大きい値200m秒に設定される。これは、「各エクステント・ブロック1501−1503内では2DエクステントEXT2D[k]、EXT2D[k+1]の間隔は10000セクタ以下に制限されること」を意味する。ここで、10000セクタは、図21の表において最大ジャンプ時間TJUMP_MAX=200m秒に対応付けられた最大ジャンプ距離SJUMP_MAXに等しい。一方、各エクステント・ブロック1501−1503内における2DエクステントEXT2D[k]、EXT2D[k+1]の間隔はディペンデントビュー・データ・ブロックD[k]のサイズSEXT2[k]に等しい。従って、ベースビュー・データ・ブロックの最大エクステント・サイズが式(7)の右辺で表されることは、ディペンデントビュー・データ・ブロックの最大エクステント・サイズが10000セクタ以下に制限されることをも意味する。
2−3:2Dエクステントへのマージンの追加
図21に示されている2D再生モードの再生経路2101から明らかなとおり、2D再生モードではジャンプが頻繁に生じる。従って、シームレス再生を更に確実に行うには、式(1)の右辺で表される2Dエクステントの最小エクステント・サイズにマージン(余裕量)を追加するのが好ましい。しかし、そのマージンの追加によって式(7)が変更されることは、リード・バッファの容量の増大を招きかねないので回避されるべきである。式(7)を変更しないようにマージンを追加する方法には、以下の三種類がある。
第1の方法は、式(1)の右辺の分母に含まれる平均転送速度REXT2Dをその最高値RMAX2Dに置き換える。すなわち、2DエクステントのサイズSEXT2Dは、式(1)に代えて、次式(8)を満たす:
上記のように、平均転送速度REXT2Dをその最高値RMAX2Dに置き換えることは、式(1)から式(7)を導出したときと同様である。従って、式(1)が式(8)に変更されても、式(7)は変更されない。
第2の方法は、2DエクステントのエクステントATC時間をΔT秒延長する。すなわち、2DエクステントのサイズSEXT2Dは、式(1)に代えて、次式(9A)又は(9B)を満たす:
延長時間ΔTは、GOPの長さ、又は、所定時間当たりに再生可能なエクステント数の上限から決定されてもよい。例えばGOPの長さが最大1秒であれば、延長時間ΔTは1秒に設定される。一方、所定時間[秒]当たりに再生可能なエクステント数の上限がk個であれば、延長時間ΔTは、所定時間/k[秒]に設定される。
第2の方法では、式(7)は、その右辺が延長時間ΔTを陽に含むように変更される。すなわち、式(9A)又は(9B)が採用される場合、ベースビュー・データ・ブロックのサイズは、式(7)に代えて、次式(10A)又は(10B)を満たす:
式(10A)の右辺で表される最大エクステント・サイズは、式(1)の右辺で表される最小エクステント・サイズよりも、延長時間ΔTにリード・バッファからシステム・ターゲット・デコーダ2203へ読み出されるデータ量だけ大きい。式(10B)の右辺で表される最大エクステント・サイズは、式(7)の右辺で表される最大エクステント・サイズとよりも、同じデータ量だけ大きい。すなわち、いずれの場合でも、そのデータ量がマージンとして確保される。
第3の方法は、式(1)の右辺に含まれる平均転送速度REXT2Dを全て、その最高値RMAX2Dに置き換える。すなわち、2DエクステントのサイズSEXT2Dは、式(1)に代えて、次式(11)を満たす:
第3の方法では、最小エクステント・サイズに、第1の方法よりも大きいマージンを追加することはできる。しかし、その反面、2Dエクステントのビットレートが低い場合でも、そのサイズが大きいので、リード・バッファには十分に大きな容量が確保されなければならない。従って、マージンの大きさとリード・バッファの利用効率との比較衡量が必要である。
2−4:データ・ブロックの転送帯域幅の制限
図7に示されているように、ディペンデントビュー・ピクチャはベースビュー・ピクチャを参照して圧縮されている。従って、ディペンデントビュー・ビデオ・ストリームはベースビュー・ビデオ・ストリームよりも平均的なビットレートが一般に低い。それ故、ファイルDEPに対するシステム・レートRTS2はファイル2Dに対するシステム・レートRTS1よりも一般には低く設定される。例えば、ファイル2Dに対するシステム・レートRTS1が45Mbps以下に設定されるとき、ファイルDEPに対するシステム・レートRTS2は30Mbps以下に設定される:RTS1≦45Mbps、RTS2≦30Mbps。
ここで、システム・レートRTS1、RTS2の合計が一定の閾値以下に制限されている場合を想定する。その閾値は、システム・ターゲット・デコーダ2203に割り当てられた転送帯域の幅以下に設定され、例えば60Mbpsに等しい:RTS1+RTS2≦60Mbps。その場合、ファイル2Dに対するシステム・レートRTS1が45Mbpsに設定されれば、ファイルDEPに対するシステム・レートRTS2は15Mbps以下に制限される:RTS1=45Mbps、RTS2≦15Mbps。各ビデオ・ストリームのビットレートが平均的な値に維持されている限り、システム・レートRTS1、RTS2の合計に対するそのような制限は、上記の転送帯域を効率良く利用するのに有利である。しかし、実際には、ディペンデントビュー・ビデオ・ストリームのビットレートが一時的に上昇し、ベースビュー・ビデオ・ストリームのビットレートを超える場合がある。例えば、自然の風景を表す3D映像において、カメラの動きに伴ってベースビュー(例えばレフトビュー)の焦点が突然外れ、ディペンデントビュー(例えばライトビュー)の焦点のみが合っている場合、そのようなビットレートの逆転が生じる。その場合、ベースビュー転送速度REXT1はシステム・レートRTS1=45Mbpsよりかなり低いにもかかわらず、ディペンデントビュー転送速度REXT2はシステム・レートRTS2≦15Mbps(正確には、その192/188≒1.02倍である。以下、特に必要でない限り、その係数は1とみなす。)を超えることができない。このように、システム・レートRTS1、RTS2の合計が制限されている場合、ディペンデントビュー転送速度REXT2が、ディペンデントビュー・ビデオ・ストリームのビットレートの一時的な上昇には対応できない。
その対応を可能にするには、システム・レートRTS1、RTS2の合計を制限するのに代えて、(n+1)番目のエクステント・ペアD[n]、B[n](n=0、1、2、…)ごとに転送速度REXT1[n]、REXT2[n]の合計を制限すればよい:REXT1[n]+REXT2[n]≦60Mbps。図26の(a)、(b)はそれぞれ、ベースビュー転送速度REXT1とディペンデントビュー転送速度REXT2との時間的な変化を示すグラフである。図26の(a)を参照するに、ベースビュー転送速度REXT1は第1時刻T0で最高値RMAX1≒45Mbpsから急落し、第1時刻T0から第2時刻T1までの期間Tstr中、低レベル=15Mbpsに留まっている。図26の(b)で実線のグラフGR1が示すとおり、ディペンデントビュー転送速度REXT2はベースビュー転送速度REXT1の変化に対して相補的に変化できる。特に上記の期間Tstrには、ピークP1が最高値RMAX2≒30Mbpsまで到達できる。このように、ベースビュー転送速度REXT1[n]とディペンデントビュー転送速度REXT2[n]との合計がエクステント単位で制限されている場合、ディペンデントビュー転送速度REXT2は、ディペンデントビュー・ビデオ・ストリームのビットレートの一時的な上昇にも対応できる。
システム・ターゲット・デコーダ2203に割り当てられた転送帯域をストリーム・データの転送に更に効率良く利用するには、ファイルDEPに対するシステム・レートRTS2を更に高く設定する。図26の(c)は、図26の(a)に示されているベースビュー転送速度REXT1と、図26の(b)に示されているディペンデントビュー転送速度REXT2との合計の時間的な変化を示すグラフである。図26の(c)で実線のグラフGR3の窪みCVが示すとおり、ベースビュー転送速度REXT1とディペンデントビュー転送速度REXT2との合計は、第1時刻T0から第2時刻T1までの期間Tstr中、閾値60Mbpsを下回っている。これは、図26の(b)で実線のグラフGR1が示すとおり、ディペンデントビュー転送速度REXT2がファイルDEPに対するシステム・レートRTS2=30Mbps以下に制限されていることに因る。図26の(a)の示すとおり、その期間Tstrではベースビュー転送速度REXT1は15Mbpsまで降下しているので、転送帯域幅には、少なくとも、その値と閾値との間の差60−15=45Mbpsに等しい余裕が残されている。従って、ファイルDEPに対するシステム・レートRTS2は、30Mbpsよりも高い範囲、好ましくはファイル2Dに対するシステム・レートRTS1と同じ範囲、例えば45Mbps以下に設定される:RTS1≦45Mbps、RTS2≦45Mbps。図26の(b)、(c)にはそれぞれ、その場合におけるディペンデントビュー転送速度REXT2、及びベースビュー転送速度REXT1とディペンデントビュー転送速度REXT2との合計が破線のグラフGR2、GR4で示されている。図26の(b)で破線のグラフGR2が示すとおり、ディペンデントビュー転送速度REXT2のピークP2は30Mbpsを超えることができる。その結果、図26の(c)で破線のグラフGR4が示すとおり、ベースビュー転送速度REXT1とディペンデントビュー転送速度REXT2との合計は、上記の期間Tstr中、閾値60Mbpsの近傍に維持される。こうして、上記の転送帯域の利用効率を更に向上させることができる。
但し、ファイルDEPに対するシステム・レートRTS2をファイル2Dに対するシステム・レートRTS1と同程度に高い値に設定した場合、それらの合計RTS1+RTS2は一般に、システム・ターゲット・デコーダ2203の転送帯域よりも高い。一方、ベースビュー転送速度REXT1[n]とディペンデントビュー転送速度REXT2[n]とはいずれも平均値であるので、それらの合計に閾値を設けても、転送速度の瞬時値の合計がその閾値を超えることまでは制限されない。具体的な例として、各システム・レートRTS1、RTS2が45Mbpsに設定され、各エクステントのエクステントATC時間が3秒間であって、かつその前半の1.5秒間では転送速度の合計が30Mbpsに維持されている場合を想定する。その場合、後半の1.5秒間で各転送速度が仮にシステム・レート45Mbpsまで上昇したとしても、エクステント全体で平均された転送速度の合計は60Mbpsに抑えられる。従って、ベースビュー転送速度REXT1[n]とディペンデントビュー転送速度REXT2[n]との合計を60Mbps以下に制限しても、転送速度の瞬時値の合計が45Mbps×2=90Mbpsまで上昇することを阻むことはできない。このように、ベースビュー転送速度REXT1[n]とディペンデントビュー転送速度REXT2[n]との合計を制限するだけでは、システム・ターゲット・デコーダ2203の転送帯域が飽和する危険性がゼロではない。
システム・ターゲット・デコーダ2203の転送帯域が飽和する危険性を更に低減させることを目的として、平均転送速度の合計に対する制限を更に次のように変更する。図27は、RB12211、RB22212のそれぞれからシステム・ターゲット・デコーダ2203へ転送されるTSパケットとATC時間との間の関係を示す模式図である。図27を参照するに、上段の矩形2710は、ベースビュー・データ・ブロックに含まれるTSパケット、TS1#p(p=0、1、2、3、…、k、k+1、k+2)の転送期間を表し、下段の矩形2720は、ディペンデントビュー・データ・ブロックに含まれるTSパケット、TS2#q(q=0、1、2、3、…、m−1、m、m+1)の転送期間を表す。それらの矩形2710、2720はATCの時間軸方向でTSパケットの転送順に並べられている。各矩形2710、2720の先頭の位置はそのTSパケットの転送開始時刻を表す。各矩形2710、9320の長さAT1、AT2は、1個のTSパケットがRB12211、RB22212からシステム・ターゲット・デコーダ2203へ転送されるのに要する時間を表す。3D再生モードの再生装置102は、一つのTSパケットを転送し始める度に、その転送開始時刻を起点とする所定時間長、例えば1秒間のウィンドウWIN1、WIN2、WIN3を設定する。再生装置102は更に、各ウィンドウWIN1、WIN2、WIN3内でTS1とTS2との各転送速度を平均し、それらの平均値の合計を所定の閾値以下に制限する。図27に示されている例では、まず、TS1#0の転送開始時刻A1を起点とする第1ウィンドウWIN1が設定され、その中で転送されるTS1#0−kとTS2#0−mとについて、平均転送速度の合計が閾値以下に制限される。同様に、TS2#0の転送開始時刻A2を起点とする第2ウィンドウWIN2の中で転送されるTS1#0−(k+1)とTS2#0−m、及び、TS1#1の転送開始時刻A3を起点とする第3ウィンドウWIN3の中で転送されるTS1#1−(k+1)とTS2#0−(m+1)のそれぞれについて、平均転送速度の合計が閾値以下に制限される。このように、各TSパケットの転送開始時刻から一定長のウィンドウを設定する度に、各ウィンドウでの平均転送速度の合計を所定の閾値以下に制限する。それにより、ウィンドウが短いほど、システム・ターゲット・デコーダ2203の転送帯域が飽和する危険性が低減する。
2−5:システム・レートと最大エクステント・サイズとの間の関係
式(5)、(6)を参照するに、RB12211、RB22212の各容量の下限は、エクステント・ブロック間のジャンプJ[M]の最大ジャンプ時間TJUMP_MAXとシステム・レートRTS1、RTS2とにも依存する。特に、ジャンプJ[M]がロング・ジャンプであり、かつ、ファイルDEPに対するシステム・レートRTS2がファイル2Dに対するシステム・レートRTS1よりも高く上昇する場合、RB22212の容量の下限が許容範囲を超える危険性がある。従って、そのシステム・レートRTS2の上昇にかかわらず、RB22212の容量の下限を許容範囲内に留めるには、ジャンプJ[M]の最大ジャンプ時間TJUMP_MAXとそのシステム・レートRTS2とに依って、各データ・ブロックEXT1[・]、EXT2[・]の最大エクステント・サイズmaxSEXT1、maxSEXT2を変更すべきである。特に、ロング・ジャンプの直前に読み出されるエクステント・ブロックについては、ファイルDEPに対するシステム・レートRTS2が高いほど、データ・ブロックEXT1[・]、EXT2[・]の最大エクステント・サイズは縮小されるべきである。
図28の(a)は、ファイルDEPに対するシステム・レートRTS2とデータ・ブロックの最大エクステント・サイズとの間の関係の一例を示す表である。ここで、(i+1)番目のエクステント・ペアEXT1[i]、EXT2[i](文字iは0以上の整数を表す。)に対する平均転送速度REXT1[i]、REXT2[i]の合計が閾値64Mbps以下であることを想定する:REXT1[i]+REXT2[i]≦64Mbps。図28の(a)を参照するに、まず、エクステント・ペアB[i]、D[i]は、ファイルDEPに対するシステム・レートRTS2及びBD−ROMディスク上での配置に依って、三種類のタイプ(A)、(B)、(C)に分類される。そのシステム・レートRTS2が閾値32Mbpsよりも高い場合において、ロング・ジャンプの直前に読み出されるエクステント・ブロック内の2番目以降のエクステント・ペアがタイプ(B)に分類され、ロング・ジャンプの直後に読み出されるエクステント・ブロック内の先頭のエクステント・ペアがタイプ(C)に分類される。一方、そのシステム・レートRTS2が閾値32Mbps以下である場合における全てのエクステント・ペア、及び、そのシステム・レートRTS2が閾値32Mbpsよりも高い場合におけるタイプ(B)、(C)以外のエクステント・ペアは、タイプ(A)に分類される。次に、各データ・ブロックの最大エクステント・サイズは、タイプ(A)、(B)、(C)別に異なる値に設定される。タイプ(A)のベースビュー・データ・ブロックB[i]の最大エクステント・サイズは一律に19MBに設定される:SEXT1[i]≦19MB。タイプ(A)のディペンデントビュー・データ・ブロックD[i]の最大エクステント・サイズは、上記のシステム・レートRTS2が閾値32Mbps以下である場合は一律に6MBに設定され、閾値32Mbpsを超える場合は一律に8MBに設定される:SEXT2[i]≦6MB、8MB。タイプ(B)のベースビュー・データ・ブロックB[i]の最大エクステント・サイズは7MBに縮小され、ディペンデントビュー・データ・ブロックD[i]の最大エクステント・サイズは3MBに縮小される:SEXT1[i]≦7MB、SEXT2[i]≦3MB。タイプ(C)のベースビュー・データ・ブロックB[i]の最大エクステント・サイズは、タイプ(A)と同じ19MBに設定され、ディペンデントビュー・データ・ブロックD[i]の最大エクステント・サイズは、タイプ(A)よりも小さい6MBに設定される:SEXT1[i]≦19MB、SEXT2[i]≦6MB。
尚、図28の(a)に示されている最大エクステント・サイズの具体的な数値は、平均転送速度の合計に対する閾値=64MBps等、想定されているパラメータの具体的な値に基づいて最適化された一例に過ぎない。以下に説明するそれらの数値の決定方法からも明らかなとおり、それらの数値は、BD−ROMドライブの読み出し速度とジャンプに関する性能、各リード・バッファからデコーダへの平均転送速度とそれらの合計に対する閾値、各AVストリーム・ファイルのシステム・レートとその上限、ファイルDEPに対するシステム・レートの閾値等、各種のパラメータに依存する。更に、最大エクステント・サイズの許容誤差は各種パラメータの変動範囲や設定精度に依存する。当業者であれば、それらの依存関係に基づき、実際に利用可能なリード・バッファの容量に応じて、最大エクステント・サイズ及びその許容誤差を最適化することができるであろう。また、図28の(a)では、ファイルDEPに対するシステム・レートが閾値に等しい場合、いずれのエクステント・ペアもタイプ(A)に分類される。その他に、その場合にも、ロング・ジャンプの直前に読み出されるエクステント・ブロック内の2番目以降のエクステント・ペアがタイプ(B)に分類され、ロング・ジャンプの直後に読み出されるエクステント・ブロック内の先頭のエクステント・ペアがタイプ(C)に分類されてもよい。
図28の(b)は、BD−ROMディスク上でそれぞれ、層境界LBの直前、直後に配置された第1エクステントSSEXTSS[0]と第2エクステントSSEXTSS[1]とを示す模式図である。二つのエクステントSSEXTSS[0]、EXTSS[1]の間は層境界LBによって分離されているので、それらの間ではロング・ジャンプが生じる。その場合、ファイルDEPに対するシステム・レートRTS2が閾値32Mbpsよりも高ければ、第1エクステントSSEXTSS[0]内の2番目以降のエクステント・ペアB[1]、D[1]、B[2]、D[2]はタイプ(B)に分類され、第2エクステントSSEXTSS[1]内の先頭のエクステント・ペアB[3]、D[3]はタイプ(C)に分類される。
図28の(c)は、BD−ROMディスク上でそれぞれ、多重化ストリーム・データ以外のデータの記録領域NAVの直前、直後に配置された第3エクステントSSEXTSS[10]と第4エクステントSSEXTSS[11]とを示す模式図である。図28の(c)では、二つのエクステントSSEXTSS[10]、EXTSS[11]の間を分離している記録領域NAVのセクタ数は40000以下である。その場合、二つのエクステントSSEXTSS[10]、EXTSS[11]間で生じるジャンプはロング・ジャンプではない。従って、ファイルDEPに対するシステム・レートRTS2の値にかかわらず、第3エクステントSSEXTSS[10]内の2番目以降のエクステント・ペアB[11]、D[11]、B[12]、D[12]と、第4エクステントSSEXTSS[11]の先頭のエクステント・ペアB[13]、D[13]とはいずれもタイプ(A)に分類される。一方、その記録領域NAVのセクタ数が40001以上である場合、二つのエクステントSSEXTSS[10]、EXTSS[11]の間で生じるジャンプはロング・ジャンプである。従って、ファイルDEPに対するシステム・レートRTS2が閾値32Mbpsよりも高ければ、図28の(c)とは異なり、第3エクステントSSEXTSS[10]内の2番目以降のエクステント・ペアB[11]、D[11]、B[12]、D[12]はタイプ(B)に分類され、第4エクステントSSEXTSS[11]内の先頭のエクステント・ペアB[13]、D[13]はタイプ(C)に分類される。
図28の(a)に示されているタイプ(A)のデータ・ブロックの最大エクステント・サイズは、次のように決定される。まず、(i+1)番目のエクステント・ペアEXT1[i]、EXT2[i]に対する平均転送速度REXT1[i]、REXT2[i]の合計が閾値64Mbpsに一致する場合を想定する:REXT1[i]+REXT2[i]=64Mbps。その場合、そのエクステント・ペアEXT1[i]、EXT2[i]全体のデータ量は最大である。次に、それらの平均転送速度REXT1、REXT2の様々な組み合わせについて、各データ・ブロックの最大エクステント・サイズmaxSEXT1、maxSEXT2とエクステントATC時間TEXTとが求められる。最大エクステント・サイズmaxSEXT1、maxSEXT2を決定するための条件は、次の三つである:一、条件5として式(10A)が満たされる。ここで、延長時間ΔTは1秒に設定される。二、両方のデータ・ブロック間でエクステントATC時間TEXTが一致する。三、条件2、3がいずれも満たされる。こうして求められた最大エクステント・サイズmaxSEXT1、maxSEXT2のうち、ディペンデントビュー転送速度REXT2がシステム・レートRTS2以下である場合のものであって、かつ最大のものが、実際の最大エクステント・サイズとして選択される。尚、条件5は式(7)又は(10B)で表されてもよい。条件5はその他に、データ・ブロックのサイズが式(8)又は(11)の右辺の上限以下であるという不等式で表されてもよい。
図29は、平均転送速度REXT1、REXT2の組み合わせ別に、各データ・ブロックの最大エクステント・サイズmaxSEXT1、maxSEXT2とエクステントATC時間TEXTとを示す表である。ここで、ファイル2Dに対するシステム・レートRTS1とファイルDEPに対するシステム・レートRTS2とはいずれも48Mbps以下である場合を想定する:RTS1≦48Mbps、RTS2≦48Mbps。例えば、ベースビュー転送速度REXT1[i]が48Mbpsであるとき、式(10A)から、ベースビュー・データ・ブロックの最大エクステント・サイズmaxSEXT1は約19MBであり、そのエクステントATC時間TEXTが約3.2秒であることがわかる。更に、ディペンデントビュー転送速度REXT2[i]が64−48=16Mbpsであるので、それとエクステントATC時間TEXT=約3.2秒との積から、ディペンデントビュー・データ・ブロックの最大エクステント・サイズmaxSEXT2が約6MBであることがわかる。平均転送速度REXT1、REXT2の他の組み合わせについても同様にして、最大エクステント・サイズmaxSEXT1、maxSEXT2が求められる。
ファイルDEPに対するシステム・レートRTS2が閾値32Mbps以下である場合、ディペンデントビュー転送速度REXT2も32Mbps以下である。図29から、各データ・ブロックの最大エクステント・サイズmaxSEXT1、maxSEXT2として、ディペンデントビュー転送速度REXT2≦32Mbpsの範囲での最大値約19MB、約6MBが選択される。一方、システム・レートRTS2が閾値32Mbpsを超えているとき、ディペンデントビュー転送速度REXT2は48Mbpsまで上昇可能である。図29から、各データ・ブロックの最大エクステント・サイズmaxSEXT1、maxSEXT2として、ディペンデントビュー転送速度REXT2≦48Mbpsの範囲での最大値約19MB、約8MBが選択される。
図28の(a)に示されているタイプ(B)のデータ・ブロックの最大エクステント・サイズは、以下のように決定される。まず、式(6)からは次のことが明らかである:ファイルDEPに対するシステム・レートRTS2が上限値48Mbpsに達するときに、RB22212の容量の下限は最大になる。その下限を可能な限り低く抑えるには、ロング・ジャンプの直前に読み出されるエクステント・ブロック内の最後のベースビュー・データ・ブロックのサイズを可能な限り縮小すればよい。そのためには、式(2)−(4)から容易に理解されるように、同じエクステント・ブロック内の2番目以降のデータ・ブロック、すなわちタイプ(B)のデータ・ブロックのサイズSEXT1[i]、SEXT2[i]を全て、可能な限り縮小すればよい。
タイプ(B)のディペンデントビュー・データ・ブロックの最大エクステント・サイズは次のように縮小される。図29の表に示されているように、一つのディペンデントビュー・データ・ブロックEXT2[i]に対する平均転送速度REXT2[i]が上限値48Mbpsに達するとき、同じエクステント・ペアに属するベースビュー・データ・ブロックEXT1[i]の最大エクステント・サイズmaxSEXT1[i]は約3MBである。この値の削減を目的として、タイプ(B)のディペンデントビュー・データ・ブロックの最大エクステント・サイズmaxSEXT2[i]が、図29に示されている値、約8MBよりも縮小される。例えば図28の(a)に示されている表では、その最大エクステント・サイズmaxSEXT2[i]は約3MBに制限される。ここで、同じエクステント・ペアに属するデータ・ブロック間ではエクステントATC時間が同じでなければならない。従って、最大エクステント・サイズが約3MBであるディペンデントビュー・データ・ブロックEXT2[i]に対する平均転送速度REXT2[i]が上限値48Mbpsに達するとき、同じエクステント・ペアに属するベースビュー・データ・ブロックEXT1[i]の最大エクステント・サイズmaxSEXT1[i]は約1MBに制限される。式(5)から明らかなとおり、ロング・ジャンプの直前に読み出されるベースビュー・データ・ブロックのサイズを上記のように約3MBから約1MBまで縮小することにより、RB12211の容量の下限を約1.4MB、削減することができる:(3MB/72Mbps)×48Mbps×(192/188)−(1MB/72Mbps)×48Mbps×(192/188)=2.1MB−0.7MB=1.4MB。
タイプ(B)のベースビュー・データ・ブロックの最大エクステント・サイズは次のように縮小される。(i+2)番目のディペンデントビュー・データ・ブロックEXT2[i+1]のサイズSEXT2[i+1]が約3MBであり、かつ、(i+1)番目のベースビュー・データ・ブロックEXT1[i]に対する平均転送速度REXT1[i]が上限値48Mbpsに達するとき、式(2)の右辺で表される最小エクステント・サイズminSEXT1[i]は約7MBに等しい:48Mbps×(192/188)×3MB/(72Mbps−48Mbps×(192/188))=6.4MB≒7MB。従って、条件2が満たされるように、タイプ(B)のベースビュー・データ・ブロックの最大エクステント・サイズは約7MBに決定される。
図28の(a)に示されているタイプ(C)のデータ・ブロックの最大エクステント・サイズは、以下のように決定される。式(5)、(6)から容易に理解されるように、タイプ(C)のベースビュー・データ・ブロックのサイズSEXT1[・]は、リード・バッファの容量の下限には影響しない。従って、タイプ(C)のベースビュー・データ・ブロックの最大エクステント・サイズは、タイプ(A)のものと等しい。一方、タイプ(C)のディペンデントビュー・データ・ブロックのサイズSEXT2[・]は、RB12211、RB22212のいずれの容量の下限にも影響する。すなわち、各システム・レートRTS1、RTS2が上限値48Mbpsに達するときに、RB12211、RB22212の各容量の下限は最大になる。それらの下限を可能な限り低く抑えるには、タイプ(C)のディペンデントビュー・データ・ブロックのサイズを可能な限り縮小すればよい。具体的には、そのディペンデントビュー・データ・ブロックの最大エクステント・サイズmaxSEXT2[・]が、図29に示されている値、約8MBよりも縮小される。例えば図28の(a)に示されている表では、その最大エクステント・サイズmaxSEXT2[・]は約6MBに制限される。その値は、図29に示されているように、同じエクステント・ペアに属するデータ・ブロックの間で平均転送速度REXT1[・]、REXT2[・]が同じ値、32Mbpsに一致するときでの各データ・ブロックの最大エクステント・サイズに等しい。式(5)と図29とから容易に理解されるように、タイプ(C)のディペンデントビュー・データ・ブロックの最大エクステント・サイズがその値、約6MBを下回るとき、ベースビュー・データ・ブロックに対する平均転送速度は32Mbpsを超えて上昇し得る。従って、タイプ(C)のディペンデントビュー・データ・ブロックの最大エクステント・サイズを約6MBよりも縮小した場合、RB12211の容量の下限はかえって削減されなくなる。それ故、ディペンデントビュー・データ・ブロックの最大エクステント・サイズmaxSEXT2[・]は約6MBに決定される。式(5)、(6)から明らかなとおり、タイプ(C)のディペンデントビュー・データ・ブロックのサイズを上記のように約8MBから約6MBまで縮小することにより、RB12211とRB22212との容量の下限をいずれも、約1.5MB、削減することができる:(8MB/72Mbps)×48Mbps×(192/188)−(6MB/72Mbps)×48Mbps×(192/188)=5.5MB−4MB=1.5MB。
図28の(a)に示されているように、ファイルDEPに対するシステム・レートRTS2が所定の閾値(例えば32Mbps)よりも高く上昇する場合には、タイプ(B)のデータ・ブロックの最大エクステント・サイズは縮小され、システム・レートRTS2がその閾値以下である場合における値(例えば、19MB、6MB)よりも小さい値(例えば、6MB、3MB)に設定される。更に、タイプ(C)のディペンデントビュー・データ・ブロックの最大エクステント・サイズは、タイプ(A)のもの(例えば8MB)よりも小さい値(例えば6MB)に設定される。その結果、BD−ROMディスク101は、式(2)−(4)を満たしたまま、再生装置102にRB12211とRB22212とのいずれの容量の下限をも、許容範囲内に維持させることができる。すなわち、BD−ROMディスク101は、2D再生モードと3D再生モードとのいずれの再生装置102内のリード・バッファにも、アンダーフローを生じさせることなく、その容量を更に削減させることができる。
≪クリップ情報ファイル≫
図30は、第1クリップ情報ファイル(01000.clpi)、すなわち2Dクリップ情報ファイル231のデータ構造を示す模式図である。ディペンデントビュー・クリップ情報ファイル(02000.clpi、03000.clpi)232、233も同様なデータ構造を持つ。以下では、まず、クリップ情報ファイル全般に共通するデータ構造を2Dクリップ情報ファイル231のデータ構造を例に説明する。その後、2Dクリップ情報ファイルとディペンデントビュー・クリップ情報ファイルとのデータ構造上の相違点について説明する。
図30を参照するに、2Dクリップ情報ファイル231は、クリップ情報3010、ストリーム属性情報3020、エントリ・マップ3030、及び3Dメタデータ3040を含む。3Dメタデータ3040はエクステント起点3042を含む。
クリップ情報3010は、図30に示されているように、システム・レート3011、再生開始時刻3012、及び再生終了時刻3013を含む。システム・レート3011は、ファイル2D(01000.m2ts)241に対するシステム・レートRTSを規定する。ここで、図19に示されているように、2D再生モードの再生装置102は、ファイル2D241に属する“TSパケット”を、リード・バッファ1902からシステム・ターゲット・デコーダ1903へ転送する。従って、ファイル2D241では、TSパケットの転送速度がシステム・レートRTS以下に抑えられるように、ソースパケットのATSの間隔が設定されている。再生開始時刻3012は、ファイル2D241の先頭のVAUに割り当てられたPTS、例えば先頭の映像フレームのPTSを示す。再生終了時刻3012は、ファイル2D241の後端のVAUに割り当てられたPTSから更に所定量遅れたSTCの値、例えば最後の映像フレームのPTSに1フレーム当たりの再生時間を加えた値を示す。
ストリーム属性情報3020は、図30に示されているように、ファイル2D241に含まれる各エレメンタリ・ストリームのPID3021とその属性情報3022との間の対応表である。属性情報3022は、ビデオ・ストリーム、オーディオ・ストリーム、PGストリーム、及びIGストリームのそれぞれで異なる。例えばプライマリ・ビデオ・ストリームのPID0x1011に対応付けられた属性情報は、そのビデオ・ストリームの圧縮に利用されたコーデックの種類、そのビデオ・ストリームを構成する各ピクチャの解像度、アスペクト比、及びフレームレートを含む。一方、プライマリ・オーディオ・ストリームのPID0x1100に対応付けられた属性情報は、そのオーディオ・ストリームの圧縮に利用されたコーデックの種類、そのオーディオ・ストリームに含まれるチャンネル数、言語、及びサンプリング周波数を含む。属性情報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クリップ情報ファイル231内のエントリ・マップ3030では、SPNは、ファイル2D241に属するソースパケット群、すなわち、メインTSを格納しているソースパケット群に割り当てられた番号を意味する。従って、エントリ・ポイント3102は、ファイル2D241に含まれる各IピクチャのPTSとアドレス、すなわちSPNとの間の対応関係を表す。
エントリ・ポイント3102は、ファイル2D241内の全てのIピクチャに対して設定されていなくてもよい。但し、IピクチャがGOPの先頭に位置し、かつ、そのIピクチャの先頭を含むTSパケットが2Dエクステントの先頭に位置するときは、そのIピクチャにはエントリ・ポイント3102が設定されなければならない。
図31の(b)は、ファイル2D241に属するソースパケット群3110のうち、エントリ・マップ3030によって各EP_ID3105に対応付けられているものを示す模式図である。図31の(c)は、そのソースパケット群3110に対応するBD−ROMディスク101上のデータ・ブロック群D[n]、B[n](n=0、1、2、3、…)を示す模式図である。再生装置102は、ファイル2D241から2D映像を再生する際にエントリ・マップ3030を利用して、任意のシーンを表すフレームのPTSから、そのフレームを含むソースパケットのSPNを特定する。具体的には、再生開始位置として特定のエントリ・ポイントのPTS、例えばPTS=360000が指定されたとき、再生装置102はまず、エントリ・マップ3030から、そのPTSに対応付けられたSPN=3200を検索する。再生装置102は次に、そのSPNとソースパケット一つ当たりのデータ量192バイトとの積を求め、更に、その積をセクタ一つ当たりのデータ量2048バイトで割ったときの商、SPN×192/2048を求める。図5の(b)、(c)から理解されるとおり、その商は、メインTSのうち、そのSPNが割り当てられたソースパケットよりも前の部分が記録されたセクタの総数に等しい。図31の(b)に示されている例では、その商、3200×192/2048=300は、0から3199までのSPNが割り当てられたソースパケット群3111が記録されたセクタの総数に等しい。再生装置102は続いて、ファイル2D241のファイル・エントリを参照し、2Dエクステント群が記録されたセクタ群の先頭から数えて(上記の総数+1)番目のセクタのLBNを特定する。図31の(c)に示されている例では、2DエクステントEXT2D[0]、EXT2D[1]、EXT2D[2]、…としてアクセス可能なベースビュー・データ・ブロックB[0]、B[1]、B[2]、…が記録されたセクタ群のうち、先頭から数えて301番目のセクタのLBNが特定される。再生装置102はそのLBNをBD−ROMドライブに指定する。それにより、そのLBNのセクタから順にベースビュー・データ・ブロック群がアラインド・ユニット単位で読み出される。再生装置102は更に、最初に読み出されたアラインド・ユニットから、再生開始位置のエントリ・ポイントの示すソースパケットを選択し、それらからIピクチャを抽出して復号する。それ以降、後続のピクチャは、先に復号されたピクチャを利用して順次復号される。こうして、再生装置102はファイル2D241から特定のPTS以降の2D映像を再生できる。
エントリ・マップ3030は更に、早送り再生及び巻戻し再生等の特殊再生の効率的な処理に有利である。例えば2D再生モードの再生装置102は、まずエントリ・マップ3030を参照して、再生開始位置、例えばPTS=360000以降のPTSを含むエントリ・ポイント、EP_ID=2、3、…からSPN=3200、4800、…を順番に読み出す。再生装置102は次にファイル2D241のファイル・エントリを利用して、各SPNに対応するセクタのLBNを特定する。再生装置102は続いて、各LBNをBD−ROMドライブに指定する。それにより、各LBNのセクタからアラインド・ユニットが読み出される。再生装置102は更に各アラインド・ユニットから、各エントリ・ポイントの示すソースパケットを選択し、それらからIピクチャを抽出して復号する。こうして、再生装置102は2Dエクステント群EXT2D[n]自体を解析することなく、ファイル2D241からIピクチャを選択的に再生できる。
[エクステント起点]
図32の(a)は、エクステント起点3042のデータ構造を示す模式図である。図32の(a)を参照するに、「エクステント起点(Extent_Start_Point)」3042はベースビュー・エクステントID(EXT1_ID)3211とSPN3212とを含む。EXT1_ID3211は、第1ファイルSS(01000.ssif)244Aに属する各ベースビュー・データ・ブロックに、先頭から順に割り当てられた通し番号である。SPN3212は各EXT1_ID3211に一つずつ割り当てられ、そのEXT1_ID3211で識別されるベースビュー・データ・ブロックの先端に位置するソースパケットのSPNに等しい。ここで、そのSPNは、第1ファイルSS244Aに属するベースビュー・データ・ブロック群に含まれる各ソースパケットに、先頭から順に割り当てられた通し番号である。
図15に示されているエクステント・ブロック1501−1503では、各ベースビュー・データ・ブロックB[0]、B[1]、B[2]、…はファイル2D241と第1ファイルSS244Aとに共有される。しかし、記録層間の境界等、ロング・ジャンプの必要な箇所に配置されたデータ・ブロック群は一般に、ファイル2D241又は第1ファイルSS244Aのいずれかにのみ属するベースビュー・データ・ブロックを含む(詳細は、実施形態2の説明を参照)。従って、エクステント起点3042の示すSPN3212は、ファイル2D241に属する2Dエクステントの先端に位置するソースパケットのSPNとは一般に異なる。
図32の(b)は、第2クリップ情報ファイル(02000.clpi)、すなわちディペンデントビュー・クリップ情報ファイル232に含まれるエクステント起点3220のデータ構造を示す模式図である。図32の(b)を参照するに、エクステント起点3220は、ディペンデントビュー・エクステントID(EXT2_ID)3221とSPN3222とを含む。EXT2_ID3221は、第1ファイルSS244Aに属する各ディペンデントビュー・データ・ブロックに先頭から順に割り当てられた通し番号である。SPN3222は各EXT2_ID3221に一つずつ割り当てられ、そのEXT2_ID3221で識別されるディペンデントビュー・データ・ブロックの先端に位置するソースパケットのSPNに等しい。ここで、そのSPNは、第1ファイルSS244Aに属するディペンデントビュー・データ・ブロック群に含まれる各ソースパケットに、先頭から順に割り当てられた通し番号である。
図32の(d)は、第1ファイルDEP(02000.m2ts)242に属するディペンデントビュー・エクステントEXT2[0]、EXT2[1]、…と、エクステント起点3220の示すSPN3222との間の対応関係を表す模式図である。図15に示されているように、ディペンデントビュー・データ・ブロックは第1ファイルDEP242と第1ファイルSS244Aとに共有される。従って、図32の(d)に示されているように、エクステント起点3220の示す各SPN3222は、各ライトビュー・エクステントEXT2[0]、EXT2[1]、…の先端に位置するソースパケットのSPNに等しい。
2Dクリップ情報ファイル231のエクステント起点3042と、ディペンデントビュー・クリップ情報ファイル232のエクステント起点3220とは、以下に説明するように、第1ファイルSS244Aから3D映像が再生されるとき、各エクステントSSに含まれるデータ・ブロックの境界の検出に利用される。
図32の(e)は、第1ファイルSS244Aに属するエクステントSSEXTSS[0]とBD−ROMディスク101上のエクステント・ブロックとの間の対応関係を示す模式図である。図32の(e)を参照するに、そのエクステント・ブロックはインターリーブ配置のデータ・ブロック群D[n]、B[n](n=0、1、2、…)を含む。尚、以下の説明はその他の配置でも同様に成立する。そのエクステント・ブロックは一つのエクステントSSEXTSS[0]としてアクセス可能である。更に、そのエクステントSSEXTSS[0]の中で、(n+1)番目のベースビュー・データ・ブロックB[n]に含まれるソースパケットの数は、エクステント起点3042において、EXT1_ID=n+1、nのそれぞれに対応するSPN間の差A(n+1)−Anに等しい。ここで、A0=0とする。一方、ディペンデントビュー・データ・ブロックD[n+1]に含まれるソースパケットの数は、エクステント起点3220において、EXT2_ID=n+1、nのそれぞれに対応するSPN間の差B(n+1)−Bnに等しい。ここで、B0=0とする。
3D再生モードの再生装置102は、第1ファイルSS244Aから3D映像を再生するとき、各クリップ情報ファイル231、232のエントリ・マップとエクステント起点3042、3220とを利用する。それにより、再生装置102は、任意のシーンのライトビューを表すフレームのPTSから、そのフレームの構成に必要なディペンデントビュー・データ・ブロックが記録されたセクタのLBNを特定する。具体的には、再生装置102はまず、例えばディペンデントビュー・クリップ情報ファイル232のエントリ・マップから、そのPTSに対応付けられたSPNを検索する。仮に、そのSPNの示すソースパケットが、第1ファイルDEP242の3番目のディペンデントビュー・エクステントEXT2[2]、すなわちディペンデントビュー・データ・ブロックD[2]に含まれる場合を想定する。再生装置102は次に、ディペンデントビュー・クリップ情報ファイル232のエクステント起点3220の示すSPN3222の中から、目標のSPN以下で最大のもの“B2”と、それに対応するEXT2_ID“2”とを検索する。再生装置102は続いて、2Dクリップ情報ファイル231のエクステント起点3042から、そのEXT2_ID“2”と等しいEXT1_IDに対応するSPN3012の値“A2”を検索する。再生装置102は更に、検索されたSPNの和B2+A2を求める。図32の(e)から理解されるように、その和B2+A2は、エクステントSSEXTSS[0]の中で、3番目のディペンデントビュー・データ・ブロックD[2]よりも前に配置されたソースパケットの総数に等しい。従って、その和B2+A2とソースパケット一つ当たりのデータ量192バイトとの積をセクタ一つ当たりのデータ量2048バイトで割ったときの商(B2+A2)×192/2048は、エクステントSSEXTSS[0]の先頭から3番目のディペンデントビュー・データ・ブロックD[2]の直前までのセクタ数に等しい。この商を利用して第1ファイルSS244Aのファイル・エントリを参照すれば、そのディペンデントビュー・データ・ブロックD[2]の先端が記録されたセクタのLBNを特定することができる。
再生装置102は、上記のようにLBNを特定した後、そのLBNをBD−ROMドライブに指定する。それにより、そのLBNのセクタ以降に記録されたエクステントSSEXTSS[0]の部分、すなわち3番目のライトビュー・データ・ブロックD[2]以降のデータ・ブロック群D[2]、B[2]、D[3]、B[3]、…がアラインド・ユニット単位で読み出される。
再生装置102は更にエクステント起点3042、3220を利用して、読み出されたエクステントSSから、ディペンデントビュー・データ・ブロックとベースビュー・データ・ブロックとを交互に抽出する。例えば、図32の(e)に示されているエクステントSSEXTSS[0]からデータ・ブロック群D[n]、B[n](n=0、1、2、…)が順番に読み出されるときを想定する。再生装置102はまず、エクステントSSEXTSS[0]の先頭からB1個のソースパケットを最初のディペンデントビュー・データ・ブロックD[0]として抽出する。再生装置102は次に、B1番目のソースパケットと、それに続く(A1−1)個のソースパケットとの計A1個のソースパケットを最初のベースビュー・データ・ブロックB[0]として抽出する。再生装置102は続いて、(B1+A1)番目のソースパケットと、それに続く(B2−B1−1)個のソースパケットとの計(B2−B1)個のソースパケットを2番目のディペンデントビュー・データ・ブロックD[1]として抽出する。再生装置102は更に、(A1+B2)番目のソースパケットと、それに続く(A2−A1−1)個のソースパケットとの計(A2−A1)個のソースパケットを2番目のベースビュー・データ・ブロックB[1]として抽出する。それ以降も再生装置102は同様に、読み出されるソースパケットの数からエクステントSS内のデータ・ブロック間の境界を検出して、ディペンデントビューとベースビューとの各データ・ブロックを交互に抽出する。抽出されたベースビュー・データ・ブロックとディペンデントビュー・データ・ブロックとはパラレルにシステム・ターゲット・デコーダに渡されて復号される。
こうして、3D再生モードの再生装置102は第1ファイルSS244Aから特定のPTS以降の3D映像を再生できる。その結果、再生装置102は、BD−ROMドライブの制御に関する上記の利点(A)、(B)を実際に享受できる。
≪ファイル・ベース≫
図32の(c)は、3D再生モードの再生装置102によって第1ファイルSS244Aから抽出されたベースビュー・データ・ブロックB[0]、B[1]、B[2]、…を表す模式図である。図32の(c)を参照するに、それらのベースビュー・データ・ブロックB[n](n=0、1、2、…)に含まれるソースパケット群に、先頭から順にSPNを割り当てたとき、各ベースビュー・データ・ブロックB[n]の先端に位置するソースパケットのSPNは、エクステント起点3042の示すSPN3212に等しい。それらのベースビュー・データ・ブロック群B[n]のように、エクステント起点を利用して一つのファイルSSから抽出されるベースビュー・データ・ブロック群を「ファイル・ベース」という。更に、ファイル・ベースに含まれるベースビュー・データ・ブロックを「ベースビュー・エクステント」という。図32の(e)に示されているように、各ベースビュー・エクステントEXT1[0]、EXT1[1]、…はクリップ情報ファイル内のエクステント起点3042、3220によって参照される。
ベースビュー・エクステントEXT1[n]は2DエクステントEXT2D[n]とベースビュー・データ・ブロックB[n]を共有する。従って、ファイル・ベースはファイル2Dと同じメインTSを含む。しかし、ベースビュー・エクステントEXT1[n]は2DエクステントEXT2D[n]とは異なり、いずれのファイルのファイル・エントリによっても参照されない。上記のとおり、ベースビュー・エクステントEXT1[n]は、クリップ情報ファイル内のエクステント起点を利用して、ファイルSS内のエクステントSSEXTSS[・]から抽出される。このように、ファイル・ベースは本来のファイルとは異なり、ファイル・エントリを含まず、かつ、ベースビュー・エクステントの参照にエクステント起点を必要とする。それらの意味で、ファイル・ベースは「仮想的なファイル」である。特にファイル・ベースはファイルシステムでは認識されず、図2に示されているディレクトリ/ファイル構造には現れない。
図33は、BD−ROMディスク101上に記録された一つのエクステント・ブロック3300と、ファイル2D3310、ファイル・ベース3311、ファイルDEP3312、及びファイルSS3320の各エクステント群との間の対応関係を示す模式図である。図33を参照するに、エクステント・ブロック3300はディペンデントビュー・データ・ブロックD[n]とベースビュー・データ・ブロックB[n]とを含む(n=0、1、2、3、…)。ベースビュー・データ・ブロックB[n]は2DエクステントEXT2D[n]としてファイル2D3310に属する。ディペンデントビュー・データ・ブロックD[n]はディペンデントビュー・エクステントEXT2[n]としてファイルDEP3312に属する。エクステント・ブロック3300の全体が一つのエクステントSSEXTSS[0]としてファイルSS3320に属する。従って、エクステントSSEXTSS[0]は、2DエクステントEXT2D[n]とはベースビュー・データ・ブロックB[n]を共有し、ディペンデントビュー・エクステントEXT2[n]とはディペンデントビュー・データ・ブロックD[n]を共有する。エクステントSSEXTSS[0]は再生装置102に読み込まれた後、ディペンデントビュー・データ・ブロックD[n]とベースビュー・データ・ブロックB[n]とに分離される。それらのベースビュー・データ・ブロックB[n]はベースビュー・エクステントEXT1[n]としてファイル・ベース3311に属する。エクステントSSEXTSS[0]内でのベースビュー・エクステントEXT1[n]とディペンデントビュー・エクステントEXT2[n]との間の境界は、ファイル2D3310とファイルDEP3312とのそれぞれに対応付けられたクリップ情報ファイル内のエクステント起点を利用して特定される。
≪ディペンデントビュー・クリップ情報ファイル≫
ディペンデントビュー・クリップ情報ファイルは、図31、32に示されている2Dクリップ情報ファイルとデータ構造が同様である。従って、以下の説明では、ディペンデントビュー・クリップ情報ファイルと2Dクリップ情報ファイルとの間の相違点に触れ、同様な点についての説明は上記の説明を援用する。
ディペンデントビュー・クリップ情報ファイルは、2Dクリップ情報ファイルとは、主に次の三点で異なる:(i)ストリーム属性情報に条件が課せられている;(ii)エントリ・ポイントに条件が課せられている;(iii)3Dメタデータがオフセット・テーブルを含まない。
(i)ベースビュー・ビデオ・ストリームとディペンデントビュー・ビデオ・ストリームとが、L/Rモードの再生装置102によって3D映像の再生に利用されるものであるとき、図7に示されているとおり、ディペンデントビュー・ビデオ・ストリームはベースビュー・ビデオ・ストリームを利用して圧縮されている。そのとき、ディペンデントビュー・ビデオ・ストリームはベースビュー・ビデオ・ストリームとビデオ・ストリーム属性が等しい。ここで、ベースビュー・ビデオ・ストリームに関するビデオ・ストリーム属性情報は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に含まれる一対のピクチャの一方を含むソースパケット群の先頭にエントリ・ポイントが設定されているときは常に、他方を含むソースパケット群の先頭にもエントリ・ポイントが設定されていなければならない。
図34は、ベースビュー・ビデオ・ストリーム3410とディペンデントビュー・ビデオ・ストリーム3420とに設定されたエントリ・ポイントの例を示す模式図である。各ビデオ・ストリーム3410、3420では、先頭から数えて同じ順番のGOPが同じ再生期間の映像を表す。図34を参照するに、ベースビュー・ビデオ・ストリーム3410では、その先頭のGOPから数えて奇数番目に位置するGOP#1、GOP#3、GOP#5の各先頭にエントリ・ポイント3401B、3403B、3405Bが設定されている。それに併せて、ディペンデントビュー・ビデオ・ストリーム3420でも、その先頭のGOPから数えて奇数番目に位置するGOP#1、GOP#3、GOP#5の各先頭にエントリ・ポイント3401D、3403D、3405Dが設定されている。その場合、再生装置102は、例えばGOP#3から3D映像の再生を開始するとき、対応するエントリ・ポイント3403B、3403DのSPNから、ファイルSS内の再生開始位置のSPNを直ちに算定できる。特にエントリ・ポイント3403B、3403Dがいずれもデータ・ブロックの先端に設定されているとき、図32の(e)から理解されるとおり、エントリ・ポイント3403B、3403DのSPNの和がファイルSS内の再生開始位置のSPNに等しい。図32の(e)の説明で述べたとおり、そのソースパケットの数からは、ファイルSS内の再生開始位置の部分が記録されたセクタのLBNを算定することができる。こうして、3D映像の再生においても、飛び込み再生等、ビデオ・ストリームのランダムアクセスを要する処理の応答速度を向上させることができる。
≪2Dプレイリスト・ファイル≫
図35は、2Dプレイリスト・ファイルのデータ構造を示す模式図である。図2に示されている第1プレイリスト・ファイル(00001.mpls)221はこのデータ構造を持つ。図35を参照するに、2Dプレイリスト・ファイル221はメインパス3501と二つのサブパス3502、3503とを含む。
メインパス3501はプレイアイテム情報(以下、PIと略す。)の配列であり、ファイル2D241の主要な再生経路、すなわち再生対象の部分とその再生順とを規定する。各PIは固有のプレイアイテムID=#N(N=1、2、3、…)で識別される。各PI#Nは主要な再生経路の異なる再生区間を一対のPTSで規定する。その対の一方はその再生区間の開始時刻(In−Time)を表し、他方は終了時刻(Out−Time)を表す。更に、メインパス3501内でのPIの順序は、対応する再生区間の再生経路内での順序を表す。
各サブパス3502、3503はサブプレイアイテム情報(以下、SUB_PIと略す。)の配列であり、ファイル2D241の主要な再生経路に並列に付随可能な再生経路を規定する。その再生経路は、メインパス3501の表すファイル2D241の部分とは別の部分とその再生順、又は、別のファイル2Dに多重化されたストリーム・データの部分とその再生順を示す。そのストリーム・データは、メインパス3501に従ってファイル2D241から再生される2D映像と同時に再生されるべき別の2D映像を表す。その別の2D映像は例えば、ピクチャ・イン・ピクチャ方式における副映像、ブラウザ画面、ポップアップ・メニュー、又は字幕を含む。サブパス3502、3503には2Dプレイリスト・ファイル221への登録順に通し番号“0”、“1”が振られている。その通し番号はサブパスIDとして各サブパス3502、3503の識別に利用される。各サブパス3502、3503では、各SUB_PIが固有のサブプレイアイテムID=#M(M=1、2、3、…)で識別される。各SUB_PI#Mは、再生経路の異なる再生区間を一対のPTSで規定する。その対の一方はその再生区間の再生開始時刻を表し、他方は再生終了時刻を表す。更に、各サブパス3502、3503内でのSUB_PIの順序は、対応する再生区間の再生経路内での順序を表す。
図36は、PI#Nのデータ構造を示す模式図である。図36を参照するに、PI#Nは、参照クリップ情報3601、再生開始時刻(In_Time)3602、再生終了時刻(Out_Time)3603、コネクション・コンディション3604、及びストリーム選択テーブル(以下、STN(Stream Number)テーブルと略す。)3605を含む。参照クリップ情報3601は、2Dクリップ情報ファイル231を識別するための情報である。再生開始時刻3602と再生終了時刻3603とは、ファイル2D241の再生対象部分の先端と後端との各PTSを示す。コネクション・コンディション3604は、再生開始時刻3602と再生終了時刻3603とによって規定された再生区間での映像を、一つ前のPI#(N−1)によって規定された再生区間での映像に接続するときの条件を規定する。STNテーブル3605は、再生開始時刻3602から再生終了時刻3603までの間に、再生装置102内のデコーダによってファイル2D241から選択可能なエレメンタリ・ストリームのリストを表す。
SUB_PIのデータ構造は、図36に示されているPIのデータ構造と、参照クリップ情報、再生開始時刻、及び再生終了時刻を含む点で共通する。特にSUB_PIの再生開始時刻と再生終了時刻とは、PIのそれらと同じ時間軸上の値で表される。SUB_PIは更に「SPコネクション・コンディション」というフィールドを含む。SPコネクション・コンディションはPIのコネクション・コンディションと同じ意味を持つ。
[コネクション・コンディション]
コネクション・コンディション(以下、CCと略す。)3604は、例えば、“1”、“5”、“6”の三種類の値を取り得る。CC3604が“1”であるとき、PI#Nによって規定されるファイル2D241の部分から再生される映像は、直前のPI#(N−1)によって規定されるファイル2D241の部分から再生される映像とは必ずしもシームレスに接続されなくてもよい。一方、CC3604が“5”又は“6”であるとき、それら両方の映像が必ずシームレスに接続されなければならない。
図37の(a)、(b)はそれぞれ、CCが“5”、“6”であるときに接続されるべき二つの再生区間PI#(N−1)、PI#Nの間の関係を示す模式図である。ここで、PI#(N−1)はファイル2D241の第1部分3701を規定し、PI#Nはファイル2D241の第2部分3702を規定する。図37の(a)を参照するに、CCが“5”であるとき、2つのPI#(N−1)、PI#Nの間でSTCが途切れていても良い。すなわち、第1部分3701の後端のPTS#1と第2部分3702の先端のPTS#2とは不連続であってもよい。但し、いくつかの制約条件が満たされねばならない。例えば、第1部分3701に続けて第2部分3702がデコーダに供給された際にそのデコーダが復号処理をスムーズに持続できるように、各部分3701、3702は作成されていなければならない。更に、第1部分3701に含まれるオーディオ・ストリームの最後のフレームは、第2部分3702に含まれるオーディオ・ストリームの先頭フレームと重複させなければならない。一方、図37の(b)を参照するに、CCが“6”であるとき、第1部分3701と第2部分3702とは、デコーダの復号処理上、一連の部分として扱えるものでなければならない。すなわち、第1部分3701と第2部分3702との間では、STCとATCとがいずれも連続でなければならない。同様に、SPコネクション・コンディションが“5”又は“6”であるとき、隣接する2つのSUB_PIによって規定されるファイル2Dの部分間では、STCとATCとがいずれも連続でなければならない。
[STNテーブル]
図36を再び参照するに、STNテーブル3605はストリーム登録情報の配列である。「ストリーム登録情報」とは、再生開始時刻3602から再生終了時刻3603までの間にメインTSから再生対象として選択可能なエレメンタリ・ストリームを個別に示す情報である。ストリーム番号(STN)3606は、ストリーム登録情報に個別に割り当てられた通し番号であり、再生装置102によって各エレメンタリ・ストリームの識別に利用される。STN3606は更に、同じ種類のエレメンタリ・ストリームの間では選択の優先順位を表す。ストリーム登録情報は、ストリーム・エントリ3609とストリーム属性情報3610と含む。ストリーム・エントリ3609は、ストリーム・パス情報3607とストリーム識別情報3608とを含む。ストリーム・パス情報3607は、選択対象のエレメンタリ・ストリームが属するファイル2Dを示す情報である。例えばストリーム・パス情報3607が“メインパス”を示すとき、そのファイル2Dは、参照クリップ情報3601の示す2Dクリップ情報ファイルに対応するものである。一方、ストリーム・パス情報3607が“サブパスID=1”を示すとき、選択対象のエレメンタリ・ストリームが属するファイル2Dは、サブパスID=1のサブパスに含まれるSUB_PIの参照クリップ情報が示す2Dクリップ情報ファイルに対応するものである。そのSUB_PIの規定する再生開始時刻又は再生終了時刻のいずれかは、STNテーブル3605を含むPIの規定する再生開始時刻3602から再生終了時刻3603までの期間に含まれる。ストリーム識別情報3608は、ストリーム・パス情報3607によって特定されるファイル2Dに多重化されているエレメンタリ・ストリームのPIDを示す。このPIDの示すエレメンタリ・ストリームが再生開始時刻3602から再生終了時刻3603までの間に選択可能である。ストリーム属性情報3610は各エレメンタリ・ストリームの属性情報を表す。例えば、オーディオ・ストリーム、PGストリーム、及びIGストリームの各属性情報は言語の種類を示す。
[2Dプレイリスト・ファイルに従った2D映像の再生]
図38は、2Dプレイリスト・ファイル(00001.mpls)221の示すPTSと、ファイル2D(01000.m2ts)241から再生される部分との間の対応関係を示す模式図である。図38を参照するに、2Dプレイリスト・ファイル221のメインパス3501では、PI#1は、再生開始時刻IN1を示すPTS#1と、再生終了時刻OUT1を示すPTS#2とを規定する。PI#1の参照クリップ情報は2Dクリップ情報ファイル(01000.clpi)231を示す。再生装置102は、2Dプレイリスト・ファイル221に従って2D映像を再生するとき、まずPI#1からPTS#1、#2を読み出す。再生装置102は次に、2Dクリップ情報ファイル231のエントリ・マップを参照して、PTS#1、#2に対応するファイル2D241内のSPN#1、#2を検索する。再生装置102は続いて、SPN#1、#2から、それぞれに対応するセクタ数を算定する。再生装置102は更にそれらのセクタ数とファイル2D241のファイル・エントリとを利用して、再生対象の2Dエクステント群EXT2D[0]、…、EXT2D[n]が記録されたセクタ群P1の先端のLBN#1と後端のLBN#2とを特定する。セクタ数の算定とLBNの特定とは、図31を用いて説明したとおりである。再生装置102は最後に、LBN#1からLBN#2までの範囲をBD−ROMドライブ121に指定する。それにより、その範囲のセクタ群P1から、2Dエクステント群EXT2D[0]、…、EXT2D[n]に属するソースパケット群が読み出される。同様に、PI#2の示すPTS#3、#4の対は、まず2Dクリップ情報ファイル231のエントリ・マップを利用してSPN#3、#4の対に変換される。次に、ファイル2D241のファイル・エントリを利用して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プレイリスト・ファイル221のメインパス3501に従って、ファイル2D241から2D映像を再生できる。
2Dプレイリスト・ファイル221はエントリ・マーク3801を含んでもよい。エントリ・マーク3801は、メインパス3501のうち、実際に再生が開始されるべき時点を示す。例えば図38に示されているように、PI#1に対して複数のエントリ・マーク3801が設定されてもよい。エントリ・マーク3801は特に頭出し再生において、再生開始位置の検索に利用される。例えば2Dプレイリスト・ファイル221が映画タイトルの再生経路を規定するとき、エントリ・マーク3801は各チャプタの先頭に付与される。それにより、再生装置102はその映画タイトルをチャプタごとに再生できる。
≪3Dプレイリスト・ファイル≫
図39は、3Dプレイリスト・ファイルのデータ構造を示す模式図である。図2に示されている第2プレイリスト・ファイル(00002.mpls)222はこのデータ構造を持つ。第2プレイリスト・ファイル(00003.mpls)223も同様である。図39を参照するに、3Dプレイリスト・ファイル222は、メインパス3901、サブパス3902、及び拡張データ3903を含む。
メインパス3901は、図3の(a)に示されているメインTSの再生経路を規定する。従って、メインパス3901は、図34に示されている2Dプレイリスト・ファイル221のメインパス3501と実質的に等しい。すなわち、2D再生モードの再生装置102は、3Dプレイリスト・ファイル222のメインパス3901に従ってファイル2D241から2D映像を再生できる。一方、メインパス3901は、図35に示されているメインパス3501とは次の点で異なる:各PIのSTNテーブルは、いずれかのグラフィックス・ストリームのPIDに一つのSTNを対応付けている際には更に、そのSTNに一つのオフセット・シーケンスIDを割り当てている。
サブパス3902は、図3の(b)、(c)に示されているサブTSの再生経路、すなわち第1ファイルDEP242又は第2ファイルDEP243のいずれかの再生経路を規定する。サブパス3902のデータ構造は、図35に示されている2Dプレイリスト・ファイル241のサブパス3502、3503のデータ構造と同様である。従って、その同様なデータ構造の詳細、特にSUB_PIのデータ構造の詳細についての説明は、図35を用いた説明を援用する。
サブパス3902のSUB_PI#N(N=1、2、3、…)はメインパス3901のPI#Nと一対一に対応する。更に、各SUB_PI#Nの規定する再生開始時刻と再生終了時刻とはそれぞれ、対応するPI#Nの規定する再生開始時刻と再生終了時刻とに等しい。サブパス3902はその上、サブパス・タイプ3910を含む。「サブパス・タイプ」は一般に、メインパスとサブパスとの間で再生処理が同期すべきか否かを示す。3Dプレイリスト・ファイル222では特に、サブパス・タイプ3910が3D再生モードの種類、すなわち、サブパス3902に従って再生されるべきディペンデントビュー・ビデオ・ストリームの種類を示す。図39では、サブパス・タイプ3910は、その値が「3D・L/R」であるので、3D再生モードがL/Rモードであること、すなわち、ライトビュー・ビデオ・ストリームが再生対象であることを示す。一方、サブパス・タイプ3910は、その値が「3Dデプス」であるとき、3D再生モードがデプス・モードであること、すなわち、デプスマップ・ストリームが再生対象であることを示す。3D再生モードの再生装置102は、サブパス・タイプ3910の値が「3D・L/R」又は「3Dデプス」であることを検出したとき、メインパス3901に従った再生処理と、サブパス3902に従った再生処理とを同期させる。
拡張データ3903は、3D再生モードの再生装置102によってのみ解釈される部分であり、2D再生モードの再生装置102には無視される。拡張データ3903は特に、拡張ストリーム選択テーブル3930を含む。「拡張ストリーム選択テーブル(STN_table_SS)」(以下、STNテーブルSSと略す。)は、3D再生モードにおいて、メインパス3501内の各PIの示すSTNテーブルに追加されるべきストリーム登録情報の配列である。このストリーム登録情報は、サブTSから再生対象として選択可能なエレメンタリ・ストリームを示す。
[STNテーブル]
図40は、3Dプレイリスト・ファイル222のメインパス3901の含むSTNテーブル4005を示す模式図である。図40を参照するに、“5”から“11”までのSTN4006が割り当てられたストリーム識別情報4008は、PGストリーム又はIGストリームのPIDを示す。その場合、同じSTNが割り当てられたストリーム属性情報4010は、参照オフセットID(stream_ref_offset_id)4001を含む。ファイルDEP242では、図11に示されているように、各ビデオ・シーケンスのVAU#1にオフセット・メタデータ1110が配置されている。参照オフセットID4001は、そのオフセット・メタデータ1110の含むオフセット・シーケンスID1112のいずれかに等しい。すなわち、参照オフセットID4001は、そのオフセット・メタデータ1110の含む複数のオフセット・シーケンスの中で、“5”から“11”までの各STNに対応付けられるべきオフセット・シーケンスを規定する。
[STNテーブルSS]
図41は、STNテーブルSS4030のデータ構造を示す模式図である。図41を参照するに、STNテーブルSS4030はストリーム登録情報列4101、4102、4103、…、を含む。ストリーム登録情報列4101、4102、4103、…、はメインパス4001内のPI#1、#2、#3、…、に個別に対応する。3D再生モードの再生装置102はそれらのストリーム登録情報列4101、4102、4103を、対応する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プレーン・モード」では、例えば図3の(b)、(c)に示されているように、サブTSがベースビューとディペンデントビューとのグラフィックス・ストリームを両方含むとき、再生装置102が各グラフィックス・ストリームからレフトビューとライトビューとのグラフィックス・プレーンを復号して交互に出力する。「1プレーン+オフセット・モード」では、再生装置102がオフセット制御により、メインTS内のグラフィックス・ストリームからレフトビューとライトビューとのグラフィックス・プレーンの対を生成して交互に出力する。いずれのモードでも表示装置103の画面にはレフトビューとライトビューとのグラフィックス・プレーンが交互に表示されるので、視聴者にはそれらが3Dグラフィックス映像として見える。「1プレーン+ゼロ・オフセット・モード」では、再生装置102が、動作モードを3D再生モードに維持したまま、オフセット制御を一時的に停止させ、メインTS内のグラフィックス・ストリームから復号されたグラフィックス・プレーンを一フレーム当たり二回ずつ出力する。従って、表示装置103の画面には、レフトビューとライトビューとのいずれかのグラフィックス・プレーンしか表示されないので、視聴者にはそれらが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、及び言語等のストリーム属性を同一に維持できる。
ディペンデントビュー・ビデオ・ストリームのストリーム登録情報列4112は、一般に複数のストリーム登録情報(SS_dependet_view_block)4120を含む。それらは、対応するPI内のストリーム登録情報のうち、ベースビュー・ビデオ・ストリームを示すものと同数である。各ストリーム登録情報4120は、STN4121、ストリーム・エントリ4122、及びストリーム属性情報4123を含む。STN4121は、ストリーム登録情報4120に個別に割り当てられた通し番号であり、対応するPI内の組み合わせ対象のストリーム登録情報のSTNと等しい。ストリーム・エントリ4122は、サブパスID参照情報(ref_to_Subpath_id)4131、ストリーム・ファイル参照情報(ref_to_subClip_entry_id)4132、及びPID(ref_to_stream_PID_subclip)4133を含む。サブパスID参照情報4131は、ディペンデントビュー・ビデオ・ストリームの再生経路を規定するサブパスのサブパスIDを示す。ストリーム・ファイル参照情報4132は、そのディペンデントビュー・ビデオ・ストリームが格納されたファイルDEPを識別するための情報である。PID4133は、そのディペンデントビュー・ビデオ・ストリームのPIDである。ストリーム属性情報4123は、そのディペンデントビュー・ビデオ・ストリームの属性、例えば、フレームレート、解像度、及びビデオ・フォーマットを含む。特にそれらは、対応するPI内の組み合わせ対象のストリーム登録情報の示すベースビュー・ビデオ・ストリームのものと共通である。
PGストリームのストリーム登録情報列4113は、一般に複数のストリーム登録情報4140を含む。それらは、対応するPI内のストリーム登録情報のうち、PGストリームを示すものと同数である。各ストリーム登録情報4140は、STN4141、立体視フラグ(is_SS_PG)4142、ベースビュー・ストリーム・エントリ(stream_entry_for_base_view)4143、ディペンデントビュー・ストリーム・エントリ(stream_entry_for_depentdent_view)4144、及びストリーム属性情報4145を含む。STN4141は、ストリーム登録情報4140に個別に割り当てられた通し番号であり、対応するPI内の組み合わせ対象のストリーム登録情報のSTNと等しい。立体視フラグ4142は、「ベースビュー及びディペンデントビュー(例えば、レフトビュー及びライトビュー)の両方のPGストリームがBD−ROMディスク101に記録されているか否か」を示す。立体視フラグ4142がオンであるとき、サブTSには両方のPGストリームが含まれている。従って、ベースビュー・ストリーム・エントリ4143、ディペンデントビュー・ストリーム・エントリ4144、及びストリーム属性情報4145のいずれのフィールドも再生装置102によって読み出される。立体視フラグ4142がオフであるとき、それらのフィールド4143−4145はいずれも再生装置102によって無視される。ベースビュー・ストリーム・エントリ4143とディペンデントビュー・ストリーム・エントリ4144とはそれぞれ、サブパスID参照情報4151、ストリーム・ファイル参照情報4152、及びPID4053を含む。サブパスID参照情報4151は、ベースビューとディペンデントビューとの各PGストリームの再生経路を規定するサブパスのサブパスIDを示す。ストリーム・ファイル参照情報4152は、各PGストリームが格納されたファイルDEPを識別するための情報である。PID4153は各PGストリームのPIDである。ストリーム属性情報4145は各PGストリームの属性、例えば言語の種類を含む。IGストリームのストリーム登録情報列4114も同様なデータ構造を持つ。
[3Dプレイリスト・ファイルに従った3D映像の再生]
図42は、3Dプレイリスト・ファイル(00002.mpls)222の示すPTSと、第1ファイルSS(01000.ssif)244Aから再生される部分との間の対応関係を示す模式図である。図42を参照するに、3Dプレイリスト・ファイル222のメインパス3901では、PI#1は、再生開始時刻IN1を示すPTS#1と、再生終了時刻OUT1を示すPTS#2とを規定する。PI#1の参照クリップ情報は2Dクリップ情報ファイル(01000.clpi)231を示す。サブパス3902では、SUB_PI#1が、PI#1と同じPTS#1、#2を規定する。SUB_PI#1の参照クリップ情報はディペンデントビュー・クリップ情報ファイル(02000.clpi)232を示す。
再生装置102は3Dプレイリスト・ファイル222に従って3D映像を再生するとき、まずPI#1とSUB_PI#1とからPTS#1、#2を読み出す。再生装置102は次に2Dクリップ情報ファイル231のエントリ・マップを参照し、PTS#1、#2に対応するファイル2D241内のSPN#1、#2を検索する。それと並行して、再生装置102はディペンデントビュー・クリップ情報ファイル232のエントリ・マップを参照し、PTS#1、#2に対応する第1ファイルDEP242内のSPN#11、#12を検索する。再生装置102は続いて、図32の(e)の説明で述べたように、各クリップ情報ファイル231、232のエクステント起点3042、3220を利用して、第1ファイルSS244Aの先頭から再生開始位置までのソースパケット数SPN#21をSPN#1、#11から算定する。再生装置102は同様に、第1ファイルSS244Aの先頭から再生終了位置までのソースパケット数SPN#22をSPN#2、#12から算定する。再生装置102は更にSPN#21、#22のそれぞれに対応するセクタ数を算定する。再生装置102は続いて、それらのセクタ数と第1ファイルSS244Aのファイル・エントリとを利用して、再生対象のエクステントSS群EXTSS[0]、…、EXTSS[n]が記録されたセクタ群P11の先端のLBN#1と後端のLBN#2とを特定する。セクタ数の算定とLBNの特定とは、図32の(e)の説明で述べたものと同様である。再生装置102は最後に、LBN#1からLBN#2までの範囲をBD−ROMドライブ121に指定する。それにより、その範囲のセクタ群P11から、エクステントSS群EXTSS[0]、…、EXTSS[n]に属するソースパケット群が読み出される。同様に、PI#2とSUB_PI#2との示すPTS#3、#4の対は、まずクリップ情報ファイル231、232の各エントリ・マップを利用してSPN#3、#4の対とSPN#13、#14の対とに変換される。次に、SPN#3、#13からは第1ファイルSS244Aの先頭から再生開始位置までのソースパケット数SPN#23が算定され、SPN#4、#14からは第1ファイルSS244Aの先頭から再生終了位置までのソースパケット数SPN#24が算定される。続いて、第1ファイルSS244Aのファイル・エントリを利用して、SPN#23、#24の対がLBN#3、#4の対に変換される。更に、LBN#3からLBN#4までの範囲のセクタ群P12から、エクステントSS群に属するソースパケット群が読み出される。
上記の読み出し処理と並行して、再生装置102は、図32の(e)の説明で述べたように各クリップ情報ファイル231、232のエクステント起点3042、3220を利用して、各エクステントSSからベースビュー・エクステントとディペンデントビュー・エクステントとを抽出して、パラレルに復号する。こうして、再生装置102は、3Dプレイリスト・ファイル222に従って第1ファイルSS244Aから3D映像を再生できる。
≪インデックス・ファイル≫
図43は、図2に示されているインデックス・ファイル(index.bdmv)211のデータ構造を示す模式図である。図43を参照するに、インデックス・ファイル211は、インデックス・テーブル4310、3D存在フラグ4320、及び2D/3Dお好みフラグ4330を含む。
インデックス・テーブル4310は、項目「ファーストプレイ」4301、「トップメニュー」4302、及び「タイトルk」4303(k=1、2、…、n:文字nは1以上の整数を表す。)を含む。各項目には、ムービーオブジェクトMVO−2D、MVO−3D、…、又はBD−JオブジェクトBDJO−2D、BDJO−3D、…のいずれかが対応付けられている。ユーザの操作又はアプリケーション・プログラムによってタイトル又はメニューが呼び出される度に、再生装置102の制御部は、インデックス・テーブル4310の対応する項目を参照する。制御部は更に、その項目に対応付けられているオブジェクトをBD−ROMディスク101から呼び出し、それに従って様々な処理を実行する。具体的には、項目「ファーストプレイ」4301には、BD−ROMディスク101がBD−ROMドライブ121へ挿入された時に呼び出されるべきオブジェクトが指定されている。項目「トップメニュー」4302には、例えばユーザの操作で「メニューに戻れ」というコマンドが入力された時に表示装置103にメニューを表示させるためのオブジェクトが指定されている。項目「タイトルk」4303には、BD−ROMディスク101上のコンテンツを構成するタイトルが個別に割り当てられている。例えばユーザの操作によって再生対象のタイトルが指定されたとき、そのタイトルが割り当てられている項目「タイトルk」には、そのタイトルに対応するAVストリーム・ファイルから映像を再生するためのオブジェクトが指定されている。
図43に示されている例では、項目「タイトル1」と項目「タイトル2」とが2D映像のタイトルに割り当てられている。項目「タイトル1」に対応付けられているムービーオブジェクトMVO−2Dは、2Dプレイリスト・ファイル(00001.mpls)221を用いた2D映像の再生処理に関する命令群を含む。再生装置102によって項目「タイトル1」が参照されたとき、そのムービーオブジェクトMVO−2Dに従い、2Dプレイリスト・ファイル221がBD−ROMディスク101から読み出され、それに規定された再生経路に沿って2D映像の再生処理が実行される。項目「タイトル2」に対応付けられているBD−JオブジェクトBDJO−2Dは、2Dプレイリスト・ファイル221を用いた2D映像の再生処理に関するアプリケーション管理テーブルを含む。再生装置102によって項目「タイトル2」が参照されたとき、そのBD−JオブジェクトBDJO−2D内のアプリケーション管理テーブルに従ってJARファイル261からJavaアプリケーション・プログラムが呼び出されて実行される。それにより、2Dプレイリスト・ファイル221がBD−ROMディスク101から読み出され、それに規定された再生経路に沿って2D映像の再生処理が実行される。
図43に示されている例では更に、項目「タイトル3」と項目「タイトル4」とが3D映像のタイトルに割り当てられている。項目「タイトル3」に対応付けられているムービーオブジェクトMVO−3Dは、2Dプレイリスト・ファイル221を用いた2D映像の再生処理に関する命令群に加え、3Dプレイリスト・ファイル(00002.mpls)222、(00003.mpls)223のいずれかを用いた3D映像の再生処理に関する命令群を含む。項目「タイトル4」に対応付けられているBD−JオブジェクトBDJO−3Dでは、アプリケーション管理テーブルが、2Dプレイリスト・ファイル221を用いた2D映像の再生処理に関するJavaアプリケーション・プログラムに加え、3Dプレイリスト・ファイル222、223のいずれかを用いた3D映像の再生処理に関するJavaアプリケーション・プログラムを規定する。
3D存在フラグ4320は、BD−ROMディスク101に3D映像コンテンツが記録されているか否かを示すフラグである。再生装置102は、BD−ROMドライブ121にBD−ROMディスク101が挿入されたとき、まず、その3D存在フラグ4320をチェックする。3D存在フラグ4320がオフである場合、再生装置102は3D再生モードを選択する必要がない。従って、再生装置102は表示装置103に対してHDMI認証を行うことなく、2D再生モードに速やかに移行できる。ここで、「HDMI認証」とは次の処理をいう:再生装置102は、HDMIケーブル122を通して表示装置103との間でCECメッセージを交換して、3D映像の再生に対応可能か否か等を表示装置103に問い合わせる。HDMI認証がスキップされることにより、BD−ROMディスク101の挿入から2D映像の再生開始までの時間が短縮される。
2D/3Dお好みフラグ4330は、再生装置と表示装置とが共に2D映像と3D映像とのいずれの再生にも対応可能であるときに、3D映像の再生を優先すべきか否かを指定するフラグである。2D/3Dお好みフラグ4330はコンテンツ・プロバイダによって設定される。再生装置102は、BD−ROMディスク101の3D存在フラグ4320がオンであるとき、続いて2D/3Dお好みフラグ4330を更にチェックする。2D/3Dお好みフラグ4330がオンである場合、再生装置102は、ユーザに再生モードを選択させることなく、HDMI認証を行い、その結果に依って2D再生モードと3D再生モードとのいずれかで動作する。すなわち、再生装置102は再生モードの選択画面を表示しない。従って、HDMI認証の結果、表示装置103が3D映像の再生に対応可能であれば、再生装置102は3D再生モードで起動できる。それにより、フレームレートの切り換え等、2D再生モードから3D再生モードへの移行処理に起因する起動の遅れを回避することができる。
[3D映像タイトルの選択時でのプレイリスト・ファイルの選択]
図43に示されている例では、再生装置102は、インデックス・テーブル4310の項目「タイトル3」を参照したとき、ムービーオブジェクトMVO−3Dに従って、まず次の判別処理を行う:(1)3D存在フラグ4320がオンかオフか、(2)再生装置102自身が3D映像の再生に対応しているか否か、(3)2D/3Dお好みフラグ4330がオンかオフか、(4)ユーザが3D再生モードを選択しているか否か、(5)表示装置103が3D映像の再生に対応しているか否か、及び(6)再生装置102の3D再生モードがL/Rモードとデプス・モードとのいずれであるか。再生装置102は次に、それらの判別結果に依って、いずれかのプレイリスト・ファイル221−223を再生対象として選択する。一方、再生装置102は項目「タイトル4」を参照したとき、BD−JオブジェクトBDJO−3D内のアプリケーション管理テーブルに従ってJARファイル261からJavaアプリケーション・プログラムを呼び出して実行する。それにより、まず上記の判別処理(1)−(6)が行われ、次にその判別結果に依って、プレイリスト・ファイルの選択が行われる。
図44は、上記の判別処理(1)−(6)を利用して再生対象のプレイリスト・ファイルを選択する処理のフローチャートである。ここで、その選択処理の前提として、再生装置102が第1フラグと第2フラグとを含むときを想定する。第1フラグは、再生装置102が3D映像の再生に対応可能であるか否かを示す。例えば第1フラグが“0”であるとき、再生装置102は2D映像の再生のみに対応可能であり、“1”であるとき、3D映像の再生にも対応可能である。第2フラグは、3D再生モードがL/Rモードとデプス・モードとのいずれであるかを示す。例えば第2フラグが“0”であるとき、3D再生モードはL/Rモードであり、“1”であるとき、デプス・モードである。更に、3D存在フラグ4320と2D/3Dお好みフラグ4330とのそれぞれがオンであるときの値を“1”とし、オフであるときの値を“0”とする。
ステップS4401では、再生装置102は3D存在フラグ4320の値をチェックする。その値が“1”であるとき、処理はステップS4402へ進む。その値が“0”であるとき、処理はステップS4407へ進む。
ステップS4402では、再生装置102は第1フラグの値をチェックする。その値が“1”であるとき、処理はステップS4403へ進む。その値が“0”であるとき、処理はステップS4407へ進む。
ステップS4403では、再生装置102は2D/3Dお好みフラグ4330の値をチェックする。その値が“0”であるとき、処理はステップS4404へ進む。その値が“1”であるとき、処理はステップS4405へ進む。
ステップS4404では、再生装置102は表示装置103にメニューを表示させて、ユーザに2D再生モードと3D再生モードとのいずれかを選択させる。ユーザがリモコン105等を操作して3D再生モードを選択したとき、処理はステップS4405へ進み、2D再生モードを選択したとき、処理はステップS4407へ進む。
ステップS4405では、再生装置102はHDMI認証を行い、表示装置103が3D映像の再生に対応しているか否かチェックする。具体的には、再生装置102はHDMIケーブル122を通して表示装置103との間でCECメッセージを交換し、表示装置103が3D映像の再生に対応しているか否かを表示装置103に問い合わせる。表示装置103が3D映像の再生に対応しているとき、処理はステップS4406へ進む。表示装置103が3D映像の再生に対応していないとき、処理はステップS4407へ進む。
ステップS4406では、再生装置102は第2フラグの値をチェックする。その値が“0”であるとき、処理はステップS4408へ進む。その値が“1”であるとき、処理はステップS4409へ進む。
ステップS4407では、再生装置102は2Dプレイリスト・ファイル221を再生対象として選択する。尚、そのとき、再生装置102は表示装置103に、3D映像の再生が選択されなかった理由を表示させてもよい。その後、処理は終了する。
ステップS4408では、再生装置102はL/Rモード用の3Dプレイリスト・ファイル222を再生対象として選択する。その後、処理は終了する。
ステップS4409では、再生装置102はデプス・モード用の3Dプレイリスト・ファイル222を再生対象として選択する。その後、処理は終了する。
<2D再生装置の構成>
2D再生モードの再生装置102はBD−ROMディスク101から2D映像コンテンツを再生するとき、2D再生装置として動作する。図45は、2D再生装置4500の機能ブロック図である。図45を参照するに、2D再生装置4500は、BD−ROMドライブ4501、再生部4502、及び制御部4503を含む。再生部4502は、リード・バッファ4521、システム・ターゲット・デコーダ4523、及びプレーン加算部4524を含む。制御部4503は、動的シナリオ・メモリ4531、静的シナリオ・メモリ4532、ユーザイベント処理部4533、プログラム実行部4534、再生制御部4535、及びプレーヤ変数記憶部4536を含む。再生部4502と制御部4503とは、互いに異なる集積回路に実装されている。その他に、両者が単一の集積回路に統合されていてもよい。
BD−ROMドライブ4501は、内部にBD−ROMディスク101が挿入されたとき、そのディスク101にレーザ光を照射してその反射光の変化を検出する。更に、その反射光の光量の変化から、ディスク101に記録されたデータを読み取る。具体的には、BD−ROMドライブ4501は光ピックアップ、すなわち光学ヘッドを備えている。その光学ヘッドは、半導体レーザ、コリメータ・レンズ、ビーム・スプリッタ、対物レンズ、集光レンズ、及び光検出器を含む。半導体レーザから出射された光ビームは、コリメータ・レンズ、ビーム・スプリッタ、及び対物レンズを順に通ってディスク101の記録層に集められる。集められた光ビームはその記録層で反射/回折される。その反射/回折光は、対物レンズ、ビーム・スプリッタ、及び集光レンズを通って光検出器に集められる。光検出器は、その集光量に応じたレベルの再生信号を生成する。更に、その再生信号からデータが復調される。
BD−ROMドライブ4501は、再生制御部4535からの要求に従ってBD−ROMディスク101からデータを読み出す。そのデータのうち、ファイル2Dのエクステント、すなわち2Dエクステントはリード・バッファ4521へ転送され、動的シナリオ情報は動的シナリオ・メモリ4531へ転送され、静的シナリオ情報は静的シナリオ・メモリ4532へ転送される。「動的シナリオ情報」は、インデックス・ファイル、ムービーオブジェクト・ファイル、及びBD−Jオブジェクト・ファイルを含む。「静的シナリオ情報」は2Dプレイリスト・ファイルと2Dクリップ情報ファイルとを含む。
リード・バッファ4521、動的シナリオ・メモリ4531、及び静的シナリオ・メモリ4532はいずれもバッファ・メモリである。リード・バッファ4521としては再生部4502内のメモリ素子が利用され、動的シナリオ・メモリ4531及び静的シナリオ・メモリ4532としては制御部4403内のメモリ素子が利用される。その他に、単一のメモリ素子の異なる領域が、それらのバッファ・メモリ4521、4531、4532の一部又は全部として利用されてもよい。リード・バッファ4521は2Dエクステントを格納し、動的シナリオ・メモリ4531は動的シナリオ情報を格納し、静的シナリオ・メモリ4532は静的シナリオ情報を格納する。
システム・ターゲット・デコーダ4523は、リード・バッファ4521から2Dエクステントをソースパケット単位で読み出して多重分離処理を行い、分離された各エレメンタリ・ストリームに対して復号処理を行う。ここで、各エレメンタリ・ストリームの復号に必要な情報、例えばコーデックの種類及びストリームの属性は予め、再生制御部4535からシステム・ターゲット・デコーダ4523へ送られている。システム・ターゲット・デコーダ4523は更に、復号後のプライマリ・ビデオ・ストリーム、セカンダリ・ビデオ・ストリーム、IGストリーム、及びPGストリーム内の各VAUを、主映像プレーン、副映像プレーン、IGプレーン、及びPGプレーンに変換してプレーン加算部4524へ送出する。一方、システム・ターゲット・デコーダ4523は、復号後のプライマリ・オーディオ・ストリームとセカンダリ・オーディオ・ストリームとをミキシングして、表示装置103の内蔵スピーカ103A等、音声出力装置へ送出する。システム・ターゲット・デコーダ4523はその他に、プログラム実行部4534からグラフィックス・データを受信する。そのグラフィックス・データは、GUI用のメニュー等のグラフィックスを画面に表示するためのものであり、JPEG又はPNG等のラスタ・データで表現されている。システム・ターゲット・デコーダ4523はそのグラフィックス・データを処理してイメージ・プレーンに変換し、プレーン加算部4524へ送出する。尚、システム・ターゲット・デコーダ4523の詳細については後述する。
プレーン加算部4524は、システム・ターゲット・デコーダ4523から、主映像プレーン、副映像プレーン、IGプレーン、PGプレーン、及びイメージ・プレーンを読み出し、それらを互いに重畳して一つの映像フレーム又はフィールドに合成する。合成後の映像データは表示装置103へ送出され、その画面に表示される。
ユーザイベント処理部4533は、リモコン105又は再生装置102のフロントパネルを通してユーザの操作を検出し、その操作の種類に依って、プログラム実行部4534又は再生制御部4535に処理を依頼する。例えば、ユーザがリモコン105のボタンを押下してポップアップ・メニューの表示を指示したとき、ユーザイベント処理部4533はその押下を検出してそのボタンを識別する。ユーザイベント処理部4533は更にプログラム実行部4534に、そのボタンに対応するコマンドの実行、すなわちポップアップ・メニューの表示処理を依頼する。一方、ユーザがリモコン105の早送り又は巻戻しボタンを押下したとき、ユーザイベント処理部4533はその押下を検出してそのボタンを識別する。ユーザイベント処理部4533は更に再生制御部4535に、現在再生中のプレイリストの早送り又は巻戻し処理を依頼する。
プログラム実行部4534はプロセッサであり、動的シナリオ・メモリ4531に格納されたムービーオブジェクト・ファイル及びBD−Jオブジェクト・ファイルからプログラムを読み出して実行する。プログラム実行部4534は更に各プログラムに従って次の制御を行う:(1)再生制御部4535に対してプレイリスト再生処理を命令する;(2)メニュー用又はゲーム用のグラフィックス・データをPNG又はJPEGのラスタ・データとして生成し、それをシステム・ターゲット・デコーダ4523へ転送して他の映像データに合成させる。これらの制御の具体的な内容は、プログラムの設計を通じて比較的自由に設計することができる。すなわち、それらの制御内容は、BD−ROMディスク101のオーサリング工程のうち、ムービーオブジェクト・ファイル及びBD−Jオブジェクト・ファイルのプログラミング工程によって決まる。
再生制御部4535は、2Dエクステント及びインデックス・ファイル等、各種のデータをBD−ROMディスク101から、リード・バッファ4521、動的シナリオ・メモリ4531、及び静的シナリオ・メモリ4532へ転送する処理を制御する。その制御には、図2に示されているディレクトリ/ファイル構造を管理するファイルシステムが利用される。すなわち、再生制御部4535はファイル・オープン用のシステムコールを利用して、BD−ROMドライブ4501に各種のファイルを各バッファ・メモリ4521、4531、4532へ転送させる。ここで、「ファイル・オープン」とは次の一連の処理をいう。まず、システムコールによってファイルシステムに検索対象のファイル名が与えられ、そのファイル名がディレクトリ/ファイル構造から検索される。その検索に成功したとき、再生制御部4535内のメモリには、まず、転送対象のファイルのファイル・エントリが転送され、そのメモリ内にFCB(File Control Block)が生成される。その後、転送対象のファイルのファイル・ハンドルがファイルシステムから再生制御部4535に返される。以後、再生制御部4435はそのファイル・ハンドルをBD−ROMドライブ4501に提示することにより、BD−ROMドライブ4501にその転送対象のファイルを、BD−ROMディスク101から各バッファ・メモリ4521、4531、4532へ転送させることができる。
再生制御部4535は、BD−ROMドライブ4501とシステム・ターゲット・デコーダ4523とを制御して、ファイル2Dから映像データと音声データとを復号させる。具体的には、再生制御部4535はまず、プログラム実行部4534からの命令、又はユーザイベント処理部4533からの依頼に応じて、静的シナリオ・メモリ4532から2Dプレイリスト・ファイルを読み出してその内容を解釈する。再生制御部4535は次に、その解釈された内容、特に再生経路に従って、BD−ROMドライブ4501とシステム・ターゲット・デコーダ4523とに再生対象のファイル2Dを指定し、その読み出し処理及び復号処理を指示する。このようなプレイリスト・ファイルに従った再生処理を「プレイリスト再生処理」という。
その他に、再生制御部4535は、静的シナリオ情報を利用してプレーヤ変数記憶部4536に各種のプレーヤ変数を設定する。再生制御部4535は更に、それらのプレーヤ変数を参照して、システム・ターゲット・デコーダ4523に復号対象のエレメンタリ・ストリームを指定し、かつ、各エレメンタリ・ストリームの復号に必要な情報を提供する。
プレーヤ変数記憶部4536は、プレーヤ変数を記憶するためのレジスタ群である。プレーヤ変数の種類にはシステム・パラメータ(SPRM)と汎用のパラメータ(GPRM)とがある。SPRMは再生装置102の状態を示す。図46はSPRMの一覧表である。図46を参照するに、各SPRMには通し番号4601が振られ、各通し番号4601に変数値4602が個別に対応付けられている。SPRMは例えば64個であり、それぞれの示す意味は以下のとおりである。ここで、括弧内の数字は通し番号4601を示す。
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(63):予備
SPRM(10)は、復号処理中のピクチャのPTSを示し、そのピクチャが復号されて主映像プレーン・メモリに書き込まれる度に更新される。従って、SPRM(10)を参照すれば、現在の再生時点を知ることができる。
SPRM(13)のパレンタル・レベルは所定の制限年齢を示し、BD−ROMディスク101に記録されたタイトルの視聴に対するパレンタル制御に利用される。SPRM(13)の値は、再生装置102のユーザによって再生装置102のOSD等を利用して設定される。ここで、「パレンタル制御」とは、視聴者の年齢に依ってタイトルの視聴を制限する処理をいう。再生装置102は各タイトルに対するパレンタル制御を例えば次のように行う。再生装置102はまず、BD−ROMディスク101から、そのタイトルの視聴が許可される視聴者の年齢の下限を読み出してSPRM(13)の値と比較する。その下限がSPRM(13)の値以下であれば、再生装置102はそのタイトルの再生を継続する。その下限がSPRM(13)の値を超えていれば、再生装置102はそのタイトルの再生を停止する。
SPRM(16)のオーディオ・ストリーム用言語コード、及びSPRM(18)の字幕ストリーム用言語コードは、再生装置102のデフォルトの言語コードを示す。それらは再生装置102のOSD等を利用してユーザに変更させることもでき、プログラム実行部4434を通じてアプリケーション・プログラムに変更させることもできる。例えばSPRM(16)が「英語」を示しているとき、再生制御部4535はプレイリスト再生処理において、まず現時点での再生区間を示すPI、すなわちカレントPIの含むSTNテーブルから、「英語」の言語コードを含むストリーム・エントリを検索する。再生制御部4535は次に、そのストリーム・エントリのストリーム識別情報からPIDを抽出してシステム・ターゲット・デコーダ4523に渡す。それにより、そのPIDのオーディオ・ストリームがシステム・ターゲット・デコーダ4523によって選択されて復号される。これらの処理は、ムービーオブジェクト・ファイル又はBD−Jオブジェクト・ファイルを利用して再生制御部4535に実行させることができる。
プレーヤ変数は再生処理中、再生制御部4535によって再生状態の変化に応じて更新される。特に、SPRM(1)、SPRM(2)、SPRM(21)、及びSPRM(22)が更新される。それらは順に、処理中のオーディオ・ストリーム、字幕ストリーム、セカンダリ・ビデオ・ストリーム、及びセカンダリ・オーディオ・ストリームの各STNを示す。例えばプログラム実行部4534によってSPRM(1)が変更されたときを想定する。再生制御部4535はまず、変更後のSPRM(1)の示すSTNを利用して、カレントPI内のSTNテーブルから、そのSTNを含むストリーム・エントリを検索する。再生制御部4535は次に、そのストリーム・エントリ内のストリーム識別情報からPIDを抽出してシステム・ターゲット・デコーダ4523に渡す。それにより、そのPIDのオーディオ・ストリームがシステム・ターゲット・デコーダ4523によって選択されて復号される。こうして、再生対象のオーディオ・ストリームが切り換えられる。同様に、再生対象の字幕及びセカンダリ・ビデオ・ストリームを切り換えることもできる。
≪2Dプレイリスト再生処理≫
図47は、再生制御部4535による2Dプレイリスト再生処理のフローチャートである。2Dプレイリスト再生処理は、2Dプレイリスト・ファイルに従ったプレイリスト再生処理であり、再生制御部4535が静的シナリオ・メモリ4532から2Dプレイリスト・ファイルを読み出すことによって開始される。
ステップS4701では、再生制御部4535はまず、2Dプレイリスト・ファイル内のメインパスからPIを一つ読み出して、カレントのPIとして設定する。再生制御部4535は次に、そのカレントPIのSTNテーブルから、再生対象のエレメンタリ・ストリームのPIDを選択し、かつ、それらの復号に必要な属性情報を特定する。選択されたPIDと属性情報とはシステム・ターゲット・デコーダ4523に指示される。再生制御部4535は更に、2Dプレイリスト・ファイル内のサブパスから、カレントPIに付随するSUB_PIを特定する。その後、処理はステップS4702へ進む。
ステップS4702では、再生制御部4535は、カレントPIから、参照クリップ情報、再生開始時刻IN1を示すPTS#1、及び再生終了時刻OUT1を示すPTS#2を読み出す。その参照クリップ情報から、再生対象のファイル2Dに対応する2Dクリップ情報ファイルが特定される。更に、カレントPIに付随するSUB_PIが存在するときは、それらからも同様な情報が読み出される。その後、処理はステップS4703へ進む。
ステップS4703では、再生制御部4535は、2Dクリップ情報ファイルのエントリ・マップを参照して、PTS#1、#2に対応するファイル2D内のSPN#1、#2を検索する。SUB_PIの示すPTSの対も同様にSPNの対に変換される。その後、処理はステップS4704へ進む。
ステップS4704では、再生制御部4535は、SPN#1、#2から、それぞれに対応するセクタ数を算定する。具体的には、再生制御部4535はまず、SPN#1、#2のそれぞれとソースパケット一つ当たりのデータ量192バイトとの積を求める。再生制御部4535は次に、各積をセクタ一つ当たりのデータ量2048バイトで割ってその商を求める:N1=SPN#1×192/2048、N2=SPN#2×192/2048。商N1、N2は、メインTSのうち、SPN#1、#2のそれぞれが割り当てられたソースパケットよりも前の部分が記録されたセクタの総数に等しい。SUB_PIの示すPTSの対から変換されたSPNの対も同様にセクタ数の対に変換される。その後、処理はステップS4705へ進む。
ステップS4705では、再生制御部4535は、ステップS4704で得られたセクタ数N1、N2のそれぞれから、再生対象の2Dエクステント群の先端と後端とのLBNを特定する。具体的には、再生制御部4535は、再生対象のファイル2Dのファイル・エントリを参照して、2Dエクステント群が記録されたセクタ群の先頭から数えて(N1+1)番目のセクタのLBN=LBN#1と、(N2+1)番目のセクタのLBN=LBN#2とを特定する。再生制御部4535は更に、LBN#1からLBN#2までの範囲をBD−ROMドライブ4501に指定する。SUB_PIの示すPTSの対から変換されたセクタ数の対も同様にLBNの対に変換されて、BD−ROMドライブ4501に指定される。その結果、指定された範囲のセクタ群から、2Dエクステント群に属するソースパケット群がアラインド・ユニット単位で読み出される。その後、処理はステップS4706へ進む。
ステップS4706では、再生制御部4535は、メインパスに未処理のPIが残されているか否かをチェックする。残されているときは、処理がステップS4701から繰り返される。残されていないときは、処理が終了する。
≪システム・ターゲット・デコーダ≫
図48は、システム・ターゲット・デコーダ4523の機能ブロック図である。図48を参照するに、システム・ターゲット・デコーダ4523は、ソース・デパケタイザ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はリード・バッファ4521からソースパケットを読み出し、その中から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パケットの平均転送速度は、図30に示されている2Dクリップ情報ファイル231内のシステム・レート3011で規定される値RTSを超えない。
PIDフィルタ4840はまず、ソース・デパケタイザ4810から送出されたTSパケットの含むPIDを監視する。そのPIDが、再生制御部4535から予め指定された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に設定されるべき値は予め、再生制御部4535からPIDフィルタ4840に指示されている。各デコーダ4870−4875はSTCカウンタ4850の値をSTCとして利用する。具体的には、各デコーダ4870−4875は、まず、PIDフィルタ4840から受け取ったTSパケットをPESパケットに再構成する。各デコーダ4870−4875は、次に、そのPESペイロードの含むデータの復号処理の時期を、そのPESヘッダに含まれるPTS又はDTSの示す時刻に従って調節する。
主映像デコーダ4870は、図48に示されているように、トランスポート・ストリーム・バッファ(TB:Transport Stream Buffer)4801、多重化バッファ(MB:Multiplexing Buffer)4802、エレメンタリ・ストリーム・バッファ(EB:Elementary Stream Buffer)4803、圧縮映像デコーダ(DEC)4804、及び復号ピクチャ・バッファ(DPB:Decoded PictureBuffer)4805を含む。
TB4801、MB4802、及びEB4803はいずれもバッファ・メモリであり、それぞれ主映像デコーダ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は、圧縮ピクチャの復号処理に特化したハードウェア・デコーダであり、特にその復号処理のアクセラレータ機能を備えたLSIで構成されている。DEC4804は、EB4803内の各VAUからピクチャを、元のPESパケットに含まれるDTSの示す時刻に復号する。その復号処理では、DEC4804は予めそのVAUのヘッダを解析して、そのVAU内に格納された圧縮ピクチャの圧縮符号化方式とストリーム属性とを特定し、それらに依って復号方法を選択する。その圧縮符号化方式は、例えば、MPEG−2、MPEG−4 AVC、及びVC1を含む。DEC4804は更に、復号された非圧縮のピクチャをDPB4805へ転送する。
DPB4805は、TB4801、MB4802、及びEB4803と同様なバッファ・メモリであり、主映像デコーダ4870に内蔵のメモリ素子の一領域を利用する。DPB4805はその他に、他のバッファ・メモリ4801、4802、4803とは異なるメモリ素子に分離されていてもよい。DPB4805は復号後のピクチャを一時的に保持する。DEC4804によってPピクチャ又はBピクチャが復号されるとき、DPB4805はDEC4804からの指示に応じて、保持している復号後のピクチャから参照ピクチャを検索してDEC4804に提供する。DPB4805は更に、保持している各ピクチャを、元のPESパケットに含まれるPTSの示す時刻に主映像プレーン・メモリ4890へ書き込む。
副映像デコーダ4871は主映像デコーダ4870と同様の構成を含む。副映像デコーダ4871はまず、PIDフィルタ4840から受信されたセカンダリ・ビデオ・ストリームのTSパケットを非圧縮のピクチャに復号する。副映像デコーダ4871は次に、そのPESパケットに含まれるPTSの示す時刻に非圧縮のピクチャを副映像プレーン・メモリ4891へ書き込む。
PGデコーダ4872は、PIDフィルタ4840から受信されたTSパケットを非圧縮のグラフィックス・オブジェクトに復号し、そのPESパケットに含まれるPTSの示す時刻にPGプレーン・メモリ4892へ書き込む。
図49の(a)は、PGデコーダ4872がPGストリーム内の一つのデータ・エントリからグラフィックス・オブジェクトを復号する処理のフローチャートである。この処理は、PGデコーダ4872がPIDフィルタ4840から、図6に示されている一つのデータ・エントリを構成するTSパケット群を受信したときに開始される。図49の(b)−(e)は、その処理に従って変化するグラフィックス・オブジェクトを示す模式図である。
ステップS4901では、PGデコーダ4872はまず、PCS内の参照オブジェクトID605と同じオブジェクトIDを持つODSを特定する。PGデコーダ4872は次に、特定されたODSからグラフィックス・オブジェクトを復号してオブジェクト・バッファに書き込む。ここで、「オブジェクト・バッファ」は、PGデコーダ4872に内蔵のバッファ・メモリである。図49の(b)に示されている「ニコちゃんマーク」FOBは、オブジェクト・バッファに書き込まれたグラフィックス・オブジェクトの例を示す。
ステップS4902では、PGデコーダ4872はPCS内のクロッピング情報602に従ってクロッピング処理を行い、グラフィックス・オブジェクトからその一部を切り出して、オブジェクト・バッファに書き込む。図49の(c)では、ニコちゃんマークFOBの左右の両端部から帯状領域LST、RSTが切り取られて、残りの部分OBJがオブジェクト・バッファに書き込まれている。
ステップS4903では、PGデコーダ4872はまず、PCS内の参照ウィンドウID603と同じウィンドウIDを持つWDSを特定する。PGデコーダ4872は次に、特定されたWDSの示すウィンドウ位置612と、PCS内のオブジェクト表示位置601とから、グラフィックス・プレーンにおけるグラフィックス・オブジェクトの表示位置を決定する。図49の(d)では、グラフィックス・プレーンGPLにおけるウィンドウWINの左上隅の位置と、グラフィックス・オブジェクトOBJの左上隅の位置DSPとが決定される。
ステップS4904では、PGデコーダ4872はオブジェクト・バッファ内のグラフィックス・オブジェクトを、ステップS4903で決定された表示位置に書き込む。その際、PGデコーダ4872は、WDSの示すウィンドウ・サイズ613を利用して、グラフィックス・オブジェクトを描画する範囲を決める。図49の(d)では、グラフィックス・オブジェクトOBJがグラフィックス・プレーンGPLに、左上隅の位置DSPからウィンドウWINの範囲内で書き込まれている。
ステップS4905では、PGデコーダ4872はまず、PCS内の参照パレットID604と同じパレットIDを持つPDSを特定する。PGデコーダ4872は次に、PDS内のCLUT622を利用して、グラフィックス・オブジェクト内の各画素データが示すべき色座標値を決定する。図49の(e)では、グラフィックス・オブジェクトOBJ内の各画素の色が決定されている。こうして、一つのデータ・エントリの含むグラフィックス・オブジェクトの描画処理が完了する。ステップS4901−4905は、そのグラフィックス・オブジェクトと同じPESパケットに含まれるPTSの示す時刻までに実行される。
IGデコーダ4873は、PIDフィルタ4840から受信されたTSパケットを非圧縮のグラフィックス・オブジェクトに復号する。IGデコーダ4873は更に、それらのTSパケットから復元されたPESパケットに含まれるPTSの示す時刻に、その非圧縮のグラフィックス・オブジェクトをIGプレーン・メモリ4893へ書き込む。それらの処理の詳細は、PGデコーダ4872によるものと同様である。
主音声デコーダ4874はまず、PIDフィルタ4840から受信されたTSパケットを内蔵のバッファに蓄える。主音声デコーダ4874は次に、そのバッファ内のTSパケット群からTSヘッダとPESヘッダとを除去し、残りのデータを非圧縮のLPCM音声データに復号する。主音声デコーダ4874は更にその音声データを、元のPESパケットに含まれるPTSの示す時刻に音声ミキサ4895へ送出する。ここで、主音声デコーダ4874は、TSパケットに含まれるプライマリ・オーディオ・ストリームの圧縮符号化方式及びストリーム属性に依って圧縮音声データの復号方法を選択する。その圧縮符号化方式は例えばAC−3又はDTSを含む。
副音声デコーダ4875は主音声デコーダ4874と同様の構成を含む。副音声デコーダ4875はまず、PIDフィルタ4840から受信されたセカンダリ・オーディオ・ストリームのTSパケット群からPESパケットを復元し、そのPESペイロードの含むデータを非圧縮のLPCM音声データに復号する。副音声デコーダ4875は次に、そのPESヘッダの含むPTSの示す時刻にその非圧縮のLPCM音声データを音声ミキサ4895へ送出する。ここで、副音声デコーダ4875は、TSパケットに含まれるセカンダリ・オーディオ・ストリームの圧縮符号化方式及びストリーム属性に依って圧縮音声データの復号方法を選択する。その圧縮符号化方式は例えばドルビー・デジタル・プラス又はDTS−HD LBRを含む。
音声ミキサ4895は、主音声デコーダ4874と副音声デコーダ4875とのそれぞれから非圧縮の音声データを受信し、それらを用いてミキシングを行う。音声ミキサ4895は更に、そのミキシングで得られた合成音を表示装置103の内蔵スピーカ103A等へ送出する。
イメージ・プロセッサ4880は、プログラム実行部4534からグラフィックス・データ、すなわちPNG又はJPEGのラスタ・データを受信する。イメージ・プロセッサ4880はそのとき、そのグラフィックス・データに対するレンダリング処理を行ってイメージ・プレーン・メモリ4894へ書き込む。
<3D再生装置の構成>
3D再生モードの再生装置102は、BD−ROMディスク101から3D映像コンテンツを再生するとき、3D再生装置として動作する。その構成の基本部分は、図45、48に示されている2D再生装置の構成と同様である。従って、以下では2D再生装置の構成からの拡張部分及び変更部分について説明し、基本部分の詳細についての説明は上記の2D再生装置についての説明を援用する。また、2Dプレイリスト再生処理に利用される構成は2D再生装置の構成と同様である。従って、その詳細についての説明も上記の2D再生装置についての説明を援用する。以下の説明では、3Dプレイリスト・ファイルに従った3D映像の再生処理、すなわち3Dプレイリスト再生処理を想定する。
図50は、3D再生装置5000の機能ブロック図である。3D再生装置5000は、BD−ROMドライブ5001、再生部5002、及び制御部5003を含む。再生部5002は、スイッチ5020、第1リード・バッファ(RB1)5021、第2リード・バッファ(RB2)5022、システム・ターゲット・デコーダ5023、プレーン加算部5024、及びHDMI通信部5025を含む。制御部5003は、動的シナリオ・メモリ5031、静的シナリオ・メモリ5032、ユーザイベント処理部5033、プログラム実行部5034、再生制御部5035、及び、プレーヤ変数記憶部5036を含む。再生部5002と制御部5003とは互いに異なる集積回路に実装されている。その他に、両者が単一の集積回路に統合されていてもよい。特に、動的シナリオ・メモリ5031、静的シナリオ・メモリ5032、ユーザイベント処理部5033、及びプログラム実行部5034は、図45に示されている2D再生装置内のものと同様である。従って、それらの詳細についての説明は上記の2D再生装置についての説明を援用する。
再生制御部5035は、3Dプレイリスト再生処理をプログラム実行部5034等から命じられたとき、静的シナリオ・メモリ5032に格納された3Dプレイリスト・ファイルからPIを順番に読み出してカレントPIとして設定する。再生制御部5035は、カレントPIを設定する度に、まず、そのSTNテーブルとその3Dプレイリスト・ファイル内のSTNテーブルSSとに従って、システム・ターゲット・デコーダ5023とプレーン加算部5024との動作条件を設定する。具体的には、再生制御部5035は復号対象のエレメンタリ・ストリームのPIDを選択して、そのエレメンタリ・ストリームの復号に必要な属性情報と共にシステム・ターゲット・デコーダ5023へ渡す。選択されたPIDの示すエレメンタリ・ストリームの中にPGストリーム又はIGストリームが含まれている場合、再生制御部5035は更に、それらのストリーム・データに割り当てられた参照オフセットID4001を特定して、プレーヤ変数記憶部5036内のSPRM(27)に設定する。また、再生制御部5035は、STNテーブルSSの示すポップアップ期間のオフセット4111に依って各プレーン・データの表示モードを選択し、システム・ターゲット・デコーダ5023とプレーン加算部5024とに指示する。
次に、再生制御部5035はカレントPIに従い、図32の(e)の説明に示されている手順で、読み出し対象のエクステントSSが記録されたセクタ群のLBNの範囲をBD−ROMドライブ5001に指示する。一方、再生制御部5035は、静的シナリオ・メモリ5032に格納されたクリップ情報ファイル内のエクステント起点を利用して、各エクステントSS内のデータ・ブロックの境界を示す情報を生成する。以下、その情報を「データ・ブロック境界情報」と呼ぶ。データ・ブロック境界情報は、例えばそのエクステントSSの先頭から各境界までのソースパケット数を示す。再生制御部5035は更に、データ・ブロック境界情報をスイッチ5020へ渡す。
プレーヤ変数記憶部5036は、2D再生装置内のもの4536と同様に、SPRMを含む。しかし、図46とは異なり、SPRM(24)は、図44に示されている第1フラグを含み、SPRM(25)は第2フラグを含む。その場合、SPRM(24)が“0”であるときは再生装置102が2D映像の再生のみに対応可能であり、“1”であるときは3D映像の再生にも対応可能である。SPRM(25)が“0”であるときは再生装置102がL/Rモードであり、“1”であるときはデプス・モードである。更に、SPRM(25)が“2”であるときは再生装置102が2D再生モードである。更に、SPRM(27)は、各プレーン・データに割り当てられた参照オフセットID4001の格納領域を含む。具体的には、SPRM(27)は、四種類の参照オフセットIDを格納する領域を含む。それらの参照オフセットIDは、PGプレーンに対するもの(PG_ref_offset_id)、IGプレーンに対するもの(IG_ref_offset_id)、副映像プレーンに対するもの(SV_ref_offset_id)、及びイメージ・プレーンに対するもの(IM_ref_offset_id)である。
BD−ROMドライブ5001は、図45に示されている2D再生装置内のもの4501と同様な構成要素を含む。BD−ROMドライブ5001は、再生制御部5035からLBNの範囲が指示されたとき、その範囲の示すBD−ROMディスク101上のセクタ群からデータを読み出す。特にファイルSSのエクステント、すなわちエクステントSSに属するソースパケット群は、BD−ROMドライブ5001からスイッチ5020へ転送される。ここで、各エクステントSSは、図15に示されているとおり、ベースビューとディペンデントビューとのデータ・ブロックの対を一つ以上含む。それらのデータ・ブロックは、RB15021とRB25022とへパラレルに転送されなければならない。従って、BD−ROMドライブ5001には2D再生装置内のBD−ROMドライブ4501以上のアクセス・スピードが求められる。
スイッチ5020は、BD−ROMドライブ5001からエクステントSSを受信する。一方、スイッチ5020は、再生制御部5035から、そのエクステントSSに関するデータ・ブロック境界情報を受信する。スイッチ5020は更に、そのデータ・ブロック境界情報を利用して、各エクステントSSからベースビュー・エクステントを抽出してRB15021へ送出し、ディペンデントビュー・エクステントを抽出してRB25022へ送出する。
RB15021とRB25022とはいずれも、再生部5002内のメモリ素子を利用したバッファ・メモリである。特に単一のメモリ素子内の異なる領域がRB15021、RB25022として利用される。その他に、異なるメモリ素子が個別にRB15021、RB25022として利用されてもよい。RB15021はスイッチ5020からベースビュー・エクステントを受信して格納する。RB25022はスイッチ5020からディペンデントビュー・エクステントを受信して格納する。
システム・ターゲット・デコーダ5023は、3Dプレイリスト再生処理において、まず再生制御部5035から、復号対象のストリーム・データのPIDと、その復号に必要な属性情報とを受信する。システム・ターゲット・デコーダ5023は次に、RB15021に格納されたベースビュー・エクステントと、RB25022に格納されたディペンデントビュー・エクステントとから交互にソースパケットを読み出す。システム・ターゲット・デコーダ5023は続いて、再生制御部5035から受信されたPIDの示すエレメンタリ・ストリームを各ソースパケットから分離して復号する。システム・ターゲット・デコーダ5023は更に、復号後のエレメンタリ・ストリームをその種類別に内蔵のプレーン・メモリに書き込む。ベースビュー・ビデオ・ストリームは左映像プレーン・メモリに書き込まれ、ディペンデントビュー・ビデオ・ストリームは右映像プレーン・メモリに書き込まれる。一方、セカンダリ・ビデオ・ストリームは副映像プレーン・メモリに書き込まれ、IGストリームはIGプレーン・メモリに書き込まれ、PGストリームはPGプレーン・メモリに書き込まれる。ここで、図3の(b)、(c)に示されているPGストリーム等のように、ビデオ・ストリーム以外のストリーム・データがベースビューとディペンデントビューとのストリーム・データの対から成るとき、そのストリーム・データに対応付けられるべきプレーン・メモリは、ベースビュー・プレーンとディペンデントビュー・プレーンとの両方に対して個別に用意される。システム・ターゲット・デコーダ5023はその他に、プログラム実行部5034からのグラフィックス・データ、例えばJPEG又はPNG等のラスタ・データに対してレンダリング処理を行ってイメージ・プレーン・メモリに書き込む。
システム・ターゲット・デコーダ5023は、左映像プレーン・メモリと右映像プレーン・メモリとからのプレーン・データの出力モードを、B−D表示モードとB−B表示モードとのそれぞれに、次のように対応させる。再生制御部5035からB−D表示モードが指示されたとき、システム・ターゲット・デコーダ5023は、左映像プレーン・メモリと右映像プレーン・メモリとから交互にプレーン・データを出力する。一方、再生制御部5035からB−B表示モードが指示されたとき、システム・ターゲット・デコーダ5023は、動作モードを3D再生モードに維持したまま、左映像プレーン・メモリと右映像プレーン・メモリとのいずれかからのみ、プレーン・データを一フレーム当たり二回ずつ出力する。
システム・ターゲット・デコーダ5023は、グラフィックス・プレーン・メモリと副映像プレーン・メモリとからのプレーン・データの出力モードを、2プレーン・モード、1プレーン+オフセット・モード、及び1プレーン+ゼロ・オフセット・モードのそれぞれに、以下に述べるように対応させる。ここで、グラフィックス・プレーン・メモリは、PGプレーン・メモリ、IGプレーン・メモリ、及びイメージ・プレーン・メモリを含む。
再生制御部5035から2プレーン・モードが指示されたとき、システム・ターゲット・デコーダ5023は、各プレーン・メモリからプレーン加算部5024へ、ベースビュー・プレーンとディペンデントビュー・プレーンとを交互に送出する。
再生制御部5035から1プレーン+オフセット・モードが指示されたとき、システム・ターゲット・デコーダ5023は、各プレーン・メモリからプレーン加算部5024へ、2D映像を表すプレーン・データを送出する。それと並行して、システム・ターゲット・デコーダ5023は、ディペンデントビュー・ビデオ・ストリームから各ビデオ・シーケンスの先頭のVAUを読み出す度に、そのVAUからオフセット・メタデータ1110を読み出す。そのビデオ・シーケンスの再生区間では、システム・ターゲット・デコーダ5023はまず、各VAUと共に同じPESパケットに格納されたPTSと、そのVAUの圧縮ピクチャ・データの表すフレームの番号とを特定する。システム・ターゲット・デコーダ5023は次に、そのフレーム番号に対応付けられたオフセット情報をオフセット・メタデータから読み出して、特定されたPTSの示す時刻にプレーン加算部5024へ送出する。
再生制御部5035から1プレーン+ゼロ・オフセット・モードが指示されたとき、システム・ターゲット・デコーダ5023は、各プレーン・メモリからプレーン加算部5024へ、2D映像を表すプレーン・データを送出する。それと並行して、システム・ターゲット・デコーダ5023は、オフセット値が“0”に設定されたオフセット情報をプレーン加算部5024へ送出する。
プレーン加算部5024は、システム・ターゲット・デコーダ5023から各種のプレーン・データを受信し、それらを互いに重畳して一つのフレーム又はフィールドに合成する。特にL/Rモードでは、左映像プレーンはレフトビュー・ビデオ・プレーンを表し、右映像プレーンはライトビュー・ビデオ・プレーンを表す。従って、プレーン加算部5024は、左映像プレーンには、レフトビューを表す他のプレーン・データを重畳し、右映像プレーン・データには、ライトビューを表す他のプレーン・データを重畳する。一方、デプス・モードでは、右映像プレーンは、左映像プレーンの表す映像に対するデプスマップを表す。従って、プレーン加算部5024は、まず両方の映像プレーンからレフトビューとライトビューとのビデオ・プレーンの対を生成する。その後の合成処理は、L/Rモードでの合成処理と同様である。
プレーン加算部5024は、再生制御部5035から副映像プレーン又はグラフィックス・プレーン(PGプレーン、IGプレーン、イメージ・プレーン)の表示モードとして1プレーン+オフセット・モードを指示されたとき、そのプレーン・データに対してオフセット制御を行う。具体的には、プレーン加算部5024はまず、プレーヤ変数記憶部5036内のSPRM(27)から、そのプレーン・データに対する参照オフセットIDを読み出す。プレーン加算部5024は次に、システム・ターゲット・デコーダ5023から受け取ったオフセット情報を参照して、参照オフセットIDの示すオフセット・シーケンス1113に属するオフセット情報、すなわちオフセット方向1122とオフセット値1123との対を検索する。プレーン加算部5024はその後、検索されたオフセット値を利用して、対応するプレーン・データに対してオフセット制御を行う。それにより、プレーン加算部5024は、一つのプレーン・データからレフトビュー・プレーンとライトビュー・プレーンとの対を生成し、対応するビデオ・プレーンに合成する。
プレーン加算部5024は、再生制御部5035から1プレーン+ゼロ・オフセット・モードを指示されたとき、SPRM(27)を参照することなく、各プレーン・データに対するオフセット値を“0”に設定する。それにより、プレーン加算部5024は、各プレーン・データに対するオフセット制御を一時的に停止させる。従って、同じプレーン・データがレフトビュー・ビデオ・プレーンとライトビュー・ビデオ・プレーンとの両方に合成される。
プレーン加算部5024は、再生制御部5035から2プレーン・モードを指示されたとき、システム・ターゲット・デコーダ5023からベースビュー・プレーンとディペンデントビュー・プレーンとの対を受信する。ここで、L/Rモードでは、ベースビュー・プレーンはレフトビュー・プレーンを表し、ディペンデントビュー・プレーンはライトビュー・プレーンを表す。従って、プレーン加算部5024は、ベースビュー・プレーンを左映像プレーンに重畳し、ディペンデントビュー・プレーンを右映像プレーンに重畳する。一方、デプス・モードでは、ディペンデントビュー・プレーンは、ベースビュー・プレーンの表す映像に対するデプスマップを表す。従って、プレーン加算部5024は、まずベースビュー・プレーンとディペンデントビュー・プレーンとの対からレフトビュー・プレーンとライトビュー・プレーンとの対を生成し、その後、ビデオ・プレーンとの合成処理を行う。
プレーン加算部5024はその他に、合成後のプレーン・データの出力形式を、表示装置103等、そのデータの出力先の装置による3D映像の表示方式に合わせて変換する。例えば出力先の装置が継時分離方式を利用するとき、プレーン加算部5024は合成後のプレーン・データを一つの映像フレーム又はフィールドとして送出する。一方、出力先の装置がレンチキュラー・レンズを利用するとき、プレーン加算部5024は内蔵のバッファ・メモリを利用して、レフトビュー・プレーンとライトビュー・プレーンとの対を一つの映像フレーム又はフィールドに合成して送出する。具体的には、プレーン加算部5024は、先に合成されたレフトビュー・プレーンを一旦、そのバッファ・メモリに格納して保持する。プレーン加算部5024は続いて、ライトビュー・プレーンを合成して、バッファ・メモリに保持されたレフトビュー・プレーンと更に合成する。その合成では、レフトビュー・プレーンとライトビュー・プレーンとがそれぞれ、縦方向に細長い短冊形の小領域に分割され、各小領域が一つのフレーム又はフィールドの中に横方向に交互に並べられて一つのフレーム又はフィールドに再構成される。こうして、レフトビュー・プレーンとライトビュー・プレーンとの対が一つの映像フレーム又はフィールドに合成される。プレーン加算部5024はその合成後の映像フレーム又はフィールドを出力先の装置へ送出する。
HDMI通信部5025は、HDMIケーブル122で表示装置103に接続され、HDMIケーブル122を通して表示装置103との間でCECメッセージを交換する。それにより、HDMI通信部5025は、表示装置103に対してHDMI認証を行い、3D映像の再生に対応可能か否かを表示装置103に問い合わせる。
≪3Dプレイリスト再生処理≫
図51は、再生制御部5035による3Dプレイリスト再生処理のフローチャートである。3Dプレイリスト再生処理は、再生制御部5035が静的シナリオ・メモリ5032から3Dプレイリスト・ファイルを読み出すことによって開始される。
ステップS5101では、再生制御部5035はまず、3Dプレイリスト・ファイル内のメインパスからPIを一つ読み出して、カレントのPIとして設定する。再生制御部5035は次に、そのカレントPIのSTNテーブルから、再生対象のエレメンタリ・ストリームのPIDを選択し、かつ、それらの復号に必要な属性情報を特定する。再生制御部5035は更に、3Dプレイリスト・ファイル内のSTNテーブルSS3930のうち、カレントPIに対応するものから、再生対象のエレメンタリ・ストリームとして追加されるべきもののPIDを選択し、かつ、それらの復号に必要な属性情報を特定する。選択されたPIDと属性情報とは、システム・ターゲット・デコーダ5023に指示される。再生制御部5035はその他に、3Dプレイリスト・ファイル内のサブパスから、カレントPIと同時に参照されるべきSUB_PIを特定し、カレントのSUB_PIとして設定する。その後、処理はステップS5102へ進む。
ステップS5102では、再生制御部5035は、STNテーブルSSの示すポップアップ期間のオフセット4111に依って各プレーン・データの表示モードを選択し、システム・ターゲット・デコーダ5023とプレーン加算部5024とに指示する。特に、ポップアップ期間のオフセットの値が“0”であるとき、ビデオ・プレーンの表示モードとしてB−D表示モードが選択され、グラフィックス・プレーンの表示モードとして2プレーン・モード又は1プレーン+オフセット・モードが選択される。一方、ポップアップ期間のオフセットの値が“1”であるとき、ビデオ・プレーンの表示モードとしてB−B表示モードが選択され、グラフィックス・プレーンの表示モードとして1プレーン+ゼロ・オフセット・モードが選択される。その後、処理はステップS5103へ進む。
ステップS5103では、グラフィックス・プレーンの表示モードとして1プレーン+オフセット・モードが選択されたか否かをチェックする。1プレーン+オフセット・モードが選択された場合、処理はステップS5104へ進む。一方、2プレーン・モード又は1プレーン+ゼロ・オフセット・モードが選択された場合、処理はステップS5105へ進む。
ステップS5104では、再生制御部5035は、カレントPIのSTNテーブルを参照して、選択されたPIDの示すエレメンタリ・ストリームの中からPGストリーム又はIGストリームを検出する。再生制御部5035は更に、それらのストリーム・データに割り当てられた参照オフセットIDを特定して、プレーヤ変数記憶部5036内のSPRM(27)に設定する。その後、処理はステップS5105へ進む。
ステップS5105では、再生制御部5035は、カレントのPIとSUB_PIとのそれぞれから、参照クリップ情報、再生開始時刻IN1を示すPTS#1、及び再生終了時刻OUT1を示すPTS#2を読み出す。その参照クリップ情報から、再生対象のファイル2DとファイルDEPとのそれぞれに対応するクリップ情報ファイルが特定される。その後、処理はステップS5106へ進む。
ステップS5106では、再生制御部5035は、ステップS5105で特定されたクリップ情報ファイルの各エントリ・マップを参照して、図42に示されているように、PTS#1、#2に対応するファイル2D内のSPN#1、#2とファイルDEP内のSPN#11、#12とを検索する。再生制御部5035は更に、各クリップ情報ファイルのエクステント起点を利用して、ファイルSSの先頭から再生開始位置までのソースパケット数SPN#21をSPN#1、#11から算定し、ファイルSSの先頭から再生終了位置までのソースパケット数SPN#22をSPN#2、#12から算定する。具体的には、再生制御部5035は、まず2Dクリップ情報ファイルのエクステント起点の示すSPNの中から、SPN#1以下で最大のもの“Am”を検索し、ディペンデントビュー・クリップ情報ファイルのエクステント起点の示すSPNの中から、SPN#11以下で最大のもの“Bm”を検索する。再生制御部5035は続いて、検索されたSPNの和Am+Bmを求めてSPN#21として決定する。再生制御部5035は、次に2Dクリップ情報ファイルのエクステント起点の示すSPNの中から、SPN#2よりも大きく、かつ最小のもの“An”を検索し、ディペンデントビュー・クリップ情報ファイルのエクステント起点の示すSPNの中から、SPN#12より大きく、かつ最小のもの“Bn”を検索する。再生制御部5035は続いて、検索されたSPNの和An+Bnを求めてSPN#22として決定する。その後、処理はステップS5107へ進む。
ステップS5107では、再生制御部5035は、ステップS5106で決定されたSPN#21、#22をセクタ数の対N1、N2に変換する。具体的には、再生制御部5035はまず、SPN#21とソースパケット一つ当たりのデータ量192バイトとの積を求める。再生制御部5035は次に、その積をセクタ一つ当たりのデータ量2048バイトで割ったときの商SPN#21×192/2048を求める。この商は、ファイルSSの先頭から再生開始位置の直前までのセクタ数N1に等しい。同様に、再生制御部5035は、SPN#22から商SPN#22×192/2048を求める。この商は、ファイルSSの先頭から再生終了位置の直前までのセクタ数N2に等しい。その後、処理はステップS5108へ進む。
ステップS5108では、再生制御部5035は、ステップS5107で得られたセクタ数N1、N2のそれぞれから、再生対象のエクステントSS群の先端と後端とのLBNを特定する。具体的には、再生制御部5035は、再生対象のファイルSSのファイル・エントリを参照して、エクステントSS群が記録されたセクタ群の先頭から数えて(N1+1)番目のセクタのLBN=LBN#1と、(N2+1)番目のセクタのLBN=LBN#2とを特定する。再生制御部5035は更に、LBN#1からLBN#2までの範囲をBD−ROMドライブ5001に指定する。その結果、指定された範囲のセクタ群から、エクステントSS群に属するソースパケット群がアラインド・ユニット単位で読み出される。その後、処理はステップS5109へ進む。
ステップS5109では、再生制御部5035は、ステップS5106で利用されたクリップ情報ファイルのエクステント起点を再び利用して、エクステントSS群に関するデータ・ブロック境界情報を生成し、スイッチ5020へ送出する。具体的な例として、再生開始位置を示すSPN#21が、各エクステント起点の示すSPNの和An+Bnに等しく、再生終了位置を示すSPN#22が、各エクステント起点の示すSPNの和Am+Bmに等しいときを想定する。そのとき、再生制御部5035は、各エクステント起点からSPNの差の列、A(n+1)−An、B(n+1)−Bn、A(n+2)−A(n+1)、B(n+2)−B(n+1)、…、Am−A(m−1)、Bm−B(m−1)を求めて、データ・ブロック境界情報としてスイッチ5020へ送出する。図32の(e)に示されているとおり、この列は、エクステントSSに含まれる各データ・ブロックのソースパケット数を示す。スイッチ5020は、BD−ROMドライブ5001から受信されるエクステントSSのソースパケット数を0からカウントする。そのカウントが、データ・ブロック境界情報の示すSPNの差と一致する度に、スイッチ5020は、ソースパケットの送出先をRB15021とRB25022との間で切り換え、かつカウントを0にリセットする。その結果、エクステントSSの先頭から{B(n+1)−Bn}個のソースパケットは最初のディペンデントビュー・エクステントとしてRB24922へ送出され、続く{A(n+1)−An}個のソースパケットは最初のベースビュー・エクステントとしてRB15021へ送出される。以降も同様に、スイッチ5020によって受信されるソースパケットの数が、データ・ブロック境界情報の示すSPNの差と一致する度に、エクステントSSからディペンデントビューとベースビューとの各エクステントが交互に抽出される。
ステップS5110では、再生制御部5035は、メインパスに未処理のPIが残されているか否かをチェックする。残されているときは、処理がステップS5101から繰り返される。残されていないときは、処理が終了する。
≪システム・ターゲット・デコーダ≫
図52は、システム・ターゲット・デコーダ5023の機能ブロック図である。図52に示されている構成要素は、図48に示されている2D再生装置のもの4523とは次の二点で異なる:(1)リード・バッファから各デコーダへの入力系統が二重化されている点、並びに、(2)主映像デコーダは3D再生モードに対応可能であり、副映像デコーダ、PGデコーダ、及びIGデコーダは2プレーン・モードに対応可能である点。すなわち、それらの映像デコーダはいずれも、ベースビュー・ビデオ・ストリームとディペンデントビュー・ビデオ・ストリームとを交互に復号できる。特に2プレーン・モードの各デコーダは、ベースビュー・プレーンを復号する部分と、ディペンデントビュー・プレーンを復号する部分とに分離されていてもよい。一方、主音声デコーダ、副音声デコーダ、音声ミキサ、イメージ・プロセッサ、及び各プレーン・メモリは、図48に示されている2D再生装置のものと同様である。従って、以下では、図52に示されている構成要素のうち、図48に示されているものとは異なるものについて説明し、同様なものの詳細についての説明は図48についての説明を援用する。更に、各映像デコーダはいずれも同様な構造を持つので、以下では主映像デコーダ5215の構造について説明する。同様な説明は他の映像デコーダの構造についても成立する。
第1ソース・デパケタイザ5211は、RB15021からソースパケットを読み出し、更にその中からTSパケットを抽出して第1PIDフィルタ5213へ送出する。第2ソース・デパケタイザ5212は、RB25022からソースパケットを読み出し、更にその中からTSパケットを抽出して第2PIDフィルタ5214へ送出する。各ソース・デパケタイザ5211、5212は更に、各TSパケットの送出時刻を、各ソースパケットのATSの示す時刻に合わせる。その同期方法は、図48に示されているソース・デパケタイザ48710による方法と同様である。従って、その詳細についての説明は図48についての説明を援用する。そのような送出時刻の調節により、第1ソース・デパケタイザ5211から第1PIDフィルタ5213へのTSパケットの平均転送速度RTS1は、2Dクリップ情報ファイルの示すシステム・レートを超えない。同様に、第2ソース・デパケタイザ5212から第2PIDフィルタ5214へのTSパケットの平均転送速度RTS2は、ディペンデントビュー・クリップ情報ファイルの示すシステム・レートを超えない。
第1PIDフィルタ5213は、第1ソース・デパケタイザ5211からTSパケットを受信する度に、そのPIDを選択対象のPIDと比較する。その選択対象のPIDは再生制御部5035によって予め、3Dプレイリスト・ファイル内のSTNテーブルに従って指定されている。両方のPIDが一致したとき、第1PIDフィルタ5013はそのTSパケットを、そのPIDに割り当てられたデコーダへ転送する。例えば、PIDが0x1011であるとき、そのTSパケットは主映像デコーダ5215内のTB15201へ転送される。その他に、PIDが、0x1B00−0x1B1F、0x1100−0x111F、0x1A00−0x1A1F、0x1200−0x121F、及び0x1400−0x141Fの各範囲に属するとき、対応するTSパケットはそれぞれ、副映像デコーダ、主音声デコーダ、副音声デコーダ、PGデコーダ、及びIGデコーダへ転送される。
第2PIDフィルタ5214は、第2ソース・デパケタイザ5212からTSパケットを受信する度に、そのPIDを選択対象のPIDと比較する。その選択対象のPIDは、再生制御部5035によって予め、3Dプレイリスト・ファイル内のSTNテーブルSSに従って指定されている。両方のPIDが一致したとき、第2PIDフィルタ5214はそのTSパケットを、そのPIDに割り当てられたデコーダへ転送する。例えば、PIDが0x1012又は0x1013であるとき、そのTSパケットは主映像デコーダ5215内のTB25208へ転送される。その他に、PIDが、0x1B20−0x1B3F、0x1220−0x127F、及び0x1420−0x147Fの各範囲に属するとき、対応するTSパケットはそれぞれ、副映像デコーダ、PGデコーダ、及びIGデコーダへ転送される。
主映像デコーダ5215は、TB15201、MB15202、EB15203、TB25208、MB25209、EB25210、バッファ・スイッチ5206、DEC5204、DPB5205、及びピクチャ・スイッチ5207を含む。TB15201、MB15202、EB15203、TB25208、MB25209、EB25210、及びDPB5205はいずれもバッファ・メモリである。各バッファ・メモリは、主映像デコーダ5215に内蔵されたメモリ素子の一領域を利用する。その他に、それらのバッファ・メモリのいずれか又は全てが、異なるメモリ素子に分離されていてもよい。
TB15201は、ベースビュー・ビデオ・ストリームを含むTSパケットを第1PIDフィルタ5213から受信してそのまま蓄積する。MB15202は、TB15201に蓄積されたTSパケットからPESパケットを復元して蓄積する。そのとき、各TSパケットからTSヘッダが除去される。EB15203は、MB15202に蓄積されたPESパケットから、符号化されたVAUを抽出して蓄積する。そのとき、各PESパケットからPESヘッダが除去される。
TB25208は、ディペンデントビュー・ビデオ・ストリームを含むTSパケットを第2PIDフィルタ5214から受信してそのまま蓄積する。MB25209は、TB25208に蓄積されたTSパケットからPESパケットを復元して蓄積する。そのとき、各TSパケットからTSヘッダが除去される。EB25210は、MB25209に蓄積されたPESパケットから、符号化されたVAUを抽出して蓄積する。そのとき、各PESパケットからPESヘッダが除去される。
バッファ・スイッチ5206は、EB15203とEB25210とのそれぞれに蓄積されたVAUのヘッダをDEC5204からの要求に応じて転送する。バッファ・スイッチ5206は更に、そのVAUの圧縮ピクチャ・データを、元のTSパケットに含まれるDTSの示す時刻にDEC5204へ転送する。ここで、ベースビュー・ビデオ・ストリームとディペンデントビュー・ビデオ・ストリームとの間では、同じ3D・VAUに属する一対のピクチャのDTSが等しい。従って、バッファ・スイッチ5206は、DTSの等しい一対のVAUのうち、EB15203に蓄積された方を先にDEC5204へ転送する。
DEC5204は、図48に示されているDEC4804と同様、圧縮ピクチャの復号処理に特化したハードウェア・デコーダであり、特にその復号処理のアクセラレータ機能を備えたLSIで構成されている。DEC5204は、バッファ・スイッチ5206から転送された圧縮ピクチャ・データを順次復号する。その復号処理では、DEC5204は予め、各VAUのヘッダを解析して、そのVAU内に格納された圧縮ピクチャの圧縮符号化方式とストリーム属性とを特定し、それらに応じて復号方法を選択する。ここで、その圧縮符号化方式は、例えば、MPEG−2、MPEG−4 AVC、及びVC1を含む。DEC5204は更に、復号された非圧縮のピクチャをDPB5205へ転送する。
DEC5204はその他に、ディペンデントビュー・ビデオ・ストリームから一つのビデオ・シーケンスの先頭のVAUを読み出す度に、そのVAUからオフセット・メタデータを読み出す。そのビデオ・シーケンスの再生区間では、DEC5204は、まず、そのVAUと共に一つのPESパケットに格納されたPTSと、そのVAUの圧縮ピクチャ・データの表すフレームの番号とを特定する。DEC5204は次に、そのフレーム番号に対応付けられたオフセット情報をオフセット・メタデータから読み出して、特定されたPTSの示す時刻にプレーン加算部5024へ送出する。
DPB5205は、復号された非圧縮のピクチャを一時的に保持する。DEC5204がPピクチャ及びBピクチャを復号するとき、DPB5205はDEC5204からの要求に応じて、保持されている非圧縮のピクチャの中から参照ピクチャを検索してDEC5204に提供する。
ピクチャ・スイッチ5207は、DPB5205から非圧縮の各ピクチャを、元のTSパケットに含まれるPTSの示す時刻に、左映像プレーン・メモリ5220と右映像プレーン・メモリ5221とのいずれかに書き込む。ここで、同じ3D・VAUに属するベースビュー・ピクチャとディペンデントビュー・ピクチャとではPTSが等しい。従って、ピクチャ・スイッチ5207は、DPB5205に保持された、PTSの等しい一対のピクチャのうち、ベースビュー・ピクチャを先に左映像プレーン・メモリ5220に書き込み、続いてディペンデントビュー・ピクチャを右映像プレーン・メモリ5221に書き込む。
≪1プレーン+(ゼロ・)オフセット・モードのプレーン加算部≫
図53は、1プレーン+オフセット・モード又は1プレーン+ゼロ・オフセット・モードのプレーン加算部5024の機能ブロック図である。図53を参照するに、プレーン加算部5024は、視差映像生成部5310、スイッチ5320、四つのクロッピング処理部5331−5334、及び四つの加算部5341−5344を含む。
視差映像生成部5310は、システム・ターゲット・デコーダ5023から左映像プレーン5301と右映像プレーン5302とを受信する。L/Rモードの再生装置102では、左映像プレーン5301はレフトビュー・ビデオ・プレーンを表し、右映像プレーン5302はライトビュー・ビデオ・プレーンを表す。L/Rモードの視差映像生成部5310は、受信された各ビデオ・プレーン5301、5302をそのままスイッチ5320へ送出する。一方、デプス・モードの再生装置102では、左映像プレーン5301は2D映像のビデオ・プレーンを表し、右映像プレーン5302はその2D映像に対するデプスマップを表す。デプス・モードの視差映像生成部5310は、まずそのデプスマップからその2D映像の各部の両眼視差を計算する。視差映像生成部5310は次に、左映像プレーン5301を加工して、ビデオ・プレーンにおけるその2D映像の各部の表示位置を、計算された両眼視差に依って左右に移動させる。それにより、レフトビュー・ビデオ・プレーンとライトビュー・ビデオ・プレーンとの対が生成される。視差映像生成部5310は更に、生成されたビデオ・プレーンの対を左映像プレーンと右映像プレーンとの対としてスイッチ5320へ送出する。
スイッチ5320は、再生制御部5035からB−D表示モードを指示されたとき、PTSの等しい左映像プレーン5301と右映像プレーン5302とをその順で第1加算部5341へ送出する。スイッチ5320は、再生制御部5035からB−B表示モードを指示されたとき、PTSの等しい左映像プレーン5301と右映像プレーン5302との一方を、一フレーム当たり二回ずつ、第1加算部5341へ送出し、他方を破棄する。
第1クロッピング処理部5331は、再生制御部5035から1プレーン+オフセット・モードを指示されたとき、副映像プレーン5303に対してオフセット制御を次のように行う。第1クロッピング処理部5331はまず、システム・ターゲット・デコーダ5023からオフセット情報5307を受信する。そのとき、第1クロッピング処理部5331は、プレーヤ変数記憶部5036内のSPRM(27)5351から副映像プレーンに対する参照オフセットIDを読み出す。第1クロッピング処理部5331は次に、その参照オフセットIDの示すオフセット・シーケンスに属するオフセット情報を、システム・ターゲット・デコーダ5023から受け取ったオフセット情報5307の中から検索する。第1クロッピング処理部5331は更に、検索されたオフセット情報を利用して、副映像プレーン5303に対してオフセット制御を行う。その結果、副映像プレーン5303は、レフトビューとライトビューとを表す一対のプレーン・データに変換される。更に、レフトビューとライトビューとの副映像プレーンは交互に第1加算部5341へ送出される。
ここで、SPRM(27)5351の値は一般に、カレントPIが切り換わる度に再生制御部5035によって更新される。その他に、プログラム実行部5034が、ムービーオブジェクト又はBD−Jオブジェクトに従ってSPRM(27)5351の値を設定してもよい。
同様に、第2クロッピング処理部5332は、PGプレーン5304を、レフトビューとライトビューとのPGプレーンに変換する。それらのPGプレーンは交互に第2加算部5342へ送出される。第3クロッピング処理部5333は、IGプレーン5305を、レフトビューとライトビューとのIGプレーンの対に変換する。それらのIGプレーンは交互に第3加算部5343へ送出される。第4クロッピング処理部5334は、イメージ・プレーン5306を、レフトビューとライトビューとのイメージ・プレーンに変換する。それらのイメージ・プレーンは交互に第4加算部5344へ送出される。
第1クロッピング処理部5331は、再生制御部5035から1プレーン+ゼロ・オフセット・モードを指示されたとき、副映像プレーン5303に対するオフセット制御を行うことなく、副映像プレーン5303をそのまま、二回繰り返して第1加算部5341へ送出する。他のクロッピング処理部5332−5334についても同様である。
第1加算部5341は、スイッチ5320からはビデオ・プレーンを受信し、第1クロッピング処理部5331からは副映像プレーンを受信する。第1加算部5341はそのとき、受信されたビデオ・プレーンと副映像プレーンとを一組ずつ重畳して第2加算部5342へ渡す。第2加算部5342は、第2クロッピング処理部5332からPGプレーンを受信し、第1加算部5341から受信されたプレーン・データに重畳して第3加算部5343へ渡す。第3加算部5343は、第3クロッピング処理部5333からIGプレーンを受信し、第2加算部5342から受信されたプレーン・データに重畳して第4加算部5344へ渡す。第4加算部5344は、第4クロッピング処理部5334からイメージ・プレーンを受信し、第3加算部5343から受信されたプレーン・データに重畳して表示装置103へ送出する。ここで、各加算部5341−5344は、プレーン・データの重畳にα合成を利用する。こうして、左映像プレーン5301と右映像プレーン5302とのそれぞれに、図53に矢印5300で示されている順序で、副映像プレーン5303、PGプレーン5304、IGプレーン5305、及びイメージ・プレーン5306が重畳される。その結果、各プレーン・データの示す映像は表示装置103の画面上に、左映像プレーン又は右映像プレーン、副映像プレーン、IGプレーン、PGプレーン、及びイメージ・プレーンの順に重ねられたように表示される。
[オフセット制御のフローチャート]
図54は、各クロッピング処理部5331−5334によるオフセット制御のフローチャートである。各クロッピング処理部5331−5334は、システム・ターゲット・デコーダ5023からオフセット情報5307を受信したときに、オフセット制御を開始する。以下の説明では、第2クロッピング処理部5332がPGプレーン5304に対してオフセット制御を行う場合を想定する。他のクロッピング処理部5331、5333、5334はそれぞれ、副映像プレーン5303、IGプレーン5305、及びイメージ・プレーン5306に対して同様な処理を行う。
ステップS5401では、第2クロッピング処理部5332はまず、システム・ターゲット・デコーダ5023からPGプレーン5304を受信する。そのとき、第2クロッピング処理部5332はSPRM(27)5351から、PGプレーンに対する参照オフセットIDを読み出す。第2クロッピング処理部5331は次に、その参照オフセットIDの示すオフセット・シーケンスに属するオフセット情報を、システム・ターゲット・デコーダ5023から受け取ったオフセット情報5307の中から検索する。その後、処理はステップS5402へ進む。
ステップS5402では、第2クロッピング処理部5332は、スイッチ5320によって選択されたビデオ・プレーンがレフトビューとライトビューとのいずれを表すかをチェックする。ビデオ・プレーンがレフトビューを表すとき、処理はステップS5403へ進む。ビデオ・プレーンがライトビューを表すとき、処理はステップS5406へ進む。
ステップS5403では、第2クロッピング処理部5332は、検索されたオフセット方向の値をチェックする。ここで、次の場合を想定する:オフセット方向の値が“0”であるときは3Dグラフィックス映像の奥行きが画面よりも手前であり、オフセット方向の値が“1”であるときは奥である。その場合、オフセット方向の値が“0”であるとき、処理はステップS5404へ進む。オフセット方向の値が“1”であるとき、処理はステップS5405へ進む。
ステップS5404では、第2クロッピング処理部5332は、PGプレーン5304に右向きのオフセットを与える。すなわち、PGプレーン5304の含む各画素データの位置をオフセット値だけ右へ移動させる。その後、処理はステップS5409へ進む。
ステップS5405では、第2クロッピング処理部5332は、PGプレーン5304に左向きのオフセットを与える。すなわち、PGプレーン5304の含む各画素データの位置をオフセット値だけ左へ移動させる。その後、処理はステップS5409へ進む。
ステップS5406では、第2クロッピング処理部5332は、検索されたオフセット方向の値をチェックする。オフセット方向の値が“0”であるとき、処理はステップS5407へ進む。オフセット方向の値が“1”であるとき、処理はステップS5408へ進む。
ステップS5407では、ステップS5404とは逆に、第2クロッピング処理部5332は、PGプレーン5304に左向きのオフセットを与える。すなわち、PGプレーン5304の含む各画素データの位置をオフセット値だけ左へ移動させる。その後、処理はステップS5409へ進む。
ステップS5408では、ステップS5405とは逆に、第2クロッピング処理部5332はPGプレーン5304に右向きのオフセットを与える。すなわち、PGプレーン5304の含む各画素データの位置をオフセット値だけ右へ移動させる。その後、処理はステップS5409へ進む。
ステップS5409では、第2クロッピング処理部5332は、処理後のPGプレーン5304を第3クロッピング処理部5334へ送出する。その後、処理は終了する。
[オフセット制御によるプレーン・データの変化]
図55の(b)は、第2クロッピング処理部5332によるオフセット制御で加工される前のPGプレーンGPを示す模式図である。図55の(b)を参照するに、PGプレーンGPは、字幕“I Love you”を表す画素データ群、すなわち字幕データSTLを含む。その字幕データSTLはPGプレーン・データGPの左端から距離D0に位置する。
図55の(a)は、右向きのオフセットが与えられたPGプレーンRGPを示す模式図である。図55の(a)を参照するに、第2クロッピング処理部5332は、PGプレーンGPに右向きのオフセットを与える場合、PGプレーンGP内の各画素データの位置を元の位置から、オフセット値に等しい画素数OFSだけ右へ移動させる。具体的には、第2クロッピング処理部5332はまず、クロッピング処理によってPGプレーンGPの右端から、オフセット値に等しい幅OFSの帯状領域AR1に含まれる画素データを除去する。第2クロッピング処理部5332は次に、PGプレーンGPの左端に画素データを付加して、幅OFSの帯状領域AL1を構成する。ここで、その領域AL1に含まれる画素データは透明に設定される。こうして、右向きのオフセットが与えられたPGプレーンRGPが得られる。実際、字幕データSTLはそのPGプレーンRGPの左端から距離DRに位置し、その距離DRは、元の距離D0にオフセット値OFSを加えた値に等しい:DR=D0+OFS。
図55の(c)は、左向きのオフセットが与えられたPGプレーンLGPを示す模式図である。図55の(c)を参照するに、第2クロッピング処理部5332は、PGプレーンGPに左向きのオフセットを与える場合、PGプレーンGP内の各画素データの位置を元の位置から、オフセット値に等しい画素数OFSだけ左へ移動させる。具体的には、第2クロッピング処理部5332はまず、クロッピング処理によってPGプレーンGPの左端から、オフセット値に等しい幅OFSの帯状領域AL2に含まれる画素データを除去する。第2クロッピング処理部5332は次に、PGプレーンGPの右端に画素データを付加して、幅OFSの帯状領域AR2を構成する。ここで、その領域AR2に含まれる画素データは透明に設定される。こうして、左向きのオフセットが与えられたPGプレーンLGPが得られる。実際、字幕データSTLはそのPGプレーンLGPの左端から距離DLに位置し、その距離DLは、元の距離D0からオフセット値OFSを除いた値に等しい:DL=D0−OFS。
≪2プレーン・モードのプレーン加算部≫
図56は、2プレーン・モードのプレーン加算部5624の部分的な機能ブロック図である。図56を参照するに、2プレーン・モードのプレーン加算部5624は、図53に示されている1プレーン+オフセットモードのプレーン加算部5324と同様、視差映像生成部5310、スイッチ5320、第1加算部5341、第2加算部5342、及び第2クロッピング処理部5332を含む。図56には示されていないが、2プレーン・モードのプレーン加算部5624は更に、図53に示されている他のクロッピング処理部5331、5333、5334、及び他の加算部5343、5344を含む。それらに加え、2プレーン・モードのプレーン加算部5624は、PGプレーン5304、5305の入力部に、第2視差映像生成部5610と第2スイッチ5620とを含む。図56には示されていないが、同様な構成は、副映像プレーン、IGプレーン、及びイメージ・プレーンの各入力部にも含まれる。
第2視差映像生成部5610は、システム・ターゲット・デコーダ5023からレフトビューPGプレーン5604とライトビューPGプレーン5605とを受信する。L/Rモードの再生装置102では、レフトビューPGプレーン5604とライトビューPGプレーン・データ5605とはそれぞれ、文字通り、レフトビューPGプレーンとライトビューPGプレーンとを表す。従って、第2視差映像生成部5610は各プレーン・データ5604、5605をそのまま第2スイッチ5620へ送出する。一方、デプス・モードの再生装置102では、レフトビューPGプレーン5604は2Dグラフィックス映像のPGプレーンを表し、ライトビューPGプレーン5605はその2Dグラフィックス映像に対するデプスマップを表す。従って、第2視差映像生成部5610はまず、そのデプスマップからその2Dグラフィックス映像の各部の両眼視差を計算する。第2視差映像生成部5610は次に、レフトビューPGプレーン5604を加工して、PGプレーンにおけるその2Dグラフィックス映像の各部の表示位置を、計算された両眼視差に依って左右に移動させる。それにより、レフトビューPGプレーンとライトビューPGプレーンとが生成される。第2視差映像生成部5610は更に、それらのPGプレーンを第2スイッチ5620へ送出する。
第2スイッチ5620は、PTSの等しいレフトビューPGプレーン5604とライトビューPGプレーン5605とをその順で、第2クロッピング処理部5332へ送出する。第2クロッピング処理部5332は、各PGプレーン5604、5605をそのまま、第2加算部5342へ送出する。第2加算部5342は、第1加算部5341から受信されたプレーン・データに各PGプレーン5604、5605を重畳して、第3加算部5343へ渡す。その結果、左映像プレーン5301にはレフトビューPGプレーン5604が重畳され、右映像プレーン5302にはライトビューPGプレーン5605が重畳される。
[2プレーン・モードでのオフセット情報の用途]
2プレーン・モードの第2クロッピング処理部5632は、オフセット情報5307を利用してレフトビューPGプレーン5604又はライトビューPGプレーン5605に対してオフセット制御を行ってもよい。そのオフセット制御には、以下に述べる利点がある。
L/Rモードでは、図3の(b)に示されている第1サブTS内のレフトビューPGストリーム312Aに代えて、図3の(a)に示されているメインTS内のPGストリーム303A(以下、2D・PGストリームと略す。)がレフトビューPGプレーンとして利用されてもよい。すなわち、図41に示されているベースビュー・ストリーム・エントリ4143において、サブパスID参照情報4151はメインパスを示し、ストリーム・ファイル参照情報4152は、2D・PGストリームが格納されたファイル2Dを示し、PID4153は2D・PGストリームのPIDを示す。その場合、第1サブTSはレフトビューPGストリームを含まなくてもよいので、3D映像コンテンツのデータ量を削減することができる。
しかし、その反面、3Dグラフィックス映像に次の不具合が生じる危険性がある。図57の(a)、(b)、(c)は、2D・PGストリームの表すレフトビュー・グラフィックス映像GOB0と、ライトビューPGストリームの表すライトビュー・グラフィックス映像GOB1−3とを示す模式図である。図57の(a)−(c)を参照するに、画面SCR内の実線はレフトビュー・グラフィックス映像GOB0を示し、破線はライトビュー・グラフィックス映像GOB1−3を示す。図57の(a)、(b)、(c)の順にグラフィックス映像間の距離Δ1、Δ2、Δ3は小さい(Δ1<Δ2<Δ3)ので、3Dグラフィックス映像と画面SCRとの奥行きの差が小さい。従って、グラフィックス映像の対が図57の(a)、(b)、(c)の順に表示されるとき、3Dグラフィックス映像は画面SCRから手前に飛び出すように見える。レフトビュー・グラフィックス映像GOB0が字幕を表すとき、その映像GOB0は2D映像としても利用されるので、その表示位置は図57の(a)−(c)の間で一定である。一方、ライトビュー・グラフィックス映像GOB1−3の表示位置は図57の(a)、(b)、(c)の順に左へ移動する。従って、グラフィックス映像間の中心位置C1、C2、C3が図57の(a)、(b)、(c)の順に左へ移動する。すなわち、字幕の3Dグラフィックス映像は左向きに移動するように見える。そのような字幕の移動は視聴者に違和感を与える危険性がある。
2プレーン・モードの第2クロッピング処理部5332は、オフセット情報に従ったオフセット制御を次のように利用して、3Dグラフィックス映像の水平方向での移動を防ぐ。図57の(d)、(e)、(f)はそれぞれ、図57の(a)、(b)、(c)に示されているレフトビュー・グラフィックス映像に対するオフセット制御を示す模式図である。図57の(d)−(f)を参照するに、画面SCR内の実線はオフセット制御後のレフトビュー・グラフィックス映像GOB4−6を示し、細い破線はオフセット制御前のレフトビュー・グラフィックス映像GOB0を示し、太い破線はライトビュー・グラフィックス映像GOB1−3を示す。第2クロッピング処理部5332はレフトビューPGプレーンに対し、図57の(d)、(e)、(f)に矢印で示されているオフセットOFS1、OFS2、OFS3を順番に与える。それにより、オフセット制御後のレフトビュー・グラフィックス映像GOB4−6は、オフセット制御前のものGOB0よりも右へ移動する。その結果、図57の(d)−(f)ではグラフィックス映像間の中心位置C0が一定に維持されるので、3Dグラフィックス映像は水平方向には移動しないように見える。こうして、2D・PGストリームをレフトビューPGストリームとして利用することが視聴者に違和感を与える危険性を回避することができる。
<実施形態1の効果>
本発明の実施形態1によるBD−ROMディスク101では、3D映像のAVストリーム・ファイルがデータ・ブロックに分割されて、複数のエクステント・ブロックを構成している。特にそれらのデータ・ブロックとエクステント・ブロックとの各サイズは上記の条件を満たす。それらの条件は、以下に述べるアロケーション・ルールに整理される。
[ルール1]ファイル・ベースはいずれかのファイル2Dとビット単位(bit−for−bit)で一致する。但し、ベースビュー・エクステントEXT1[・]と2DエクステントEXT2D[・]との間では、LBNが一致していなくてもよい。
[ルール2]エクステントSSEXTSS[・]は、ベースビュー・エクステントEXT1[・]とディペンデントビュー・エクステントEXT2[・]との対が整数個、インターリーブ配置で連続するデータ領域である。
[ルール3]図15に示されているとおり、ファイル・ベースの先頭から(i+1)番目(文字iは0以上の整数を表す。)のベースビュー・エクステントEXT1[i]と、ファイルDEPの先頭から(i+1)番目のディペンデントビュー・エクステントEXT2[i]とは、論理アドレス上、ディペンデントビュー・エクステントEXT2[i]、ベースビュー・エクステントEXT1[i]の順で連続して配置される:EXT2[i]→EXT1[i]。
[ルール4]ベースビュー・エクステントEXT1[・]とディペンデントビュー・エクステントEXT2[・]との各サイズは、アラインド・ユニットのサイズ(=約6KB)の整数倍に揃えられる。
[ルール5](i+1)番目のベースビュー・エクステントEXT1[i]に属するソースパケットのATSと、(i+1)番目のディペンデントビュー・エクステントEXT2[i]に属するソースパケットのATSとは、同じATC時間軸で表される。
[ルール6](i+1)番目のベースビュー・エクステントEXT1[i]と(i+1)番目のディペンデントビュー・エクステントEXT2[i]とでは、エクステントATC時間が等しい。
[ルール7]ベースビュー・エクステントEXT1[・]は、エクステントSSEXTSS[・]の後端に配置されている場合と、ファイル2Dのファイル・エントリから参照されていない場合とを除いて、条件1を満たす。すなわち、2DエクステントEXT2D[・]のサイズSEXT2D[・]は式(1)を満たす。
[ルール8]ベースビュー・エクステントEXT1[・]は、エクステントSSEXTSS[・]の後端に配置されている場合を除いて、条件2を満たす。すなわち、ベースビュー・データ・ブロックのサイズSEXT1[・]は式(2)を満たす。
[ルール9]ディペンデントビュー・エクステントEXT2[・]は、エクステントSSEXTSS[・]の後端に配置されている場合を除いて、条件3を満たす。すなわち、ディペンデントビュー・データ・ブロックのサイズSEXT2は式(3)を満たす。
[ルール10]ファイルSSの先頭から(i+1)番目のエクステントSSEXTSS[i]は(i+2)番目のエクステントSSEXTSS[i+1]とシームレスに接続される場合には、条件4を満たす。すなわち、(i+1)番目のエクステント・ブロックのサイズSEXTSS[i]は式(4)を満たす。
[ルール11](i+1)番目のベースビュー・エクステントEXT1[i]と(i+1)番目のディペンデントビュー・エクステントEXT2[i]とは、条件5を満たす。すなわち、ベースビュー・データ・ブロックとディペンデントビュー・データ・ブロックとの各サイズは、図28の(a)の表で規定された最大エクステント・サイズ以下である。
特にルール11が満たされることにより、ファイルDEPに対するシステム・レートが所定の閾値(例えば32Mbps)よりも高く上昇する場合には、ロング・ジャンプの直前に読み出されるタイプ(B)のデータ・ブロックの最大エクステント・サイズは縮小される。その結果、BD−ROMディスク101は、他のルールを満たしたまま、再生装置102にRB2の容量の下限を許容範囲内に維持させることができる。こうして、2D再生モードと3D再生モードとのいずれの再生装置においても、リード・バッファにアンダーフローを生じさせることなく、その容量を更に削減することができる。
<変形例>
(1−A)本発明の実施形態1によるL/Rモードでは、ベースビュー・ビデオ・ストリームがレフトビューを表し、ディペンデントビュー・ビデオ・ストリームがライトビューを表す。逆に、ベースビュー・ビデオ・ストリームがライトビューを表し、ディペンデントビュー・ビデオ・ストリームがレフトビューを表してもよい。本発明の実施形態1によるBD−ROMディスク101では、ベースビュー・ビデオ・ストリームとディペンデントビュー・ビデオ・ストリームとは、異なるTSに多重化されている。その他に、ベースビュー・ビデオ・ストリームとディペンデントビュー・ビデオ・ストリームとが一つのTSに多重化されていてもよい。
(1−B)3D映像を表すAVストリーム・ファイルでは、図14に示されているPMT1410に3Dディスクリプタが追加されてもよい。「3Dディスクリプタ」は、3D映像の再生方式に関してAVストリーム・ファイル全体に共通する情報であり、特に3D方式情報を含む。「3D方式情報」は、L/Rモード又はデプス・モード等、3D映像のAVストリーム・ファイルの再生方式を示す。更に、PMT1410の含む各ストリーム情報1403に3Dストリーム・ディスクリプタが追加されてもよい。「3Dストリーム・ディスクリプタ」は、AVストリーム・ファイルに含まれるエレメンタリ・ストリーム別に、3D映像の再生方式に関する情報を示す。特にビデオ・ストリームの3Dストリーム・ディスクリプタは3D表示タイプを含む。「3D表示タイプ」は、そのビデオ・ストリームから映像をL/Rモードで再生するとき、その映像がレフトビューとライトビューとのいずれであるのかを示す。3D表示タイプはまた、そのビデオ・ストリームから映像をデプス・モードで再生するとき、その映像が2D映像とデプスマップとのいずれであるのかを示す。このように、PMT1410が3D映像の再生方式に関する情報を含むとき、その映像の再生系統はAVストリーム・ファイルだけからでもその情報を取得できる。従って、そのようなデータ構造は、例えば放送波で3D映像コンテンツを頒布するときに有効である。
(1−C)ディペンデントビュー・クリップ情報ファイルは、ディペンデントビュー・ビデオ・ストリームのPID=0x1012、0x1013に割り当てられているビデオ・ストリーム属性情報に所定のフラグを含んでもよい。そのフラグがオンであるときは、ディペンデントビュー・ビデオ・ストリームがベースビュー・ビデオ・ストリームを参照するものであることを示す。そのビデオ・ストリーム属性情報が更に、参照先のベースビュー・ビデオ・ストリームに関する情報を含んでもよい。その情報は、3D映像コンテンツが規定のフォーマットどおりに作成されているか否かを所定のツールで検証するときに、ビデオ・ストリーム間の対応関係を確認するのに利用することができる。
本発明の実施形態1では、クリップ情報ファイルに含まれるエクステント起点からベースビュー・エクステントとディペンデントビュー・エクステントとの各サイズを算出することができる。その他に、各エクステントのサイズの一覧表が、例えばクリップ情報ファイルにメタデータの一部として格納されてもよい。
(1−D)図39に示されている3Dプレイリスト・ファイル222はサブパス3902を一つ含む。その他に、3Dプレイリスト・ファイルがサブパスを複数含んでもよい。例えば、一方のサブパスのサブパス・タイプが「3D・L/R」であり、他方のサブパスのサブパス・タイプが「3D・デプス」であってもよい。その3Dプレイリスト・ファイルに従って3D映像が再生されるとき、再生対象のサブパスがそれら二種類のサブパスの間で切り換えられることにより、再生装置102をL/Rモードとデプス・モードとの間で容易に切り換えさせることができる。特にその切り換え処理は、3Dプレイリスト・ファイルそのものを切り換える処理よりも速やかに実現可能である。
3Dプレイリスト・ファイルは、サブパス・タイプの等しいサブパスを複数含んでいてもよい。例えば、同じシーンに対する両眼視差の異なる3D映像が共通のレフトビューに対するライトビューの違いで表現されるとき、異なるライトビューを表す複数のファイルDEPがBD−ROMディスク101に記録される。その場合、3Dプレイリスト・ファイルは、サブパス・タイプが「3D・L/R」であるサブパスを複数含む。それらのサブパスは、異なるファイルDEPの再生経路を個別に規定する。その3Dプレイリスト・ファイルに従って3D映像が再生されるとき、再生対象のサブパスが例えばユーザの操作に応じて速やかに切り換えられるので、3D映像を実質的に途切れさせることなく、その両眼視差を変化させることができる。それにより、ユーザに所望の両眼視差の3D映像を容易に選択させることができる。
図39に示されている3Dプレイリスト・ファイル222では、ベースビュー・ビデオ・ストリームはメインパス3901内のSTNテーブルに登録され、ディペンデントビュー・ビデオ・ストリームは拡張データ3903内のSTNテーブルSS3930に登録されている。その他に、ディペンデントビュー・ビデオ・ストリームはSTNテーブルに登録されていてもよい。その場合、STNテーブルは、登録されたビデオ・ストリームがベースビューとディペンデントビューとのいずれを表すものであるかを示すフラグを含んでもよい。
本発明の実施形態1によるBD−ROMディスク101には、2Dプレイリスト・ファイルと3Dプレイリスト・ファイルとが別々に記録されている。その他に、図39に示されているサブパス3902が、拡張データ3903と同様に、3D再生モードの再生装置102によってのみ参照される領域に記録されてもよい。その場合、サブパス3902が2D再生モードの再生装置102を誤動作させる危険性はないので、3Dプレイリスト・ファイルをそのまま、2Dプレイリスト・ファイルとして利用することができる。その結果、BD−ROMディスクのオーサリングが簡単化される。
(1−E)図43に示されているインデックス・ファイル211は、タイトル全体で共通する3D存在フラグ4320と2D/3Dお好みフラグ4330とを含む。その他に、インデックス・ファイルが、タイトル別に異なる3D存在フラグ又は2D/3Dお好みフラグを設定していてもよい。
(1−F)3D再生装置では、SPRM(13)にパレンタル・レベルが設定されているのに加えて、SPRM(30)に3Dパレンタル・レベルが設定されていてもよい。3Dパレンタル・レベルは所定の制限年齢を示し、BD−ROMディスク101に記録された3D映像タイトルの視聴に対するパレンタル制御に利用される。SPRM(13)の値と同様に、SPRM(30)の値は、3D再生装置のユーザによって3D再生装置のOSD等を利用して設定される。3D再生装置は各3D映像タイトルに対するパレンタル制御を例えば次のように行う。3D再生装置はまず、そのタイトルを2D再生モードで視聴することが許可された視聴者の年齢をBD−ROMディスク101から読み出して、SPRM(13)の値と比較する。その年齢がSPRM(13)の値を超えていれば、3D再生装置はそのタイトルの再生を停止する。その年齢がSPRM(13)の値以下であれば、3D再生装置は続いて、そのタイトルを3D再生モードで視聴することが許可された視聴者の年齢をBD−ROMディスク101から読み出して、SPRM(30)の値と比較する。その年齢がSPRM(30)の値以下であれば、3D再生装置はそのタイトルを3D再生モードで再生する。その年齢がSPRM(30)の値を超えていれば、3D再生装置はそのタイトルを2D再生モードで再生する。こうして、年齢による瞳孔間距離の相違を考慮して、「一定の年齢未満の子供には3D映像を2D映像としてしか見せない」等のパレンタル制御を実現することができる。このパレンタル制御は好ましくは、図44に示されている再生対象のプレイリスト・ファイルを選択する処理において「表示装置が3D映像に対応している」と判定されたときに、すなわち、ステップS4405において「Yes」と判定されたときに行われる。尚、SPRM(30)には、制限年齢に代えて、3D再生モードの許可/禁止を示す値が設定され、3D再生装置はその値に従って3D再生モードの有効/無効を判断してもよい。
(1−G)3D再生装置では、「2D再生モードと3D再生モードとのいずれが優先されるべきか」を示す値がSPRM(31)に設定されていてもよい。SPRM(31)の値は、3D再生装置のユーザによって3D再生装置のOSD等を利用して設定される。3D再生装置は、図44に示されている再生対象のプレイリスト・ファイルを選択する処理におけるステップS4403で、2D/3Dお好みフラグと共にSPRM(31)を参照する。それらがいずれも2D再生モードを示しているときは、3D再生装置は2D再生モードを選択する。2D/3Dお好みフラグとSPRM(31)とがいずれも3D再生モードを示しているときは、3D再生装置は、再生モードの選択画面を表示することなく、ステップS4405、すなわちHDMI認証を行う。その結果、表示装置が3D映像の再生に対応可能であれば、3D再生装置は3D再生モードを選択する。2D/3Dお好みフラグとSPRM(31)とが異なる再生モードを示しているときは、3D再生装置はステップS4404を実行し、すなわち再生モードの選択画面を表示してユーザに再生モードを選択させる。その他に、アプリケーション・プログラムに再生モードを選択させてもよい。こうして、3D映像コンテンツに2D/3Dお好みフラグが設定されていても、その値の示す再生モードが、SPRM(31)の示す再生モード、すなわち、ユーザが予め設定した再生モードと一致しないときにのみ、ユーザに改めて再生モードを選択させるようにすることができる。
BD−Jオブジェクト等のアプリケーション・プログラムは、SPRM(31)を参照して再生モードを選択してもよい。更に、ステップS4404においてユーザに再生モードを選択させる際、選択画面に表示されるメニューの初期状態がSPRM(31)の値に依って決定されてもよい。例えば、SPRM(31)の値が2D再生モードの優先を示す場合には、2D再生モードの選択ボタンにカーソルを合わせた状態でメニューが表示され、3D再生モードの優先を示す場合には、3D再生モードの選択ボタンにカーソルを合わせた状態でメニューが表示される。その他に、3D再生装置は、父、母、子供等、複数のユーザのアカウントを管理する機能を持つとき、現時点でログインしているユーザのアカウントに合わせてSPRM(31)の値を設定してもよい。
SPRM(31)の値は、「2D再生モードと3D再生モードとのいずれが優先されるべきか」に加えて、「2D再生モードと3D再生モードとのいずれが常に設定されるべきか」を示してもよい。「2D再生モードが常に設定されるべき」ことをSPRM(31)の値が示す場合、3D再生装置は、2D/3Dお好みフラグの値にかかわらず、常に2D再生モードを選択する。その場合、SPRM(25)の値は2D再生モードを示すように設定される。「3D再生モードが常に設定されるべき」ことをSPRM(31)の値が示す場合、3D再生装置は、2D/3Dお好みフラグの値にかかわらず、再生モードの選択画面を表示することなくHDMI認証を行う。その場合、SPRM(25)の値は3D再生モード(L/Rモード又はデプス・モード)を示すように設定される。こうして、3D映像コンテンツに2D/3Dお好みフラグが設定されていても、ユーザの予め設定した再生モードが常に優先されるようにすることができる。
(1−H)ファイルDEPに対するシステム・レートRTS2がファイル2Dに対するシステム・レートRTS1と同程度に高く設定される場合、ディペンデントビュー転送速度REXT2も同程度まで上昇し得る。(n+1)番目のディペンデントビュー・データ・ブロックに対する転送速度REXT2[n]がそのように上昇した場合、平均転送速度REXT1[n]、REXT2[n]の合計に対する制限から、(n+1)番目のベースビュー・データ・ブロックに対する転送速度REXT1[n]は最高値RMAX1よりも顕著に降下する。一方、式(7)の右辺では、分母に含まれる平均転送速度REXT2Dがその最高値RMAX2Dで評価されている。更に、(n+1)番目のベースビュー・データ・ブロックのエクステントATC時間は、その最大エクステント・サイズとベースビュー転送速度REXT1[n]との比で表される値を上限とする。従って、その上限は実際のエクステントATC時間よりも顕著に長い。(n+1)番目のベースビュー・データ・ブロックと(n+1)番目のディペンデントビュー・データ・ブロックとではエクステントATC時間が共通であるので、そのディペンデントビュー・データ・ブロックのサイズは最大で、ディペンデントビュー転送速度REXT2[n]と上記のエクステントATC時間の上限との積に等しい。そのサイズは、シームレス再生に実際に必要な値よりも顕著に大きいので、RB22212の容量の更なる削減が阻まれる。従って、ファイルDEPに対するシステム・レートRTS2をファイル2Dに対するシステム・レートRTS1と同程度に高く設定する可能性がある場合、式(7)は次式(12)に変更される:
式(12)の右辺では、分母に含まれる転送速度として、2Dエクステントに対する平均転送速度の最高値RMAX2D、又は、転送速度の最高値の合計RMAX1+RMAX2とディペンデントビュー転送速度REXT2との間の差のいずれか低い方が採用される。ここで、転送速度の最高値の合計RMAX1+RMAX2はシステム・レートの合計RTS1+RTS2の192/188倍に等しい。従って、ディペンデントビュー転送速度REXT2がシステム・レートと同程度まで上昇する場合には、上記の差で最大エクステント・サイズが評価される。それにより、ベースビュー・データ・ブロックのエクステントATC時間の上限は、実際のエクステントATC時間に近い値に抑えられる。それ故、ディペンデントビュー・データ・ブロックのサイズは、シームレス再生に実際に必要な値程度に抑えられる。こうして、RB22212の容量を十分に小さく維持することができる。
(1−I)PI間のシームレス接続におけるATSの設定条件
一つの再生区間(PI)内では、図17に示されているとおり、(i+1)番目のエクステント・ペアEXT1[i]、EXT2[i](i=0、1、2、…)の間でエクステントATC時間を揃える際に、ディペンデントビュー・データ・ブロックEXT2[i]の先頭のソースパケット(SP2#0)のATSA2(0)がベースビュー・データ・ブロックEXT1[i]の先頭のソースパケット(SP1#0)のATSA1(0)以上に設定される:A2(0)≧A1(0)。しかし、(i+1)番目のエクステント・ペアEXT1[i]、EXT2[i]の間で、RB1、RB2のそれぞれからシステム・ターゲット・デコーダへの転送期間は、厳密には揃っていない。一方、異なるPI間を「コネクション・コンディション(CC)=6」という条件でシームレスに接続する場合、図37の(b)に示されているように、それらのPI間でATCが連続していなければならない。従って、以下に説明されるように、異なるPI間の接続点では、RB2がアンダーフローを生じる危険性がある。
図58の(a)は、PI#(N−1)及びPI#N(文字Nは1以上の整数を表す。)がシームレスに接続されているとき、その接続点の前後に位置する各データ・ブロックがRB1、RB2からシステム・ターゲット・デコーダへ転送される期間を示す模式図である。(n+1)番目のエクステント・ペア、EXT1[n]、EXT2[n](文字nは0以上の整数を表す。)はPI#(N−1)の後端に位置し、(n+2)番目のエクステント・ペア、EXT1[n+1]、EXT2[n+1]はPI#Nの先端に位置する。ここで、EXT1[n]の後端とEXT1[n+1]の先端との間ではATCが不連続でもよい。EXT2[n]の後端とEXT2[n+1]の先端との間でも同様である。図58の(a)を参照するに、EXT2[n]の転送期間TATC20[n]はEXT1[n]の転送期間TATC1[n]よりも遅れて終了する。すなわち、EXT2[n+1]のSP2#0のATSA2(0)がEXT1[n+1]のSP1#0のATSA1(0)よりも大きい。それらのATSA1(0)、A2(0)間では、EXT2[n]の後端部分5801の転送期間が、EXT1[n+1]の先端部分の転送期間と重複する。
図58の(b)、(c)はそれぞれ、図58の(a)に示されているEXT1[n]、EXT1[n+1]、EXT2[n]、EXT2[n+1]を3D再生装置によって復号する際におけるRB1、RB2の各蓄積データ量DA1、DA2の時間的変化を示すグラフである。図58の(b)を参照するに、RB1の蓄積データ量DA1は、EXT1[n]の読み出し期間PRB[n]では上昇し、EXT1[n]の後端からEXT2[n+1]の先端までのジャンプ又はゼロ・セクタ遷移が生じる期間PJ、及びEXT2[n+1]の読み出し期間PRD[n+1]では下降する。一方、EXT1[n]の転送期間TATC1[n]の長さは、EXT1[n]の読み出し期間PRB[n]の開始時刻からEXT1[n+1]の読み出し期間PRB[n+1]の開始時刻までの時間以上に設定されている。従って、後者の開始時刻での蓄積データ量DA1は前者の開始時刻での値を下回らない。すなわち、RB1はアンダーフローを生じない。図58の(c)を参照するに、RB2の蓄積データ量DA2は、EXT2[n]の読み出し期間PRD[n]では上昇し、EXT1[n]の読み出し期間PRB[n]、及び上記のジャンプ又はゼロ・セクタ遷移の期間PJでは下降する。一方、EXT2[n]の転送期間TATC20[n]の長さは、EXT1[n]の読み出し期間PRB[n]の開始時刻からEXT1[n+1]の読み出し期間PRB[n+1]の開始時刻までの時間以上に設定されている。従って、EXT2[n+1]の読み出し期間PRD[n+1]の開始時刻TS1での蓄積データ量DA2は、EXT2[n]の読み出し期間PRD[n]の開始時刻TS0での値よりも大きい。すなわち、RB2はアンダーフローを生じない。こうして、図58の(a)に示されているように、異なるPI間の接続点でEXT2[n]の転送期間TATC20[n]がEXT1[n]の転送期間TATC1[n]よりも遅れて終了する場合には問題は生じ得ない。
図58の(d)は、(a)と同様に、PI#(N−1)及びPI#Nがシームレスに接続されているとき、その接続点の前後に位置する各データ・ブロックがRB1、RB2からシステム・ターゲット・デコーダへ転送される期間を示す模式図である。但し、図58の(d)では(a)とは異なり、EXT2[n]の転送期間TATC21[n]はEXT1[n]の転送期間TATC1[n]よりも早く終了する。すなわち、EXT2[n+1]のSP2#0のATSA2(0)がEXT1[n+1]のSP1#0のATSA1(0)よりも小さい。それらのATSA2(0)、A1(0)間では、EXT2[n+1]の先端部分5811の転送期間が、EXT1[n]の後端部分の転送期間と、形式的には重複する。
図58の(e)、(f)はそれぞれ、図58の(d)に示されているEXT1[n]、EXT1[n+1]、EXT2[n]、EXT2[n+1]を3D再生装置によって復号する際におけるRB1、RB2の各蓄積データ量DA1、DA2の時間的変化を示すグラフである。図58の(e)の示すグラフは、(b)のグラフと同様である。従って、RB1はアンダーフローを生じない。図58の(f)を参照するに、RB2の蓄積データ量DA2は、EXT2[n]の読み出し期間PRD[n]で上昇し、EXT1[n]の読み出し期間PRB[n]で下降する。ここで、EXT2[n]の転送期間TATC21[n]はEXT1[n]の読み出し期間PRB[n]よりも早く終了する。従って、RB2の蓄積データ量DA2は、EXT1[n]の読み出し期間PRB[n]が終了するよりも前の時刻TUFで、EXT2[n]の読み出し期間PRD[n]の開始時刻TS0での値に戻る。ここで、EXT1[n]の読み出し期間PRB[n]とジャンプ又はゼロ・セクタ遷移の期間PJとでは、EXT2[n+1]をBD−ROMディスクからRB2へ読み出すことはできない。その結果、EXT2[n+1]内でのATSの設定に反して、EXT2[n]の転送期間TATC21[n]の終了時刻TUFからEXT2[n+1]の読み出し期間PRD[n]の開始時刻TS1までの期間では、RB2からシステム・ターゲット・デコーダへのデータが途絶える。すなわち、RB2はアンダーフローを生じる。こうして、図58の(d)に示されているように、異なるPI間の接続点でEXT2[n]の転送期間TATC21[n]がEXT1[n]の転送期間TATC1[n]よりも早く終了する場合には問題が生じ得る。
PI間のシームレス接続に起因するRB2のアンダーフローを防止するには、以下に述べる二つの方法のいずれかを採用すればよい。第一の方法は、PI間の接続点以後に読み出されるディペンデントビュー・エクステント内に設定されるATSの示す時刻を、その接続点よりも前に読み出されるベースビュー・エクステントの転送期間の終了時刻以後に設定する。第二の方法は、エクステント・ブロック間のシームレス接続ではプリロードを不要にする。
(1−I−1)第一の方法
図59の(a)、(b)はそれぞれ、PI#(N−1)とPI#Nとの間のシームレス接続にCC=6、5が設定される場合に、第一の方法によって各ソースパケットに設定されるATSと、そのソースパケットの転送期間との間の関係を示す模式図である。(n+1)番目のエクステント・ペア、EXT1[n]、EXT2[n]はPI#(N−1)の後端に位置し、(n+2)番目のエクステント・ペア、EXT1[n+1]、EXT2[n+1]はPI#Nの先端に位置する。図59の(a)、(b)を参照するに、上段に並ぶ矩形5910は、EXT1[n]、EXT1[n+1]に含まれるソースパケットの転送期間を表し、下段に並ぶ矩形5920は、EXT2[n]、EXT2[n+1]に含まれるソースパケットの転送期間を表す。時間軸と並行するATCの軸は、ソースパケット間でのATSの関係を示す。ここで、ATCの軸方向に対する各矩形5910、5920の先頭の位置は、対応するソースパケットのATSの値を表す。図59の(a)ではCC=6が設定されているので、PI#(N−1)とPI#NとにわたってATCが連続している。一方、図59の(b)ではCC=5が設定されているので、PI#(N−1)とPI#Nとの間でATCが不連続であってもよい。
図59の(a)、(b)を参照するに、EXT2[n+1]の先端に位置するソースパケットSP22の転送開始時刻T22は、EXT1[n]の後端に位置するソースパケットSP11の転送完了時刻T12以降である:T22≧T12。その場合、EXT1[n]内のソースパケットが全て転送された後に、EXT2[n+1]の先端に位置するソースパケットSP22は転送されればよい。それにより、EXT2[n+1]の実際の転送期間を、EXT2[n+1]に設定されたATSの示す期間と整合させることができる。すなわち、RB2のアンダーフローを防止することができる。
ここで、メインTSに属するTSパケットを1つ転送するのに要する時間AT1は、TSパケットの長さ188バイトをメインTSの記録速度RMTSで割った値に等しい:AT1=188/RMTS。従って、EXT1[n]の後端に位置するソースパケットSP11の転送完了時刻T12は、そのソースパケットSP11の転送開始時刻T11よりも、メインTSに属するTSパケット1つ当たりの転送時間AT1だけ遅い:T12=T11+AT1=T11+188/RMTS。図59の(a)ではPI#(N−1)とPI#NとにわたってATCが連続しているので、各ソースパケットSP11、SP22の転送開始時刻T11、T22を、そのソースパケットのATSA11、A22で表現することができる。すなわち、上記の条件、T22≧T12を次式(13)で表すことができる:
A22≧A11+188/RMTS。 (13)
一方、図59の(b)では、PI#(N−1)とPI#Nとの間でATCが不連続である。ここで、PI#(N−1)に対するATCを「ATC1」と呼び、PI#Nに対するATCを「ATC2」と呼ぶ。その場合、EXT2[n]の後端に位置するソースパケットSP21と、EXT2[n+1]の先端に位置するソースパケットSP22との間でのATSの差A22−A21は、必ずしも、それらのソースパケットSP21、SP22間での転送開始時刻の差T22−T21=ΔT2には一致しない。しかし、上記の転送開始時刻の差ΔT2をATC1で換算した値ΔA2を用いれば、EXT2[n+1]の先端に位置するソースパケットSP22の転送開始時刻T22を、EXT2[n]の後端に位置するソースパケットSP21のATSA21で表現することができる。すなわち、上記の条件、T22≧T12を次式(14)で表すことができる:
A21+ΔA2≧A11+188/RMTS。 (14)
(1−I−2)第二の方法
図60の(b)は、(M+1)番目(文字Mは1以上の整数を表す。)のエクステント・ブロック(EXTSS[M])6001、(M+2)番目のエクステント・ブロック(EXTSS[M+1])6002、及び3D再生モードでの再生経路6020を示す模式図である。図60の(b)を参照するに、再生経路6020に従って、まず、EXTSS[M]6001の全体が一括して読み出される。その直後にジャンプJ[M]が生じる。続いて、EXTSS[M+1]6002が一括して読み出される。
図60の(a)は、EXTSS[M]6001とEXTSS[M+1]6002とがシームレスに接続されるとき、RB1、RB2に蓄積されるデータ量DA1、DA2の変化、及びそれらの和DA1+DA2の変化を示すグラフ群である。図60の(a)では、一点鎖線のグラフは、RB1に蓄積されるデータ量DA1の変化を示し、破線のグラフは、RB2に蓄積されるデータ量DA2の変化を示し、実線のグラフは、両データ量の和DA1+DA2の変化を示す。ここで、実線のグラフは、データ・ブロックが一つ読み出されるごとに生じる細かい変化を均して直線的に近似したものである。更に、ゼロ・セクタ遷移時間は0m秒とみなされている。
図60の(a)を参照するに、EXTSS[M]6001の読み出し期間PRBLK[M]では、RB1、RB2の各蓄積データ量DA1、DA2が増大するので、それらの和DA1+DA2は、読み出し速度RUD72と平均転送速度REXTSS[M]との間の差RUD72−REXTSS[M]に等しい速度で増加する。EXTSS[M]6001の後端のベースビュー・データ・ブロックBがRB1に読み込まれた時点で蓄積データ量の和DA1+DA2は最大値に達する。その直後のジャンプ期間PJ[M]では蓄積データ量の和DA1+DA2は平均転送速度REXTSS[M]で減少する。更に、ジャンプ期間PJ[M]の終了時点からEXTSS[M+1]6002の読み出し期間PRBLK[M+1]が開始される。
第二の方法は、EXTSS[M]6001の後端に位置するベースビュー・データ・ブロックB[n−1]の後端部分と転送期間が重複するディペンデントビュー・ストリームのデータ部分を、EXTSS[M+1]6002の先端に位置するディペンデントビュー・データ・ブロックD[n]に配置する。それにより、EXTSS[M+1]6002の先端に位置するディペンデントビュー・データ・ブロックD[n]の読み出し期間PRD[n]ではプリロードを不要にする。すなわち、その読み出し期間PRD[n]において、EXTSS[M]6001に含まれるベースビュー・データ・ブロックB[m]、…、B[n−1]の転送期間TATC1[M]と、EXTSS[M+1]6002に含まれるディペンデントビュー・データ・ブロックD[n]、…の転送期間TATC2[M+1]とを重複させる。そのとき、ベースビュー転送速度とディペンデントビュー転送速度との合計が所定の閾値を超えないように、EXTSS[M+1]6002の先端に位置するディペンデントビュー・データ・ブロックD[n]のビットレートが調節される。
更に、ジャンプJ[M]中でのRB1、RB2のアンダーフローを防止するための条件4を次のように変更する。まず、EXTSS[M]6001に含まれるベースビュー・データ・ブロック全体の転送期間TATC1[M]の長さは、先頭のベースビュー・データ・ブロックB[m]の読み出し開始時刻T1[M]から、EXTSS[M+1]6002内の先頭のベースビュー・データ・ブロックB[n]の読み出し開始時刻T1[M+1]までの時間以上であればよい。図60の(a)から明らかなとおり、その時間T1[M+1]−T1[M]は、EXTSS[M]6001の読み出し期間PRBLK[M]の長さ、ジャンプJ[M]のジャンプ時間TJUMP[M]、及び、二つのエクステント・ブロック6001、6002間での先頭のディペンデントビュー・データ・ブロックの読み出し期間PRD[n]、PRD[m]の長さの差TDIFF[M]を足し合わせた値に等しい。次に、EXTSS[M]6001に含まれるディペンデントビュー・データ・ブロック全体の転送期間TATC2[M]の長さは、先頭のディペンデントビュー・データ・ブロックD[m]の読み出し開始時刻T2[M]から、EXTSS[M+1]6002内の先頭のディペンデントビュー・データ・ブロックD[n]の読み出し開始時刻T2[M+1]までの時間以上であればよい。図60の(a)から明らかなとおり、その時間T2[M+1]−T2[M]は、EXTSS[M]6001の読み出し期間PRBLK[M]の長さとジャンプJ[M]のジャンプ時間TJUMP[M]との和に等しい。ここで、EXTSS[M]6001の読み出し期間PRBLK[M]の長さは、EXTSS[M]6001のサイズSEXTSS[M]を読み出し速度RUD72で割った値SEXTSS[M]/RUD72に等しい。従って、条件4は次式(15)で表される:
(1−J)ベースビューとディペンデントビューとのデータ・ブロックの順序
図61の(a)は、一つのエクステント・ペアについて、ベースビュー転送速度REXT1[n]とディペンデントビュー転送速度REXT2[n]との組み合わせ別に最大エクステント・サイズmaxSEXT1[n]、maxSEXT2[n]を示す表である(文字nは0以上の整数を表す)。ここでは、平均転送速度REXT1[n]、REXT2[n]の合計が60Mbpsであり、かつ、各転送速度REXT1[n]、REXT2[n]が45Mbps以下である場合が想定されている:REXT1[n]+REXT2[n]≦60Mbps、REXT1[n]≦45Mbps、REXT2[n]≦45Mbps。最大エクステント・サイズmaxSEXT2[n]、maxSEXT2[n]は、式(7)を用いて計算された値である。式(7)が2D再生モードのBD−ROMドライブの読み出し速度RUD54を含むことから明らかなとおり、最大エクステント・サイズmaxSEXT2[n]、maxSEXT2[n]はBD−ROMドライブの性能に依存する。従って、図61の(a)に示されている値は一例に過ぎない。
図61の(a)を参照するに、ベースビュー転送速度REXT1[n]が45Mbpsであり、かつディペンデントビュー転送速度REXT2[n]が15Mbpsであるとき、ディペンデントビュー・エクステントの最大エクステント・サイズmaxSEXT2[n]は6MBである。逆に、ベースビュー転送速度REXT1[n]が15Mbpsであり、かつディペンデントビュー転送速度REXT2[n]が45Mbpsであるとき、ディペンデントビュー・エクステントの最大エクステント・サイズmaxSEXT2[n]は8MBである。式(5)、(6)の導出時に説明されたとおり、各エクステント・ブロックの先頭に位置するディペンデントビュー・データ・ブロックのサイズが大きいほど、リード・バッファに要求される容量は大きい。従って、エクステント・ブロックのプリロード期間にディペンデントビュー転送速度REXT2[n]が上昇することは、ディペンデントビュー・エクステントの最大エクステント・サイズmaxSEXT2[n]が増大してリード・バッファの容量の更なる削減を阻むので好ましくない。
ディペンデントビュー転送速度REXT2[n]の上昇に伴うリード・バッファの容量の増大を防ぐには、上記のとおり、図28の(a)に示されている表に従って最大エクステント・サイズを設定すればよい。それに加えて、エクステント・ブロックの先頭に位置するエクステント・ペアEXT1[n]、EXT2[n]において、ディペンデントビュー転送速度REXT2[n]がベースビュー転送速度REXT1[n]を超える場合には、ベースビュー・データ・ブロックB[n]がディペンデントビュー・データ・ブロックD[n]の前に配置されてもよい。すなわち、そのエクステント・ペアの中で、サイズの小さいデータ・ブロックがサイズの大きいデータ・ブロックよりも前に配置される。それにより、以下に示すように、リード・バッファの容量を小さく維持することができる。
図61の(b)は、層境界LBの直前、直後に配置された(M+1)番目のエクステント・ブロック(EXTSS[M])6101と(M+2)番目のエクステント・ブロック(EXTSS[M+1])6102とについて、上記の配置を採用した場合を示す模式図である(文字Mは0以上の整数を表す)。図61の(b)を参照するに、ファイル・ベース6111に含まれる(n+1)番目のベースビュー・エクステントEXT1[n]と、ファイルDEP6112に含まれる(n+1)番目のディペンデントビュー・エクステントEXT2[n]とは、EXTSS[M+1]6102の先頭に配置されている。そのエクステント・ペアEXT1[n]、EXT2[n]では、ディペンデントビュー転送速度REXT2[n]がベースビュー転送速度REXT1[n]よりも高い。従って、ベースビュー・データ・ブロックB[n]がディペンデントビュー・データ・ブロックD[n]の前に配置されている。一方、(n−1)番目、n番目、及び(n+2)番目のエクステント・ペアEXT1[k]、EXT2[k](k=n−2、n−1、n+1)では、ディペンデントビュー転送速度REXT2[k]がベースビュー転送速度REXT1[k]よりも低い。従って、ディペンデントビュー・データ・ブロックD[k]がベースビュー・データ・ブロックB[k]の前に配置されている。
図62の(a)、(b)は、図61の(b)に示されているEXTSS[M]6101、EXTSS[M+1]6102から連続して3D映像がシームレスに再生される際に、RB1とRB2とのそれぞれに蓄積されるデータ量DA1、DA2の変化を示すグラフである。実線のグラフG1P、G2Pは、EXTSS[M+1]の先頭に配置された(n+1)番目のエクステント・ペアEXT1[n]、EXT2[n]において、ベースビュー・データ・ブロックB[n]がディペンデントビュー・データ・ブロックD[n]の前に配置されているときの蓄積データ量DA1、DA2の変化を示す。破線のグラフG1Q、G2Qは、そのエクステント・ペアEXT1[n]、EXT2[n]において、ディペンデントビュー・データ・ブロックD[n]がベースビュー・データ・ブロックB[n]の前に配置されているときの蓄積データ量DA1、DA2の変化を示す。
図62の(a)を参照するに、いずれのグラフG1P、G1Qでも、EXTSS[M]6101の後端のベースビュー・データ・ブロックB[n−1]がRB1に読み込まれた時点で、RB1の蓄積データ量DA1はピーク値DM10、DM11に達する。更に、その直後のジャンプ期間PJ[M]からEXTSS[M+1]6102のプリロード期間PRB[n]、PRD[n]にわたり、蓄積データ量DA1はベースビュー転送速度REXT1[n−1]で減少する。ここで、(n+1)番目のエクステント・ペアEXT1[n]、EXT2[n]では、ベースビュー・データ・ブロックB[n]がディペンデントビュー・データ・ブロックD[n]よりもサイズが小さい。従って、ベースビュー・データ・ブロックB[n]がディペンデントビュー・データ・ブロックD[n]の前に配置されているときのプリロード期間PRB[n]の長さSEXT1[n]/RUD72は、逆の配置でのプリロード期間PRD[n]の長さSEXT2[n]/RUD72よりも短い。その結果、実線のグラフG1Pの示す蓄積データ量DA1のピーク値DM11は、破線のグラフG1Qの示すピーク値DM10よりも低い。
図62の(b)を参照するに、いずれのグラフG2P、G2Qでも、EXTSS[M]6101の後端のベースビュー・データ・ブロックB[n−1]の読み込みが開始された時点で、RB2の蓄積データ量DA2はピーク値DM20、DM21に達する。更に、そのベースビュー・データ・ブロックB[n−1]の読み出し期間からEXTSS[M+1]6102のプリロード期間PRB[n]、PRD[n]にわたり、蓄積データ量DA2はディペンデントビュー転送速度REXT2[n−1]で減少する。ここで、ベースビュー・データ・ブロックB[n]がディペンデントビュー・データ・ブロックD[n]の前に配置されているときのプリロード期間PRB[n]の長さSEXT1[n]/RUD72は、逆の配置でのプリロード期間PRD[n]の長さSEXT2[n]/RUD72よりも短い。その結果、実線のグラフG2Pの示す蓄積データ量DA2のピーク値DM21は、破線のグラフG2Qの示すピーク値DM20よりも低い。
RB1、RB2の各容量は、各グラフG1P、G1Q、G2P、G2Qの示すピーク値DM10、DM11、DM20、DM21以上であればよい。従って、エクステント・ブロックの先頭に配置されたエクステント・ペアにおいて、サイズの小さいデータ・ブロックをサイズの大きいデータ・ブロックよりも前に配置した場合、RB1、RB2の容量を小さく維持することができる。
同様に、飛び込み再生の開始可能位置に配置されたエクステント・ペアでも、サイズの小さいデータ・ブロックをサイズの大きいデータ・ブロックよりも前に配置する。それにより、リード・バッファの容量を小さく維持することができる。その場合、エクステント・ブロックの先頭に限らず、途中に位置するエクステント・ペアの中でも、データ・ブロックの順序が逆転し得る。図63の(a)は、そのような配置に対するエクステント起点のデータ構造(Syntax)を示す模式図である。このエクステント起点(Extent_Start_Point)は、図32の(a)、(b)に示されているエクステント起点と同様に、ファイル2DとファイルDEPとのそれぞれに対して設定される。図63の(a)を参照するに、そのエクステント起点では、エクステントID(extent_id)とSPN(SPN_extent_start)との各対に一つのエクステント開始フラグ(is_located_first_in_extent_pair)が割り当てられている。
図63の(b)は、ファイル・ベースに属するベースビュー・エクステントEXT1[k](k=0、1、2、…)と、エクステント起点の示すエクステント開始フラグとの間の対応関係を表す模式図である。図63の(c)は、ファイルDEPに属するディペンデントビュー・エクステントEXT2[k]とエクステント開始フラグとの間の対応関係を表す模式図である。図63の(d)は、ファイルSSに属するエクステントSSEXTSS[0]とBD−ROMディスク上のエクステント・ブロックとの間の対応関係を示す模式図である。図63の(b)、(c)を参照するに、エクステントIDの等しいベースビュー・エクステントEXT1[k]とディペンデントビュー・エクステントEXT2[k]とが一つのエクステント・ペアを成す。そのエクステント・ペアでは、エクステント開始フラグ6301、6302の値が逆に設定されている。特に、エクステント開始フラグの値が“1”であるエクステントは、“0”であるエクステントよりもソースパケットが少ない。図63の(d)を参照するに、エクステント開始フラグの値が“1”であるエクステントは、“0”であるエクステントよりも前に配置されている。このように、エクステント開始フラグ6301、6302は、エクステント・ペアEXT1[n]、EXT2[n]のうち、いずれのエクステントが前に配置されているかを示す。従って、エクステント開始フラグ6301、6302の値から、エクステント・ペアEXT1[n]、EXT2[n]の中でのデータ・ブロックの配置を知ることができる。それ故、エクステント・ペア間でデータ・ブロックの順序が異なっていても、再生制御部5035はエクステント起点を利用して、各エクステントSSの先頭からデータ・ブロック間の各境界までのソースパケット数をスイッチ5020に教えることができる。その結果、スイッチ5020はエクステントSSからベースビュー・エクステントとディペンデントビュー・エクステントとを分離できる。
各エクステント・ペアの中でデータ・ブロックの順序が一定である場合、RB1とRB2との各容量の下限は、式(5)、(6)で表される。それに対し、エクステント・ブロックの途中に位置するエクステント・ペアの中でデータ・ブロックの順序が逆転してもよい場合、RB1とRB2との各容量の下限は以下のように変更される。
図64の(c)は、RB1に求められる容量が最も大きいデータ・ブロックの配置を示す模式図である。図64の(c)を参照するに、(M+1)番目のエクステント・ブロック(EXTSS[M])6401と(M+2)番目のエクステント・ブロック6402とは、層境界LBを間に挟んで配置されている(文字Mは0以上の整数を表す)。EXTSS[M+1]6402の先頭には(n+1)番目のエクステント・ペアD[n]、B[n]が配置され、特にディペンデントビュー・データ・ブロックD[n]がベースビュー・データ・ブロックB[n]の前に位置する(文字nは0以上の整数を表す)。一方、EXTSS[M]6401の後端にはn番目のエクステント・ペアD[n−1]、B[n−1]が配置され、特にベースビュー・データ・ブロックB[n−1]がディペンデントビュー・データ・ブロックD[n−1]の前に位置する。
図64の(a)、(b)は、図64の(c)に示されているEXTSS[M]6401、EXTSS[M+1]6402から連続して3D映像がシームレスに再生される際に、RB1、RB2のそれぞれに蓄積されるデータ量DA1、DA2の変化を示すグラフである。図64の(a)を参照するに、n番目のベースビュー・データ・ブロックB[n−1]がRB1に読み込まれた時点で、RB1の蓄積データ量DA1はピーク値DM1に達する。その直後のディペンデントビュー・データ・ブロックD[n−1]の読み出し期間ΔT1から、層境界LBを越えるロング・ジャンプの期間ΔT2、及びEXTSS[M+1]6402のプリロード期間ΔT3にわたり、RB1にはデータ・ブロックが読み込まれないので、その蓄積データ量DA1は減少する。それらの期間ΔT1−ΔT3では、まず(n−1)番目までのベースビュー・データ・ブロックB[k](k=…、n−3、n−2)が平均転送速度REXT1[…,n−3,n−2]で転送され、続いてn番目のベースビュー・データ・ブロックB[n−1]が平均転送速度REXT1[n−1]で転送される。プリロード期間ΔT3の終了まで蓄積データ量DA1が0に達するのを防ぐには、その終了時点よりもn番目のベースビュー・データ・ブロックB[n−1]のエクステントATC時間TEXT1[n−1]だけ前の時点で蓄積データ量DA1が、少なくとも、そのベースビュー・データ・ブロックB[n−1]のサイズSEXT1[n−1]に等しければよい。従って、蓄積データ量DA1のピーク値DM1はそのサイズSEXT1[n−1]よりも、残りの期間ΔT1+ΔT2+ΔT3−TEXT1[n−1]でRB1からシステム・ターゲット・デコーダへ転送されるデータ量REXT1[…,n−3,n−2]×(ΔT1+ΔT2+ΔT3−TEXT1[n−1])以上、大きければよい。すなわち、RB1の容量RB1はそのピーク値DM1以上であればよい:RB1≧SEXT1[n−1]+REXT1[…,n−3,n−2]×(ΔT1+ΔT2+ΔT3−TEXT1[n−1])。ここで、ロング・ジャンプの時間ΔT2はそのロング・ジャンプの最大ジャンプ時間TJUMP_MAXで評価される。
図64の(f)は、RB2に求められる容量が最も大きいデータ・ブロックの配置を示す模式図である。図64の(f)を参照するに、(N+1)番目のエクステント・ブロック(EXTSS[N])6403と(N+2)番目のエクステント・ブロック(EXTSS[N+1])6404とは、層境界LBを間に挟んで配置されている(文字Nは0以上の整数を表す)。EXTSS[N+1]6404の先頭には(n+1)番目のエクステント・ペアD[n]、B[n]が配置され、特にディペンデントビュー・データ・ブロックD[n]がベースビュー・データ・ブロックB[n]の後に位置する。一方、EXTSS[N]6403の後端にはn番目のエクステント・ペアD[n−1]、B[n−1]が配置され、特にベースビュー・データ・ブロックB[n−1]がディペンデントビュー・データ・ブロックD[n−1]の後に位置する。
図64の(d)、(e)は、図64の(f)に示されているEXTSS[N]6403、EXTSS[N+1]6404から連続して3D映像がシームレスに再生される際に、RB1、RB2のそれぞれに蓄積されるデータ量DA1、DA2の変化を示すグラフである。図64の(e)を参照するに、n番目のディペンデントビュー・データ・ブロックD[n−1]がRB2に読み込まれた時点で、RB2の蓄積データ量DA2はピーク値DM2に達する。その直後のベースビュー・データ・ブロックB[n−1]の読み出し期間ΔT4から、層境界LBを越えるロング・ジャンプの期間ΔT5、及びEXTSS[N+1]6404のプリロード期間ΔT6にわたり、RB2にはデータ・ブロックが読み込まれないので、その蓄積データ量DA2は減少する。それらの期間ΔT4−ΔT6では、まず(n−1)番目までのディペンデントビュー・データ・ブロックD[k](k=…、n−3、n−2)が平均転送速度REXT2[…,n−3,n−2]で転送され、続いてn番目のディペンデントビュー・データ・ブロックD[n−1]が平均転送速度REXT2[n−1]で転送される。プリロード期間ΔT6の終了まで蓄積データ量DA2が0に達するのを防ぐには、その終了時点よりもn番目のディペンデントビュー・データ・ブロックD[n−1]のエクステントATC時間TEXT2[n−1]だけ前の時点で蓄積データ量DA2が、少なくとも、そのディペンデントビュー・データ・ブロックD[n−1]のサイズSEXT2[n−1]に等しければよい。従って、蓄積データ量DA2のピーク値DM2はそのサイズSEXT2[n−1]よりも、残りの期間ΔT4+ΔT5+ΔT6−TEXT2[n−1]でRB2からシステム・ターゲット・デコーダへ転送されるデータ量REXT2[…,n−3,n−2]×(ΔT4+ΔT5+ΔT6−TEXT2[n−1])以上、大きければよい。すなわち、RB2の容量RB2はそのピーク値DM2以上であればよい:RB2≧SEXT2[n−1]+REXT2[…,n−3,n−2]×(ΔT4+ΔT5+ΔT6−TEXT2[n−1])。ここで、ロング・ジャンプの時間ΔT5はそのロング・ジャンプの最大ジャンプ時間TJUMP_MAXで評価される。
エクステント・ブロックの途中に位置するエクステント・ペアの中でデータ・ブロックの順序が逆転してもよい場合は更に、そのエクステント・ペアに対する条件2、3、すなわち式(2)、(3)は以下のように変更される。
図65の(c)は、データ・ブロックの順序が逆転しているエクステント・ペアを途中に含むエクステント・ブロック6510を示す模式図である。図65の(c)を参照するに、(n+2)番目のエクステント・ペアD[n+1]、B[n+1]では、ディペンデントビュー・データ・ブロックD[n+1]がベースビュー・データ・ブロックB[n]の後に位置する。その前後のエクステント・ペアD[n]、B[n]、D[n+1]、B[n+1]では、ベースビュー・データ・ブロックB[n]、B[n+1]がディペンデントビュー・データ・ブロックD[n]、D[n+1]の後に位置する。
図65の(a)、(b)は、図65の(c)に示されているエクステント・ブロック6501から連続して3D映像がシームレスに再生される際に、RB1、RB2の各蓄積データ量DA1、DA2の変化を示すグラフである。ここで、ゼロ・セクタ遷移期間は他の期間に比べて十分に短いので無視されている。図65の(a)、(b)を参照するに、(n+1)番目のディペンデントビュー・データ・ブロックD[n]の読み出し期間PRD[n]では、RB2の蓄積データ量DA2は、読み出し速度RUD72とディペンデントビュー転送速度REXT2[n]との間の差RUD72−REXT2[n]に等しい速度で増加し、RB1の蓄積データ量DA1はベースビュー転送速度REXT1[n−1]で減少する。(n+1)番目のベースビュー・データ・ブロックB[n]の読み出し期間PRB[n]では、RB1の蓄積データ量DA1は、読み出し速度RUD72とベースビュー転送速度REXT1[n]との間の差RUD72−REXT1[n]に等しい速度で増加する。一方、RB2の蓄積データ量DA2はディペンデントビュー転送速度REXT2[n]で減少する。(n+2)番目のベースビュー・データ・ブロックB[n+1]の読み出し期間PRB[n+1]では、RB1の蓄積データ量DA1は、読み出し速度RUD72とベースビュー転送速度REXT1[n+1]との間の差RUD72−REXT1[n+1]に等しい速度で更に増加し続ける。一方、RB2の蓄積データ量DA2はディペンデントビュー転送速度REXT2[n+1]で更に減少し続ける。(n+2)番目のディペンデントビュー・データ・ブロックD[n+1]の読み出し期間PRD[n+1]では、RB2の蓄積データ量DA2は、読み出し速度RUD72とディペンデントビュー転送速度REXT2[n+1]との間の差RUD72−REXT2[n+1]に等しい速度で増加し、RB1の蓄積データ量DA1はベースビュー転送速度REXT1[n]で減少する。(n+3)番目のディペンデントビュー・データ・ブロックD[n+2]の読み出し期間PRD[n+2]では、RB2の蓄積データ量DA2は、読み出し速度RUD72とディペンデントビュー転送速度REXT2[n+2]との間の差RUD72−REXT2[n+2]に等しい速度で更に増加し続け、RB1の蓄積データ量DA1はベースビュー転送速度REXT1[n+1]で更に減少し続ける。
この場合、エクステント・ブロック6410から3D映像をシームレスに再生するには、まず、(n+1)番目のディペンデントビュー・データ・ブロックD[n]のエクステントATC時間が、その読み出し期間PRD[n]の開始時点から次のディペンデントビュー・データ・ブロックD[n+1]の読み出し期間PRD[n+1]の開始時点までの時間以上であればよい。次に、(n+1)番目と(n+2)番目とのベースビュー・データ・ブロックB[n]、B[n+1]のエクステントATC時間が、それらの読み出し期間PRB[n]、PRB[n+1]の開始時点から次のベースビュー・データ・ブロックB[n+2]の読み出し期間PRB[n+2]の開始時点までの時間以上であればよい。それらの条件は、n番目のエクステント・ペアの中でエクステントB(EXTB)がエクステントA(EXTA)よりも前に位置する場合を想定するとき、式(2)、(3)に代えて、次式(2A)、(3A)で表される:
ここで、式(2A)は、式(2)に含まれるベースビュー・データ・ブロックB[n]のサイズSEXT1[n]、ディペンデントビュー・データ・ブロックD[n+1]のサイズSEXT2[n+1]、及びベースビュー転送速度REXT1[n]をそれぞれ、エクステントAのサイズSEXTA[n]、エクステントBのサイズSEXTB[n+1]、及び、エクステントAに対する平均転送速度REXTA[n]に変更することで得られる。式(3A)は、式(3)に含まれるベースビュー・データ・ブロックB[n]のサイズSEXT1[n]、ディペンデントビュー・データ・ブロックD[n]のサイズSEXT2[n]、及びディペンデントビュー転送速度REXT2[n]をそれぞれ、エクステントAのサイズSEXTA[n]、エクステントBのサイズSEXTB[n]、及び、エクステントBに対する平均転送速度REXTB[n]に変更することで得られる。尚、式(2A)、(3A)のいずれでも、ゼロ・セクタ遷移期間の長さTJUMP0は0とみなされている。
図66は、データ・ブロックの順序が逆転しているエクステント・ペアを途中に含むエクステント・ブロック6600とAVストリーム・ファイル6610−6620との間の対応関係を示す模式図である。図66を参照するに、3番目のエクステント・ペアD[2]、B[2]ではディペンデントビュー・データ・ブロックD[2]がベースビュー・データ・ブロックB[2]の後に位置する。その他のエクステント・ペアD[k]、B[k](k=0、1、3)ではベースビュー・データ・ブロックB[k]がディペンデントビュー・データ・ブロックD[k]の後に位置する。ベースビュー・データ・ブロックB[n](n=0、1、2、3、…)はそれぞれ、一つのベースビュー・エクステントEXT1[n]としてファイル・ベース6611に属する。ディペンデントビュー・データ・ブロックD[n]はそれぞれ、一つのディペンデントビュー・エクステントEXT2[n]としてファイルDEP6612に属する。エクステント・ブロック6600の全体は一つのエクステントSSEXTSS[0]としてファイルSS6620に属する。ベースビュー・データ・ブロックB[n](n=0、1、2、3、…)は更に、2DエクステントEXT2D[n]としてファイル2D6610に属する。ここで、二つの連続するベースビュー・データ・ブロックB[1]、B[2]は一つの2DエクステントEXT2D[1]として参照される。それにより、その2DエクステントEXT2D[1]のサイズSEXT2D[1]は、その直後に配置された二つのディペンデントビュー・データ・ブロックD[2]、D[3]の全体のサイズSEXT2[2]+SEXT2[3]が大きくても、式(1)を満たすことができる。
《実施形態2》
本発明の実施形態2によるBD−ROMディスクでは、ロング・ジャンプの直前に読み出されるエクステント・ブロックの後端、又はロング・ジャンプの直後に読み出されるエクステント・ブロックの先端において、2D再生モードでの再生経路と3D再生モードでの再生経路とが分離されるように、データ・ブロックが配置される。その点を除き、実施形態2によるBD−ROMディスクと再生装置とは、実施形態1によるものと構成及び機能が等しい。従って、以下では、実施形態2によるBD−ROMディスクと再生装置とのうち、実施形態1によるものからの変更部分及び拡張部分について説明する。実施形態1によるBD−ROMディスクと再生装置と同様な部分については、上記の実施形態1についての説明を援用する。
<ロング・ジャンプの前後での再生経路の分離>
図18では、2D再生モードでの再生経路1801と3D再生モードでの再生経路1802とはいずれも、多重化ストリーム・データ以外のデータの記録領域NAVを越えるためのジャンプJNAVの直前には2番目のベースビュー・データ・ブロックB[1]を通り、層境界LBを越えるためのジャンプJLYの直前には4番目のベースビュー・データ・ブロックB[3]を通る。記録領域NAVのセクタ数が所定の閾値、例えば40000セクタを超えている場合、いずれのジャンプJNAV、JLYもロング・ジャンプである。ロング・ジャンプJNAV、JLY中にシステム・ターゲット・デコーダによって処理されるべきデータ量は、2D再生モードでは条件1により、各ロング・ジャンプの直前に読み出されるベースビュー・データ・ブロックB[1]、B[3]のサイズで確保される。一方、3D再生モードでは条件4により、ロング・ジャンプの直前に読み出されるエクステント・ブロック1501、1502全体のサイズで確保される。従って、条件1によってベースビュー・データ・ブロックB[1]、B[3]に要求される最小エクステント・サイズは、条件2によって要求される最小エクステント・サイズよりも一般に大きい。それ故、RB1の容量は3D再生モードでのシームレス再生に必要最小限の値よりも大きくなければならない。更に、各ベースビュー・データ・ブロックB[1]、B[3]と、その直前に位置するディペンデントビュー・データ・ブロックD[1]、D[3]とではエクステントATC時間が等しい。従って、各ディペンデントビュー・データ・ブロックD[1]、D[3]のサイズは、条件2によって要求される最小エクステント・サイズよりも一般に大きい。それ故、RB2の容量は、3D再生モードでのシームレス再生に必要最小限の値よりも一般に大きい。このように、図18に示されている配置では、エクステント・ブロック1501−1503間のシームレスな接続は可能であるが、RB1、RB2の容量が十分に大きく確保されなければならない。
更に、図28の(a)に示されているとおり、ファイルDEPに対するシステム・レートRTS2が所定の閾値(例えば32Mbps)よりも高い場合、ロング・ジャンプJNAV、JLYの直前、直後に読み出されるタイプ(B)、(C)のデータ・ブロックが縮小される。特にベースビュー・データ・ブロックには、そのサイズの縮小によって条件1を満たせなくなる危険性がある。
ロング・ジャンプJNAV、JLY中での映像のシームレス再生を可能にしたまま、RB1、RB2の容量を更に削減するには、記録領域NAV、層境界LB等、ロング・ジャンプJNAV、JLYの必要な位置の前後でデータ・ブロック群の配置をインターリーブ配置から変更し、2D再生モードと3D再生モードとの間で再生経路を分離すればよい。そのような変更のパターンには、例えば以下に述べる配置1、2、3がある。配置1−3のいずれでも、2D再生モードと3D再生モードとで再生経路が異なるベースビュー・データ・ブロックを通る。それにより、3D再生モードにおいてロング・ジャンプの直前又は直後に読み出されるエクステント・ブロック内のデータ・ブロック、特にタイプ(B)、(C)のベースビュー・データ・ブロックは条件1を満たさなくてもよい。その結果、再生装置102に、RB1、RB2の各容量を必要最小限に維持させたまま、ロング・ジャンプJNAV、JLY中での映像のシームレス再生を容易に実現させることができる。
以下、説明の便宜上、配置1−3が、BD−ROMディスク101の層境界LBの前後に記録されたエクステント・ブロックに採用された場合を想定する。尚、それらのエクステント・ブロックの間が、層境界に代えて、所定のセクタ数(例えば40000セクタ)を超える別のデータの記録領域で分離されていても、以下の説明は同様に成立する。
≪配置1≫
図67は、BD−ROMディスク101の層境界LBの前後に記録されたデータ・ブロック群の配置1を示す模式図である。図67を参照するに、層境界LBの直前には第1エクステント・ブロック6701が配置され、層境界LBの直後には第2エクステント・ブロック6702が配置されている。各エクステント・ブロック6701、6702内では、ディペンデントビュー・データ・ブロックD[n]とベースビュー・データ・ブロックB[n]とがインターリーブ配置を構成している(n=1、2、3、…)。(n+1)番目のデータ・ブロックの対D[n]、B[n]はエクステント・ペアを構成し、特にエクステントATC時間が等しい。配置1では更に、第1エクステント・ブロック6701の後端B[2]と層境界LBとの間に一つのベースビュー・データ・ブロックB[3]2Dが配置されている。そのベースビュー・データ・ブロックB[3]2Dは、第2エクステント・ブロック6702内の先端のベースビュー・データ・ブロックB[3]3Dとビット単位(bit−for−bit)で一致する。以下、前者B[3]2Dを「2D再生専用ブロック」といい、後者B[3]3Dを「3D再生専用ブロック」という。
図67に示されているベースビュー・データ・ブロックB[n]のうち、3D再生専用ブロックB[3]3D以外はファイル2D6710のエクステント、すなわち2DエクステントEXT2D[n]としてアクセス可能である。例えば第1エクステント・ブロック6701内の最後から2番目のベースビュー・データ・ブロックB[1]、最後のベースビュー・データ・ブロックB[2]と2D再生専用ブロックB[3]2Dとの対B[2]+B[3]2D、及び、第2エクステント・ブロック6702内の2番目のベースビュー・データ・ブロックB[4]はそれぞれ、単一の2DエクステントEXT2D[1]、EXT2D[2]、EXT2D[3]としてアクセス可能である。一方、図67に示されているディペンデントビュー・データ・ブロックD[n]はそれぞれ、ファイルDEP6712の単一のエクステント、すなわちディペンデントビュー・エクステントEXT2[n]としてアクセス可能である。
図67に示されているデータ・ブロック群では、AVストリーム・ファイルのクロスリンクが次のように実現される。各エクステント・ブロック6701、6702の全体はファイルSS6720の単一のエクステントEXTSS[0]、EXTSS[1]としてアクセス可能である。従って、各エクステント・ブロック6701、6702内のベースビュー・データ・ブロックB[1]、B[2]、B[4]はファイル2D6710とファイルSS6720とに共有される。それに対し、2D再生専用ブロックB[3]2Dは、層境界LBの直前に位置する2DエクステントEXT2D[2]の一部としてのみアクセス可能である。一方、3D再生専用ブロックB[3]3Dは、層境界LBの直後のエクステントSSEXTSS[1]の一部としてのみアクセス可能である。それ故、2D再生専用ブロックB[3]2D以外のベースビュー・データ・ブロックB[1]、B[2]、B[3]3D、B[4]は、ファイル・ベース6711のエクステント、すなわちベースビュー・エクステントEXT1[n](n=1、2、3)としてエクステントSSEXTSS[0]、EXTSS[1]から抽出可能である。
図68は、図67に示されている配置1のデータ・ブロック群に対する2D再生モードでの再生経路6810と3D再生モードでの再生経路6820とを示す模式図である。2D再生モードの再生装置102はファイル2D6710を再生する。従って、2D再生モードでの再生経路6810が示すとおり、まず、第1エクステント・ブロック6701内の最後から2番目のベースビュー・データ・ブロックB[1]が2番目の2DエクステントEXT2D[1]として読み出され、その直後のディペンデントビュー・データ・ブロックD[2]の読み出しがジャンプJ2D1によってスキップされる。次に、第1エクステント・ブロック6701内の最後のベースビュー・データ・ブロックB[2]とその直後の2D再生専用ブロックB[3]2Dとの対B[2]+B[3]2Dが3番目の2DエクステントEXT2D[2]として連続して読み出される。その直後の層境界LBではロング・ジャンプJLYが生じ、第2エクステント・ブロック6702の先端に位置する3個のデータ・ブロックD[3]、B[3]3D、D[4]の読み出しがスキップされる。続いて、第2エクステント・ブロック6702内の2番目のベースビュー・データ・ブロックB[4]が4番目の2DエクステントEXT2D[3]として読み出される。一方、3D再生モードの再生装置102はファイルSS6720を再生する。従って、3D再生モードでの再生経路6820が示すとおり、まず、第1エクステント・ブロック6701の全体が最初のエクステントSSEXTSS[0]として連続して読み出される。その直後にロング・ジャンプJLYが生じ、2D再生専用ブロックB[3]2Dの読み出しがスキップされる。続いて、第2エクステント・ブロック6702の全体が2番目のエクステントSSEXTSS[1]として連続して読み出される。
図68に示されているとおり、2D再生モードでは、2D再生専用ブロックB[3]2Dは読み出されるが、3D再生専用ブロックB[3]3Dの読み出しはスキップされる。逆に3D再生モードでは、2D再生専用ブロックB[3]2Dの読み出しはスキップされるが、3D再生専用ブロックB[3]3Dは読み出される。しかし、両方のデータ・ブロックB[3]2D、B[3]3Dはビット単位で一致しているので、いずれの再生モードでも、再生されるベースビュー・ビデオ・フレームは等しい。このように、配置1では、ロング・ジャンプJLYの前後で2D再生モードでの再生経路6810と3D再生モードでの再生経路6820とが分離される。従って、図15に示されている配置とは異なり、層境界LBの直前に位置する2DエクステントEXT2D[2]のサイズSEXT2D[2]とその直前のディペンデントビュー・データ・ブロックD[2]のサイズSEXT2[2]とが、以下のように別々に決定可能である。
その2DエクステントEXT2D[2]のサイズSEXT2D[2]は、3番目のベースビュー・データ・ブロックB[2]のサイズSEXT1[2]と2D再生専用ブロックB[3]2DのサイズS2Dとの和SEXT1[2]+S2Dに等しい。従って、2D映像をシームレスに再生するには、まず、その和SEXT1[2]+S2Dが条件1を満たせばよい。ここで、式(1)の右辺には、ジャンプ時間Tjump−2Dとしてロング・ジャンプJLYの最大ジャンプ時間Tjump_maxが代入される。次に、2D再生専用ブロックB[3]2Dの後端から第2エクステント・ブロック6702内の最初の2DエクステントEXT2D[3]=B[4]までのセクタ数が、2D再生装置の能力に合わせて規定されたロング・ジャンプJLYの最大ジャンプ距離Sjump_max以下であればよい。
一方、3D映像をシームレスに再生するには、まず、最初のエクステントSSEXTSS[0]内のエクステント・ペアの各サイズが条件2、3、5を満たせばよい。ここで、最後のベースビュー・データ・ブロックB[2]のサイズSEXT1[2]は条件1を満たさなくてもよい。次に、最初のエクステントSSEXTSS[0]の全体のサイズが条件4を満たせばよい。更に、そのエクステントSSEXTSS[0]の後端から次のエクステントSSEXTSS[1]の先端までのセクタ数が、3D再生装置の能力に合わせて規定されたロング・ジャンプJLYの最大ジャンプ距離Sjump_max以下であればよい。
層境界LBの直前に位置する2DエクステントEXT2D[2]のうち、最初のエクステントSSEXTSS[0]に共有されるのは、前側に位置するベースビュー・データ・ブロックB[2]のみである。特に、ベースビュー・データ・ブロックB[2]は単独では、条件1を満たさなくてもよい。従って、2D再生専用ブロックB[3]2DのサイズS2Dを適切に拡大することにより、2DエクステントEXT2D[2]のサイズSEXT2D[2]=SEXT1[2]+S2Dを一定に維持したまま、ベースビュー・データ・ブロックB[2]のサイズSEXT1[2]を更に小さく制限することができる。その場合、そのベースビュー・データ・ブロックB[2]のエクステントATC時間が短縮される。それ故、その直前に位置するディペンデントビュー・データ・ブロックD[2]のサイズSEXT2[2]も更に小さく制限することができる。その上、図28の(a)の表に従って最大エクステント・サイズを設定することが容易である。
3D再生専用ブロックB[3]3Dは2D再生専用ブロックB[3]2Dとビット単位で一致しているので、2D再生専用ブロックB[3]2DのサイズS2Dの拡大は、3D再生専用ブロックB[3]3Dの直前に位置するディペンデントビュー・データ・ブロックD[3]のサイズを拡大させる。しかし、そのサイズは、図15に示されている層境界LBの直前に位置するディペンデントビュー・データ・ブロックD[3]のサイズよりは十分に小さくできる。こうして、RB1、RB2の各容量を、3D映像のシームレス再生に必要最小限の値に更に接近させることができる。
配置1では、2D再生専用ブロックB[3]2Dの複製データが、第2エクステント・ブロック6702の中に単一の3D再生専用ブロックB[2]3Dとして配置されている。その他に、その複製データが2個以上の3D再生専用ブロックに分割されて配置されてもよい。
≪配置2≫
図69は、BD−ROMディスク101の層境界LBの前後に記録されたデータ・ブロック群の配置2を示す模式図である。図69を図67と比較すれば明らかなとおり、配置2は配置1とは主に、3D再生専用ブロックB[3]3D、B[4]3Dを含むエクステント・ブロック6902が層境界LBの直前に配置されている点で異なる。
図69を参照するに、層境界LBの前には、第1エクステント・ブロック6901、2D再生専用ブロック(B[3]+B[4])2D、及び、第2エクステント・ブロック6902が順番に配置され、層境界LBの後には第3エクステント・ブロック6903が配置されている。各エクステント・ブロック6901−6903内ではディペンデントビュー・データ・ブロックD[n]とベースビュー・データ・ブロックB[n]とがインターリーブ配置を構成している(n=1、2、3、4、…)。n番目のデータ・ブロックの対D[n]、B[n]は一つのエクステント・ペアを構成し、特にエクステントATC時間が等しい。第2エクステント・ブロック6902では、第1エクステント・ブロック6901の後端に位置するエクステント・ペアD[2]、B[2]とも、第3エクステント・ブロック6903の先端に位置するエクステント・ペアD[4]、B[4]とも、ストリーム・データの内容が連続している。第2エクステント・ブロック6902に含まれるベースビュー・データ・ブロックはいずれも3D再生専用ブロックB[3]3D、B[4]3Dであり、それらの全体B[3]3D+B[4]3Dは、その前に位置する2D再生専用ブロック(B[3]+B[4])2Dとビット単位で一致する。
図69に示されているベースビュー・データ・ブロックのうち、3D再生専用ブロックB[3]3D、B[4]3D以外はファイル2D6910のエクステントEXT2D[1]、EXT2D[2]、EXT2D[3]としてアクセス可能である。特に第1エクステント・ブロック6901内の最後のベースビュー・データ・ブロックB[2]と2D再生専用ブロック(B[3]+B[4])2Dとの対は単一の2DエクステントEXT2D[2]としてアクセス可能である。更に、第1エクステント・ブロック6901と第3エクステント・ブロック6903内のベースビュー・データ・ブロックB[1]、B[2]、B[5]はファイル・ベース6911のエクステントEXT1[1]、EXT1[2]、EXT1[5]として、ファイルSS6920のエクステントEXTSS[0]、EXTSS[1]からも抽出可能である。それに対し、2D再生専用ブロック(B[3]+B[4])2Dは2DエクステントEXT2D[2]の一部としてのみアクセス可能である。一方、3D再生専用ブロックB[3]3D、B[4]3Dはそれぞれ、ベースビュー・エクステントEXT1[3]、EXT1[4]としてエクステントSSEXTSS[1]から抽出可能である。
図70は、図69に示されている配置2のデータ・ブロック群に対する2D再生モードでの再生経路7010と3D再生モードでの再生経路7020とを示す模式図である。2D再生モードの再生装置102はファイル2D6910を再生する。従って、2D再生モードでの再生経路7010が示すとおり、まず、第1エクステント・ブロック6901内の最後から2番目のベースビュー・データ・ブロックB[1]が2番目の2DエクステントEXT2D[1]として読み出され、その直後のディペンデントビュー・データ・ブロックD[2]の読み出しがジャンプJ2D1によってスキップされる。次に、第1エクステント・ブロック6901内の最後のベースビュー・データ・ブロックB[2]とその直後の2D再生専用ブロック(B[3]+B[4])2Dとの対が3番目の2DエクステントEXT2D[2]として連続して読み出される。その直後にロング・ジャンプJLYが生じ、第2エクステント・ブロック6902の読み出し、及び、第3エクステント・ブロック6903の先端に位置するディペンデントビュー・データ・ブロックD[5]の読み出しがスキップされる。続いて、第3エクステント・ブロック6903内の最初のベースビュー・データ・ブロックB[5]が4番目の2DエクステントEXT2D[3]として読み出される。3D再生モードの再生装置102はファイルSS6920を再生する。従って、3D再生モードでの再生経路7020が示すとおり、まず、第1エクステント・ブロック6901の全体が第1エクステントSSEXTSS[0]として連続して読み出される。その直後にジャンプJEXが生じ、2D再生専用ブロック(B[3]+B[4])2Dの読み出しがスキップされる。次に、第2エクステント・ブロック6902の全体が第2エクステントSSEXTSS[1]として連続して読み出される。その直後に、層境界LBを越えるためのロング・ジャンプJLYが生じる。続いて、第3エクステント・ブロック6903の全体が第3エクステントSSEXTSS[2]として連続して読み出される。
図70に示されているとおり、2D再生モードでは、2D再生専用ブロック(B[3]+B[4])2Dは読み出されるが、3D再生専用ブロックB[3]3D、B[4]3Dの読み出しはスキップされる。逆に3D再生モードでは、2D再生専用ブロック(B[3]+B[4])2Dの読み出しはスキップされるが、3D再生専用ブロックB[3]3D、B[4]3Dは読み出される。しかし、2D再生専用ブロック(B[3]+B[4])2Dと3D再生専用ブロックの全体B[3]3D+B[4]3Dとはビット単位で一致しているので、いずれの再生モードでも、再生されるベースビュー・ビデオ・フレームは等しい。このように、配置2ではロング・ジャンプJLYの直前で2D再生モードでの再生経路7010と3D再生モードでの再生経路7020とが分離されている。従って、層境界LBの直前に位置する2DエクステントEXT2D[2]のサイズSEXT2D[2]とその直前のディペンデントビュー・データ・ブロックD[2]のサイズSEXT2[2]とが、以下のように別々に決定可能である。
その2DエクステントEXT2D[2]のサイズSEXT2D[2]は、3番目のベースビュー・データ・ブロックB[2]のサイズSEXT1[2]と2D再生専用ブロック(B[3]+B[4])2DのサイズS2Dとの和SEXT1[2]+S2Dに等しい。従って、2D映像をシームレスに再生するには、まず、その和SEXT1[2]+S2Dが条件1を満たせばよい。ここで、式(1)の右辺には、ジャンプ時間Tjump−2Dとしてロング・ジャンプJLYの最大ジャンプ時間Tjump_maxが代入される。次に、2D再生専用ブロック(B[3]+B[4])2Dの後端から第3エクステント・ブロック6903内の最初の2DエクステントEXT2D[3]=B[5]までのセクタ数が、2D再生装置の能力に合わせて規定されたロング・ジャンプJLYの最大ジャンプ距離Sjump_max以下であればよい。
一方、3D映像をシームレスに再生するには、まず、最初のエクステントSSEXTSS[0]と2番目のエクステントSSEXTSS[1]とに含まれるエクステント・ペアの各サイズが条件2、3、5を満たせばよい。ここで、最初のエクステントSSEXTSS[0]の後端に位置するベースビュー・データ・ブロックB[2]のサイズSEXT1[2]、及び、2番目のエクステントSSEXTSS[1]内のベースビュー・データ・ブロックB[3]3D、B[4]3DのサイズSEXT1[3]、SEXT1[4]は条件1を満たさなくてもよい。次に、2番目のエクステントSSEXTSS[1]の全体のサイズが条件4を満たせばよい。更に、2番目のエクステントSSEXTSS[1]の後端から次のエクステントSSEXTSS[2]の先端までのセクタ数が、3D再生装置の能力に合わせて規定されたロング・ジャンプJLYの最大ジャンプ距離Sjump_max以下であればよい。
2DエクステントEXT2D[2]のうち、エクステントSSEXTSS[0]に共有されるのは、前側に位置する3番目のベースビュー・データ・ブロックB[2]だけである。従って、2D再生専用ブロック(B[3]+B[4])2DのサイズS2Dを適切に拡大することにより、2DエクステントEXT2D[2]のサイズSEXT2D[2]=SEXT1[2]+S2Dを一定に維持したまま、3番目のベースビュー・データ・ブロックB[2]のサイズSEXT1[2]を更に小さく制限することができる。それに伴い、その直前のディペンデントビュー・データ・ブロックD[2]のサイズSEXT2[2]も更に小さく制限することができる。
ここで、3D再生専用ブロックの全体B[3]3D+B[4]3Dは2D再生専用ブロック(B[3]+B[4])2Dとビット単位で一致している。従って、2D再生専用ブロック(B[3]+B[4])2DのサイズS2Dが拡大すると、各3D再生専用ブロックB[3]3D、B[4]3Dの直前に位置するディペンデントビュー・データ・ブロックD[3]、D[4]のサイズが拡大する。しかし、3D再生専用ブロックB[3]3D、B[4]3Dは条件1を満たさなくてもよい。従って、2D再生専用ブロックは単一のデータ・ブロック(B[3]+B[4])2Dであっても、3D再生専用ブロックは二つのデータ・ブロックB[3]3D、B[4]3Dに分割されてもよい。その結果、各3D再生専用ブロックB[3]3D、B[4]3Dのサイズを十分に縮小することができるので、図28の(a)の表に従って最大エクステント・サイズを設定することが容易である。こうして、RB1、RB2の各容量は、3D映像のシームレス再生に必要最小限の値まで更に削減可能である。
式(6)の導出時に説明されたとおり、ロング・ジャンプの直前に読み出されるベースビュー・データ・ブロックのサイズが小さいほど、RB2の容量の下限は小さい。従って、配置2は好ましくは、以下の2つの条件が満たされるように設計される。それらの条件が満たされることにより、第2エクステント・ブロック6902内の各データ・ブロックのサイズ、特に3D再生専用ブロックB[3]3D、B[4]3Dの各サイズが十分に縮小される。その結果、RB2の容量の下限を更に低減させることができる。
第1の条件は、第2エクステント・ブロック6902の直前に配置される2D再生専用ブロック(B[3]+B[4])2Dのサイズに上限を定める。その上限は2D再生装置のジャンプ性能に依存する。例えば、そのジャンプ性能が図21の表に従う場合、2D再生専用ブロック(B[2]+B[3])2DのサイズS2Dは20000セクタ以下に制限される。第2の条件は、3D再生専用ブロックB[3]3D、B[4]3DのエクステントATC時間に上限TEXT_3D_MAXを定める。すなわち、3D再生専用ブロックB[3]3D、B[4]3Dは、条件5に代えて、条件6を満たす。条件6は、式(7)に代えて次式で表される:SEXT1[n]≦REXT1[n]×TEXT_3D_MAX。その上限TEXT_3D_MAXは、例えば0.5秒に設定される。
図71は、図70に示されている第2エクステント・ブロック6902の後端に位置する3D再生専用ブロックB[4]3Dの読み出し時間SEXT1[4]/RUD72と、RB2の蓄積データ量DA2との間の関係を示すグラフである。図71を参照するに、RB2への3D再生専用ブロックB[4]3Dの読み込みが開始された時点で、RB2の蓄積データ量DA2はピーク値DM2に達する。そのピーク値DM2は、3D再生専用ブロックB[4]3Dの読み出し期間の長さSEXT1[4]/RUD72、ロング・ジャンプに要する時間TLY、及び、ロング・ジャンプ直後のプリロード期間の長さSEXT2[5]/RUD72の和に、ディペンデントビュー転送速度REXT2[4]を乗じた値以上である:DM2≧(SEXT1[4]/RUD72+TLY+SEXT2[5]/RUD72)×REXT2[4]。従って、仮に3D再生専用ブロックB[4]3Dのサイズが更に大きい値SL[4]であれば、その読み出し期間の長さSL[4]/RUD72が増大するので、図71に破線で示されているとおり、RB2の蓄積データ量DA2のピーク値DM20が増大する。それ故、上記の2つの条件で3D再生専用ブロックB[3]3D、B[4]3Dの各サイズを小さく制限する。それにより、RB2の容量の下限を更に低減させることができる。
尚、条件4を満たすには、エクステント・ブロックの先頭に位置するエクステント・ペアのサイズ、特に、プリロード期間の長さを十分に大きく確保しなければならない。それ故、3D再生専用ブロックを含むエクステント・ペアがエクステント・ブロックの先頭に位置する場合、その3D再生専用ブロックは条件6を満たさなくてもよい。すなわち、そのエクステントATC時間は上限TEXT_3D_MAXを超えてもよい。
配置2は、層境界LBの手前の他に、飛び込み再生の開始可能位置に設けられてもよい。図69には、飛び込み再生の開始可能位置、すなわちエントリ・ポイントが記録されたBD−ROMディスク上の位置が三角形6930、6931、6932の頂点で示されている。白い三角形6930で示されているエントリ・ポイントは、2D再生モードでの飛び込み再生の開始可能位置を示す。黒い三角形6931、6932で示されているエントリ・ポイントは、3D再生モードでの飛び込み再生の開始可能位置を示す。個々の3D再生専用ブロックB[3]3D、B[4]3Dは2D再生専用ブロック(B[3]+B[4])2Dよりもサイズが十分に小さい。従って、同じエクステント・ペアに属するディペンデントビュー・データ・ブロックD[3]、D[4]のサイズも十分に小さい。その結果、3D再生モードでの飛び込み再生時、エントリ・ポイント6931、6932へのアクセス開始からエクステント・ペアD[3]、B[3]3Dの復号開始までに要する時間が短い。すなわち、3D再生モードでの飛び込み再生は起動が早い。
配置2では、2D再生専用ブロック(B[3]+B[4])2Dの複製データが、2個の3D再生専用ブロックB[3]3D、B[4]3Dに分割されて配置されている。その他に、その複製データが単一の3D再生専用ブロックであってもよく、又は3個以上の3D再生専用ブロックに分割されて配置されてもよい。更に、第2エクステント・ブロック6902は第1エクステントブロック6901の後端に隣接され、2D再生専用ブロック(B[3]+B[4])2Dは、第2エクステント・ブロック6902の後端と層境界LBとの間に配置されてもよい。
≪配置3≫
図72は、BD−ROMディスク101の層境界LBの前後に記録されたデータ・ブロック群の配置3を示す模式図である。図72を図69と比較すれば明らかなとおり、配置3は配置2に加えて、新たな2D再生専用ブロックと新たな3D再生専用ブロックとを含む。それらのデータ・ブロックは、層境界LBの直後に配置されている。
図72を参照するに、層境界LBの前には第1の2D再生専用ブロック(B[2]+B[3])2Dと第1エクステント・ブロック7201とが順番に配置され、層境界LBの後には、第2の2D再生専用ブロック(B[4]+B[5])2D、第2エクステント・ブロック7202、及び第3エクステント・ブロック7203が順番に配置されている。各エクステント・ブロック7201−7203内ではディペンデントビュー・データ・ブロックD[n]とベースビュー・データ・ブロックB[n]とがインターリーブ配置を構成している(n=2、3、4、…)。n番目のデータ・ブロックの対D[n]、B[n]は一つのエクステント・ペアを構成し、特にエクステントATC時間が等しい。第2エクステント・ブロック7202では、第1エクステント・ブロック7201の後端に位置するエクステント・ペアD[3]、B[3]3Dとも、第3エクステント・ブロック7203の先端に位置するエクステント・ペアD[6]、B[6]とも、ストリーム・データの内容が連続している。第1エクステント・ブロック7201に含まれるベースビュー・データ・ブロックはいずれも3D再生専用ブロックB[2]3D、B[3]3Dであり、それらの全体B[2]3D+B[3]3Dは、その前に位置する第1の2D再生専用ブロック(B[2]+B[3])2Dとビット単位で一致する。第2エクステント・ブロック7202に含まれるベースビュー・データ・ブロックはいずれも3D再生専用ブロックB[4]3D、B[5]3Dであり、それらの全体B[4]3D+B[5]3Dは、その前に位置する第2の2D再生専用ブロック(B[4]+B[5])2Dとビット単位で一致する。
図72に示されているベースビュー・データ・ブロックのうち、3D再生専用ブロックB[2]3D−B[5]3D以外はファイル2D7210のエクステントとしてアクセス可能である。特に第2の2D再生専用ブロック(B[4]+B[5])2Dは単一の2DエクステントEXT2D[2]としてアクセス可能である。更に、第3エクステント・ブロック7203内のベースビュー・データ・ブロックB[6]はファイル・ベース7211のエクステントとして、ファイルSS7220のエクステントEXTSS[3]からも抽出可能である。それに対し、2D再生専用ブロック(B[2]+B[3])2D、(B[4]+B[5])2Dはそれぞれ、2Dエクステントとしてのみアクセス可能である。3D再生専用ブロックB[2]3D−B[5]3Dはそれぞれ、ベースビュー・エクステントとしてエクステントSSEXTSS[1]、EXTSS[2]から抽出可能である。
図73は、図72に示されている配置3のデータ・ブロック群に対する2D再生モードでの再生経路7310と3D再生モードでの再生経路7320とを示す模式図である。2D再生モードの再生装置102はファイル2D7210を再生する。従って、2D再生モードでの再生経路7310が示すとおり、まず、第1の2D再生専用ブロック(B[2]+B[3])2Dが2番目の2DエクステントEXT2D[1]として読み出され、その直後の第2エクステント・ブロック7201の読み出しがロング・ジャンプJLYによってスキップされる。次に、第2の2D再生専用ブロック(B[4]+B[5])2Dが3番目の2DエクステントEXT2D[2]として読み出され、その直後の第2エクステント・ブロック7202の読み出し、及び、第3エクステント・ブロック7203の先端に位置するディペンデントビュー・データ・ブロックD[6]の読み出しがスキップされる。続いて、第3エクステント・ブロック7203内の最初のベースビュー・データ・ブロックB[6]が4番目の2DエクステントEXT2D[3]として読み出される。3D再生モードの再生装置102はファイルSS7220を再生する。従って、3D再生モードでの再生経路7320が示すとおり、まず、第1の2D再生専用ブロック(B[2]+B[3])2Dの読み出しがジャンプJEXによってスキップされる。次に、第1エクステント・ブロック7201の全体が第2エクステントSSEXTSS[1]として連続して読み出される。その直後にロング・ジャンプJLYが生じ、第2の2D再生専用ブロック(B[4]+B[5])2Dの読み出しがスキップされる。続いて、第2エクステント・ブロック7202と第3エクステント・ブロック7203とがそれぞれ、第3エクステントSSEXTSS[2]、第4エクステントSSEXTSS[3]として連続して読み出される。
図73に示されているとおり、2D再生モードでは、2D再生専用ブロック(B[2]+B[3])2D、(B[4]+B[5])2Dは読み出されるが、3D再生専用ブロックB[2]3D−B[5]3Dの読み出しはスキップされる。逆に3D再生モードでは、2D再生専用ブロック(B[2]+B[3])2D、(B[4]+B[5])2Dの読み出しはスキップされるが、3D再生専用ブロックB[2]3D−B[5]3Dは読み出される。しかし、2D再生専用ブロックの全体(B[2]+B[3])2D+(B[4]+B[5])2Dと3D再生専用ブロックの全体B[2]3D+…+B[5]3Dとはビット単位で一致しているので、いずれの再生モードでも、再生されるベースビュー・ビデオ・フレームは等しい。このように、配置3ではロング・ジャンプJLYの前後で2D再生モードでの再生経路7310と3D再生モードでの再生経路7320とが分離されている。従って、配置2と同様に、層境界LBの直前に位置する2DエクステントEXT2D[1]のサイズSEXT2D[1]とその直前のディペンデントビュー・データ・ブロックD[1]のサイズSEXT2[1]とが別々に決定可能である。更に、層境界LBの直後において、2D再生モードでの再生経路7310は第2エクステント・ブロック7202を通らない。従って、そのエクステント・ブロック内のデータ・ブロックD[4]、B[4]3D、D[5]、B[5]3Dは条件1を満たさなくてもよいので、各サイズを十分に縮小することができる。その結果、図28の(a)の表に従って最大エクステント・サイズを設定することが容易である。こうして、RB1、RB2の各容量は更に削減可能である。
尚、配置1は、3D再生専用ブロックが、2D再生専用ブロックの前に隣接するエクステント・ブロックの中に配置されるように変更されてもよい。配置3は、層境界の直前に位置するエクステント・ブロックが通常のインターリーブ配置のみを含むように変更されても、配置1との組み合わせであるように変更されてもよい。配置3は更に、第2の2D再生専用ブロック(B[4]+B[5])2Dとその直後の第2エクステント・ブロック7202との順序が逆であるように変更されてもよい。このように、配置1−3が多様な配置に変更可能であることは、当業者には自明であろう。
<変形例>
(2−A)エクステント・ペア・フラグ
図74は、ファイル・ベース7401とファイルDEP7402との各エクステントEXT1[k]、EXT2[k](文字kは0以上の整数を表す。)に対して設定されたエントリ・ポイント7410、7420を示す模式図である。ファイル・ベース7401のエントリ・ポイント7410は2Dクリップ情報ファイルのエントリ・マップで定義され、ファイルDEP7402のエントリ・ポイント7420はディペンデントビュー・クリップ情報ファイルのエントリ・マップで定義される。各エントリ・ポイント7410、7420は特にエクステント・ペア・フラグを含む。「エクステント・ペア・フラグ」は、ファイル・ベース7401のエントリ・ポイントとファイルDEP7402のエントリ・ポイントとが同じPTSを示すとき、それぞれの設定されたエクステントEXT1[i]、EXT2[j]が各ファイル7401、7402の先頭から同じ順序であるか否か(i=j又はi≠j)を示す。図74を参照するに、(n+1)番目(文字nは1以上の整数を表す。)のベースビュー・エクステントEXT1[n]に設定された最初のエントリ・ポイント7430のPTSは、(n−1)番目のディペンデントビュー・エクステントEXT2[n−1]に設定された最後のエントリ・ポイント7440のPTSに等しい。従って、各エントリ・ポイント7430、7440のエクステント・ペア・フラグの値は“0”に設定される。同様に、(n+1)番目のベースビュー・エクステントEXT1[n]に設定された最後のエントリ・ポイント7431のPTSは、(n+1)番目のディペンデントビュー・エクステントEXT2[n+1]に設定された最初のエントリ・ポイント7441のPTSに等しい。従って、各エントリ・ポイント7431、7441のエクステント・ペア・フラグの値は“0”に設定される。その他のエントリ・ポイント7410、7420は、PTSが等しいときは設定先のエクステントEXT1[・]、EXT2[・]の順序も等しいので、エクステント・ペア・フラグの値は“1”に設定される。
3D再生モードの再生装置102は、飛び込み再生を開始する際に再生開始位置のエントリ・ポイントのエクステント・ペア・フラグを参照し、その値が“1”である場合に、そのエントリ・ポイントから実際に再生を開始する。その値が“0”である場合には、再生装置102は、そのエントリ・ポイントの前後から、エクステント・ペア・フラグの値が“1”である別のエントリ・ポイントを探して、その別のエントリ・ポイントから再生を開始する。こうして、n番目のディペンデントビュー・エクステントEXT2[n]が確実に、n番目のベースビュー・エクステントEXT1[n]よりも先に読み出される。その結果、飛び込み再生処理を簡単化することができる。
エクステント・ペア・フラグ=0のエントリ・ポイントの間隔は、それに対応する表示時間の長さが一定の秒数以下、例えば1GOP当たりの表示時間長の最大値の2倍以下になるように制限されてもよい。その他に、エクステント・ペア・フラグ=0のエントリ・ポイントの次のエントリ・ポイントでは、エクステント・ペア・フラグの値が“1”に制限されてもよい。更に、「各エクステントにはエントリ・ポイントが必ず1以上設定される」と規定されてもよい。いずれの場合でも、エントリ・ポイントの間隔が十分に短いので、飛び込み再生の開始時、エクステント・ペア・フラグ=1のエントリ・ポイントの探索に伴う再生開始までの待ち時間を短縮することができる。また、アングル切り換えフラグがエクステント・ペア・フラグとして代用されてもよい。ここで、「アングル切り換えフラグ」とは、マルチアングルに対応のコンテンツにおいてエントリ・マップ内に用意されたフラグであって、多重化ストリーム・データにおけるアングルの切り換え位置を示す(マルチアングルについては後述参照)。
(2−B)エクステント・ペア間での再生期間の一致
エクステントATC時間の等しいデータ・ブロックの対、すなわちエクステント・ペアでは更に、再生期間が一致し、かつビデオ・ストリームの再生時間が等しくてもよい。言い換えれば、エクステント・ペア間ではVAUの数が等しくてもよい。その意義は次のとおりである。
図75の(a)は、隣接するベースビュー・データ・ブロックとディペンデントビュー・データ・ブロックとの間でエクステントATC時間が異なり、かつビデオ・ストリームの再生時間が異なるときの再生経路を示す模式図である。図75の(a)を参照するに、先頭のベースビュー・データ・ブロックB[0]の再生時間は4秒間であり、先頭のディペンデントビュー・データ・ブロックD[0]の再生時間は1秒間である。ここで、ディペンデントビュー・データ・ブロックD[0]の復号に必要なベースビュー・ビデオ・ストリームの部分はそのディペンデントビュー・データ・ブロックD[0]と同じ再生時間を持つ。従って、再生装置内のリード・バッファの容量を節約するには、図75の(a)に矢印ARW1で示されているように、再生装置にベースビュー・データ・ブロックB[0]とディペンデントビュー・データ・ブロックD[0]とを交互に同じ再生時間ずつ、例えば1秒間ずつ読み込ませることが好ましい。しかし、その場合、図75の(a)に破線で示されているように、読み出し処理の途中でジャンプが生じる。その結果、読み出し処理を復号処理に間に合わせることが難しいので、シームレス再生を確実に持続することが難しい。
図75の(b)は、隣接するベースビュー・データ・ブロックとディペンデントビュー・データ・ブロックとの間でビデオ・ストリームの再生時間が等しいときの再生経路を示す模式図である。図75の(b)に示されているように、隣接する一対のデータ・ブロックの間でビデオ・ストリームの再生時間が等しくてもよい。例えば、先頭のデータ・ブロック対B[0]、D[0]ではビデオ・ストリームの再生時間が共に1秒に等しく、二番目のデータ・ブロック対B[1]、D[1]ではビデオ・ストリームの再生時間が共に0.7秒に等しい。その場合、3D再生モードの再生装置は、図75の(b)に矢印ARW2で示されているように、データ・ブロックB[0]、D[0]、B[1]、D[1]、…を先頭から順番に読み出す。それだけで、再生装置はメインTSとサブTSとを交互に同じ再生時間ずつ読み出すことをスムーズに実現できる。特にその読み出し処理ではジャンプが生じないので、3D映像のシームレス再生が確実に持続可能である。
実際には、隣接するベースビュー・データ・ブロックとディペンデントビュー・データ・ブロックとの間でエクステントATC時間が等しければ、読み出し処理にジャンプを生じさせることなく、復号処理の同期を維持することはできる。従って、再生期間又はビデオ・ストリームの再生時間が等しくなくても、図75の(b)に示されている場合と同様に、再生装置はデータ・ブロック群を先頭から順番に読み出すだけで、3D映像のシームレス再生を確実に持続できる。
エクステント・ペア間では、VAUのいずれかのヘッダの数、又はPESヘッダの数が等しくてもよい。エクステント・ペア間での復号処理の同期には、それらのヘッダが利用される。従って、エクステント・ペア間でヘッダの数が等しければ、VAUそのものの数が等しくなくても、復号処理の同期を維持することは比較的容易である。更に、VAUそのものの数が等しい場合とは異なり、VAUのデータが全て同じデータ・ブロック内に多重化されていなくてもよい。それ故、BD−ROMディスク101のオーサリング工程において、ストリーム・データの多重化の自由度が高い。
エクステント・ペア間では、エントリ・ポイントの数が等しくてもよい。図74を再び参照するに、エクステント・ペア・フラグ=0のエントリ・ポイント7430、7440、7431、7441を除けば、ファイル・ベース7401とファイルDEP7402とでは、先頭から同じ順序のエクステントEXT1[k]、EXT2[k]が同じ数のエントリ・ポイント7410、7420を含む。2D再生モードと3D再生モードとではジャンプの有無は異なる。しかし、エクステント・ペア間でエントリ・ポイントの数が等しいとき、再生時間も実質的に等しい。従って、ジャンプの有無にかかわらず、復号処理の同期を維持することは容易である。更に、VAUそのものの数が等しい場合とは異なり、VAUのデータの全てが同じデータ・ブロック内に多重化されていなくてもよい。それ故、BD−ROMディスク101のオーサリング工程において、ストリーム・データの多重化の自由度が高い。
(2−C)マルチアングル
図76の(a)は、マルチアングルに対応する多重化ストリーム・データの再生経路を示す模式図である。図76の(a)を参照するに、その多重化ストリーム・データには、ベースビュー、ライトビュー、及びデプスマップの三種類のストリーム・データL、R、Dが多重化されている。例えばL/Rモードではベースビューとライトビューとのストリーム・データL、Rがパラレルに再生される。更に、マルチアングル期間PANGで再生される部分にはアングル(視野角)別のストリーム・データAk、Bk、Ckが多重化されている(k=0、1、2、…、n)。各アングルのストリーム・データAk、Bk、Ckは、再生時間がアングル・チェンジ間隔に等しい部分に分割されている。各部分Ak、Bk、Ckには更に、ベースビュー、ライトビュー、及びデプスマップの各ストリーム・データが多重化されている。マルチアングル期間PANGでは、ユーザの操作又はアプリケーション・プログラムの指示に応じて、アングル別のストリーム・データAk、Bk、Ckの間で再生対象を切り換えることができる。
図76の(b)は、BD−ROMディスク上に記録されたデータ・ブロック群7601と、それらに対するL/Rモードでの再生経路7602とを示す模式図である。そのデータ・ブロック群7601は、図76の(a)に示されているストリーム・データL、R、D、Ak、Bk、Ckを含む。図76の(b)を参照するに、そのデータ・ブロック群7601では、通常のストリーム・データL、R、Dに加え、アングル別のストリーム・データAk、Bk、Ckがインターリーブ配置で記録されている。L/Rモードでは、再生経路7602の示すように、ライトビュー・データ・ブロックRとベースビュー・データ・ブロックLとは読み出され、デプスマップ・データ・ブロックDの読み出しはジャンプによってスキップされる。更に、アングル別のストリーム・データAk、Bk、Ckのうち、選択されたもののデータ・ブロックA0、B1、…、Cnは読み出され、その他のデータ・ブロックの読み出しはジャンプによってスキップされる。
図76の(c)は、アングル別のストリーム・データAk、Bk、Ckを構成するエクステント・ブロックを示す模式図である。図76の(c)を参照するに、各アングルのストリーム・データAk、Bk、Ckでは、三種類のデータ・ブロックL、R、Dがインターリーブ配置を構成している。L/Rモードでは、再生経路7602の示すように、アングル別のストリーム・データAk、Bk、Ckのうち、選択されたものA0、B1、…、Cnからライトビュー・データ・ブロックRとベースビュー・データ・ブロックLとが読み出される。一方、他のデータ・ブロックの読み出しはジャンプによってスキップされる。
尚、各アングルのストリーム・データAk、Bk、Ckでは、ベースビュー、ライトビュー、及びデプスマップの各ストリーム・データが単一の多重化ストリーム・データに収められていてもよい。但し、その記録速度は、2D再生装置で再生可能なシステム・レートの範囲に抑えられなければならない。また、その多重化ストリーム・データと他の3D映像の多重化ストリーム・データとの間では、システム・ターゲット・デコーダに転送されるべきストリーム・データ(TS)の数が異なる。従って、3Dプレイリスト・ファイル内の各PIは、再生対象のTSの数を示すフラグを含んでもよい。そのフラグを利用して、それらの多重化ストリーム・データを一つの3Dプレイリスト・ファイルの中で切り換えることができる。3D再生モードで2つのTSを再生対象として規定するPIでは、そのフラグが“2TS”を示す。一方、上記の多重化ストリーム・データのような単一のTSを再生対象として規定するPIでは、そのフラグが“1TS”を示す。3D再生装置はそのフラグの値に応じてシステム・ターゲット・デコーダの設定を切り換えることができる。そのフラグは更に、コネクション・コンディション(CC)の値で表現されてもよい。例えば、CCが“7”を示すときは2TSから1TSへの移行を示し、“8”を示すときは1TSから2TSへの移行を示す。
図77は、マルチアングル期間を構成するデータ・ブロック群7701、及び、それらに対する2D再生モードでの再生経路7710とL/Rモードでの再生経路7720とを示す模式図である。図77を参照するに、そのデータ・ブロック群7701は三種類のアングル・チェンジ区間ANG1#k、ANG2#k、ANG3#k(k=1、2、…、6、7)のインターリーブ配置から成る。「アングル・チェンジ区間」は、一つのアングルから見た映像のストリーム・データが連続して格納された一連のデータ・ブロック群をいう。種類の異なるアングル・チェンジ区間では映像のアングルが異なる。各種類のk番目のアングル・チェンジ区間ANG1#k、ANG2#k、ANG3#kは互いに隣接する。各アングル・チェンジ区間ANGm#k(m=1、2、3)は一つのエクステント・ブロックから成り、すなわち一つのエクステントSSEXTSS[k]として参照される(k=10、11、…、23)。それにより、複数のアングル・チェンジ区間が一つのエクステントSSEXTSS[k]を構成する場合よりも、リード・バッファの容量を削減することができる。更に、各エクステント・ブロックはディペンデントビュー・データ・ブロックRとベースビュー・データ・ブロックLとを一つずつ含む。それらのデータ・ブロックの対R、Lはn番目のディペンデントビュー・エクステントEXT2[n]とn番目のベースビュー・エクステントEXT1[n]との対として参照される(文字nは0以上の整数を表す)。
各エクステント・ブロックのサイズは条件1−4を満たす。特に、条件1で考慮されるべきジャンプは、2D再生モードでの再生経路7710の示す、他のアングル・チェンジ区間の読み出しをスキップするためのジャンプJANG-2Dである。一方、条件4で考慮されるべきジャンプは、L/Rモードでの再生経路7720の示す、他のアングル・チェンジ区間の読み出しをスキップするためのジャンプJANG-LRである。各再生経路7710、7720の示すとおり、いずれのジャンプJANG-2D、JANG-LRも一般に、アングルの切り換え、すなわち、読み出されるべきアングル・チェンジ区間の種類の切り換えを含む。
図77を更に参照するに、各アングル・チェンジ区間はベースビュー・データ・ブロックLを一つ含む。従って、ベースビュー・エクステントEXT1[・]のエクステントATC時間はアングル・チェンジ区間の長さの最大値TANG以下に制限される。例えば、アングルの切り換えを表示時間2秒当たりに1回の割合で実行可能にするには、アングル・チェンジ区間の長さの最大値TANGを2秒間に制限しなければならない。その結果、ベースビュー・エクステントEXT1[・]のエクステントATC時間は2秒以下に制限される。それ故、条件5は、ベースビュー・エクステントのサイズSEXT1が、式(7)に代えて、次式(16)を満たすことに変更される:
尚、式(16)の右辺では、式(7)の右辺に代えて、式(10A)又は(10B)の右辺が利用されてもよい。また、式(10A)又は(10B)に示されている、2DエクステントのエクステントATC時間に対する延長時間ΔTと同様に、アングル・チェンジ区間の長さの最大値TANGは、GOPの長さ、又は、所定時間当たりに再生可能なエクステント数の上限から決定されてもよい。更に、その延長時間ΔTは、マルチアングルでは0に設定されてもよい。
マルチアングル期間にロング・ジャンプが生じる場合、その前後のエクステント・ブロックがシームレスに接続されるように配置される。具体的には、各アングルでのベースビューとディペンデントビューとのストリーム・データが単一のTSに多重化されている場合(以下、1TSによるマルチアングル期間という。)、ロング・ジャンプの直前に配置されるアングル・チェンジ区間は他のアングル・チェンジ区間よりもサイズが大きく設定される。一方、各アングルでのベースビューとディペンデントビューとのストリーム・データが異なるTSに多重化されている場合(以下、2TSによるマルチアングル期間という。)、ロング・ジャンプの直前のアングル・チェンジ区間では再生経路が分離される。
図78の(a)は、1TSによるマルチアングル期間PANGを構成するエクステント・ブロック群7810と、それらに対する再生経路7820との間の対応関係を示す模式図である。図78の(a)を参照するに、そのエクステント・ブロック群7810はマルチアングル期間PANGにアングル・チェンジ区間Ak、Bk、Ck(k=0、1、…、n:文字nは0以上の整数を表す。)のインターリーブ配置を含む。更に、それらのアングル・チェンジ区間Ak、Bk、Ckと後続のエクステント・ブロックとの間が層境界LBで分離されているので、それらの間にはロング・ジャンプJLYが生じる。その場合、そのロング・ジャンプJLYの直前に配置される(n+1)番目のアングル・チェンジ区間An、Bn、Cnの各サイズSnは、先頭からn番目までのアングル・チェンジ区間Ak、Bk、Ck(k=0、1、…、n−1)の各サイズSkよりも大きい:Sn>Sk。それにより、ロング・ジャンプJLYの直前ではリード・バッファ内の蓄積データ量が十分に増大するので、ロング・ジャンプJLY中でのリード・バッファのアンダーフローが防止される。
図78の(b)は、2TSによるマルチアングル期間PANGを構成するエクステント・ブロック群7830、及び、それらに対する2D再生モードでの再生経路7840と3D再生モードでの再生経路7850との間の対応関係を示す模式図である。図78の(b)を参照するに、そのエクステント・ブロック群7830はマルチアングル期間PANGにアングル・チェンジ区間Ak、Bk、Ck(k=0、1、…、n:文字nは0以上の整数を表す。)のインターリーブ配置を含む。更に、それらのアングル・チェンジ区間Ak、Bk、Ckと後続のエクステント・ブロックとの間は層境界LBで分離されているので、それらの間にはロング・ジャンプJLYが生じる。ここで、先頭からn番目までのアングル・チェンジ区間の各データ・ブロックAk、Bk、Ck(k=0、1、…、n−1)は一つのエクステント・ペアD、Bを含む。一方、層境界LBの直前に配置される(n+1)番目のアングル・チェンジ区間An、Bn、Cnは、2D再生専用ブロックAn2D、Bn2D、Cn2Dと3D再生専用ブロックAn3D、Bn3D、Cn3Dとの二種類を含む。各3D再生専用ブロックAn3D、Bn3D、Cn3Dは一般に、複数のエクステント・ペアD1、B13D、D2、B23Dのインターリーブ配置を含む。2D再生専用ブロックAn3D、Bn3D、Cn3Dは、同じアングルの3D再生専用ブロックAn3D、Bn3D、Cn3Dに含まれるベースビュー・データ・ブロックB13D、B23D全体の複製(B1+B2)2Dであり、それらとビット単位で一致する。2D再生モードでの再生経路7840は、(n+1)番目のアングル・チェンジ区間として2D再生専用ブロックAn2D、Bn2D、Cn2Dのいずれかを通り、3D再生専用ブロックAn3D、Bn3D、Cn3Dをいずれもスキップする。逆に、3D再生モードでの再生経路7850は、(n+1)番目のアングル・チェンジ区間として3D再生専用ブロックAn3D、Bn3D、Cn3Dのいずれかを通り、2D再生専用ブロックAn2D、Bn2D、Cn2Dをいずれかもスキップする。ロング・ジャンプJLY中でのリード・バッファのアンダーフローを防止するのに必要な蓄積データ量は、2D再生モードでは各2D再生専用ブロックAn2D、Bn2D、Cn2Dが条件1を満たすことで賄われ、3D再生モードでは各3D再生専用ブロックAn3D、Bn3D、Cn3Dが条件2−4を満たすことで賄われる。更に、各3D再生専用ブロックAn3D、Bn3D、Cn3Dは条件1を満たさなくてもよいので、図28の(a)の表に従って最大エクステント・サイズを設定することが容易である。その結果、リード・バッファの容量を十分に小さく維持したまま、エクステント・ブロック群7830のシームレス接続を実現することができる。
《実施形態3》
以下、本発明の実施形態3として、本発明の実施形態1、2による記録媒体の記録装置及び記録方法について説明する。その記録装置は、いわゆるオーサリング装置と呼ばれるものである。オーサリング装置は通常、頒布用の映画コンテンツの制作スタジオに設置され、オーサリング・スタッフによって使用される。記録装置はオーサリング・スタッフの操作に従い、まず映画コンテンツを所定の圧縮符号化方式でAVストリーム・ファイルに変換する。記録装置は次にシナリオを生成する。「シナリオ」は、映画コンテンツに含まれる各タイトルの再生方法を規定した情報であり、具体的には、動的シナリオ情報と静的シナリオ情報とを含む。記録装置は続いて、AVストリーム・ファイル及びシナリオからBD−ROMディスク用のボリューム・イメージを生成する。記録装置は最後に、そのボリューム・イメージを記録媒体に記録する。
図79は、その記録装置7900の機能ブロック図である。図79を参照するに、その記録装置7900は、データベース部7901、ビデオ・エンコーダ7902、素材制作部7903、シナリオ生成部7904、BDプログラム制作部7905、多重化処理部7906、及びフォーマット処理部7907を含む。
データベース部7901は記録装置に内蔵の不揮発性記憶装置であり、特にHDDである。データベース部7901はその他に、記録装置に外付けされたHDDであってもよく、記録装置に内蔵の、又は外付けされた不揮発性半導体メモリ装置であってもよい。
ビデオ・エンコーダ7902は、非圧縮のビットマップ・データ等の映像データをオーサリング・スタッフから受け付けて、MPEG−4 AVC、MVC、又はMPEG−2等の圧縮符号化方式で圧縮する。それにより、主映像のデータはプライマリ・ビデオ・ストリームに変換され、副映像のデータはセカンダリ・ビデオ・ストリームに変換される。特に3D映像のデータは、MVC等の多視点符号化方式を利用して、図7に示されているようなベースビュー・ビデオ・ストリームとディペンデントビュー・ビデオ・ストリームとの対に変換される。すなわち、レフトビューを表すビデオ・フレームの列は、それ自身のピクチャ間での予測符号化によって、ベースビュー・ビデオ・ストリームに変換される。一方、ライトビューを表すビデオ・フレームの列は、それ自身のピクチャだけでなく、ベースビュー・ピクチャとの間の予測符号化によって、ディペンデントビュー・ビデオ・ストリームに変換される。尚、ライトビューを表すビデオ・フレームの列がベースビュー・ビデオ・ストリームに変換され、レフトビューを表すビデオ・フレームの列がディペンデントビュー・ビデオ・ストリームに変換されてもよい。変換後の各ビデオ・ストリーム7912はデータベース部7901に保存される。
ビデオ・エンコーダ7902は、ピクチャ間予測符号化の処理過程でレフトビューとライトビューとの間での各映像の動きベクトルを検出し、それらから各3D映像の奥行き情報を算出する。図80の(a)、(b)は、3D映像の一シーンの表示に利用されるレフトビュー・ピクチャとライトビュー・ピクチャとを表す模式図であり、(c)は、ビデオ・エンコーダ7902によってそれらのピクチャから算出された奥行き情報を示す模式図である。
ビデオ・エンコーダ7902はレフトビューとライトビューとの各ピクチャの圧縮に、それらのピクチャ間の冗長性を利用する。すなわち、ビデオ・エンコーダ7902は圧縮前の両ピクチャを8×8又は16×16の画素マトリクスごとに、すなわちマクロブロックごとに比較して、両ピクチャ間での各映像の動きベクトルを検出する。具体的には、図80の(a)、(b)に示されているように、まず、レフトビュー・ピクチャ8001とライトビュー・ピクチャ8002とはそれぞれ、マクロブロック8003のマトリクスに分割される。次に、両ピクチャ8001、8002間でイメージ・データがマクロブロック8003ごとに比較され、その結果から各映像の動きベクトルが検出される。例えば、「家」の映像8004を表す領域は両ピクチャ8001、8002間で実質的に等しい。従って、それらの領域からは動きベクトルが検出されない。一方、「球」の映像8005を表す領域は両ピクチャ8001、8002間で異なるので、それらの領域からはその映像8005の動きベクトルが検出される。
ビデオ・エンコーダ7902は、検出された動きベクトルを各ピクチャ8001、8002の圧縮に利用する。一方、ビデオ・エンコーダ7902はその動きベクトルを、「家」の映像8004及び「球」の映像8005等、各映像の両眼視差の計算に利用する。ビデオ・エンコーダ7902は更に、各映像の両眼視差からその映像の奥行きを算出する。その奥行きを表す情報は、図80の(c)に示されているように、各ピクチャ8001、8002のマクロブロックのマトリクスと同じサイズのマトリクス8006に整理される。このマトリクス8006内のブロック8007は、各ピクチャ8001、8002内のマクロブロック8003と一対一に対応する。各ブロック8007は、対応するマクロブロック8003の表す映像の奥行きを、例えば8ビットの深度で表す。図80に示されている例では、「球」の映像8005の奥行きがマトリクス8006の領域8008内の各ブロックに記録される。その領域8008は、その映像8005を表す各ピクチャ8001、8002内の領域の全体に対応する。
ビデオ・エンコーダ7902は奥行き情報を利用して、レフトビュー又はライトビューに対するデプスマップを生成してもよい。その場合、ビデオ・エンコーダ7902は、レフトビュー又はライトビューのストリーム・データとデプスマップ・ストリームとのそれぞれを、それ自身の含むピクチャ間での予測符号化を用いて、ベースビュー・ビデオ・ストリームとデプスマップ・ストリームとに変換する。変換後の各ビデオ・ストリーム7912はデータベース部7901に保存される。
ビデオ・エンコーダ7902は更に、その奥行き情報を利用して、レフトビュー・ビデオ・プレーンとライトビュー・ビデオ・プレーンとの一方にしか含まれない垂直方向の帯状領域の幅、及び、水平方向の帯状領域の高さを算定する(詳細は《補足》参照)。実際、それらの帯状領域が物体の映像を含んでいれば、その映像の動きベクトルが、レフトビューからライトビューへ、又はその逆へのフレーム・アウトを表すものとして検出される。ビデオ・エンコーダ7902はその動きベクトルから各帯状領域の幅又は高さを算定できる。算定された幅と高さとを示す情報(以下、マスク領域情報という。)7911はデータベース部7901に保存される。
ビデオ・エンコーダ7902はその他に、2D映像のデータからセカンダリ・ビデオ・ストリームを符号化する際に、オーサリング・スタッフの操作に従って、副映像プレーンに対するオフセット情報7910を作成してもよい。作成されたオフセット情報7910はデータベース部7901に保存される。
素材制作部7903は、ビデオ・ストリーム以外のエレメンタリ・ストリーム、例えば、オーディオ・ストリーム7913、PGストリーム7914、及びIGストリーム7915を作成してデータベース部7901に保存する。例えば、素材制作部7903はオーサリング・スタッフから非圧縮のLPCM音声データを受け付けて、それをAC−3等の圧縮符号化方式で符号化してオーディオ・ストリーム7913に変換する。素材制作部7903はその他に、オーサリング・スタッフから字幕情報ファイルを受け付けて、それに従ってPGストリーム7914を作成する。字幕情報ファイルは、字幕を表すイメージ・データ又はテキスト・データ、その字幕の表示時期、及び、その字幕に加えられるべきフェード・イン/アウト等の視覚効果を規定する。素材制作部7903は更に、オーサリング・スタッフからビットマップ・データとメニュー・ファイルとを受け付けて、それらに従ってIGストリーム7915を作成する。ビットマップ・データはメニューのイメージを表す。メニュー・ファイルは、そのメニューに配置される各ボタンの状態の遷移、及び各ボタンに加えられるべき視覚効果を規定する。
素材制作部7903は更に、オーサリング・スタッフの操作に従い、PGストリーム7914とIGストリーム7915とのそれぞれに対するオフセット情報7910を作成する。その場合、素材制作部7903は、ビデオ・エンコーダ7902によって生成された奥行き情報DPIを利用して、3Dグラフィックス映像の奥行きを3D映像の奥行きに合わせてもよい。その場合、3D映像の奥行きがフレームごとに激しく変化するときには、素材制作部7903は、奥行き情報DPIを利用して作成されたオフセット値の列を更にローパスフィルタで処理して、フレームごとの変化を低減させてもよい。こうして、作成されたオフセット情報7910はデータベース部7901に保存される。
シナリオ生成部7904は、オーサリング・スタッフからGUI経由で受け付けられた指示に従ってBD−ROMシナリオ・データ7917を作成し、データベース部7901に保存する。BD−ROMシナリオ・データ7917は、データベース部7901に保存された各エレメンタリ・ストリーム7912−7916の再生方法を規定する。BD−ROMシナリオ・データ7917は、図2に示されているファイル群のうち、インデックス・ファイル211、ムービーオブジェクト・ファイル212、及びプレイリスト・ファイル221−223を含む。シナリオ生成部7904は更に、パラメータ・ファイルPRFを作成して多重化処理部7906へ送出する。パラメータ・ファイルPRFは、データベース部7901に保存されたエレメンタリ・ストリーム7912−7915の中から、メインTSとサブTSとのそれぞれに多重化されるべきストリーム・データを規定する。
BDプログラム制作部7905はオーサリング・スタッフに対して、BD−Jオブジェクト及びJavaアプリケーション・プログラムのプログラミング環境を提供する。BDプログラム制作部7905はGUIを通じてユーザからの要求を受け付け、その要求に従って各プログラムのソースコードを作成する。BDプログラム制作部7905は更に、BD−JオブジェクトからBD−Jオブジェクト・ファイル251を作成し、Javaアプリケーション・プログラムをJARファイル261に圧縮する。それらのプログラム・ファイル群BDPはフォーマット処理部7907へ送出される。
ここで、BD−Jオブジェクトが次のようにプログラミングされる場合を想定する:BD−Jオブジェクトは、図50に示されているプログラム実行部5034にGUI用のグラフィックス・データをシステム・ターゲット・デコーダ5023へ送出させる。BD−Jオブジェクトは更に、システム・ターゲット・デコーダ5023にそのグラフィックス・データをイメージ・プレーン・データとして処理させ、プレーン加算部5024にイメージ・プレーン・データを1プレーン+オフセット・モードで送出させる。その場合、BDプログラム制作部7905は、イメージ・プレーンに対するオフセット情報7910を作成してデータベース部7901に保存する。BDプログラム制作部7905はそのオフセット情報7910の作成に、ビデオ・エンコーダ7902によって生成された奥行き情報DPIを利用してもよい。
多重化処理部7906はパラメータ・ファイルPRFに従い、データベース部7901に保存されている各エレメンタリ・ストリーム7912−7915をMPEG2−TS形式のストリーム・ファイルに多重化する。具体的には、図4に示されているように、まず、各エレメンタリ・ストリーム7912−7915が一つのソースパケット列に変換され、次に、各列のソースパケットが一本の多重化ストリーム・データにまとめられる。こうして、メインTSとサブTSとが作成される。それらの多重化ストリーム・データMSDはフォーマット処理部7907へ送出される。
多重化処理部7906は更に、データベース部7901に保存されているオフセット情報7910に基づいてオフセット・メタデータを作成する。図11に示されているように、作成されたオフセット・メタデータ1110はディペンデントビュー・ビデオ・ストリーム内に格納される。そのとき、データベース部7901に保存されているマスク領域情報7911は、オフセット・メタデータと共にディペンデントビュー・ビデオ・ストリーム内に格納される。また、多重化処理部7906は各グラフィックス・データを加工して、左右の各映像フレーム内でのグラフィックス部品の配置を調整してもよい。それにより、各グラフィックス・プレーンの表す3Dグラフィックス映像が、他のグラフィックス・プレーンの表す3Dグラフィックス映像と同じ視方向に重なって表示されることを、多重化処理部7906は防止できる。その他に、多重化処理部7906は各グラフィックス・プレーンに対するオフセット値を調整して、各3Dグラフィックス映像が異なる奥行きに表示されるようにできる。
多重化処理部7906はその上、2Dクリップ情報ファイルとディペンデントビュー・クリップ情報ファイルとを、以下の手順(I)−(IV)で作成する:(I)ファイル2DとファイルDEPとのそれぞれについて、図30に示されているエントリ・マップ3030を生成する。(II)各ファイルのエントリ・マップを利用して、図32の(a)、(b)に示されているエクステント起点3042、3220を作成する。そのとき、隣接するデータ・ブロック間でエクステントATC時間を揃える。更に、2Dエクステント、ベースビュー・エクステント、ディペンデントビュー・エクステント、及びエクステントSSの各サイズが条件1−5を満たすように、エクステントの配置を設計する。(III)メインTSとサブTSとのそれぞれに多重化されるべきエレメンタリ・ストリームから、図30に示されているストリーム属性情報3020を抽出する。(IV)図30に示されているように、エントリ・マップ3030、3Dメタデータ3040、及びストリーム属性情報3020の組み合わせをクリップ情報3010に対応付ける。こうして、各クリップ情報ファイルCLIが作成され、フォーマット処理部7907へ送出される。
フォーマット処理部7907は、データベース部7901に保存されたBD−ROMシナリオ・データ7917、BDプログラム制作部7905によって制作されたBD−Jオブジェクト・ファイル等のプログラム・ファイル群BDP、及び、多重化処理部7906によって生成された多重化ストリーム・データMSDとクリップ情報ファイルCLIとから、図2に示されているディレクトリ構造のBD−ROMディスク・イメージ7920を作成する。そのディレクトリ構造ではファイルシステムとしてUDFが利用される。
フォーマット処理部7907は、ファイル2D、ファイルDEP、及びファイルSSの各ファイル・エントリを作成するとき、2Dクリップ情報ファイルとディペンデントビュー・クリップ情報ファイルとのそれぞれに含まれるエントリ・マップと3Dメタデータとを参照する。それにより、エントリ・ポイントとエクステント起点との各SPNがアロケーション記述子の作成に利用される。特に、図15に示されているようなデータ・ブロックのインターリーブ配置が表現されるように、各アロケーション記述子の表すべきLBNの値とエクステントのサイズとが決定される。その結果、各ベースビュー・データ・ブロックはファイルSSとファイル2Dとに共有され、各ディペンデントビュー・データ・ブロックはファイルSSとファイルDEPとに共有される。
<BD−ROMディスク・イメージの記録方法>
図81は、図79に示されている記録装置7900を利用してBD−ROMディスクへ映画コンテンツを記録する方法のフローチャートである。この方法は、例えば記録装置7900の電源投入によって開始される。
ステップS8101では、BD−ROMディスクへ記録されるべきエレメンタリ・ストリーム、プログラム、及びシナリオ・データが作成される。すなわち、ビデオ・エンコーダ7902はビデオ・ストリーム7912を作成する。素材制作部7903は、オーディオ・ストリーム7913、PGストリーム7914、及びIGストリーム7915を作成する。シナリオ生成部7904はBD−ROMシナリオ・データ7917を作成する。作成されたそれらのデータ7912−7917はデータベース部7901に保存される。一方、ビデオ・エンコーダ7902は、オフセット情報7910とマスク領域情報7911とを作成してデータベース部7901に保存する。素材制作部7903はオフセット情報7910を作成してデータベース部7901に保存する。シナリオ生成部7904はパラメータ・ファイルPRFを作成して多重化処理部7906へ送出する。BDプログラム制作部7905は、BD−Jオブジェクト・ファイルとJARファイルとを含むプログラム・ファイル群BDPを作成してフォーマット処理部7907へ送出し、オフセット情報7910を作成してデータベース部7901に保存する。その後、処理はステップS8102へ進む。
ステップS8102では、多重化処理部7906は、データベース部7901に保存されたオフセット情報7910に基づいてオフセット・メタデータを作成する。作成されたオフセット・メタデータは、マスク領域情報7911と共に、ディペンデントビュー・ビデオ・ストリーム内に格納される。その後、処理はステップS8103へ進む。
ステップS8103では、多重化処理部7906はパラメータ・ファイルPRFに従い、データベース部7901から各エレメンタリ・ストリーム7912−7915を読み出してMPEG2−TS形式のストリーム・ファイルに多重化する。その後、処理はステップS8104へ進む。
ステップS8104では、多重化処理部7906は2Dクリップ情報ファイルとディペンデントビュー・クリップ情報ファイルとを作成する。特に、エントリ・マップとエクステント起点との作成では、エクステント・ペア間でエクステントATC時間が揃えられる。更に、2Dエクステント、ベースビュー・エクステント、ディペンデントビュー・エクステント、及びエクステントSSのサイズが条件1−5を満たすように設計される。その後、処理はステップS8105へ進む。
ステップS8105では、フォーマット処理部7907は、BD−ROMシナリオ・データ7917、プログラム・ファイル群BDP、多重化ストリーム・データMDS、及びクリップ情報ファイルCLIから、BD−ROMディスク・イメージ7920を作成する。その後、処理はステップS8106へ進む。
ステップS8106では、BD−ROMディスク・イメージ7920がBD−ROMプレス用データに変換される。更に、このデータはBD−ROMディスクの原盤に記録される。その後、処理はステップS8107へ進む。
ステップS8107では、ステップS8106で得られた原盤をプレス工程に利用してBD−ROMディスク101の大量生産を行う。こうして、処理が終了する。
《実施形態4》
図82は、本発明の実施形態4による集積回路3の機能ブロック図である。図82を参照するに、集積回路3は、実施形態1または2による再生装置102に実装される。ここで、再生装置102は、集積回路3の他に、媒体インタフェース(IF)部1、メモリ部2、及び出力端子10を含む。
媒体IF部1は、外部の媒体MEからデータを受信し、又は読み出して集積回路3に転送する。そのデータの構造は、実施形態1または2によるBD−ROMディスク101上のデータの構造と同様である。媒体IF部1は媒体MEの種類に合わせて、種々の機能部を含む。例えば、媒体MEが、光ディスク及びハードディスク等のディスク記録媒体である場合、媒体IF部1はディスクドライブを含む。媒体MEが、SDカード及びUSBメモリ等の半導体メモリである場合、媒体IF部1はカードIFを含む。媒体MEがCATV等の放送波である場合、媒体IF部1はCANチューナーまたはSiチューナーを含む。媒体MEが、イーサネット(登録商標)、無線LAN、及び無線公衆回線等のネットワークである場合、媒体IF部1はネットワークIFを含む。
メモリ部2は、媒体IF部1によって媒体MEから受信され、又は読み出されたデータ、及び、集積回路3によって処理されている途中のデータを一時的に格納する。メモリ部2としては、SDRAM(Synchronous Dynamic RandomAccess Memory)、及びDDRx SDRAM(Double−Data−Rate x Synchronous Dynamic RandomAccess Memory; x=1、2、3、…)等が用いられる。メモリ部2は単一のメモリ素子である。その他に、メモリ部2は複数のメモリ素子を含んでもよい。
集積回路3はシステムLSIであり、媒体IF部1から転送されたデータに対して映像・音声処理を施す。図82を参照するに、集積回路3は、主制御部6、ストリーム処理部5、信号処理部7、メモリ制御部9、及びAV出力部8を含む。
主制御部6はプロセッサコアとプログラム・メモリとを含む。プロセッサコアはタイマ機能と割り込み機能とを有する。プログラム・メモリはOS等の基本的なソフトウェアを格納する。プロセッサコアは、プログラム・メモリ等に格納されたプログラムに従って、集積回路3の全体の制御を行う。
ストリーム処理部5は、主制御部6の制御の下、媒体MEから媒体IF部1を経由して転送されたデータを受信する。ストリーム処理部5は更に、その受信したデータを集積回路3内のデータバスを通してメモリ部2に格納する。ストリーム処理部5はその他に、受信したデータから映像系データと音声系データとを分離する。ここで、前述のとおり、媒体MEから受信されるデータは、実施形態1または2による構造のデータを含む。その場合、「映像系データ」は、プライマリ・ビデオ・ストリーム、セカンダリ・ビデオ・ストリーム、PGストリーム、及びIGストリームを含む。「音声系データ」はプライマリ・オーディオ・ストリームとセカンダリ・オーディオ・ストリームとを含む。実施形態1、2による構造のデータでは、メインビュー・データとサブビュー・データとがそれぞれ複数のエクステントに分割され、それらが交互に配置されて一連のエクステント・ブロックを構成している。ストリーム処理部5はエクステント・ブロックを受信したとき、主制御部6の制御に従い、そのエクステント・ブロックからメインビュー・データを抽出してメモリ部2内の第1の領域に格納し、サブビュー・データを抽出してメモリ部2内の第2の領域に格納する。メインビュー・データはレフトビュー・ビデオ・ストリームを含み、サブビュー・データはライトビュー・ビデオ・ストリームを含む。その逆であってもよい。また、メインビューとサブビューとの組み合わせが2D映像とそのデプスマップとの組み合わせであってもよい。メモリ部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は、例えば図52に示されている各種デコーダに相当する。
メモリ制御部9は、集積回路3内の各機能ブロック5−8からメモリ部2へのアクセスを調停する。
AV出力部8は、主制御部6の制御の下、信号処理部7によって復号された映像系データと音声系データとをそれぞれ適切な形式に加工して、個別の出力端子10を通して表示装置103とその内蔵スピーカとへ出力する。その加工の種類は、映像系データの重畳処理、各データのフォーマット変換、及び音声系データのミキシング等を含む。
図83は、ストリーム処理部5の代表的な構成を示す機能ブロック図である。図83を参照するに、ストリーム処理部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、2による構造のデータに含まれる各エクステントは、図4に示されているように、ビデオ・ストリーム、オーディオ・ストリーム、PGストリーム、及びIGストリーム等のソースパケットから構成されている。但し、サブビュー・データはオーディオ・ストリームを含まない場合もある。多重分離部52は、各ソースパケットからPIDを読み取り、そのPIDに従って、ソースパケット群を映像系のTSパケットVTSと音声系のTSパケットATSとに分別する。分別されたTSパケットVTS、ATSは、直接、若しくは、一旦メモリ部2に格納された後、信号処理部7に転送される。多重分離部52は、例えば図52に示されているソース・デパケタイザ5211、5212、及びPIDフィルタ5213、5214に相当する。
切替部53は、デバイス・ストリームIF部51によって受信されたデータの種類に応じてその出力先を切り換える。例えば、デバイス・ストリームIF部51がメインビュー・データを受信したとき、そのデータの格納先をメモリ部2の第1の領域に切り換える。一方、デバイス・ストリームIF部51がサブビュー・データを受信したとき、そのデータの格納先をメモリ部2の第2の領域に切り換える。
切替部53は例えばDMAC(Direct MemoryAccess Controller)である。図84は、その場合における切替部53の周辺の構造を示す模式図である。DMAC53は、主制御部6の制御の下、デバイス・ストリームIF部51によって受信されたデータと、そのデータの格納先のアドレスとをメモリ制御部9に対して送信する。具体的には、デバイス・ストリームIF部51がメインビュー・データMDを受信したとき、DMAC53は、メインビュー・データMDと共にアドレス1AD1を送信する。ここで、「アドレス1」AD1は、メモリ部2内の第1の格納領域21の先頭アドレスAD1を示すデータである。一方、デバイス・ストリームIF部51がサブビュー・データSDを受信したとき、DMAC53はサブビュー・データSDと共にアドレス2AD2を送信する。ここで、「アドレス2」AD2は、メモリ部2内の第2の格納領域22の先頭アドレスAD2を示すデータである。こうして、DMAC53は、デバイス・ストリームIF部51によって受信されるデータの種類に依って、その出力先、特にメモリ部2内への格納先を切り換える。メモリ制御部9は、DMAC53から受信されたメインビュー・データMDとサブビュー・データSDとをそれぞれ、同時に受信されたアドレスAD1、AD2の示すメモリ部2内の領域21、22に格納する。
主制御部6は、切替部53による格納先の切り換えの制御に、クリップ情報ファイル内のエクステント起点を利用する。ここで、そのクリップ情報ファイルは、メインビュー・データMDとサブビュー・データSDとのいずれよりも先に受信され、メモリ部2に格納されている。特に、主制御部6はファイル・ベースを利用して、デバイス・ストリームIF部51によって受信されたデータがメインビュー・データMDであることを認識する。一方、主制御部6はファイルDEPを利用して、デバイス・ストリームIF部51によって受信されたデータがサブビュー・データであることを認識する。主制御部6は更に、その認識された結果に応じて切替部53に制御信号CSを送り、データの格納先を切り換えさせる。尚、切替部53は、主制御部6とは別の専用の制御回路によって制御されてもよい。
ストリーム処理部5は、図83に示されている機能ブロック51、52、53の他に、暗号エンジン部、セキュア管理部、及びダイレクト・メモリ・アクセス用のコントローラを更に備えていてもよい。暗号エンジン部は、デバイス・ストリームIF部51によって受信された暗号化データ及び鍵データ等を復号する。セキュア管理部は秘密鍵を保持し、それを利用して、媒体MEと再生装置102との間で機器認証プロトコル等の実行制御を行う。
上記の例では、媒体MEから受信されたデータがメモリ部2に格納されるとき、そのデータがメインビュー・データMDとサブビュー・データSDとのいずれであるかに依って、その格納先が切り換えられる。その他に、媒体MEから受信されたデータがその種類にかかわらず、一旦メモリ部2内の同じ領域に格納され、その後、メモリ部2から多重分離部52へ転送されるときに、メインビュー・データMDとサブビュー・データSDとに分けられてもよい。
図85は、AV出力部8の代表的な構成を示す機能ブロック図である。図85を参照するに、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に示されているプレーン加算部5024に相当する。
ビデオ出力フォーマット変換部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の外部に備えられてもよい。
図86は、AV出力部8を含む再生装置102のデータ出力に関する部分の詳細を示す模式図である。図86を参照するに、オーディオ・ビデオ出力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は、暗号化データSAVをデータ送信規格に合わせて符号化して出力する。デジタル・ビデオ・オーディオ出力IF部83bは、例えば図50に示されているHDMI送信部5025に相当する。
アナログ・オーディオ出力IF部83cは、信号処理部7から復号後の音声系データASを受信し、D/A変換によってアナログ音声データADに変換して出力する。アナログ・オーディオ出力IF部83cは、例えばオーディオDACに相当する。
上記の映像系データ及び音声系データの送信形式は、表示装置103/スピーカー103Aの備えるデータ受信装置/データ入力端子の種類に合わせて切り換え可能であり、また、ユーザの選択によっても切り換え可能である。更に、再生装置102は、同じコンテンツのデータを、単一の送信形式だけではなく、複数の送信形式でパラレルに送信可能である。
AV出力部8は、図85、86に示されている機能ブロック81、82、83の他にグラフッィクス・エンジン部を更に備えていてもよい。グラフッィクス・エンジン部は、信号処理部7によって復号されたデータに対して、フィルタ処理、画面合成処理、曲線描画処理、及び3D表示処理等のグラフィックス処理を行う。
集積回路3は、図82、83、85、86に示されている上記の機能ブロックを内蔵する。しかし、それは必須ではなく、一部の機能ブロックが集積回路3に外付けされていてもよい。また、図82に示されている構成とは異なり、メモリ部2が集積回路3に内蔵されていてもよい。更に、主制御部6と信号処理部7とは、完全に分離された機能ブロックでなくてもよく、例えば主制御部6が信号処理部7の処理の一部を行ってもよい。
集積回路3内の機能ブロック間を接続する制御バス及びデータバスのトポロジーは、各機能ブロックの処理の手順及び内容に合わせて選択されればよい。図87は、集積回路3内の制御バス及びデータバスのトポロジーの例(a)、(b)を示す模式図である。図87の(a)を参照するに、制御バス11とデータバス12とはいずれも、各機能ブロック5−9を他の全ての機能ブロックに直結させるように配置されている。その他に、図87の(b)に示されているように、データバス13は各機能ブロック5−8をメモリ制御部9にのみ直結させるように配置されてもよい。その場合、各機能ブロック5−8はメモリ制御部9、更にメモリ部2を介してデータを他の機能ブロックに転送する。
集積回路3は、単一のチップに実装されたLSIに代えて、マルチチップ・モジュールであってもよい。その場合、集積回路3を構成する複数のチップは一つのパッケージに封止されているので、集積回路3は見かけ上、単一のLSIである。集積回路3はその他に、FPGA(Field Programmable Gate Array)又はリコンフィギュラブル・プロセッサを利用して構成されてもよい。FPGAは、製造後にプログラム可能なLSIである。リコンフィギュラブル・プロセッサは、内部の回路セル間の接続、及び各回路セルの設定を再構成可能なLSIである。
<集積回路3の表示装置への実装>
上記の集積回路3と同様な集積回路を表示装置に実装して、実施形態4による再生装置の行う上記の処理をその表示装置に行わせても構わない。図88は、表示装置103に実装された集積回路3とその周辺部との構成を示す機能ブロック図である。図88に示されている構成は、図82に示されている構成とは、出力端子10が、表示駆動部11、表示パネル12、及びスピーカ13に置き換えられている点で異なる。その他の構成要素は、図82に示されているものと同様である。従って、それら同様な構成要素の詳細については、上記の説明を援用する。図88を参照するに、集積回路3は媒体IF部1とメモリ2とを利用して、媒体IF部1が受信したデータに対して上記の信号処理と同様な処理を行う。集積回路3によって処理された映像系データは表示駆動部11へ送られる。表示駆動部11はその映像系データに従って表示パネル12を制御する。その結果、その映像系データは表示パネル12の画面上に映像として出力される。ここで、表示パネル12は液晶表示パネルである。その他に、プラズマ表示パネル、有機EL表示パネル等、他の方式のものであってもよい。一方、集積回路3によって処理された音声系データはスピーカ13を通して音声として出力される。尚、スピーカ13に代えて、図82に示されている出力端子10と同様な出力端子を通して表示装置103に外付けされたスピーカが利用されてもよい。
図89は、図88に示されているAV出力部8の詳細な機能ブロック図である。AV出力部8は、図85に示されているものとは異なり、オーディオ・ビデオ出力IF部83に代えて、ビデオ出力IF部84とオーディオ出力IF部85との対を備えている。ビデオ出力IF部84とオーディオ出力IF部85とは、集積回路3の内部と外部とのいずれに設置されていてもよい。ビデオ出力IF部84は、ビデオ出力フォーマット変換部82から表示駆動部11へ映像系データを転送する。オーディオ出力IF部85は信号処理部7からスピーカ12へ音声系データを転送する。尚、ビデオ出力IF部84とオーディオ出力IF部85とはそれぞれ、複数備えられていてもよい。また、ビデオ出力IF部84とオーディオ出力IF部85とは一体化されていてもよい。
<集積回路3を利用した再生装置102の再生処理>
図90は、集積回路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からのデータ受信、又は読み出しを終了させた場合、処理は終了する。
図91は、図90に示されている各ステップS1−6の詳細を示すフローチャートである。図91に示されている各ステップ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変換処理は、必要に応じて省略されてもよい。更に、それらの処理に加え、又はそれらの処理に代えて、ノイズ・リダクション処理及びフレームレート変換処理等、他の処理が行われてもよい。更に、可能なものについては処理手順が変更されてもよい。
図88に示されている表示装置103で再生処理を行う場合でも、その再生処理のフローチャートは基本的には、図90、91に示されているものと同様である。図88、89に示されている各機能ブロックは、図82、85に示されている各機能ブロックと同様に動作する。
《補足》
<3D映像の再生方法の原理>
3D映像の再生方法は、ホログラフィ技術を用いる方法と、視差映像を用いる方法との2つに大別される。
ホログラフィ技術を用いる方法の特徴は、現実の立体的な物体から人間の視覚に与えられる光学的な情報とほぼ全く同じ情報を視聴者の視覚に与えることにより、その視聴者に映像中の物体を立体的に見せる点にある。しかし、この方法を動画表示に利用する技術は理論上確立されてはいる。しかし、その動画表示に必要とされる、膨大な演算をリアルタイムに処理可能なコンピュータ、及び、1mmあたり数千本という超高解像度の表示装置はいずれも、現在の技術ではまだ、実現が非常に難しい。従って、この方法を商業用として実用化する目途は、現時点ではほとんど立っていない。
「視差映像」とは、一つのシーンを見る視聴者の各目に映る2D映像の対、すなわち、レフトビューとライトビューとの対をいう。視差映像を用いる方法の特徴は、一つのシーンのレフトビューとライトビューとを視聴者の各目だけに見えるように再生することにより、その視聴者にそのシーンを立体的に見せる点にある。
図92の(a)−(c)は、視差映像を用いる方法による3D映像(立体視映像)の再生原理を説明するための模式図である。図92の(a)は、視聴者VWRが、顔の正面に置かれた立方体CBCを見ている光景の上面図である。図92の(b)、(c)はそれぞれ、そのときに視聴者VWRの左目LEY、右目REYに見える立方体CBCの外観を2D映像として示す模式図である。図92の(b)、(c)を比較すれば明らかなとおり、各目に見える立方体CBCの外観はわずかに異なる。この外観の差、すなわち両眼視差から、視聴者VWRは立方体CBCを立体的に認識できる。従って、視差映像を用いる方法では、まず、一つのシーン、例えば図92の(a)に示されている立方体CBCに対し、視点が異なる左右の2D映像、例えば図92の(b)に示されている立方体CBCのレフトビュー、及び図92の(c)に示されているそのライトビューを準備する。ここで、各視点の位置は視聴者VWRの両眼視差から決定される。次に、各2D映像を視聴者VWRのそれぞれの目だけに見えるように再生する。それにより、視聴者VWRには、画面に再生されるそのシーン、すなわち立方体CBCの映像が立体的に見える。このように、視差映像を用いる方法は、ホログラフィ技術を用いる方法とは異なり、高々二つの視点から見える2D映像を準備するだけでよい点で有利である。
視差映像を用いる方法については、それを具体化するための方式が多様に提案されている。それらの方式は、左右の2D映像を視聴者のそれぞれの目にいかにして見せるかという観点から、継時分離方式、レンチキュラーレンズを用いる方式、及び二色分離方式等に分けられる。
継時分離方式では、画面に左右の2D映像を一定時間ずつ交互に表示する一方、視聴者にシャッター眼鏡を通して画面を観察させる。ここで、シャッター眼鏡は、各レンズが例えば液晶パネルで形成されている。各レンズは、画面上の2D映像の切り換えに同期して交互に光をその全体で一様に透過させ、又は遮断する。すなわち、各レンズは、視聴者の目を周期的に塞ぐシャッターとして機能する。より詳細に言えば、画面上に左映像が表示される期間では、シャッター眼鏡は左側のレンズには光を透過させ、右側のレンズには光を遮断させる。逆に、画面上に右映像が表示されている期間では、シャッター眼鏡は右側のレンズには光を透過させ、左側のレンズには光を遮断させる。それにより、視聴者の目には、左右の映像の残像が重なって一つの3D映像に見える。
継時分離方式では、上記のとおり、左右の映像を一定周期で交互に表示する。例えば2D映像の再生において1秒当たり24枚の映像フレームが表示されるとき、3D映像の再生では左右の映像を合わせて、1秒当たり48枚の映像フレームが表示される。従って、この方式には、画面の書き換えを速く実行できる表示装置が好適である。
レンチキュラーレンズを用いる方式では、左右の各映像フレームを、縦方向に細長い短冊形の小領域に分割し、一つの画面の中に左右の映像フレームの各小領域を横方向に交互に並べて同時に表示する。ここで、画面の表面はレンチキュラーレンズで覆われている。レンチキュラーレンズは、細長い蒲鉾レンズを複数平行に並べて一枚のシート状にしたものである。各蒲鉾レンズは画面の表面を縦方向に延びている。レンチキュラーレンズを通して上記左右の映像フレームを視聴者に見せるとき、左映像フレームの表示領域からの光は視聴者の左目だけに結像し、右映像フレームの表示領域からの光は右目だけに結像するようにできる。こうして、左右の目に映る映像間での両眼視差により、視聴者には3D映像が見える。尚、この方式では、レンチキュラーレンズに代えて、同様な機能を持つ液晶素子等の他の光学部品が利用されてもよい。その他に、例えば左映像フレームの表示領域には縦偏光のフィルタを設置し、右映像フレームの表示領域には横偏光のフィルタを設置してもよい。そのとき、視聴者には偏光眼鏡を通して画面を見させる。ここで、その偏光眼鏡では、左側のレンズに縦偏光フィルタが設置され、かつ右側のレンズに横偏光フィルタが設置されている。従って、左右の映像が視聴者のそれぞれの目だけに見えるので、視聴者に3D映像を見せることができる。
視差映像を用いる方法では、3D映像コンテンツが、初めから左右の映像の組み合わせで構成されている場合の他に、2D映像とデプスマップとの組み合わせで構成されていてもよい。その2D映像は、再生対象の3D映像から仮想的な2D画面への射影を表し、デプスマップは、その2D画面に対するその3D映像の各部の奥行きを画素別に表す。3D映像コンテンツが2D映像とデプスマップとの組み合わせで構成されているとき、3D再生装置又は表示装置はまず、それらの組み合わせから左右の映像を構成し、次にそれらの映像から上記の方式のいずれかで3D映像を再現する。
図93は、2D映像MVWとデプスマップDPHとの組み合わせからレフトビューLVWとライトビューRVWとを構成する例を示す模式図である。図93を参照するに、2D映像MVWでは、背景BGVの中に円板DSCが表示されている。デプスマップDPHはその2D映像MVW内の各部の奥行きを画素ごとに示す。そのデプスマップDPHによれば、2D映像MVWのうち、円板DSCの表示領域DA1の奥行きが画面よりも手前であり、かつ、背景BGVの表示領域DA2の奥行きが画面よりも奥である。再生装置内では視差映像生成部PDGがまず、デプスマップDPHの示す各部の奥行きから2D映像MVW内の各部の両眼視差を計算する。視差映像生成部PDGは次に、2D映像MVW内の各部の表示位置を、計算された両眼視差に応じて左右に移動させて、レフトビューLVWとライトビューRVWとを構成する。図93に示されている例では、視差映像生成部PDGは、2D映像MVW内の円板DSCの表示位置に対し、レフトビューLVW内の円板DSLの表示位置をその両眼視差の半分S1だけ右に移動させ、ライトビューRVW内の円板DSRの表示位置をその両眼視差の半分S1だけ左に移動させる。それにより、視聴者には円板DSCが画面よりも手前に見える。一方、視差映像生成部PDGは、2D映像MVW内の背景BGVの表示位置に対し、レフトビューLVW内の背景BGLの表示位置をその両眼視差の半分S2だけ左に移動させ、ライトビューRVW内の背景BGRの表示位置をその両眼視差の半分S2だけ右に移動させる。それにより、視聴者には背景BGVが画面よりも奥に見える。
視差映像を用いる方法による3D映像の再生システムは、映画館及び遊園地のアトラクション等で利用されるものについては既に確立され、一般的に使用されている。従って、その方法は、3D映像を再生可能なホームシアター・システムの実用化にも有効である。本発明の実施形態では、視差映像を用いる方法のうち、継時分離方式又は偏光眼鏡を用いた方式を想定する。但し、本発明は、それらの方式とは異なる他の方式に対しても、それらが視差映像を用いている限り、適用可能である。それは、上記の実施形態の説明から当業者には明らかであろう。
<BD−ROMディスク上のファイルシステム>
BD−ROMディスク101のファイルシステムとしてUDFが利用されるとき、図2に示されているボリューム領域202Bは、一般に複数のディレクトリ、ファイルセット記述子、及び終端記述子のそれぞれが記録された領域を含む。「ディレクトリ」は、同じディレクトリを構成するデータ群である。「ファイルセット記述子」は、ルートディレクトリのファイル・エントリが記録されているセクタのLBNを示す。「終端記述子」はファイルセット記述子の記録領域の終端を示す。
各ディレクトリは共通のデータ構造を持つ。各ディレクトリは特に、ファイル・エントリ、ディレクトリ・ファイル、及び下位ファイル群を含む。
「ファイル・エントリ」は、記述子タグ、ICB(Information Control Block)タグ、及びアロケーション記述子を含む。「記述子タグ」は、その記述子タグを含むデータの種類がファイル・エントリであることを示す。例えば記述子タグの値が“261”であるとき、そのデータの種類はファイル・エントリである。「ICBタグ」はそのファイル・エントリ自身の属性情報を示す。「アロケーション記述子」は、同じディレクトリに属するディレクトリ・ファイルが記録されたセクタのLBNを示す。
「ディレクトリ・ファイル」は、下位ディレクトリのファイル識別記述子と下位ファイルのファイル識別記述子とを一般に複数ずつ含む。「下位ディレクトリのファイル識別記述子」は、そのディレクトリの直下に置かれた下位ディレクトリにアクセスするための情報である。このファイル識別記述子は、その下位ディレクトリの識別情報、ディレクトリ名の長さ、ファイル・エントリ・アドレス、及びディレクトリ名そのものを含む。特にファイル・エントリ・アドレスは、その下位ディレクトリのファイル・エントリが記録されたセクタのLBNを示す。「下位ファイルのファイル識別記述子」は、そのディレクトリの直下に置かれた下位ファイルにアクセスするための情報である。このファイル識別記述子は、その下位ファイルの識別情報、ファイル名の長さ、ファイル・エントリ・アドレス、及びファイル名そのものを含む。特にファイル・エントリ・アドレスは、その下位ファイルのファイル・エントリが記録されたセクタのLBNを示す。「下位ファイルのファイル・エントリ」は、後述のとおり、下位ファイルの本体を構成するデータのアドレス情報を含む。
ファイルセット記述子と下位ディレクトリ/ファイルのファイル識別記述子とを順番に辿ってゆけば、ボリューム領域202Bに記録された任意のディレクトリ/ファイルのファイル・エントリにアクセスすることができる。具体的には、まず、ファイルセット記述子からルートディレクトリのファイル・エントリが特定され、そのファイル・エントリ内のアロケーション記述子からルートディレクトリのディレクトリ・ファイルが特定される。次に、そのディレクトリ・ファイルからルートディレクトリ直下のディレクトリのファイル識別記述子が検出され、その中のファイル・エントリ・アドレスからそのディレクトリのファイル・エントリが特定される。更に、そのファイル・エントリ内のアロケーション記述子からそのディレクトリのディレクトリ・ファイルが特定される。続いて、そのディレクトリ・ファイルのうち、下位ディレクトリ又は下位ファイルのファイル識別記述子内のファイル・エントリ・アドレスからその下位ディレクトリ又は下位ファイルのファイル・エントリが特定される。
「下位ファイル」はそれぞれエクステントとファイル・エントリとを含む。「エクステント」は一般に複数であり、それぞれ、ディスク上の論理アドレス、すなわちLBNが連続しているデータ列である。エクステントの全体が下位ファイルの本体を構成する。「ファイル・エントリ」は、記述子タグ、ICBタグ、及びアロケーション記述子を含む。「記述子タグ」は、その記述子タグを含むデータの種類がファイル・エントリであることを示す。「ICBタグ」はそのファイル・エントリ自身の属性情報を示す。「アロケーション記述子」は各エクステントに対して一つずつ設けられ、ボリューム領域202B上での各エクステントの配置、具体的には各エクステントのサイズとその先端のLBNとを示す。従って、各アロケーション記述子を参照することにより、各エクステントにアクセスすることができる。その他に、各アロケーション記述子の上位2ビットは、そのアロケーション記述子の示すLBNのセクタにエクステントが実際に記録されているか否かを示す。すなわち、その上位2ビットが“0”であるとき、そのセクタにはエクステントが割り付け済みであり、かつ記録済みであることを示し、“1”であるとき、そのセクタにエクステントが割り付け済みではあるが未記録であることを示す。
UDFを利用した上記のファイルシステムと同様、ボリューム領域202Bに対するファイルシステムでは一般に、ボリューム領域202Bに記録された各ファイルが複数のエクステントに分割されているとき、上記のアロケーション記述子のように、各エクステントの配置を示す情報がボリューム領域202Bに併せて記録される。その情報を参照することにより、各エクステントの配置、特にその論理アドレスを知ることができる。
<復号スイッチ情報>
図94の(a)は、復号スイッチ情報A050のデータ構造を示す模式図である。復号スイッチ情報A050は、図8に示されているベースビュー・ビデオ・ストリームとディペンデントビュー・ビデオ・ストリームとの各VAUでその補足データ831D、832Dに格納されている。但し、ディペンデントビュー・ビデオ・ストリームの各GOPの先頭に位置するVAU#1832では、復号スイッチ情報A050は、オフセット・メタデータを含む補足データ832Dとは別の補足データに格納される。補足データ831D、832Dは、特にMPEG−4 AVC、MVCではNALユニットの一種“SEI”に相当する。復号スイッチ情報A050は、再生装置102内のデコーダに、次に復号すべきVAUを容易に特定させるための情報である。ここで、そのデコーダは後述のように、ベースビュー・ビデオ・ストリームとディペンデントビュー・ビデオ・ストリームとをVAU単位で交互に復号する。そのとき、そのデコーダは一般に、各VAUに付与されたDTSの示す時刻に合わせて、次に復号すべきVAUを特定する。しかし、デコーダの種類には、DTSを無視してVAUを順次、復号し続けるものも多い。そのようなデコーダにとって、各VAUがDTSに加えて復号スイッチ情報A050を含むことは好ましい。
図94の(a)を参照するに、復号スイッチ情報A050は、次アクセスユニット・タイプA051、次アクセスユニット・サイズA052、及び復号カウンタA053を含む。次アクセスユニット・タイプA051は、次に復号されるべきVAUがベースビュー・ビデオ・ストリームとディペンデントビュー・ビデオ・ストリームとのいずれに属するのかを示す。例えば、次アクセスユニット・タイプA051の値が“1”であるときは、次に復号されるべきVAUはベースビュー・ビデオ・ストリームに属し、“2”であるときはディペンデントビュー・ビデオ・ストリームに属する。次アクセスユニット・タイプA051の値が“0”であるときは、現在のVAUが復号対象のストリームの後端に位置し、次に復号されるべきVAUが存在しない。次アクセスユニット・サイズA052は、次に復号されるべきVAUのサイズを示す。再生装置102内のデコーダは、次アクセスユニット・サイズA052を参照することにより、VAUの構造自体を解析することなく、そのサイズを特定できる。従って、デコーダはバッファからVAUを容易に抽出できる。復号カウンタA053は、それの属するVAUが復号されるべき順番を示す。その順番は、ベースビュー・ビデオ・ストリーム内のIピクチャを含むVAUから数えられる。
図94の(b)は、ベースビュー・ビデオ・ストリームA001とディペンデントビュー・ビデオ・ストリームA002との各ピクチャに割り当てられた復号カウンタの一例A010、A020を示す模式図である。図94の(b)を参照するに、復号カウンタA010、A020は両ビデオ・ストリームA001、A002の間で交互にインクリメントされる。例えば、ベースビュー・ビデオ・ストリームA001内のIピクチャを含むVAUA011に対し、復号カウンタA010として“1”が割り当てられる。次に復号されるべきディペンデントビュー・ビデオ・ストリームA002内のPピクチャを含むVAUA021に対し、復号カウンタA020として“2”が割り当てられる。更にその次に復号されるべきベースビュー・ビデオ・ストリームA001内のPピクチャを含むVAUA012に対し、復号カウンタA010として“3”が割り当てられる。その割り当てにより、何らかの不具合が原因で再生装置102内のデコーダがいずれかのVAUを読み損なったときでも、それによって欠落したピクチャをデコーダは復号カウンタA010、A020から直ちに特定できる。従って、デコーダはエラー処理を適切に、かつ迅速に実行できる。
図94の(b)に示されている例では、ベースビュー・ビデオ・ストリームA001の3番目のVAUA013の読み込みにエラーが生じ、Brピクチャが欠落している。しかし、デコーダは、ディペンデントビュー・ビデオ・ストリームA002の2番目のVAUA022に含まれるPピクチャの復号処理で、そのVAUA022から復号カウンタA020を読み出して保持している。従って、デコーダは次に処理すべきVAUの復号カウンタA010を予測できる。具体的には、そのPピクチャを含むVAUA022内の復号カウンタA020は“4”であるので、次に読み込まれるべきVAUの復号カウンタA010は“5”であると予測される。しかし、実際には、次に読み込まれたVAUはベースビュー・ビデオ・ストリームA001の4番目のVAUA014であったので、その復号カウンタA010は“7”である。そのことから、デコーダは、VAUを一つ読み損ねたことを検出できる。従って、デコーダは次のエラー処理を実行できる:「ディペンデントビュー・ビデオ・ストリームA002の3番目のVAUA023から抽出されたBピクチャについては、参照すべきBrピクチャが欠落しているので復号処理をスキップする」。このように、デコーダは復号処理ごとに復号カウンタA010、A020をチェックする。それにより、デコーダはVAUの読み込みエラーを迅速に検出でき、かつ適切なエラー処理を迅速に実行できる。その結果、再生映像へのノイズの混入を防止することができる。
図94の(c)は、ベースビュー・ビデオ・ストリームA001とディペンデントビュー・ビデオ・ストリームA002との各ピクチャに割り当てられた復号カウンタの別例A030、A040を示す模式図である。図94の(c)を参照するに、復号カウンタA030、A040は各ビデオ・ストリームA001、A002で別々にインクリメントされる。従って、復号カウンタA030、A040は、同じ3D・VAUに属する一対のピクチャ間で等しい。その場合、デコーダはベースビュー・ビデオ・ストリームA001のVAUを一つ復号した時点では次のように予測できる:「その復号カウンタA030が、次に復号されるべきディペンデントビュー・ビデオ・ストリームA002のVAUの復号カウンタA040に等しい」。一方、デコーダはディペンデントビュー・ビデオ・ストリームA002のVAUを一つ復号した時点では次のように予測できる:「その復号カウンタA040に1を加えた値が、次に復号されるべきベースビュー・ビデオ・ストリームA001のVAUの復号カウンタA030に等しい」。従って、デコーダはいずれの時点でも復号カウンタA030、A040からVAUの読み込みエラーを迅速に検出でき、かつ適切なエラー処理を迅速に実行できる。その結果、再生映像へのノイズの混入を防止することができる。
図52に示されているシステム・ターゲット・デコーダ5023では、DEC5204が、復号スイッチ情報A050を利用して、各VAUからピクチャをそのDTSに関わらず、順次復号してもよい。その他に、バッファ・スイッチ5206が、そのVAU内の復号スイッチ情報A050をDEC5204に返信させてもよい。その場合、バッファ・スイッチ5206はその復号スイッチ情報A050を使って、次のVAUをEB15203とEB25210とのいずれから転送すべきか決定できる。
<レフトビューとライトビューとの間のずれ補償>
レフトビューとライトビューとの間には「ずれ」が生じる場合がある。本発明の実施形態1による再生装置102又は表示装置103は、以下に述べる手段を用いてそのずれを補償する。それにより、そのずれが視聴者に違和感を与える危険性を回避することができる。
再生装置102は、上記のずれの補償処理に、図50に示されている機能部を利用する。一方、表示装置103がその補償処理を行ってもよい。図95は、その補償処理を行う表示装置103の機能ブロック図である。図95を参照するに、表示装置103は、受信部A101、ストリーム処理部A102、信号処理部A103、及び出力部A104を備えている。受信部A101は、再生装置102の他、BD−ROMディスク、半導体メモリ装置、外部ネットワーク、及び放送波等の各種媒体から多重化ストリーム・データを受信してストリーム処理部A102に渡す。ストリーム処理部A102は、その多重化ストリーム・データから、映像、音声、グラフィックス等、各種のデータを分離して信号処理部A103に渡す。信号処理部A103は、それらのデータを個別に復号して出力部A104に渡す。出力部A104は、復号された各データを所定の形式に変換して出力する。出力部A104の出力は映像/音声そのものである。その他に、HDMI方式等の映像信号/音声信号であってもよい。図95に示されている要素A101、A102、A103、及びA104のうち、ディスクドライブ、表示パネル、及びスピーカ等の機械的な部分以外は、一以上の集積回路に実装されている。
≪レフトビューとライトビューとの間の水平方向のずれ≫
図96の(a)は、3D映像を撮影する一対のビデオカメラCML、CMRの水平画角HAL、HARを模式的に示す平面図である。図96の(a)を参照するに、一対のビデオカメラCML、CMRは水平方向に並べられている。左側のビデオカメラCMLはレフトビューを撮影し、右側のビデオカメラCMRはライトビューを撮影する。それらのビデオカメラCML、CMRの水平画角HAL、HARは、大きさは等しいが、位置は異なる。従って、左側のビデオカメラCMLの水平画角HALにのみ含まれる領域ALと、右側のビデオカメラCMRの水平画角HARにのみ含まれる領域ARとが生じる。両方の水平画角HAL、HARの共通部分に位置する被写体OBCはいずれのビデオカメラCML、CMRにも映る。しかし、左側のビデオカメラCMLの水平画角HALにのみ含まれる領域ALに位置する被写体OBLは左側のビデオカメラCMLにしか映らず、右側のビデオカメラCMRの水平画角HARにのみ含まれる領域ARに位置する被写体OBRは右側のビデオカメラCMRにしか映らない。
図96の(b)、(c)はそれぞれ、左側のビデオカメラCMLで撮影されたレフトビューLVと、右側のビデオカメラCMRで撮影されたライトビューRVとを示す模式図である。図96の(b)、(c)を参照するに、左側のビデオカメラCMLの水平画角HALにのみ含まれる領域ALはレフトビューLVに、その左端に沿って延びている帯状領域として含まれる。しかし、その帯状領域ALはライトビューRVには含まれない。一方、右側のビデオカメラCMRの水平画角HARにのみ含まれる領域ARはライトビューRVに、その右端に沿って延びている帯状領域として含まれる。しかし、その帯状領域ARはレフトビューLVには含まれない。従って、図96の(a)に示されている三つの被写体OBL、OBC、OBRのうち、右側の被写体OBRはレフトビューLVには含まれず、左側の被写体OBLはライトビューRVには含まれない。その結果、左側の被写体OBLは視聴者の左目にしか映らず、右側の被写体OBRは右目にしか映らない。その場合、レフトビューLVとライトビューRVとは視聴者に違和感を与える危険性がある。
BD−ROMディスク101では、レフトビューLVとライトビューRVとの各フレームに含まれる上記の帯状領域AL、ARの幅WDHを示す情報がディペンデントビュー・ビデオ・ストリームに格納されている。その格納場所は、各ビデオ・シーケンスの先頭に位置するVAUの補足データである。但し、その補足データは、図11に示されているオフセット・メタデータ1110を含む補正データとは別である。一方、再生装置102では、システム・ターゲット・デコーダ5023がディペンデントビュー・ビデオ・ストリームから、上記の帯状領域AL、ARの幅WDHを示す情報を読み出す。システム・ターゲット・デコーダ5023は更にその情報をプレーン加算部5024内の視差映像生成部5310又は表示装置103内の出力部A104に伝える。表示装置103内の受信部A101がBD−ROMディスク等の情報媒体から3D映像コンテンツを直に読み取る場合、上記の情報は表示装置103内の信号処理部A103によってディペンデントビュー・ビデオ・ストリームから読み出されて出力部A104に伝えられる。視差映像生成部A110又は出力部A104(以下、視差映像生成部A110等と略す。)は、その情報を利用して左映像プレーンと右映像プレーンとを加工し、上記の帯状領域AL、ARを背景色又は黒色で一様に塗りつぶす。すなわち、各帯状領域AL、ARに含まれる画素データを一様な背景色又は黒色のデータに書き換える。
図96の(d)、(e)はそれぞれ、加工後の左映像プレーンの表すレフトビューLVと、加工後の右映像プレーンの表すライトビューRVとを示す模式図である。図96の(d)を参照するに、左側のビデオカメラCMLの水平画角HALにのみ含まれる領域ALは、幅WDHの黒色帯BLで隠されている。一方、図96の(e)を参照するに、右側のビデオカメラCMRの水平画角HARにのみ含まれる領域ARは、幅WDHの黒色帯BRで隠されている。それらの結果、視聴者の各目には、レフトビューLVとライトビューRVとで共通する領域しか映らないので、その視聴者に違和感を与える危険性を回避することができる。
視差映像生成部5310等は更に、図55に示されているクロッピング処理と同様にして、左映像プレーンと右映像プレーンとのそれぞれから、上記の帯状領域AL、ARのうち、外側の半分の領域に含まれる画素データを除去してもよい。その場合、視差映像生成部5310等は、各帯状領域AL、ARの残り半分の領域を背景色又は黒色で一様に塗りつぶすと共に、その反対側の端部に、各帯状領域AL、ARの半分の幅の背景色又は黒色の帯状領域を付加する。それにより、視聴者のいずれの目にも、レフトビューLVとライトビューRVとで共通する領域の示す映像が画面の中央に映り、背景色又は黒色の帯が画面の両端に映る。その結果、視聴者に違和感を与える危険性を回避することができる。
その他に、視差映像生成部5310等は、左映像プレーンと右映像プレーンとを次のように処理してもよい。視差映像生成部5310等はまず、図55に示されているクロッピング処理と同様にして、各映像プレーンから上記の帯状領域AL、AR内の画素データを除去する。視差映像生成部5310等は次に、スケーリング処理によって、残りの領域内の画素データから各映像プレーンを再構成する。それにより、残りの領域の示す映像がフレーム全体に拡大表示される。その結果、視聴者の各目には、レフトビューLVとライトビューRVとで共通する領域しか映らないので、その視聴者に違和感を与える危険性を回避することができる。
≪レフトビューとライトビューとの間の垂直方向のずれ≫
図97の(a)は、3D映像を撮影する一対のビデオカメラCML、CMRの垂直画角VAL、VARを模式的に示す平面図である。図97の(a)を参照するに、それらのビデオカメラCML、CMRの垂直画角VAL、VARは、大きさは等しいが、位置は異なる。従って、左側のビデオカメラCMLの垂直画角VALにのみ含まれる領域ATと、右側のビデオカメラCMRの垂直画角VARにのみ含まれる領域ABとが生じる。両方の垂直画角VAL、VARの共通部分に位置する被写体OBJはいずれのビデオカメラCML、CMRにも映る。しかし、左側のビデオカメラCMLの垂直画角VALにのみ含まれる領域ATに位置する被写体は左側のビデオカメラCMLにしか映らず、右側のビデオカメラCMRの垂直画角VARにのみ含まれる領域ABに位置する被写体は右側のビデオカメラCMRにしか映らない。
図97の(b)は、左側のビデオカメラCMLで撮影されたレフトビューLVと、右側のビデオカメラCMRで撮影されたライトビューRVとを示す模式図である。図97の(b)を参照するに、左側のビデオカメラCMLの垂直画角VALにのみ含まれる領域ATはレフトビューLVに、その上端に沿って延びている帯状領域として含まれる。しかし、その帯状領域ATはライトビューRVには含まれない。一方、右側のビデオカメラCMRの垂直画角VARにのみ含まれる領域ABはライトビューRVに、その下端に沿って延びている帯状領域として含まれる。しかし、その帯状領域ABはレフトビューLVには含まれない。尚、帯状領域AT、ABの位置はレフトビューLVとライトビューRVとで逆の場合もある。このように、レフトビューLVとライトビューRVとで上記の帯状領域AT、ABの有無が異なる場合、図97の(a)に示されている被写体OBJの垂直方向の位置はレフトビューLVとライトビューRVとで、帯状領域AT、ABの高さHGTだけずれる。その結果、視聴者の左目に映る被写体OBJと、右目に映る被写体OBJとでは垂直方向の位置が異なるので、その視聴者に違和感を与える危険性がある。
BD−ROMディスク101では、マスク領域情報がディペンデントビュー・ビデオ・ストリームに格納され、特に各ビデオ・シーケンスの先頭に位置するVAUの補足データに格納されている。但し、その補足データは、図11に示されているオフセット・メタデータ1110を含む補正データとは別である。マスク領域情報は、レフトビューLVとライトビューRVとの各フレームに含まれる上記の帯状領域AT、ABの高さHGTを示す。一方、再生装置102では、システム・ターゲット・デコーダ5023がディペンデントビュー・ビデオ・ストリームからマスク領域情報を読み出して、プレーン加算部5024内の視差映像生成部5310又は表示装置103内の出力部A104に伝える。表示装置103内の受信部A101がBD−ROMディスク等の情報媒体から3D映像コンテンツを直に読み取る場合、マスク領域情報は表示装置103内の信号処理部A103によってディペンデントビュー・ビデオ・ストリームから読み出されて出力部A104に伝えられる。
視差映像生成部5310又は出力部A104(以下、視差映像生成部5310等と略す。)は、マスク領域情報の示す帯状領域AT、ABの高さHGTを用いて、左映像プレーンと右映像プレーンとを次の手順で加工する。視差映像生成部5310等はまず、左映像プレーン内の画素データの位置を下向きに高さHGTの半分HGT/2だけ移動させ、右映像プレーン内の画素データの位置を上向きに高さHGTの半分HGT/2だけ移動させる。それにより、各映像プレーンのうち、上記の帯状領域AT、AB以外の領域が表す映像と画面とで垂直方向の中心が一致する。一方、左映像プレーンでは、上端から帯状領域ATの上半分が除去され、下端から高さHDT/2の帯状領域に空き領域が生じる。右映像プレーンでは、下端から帯状領域ABの下半分が除去され、上端から高さHDT/2の帯状領域に空き領域が生じる。視差映像生成部5310等は次に、各帯状領域を背景色又は黒色で一様に塗りつぶす。すなわち、各帯状領域に含まれる画素データを一様な背景色又は黒色のデータに書き換える。
図97の(c)は、加工後の左映像プレーンの表すレフトビューLVと、加工後の右映像プレーンの表すライトビューRVとを示す模式図である。図97の(c)を参照するに、レフトビューLVとライトビューRVとでは垂直方向の中心位置が一致している。従って、図97の(a)に示されている被写体OBJの垂直方向の位置はレフトビューLVとライトビューRVとで等しい。一方、レフトビューLVの上端では、左側のビデオカメラCMLの垂直画角VALにのみ含まれる領域ATが高さHGT/2の黒色帯BTで隠され、ライトビューRVの下端では、右側のビデオカメラCMRの垂直画角VARにのみ含まれる領域ABが高さHGT/2の黒色帯BBで隠されている。更に、レフトビューLVの下端には高さHGT/2の黒色帯BBが付加され、ライトビューRVの上端には高さHGT/2の黒色帯BTが付加されている。それらの結果、視聴者の各目には、レフトビューLVとライトビューRVとで共通する領域しか映らず、かつ、各目に映る被写体の垂直方向の位置が一致する。こうして、その視聴者に違和感を与える危険性を回避することができる。
その他に、視差映像生成部5310等は左映像プレーンと右映像プレーンとを次のように処理してもよい。プレーン加算部5024はまず、図55に示されているクロッピング処理と同様にして、各映像プレーンから上記の帯状領域AT、AB内の画素データを除去する。視差映像生成部5310は次に、スケーリング処理によって残りの領域内の画素データから各映像プレーンを再構成する。それにより、残りの領域の示す映像がフレーム全体に拡大表示されるので、視聴者の各目には、レフトビューLVとライトビューRVとで共通する領域しか映らない。しかも、各目に映る被写体の垂直方向の位置が一致する。こうして、その視聴者に違和感を与える危険性を回避することができる。
≪レフトビューとライトビューとの間のグラフィックス映像のずれ≫
1プレーン+オフセット・モードの再生装置が一つのグラフィックス・プレーンに大きなオフセットを与えて一対のグラフィックス・プレーンを生成する場合、その対の一方の左端部又は右端部に、他方の右端部又は左端部には含まれない領域が生じ得る。
図98の(a)は、グラフィックス・プレーンGPLの表すグラフィックス映像の一例を示す模式図である。図98の(a)を参照するに、そのグラフィックス・プレーンGPLは三種類のグラフィック部品OB1、OB2、OB3を表す。特に左側のグラフィック部品OB1の左端はグラフィックス・プレーンGPLの左端から距離D1に位置し、右側のグラフィック部品OB3の右端はグラフィックス・プレーンGPLの右端から距離D3に位置する。図98の(b)、(c)はそれぞれ、グラフィックス・プレーンGPLに右向きと左向きとのオフセットを与える処理を示す模式図である。図98の(b)を参照するに、図55に示されているクロッピング処理と同様に、グラフィックス・プレーンGPLの右端からは、オフセット値に等しい幅OFSの帯状領域AR1が除去され、左端には幅OFSの透明な帯状領域AL1が付加されている。それにより、各グラフィック部品OB1−OB3の水平方向の位置が元の位置から、オフセット値に等しい距離OFSだけ右に移動している。一方、図98の(c)を参照するに、グラフィックス・プレーンGPLの左端からは幅OFSの帯状領域AL2が除去され、右端には幅OFSの透明な帯状領域AR2が付加されている。それにより、各グラフィック部品OB1−OB3の水平方向の位置が元の位置から距離OFSだけ左に移動している。
図98の(b)、(c)を更に参照するに、オフセット値に等しい距離OFSは、左側のグラフィック部品OB1の左端とグラフィックス・プレーンGPLの左端との間の距離D1よりも大きく、右側のグラフィック部品OB3の右端とグラフィックス・プレーンGPLの右端との間の距離D3よりも大きい。従って、右向きのオフセットが与えられたグラフィックス・プレーンGP1では右側のグラフィック部品OB3の右端の一部MP3が欠け、左向きのオフセットが与えられたグラフィックス・プレーンGP2では左側のグラフィック部品OB1の左端の一部MP1が欠けている。しかし、左側のグラフィック部品OB1の欠落部分MP1は、右向きのオフセットが与えられたグラフィックス・プレーンGP1には含まれ、右側のグラフィック部品OB3の欠落部分MP3は、左向きのオフセットが与えられたグラフィックス・プレーンGP2には含まれている。その結果、それらの欠落部分MP1、MP3は視聴者の片目にしか映らないので、視聴者に違和感を与える危険性がある。
再生装置102では、プレーン加算部5024内の各クロッピング処理部5331−5334がオフセット情報5307を用いてグラフィックス・プレーンGPLに対するオフセット制御を行う。そのとき、各クロッピング処理部5331−5334は更に、グラフィックス・プレーンGPLの左端又は右端から帯状領域を切り取る。すなわち、その帯状領域内の画素データを透明色のデータに書き換える。各帯状領域はグラフィックス・プレーンGPLの左端又は右端に沿って延びており、その幅がオフセット値に等しい。その他に、表示装置103内の出力部A104が、システム・ターゲット・デコーダ5023又は表示装置103内の信号処理部A103からオフセット情報を受け取って、そのオフセット情報を用いてグラフィックス・プレーンGPLの左端又は右端から帯状領域を切り取ってもよい。図98の(b)、(c)には、切り取り対象の帯状領域AS1、AS2が示されている。右向きのオフセットが与えられたグラフィックス・プレーンGP1では、切り取り対象の帯状領域AS1が左側のグラフィック部品OB1の欠落部分MP1を含む。左向きのオフセットが与えられたグラフィックス・プレーンGP2では、切り取り対象の帯状領域AS2が右側のグラフィック部品OB3の欠落部分MP3を含む。
図98の(d)、(e)はそれぞれ、右向きと左向きとのオフセットが与えられたグラフィックス・プレーンGP1、GP2の表すグラフィックス映像を示す模式図である。図98の(d)、(e)を参照するに、それらのグラフィックス・プレーンGP1、GP2では、三種類のグラフィック部品OB1−OB3の形状が一致している。その結果、視聴者の各目には共通のグラフィックス映像しか映らない。こうして、その視聴者に違和感を与える危険性を回避することができる。
その他に、BD−ROMディスク101上のPGストリーム又はIGストリームから再生されるグラフィックス・プレーン、及び、再生装置102によって生成されるグラフィックス・プレーンに対し、グラフィック部品の配置に関する次の条件が規定されてもよい。図99は、その条件を示す模式図である。図99を参照するに、グラフィックス・プレーンGPLには、左上角を原点(0,0)とするxy直交座標が設定されている。x座標とy座標とはそれぞれ、グラフィックス・プレーンGPLの水平座標と垂直座標である。ここで、グラフィックス・プレーンGPLの右下角の座標を(TWD,THG)とする。そのxy座標を用いて、上記の条件は次のように規定される:各フレームにおいて、グラフィック部品OB1、OB2、OB3は、次の四点(OFS,0)、(TWD−OFS,0)、(TWD−OFS,THG)、(OFS,THG)を頂点とする矩形領域内に配置されなければならない。すなわち、グラフィックス・プレーンGPLの左端と右端とのそれぞれに沿って延びている幅OFSの帯状領域AL、ARではグラフィック部品の配置が禁止される。図98の(b)、(c)から明らかなとおり、それらの帯状領域AL、ARはオフセット制御によって切り取られる。従って、それらの帯状領域AL、ARへのグラフィック部品の配置が禁止されていれば、グラフィックス・プレーンGPLにオフセットが与えられた後でもグラフィック部品の形状に変化はない。その結果、視聴者の各目には共通のグラフィックス映像しか映らないので、その視聴者に違和感を与える危険性を回避することができる。
<放送、通信回路を経由したデータ配信>
本発明の実施形態1、2による記録媒体は、光ディスクの他、例えばSDメモリカードを含む可搬性半導体メモリ装置等、パッケージメディアとして利用可能なリムーバブルメディア全般を含む。また、実施形態1、2の説明では、予めデータが記録された光ディスク、すなわち、BD−ROM又はDVD−ROM等の既存の読み出し専用の光ディスクが例に挙げられている。しかし、本発明の実施形態はそれらに限定されない。例えば放送で、又はネットワーク経由で配信された3D映像のコンテンツを端末装置によって、BD−RE又はDVD−RAM等の既存の書き込み可能な光ディスクへ書き込むときに、実施形態1、2によるエクステントの配置が利用されてもよい。ここで、その端末装置は、再生装置に組み込まれていても、再生装置とは別の装置であってもよい。
<半導体メモリカードの再生>
本発明の実施形態1、2による記録媒体として、光ディスクに代えて半導体メモリカードを用いたときにおける、再生装置のデータ読み出し部について説明する。
再生装置のうち、光ディスクからデータを読み出す部分は、例えば光ディスクドライブによって構成される。それに対し、半導体メモリカードからデータを読み出す部分は、専用のインタフェース(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の記録領域に記録されればよく、その配信データへのアクセスは半導体メモリカード内の制御回路によって制御されなくてもよい。
<リアルタイム・レコーディングへの適用>
本発明の実施形態3では、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セクション内の「随時アクセスされるファイル」として管理される。すなわち、プレイリスト・ファイル及びクリップ情報ファイルは、再生プログラムの実行時にその構成要素の中に組み込まれる。それ故、プレイリスト・ファイル及びクリップ情報ファイルは再生プログラムにおいて、単なるデータの提示を超えた役割を果たす。