以下、本発明の好適な実施形態に係る記録媒体及び再生装置について、図面を参照しながら説明する。
《実施形態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(Meridian Lossless 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ストリーム323A、323Bの表す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 Elementary Stream)パケット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ごとに誤り訂正処理を行う。
≪ビデオ・ストリームのデータ構造≫
図6は、ベースビュー・ビデオ・ストリーム601とライトビュー・ビデオ・ストリーム602とのピクチャを表示時間順に示す模式図である。図6を参照するに、ベースビュー・ビデオ・ストリーム601はピクチャ610、611、612、…、619(以下、ベースビュー・ピクチャという。)を含み、ライトビュー・ビデオ・ストリーム602はピクチャ620、621、622、…、629(以下、ライトビュー・ピクチャという。)を含む。各ピクチャ610−619、620−629は1フレーム又は1フィールドを表し、MPEG−2又はMPEG−4 AVC等の動画圧縮符号化方式によって圧縮されている。
上記の符号化方式による各ピクチャの圧縮には、そのピクチャの空間方向及び時間方向での冗長性が利用される。ここで、空間方向での冗長性のみを利用するピクチャの符号化を「ピクチャ内符号化」という。一方、時間方向での冗長性、すなわち、表示順序の連続する複数のピクチャ間でのデータの類似性を利用するピクチャの符号化を「ピクチャ間予測符号化」という。ピクチャ間予測符号化では、まず符号化対象のピクチャに対して、表示時間が前又は後である別のピクチャが参照ピクチャとして設定される。次に、符号化対象のピクチャとその参照ピクチャとの間で動きベクトルが検出され、それを利用して動き補償が行われる。更に、動き補償後のピクチャと符号化対象のピクチャとの間の差分値が求められ、その差分値から空間方向での冗長性が除去される。こうして、各ピクチャのデータ量が圧縮される。
図6を参照するに、ベースビュー・ピクチャ610−619は一般に複数のGOP631、6932に分割されている。「GOP」は、I(Intra)ピクチャを先頭とする複数枚の連続するピクチャの列をいう。「Iピクチャ」は、ピクチャ内符号化によって圧縮されたピクチャをいう。GOPは一般に、Iピクチャの他に、P(Predictive)ピクチャとB(Bidirectionally Predivtive)ピクチャとを含む。「Pピクチャ」は、ピクチャ間予測符号化によって圧縮されたピクチャであって、表示時間がそれよりも前であるIピクチャ又は別のPピクチャが一枚、参照ピクチャとして利用されたものをいう。「Bピクチャ」は、ピクチャ間予測符号化によって圧縮されたピクチャであって、表示時間がそれよりも前又は後であるIピクチャ又はPピクチャが二枚、参照ピクチャとして利用されたものをいう。Bピクチャのうち、他のピクチャに対するピクチャ間予測符号化で参照ピクチャとして利用されるものを特に「Br(reference B)ピクチャ」という。
図6に示されている例では各GOP631、632内のベースビュー・ピクチャが以下の順で圧縮される。第1GOP631では、まず先頭のベースビュー・ピクチャがI0ピクチャ610に圧縮される。ここで、下付の数字は、各ピクチャに表示時間順に割り振られた通し番号を示す。次に、4番目のベースビュー・ピクチャがI0ピクチャ610を参照ピクチャとしてP3ピクチャ613に圧縮される。ここで、図6に示されている各矢印は、先端のピクチャが後端のピクチャに対する参照ピクチャであることを示す。続いて、2、3番目のベースビュー・ピクチャがI0ピクチャ610とP3ピクチャ613とを参照ピクチャとして、それぞれ、Br1ピクチャ611、Br2ピクチャ612に圧縮される。更に7番目のベースビュー・ピクチャがP3ピクチャ613を参照ピクチャとしてP6ピクチャ616に圧縮される。続いて、4、5番目のベースビュー・ピクチャがP3ピクチャ613とP6ピクチャ616とを参照ピクチャとして、それぞれ、Br4ピクチャ614、Br5ピクチャ615に圧縮される。同様に、第2GOP632では、まず先頭のベースビュー・ピクチャがI7ピクチャ617に圧縮される。次に3番目のベースビュー・ピクチャがI7ピクチャ617を参照ピクチャとしてP9ピクチャ619に圧縮される。続いて、2番目のベースビュー・ピクチャがI7ピクチャ617とP9ピクチャ619とを参照ピクチャとしてBr8ピクチャ618に圧縮される。
ベースビュー・ビデオ・ストリーム601では各GOP631、632がその先頭にIピクチャを必ず含むので、ベースビュー・ピクチャはGOPごとに復号可能である。例えば第1GOP631では、まずI0ピクチャ610が単独で復号される。次に、復号後のI0ピクチャ610を利用してP3ピクチャ613が復号される。続いて、復号後のI0ピクチャ610とP3ピクチャ613とを利用してBr1ピクチャ611とBr2ピクチャ612とが復号される。後続のピクチャ群614、615、…も同様に復号される。こうして、ベースビュー・ビデオ・ストリーム601は単独で復号可能であり、更にGOP単位でのランダム・アクセスが可能である。
図6を更に参照するに、ライトビュー・ピクチャ620−629はピクチャ間予測符号化で圧縮されている。しかし、その符号化方法はベースビュー・ピクチャ610−619の符号化方法とは異なり、映像の時間方向での冗長性に加え、左右の映像間の冗長性をも利用する。具体的には、各ライトビュー・ピクチャ620−629の参照ピクチャが、図6に矢印で示されているように、ライトビュー・ビデオ・ストリーム602からだけでなく、ベースビュー・ビデオ・ストリーム601からも選択される。特に各ライトビュー・ピクチャ620−629と、その参照ピクチャとして選択されたベースビュー・ピクチャとは表示時刻が実質的に等しい。それらのピクチャは3D映像の同じシーンのライトビューとレフトビューとの対、すなわち視差映像を表す。このように、ライトビュー・ピクチャ620−629はベースビュー・ピクチャ610−619と一対一に対応する。特にそれらのピクチャ間ではGOP構造が共通である。
図6に示されている例では、まず第1GOP631内の先頭のライトビュー・ピクチャがベースビュー・ビデオ・ストリーム601内のI0ピクチャ610を参照ピクチャとしてP0ピクチャ620に圧縮される。それらのピクチャ610、620は3D映像の先頭フレームのレフトビューとライトビューとを表す。次に、4番目のライトビュー・ピクチャがP0ピクチャ620とベースビュー・ビデオ・ストリーム601内のP3ピクチャ613とを参照ピクチャとしてP3ピクチャ623に圧縮される。続いて、2番目のライトビュー・ピクチャがP0ピクチャ620とP3ピクチャ623とに加えて、ベースビュー・ビデオ・ストリーム601内のBr1ピクチャ611を参照ピクチャとしてB1ピクチャ621に圧縮される。同様に、3番目のライトビュー・ピクチャがP0ピクチャ620とP3ピクチャ630とに加えて、ベースビュー・ビデオ・ストリーム601内のBr2ピクチャ612を参照ピクチャとしてB2ピクチャ622に圧縮される。以降のライトビュー・ピクチャ624−629についても同様に、そのライトビュー・ピクチャと表示時刻が実質的に等しいベースビュー・ピクチャが参照ピクチャとして利用される。
上記のような左右の映像間の相関関係を利用した動画圧縮符号化方式としては、MVC(Multiview Video Coding)と呼ばれるMPEG−4 AVC/H.264の修正規格が知られている。MVCは、ISO/IEC MPEGとITU−T VCEGとの共同プロジェクトであるJVT(Joint Video Team)によって2008年7月に策定されたものであり、複数の視点から見える映像をまとめて符号化するための規格である。MVCでは映像間予測符号化に、映像の時間方向での類似性だけでなく、視点の異なる映像間の類似性も利用される。その予測符号化では、各視点から見た映像を個別に圧縮する予測符号化よりも映像の圧縮率が高い。
上記のとおり、各ライトビュー・ピクチャ620−629の圧縮にはベースビュー・ピクチャが参照ピクチャとして利用される。従って、ベースビュー・ビデオ・ストリーム601とは異なり、ライトビュー・ビデオ・ストリーム602を単独で復号することはできない。しかし、視差映像間の差異は一般にわずかであり、すなわちレフトビューとライトビューとの間の相関は高い。従って、ライトビュー・ピクチャは一般にベースビュー・ピクチャよりも圧縮率が著しく高く、すなわちデータ量が著しく小さい。
図7は、ベースビュー・ビデオ・ストリーム601とデプスマップ・ストリーム701とのピクチャを表示時間順に示す模式図である。図7を参照するに、ベースビュー・ビデオ・ストリーム601は、図6に示されているものと同様である。従って、その詳細についての説明は、図6についての説明を援用する。一方、デプスマップ・ストリーム701はデプスマップ710、711、712、…、719を含む。デプスマップ710−719はベースビュー・ピクチャ610−619と一対一に対応し、各ベースビュー・ピクチャの示す1フレーム又は1フィールドの2D映像に対するデプスマップを表す。
各デプスマップ710−719は、ベースビュー・ピクチャ610−619と同様、MPEG−2又はMPEG−4 AVC等の動画圧縮符号化方式によって圧縮されている。特にその符号化方式ではピクチャ間予測符号化が利用される。すなわち、各デプスマップが他のデプスマップを参照ピクチャとして利用して圧縮される。図7に示されている例では、まず第1GOP631に対応するデプスマップ群の先頭がI0ピクチャ710に圧縮される。ここで、下付の数字は、各ピクチャに表示時間順に割り振られた通し番号を示す。次に、4番目のデプスマップがI0ピクチャ710を参照ピクチャとしてP3ピクチャ713に圧縮される。ここで、図7に示されている各矢印は、先端のピクチャが後端のピクチャに対する参照ピクチャであることを示す。続いて、2、3番目のデプスマップがI0ピクチャ710とP3ピクチャ713とを参照ピクチャとして、B1ピクチャ711、B2ピクチャ712のそれぞれに圧縮される。更に7番目のデプスマップがP3ピクチャ713を参照ピクチャとしてP6ピクチャ716に圧縮される。続いて、4、5番目のデプスマップがP3ピクチャ713とP6ピクチャ716とを参照ピクチャとして、B4ピクチャ714、B5ピクチャ715のそれぞれに圧縮される。同様に、第2GOP632に対応するデプスマップ群では、まず先頭のデプスマップがI7ピクチャ717に圧縮され、次に3番目のデプスマップがI7ピクチャ717を参照ピクチャとしてP9ピクチャ719に圧縮される。続いて、2番目のデプスマップがI7ピクチャ717とP9ピクチャ719とを参照ピクチャとしてB8ピクチャ718に圧縮される。
デプスマップ・ストリーム701はベースビュー・ビデオ・ストリーム601と同様にGOP単位に分割され、各GOPがその先頭にIピクチャを必ず含む。従って、デプスマップはGOPごとに復号可能である。例えば、まずI0ピクチャ710が単独で復号され、次に復号後のI0ピクチャ710を利用してP3ピクチャ713が復号される。続いて、復号後のI0ピクチャ710とP3ピクチャ713とを利用して、B1ピクチャ711とB2ピクチャ712とが復号される。後続のピクチャ群714、715、…も同様に復号される。こうして、デプスマップ・ストリーム701は単独で復号可能である。しかし、デプスマップ自体は2D映像の各部の奥行きを画素別に表す情報でしかないので、デプスマップ・ストリーム701を単独で映像の再生に利用することはできない。
ライトビュー・ビデオ・ストリーム602とデプスマップ・ストリーム701とは同じ符号化方式で圧縮される。例えば、ライトビュー・ビデオ・ストリーム602がMVCのフォーマットで符号化されているとき、デプスマップ・ストリーム701もMVCのフォーマットで符号化されている。その場合、再生装置102は3D映像の再生時、符号化方式を一定に維持したまま、L/Rモードとデプス・モードとの切り換えをスムーズに実現できる。
図8は、ビデオ・ストリーム800のデータ構造の詳細を示す模式図である。このデータ構造は、ベースビュー・ビデオ・ストリーム601とディペンデントビュー・ビデオ・ストリーム602、701とで実質的に共通である。図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を含む。二番目以降の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を含む。二番目以降のVAU#2は、サブシーケンス・ヘッダ832Bを含まない点を除き、VAU#1832と同じ構造である。サブシーケンス・ヘッダ832Bは、VAU#1832を含むビデオ・シーケンス#1の識別番号を含む。サブシーケンス・ヘッダ832Bは更に、GOP810の全体で共通する情報、例えば、解像度、フレームレート、アスペクト比、及びビットレートを含む。特にそれらの値は、ベースビュー・ビデオ・ストリームの対応するGOPに対して設定された値、すなわちVAU#1831のシーケンス・ヘッダ831Bの示す値に等しい。ピクチャ・ヘッダ832Cは、固有の識別番号、ビデオ・シーケンス#1の識別番号、及び、ピクチャの復号に必要な情報、例えば符号化方式の種類を示す。補足データ832Dは、ピクチャの復号以外に関する付加的な情報、例えば、クローズド・キャプションを示す文字情報、GOP構造に関する情報、及びタイムコード情報を含む。補足データ832Dは特に後述の復号スイッチ情報を含む。圧縮ピクチャ・データ832Eはディペンデントビュー・ピクチャを含む。VAU#1932はその他に、必要に応じて、パディング・データ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)に相当する。
図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(Presentation Time−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は、図8に示されている補足データ831Dのデータ構造を示す模式図である。補足データ831Dは、特にMPEG−4 AVCではNALユニットの一種“SEI”に相当する。図11を参照するに、補足データ831Dは復号スイッチ情報1101を含む。復号スイッチ情報1101は、ベースビュー・ビデオ・ストリームとディペンデントビュー・ビデオ・ストリームとの両方で各VAUに含まれる。復号スイッチ情報1101は、再生装置102内のデコーダに、次に復号すべきVAUを容易に特定させるための情報である。ここで、そのデコーダは後述のように、ベースビュー・ビデオ・ストリームとディペンデントビュー・ビデオ・ストリームとをVAU単位で交互に復号する。そのとき、そのデコーダは一般に、各VAUに付与されたDTSの示す時刻に合わせて、次に復号すべきVAUを特定する。しかし、デコーダの種類には、DTSを無視してVAUを順次、復号し続けるものも多い。そのようなデコーダにとって、各VAUがDTSに加えて復号スイッチ情報1101を含むことは好ましい。
図11を参照するに、復号スイッチ情報1101は、次アクセスユニット・タイプ1111、次アクセスユニット・サイズ1112、及び復号カウンタ1113を含む。次アクセスユニット・タイプ1111は、次に復号されるべきVAUがベースビュー・ビデオ・ストリームとディペンデントビュー・ビデオ・ストリームとのいずれに属するのかを示す。例えば、次アクセスユニット・タイプ1111の値が“1”であるときは、次に復号されるべきVAUはベースビュー・ビデオ・ストリームに属し、“2”であるときはディペンデントビュー・ビデオ・ストリームに属する。次アクセスユニット・タイプ1111の値が“0”であるときは、現在のVAUが復号対象のストリームの後端に位置し、次に復号されるべきVAUが存在しない。次アクセスユニット・サイズ1112は、次に復号されるべきVAUのサイズを示す。再生装置102内のデコーダは、次アクセスユニット・サイズ1112を参照することにより、VAUの構造自体を解析することなく、そのサイズを特定できる。従って、デコーダはバッファからVAUを容易に抽出できる。復号カウンタ1113は、それの属するVAUが復号されるべき順番を示す。その順番は、ベースビュー・ビデオ・ストリーム内のIピクチャを含むVAUから数えられる。
図12の(a)は、ベースビュー・ビデオ・ストリーム1201とディペンデントビュー・ビデオ・ストリーム1202との各ピクチャに割り当てられた復号カウンタの一例1210、1220を示す模式図である。図12の(a)を参照するに、復号カウンタ1210、1220は両ビデオ・ストリーム1201、1202の間で交互にインクリメントされる。例えば、ベースビュー・ビデオ・ストリーム1201内のIピクチャを含むVAU1211に対し、復号カウンタ1210として“1”が割り当てられる。次に復号されるべきディペンデントビュー・ビデオ・ストリーム1202内のPピクチャを含むVAU1221に対し、復号カウンタ1220として“2”が割り当てられる。更にその次に復号されるべきベースビュー・ビデオ・ストリーム1201内のPピクチャを含むVAU1212に対し、復号カウンタ1210として“3”が割り当てられる。その割り当てにより、何らかの不具合が原因で再生装置102内のデコーダがいずれかのVAUを読み損なったときでも、それによって欠落したピクチャをデコーダは復号カウンタ1210、1220から直ちに特定できる。従って、デコーダはエラー処理を適切に、かつ迅速に実行できる。
図12の(a)に示されている例では、ベースビュー・ビデオ・ストリーム1201の3番目のVAU1213の読み込みにエラーが生じ、Brピクチャが欠落している。しかし、デコーダは、ディペンデントビュー・ビデオ・ストリーム1202の2番目のVAU1222に含まれるPピクチャの復号処理で、そのVAU1222から復号カウンタ1220を読み出して保持している。従って、デコーダは次に処理すべきVAUの復号カウンタ1210を予測できる。具体的には、そのPピクチャを含むVAU1222内の復号カウンタ1220は“4”であるので、次に読み込まれるべきVAUの復号カウンタ1210は“5”であると予測される。しかし、実際には、次に読み込まれたVAUはベースビュー・ビデオ・ストリーム1201の4番目のVAU1214であったので、その復号カウンタ1210は“7”である。そのことから、デコーダは、VAUを一つ読み損ねたことを検出できる。従って、デコーダは次のエラー処理を実行できる:「ディペンデントビュー・ビデオ・ストリーム1202の3番目のVAU1223から抽出されたBピクチャについては、参照すべきBrピクチャが欠落しているので復号処理をスキップする」。このように、デコーダは復号処理ごとに復号カウンタ1210、1220をチェックする。それにより、デコーダはVAUの読み込みエラーを迅速に検出でき、かつ適切なエラー処理を迅速に実行できる。その結果、再生映像へのノイズの混入を防止することができる。
図12の(b)は、ベースビュー・ビデオ・ストリーム1201とディペンデントビュー・ビデオ・ストリーム1202との各ピクチャに割り当てられた復号カウンタの別例1230、1240を示す模式図である。図12の(b)を参照するに、復号カウンタ1230、1240は各ビデオ・ストリーム1201、1202で別々にインクリメントされる。従って、復号カウンタ1230、1240は、同じ3D・VAUに属する一対のピクチャ間で等しい。その場合、デコーダはベースビュー・ビデオ・ストリーム1201のVAUを一つ復号した時点では次のように予測できる:「その復号カウンタ1230が、次に復号されるべきディペンデントビュー・ビデオ・ストリーム1202のVAUの復号カウンタ1240に等しい」。一方、デコーダはディペンデントビュー・ビデオ・ストリーム1202のVAUを一つ復号した時点では次のように予測できる:「その復号カウンタ1240に1を加えた値が、次に復号されるべきベースビュー・ビデオ・ストリーム1201のVAUの復号カウンタ1230に等しい」。従って、デコーダはいずれの時点でも復号カウンタ1230、1240からVAUの読み込みエラーを迅速に検出でき、かつ適切なエラー処理を迅速に実行できる。その結果、再生映像へのノイズの混入を防止することができる。
≪多重化ストリーム・データのインターリーブ配置≫
3D映像のシームレス再生には、ベースビュー・ビデオ・ストリームとディペンデントビュー・ビデオ・ストリームとのBD−ROMディスク101上での物理的な配置が重要である。ここで、「シームレス再生」とは、多重化ストリーム・データから映像と音声とを途切れさせることなく滑らかに再生することをいう。
図13は、図3に示されているメインTSと、第1サブTS又は第2サブTSのいずれかとのBD−ROMディスク101上での物理的な配置を示す模式図である。図13を参照するに、各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のファイル・エントリから知ることができる(詳細は<補足>参照)。
図13に示されている例では、ファイル2D(01000.m2ts)241のファイル・エントリ1310がベースビュー・データ・ブロックB[n]の各サイズとその先端のLBNとを示す。従って、各ベースビュー・データ・ブロックB[n]はファイル2D241のエクステントEXT2D[n]としてアクセス可能である。以下、ファイル2D241に属するエクステントEXT2D[n]を「2Dエクステント」という。一方、第1ファイルDEP(02000.m2ts)242のファイル・エントリ1320がディペンデントビュー・データ・ブロックD[n]の各サイズとその先端のLBNとを示す。従って、各ディペンデントビュー・データ・ブロックD[n]はライトビュー・データ・ブロックであり、第1ファイルDEP242のエクステントEXT2[n]としてアクセス可能である。以下、第1ファイルDEP242に属するエクステントEXT2[n]を「ライトビュー・エクステント」という。ディペンデントビュー・データ・ブロックD[n]がデプスマップ・データ・ブロックである場合も同様に、各デプスマップ・データ・ブロックは第2ファイルDEP(03000.m2ts)243のエクステントとしてアクセス可能である。以下、第2ファイルDEP243に属するエクステントを「デプスマップ・エクステント」という。更に、ライトビュー・エクステントとデプスマップ・エクステントとのように、いずれかのファイルDEPに属するエクステントを「ディペンデントビュー・エクステント」と総称する。
図13を参照するに、データ・ブロック群はBD−ROMディスク101上のトラックに沿って連続的に記録されている。更に、ベースビュー・データ・ブロックB[n]とディペンデントビュー・データ・ブロックD[n]とは一つずつ交互に配置されている。このようなデータ・ブロック群の配置を「インターリーブ配置」という。特に、インターリーブ配置で記録された一連のデータ・ブロック群を「エクステント・ブロック」という。図13には三つのエクステント・ブロック1301、1302、1303が示されている。図13に示されているエクステント・ブロック1301、1302のように、エクステント・ブロックの間は多重化ストリーム・データ以外のデータNAVの記録領域によって分離される。また、BD−ROMディスク101が多層ディスクである場合、すなわち記録層を複数含む場合、図13に示されているエクステント・ブロック1302、1303のように、エクステント・ブロックの間は記録層間の境界LBによっても分離される。こうして、一連の多重化ストリーム・データは一般に複数のエクステント・ブロックに分割されて配置されている。その場合、再生装置102がその多重化ストリーム・データから映像をシームレスに再生するには、各エクステント・ブロックから再生される映像をシームレスに接続しなければならない。以下、そのために再生装置102が必要とする処理を「エクステント・ブロック間のシームレスな接続」という。
本発明の実施形態1によるエクステント・ブロック1301−1303ではそれぞれ、二種類のデータ・ブロックD[n]、B[n]の数が等しい。更に、n番目の隣接するデータ・ブロックの対D[n]、B[n]ではエクステントATC時間が等しい。ここで、「ATC(Arrival Time Clock)」は、ATSの基準とされるべきクロックを意味する。また、「エクステントATC時間」はATCの値で定義され、一つのエクステント内のソースパケットに付与されたATSの範囲、すなわち、そのエクステントの先頭のソースパケットのATSから次のエクステントの先頭のソースパケットのATSまでの時間間隔を表す。すなわち、エクステントATC時間は、そのエクステント内のソースパケットを全て、再生装置102内でリード・バッファからシステム・ターゲット・デコーダへ転送するのに要する時間に等しい。ここで、「リード・バッファ」は再生装置102内のバッファ・メモリであり、BD−ROMディスク101から読み出されたデータ・ブロックをシステム・ターゲット・デコーダへ送るまでの間、一時的に格納する。リード・バッファの詳細については後述する。図13に示されている例では、三つのエクステント・ブロック1301−1303が互いにシームレスに接続されるので、データ・ブロックの各対D[n]、B[n](n=0、1、2、…)でエクステントATC時間が等しい。
隣接するデータ・ブロックの各対D[n]、B[n]では、先頭に位置するVAUは同じ3D・VAUに属し、特に、同じ3D映像を表すGOPの先頭のピクチャを含む。例えば図13では、各ライトビュー・データ・ブロックD[n]の先端はライトビュー・ビデオ・ストリームのPピクチャを含み、先頭のベースビュー・データ・ブロックB[n]の先端はベースビュー・ビデオ・ストリームのIピクチャを含む。そのライトビュー・ビデオ・ストリームのPピクチャは、そのベースビュー・ビデオ・ストリームのIピクチャの表す2D映像をレフトビューとするときのライトビューを表す。特にそのPピクチャは、図6に示されているように、そのIピクチャを参照ピクチャとして圧縮されている。従って、3D再生モードの再生装置102は、いずれのデータ・ブロックの対D[n]、B[n]からも3D映像の再生を開始できる。すなわち、飛び込み再生等、ビデオ・ストリームのランダムアクセスを要する処理が可能である。
本発明の実施形態1によるインターリーブ配置では更に、隣接するデータ・ブロックの対D[n]、B[n]のうち、ディペンデントビュー・データ・ブロックD[n]がベースビュー・データ・ブロックB[n]よりも先に配置される。それは、ディペンデントビュー・データ・ブロックD[n]がベースビュー・データ・ブロックB[n]よりもデータ量が小さい、すなわちビットレートが低いことに因る。例えば図13では、n番目のライトビュー・データ・ブロックD[n]に含まれるピクチャは、図6に示されているように、n番目のベースビュー・データ・ブロック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時間の等しい部分の対に分割して読み出さねばならない。
図14の(a)は、あるBD−ROMディスク上に個別に連続して記録されたメインTS1401とサブTS1402との配置を示す模式図である。再生装置102がそれらのメインTS1401とサブTS1402とをパラレルに処理するとき、図14の(a)に実線の矢印(1)−(4)で示されているように、BD−ROMドライブ121はメインTS1401とサブTS1402とを交互に、エクステントATC時間の等しい部分ずつ読み出す。そのとき、BD−ROMドライブ121は、図14の(a)に破線の矢印で示されているように、読み出し処理の途中でBD−ROMディスク上の読み出し対象領域を大きく変化させなければならない。例えば矢印(1)の示すメインTS1401の先端部分が読み出された時、BD−ROMドライブ121は光ピックアップによる読み出し動作を一旦停止し、BD−ROMディスクの回転速度を上げる。それにより、矢印(2)の示すサブTS1402の先端部分が記録されたBD−ROMディスク上のセクタを速やかに光ピックアップの位置まで移動させる。このように、光ピックアップに読み出し動作を一旦停止させて、その間に次の読み出し対象領域上へ光ピックアップを位置づけるための操作を「ジャンプ」という。図14の(a)に示されている破線の矢印は、読み出し処理の途中で必要な各ジャンプの範囲を示す。各ジャンプの期間中、光ピックアップによる読み出し処理は停止し、デコーダによる復号処理のみが進行する。図14の(a)に示されている例ではジャンプが過大であるので、読み出し処理を復号処理に間に合わせることが難しい。その結果、シームレス再生を確実に持続することが難しい。
図14の(b)は、本発明の実施形態1によるBD−ROMディスク101上に交互に記録されたディペンデントビュー・データ・ブロックD[0]、D[1]、D[2]、…とベースビュー・データ・ブロックB[0]、B[1]、B[2]、…との配置を示す模式図である。図14の(b)を参照するに、メインTSとサブTSとはそれぞれ、複数のデータ・ブロックに分割されて交互に配置されている。その場合、再生装置102は3D映像の再生時、図14の(b)に矢印(1)−(4)で示されているように、データ・ブロックD[0]、B[0]、D[1]、B[1]、…を先頭から順番に読み出す。それだけで、再生装置102はメインTSとサブTSとを交互に読み出すことをスムーズに実現できる。特にその読み出し処理ではジャンプが生じないので、3D映像のシームレス再生が確実に持続可能である。
[隣接するデータ・ブロック間でエクステントATC時間を揃える意義]
図15の(a)は、インターリーブ配置で記録されたディペンデントビュー・データ・ブロック群D[n]とベースビュー・データ・ブロック群B[n]との各エクステントATC時間の一例を示す模式図である(n=0、1、2)。図15の(a)を参照するに、各ディペンデントビュー・データ・ブロックD[n]とその直後のベースビュー・データ・ブロックB[n]との対ではエクステントATC時間が等しい。例えば先頭のデータ・ブロックの対D[0]、B[0]ではエクステントATC時間が共に1秒に等しい。従って、各データ・ブロックD[0]、B[0]が再生装置102内のリード・バッファに読み込まれたとき、その中の全てのTSパケットが、同じ1秒間でリード・バッファからシステム・ターゲット・デコーダへ送られる。同様に、二番目のデータ・ブロックの対D[1]、B[1]ではエクステントATC時間が共に0.7秒に等しいので、同じ0.7秒間で、各データ・ブロック内の全てのTSパケットがリード・バッファからシステム・ターゲット・デコーダへ送られる。
図15の(b)は、インターリーブ配置で記録されたディペンデントビュー・データ・ブロック群D[n]とベースビュー・データ・ブロック群B[n]との各エクステントATC時間の別例を示す模式図である。図15の(b)を参照するに、全てのデータ・ブロックD[n]、B[n]でエクステントATC時間が1秒に等しい。従って、各データ・ブロックD[n]、B[n]が再生装置102内のリード・バッファに読み込まれたとき、いずれのデータ・ブロックでも、同じ1秒間で全てのTSパケットがリード・バッファからシステム・ターゲット・デコーダへ送られる。
上記のとおり、ディペンデントビュー・データ・ブロックはベースビュー・データ・ブロックよりも圧縮率が高い。従って、ディペンデントビュー・データ・ブロックの復号処理の速度は一般にベースビュー・データ・ブロックの復号処理の速度よりも低い。一方、エクステントATC時間が等しいとき、ディペンデントビュー・データ・ブロックはベースビュー・データ・ブロックよりもデータ量が小さい。従って、図15の(a)、(b)のように、隣接するデータ・ブロック間でエクステントATC時間が等しいとき、復号対象のデータがシステム・ターゲット・デコーダに供給される速度は、そのデコーダの処理速度と均衡を保ちやすい。すなわち、システム・ターゲット・デコーダは、特に飛び込み再生においても、ベースビュー・データ・ブロックの復号処理とディペンデントビュー・データ・ブロックの復号処理とを容易に同期させることができる。
[データ量の小さいデータ・ブロックを先に置く意義]
3D再生モードの再生装置102は、各エクステント・ブロック1301−1303の先頭に位置するデータ・ブロックを読み出すとき、又は再生開始位置のデータ・ブロックを読み出すとき、まず、そのデータ・ブロックを全てリード・バッファに読み込む。その間、そのデータ・ブロックはシステム・ターゲット・デコーダには渡されない。その読み込みが完了した後、再生装置102はそのデータ・ブロックを次のデータ・ブロックとパラレルにシステム・ターゲット・デコーダに渡す。この処理を「プリロード」という。
プリロードの技術的意義は次のとおりである。まず、L/Rモードでは、ディペンデントビュー・データ・ブロックの復号にベースビュー・データ・ブロックが必要である。従って、復号後のデータを出力処理まで保持するためのバッファを必要最小限の容量に維持するには、それらのデータ・ブロックをシステム・ターゲット・デコーダに同時に供給して復号させることが好ましい。一方、デプス・モードでは、復号後のベースビュー・ピクチャとデプスマップとの対から、視差画像を表すビデオ・プレーンの対を生成する処理が必要である。従って、復号後のデータをその処理まで保持するためのバッファを必要最小限の容量に維持するには、ベースビュー・データ・ブロックとデプスマップ・データ・ブロックとをシステム・ターゲット・デコーダに同時に供給して復号させることが好ましい。それ故、プリロードにより、エクステント・ブロックの先頭又は再生開始位置のデータ・ブロックの全体を予めリード・バッファに読み込んでおく。それにより、そのデータ・ブロックと後続のデータ・ブロックとをリード・バッファからシステム・ターゲット・デコーダへ同時に転送して復号させることができる。更に、以降のデータ・ブロックの対もシステム・ターゲット・デコーダに同時に復号させることができる。
プリロードでは、最初に読み出されるデータ・ブロックの全体がリード・バッファに蓄積される。従って、リード・バッファには少なくとも、そのデータ・ブロックのサイズに等しい容量が要求される。ここで、リード・バッファの容量を最小限に維持するには、プリロードの対象とされるデータ・ブロックのサイズを可能な限り縮小すべきである。一方、飛び込み再生等のランダムアクセスでは、いずれのデータ・ブロックの対も再生開始位置に選択され得る。それ故、いずれのデータ・ブロックの対でも、データ量の小さい方を先に置く。それにより、リード・バッファの容量を最小限に維持することができる。
≪データ・ブロックに対するAVストリーム・ファイルのクロスリンク≫
図13に示されているデータ・ブロック群に対して、AVストリーム・ファイルのクロスリンクは次のように実現される。第1ファイルSS(01000.ssif)244Aのファイル・エントリ1340は、各エクステント・ブロック1301−1303を一つのエクステントと見なして各サイズとその先端のLBNとを示す。従って、各エクステント・ブロック1301−1303は第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]を共有する。
≪エクステント・ブロック群に対する再生経路≫
図16は、エクステント・ブロック群1301−1303に対する2D再生モードでの再生経路1601を示す模式図である。2D再生モードの再生装置102はファイル2D241を再生する。従って、2D再生モードでの再生経路1601が示すとおり、各エクステント・ブロック1301−1303からベースビュー・データ・ブロックB[n](n=0、1、2、…)が順番に2DエクステントEXT2D[0]、EXT2D[1]、EXT2D[2]として読み出される。具体的には、まず先頭のエクステント・ブロック1301から先頭のベースビュー・データ・ブロックB[0]が読み出され、その直後のライトビュー・データ・ブロックD[0]の読み出しが最初のジャンプJ2D1によってスキップされる。次に二番目のベースビュー・データ・ブロックB[1]が読み出され、その直後のデータNAVとライトビュー・データ・ブロックD[1]との読み出しが二回目のジャンプJNAVによってスキップされる。続いて、二番目以降のエクステント・ブロック1302、1303内でも同様に、ベースビュー・データ・ブロックの読み出しとジャンプとが繰り返される。
二番目のエクステント・ブロック1302と三番目のエクステント・ブロック1303との間に生じるジャンプJLYは、層境界LBを越えるロングジャンプである。「ロングジャンプ」はジャンプの中でもシーク時間の長いものの総称であり、具体的には、ジャンプ距離が所定の閾値を超えるものをいう。「ジャンプ距離」とは、ジャンプ期間中に読み出し操作がスキップされるBD−ROMディスク101上の領域の長さをいう。ジャンプ距離は通常、その部分のセクタ数で表される。ロングジャンプの定義に利用される閾値は、BD−ROMの規格では例えば40000セクタに規定されている。しかし、その閾値は、BD−ROMディスクの種類と、BD−ROMドライブの読み出し処理に関する性能とに依存する。ロングジャンプは特にフォーカス・ジャンプとトラック・ジャンプとを含む。「フォーカス・ジャンプ」は、記録層の切り換えに伴うジャンプであり、光ピックアップの焦点距離を変化させる処理を含む。「トラック・ジャンプ」は、光ピックアップをBD−ROMディスク101の半径方向に移動させる処理を含む。
図16は、エクステント・ブロック群1301−1303に対するL/Rモードでの再生経路1602も示す。L/Rモードの再生装置102は第1ファイルSS244Aを再生する。従って、L/Rモードでの再生経路1602が示すとおり、各エクステント・ブロック1301−1303が順番にエクステントSSEXTSS[0]、EXTSS[1]、EXTSS[2]として読み出される。具体的には、まず先頭のエクステント・ブロック1301からデータ・ブロックD[0]、B[0]、D[1]、B[1]が連続して読み出され、その直後のデータNAVの読み出しが最初のジャンプJNAVによってスキップされる。次に二番目のエクステント・ブロック1302からデータ・ブロックD[2]、…、B[3]が連続して読み出される。その直後に、記録層の切り換えに伴うロングジャンプJLYが生じ、続いて、三番目のエクステント・ブロック1303からデータ・ブロックD[4]、B[4]、…が連続して読み出される。
エクステント・ブロック1301−1303を第1ファイルSS244Aのエクステントとして読み込むとき、再生装置102は第1ファイルSS244Aのファイル・エントリ1340から各エクステント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]、…を読み込んだ後、それぞれをライトビュー・データ・ブロックとベースビュー・データ・ブロックとに分離してデコーダに渡さなければならない。その分離処理にはクリップ情報ファイルが利用される。その詳細については後述する。
図13に示されているように、各エクステント・ブロック1301−1303の実際の読み出しでは、BD−ROMドライブ121は各データ・ブロックの後端から次のデータ・ブロックの先端までの間にゼロ・セクタ遷移J0を行う。「ゼロ・セクタ遷移」とは、二つの連続するデータ・ブロック間での光ピックアップの移動をいう。ゼロ・セクタ遷移が行われる期間(以下、ゼロ・セクタ遷移期間という。)では、光ピックアップは読み出し動作を一旦停止して待機する。その意味で、ゼロ・セクタ遷移は「ジャンプ距離が0セクタに等しいジャンプ」とも見なせる。ゼロ・セクタ遷移期間の長さ、すなわちゼロ・セクタ遷移時間は、BD−ROMディスク101の回転による光ピックアップの位置の移動時間の他に、誤り訂正処理に伴うオーバーヘッドを含んでもよい。「誤り訂正処理に伴うオーバーヘッド」とは、二つのデータ・ブロックの境界がECCブロックの境界と一致していないときに、そのECCブロックを用いた誤り訂正処理が二回行われることに起因する余分な時間をいう。誤り訂正処理には一つのECCブロックの全体が必要である。従って、一つのECCブロックが二つの連続するデータ・ブロックに共有されているとき、いずれのデータ・ブロックの読み出し処理でもそのECCブロックの全体が読み出されて誤り訂正処理に利用される。その結果、それらのデータ・ブロックを一つ読み出すごとに、そのデータ・ブロックの他に最大32セクタの余分なデータが読み出される。誤り訂正処理に伴うオーバーヘッドは、その余分なデータの読み出し時間の合計、すなわち32[セクタ]×2048[バイト]×8[ビット/バイト]×2[回]/読み出し速度で評価される。尚、各データ・ブロックをECCブロック単位で構成することにより、誤り訂正処理に伴うオーバーヘッドがゼロ・セクタ遷移時間から除外されてもよい。
≪データ・ブロックとエクステント・ブロックとのサイズ≫
図13に示されているように、互いに分離された複数のエクステント・ブロック1301−1303から2D映像と3D映像とのいずれをもシームレスに再生するには、各データ・ブロックと各エクステント・ブロック1301−1303とのサイズは、再生装置102の性能に基づく以下の条件を満たせばよい。
[2D再生モードの性能に基づく条件]
図17は、2D再生モードの再生装置102内の再生処理系統を示すブロック図である。図17を参照するに、その再生処理系統は、BD−ROMドライブ121、リード・バッファ1721、及びシステム・ターゲット・デコーダ1723を含む。BD−ROMドライブ121はBD−ROMディスク101から2Dエクステントを読み出し、読み出し速度RUD54でリード・バッファ1721へ転送する。リード・バッファ1721は、再生装置102に内蔵のバッファ・メモリであり、BD−ROMドライブ121から2Dエクステントを受信して蓄積する。システム・ターゲット・デコーダ1723は、リード・バッファ1721内に蓄積された各2Dエクステントからソースパケットを平均転送速度REXT2Dで読み出して、映像データVDと音声データADとに復号する。
平均転送速度REXT2Dは、システム・ターゲット・デコーダ1723が各ソースパケットからTSパケットを抽出する処理の平均速度の192/188倍に等しく、一般に2Dエクステントごとに異なる。平均転送速度REXT2Dの最大値RMAX2Dは、ファイル2Dに対するシステムレートRTSの192/188倍に等しい。ここで、「システムレート」とは、システム・ターゲット・デコーダ1723による上記の処理の最高速度を意味する。また、係数192/188はソースパケットとTSパケットとの間のバイト数の比に等しい。平均転送速度REXT2Dは通常ビット/秒で表され、具体的には、ビット単位で表された2DエクステントのサイズをエクステントATC時間で割ったときの値に等しい。「ビット単位で表されたエクステントのサイズ」は、そのエクステント内のソースパケット数とソースパケット一つ当たりのビット数(=192[バイト]×8[ビット/バイト])との積に等しい。
平均転送速度REXT2Dの評価においてエクステントATC時間が正確に計算されることを目的として、各2Dエクステントのサイズがソースパケット長のある一定の倍数に揃えられてもよい。更に、いずれかの2Dエクステントがその倍数よりも多くのソースパケットを含むとき、その2DエクステントのエクステントATC時間が次のように算定されてもよい:まず、ソースパケットの総数からその倍数を除き、その差にソースパケット一つ当たりの転送時間(=188×8/システムレート)を乗じる。次に、その積に、上記の倍数に相当するエクステントATC時間を加える。その和が上記の2DエクステントのエクステントATC時間として決定される。その他に、エクステントATC時間は次のように算定されてもよい:まず、一つの2Dエクステントについて、その先頭のソースパケットのATSから最後のソースパケットのATSまでの時間間隔を求める。次に、その時間間隔にソースパケット一つ当たりの転送時間を加える。その和がその2DエクステントのエクステントATC時間として決定される。この場合、エクステントATC時間の計算には次のエクステントの参照が不要であるので、その計算を簡単化することができる。尚、上記のエクステントATC時間の計算では、ATSにラップ・アラウンドが発生することを考慮しなければならない。
読み出し速度RUD54は通常ビット/秒で表され、平均転送速度REXT2Dの最高値RMAX2Dよりも高い値、例えば54Mbpsに設定される:RUD54>RMAX2D。それにより、BD−ROMドライブ121がBD−ROMディスク101から一つの2Dエクステントを読み出している間、システム・ターゲット・デコーダ1723の復号処理に伴うリード・バッファ1721のアンダーフローが防止される。
図18の(a)は、2D再生モードでの動作中、リード・バッファ1721に蓄積されるデータ量DAの変化を示すグラフである。図18の(b)は、再生対象のエクステント・ブロック1810と2D再生モードでの再生経路1820との間の対応関係を示す模式図である。図18の(b)を参照するに、エクステント・ブロック1810はインターリーブ配置のベースビュー・データ・ブロック群B[n]とディペンデントビュー・データ・ブロック群D[n]とを含む(n=…、0、1、2、…)。再生経路1820に従い、各ベースビュー・データ・ブロックB[n]が一つの2DエクステントEXT2D[n]としてBD−ROMディスク101からリード・バッファ1721へ読み出される。図18の(a)を参照するに、各ベースビュー・データ・ブロックB[n]、すなわち各2DエクステントEXT2D[n]の読み出し期間PR2D[n]では、蓄積データ量DAは、読み出し速度RUD54と平均転送速度REXT2D[n]との間の差RUD54−REXT2D[n]に等しい速度で増加する。
BD−ROMドライブ121による読み出し/転送動作は実際には、図18の(a)のグラフから示唆される連続的なものではなく、断続的なものである。それにより、各2Dエクステントの読み出し期間PR2D[n]に蓄積データ量DAがリード・バッファ1721の容量を超えること、すなわちリード・バッファ1721のオーバーフローが防止される。すなわち、図18の(a)のグラフは、実際には階段状である増減を直線的な増減として近似的に表したものである。
一方、二つの連続する2DエクステントEXT2D[n−1]、EXT2D[n]の間ではジャンプJ2D[n]が生じる。そのジャンプ期間PJ2D[n]では、ディペンデントビュー・データ・ブロックD[n]の読み出しがスキップされるので、BD−ROMディスク101からのデータの読み出しが停止する。従って、ジャンプ期間PJ2D[n]では蓄積データ量DAは平均転送速度REXT2D[n]で減少する。
図18の(b)に示されているエクステント・ブロック1810から2D映像をシームレスに再生するには、以下の条件[1]、[2]が満たされればよい。
[1]各ジャンプ期間PJ2D[n]ではリード・バッファ1721からシステム・ターゲット・デコーダ1723へのデータ供給を持続させて、そのデコーダ1723の連続的な出力を確保しなければならない。それには、次の条件が満たされればよい:各2DエクステントEXT2D[n]のサイズSEXT2D[n]は、その読み出し期間PR2D[n]から次のジャンプ期間PJ2D[n+1]にわたって、リード・バッファ1721からシステム・ターゲット・デコーダ1723へ転送されるデータ量に等しい。その場合、図18の(a)に示されているように、蓄積データ量DAはそのジャンプ期間PJ2D[n+1]の終了時、その読み出し期間PR2D[n]の開始時での量を下回らない。すなわち、各ジャンプ期間PJ2D[n]ではリード・バッファ1721からシステム・ターゲット・デコーダ1723へのデータ供給が持続し、特にリード・バッファ1721はアンダーフローを生じない。ここで、読み出し期間PR2D[n]の長さは2DエクステントEXT2D[n]のサイズSEXT2D[n]を読み出し速度RUD54で割った値SEXT2D[n]/RUD54に等しい。従って、各2DエクステントEXT2D[n]のサイズSEXT2D[n]は次式(1)を満たせばよい:
式(1)では、ジャンプ時間TJUMP−2D[n]はジャンプ期間PJ2D[n]の長さであり、秒単位で表される。一方、読み出し速度RUD54と平均転送速度REXT2Dとはいずれもビット/秒で表される。従って、式(1)では平均転送速度REXT2Dを数「8」で割り、2DエクステントのサイズSEXT2D[n]の単位をビットからバイトへ変換している。すなわち、2DエクステントのサイズSEXT2D[n]はバイト単位で表される。関数CEIL()は、括弧内の数値の小数点以下の端数を切り上げる操作を意味する。以下、式(1)の右辺で表されるサイズを「2Dエクステントの最小エクステント・サイズ」という。
[2]リード・バッファ1721の容量は有限であることから、ジャンプ時間TJUMP−2D[n]の最大値は制限される。すなわち、ジャンプ期間PJ2D[n]の直前に蓄積データ量DAがリード・バッファ1721の容量一杯であっても、ジャンプ時間TJUMP−2D[n]が長すぎれば、ジャンプ期間PJ2D[n]中に蓄積データ量DAが0に達し、リード・バッファ1721のアンダーフローが生じる危険性がある。以下、BD−ROMディスク101からリード・バッファ1721へのデータ供給が途絶えている状態で蓄積データ量DAがリード・バッファ1721の容量から0に到達するまでの時間、すなわち、シームレス再生を保証できるジャンプ時間TJUMP−2Dの最大値を「最大ジャンプ時間TJUMP_MAX」という。
光ディスクの規格では通常、ジャンプ距離と最大ジャンプ時間との間の関係が光ディスクドライブのアクセス・スピード等から決められている。図19は、BD−ROMディスクに関するジャンプ距離SJUMPと最大ジャンプ時間TJUMP_MAXとの間の対応表の一例である。図19を参照するに、ジャンプ距離SJUMPはセクタ単位で表され、最大ジャンプ時間TJUMP_MAXはm秒単位で表されている。1セクタは2048バイトに等しい。ジャンプ距離SJUMPが、0セクタ、1−10000セクタ、10001−20000セクタ、20001−40000セクタ、40001セクタ−1/10ストローク、及び1/10ストローク以上の各範囲に属するとき、最大ジャンプ時間TJUMP_MAXはそれぞれ、0m秒、250m秒、300m秒、350m秒、700m秒、及び1400m秒である。ジャンプ距離SJUMPが0セクタに等しいときの最大ジャンプ時間TJUMP_MAXはゼロ・セクタ遷移時間TJUMP0に等しい。但し、図19の例ではゼロ・セクタ遷移時間TJUMP0は“0”と見なされている。
以上のことから、式(1)に代入されるべきジャンプ時間TJUMP−2D[n]は、BD−ROMディスクの規格によってジャンプ距離別に規定された最大ジャンプ時間TJUMP_MAXである。具体的には、図19の表において、2DエクステントEXT2D[n−1]、EXT2D[n]間でのジャンプ距離SJUMP、すなわち、n番目の2DエクステントEXT2D[n]の後端から(n+1)番目の2DエクステントEXT2D[n+1]の先端までのセクタ数に対応する最大ジャンプ時間TJUMP_MAXが、ジャンプ時間TJUMP−2D[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エクステントのサイズが式(1)を満たすことに加えて、2Dエクステントの間隔が最大ジャンプ距離SJUMP_MAX以下であることが必要である。
異なる記録層に配置された二つのエクステント・ブロック間をシームレスに接続するとき、前のエクステント・ブロックの後端に位置するn番目の2DエクステントEXT2D[n]から、後のエクステント・ブロックの先端に位置する(n+1)番目の2DエクステントEXT2D[n+1]まで、ロングジャンプが生じる。そのロングジャンプは、フォーカス・ジャンプ等、記録層の切り換え操作を伴う。従って、そのロングジャンプに必要な時間は、図19の表に規定された最大ジャンプ時間TJUMP_MAXに加えて、記録層の切り換え操作に要する時間、すなわち「層切換時間」を更に含む。「層切換時間」は例えば350m秒である。その結果、n番目の2DエクステントEXT2D[n]のサイズが満たすべき式(1)では、ジャンプ時間TJUMP−2D[n]は二つのパラメータTJ[n]、TL[n]の和で決まる:TJUMP−2D[n]=TJ[n]+TL[n]。第1パラメータTJ[n]は、BD−ROMディスクの規格によってジャンプ距離別に規定された最大ジャンプ時間TJUMP_MAXを表す。第1パラメータTJ[n]は例えば図19の表において、n番目の2DエクステントEXT2D[n]の後端から(n+1)番目の2DエクステントEXT2D[n+1]の先端までのセクタ数、すなわちロングジャンプのジャンプ距離SJUMPに対応する最大ジャンプ時間TJUMP_MAXに等しい。第2パラメータTL[n]は層切換時間、例えば350m秒を表す。一方、二つの2DエクステントEXT2D[n]、EXT2D[n+1]の間隔、すなわち二つのエクステント・ブロックの間隔は、第1パラメータTJ[n]に対応する最大ジャンプ距離SJUMP_MAX以下に設定される。例えばジャンプ時間TJUMP−2D[n]が最大ジャンプ時間TJUMP_MAX=700m秒以下に制限されるとき、二つの2DエクステントEXT2D[n]、EXT2D[n+1]間の最大ジャンプ距離SJUMP_MAXは40000セクタ(=約78.1MB)である。
[3D再生モードの性能に基づく条件]
図20は、3D再生モードの再生装置102内の再生処理系統を示すブロック図である。図20を参照するに、その再生処理系統は、BD−ROMドライブ121、スイッチ2020、一対のリード・バッファ2021、2022、及びシステム・ターゲット・デコーダ2023を含む。BD−ROMドライブ121はBD−ROMディスク101からエクステントSSを読み出し、読み出し速度RUD72でスイッチ2020へ転送する。スイッチ2020は各エクステントSSをベースビュー・データ・ブロックとディペンデントビュー・データ・ブロックとに分離する。その分離処理の詳細については後述する。ベースビュー・データ・ブロックは第1リード・バッファ2021へ格納され、ディペンデントビュー・データ・ブロックは第2リード・バッファ2022へ格納される。各リード・バッファ2021、2022は再生装置102に内蔵のバッファ・メモリであり、BD−ROMドライブ121からデータ・ブロックを受信して蓄積する。第2リード・バッファ2022内の蓄積データは、L/Rモードではライトビュー・データ・ブロックであり、デプス・モードではデプスマップ・データ・ブロックである。システム・ターゲット・デコーダ2023は、第1リード・バッファ2021内に蓄積された各ベースビュー・データ・ブロックからソースパケットを第1平均転送速度REXT1で読み出す。L/Rモードのシステム・ターゲット・デコーダ2023は、第2リード・バッファ2022内に蓄積された各ライトビュー・データ・ブロックからソースパケットを第2平均転送速度REXT2で読み出す。デプス・モードのシステム・ターゲット・デコーダ2023は、第2リード・バッファ2022内に蓄積された各デプスマップ・データ・ブロックからソースパケットを第3平均転送速度REXT3で読み出す。システム・ターゲット・デコーダ2023は更に、読み出されたベースビュー・データ・ブロックとディペンデントビュー・データ・ブロックとの対を映像データVDと音声データADとに復号する。
第1平均転送速度REXT1を「ベースビュー転送速度」という。ベースビュー転送速度REXT1は、システム・ターゲット・デコーダ2023が、ベースビュー・データ・ブロック内の各ソースパケットからTSパケットを抽出する処理の平均速度の192/188倍に等しい。ベースビュー転送速度REXT1は一般にベースビュー・データ・ブロックごとに異なる。ベースビュー転送速度REXT1の最高値RMAX1はファイル2Dに対するシステムレートRTS1の192/188倍に等しい。ベースビュー転送速度REXT1は通常ビット/秒で表され、具体的には、ビット単位で表されたベースビュー・データ・ブロックのサイズをエクステントATC時間で割ったときの値に等しい。エクステントATC時間は、そのベースビュー・データ・ブロック内のソースパケットを全て、第1リード・バッファ2021からシステム・ターゲット・デコーダ2023へ転送するのに要する時間に等しい。
第2平均転送速度REXT2を「ライトビュー転送速度」といい、第3平均転送速度REXT3を「デプスマップ転送速度」という。更に、それらの転送速度REXT2、REXT3を「ディペンデントビュー転送速度」と総称する。いずれのディペンデントビュー転送速度REXT2、REXT3も、システム・ターゲット・デコーダ2023が、ディペンデントビュー・データ・ブロック内の各ソースパケットからTSパケットを抽出する処理の平均速度の192/188倍に等しい。いずれのディペンデントビュー転送速度REXT2、REXT3も一般にディペンデントビュー・データ・ブロックごとに異なる。ライトビュー転送速度REXT2の最高値RMAX2は第1ファイルDEPに対するシステムレートRTS2の192/188倍と等しく、デプスマップ転送速度REXT3の最高値RMAX3は第2ファイルDEPに対するシステムレートRTS3の192/188倍に等しい。各ディペンデントビュー転送速度REXT2、REXT3は通常ビット/秒で表され、具体的には、ビット単位で表されたディペンデントビュー・データ・ブロックのサイズをエクステントATC時間で割ったときの値に等しい。エクステントATC時間は、各ディペンデントビュー・データ・ブロック内のソースパケットを全て、第2リード・バッファ2022からシステム・ターゲット・デコーダ2023へ転送するのに要する時間に等しい。
読み出し速度RUD72は通常ビット/秒で表され、第1、2、3平均転送速度REXT1、REXT2、REXT3のいずれの最高値RMAX1、RMAX2、RMAX3よりも高い値、例えば72Mbpsに設定される:RUD72>RMAX1、RUD72>RMAX2、RUD72>RMAX3。それにより、BD−ROMドライブ121によってBD−ROMディスク101から一つのエクステントSSを読み出している間、システム・ターゲット・デコーダ2023の復号処理に伴う各リード・バッファ2021、2022のアンダーフローが防止される。
図21の(a)、(b)は、一つのエクステント・ブロック2110から3D映像がシームレスに再生されるとき、各リード・バッファ2021、2022に蓄積されるデータ量DA1、DA2の変化を示すグラフである。図21の(c)は、そのエクステント・ブロック2110と3D再生モードでの再生経路2120との間の対応関係を示す模式図である。図21の(c)を参照するに、そのエクステント・ブロック2110は、図18の(b)に示されているもの1810と同様なインターリーブ配置のデータ・ブロック群D[k]、B[k](k=…、n−1、n、n+1、n+2、…)である。再生経路2120に従い、エクステント・ブロック2110の全体が一つのエクステントSSとして一括して読み出される。その後、スイッチ2020によってそのエクステントSSからディペンデントビュー・データ・ブロックとベースビュー・データ・ブロックとが分離される。
BD−ROMドライブ121による読み出し/転送動作は実際には、図21の(a)、(b)の各グラフから示唆される連続的なものではなく、断続的なものである。それにより、各データ・ブロックD[n]、B[n]の読み出し期間PRD[n]、PRB[n]では、各リード・バッファ2021、2022のオーバーフローが防止される。すなわち、図21の(a)、(b)の各グラフは、実際には階段状である増減を直線的な増減として近似的に表したものである。
図21の(a)、(b)を参照するに、n番目のディペンデントビュー・データ・ブロックD[n]の読み出し期間PRD[n]では、第2リード・バッファ2022の蓄積データ量DA2は、読み出し速度RUD72とディペンデントビュー転送速度REXTm[n](m=2、又は3)との間の差RUD72−REXTm[n]に等しい速度で増加し、第1リード・バッファ2021の蓄積データ量DA1はベースビュー転送速度REXT1[n−1]で減少する。図21の(c)を参照するに、n番目のディペンデントビュー・データ・ブロックD[n]からn番目のベースビュー・データ・ブロックB[n]まではゼロ・セクタ遷移J0[2n]が生じる。図21の(a)、(b)に示されているように、ゼロ・セクタ遷移期間PJ0[n]では、第1リード・バッファ2021の蓄積データ量DA1はベースビュー転送速度REXT1[n−1]で減少し続け、第2リード・バッファ2022の蓄積データ量DA2はディペンデントビュー転送速度REXTm[n]で減少する。
図21の(a)、(b)を更に参照するに、n番目のベースビュー・データ・ブロックB[n]の読み出し期間PRB[n]では、第1リード・バッファ2021の蓄積データ量DA1は、読み出し速度RUD72とベースビュー転送速度REXT1[n]との間の差RUD72−REXT1[n]に等しい速度で増加する。一方、第2リード・バッファ2022の蓄積データ量DA2はディペンデントビュー転送速度REXTm[n]で減少し続ける。図21の(c)を更に参照するに、そのベースビュー・データ・ブロックB[n]から次のディペンデントビュー・データ・ブロックD[n+1]まではゼロ・セクタ遷移J0[2n+1]が生じる。図21の(a)、(b)に示されているように、ゼロ・セクタ遷移期間PJ0[2n+1]では、第1リード・バッファ4021の蓄積データ量DA1はベースビュー転送速度REXT1[n]で減少し、第2リード・バッファ4022の蓄積データ量DA2はディペンデントビュー転送速度REXTm[n]で減少し続ける。
一つのエクステント・ブロック2110から3D映像をシームレスに再生するには、以下の条件[3]、[4]、[5]、[6]が満たされればよい。尚、以下の説明では便宜上、L/Rモードを想定する。従って、ディペンデントビュー・データ・ブロックD[n]はライトビュー・データ・ブロックである。但し、以下の説明はデプス・モードについても同様に成立する。例えば、ライトビュー・データ・ブロックのサイズをデプスマップ・データ・ブロックのサイズに読み換え、ライトビュー転送速度をデプスマップ転送速度に読み換えればよい。
[3]n番目のベースビュー・データ・ブロックB[n]のサイズSEXT1[n]は少なくとも、その読み出し期間PRB[n]から次のベースビュー・データ・ブロックB[n+1]の読み出し期間PRB[n+1]の直前までに、第1リード・バッファ2021からシステム・ターゲット・デコーダ2023へ転送されるデータ量に等しい。その場合、図21の(a)に示されているように、次のベースビュー・データ・ブロックB[n+1]の読み出し期間PRB[n+1]の直前では、第1リード・バッファ2021の蓄積データ量DA1が、n番目のベースビュー・データ・ブロックB[n]の読み出し期間PRB[n]の直前での量を下回らない。ここで、n番目のベースビュー・データ・ブロックB[n]の読み出し期間PRB[n]の長さは、そのベースビュー・データ・ブロックB[n]のサイズSEXT1[n]を読み出し速度RUD72で割った値SEXT1[n]/RUD72に等しい。一方、(n+1)番目のディペンデントビュー・データ・ブロックD[n+1]の読み出し期間PRD[n+1]の長さは、そのディペンデントビュー・データ・ブロックD[n+1]のサイズSEXT2[n+1]を読み出し速度RUD72で割った値SEXT2[n+1]/RUD72に等しい。従って、そのベースビュー・データ・ブロックB[n]のサイズSEXT1[n]は次式(2)を満たせばよい:
以下、式(2)の右辺で表されるサイズを「ベースビュー・データ・ブロックの最小エクステント・サイズ」という。尚、ベースビュー・データ・ブロックがエクステント・ブロック2110の後端に位置するとき、そのデータ・ブロックのサイズは式(2)を満たさなくてもよい。
[4]n番目のディペンデントビュー・データ・ブロックD[n]のサイズSEXT2[n]は少なくとも、その読み出し期間PRD[n]から次のディペンデントビュー・データ・ブロックD[n+1]の読み出し期間PRD[n+1]の直前までに、第2リード・バッファ2022からシステム・ターゲット・デコーダ2023へ転送されるデータ量に等しい。その場合、図21の(b)に示されているように、次のディペンデントビュー・データ・ブロックD[n+1]の読み出し期間PRD[n+1]の直前では、第2リード・バッファ2022の蓄積データ量DA2が、n番目のディペンデントビュー・データ・ブロックD[n]の読み出し期間PRD[n]の直前での量を下回らない。ここで、n番目のディペンデントビュー・データ・ブロックD[n]の読み出し期間PRD[n]の長さは、そのディペンデントビュー・データ・ブロックD[n]のサイズSEXT2[n]を読み出し速度RUD72で割った値SEXT2[n]/RUD72に等しい。従って、そのディペンデントビュー・データ・ブロックD[n]のサイズSEXT2[n]は次式(3)を満たせばよい:
以下、式(3)の右辺で表されるサイズを「ディペンデントビュー・データ・ブロックの最小エクステント・サイズ」という。
[5]図13に示されているように、エクステント・ブロック2101内のベースビュー・データ・ブロックB[n]はファイル2DとファイルSSとに共有されている。従って、ベースビュー・データ・ブロックB[n]のサイズSEXT1[n]は式(1)を満たすべきである。ここで、第1リード・バッファ2021の容量を可能な限り縮小するには、ベースビュー・データ・ブロックB[n]のサイズSEXT1[n]は2Dエクステントの最小エクステント・サイズの下限値以下であればよい。すなわち、そのサイズSEXT1[n]は次式(4)を満たす:
ここで、ジャンプ時間TJUMP−2D_MINは、エクステント・ブロック2101から2D映像が再生されるときに必要なジャンプ時間の最小値であり、例えば199m秒である。
[6]n番目のデータ・ブロックの対D[n]、B[n]ではエクステントATC時間TEXT[n]が等しい。一方、エクステントATC時間TEXT[n]は、データ・ブロックD[n]、B[n]のサイズSEXTm[n](m=1、2、3)を平均転送速度REXTm[n]で割った値に等しい:TEXT[n]=SEXTm[n]/REXTm[n]。従って、データ・ブロックD[n]、B[n]のサイズSEXTm[n]は次式(5)を満たす:
図22の(a)は、複数のエクステント・ブロックから連続して3D映像がシームレスに再生されるとき、各リード・バッファ2021、2022に蓄積されるデータ量DA1、DA2の変化、及びそれらの和DA1+DA2の変化を示すグラフ群である。図22の(b)は、M番目(整数Mは2以上である。)のエクステント・ブロック2201と(M+1)番目のエクステント・ブロック2202、及び、それらのエクステント・ブロック2201、2202と3D再生モードでの再生経路2220との間の対応関係を示す模式図である。図22の(b)を参照するに、各エクステント・ブロック2201、2202は、図18の(b)に示されているもの1810と同様なインターリーブ配置のディペンデントビュー・データ・ブロック群Dとベースビュー・データ・ブロック群Bとから構成されている。二つの隣接するエクステント・ブロック2201、2202の間は層境界LB又は他のデータの記録領域によって分離されている。再生経路2220に従って、先にM番目のエクステント・ブロック2201の全体がM番目のエクステントSSEXTSS[M]として一括して読み出される。その直後にジャンプJ[M]が生じる。続いて、第2のエクステント・ブロック2202が(M+1)番目のエクステントSSEXTSS[M+1]として一括して読み出される。
図22の(a)では、一点鎖線のグラフは、第1リード・バッファ2021に蓄積されるデータ量DA1の変化を示し、破線のグラフは、第2リード・バッファ2022に蓄積されるデータ量DA2の変化を示し、実線のグラフは、両データ量の和DA1+DA2の変化を示す。ここで、その和DA1+DA2は実際には、データ・ブロックが一つ読み出されるごとに細かく変化する。しかし、実線のグラフは、その細かい変化を均して直線的に近似したものである。更に、ゼロ・セクタ遷移時間TJUMP0は一つのエクステント・ブロック全体の読み出し期間PRBLK[M]の長さに比べれば十分に無視できるので、図22の(a)ではゼロ・セクタ遷移時間TJUMP0は“0”とみなされている。
図22の(a)を参照するに、M番目のエクステント・ブロック2201の全体がBD−ROMディスク101から各リード・バッファ2021、2022へ読み出される期間PRBLK[M]では、いずれのリード・バッファ2021、2022に蓄積されるデータ量DA1、DA2も増大する。具体的には、M番目のエクステント・ブロック2201全体の読み出し期間PRBLK[M]中、蓄積データ量の和DA1+DA2は、読み出し速度RUD72と平均転送速度REXTSS[M]との間の差RUD72−REXTSS[M]に等しい速度で増加する。その平均転送速度REXTSS[M]は、M番目のエクステント・ブロック2201全体のサイズ、すなわちM番目のエクステントSSEXTSS[M]のサイズSEXTSS[M]をそのエクステントATC時間TEXTSSで割った値として評価される。そのような蓄積データ量DA1、DA2の増大は、各データ・ブロックD、Bのサイズを最小エクステント・サイズ以上に設計することによって実現可能である。
M番目のエクステント・ブロック2201の後端のベースビュー・データ・ブロックが第1リード・バッファ2021に読み込まれた時点で、蓄積データ量の和DA1+DA2は最大値に達する。その直後のジャンプJ[M]の期間PJ[M]では、蓄積データ量の和DA1+DA2は平均転送速度REXTSS[M]で減少する。従って、蓄積データ量の和DA1+DA2の最大値を十分に大きく調節することにより、ジャンプJ[M]中での両リード・バッファ2021、2022のアンダーフローを防止することができる。その結果、二つのエクステント・ブロック2201、2202をシームレスに接続することができる。
蓄積データ量の和DA1+DA2の最大値はM番目のエクステント・ブロック2201のサイズで決まる。従って、M番目のエクステント・ブロック2201を(M+1)番目のエクステント・ブロック2202にシームレスに接続するには、M番目のエクステント・ブロック2201のサイズ、すなわちM番目のエクステントSSEXTSS[M]のサイズSEXTSS[M]が次の条件[7]を満たせばよい。
[7]M番目のエクステント・ブロック2201の先端に位置するディペンデントビュー・データ・ブロックDの読み出し期間PRD[m]ではプリロードが行われる(整数mは1以上である)。そのプリロード期間PRD[m]ではまだ、そのディペンデントビュー・データ・ブロックDに対応するベースビュー・データ・ブロックBが第1リード・バッファ2021には格納されていないので、ディペンデントビュー・データ・ブロックDを第2リード・バッファ2022からシステム・ターゲット・デコーダ2023へ転送することができない。従って、そのプリロード期間PRD[m]では、その直前のジャンプJ[M−1]の期間に引き続き、(M−1)番目のエクステント・ブロックのデータが第2リード・バッファ2022からシステム・ターゲット・デコーダ2023へ転送されるようにしなければならない。それにより、システム・ターゲット・デコーダ2023へのデータの供給を維持することができる。同様に、(M+1)番目のエクステント・ブロック2202の先端に位置するディペンデントビュー・データ・ブロックDの読み出し期間PRD[n]でもプリロードが行われる(整数nはm+1以上である)。従って、そのプリロード期間PRD[n]では、その直前のジャンプJ[M]の期間に引き続き、M番目のエクステント・ブロック2201のデータが第2リード・バッファ2022からシステム・ターゲット・デコーダ2023へ転送されるようにしなければならない。それにより、システム・ターゲット・デコーダ2023へのデータの供給を維持することができる。
上記のとおり、M番目のエクステント・ブロック2201のプリロード期間PRD[m]では(M−1)番目のエクステント・ブロックのデータが第2リード・バッファ2022からシステム・ターゲット・デコーダ2023へ転送されるようにし、(M+1)番目のエクステント・ブロック2202のプリロード期間PRD[n]ではM番目のエクステント・ブロックのデータが第2リード・バッファ2022からシステム・ターゲット・デコーダ2023へ転送されるようにしなければならない。従って、ジャンプJ[M]中での両リード・バッファ2021、2022のアンダーフローを防止するには、M番目のエクステントSSEXTSS[M]のエクステントATC時間TEXTSSが少なくとも、M番目のエクステント・ブロック2201でのプリロード期間PRD[m]の終了時点T0から(M+1)番目のエクステント・ブロック2202でのプリロード期間PRD[n]の終了時点T1までの期間の長さに等しければよい。すなわち、M番目のエクステントSSEXTSS[M]のサイズSEXTSS[M]は少なくとも、その期間T0−T1に各リード・バッファ2021、2022からシステム・ターゲット・デコーダ2023へ転送されるデータ量の和に等しければよい。
図22の(a)から明らかなとおり、期間T0−T1の長さは、M番目のエクステント・ブロック2201の読み出し期間PRBLK[M]から先頭のディペンデントビュー・データ・ブロックDの読み出し期間PRD[m]を除いた長さt1、ジャンプJ[M]のジャンプ時間TJUMP[M]=t2、及び(M+1)番目のエクステント・ブロック2201の先頭のディペンデントビュー・データ・ブロックDの読み出し期間PRD[n]の長さt3の合計t1+t2+t3に等しい。すなわち、期間T0−T1の長さは、M番目のエクステント・ブロック2201の読み出し期間PRBLK[M]の長さ、ジャンプJ[M]のジャンプ時間TJUMP[M]、及びエクステント・ブロック2201、2202間でのプリロード期間PRD[n]、PRD[m]の長さの差TDIFF[M]を足し合わせた値に等しい。更に、M番目のエクステント・ブロック2201の読み出し期間PRBLK[M]の長さは、M番目のエクステントSSEXTSS[M]のサイズSEXTSS[M]を読み出し速度RUD72で割った値SEXTSS[M]/RUD72に等しい。従って、M番目のエクステントSSEXTSS[M]のサイズSEXTSS[M]は次式(6)を満たせばよい:
ここで、各プリロード期間PRD[m]、PRD[n]の長さは、各エクステント・ブロック2201、2202の先端に位置するディペンデントビュー・データ・ブロックDのサイズSEXT2[m]、SEXT2[n]を読み出し速度RUD72で割った値SEXT2[m]/RUD72、SEXT2[n]/RUD72に等しい。従って、プリロード期間PRD[m]、PRD[n]の長さの差TDIFFはそれらの値の差に等しい:TDIFF=SEXT2[n]/RUD72−SEXT2[m]/RUD72。以下、式(6)の右辺で表されるサイズを「エクステントSSの最小エクステント・サイズ」という。尚、式(6)の右辺は、式(1)−(4)の右辺と同様に、バイト単位の整数値で表されてもよい。
[まとめ]
複数のエクステント・ブロックから2D映像と3D映像とのいずれをもシームレスに再生するには、上記の条件[1]−[7]が全て満たされればよい。特に、各データ・ブロックと各エクステント・ブロックとのサイズは次の条件1−4を満たせばよい。
条件1:2DエクステントのサイズSEXT2Dは式(1)を満たす。
条件2:ベースビュー・データ・ブロックのサイズSEXT1は式(2)を満たす。
条件3:ディペンデントビュー・データ・ブロックのサイズSEXT2は式(3)を満たす。
条件4:エクステント・ブロックのサイズSEXTSSは式(6)を満たす。
このように、本発明の実施形態1によるBD−ROMディスク101では、各データ・ブロックのサイズの下限値に加え、各エクステント・ブロックのサイズの下限値が明確であるので、そのサイズを適切に設計することが容易である。それにより、そのBD−ROMディスク101から3D映像が再生される際に、再生装置102内のリード・バッファ2021、2022にアンダーフローを生じさせないようにすることが容易である。特に条件4には、シームレスに接続されるべきエクステント・ブロック間でのプリロード期間の長さの差が反映されている。それにより、それらのエクステント・ブロック間のシームレス接続を確実に実現することが容易である。
≪AVストリーム・ファイルに含まれるその他のTSパケット≫
AVストリーム・ファイルに含まれるTSパケットの種類には、図3に示されているエレメンタリ・ストリームから変換されたもの以外にも、PAT(Program Association Table)、PMT(Program Map Table)、及びPCR(Program Clock Reference)がある。PCR、PMT、及びPATは欧州デジタル放送規格で定められたものであり、本来は、一つの番組を構成するパーシャル・トランスポート・ストリームを規定する役割を持つ。PCR、PMT、及びPATを利用することで、AVストリーム・ファイルもそのパーシャル・トランスポート・ストリームと同様に規定される。具体的には、PATは、同じAVストリーム・ファイルに含まれるPMTのPIDを示す。PAT自身のPIDは0である。PMTは、同じAVストリーム・ファイルに含まれる、映像・音声・字幕等を表す各エレメンタリ・ストリームのPIDとその属性情報とを含む。PMTは更に、そのAVストリーム・ファイルに関する各種のディスクリプタ(記述子ともいう。)を含む。ディスクリプタには特に、そのAVストリーム・ファイルのコピーの許可/禁止を示すコピー・コントロール情報が含まれる。PCRは、自身に割り当てられたATSに対応させるべきSTC(System Time Clock)の値を示す情報を含む。ここで、「STC」は、再生装置102内のデコーダによって、PTS及びDTSの基準として利用されるクロックである。そのデコーダはPCRを利用して、ATCにSTCを同期させる。
図23は、PMT2310のデータ構造を示す模式図である。PMT2310は、PMTヘッダ2301、ディスクリプタ2302、及びストリーム情報2303を含む。PMTヘッダ2301は、PMT2310に含まれるデータの長さ等を示す。各ディスクリプタ2302は、PMT2310を含むAVストリーム・ファイルの全体に関するディスクリプタである。前述のコピー・コントロール情報はディスクリプタ2302の一つに含まれる。ストリーム情報2303は、AVストリーム・ファイルに含まれる各エレメンタリ・ストリームに関する情報であり、一つずつ異なるエレメンタリ・ストリームに割り当てられている。各ストリーム情報2303は、ストリーム・タイプ2331、PID2332、及びストリーム・ディスクリプタ2333を含む。ストリーム・タイプ2331は、そのエレメンタリ・ストリームの圧縮に利用されたコーデックの識別情報等を含む。PID2332は、そのエレメンタリ・ストリームのPIDを示す。ストリーム・ディスクリプタ2333は、そのエレメンタリ・ストリームの属性情報、例えばフレームレート及びアスペクト比を含む。
PCR、PMT、及びPATを利用することで、再生装置102内のデコーダにAVストリーム・ファイルを、欧州デジタル放送規格に準拠のパーシャル・トランスポート・ストリームと同様に処理させることができる。それにより、BD−ROMディスク101用の再生装置と欧州デジタル放送規格に準拠の端末装置との間の互換性を確保することができる。
≪クリップ情報ファイル≫
図24は、第1クリップ情報ファイル(01000.clpi)、すなわち2Dクリップ情報ファイル231のデータ構造を示す模式図である。ディペンデントビュー・クリップ情報ファイル(02000.clpi、03000.clpi)232、233も同様なデータ構造を持つ。以下では、まず、クリップ情報ファイル全般に共通するデータ構造を2Dクリップ情報ファイル231のデータ構造を例に説明する。その後、2Dクリップ情報ファイルとディペンデントビュー・クリップ情報ファイルとのデータ構造上の相違点について説明する。
図24を参照するに、2Dクリップ情報ファイル231は、クリップ情報2410、ストリーム属性情報2420、エントリ・マップ2430、及び3Dメタデータ2440を含む。3Dメタデータ2440はオフセット・テーブル2441とエクステント起点2442とを含む。
クリップ情報2410は、図24に示されているように、システムレート2411、再生開始時刻2412、及び再生終了時刻2413を含む。システムレート2411は、ファイル2D(01000.m2ts)241に対するシステムレートRTSを規定する。図17に示されているように、2D再生モードの再生装置102は、ファイル2D241に属する“TSパケット”をリード・バッファ1721からシステム・ターゲット・デコーダ1723へ転送する。ファイル2D241では、TSパケットの転送速度がシステムレートRTS以下に抑えられるように、ソースパケットのATSの間隔が設定されている。再生開始時刻2412は、ファイル2D241の先頭のVAUのPTS、例えば先頭の映像フレームのPTSを示す。再生終了時刻2412は、ファイル2D241の後端のVAUのPTSから所定量遅れたSTCの値、例えば最後の映像フレームのPTSに1フレーム当たりの再生時間を加えた値を示す。
ストリーム属性情報2420は、図24に示されているように、ファイル2D241に含まれる各エレメンタリ・ストリームのPID2421とその属性情報2422との間の対応表である。属性情報2422は、ビデオ・ストリーム、オーディオ・ストリーム、PGストリーム、及びIGストリームのそれぞれで異なる。例えばプライマリ・ビデオ・ストリームのPID0x1011に対応付けられた属性情報は、そのビデオ・ストリームの圧縮に利用されたコーデックの種類、そのビデオ・ストリームを構成する各ピクチャの解像度、アスペクト比、及びフレームレートを含む。一方、プライマリ・オーディオ・ストリームのPID0x1100に対応付けられた属性情報は、そのオーディオ・ストリームの圧縮に利用されたコーデックの種類、そのオーディオ・ストリームに含まれるチャンネル数、言語、及びサンプリング周波数を含む。属性情報2422は再生装置102により、デコーダの初期化に利用される。
[エントリ・マップ]
図25の(a)は、エントリ・マップ2430のデータ構造を示す模式図である。図25の(a)を参照するに、エントリ・マップ2430はテーブル2500を含む。テーブル2500は、メインTSに多重化されたビデオ・ストリームと同数であり、各ビデオ・ストリームに一つずつ割り当てられている。図25の(a)では各テーブル2500が割り当て先のビデオ・ストリームのPIDで区別されている。各テーブル2500はエントリ・マップ・ヘッダ2501とエントリ・ポイント2502とを含む。エントリ・マップ・ヘッダ2501は、そのテーブル2500に対応付けられたPIDと、そのテーブル2500に含まれるエントリ・ポイント2502の総数とを含む。エントリ・ポイント2502は、PTS2503とソースパケット番号(SPN)2504との対を一つずつ、異なるエントリ・ポイントID(EP_ID)2505に対応付ける。PTS2503は、エントリ・マップ・ヘッダ2501の示すPIDのビデオ・ストリームに含まれるいずれかのIピクチャのPTSに等しい。SPN2504は、そのIピクチャが格納されたソースパケット群の先頭のSPNに等しい。「SPN」とは、一つのAVストリーム・ファイルに属するソースパケット群に、先頭から順に割り当てられた通し番号をいう。SPNは、そのAVストリーム・ファイル内での各ソースパケットのアドレスとして利用される。2Dクリップ情報ファイル231内のエントリ・マップ2430では、SPNは、ファイル2D241に属するソースパケット群、すなわちメインTSを構成するソースパケット群に割り当てられた番号を意味する。従って、エントリ・ポイント2502は、ファイル2D241に含まれる各IピクチャのPTSとアドレス、すなわちSPNとの間の対応関係を表す。
エントリ・ポイント2502は、ファイル2D241内の全てのIピクチャに対して設定されていなくてもよい。但し、IピクチャがGOPの先頭に位置し、かつ、そのIピクチャの先頭を含むTSパケットが2Dエクステントの先頭に位置するときは、そのIピクチャにはエントリ・ポイント2502を設定しなければならない。
図25の(b)は、ファイル2D241に属するソースパケット群2510のうち、エントリ・マップ2430によって各EP_ID2505に対応付けられているものを示す模式図である。図25の(c)は、そのソースパケット群2510に対応するBD−ROMディスク101上のデータ・ブロック群D[n]、B[n](n=0、1、2、3、…)を示す模式図である。再生装置102はファイル2D241から2D映像を再生するとき、エントリ・マップ2430を利用して、任意のシーンを表すフレームのPTSから、そのフレームを含むソースパケットのSPNを特定する。具体的には、再生開始位置として特定のエントリ・ポイントのPTS、例えばPTS=360000が指定されたとき、再生装置102はまず、エントリ・マップ2430から、そのPTSに対応付けられたSPN=3200を検索する。再生装置102は次に、そのSPNとソースパケット一つ当たりのデータ量192バイトとの積を求め、更に、その積をセクタ一つ当たりのデータ量2048バイトで割ったときの商、SPN×192/2048を求める。図5の(b)、(c)から理解されるとおり、その値は、メインTSのうち、そのSPNが割り当てられたソースパケットよりも前の部分が記録されたセクタの総数に等しい。図25の(b)に示されている例では、その値3200×192/2048=300は、SPNが0から3199までのソースパケット群2511が記録されたセクタの総数に等しい。再生装置102は続いて、ファイル2D241のファイル・エントリを参照し、2Dエクステント群が記録されたセクタ群の先頭から数えて(上記の総数+1)番目のセクタのLBNを特定する。図25の(c)に示されている例では、2DエクステントEXT2D[0]、EXT2D[1]、EXT2D[2]、…としてアクセス可能なベースビュー・データ・ブロックB[0]、B[1]、B[2]、…が記録されたセクタ群のうち、先頭から数えて301番目のセクタのLBNが特定される。再生装置102はそのLBNをBD−ROMドライブ121に指定する。それにより、そのLBNのセクタから順にベースビュー・データ・ブロック群がアラインド・ユニット単位で読み出される。再生装置102は更に、最初に読み出されたアラインド・ユニットから、再生開始位置のエントリ・ポイントの示すソースパケットを選択し、それらからIピクチャを抽出して復号する。それ以降、後続のピクチャは、先に復号されたピクチャを利用して順次復号される。こうして、再生装置102はファイル2D241から特定のPTS以降の2D映像を再生できる。
エントリ・マップ2430は更に、早送り再生及び巻戻し再生等の特殊再生の効率的な処理に有利である。例えば2D再生モードの再生装置102は、まずエントリ・マップ2430を参照して、再生開始位置、例えばPTS=360000以降のPTSを含むエントリ・ポイント、EP_ID=2、3、…からSPN=3200、4800、…を順番に読み出す。再生装置102は次にファイル2D241のファイル・エントリを利用して、各SPNに対応するセクタのLBNを特定する。再生装置102は続いて、各LBNをBD−ROMドライブ121に指定する。それにより、各LBNのセクタからアラインド・ユニットが読み出される。再生装置102は更に各アラインド・ユニットから、各エントリ・ポイントの示すソースパケットを選択し、それらからIピクチャを抽出して復号する。こうして、再生装置102は2Dエクステント群EXT2D[n]自体を解析することなく、ファイル2D241からIピクチャを選択的に再生できる。
[オフセット・テーブル]
図26の(a)は、オフセット・テーブル2441のデータ構造を示す模式図である。オフセット・テーブル2441は、3D再生モードの再生装置102によるクロッピング処理に利用される情報である。「クロッピング処理」とは、2D映像を表すデータから、レフトビューとライトビューとを表すプレーン・データの対を生成する処理をいう。「プレーン・データ」とは画素データの二次元配列を意味し、その配列のサイズは映像フレームの解像度に等しい。一組の画素データは色座標値とα値との組み合わせから成る。色座標値はRGB値又はYCrCb値で表される。クロッピング処理の対象には、メインTS内のPGストリーム、IGストリーム、及びセカンダリ・ビデオ・ストリームのそれぞれから生成されるプレーン・データ、並びに、BD−Jオブジェクトに従って生成されるイメージ・プレーン・データが含まれる。クロッピング処理はプレーン・データ内での各画素データの位置を水平方向に変化させる。従って、クロッピング処理によって得られるプレーン・データの対ではレフトビューとライトビューとの各表示位置が元の2D映像の表示位置から左右にずれている。それらの変位が視聴者に両眼視差として知覚されることにより、レフトビューとライトビューとの対がその視聴者には一つの3D映像として見える。
図26の(a)を参照するに、オフセット・テーブル2441は、PGストリーム、IGストリーム、及びセカンダリ・ビデオ・ストリームのPID別にテーブル2610を含む。各テーブル2610は、PTS2601とオフセット値2602との対応表である。PTS2601は、PGストリーム、IGストリーム、及びセカンダリ・ビデオ・ストリームから生成される各プレーン・データの表示時刻を表す。オフセット値2602は、クロッピング処理による各画素データの水平方向の変位量を符号付きの画素数で表したものである。例えば、プラス符号は右向きの変位を表し、マイナス符号はその逆である。オフセット値2602の符号は、3D映像の奥行きが画面よりも手前か奥かに依って決められている。以下、PTS2601とオフセット値2602との対2603を「オフセット・エントリ」という。
図26の(b)は、オフセット・エントリの有効区間を表す模式図である。各オフセット・エントリの有効区間は、STCで計られる時間において、そのオフセット・エントリのPTSの示す時刻から、次のオフセット・エントリのPTSの示す時刻までの期間である。プレーン・データのPTSがあるオフセット・エントリの有効区間に属するとき、クロッピング処理では、そのプレーン・データ内の画素データの表示位置が、そのオフセット・エントリのオフセット値だけ変化する。図26の(a)に示されている例では、オフセット・エントリ#1のPTSが180000であり、オフセット・エントリ#2のPTSが270000であり、オフセット・エントリ#3のPTSが360000である。その場合、図26の(b)に示されているように、オフセット・エントリ#1のオフセット値“+5”は、180000から270000までのSTCの範囲2604で有効であり、オフセット・エントリ#2のオフセット値“+3”は、270000から360000までのSTCの範囲2605で有効である。
[エクステント起点]
図27の(a)は、エクステント起点2442のデータ構造を示す模式図である。図27の(a)を参照するに、「エクステント起点(Extent_Start_Point)」2442はベースビュー・エクステントID(EXT1_ID)2711とSPN2712とを含む。EXT1_ID2711は、第1ファイルSS(01000.ssif)244Aに属する各ベースビュー・データ・ブロックに、先頭から順に割り当てられた通し番号である。SPN2712は各EXT1_ID2711に一つずつ割り当てられ、そのEXT1_ID2711で識別されるベースビュー・データ・ブロックの先端に位置するソースパケットのSPNに等しい。ここで、そのSPNは、第1ファイルSS244Aに属するベースビュー・データ・ブロック群に含まれる各ソースパケットに、先頭から順に割り当てられた通し番号である。
図13に示されているエクステント・ブロック1301−1303では、各ベースビュー・データ・ブロックB[0]、B[1]、B[2]、…はファイル2D241と第1ファイルSS244Aとに共有される。しかし、記録層間の境界等、ロングジャンプの必要な箇所に配置されたデータ・ブロック群は一般に、ファイル2D241又は第1ファイルSS244Aのいずれかにのみ属するベースビュー・データ・ブロックを含む(詳細は変形例[E]参照)。従って、エクステント起点2442の示すSPN2712は、ファイル2D241に属する2Dエクステントの先端に位置するソースパケットのSPNとは一般に異なる。
図27の(b)は、第2クリップ情報ファイル(02000.clpi)、すなわちライトビュー・クリップ情報ファイル232に含まれるエクステント起点2720のデータ構造を示す模式図である。図27の(b)を参照するに、エクステント起点2720は、ライトビュー・エクステントID(EXT2_ID)2721とSPN2722とを含む。EXT2_ID2721は、第1ファイルSS244Aに属する各ライトビュー・データ・ブロックに、先頭から順に割り当てられた通し番号である。SPN2722は各EXT2_ID2721に一つずつ割り当てられ、そのEXT2_ID2721で識別されるライトビュー・データ・ブロックの先端に位置するソースパケットのSPNに等しい。ここで、そのSPNは、第1ファイルSS244Aに属するライトビュー・データ・ブロック群に含まれる各ソースパケットに、先頭から順に割り当てられた通し番号である。
図27の(d)は、第1ファイルDEP(02000.m2ts)242に属するライトビュー・エクステントEXT2[0]、EXT2[1]、…と、エクステント起点2720の示すSPN2722との間の対応関係を表す模式図である。図13に示されているように、ライトビュー・データ・ブロックは第1ファイルDEP242と第1ファイルSS244Aとに共有される。従って、図27の(d)に示されているように、エクステント起点2720の示す各SPN2722は、各ライトビュー・エクステントEXT2[0]、EXT2[1]、…の先端に位置するソースパケットのSPNに等しい。
2Dクリップ情報ファイル231のエクステント起点2442とライトビュー・クリップ情報ファイル232のエクステント起点2720とは、以下に説明するように、第1ファイルSS244Aから3D映像が再生されるとき、各エクステントSSに含まれるデータ・ブロックの境界の検出に利用される。
図27の(e)は、第1ファイルSS244Aに属するエクステントSSEXTSS[0]とBD−ROMディスク101上のエクステント・ブロックとの間の対応関係を示す模式図である。図27の(e)を参照するに、そのエクステント・ブロックは、インターリーブ配置のデータ・ブロック群D[n]、B[n](n=0、1、2、…)を含む。尚、以下の説明はその他の配置でも同様に成立する。そのエクステント・ブロックは一つのエクステントSSEXTSS[0]としてアクセス可能である。更に、そのエクステントSSEXTSS[0]の中で、n番目のベースビュー・データ・ブロックB[n]に含まれるソースパケットの数は、エクステント起点2442において、EXT1_ID=n+1、nのそれぞれに対応するSPN間の差A(n+1)−Anに等しい。ここで、A0=0とする。一方、ライトビュー・データ・ブロックD[n+1]に含まれるソースパケットの数は、エクステント起点2720において、EXT2_ID=n+1、nのそれぞれに対応するSPN間の差B(n+1)−Bnに等しい。ここで、B0=0とする。
L/Rモードの再生装置102は第1ファイルSS244Aから3D映像を再生するとき、各クリップ情報ファイル231、232のエントリ・マップとエクステント起点2442、2720とを利用する。それにより、再生装置102は、任意のシーンのライトビューを表すフレームのPTSから、そのフレームを含むライトビュー・データ・ブロックが記録されたセクタのLBNを特定する。具体的には、再生装置102はまず、例えばライトビュー・クリップ情報ファイル232のエントリ・マップから、そのPTSに対応付けられたSPNを検索する。仮に、そのSPNの示すソースパケットが、第1ファイルDEP242の3番目のライトビュー・エクステントEXT2[2]、すなわちライトビュー・データ・ブロックD[2]に含まれる場合を想定する。再生装置102は次に、ライトビュー・クリップ情報ファイル232のエクステント起点2720の示すSPN2722の中から、目標のSPN以下で最大のもの“B2”と、それに対応するEXT2_ID“2”とを検索する。再生装置102は続いて、2Dクリップ情報ファイル231のエクステント起点2442から、そのEXT2_ID“2”と等しいEXT1_IDに対応するSPN2712の値“A2”を検索する。再生装置102は更に、検索されたSPNの和B2+A2を求める。図27の(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ドライブ121に指定する。それにより、そのLBNのセクタ以降に記録されたエクステントSSEXTSS[0]の部分、すなわち3番目のライトビュー・データ・ブロックD[2]以降のデータ・ブロック群D[2]、B[2]、D[3]、B[3]、…がアラインド・ユニット単位で読み出される。
再生装置102は更にエクステント起点2442、2720を利用して、読み出されたエクステントSSから、ディペンデントビュー・データ・ブロックとベースビュー・データ・ブロックとを交互に抽出する。例えば、図27の(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)個のソースパケットを二番目のディペンデントビュー・データ・ブロックD[1]として抽出する。再生装置102は更に、(A1+B2)番目のソースパケットと、それに続く(A2−A1−1)個のソースパケットとの計(A2−A1)個のソースパケットを二番目のベースビュー・データ・ブロックB[1]として抽出する。それ以降も再生装置102は同様に、読み出されるソースパケットの数からエクステントSS内のデータ・ブロック間の境界を検出して、ディペンデントビューとベースビューとの各データ・ブロックを交互に抽出する。抽出されたベースビュー・データ・ブロックとライトビュー・データ・ブロックとはパラレルにシステム・ターゲット・デコーダに渡されて復号される。
こうして、L/Rモードの再生装置102は第1ファイルSS244Aから特定のPTS以降の3D映像を再生できる。その結果、再生装置102は、BD−ROMドライブ121の制御に関する上記の利点(A)、(B)を実際に享受できる。
≪ファイル・ベース≫
図27の(c)は、L/Rモードの再生装置102によって第1ファイルSS244Aから抽出されたベースビュー・データ・ブロックB[0]、B[1]、B[2]、…を表す模式図である。図27の(c)を参照するに、それらのベースビュー・データ・ブロックB[n](n=0、1、2、…)の含むソースパケット群に、先頭から順にSPNを割り当てたとき、各データ・ブロックB[n]の先端に位置するソースパケットのSPNは、エクステント起点2442の示すSPN2712に等しい。それらのベースビュー・データ・ブロック群B[n]のように、エクステント起点を利用して一つのファイルSSから抽出されるベースビュー・データ・ブロック群を「ファイル・ベース」という。更に、ファイル・ベースに含まれるベースビュー・データ・ブロックを「ベースビュー・エクステント」という。図27の(e)に示されているように、各ベースビュー・エクステントEXT1[0]、EXT1[1]、…はクリップ情報ファイル内のエクステント起点2442、2720によって参照される。
ベースビュー・エクステントEXT1[n]は2DエクステントEXT2D[n]とベースビュー・データ・ブロックB[n]を共有する。従って、ファイル・ベースはファイル2Dと同じメインTSを含む。しかし、ベースビュー・エクステントEXT1[n]は2DエクステントEXT2D[n]とは異なり、いずれのファイルのファイル・エントリによっても参照されない。上記のとおり、ベースビュー・エクステントEXT1[n]は、クリップ情報ファイル内のエクステント起点を利用して、ファイルSS内のエクステントSSEXTSS[・]から抽出される。このように、ファイル・ベースは本来のファイルとは異なり、ファイル・エントリを含まず、かつ、ベースビュー・エクステントの参照にエクステント起点を必要とする。それらの意味で、ファイル・ベースは「仮想的なファイル」である。特にファイル・ベースはファイルシステムでは認識されず、図2に示されているディレクトリ/ファイル構造には現れない。
図28は、BD−ROMディスク101上に記録された一つのエクステント・ブロック2800と、ファイル2D2810、ファイル・ベース2811、ファイルDEP2812、及びファイルSS2820の各エクステント群との間の対応関係を示す模式図である。図28を参照するに、エクステント・ブロック2800はディペンデントビュー・データ・ブロックD[n]とベースビュー・データ・ブロックB[n]とを含む(n=…、0、1、2、3、…)。ベースビュー・データ・ブロックB[n]は2DエクステントEXT2D[n]としてファイル2D2810に属する。ディペンデントビュー・データ・ブロックD[n]はディペンデントビュー・エクステントEXT2[n]としてファイルDEP2812に属する。エクステント・ブロック2800の全体が一つのエクステントSSEXTSS[0]としてファイルSS2820に属する。従って、エクステントSSEXTSS[0]は、2DエクステントEXT2D[n]とはベースビュー・データ・ブロックB[n]を共有し、ディペンデントビュー・エクステントEXT2[n]とはディペンデントビュー・データ・ブロックD[n]を共有する。エクステントSSEXTSS[0]は再生装置102に読み込まれた後、ディペンデントビュー・データ・ブロックD[n]とベースビュー・データ・ブロックB[n]とに分離される。それらのベースビュー・データ・ブロックB[n]はベースビュー・エクステントEXT1[n]としてファイル・ベース2811に属する。エクステントSSEXTSS[0]内でのベースビュー・エクステントEXT1[n]とディペンデントビュー・エクステントEXT2[n]との間の境界は、ファイル2D2810とファイルDEP2812とのそれぞれに対応付けられたクリップ情報ファイル内のエクステント起点を利用して特定される。
≪ディペンデントビュー・クリップ情報ファイル≫
ディペンデントビュー・クリップ情報ファイルは、図24−27に示されている2Dクリップ情報ファイルとデータ構造が同様である。従って、以下の説明では、ディペンデントビュー・クリップ情報ファイルと2Dクリップ情報ファイルとの間の相違点に触れ、同様な点についての説明は上記の説明を援用する。
ディペンデントビュー・クリップ情報ファイルは2Dクリップ情報ファイルとは主に次の三点(i)、(ii)、(iii)で異なる:(i)ストリーム属性情報に条件が課せられている;(ii)エントリ・ポイントに条件が課せられている;(iii)3Dメタデータがオフセット・テーブルを含まない。
(i)ベースビュー・ビデオ・ストリームとディペンデントビュー・ビデオ・ストリームとがL/Rモードの再生装置102によって3D映像の再生に利用されるものであるとき、図6に示されているとおり、ディペンデントビュー・ビデオ・ストリームはベースビュー・ビデオ・ストリームを利用して圧縮されている。そのとき、ディペンデントビュー・ビデオ・ストリームはベースビュー・ビデオ・ストリームとビデオ・ストリーム属性が等しい。ここで、ベースビュー・ビデオ・ストリームに関するビデオ・ストリーム属性情報は2Dクリップ情報ファイルのストリーム属性情報2420内でPID=0x1011に対応付けられている。一方、ディペンデントビュー・ビデオ・ストリームに関するビデオ・ストリーム属性情報はディペンデントビュー・クリップ情報ファイルのストリーム属性情報内でPID=0x1012又は0x1013に対応付けられている。従って、それらのビデオ・ストリーム属性情報間では、図24に示されている各項目、すなわち、コーデック、解像度、アスペクト比、及びフレームレートが一致しなければならない。コーデックの種類が一致していれば、ベースビュー・ピクチャとディペンデントビュー・ピクチャとの間に符号化での参照関係が成立するので、各ピクチャを復号することができる。解像度、アスペクト比、及びフレームレートがいずれも一致していれば、左右の映像の画面表示を同期させることができる。それ故、それらの映像を3D映像として視聴者に違和感を与えることなく見せることができる。
(ii)ディペンデントビュー・クリップ情報ファイルのエントリ・マップは、ディペンデントビュー・ビデオ・ストリームに割り当てられたテーブルを含む。そのテーブルは、図25の(a)に示されているテーブル2500と同様に、エントリ・マップ・ヘッダとエントリ・ポイントとを含む。エントリ・マップ・ヘッダは、対応するディペンデントビュー・ビデオ・ストリームのPID、すなわち0x1012又は0x1013を示す。各エントリ・ポイントは一対のPTSとSPNとを一つのEP_IDに対応付けている。各エントリ・ポイントのPTSは、ディペンデントビュー・ビデオ・ストリームに含まれるいずれかのGOPの先頭のピクチャのPTSと等しい。各エントリ・ポイントのSPNは、同じエントリ・ポイントに属するPTSの示すピクチャが格納されたソースパケット群の先頭のSPNに等しい。ここで、SPNは、ファイルDEPに属するソースパケット群、すなわちサブTSを構成するソースパケット群に先頭から順に割り当てられた通し番号を意味する。各エントリ・ポイントのPTSは、2Dクリップ情報ファイルのエントリ・マップのうち、ベースビュー・ビデオ・ストリームに割り当てられたテーブル内のエントリ・ポイントのPTSと一致しなければならない。すなわち、同じ3D・VAUに含まれる一対のピクチャの一方を含むソースパケット群の先頭にエントリ・ポイントが設定されているときは常に、他方を含むソースパケット群の先頭にもエントリ・ポイントが設定されていなければならない。
図29は、ベースビュー・ビデオ・ストリーム2910とディペンデントビュー・ビデオ・ストリーム2920とに設定されたエントリ・ポイントの例を示す模式図である。各ビデオ・ストリーム2910、2920では、先頭から数えて同じ順番のGOPが同じ再生期間の映像を表す。図29を参照するに、ベースビュー・ビデオ・ストリーム2910では、先頭から数えて奇数番目に位置するGOP#1、GOP#3、GOP#5の各先頭にエントリ・ポイント2901B、2903B、2905Bが設定されている。それに併せて、ディペンデントビュー・ビデオ・ストリーム2920でも、先頭から数えて奇数番目に位置するGOP#1、GOP#3、GOP#5の各先頭にエントリ・ポイント2901D、2903D、2905Dが設定されている。その場合、再生装置102は、例えばGOP#3から3D映像の再生を開始するとき、対応するエントリ・ポイント2903B、2903DのSPNからファイルSS内の再生開始位置のSPNを直ちに算定できる。特にエントリ・ポイント2903B、2903Dがいずれもデータ・ブロックの先端に設定されているとき、図27の(e)から理解されるとおり、エントリ・ポイント2903B、2903DのSPNの和がファイルSS内の再生開始位置のSPNに等しい。図27の(e)の説明で述べたとおり、そのソースパケットの数からは、ファイルSS内の再生開始位置の部分が記録されたセクタのLBNを算定することができる。こうして、3D映像の再生においても、飛び込み再生等、ビデオ・ストリームのランダムアクセスを要する処理の応答速度を向上させることができる。
≪2Dプレイリスト・ファイル≫
図30は、2Dプレイリスト・ファイルのデータ構造を示す模式図である。図2に示されている第1プレイリスト・ファイル(00001.mpls)221はこのデータ構造を持つ。図30を参照するに、2Dプレイリスト・ファイル221はメインパス3001と二つのサブパス3002、3003とを含む。
メインパス3001はプレイアイテム情報(PI)の配列であり、ファイル2D241の主要な再生経路、すなわち再生対象の部分とその再生順とを規定する。各PIは固有のプレイアイテムID=#N(N=1、2、3、…)で識別される。各PI#Nは主要な再生経路の異なる再生区間を一対のPTSで規定する。その対の一方はその再生区間の開始時刻(In−Time)を表し、他方は終了時刻(Out−Time)を表す。更に、メインパス3001内でのPIの順序は、対応する再生区間の再生経路内での順序を表す。
各サブパス3002、3003はサブプレイアイテム情報(SUB_PI)の配列であり、ファイル2D241の主要な再生経路に並列に付随可能な再生経路を規定する。その再生経路は、メインパス3001の表すファイル2D241の部分とは別の部分、又は別のファイル2Dに多重化されたストリーム・データの部分とその再生順とを意味する。そのストリーム・データは、メインパス3001に従ってファイル2D241から再生される2D映像と同時に再生されるべき別の2D映像を表す。その別の2D映像は例えば、ピクチャ・イン・ピクチャ方式における副映像、ブラウザ画面、ポップアップ・メニュー、又は字幕を含む。サブパス3002、3003には2Dプレイリスト・ファイル221への登録順に通し番号“0”、“1”が振られている。その通し番号はサブパスIDとして各サブパス3002、3003の識別に利用される。各サブパス3002、3003では、各SUB_PIが固有のサブプレイアイテムID=#M(M=1、2、3、…)で識別される。各SUB_PI#Mは、再生経路の異なる再生区間を一対のPTSで規定する。その対の一方はその再生区間の再生開始時刻を表し、他方は再生終了時刻を表す。更に、各サブパス3002、3003内でのSUB_PIの順序は、対応する再生区間の再生経路内での順序を表す。
図31は、PI#Nのデータ構造を示す模式図である。図31を参照するに、PI#Nは、参照クリップ情報3101、再生開始時刻(In_Time)3102、再生終了時刻(Out_Time)3103、コネクション・コンディション3104、及びストリーム選択テーブル(以下、STN(Stream Number)テーブルと略す。)3105を含む。参照クリップ情報3101は、2Dクリップ情報ファイル231を識別するための情報である。再生開始時刻3102と再生終了時刻3103とは、ファイル2D241の再生対象部分の先端と後端との各PTSを示す。コネクション・コンディション3104は、再生開始時刻3102と再生終了時刻3103とによって規定された再生区間での映像を、一つ前のPI#(N−1)によって規定された再生区間での映像に接続するときの条件を規定する。STNテーブル3105は、再生開始時刻3102から再生終了時刻3103までの間に再生装置102内のデコーダによってファイル2D241から選択可能なエレメンタリ・ストリームのリストを表す。
SUB_PIのデータ構造は、図31に示されているPIのデータ構造と、参照クリップ情報、再生開始時刻、及び再生終了時刻を含む点で共通する。特にSUB_PIの再生開始時刻と再生終了時刻とは、PIのそれらと同じ時間軸上の値で表される。SUB_PIは更に「SPコネクション・コンディション」というフィールドを含む。SPコネクション・コンディションはPIのコネクション・コンディションと同じ意味を持つ。
[コネクション・コンディション]
コネクション・コンディション(以下、CCと略す。)3104は例えば“1”、“5”、“6”の三種類の値を取り得る。CC3104が“1”であるとき、PI#Nによって規定されるファイル2D241の部分から再生される映像は、直前のPI#(N−1)によって規定されるファイル2D241の部分から再生される映像とは必ずしもシームレスに接続されなくてもよい。一方、CC3104が“5”又は“6”であるとき、それら両方の映像が必ずシームレスに接続されなければならない。
図32の(a)、(b)はそれぞれ、CC3104が“5”、“6”であるときに接続対象の二つの再生区間3201、3202の間の関係を示す模式図である。ここで、PI#(N−1)はファイル2D241の第1部分3201を規定し、PI#Nはファイル2D241の第2部分3202を規定する。図32の(a)を参照するに、CC3104が“5”であるとき、2つのPI#(N−1)、PI#Nの間でSTCが途切れていても良い。すなわち、第1部分3201の後端のPTS#1と第2部分3202の先端のPTS#2とは不連続であってもよい。但し、いくつかの制約条件が満たされねばならない。例えば、第1部分3201に続けて第2部分3202をデコーダに供給したときでもそのデコーダが復号処理をスムーズに持続できるように、各部分3201、3202が作成されていなければならない。更に、第1部分3201に含まれるオーディオ・ストリームの最後のフレームを、第2部分3202に含まれるオーディオ・ストリームの先頭フレームと重複させなければならない。一方、図32の(b)を参照するに、CC3104が“6”であるとき、第1部分3201と第2部分3202とは、デコーダの復号処理上、一連の部分として扱えるものでなければならない。すなわち、第1部分3201と第2部分3202との間ではSTCとATCとがいずれも連続でなければならない。同様に、SPコネクション・コンディションが“5”又は“6”であるとき、隣接する2つのSUB_PIによって規定されるファイル2Dの部分間では、STCとATCとがいずれも連続でなければならない。
[STNテーブル]
図31を再び参照するに、STNテーブル3105はストリーム登録情報の配列である。「ストリーム登録情報」とは、再生開始時刻3102から再生終了時刻3103までの間にメインTSから再生対象として選択可能なエレメンタリ・ストリームを個別に示す情報である。ストリーム番号(STN)3106はストリーム登録情報に個別に割り当てられた通し番号であり、再生装置102によって各エレメンタリ・ストリームの識別に利用される。STN3106は更に、同じ種類のエレメンタリ・ストリームの間では選択の優先順位を表す。ストリーム登録情報はストリーム・エントリ3109とストリーム属性情報3110と含む。ストリーム・エントリ3109はストリーム・パス情報3107とストリーム識別情報3108とを含む。ストリーム・パス情報3107は、選択対象のエレメンタリ・ストリームが属するファイル2Dを示す情報である。例えばストリーム・パス情報3107が“メインパス”を示すとき、そのファイル2Dは、参照クリップ情報3101の示す2Dクリップ情報ファイルに対応するものである。一方、ストリーム・パス情報3107が“サブパスID=1”を示すとき、選択対象のエレメンタリ・ストリームが属するファイル2Dは、サブパスID=1のサブパスに含まれるSUB_PIの参照クリップ情報が示す2Dクリップ情報ファイルに対応するものである。そのSUB_PIの規定する再生開始時刻又は再生終了時刻のいずれかは、STNテーブル3105を含むPIの規定する再生開始時刻3102から再生終了時刻3103までの期間に含まれる。ストリーム識別情報3108は、ストリーム・パス情報3107によって特定されるファイル2Dに多重化されているエレメンタリ・ストリームのPIDを示す。このPIDの示すエレメンタリ・ストリームが再生開始時刻3102から再生終了時刻3103までの間に選択可能である。ストリーム属性情報3110は各エレメンタリ・ストリームの属性情報を表す。例えば、オーディオ・ストリーム、PGストリーム、及びIGストリームの各属性情報は言語の種類を示す。
[2Dプレイリスト・ファイルに従った2D映像の再生]
図33は、2Dプレイリスト・ファイル(00001.mpls)221の示すPTSと、ファイル2D(01000.m2ts)241から再生される部分との間の対応関係を示す模式図である。図33を参照するに、2Dプレイリスト・ファイル221のメインパス3001では、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の特定とは、図25の(b)、(c)を用いて説明したとおりである。再生装置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のメインパス3001に従ってファイル2D241から2D映像を再生できる。
2Dプレイリスト・ファイル221はエントリ・マーク3301を含んでもよい。エントリ・マーク3301は、メインパス3001のうち、実際に再生が開始されるべき時点を示す。例えば図33に示されているように、PI#1に対して複数のエントリ・マーク3301が設定されてもよい。エントリ・マーク3301は特に頭出し再生において、再生開始位置の検索に利用される。例えば2Dプレイリスト・ファイル221が映画タイトルの再生経路を規定するとき、エントリ・マーク3301は各チャプタの先頭に付与される。それにより、再生装置102はその映画タイトルをチャプタごとに再生できる。
≪3Dプレイリスト・ファイル≫
図34は、3Dプレイリスト・ファイルのデータ構造を示す模式図である。図2に示されている第2プレイリスト・ファイル(00002.mpls)222はこのデータ構造を持つ。第2プレイリスト・ファイル(00003.mpls)223も同様である。図34を参照するに、3Dプレイリスト・ファイル222は、メインパス3401、サブパス3402、及び拡張データ3403を含む。
メインパス3401は、図3の(a)に示されているメインTSの再生経路を規定する。従って、メインパス3401は、図30に示されている2Dプレイリスト・ファイル221のメインパス3001に等しい。2D再生モードの再生装置102は3Dプレイリスト・ファイル222のメインパス3001に従ってファイル2D241から2D映像を再生できる。
サブパス3402は、図3の(b)、(c)に示されているサブTSの再生経路、すなわち第1ファイルDEP242又は第2ファイルDEP243のいずれかの再生経路を規定する。サブパス3402のデータ構造は、図30に示されている2Dプレイリスト・ファイル241のサブパス3002、3003のデータ構造と同様である。従って、その同様なデータ構造の詳細、特にSUB_PIのデータ構造の詳細についての説明は、図30を用いた説明を援用する。
サブパス3402のSUB_PI#N(N=1、2、3、…)はメインパス3401のPI#Nと一対一に対応する。更に、各SUB_PI#Nの規定する再生開始時刻と再生終了時刻とはそれぞれ、対応するPI#Nの規定する再生開始時刻と再生終了時刻とに等しい。サブパス3402はその上、サブパス・タイプ3410を含む。「サブパス・タイプ」は一般に、メインパスとサブパスとの間で再生処理が同期すべきか否かを示す。3Dプレイリスト・ファイル222では特にサブパス・タイプ3410が3D再生モードの種類、すなわちサブパス3402に従って再生されるべきディペンデントビュー・ビデオ・ストリームの種類を示す。図34では、サブパス・タイプ3410は、その値が「3D・L/R」であるので、3D再生モードがL/Rモードであること、すなわちライトビュー・ビデオ・ストリームが再生対象であることを示す。一方、サブパス・タイプ3410は、その値が「3Dデプス」であるとき、3D再生モードがデプス・モードであること、すなわちデプスマップ・ストリームが再生対象であることを示す。3D再生モードの再生装置102は、サブパス・タイプ3410の値が「3D・L/R」又は「3Dデプス」であることを検出したとき、メインパス3401に従った再生処理とサブパス3402に従った再生処理とを同期させる。
図85は、二つの連続するPIの規定するファイル2Dの各部分、対応するSUB_PIの規定するファイルDEPの各部分、それらの部分の属するファイルSSの各部分、及び、各ファイルによって参照されるエクステント・ブロックの対応関係を示す模式図である。図85では、整数Nは1以上であり、整数kは0以上である。整数k、n、q、sはその順に大きい。整数mは整数kよりも1大きく、整数pは整数nよりも1大きく、整数rは整数qよりも1大きい:m=k+1、p=n+1、r=q+1。図85を参照するに、PI#(N−1)はファイル2D8510の第1部分8511を規定し、PI#Nはファイル2D8510の第2部分8512を規定する。PI#(N−1)に対応するSUB_PI#(N−1)はファイルDEP8520の第1部分8521を規定し、PI#Nに対応するSUB_PI#NはファイルDEP8520の第2部分8522を規定する。各ファイル8510、8520の第1部分8511、8521はファイルSS8530の第1部分8531に属し、各ファイル8510、8520の第2部分8512、8522はファイルSS8530の第2部分8532に属する。具体的には、例えばファイル2D8510の第1部分8511内の2DエクステントEXT2D[0]、…、EXT2D[k]は、ファイルSS8530の第1部分8531内のエクステントSSEXTSS[0]と、エクステント・ブロック8501内のベースビュー・データ・ブロックB[0]、…、B[k]を共有する(整数kは0以上である)。一方、ファイルDEP8520の第1部分8521内のディペンデントビュー・エクステントEXT2[0]、…、EXT2[k]は、ファイルSS8530の第1部分8531内のエクステントSSEXTSS[0]と、エクステント・ブロック8501内のディペンデントビュー・データ・ブロックD[0]、…、D[k]を共有する。
PI#Nのコネクション・コンディション(CC)が“5”又は“6”であるとき、ファイル2D8510の第1部分8511と第2部分8512とはシームレスに接続される。更に、対応するSUB_PI#NのSPCCも“5”又は“6”である。従って、ファイルDEP8520の第1部分8521と第2部分8522とはシームレスに接続される。その場合、ファイルSS8530の第1部分8531内では、先頭のエクステント・ブロック8501を除く、二番目以降のエクステント・ブロック8502が上記の条件4を満たせばよい。ここで、先頭のエクステント・ブロック8501と二番目のエクステント・ブロック8502との間のシームレス接続は、例えば先頭のエクステント・ブロック8501内の先頭のディペンデントビュー・データ・ブロックD[0]を十分なサイズに設計しておけば、容易に実現される。一方、ファイルSS8530の第2部分8532内では、最後のエクステント・ブロック8504を除く、最後から二番目までのエクステント・ブロック8503が上記の条件4を満たせばよい。
拡張データ3403は、3D再生モードの再生装置102によってのみ解釈される部分であり、2D再生モードの再生装置102には無視される。拡張データ3403は特に、拡張ストリーム選択テーブル3430を含む。「拡張ストリーム選択テーブル(STN_table_SS)」(以下、STNテーブルSSと略す。)は、3D再生モードにおいて、メインパス3401内の各PIの示すSTNテーブルに追加されるべきストリーム登録情報の配列である。このストリーム登録情報は、サブTSから再生対象として選択可能なエレメンタリ・ストリームを示す。
図35は、STNテーブルSS3430のデータ構造を示す模式図である。図35を参照するに、STNテーブルSS3430はストリーム登録情報列3501、3502、3503、…を含む。ストリーム登録情報列3501、3502、3503、…はメインパス3401内のPI#1、#2、#3、…に個別に対応し、3D再生モードの再生装置102により、対応するPI内のSTNテーブルに含まれるストリーム登録情報列と組み合わされて利用される。各PIに対するストリーム登録情報列3501は、ポップアップ期間のオフセット(Fixed_offset_during_Popup)3511、ディペンデントビュー・ビデオ・ストリームのストリーム登録情報列3512、PGストリームのストリーム登録情報列3513、及びIGストリームのストリーム登録情報列3514を含む。
ポップアップ期間のオフセット3511は、IGストリームからポップアップ・メニューが再生されるか否かを示す。3D再生モードの再生装置102はそのオフセット3511の値に依ってビデオ・プレーンとPGプレーンとの表示モード(presentation mode)を変える。ここで、ビデオ・プレーンの表示モードにはベースビュー(B)−ディペンデントビュー(D)表示モードとB−B表示モードとの二種類がある。PGプレーンとIGプレーンとの各表示モードには、2プレーン・モード、1プレーン+オフセット・モード、及び1プレーン+ゼロ・オフセット・モードの三種類がある。例えばポップアップ期間のオフセット3511の値が“0”であるとき、IGストリームからはポップアップ・メニューが再生されない。そのとき、ビデオ・プレーンの表示モードとしてB−D表示モードが選択され、PGプレーンの表示モードとして2プレーン・モード又は1プレーン+オフセット・モードが選択される。一方、ポップアップ期間のオフセット3511の値が“1”であるとき、IGストリームからポップアップ・メニューが再生される。そのとき、ビデオ・プレーンの表示モードとしてB−B表示モードが選択され、PGプレーンの表示モードとして1プレーン+ゼロ・オフセット・モードが選択される。
「B−D表示モード」では再生装置102が、レフトビューとライトビューとのビデオ・ストリームから復号されたプレーン・データを交互に出力する。従って、表示装置103の画面には、ビデオ・プレーンの表すレフトビューとライトビューとのフレームが交互に表示されるので、視聴者にはそれらが3D映像として見える。「B−B表示モード」では再生装置102が、動作モードを3D再生モードに維持したまま(特にフレームレートを3D再生時の値、例えば48フレーム/秒に維持したまま)、ベースビュー・ビデオ・ストリームから復号されたプレーン・データのみをフレーム当たり二回ずつ出力する。従って、表示装置103の画面には、ビデオ・プレーンについてはレフトビューとライトビューとのいずれかのフレームしか表示されないので、視聴者にはそれらが2D映像としてしか見えない。
「2プレーン・モード」では、サブTSがレフトビューとライトビューとのグラフィックス・ストリームを両方含むとき、再生装置102が各グラフィックス・ストリームからレフトビューとライトビューとのグラフィックス・プレーン・データを復号して交互に出力する。「1プレーン+オフセット・モード」では、再生装置102がクロッピング処理により、メインTS内のグラフィックス・ストリームからレフトビューとライトビューとのプレーン・データの対を生成して交互に出力する。いずれのモードでも、表示装置103の画面にはレフトビューとライトビューとのPGプレーンが交互に表示されるので、視聴者にはそれらが3D映像として見える。「1プレーン+ゼロ・オフセット・モード」では、再生装置102が、動作モードを3D再生モードに維持したまま、クロッピング処理を一時的に停止させ、メインTS内のグラフィックス・ストリームから復号されたプレーン・データをフレーム当たり二回ずつ出力する。従って、表示装置103の画面には、レフトビューとライトビューとのいずれかのPGプレーンしか表示されないので、視聴者にはそれらが2D映像としてしか見えない。
3D再生モードの再生装置102は、PIごとにポップアップ期間のオフセット3511を参照して、IGストリームからポップアップ・メニューが再生されるときはB−B表示モードと1プレーン+ゼロ・オフセット・モードとを選択する。それにより、ポップアップ・メニューが表示される間、他の3D映像が一時的に2D映像に変更されるので、ポップアップ・メニューの視認性・操作性が向上する。
ディペンデントビュー・ビデオ・ストリームのストリーム登録情報列3512、PGストリームのストリーム登録情報列3513、及びIGストリームのストリーム登録情報列3514はそれぞれ、サブTSから再生対象として選択可能なディペンデントビュー・ビデオ・ストリーム、PGストリーム、及びIGストリームを示すストリーム登録情報を含む。これらのストリーム登録情報列3512、3513、3514はそれぞれ、対応するPI内のSTNテーブルに含まれるストリーム登録情報列のうち、ベースビュー・ビデオ・ストリーム、PGストリーム、及びIGストリームを示すものと組み合わされて利用される。3D再生モードの再生装置102は、STNテーブル内のいずれかのストリーム登録情報を読み出すとき、そのストリーム登録情報に組み合わされたSTNテーブルSS内のストリーム登録情報列も自動的に読み出す。それにより、再生装置102は、2D再生モードを単に3D再生モードへ切り換えるとき、設定済みのSTN、及び言語等のストリーム属性を同一に維持できる。
図36の(a)は、ディペンデントビュー・ビデオ・ストリームのストリーム登録情報列3512のデータ構造を示す模式図である。図36の(a)を参照するに、このストリーム登録情報列3512は一般に複数のストリーム登録情報(SS_dependet_view_block)3601を含む。それらは、対応するPI内のストリーム登録情報のうち、ベースビュー・ビデオ・ストリームを示すものと同数である。各ストリーム登録情報3601は、STN3611、ストリーム・エントリ3612、及びストリーム属性情報3613を含む。STN3611はストリーム登録情報3601に個別に割り当てられた通し番号であり、対応するPI内の組み合わせ対象のストリーム登録情報のSTNと等しい。ストリーム・エントリ3612は、サブパスID参照情報(ref_to_Subpath_id)3621、ストリーム・ファイル参照情報(ref_to_subClip_entry_id)3622、及びPID(ref_to_stream_PID_subclip)3623を含む。サブパスID参照情報3621は、ディペンデントビュー・ビデオ・ストリームの再生経路を規定するサブパスのサブパスIDを示す。ストリーム・ファイル参照情報3622は、そのディペンデントビュー・ビデオ・ストリームが格納されたファイルDEPを識別するための情報である。PID3623は、そのディペンデントビュー・ビデオ・ストリームのPIDである。ストリーム属性情報3613はそのディペンデントビュー・ビデオ・ストリームの属性、例えばフレームレート、解像度、及びビデオフォーマットを含む。特にそれらは、対応するPI内の組み合わせ対象のストリーム登録情報の示すベースビュー・ビデオ・ストリームのものと共通である。
図36の(b)は、PGストリームのストリーム登録情報列3513のデータ構造を示す模式図である。図36の(b)を参照するに、このストリーム登録情報列3513は一般に複数のストリーム登録情報3631を含む。それらは、対応するPI内のストリーム登録情報のうち、PGストリームを示すものと同数である。各ストリーム登録情報3631は、STN3641、立体視フラグ(is_SS_PG)3642、ベースビュー・ストリーム・エントリ(stream_entry_for_base_view)3643、ディペンデントビュー・ストリーム・エントリ(stream_entry_for_depentdent_view)3644、及びストリーム属性情報3645を含む。STN3641はストリーム登録情報3631に個別に割り当てられた通し番号であり、対応するPI内の組み合わせ対象のストリーム登録情報のSTNと等しい。立体視フラグ3642は、BD−ROMディスク101にベースビューとディペンデントビュー、例えばレフトビューとライトビューとのPGストリームが両方含まれているか否かを示す。立体視フラグ3642がオンであるとき、サブTSに両方のPGストリームが含まれている。従って、ベースビュー・ストリーム・エントリ3643、ディペンデントビュー・ストリーム・エントリ3644、及びストリーム属性情報3645のいずれのフィールドも再生装置によって読み出される。立体視フラグ3642がオフであるとき、それらのフィールド3643−3645はいずれも再生装置に無視される。ベースビュー・ストリーム・エントリ3643とディペンデントビュー・ストリーム・エントリ3644とはいずれも、サブパスID参照情報、ストリーム・ファイル参照情報、及びPIDを含む。サブパスID参照情報は、ベースビューとディペンデントビューとの各PGストリームの再生経路を規定するサブパスのサブパスIDを示す。ストリーム・ファイル参照情報は、各PGストリームが格納されたファイルDEPを識別するための情報である。PIDは各PGストリームのPIDである。ストリーム属性情報3645は各PGストリームの属性、例えば言語の種類を含む。
図36の(c)は、IGストリームのストリーム登録情報列3514のデータ構造を示す模式図である。図36の(c)を参照するに、このストリーム登録情報列3514は一般に複数のストリーム登録情報3651を含む。それらは、対応するPI内のストリーム登録情報のうち、IGストリームを示すものと同数である。各ストリーム登録情報3651は、STN3661、立体視フラグ(is_SS_IG)3662、ベースビュー・ストリーム・エントリ3663、ディペンデントビュー・ストリーム・エントリ3664、及びストリーム属性情報3665を含む。STN3661はストリーム登録情報3651に個別に割り当てられた通し番号であり、対応するPI内の組み合わせ対象のストリーム登録情報のSTNと等しい。立体視フラグ3662は、BD−ROMディスク101にベースビューとディペンデントビュー、例えばレフトビューとライトビューとのIGストリームが両方含まれているか否かを示す。立体視フラグ3662がオンであるとき、サブTSに両方のIGストリームが含まれている。従って、ベースビュー・ストリーム・エントリ3663、ディペンデントビュー・ストリーム・エントリ3664、及びストリーム属性情報3665のいずれのフィールドも再生装置によって読み出される。立体視フラグ3662がオフであるとき、それらのフィールド3663−3665はいずれも再生装置に無視される。ベースビュー・ストリーム・エントリ3663とディペンデントビュー・ストリーム・エントリ3664とはいずれも、サブパスID参照情報、ストリーム・ファイル参照情報、及びPIDを含む。サブパスID参照情報は、ベースビューとディペンデントビューとの各IGストリームの再生経路を規定するサブパスのサブパスIDを示す。ストリーム・ファイル参照情報は、各IGストリームが格納されたファイルDEPを識別するための情報である。PIDは各IGストリームのPIDである。ストリーム属性情報3665は各IGストリームの属性、例えば言語の種類を含む。
[3Dプレイリスト・ファイルに従った3D映像の再生]
図37は、3Dプレイリスト・ファイル(00002.mpls)222の示すPTSと、第1ファイルSS(01000.ssif)244Aから再生される部分との間の対応関係を示す模式図である。図37を参照するに、3Dプレイリスト・ファイル222のメインパス3701では、PI#1は、再生開始時刻IN1を示すPTS#1と、再生終了時刻OUT1を示すPTS#2とを規定する。PI#1の参照クリップ情報は2Dクリップ情報ファイル(01000.clpi)231を示す。一方、サブパス・タイプが「3D・L/R」を示すサブパス3702では、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は続いて、図27の(e)の説明で述べたように、各クリップ情報ファイル231、232のエクステント起点2442、2720を利用して、第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の特定とは、図27の(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は、図27の(e)の説明で述べたように各クリップ情報ファイル231、232のエクステント起点2442、2720を利用して、各エクステントSSからベースビュー・エクステントを抽出し、残りのライトビュー・エクステントとパラレルに復号する。こうして、再生装置102は、3Dプレイリスト・ファイル222に従って第1ファイルSS244Aから3D映像を再生できる。
≪インデックス・テーブル≫
図38は、図2に示されているインデックス・ファイル(index.bdmv)211内のインデックス・テーブル3810を示す模式図である。図38を参照するに、インデックス・テーブル3810は、「ファーストプレイ」3801、「トップメニュー」3802、及び「タイトルk」3803(k=1、2、…、n:nは1以上の整数)という項目を含む。各項目にはムービーオブジェクトMVO−2D、MVO−3D、…、又はBD−JオブジェクトBDJO−2D、BDJO−3D、…のいずれかが対応付けられている。ユーザの操作又はアプリケーション・プログラムによってタイトル又はメニューが呼び出される度に、再生装置102の制御部はインデックス・テーブル3810の対応する項目を参照する。制御部は更に、その項目に対応付けられているオブジェクトをBD−ROMディスク101から呼び出し、それに従って様々な処理を実行する。具体的には、項目「ファーストプレイ」3801には、ディスク101がBD−ROMドライブ121へ挿入された時に呼び出されるべきオブジェクトが指定されている。項目「トップメニュー」3802には、例えばユーザの操作で「メニューに戻れ」というコマンドが入力された時に表示装置103にメニューを表示させるためのオブジェクトが指定されている。項目「タイトルk」3803には、ディスク101上のコンテンツを構成するタイトルが個別に割り当てられている。例えばユーザの操作によって再生対象のタイトルが指定されたとき、そのタイトルが割り当てられている項目「タイトルk」には、そのタイトルに対応するAVストリーム・ファイルから映像を再生するためのオブジェクトが指定されている。
図38に示されている例では、項目「タイトル1」と項目「タイトル2」とが2D映像のタイトルに割り当てられている。項目「タイトル1」に対応付けられているムービーオブジェクトMVO−2Dは、2Dプレイリスト・ファイル(00001.mpls)221を用いた2D映像の再生処理に関する命令群を含む。再生装置102によって項目「タイトル1」が参照されたとき、そのムービーオブジェクトMVO−2Dに従い、2Dプレイリスト・ファイル221がディスク101から読み出され、それに規定された再生経路に沿って2D映像の再生処理が実行される。項目「タイトル2」に対応付けられているBD−JオブジェクトBDJO−2Dは、2Dプレイリスト・ファイル221を用いた2D映像の再生処理に関するアプリケーション管理テーブルを含む。再生装置102によって項目「タイトル2」が参照されたとき、そのBD−JオブジェクトBDJO−2D内のアプリケーション管理テーブルに従ってJARファイル261からJavaアプリケーション・プログラムが呼び出されて実行される。それにより、2Dプレイリスト・ファイル221がディスク101から読み出され、それに規定された再生経路に沿って2D映像の再生処理が実行される。
図38に示されている例では更に、項目「タイトル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アプリケーション・プログラムを規定する。
再生装置102によって項目「タイトル3」が参照されたとき、ムービーオブジェクトMVO−3Dに従い、まず次の四種類の判別処理が行われる:(1)再生装置102自身が3D映像の再生に対応しているか否か、(2)ユーザが3D映像の再生を選択しているか否か、(3)表示装置103が3D映像の再生に対応しているか否か、及び(4)再生装置102の3D映像再生モードがL/Rモードとデプス・モードとのいずれであるか。次にそれらの判別結果に応じていずれかのプレイリスト・ファイル221−223が再生対象として選択される。再生装置102によって項目「タイトル4」が参照されたとき、BD−JオブジェクトBDJO−3D内のアプリケーション管理テーブルに従ってJARファイル261からJavaアプリケーション・プログラムが呼び出されて実行される。それにより、まず上記の判別処理が行われ、次にその判別結果に応じたプレイリスト・ファイルの選択が行われる。
[3D映像タイトルの選択時でのプレイリスト・ファイルの選択]
図39は、3D映像のタイトルが選択されたときに行われる、再生対象のプレイリスト・ファイルの選択処理のフローチャートである。図38に示されているインデックス・テーブル3810では、項目「タイトル3」が参照されたときはムービーオブジェクトMVO−3Dに従ってその選択処理が実行され、項目「タイトル4」が参照されたときは、BD−JオブジェクトBDJO−3Dに規定されたJavaアプリケーション・プログラムに従ってその選択処理が実行される。
ここで、その選択処理の前提として、再生装置102が第1フラグと第2フラグとを含むときを想定する。第1フラグが“0”であるとき、再生装置102は2D映像の再生のみに対応可能であり、“1”であるとき、3D映像の再生にも対応可能である。第2フラグが“0”であるとき、再生装置102はL/Rモードであり、“1”であるとき、デプス・モードである。
ステップS3901では、再生装置102は第1フラグの値をチェックする。その値が“0”であるとき、処理はステップS3905へ進む。その値が“1”であるとき、処理はステップS3902へ進む。
ステップS3902では、再生装置102は表示装置103にメニューを表示させて、ユーザに2D映像と3D映像とのいずれかの再生を選択させる。ユーザがリモコン105等を操作して、2D映像の再生を選択したとき、処理はステップS3905へ進み、3D映像の再生を選択したとき、処理はステップS3903へ進む。
ステップS3903では、再生装置102は、表示装置103が3D映像の再生に対応しているかチェックする。具体的には、再生装置102はHDMIケーブル122を通して表示装置103との間でCECメッセージを交換し、表示装置103が3D映像の再生に対応しているか否かを表示装置103に問い合わせる。表示装置103が3D映像の再生に対応しているとき、処理はステップS3904へ進む。表示装置103が3D映像の再生に対応していないとき、処理はステップS3905へ進む。
ステップS3904では、再生装置102は第2フラグの値をチェックする。その値が“0”であるとき、処理はステップS3906へ進む。その値が“1”であるとき、処理はステップS3907へ進む。
ステップS3905では、再生装置102は2Dプレイリスト・ファイル221を再生対象として選択する。尚、そのとき、再生装置102は表示装置103に、3D映像の再生が選択されなかった理由を表示させてもよい。その後、処理は終了する。
ステップS3906では、再生装置102はL/Rモード用の3Dプレイリスト・ファイル222を再生対象として選択する。その後、処理は終了する。
ステップS3907では、再生装置102はデプス・モード用の3Dプレイリスト・ファイル223を再生対象として選択する。その後、処理は終了する。
<2D再生装置の構成>
2D再生モードの再生装置102はBD−ROMディスク101から2D映像コンテンツを再生するとき、2D再生装置として動作する。図40は、2D再生装置4000の機能ブロック図である。図40を参照するに、2D再生装置4000は、BD−ROMドライブ4001、再生部4002、及び制御部4003を含む。再生部4002は、リード・バッファ4021、システム・ターゲット・デコーダ4023、及びプレーン加算部4024を含む。制御部4003は、動的シナリオ・メモリ4031、静的シナリオ・メモリ4032、ユーザイベント処理部4033、プログラム実行部4034、再生制御部4035、及びプレーヤ変数記憶部4036を含む。再生部4002と制御部4003とは互いに異なる集積回路に実装されている。その他に、両者が単一の集積回路に統合されていてもよい。
BD−ROMドライブ4001は、内部にBD−ROMディスク101が挿入されたとき、そのディスク101にレーザ光を照射してその反射光の変化を検出する。更に、その反射光の光量の変化から、ディスク101に記録されたデータを読み取る。具体的には、BD−ROMドライブ4001は光ピックアップ、すなわち光学ヘッドを備えている。その光学ヘッドは、半導体レーザ、コリメータ・レンズ、ビーム・スプリッタ、対物レンズ、集光レンズ、及び光検出器を含む。半導体レーザから出射された光ビームは、コリメータ・レンズ、ビーム・スプリッタ、及び対物レンズを順に通ってディスク101の記録層に集められる。集められた光ビームはその記録層で反射/回折される。その反射/回折光は、対物レンズ、ビーム・スプリッタ、及び集光レンズを通って光検出器に集められる。光検出器は、その集光量に応じたレベルの再生信号を生成する。更に、その再生信号からデータが復調される。
BD−ROMドライブ4001は、再生制御部4035からの要求に従ってBD−ROMディスク101からデータを読み出す。そのデータのうち、ファイル2Dのエクステント、すなわち2Dエクステントはリード・バッファ4021へ転送され、動的シナリオ情報は動的シナリオ・メモリ4031へ転送され、静的シナリオ情報は静的シナリオ・メモリ4032へ転送される。「動的シナリオ情報」は、インデックス・ファイル、ムービーオブジェクト・ファイル、及びBD−Jオブジェクト・ファイルを含む。「静的シナリオ情報」は2Dプレイリスト・ファイルと2Dクリップ情報ファイルとを含む。
リード・バッファ4021、動的シナリオ・メモリ4031、及び静的シナリオ・メモリ4032はいずれもバッファ・メモリである。リード・バッファ4021としては再生部4002内のメモリ素子が利用され、動的シナリオ・メモリ4031及び静的シナリオ・メモリ4032としては制御部4003内のメモリ素子が利用される。その他に、単一のメモリ素子の異なる領域が、それらのバッファ・メモリ4021、4031、4032の一部又は全部として利用されてもよい。リード・バッファ4021は2Dエクステントを格納し、動的シナリオ・メモリ4031は動的シナリオ情報を格納し、静的シナリオ・メモリ4032は静的シナリオ情報を格納する。
システム・ターゲット・デコーダ4023は、リード・バッファ4021から2Dエクステントをソースパケット単位で読み出して多重分離処理を行い、更に分離された各エレメンタリ・ストリームに対して復号処理を行う。ここで、各エレメンタリ・ストリームの復号に必要な情報、例えばコーデックの種類及びストリームの属性は予め、再生制御部4035からシステム・ターゲット・デコーダ4023へ送られている。システム・ターゲット・デコーダ4023は更に、復号後のプライマリ・ビデオ・ストリーム、セカンダリ・ビデオ・ストリーム、IGストリーム、及びPGストリームをそれぞれ、主映像プレーン・データ、副映像プレーン・データ、IGプレーン・データ、及びPGプレーン・データとしてVAU単位で送出する。一方、システム・ターゲット・デコーダ4023は、復号後のプライマリ・オーディオ・ストリームとセカンダリ・オーディオ・ストリームとをミキシングして表示装置103の内蔵スピーカ103A等の音声出力装置へ送出する。その他に、システム・ターゲット・デコーダ4023はプログラム実行部4034からグラフィックス・データを受信する。そのグラフィックス・データは、GUI用のメニュー等のグラフィックスを画面に表示するためのものであり、JPEG又はPNG等のラスタデータで表現されている。システム・ターゲット・デコーダ4023はそのグラフィックス・データを処理してイメージ・プレーン・データとして送出する。尚、システム・ターゲット・デコーダ4023の詳細については後述する。
プレーン加算部4024は、システム・ターゲット・デコーダ4023から、主映像プレーン・データ、副映像プレーン・データ、IGプレーン・データ、PGプレーン・データ、及びイメージ・プレーン・データを受信し、それらを互いに重畳して一つの映像フレーム又はフィールドに合成する。合成後の映像データは表示装置103へ送出され、その画面に表示される。
ユーザイベント処理部4033は、リモコン105又は再生装置102のフロントパネルを通してユーザの操作を検出し、その操作の種類に応じてプログラム実行部4034又は再生制御部4035に処理を依頼する。例えばユーザがリモコン105のボタンを押下してポップアップ・メニューの表示を指示したとき、ユーザイベント処理部4033はその押下を検出してそのボタンを識別する。ユーザイベント処理部4033は更にプログラム実行部4034に、そのボタンに対応するコマンドの実行、すなわちポップアップ・メニューの表示処理を依頼する。一方、例えばユーザがリモコン105の早送り又は巻戻しボタンを押下したとき、ユーザイベント処理部4033はその押下を検出してそのボタンを識別する。ユーザイベント処理部4033は更に再生制御部4035に、現在再生中のプレイリストの早送り又は巻戻し処理を依頼する。
プログラム実行部4034はプロセッサであり、動的シナリオ・メモリ4031に格納されたムービーオブジェクト・ファイル及びBD−Jオブジェクト・ファイルからプログラムを読み出して実行する。プログラム実行部4034は更に各プログラムに従って次の制御を行う:(1)再生制御部4035に対してプレイリスト再生処理を命令する;(2)メニュー用又はゲーム用のグラフィックス・データをPNG又はJPEGのラスタデータとして生成し、それをシステム・ターゲット・デコーダ4023へ転送して他の映像データに合成させる。これらの制御の具体的な内容は、プログラムの設計を通じて比較的自由に設計することができる。すなわち、それらの制御内容は、BD−ROMディスク101のオーサリング工程のうち、ムービーオブジェクト・ファイル及びBD−Jオブジェクト・ファイルのプログラミング工程によって決まる。
再生制御部4035は、2Dエクステント及びインデックス・ファイル等、各種のデータをBD−ROMディスク101から、リード・バッファ4021、動的シナリオ・メモリ4031、及び静的シナリオ・メモリ4032へ転送する処理を制御する。その制御には、図2に示されているディレクトリ/ファイル構造を管理するファイルシステムが利用される。すなわち、再生制御部4035はファイル・オープン用のシステムコールを利用して、BD−ROMドライブ4001に各種のファイルを各バッファ・メモリ4021、4031、4032へ転送させる。ここで、「ファイル・オープン」とは次の一連の処理をいう。まず、システムコールによってファイルシステムに検索対象のファイル名が与えられ、そのファイル名がディレクトリ/ファイル構造から検索される。その検索に成功したとき、再生制御部4035内のメモリには、まず、転送対象のファイルのファイル・エントリが転送され、そのメモリ内にFCB(File Control Block)が生成される。その後、転送対象のファイルのファイル・ハンドルがファイルシステムから再生制御部4035に返される。以後、再生制御部4035はそのファイル・ハンドルをBD−ROMドライブ4001に提示することにより、BD−ROMドライブ4001にその転送対象のファイルをBD−ROMディスク101から各バッファ・メモリ4021、4031、4032へ転送させることができる。
再生制御部4035は、BD−ROMドライブ4001とシステム・ターゲット・デコーダ4023とを制御してファイル2Dから映像データと音声データとを復号させる。具体的には、再生制御部4035はまず、プログラム実行部4034からの命令、又はユーザイベント処理部4033からの依頼に応じて、静的シナリオ・メモリ4032から2Dプレイリスト・ファイルを読み出してその内容を解釈する。再生制御部4035は次に、その解釈された内容、特に再生経路に従って、BD−ROMドライブ4001とシステム・ターゲット・デコーダ4023とに再生対象のファイル2Dを指定して、その読み出し処理及び復号処理を指示する。このようなプレイリスト・ファイルに従った再生処理を「プレイリスト再生処理」という。その他に、再生制御部4035は、静的シナリオ情報を利用してプレーヤ変数記憶部4036に各種のプレーヤ変数を設定する。再生制御部4035は更に、それらのプレーヤ変数を参照して、システム・ターゲット・デコーダ4023に復号対象のエレメンタリ・ストリームを指定し、かつ、各エレメンタリ・ストリームの復号に必要な情報を提供する。
プレーヤ変数記憶部4036は、プレーヤ変数を記憶するためのレジスタ群である。プレーヤ変数の種類にはシステム・パラメータ(SPRM)と汎用のパラメータ(GPRM)とがある。SPRMは再生装置102の状態を示す。図41はSPRMの一覧表である。各SPRMには通し番号4101が振られ、各通し番号4101に変数値4102が個別に対応付けられている。主なSPRMの内容は以下のとおりである。ここで、括弧内の数字は通し番号4101を示す。
SPRM(0) : 言語コード
SPRM(1) : プライマリ・オーディオ・ストリーム番号
SPRM(2) : 字幕ストリーム番号
SPRM(3) : アングル番号
SPRM(4) : タイトル番号
SPRM(5) : チャプタ番号
SPRM(6) : プログラム番号
SPRM(7) : セル番号
SPRM(8) : 選択キー情報
SPRM(9) : ナビゲーション・タイマー
SPRM(10) : 再生時刻情報
SPRM(11) : カラオケ用ミキシングモード
SPRM(12) : パレンタル用国情報
SPRM(13) : パレンタル・レベル
SPRM(14) : プレーヤ設定値(ビデオ)
SPRM(15) : プレーヤ設定値(オーディオ)
SPRM(16) : オーディオ・ストリーム用言語コード
SPRM(17) : オーディオ・ストリーム用言語コード(拡張)
SPRM(18) : 字幕ストリーム用言語コード
SPRM(19) : 字幕ストリーム用言語コード(拡張)
SPRM(20) : プレーヤ・リージョン・コード
SPRM(21) : セカンダリ・ビデオ・ストリーム番号
SPRM(22) : セカンダリ・オーディオ・ストリーム番号
SPRM(23) : 再生状態
SPRM(24) : 予備
SPRM(25) : 予備
SPRM(26) : 予備
SPRM(27) : 予備
SPRM(28) : 予備
SPRM(29) : 予備
SPRM(30) : 予備
SPRM(31) : 予備
SPRM(10)は、復号処理中のピクチャのPTSを示し、そのピクチャが復号されて主映像プレーン・メモリに書き込まれる度に更新される。従って、SPRM(10)を参照すれば、現在の再生時点を知ることができる。
SPRM(16)のオーディオ・ストリーム用言語コード、及びSPRM(18)の字幕ストリーム用言語コードは、再生装置102のデフォルトの言語コードを示す。それらは再生装置102のOSD(オン・スクリーン・ディスプレイ)等を利用してユーザに変更させることもでき、プログラム実行部4034を通じてアプリケーション・プログラムに変更させることもできる。例えばSPRM(16)が「英語」を示しているとき、再生制御部4035はプレイリスト再生処理において、まずカレントPI内のSTNテーブルから、「英語」の言語コードを含むストリーム・エントリを検索する。再生制御部4035は次に、そのストリーム・エントリのストリーム識別情報からPIDを抽出してシステム・ターゲット・デコーダ4023に渡す。それにより、そのPIDのオーディオ・ストリームがシステム・ターゲット・デコーダ4023によって選択されて復号される。これらの処理は、ムービーオブジェクト・ファイル又はBD−Jオブジェクト・ファイルを利用して再生制御部4035に実行させることができる。
プレーヤ変数は再生処理中、再生制御部4035によって再生状態の変化に応じて更新される。特に、SPRM(1)、SPRM(2)、SPRM(21)、及びSPRM(22)が更新される。それらは順に、処理中のオーディオ・ストリーム、字幕ストリーム、セカンダリ・ビデオ・ストリーム、及びセカンダリ・オーディオ・ストリームの各STNを示す。例えばプログラム実行部4034によってSPRM(1)が変更されたときを想定する。再生制御部4035はまず、変更後のSPRM(1)の示すSTNを利用して、再生処理中のPI内のSTNテーブルから、そのSTNを含むストリーム・エントリを検索する。再生制御部4035は次に、そのストリーム・エントリ内のストリーム識別情報からPIDを抽出してシステム・ターゲット・デコーダ4023に渡す。それにより、そのPIDのオーディオ・ストリームがシステム・ターゲット・デコーダ4023によって選択されて復号される。こうして、再生対象のオーディオ・ストリームが切り換えられる。同様に再生対象の字幕及びセカンダリ・ビデオ・ストリームを切り換えることもできる。
≪2Dプレイリスト再生処理≫
図42は、再生制御部4035による2Dプレイリスト再生処理のフローチャートである。2Dプレイリスト再生処理は、2Dプレイリスト・ファイルに従ったプレイリスト再生処理であり、再生制御部4035が静的シナリオ・メモリ4032から2Dプレイリスト・ファイルを読み出すことによって開始される。
ステップS4201では、再生制御部4035はまず、2Dプレイリスト・ファイル内のメインパスからPIを一つ読み出して、カレントのPIとして設定する。再生制御部4035は次に、そのカレントPIのSTNテーブルから、再生対象のエレメンタリ・ストリームのPIDを選択し、かつ、それらの復号に必要な属性情報を特定する。選択されたPIDと属性情報とは、システム・ターゲット・デコーダ4023に指示される。再生制御部4035は更に、2Dプレイリスト・ファイル内のサブパスから、カレントPIに付随するSUB_PIを特定する。その後、処理はステップS4202へ進む。
ステップS4202では、再生制御部4035は、カレントPIから、参照クリップ情報、再生開始時刻IN1を示すPTS#1、及び再生終了時刻OUT1を示すPTS#2を読み出す。その参照クリップ情報から、再生対象のファイル2Dに対応する2Dクリップ情報ファイルが特定される。更に、カレントPIに付随するSUB_PIが存在するときは、それらからも同様な情報が読み出される。その後、処理はステップS4203へ進む。
ステップS4203では、再生制御部4035は、2Dクリップ情報ファイルのエントリ・マップを参照して、PTS#1、#2に対応するファイル2D内のSPN#1、#2を検索する。SUB_PIの示すPTSの対も同様にSPNの対に変換される。その後、処理はステップS4204へ進む。
ステップS4204では、再生制御部4035は、SPN#1、#2から、それぞれに対応するセクタ数を算定する。具体的には、再生制御部4035はまず、SPN#1、#2のそれぞれとソースパケット一つ当たりのデータ量192バイトとの積を求める。再生制御部4035は次に、各積をセクタ一つ当たりのデータ量2048バイトで割ってその商を求める:N1=SPN#1×192/2048、N2=SPN#2×192/2048。商N1、N2は、メインTSのうち、SPN#1、#2のそれぞれが割り当てられたソースパケットよりも前の部分が記録されたセクタの総数に等しい。SUB_PIの示すPTSの対から変換されたSPNの対も同様にセクタ数の対に変換される。その後、処理はステップS4205へ進む。
ステップS4205では、再生制御部4035は、ステップS4204で得られたセクタ数N1、N2のそれぞれから、再生対象の2Dエクステント群の先端と後端とのLBNを特定する。具体的には、再生制御部4035は、再生対象のファイル2Dのファイル・エントリを参照して、2Dエクステント群が記録されたセクタ群の先頭から数えて(N1+1)番目のセクタのLBN=LBN#1と、(N2+1)番目のセクタのLBN=LBN#2とを特定する。再生制御部4035は更に、LBN#1からLBN#2までの範囲をBD−ROMドライブ121に指定する。SUB_PIの示すPTSの対から変換されたセクタ数の対も同様にLBNの対に変換されて、BD−ROMドライブ121に指定される。その結果、指定された範囲のセクタ群から、2Dエクステント群に属するソースパケット群がアラインド・ユニット単位で読み出される。その後、処理はステップS4206へ進む。
ステップS4206では、再生制御部4035は、メインパスに未処理のPIが残されているか否かをチェックする。残されているときは、処理がステップS4201から繰り返される。残されていないときは、処理が終了する。
≪システム・ターゲット・デコーダ≫
図43は、システム・ターゲット・デコーダ4023の機能ブロック図である。図43を参照するに、システム・ターゲット・デコーダ4023は、ソース・デパケタイザ4310、ATCカウンタ4320、第1の27MHzクロック4330、PIDフィルタ4340、STCカウンタ(STC1)4350、第2の27MHzクロック4360、主映像デコーダ4370、副映像デコーダ4371、PGデコーダ4372、IGデコーダ4373、主音声デコーダ4374、副音声デコーダ4375、イメージ・プロセッサ4380、主映像プレーン・メモリ4390、副映像プレーン・メモリ4391、PGプレーン・メモリ4392、IGプレーン・メモリ4393、イメージ・プレーン・メモリ4394、及び音声ミキサ4395を含む。
ソース・デパケタイザ4310はリード・バッファ4021からソースパケットを読み出し、その中からTSパケットを取り出してPIDフィルタ4340へ送出する。ソース・デパケタイザ4310は更にその送出時刻を、各ソースパケットのATSの示す時刻に合わせる。具体的には、ソース・デパケタイザ4310はまず、ATCカウンタ4320が生成するATCの値を監視する。ここで、ATCの値はATCカウンタ4320により、第1の27MHzクロック4330のクロック信号のパルスに応じてインクリメントされる。ソース・デパケタイザ4310は次に、ATCの値がソースパケットのATSと一致した瞬間、そのソースパケットから取り出されたTSパケットをPIDフィルタ4340へ転送する。そのような送出時刻の調節により、ソース・デパケタイザ4310からPIDフィルタ4340へのTSパケットの平均転送速度は、図24に示されているシステムレート2411で規定される値RTSを超えない。
PIDフィルタ4340はまず、ソース・デパケタイザ4310から送出されたTSパケットの含むPIDを監視する。そのPIDが、再生制御部4035から予め指定されたPIDに一致したとき、PIDフィルタ4340はそのTSパケットを選択し、そのPIDの示すエレメンタリ・ストリームの復号に適したデコーダ4370−4375へ転送する。例えばPIDが0x1011であるとき、そのTSパケットは主映像デコーダ4370へ転送される。一方、PIDが、0x1B00−0x1B1F、0x1100−0x111F、0x1A00−0x1A1F、0x1200−0x121F、及び0x1400−0x141Fの各範囲に属するとき、TSパケットはそれぞれ、副映像デコーダ4371、主音声デコーダ4374、副音声デコーダ4375、PGデコーダ4372、及びIGデコーダ4373へ転送される。
PIDフィルタ4340は更に、各TSパケットのPIDを利用してそのTSパケットの中からPCRを検出する。PIDフィルタ4340はそのとき、STCカウンタ4350の値を所定値に設定する。ここで、STCカウンタ4350の値は第2の27MHzクロック4360のクロック信号のパルスに応じてインクリメントされる。また、STCカウンタ4350に設定されるべき値は予め、再生制御部4035からPIDフィルタ4340に指示されている。各デコーダ4370−4375はSTCカウンタ4350の値をSTCとして利用する。すなわち、PIDフィルタ4340から送出されたTSパケットに対する復号処理の時期を、そのTSパケットに含まれるPTS又はDTSの示す時刻に従って調節する。
主映像デコーダ4370は、図43に示されているように、トランスポート・ストリーム・バッファ(TB:Transport Stream Buffer)4301、多重化バッファ(MB:Multiplexing Buffer)4302、エレメンタリ・ストリーム・バッファ(EB:Elementary Stream Buffer)4303、圧縮映像デコーダ(DEC)4304、及び復号ピクチャ・バッファ(DPB:Decoded Picture Buffer)4305を含む。
TB4301、MB4302、及びEB4303はいずれもバッファ・メモリであり、それぞれ主映像デコーダ4370に内蔵のメモリ素子の一領域を利用する。その他に、それらのいずれか又は全てが異なるメモリ素子に分離されていてもよい。TB4301は、PIDフィルタ4340から受信されたTSパケットをそのまま蓄積する。MB4302は、TB4301に蓄積されたTSパケットから復元されたPESパケットを蓄積する。尚、TB4301からMB4302へTSパケットが転送されるとき、そのTSパケットからTSヘッダが除去される。EB4303は、PESパケットから、符号化されたVAUを抽出して格納する。そのVAUには、圧縮ピクチャ、すなわち、Iピクチャ、Bピクチャ、及びPピクチャが格納されている。尚、MB4302からEB4303へデータが転送されるとき、そのPESパケットからPESヘッダが除去される。
DEC4304は、圧縮ピクチャの復号処理に特化したハードウェア・デコーダであり、特にその復号処理のアクセラレータ機能を備えたLSIで構成されている。DEC4304は、EB4303内の各VAUからピクチャを、元のTSパケットに含まれるDTSの示す時刻に復号する。DEC4304はその他に、図11に示されている復号スイッチ情報1101を利用して、各VAUからピクチャをそのDTSに関わらず、順次復号してもよい。その復号処理では、DEC4304は予め、そのVAUのヘッダを解析して、そのVAU内に格納された圧縮ピクチャの圧縮符号化方式とストリーム属性とを特定し、それらに応じて復号方法を選択する。ここで、その圧縮符号化方式は例えば、MPEG−2、MPEG−4 AVC、及びVC1を含む。DEC4304は更に、復号された非圧縮のピクチャをDPB4305へ転送する。
DPB4305は、TB4301、MB4302、及びEB4303と同様なバッファ・メモリであり、主映像デコーダ4370に内蔵のメモリ素子の一領域を利用する。DPB4305はその他に、他のバッファ・メモリ4301、4302、4303とは異なるメモリ素子に分離されていてもよい。DPB4305は復号後のピクチャを一時的に保持する。DEC4304によってPピクチャ又はBピクチャが復号されるとき、DPB4305はDEC4304からの指示に応じて、保持している復号後のピクチャから参照ピクチャを検索してDEC4304に提供する。DPB4305は更に、保持している各ピクチャを、元のTSパケットに含まれるPTSの示す時刻に主映像プレーン・メモリ4390へ書き込む。
副映像デコーダ4371は主映像デコーダ4370と同様の構成を含む。副映像デコーダ4371はまず、PIDフィルタ4340から受信されたセカンダリ・ビデオ・ストリームのTSパケットを非圧縮のピクチャに復号する。副映像デコーダ4371は次に、そのTSパケットに含まれるPTSの示す時刻に非圧縮のピクチャを副映像プレーン・メモリ4391へ書き込む。
PGデコーダ4372は、PIDフィルタ4340から受信されたTSパケットを非圧縮のグラフィックス・データに復号し、そのTSパケットに含まれるPTSの示す時刻にPGプレーン・メモリ4392へ書き込む。
IGデコーダ4373は、PIDフィルタ4340から受信されたTSパケットを非圧縮のグラフィックス・データに復号し、そのTSパケットに含まれるPTSの示す時刻にIGプレーン・メモリ4393へ書き込む。
主音声デコーダ4374はまず、PIDフィルタ4340から受信されたTSパケットを内蔵のバッファに蓄える。主音声デコーダ4374は次に、そのバッファ内の各TSパケットからTSヘッダとPESヘッダとを除去し、残りのデータを非圧縮のLPCM音声データに復号する。主音声デコーダ4374は更にその音声データを、元のTSパケットに含まれるPTSの示す時刻に音声ミキサ4395へ送出する。主音声デコーダ4374は、TSパケットに含まれるプライマリ・オーディオ・ストリームの圧縮符号化方式及びストリーム属性に応じて圧縮音声データの復号方法を選択する。ここで、その圧縮符号化方式は例えばAC−3又はDTSを含む。
副音声デコーダ4375は主音声デコーダ4374と同様の構成を含む。副音声デコーダ4375はまず、PIDフィルタ4340から受信されたセカンダリ・オーディオ・ストリームのTSパケットを非圧縮のLPCM音声データに復号する。副音声デコーダ4375は次に、そのTSパケットに含まれるPTSの示す時刻に非圧縮のLPCM音声データを音声ミキサ4395へ送出する。副音声デコーダ4375は、TSパケットに含まれるセカンダリ・オーディオ・ストリームの圧縮符号化方式及びストリーム属性に応じて圧縮音声データの復号方法を選択する。ここで、その圧縮符号化方式は例えばドルビー・デジタル・プラス又はDTS−HD LBRを含む。
音声ミキサ4395は、主音声デコーダ4374と副音声デコーダ4375とのそれぞれから非圧縮の音声データを受信し、それらを用いてミキシングを行う。音声ミキサ4395は更に、そのミキシングで得られた合成音を表示装置103の内蔵スピーカ103A等へ送出する。
イメージ・プロセッサ4380は、プログラム実行部4034からグラフィックス・データ、すなわちPNG又はJPEGのラスタデータを受信する。イメージ・プロセッサ4380はそのとき、そのグラフィックス・データに対するレンダリング処理を行ってイメージ・プレーン・メモリ4394へ書き込む。
<3D再生装置の構成>
3D再生モードの再生装置102はBD−ROMディスク101から3D映像コンテンツを再生するとき、3D再生装置として動作する。その構成の基本部分は、図40、43に示されている2D再生装置の構成と同様である。従って、以下では2D再生装置の構成からの拡張部分及び変更部分について説明し、基本部分の詳細についての説明は上記の2D再生装置についての説明を援用する。また、2Dプレイリスト再生処理に利用される構成は2D再生装置の構成と同様である。従って、その詳細についての説明も上記の2D再生装置についての説明を援用する。以下の説明では、3Dプレイリスト・ファイルに従った3D映像の再生処理、すなわち3Dプレイリスト再生処理を想定する。
図44は、3D再生装置4400の機能ブロック図である。3D再生装置4400は、BD−ROMドライブ4401、再生部4402、及び制御部4403を含む。再生部4402は、スイッチ4420、第1リード・バッファ4421、第2リード・バッファ4422、システム・ターゲット・デコーダ4423、及びプレーン加算部4424を含む。制御部4403は、動的シナリオ・メモリ4431、静的シナリオ・メモリ4432、ユーザイベント処理部4433、プログラム実行部4434、再生制御部4435、及びプレーヤ変数記憶部4436を含む。再生部4402と制御部4403とは互いに異なる集積回路に実装されている。その他に、両者が単一の集積回路に統合されていてもよい。特に、動的シナリオ・メモリ4431、静的シナリオ・メモリ4432、ユーザイベント処理部4433、及びプログラム実行部4434は、図40に示されている2D再生装置内のものと同様である。従って、それらの詳細についての説明は上記の2D再生装置についての説明を援用する。
BD−ROMドライブ4401は、図40に示されている2D再生装置内のもの4001と同様な構成要素を含む。BD−ROMドライブ4401は、再生制御部4435からLBNの範囲が指示されたとき、その範囲の示すBD−ROMディスク101上のセクタ群からデータを読み出す。特にファイルSSのエクステント、すなわちエクステントSSに属するソースパケット群は、BD−ROMドライブ4401からスイッチ4420へ転送される。ここで、各エクステントSSは、図13に示されているとおり、ベースビューとディペンデントビューとのデータ・ブロックの対を一つ以上含む。それらのデータ・ブロックは異なるリード・バッファ4421、4422へパラレルに転送されなければならない。従って、BD−ROMドライブ4401には2D再生装置内のBD−ROMドライブ4001以上のアクセス・スピードが求められる。
スイッチ4420はBD−ROMドライブ4401からはエクステントSSを受信する。一方、スイッチ4420は再生制御部4435からは、そのエクステントSSに含まれる各データ・ブロックの境界を示す情報を受信する。その情報は、例えばそのエクステントSSの先頭から各境界までのソースパケット数を示す。再生制御部4435はその情報を、クリップ情報ファイル内のエクステント起点に基づいて生成する。スイッチ4420は更に、その情報を利用して各エクステントSSからベースビュー・エクステントを抽出して第1リード・バッファ4421へ送出する。一方、スイッチ4420は残りのディペンデントビュー・エクステントを第2リード・バッファ4422へ送出する。
第1リード・バッファ4421と第2リード・バッファ4422とはいずれも、再生部4402内のメモリ素子を利用したバッファ・メモリである。特に単一のメモリ素子内の異なる領域が各リード・バッファ4421、4422として利用される。その他に、異なるメモリ素子が個別に各リード・バッファ4421、4422として利用されてもよい。第1リード・バッファ4421はスイッチ4420からベースビュー・エクステントを受信して格納する。第2リード・バッファ4422はスイッチ4420からディペンデントビュー・エクステントを受信して格納する。
システム・ターゲット・デコーダ4423はまず、第1リード・バッファ4421に格納されたベースビュー・エクステントと、第2リード・バッファ4422に格納されたディペンデントビュー・エクステントとから交互にソースパケットを読み出す。システム・ターゲット・デコーダ4423は次に、多重分離処理によって各ソースパケットからエレメンタリ・ストリームを分離し、更に分離されたものの中から、再生制御部4435から指示されたPIDの示すものを復号する。システム・ターゲット・デコーダ4423は続いて、復号後のエレメンタリ・ストリームをその種類別に内蔵のプレーン・メモリに書き込む。ベースビュー・ビデオ・ストリームは左映像プレーン・メモリに書き込まれ、ディペンデントビュー・ビデオ・ストリームは右映像プレーン・メモリに書き込まれる。一方、セカンダリ・ビデオ・ストリームは副映像プレーン・メモリに書き込まれ、IGストリームはIGプレーン・メモリに書き込まれ、PGストリームはPGプレーン・メモリに書き込まれる。ここで、ビデオ・ストリーム以外のストリーム・データがベースビューとディペンデントビューとのストリーム・データの対から成るとき、対応するプレーン・メモリはレフトビューとライトビューとの両方のプレーン・データに対して個別に用意される。システム・ターゲット・デコーダ4423はその他に、プログラム実行部4434からのグラフィックス・データ、例えばJPEG又はPNG等のラスタデータに対してレンダリング処理を行ってイメージ・プレーン・メモリに書き込む。
システム・ターゲット・デコーダ4423は、左映像と右映像との各プレーン・メモリからのプレーン・データの出力を次のように、B−D表示モードとB−B表示モードとのそれぞれに対応させる。再生制御部4435からB−D表示モードが指示されたとき、システム・ターゲット・デコーダ4423は左映像と右映像との各プレーン・メモリから交互にプレーン・データを出力する。一方、再生制御部4435からB−B表示モードが指示されたとき、システム・ターゲット・デコーダ4423は動作モードを3D再生モードに維持したまま、左映像と右映像とのいずれかのプレーン・メモリからのみプレーン・データをフレーム当たり二回ずつ出力する。
システム・ターゲット・デコーダ4423は更に、グラフィックス・プレーン・メモリからのグラフィックス・プレーン・データの出力を次のように、2プレーン・モード、1プレーン+オフセット・モード、及び1プレーン+ゼロ・オフセット・モードのそれぞれに対応させる。ここで、グラフィックス・プレーン・メモリは、PGプレーン・メモリ、IGプレーン・メモリ、及びイメージ・プレーン・メモリを含む。再生制御部4435から2プレーン・モードが指示されたとき、システム・ターゲット・デコーダ4423は各グラフィックス・プレーン・メモリからレフトビューとライトビューとのグラフィックス・プレーン・データを交互に出力する。再生制御部4435から1プレーン+オフセット・モード又は1プレーン+ゼロ・オフセット・モードが指示されたとき、システム・ターゲット・デコーダ4423は動作モードを3D再生モードに維持したまま、各グラフィックス・プレーン・メモリからグラフィックス・プレーン・データを出力する。再生制御部4435から1プレーン+オフセット・モードが指示されたときは更に、システム・ターゲット・デコーダ4423は、再生制御部4435によって指定されたオフセット値をプレーン加算部4424に渡す。一方、再生制御部4435から1プレーン+ゼロ・オフセット・モードが指示されたときは、システム・ターゲット・デコーダ4423はオフセット値として“0”をプレーン加算部4424に渡す。
再生制御部4435は、3Dプレイリスト再生処理をプログラム実行部4434等から命じられたとき、まず、静的シナリオ・メモリ4432に格納された3Dプレイリスト・ファイルを参照する。再生制御部4435は次に、その3Dプレイリスト・ファイルに従い、図27の(e)の説明で述べた手順で、読み出し対象の3Dエクステントが記録されたセクタ群のLBNの範囲をBD−ROMドライブ4401に指示する。一方、再生制御部4435は、静的シナリオ・メモリ4405に格納されたクリップ情報ファイル内のエクステント起点を利用して、各3Dエクステントに含まれるデータ・ブロックの境界を示す情報を生成する。その情報が再生制御部4435からスイッチ4420へ送出される。
再生制御部4435はその他に、3Dプレイリスト・ファイル内のSTNテーブルとSTNテーブルSSとを利用して、システム・ターゲット・デコーダ4423とプレーン加算部4424との動作条件を制御する。例えば、再生対象のエレメンタリ・ストリームのPIDが選択されて、システム・ターゲット・デコーダ4403に渡される。また、STNテーブルSSのうち、ポップアップ期間のオフセット3511に応じて各プレーンの表示モードが選択されてシステム・ターゲット・デコーダ4423とプレーン加算部4424とに指示される。
プレーヤ変数記憶部4436は、2D再生装置内のもの4036と同様に、図41に示されているSPRMを含む。しかし、図41では予備であったSPRM(24)−(32)のいずれか二つは、図39に示されている第1フラグと第2フラグとを個別に含む。例えば、SPRM(24)が第1フラグを含み、SPRM(25)が第2フラグを含む。その場合、SPRM(24)が“0”であるときは再生装置102が2D映像の再生のみに対応可能であり、“1”であるときは3D映像の再生にも対応可能である。SPRM(25)が“0”であるときは再生装置102がL/Rモードであり、“1”であるときはデプス・モードである。
プレーン加算部4424はシステム・ターゲット・デコーダ4423から各種のプレーン・データを受信し、それらを互いに重畳して一つのフレーム又はフィールドに合成する。特にL/Rモードでは、左映像プレーン・データはレフトビュー・ビデオ・プレーンを表し、右映像プレーン・データはライトビュー・ビデオ・プレーンを表す。従って、プレーン加算部4424は、左映像プレーン・データには、他のプレーン・データのうち、レフトビューを表すものを重畳し、右映像プレーン・データには、ライトビューを表すものを重畳する。一方、デプス・モードでは、右映像プレーン・データは、左映像プレーン・データの表すビデオ・プレーンに対するデプスマップを表す。従って、プレーン加算部4424はまず、両方の映像プレーン・データからレフトビューとライトビューとのビデオ・プレーン・データの対を生成する。その後、プレーン加算部4424はL/Rモードでの合成処理と同様に合成処理を行う。
プレーン加算部4424は再生制御部4435から、副映像プレーン、PGプレーン、IGプレーン、又はイメージ・プレーンの表示モードとして1プレーン+オフセット・モード又は1プレーン+ゼロ・オフセット・モードが指示されているとき、システム・ターゲット・デコーダ4423から受信されたプレーン・データに対してクロッピング処理を行う。それにより、レフトビューとライトビューとのプレーン・データの対が生成される。特に1プレーン+オフセット・モードが指示されているとき、そのクロッピング処理では、システム・ターゲット・デコーダ4403又はプログラム実行部4434から指示されたオフセット値が利用される。一方、1プレーン+ゼロ・オフセット・モードが指示されているとき、そのクロッピング処理ではオフセット値が“0”に設定されている。従って、同じプレーン・データが、レフトビューとライトビューとを表すものとして繰り返し出力される。その後、プレーン加算部4424はL/Rモードでの合成処理と同様に合成処理を行う。合成後のフレーム又はフィールドは表示装置103へ送出され、その画面に表示される。
≪3Dプレイリスト再生処理≫
図45は、再生制御部4435による3Dプレイリスト再生処理のフローチャートである。3Dプレイリスト再生処理は、3Dプレイリスト・ファイルに従ったプレイリスト再生処理であり、再生制御部4435が静的シナリオ・メモリ4432から3Dプレイリスト・ファイルを読み出すことによって開始される。
ステップS4501では、再生制御部4435はまず、3Dプレイリスト・ファイル内のメインパスからPIを一つ読み出して、カレントのPIとして設定する。再生制御部4435は次に、そのカレントPIのSTNテーブルから、再生対象のエレメンタリ・ストリームのPIDを選択し、かつ、それらの復号に必要な属性情報を特定する。再生制御部4435は更に、3Dプレイリスト・ファイル内のSTNテーブルSS3430のうち、カレントPIに対応するものから、再生対象のエレメンタリ・ストリームとして追加されるべきもののPIDを選択し、かつ、それらの復号に必要な属性情報を特定する。選択されたPIDと属性情報とは、システム・ターゲット・デコーダ4423に指示される。再生制御部4435はその他に、3Dプレイリスト・ファイル内のサブパスから、カレントPIと同時に参照されるべきSUB_PIを特定し、カレントのSUB_PIとして設定する。その後、処理はステップS4502へ進む。
ステップS4502では、再生制御部4435は、カレントのPIとSUB_PIとのそれぞれから、参照クリップ情報、再生開始時刻IN1を示すPTS#1、及び再生終了時刻OUT1を示すPTS#2を読み出す。その参照クリップ情報から、再生対象のファイル2DとファイルDEPとのそれぞれに対応するクリップ情報ファイルが特定される。その後、処理はステップS4503へ進む。
ステップS4503では、再生制御部4435は、図37の説明で述べたように、ステップS4502で特定されたクリップ情報ファイルの各エントリ・マップを参照して、PTS#1、#2に対応するファイル2D内のSPN#1、#2とファイルDEP内のSPN#11、#12とを検索する。再生制御部4435は更に、図27の(e)の説明で述べたように、各クリップ情報ファイルのエクステント起点を利用して、ファイルSSの先頭から再生開始位置までのソースパケット数SPN#21をSPN#1、#11から算定し、ファイルSSの先頭から再生終了位置までのソースパケット数SPN#22をSPN#2、#12から算定する。具体的には、再生制御部4435は、まず2Dクリップ情報ファイルのエクステント起点の示すSPNの中から、SPN#1以下で最大のもの“Am”を検索し、ディペンデントビュー・クリップ情報ファイルのエクステント起点の示すSPNの中から、SPN#11以下で最大のもの“Bm”を検索する。再生制御部4435は続いて、検索されたSPNの和Am+Bmを求めてSPN#21として決定する。再生制御部4435は、次に2Dクリップ情報ファイルのエクステント起点の示すSPNの中から、SPN#2よりも大きく、かつ最小のもの“An”を検索し、ディペンデントビュー・クリップ情報ファイルのエクステント起点の示すSPNの中から、SPN#12より大きく、かつ最小のもの“Bn”を検索する。再生制御部4435は続いて、検索されたSPNの和An+Bnを求めてSPN#22として決定する。その後、処理はステップS4504へ進む。
ステップS4504では、再生制御部4435は、ステップS4503で決定されたSPN#21、#22をセクタ数の対N1、N2に変換する。具体的には、再生制御部4435はまず、SPN#21とソースパケット一つ当たりのデータ量192バイトとの積を求める。再生制御部4435は次に、その積をセクタ一つ当たりのデータ量2048バイトで割ったときの商SPN#21×192/2048を求める。この商は、ファイルSSの先頭から再生開始位置の直前までのセクタ数N1に等しい。同様に、再生制御部4435は、SPN#22から商SPN#22×192/2048を求める。この商は、ファイルSSの先頭から再生終了位置の直前までのセクタ数N2に等しい。その後、処理はステップS4505へ進む。
ステップS4505では、再生制御部4435は、ステップS4504で得られたセクタ数N1、N2のそれぞれから、再生対象のエクステントSS群の先端と後端とのLBNを特定する。具体的には、再生制御部4435は、再生対象のファイルSSのファイル・エントリを参照して、エクステントSS群が記録されたセクタ群の先頭から数えて(N1+1)番目のセクタのLBN=LBN#1と、(N2+1)番目のセクタのLBN=LBN#2とを特定する。再生制御部4435は更に、LBN#1からLBN#2までの範囲をBD−ROMドライブ121に指定する。その結果、指定された範囲のセクタ群から、エクステントSS群に属するソースパケット群がアラインド・ユニット単位で読み出される。その後、処理はステップS4506へ進む。
ステップS4506では、再生制御部4435は、ステップS4503で利用されたクリップ情報ファイルのエクステント起点を利用して、エクステントSS群に含まれるディペンデントビュー・データ・ブロックとベースビュー・データ・ブロックとの間の境界を示す情報(以下、データ・ブロック境界情報と呼ぶ。)を生成してスイッチ4420へ送出する。具体的な例として、再生開始位置を示すSPN#21が、各エクステント起点の示すSPNの和An+Bnに等しく、再生終了位置を示すSPN#22が、各エクステント起点の示すSPNの和Am+Bmに等しいときを想定する。そのとき、再生制御部4435は、各エクステント起点から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)を求めて、データ・ブロック境界情報としてスイッチ4420へ送出する。図27の(e)に示されているとおり、この列は、エクステントSSに含まれる各データ・ブロックのソースパケット数を示す。スイッチ4420は、BD−ROMドライブ4401から受信されるエクステントSSのソースパケット数を0からカウントし、そのカウントが、データ・ブロック境界情報の示すSPNの差と一致する度に、ソースパケットの送出先を二つのリード・バッファ4421、4422間で切り換え、かつカウントを0にリセットする。その結果、エクステントSSの先頭から{B(n+1)−Bn}個のソースパケットは最初のディペンデントビュー・エクステントとして第2リード・バッファ4422へ送出され、続く{A(n+1)−An}個のソースパケットは最初のベースビュー・エクステントとして第1リード・バッファ4421へ送出される。以降も同様に、スイッチ4420によって受信されるソースパケットの数が、データ・ブロック境界情報の示すSPNの差と一致する度に、エクステントSSからディペンデントビューとベースビューとの各エクステントが交互に抽出される。
ステップS4507では、再生制御部4435は、メインパスに未処理のPIが残されているか否かをチェックする。残されているときは、処理がステップS4501から繰り返される。残されていないときは、処理が終了する。
≪システム・ターゲット・デコーダ≫
図46は、システム・ターゲット・デコーダ4423の機能ブロック図である。図46に示されている構成要素は、図40に示されている2D再生装置のもの4023とは次の二点で異なる:(1)リード・バッファから各デコーダへの入力系統が二重化されている点、並びに、(2)主映像デコーダは3D再生モードに対応可能であり、副映像デコーダ、PGデコーダ、及びIGデコーダは2プレーン・モードに対応可能である点。すなわち、それらの映像デコーダはいずれも、ベースビュー・ビデオ・ストリームとディペンデントビュー・ビデオ・ストリームとを交互に復号できる。一方、主音声デコーダ、副音声デコーダ、音声ミキサ、イメージ・プロセッサ、及び各プレーン・メモリは、図46に示されている2D再生装置のものと同様である。従って、以下では、図46に示されている構成要素のうち、図40に示されているものとは異なるものについて説明し、同様なものの詳細についての説明は図40についての説明を援用する。更に、各映像デコーダはいずれも同様な構造を持つので、以下では主映像デコーダ4615の構造について説明する。同様な説明は他の映像デコーダの構造についても成立する。
第1ソース・デパケタイザ4611は、第1リード・バッファ4421からソースパケットを読み出し、更にその中からTSパケットを抽出して第1PIDフィルタ4613へ送出する。第2ソース・デパケタイザ4612は、第2リード・バッファ4422からソースパケットを読み出し、更にその中からTSパケットを抽出して第2PIDフィルタ4614へ送出する。各ソース・デパケタイザ4611、4612は更に、各TSパケットの送出時刻を、各ソースパケットのATSの示す時刻に合わせる。その同期方法は、図43に示されているソース・デパケタイザ4310による方法と同様である。従って、その詳細についての説明は図43についての説明を援用する。そのような送出時刻の調節により、第1ソース・デパケタイザ4611から第1PIDフィルタ4613へのTSパケットの平均転送速度RTS1は、2Dクリップ情報ファイルの示すシステムレートを超えない。同様に、第2ソース・デパケタイザ4612から第2PIDフィルタ4614へのTSパケットの平均転送速度RTS2は、ディペンデントビュー・クリップ情報ファイルの示すシステムレートを超えない。
第1PIDフィルタ4613は、第1ソース・デパケタイザ4611からTSパケットを受信する度に、そのPIDを選択対象のPIDと比較する。その選択対象のPIDは再生制御部4635によって予め、3Dプレイリスト・ファイル内のSTNテーブルに従って指定されている。両方のPIDが一致したとき、第1PIDフィルタ4613はそのTSパケットを、そのPIDに割り当てられたデコーダへ転送する。例えば、PIDが0x1011であるとき、そのTSパケットは主映像デコーダ4615内のTB(1)4101へ転送される。その他に、PIDが、0x1B00−0x1B1F、0x1100−0x111F、0x1A00−0x1A1F、0x1200−0x121F、及び0x1400−0x141Fの各範囲に属するとき、対応するTSパケットはそれぞれ、副映像デコーダ、主音声デコーダ、副音声デコーダ、PGデコーダ、及びIGデコーダへ転送される。
第2PIDフィルタ4614は、第2ソース・デパケタイザ4612からTSパケットを受信する度に、そのPIDを選択対象のPIDと比較する。その選択対象のPIDは再生制御部4635によって予め、3Dプレイリスト・ファイル内のSTNテーブルSSに従って指定されている。両方のPIDが一致したとき、第2PIDフィルタ4614はそのTSパケットを、そのPIDに割り当てられたデコーダへ転送する。例えば、PIDが0x1012又は0x1013であるとき、そのTSパケットは主映像デコーダ4615内のTB(2)4608へ転送される。その他に、PIDが、0x1B20−0x1B3F、0x1220−0x127F、及び0x1420−0x147Fの各範囲に属するとき、対応するTSパケットはそれぞれ、副映像デコーダ、PGデコーダ、及びIGデコーダへ転送される。
主映像デコーダ4615は、TB(1)4601、MB(1)4602、EB(1)4603、TB(2)4608、MB(2)4609、EB(2)4610、バッファ・スイッチ4606、DEC4604、DPB4605、及びピクチャ・スイッチ4607を含む。TB(1)4601、MB(1)4602、EB(1)4603、TB(2)4608、MB(2)4609、EB(2)4610、及びDPB4605はいずれもバッファ・メモリである。各バッファ・メモリは、主映像デコーダ4615に内蔵されたメモリ素子の一領域を利用する。その他に、それらのバッファ・メモリのいずれか又は全てが、異なるメモリ素子に分離されていてもよい。
TB(1)4601は、ベースビュー・ビデオ・ストリームを含むTSパケットを第1PIDフィルタ4613から受信してそのまま蓄積する。MB(1)4602は、TB(1)4601に蓄積されたTSパケットからPESパケットを復元して蓄積する。そのとき、各TSパケットからTSヘッダが除去される。EB(1)4603は、MB(1)4602に蓄積されたPESパケットから、符号化されたVAUを抽出して蓄積する。そのとき、各PESパケットからPESヘッダが除去される。
TB(2)4608は、ディペンデントビュー・ビデオ・ストリームを含むTSパケットを第2PIDフィルタ4614から受信してそのまま蓄積する。MB(2)4609は、TB(2)4608に蓄積されたTSパケットからPESパケットを復元して蓄積する。そのとき、各TSパケットからTSヘッダが除去される。EB(2)4610は、MB(2)4609に蓄積されたPESパケットから、符号化されたVAUを抽出して蓄積する。そのとき、各PESパケットからPESヘッダが除去される。
バッファ・スイッチ4606は、EB(1)4603とEB(2)4610とのそれぞれに蓄積されたVAUのヘッダをDEC4604からの要求に応じて転送する。バッファ・スイッチ4606は更に、そのVAUの圧縮ピクチャ・データを、元のTSパケットに含まれるDTSの示す時刻にDEC4604へ転送する。ここで、ベースビュー・ビデオ・ストリームとディペンデントビュー・ビデオ・ストリームとの間では、同じ3D・VAUに属する一対のピクチャのDTSが等しい。従って、バッファ・スイッチ4606は、DTSの等しい一対のVAUのうち、EB(1)4603に蓄積された方を先にDEC4604へ転送する。その他に、バッファ・スイッチ4606は、そのVAU内の復号スイッチ情報1101をDEC4604に返信させてもよい。その場合、バッファ・スイッチ4606はその復号スイッチ情報1101を使って、次のVAUをEB(1)4603とEB(2)4610とのいずれから転送すべきか決定できる。
DEC4604は、図43に示されているDEC4304と同様、圧縮ピクチャの復号処理に特化したハードウェア・デコーダであり、特にその復号処理のアクセラレータ機能を備えたLSIで構成されている。DEC4604は、バッファ・スイッチ4606から転送された圧縮ピクチャ・データを順次復号する。その復号処理では、DEC4604は予め、各VAUのヘッダを解析して、そのVAU内に格納された圧縮ピクチャの圧縮符号化方式とストリーム属性とを特定し、それらに応じて復号方法を選択する。ここで、その圧縮符号化方式は例えば、MPEG−2、MPEG−4 AVC、及びVC1を含む。DEC4604は更に、復号された非圧縮のピクチャをDPB4605へ転送する。
DPB4605は、復号された非圧縮のピクチャを一時的に保持する。DEC4604がPピクチャ及びBピクチャを復号するとき、DPB4605はDEC4604からの要求に応じて、保持されている非圧縮のピクチャの中から参照ピクチャを検索してDEC4604に提供する。
ピクチャ・スイッチ4607は、DPB4605から非圧縮の各ピクチャを、元のTSパケットに含まれるPTSの示す時刻に、左映像プレーン・メモリ4620と右映像プレーン・メモリ4621とのいずれかに書き込む。ここで、同じ3D・VAUに属するベースビュー・ピクチャとディペンデントビュー・ピクチャとではPTSが等しい。従って、ピクチャ・スイッチ4607は、DPB4605に保持された、PTSの等しい一対のピクチャのうち、ベースビュー・ピクチャを先に左映像プレーン・メモリ4620に書き込み、続いてディペンデントビュー・ピクチャを右映像プレーン・メモリ4621に書き込む。
≪プレーン加算部≫
図47はプレーン加算部4424の機能ブロック図である。図47を参照するに、プレーン加算部4424は、視差映像生成部4710、スイッチ4720、四つのクロッピング処理部4731−4734、及び四つの加算部4741−4744を含む。
視差映像生成部4710は、システム・ターゲット・デコーダ4423から左映像プレーン・データ4701と右映像プレーン・データ4702とを受信する。L/Rモードの再生装置102では、左映像プレーン・データ4701はレフトビュー・ビデオ・プレーンを表し、右映像プレーン・データ4702はライトビュー・ビデオ・プレーンを表す。そのとき、視差映像生成部4710は各ビデオ・プレーン・データ4701、4702をそのままスイッチ4720へ送出する。一方、デプス・モードの再生装置102では、左映像プレーン・データ4701は2D映像のビデオ・プレーンを表し、右映像プレーン・データ4702はその2D映像に対するデプスマップを表す。そのとき、視差映像生成部4710は、まずそのデプスマップからその2D映像の各部の両眼視差を計算する。視差映像生成部4710は次に、左映像プレーン・データ4701を加工して、ビデオ・プレーンにおけるその2D映像の各部の表示位置を、計算された両眼視差に応じて左右に移動させる。それにより、レフトビューとライトビューとを表すビデオ・プレーンの対が生成される。視差映像生成部4710は更に、そのビデオ・プレーンの対を左映像と右映像とのプレーン・データの対としてスイッチ4720へ送出する。
スイッチ4720は、再生制御部4435からB−D表示モードが指示されているとき、PTSの等しい左映像プレーン・データ4701と右映像プレーン・データ4702とをその順で第1加算部4741へ送出する。スイッチ4720は、再生制御部4435からB−B表示モードが指示されているとき、PTSの等しい左映像プレーン・データ4701と右映像プレーン・データ4702との一方をフレーム当たり二回ずつ、第1加算部4741へ送出し、他方を破棄する。
各クロッピング処理部4731−4734は、視差映像生成部4710とスイッチ4720との対と同様な構成を含む。2プレーン・モードではそれらの構成が利用される。特にデプス・モードの再生装置102では、システム・ターゲット・デコーダ4423からの各プレーン・データは、各クロッピング処理部4731−4734内の視差映像生成部によってレフトビューとライトビューとのプレーン・データの対に変換される。再生制御部4435からB−D表示モードが指示されているとき、レフトビューとライトビューとのプレーン・データが交互に各加算部4741−4744へ送出される。一方、再生制御部4435からB−B表示モードが指示されているとき、レフトビューとライトビューとのプレーン・データの一方がフレーム当たり二回ずつ各加算部4741−4744へ送出され、他方は破棄される。
1プレーン+オフセット・モードでは、第1クロッピング処理部4731は、システム・ターゲット・デコーダ4423からオフセット値4751を受信し、それを利用して副映像プレーン・データ4703に対してクロッピング処理を行う。それにより、その副映像プレーン・データ4703は、レフトビューとライトビューとを表す一対の副映像プレーン・データに変換されて交互に送出される。一方、1プレーン+ゼロ・オフセット・モードではその副映像プレーン・データ4703が二回繰り返して送出される。同様に、第2クロッピング処理部4732はPGプレーン・データ4704に対してクロッピング処理を行い、第3クロッピング処理部4733はIGプレーン・データ4705に対してクロッピング処理を行う。
イメージ・プレーン・データ4706は、プログラム実行部4434からシステム・ターゲット・デコーダ4423へ転送されたグラフィックス・データが、システム・ターゲット・デコーダ4423によって復号されたものである。そのグラフィックス・データはJPEG又はPNG等のラスタデータであり、メニュー等のGUI用グラフィックス部品を表す。第4クロッピング処理部4734はイメージ・プレーン・データ4706に対するクロッピング処理を他のクロッピング処理部4731−4733と同様に行う。但し、第4クロッピング処理部4734は他のクロッピング処理部4731−4733とは異なり、オフセット値をシステム・ターゲット・デコーダ4423ではなく、プログラムAPI4752から受け取る。ここで、プログラムAPI4752はプログラム実行部4434によって実行される。それにより、グラフィックス・データの表すイメージの奥行きに相当するオフセット値が算出されて、第4クロッピング処理部4734に渡される。
図48は、各クロッピング処理部4731−4734によるクロッピング処理のフローチャートである。各クロッピング処理部4731−4734は、処理対象のプレーン・データを受信したときにそのクロッピング処理を開始する。以下、第2クロッピング処理部4732がPGプレーン・データ4704に対してクロッピング処理を行う場合を例に挙げる。他のクロッピング処理部4731、4733、4734はそれぞれ、副映像プレーン・データ4703、IGプレーン・データ4705、及びイメージ・プレーン・データ4706に対して同様な処理を行う。更に、オフセット値の符号が正であるときは、「各プレーン・データの表す3D映像の奥行きが画面より手前である」とする。
ステップS4801では、第2クロッピング処理部4732はまず、オフセット値4751の中から、PGプレーンに割り当てられたものを検索する。第2クロッピング処理部4732は次に、スイッチ4720によって選択されたビデオ・プレーン・データがレフトビューを表すか否かチェックする。ビデオ・プレーン・データがレフトビューを表すとき、処理はステップS4802へ進む。ビデオ・プレーン・データがライトビューを表すとき、処理はステップS4803へ進む。
ステップS4802では、第2クロッピング処理部4732は、PGプレーン・データ4704の示す各グラフィックス映像の表示位置をオフセット値だけ右に変化させる。ここで、そのオフセット値の符号が負であるときは、その表示位置を左に変化させる。また、1プレーン+ゼロ・オフセット・モードではオフセット値が“0”であるので、元のPGプレーン・データ4704がそのまま維持される。その後、処理はステップS4804へ進む。
ステップS4803では、第2クロッピング処理部4732は、PGプレーン・データ4704の示す各グラフィックス映像の表示位置をオフセット値だけ左に変化させる。ここで、そのオフセット値の符号が負であるときは、その表示位置を右に変化させる。また、1プレーン+ゼロ・オフセット・モードではオフセット値が“0”であるので、元のPGプレーン・データ4704がそのまま維持される。その後、処理はステップS4804へ進む。
ステップS4804では、第2クロッピング処理部4732は、処理後のPGプレーン・データ4704を第3クロッピング処理部4734へ送出する。その後、処理は終了する。
図49の(a)、(b)は、第2クロッピング処理部4732によるクロッピング処理を示す模式図である。図49の(a)、(b)はそれぞれ、正のオフセット値に基づいてPGプレーン・データ4704から生成されるレフトビューとライトビューとのPGプレーン・データ4902L、4902Rを表す。ここで、PGプレーン・データ4704の表す3D映像の奥行きが画面よりも手前であるときに、オフセット値の符号は正であるとする。
図49の(a)を参照するに、第2クロッピング処理部4732はまず、PGプレーン・データ4704内の各画素データの位置を元の位置から、オフセット値に等しい画素数4901Lだけ右に変化させる。オフセット値の符号が負であるときは、左に変化させる。第2クロッピング処理部4732は次に、PGプレーン・データ4704の元の範囲から右(又は左)にはみ出ている画素データ群4902Lを除去する。こうして、残りの画素データ群4904LがレフトビューPGプレーン・データとして出力される。
図49の(b)を参照するに、第2クロッピング処理部4732はまず、PGプレーン・データ4704内の各画素データの位置を元の位置から、オフセット値に等しい画素数4901Rだけ左に変化させる。オフセット値の符号が負であるときは、右に変化させる。第2クロッピング処理部4732は次に、PGプレーン・データ4704の元の範囲から左(又は右)にはみ出ている画素データ群4902Rを除去する。こうして、残りの画素データ群4904RがライトビューPGプレーン・データとして出力される。
図50の(a)、(b)、(c)はそれぞれ、図49の(a)、(b)に示されているレフトビューとライトビューとのPGプレーン・データの表す2D映像、すなわちレフトビューとライトビューとのPGプレーン、及びそれらから視聴者に知覚される3D映像を示す模式図である。図50の(a)を参照するに、レフトビューPGプレーン5001Lは画面5002の範囲からオフセット値4901Lだけ右に変位している。その結果、レフトビューPGプレーン5001L内の字幕の2D映像5003は、元の位置よりもオフセット値4901Lだけ右に変位して見える。図50の(b)を参照するに、ライトビューPGプレーン5001Rは逆に、画面5002の範囲からオフセット値4901Rだけ左に変位している。その結果、ライトビューPGプレーン5001R内の字幕の2D映像5003は、元の位置よりもオフセット値4901Rだけ左に変位して見える。それらのPGプレーン5001L、5001Rを画面5002に交互に表示するとき、図50の(c)に示されているように、視聴者5004には字幕の3D映像5005が画面5002よりも手前に見える。そのときの3D映像5005と画面5002との間の距離はオフセット値4901L、4901Rによって調節可能である。PGプレーン・データ4904内の各画素データの位置を、図50の(a)、(b)に示されている方向とは逆に変化させたとき、視聴者5004には字幕の3D映像5005が画面5002よりも奥に見える。
このように、1プレーン+オフセット・モードではクリッピング処理を利用して、一つのプレーン・データから、レフトビューとライトビューとのプレーン・データの対が生成される。それにより、一つのプレーン・データからでも、視差映像を表示することができる。すなわち、平面的なイメージに対して奥行き感を与えることができる。特に視聴者にその平面的なイメージを画面から浮かび上がるようにも、画面の奥に沈み込むようにも見せることができる。尚、1プレーン+ゼロ・オフセット・モードではオフセット値が“0”であるので、平面的なイメージがそのまま維持される。
図47を再び参照するに、第1加算部4741は、スイッチ4720からビデオ・プレーン・データを受信し、第1クロッピング処理部4731から副映像プレーン・データを受信する。第1加算部4741はそのとき、それらのビデオ・プレーン・データと副映像プレーン・データとを一組ずつ重畳して第2加算部4742に渡す。第2加算部4742は、第2クロッピング処理部4732からPGプレーン・データを受信し、第1加算部4741からのプレーン・データに重畳して第3加算部4743に渡す。第3加算部4743は、第3クロッピング処理部4733からIGプレーン・データを受信し、第2加算部4742からのプレーン・データに重畳して第4加算部4744に渡す。第4加算部4744は、第4クロッピング処理部4734からイメージ・プレーン・データを受信し、第3加算部4743からのプレーン・データに重畳して表示装置103へ送出する。その結果、左映像プレーン・データ4701と右映像プレーン・データ4702とのそれぞれに、図47に矢印4700で示されている順序で、副映像プレーン・データ4703、PGプレーン・データ4704、IGプレーン・データ4705、及びイメージ・プレーン・データ4706は重畳される。それらの合成処理により、各プレーン・データの示す映像は表示装置103の画面上に、左映像プレーン又は右映像プレーン、副映像プレーン、IGプレーン、PGプレーン、及びイメージ・プレーンの順に重ねられたように表示される。
プレーン加算部4724は上記の処理の他に、四つの加算部4741−4744によって合成されたプレーン・データの出力形式を、表示装置103等、そのデータの出力先の装置による3D映像の表示方式に合わせて変換する。例えば出力先の装置が経時分離方式を利用するとき、プレーン加算部4724は合成後のプレーン・データを一つの映像フレーム又はフィールドとして送出する。一方、出力先の装置がレンチキュラーレンズを利用するとき、プレーン加算部4724は内蔵のバッファ・メモリを利用して、レフトビューとライトビューとのプレーン・データの対を一つの映像フレーム又はフィールドに合成して送出する。具体的には、プレーン加算部4724は、先に合成されたレフトビュー・プレーン・データを一旦、そのバッファ・メモリに格納して保持する。プレーン加算部4724は続いて、ライトビュー・プレーン・データを合成して、バッファ・メモリに保持されたレフトビュー・プレーン・データと更に合成する。その合成では、レフトビューとライトビューとの各プレーン・データが縦方向に細長い短冊形の小領域に分割され、各小領域が一つのフレーム又はフィールドの中に横方向に交互に並べられて一つのフレーム又はフィールドに再構成される。こうして、レフトビューとライトビューとのプレーン・データの対が一つの映像フレーム又はフィールドに合成される。プレーン加算部4724はその合成後の映像フレーム又はフィールドを出力先の装置へ送出する。
<変形例>
(A)本発明の実施形態1では、ベースビュー・ビデオ・ストリームがレフトビューを表し、ディペンデントビュー・ビデオ・ストリームがライトビューを表す。逆に、ベースビュー・ビデオ・ストリームがライトビューを表し、ディペンデントビュー・ビデオ・ストリームがレフトビューを表してもよい。
(B)3D映像のAVストリーム・ファイルでは、図23に示されているPMT2310に3Dディスクリプタが追加されてもよい。3Dディスクリプタは、3D映像の再生方式に関してAVストリーム・ファイル全体に共通する情報であり、特に3D方式情報を含む。3D方式情報は、L/Rモード又はデプス・モード等、3D映像のAVストリーム・ファイルの再生方式を示す。更に、各ストリーム情報2303に3Dストリーム・ディスクリプタが追加されてもよい。3Dストリーム・ディスクリプタは、AVストリーム・ファイルに含まれるエレメンタリ・ストリーム別に3D映像の再生方式に関する情報を示す。特にビデオ・ストリームの3Dストリーム・ディスクリプタは3D表示タイプを含む。3D表示タイプは、そのビデオ・ストリームの示す映像をL/Rモードで表示するとき、その映像がレフトビューとライトビューとのいずれであるのかを示す。3D表示タイプはまた、そのビデオ・ストリームの示す映像をデプス・モードで表示するとき、その映像が2D映像とデプスマップとのいずれであるのかを示す。このように、PMT2310が3D映像の再生方式に関する情報を含むとき、その映像の再生系統はAVストリーム・ファイルだけからでもその情報を取得できる。従って、そのようなデータ構造は、例えば放送波で3D映像コンテンツを頒布するときに有効である。
(C)図26の(a)に示されているオフセット・テーブル2441は、PID別にオフセット・エントリ2603のテーブル2610を含む。オフセット・テーブルはその他に、プレーン別にオフセット・エントリのテーブルを含んでもよい。その場合、3D再生装置によるオフセット・テーブルの解析処理を簡素化することができる。更に、プレーンの合成処理に関する3D再生装置の性能に合わせて、オフセット・エントリの有効区間の長さに、例えば1秒間という下限が設けられてもよい。
(D)図34に示されている3Dプレイリスト・ファイルは、サブTSの再生経路を示すサブパスを一つ含む。その他に、3Dプレイリスト・ファイルが、異なるサブTSの再生経路を示すサブパスを複数含んでもよい。例えば、一方のサブパスのサブパス・タイプが「3D・L/R」であり、他方のサブパスのサブパス・タイプが「3D・デプス」であってもよい。その3Dプレイリスト・ファイルに従って3D映像が再生されるとき、再生対象のサブパスがそれら二種類のサブパスの間で切り換えられることにより、再生装置102をL/Rモードとデプス・モードとの間で容易に切り換えさせることができる。特にその切り換え処理は、3Dプレイリスト・ファイルそのものを切り換える処理よりも速やかに実現可能である。
3Dプレイリスト・ファイルは、サブパス・タイプの等しいサブパスを複数含んでいてもよい。例えば、同じシーンに対する両眼視差の異なる3D映像が共通のレフトビューに対するライトビューの違いで表現されるとき、異なるライトビュー・ビデオ・ストリームごとに異なるファイルDEPがBD−ROMディスク101に記録される。一方、3Dプレイリスト・ファイルは、サブパス・タイプが「3D・L/R」であるサブパスを複数含む。それらのサブパスは、異なるファイルDEPの再生経路を個別に規定する。その他に、一つのファイル2Dに対してデプスマップ・ストリームが二種類以上含まれていてもよい。その場合、3Dプレイリスト・ファイルは、サブパス・タイプが「3D・デプス」であるサブパスを複数含む。それらのサブパスは、各デプスマップ・ストリームを含むファイルDEPの再生経路を個別に規定する。そのような3Dプレイリスト・ファイルに従って3D映像が再生されるとき、再生対象のサブパスが例えばユーザの操作に応じて速やかに切り換えられるので、3D映像を実質的に途切れさせることなく、その両眼視差を変化させることができる。それにより、ユーザに所望の両眼視差の3D映像を容易に選択させることができる。
(E)層境界の前後での再生経路の分離
図51の(a)は、層境界LBの前後に記録されたエクステント・ブロック5101、5102を示す模式図である。図51の(a)を参照するに、層境界LBの前に位置する第1のエクステント・ブロック5101は、ディペンデントビュー・データ・ブロック群…、D[0]、D[1]、及びベースビュー・データ・ブロック群…、B[0]、B[1]を含む。一方、層境界LBの後に位置する第2のエクステント・ブロック5102は、ディペンデントビュー・データ・ブロック群D[2]、D[3]、…、及びベースビュー・データ・ブロック群B[2]、B[3]、…を含む。第1のエクステント・ブロック5101の後端に位置するデータ・ブロックの対D[1]、B[1]と、第2のエクステント・ブロック5102の先端に位置するデータ・ブロックの対D[2]、B[2]との間では、各ストリーム・データの内容が連続している。これらの間をシームレスに接続するには、各データ・ブロックと第1のエクステント・ブロック5101とのサイズが上記の条件1−4を満たせばよい。
図51の(a)を参照するに、各データ・ブロックは、ファイル2D5110、ファイルDEP5112、及びファイルSS5120のいずれかのエクステントとしてアクセス可能である。特にベースビュー・データ・ブロックB[n](n=…、0、1、2、3、…)はファイル2D5110とファイルSS5120とに共有される。この場合、2D再生モードの再生装置102はファイル2D5110を再生し、3D再生モードの再生装置102はファイルSS5120を再生する。従って、ベースビュー・データ・ブロックB[n]はいずれの再生モードの再生装置102からもアクセスされる。
図51の(b)は、エクステント・ブロック5101、5102に対する2D再生モードでの再生経路5130と3D再生モードでの再生経路5140とを示す模式図である。図51の(b)を参照するに、いずれの再生経路5130、5140もロングジャンプJLYの直前に第1のエクステント・ブロック5101内の最後のベースビュー・データ・ブロックB[1]を通る。すなわち、そのベースビュー・データ・ブロックB[1]は、2D再生モードの再生装置102からは二番目の2DエクステントEXT2D[1]として読み出され、3D再生モードの再生装置102からはエクステントSSEXTSS[0]内の最後のデータ・ブロックとして読み出される。従って、再生装置102にロングジャンプJLYの前後で2D映像と3D映像とのいずれをもシームレスに再生させるには、そのベースビュー・データ・ブロックB[1]は、2DエクステントEXT2D[1]として条件1を満たすと共に、ベースビュー・エクステントEXT1[1]として条件2を満たせばよい。
ロングジャンプJLY中にシステム・ターゲット・デコーダによって処理されるべきデータ量は、2D再生モードでは条件1により、そのベースビュー・データ・ブロックB[1]単体のサイズで確保される。一方、3D再生モードでは条件4により、第1のエクステント・ブロック5101全体のサイズで確保される。従って、条件1によってベースビュー・データ・ブロックB[1]に要求される最小エクステント・サイズminSEXT2D[1]は、条件2による最小エクステント・サイズminSEXT1[1]よりも一般に大きい。それ故、第1リード・バッファ4421の容量は、3D再生モードでのシームレス再生に必要最小限の値よりも大きくなければならない。更に、そのベースビュー・データ・ブロックB[1]と、その直前に位置するディペンデントビュー・データ・ブロックD[1]とでは、エクステントATC時間が等しい。従って、そのディペンデントビュー・データ・ブロックD[1]のサイズSEXT2[1]は、条件2によってそのデータ・ブロックD[1]に要求される最小エクステント・サイズminSEXT2[1]よりも一般に大きい。それ故、第2リード・バッファ4422の容量は、3D再生モードでのシームレス再生に必要最小限の値よりも一般に大きい。このように、図51の(a)に示されている配置では、二つのエクステント・ブロック5101、5102間のシームレスな接続は可能であるが、リード・バッファ4421、4422の容量が十分に大きく確保されなければならない。
ロングジャンプJLY中での映像のシームレス再生を可能にしたまま、リード・バッファ4421、4422の容量を更に削減するには、層境界LB等、そのロングジャンプJLYの必要な位置の前後でデータ・ブロック群の配置をインターリーブ配置から変更して、2D再生モードと3D再生モードとの間で再生経路を分離すればよい。そのような変更のパターンには、例えば以下に述べる二種類の配置1、2がある。配置1、2のいずれでも、再生経路はロングジャンプJLYの直前で、動作モードごとに異なるベースビュー・データ・ブロックを通る。その結果、後述のとおり、再生装置102にリード・バッファ4421、4422の容量を必要最小限に維持させたまま、ロングジャンプJLY中での映像のシームレス再生を容易に実現させることができる。
(E−1)配置1
図52は、BD−ROMディスク101の層境界LBの前後に記録されたデータ・ブロック群の物理的な配置の第1例を示す模式図である。以下、この配置を「配置1」という。図52を参照するに、層境界LBの前には第1のエクステント・ブロック5201が配置され、層境界LBの後には第2のエクステント・ブロック5202が配置されている。各エクステント・ブロック5201、5202内では、ディペンデントビュー・データ・ブロックD[n]とベースビュー・データ・ブロックB[n]とがインターリーブ配置を構成している(n=…、0、1、2、3、…)。特に、n番目のデータ・ブロックの対D[n]、B[n]ではエクステントATC時間が等しい。配置1では更に、第1のエクステント・ブロック5201の後端B[1]と層境界LBとの間に一つのベースビュー・データ・ブロックB[2]2Dが配置されている。そのベースビュー・データ・ブロックB[2]2Dは、第2のエクステント・ブロック5202内の先端のベースビュー・データ・ブロックB[2]SSとビット単位(bit−for−bit)で一致する。以下、前者B[2]2Dを「2D再生専用ブロック」といい、後者B[2]SSを「SS再生専用ブロック」という。
図52に示されているベースビュー・データ・ブロックのうち、SS再生専用ブロックB[2]SS以外はファイル2D5210のエクステント、すなわち2DエクステントEXT2D[・]としてアクセス可能である。例えば第1のエクステント・ブロック5201内の最後から二番目のベースビュー・データ・ブロックB[0]、最後のベースビュー・データ・ブロックB[1]と2D再生専用ブロックB[2]2Dとの対B[1]+B[2]2D、及び、第2のエクステント・ブロック5202内の二番目のベースビュー・データ・ブロックB[3]はそれぞれ、単一の2DエクステントEXT2D[0]、EXT2D[1]、EXT2D[2]としてアクセス可能である。一方、図52に示されているディペンデントビュー・データ・ブロックD[n](n=…、0、1、2、3、…)はそれぞれ、ファイルDEP5212の単一のエクステント、すなわちディペンデントビュー・エクステントEXT2[n]としてアクセス可能である。
図52に示されているデータ・ブロック群では、AVストリーム・ファイルのクロスリンクが次のように実現される。各エクステント・ブロック5201、5202の全体は、ファイルSS5220の単一のエクステントEXTSS[0]、EXTSS[1]としてアクセス可能である。従って、各エクステント・ブロック5201、5202内のベースビュー・データ・ブロックB[0]、B[1]、B[3]はファイル2D5210とファイルSS5220とに共有される。それに対し、2D再生専用ブロックB[2]2Dは、層境界LBの直前に位置する2DエクステントEXT2D[1]の一部としてのみアクセス可能である。一方、SS再生専用ブロックB[2]SSは、層境界LBの直後のエクステントSSEXTSS[1]の一部としてのみアクセス可能である。それ故、2D再生専用ブロックB[2]2D以外のベースビュー・データ・ブロックB[0]、B[1]、B[2]SS、B[3]は、ファイル・ベース5211のエクステント、すなわちベースビュー・エクステントEXT1[n](n=0、1、2、3)としてエクステントSSEXTSS[0]、EXTSS[1]から抽出可能である。
図53は、図52に示されている配置1のデータ・ブロック群に対する2D再生モードでの再生経路5310と3D再生モードでの再生経路5320とを示す模式図である。
2D再生モードの再生装置102はファイル2D5210を再生する。従って、2D再生モードでの再生経路5310が示すとおり、まず第1のエクステント・ブロック5201内の最後から二番目のベースビュー・データ・ブロックB[0]が最初の2DエクステントEXT2D[0]として読み出され、その直後のディペンデントビュー・データ・ブロックD[1]の読み出しが最初のジャンプJ2D1によってスキップされる。次に、第1のエクステント・ブロック5210内の最後のベースビュー・データ・ブロックB[1]とその直後の2D再生専用ブロックB[2]2Dとの対B[1]+B[2]2Dが二番目の2DエクステントEXT2D[1]として連続して読み出される。その直後の層境界LBではロングジャンプJLYが生じ、第2のエクステント・ブロック5202の先端に位置する3個のデータ・ブロックD[2]、B[2]SS、D[3]の読み出しがスキップされる。続いて、第2のエクステント・ブロック5202内の二番目のベースビュー・データ・ブロックB[3]が三番目の2DエクステントEXT2D[2]として読み出される。
3D再生モードの再生装置102はファイルSS5220を再生する。従って、3D再生モードでの再生経路5320が示すとおり、まず第1のエクステント・ブロック5201の全体が最初のエクステントSSEXTSS[0]として連続して読み出される。その直後にロングジャンプJLYが生じ、2D再生専用ブロックB[2]2Dの読み出しがスキップされる。続いて、第2のエクステント・ブロック5202の全体が二番目のエクステントSSEXTSS[1]として連続して読み出される。
図53に示されているとおり、2D再生モードでは、2D再生専用ブロックB[2]2Dは読み出されるが、SS再生専用ブロックB[2]SSの読み出しはスキップされる。逆に3D再生モードでは、2D再生専用ブロックB[2]2Dの読み出しはスキップされるが、SS再生専用ブロックB[2]SSは読み出される。しかし、両方のデータ・ブロックB[2]2D、B[2]SSはビット単位で一致しているので、いずれの再生モードでも、再生されるベースビュー・ビデオ・フレームは等しい。このように、配置1ではロングジャンプJLYの前後で2D再生モードでの再生経路5310と3D再生モードでの再生経路5320とが分離されている。従って、図51の(a)に示されている配置とは異なり、層境界LBの直前に位置する2DエクステントEXT2D[1]のサイズSEXT2D[1]とその直前のディペンデントビュー・データ・ブロックD[1]のサイズSEXT2[1]とが、以下のように別々に決定可能である。
その2DエクステントEXT2D[1]のサイズSEXT2D[1]はベースビュー・データ・ブロックB[1]のサイズSEXT1[1]と2D再生専用ブロックB[2]2DのサイズS2Dとの和SEXT1[1]+S2Dに等しい。従って、2D映像をシームレスに再生するには、まず、その和SEXT1[1]+S2Dが条件1を満たせばよい。ここで、式(1)の右辺には、ジャンプ時間Tjump−2DとしてロングジャンプJLYの最大ジャンプ時間Tjump_maxが代入される。次に、2D再生専用ブロックB[2]2Dの後端から第2のエクステント・ブロック5202内の最初の2DエクステントEXT2D[2]=B[3]までのセクタ数が、2D再生装置の能力に合わせて規定されたロングジャンプJLYの最大ジャンプ距離Sjump_max以下であればよい。
一方、3D映像をシームレスに再生するには、まず、最初のエクステントSSEXTSS[0]の後端に位置するディペンデントビュー・データ・ブロックD[1]とベースビュー・データ・ブロックB[1]との各サイズSEXT2[1]、SEXT1[1]が条件3、2を満たせばよい。ここで、ロングジャンプJLYの発生に関わらず、式(3)、(2)の各右辺にはゼロ・セクタ遷移時間TJUMP0[2n+1]、TJUMP0[2n+2]として、ゼロ・セクタ遷移時間の典型的な値が代入されればよい。次に、最初のエクステントSSEXTSS[0]のサイズが条件4を満たせばよい。更に、そのエクステントSSEXTSS[0]の後端から次のエクステントSSEXTSS[1]の先端までのセクタ数が、3D再生装置の能力に合わせて規定されたロングジャンプJLYの最大ジャンプ距離Sjump_max以下であればよい。
層境界LBの直前に位置する2DエクステントEXT2D[1]のうち、最初のエクステントSSEXTSS[0]に共有されるのは、前側に位置するベースビュー・データ・ブロックB[1]のみである。従って、2D再生専用ブロックB[2]2DのサイズS2Dを適切に拡大することにより、2DエクステントEXT2D[1]のサイズSEXT2D[1]=SEXT1[1]+S2Dを一定に維持したまま、ベースビュー・データ・ブロックB[1]のサイズSEXT1[1]を更に小さく制限することができる。その場合、そのベースビュー・データ・ブロックB[1]のエクステントATC時間が短縮される。それ故、その直前に位置するディペンデントビュー・データ・ブロックD[1]のサイズSEXT2[1]も更に小さく制限することができる。
ここで、SS再生専用ブロックB[2]SSは2D再生専用ブロックB[2]2Dとビット単位で一致しているので、2D再生専用ブロックB[2]2DのサイズS2Dの拡大は、SS再生専用ブロックB[2]SSの直前に位置するディペンデントビュー・データ・ブロックD[2]のサイズを拡大させる。しかし、そのサイズは、図51の(a)に示されている、層境界LBの直前に位置するディペンデントビュー・データ・ブロックD[1]のサイズよりは十分に小さくできる。こうして、3D再生モードの再生装置102内に確保されるべきリード・バッファ4421、4422の容量を、3D映像のシームレス再生に必要最小限の値に更に接近させることができる。その結果、配置1では、再生装置102内に確保されるべきリード・バッファの容量を必要最小限に抑えたまま、ロングジャンプ中に2D映像と3D映像とのいずれをもシームレスに再生することができるように、各データ・ブロックのサイズを設計することができる。
配置1では、2D再生専用ブロックB[2]2Dの複製データが、第2のエクステント・ブロック5202の中に単一のSS再生専用ブロックB[2]SSとして配置されている。その他に、その複製データが二個以上のSS再生専用ブロックに分割されて配置されてもよい。
(E−2)配置2
図54は、BD−ROMディスク101の層境界LBの前後に記録されたデータ・ブロック群の物理的な配置の第2例を示す模式図である。以下、この配置を「配置2」という。図54を図52と比較するに、配置2は配置1とは主に、SS再生専用ブロックB[2]SS、B[3]SSを含むエクステント・ブロック5402が層境界LBの直前に配置されている点で異なる。
図54を参照するに、層境界LBの前には、第1のエクステント・ブロック5401、2D再生専用ブロック(B[2]+B[3])2D、及び第2のエクステント・ブロック5402が順番に配置され、層境界LBの後には第3のエクステント・ブロック5203が配置されている。各エクステント・ブロック5201、5202、5203内では、ディペンデントビュー・データ・ブロックD[n]とベースビュー・データ・ブロックB[n]とがインターリーブ配置を構成している(n=…、0、1、2、3、4、…)。特にn番目のデータ・ブロックの対D[n]、B[n]ではエクステントATC時間が等しい。第2のエクステント・ブロック5402では、第1のエクステント・ブロック5401の後端に位置するデータ・ブロックD[1]、B[1]とも、第3のエクステント・ブロック5403の先端に位置するデータ・ブロックD[4]、B[4]とも、各ストリーム・データの内容が連続している。第2のエクステント・ブロック5402に含まれるベースビュー・データ・ブロックはいずれもSS再生専用ブロックB[2]SS、B[3]SSであり、それらの全体B[2]SS+B[3]SSは、その前に位置する2D再生専用ブロック(B[2]+B[3])2Dとビット単位で一致する。
図54に示されているベースビュー・データ・ブロックのうち、SS再生専用ブロックB[2]SS、B[3]SS以外はファイル2D5410のエクステントEXT2D[0]、EXT2D[1]、EXT2D[2]としてアクセス可能である。特に第1のエクステント・ブロック5401内の最後のベースビュー・データ・ブロックB[1]と2D再生専用ブロック(B[2]+B[3])2Dとの対B[1]+(B[2]+B[3])2Dは単一の2DエクステントEXT2D[1]としてアクセス可能である。更に、第2のエクステント・ブロック5402以外のエクステント・ブロック5401、5403内のベースビュー・データ・ブロックB[0]、B[1]、B[4]は、ファイル・ベース5411のエクステントEXT1[0]、EXT1[1]、EXT1[4]としてファイルSS5420のエクステントEXTSS[0]、EXTSS[1]からも抽出可能である。それに対し、2D再生専用ブロック(B[2]+B[3])2Dは2DエクステントEXT2D[1]の一部としてのみアクセス可能である。一方、SS再生専用ブロックB[2]SS、B[3]SSはそれぞれ、ベースビュー・エクステントEXT1[2]、EXT1[3]としてエクステントSSEXTSS[1]から抽出可能である。
図55は、図54に示されている配置2のデータ・ブロック群に対する2D再生モードでの再生経路5510と3D再生モードでの再生経路5520を示す模式図である。
2D再生モードの再生装置102はファイル2D5410を再生する。従って、2D再生モードでの再生経路5510が示すとおり、まず第1のエクステント・ブロック5401内の最後から二番目のベースビュー・データ・ブロックB[0]が最初の2DエクステントEXT2D[0]として読み出され、その直後のディペンデントビュー・データ・ブロックD[1]の読み出しが最初のジャンプJ2D1によってスキップされる。次に、第1のエクステント・ブロック5401内の最後のベースビュー・データ・ブロックB[1]とその直後の2D再生専用ブロック(B[2]+B[3])2Dとの対B[1]+(B[2]+B[3])2Dが二番目の2DエクステントEXT2D[1]として連続して読み出される。その直後にロングジャンプJLYが生じ、第2のエクステント・ブロック5402の読み出し、及び第3のエクステント・ブロック5403の先端に位置するディペンデントビュー・データ・ブロックD[4]の読み出しがスキップされる。続いて、第3のエクステント・ブロック5403内の最初のベースビュー・データ・ブロックB[4]が三番目の2DエクステントEXT2D[2]として読み出される。
3D再生モードの再生装置102はファイルSS5420を再生する。従って、3D再生モードでの再生経路5520が示すとおり、まず、第1のエクステント・ブロック5401の全体が第1のエクステントSSEXTSS[0]として連続して読み出される。その直後にジャンプJEXが生じ、2D再生専用ブロック(B[2]+B[3])2Dの読み出しがスキップされる。次に、第2のエクステント・ブロック5402の全体が第2のエクステントSSEXTSS[1]として連続して読み出される。その直後に、層境界LBを越えるためのロングジャンプJLYが生じる。続いて、第3のエクステント・ブロック5403の全体が第3のエクステントSSEXTSS[2]として連続して読み出される。
図55に示されているとおり、2D再生モードでは、2D再生専用ブロック(B[2]+B[3])2Dは読み出されるが、SS再生専用ブロックB[2]SS、B[3]SSの読み出しはスキップされる。逆に3D再生モードでは、2D再生専用ブロック(B[2]+B[3])2Dの読み出しはスキップされるが、SS再生専用ブロックB[2]SS、B[3]SSは読み出される。しかし、2D再生専用ブロック(B[2]+B[3])2DとSS再生専用ブロックの全体B[2]SS+B[3]SSとはビット単位で一致しているので、いずれの再生モードでも、再生されるベースビュー・ビデオ・フレームは等しい。このように、配置2ではロングジャンプJLYの前後で2D再生モードでの再生経路5510と3D再生モードでの再生経路5520とが分離されている。従って、層境界LBの直前に位置する2DエクステントEXT2D[1]のサイズSEXT2D[1]とその直前のディペンデントビュー・データ・ブロックD[1]のサイズSEXT2[1]とが、以下のように別々に決定可能である。
その2DエクステントEXT2D[1]のサイズSEXT2D[1]は、ベースビュー・データ・ブロックB[1]のサイズSEXT1[1]と2D再生専用ブロック(B[2]+B[3])2DのサイズS2Dとの和SEXT1[1]+S2Dに等しい。従って、2D映像をシームレスに再生するには、まず、その和SEXT1[1]+S2Dが条件1を満たせばよい。ここで、式(1)の右辺には、ジャンプ時間Tjump−2DとしてロングジャンプJLYの最大ジャンプ時間Tjump_maxが代入される。次に、2D再生専用ブロック(B[2]+B[3])2Dの後端から第3のエクステント・ブロック5403内の最初の2DエクステントEXT2D[2]=B[4]までのセクタ数が、2D再生装置の能力に合わせて規定されたロングジャンプJLYの最大ジャンプ距離Sjump_max以下であればよい。
一方、3D映像をシームレスに再生するには、まず、第1のエクステントSSEXTSS[0]の後端に位置するディペンデントビュー・データ・ブロックD[1]とベースビュー・データ・ブロックB[1]との各サイズSEXT2[1]、SEXT1[1]が条件3、2を満たせばよい。ここで、ジャンプJEXの発生に関わらず、式(3)、(2)の各右辺にはゼロ・セクタ遷移時間TJUMP0[2n+1]、TJUMP0[2n+2]として、ゼロ・セクタ遷移時間の典型的な値が代入されればよい。次に、第2のエクステントSSEXTSS[1]の後端に位置するディペンデントビュー・データ・ブロックD[3]とSS再生専用ブロックB[3]SSとの各サイズSEXT2[3]、SEXT1[3]が条件3、2を満たせばよい。ここで、ロングジャンプJLYの発生に関わらず、式(3)、(2)の各右辺にはゼロ・セクタ遷移時間TJUMP0[2n+1]、TJUMP0[2n+2]として、ゼロ・セクタ遷移時間の典型的な値が代入されればよい。
2DエクステントEXT2D[1]のうち、エクステントSSEXTSS[1]に共有されるのは、前側に位置するベースビュー・データ・ブロックB[1]だけである。従って、2D再生専用ブロック(B[2]+B[3])2DのサイズS2Dを適切に拡大することにより、2DエクステントEXT2D[1]のサイズSEXT2D[1]=SEXT1[1]+S2Dを一定に維持したまま、ベースビュー・データ・ブロックB[1]のサイズSEXT1[1]を更に小さく制限することができる。それに伴い、その直前のディペンデントビュー・データ・ブロックD[1]のサイズSEXT2[1]も更に小さく制限することができる。
ここで、3D再生専用ブロックの全体B[2]SS+B[3]SSは2D再生専用ブロック(B[2]+B[3])2Dとビット単位で一致している。従って、2D再生専用ブロック(B[2]+B[3])2DのサイズS2Dが拡大すると、各3D再生専用ブロックB[2]SS、B[3]SSの直前に位置するディペンデントビュー・データ・ブロックD[2]、D[3]のサイズが拡大する。しかし、一つの2D再生専用ブロック(B[2]+B[3])2Dに対し、3D再生専用ブロックは二つB[2]SS、B[3]SSに分割されている。その結果、各3D再生専用ブロックB[2]SS、B[3]SSのサイズを十分に小さくすることができる。こうして、各リード・バッファ4421、4422の容量は、3D映像のシームレス再生に必要最小限の値まで更に削減可能である。
3D映像をシームレスに再生するには更に、第1のエクステントSSEXTSS[0]のサイズSEXTSS[0]と第2のエクステントSSEXTSS[1]のサイズSEXTSS[1]とのそれぞれが、条件4に代えて、以下に述べる条件A1、A2を満たせばよい。
図56は、エクステント・ブロック5401−5403から連続して3D映像がシームレスに再生されるとき、各リード・バッファ4421、4422に蓄積されるデータ量DA1、DA2の変化、及びそれらの和DA1+DA2の変化を示すグラフ群である。図56では、一点鎖線のグラフは、第1リード・バッファ4421に蓄積されるデータ量DA1の変化を示し、破線のグラフは、第2リード・バッファ4422に蓄積されるデータ量DA2の変化を示し、実線のグラフは、両データ量の和DA1+DA2の変化を示す。ここで、その和DA1+DA2は実際には、データ・ブロックが一つ読み出されるごとに細かく変化する。しかし、実線のグラフは、その細かい変化を均して直線的に近似したものである。更に、ゼロ・セクタ遷移時間TJUMP0は一つのエクステント・ブロック全体の読み出し期間PRBLK[0]の長さに比べれば十分に無視できるので、図56ではゼロ・セクタ遷移時間TJUMP0は“0”とみなされている。
図56を参照するに、第1のエクステント・ブロック5401が読み出される期間PRBLK[0]では、蓄積データ量の和DA1+DA2は、読み出し速度RUD72と平均転送速度REXTSS[0]との間の差RUD72−REXTSS[0]に等しい速度で増加する。ここで、その平均転送速度REXTSS[0]は、第1のエクステント・ブロック5401全体のサイズ、すなわちエクステントSSEXTSS[0]のサイズSEXTSS[0]をそのエクステントATC時間TEXTSS[0]で割った値として評価される。第1のエクステント・ブロック5401の後端のベースビュー・データ・ブロックB[1]が第1リード・バッファ4421に読み込まれた直後にジャンプJEXが生じ、2D再生専用ブロック(B[2]+B[3])2Dの読み出しがスキップされる。ジャンプJEXの期間PJEXでは蓄積データ量の和DA1+DA2は平均転送速度REXTSS[0]で減少する。続いて、第2のエクステント・ブロック5402が読み出される期間PRBLK[1]では蓄積データ量の和DA1+DA2は、読み出し速度RUD72と平均転送速度REXTSS[1]との間の差RUD72−REXTSS[1]に等しい速度で増加する。ここで、その平均転送速度REXTSS[1]は、第2のエクステント・ブロック5402全体のサイズ、すなわちエクステントSSEXTSS[1]のサイズSEXTSS[1]をそのエクステントATC時間TEXTSS[1]で割った値として評価される。第2のエクステント・ブロック5402の後端のSS再生専用ブロックB[3]SSが第1リード・バッファ4421に読み込まれた直後にロングジャンプJLYが生じる。その期間PJLYでは、蓄積データ量の和DA1+DA2は平均転送速度REXTSS[1]で減少する。ここで、蓄積データ量の和DA1+DA2は、ジャンプJEXの直前とロングジャンプJLYの直前との少なくともいずれかで最大値に達する。その最大値を十分に大きく調節することにより、ジャンプJEXの期間PJEXとロングジャンプJLYの期間PJLYとの両方でリード・バッファ4421、4422のアンダーフローを防止することができる。その結果、三つのエクステント・ブロック5401、5402、5403をシームレスに接続することができる。
蓄積データ量の和DA1+DA2の最大値は、各ジャンプJEX、JLYの前に位置するエクステント・ブロック5401、5402のサイズで決まる。従って、三つのエクステント・ブロック5401−5403をシームレスに接続するには、前の二つのエクステント・ブロック5401、5402のサイズが以下の条件を満たせばよい。
各エクステント・ブロック5401、5402、5403の先端に位置するディペンデントビュー・データ・ブロックD[0]、D[2]、D[4]の読み出し期間PRD[0]、PRD[2]、PRD[4]ではプリロードが行われる。従って、まず、ジャンプJEX中での両リード・バッファ4421、4422のアンダーフローを防止するには、第1のエクステントSSEXTSS[0]のエクステントATC時間TEXTSS[0]が少なくとも、第1のエクステント・ブロック5401でのプリロード期間PRD[0]の終了時点T0から第2のエクステント・ブロック5402でのプリロード期間PRD[2]の終了時点T1までの期間の長さに等しければよい。図56から明らかなとおり、期間T0−T1の長さは、第1のエクステント・ブロック5401の読み出し期間PRBLK[0]の長さSEXTSS[0]/RUD72、ジャンプJEXのジャンプ時間TJUMPーEX、及びエクステント・ブロック5401、5402間でのプリロード期間PRD[0]、PRD[2]の長さの差TDIFF[0]=SEXT2[2]/RUD72−SEXT2[0]/RUD72を足し合わせた値に等しい。従って、第1のエクステントSSEXTSS[0]のサイズSEXTSS[0]は次式(7)を満たせばよい:
次に、ロングジャンプJLY中での両リード・バッファ4421、4422のアンダーフローを防止するには、第1のエクステントSSEXTSS[0]と第2のエクステントSSEXTSS[1]とのエクステントATC時間の和TEXTSS[0]+TEXTSS[1]が少なくとも、第1のエクステント・ブロック5401でのプリロード期間PRD[0]の終了時点T0から第3のエクステント・ブロック5403でのプリロード期間PRD[4]の終了時点T2までの期間の長さに等しければよい。図56から明らかなとおり、期間T0−T2の長さは、期間T0−T1の長さに、第2のエクステント・ブロック5402の読み出し期間PRBLK[1]の長さSEXTSS[1]/RUD72、ロングジャンプJLYのジャンプ時間TJUMPーLY、及びエクステント・ブロック5402、5403間でのプリロード期間PRD[2]、PRD[4]の長さの差TDIFF[1]=SEXT2[4]/RUD72−SEXT2[2]/RUD72を加えた値に等しい。従って、二つのエクステントSSEXTSS[0]、EXTSS[1]のサイズSEXTSS[0]、SEXTSS[1]は次式(8)を満たせばよい:
ここで、3D再生専用ブロックの全体B[2]SS+B[3]SSは2D再生専用ブロック(B[2]+B[3])2Dとビット単位で一致している。従って、BD−ROMディスク101上の記録領域を有効に利用する点では、第2のエクステントSSEXTSS[1]のサイズSEXTSS[1]は必要最小限であることが望ましい。式(7)、(8)が同時に満たされ、かつ、第2のエクステントSSEXTSS[1]のサイズSEXTSS[1]が最小限に抑えられるための条件が次のA1、A2である:条件A1は、「第1のエクステントSSEXTSS[0]のサイズSEXTSS[0]が次式(9)を満たす」ことである;条件A2は、「第2のエクステントSSEXTSS[1]のサイズSEXTSS[1]が次式(10)を満たす」ことである。
その他に、第1のエクステントSSEXTSS[0]の後端から第2のエクステントSSEXTSS[1]の先端までのセクタ数が、3D再生装置の能力に合わせて規定されたジャンプJEXの最大ジャンプ距離Sjump_max以下であればよい。同様に、第2のエクステントSSEXTSS[1]の後端から第3のエクステントSSEXTSS[2]の先端までのセクタ数が、3D再生装置の能力に合わせて規定されたロングジャンプJLYの最大ジャンプ距離Sjump_max以下であればよい。
このように、配置2では、再生装置102内に確保されるべきリード・バッファの容量を必要最小限に抑えたまま、2D映像と3D映像とのいずれをもシームレスに再生することができるように、各データ・ブロックのサイズを設計することができる。
配置2では、2D再生専用ブロック(B[2]+B[3])2Dの複製データが、二つのSS再生専用ブロックB[2]SS、B[3]SSに分割されて配置されている。その他に、その複製データが単一のSS再生専用ブロックであってもよく、又は三個以上のSS再生専用ブロックに分割されて配置されてもよい。
(F)スーパー・エクステント・ブロック
図13に示されているエクステント・ブロック1301、1302、1303では二種類のデータ・ブロックD[n]、B[n](n=0、1、2、3、…)がインターリーブ配置を構成している。その他に、一種類のベースビュー・データ・ブロックと二種類以上のディペンデントビュー・データ・ブロックとがインターリーブ配置を構成していてもよい。
図57は、BD−ROMディスク101上に配置された三種類のデータ・ブロックDn、Rn、Ln(n=0、1、2、…)と、各データ・ブロックを参照するAVストリーム・ファイルとの間の対応関係を示す模式図である。図57を参照するに、三種類のデータ・ブロックDn、Rn、LnはBD−ROMディスク101上のトラックに沿って一つずつ交互に連続して配置されている。ベースビュー・データ・ブロックLnはメインTSを含み、特にプライマリ・ビデオ・ストリームが3D映像のレフトビューを表す。ライトビュー・データ・ブロックRnは第1サブTSを含み、特にプライマリ・ビデオ・ストリームが3D映像のライトビューを表す。デプスマップ・データ・ブロックDnは第2サブTSを含み、特にプライマリ・ビデオ・ストリームが、3D映像のレフトビューのデプスマップを表す。隣接する三種類のデータ・ブロックDn、Rn、Ln間ではエクステントATC時間が等しい。更に、エクステントATC時間が等しいデータ・ブロックの各組み合わせでは、データ・ブロックがデータ量の小さい順に並ぶ。すなわち、デプスマップ・データ・ブロックDn、ライトビュー・データ・ブロックRn、ベースビュー・データ・ブロックLnの順に並ぶ。以下、このような配置のデータ・ブロック群Dn、Rn、Lnを「スーパー・エクステント・ブロック」5700という。
各ベースビュー・データ・ブロックLnはファイル2D5710の一つのエクステント、すなわち2DエクステントEXT2D[n]としてアクセス可能である。各ライトビュー・データ・ブロックRnは第1ファイルDEP5712の一つのエクステント、すなわちライトビュー・エクステントEXT2[n]としてアクセス可能である。各デプスマップ・データ・ブロックDnは第2ファイルDEP5713の一つのエクステント、すなわちデプスマップ・エクステントEXT3[n]としてアクセス可能である。更に、隣接するライトビュー・データ・ブロックRnとベースビュー・データ・ブロックLnとの各対は一つのエクステント・ブロックを構成し、ファイルSS5720の一つのエクステント、すなわちエクステントSSEXTSS[n]としてアクセス可能である。特に、各データ・ブロックRn、Lnの先頭に位置するVAUが同じ3D・VAUに属する。その上、一連のスーパー・エクステント・ブロック5700の全体は、新たなAVストリーム・ファイル5730の一つのエクステントEXTSP[0]としてアクセス可能である。すなわち、スーパー・エクステント・ブロック5700の先頭のLBNと、その全体のサイズとを、その新たなAVストリーム・ファイル5730のファイル・エントリから知ることができる。以下、このファイル5730を「ファイル・スーパー(SP)」と呼び、そのエクステントEXTSP[0]を「エクステントSP」と呼ぶ。
(F−1)スーパー・エクステント・ブロックに対する再生経路
図58は、スーパー・エクステント・ブロック5700に対する、2D再生モード、L/Rモード、及びスーパー・モードのそれぞれでの再生経路5801、5802、5803を示す模式図である。ここで、「スーパー・モード」とは、3D再生モードの一種であり、ファイルSPを利用してL/Rモードとデプス・モードとを速やかに切換可能な動作モードをいう。図1に示されている再生装置102はスーパー・モードに対応可能であってもよい。
2D再生モードの再生装置102はファイル2D5710を再生する。従って、2D再生モードでの再生経路5801が示すとおり、スーパー・エクステント・ブロック5800からベースビュー・データ・ブロックLn(n=…、0、1、2、…)が順番に2DエクステントEXT2D[n]として読み出される。一方、デプスマップ・データ・ブロックDnとライトビュー・データ・ブロックRnとの読み出しはジャンプJ2Dnによってスキップされる。
L/Rモードの再生装置102はファイルSS5720を再生する。従って、L/Rモードでの再生経路5802が示すとおり、スーパー・エクステント・ブロック5800から各エクステント・ブロックRn+Lnが順番にエクステントSSEXTSS[n]として読み出される。一方、デプスマップ・データ・ブロックDnの読み出しはジャンプJLRnによってスキップされる。
スーパー・モードの再生装置102はファイルSP5730を再生する。従って、スーパー・モードでの再生経路5803が示すとおり、スーパー・エクステント・ブロック5800の全体が一つのエクステントSPEXTSP[0]として、連続して読み出される。ここで、その再生経路5803では、図16に示されている3D再生モードでの再生経路1602と同様に、各データ・ブロックの後端から次のデータ・ブロックの先端までの間にゼロ・セクタ遷移が行われてもよい。
スーパー・エクステント・ブロック5700をエクステントSPEXTSP[0]として読み込むとき、再生装置102はファイルSP5730のファイル・エントリからそのエクステントSPEXTSS[0]の先端のLBNとそのサイズとを読み出してBD−ROMドライブに渡す。BD−ROMドライブはそのLBNから順に、そのサイズのデータを連続して読み出す。これらの処理は、ファイルSSを利用してデータ・ブロック群を読み込む処理と同様に、BD−ROMドライブの制御が次の二点(A)、(B)で簡単である:(A)再生装置102は一箇所のファイル・エントリを利用して各エクステントを順番に参照すればよい;(B)読み込み対象のエクステントの総数が少ないので、BD−ROMドライブに渡されるべきLBNとサイズとの対の総数が少ない。
スーパー・モードの再生装置102は、エクステントSPEXTSP[0]を読み込んだ後、それから三種類のデータ・ブロックを分離してリード・バッファに個別に蓄える。こうして、三種類のデータ・ブロックは再生装置102内に、デコーダへ供給可能な状態で維持される。その結果、再生装置102は、L/Rモードとデプス・モードとを速やかに切り換えることができる。ここで、データ・ブロックの分離処理にはクリップ情報ファイル内のエクステント起点が利用される。具体的には、まず、図27の(a)、(b)に示されているエクステント起点と同様なエクステント起点を、ファイル2D5710に対応付けられた2Dクリップ情報ファイル、第1ファイルDEP5712に対応付けられたライトビュー・クリップ情報ファイル、及び第2ファイルDEP5713に対応付けられたデプスマップ・クリップ情報ファイルのそれぞれが含む。次に、それらのエクステント起点を、図27の(e)に示されている方法と同様な方法で利用することにより、エクステントSPEXTSP[0]から、ファイル・ベース5711のエクステント、すなわちベースビュー・エクステントEXT1[n]、ライトビュー・エクステントEXT2[n]、及びデプスマップ・エクステントEXT3[n]が抽出される。
(F−2)データ・ブロックのサイズ
スーパー・エクステント・ブロック5700から2D映像と3D映像とのいずれをもシームレスに再生するには、データ・ブロックDn、Rn、Ln、エクステント・ブロックRn+Ln、及びスーパーエクステント・ブロック5700のそれぞれのサイズは、再生装置102の性能に基づく以下の条件を満たせばよい。
[2D再生モードの性能に基づく条件]
2D再生モードの再生装置として、図17に示されている再生処理系統を想定する。図59の(a)は、2D再生モードでの動作中、リード・バッファ1721に蓄積されるデータ量DAの変化を示すグラフである。図59の(b)は、再生対象のスーパー・エクステント・ブロック5910と2D再生モードでの再生経路5920との間の対応関係を示す模式図である。図59の(b)を参照するに、スーパー・エクステント・ブロック5910からは再生経路5920に従い、各ベースビュー・データ・ブロックLnが一つの2DエクステントEXT2D[n]としてBD−ROMディスク101からリード・バッファ1721へ読み出される。図59の(a)を参照するに、各2DエクステントEXT2D[n]の読み出し期間PR2D[n]では蓄積データ量DAは、読み出し速度RUD54と平均転送速度REXT2D[n]との間の差RUD54−REXT2D[n]に等しい速度で増加する。一方、二つの連続する2DエクステントEXT2D[n−1]、EXT2D[n]の間ではジャンプJ2D[n]が生じる。そのジャンプ期間PJ2D[n]ではディペンデントビュー・データ・ブロックDn、Rnの読み出しがスキップされるので、蓄積データ量DAは平均転送速度REXT2D[n]で減少する。従って、スーパー・エクステント・ブロック5910から2D映像をシームレスに再生するには、まず上記の条件1が満たされればよい。すなわち、各2DエクステントEXT2D[n]のサイズSEXT2D[n]が式(1)を満たせばよい:
ここで、式(1)に代入されるべきジャンプ時間TJUMP−2D[n]は二つのパラメータTJ[n]、TL[n]の和で決まる:TJUMP−2D[n]=TJ[n]+TL[n]。第1パラメータTJ[n]は、例えば図19の表において、n番目の2DエクステントEXT2D[n]の後端から(n+1)番目の2DエクステントEXT2D[n+1]の先端までのセクタ数、すなわちジャンプJ2D[n]のジャンプ距離SJUMPに対応する最大ジャンプ時間TJUMP_MAXに等しい。第2パラメータTL[n]は、2DエクステントEXT2D[n]、EXT2D[n+1]間に層境界LBが無ければ0を表し、有れば層切換時間、例えば350m秒を表す。
次に、二つの2DエクステントEXT2D[n]、EXT2D[n+1]の間隔は、第1パラメータTJ[n]に対応する最大ジャンプ距離SJUMP_MAX以下であればよい。
[3D再生モードの性能に基づく条件]
3D再生モードの再生装置として、図20に示されている再生処理系統を想定する。図60の(a)、(b)は、L/Rモードの再生装置がスーパー・エクステント・ブロック6010から3D映像をシームレスに再生するとき、各リード・バッファ2021、2022に蓄積されるデータ量DA1、DA2の変化を示すグラフである。図60の(c)は、そのスーパー・エクステント・ブロック6010とL/Rモードでの再生経路6020との間の対応関係を示す模式図である。尚、以下の説明はデプス・モードについても同様に成立する。例えば、ライトビュー・データ・ブロックRkのサイズをデプスマップ・データ・ブロックDkのサイズに読み換え、ライトビュー転送速度REXT2[k]をデプスマップ転送速度REXT3[k]に読み換えればよい。
図60の(c)を参照するに、隣接するライトビュー・データ・ブロックRkとベースビュー・データ・ブロックLkとの各対(k=…、n、n+1、n+2、…。)は一つのエクステント・ブロックRk+Lkを構成している。スーパー・エクステント・ブロック6010からは再生経路6020に従い、各エクステント・ブロックRk+Lkが一つのエクステントSSEXTSS[k]としてBD−ROMディスク101からスイッチ2020へ一括して読み出される。更に、スイッチ2020によって各エクステントSSEXTSS[k]からライトビュー・エクステントRkとベースビュー・エクステントLkとが分離され、交互に各リード・バッファ2021、2022へ送出される。図60の(a)、(b)を参照するに、ライトビュー・エクステントEXT2[k]の読み出し期間PRD[k]では、第1リード・バッファ2021の蓄積データ量DA1はベースビュー転送速度REXT1[k]で減少し、第2リード・バッファ2022の蓄積データ量DA2は、読み出し速度RUD72とライトビュー転送速度REXT2[k]との間の差RUD72−REXT2[k]に等しい速度で増加する。逆に、ベースビュー・エクステントEXT1[k]の読み出し期間PRB[k]では、第1リード・バッファ2021の蓄積データ量DA1は、読み出し速度RUD72とベースビュー転送速度REXT1[k]との間の差RUD72−REXT1[k]に等しい速度で増加し、第2リード・バッファ2022の蓄積データ量DA2はライトビュー転送速度REXT2[k]で減少する。
一方、隣接するエクステントSSEXTSS[n]、EXTSS[n+1]の間では、ジャンプJLR[n]が生じる。ジャンプ期間PJLR[n]ではデプスマップ・データ・ブロックD(n+1)の読み出しがスキップされるので、蓄積データ量DA1、DA2は平均転送速度REXT1[n]、REXT12[n]で減少する。
各エクステントSSEXTSS[n]から3D映像をシームレスに再生するには、上記の条件2−4が満たされればよい。すなわち、各ベースビュー・エクステントEXT1[n]のサイズSEXT1[n]は式(2)を満たし、各ライトビュー・エクステントEXT2[n]のサイズSEXT2[n]は式(3)を満たし、各エクステントSSEXTSS[n]のサイズSEXTSS[n]は式(6)を満たす:
ここで、式(6)の右辺に代入されるべきジャンプ時間TJUMP[n]は、例えば図19の表において、n番目のエクステントSSEXTSS[n]の後端から(n+1)番目のエクステントSSEXTSS[n+1]の先端までのセクタ数、すなわちジャンプJLR[n]のジャンプ距離SJUMPに対応する最大ジャンプ時間TJUMP_MAXに等しい。更に、変数TDIFF[n]は、プリロード期間PRR[n]、PRR[n+1]の長さの差に等しい:TDIFF[n]=SEXT2[n+1]/RUD72−SEXT2[n]/RUD72。
その他に、第1リード・バッファ2021の容量を可能な限り縮小するには、ベースビュー・データ・ブロックLnのサイズSEXT1[n]は2DエクステントEXT2D[n]の最小エクステント・サイズの下限値以下であればよい。すなわち、そのサイズSEXT1[n]は式(4)を満たす:
また、n番目のデータ・ブロックの組み合わせDn、Rn、LnではエクステントATC時間が等しいので、各データ・ブロックDn、Rn、LnのサイズSEXTm[n](m=3、2、1)は式(5)を満たす:
[スーパー・モードの性能に基づく条件]
図61は、スーパー・モードの再生装置内の再生処理系統を示すブロック図である。図61を参照するに、その再生処理系統は、BD−ROMドライブ6101、スイッチ6120、三つのリード・バッファ6121、6122、6123、及びシステム・ターゲット・デコーダ6124を含む。BD−ROMドライブ6101はBD−ROMディスク101からエクステントSPを読み出し、読み出し速度RUD108でスイッチ6120へ転送する。スイッチ6120は、エクステント起点を参照して、各エクステントSPを三種類のデータ・ブロックDn、Rn、Lnに分離する。ベースビュー・データ・ブロックLnは第1リード・バッファ6121へ格納され、ライトビュー・データ・ブロックRnは第2リード・バッファ6122へ格納され、デプスマップ・データ・ブロックDnは第3リード・バッファ6123へ格納される。各リード・バッファ6121、6122、6123は再生装置に内蔵のバッファ・メモリであり、BD−ROMドライブ6101からデータ・ブロックを受信して蓄積する。システム・ターゲット・デコーダ6124は、第1リード・バッファ6121内に蓄積された各ベースビュー・データ・ブロックからソースパケットをベースビュー転送速度REXT1で読み出す。システム・ターゲット・デコーダ6124は、第2リード・バッファ6122内に蓄積された各ライトビュー・データ・ブロックからソースパケットをライトビュー転送速度REXT2で読み出す。システム・ターゲット・デコーダ6124は、第3リード・バッファ6123内に蓄積された各デプスマップ・データ・ブロックからソースパケットをデプスマップ転送速度REXT3で読み出す。システム・ターゲット・デコーダ6124は更に、読み出されたデータ・ブロックの組み合わせを映像データVDと音声データADとに復号する。
読み出し速度RUD10872は通常ビット/秒で表され、いずれの平均転送速度REXT1、REXT2、REXT3の最高値RMAX1、RMAX2、RMAX3よりも高い値、例えば108Mbpsに設定される:RUD108>RMAX1、RUD108>RMAX2、RUD108>RMAX3。それにより、BD−ROMドライブ6101によってBD−ROMディスク101から一つのエクステントSPを読み出している間、システム・ターゲット・デコーダ6124の復号処理に伴う各リード・バッファ6121、6122、6123のアンダーフローが防止される。
図62の(a)、(b)、(c)は、一つのスーパー・エクステント・ブロックから3D映像がシームレスに再生されるとき、各リード・バッファ6121、6122、6123に蓄積されるデータ量DA1、DA2、DA3の変化を示すグラフである。図62の(d)は、そのスーパー・エクステント・ブロック6210とスーパー・モードでの再生経路6220との間の対応関係を示す模式図である。尚、図62の(a)−(c)の各グラフは、実際には階段状である増減を直線的な増減として近似的に表したものである。
図62の(a)−(c)を参照するに、n番目のデプスマップ・データ・ブロックDnの読み出し期間PRD[n]では、第3リード・バッファ6123の蓄積データ量DA3は、読み出し速度RUD108とデプスマップ転送速度REXT3[n]との間の差RUD108−REXT3[n]に等しい速度で増加し、第1リード・バッファ6121の蓄積データ量DA1はベースビュー転送速度REXT1[n−1]で減少し、第2リード・バッファ6122の蓄積データ量DA2はライトビュー転送速度REXT2[n−1]で減少する。図62の(d)を参照するに、n番目のデプスマップ・データ・ブロックDnからn番目のライトビュー・データ・ブロックRnまではゼロ・セクタ遷移J0[3n]が生じる。図62の(a)−(c)に示されているように、ゼロ・セクタ遷移期間PJ0[3n]では、第1リード・バッファ6121の蓄積データ量DA1はベースビュー転送速度REXT1[n−1]で減少し、第2リード・バッファ6122の蓄積データ量DA2はライトビュー転送速度REXT2[n−1]で減少し、第3リード・バッファ6123の蓄積データ量DA3はデプスマップ転送速度REXT3[n]で減少する。
図62の(a)−(c)を更に参照するに、n番目のライトビュー・データ・ブロックRnの読み出し期間PRR[n]では、第2リード・バッファ6122の蓄積データ量DA2は、読み出し速度RUD108とデプスマップ転送速度REXT2[n]との間の差RUD108−REXT2[n]に等しい速度で増加し、第3リード・バッファ6123の蓄積データ量DA3はデプスマップ転送速度REXT1[n]で減少し、第1リード・バッファ6121の蓄積データ量DA1はベースビュー転送速度REXT1[n−1]で減少する。図62の(d)を参照するに、n番目のライトビュー・データ・ブロックRnからn番目のベースビュー・データ・ブロックLnまではゼロ・セクタ遷移J0[3n+1]が生じる。図62の(a)−(c)に示されているように、ゼロ・セクタ遷移期間PJ0[3n+1]では、第1リード・バッファ6121の蓄積データ量DA1はベースビュー転送速度REXT1[n−1]で減少し、第2リード・バッファ6122の蓄積データ量DA2はライトビュー転送速度REXT2[n]で減少し、第3リード・バッファ6123の蓄積データ量DA3はデプスマップ転送速度REXT3[n]で減少する。
図62の(a)−(c)を参照するに、n番目のベースビュー・データ・ブロックLnの読み出し期間PRL[n]では、第1リード・バッファ6121の蓄積データ量DA1は、読み出し速度RUD108とベースビュー転送速度REXT1[n]との間の差RUD108−REXT1[n]に等しい速度で増加し、第2リード・バッファ6122の蓄積データ量DA2はライトビュー転送速度REXT2[n]で減少し、第3リード・バッファ6123の蓄積データ量DA3はデプスマップ転送速度REXT1[n]で減少する。図62の(d)を参照するに、n番目のベースビュー・データ・ブロックLnから(n+1)番目のデプスマップ・データ・ブロックD(n+1)まではゼロ・セクタ遷移J0[3n+2]が生じる。図62の(a)−(c)に示されているように、ゼロ・セクタ遷移期間PJ0[3n+2]では、第1リード・バッファ6121の蓄積データ量DA1はベースビュー転送速度REXT1[n]で減少し、第2リード・バッファ6122の蓄積データ量DA2はライトビュー転送速度REXT2[n]で減少し、第3リード・バッファ6123の蓄積データ量DA3はデプスマップ転送速度REXT1[n]で減少する。
スーパー・モードの再生装置がスーパー・エクステント・ブロック6210から3D映像をシームレスに再生するには、以下の条件が満たされればよい。
n番目のベースビュー・データ・ブロックLnのサイズSEXT1[n]は少なくとも、その読み出し期間PRL[n]から次のベースビュー・データ・ブロックL(n+1)の読み出し期間PRL[n+1]の直前までに、第1リード・バッファ6121からシステム・ターゲット・デコーダ6124へ転送されるデータ量に等しい。その場合、図62の(a)に示されているように、次のベースビュー・データ・ブロックL(n+1)の読み出し期間PRL[n+1]の直前では、第1リード・バッファ6121の蓄積データ量DA1が、n番目のベースビュー・データ・ブロックLnの読み出し期間PRL[n]の直前での量を下回らない。ここで、n番目のベースビュー・データ・ブロックLnの読み出し期間PRL[n]の長さは、そのベースビュー・データ・ブロックLnのサイズSEXT1[n]を読み出し速度RUD108で割った値SEXT1[n]/RUD108に等しい。一方、(n+1)番目のディペンデントビュー・データ・ブロックD(n+1)、R(n+1)の読み出し期間PRD[n+1]、PRR[n+1]の長さは、そのデータ・ブロックD(n+1)、R(n+1)のサイズSEXT2[n+1]、SEXT3[n+1]を読み出し速度RUD108で割った値SEXT2[n+1]/RUD108、SEXT3[n+1]/RUD108に等しい。従って、ベースビュー・データ・ブロックLnのサイズSEXT1[n]は次式(11)を満たせばよい:
同様に、n番目のライトビュー・データ・ブロックRnのサイズSEXT2[n]とデプスマップ・データ・ブロックDnのサイズSEXT3[n]はそれぞれ、次式(12)、(13)を満たせばよい:
尚、式(11)−(13)では、各ゼロ・セクタ遷移時間TJUMP0[・]は典型的な値TJUMP0に置き換えられている。
図63の(a)は、二つの異なるスーパー・エクステント・ブロック6301、6302から連続して3D映像がシームレスに再生されるとき、各リード・バッファ6121、6122、6133に蓄積されるデータ量DA1、DA2、DA3の変化、及びそれらの和DA1+DA2+DA3の変化を示すグラフ群である。図63の(b)は、それら二つのスーパー・エクステント・ブロック6301、6302とスーパー・モードでの再生経路6320との間の対応関係を示す模式図である。図63の(b)を参照するに、各スーパー・エクステント・ブロック6301、6302は、インターリーブ配置のデータ・ブロック群Dk、Rk、Lk(k=0、…、N−2、N−1、N、…)から構成されている。ここで、整数Nは、前のスーパー・エクステント・ブロック6301の含むベースビュー・データ・ブロックの総数を表す。二つのスーパー・エクステント・ブロック6301、6302は層境界LBで分離されている。再生経路6320に従って、まず、前のスーパー・エクステント・ブロック6301の全体が一つのエクステントSPEXTSP[0]として一括して読み出される。その直後に、層切り換えに伴うロングジャンプJLYが生じる。続いて、次のスーパー・エクステント・ブロック6302が別のエクステントSPEXTSP[1]として一括して読み出される。
図63の(a)では、一点鎖線のグラフは、第1リード・バッファ6121に蓄積されるデータ量DA1の変化を示し、点線のグラフは、第2リード・バッファ6122に蓄積されるデータ量DA2の変化を示し、破線のグラフは、第3リード・バッファ6123に蓄積されるデータ量DA3の変化を示し、実線のグラフは、それら三種類のデータ量の和DA1+DA2+DA3の変化を示す。ここで、その和DA1+DA2+DA3は実際には、データ・ブロックが一つ読み出されるごとに細かく変化する。しかし、実線のグラフは、その細かい変化を均して直線的に近似したものである。更に、ゼロ・セクタ遷移時間TJUMP0は一つのスーパー・エクステント・ブロック全体の読み出し期間PRSBLK[0]の長さに比べれば十分に無視できるので、図63の(a)ではゼロ・セクタ遷移時間TJUMP0は“0”とみなされている。
図63の(a)を参照するに、一つのスーパー・エクステント・ブロック6301の全体がBD−ROMディスク101から各リード・バッファ6121、6122、6123へ読み出される期間PRSBLK[0]では、各蓄積データ量DA1、DA2、DA3は増大する。具体的には、スーパー・エクステント・ブロック6301全体の読み出し期間PRSBLK[0]中、蓄積データ量の和DA1+DA2+DA3は、読み出し速度RUD108と平均転送速度REXTSP[0]との間の差RUD108−REXTSP[0]に等しい速度で増加する。その平均転送速度REXTSP[0]は、そのスーパー・エクステント・ブロック6301全体のサイズ、すなわちエクステントSPEXTSP[0]のサイズSEXTSP[0]をそのエクステントATC時間TEXTSPで割った値として評価される。そのような蓄積データ量DA1、DA2、DA3の増大は、各データ・ブロックDn、Rn、Lnのサイズを最小エクステント・サイズ以上に設計することによって実現可能である。
スーパー・エクステント・ブロック6301の後端のベースビュー・データ・ブロックL(N−1)が第1リード・バッファ6121に読み込まれた時点で、蓄積データ量の和DA1+DA2+DA3は最大値に達する。その直後のロングジャンプJLYの期間PJLYでは、蓄積データ量の和DA1+DA2+DA3は平均転送速度REXTSP[0]で減少する。従って、蓄積データ量の和DA1+DA2+DA3の最大値を十分に大きく調節することにより、ロングジャンプJLY中での各リード・バッファ6121−6123のアンダーフローを防止することができる。その結果、二つのスーパー・エクステント・ブロック6301、6302をシームレスに接続することができる。
蓄積データ量の和DA1+DA2+DA3の最大値は前のスーパー・エクステント・ブロック6301のサイズで決まる。従って、二つのスーパー・エクステント・ブロック6301、6302をシームレスに接続するには、前のスーパー・エクステント・ブロック6301のサイズ、すなわちエクステントSPEXTSP[0]のサイズSEXTSP[0]が次の条件を満たせばよい。
各スーパー・エクステント・ブロック6301、6302の先端に位置するディペンデントビュー・データ・ブロックの対D0+R0、DN+RNの読み出し期間PRD[0]+PRR[0]、PRD[N]+PRR[N]ではプリロードが行われる。従って、ロングジャンプJLY中での各リード・バッファ6121−6123のアンダーフローを防止するには、前のエクステントSPEXTSP[0]のエクステントATC時間TEXTSPが少なくとも、前のスーパー・エクステント・ブロック6301でのプリロード期間PRD[0]+PRR[0]の終了時点T10から次のスーパー・エクステント・ブロック6302でのプリロード期間PRD[N]+PRR[N]の終了時点T11までの期間の長さに等しければよい。すなわち、前のエクステントSPEXTSP[0]のサイズSEXTSP[0]は少なくとも、その期間T10−T11に各リード・バッファ6121−6123からシステム・ターゲット・デコーダ6124へ転送されるデータ量の和に等しければよい。
図63の(a)から明らかなとおり、期間T10−T11の長さは、前のスーパー・エクステント・ブロック6301の読み出し期間PRSBLK[0]の長さ、ロングジャンプJLYのジャンプ時間TJUMPーLY、及びスーパー・エクステント・ブロック6301、6302間でのプリロード期間PRD[0]+PRR[0]、PRD[N]+PRR[N]の長さの差TDIFFを足し合わせた値に等しい。更に、その読み出し期間PRSBLK[0]の長さは、前のエクステントSPEXTSP[0]のサイズSEXTSP[0]を読み出し速度RUD108で割った値SEXTSP[0]/RUD108に等しい。従って、前のエクステントSPEXTSP[0]のサイズSEXTSP[0]は次式(14)を満たせばよい:
ここで、各プリロード期間PRD[0]+PRR[0]、PRD[N]+PRR[N]の長さは、各スーパー・エクステント・ブロック6301、6302の先端に位置するディペンデントビュー・データ・ブロックの対D0+R0、DN+RNのサイズSEXT3[0]+SEXT2[0]、SEXT3[N]+SEXT2[N]を読み出し速度RUD108で割った値(SEXT3[0]+SEXT2[0])/RUD108、(SEXT3[N]+SEXT2[N])/RUD108に等しい。従って、プリロード期間PRD[0]+PRR[0]、PRD[N]+PRR[N]の長さの差TDIFFはそれらの値の差に等しい:TDIFF=(SEXT3[N]+SEXT2[N])/RUD108−(SEXT3[0]+SEXT2[0])/RUD108。以下、式(14)の右辺で表されるサイズを「エクステントSPの最小エクステント・サイズ」という。
[まとめ]
複数のスーパー・エクステント・ブロックから2D映像と3D映像とのいずれをもシームレスに再生するには上記の条件が全て満たされればよい。特に、データ・ブロック、エクステント・ブロック、及びスーパー・エクステント・ブロックの各サイズは次の条件1−8を満たせばよい。
条件1:2DエクステントのサイズSEXT2Dは式(1)を満たす。
条件2:ベースビュー・データ・ブロックのサイズSEXT1は式(2)を満たす。
条件3:ディペンデントビュー・データ・ブロックのサイズSEXT2、SEXT3は式(3)を満たす。
条件4:エクステント・ブロックのサイズSEXTSSは式(6)を満たす。
条件5:ベースビュー・データ・ブロックのサイズSEXT1は式(11)を満たす。
条件6:ライトビュー・データ・ブロックのサイズSEXT2は式(12)を満たす。
条件7:デプスマップ・データ・ブロックのサイズSEXT3は式(13)を満たす。
条件8:スーパー・エクステント・ブロックのサイズSEXTSPは式(14)を満たす。
(F−3)層境界の前後での再生経路の分離
上記のとおり、映像のシームレス再生には、スーパー・エクステント・ブロックは条件1−8を満たせばよい。それは、各データ・ブロックのサイズを十分に拡大すれば実現可能ではある。しかし、図51の(a)に示されている配置と同様に、リード・バッファの容量が十分に大きく確保されなければならない。
層切り換え等に伴うロングジャンプ中での映像のシームレス再生を可能にしたまま、リード・バッファの容量を更に削減するには、層境界等、そのロングジャンプの必要な位置の前後で再生経路を、再生装置の動作モード別に分離すればよい。それには、その位置の前後でデータ・ブロック群の配置をインターリーブ配置から変更すればよい。
図64は、BD−ROMディスク101の層境界LBの前後に記録された三種類のデータ・ブロック群の配置を示す模式図である。図64を参照するに、層境界LBの前には、第1のスーパー・エクステント・ブロック6401、2D再生専用ブロックL22D、SS再生専用ブロックR2SS、L2SS、及び第2のスーパー・エクステント・ブロック6402が順番に配置されている。一方、層境界LBの後には第3のスーパー・エクステント・ブロック6403が配置されている。各スーパー・エクステント・ブロック6401−6403内では、三種類のデータ・ブロックDn、Rn、Lnがインターリーブ配置を構成している(n=…、0、1、2、3、…)。特にn番目のデータ・ブロックの組Dn、Rn、LnではエクステントATC時間が等しい。更に、各組ではデータ・ブロックが、デプスマップ・データ・ブロックDn、ライトビュー・データ・ブロックRn、及びベースビュー・データ・ブロックLnの順に並ぶ。第2のスーパー・エクステント・ブロック6402では、第1のスーパー・エクステント・ブロック6401の後端に位置するデータ・ブロックD1、R1、L1とも、第3のスーパー・エクステント・ブロック6403の先端に位置するデータ・ブロックD4、R4、L4とも、各ストリーム・データの内容が連続している。第2のスーパー・エクステント・ブロック6402に含まれるライトビュー・データ・ブロックR2SPとベースビュー・データ・ブロックL2SPとはいずれもSP再生専用ブロックである。2D再生専用ブロックL22D、SS再生専用ブロックL2SS、及びSP再生専用ブロックL2SPは互いにビット単位で一致し、SS再生専用ブロックR2SSとSP再生専用ブロックR2SPとは互いにビット単位で一致する。
図64を更に参照するに、SS再生専用ブロックL2SSとSP再生専用ブロックL2SPとを除き、ベースビュー・データ・ブロックはファイル2D6410のエクステントEXT2D[0]、EXT2D[1]、EXT2D[2]としてアクセス可能である。特に、第1のスーパー・エクステント・ブロック6401内の最後のベースビュー・データ・ブロックL1と2D再生専用ブロックL22Dとの対L1+L[2]2Dは単一の2DエクステントEXT2D[1]としてアクセス可能である。一方、SP再生専用ブロックR2SP以外のライトビュー・データ・ブロックは、第1ファイルDEP6412のエクステントEXT2[0]、EXT2[1]、EXT2[2]、EXT2[3]としてアクセス可能である。更に、SP再生専用ブロックR2SP、L2SPを除き、隣接するライトビュー・データ・ブロックとベースビュー・データ・ブロックとの対R0+L0、R1+L1、R2SS+L2SS、R3+L3は、ファイルSS6420のエクステントEXTSS[0]、EXTSS[1]、EXTSS[2]としてアクセス可能である。その場合、2D再生専用ブロックL22DとSP再生専用ブロックL2SPとを除き、ベースビュー・データ・ブロックL0、L1、L2SS、L3は、第1ファイル・ベース6411のエクステントEXT1[0]、EXT1[1]、EXT1[2]、EXT1[3]として、エクステントSSEXTSS[0]、EXTSS[1]、EXTSS[2]、EXTSS[3]から抽出可能である。
その他に、デプスマップ・データ・ブロックDnは第2ファイルDEP6413のエクステントEXT3[n]としてアクセス可能である。更に、2D再生専用ブロックL22DとSS再生専用ブロックR2SS、L2SSとを除き、各スーパー・エクステント・ブロック6401−6403の全体はファイルSP6430のエクステントEXTSP[0]、EXTSP[1]、EXTSP[2]としてアクセス可能である。その場合、2D再生専用ブロックL22DとSS再生専用ブロックL2SSとを除き、ベースビュー・データ・ブロックL0、L1、L2SP、L3は、第2ファイル・ベース6421のエクステントEXT1[0]、EXT1[1]、EXT1[2]、EXT1[3]として、エクステントSPEXTSP[0]、EXTSP[1]、EXTSP[2]から抽出可能である。同様に、SS再生専用ブロックR2SS以外のライトビュー・データ・ブロックR0、R1、R2SP、R3は、第3ファイルDEP6422のエクステントEXT2[0]、EXT2[1]、EXT2[2]、EXT2[3]として、エクステントSPEXTSP[0]、EXTSP[1]、EXTSP[2]から抽出可能である。ここで、第2ファイル・ベース6421と第3ファイルDEP6422とはいずれも第1ファイル・ベース6411と同様、「仮想的なファイル」である。すなわち、それらのファイル6421、6422はいずれもファイルシステムでは認識されず、図2に示されているディレクトリ/ファイル構造には現れない。第2ファイル・ベース6421の各エクステントEXT1[n]と第3ファイルDEP6422の各エクステントEXT2[n]とは、ベースビュー・エクステントと同様、クリップ情報ファイル内のエクステント起点によって参照される。
2D再生モードの再生装置はファイル2D6410を再生する。従って、第1のスーパー・エクステント・ブロック6401内のベースビュー・データ・ブロックL0、L1、2D再生専用ブロックL22D、及び第3のスーパー・エクステント・ブロック6403内のベースビュー・データ・ブロックL3が2DエクステントEXT2D[n]として読み出され、他のデータ・ブロックの読み出しがジャンプによってスキップされる。それ故、2D映像のシームレス再生には、それらの2DエクステントEXT2D[n]が条件1を満たせばよい。
L/Rモードの再生装置はファイルSS6420を再生する。従って、SP再生専用ブロックR2SP、L2SPを除き、隣接するライトビュー・データ・ブロックとベースビュー・データ・ブロックとの対R0+L0、R1+L1、R2SS+L2SS、R3+L3がエクステントSSEXTSS[n]として連続して読み出される。一方、他のデータ・ブロックの読み出しはジャンプによってスキップされる。それ故、3D映像のシームレス再生には、それらのエクステントSSEXTSS[n]に含まれる各データ・ブロックが条件2、3を満たし、かつ、各エクステントSSEXTSS[n]の全体が条件4を満たせばよい。
スーパー・モードの再生装置はファイルSP6430を再生する。従って、各スーパー・エクステント・ブロック6401−6403の全体がエクステントSPEXTSP[n]として連続して読み出され、他のデータ・ブロックの読み出しがジャンプによってスキップされる。それ故、3D映像のシームレス再生には、それらのエクステントSPEXTSP[n]に含まれる各データ・ブロックが条件5−7を満たし、かつ、各エクステントSPEXTSP[n]の全体が条件8を満たせばよい。
図64から明らかなとおり、2D再生モード、L/Rモード、及びスーパー・モードのそれぞれで再生経路は、層境界LBの直前に、異なるベースビュー・データ・ブロックL22D、L2SS、L2SPを通る。ここで、それらのデータ・ブロックL22D、L2SS、L2SPは互いにビット単位で一致しているので、いずれの再生モードでも、再生されるベースビュー・ビデオ・フレームは等しい。このように、層切り換えに伴うロングジャンプの直前で再生経路が分離されている。従って、シームレス再生に必要な条件1−8が同時に満たされるように各データ・ブロックのサイズを設計することは容易である。
(F−4)スーパー・モードの再生装置の構成
スーパー・モードの再生装置として必要な構成の基本部分は、図44、46に示されている3D再生装置の構成と同様である。従って、以下では3D再生装置の構成からの拡張部分及び変更部分について説明し、基本部分の詳細についての説明は上記の3D再生装置についての説明を援用する。
図65は、スーパー・モードの再生装置6500の機能ブロック図である。再生装置6500は、BD−ROMドライブ6501、再生部6502、及び制御部6503を含む。再生部6502は、スイッチ6520、第1リード・バッファ6521、第2リード・バッファ6522、第3リード・バッファ6523、システム・ターゲット・デコーダ6524、及びプレーン加算部6524を含む。制御部6503は、動的シナリオ・メモリ6531、静的シナリオ・メモリ6532、ユーザイベント処理部6533、プログラム実行部6534、再生制御部6535、及びプレーヤ変数記憶部6536を含む。再生部6502と制御部6503とは互いに異なる集積回路に実装されている。その他に、両者が単一の集積回路に統合されていてもよい。特に、制御部6503は、図44に示されている3D再生装置内のものと同様である。従って、その詳細についての説明は上記の3D再生装置についての説明を援用する。
BD−ROMドライブ6501は、図44に示されている3D再生装置内のもの4401と同様な構成要素を含む。BD−ROMドライブ6501は、再生制御部6535からLBNの範囲が指示されたとき、その範囲の示すBD−ROMディスク101上のセクタ群からデータを読み出す。特にエクステントSSとエクステントSPとのそれぞれに属するソースパケット群はBD−ROMドライブ6501からスイッチ6520へ転送される。ここで、各エクステントSPは、図57に示されているとおり、三種類のデータ・ブロックの組を一つ以上含む。それらのデータ・ブロックは異なるリード・バッファ6521−6523へパラレルに転送されなければならない。従って、BD−ROMドライブ6501には3D再生装置内のBD−ROMドライブ4401以上のアクセス・スピードが求められる。
スイッチ6520はBD−ROMドライブ6501からはエクステントSS又はエクステントSPを受信する。一方、スイッチ6520は再生制御部6535からは、そのエクステントSS又はエクステントSPに含まれる各データ・ブロックの境界を示す情報を受信する。その情報は、例えばそのエクステントSS又はエクステントSPの先頭から各境界までのソースパケット数を示す。再生制御部6535はその情報を、クリップ情報ファイル内のエクステント起点に基づいて生成する。スイッチ6520は更に、その情報を利用して各エクステントSS又はエクステントSPからベースビュー・エクステントを抽出して第1リード・バッファ6521へ送出する。同様に、スイッチ6520は、ライトビュー・エクステントを第2リード・バッファ6522へ送出し、デプスマップ・エクステントを第3リード・バッファ6523へ送出する。
リード・バッファ6521−6523はいずれも、再生部6502内のメモリ素子を利用したバッファ・メモリである。特に単一のメモリ素子内の異なる領域が各リード・バッファ6521−6523として利用される。その他に、異なるメモリ素子が個別に各リード・バッファ6521−6523として利用されてもよい。
L/Rモードのシステム・ターゲット・デコーダ6524はまず、第1リード・バッファ6521に格納されたベースビュー・エクステントと、第2リード・バッファ6522に格納されたライトビュー・エクステントとから交互にソースパケットを読み出す。一方、デプス・モードのシステム・ターゲット・デコーダ6524はまず、第1リード・バッファ6521に格納されたベースビュー・エクステントと、第3リード・バッファ6523に格納されたデプスマップ・エクステントとから交互にソースパケットを読み出す。各モードのシステム・ターゲット・デコーダ6524は次に、多重分離処理によって各ソースパケットからエレメンタリ・ストリームを分離し、更に分離されたものの中から、再生制御部6535から指示されたPIDの示すものを復号する。システム・ターゲット・デコーダ6524は続いて、復号後のエレメンタリ・ストリームをその種類別に内蔵のプレーン・メモリに書き込む。特に、ベースビュー・ビデオ・ストリームは左映像プレーン・メモリに書き込まれ、ライトビュー・ビデオ・ストリームは右映像プレーン・メモリに書き込まれ、デプスマップ・ストリームはデプス・プレーンに書き込まれる。その他のエレメンタリ・ストリームは専用のプレーン・メモリに書き込まれ、又は音声ミキサに送出される。システム・ターゲット・デコーダ6524はその他に、プログラム実行部6534からのグラフィックス・データに対してレンダリング処理を行ってイメージ・プレーン・メモリに書き込む。
システム・ターゲット・デコーダ6524は、図44に示されているものと同様に、B−D表示モード/B−B表示モード、及び、2プレーン・モード/1プレーン+オフセット・モード/1プレーン+ゼロ・オフセット・モードのそれぞれに対応可能である。従って、その詳細についての説明は、図44に示されているものの説明を援用する。
プレーン加算部6525はシステム・ターゲット・デコーダ6524から各種のプレーン・データを受信し、それらを互いに重畳して一つのフレーム又はフィールドに合成する。特にL/Rモードのプレーン加算部6525は、左映像プレーン・データには、他のプレーン・データのうち、レフトビューを表すものを重畳し、右映像プレーン・データには、ライトビューを表すものを重畳する。一方、デプス・モードのプレーン加算部6525はまず、左映像プレーン・データとデプスマップ・プレーン・データとからレフトビューとライトビューとのビデオ・プレーン・データの対を生成する。その後、プレーン加算部6525はL/Rモードでの合成処理と同様に合成処理を行う。
プレーン加算部6525は再生制御部6535から、副映像プレーン、PGプレーン、IGプレーン、又はイメージ・プレーンの表示モードとして1プレーン+オフセット・モード又は1プレーン+ゼロ・オフセット・モードが指示されているとき、システム・ターゲット・デコーダ6524から受信されたプレーン・データに対してクロッピング処理を行う。それにより、レフトビューとライトビューとのプレーン・データの対が生成される。そのクロッピング処理の詳細についての説明は、図44に示されているものについての説明を援用する。その後、プレーン加算部6525はL/Rモードでの合成処理と同様に合成処理を行う。合成後のフレーム又はフィールドは表示装置103へ送出され、その画面に表示される。
図66は、システム・ターゲット・デコーダ6524の機能ブロック図である。図66に示されている構成要素は、図46に示されている3D再生装置のもの4423とは次の二点で異なる:(1)リード・バッファから各デコーダへの入力系統が三重化されている点、並びに、(2)デプスマップ・デコーダ6613が増設されている点。一方、その他のデコーダ群、音声ミキサ、イメージ・プロセッサ、及びプレーン・メモリ群は、図46に示されている3D再生装置のものと同様である。従って、以下では、第3リード・バッファ6523からの入力系統6611、6612とデプスマップ・デコーダ6613とについて説明し、その他同様な構成要素の詳細についての説明は図46についての説明を援用する。
第3ソース・デパケタイザ6611は、第3リード・バッファ6523からソースパケットを読み出し、更にその中からTSパケットを抽出して第3PIDフィルタ6612へ送出する。第3ソース・デパケタイザ6611は更に、各TSパケットの送出時刻を、各ソースパケットのATSの示す時刻に合わせる。その同期は、図46に示されているソース・デパケタイザによる同期と同様に、27MHzクロックの生成するクロック・パルス数を第3ATCカウンタでカウントすることによって実現可能である。
第3PIDフィルタ6612は、第3ソース・デパケタイザ6611からTSパケットを受信する度に、そのPIDを選択対象のPIDと比較する。その選択対象のPIDは再生制御部6535によって予め、3Dプレイリスト・ファイル内のSTNテーブルに従って指定されている。両方のPIDが一致したとき、第3PIDフィルタ6612はそのTSパケットを、そのPIDに割り当てられたデコーダへ転送する。例えば、PIDが0x1013であるとき、そのTSパケットはデプスマップ・デコーダ6613内のTB(1)6601へ転送される。その他に、PIDが、0x1B20−0x1B3F、0x1220−0x127F、及び0x1420−0x147Fの各範囲に属するとき、対応するTSパケットはそれぞれ、副映像デコーダ、PGデコーダ、及びIGデコーダへ転送される。
ここで、デプスマップ・ストリームには、レフトビューのデプスマップを表すエレメンタリ・ストリームに加えて、ライトビューのデプスマップを表すエレメンタリ・ストリームが多重化されている場合がある。以下、前者を「レフトビュー・デプスマップ・ストリーム」といい、後者を「ライトビュー・デプスマップ・ストリーム」という。その場合、レフトビューとライトビューとの各デプスマップ・ストリームには異なるPIDが割り当てられる。第3PIDフィルタ6612は、各デプスマップ・ストリームを含むTSパケットの送出先を、そのPIDに依って変更する。それにより、レフトビュー・デプスマップ・ストリームを含むTSパケットはデプスマップ・デコーダ6613内のTB(1)6601へ転送され、ライトビュー・デプスマップ・ストリームを含むTSパケットはTB(2)6608へ転送される。更に、ライトビューのデプスマップは、MVC等の符号化方式に従い、レフトビューのデプスマップを参照ピクチャとして利用して圧縮されている。従って、デプスマップ・デコーダ6613によるレフトビューとライトビューとの各デプスマップ・ストリームの復号は、主映像デコーダによるベースビューとディペンデントビューとの各ビデオ・ストリームの復号と同様に行われる。
デプスマップ・デコーダ6613は、主映像デコーダと同様に、TB(1)6601、MB(1)6602、EB(1)6603、TB(2)6608、MB(2)6609、EB(2)6610、バッファ・スイッチ6606、DEC6604、DPB6605、及びピクチャ・スイッチ6607を含む。TB(1)6601、MB(1)6602、EB(1)6603、TB(2)6608、MB(2)6609、EB(2)6610、及びDPB6605はいずれもバッファ・メモリである。各バッファ・メモリは、デプスマップ・デコーダ6613に内蔵されたメモリ素子の一領域を利用する。その他に、それらのバッファ・メモリのいずれか又は全てが、異なるメモリ素子に分離されていてもよい。
TB(1)6601は、レフトビュー・デプスマップ・ストリームを含むTSパケットを第3PIDフィルタ6612から受信してそのまま蓄積する。MB(1)6602は、TB(1)6601に蓄積されたTSパケットからPESパケットを復元して蓄積する。そのとき、各TSパケットからTSヘッダが除去される。EB(1)6603は、MB(1)6602に蓄積されたPESパケットから、符号化されたデプスマップを抽出して蓄積する。そのとき、各PESパケットからPESヘッダが除去される。
TB(2)6608は、ライトビュー・デプスマップ・ストリームを含むTSパケットを第3PIDフィルタ6612から受信してそのまま蓄積する。MB(2)6609は、TB(2)6608に蓄積されたTSパケットからPESパケットを復元して蓄積する。そのとき、各TSパケットからTSヘッダが除去される。EB(2)6610は、MB(2)6609に蓄積されたPESパケットから、符号化されたデプスマップを抽出して蓄積する。そのとき、各PESパケットからPESヘッダが除去される。
バッファ・スイッチ6606は、EB(1)6603とEB(2)6610とのそれぞれに蓄積されたデプスマップのヘッダをDEC6604からの要求に応じて転送する。バッファ・スイッチ6606は更に、そのデプスマップを、元のTSパケットに含まれるDTSの示す時刻にDEC6604へ転送する。ここで、レフトビューとライトビューとのデプスマップ・ストリーム間では、DTSの等しいものが対を構成している。デプスマップの符号化時において、各対の一方が他方の参照ピクチャとして利用されている。従って、バッファ・スイッチ6606は、DTSの等しい一対のデプスマップのうち、EB(1)6603に蓄積された方を先にDEC6604へ転送する。
DEC6604は、デプスマップの復号処理に特化したハードウェア・デコーダであり、特にその復号処理のアクセラレータ機能を備えたLSIで構成されている。DEC6604は、バッファ・スイッチ6606から転送されたデプスマップを順次復号する。その復号処理では、DEC6604は予め、各デプスマップのヘッダを解析して、そのデプスマップの圧縮符号化方式と属性とを特定し、それらに応じて復号方法を選択する。DEC6604は更に、復号された非圧縮のデプスマップをDPB6605へ転送する。
DPB6605は、復号された非圧縮のデプスマップを一時的に保持する。DEC6604がPピクチャ及びBピクチャを復号するとき、DPB6605はDEC6604からの要求に応じて、保持されている非圧縮のデプスマップの中から参照ピクチャを検索してDEC6604に提供する。
ピクチャ・スイッチ6607は、DPB6605から非圧縮の各デプスマップを、元のTSパケットに含まれるPTSの示す時刻に、左デプス・プレーン・メモリ6620と右デプス・プレーン・メモリ6621とのいずれかに書き込む。ここで、レフトビューとライトビューとのデプスマップの対ではPTSが等しい。従って、ピクチャ・スイッチ6607は、DPB6605に保持された、PTSの等しい一対のデプスマップのうち、レフトビューのデプスマップを先に左デプス・プレーン・メモリ6620に書き込み、続いてライトビューのデプスマップを右デプス・プレーン・メモリ6621に書き込む。デプス・モードのプレーン加算部6525は、ビデオ・プレーンを左映像プレーン・メモリから読み出すときは、左デプス・プレーン・メモリ6520内のデプスマップを同時に読み出す。一方、プレーン加算部6525は、ビデオ・プレーンを右映像プレーン・メモリから読み出すときは、右デプス・プレーン・メモリ6521内のデプスマップを同時に読み出す。
(G)図15に示されているインターリーブ配置のデータ・ブロック群において、エクステントATC時間の等しいデータ・ブロックの対では更に、再生期間が一致し、かつビデオ・ストリームの再生時間が等しくてもよい。すなわち、それらのデータ・ブロック間でVAUの数、又はピクチャの数が等しくてもよい。その意義は次のとおりである。
図67の(a)は、隣接するベースビュー・データ・ブロックとディペンデントビュー・データ・ブロックとの間でエクステントATC時間が異なり、かつビデオ・ストリームの再生時間が異なるときの再生経路を示す模式図である。図67の(a)を参照するに、先頭のベースビュー・データ・ブロックB[0]の再生時間は4秒間であり、先頭のディペンデントビュー・データ・ブロックD[0]の再生時間は1秒間である。ここで、ディペンデントビュー・データ・ブロックD[0]の復号に必要なベースビュー・ビデオ・ストリームの部分はそのディペンデントビュー・データ・ブロックD[0]と同じ再生時間を持つ。従って、再生装置内のリード・バッファの容量を節約するには、図67の(a)に矢印6710で示されているように、再生装置にベースビュー・データ・ブロックB[0]とディペンデントビュー・データ・ブロックD[0]とを交互に同じ再生時間ずつ、例えば1秒間ずつ読み込ませることが好ましい。しかし、その場合、図67の(a)に破線で示されているように、読み出し処理の途中でジャンプが生じる。その結果、読み出し処理を復号処理に間に合わせることが難しいので、シームレス再生を確実に持続することが難しい。
図67の(b)は、隣接するベースビュー・データ・ブロックとディペンデントビュー・データ・ブロックとの間でビデオ・ストリームの再生時間が等しいときの再生経路を示す模式図である。本発明の実施形態1によるBD−ROMディスク101上では、図67の(b)に示されているように、隣接する一対のデータ・ブロックの間でビデオ・ストリームの再生時間が等しくてもよい。例えば、先頭のデータ・ブロックの対B[0]、D[0]ではビデオ・ストリームの再生時間が共に1秒に等しく、二番目のデータ・ブロックの対B[1]、D[1]ではビデオ・ストリームの再生時間が共に0.7秒に等しい。その場合、3D再生モードの再生装置は、図67の(b)に矢印6720で示されているように、データ・ブロックB[0]、D[0]、B[1]、D[1]、…を先頭から順番に読み出す。それだけで、再生装置はメインTSとサブTSとを交互に同じ再生時間ずつ読み出すことをスムーズに実現できる。特にその読み出し処理ではジャンプが生じないので、3D映像のシームレス再生が確実に持続可能である。
実際には、隣接するベースビュー・データ・ブロックとディペンデントビュー・データ・ブロックとの間でエクステントATC時間が等しければ、読み出し処理にジャンプを生じさせることなく、復号処理の同期を維持することはできる。従って、再生期間又はビデオ・ストリームの再生時間が等しくなくても、図67の(b)に示されている場合と同様に、再生装置はデータ・ブロック群を先頭から順番に読み出すだけで、3D映像のシームレス再生を確実に持続できる。
隣接するベースビュー・データ・ブロックとディペンデントビュー・データ・ブロックとの間では、VAUのいずれかのヘッダの数、又はPESヘッダの数が等しくてもよい。データ・ブロック間での復号処理の同期にはそれらのヘッダが利用される。従って、データ・ブロック間でヘッダの数が等しければ、VAUそのものの数が等しくなくても、復号処理の同期を維持することは比較的容易である。更に、VAUそのものの数が等しい場合とは異なり、VAUのデータが全て同じデータ・ブロック内に多重化されていなくてもよい。それ故、BD−ROMディスク101のオーサリング工程において、ストリーム・データの多重化の自由度が高い。
隣接するベースビュー・データ・ブロックとディペンデントビュー・データ・ブロックとの間ではエントリ・ポイントの数が等しくてもよい。図68は、その条件をスーパー・エクステント・ブロックに適用した場合でのエントリ・ポイントとデータ・ブロック群との間の対応関係を示す模式図である。図68を参照するに、ファイル2D241のエクステントEXT2D[n](n=0、1、2、…)はベースビュー・データ・ブロックLnを参照し、第1ファイルDEP242のライトビュー・エクステントEXT2[n]はライトビュー・データ・ブロックRnを参照し、第2ファイルDEP243のデプスマップ・エクステントEXT3[n]はデプスマップ・データ・ブロックDnを参照する。図68には、各エントリ・ポイントが三角形6801、6802、6803で示され、各エクステントの含むエントリ・ポイントの数が数字で示されている。三つのファイル241、242、243の間では、先頭から同じ順序のエクステントEXT2D[n]、EXT2[n]、EXT3[n]が、同じ数のエントリ・ポイント6801、6802、6803を含む。スーパー・エクステント・ブロックDn、Rn、Lnから3D映像を再生するとき、L/Rモードではデプスマップ・データ・ブロックDnごとにジャンプが生じ、デプス・モードではライトビュー・データ・ブロックRnごとにジャンプが生じる。一方、スーパー・モードでは、データ・ブロック間にジャンプが生じることはない。このように、再生モードに応じてジャンプの有無は異なる。しかし、データ・ブロック間でエントリ・ポイントの数が等しいとき、再生時間も実質的に等しい。従って、ジャンプの有無に関わらず、復号処理の同期を維持することは容易である。更に、VAUそのものの数が等しい場合とは異なり、VAUのデータが全て同じデータ・ブロック内に多重化されていなくてもよい。それ故、BD−ROMディスク101のオーサリング工程において、ストリーム・データの多重化の自由度が高い。
(H)マルチアングル
図69の(a)は、マルチアングルに対応する多重化ストリーム・データの再生経路を示す模式図である。図69の(a)を参照するに、その多重化ストリーム・データには、ベースビュー、ライトビュー、及びデプスマップの三種類のストリーム・データL、R、Dが多重化されている。例えばL/Rモードではベースビューとライトビューとのストリーム・データL、Rがパラレルに再生される。更に、マルチアングルでの再生期間TANGで再生される部分にはアングル別のストリーム・データAk、Bk、Ckが多重化されている(k=0、1、2、…、n)。各アングルのストリーム・データAk、Bk、Ckは、再生時間がアングルチェンジ間隔に等しい部分に分割されている。各部分Ak、Bk、Ckには更に、ベースビュー、ライトビュー、及びデプスマップの各ストリーム・データが多重化されている。マルチアングル期間TANGでは、ユーザの操作又はアプリケーション・プログラムの指示に応じて、アングル別のストリーム・データAk、Bk、Ckの間で再生対象を切り換えることができる。
図69の(b)は、BD−ROMディスク上に記録されたデータ・ブロック群6901と、それらに対するL/Rモードでの再生経路6902とを示す模式図である。そのデータ・ブロック群6901は、図69の(a)に示されているストリーム・データL、R、D、Ak、Bk、Ckを含む。図69の(b)を参照するに、そのデータ・ブロック群6901では、通常のストリーム・データL、R、Dに加え、アングル別のストリーム・データAk、Bk、Ckがインターリーブ配置で記録されている。L/Rモードでは、再生経路6902の示すように、ライトビュー・データ・ブロックRとベースビュー・データ・ブロックLとは読み出され、デプスマップ・データ・ブロックDの読み出しはジャンプによってスキップされる。更に、アングル別のストリーム・データAk、Bk、Ckのうち、選択されたもののデータ・ブロックA0、B1、…、Cnは読み出され、その他のデータ・ブロックの読み出しはジャンプによってスキップされる。
図69の(c)は、アングル別のストリーム・データAk、Bk、Ckを構成するスーパー・エクステント・ブロックを示す模式図である。図69の(c)を参照するに、各アングルのストリーム・データAk、Bk、Ckでは、三種類のデータ・ブロックL、R、Dがインターリーブ配置を構成している。L/Rモードでは、再生経路6902の示すように、アングル別のストリーム・データAk、Bk、Ckのうち、選択されたものA0、B1、…、Cnからライトビュー・データ・ブロックRとベースビュー・データ・ブロックLとが読み出される。一方、他のデータ・ブロックの読み出しはジャンプによってスキップされる。それに対し、スーパー・モードでは、選択されたアングルのストリーム・データA0、B1、…、Cnから全てのデータ・ブロックが連続して読み出される。一方、他のアングルのストリーム・データの読み出しはジャンプによってスキップされる。その他に、選択の有無に関わらず、全てのアングルのストリーム・データが読み出されてもよい。
尚、各アングルのストリーム・データAk、Bk、Ckでは、ベースビュー、ライトビュー、及びデプスマップの各ストリーム・データが単一の多重化ストリーム・データに収められていてもよい。但し、その記録レートは、2D再生装置で再生可能なシステムレートの範囲に抑えられなければならない。また、その多重化ストリーム・データと他の3D映像の多重化ストリーム・データとの間では、システム・ターゲット・デコーダに転送されるべきストリーム・データ(TS)の数が異なる。従って、各プレイアイテム情報(PI)は、再生対象のTSの数を示すフラグを含んでもよい。そのフラグを利用して、それらの多重化ストリーム・データを一つのプレイリスト・ファイルの中で切り換えられることができる。3D再生モードで2つのTSを再生対象として規定するPIでは、そのフラグが2TSを示す。一方、上記の多重化ストリーム・データのような単一のTSを再生対象として規定するPIでは、そのフラグが1TSを示す。3D再生装置は、そのフラグの値に応じて、システム・ターゲット・デコーダの設定を切り換えることができる。更に、そのフラグは、コネクション・コンディション(CC)の値で表現されても良い。例えば、CCが“7”を示すときは、2TSから1TSへの移行を示し、“8”を示すときは、1TSから2TSへの移行を示す。
《実施形態2》
以下、本発明の実施形態2として、本発明の実施形態1による記録媒体の記録装置及び記録方法について説明する。その記録装置は、いわゆるオーサリング装置と呼ばれるものである。オーサリング装置は通常、頒布用の映画コンテンツの制作スタジオに設置され、オーサリング・スタッフによって使用される。記録装置はオーサリング・スタッフの操作に従って、まず映画コンテンツを、MPEG規格に則った圧縮符号化方式のデジタル・ストリーム、すなわちAVストリーム・ファイルに変換する。記録装置は次にシナリオを生成する。「シナリオ」は、映画コンテンツに含まれる各タイトルの再生方法を規定した情報であり、具体的には上記の動的シナリオ情報及び静的シナリオ情報を含む。記録装置は続いて、上記のデジタル・ストリーム及びシナリオから、BD−ROMディスク用のボリューム・イメージ又はアップデート・キットを生成する。記録装置は最後に、実施形態1によるエクステントの配置を利用して、ボリューム・イメージを記録媒体に記録する。
図70は、その記録装置の内部構成を示すブロック図である。図70を参照するに、その記録装置は、ビデオ・エンコーダ7001、素材制作部7002、シナリオ生成部7003、BDプログラム制作部7004、多重化処理部7005、フォーマット処理部7006、及びデータベース部7007を含む。
データベース部7007は記録装置に内蔵の不揮発性記憶装置であり、特にハードディスクドライブ(HDD)である。データベース部7007はその他に、記録装置に外付けされたHDDであってもよく、記録装置に内蔵の、又は外付けされた不揮発性半導体メモリ装置であってもよい。
ビデオ・エンコーダ7001は、非圧縮のビットマップ・データ等の映像データをオーサリング・スタッフから受け付けて、それをMPEG−4 AVC又はMPEG−2等の圧縮符号化方式で圧縮する。それにより、主映像のデータはプライマリ・ビデオ・ストリームに変換され、副映像のデータはセカンダリ・ビデオ・ストリームに変換される。特に3D映像のデータはベースビュー・ビデオ・ストリームとディペンデントビュー・ビデオ・ストリームとに変換される。ビデオ・エンコーダ7001は、図6に示されているように、レフトビュー・ビデオ・ストリームをそれ自身のピクチャ間での予測符号化によってベースビュー・ビデオ・ストリームに変換し、ライトビュー・ビデオ・ストリームを、それ自身のピクチャだけでなく、ベースビュー・ピクチャとの間の予測符号化によってディペンデントビュー・ビデオ・ストリームに変換する。尚、ライトビュー・ビデオ・ストリームがベースビュー・ビデオ・ストリームに変換されてもよい。更に、レフトビュー・ビデオ・ストリームがディペンデントビュー・ビデオ・ストリームに変換されてもよい。
ビデオ・エンコーダ7001は更に、このピクチャ間予測符号化の処理過程で、左映像と右映像との間での各イメージの動きベクトルを検出し、それらから3D映像内の各イメージの奥行き情報を算出する。算出された各イメージの奥行き情報はフレーム奥行き情報7010に整理されてデータベース部7007に保存される。その他に、ビデオ・エンコーダ7001は、その奥行き情報7010を利用して、左映像又は右映像に対するデプスマップを生成してもよい。その場合、ビデオ・エンコーダ7001は、図7に示されているように、左映像又は右映像のストリーム・データとデプスマップ・ストリームとのそれぞれを、それ自身のピクチャ間での予測符号化によってベースビュー・ビデオ・ストリームとデプスマップ・ストリームとに変換する。変換後の各ストリーム7011はデータベース部7007に保存される。
図71の(a)、(b)は、3D映像の一シーンの表示に利用される左映像ピクチャと右映像ピクチャとを表す模式図であり、(c)は、ビデオ・エンコーダ7001によってそれらのピクチャから算出された奥行き情報を示す模式図である。
ビデオ・エンコーダ7001はまず、左右のピクチャ間の冗長性を利用して各ピクチャを圧縮する。そのとき、ビデオ・エンコーダ7001は圧縮前の左右のピクチャを8×8又は16×16の画素マトリクスごとに、すなわちマクロブロックごとに比較して、両ピクチャ間での各イメージの動きベクトルを検出する。具体的には、図71の(a)、(b)に示されているように、まず、左映像ピクチャ7101と右映像ピクチャ7102とはそれぞれ、マクロブロック7103のマトリクスに分割される。次に、両ピクチャ7101、7102間でイメージ・データがマクロブロック7103ごとに比較され、その結果から各イメージの動きベクトルが検出される。例えば「家」のイメージ7104を表す領域は両ピクチャ7101、7102間で実質的に等しい。従って、それらの領域からは動きベクトルが検出されない。一方、「球」のイメージ7105を表す領域は両ピクチャ7101、7102間で実質的に異なる。従って、それらの領域からは、「球」のイメージ7105の変位を表す動きベクトルが検出される。
ビデオ・エンコーダ7001は次に、検出された動きベクトルを各ピクチャ7101、7102の圧縮に利用する一方、各イメージ・データ7104、7105の表す映像の両眼視差の計算にも利用する。こうして得られた両眼視差から、ビデオ・エンコーダ7001は更に、「家」及び「球」のイメージ7104、7105等、各イメージの「奥行き」を算出する。各イメージの奥行きを表す情報は、例えば図71の(c)に示されているように、各ピクチャ7101、7102のマクロブロックのマトリクスと同じサイズのマトリクス7106に整理される。図70に示されているフレーム奥行き情報7010はこのマトリクス7106を含む。このマトリクス7106内のブロック7107は、各ピクチャ7101、7102内のマクロブロック7103と一対一に対応する。各ブロック7107は、対応するマクロブロック7103の表すイメージの奥行きを、例えば8ビットの深度で表す。図71に示されている例では、「球」のイメージ7105の奥行きが、マトリクス7106の領域7108内の各ブロックに記録される。その領域7108は、そのイメージ7105を表す各ピクチャ7101、7102内の領域の全体に対応する。
図70を再び参照するに、素材制作部7002は、ビデオ・ストリーム以外のエレメンタリ・ストリーム、例えば、オーディオ・ストリーム7012、PGストリーム7013、及びIGストリーム7014を作成してデータベース部7007に保存する。例えば、素材制作部7002はオーサリング・スタッフから非圧縮のLPCM音声データを受け付けて、それをAC−3等の圧縮符号化方式で符号化してオーディオ・ストリーム7012に変換する。素材制作部7002はその他に、オーサリング・スタッフから字幕情報ファイルを受け付けて、それに従ってPGストリーム7013を作成する。字幕情報ファイルは、字幕を表すイメージ・データ、その字幕の表示時期、及び、その字幕に加えられるべきフェード・イン/フェード・アウト等の視覚効果を規定する。素材制作部8802は更に、オーサリング・スタッフからビットマップ・データとメニュー・ファイルとを受け付けて、それらに従ってIGストリーム7014を作成する。ビットマップ・データはメニューのイメージを表す。メニュー・ファイルは、そのメニューに配置される各ボタンの状態の遷移、及び各ボタンに加えられるべき視覚効果を規定する。
シナリオ生成部7003は、オーサリング・スタッフからGUI経由で受け付けられた指示に従ってBD−ROMシナリオ・データ7015を作成し、データベース部7007に保存する。BD−ROMシナリオ・データ7015は、データベース部7007に保存された各エレメンタリ・ストリーム7011−7014の再生方法を規定する。BD−ROMシナリオ・データ7015は、図2に示されているファイル群のうち、インデックス・ファイル211、ムービーオブジェクト・ファイル212、及びプレイリスト・ファイル221−223を含む。シナリオ生成部7003は更に、パラメータ・ファイル7016を作成して多重化処理部7005へ送出する。パラメータ・ファイル7016は、データベース部7007に保存されたエレメンタリ・ストリーム7011−7014の中から、メインTSとサブTSとのそれぞれに多重化されるべきストリーム・データを規定する。
BDプログラム制作部7004はオーサリング・スタッフに対して、BD−Jオブジェクト及びJavaアプリケーション・プログラムのプログラミング環境を提供する。BDプログラム制作部7004はGUIを通じてユーザからの要求を受け付け、その要求に従って各プログラムのソースコードを作成する。BDプログラム制作部7004は更に、BD−JオブジェクトからBD−Jオブジェクト・ファイル251を作成し、Javaアプリケーション・プログラムをJARファイル261に圧縮する。それらのファイル251、261はフォーマット処理部7006へ送出される。
ここで、BD−Jオブジェクトが次のようにプログラミングされる場合を想定する:BD−Jオブジェクトは、図40、44に示されているプログラム実行部4034、4434にGUI用のグラフィックス・データをシステム・ターゲット・デコーダ4023、4423へ送出させる。BD−Jオブジェクトは更に、システム・ターゲット・デコーダ4023、4423にそのグラフィックス・データをイメージ・プレーン・データとして処理させる。その場合、BDプログラム制作部7004は、データベース部7007に保存されたフレーム奥行き情報7010を利用して、BD−Jオブジェクトにイメージ・プレーン・データに対するオフセット値を設定してもよい。
多重化処理部7005はパラメータ・ファイル7016に従い、データベース部7007に保存されている各エレメンタリ・ストリーム7011−7014をMPEG2−TS形式のストリーム・ファイルに多重化する。具体的には図4に示されているように、各エレメンタリ・ストリーム7011−7014がソースパケット列に変換され、各列のソースパケットが一列にまとめられて一本の多重化ストリーム・データを構成する。こうして、メインTSとサブTSとが作成される。
その処理と並行して、多重化処理部7005は、2Dクリップ情報ファイルとディペンデントビュー・クリップ情報ファイルとを以下の手順で作成する。まず、ファイル2DとファイルDEPとのそれぞれについて、図25に示されているエントリ・マップ2430が生成される。次に、各ファイルのエントリ・マップを利用して、図27に示されているエクステント起点2442が作成される。そのとき、隣接するデータ・ブロック間でエクステントATC時間が揃えられる。更に、条件1が満たされるように2Dエクステントのサイズが設計され、条件2が満たされるようにベースビュー・エクステントのサイズが設計され、条件3が満たされるようにディペンデントビュー・エクステントのサイズが設計され、条件4が満たされるようにエクステントSSのサイズが設計される。続いて、メインTSとサブTSとのそれぞれに多重化されるべき各エレメンタリ・ストリームから、図24に示されているストリーム属性情報が抽出される。更に、図24に示されているように、エントリ・マップ、3Dメタデータ、及びストリーム属性情報の組み合わせがクリップ情報に対応付けられる。
図72は、隣接するデータ・ブロック間でエクステントATC時間を揃える方法を示す模式図である。図72を参照するに、矩形7210、7220はそれぞれ、ベースビュー・データ・ブロックに格納されるべきソースパケット、SP1#n(n=0、1、2、3、…、k)と、ディペンデントビュー・データ・ブロックに格納されるべきソースパケット、SP2#m(m=0、1、2、3、…、j)とを表す。それらの矩形7210、7220はATCの時間軸方向で各ソースパケットのATSの順に並べられている。各矩形7210、7220の先頭の位置はそのソースパケットのATSの値を表す。各矩形7210、7220の長さAT1は、3D再生装置が1個のソースパケットをリード・バッファからシステム・ターゲット・デコーダへ転送するのに要する時間を表す。
矩形群7210の表すソースパケット群、SP1#nは一つのベースビュー・データ・ブロックB[i]に格納される。そのとき、対応するディペンデントビュー・データ・ブロックD[i]に格納されるべきソースパケット群、SP2#mは次のように選択される。まず、ベースビュー・データ・ブロックB[i]のエクステントATC時間TEXTと、その先頭に位置するSP1#0のATS(EXT1[i]_STARTATC)A1とが求められる。そのATSA1を第1ATSと呼ぶ。次に、エクステントATC時間TEXTと第1ATSA1との和、すなわち、次のベースビュー・データ・ブロックB[i+1]の先頭に位置するSP1#(k+1)のATS(EXT1[i]_ENDATC)A2=A1+TEXTが求められる。そのATSA2を第2ATSと呼ぶ。次に、別の矩形群7220の表すソースパケット群、SP2#mのうち、リード・バッファからシステム・ターゲット・デコーダへの転送期間が第1ATSA1から第2ATSA2までの期間と重複し、かつ、その転送期間が第2ATSA2までに完了するもの、すなわちSP2#0、1、2、…、jが選択される。その他に、その転送期間が第1ATSA1から第2ATSA2までの期間と重複し、かつその転送期間が第1ATSA1以降に開始されるもの、すなわちSP2#1、2、…、j、j+1が選択されてもよい。こうして選択されたソースパケット群からディペンデントビュー・データ・ブロックD[i]が構成される。
フォーマット処理部7006は、データベース部7007に保存されたBD−ROMシナリオ・データ7015、BDプログラム制作部7004によって制作されたBD−Jオブジェクト・ファイル等のプログラム・ファイル群、及び、多重化処理部7005によって生成された多重化ストリーム・データとクリップ情報ファイルとから、図2に示されているディレクトリ構造のBD−ROMディスク・イメージ7020を作成する。そのディレクトリ構造では、ファイルシステムとしてUDFが利用される。
フォーマット処理部7006は、ファイル2D、ファイルDEP、及びファイルSSの各ファイル・エントリを作成するとき、2Dクリップ情報ファイルとディペンデントビュー・クリップ情報ファイルとのそれぞれに含まれるエントリ・マップと3Dメタデータとを参照する。それにより、各エントリ・ポイントと各エクステント起点とのSPNが各アロケーション記述子の作成に利用される。特に、図13に示されているようなインターリーブ配置が表現されるように、各アロケーション記述子の表すべきLBNの値とエクステントのサイズとが決定される。その結果、各ベースビュー・データ・ブロックはファイルSSとファイル2Dとに共有され、各ディペンデントビュー・データ・ブロックはファイルSSとファイルDEPとに共有される。一方、ロングジャンプの必要な箇所では、例えば配置1、2のいずれかが表現されるようにアロケーション記述子が作成されてもよい。特に、ベースビュー・データ・ブロックの一部は2D再生専用ブロックとしてファイル2D内のアロケーション記述子によって参照され、その一部の複製データがSS再生専用ブロックとしてファイルSSのアロケーション記述子によって参照される。
フォーマット処理部7006はその他に、データベース部7007に保存されたフレーム奥行き情報7010を利用して、図26の(a)に示されているオフセット・テーブルを、セカンダリ・ビデオ・ストリーム7011、PGストリーム7013、及びIGストリーム7014のそれぞれについて作成する。フォーマット処理部7006は更にオフセット・テーブルを2Dクリップ情報ファイルの3Dメタデータ内に格納する。ここで、各ストリームの表す3D映像が、他のストリームの表す3D映像と同じ視方向に重なって表示されないように、左右の各映像フレーム内でのイメージ・データの配置が自動的に調整される。更に、各ストリームの表す3D映像の奥行きが互いに重ならないように、各映像フレームに対するオフセット値が自動的に調整される。
図73は、図70に示されている記録装置を利用してBD−ROMディスクへ映画コンテンツを記録する方法のフローチャートである。この方法は、例えば記録装置の電源投入によって開始される。
ステップS7301では、BD−ROMディスクへ記録されるべきエレメンタリ・ストリーム、プログラム、及びシナリオ・データが作成される。すなわち、ビデオ・エンコーダ7001はフレーム奥行き情報7010とビデオ・ストリーム7011とを生成する。素材制作部7002は、オーディオ・ストリーム7012、PGストリーム7013、及びIGストリーム7014を作成する。シナリオ生成部7003はBD−ROMシナリオ・データ7015を作成する。作成されたそれらのデータは、データベース部7007に保存される。一方、シナリオ生成部7003は更にパラメータ・ファイル7016を作成して多重化処理部7005へ送出する。その他に、BDプログラム制作部7004はBD−Jオブジェクト・ファイルとJARファイルとを作成してフォーマット処理部7006へ送出する。その後、処理はステップS7302へ進む。
ステップS7302では、多重化処理部7005はパラメータ・ファイル7016に従い、データベース部7007から各エレメンタリ・ストリーム7011−7014を読み出して、MPEG2−TS形式のストリーム・ファイルに多重化する。その後、処理はステップS7303へ進む。
ステップS7303では、多重化処理部7005は2Dクリップ情報ファイルとディペンデントビュー・クリップ情報ファイルとを作成する。特に、エントリ・マップとエクステント起点との作成では、隣接するデータ・ブロック間でエクステントATC時間が揃えられる。更に、条件1が満たされるように2Dエクステントのサイズが設計され、条件2が満たされるようにベースビュー・エクステントのサイズが設計され、条件3が満たされるようにディペンデントビュー・エクステントのサイズが設計され、条件4が満たされるようにエクステントSSのサイズが設計される。その後、処理はステップS7304へ進む。
ステップS7304では、フォーマット処理部7006は、データベース部7007に保存されたBD−ROMシナリオ・データ7015、BDプログラム制作部7004によって制作されたプログラム・ファイル群、及び、多重化処理部7005によって生成された多重化ストリーム・データとクリップ情報ファイルとから、図2に示されているディレクトリ構造のBD−ROMディスク・イメージ7020を作成する。フォーマット処理部7006はそのとき、フレーム奥行き情報7010を利用して、セカンダリ・ビデオ・ストリーム7011、PGストリーム7013、及びIGストリーム7014のそれぞれについてオフセット・テーブルを作成し、2Dクリップ情報ファイルの3Dメタデータ内に格納する。その後、処理はステップS7305へ進む。
ステップS7305では、フォーマット処理部7006によって生成されたBD−ROMディスク・イメージ7020がBD−ROMプレス用データに変換される。更に、このデータはBD−ROMディスクの原盤に記録される。その後、処理はステップS7306へ進む。
ステップS7306では、ステップS7305で得られた原盤をプレス工程に利用してBD−ROMディスク101の大量生産を行う。こうして、処理が終了する。
《実施形態3》
図74は、本発明の実施形態3による集積回路3の機能ブロック図である。図74を参照するに、集積回路3は実施形態1による再生装置102に実装される。ここで、再生装置102は、集積回路3の他に、媒体インタフェース(IF)部1、メモリ部2、及び出力端子10を含む。
媒体IF部1は、外部の媒体MEからデータを受信し、又は読み出して集積回路3に転送する。特にそのデータは、実施形態1によるBD−ROMディスク101上のデータと同様な構造である。媒体MEの種類は、光ディスク及びハードディスク等のディスク記録媒体、SDカード及びUSBメモリ等の半導体メモリ、CATV等の放送波、並びに、イーサネット(登録商標)、無線LAN、及び無線公衆回線等のネットワークを含む。媒体IF部1は媒体MEの種類に合わせて、ディスクドライブ、カードIF、CANチューナー、Siチューナー、及びネットワークIFを含む。
メモリ部2は、媒体IF部1によって媒体MEから受信され、又は読み出されたデータ、及び、集積回路3によって処理されている途中のデータを一時的に格納する。メモリ部2としては、SDRAM(Synchronous Dynamic Random Access Memory)、及びDDRx SDRAM(Double−Data−Rate x Synchronous Dynamic Random Access Memory; x=1、2、3、…)等が用いられる。メモリ部2は単一のメモリ素子である。その他に、メモリ部2は複数のメモリ素子を含んでもよい。
集積回路3はシステムLSIであり、媒体IF部1から転送されたデータに対して映像・音声処理を施す。図74を参照するに、集積回路3は、主制御部6、ストリーム処理部5、信号処理部7、メモリ制御部9、及びAV出力部8を含む。
主制御部6はプロセッサコアとプログラム・メモリとを含む。プロセッサコアはタイマ機能と割り込み機能とを有する。プログラム・メモリはOS等の基本的なソフトウェアを格納する。プロセッサコアは、プログラム・メモリ等に格納されたプログラムに従って、集積回路3の全体の制御を行う。
ストリーム処理部5は、主制御部6の制御の下、媒体MEから媒体IF部1を経由して転送されたデータを受信する。ストリーム処理部5は更に、その受信したデータを集積回路3内のデータバスを通してメモリ部2に格納する。ストリーム処理部5はその他に、受信したデータから映像系データと音声系データとを分離する。ここで、前述のとおり、媒体MEから受信されるデータは実施形態1による構造のデータを含む。その場合、「映像系データ」は、プライマリ・ビデオ・ストリーム、セカンダリ・ビデオ・ストリーム、PGストリーム、及びIGストリームを含む。「音声系データ」はプライマリ・オーディオ・ストリームとセカンダリ・オーディオ・ストリームとを含む。特に実施形態1による構造のデータでは、メインビュー・データとサブビュー・データとがそれぞれ複数のエクステントに分割され、それらが交互に配置されて一連のエクステント・ブロックを構成している。ストリーム処理部5はエクステント・ブロックを受信したとき、主制御部6の制御に従い、そのエクステント・ブロックからメインビュー・データを抽出してメモリ部2内の第1の領域に格納し、サブビュー・データを抽出してメモリ部2内の第2の領域に格納する。メインビュー・データはレフトビュー・ビデオ・ストリームを含み、サブビュー・データはライトビュー・ビデオ・ストリームを含む。その逆であってもよい。また、メインビューとサブビューとの組み合わせが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は、例えば図46に示されている各種デコーダに相当する。
信号処理部7が1つのエクステント・ブロック内の全てのデータ・ブロックを復号するのに要する時間(t)は、次の三つの時間(t1、t2、t3)の合計以上である:媒体IF部1が、1つのエクステント・ブロックのうち、先頭のデータ・ブロックを除くデータ・ブロックを読み出すのに要する時間(t1);媒体IF部1が1つのエクステント・ブロックの終端を読み終えてから次のエクステント・ブロックの先頭を読み始めるまでに要する時間(t2);及び、媒体IF部1が次のエクステント・ブロック内の先頭のデータ・ブロックを読み出すのに要する時間(t3)。
メモリ制御部9は、集積回路3内の各機能ブロック5−8からメモリ部2へのアクセスを調停する。
AV出力部8は、主制御部6の制御の下、信号処理部7によって復号された映像系データと音声系データとをそれぞれ適切な形式に加工して、個別の出力端子10を通して表示装置103とその内蔵スピーカとへ出力する。その加工の種類は、映像系データの重畳処理、各データのフォーマット変換、及び音声系データのミキシング等を含む。
図75は、ストリーム処理部5の代表的な構成を示す機能ブロック図である。図75を参照するに、ストリーム処理部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による構造のデータに含まれる各エクステントは、図4に示されているように、ビデオ・ストリーム、オーディオ・ストリーム、PGストリーム、及びIGストリーム等のソースパケットから構成されている。但し、サブビュー・データはオーディオ・ストリームを含まない場合もある。多重分離部52は、各ソースパケットからPIDを読み取り、そのPIDに従って、ソースパケット群を映像系のTSパケットVTSと音声系のTSパケットATSとに分別する。分別されたTSパケットVTS、ATSは、直接、若しくは、一旦メモリ部2に格納された後、信号処理部7に転送される。多重分離部52は、例えば図46に示されているソース・デパケタイザ4611、4612、及びPIDフィルタ4613、4614に相当する。
切替部53は、デバイス・ストリームIF部51によって受信されたデータの種類に応じてその出力先を切り換える。例えば、デバイス・ストリームIF部51がメインビュー・データを受信したとき、そのデータの格納先をメモリ部2の第1の領域に切り換える。一方、デバイス・ストリームIF部51がサブビュー・データを受信したとき、そのデータの格納先をメモリ部2の第2の領域に切り換える。
切替部53は例えばDMAC(Direct Memory Access Controller)である。図76は、その場合における切替部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は、図75に示されている機能ブロック51、52、53の他に、暗号エンジン部、セキュア管理部、及びダイレクト・メモリ・アクセス用のコントローラを更に備えていてもよい。暗号エンジン部は、デバイス・ストリームIF部51によって受信された暗号化データ及び鍵データ等を復号する。セキュア管理部は秘密鍵を保持し、それを利用して、媒体MEと再生装置102との間で機器認証プロトコル等の実行制御を行う。
上記の例では、媒体MEから受信されたデータがメモリ部2に格納されるとき、そのデータがメインビュー・データMDとサブビュー・データSDとのいずれであるかに依って、その格納先が切り換えられる。その他に、媒体MEから受信されたデータがその種類にかかわらず、一旦メモリ部2内の同じ領域に格納され、その後、メモリ部2から多重分離部52へ転送されるときに、メインビュー・データMDとサブビュー・データSDとに分けられてもよい。
図77は、AV出力部8の代表的な構成を示す機能ブロック図である。図77を参照するに、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は、例えば図44、46、47に示されているプレーン加算部4424に相当する。
ビデオ出力フォーマット変換部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の外部に備えられてもよい。
図78は、AV出力部8を含む再生装置102のデータ出力に関する部分の詳細を示す模式図である。図78を参照するに、オーディオ・ビデオ出力IF部83は、アナログ・ビデオ出力IF部83a、デジタル・ビデオ・オーディオ出力IF部83b、及びアナログ・オーディオ出力IF部83cを含む。それにより、集積回路3及び再生装置102は、以下に述べるとおり、複数種類の映像系データと音声系データとのデータ送信方式に対応可能である。
アナログ・ビデオ出力IF部83aは、ビデオ出力フォーマット変換部82から映像系データVSを受信して、そのデータVSをアナログ映像信号形式のデータVDに変換/符号化して出力する。アナログ・ビデオ出力IF部83aは、例えば、NTSC、PAL、及びSECAMのいずれかの方式に対応したコンポジット・ビデオ・エンコーダー、S映像信号(Y/C分離)用エンコーダー、コンポーネント映像信号用エンコーダー、並びにD/Aコンバータ(DAC)等を含む。
デジタル・ビデオ・オーディオ出力IF部83bは、信号処理部7からは復号後の音声系データASを受信し、ビデオ出力フォーマット変換部82からは映像系データVSを受信する。デジタル・ビデオ・オーディオ出力IF部83bは更に、それらのデータAS、VSを一体化して暗号化する。その後、デジタル・ビデオ・オーディオ出力IF部83bは、暗号化データSVAをデータ送信規格に合わせて符号化して出力する。デジタル・ビデオ・オーディオ出力IF部83bは、例えばHDMI(High−Definition Multimedia InterFace)等に相当する。
アナログ・オーディオ出力IF部83cは、信号処理部7から復号後の音声系データASを受信し、D/A変換によってアナログ音声データADに変換して出力する。アナログ・オーディオ出力IF部83cは、例えばオーディオDACに相当する。
上記の映像系データ及び音声系データの送信形式は、表示装置103/スピーカー103Aの備えるデータ受信装置/データ入力端子の種類に合わせて切り換え可能であり、また、ユーザの選択によっても切り換え可能である。更に、再生装置102は、同じコンテンツのデータを、単一の送信形式だけではなく、複数の送信形式でパラレルに送信可能である。
AV出力部8は、図77、78に示されている機能ブロック81、82、83の他にグラフッィクス・エンジン部を更に備えていてもよい。グラフッィクス・エンジン部は、信号処理部7によって復号されたデータに対して、フィルタ処理、画面合成処理、曲線描画処理、及び3D表示処理等のグラフィックス処理を行う。
集積回路3は、図74、75、77、78に示されている上記の機能ブロックを内蔵する。しかし、それは必須ではなく、一部の機能ブロックが集積回路3に外付けされていてもよい。また、図74に示されている構成とは異なり、メモリ部2が集積回路3に内蔵されていてもよい。更に、主制御部6と信号処理部7とは、完全に分離された機能ブロックでなくてもよく、例えば主制御部6が信号処理部7の処理の一部を行ってもよい。
集積回路3内の機能ブロック間を接続する制御バス及びデータバスのトポロジーは、各機能ブロックの処理の手順及び内容に合わせて選択されればよい。図79は、集積回路3内の制御バス及びデータバスのトポロジーの例(a)、(b)を示す模式図である。図79の(a)を参照するに、制御バス11とデータバス12とはいずれも、各機能ブロック5−9を他の全ての機能ブロックに直結させるように配置されている。その他に、図79の(b)に示されているように、データバス13は各機能ブロック5−8をメモリ制御部9にのみ直結させるように配置されてもよい。その場合、各機能ブロック5−8はメモリ制御部9、更にメモリ部2を介してデータを他の機能ブロックに転送する。
集積回路3は、単一のチップに実装されたLSIに代えて、マルチチップ・モジュールであってもよい。その場合、集積回路3を構成する複数のチップは一つのパッケージに封止されているので、集積回路3は見かけ上、単一のLSIである。集積回路3はその他に、FPGA(Field Programmable Gate Array)又はリコンフィギュラブル・プロセッサを利用して構成されてもよい。FPGAは、製造後にプログラム可能なLSIである。リコンフィギュラブル・プロセッサは、内部の回路セル間の接続、及び各回路セルの設定を再構成可能なLSIである。
<集積回路3を利用した再生装置102の再生処理>
図80は、集積回路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からのデータ受信、又は読み出しを終了させた場合、処理は終了する。
図81は、図80に示されている各ステップS1−6の詳細を示すフローチャートである。図81に示されている各ステップS101−110は、主制御部6の制御の下で行われる。ステップS101は主にステップS1の詳細に相当し、ステップS102−104は主にステップS2の詳細に相当し、ステップS105は主にステップS3の詳細に相当し、ステップS106−108は主にステップS4の詳細に相当し、ステップS109、S110は主にステップS5の詳細に相当する。
ステップS101では、デバイス・ストリームIF部51は媒体IF部1を通して媒体MEから、再生対象のデータよりも先に、そのデータの再生に必要なデータ、例えばプレイリスト・ファイル及びクリップ情報ファイルを受信し、又は読み出す。デバイス・ストリームIF部51は更に、メモリ制御部9を介してそのデータをメモリ部2に格納する。その後、処理はステップS102へ進む。
ステップS102では、主制御部6は、クリップ情報ファイルに含まれるストリーム属性情報から、媒体MEに格納されている映像データと音声データとのそれぞれの符号化方式を識別する。主制御部6は更に、識別された符号化方式に対応する復号処理が実行できるように信号処理部7の初期化を行う。その後、処理はステップS103へ進む。
ステップS103では、デバイス・ストリームIF部51は、媒体IF部1を通して媒体MEから再生対象の映像データと音声データとを受信し、又は読み出す。特に、それらのデータはエクステント単位で受信され、又は読み出される。デバイス・ストリームIF部51は更に、それらのデータを切替部53とメモリ制御部9とを経由してメモリ部2に格納する。特に、メインビュー・データが受信され、又は読み出されたとき、主制御部6は切替部53を制御して、そのデータの格納先をメモリ部2内の第1の領域へ切り換えさせる。一方、サブビュー・データが受信され、又は読み出されたとき、主制御部6は切替部53を制御して、そのデータの格納先をメモリ部2内の第2の領域へ切り換えさせる。その後、処理はステップS104へ進む。
ステップS104では、メモリ部2に格納されたデータは、ストリーム処理部5内の多重分離部52に転送される。多重分離部52はまず、そのデータを構成する各ソースパケットからPIDを読み取る。多重分離部52は次に、そのPIDに従って、そのソースパケットに含まれるTSパケットが映像系データと音声系データとのいずれであるのかを識別する。多重分離部52は更に、識別結果に従って各TSパケットを信号処理部7内の対応するデコーダへ転送する。その後、処理はステップS105へ進む。
ステップS105では、信号処理部7内では各デコーダが、転送されたTSパケットを適切な方法で復号する。その後、処理はステップS106へ進む。
ステップS106では、信号処理部7において復号されたレフトビュー・ビデオ・ストリーム及びライトビュー・ビデオ・ストリームの各ピクチャがビデオ出力フォーマット変換部82に送られる。ビデオ出力フォーマット変換部82はそれらのピクチャを表示装置103の解像度に合わせてリサイズする。その後、処理はステップS107へ進む。
ステップS107では、画像重畳部81は、ステップS106においてリサイズされたピクチャから成るビデオ・プレーン・データをビデオ出力フォーマット変換部82から受信する。一方、画像重畳部81は信号処理部7から復号後のPGプレーン・データとIGプレーン・データとを受信する。画像重畳部81は更に、それらのプレーン・データを重畳する。その後、処理はステップS108へ進む。
ステップS108では、ビデオ出力フォーマット変換部82は、ステップS107において重畳されたプレーン・データを画像重畳部81から受信する。ビデオ出力フォーマット変換部82は更に、そのプレーン・データに対してIP変換を行う。その後、処理はステップS109へ進む。
ステップS109では、オーディオ・ビデオ出力IF部83は、ビデオ出力フォーマット変換部82からは、ステップS108においてIP変換を受けた映像系データを受信し、信号処理部7からは復号後の音声系データを受ける。オーディオ・ビデオ出力IF部83は更に、それらのデータに対して、表示装置103/スピーカ103Aによるデータ出力方式、又はそれぞれへのデータ送信方式に従って符号化処理及びD/A変換等を行う。それにより、映像系データと音声系データとはそれぞれ、アナログ出力形式又はデジタル出力形式に変換される。例えば、アナログ出力形式の映像系データには、コンポジット映像信号、S映像信号、及びコンポーネント映像信号等が含まれる。また、デジタル出力形式の映像系データ/音声系データには、HDMI等が含まれる。その後、処理はステップS110へ進む。
ステップS110では、オーディオ・ビデオ出力IF部83は、ステップS109において処理された映像系データ及び音声系データを表示装置103/スピーカ103Aへ送信する。その後、処理はステップS6へ進む。尚、ステップS6については、上記の説明を援用する。
上記の各ステップでは、データが処理される度に、その結果がメモリ部2に一時的に格納されてもよい。また、ステップS106及びS108でのビデオ出力フォーマット変換部82によるリサイズ処理及びIP変換処理は、必要に応じて省略されてもよい。更に、それらの処理に加え、又はそれらの処理に代えて、ノイズ・リダクション処理及びフレームレート変換処理等、他の処理が行われてもよい。更に、可能なものについては処理手順が変更されてもよい。
<補足>
≪3D映像の再生方法の原理≫
3D映像の再生方法は、ホログラフィ技術を用いる方法と、視差映像を用いる方法との2つに大別される。
ホログラフィ技術を用いる方法の特徴は、現実の立体的な物体から人間の視覚に与えられる光学的な情報とほぼ全く同じ情報を視聴者の視覚に与えることにより、その視聴者に映像中の物体を立体的に見せる点にある。しかし、この方法を動画表示に利用する技術は理論上確立されてはいる。しかし、その動画表示に必要とされる、膨大な演算をリアルタイムに処理可能なコンピュータ、及び、1mmあたり数千本という超高解像度の表示装置はいずれも、現在の技術ではまだ、実現が非常に難しい。従って、この方法を商業用として実用化する目途は、現時点ではほとんど立っていない。
「視差映像」とは、一つのシーンを見る視聴者の各目に映る2D映像の対、すなわち、レフトビューとライトビューとの対をいう。視差映像を用いる方法の特徴は、一つのシーンのレフトビューとライトビューとを視聴者の各目だけに見えるように再生することにより、その視聴者にそのシーンを立体的に見せる点にある。
図82の(a)−(c)は、視差映像を用いる方法による3D映像(立体視映像)の再生原理を説明するための模式図である。図82の(a)は、視聴者7401が、顔の正面に置かれた立方体7402を見ている光景の上面図である。図82の(b)、(c)はそれぞれ、そのときに視聴者7401の左目7401L、右目7401Rに見える立方体7402の外観を2D映像として示す模式図である。図82の(b)、(c)を比較すれば明らかなとおり、各目に見える立方体7402の外観はわずかに異なる。この外観の差、すなわち両眼視差から、視聴者7401は立方体7402を立体的に認識できる。従って、視差映像を用いる方法では、まず、一つのシーン、例えば図82の(a)に示されている立方体7402に対し、視点が異なる左右の2D映像、例えば図82の(b)に示されている立方体7402のレフトビュー、及び図82の(c)に示されているそのライトビューを準備する。ここで、各視点の位置は視聴者7401の両眼視差から決定される。次に、各2D映像を視聴者7401のそれぞれの目だけに見えるように再生する。それにより、視聴者7401には、画面に再生されるそのシーン、すなわち立方体7402の映像が立体的に見える。このように、視差映像を用いる方法は、ホログラフィ技術を用いる方法とは異なり、高々二つの視点から見える2D映像を準備するだけでよい点で有利である。
視差映像を用いる方法については、それを具体化するための方式が多様に提案されている。それらの方式は、左右の2D映像を視聴者のそれぞれの目にいかにして見せるかという観点から、経時分離方式、レンチキュラーレンズを用いる方式、及び二色分離方式等に分けられる。
継時分離方式では、画面に左右の2D映像を一定時間ずつ交互に表示する一方、視聴者にシャッター眼鏡を通して画面を観察させる。ここで、シャッター眼鏡は、各レンズが例えば液晶パネルで形成されている。各レンズは、画面上の2D映像の切り換えに同期して交互に光をその全体で一様に透過させ、又は遮断する。すなわち、各レンズは、視聴者の目を周期的に塞ぐシャッターとして機能する。より詳細に言えば、画面上に左映像が表示される期間では、シャッター眼鏡は左側のレンズには光を透過させ、右側のレンズには光を遮断させる。逆に、画面上に右映像が表示されている期間では、シャッター眼鏡は右側のレンズには光を透過させ、左側のレンズには光を遮断させる。それにより、視聴者の目には、左右の映像の残像が重なって一つの3D映像に見える。
経時分離方式では、上記のとおり、左右の映像を一定周期で交互に表示する。例えば2D映像の再生において1秒当たり24枚の映像フレームが表示されるとき、3D映像の再生では左右の映像を合わせて、1秒当たり48枚の映像フレームが表示される。従って、この方式には、画面の書き換えを速く実行できる表示装置が好適である。
レンチキュラーレンズを用いる方式では、左右の各映像フレームを、縦方向に細長い短冊形の小領域に分割し、一つの画面の中に左右の映像フレームの各小領域を横方向に交互に並べて同時に表示する。ここで、画面の表面はレンチキュラーレンズで覆われている。レンチキュラーレンズは、細長い蒲鉾レンズを複数平行に並べて一枚のシート状にしたものである。各蒲鉾レンズは画面の表面を縦方向に延びている。レンチキュラーレンズを通して上記左右の映像フレームを視聴者に見せるとき、左映像フレームの表示領域からの光は視聴者の左目だけに結像し、右映像フレームの表示領域からの光は右目だけに結像するようにできる。こうして、左右の目に映る映像間での両眼視差により、視聴者には3D映像が見える。尚、この方式では、レンチキュラーレンズに代えて、同様な機能を持つ液晶素子等の他の光学部品が利用されてもよい。その他に、例えば左映像フレームの表示領域には縦偏光のフィルタを設置し、右映像フレームの表示領域には横偏光のフィルタを設置してもよい。そのとき、視聴者には偏光眼鏡を通して画面を見させる。ここで、その偏光眼鏡では、左側のレンズに縦偏光フィルタが設置され、かつ右側のレンズに横偏光フィルタが設置されている。従って、左右の映像が視聴者のそれぞれの目だけに見えるので、視聴者に3D映像を見せることができる。
視差映像を用いる方法では、3D映像コンテンツが、初めから左右の映像の組み合わせで構成されている場合の他に、2D映像とデプスマップとの組み合わせで構成されていてもよい。その2D映像は、再生対象の3D映像から仮想的な2D画面への射影を表し、デプスマップは、その2D画面に対するその3D映像の各部の奥行きを画素別に表す。3D映像コンテンツが2D映像とデプスマップとの組み合わせで構成されているとき、3D再生装置又は表示装置はまず、それらの組み合わせから左右の映像を構成し、次にそれらの映像から上記の方式のいずれかで3D映像を再現する。
図83は、2D映像7501とデプスマップ7502との組み合わせからレフトビュー7503Lとライトビュー7503Rとを構成する例を示す模式図である。図83を参照するに、2D映像7501では、背景7512の中に円板7511が表示されている。デプスマップ7502はその2D映像7501内の各部の奥行きを画素ごとに示す。そのデプスマップ7502によれば、2D映像7501のうち、円板7511の表示領域7521の奥行きが画面よりも手前であり、かつ、背景7512の表示領域7522の奥行きが画面よりも奥である。再生装置102内では視差映像生成部7500がまず、デプスマップ7502の示す各部の奥行きから2D映像7501内の各部の両眼視差を計算する。視差映像生成部7500は次に、2D映像7501内の各部の表示位置を、計算された両眼視差に応じて左右に移動させて、レフトビュー7503Lとライトビュー7503Rとを構成する。図83に示されている例では、視差映像生成部7500は、2D映像7501内の円板7511の表示位置に対し、レフトビュー7503L内の円板7531Lの表示位置をその両眼視差の半分S1だけ右に移動させ、ライトビュー7503R内の円板7531Rの表示位置をその両眼視差の半分S1だけ左に移動させる。それにより、視聴者には円板7511が画面よりも手前に見える。一方、視差映像生成部7500は、2D映像7501内の背景7512の表示位置に対し、レフトビュー7503L内の背景7532Lの表示位置をその両眼視差の半分S2だけ左に移動させ、ライトビュー7503R内の背景7532Rの表示位置をその両眼視差の半分S2だけ右に移動させる。それにより、視聴者には背景7512が画面よりも奥に見える。
視差映像を用いる方法による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に併せて記録される。その情報を参照することにより、各エクステントの配置、特にその論理アドレスを知ることができる。
≪放送、通信回路を経由したデータ配信≫
本発明の実施形態1による記録媒体は、光ディスクの他、例えばSDメモリカードを含む可搬性半導体メモリ装置等、パッケージメディアとして利用可能なリムーバブルメディア全般を含む。また、実施形態1の説明では、予めデータが記録された光ディスク、すなわち、BD−ROM又はDVD−ROM等の既存の読み出し専用の光ディスクが例に挙げられている。しかし、本発明の実施形態はそれらに限定されない。例えば放送で、又はネットワーク経由で配信された3D映像のコンテンツを端末装置によって、BD−RE又はDVD−RAM等の既存の書き込み可能な光ディスクへ書き込むときに、実施形態1によるエクステントの配置が利用されてもよい。ここで、その端末装置は、再生装置に組み込まれていても、再生装置とは別の装置であってもよい。
≪半導体メモリカードの再生≫
本発明の実施形態1による記録媒体として、光ディスクに代えて半導体メモリカードを用いたときにおける、再生装置のデータ読み出し部について説明する。
再生装置のうち、光ディスクからデータを読み出す部分は、例えば光ディスクドライブによって構成される。それに対し、半導体メモリカードからデータを読み出す部分は、専用のインタフェース(I/F)で構成される。より詳細には、再生装置にカードスロットが設けられ、その内部に上記のI/Fが実装される。そのカードスロットに半導体メモリカードが挿入されるとき、そのI/Fを通してその半導体メモリカードが再生装置と電気的に接続される。更に、半導体メモリカードからデータがそのI/Fを通して再生装置に読み出される。
≪BD−ROMディスク上のデータに対する著作権保護技術≫
ここで、以降の補足事項の前提として、BD−ROMディスクに記録されているデータの著作権を保護するための仕組みについて説明する。
BD−ROMディスクに記録されたデータの一部が、例えば著作権の保護又はデータの秘匿性の向上の観点から暗号化されている場合がある。その暗号化データは例えば、ビデオ・ストリーム、オーディオ・ストリーム、又はその他のストリームを含む。その場合、暗号化データは以下のように解読される。
再生装置には予め、BD−ROMディスク上の暗号化データを解読するための「鍵」の生成に必要なデータの一部、すなわちデバイスキーが記憶されている。一方、BD−ROMディスクには、そのその「鍵」の生成に必要なデータの別の一部、すなわちMKB(メディアキーブロック)と、その「鍵」自体の暗号化データ、すなわち暗号化タイトルキーとが記録されている。デバイスキー、MKB、及び暗号化タイトルキーは互いに対応付けられ、更に、図2に示されているBD−ROMディスク101上のBCA201に書き込まれた特定のID、すなわちボリュームIDにも対応付けられている。デバイスキー、MKB、暗号化タイトルキー、及びボリュームIDの組み合わせが正しくなければ、暗号化データの解読はできない。すなわち、これらの組み合わせが正しい場合にのみ、上記の「鍵」、すなわちタイトルキーが生成される。具体的には、まず、デバイスキー、MKB、及びボリュームIDを利用して暗号化タイトルキーが復号される。それによってタイトルキーを導き出すことができたときのみ、そのタイトルキーを上記の「鍵」として用いて暗号化データを解読することができる。
BD−ROMディスク上の暗号化データを再生装置によって再生しようとしても、例えばそのBD−ROMディスク上の暗号化タイトルキー、MKB、及びボリュームIDに予め対応付けられたデバイスキーがその再生装置内に記憶されていなければ、その暗号化データを再生することができない。何故なら、その暗号化データの解読に必要な鍵、すなわちタイトルキーは、MKB、デバイスキー、及びボリュームIDの正しい組み合わせで暗号化タイトルキーを復号しなければ導き出せないからである。
BD−ROMディスクに記録されるべきビデオ・ストリームとオーディオ・ストリームとの少なくともいずれかの著作権を保護するには、まず、保護対象のストリームをタイトルキーで暗号化して、BD−ROMディスクに記録する。次に、MKB、デバイスキー、及びボリュームIDの組み合わせから鍵を生成し、その鍵で上記のタイトルキーを暗号化して暗号化タイトルキーに変換する。更に、MKB、ボリュームID、及び暗号化タイトルキーをBD−ROMディスクに記録する。そのBD−ROMディスクからは、上述の鍵の生成に利用されたデバイスキーを備えた再生装置でしか、暗号化されたビデオ・ストリーム及び/又はオーディオ・ストリームをデコーダで復号することはできない。こうして、BD−ROMディスクに記録されたデータの著作権を保護することができる。
以上に述べた、BD−ROMディスクにおけるデータの著作権保護の仕組みは、BD−ROMディスク以外にも適用可能である。例えば読み書き可能な半導体メモリ装置、特にSDカード等の可搬性半導体メモリカードにも適用可能である。
≪電子配信を利用した記録媒体へのデータ記録≫
電子配信を利用して本発明の実施形態1による再生装置へ3D映像のAVストリーム・ファイル等のデータ(以下、配信データという。)を伝達し、更にその再生装置にその配信データを半導体メモリカードに記録させる処理について、以下説明する。尚、以下の動作は、上記の再生装置に代えて、その処理に特化した端末装置によって行われてもよい。また、記録先の半導体メモリカードがSDメモリカードである場合を想定する。
再生装置は上記のとおり、カードスロットを備えている。そのカードスロットにはSDメモリカードが挿入されている。この状態で、再生装置はまず、ネットワーク上の配信サーバへ配信データの送信要求を送出する。このとき、再生装置はSDメモリカードからその識別情報を読み出して、その識別情報を送信要求と共に配信サーバへ送出する。SDメモリカードの識別情報は、例えばそのSDメモリカード固有の識別番号、より具体的にはそのSDメモリカードのシリアル番号である。この識別情報は上述のボリュームIDとして利用される。
配信サーバには配信データが格納されている。その配信データのうち、ビデオ・ストリーム及び/又はオーディオ・ストリーム等、暗号化による保護の必要なデータは、所定のタイトルキーを用いて暗号化されている。その暗号化データは同じタイトルキーで復号が可能である。
配信サーバは、再生装置と共通の秘密鍵としてデバイスキーを保持している。配信サーバは更に、SDメモリカードと共通のMKBを保持している。配信サーバは、再生装置から配信データの送信要求とSDメモリカードの識別情報とを受け付けたとき、まず、デバイスキー、MKB、及びその識別情報から鍵を生成し、その鍵でタイトルキーを暗号化して暗号化タイトルキーを生成する。
配信サーバは次に公開鍵情報を生成する。その公開鍵情報は、例えば、上述のMKB、暗号化タイトルキー、署名情報、SDメモリカードの識別番号、及びデバイスリストを含む。署名情報は、例えば公開鍵情報のハッシュ値を含む。デバイスリストは、無効にすべきデバイス、すなわち、配信データ中の暗号化データを不正に再生する危険性のあるデバイスのリストである。そのリストには、例えば、再生装置のデバイスキー、再生装置の識別番号、再生装置に内蔵のデコーダ等、各種部品の識別番号、又は機能(プログラム)が特定されている。
配信サーバは更に、配信データと公開鍵情報とを再生装置へ送出する。再生装置は、それらを受信して、カードスロット内の専用I/Fを通してSDメモリカードに記録する。
SDメモリカードに記録された配信データのうち、暗号化データは、例えば公開鍵情報を以下のように利用して復号される。まず、公開鍵情報の認証として次の三種類のチェック(1)−(3)が行われる。尚、それらはどのような順序で行われてもよい。
(1)公開鍵情報に含まれるSDメモリカードの識別情報が、カードスロットに挿入されているSDメモリカードに記憶されている識別番号と一致するか否か。
(2)公開鍵情報から算出されるハッシュ値が、署名情報に含まれるハッシュ値と一致するか否か。
(3)公開鍵情報の示すデバイスリストから当該再生装置が除外されているか否か。具体的には、デバイスリストから当該再生装置のデバイスキーが除外されているか否か。
上述のチェック(1)−(3)のいずれかの結果が否定的であるとき、再生装置は暗号化データの復号処理を中止する。逆に、上述のチェック(1)−(3)の全ての結果が肯定的であるとき、再生装置は公開鍵情報の正当性を認め、デバイスキー、MKB、及びSDメモリカードの識別情報を利用して、公開鍵情報内の暗号化タイトルキーをタイトルキーに復号する。再生装置は更に、そのタイトルキーを用いて暗号化データを、例えばビデオ・ストリーム及び/又はオーディオ・ストリームに復号する。
以上の仕組みには次の利点がある。電子配信時に既に、不正使用の危険性がある再生装置、部品、及び機能(プログラム)等が知られている場合、これらの識別情報がデバイスリストに列挙され、公開鍵情報の一部として配信される。一方、配信データを要求した再生装置は必ず、そのデバイスリスト内の識別情報を、その再生装置及びその部品等の識別情報と照合しなければならない。それにより、その再生装置又はその部品等がデバイスリストに示されていれば、たとえ、SDメモリカードの識別番号、MKB、暗号化タイトルキー、及びデバイスキーの組み合わせが正しくても、その再生装置は公開鍵情報を配信データ内の暗号化データの復号には利用できない。こうして、配信データの不正使用を効果的に抑制することができる。
半導体メモリカードの識別情報は、半導体メモリカード内の記録領域のうち、特に秘匿性の高い記録領域に格納することが望ましい。何故なら、万一、その識別情報、例えばSDメモリカードではそのシリアル番号が不正に改竄された場合、SDメモリカードの違法コピーが容易に実行可能になってしまうからである。すなわち、その改竄の結果、同一の識別情報を持つ半導体メモリカードが複数存在するようになれば、上述のチェック(1)では正規品と違法な複製品との識別ができなくなるからである。従って、半導体メモリカードの識別情報は秘匿性の高い記録領域に記録して、不正な改竄から保護されねばならない。
半導体メモリカード内にこのような秘匿性の高い記録領域を構成する手段は、例えば次のとおりである。まず、通常のデータ用の記録領域(以下、第1の記録領域と称す。)から電気的に分離された別の記録領域(以下、第2の記録領域と称す。)が設置される。次に、第2の記録領域へのアクセス専用の制御回路が半導体メモリカード内に設けられる。それにより、第2の記録領域へはその制御回路を介してのみアクセスが可能であるようにする。例えば、第2の記録領域には、暗号化されたデータのみが記録され、その暗号化されたデータを復号するための回路が制御回路内にのみ組み込まれる。それにより、第2の記録領域内のデータへのアクセスは、そのデータを制御回路に復号させなければ不可能である。その他に、第2の記録領域内の各データのアドレスを制御回路にのみ保持させてもよい。その場合、第2の記録領域内のデータのアドレスは制御回路にしか特定できない。
半導体メモリカードの識別情報が第2の記録領域に記録された場合、再生装置上で動作するアプリケーション・プログラムは、電子配信を利用して配信サーバからデータを取得して半導体メモリカードに記録する場合、次のような処理を行う。まず、そのアプリケーション・プログラムは、メモリカードI/Fを介して上記の制御回路に対し、第2の記録領域に記録された半導体メモリカードの識別情報へのアクセス要求を発行する。制御回路はその要求に応じて、まず、第2の記録領域からその識別情報を読み出す。制御回路は次に、メモリカードI/Fを介して上記のアプリケーション・プログラムへその識別情報を送る。そのアプリケーション・プログラムはその後、その識別情報と共に配信データの送信要求を配信サーバに送出する。アプリケーション・プログラムは更に、その要求に応じて配信サーバから受信される公開鍵情報と配信データとを、メモリカードI/Fを介して半導体メモリカード内の第1の記録領域に記録する。
尚、上記のアプリケーション・プログラムは、半導体メモリカード内の制御回路に対して上記のアクセス要求を発行する前に、そのアプリケーション・プログラム自体の改竄の有無をチェックすることが望ましい。そのチェックには、例えばX.509に準拠のデジタル証明書が利用されてもよい。また、配信データは上記のとおり、半導体メモリカード内の第1の記録領域に記録されればよく、その配信データへのアクセスは半導体メモリカード内の制御回路によって制御されなくてもよい。
≪リアルタイム・レコーディングへの適用≫
本発明の実施形態2では、AVストリーム・ファイル及びプレイリスト・ファイルは、オーサリングシステムにおけるプリレコーディング技術によってBD−ROMディスクに記録されてユーザに供給されることを前提とした。しかし、AVストリーム・ファイル及びプレイリスト・ファイルは、リアルタイム・レコーディングによって、BD−REディスク、BD−Rディスク、ハードディスク、又は半導体メモリカード等の書き込み可能な記録媒体(以下、BD−REディスク等と略す。)に記録されてユーザに供給されるものであってもよい。その場合、AVストリーム・ファイルは、アナログ入力信号を記録装置がリアルタイムで復号することによって得られたトランスポート・ストリームであってもよい。その他に、記録装置がデジタル入力したトランスポート・ストリームをパーシャル化することで得られるトランスポート・ストリームであってもよい。
リアルタイム・レコーディングを実行する記録装置は、ビデオ・エンコーダ、オーディオエンコーダ、マルチプレクサ、及びソースパケタイザを含む。ビデオ・エンコーダはビデオ信号を符号化してビデオ・ストリームに変換する。オーディオエンコーダはオーディオ信号を符号化してオーディオ・ストリームに変換する。マルチプレクサは、ビデオ・ストリームとオーディオ・ストリームとを多重化して、MPEG2−TS形式のデジタル・ストリームに変換する。ソースパケタイザは、MPEG2−TS形式のデジタル・ストリーム内のTSパケットをソースパケットに変換する。記録装置は各ソースパケットをAVストリーム・ファイルに格納して、BD−REディスク等に書き込む。
AVストリーム・ファイルの書き込み処理と並行して、記録装置の制御部はクリップ情報ファイルとプレイリスト・ファイルとをメモリ上で生成してBD−REディスク等に書き込む。具体的には、ユーザによって録画処理が要求されたとき、制御部はまず、AVストリーム・ファイルに合わせてクリップ情報ファイルを生成してBD−REディスク等に書き込む。その場合、外部から受信されるトランスポート・ストリームからビデオ・ストリーム内の一つのGOPの先頭が検出される度に、又は、ビデオ・エンコーダによってビデオ・ストリーム内の一つのGOPが生成される度に、制御部は、そのGOPの先頭に位置するIピクチャのPTSと、そのGOPの先頭が格納されたソースパケットのSPNとを取得する。制御部は更に、そのPTSとSPNとの対を一つのエントリ・ポイントとしてクリップ情報ファイルのエントリ・マップに追記する。ここで、そのエントリ・ポイントには「is_angle_changeフラグ」が追加される。is_angle_changeフラグは、そのGOPの先頭がIDRピクチャであるときは“オン”に設定され、そのGOPの先頭がIDRピクチャではないときは“オフ”に設定される。クリップ情報ファイル内には更に、ストリーム属性情報が記録対象のストリームの属性に従って設定される。こうして、AVストリーム・ファイルとクリップ情報ファイルとがBD−REディスク等に書き込まれた後、制御部はそのクリップ情報ファイル内のエントリ・マップを利用してプレイリスト・ファイルを生成し、BD−REディスク等に書き込む。
≪マネージド・コピー≫
本発明の実施形態1による再生装置は更に、マネージド・コピーによってBD−ROMディスク101上のデジタル・ストリームを他の記録媒体へ書き込んでもよい。「マネージド・コピー」とは、BD−ROMディスク等の読み出し専用記録媒体から書き込み可能な記録媒体へ、デジタル・ストリーム、プレイリスト・ファイル、クリップ情報ファイル、及びアプリケーション・プログラムをコピーすることを、サーバとの通信による認証が成功した場合にのみ許可するための技術をいう。その書き込み可能な記録媒体は、BD−R、BD−RE、DVD−R、DVD−RW、及びDVD−RAM等の書き込み可能な光ディスク、ハードディスク、並びに、SDメモリカード、メモリースティック(登録商標)、コンパクトフラッシュ(登録商標)、スマートメディア(登録商標)、及びマルチメディアカード(登録商標)等の可搬性半導体メモリ装置を含む。マネージド・コピーは、読み出し専用記録媒体に記録されたデータのバックアップ回数の制限、及びバックアップ処理に対する課金を可能にする。
BD−ROMディスクからBD−Rディスク又はBD−REディスクへのマネージド・コピーが行われる場合、両ディスクの記録容量が等しいときは、コピー元のディスクに記録されたビット・ストリームがそのまま、順番にコピーされればよい。
マネージド・コピーが異種の記録媒体間で行われるときはトランス・コードが必要である。「トランス・コード」とは、コピー元のディスクに記録されているデジタル・ストリームをコピー先の記録媒体のアプリケーション・フォーマットに適合させるための処理をいう。トランス・コードは、例えば、MPEG2−TS形式からMPEG2プログラム・ストリーム形式へ変換する処理、及び、ビデオ・ストリームとオーディオ・ストリームとのそれぞれに割り当てられているビットレートを低くして符号化し直す処理を含む。トランス・コードでは、上述のリアルタイム・レコーディングによって、AVストリーム・ファイル、クリップ情報ファイル、及びプレイリスト・ファイルが生成されねばならない。
≪データ構造の記述方法≫
本発明の実施形態1によるデータ構造のうち、「所定型の情報が複数存在する」という繰り返し構造は、for文に制御変数の初期値と繰り返し条件とを記述することによって定義される。また、「所定の条件が成立するときに所定の情報が定義される」というデータ構造は、if文にその条件と、その条件の成立時に設定されるべき変数とを記述することによって定義される。このように、実施形態1によるデータ構造は高級プログラミング言語によって記述される。従って、そのデータ構造は、「構文解析」、「最適化」、「資源割付」、及び「コード生成」といったコンパイラによる翻訳過程を経て、コンピュータによって読み取り可能なコードに変換され、記録媒体に記録される。高級プログラミング言語での記述により、そのデータ構造は、オブジェクト指向言語におけるクラス構造体のメソッド以外の部分、具体的には、そのクラス構造体における配列型のメンバー変数として扱われ、プログラムの一部を成す。すなわち、そのデータ構造は、プログラムと実質的に同等である。従って、そのデータ構造はコンピュータ関連の発明として保護を受けるべきである。
≪再生プログラムによるプレイリスト・ファイル、クリップ情報ファイルの管理≫
プレイリスト・ファイルとAVストリーム・ファイルとが記録媒体に記録されるとき、その記録媒体には再生プログラムが実行形式のファイルとして記録される。再生プログラムはコンピュータに、プレイリスト・ファイルに従ってAVストリーム・ファイルを再生させる。再生プログラムは記録媒体からコンピュータ内のメモリ装置にロードされた後、そのコンピュータによって実行される。そのロード処理はコンパイル処理又はリンク処理を含む。それらの処理により、再生プログラムはメモリ装置内では複数のセクションに分割される。それらのセクションは、textセクション、dataセクション、bssセクション、及びstackセクションを含む。textセクションは、再生プログラムのコード列、変数の初期値、及び書き換え不可のデータを含む。dataセクションは、初期値を持つ変数、及び書き換え可能なデータを含む。dataセクションは特に、記録媒体上に記録された、随時アクセスされるファイルを含む。bssセクションは、初期値を持たない変数を含む。bssセクション内のデータは、textセクション内のコードの示す命令に応じて参照される。コンパイル処理又はリンク処理では、コンピュータ内のRAMにbssセクション用の領域が確保される。stackセクションは、必要に応じて一時的に確保されるメモリ領域である。再生プログラムによる各処理ではローカル変数が一時的に使用される。stackセクションはそれらのローカル変数を含む。プログラムの実行が開始されるとき、bssセクション内の変数はゼロで初期化され、stackセクションには必要なメモリ領域が確保される。
プレイリスト・ファイル及びクリップ情報ファイルは上述のとおり、記録媒体上では既に、コンピュータによって読み取り可能なコードに変換されている。従って、それらのファイルは再生プログラムの実行時、textセクション内の「書き換え不可のデータ」、又はdataセクション内の「随時アクセスされるファイル」として管理される。すなわち、プレイリスト・ファイル及びクリップ情報ファイルは、再生プログラムの実行時にその構成要素の中に組み込まれる。それ故、プレイリスト・ファイル及びクリップ情報ファイルは再生プログラムにおいて、単なるデータの提示を超えた役割を果たす。