以下、本発明の好適な実施形態について、図面を参照しながら説明する。
《実施形態1》
図1は、本発明の実施形態1による立体視映像表示システムを示す模式図である。図1に示されているように、このシステムは、再生装置100、表示装置200、液晶シャッター眼鏡300、リモコン400、及び光ディスク500を含む。
光ディスク500は、例えばBD−ROMディスクであり、立体視映像のコンテンツを含む。特に左目用と右目用との両方のビデオ・ストリームが、オーディオ・ストリームと共に、一つのストリーム・データに多重化されている。
再生装置100は、例えばBD−ROM方式に準拠の光ディスク・ドライブ110を搭載している。再生装置100は、その光ディスク・ドライブ110を利用して、光ディスク500から立体視映像のストリーム・データを読み出してビデオ・データ/オーディオ・データに復号する。特にビデオ・データは左目用と右目用との両方のビデオ・フレームを含む。再生装置100は更にHDMI(High−Definition Multimedia Interface)ケーブル600で表示装置200に接続されている。再生装置100はビデオ・データ/オーディオ・データをHDMI方式の映像信号/音声信号に変換して、HDMIケーブル600を通して表示装置200に伝送する。特に映像信号には、左目用と右目用との両方のビデオ・フレームが時分割で多重化されている。
表示装置200は例えば液晶ディスプレイである。その他に、プラズマ・ディスプレイ及び有機ELディスプレイ等のフラット・パネル・ディスプレイ、又はプロジェクタであってもよい。表示装置200は、映像信号に従って画面201上に映像を再現し、音声信号に従って内蔵のスピーカから音声を発生させる。特に、画面201上には左目用と右目用との映像が交互に再現される。表示装置200は更に左右信号送信部202を搭載し、それを利用して左右信号LRを赤外線又は無線で液晶シャッター眼鏡300に送る。左右信号LRは、その時点で画面201に表示される映像が左目用と右目用とのいずれであるのかを示す。表示装置200は、映像信号に付随する制御信号から左目用ビデオ・フレームと右目用ビデオ・フレームとを識別し、左右信号LRの波形の切り換えをフレームの切り換えに同期させる。
液晶シャッター眼鏡300は二枚の液晶表示パネル301L、301Rと左右信号受信部302とを含む。各液晶表示パネル301L、301Rは左右の各レンズ部分を構成している。左右信号受信部302は左右信号LRを受信し、その波形の変化に応じて左右の液晶表示パネル301L、301Rに信号を送る。各液晶表示パネル301L、301Rはその信号に応じて、光をその全体で一様に透過させ、又は遮断する。特に左右信号LRが左目用の映像表示を示すとき、左目側の液晶表示パネル301Lは光を透過させ、右目側の液晶表示パネル301Rは光を遮断する。左右信号LRが右目用の映像表示を示すときはその逆である。このように、二枚の液晶表示パネル301L、301Rはフレームの切り換えと同期して交互に光を透過させる。その結果、視聴者が液晶シャッター眼鏡300をかけて画面201を見たとき、左目用の映像はその視聴者の左目だけに映り、右目用の映像はその右目だけに映る。そのとき、その視聴者には、各目に映る映像間の違いが一つの立体的物体に対する両眼視差として知覚されるので、その映像が立体的に見える。
リモコン400は操作部と送信部とを含む。操作部は複数のボタンを含む。各ボタンは、電源のオンオフ、又は、光ディスク500の再生開始若しくは停止等、再生装置100又は表示装置200の各機能に対応付けられている。操作部はユーザによる各ボタンの押下を検出し、そのボタンを特定する信号を送信部に渡す。送信部はその信号を赤外線又は無線IRで再生装置100又は表示装置200に通知する。それにより、ユーザは再生装置100又は表示装置200を遠隔操作することができる。
<立体視映像表示の原理>
図2は、上記のシステムによる立体視映像表示の原理を示す模式図である。図2に実線で示されているように、表示装置の画面201に右目用の映像IMRが表示されるとき、左目側の液晶表示パネル301Lは光を遮断し、右目側の液晶表示パネル301Rは光を透過させる。それにより、右目用の映像IMRは視聴者の右目だけに見える。逆に、図2に破線で示されているように、画面201に左目用の映像IMLが表示されるとき、左目側の液晶表示パネル301Lは光を透過させ、右目側の液晶表示パネル301Rは光を遮断する。それにより、左目用の映像IMLは視聴者の左目だけに見える。ここで、右目用の映像IMRと左目用の映像IMLとでは、画面201上での水平方向の位置が変位量SHだけ異なる。従って、右目の視点VPRから右目用の映像IMRまでの間を結ぶ視線VLRが、左目の視点VPLから左目用の映像IMLまでの間を結ぶ視線VLLと、画面201から前方又は後方に離れた位置で交差する。図2の例では、その交差する位置が画面201よりも、矢印DPの示す距離だけ手前である。フレーム・レートが十分に高いとき、右目用の映像IMRの残像が右目に残った状態で左目用の映像IMLが左目に捉えられる。そのとき、視聴者には、右目の視線VLRと左目の視線VLLとの交差する位置に両映像IMR、IMLが浮かび上がって一つの立体視映像IMSとして見える。すなわち、右目だけに見える映像IMRと左目だけに見える映像IMLとの間での変位を、一つの立体的物体に対する両眼視差と視聴者に錯覚させる。それにより、その視聴者に立体視映像IMSを画面201とは異なる奥行きDPに知覚させることができる。
図3は、右目用の映像IMRと左目用の映像IMLとの間の変位量SHによって視聴者に知覚される立体視映像IMSの奥行きDPを示す模式図である。図3の(a)では、右目用の映像IMRに対して左目用の映像IMLが右方向に変位量SH1だけ変位している。この場合、右目VPRの視線VLRと左目VPLの視線VLLとは画面201よりも距離DP1だけ前方で交差する。従って、視聴者には、立体視映像IMSが画面201よりも距離DP1だけ手前に見える。図3の(b)では、右目用の映像IMRに対して左目用の映像IMLが左方向に変位量SH2だけ変位している。この場合、右目VPRの視線VLRと左目VPLの視線VLLとは画面201よりも距離DP2だけ後方で交差する。従って、視聴者には、立体視映像IMSが画面201よりも距離DP2だけ奥に見える。このように、右目用の映像IMRに対する左目用の映像IMLの変位の方向・大きさを調節することにより、視聴者に知覚される立体視映像IMSの奥行きを調節することができる。
<光ディスク500のデータ構造>
図4は、光ディスク500がBD−ROMディスクであるとき、それに記録されたデータの構造を示す模式図である。図4に示されているように、BD−ROMディスク500上のデータ記録領域の最内周部にはBCA(Burst Cutting Area)が設けられている。BCAに対しては光ディスク・ドライブ110によるアクセスのみが許可され、アプリケーション・プログラムによるアクセスは禁止されている。それにより、BCAは例えば著作権保護技術に利用される。BCAよりも外側のデータ記録領域には、トラックと呼ばれる領域500Aが、BD−ROMディスク500の内周から外周へ向けて螺旋状に形成されている。トラック500Aは、内周側から順に、リード・イン領域501、ボリューム領域502、及びリード・アウト領域503を含む。図4を参照するに、トラック500Aが横方向に引き伸ばされ、内周側が左側に置かれ、外周側が右側に置かれるように描画されている。リード・イン領域501はBCAのすぐ外周側に設けられている。リード・イン領域501には、ボリューム領域502に記録されたデータのサイズ及び物理アドレス等、ボリューム領域502へのアクセスに必要な情報が記録されている。リード・アウト領域503はBD−ROMディスク500の最外周部に設けられ、ボリューム領域502の終端を示す。ボリューム領域502はリード・イン領域501とリード・アウト領域503との間に設けられている。ボリューム領域502には映像及び音声等のアプリケーション・データが記録されている。
ボリューム領域502に対するファイルシステムとしては、例えばUDF(Universal Disc Format)又はISO9660が採用されている。ボリューム領域502は一つの論理アドレス空間として管理される。更に、ボリューム領域502に記録されたデータはディレクトリ及びファイルを構成するように整理されている。それにより、それらのデータはディレクトリ単位又はファイル単位でアクセス可能である。
図4には更に、ボリューム領域502に記録されたデータのディレクトリ構造504が示されている。このディレクトリ構造504では、ルート(ROOT)ディレクトリ510の直下に証明書(CERTIFICATE)ディレクトリ511とBDムービー(BDMV)ディレクトリ512とが置かれている。CERTIFICATEディレクトリ511には、BD−ROMディスク500に記録されたコンテンツの認証情報が格納される。BDMVディレクトリ512には、そのコンテンツの本体を成すストリーム・データが格納される。
CERTIFICATEディレクトリ511には特にアプリケーション証明書ファイル(app.discroot.crt)511Aが置かれている。このファイル511Aは、BD−ROMディスク500に記録されたコンテンツのプロバイダ(以下、コンテンツ・プロバイダという。)に固有のものである。アプリケーション証明書ファイル511Aはいわゆるデジタル証明書であり、Java(登録商標)アプリケーション・プログラムの認証に利用される。ここで、Javaアプリケーション・プログラムは、Javaに準拠のバイトコード・プログラムであり、再生装置100に実装されたJava仮想マシン(後述参照)によって、BD−ROMディスク500から読み出されて実行される。具体的には、アプリケーション証明書ファイル511Aは、Java仮想マシンにより、BD−ROMディスク500からJavaアプリケーション・プログラムが読み出されたとき、その署名検証に利用される。署名検証では、そのJavaアプリケーション・プログラムの改竄の有無及びその供給元の確認が行われる。それにより、例えば、コンテンツ・プロバイダによって許可されたJavaアプリケーション・プログラムのみをJava仮想マシンに起動させ、又は、Javaアプリケーション・プログラムに対して再生装置100内の各記憶装置へのアクセス権限を選択的に付与させることができる。
BDMVディレクトリ512には、インデックス・ファイル(index.bdmv)512Aとムービー・オブジェクト・ファイル(MovieObject.bdmv)512Bとが置かれている。BDMVディレクトリ512には更に、プレイリスト(PLAYLIST)ディレクトリ513、クリップ情報(CLIPINF)ディレクトリ514、ストリーム(STREAM)ディレクトリ515、BD−Jオブジェクト(BDJO)ディレクトリ516、Javaアーカイブ(JAR)ディレクトリ517、及びメタ(META)ディレクトリ518が置かれている。PLAYLISTディレクトリ513にはプレイリスト・ファイル(000001.mpls)513Aが置かれている。CLIPINFディレクトリ514にはクリップ情報ファイル(000001.clpi)514Aが置かれている。STREAMディレクトリ515にはオーディオ/ビジュアル(AV)ストリーム・ファイル(000001.m2ts)515Aが置かれている。BDJOディレクトリ516にはBD−Jオブジェクト・ファイル(XXXXX.bdjo)516Aが置かれている。JARディレクトリ517にはJARファイル(YYYYY.jar)517Aが置かれている。METAディレクトリ518にはXML(Extensible Markup Language)ファイル(ZZZZZ.xml)518Aが置かれている。以下、これらのファイルについて順に説明する。
≪インデックス・ファイル512A≫
インデックス・ファイル512Aはインデックス・テーブルを含む。インデックス・テーブルは、「ファーストプレイ」、「トップメニュー」、及び「タイトル」という項目を含む。各項目には、ムービー・オブジェクトとBD−Jオブジェクトとのいずれかが対応付けられている。ユーザの操作又はアプリケーション・プログラムによってタイトル又はメニューが呼び出される度に、再生装置100の制御部はインデックス・テーブルの対応する項目を参照して、その項目に対応付けられているオブジェクトを光ディスク500から呼び出す。制御部は更に、呼び出されたオブジェクトに従ってプログラムを実行する。具体的には、項目「ファーストプレイ」には、光ディスク500が光ディスク・ドライブ110へ挿入された時に呼び出されるべきオブジェクトが指定されている。項目「トップメニュー」には、例えばユーザの操作で「メニューに戻れ」というコマンドが入力された時に表示装置200にメニューを表示させるためのオブジェクトが指定されている。項目「タイトル」には、例えばユーザの操作で再生対象のタイトルが指定されたとき、そのタイトルに対応するストリーム・データを光ディスク500から再生するためのオブジェクトが指定されている。
≪ムービー・オブジェクト・ファイル512B≫
ムービー・オブジェクト・ファイル512Bは一般に複数のムービー・オブジェクトを含む。各ムービー・オブジェクトはナビゲーション・コマンドの配列を含む。ナビゲーション・コマンドは、一般的なDVDプレーヤによる再生処理と同様な再生処理を再生装置100に実行させるための命令である。ナビゲーション・コマンドは、例えば、タイトルに対応するプレイリスト・ファイルの読み出し命令、プレイリスト・ファイルの示すAVストリーム・ファイルからのストリーム・データの再生命令、及び、別のタイトルへの遷移命令を含む。再生装置100の制御部は、例えばユーザの操作に応じて各ムービー・オブジェクトを呼び出して、そのムービー・オブジェクトに含まれるナビゲーション・コマンドを配列の順番で実行する。それにより、再生装置100は、一般的なDVDプレーヤと同様に、表示装置200にメニューを表示してユーザにコマンドを選択させ、そのコマンドに応じて、タイトルの再生開始/停止、別のタイトルへの切り換え等、再生される映像の進行を動的に変化させる。このように、ムービー・オブジェクトに従った再生装置100の動作モードをHDMV(High Definition Movie)モードという。
≪BD−Jオブジェクト・ファイル516A≫
BD−Jオブジェクト・ファイル516AはBD−Jオブジェクトを一つ含む。BD−Jオブジェクトは、再生装置100に実装されたJava仮想マシンに、タイトルの再生処理及びグラフィックス映像の描画処理を実行させるためのプログラムである。BD−Jオブジェクトは、アプリケーション管理テーブルと、参照対象のプレイリスト・ファイルの識別情報とを含む。アプリケーション管理テーブルは、Java仮想マシンに実際に実行させるべきJavaアプリケーション・プログラムのリストを示す。アプリケーション管理テーブルでは特に、アプリケーションIDとアイコン・ロケータとが互いに対応付けられている。アプリケーションIDは実行対象のJavaアプリケーション・プログラムの識別子を示す。アイコン・ロケータは、各Javaアプリケーション・プログラムに対応付けられたアイコンのデータのアドレスを示す。参照対象のプレイリスト・ファイルの識別情報は、再生対象のタイトルに対応するプレイリスト・ファイルを識別するための情報である。Java仮想マシンは、ユーザの操作又はアプリケーション・プログラムに従って各BD−Jオブジェクトを呼び出し、そのBD−Jオブジェクトに含まれるアプリケーション管理テーブルに従ってJavaアプリケーション・プログラムのシグナリングを実行する。それにより、再生装置100は、タイトルの再生映像の進行を動的に変化させ、又は表示装置200にグラフィックス映像をタイトルの映像とは独立に表示させる。このように、BD−Jオブジェクトに従った再生装置100の動作モードをBD−Jモードという。
図5は、HDMVモードとBD−Jモードとのそれぞれで表示装置の画面201に表示される映像を示す模式図である。図5の(a)は、HDMVモードで再生される映像の一場面を示す。HDMVモードでの再生映像は一般に、DVDから再生される映像と同様、一つのコンテンツの映像が画面201の全体に表示される。一方、図5の(b)は、BD−Jモードで再生される映像の一場面を示す。BD−Jモードでは、光ディスク500から再生される映像に併せて、再生装置100内のJava仮想マシンにグラフィックス映像を描画させることができる。例えば図5の(b)に示されているように、画面201の中に、映画の映像SCN、その映画の表題TL、及び、その映画の解説を行うフクロウのアニメーション映像CRを同時に表示することができる。
≪JARファイル517A≫
JARファイル517Aは、BD−Jオブジェクトに従って実行されるJavaアプリケーション・プログラムの本体を格納している。それらのJavaアプリケーション・プログラムは、Java仮想マシンにタイトルの再生処理を実行させるものの他、グラフィックス映像の描画処理を実行させるものを含む。JARファイル517Aは更に、各Javaアプリケーション・プログラムに対応付けられたアイコンのデータを含む。それらのアイコンはJavaアプリケーション・プログラムにより、グラフィックス映像内の一要素として利用される。各Javaアプリケーション・プログラムは、「xlet」と呼ばれる小プログラムとデータとから成る。Java仮想マシンはBD−Jオブジェクトに従ってJARファイル517Aから必要なxlet及びデータを、内蔵メモリのヒープ領域(ワークメモリとも呼ばれる。)にロードして実行する。
≪AVストリーム・ファイル515A≫
AVストリーム・ファイル515Aは、コンテンツの本体を成すストリーム・データであり、ビデオ・ストリーム及びオーディオ・ストリーム等、複数のエレメンタリ・ストリームが多重化されている。例えばコンテンツが立体視映像による映画であるとき、各エレメンタリ・ストリームはその映画の立体視映像、音声、又は字幕を表す。図6は、AVストリーム・ファイル515Aを構成する複数のエレメンタリ・ストリームを再生時間順に示す模式図である。図6を参照するに、AVストリーム・ファイル515Aは、二種類のプライマリ・ビデオ・ストリームVL、VR、二種類のプライマリ・オーディオ・ストリームA1、A2、及び二種類のグラフィックス・ストリームPG1、PG2を含む。二種類のプライマリ・ビデオ・ストリームのうち、左目用ビデオ・ストリームV1は映画の左目用の主映像を表し、右目用ビデオ・ストリームV2は右目用の主映像を表す。各プライマリ・オーディオ・ストリームA1、A2は映画の主音声を表す。二種類のプライマリ・オーディオ・ストリームA1、A2の間では音声の言語が異なる。その他に、出力方式が異なっていてもよい。各グラフィックス・ストリームPG1、PG2は映画の字幕をグラフィックス映像で表す。二種類のグラフィックス・ストリームPG1、PG2の間では字幕の言語が異なる。
AVストリーム・ファイル515Aでは、複数のエレメンタリ・ストリームを多重化する方式としてMPEG−2トランスポート・ストリーム(TS)形式が採用されている。すなわち、AVストリーム・ファイル515A内では、各エレメンタリ・ストリームは複数のTSパケットに分割されている。各TSパケットには、エレメンタリ・ストリームごとに異なるパケットID(PID)が割り当てられているので、各TSパケットの属するエレメンタリ・ストリームはPIDによって識別される。例えば図6のように、左目用ビデオ・ストリームV1には0x1011がPIDとして割り当てられ、右目用ビデオ・ストリームV2には0x1012がPIDとして割り当てられ、プライマリ・オーディオ・ストリームA1、A2には0x1100から0x111FまでのいずれかがPIDとして割り当てられ、グラフィックス・ストリームPG1、PG2には0x1200から0x121FまでのいずれかがPIDとして割り当てられている。
図7は、AVストリーム・ファイル515Aを構成する各エレメンタリ・ストリームのTSパケットの配列を示す模式図である。左目用ビデオ・ストリーム551A、右目用ビデオ・ストリーム551B、オーディオ・ストリーム554、及びグラフィックス・ストリーム557はそれぞれ、まずPES(Packetized Elementary Stream)パケットの列552、555、558に変換され、次にTSパケットの列553、556、559に変換される。続いて、各TSパケットに個別にヘッダが付加される。このヘッダが付加されたTSパケットをソース・パケットという。最後に、各ソース・パケット560が順番に一列に並べられ、1本のAVクリップ・ファイル515Aを構成する。ここで、図7に示されているように、ソース・パケット560は先頭から順に番号付けされている。その番号をソース・パケット・ナンバ(SPN:Source Packet Number)と呼ぶ。SPNは、AVクリップ・ファイル515A内での各TSパケットのアドレスとして利用される。
例えばビデオ・ストリーム551A、551BからはTSパケットの列553が次のようにして得られる。まず、左目用ビデオ・ストリーム551Aに含まれる左目用ビデオ・フレーム551Lと、右目用ビデオ・ストリーム551Bに含まれる右目用ビデオ・フレーム551Rとが交互にPESパケット552に変換される。各PESパケット552はPESヘッダとPESペイロードとを含む。各ビデオ・フレーム551L、551Rは、MPEG−2、MPEG−4 AVC、又はVC−1等の符号化方式で一つのピクチャに圧縮され、各PESペイロードに格納される。一方、各PESヘッダには、同じPESパケットのPESペイロードに格納されたピクチャの表示時刻(PTS:Presentation Time−Stamp)が格納される。PTSは、再生装置100内のデコーダによって一つのエレメンタリ・ストリームから復号された一フレームのデータがそのデコーダから出力されるべき時刻をいう。次に、各PESパケット552は一般に複数のTSパケット553に変換される。TSパケット553は固定長のパケットであり、TSヘッダとTSペイロードとを含む。TSヘッダは、対応するTSペイロードに格納されたビデオ・ストリーム551A又は551BのPIDを含む。各PESパケット552は一般には分割されて複数のTSペイロードに格納される。最後に、各TSパケット553にヘッダが付与されて、そのTSパケット553がソース・パケット560に変換される。
同様に、オーディオ・ストリーム554から変換されたPESパケット555では、LPCM(Linear Pulse Code Modulation)方式のオーディオ・データが所定の符号化形式で圧縮されてPESペイロードに格納され、そのデータのPTSがPESヘッダに格納される。ここで、オーディオ・ストリーム554の符号化形式としては、AC−3、ドルビー・デジタル・プラス(Dolby Digital Plus:「ドルビー・デジタル」は登録商標)、DTS(Digital Theater System:登録商標)、又はDTS−HD LBRが利用される。グラフィックス・ストリーム557から変換されたPESパケット558では、グラフィックス・データが所定の符号化形式で圧縮されてPESペイロードに格納され、そのデータのPTSがPESヘッダに格納される。
≪クリップ情報ファイル514A≫
図8は、クリップ情報ファイル514Aのデータ構造を示す模式図である。CLIPINFディレクトリ514に置かれたクリップ情報ファイル514Aは、STREAMディレクトリ515に置かれたAVストリーム・ファイル515Aと一対一に対応する。クリップ情報ファイル514Aは、対応するAVストリーム・ファイル515A内のSPNとPTSとの間の対応関係を規定する。クリップ情報ファイル514Aは更に、対応するAVストリーム・ファイル515A内に多重化されている各エレメンタリ・ストリームの属性を示す。
図8に示されているように、クリップ情報ファイル514Aはストリーム属性情報541とエントリ・マップ・テーブル542とを含む。ストリーム属性情報541では、AVストリーム・ファイル515A内の各エレメンタリ・ストリームに関する属性情報が、そのエレメンタリ・ストリームのPIDに対応付けられている。属性情報の詳細は、ビデオ・ストリーム、オーディオ・ストリーム、及びグラフィックス・ストリームの間で異なる。例えばビデオ・ストリームのPIDに対応付けられた属性情報は、圧縮に利用されたコーデックの識別情報、各ピクチャの解像度とアスペクト比、及びフレーム・レートを含む。一方、オーディオ・ストリームのPIDに対応付けられた属性情報は、圧縮に利用されたコーデックの識別情報、チャンネル数、言語、及びサンプリング周波数を含む。これらの属性情報は再生装置100内でデコーダの初期化に利用される。
エントリ・マップ・テーブル542は、エレメンタリ・ストリームごとにSPNとPTSとの間の対応関係を規定する。例えば図8に示されているように、エントリ・マップ・テーブル542は、ビデオ・ストリームのPIDごとにエントリ・マップ543を含む。エントリ・マップ543では、そのビデオ・ストリーム内の各ピクチャ群(GOP)の先頭、すなわち、各イントラ・ピクチャ(Iピクチャ)のPTS544に、そのIピクチャを含むソース・パケットのSPN545が対応付けられている。再生装置100はエントリ・マップ543を参照することにより、ビデオ・ストリームに含まれるフレームのうち、任意のPTSでのフレームを含むソース・パケットをAVストリーム・ファイル515Aの中から特定できる。例えば、早送り再生及び巻戻し再生等の特殊再生では再生装置100は、エントリ・マップ543に記述された各SPN545のソース・パケットをAVストリーム・ファイル515Aの中から選択してデコーダに送る。それにより、Iピクチャが選択的に再生される。
エントリ・マップ・テーブル542では、ビデオ・ストリーム以外のエレメンタリ・ストリームについても同様に、エントリ・マップが特定のデータ部分のPTSとSPNとを対応付けている。従って、再生装置100はそのエントリ・マップを参照することにより、各エレメンタリ・ストリーム内の任意のPTSに対応するAVストリーム・ファイル内のソース・パケットを特定できる。
≪プレイリスト・ファイル513A≫
図9は、プレイリスト・ファイル513Aのデータ構造を示す模式図である。図9に示されているように、プレイリスト・ファイル513Aはプレイリスト情報530を含む。プレイリスト情報530は、AVストリーム・ファイル515Aの再生経路、すなわち、そのAVストリーム・ファイル515Aのうち、再生対象の部分をその再生時刻、すなわちPTSで規定する。プレイリスト情報530は、1つ以上のプレイアイテム情報531、532、533、次元識別フラグ534、及びグラフィックス・プレーン・シフト量535を含む。
各プレイアイテム情報531−533は、AVストリーム・ファイル515Aのうち、連続して再生されるべき部分をその再生区間、すなわち再生開始時刻と再生終了時刻との対で規定する。プレイアイテム情報531−533には通し番号が振られている。その通し番号は、各プレイアイテム情報531−533によって規定されるAVストリーム・ファイル515Aの各部分の再生順序を表す。その通し番号はまた、各プレイアイテム情報531−533の識別子、すなわちプレイアイテムIDとして利用される。
次元識別フラグ534は、プレイアイテム情報531−533の規定する再生経路の表示次元を示す。次元識別フラグ534によって表される表示次元には、二次元と三次元との二種類がある。「表示次元が二次元である」とは、再生経路の映像が通常の二次元映像であることを意味し、「表示次元が三次元である」とは、再生経路の映像が立体視映像であることを意味する。
グラフィックス・プレーン・シフト量535は、グラフィックス・ストリームPG1、PG2の表すグラフィックス映像、特に字幕の知覚されるべき奥行きを示す。ここで、図3に示されているように、グラフィックス映像の奥行きは、左目に映るその映像と右目に映るその映像との間での変位量で決まる。従って、グラフィックス・プレーン・シフト量535は具体的には例えば次のように定義される。各グラフィックス・ストリームPG1、PG2は、表示対象のグラフィックス映像のデータと共に、そのグラフィックス映像のビデオ・フレーム内での表示位置を表すパラメータを含む。グラフィックス・プレーン・シフト量535は、それらのパラメータで表された表示位置を基準とする相対的な変位量の対で定義される。その対の一方は左目用ビデオ・フレームに関し、他方は右目用ビデオ・フレームに関する。その対は大きさが等しく、符号、すなわち変位の方向が逆である。図3に示されている右目用の映像IMRと左目用の映像IMLとの間の変位量SH1、SH2は、グラフィックス・プレーン・シフト量535の表す変位量の対の差に相当する。
図10は、プレイアイテム情報531のデータ構造を示す模式図である。他のプレイアイテム情報532、533のデータ構造も同様である。図10に示されているように、プレイアイテム情報531は、参照クリップ情報571、再生開始時刻572、再生終了時刻573、及びストリーム選択テーブル574を含む。参照クリップ情報571は、AVストリーム・ファイル515Aの参照に必要なクリップ情報ファイル514Aを識別するための情報である。再生開始時刻572と再生終了時刻573とは、AVストリーム・ファイル515Aのうち、再生対象の部分の先頭と末尾との各PTSを示す。ストリーム選択テーブル574は、再生開始時刻572から再生終了時刻573までの間に、再生装置100内のデコーダによってAVストリーム・ファイル515Aの中から選択可能なエレメンタリ・ストリームのリストを表す。
図10に示されているように、ストリーム選択テーブル574は複数のストリーム・エントリ580を含む。ストリーム・エントリ580はストリーム選択番号581とストリーム識別情報582とを含む。ストリーム選択番号581はストリーム・エントリ580の通し番号である。ストリーム識別情報582は、AVストリーム・ファイル515Aに多重化されているエレメンタリ・ストリームのいずれかのPIDを示す。このPIDの示すエレメンタリ・ストリームが、再生開始時刻572から再生終了時刻573までの間にAVストリーム・ファイル515Aの中から選択可能である。
図11は、プレイリスト情報530に従って再生されるAVストリーム・ファイル515Aの各部分CL1、CL2、CL3を示す模式図である。図11に示されている時間軸MPはコンテンツの再生時間を表す。コンテンツの再生には以下に示すように、プレイリスト情報、クリップ情報ファイル、及びAVストリーム・ファイルの組み合わせが利用される。
再生装置100は、図9に示されているプレイリスト情報530の中から、プレイアイテム情報#1531、プレイアイテム情報#2532、プレイアイテム情報#3533をプレイアイテムIDの順に参照する。例えばプレイアイテム情報#1531が参照されるとき、まず、その参照クリップ情報571(図10参照)の示すクリップ情報ファイル514Aのエントリ・マップ・テーブル542(図8参照)から、再生開始時刻IN1に対応するPTS#1544が検索される。次に、そのPTS#1544に対応するSPN#1545が開始アドレスSP1として特定される。同様に、再生終了時刻OUT1に対応するSPNが終了アドレスEP1として特定される。続いて、クリップ情報ファイル514Aのストリーム属性情報541(図8参照)が利用され、プレイアイテム情報#1531のストリーム選択テーブル574(図10参照)に登録されたエレメンタリ・ストリームの中から、再生装置100と表示装置200との両方で再生可能なものが検出される。そのとき、例えば再生装置100と表示装置200との両方が複数の出力形式のオーディオ・データに対応可能であれば、オーディオ・ストリームが複数検出され得る。このように、同種であっても属性の異なるエレメンタリ・ストリームが複数検出されたとき、それらのエレメンタリ・ストリームの中で最小のストリーム選択番号581を持つものが選択され、その選択されたエレメンタリ・ストリームのPID582がデコーダに設定される。但し、次元識別フラグ534の示す表示次元が三次元であるとき、再生装置100と表示装置200とがいずれも立体視映像表示に対応可能であれば、左目用ビデオ・ストリームVLのPID“0x1011”と右目用ビデオ・ストリームVRのPID“0x1012”との両方がデコーダに設定される。一方、再生装置100と表示装置200とのいずれかが立体視映像表示に非対応であれば、左目用ビデオ・ストリームVLのPIDだけがデコーダに設定される。その結果、AVストリーム・ファイル515A内のアドレス範囲SP1−EP1の部分CL1から特定のPIDのエレメンタリ・ストリームがデコーダによって抽出され、再生開始時刻IN1から再生終了時刻OUT1までの再生区間PI1に再生されるべきストリーム・データが復号される。同様に、プレイアイテム情報#2532の規定する再生区間PI2では、AVストリーム・ファイル515A内のアドレス範囲SP2−EP2の部分CL2から特定のPIDのエレメンタリ・ストリームがデコーダによって復号され、プレイアイテム情報#3533の規定する再生区間PI3では、AVストリーム・ファイル515A内のアドレス範囲SP3−EP3の部分CL3から特定のPIDのエレメンタリ・ストリームがデコーダによって復号される。
≪XMLファイル518A≫
XMLファイル518Aは、光ディスク500に記録されたコンテンツに関する様々な情報を含む。それらの情報は、例えば、光ディスク500の識別情報、コンテンツ・プロバイダの識別情報、コンテンツに含まれるタイトルのリスト、各タイトルに関する情報、タイトルのリストを画面に表示するときに利用されるサムネイル映像を含む。尚、XMLファイル518Aはコンテンツの再生には必須の情報ではなく、省略されてもよい。
<再生装置100のハードウェア構成>
図12は、再生装置100のハードウェア構成を示すブロック図である。図12を参照するに、再生装置100は、光ディスク・ドライブ110、ローカル・ストレージ120、操作部130、ネットワーク・インタフェース140、バス150、制御部160、再生部170、及びHDMI送信部180を含む。光ディスク・ドライブ110、ローカル・ストレージ120、操作部130、及びネットワーク・インタフェース140はバス150を通して制御部160及び再生部170と通信可能である。また、制御部160と再生部170とはバス150を通して互いに通信可能である。
光ディスク・ドライブ110は、内部に挿入された光ディスク500にレーザ光を照射し、その反射光の変化から、光ディスク500に記録されたデータを読み取る。光ディスク・ドライブ110は特にBD−ROMディスクに対応可能である。制御部160からデータの読み出しが指示されたとき、光ディスク・ドライブ110は光ディスク500のボリューム領域502(図4参照)からデータを読み出して、ローカル・ストレージ120、制御部160、又は再生部170に転送する。
ローカル・ストレージ120は書き換え可能な大容量の記憶装置であり、例えば外部ネットワーク800上のサーバ装置900から追加コンテンツをダウンロードして保存する。追加コンテンツは、例えば光ディスク500に記録されたオリジナル・コンテンツに追加され、又は置換されるべきコンテンツである。追加コンテンツは例えば、副音声、オリジナルの字幕とは異なる言語の字幕、特典映像、アプリケーション・プログラムのアップデート版を含む。ローカル・ストレージ120はその他に、制御部160によってアプリケーション・プログラムに従って利用されるパラメータ及びテーブル等を保存してもよい。図12では、ローカル・ストレージ120は、カードリーダ/ライタ111とHDD112とを含む。カードリーダ/ライタ111は、内部に挿入されたメモリカード700に対してデータを読み書きできる。HDD112は再生装置100に内蔵されている。その他に、図12には示されていないが、外付けのHDDが所定のインタフェースを通してバス150に接続され、ローカル・ストレージ120として利用されてもよい。
操作部130は、リモコン400から赤外線等の無線で送出されたコマンドを受信して解読し、そのコマンドの内容を制御部160に通知する。操作部130はその他に、再生装置100のフロント・パネルに設けられたボタンの押下を検出して制御部160に通知する。
ネットワーク・インタフェース140は外部ネットワーク800とバス150との間を通信可能に接続する。それにより、制御部160はネットワーク・インタフェース140を通してネットワーク800上のサーバ装置900と通信可能である。
制御部160はマイクロコンピュータ・システムであり、CPU160A、ROM160B、及びRAM160Cを含み、それらが内部バス160Dで互いに接続されている。ROM160Bには、再生装置100の基本動作を制御するためのプログラム(ファームウェア)が記録されている。ファームウェアは、バス150に接続された各要素110−140、170のデバイス・ドライバを含む。CPU160Aは、例えば電源投入に応じてROM160Bからファームウェアを読み出して実行する。それにより、各要素110−140、170の初期化が制御されるだけでなく、Javaプラットフォーム、すなわちBD−Jオブジェクトの実行環境が整備される。RAM160CはCPU160Aに対して作業領域を提供する。制御部160はそれらの要素160A−Cの組み合わせを利用してファームウェア及びアプリケーション・プログラムを実行し、それらに従って他の要素を制御する。
制御部160は特に、光ディスク500又はローカル・ストレージ120に記録されたコンテンツから所望のタイトルを読み出して再生部170に再生させる。具体的には、制御部160はまず、光ディスク500又はローカル・ストレージ120から、再生対象のタイトルに対応するプレイリスト情報、すなわちカレント・プレイリスト情報を読み出し、それに従って再生対象のAVストリーム・ファイル、すなわちカレント・AVストリーム・ファイルを選択する。制御部160は次に、光ディスク・ドライブ110又はローカル・ストレージ120に、カレント・AVストリーム・ファイルを読み出して再生部170へ供給するように指示する。
一方、制御部160はカレント・プレイリスト情報から、次元識別フラグの示す表示次元を確認する。その表示次元が「二次元」であるとき、制御部160は再生部170に対して表示次元を「二次元」に指定する。その表示次元が「三次元」であるとき、制御部160は更に、再生装置100と表示装置200とが立体視映像表示に対応可能であるか確認する。再生装置100と表示装置200との少なくともいずれかが立体視映像表示に非対応であれば、制御部160は再生部170に対して表示次元を「二次元」に指定する。再生装置100と表示装置200とがいずれも立体視映像表示に対応可能であれば、制御部160は再生部170に対して表示次元を「三次元」に指定する。それと共に、制御部160はカレント・プレイリスト情報からグラフィックス・プレーン・シフト量を読み出し、所定のOSDプレーン・シフト量と共に再生部170に渡す。ここで、OSDプレーン・シフト量は、OSDの知覚されるべき奥行きを示す。具体的には、OSDプレーン・シフト量はグラフィックス・プレーン・シフト量と同様、左目用と右目用との各ビデオ・フレームにおける、OSDの基準位置に対する相対的な変位量で定義される。
制御部160はその他に、カレント・AVストリーム・ファイルから分離されるべきエレメンタリ・ストリームのPIDをカレント・プレイリスト情報に従って選択し、再生部170に指定する。特に、再生部170に対して表示次元が「二次元」に指定されたとき、選択されたPID群はプライマリ・ビデオ・ストリームのPIDを一つ含む。一方、再生部170に対して表示次元が「三次元」に指定されたとき、選択されたPID群はプライマリ・ビデオ・ストリームのPIDを左目用と右目用との二種類含む。
制御部160は更にOSD機能を備える。すなわち、制御部160は、操作部130によって受け付けられたユーザによる操作、又はアプリケーション・プログラムからの指示に応じて、対応するOSDのグラフィックス・データを再生部170へ送出する。
制御部160はまた、ポップアップ表示機能を備える。すなわち、制御部160は、ユーザによる操作又はアプリケーション・プログラムからの指示に応じて、ポップアップ表示を制御するためのBD−Jオブジェクトを呼び出す。制御部160は更に、そのBD−Jオブジェクトに従ってアプリケーション・プログラムを実行する。そのアプリケーション・プログラムは制御部160にポップアップ表示のグラフィックス・データを生成させて再生部170へ送出させる。
図13は、二次元映像に重ねられたOSD及びポップアップ表示を示す図である。図13の(a)に示されているOSDG1は、再生開始を示す。図13の(b)に示されているOSDG2は、再生の一時停止を示す。図13の(c)に示されているOSDG3は、早送りを示す。図13の(d)に示されているOSDG4は、画面の明るさの設定画面を示す。図13の(e)に示されているOSDG5は、音量の設定画面を示す。図13の(f)に示されているポップアップ表示G6は、再生対象のチャプタの選択画面を示す。
制御部160は、再生部170に対して表示次元を「三次元」に指定した後、OSDのグラフィックス・データを新たに再生部170へ送出するとき、再生部170に表示次元を「疑似二次元」に切り換えさせ、かつグラフィックス・プレーン・シフト量を0に変更させる。そのOSDのグラフィックス・データの送出後、制御部160は、所定時間の経過、ユーザによる操作、又はアプリケーション・プログラムからの指示に応じ、再生部170へOSDの消去命令を送出する。例えば、図13の(a)に示されているOSDG1については所定時間の経過に応じて消去命令が送出される。図13の(b)に示されているOSDG2についてはユーザによる「一時停止」状態の解除操作に応じて消去命令が送出される。図13の(c)に示されているOSDG3については、プレイリスト情報の示す再生経路の終端への再生区間の到達がアプリケーション・プログラムから指示されたときに、消去命令が送出される。図13の(d)、(e)に示されているOSDG4、G5についても同様である。制御部160は更に、再生部170に表示次元を「三次元」へ戻させる。
制御部160が再生部170に対して表示次元を「三次元」に指定した後、アプリケーション・プログラムが制御部160にポップアップ表示のグラフィックス・データを再生部170へ送出させるとき、アプリケーション・プログラムは制御部160を通じて、再生部170に表示次元を「疑似二次元」に切り換えさせ、かつグラフィックス・プレーン・シフト量を0に変更させる。アプリケーション・プログラムは更に制御部160にBD−Jプレーン・シフト量を再生部170へ送出させる。ここで、BD−Jプレーン・シフト量は、ポップアップ表示の知覚されるべき奥行きを示す。具体的には、BD−Jプレーン・シフト量はグラフィックス・プレーン・シフト量と同様、左目用と右目用との各ビデオ・フレームにおける、ポップアップ表示の基準位置に対する相対的な変位量で定義される。
アプリケーション・プログラムは、制御部160にポップアップ表示のグラフィックス・データを送出させた後、ユーザによる操作に応じて、制御部160に再生部170へポップアップ表示の消去命令を送出させる。例えば、図13の(f)に示されているポップアップ表示G6については、ユーザの操作を通じて、所望のチャプタを示す情報が受け付けられたとき、アプリケーション・プログラムは制御部160から再生部170へポップアップ表示の消去命令を送出させる。アプリケーション・プログラムは更に制御部160を通じて再生部170に表示次元を「三次元」へ戻させる。
再生部170は、光ディスク・ドライブ110又はローカル・ストレージ120からカレント・AVストリーム・ファイルを読み込む。再生部170はそのとき、そのファイルから、制御部160によって予め指定されたPIDのエレメンタリ・ストリームを分離する。再生部170は更に、分離された各エレメンタリ・ストリームを復号する。それにより、ビデオ・ストリームからはビデオ・プレーンが生成され、オーディオ・ストリームからはオーディオ・データが生成され、グラフィックス・ストリームからはグラフィックス・プレーンが生成される。再生部170は続いて、ビデオ・プレーンとグラフィックス・プレーンとを一枚ずつ、一枚のビデオ・フレームに合成する。更に、そのビデオ・フレームからビデオ・データVDが構成され、オーディオ・データADと共に出力される。
再生部170は、ビデオ・プレーンの生成処理について、表示次元別に三種類の動作モード、すなわち、「二次元表示モード」、「三次元表示モード」、及び「疑似二次元表示モード」を備えている。
表示次元が「二次元」に指定されたとき、動作モードは「二次元表示モード」に設定される。その動作モードでは、再生部170はまず、カレント・AVストリーム・ファイルから、指定されたPIDの示す一本のプライマリ・ビデオ・ストリームを分離する。再生部170は次に、分離されたビデオ・ストリームに含まれるピクチャ群を非圧縮のビデオ・フレーム群に復号し、各ビデオ・フレームを順次、ビデオ・プレーンとして利用する。
表示次元が「三次元」に指定されたとき、動作モードは「三次元表示モード」に設定される。その動作モードでは、再生部170はまず、カレント・AVストリーム・ファイルから、指定された二種類のPIDの示す二本のプライマリ・ビデオ・ストリーム、すなわち左目用と右目用とのビデオ・ストリームを分離する。再生部170は次に、分離された各ビデオ・ストリームに含まれるピクチャ群を非圧縮のビデオ・フレーム群に復号する。再生部170は更に、左目用と右目用とのビデオ・フレームを交互に、一枚のビデオ・プレーンとして利用する。
表示次元が「疑似二次元」に指定されたとき、動作モードは「疑似二次元表示モード」に設定される。疑似二次元動作モードではピクチャの復号処理までは「三次元表示モード」と全く同様に行われる。しかし、疑似二次元表示モードでは三次元表示モードとは異なり、左目用ビデオ・フレームだけが一枚当たり二度ずつ繰り返しビデオ・プレーンとして利用され、右目用ビデオ・フレームは破棄される。
三次元表示モードでは、再生部170は更に、グラフィックス・ストリームの表すグラフィックス映像、特に字幕の水平方向での表示位置が異なる左目用と右目用とのグラフィックス・プレーンを交互に生成する。ここで、再生部170はグラフィックス・プレーン・シフト量を利用して、それらのグラフィックス・プレーン間でのグラフィックス映像の変位量を決める。左目用グラフィックス・プレーンは左目用ビデオ・フレームに合成され、右目用グラフィックス・プレーンは右目用ビデオ・フレームに合成される。再生部170は合成後の左目用と右目用とのビデオ・フレームを交互に表示装置200へ出力する。それにより、カレント・AVストリーム・ファイルの表す映像/字幕は立体視映像として再現される。
疑似二次元表示モードでは、グラフィックス・プレーン・シフト量が0に変更される。従って、再生部170は、生成されたグラフィックス・プレーンをそのまま、二度ずつ繰り返し利用する。すなわち、グラフィックス・ストリームの表すグラフィックス映像の水平方向での表示位置は変更されない。再生部170はまた、上記のとおり、左目用ビデオ・フレームだけをビデオ・プレーンとして利用する。一方、再生部170はOSDプレーン・シフト量を利用して左目用と右目用とのOSDプレーンを交互に生成する。それらのOSDプレーン間では、OSDの水平方向での表示位置が異なる。同様に、再生部170はBD−Jプレーン・シフト量を利用して、左目用と右目用とのBD−Jプレーンを交互に生成する。それらのBD−Jプレーン間では、ポップアップ表示の水平方向での表示位置が異なる。再生部170は更に、グラフィックス・プレーンと左目用ビデオ・プレーンとの同じ組み合わせに対し、左目用のOSDプレーン/BD−Jプレーンと右目用のOSDプレーン/BD−Jプレーンとを交互に合成する。その合成で得られた左目用と右目用とのビデオ・フレームは交互に表示装置200へ出力される。その結果、OSD/ポップアップ表示は立体視映像として再現される一方、カレント・AVストリーム・ファイルの表す映像/字幕は二次元映像として再現される。
制御部160と再生部170とは互いに異なるチップに実装されている。その他に、両者が単一のチップに実装されていてもよい。尚、制御部160と再生部170との各機能の詳細については後述する。
HDMI送信部180はHDMIケーブル600で表示装置200に接続されている。HDMI送信部180は、再生部170からビデオ・データVDを受けて、それをHDMI形式の映像信号に変換する。特に映像信号には左目用と右目用との両方のビデオ・フレームが時分割で多重化される。一方、HDMI送信部180は、再生部170からオーディオ・データADを受けて、それをHDMI形式の音声信号に変換する。HDMI送信部180は更に、変換された映像信号及び音声信号を同期信号及び付随データと多重化し、HDMIケーブル600を通して表示装置200へ送出する。尚、HDMI送信部180は再生部170に組み込まれていてもよい。また、音声信号は、サラウンド・システム等、表示装置200に外付けされたアンプ又はスピーカに出力されてもよい。
<制御部160の内部構成の詳細>
図14は、制御部160の機能ブロック図である。図14に示されているように、制御部160は、バス・インタフェース161、ユーザ操作検知モジュール162、仮想ファイルシステム163、及び再生制御部164を含む。制御部160は、その内部に組み込まれたファームウェアを実行することにより、各機能部161−164を実現する。
バス・インタフェース161は、バス150を通して制御部160内の各機能部を、図12に示されている各要素110−140、170に通信可能に接続する。バス・インタフェース161は特に、仮想ファイルシステム163からの指示に従い、光ディスク・ドライブ110からは光ディスク500上のオリジナル・コンテンツを読み込み、ローカル・ストレージ120からは追加コンテンツを読み込む。
ユーザ操作検知モジュール162は、操作部130からの通知INTを受信して、その通知INTからユーザによる操作の内容を識別する。ユーザ操作検知モジュール162は更に、その操作内容を示す操作信号UOを再生制御部164へ送出する。ここで、その操作内容は、例えば光ディスク・ドライブ110における光ディスク500の挿入/抜出、及び、リモコン400又は再生装置100のフロント・パネルでの再生/停止/早送り/巻戻し等のボタンの押下を含む。
仮想ファイルシステム163は、再生制御部164による光ディスク500及びローカル・ストレージ120に対するファイル・アクセスを管理する。特に、仮想ファイルシステム163は、光ディスク500上のオリジナル・コンテンツのデータ構造504(図4参照)とローカル・ストレージ120内の追加コンテンツのデータ構造とから仮想パッケージを構築する。それにより、アプリケーション・プログラムでは、光ディスク500上のオリジナル・コンテンツとローカル・ストレージ120内の追加コンテンツとが区別されることなく、同じ仮想パッケージ上のコンテンツとして記述される。
仮想ファイルシステム163は更に、再生制御部164からの命令COMに応じて、仮想パッケージからインデックス・ファイルIFを読み出して再生制御部164に渡す。その後、仮想ファイルシステム163は、再生制御部164からの命令COM及びユーザ操作検知モジュール162からの操作信号UOに応じて、仮想パッケージへのファイル・アクセスを管理する。例えば、仮想ファイルシステム163は仮想パッケージから再生対象のシナリオ情報、すなわちカレントのシナリオ情報DS、SSを読み出して再生制御部164に渡す。ここで、シナリオ情報は動的シナリオ情報DSと静的シナリオ情報SSとを含む。動的シナリオ情報DSは、ムービー・オブジェクト・ファイル、BD−Jオブジェクト・ファイル、及びJARファイルを含む。静的シナリオ情報SSは、プレイリスト・ファイルとクリップ情報ファイルとを含む。仮想ファイルシステム163は更に、再生制御部164からの命令COMに従って、光ディスク・ドライブ110又はローカル・ストレージ120にカレント・AVストリーム・ファイルを再生部170に供給させる。
再生制御部164は、ファームウェアを実行してアプリケーション・プログラムの実行環境を整え、更にその環境下で、動的シナリオ情報DSからアプリケーション・プログラムを読み出して実行する。それにより、再生制御部164は、アプリケーション・プログラムに従って、再生装置100内の各要素によるストリーム・データの再生処理を制御する。
具体的には、ユーザ操作検知モジュール162からの操作信号UOが光ディスク・ドライブ110への光ディスク500の挿入を示すとき、再生制御部164はまず、その光ディスク500からインデックス・ファイルIFを読み出し、その中のインデックス・テーブルのうち、項目「ファーストプレイ」を参照して、その項目で指定されているオブジェクトを特定する。再生制御部164は次に、そのオブジェクトをカレントの動的シナリオ情報DSとして光ディスク500から呼び出し、そのオブジェクトに従ってアプリケーション・プログラムを実行する。例えばそのアプリケーション・プログラムが仮想パッケージの構築を要求するとき、再生制御部164はまず、光ディスク500上のBDMVディレクトリ511(図4参照)に記録されたオリジナル・コンテンツに対する追加コンテンツがローカル・ストレージ120に保持されているか確認する。もし保持されていなければ、再生制御部164はネットワーク・インタフェース140を制御して、サーバ装置900からローカル・ストレージ120へ追加コンテンツを転送させてもよい。再生制御部164は次に、その追加コンテンツを用いた仮想パッケージの構築を仮想ファイルシステム163に命令COMで指示する。
再生制御部164は続いて、仮想ファイルシステム163にその仮想パッケージからインデックス・ファイルIFを読み出させる。その後、再生制御部164は、ユーザ操作検知モジュール162からの操作信号UOに応じてインデックス・ファイルIF内のインデックス・テーブルから一つの項目を選択する。再生制御部164は更に、その項目で指定されているオブジェクトに関連するファイル群をカレントの動的シナリオ情報DSとして決定し、その動的シナリオ情報DSを仮想ファイルシステム163に命令COMで要求する。次いで、再生制御部164は、その動的シナリオ情報DSに従って一つのプレイリスト・ファイルとそれの参照するクリップ情報ファイルとをカレントの静的シナリオ情報SSとして決定し、その静的シナリオ情報SSを仮想ファイルシステム163に命令COMで要求する。再生制御部164は続いて、その静的シナリオ情報SSに従ってカレント・AVストリーム・ファイルを選択して、仮想ファイルシステム163に命令COMで指定する。
一方、再生制御部164は、カレントの静的シナリオ情報SS内のカレント・プレイリスト情報から、次元識別フラグの示す表示次元を確認する。再生制御部164は更に、その表示次元の値、及び、再生装置100と表示装置200とが立体視映像表示に対応可能であるか否かに応じて、再生部170に対して表示次元を二次元又は三次元に指定する。表示次元を三次元に指定するとき、再生制御部164はカレント・プレイリスト情報からグラフィックス・プレーン・シフト量を読み出して、OSDプレーン・シフト量と共に再生部170に渡す。再生制御部164は更に再生部170に、カレント・AVストリーム・ファイルから分離されるべきエレメンタリ・ストリームのPIDを指定する。
図14に示されているように、再生制御部164は、動的シナリオ・メモリ1641、静的シナリオ・メモリ1642、モード管理モジュール1643、HDMVモジュール1644、BD−Jモジュール1645、AV再生ライブラリ1646、及びOSD制御モジュール1647を含む。
動的シナリオ・メモリ1641と静的シナリオ・メモリ1642とはいずれも、制御部160内のRAM160Cの一領域である(図12参照)。動的シナリオ・メモリ1641は、仮想ファイルシステム163からカレントの動的シナリオ情報DS、すなわち、ムービー・オブジェクト・ファイル、BD−Jオブジェクト・ファイル、又はJARファイルを受信して格納する。これらのファイルはHDMVモジュール1644又はBD−Jモジュール1645によって処理される。静的シナリオ・メモリ1642は、仮想ファイルシステム163からカレントの静的シナリオ情報SS、すなわち、カレント・プレイリスト・ファイル及びクリップ情報ファイルを受信して格納する。この静的シナリオ情報SSはAV再生ライブラリ1646によって参照される。
モード管理モジュール1643は、仮想ファイルシステム163からインデックス・ファイルIFを受信して保持する。モード管理モジュール1643は更にそのインデックス・ファイルIFを利用して再生装置100の動作モードを管理する。具体的には、モード管理モジュール1643は、ユーザ操作検知モジュール162からの操作信号UOに応じてインデックス・ファイルIF内のインデックス・テーブルから一つの項目を選択し、その項目で指定されているオブジェクトの種類に応じて、カレントの動的シナリオ情報DSをHDMVモジュール1644又はBD−Jモジュール1645に割り当てる。具体的には、そのオブジェクトがムービー・オブジェクトであるとき、カレントの動的シナリオ情報DSはHDMVモジュール1644に割り当てられ、そのオブジェクトがBD−Jオブジェクトであるとき、カレントの動的シナリオ情報DSはBD−Jモジュール1645に割り当てられる。前者の動作モードがHDMVモードであり、後者の動作モードがBD−Jモードである。モード管理モジュール1643は更に、ユーザ操作検知モジュール162からの操作信号UOが動作モードの切り換えを示すとき、又は各モジュール1644、1645から動作モードの切り換えを要求されたとき、動的シナリオ情報DSの割り当て先を両モジュール1644、1645の間で切り換える。
モード管理モジュール1643はディスパッチャ1643Aを含む。ディスパッチャ1643Aはユーザ操作検知モジュール162から操作信号UOを受信し、その中から、現在の動作モードに適した操作信号UOを選択して、動的シナリオ情報DSの割り当て先のモジュール1644又は1645に渡す。例えば操作信号UOが早送り再生/巻戻し再生を示すとき、ディスパッチャ1643Aはその操作信号UOを、HDMVモードであればHDMVモジュール1644に渡し、BD−JモードであればBD−Jモジュール1645に渡す。一方、操作信号UOが光ディスク・ドライブ110への光ディスク500の挿入を示すとき、ディスパッチャ1643Aは、AV再生ライブラリ1646を通して仮想ファイルシステム163にインデックス・ファイルIFの読み出しを命令COMで指示する。読み出されたインデックス・ファイルIFはモード管理モジュール1643によって保持される。また、ディスパッチャ1643Aは、操作信号UOの示す操作内容に応じて、その操作信号UOをOSD制御モジュール1647にも渡す。
HDMVモジュール1644は仮想的なDVDプレーヤであり、光ディスク500からのタイトルの再生処理を一般的なDVDプレーヤによる再生処理と同様に制御する。具体的には、HDMVモジュール1644は動的シナリオ・メモリ1641内の動的シナリオ情報DSからムービー・オブジェクトを読み出し、それに含まれるナビゲーション・コマンドを配列の順番で実行する。それにより、HDMVモジュール1644は各ナビゲーション・コマンドの示す処理を順番にAV再生ライブラリ1646に指示する。
BD−Jモジュール1645はJavaプラットフォームであり、特にJava仮想マシンを含む。BD−Jモジュール1645は、動的シナリオ・メモリ1641内の動的シナリオ情報DSからBD−Jオブジェクトを読み出し、それを制御部160内のCPU160A(図12参照)用のネィティブ・コードに変換してAV再生ライブラリ1646に渡す。それにより、BD−Jモジュール1645は、そのBD−Jオブジェクトの示すタイトルの再生処理をAV再生ライブラリ1646に指示する。BD−Jモジュール1645はまた、BD−Jオブジェクトに従ってネットワーク・インタフェース140にサーバ装置900との通信を行わせて、追加コンテンツをサーバ装置900からローカル・ストレージ120へダウンロードさせる。
その他に、BD−Jモジュール1645は操作信号UOに応じて、ポップアップ表示を制御するためのJavaアプリケーション・プログラムを実行する。そのJavaアプリケーション・プログラムは、AV再生ライブラリ1646に備えられたアプリケーション・プログラム・インタフェース(API)を利用して、ポップアップ表示及びアニメーション映像等のグラフィックス・データGD1を生成する。ポップアップ表示は、例えば図13の(f)に示されているチャプタの選択画面G6のようなGUI用の対話画面及びメニューを含む。アニメーション映像等は例えば、図5の(b)に示されているような、映画の映像SCN、映画の表題TL、及びフクロウの映像CRを含む。グラフィックス・データGD1にはJFIF(JPEG)又はPNG等のラスタ・データが利用される。Javaアプリケーション・プログラムは更にBD−Jモジュール1645に、バス・インタフェース161及びバス150を通して、グラフィックス・データGD1を再生部170へ送出させる。Javaアプリケーション・プログラムによるポップアップ表示の制御の詳細については後述する。
AV再生ライブラリ1646は、各モジュール1644、1645からの指示に従ってAV再生処理又はプレイリスト再生処理を指示する。「AV再生処理」とは、光ディスクの再生装置として基本的な処理であって、一般的なDVDプレーヤ及びCDプレーヤによる再生処理を踏襲したものをいう。具体的には、AV再生処理は例えば、再生処理の開始と停止、一時停止とその解除、静止画機能の解除、早送りと巻戻し、音声の切り換え、字幕の切り換え、及びアングルの切り換えを含む。一方、「プレイリスト再生処理」は主に、静的シナリオ情報SSに則ったタイトルの再生処理をいう。すなわち、プレイリスト再生処理では、カレント・プレイリスト情報に従ってカレント・AVストリーム・ファイルが選択されて、仮想ファイルシステム163に命令COMで指定される。プレイリスト再生処理はその他に、仮想パッケージの構築処理、及び、仮想パッケージから各シナリオ・メモリ1641、1642へのシナリオ情報DS、SSの転送処理を含む。AV再生処理及びプレイリスト再生処理の各機能はAPIとしてAV再生ライブラリ1646に実装されている。AV再生ライブラリ1646は、指示された処理に応じたAPIを実行することにより、仮想ファイルシステム163を通して、光ディスク・ドライブ110、ローカル・ストレージ120、及び再生部170等に命令COMを送る。それにより、AV再生ライブラリ1646は、指示された処理を実現させる。
AV再生ライブラリ1646は更に、レジスタ1646A、次元判定部1646B、及び、再生モード制御API1646Cを含む。
レジスタ1646Aは、再生装置100及び表示装置200の現時点での設定状態を表すパラメータ、設定可能な状態を表すパラメータ、及び初期設定を表すパラメータを格納する。現時点での設定状態を表すパラメータは、例えば復号対象のオーディオ・ストリーム及びグラフィックス・ストリームの各ストリーム選択番号、並びに、カレントのプレイリスト情報及びプレイアイテム情報の各識別子を含む。設定可能な状態を表すパラメータは、例えば選択可能な音声/字幕の言語の種類、及びオーディオ・データの符号化方式の種類を含む。AV再生ライブラリ1646は各モジュール1644、1645からの指示に従ってレジスタ1646Aを参照する。それにより、各プレイアイテム情報のストリーム選択テーブルに登録されたエレメンタリ・ストリームの中から、再生装置100と表示装置200との両方で再生可能なものが検出される。AV再生ライブラリ1646は更に、検出されたエレメンタリ・ストリームの中で最小のストリーム選択番号を持つものを選択し、そのストリーム選択番号をレジスタ1646Aに格納する。それと共に、そのストリーム選択番号の示すエレメンタリ・ストリームの属性のうち、符号化形式及び言語の種類等、所定のものが、クリップ情報ファイル514A内のストリーム属性情報541(図8参照)から読み出されてレジスタ1646Aに格納される。AV再生ライブラリ1646は更に、選択されたエレメンタリ・ストリームのPIDを再生部170に指定する。そのとき、AV再生ライブラリ1646は、符号化形式の種類等、選択されたエレメンタリ・ストリームの復号処理に必要な情報をレジスタ1646Aから再生部170へ転送する。
次元判定部1646Bはカレント・プレイリスト情報から、次元識別フラグの示す表示次元を確認する。その表示次元が「二次元」であるとき、次元判定部1646Bは表示次元を「二次元」に決定する。その表示次元が「三次元」であるとき、次元判定部1646Bは更にレジスタ1646Aにアクセスし、再生装置100と表示装置200とが立体視映像表示に対応可能であるか確認する。再生装置100と表示装置200との少なくともいずれかが立体視映像表示に非対応であれば、次元判定部1646Bは表示次元を「二次元」に決定する。再生装置100と表示装置200とがいずれも立体視映像表示に対応可能であれば、次元判定部1646Bは表示次元を「三次元」に決定する。こうして決定された表示次元を示す次元信号DIMを、次元判定部1646Bはバス・インタフェース161及びバス150を通して再生部170へ送出する。それと共に、次元判定部1646Bはカレント・プレイリスト情報からグラフィックス・プレーン・シフト量GSを読み出し、所定のOSDプレーン・シフト量OSと共に再生部170に渡す。
再生モード制御API1646Cは、各モジュール1644、1645、1647からの呼び出しに応じて、AV再生ライブラリ1646によって実行される。それにより、まず、再生部170の動作モードが調べられる。その動作モードが「三次元表示モード」であるとき、AV再生ライブラリ1646は更に再生モード制御API1646Cに従い、再生部170に、設定済みのグラフィックス・プレーン・シフト量とBD−Jプレーン・シフト量とを一旦退避させ、その上でそれらをいずれも0に再設定させる。ここで、退避領域としては、再生部170内のメモリ又は制御部160内のRAM160Cが利用される。AV再生ライブラリ1646は更に再生モード制御API1646Cに従い、バス・インタフェース161及びバス150を通して再生部170へ、表示次元が「疑似二次元」であることを示す次元信号DIMを送出する。それにより、AV再生ライブラリ1646は再生部170にその動作モードを「疑似二次元表示モード」に切り換えさせる。一方、再生モード制御API1646Cが呼び出されたときの再生部170の動作モードが「疑似二次元表示モード」であるとき、AV再生ライブラリ1646は次元信号DIMを利用して、再生部170にその動作モードを「三次元表示モード」に切り換えさせる。AV再生ライブラリ1646は更に再生モード制御API1646Cに従い、再生部170に、退避領域からグラフィックス・プレーン・シフト量とBD−Jプレーン・シフト量とを復帰させる。
OSD制御モジュール1647は、操作信号UO又は他のモジュール1644、1645からの指示に従って、対応するOSDのグラフィックス・データGD2を生成し、バス・インタフェース161及びバス150を通して再生部170に渡す。OSD制御モジュール1647は更に再生モード制御API1646Cを呼び出し、再生部170の動作モードが「三次元表示モード」であれば「疑似二次元表示モード」に切り換えさせる。グラフィックス・データGD2の送出後、所定時間の経過、新たな操作信号UOの受信、又は他のモジュール1644、1645からの指示に応じ、OSD制御モジュール1647は再生部170へOSDの消去命令RQ2を送る。そのとき、OSD制御モジュール1647は更に再生モード制御API1646Cを呼び出し、再生部170の動作モードを「疑似二次元表示モード」から「三次元表示モード」に戻させる。
Javaアプリケーション・プログラムはポップアップ表示の制御を次のように行う。Javaアプリケーション・プログラムはBD−Jモジュール1645に、対応するポップアップ表示のグラフィックス・データGD1及びBD−Jプレーン・シフト量BSを生成させ、バス・インタフェース161及びバス150を通して再生部170へ送出させる。Javaアプリケーション・プログラムは更にBD−Jモジュール1645を通して再生モード制御API1646Cを呼び出す。それにより、再生部170の動作モードが「三次元表示モード」であれば「疑似二次元表示モード」に切り替わる。グラフィックス・データGD1及びBD−Jプレーン・シフト量BSの送出後、新たな操作信号UOの受信に応じ、Javaアプリケーション・プログラムはAPIを利用して再生部170へポップアップ表示の消去命令RQ1を送る。Javaアプリケーション・プログラムはそのとき、更に再生モード制御API1646Cを呼び出す。それにより、再生部170の動作モードが「疑似二次元表示モード」から「三次元表示モード」へ戻る。
<再生部170の内部構成の詳細>
図15は、再生部170の機能ブロック図である。図15を参照するに、再生部170は、バス・インタフェース171、トラック・バッファ172A、表示次元記憶部172B、デマルチプレクサ173、左右フラグ記憶部173A、ビデオ・デコーダ174A、グラフィックス・デコーダ174B、オーディオ・デコーダ174C、レンダリング・エンジン175、ビデオ・プレーン・メモリ176、イメージ・プレーン・メモリ177、プレーン・シフト・エンジン178、及び加算部179を含む。イメージ・プレーン・メモリ177は、OSDプレーン・メモリ177A、BD−Jプレーン・メモリ177B、及びグラフィックス・プレーン・メモリ177Cを含む。これらの機能部は単一のチップに実装されている。その他に、いくつかの機能部が異なるチップに実装されてもよい。
バス・インタフェース171は、バス150を通して再生部170内の各機能部を、図12に示されている光ディスク・ドライブ110、ローカル・ストレージ120、及び制御部160に通信可能に接続する。バス・インタフェース171は特に、仮想ファイルシステム163からの指示に従い、カレント・AVストリーム・ファイルCLを光ディスク・ドライブ110又はローカル・ストレージ120からトラック・バッファ172Aへ転送する。
トラック・バッファ172Aは、再生部170に内蔵の先入れ先出し(FIFO)メモリである。トラック・バッファ172A、172Bはバス・インタフェース171からAVストリーム・ファイルCLを読み込んで一時的に保持する。
表示次元記憶部172Bは、表示次元を示すフラグを書き換え可能に保存する。そのフラグは、表示次元が「二次元」であることを示すもの、表示次元が「三次元」であることを示すもの、及び、表示次元が「疑似二次元」であることを示すものを含む。表示次元記憶部172Bはバス・インタフェース171及びバス150を通して制御部160から次元信号DIMを受信するごとに、それの示す表示次元に対応するフラグを立て、他のフラグを解除する。
デマルチプレクサ173はまず、カレント・AVストリーム・ファイルCLから分離されるべきエレメンタリ・ストリームのPIDをAV再生ライブラリ1646から受信する。デマルチプレクサ173は次に、トラック・バッファ172Aからカレント・AVストリーム・ファイルCLをソース・パケット単位で読み出し、各ソース・パケットからTSパケットを取り出す。デマルチプレクサ173は更に、そのTSパケットのTSヘッダからPIDを読み取って分離対象のエレメンタリ・ストリームのPIDと照合する。両者が一致したとき、デマルチプレクサ173はそのTSパケットを抽出してPID別に収集する。こうして収集されたTSパケットから、デマルチプレクサ173はPESパケットを復元し、PID別に3種類のデコーダ174A−Cのいずれかへ送出する。例えばTSパケットのPIDが0x1011又は0x1012であるとき、そのTSパケットから復元されたPESパケットはビデオ・デコーダ174Aへ送出される。PIDが0x1100から0x111Fまでのいずれかであるとき、PESパケットはオーディオ・デコーダ174Cへ送出される。PIDが0x1200から0x121Fまでのいずれかであるとき、PESパケットはグラフィックス・デコーダ174Cへ送出される。
ここで、カレント・AVストリーム・ファイルCLに多重化された情報が、例えばグラフィックス・ストリームに含まれるナビゲーション・ボタン(Navigation Button)等のGUI用グラフィック部品に関する情報のように、アプリケーション・プログラムによって動的シナリオ情報として利用されるものを含むときがある。デマルチプレクサ173はカレント・AVストリーム・ファイルCLからそのような情報を分離したとき、バス・インタフェース171を通してその情報SYSを動的シナリオ・メモリ1641(図14参照)へ転送する。
カレント・AVストリーム・ファイルCLから分離されるべきエレメンタリ・ストリームのPIDの中に、左目用ビデオ・ストリームのPID“0x1011”と右目用ビデオ・ストリームのPID“0x1012”との両方が含まれているとき、デマルチプレクサ173は更に、PIDが0x1011又は0x1012であるTSパケットからPESパケットを復元してビデオ・デコーダ174Aへ送出するごとに、そのPIDが0x1011と0x1012とのいずれであるかを示す左右信号L/Rを左右フラグ記憶部173Aに送出する。
左右フラグ記憶部173Aは左右フラグを書き換え可能に保存する。左右フラグは、ビデオ・デコーダ174Aによって処理中のPESパケットから復号されるビデオ・プレーンが左目用と右目用とのいずれであるかを示す。例えば、左右フラグが立っている状態は、そのビデオ・プレーンが左目用であることを示し、左右フラグが解除されている状態は、そのビデオ・プレーンが右目用であることを示す。その場合、左右フラグ記憶部173Aは、左右信号L/Rが左目用ビデオ・ストリームのPID“0x1011”を示すときに左右フラグを立て、左右信号L/Rが右目用ビデオ・ストリームのPID“0x1012”を示すときに左右フラグを解除する。こうして、左右フラグ記憶部173Aは左右信号L/Rを受けるごとに左右フラグの状態を変化させ、すなわち“フリップ”させる。
ビデオ・デコーダ174Aは、AV再生ライブラリ1646から復号対象のプライマリ・ビデオ・ストリームについて、符号化形式の種類等、復号処理に必要な情報を受け取る。ビデオ・デコーダ174Aは更に表示次元記憶部172Bにアクセスして表示次元を確認する。その情報及び表示次元に応じ、ビデオ・デコーダ174Aは復号処理の種類を決定する。その後、ビデオ・デコーダ174Aはデマルチプレクサ173からプライマリ・ビデオ・ストリームのPESパケットを受信して内部のバッファに蓄える。それと並行して、ビデオ・デコーダ174AはそのバッファからPESパケットを読み出してPESヘッダを取り除き、残りのPESペイロードから、符号化されたピクチャを取り出して非圧縮のビデオ・フレームに復号する。
ビデオ・デコーダ174Aは、以下に述べるように、表示次元別に三種類の動作モード、すなわち、「二次元表示モード」、「三次元表示モード」、及び「疑似二次元表示モード」を備えている。これらの動作モードが、再生部170の上記三種類の動作モードに相当する。ビデオ・デコーダ174Aは表示次元記憶部172Bにアクセスして表示次元を確認し、その表示次元に応じて動作モードを選択する。
表示次元が二次元であるとき、ビデオ・デコーダ174Aは「二次元表示モード」に移行する。二次元表示モードでは、ビデオ・デコーダ174Aは非圧縮のピクチャを順次、元のPESヘッダに記述されたPTSの示す時刻にビデオ・プレーン・メモリ176に書き込む。
表示次元が三次元であるとき、ビデオ・デコーダ174Aは「三次元表示モード」に移行する。三次元表示モードでは、デマルチプレクサ173がPESパケットをPID別に、ビデオ・デコーダ174A内の二つのバッファに振り分ける。それにより、左目用と右目用とのビデオ・ストリームのPESパケットが異なるバッファに分離される。ビデオ・デコーダ174Aは更に、二つのバッファから交互にPESパケットを取り出して、それに含まれるピクチャを非圧縮のビデオ・フレームに復号する。非圧縮のビデオ・フレームが一枚復号されるごとに、ビデオ・デコーダ174Aは表示次元記憶部172Bにアクセスして表示次元を確認する。表示次元が三次元に維持されていれば、ビデオ・デコーダ174Aはまず、非圧縮のビデオ・フレームを、元のPESヘッダに記述されたPTSの示す時刻にビデオ・プレーン・メモリ176に書き込む。すなわち、左目用と右目用とのビデオ・フレームが交互にビデオ・プレーン・メモリ176に書き込まれる。その一方で、ビデオ・デコーダ174Aは、各非圧縮のビデオ・フレームがいずれのバッファ内のPESパケットから復号されたか、すなわち、そのビデオ・フレームが左目用と右目用とのいずれであるかを識別する。ビデオ・デコーダ174Aは更にその識別結果を切換信号PTDでビデオ・プレーン・メモリ176に伝える。
一方、表示次元が疑似二次元に変更されていたとき、ビデオ・デコーダ174Aは「三次元表示モード」から「疑似二次元表示モード」に移行する。疑似二次元表示モードでは、ビデオ・デコーダ174Aはまず、三次元表示モードと同様、二つのバッファから交互に各ピクチャを非圧縮のビデオ・フレームに復号し、対応するPTSの示す時刻に合わせて、各ビデオ・フレームを交互にビデオ・プレーン・メモリ176に書き込む。その一方で、ビデオ・デコーダ174Aは、各非圧縮のビデオ・フレームがいずれのバッファ内のPESパケットから復号されたかにかかわらず、そのバッファが左目用ビデオ・ストリームのPESパケットに割り当てられたものであること、すなわち、そのビデオ・フレームが左目用であることを示すように、切換信号PTDの状態を固定する。
グラフィックス・デコーダ174Bは、デマルチプレクサ173からグラフィックス・ストリームのPESパケットを受信し、そのPESパケットから、符号化されたグラフィックス・データを取り出して非圧縮のものに復号する。グラフィックス・デコーダ174Bは更に、そのPESパケットに記述されたPTSの示す時刻に非圧縮のグラフィックス・データをグラフィックス・プレーン・メモリ177Cに書き込む。
オーディオ・デコーダ174CはAV再生ライブラリ1646から復号対象のプライマリ・オーディオ・ストリームについて、符号化形式の種類等、復号処理に必要な情報を受け取る。更に、その情報に応じ、オーディオ・デコーダ174Cは復号処理の種類を決定する。その後、オーディオ・デコーダ174Cはデマルチプレクサ173からプライマリ・オーディオ・ストリームのPESパケットを受信して内部のバッファに蓄える。それと並行して、オーディオ・デコーダ174CはそのバッファからPESパケットを読み出して、そのPESパケットからPESヘッダを取り除き、残りのPESペイロードから、符号化されたLPCM方式のオーディオ・データを取り出して非圧縮のものに復号する。オーディオ・デコーダ174Cは更にその非圧縮のオーディオ・データADを、そのTSパケットに記述されたPTSの示す時刻に出力する。
レンダリング・エンジン175は、Java2D又はOPEN−GL等のソフトウェアを備え、BD−Jモジュール1645を通したJavaアプリケーション・プログラムからの指示に従ってグラフィックス映像のデータを生成し、そのデータをBD−Jプレーン・メモリ177Bに書き込む。レンダリング・エンジン175は特に、BD−Jモジュール1645からポップアップ表示のグラフィックス・データGD1を受信したとき、そのグラフィックス・データGD1からBD−Jプレーンを生成してBD−Jプレーン・メモリ177Bに書き込む。レンダリング・エンジン175は更に、OSD制御モジュール1647からOSDのグラフィックス・データGD2を受信したとき、そのグラフィックス・データGD2からOSDプレーンを生成してOSDプレーン・メモリ177Aに書き込む。レンダリング・エンジン175はまた、BD−Jモジュール1645を通してJavaアプリケーション・プログラムからポップアップ表示の消去命令RQ1を受けたとき、BD−Jプレーン・メモリ177B上のBD−Jプレーンを消去する。一方、レンダリング・エンジン175はOSD制御モジュール1647からOSDの消去命令RQ2を受けたとき、OSDプレーン・メモリ177A上のOSDプレーンを消去する。
ビデオ・プレーン・メモリ176は、再生部170に内蔵のメモリに確保された二次元配列のデータ領域である。ビデオ・プレーン・メモリ176は特にその配列を二つ含む。各配列のサイズは一枚のビデオ・フレームのサイズに等しい。また、配列の各要素には一つのピクセル・データが格納される。ピクセル・データは色座標値とα値(不透明度)との組み合わせから成る。色座標値はRGB値又はYCrCb値で表される。ビデオ・プレーン・メモリ176内の各配列には、ビデオ・デコーダ174Aによって非圧縮のビデオ・フレームが一枚ずつ書き込まれる。各ビデオ・フレームから、映画の主映像を表す一枚のビデオ・プレーンが構成される。
特に表示次元が「三次元」又は「疑似二次元」であるとき、ビデオ・プレーン・メモリ176内の各配列にはビデオ・デコーダ174Aから非圧縮のビデオ・フレームが交互に書き込まれる。その一方で、ビデオ・プレーン・メモリ176はビデオ・デコーダ174Aから切換信号PTDを受信し、その状態に応じて二つの配列のいずれかからビデオ・プレーンを出力する。表示次元が「三次元」であるとき、各配列に非圧縮のビデオ・フレームが書き込まれるごとに切換信号PTDの状態が変化する。従って、各配列からビデオ・プレーンが交互に出力される。一方、表示次元が「疑似二次元」であるとき、非圧縮のビデオ・フレームが左目用のビデオ・プレーンであることを示すように、切換信号PTDの状態が固定されている。従って、左目用のビデオ・フレームが書き込まれる配列だけからビデオ・プレーンが出力され、右目用のビデオ・フレームが書き込まれる配列内のビデオ・プレーンは破棄される。
OSDプレーン・メモリ177A、BD−Jプレーン・メモリ177B、及びグラフィックス・プレーン・メモリ177Cはいずれも、再生部170に内蔵のメモリに確保された二次元配列のデータ領域である。各配列のサイズは一枚のビデオ・フレームのサイズに等しい。また、配列の各要素には一つのピクセル・データが格納される。ピクセル・データは色座標値とα値(不透明度)との組み合わせから成る。色座標値はRGB値又はYCrCb値で表される。グラフィックス・プレーン・メモリ177Cには、グラフィックス・デコーダ174Bによって書き込まれた非圧縮のグラフィックス・データから、主映像に重ねて表示されるべきグラフィックス映像、特に映画の字幕を含む一枚のグラフィックス・プレーンが構成される。OSDプレーン・メモリ177Aには、レンダリング・エンジン175によって書き込まれたグラフィックス・データから、主映像に重ねて表示されるべきOSDを含む一枚のOSDプレーンが構成される。BD−Jプレーン・メモリ177Bには、レンダリング・エンジン175によって書き込まれたグラフィックス・データから、主映像に重ねて表示されるべきポップアップ表示及びアニメーション映像等を含む一枚のBD−Jプレーンが構成される。
プレーン・シフト・エンジン178は、イメージ・プレーン・メモリ177に対するプレーン・シフト量、すなわち、OSDプレーン・シフト量、BD−Jプレーン・シフト量、及びグラフィックス・プレーン・シフト量を利用して、各プレーン・メモリ177A−Cについて「プレーン・シフト」を行う。ここで、各プレーン・シフト量は、各プレーン・メモリ177A−Cに構成されたプレーンに含まれるグラフィックス映像の奥行きを示す量であり、具体的には、左目用と右目用との各ビデオ・フレームにおける、そのグラフィックス映像の基準位置に対する相対的な変位量で定義される。両ビデオ・フレームにおける変位量の間では、大きさが等しく、符号、すなわち変位の方向が逆である。プレーン・シフト量は、プレーン・シフト・エンジン178に内蔵のメモリに保存される。
プレーン・シフトは、二次元映像表示用のプレーンを立体視映像表示用に変換する処理である。具体的には、プレーン・シフト・エンジン178は以下の動作を行う。各プレーン・メモリ177A−Cに一枚のプレーンが書き込まれるごとに、プレーン・シフト・エンジン178は左右フラグ記憶部173Aにアクセスして左右フラグの状態を確認する。左右フラグの状態が左目用ビデオ・プレーンを表しているとき、プレーン・シフト・エンジン178は処理対象のプレーンに対応するプレーン・シフト量から左目用ビデオ・フレームにおける変位量を選択する。左右フラグの状態が右目用ビデオ・プレーンを表しているときは右目用ビデオ・フレームにおける変位量が選択される。プレーン・シフト・エンジン178は更に、選択された変位量を用いて各プレーンを処理して加算部179へ渡す。その処理前後のプレーン間ではグラフィックス映像の水平方向の位置がその変位量だけ異なる。こうして、左目用ビデオ・フレームにおける変位量が利用されるときは左目用のプレーンが生成され、右目用ビデオ・フレームにおける変位量が利用されるときは右目用のプレーンが生成される。尚、その処理の詳細については後述する。
表示次元記憶部172Bが次元信号DIMに応じて表示次元を三次元に設定するとき、それに併せて、プレーン・シフト・エンジン178はグラフィックス・プレーン・シフト量GSとOSDプレーン・シフト量OSとを受信する。その後、プレーン・シフト・エンジン178は、グラフィックス・プレーン・メモリ177Cに一枚のグラフィックス・プレーンが書き込まれるごとに、そのグラフィックス・プレーンに対し、グラフィックス・プレーン・シフト量GSを利用してプレーン・シフトを行う。それにより、グラフィックス・ストリームの表すグラフィックス映像、特に字幕の水平方向での表示位置が異なる左目用と右目用とのグラフィックス・プレーンが生成されて交互に出力される。
プレーン・シフト・エンジン178はまた、BD−Jモジュール1645からBD−Jプレーン・シフト量BSを受信する。以後、プレーン・シフト・エンジン178は、BD−Jプレーン・メモリ177Bに一枚のBD−Jプレーンが書き込まれるごとに、そのBD−Jプレーンに対し、BD−Jプレーン・シフト量BSを利用してプレーン・シフトを行う。それにより、BD−Jプレーンの含むグラフィックス映像の水平方向での表示位置が異なる左目用と右目用とのBD−Jプレーンが生成されて交互に出力される。
AV再生ライブラリ1646が再生モード制御API1646Cを起動させたとき、プレーン・シフト・エンジン178はAV再生ライブラリ1646からの指示に従い、設定済みのグラフィックス・プレーン・シフト量とBD−Jプレーン・シフト量とを退避させ、その上でそれらをいずれも0に変更する。ここで、退避領域としては、プレーン・シフト・エンジン178内のメモリ又はRAM160Cが利用される。以後、グラフィックス・プレーン・シフト量は0であるので、グラフィックス・プレーン・メモリ177C上のグラフィックス・プレーンに対するプレーン・シフトは実質上停止する。従って、プレーン・シフト・エンジン178は、グラフィックス・ストリームの表すグラフィックス映像、特に字幕の水平方向での表示位置が同じグラフィックス・プレーンを二度ずつ繰り返し出力する。BD−Jプレーンについても同様である。
一方、プレーン・シフト・エンジン178は、OSDプレーン・メモリ177Aに一枚のOSDプレーンが書き込まれるごとに、そのOSDプレーンに対し、OSDプレーン・シフト量OSを利用してプレーン・シフトを行う。それにより、OSDの水平方向での表示位置が異なる左目用と右目用とのOSDプレーンが生成されて交互に出力される。
また、プレーン・シフト・エンジン178はBD−Jモジュール1645から新たにBD−Jプレーン・シフト量BSを受信したとき、以後、BD−Jプレーン・メモリ177Bに一枚のBD−Jプレーンが書き込まれるごとに、そのBD−Jプレーンに対して、新たなBD−Jプレーン・シフト量BSを利用してプレーン・シフトを行う。その場合、そのBD−Jプレーンはポップアップ表示を含む。従って、そのポップアップ表示の水平方向での表示位置が異なる左目用と右目用とのBD−Jプレーンが生成されて交互に出力される。
その後、AV再生ライブラリ1646が再生モード制御API1646Cを再び起動させたとき、プレーン・シフト・エンジン178はAV再生ライブラリ1646からの指示に従い、退避領域からグラフィックス・プレーン・シフト量とBD−Jプレーン・シフト量とを復帰させる。それにより、プレーン・シフト・エンジン178は、グラフィックス・プレーンに対して、グラフィックス・プレーン・シフト量GSを利用したプレーン・シフトを再開する。すなわち、左目用と右目用とのグラフィックス・プレーンが再び交互に出力される。同様に、プレーン・シフト・エンジン178は、BD−Jプレーンに対して、BD−Jプレーン・シフト量BSを利用したプレーン・シフトを再開する。それにより、左目用と右目用とのBD−Jプレーンが再び交互に出力される。
加算部179は、プレーン・シフト・エンジン178から出力されたOSDプレーン、BD−Jプレーン、又はグラフィックス・プレーンを、ビデオ・プレーン・メモリ176から出力された一枚のビデオ・プレーンに合成して一枚のビデオ・フレームを生成する。更に、そのビデオ・フレームからビデオ・データVDが構成されて出力される。特に表示次元が三次元であるとき、加算部179は、左目用グラフィックス・プレーン、左目用BD−Jプレーン、及び左目用ビデオ・プレーンを左目用ビデオ・フレームに合成し、右目用グラフィックス・プレーン、右目用BD−Jプレーン、及び右目用ビデオ・プレーンを右目用ビデオ・フレームに合成する。こうして、左目用と右目用とのビデオ・フレームが交互に出力される。一方、表示次元が疑似二次元であるとき、加算部179は、グラフィックス・プレーンと左目用ビデオ・プレーンとの同じ組み合わせに対して、左目用OSDプレーン/BD−Jプレーンと右目用OSDプレーン/BD−Jプレーンとを交互に合成する。こうして、左目用と右目用とのビデオ・フレームが生成され、交互に出力される。
<再生装置100によるプレイリスト再生処理の流れ>
図16−20は、光ディスク500が光ディスク・ドライブ110に挿入された直後に再生装置100によって実行されるプレイリスト再生処理のフローチャートである。ここでは、例えば再生装置100への電源投入に伴い、制御部160がファームウェアに従って各機能部の初期化を終えた状態、特に再生制御部164がアプリケーション・プログラムの実行環境を既に整えている状態を想定する。その初期化では更に、AV再生ライブラリ1646がレジスタ1646Aに、再生装置100及び表示装置200の各設定に関するパラメータ、特に対応可能な立体視映像表示の方式を保存する。以下、再生装置100が上記の構成要素をどのように利用してプレイリスト再生処理を実現させるかについて、図16−20に示されているステップの順に説明する。
ステップS1:操作部130が光ディスク・ドライブ110への光ディスク500の挿入を検出して、その旨を示す通知INTをユーザ操作検知モジュール162に送る。ユーザ操作検知モジュール162はその通知INTに応じて再生制御部164に操作信号UOを送る。再生制御部164では、ディスパッチャ1643Aがその操作信号UOに応じて、その挿入をOSD制御モジュール1647に通知する。ディスパッチャ1643Aは更に、AV再生ライブラリ1646を通して仮想ファイルシステム163にインデックス・ファイルIFの読み出しを命令COMで指示する。更に、モード管理モジュール1643はそのインデックス・ファイルIF内のインデックス・テーブルのうち、項目「ファーストプレイ」を参照して、その項目で指定されているオブジェクトを特定する。ここで、そのオブジェクトがBD−Jオブジェクトであり、かつ、仮想パッケージの構築を伴うものである場合を想定する。その場合、モード管理モジュール1643はAV再生ライブラリ1646を通して仮想ファイルシステム163に指示して、そのBD−Jオブジェクトを動的シナリオ・メモリ1641へ転送させる。一方、ディスパッチャ1643Aは、光ディスク・ドライブ110への光ディスク500の挿入をBD−Jモジュール1645にも通知する。
OSD制御モジュール1647はその通知に応じて、光ディスクの挿入を表すOSDのグラフィックス・データGD2を再生部170に渡す。再生部170はそのグラフィックス・データGD2からOSDプレーンを生成する。ここで、再生部170の初期状態では通常、動作モードが二次元表示モードである。また、その時点ではビデオ・プレーンはまだ生成されていない。従って、そのOSDプレーンはそのままビデオ・データVDに利用されて出力される。そのビデオ・データVDは更に、HDMI送信部180及びHDMIケーブル600を通して表示装置200に送られる。それにより、そのOSDが表示装置200の画面に二次元映像として表示される。グラフィックス・データGD2の送出から所定時間の経過後、OSD制御モジュール1647は再生部170へOSDの消去命令RQ2を送る。それにより、再生部170はOSDプレーンの出力を停止させるので、そのOSDが表示装置200の画面から消去される。
BD−Jモジュール1645は、ディスパッチャ1643Aからの通知に応じて、動的シナリオ・メモリ1641からBD−Jオブジェクトを読み出す。BD−Jモジュール1645は更に、そのBD−Jオブジェクトに従ってJavaアプリケーション・プログラムを実行する。そのJavaアプリケーション・プログラムはBD−Jモジュール1645にまず、ローカル・ストレージ120へアクセスさせ、光ディスク500に記録されたオリジナル・コンテンツに対する追加コンテンツがローカル・ストレージ120に保存されているか確認させる。もし保持されていなければ、Javaアプリケーション・プログラムはBD−Jモジュール1645にネットワーク・インタフェース140を制御させて、サーバ装置900からローカル・ストレージ120へ追加コンテンツをダウンロードさせてもよい。追加コンテンツがローカル・ストレージ120に保存されていれば、Javaアプリケーション・プログラムはBD−Jモジュール1645を通じて仮想ファイルシステム163に、光ディスク500上のオリジナル・コンテンツのパスとローカル・ストレージ120内の追加コンテンツのパスとから仮想パッケージを構築させる。
ステップS2:ディスパッチャ1643Aは、AV再生ライブラリ1646を通して仮想ファイルシステム163に命令COMを送る。その命令COMに応じて、仮想ファイルシステム163はインデックス・ファイルIFを仮想パッケージ、すなわち光ディスク500又はローカル・ストレージ120からモード管理モジュール1643へ転送する。
ステップS3:モード管理モジュール1643は、インデックス・ファイルIF内のインデックス・テーブルのうち、項目「ファーストプレイ」を参照し、その項目で指定されているオブジェクト(以下、ファーストプレイのオブジェクトという。)を特定する。モード管理モジュール1643は更に、そのオブジェクトの種類に応じて、カレントの動的シナリオ情報DSをHDMVモジュール1644又はBD−Jモジュール1645に割り当てる。それにより、割り当て先のモジュール1644又は1645は、その動的シナリオ情報DSからファーストプレイのオブジェクトを読み出し、それに従ってプログラムを実行する。
ステップS4:ファーストプレイのオブジェクトによる処理がプレイリスト再生処理であるとき、各モジュール1644、1645はAV再生ライブラリ1646にそのプレイリスト再生処理を指示する。AV再生ライブラリ1646はその指示に従って、カレント・プレイリスト・ファイルの読み出しを仮想ファイルシステム163に命令COMで要求する。仮想ファイルシステム163はその命令COMに応じてカレント・プレイリスト・ファイルを仮想パッケージから読み出し、カレントの静的シナリオ情報SSとして静的シナリオ・メモリ1642に格納する。
ステップS5:AV再生ライブラリ1646はカレントの静的シナリオ情報SSからカレント・プレイリスト情報を読み出す。次元判定部1646Bはカレント・プレイリスト情報から、次元識別フラグの示す表示次元を確認する。その表示次元が「二次元」であるとき、処理はステップS10(図17参照)に進む。その表示次元が「三次元」であるとき、処理はステップS6に進む。
ステップS6:次元判定部1646Bはレジスタ1646Aにアクセスし、表示装置200が立体視映像表示に対応可能であるか確認する。表示装置200が立体視映像表示に非対応であるとき、処理はステップS20(図18参照)に進む。表示装置200が立体視映像表示に対応可能であるとき、処理はステップS30(図19参照)に進む。
≪プレイリスト情報の示す表示次元が二次元であるときの二次元表示モード≫
図17は、カレント・プレイリスト情報の示す表示次元が二次元であるときにおける二次元表示モードのフローチャートである。
ステップS10:次元判定部1646Bは表示次元を「二次元」に決定し、その表示次元を次元信号DIMで表示次元記憶部172Bに指定する。表示次元記憶部172Bはその次元信号DIMに応じて、それの示す表示次元、すなわち二次元に対応するフラグを立てる。
ステップS11:次元判定部1646Bはプレーン・シフト・エンジン178に対し、グラフィックス・プレーン・シフト量GSとOSDプレーン・シフト量OSとをいずれも0に指定する。それにより、プレーン・シフト・エンジン178は、グラフィックス・プレーンとOSDプレーンとに対するプレーン・シフトをいずれも実質上停止させる。従って、再生部170はグラフィックス・プレーンとOSDプレーンとをいずれも二次元映像として出力する。
ステップS12:AV再生ライブラリ1646はカレント・プレイリスト情報中の各プレイアイテム情報を順番に参照する。それにより、各ストリーム選択テーブルに登録されたエレメンタリ・ストリームの中から、再生装置100と表示装置200との両方で再生可能なものが検出される。AV再生ライブラリ1646は更に、検出されたエレメンタリ・ストリームの中で最小のストリーム選択番号を持つものを選択し、そのPIDをデマルチプレクサ173に指定する。そのとき、AV再生ライブラリ1646は、選択されたエレメンタリ・ストリームの復号処理に必要な情報をレジスタ1646Aから再生部170内の各デコーダへ転送する。各デコーダはその情報に応じて復号処理の種類を決定する。ビデオ・デコーダ174Aは更に表示次元記憶部172Bにアクセスし、表示次元が二次元であることを確認して二次元表示モードに移行する。
ステップS13:AV再生ライブラリ1646はカレント・プレイリスト情報中の各プレイアイテム情報に従ってカレント・AVストリーム・ファイルを選択し、仮想ファイルシステム163に指定する。仮想ファイルシステム163は光ディスク・ドライブ110又はローカル・ストレージ120にカレント・AVストリーム・ファイルを再生部170内のバス・インタフェース171に供給させる。バス・インタフェース171はそのカレント・AVストリーム・ファイルCLをトラック・バッファ172Aへ転送する。
ステップS14:デマルチプレクサ173はまず、トラック・バッファ172Aからカレント・AVストリーム・ファイルCLをソース・パケット単位で読み出し、各ソース・パケットからTSパケットを取り出す。デマルチプレクサ173は次に、そのTSパケットのTSヘッダに含まれるPIDを利用して、分離対象のTSパケットをPID別に収集する。デマルチプレクサ173は更に、収集されたTSパケットからPESパケットを復元し、PID別に各デコーダ174A−Cへ送出する。ビデオ・デコーダ174Aは、受信されたPESパケットから、符号化されたピクチャを取り出して非圧縮のビデオ・フレームに復号する。ビデオ・デコーダ174Aは更に、その非圧縮のビデオ・フレームを順次、ビデオ・プレーン・メモリ176に書き込む。グラフィックス・デコーダ174Bは、受信されたPESパケットから、符号化されたグラフィックス・データを取り出し、それを非圧縮のものに復号してグラフィックス・プレーン・メモリ177Cに書き込む。オーディオ・デコーダ174Cは、受信されたPESパケットから、符号化されたオーディオ・データを取り出し、それを非圧縮のオーディオ・データに復号する。上記の各デコーダの動作と並行して、レンダリング・エンジン175は、OSD制御モジュール1647からグラフィックス・データGD2を受信したときはそのグラフィックス・データGD2からOSDプレーンをOSDプレーン・メモリ177Aに生成し、BD−Jモジュール1645からグラフィックス・データGD1を受信したときはそのグラフィックス・データGD1からBD−JプレーンをBD−Jプレーン・メモリ177Bに生成する。
ステップS15:各プレーン・メモリ177A−Cに対するプレーン・シフト量はいずれも0であるので、プレーン・シフト・エンジン178は、各プレーン・メモリ177A−C上のプレーンをそのまま加算部179へ出力する。加算部179は、プレーン・シフト・エンジン178から出力されたOSDプレーン、BD−Jプレーン、又はグラフィックス・プレーンと、ビデオ・プレーン・メモリ176から出力されたビデオ・プレーンとを一枚のビデオ・フレームに合成する。そのビデオ・フレームからビデオ・データVDが構成され、非圧縮のオーディオ・データADと共に出力される。HDMI送信部180は、それらのビデオ・データVDとオーディオ・データADとをHDMI形式の映像信号と音声信号とに変換し、HDMIケーブル600を通して表示装置200へ送出する。表示装置200は、その映像信号に従って二次元映像を画面に再現し、その音声信号に従って内蔵のスピーカから音声を発生させる。
ステップS16:デマルチプレクサ173は、カレント・AVストリーム・ファイルCLを構成するソース・パケットのうち、未処理のものがトラック・バッファ172Aに残っているか確認する。残っていれば処理はステップS14から繰り返され、残っていなければプレイリスト再生処理は終了する。
≪表示装置200が立体視映像表示に非対応であるときの二次元表示モード≫
図18は、表示装置200が立体視映像表示に非対応であるときにおける二次元表示モードのフローチャートである。図18に示されているステップS20−26は本質的には、図17に示されているステップS10−16と同様である。従って、以下では、ステップS10−16とは異なる点を除き、各ステップの説明を簡略化し、詳細については上記の説明を援用する。
ステップS20:次元判定部1646Bは表示次元を二次元に指定し、それに応じて表示次元記憶部172Bは二次元に対応するフラグを立てる。
ステップS21:次元判定部1646Bはプレーン・シフト・エンジン178に対し、グラフィックス・プレーン・シフト量GSとOSDプレーン・シフト量OSをいずれも0に指定する。
ステップS22:AV再生ライブラリ1646はカレント・プレイリスト情報に従ってエレメンタリ・ストリームを選択する。ここで、プライマリ・ビデオ・ストリームについては、右目用ビデオ・ストリームが選択対象から外される。選択されたエレメンタリ・ストリームのPIDは、復号処理に必要な情報と共にデマルチプレクサ173に指定される。各デコーダはその情報に応じて復号処理の種類を決定する。ビデオ・デコーダ174Aは更に、表示次元が二次元であることを確認して、二次元表示モードに移行する。
ステップS23:AV再生ライブラリ1646はカレント・プレイリスト情報に従ってカレント・AVストリーム・ファイルを選択する。それに応じて、仮想ファイルシステム163及びバス・インタフェース171は光ディスク・ドライブ110又はローカル・ストレージ120からトラック・バッファ172Aへそのカレント・AVストリーム・ファイルCLを転送する。
ステップS24:デマルチプレクサ173は、トラック・バッファ172A内のカレント・AVストリーム・ファイルCLから分離対象のTSパケットをPID別に収集し、PESパケットに復元して各デコーダ174A−Cへ渡す。ビデオ・デコーダ174AはPESパケットからビデオ・フレームを復号して、順次ビデオ・プレーン・メモリ176に書き込む。グラフィックス・デコーダ174Bも同様に、PESパケットからグラフィックス・プレーンを復号してグラフィックス・プレーン・メモリ177Cに書き込む。オーディオ・デコーダ174CはPESパケットからオーディオ・データを復号する。レンダリング・エンジン175は、OSD制御モジュール1647からのグラフィックス・データGD2を利用してOSDプレーンをOSDプレーン・メモリ177Aに生成し、BD−Jモジュール1645からのグラフィックス・データGD1を利用してBD−JプレーンをBD−Jプレーン・メモリ177Bに生成する。
ステップS25:プレーン・シフト・エンジン178は、各プレーン・メモリ177A−C上のプレーンをそのまま加算部179へ出力する。加算部179は、プレーン・シフト・エンジン178から出力されたプレーンと、ビデオ・プレーン・メモリ176から出力されたビデオ・プレーンとをビデオ・フレームに合成する。そのビデオ・フレームからビデオ・データVDが構成され、非圧縮のオーディオ・データADと共に出力される。HDMI送信部180は、それらのビデオ・データVDとオーディオ・データADとをHDMI形式の映像信号と音声信号とに変換して表示装置200へ送出する。表示装置200は、その映像信号に従って二次元映像を画面に再現し、その音声信号に従って内蔵のスピーカから音声を発生させる。
ステップS26:カレント・AVストリーム・ファイルCLを構成するソース・パケットのうち、未処理のものがトラック・バッファ172Aに残っていれば処理はステップS24から繰り返され、残っていなければプレイリスト再生処理は終了する。
≪三次元表示モード≫
図19−20は、三次元表示モードのフローチャートである。以下に説明される各ステップのうち、ステップS30−33、S40、S41は図19に示され、ステップS42−49は図20に示されている。
ステップS30:次元判定部1646Bは表示次元を「三次元」に決定し、その表示次元を次元信号DIMで表示次元記憶部172Bに指定する。表示次元記憶部172Bはその次元信号DIMに応じて、それの示す表示次元、すなわち三次元に対応するフラグを立てる。
ステップS31:次元判定部1646Bはカレント・プレイリスト情報からグラフィックス・プレーン・シフト量GSを読み出し、所定のOSDプレーン・シフト量OSと共に再生部170に渡す。プレーン・シフト・エンジン178はそれらのプレーン・シフト量GS、OSを内蔵のメモリに保存する。
ステップS32:AV再生ライブラリ1646はカレント・プレイリスト情報中の各プレイアイテム情報を順番に参照する。それにより、各ストリーム選択テーブルに登録されたエレメンタリ・ストリームの中から、再生装置100と表示装置200との両方で再生可能なものが検出される。AV再生ライブラリ1646は更に、検出されたエレメンタリ・ストリームの中で最小のストリーム選択番号を持つものを選択し、そのPIDをデマルチプレクサ173に指定する。ここで、指定されるPID群は、左目用ビデオ・ストリームのPIDと右目用ビデオ・ストリームのPIDとの両方を含む。AV再生ライブラリ1646は更に、選択されたエレメンタリ・ストリームの復号処理に必要な情報をレジスタ1646Aから再生部170内の各デコーダへ転送する。各デコーダはその情報に応じて復号処理の種類を決定する。ビデオ・デコーダ174Aは更に表示次元記憶部172Bにアクセスし、表示次元が三次元であることを確認して、三次元表示モードに移行する。
ステップS33:AV再生ライブラリ1646はカレント・プレイリスト情報中の各プレイアイテム情報に従ってカレント・AVストリーム・ファイルを選択し、仮想ファイルシステム163に指定する。仮想ファイルシステム163は光ディスク・ドライブ110又はローカル・ストレージ120にカレント・AVストリーム・ファイルを再生部170内のバス・インタフェース171に供給させる。バス・インタフェース171はそのカレント・AVストリーム・ファイルCLをトラック・バッファ172Aへ転送する。
ステップS40:デマルチプレクサ173はまず、トラック・バッファ172Aからカレント・AVストリーム・ファイルCLをソース・パケット単位で読み出し、各ソース・パケットからTSパケットを取り出す。デマルチプレクサ173は次に、そのTSパケットのTSヘッダに含まれるPIDを利用して、分離対象のTSパケットをPID別に収集する。デマルチプレクサ173は更に、収集されたTSパケットからPESパケットを復元し、PID別に各デコーダ174A−Cへ送出する。ビデオ・デコーダ174Aは、受信されたPESパケットを交互に二つのバッファに振り分ける。それにより、左目用と右目用とのビデオ・ストリームのPESパケットが異なるバッファに分離される。ビデオ・デコーダ174Aは更に、二つのバッファから交互に非圧縮のビデオ・フレームを復号する。グラフィックス・デコーダ174Bは、受信されたPESパケットから、符号化されたグラフィックス・データを取り出して非圧縮のものに復号する。オーディオ・デコーダ174Cは、受信されたPESパケットから、符号化されたオーディオ・データを取り出し、それを非圧縮のオーディオ・データに復号する。
ステップS41:デマルチプレクサ173は、PESパケットをビデオ・デコーダ174Aへ送出するごとに、左右信号L/Rを左右フラグ記憶部173Aに送出する。左右フラグ記憶部173Aは、その左右信号L/Rに応じて左右フラグを立て、又は解除する。それにより、そのPESパケットに対応する元のTSパケットの示すPIDが“0x1011”と“0x1012”との間で切り替わるごとに、左右フラグがフリップし、すなわちその状態を切り換える。
ステップS42:ビデオ・デコーダ174Aは非圧縮のビデオ・フレームを、ビデオ・プレーン・メモリ176内の二つの配列に交互に書き込む。
ステップS43:ビデオ・デコーダ174Aは、ビデオ・プレーン・メモリ176に非圧縮のビデオ・フレームを一枚書き込むごとに、表示次元記憶部172Bにアクセスして表示次元を確認する。表示次元が「三次元」に維持されていれば、処理はステップS44に進む。表示次元が「疑似二次元」に変更されていれば、処理はステップS45に進む。
ステップS44:ビデオ・デコーダ174Aは「三次元表示モード」を維持する。ビデオ・デコーダ174Aは特に、非圧縮のビデオ・フレームが左目用と右目用とのいずれであるかを識別する。ビデオ・デコーダ174Aは更にその識別結果を切換信号PTDでビデオ・プレーン・メモリ176に伝える。その場合、ビデオ・プレーン・メモリ176内の各配列にビデオ・フレームが書き込まれるごとに、切換信号PTDの状態は変化する。ビデオ・プレーン・メモリ176はその切換信号PTDを受信し、その状態の変化に合わせて、二つの配列から加算部179へ左目用と右目用とのビデオ・プレーンを交互に出力する。その後、処理はステップS46に進む。
ステップS45:ビデオ・デコーダ174Aは「三次元表示モード」から「疑似二次元表示モード」に移行する。ビデオ・デコーダ174Aは特に、各非圧縮のビデオ・フレームが左目用と右目用とのいずれであるかにかかわらず、そのビデオ・フレームが左目用であることを示すように、切換信号PTDの状態を固定する。その場合、ビデオ・プレーン・メモリ176は、ビデオ・デコーダ174Aによって左目用のビデオ・フレームが書き込まれる配列だけから加算部179へビデオ・プレーンを出力し、右目用のビデオ・フレームが書き込まれる配列内のビデオ・プレーンは破棄する。その後、処理はステップS46に進む。
ステップS46:グラフィックス・デコーダ174Bは非圧縮のグラフィックス・データをグラフィックス・プレーン・メモリ177Cに書き込む。レンダリング・エンジン175は、OSD制御モジュール1647からグラフィックス・データGD2を受信していればそのグラフィックス・データGD2からOSDプレーンをOSDプレーン・メモリ177Aに生成し、BD−Jモジュール1645からグラフィックス・データGD1を受信していればそのグラフィックス・データGD1からBD−JプレーンをBD−Jプレーン・メモリ177Bに生成する。
ステップS47:プレーン・シフト・エンジン178は、OSDプレーン・シフト量、BD−Jプレーン・シフト量、及びグラフィックス・プレーン・シフト量を利用して、各プレーン・メモリ177A−Cについてプレーン・シフトを行う。プレーン・シフトのフローについては後述する。
ステップS48:加算部179は、プレーン・シフト・エンジン178から出力されたOSDプレーン、BD−Jプレーン、又はグラフィックス・プレーンと、ビデオ・プレーン・メモリ176から出力されたビデオ・プレーンとを一枚のビデオ・フレームに合成する。そのビデオ・フレームからビデオ・データVDが構成され、非圧縮のオーディオ・データADと共に出力される。HDMI送信部180は、それらのビデオ・データVDとオーディオ・データADとをHDMI形式の映像信号と音声信号とに変換し、HDMIケーブル600を通して表示装置200へ送出する。表示装置200は、その映像信号に従って各ビデオ・フレームを画面に再現し、その音声信号に従って内蔵のスピーカから音声を発生させる。表示装置200は更に、その映像信号に付随する制御信号を利用して、左目用ビデオ・フレームと右目用ビデオ・フレームとの間の切り換えに左右信号LRの波形の切り換えを同期させる。それにより、液晶シャッター眼鏡300は二枚の液晶表示パネル301L、301Rに、フレームの切り換えと同期して交互に光を透過させる。その結果、液晶シャッター眼鏡300をかけた視聴者には、表示装置200の画面に再現される映像のうち、左目用ビデオ・フレームと右目用ビデオ・フレームとの間で水平方向に変位している部分が、その変位量に対応する奥行きに立体的に見える。
具体的には、ステップS43でビデオ・デコーダ174Aが「三次元表示モード」を維持しているとき、左目用ビデオ・フレームと右目用ビデオ・フレームとの間ではビデオ・プレーンとグラフィックス・プレーンとがいずれも異なる。従って、コンテンツの映像と字幕とがいずれも立体視映像として再現される。一方、ステップS43でビデオ・デコーダ174Aが「三次元表示モード」から「疑似二次元表示モード」へ移行したとき、左目用ビデオ・フレームと右目用ビデオ・フレームとの間ではビデオ・プレーンとグラフィックス・プレーンとがいずれも共通である。従って、コンテンツの映像と字幕とがいずれも二次元映像として再現される。しかし、左目用ビデオ・フレームと右目用ビデオ・フレームとの間ではOSDプレーン又はBD−Jプレーンは異なるので、OSD又はポップアップ表示は立体視映像として再現される。特に視聴者にはOSD又はポップアップ表示がコンテンツの映像と字幕とのいずれよりも手前に見える。
ステップS49:デマルチプレクサ173は、カレント・AVストリーム・ファイルCLを構成するソース・パケットのうち、未処理のものがトラック・バッファ172Aに残っているか確認する。残っていれば処理はステップS40から繰り返され、残っていなければプレイリスト再生処理は終了する。
≪プレーン・シフト・エンジン178によるプレーン・シフトの流れ≫
図21は、プレーン・シフト・エンジン178によるプレーン・シフトのフローチャートである。図20に示されているステップS47では、以下のステップが順に実行される。
ステップS50:プレーン・シフト・エンジン178は左右フラグ記憶部173Aにアクセスして左右フラグの状態を確認する。左右フラグの状態が左目用ビデオ・プレーンを表しているとき、処理はステップS51Lに進む。左右フラグの状態が右目用ビデオ・プレーンを表しているとき、処理はステップS51Rに進む。
ステップS51L:プレーン・シフト・エンジン178は、処理対象のプレーン、すなわち、OSDプレーン、BD−Jプレーン、又はグラフィックス・プレーンに対応するプレーン・シフト量から左目用ビデオ・フレームにおける変位量を選択する。プレーン・シフト・エンジン178は更に、その変位量と等しい幅の帯状領域を処理対象のプレーンの左側に付加し、同じ幅の帯状領域を処理対象のプレーンの右端部から除去する。こうして、処理対象のプレーンが左目用のプレーンに変換される。その左目用プレーンでは処理対象のプレーンと比べ、グラフィックス要素、すなわち、OSD、ポップアップ表示、又は字幕の位置が元の位置よりも右方にその変位量だけ移動している。左目用プレーンはプレーン・シフト・エンジン178によって保持される。
ステップS51R:プレーン・シフト・エンジン178は、処理対象のプレーンに対応するプレーン・シフト量から右目用ビデオ・フレームにおける変位量を選択する。プレーン・シフト・エンジン178は更に、その変位量と等しい幅の帯状領域を処理対象のプレーンの右側に付加し、同じ幅の帯状領域を処理対象のプレーンの左端部から除去する。こうして、処理対象のプレーンが右目用のプレーンに変換される。その右目用プレーンでは処理対象のプレーンと比べ、グラフィックス要素の位置が元の位置よりも左方にその変位量だけ移動している。右目用プレーンはプレーン・シフト・エンジン178によって保持される
ステップS52:プレーン・シフト・エンジン178は、保持されている左目用又は右目用のプレーンを加算部179へ出力する。
≪グラフィックス・プレーンに対するプレーン・シフト≫
図22は、プレーン・シフト・エンジン178によるグラフィックス・プレーンに対するプレーン・シフトを示す模式図である。例えば、グラフィックス・プレーン・メモリ177C上のグラフィックス・プレーンGPLが、字幕“I love you”を表すグラフィックス要素STLを含む場合を想定する。ここで、そのグラフィックス・プレーンGPLのうち、グラフィックス要素STL以外の部分はα値が0に設定され、すなわち透明である。また、グラフィックス・プレーン・シフト量は、元のグラフィックス・プレーンGPL内でのグラフィックス要素STLの表示位置を基準とする相対的な変位量の対GSL、GSRで定義されている。その対GSL、GSRでは、大きさが等しく、符号、すなわち変位の方向が逆である。例えば右方向の変位を正とするとき、左目用ビデオ・フレームにおける変位量GSLは正であり、右目用ビデオ・フレームにおける変位量GSRは負である。
プレーン・シフト・エンジン178はまず、左右フラグの状態を確認する。左右フラグの状態が左目用ビデオ・プレーンを表しているとき、プレーン・シフト・エンジン178は左目用ビデオ・フレームにおける変位量GSLを用いて元のグラフィックス・プレーンGPLを書き換える。それにより、その変位量GSLと等しい幅の帯状領域ST1Lを元のグラフィックス・プレーンGPLの左側に付加し、同じ幅の帯状領域ST1Rを元のグラフィックス・プレーンGPLの右端部から除去する。このように書き換えられた左目用グラフィックス・プレーンLGPLでは、プレーンの左端とグラフィックス要素STLとの間の距離DLが元のグラフィックス・プレーンGPLでの距離D0よりも変位量GSLだけ長い。すなわち、グラフィックス要素STLの位置が元のグラフィックス・プレーンGPL内での位置よりも右方に、変位量GSLだけ移動する。
左右フラグの状態が右目用ビデオ・プレーンを表しているとき、プレーン・シフト・エンジン178は右目用ビデオ・フレームにおける変位量GSRを用いて元のグラフィックス・プレーンGPLを書き換える。それにより、その変位量GSRの大きさと等しい幅の帯状領域ST2Rを元のグラフィックス・プレーンGPLの右側に付加し、同じ幅の帯状領域ST2Lを元のグラフィックス・プレーンGPLの左端部から除去する。このように変換された右目用グラフィックス・プレーンRGPLでは、プレーンの左端とグラフィックス要素STLとの間の距離DRが元のグラフィックス・プレーンGPLでの距離D0よりも変位量GSRの大きさだけ短い。すなわち、グラフィックス要素STLの位置が元のグラフィックス・プレーンGPL内での位置よりも左方に、変位量GSRの大きさだけ移動する。
こうして、プレーン・シフト・エンジン178は一枚のグラフィックス・プレーンGPLから、左目用グラフィックス・プレーンLGPLと右目用グラフィックス・プレーンRGPLとを生成して、交互に加算部179へ出力する。それらの間ではグラフィックス要素STLが水平方向に、グラフィックス・プレーン・シフト量の表す変位量の対GSL、GSRの差に等しい距離GSL−GSRだけ変位する(GSR<0)。この変位が両眼視差として知覚されることにより、視聴者には字幕“I love you”が画面よりも手前に見える。
≪OSDプレーンに対するプレーン・シフト≫
図23は、プレーン・シフト・エンジン178によるOSDプレーンに対するプレーン・シフトを示す模式図である。例えばOSDプレーン・メモリ177A上のOSDプレーンOPLが、再生情報を表すOSDGEを含む場合を想定する。ここで、再生情報は再生中の映像に関する情報であって、例えば、「再生(PLAY)」及び「一時停止」等の再生状態、その映像のシーンのタイトル、及び、再生開始時点からの経過時間を含む。更に、そのOSDプレーンOPLのうち、OSDGE以外の部分はα値が0に設定され、すなわち透明である。また、OSDプレーン・シフト量は、元のOSDプレーンOPL内でのOSDGEの表示位置を基準とする相対的な変位量の対OSL、OSRで定義されている。その対OSL、OSRでは、大きさが等しく、符号、すなわち変位の方向が逆である。例えば右方向の変位を正とするとき、左目用ビデオ・フレームにおける変位量OSLは正であり、右目用ビデオ・フレームにおける変位量OSRは負である。
プレーン・シフト・エンジン178はまず、左右フラグの状態を確認する。左右フラグの状態が左目用ビデオ・プレーンを表しているとき、プレーン・シフト・エンジン178は左目用ビデオ・フレームにおける変位量OSLを用いて元のOSDプレーンOPLを書き換える。それにより、その変位量OSLと等しい幅の帯状領域ST3Lを元のOSDプレーンOPLの左側に付加し、同じ幅の帯状領域ST3Rを元のOSDプレーンOPLの右端部から除去する。このように書き換えられた左目用OSDプレーンLOPLでは、プレーンの左端とOSDGEとの間の距離D1Lが元のOSDプレーンOPLでの距離D1よりも変位量OSLだけ長い。すなわち、OSDGEの位置が元のOSDプレーンOPL内での位置よりも右方に、変位量OSLだけ移動する。
左右フラグの状態が右目用ビデオ・プレーンを表しているとき、プレーン・シフト・エンジン178は右目用ビデオ・フレームにおける変位量OSRを用いて元のOSDプレーンOPLを書き換える。それにより、その変位量OSRの大きさと等しい幅の帯状領域ST4Rを元のOSDプレーンOPLの右側に付加し、同じ幅の帯状領域ST4Lを元のOSDプレーンOPLの左端部から除去する。このように変換された右目用OSDプレーンROPLでは、プレーンの左端とOSDGEとの間の距離D1Rが元のOSDプレーンOPLでの距離D1よりも変位量OSRの大きさだけ短い。すなわち、OSDGEの位置が元のOSDプレーンOPL内での位置よりも左方に、変位量OSRの大きさだけ移動する。
こうして、プレーン・シフト・エンジン178は一枚のOSDプレーンOPLから左目用OSDプレーンLOPLと右目用OSDプレーンROPLとを生成して、交互に加算部179へ出力する。それらの間ではOSDGEが水平方向に、OSDプレーン・シフト量の表す変位量の対OSL、OSRの差に等しい距離OSL−OSRだけ変位する(OSR<0)。この変位が両眼視差として知覚されることにより、視聴者にはOSDGEが画面よりも手前に見える。
<再生装置100によるOSDプレーンの制御>
図24は、再生装置100によるOSDプレーンの制御に関するフローチャートである。再生装置100は、上記のプレイリスト再生処理と並行して、ユーザによる操作及びアプリケーション・プログラムからの指示を監視し、その操作及び指示を検出するごとに、対応するOSDをOSDプレーンに描画する。生成されたOSDプレーンはプレイリスト再生処理の中でビデオ・フレームに合成されて表示装置200へ出力される。以下、再生装置100によるOSDプレーンの制御について、図24に示されているステップの順に説明する。
ステップS60:操作部130が、リモコン400からのコマンド、又は、再生装置100のフロント・パネルに設けられたボタンの押下を検出し、そのコマンド又はそのボタンに対応する通知INTをユーザ操作検知モジュール162に送る。ユーザ操作検知モジュール162は、その通知INTに応じてディスパッチャ1643Aに操作信号UOを送る。ディスパッチャ1643Aはその操作信号UOをOSD制御モジュール1647に伝える。その他に、HDMVモジュール1644又はBD−Jモジュール1645は、アプリケーション・プログラムに従って、OSDの表示に関する指示をOSD制御モジュール1647に伝える。
ステップS61:OSD制御モジュール1647はその操作信号UO又は指示に応じて、その内容に対応するOSDを示すグラフィックス・データGD2を生成してレンダリング・エンジン175へ渡す。
ステップS62:OSD制御モジュール1647は再生モード制御API1646Cを呼び出す。それにより、再生部170の動作モードが「三次元表示モード」であれば「疑似二次元表示モード」に切り替わる。再生モード制御API1646Cによる処理の流れについては後述する。
ステップS63:レンダリング・エンジン175は、OSD制御モジュール1647から受けたグラフィックス・データGD2を復号してOSDプレーン・メモリ177Aに書き込む。こうして、OSDプレーンが生成される。
ステップS64:グラフィックス・データGD2の送出後、所定時間の経過、新たな操作信号UOの受信、又は他のモジュール1644、1645からの指示に応じ、OSD制御モジュール1647はレンダリング・エンジン175へOSDの消去命令RQ2を送る。
ステップS65:レンダリング・エンジン175はその消去命令RQ2に応じて、OSDプレーン・メモリ177Aに保持されたOSDプレーンOPLを消去する。それにより、プレーン・シフト・エンジン178からのOSDプレーンの出力が停止する。
ステップS66:OSD制御モジュール1647は再生モード制御API1646Cを呼び出す。それにより、再生部170の動作モードが「疑似二次元表示モード」から「三次元表示モード」に戻る。再生モード制御API1646Cによる処理の流れについては後述する。
<再生装置100によるBD−Jプレーンの制御>
図25は、再生装置100によるBD−Jプレーンの制御に関するフローチャートである。上記のプレイリスト再生処理と並行して、ユーザによる操作及びアプリケーション・プログラムからの指示によってポップアップ表示が要求されたとき、再生装置100では、まず、BD−Jモジュール1645が、そのポップアップ表示を制御するためのBD−Jオブジェクトを光ディスク500から読み出して、そのBD−Jオブジェクトに従ってJavaアプリケーション・プログラムを実行する。次に、そのJavaアプリケーション・プログラムがBD−Jモジュール1645に、ポップアップ表示用のグラフィックス・データをBD−Jプレーンに描画させる。こうして、生成されたBD−Jプレーンは上記のプレイリスト再生処理の中でビデオ・フレームに合成されて、表示装置200へ出力される。以下、再生装置100によるBD−Jプレーンの制御について、図25に示されているステップの順に説明する。
ステップS70:操作部130が、リモコン400からのコマンド、又は、再生装置100のフロント・パネルに設けられたボタンの押下を検出し、そのコマンド又はそのボタンに対応する通知INTをユーザ操作検知モジュール162に送る。ユーザ操作検知モジュール162は、その通知INTに応じてディスパッチャ1643Aに操作信号UOを送る。その操作信号UOがポップアップ表示を要求しているとき、ディスパッチャ1643Aはその操作信号UOをBD−Jモジュール1645に伝える。その他に、HDMVモジュール1644がアプリケーション・プログラムに従って、ポップアップ表示をBD−Jモジュール1645に要求する。又は、BD−Jモジュール1645自身がアプリケーション・プログラムに従ってポップアップ表示を必要と判断する。
ステップS71:BD−Jモジュール1647はその操作信号UO又は指示に応じて、その内容の要求するポップアップ表示を制御するためのBD−Jオブジェクトを光ディスク500から読み出す。BD−Jモジュール1647は更に、そのBD−Jオブジェクトに従ってJavaアプリケーション・プログラムを実行する。それにより、そのJavaアプリケーション・プログラムがBD−Jモジュール1645にポップアップ表示用のグラフィックス・データGD1を生成させて、レンダリング・エンジン175へ送出させる。
ステップS72:Javaアプリケーション・プログラムは再生モード制御API1646Cを呼び出す。それにより、再生部170の動作モードが「三次元表示モード」であれば「疑似二次元表示モード」に切り替わる。再生モード制御API1646Cによる処理の流れについては後述する。
ステップS73:Javaアプリケーション・プログラムはBD−Jモジュール1647に、ポップアップ表示が知覚されるべき奥行きに応じてBD−Jプレーン・シフト量BSを生成させてプレーン・シフト・エンジン178へ送出させる。
ステップS74:レンダリング・エンジン175は、BD−Jモジュール1645から受けたグラフィックス・データGD1を復号してBD−Jプレーン・メモリ177Bに書き込む。こうして、BD−Jプレーンが生成される。
ステップS75:グラフィックス・データGD1の送出後、ユーザの操作によって新たな操作信号UOが受信されたとき、Javaアプリケーション・プログラムはAPIを利用して、レンダリング・エンジン175へポップアップ表示の消去命令RQ1を送る。
ステップS76:レンダリング・エンジン175はその消去命令RQ1に応じて、BD−Jプレーン・メモリ177Bに保持されたBD−Jプレーンを消去する。それにより、プレーン・シフト・エンジン178からのBD−Jプレーンの出力が停止する。
ステップS77:Javaアプリケーション・プログラムは再生モード制御API1646Cを呼び出す。それにより、再生部170の動作モードが「疑似二次元表示モード」から「三次元表示モード」へ戻る。再生モード制御API1646Cによる処理の流れについては後述する。
<再生モード制御API1646Cによる処理の流れ>
図26は、再生モード制御API1646Cによる処理のフローチャートである。再生モード制御API1646Cは、図24に示されているステップS62、S66ではOSD制御モジュール1647により呼び出され、図25に示されているステップS72、S77ではJavaアプリケーション・プログラムにより呼び出される。呼び出された再生モード制御API1646CはAV再生ライブラリ1646によって実行される。それにより、再生部170の動作モードの切換及びそれに伴う処理が、以下に述べるステップの順に行われる。
ステップS80:AV再生ライブラリ1646は表示次元記憶部172Bにアクセスして、表示次元を示す各フラグの状態を確認する。それにより、再生部170の動作モードが調べられる。三次元を示すフラグが立っているとき、再生部170の動作モードは「三次元表示モード」である。その場合、処理はステップS81に進む。疑似二次元を示すフラグが立っているとき、再生部170の動作モードは「疑似二次元表示モード」である。その場合、処理はステップS84に進む。二次元を示すフラグが立っているとき、再生部170の動作モードは「二次元表示モード」である。その場合、処理は終了する。
ステップS81:AV再生ライブラリ1646はプレーン・シフト・エンジン178に、設定済みのグラフィックス・プレーン・シフト量とBD−Jプレーン・シフト量とを一旦退避させる。
ステップS82:AV再生ライブラリ1646はプレーン・シフト・エンジン178に、グラフィックス・プレーン・シフト量とBD−Jプレーン・シフト量とをいずれも0に再設定させる。
ステップS83:AV再生ライブラリ1646は表示次元記憶部172Bへ、表示次元が「疑似二次元」であることを示す次元信号DIMを送出する。表示次元記憶部172Bはその次元信号DIMに応じて、表示次元が「三次元」であることを示すフラグを解除して、表示次元が「疑似二次元」であることを示すフラグを立てる。その後、処理は終了する。
ステップS84:AV再生ライブラリ1646は表示次元記憶部172Bへ、表示次元が「三次元」であることを示す次元信号DIMを送出する。表示次元記憶部172Bはその次元信号DIMに応じて、表示次元が「疑似二次元」であることを示すフラグを解除して、表示次元が「三次元」であることを示すフラグを立てる。
ステップS85:AV再生ライブラリ1646はプレーン・シフト・エンジン178に、退避領域からグラフィックス・プレーン・シフト量とBD−Jプレーン・シフト量とを復帰させる。その後、処理は終了する。
<ビデオ・デコーダ174Aの動作モードの切換に伴うビデオ・プレーンの変化>
図27は、ビデオ・プレーン・メモリ176から加算部179へ出力されるビデオ・プレーン列CVPL1−3を示す模式図である。図27に示されている時間軸は、再生部170内でPTSの基準として利用されるクロック、すなわちSTC(System Time Clock)を表し、再生時間に相当する。まず、第1期間T1に表示次元が「三次元」に維持され、ビデオ・デコーダ174Aが「三次元表示モード」で動作する場合を想定する。第1期間T1では左目用ビデオ・プレーンLVPLと右目用ビデオ・プレーンRVPLとが交互にビデオ・プレーン・メモリ176から出力されるので、ビデオ・プレーン列CVPL1からは立体視映像VV1が再現される。
例えば時刻P1にユーザがリモコン400のボタンを押下して、再生情報の表示を指示した場合を想定する。そのとき、操作部130がその押下を検出して、対応する通知INTをユーザ操作検知モジュール162に送る。更に、その通知INTに応じてユーザ操作検知モジュール162がディスパッチャ1643Aに操作信号UOを送り、ディスパッチャ1643Aがその操作信号UOをOSD制御モジュール1647に伝える。OSD制御モジュール1647はその操作信号UOに応じて再生モード制御API1646Cを呼び出す。それにより、表示次元が「疑似二次元」であることを示す次元信号DIMがAV再生ライブラリ1646から送出される。表示次元記憶部172Bはその次元信号DIMに応じて、表示次元が「三次元」であることを示すフラグを解除して、表示次元が「疑似二次元」であることを示すフラグを立てる。すなわち、表示次元が「三次元」から「疑似二次元」に切り替わる。ビデオ・デコーダ174Aはそのフラグの変化を検出して、「三次元表示モード」から「疑似二次元表示モード」に移行する。従って、以後、ビデオ・デコーダ174Aは左目用ビデオ・フレームだけをビデオ・プレーン・メモリ176に書き込む。こうして、時刻P1以降の第2期間T2では、左目用ビデオ・プレーンLVPLだけがビデオ・プレーン・メモリ176から出力されるので、ビデオ・プレーン列CVPL2からは二次元映像VV2が再現される。
時刻P1より後、例えば時刻P2にユーザがリモコン400のボタンを再度押下する等、再生情報の消去を指示した場合を想定する。そのとき、操作部130が、その指示を示す操作を検出して、対応する通知INTをユーザ操作検知モジュール162に送る。更に、その通知INTに応じてユーザ操作検知モジュール162がディスパッチャ1643Aに操作信号UOを送り、ディスパッチャ1643Aがその操作信号UOをOSD制御モジュール1647に伝える。OSD制御モジュール1647はその操作信号UOに応じて再生モード制御API1646Cを呼び出す。それにより、表示次元が「三次元」であることを示す次元信号DIMがAV再生ライブラリ1646から送出される。表示次元記憶部172Bはその次元信号DIMに応じて、表示次元が「疑似二次元」であることを示すフラグを解除して、表示次元が「三次元」であることを示すフラグを立てる。すなわち、表示次元が「疑似二次元」から「三次元」に戻される。ビデオ・デコーダ174Aはそのフラグの変化を検出して、「疑似二次元表示モード」から「三次元表示モード」に戻る。従って、以後、ビデオ・デコーダ174Aは左目用と右目用とのビデオ・フレームを交互にビデオ・プレーン・メモリ176に書き込む。こうして、時刻P2以降の第3期間T3では、左目用ビデオ・プレーンLVPLと右目用ビデオ・プレーンRVPLとが交互にビデオ・プレーン・メモリ176から出力されるので、ビデオ・プレーン列CVPL3からは立体視映像VV3が再現される。
<表示次元の切換に伴うグラフィックス・プレーンの変化>
図28は、プレーン・シフト・エンジン178から加算部179へ出力されるグラフィックス・プレーン列CGPL1−3を示す模式図である。図28に示されている時間軸はSTCを表す。図28では、図27と同様、表示次元が三次元に維持されている状態において、ユーザが時刻P1にリモコン400のボタンを押下して再生情報の表示を指示し、時刻P2にその表示の消去を指示した場合を想定する。その場合、再生期間は、時刻P1、P2を境に三つの期間T1、T2、T3に分離され、各期間では表示次元がそれぞれ、三次元、疑似二次元、三次元に維持される。
時刻P1以前の第1期間T1では、プレーン・シフト・エンジン178がグラフィックス・プレーン・シフト量を用いて、図22に示されているようなグラフィックス・プレーンGPLに対するプレーン・シフトを継続する。それにより、左目用グラフィックス・プレーンLGPLと右目用グラフィックス・プレーンRGPLとが交互にプレーン・シフト・エンジン178から出力される。従って、第1期間T1ではグラフィックス・プレーン列CGPL1から字幕STLの立体視映像VG1が再現される。
時刻P1にユーザがリモコン400のボタンを押下して再生情報の表示を指示したとき、図27の場合と同様な手順に従って、OSD制御モジュール1647が再生モード制御API1646Cを呼び出す。それにより、AV再生ライブラリ1646がプレーン・シフト・エンジン178に、設定済みのグラフィックス・プレーン・シフト量を一旦退避させ、その上でそれを0に再設定させる。従って、以後、プレーン・シフト・エンジン178は、グラフィックス・プレーンGPLに対するプレーン・シフトを実質上停止させ、字幕STLの水平方向での表示位置が同じグラフィックス・プレーンGPLを繰り返し出力する。その結果、第2期間T2ではグラフィックス・プレーン列CGPL2から字幕STLの二次元映像VG2が再現される。
時刻P2にユーザが再生情報の表示の消去を指示したとき、図27の場合と同様な手順に従って、OSD制御モジュール1647が再生モード制御API1646Cを呼び出す。それにより、AV再生ライブラリ1646がプレーン・シフト・エンジン178に、退避領域からグラフィックス・プレーン・シフト量を復帰させる。それにより、プレーン・シフト・エンジン178はグラフィックス・プレーンGPLに対し、グラフィックス・プレーン・シフト量を利用したプレーン・シフトを再開する。すなわち、左目用グラフィックス・プレーンLGPLと右目用グラフィックス・プレーンRGPLとが再び、交互にプレーン・シフト・エンジン178から出力される。その結果、第3期間T3ではグラフィックス・プレーン列CGPL3から字幕STLの立体視映像VG3が再現される。
<OSDプレーンの制御>
図29は、プレーン・シフト・エンジン178から加算部179へ出力されるOSDプレーン列COPLを示す模式図である。図29に示されている時間軸はSTCを表す。図29では、図27と同様、表示次元が三次元に維持されている状態において、ユーザが時刻P1に再生情報の表示を指示し、時刻P2にその消去を指示した場合を想定する。その場合、再生期間は、時刻P1、P2を境に三つの期間T1、T2、T3に分離され、各期間では表示次元がそれぞれ、三次元、疑似二次元、三次元に維持される。
第1期間T1では、OSDプレーン・メモリ177AがOSDプレーンを含んでいないので、プレーン・シフト・エンジン178からOSDプレーンは出力されない。
時刻P1にユーザが再生情報の表示を指示したとき、図27の場合と同様な手順に従って、OSD制御モジュール1647がディスパッチャ1643Aから操作信号UOを受ける。OSD制御モジュール1647はその操作信号UOに応じて、再生情報を表すOSDGEのグラフィックス・データGD2を生成してレンダリング・エンジン175に渡す。レンダリング・エンジン175はそのグラフィックス・データGD2を復号してOSDプレーン・メモリ177Aに書き込む。こうして、OSDプレーンOPLが生成される。そのとき、プレーン・シフト・エンジン178は、そのOSDプレーンOPLに対し、OSDプレーン・シフト量を利用してプレーン・シフトを行う。それにより、OSDGEの水平方向での表示位置が異なる左目用OSDプレーンLOPLと右目用OSDプレーンROPLとが生成されて、交互にプレーン・シフト・エンジン178から出力される。その結果、第2期間T2ではOSDプレーン列COPLからOSDGEの立体視映像VOが再現される。
時刻P2にユーザが再生情報の表示の消去を指示したとき、図27の場合と同様な手順に従って、OSD制御モジュール1647がディスパッチャ1643Aから操作信号UOを受ける。OSD制御モジュール1647はその操作信号UOに応じてレンダリング・エンジン175へOSDの消去命令RQ2を送る。レンダリング・エンジン175はその消去命令RQ2に応じて、OSDプレーン・メモリ177Aに保持されたOSDプレーンOPLを消去する。それにより、プレーン・シフト・エンジン178からのOSDプレーンの出力が停止するので、第3期間T3ではOSDがビデオ・フレームから消える。
<OSDの表示に伴う立体視映像の変化>
図30は、図27−29に示されている各プレーン列から合成されたビデオ・フレーム列によって再現される立体視映像を表す模式図である。図30に示されている時間軸はSTCを表す。また、各時刻P1、P2、及び各期間T1、T2、T3はいずれも、図27−29に示されているものと共通である。
第1期間T1では表示次元が三次元に維持されている。ビデオ・プレーン・メモリ176から加算部179へは左目用ビデオ・プレーンLVPLと右目用ビデオ・プレーンRVPLとが交互に出力される。一方、プレーン・シフト・エンジン178から加算部179へは左目用グラフィックス・プレーンLGPLと右目用グラフィックス・プレーンRGPLとが交互に出力される。加算部179は左目用ビデオ・プレーンLVPLと左目用グラフィックス・プレーンLGPLとを一枚ずつ、一枚の左目用ビデオ・フレームに合成し、右目用ビデオ・プレーンRVPLと右目用グラフィックス・プレーンRGPLとを一枚ずつ、一枚の右目用ビデオ・フレームに合成する。加算部179がそれらの合成を交互に繰り返すことにより、左目用と右目用とのビデオ・フレームが交互に出力される。その結果、第1期間T1の映像SCN1ではコンテンツの映像と字幕とがいずれも立体視映像として再現される。
時刻P1にユーザが再生情報の表示を指示したとき、表示次元が三次元から疑似二次元に切り替わる。それにより、ビデオ・プレーン・メモリ176から加算部179へは左目用ビデオ・プレーンLVPLだけが出力される。一方、プレーン・シフト・エンジン178から加算部179へは、字幕STLの水平方向での表示位置が同じグラフィックス・プレーンGPLが繰り返し出力される。従って、第2期間T2の映像SCN2ではコンテンツの映像と字幕とはいずれも二次元映像として再現される。しかし、プレーン・シフト・エンジン178から加算部179へは更に、左目用OSDプレーンLOPLと右目用OSDプレーンROPLとが交互に出力される。その結果、第2期間T2の映像SCN2ではOSDGEだけが立体視映像として再現され、特に視聴者にはOSDGEがコンテンツの映像と字幕とのいずれよりも手前に見える。
時刻P2にユーザが再生情報の表示の消去を指示したとき、表示次元が疑似二次元から三次元に戻る。それにより、再び、ビデオ・プレーン・メモリ176から加算部179へは左目用ビデオ・プレーンLVPLと右目用ビデオ・プレーンRVPLとが交互に出力され、プレーン・シフト・エンジン178から加算部179へは左目用グラフィックス・プレーンLGPLと右目用グラフィックス・プレーンRGPLとが交互に出力される。一方、OSDプレーンOPLは消去されるので、プレーン・シフト・エンジン178から加算部179へのOSDプレーンの出力は停止する。加算部179は、左目用ビデオ・プレーンLVPLと左目用グラフィックス・プレーンLGPLとを一枚ずつ、一枚の左目用ビデオ・フレームに合成し、右目用ビデオ・プレーンRVPLと右目用グラフィックス・プレーンRGPLとを一枚ずつ、一枚の右目用ビデオ・フレームに合成する。加算部179がそれらの合成を交互に繰り返すことにより、左目用と右目用とのビデオ・フレームが交互に出力される。その結果、第3期間T3の映像SCN3ではOSDGEが消去され、コンテンツの映像と字幕とが再び立体視映像として再現される。
尚、BD−Jモジュール1645によって実行されるJavaアプリケーション・プログラムが、再生部170を「三次元表示モード」から「疑似二次元表示モード」に移行させた上でポップアップ表示を行うとき、図30に示されている立体視映像の変化は、OSDGEがポップアップ表示に置き換えられる点を除いて同様である。
<本発明の実施形態1による立体視映像再生装置の効果>
再生装置100では上記のとおり、再生部170が立体視映像表示について「三次元表示モード」と「疑似二次元表示モード」との二種類の動作モードを備えている。三次元表示モードでは、コンテンツから左目用と右目用との両方のビデオ・フレームが復号されて、交互にビデオ・プレーンとして利用される。疑似二次元表示モードでは、コンテンツから左目用と右目用とのビデオ・フレームがいずれも復号されるが、それらのいずれか一方だけがビデオ・プレーンとして繰り返し利用され、他方は破棄される。この再生装置100は更に、立体視映像の表示期間中にOSD又はポップアップ表示を表示装置200に出力するとき、再生部170を三次元表示モードから疑似二次元表示モードに移行させる。一方、再生装置100は再生部170に、OSD及びポップアップ表示のグラフィックス映像を立体視映像として出力させる。それにより、表示装置200の画面では、OSD及びポップアップ表示が立体視映像として表示される間、コンテンツの映像は二次元映像として表示される。その結果、OSD及びポップアップ表示の視認性を更に向上させることができる。
再生装置100では更に、「三次元表示モード」と「疑似二次元表示モード」との間の切換が、ビデオ・プレーン・メモリ176Aへの右目用ビデオ・フレームの書き込みとその停止との間の切換だけで実現される。従って、その切換は「三次元表示モード」と「二次元表示モード」との間の切換よりも高速に実現可能である。それ故、コンテンツの映像へOSD及びポップアップ表示を合成する処理の期間に、いわゆる「黒画面」を挿入する必要がない。その結果、再生装置100の操作性を更に向上させることができる。
<変形例>
(1)図6に示されている例では、左目用と右目用とのプライマリ・ビデオ・ストリームVL、VRが一本のAVストリーム・ファイル515Aに多重化されている。その他に、左目用と右目用とのプライマリ・ビデオ・ストリームが異なる二本のAVストリーム・ファイルに分離されていてもよい。その場合、立体視映像用のプレイリスト情報は、それら二本のAVストリーム・ファイルを同時に参照するための情報を含む。それにより、仮想ファイルシステム163は光ディスク・ドライブ110又はローカル・ストレージ120に、それら二本のAVストリーム・ファイルをパラレルにトラック・バッファ172Aへ転送させる。デマルチプレクサ173はそれらのAVストリーム・ファイルから交互にPESパケットを読み出してビデオ・デコーダ174Aに送る。その他に、再生部170がトラック・バッファ172Aとデマルチプレクサ173との対を二つ備え、各対に上記二本のAVストリーム・ファイルを個別に処理させてもよい。再生部170は更にビデオ・デコーダ174Aとビデオ・プレーン・メモリ176との対を二つ備え、各対に左目用ビデオ・プレーンと右目用ビデオ・プレーンとをパラレルに生成させてもよい。
(2)加算部179の構成には周知のものが利用可能である。例えば、ビデオ・プレーン・メモリ176から出力されたビデオ・プレーンに、プレーン・シフト・エンジン178から出力されたOSDプレーン、BD−Jプレーン、及びグラフィックス・プレーンが一度に合成される構成であってもよい。その他に、加算部179が次のような二つの部分から構成されてもよい。まず、第一の部分がビデオ・プレーンにグラフィックス・プレーンを合成する。次に、第二の部分が、第一の部分による合成結果に、OSDプレーン又はBD−Jプレーンを合成する。更に、加算部179がプレーン・シフト・エンジン178と一体化されていてもよい。その場合、プレーン・シフト・エンジン178による各プレーンに対するプレーン・シフトと加算部179によるプレーン間の合成とが一連の処理として実行される。
(3)実施形態1では、図9に示されているように、コンテンツの映像の表示次元を示す情報、すなわち、二次元映像用のAVストリーム・ファイルと立体視映像用のAVストリーム・ファイルとを識別するための情報として、次元識別フラグ534がプレイリスト情報530に記録されている。その情報はその他に、例えば、各プレイアイテム情報531−533、クリップ情報ファイル514A、又は、プレイリスト再生処理用のオブジェクト・ファイル512B、516Aに記録されていてもよい。
(4)実施形態1では、図9に示されているように、グラフィックス・プレーン・シフト量535がプレイリスト情報530に記録されている。グラフィックス・プレーン・シフト量はその他に、各プレイアイテム情報531−533、クリップ情報ファイル514A、インデックス・ファイル512A、プレイリスト再生処理用のオブジェクト・ファイル512B、516A、XMLファイル518A、又はAVストリーム・ファイル515Aに記録されていてもよい。グラフィックス・プレーン・シフト量が、インデックス・ファイル512A及びオブジェクト・ファイル512B、516A等の動的シナリオ情報、又はXMLファイル518Aに記録されているとき、次元判定部1646Bは、図16に示されているステップS5よりも早い段階、例えばステップS3で、動的シナリオ情報又はXMLファイル518Aからグラフィックス・プレーン・シフト量を読み出してプレーン・シフト・エンジン178に渡してもよい。それにより、コンテンツ全体でグラフィックス・プレーン・シフト量が共通であるときは、プレイリスト再生処理ごとにグラフィックス・プレーン・シフト量を設定し直す必要がないので、再生装置100の負担が軽減可能である。一方、グラフィックス・プレーン・シフト量がAVストリーム・ファイル515Aに記録されているとき、それが、グラフィックス・ストリームの表すグラフィックス要素、特に字幕のフレーム内での座標値と共に、その奥行きを表す“Z値”として表現されていてもよい。その場合、グラフィックス・デコーダ174Bが、復号後のグラフィックス・データからグラフィックス・プレーン・シフト量を読み出してプレーン・シフト・エンジン178に渡す。
(5)実施形態1では、AVストリーム・ファイル515Aに多重化されたグラフィックス・ストリームA1、A2が二次元映像用である。その場合、グラフィックス・デコーダ174Cによってそのグラフィックス・ストリームから一枚のグラフィックス・プレーンが復号されるごとに、プレーン・シフト・エンジン178によってその一枚のグラフィックス・プレーンから立体視映像用の一対のグラフィックス・プレーンが生成される。このようなプレーン・シフトを利用した立体視映像表示方式では、左目用と右目用との一対のプレーンを利用した立体視映像表示方式よりも、再生装置に要求される演算量が比較的小さい。従って、プレーン・シフトを利用した立体視映像表示方式は、携帯電話機等、メモリ容量が比較的小さく、又はグラフィックス機能が比較的低い電子機器に有利である。その他に、AVストリーム・ファイル515Aに初めから立体視映像用グラフィックス・ストリームの対、すなわち左目用と右目用とのグラフィックス・ストリームが多重化されていてもよい。その場合、グラフィックス・デコーダ174Cはビデオ・デコーダ174Aと同様に、「三次元表示モード」と「疑似二次元表示モード」との二種類の動作モードを備える。三次元表示モードでは左目用と右目用とのグラフィックス・プレーンが交互に生成され、疑似二次元表示モードでは左目用グラフィックス・プレーンだけが生成される。それにより、図30と同様に、OSD又はポップアップ表示が立体視映像として表示される間、グラフィックス・プレーンの表すグラフィックス映像、特に字幕は二次元映像として表示される。
(6)実施形態1では、OSD制御モジュール1647がOSDのグラフィックス・データGD2を二次元映像用として生成する。その場合、レンダリング・エンジン175によってそのグラフィックス・データGD2から一枚のOSDプレーンが生成されるごとに、プレーン・シフト・エンジン178によってその一枚のOSDプレーンから立体視映像用の一対のOSDプレーンが生成される。その他に、OSD制御モジュール1647がOSDのグラフィックス・データGD2を立体視映像用として生成し、すなわち左目用と右目用との対で生成してもよい。その場合、レンダリング・エンジン175は、左目用と右目用とのOSDのグラフィックス・データを交互に利用して、左目用と右目用とのOSDプレーンを交互に生成する。それにより、図29と同様に、OSDが立体視映像として表示される。BD−Jモジュール1645によるポップアップ表示用のグラフィックス・データについても同様である。
(7)図16−20の例ではプレイリスト再生処理が、インデックス・ファイル512A内のインデックス・テーブルの項目「ファーストプレイ」で参照されるオブジェクトに従って実行される。すなわち、そのプレイリスト再生処理は、光ディスク500が光ディスク・ドライブ110へ挿入された直後に実行される。プレイリスト再生処理はその他に、インデックス・テーブルの他の項目で参照されるオブジェクトに従って実行されてもよい。その項目は例えば、操作部130がユーザによる再生ボタンの押下を検出したとき、それに応じてモード管理モジュール1643によって参照される。そのときに実行されるプレイリスト再生処理は、ステップS2以降、図16−20に示されているものと同様に進行する。
(8)実施形態1では、グラフィックス・プレーン・シフト量、OSDプレーン・シフト量、及びBD−Jプレーン・シフト量はいずれも、ビデオ・フレーム内の所定位置を基準とする相対的な変位量の対で定義される。しかし、各プレーン・シフト量はその他の態様で定義されてもよい。各プレーン・シフト量は例えばプレーン・シフト前後でのビデオ・フレーム内の絶対座標の差で定義されてもよい。また、各プレーン・シフト量は、ピクセル数等、プレーン・シフト・エンジン178の種類に依らない共通の単位で表現される。その場合、プレーン・シフト・エンジン178は、ピクセル数からビット数への換算等、プレーン・シフト量をハードウェアで利用可能な値に変換するための演算処理を行う。その他に、プレーン・シフト量は初めから、ビット数等、ハードウェアでそのまま利用可能な単位で表現されてもよい。
(9)実施形態1では、プレーン・シフト量は、大きさが等しく、符号の異なる変位量の対で定義される。その他に、その対の間で大きさが異なっていてもよい。また、プレーン・シフト量が例えば左目用ビデオ・プレーンにおける変位量だけで定義されてもよい。その場合、プレーン・シフト・エンジン178が左右フラグの状態に応じて、プレーン・シフト量の符号を反転させて利用する。
(10)図22、23に示されているように、プレーン・シフト・エンジン178によるプレーン・シフトでは、字幕STL及びOSDGE等のグラフィックス要素のサイズが一定に維持されている。その他に、プレーン・シフト・エンジン178は、処理対象のプレーンに対してプレーン・シフトと併せてスケーリング処理を行うことにより、変位対象のグラフィックス要素のサイズをプレーン・シフト量に応じて変化させてもよい。特に、手前に表示される映像ほど大きく映るように、そのサイズを変化させる。その場合、プレーン・シフトによって生じる立体視映像では、実際の三次元空間の光景と同様に、同じサイズの物体が手前にあるほど大きく見える。従って、それらの立体視映像から視聴者が違和感を更に受けにくくなるので、字幕及びOSD等の視認性が更に向上する。
(11)実施形態1では、制御部160がカレント・プレイリスト情報からグラフィックス・プレーン・シフト量を読み出してそのまま再生部170に渡す。その他に、制御部160が表示装置200の画面の解像度及びサイズに応じて、グラフィックス・プレーン・シフト量を調節してもよい。それにより、左目用と右目用とのビデオ・フレーム間でのグラフィックス映像の変位量が、同じ物体の両眼視差として視聴者に知覚される範囲を超えることを防ぐ。その結果、そのグラフィックス映像が立体的ではなく、二重に見える現象を防ぐことができるので、字幕及びOSD等の視認性が更に向上する。
(12)実施形態1では、デマルチプレクサ173が、左目用と右目用とのビデオ・ストリームのTSパケットからPESパケットを復元してビデオ・デコーダ174Aへ送出するごとに、左右フラグ記憶部173Aに左右フラグをフリップさせる。その他に、加算部179が合成結果のビデオ・フレームを一枚、表示装置200へ出力するごとに、左右処理記憶部173Aに左右フラグをフリップさせてもよい。
(13)図27に示されているプレーン・シフトでは、イメージ・プレーン・メモリ177に書き込まれた一枚のプレーンが、左目用ビデオ・フレームにおける変位量の利用によっては左目用のプレーンに書き換えられ、右目用ビデオ・フレームにおける変位量の利用によっては右目用のプレーンに書き換えられる。その他に、イメージ・プレーン・メモリ177に書き込まれた一枚のプレーンがまずはそのまま、例えば左目用のプレーンとして利用され、次に、左目用と右目用との両方のビデオ・フレームにおける変位量の差を用いたプレーン・シフトによって、右目用のプレーンに書き換えられてもよい。その場合、プレーン・シフト量が初めから、その差で定義されていてもよい。
(14)図6に示されているAVストリーム・ファイル515Aでは、左目用ビデオ・ストリームV1のPIDが“0x1011”であり、右目用ビデオ・ストリームV2のPIDが“0x1012”である。また、図20に示されているステップS45では、ビデオ・プレーン・メモリ176に書き込まれた右目用ビデオ・フレームは加算部179へ出力されることなく破棄される。それらのいずれでも「左目用」と「右目用」との間の区別は本質的ではないので、設定が逆であってもよい。
(15)図18に示されているステップS22では、表示次元が二次元であるプレイリスト再生処理において、AV再生ライブラリ1646は右目用ビデオ・ストリームを選択対象から外す。その場合、選択対象から外されるビデオ・ストリームを左目用に変更できるか否かは、左目用と右目用とのビデオ・ストリームの符号化方式によって異なる。各ビデオ・ストリームが互いに独立に符号化されているとき、すなわち、両ストリーム間でのフレーム間相関が符号化に利用されていないとき、右目用ビデオ・ストリームに代えて、左目用ビデオ・ストリームが選択対象から外されてもよい。一方、両ストリーム間でのフレーム間相関が符号化に利用されているとき、単独では復号できない方のビデオ・ストリームしか選択対象から外すことはできない。その場合、プレイアイテム情報531−533内のストリーム選択テーブルでは、選択対象から外すことのできない方のビデオ・ストリームに他方のビデオ・ストリームよりも小さいストリーム選択番号が割り当てられる。
(16)図24に示されているステップS62、S66でのOSD制御モジュール1647による再生モード制御API1646Cの呼び出し、及び、図25に示されているステップS72、S77でのJavaアプリケーション・プログラムによる再生モード制御API1646Cの呼び出しはいずれも、図26に示されているステップS80による表示次元の確認よりも先に実行される。その他に、再生モード制御API1646Cの呼び出しよりも先に表示次元の確認が行われ、表示次元が二次元以外であるときに再生モード制御API1646Cが実際に呼び出されるようにしてもよい、その場合、更に、ステップS80で表示次元が二次元であることが確認されたとき、AV再生ライブラリ1646は、各モジュール1645、1647へ、表示次元の設定エラーを通知してもよい。
(17)実施形態1では、ビデオ・デコーダ174Aが表示次元記憶部172B内のフラグの状態を監視して、その変化に応じて、復号後のビデオ・フレームの出力処理に関する動作モードを切り換える。その他に、ビデオ・デコーダ174Aが表示次元記憶部172B内のフラグの変化に応じて、一方のバッファ内のPESパケットに対する復号処理をスキップしてもよい。それとは別に、デマルチプレクサ173が表示次元記憶部172B内のフラグの状態を監視して、その変化に応じて、ビデオ・デコーダ174Aに送出されるべきビデオ・ストリームのPIDを切り換えてもよい。具体的には、例えば表示次元が三次元に維持されている間、デマルチプレクサ173は、左目用と右目用との両方のビデオ・ストリームのPIDを、ビデオ・デコーダ174Aへの送出対象のストリームのPIDとして保持する。一方、表示次元が疑似二次元に切り換えられたとき、デマルチプレクサ173は、右目用ビデオ・ストリームのPIDを、ビデオ・デコーダ174Aへの送出対象のストリームのPIDから外す。このようにしても、表示次元が疑似二次元に切り換えられている間、ビデオ・プレーン・メモリ176に左目用ビデオ・プレーンだけを保持させることができる。
(18)実施形態1では、一つのビデオ・プレーン・メモリ176内の異なる配列に左目用と右目用とのビデオ・プレーンが個別に生成される。その他に、左目用と右目用とのビデオ・プレーンが同じ配列に交互に上書きされてもよい。その場合、疑似二次元表示モードでは、ビデオ・デコーダ174Aはまず、非圧縮のビデオ・フレームを一枚復号するごとに、その非圧縮のビデオ・フレームがいずれのバッファ内のPESパケットから復号されたかを識別する。そのバッファが左目用ビデオ・ストリームのPESパケットに割り当てられたものであれば、ビデオ・デコーダ174Aはそのビデオ・フレームをビデオ・プレーン・メモリ176に書き込む。逆に、そのバッファが右目用ビデオ・ストリームのPESパケットに割り当てられたものであれば、ビデオ・デコーダ174Aはそのビデオ・フレームを破棄する。こうして、表示次元が疑似二次元に維持されている間、ビデオ・プレーン・メモリ176には左目用ビデオ・フレームだけが書き込まれる。
(19)実施形態1では、ビデオ・プレーン・メモリ176が切換信号PTDの状態に応じて二つの配列のいずれかを選択して、その中から加算部179へビデオ・プレーンを出力する。それとは異なり、加算部179が表示次元記憶部172B内のフラグの状態を監視して、その変化に応じてビデオ・プレーン・メモリ176内の二つの配列のいずれかを選択して、その中からビデオ・プレーンを読み出してもよい。具体的には、例えば表示次元が三次元に維持されている間、加算部179は二つの配列から交互にビデオ・プレーンを読み出す。一方、表示次元が疑似二次元に切り換えられたとき、加算部179は、左目用ビデオ・プレーンを保持した配列だけから同じビデオ・プレーンを二度ずつ読み出す。このようにしても、表示次元が疑似二次元に切り換えられている間、ビデオ・プレーン・メモリ176から加算部179へ左目用ビデオ・プレーンだけを与えることができる。
(20)再生モード制御API1646Cは、図26に示されているフローチャート全体を一連のプログラムとして構成したものであっても、表示次元を三次元から疑似二次元へ切り換えるときのAPIと、逆に疑似二次元から三次元へ戻すときのAPIとの組み合わせとして構成されたものであってもよい。また、ステップS80による判断が呼び出し元の各モジュール1645、1647によって実行され、その判断で得られた表示次元の値をパラメータとして再生モード制御API1646Cが受け取るように構成されてもよい。
(21)実施形態1では、表示次元が疑似二次元である間、OSD及びポップアップ表示だけが立体視映像として表示される。その他に、表示次元が疑似二次元である間、OSDプレーン・シフト量及びBD−Jプレーン・シフト量がいずれも0に設定されて、OSD及びポップアップ表示も二次元映像として表示されてもよい。その場合でも、コンテンツの映像/字幕は二次元映像として表示されているので、OSD及びポップアップ表示の視認性が損なわれることがない。更に、液晶シャッター眼鏡をかけていない人にも画面の表示、特にOSD及びポップアップ表示を見せることができる。
(22)再生部170は更に、背景プレーン・メモリを備えていてもよい。背景プレーン・メモリは、他のプレーン・メモリと同様、再生部170に内蔵のメモリに確保された二次元配列のデータ領域である。背景プレーン・メモリには、例えばレンダリング・エンジン175により、ビデオ・フレームに背景として合成されるべき静止画像から背景プレーンが構成される。その静止画像は例えば光ディスク500又はローカル・ストレージ120から供給される。その後、背景プレーンはグラフィックス・プレーンと同様に扱われる。すなわち、表示次元が三次元に維持されている間、背景プレーンはプレーン・シフト・エンジン178によるプレーン・シフトで処理される。それによって生成された左目用と右目用との背景プレーンは交互にプレーン・シフト・エンジン178から加算部179へ出力され、左目用と右目用との各ビデオ・プレーンと共に、左目用と右目用とのビデオ・フレームに交互に合成される。従って、背景プレーンの表す背景映像は画面に立体的に表示される。一方、表示次元が疑似二次元に切り換えられるとき、プレーン・シフト・エンジン178は背景プレーンに対するプレーン・シフトを実質上停止させ、同じ背景プレーンを二度ずつ繰り返し加算部179へ出力する。その場合、同じ背景プレーンが同じ左目用ビデオ・プレーンに二度ずつ合成され、それぞれが左目用と右目用とのビデオ・フレームとして表示装置200へ出力される。従って、背景映像は画面に二次元的に表示される。こうして、OSD又はポップアップ表示の視認性は背景画像によっても損なわれることがない。
(23)実施形態1では、再生装置100が光ディスク500から立体視映像を再生する。その他に、再生装置100がチューナを備え、それを用いて、地上波放送、衛星放送、又はケーブル放送によって配信される立体視映像用ストリーム・データを受信し、上記のAVストリーム・ファイルと同様に再生してもよい。チューナは、受信された放送波からビデオ・ストリームを復調して、そのビデオ・ストリームが立体視映像用であるか否かを判断する。チューナは更に、その判断の結果を表示次元として次元判定部1646Bに通知する。一方、グラフィックス・プレーン・シフト量が放送波中に、上記のストリーム・データに付随するデータとして含まれてもよい。その場合、チューナは、放送波からグラフィックス・プレーン・シフト量を復調してプレーン・シフト・エンジン178に渡す。
《実施形態2》
本発明の実施形態2による再生装置では、実施形態1によるものとは異なり、OSDと共にコンテンツの映像/字幕を立体視映像として表示する動作モードが選択可能である。その他の特徴、例えば、光ディスク上のデータ構造、再生装置のハードウェア構成、及び制御部と再生部との各構成は実施形態1によるものと同様である。従って、以下の説明では、実施形態1の特徴とは異なる実施形態2の特徴について述べ、その他、実施形態1の特徴と同様な特徴については実施形態1での説明を援用する。
再生装置100は、ユーザによる操作又はアプリケーション・プログラムからの指示に応じて、所定の選択画面を表示装置200に表示させる。その選択画面の表示はOSD制御モジュール1647又はBD−Jモジュール1645によって実行される。ユーザはその選択画面を利用して、OSD等の画面への出力中、コンテンツの映像/字幕を二次元映像と立体視映像とのいずれとして表示させるかを選択できる。コンテンツの映像/字幕を二次元映像として表示させることが選択されたとき、AV再生ライブラリ1646は再生モード制御API1646Cを有効化する。一方、コンテンツの映像/字幕を立体視映像として表示させることが選択されたとき、AV再生ライブラリ1646は再生モード制御API1646Cを無効化する。再生モード制御API1646Cの有効/無効の区別はレジスタ1646Aに記録される。
図31は、再生装置100によるOSDプレーンの制御に関するフローチャートである。再生装置100は、プレイリスト再生処理と並行して、ユーザによる操作及びアプリケーション・プログラムからの指示を監視し、その操作及び指示を検出するごとに、対応するOSDをOSDプレーンに描画する。生成されたOSDプレーンはプレイリスト再生処理の中でビデオ・フレームに合成されて表示装置200へ出力される。
以下、再生装置100によるOSDプレーンの制御について、図31に示されているステップの順に説明する。尚、図31に示されているステップのうち、ステップS60−S66は、図24に示されているものと全く同様である。従って、それらの詳細は図24についての説明を援用する。
ステップS60:操作部130がリモコン400又はフロント・パネルのボタンの押下を検出する。それに応じて、ユーザ操作検知モジュール162及びディスパッチャ1643Aを通して操作信号UOがOSD制御モジュール1647に送られる。その他に、HDMVモジュール1644又はBD−Jモジュール1645がアプリケーション・プログラムに従って、OSDの表示に関する指示をOSD制御モジュール1647に送る。
ステップS90:OSD制御モジュール1647はその操作信号UO又は指示に応じてレジスタ1646Aにアクセスし、再生モード制御API1646Cの有効/無効を確認する。再生モード制御API1646Cが有効であるとき、処理はステップS61に進む。再生モード制御API1646Cが無効であるとき、処理はステップS91に進む。
ステップS61:OSD制御モジュール1647は、操作信号UO又は指示の内容に対応するOSDのグラフィックス・データGD2を生成して、レンダリング・エンジン175に渡す。
ステップS62:OSD制御モジュール1647は再生モード制御API1646Cを呼び出して、再生部170を三次元表示モードから疑似二次元表示モードへ移行させる。
ステップS63:レンダリング・エンジン175は、OSD制御モジュール1647からのグラフィックス・データGD2を利用してOSDプレーンを生成する。
ステップS64:グラフィックス・データGD2の送出後、所定時間の経過等に応じ、OSD制御モジュール1647はレンダリング・エンジン175へOSDの消去命令RQ2を送る。
ステップS65:レンダリング・エンジン175はその消去命令RQ2に応じてOSDプレーンを消去する。
ステップS66:OSD制御モジュール1647は再生モード制御API1646Cを呼び出して、再生部170を疑似二次元表示モードから三次元表示モードに戻す。それにより、処理は終了する。
ステップS91:OSD制御モジュール1647はまず、操作信号UO又は指示の内容に対応するOSDのグラフィックス・データを選択する。OSD制御モジュール1647は次に、そのグラフィックス・データの「加工」を行う。その加工により、左目用と右目用とのビデオ・フレームの対が表す立体視映像のうち、OSDよりも手前に知覚されるべき部分に、その対の一方ではそのOSDによって隠され、かつ、他方では隠されていない領域が生じないようにする。その加工の必要性及び詳細については後述する。その加工後、OSD制御モジュール1647はOSDのグラフィックス・データGD2をレンダリング・エンジン175に渡す。
ステップS92:レンダリング・エンジン175は、OSD制御モジュール1647から受けたグラフィックス・データGD2を復号してOSDプレーン・メモリ177Aに書き込む。こうして、OSDプレーンが生成される。
ステップS93:グラフィックス・データGD2の送出後、所定時間の経過、新たな操作信号UOの受信、又は他のモジュール1644、1645からの指示に応じ、OSD制御モジュール1647はレンダリング・エンジン175へOSDの消去命令RQ2を送る。
ステップS94:レンダリング・エンジン175はその消去命令RQ2に応じて、OSDプレーン・メモリ177Aに保持されたOSDプレーンを消去する。それにより、プレーン・シフト・エンジン178からのOSDプレーンの出力が停止する。それにより、処理は終了する。
<ステップS91におけるOSDの加工の必要性>
OSDプレーン・シフト量が一定に維持されるとき、視聴者に知覚されるOSDの奥行きは一定に保たれる。一方、コンテンツの立体視映像では様々な物体の奥行きが多様に、かつ広範囲に変動する。従って、OSDの奥行きよりも手前に表示された物体の視方向にOSDが表示される可能性がある。
図32は、OSDの奥行きよりも手前に表示された物体IMにOSDGEをそのまま重ねて表示したときの立体視映像SVを示す模式図である。図32の(a)は、その立体視映像SVの表示に利用される左目用ビデオ・フレームFRLを示す。(b)は、その立体視映像SVの表示に利用される右目用ビデオ・フレームFRRを示す。(c)は、表示装置200の画面201上に見えるその立体視映像SVを模式的に表す。尚、図32の(a)、(b)では、各ビデオ・フレームFRL、FRRの中心線Cが一点鎖線で示されている。
図32の(a)と(b)とを比べれば、左目用ビデオ・フレームFRLの左端とOSDGELとの間の距離D1Lは、右目用ビデオ・フレームFRRの左端とOSDGERとの間の距離D1Rより長い。従って、図32の(c)に示されているように、立体視映像SVでは、OSDGEは画面201よりも第1距離DP1だけ手前に見える。一方、左目用ビデオ・フレームFRLの左端と物体IMLとの間の距離D2Lは、右目用ビデオ・フレームFRRの左端と物体IMRとの間の距離D2Rより長い。従って、図32の(c)に示されているように、立体視映像SVでは、物体IMは画面201よりも第2距離DP2だけ手前に見える。ここで、左目用ビデオ・フレームFRLと右目用ビデオ・フレームFRRとの間では、OSDGEL、GERの変位量D1L−D1Rよりも物体IML、IMRの変位量D2L−D2Rが大きいので、立体視映像SVでは物体IMはOSDGEよりも手前に見える。すなわち、第2距離DP2は第1距離DP1より大きい。しかし、図32の(a)、(b)に示されているように、各ビデオ・フレームFRL、FRRでは、各OSDGEL、GERは各物体IML、IMRの一部を隠すように表示されている。従って、立体視映像SVでは、物体IMは、OSDGEと重なった部分が切り取られたように見える。
図32の(a)、(b)を更に比較すると、右目用ビデオ・フレームFRRではOSDGERの左側に隣接して見える物体IMR上の帯状領域GHAが、左目用ビデオ・フレームFRLではOSDGELの左端部に隠されて見えない。これは、「立体視映像SVでは物体IMがOSDGEよりも手前に見えるにも関わらず、図32の(c)に示されている物体IM上の帯状領域GH2が、視聴者の右目には見えても左目には見えない」ことを意味する。逆に、「視聴者の左目には、本来、物体IM上の帯状領域GH2に阻まれて見えないはずのOSDGE上の領域GH1が見えてしまっている」とも言える。その結果、視聴者にはその領域GH1、GH2の奥行きが正しく知覚できないので、各領域が不自然に湾曲しているように見え、又はちらついて見える。このような領域が過大であれば、視聴者には、その物体IMにそのOSDGEが不自然にめり込んでいるように見える危険性もある。それは、そのOSDGEの視認性を低下させる原因になるだけでなく、視聴者の眼精疲労の原因にもなり得るので好ましくない。従って、左目用ビデオ・フレームFRLと右目用ビデオ・フレームFRRとのいずれにも、上記の領域GHAのような領域が生じないように、OSDGEL、GERを加工する必要がある。
<ステップS91におけるOSDの加工の詳細>
ステップS91で実行されるOSDの加工は、左目用と右目用とのビデオ・フレームのいずれにも、図32の(b)に示されている領域GHAのような領域が生じないようにするための処理である。その領域は、左目用と右目用とのビデオ・フレームの対が表す立体視映像のうち、OSDよりも手前に知覚されるべき部分に含まれ、その対の一方ではOSDによって隠され、他方では隠されていないことを特徴とする。
その加工としては次の三種類(A)−(C)が有効である:(A)OSDの水平方向での幅をフレーム全体に拡張する。(B)少なくとも立体視映像と重なるOSDの部分を半透明にする。(C)立体視映像の奥行きがOSDの奥行きよりも手前であるとき、左目用のイメージ・プレーン上では立体視映像にOSDの右端部が重なるときにその右端部の右側に帯を付加し、右目用のイメージ・プレーン上では立体視映像にOSDの左端部が重なるときにその左端部の左側に帯を付加する。以下、それら三種類の加工(A)−(C)について順番に説明する。
(A)図33は、上記の加工(A)を説明するための模式図である。図33の(a)は、加工(A)で得られる左目用ビデオ・フレームFRLを示す。(b)は、加工(A)で得られる右目用ビデオ・フレームFRRを示す。(c)は、(a)、(b)に示されているビデオ・フレームFRL、FRRの対によって表示装置200の画面201上に見える立体視映像SVAを模式的に表す。尚、図33の(a)、(b)では、各ビデオ・フレームFRL、FRRの中心線Cが一点鎖線で示されている。また、図32の(a)、(b)に示されている加工前のOSDGEL、GERが破線で示されている。
図33の(a)を参照すると、左目用ビデオ・フレームFRLでは、OSDGALの水平方向の長さ、すなわち幅WLが加工前のものW0より拡張され、特にビデオ・フレームの幅FWよりも差DALだけ短く調節される。更に、拡張後のOSDGALは、その右端がビデオ・フレームFRLの右端とほぼ一致するように配置される。ここで、その差DALは、図32に示されている左目用ビデオ・フレームFRLと右目用ビデオ・フレームFRRとの間でのOSDGEL、GERの変位量D1L−D1Rに等しい:DAL=D1L−D1R。一方、図33の(b)を参照すると、右目用ビデオ・フレームFRRでは、OSDGARの幅WRが加工前のものW0より拡張され、特にビデオ・フレームの幅FWよりも差DARだけ短く調節される。更に、拡張後のOSDGARは、その左端がビデオ・フレームFRRの左端とほぼ一致するように配置される。図33の(a)、(b)に示されているように、左目用ビデオ・フレームFRLと右目用ビデオ・フレームFRRとの間では拡張後のOSDGAL、GARが変位量DAL=D1L−D1Rだけ水平方向に変位している。従って、図33の(c)に示されているように、立体視映像SVAでは拡張後のOSDGAEは、図32の(c)に示されているOSDGEと同じ奥行き、すなわち、画面201よりも第1距離DP1だけ手前に見える。しかし、拡張後のOSDGAEは画面201の全体とほぼ同じ幅に見える。
一方、左目用ビデオ・フレームFRLと右目用ビデオ・フレームFRRとの間での物体IML、IMRの変位量D2L−D2Rは、図32の(a)、(b)に示されているものと等しい。従って、図33の(c)に示されているように、立体視映像SVAでは物体IMAは、図32の(c)に示されている物体IMと同じ奥行き、すなわち、画面201よりも第2距離DP2だけ手前に見える。すなわち、図33の(c)では図32の(c)と同様に、物体IMAはOSDGEAよりも手前に見える。ここで、図33の(a)、(b)に示されているように、各ビデオ・フレームFRL、FRRでは、各OSDGEL、GERは各物体IML、IMRの同じ領域を隠すように表示されている。従って、立体視映像SVAでは物体IMAは、その領域がOSDGEAによって切り取られたように見える。しかし、図33の(a)、(b)では図32の(a)、(b)とは異なり、いずれのビデオ・フレームFRL、FRRの物体IML、IMR上にも、視聴者の片目にしか見えない領域は生じない。従って、視聴者には物体IMAとOSDGEAとの間での奥行きの違いが正しく知覚される。
(B)図34は、上記の加工(B)を説明するための模式図である。図34の(a)は、加工(B)で得られる左目用ビデオ・フレームFRLを示す。(b)は、加工(B)で得られる右目用ビデオ・フレームFRRを示す。(c)は、(a)、(b)に示されているビデオ・フレームFRL、FRRの対によって表示装置200の画面201上に見える立体視映像SVBを模式的に表す。尚、図34の(a)、(b)では、各ビデオ・フレームFRL、FRRの中心線Cが一点鎖線で示されている。
図34の(a)、(b)を参照すると、いずれのビデオ・フレームFRL、FRRにおいても、OSDGBL、GBR、及び物体IML、IMRの配置は、図32の(a)、(b)に示されているものと等しい。しかし、各ビデオ・フレームFRL、FRRではOSDGBL、GBRのうち、物体IML、IMRと重なる領域TRL、TRRのα値が1よりも十分に小さい正値、例えば0.5に設定される。すなわち、各領域TRL、TRRが半透明に設定される。
ここで、OSD制御モジュール1647は次の手順で、半透明にすべき領域TRL、TRRを決定する。OSD制御モジュール1647はビデオ・プレーン・メモリ176にアクセスして、ビデオ・プレーンのうち、OSDプレーン内でのOSDGBL、GBRのグラフィックス・データと同じアドレス範囲のビデオ・データを調べる。それにより、そのアドレス範囲から、OSDGBL、GBRよりも手前に知覚されるべき物体IML、IMRのビデオ・データを含む領域TRL、TRRが検出されれば、OSD制御モジュール1647はその領域TRL、TRRを半透明にすべき領域に決定する。
加算部179は、物体IML、IMRを表す各ビデオ・プレーンに、一部が半透明であるOSDGBL、GBRを含む各OSDプレーンをポーター−ダフ(Porter−Duff)規則に従って合成し、すなわちα合成する。従って、図34の(a)、(b)では点付き領域で示されているように、合成後の各ビデオ・フレームFRL、FRRではOSDGBL、GBRの領域TRL、TRRを透かして、その下に隠された物体IML、IMRの部分が見える。
図34の(a)、(b)に示されている左目用ビデオ・フレームFRLと右目用ビデオ・フレームFRRとの間でのOSDGBL、GBRの変位量、及び物体IML、IMRの変位量はそれぞれ、図32の(a)、(b)に示されているものと等しい。従って、図34の(c)に示されている立体視映像SVBでは図32の(c)の立体視映像SVと同様に、物体IMBがOSDGEBよりも手前に見える。しかし、図34の(a)、(b)では図32の(a)、(b)とは異なり、いずれのビデオ・フレームFRL、FRRでも物体IML、IMRの全体がOSDGBL、GBRを透かして見える。その結果、図34の(c)では図32の(c)とは異なり、視聴者には、物体IMBの領域TRAが透けて、その奥に位置するOSDGEBの部分TRBが見える。従って、視聴者には物体IMAとOSDGEAとの間での奥行きの違いが正しく知覚される。
(C)図35は、上記の加工(C)を説明するための模式図である。図35の(a)は、加工(C)で得られる左目用ビデオ・フレームFRLを示す。(b)は、加工(C)で得られる右目用ビデオ・フレームFRRを示す。(c)は、(a)、(b)に示されているビデオ・フレームFRL、FRRの対によって表示装置200の画面201上に見える立体視映像SVCを模式的に表す。尚、図35の(a)、(b)では、各ビデオ・フレームFRL、FRRの中心線Cが一点鎖線で示されている。
図35の(a)、(b)を参照すると、いずれのビデオ・フレームFRL、FRRにおいても、OSDGEL、GER、及び物体IML、IMRの配置は、図32の(a)、(b)に示されているものと等しい。しかし、図35の(b)では図32の(b)とは異なり、OSDGERの左側に黒帯STRが付加されている。それにより、図32の(b)ではOSDGERの左側に隣接して見えていた物体IMR上の帯状領域GHAが、図35の(b)では黒帯STRに隠されて見えない。すなわち、図35の(a)、(b)では図32の(a)、(b)とは異なり、OSDGEL、GERの左側に隣接する物体IML、IMR上には、視聴者の右目だけにしか見えない領域は生じていない。
ここで、OSD制御モジュール1647は次の手順で黒帯STRを配置する。OSD制御モジュール1647はビデオ・プレーン・メモリ176にアクセスして、ビデオ・プレーンのうち、OSDプレーン内でのOSDGEL、GERのグラフィックス・データと同じアドレス範囲のビデオ・データを調べる。それにより、そのアドレス範囲から、OSDGEL、GERよりも手前に知覚されるべき物体IML、IMRのビデオ・データを含む領域が検出されれば、OSD制御モジュール1647は更に、その物体IML、IMRのビデオ・データのアドレス範囲のうち、OSDGEL、GERの左側又は右側に隣接する領域を調べる。それにより、その隣接する領域内に、左目用と右目用とのいずれか一方のビデオ・プレーンだけでOSDGEL、GERのグラフィックス・データのアドレス範囲から外れている領域GHAが検出されれば、OSD制御モジュール1647はその領域GHAに黒帯STRを配置する。
図35の(a)、(b)から明らかなとおり、黒帯STRは視聴者の左目には見えず、右目には見える。従って、図35の(c)に示されているように、立体視映像SVCではその黒帯STRが、物体IMCとOSDGECとの間で奥行き方向に延びる側壁SWのように見える。その結果、視聴者には物体IMCとOSDGECとの間の境界が明確に見えるので、両者間での奥行きの違いが正しく知覚される。
以上の説明のとおり、加工(A)−(C)のいずれによっても、左目用と右目用とのビデオ・フレームFRL、FRRの対が表す立体視映像SVA−SVCのうち、OSDGEA−GECよりも手前に知覚されるべき部分IMA−IMCに、その対の一方ではOSDによって隠され、かつ他方では隠されていない領域、すなわち、図32の(b)に示されている領域GHAが生じないようにできる。その結果、OSDと共にコンテンツの映像/字幕を立体視映像として表示するときにおいても、OSDの視認性を更に向上させることができる。
<変形例>
(1)加工(A)では、OSDが、コンテンツの立体視映像のうち、同じ視方向に表示される物体のいずれよりも手前に表示されるか否かが予め判断されてもよい。更に、その判断が否定的であるときにのみ、加工(A)が実行されるようにしてもよい。
(2)加工(C)においてOSDの左右に付加される帯STRの色は、黒以外であっても良く、二色以上の混色であってもよい。また、その帯には模様が付されていてもよい。
(3)実施形態2によるOSD制御モジュール1647と同様に、BD−Jモジュール1645がポップアップ表示を加工することにより、その表示と共にコンテンツの映像/字幕を立体視映像として表示可能にしてもよい。
(4)実施形態2では、OSD制御モジュール1647が加工(A)−(C)を行う。その他に、プレーン・シフト・エンジン178又は加算部179が加工(A)−(C)を行ってもよい。
(5)実施形態2では、再生装置100がチューナを用いて、地上波放送、衛星放送、又はケーブル放送によって配信される立体視映像用ストリーム・データを受信し、AVストリーム・ファイルと同様に再生してもよい。
(6)実施形態2では、OSDの加工(A)−(C)により、コンテンツの立体視映像の中で、OSDの奥行きよりも手前に表示された物体の視方向にOSDが表示されるときにも、そのOSDの視認性が良好に維持される。その他に、OSDが、コンテンツの立体視映像の中で、少なくとも同じ視方向に表示される物体のいずれよりも手前に表示されるように、OSDプレーン・シフト量が決定されてもよい。例えばコンテンツ・プロバイダが予め、コンテンツの立体視映像中、最も手前に表示される物体の奥行きを調べ、それよりもOSDの奥行きが手前であるようにOSDプレーン・シフト量を決定する。ここで、OSDの表示範囲が限られているときは、その範囲でのみ、立体視映像中の各物体の奥行きが調べられればよい。決定されたOSDプレーン・シフト量は、インデックス・ファイル、オブジェクト・ファイル、プレイリスト・ファイル、クリップ情報ファイル、AVストリーム・ファイル、又はXMLファイルに記録される。その場合、再生装置はコンテンツからOSDプレーン・シフト量を読み出してプレーン・シフト・エンジン178に設定すればよい。それとは別に、コンテンツの立体視映像中、最も手前に表示される物体の奥行きを示す情報が、インデックス・ファイル、オブジェクト・ファイル、プレイリスト・ファイル、クリップ情報ファイル、AVストリーム・ファイル、又はXMLファイルに記録されていてもよい。その場合、再生装置は、まずコンテンツからその情報を読み出し、次に、その情報の示す奥行きよりもOSDが手前であるようにOSDプレーン・シフト量を決定してプレーン・シフト・エンジン178に設定する。
再生装置は更に、上記のように決定されたOSDプレーン・シフト量をHDMI送信部180に表示装置200へ通知させてもよい。その場合、表示装置200は、画面の明るさの設定画面等のOSDを立体視映像化するときに、そのOSDプレーン・シフト量をプレーン・シフトに利用する。それにより、そのOSDをコンテンツの立体視映像中の物体よりも手前に表示することができる。尚、HDMI送信部180はOSDプレーン・シフト量の通知に、HDMIケーブル600内のCEC(Consumer Electronics Control)線を利用してもよい。CEC線による通信については、実施形態4の説明の中で触れる。
(7)実施形態2では、カレント・プレイリスト情報からグラフィックス・プレーン・シフト量535が読み出されるごとに、そのグラフィックス・プレーン・シフト量535の示す奥行きよりもOSDの奥行きが手前になるように、OSDプレーン・シフト量が決定されてもよい。それにより、グラフィックス・ストリームの表すグラフィックス映像、特に字幕と同じ視方向にOSDが表示されるときは、OSDに上記の加工(A)−(C)を行う必要がない。
《実施形態3》
本発明の実施形態3による再生装置は、実施形態1によるものとは異なり、OSDの奥行きをユーザに手動で調節させることができる。その他の特徴、例えば、光ディスク上のデータ構造、再生装置のハードウェア構成、及び制御部と再生部との各構成は実施形態1によるものと同様である。従って、以下の説明では、実施形態1の特徴とは異なる実施形態3の特徴について述べ、その他、実施形態1の特徴と同様な特徴については実施形態1での説明を援用する。
OSD制御モジュール1647は、操作信号UO又は他のモジュール1644、1645からの指示に従って、対応するOSDのグラフィックス・データGD2を生成して再生部170に渡す。その後、所定時間の経過、新たな操作信号UOの受信、又は他のモジュール1644、1645からの指示に応じ、OSD制御モジュール1647は再生部170へOSDの消去命令RQ2を送る。実施形態3では、グラフィックス・データGD2の送出時点から消去命令RQ2の送出時点までの期間、OSD制御モジュール1647がユーザからOSDの奥行きの変更の指示を受け付ける。その変更は、例えば音量の変更と同様に、ユーザがリモコン400又はフロント・パネルの所定のボタンを押下するごとに、OSD制御モジュール1647がOSDプレーン・シフト量を所定量ずつ増減することによって実現される。
図36は、OSDプレーン・シフト量の変更処理のフローチャートである。この変更処理はOSD制御モジュール1647により、OSDのグラフィックス・データGD2の送出時点からその消去命令RQ2の送出時点までの期間、すなわち、図24に示されているステップS64の中で実行される。以下、その変更処理について、図36に示されているステップの順に説明する。
ステップS100:OSD制御モジュール1647は、グラフィックス・データGD2の送出時点からの経過時間を監視し、その時点から所定時間、例えば5秒が経過したか否かを判断する。ここで、その所定時間はOSDの種類に応じて変更されてもよい。所定時間が既に経過しているとき、処理はステップS107に進む。所定時間がまだ経過していないとき、処理はステップS101に進む。
ステップS101:OSD制御モジュール1647は、ディスパッチャ1643Aからの新たな操作信号UOの有無、及び、HDMVモジュール1644又はBD−Jモジュール1645からのアプリケーション・プログラムに従った指示の有無を確認する。その操作信号UO又はその指示のいずれかが受け付けられていたとき、処理はステップS102に進む。その操作信号UO及びその指示のいずれも受け付けられていないとき、処理はステップS100から繰り返される。
ステップS102:OSD制御モジュール1647は、その操作信号UO又はその指示のの内容がOSDの奥行きの変更の指示を示しているか否かを判断する。その判断が肯定的であるとき、処理はステップS103に進む。その判断が否定的であるとき、処理はステップS105に進む。
ステップS103:OSD制御モジュール1647は、その操作信号UO又はその指示の示すOSDの奥行きの変更方向を判断する。その変更方向がOSDを手前に引き出す方向であるとき、OSD制御モジュール1647は、例えば図23に示されているOSDプレーン・シフト量OSL、OSRのうち、左目用ビデオ・フレームにおける変位量OSLを所定量増加させ、右目用ビデオ・フレームにおける変位量OSRを所定量減少させる。上記の変更方向がOSDを奥に押し戻す方向であるときは、その逆である。ここで、両変位量OSL、OSRに対する増減量は等しい。その後、処理はステップS104に進む。
ステップS104:OSD制御モジュール1647は変更後のOSDプレーン・シフト量をプレーン・シフト・エンジン178に渡す。その後、処理はステップS106に進む。一方、プレーン・シフト・エンジン178は、OSDプレーン・メモリ177Aに書き込まれているOSDプレーンに対して、変更後のOSDプレーン・シフト量を利用してプレーン・シフトを行う。それにより、視聴者には、OSDの奥行きが、指示した方向に変更されたように見える。
ステップS105:ステップS102でOSD制御モジュール1647によって調べられた操作信号UOは、ディスパッチャ1643Aから、その時点で動的シナリオ情報が割り当てられているHDMVモジュール1644又はBD−Jモジュール1645へも渡されている。また、ステップS102でOSD制御モジュール1647によって調べられたアプリケーション・プログラムからの指示は、そのプログラムを実行しているモジュール1644又は1645による処理を反映している。すなわち、その操作信号UO又はその指示の内容がOSDの奥行きの変更の指示以外であるとき、その内容に対応する処理がモジュール1644又は1645によって実行される。その後、処理はステップS106に進む。
ステップS106:OSD制御モジュール1647はHDMVモジュール1644又はBD−Jモジュール1645にアクセスして、ユーザによる新たな操作又はアプリケーション・プログラムからの新たな指示を更に待つ必要があるか確認する。その必要があるとき、処理はステップS100から繰り返される。その必要がないとき、処理はステップS107に進む。
ステップS107:OSD制御モジュール1647はレンダリング・エンジン175へOSDの消去命令RQ2を送る。その後、処理は、図24に示されているステップS65に進む。
実施形態3による再生装置は、実施形態1によるものと同様に、表示装置200にOSDを立体視映像として表示させる間、コンテンツの映像を二次元映像として表示させる。それにより、OSDの視認性を更に向上させることができる。更に、上記のとおり、そのOSDの奥行きをユーザに手動で調節させることができる。それにより、OSDの視認性をユーザの嗜好に合わせることができる。
<変形例>
(1)OSD制御モジュール1647は変更後のOSDプレーン・シフト量を、ローカル・ストレージ120等、再生装置100に内蔵の不揮発性記憶装置に保存してもよい。それにより、変更後のOSDプレーン・シフト量は、再生装置100の電源が切られた後でも失われないので、一旦調節されたOSDの奥行きを、電源が再投入された再生装置100に再現させることができる。
(2)実施形態3による再生装置は、実施形態2による再生装置と同様に、OSDと共にコンテンツの映像/字幕を立体視映像として表示する動作モードが選択可能であってもよい。その動作モードでは、変更後のOSDの奥行きが、グラフィックス・プレーン・シフト量の示す字幕の奥行きよりも奥になったとき、実施形態2によるOSDの加工が行われてもよい。
(3)実施形態3では、再生装置がチューナを用いて、地上波放送、衛星放送、又はケーブル放送によって配信される立体視映像用ストリーム・データを受信し、AVストリーム・ファイルと同様に再生してもよい。
《実施形態4》
本発明の実施形態4による表示装置は、図1に示されている表示装置200と同様に、本発明の実施形態1による再生装置100、液晶シャッター眼鏡300、リモコン400、及び光ディスク500と共に、立体視映像表示システムを構成する。実施形態4による表示装置は更に、地上波放送、衛星放送、又はケーブル放送を受信可能であり、それらの放送によって配信される立体視映像用ストリーム・データから立体視映像を再現することもできる。
実施形態4による表示装置は例えば液晶ディスプレイである。その他に、プラズマ・ディスプレイ及び有機ELディスプレイ等のフラット・パネル・ディスプレイ、又はプロジェクタであってもよい。この表示装置は、図1に示されている表示装置200と同様、HDMIケーブル600で再生装置100に接続されている。再生装置100によって光ディスク500から立体視映像のコンテンツが再生されるとき、表示装置は再生装置100からHDMIケーブル600を通してHDMI方式の映像信号/音声信号を受ける。表示装置は更にアンテナに接続されている。表示装置は、そのアンテナで受信された放送波から立体視映像用の映像信号/音声信号を復調する。表示装置は、再生装置100又はアンテナからの映像信号/音声信号に従って、画面上に映像を再現し、内蔵のスピーカから音声を発生させる。特に映像信号には左目用と右目用との両方のビデオ・フレームが時分割で多重化されているので、画面上には左目用と右目用との映像が交互に再現される。一方、表示装置は左右信号LRを液晶シャッター眼鏡300に送る。左右信号LRの波形はフレームの切り換えに同期して変動する。それにより、液晶シャッター眼鏡300は二枚の液晶表示パネル301L、301Rに、フレームの切り換えと同期して交互に光を透過させる。その結果、液晶シャッター眼鏡300をかけた視聴者には、画面上に交互に表示される左目用と右目用との映像が一つの立体的な映像として見える。
<表示装置のハードウェア構成>
図37は、実施形態4による表示装置210のハードウェア構成を示すブロック図である。図37を参照するに、表示装置210は、チューナ211、HDMI端子212、HDMI受信部213、CECインタフェース部214、操作部215、左右信号送信部216、バス217、制御部216、信号処理部219、表示部220、及び音声出力部221を含む。チューナ211、HDMI受信部213、CECインタフェース部214、操作部215、左右信号送信部216、及び信号処理部219はバス217を通して制御部218と通信可能である。
チューナ211はアンテナATに接続されている。チューナ211はそのアンテナATを通して、地上波放送及び衛星放送等の放送波を受信する。チューナ211は更に、その放送波から映像/音声のストリーム・データSTD1を復調して信号処理部217に直接渡す。尚、チューナ211はケーブル放送局に接続され、そこからケーブル放送を受信してもよい。
HDMI端子212はHDMI規格に準拠の端子であり、HDMIケーブル600で再生装置100に接続されている。HDMI端子212は、HDMIケーブル600を通して再生装置100から映像信号/音声信号を受けて、それらをHDMI受信部213に渡す。一方、HDMI端子212はHDMIケーブル600内のCEC線を通して再生装置100から制御信号、すなわちCECメッセージを受けて、CECインタフェース部214に渡す。
HDMI受信部213は、HDMI端子212から渡された映像信号/音声信号をビデオ・ストリーム/オーディオ・ストリームSTD2に変換する。変換された各ストリーム・データSTD2は信号処理部217へ直接渡される。
CECインタフェース部214は、HDMI端子212から渡されたCECメッセージを解読し、バス217を通してその内容を制御部218に伝える。ここで、CECメッセージには特に、「製造者専用命令(VSC:Vendor Specific Command)」と呼ばれる種類がある。CECインタフェース部214はCECメッセージの中からVSCを抽出し、更にその中からOSDプレーン・シフト量を読み出して制御部218に渡す。
CEC線を用いた通信機能はHDMI規格バージョン1.2aで標準化されている。HDMIケーブルで互いに接続された複数の電子機器は、そのケーブル内のCEC線を通してCECメッセージを交換する。それにより、それらの電子機器は互いに連係できる。特にVSCは、各電子機器の製造元(Vendor)が自身の製品群に独自の連係機能を与えるための命令である。VSCを利用可能な各電子機器は製造者(Vendor)IDを含む。製造者IDは、その電子機器の製造元に固有に割り当てられた識別子である。各電子機器はHDMIケーブルを通して他の電子機器とVSCを交換することにより、自身と製造者IDが共通する電子機器を特定できる。その後、製造元の共通する電子機器間でのみVSCが交換されることにより、その製造元独自の連係機能が実現される。
図38は、VSC230のフォーマットを示す模式図である。図38を参照するに、VSC230は先頭から順に、送信元/宛先情報231、製造者命令フラグ(Vendor Command)232、及び製造者専用情報(Vendor Specific Data)233を含む。送信元/宛先情報231と製造者命令フラグ232とは、VSCに限らず、CECメッセージ全般に共通に含まれる。送信元/宛先情報231は1バイト長のデータであり、そのCECメッセージの送信元と宛先とを示す。製造者命令フラグ232は1バイト長のデータであり、CECメッセージの種類を個別に表すフラグの集合から構成されている。特にVSC230では、製造者命令フラグ232のうち、VSCであることを示すフラグが立っている。製造者専用情報233は、1バイト長から14バイト長までの可変長データである。製造者専用情報233のデータ構造は、各電子機器の製造元がVSC230のペイロードとして独自に定義できる。再生装置100はこの製造者専用情報233にOSDプレーン・シフト量を記録する。CECインタフェース部214はVSC230を抽出したとき、その製造者専用情報233からOSDプレーン・シフト量を読み出す。
説明を図37に戻す。CECインタフェース部214は更に、バス217を通して制御部218から指示を受け、それに従ってCECメッセージを生成してHDMI端子212を通して再生装置100に渡す。それにより、例えば再生装置100又は表示装置210の起動時に、表示装置210の対応可能な映像/音声の出力方式及び符号化方式の種類等、特に対応可能な立体視映像表示方式の種類が再生装置100に通知される。
操作部215は、リモコン400から赤外線等の無線で送出されたコマンドIRを受信して解読し、その内容を制御部218に通知する。操作部215はその他に、表示装置210のフロント・パネルに設けられたボタンの押下を検出して制御部218に通知する。
左右信号送信部216は、左右信号LRを赤外線又は無線で液晶シャッター眼鏡300に送る。左右信号LRは、その時点で画面に表示される映像が左目用と右目用とのいずれであるのかを示す。左右信号送信部216はバス217を通して信号処理部219にアクセスすることにより、信号処理部219から表示部220へ出力される左目用ビデオ・フレームと右目用ビデオ・フレームとを識別する。左右信号送信部216は更にその識別結果を利用して、左右信号LRの波形の切り換えをフレームの切り換えに同期させる。
制御部218はマイクロコンピュータ・システムであり、CPU218A、ROM218B、及びRAM218Cを含み、それらが内部バス218Dで互いに接続されている。ROM218Bには表示装置210のファームウェアが記録されている。CPU218Aは、例えば電源投入に応じてROM218Bからファームウェアを読み出して実行する。RAM218CはCPU218Aに対して作業領域を提供する。制御部218はそれらの要素218A−Cの組み合わせを利用してファームウェアを実行し、それらに従って他の要素211−216、219を制御する。
制御部218は信号処理部219にアクセスして、チューナ211又はHDMI受信部213から信号処理部219へ渡されたストリーム・データの表示次元を確認する。その表示次元が「二次元」であるとき、制御部218は左右信号送信部216を停止させる。その表示次元が「三次元」であるとき、制御部218は左右信号送信部216を起動させる。
制御部218は更に独自のOSD機能を備える。その機能によるOSDは、例えば図13の(d)に示されている画面の明るさの設定画面G4、及び、図13の(e)に示されている音量の設定画面G5と同様なものを含む。制御部218は、操作部215によって受け付けられたユーザによる操作に応じて、対応するOSDのグラフィックス・データを生成して、バス217を通して信号処理部219に渡す。特に表示次元が「三次元」であるとき、制御部218は予め、CECインタフェース部214からOSDプレーン・シフト量を受けて信号処理部219に渡す。表示次元が「三次元」に維持されている期間にユーザによる操作が受け付けられたとき、制御部218はまず、信号処理部219に表示次元を「疑似二次元」に切り換えさせる。制御部218は次に、その操作内容に対応するOSDのグラフィックス・データを生成して信号処理部219に渡す。表示次元が「疑似二次元」に設定されたときの信号処理部219の動作については後述する。
制御部218は、OSDのグラフィックス・データの送出後、所定時間の経過又はユーザによる操作に応じ、信号処理部219へOSDの消去命令を送る。制御部218は更に、消去命令の送出と共に、信号処理部219に表示次元を「三次元」に戻させる。こうして、制御部218は信号処理部219に、OSDを画面に出力する間、表示次元を「疑似二次元」に維持させる。
信号処理部219は、チューナ211又はHDMI受信部213からストリーム・データを受信したとき、まず、それらから、ビデオ・ストリーム、オーディオ・ストリーム、同期信号、及び付随データを分離する。信号処理部219は次に、付随データを解析して、受信されたビデオ・ストリームの表示次元が「二次元」と「三次元」とのいずれであるのかを識別する。表示次元が「二次元」であるとき、信号処理部219は、ビデオ・ストリームに含まれる各ビデオ・フレームを順次、ビデオ・プレーンとして利用する。表示次元が「三次元」であるとき、ビデオ・ストリームには左目用と右目用とのビデオ・フレームが時分割で交互に多重化されている。信号処理部219は、それらの左目用と右目用とのビデオ・フレームを交互にビデオ・プレーンとして利用する。更に、ビデオ・プレーンからはビデオ・データVDが生成され、同期信号SYNCと共に表示部220へ出力される。その結果、ビデオ・データVDの表す映像は立体視映像として再現される。一方、それらの出力に併せて、オーディオ・ストリームからオーディオ・データADが生成されて音声出力部221へ出力される。信号処理部219はその他に、付随データを解析して、生成されたビデオ・プレーンが左目用と右目用とのいずれであるかを識別し、その結果を表示次元と共に、内蔵のメモリに保存する。
信号処理部219は、制御部218からの指示に応じて、表示次元を「疑似二次元」に設定することができる。表示次元が「疑似二次元」であるとき、ビデオ・ストリームには左目用と右目用とのビデオ・フレームが交互に多重化されているにもかかわらず、信号処理部219は、左目用ビデオ・フレームだけを一枚当たり二度ずつ繰り返しビデオ・プレーンとして利用し、右目用ビデオ・フレームを破棄する。こうして、表示次元が「疑似二次元」である間、左目用ビデオ・プレーンだけが生成される。
表示次元が「三次元」であるとき、信号処理部219は予め、制御部218からOSDプレーン・シフト量を与えられている。表示次元が「三次元」から「疑似二次元」へ切り換えられるとき、信号処理部219はまず、制御部218からOSDのグラフィックス・データを受信し、そのグラフィックス・データからOSDプレーンを生成する。信号処理部219は次に、OSDプレーン・シフト量を利用してそのOSDプレーンに対してプレーン・シフトを行う。それにより、OSDの水平方向での表示位置が異なる左目用と右目用とのOSDプレーンが交互に生成される。信号処理部219は更に、同じ左目用ビデオ・プレーンに左目用OSDプレーンと右目用OSDプレーンとを交互に合成する。その合成で得られた左目用と右目用とのビデオ・フレームは交互に表示部220へ出力される。その結果、OSDは立体視映像として再現される一方、ビデオ・ストリームの表す映像は二次元映像として再現される。
制御部218と信号処理部219とは互いに異なるチップに実装されている。その他に、両者が単一のチップに実装されていてもよい。尚、信号処理部219の詳細については後述する。
表示部220は液晶表示パネルを含む。表示部220は、ビデオ・データVDに含まれる各ビデオ・フレームに従って、液晶表示パネルの輝度を画素単位で調節する。それにより、そのビデオ・フレームの示す映像が表示パネルに再現される。
音声出力部221はスピーカを含む。音声出力部221はオーディオ・データADを、そのスピーカに適した出力形式の音声信号に変換してスピーカへ送出する。それにより、そのオーディオ・データADの示す音声がそのスピーカから発生する。尚、スピーカは、サラウンド・システム等、表示装置210に外付けされたものであっても良い。
<信号処理部219の詳細>
図39は、信号処理部219の機能ブロック図である。図39を参照するに、信号処理部219は、バス・インタフェース2191、表示次元記憶部2192A、左右フラグ記憶部2192B、映像信号受信部2193、レンダリング・エンジン2194、ビデオ・プレーン・メモリ2195、OSDプレーン・メモリ2196、プレーン・シフト・エンジン2197、及び加算部2198を含む。これらの機能部は単一のチップに実装されている。その他に、いくつかの機能部が異なるチップに実装されてもよい。
バス・インタフェース2191は、バス217を通して信号処理部219内の各機能部を制御部218に通信可能に接続する。
表示次元記憶部2192Aは、表示次元を示すフラグを書き換え可能に保存する。そのフラグは、表示次元が「二次元」であることを示すもの、表示次元が「三次元」であることを示すもの、及び、表示次元が「疑似二次元」であることを示すものを含む。表示次元記憶部2192Aは、映像信号受信部2193から指示された表示次元に対応するフラグを立て、他のフラグを解除する。表示次元記憶部2192Aはまた、バス・インタフェース2191及びバス217を通して制御部218から次元信号DIMを受信するごとに、それの示す表示次元に対応するフラグを立て、他のフラグを解除する。
左右フラグ記憶部2192Bは左右フラグを書き換え可能に保存する。左右フラグは、映像信号受信部2193からビデオ・プレーン・メモリ2195へ出力されるビデオ・プレーンが左目用と右目用とのいずれであるかを示す。例えば、左右フラグが立っている状態は、そのビデオ・プレーンが左目用であることを示し、左右フラグが解除されている状態は、そのビデオ・プレーンが右目用であることを示す。その場合、左右フラグ記憶部2192Bは、映像信号受信部2193から「そのビデオ・プレーンが左目用である」と通知されたときは左右フラグを立て、「そのビデオ・プレーンが右目用である」と通知されたときは左右フラグを解除する。
映像信号受信部2193は、チューナ211又はHDMI受信部213からストリーム・データを受信する。そのとき、映像信号受信部2193はまず、受信されたストリーム・データから、ビデオ・ストリーム、オーディオ・ストリーム、同期信号、及び付随データを分離する。映像信号受信部2193は次に、付随データを解析して、受信されたビデオ・ストリームの表示次元が「二次元」と「三次元」とのいずれであるのかを識別する。識別された表示次元は表示次元記憶部2192Aに通知される。
映像信号受信部2193は、以下に述べるように、表示次元別に三種類の動作モード、すなわち、「二次元表示モード」、「三次元表示モード」、及び「疑似二次元表示モード」を備えている。
表示次元が二次元であるとき、映像信号受信部2193は「二次元表示モード」に移行する。二次元表示モードでは、映像信号受信部2193は、ビデオ・ストリームに含まれる各ビデオ・フレームを順次、ビデオ・プレーン・メモリ2195に書き込む。
表示次元が三次元であるとき、映像信号受信部2193は「三次元表示モード」に移行する。ここで、ビデオ・ストリームには左目用と右目用とのビデオ・フレームが時分割で交互に多重化されている。三次元表示モードでは、映像信号受信部2193はまず、そのビデオ・ストリームからビデオ・フレームを一枚抜き出すごとに、表示次元記憶部2192Aにアクセスして表示次元を確認する。表示次元が三次元に維持されていれば、映像信号受信部2193はそのビデオ・フレームをそのままビデオ・プレーン・メモリ2195に書き込む。映像信号受信部2193は更に付随データを解析し、そのビデオ・フレームが左目用と右目用とのいずれであるかを識別して、その結果を左右フラグ記憶部2192Bに通知する。映像信号受信部2193はそれら一連の動作を、各ビデオ・フレームについて繰り返す。それにより、表示次元が三次元に維持されている間、左目用と右目用とのビデオ・フレームが交互にビデオ・プレーン・メモリ2195に書き込まれる。
一方、表示次元が疑似二次元に変更されていたとき、映像信号受信部2193は「三次元表示モード」から「疑似二次元表示モード」に移行する。疑似二次元表示モードでは、映像信号受信部2193はまず、付随データを解析し、ビデオ・ストリームから抜き出されたビデオ・フレームが左目用と右目用とのいずれであるかを識別する。そのビデオ・フレームが左目用であれば、映像信号受信部2193はそのビデオ・フレームをビデオ・プレーン・メモリ2195に書き込む。逆に、そのビデオ・フレームが右目用であれば、映像信号受信部2193はそのビデオ・フレームを破棄する。こうして、表示次元が疑似二次元に維持されている間、ビデオ・プレーン・メモリ2195には左目用ビデオ・フレームだけが書き込まれる。但し、映像信号受信部2193は、付随データから識別された結果をそのまま左右フラグ記憶部2192Bに通知する。従って、ビデオ・ストリームからビデオ・フレームが一枚抜き出されるごとに、それがビデオ・プレーン・メモリ2195に書き込まれたか否かにかかわらず、左右フラグ記憶部2192Bは左右フラグをフリップさせる。
映像信号受信部2193はその他に、オーディオ・ストリームからオーディオ・データADを取り出して、同期信号SYNCと共に出力する。
レンダリング・エンジン2194は、制御部218からOSDのグラフィックス・データGDを受信し、それを用いてOSDプレーンを生成してOSDプレーン・メモリ2196に書き込む。レンダリング・エンジン2194はまた、制御部218からOSDの消去命令RQを受けたとき、OSDプレーン・メモリ2196上のOSDプレーンを消去する。
ビデオ・プレーン・メモリ2195とOSDプレーン・メモリ2196とはいずれも、信号処理部219に内蔵のメモリに確保された二次元配列のデータ領域である。各配列のサイズは一枚のビデオ・フレームのサイズに等しい。また、配列の各要素には一つのピクセル・データが格納される。ピクセル・データは色座標値とα値との組み合わせから成る。色座標値はRGB値又はYCrCb値で表される。ビデオ・プレーン・メモリ2195には、映像信号受信部2193によって書き込まれたビデオ・フレームから一枚のビデオ・プレーンが構成される。OSDプレーン・メモリ2196には、レンダリング・エンジン2194によって書き込まれたグラフィックス・データGDから、OSDを含む一枚のOSDプレーンが構成される。
プレーン・シフト・エンジン2197は、制御部218からOSDプレーン・シフト量OSを受信し、それを利用してOSDプレーン・メモリ2196についてプレーン・シフトを行う。OSDプレーン・シフト量OSは、プレーン・シフト・エンジン2197に内蔵のメモリに保存される。プレーン・シフトの詳細については、実施形態1での説明を援用する。
表示次元記憶部2192Aが映像信号受信部2193からの指示に応じて表示次元を三次元に設定するとき、それに併せて、プレーン・シフト・エンジン2197はOSDプレーン・シフト量OSを受信する。その後、プレーン・シフト・エンジン2197は、OSDプレーン・メモリ2196に一枚のOSDプレーンが書き込まれるごとに、そのOSDプレーンに対してOSDプレーン・シフト量OSを利用してプレーン・シフトを行う。それにより、OSDの水平方向での表示位置が異なる左目用と右目用とのOSDプレーンが生成されて交互に、プレーン・シフト・エンジン2197から加算部2198へ出力される。
その後、レンダリング・エンジン2194が制御部218からのOSDの消去命令RQに応じてOSDプレーン・メモリ2196上のOSDプレーンを消去する。それにより、OSDが画面から消える。以後、レンダリング・エンジン2194が新たなOSDプレーンを生成するまで、プレーン・シフト・エンジン2197はOSDプレーンに対するプレーン・シフトを停止させて待機する。
加算部2198は、表示次元が疑似二次元に維持されている間、プレーン・シフト・エンジン2197から出力された一枚のOSDプレーンを、ビデオ・プレーン・メモリ2195から出力された一枚のビデオ・プレーンに合成して一枚のビデオ・フレームを生成する。更に、そのビデオ・フレームからビデオ・データVDが構成されて、表示部220へ出力される。加算部2198は特に、プレーン・シフト・エンジン2197から交互に出力される左目用と右目用とのOSDプレーンを同じ左目用ビデオ・プレーンに合成する。その合成で得られた左目用と右目用とのビデオ・フレームが交互に加算部2198から表示部220へ出力される。
実施形態4による表示装置210では上記のとおり、映像信号受信部2193がビデオ・フレームの出力について、三次元表示モードと疑似二次元表示モードとの二種類の動作モードを備えている。更に、OSDが画面に出力される期間では、映像信号受信部2193の動作モードが疑似二次元表示モードに切り換えられ、左目用と右目用とのビデオ・フレームの対のうち、いずれか一方が繰り返し出力される。従って、OSDが画面に立体的に表示される間、ビデオ・フレームの表す映像は二次元的に表示される。こうして、OSDの視認性を更に向上させることができる。
<変形例>
(1)表示装置210は、実施形態2の変形例(6)による再生装置に、例えばHDMIケーブルで接続され、そこから、少なくとも同じ視方向ではコンテンツの立体視映像中の物体のいずれよりもOSDを手前に表示するためのOSDプレーン・シフト量を入手してもよい。表示装置210は、画面の明るさの設定画面等、固有のOSDを立体視映像化するときに、そのOSDプレーン・シフト量をプレーン・シフトに利用する。表示装置210はそのとき、OSDが更に手前に表示されるようにそのOSDプレーン・シフト量を変更してもよい。それにより、OSDの立体視映像をコンテンツの立体視映像中の物体のいずれよりも手前に表示することができる。
(2)実施形態4では、表示次元が疑似二次元である間、OSDだけが立体視映像として表示される。その他に、表示次元が疑似二次元である間、OSDプレーン・シフト量が0に設定されて、OSDも二次元映像として表示されてもよい。その場合でも、コンテンツの映像/字幕は二次元映像として表示されているので、OSDの視認性が損なわれることがない。更に、液晶シャッター眼鏡をかけていない人にも画面の表示、特にOSDを見せることができる。
(3)実施形態4では、HDMIケーブル600が再生装置100から表示装置210へのストリーム・データの伝送に利用される。更に、そのCEC線が再生装置100から表示装置210へのOSDプレーン・シフト量の伝送に利用される。その他に、再生装置100及び表示装置210がそれぞれ、赤外線通信(IrDA)、ブルートゥース(Bluetooth:登録商標)、又はTCP/IP等の通信機能を備えているとき、それを用いてストリーム・データ及びOSDプレーン・シフト量を伝送してもよい。