以下、本発明の好適な実施形態に係る記録媒体及び再生装置について、図面を参照しながら説明する。
《実施形態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、及び補助データ(AUXDATA:Auxiliary Data)ディレクトリ270が置かれている。
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映像を表すビデオ・ストリームをいう。この2D映像を「ベースビュー」又は「メインビュー」という。
「サブTS」は、プライマリ・ビデオ・ストリームとしてディペンデントビュー・ビデオ・ストリームを含む多重化ストリーム・データをいう。「ディペンデントビュー・ビデオ・ストリーム」は、その再生にベースビュー・ビデオ・ストリームを必要とし、そのベースビュー・ビデオ・ストリームとの組み合わせで3D映像を表すビデオ・ストリームをいう。ディペンデントビュー・ビデオ・ストリームの種類には、ライトビュー・ビデオ・ストリーム、レフトビュー・ビデオ・ストリーム、及び、デプスマップ・ストリームがある。「ライトビュー・ビデオ・ストリーム」は、ベースビューが3D映像のレフトビューであるときに、その3D映像のライトビューを表すビデオ・ストリームである。「レフトビュー・ビデオ・ストリーム」はその逆である。「デプスマップ・ストリーム」は、ベースビューが仮想的な2D画面への3D映像の射影であるときに、その3D映像のデプスマップを表すストリーム・データである。特に、ベースビューが3D映像のレフトビューであるときに利用されるデプスマップ・ストリームを「レフトビュー・デプスマップ・ストリーム」といい、ベースビューがライトビューであるときに利用されるデプスマップ・ストリームを「ライトビュー・デプスマップ・ストリーム」という。ディペンデントビュー・ビデオ・ストリームの表す2D映像又はデプスマップを「ディペンデントビュー」又は「サブビュー」という。
「テキスト字幕ストリーム」(textST(SubTitle)stream)は、所定の言語で記述された映画の字幕をテキスト文字列で表すストリーム・データをいう。「テキスト文字列」は、字幕に含まれる各文字を特定の符号(キャラクタ・コード)で表したデータ列である。テキスト字幕ストリームは他のTSとは異なり、一つのエレメンタリ・ストリームのみを含む。
AVストリーム・ファイルは、内蔵の多重化ストリーム・データの種類に依って、ファイル2D、ファイル・ディペンデント(以下、ファイルDEPと略す。)、テキスト字幕ファイル、及びインターリーブ・ファイル(以下、ファイルSSと略す。)の四種類に分けられる。「ファイル2D」は、2D再生モードでの2D映像の再生に利用されるAVストリーム・ファイルであって、メインTSを含むものをいう。「ファイルDEP」は、サブTSを含むAVストリーム・ファイルをいう。「テキスト字幕ファイル」は、テキスト字幕ストリームを含む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はファイルDEPであり、第3AVストリーム・ファイル(03000.m2ts)243はテキスト字幕ファイルである。このように、ファイル2D、ファイルDEP、及びテキスト字幕ファイルはSTREAMディレクトリ240の直下に置かれる。第1AVストリーム・ファイルすなわちファイル2D241の含むベースビュー・ビデオ・ストリームは3D映像のレフトビューを表す。第2AVストリーム・ファイルすなわちファイルDEP242の含むディペンデントビュー・ビデオ・ストリームは、ライトビュー・ビデオ・ストリームとデプスマップ・ストリームとの両方を含む。
図2に示されている例では更に、第4AVストリーム・ファイル(01000.ssif)244Aと第5AVストリーム・ファイル(02000.ssif)244BとはいずれもファイルSSである。このように、ファイルSSはSSIFディレクトリ244の直下に置かれる。第4AVストリーム・ファイル、すなわち第1ファイルSS244Aはファイル2D241とはメインTS、特にベースビュー・ビデオ・ストリームを共有し、ファイルDEP242とはサブTS、特にライトビュー・ビデオ・ストリームを共有する。第5AVストリーム・ファイル、すなわち第2ファイルSS244Bはファイル2D241とはメインTS、特にベースビュー・ビデオ・ストリームを共有し、ファイルDEP242とはサブTS、特にデプスマップ・ストリームを共有する。
CLIPINFディレクトリ230には、三種類のクリップ情報ファイル(01000.clpi)231、(02000.clpi)232、(03000.clpi)233が置かれている。「クリップ情報ファイル」は、ファイル2D、ファイルDEP、及びテキスト字幕ファイルに一対一に対応付けられたファイルであって、特に各ファイルのエントリ・マップを含むものをいう。「エントリ・マップ」は、各ファイルの表すシーン又は字幕の表示時間と、そのシーン又は字幕が記録された各ファイル内のアドレスとの間の対応表である。クリップ情報ファイルのうち、ファイル2Dに対応付けられているものを「2Dクリップ情報ファイル」といい、ファイルDEPに対応付けられているものを「ディペンデントビュー・クリップ情報ファイル」という。図2に示されている例では、第1クリップ情報ファイル(01000.clpi)231は2Dクリップ情報ファイルであり、ファイル2D241に対応付けられている。第2クリップ情報ファイル(02000.clpi)232はディペンデントビュー・クリップ情報ファイルであり、ファイルDEP242に対応付けられている。第3クリップ情報ファイル(03000.clpi)233はテキスト字幕ファイル243に対応付けられている。
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モードの3D再生装置に対しては第1ファイルSS244Aの再生経路を規定する。第3プレイリスト・ファイル(00003.mpls)223は3Dプレイリスト・ファイルであり、2D再生モードの再生装置に対してはファイル2D241の再生経路を規定し、デプス・モードの3D再生装置に対しては第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アプリケーション・プログラムが格納される。
AUXDATAディレクトリ270には、フォント・セット(11111.oft)271が置かれている。フォント・セット271は、テキスト字幕ストリームに関するフォント情報を含む。フォント情報は、キャラクタ・コード別に字体を表すラスタ・データを含む。キャラクタ・コードは、例えば、数字、アルファベット、五十音の各文字に割り当てられている。フォント・セットは、字体と言語との種類別に構成され、例えばOpenTypeフォントを含む。
≪多重化ストリーム・データの構造≫
図3の(a)は、BD−ROMディスク101上のメインTSに多重化されたエレメンタリ・ストリームの一覧表である。メインTSはMPEG−2トランスポート・ストリーム(TS)形式のデジタル・ストリームであり、図2に示されているファイル2D241に含まれる。図3の(a)を参照するに、メインTSは、プライマリ・ビデオ・ストリーム301、プライマリ・オーディオ・ストリーム302A、302B、及びプレゼンテーション・グラフィックス(PG)ストリーム303A、303Bを含む。メインTSはその他に、インタラクティブ・グラフィックス(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上のサブTSに多重化されたエレメンタリ・ストリームの一覧表である。サブTSはMPEG−2 TS形式の多重化ストリーム・データであり、図2に示されているファイルDEP242に含まれる。図3の(b)を参照するに、サブTSは二本のプライマリ・ビデオ・ストリーム311R、311Dを含む。その一方311Rはライトビュー・ビデオ・ストリームであり、他方311Dはデプスマップ・ストリームである。そのライトビュー・ビデオ・ストリーム311Rは、メインTS内のプライマリ・ビデオ・ストリーム301が3D映像のレフトビューを表すとき、その3D映像のライトビューを表す。そのデプスマップ・ストリーム311Dは、メインTS内のプライマリ・ビデオ・ストリーム301との組み合わせで3D映像を表す。サブTSはその他に、セカンダリ・ビデオ・ストリーム312R、312Dを含んでもよい。その一方312Rはライトビュー・ビデオ・ストリームであり、他方312Dはデプスマップ・ストリームである。そのライトビュー・ビデオ・ストリーム312Rは、メインTS内のセカンダリ・ビデオ・ストリーム306が3D映像のレフトビューを表すとき、その3D映像のライトビューを表す。そのデプスマップ・ストリーム312Dは、メインTS内のセカンダリ・ビデオ・ストリーム306との組み合わせで3D映像を表す。
エレメンタリ・ストリーム311R、…、312Dに対するPIDの割り当ては例えば次のとおりである。プライマリ・ビデオ・ストリーム311R、311Dにはそれぞれ、0x1012、0x1013が割り当てられる。一つのサブTSに他のエレメンタリ・ストリームが種類別に最大32本まで多重化可能であるとき、セカンダリ・ビデオ・ストリーム312R、312Dには0x1B20から0x1B3Fまでのいずれかが割り当てられる。
図3の(c)は、BD−ROMディスク101上のテキスト字幕ストリームに多重化されたエレメンタリ・ストリームの一覧表である。テキスト字幕ストリームはMPEG−2 TS形式のストリーム・データである。図3の(c)に示されているとおり、テキスト字幕ストリームは単一のエレメンタリ・ストリーム321のみを含む。そのエレメンタリ・ストリーム321に対しては、PIDとして一定値0x1800が割り当てられる。
図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」は時刻情報であり、再生装置102によって次のように利用される:ソースパケット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ごとに誤り訂正処理を行う。
≪ビデオ・ストリームのデータ構造≫
ビデオ・ストリームに含まれる各ピクチャは1フレーム又は1フィールドを表し、MPEG−2又はMPEG−4 AVC等の動画圧縮符号化方式によって圧縮されている。その圧縮には、ピクチャの空間方向及び時間方向での冗長性が利用される。ここで、空間方向での冗長性のみを利用するピクチャの符号化を「ピクチャ内符号化」という。一方、時間方向での冗長性、すなわち、表示順序の連続する複数のピクチャ間でのデータの近似性を利用するピクチャの符号化を「ピクチャ間予測符号化」という。ピクチャ間予測符号化では、まず符号化対象のピクチャに対して、表示時間が前又は後である別のピクチャが参照ピクチャとして設定される。次に、符号化対象のピクチャとその参照ピクチャとの間で動きベクトルが検出され、それを利用して参照ピクチャに対する動き補償が行われる。更に、動き補償によって得られたピクチャと符号化対象のピクチャとの間の差分値が求められ、その差分値から空間方向での冗長性が除去される。こうして、各ピクチャのデータ量が圧縮される。
図6は、ビデオ・ストリームに含まれる三枚のピクチャ601、602、603を表示時間順に示す模式図である。図6を参照するに、各ピクチャ601、602、603は一般に複数のスライス611、…、621、622、623、…、631、…に分割されている。「スライス」は、一般に水平方向に並ぶ複数のマクロブロックから構成された帯状領域である。「マクロブロック」は、16×16等、所定サイズの画素マトリクスである。ここで、図6には示されていないが、一つのスライスが二行以上のマクロブロックから構成されていてもよい。上記の符号化方式ではピクチャがスライスごとに圧縮される。圧縮後のスライスは、Iスライス、Pスライス、Bスライスの三種類に分けられる。「I(Intra)スライス」621は、ピクチャ内符号化によって圧縮されたスライスをいう。「P(Predictive)スライス」622は、ピクチャ間予測符号化によって圧縮されたスライスであって、表示時間がそれよりも前である一枚のピクチャ601が参照ピクチャとして利用されたものをいう。「B(Bidirectionally Predivtive)スライス」623は、ピクチャ間予測符号化によって圧縮されたスライスであって、表示時間がそれよりも前又は後である二枚のピクチャ601、603が参照ピクチャとして利用されたものをいう。図6ではPスライス622とBスライス623との参照先が矢印で示されている。MPEG−4 AVCでは、図6に示されているように、一つのピクチャ602が異なる種類のスライスを含んでもよい。一方、MPEG−2では、一つのピクチャは同じ種類のスライスしか含まない。
以下の説明では便宜上、符号化方式に関わらず、一つのピクチャが同じ種類のスライスしか含まない場合を想定する。その場合、圧縮後のピクチャはスライスの種類に応じて、Iピクチャ、Pピクチャ、Bピクチャの三種類に分けられる。更に、Bピクチャのうち、他のピクチャに対するピクチャ間予測符号化で参照ピクチャとして利用されるものを特に「Br(reference B)ピクチャ」という。
図7は、ベースビュー・ビデオ・ストリーム701とライトビュー・ビデオ・ストリーム702とのピクチャを表示時間順に示す模式図である。図7を参照するに、ベースビュー・ビデオ・ストリーム701はピクチャ710、711、712、…、719(以下、ベースビュー・ピクチャという。)を含み、ライトビュー・ビデオ・ストリーム702はピクチャ720、721、722、…、729(以下、ライトビュー・ピクチャという。)を含む。ベースビュー・ピクチャ710−719は一般に複数のGOP731、732に分割されている。「GOP」は、Iピクチャを先頭とする複数枚の連続するピクチャの列をいう。GOPは一般に、Iピクチャの他にPピクチャとBピクチャとを含む。
図7に示されている例では、各GOP731、732内のベースビュー・ピクチャが以下の順で圧縮される。第1GOP731では、まず先頭のベースビュー・ピクチャがI0ピクチャ710に圧縮される。ここで、下付の数字は、各ピクチャに表示時間順に割り振られた通し番号を示す。次に、4番目のベースビュー・ピクチャがI0ピクチャ710を参照ピクチャとしてP3ピクチャ713に圧縮される。ここで、図7に示されている各矢印は、先端のピクチャが後端のピクチャに対する参照ピクチャであることを示す。続いて、2、3番目のベースビュー・ピクチャがI0ピクチャ710とP3ピクチャ713とを参照ピクチャとして、それぞれ、Br1ピクチャ711、Br2ピクチャ712に圧縮される。更に7番目のベースビュー・ピクチャがP3ピクチャ713を参照ピクチャとしてP6ピクチャ716に圧縮される。続いて、4、5番目のベースビュー・ピクチャがP3ピクチャ713とP6ピクチャ716とを参照ピクチャとして、それぞれ、Br4ピクチャ714、Br5ピクチャ715に圧縮される。同様に、第2GOP732では、まず先頭のベースビュー・ピクチャがI7ピクチャ717に圧縮される。次に3番目のベースビュー・ピクチャがI7ピクチャ717を参照ピクチャとしてP9ピクチャ719に圧縮される。続いて、2番目のベースビュー・ピクチャがI7ピクチャ717とP9ピクチャ719とを参照ピクチャとしてBr8ピクチャ718に圧縮される。
ベースビュー・ビデオ・ストリーム701では各GOP731、732がその先頭にIピクチャを必ず含むので、ベースビュー・ピクチャはGOPごとに復号可能である。例えば第1GOP731では、まずI0ピクチャ710が単独で復号される。次に、復号後のI0ピクチャ710を利用してP3ピクチャ713が復号される。続いて、復号後のI0ピクチャ710とP3ピクチャ713とを利用して、Br1ピクチャ711とBr2ピクチャ712とが復号される。後続のピクチャ群714、715、…も同様に復号される。こうして、ベースビュー・ビデオ・ストリーム701は単独で復号可能であり、更にGOP単位でのランダム・アクセスが可能である。
図7を更に参照するに、ライトビュー・ピクチャ720−729はピクチャ間予測符号化で圧縮されている。しかし、その符号化方法はベースビュー・ピクチャ710−719の符号化方法とは異なり、映像の時間方向での冗長性に加え、左右の映像間の冗長性をも利用する。具体的には、各ライトビュー・ピクチャ720−729の参照ピクチャが、図7に矢印で示されているように、ライトビュー・ビデオ・ストリーム702からだけでなく、ベースビュー・ビデオ・ストリーム701からも選択される。特に各ライトビュー・ピクチャ720−729と、その参照ピクチャとして選択されたベースビュー・ピクチャとは表示時刻が実質的に等しい。それらのピクチャは3D映像の同じシーンのライトビューとレフトビューとの対、すなわち視差映像を表す。このように、ライトビュー・ピクチャ720−729はベースビュー・ピクチャ710−719と一対一に対応する。特にそれらのピクチャ間ではGOP構造が共通である。
図7に示されている例では、まず第1GOP731内の先頭のライトビュー・ピクチャがベースビュー・ビデオ・ストリーム701内のI0ピクチャ710を参照ピクチャとしてP0ピクチャ720に圧縮される。それらのピクチャ710、720は3D映像の先頭フレームのレフトビューとライトビューとを表す。次に、4番目のライトビュー・ピクチャがP0ピクチャ720とベースビュー・ビデオ・ストリーム701内のP3ピクチャ713とを参照ピクチャとしてP3ピクチャ723に圧縮される。続いて、2番目のライトビュー・ピクチャがP0ピクチャ720とP3ピクチャ723とに加えて、ベースビュー・ビデオ・ストリーム701内のBr1ピクチャ711を参照ピクチャとしてB1ピクチャ721に圧縮される。同様に、3番目のライトビュー・ピクチャがP0ピクチャ720とP3ピクチャ730とに加えて、ベースビュー・ビデオ・ストリーム701内のBr2ピクチャ712を参照ピクチャとしてB2ピクチャ722に圧縮される。以降のライトビュー・ピクチャ724−729についても同様に、そのライトビュー・ピクチャと表示時刻が実質的に等しいベースビュー・ピクチャが参照ピクチャとして利用される。
上記のような左右の映像間の相関関係を利用した動画圧縮符号化方式としては、MVC(Multiview Video Coding)と呼ばれるMPEG−4 AVC/H.264の修正規格が知られている。MVCは、ISO/IEC MPEGとITU−T VCEGとの共同プロジェクトであるJVT(Joint Video Team)によって2008年7月に策定されたものであり、複数の視点から見える映像をまとめて符号化するための規格である。MVCでは映像間予測符号化に、映像の時間方向での類似性だけでなく、視点の異なる映像間の類似性も利用される。その予測符号化では、各視点から見た映像を個別に圧縮する予測符号化よりも映像の圧縮率が高い。
上記のとおり、各ライトビュー・ピクチャ720−729の圧縮にはベースビュー・ピクチャが参照ピクチャとして利用される。従って、ベースビュー・ビデオ・ストリーム701とは異なり、ライトビュー・ビデオ・ストリーム702を単独で復号することはできない。しかし、視差映像間の差異は一般にわずかであり、すなわちレフトビューとライトビューとの間の相関は高い。従って、ライトビュー・ピクチャは一般にベースビュー・ピクチャよりも圧縮率が著しく高く、すなわちデータ量が著しく小さい。
デプスマップ・ストリームに含まれるデプスマップはベースビュー・ピクチャ710−719と一対一に対応し、そのベースビュー・ピクチャの示す2D映像に対するデプスマップを表す。各デプスマップは、ベースビュー・ピクチャ710−719と同様、MPEG−2又はMPEG−4 AVC等の動画圧縮符号化方式によって圧縮されている。特にその符号化方式ではピクチャ間予測符号化が利用される。すなわち、各デプスマップが他のデプスマップを参照ピクチャとして利用して圧縮される。デプスマップ・ストリームは更に、ベースビュー・ビデオ・ストリーム701と同様にGOP単位に分割され、各GOPがその先頭にIピクチャを必ず含む。従って、デプスマップはGOPごとに復号可能である。但し、デプスマップ自体は2D映像の各部の奥行きを画素別に表す情報でしかないので、デプスマップ・ストリームを単独で映像の再生に利用することはできない。
例えば図3の(b)に示されている二本のプライマリ・ビデオ・ストリーム311R、311Dのように、同じベースビュー・ビデオ・ストリームに対応するライトビュー・ビデオ・ストリームとデプスマップ・ストリームとは同じ符号化方式で圧縮されている。例えば、ライトビュー・ビデオ・ストリームがMVCのフォーマットで符号化されているとき、デプスマップ・ストリームもMVCのフォーマットで符号化されている。その場合、再生装置102は3D映像の再生時、符号化方式を一定に維持したまま、L/Rモードとデプス・モードとの切り換えをスムーズに実現できる。
図8は、ビデオ・ストリーム800のデータ構造の詳細を示す模式図である。このデータ構造は、ベースビュー・ビデオ・ストリームとディペンデントビュー・ビデオ・ストリームとで実質的に共通である。図8を参照するに、ビデオ・ストリーム800は一般に複数のビデオ・シーケンス#1、#2、…から構成されている。「ビデオ・シーケンス」は、一つのGOP810を構成するピクチャ群811、812、813、814、…に個別にヘッダ等の付加情報を組み合わせたものである。この付加情報と各ピクチャとの組み合わせを「ビデオ・アクセスユニット(VAU)」という。すなわち、各GOP810、820ではピクチャごとに一つのVAU#1、#2、…が構成されている。各ピクチャはVAU単位でビデオ・ストリーム800から読み出し可能である。
図8は更に、ベースビュー・ビデオ・ストリーム内で各ビデオ・シーケンスの先端に位置するVAU#1831の構造を示す。VAU#1831は、アクセスユニット(AU)識別コード831A、シーケンス・ヘッダ831B、ピクチャ・ヘッダ831C、補足データ831D、及び圧縮ピクチャ・データ831Eを含む。二番目以降の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は、サブAU識別コード832A、サブシーケンス・ヘッダ832B、ピクチャ・ヘッダ832C、補足データ832D、及び圧縮ピクチャ・データ832Eを含む。二番目以降のVAU#2は、サブシーケンス・ヘッダ832Bを含まない点を除き、VAU#1832と同じ構造である。サブAU識別コード832Aは、VAU#1832の先端を示す所定の符号である。サブシーケンス・ヘッダ832Bは、VAU#1832を含むビデオ・シーケンス#1の識別番号を含む。サブシーケンス・ヘッダ832Bは更にGOP810の全体で共通する情報、例えば、解像度、フレームレート、アスペクト比、及びビットレートを含む。特にそれらの値は、ベースビュー・ビデオ・ストリームの対応するGOPに対して設定された値、すなわちVAU#1831のシーケンス・ヘッダ831Bの示す値に等しい。ピクチャ・ヘッダ832Cは、自身に固有の識別番号、ビデオ・シーケンス#1の識別番号、及び、ピクチャの復号に必要な情報、例えば符号化方式の種類を示す。補足データ832Dは、ピクチャの復号以外に関する付加的な情報、例えば、クローズド・キャプションを示す文字情報、GOP構造に関する情報、及びタイムコード情報を含む。補足データ832Dは特に、復号スイッチ情報に加えてオフセット・メタ・データを含む(詳細は後述する)。圧縮ピクチャ・データ832Eはディペンデントビュー・ピクチャを含む。VAU#1832はその他に、必要に応じて、パディング・データ832F、シーケンス終端コード832G、及びストリーム終端コード832Hのいずれか又は全てを含んでもよい。パディング・データ832Fはダミーデータである。そのサイズを圧縮ピクチャ・データ832Eのサイズに合わせて調節することにより、VAU#1832のビットレートを所定値に維持することができる。シーケンス終端コード832Gは、VAU#1832がビデオ・シーケンス#1の後端に位置することを示す。ストリーム終端コード832Hはディペンデントビュー・ビデオ・ストリーム800の後端を示す。
VAUの各部の具体的な内容はビデオ・ストリーム800の符号化方式ごとに異なる。例えばその符号化方式がMPEG−4 AVC又はMVCであるとき、図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は、ベースビュー・ビデオ・ストリーム910とディペンデントビュー・ビデオ・ストリーム920とのそれぞれに含まれるVAU間でのヘッダの参照関係を示す模式図である。図9を参照するに、ベースビュー・ビデオ・ストリーム910では、先頭のピクチャBPICがスライス#1−#K(整数Kは1以上である。)に分割されてVAUの圧縮ピクチャ・データ911に格納されている。各スライス#1−#Kには、スライス・ヘッダ912が付与されている。各スライス#1−#Kの参照先のピクチャを示す識別情報、すなわち参照ピクチャ番号はそのスライスのスライス・ヘッダ912に格納されている。それにより、各スライス・ヘッダの示す参照ピクチャ番号からその参照先のベースビュー・ピクチャを特定することができる。スライス・ヘッダ912は更に、同じVAU内のピクチャ・ヘッダ913の識別番号(例えばPPS番号)を含む。それにより、図9に破線の矢印で示されているように、各スライス・ヘッダの示す識別番号からその参照先のピクチャ・ヘッダ913を特定することができる。他のピクチャも同様に、スライス#1−#L(整数Lは1以上である。)に分割されて他のVAUの圧縮ピクチャ・データ914に格納されている。各スライス#1−#Lに付与されたスライス・ヘッダは同じVAU内のピクチャ・ヘッダ915の識別番号を含む。それにより、図9に破線の矢印で示されているように、各スライス・ヘッダの示す識別番号からその参照先のピクチャ・ヘッダ915を特定することができる。更に、各ピクチャ・ヘッダ913、915は同じビデオ・シーケンス内のシーケンス・ヘッダ916の番号(例えばSPS番号)を含む。それにより、図9に一点鎖線の矢印で示されているように、各ピクチャ・ヘッダ913、915の示す識別番号からその参照先のシーケンス・ヘッダ916を特定することができる。
図9を更に参照するに、ディペンデントビュー・ビデオ・ストリーム920でも同様に、先頭のピクチャDPICがスライス#1−#Kに分割されてVAUの圧縮ピクチャ・データ921に格納されている。各スライス#1−#Kに付与されたスライス・ヘッダ922は参照ピクチャ番号を含む。その参照ピクチャ番号から、そのスライスの参照するベースビュー・ピクチャとディペンデントビュー・ピクチャとを特定することができる。各スライス・ヘッダは更に、同じVAU内のピクチャ・ヘッダ923の識別番号を含む。それにより、図9に破線の矢印で示されているように、各スライス・ヘッダ922の示す識別番号からその参照先のピクチャ・ヘッダ923を特定することができる。他のピクチャも同様に、スライス#1−#Lに分割されて他のVAUの圧縮ピクチャ・データ924に格納されている。各スライス#1−#Lに付与されたスライス・ヘッダは、参照ピクチャ番号と、同じVAU内のピクチャ・ヘッダ925の識別番号とを含む。それにより、図9に破線の矢印で示されているように、各スライス・ヘッダ922の示す識別番号からその参照先のピクチャ・ヘッダ925を特定することができる。更に、各ピクチャ・ヘッダ923、925は、同じビデオ・シーケンス内のサブシーケンス・ヘッダ926の番号を含む。それにより、図9に一点鎖線の矢印で示されているように、各ピクチャ・ヘッダ923、925の示す識別番号からその参照先のサブシーケンス・ヘッダ926を特定することができる。
図10は、PESパケット列1002へのビデオ・ストリーム1001の格納方法の詳細を示す模式図である。この格納方法は、ベースビュー・ビデオ・ストリームとディペンデントビュー・ビデオ・ストリームとで共通である。図10を参照するに、実際のビデオ・ストリーム1001ではピクチャが、表示時間順ではなく符号化順に多重化されている。例えばベースビュー・ビデオ・ストリームのVAUには、図10に示されているように、先頭から順に、I0ピクチャ1010、P3ピクチャ1011、B1ピクチャ1012、B2ピクチャ1013、…が格納されている。ここで、下付の数字は、各ピクチャに表示時間順に割り振られた通し番号を示す。P3ピクチャ1011の符号化にはI0ピクチャ1010が参照ピクチャとして利用され、B1ピクチャ1012とB2ピクチャ1013との各符号化にはI0ピクチャ1010とP3ピクチャ1011とが参照ピクチャとして利用される。それらのVAUが一つずつ、異なるPESパケット1020、1021、1022、1023、…に格納される。各PESパケット1020、…はPESペイロード1020PとPESヘッダ1020Hとを含む。VAUはPESペイロード1020Pに格納される。一方、PESヘッダ1020Hは、同じPESパケット1020のPESペイロード1020Pに格納されたピクチャの表示時刻、すなわちPTS(Presentation Time−Stamp)、及びそのピクチャの復号時刻、すなわちDTS(Decoding Time−Stamp)を含む。
図10に示されているビデオ・ストリーム1001と同様、図3、4に示されている他のエレメンタリ・ストリームも一連のPESパケットの各PESペイロードに格納される。更に各PESパケットのPESヘッダは、そのPESパケットのPESペイロードに格納されたデータのPTSを含む。
図11は、ベースビュー・ビデオ・ストリーム1101とディペンデントビュー・ビデオ・ストリーム1102との各ピクチャに割り当てられたPTSとDTSとの間の関係を示す模式図である。図11を参照するに、両ビデオ・ストリーム1101、1102の間では、3D映像の同じフレーム又はフィールドを表す一対のピクチャに対して、同じPTS及び同じDTSが割り当てられている。例えば3D映像の先頭のフレーム又はフィールドは、ベースビュー・ビデオ・ストリーム1101のI1ピクチャ1111とディペンデントビュー・ビデオ・ストリーム1102のP1ピクチャ1121との組み合わせから再現される。従って、それらのピクチャの対1111、1121ではPTSが等しく、かつDTSが等しい。ここで、下付の数字は、各ピクチャにDTSの順に割り振られた通し番号を示す。また、ディペンデントビュー・ビデオ・ストリーム1102がデプスマップ・ストリームであるとき、P1ピクチャ1121は、I1ピクチャ1111に対するデプスマップを表すIピクチャに置き換えられる。同様に、各ビデオ・ストリーム1101、1102の2番目のピクチャ、すなわち、P2ピクチャ1112、1122の対ではPTSが等しく、かつDTSが等しい。各ビデオ・ストリーム1101、1102の3番目のピクチャ、すなわちBr3ピクチャ1113とB3ピクチャ1123との対ではPTSとDTSとがいずれも共通である。Br4ピクチャ1114とB4ピクチャ1124との対でも同様である。
ベースビュー・ビデオ・ストリーム1101とディペンデントビュー・ビデオ・ストリーム1102との間で、PTSが等しく、かつDTSが等しいピクチャを含むVAUの対を「3D・VAU」という。図11に示されているPTSとDTSとの割り当てにより、3D再生モードの再生装置102内のデコーダにベースビュー・ビデオ・ストリーム1101とディペンデントビュー・ビデオ・ストリーム1102とを3D・VAU単位でパラレルに処理させることが容易にできる。それにより、3D映像の同じフレーム又はフィールドを表す一対のピクチャが、デコーダによって確実にパラレルに処理される。更に、各GOPの先頭の3D・VAUではシーケンス・ヘッダが、同じ解像度、同じフレームレート、及び同じアスペクト比を含む。特にそのフレームレートは、2D再生モードにおいてベースビュー・ビデオ・ストリーム1101が単独で復号されるときの値に等しい。
[復号スイッチ情報]
図12の(a)は、図8に示されている各補足データ831D、832Dの含む復号スイッチ情報1250のデータ構造を示す模式図である。ここで、補足データ831D、832Dは、特にMPEG−4 AVC、MVCでは、NALユニットの一種“SEI”に相当する。復号スイッチ情報1250は、ベースビュー・ビデオ・ストリームとディペンデントビュー・ビデオ・ストリームとの両方で各VAUの補足データ831D、832Dに含まれる。復号スイッチ情報1250は、再生装置102内のデコーダに、次に復号すべきVAUを容易に特定させるための情報である。ここで、そのデコーダは後述のように、ベースビュー・ビデオ・ストリームとディペンデントビュー・ビデオ・ストリームとをVAU単位で交互に復号する。そのとき、そのデコーダは一般に、各VAUに付与されたDTSの示す時刻に合わせて、次に復号すべきVAUを特定する。しかし、デコーダの種類には、DTSを無視してVAUを順次、復号し続けるものも多い。そのようなデコーダにとって、各VAUがDTSに加えて復号スイッチ情報1250を含むことは好ましい。
図12の(a)を参照するに、復号スイッチ情報1250は、次アクセスユニット・タイプ1251、次アクセスユニット・サイズ1252、及び復号カウンタ1253を含む。次アクセスユニット・タイプ1251は、次に復号されるべきVAUがベースビュー・ビデオ・ストリームとディペンデントビュー・ビデオ・ストリームとのいずれに属するのかを示す。例えば、次アクセスユニット・タイプ1251の値が“1”であるときは、次に復号されるべきVAUはベースビュー・ビデオ・ストリームに属し、“2”であるときはディペンデントビュー・ビデオ・ストリームに属する。次アクセスユニット・タイプ1251の値が“0”であるときは、現在のVAUが復号対象のストリームの後端に位置し、次に復号されるべきVAUが存在しない。次アクセスユニット・サイズ1252は、次に復号されるべきVAUのサイズを示す。再生装置102内のデコーダは、次アクセスユニット・サイズ1252を参照することにより、VAUの構造自体を解析することなく、そのサイズを特定できる。従って、デコーダはバッファからVAUを容易に抽出できる。復号カウンタ1253は、それの属するVAUが復号されるべき順番を示す。その順番は、ベースビュー・ビデオ・ストリーム内のIピクチャを含むVAUから数えられる。
図12の(b)は、ベースビュー・ビデオ・ストリーム1201とディペンデントビュー・ビデオ・ストリーム1202との各ピクチャに割り当てられた復号カウンタの一例1210、1220を示す模式図である。図12の(b)を参照するに、復号カウンタ1210、1220は両ビデオ・ストリーム1201、1202の間で交互にインクリメントされる。例えば、ベースビュー・ビデオ・ストリーム1201内のIピクチャを含むVAU1211に対し、復号カウンタ1210として“1”が割り当てられる。次に復号されるべきディペンデントビュー・ビデオ・ストリーム1202内のPピクチャを含むVAU1221に対し、復号カウンタ1220として“2”が割り当てられる。更にその次に復号されるべきベースビュー・ビデオ・ストリーム1201内のPピクチャを含むVAU1212に対し、復号カウンタ1210として“3”が割り当てられる。その割り当てにより、何らかの不具合が原因で再生装置102内のデコーダがいずれかのVAUを読み損なったときでも、それによって欠落したピクチャをデコーダは復号カウンタ1210、1220から直ちに特定できる。従って、デコーダはエラー処理を適切に、かつ迅速に実行できる。
図12の(b)に示されている例では、ベースビュー・ビデオ・ストリーム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の(c)は、ベースビュー・ビデオ・ストリーム1201とディペンデントビュー・ビデオ・ストリーム1202との各ピクチャに割り当てられた復号カウンタの別例1230、1240を示す模式図である。図12の(c)を参照するに、復号カウンタ1230、1240は各ビデオ・ストリーム1201、1202で別々にインクリメントされる。従って、復号カウンタ1230、1240は、同じ3D・VAUに属する一対のピクチャ間で等しい。その場合、デコーダはベースビュー・ビデオ・ストリーム1201のVAUを一つ復号した時点では次のように予測できる:「その復号カウンタ1230が、次に復号されるべきディペンデントビュー・ビデオ・ストリーム1202のVAUの復号カウンタ1240に等しい」。一方、デコーダはディペンデントビュー・ビデオ・ストリーム1202のVAUを一つ復号した時点では次のように予測できる:「その復号カウンタ1240に1を加えた値が、次に復号されるべきベースビュー・ビデオ・ストリーム1201のVAUの復号カウンタ1230に等しい」。従って、デコーダはいずれの時点でも復号カウンタ1230、1240からVAUの読み込みエラーを迅速に検出でき、かつ適切なエラー処理を迅速に実行できる。その結果、再生映像へのノイズの混入を防止することができる。
[オフセット・メタ・データ]
図13は、ディペンデントビュー・ビデオ・ストリーム1300の含むオフセット・メタ・データ1310のデータ構造を示す模式図である。図14は、そのオフセット・メタ・データ(offset_metadata)1310の書式(Syntax)を示す表である。図13を参照するに、オフセット・メタ・データ1310は、各ビデオ・シーケンス(すなわち、各GOP)の先端に位置するVAU#1の補足データ1301に格納されている。図13、14を参照するに、オフセット・メタ・データ1310は、オフセット・シーケンスID(offset_sequence_id)1311とオフセット・シーケンス(offset_sequence)1312との間の対応表を含む。
オフセット・シーケンスID1311は、オフセット・シーケンス1312に順番に割り振られた通し番号0、1、2、…、Mである。整数Mは1以上であり、オフセット・シーケンス1312の総数(number_of_offset_sequence)を表す。各ビデオ・シーケンスから再生されるビデオ・プレーンに合成されるべきグラフィックス・プレーンには、オフセット・シーケンスID1311が割り当てられる。それにより、各グラフィックス・プレーンにオフセット・シーケンス1312が対応付けられる。
ここで、「ビデオ・プレーン」とは、ビデオ・シーケンスの含むピクチャから生成されるプレーン・データをいう。「グラフィックス・プレーン」とは、2Dグラフィックス映像を表すグラフィックス・データ、又はテキスト字幕ストリームの含むテキスト文字列から生成されるプレーン・データをいう。「プレーン・データ」とは画素データの二次元配列であり、その配列のサイズは映像フレームの解像度に等しい。一組の画素データは色座標値とα値(不透明度)との組み合わせから成る。色座標値はRGB値又はYCrCb値で表される。グラフィックス・プレーンの種類には、PGプレーン、IGプレーン、イメージ・プレーン、及びオン・スクリーン・ディスプレイ(OSD)プレーンが含まれる。PGプレーンは、メインTS内のPGストリーム又はテキスト字幕ストリームから生成される。IGプレーンは、メインTS内のIGストリームから生成される。イメージ・プレーンは、BD−Jオブジェクトに従って生成される。OSDプレーンは、再生装置102のファームウェアに従って生成される。
各オフセット・シーケンス1312は、フレーム番号1321とオフセット情報1322、1323との対応表である。フレーム番号1321は、一つのビデオ・シーケンス(例えば、ビデオ・シーケンス#1)の表すフレーム#1、#2、…、#Nに表示順に割り振られた通し番号1、2、…、Nである。図14では、フレーム番号1321は整数値変数iで表されている。整数Nは1以上であり、そのビデオ・シーケンスの含むフレームの総数(number_of_displayed_frames_in_GOP)を表す。各オフセット情報1322、1323は、一つのグラフィックス・プレーンに対するオフセット制御を規定する制御情報である。
ここで、「オフセット制御」とは、グラフィックス・プレーンに水平座標の左方向と右方向との各オフセットを与えて、ベースビュー・ビデオ・プレーンとディペンデントビュー・ビデオ・プレーンとのそれぞれに合成する処理をいう。「グラフィックス・プレーンに水平方向のオフセットを与える」とは、そのグラフィックス・プレーン内で各画素データを水平方向に変位させることをいう。それにより、一つのグラフィックス・プレーンから、レフトビューとライトビューとを表すグラフィックス・プレーンの対が生成される。その対から再生される2Dグラフィックス映像の各部の表示位置は、元の表示位置から左右にずれている。それらの変位が視聴者に両眼視差として錯覚されることにより、レフトビューとライトビューとの対がその視聴者には一つの3Dグラフィックス映像として見える。
オフセットは方向と大きさとで決まる。従って、図13、14に示されているとおり、各オフセット情報はオフセット方向(Plane_offset_direction)1322とオフセット値(Plane_offset_value)1323とを含む。オフセット方向1322は、3Dグラフィックス映像の奥行きが画面よりも手前か奥かを示す。オフセット方向1322の値に依り、元の2Dグラフィックス映像の表示位置に対するレフトビューとライトビューとの各表示位置の方向が左又は右に決まる。オフセット値1323は、元の2Dグラフィックス映像の表示位置とレフトビューとライトビューとの各表示位置との間の距離を水平方向の画素数で表す。
図15の(a)、(b)は、PGプレーン1510とIGプレーン1520とに対するオフセット制御を示す模式図である。それらのオフセット制御では、レフトビュー・ビデオ・プレーン1501とライトビュー・ビデオ・プレーン1502とのそれぞれへ二種類のグラフィックス・プレーン1510、1520が合成される。ここで、「レフトビュー/ライトビュー・ビデオ・プレーン」とは、ベースビュー・ビデオ・ストリームとディペンデントビュー・ビデオ・ストリームとの組み合わせから生成される、レフトビュー/ライトビューを表すビデオ・プレーンをいう。以下の説明では、PGプレーン1510の表す字幕1511を画面よりも手前に表示し、IGプレーン1520の表すボタン1521を画面よりも奥に表示する場合を想定する。
図15の(a)を参照するに、PGプレーン1510には、右方向のオフセットが与えられる。具体的には、まず、PGプレーン1510内の各画素データの位置が、レフトビュー・ビデオ・プレーン1501内の対応する画素データの位置から、オフセット値に等しい画素数SFPだけ右に(仮想的に)移動する。次に、レフトビュー・ビデオ・プレーン1501の範囲よりも右側に(仮想的に)はみ出ているPGプレーン1510の右端の帯状領域1512を「切り取る」。すなわち、その領域1512の画素データ群を破棄する。一方、PGプレーン1510の左端に透明な帯状領域1513を追加する。その帯状領域1513の幅は右端の帯状領域1512の幅、すなわちオフセット値SFPに等しい。こうして、PGプレーン1510から、レフトビューを表すPGプレーンが生成され、レフトビュー・ビデオ・プレーン1501に合成される。特に、そのレフトビューPGプレーンでは、字幕1511の表示位置が元の表示位置よりも右に、オフセット値SFPだけずれている。
一方、IGプレーン1520には、左方向のオフセットが与えられる。具体的には、まず、IGプレーン1520内の各画素データの位置が、レフトビュー・ビデオ・プレーン1501内の対応する画素データの位置から、オフセット値に等しい画素数SFIだけ左に(仮想的に)移動する。次に、レフトビュー・ビデオ・プレーン1510の範囲よりも左側に(仮想的に)はみ出ているIGプレーン1520の左端の帯状領域1522を切り取る。一方、IGプレーン1520の右端に透明な帯状領域1523を追加する。その帯状領域1523の幅は左端の帯状領域1522の幅、すなわちオフセット値SFIに等しい。こうして、IGプレーン1520から、レフトビューを表すIGプレーンが生成され、レフトビュー・ビデオ・プレーン1501に合成される。特に、そのレフトビューIGプレーンでは、ボタン1521の表示位置が元の表示位置よりも左に、オフセット値SFIだけずれている。
図15の(b)を参照するに、PGプレーン1510には左方向のオフセットが与えられ、IGプレーン1520には右方向のオフセットが与えられる。すなわち、上記の操作をPGプレーン1510とIGプレーン1520とで反対にすればよい。その結果、各プレーン・データ1510、1520から、ライトビューを表すプレーン・データが生成され、ライトビュー・ビデオ・プレーン1520に合成される。特に、ライトビューPGプレーンでは、字幕1511の表示位置が元の表示位置よりも左に、オフセット値SFPだけずれている。一方、ライトビューIGプレーンでは、ボタン1521の表示位置が元の表示位置よりも右に、オフセット値SFIだけずれている。
図15の(c)は、(a)、(b)に示されているグラフィックス・プレーンの表す2Dグラフィックス映像から視聴者1530に知覚される3Dグラフィックス映像を示す模式図である。それらのグラフィックス・プレーンの表す2Dグラフィックス映像が画面1540に交互に表示されるとき、視聴者1530には、図15の(c)に示されているように、字幕1531は画面1540よりも手前に見え、ボタン1532は画面1540よりも奥に見える。各3Dグラフィックス映像1531、1532と画面1540との間の距離はオフセット値SFP、SFIによって調節可能である。
図16の(a)、(b)は、オフセット・シーケンスの具体例を示すグラフである。各グラフでは、オフセット方向が画面よりも手前を示すときに、オフセット値が正である。図16の(a)は、図16の(b)のうち、最初のGOP、GOP1、の表示期間でのグラフを拡大したものである。図16の(a)を参照するに、階段状のグラフ1601は、オフセット・シーケンスID=0のオフセット・シーケンス、すなわちオフセット・シーケンス[0]のオフセット値を示す。一方、水平なグラフ1602は、オフセット・シーケンスID=1のオフセット・シーケンス、すなわちオフセット・シーケンス[1]のオフセット値を示す。オフセット・シーケンス[0]のオフセット値1601は、最初のGOPの表示期間GOP1ではフレームFR1、FR2、FR3、…、FR15、…の順に階段状に増加している。図16の(b)を参照するに、そのオフセット値1601の階段状の増加は二番目以降の各GOPの表示期間GOP2、GOP3、…、GOP40、…でも同様に継続される。1フレーム当たりの増加量が十分に細かいので、図16の(b)ではオフセット値1601が線形に連続的に増加しているように見える。一方、オフセット・シーケンス[1]のオフセット値1602は、最初のGOPの表示期間GOP1では負の一定値に維持されている。図16の(b)を参照するに、そのオフセット値1602は、40番目のGOPの表示期間GOP40の終了時、正の値に急増する。このようにオフセット値は不連続に変化してもよい。
図16の(c)は、図16の(a)、(b)に示されているオフセット・シーケンスに従って再現される3Dグラフィックス映像を示す模式図である。字幕の3D映像1603がオフセット・シーケンス[0]に従って表示されるとき、その3D映像1603は、画面1604の直ぐ手前から徐々に飛び出てくるように見える。一方、ボタンの3D映像1605がオフセット・シーケンス[1]に従って表示されるとき、その3D映像1605は、画面1604よりも奥に固定されている状態から突然、画面1604よりも手前に飛び出てくるように見える。このように、フレーム単位でのオフセット値の増減のパターンをオフセット・シーケンスごとに様々に変化させる。それにより、複数の3Dグラフィックス映像について、個々の奥行きの変化を多様に表現することができる。
≪PGストリームのデータ構造≫
図4を再び参照するに、PGストリーム403は複数の機能セグメントを含む。それらの機能セグメントは、表示制御セグメント(Presentation Control Segment:PCS)、パレット定義セグメント(Pallet Define Segment:PDS)、ウィンドウ定義セグメント(Window Define Segment:WDS)、及びオブジェクト定義セグメント(Object Define Segment:ODS)を含む。PCSは、グラフィックス・ストリームにおける表示単位(ディスプレイ・セット)の詳細と共に、グラフィックス・オブジェクトを用いた画面構成を規定する。その画面構成の種類には、カット・イン/アウト(Cut−In/Out)、フェード・イン/アウト(Fade−In/Out)、色変化(Color Change)、スクロール(Scroll)、ワイプ・イン/アウト(Wipe−In/Out)が含まれる。PCSによって画面構成を規定することにより、「ある字幕を徐々に消去しつつ、次の字幕を表示させる」という表示効果を実現することができる。PDSは、画素コードと色座標値(例えば、輝度Y、赤色差Cr、青色差Cb、不透明度α)との間の対応関係を規定する。WDSは、グラフィックス・プレーン内の矩形領域、すなわちウィンドウを規定する。ODSは、画素コードとランレングスとを用いて、ランレングス圧縮が施されたグラフィックス・オブジェクトを定義する。
≪IGストリームのデータ構造≫
図4を更に参照するに、IGストリーム404は、対話構成セグメント(Interactive Composition Segment:ICS)、PDS、及びODSを含む。PDSとODSとは、PGストリーム403に含まれるものと同様な機能セグメントである。特に、ODSの含むグラフィックス・オブジェクトは、ボタン及びポップアップ・メニュー等、対話画面を構成するGUI用グラフィックス部品を表す。ICSは、それらのグラフィックス・オブジェクトを用いた対話操作を規定する。具体的には、ICSは、ボタン及びポップアップ・メニュー等、ユーザ操作に応じて状態が変化するグラフィックス・オブジェクトのそれぞれについて取り得る状態、すなわち、ノーマル、セレクテッド、及びアクティブの各状態を規定する。ICSは更にボタン情報を含む。ボタン情報は、ユーザがボタン等に対して確定操作を行った際に再生装置の実行すべきコマンドを含む。
≪テキスト字幕ストリームのデータ構造≫
図17は、テキスト字幕ストリーム1700のデータ構造を示す模式図である。テキスト字幕ストリーム1700は複数のテキスト・データ・エントリ1710を含む。各テキスト・データ・エントリ1710は、スタイル情報1711とテキスト情報1712との対から構成されている。テキスト情報1712は、表示対象のテキスト文字列を表す。スタイル情報1711は、PTS1701、表示位置1702、フォントID1703、表示スタイル1704、及びフォント・サイズ1705を含む。PTS1701は、同じ対のテキスト情報1712の表すテキスト文字列の表示時刻を示す。表示位置1702は、グラフィックス・プレーンにおけるそのテキスト文字列の表示位置を示す。フォントID1703は、そのテキスト文字列をグラフィックス・プレーンに描画する際に参照されるべきフォント・セットの識別情報である。表示スタイル1704は、太字、イタリック等、そのテキスト文字列を表示する際の字体を示す。フォント・サイズ1705は、そのテキスト文字列を表示する際の文字の大きさを示す。
≪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を同期させる。
図18は、PMT1810のデータ構造を示す模式図である。PMT1810は、PMTヘッダ1801、ディスクリプタ1802、及びストリーム情報1803を含む。PMTヘッダ1801は、PMT1810に含まれるデータの長さ等を示す。各ディスクリプタ1802は、PMT1810を含むAVストリーム・ファイルの全体に関するディスクリプタである。前述のコピー・コントロール情報はディスクリプタ1802の一つに含まれる。ストリーム情報1803は、AVストリーム・ファイルに含まれる各エレメンタリ・ストリームに関する情報であり、一つずつ異なるエレメンタリ・ストリームに割り当てられている。各ストリーム情報1803は、ストリーム・タイプ1831、PID1832、及びストリーム・ディスクリプタ1833を含む。ストリーム・タイプ1831は、そのエレメンタリ・ストリームの圧縮に利用されたコーデックの識別情報等を含む。PID1832は、そのエレメンタリ・ストリームのPIDを示す。ストリーム・ディスクリプタ1833は、そのエレメンタリ・ストリームの属性情報、例えばフレームレート及びアスペクト比を含む。
PCR、PMT、及びPATを利用することで、再生装置102内のデコーダにAVストリーム・ファイルを、欧州デジタル放送規格に準拠のパーシャル・トランスポート・ストリームと同様に処理させることができる。それにより、BD−ROMディスク101用の再生装置と欧州デジタル放送規格に準拠の端末装置との間の互換性を確保することができる。
≪多重化ストリーム・データのインターリーブ配置≫
3D映像のシームレス再生には、ベースビュー・ビデオ・ストリームとディペンデントビュー・ビデオ・ストリームとのBD−ROMディスク101上での物理的な配置が重要である。ここで、「シームレス再生」とは、多重化ストリーム・データから映像と音声とを途切れさせることなく滑らかに再生することをいう。
図19は、BD−ROMディスク101上での多重化ストリーム・データの物理的な配置を示す模式図である。図19を参照するに、多重化ストリーム・データは複数のデータ・ブロック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]を「ディペンデントビュー・データ・ブロック」という。特に、ライトビュー・ビデオ・ストリームを含むデータ・ブロックを「ライトビュー・データ・ブロック」といい、デプスマップ・ストリームを含むデータ・ブロックを「デプスマップ・データ・ブロック」という。
各データ・ブロックB[n]、D[n]は、BD−ROMディスク101のファイルシステムでは、ファイル2D又はファイルDEP内の一つのエクステントとしてアクセス可能である。すなわち、各データ・ブロックの論理アドレスは、ファイル2D又はファイルDEPのファイル・エントリから知ることができる(詳細は《補足》参照)。
図19に示されている例では、ファイル2D(01000.m2ts)241のファイル・エントリ1910がベースビュー・データ・ブロックB[n]の各サイズとその先端のLBNとを示す。従って、各ベースビュー・データ・ブロックB[n]はファイル2D241のエクステントEXT2D[n]としてアクセス可能である。以下、ファイル2D241に属するエクステントEXT2D[n]を「2Dエクステント」という。一方、ファイルDEP(02000.m2ts)242のファイル・エントリ1920がディペンデントビュー・データ・ブロックD[n]の各サイズとその先端のLBNとを示す。従って、各ディペンデントビュー・データ・ブロックD[n]はディペンデントビュー・データ・ブロックであり、ファイルDEP242のエクステントEXT2[n]としてアクセス可能である。以下、ファイルDEP242に属するエクステントEXT2[n]を「ディペンデントビュー・エクステント」という。
図19を参照するに、データ・ブロック群はBD−ROMディスク101上のトラックに沿って連続的に記録されている。更に、ベースビュー・データ・ブロックB[n]とディペンデントビュー・データ・ブロックD[n]とは一つずつ交互に配置されている。このようなデータ・ブロック群の配置を「インターリーブ配置」という。特に、インターリーブ配置で記録された一連のデータ・ブロック群を「エクステント・ブロック」という。図19には三つのエクステント・ブロック1901、1902、1903が示されている。最初の二つのエクステント・ブロック1901、1902のように、エクステント・ブロックの間は多重化ストリーム・データ以外のデータNAVの記録領域によって分離される。また、BD−ROMディスク101が多層ディスクである場合、すなわち記録層を複数含む場合、図13に示されている二番目と三番目とのエクステント・ブロック1902、1903のように、エクステント・ブロックの間は記録層間の境界LBによっても分離される。こうして、一連の多重化ストリーム・データは一般に複数のエクステント・ブロックに分割されて配置されている。その場合、再生装置102がその多重化ストリーム・データから映像をシームレスに再生するには、各エクステント・ブロックから再生される映像をシームレスに接続しなければならない。以下、そのために再生装置102が必要とする処理を「エクステント・ブロック間のシームレスな接続」という。
各エクステント・ブロック1901−1903は二種類のデータ・ブロック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から読み出されたデータ・ブロックをシステム・ターゲット・デコーダへ送るまでの間、一時的に格納する。リード・バッファの詳細については後述する。図19に示されている例では、三つのエクステント・ブロック1901−1903が互いにシームレスに接続されるので、データ・ブロックの各対D[n]、B[n](n=0、1、2、…)でエクステントATC時間が等しい。
隣接するデータ・ブロックの各対D[n]、B[n]では、先頭に位置するVAUは同じ3D・VAUに属し、特に、同じ3D映像を表すGOPの先頭のピクチャを含む。例えば、各ライトビュー・データ・ブロックD[n]の先端はライトビュー・ビデオ・ストリームのPピクチャを含み、先頭のベースビュー・データ・ブロックB[n]の先端はベースビュー・ビデオ・ストリームのIピクチャを含む。そのライトビュー・ビデオ・ストリームのPピクチャは、そのベースビュー・ビデオ・ストリームのIピクチャの表す2D映像をレフトビューとするときのライトビューを表す。特にそのPピクチャは、図7に示されているように、そのIピクチャを参照ピクチャとして圧縮されている。従って、3D再生モードの再生装置102は、いずれのデータ・ブロックの対D[n]、B[n]からも3D映像の再生を開始できる。すなわち、飛び込み再生等、ビデオ・ストリームのランダムアクセスを要する処理が可能である。
インターリーブ配置では更に、隣接するデータ・ブロックの対D[n]、B[n]のうち、ディペンデントビュー・データ・ブロックD[n]がベースビュー・データ・ブロックB[n]よりも先に配置される。それは、ディペンデントビュー・データ・ブロックD[n]がベースビュー・データ・ブロックB[n]よりもデータ量が小さい、すなわちビットレートが低いことに因る。例えば、n番目のライトビュー・データ・ブロックD[n]に含まれるピクチャは、n番目のベースビュー・データ・ブロックB[n]に含まれるピクチャを参照ピクチャとして圧縮されている。従って、そのライトビュー・データ・ブロックD[n]のサイズSEXT2[n]はそのベースビュー・データ・ブロックB[n]のサイズSEXT1[n]以下である:SEXT2[n]≦SEXT1[n]。一方、デプスマップの画素当たりのデータ量、すなわち奥行き値のビット数は一般に、ベースビュー・ピクチャの画素当たりのデータ量、すなわち色座標値とα値とのビット数の和よりも小さい。更に、図3の(a)、(b)に示されているように、メインTSはサブ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時間の等しい部分の対に分割して読み出さねばならない。
図20の(a)は、あるBD−ROMディスク上に個別に連続して記録されたメインTS2001とサブTS2002との配置を示す模式図である。再生装置102がそれらのメインTS2001とサブTS2002とをパラレルに処理するとき、図20の(a)に実線の矢印(1)−(4)で示されているように、BD−ROMドライブ121はメインTS2001とサブTS2002とを交互に、エクステントATC時間の等しい部分ずつ読み出す。そのとき、BD−ROMドライブ121は、図20の(a)に破線の矢印で示されているように、読み出し処理の途中でBD−ROMディスク上の読み出し対象領域を大きく変化させなければならない。例えば矢印(1)の示すメインTS2001の先端部分が読み出された時、BD−ROMドライブ121は光ピックアップによる読み出し動作を一旦停止し、BD−ROMディスクの回転速度を上げる。それにより、矢印(2)の示すサブTS2002の先端部分が記録されたBD−ROMディスク上のセクタを速やかに光ピックアップの位置まで移動させる。このように、光ピックアップに読み出し動作を一旦停止させて、その間に次の読み出し対象領域上へ光ピックアップを位置づけるための操作を「ジャンプ」という。図20の(a)に示されている破線の矢印は、読み出し処理の途中で必要な各ジャンプの範囲を示す。各ジャンプの期間中、光ピックアップによる読み出し処理は停止し、デコーダによる復号処理のみが進行する。図20の(a)に示されている例ではジャンプが過大であるので、読み出し処理を復号処理に間に合わせることが難しい。その結果、シームレス再生を確実に持続することが難しい。
図20の(b)は、本発明の実施形態1によるBD−ROMディスク101上に交互に記録されたディペンデントビュー・データ・ブロックD[0]、D[1]、D[2]、…とベースビュー・データ・ブロックB[0]、B[1]、B[2]、…との配置を示す模式図である。図20の(b)を参照するに、メインTSとサブTSとはそれぞれ、複数のデータ・ブロックに分割されて交互に配置されている。その場合、再生装置102は3D映像の再生時、図20の(b)に矢印(1)−(4)で示されているように、データ・ブロックD[0]、B[0]、D[1]、B[1]、…を先頭から順番に読み出す。それだけで、再生装置102はメインTSとサブTSとを交互に読み出すことをスムーズに実現できる。特にその読み出し処理ではジャンプが生じないので、3D映像のシームレス再生が確実に持続可能である。
[隣接するデータ・ブロック間でエクステントATC時間を揃える意義]
図20の(c)は、インターリーブ配置で記録されたディペンデントビュー・データ・ブロック群D[n]とベースビュー・データ・ブロック群B[n]との各エクステントATC時間の一例を示す模式図である(n=0、1、2)。図20の(c)を参照するに、各ディペンデントビュー・データ・ブロック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パケットがリード・バッファからシステム・ターゲット・デコーダへ送られる。
図20の(d)は、インターリーブ配置で記録されたディペンデントビュー・データ・ブロック群D[n]とベースビュー・データ・ブロック群B[n]との各エクステントATC時間の別例を示す模式図である。図20の(d)を参照するに、全てのデータ・ブロックD[n]、B[n]でエクステントATC時間が1秒に等しい。従って、各データ・ブロックD[n]、B[n]が再生装置102内のリード・バッファに読み込まれたとき、いずれのデータ・ブロックでも、同じ1秒間で全てのTSパケットがリード・バッファからシステム・ターゲット・デコーダへ送られる。
上記のとおり、ディペンデントビュー・データ・ブロックはベースビュー・データ・ブロックよりも圧縮率が高い。従って、ディペンデントビュー・データ・ブロックの復号処理の速度は一般にベースビュー・データ・ブロックの復号処理の速度よりも低い。一方、エクステントATC時間が等しいとき、ディペンデントビュー・データ・ブロックはベースビュー・データ・ブロックよりもデータ量が小さい。従って、図20の(c)、(d)のように、隣接するデータ・ブロック間でエクステントATC時間が等しいとき、復号対象のデータがシステム・ターゲット・デコーダに供給される速度は、そのデコーダの処理速度と均衡を保ちやすい。すなわち、システム・ターゲット・デコーダは、特に飛び込み再生においても、ベースビュー・データ・ブロックの復号処理とディペンデントビュー・データ・ブロックの復号処理とを容易に同期させることができる。
[データ量の小さいデータ・ブロックを先に置く意義]
3D再生モードの再生装置102は、各エクステント・ブロックの先頭に位置するデータ・ブロックを読み出すとき、又は再生開始位置のデータ・ブロックを読み出すとき、まず、そのデータ・ブロックを全てリード・バッファに読み込む。その間、そのデータ・ブロックはシステム・ターゲット・デコーダには渡されない。その読み込みが完了した後、再生装置102はそのデータ・ブロックを次のデータ・ブロックとパラレルにシステム・ターゲット・デコーダに渡す。この処理を「プリロード」という。
プリロードの技術的意義は次のとおりである。L/Rモードでは、ディペンデントビュー・データ・ブロックの復号にベースビュー・データ・ブロックが必要である。従って、復号後のデータを出力処理まで保持するためのバッファを必要最小限の容量に維持するには、それらのデータ・ブロックをシステム・ターゲット・デコーダに同時に供給して復号させることが好ましい。一方、デプス・モードでは、復号後のベースビュー・ピクチャとデプスマップとの対から、視差画像を表すビデオ・プレーンの対を生成する処理が必要である。従って、復号後のデータをその処理まで保持するためのバッファを必要最小限の容量に維持するには、ベースビュー・データ・ブロックとデプスマップ・データ・ブロックとをシステム・ターゲット・デコーダに同時に供給して復号させることが好ましい。それ故、プリロードにより、エクステント・ブロックの先頭又は再生開始位置のデータ・ブロックの全体を予めリード・バッファに読み込んでおく。それにより、そのデータ・ブロックと後続のデータ・ブロックとをリード・バッファからシステム・ターゲット・デコーダへ同時に転送して復号させることができる。更に、以降のデータ・ブロックの対もシステム・ターゲット・デコーダに同時に復号させることができる。
プリロードでは、最初に読み出されるデータ・ブロックの全体がリード・バッファに蓄積される。従って、リード・バッファには少なくとも、そのデータ・ブロックのサイズに等しい容量が要求される。ここで、リード・バッファの容量を最小限に維持するには、プリロードの対象とされるデータ・ブロックのサイズを可能な限り縮小すべきである。一方、飛び込み再生等のランダムアクセスでは、いずれのデータ・ブロックの対も再生開始位置に選択され得る。それ故、いずれのデータ・ブロックの対でも、データ量の小さい方を先に置く。それにより、リード・バッファの容量を最小限に維持することができる。
≪データ・ブロックに対するAVストリーム・ファイルのクロスリンク≫
図19に示されているデータ・ブロック群に対して、AVストリーム・ファイルのクロスリンクは次のように実現される。第1ファイルSS(01000.ssif)244Aのファイル・エントリ1940は、各エクステント・ブロック1901−1903を一つのエクステントと見なして各サイズとその先端のLBNとを示す。従って、各エクステント・ブロック1901−1903は第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]を共有し、ファイルDEP242とはディペンデントビュー・データ・ブロックD[n]を共有する。
≪エクステント・ブロック群に対する再生経路≫
図21は、エクステント・ブロック群1901−1903に対する2D再生モードでの再生経路2101を示す模式図である。2D再生モードの再生装置102はファイル2D241を再生する。従って、2D再生モードでの再生経路2101が示すとおり、各エクステント・ブロック1901−1903からベースビュー・データ・ブロックB[n](n=0、1、2、…)が順番に2DエクステントEXT2D[0]、EXT2D[1]、EXT2D[2]として読み出される。具体的には、まず先頭のエクステント・ブロック1901から先頭のベースビュー・データ・ブロックB[0]が読み出され、その直後のディペンデントビュー・データ・ブロックD[0]の読み出しが最初のジャンプJ2D1によってスキップされる。次に二番目のベースビュー・データ・ブロックB[1]が読み出され、その直後のデータNAVとディペンデントビュー・データ・ブロックD[1]との読み出しが二回目のジャンプJNAVによってスキップされる。続いて、二番目以降のエクステント・ブロック1902、1903内でも同様に、ベースビュー・データ・ブロックの読み出しとジャンプとが繰り返される。
二番目のエクステント・ブロック1902と三番目のエクステント・ブロック1903との間に生じるジャンプJLYは、層境界LBを越えるロングジャンプである。「ロングジャンプ」はジャンプの中でもシーク時間の長いものの総称であり、具体的には、ジャンプ距離が所定の閾値を超えるものをいう。「ジャンプ距離」とは、ジャンプ期間中に読み出し操作がスキップされるBD−ROMディスク101上の領域の長さをいう。ジャンプ距離は通常、その部分のセクタ数で表される。ロングジャンプの定義に利用される閾値は、BD−ROMの規格では例えば40000セクタに規定されている。しかし、その閾値は、BD−ROMディスクの種類と、BD−ROMドライブの読み出し処理に関する性能とに依存する。ロングジャンプは特にフォーカス・ジャンプとトラック・ジャンプとを含む。「フォーカス・ジャンプ」は、記録層の切り換えに伴うジャンプであり、光ピックアップの焦点距離を変化させる処理を含む。「トラック・ジャンプ」は、光ピックアップをBD−ROMディスク101の半径方向に移動させる処理を含む。
図21は、エクステント・ブロック群1901−1903に対するL/Rモードでの再生経路2102も示す。L/Rモードの再生装置102は第1ファイルSS244Aを再生する。従って、L/Rモードでの再生経路2102が示すとおり、各エクステント・ブロック1901−1903が順番にエクステントSSEXTSS[0]、EXTSS[1]、EXTSS[2]として読み出される。具体的には、まず先頭のエクステント・ブロック1901からデータ・ブロックD[0]、B[0]、D[1]、B[1]が連続して読み出され、その直後のデータNAVの読み出しが最初のジャンプJNAVによってスキップされる。次に二番目のエクステント・ブロック1902からデータ・ブロックD[2]、…、B[3]が連続して読み出される。その直後に、記録層の切り換えに伴うロングジャンプJLYが生じ、続いて、三番目のエクステント・ブロック1903からデータ・ブロックD[4]、B[4]、…が連続して読み出される。
エクステント・ブロック1901−1903を第1ファイルSS244Aのエクステントとして読み込むとき、再生装置102は第1ファイルSS244Aのファイル・エントリ1940から各エクステントSSEXTSS[0]、EXTSS[1]、…の先端のLBNとそのサイズとを読み出してBD−ROMドライブ121に渡す。BD−ROMドライブ121はそのLBNからそのサイズのデータを連続して読み出す。これらの処理は、データ・ブロック群をファイルDEP242とファイル2D241との各エクステントとして読み込む処理よりも、BD−ROMドライブ121の制御が次の二点(A)、(B)で簡単である:(A)再生装置102は一箇所のファイル・エントリを利用して各エクステントを順番に参照すればよい;(B)読み込み対象のエクステントの総数が実質上半減するので、BD−ROMドライブ121に渡されるべきLBNとサイズとの対の総数が少ない。但し、再生装置102はエクステントSSEXTSS[0]、EXTSS[1]、…を読み込んだ後、それぞれをディペンデントビュー・データ・ブロックとベースビュー・データ・ブロックとに分離してデコーダに渡さなければならない。その分離処理にはクリップ情報ファイルが利用される。その詳細については後述する。
図19に示されているように、各エクステント・ブロック1901−1903の実際の読み出しでは、BD−ROMドライブ121は各データ・ブロックの後端から次のデータ・ブロックの先端までの間にゼロ・セクタ遷移J0を行う。「ゼロ・セクタ遷移」とは、二つの連続するデータ・ブロック間での光ピックアップの移動をいう。ゼロ・セクタ遷移が行われる期間(以下、ゼロ・セクタ遷移期間という。)では、光ピックアップは読み出し動作を一旦停止して待機する。その意味で、ゼロ・セクタ遷移は「ジャンプ距離が0セクタに等しいジャンプ」とも見なせる。ゼロ・セクタ遷移期間の長さ、すなわちゼロ・セクタ遷移時間は、BD−ROMディスク101の回転による光ピックアップの位置の移動時間の他に、誤り訂正処理に伴うオーバーヘッドを含んでもよい。「誤り訂正処理に伴うオーバーヘッド」とは、二つのデータ・ブロックの境界がECCブロックの境界と一致していないときに、そのECCブロックを用いた誤り訂正処理が二回行われることに起因する余分な時間をいう。誤り訂正処理には一つのECCブロックの全体が必要である。従って、一つのECCブロックが二つの連続するデータ・ブロックに共有されているとき、いずれのデータ・ブロックの読み出し処理でもそのECCブロックの全体が読み出されて誤り訂正処理に利用される。その結果、それらのデータ・ブロックを一つ読み出すごとに、そのデータ・ブロックの他に最大32セクタの余分なデータが読み出される。誤り訂正処理に伴うオーバーヘッドは、その余分なデータの読み出し時間の合計、すなわち32[セクタ]×2048[バイト]×8[ビット/バイト]×2[回]/読み出し速度で評価される。尚、各データ・ブロックをECCブロック単位で構成することにより、誤り訂正処理に伴うオーバーヘッドがゼロ・セクタ遷移時間から除外されてもよい。
≪クリップ情報ファイル≫
図22は、第1クリップ情報ファイル(01000.clpi)、すなわち2Dクリップ情報ファイル231のデータ構造を示す模式図である。ディペンデントビュー・クリップ情報ファイル(02000.clpi)232と、テキスト字幕ストリームに対応するクリップ情報ファイル(03000.clpi)233とも同様なデータ構造を持つ。以下では、まず2Dクリップ情報ファイル231のデータ構造を例にして、クリップ情報ファイル全般に共通するデータ構造を説明する。その後、ディペンデントビュー・クリップ情報ファイルについて、2Dクリップ情報ファイルとのデータ構造上の相違点を説明する。
図22を参照するに、2Dクリップ情報ファイル231は、クリップ情報2210、ストリーム属性情報2220、エントリ・マップ2230、及び3Dメタデータ2240を含む。3Dメタデータ2240はエクステント起点2242を含む。
クリップ情報2210は、システムレート2211、再生開始時刻2212、及び再生終了時刻2213を含む。システムレート2211は、ファイル2D(01000.m2ts)241に対するシステムレートを規定する。ここで、2D再生モードの再生装置102は、ファイル2D241に属するTSパケットをリード・バッファからシステム・ターゲット・デコーダへ転送する。「システムレート」はその転送速度の上限値を意味する。その転送速度がシステムレート以下に抑えられるように、ファイル2D241ではソースパケットのATSの間隔が設定されている。再生開始時刻2212は、ファイル2D241の先頭のVAUのPTS、例えば先頭の映像フレームのPTSを示す。再生終了時刻2212は、ファイル2D241の後端のVAUのPTSから所定量遅れたSTCの値、例えば最後の映像フレームのPTSに1フレーム当たりの再生時間を加えた値を示す。
ストリーム属性情報2220は、ファイル2D241に含まれる各エレメンタリ・ストリームのPID2221とその属性情報2222との間の対応表である。属性情報2222は、ビデオ・ストリーム、オーディオ・ストリーム、PGストリーム、テキスト字幕ストリーム、及びIGストリームのそれぞれで異なる。例えばプライマリ・ビデオ・ストリームのPID0x1011に対応付けられた属性情報は、そのビデオ・ストリームの圧縮に利用されたコーデックの種類、そのビデオ・ストリームを構成する各ピクチャの解像度、アスペクト比、及びフレームレートを含む。一方、プライマリ・オーディオ・ストリームのPID0x1100に対応付けられた属性情報は、そのオーディオ・ストリームの圧縮に利用されたコーデックの種類、そのオーディオ・ストリームに含まれるチャンネル数、言語、及びサンプリング周波数を含む。属性情報2222は再生装置102により、デコーダの初期化に利用される。
[エントリ・マップ]
図23の(a)は、エントリ・マップ2230のデータ構造を示す模式図である。図23の(a)を参照するに、エントリ・マップ2230はテーブル2300を含む。テーブル2300は、メインTSに多重化されたビデオ・ストリームと同数であり、各ビデオ・ストリームに一つずつ割り当てられている。図23の(a)では各テーブル2300が割り当て先のビデオ・ストリームのPIDで区別されている。各テーブル2300はエントリ・マップ・ヘッダ2301とエントリ・ポイント2302とを含む。エントリ・マップ・ヘッダ2301は、そのテーブル2300に対応付けられたPIDと、そのテーブル2300に含まれるエントリ・ポイント2302の総数とを含む。エントリ・ポイント2302は、PTS2303とソースパケット番号(SPN)2304との対を一つずつ、異なるエントリ・ポイントID(EP_ID)2305に対応付ける。PTS2303は、エントリ・マップ・ヘッダ2301の示すPIDのビデオ・ストリームに含まれるいずれかのIピクチャのPTSに等しい。SPN2304は、そのIピクチャが格納されたソースパケット群の先頭のSPNに等しい。「SPN」とは、一つのAVストリーム・ファイルに属するソースパケット群に、先頭から順に割り当てられた通し番号をいう。SPNは、そのAVストリーム・ファイル内での各ソースパケットのアドレスとして利用される。2Dクリップ情報ファイル231内のエントリ・マップ2230では、SPNは、ファイル2D241に属するソースパケット群、すなわちメインTSを構成するソースパケット群に割り当てられた番号を意味する。従って、エントリ・ポイント2302は、ファイル2D241に含まれる各IピクチャのPTSとアドレス、すなわちSPNとの間の対応関係を表す。
エントリ・ポイント2302は、ファイル2D241内の全てのIピクチャに対して設定されていなくてもよい。但し、IピクチャがGOPの先頭に位置し、かつ、そのIピクチャの先頭を含むTSパケットが2Dエクステントの先頭に位置するときは、そのIピクチャにはエントリ・ポイント2302を設定しなければならない。
図23の(b)は、ファイル2D241に属するソースパケット群2310のうち、エントリ・マップ2230によって各EP_ID2305に対応付けられているものを示す模式図である。図23の(c)は、そのソースパケット群2310に対応するBD−ROMディスク101上のデータ・ブロック群D[n]、B[n](n=0、1、2、3、…)を示す模式図である。再生装置102はファイル2D241から2D映像を再生するとき、エントリ・マップ2230を利用して、任意のシーンを表すフレームのPTSから、そのフレームを含むソースパケットのSPNを特定する。具体的には、再生開始位置として特定のエントリ・ポイントのPTS、例えばPTS=360000が指定されたとき、再生装置102はまず、エントリ・マップ2230から、そのPTSに対応付けられたSPN=3200を検索する。再生装置102は次に、そのSPNとソースパケット一つ当たりのデータ量192バイトとの積を求め、更に、その積をセクタ一つ当たりのデータ量2048バイトで割ったときの商、SPN×192/2048を求める。図5の(c)、(d)から理解されるとおり、その値は、メインTSのうち、そのSPNが割り当てられたソースパケットよりも前の部分が記録されたセクタの総数に等しい。図23の(b)に示されている例では、その値3200×192/2048=300は、SPNが0から3199までのソースパケット群2311が記録されたセクタの総数に等しい。再生装置102は続いて、ファイル2D241のファイル・エントリを参照し、2Dエクステント群が記録されたセクタ群の先頭から数えて(上記の総数+1)番目のセクタのLBNを特定する。図23の(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映像を再生できる。
エントリ・マップ2230は更に、早送り再生及び巻戻し再生等の特殊再生の効率的な処理に有利である。例えば2D再生モードの再生装置102は、まずエントリ・マップ2230を参照して、再生開始位置、例えば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ピクチャを選択的に再生できる。
[エクステント起点]
図24の(a)は、エクステント起点2242のデータ構造を示す模式図である。図24の(a)を参照するに、「エクステント起点(Extent_Start_Point)」2242はベースビュー・エクステントID(EXT1_ID)2411とSPN2412とを含む。EXT1_ID2411は、第1ファイルSS(01000.ssif)244Aに属するベースビュー・データ・ブロックに先頭から順に割り当てられた通し番号である。SPN2412は各EXT1_ID2411に一つずつ割り当てられ、そのEXT1_ID2411で識別されるベースビュー・データ・ブロックの先端に位置するソースパケットのSPNに等しい。ここで、そのSPNは、第1ファイルSS244Aに属するベースビュー・データ・ブロック群に含まれるソースパケットに先頭から順に割り当てられた通し番号である。
図19に示されているエクステント・ブロック1901−1903では、各ベースビュー・データ・ブロックB[0]、B[1]、B[2]、…はファイル2D241と第1ファイルSS244Aとに共有される。しかし、記録層間の境界等、ロングジャンプの必要な箇所に配置されたデータ・ブロック群は一般に、ファイル2D241又は第1ファイルSS244Aのいずれかにのみ属するベースビュー・データ・ブロックを含む(詳細は《補足》参照)。従って、エクステント起点2242の示すSPN2412は、ファイル2D241に属する2Dエクステントの先端に位置するソースパケットのSPNとは一般に異なる。
図24の(b)は、第2クリップ情報ファイル(02000.clpi)、すなわちディペンデントビュー・クリップ情報ファイル232に含まれるエクステント起点2420のデータ構造を示す模式図である。図24の(b)を参照するに、エクステント起点2420は、ディペンデントビュー・エクステントID(EXT2_ID)2421とSPN2422とを含む。EXT2_ID2421は、第1ファイルSS244Aに属するディペンデントビュー・データ・ブロックに、先頭から順に割り当てられた通し番号である。SPN2422は各EXT2_ID2421に一つずつ割り当てられ、そのEXT2_ID2421で識別されるディペンデントビュー・データ・ブロックの先端に位置するソースパケットのSPNに等しい。ここで、そのSPNは、第1ファイルSS244Aに属するディペンデントビュー・データ・ブロック群に含まれるソースパケットに、先頭から順に割り当てられた通し番号である。
図24の(d)は、ファイルDEP(02000.m2ts)242に属するディペンデントビュー・エクステントEXT2[0]、EXT2[1]、…と、エクステント起点2420の示すSPN2422との間の対応関係を表す模式図である。図19に示されているように、ディペンデントビュー・データ・ブロックはファイルDEP242と第1ファイルSS244Aとに共有される。従って、図24の(d)に示されているように、エクステント起点2420の示す各SPN2422は、各ディペンデントビュー・エクステントEXT2[0]、EXT2[1]、…の先端に位置するソースパケットのSPNに等しい。
2Dクリップ情報ファイル231のエクステント起点2242とディペンデントビュー・クリップ情報ファイル232のエクステント起点2420とは、以下に説明するように、第1ファイルSS244Aから3D映像が再生されるとき、各エクステントSSに含まれるデータ・ブロックの境界の検出に利用される。
図24の(e)は、第1ファイルSS244Aに属するエクステントSSEXTSS[0]とBD−ROMディスク101上のエクステント・ブロックとの間の対応関係を示す模式図である。図24の(e)を参照するに、そのエクステント・ブロックは、インターリーブ配置のデータ・ブロック群D[n]、B[n](n=0、1、2、…)を含む。尚、以下の説明はその他の配置でも同様に成立する。そのエクステント・ブロックは一つのエクステントSSEXTSS[0]としてアクセス可能である。更に、そのエクステントSSEXTSS[0]の中で、n番目のベースビュー・データ・ブロックB[n]に含まれるソースパケットの数は、エクステント起点2242において、EXT1_ID=n+1、nのそれぞれに対応するSPN間の差A(n+1)−Anに等しい。ここで、A0=0とする。一方、ディペンデントビュー・データ・ブロックD[n+1]に含まれるソースパケットの数は、エクステント起点2420において、EXT2_ID=n+1、nのそれぞれに対応するSPN間の差B(n+1)−Bnに等しい。ここで、B0=0とする。
3D再生モードの再生装置102は第1ファイルSS244Aから3D映像を再生するとき、各クリップ情報ファイル231、232のエントリ・マップとエクステント起点2242、2420とを利用する。それにより、再生装置102は、任意のシーンのライトビューを表すフレームのPTSから、そのフレームを含むディペンデントビュー・データ・ブロックが記録されたセクタのLBNを特定する。具体的には、再生装置102はまず、例えばディペンデントビュー・クリップ情報ファイル232のエントリ・マップから、そのPTSに対応付けられたSPNを検索する。仮に、そのSPNの示すソースパケットが、ファイルDEP242の3番目のディペンデントビュー・エクステントEXT2[2]、すなわちディペンデントビュー・データ・ブロックD[2]に含まれる場合を想定する。再生装置102は次に、ディペンデントビュー・クリップ情報ファイル232のエクステント起点2420の示すSPN2422の中から、目標のSPN以下で最大のもの“B2”と、それに対応するEXT2_ID“2”とを検索する。再生装置102は続いて、2Dクリップ情報ファイル231のエクステント起点2242から、そのEXT2_ID“2”と等しいEXT1_IDに対応するSPN2412の値“A2”を検索する。再生装置102は更に、検索されたSPNの和B2+A2を求める。図24の(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は更にエクステント起点2242、2420を利用して、読み出されたエクステントSSからディペンデントビュー・データ・ブロックとベースビュー・データ・ブロックとを交互に抽出する。例えば、図24の(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内のデータ・ブロック間の境界を検出して、ディペンデントビュー・データ・ブロックとベースビュー・データ・ブロックとを交互に抽出する。抽出されたベースビュー・データ・ブロックとディペンデントビュー・データ・ブロックとはパラレルにシステム・ターゲット・デコーダに渡されて復号される。
こうして、3D再生モードの再生装置102は第1ファイルSS244Aから特定のPTS以降の3D映像を再生できる。その結果、再生装置102は、BD−ROMドライブ121の制御に関する上記の利点(A)、(B)を実際に享受できる。
≪ファイル・ベース≫
図24の(c)は、3D再生モードの再生装置102によって第1ファイルSS244Aから抽出されたベースビュー・データ・ブロックB[0]、B[1]、B[2]、…を表す模式図である。図24の(c)を参照するに、それらのベースビュー・データ・ブロックB[n](n=0、1、2、…)の含むソースパケット群に、先頭から順にSPNを割り当てたとき、各データ・ブロックB[n]の先端に位置するソースパケットのSPNは、エクステント起点2242の示すSPN2412に等しい。それらのベースビュー・データ・ブロック群B[n]のように、エクステント起点を利用して一つのファイルSSから抽出されるベースビュー・データ・ブロック群を「ファイル・ベース」という。更に、ファイル・ベースに含まれるベースビュー・データ・ブロックを「ベースビュー・エクステント」という。図24の(e)に示されているように、各ベースビュー・エクステントEXT1[0]、EXT1[1]、…はクリップ情報ファイル内のエクステント起点2242、2420によって参照される。
ベースビュー・エクステントEXT1[n]は2DエクステントEXT2D[n]とベースビュー・データ・ブロックB[n]を共有する。従って、ファイル・ベースはファイル2Dと同じメインTSを含む。しかし、ベースビュー・エクステントEXT1[n]は2DエクステントEXT2D[n]とは異なり、いずれのファイルのファイル・エントリによっても参照されない。上記のとおり、ベースビュー・エクステントEXT1[n]は、クリップ情報ファイル内のエクステント起点を利用して、ファイルSS内のエクステントSSEXTSS[・]から抽出される。このように、ファイル・ベースは本来のファイルとは異なり、ファイル・エントリを含まず、かつ、ベースビュー・エクステントの参照にエクステント起点を必要とする。それらの意味で、ファイル・ベースは「仮想的なファイル」である。特にファイル・ベースはファイルシステムでは認識されず、図2に示されているディレクトリ/ファイル構造には現れない。
図25は、BD−ROMディスク101上に記録された一つのエクステント・ブロック2500と、ファイル2D2510、ファイル・ベース2511、ファイルDEP2512、及びファイルSS2520の各エクステント群との間の対応関係を示す模式図である。図25を参照するに、エクステント・ブロック2500はディペンデントビュー・データ・ブロックD[n]とベースビュー・データ・ブロックB[n]とを含む(n=…、0、1、2、3、…)。ベースビュー・データ・ブロックB[n]は2DエクステントEXT2D[n]としてファイル2D2510に属する。ディペンデントビュー・データ・ブロックD[n]はディペンデントビュー・エクステントEXT2[n]としてファイルDEP2512に属する。エクステント・ブロック2500の全体が一つのエクステントSSEXTSS[0]としてファイルSS2520に属する。従って、エクステントSSEXTSS[0]は、2DエクステントEXT2D[n]とはベースビュー・データ・ブロックB[n]を共有し、ディペンデントビュー・エクステントEXT2[n]とはディペンデントビュー・データ・ブロックD[n]を共有する。エクステントSSEXTSS[0]は再生装置102に読み込まれた後、ディペンデントビュー・データ・ブロックD[n]とベースビュー・データ・ブロックB[n]とに分離される。それらのベースビュー・データ・ブロックB[n]はベースビュー・エクステントEXT1[n]としてファイル・ベース2511に属する。エクステントSSEXTSS[0]内でのベースビュー・エクステントEXT1[n]とディペンデントビュー・エクステントEXT2[n]との間の境界は、ファイル2D2510とファイルDEP2512とのそれぞれに対応付けられたクリップ情報ファイル内のエクステント起点を利用して特定される。
≪ディペンデントビュー・クリップ情報ファイル≫
ディペンデントビュー・クリップ情報ファイルは、図22−24に示されている2Dクリップ情報ファイルとデータ構造が同様である。従って、以下の説明では、ディペンデントビュー・クリップ情報ファイルと2Dクリップ情報ファイルとの間の相違点に触れ、同様な点についての説明は上記の説明を援用する。
ディペンデントビュー・クリップ情報ファイルは2Dクリップ情報ファイルとは主に次の二点(i)、(ii)で異なる:(i)ストリーム属性情報に条件が課せられている;(ii)エントリ・ポイントに条件が課せられている。
(i)ベースビュー・ビデオ・ストリームとディペンデントビュー・ビデオ・ストリームとがL/Rモードの再生装置102によって3D映像の再生に利用されるものであるとき、図7に示されているとおり、ディペンデントビュー・ビデオ・ストリームはベースビュー・ビデオ・ストリームを利用して圧縮されている。そのとき、ディペンデントビュー・ビデオ・ストリームはベースビュー・ビデオ・ストリームとビデオ・ストリーム属性が等しい。ここで、ベースビュー・ビデオ・ストリームに関するビデオ・ストリーム属性情報は2Dクリップ情報ファイルのストリーム属性情報2220内でPID=0x1011に対応付けられている。一方、ディペンデントビュー・ビデオ・ストリームに関するビデオ・ストリーム属性情報はディペンデントビュー・クリップ情報ファイルのストリーム属性情報内でPID=0x1012又は0x1013に対応付けられている。従って、それらのビデオ・ストリーム属性情報間では、図22に示されている各項目、すなわち、コーデック、解像度、アスペクト比、及びフレームレートが一致しなければならない。コーデックの種類が一致していれば、ベースビュー・ピクチャとディペンデントビュー・ピクチャとの間に符号化での参照関係が成立するので、各ピクチャを復号することができる。解像度、アスペクト比、及びフレームレートがいずれも一致していれば、左右の映像の画面表示を同期させることができる。それ故、それらの映像を3D映像として視聴者に違和感を与えることなく見せることができる。
(ii)ディペンデントビュー・クリップ情報ファイルのエントリ・マップは、ディペンデントビュー・ビデオ・ストリームに割り当てられたテーブルを含む。そのテーブルは、図23の(a)に示されているテーブル2300と同様に、エントリ・マップ・ヘッダとエントリ・ポイントとを含む。エントリ・マップ・ヘッダは、対応するディペンデントビュー・ビデオ・ストリームのPID、すなわち0x1012又は0x1013を示す。各エントリ・ポイントは一対のPTSとSPNとを一つのEP_IDに対応付けている。各エントリ・ポイントのPTSは、ディペンデントビュー・ビデオ・ストリームに含まれるいずれかのGOPの先頭のピクチャのPTSと等しい。各エントリ・ポイントのSPNは、同じエントリ・ポイントに属するPTSの示すピクチャが格納されたソースパケット群の先頭のSPNに等しい。ここで、SPNは、ファイルDEPに属するソースパケット群、すなわちサブTSを構成するソースパケット群に先頭から順に割り当てられた通し番号を意味する。各エントリ・ポイントのPTSは、2Dクリップ情報ファイルのエントリ・マップのうち、ベースビュー・ビデオ・ストリームに割り当てられたテーブル内のエントリ・ポイントのPTSと一致しなければならない。すなわち、同じ3D・VAUに含まれる一対のピクチャの一方を含むソースパケット群の先頭にエントリ・ポイントが設定されているときは常に、他方を含むソースパケット群の先頭にもエントリ・ポイントが設定されていなければならない。
図26は、ベースビュー・ビデオ・ストリーム2610とディペンデントビュー・ビデオ・ストリーム2620とに設定されたエントリ・ポイントの例を示す模式図である。各ビデオ・ストリーム2610、2620では、先頭から数えて同じ順番のGOPが同じ再生期間の映像を表す。図26を参照するに、ベースビュー・ビデオ・ストリーム2610では、先頭から数えて奇数番目に位置するGOP#1、GOP#3、GOP#5の各先頭にエントリ・ポイント2601B、2603B、2605Bが設定されている。それに併せて、ディペンデントビュー・ビデオ・ストリーム2620でも、先頭から数えて奇数番目に位置するGOP#1、GOP#3、GOP#5の各先頭にエントリ・ポイント2601D、2603D、2605Dが設定されている。その場合、再生装置102は、例えばGOP#3から3D映像の再生を開始するとき、対応するエントリ・ポイント2603B、2603DのSPNからファイルSS内の再生開始位置のSPNを直ちに算定できる。特にエントリ・ポイント2603B、2603Dがいずれもデータ・ブロックの先端に設定されているとき、図24の(e)から理解されるとおり、エントリ・ポイント2603B、2603DのSPNの和がファイルSS内の再生開始位置のSPNに等しい。図24の(e)の説明で述べたとおり、そのソースパケットの数からは、ファイルSS内の再生開始位置の部分が記録されたセクタのLBNを算定することができる。こうして、3D映像の再生においても、飛び込み再生等、ビデオ・ストリームのランダムアクセスを要する処理の応答速度を向上させることができる。
≪2Dプレイリスト・ファイル≫
図27は、2Dプレイリスト・ファイルのデータ構造を示す模式図である。図2に示されている第1プレイリスト・ファイル(00001.mpls)221はこのデータ構造を持つ。図27を参照するに、2Dプレイリスト・ファイル221はメインパス2701と二つのサブパス2702、2703とを含む。
メインパス2701はプレイアイテム情報(PI)の配列であり、ファイル2D241の主要な再生経路、すなわち再生対象の部分とその再生順とを規定する。各PIは固有のプレイアイテムID=#N(N=1、2、3、…)で識別される。各PI#Nは主要な再生経路の異なる再生区間を一対のPTSで規定する。その対の一方はその再生区間の開始時刻(In−Time)を表し、他方は終了時刻(Out−Time)を表す。更に、メインパス2701内でのPIの順序は、再生経路内での、対応する再生区間の順序を表す。
各サブパス2702、2703はサブプレイアイテム情報(SUB_PI)の配列であり、ファイル2D241の主要な再生経路に並列に付随可能な再生経路を規定する。その再生経路は、ファイル2D241のうち、メインパス2701の表す部分とは別の部分とその再生順とを意味する。その他に、その再生経路は、ファイル2D241とは別のファイル2Dに多重化されたストリーム・データの再生対象部分とその再生順とを意味してもよい。その再生経路の意味するストリーム・データは、メインパス2701に従ってファイル2D241から再生される2D映像と同時に再生されるべき別の2D映像を表す。その別の2D映像は、例えば、ピクチャ・イン・ピクチャ方式における副映像、ブラウザ画面、ポップアップ・メニュー、又は字幕を含む。特にテキスト字幕ファイルに対する再生経路は、サブパスによって規定される。サブパス2702、2703には、2Dプレイリスト・ファイル221への登録順に通し番号“0”、“1”が振られている。その通し番号はサブパスIDとして、各サブパス2702、2703の識別に利用される。各サブパス2702、2703ではSUB_PIが固有のサブプレイアイテムID=#M(M=1、2、3、…)で識別される。各SUB_PI#Mは、再生経路の異なる再生区間を一対のPTSで規定する。その対の一方はその再生区間の再生開始時刻を表し、他方は再生終了時刻を表す。更に、各サブパス2702、2703内でのSUB_PIの順序は、再生経路内での、対応する再生区間の順序を表す。
図28は、PI#Nのデータ構造を示す模式図である。図28を参照するに、PI#Nは、参照クリップ情報2801、再生開始時刻(In_Time)2802、再生終了時刻(Out_Time)2803、コネクション・コンディション2804、及びストリーム選択テーブル(以下、STN(Stream Number)テーブルと略す。)2805を含む。参照クリップ情報2801は、2Dクリップ情報ファイル231を識別するための情報である。再生開始時刻2802と再生終了時刻2803とは、ファイル2D241の再生対象部分の先端と後端との各PTSを示す。コネクション・コンディション2804は、再生開始時刻2802と再生終了時刻2803とによって規定された再生区間での映像を、一つ前のPI#(N−1)によって規定された再生区間での映像に接続するときの条件を規定する。STNテーブル2805は、再生開始時刻2802から再生終了時刻2803までの間に再生装置102内のデコーダによってファイル2D241から選択可能なエレメンタリ・ストリームの一覧表である。
SUB_PIのデータ構造は、図28に示されているPIのデータ構造と、参照クリップ情報、再生開始時刻、及び再生終了時刻を含む点で共通する。特にSUB_PIの再生開始時刻と再生終了時刻とは、PIのそれらと同じ時間軸上の値で表される。SUB_PIは更に「SPコネクション・コンディション」というフィールドを含む。SPコネクション・コンディションはPIのコネクション・コンディションと同じ意味を持つ。
[コネクション・コンディション]
コネクション・コンディション(以下、CCと略す。)2804は、“1”、“5”、“6”の三種類の値を取り得る。CC2804が“1”であるとき、PI#Nによって規定されるファイル2D241の部分から再生される映像は、直前のPI#(N−1)によって規定されるファイル2D241の部分から再生される映像とは必ずしもシームレスに接続されなくてもよい。一方、CC2804が“5”又は“6”であるとき、それら両方の映像が必ずシームレスに接続されなければならない。
図29の(a)、(b)はそれぞれ、CC2904が“5”、“6”であるときに接続対象の二つの再生区間2901、2902の間の関係を示す模式図である。ここで、PI#(N−1)はファイル2D241の第1部分2901を規定し、PI#Nはファイル2D241の第2部分2902を規定する。図29の(a)を参照するに、CC2904が“5”であるとき、2つのPI#(N−1)、PI#Nの間でSTCが途切れていても良い。すなわち、第1部分2901の後端のPTS#1と第2部分2902の先端のPTS#2とは不連続であってもよい。但し、いくつかの制約条件が満たされねばならない。例えば、第1部分2901に続けて第2部分2902をデコーダに供給したときでもそのデコーダが復号処理をスムーズに持続できるように、各部分2901、2902が作成されていなければならない。更に、第1部分2901に含まれるオーディオ・ストリームの最後のフレームを、第2部分2902に含まれるオーディオ・ストリームの先頭フレームと重複させなければならない。一方、図29の(b)を参照するに、CC2904が“6”であるとき、第1部分2901と第2部分2902とは、デコーダの復号処理上、一連の部分として扱えるものでなければならない。すなわち、第1部分2901と第2部分2902との間ではSTCとATCとがいずれも連続でなければならない。同様に、SPコネクション・コンディションが“5”又は“6”であるとき、隣接する2つのSUB_PIによって規定されるファイル2Dの部分間では、STCとATCとがいずれも連続でなければならない。
[STNテーブル]
図28を再び参照するに、STNテーブル2805はストリーム登録情報の配列である。「ストリーム登録情報」とは、再生開始時刻2802から再生終了時刻2803までの間にメインTSから再生対象として選択可能なエレメンタリ・ストリームを個別に示す情報である。ストリーム番号(STN)2806はストリーム登録情報に個別に割り当てられた通し番号であり、再生装置102によって各エレメンタリ・ストリームの識別に利用される。STN2806は更に、同じ種類のエレメンタリ・ストリームの間では選択の優先順位を表す。ストリーム登録情報はストリーム・エントリ2809とストリーム属性情報2810と含む。ストリーム・エントリ2809はストリーム・パス情報2807とストリーム識別情報2808とを含む。ストリーム・パス情報2807は、選択対象のエレメンタリ・ストリームが属するファイル2Dを示す情報である。例えばストリーム・パス情報2807が“メインパス”を示すとき、そのファイル2Dは、参照クリップ情報2801の示す2Dクリップ情報ファイルに対応するものである。一方、ストリーム・パス情報2807が“サブパスID=1”を示すとき、選択対象のエレメンタリ・ストリームが属するファイル2Dは、サブパスID=1のサブパスに含まれるSUB_PIの参照クリップ情報が示す2Dクリップ情報ファイルに対応するものである。そのSUB_PIの規定する再生開始時刻又は再生終了時刻のいずれかは、STNテーブル2805を含むPIの規定する再生開始時刻2802から再生終了時刻2803までの期間に含まれる。ストリーム識別情報2808は、ストリーム・パス情報2807によって特定されるファイル2Dに多重化されているエレメンタリ・ストリームのPIDを示す。このPIDの示すエレメンタリ・ストリームが再生開始時刻2802から再生終了時刻2803までの間に選択可能である。ストリーム属性情報2810は各エレメンタリ・ストリームの属性情報を表す。例えば、オーディオ・ストリーム、PGストリーム、テキスト字幕ストリーム、及びIGストリームの各属性情報は言語の種類を示す。テキスト字幕ストリームの属性情報は更に、そのテキスト文字列の描画に利用可能なフォント・セットを規定する。
[2Dプレイリスト・ファイルに従った2D映像の再生]
図30は、2Dプレイリスト・ファイル(00001.mpls)221の示すPTSと、ファイル2D(01000.m2ts)241から再生される部分との間の対応関係を示す模式図である。図30を参照するに、2Dプレイリスト・ファイル221のメインパス2701では、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の特定とは、図23の(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のメインパス2701に従ってファイル2D241から2D映像を再生できる。
2Dプレイリスト・ファイル221はエントリ・マーク3001を含んでもよい。エントリ・マーク3001は、メインパス2701のうち、実際に再生が開始されるべき時点を示す。例えば図30に示されているように、PI#1に対して複数のエントリ・マーク3001が設定されてもよい。エントリ・マーク3001は特に頭出し再生において、再生開始位置の検索に利用される。例えば2Dプレイリスト・ファイル221が映画タイトルの再生経路を規定するとき、エントリ・マーク3001は各チャプタの先頭に付与される。それにより、再生装置102はその映画タイトルをチャプタごとに再生できる。
≪3Dプレイリスト・ファイル≫
図31は、3Dプレイリスト・ファイルのデータ構造を示す模式図である。図2に示されている第2プレイリスト・ファイル(00002.mpls)222はこのデータ構造を持つ。第2プレイリスト・ファイル(00003.mpls)223も同様である。図31を参照するに、3Dプレイリスト・ファイル222は、メインパス3101、サブパス3102、及び拡張データ3103を含む。
メインパス3101は、図3の(a)に示されているメインTSの再生経路を規定する。従って、メインパス3101は、図27に示されている2Dプレイリスト・ファイル221のメインパス2701と実質的に等しい。すなわち、2D再生モードの再生装置102は3Dプレイリスト・ファイル222のメインパス3101に従ってファイル2D241から2D映像を再生できる。一方、メインパス3101は、図27に示されているメインパス2701とは次の点で異なる:各PIのSTNテーブルは、いずれかのグラフィックス・ストリーム又はテキスト字幕ストリームのPIDに一つのSTNを対応付けている際には更に、そのSTNに一つのオフセット・シーケンスIDを割り当てている。
サブパス3102は、図3の(b)に示されているサブTSの再生経路、すなわちファイルDEP242の再生経路を規定する。その他に、サブパス3102は、図3の(c)に示されているテキスト字幕ストリームの再生経路を規定してもよい。サブパス3102のデータ構造は、図27に示されている2Dプレイリスト・ファイル241のサブパス2702、2703のデータ構造と同様である。従って、その同様なデータ構造の詳細、特にSUB_PIのデータ構造の詳細についての説明は、図27を用いた説明を援用する。
サブパス3102のSUB_PI#N(N=1、2、3、…)はメインパス3101のPI#Nと一対一に対応する。更に、各SUB_PI#Nの規定する再生開始時刻と再生終了時刻とはそれぞれ、対応するPI#Nの規定する再生開始時刻と再生終了時刻とに等しい。サブパス3102はその上、サブパス・タイプ3110を含む。「サブパス・タイプ」は一般に、メインパスとサブパスとの間で再生処理が同期すべきか否かを示す。3Dプレイリスト・ファイル222では特にサブパス・タイプ3110が3D再生モードの種類、すなわちサブパス3102に従って再生されるべきディペンデントビュー・ビデオ・ストリームの種類を示す。図31では、サブパス・タイプ3110は、その値が「3D・L/R」であるので、3D再生モードがL/Rモードであること、すなわちライトビュー・ビデオ・ストリームが再生対象であることを示す。一方、サブパス・タイプ3110は、その値が「3Dデプス」であるとき、3D再生モードがデプス・モードであること、すなわちデプスマップ・ストリームが再生対象であることを示す。3D再生モードの再生装置102は、サブパス・タイプ3110の値が「3D・L/R」又は「3Dデプス」であることを検出したとき、メインパス3101に従った再生処理とサブパス3102に従った再生処理とを同期させる。
拡張データ3103は、3D再生モードの再生装置102によってのみ解釈される部分であり、2D再生モードの再生装置102には無視される。拡張データ3103は特に、拡張ストリーム選択テーブル3130を含む。「拡張ストリーム選択テーブル(STN_table_SS)」(以下、STNテーブルSSと略す。)は、3D再生モードにおいて、メインパス3101内の各PIの示すSTNテーブルに追加されるべきストリーム登録情報の配列である。このストリーム登録情報は、サブTSから再生対象として選択可能なエレメンタリ・ストリームを示す。
[STNテーブル]
図32は、3Dプレイリスト・ファイル222のメインパス3101の含むSTNテーブル3205を示す模式図である。図32を参照するに、STN3206=5、6、…、11の割り当てられたストリーム識別情報3208が、PGストリーム、テキスト字幕ストリーム、又はIGストリームのPIDを示す。その場合、STN3206=5、6、…、11の割り当てられたストリーム属性情報3210は参照オフセットID3201とオフセット補正値3202とを更に含む。
ファイルDEP242では、図13に示されているように、各ビデオ・シーケンスのVAU#1にオフセット・メタ・データ1310が配置されている。参照オフセットID(stream_ref_offset_id)3201は、そのオフセット・メタ・データ1310の含むオフセット・シーケンスID1311のいずれかに等しい。すなわち、参照オフセットID3201は、そのオフセット・メタ・データ1310の含む複数のオフセット・シーケンスの中で、STN3206=5、6、…、11のそれぞれに対応付けられるべきオフセット・シーケンスを規定する。
オフセット補正値(stream_offset_adjustment)3202は、参照オフセットID3201の規定するオフセット・シーケンスに含まれる各オフセット値に加えられるべき値を示す。オフセット補正値3202は例えば、表示装置103の画面のサイズが、3D映像コンテンツの作成時に想定されているサイズとは大きく異なる場合に、再生装置102によって各オフセット値に加えられる。それにより、レフトビューとライトビューとの2Dグラフィックス映像間での両眼視差が適正な範囲に収められる。
[STNテーブルSS]
図33は、STNテーブルSS3130のデータ構造を示す模式図である。図33を参照するに、STNテーブルSS3130はストリーム登録情報列3301、3302、3303、…を含む。ストリーム登録情報列3301、3302、3303、…はメインパス3101内のPI#1、#2、#3、…に個別に対応し、3D再生モードの再生装置102により、対応するPI内のSTNテーブルに含まれるストリーム登録情報列と組み合わされて利用される。各PIに対するストリーム登録情報列3301は、ポップアップ期間のオフセット(Fixed_offset_during_Popup)3311と、ディペンデントビュー・ビデオ・ストリームのストリーム登録情報列3312とを含む。
ポップアップ期間のオフセット3311は、IGストリームからポップアップ・メニューが再生されるか否かを示す。3D再生モードの再生装置102はそのオフセット3311の値に依って、ビデオ・プレーンとグラフィックス・プレーンとの各表示モード(presentation mode)を変える。ここで、ビデオ・プレーンの表示モードにはベースビュー(B)−ディペンデントビュー(D)表示モードとB−B表示モードとの二種類がある。グラフィックス・プレーンの表示モードには1プレーン+オフセット・モードと1プレーン+ゼロ・オフセット・モードとの二種類がある。例えばポップアップ期間のオフセット3311の値が“0”であるとき、IGストリームからはポップアップ・メニューが再生されない。そのとき、ビデオ・プレーンの表示モードとしてB−D表示モードが選択され、グラフィックス・プレーンの表示モードとして1プレーン+オフセット・モードが選択される。一方、ポップアップ期間のオフセット3311の値が“1”であるとき、IGストリームからポップアップ・メニューが再生される。そのとき、ビデオ・プレーンの表示モードとしてB−B表示モードが選択され、グラフィックス・プレーンの表示モードとして1プレーン+ゼロ・オフセット・モードが選択される。
「B−D表示モード」では、再生装置102がレフトビューとライトビューとのビデオ・プレーンを交互に出力する。従って、表示装置103の画面にはレフトビューとライトビューとのフレームが交互に表示されるので、視聴者にはそれらが3D映像として見える。「B−B表示モード」では再生装置102が、動作モードを3D再生モードに維持したまま(特にフレームレートを3D再生時の値、例えば48フレーム/秒に維持したまま)、ベースビュー・ビデオ・ストリームから復号されたプレーン・データのみを一フレーム当たり二回ずつ出力する。従って、表示装置103の画面には、レフトビューとライトビューとのいずれかのビデオ・プレーンしか表示されないので、視聴者にはそれらが2D映像としてしか見えない。
「1プレーン+オフセット・モード」では、再生装置102がオフセット制御により、メインTS内のグラフィックス・ストリーム又はテキスト字幕ストリームから、レフトビューとライトビューとのグラフィックス・プレーンの対を生成して交互に出力する。それにより、表示装置103の画面にはレフトビューとライトビューとのグラフィックス・プレーンが交互に表示されるので、視聴者にはそれらが3Dグラフィックス映像として見える。「1プレーン+ゼロ・オフセット・モード」では、再生装置102が、動作モードを3D再生モードに維持したまま、オフセット制御を一時的に停止させ、メインTS内のグラフィックス・ストリーム又はテキスト字幕ストリームから復号されたグラフィックス・プレーンを一フレーム当たり二回ずつ出力する。従って、表示装置103の画面には、レフトビューとライトビューとのいずれかのグラフィックス・プレーンしか表示されないので、視聴者にはそれらが2Dグラフィックス映像としてしか見えない。
3D再生モードの再生装置102は、PIごとにポップアップ期間のオフセット3311を参照して、IGストリームからポップアップ・メニューが再生されるときはB−B表示モードと1プレーン+ゼロ・オフセット・モードとを選択する。それにより、ポップアップ・メニューが表示される間、他の3D映像が一時的に2D映像に変更されるので、ポップアップ・メニューの視認性・操作性が向上する。
ディペンデントビュー・ビデオ・ストリームのストリーム登録情報列3312は、サブTSから再生対象として選択可能なディペンデントビュー・ビデオ・ストリームを示すストリーム登録情報を含む。このストリーム登録情報列3312は、対応するPI内のSTNテーブルに含まれるストリーム登録情報列のうち、ベースビュー・ビデオ・ストリームを示すものと組み合わされて利用される。3D再生モードの再生装置102は、STNテーブル内のいずれかのストリーム登録情報を読み出すとき、そのストリーム登録情報に組み合わされたSTNテーブルSS内のストリーム登録情報列も自動的に読み出す。それにより、再生装置102は、2D再生モードを単に3D再生モードへ切り換えるとき、設定済みのSTN、及び言語等のストリーム属性を同一に維持できる。
図33を参照するに、ディペンデントビュー・ビデオ・ストリームのストリーム登録情報列3312は一般に複数のストリーム登録情報(SS_dependet_view_block)3320を含む。それらは、対応するPI内のストリーム登録情報のうち、ベースビュー・ビデオ・ストリームを示すものと同数である。各ストリーム登録情報3320は、STN3321、ストリーム・エントリ3322、及びストリーム属性情報3323を含む。STN3321はストリーム登録情報3320に個別に割り当てられた通し番号であり、対応するPI内の組み合わせ対象のストリーム登録情報のSTNと等しい。ストリーム・エントリ3322は、サブパスID参照情報(ref_to_Subpath_id)3331、ストリーム・ファイル参照情報(ref_to_subClip_entry_id)3332、及びPID(ref_to_stream_PID_subclip)3333を含む。サブパスID参照情報3331は、ディペンデントビュー・ビデオ・ストリームの再生経路を規定するサブパスのサブパスIDを示す。ストリーム・ファイル参照情報3332は、そのディペンデントビュー・ビデオ・ストリームが格納されたファイルDEPを識別するための情報である。PID3333は、そのディペンデントビュー・ビデオ・ストリームのPIDである。ストリーム属性情報3323はそのディペンデントビュー・ビデオ・ストリームの属性、例えばフレームレート、解像度、及びビデオフォーマットを含む。特にそれらは、対応するPI内の組み合わせ対象のストリーム登録情報の示すベースビュー・ビデオ・ストリームのものと共通である。
[3Dプレイリスト・ファイルに従った3D映像の再生]
図34は、3Dプレイリスト・ファイル(00002.mpls)222の示すPTSと、第1ファイルSS(01000.ssif)244Aから再生される部分との間の対応関係を示す模式図である。図34を参照するに、3Dプレイリスト・ファイル222のメインパス3401では、PI#1は、再生開始時刻IN1を示すPTS#1と、再生終了時刻OUT1を示すPTS#2とを規定する。PI#1の参照クリップ情報は2Dクリップ情報ファイル(01000.clpi)231を示す。一方、サブパス・タイプが「3D・L/R」を示すサブパス3402では、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に対応するファイルDEP242内のSPN#11、#12を検索する。再生装置102は続いて、図24の(e)の説明で述べたように、各クリップ情報ファイル231、232のエクステント起点2242、2420を利用して、第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の特定とは、図24の(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は、図24の(e)の説明で述べたように各クリップ情報ファイル231、232のエクステント起点2242、2420を利用して、各エクステントSSからベースビュー・エクステントを抽出し、残りのディペンデントビュー・エクステントとパラレルに復号する。こうして、再生装置102は、3Dプレイリスト・ファイル222に従って第1ファイルSS244Aから3D映像を再生できる。
≪インデックス・テーブル≫
図35は、図2に示されているインデックス・ファイル(index.bdmv)211のデータ構造を示す模式図である。図35を参照するに、インデックス・ファイル211は、インデックス・テーブル3510、3D存在フラグ3520、及び2D/3Dお好みフラグ3530を含む。
インデックス・テーブル3510は、「ファーストプレイ」3501、「トップメニュー」3502、及び、「タイトルk」3503(k=1、2、…、n:nは1以上の整数)という項目を含む。各項目にはムービーオブジェクトMVO−2D、MVO−3D、…、又はBD−JオブジェクトBDJO−2D、BDJO−3D、…のいずれかが対応付けられている。ユーザの操作又はアプリケーション・プログラムによってタイトル又はメニューが呼び出される度に、再生装置102の制御部はインデックス・テーブル3510の対応する項目を参照する。制御部は更に、その項目に対応付けられているオブジェクトをBD−ROMディスク101から呼び出し、それに従って様々な処理を実行する。具体的には、項目「ファーストプレイ」3501には、ディスク101がBD−ROMドライブ121へ挿入された時に呼び出されるべきオブジェクトが指定されている。項目「トップメニュー」3502には、例えばユーザの操作で「メニューに戻れ」というコマンドが入力された時に表示装置103にメニューを表示させるためのオブジェクトが指定されている。項目「タイトルk」3503には、ディスク101上のコンテンツを構成するタイトルが個別に割り当てられている。例えばユーザの操作によって再生対象のタイトルが指定されたとき、そのタイトルが割り当てられている項目「タイトルk」には、そのタイトルに対応するAVストリーム・ファイルから映像を再生するためのオブジェクトが指定されている。
図35に示されている例では、項目「タイトル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映像の再生処理が実行される。
図35に示されている例では更に、項目「タイトル3」と項目「タイトル4」とが3D映像のタイトルに割り当てられている。項目「タイトル3」に対応付けられているムービーオブジェクトMVO−3Dは、2Dプレイリスト・ファイル221を用いた2D映像の再生処理に関する命令群に加え、3Dプレイリスト・ファイル(00002.mpls)222、(00003.mpls)223のいずれかを用いた3D映像の再生処理に関する命令群を含む。項目「タイトル4」に対応付けられているBD−JオブジェクトBDJO−3Dでは、アプリケーション管理テーブルが、2Dプレイリスト・ファイル221を用いた2D映像の再生処理に関するJavaアプリケーション・プログラムに加え、3Dプレイリスト・ファイル222、223のいずれかを用いた3D映像の再生処理に関するJavaアプリケーション・プログラムを規定する。
3D存在フラグ3520は、BD−ROMディスク101に3D映像コンテンツが記録されているか否かを示すフラグである。再生装置102は、BD−ROMドライブ121にBD−ROMディスク101が挿入されたとき、まず、その3D存在フラグ3520をチェックする。3D存在フラグ3520がオフである場合、再生装置102は3D再生モードを選択する必要がない。従って、再生装置102は表示装置103に対してHDMI認証を行うことなく、2D再生モードに速やかに移行できる。ここで、「HDMI認証」とは、再生装置102がHDMIケーブル122を通して表示装置103との間でCECメッセージを交換して、3D映像の再生に対応可能か否か等を表示装置103に問い合わせる処理をいう。HDMI認証がスキップされることにより、BD−ROMディスク101の挿入から2D映像の再生開始までの時間が短縮される。
2D/3Dお好みフラグ3530は、再生装置と表示装置とが共に2D映像と3D映像とのいずれの再生にも対応可能であるときに、3D映像の再生を優先すべきか否かを指定するフラグである。2D/3Dお好みフラグ3530はコンテンツ・プロバイダによって設定される。再生装置102は、BD−ROMディスク101の3D存在フラグ3520がオンであるとき、続いて2D/3Dお好みフラグ3530を更にチェックする。2D/3Dお好みフラグ3530がオンである場合、再生装置102は、ユーザに再生モードを選択させることなく、HDMI認証を行い、その結果に依って2D再生モードと3D再生モードとのいずれかで動作する。すなわち、再生装置102は再生モードの選択画面を表示しない。従って、HDMI認証の結果、表示装置103が3D映像の再生に対応可能であれば、再生装置102は3D再生モードで起動できる。それにより、フレームレートの切り換え等、2D再生モードから3D再生モードへの移行処理に起因する起動の遅れを回避することができる。
[3D映像タイトルの選択時でのプレイリスト・ファイルの選択]
図35に示されている例では、再生装置102は、インデックス・テーブル3510の項目「タイトル3」を参照したとき、ムービーオブジェクトMVO−3Dに従って、まず次の判別処理を行う:(1)3D存在フラグ3520がオンかオフか、(2)再生装置102自身が3D映像の再生に対応しているか否か、(3)2D/3Dお好みフラグ3530がオンかオフか、(4)ユーザが3D再生モードを選択しているか否か、(5)表示装置103が3D映像の再生に対応しているか否か、及び(6)再生装置102の3D再生モードがL/Rモードとデプス・モードとのいずれであるか。再生装置102は次に、それらの判別結果に依って、いずれかのプレイリスト・ファイル221−223を再生対象として選択する。一方、再生装置102は項目「タイトル4」を参照したとき、BD−JオブジェクトBDJO−3D内のアプリケーション管理テーブルに従ってJARファイル261からJavaアプリケーション・プログラムを呼び出して実行する。それにより、まず上記の判別処理(1)−(6)が行われ、次にその判別結果に依って、プレイリスト・ファイルの選択が行われる。
図36は、上記の判別処理(1)−(6)を利用して再生対象のプレイリスト・ファイルを選択する処理のフローチャートである。ここで、その選択処理の前提として、再生装置102が第1フラグと第2フラグとを含むときを想定する。第1フラグは、再生装置102が3D映像の再生に対応可能であるか否かを示す。例えば、第1フラグが“0”であるとき、再生装置102は2D映像の再生のみに対応可能であり、“1”であるとき、3D映像の再生にも対応可能である。第2フラグは、3D再生モードがL/Rモードとデプス・モードとのいずれであるかを示す。例えば、第2フラグが“0”であるとき、3D再生モードはL/Rモードであり、“1”であるとき、デプス・モードである。更に、3D存在フラグ3520と2D/3Dお好みフラグ3530とのそれぞれがオンであるときの値を“1”とし、オフであるときの値を“0”とする。
ステップS3601では、再生装置102は3D存在フラグ3520の値をチェックする。その値が“1”であるとき、処理はステップS3602へ進む。その値が“0”であるとき、処理はステップS3607へ進む。
ステップS3602では、再生装置102は第1フラグの値をチェックする。その値が“1”であるとき、処理はステップS3603へ進む。その値が“0”であるとき、処理はステップS3607へ進む。
ステップS3603では、再生装置102は2D/3Dお好みフラグ3530の値をチェックする。その値が“0”であるとき、処理はステップS3604へ進む。その値が“1”であるとき、処理はステップS3605へ進む。
ステップS3604では、再生装置102は表示装置103にメニューを表示させて、ユーザに2D再生モードと3D再生モードとのいずれかを選択させる。ユーザがリモコン105等を操作して3D再生モードを選択したとき、処理はステップS3605へ進み、2D再生モードを選択したとき、処理はステップS3607へ進む。
ステップS3605では、再生装置102はHDMI認証を行い、表示装置103が3D映像の再生に対応しているか否かチェックする。具体的には、再生装置102はHDMIケーブル122を通して表示装置103との間でCECメッセージを交換し、表示装置103が3D映像の再生に対応しているか否かを表示装置103に問い合わせる。表示装置103が3D映像の再生に対応しているとき、処理はステップS3606へ進む。表示装置103が3D映像の再生に対応していないとき、処理はステップS3607へ進む。
ステップS3606では、再生装置102は第2フラグの値をチェックする。その値が“0”であるとき、処理はステップS3608へ進む。その値が“1”であるとき、処理はステップS3609へ進む。
ステップS3607では、再生装置102は2Dプレイリスト・ファイル221を再生対象として選択する。尚、そのとき、再生装置102は表示装置103に、3D映像の再生が選択されなかった理由を表示させてもよい。その後、処理は終了する。
ステップS3608では、再生装置102はL/Rモード用の3Dプレイリスト・ファイル222を再生対象として選択する。その後、処理は終了する。
ステップS3609では、再生装置102はデプス・モード用の3Dプレイリスト・ファイル222を再生対象として選択する。その後、処理は終了する。
<2D再生装置の構成>
2D再生モードの再生装置102はBD−ROMディスク101から2D映像コンテンツを再生するとき、2D再生装置として動作する。図37は、2D再生装置3700の機能ブロック図である。図37を参照するに、2D再生装置3700は、BD−ROMドライブ3701、再生部3702、及び制御部3703を含む。再生部3702は、リード・バッファ3721、プリロード・バッファ3723、フォント・バッファ3724、システム・ターゲット・デコーダ3725、及びプレーン加算部3726を含む。制御部3703は、動的シナリオ・メモリ3731、静的シナリオ・メモリ3732、ユーザイベント処理部3733、プログラム実行部3734、再生制御部3735、及びプレーヤ変数記憶部3736を含む。再生部3702と制御部3703とは互いに異なる集積回路に実装されている。その他に、両者が単一の集積回路に統合されていてもよい。
BD−ROMドライブ3701は、内部にBD−ROMディスク101が挿入されたとき、そのディスク101にレーザ光を照射してその反射光の変化を検出する。更に、その反射光の光量の変化から、ディスク101に記録されたデータを読み取る。具体的には、BD−ROMドライブ3701は光ピックアップ、すなわち光学ヘッドを備えている。その光学ヘッドは、半導体レーザ、コリメータ・レンズ、ビーム・スプリッタ、対物レンズ、集光レンズ、及び光検出器を含む。半導体レーザから出射された光ビームは、コリメータ・レンズ、ビーム・スプリッタ、及び対物レンズを順に通ってディスク101の記録層に集められる。集められた光ビームはその記録層で反射/回折される。その反射/回折光は、対物レンズ、ビーム・スプリッタ、及び集光レンズを通って光検出器に集められる。光検出器は、その集光量に応じたレベルの再生信号を生成する。更に、その再生信号からデータが復調される。
BD−ROMドライブ3701は、再生制御部3735からの要求に従ってBD−ROMディスク101からデータを読み出す。そのデータのうち、ファイル2Dのエクステント、すなわち2Dエクステントはリード・バッファ3721へ転送され、テキスト字幕ファイルはプリロード・バッファ3723へ転送され、フォント・セットはフォント・バッファ3724へ転送され、動的シナリオ情報は動的シナリオ・メモリ3731へ転送され、静的シナリオ情報は静的シナリオ・メモリ3732へ転送される。「動的シナリオ情報」は、インデックス・ファイル、ムービーオブジェクト・ファイル、及びBD−Jオブジェクト・ファイルを含む。「静的シナリオ情報」は2Dプレイリスト・ファイルと2Dクリップ情報ファイルとを含む。
リード・バッファ3721、プリロード・バッファ3723、フォント・バッファ3724、動的シナリオ・メモリ3731、及び静的シナリオ・メモリ3732はいずれも、バッファ・メモリである。リード・バッファ3721、プリロード・バッファ3723、及びフォント・バッファ3724としては再生部3702内のメモリ素子が利用され、動的シナリオ・メモリ3731及び静的シナリオ・メモリ3732としては制御部3703内のメモリ素子が利用される。その他に、単一のメモリ素子の異なる領域が、それらのバッファ・メモリ3721−3723、3731、3732の一部又は全部として利用されてもよい。
システム・ターゲット・デコーダ3725は、リード・バッファ3721から2Dエクステントをソースパケット単位で読み出して多重分離処理を行い、分離された各エレメンタリ・ストリームに対して復号処理を行う。ここで、各エレメンタリ・ストリームの復号に必要な情報、例えばコーデックの種類及びストリームの属性は予め、再生制御部3735からシステム・ターゲット・デコーダ3725へ送られている。システム・ターゲット・デコーダ3725は更に、復号後のプライマリ・ビデオ・ストリーム、セカンダリ・ビデオ・ストリーム、IGストリーム、及びPGストリームをそれぞれ、主映像プレーン・データ、副映像プレーン・データ、IGプレーン・データ、及びPGプレーン・データとしてVAU単位で送出する。また、システム・ターゲット・デコーダ3725は、復号後のプライマリ・オーディオ・ストリームとセカンダリ・オーディオ・ストリームとをミキシングして、表示装置103の内蔵スピーカ103A等、音声出力装置へ送出する。一方、システム・ターゲット・デコーダ3725は、プリロード・バッファ3723からテキスト字幕ストリームをテキスト・データ・エントリ単位で読み出して、それの表すテキスト文字列を解釈する。システム・ターゲット・デコーダ3725は続いて、フォント・バッファ3724に格納されたフォント・セットを利用して、そのテキスト文字列に対応するビットマップ・データをPGプレーン・データとして送出する。その他に、システム・ターゲット・デコーダ3725はプログラム実行部3734からグラフィックス・データを受信する。そのグラフィックス・データは、メニュー等のGUI用グラフィックス部品を画面に表示するためのものであり、JPEG又はPNG等のラスタ・データで表現されている。システム・ターゲット・デコーダ3725はそのグラフィックス・データを処理してイメージ・プレーン・データとして送出する。尚、システム・ターゲット・デコーダ3725の詳細については後述する。
プレーン加算部3726は、システム・ターゲット・デコーダ3725から、主映像プレーン・データ、副映像プレーン・データ、IGプレーン・データ、PGプレーン・データ、及びイメージ・プレーン・データを受信し、それらを互いに重畳して一つの映像フレーム又はフィールドに合成する。合成後の映像データは表示装置103へ送出され、その画面に表示される。
ユーザイベント処理部3733は、リモコン105又は再生装置102のフロントパネルを通してユーザの操作を検出し、その操作の種類に応じてプログラム実行部3734又は再生制御部3735に処理を依頼する。例えばユーザがリモコン105のボタンを押下してポップアップ・メニューの表示を指示したとき、ユーザイベント処理部3733はその押下を検出してそのボタンを識別する。ユーザイベント処理部3733は更にプログラム実行部3734に、そのボタンに対応するコマンドの実行、すなわちポップアップ・メニューの表示処理を依頼する。一方、例えばユーザがリモコン105の早送り又は巻戻しボタンを押下したとき、ユーザイベント処理部3733はその押下を検出してそのボタンを識別する。ユーザイベント処理部3733は更に再生制御部3735に、現在再生中のプレイリストの早送り又は巻戻し処理を依頼する。
プログラム実行部3734はプロセッサであり、動的シナリオ・メモリ3731に格納されたムービーオブジェクト・ファイル及びBD−Jオブジェクト・ファイルからプログラムを読み出して実行する。プログラム実行部3734は更に各プログラムに従って次の制御を行う:(1)再生制御部3735に対してプレイリスト再生処理を命令する;(2)メニュー用又はゲーム用のグラフィックス・データをPNG又はJPEGのラスタ・データとして生成し、それをシステム・ターゲット・デコーダ3725へ転送して他の映像データに合成させる。これらの制御の具体的な内容は、プログラムの設計を通じて比較的自由に設計することができる。すなわち、それらの制御内容は、BD−ROMディスク101のオーサリング工程のうち、ムービーオブジェクト・ファイル及びBD−Jオブジェクト・ファイルのプログラミング工程によって決まる。
再生制御部3735は、2Dエクステント及びインデックス・ファイル等、各種のデータをBD−ROMディスク101から、リード・バッファ3721、プリロード・バッファ3723、フォント・バッファ3724、動的シナリオ・メモリ3731、及び静的シナリオ・メモリ3732へ転送する処理を制御する。その制御には、図2に示されているディレクトリ/ファイル構造を管理するファイルシステムが利用される。すなわち、再生制御部3735はファイル・オープン用のシステムコールを利用して、BD−ROMドライブ3701に各種のファイルを各バッファ・メモリ3721−3723、3731、3732へ転送させる。ここで、「ファイル・オープン」とは次の一連の処理をいう。まず、システムコールによってファイルシステムに検索対象のファイル名が与えられ、そのファイル名がディレクトリ/ファイル構造から検索される。その検索に成功したとき、再生制御部3735内のメモリには、まず、転送対象のファイルのファイル・エントリが転送され、そのメモリ内にFCB(File Control Block)が生成される。その後、転送対象のファイルのファイル・ハンドルがファイルシステムから再生制御部3735に返される。以後、再生制御部3735はそのファイル・ハンドルをBD−ROMドライブ3701に提示することにより、BD−ROMドライブ3701にその転送対象のファイルをBD−ROMディスク101から各バッファ・メモリ3721−3723、3731、3732へ転送させることができる。
再生制御部3735は、BD−ROMドライブ3701とシステム・ターゲット・デコーダ3725とを制御して、ファイル2Dから映像データと音声データとを復号させる。具体的には、再生制御部3735はまず、プログラム実行部3734からの命令、又はユーザイベント処理部3733からの依頼に応じて、静的シナリオ・メモリ3732から2Dプレイリスト・ファイルを読み出してその内容を解釈する。再生制御部3735は次に、その解釈された内容、特に再生経路に従って、BD−ROMドライブ3701とシステム・ターゲット・デコーダ3725とに再生対象のファイル2Dを指定し、その読み出し処理及び復号処理を指示する。このようなプレイリスト・ファイルに従った再生処理を「プレイリスト再生処理」という。再生経路にテキスト字幕ストリームが含まれる場合、再生制御部3735は、STNテーブル内のストリーム属性情報から必要なフォント・セットを特定して、それらをBD−ROMディスク101からフォント・バッファ3724へ予め転送させる。
その他に、再生制御部3735は、静的シナリオ情報を利用してプレーヤ変数記憶部3736に各種のプレーヤ変数を設定する。再生制御部3735は更に、それらのプレーヤ変数を参照して、システム・ターゲット・デコーダ3725に復号対象のエレメンタリ・ストリームを指定し、かつ、各エレメンタリ・ストリームの復号に必要な情報を提供する。
プレーヤ変数記憶部3736は、プレーヤ変数を記憶するためのレジスタ群である。プレーヤ変数の種類にはシステム・パラメータ(SPRM)と汎用のパラメータ(GPRM)とがある。SPRMは再生装置102の状態を示す。図38はSPRMの一覧表である。各SPRMには通し番号3801が振られ、各通し番号3801に変数値3802が個別に対応付けられている。主なSPRMの内容は以下のとおりである。ここで、括弧内の数字は通し番号3801を示す。
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(13)のパレンタル・レベルは、所定の制限年齢を示し、BD−ROMディスク101に記録されたタイトルの視聴に対するパレンタル制御に利用される。SPRM(13)の値は、再生装置102のユーザによって、再生装置102のOSD等を利用して設定される。ここで、「パレンタル制御」とは、視聴者の年齢に依ってタイトルの視聴を制限する処理をいう。再生装置102は各タイトルに対するパレンタル制御を例えば次のように行う。再生装置102はまず、BD−ROMディスク101から、そのタイトルの視聴が許可された視聴者の年齢を読み出してSPRM(13)の値と比較する。その年齢がSPRM(13)の値以上であれば、再生装置102はそのタイトルの再生を継続する。その年齢がSPRM(13)の値未満であれば、再生装置102はそのタイトルの再生を停止する。
SPRM(16)のオーディオ・ストリーム用言語コード、及びSPRM(18)の字幕ストリーム用言語コードは、再生装置102のデフォルトの言語コードを示す。それらは再生装置102のOSD等を利用してユーザに変更させることもでき、プログラム実行部3734を通じてアプリケーション・プログラムに変更させることもできる。例えばSPRM(16)が「英語」を示しているとき、再生制御部3735はプレイリスト再生処理において、まず現時点での再生区間を示すPI、すなわちカレントPIの含むSTNテーブルから、「英語」の言語コードを含むストリーム・エントリを検索する。再生制御部3735は次に、そのストリーム・エントリのストリーム識別情報からPIDを抽出してシステム・ターゲット・デコーダ3725に渡す。それにより、そのPIDのオーディオ・ストリームがシステム・ターゲット・デコーダ3725によって選択されて復号される。これらの処理は、ムービーオブジェクト・ファイル又はBD−Jオブジェクト・ファイルを利用して再生制御部3735に実行させることができる。
プレーヤ変数は再生処理中、再生制御部3735によって再生状態の変化に応じて更新される。特に、SPRM(1)、SPRM(2)、SPRM(21)、及びSPRM(22)が更新される。それらは順に、処理中のオーディオ・ストリーム、字幕ストリーム、セカンダリ・ビデオ・ストリーム、及びセカンダリ・オーディオ・ストリームの各STNを示す。例えばプログラム実行部3734によってSPRM(1)が変更されたときを想定する。再生制御部3735はまず、変更後のSPRM(1)の示すSTNを利用して、カレントPI内のSTNテーブルから、そのSTNを含むストリーム・エントリを検索する。再生制御部3735は次に、そのストリーム・エントリ内のストリーム識別情報からPIDを抽出してシステム・ターゲット・デコーダ3725に渡す。それにより、そのPIDのオーディオ・ストリームがシステム・ターゲット・デコーダ3725によって選択されて復号される。こうして、再生対象のオーディオ・ストリームが切り換えられる。同様に、再生対象の字幕及びセカンダリ・ビデオ・ストリームを切り換えることもできる。
≪2Dプレイリスト再生処理≫
図39は、再生制御部3735による2Dプレイリスト再生処理のフローチャートである。2Dプレイリスト再生処理は、2Dプレイリスト・ファイルに従ったプレイリスト再生処理であり、再生制御部3735が静的シナリオ・メモリ3732から2Dプレイリスト・ファイルを読み出すことによって開始される。
ステップS3901では、再生制御部3735はまず、2Dプレイリスト・ファイル内のメインパスからPIを一つ読み出して、カレントPIとして設定する。再生制御部3735は次に、そのカレントPIのSTNテーブルから、再生対象のエレメンタリ・ストリームのPIDを選択し、かつ、それらの復号に必要な属性情報を特定する。選択されたPIDと属性情報とはシステム・ターゲット・デコーダ3725に指示される。再生制御部3735は更に、2Dプレイリスト・ファイル内のサブパスから、カレントPIに付随するSUB_PIを特定する。SUB_PIがテキスト字幕ストリームの再生区間を規定する場合、再生制御部3735は、STNテーブル内のストリーム属性情報から必要なフォント・セットを特定して、それらをBD−ROMディスク101からフォント・バッファ3724へ予め転送させる。その後、処理はステップS3902へ進む。
ステップS3902では、再生制御部3735は、カレントPIから、参照クリップ情報、再生開始時刻IN1を示すPTS#1、及び再生終了時刻OUT1を示すPTS#2を読み出す。その参照クリップ情報から、再生対象のファイル2Dに対応する2Dクリップ情報ファイルが特定される。更に、カレントPIに付随するSUB_PIが存在するときは、それらからも同様な情報が読み出される。その後、処理はステップS3903へ進む。
ステップS3903では、再生制御部3735は、2Dクリップ情報ファイルのエントリ・マップを参照して、PTS#1、#2に対応するファイル2D内のSPN#1、#2を検索する。SUB_PIの示すPTSの対も同様にSPNの対に変換される。その後、処理はステップS3904へ進む。
ステップS3904では、再生制御部3735は、SPN#1、#2から、それぞれに対応するセクタ数を算定する。具体的には、再生制御部3735はまず、SPN#1、#2のそれぞれとソースパケット一つ当たりのデータ量192バイトとの積を求める。再生制御部3735は次に、各積をセクタ一つ当たりのデータ量2048バイトで割ってその商を求める:N1=SPN#1×192/2048、N2=SPN#2×192/2048。商N1、N2は、メインTSのうち、SPN#1、#2のそれぞれが割り当てられたソースパケットよりも前の部分が記録されたセクタの総数に等しい。SUB_PIの示すPTSの対から変換されたSPNの対も同様にセクタ数の対に変換される。その後、処理はステップS3905へ進む。
ステップS3905では、再生制御部3735は、ステップS3904で得られたセクタ数N1、N2のそれぞれから、再生対象の2Dエクステント群の先端と後端とのLBNを特定する。具体的には、再生制御部3735は、再生対象のファイル2Dのファイル・エントリを参照して、2Dエクステント群が記録されたセクタ群の先頭から数えて(N1+1)番目のセクタのLBN=LBN#1と、(N2+1)番目のセクタのLBN=LBN#2とを特定する。再生制御部3735は更に、LBN#1からLBN#2までの範囲をBD−ROMドライブ121に指定する。SUB_PIの示すPTSの対から変換されたセクタ数の対も同様にLBNの対に変換されて、BD−ROMドライブ121に指定される。その結果、指定された範囲のセクタ群から、2Dエクステント群に属するソースパケット群がアラインド・ユニット単位で読み出される。その後、処理はステップS3906へ進む。
ステップS3906では、再生制御部3735は、メインパスに未処理のPIが残されているか否かをチェックする。残されているときは、処理がステップS3901から繰り返される。残されていないときは、処理が終了する。
≪システム・ターゲット・デコーダ≫
図40はシステム・ターゲット・デコーダ3725の機能ブロック図である。図40を参照するに、システム・ターゲット・デコーダ3725は、ソース・デパケタイザ4010、ATCカウンタ4020、第1の27MHzクロック4030、PIDフィルタ4040、STCカウンタ(STC1)4050、第2の27MHzクロック4060、主映像デコーダ4070、副映像デコーダ4071、PGデコーダ4072、IGデコーダ4073、主音声デコーダ4074、副音声デコーダ4075、テキスト字幕デコーダ4076、イメージ・プロセッサ4080、主映像プレーン・メモリ4090、副映像プレーン・メモリ4091、PGプレーン・メモリ4092、IGプレーン・メモリ4093、イメージ・プレーン・メモリ4094、及び音声ミキサ4095を含む。
ソース・デパケタイザ4010はリード・バッファ3721からソースパケットを読み出し、その中からTSパケットを取り出してPIDフィルタ4040へ送出する。ソース・デパケタイザ4010は更にその送出時刻を、各ソースパケットのATSの示す時刻に合わせる。具体的には、ソース・デパケタイザ4010はまず、ATCカウンタ4020が生成するATCの値を監視する。ここで、ATCの値はATCカウンタ4020により、第1の27MHzクロック4030のクロック信号のパルスに応じてインクリメントされる。ソース・デパケタイザ4010は次に、ATCの値がソースパケットのATSと一致した瞬間、そのソースパケットから取り出されたTSパケットをPIDフィルタ4040へ転送する。そのような送出時刻の調節により、ソース・デパケタイザ4010からPIDフィルタ4040へのTSパケットの平均転送速度は、図22に示されている2Dクリップ情報ファイル231内のシステムレート2211で規定される値RTSを超えない。
PIDフィルタ4040はまず、ソース・デパケタイザ4010から送出されたTSパケットの含むPIDを監視する。そのPIDが、再生制御部3735から予め指定されたPIDに一致したとき、PIDフィルタ4040はそのTSパケットを選択し、そのPIDの示すエレメンタリ・ストリームの復号に適したデコーダ4070−4075へ転送する。(但し、テキスト字幕デコーダ4076は除く。)例えばPIDが0x1011であるとき、そのTSパケットは主映像デコーダ4070へ転送される。一方、PIDが、0x1B00−0x1B1F、0x1100−0x111F、0x1A00−0x1A1F、0x1200−0x121F、及び0x1400−0x141Fの各範囲に属するとき、TSパケットはそれぞれ、副映像デコーダ4071、主音声デコーダ4074、副音声デコーダ4075、PGデコーダ4072、及びIGデコーダ4073へ転送される。
PIDフィルタ4040は更に、各TSパケットのPIDを利用してそのTSパケットの中からPCRを検出する。PIDフィルタ4040はそのとき、STCカウンタ4050の値を所定値に設定する。ここで、STCカウンタ4050の値は第2の27MHzクロック4060のクロック信号のパルスに応じてインクリメントされる。また、STCカウンタ4050に設定されるべき値は予め、再生制御部3735からPIDフィルタ4040に指示されている。各デコーダ4070−4076はSTCカウンタ4050の値をSTCとして利用する。具体的には、各デコーダ4070−4076は、まず、PIDフィルタ4040から受け取ったTSパケットをPESパケットに再構成する。各デコーダ4070−4076は、次に、そのPESペイロードの含むデータの復号処理の時期を、そのPESヘッダに含まれるPTS又はDTSの示す時刻に従って調節する。
主映像デコーダ4070は、図40に示されているように、トランスポート・ストリーム・バッファ(TB:Transport Stream Buffer)4001、多重化バッファ(MB:Multiplexing Buffer)4002、エレメンタリ・ストリーム・バッファ(EB:Elementary Stream Buffer)4003、圧縮映像デコーダ(DEC)4004、及び復号ピクチャ・バッファ(DPB:Decoded Picture Buffer)4005を含む。
TB4001、MB4002、及びEB4003はいずれもバッファ・メモリであり、それぞれ主映像デコーダ4070に内蔵のメモリ素子の一領域を利用する。その他に、それらのいずれか又は全てが異なるメモリ素子に分離されていてもよい。TB4001は、PIDフィルタ4040から受信されたTSパケットをそのまま蓄積する。MB4002は、TB4001に蓄積されたTSパケットから復元されたPESパケットを蓄積する。尚、TB4001からMB4002へTSパケットが転送されるとき、そのTSパケットからTSヘッダが除去される。EB4003は、PESパケットから、符号化されたVAUを抽出して格納する。そのVAUには、圧縮ピクチャ、すなわち、Iピクチャ、Bピクチャ、及びPピクチャが格納されている。尚、MB4002からEB4003へデータが転送されるとき、そのPESパケットからPESヘッダが除去される。
DEC4004は、圧縮ピクチャの復号処理に特化したハードウェア・デコーダであり、特にその復号処理のアクセラレータ機能を備えたLSIで構成されている。DEC4004は、EB4003内の各VAUからピクチャを、元のPESパケットに含まれるDTSの示す時刻に復号する。DEC4004はその他に、図12に示されている復号スイッチ情報1250を利用して、各VAUからピクチャをそのDTSに関わらず、順次復号してもよい。その復号処理では、DEC4004は予め、そのVAUのヘッダを解析して、そのVAU内に格納された圧縮ピクチャの圧縮符号化方式とストリーム属性とを特定し、それらに依って復号方法を選択する。ここで、その圧縮符号化方式は例えば、MPEG−2、MPEG−4 AVC、及びVC1を含む。DEC4004は更に、復号された非圧縮のピクチャをDPB4005へ転送する。
DPB4005は、TB4001、MB4002、及びEB4003と同様なバッファ・メモリであり、主映像デコーダ4070に内蔵のメモリ素子の一領域を利用する。DPB4005はその他に、他のバッファ・メモリ4001、4002、4003とは異なるメモリ素子に分離されていてもよい。DPB4005は復号後のピクチャを一時的に保持する。DEC4004によってPピクチャ又はBピクチャが復号されるとき、DPB4005はDEC4004からの指示に応じて、保持している復号後のピクチャから参照ピクチャを検索してDEC4004に提供する。DPB4005は更に、保持している各ピクチャを、元のPESパケットに含まれるPTSの示す時刻に主映像プレーン・メモリ4090へ書き込む。
副映像デコーダ4071は主映像デコーダ4070と同様の構成を含む。副映像デコーダ4071はまず、PIDフィルタ4040から受信されたセカンダリ・ビデオ・ストリームのTSパケットを非圧縮のピクチャに復号する。副映像デコーダ4071は次に、そのPESパケットに含まれるPTSの示す時刻に非圧縮のピクチャを副映像プレーン・メモリ4091へ書き込む。
PGデコーダ4072は、PIDフィルタ4040から受信されたTSパケットを非圧縮のグラフィックス・データに復号し、そのPESパケットに含まれるPTSの示す時刻にPGプレーン・メモリ4092へ書き込む。具体的には、PGデコーダ4072はまず、PGストリーム内の各ディスプレイ・セットに属するODSをグラフィックス・オブジェクトに復号してオブジェクト・バッファに書き込む。PGデコーダ4072は次に、そのグラフィックス・オブジェクトをオブジェクト・バッファからプレーン・メモリへ書き込む。PGデコーダ4072は特に、パイプラインを利用して、グラフィックス・オブジェクトをオブジェクト・バッファへ書き込む処理と、別のグラフィックス・オブジェクトをオブジェクト・バッファからプレーン・メモリへ書き込む処理とを同時に実行する。それにより、PGデコーダ4072は、主映像デコーダ4070等、他のデコーダとの精密な同期を維持できる。
IGデコーダ4073は、PIDフィルタ4040から受信されたTSパケットを非圧縮のグラフィックス・データに復号し、そのPESパケットに含まれるPTSの示す時刻にIGプレーン・メモリ4093へ書き込む。それらの処理の詳細は、PGデコーダ4072によるものと同様である。
主音声デコーダ4074はまず、PIDフィルタ4040から受信されたTSパケットを内蔵のバッファに蓄える。主音声デコーダ4074は次に、そのバッファ内のTSパケット群からTSヘッダとPESヘッダとを除去し、残りのデータを非圧縮のLPCM音声データに復号する。主音声デコーダ4074は更にその音声データを、元のPESパケットに含まれるPTSの示す時刻に音声ミキサ4095へ送出する。ここで、主音声デコーダ4074は、TSパケットに含まれるプライマリ・オーディオ・ストリームの圧縮符号化方式及びストリーム属性に依って圧縮音声データの復号方法を選択する。その圧縮符号化方式は例えばAC−3又はDTSを含む。
副音声デコーダ4075は主音声デコーダ4074と同様の構成を含む。副音声デコーダ4075はまず、PIDフィルタ4040から受信されたセカンダリ・オーディオ・ストリームのTSパケット群からPESパケットを復元し、そのPESペイロードの含むデータを非圧縮のLPCM音声データに復号する。副音声デコーダ4075は次に、そのPESヘッダの含むPTSの示す時刻にその非圧縮のLPCM音声データを音声ミキサ4095へ送出する。ここで、副音声デコーダ4075は、TSパケットに含まれるセカンダリ・オーディオ・ストリームの圧縮符号化方式及びストリーム属性に依って圧縮音声データの復号方法を選択する。その圧縮符号化方式は例えばドルビー・デジタル・プラス又はDTS−HD LBRを含む。
テキスト字幕デコーダ4076は、図40に示されているように、テキスト・デコーダ(DEC)4077とビットマップ・バッファ4078とを含む。DEC4077は、テキスト文字列の復号処理とレンダリング処理とに特化したハードウェア・デコーダであり、特にそれらの処理のアクセラレータ機能を備えたLSIで構成されている。DEC4077はまず、プリロード・バッファ3723内のテキスト字幕ストリームから各テキスト・データ・エントリを読み出して、そのスタイル情報を解釈する。DEC4077は次に、そのスタイル情報に従ってフォント・バッファ3724内のフォント・セットを利用することにより、テキスト情報をビットマップ・データに復号してビットマップ・バッファ4078に書き込む。ビットマップ・バッファ4078は、テキスト字幕デコーダ4076に内蔵のメモリ素子の一領域を利用したバッファ・メモリである。ビットマップ・バッファ4078は、各テキスト・データ・エントリの含むPTSの示す時刻に、対応するビットマップ・データをPGプレーン・メモリ4092へ転送する。
ここで、一つのテキスト・データ・エントリがnC字(整数nCは1以上である)のテキスト文字列を表すとき、DEC4077がそのテキスト・データ・エントリからビットマップ・データを復号してPGプレーン・メモリ4092に書き込むのに要する時間Tprocessは、DEC4077によるテキスト文字のレンダリング速度Rredと、ビットマップ・バッファ4078からPGプレーン・メモリ4092へのデータ転送速度Rtrとを用いて次式で表される:Tprocess=nC/Rred+nC/Rtr。例えば、レンダリング速度Rredとデータ転送速度Rtrとが共に20字/秒であるとき、20字(nC=20)をPGプレーン・メモリ4092に書き込むのに要する時間Tprocessは、20/20+20/20=2秒である。従って、上記の式を利用して、時間Tprocessを例えば2秒以下に制限すれば、テキスト・データ・エントリ一つ当たりのデータ量を制限することができる。それにより、テキスト字幕デコーダ4076の実装を容易にすることができる。
音声ミキサ4095は、主音声デコーダ4074と副音声デコーダ4075とのそれぞれから非圧縮の音声データを受信し、それらを用いてミキシングを行う。音声ミキサ4095は更に、そのミキシングで得られた合成音を表示装置103の内蔵スピーカ103A等へ送出する。
イメージ・プロセッサ4080は、プログラム実行部3734からグラフィックス・データ、すなわちPNG又はJPEGのラスタ・データを受信する。イメージ・プロセッサ4080はそのとき、そのグラフィックス・データに対するレンダリング処理を行ってイメージ・プレーン・メモリ4094へ書き込む。
<3D再生装置の構成>
3D再生モードの再生装置102はBD−ROMディスク101から3D映像コンテンツを再生するとき、3D再生装置として動作する。その構成の基本部分は、図37、40に示されている2D再生装置の構成と同様である。従って、以下では2D再生装置の構成からの拡張部分及び変更部分について説明し、基本部分の詳細についての説明は上記の2D再生装置についての説明を援用する。また、2Dプレイリスト再生処理に利用される構成は2D再生装置の構成と同様である。従って、その詳細についての説明も上記の2D再生装置についての説明を援用する。以下の説明では、3Dプレイリスト・ファイルに従った3D映像の再生処理、すなわち3Dプレイリスト再生処理を想定する。
図41は、3D再生装置4100の機能ブロック図である。3D再生装置4100は、BD−ROMドライブ4101、再生部4102、及び制御部4103を含む。再生部4102は、スイッチ4120、第1リード・バッファ4121、第2リード・バッファ4122、プリロード・バッファ4123、フォント・バッファ4124、システム・ターゲット・デコーダ4125、及びプレーン加算部4126を含む。制御部4103は、動的シナリオ・メモリ4131、静的シナリオ・メモリ4132、ユーザイベント処理部4133、プログラム実行部4134、再生制御部4135、及びプレーヤ変数記憶部4136を含む。再生部4102と制御部4103とは、互いに異なる集積回路に実装されている。その他に、両者が単一の集積回路に統合されていてもよい。特に、プリロード・バッファ4123、フォント・バッファ4124、動的シナリオ・メモリ4131、静的シナリオ・メモリ4132、ユーザイベント処理部4133、及びプログラム実行部4134は、図37に示されている2D再生装置内のものと同様である。従って、それらの詳細についての説明は上記の2D再生装置についての説明を援用する。
再生制御部4135は、3Dプレイリスト再生処理をプログラム実行部4134等から命じられたとき、静的シナリオ・メモリ4132に格納された3Dプレイリスト・ファイルからPIを順番に読み出してカレントPIとして設定する。再生制御部4135は、カレントPIを設定する度に、まず、そのSTNテーブルとその3Dプレイリスト・ファイル内のSTNテーブルSSとに従って、システム・ターゲット・デコーダ4125とプレーン加算部4126との動作条件を設定する。具体的には、再生制御部4135は復号対象のエレメンタリ・ストリームのPIDを選択して、そのエレメンタリ・ストリームの復号に必要な属性情報と共にシステム・ターゲット・デコーダ4125へ渡す。選択されたPIDの示すエレメンタリ・ストリームの中に、PGストリーム、IGストリーム、又はテキスト字幕ストリームが含まれている場合、再生制御部4135は更に、それらのストリーム・データに割り当てられた参照オフセットID3201とオフセット補正値3202とを特定して、プレーヤ変数記憶部4136内のSPRM(27)とSPRM(28)とのそれぞれに設定する。また、再生制御部4135は、STNテーブルSSの示すポップアップ期間のオフセット3311に依って各プレーン・データの表示モードを選択し、システム・ターゲット・デコーダ4125とプレーン加算部4126とに指示する。
次に、再生制御部4135はカレントPIに従い、図24の(e)の説明で述べた手順で、読み出し対象のエクステントSSが記録されたセクタ群のLBNの範囲をBD−ROMドライブ4101に指示する。一方、再生制御部4135は、静的シナリオ・メモリ4132に格納されたクリップ情報ファイル内のエクステント起点を利用して、各エクステントSS内のデータ・ブロックの境界を示す情報を生成する。その情報は、例えばそのエクステントSSの先頭から各境界までのソースパケット数を示す。再生制御部4135は更に、その情報をスイッチ4120へ渡す。
プレーヤ変数記憶部4136は、2D再生装置内のもの3736と同様に、図38に示されているSPRMを含む。しかし、図38とは異なり、SPRM(24)は、図36に示されている第1フラグを含み、SPRM(25)は第2フラグを含む。その場合、SPRM(24)が“0”であるときは再生装置102が2D映像の再生のみに対応可能であり、“1”であるときは3D映像の再生にも対応可能である。SPRM(25)が“0”であるときは再生装置102がL/Rモードであり、“1”であるときはデプス・モードである。
プレーヤ変数記憶部4136では更に、図38とは異なり、SPRM(27)は各グラフィックス・プレーンに対する参照オフセットIDの格納領域を含み、SPRM(28)は各グラフィックス・プレーンに対するオフセット補正値の格納領域を含む。図42は、SPRM(27)とSPRM(28)とのデータ構造を示す表である。図42を参照するに、SPRM(27)は、四種類の参照オフセットID4210−4213を格納する領域を含む。それらの参照オフセットIDは、PGプレーンに対するもの(PG_ref_offset_id)4210、IGプレーンに対するもの(IG_ref_offset_id)4211、副映像プレーンに対するもの(SV_ref_offset_id)4212、及びイメージ・プレーンに対するもの(IM_ref_offset_id)4213である。SPRM(28)は、四種類のオフセット補正値4220−4223を格納する領域を含む。それらのオフセット補正値は、PGプレーンに対するもの(PG_offset_adjustment)4220、IGプレーンに対するもの(IG_offset_adjustment)4221、副映像プレーンに対するもの(SV_offset_adjustment)4222、及びイメージ・プレーンに対するもの(IM_offset_adjustment)4223である。
図41を再び参照するに、BD−ROMドライブ4101は、図37に示されている2D再生装置内のもの3701と同様な構成要素を含む。BD−ROMドライブ4101は、再生制御部4135からLBNの範囲が指示されたとき、その範囲の示すBD−ROMディスク101上のセクタ群からデータを読み出す。特にファイルSSのエクステント、すなわちエクステントSSに属するソースパケット群は、BD−ROMドライブ4101からスイッチ4120へ転送される。ここで、各エクステントSSは、図19に示されているとおり、ベースビューとディペンデントビューとのデータ・ブロックの対を一つ以上含む。それらのデータ・ブロックは、異なるリード・バッファ4121、4122へパラレルに転送されなければならない。従って、BD−ROMドライブ4101には2D再生装置内のBD−ROMドライブ3701以上のアクセス・スピードが求められる。
スイッチ4120はBD−ROMドライブ4101からはエクステントSSを受信する。一方、スイッチ4120は再生制御部4135からは、そのエクステントSSに含まれる各データ・ブロックの境界を示す情報、すなわち、そのエクステントSSの先頭から各境界までのソースパケット数を受信する。スイッチ4120は更に、その情報を利用して各エクステントSSからベースビュー・エクステントを抽出して第1リード・バッファ4121へ送出し、ディペンデントビュー・エクステントを抽出して第2リード・バッファ4122へ送出する。
第1リード・バッファ4121と第2リード・バッファ4122とはいずれも、再生部4102内のメモリ素子を利用したバッファ・メモリである。特に単一のメモリ素子内の異なる領域が各リード・バッファ4121、4122として利用される。その他に、異なるメモリ素子が個別に各リード・バッファ4121、4122として利用されてもよい。第1リード・バッファ4121はスイッチ4120からベースビュー・エクステントを受信して格納する。第2リード・バッファ4122はスイッチ4120からディペンデントビュー・エクステントを受信して格納する。
システム・ターゲット・デコーダ4125は、3Dプレイリスト再生処理では、まず、再生制御部4135から復号対象のストリーム・データのPIDと、その復号に必要な属性情報とを受信する。システム・ターゲット・デコーダ4125は次に、第1リード・バッファ4121に格納されたベースビュー・エクステントと、第2リード・バッファ4122に格納されたディペンデントビュー・エクステントとから交互にソースパケットを読み出す。システム・ターゲット・デコーダ4125は続いて、再生制御部4135から受信されたPIDの示すエレメンタリ・ストリームを各ソースパケットから分離して復号する。システム・ターゲット・デコーダ4125は更に、復号後のエレメンタリ・ストリームをその種類別に内蔵のプレーン・メモリに書き込む。ベースビュー・ビデオ・ストリームは左映像プレーン・メモリに書き込まれ、ディペンデントビュー・ビデオ・ストリームは右映像プレーン・メモリに書き込まれる。一方、セカンダリ・ビデオ・ストリームは副映像プレーン・メモリに書き込まれ、IGストリームはIGプレーン・メモリに書き込まれ、PGストリームはPGプレーン・メモリに書き込まれる。ここで、セカンダリ・ビデオ・ストリームがベースビューとディペンデントビューとのビデオ・ストリームの対から成る場合、副映像プレーン・メモリはレフトビューとライトビューとの両方のプレーン・データに対して個別に用意される。システム・ターゲット・デコーダ4125はまた、プリロード・バッファ4123から各テキスト・データ・エントリを読み出し、フォント・バッファ4124に格納されたフォント・セットを利用して、そのテキスト・データ・エントリをビットマップ・データに復号してPGプレーン・メモリに書き込む。システム・ターゲット・デコーダ4125はその他に、プログラム実行部4134からのグラフィックス・データ、例えばJPEG又はPNG等のラスタ・データに対してレンダリング処理を行ってイメージ・プレーン・メモリに書き込む。
システム・ターゲット・デコーダ4125は、左映像プレーン・メモリと右映像プレーン・メモリとからのプレーン・データの出力モードを次のように、B−D表示モードとB−B表示モードとのいずれかに対応させる。再生制御部4135からB−D表示モードが指示されたとき、システム・ターゲット・デコーダ4125は左映像プレーン・メモリと右映像プレーン・メモリとから交互にプレーン・データを出力する。一方、再生制御部4135からB−B表示モードが指示されたとき、システム・ターゲット・デコーダ4125は動作モードを3D再生モードに維持したまま、左映像プレーン・メモリと右映像プレーン・メモリとのいずれかからのみ、プレーン・データを一フレーム当たり二回ずつ出力する。
再生制御部4135から1プレーン+オフセット・モードが指示されたとき、システム・ターゲット・デコーダ4125は、ディペンデントビュー・ビデオ・ストリームから各ビデオ・シーケンスの先頭のVAUを読み出す度に、そのVAUからオフセット・メタ・データ1310を読み出す。そのビデオ・シーケンスの再生区間では、システム・ターゲット・デコーダ4125は、まず、各VAUと共に同じPESパケットに格納されたPTSと、そのVAUの圧縮ピクチャ・データの表すフレームの番号とを特定する。システム・ターゲット・デコーダ4125は、次に、オフセット・メタ・データから、そのフレーム番号に対応付けられたオフセット情報を読み出して、特定されたPTSの示す時刻にプレーン加算部4126へ送出する。
プレーン加算部4126は、システム・ターゲット・デコーダ4125から各種のプレーン・データを受信し、それらを互いに重畳して一つのフレーム又はフィールドに合成する。特にL/Rモードでは、左映像プレーン・データはレフトビュー・ビデオ・プレーンを表し、右映像プレーン・データはライトビュー・ビデオ・プレーンを表す。従って、プレーン加算部4126は、左映像プレーン・データには、レフトビューを表す他のプレーン・データを重畳し、右映像プレーン・データには、ライトビューを表す他のプレーン・データを重畳する。一方、デプス・モードでは、右映像プレーン・データは、左映像プレーン・データの表すビデオ・プレーンに対するデプスマップを表す。従って、プレーン加算部4126はまず、両方の映像プレーン・データからレフトビューとライトビューとのビデオ・プレーン・データの対を生成する。その後、プレーン加算部4126はL/Rモードでの合成処理と同様に合成処理を行う。
プレーン加算部4126は再生制御部4135から、副映像プレーン、PGプレーン、IGプレーン、又はイメージ・プレーンの表示モードとして1プレーン+オフセット・モード又は1プレーン+ゼロ・オフセット・モードが指示されているとき、システム・ターゲット・デコーダ4125から受信されたプレーン・データに対してオフセット制御を行う。それにより、各プレーン・データからレフトビューとライトビューとのプレーン・データの対が生成される。
特に1プレーン+オフセット・モードが指示されているとき、プレーン加算部4126はまず、プレーヤ変数記憶部4136内のSPRM(27)から各グラフィックス・プレーンに対する参照オフセットID4210−4213を読み出す。プレーン加算部4126は次に、システム・ターゲット・デコーダ4125から受け取ったオフセット情報を参照して、各参照オフセットID4210−4213の示すオフセット・シーケンス1312に属するオフセット情報、すなわちオフセット方向1322とオフセット値1323との対を検索する。プレーン加算部4126は続いて、プレーヤ変数記憶部4136内のSPRM(28)から各グラフィックス・プレーンに対するオフセット補正値4220−4223を読み出して、対応するオフセット値に加える。プレーン加算部4126はその後、各オフセット値を利用して、対応するグラフィックス・プレーンに対してオフセット制御を行う。
一方、1プレーン+ゼロ・オフセット・モードが指示されているとき、プレーン加算部4126は、SPRM(27)、SPRM(28)のいずれも参照することなく、各グラフィックス・プレーンに対するオフセット値を“0”としてオフセット制御を行う。従って、同じプレーン・データが、レフトビューとライトビューとのそれぞれを表すグラフィックス・プレーンとして繰り返し、他のプレーン・データに合成される。
≪3Dプレイリスト再生処理≫
図43は、再生制御部4135による3Dプレイリスト再生処理のフローチャートである。3Dプレイリスト再生処理は、再生制御部4135が静的シナリオ・メモリ4132から3Dプレイリスト・ファイルを読み出すことによって開始される。
ステップS4301では、再生制御部4135はまず、3Dプレイリスト・ファイル内のメインパスからPIを一つ読み出して、カレントのPIとして設定する。再生制御部4135は次に、そのカレントPIのSTNテーブルから、再生対象のエレメンタリ・ストリームのPIDを選択し、かつ、それらの復号に必要な属性情報を特定する。再生制御部4135は更に、3Dプレイリスト・ファイル内のSTNテーブルSSのうち、カレントPIに対応するものから、再生対象のエレメンタリ・ストリームとして追加されるべきもののPIDを選択し、かつ、それらの復号に必要な属性情報を特定する。選択されたPIDと属性情報とはシステム・ターゲット・デコーダ4125に指示される。再生制御部4135はその他に、3Dプレイリスト・ファイル内のサブパスから、カレントPIと同時に参照されるべきSUB_PIを特定し、カレントのSUB_PIとして設定する。その後、処理はステップS4302へ進む。
ステップS4302では、再生制御部4135は、STNテーブルSSの示すポップアップ期間のオフセットに依って各プレーン・データの表示モードを選択し、システム・ターゲット・デコーダ4125とプレーン加算部4126とに指示する。特に、ポップアップ期間のオフセットの値が“0”であるとき、ビデオ・プレーンの表示モードとしてB−D表示モードが選択され、グラフィックス・プレーンの表示モードとして1プレーン+オフセット・モードが選択される。一方、ポップアップ期間のオフセットの値が“1”であるとき、ビデオ・プレーンの表示モードとしてB−B表示モードが選択され、グラフィックス・プレーンの表示モードとして1プレーン+ゼロ・オフセット・モードが選択される。その後、処理はステップS4303へ進む。
ステップS4303では、グラフィックス・プレーンの表示モードとして1プレーン+オフセット・モードと1プレーン+ゼロ・オフセット・モードとのいずれが選択されかをチェックする。1プレーン+オフセット・モードが選択された場合、処理はステップS4304へ進む。一方、1プレーン+ゼロ・オフセット・モードが選択された場合、処理はステップS4305へ進む。
ステップS4304では、再生制御部4135は、カレントPIのSTNテーブルを参照して、選択されたPIDの示すエレメンタリ・ストリームの中から、PGストリーム、IGストリーム、又はテキスト字幕ストリームを検出する。再生制御部4135は更に、それらのストリーム・データに割り当てられた参照オフセットIDとオフセット補正値とを特定して、プレーヤ変数記憶部4136内のSPRM(27)とSPRM(28)とのそれぞれに設定する。その後、処理はステップS4305へ進む。
ステップS4305では、再生制御部4135は、カレントのPIとSUB_PIとのそれぞれから、参照クリップ情報、再生開始時刻IN1を示すPTS#1、及び再生終了時刻OUT1を示すPTS#2を読み出す。その参照クリップ情報から、再生対象のファイル2DとファイルDEPとのそれぞれに対応するクリップ情報ファイルが特定される。その後、処理はステップS4306へ進む。
ステップS4306では、再生制御部4135は、ステップS4305で特定されたクリップ情報ファイルの各エントリ・マップを参照して、PTS#1、#2に対応するファイル2D内のSPN#1、#2とファイルDEP内のSPN#11、#12とを検索する。再生制御部4135は更に、図24を用いて説明したように、各クリップ情報ファイルのエクステント起点を利用して、ファイルSSの先頭から再生開始位置までのソースパケット数SPN#21をSPN#1、#11から算定し、ファイルSSの先頭から再生終了位置までのソースパケット数SPN#22をSPN#2、#12から算定する。具体的には、再生制御部4135は、まず2Dクリップ情報ファイルのエクステント起点の示すSPNの中から、SPN#1以下で最大のもの“Am”を検索し、ディペンデントビュー・クリップ情報ファイルのエクステント起点の示すSPNの中から、SPN#11以下で最大のもの“Bm”を検索する。再生制御部4135は続いて、検索されたSPNの和Am+Bmを求めてSPN#21として決定する。再生制御部4135は、次に2Dクリップ情報ファイルのエクステント起点の示すSPNの中から、SPN#2よりも大きく、かつ最小のもの“An”を検索し、ディペンデントビュー・クリップ情報ファイルのエクステント起点の示すSPNの中から、SPN#12より大きく、かつ最小のもの“Bn”を検索する。再生制御部4135は続いて、検索されたSPNの和An+Bnを求めてSPN#22として決定する。その後、処理はステップS4307へ進む。
ステップS4307では、再生制御部4135は、ステップS4306で決定されたSPN#21、#22をセクタ数の対N1、N2に変換する。具体的には、再生制御部4135はまず、SPN#21とソースパケット一つ当たりのデータ量192バイトとの積を求める。再生制御部4135は次に、その積をセクタ一つ当たりのデータ量2048バイトで割ったときの商SPN#21×192/2048を求める。この商は、ファイルSSの先頭から再生開始位置の直前までのセクタ数N1に等しい。同様に、再生制御部4135は、SPN#22から商SPN#22×192/2048を求める。この商は、ファイルSSの先頭から再生終了位置の直前までのセクタ数N2に等しい。その後、処理はステップS4308へ進む。
ステップS4308では、再生制御部4135は、ステップS4307で得られたセクタ数N1、N2のそれぞれから、再生対象のエクステントSS群の先端と後端とのLBNを特定する。具体的には、再生制御部4135は、再生対象のファイルSSのファイル・エントリを参照して、エクステントSS群が記録されたセクタ群の先頭から数えて(N1+1)番目のセクタのLBN=LBN#1と、(N2+1)番目のセクタのLBN=LBN#2とを特定する。再生制御部4135は更に、LBN#1からLBN#2までの範囲をBD−ROMドライブ4101に指定する。その結果、指定された範囲のセクタ群から、エクステントSS群に属するソースパケット群がアラインド・ユニット単位で読み出される。その後、処理はステップS4309へ進む。
ステップS4309では、再生制御部4135は、ステップS4306で利用されたクリップ情報ファイルのエクステント起点を再び利用して、エクステントSS群に含まれるディペンデントビュー・データ・ブロックとベースビュー・データ・ブロックとの間の境界を示す情報(以下、データ・ブロック境界情報と呼ぶ。)を生成してスイッチ4120へ送出する。具体的な例として、再生開始位置を示すSPN#21が、各エクステント起点の示すSPNの和An+Bnに等しく、再生終了位置を示すSPN#22が、各エクステント起点の示すSPNの和Am+Bmに等しいときを想定する。そのとき、再生制御部4135は、各エクステント起点から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)を求めて、データ・ブロック境界情報としてスイッチ4120へ送出する。図24の(e)に示されているとおり、この列は、エクステントSSに含まれる各データ・ブロックのソースパケット数を示す。スイッチ4120は、BD−ROMドライブ4101から受信されるエクステントSSのソースパケット数を0からカウントし、そのカウントが、データ・ブロック境界情報の示すSPNの差と一致する度に、ソースパケットの送出先を二つのリード・バッファ4121、4122間で切り換え、かつカウントを0にリセットする。その結果、エクステントSSの先頭から{B(n+1)−Bn}個のソースパケットは最初のディペンデントビュー・エクステントとして第2リード・バッファ4122へ送出され、続く{A(n+1)−An}個のソースパケットは最初のベースビュー・エクステントとして第1リード・バッファ4121へ送出される。以降も同様に、スイッチ4120によって受信されるソースパケットの数が、データ・ブロック境界情報の示すSPNの差と一致する度に、エクステントSSからディペンデントビュー・エクステントとベースビュー・エクステントとが交互に抽出される。
ステップS4310では、再生制御部4135は、メインパスに未処理のPIが残されているか否かをチェックする。残されているときは、処理がステップS4301から繰り返される。残されていないときは、処理が終了する。
≪システム・ターゲット・デコーダ≫
図44は、システム・ターゲット・デコーダ4125の機能ブロック図である。図44に示されている構成要素は、図40に示されている2D再生装置のもの3724とは、リード・バッファから各デコーダへの入力系統が二重化されている点で異なる。一方、主音声デコーダ、副音声デコーダ、テキスト字幕デコーダ、音声ミキサ、イメージ・プロセッサ、及び各プレーン・メモリは、図40に示されている2D再生装置のものと同様である。従って、以下では、図44に示されている構成要素のうち、図40に示されているものとは異なるものについて説明する。一方、同様な構成要素の詳細についての説明は、図40についての説明を援用する。更に、各映像デコーダはいずれも同様な構造を持つので、以下では主映像デコーダ4415の構造について説明する。同様な説明は他の映像デコーダの構造についても成立する。
第1ソース・デパケタイザ4411は、第1リード・バッファ4121からソースパケットを読み出し、更にその中からTSパケットを抽出して第1PIDフィルタ4413へ送出する。第2ソース・デパケタイザ4412は、第2リード・バッファ4122からソースパケットを読み出し、更にその中からTSパケットを抽出して第2PIDフィルタ4414へ送出する。各ソース・デパケタイザ4411、4412は更に、各TSパケットの送出時刻を、各ソースパケットのATSの示す時刻に合わせる。その同期方法は、図40に示されているソース・デパケタイザ4010による方法と同様である。従って、その詳細についての説明は図40についての説明を援用する。そのような送出時刻の調節により、第1ソース・デパケタイザ4411から第1PIDフィルタ4413へのTSパケットの平均転送速度RTS1は、2Dクリップ情報ファイルの示すシステムレートを超えない。同様に、第2ソース・デパケタイザ4412から第2PIDフィルタ4414へのTSパケットの平均転送速度RTS2は、ディペンデントビュー・クリップ情報ファイルの示すシステムレートを超えない。
第1PIDフィルタ4413は、第1ソース・デパケタイザ4411からTSパケットを受信する度に、そのPIDを選択対象のPIDと比較する。その選択対象のPIDは再生制御部4135によって予め、3Dプレイリスト・ファイル内のSTNテーブルに従って指定されている。両方のPIDが一致したとき、第1PIDフィルタ4413はそのTSパケットを、そのPIDに割り当てられたデコーダへ転送する。例えばPIDが0x1011であるとき、そのTSパケットは主映像デコーダ4415内のTB(1)4401へ転送される。その他に、PIDが、0x1B00−0x1B1F、0x1100−0x111F、0x1A00−0x1A1F、0x1200−0x121F、及び0x1400−0x141Fの各範囲に属するとき、対応するTSパケットはそれぞれ、副映像デコーダ、主音声デコーダ、副音声デコーダ、PGデコーダ、及びIGデコーダへ転送される。
第2PIDフィルタ4414は、第2ソース・デパケタイザ4412からTSパケットを受信する度に、そのPIDを選択対象のPIDと比較する。その選択対象のPIDは再生制御部4135によって予め、3Dプレイリスト・ファイル内のSTNテーブルSSに従って指定されている。両方のPIDが一致したとき、第2PIDフィルタ4414はそのTSパケットを、そのPIDに割り当てられたデコーダへ転送する。例えばPIDが0x1012又は0x1013であるとき、そのTSパケットは主映像デコーダ4415内のTB(2)4408へ転送される。その他に、PIDが、0x1B20−0x1B3F、0x1220−0x127F、及び0x1420−0x147Fの各範囲に属するとき、対応するTSパケットはそれぞれ、副映像デコーダ、PGデコーダ、及びIGデコーダへ転送される。
主映像デコーダ4415は、TB(1)4401、MB(1)4402、EB(1)4403、TB(2)4408、MB(2)4409、EB(2)4410、バッファ・スイッチ4406、DEC4404、DPB4405、及びピクチャ・スイッチ4407を含む。TB(1)4401、MB(1)4402、EB(1)4403、TB(2)4408、MB(2)4409、EB(2)4410、及びDPB4405はいずれもバッファ・メモリである。各バッファ・メモリは、主映像デコーダ4415に内蔵されたメモリ素子の一領域を利用する。その他に、それらのバッファ・メモリのいずれか又は全てが、異なるメモリ素子に分離されていてもよい。
TB(1)4401は、ベースビュー・ビデオ・ストリームを含むTSパケットを第1PIDフィルタ4413から受信してそのまま蓄積する。MB(1)4402は、TB(1)4401に蓄積されたTSパケットからPESパケットを復元して蓄積する。そのとき、各TSパケットからTSヘッダが除去される。EB(1)4403は、MB(1)4402に蓄積されたPESパケットから、符号化されたVAUを抽出して蓄積する。そのとき、各PESパケットからPESヘッダが除去される。
TB(2)4408は、ディペンデントビュー・ビデオ・ストリームを含むTSパケットを第2PIDフィルタ4414から受信してそのまま蓄積する。MB(2)4409は、TB(2)4408に蓄積されたTSパケットからPESパケットを復元して蓄積する。そのとき、各TSパケットからTSヘッダが除去される。EB(2)4410は、MB(2)4409に蓄積されたPESパケットから、符号化されたVAUを抽出して蓄積する。そのとき、各PESパケットからPESヘッダが除去される。
バッファ・スイッチ4406は、EB(1)4403とEB(2)4410とのそれぞれに蓄積されたVAUのヘッダをDEC4404からの要求に応じて転送する。バッファ・スイッチ4406は更に、そのVAUの圧縮ピクチャ・データを、元のPESパケットに含まれるDTSの示す時刻にDEC4404へ転送する。ここで、ベースビュー・ビデオ・ストリームとディペンデントビュー・ビデオ・ストリームとの間では、同じ3D・VAUに属する一対のピクチャのDTSが等しい。従って、バッファ・スイッチ4406は、DTSの等しい一対のVAUのうち、EB(1)4403に蓄積された方を先にDEC4404へ転送する。その他に、バッファ・スイッチ4406は、そのVAU内の復号スイッチ情報1250をDEC4404に返信させてもよい。その場合、バッファ・スイッチ4406はその復号スイッチ情報を使って、次のVAUをEB(1)4403とEB(2)4410とのいずれから転送すべきか決定できる。
DEC4404は、図40に示されているDEC4004と同様、圧縮ピクチャの復号処理に特化したハードウェア・デコーダであり、特にその復号処理のアクセラレータ機能を備えたLSIで構成されている。DEC4404は、バッファ・スイッチ4406から転送された圧縮ピクチャ・データを順次復号する。その復号処理では、DEC4404は予め、各VAUのヘッダを解析して、そのVAU内に格納された圧縮ピクチャの圧縮符号化方式とストリーム属性とを特定し、それらに応じて復号方法を選択する。ここで、その圧縮符号化方式は例えば、MPEG−2、MPEG−4 AVC、MVC、及びVC1を含む。DEC4404は更に、復号された非圧縮のピクチャをDPB4405へ転送する。
DEC4404はその他に、ディペンデントビュー・ビデオ・ストリームから各ビデオ・シーケンスの先頭のVAUを読み出す度に、そのVAUからオフセット・メタ・データを読み出す。そのビデオ・シーケンスの再生区間では、DEC4404は、まず、各VAUと共に同じPESパケットに格納されたPTSと、そのVAUの圧縮ピクチャ・データの表すフレームの番号とを特定する。DEC4404は次に、オフセット・メタ・データから、そのフレーム番号に対応付けられたオフセット情報を読み出して、特定されたPTSの示す時刻にプレーン加算部4126へ送出する。
DPB4405は、DEC4404によって復号された非圧縮のピクチャを一時的に保持する。DEC4404がPピクチャ及びBピクチャを復号するとき、DPB4405はDEC4404からの要求に応じて、保持されている非圧縮のピクチャの中から参照ピクチャを検索してDEC4404に提供する。
ピクチャ・スイッチ4407は、DPB4405から非圧縮の各ピクチャを、元のPESパケットに含まれるPTSの示す時刻に、左映像プレーン・メモリ4420と右映像プレーン・メモリ4421とのいずれかに書き込む。ここで、同じ3D・VAUに属するベースビュー・ピクチャとディペンデントビュー・ピクチャとではPTSが等しい。従って、ピクチャ・スイッチ4407は、DPB4405に保持された、PTSの等しい一対のピクチャのうち、ベースビュー・ピクチャを先に左映像プレーン・メモリ4420に書き込み、続いてディペンデントビュー・ピクチャを右映像プレーン・メモリ4421に書き込む。
≪プレーン加算部≫
図45は、プレーン加算部4126の機能ブロック図である。図45を参照するに、プレーン加算部4126は、視差映像生成部4510、スイッチ4520、四つのクロッピング処理部4531−4534、及び四つの加算部4541−4544を含む。
視差映像生成部4510は、システム・ターゲット・デコーダ4125から左映像プレーン・データ4501と右映像プレーン・データ4502とを受信する。L/Rモードの再生装置102では、左映像プレーン・データ4501はレフトビュー・ビデオ・プレーンを表し、右映像プレーン・データ4502はライトビュー・ビデオ・プレーンを表す。そのとき、視差映像生成部4510は各ビデオ・プレーン・データ4501、4502をそのままスイッチ4520へ送出する。一方、デプス・モードの再生装置102では、左映像プレーン・データ4501は2D映像のビデオ・プレーンを表し、右映像プレーン・データ4502はその2D映像に対するデプスマップを表す。そのとき、視差映像生成部4510は、まずそのデプスマップからその2D映像の各部の両眼視差を計算する。視差映像生成部4510は次に、左映像プレーン・データ4501を加工して、ビデオ・プレーンにおけるその2D映像の各部の表示位置を、計算された両眼視差に依って左右に移動させる。それにより、レフトビューとライトビューとを表すビデオ・プレーンの対が生成される。視差映像生成部4510は更に、そのビデオ・プレーンの対を左映像と右映像とのプレーン・データの対としてスイッチ4520へ送出する。
スイッチ4520は、再生制御部4135からB−D表示モードが指示されているとき、PTSの等しい左映像プレーン・データ4501と右映像プレーン・データ4502とをその順で第1加算部4541へ送出する。スイッチ4520は、再生制御部4135からB−B表示モードが指示されているとき、PTSの等しい左映像プレーン・データ4501と右映像プレーン・データ4502との一方を一フレーム当たり二回ずつ、第1加算部4541へ送出し、他方を破棄する。
第1クロッピング処理部4531は、視差映像生成部4510とスイッチ4520との対と同様な構成を入力部に含む。副映像プレーン・データがレフトビューとライトビューとの対である場合にはそれらの構成が利用される。特にデプス・モードの再生装置102では、副映像プレーン・データの対は、第1クロッピング処理部4531内の視差映像生成部によってレフトビューとライトビューとのプレーン・データの対に変換される。再生制御部4135からB−D表示モードが指示されているとき、レフトビューとライトビューとのプレーン・データが交互に第1加算部4541へ送出される。一方、再生制御部4135からB−B表示モードが指示されているとき、レフトビューとライトビューとのプレーン・データの一方が一フレーム当たり二回ずつ第1加算部4541へ送出され、他方は破棄される。
再生制御部4135から1プレーン+オフセット・モードが指示されているとき、第1クロッピング処理部4531は副映像プレーン・データ4503に対してオフセット制御を次のように行う。第1クロッピング処理部4531はまず、システム・ターゲット・デコーダ4125からオフセット情報4507を受信する。そのとき、第1クロッピング処理部4531は、プレーヤ変数記憶部4136内のSPRM(27)4551から、副映像プレーンに対する参照オフセットID(SV_ref_offset_id)4212を読み出す。第1クロッピング処理部4531は次に、その参照オフセットIDの示すオフセット・シーケンスに属するオフセット情報を、システム・ターゲット・デコーダ4125から受け取ったオフセット情報4507から検索する。第1クロッピング処理部4531は続いて、プレーヤ変数記憶部4136内のSPRM(28)4552から、副映像プレーンに対するオフセット補正値(SV_offset_adjustment)4222を読み出して、検索されたオフセット値に加える。第1クロッピング処理部4531はその後、そのオフセット値を利用して、副映像プレーン・データ4503に対してオフセット制御を行う。その結果、副映像プレーン・データ4503は、レフトビューとライトビューとを表す一対の副映像プレーン・データに変換されて交互に送出される。
ここで、SPRM(27)4551とSPRM(28)4552との各値は一般に、カレントPIが切り換わる度に、再生制御部4135によって更新される。その他に、プログラム実行部4134が、ムービーオブジェクト又はBD−Jオブジェクトに従ってSPRM(27)4551とSPRM(28)4552との各値を設定してもよい。
一方、再生制御部4135から1プレーン+ゼロ・オフセット・モードが指示されているとき、第1クロッピング処理部4531はオフセット制御を行うことなく、副映像プレーン・データ4503をそのまま、二回繰り返して送出する。
同様に、第2クロッピング処理部4532は、PGプレーンに対する参照オフセットID(PG_ref_offset_id)4210とオフセット補正値(PG_offset_adjustment)4220とを利用して、PGプレーン・データ4504に対してオフセット制御を行う。第3クロッピング処理部4533は、IGプレーンに対する参照オフセットID(IG_ref_offset_id)4211とオフセット補正値(IG_offset_adjustment)4221とを利用して、IGプレーン・データ4505に対してオフセット制御を行う。第4クロッピング処理部4534は、イメージ・プレーンに対する参照オフセットID(IM_ref_offset_id)4213とオフセット補正値(IM_offset_adjustment)4223とを利用して、イメージ・プレーン・データ4506に対してオフセット制御を行う。
[オフセット制御のフローチャート]
図46は、各クロッピング処理部4531−4534によるオフセット制御のフローチャートである。各クロッピング処理部4531−4534は、システム・ターゲット・デコーダ4125からオフセット情報4507を受信したときにオフセット制御を開始する。以下、第2クロッピング処理部4532がPGプレーン・データ4504に対してオフセット制御を行う場合を例に挙げる。他のクロッピング処理部4531、4533、4534はそれぞれ、副映像プレーン・データ4503、IGプレーン・データ4505、及びイメージ・プレーン・データ4506に対して同様な処理を行う。
ステップS4601では、第2クロッピング処理部4532はまず、システム・ターゲット・デコーダ4125からPGプレーン・データ4504を受信する。そのとき、第2クロッピング処理部4532は、SPRM(27)4551からPGプレーンに対する参照オフセットID(PG_ref_offset_id)4210を読み出す。第2クロッピング処理部4531は次に、その参照オフセットIDの示すオフセット・シーケンスに属するオフセット情報を、システム・ターゲット・デコーダ4125から受け取ったオフセット情報4507から検索する。その後、処理はステップS4602へ進む。
ステップS4602では、第2クロッピング処理部4532は、SPRM(28)4552からPGプレーンに対するオフセット補正値(PG_offset_adjustment)4220を読み出して、ステップS4601で検索されたオフセット値に加える。その後、処理はステップS4603へ進む。
ステップS4603では、第2クロッピング処理部4532は、スイッチ4520によって選択されたビデオ・プレーン・データがレフトビューを表すか否かチェックする。ビデオ・プレーン・データがレフトビューを表すとき、処理はステップS4604へ進む。ビデオ・プレーン・データがライトビューを表すとき、処理はステップS4605へ進む。
ステップS4604では、第2クロッピング処理部4532は、検索されたオフセット方向の値をチェックする。以下では、次の場合を想定する:オフセット方向の値が“0”であるときは、3Dグラフィックス映像の奥行きが画面よりも手前であり、オフセット方向の値が“1”であるときは奥である。その場合、オフセット方向の値が“0”であるとき、処理はステップS4605へ進む。オフセット方向の値が“1”であるとき、処理はステップS4606へ進む。
ステップS4605では、第2クロッピング処理部4532はPGプレーン・データ4504に右向きのオフセットを与える。すなわち、PGプレーン・データ4504の含む各画素データの位置をオフセット値だけ右に移動させる。その後、処理はステップS4610へ進む。
ステップS4606では、第2クロッピング処理部4532はPGプレーン・データ4504に左向きのオフセットを与える。すなわち、PGプレーン・データ4504の含む各画素データの位置をオフセット値だけ左に移動させる。その後、処理はステップS4610へ進む。
ステップS4607では、第2クロッピング処理部4532は、検索されたオフセット方向の値をチェックする。オフセット方向の値が“0”であるとき、処理はステップS4608へ進む。オフセット方向の値が“1”であるとき、処理はステップS4609へ進む。
ステップS4608では、ステップS4605とは逆に、第2クロッピング処理部4532はPGプレーン・データ4504に左向きのオフセットを与える。すなわち、PGプレーン・データ4504の含む各画素データの位置をオフセット値だけ左に移動させる。その後、処理はステップS4610へ進む。
ステップS4609では、ステップS4606とは逆に、第2クロッピング処理部4532はPGプレーン・データ4504に右向きのオフセットを与える。すなわち、PGプレーン・データ4504の含む各画素データの位置をオフセット値だけ右に移動させる。その後、処理はステップS4610へ進む。
ステップS4610では、第2クロッピング処理部4532は、処理後のPGプレーン・データ4504を第3クロッピング処理部4534へ送出する。その後、処理は終了する。
[オフセット制御によるプレーン・データの変化]
図47は、第2クロッピング処理部4532によるオフセット制御で加工されるPGプレーン・データを示す模式図である。図47を参照するに、PGプレーン・データGPは、字幕“I Love you”を表す画素データ群、すなわち字幕データSTLを含む。ここで、オフセット制御前では、その字幕データSTLは、PGプレーン・データGPの左端から距離D0に位置する。
第2クロッピング処理部4532は、PGプレーン・データGPに右向きのオフセットを与える場合、PGプレーン・データGP内の各画素データの位置を元の位置から、オフセット値に等しい画素数OFSだけ右に移動させる。具体的には、第2クロッピング処理部4532は、まずクロッピング処理により、PGプレーン・データGPの右端から、オフセット値に等しい幅OFSの帯状領域AR1に含まれる画素データを除去する。第2クロッピング処理部4532は次に、PGプレーン・データGPの左端に画素データを付加して、幅OFSの帯状領域AL1を構成する。ここで、その領域AL1に含まれる画素データは透明に設定される。こうして、右向きのオフセットが与えられたPGプレーン・データRGPが得られる。実際、字幕データSTLはそのPGプレーン・データRGPの左端から距離DRに位置し、その距離DRは、元の距離D0にオフセット値OFSを加えた値に等しい:DR=D0+OFS。
逆に、PGプレーン・データGPに左向きのオフセットを与える場合、第2クロッピング処理部4532はPGプレーン・データGP内の各画素データの位置を元の位置から、オフセット値に等しい画素数OFSだけ左に移動させる。具体的には、第2クロッピング処理部4532はまずクロッピング処理により、PGプレーン・データGPの左端から、オフセット値に等しい幅OFSの帯状領域AL2に含まれる画素データを除去する。第2クロッピング処理部4532は次に、PGプレーン・データGPの右端に画素データを付加して、幅OFSの帯状領域AR2を構成する。ここで、その領域AR2に含まれる画素データは透明に設定される。こうして、左向きのオフセットが与えられたPGプレーン・データLGPが得られる。実際、字幕データSTLはそのPGプレーン・データLGPの左端から距離DLに位置し、その距離DLは、元の距離D0からオフセット値OFSを除いた値に等しい:DL=D0−OFS。
図45を再び参照するに、第1加算部4541は、スイッチ4520からビデオ・プレーン・データを受信し、第1クロッピング処理部4531から副映像プレーン・データを受信する。第1加算部4541はそのとき、それらのビデオ・プレーン・データと副映像プレーン・データとを一組ずつ重畳して第2加算部4542に渡す。第2加算部4542は、第2クロッピング処理部4532からPGプレーン・データを受信し、第1加算部4541からのプレーン・データに重畳して第3加算部4543に渡す。第3加算部4543は、第3クロッピング処理部4533からIGプレーン・データを受信し、第2加算部4542からのプレーン・データに重畳して第4加算部4544に渡す。第4加算部4544は、第4クロッピング処理部4534からイメージ・プレーン・データを受信し、第3加算部4543からのプレーン・データに重畳して表示装置103へ送出する。ここで、各加算部4541−4544は、プレーン・データの重畳にα合成を利用する。こうして、左映像プレーン・データ4501と右映像プレーン・データ4502とのそれぞれに、図45に矢印4500で示されている順序で、副映像プレーン・データ4503、PGプレーン・データ4504、IGプレーン・データ4505、及びイメージ・プレーン・データ4506が重畳される。その結果、各プレーン・データの示す映像は表示装置103の画面上に、左映像プレーン又は右映像プレーン、副映像プレーン、IGプレーン、PGプレーン、及びイメージ・プレーンの順に重ねられたように表示される。
プレーン加算部4524は上記の処理の他に、四つの加算部4541−4544によって合成されたプレーン・データの出力形式を、表示装置103等、そのデータの出力先の装置による3D映像の表示方式に合わせて変換する。例えば出力先の装置が経時分離方式を利用するとき、プレーン加算部4524は合成後のプレーン・データを一つの映像フレーム又はフィールドとして送出する。一方、出力先の装置がレンチキュラーレンズを利用するとき、プレーン加算部4524は内蔵のバッファ・メモリを利用して、レフトビューとライトビューとのプレーン・データの対を一つの映像フレーム又はフィールドに合成して送出する。具体的には、プレーン加算部4524は、先に合成されたレフトビュー・プレーン・データを一旦、そのバッファ・メモリに格納して保持する。プレーン加算部4524は続いて、ライトビュー・プレーン・データを合成して、バッファ・メモリに保持されたレフトビュー・プレーン・データと更に合成する。その合成では、レフトビューとライトビューとの各プレーン・データが縦方向に細長い短冊形の小領域に分割され、各小領域が一つのフレーム又はフィールドの中に横方向に交互に並べられて一つのフレーム又はフィールドに再構成される。こうして、レフトビューとライトビューとのプレーン・データの対が一つの映像フレーム又はフィールドに合成される。プレーン加算部4524はその合成後の映像フレーム又はフィールドを出力先の装置へ送出する。
<実施形態1の効果>
本発明の実施形態1によるBD−ROMディスク101では、オフセット・メタ・データがディペンデントビュー・ビデオ・ストリームの各GOPの先頭に置かれている。オフセット・メタ・データは複数のオフセット・シーケンスに個別にオフセット・シーケンスIDを割り当てている。一方、3Dプレイリスト・ファイルでは、各再生区間におけるSTNテーブルが復号対象のグラフィックス/テキスト・ストリーム、すなわち、PGストリーム、IGストリーム、及びテキスト字幕ストリームに対して個別に参照オフセットIDを割り当てている。それにより、1プレーン+オフセット・モードの再生装置102は、ディペンデントビュー・ビデオ・ストリームの復号処理と並行して、オフセット・メタ・データからオフセット情報を読み出して、グラフィックス・プレーンに対するオフセット制御に利用することができる。従って、再生装置102は、再生対象のグラフィックス/テキスト・ストリームが複数であっても、それらとオフセット情報との間の対応関係を更に確実に維持することができる。その結果、再生装置102は、ビデオ・ストリームの表す映像と共に3Dグラフィックス映像を、更に高画質で再生することができる。その上、再生装置102には内蔵メモリに、再生経路全体に対するオフセット情報を予め展開する必要がない。その結果、内蔵メモリの容量を更に削減することが容易である。
<変形例>
(1−A)本発明の実施形態1によるL/Rモードでは、ベースビュー・ビデオ・ストリームがレフトビューを表し、ディペンデントビュー・ビデオ・ストリームがライトビューを表す。逆に、ベースビュー・ビデオ・ストリームがライトビューを表し、ディペンデントビュー・ビデオ・ストリームがレフトビューを表してもよい。
(1−B)本発明の実施形態1によるBD−ROMディスク101では、ベースビュー・ビデオ・ストリームとディペンデントビュー・ビデオ・ストリームとが異なるTSに多重化されている。その他に、ベースビュー・ビデオ・ストリームとディペンデントビュー・ビデオ・ストリームとが一つのTSに多重化されていてもよい。
(1−C)図35に示されているインデックス・ファイル211は、タイトル全体で共通する3D存在フラグ3520と2D/3Dお好みフラグ3530とを含む。その他に、インデックス・ファイルが、タイトル別に異なる3D存在フラグ又は2D/3Dお好みフラグを設定していてもよい。
(1−D)3D映像のAVストリーム・ファイルでは、図18に示されているPMT1810に3D映像の再生方式に関するデータが追加されてもよい。その場合、PMT1810は、PMTヘッダ1801、ディスクリプタ1802、及びストリーム情報1803に加えて3Dディスクリプタを含む。3Dディスクリプタは、3D映像の再生方式に関してAVストリーム・ファイル全体に共通する情報であり、特に3D方式情報を含む。3D方式情報は、L/Rモード又はデプス・モード等、3D映像のAVストリーム・ファイルの再生方式を示す。各ストリーム情報1803は、ストリーム・タイプ1831、PID1832、及びストリーム・ディスクリプタ1833に加えて3Dストリーム・ディスクリプタを含む。3Dストリーム・ディスクリプタは、AVストリーム・ファイルに含まれるエレメンタリ・ストリーム別に3D映像の再生方式に関する情報を示す。特にビデオ・ストリームの3Dストリーム・ディスクリプタは3D表示タイプを含む。3D表示タイプは、そのビデオ・ストリームの示す映像をL/Rモードで表示するとき、その映像がレフトビューとライトビューとのいずれであるのかを示す。3D表示タイプはまた、そのビデオ・ストリームの示す映像をデプス・モードで表示するとき、その映像が2D映像とデプスマップとのいずれであるのかを示す。このように、PMTが3D映像の再生方式に関する情報を含むとき、その映像の再生系統はAVストリーム・ファイルだけからでも、その情報を取得できる。従って、そのようなデータ構造は、例えば放送波で3D映像コンテンツを頒布するときに有効である。
(1−E)ディペンデントビュー・クリップ情報ファイルは、図22に示されているようなストリーム属性情報2220のうち、ディペンデントビュー・ビデオ・ストリームのPID=0x1012、0x1013に割り当てられているビデオ・ストリーム属性情報に所定のフラグを含んでも良い。そのフラグがオンであるときは、ディペンデントビュー・ビデオ・ストリームがベースビュー・ビデオ・ストリームを参照するものであることを示す。そのビデオ・ストリーム属性情報が更に、参照先のベースビュー・ビデオ・ストリームに関する情報を含んでもよい。その情報は、3D映像コンテンツが規定のフォーマットどおりに作成されているか否かを所定のツールで検証するときに、ビデオ・ストリーム間の対応関係を確認するのに利用することができる。
(1−F)本発明の実施形態1では、クリップ情報ファイルに含まれるエクステント起点2242、2420からベースビュー・エクステントとディペンデントビュー・エクステントとの各サイズを算出することができる。その他に、各エクステントのサイズの一覧表が、例えばクリップ情報ファイルにメタ・データの一部として格納されてもよい。
(1−G)PGストリーム、IGストリーム、及びテキスト字幕ストリームのそれぞれに対する参照オフセットIDとオフセット補正値とは、STNテーブル3205に代えて、STNテーブルSS3130に格納されてもよい。その他に、それらはクリップ情報ファイル内のストリーム属性情報2220に格納されてもよい。更に、参照オフセットIDは、PGストリームとテキスト字幕ストリームとの各字幕エントリに格納されていても、IGストリームの各ページに格納されていてもよい。
(1−H)プログラム実行部4134は、ムービーオブジェクト又はBD−Jオブジェクトに従ってSPRM(27)4551とSPRM(28)4552との各値を設定してもよい。すなわち、再生装置102はアプリケーション・プログラムに参照オフセットIDとオフセット補正値とを設定させてもよい。更に、そのようなアプリケーション・プログラムは、インデックス・テーブル3510の項目「ファーストプレイ」3501に対応付けられているオブジェクトに制限されてもよい。
(1−I)STNテーブルでは、一つのストリーム・データに対してオフセット補正値が複数設定されてもよい。図48は、そのようなSTNテーブル4805を示す模式図である。図48を参照するに、ストリーム属性4810は、PGストリーム1のストリーム・エントリ4810と同じSTN4806に対応付けられている。そのストリーム属性4810は、一つの参照オフセットID4800と共に、三種類のオフセット補正値#1−#34801−4803を含む。それらのオフセット補正値は、PGストリーム1から再生されるグラフィックス・プレーンに与えられるべきオフセットを、表示装置の画面サイズに依って変化させるのに利用される。ここで、オフセット補正値の種類と画面サイズとの間の対応関係は予め規定されている場合を想定する。具体的には、オフセット補正値#14801、オフセット補正値#24802、オフセット補正値#34803は、画面サイズが0−33インチ、34−66インチ、及び67インチ以上の各範囲内に属するときに利用される。各オフセット補正値4801−4803は次の条件を満たすように設定される:グラフィックス・プレーンのオフセットによって生じるレフトビューとライトビューとのグラフィックス映像間の視差の最大値が、一般的な視聴者の瞳孔間距離以下(特に視聴者が子供である場合は5cm以下)である。その条件が満たされる限り、その視差は視聴者の瞳孔間距離を超えないので、その視聴者に映像酔いや眼精疲労が生じる危険性を低減させることができる。
図49は、表示装置103の画面サイズに基づくオフセット補正値の選択処理のフローチャートである。再生装置102の再生制御部4135は、カレントPIの切り換えに伴って、一つのストリーム・データに割り当てられたオフセット補正値の総数が変更される度に、以下の選択処理を行う。
ステップS4901では、再生制御部4135は表示装置103の画面サイズを取得する。その際、必要であれば再生制御部4135はHDMI認証を行う。具体的には、再生制御部4135はHDMIケーブル122を通して表示装置103との間でCECメッセージを交換して、表示装置103から、その画面サイズを示す情報を送信させる。一方、表示装置103の画面サイズが既にプレーヤ変数の値として、いずれかのSPRM等に保存されているときは、再生制御部4135はプレーヤ変数記憶部4136からその画面サイズを読み出す。その後、処理はステップS4902へ進む。
ステップS4902では、再生制御部4135は、表示装置103の画面サイズが、0−33インチ、34−66インチ、及び67インチ以上のいずれの範囲内に属するかを判別する。画面サイズが、0−33インチ、34−66インチ、及び67インチ以上の各範囲内に属するとき、処理はステップS4903、S4904、S4905へ進む。
ステップS4903、S4904、S4905のそれぞれでは、再生制御部4135は、オフセット補正値#14801、オフセット補正値#24802、オフセット補正値#34803を選択し、その種類を表す情報をプレーヤ変数としてプレーヤ変数記憶部4136に格納する。その後、処理は終了する。それにより、オフセット補正値の選択処理が再び実行されるまで、再生制御部4135は各STNテーブルから、そのプレーヤ変数の示す種類のオフセット補正値を選択して、その値にSPRM(28)の値を更新する。
(1−J)再生制御部4135は、グラフィックス・プレーンに与えられるべきオフセットを視聴者に調整させてもよい。図50は、その調整処理のフローチャートである。この処理は、視聴者がリモコン105又は再生装置102のフロントパネルを操作してオフセット補正値の設定を要求したときに、ユーザイベント処理部4133がその要求を受け付けることによって開始される。
ステップS5001では、ユーザイベント処理部4133からの要求に応じ、再生制御部4135は表示装置103に、オフセットを調整するための操作画面を表示させる。ここで、その操作画面の表示には再生装置102のOSDが利用される。特に再生部4102は操作画面とグラフィックス映像とを合わせて表示する。その後、処理はステップS5002へ進む。
ステップS5002では、再生制御部4135は操作画面を利用して、視聴者に調整対象のグラフィックス・プレーンを選択させる。具体的には、再生制御部4135は操作画面上のメニューに選択可能なグラフィックス・プレーンの一覧を表示し、所望の項目を視聴者にリモコン105の操作で選択させる。ここで、各項目には対応するオフセット・シーケンスIDが割り当てられている。所定の時間内にいずれかの項目が選択されたとき、処理はステップS5003へ進む。一方、所定の時間内にはいずれの項目も選択されなかったとき、又は、リモコン105の操作によって処理の中断が視聴者によって指示されたとき、処理は終了する。
ステップS5003では、再生制御部4135はまず、選択されたオフセット・シーケンスIDを保存する。再生制御部4135は次に、操作画面を利用して、視聴者にオフセット値の増減をリモコン105の操作で選択させる。オフセット値の増加が選択されたとき、処理はステップS5004へ進み、減少が選択されたとき、処理はステップS5005へ進む。一方、所定の時間内には増減のいずれも選択されなかったとき、又は、リモコン105の操作によって処理の中断が視聴者によって指示されたとき、処理はステップS5002へ戻る。
ステップS5004、S5005のそれぞれでは、再生制御部4135はSPRM(28)を更新して、それの示すオフセット補正値4220−4223のうち、保存されたオフセット・シーケンスIDに対応するものに所定値を加え、又は減じる。その後、処理はステップS5003へ戻る。
ステップS5003−5005のループが繰り返される間、再生制御部4135は再生部4102にグラフィックス・プレーンの再生処理を継続させる。ここで、再生部4102は、操作画面とグラフィックス映像とのいずれか手前に表示される方を半透明にし、又は、操作画面をグラフィックス映像よりも手前に表示する。それにより、操作画面が表示されてもグラフィックス映像は見えるので、画面の輝度及び色合いの調整と同様に、視聴者にオフセット値の増減の効果を即座に確認させることができる。
(1−K)再生装置102は、ユーザに瞳孔間距離を予備のSPRM、例えばSPRM(32)に登録させてもよい。その場合、レフトビューとライトビューとのグラフィックス映像間での視差の最大値が、SPRM(32)に登録された値を超えないように、再生装置102はオフセット補正値を調整することができる。具体的には、再生装置102は、システム・ターゲット・デコーダから出力される各オフセット値について次の演算を行えばよい。再生装置102はまず、SPRM(32)の値と表示装置103の画面の幅(水平方向の長さ)との比を求め、更にその比と表示装置103の水平画素数との積を求める。この積は、オフセット制御によってグラフィックス・プレーンに与えてもよいオフセットの上限の2倍を表す。再生装置102は次に、各オフセット値の2倍をその積と比較する。いずれかのオフセット値の2倍がその積以上であるとき、再生装置102は、そのオフセット値を含むオフセット・シーケンスのIDを特定し、そのIDの示すグラフィックス・プレーンに対するオフセット補正値を減らす。そのときの減少量は、オフセット値の2倍と上記の積との差の半分以上に設定されればよい。こうして、レフトビューとライトビューとのグラフィックス映像間での視差の最大値が視聴者の瞳孔間距離を超えないので、その視聴者に映像酔いや眼精疲労が生じる危険性を低減させることができる。
(1−L)各クロッピング処理部4531−4534は、SPRM(27)の示す参照オフセットID4210−4213で特定されるオフセット・シーケンスをオフセット制御に利用する。逆に、各クロッピング処理部4531−4534は、所定のSPRMの示すオフセット・シーケンスIDで特定されるオフセット・シーケンスをオフセット制御には利用しないようにしてもよい。すなわち、そのSPRMは、オフセット制御においてマスクされるべきオフセット・シーケンスID(PG_ref_offset_id_mask、IG_ref_offset_id_mask、SV_ref_offset_id_mask、IM_ref_offset_id_mask)を示す。その場合、各クロッピング処理部4531−4534は、システム・ターゲット・デコーダ4125から受け取ったオフセット情報4507のうち、マスクされたオフセット・シーケンスID以外に対応するものの中から、最大のオフセット値を含むものを選択してもよい。それにより、副映像プレーン、PGプレーン、IGプレーン、及びイメージ・プレーンのそれぞれの表すグラフィックス映像の奥行きを容易に揃えることができる。その結果、各ストリーム・データの作成の自由度を向上させることができる。
その他に、各クロッピング処理部4531−4534は、オフセット情報4507の中に参照オフセットID4210−4213を検出できなかった場合には、そのオフセット情報4507の含むオフセット値の中で最大のものを代用してもよい。
(1−M)再生装置102がOSDとして独自のメニューを表示する際には、そのメニューの2D映像を表すグラフィックス・プレーン、すなわちOSDプレーンに対してオフセット制御を行ってもよい。その場合、再生装置102はオフセット情報として、そのメニューの表示時刻にシステム・ターゲット・デコーダ4125によって送出されたオフセット情報4507の中から、オフセット方向が画面よりも手前であって、かつオフセット値が最大であるものを選択してもよい。それにより、そのメニューを、字幕等、3D映像コンテンツから再生される3Dグラフィックス映像のいずれよりも手前に表示することができる。
その他に、再生装置102が、OSDプレーンに対するオフセット情報を予め備えていてもよい。そのオフセット情報には特定のオフセット・シーケンスID、例えばoffset_id=0が割り当てられる。更に、オフセット・シーケンスID=0のオフセット情報に対しては、次の条件(1)、(2)が規定されてもよい:(1)オフセット方向は、画面よりも手前を示す。(2)オフセット値は、オフセット・シーケンスID≠0のオフセット情報のうち、フレーム番号が等しく、かつオフセット方向が画面よりも手前であるものの中で最大のオフセット値に等しい。この規定により、再生装置102は、システム・ターゲット・デコーダ4125によって送出されたオフセット情報4507の中からはオフセット情報を選択しなくてもよいので、OSDプレーンに対するオフセット制御を簡単化できる。また、各クロッピング処理部4531−4534は、システム・ターゲット・デコーダ4125から受け取ったオフセット情報4507の中に、SPRM(27)の示す参照オフセットID4210−4213を検出できなかった場合に、オフセット・シーケンスID=0のオフセット情報を代用してもよい。
(1−N)図31に示されている3Dプレイリスト・ファイル222はサブパスを一つ含む。その他に、3Dプレイリスト・ファイルがサブパスを複数含んでもよい。例えば、一方のサブパスのサブパス・タイプが「3D・L/R」であり、他方のサブパスのサブパス・タイプが「3D・デプス」であってもよい。その3Dプレイリスト・ファイルに従って3D映像が再生される際にそれら二種類のサブパスが切り換えられることにより、再生装置102をL/Rモードとデプス・モードとの間で容易に切り換えることができる。特にその切り換え処理は、3Dプレイリスト・ファイルそのものを切り換える処理よりも速やかに実行可能である。
複数のディペンデントビュー・ビデオ・ストリームがそれぞれ、共通のベースビュー・ビデオ・ストリームとの組み合わせで同じ3D映像を表現してもよい。但し、それらのディペンデントビュー・ビデオ・ストリームの間では、同じシーンのレフトビューとライトビューとの間の視差が異なる。それらのディペンデントビュー・ビデオ・ストリームは、一つのサブTSに多重化されていても、異なるサブTSに分離されていてもよい。その場合、3Dプレイリスト・ファイルはサブパスを複数含む。各サブパスは異なるディペンデントビュー・ビデオ・ストリームを参照する。その3Dプレイリスト・ファイルに従って3D映像が再生される際にサブパスが切り換えられることにより、再生装置102に3D映像の奥行き感を容易に変化させることができる。特にその処理は、3Dプレイリスト・ファイルそのものを切り換える処理よりも速やかに実行可能である。
図51は、サブパスを複数含む3Dプレイリスト・ファイル5100のデータ構造、及び、それによって参照されるファイル2D5110と二つのファイルDEP5121、5122とのデータ構造を示す模式図である。ファイル2D5110はPID=0x1011のベースビュー・ビデオ・ストリームを含む。ファイルDEP#15121はPID=0x1012のディペンデントビュー・ビデオ・ストリーム#1を含む。ファイルDEP#25122はPID=0x1013のディペンデントビュー・ビデオ・ストリーム#2を含む。ディペンデントビュー・ビデオ・ストリーム#1、#2はそれぞれ、ファイル2D5110内のベースビュー・ビデオ・ストリームとの組み合わせで同じ3D映像を表現する。しかし、ディペンデントビュー・ビデオ・ストリーム#1、#2の間では、同じシーンのレフトビューとライトビューとの間の視差が異なる。更に、オフセット・シーケンスIDの等しいオフセット・シーケンスが、同じフレーム番号に対して異なるオフセット値を規定する。
一方、3Dプレイリスト・ファイル5100はメインパス5130と二つのサブパス5131、5132とを含む。メインパス5130のPI#1はファイル2D5110、特にベースビュー・ビデオ・ストリームを参照する。各サブパス5131、5132のSUB_PI#1はメインパス5130のPI#1と再生時間が共通である。サブパス#15131のSUB_PI#1はファイルDEP#15121、特にディペンデントビュー・ビデオ・ストリーム#1を参照する。サブパス#25132のSUB_PI#1はファイルDEP#25122、特にディペンデントビュー・ビデオ・ストリーム#2を参照する。
その3Dプレイリスト・ファイル5100を用いた3Dプレイリスト再生処理では、再生装置102は予め、ユーザ又はアプリケーション・プログラムに再生対象のサブパスを選択させる。その他に、再生装置102は再生対象のサブパスを、変形例(1−I)のように表示装置103の画面サイズに依って選択しても、変形例(1−K)のように視聴者の瞳孔間距離を利用して選択してもよい。そのようなサブパスの選択処理により、レフトビューとライトビューとのビデオ・プレーン間の視差を容易に変化させることができる。更に、ディペンデントビュー・ビデオ・ストリームの切り換えに伴ってオフセット情報が変化するので、ファイル2D5110の含むPGストリーム又はIGストリームから再生されるグラフィックス・プレーンのオフセットが変化する。それらの結果、3D映像の奥行き感を容易に変化させることができる。
再生装置102がBD−Live(登録商標)に対応している場合、その機能を利用して上記のファイルDEP#1、#2のいずれかをネットワーク上のサーバ装置からダウンロードしてもよい。ここで、「BD−Live」とは、再生装置がアプリケーション・プログラムに従って、インターネット等の外部ネットワークから新たなデジタル・コンテンツをダウンロードして、BD−ROMディスク上のコンテンツと共に再生する機能をいう。新たなデジタル・コンテンツは、特典映像及び字幕等、BD−ROMディスク上のコンテンツに対する追加コンテンツ、並びに、ブラウザ画面及びゲーム等のインタラクティブ・コンテンツを含む。BD−Liveを利用してディペンデントビュー・ビデオ・ストリームを更新すれば、BD−ROMディスク上に記録済みの3D映像の奥行き感を、その再生時に変更することが実現可能である。特にオフセット情報がディペンデントビュー・ビデオ・ストリームに格納されているので、新たなファイルDEPをダウンロードするだけで、ビデオ・プレーンとグラフィックス・プレーンとのいずれについても、レフトビューとライトビューとの間の視差を変更するのに必要な情報を取得することができる。
(1−O)3Dプレイリスト・ファイルに参照オフセットIDを設定する場合、PI間のシームレス接続に関して、以下の制約条件が規定されてもよい。
図52は、3Dプレイリスト・ファイル5200の含む参照オフセットIDを示す模式図である。図52を参照するに、メインパス5210のPI#2にはCC=5が設定されている。従って、PI#1とPI#2とのそれぞれの規定する再生区間の映像はシームレスに接続されなければならない。その場合、PI#1とPI#2とでは、参照オフセットIDの値の変更と、ディペンデントビュー・ビデオ・ストリームに含まれるオフセット・シーケンスの総数、すなわちエントリ数の変更とがいずれも禁止される。更に、オフセット補正値の変更とそのエントリ数の変更とがいずれも禁止されてもよい。
この制約条件は具体的には次のとおりである。PI#1の含むSTNテーブル#1では、PGストリーム1、PGストリーム2、テキスト字幕ストリーム、…、IGストリーム1にそれぞれ、参照オフセットID#1=1、参照オフセットID#2=3、参照オフセットID#3=2、…、参照オフセットID#M=6が割り当てられている。ここで、整数Mは、STNテーブル#1に登録されたディペンデントビュー・ビデオ・ストリームに含まれるオフセット・シーケンスの総数Xよりも小さい値でなければならない:M<X。更に、PI#2の含むSTNテーブル#2でも、PGストリーム1、PGストリーム2、テキスト字幕ストリーム、…、IGストリーム1にそれぞれ、参照オフセットID#1=1、参照オフセットID#2=3、参照オフセットID#3=2、…、参照オフセットID#M=6が割り当てられなければならない。また、STNテーブル#2に登録されたディペンデントビュー・ビデオ・ストリームに含まれるオフセット・シーケンスの総数は、STNテーブル#1に登録されたディペンデントビュー・ビデオ・ストリームに含まれるオフセット・シーケンスの総数Xと等しくなければならない。このように、CC=5等、シームレス接続が設定されたプレイアイテム間では、参照オフセットIDの値、及び、参照先のディペンデントビュー・ビデオ・ストリームに含まれるオフセット・シーケンスの総数がいずれも変更されてはならない。
この制約条件により、再生装置102はカレントPIをPI#1からPI#2に変更するときに、SPRM(27)の更新処理をスキップすることができる。従って、シームレス接続に関する処理の負担が軽減されるので、その処理の信頼性を更に向上させることができる。その結果、3D映像の画質を更に向上させることができる。
図52を更に参照するに、メインパス5210のPI#KにはCC=1が設定されている。ここで、整数Kは3以上である。従って、PI#Kの規定する再生区間の映像は、直前のPI#(K−1)の規定する再生区間の映像と必ずしもシームレスに接続されなくてもよい。その場合、PI#Kの含むSTNテーブル#Kでは、その前のPIの含むSTNテーブルの内容にかかわらず、参照オフセットIDとオフセット補正値とを自由に設定することができる。更に、再生装置102はPI#KをカレントPIに設定する時点で、SPRM(27)とSPRM(28)とをリセットすることができる。
(1−P)映像コンテンツには、例えばカラオケで歌詞の表示に利用されるもののように、静止画像に字幕等のグラフィックス映像が重ねて表示され、かつ、そのグラフィックス映像だけが頻繁に更新されるものがある。そのようなコンテンツが3D映像コンテンツとして形成されている場合、オフセット・メタ・データが配置されたVAUは更にシーケンス終端コードを含む。再生装置102は、そのようなVAUを復号したときは、そのオフセット・メタ・データから得られたオフセット情報を保持し、新たなオフセット・メタ・データを含むVAUが復号されるまで変更しない。
図53の(a)は、静止画像のみを表すディペンデントビュー・ビデオ・ストリーム5300のデータ構造を示す模式図である。ディペンデントビュー・ビデオ・ストリーム5300の各VAUは一つの静止画像を表す。その場合、各VAUの後端にはシーケンス終端コード5303、5304が配置されている。一方、各VAUの補足データ5301、5302にはオフセット・メタ・データ5311、5312が配置されている。VAU#1のオフセット・メタ・データ5311はオフセット・シーケンスID=0のオフセット・シーケンス[0]を含む。そのオフセット・シーケンス[0]はフレーム#1のオフセット情報のみを含む。同様に、VAU#2のオフセット・メタ・データ5312では、オフセット・シーケンス[0]はフレーム#1のオフセット情報のみを含む。
ここで、3Dプレイリスト・ファイルが次の事項(1)、(2)を規定している場合を想定する:(1)ディペンデントビュー・ビデオ・ストリーム5300の各VAUの表す静止画像を10秒間隔で切り換える。(2)各静止画像に、グラフィックス・ストリームの表すグラフィックス映像を重ねて表示する。図53の(b)は、そのような3Dプレイリスト・ファイルを従って再生される、レフトビュー・ビデオ・プレーンの列5321、ライトビュー・ビデオ・プレーンの列5322、及びグラフィックス・プレーンの列5330を示す模式図である。図53の(b)では、静止画像が切り換えられた時点の各ビデオ・プレーンが斜線で示されている。レフトビュー・ビデオ・プレーンの列5321では、最初のビデオ・プレーン5341の示す静止画像が最初の10秒の期間5361に繰り返し再生され、次のビデオ・プレーン5351の示す静止画像が次の10秒の期間5371に繰り返し再生される。ライトビュー・ビデオ・プレーンの列5322では、最初のビデオ・プレーン5342の示す静止画像が最初の10秒の期間5362に繰り返し再生され、次のビデオ・プレーン5352の示す静止画像が次の10秒の期間5372に繰り返し再生される。
再生装置102はディペンデントビュー・ビデオ・ストリーム5300のVAU#1を復号したとき、そのオフセット・メタ・データ5311からフレーム#1のオフセット情報(オフセット方向=画面よりも奥、オフセット値=10ピクセル)を読み出す。再生装置102は更に、そのシーケンス終端コード5303を検出する。そのとき、再生装置102はフレーム#1のオフセット情報を保持する。それにより、最初の10秒の期間5361では、グラフィックス・プレーンの列5330に与えられるオフセットが、保持されたオフセット情報で決まるものに一定に維持される。すなわち、グラフィックス映像の奥行きが一定に維持される。
VAU#1の復号から10秒間が経過したとき、再生装置102はVAU#2を復号する。再生装置102はそのとき、そのオフセット・メタ・データ5312からフレーム#1の新たなオフセット情報(オフセット方向=画面よりも手前、オフセット値=5ピクセル)を読み出す。再生装置102は更に、そのシーケンス終端コード5304を検出する。そのとき、再生装置102はフレーム#1のオフセット情報を保持する。それにより、次の10秒の期間5371では、グラフィックス・プレーンの列5330に与えられるオフセットが、新たに保持されたオフセット情報で決まるものに変更された後、一定に維持される。すなわち、グラフィックス映像が新たな奥行きに一定に維持される。
このように、VAUがシーケンス終端コードを含むときは、再生装置102に、既存のオフセット情報をそのまま保持させる。それにより、ビデオ・ストリームが静止画像のみから構成されている場合でも、再生装置102に、グラフィックス・プレーンに対するオフセット制御を確実に継続させることができる。
(1−Q)オフセット・メタ・データは、ディペンデントビュー・ビデオ・ストリームに代えて、ベースビュー・ビデオ・ストリームに格納されてもよい。その場合でも、オフセット・メタ・データは、好ましくは、各ビデオ・シーケンスの先頭に位置するVAU内の補足データに格納される。更に、3Dプレイリスト・ファイルは、ベースビュー・ビデオ・ストリームとディペンデントビュー・ビデオ・ストリームとのいずれがオフセット・メタ・データを含むかを示すフラグを備えていてもよい。それにより、各ストリーム・データの作成の自由度を向上させることができる。また、そのフラグに対しては、「CC=5、6によってシームレスに接続されるPI間では変更を禁止する」と規定されてもよい。
(1−R)オフセット・メタ・データは、各ビデオ・シーケンス(すなわち、各GOP)の先頭だけでなく、各VAU(すなわち、各フレーム又はフィールド)に格納されてもよい。その他に、コンテンツごとに、オフセット・メタ・データの間隔が任意の値に、例えば3フレーム以上に設定されてもよい。その場合、好ましくは、各ビデオ・シーケンスの先頭のVAUには必ずオフセット・メタ・データが格納され、かつ、その直前のオフセット・メタ・データとの間隔が3フレーム以上であるように制限される。それにより、再生装置にオフセット情報の変更処理を飛び込み再生処理と確実に並行させることができる。
(1−S)オフセット・メタ・データは、ビデオ・ストリームに格納されるのに代えて、独立なストリーム・データとしてメインTS又はサブTSに多重化されていてもよい。その場合、オフセット・メタ・データには固有のPIDが割り当てられる。システム・ターゲット・デコーダはそのPIDを利用して、オフセット・メタ・データを他のストリーム・データから分離する。その他に、オフセット・メタ・データはテキスト字幕ストリームと同様に、まず専用のバッファにプリロードされ、その後、再生処理を受けてもよい。その場合、オフセット・メタ・データは一定のフレーム間隔で格納される。それにより、オフセット・メタ・データについてはPTSが不要であるので、PESヘッダのデータ量が削減される。その結果、プリロード用のバッファの容量を節約することができる。
その他に、オフセット・メタ・データは、VAUの補足データに格納されるのに代えて、ビデオ・ウォータマークを利用してビデオ・ストリームに埋め込まれてもよい。更に、オフセット・メタ・データは、オーディオ・ウォータマークを利用してオーディオ・ストリームに埋め込まれてもよい。
(1−T)オフセット・メタ・データでは、各オフセット・シーケンスが、フレームごとにオフセット値を規定するのに代えて、表示時間ごとに、オフセット値の経時変化を表す関数、すなわち補完関数を規定してもよい。その場合、3D再生装置は表示時間ごとに補完関数を用いて、その表示時間に含まれる各フレームにおけるオフセット値を算定する。
図54の(a)は、補完関数を利用するオフセット・メタ・データ5400のデータ構造を示す模式図である。図54の(a)を参照するに、オフセット・メタ・データ5400は、オフセット・シーケンスID5410とオフセット・シーケンス5420との対応表を含む。オフセット・シーケンス5420は、起点オフセット値(offset_start)5421、終点オフセット値(offset_end)5422、オフセット関数ID(offset_func_id)5423、及びオフセット時間間隔(offset_duration)5424を含む。オフセット・メタ・データ5400が、ディペンデントビュー・ビデオ・ストリーム内の一つのビデオ・シーケンスに格納されているとき、起点オフセット値5421は、そのビデオ・シーケンスの表す最初のフレームにおけるオフセット値を示す。終点オフセット値5422は、次のビデオ・シーケンスの表す最初のフレームにおけるオフセット値を示す。オフセット関数ID5423は、補完関数の種類を規定する。その補完関数の種類は、そのビデオ・シーケンスの表示時間におけるオフセット値の変化の形状を表す。オフセット時間間隔5424は、そのビデオ・シーケンスの表示時間の長さを表す。
図54の(b)は、補完関数を構成する要素の種類を表すグラフである。図54の(b)を参照するに、x軸は表示時間を表し、y軸はオフセット値を表す。ここで、オフセット値の符号は、3Dグラフィックス映像の奥行きが画面よりも奥か手前かで決まる。補完関数の構成要素としては、直線形状LNR、凸形状CVX、及び凹形状CCVの三種類が用意されている。直線形状LNRは線形関数y=ax+bで定義され、凸形状CVXと凹形状CCVとは、2次曲線y=ax2+bx+c、3次曲線y=ax3+bx2+cx+d、又はガンマ曲線y=a(x+b)1/r+cで定義される。ここで、定数a、b、c、dはパラメータであり、各要素の両端A、Bのxy座標、すなわち、表示時刻とその時点でのオフセット値との対で決まる。一方、定数rは別に規定され、各オフセット・シーケンスに格納される。補完関数の種類は、それらの要素LNR、CVX、CCVの単体、又は組み合わせとして定義される。
図54の(c)は、図54の(a)に示されているオフセット・シーケンスID=0、1、2の各オフセット・シーケンスから3D再生装置によって算定されたオフセット値を示すグラフである。図54の(c)を参照するに、グラフの横軸は、各オフセット・シーケンスが格納されたビデオ・シーケンスの最初のフレームが表示された時刻からの経過時間を表す。黒丸A0、B0、A1、B1、A2、B2は、起点オフセット値5421又は終点オフセット値5422のいずれかとオフセット時間間隔5424とで規定される座標を示す。一対の黒丸A0+B0、A1+B1、A2+B2の間を接続する実線のグラフGR0、GR1、GR2は、オフセット関数ID5423で規定された補完関数の種類と両端の黒丸A0+B0、A1+B1、A2+B2の座標値とで決定された補完関数を表す。オフセット・シーケンスID=0のオフセット・シーケンスでは、オフセット関数ID5423が「直線」を示すので、両端の黒丸A0、B0の間が直線形状LNRのグラフ#0GR0で接続される。オフセット・シーケンスID=1のオフセット・シーケンスでは、オフセット関数ID5423が「曲線#1」を示すので、両端の黒丸A1、B1の間が単一の凸形状CVXのグラフ#1GR1で接続される。オフセット・シーケンスID=2のオフセット・シーケンスでは、オフセット関数ID5423が「曲線#2」を示すので、両端の黒丸A2、B2の間が、凸形状CVXと凹形状CCVとの組み合わせから成るグラフ#2GR2で接続される。白丸は、各グラフGR0、GR1、GR2の示す補完関数を利用して3D再生装置によって算定された、各フレームの表示時刻とそのフレームにおけるオフセット値との対を表す。これらのグラフGR0、GR1、GR2から容易に理解されるように、起点オフセット値5421、終点オフセット値5422、オフセット関数ID5423、及びオフセット時間間隔5424の組み合わせだけでも、多様なオフセット値の変化、すなわち3Dグラフィックス映像の奥行きの変化を表現することができる。従って、3Dグラフィックス映像の表現力を損なうことなく、オフセット・メタ・データ全体のサイズを削減することができる。
(1−U)図40に示されているテキスト字幕デコーダ4076では、テキスト・デコーダ(DEC)4077によって既に復号されたビットマップ・データを格納するビットマップ・バッファ4078内の領域がキャッシュとして利用されてもよい。それにより、テキスト字幕デコーダ4076によるPGプレーン・メモリ4092に対するレンダリング処理を高速化することができる。
図55の(a)、(b)、(c)はそれぞれ、一つのテキスト字幕ストリーム内で連続するテキスト・データ・エントリ#1、#2、#3の示す文字列5501、5502、5503と、各テキスト・データ・エントリが復号された際にビットマップ・バッファに格納されるキャッシュ・データ5511、5512、5513とを示す模式図である。
図55の(a)を参照するに、テキスト・データ・エントリ#1の示す最初の文字列5501は“Hello, Good Morning.”である。その文字数nCは18に等しい:nC=18。ここで、コンマとピリオドとはそれぞれ一つの文字である。しかし、最初の文字列5501は、小文字“l”、“n”を二つずつ含み、小文字“o”を三つ含み、その他の文字を一つずつ含む。その場合、DEC4077は、最初の“l”、“n”、“o”とその他の文字とをビットマップ・データに変換してビットマップ・バッファ4078へ書き込み、二番目以降の“l”、“n”、“o”に対するレンダリング処理をスキップする。その結果、DEC4077が実際にビットマップ・データへ変換する文字数、すなわちレンダリング数nRは13である:nR=13。一方、テキスト・データ・エントリ#1が復号された際のキャッシュ・データ#15511は、異なる文字を一つずつ表す。ビットマップ・バッファ4078はキャッシュ・データ#15511からPGプレーン・メモリ4092へ“l”と“n”とを二回ずつ転送し、“o”を三回転送し、残りの文字を一回ずつ転送する。すなわち、ビットマップ・バッファ4078からPGプレーン・メモリ4092への転送回数nTは最初の文字列5501の文字数nCに等しい:nT=nC=18。
図55の(b)を参照するに、テキスト・データ・エントリ#2の示す二番目の文字列5502は“Nice to meet you.”である。その文字数nCは14に等しい:nC=14。しかし、二番目の文字列5502のうち、小文字“i”、“e”、“o”、及びピリオドのビットマップ・データは既にキャッシュ・データ#15511に含まれる。更に、二番目の文字列5502は小文字“t”を二つ含む。その場合、DEC4077は、“i”、“e”、“o”、ピリオド、及び二番目の“t”に対するレンダリング処理をスキップし、最初の“t”とその他の文字とをビットマップ・データに変換してビットマップ・バッファ4078へ書き込む。その結果、レンダリング数nRは6である:nR=6。一方、テキスト・データ・エントリ#2が復号された際のキャッシュ・データ#25512には、キャッシュ・データ#15511の含まない文字のビットマップ・データのみが追加される。ビットマップ・バッファ4078はキャッシュ・データ#25512からPGプレーン・メモリ4092へ、“e”を三回転送し、“t”と“o”とを二回ずつ転送し、二番目の文字列5502内の他の文字を一回ずつ転送する。すなわち、ビットマップ・バッファ4078からPGプレーン・メモリ4092への転送回数nTは二番目の文字列5502の文字数nCに等しい:nT=nC=14。
図55の(c)を参照するに、テキスト・データ・エントリ#3の示す三番目の文字列5503は“Nice to meet you, too.”である。その文字数nCは18に等しい:nC=18。しかし、三番目の文字列5502に含まれる文字のビットマップ・データは全て、既にキャッシュ・データ#25512に含まれる。その場合、DEC4077は、三番目の文字列5503の全体に対するレンダリング処理をスキップする。すなわち、レンダリング数nRは0である:nR=0。一方、テキスト・データ・エントリ#3が復号された際のキャッシュ・データ#35513はキャッシュ・データ#25512と等しい。ビットマップ・バッファ4078はキャッシュ・データ#35513からPGプレーン・メモリ4092へ、“e”と“t”とを三回ずつ転送し、“o”を四回転送し、三番目の文字列5503に含まれる他の文字を一回ずつ転送する。すなわち、ビットマップ・バッファ4078からPGプレーン・メモリ4092への転送回数nTは三番目の文字列5503の文字数nCに等しい:nT=nC=18。
上記から明らかなとおり、ビットマップ・バッファ4078に格納されているビットマップ・データをキャッシュ・データとして利用することにより、テキスト文字のレンダリング処理に対するDEC4077の負担を軽減することができる。その結果、文字列をPGプレーンに描画するのに要する時間を短縮することができる。実際、一つのテキスト・データ・エントリがnC字(整数nCは1以上である)のテキスト文字列を表すとき、DEC4077がそのテキスト・データ・エントリからビットマップ・データを復号してPGプレーン・メモリ4092に書き込むのに要する時間Tprocessは、レンダリング数nR、レンダリング速度Rred、及びビットマップ・バッファ4078からPGプレーン・メモリ4092へのデータ転送速度Rtrを用いて次式で表される:Tprocess=nR/Rred+nC/Rtr。レンダリング数nRは明らかに文字数nC以下である(nR≦nC)ので、キャッシュの利用は時間Tprocessを短縮させる。例えば、レンダリング速度Rredとデータ転送速度Rtrとが共に20字/秒であるとき、20字(nC=20)をPGプレーン・メモリ4092に書き込むのに要する時間Tprocessは、nR/20+20/20=(nR/20+1)秒である。従って、レンダリング数nR=20のときは時間Tprocessが2秒であるのに対し、レンダリング数nR=10のときは時間Tprocessが1.5秒であり、レンダリング数nR=0のときは時間Tprocessが1秒である。このように、レンダリング数が小さいほど、すなわち、再利用されるキャッシュ・データの数が多いほど、時間Tprocessは短縮される。
ここで、図17に示されている各テキスト・データ・エントリ1710に、スタイル情報1711が直前のテキスト・データ・エントリのものから更新されているか否かを示すフラグが設置されていてもよい。スタイル情報1711が更新されている場合、そのテキスト・データ・エントリ1710の含むテキスト情報1712の示す文字のビットマップ・データがキャッシュに含まれている可能性は低い。従って、DEC4077は、そのフラグの値に依って、キャッシュ・データの中からビットマップ・データを探すべきか否かを判断することができる。
また、キャッシュではビットマップ・データがファースト−イン/ファースト−アウト方式(FIFO)で処理されてもよい。その他に、各テキスト・データ・エントリ1710内のテキスト情報1712に、キャッシュの優先度を示すデータが格納されてもよく、各テキスト・データ・エントリ1710に、そのテキスト情報1712の示す文字列のビットマップ・データをキャッシュに格納すべきか否かを示すフラグが設置されていてもよい。そのフラグを利用して、使用頻度の低い文字列のビットマップ・データがキャッシュに保存されないようにすることができる。
《実施形態2》
本発明の実施形態2によるBD−ROMディスクと再生装置とは、レフトビューとライトビューとの間の「ずれ」が視聴者に違和感を与える危険性を回避することができる。その点を除き、実施形態2によるBD−ROMディスクと再生装置とは実施形態1によるものと構成及び機能が等しい。従って、以下では、実施形態2によるBD−ROMディスクと再生装置とのうち、実施形態1によるものからの変更部分及び拡張部分について説明する。実施形態1によるBD−ROMディスクと再生装置と同様な部分については、上記の実施形態1についての説明を援用する。
<レフトビューとライトビューとの間の水平方向のずれ>
図56の(a)は、3D映像を撮影する一対のビデオカメラCML、CMRの水平画角HAL、HARを模式的に示す平面図である。図56の(a)を参照するに、一対のビデオカメラCML、CMRは水平方向に並べられている。左側のビデオカメラCMLはレフトビューを撮影し、右側のビデオカメラCMRはライトビューを撮影する。それらのビデオカメラCML、CMRの水平画角HAL、HARは、大きさは等しいが、位置は異なる。従って、左側のビデオカメラCMLの水平画角HALにのみ含まれる領域ALと、右側のビデオカメラCMRの水平画角HARにのみ含まれる領域ARとが生じる。両方の水平画角HAL、HARの共通部分に位置する被写体OBCはいずれのビデオカメラCML、CMRにも映る。しかし、左側のビデオカメラCMLの水平画角HALにのみ含まれる領域ALに位置する被写体OBLは左側のビデオカメラCMLにしか映らず、右側のビデオカメラCMRの水平画角HARにのみ含まれる領域ARに位置する被写体OBRは右側のビデオカメラCMRにしか映らない。
図56の(b)は、左側のビデオカメラCMLで撮影されたレフトビューLVを示す模式図であり、図56の(c)は、右側のビデオカメラCMRで撮影されたライトビューRVを示す模式図である。図56の(b)、(c)を参照するに、左側のビデオカメラCMLの水平画角HALにのみ含まれる領域ALはレフトビューLVに、その左端に沿って延びている帯状領域として含まれる。しかし、その帯状領域ALはライトビューRVには含まれない。一方、右側のビデオカメラCMRの水平画角HARにのみ含まれる領域ARはライトビューRVに、その右端に沿って延びている帯状領域として含まれる。しかし、その帯状領域ARはレフトビューLVには含まれない。従って、図56の(a)に示されている三つの被写体OBL、OBC、OBRのうち、右側の被写体OBRはレフトビューLVには含まれず、左側の被写体OBLはライトビューRVには含まれない。その結果、左側の被写体OBLは視聴者の左目にしか映らず、右側の被写体OBRは右目にしか映らない。その場合、レフトビューLVとライトビューRVとは視聴者に違和感を与える危険性がある。
実施形態2によるBD−ROMディスクでは、レフトビューLVとライトビューRVとの各フレームに含まれる上記の帯状領域AL、ARの幅WDHを示す情報がディペンデントビュー・ビデオ・ストリームに格納されている。その格納場所は、図13に示されているオフセット・メタ・データ1310の格納場所、すなわち、各ビデオ・シーケンスの先頭に位置するVAUの補足データ1301である。一方、実施形態2による再生装置では、図41に示されているシステム・ターゲット・デコーダ4125がディペンデントビュー・ビデオ・ストリームから、上記の帯状領域AL、ARの幅WDHを示す情報を読み出す。システム・ターゲット・デコーダ4125は更に、その情報を、図45に示されているオフセット情報4507と共にプレーン加算部4126に伝える。プレーン加算部4126では、視差映像生成部4510がその情報を利用して左映像プレーンと右映像プレーンとを加工し、上記の帯状領域AL、ARを背景色又は黒色で一様に塗りつぶす。すなわち、各帯状領域AL、ARに含まれる画素データを一様な背景色又は黒色のデータに書き換える。
図56の(d)、(e)はそれぞれ、視差映像生成部4510によって加工された左映像プレーンの表すレフトビューLVと、右映像プレーンの表すライトビューRVとを示す模式図である。図56の(d)を参照するに、左側のビデオカメラCMLの水平画角HALにのみ含まれる領域ALは、幅WDHの黒色帯BLで隠されている。一方、図56の(e)を参照するに、右側のビデオカメラCMRの水平画角HARにのみ含まれる領域ARは、幅WDHの黒色帯BRで隠されている。それらの結果、視聴者の各目には、レフトビューLVとライトビューRVとで共通する領域しか映らないので、その視聴者に違和感を与える危険性を回避することができる。
視差映像生成部4510は更に、図47に示されているクロッピング処理と同様にして、左映像プレーンと右映像プレーンとのそれぞれから、上記の帯状領域AL、ARのうち、外側の半分の領域に含まれる画素データを除去してもよい。その場合、視差映像生成部4510は、各帯状領域AL、ARの残り半分の領域を背景色又は黒色で一様に塗りつぶすと共に、その反対側の端部に、各帯状領域AL、ARの半分の幅の背景色又は黒色の帯状領域を付加する。それにより、視聴者のいずれの目にも、レフトビューLVとライトビューRVとで共通する領域の示す映像が画面の中央に映り、背景色又は黒色の帯が画面の両端に映る。その結果、その視聴者に違和感を与える危険性を回避することができる。
その他に、視差映像生成部4510は左映像プレーンと右映像プレーンとを次のように処理してもよい。視差映像生成部4510はまず、図47に示されているクロッピング処理と同様にして、各映像プレーンから上記の帯状領域AL、AR内の画素データを除去する。視差映像生成部4510は次に、スケーリング処理によって、残りの領域内の画素データから各映像プレーンを再構成する。それにより、残りの領域の示す映像がフレーム全体に拡大表示される。その結果、視聴者の各目には、レフトビューLVとライトビューRVとで共通する領域しか映らないので、その視聴者に違和感を与える危険性を回避することができる。
尚、レフトビューとライトビューとの間の水平方向のずれは、単一のカメラで撮影された平面視映像から立体視映像を生成する場合、すなわち2D/3D変換を行う場合にも起こり得る。しかし、この場合も上記と同様にして、ずれを隠すことができる。すなわち、左映像ピクチャ・データ(左映像プレーン)と右映像ピクチャ・データ(右映像プレーン)とのそれぞれから一部の画素データが削除され、削除された箇所に別の画素データが設定され、又は、残りの画素データがピクチャ(プレーン)全体に拡大されてもよい。
<レフトビューとライトビューとの間の垂直方向のずれ>
図57の(a)は、3D映像を撮影する一対のビデオカメラCML、CMRの垂直画角VAL、VARを模式的に示す平面図である。図57の(a)を参照するに、それらのビデオカメラCML、CMRの垂直画角VAL、VARは、大きさは等しいが、位置は異なる。従って、左側のビデオカメラCMLの垂直画角VALにのみ含まれる領域ATと、右側のビデオカメラCMRの垂直画角VARにのみ含まれる領域ABとが生じる。両方の垂直画角VAL、VARの共通部分に位置する被写体OBJはいずれのビデオカメラCML、CMRにも映る。しかし、左側のビデオカメラCMLの垂直画角VALにのみ含まれる領域ATに位置する被写体は左側のビデオカメラCMLにしか映らず、右側のビデオカメラCMRの垂直画角VARにのみ含まれる領域ABに位置する被写体は右側のビデオカメラCMRにしか映らない。
図57の(b)は、左側のビデオカメラCMLで撮影されたレフトビューLVと、右側のビデオカメラCMRで撮影されたライトビューRVとを示す模式図である。図57の(b)を参照するに、左側のビデオカメラCMLの垂直画角VALにのみ含まれる領域ATはレフトビューLVに、その上端に沿って延びている帯状領域として含まれる。しかし、その帯状領域ATはライトビューRVには含まれない。一方、右側のビデオカメラCMRの垂直画角VARにのみ含まれる領域ABはライトビューRVに、その下端に沿って延びている帯状領域として含まれる。しかし、その帯状領域ABはレフトビューLVには含まれない。尚、帯状領域AT、ABの位置はレフトビューLVとライトビューRVとで逆の場合もある。このように、レフトビューLVとライトビューRVとで上記の帯状領域AT、ABの有無が異なる場合、図57の(a)に示されている被写体OBJの垂直方向の位置はレフトビューLVとライトビューRVとで、帯状領域AT、ABの高さHGTだけずれる。その結果、視聴者の左目に映る被写体OBJと、右目に映る被写体OBJとでは垂直方向の位置が異なるので、その視聴者に違和感を与える危険性がある。
実施形態2によるBD−ROMディスクでは、レフトビューLVとライトビューRVとの各フレームに含まれる上記の帯状領域AT、ABの高さHGTを示す情報がディペンデントビュー・ビデオ・ストリームに格納されている。その格納場所は、図13に示されているオフセット・メタ・データ1310の格納場所、すなわち、各ビデオ・シーケンスの先頭に位置するVAUの補足データ1301である。一方、実施形態2による再生装置では、図41に示されているシステム・ターゲット・デコーダ4125がディペンデントビュー・ビデオ・ストリームから、上記の帯状領域AT、ABの高さHGTを示す情報を読み出す。システム・ターゲット・デコーダ4125は更に、その情報をオフセット情報4507と共にプレーン加算部4126に伝える。
プレーン加算部4126では、視差映像生成部4510が、上記の帯状領域AT、ABの高さHGTを用いて、左映像プレーンと右映像プレーンとを次の手順で加工する。視差映像生成部4510はまず、左映像プレーン内の画素データの位置を下向きに、高さHGTの半分HGT/2だけ移動させ、右映像プレーン内の画素データの位置を上向きに、高さHGTの半分HGT/2だけ移動させる。それにより、各映像プレーンのうち、上記の帯状領域AT、AB以外の領域が表す映像と画面とで垂直方向の中心が一致する。一方、左映像プレーンでは、上端から帯状領域ATの上半分が除去され、下端から高さHDT/2の帯状領域に空き領域が生じる。右映像プレーンでは、下端から帯状領域ABの下半分が除去され、上端から高さHDT/2の帯状領域に空き領域が生じる。視差映像生成部4510は次に、各帯状領域を背景色又は黒色で一様に塗りつぶす。すなわち、各帯状領域に含まれる画素データを一様な背景色又は黒色のデータに書き換える。
図57の(c)は、視差映像生成部4510によって加工された左映像プレーンの表すレフトビューLVと、右映像プレーンの表すライトビューRVとを示す模式図である。図57の(c)を参照するに、レフトビューLVとライトビューRVとでは垂直方向の中心位置が一致している。従って、図57の(a)に示されている被写体OBJの垂直方向の位置はレフトビューLVとライトビューRVとで等しい。一方、レフトビューLVの上端では、左側のビデオカメラCMLの垂直画角VALにのみ含まれる領域ATが高さHGT/2の黒色帯BTで隠され、ライトビューRVの下端では、右側のビデオカメラCMRの垂直画角VARにのみ含まれる領域ABが高さHGT/2の黒色帯BBで隠されている。更に、レフトビューLVの下端には高さHGT/2の黒色帯BBが付加され、ライトビューRVの上端には高さHGT/2の黒色帯BTが付加されている。それらの結果、視聴者の各目には、レフトビューLVとライトビューRVとで共通する領域しか映らず、かつ、各目に映る被写体の垂直方向の位置が一致する。こうして、その視聴者に違和感を与える危険性を回避することができる。
その他に、視差映像生成部4510は左映像プレーンと右映像プレーンとを次のように処理してもよい。プレーン加算部4126はまず、図47に示されているクロッピング処理と同様にして、各映像プレーンから上記の帯状領域AT、AB内の画素データを除去する。視差映像生成部4510は次に、スケーリング処理によって残りの領域内の画素データから各映像プレーンを再構成する。それにより、残りの領域の示す映像がフレーム全体に拡大表示されるので、視聴者の各目には、レフトビューLVとライトビューRVとで共通する領域しか映らない。しかも、各目に映る被写体の垂直方向の位置が一致する。こうして、その視聴者に違和感を与える危険性を回避することができる。
<レフトビューとライトビューとの間のグラフィックス映像のずれ>
1プレーン+オフセット・モードの再生装置が一つのグラフィックス・プレーンに大きなオフセットを与えて一対のグラフィックス・プレーンを生成する場合、その対の一方の左端部又は右端部に、他方の右端部又は左端部には含まれない領域が生じ得る。
図58の(a)は、グラフィックス・プレーンGPLの表すグラフィックス映像の一例を示す模式図である。図58の(a)を参照するに、そのグラフィックス・プレーンGPLは三種類のグラフィックス部品OB1、OB2、OB3を表す。特に左側のグラフィックス部品OB1の左端は、グラフィックス・プレーンGPLの左端から距離D1に位置し、右側のグラフィックス部品OB3の右端は、グラフィックス・プレーンGPLの右端から距離D3に位置する。図58の(b)、(c)はそれぞれ、グラフィックス・プレーンGPLに右向きと左向きとのオフセットを与えた場合を示す模式図である。図58の(b)を参照するに、図47と同様に、グラフィックス・プレーンGPLの右端からは、オフセット値に等しい幅OFSの帯状領域AR1が除去され、左端には幅OFSの透明な帯状領域AL1が付加されている。それにより、各グラフィックス部品OB1−OB3の水平方向の位置が元の位置から、オフセット値に等しい距離OFSだけ右に移動している。一方、図58の(b)を参照するに、図47と同様に、グラフィックス・プレーンGPLの左端からは幅OFSの帯状領域AL2が除去され、右端には幅OFSの透明な帯状領域AR2が付加されている。それにより、各グラフィックス部品OB1−OB3の水平方向の位置が元の位置から距離OFSだけ左に移動している。
図58の(b)、(c)を更に参照するに、オフセット値に等しい距離OFSは、左側のグラフィックス部品OB1の左端とグラフィックス・プレーンGPLの左端との間の距離D1よりも大きく、右側のグラフィックス部品OB3の右端とグラフィックス・プレーンGPLの右端との間の距離D3よりも大きい。従って、右向きのオフセットが与えられたグラフィックス・プレーンGP1では右側のグラフィックス部品OB3の右端の一部MP3が欠け、左向きのオフセットが与えられたグラフィックス・プレーンGP2では左側のグラフィックス部品OB1の左端の一部MP1が欠けている。しかし、左側のグラフィックス部品OB1の欠落部分MP1は、右向きのオフセットが与えられたグラフィックス・プレーンGP1には含まれ、右側のグラフィックス部品OB3の欠落部分MP3は、左向きのオフセットが与えられたグラフィックス・プレーンGP2には含まれる。その結果、それらの欠落部分MP1、MP3は視聴者の片目にしか映らないので、視聴者に違和感を与える危険性がある。
実施形態2によるBD−ROMディスクでは、図13に示されているように、オフセット・メタ・データ1310が、ディペンデントビュー・ビデオ・ストリーム内の各ビデオ・シーケンスの先頭に格納されている。一方、実施形態2による再生装置では、図41に示されているシステム・ターゲット・デコーダ4125がディペンデントビュー・ビデオ・ストリームからオフセット・メタ・データを読み出し、図45に示されているオフセット情報4507としてプレーン加算部4126に伝える。プレーン加算部4126では、図45に示されている各クロッピング処理部4531−4534がそのオフセット情報4507を用いて、グラフィックス・プレーンGPLに対するオフセット制御を行う。そのとき、各クロッピング処理部4531−4534は更に、グラフィックス・プレーンGPLの左端又は右端に沿って延びている、オフセット値に等しい幅の帯状領域を切り取る。すなわち、その帯状領域内の画素データを透明色のデータに書き換える。図58の(b)、(c)には切り取り対象の帯状領域AS1、AS2が示されている。右向きのオフセットが与えられたグラフィックス・プレーンGP1では、切り取り対象の帯状領域AS1が左側のグラフィックス部品OB1の欠落部分MP1を含む。左向きのオフセットが与えられたグラフィックス・プレーンGP2では、切り取り対象の帯状領域AS2が右側のグラフィックス部品OB3の欠落部分MP3を含む。
図58の(d)、(e)はそれぞれ、右向きと左向きとのオフセットが与えられたグラフィックス・プレーンGP1、GP2の表すグラフィックス映像を示す模式図である。図58の(d)、(e)を参照するに、それらのグラフィックス・プレーンGP1、GP2では、三種類のグラフィックス部品OB1−OB3の形状が一致している。その結果、視聴者の各目には共通のグラフィックス映像しか映らない。こうして、その視聴者に違和感を与える危険性を回避することができる。
その他に、BD−ROMディスク上のPGストリーム、IGストリーム、及びテキスト字幕ストリームから再生されるグラフィックス・プレーン、並びに、再生装置によって生成されるグラフィックス・プレーンに対して、グラフィックス部品の配置に関する次の条件が規定されてもよい。図59は、その条件を示す模式図である。図59を参照するに、グラフィックス・プレーンGPLには、左上角を原点(0,0)とするxy直交座標が設定されている。x座標とy座標とはそれぞれ、グラフィックス・プレーンGPLの水平座標と垂直座標である。ここで、グラフィックス・プレーンGPLの右下角の座標を(TWD,THG)とする。そのxy座標を用いて、上記の条件は次のように規定される:各フレームにおいて、グラフィックス部品OB1、OB2、OB3は、次の四点(OFS,0)、(TWD−OFS,0)、(TWD−OFS,THG)、(OFS,THG)を頂点とする矩形領域内に配置されなければならない。すなわち、グラフィックス・プレーンGPLの左端と右端とのそれぞれに沿って延びている幅OFSの帯状領域AL、ARではグラフィックス部品の配置が禁止される。図58の(b)、(c)から明らかなとおり、それらの帯状領域AL、ARはオフセット制御によって切り取られる。従って、それらの帯状領域AL、ARへのオフセット部品の配置が禁止されていれば、グラフィックス・プレーンGPLにオフセットが与えられた後でも、グラフィックス部品の形状に変化はない。その結果、視聴者の各目には共通のグラフィックス映像しか映らないので、その視聴者に違和感を与える危険性を回避することができる。尚、このようにグラフィックス部品の配置が制限されている場合でも、図58に示されているように、表示装置に出力されるグラフィックス・データからは、元のグラフィックス・データの一部が削除される。
実施形態2では、再生装置102が、図56−58のそれぞれに示されている一連の処理を行う。その他に、表示装置103がそれらの処理を行ってもよい。図60は、再生装置102又は表示装置103に含まれている、上記の処理を行う機能部のブロック図である。図60を参照するに、その機能部は、受信部1、ストリーム処理部2、信号処理部3、及び出力部4を備えている。受信部1は、BD−ROMディスク、半導体メモリ装置、外部ネットワーク、及び放送波等の各種媒体から多重化ストリーム・データを受信して、ストリーム処理部2に渡す。ストリーム処理部2は、その多重化ストリーム・データから、映像、音声、グラフィックス等、各種のデータを分離して信号処理部3に渡す。信号処理部3はそれらのデータを個別に復号して出力部4に渡す。出力部4は、復号された各データを所定の形式に変換して出力する。出力部4の出力は、HDMI方式等の映像信号/音声信号であっても、映像/音声そのものであってもよい。
《実施形態3》
本発明の実施形態3によるBD−ROMディスクは、PGストリームとIGストリームとについてもベースビューとディペンデントビューとの対を含む。一方、本発明の実施形態3による再生装置は2プレーン・モードを備える。「2プレーン・モード」はグラフィックス・プレーンの表示モードの一つである。サブTSがベースビューとディペンデントビューとのグラフィックス・ストリームを両方含むとき、2プレーン・モードの再生装置は各グラフィックス・ストリームからレフトビューとライトビューとのグラフィックス・プレーン・データを復号して交互に出力する。それにより、それらのグラフィックス・ストリームから3Dグラフィックス映像を再生することができる。それらの点を除き、実施形態3によるBD−ROMディスクと再生装置とは、実施形態1によるものと構成及び機能が等しい。従って、以下では、実施形態3によるBD−ROMディスクと再生装置とのうち、実施形態1によるものからの変更部分及び拡張部分について説明する。実施形態1によるBD−ROMディスクと再生装置と同様な部分については、上記の実施形態1についての説明を援用する。
<サブTSのデータ構造>
図61の(a)は、BD−ROMディスク101上の第1サブTSに多重化されたエレメンタリ・ストリームの一覧表である。第1サブTSはMPEG−2 TS形式の多重化ストリーム・データであり、ファイルDEPに含まれる。図61の(a)を参照するに、第1サブTSは、プライマリ・ビデオ・ストリーム6011、レフトビューPGストリーム6012A、6012B、ライトビューPGストリーム6013A、6013B、レフトビューIGストリーム6014、ライトビューIGストリーム6015、及びセカンダリ・ビデオ・ストリーム6016を含む。プライマリ・ビデオ・ストリーム6011はライトビュー・ビデオ・ストリームであり、図3の(a)に示されているメインTS内のプライマリ・ビデオ・ストリーム301が3D映像のレフトビューを表すとき、その3D映像のライトビューを表す。レフトビューとライトビューとのPGストリームの対6012A+6013A、6012B+6013Bは、字幕等のグラフィックス映像を3D映像として表示するときにそのレフトビューとライトビューとの対を表す。レフトビューとライトビューとのIGストリームの対6014、6015は、対話画面のグラフィックス映像を3D映像として表示するときにそのレフトビューとライトビューとの対を表す。セカンダリ・ビデオ・ストリーム6016はライトビュー・ビデオ・ストリームであり、メインTS内のセカンダリ・ビデオ・ストリーム306が3D映像のレフトビューを表すとき、その3D映像のライトビューを表す。
エレメンタリ・ストリーム6011−6016に対するPIDの割り当ては例えば次のとおりである。プライマリ・ビデオ・ストリーム6011には0x1012が割り当てられる。一つのサブTSに他のエレメンタリ・ストリームが種類別に最大32本まで多重化可能であるとき、レフトビューPGストリーム6012A、6012Bには0x1220から0x123Fまでのいずれかが割り当てられ、ライトビューPGストリーム6013A、6013Bには0x1240から0x125Fまでのいずれかが割り当てられる。レフトビューIGストリーム6014には0x1420から0x143Fまでのいずれかが割り当てられ、ライトビューIGストリーム6015には0x1440から0x145Fまでのいずれかが割り当てられる。セカンダリ・ビデオ・ストリーム6016には0x1B20から0x1B3Fまでのいずれかが割り当てられる。
図61の(b)は、BD−ROMディスク101上の第2サブTSに多重化されたエレメンタリ・ストリームの一覧表である。第2サブTSはMPEG−2 TS形式の多重化ストリーム・データであり、第1サブTSとは異なるファイルDEPに含まれる。その他に、第2サブTSは第1サブTSと同じファイルDEPに多重化されていてもよい。図61の(b)を参照するに、第2サブTSは、プライマリ・ビデオ・ストリーム6021、デプスマップPGストリーム6023A、6023B、デプスマップIGストリーム6024、及びセカンダリ・ビデオ・ストリーム6026を含む。プライマリ・ビデオ・ストリーム6021はデプスマップ・ストリームであり、メインTS内のプライマリ・ビデオ・ストリーム301との組み合わせで3D映像を表す。デプスマップPGストリーム6023A、6023Bは、メインTS内のPGストリーム323A、323Bの表す2D映像が仮想的な2D画面への3D映像の射影として利用されるとき、その3D映像のデプスマップを表すPGストリームとして利用される。デプスマップIGストリーム6024は、メインTS内のIGストリーム304の表す2D映像が仮想的な2D画面への3D映像の射影として利用されるとき、その3D映像のデプスマップを表すIGストリームとして利用される。セカンダリ・ビデオ・ストリーム6026はデプスマップ・ストリームであり、メインTS内のセカンダリ・ビデオ・ストリーム306との組み合わせで3D映像を表す。
エレメンタリ・ストリーム6021−6026に対するPIDの割り当ては例えば次のとおりである。プライマリ・ビデオ・ストリーム6021には0x1013が割り当てられる。一つのサブTSに他のエレメンタリ・ストリームが種類別に最大32本まで多重化可能であるとき、デプスマップPGストリーム6023A、6023Bには0x1260から0x127Fまでのいずれかが割り当てられる。デプスマップIGストリーム6024には0x1460から0x147Fまでのいずれかが割り当てられる。セカンダリ・ビデオ・ストリーム6026には0x1B40から0x1B5Fまでのいずれかが割り当てられる。
<STNテーブルSSのデータ構造>
図62は、STNテーブルSS3130のデータ構造を示す模式図である。図62を参照するに、STNテーブルSS3130内の各ストリーム登録情報列3301、3302、3303、…は、ポップアップ期間のオフセット3311とディペンデントビュー・ビデオ・ストリームのストリーム登録情報列3312との他に、PGストリームのストリーム登録情報列6113とIGストリームのストリーム登録情報列6114とを含む。
PGストリームのストリーム登録情報列6113は、サブTSから再生対象として選択可能なPGストリームを示すストリーム登録情報を含む。IGストリームのストリーム登録情報列6114は、サブTSから再生対象として選択可能なIGストリームを示すストリーム登録情報を含む。これらのストリーム登録情報列6113、6114はそれぞれ、対応するPI内のSTNテーブルに含まれるストリーム登録情報列のうち、PGストリーム及びIGストリームを示すものと組み合わされて利用される。3D再生モードの再生装置102は、STNテーブル内のいずれかのストリーム登録情報を読み出すとき、そのストリーム登録情報に組み合わされたSTNテーブルSS内のストリーム登録情報列も自動的に読み出す。それにより、再生装置102は、2D再生モードを単に3D再生モードへ切り換えるとき、設定済みのSTN、及び言語等のストリーム属性を同一に維持できる。
図62を更に参照するに、PGストリームのストリーム登録情報列6113は一般に複数のストリーム登録情報6131を含む。それらは、対応するPI内に含まれる、PGストリームのストリーム登録情報と同数である。IGストリームのストリーム登録情報列6114も同様なストリーム登録情報を含む。それらは、対応するPI内に含まれる、IGストリームのストリーム登録情報と同数である。
各ストリーム登録情報6131は、STN6141、立体視フラグ(is_SS_PG)6142、ベースビュー・ストリーム・エントリ(stream_entry_for_base_view)6143、ディペンデントビュー・ストリーム・エントリ(stream_entry_for_depentdent_view)6144、及びストリーム属性情報6145を含む。STN6141はストリーム登録情報6131に個別に割り当てられた通し番号であり、対応するPI内の組み合わせ対象のストリーム登録情報のSTNと等しい。立体視フラグ6142は、BD−ROMディスク101にベースビューとディペンデントビューとのPGストリームが両方含まれているか否かを示す。立体視フラグ6142がオンであるとき、サブTSに両方のPGストリームが含まれている。従って、ベースビュー・ストリーム・エントリ6143、ディペンデントビュー・ストリーム・エントリ6144、及びストリーム属性情報6145のいずれのフィールドも再生装置によって読み出される。立体視フラグ6142がオフであるとき、それらのフィールド6143−6145はいずれも再生装置に無視される。ベースビュー・ストリーム・エントリ6143とディペンデントビュー・ストリーム・エントリ6144とはいずれも、サブパスID参照情報6121、ストリーム・ファイル参照情報6122、及びPID6123を含む。サブパスID参照情報6121は、ベースビューとディペンデントビューとの各PGストリームの再生経路を規定するサブパスのサブパスIDを示す。ストリーム・ファイル参照情報6122は、各PGストリームが格納されたファイルDEPを識別するための情報である。PID6123は各PGストリームのPIDである。ストリーム属性情報6145は各PGストリームの属性、例えば言語の種類を含む。
<システム・ターゲット・デコーダ>
図63は、システム・ターゲット・デコーダ6225の機能ブロック図である。図63を参照するに、PGデコーダ6201は、図41に示されているシステム・ターゲット・デコーダ4125内のものとは異なり、2プレーン・モードに対応可能である。具体的には、PGデコーダ6201はベースビューPGデコーダ6211とディペンデントビューPGデコーダ6212とを含む。ベースビューPGデコーダ6211は、図3の(a)に示されているメインTS内のPGストリーム303A、303Bに加え、図61の(a)に示されている第1サブTS内のレフトビューPGストリーム6012A、6012Bをプレーン・データに復号する。ディペンデントビューPGデコーダ6212は、図61の(a)に示されている第1サブTS内のライトビューPGストリーム6013A、6013B、及び図61の(b)に示されている第2サブTS内のデプスマップPGストリーム6023A、6023Bをプレーン・データに復号する。副映像デコーダとIGデコーダとのいずれも、同様な一対のデコーダを含む。システム・ターゲット・デコーダ6225は更に、一対のPGプレーン・メモリ6221、6222を含む。ベースビューPGデコーダ6211はプレーン・データを左PGプレーン・メモリ6221に書き込み、ディペンデントビューPGデコーダ6212はプレーン・データを右PGプレーン・メモリ6222に書き込む。IGプレーン・メモリとイメージ・プレーン・メモリとのいずれも同様な構成である。システム・ターゲット・デコーダ6225は更に、グラフィックス・プレーン・メモリからのプレーン・データの出力を、2プレーン・モード、1プレーン+オフセット・モード、及び1プレーン+ゼロ・オフセット・モードのそれぞれに対応させる。特に再生制御部4135から2プレーン・モードが指示されたとき、システム・ターゲット・デコーダ6225は一対のPGプレーン・メモリ6221、6222からプレーン加算部6226へプレーン・データを交互に送出する。
<プレーン加算部>
図64は2プレーン・モードのプレーン加算部6226の部分的な機能ブロック図である。図64を参照するに、プレーン加算部6226は、図45に示されているもの4126と同様、視差映像生成部4510、スイッチ4520、及び加算部4541、4542を含む。プレーン加算部6226は更に、PGプレーン・データ6304、6305の入力部に第2視差映像生成部6310と第2スイッチ6320とを含む。同様な構成は、副映像プレーン・データ、IGプレーン・データ、及びイメージ・プレーン・データの各入力部にも含まれる。
第2視差映像生成部6310は、システム・ターゲット・デコーダ6225から左PGプレーン・データ6304と右PGプレーン・データ6305とを受信する。L/Rモードの再生装置102では、左PGプレーン・データ6304はレフトビューPGプレーンを表し、右PGプレーン・データ6305はライトビューPGプレーンを表す。そのとき、第2視差映像生成部6310は各プレーン・データ6304、6305をそのまま第2スイッチ6320へ送出する。一方、デプス・モードの再生装置102では、左PGプレーン・データ6304は2Dグラフィックス映像のPGプレーンを表し、右PGプレーン・データ6305はその2Dグラフィックス映像に対するデプスマップを表す。そのとき、第2視差映像生成部6310は、まずそのデプスマップからその2Dグラフィックス映像の各部の両眼視差を計算する。第2視差映像生成部6310は次に、左PGプレーン・データ6304を加工して、PGプレーンにおけるその2Dグラフィックス映像の各部の表示位置を、計算された両眼視差に応じて左右に移動させる。それにより、レフトビューとライトビューとを表すPGプレーンの対が生成される。第2視差映像生成部6310は更に、そのPGプレーンの対を第2スイッチ6320へ送出する。
第2スイッチ6320は、PTSの等しい左PGプレーン・データ6304と右PGプレーン・データ6305とをその順で第2加算部4542へ送出する。第2加算部4542は、第2スイッチ6320からPGプレーン・データを受信し、第1加算部4541からのプレーン・データに重畳して第3加算部4543に渡す。その結果、左映像プレーン・データ6301にはレフトビューPGプレーンが重畳され、右映像プレーン・データ6302にはライトビューPGプレーンが重畳される。
<2D映像と3Dグラフィックス映像との合成>
実施形態3による再生装置は上記の構成を利用して2プレーン・モードを実現する。それにより、その再生装置は、3D映像に3Dグラフィックス映像を重ねて表示することができる。実施形態3によるBD−ROMディスクと再生装置とは更に、以下に述べるように、2D映像に3Dグラフィックス映像を重ねて表示することもできる。
図65は、ベースビュー・ビデオ・ストリーム6401とライトビュー・ビデオ・ストリーム6402とのピクチャを表示時間順に示す模式図である。図65を参照するに、ベースビュー・ビデオ・ストリーム6401はベースビュー・ピクチャ6410、6411、6412、…、6419を含み、ライトビュー・ビデオ・ストリーム6402はライトビュー・ピクチャ6420、6421、6422、…、6429を含む。それらのピクチャ6410−6419、6420−6429は三つの再生区間6431、6432、6433を構成している。
最初の再生区間6431と三番目の再生区間6433とは「3D再生区間」であり、3D映像を表す。各3D再生区間6431、6433内のピクチャ群は、図7に示されているピクチャ群と同様に、MVC等の多視点符号化方式で圧縮されている。すなわち、各ベースビュー・ピクチャ6410−6413、6417−6419は、同じ3D再生区間内の他のベースビュー・ピクチャを参照ピクチャとして利用して圧縮されている。一方、各ライトビュー・ピクチャ6420−6423、6427−6429は、同じ3D再生区間内の他のライトビュー・ピクチャに加えて、同じ3D・VAUに属するベースビュー・ピクチャ6410−6413、6417−6419を参照ピクチャとして利用して圧縮されている。
二番目の再生区間6432は「疑似2D再生区間」であり、ライトビュー・ピクチャ群を含むにもかかわらず、2D映像を表す。疑似2D再生区間6432内のピクチャ群は、MVC等の多視点符号化方式で圧縮されている。特に各ベースビュー・ピクチャ6414−6416は、同じ疑似2D再生区間内の他のベースビュー・ピクチャを参照ピクチャとして利用して圧縮されている。しかし、各ライトビュー・ピクチャ6424−6426は、同じ3D・VAUに属するベースビュー・ピクチャ6414−6416がそれ自身を参照ピクチャとして利用して圧縮されたものである。それにより、各ライトビュー・ピクチャは、同じ3D・VAUに属するベースビュー・ピクチャと同じ2D映像を表す。すなわち、レフトビューとライトビューとの間に視差はない。従って、疑似2D再生区間では3D再生モードでも2D映像しか再生されない。更に、圧縮後のライトビュー・ピクチャ群のデータ量は極めて小さい。
図66は、疑似2D再生区間内のライトビュー・ピクチャ群をMVCに従って符号化する際のスライス・ヘッダとスライス・データとの書式(Syntax)を示す表である。ここで、Pスライスは、図65に示されている第4ライトビュー・ピクチャ“P4”6423と第7ライトビュー・ピクチャ“P7”6426とに含まれる。一方、Bスライスは、図65に示されている第5ライトビュー・ピクチャ“B5”6424と第6ライトビュー・ピクチャ“B6”6425とに含まれる。図66を参照するに、スライス・ヘッダに記載された“ref_pic_list_modification_flag_l0(又はl1)=1”、“modification_of_pic_nums_idc=5”、“abs_diff_view_idx_minus1=0”、“ref_pic_list_modification_flag_l0(又はl1)=3”の四行は一組で次のことを規定する:そのスライスの参照ピクチャを示すインデックスが、同じ3D・VAUに属するベースビュー・ピクチャのインデックス=0である。Pスライスの参照ピクチャは一枚であるので、そのスライス・ヘッダは上記の四行を一組含む。Bスライスの参照ピクチャは二枚であるので、そのスライス・ヘッダは上記の四行を二組含む。一方、スライス・データに記載された二行は、PスライスとBスライスとのいずれでも次の二つの事項(i)、(ii)を規定する:(i)スライス内のマクロブロックをCAVLC(可変長符号化)で符号化する際には、パラメータ“mb_skip_run”の値をそのスライス内のマクロブロックの総数に等しく設定する。(ii)スライス内のマクロブロックをCABAC(算術符号化)で符号化する際には、フラグ“mb_skip_flag”をそのスライス内のマクロブロックの総数に等しい回数だけ繰り返し設定する。この規定は、スライス内の全てのマクロブロックのタイプが「スキップ」であることを意味する。すなわち、圧縮後のライトビュー・ピクチャは実質的にスライス・データを含まないこと、及び、その復号の際には参照ピクチャがそのライトビュー・ピクチャとしてコピーされればよいことを示す。このように、MVCでは、疑似2D再生区間内の各ベースビュー・ピクチャのコピーが、同じ3D・VAUに属するライトビュー・ピクチャとして符号化されていることを、極めて小さいデータ量で表現することができる。
図67は、3D再生区間と疑似2D再生区間との両方を構成するファイル2D6610とファイルDEP6620との対、及び、各再生区間を規定する二種類の3Dプレイリスト・ファイル6630、6640を示す模式図である。
ファイル2D6610の含むプライマリ・ビデオ・ストリーム(PID=0x1011)は、3D再生区間と疑似2D再生区間との両方に共通するベースビュー・ビデオ・ストリームである。ファイルDEP6620は二種類のプライマリ・ビデオ・ストリーム(PID=0x1012、0x1013)を含む。その一方(PID=0x1012)は、ベースビュー・ビデオ・ストリームと共に3D再生区間を構成するディペンデントビュー・ビデオ・ストリームである。他方(PID=0x1013)は、ベースビュー・ビデオ・ストリームと共に疑似2D再生区間を構成するディペンデントビュー・ビデオ・ストリームである。すなわち、PID=0x1013のプライマリ・ビデオ・ストリームは、ベースビュー・ビデオ・ストリーム内の各ピクチャを参照ピクチャとしてそれ自身を圧縮したものである。ファイルDEP6620は更に、レフトビューPGストリーム(PID=0x1220)とライトビューPGストリーム(PID=0x1240)との対を含む。各PGストリームは3Dグラフィックス映像のレフトビューとライトビューとを表す。
3Dプレイリスト・ファイル#16630の規定する再生経路は、3D再生区間から成る。具体的には、メインパス6631では、PI#1がファイル2D6610内のベースビュー・ビデオ・ストリーム(PID=0x1011)の再生区間を規定する。一方、サブパス・タイプ6633=3D・L/Rのサブパス6632では、SUB_PI#1がファイルDEP6620内のディペンデントビュー・ビデオ・ストリーム(PID=0x1012)とPGストリームの対(PID=0x1220、0x1240)との各再生区間を規定する。ここで、SUB_PI#1はPI#1と同じ再生開始時刻、及び同じ再生終了時刻を規定する。
3Dプレイリスト・ファイル#26640の規定する再生経路は、疑似2D再生区間から成る。具体的には、メインパス6641では、PI#1がファイル2D6610内のベースビュー・ビデオ・ストリーム(PID=0x1011)の再生区間を規定する。一方、サブパス・タイプ6643=3D・L/Rのサブパス6642では、SUB_PI#1がファイルDEP6620内のディペンデントビュー・ビデオ・ストリーム(PID=0x1013)とPGストリームの対(PID=0x1220、0x1240)との各再生区間を規定する。ここで、SUB_PI#1はPI#1と同じ再生開始時刻、及び同じ再生終了時刻を規定する。
3D再生モードの再生装置102が3Dプレイリスト・ファイル#16630を用いて3Dプレイリスト再生処理を行うとき、ベースビュー・ビデオ・ストリームとディペンデントビュー・ビデオ・ストリーム(PID=0x1012)との組み合わせから再生される3D映像に、PGストリームの対(PID=0x1220、0x1240)から再生される3Dグラフィックス映像が重ねて表示される。一方、3D再生モードの再生装置102が3Dプレイリスト・ファイル#26640を用いて3Dプレイリスト再生処理を行うとき、ベースビュー・ビデオ・ストリームとディペンデントビュー・ビデオ・ストリーム(PID=0x1013)との組み合わせから再生される2D映像に、PGストリームの対(PID=0x1220、0x1240)から再生される3Dグラフィックス映像が重ねて表示される。こうして、再生装置102に3Dプレイリスト・ファイルを切り換えさせることにより、3Dグラフィックス映像が合成されるべき3D映像を2D映像に変更させることができる。
図68は、3D再生区間を構成するファイル2D6710とファイルDEP#16721との対、そのファイル2D6710との組み合わせで疑似2D再生区間を構成するファイルDEP#26722、及び、各再生区間を規定する3Dプレイリスト・ファイル6730を示す模式図である。
ファイル2D6710の含むプライマリ・ビデオ・ストリーム(PID=0x1011)は、3D再生区間と疑似2D再生区間との両方に共通するベースビュー・ビデオ・ストリームである。ファイルDEP#16721の含むプライマリ・ビデオ・ストリーム(PID=0x1012)は、ベースビュー・ビデオ・ストリームと共に3D再生区間を構成するディペンデントビュー・ビデオ・ストリームである。ファイルDEP#26722の含むプライマリ・ビデオ・ストリーム(PID=0x1013)は、ベースビュー・ビデオ・ストリームと共に疑似2D再生区間を構成するディペンデントビュー・ビデオ・ストリームである。すなわち、PID=0x1013のプライマリ・ビデオ・ストリームは、ベースビュー・ビデオ・ストリーム内の各ピクチャを参照ピクチャとしてそれ自身を圧縮したものである。各ファイルDEP6721、6722は更に、レフトビューPGストリーム(PID=0x1220)とライトビューPGストリーム(PID=0x1240)との対を含む。各PGストリームは3Dグラフィックス映像のレフトビューとライトビューとを表す。
3Dプレイリスト・ファイル6730の規定する再生経路は、3D再生区間と疑似2D再生区間とを両方含む。具体的には、メインパス6731では、PI#1、PI#2、及びPI#3が、ファイル2D6710内のベースビュー・ビデオ・ストリーム(PID=0x1011)の異なる再生区間を規定する。一方、サブパス・タイプ6733=3D・L/Rのサブパス6732では、SUB_PI#1とSUB_PI#3とが、ファイルDEP#16721内のディペンデントビュー・ビデオ・ストリーム(PID=0x1012)とPGストリームの対(PID=0x1220、0x1240)との各再生区間を規定する。更に、SUB_PI#2が、ファイルDEP#36722内のディペンデントビュー・ビデオ・ストリーム(PID=0x1013)とPGストリームの対(PID=0x1220、0x1240)との各再生区間を規定する。ここで、SUB_PI#NはPI#Nと同じ再生開始時刻、及び同じ再生終了時刻を規定する(N=1、2、3)。従って、PI#1とSUB_PI#1との対、及び、PI#3とSUB_PI#3との対は3D再生区間を規定し、PI#2とSUB_PI#2とは疑似2D再生区間を規定する。更に、PI#2とPI#3とではCCの値が“5”に設定され、かつ、SUB_PI#2とSUB_PI#3とではSPCCの値が“5”に設定されている。すなわち、それらの再生区間をシームレスに接続すべきことが規定されている。
図69は、3D再生モードの再生装置102が3Dプレイリスト・ファイル6730に従って再生するビデオ・プレーンの列6810とPGプレーンの列6820とを示す模式図である。図69を参照するに、各列6810、6820は表示時間順に、三つのグループ6811−6813、6821−6823を含む。
第1グループ6811、6821は、PI#1とSUB_PI#1との対で規定される最初の3D再生区間P3D1を構成する。すなわち、ビデオ・プレーンの第1グループ6811は、ベースビュー・ビデオ・ストリームとディペンデントビュー・ビデオ・ストリーム(PID=0x1012)との組み合わせから再生されるレフトビューとライトビューとのビデオ・プレーンL、Rを交互に含む。一方、PGプレーンの第1グループ6821は、PGストリームの対(PID=0x1220、0x1240)から再生されるレフトビューとライトビューとのPGプレーンL、Rを交互に含む。従って、最初の3D再生区間P3D1では、ビデオ・プレーンの第1グループ6811の表す3D映像に、PGプレーンの第1グループ6821の表す3Dグラフィックス映像が重ねて表示される。
第2グループ6811、6821は、PI#2とSUB_PI#3との対で規定される疑似2D再生区間PPS2Dを構成する。すなわち、ビデオ・プレーンの第2グループ6812は、ベースビュー・ビデオ・ストリームから再生される2D映像のビデオ・プレーン2Dと、ディペンデントビュー・ビデオ・ストリーム(PID=0x1013)から再生されるそのビデオ・プレーン2Dのコピーとを交互に含む。一方、PGプレーンの第2グループ6822は、PGストリームの対(PID=0x1220、0x1240)から再生されるレフトビューとライトビューとのPGプレーンL、Rを交互に含む。従って、疑似2D再生区間PPS2Dでは、ビデオ・プレーンの第2グループ6812の表す2D映像に、PGプレーンの第2グループ6822の表す3Dグラフィックス映像が重ねて表示される。
第3グループ6813、6823は、PI#3とSUB_PI#3との対で規定される二番目の3D再生区間P3D2を構成する。すなわち、ビデオ・プレーンの第3グループ6813は、ベースビュー・ビデオ・ストリームとディペンデントビュー・ビデオ・ストリーム(PID=0x1012)との組み合わせから再生されるレフトビューとライトビューとのビデオ・プレーンL、Rを交互に含む。一方、PGプレーンの第3グループ6823は、PGストリームの対(PID=0x1220、0x1240)から再生されるレフトビューとライトビューとのPGプレーンL、Rを交互に含む。従って、二番目の3D再生区間P3D2では、ビデオ・プレーンの第3グループ6813の表す3D映像に、PGプレーンの第3グループ6823の表す3Dグラフィックス映像が重ねて表示される。
上記のように、再生装置102に一連の3Dプレイリスト再生処理の中で、再生区間の切り換えと共に、3D映像と3Dグラフィックス映像との合成映像を、2D映像と3Dグラフィックス映像との合成映像に変更させることができる。ここで、3D再生区間と疑似2D再生区間とではビデオ・ストリームのデータ構造自体は変わらないので、再生装置102は、いずれの再生区間でも、3D再生モードでの通常の動作を継続すればよい。特に、図68に示されているように、CC=5、SPCC=5が設定されていれば、3D再生区間と疑似2D再生区間との間でも映像をシームレスに接続させることができる。
<変形例>
(3−A)図68に示されているように、各PIが視点符号化フラグを含んでもよい。「視点符号化フラグ」は、そのPIの規定する再生区間が3D再生区間と疑似2D再生区間とのいずれであるかを示す。例えば、視点符号化フラグの値が“0”である場合は、その再生区間が3D再生区間であることを示し、“1”である場合は、疑似2D再生区間であることを示す。図67に示されているような例では、各3Dプレイリスト・ファイルが視点符号化フラグを含んでもよい。更に、視点符号化フラグは、MVC等によるビデオ・ストリーム、又は、多重化ストリーム・データを成すTSの中に補助情報として格納されてもよい。例えば、MVCによるビデオ・ストリームでは、NALユニットのヘッダ、SEI、又は、図8に示されているディペンデントビュー・ビデオ・ストリーム内のVAU832のサブAU識別コード832Aが格納場所として利用可能である。その他に、視点符号化フラグを格納するための新たなNALユニットが定義されてもよい。一方、TSでは、TSパケットのヘッダ又はディスクリプタ、特にMVCによる、ビットレート等の属性情報を含むディスクリプタが、視点符号化フラグの格納場所として利用可能である。
(3−B)3Dプレイリスト・ファイルの規定する再生経路は、3D再生区間と疑似2D再生区間とに加え、通常の2D映像の再生区間(以下、通常2D再生区間という。)を含んでもよい。通常2D再生区間にはサブTS、特にディペンデントビュー・ビデオ・ストリームが含まれないので、再生装置はメインTSのみから2D再生モードで2D映像を再生する。その場合、3D映像コンテンツには、2D映像の再生区間が疑似2D再生区間と通常2D再生区間とのいずれであるかを示す情報が格納されてもよい。例えば、PIに含まれる視点符号化フラグの値が“2”である場合は、そのPIの規定する再生区間が通常2D再生区間であることを示す。
(3−C)「光ディスク、メモリカード、若しくはHDD等の記憶装置に記録された映像コンテンツ、放送される番組、又は、特定のフォルダ等に格納されたAVストリーム・ファイルの中に、視点符号化フラグの異なる再生区間が存在するか否か」を示す情報が設定されてもよい。特に番組については、その情報を、番組情報を格納するディスクリプタ、又は番組を構成するビデオ・ストリームの属性を示すディスクリプタに格納することができる。例えばその情報は、プレイリスト・ファイルの規定する再生経路の次のような属性を示す:(1)その再生経路は3D再生区間のみを含む、(2)その再生経路は3D再生区間を少なくとも一つ含む、(3)その再生経路には疑似2D再生区間と通常2D再生区間とが混在する。再生装置は、その情報の示す再生経路の属性に合わせて動作モードを選択することにより、その選択処理を簡単化できる。
(3−D)「再生区間の映像が3D映像と2D映像とのいずれであるか」を示す情報が3D映像コンテンツに設定されている場合、その情報が視点符号化フラグの代わりに利用されてもよい。具体的には、「再生区間の映像が3D映像である」ことをその情報が示す場合、その再生区間は3D再生区間である。一方、「再生区間の映像が2D映像である」ことをその情報が示す場合、その再生区間は、疑似2D再生区間と通常2D再生区間とのいずれかである。更に、「その再生区間が疑似2D再生区間と通常2D再生区間とのいずれであるか」を判別するには、例えばビデオ・ストリーム又は多重化ストリーム・データに格納された「映像の視点数を示す情報」が利用されればよい。視点数=2の場合、再生区間は疑似2D再生区間であり、視点数=1の場合、再生区間は通常2D再生区間である。その他に、映像コンテンツ、特にその管理情報に格納された「コンテンツの符号化方式を示す情報」が利用されてもよい。具体的には、符号化方式がMVC等の多視点符号化方式であれば、再生区間は疑似2D再生区間であり、MPEG−4 AVC等の単一視点符号化方式であれば、再生区間は通常2D再生区間である。
(3−E)再生装置102がBD−Live(登録商標)に対応している場合、ベースビュー・ビデオ・ストリームはBD−ROMディスクから読み出し、ディペンデントビュー・ビデオ・ストリームはネットワーク上のサーバ装置等の別の機器からダウンロードしてもよい。その場合、再生装置は更に、BD−ROMディスク上の映像コンテンツの備えている視点符号化フラグを参照して、その映像コンテンツの再生経路の属性をチェックしてもよい。特に、その再生経路に3D再生区間と通常2D再生区間とが混在し、かつ疑似2D再生区間が含まれていない場合、再生装置は、通常2D再生区間を疑似2D再生区間に置き換えた新たなコンテンツ、又は、通常2D再生区間のデータから疑似2D再生区間のデータを生成するのに必要な差分データを、ネットワーク上のサーバ装置等からダウンロードしてもよい。それにより、再生装置はその映像コンテンツの全体を同じ動作モードで再生することができる。
(3−F)図70は、3D再生装置が連続再生区間中の通常2D再生区間の有無に依って動作モードを選択する処理のフローチャートである。この処理は、プレイリスト再生処理において再生経路中の各連続再生区間の処理が開始される度に行われる。ここで、「連続再生区間」とは、再生経路中の再生区間のうち、映像がシームレスに連続再生されるべき1以上の再生区間をいう。
ステップS6901では、再生装置102では、再生制御部4135がプレイリスト・ファイル等から再生経路の属性をチェックすることにより、処理対象の連続再生区間が通常2D再生区間を含むか否かを判別する。その連続再生区間が通常2D再生区間を含む場合は処理がステップS6902へ進み、含まない場合は処理がステップS6905へ進む。
ステップS6902では、再生制御部4135は更に、処理対象の連続再生区間が通常2D再生区間以外の再生区間を含むか否かを判別する。その連続再生区間が通常2D再生区間以外の再生区間を含む場合は処理がステップS6903へ進み、含まない場合は処理がステップS6904へ進む。
ステップS6903では、処理対象の連続再生区間には通常2D再生区間と他の再生区間とが混在する。従って、再生装置102は2D再生モードを選択する。その後、2D再生モードによる連続再生区間の再生処理が開始される。特に3D再生区間と疑似2D再生区間とでは「スキップ再生」が行われる。すなわち、BD−ROMディスク101から、メインTSを含むデータ・ブロックが読み出される一方、サブTSを含むデータ・ブロックの読み出しはジャンプによってスキップされる。それにより、連続再生区間の全体は2D再生モードでのフレームレート、例えば1/24秒で再生される。
ステップS6904では、処理対象の連続再生区間は通常2D再生区間しか含まない。従って、再生装置102は2D再生モードを選択する。その後、2D再生モードによる連続再生区間の再生処理が開始される。
ステップS6905では、処理対象の連続再生区間は3D再生区間と疑似2D再生区間としか含まない。従って、再生装置102は3D再生モードを選択する。その後、3D再生モードによる連続再生区間の再生処理が開始される。それにより、図69に示されているように、3D再生区間での3D映像と3Dグラフィックス映像との合成映像、及び、疑似2D再生区間での2D映像と3Dグラフィックス映像との合成映像がシームレスに接続される。
(3−G)図71は、ダビング再生機能を持つ3D再生装置が、連続再生区間中の通常2D再生区間の有無に依って動作モードを選択する処理のフローチャートである。この処理は、プレイリスト再生処理において再生経路中の各連続再生区間の処理が開始される度に行われる。ここで、「ダビング再生機能」とは、B−B表示モードを利用して、2D映像を表すストリーム・データを再生する機能をいう。ダビング再生では、映像は3D再生モードでのフレームレート、例えば1/48秒で再生される。しかし、同じフレームが二回ずつ表示されるので、フレームの実際の変化は2D再生モードでのフレームレート、例えば1/24秒で表現される。
ステップS7001では、再生装置102では、再生制御部4135がプレイリスト・ファイル等から再生経路の属性をチェックすることにより、処理対象の連続再生区間が通常2D再生区間を含むか否かを判別する。その連続再生区間が通常2D再生区間を含む場合は処理がステップS7002へ進み、含まない場合は処理がステップS7005へ進む。
ステップS7002では、再生制御部4135は更に、処理対象の連続再生区間が通常2D再生区間以外の再生区間を含むか否かを判別する。その連続再生区間が通常2D再生区間以外の再生区間を含む場合は処理がステップS7003へ進み、それ以外の再生区間を含まない場合は処理がステップS7004へ進む。
ステップS7003では、処理対象の連続再生区間には通常2D再生区間と他の再生区間とが混在する。従って、再生装置102は3D再生モードを選択し、特に通常2D再生区間に対してはB−B表示モードを選択する。その後、3D再生モードによる連続再生区間の再生処理が開始される。それにより、通常2D再生区間ではダビング再生が行われる。それ故、映像は連続再生区間の全体でシームレスに再生される。
ステップS7004では、処理対象の連続再生区間は2D再生区間しか含まない。従って、再生装置102は2D再生モードを選択する。その後、2D再生モードによる連続再生区間の再生処理が開始される。
ステップS7005では、処理対象の連続再生区間は3D再生区間と疑似2D再生区間としか含まない。従って、再生装置102は3D再生モードを選択する。その後、3D再生モードによる連続再生区間の再生処理が開始される。それにより、3D再生区間での3D映像と3Dグラフィックス映像との合成映像、及び、疑似2D再生区間での2D映像と3Dグラフィックス映像との合成映像がシームレスに接続される。
(3−H)3D再生モードの再生装置102は、ポップアップ・メニューを画面に表示する期間、すなわちポップアップ期間では、以下のようにして、他の3D映像を2D映像に変更する。それにより、ポップアップ・メニューの視認性・操作性が向上する。ここで、ポップアップ・メニューの表示には、IGストリームから復号されたIGプレーン、又は、BD−Jオブジェクトに従って描画されたイメージ・プレーンが利用される。
図72の(a)は、1プレーン+オフセット・モードでの3Dグラフィックス映像の再生中にポップアップ・メニューが表示される際のビデオ・プレーンの列7110、IG/イメージ・プレーンの列7120、及びPGプレーンの列7130を示す模式図である。図72の(a)を参照するに、二つの3D再生区間P3D1、P3D2の間にポップアップ期間PPOPが挿入されている。それにより、ビデオ・プレーンの列7110とPGプレーンの列7130とはそれぞれ、三つのグループ7111−7113、7131−7133に分割される。
最初の3D再生区間P3D1では、ビデオ・プレーンの表示モードはB−D表示モードに設定され、PGプレーンの表示モードは1プレーン+オフセット・モードに設定される。それにより、ビデオ・プレーンの第1グループ7111はレフトビューとライトビューとのビデオ・プレーンL、Rを交互に含み、PGプレーンの第1グループ7131はレフトビューとライトビューとのPGプレーンL、Rを交互に含む。ここで、レフトビューとライトビューとのPGプレーンの各対は、オフセット制御によって一つのPGプレーンから生成され、対応するビデオ・プレーンに合成される。こうして、最初の3D再生区間P3D1では、ビデオ・プレーンの第1グループ7111の表す3D映像に、PGプレーンの第1グループ7131の表す3Dグラフィックス映像が重ねて表示される。
ポップアップ期間PPOPでは、IG/イメージ・プレーンの列7120が1プレーン+オフセット・モード又は2プレーン・モードで再生される。それにより、その列7120は、レフトビューとライトビューとのIG/イメージ・プレーンL、Rを交互に含む。一方、ビデオ・プレーンの表示モードはB−B表示モードに変更され、PGプレーンの表示モードは1プレーン+ゼロ・オフセット・モードに変更される。それにより、ビデオ・プレーンの第2グループ7112はレフトビューのビデオ・プレーンLを二枚ずつ含み、PGプレーンの第2グループ7132はオフセット値=0のPGプレーンCを二枚ずつ含む。こうして、ポップアップ期間PPOPでは、ビデオ・プレーンの第2グループ7112の表す2D映像に、PGプレーンの第2グループ7132の表す2Dグラフィックス映像と、IG/イメージ・プレーンの列7120の表す3D映像のポップアップ・メニューとが重ねて表示される。
二番目の3D再生区間P3D2では、ビデオ・プレーンの表示モードはB−B表示モードに戻され、PGプレーンの表示モードは1プレーン+オフセット・モードに戻される。それにより、ビデオ・プレーンの第3グループ7113はレフトビューとライトビューとのビデオ・プレーンL、Rを交互に含み、PGプレーンの第3グループ7133はレフトビューとライトビューとのPGプレーンL、Rを交互に含む。こうして、二番目の3D再生区間P3D2では、ビデオ・プレーンの第3グループ7113の表す3D映像に、PGプレーンの第3グループ7133の表す3Dグラフィックス映像が重ねて表示される。
図72の(b)は、2プレーン・モードでの3Dグラフィックス映像の再生中にポップアップ・メニューが表示される際のビデオ・プレーンの列7110、IG/イメージ・プレーンの列7120、及びPGプレーンの列7140の一例を示す模式図である。図72の(b)を参照するに、二つの3D再生区間P3D1、P3D2の間にポップアップ期間PPOPが挿入されている。それにより、ビデオ・プレーンの列7110とPGプレーンの列7140とはそれぞれ、三つのグループ7111−7113、7141−7143に分割される。
最初の3D再生区間P3D1では、ビデオ・プレーンの表示モードはB−D表示モードに設定され、PGプレーンの表示モードは2プレーン・モードに設定される。それにより、ビデオ・プレーンの第1グループ7111はレフトビューとライトビューとのビデオ・プレーンL、Rを交互に含み、PGプレーンの第1グループ7141はレフトビューとライトビューとのPGプレーンL、Rを交互に含む。ここで、レフトビューとライトビューとの各PGプレーンは異なるPGストリームから生成される。こうして、最初の3D再生区間P3D1では、ビデオ・プレーンの第1グループ7111の表す3D映像に、PGプレーンの第1グループ7141の表す3Dグラフィックス映像が重ねて表示される。
ポップアップ期間PPOPでは、IG/イメージ・プレーンの列7120が1プレーン+オフセット・モード又は2プレーン・モードで再生される。それにより、その列7120はレフトビューとライトビューとのIG/イメージ・プレーンL、Rを交互に含む。一方、ビデオ・プレーンとPGプレーンとの各表示モードはB−B表示モードに変更される。それにより、ビデオ・プレーンの第2グループ7112はレフトビューのビデオ・プレーンLを二枚ずつ含み、PGプレーンの第2グループ7142はレフトビューのPGプレーンLを二枚ずつ含む。こうして、ポップアップ期間PPOPでは、ビデオ・プレーンの第2グループ7112の表す2D映像に、PGプレーンの第2グループ7142の表す2Dグラフィックス映像と、IG/イメージ・プレーンの列7120の表す3D映像のポップアップ・メニューとが重ねて表示される。
二番目の3D再生区間P3D2では、ビデオ・プレーンの表示モードはB−B表示モードに戻され、PGプレーンの表示モードは2プレーン・モードに戻される。それにより、ビデオ・プレーンの第3グループ7113はレフトビューとライトビューとのビデオ・プレーンL、Rを交互に含み、PGプレーンの第3グループ7143はレフトビューとライトビューとのPGプレーンL、Rを交互に含む。こうして、二番目の3D再生区間P3D2では、ビデオ・プレーンの第3グループ7113の表す3D映像に、PGプレーンの第3グループ7143の表す3Dグラフィックス映像が重ねて表示される。
図72の(c)は、2プレーン・モードでの3Dグラフィックス映像の再生中にポップアップ・メニューが表示される際のビデオ・プレーンの列7110、IG/イメージ・プレーンの列7120、及びPGプレーンの列7150の別例を示す模式図である。図72の(c)を参照するに、図72の(b)とは異なり、ポップアップ期間PPOPにPGプレーンが表示されない。その他の点については、図72の(c)に示されている各プレーンの列は、図72の(b)に示されているものと同様である。
最初の3D再生区間P3D1では、ビデオ・プレーンの第1グループ7111とPGプレーンの第1グループ7151とはレフトビューとライトビューとの各プレーンL、Rを交互に含むので、ビデオ・プレーンの第1グループ7111の表す3D映像に、PGプレーンの第1グループ7151の表す3Dグラフィックス映像が重ねて表示される。
ポップアップ期間PPOPでは、IG/イメージ・プレーンの列7120はレフトビューとライトビューとのIG/イメージ・プレーンL、Rを交互に含み、ビデオ・プレーンの第2グループ7112はレフトビューのビデオ・プレーンLを二枚ずつ含む。一方、PGプレーンの描画処理は継続されるが、その出力処理は中断される。それにより、PGプレーンの第2グループ7152は破棄される。こうして、ポップアップ期間PPOPでは、ビデオ・プレーンの第2グループ7112の表す2D映像に、IG/イメージ・プレーンの列7120の表す3D映像のポップアップ・メニューが重ねて表示される。一方、PGプレーンの第2グループ7152の表す3Dグラフィックス映像は表示されない。
二番目の3D再生区間P3D2では、ビデオ・プレーンの表示モードはB−B表示モードに戻され、PGプレーンの表示モードは2プレーン・モードに戻される。それにより、ビデオ・プレーンの第3グループ7113とPGプレーンの第3グループ7153とはレフトビューとライトビューとの各プレーンL、Rを交互に含む。こうして、二番目の3D再生区間P3D2では、ビデオ・プレーンの第3グループ7113の表す3D映像に、PGプレーンの第3グループ7153の表す3Dグラフィックス映像が重ねて表示される。
以上のようにして、ポップアップ・メニューが表示される間、他の3D映像が一時的に2D映像に変更される。特にPGプレーンの表示モードの変更は、オフセット値の変更又は出力プレーンの変更によって実現されるので、その処理時間が短い。従って、3D映像と2D映像との切り換えをシームレスに実現することができる。
尚、表示モードの変更に要する処理時間が十分に短い場合、その変更に伴って映像が途切れてもよい場合、又は、3台のPGデコーダがメインTS内のPGストリームとサブTS内の一対のPGストリームとをパラレルに再生する場合、ポップアップ・メニューのオン/オフに合わせてPGプレーンの表示モードが1プレーン+(ゼロ・)オフセット・モードと2プレーン・モードとの間で切り換えられてもよい。
(3−I)2プレーン・モードの再生装置102は、オフセット・メタ・データを利用して、レフトビューとライトビューとの各グラフィックス・プレーンに対して更にオフセット制御を行ってもよい。それにより、2プレーン・モードでも1プレーン+オフセット・モードと同様に、3Dグラフィックス映像の奥行きを調整することができる。
特に、図72の(b)のように、ポップアップ期間にB−B表示モードを利用して、ポップアップ・メニュー以外の3Dグラフィックス映像を2Dグラフィックス映像に変更する場合を想定する。図73の(a)、(b)、(c)は、B−D表示モードとB−B表示モードとでのグラフィックス部品の表示位置の差を示す模式図である。図73の(a)−(c)を参照するに、画面SCR内の破線はB−D表示モードでのグラフィックス部品の表示位置GOB0を示し、実線はB−B表示モードでのグラフィックス部品の表示位置GOB1−3を示す。図73の(a)、(b)、(c)に示されているB−B表示モードでの各表示位置GOB1、GOB2、GOB3とB−D表示モードでの表示位置GOB0との間の水平距離OFS1、OFS2、OFS3はその順に小さい:OFS1<OFS2<OFS3。グラフィックス映像が図73の(a)、(b)、(c)の順に表示されるとき、B−D表示モードでは、グラフィックス部品の3D映像が画面SCRに対して垂直な方向で移動するように見える。一方、B−B表示モードでは、グラフィックス部品の2D映像が、画面SCR上を左方向へ移動するように見える。そのような移動方向の違いは視聴者に違和感を与える危険性があるので、再生装置102は、オフセット制御を以下のように利用して、B−B表示モードでのグラフィックス映像の表示位置を一定に保つ。
図73の(d)、(e)、(f)はそれぞれ、図73の(a)、(b)、(c)に示されているB−B表示モードでのグラフィックス部品の変位を補償する処理を示す模式図である。図73の(d)−(f)を参照するに、画面SCR内の破線はグラフィックス部品の補償前の表示位置GOB1−3を示し、実線は補償後の表示位置GOB0を示す。図73の(a)、(b)、(c)に示されているB−B表示モードとB−D表示モードとでの表示位置間の水平距離OFS1、OFS2、OFS3は、各グラフィックス映像に与えられたオフセットの大きさに等しい。従って、グラフィックス映像が図73の(a)、(b)、(c)の順に表示されるとき、各グラフィックス映像を表すグラフィックス・プレーンに対するオフセット値OFS1、OFS2、OFS3は同じ順に小さい:OFS1<OFS2<OFS3。その場合、再生装置102は、まず、最初のオフセット値OFS1に対する二番目、三番目の各オフセット値OFS2、OFS3の超過分OFS2−OFS1、OFS3−OFS1を求めて逆オフセット値RV1、RV2に設定する:RV1=OFS2−OFS1、RV2=OFS3−OFS1。再生装置102は次に、各グラフィックス・プレーンに対するオフセット制御を利用して、各グラフィックス映像の表示位置を逆オフセット値RV1、RV2だけ、最初の表示位置GOB1の方向へ戻す。それにより、各グラフィックス映像の表示位置は実質的に最初の表示位置GOB1に等しく保たれる。こうして、B−D表示モードからB−B表示モードへの移行が視聴者に違和感を与えることを、回避することができる。
《実施形態4》
以下、本発明の実施形態4として、本発明の実施形態1−3による記録媒体の記録装置及び記録方法について説明する。その記録装置は、いわゆるオーサリング装置と呼ばれるものである。オーサリング装置は通常、頒布用の映画コンテンツの制作スタジオに設置され、オーサリング・スタッフによって使用される。記録装置はオーサリング・スタッフの操作に従い、まず映画コンテンツを所定の圧縮符号化方式でAVストリーム・ファイルに変換する。記録装置は次にシナリオを生成する。「シナリオ」は、映画コンテンツに含まれる各タイトルの再生方法を規定した情報であり、具体的には上記の動的シナリオ情報及び静的シナリオ情報を含む。記録装置は続いて、AVストリーム・ファイル及びシナリオからBD−ROMディスク用のボリューム・イメージを生成する。記録装置は最後に、そのボリューム・イメージを記録媒体に記録する。
図74は、その記録装置7300の機能ブロック図である。図74を参照するに、その記録装置7300は、データベース部7301、ビデオ・エンコーダ7302、素材制作部7303、シナリオ生成部7304、BDプログラム制作部7305、多重化処理部7306、及びフォーマット処理部7307を含む。
データベース部7301は記録装置に内蔵の不揮発性記憶装置であり、特にHDDである。データベース部7301はその他に、記録装置に外付けされたHDDであってもよく、記録装置に内蔵の、又は外付けされた不揮発性半導体メモリ装置であってもよい。
ビデオ・エンコーダ7302は、非圧縮のビットマップ・データ等の映像データをオーサリング・スタッフから受け付けて、MPEG−4 AVC、MVC、又はMPEG−2等の圧縮符号化方式で圧縮する。それにより、主映像のデータはプライマリ・ビデオ・ストリームに変換され、副映像のデータはセカンダリ・ビデオ・ストリームに変換される。特に3D映像のデータは、MVC等の多視点符号化方式を利用して、図7に示されているようなベースビュー・ビデオ・ストリームとディペンデントビュー・ビデオ・ストリームとの対に変換される。すなわち、レフトビューを表すビデオ・フレームの列は、それ自身のピクチャ間での予測符号化によって、ベースビュー・ビデオ・ストリームに変換される。一方、ライトビューを表すビデオ・フレームの列は、それ自身のピクチャだけでなく、ベースビュー・ピクチャとの間の予測符号化によって、ディペンデントビュー・ビデオ・ストリームに変換される。尚、ライトビューを表すビデオ・フレームの列がベースビュー・ビデオ・ストリームに変換され、レフトビューを表すビデオ・フレームの列がディペンデントビュー・ビデオ・ストリームに変換されてもよい。変換後の各ビデオ・ストリーム7312はデータベース部7301に保存される。
ビデオ・エンコーダ7302は更に、2D映像のデータを符号化する際にオーサリング・スタッフから、「3Dグラフィックス映像を表すグラフィックス・データがその2D映像のデータに多重化されること」を示す情報を受け付ける。その場合、ビデオ・エンコーダ7302は、その2D映像のデータから、疑似2D再生区間を構成するベースビュー・ビデオ・ストリームとディペンデントビュー・ビデオ・ストリームとの対を生成する。すなわち、ビデオ・エンコーダ7302はまず、その2D映像のデータをベースビュー・ビデオ・ストリームに変換する。ビデオ・エンコーダ7302は次に、図65に示されている疑似2D再生区間6432内のディペンデントビュー・ピクチャ群のように、2D映像のデータの含む各ピクチャを参照ピクチャとしてそのピクチャ自身を符号化してディペンデントビュー・ピクチャに変換する。変換後の各ビデオ・ストリーム7312はデータベース部7301に保存される。ビデオ・エンコーダ7302は更に、生成されたベースビュー・ビデオ・ストリームとディペンデントビュー・ビデオ・ストリームとの対に関する視点符号化情報VCIを生成する。「視点符号化情報」は、そのビデオ・ストリームの対が3D再生区間と疑似2D再生区間とのいずれを構成するかを示す。生成された視点符号化情報VCIは、多重化処理部7306へ送出される。
また、ビデオ・エンコーダ7302は、2D映像のデータからセカンダリ・ビデオ・ストリームを符号化する際に、オーサリング・スタッフの操作に従って、副映像プレーンに対するオフセット情報7310を作成してもよい。作成されたオフセット情報7310はデータベース部7301に保存される。
その他に、ビデオ・エンコーダ7302は、ピクチャ間予測符号化の処理過程で、レフトビューとライトビューとの間での各イメージの動きベクトルを検出し、それらから3D映像内の各イメージの奥行き情報を算出する。ビデオ・エンコーダ7302はその奥行き情報を利用して、レフトビュー又はライトビューに対するデプスマップを生成してもよい。その場合、ビデオ・エンコーダ7302は、レフトビュー又はライトビューのストリーム・データとデプスマップ・ストリームとのそれぞれを、それ自身の含むピクチャ間での予測符号化を用いて、ベースビュー・ビデオ・ストリームとデプスマップ・ストリームとに変換する。変換後の各ビデオ・ストリーム7312はデータベース部7301に保存される。
ビデオ・エンコーダ7302は更にその奥行き情報を利用して、図56の(b)、(c)に示されているレフトビューLVとライトビューRVとの一方にしか含まれない垂直方向の帯状領域AL、ARの幅WDH、及び、図57の(b)、(c)に示されているレフトビューLVとライトビューRVとの一方にしか含まれない水平方向の帯状領域AT、ABの高さHGTを算定する。算定された幅WDHと高さHGTとを示す情報(以下、マスク領域情報という。)7311はデータベース部7301に保存される。
素材制作部7303は、ビデオ・ストリーム以外のエレメンタリ・ストリーム、例えば、オーディオ・ストリーム7313、PGストリーム7314、IGストリーム7315、及びテキスト字幕ストリーム7316を作成してデータベース部7301に保存する。例えば、素材制作部7303はオーサリング・スタッフから非圧縮のLPCM音声データを受け付けて、それをAC−3等の圧縮符号化方式で符号化してオーディオ・ストリーム7313に変換する。素材制作部7303はその他に、オーサリング・スタッフから字幕情報ファイルを受け付けて、それに従って、PGストリーム7314又はテキスト字幕ストリーム7316を作成する。字幕情報ファイルは、字幕を表すイメージ・データ又はテキスト・データ、その字幕の表示時期、及び、その字幕に加えられるべきフェード・イン/フェード・アウト等の視覚効果を規定する。素材制作部7303は更に、オーサリング・スタッフからビットマップ・データとメニュー・ファイルとを受け付けて、それらに従ってIGストリーム7315を作成する。ビットマップ・データはメニューのイメージを表す。メニュー・ファイルは、そのメニューに配置される各ボタンの状態の遷移、及び各ボタンに加えられるべき視覚効果を規定する。
素材制作部7303は更に、オーサリング・スタッフの操作に従い、PGストリーム7314、IGストリーム7315、及びテキスト字幕ストリーム7316のそれぞれに対するオフセット情報7310を作成する。その場合、素材制作部7303は、ビデオ・エンコーダ7302によって生成された奥行き情報DPIを利用してもよい。作成されたオフセット情報7310はデータベース部7301に保存される。
シナリオ生成部7304は、オーサリング・スタッフからGUI経由で受け付けられた指示に従ってBD−ROMシナリオ・データ7317を作成し、データベース部7301に保存する。BD−ROMシナリオ・データ7317は、データベース部7301に保存された各エレメンタリ・ストリーム7312−7316の再生方法を規定する。BD−ROMシナリオ・データ7317は、図2に示されているファイル群のうち、インデックス・ファイル211、ムービーオブジェクト・ファイル212、及びプレイリスト・ファイル221−223を含む。シナリオ生成部7304は更に、パラメータ・ファイルPRFを作成して多重化処理部7306へ送出する。パラメータ・ファイルPRFは、データベース部7301に保存されたエレメンタリ・ストリーム7312−7316の中から、メインTSとサブTSとのそれぞれに多重化されるべきストリーム・データを規定する。
BDプログラム制作部7305はオーサリング・スタッフに対して、BD−Jオブジェクト及びJavaアプリケーション・プログラムのプログラミング環境を提供する。BDプログラム制作部7305はGUIを通じてユーザからの要求を受け付け、その要求に従って各プログラムのソースコードを作成する。BDプログラム制作部7305は更に、BD−JオブジェクトからBD−Jオブジェクト・ファイル251を作成し、Javaアプリケーション・プログラムをJARファイル261に圧縮する。それらのプログラム・ファイル群BDPはフォーマット処理部7307へ送出される。
ここで、BD−Jオブジェクトが次のようにプログラミングされる場合を想定する:BD−Jオブジェクトは、図41に示されているプログラム実行部4134にGUI用のグラフィックス・データをシステム・ターゲット・デコーダ4125へ送出させる。BD−Jオブジェクトは更に、システム・ターゲット・デコーダ4125にそのグラフィックス・データをイメージ・プレーン・データとして処理させ、プレーン加算部4126にイメージ・プレーン・データを1プレーン+オフセット・モードで送出させる。その場合、BDプログラム制作部7305は、イメージ・プレーンに対するオフセット情報7310を作成してデータベース部7301に保存する。ここで、BDプログラム制作部7305はオフセット情報7310の作成に、ビデオ・エンコーダ7302によって生成された奥行き情報DPIを利用してもよい。
多重化処理部7306はパラメータ・ファイルPRFに従い、データベース部7301に保存されている各エレメンタリ・ストリーム7312−7316をMPEG2−TS形式のストリーム・ファイルに多重化する(但し、テキスト字幕ストリーム7316は単独でファイル化される)。具体的には、図4に示されているように、各エレメンタリ・ストリーム7312−7315がソースパケット列に変換され、各列のソースパケットが一列にまとめられて一本の多重化ストリーム・データを構成する。こうして、メインTSとサブTSとが作成される。それらの多重化ストリーム・データMSDはフォーマット処理部7307へ送出される。
多重化処理部7306は更に、データベース部7301に保存されているオフセット情報7310に基づいて、図13、14に示されているオフセット・メタ・データ1310を作成する。作成されたオフセット・メタ・データ1310は、図13に示されているように、ディペンデントビュー・ビデオ・ストリーム内に格納される。そのとき、データベース部7301に保存されているマスク領域情報7311は、オフセット・メタ・データと共に、ディペンデントビュー・ビデオ・ストリーム内に格納される。尚、各グラフィックス・プレーンの表す3Dグラフィックス映像が、他のグラフィックス・プレーンの表す3Dグラフィックス映像と同じ視方向に重なって表示されないように、多重化処理部7306は各グラフィックス・データを加工して、左右の各映像フレーム内でのグラフィックス部品の配置を調整してもよい。その上、各3Dグラフィックス映像の奥行きが互いに重ならないように、多重化処理部7306は各映像フレームに対するオフセット値を調整してもよい。
多重化処理部7306はその他に、2Dクリップ情報ファイルとディペンデントビュー・クリップ情報ファイルとを作成する。具体的には、多重化処理部7306は、まず、ファイル2DとファイルDEPとのそれぞれについて、エントリ・マップとエクステント起点の一覧表とを作成する。そのとき、多重化処理部7306は、2Dエクステント、ベースビュー・エクステント、ディペンデントビュー・エクステント、及びエクステントSSの配置を設計する。多重化処理部7306は更に、メインTSとサブTSとのそれぞれに多重化されるべき各エレメンタリ・ストリームから属性情報を抽出する。多重化処理部7306は続いて、エントリ・マップ、エクステント起点の一覧表、及び属性情報から各クリップ情報ファイルCLIを作成し、フォーマット処理部7307へ送出する。
フォーマット処理部7307は、データベース部7301に保存されたBD−ROMシナリオ・データ7317、BDプログラム制作部7305によって制作されたBD−Jオブジェクト・ファイル等のプログラム・ファイル群BDP、及び、多重化処理部7306によって生成された多重化ストリーム・データMSDとクリップ情報ファイルCLIとから、図2に示されているディレクトリ構造のBD−ROMディスク・イメージ7320を作成する。そのディレクトリ構造ではファイルシステムとしてUDFが利用される。
フォーマット処理部7307は、ファイル2D、ファイルDEP、及びファイルSSの各ファイル・エントリを作成するとき、2Dクリップ情報ファイルとディペンデントビュー・クリップ情報ファイルとのそれぞれに含まれるエントリ・マップと3Dメタデータとを参照する。それにより、各エントリ・ポイントと各エクステント起点とのSPNが各アロケーション記述子の作成に利用される。特に、図19に示されているようなインターリーブ配置が表現されるように、各アロケーション記述子の表すべきLBNの値とエクステントのサイズとが決定される。その結果、各ベースビュー・データ・ブロックはファイルSSとファイル2Dとに共有され、各ディペンデントビュー・データ・ブロックはファイルSSとファイルDEPとに共有される。
フォーマット処理部7307はまた、視点符号化情報VCIに基づいて3Dプレイリスト・ファイルを書き換えて、メインパス内の各PIに、図68に示されているような視点符号化フラグを設定する。
<BD−ROMディスク・イメージの記録方法>
図75は、図74に示されている記録装置7300を利用してBD−ROMディスクへ映画コンテンツを記録する方法のフローチャートである。この方法は、例えば記録装置7300の電源投入によって開始される。
ステップS7401では、BD−ROMディスクへ記録されるべきエレメンタリ・ストリーム、プログラム、及びシナリオ・データが作成される。すなわち、ビデオ・エンコーダ7302はビデオ・ストリーム7312を作成する。素材制作部7303は、オーディオ・ストリーム7313、PGストリーム7314、IGストリーム7315、及びテキスト字幕ストリーム7316を作成する。シナリオ生成部7304はBD−ROMシナリオ・データ7317を作成する。作成されたそれらのデータ7312−7317はデータベース部7301に保存される。一方、ビデオ・エンコーダ7302は、オフセット情報7310とマスク領域情報7311とを作成してデータベース部7301に保存し、視点符号化情報VCIを作成してフォーマット処理部7307へ送出する。素材制作部7303はオフセット情報7310を作成してデータベース部7301に保存する。シナリオ生成部7304はパラメータ・ファイルPRFを作成して多重化処理部7306へ送出する。BDプログラム制作部7305は、BD−Jオブジェクト・ファイルとJARファイルとを含むプログラム・ファイル群BDP作成してフォーマット処理部7307へ送出し、オフセット情報7310を作成してデータベース部7301に保存する。その後、処理はステップS7402へ進む。
ステップS7402では、多重化処理部7306は、データベース部7301に保存されたオフセット情報7310に基づいてオフセット・メタ・データを作成する。作成されたオフセット・メタ・データは、マスク領域情報7311と共に、ディペンデントビュー・ビデオ・ストリーム内に格納される。その後、処理はステップS7403へ進む。
ステップS7403では、多重化処理部7306はパラメータ・ファイルPRFに従い、データベース部7301から各エレメンタリ・ストリーム7312−7316を読み出してMPEG2−TS形式のストリーム・ファイルに多重化する。その後、処理はステップS7404へ進む。
ステップS7404では、多重化処理部7306は2Dクリップ情報ファイルとディペンデントビュー・クリップ情報ファイルとを作成する。特に、エントリ・マップとエクステント起点との作成では、隣接するデータ・ブロック間でエクステントATC時間が揃えられる。更に、2Dエクステント、ベースビュー・エクステント、ディペンデントビュー・エクステント、及びエクステントSSのサイズが、所定の条件を満たすように設計される。その後、処理はステップS7405へ進む。
ステップS7405では、フォーマット処理部7307は、BD−ROMシナリオ・データ7317、プログラム・ファイル群BDP、多重化ストリーム・データMDS、及びクリップ情報ファイルCLIから、BD−ROMディスク・イメージ7320を作成する。そのとき、フォーマット処理部7307は更に、視点符号化情報VCIに基づいて3Dプレイリスト・ファイルに視点符号化フラグを設定する。その後、処理はステップS7406へ進む。
ステップS7406では、BD−ROMディスク・イメージ7320がBD−ROMプレス用データに変換される。更に、このデータはBD−ROMディスクの原盤に記録される。その後、処理はステップS7407へ進む。
ステップS7407では、ステップS7406で得られた原盤をプレス工程に利用してBD−ROMディスク101の大量生産を行う。こうして、処理が終了する。
<ビデオ・エンコーダ>
図76は、ビデオ・エンコーダ7302と多重化処理部7306との機能ブロック図である。図76を参照するに、ビデオ・エンコーダ7302は、スイッチ7501、符号化部7502、視点符号化方式選択部7503、視点符号化情報生成部7504、フレーム奥行き情報生成部7505、及びマスク領域情報生成部7506を含む。多重化処理部7306はシステム多重化部7511と管理情報生成部7512とを含む。
スイッチ7501は、3Dビデオカメラ等の外部機器から、レフトビューとライトビューとのそれぞれを表すビデオ・フレームL、Rの列を受信する。スイッチ7501はそのとき、視点符号化方式選択部7503からの指示に従い、符号化部7502へ送出すべきビデオ・フレームを選択する。具体的には、その指示が「3D再生区間」を示すとき、スイッチ7501はレフトビューとライトビューとのビデオ・フレームを交互に符号化部7502へ送出する。一方、その指示が「疑似2D再生区間」又は「通常2D再生区間」を示すとき、スイッチ7501はレフトビューのビデオ・フレームのみを符号化部7502へ送出する。
符号化部7502は、視点符号化方式選択部7503からの指示に従ってスイッチ7501からビデオ・フレームを受信し、MVC等の多視点符号化方式、又はMPEG−4 AVC等の単一視点符号化方式で圧縮する。符号化部7502はそのとき、視点符号化方式選択部7503から指示された再生区間の種類に依って視点符号化方式を選択する。
図77は、符号化部7502によるビデオ・フレーム列の符号化処理のフローチャートである。この処理は、符号化部7502が視点符号化方式選択部7503からビデオ・フレーム列の符号化処理を指示されたときに開始される。
ステップS7601では、符号化部7502は、視点符号化方式選択部7503から指示された再生区間の種類を判別する。その種類が「3D再生区間」、「疑似2D再生区間」、及び「通常2D再生区間」のそれぞれであるとき、処理はステップS7602、S7603、及びS7604へ進む。
ステップS7602では、符号化部7502は多視点符号化方式を選択する。すなわち、符号化部7502は、レフトビューを表すビデオ・フレームLの列を、それ自身の含むピクチャ間での予測符号化によってベースビュー・ビデオ・ストリームに変換する。一方、符号化部7502は、ライトビューを表すビデオ・フレームRの列を、それ自身の含むピクチャの間だけでなく、ベースビュー・ピクチャとの間の予測符号化によってディペンデントビュー・ビデオ・ストリームに変換する。その後、処理はステップS7605へ進む。
ステップS7603では、符号化部7502は多視点符号化方式を選択する。但し、符号化対象の再生区間は「疑似2D再生区間」であるので、スイッチ7501からはレフトビューのビデオ・フレームLの列しか受信されない。符号化部7502は、そのビデオ・フレーム列を、それ自身の含むピクチャ間での予測符号化によってベースビュー・ビデオ・ストリームに変換する。一方、符号化部7502は、そのビデオ・フレーム列の含む各ピクチャを参照ピクチャとしてそのピクチャ自身を符号化する。それにより、そのビデオ・フレーム列はディペンデントビュー・ビデオ・ストリームに変換される。その後、処理はステップS7605へ進む。
ステップS7604では、符号化部7502は単一視点符号化方式を選択する。符号化部7502は、スイッチ7501から受信されたビデオ・フレーム列を、それ自身の含むピクチャ間での予測符号化によってベースビュー・ビデオ・ストリームに変換する。一方、符号化部7502はディペンデントビュー・ビデオ・ストリームを生成しない。その後、処理はステップS7605へ進む。
ステップS7605では、符号化部7502は、視点符号化方式選択部7503から符号化処理の続行を指示されているか否かをチェックする。その続行が指示されているとき、処理はステップS7601から繰り返され、指示されていないとき、処理は終了する。
視点符号化方式選択部7503は、スイッチ7501によって受信されるビデオ・フレーム列から連続して構成されるべき一以上の再生区間(以下、連続再生区間という。)に関する情報を、オーサリング・スタッフから受け付ける。その情報は特に、「各再生区間が3D再生区間と2D再生区間とのいずれであるか」、及び、「各再生区間が3Dグラフィックス映像の再生区間(以下、3Dグラフィックス再生区間という。)と重複するか否か」を示す。視点符号化方式選択部7503はその情報に従って、「ビデオ・フレーム列から構成すべき再生区間が、3D再生区間、疑似2D再生区間、及び通常2D再生区間のいずれであるか」を決定する。視点符号化方式選択部7503は更に、各再生区間を構成すべきビデオ・フレーム列がスイッチ7501によって受信される期間に合わせて、その再生区間の種類をスイッチ7501と符号化部7502とに対して指示する。
図78は、ビデオ・フレーム列から構成されるべき再生区間の種類を決定する処理のフローチャートである。この処理は、視点符号化方式選択部7503が連続再生区間に関する情報をオーサリング・スタッフから受け付けたときに開始される。
ステップS7701では、視点符号化方式選択部7503は、連続再生区間に関する情報から、「連続再生区間が3D再生区間を含むか否か」を判断する。連続再生区間が3D再生区間を含む場合、処理はステップS7702ヘ進む。連続再生区間が3D再生区間を含まない場合、すなわち連続再生区間の全体が2D再生区間である場合、処理はステップS7705へ進む。
ステップS7702では、視点符号化方式選択部7503は、連続再生区間に関する情報から、「連続再生区間が2D再生区間を含むか否か」を判断する。連続再生区間が2D再生区間を含む場合、処理はステップS7703ヘ進む。連続再生区間が2D再生区間を含まない場合、すなわち連続再生区間の全体が3D再生区間である場合、処理はステップS7704へ進む。
ステップS7703では、連続再生区間に2D再生区間と3D再生区間とが混在する。従って、視点符号化方式選択部7503は、連続再生区間のうち、2D再生区間を疑似2D再生区間に決定し、残りの再生区間を3D再生区間に決定する。その後、処理は終了する。
ステップS7704では、視点符号化方式選択部7503は、連続再生区間の全体を3D再生区間に決定する。その後、処理は終了する。
ステップS7705では、視点符号化方式選択部7503は、連続再生区間に関する情報から、「連続再生区間が、3Dグラフィックス再生区間と重複する再生区間を含むか否か」を判断する。連続再生区間がそのような再生区間を含む場合、処理はステップS7706ヘ進む。連続再生区間がそのような再生区間を含まない場合、処理はステップS7707へ進む。
ステップS7706では、連続再生区間の少なくとも一部で、2D映像に3Dグラフィックス映像が合成される。従って、視点符号化方式選択部7503は、連続再生区間の全体を疑似2D再生区間に決定する。その他に、連続再生区間のうち、3Dグラフィックス再生区間と重複する2D再生区間は疑似2D再生区間に決定され、残りの2D再生区間は通常2D再生区間に決定されてもよい。その後、処理は終了する。
ステップS7707では、視点符号化方式選択部7503は、連続再生区間の全体を通常2D再生区間に決定する。その後、処理は終了する。
図76を再び参照するに、視点符号化情報生成部7504は、視点符号化方式選択部7503の指示に基づいて視点符号化情報VCIを生成する。その視点符号化情報VCIは、符号化部7502によって符号化されたビデオ・ストリームが構成する各再生区間に、視点符号化方式選択部7503の指示する再生区間の種類を対応付けている。視点符号化情報生成部7504は更に、符号化部7502が2D映像のビデオ・フレーム列からセカンダリ・ビデオ・ストリームを符号化する際に、オーサリング・スタッフの操作に従って、副映像プレーンに対するオフセット情報OFSを作成してもよい。
フレーム奥行き情報生成部7505は、符号化部7502からレフトビューとライトビューとの間での各イメージの動きベクトルVCTを検出し、それらから3D映像内の各イメージの奥行き情報を算出する。図79の(a)、(b)は、3D映像の一シーンの表示に利用されるレフトビューとライトビューとの各ピクチャを表す模式図であり、(c)は、フレーム奥行き情報生成部7505によってそれらのピクチャから算出された奥行き情報を示す模式図である。
符号化部7502は、レフトビューとライトビューとの各ピクチャの圧縮に、それらのピクチャ間の冗長性を利用する。すなわち、符号化部7502は圧縮前の両ピクチャを8×8又は16×16の画素マトリクスごとに、すなわちマクロブロックごとに比較して、両ピクチャ間での各イメージの動きベクトルを検出する。具体的には、図79の(a)、(b)に示されているように、まず、レフトビュー・ピクチャ7801とライトビュー・ピクチャ7802とはそれぞれ、マクロブロック7803のマトリクスに分割される。次に、両ピクチャ7801、7802間でイメージ・データがマクロブロック7803ごとに比較され、その結果から各イメージの動きベクトルが検出される。例えば、「家」のイメージ7804を表す領域は両ピクチャ7801、7802間で実質的に等しい。従って、それらの領域からは動きベクトルが検出されない。一方、「球」のイメージ7805を表す領域は両ピクチャ7801、7802間で異なるので、それらの領域からはそのイメージ7805の動きベクトルが検出される。
符号化部7502は、検出された動きベクトルを各ピクチャ7801、7802の圧縮に利用する。一方、フレーム奥行き情報生成部7505はその動きベクトルVCTを、「家」のイメージ7804及び「球」のイメージ7805等、各イメージの両眼視差の計算に利用する。フレーム奥行き情報生成部7505は更に、各イメージの両眼視差からそのイメージの奥行きを算出する。各イメージの奥行きを表す情報は、図79の(c)に示されているように、各ピクチャ7801、7802のマクロブロックのマトリクスと同じサイズのマトリクス7806に整理される。このマトリクス7806内のブロック7807は、各ピクチャ7801、7802内のマクロブロック7803と一対一に対応する。各ブロック7807は、対応するマクロブロック7803の表すイメージの奥行きを、例えば8ビットの深度で表す。図79に示されている例では、「球」のイメージ7805の奥行きがマトリクス7806の領域7808内の各ブロックに記録される。その領域7808は、そのイメージ7805を表す各ピクチャ7801、7802内の領域の全体に対応する。
フレーム奥行き情報生成部7505は更に、その奥行き情報を利用して、レフトビュー又はライトビューに対するデプスマップDPMを生成してもよい。その場合、符号化部7502は、レフトビュー又はライトビューのビデオ・フレーム列とそのデプスマップDPMの列とをベースビュー・ビデオ・ストリームとデプスマップ・ストリームとに符号化する。
マスク領域情報生成部7506は、フレーム奥行き情報生成部7505によって検出された動きベクトルVCTを利用して、マスク領域情報MSKを生成する。実際、レフトビューとライトビューとの一方の周縁部にしか含まれない垂直方向又は水平方向の帯状領域にイメージが含まれていれば、そのイメージの動きベクトルが、レフトビューからライトビューへ、又はその逆へのフレーム・アウトを表すものとして検出される。従って、マスク領域情報生成部7506はその動きベクトルから各帯状領域の幅又は高さを算定できる。
<多重化処理部>
システム多重化部7511は、パラメータ・ファイルPRFに従い、符号化部7502によって符号化されたビデオ・ストリームVSTを他のエレメンタリ・ストリーム7313−7316と共に一本の多重化ストリーム・データMSDに多重化する。システム多重化部7511は更にオフセット情報OFS、7310に基づいてオフセット・メタ・データを作成し、マスク領域情報MSKと共に、ディペンデントビュー・ビデオ・ストリーム内に格納する。システム多重化部7511はその他に、多重化ストリーム・データMSD内のランダム・アクセス・ポイントの位置及び再生開始/終了時刻等の管理情報MNGを管理情報生成部7512へ送出する。
管理情報生成部7512はその管理情報MNGを利用して、2Dクリップ情報ファイルとディペンデントビュー・クリップ情報ファイルとを以下の手順(I)−(IV)で作成する:(I)ファイル2DとファイルDEPとのそれぞれについて、図23に示されているエントリ・マップ2230が生成される。(II)各ファイルのエントリ・マップを利用して、図24の(a)、(b)に示されているエクステント起点2242、2420が作成される。そのとき、隣接するデータ・ブロック間でエクステントATC時間が揃えられる。更に、2Dエクステント、ベースビュー・エクステント、ディペンデントビュー・エクステント、及びエクステントSSの各サイズが、所定の条件を満たすように設計される(それらの条件については《補足》参照)。(III)メインTSとサブTSとのそれぞれに多重化されるべき各エレメンタリ・ストリームから、図22に示されているストリーム属性情報2220が抽出される。(IV)図22に示されているように、エントリ・マップ2230、3Dメタデータ2240、及びストリーム属性情報2220の組み合わせがクリップ情報2210に対応付けられる。こうして、各クリップ情報ファイルCLIが作成され、フォーマット処理部7307へ送出される。
図80は、隣接するデータ・ブロック間でエクステントATC時間を揃える方法を示す模式図である。まず、ベースビュー・データ・ブロックに格納されるソースパケット(以下、SP1と略す。)と、ディペンデントビュー・データ・ブロックに格納されるソースパケット(以下、SP2と略す。)とには、同じATC時間軸でATSが付与される。図80を参照するに、矩形7910、7920はそれぞれ、SP1#p(p=0、1、2、3、…、k、k+1、…、i、i+1)とSP2#q(q=0、1、2、3、…、m、m+1、…、j)とを表す。それらの矩形7910、7920はATCの時間軸方向で各ソースパケットのATSの順に並べられている。各矩形7910、7920の先頭の位置はそのソースパケットのATSの値を表す。各矩形7910、7920の長さAT1は、3D再生装置が1個のソースパケットをリード・バッファからシステム・ターゲット・デコーダへ転送するのに要する時間を表す。
SP1#0のATSA1からエクステントATC時間TEXTが経過するまでの期間に、リード・バッファからシステム・ターゲット・デコーダへ転送されるSP1、すなわちSP1#0、1、2、…、kは、n番目のベースビュー・エクステントEXT1[n]として一つのベースビュー・データ・ブロックに格納される。同様に、SP1#(k+1)のATSA3からエクステントATC時間TEXTが経過するまでの期間に、リード・バッファからシステム・ターゲット・デコーダへ転送されるSP1、すなわちSP1#(k+1)、…、iは、(n+1)番目のベースビュー・エクステントEXT1[n+1]として次のベースビュー・データ・ブロックに格納される。
一方、n番目のディペンデントビュー・エクステントEXT2[n]として一つのディペンデントビュー・データ・ブロックに格納されるべきSP2は次のように選択される。まず、SP1#0のATSA1とエクステントATC時間TEXTとの和、すなわち、(n+1)番目のベースビュー・エクステントEXT1[n+1]の先頭に位置するSP1#(k+1)のATSA3=A1+TEXTが求められる。次に、SP1#0のATSA1からSP1#(k+1)のATSA3までの期間に、リード・バッファからシステム・ターゲット・デコーダへの転送が開始されるSP2、すなわちSP2#0、1、2、…、mが選択される。従って、先頭のSP2、すなわちSP2#0のATSA2は必ず、先頭のSP1、すなわちSP1#0のATSA1以上である:A2≧A1。更に、SP2#0−mのATSは全て、SP1#(k+1)のATSA3未満である。ここで、最後のSP2、すなわちSP#mの転送完了は、SP1#(k+1)のATSA3以後であってもよい。
同様に、(n+1)番目のディペンデントビュー・エクステントEXT2[n+1]として一つのディペンデントビュー・データ・ブロックに格納されるべきSP2は、次のように選択される。まず、(n+2)番目のベースビュー・エクステントの先頭に位置するSP1#(i+1)のATSA5=A3+TEXTが求められる。次に、SP1#(k+1)のATSA3からSP1#(i+1)のATSA5までの期間に、リード・バッファからシステム・ターゲット・デコーダへの転送が開始されるSP2、すなわちSP2#(m+1)−jが選択される。従って、先頭のSP2、すなわちSP2#(m+1)のATSA4は必ず、先頭のSP1、すなわちSP1#(k+1)のATSA3以上である:A4≧A3。更に、SP2#(m+1)−jのATSは全て、SP1#(i+1)のATSA5未満である。
《実施形態5》
本実施形態では、前述の実施形態において説明された構造のデータを再生する再生装置に関して、集積回路3を用いて実現した構成例(図81)について説明する。
媒体IF部1は、媒体からデータを受信して(読み出して)集積回路3に転送する。尚、媒体IF部1は、前述の実施形態において説明した構造のデータを媒体から受信する。媒体IF部1は例えば、媒体が光ディスクやハードディスクの場合はディスクドライブ、媒体がSDカードやUSBメモリ等の半導体メモリの場合はカードIF、媒体がCATV等を含む放送波の場合はCANチューナーやSiチューナー、媒体がイーサネット(登録商標)、無線LAN、無線公衆回線等のネットワークの場合はネットワークIF等である。
メモリ2は、媒体から受信した(読み出した)データを一旦格納し、又は集積回路3における処理途中のデータを一時的に格納するメモリで、例えばSDRAM(Synchronous Dynamic Random Access Memory)、DDRx SDRAM(Double−Date−Rate x Synchronous Dynamic Random Access Memory;x=1,2,3,…)等が用いられる。尚、メモリ2は任意の個数備えられていればよく、必要に応じて単数でも複数でも構わない。
集積回路3は、媒体IF部1から転送されたデータに対して映像・音声処理を施すシステムLSIで、主制御部6、ストリーム処理部5、信号処理部7、メモリ制御部9、AV出力部8等から構成される。
主制御部6は、タイマ機能や割り込み機能を有するプロセッサコアを有し、プロセッサコアはプログラムメモリ等に格納されたプログラムに従って、集積回路3全体の制御を行う。なお、プログラムメモリ等には、予めOS等の基本ソフトが格納されている。
ストリーム処理部5は、主制御部6の制御の下、媒体から媒体IF部1経由で転送されたデータを受信し、集積回路3内のデータバスを経由してメモリ2に格納し、又は、受信したデータを映像系データ、音声系データに分離する。前述したとおり、媒体上のデータは、レフトビュー・ビデオ・ストリームを含む2D/レフトビュー・AVストリーム・ファイルと、ライトビュー・ビデオ・ストリームを含むライトビュー・AVストリーム・ファイルとが、幾つかのエクステントに分割された状態で交互に配置されたものである。従って、主制御部6は、集積回路3がレフトビューAVストリーム・ファイルを含む左目用データを受信した場合はメモリ2の第1の領域にデータが格納されるように、ライトビュー・ビデオ・ストリームを含む右目用データを受信した場合はメモリ2の第2の領域にデータが格納されるように制御する。ここで、左目用データは左目用エクステントに属しており、右目用データは右目用エクステントに属している。尚、メモリ2における第1、第2の領域は単一のメモリが論理的に領域分割されたものでもよいし、物理的に異なるメモリでもよい。また、実施形態5においては、レフトビュー・ビデオ・ストリームを含む左目用データをメインビュー・データとし、ライトビュー・ビデオ・ストリームを含む右目用データをサブビュー・データとして説明を続けるが、右目用データがメインビュー・データ、左目用データがサブビュー・データであっても構わない。
信号処理部7は、主制御部6の制御の下、ストリーム処理部5が分離した映像系データ、音声系データを適切な方法でデコードする。映像系データは、MPEG−2、MPEG−4 AVC、MPEG4−MVC、SMPTE VC−1などの方式を使って符号化記録されている。音声系データは、ドルビーAC−3、Dolby Digital Plus、MLP、DTS、DTS−HD、リニアPCMなどの方式で圧縮・符号化記録されている。信号処理部7は、これらに対応した方式でデコードを行う。尚、信号処理部7のモデルは、例えば実施形態1の図44における各種デコーダに当たる。更に、信号処理部7は、ライトビュー・ビデオ・ストリーム中に含まれるメタ・データを抽出し、AV出力部8へ通知する。尚、前述のとおり、メタ・データは、ライトビュー・ビデオ・ストリームを構成するGOPごとに配置されており、複数のオフセット情報と、それに対するオフセット識別子とを含む。
メモリ制御部9は、集積回路3内の各機能ブロックからメモリ2へのアクセスを調停する。
AV出力部8は、主制御部6の制御の下、信号処理部7においてデコードされた映像系データを重畳し、映像系データにフォーマット変換等を行って、集積回路3の外へ出力する。
図82は、ストリーム処理部5の代表的な構成を示す機能ブロック図である。ストリーム処理部5は、デバイス・ストリームIF部51、多重分離部52、切替部53等を備える。
デバイス・ストリームIF部51は、媒体IF部1と集積回路3との間のデータ転送用インターフェースである。例えば、媒体が光ディスクやハードディスクの場合はSATA(Serial Advanced Technology Attachment)、ATAPI(Advanced Technology Attachment Packet Interface)、PATA(Parallel Advanced Technology Attachment)、媒体がSDカードやUSBメモリ等の半導体メモリの場合はカードIF、媒体がCATV等を含む放送波などの場合はチューナーIF、媒体がイーサネット(登録商標)、無線LAN、無線公衆回線等のネットワークの場合はネットワークIF等が、デバイス・ストリームIF部51に相当する。尚、媒体の種類によっては、デバイス・ストリームIF部51が媒体IF部1の機能の一部を肩代わりしても構わないし、媒体IF部1が集積回路3に内蔵されていても構わない。
多重分離部52は、媒体から転送された映像・音声を含む再生データから映像系データと音声系データとを分離する。前述の各エクステントは、映像・音声・PG(字幕)・IG(メニュー)等の各ソースパケットから構成されている。但し、サブビュー・データは音声を含まない場合もある。各エクステントは、各ソースパケットに含まれているPID(識別子)に従って映像系・音声系の各TSパケットに分離されて、信号処理部7へ転送される。処理済のデータは、直接、又は一旦メモリ2に格納された後に、信号処理部7へ転送される。尚、多重分離部52のモデルは、例えば実施形態1の図44におけるソース・デパケタイザ、PIDフィルタに当たる。
切替部53は、デバイス・ストリームIF部51が左目用データを受信した時はメモリ2の第1の領域に格納されるように、右目用データを受信した時はメモリ2の第2の領域に格納されるように、出力先(格納先)を切り替える。ここで、切替部53は例えばDMAC(Direct Memory Access Controller)である。図83は、切替部53がDMACであった場合の切替部53周辺の概念図である。DMACは、主制御部6の制御の下、デバイス・ストリームIF部が受信したデータとそのデータ格納先アドレスとをメモリ制御部9へ送信する。具体的には、デバイス・ストリームIF部が左目用データを受信した時はアドレス1(第1の格納領域)を、右目用データを受信した時はアドレス2(第2の格納領域)をメモリ制御部9へ送信することで、受信データによってその出力先(格納先)を切り替えている。メモリ制御部9は、DMACから送られてきた格納先アドレスに従ってメモリ2にデータを格納する。尚、主制御部6の代わりに、切替部53を制御する専用の回路を設けても構わない。
ここでは、ストリーム処理部5の代表的な構成として、デバイス・ストリームIF部51、多重分離部52、切替部53について説明したが、受信した暗号化データや鍵データ等を復号する暗号エンジン部、媒体と再生装置との間の機器認証プロトコル等の実行制御や秘密鍵を保持するセキュア管理部、ダイレクト・メモリ・アクセス用のコントローラ等を、ストリーム処理部5が更に備えていてもよい。これまでは、媒体から受信したデータをメモリ2に格納する際に、切替部53が左目用データ・右目用データかによって格納先を切り替える場合について説明してきたが、媒体から受信したデータを一旦メモリ2に格納した後に、多重分離部52へデータを転送する際に、左目用データ・右目用データを振り分けてもよい。
図84は、AV出力部8の代表的な構成を示す機能ブロック図である。AV出力部8は、画像重畳部86、ビデオ出力フォーマット変換部87、及びオーディオ・ビデオ出力IF部88を備える。
画像重畳部81は、デコードされた映像系のデータを重畳する。具体的には、レフトビュー・ビデオ・データ又はライトビュー・ビデオ・データに、PG(字幕)、IG(メニュー)をピクチャ単位で重畳する。画像重畳部81のモデルは、例えば実施形態1の図45に示されている。図90は、画像重畳処理におけるメモリ2と各プレーンとの間の関係を示した図である。メモリ2は、デコード済みのデータであって、各プレーンに描画されるデータを格納する領域、すなわち、レフトビューに対応するプレーン・データ格納領域、ライトビューに対応するプレーン・データ格納領域、グラフィックスに対応するプレーン・データ格納領域を備える。ここで、プレーンは、メモリ2中の領域であることもあれば、仮想的な空間であることもある。
図91と図92とは、画像重畳の概念図である。画像重畳部81は、ストリーム選択テーブル中のオフセット識別子を用いて、信号処理部7から通知されたメタ・データの中から該当するオフセット情報を検索し、そのオフセット情報に基づいてグラフィックス・プレーンにオフセットを与えて、映像プレーンとの重畳処理を行う。レフトビュー・プレーンと重畳する際は、グラフィックス・プレーンには+Xのオフセットを与えて重畳し(左を示す図)、ライトビュー・プレーンと重畳する際は、グラフィックス・プレーンには−Xのオフセットを与えて重畳する(右を示す図)。ここで、値Xはオフセット値であって、画素数で表される。具体的には、図91においては、グラフィックス・プレーンを紙面上右へオフセット値Xだけ平行移動させたものをレフトビュー・プレーンと重畳する。一方、図92においては、グラフィックス・プレーンを紙面上左へオフセット値Xだけ平行移動させたものをライトビュー・プレーンと重畳する。この時、図示しているように、紙面上左右方向の座標が等しい画素データ同士を重畳し、重畳後のデータをメモリ2の画像重畳後データ格納領域に格納する。
図93は、画像重畳の別の方法を示した概念図である。メモリ2は更に、オフセット済みグラフィックスに対応するプレーン・データ格納領域(レフトビュー重畳用、ライトビュー重畳用)を備えている。レフトビュー・プレーン、ライトビュー・プレーンと重畳されるデータがメモリ2に予め用意され、画像重畳部81がメモリ2から必要なデータを読み込んで重畳し、重畳後のデータがメモリ2の画像重畳後データ格納領域に格納される。
尚、実施形態3のように、グラフィックス・プレーンをレフトビュー重畳用とライトビュー重畳用との二枚用意し、それぞれにオフセット値を与えて重畳処理を行う方法(2プレーン・モード)もある。前述のとおり、2D映像と3Dグラフィックス映像との合成も可能である。その際は、デコード後の平面視映像を構成するピクチャ・データ(メインビュー・データ群に由来)と、デコード後のメインビューを構成するグラフィックス・データとが重畳され、デコード後の平面視映像を構成するピクチャ・データ(サブビュー・データ群に由来)と、デコード後のサブビューを構成するグラフィックス・データとが重畳される。
ビデオ出力フォーマット変換部82は、デコードされた映像系データに対して、拡大または縮小するリサイズ処理、走査方式をプログレッシブ方式及びインターレース方式の一方から他方に変換するIP変換処理、ノイズを除去するノイズ・リダクション処理、フレームレートを変換するフレームレート変換処理などを必要に応じて行う。
オーディオ・ビデオ出力IF部83は、画像重畳やフォーマット変換された映像系データと、デコードされた音声系データとに対して、データ送信形式に合わせてエンコード等を行う。尚、後述するように、オーディオ・ビデオ出力IF部83の一部は集積回路3の外に備えられても構わない。
図85は、AV出力部8又は再生装置のデータ出力部をより詳細に示す構成例である。実施形態5による集積回路3及び再生装置は、複数の映像系データ、音声系データのデータ送信形式に対応している。図84におけるオーディオ・ビデオ出力IF部83は、アナログ・ビデオ出力IF部83a、アナログ・オーディオ出力IF部83c、デジタル・オーディオ出力IF部83bを備えている。
アナログ・ビデオ出力IF部83aは、画像重畳処理や出力フォーマット変換処理された映像系データを、アナログ映像信号形式に変換・エンコードして出力する。例えば、NTSC、PAL、SECAMの3方式のいずれかに対応したコンポジット・ビデオ・エンコーダー、S映像信号(Y/C分離)用エンコーダー、コンポーネント映像信号用エンコーダー、又はDAC(D/Aコンバータ)がアナログ・ビデオ出力IF部83aに当たる。
デジタル・オーディオ・ビデオ出力IF部83bは、デコードされた音声系データと、画像重畳処理や出力フォーマット変換された映像系データとを一体化し、更に暗号化した後、データ送信規格に合わせてエンコードして出力する。例えば、HDMI(High−Definition Multimedia InterFace)がデジタル・オーディオ・ビデオ出力IF部83bに当たる。
アナログ・オーディオ出力IF部83cは、デコードされた音声系データをD/A変換してアナログ音声データを出力する。オーディオDAC等がアナログ・オーディオ出力IF部83cに当たる。
これら映像系データ及び音声系データの送信形式は、表示装置・スピーカー4のサポートするデータ受信装置(データ入力端子)に依存して、又はユーザーの選択によって切り替え可能である。更に、単一の送信形式だけではなく、複数の送信形式で並行して、同一のコンテンツに対応したデータを送信することも可能である。
ここでは、AV出力部8の代表的な構成として、画像重畳部81、ビデオ出力フォーマット変換部82、オーディオ・ビデオ出力IF部83について説明したが、フィルタ処理、画面合成、曲線描画、3D表示等のグラフィックス処理を行うグラフッィクス・エンジン部等を更に備えていてもよい。
以上が、実施形態5による再生装置の構成についての説明である。尚、集積回路3には、前述の機能ブロックの全てが内蔵されていなくても良い。逆に、図81のメモリ2が集積回路3に内蔵されていてもよい。また、実施形態5においては、主制御部6と信号処理部7とは異なる機能ブロックとして説明されてきたが、主制御部6が信号処理部7の処理の一部を行っても構わない。
表示装置を、例えば図88に示されているように構成して、実施形態5による再生装置の処理を表示装置に行わせても構わない。その際、媒体IF部1が受信したデータは集積回路3によって信号処理され、処理された映像系データは表示駆動部10を経由して表示パネル11を通して出力され、処理された音声系データはスピーカー12を通して出力される。ここで、AV出力部8は例えば図89のように構成されてもよい。その場合、集積回路3の内部又は外部のオーディオ出力IF部94及びビデオ出力IF部89を通してデータ転送が行われる。尚、オーディオ出力IF部94及びビデオ出力IF部89のそれぞれが複数備えられていてもよいし、ビデオとオーディオとで共通のIF部が備えられていてもよい。
集積回路3では、制御バスやデータバスは、各処理ブロックの処理手順や処理内容に合わせて任意に配置される。データバスは各処理ブロック同士を、例えば図86のように直接結んでもよいし、図87のようにメモリ2(メモリ制御部9)を介して結んでもよい。
集積回路3は、複数のチップを一つのパッケージに封止して見かけ上一つのLSIにしたマルチチップ・モジュールであっても構わない。また、LSI製造後にプログラム可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサが、集積回路3として利用されてもよい。
次に、以上のように構成された再生装置の動作について説明する。図94は、媒体からデータを受信して(読み出して)デコードした後に映像信号及び音声信号として出力する再生動作手順を簡単に示すフローチャートである。
ステップS1:媒体からデータを受信する(読み出す)(媒体IF部1、ストリーム処理部5)。
ステップS2:ステップS1において受信された(読み出された)データから各種データ(映像系データ・音声系データ)を分離する(ストリーム処理部5)。
ステップS3:ステップS2において分離された各種データを適切な形式にデコードする(信号処理部7)。
ステップS4:ステップS3においてデコードされた映像系データについて重畳処理を行う(AV出力部8)。
ステップS6:ステップS2〜S5において処理された映像系データ及び音声系データを出力する(AV出力部8)。
図95は、より詳細に再生動作手順を示したフローチャートである。各動作・処理は、主制御部6の制御の下、行われる。
ステップS101:ストリーム処理部5のデバイス・ストリームIF部51は、媒体IF部1を通して媒体から、再生対象のデータを再生するために必要なデータ(プレイリスト・ファイル、クリップ情報ファイル等)を受信して(読み出して)メモリ2に格納する(媒体IF部1、デバイスIF部51、メモリ制御部9、メモリ2)。
ステップS102:主制御部6は、受信されたクリップ情報ファイルに含まれるストリーム属性情報から、媒体に格納されている映像データ及び音声データの圧縮形式を識別し、対応するデコード処理ができるように信号処理部7の初期化を行う(主制御部6)。
ステップS103:ストリーム処理部5のデバイス・ストリームIF部51は、媒体IF部1を通して媒体から、映像・音声などの再生対象のデータを受信して(読み出して)、切替部53、メモリ制御部9を経由してメモリ2へ格納する。尚、データはエクステント単位で受信され(読み出され)、左目用データは第1の領域へ格納され、右目用データは第2の領域へ格納される。それらの格納先の切り替えは、切替部53が主制御部6の制御に従って実行する(媒体IF部1、デバイスIF部51、主制御部6、切替部53、メモリ制御部9、メモリ2)。
ステップS104:メモリ2に格納されたストリーム・データは、ストリーム処理部5の多重分離部52へ転送される。多重分離部52は、そのストリーム・データを構成する各ソースパケットに含まれるPIDから、そのストリーム・データが映像系(主映像、副映像、PG(字幕)、IG(メニュー))と音声系(音声、副音声)とのいずれであるかを識別し、そのストリーム・データをTSパケット単位で、信号処理部7内の対応するデコーダへ転送する(多重分離部52)。
ステップS105:信号処理部7内の各デコーダは、転送されたTSパケットを適切な方式でデコードする(信号処理部7)。
ステップS106:信号処理部7においてデコードされた映像系データのうち、レフトビュー・ビデオ・ストリーム及びライトビュー・ビデオ・ストリームに対応するデータを、表示装置4に合わせてリサイズする(ビデオ出力フォーマット変換部82)。
ステップS107:ステップS106においてリサイズされたビデオ・ストリームと、PG(字幕)・IG(メニュー)とが重畳される(画像重畳部81)。
ステップS108:ステップS107において重畳された映像データに対してIP変換を行ってその走査方式を変換する(ビデオ出力フォーマット変換部82)。
ステップS109:これまでの処理を受けた映像系データ及び音声系データに対してエンコードやD/A変換等を、表示装置・スピーカー4のデータ出力方式、又は表示装置・スピーカー4へのデータ送信方式に従って行う。例えば、映像系データ・音声系データをそれぞれ、アナログ又はデジタル出力に対応するための処理を行う。映像系データのアナログ出力としては、コンポジット映像信号、S映像信号、又はコンポーネント映像信号等がサポートされている。映像系・音声系データのデジタル出力としてはHDMIがサポートされている(オーディオ・ビデオ出力IF部83)。
ステップS110:ステップS109において処理された映像系データ及び音声系データを表示装置・スピーカー4へ送信し、対応する映像及び音声を出力させる(オーディオ・ビデオ出力IF部83、表示装置・スピーカー4)。
以上が、実施形態5による再生装置の動作手順の説明である。尚、各処理を終える度に一旦、その処理結果をメモリ2に格納しても構わない。図88の表示装置で再生処理を行った場合も、その動作手順は基本的には上記のものと同様である。その場合、図81の再生装置の各機能ブロックに対応する機能ブロックが同様の処理を行う。また、上記の動作手順では、ビデオ出力フォーマット変換部82においてリサイズ処理及びIP変換処理が行われているが、必要に応じてそれらの処理は省略されても構わないし、他の処理(ノイズ・リダクション処理、フレームレート変換処理等)が行われても構わない。更に、可能な限りにおいて、上記の動作手順が変更されても構わない。
《補足》
<3D映像の再生方法の原理>
3D映像の再生方法は、ホログラフィ技術を用いる方法と、視差映像を用いる方法との2つに大別される。
ホログラフィ技術を用いる方法の特徴は、現実の立体的な物体から人間の視覚に与えられる光学的な情報とほぼ全く同じ情報を視聴者の視覚に与えることにより、その視聴者に映像中の物体を立体的に見せる点にある。しかし、この方法を動画表示に利用する技術は理論上確立されてはいる。しかし、その動画表示に必要とされる、膨大な演算をリアルタイムに処理可能なコンピュータ、及び、1mmあたり数千本という超高解像度の表示装置はいずれも、現在の技術ではまだ、実現が非常に難しい。従って、この方法を商業用として実用化する目途は、現時点ではほとんど立っていない。
「視差映像」とは、一つのシーンを見る視聴者の各目に映る2D映像の対、すなわち、レフトビューとライトビューとの対をいう。視差映像を用いる方法の特徴は、一つのシーンのレフトビューとライトビューとを視聴者の各目だけに見えるように再生することにより、その視聴者にそのシーンを立体的に見せる点にある。
図96の(a)−(c)は、視差映像を用いる方法による3D映像(立体視映像)の再生原理を説明するための模式図である。図96の(a)は、視聴者VWRが、顔の正面に置かれた立方体CBCを見ている光景の上面図である。図96の(b)、(c)はそれぞれ、そのときに視聴者VWRの左目LEY、右目REYに見える立方体CBCの外観を2D映像として示す模式図である。図96の(b)、(c)を比較すれば明らかなとおり、各目に見える立方体CBCの外観はわずかに異なる。この外観の差、すなわち両眼視差から、視聴者VWRは立方体CBCを立体的に認識できる。従って、視差映像を用いる方法では、まず、一つのシーン、例えば図96の(a)に示されている立方体CBCに対し、視点が異なる左右の2D映像、例えば図96の(b)に示されている立方体CBCのレフトビュー、及び図96の(c)に示されているそのライトビューを準備する。ここで、各視点の位置は視聴者VWRの両眼視差から決定される。次に、各2D映像を視聴者VWRのそれぞれの目だけに見えるように再生する。それにより、視聴者VWRには、画面に再生されるそのシーン、すなわち立方体CBCの映像が立体的に見える。このように、視差映像を用いる方法は、ホログラフィ技術を用いる方法とは異なり、高々二つの視点から見える2D映像を準備するだけでよい点で有利である。
視差映像を用いる方法については、それを具体化するための方式が多様に提案されている。それらの方式は、左右の2D映像を視聴者のそれぞれの目にいかにして見せるかという観点から、経時分離方式、レンチキュラーレンズを用いる方式、及び二色分離方式等に分けられる。
継時分離方式では、画面に左右の2D映像を一定時間ずつ交互に表示する一方、視聴者にシャッター眼鏡を通して画面を観察させる。ここで、シャッター眼鏡は、各レンズが例えば液晶パネルで形成されている。各レンズは、画面上の2D映像の切り換えに同期して交互に光をその全体で一様に透過させ、又は遮断する。すなわち、各レンズは、視聴者の目を周期的に塞ぐシャッターとして機能する。より詳細に言えば、画面上に左映像が表示される期間では、シャッター眼鏡は左側のレンズには光を透過させ、右側のレンズには光を遮断させる。逆に、画面上に右映像が表示されている期間では、シャッター眼鏡は右側のレンズには光を透過させ、左側のレンズには光を遮断させる。それにより、視聴者の目には、左右の映像の残像が重なって一つの3D映像に見える。
経時分離方式では、上記のとおり、左右の映像を一定周期で交互に表示する。例えば2D映像の再生において1秒当たり24枚の映像フレームが表示されるとき、3D映像の再生では左右の映像を合わせて、1秒当たり48枚の映像フレームが表示される。従って、この方式には、画面の書き換えを速く実行できる表示装置が好適である。
レンチキュラーレンズを用いる方式では、左右の各映像フレームを、縦方向に細長い短冊形の小領域に分割し、一つの画面の中に左右の映像フレームの各小領域を横方向に交互に並べて同時に表示する。ここで、画面の表面はレンチキュラーレンズで覆われている。レンチキュラーレンズは、細長い蒲鉾レンズを複数平行に並べて一枚のシート状にしたものである。各蒲鉾レンズは画面の表面を縦方向に延びている。レンチキュラーレンズを通して上記左右の映像フレームを視聴者に見せるとき、左映像フレームの表示領域からの光は視聴者の左目だけに結像し、右映像フレームの表示領域からの光は右目だけに結像するようにできる。こうして、左右の目に映る映像間での両眼視差により、視聴者には3D映像が見える。尚、この方式では、レンチキュラーレンズに代えて、同様な機能を持つ液晶素子等の他の光学部品が利用されてもよい。その他に、例えば左映像フレームの表示領域には縦偏光のフィルタを設置し、右映像フレームの表示領域には横偏光のフィルタを設置してもよい。そのとき、視聴者には偏光眼鏡を通して画面を見させる。ここで、その偏光眼鏡では、左側のレンズに縦偏光フィルタが設置され、かつ右側のレンズに横偏光フィルタが設置されている。従って、左右の映像が視聴者のそれぞれの目だけに見えるので、視聴者に3D映像を見せることができる。
視差映像を用いる方法では、3D映像コンテンツが、初めから左右の映像の組み合わせで構成されている場合の他に、2D映像とデプスマップとの組み合わせで構成されていてもよい。その2D映像は、再生対象の3D映像から仮想的な2D画面への射影を表し、デプスマップは、その2D画面に対するその3D映像の各部の奥行きを画素別に表す。3D映像コンテンツが2D映像とデプスマップとの組み合わせで構成されているとき、3D再生装置又は表示装置はまず、それらの組み合わせから左右の映像を構成し、次にそれらの映像から上記の方式のいずれかで3D映像を再現する。
図97は、2D映像MVWとデプスマップDPHとの組み合わせからレフトビューLVWとライトビューRVWとを構成する例を示す模式図である。図97を参照するに、2D映像MVWでは、背景BGVの中に円板DSCが表示されている。デプスマップDPHはその2D映像MVW内の各部の奥行きを画素ごとに示す。そのデプスマップDPHによれば、2D映像MVWのうち、円板DSCの表示領域DA1の奥行きが画面よりも手前であり、かつ、背景BGVの表示領域DA2の奥行きが画面よりも奥である。再生装置内では視差映像生成部PDGがまず、デプスマップDPHの示す各部の奥行きから2D映像MVW内の各部の両眼視差を計算する。視差映像生成部PDGは次に、2D映像MVW内の各部の表示位置を、計算された両眼視差に応じて左右に移動させて、レフトビューLVWとライトビューRVWとを構成する。図97に示されている例では、視差映像生成部PDGは、2D映像MVW内の円板DSCの表示位置に対し、レフトビューLVW内の円板DSLの表示位置をその両眼視差の半分S1だけ右に移動させ、ライトビューRVW内の円板DSRの表示位置をその両眼視差の半分S1だけ左に移動させる。それにより、視聴者には円板DSCが画面よりも手前に見える。一方、視差映像生成部PDGは、2D映像MVW内の背景BGVの表示位置に対し、レフトビューLVW内の背景BGLの表示位置をその両眼視差の半分S2だけ左に移動させ、ライトビューRVW内の背景BGRの表示位置をその両眼視差の半分S2だけ右に移動させる。それにより、視聴者には背景BGVが画面よりも奥に見える。
視差映像を用いる方法による3D映像の再生システムは、映画館及び遊園地のアトラクション等で利用されるものについては既に確立され、一般的に使用されている。従って、その方法は、3D映像を再生可能なホームシアター・システムの実用化にも有効である。本発明の実施形態では、視差映像を用いる方法のうち、継時分離方式又は偏光眼鏡を用いた方式を想定する。但し、本発明は、それらの方式とは異なる他の方式に対しても、それらが視差映像を用いている限り、適用可能である。それは、上記の実施形態の説明から当業者には明らかであろう。
<BD−ROMディスク上のファイルシステム>
BD−ROMディスク101のファイルシステムとしてUDFが利用されるとき、図2に示されているボリューム領域202Bは、一般に複数のディレクトリ、ファイルセット記述子、及び終端記述子のそれぞれが記録された領域を含む。「ディレクトリ」は、同じディレクトリを構成するデータ群である。「ファイルセット記述子」は、ルートディレクトリのファイル・エントリが記録されているセクタのLBNを示す。「終端記述子」はファイルセット記述子の記録領域の終端を示す。
各ディレクトリは共通のデータ構造を持つ。各ディレクトリは特に、ファイル・エントリ、ディレクトリ・ファイル、及び下位ファイル群を含む。
「ファイル・エントリ」は、記述子タグ、ICB(Information Control Block)タグ、及びアロケーション記述子を含む。「記述子タグ」は、その記述子タグを含むデータの種類がファイル・エントリであることを示す。例えば記述子タグの値が“261”であるとき、そのデータの種類はファイル・エントリである。「ICBタグ」はそのファイル・エントリ自身の属性情報を示す。「アロケーション記述子」は、同じディレクトリに属するディレクトリ・ファイルが記録されたセクタのLBNを示す。
「ディレクトリ・ファイル」は、下位ディレクトリのファイル識別記述子と下位ファイルのファイル識別記述子とを一般に複数ずつ含む。「下位ディレクトリのファイル識別記述子」は、そのディレクトリの直下に置かれた下位ディレクトリにアクセスするための情報である。このファイル識別記述子は、その下位ディレクトリの識別情報、ディレクトリ名の長さ、ファイル・エントリ・アドレス、及びディレクトリ名そのものを含む。特にファイル・エントリ・アドレスは、その下位ディレクトリのファイル・エントリが記録されたセクタのLBNを示す。「下位ファイルのファイル識別記述子」は、そのディレクトリの直下に置かれた下位ファイルにアクセスするための情報である。このファイル識別記述子は、その下位ファイルの識別情報、ファイル名の長さ、ファイル・エントリ・アドレス、及びファイル名そのものを含む。特にファイル・エントリ・アドレスは、その下位ファイルのファイル・エントリが記録されたセクタのLBNを示す。「下位ファイルのファイル・エントリ」は、後述のとおり、下位ファイルの本体を構成するデータのアドレス情報を含む。
ファイルセット記述子と下位ディレクトリ/ファイルのファイル識別記述子とを順番に辿ってゆけば、ボリューム領域202Bに記録された任意のディレクトリ/ファイルのファイル・エントリにアクセスすることができる。具体的には、まず、ファイルセット記述子からルートディレクトリのファイル・エントリが特定され、そのファイル・エントリ内のアロケーション記述子からルートディレクトリのディレクトリ・ファイルが特定される。次に、そのディレクトリ・ファイルからルートディレクトリ直下のディレクトリのファイル識別記述子が検出され、その中のファイル・エントリ・アドレスからそのディレクトリのファイル・エントリが特定される。更に、そのファイル・エントリ内のアロケーション記述子からそのディレクトリのディレクトリ・ファイルが特定される。続いて、そのディレクトリ・ファイルのうち、下位ディレクトリ又は下位ファイルのファイル識別記述子内のファイル・エントリ・アドレスからその下位ディレクトリ又は下位ファイルのファイル・エントリが特定される。
「下位ファイル」はそれぞれエクステントとファイル・エントリとを含む。「エクステント」は一般に複数であり、それぞれ、ディスク上の論理アドレス、すなわちLBNが連続しているデータ列である。エクステントの全体が下位ファイルの本体を構成する。「ファイル・エントリ」は、記述子タグ、ICBタグ、及びアロケーション記述子を含む。「記述子タグ」は、その記述子タグを含むデータの種類がファイル・エントリであることを示す。「ICBタグ」はそのファイル・エントリ自身の属性情報を示す。「アロケーション記述子」は各エクステントに対して一つずつ設けられ、ボリューム領域202B上での各エクステントの配置、具体的には各エクステントのサイズとその先端のLBNとを示す。従って、各アロケーション記述子を参照することにより、各エクステントにアクセスすることができる。その他に、各アロケーション記述子の上位2ビットは、そのアロケーション記述子の示すLBNのセクタにエクステントが実際に記録されているか否かを示す。すなわち、その上位2ビットが“0”であるとき、そのセクタにはエクステントが割り付け済みであり、かつ記録済みであることを示し、“1”であるとき、そのセクタにエクステントが割り付け済みではあるが未記録であることを示す。
UDFを利用した上記のファイルシステムと同様、ボリューム領域202Bに対するファイルシステムでは一般に、ボリューム領域202Bに記録された各ファイルが複数のエクステントに分割されているとき、上記のアロケーション記述子のように、各エクステントの配置を示す情報がボリューム領域202Bに併せて記録される。その情報を参照することにより、各エクステントの配置、特にその論理アドレスを知ることができる。
<データ・ブロックとエクステント・ブロックとのサイズ>
図19に示されているように、BD−ROMディスク101上の多重化ストリーム・データはディペンデントビュー・データ・ブロックD[n]とベースビュー・データ・ブロックB[n]とに分割されて配置されている(n=0、1、2、3、…)。それらのデータ・ブロック群D[n]、B[n]は更に、トラックに沿ってインターリーブ配置で連続的に記録されることにより、複数のエクステント・ブロック1901−1903を構成している。これらのエクステント・ブロック1901−1903から2D映像と3D映像とのいずれをもシームレスに再生するには、各データ・ブロックと各エクステント・ブロック1901−1903とのサイズは、再生装置102の性能に基づく以下の条件を満たせばよい。
≪2D再生モードの性能に基づく条件≫
図98は、2D再生モードの再生装置102内の再生処理系統を示すブロック図である。図98を参照するに、その再生処理系統は、図37に示されている、BD−ROMドライブ3701、リード・バッファ3721、及びシステム・ターゲット・デコーダ3725を含む。BD−ROMドライブ3701はBD−ROMディスク101から2Dエクステントを読み出し、読み出し速度RUD54でリード・バッファ3721へ転送する。システム・ターゲット・デコーダ3725は、リード・バッファ3721内に蓄積された各2Dエクステントからソースパケットを平均転送速度REXT2Dで読み出して、映像データVDと音声データADとに復号する。
平均転送速度REXT2Dは、システム・ターゲット・デコーダ3725が各ソースパケットからTSパケットを抽出する処理の平均速度の192/188倍に等しく、一般に2Dエクステントごとに異なる。平均転送速度REXT2Dの最大値RMAX2Dは、ファイル2Dに対するシステムレートRTSの192/188倍に等しい。ここで、係数192/188はソースパケットとTSパケットとの間のバイト数の比に等しい。平均転送速度REXT2Dは通常ビット/秒で表され、具体的には、ビット単位で表された2DエクステントのサイズをエクステントATC時間で割ったときの値に等しい。「ビット単位で表されたエクステントのサイズ」は、そのエクステント内のソースパケット数とソースパケット一つ当たりのビット数(=192[バイト]×8[ビット/バイト])との積に等しい。
読み出し速度RUD54は通常ビット/秒で表され、平均転送速度REXT2Dの最高値RMAX2Dよりも高い値、例えば54Mbpsに設定される:RUD54>RMAX2D。それにより、BD−ROMドライブ3701がBD−ROMディスク101から一つの2Dエクステントを読み出している間、システム・ターゲット・デコーダ3725の復号処理に伴うリード・バッファ3721のアンダーフローが防止される。
図99の(a)は、2D再生モードでの動作中、リード・バッファ3721に蓄積されるデータ量DAの変化を示すグラフである。図99の(b)は、再生対象のエクステント・ブロック8310と2D再生モードでの再生経路8320との間の対応関係を示す模式図である。図99の(b)を参照するに、再生経路8320に従い、エクステント・ブロック8310内の各ベースビュー・データ・ブロックB[n](n=0、1、2、…)が一つの2DエクステントEXT2D[n]としてBD−ROMディスク101からリード・バッファ3721へ読み出される。図99の(a)を参照するに、各2DエクステントEXT2D[n]の読み出し期間PR2D[n]では、蓄積データ量DAは、読み出し速度RUD54と平均転送速度REXT2D[n]との間の差RUD54−REXT2D[n]に等しい速度で増加する。
BD−ROMドライブ8301による読み出し/転送動作は実際には、図99の(a)のグラフから示唆される連続的なものではなく、断続的なものである。それにより、各2Dエクステントの読み出し期間PR2D[n]に蓄積データ量DAがリード・バッファ3721の容量を超えること、すなわちリード・バッファ3721のオーバーフローが防止される。すなわち、図99の(a)のグラフは、実際には階段状である増減を直線的な増減として近似的に表したものである。
一方、二つの連続する2DエクステントEXT2D[n−1]、EXT2D[n]の間ではジャンプJ2D[n]が生じる。そのジャンプ期間PJ2D[n]では、ディペンデントビュー・データ・ブロックD[n]の読み出しがスキップされるので、BD−ROMディスク101からのデータの読み出しが停止する。従って、ジャンプ期間PJ2D[n]では蓄積データ量DAは平均転送速度REXT2D[n]で減少する。
図99の(b)に示されているエクステント・ブロック8310から2D映像をシームレスに再生するには、以下の条件[1]、[2]が満たされればよい。
[1]各ジャンプ期間PJ2D[n]ではリード・バッファ3721からシステム・ターゲット・デコーダ3725へのデータ供給を持続させて、そのデコーダ3725に連続的な出力を確保させなければならない。それには、次の条件が満たされればよい:各2DエクステントEXT2D[n]のサイズSEXT2D[n]は、その読み出し期間PR2D[n]から次のジャンプ期間PJ2D[n+1]にわたって、リード・バッファ3721からシステム・ターゲット・デコーダ3725へ転送されるデータ量に等しい。その場合、図99の(a)に示されているように、蓄積データ量DAはそのジャンプ期間PJ2D[n+1]の終了時、その読み出し期間PR2D[n]の開始時での量を下回らない。すなわち、各ジャンプ期間PJ2D[n]ではリード・バッファ3721からシステム・ターゲット・デコーダ3725へのデータ供給が持続し、特にリード・バッファ3721はアンダーフローを生じない。ここで、読み出し期間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()は、括弧内の数値の小数点以下の端数を切り上げる操作を意味する。
[2]リード・バッファ3721の容量は有限であることから、ジャンプ時間TJUMP−2D[n]の最大値は制限される。すなわち、ジャンプ期間PJ2D[n]の直前に蓄積データ量DAがリード・バッファ3721の容量一杯であっても、ジャンプ時間TJUMP−2D[n]が長すぎれば、ジャンプ期間PJ2D[n]中に蓄積データ量DAが0に達し、リード・バッファ3721のアンダーフローが生じる危険性がある。以下、BD−ROMディスク101からリード・バッファ3721へのデータ供給が途絶えている状態で蓄積データ量DAがリード・バッファ3721の容量から0に到達するまでの時間、すなわち、シームレス再生を保証できるジャンプ時間TJUMP−2Dの最大値を「最大ジャンプ時間TJUMP_MAX」という。
光ディスクの規格では通常、ジャンプ距離と最大ジャンプ時間との間の関係が光ディスクドライブのアクセス・スピード等から決められている。図100は、BD−ROMディスクに関するジャンプ距離SJUMPと最大ジャンプ時間TJUMP_MAXとの間の対応表の一例である。図100を参照するに、ジャンプ距離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に等しい。但し、図100の例ではゼロ・セクタ遷移時間TJUMP0は0m秒と見なされている。
以上のことから、式(1)に代入されるべきジャンプ時間TJUMP−2D[n]は、BD−ROMディスクの規格によってジャンプ距離別に規定された最大ジャンプ時間TJUMP_MAXである。具体的には、図100の表において、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]の間隔も制限される。このジャンプ距離SJUMPの最大値のように、ジャンプ時間TJUMPが最大ジャンプ時間TJUMP_MAXに等しいときでのジャンプ距離SJUMPを「最大ジャンプ距離SJUMP_MAX」という。2D映像のシームレス再生には、2Dエクステントのサイズが式(1)を満たすことに加えて、2Dエクステントの間隔が最大ジャンプ距離SJUMP_MAX以下であることが必要である。
各エクステント・ブロック内では、2Dエクステントの間隔はディペンデントビュー・データ・ブロックのサイズに等しい。従って、そのサイズが最大ジャンプ距離SJUMP_MAX以下に制限される。具体的には、2Dエクステント間の最大ジャンプ時間TJUMP_MAXが、図100に規定された最小値250秒に制限されるとき、その2Dエクステントの間隔、すなわちディペンデントビュー・データ・ブロックのサイズは、対応する最大ジャンプ距離SJUMP_MAX=10000セクタ以下に制限される。
異なる記録層に配置された二つのエクステント・ブロック間をシームレスに接続するとき、前のエクステント・ブロックの後端に位置するn番目の2DエクステントEXT2D[n]から、後のエクステント・ブロックの先端に位置する(n+1)番目の2DエクステントEXT2D[n+1]まで、ロングジャンプが生じる。そのロングジャンプは、フォーカス・ジャンプ等、記録層の切り換え操作を伴う。従って、そのロングジャンプに必要な時間は、図100の表に規定された最大ジャンプ時間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ディスクの規格によって、ロングジャンプのジャンプ距離SJUMPに対して規定された最大ジャンプ時間TJUMP_MAXを表す。その最大ジャンプ時間TJUMP_MAXは、図100の表において、n番目の2DエクステントEXT2D[n]の後端から(n+1)番目の2DエクステントEXT2D[n+1]の先端までのセクタ数に対応付けられた値に等しい。第2パラメータTL[n]は層切換時間、例えば350m秒を表す。従って、二つの2DエクステントEXT2D[n]、EXT2D[n+1]の間隔は、図100の表において、ロングジャンプの最大ジャンプ時間TJUMP_MAXから層切換時間を除いた値に対応する最大ジャンプ距離SJUMP_MAX以下に制限される。
≪3D再生モードの性能に基づく条件≫
図101は、3D再生モードの再生装置102内の再生処理系統を示すブロック図である。図101を参照するに、その再生処理系統は、図41に示されている、BD−ROMドライブ4101、スイッチ4120、一対のリード・バッファ4121、4122、及びシステム・ターゲット・デコーダ4125を含む。BD−ROMドライブ4101はBD−ROMディスク101からエクステントSSを読み出し、読み出し速度RUD72でスイッチ4120へ転送する。スイッチ4120は各エクステントSSをベースビュー・データ・ブロックとディペンデントビュー・データ・ブロックとに分離する。ベースビュー・データ・ブロックは第1リード・バッファ4121へ格納され、ディペンデントビュー・データ・ブロックは第2リード・バッファ4122へ格納される。システム・ターゲット・デコーダ4125は、第1リード・バッファ4121内の各ベースビュー・データ・ブロックからはソースパケットをベースビュー転送速度REXT1で読み出し、第2リード・バッファ4122内の各ディペンデントビュー・データ・ブロックからはソースパケットをディペンデントビュー転送速度REXT2で読み出す。システム・ターゲット・デコーダ4125は更に、読み出されたベースビュー・データ・ブロックとディペンデントビュー・データ・ブロックとの対を映像データVDと音声データADとに復号する。
ベースビュー転送速度REXT1とディペンデントビュー転送速度REXT2とはそれぞれ、システム・ターゲット・デコーダ4125が、ベースビュー・データ・ブロックとディペンデントビュー・データ・ブロックとの各ソースパケットからTSパケットを抽出する処理の平均速度の192/188倍に等しい。ベースビュー転送速度REXT1の最高値RMAX1はファイル2Dに対するシステムレートRTS1の192/188倍に等しい。ディペンデントビュー転送速度REXT2の最高値RMAX2はファイルDEPに対するシステムレートRTS2の192/188倍と等しい。各転送速度REXT1、REXT2は通常ビット/秒で表され、具体的には、ビット単位で表された各データ・ブロックのサイズをエクステントATC時間で割ったときの値に等しい。エクステントATC時間は、そのデータ・ブロック内のソースパケットを全て、リード・バッファ4121、4122からシステム・ターゲット・デコーダ4125へ転送するのに要する時間に等しい。
読み出し速度RUD72は通常ビット/秒で表され、転送速度REXT1、REXT2のいずれの最高値RMAX1、RMAX2よりも高い値、例えば72Mbpsに設定される:RUD72>RMAX1、RUD72>RMAX2。それにより、BD−ROMドライブ4101によってBD−ROMディスク101から一つのエクステントSSを読み出している間、システム・ターゲット・デコーダ4125の復号処理に伴う各リード・バッファ4121、4122のアンダーフローが防止される。
[エクステント・ブロック内でのシームレス接続]
図102の(a)、(b)は、一つのエクステント・ブロックから3D映像がシームレスに再生されるとき、各リード・バッファ4121、4122に蓄積されるデータ量DA1、DA2の変化を示すグラフである。図102の(c)は、そのエクステント・ブロック8610と3D再生モードでの再生経路8620との間の対応関係を示す模式図である。図102の(c)を参照するに、再生経路8620に従い、エクステント・ブロック8610の全体が一つのエクステントSSとして一括して読み出される。その後、スイッチ4120によってそのエクステントSSからディペンデントビュー・データ・ブロックD[k]とベースビュー・データ・ブロックB[k]とが分離される(k=…、n、n+1、n+2、…)。
BD−ROMドライブ4101による読み出し/転送動作は実際には、図102の(a)、(b)の各グラフから示唆される連続的なものではなく、断続的なものである。それにより、各データ・ブロックD[k]、B[k]の読み出し期間PRD[k]、PRB[k]では、各リード・バッファ4121、4122のオーバーフローが防止される。すなわち、図102の(a)、(b)の各グラフは、実際には階段状である増減を直線的な増減として近似的に表したものである。
図102の(a)、(b)を参照するに、n番目のディペンデントビュー・データ・ブロックD[n]の読み出し期間PRD[n]では、第2リード・バッファ4122の蓄積データ量DA2は、読み出し速度RUD72とディペンデントビュー転送速度REXT2[n]との間の差RUD72−REXT2[n]に等しい速度で増加し、第1リード・バッファ4121の蓄積データ量DA1はベースビュー転送速度REXT1[n−1]で減少する。図102の(c)を参照するに、n番目のディペンデントビュー・データ・ブロックD[n]からn番目のベースビュー・データ・ブロックB[n]まではゼロ・セクタ遷移J0[2n]が生じる。図102の(a)、(b)に示されているように、ゼロ・セクタ遷移期間PJ0[n]では、第1リード・バッファ4121の蓄積データ量DA1はベースビュー転送速度REXT1[n−1]で減少し続け、第2リード・バッファ4122の蓄積データ量DA2はディペンデントビュー転送速度REXT2[n]で減少する。
図102の(a)、(b)を更に参照するに、n番目のベースビュー・データ・ブロックB[n]の読み出し期間PRB[n]では、第1リード・バッファ4121の蓄積データ量DA1は、読み出し速度RUD72とベースビュー転送速度REXT1[n]との間の差RUD72−REXT1[n]に等しい速度で増加する。一方、第2リード・バッファ4122の蓄積データ量DA2はディペンデントビュー転送速度REXT2[n]で減少し続ける。図102の(c)を更に参照するに、そのベースビュー・データ・ブロックB[n]から次のディペンデントビュー・データ・ブロックD[n+1]まではゼロ・セクタ遷移J0[2n+1]が生じる。図102の(a)、(b)に示されているように、ゼロ・セクタ遷移期間PJ0[2n+1]では、第1リード・バッファ4121の蓄積データ量DA1はベースビュー転送速度REXT1[n]で減少し、第2リード・バッファ4122の蓄積データ量DA2はディペンデントビュー転送速度REXT2[n]で減少し続ける。
一つのエクステント・ブロック8610から3D映像をシームレスに再生するには、以下の条件[3]、[4]が満たされればよい。
[3]n番目のベースビュー・データ・ブロックB[n]のサイズSEXT1[n]は少なくとも、その読み出し期間PRB[n]から次のベースビュー・データ・ブロックB[n+1]の読み出し期間PRB[n+1]の直前までに、第1リード・バッファ4121からシステム・ターゲット・デコーダ4125へ転送されるデータ量に等しい。その場合、図102の(a)に示されているように、次のベースビュー・データ・ブロックB[n+1]の読み出し期間PRB[n+1]の直前では、第1リード・バッファ4121の蓄積データ量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)の右辺で表される最小エクステント・サイズ以上であればよい:
[4]n番目のディペンデントビュー・データ・ブロックD[n]のサイズSEXT2[n]は少なくとも、その読み出し期間PRD[n]から次のディペンデントビュー・データ・ブロックD[n+1]の読み出し期間PRD[n+1]の直前までに、第2リード・バッファ4122からシステム・ターゲット・デコーダ4125へ転送されるデータ量に等しい。その場合、図102の(b)に示されているように、次のディペンデントビュー・データ・ブロックD[n+1]の読み出し期間PRD[n+1]の直前では、第2リード・バッファ4122の蓄積データ量DA2がn番目のディペンデントビュー・データ・ブロックD[n]の読み出し期間PRD[n]の直前での量を下回らない。ここで、n番目のディペンデントビュー・データ・ブロックD[n]の読み出し期間PRD[n]の長さは、そのディペンデントビュー・データ・ブロックD[n]のサイズSEXT2[n]を読み出し速度RUD72で割った値SEXT2[n]/RUD72に等しい。従って、そのディペンデントビュー・データ・ブロックD[n]のサイズSEXT2[n]は、次式(3)の右辺で表される最小エクステント・サイズ以上であればよい:
[エクステント・ブロック間のシームレス接続]
図103の(b)は、M番目(整数Mは2以上である。)のエクステント・ブロック8701と(M+1)番目のエクステント・ブロック8702、及び、それらのエクステント・ブロック8701、8702と3D再生モードでの再生経路8720との間の対応関係を示す模式図である。図103の(b)を参照するに、二つのエクステント・ブロック8701、8702の間は層境界LB又は他のデータの記録領域によって分離されている。再生経路8720に従って、先にM番目のエクステント・ブロック8701の全体がM番目のエクステントSSEXTSS[M]として一括して読み出される。その直後にジャンプJ[M]が生じる。続いて、(M+1)番目のエクステント・ブロック8702が(M+1)番目のエクステントSSEXTSS[M+1]として一括して読み出される。
図103の(a)は、二つのエクステント・ブロック8701、8702から連続して3D映像がシームレスに再生されるとき、各リード・バッファ4121、4122に蓄積されるデータ量DA1、DA2の変化、及びそれらの和DA1+DA2の変化を示すグラフ群である。図103の(a)では、一点鎖線のグラフは、第1リード・バッファ4121に蓄積されるデータ量DA1の変化を示し、破線のグラフは、第2リード・バッファ4122に蓄積されるデータ量DA2の変化を示し、実線のグラフは、両データ量の和DA1+DA2の変化を示す。ここで、実線のグラフは、データ・ブロックが一つ読み出されるごとに生じる細かい変化を均して直線的に近似したものである。更に、ゼロ・セクタ遷移時間TJUMP0は“0秒”とみなされている。
図103の(a)を参照するに、M番目のエクステント・ブロック8701の全体がBD−ROMディスク101から各リード・バッファ4121、4122へ読み出される期間PRBLK[M]では、いずれのリード・バッファ4121、4122に蓄積されるデータ量DA1、DA2も増大する。具体的には、M番目のエクステント・ブロック8701全体の読み出し期間PRBLK[M]中、蓄積データ量の和DA1+DA2は、読み出し速度RUD72と平均転送速度REXTSS[M]との間の差RUD72−REXTSS[M]に等しい速度で増加する。その平均転送速度REXTSS[M]は、M番目のエクステント・ブロック8701全体のサイズ、すなわちM番目のエクステントSSEXTSS[M]のサイズSEXTSS[M]をそのエクステントATC時間TEXTSSで割った値として評価される。
M番目のエクステント・ブロック8701の後端のベースビュー・データ・ブロックが第1リード・バッファ4121に読み込まれた時点で、蓄積データ量の和DA1+DA2は最大値に達する。その直後のジャンプJ[M]の期間PJ[M]では、蓄積データ量の和DA1+DA2は平均転送速度REXTSS[M]で減少する。従って、蓄積データ量の和DA1+DA2の最大値を十分に大きく調節することにより、ジャンプJ[M]中での両リード・バッファ4121、4122のアンダーフローを防止することができる。その結果、二つのエクステント・ブロック8701、8702をシームレスに接続することができる。
蓄積データ量の和DA1+DA2の最大値はM番目のエクステント・ブロック8701のサイズで決まる。従って、M番目のエクステント・ブロック8701を(M+1)番目のエクステント・ブロック8702にシームレスに接続するには、M番目のエクステント・ブロック8701のサイズ、すなわちM番目のエクステントSSEXTSS[M]のサイズSEXTSS[M]が次の条件[5]を満たせばよい。
[5]M番目のエクステント・ブロック8701の先端に位置するディペンデントビュー・データ・ブロックDの読み出し期間PRD[m]ではプリロードが行われる(整数mは1以上である)。そのプリロード期間PRD[m]ではまだ、そのディペンデントビュー・データ・ブロックDに対応するベースビュー・データ・ブロックBが第1リード・バッファ4121には格納されていないので、ディペンデントビュー・データ・ブロックDを第2リード・バッファ4122からシステム・ターゲット・デコーダ4125へ転送することができない。従って、そのプリロード期間PRD[m]では、その直前のジャンプJ[M−1]の期間に引き続き、(M−1)番目のエクステント・ブロックのデータが第2リード・バッファ4122からシステム・ターゲット・デコーダ4125へ転送されるようにして、システム・ターゲット・デコーダ4125へのデータ供給を維持する。同様に、(M+1)番目のエクステント・ブロック8702の先端に位置するディペンデントビュー・データ・ブロックDの読み出し期間PRD[n]でもプリロードが行われる(整数nはm+1以上である)。従って、そのプリロード期間PRD[n]では、その直前のジャンプJ[M]の期間に引き続き、M番目のエクステント・ブロック8701のデータが第2リード・バッファ4122からシステム・ターゲット・デコーダ4125へ転送されるようにして、システム・ターゲット・デコーダ4125へのデータ供給を維持する。それ故、ジャンプJ[M]中での両リード・バッファ4121、4122のアンダーフローを防止するには、M番目のエクステントSSEXTSS[M]のエクステントATC時間TEXTSSが少なくとも、M番目のエクステント・ブロック8701でのプリロード期間PRD[m]の終了時点T0から(M+1)番目のエクステント・ブロック8702でのプリロード期間PRD[n]の終了時点T1までの期間の長さに等しければよい。すなわち、M番目のエクステントSSEXTSS[M]のサイズSEXTSS[M]は少なくとも、その期間T0−T1に各リード・バッファ4121、4122からシステム・ターゲット・デコーダ4125へ転送されるデータ量の和に等しければよい。
図103の(a)から明らかなとおり、期間T0−T1の長さは、M番目のエクステント・ブロック8701の読み出し期間PRBLK[M]の長さ、ジャンプJ[M]のジャンプ時間TJUMP[M]、及びエクステント・ブロック8701、8702間でのプリロード期間PRD[n]、PRD[m]の長さの差TDIFF[M]を足し合わせた値に等しい。更に、M番目のエクステント・ブロック8701の読み出し期間PRBLK[M]の長さは、M番目のエクステントSSEXTSS[M]のサイズSEXTSS[M]を読み出し速度RUD72で割った値SEXTSS[M]/RUD72に等しい。従って、M番目のエクステントSSEXTSS[M]のサイズSEXTSS[M]は、次式(4)の右辺で表される最小エクステント・サイズ以上であればよい:
ここで、各プリロード期間PRD[m]、PRD[n]の長さは、各エクステント・ブロック8701、8702の先端に位置するディペンデントビュー・データ・ブロックDのサイズSEXT2[m]、SEXT2[n]を読み出し速度RUD72で割った値SEXT2[m]/RUD72、SEXT2[n]/RUD72に等しい。従って、プリロード期間PRD[m]、PRD[n]の長さの差TDIFFはそれらの値の差に等しい:TDIFF=SEXT2[n]/RUD72−SEXT2[m]/RUD72。尚、式(4)の右辺は、式(1)−(3)の右辺と同様に、バイト単位の整数値で表されてもよい。
また、多重化ストリーム・データの復号処理を次のように工夫する場合には、式(4)の右辺で差TDIFFを0とみなしてもよい。まず、多重化ストリーム・データの全体での差TDIFFの最大値、すなわち差TDIFFのワースト値を予め求めておく。次に、その多重化ストリーム・データを再生する際、その復号処理の開始時点をその読み出しの開始時点よりも、差TDIFFのワースト値に等しい時間だけ遅らせる。
≪リード・バッファの容量を削減するための条件≫
図104の(a)、(b)は、図103の(b)に示されている二つのエクステント・ブロック8701、8702から連続して3D映像がシームレスに再生されるとき、各リード・バッファ4121、4122に蓄積されるデータ量DA1、DA2の変化を示すグラフである。図104の(a)を参照するに、M番目のエクステント・ブロック8701の後端のベースビュー・データ・ブロックB[n−1]が第1リード・バッファ4121に読み込まれた時点で、第1リード・バッファ4121の蓄積データ量DA1は極大値DM1に達する。更に、その直後のジャンプJ[M]の期間PJ[M]から(M+1)番目のエクステント・ブロック8702のプリロード期間PRD[n]にわたり、蓄積データ量DA1はベースビュー転送速度REXT1[n−1]で減少する。従って、そのプリロード期間PRD[n]の終了まで蓄積データ量DA1が0に達するのを防ぐには、蓄積データ量DA1の極大値DM1が、ジャンプ期間PJ[M]とプリロード期間PRD[n]とで第1リード・バッファ4121からシステム・ターゲット・デコーダ4125へ転送されるデータ量以上であればよい。すなわち、蓄積データ量DA1の極大値DM1は、ジャンプ期間PJ[M]の長さTJUMP[M]とプリロード期間PRD[n]の長さSEXT2[n]/RUD72との和にベースビュー転送速度REXT1[n−1]を乗じた値以上であればよい:DM1≧(TJUMP[M]+SEXT2[n]/RUD72)×REXT1[n−1]。ここで、ジャンプ期間PJ[M]の長さTJUMP[M]がジャンプJ[M]の最大ジャンプ時間TJUMP_MAXに等しく、かつベースビュー転送速度REXT1[n−1]が最大値RMAX1に等しいとき、蓄積データ量DA1の極大値DM1は最も大きい。従って、第1リード・バッファ4121には、そのときの極大値DM1以上の容量RB1が求められる:RB1≧(TJUMP_MAX+SEXT2[n]/RUD72)×REXT1。
一方、図104の(b)を参照するに、M番目のエクステント・ブロック8701の後端のベースビュー・データ・ブロックB[n−1]の読み込みが開始された時点で、第2リード・バッファ4122の蓄積データ量DA2は極大値DM2に達する。更に、そのベースビュー・データ・ブロックB[n−1]の読み出し期間から(M+1)番目のエクステント・ブロック8702のプリロード期間PRD[n]にわたり、蓄積データ量DA2はディペンデントビュー転送速度REXT2[n−1]で減少する。従って、そのプリロード期間PRD[n]の終了までシステム・ターゲット・デコーダ4125へのデータ供給を維持するには、蓄積データ量DA2の極大値DM2が、ベースビュー・データ・ブロックB[n−1]の読み出し期間、ジャンプ期間PJ[M]、及びプリロード期間PRD[n]で第2リード・バッファ4122からシステム・ターゲット・デコーダ4125へ転送されるデータ量以上であればよい。すなわち、蓄積データ量DA2の極大値DM2は、ベースビュー・データ・ブロックB[n−1]の読み出し期間の長さSEXT1[n−1]/RUD72、ジャンプ期間PJ[M]の長さTJUMP[M]、及びプリロード期間PRD[n]の長さSEXT2[n]/RUD72の和にディペンデントビュー転送速度REXT2[n−1]を乗じた値以上であればよい:DM2≧(SEXT1[n−1]/RUD72+TJUMP[M]+SEXT2[n]/RUD72)×REXT2[n−1]。ここで、ジャンプ期間PJ[M]の長さTJUMP[M]がジャンプJ[M]の最大ジャンプ時間TJUMP_MAXに等しく、かつディペンデントビュー転送速度REXT2[n−1]が最大値RMAX2に等しいとき、蓄積データ量DA2の極大値DM2は最も大きい。従って、第2リード・バッファ4122には、そのときの極大値DM2以上の容量RB2が求められる:RB2≧(SEXT1[n−1]/RUD72+TJUMP_MAX+SEXT2[n]/RUD72)×RMAX2。その上、いずれのディペンデントビュー・データ・ブロックも、飛び込み再生によって最初に読み込まれるデータ・ブロックとなり得るので、第2リード・バッファ4122の容量RB2はいずれのディペンデントビュー・データ・ブロックのサイズも下回ってはならない:RB2≧SEXT2[k](整数kは任意)。
上記のとおり、各リード・バッファ4121、4122の容量RB1、RB2の下限値はデータ・ブロックのサイズSEXT1[k]、SEXT2[k]で決まる。従って、各容量RB1、RB2の節約を目的として、各データ・ブロックのサイズSEXT1[k]、SEXT2[k]の上限値、すなわち最大エクステント・サイズを以下の条件[6]で制限する。
[6]図19に示されているように、各エクステント・ブロック1901−1903内のベースビュー・データ・ブロックB[k]はファイル2DとファイルSSとに共有されている。従って、ベースビュー・データ・ブロックB[k]のサイズSEXT1[k]は式(1)を満たすべきである。一方、第1リード・バッファ4121の容量RB1を可能な限り縮小するには、ベースビュー・データ・ブロックB[k]のサイズSEXT1[k]は2Dエクステントの最小エクステント・サイズの下限値以下であればよい。すなわち、そのサイズSEXT1[k]は、次式(5)の右辺で表される最大エクステント・サイズ以下であればよい:
ここで、ジャンプ時間TJUMP−2D_MINは、各エクステント・ブロック1901−1903内で必要なジャンプ時間の最小値、すなわち、2Dエクステント間の最大ジャンプ時間TJUMP_MAXの最小値である。具体的には、ジャンプ時間TJUMP−2D_MINは、図100の表で規定された最小値250秒に設定される。一方、2Dエクステントの間隔はディペンデントビュー・データ・ブロックD[k]のサイズSEXT2[k]に等しい。従って、ジャンプ時間TJUMP−2D_MINが250秒に設定されるとき、ディペンデントビュー・データ・ブロックD[k]のサイズSEXT2[k]は、図100の表で最大ジャンプ時間TJUMP_MAX=250秒に対応付けられた最大ジャンプ距離SJUMP_MAX=10000セクタ以下に制限される。すなわち、ディペンデントビュー・データ・ブロックの最大エクステント・サイズは10000セクタである。
≪まとめ≫
複数のエクステント・ブロックから2D映像と3D映像とのいずれをもシームレスに再生するには、上記の条件[1]−[6]が全て満たされればよい。特に、各データ・ブロックと各エクステント・ブロックとのサイズは次の条件1−5を満たせばよい。
条件1:2DエクステントのサイズSEXT2Dは式(1)を満たす。
条件2:ベースビュー・データ・ブロックのサイズSEXT1は式(2)を満たす。
条件3:ディペンデントビュー・データ・ブロックのサイズSEXT2は式(3)を満たす。
条件4:エクステント・ブロックのサイズSEXTSSは式(4)を満たす。
条件5:ベースビュー・データ・ブロックのサイズSEXT1は式(5)を満たす。
≪条件1の変形例≫
図21に示されている2D再生モードの再生経路2101から明らかなとおり、2D再生モードではジャンプが頻繁に生じる。従って、シームレス再生を更に確実に行うには、式(1)の右辺で表される2Dエクステントの最小エクステント・サイズに更にマージンを追加するのが好ましい。しかし、そのマージンの追加によって式(5)が変更されることは回避されるべきである。そのようにマージンを追加する方法には次の三種類がある。
第1の方法は、式(1)の右辺の分母に含まれる平均転送速度REXT2Dをその最大値RMAXに置き換えることによって、2Dエクステントの最小エクステント・サイズにマージンを追加する。すなわち、条件1は、2DエクステントのサイズSEXT2Dが式(1)に代えて次式(6)を満たすことに変更される:
第2の方法は、2DエクステントのエクステントATC時間をΔT秒延長することによって、2Dエクステントの最小エクステント・サイズにマージンを追加する。すなわち、条件1は、2DエクステントのサイズSEXT2Dが式(1)に代えて次式(7A)又は(7B)を満たすことに変更される:
延長時間ΔTは、GOPの長さ、又は、所定時間当たりに再生可能なエクステント数の上限から決定されてもよい。例えば、GOPの長さが最大1秒であればΔT=1.0秒に設定される。一方、所定時間[秒]当たりに再生可能なエクステント数の上限がn個であればΔT=所定時間/n[秒]に設定される。
第3の方法は、式(1)の右辺に含まれる平均転送速度REXT2Dを全て、その最大値RMAXに置き換えることによって、2Dエクステントの最小エクステント・サイズにマージンを追加する。すなわち、条件1は、2DエクステントのサイズSEXT2Dが式(1)に代えて次式(8)を満たすことに変更される:
この方法では、最小エクステント・サイズに更に大きいマージンを追加することはできる。しかし、その反面、2Dエクステントのビットレートが低い場合でも、そのサイズを十分に大きく確保しなければならない。従って、マージンの大きさとBD−ROMディスクへのデータの記録効率との比較衡量が必要である。
<層境界の前後での再生経路の分離>
図21では、2D再生モードでの再生経路2101と3D再生モードでの再生経路2102とはいずれも、層境界LBを越えるためのロングジャンプJLYの直前に同じベースビュー・データ・ブロックB[3]を通る。すなわち、そのベースビュー・データ・ブロックB[3]は、2D再生モードの再生装置102からは二番目の2DエクステントEXT2D[1]として読み出され、3D再生モードの再生装置102からはエクステントSSEXTSS[1]内の最後のデータ・ブロックとして読み出される。ロングジャンプJLY中にシステム・ターゲット・デコーダによって処理されるべきデータ量は、2D再生モードでは条件1により、そのベースビュー・データ・ブロックB[3]単体のサイズで確保される。一方、3D再生モードでは条件4により、二番目のエクステント・ブロック1902全体のサイズで確保される。従って、条件1によってベースビュー・データ・ブロックB[3]に要求される最小エクステント・サイズは、条件2による最小エクステント・サイズよりも一般に大きい。それ故、第1リード・バッファ4121の容量は、3D再生モードでのシームレス再生に必要最小限の値よりも大きくなければならない。更に、そのベースビュー・データ・ブロックB[3]と、その直前に位置するディペンデントビュー・データ・ブロックD[3]とでは、エクステントATC時間が等しい。従って、そのディペンデントビュー・データ・ブロックD[3]のサイズは、条件2によってそのデータ・ブロックD[3]に要求される最小エクステント・サイズよりも一般に大きい。それ故、第2リード・バッファ4122の容量は、3D再生モードでのシームレス再生に必要最小限の値よりも一般に大きい。このように、図21に示されている配置では、二つのエクステント・ブロック1902、1903間のシームレスな接続は可能であるが、リード・バッファ4121、4122の容量が十分に大きく確保されなければならない。
ロングジャンプJLY中での映像のシームレス再生を可能にしたまま、リード・バッファ4121、4122の容量を更に削減するには、層境界LB等、そのロングジャンプJLYの必要な位置の前後でデータ・ブロック群の配置をインターリーブ配置から変更して、2D再生モードと3D再生モードとの間で再生経路を分離すればよい。そのような変更のパターンには、例えば以下に述べる二種類の配置1、2がある。配置1、2のいずれでも、再生経路はロングジャンプJLYの直前で、動作モードごとに異なるベースビュー・データ・ブロックを通る。その結果、後述のとおり、再生装置102にリード・バッファ4121、4122の容量を必要最小限に維持させたまま、ロングジャンプJLY中での映像のシームレス再生を容易に実現させることができる。
≪配置1≫
図105は、BD−ROMディスク101の層境界LBの前後に記録されたデータ・ブロック群の物理的な配置の第1例を示す模式図である。以下、この配置を「配置1」という。図105を参照するに、層境界LBの前には第1エクステント・ブロック8901が配置され、層境界LBの後には第2エクステント・ブロック8902が配置されている。各エクステント・ブロック8901、8902内では、ディペンデントビュー・データ・ブロックD[n]とベースビュー・データ・ブロックB[n]とがインターリーブ配置を構成している(n=…、0、1、2、3、…)。特にn番目のデータ・ブロック対D[n]、B[n]ではエクステントATC時間が等しい。配置1では更に、第1エクステント・ブロック8901の後端B[1]と層境界LBとの間に一つのベースビュー・データ・ブロックB[2]2Dが配置されている。そのベースビュー・データ・ブロックB[2]2Dは、第2エクステント・ブロック8902内の先端のベースビュー・データ・ブロックB[2]SSとビット単位(bit−for−bit)で一致する。以下、前者B[2]2Dを「2D再生専用ブロック」といい、後者B[2]SSを「SS再生専用ブロック」という。
図105に示されているベースビュー・データ・ブロックのうち、SS再生専用ブロックB[2]SS以外はファイル2D8910のエクステント、すなわち2DエクステントEXT2D[・]としてアクセス可能である。例えば第1エクステント・ブロック8901内の最後から二番目のベースビュー・データ・ブロックB[0]、最後のベースビュー・データ・ブロックB[1]と2D再生専用ブロックB[2]2Dとの対B[1]+B[2]2D、及び、第2エクステント・ブロック8902内の二番目のベースビュー・データ・ブロックB[3]はそれぞれ、単一の2DエクステントEXT2D[0]、EXT2D[1]、EXT2D[2]としてアクセス可能である。一方、図105に示されているディペンデントビュー・データ・ブロックD[n](n=…、0、1、2、3、…)はそれぞれ、ファイルDEP8912の単一のエクステント、すなわちディペンデントビュー・エクステントEXT2[n]としてアクセス可能である。
図105に示されているデータ・ブロック群では、AVストリーム・ファイルのクロスリンクが次のように実現される。各エクステント・ブロック8901、8902の全体は、ファイルSS8920の単一のエクステントEXTSS[0]、EXTSS[1]としてアクセス可能である。従って、各エクステント・ブロック8901、8902内のベースビュー・データ・ブロックB[0]、B[1]、B[3]はファイル2D8910とファイルSS8920とに共有される。それに対し、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]は、ファイル・ベース8911のエクステント、すなわちベースビュー・エクステントEXT1[n](n=0、1、2、3)としてエクステントSSEXTSS[0]、EXTSS[1]から抽出可能である。
図106は、図105に示されている配置1のデータ・ブロック群に対する2D再生モードでの再生経路9010と3D再生モードでの再生経路9020とを示す模式図である。
2D再生モードの再生装置102はファイル2D8910を再生する。従って、2D再生モードでの再生経路9010が示すとおり、まず、第1エクステント・ブロック8901内の最後から二番目のベースビュー・データ・ブロックB[0]が最初の2DエクステントEXT2D[0]として読み出され、その直後のディペンデントビュー・データ・ブロックD[1]の読み出しが最初のジャンプJ2D1によってスキップされる。次に、第1エクステント・ブロック8901内の最後のベースビュー・データ・ブロックB[1]とその直後の2D再生専用ブロックB[2]2Dとの対B[1]+B[2]2Dが二番目の2DエクステントEXT2D[1]として連続して読み出される。その直後の層境界LBではロングジャンプJLYが生じ、第2エクステント・ブロック8902の先端に位置する3個のデータ・ブロックD[2]、B[2]SS、D[3]の読み出しがスキップされる。続いて、第2エクステント・ブロック8902内の二番目のベースビュー・データ・ブロックB[3]が三番目の2DエクステントEXT2D[2]として読み出される。
3D再生モードの再生装置102はファイルSS8920を再生する。従って、3D再生モードでの再生経路9020が示すとおり、まず、第1エクステント・ブロック8901の全体が最初のエクステントSSEXTSS[0]として連続して読み出される。その直後にロングジャンプJLYが生じ、2D再生専用ブロックB[2]2Dの読み出しがスキップされる。続いて、第2エクステント・ブロック8902の全体が二番目のエクステントSSEXTSS[1]として連続して読み出される。
図106に示されているとおり、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再生モードでの再生経路9010と3D再生モードでの再生経路9020とが分離されている。従って、図21に示されている配置とは異なり、層境界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エクステント・ブロック8902内の最初の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]のサイズを拡大させる。しかし、そのサイズは、図21に示されている、層境界LBの直前に位置するディペンデントビュー・データ・ブロックD[3]のサイズよりは十分に小さくできる。こうして、各リード・バッファ4121、4122の容量を、3D映像のシームレス再生に必要最小限の値に更に接近させることができる。その結果、配置1では、再生装置102内に確保されるべきリード・バッファの容量を必要最小限に抑えたまま、ロングジャンプ中に2D映像と3D映像とのいずれをもシームレスに再生することができるように、各データ・ブロックのサイズを設計することができる。
配置1では、2D再生専用ブロックB[2]2Dの複製データが、第2のエクステント・ブロック5202の中に単一のSS再生専用ブロックB[2]SSとして配置されている。その他に、その複製データが二個以上のSS再生専用ブロックに分割されて配置されてもよい。
≪配置2≫
図107は、BD−ROMディスク101の層境界LBの前後に記録されたデータ・ブロック群の物理的な配置の第2例を示す模式図である。以下、この配置を「配置2」という。図107を図105と比較するに、配置2は配置1とは主に、SS再生専用ブロックB[2]SS、B[3]SSを含むエクステント・ブロック9102が層境界LBの直前に配置されている点で異なる。
図107を参照するに、層境界LBの前には、第1エクステント・ブロック9101、2D再生専用ブロック(B[2]+B[3])2D、及び第2エクステント・ブロック9102が順番に配置され、層境界LBの後には第3エクステント・ブロック9103が配置されている。各エクステント・ブロック9101−9103内では、ディペンデントビュー・データ・ブロックD[n]とベースビュー・データ・ブロックB[n]とがインターリーブ配置を構成している(n=…、0、1、2、3、4、…)。特にn番目のデータ・ブロック対D[n]、B[n]ではエクステントATC時間が等しい。第2エクステント・ブロック9102では、第1エクステント・ブロック9101の後端に位置するデータ・ブロックD[1]、B[1]とも、第3エクステント・ブロック9103の先端に位置するデータ・ブロックD[4]、B[4]とも、ストリーム・データの内容が連続している。第2エクステント・ブロック9102に含まれるベースビュー・データ・ブロックはいずれもSS再生専用ブロックB[2]SS、B[3]SSであり、それらの全体B[2]SS+B[3]SSは、その前に位置する2D再生専用ブロック(B[2]+B[3])2Dとビット単位で一致する。
図107に示されているベースビュー・データ・ブロックのうち、SS再生専用ブロックB[2]SS、B[3]SS以外はファイル2D9110のエクステントEXT2D[0]、EXT2D[1]、EXT2D[2]としてアクセス可能である。特に第1エクステント・ブロック9101内の最後のベースビュー・データ・ブロックB[1]と2D再生専用ブロック(B[2]+B[3])2Dとの対は単一の2DエクステントEXT2D[1]としてアクセス可能である。更に、第2エクステント・ブロック9102以外のエクステント・ブロック9101、9103内のベースビュー・データ・ブロックB[0]、B[1]、B[4]は、ファイル・ベース9111のエクステントEXT1[0]、EXT1[1]、EXT1[4]としてファイルSS9120のエクステント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]から抽出可能である。
図108は、図107に示されている配置2のデータ・ブロック群に対する2D再生モードでの再生経路9210と3D再生モードでの再生経路9220を示す模式図である。
2D再生モードの再生装置102はファイル2D9110を再生する。従って、2D再生モードでの再生経路9210が示すとおり、まず、第1エクステント・ブロック9101内の最後から二番目のベースビュー・データ・ブロックB[0]が最初の2DエクステントEXT2D[0]として読み出され、その直後のディペンデントビュー・データ・ブロックD[1]の読み出しが最初のジャンプJ2D1によってスキップされる。次に、第1エクステント・ブロック9101内の最後のベースビュー・データ・ブロックB[1]とその直後の2D再生専用ブロック(B[2]+B[3])2Dとの対が二番目の2DエクステントEXT2D[1]として連続して読み出される。その直後にロングジャンプJLYが生じ、第2エクステント・ブロック9102の読み出し、及び第3エクステント・ブロック9103の先端に位置するディペンデントビュー・データ・ブロックD[4]の読み出しがスキップされる。続いて、第3エクステント・ブロック9103内の最初のベースビュー・データ・ブロックB[4]が三番目の2DエクステントEXT2D[2]として読み出される。
3D再生モードの再生装置102はファイルSS9120を再生する。従って、3D再生モードでの再生経路9220が示すとおり、まず、第1エクステント・ブロック9101の全体が第1エクステントSSEXTSS[0]として連続して読み出される。その直後にジャンプJEXが生じ、2D再生専用ブロック(B[2]+B[3])2Dの読み出しがスキップされる。次に、第2エクステント・ブロック9102の全体が第2エクステントSSEXTSS[1]として連続して読み出される。その直後に、層境界LBを越えるためのロングジャンプJLYが生じる。続いて、第3エクステント・ブロック9103の全体が第3エクステントSSEXTSS[2]として連続して読み出される。
図108に示されているとおり、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再生モードでの再生経路9210と3D再生モードでの再生経路9220とが分離されている。従って、層境界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エクステント・ブロック9103内の最初の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のサイズを十分に小さくすることができる。こうして、各リード・バッファ4121、4122の容量は、3D映像のシームレス再生に必要最小限の値まで更に削減可能である。その結果、配置2では、再生装置102内に確保されるべきリード・バッファの容量を必要最小限に抑えたまま、2D映像と3D映像とのいずれをもシームレスに再生することができるように、各データ・ブロックのサイズを設計することができる。
配置2では、2D再生専用ブロック(B[2]+B[3])2Dの複製データが、二つのSS再生専用ブロックB[2]SS、B[3]SSに分割されて配置されている。その他に、その複製データが単一のSS再生専用ブロックであってもよく、又は三個以上のSS再生専用ブロックに分割されて配置されてもよい。
<エクステント・ペア・フラグ>
図109は、ファイル・ベース9301とファイルDEP9302との各エクステントEXT1[k]、EXT2[k](整数kは0以上である。)に対して設定されたエントリ・ポイント9310、9320を示す模式図である。ファイル・ベース9301のエントリ・ポイント9310は2Dクリップ情報ファイルのエントリ・マップで定義され、ファイルDEP9302のエントリ・ポイント9320はディペンデントビュー・クリップ情報ファイルのエントリ・マップで定義される。各エントリ・ポイント9310、9320は特にエクステント・ペア・フラグを含む。「エクステント・ペア・フラグ」は、ファイル・ベース9301のエントリ・ポイントとファイルDEP9302のエントリ・ポイントとが同じPTSを示すとき、それぞれの設定されたエクステントEXT1[i]、EXT2[j]が各ファイル9301、9302の先頭から同じ順序であるか否か(i=j又はi≠j)を示す。図109を参照するに、(n+1)番目(整数nは1以上である。)のベースビュー・エクステントEXT1[n]に設定された最初のエントリ・ポイント9330のPTSは、(n−1)番目のディペンデントビュー・エクステントEXT2[n−1]に設定された最後のエントリ・ポイント9340のPTSに等しい。従って、各エントリ・ポイント9330、9340のエクステント・ペア・フラグの値は“0”に設定される。同様に、(n+1)番目のベースビュー・エクステントEXT1[n]に設定された最後のエントリ・ポイント9331のPTSは、(n+1)番目のディペンデントビュー・エクステントEXT2[n+1]に設定された最初のエントリ・ポイント9341のPTSに等しい。従って、各エントリ・ポイント9331、9341のエクステント・ペア・フラグの値は“0”に設定される。その他のエントリ・ポイント9310、9320は、PTSが等しいときは設定先のエクステントEXT1[・]、EXT2[・]の順序も等しいので、エクステント・ペア・フラグの値は“1”に設定される。
3D再生モードの再生装置102は、飛び込み再生を開始するときに、再生開始位置のエントリ・ポイントのエクステント・ペア・フラグを参照し、その値が“1”である場合に、そのエントリ・ポイントから実際に再生を開始する。その値が“0”である場合には、そのエントリ・ポイントの前後から、エクステント・ペア・フラグの値が“1”である別のエントリ・ポイントを探して、その別のエントリ・ポイントから再生を開始する。こうして、n番目のディペンデントビュー・エクステントEXT2[n]が確実に、n番目のベースビュー・エクステントEXT1[n]よりも先に読み出される。その結果、飛び込み再生処理を簡単化することができる。
エクステント・ペア・フラグ=0のエントリ・ポイントの間隔は、それに対応する表示時間の長さが一定の秒数以下、例えば1GOP当たりの表示時間長の最大値の2倍以下になるように制限されてもよい。それにより、飛び込み再生の開始時、エクステント・ペア・フラグ=1のエントリ・ポイントの探索に伴う再生開始までの待ち時間を短縮することができる。その他に、エクステント・ペア・フラグ=0のエントリ・ポイントの次のエントリ・ポイントでは、エクステント・ペア・フラグの値が“1”に制限されてもよい。また、アングル切り換えフラグがエクステント・ペア・フラグとして代用されてもよい。ここで、「アングル切り換えフラグ」とは、マルチアングルに対応のコンテンツにおいてエントリ・マップ内に用意されたフラグであって、多重化ストリーム・データにおけるアングルの切り換え位置を示す(マルチアングルについては後述参照)。
<データ・ブロック間での再生期間の一致>
エクステントATC時間の等しいデータ・ブロックの対では更に、再生期間が一致し、かつビデオ・ストリームの再生時間が等しくてもよい。すなわち、それらのデータ・ブロック間でVAUの数が等しくてもよい。その意義は次のとおりである。
図110の(a)は、隣接するベースビュー・データ・ブロックとディペンデントビュー・データ・ブロックとの間でエクステントATC時間が異なり、かつビデオ・ストリームの再生時間が異なるときの再生経路を示す模式図である。図110の(a)を参照するに、先頭のベースビュー・データ・ブロックB[0]の再生時間は4秒間であり、先頭のディペンデントビュー・データ・ブロックD[0]の再生時間は1秒間である。ここで、ディペンデントビュー・データ・ブロックD[0]の復号に必要なベースビュー・ビデオ・ストリームの部分はそのディペンデントビュー・データ・ブロックD[0]と同じ再生時間を持つ。従って、再生装置内のリード・バッファの容量を節約するには、図110の(a)に矢印ARW1で示されているように、再生装置にベースビュー・データ・ブロックB[0]とディペンデントビュー・データ・ブロックD[0]とを交互に同じ再生時間ずつ、例えば1秒間ずつ読み込ませることが好ましい。しかし、その場合、図110の(a)に破線で示されているように、読み出し処理の途中でジャンプが生じる。その結果、読み出し処理を復号処理に間に合わせることが難しいので、シームレス再生を確実に持続することが難しい。
図110の(b)は、隣接するベースビュー・データ・ブロックとディペンデントビュー・データ・ブロックとの間でビデオ・ストリームの再生時間が等しいときの再生経路を示す模式図である。図110の(b)に示されているように、隣接する一対のデータ・ブロックの間でビデオ・ストリームの再生時間が等しくてもよい。例えば、先頭のデータ・ブロック対B[0]、D[0]ではビデオ・ストリームの再生時間が共に1秒に等しく、二番目のデータ・ブロック対B[1]、D[1]ではビデオ・ストリームの再生時間が共に0.7秒に等しい。その場合、3D再生モードの再生装置は、図110の(b)に矢印ARW2で示されているように、データ・ブロックB[0]、D[0]、B[1]、D[1]、…を先頭から順番に読み出す。それだけで、再生装置はメインTSとサブTSとを交互に同じ再生時間ずつ読み出すことをスムーズに実現できる。特にその読み出し処理ではジャンプが生じないので、3D映像のシームレス再生が確実に持続可能である。
実際には、隣接するベースビュー・データ・ブロックとディペンデントビュー・データ・ブロックとの間でエクステントATC時間が等しければ、読み出し処理にジャンプを生じさせることなく、復号処理の同期を維持することはできる。従って、再生期間又はビデオ・ストリームの再生時間が等しくなくても、図110の(b)に示されている場合と同様に、再生装置はデータ・ブロック群を先頭から順番に読み出すだけで、3D映像のシームレス再生を確実に持続できる。
隣接するベースビュー・データ・ブロックとディペンデントビュー・データ・ブロックとの間では、VAUのいずれかのヘッダの数、又はPESヘッダの数が等しくてもよい。データ・ブロック間での復号処理の同期にはそれらのヘッダが利用される。従って、データ・ブロック間でヘッダの数が等しければ、VAUそのものの数が等しくなくても、復号処理の同期を維持することは比較的容易である。更に、VAUそのものの数が等しい場合とは異なり、VAUのデータが全て同じデータ・ブロック内に多重化されていなくてもよい。それ故、BD−ROMディスク101のオーサリング工程において、ストリーム・データの多重化の自由度が高い。
隣接するベースビュー・データ・ブロックとディペンデントビュー・データ・ブロックとの間ではエントリ・ポイントの数が等しくてもよい。図109を再び参照するに、エクステント・ペア・フラグ=0のエントリ・ポイント9330、9340、9331、9341を除けば、ファイル・ベース9301とファイルDEP9302とでは、先頭から同じ順序のエクステントEXT1[k]、EXT2[k]が同じ数のエントリ・ポイント9310、9320を含む。2D再生モードと3D再生モードとではジャンプの有無は異なる。しかし、データ・ブロック間でエントリ・ポイントの数が等しいとき、再生時間も実質的に等しい。従って、ジャンプの有無に関わらず、復号処理の同期を維持することは容易である。更に、VAUそのものの数が等しい場合とは異なり、VAUのデータの全てが同じデータ・ブロック内に多重化されていなくてもよい。それ故、BD−ROMディスク101のオーサリング工程において、ストリーム・データの多重化の自由度が高い。
<マルチアングル>
図111の(a)は、マルチアングルに対応する多重化ストリーム・データの再生経路を示す模式図である。図111の(a)を参照するに、その多重化ストリーム・データには、ベースビュー、ライトビュー、及びデプスマップの三種類のストリーム・データL、R、Dが多重化されている。例えばL/Rモードではベースビューとライトビューとのストリーム・データL、Rがパラレルに再生される。更に、マルチアングル期間PANGで再生される部分にはアングル(視野角)別のストリーム・データAk、Bk、Ckが多重化されている(k=0、1、2、…、n)。各アングルのストリーム・データAk、Bk、Ckは、再生時間がアングル・チェンジ間隔に等しい部分に分割されている。各部分Ak、Bk、Ckには更に、ベースビュー、ライトビュー、及びデプスマップの各ストリーム・データが多重化されている。マルチアングル期間PANGでは、ユーザの操作又はアプリケーション・プログラムの指示に応じて、アングル別のストリーム・データAk、Bk、Ckの間で再生対象を切り換えることができる。
図111の(b)は、BD−ROMディスク上に記録されたデータ・ブロック群9501と、それらに対するL/Rモードでの再生経路9502とを示す模式図である。そのデータ・ブロック群9501は、図111の(a)に示されているストリーム・データL、R、D、Ak、Bk、Ckを含む。図111の(b)を参照するに、そのデータ・ブロック群9501では、通常のストリーム・データL、R、Dに加え、アングル別のストリーム・データAk、Bk、Ckがインターリーブ配置で記録されている。L/Rモードでは、再生経路9502の示すように、ライトビュー・データ・ブロックRとベースビュー・データ・ブロックLとは読み出され、デプスマップ・データ・ブロックDの読み出しはジャンプによってスキップされる。更に、アングル別のストリーム・データAk、Bk、Ckのうち、選択されたもののデータ・ブロックA0、B1、…、Cnは読み出され、その他のデータ・ブロックの読み出しはジャンプによってスキップされる。
図111の(c)は、アングル別のストリーム・データAk、Bk、Ckを構成するエクステント・ブロックを示す模式図である。図111の(c)を参照するに、各アングルのストリーム・データAk、Bk、Ckでは、三種類のデータ・ブロックL、R、Dがインターリーブ配置を構成している。L/Rモードでは、再生経路9502の示すように、アングル別のストリーム・データAk、Bk、Ckのうち、選択されたものA0、B1、…、Cnからライトビュー・データ・ブロックRとベースビュー・データ・ブロックLとが読み出される。一方、他のデータ・ブロックの読み出しはジャンプによってスキップされる。
尚、各アングルのストリーム・データAk、Bk、Ckでは、ベースビュー、ライトビュー、及びデプスマップの各ストリーム・データが単一の多重化ストリーム・データに収められていてもよい。但し、その記録レートは、2D再生装置で再生可能なシステムレートの範囲に抑えられなければならない。また、その多重化ストリーム・データと他の3D映像の多重化ストリーム・データとの間では、システム・ターゲット・デコーダに転送されるべきストリーム・データ(TS)の数が異なる。従って、3Dプレイリスト・ファイル内の各PIは、再生対象のTSの数を示すフラグを含んでもよい。そのフラグを利用して、それらの多重化ストリーム・データを一つの3Dプレイリスト・ファイルの中で切り換えることができる。3D再生モードで2つのTSを再生対象として規定するPIでは、そのフラグが2TSを示す。一方、上記の多重化ストリーム・データのような単一のTSを再生対象として規定するPIでは、そのフラグが1TSを示す。3D再生装置は、そのフラグの値に応じて、システム・ターゲット・デコーダの設定を切り換えることができる。そのフラグは更に、コネクション・コンディション(CC)の値で表現されても良い。例えばCCが“7”を示すときは、2TSから1TSへの移行を示し、“8”を示すときは、1TSから2TSへの移行を示す。
図112は、マルチアングル期間を構成するデータ・ブロック群9601、及び、それらに対する2D再生モードでの再生経路9610とL/Rモードでの再生経路9620とを示す模式図である。図112を参照するに、そのデータ・ブロック群9601は三種類のアングル・チェンジ区間ANG1#k、ANG2#k、ANG3#k(k=1、2、…、6、7)のインターリーブ配置から成る。「アングル・チェンジ区間」は、一つのアングルから見た映像のストリーム・データが連続して格納された一連のデータ・ブロック群をいう。種類の異なるアングル・チェンジ区間では映像のアングルが異なる。各種類のk番目のアングル・チェンジ区間ANG1#k、ANG2#k、ANG3#kは互いに隣接する。各アングル・チェンジ区間ANGm#k(m=1、2、3)は一つのエクステント・ブロックから成り、すなわち一つのエクステントSSEXTSS[k]として参照される(k=10、11、…、23)。それにより、複数のアングル・チェンジ区間が一つのエクステントSSEXTSS[k]を構成する場合よりも、リード・バッファの容量を削減することができる。更に、各エクステント・ブロックはディペンデントビュー・データ・ブロックRとベースビュー・データ・ブロックLとを一つずつ含む。それらのデータ・ブロックの対R、Lはn番目のディペンデントビュー・エクステントEXT2[n]とn番目のベースビュー・エクステントEXT1[n]との対として参照される(整数nは0以上である)。
各エクステント・ブロックのサイズは条件1−4を満たす。特に、条件1で考慮されるべきジャンプは、2D再生モードでの再生経路9610の示す、他のアングル・チェンジ区間の読み出しをスキップするためのジャンプJANG-2Dである。一方、条件4で考慮されるべきジャンプは、L/Rモードでの再生経路9620の示す、他のアングル・チェンジ区間の読み出しをスキップするためのジャンプJANG-LRである。各再生経路9610、9620の示すとおり、いずれのジャンプJANG-2D、JANG-LRも一般に、アングルの切り換え、すなわち、読み出し対象のアングル・チェンジ区間の種類の切り換えを含む。
図112を更に参照するに、各アングル・チェンジ区間はベースビュー・データ・ブロックLを一つ含む。従って、ベースビュー・エクステントEXT1[・]のエクステントATC時間はアングル・チェンジ区間の長さの最大値TANG以下に制限される。例えば、アングルの切り換えを表示時間2秒当たりに1回の割合で実行可能にするには、アングル・チェンジ区間の長さの最大値TANGを2秒間に制限しなければならない。その結果、ベースビュー・エクステントEXT1[・]のエクステントATC時間は2秒以下に制限される。それ故、条件5は、ベースビュー・エクステントのサイズSEXT1が式(5)に代えて次式(9)を満たすことに変更される:
<放送、通信回路を経由したデータ配信>
本発明の実施形態による記録媒体は、光ディスクの他、例えばSDメモリカードを含む可搬性半導体メモリ装置等、パッケージメディアとして利用可能なリムーバブルメディア全般を含む。また、上記の実施形態の説明では、予めデータが記録された光ディスク、すなわち、BD−ROM又はDVD−ROM等の既存の読み出し専用の光ディスクが例に挙げられている。しかし、本発明の実施形態はそれらに限定されない。例えば放送で、又はネットワーク経由で配信された3D映像のコンテンツを端末装置によって、BD−RE又はDVD−RAM等の既存の書き込み可能な光ディスクへ書き込むときに、実施形態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カード等の可搬性半導体メモリカードにも適用可能である。
<電子配信を利用した記録媒体へのデータ記録>
電子配信を利用して本発明の実施形態による再生装置へ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の記録領域に記録されればよく、その配信データへのアクセスは半導体メモリカード内の制御回路によって制御されなくてもよい。
<リアルタイム・レコーディングへの適用>
本発明の実施形態4では、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ディスク等に書き込む。
<マネージド・コピー>
本発明の実施形態による再生装置は更に、マネージド・コピーによって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ストリーム・ファイル、クリップ情報ファイル、及びプレイリスト・ファイルが生成されねばならない。
<データ構造の記述方法>
本発明の実施形態によるデータ構造のうち、「所定型の情報が複数存在する」という繰り返し構造は、for文に制御変数の初期値と繰り返し条件とを記述することによって定義される。また、「所定の条件が成立するときに所定の情報が定義される」というデータ構造は、if文にその条件と、その条件の成立時に設定されるべき変数とを記述することによって定義される。このように、実施形態によるデータ構造は高級プログラミング言語によって記述される。従って、そのデータ構造は、「構文解析」、「最適化」、「資源割付」、及び「コード生成」といったコンパイラによる翻訳過程を経て、コンピュータによって読み取り可能なコードに変換され、記録媒体に記録される。高級プログラミング言語での記述により、そのデータ構造は、オブジェクト指向言語におけるクラス構造体のメソッド以外の部分、具体的には、そのクラス構造体における配列型のメンバー変数として扱われ、プログラムの一部を成す。すなわち、そのデータ構造は、プログラムと実質的に同等である。従って、そのデータ構造はコンピュータ関連の発明として保護を受けるべきである。
<再生プログラムによるプレイリスト・ファイル、クリップ情報ファイルの管理>
プレイリスト・ファイルとAVストリーム・ファイルとが記録媒体に記録されるとき、その記録媒体には再生プログラムが実行形式のファイルとして記録される。再生プログラムはコンピュータに、プレイリスト・ファイルに従ってAVストリーム・ファイルを再生させる。再生プログラムは記録媒体からコンピュータ内のメモリ装置にロードされた後、そのコンピュータによって実行される。そのロード処理はコンパイル処理又はリンク処理を含む。それらの処理により、再生プログラムはメモリ装置内では複数のセクションに分割される。それらのセクションは、textセクション、dataセクション、bssセクション、及びstackセクションを含む。textセクションは、再生プログラムのコード列、変数の初期値、及び書き換え不可のデータを含む。dataセクションは、初期値を持つ変数、及び書き換え可能なデータを含む。dataセクションは特に、記録媒体上に記録された、随時アクセスされるファイルを含む。bssセクションは、初期値を持たない変数を含む。bssセクション内のデータは、textセクション内のコードの示す命令に応じて参照される。コンパイル処理又はリンク処理では、コンピュータ内のRAMにbssセクション用の領域が確保される。stackセクションは、必要に応じて一時的に確保されるメモリ領域である。再生プログラムによる各処理ではローカル変数が一時的に使用される。stackセクションはそれらのローカル変数を含む。プログラムの実行が開始されるとき、bssセクション内の変数はゼロで初期化され、stackセクションには必要なメモリ領域が確保される。
プレイリスト・ファイル及びクリップ情報ファイルは上述のとおり、記録媒体上では既に、コンピュータによって読み取り可能なコードに変換されている。従って、それらのファイルは再生プログラムの実行時、textセクション内の「書き換え不可のデータ」、又はdataセクション内の「随時アクセスされるファイル」として管理される。すなわち、プレイリスト・ファイル及びクリップ情報ファイルは、再生プログラムの実行時にその構成要素の中に組み込まれる。それ故、プレイリスト・ファイル及びクリップ情報ファイルは再生プログラムにおいて、単なるデータの提示を超えた役割を果たす。