説明

再生装置、再生方法、プログラム

【課題】再生装置の実装の自由度を奪うことなく、ティアリングに起因する左右の映像の不整合の発生を、最低限に抑える。
【解決手段】ビデオストリームの再生時間軸における複数のフレーム期間のうち、i番目のフレーム期間において表示されるべき立体視映像に描画イメージを合成する場合、i番目のフレーム期間が開始されるまでに、レフトビュープレーンメモリへの描画イメージの書き込み、及び、ライトビュープレーンメモリへの描画イメージの書き込みを完了する必要がある。この書き込みの指示を同時に命じるべく、アプリケーションプログラムインターフェイスの引数は、レフトビュープレーンメモリへの書き込み指定と、ライトビュープレーンメモリへの書き込み指定とのペアを含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、立体視再生の技術分野に属する発明である。
【背景技術】
【0002】
立体視再生とは、ライトビュー用とレフトビュー用の2つの視点の映像を準備することにより、立体視を実現する技術である。立体視ディスプレイの実現にはさまざまな方式があるが、視聴者の左眼と右眼とに、異なる表示画像を見せ、その両眼間の視差を利用することにより、立体的な映像を擬似的に作ることが基本原理である。
例えば、立体視表示の実現方式の一つにシャッター眼鏡を利用した方式がある。この方式では、表示ディスプレイの映像を左眼用と右眼用とで高速で更新する。この更新タイミングと同期させて、視聴者の左眼と右眼の視野をメガネによって交互に高速に塞ぐことで、ディスプレイで表示される左眼用の画像はシャッター眼鏡により左眼だけによって見え、逆に右眼用の画像は右眼によってだけ見える仕組みを実現できる。
【0003】
現状、ビデオストリームの立体視再生を利用する形態は、劇場等での応用が主流であるが、今後は家庭設置用の再生装置で立体視ビデオストリームを再生して楽しむ利用形態も普及が予想される。
特にBD-ROM等のパッケージメディアでは、ビデオだけでなく、背景イメージ、字幕、そして描画イメージを別々のプレーンとして持ち、表示機器にはこれらを重ね合わせた映像を表示することができるので、これら背景イメージ、字幕、そして描画イメージのそれぞれで立体視を行えば、対話性の富んだ、立体視再生を実現することができる。これらのうち、ビデオおよび字幕については、再生装置の映像出力信号とフレーム単位で同期する方式が採用されているため、ちらつきのない美しい動画再生が実現されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平9-139957号公報
【特許文献2】特開2000-102037号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで立体視コンテンツの再生時に、アプリケーションを起動して、動画再生に同期したGUIをアプリケーションに描画させることで、立体視コンテンツの再生時におけるユーザ操作を容易に行わせたいという要望がある。これは、既存のBD-ROMコンテンツにおいて、コンテンツと、アプリケーションとを連動させて、アプリケーションにGUI処理を行わせるという高度な処理が実現されており、これを立体視コンテンツでも実現したいというコンテンツ制作者側からの要望による。
【0006】
アプリケーションによる描画は、ビットマップパターンを生成して、そのビットマップパターンを1画素ずつ、左右のプレーンメモリに書き込むという処理になる。このような描画を繰り返すことにより、メニューのオープンにあたって、アニメーションによる視覚効果を導入することができる。ところが、画素書き込みの途中で、表示を行うべきフレーム期間が到来した場合、画素の書込途中の映像内容が、表示に供されることになる。画素書き込みの途中で、表示を行うべきフレーム期間が到来し、書込途中の映像内容が表示されることで画面のちらつきが生じることを、”ティアリング”という。
【0007】
平面視再生においてティアリングは、ユーザの許容範囲となるが、立体視再生の場合、ティアリングは、深刻な不快感をもたらす。右目用プレーンメモリ、左目用プレーンメモリのうち、双方の描画が完了している箇所では立体視効果が生じるものの、ティアリングによって未描画になっている部分では立体視効果が生じないばかりか、左右の目で全く異なる映像が見えるという、現実には起こり得ない状況となるからである。例えば、左目におけるメニューの描画が完了したが、右目におけるメニューの下半分の描画が未完である場合、立体視再生時において、メニューの下半分の部分では左右両眼の間で映像の不整合が生じることになり、ユーザに視覚的な不快感を与える。
【0008】
立体視再生時におけるティアリングは、左右の映像の不整合という現象が顕在化するので、かかる不整合を確実に防ぐ手だてがないと、立体視再生を行うような再生装置の商品化は難しい。かかる技術的障壁に対しては、左右のイメージプレーンに対する書き込みを完全並列化することが考えられる。しかし再生装置プレーヤモデルの策定にあたって、このようなイメージプレーン書き込みの完全並列化を強制するのは再生装置の実装の自由度を奪うことになり望ましくない。また、ハードウエアの簡易化の余地を奪うので、低コスト競争の足かせになることは明確である。
【0009】
本発明の目的は、再生装置の実装の自由度を奪うことなく、ティアリングに起因する左右の映像の不整合の発生を、最低限に抑えることができる再生装置を提供することである。
【課題を解決するための手段】
【0010】
上記課題を解決するため、本発明にかかる再生装置は、
記録媒体に記録されているビデオストリームをデコードして、立体視映像の再生を行う再生部と、
アプリケーションを動作させるプラットフォーム部と、
複数のプレーンメモリと、
アプリケーションからのアプリケーションプログラムインターフェイスの呼び出しに応じて、複数のプレーンメモリに対する描画イメージの書き込みを行う描画部とを備え、
複数のプレーンメモリには、レフトビュープレーンメモリと、ライトビュープレーンメモリとがあり、
前記アプリケーションプログラムインターフェイスの引数は、レフトビュープレーンメモリへの書き込み指定と、ライトビュープレーンメモリへの書き込み指定とのペアを含む
ことを特徴とする。
【発明の効果】
【0011】
アプリケーションプログラムインターフェイスの呼び出し時において、レフトビュープレーンメモリへの書き込み指定と、ライトビュープレーンメモリへの書き込み指定とのペアがバイトコードアプリケーションから引き渡されるので、右目用のプレーンメモリへの画素書き込みと、左目用プレーンメモリへの画素書き込みとを交互に行うような実装が可能になる。この場合、画素書き込みの途中で、表示を行うべきフレーム期間が到来したとしても、画素書き込みの進捗は、右目用と、左目用とで大体同じになる。たとえティアリングが生じたとしても、右目におけるティアリングと、左目におけるティアリングとは同一になるから、両目に映じる映像内容が一致しない映像の不整合の発生は避けられるか、発生したとしても、ユーザに不快を感じさせない許容範囲になる。
【0012】
左イメージプレーン、右イメージプレーンのうち、どちらか一方の書き込みを先に行い、他方を後にするとの実装であっても、パラメータがアプリケーションから引き渡されないことによる遅延を避けることができるので、表示を行うべきフレーム期間の到来までに、左イメージプレーン、右イメージプレーンへの書き込みを同時に完了させる確率を高めることができる。
【0013】
イメージプレーンに対する書き込みをライン単位で行う場合であっても、左イメージプレーン→右イメージプレーンの順に行う場合であっても、両目に映じる映像内容が一致しない映像の不整合の発生確率を低下させうるので、再生装置の実装の自由度を奪うことなく、ティアリングに起因する左右の映像の不整合の発生を、最低限に抑えることができる。
【図面の簡単な説明】
【0014】
【図1】再生装置の使用行為についての形態の一例を示す図である。
【図2】本願の課題解決手段を具備した再生装置の基本的な内部構成を示す。
【図3】ビデオプレーン104a,104bに格納されたピクチャデータが、シャッター眼鏡500を着用したユーザによってどのように見えるかを示す。
【図4】イメージプレーン104c,104dの内部構成を示す。
【図5】プレーンオフセットの符号が正(レフトビュー期間における描画イメージの書き込み位置を右方向へずらし、ライトビュー期間における描画イメージの書き込み位置を左方向へずらす)である場合、像が表示画面よりも手前にあるように見える原理を説明するための図である。
【図6】像が表示画面よりも奥にあるように見える原理を説明するための図である。
【図7】正と負のプレーンオフセットの見え方の違いの一例を示す図である。
【図8】描画イメージの書き込みに用いられるアプリケーションプログラムインターフェイスを示す。
【図9】図8のアプリケーションプログラムインターフェイスを用いて規定することができる描画要求の具体例である。
【図10】図9(c)のように引数が指定された場合、StereoGraphics#drawImageの呼び出しによって、どのような書き込みが実行されるかを模式的に示す。
【図11】フレームi,j,kのそれぞれにおける、左右イメージメモリ、左右のイメージプレーンの書き込み内容を示す。
【図12】フレームi,j,kにおけるイメージプレーンの書き込み内容が図11のものである場合、どのようなエフェクトが再生されるかを示す。
【図13】左右のイメージプレーンへの書き込みをどのように行うべきかを示す。
【図14】StereoGraphics#drawImageを用いず、左イメージプレーン、右イメージプレーンのそれぞれに対して、個別に、書き込みを行う場合、表示内容がどのようになるかを示す。
【図15】StereoGraphics#drawImageを用いて、左イメージプレーン、右イメージプレーンのそれぞれに対して、画素の書き込みをライン単位に交互に行う場合、表示内容がどのようになるかを示す。
【図16】バイトコードアプリケーションによるメニュー表示のフローチャートである。
【図17】StereoGraphics#drawImageがコールされた際のライン描画手順を示すフローチャートである。
【図18】第2実施形態に係る再生装置のうち、改良が施された部分(イメージメモリ、イメージプレーン、レンダリングエンジン、合成部)のみを描く。
【図19】スイッチ123、スイッチ124による切り替えを示す。
【図20】左右のイメージプレーンへの書き込みをどのように行うべきかを示す。
【図21】StereoGraphics#drawImageがコールされた際のダブルバッファを用いた描画手順を示す。
【図22】動作モードオブジェクトの内部構成の一例を示す図である。
【図23】タイトル切り替え時におけるプレーンメモリの解像度設定の処理手順の一例を示すフローチャートである。
【図24】BD-ROM100の内部構成を示す図である。
【図25】第4実施形態に係る再生装置の内部構成を示すブロック図である。
【図26】左右プレーンの交互出力を実現する場合のフレーム処理の処理手順を示すフローチャートである。
【図27】描画要求の発行タイミングの調整を伴う場合の左右描画処理調停部30の処理手順を示すフローチャートである。
【図28】ラインの交互出力を実現する場合の、フレーム処理を示すフローチャートである。
【図29】描画要求の統合を伴う左右描画処理調停部30の処理手順を示すフローチャートである。
【図30】左右同時描画要求Cと、描画要求A,Bを示す図である。
【図31】画面更新要求をトリガとした左右描画処理調停部30の処理手順を示すフローチャートである。
【図32】左イメージプレーン9と右イメージプレーン10とを連結することで構成される連結イメージプレーンを示す。
【図33】描画要求の切り抜きを伴う左右描画処理調停30の処理のフローチャートである。
【図34】描画要求と、左右同時描画要求とを示す。
【図35】描画要求の変換を伴う左右描画処理調停部30の処理のフローチャートである。
【発明を実施するための形態】
【0015】
図面を参照しながら、上記課題解決手段を具備した記録媒体、及び、再生装置の実施形態について説明する。
図1は、記録媒体、再生装置の、使用行為についての形態の一例を示す図である。本図に示すように、記録媒体100、再生装置200は、リモコン300、テレビ400、シャッター眼鏡500と共にホームシアターシステムを構成し、ユーザによる使用に供される。
【0016】
記録媒体100は、上記ホームシアターシステムに、例えば映画作品を供給する。
再生装置200は、テレビ400と接続され、記録媒体100を再生する。かかる再生は、左眼用映像(L画像)の映像出力と、右眼用映像(R画像)の映像出力を交互に繰り返すことでなされる。こうして再生される再生映像には、2D映像、3D映像が存在する。2D映像とは、例えば表示装置の表示画面を含む平面をX-Y平面として捉えて、このX-Y平面上に位置する表示画面の表示位置における画素にて表現される画像であり、平面視画像とも呼ばれる。
【0017】
対照的に3D映像とは、上述のX-Y平面として捉えた平面と直交する直線を軸とし(本実施の形態ではX-Y平面に垂直な直線を軸(Z軸)として定義する)、表示装置の表示画面におけるX-Y平面上の画素に、本実施の形態で説明する構成を採用することにより、人の目には立体的に見えるようにした、または表示画面よりも手前または奥に見えるようにした映像である。
リモコン300は、階層化されたGUIに対する操作をユーザから受け付ける機器であり、かかる操作受け付けのため、リモコン300は、GUIを構成するメニューを呼び出すメニューキー、メニューを構成するGUI部品のフォーカスを移動させる矢印キー、メニューを構成するGUI部品に対して確定操作を行う決定キー、階層化されたメニューをより上位のものにもどってゆくための戻りキー、数値キーを備える。
【0018】
表示機器400は、再生装置200からの映像出力を受け取って、L画像とR画像とを同じタイミングでそのまま交互に出力する。タイミングの同一化は、映像出力と表示切り替えのフレームレートを同一とすることで実現される。視聴者の眼の負担を軽減するため、表示切り替え側のフレームレートのみを逓倍する構成をとることもできる。この場合は、L画像および続いて出力されたR画像のセットを表示ディスプレイ400が蓄積し、表示ディスプレイ側でこれらの画像を高速に切り替えることで、高フレームレートの表示を行うこととなる。以降の説明においては、L画像、R画像の順番で出力された画像が表示ディスプレイ側でセットとして扱われることを前提として説明を行う。但し、逆順であっても同様の構成を取ることができる。
【0019】
シャッター眼鏡500は、液晶シャッターと、制御部とから構成され、ユーザの両目における視差を用いて立体視を実現する。シャッター眼鏡500の液晶シャッターは、印加電圧を変えることにより、光の透過率が変化する性質を有する液晶レンズを用いたシャッターである。シャッター眼鏡500の制御部は、再生装置から送られるR画像とL画像の出力の切り替えの同期信号を受け、この同期信号に従って、第1の状態、第2の状態の切り替えを行う。
【0020】
第1の状態とは、右目に対応する液晶レンズが光を透過しないように印加電圧を調節し、左目に対応する液晶レンズが光を透過するように印加電圧を調節した状態であり、この状態において、左目にL画像が入射し、右目にはL画像が入射されない状態となる。
第2の状態とは、右目に対応する液晶レンズが光を透過するように印加電圧を調節し、左目に対応する液晶レンズが光を透過しないように印加電圧を調節した状態であり、この状態において、右目にR画像が入射し、左目にはR画像が入射されない状態となる。
【0021】
一般にR画像と、L画像とは、その撮影位置の差に起因して、ライトビューから見える像とレフトビューから見える像には見え方に若干の差があるような画像である。
この像の見え方の差の程度を人間の左目/右目のそれぞれから見える像の差の程度(つまり、視差の程度)とすることにより、利用して人間の目から見える像を立体として認識できるのである。そこで、シャッター眼鏡500が、以上のような第1の状態、第2の状態の切り替えを、R画像とL画像の出力の切り替えタイミングに同期させれば、ユーザは、平面的な表示が立体的に見えると錯覚する。次に、R画像、L画像を表示するにあたっての時間間隔について説明する。
【0022】
具体的には、平面表示の画像において、R画像とL画像には人間の視差に相当する見え方の差に相当する程度の差があり、これらの画像を短い時間間隔で切り替えて表示することにより、あたかも立体的な表示がなされているように見えるのである。この短い時間間隔というのは、上述の切り替え表示により人間が立体的に見えると錯覚する程度の時間であれば足りる。本実施形態では、テレビ400がビデオストリームを再生するための表示周期を示すフレーム期間を2つに分割して、分割により得られたそれぞれの期間を、右目、左目を切り替えるための時間間隔とする。フレーム期間を分割することで得られた期間のうち、左目で視聴させるための期間を”レフトビュー期間”という。また右目で視聴させるための期間を”ライトビュー期間”という。ここでフレーム周期が1/24秒であれば、レフトビュー期間、ライトビュー期間はそれぞれ、1/48秒となる。フレーム周期が1/60秒であれば、レフトビュー期間、ライトビュー期間はそれぞれ、1/120秒となる。
【0023】
(第1実施形態)
以下、本願明細書の課題解決手段を具備した再生装置の実施形態のうち、イメージプレーンに、シングルバッファを用いた再生装置の実施形態について説明する。図2は、本願の課題解決手段を具備した再生装置の基本的な内部構成を示す。本図に示すように、再生装置200は、読出部101、ビデオデコーダ102、プレーンメモリセット103(ビデオプレーン104a,104b、イメージプレーン104c,104dを含む)合成部105、イメージメモリ106、レンダリングエンジン107、プラットフォーム部110、ヒープメモリ111、バイトコードインタプリタ112、クラスローダ113、アプリケーションマネージャ114、ミドルウェア115から構成される。
【0024】
読出部101は、記録媒体100からビデオストリーム、描画イメージのデータ構造体、バイトコードアプリケーションのクラス構造体、アプリケーション管理テーブルを読み出し、ビデオストリームについてはビデオデコーダ102に供給する。
ビデオデコーダ102は、読み出されたビデオストリームを復号して非圧縮形式のピクチャをプレーンメモリセット103に書き込む。
【0025】
プレーンメモリセット103は、複数のプレーンメモリから構成される。プレーンメモリとは、一画面分の画素データをライン単位で格納しておき、水平同期信号、垂直同期信号に沿ってこれらの画素データを出力するためのメモリである。個々のプレーンメモリは、ビデオ、字幕、GUI、背景画像のデコードによって得られた1画面分の画素データを格納する。
【0026】
これらのプレーンメモリは、レイヤモデルを構成しており、個々のプレーンメモリの格納内容は、レイヤ合成に供される。このレイヤ合成は、プレーンメモリのレイヤモデルにおいて、2つの階層のプレーンメモリに格納されている画素データの画素値を重畳させるという処理を、レイヤモデルにおける2つの階層の全ての組合せに対して実行することでなされる。
【0027】
左ビデオプレーン104aおよび右ビデオプレーン104bは、プレーンメモリセットの1つであり、それぞれ左眼用のビデオのピクチャ、右眼用のビデオのピクチャが格納される。
左イメージプレーン104cおよび右イメージプレーン104dは、プレーンメモリセットのうちの1つであり、ビデオプレーンの上の重畳させるべきイメージを非圧縮形式で格納する。左イメージプレーン104cは、左眼用のイメージデータを格納するレフトビュープレーンメモリである。右イメージプレーン104dは、右眼用のイメージデータを格納するライトビュープレーンメモリである。本実施形態において左イメージプレーン及び右イメージプレーンは、それぞれシングルバッファから構成されているので、各イメージプレーンに格納されている描画イメージであって、現在表示対象になっているものに、新たな描画イメージを上書きすることにより、各イメージプレーンの画面更新を行う。イメージプレーンにおける直前の表示対象である描画イメージに、新たな表示対象である描画イメージを直接上書きするので、上書き処理の途上においては、直前の表示対象である描画イメージと、新たな表示対象である描画イメージとが混在したようなティアリングが発生する。
【0028】
合成部105は、複数のプレーンメモリのレイヤ合成を行う。
イメージメモリ106は、記録媒体100に記録されたデータ構造体のインスタンスが生成された場合、データ構造のインスタンスであるイメージオブジェクトを格納しておくためのメモリである。かかるイメージオブジェクトは、RGB値のビットマップであり、バイトコードアプリケーションからはインスタンス変数によって指示される。3Dモードでは、右用のイメージオブジェクト、左目用のイメージオブジェクトを個別に格納することができる。
【0029】
レンダリングエンジン107は、左イメージプレーン104cおよび右イメージプレーン104dに対する描画処理を行う。レンダリングエンジン107によるイメージ描画は、イメージメモリ106上のイメージオブジェクトを、イメージメモリ106からイメージプレーン104c,104dにコピーすることでなされる。コピーの対象になるイメージオブジェクトは、インスタンス変数で指示される。
【0030】
プラットフォーム部110は、ROM等の不揮発性メモリに記憶された組込みプログラムと、この組込みプログラムを実行するハードウエア(MPU、レジスタ、周辺回路を含む)とから構成され、記録媒体100に記録されたクラス構造体のインスタンスであるバイトコードアプリケーションを動作させる。ここでバイトコードアプリケーションとは、オブジェクト指向プログラミング言語を用いて記述されたクラス構造体をコンパイルすることで得られた実行形式のプログラムであり、機器に依存しないコード(バイトコード)によって記述されているものをいう。バイトコードアプリケーションとして典型的なものにはJava(登録商標)アプリケーションがある。
【0031】
ヒープメモリ111は、バイトコードアプリケーションを構成するバイトコードやバイトコードアプリケーションが利用するシステムパラメータが配置されるスタック領域である。ヒープメモリ111上で動作するバイトコードアプリケーションによる描画は、1/30秒、1/15秒、1/5秒などのように、可変のフレームレートでなされる。このフレームレートは、ビデオ再生のフレームレートである1/24秒、1/60秒と整数倍にならないので、バイトコードアプリケーションは、再生装置のクロックを用いて、自身の描画タイミングに到来したかどうかを検知し、描画タイミングが到来すれば、書き込みを行う。
【0032】
バイトコードインタプリタ112は、ヒープメモリ111に格納されているバイトコードアプリケーションを構成するバイトコードをネィティブコードに変換して、MPUに実行させる。
クラスローダ113は、記録媒体100に記録されたアプリケーションのクラス構造体のインスタンスをヒープメモリ111に生成することにより、バイトコードアプリケーションのロードを行う。
【0033】
アプリケーションマネージャ114は、アプリケーション管理テーブルに基づき、バイトコードアプリケーションの正当性を検証した上で、バイトコードアプリケーションを起動したりバイトコードアプリケーションを終了したりする等、バイトコードアプリケーションのアプリケーションシグナリングを行う。
ミドルウェア115は、プラットフォーム部で動作しているバイトコードアプリケーションに対して、各種機能を提供する組込み機器用のオペレーティングシステムである。機能提供は、ミドルウェアが実装しているパッケージのメンバー関数を呼び出すことでなされる。ミドルウェアが実装しているパッケージは、色指定を伴った線や矩形等図形の描画、指定領域の塗りつぶし、指定されたイメージのコピー・ペースト等の描画処理を、レンダリングエンジン107を通じて左イメージプレーン104cおよび右イメージプレーン104dに対して行うライブラリを含む。そしてミドルウェア115は、このライブラリの機能によって、イメージ描画を実行する描画部を具備している。バイトコードアプリケーションはこれらの描画処理の要求を連続的に発行することで、様々なグラフィクス描画処理を実現することができる。かかるパッケージには、java.awtパッケージがあり、イメージ描画のアプリケーションプログラムインターフェイスは、このjava.awtパッケージのメソッドになる。他、java.awtパッケージにはない拡張メソッドも、イメージ描画のAPIとなる。イメージ描画の内容には、線や矩形の描画、指定領域の塗りつぶし、指定されたイメージのコピー・ペースト等があり、これらのイメージ描画は、描画内容の種別を示す情報によって識別される。
【0034】
本実施形態では、バイトコードアプリケーションからの要求によるイメージ描画にあたって、ミドルウェアは、1画面分のイメージプレーンの描画イメージの書き込みに、nフレームに相当する実行サイクルを必要とすると仮定する。これは、バイトコードアプリケーションによってAPIがコールされてから、ミドルウェアがそのレスポンスを返すまでのターンアラウンド時間であり、プラットフォーム部−ミドルウェア−ハードウエア間のオーバーヘッドを含む。一般にJavaアプリケーションの実装において、ある画像を描画したくなったら、その場(例えばkフレーム)で描画命令を発行し、その発行から所定のフレームの遅延時間後に表示がなされることになる。この表示時における遅延時間について、Javaアプリケーションはケアしないことが一般的である。
【0035】
そうすると、左イメージプレーン、右イメージプレーンの双方への描画イメージの書き込みのために、2×nフレームに相当する遅延時間が必ず発生することになる。例えば、任意のフレームkにおいて、立体視のための描画イメージを表示させたい場合、フレームkでStereoGraphics#drawImageメソッドを発行すれば、このフレームkから”2×nフレーム”だけ遅れて、描画イメージが表示されることになる。
【0036】
以下、これらの構成要素の処理内容を、参考図を交えてより更に詳しく説明する。
図3は、ビデオプレーン104a,104bに格納されたピクチャデータが、シャッター眼鏡500を着用したユーザによってどのように見えるかを示す。
図中の矢印vw1は、レフトビュー期間における視点への映像入力を示し、図中の矢印vw2は、ライトビュー期間における視点への映像入力を示す。レフトビュー期間では、矢印vw1に示すように、レフトビュー期間では、左ビデオプレーンの格納内容がシャッター眼鏡500を通じてユーザの左目に入射する。ライトビュー期間では、この矢印vw2に示すように、右ビデオプレーンの格納内容がシャッター眼鏡500を通じてユーザの右目に入射する。
【0037】
図4は、イメージプレーン104c,104dの内部構成を示す。解像度が1920×1080に設定されている場合、同図(a)に示すように、イメージプレーン104c,104dは横1920×縦1080の32ビット長の記憶素子からなる。イメージプレーン104c,104dは、1920×1080の解像度で、1画素当たり32ビットのR,G,B,α値を格納できるメモリアロケーションをもつ。記憶素子に記憶される32ビットのR,G,B,α値は、8ビットのR値、8ビットのG値、8ビットのB値、8ビットの透明度αから構成される。1画面分のプレーンメモリの規模は、8Mバイトであり、左右のプレーンメモリの双方でダブルバッファを構成しようとすると、8Mバイト×4ものメモリ規模が必要になる。そしてダブルバッファでは、画面切り替え時にバッファからバッファへの転送が必要になり、この8Mバイトという規模のデータ転送が頻発するので、必要となるメモリ帯域が多大になる。このような事情から本実施形態では、イメージプレーンをシングルバッファによって構成している。
【0038】
同図(b)は、イメージプレーン104c,104dに格納されている画素データを示す。本図に示すように、イメージプレーン104c,104dに格納されているグラフィクスデータは、前景部分にあたる画素データ、背景部分にあたる画素データから構成される。ここで背景部分にあたる記憶素子には、透明色を示すα値が格納されており、この部分には、ビデオプレーンとの合成時において、イメージプレーンの字幕やビデオプレーンにおける動画像が透けて見えるようになる。一方、前景部分にあたる記憶素子には、透明色以外を示すR,G,B値が格納されており、この透明色以外のR,G,B値によって、描画イメージが描かれることになる。
【0039】
合成部105によるプレーン合成時において、透明画素にあたる部分には、他のプレーンメモリの格納内容が透けて見えるようになり、かかる透明部分の存在によって、プレーン合成が可能になる。
図5は、プレーンオフセットの符号が正(レフトビュー期間における描画イメージの書き込み位置を右方向へずらし、ライトビュー期間における描画イメージの書き込み位置を左方向へずらす)である場合、像が表示画面よりも手前にあるように見える原理を説明するための図である。
【0040】
本図において、丸で示したものは、表示画面上に表示される像である。まず、2Dモードである場合、右目に見える像も左目に見える像も同じ位置であるため、両目を用いて、この像を見たときの焦点位置は、表示画面上に位置する(図5(a))。結果として表示される像は表示画面上に位置する。
レフトビュー期間において、左目に見える像はプレーンオフセットが0の場合に比べて右側の位置に見えるようシフトして表示する。このとき右目にはシャッター眼鏡500により何も見えないようにする。一方、右目に見える像は、プレーンオフセットが0の場合に比べて左側の位置に見えるようにシフトして表示する。このとき左目にはシャッター眼鏡500により何も見えないようにする(図5(b))。
【0041】
人間は両目を用いて焦点をあわせてその焦点位置に像があるように認識する。従って、シャッター眼鏡500により左目に像が見える状態と、右目に像が見える状態とを交互に短い時間間隔で切り替えると、人間の両目は表示画面よりも手前の位置に焦点位置を、合わせようとし、結果として表示画面よりも手前に位置する焦点位置に像があるように錯覚を起こす(図5(c))。
【0042】
図6は、像が表示画面よりも奥にあるように見える原理を説明するための図である。
図6において、丸で示したものは、表示画面上に表示される像である。まず2Dモードにおいて、右目に見える像も左目に見える像も同じ位置であるため、両目を用いて、この像を見たときの焦点位置は、表示画面上に位置する(図6(a))。結果として表示される像は表示画面上に位置する。
【0043】
一方、レフトビュー期間において、左目に見える像はプレーンオフセットが0の場合に比べて左側の位置に見えるようにする。このとき右目にはシャッター眼鏡500により何も見えないようにする。一方、右目に見える像は、オフセットが0の場合に比べて右側の位置に見えるようにする、このとき左目にはシャッター眼鏡500により何も見えないようにする(図6(b))。
【0044】
シャッター眼鏡500により左目に像が見える状態と、右目に像が見える状態と互に短い時間間隔で切り替えると、人間の両目は表示画面よりも奥の位置に焦点位置を、合わせようとし、結果として表示画面よりも奥の位置に像があるように錯覚を起こす(図6(c))。
図7は、正と負のプレーンオフセットの見え方の違いの一例を示す図である。
【0045】
本図(a)は、レフトビュー期間における描画イメージの書き込み位置を右方向へずらし、ライトビュー期間における描画イメージの書き込み位置を左方向へずらす場合を示す。図5に示したようにレフトビュー出力時の字幕がライトビュー出力時の字幕より右の位置に見えるようになる。つまり、輻輳点(焦点位置)がスクリーンより手前にくるので、字幕も手前に見えるようになる。
【0046】
本図(b)は、レフトビュー期間における描画イメージの書き込み位置を左方向へずらし、ライトビュー期間における描画イメージの書き込み位置を右方向へずらす場合を示す。図6に示したように、レフトビュー出力時の字幕がライトビューの出力時の字幕より左の位置に見えるようになる。つまり、輻輳点(焦点位置)がスクリーンより奥にゆくので、字幕も奥に見えるようになる。
【0047】
図8は、描画イメージの書き込みに用いられるアプリケーションプログラムインターフェイスを示す。
同図(a)におけるjava.awt.Graphics#fillRectメソッドは、第1引数の位置で指定された矩形範囲を、第2引数で指定された色(正確にはjava.awt.Graphics#setColorメソッドで指定されたカレント色であるが、簡略化のため、以下では第2引数として説明を行う)で塗り潰す機能を呼び出すアプリケーションプログラムインターフェイスである。描画対象プレーンとしては、左イメージプレーン104cおよび右イメージプレーン104dの他に、BD-Jアプリが独自に生成した一時処理用の描画領域(BufferedImage)を対象とすることもできる。矩形範囲の位置は、描画先となる矩形領域の左上の座標(x1,y1)と右下の座標(x2,y2)の組み合わせで表現される。描画対象プレーンとしては、左イメージプレーン104cおよび右イメージプレーン104dの他に、BD-Jアプリが独自に生成した一時処理用の描画領域(BufferedImage)を対象とすることもできる。
【0048】
同図(b)におけるjava.awt.Graphics#drawImageメソッドは、第1引数の位置で指定された描画位置に、第2引数で指定された描画イメージを書き込む機能を呼び出すためのAPIである。正確には、指定された描画イメージを矩形にトリミングしてから描画するための、矩形位置を指定する引数を渡すことも可能であるが、ここでは省略する。
StereoGraphics#drawImageメソッドは、左イメージプレーンにおいて、第1引数の位置で指定された矩形範囲に、第2引数で指定された描画イメージを書き込み、右イメージプレーンにおいて、第3引数の位置で指定された矩形範囲に、第4引数で指定された描画イメージを書き込む機能を呼び出すAPIである。
【0049】
矩形範囲は、描画先となる矩形領域の左上の座標(x1,y1)と右下の座標(x2,y2)の組み合わせで表現される。また、イメージオブジェクトとしては、JPEGやPNG形式のデータ構造から生成したインスタンス(ビットマップ画像)の他に、BufferedImageを用いることができる。
前述したようにjava.awt.Graphics#drawImageメソッドではイメージコピー処理が規定されているが、この処理では1つの矩形領域のコピーしか指定することができない。一方、StereoGraphics#drawImageメソッドによる左右同時イメージコピーは、描画位置と描画イメージとのペアを含む。描画先プレーンはそれぞれ左イメージプレーン104cと右イメージプレーン104dに固定されているものとし、イメージプレーンの指定は、StereoGraphics#drawImageメソッドの引数から除外されている。BD-ROM再生装置にStereoGraphics#drawImageメソッドを実装しようとする場合、StereoGraphics#drawImageメソッドによる左右同時イメージコピー処理はBD-Java規格上は存在しないため、例えばStereoGraphics#drawImageのような拡張メソッドを追加する必要がある。
【0050】
図9は、図8のアプリケーションプログラムインターフェイスを用いて規定することができる描画要求の具体例である。同図(a)は、APIの種別がjava.awt.Graphics#fillRectメソッドである場合、描画すべき矩形範囲、描画色が、具体的にどのようなものに設定できるかを表形式で示す。以降の説明において、APIで規定される描画要求の表記には、本図のものを用いる。java.awt.Graphics#fillRectメソッドの場合、描画すべき矩形範囲は、(X1=50,Y1=100),(X2=250,Y2=170)という、イメージプレーン座標系におけるXY座標で表現される。また、描画色は、(R=255,G=0,B=0)というRGB値によって表現される。
【0051】
同図(b)は、APIの種別がjava.awt.Graphics#drawImageメソッドである場合、描画すべき矩形範囲、描画イメージが、具体的にどのようなものに設定されるかを表形式で示す。java.awt.Graphics#drawImageメソッドの場合、描画すべき矩形範囲は、(X1=50,Y1=100),(X2=250,Y2=170)という、プレーン座標系におけるXY座標で表現される。また、描画イメージは、データ構造体のインスタンスに与えられるインスタンス変数を用いて表現される。本図の”ビットマップイメージ1”とは、横200画素×高さ70画素から構成されるインスタンスに与えられたインスタンス変数である。
【0052】
同図(c)は、APIの種別がStereoGraphics#drawImageメソッドである場合、描画すべき矩形範囲、描画イメージが、具体的にどのようなものに設定されるかを表形式で示す。APIの種別がStereoGraphics#drawImageメソッドである場合、左イメージプレーンにおける描画すべき矩形範囲は、(X1=50,Y1=100),(X2=250,Y2=170)という、プレーン座標系におけるXY座標で表現される。また、描画イメージは、データ構造体のインスタンスに与えられる変数名を用いて表現される。本図の”ビットマップイメージ1”とは、横200画素×高さ70画素から構成されるインスタンスに与えられたインスタンス変数である。
【0053】
右イメージプレーンにおける描画すべき矩形範囲は、(X3=55,Y3=100),(X4=255,Y4=170)という、プレーン座標系におけるXY座標で表現される。また、描画イメージは、データ構造体のインスタンスに与えられるインスタンス変数を用いて表現される。本図の”ビットマップイメージ2”とは、横200画素×高さ70画素から構成されるインスタンスに与えられたインスタンス変数である。
【0054】
図10は、図9(c)のように引数が指定された場合、StereoGraphics#drawImageの呼び出しによって、どのような書き込みが実行されるかを模式的に示す。図中の手前側は、描画イメージを格納したイメージメモリを示す。図中の奥手側は、互いに重ね合わされた左イメージプレーン及び左ビデオプレーンの組み、右イメージプレーン及び右ビデオプレーンの組みを示す。この左イメージプレーン、右イメージプレーンに、図9で描画すべき矩形範囲として示した、具体的なXY座標をプロットしている。
【0055】
本図によると、左右のイメージプレーンでは、X座標がわずかにずれているため、描画イメージがそれぞれ横方向に少しずれた位置にコピーされることになる。図中の矢印ig1,ig2は、左右イメージプレーンから左右のイメージプレーンへのコピーを示す。この場合はR画像の描画位置がL画像の描画位置よりも5ピクセル分右にずれているため、視聴者にはディスプレイの奥に引っ込んでいるような表示として感じられることになる。左右それぞれの視点向けに用意した異なるビットマップを指定しているので立体視としての効果は向上しているが、描画イメージとして同一のビットマップを用いることもできる。
【0056】
図11は、フレームi,j,kのそれぞれにおける、左右のビデオプレーン、左右のイメージプレーンの書き込み内容を示す。フレームiの書き込み内容は、1つのボタン部材であり、フレームjの書き込み内容は3つのボタン部材、フレームkの書き込み内容は、字幕、音声、特典といった文字列が付加された3つのボタン部材である。
図12は、フレームi,j,kにおけるイメージプレーンの書き込み内容が図11のものである場合、どのようなエフェクトが再生されるかを示す。上述したような書き込みを行うことにより、フレームiにおいて1つのボタン部材が表示された後に、フレームjにおいて1つのボタン部材が3つに増え、フレームkにおいて3つのボタン部材に文字列が付加されることでメニューが完成する様子が描かれる。
【0057】
かかるイメージプレーンの書き込みにあたって、上から1ラインずつ、左右交互に描画することで、最悪でも左右同じ場所にティアリングが発生するようにする。
図13は、左右のイメージプレーンへの書き込みがどのように行われるかを示す。第1段目は、バイトコードアプリケーションの動作の時間軸を示し、第2段目は左イメージメモリ、第3段目は右イメージメモリ、第4段目は左ビデオプレーン、第5段目は右ビデオプレーンを示す。フレームkの直後であるフレームk+1、フレームk+2は、描画イメージの書き込みが行われるフレームである。図中のライン1、ライン2、ライン3〜ライン70は、描画イメージを構成する各ラインの画素データが順次、イメージプレーンに書き込まれてゆく過程を示す。この書き込みは、左イメージプレーンへのライン1の書き込み、右イメージプレーンへのライン1の書き込み、左イメージプレーンへのライン2の書き込み、右イメージプレーンへのライン2の書き込みというように、ライン単位で交互になされていることがわかる。
【0058】
ここでバイトコードアプリケーションによる左右のイメージプレーンへの書き込みに、2フレーム期間が必要であるものと仮定する。この場合、第1段目におけるバイトコードアプリケーションは、フレームkにてStereoGraphics#drawImageを呼び出すと、2フレーム期間後のフレームk+2に描画が完了することになる。
図14は、StereoGraphics#drawImageを用いず、左イメージプレーン、右イメージプレーンのそれぞれに対して、個別に、書き込みを行う場合、表示内容がどのようになるかを示す。同図(a)は、左右イメージプレーンに対する書き込み進捗の違いを示す。左イメージプレーンへの書き込みを先に行ったため、左イメージプレーンでは、「字幕」「音声」「特典」のボタン部材が存在するが、右イメージプレーンへの書き込みは後であったので、右イメージプレーンには「字幕」のボタン部材しか存在しない。
【0059】
上述したように、本実施形態ではイメージプレーンがシングルバッファで構成されており、イメージプレーン上のフレームjに表示されるべき描画イメージに、フレームkに表示されるべき描画イメージを上書きすることにより、イメージプレーンの画面更新を行っている。よって本図では、左イメージプレーンにフレームjに表示されるべき描画イメージの一部が残存している(ハッチング部参照)。フレームjに表示されるべき描画イメージの残存部は、右イメージプレーンにのみ存在し、左イメージプレーンには存在しないため、かかる残存部において、左右両眼の間での不整合が発生する。
【0060】
同図(b)は、シャッター眼鏡500を通じて、(a)のイメージプレーンを視聴した場合に視聴することができる立体視映像を示す。本図において「字幕」のボタン部材は、左右イメージプレーンに共通に存在するから、立体視効果により画面から手前に出現しているように見える。対照的に「音声」「特典」のボタン部材は、左右イメージプレーンに共通に存在しないので、立体視効果が得られないばかりか、左右の目で全く異なる映像が見えるという、現実にはあり得ない状況となる。このような左右両眼の間での映像の不整合は、ユーザに視覚的な不快感を与える。
【0061】
図15は、StereoGraphics#drawImageを用いて、左イメージプレーン、右イメージプレーンのそれぞれに対して、画素の書き込みをライン単位に交互に行う場合、表示内容がどのようになるかを示す。同図(a)は、左右イメージプレーンに対する書き込み進捗の違いを示す。左右イメージプレーンへのライン単位の書き込みを交互行うため、左右イメージプレーンにおける書き込みの進捗は同程度となる。
【0062】
イメージプレーン上のフレームjに表示されるべき描画イメージに、フレームkに表示されるべき描画イメージを上書きすることにより、イメージプレーンの画面更新を行っているので、本図でも、前図と同様、フレームkに表示されるべき描画イメージの一部が残存している(ハッチング部参照)。
具体的にいうと、左右イメージプレーンには、それぞれ「字幕」「音声」のボタン部材しか存在しない。イメージプレーンの書込内容が未完成のまま表示に供されることでティアリングが発生する。しかしフレームkに表示されるべき描画イメージの残存部は、右イメージプレーンにも、左イメージプレーンにも存在するため、かかる残存部で、左右の映像の不整合は発生しない。
【0063】
同図(b)は、シャッター眼鏡500を通じて、(a)のイメージプレーンを視聴した場合に視聴することができる立体視映像を示す。本図において「字幕」「音声」のボタン部材は、左右イメージプレーンに共通に存在するから、立体視効果により画面から手前に出現しているように見える。左右のイメージプレーンに対する書き込みが未完であっても、左右のイメージプレーンの内容は大体同じものになる。また、左右の不整合が発生したとしても、その発生の程度は、ライン画素のレベルになるので、ユーザに視覚的な不快感を与えることはない。
【0064】
StereoGraphics#drawImageを用いた描画処理を再生装置に実行させるため、どのようなプログラムを作成すべきかについて説明する。
図16は、バイトコードアプリケーションによるメニュー表示のフローチャートである。ステップS1において、描画イメージを最初に表示すべきフレームを”フレームt”とし、ステップS2〜ステップS7のループに移行する。ステップS2〜ステップS7は、フレームtに表示すべき左イメージのインスタンスを生成して、イメージ1とし(ステップS2)、フレームtに表示すべき右イメージのインスタンスを生成して、イメージ2として(ステップS3)、フレームtの始期が到来するのを待ち(ステップS4)、始期が到来すれば、左イメージプレーンの描画を行うべき矩形範囲、右イメージプレーンの描画を行うべき矩形範囲を特定する(ステップS5)。そして、左イメージプレーンの描画を行うべき矩形範囲、右イメージプレーンの描画を行うべき矩形範囲を引数で指定した上で、StereoGraphics#drawImageメソッドのコールを行い(ステップS6)、次にイメージを表示すべきフレームをフレームtとする処理(ステップS7)を、繰り返すものである。
【0065】
図17は、StereoGraphics#drawImageメソッドがコールされた際のライン描画手順を示すフローチャートである。描画イメージの描画対象行を示す変数Yを「1」に初期化して(ステップS11)、ステップS12〜ステップS14のループに移行する。このループでは、第2引数として指示される描画イメージのYライン目のRGB値を、左イメージプレーンの(x1,y1+Y-1)から、(x2,y1+Y-1)までに書き込み(ステップS12)、第4引数のYライン目のRGB値を、右イメージプレーンの(x3,y3+Y-1)から(x4,y3+Y-1)までに書き込む(ステップS13)という処理を、ステップS14がYesと判定されるまで繰り返す。ステップS14は、y1+Y-1がy2であり、尚且つ、y3+Y-1=y4という条件を満たすかどうかの判定であり、この条件を満たさない場合、ステップS15において変数Yをインクリメントした上、ステップS12に移行する。このループの繰り返しによって、左イメージプレーンにおける描画を行うべき矩形範囲にImage1を構成するライン画素が書き込まれてゆき、右イメージプレーンにおける描画を行うべき矩形範囲にImage2を構成するライン画素が書き込まれてゆく。
【0066】
以上のように本実施形態によれば、アプリケーションプログラムインターフェイスの呼び出し時において、左目用のプレーンメモリへの書き込み指定と、右目用のプレーンメモリへの書き込み指定とのペアがバイトコードアプリケーションから引き渡されるので、右目用のプレーンメモリへの画素書き込みと、左目用プレーンメモリへの画素書き込みとを交互に行うような実装が可能になる。この場合、画素書き込みの途中で、表示を行うべきフレーム期間が到来したとしても、画素書き込みの進捗は、右目用と、左目用とで大体同じになる。たとえティアリングが生じたとしても、右目におけるティアリングと、左目におけるティアリングとは同一になるから、両目に映じる映像内容が一致しない左右の映像の不整合の発生は避けられる。
【0067】
(第2実施形態)
本実施形態は、左イメージプレーン、右イメージプレーンのそれぞれに、ダブルバッファモデルを採用する実施形態である。図18は、第2実施形態に係る再生装置のうち、改良が施された部分(イメージメモリ、イメージプレーン、レンダリングエンジン、合成部)のみを描く。
【0068】
本図において、イメージメモリ105、レンダリングエンジン106、合成部107は、第1実施形態と同じであるが、イメージプレーン104c、104dが、左イメージプレーン121、右イメージプレーン122に置き換えられており、左イメージプレーン121、右イメージプレーン122と、合成部110との間に、スイッチ123、スイッチ124が存在する。
【0069】
左イメージプレーン121は、2つのプレーンメモリから構成される。これらのうち、一方は左表示対象バッファとなり、他方は左描画対象バッファになる。左表示対象バッファは、合成部による合成の対象となるバッファである。左描画対象バッファは、バイトコードアプリケーションによる書き込みの対象になるバッファである。これらのバッファは何れも、1画面分の画素データ(RGBα値)を格納しうる容量をもつ。
【0070】
右イメージプレーン122は、2つのプレーンメモリから構成される。これらのうち、一方は右表示対象バッファとなり、他方は右描画対象バッファになる。右表示対象バッファは、合成部による合成の対象となるバッファである。右描画対象バッファは、バイトコードアプリケーションによる書き込みの対象になるバッファである。これらのバッファは何れも、1画面分の画素データ(RGBα値)を格納しうる容量をもつ。
【0071】
スイッチ123は、左イメージプレーン121を構成する2つのプレーンメモリのうち、表示対象バッファになっているものの画素内容を合成部110に出力する。
スイッチ124は、右イメージプレーン122を構成する2つのプレーンメモリのうち、表示対象バッファになっているものの画素内容を合成部110に出力する。

図19は、スイッチ123、スイッチ124による切り替えを示す。同図(a)は、フレームiに表示すべき描画イメージの出力状態を示す。同図(a)では、左イメージプレーン121、右イメージプレーン122のうち、上側のバッファが表示対象バッファになっており、フレームiの描画イメージが格納されている。そして下側のバッファが描画対象バッファに設定され、ここに次に表示すべきフレームjの描画イメージが書き込まれつつある。同図(b)は、フレームjに表示されるべき描画イメージの書き込みが完了した状態を示す。下側のプレーンメモリに対する書き込みが完了したので、スイッチ123、スイッチ124を下側に切り替えることにより、フレームjの描画イメージを出力する。こうすることで、フレームjの描画イメージが表示に供される。
【0072】
(c)は、表示対象バッファから描画対象バッファへのコピーを示す。これにより左イメージプレーン121の内容は、何れもフレームjに表示されるべき描画イメージとなり、右イメージプレーン122の内容は、何れもフレームjに表示されるべき描画イメージになる。これにより、フレームの一部だけを描きかえてフレームkの描画イメージを生成する場合にも、描きかえられない部分について前のフレームjと整合することが保証される。(d)は、フレームkに表示されるべき描画イメージが、上側のプレーンメモリに書き込まれている状態を示す。この上側のバッファへの書き込みが完了すると、スイッチ123、スイッチ124は上側に通され、上側のバッファが表示対象バッファになる。
【0073】
図20は、左右のイメージプレーンへの書き込みを完成させるために、どのような書き込みを行うべきかを示す。第1段目は、バイトコードアプリケーションの動作の時間軸を示し、第2段目は左描画対象バッファ、第3段目は右描画対象バッファ、第4段目は左ビデオプレーン、第5段目は右ビデオプレーンを示す。フレームkの直後であるフレームk+1は、右描画対象バッファへの書き込みが行われるフレーム、フレームk+2は、左描画対象バッファへの書き込みが行われるフレームである。左右のイメージプレーンへの書き込みに2フレーム期間が必要である場合、バイトコードアプリケーションがフレームkにてStereoGraphics#drawImageメソッドを呼び出すと、2フレームが経過した後のフレームk+2で描画処理が完結する。そして、フレームk+2の開始時点になれば、左描画対象バッファ、右描画対象バッファが左表示対象バッファ、右表示対象バッファに切り替えられて、新たな描画イメージが表示に供される。
【0074】
図21は、StereoGraphics#drawImageがコールされた際のダブルバッファを用いた描画手順を示す。本フローチャートでは、描画イメージの描画対象行を示す変数Yを「1」に初期化して(ステップS21)、ステップS22〜ステップS24のループに移行する。このループでは、第2引数として指示される描画イメージのYライン目のRGB値を、左イメージプレーンの(x1,y1+Y-1)から、(x2,y1+Y-1)までに書き込む(ステップS22)という処理を、ステップS23がYesと判定されるまで繰り返す。ステップS23は、y1+Y-1がy2という条件を満たすかどうかの判定であり、この条件を満たさない場合、ステップS24において変数Yをインクリメントした上、ステップS22に移行する。このループの繰り返しによって、左イメージプレーンにおける描画を行うべき矩形範囲にImage1を構成するライン画素が書き込まれてゆく。
【0075】
その後、変数Yを1に初期化して(ステップS25)、ステップS26〜ステップS28からなるループに移行する。このループでは、第4引数のYライン目のRGB値を、右イメージプレーンの(x3,y3+Y-1)から(x4,y3+Y-1)までに書き込む(ステップS26)という処理を、ステップS27がYesと判定されるまで繰り返す。ステップS27は、y3+Y-1=y4という条件を満たすかどうかの判定であり、満たさない場合、ステップS28において変数YをインクリメントしてステップS26に戻る。以降、ステップS26〜ステップS28が繰り返されることにより、右イメージプレーンにおける描画を行うべき矩形範囲にImage2を構成するライン画素が書き込まれてゆく。ステップS26〜ステップS28のループを終了した後、ステップS29において左描画対象バッファと、左表示対象バッファとの交替及び右描画対象バッファと右表示対象バッファとの交替を同時実行することにより、表示切り替えを行う。
【0076】
以上のように本実施形態によれば、イメージプレーンにダブルバッファを採用することで、左右の映像の不整合の発生の回避が可能になる。
(第3実施形態)
本実施形態は、記録媒体におけるタイトルを生存区間としたアプリケーションシグナリングを再生装置に実行させて、このアプリケーションシグナリングの実行の際、イメージプレーンの規模を指定する改良に関する。
【0077】
本実施形態では、記録媒体に以下のインデックステーブル、動作モードオブジェクトが記録されている。
インデックステーブルは記録媒体全体に関する管理情報であり、再生装置への記録媒体挿入後に、インデックステーブルが最初に読み出されることで、再生装置において記録媒体が一意に認識される。
【0078】
インデックステーブルは、再生装置におけるタイトル番号レジスタに格納され得る複数のタイトル番号と、再生装置の動作モードを規定する動作モードオブジェクトとの対応付けを規定する。記録媒体に記録されているタイトルとは、タイトル番号によって特定される動作モードオブジェクトと、この動作モードオブジェクトから再生されるプレイリストとの組みをいう。ここでプレイリストは、ビデオストリームを含むデジタルストリームに再生順序を規定することで特定される再生単位である。
【0079】
ここで、タイトル番号レジスタにおけるタイトル番号は、0、1〜999、不定値(0xFFFF)という番号がある。タイトル番号0は、トップメニュータイトルのタイトル番号である。トップメニュータイトルとは、ユーザによるメニューコール操作によって呼び出すことができるタイトルである。不定値(0xFFFF)のタイトル番号は、ファーストプレイタイトルのタイトル番号である。ファーストプレイタイトルとは、記録媒体の装填直後に、視聴者への警告やコンテンツプロバイダによるロゴ表示等を行うタイトルである。
【0080】
インデックステーブルは、各タイトル番号のそれぞれに対応したエントリー(インデックステーブルエントリー)を有し、個々のインデックステーブルエントリーに、動作モードを規定する動作モードオブジェクトを記述することで、各々のタイトルが、どのような動作モードで動作するのかを詳細に規定する。
再生装置においてタイトル番号レジスタの値は、記録媒体の装填後、不定値0xFFFF→1〜999→0というように変化する。このタイトル番号の変化は、記録媒体の装填時に、ファーストプレイタイトルの再生を開始し、ファーストプレイタイトルの再生後、1から999までのタイトル番号レジスタのタイトル番号で指示されるタイトルの再生を行い、タイトル番号で指示されるタイトルの再生が終了すれば、トップメニュータイトルを再生してユーザによる選択待ちを行うというものである。1〜999のタイトル番号をもつタイトルのうち、タイトル番号レジスタに格納されているタイトル番号と、同じタイトル番号をもつものが、現在の再生対象、つまりカレントタイトルになる。タイトル番号レジスタにどのような番号を設定するかは、トップメニュータイトルに対するユーザ操作や、プログラムによるタイトル番号レジスタの設定によって決定される。
【0081】
以上がインデックステーブルについての説明である。続いて、動作モードオブジェクトの詳細について説明する。
動作モードオブジェクトは、プレイリストと、アプリケーションとの関連付けにより、タイトルを定義する情報である。図22は、動作モードオブジェクトの内部構成の一例を示す図である。本図に示すように、動作モードオブジェクトは、「アプリケーション管理テーブル」、「端末管理テーブル」、「アプリケーションキャッシュ情報」、「プレイリストアクセス情報」、「キーインタレストテーブル」から構成される。

「アプリケーション管理テーブル」は、複数のエントリーを含む。引き出し線bj1は、アプリケーション管理テーブルにおけるエントリーをクローズアップして示している。この引き出し線に示すように、アプリケーション管理テーブルのエントリーは、タイトルにおいて、アプリケーションを自動的に起動させるべきか(AutoStart)、他のアプリケーションからの呼出しを待って起動すべきか(Present)という起動の仕方を示す「制御コード」と、JARファイルのファイル名となる5桁の数値を用いて、対象となるアプリケーションを示す「アプリケーションID」と、「アプリケーション詳細情報」を含む。引き出し線bj2は、「アプリケーション詳細情報」の内部構成をクローズアップして示している。本引出線に示すように、「アプリケーション詳細情報」は、アプリケーションがロードされる場合の「優先度」と、アプリケーションがタイトルアンバウンドであるか否か、ディスクバウンドであるか否かを示す「バインディング情報」と、アプリケーションの名称を示す文字列と、アプリケーションの言語属性を示す「言語コード」と、アプリケーションに対応づけるアイコンの所在を指し示す「アイコンロケータ」とを、アプリケーション毎にして格納している。
【0082】
アプリケーション管理テーブルは、タイトルを生存区間として管理することで、各アプリケーションによるメモリリソースなどの消費を、タイトルという再生単位を区切りにて管理することができる。これによりたとえ、あるタイトルの再生中に複数のアプリケーションによるリソースの利用が競合して、デッドロック状態に陥ったとしても、ユーザによって別のタイトルが選択されれば、それらアプリケーションは全て終了させられるので、デッドロック状態は、強制的に解消することになる。また、あるタイトルの再生中に暴走したアプリケーションがメモリを占有したとしても、ユーザによって別のタイトルが選択されれば、そのアプリケーションは強制的に終了させられるので、メモリ容量の圧迫は、強制的に解消することになる。こうすることで不要なメモリリソースを消費しない、安定したメモリリソースの管理を実現することができる。安定したメモリリソースの管理を実現することができるので、メモリリソースの容量が限られた家電機器の実装において、より真価を発揮する。
【0083】
「端末管理テーブル」は、動作中のアプリケーションが、欧州デジタル放送端末(DVB-MHP)が実現しているような、HAViインターフェイスによるGUIを表示する際の処理を規定する管理テーブルであり、GUI表示を実行するにあたってのコンフィグレーション情報や、GUIに用いるフォントデータ、GUIに対するメニューコール、タイトルコールがユーザによってなされた場合、これらのコールをマスクするかどうかを規定するマスクフラグを含む。このコンフィグレーション情報は、動作モードオブジェクト内のアプリケーション管理テーブルによって起動されるべきアプリケーションがグラフィクスを描画するにあたって、再生されるビデオストリームの解像度に対応付けられた規模のグラフィクスプレーンを前記再生装置が備えるメモリデバイス上に確保するよう前記再生装置に指示する情報である。引き出し線bj3は、端末管理テーブルの内部構成をクローズアップして示している。この引き出し線bj3に示すように、端末管理テーブルは、HD3D_1920×1080、HD3D_1280×720、HD_1920×1080、HD_1280×720、QHD_960×540,SD,SD_50HZ_720×576,SD_60HZ_720×480の何れかに設定することができる。
【0084】
「アプリケーションキャッシュ情報」は、動作モードオブジェクトに対応するタイトルがカレントタイトルになった際、当該タイトルにおけるAV再生が開始されるまでに、どのアプリケーションを構成するファイルを、プラットフォーム内のキャッシュに読み込むべきかを示す情報であり、アプリケーション管理テーブルにより生存区間が規定されたアプリケーションに対応付けられたエントリーを含む。各エントリーは、アプリケーション管理テーブルにより生存区間が規定されたアプリケーションのそれぞれをプラットフォームにおけるキャッシュに読み込ませる旨を再生装置に指示する情報であり、各エントリーに付与された順位は、その順位がもっとも高いエントリーに対応するアプリケーションを最初にプラットフォームのキャッシュに読み込ませ、それ以降、順位が高い順に、残りのエントリーに対応するアプリケーションを、キャッシュフルになるまで、順次プラットフォームのキャッシュに読み込ませる旨を再生装置に指示する。こうすることで、低速な光ディスク媒体からバイトコードアプリケーションのクラスロードを行う場合でも、クラスロードが長くかかることによるスタートアップディレイを低減することができる。
【0085】
「プレイリストアクセス情報」は、動作モードオブジェクトに対応するタイトルがカレントタイトルになった際、自動的に再生されるべき自動再生プレイリストの指定を含む。また、プレイリストアクセス情報は、動作モードオブジェクトに対応するタイトルがカレントタイトルになった際、動作させることができるアプリケーションが選択できるプレイリストの指定を含む。引き出し線bj4は、自動再生プレイリストを指定する情報の内部構成をクローズアップして示している。引出線bj4に示すように、自動再生プレイリストを指定する情報として、3Dプレイリスト1920×1080、3Dプレイリスト1280×720、2Dプレイリスト1920×1080、2Dプレイリスト1280×720、2Dプレイリスト720×576、2Dプレイリスト720×480の指定が可能になる。
【0086】
何れかのタイトルが選択された際、再生装置は、選択されたカレントタイトルに対応するもののプレイリストアクセス情報により指定されたプレイリストの再生を、アプリケーションからの再生指示を待つことなく開始し、プレイリスト再生の終了よりも、バイトコードアプリケーション実行が先に終了した場合、プレイリストの再生を継続して行う。
こうした先行再生により、アプリケーションのクラスロードに時間がかかり、描画イメージが表示されないため、対話画面がなかなか出力されないような場合、プレイリスト再生による再生映像がそのまま出力させるので、アプリケーションにおける起動遅延が顕著な場合でも、とりあえずプレイリストの再生映像をユーザに視聴させることができる。アプリケーションのスターティングディレィの間、何かが写っている状態にしておくことができるので、ユーザに安心感を与えることができる。
【0087】
また終了が同時でないため、リソースの枯渇によってアプリケーションが異常終了し、アプリケーションのGUIが自動的に消去されたとしても、プレイリスト再生画面の表示をそのまま継続していれば、プレイリストの再生映像が、表示装置に出力される。かかる出力継続によって、たとえバイトコードアプリケーションが異常終了したとしても、表示装置は、とりあえず何かが写っているという状態になり、アプリケーションの異常終了によって、画面がブラックアウトするという事態を防ぐことができる。
【0088】
「キーインタレストテーブル」は、再生キーエントリー、停止キーエントリー、早送りキーエントリー、巻戻しキーエントリー、上方向キーエントリー、下方向キーエントリー、右方向キーエントリー、左方向キーエントリーなど、再生装置におけるリモコンに備え付けられているそれぞれのキーについてのエントリから構成される。これらのキーエントリーは、対象となるキーが押下された際、キーイベントを発生させるか、発生させないかが設定される。ユーザ操作に応じてイベントが発生した場合、再生装置のイベントマネージャは、発生したイベントがキーインタレストテーブルに記載されているかどうかを判定する。そして記載されているなら、そのイベントをバイトコードアプリケーションに処理させるべく、キーイベントを出力する。
【0089】
一方、発生したイベントがキーインタレストテーブルに記載されていない場合、再生装置のオペレーションマネージャは、そのイベントに対応するAV機能を再生制御エンジンに実行させる。こうすることで、バイトコードアプリケーションにイベントの対応漏れや、バグがあったとしても、オペレーションマネージャにより、再生制御エンジン部に対する再生制御が行われることになる。アプリケーションにバグがあったとしても違和感がない制御がなされることは、キーインタレストテーブル側から保証されているので、アプリケーションを開発するソフトハウスは、バグの発生等に躊躇することなく、他社にはない再生制御を実現することができる。
【0090】
図23は、タイトル切り替え時におけるプレーンメモリの解像度設定の処理手順の一例を示すフローチャートである。本フローチャートは、ステップS31、ステップS32、ステップS33、ステップS36の判定結果に応じて、ステップS34、ステップS35、ステップS37の処理を選択的に実行する。
ステップS31は、自動再生プレイリストが存在するかどうかの判定であり、ステップS32は、直前の表示モードは3Dであるか否かの判定である。ステップS33は、選択されたタイトルの自動再生プレイリストが、1920×1080の3Dプレイリスト又は1280×720の3Dプレイリストであるかどうかの判定である。
【0091】
自動再生プレイリストが存在しない場合、ステップS36において動作モードオブジェクトのデフォルト解像度がHD3D_1920×1080、HD3D_1280×720であるかどうかが判定され、もしYesであれば、ステップS35において、表示モードを3Dに設定し、動作モードオブジェクトにおけるデフォルト解像度に応じて1920×1080、あるいは1280×720に設定する。もしNoであれば、ステップS37において表示モードを2Dに設定し、解像度を動作モードオブジェクトにおけるデフォルト解像度に設定する。
【0092】
自動再生プレイリストが存在しない場合、ステップS32において直前の表示モードが2Dであるかどうか、又は、ステップS33においてプレイリストが3Dプレイリストで、その解像度が1920×1080、1280×720であるがどうかを判定する。ステップS32、ステップS33のどちらかがNoであれば、ステップS34において表示モードを2Dに設定し、解像度を、自動再生プレイリストの解像度に設定する。
【0093】
ステップS32がYes、ステップS33もYesと判定された場合、ステップS35において、表示モードを3Dに設定し、解像度を、自動再生プレイリストの解像度に応じて1920×1080、又は、1280×720に設定する。

本実施形態では、イメージプレーンを含むプレーンメモリのアクセスのため、バイトコードアプリケーションは、getCurrentConfigurationメソッド、getBestConfigurarionメソッド、setConfigurationメソッド、setCoherentConfigurarionメソッドを利用することができる。
【0094】
getCurrentConfigurationは、プレーンメモリの表示設定をバイトコードアプリケーションに取得させるためのAPIである。
getBestConfigurationメソッドは、バイトコードアプリケーションに、再生装置における個々のプレーンの最善の設定情報を返す。
setConfigurationメソッドは引数に指定したプレーンに対する設定のみを変更するためのものである。
【0095】
setCoherentConfigurationsメソッドは、複数のプレーンメモリに共通に設定される。例えば引数として解像度を指定し、setCoherentConfigurationsメソッドを呼出せば、個々のプレーンメモリの解像度を同一にすることができる。
よって、タイトル起動時に、動作モードオブジェクトの端末管理テーブル、又は、プレイリストアクセス情報にて設定されたイメージプレーンの解像度を、getCurrentConfigurationメソッドを用いて取得して取得した解像度を用いて左右のイメージプレーンに表示すべき描画イメージの描画発生を調整し、位置決めを行ってからStereoGraphics#drawImageメソッドを発行する。
【0096】
または、getCurrentConfigurationメソッドを用いて取得した解像度が、描画イメージに適合した解像度であるか否かを判定して、描画イメージに適合した解像度であればそのままStereoGraphics#drawImageメソッドを発行する。
描画イメージに不適合な解像度であれば、setConfigurationメソッドを用いてイメージプレーンを適切な解像度に設定した上でStereoGraphics#drawImageメソッドをコールする。
【0097】
バイトコードアプリケーションは、以上の過程で指定されたイメージプレーンの解像度を、アプリケーションプログラムインターフェイスを介して取得することができるので、StereoGraphics#drawImageメソッドの呼び出しにあたって、最適な矩形範囲の指定が可能になる。
以上のように本実施形態によれば、動作モードオブジェクトにおける端末管理テーブル、及び、プレイリスト管理テーブルにて指定されたイメージプレーンの座標系において、描画イメージを描画すべき矩形範囲を定めることができる。
【0098】
(第4実施形態)
本実施形態は、これまでの実施形態の統合であり、記録媒体100をBD-ROMとして構成し、再生装置200をBD-ROM再生装置として構成する場合の形態である。
本実施の形態では、立体表示を行う対象映像は、BD-ROM記録媒体に記録されているものを再生して視聴することを前提にする。BD-ROM規格では、BD-ROM規格に準拠した形式でローカルストレージ内あるいは、リムーバブルメディアに記録されているデータを再生することも可能である。これらを含めて再生装置200によって立体視映像表示が実施される形態を説明する。もちろん本実施例の変形としては、立体表示を行う対象映像は例えば放送波などの無線、ケーブルなどの有線、あるいは他の記録媒体を介して提供されていても構わない。
【0099】
続いて再生装置200が再生の対象としている、BD-ROM100の内部構成について説明する。図24は、BD-ROM100の内部構成を示す図である。
本図の第4段目にBD-ROMを示し、第3段目にBD-ROM上のトラックを示す。本図のトラックは、BD-ROMの内周から外周にかけて螺旋状に形成されているトラックを、横方向に引き伸ばして描画している。このトラックは、リードイン領域と、ボリューム領域と、リードアウト領域とからなる。また、リードインの内側にはBCA(Burst Cutting Area)と呼ばれる領域があり、この領域から情報を読み出すことができることのできる主体は制限されているため、例えば著作権保護技術などに利用される。
【0100】
本図のボリューム領域は、物理層、ファイルシステム層、応用層というレイヤモデルをもち、ボリューム領域には、ファイルシステム情報(ボリューム)を先頭に映像データなどのアプリケーションデータが記録されている。ファイルシステムとは、UDFやISO9660などのことであり、通常のPCと同じように記録されている論理データをディレクトリ、ファイル構造を使って読み出しする事が可能になっており、255文字のファイル名、ディレクトリ名を読み出すことが可能である。
【0101】
ディレクトリ構造を用いてBD-ROMの応用層フォーマット(アプリケーションフォーマット)を表現すると、図中の第1段目のようになる。この第1段目においてBD-ROMには、Rootディレクトリの下に、CERTIFICATEディレクトリ、及びBDMVディレクトリがある。
BDMVディレクトリはBD-ROMで扱うAVコンテンツや管理情報などのデータが記録されているディレクトリであり、BDMVディレクトリの配下には、PLAYLISTディレクトリ、CLIPINFディレクトリ、STREAMディレクトリ、BDJOディレクトリ、JARディレクトリ、METAディレクトリと呼ばれる6つのサブディレクトリが存在し、先の実施形態で述べたインデックステーブルを格納したファイルであるINDEX.BDMVと、DVDと互換がある制御を実現するプログラムを格納したMovieObject.bdmvの2種類のファイルが配置されている。
【0102】
STREAMディレクトリには、いわばトランスポートストリーム本体となるファイルを格納しているディレクトリであり、拡張子”m2ts”が付与されたファイル(00001.m2ts)が存在する。
PLAYLISTディレクトリには、拡張子”mpls”が付与されたファイル(00001.mpls)が存在する。
【0103】
CLIPINFディレクトリには、拡張子”clpi”が付与されたファイル(00001.clpi)が存在する。
BDJOディレクトリには、拡張子”bdjo”付与されたファイル(XXXXX.bdjo)が存在する。
JARディレクトリには、拡張子”jar”が付与されたファイル(YYYYY.jar)が存在する。
【0104】
METAディレクトリには、XMLファイル(ZZZZZ.xml)が存在する。
以下、これらのファイルについて説明する。

先ず初めに、拡張子”m2ts”が付与されたファイルについて説明する。拡張子”m2ts”が付与されたファイルは、MPEG-TS(TransportStream)形式のデジタルAVストリームを格納したストリームファイルであり、これまでの実施形態で説明したビデオストリーム、1つ以上のオーディオストリーム、グラフィクスストリーム、テキスト字幕ストリーム等を多重化することで得られる。ビデオストリームは映画の動画部分を、オーディオストリームは映画の音声部分をそれぞれ示している。

拡張子”mpls”が付与されたファイルは、再生装置にプレイリストを再生させるための情報を格納したファイルである。”プレイリスト”とは、トランスポートストリーム(TS)の時間軸上で再生区間を規定するとともに、この再生区間同士の再生順序を論理的に指定することで規定される再生経路であり、TSのうち、どれをどの部分だけ再生して、どのような順序でシーン展開してゆくかを規定する役割をもち、プレイリスト情報は、かかるプレイリストの”型”を定義する。プレイリスト情報によって定義される再生経路は、いわゆる”マルチパス”である。マルチパスとは、主となるTSに対して定義された再生経路(メインパス)と、従となるストリームに対して定義された再生経路(サブパス)とを束ねたものである。このマルチパスにおいて左目用のビデオストリームの再生経路を規定し、サブパスにおいて右目用のビデオストリームの再生経路を規定すれば、立体視を再生するためのビデオストリームの組合せを、好適に規定することができる。
【0105】
かかるマルチパスの再生時間軸には、チャプター位置が定義される。このチャプター位置を再生装置に参照させることにより、マルチパスの時間軸に対する任意の時点に対するランダムアクセスを再生装置に実現させる。再生制御のためのJava(TM)アプリケーションが、このプレイリスト情報を再生するJMFプレーヤインスタンスの生成をJava(TM)仮想マシンに命じることで、マルチパスによるAV再生を開始させることができる。JMF(JavaMedia Frame work)プレーヤインスタンスとは、JMFプレーヤクラスを基にして仮想マシンのヒープメモリ上に生成される実際のデータのことである。


拡張子”clpi”が付与されたファイルは、MPEG2形式のストリームファイルのそれぞれに1対1に対応するClip情報ファイルである。このClip情報ファイルを通じることにより、ストリームファイルは”AVClip”として管理されることになる。Clip情報は、AVClipにおけるストリームの符号化形式、フレームレート、ビットレート、解像度等の情報や、GOPの先頭位置を示すEP_mapをもっているので、ストリームファイルのアクセスに先立ち、このクリップ情報をメモリにロードしておけば、アクセスしようとするストリームファイル中のトランスポートストリームがどのようなものであるのかを把握することができる。以上のClip情報及びPL情報は、”静的シナリオ”に分類される。

拡張子BDJOを付したファイルは、BD-Jオブジェクトを格納したファイルである。BD-Jオブジェクトとは、先の実施形態で述べた動作モードオブジェクトのことであり、BD-Javaアプリケーションを実行する際に使用される各種の情報を含んでいる。BD-ROM規格では、映像の再生中にアプリケーションプログラムを実行することによって、動的な再生制御や、再生中のユーザとのインタラクション等、映像の再生を行いながら任意の計算機処理を行わせることが可能である。BD-ROMではこのアプリケーションプラットフォーム規格としてJava(登録商標)が用いられており、BD-ROM規格上で採用されるJava(登録商標)プラットフォームは、BD-Java、あるいはBD-Jと呼ばれ、その実行アプリケーションはBD-Javaアプリ、あるいはBD-Jアプリと呼ばれる。

JARファイルは、BD-Jアプリケーションのクラス構造体のファイル(クラスファイル)を、デジタル証明書マニフェストファイル、ディスク署名シグネチャファイル、ディスク署名暗号鍵ファイル、パーミッションリクエストファイルとひとまとめにしてアーカイブしたファイルである。上述したようなアプリケーションキャッシュ情報によるキャッシュへのロードは、このJARファイルをひとまとめにしてなされる。
【0106】
以下、JARファイルにアーカイブされているデータ要素について説明する。
(i)クラス構造体のファイルにて定義されるBD-Jアプリケーションは、Xletインターフェイスを通じて、プラットフォーム内のアプリケーションマネージャにより、制御されるJava(TM)Xletである。Xletインターフェイスは、”loaded”,”paused”、”active”,”destroyed”といった4つの状態をもち、イベントドリブンつまり、イベントによって状態遷移を行うとともに制御を実行する。xletインターフェイスでは、アプリケーションの動作のトリガとなるキーイベントが予め登録される。このように、動作のトリガとなるキーイベントの登録は、イベントリスナによってなされる。
【0107】
(ii)デジタル証明書マニュフェストファイルは、デジタル証明書に対応するものであり、Java(TM)アーカイブファイルの属性、Java(TM)アーカイブファイル内のクラスファイルやデータファイルのハッシュ値が記載されているマニフェストファイルである。
(iii)ディスク署名シグネチャファイルは、マニフェストファイルのハッシュ値が記載されているシグネチャファイルである。
【0108】
(iv)ディスク署名暗号鍵ファイルは、「デジタル証明書チェーン」と、シグネチャファイルの「署名情報」とが記載されているファイルである。
「署名情報」は、署名処理をデジタル署名シグネチャファイルに施すことで得られる。これらの署名処理には、デジタル署名シグネチャファイル内のデジタル証明書チェーンにおける公開鍵に対応する秘密鍵が用いられる。
【0109】
「デジタル証明書チェーン」とは、一つ目の証明書(ルート証明書)が二つ目の証明書を署名し、また同じようにn番目の証明書がn+1番目の証明書を署名している形をもつ複数の証明書群である。デジタル証明書チェーンの最後の証明書を「リーフ証明書」と呼ぶ。この構成を利用することにより、ルート証明書から順番に次の証明書を保障していくことにより、デジタル証明書チェーンの最後の証明書までを保障することができる。
【0110】
(v)パーミッションリクエストファイルは、実行されるJava(TM)アプリケーションにどのパーミッションを与えるのかの情報を格納する。具体的に、クレデンシャル(デジタル信用証明書)、アプリ間通信の許可情報を含む。
”クレデンシャル”とは、ある組織に帰属する組織ディレクトリ内のファイルを共有化するための情報である。この共有化は、ある組織に属するアプリケーション用ファイルを利用する権限を、他の組織に属するアプリケーションに提供することでなされる。そのためクレデンシャルは、権限を提供する側の組織を示す提供者組織ID、権限を受領する側の組織の識別を示す受領者組織IDを含む。
【0111】
(vi)これらのファイル以外にも、PNGファイルが格納される。PNGファイルは描画イメージを定義するデータ構造体であり、本実施形態では、描画イメージを定義するデータ構造体をBD-Jアプリケーションのクラス構造体と共にJARファイルに格納して、ロードすることができる。
BD-Jアプリケーションを規定するクラスファイルは、以上のシグネチャファイル、マニフェストファイル、デジタル証明書チェーン、パーミッションリクエストファイルとひとまとめにされて、ロードされるので、再生装置は、BD-Jアプリケーションを動作させるにあたって、マニフェストファイル、デジタル証明書チェーン、パーミッションリクエストファイルを用いて、BD-Jアプリケーションを署名することができる。このように、マニフェストファイル、デジタル証明書チェーン、パーミッションリクエストファイルを用いて署名されたBD-Jアプリケーションを、”Signedアプリケーション”という。一方、署名がなされず、その権能の一部又は全部が制限されたBD-Jアプリケーションを”Un-Signedアプリケーション”という。以上の署名により、BD-Jアプリケーションの動作は、コンテンツの作りにとって不利にならないものに制限される。以上のパーミッションリクエストファイルを用いれば、StereoGraphics#drawImageメソッドによる描画やその他、立体視再生を実現するためのプレーンメモリへの書き込みを、ある特定の権限が付与されたBD-Jアプリケーションに限定することができる。

METAディレクトリに格納されたメタファイル(ZZZZZ.xml)には、ディスクに入っている映像作品に関する様々な情報が格納されている。メタファイルに格納されている情報としては、ディスクのディスク名及び画像、ディスクの作成主体者の名称の情報、各タイトルに関わるタイトル名等がある。
【0112】
以上がBDMVディレクトリの説明である。
CERTIFICATEディレクトリの下には、ディスクのルート証明書のファイル(app.discroot.cert)が存在する。
これはBD-Jアプリを実行する際に、アプリケーションが改竄されていないか、及びアプリケーションの身元確認を行なうプロセス(以下、署名検証という)に用いられるデジタル証明書の情報が含まれている。
【0113】
以上がBD-ROM100についての説明である。メタファイルなど一部のファイルはBD-ROM規格では必ずしも必須とされておらず、一部のファイルが存在していなくともBD-ROM100は映像記録媒体としてBD-ROM規格のもと再生可能である。
次に本実施形態に係る再生装置200の詳細について説明する。
図25は、第4実施形態に係る再生装置の内部構成を示すブロック図である。図25に示すように、再生装置は、BDドライブ1、トラックバッファ2、デマルチプレクサ3、ビデオデコーダ4、左ビデオプレーン5、右ビデオプレーン6、イメージメモリ7、イメージデコーダ8、左イメージプレーン9、右イメージプレーン10、静的シナリオメモリ11、動的シナリオメモリ12、制御部13、HDMVモジュール14、BD-Jモジュール15、モード管理モジュール16、ディスパッチャ17、AV再生制御エンジン18、アプリデータ関連付けモジュール19、プレーン合成部20、UO探知モジュール21、レンダリングエンジン22、ネットワークインターフェース23、ローカルストレージ24、仮想ファイルシステム25、オーディオデコーダ26、リムーバブルメディア27、次元判定部28、次元モード記憶部29、左右描画処理調停部30から構成される。
【0114】
BDドライブ1は、BD-ROMのローディング/イジェクトを行い、BD-ROMに対するアクセスを実行する。
トラックバッファ2は、FIFOメモリであり、BD-ROMから読み出されたデジタルストリームを構成するソースパケットが先入れ先出し式に格納される。
デマルチプレクサ3は、仮想ファイルシステム25を通じて、BDドライブ1にローディングされているBD-ROM、またはローカルストレージ24上、またはリムーバブルメディア27に保存されているトランスポートストリームの多重分離を行う。多重分離によって得られる、GOPを構成するビデオフレームは、ビデオデコーダ4に出力され、同じくGOPと同時に再生されるべきオーディオフレームはオーディオデコーダ26に出力される。同じく多重分離によって得られるグラフィックストリームは、イメージメモリ7に格納され、同じく多重分離によって得られるシナリオ情報は動的シナリオメモリ12に格納される。デマルチプレクサ3による多重分離は、TSパケットをPESパケットに変換するという変換処理を含む。また、デマルチプレクサ3は、次元判定部28を用いて、立体視(3D)用の処理を行うか2D用の処理を行うかを切り替える。
【0115】
ビデオデコーダ4は、Multiview Video Coding(MVC)と呼ばれるMPEG-4 AVC/H.264の修正規格に準拠したデコーダであり、MPEG-4 AVCに基づき符号化された圧縮状態のビデオストリームを、映像の時間方向の類似性、視点間の類似性に基づき動き予測を行うことで、デコードする。
左ビデオプレーン5および右ビデオプレーン6は、ビデオデコーダ4のデコードによって得られた非圧縮形式のピクチャを格納するためのメモリであり、それぞれ左眼用のビデオのピクチャ、右眼用のビデオのピクチャが格納される。
【0116】
イメージメモリ7は、BD-J端末において仮想ファイルシステム25から読み出されたグラフィックストリームや字幕データ、あるいは画像イメージ等のイメージデータを格納するバッファである。
イメージデコーダ8は、イメージメモリ7に格納されたグラフィックストリーム、あるいは字幕データ、あるいはイメージデータをデコードして左イメージプレーン9および右イメージプレーン10に書き込む。
【0117】
左イメージプレーン9および右イメージプレーン10は、BD-J端末においてGFXプレーンと呼ばれるプレーンメモリであり、それぞれ左眼用のイメージデータ、右眼用のイメージデータを非圧縮形式で格納する。BD-ROMにおいては、イメージプレーンに相当するものは複数用意されており、それぞれを独立させてビデオプレーンに重畳させることができる。具体的には、イメージデコーダ8から出力されたグラフィックストリーム・字幕データ・イメージデータや、レンダリングエンジン22によって行われる描画処理の結果生成されるイメージデータ、さらに図には記載していないが背景(スチル)用プレーンが挙げられる。しかし本実施の形態の中では、説明を簡単にするためにイメージプレーンを1枚として説明するものとし、以降では特にレンダリングエンジン22によって行われる描画処理を中心とした記載を行う。
【0118】
静的シナリオメモリ11は、カレントプレイリストやカレントのストリーム管理情報を格納しておくためのメモリである。カレントプレイリストとは、仮想ファイルシステム25から読み出すことのできるPLのうち、その時点での処理対象になっているものをいう。カレントストリーム管理情報とは、仮想ファイルシステム25から読み出すことのできる複数ストリーム管理情報のうち、その時点での処理対象になっているものをいう。
【0119】
動的シナリオメモリ12は、カレント動的シナリオを格納し、HDMVモジュール14、BD-Jモジュール15による処理に供されるメモリである。カレント動的シナリオとは、仮想ファイルシステム25から読み出すことのできる複数シナリオ情報のうち、その時点での実行対象になっているものをいう。
制御部13は、ROM、RAM、CPUからなるマイコンシステムであり、ROMには再生装置を制御するプログラムが記録されており、ROM内のプログラムがCPUに読み込まれ、プログラムとハードウエア資源とが協動することにより、HDMVモジュール14、BD-Jモジュール15、モード管理モジュール16、ディスパッチャ17、AV再生制御エンジン18、アプリデータ関連付けモジュール19、左右描画処理調停部30の機能を実現する。
【0120】
HDMVモジュール14は、DVD映像仮想プレーヤである。HDMV(High Definition Movie Mode)とは、DVDとの親和性のある映像再生形式である。
BD-Jモジュール15は、第1実施形態に示したプラットフォーム部の構成要素のうち、ヒープメモリ111、バイトコードインタプリタ112、クラスローダ113、アプリケーションマネージャ114によって構成される部分に対応する機能モジュールであり、BD-Jアプリを実行する。
【0121】
モード管理モジュール16は、仮想ファイルシステム25から読み出されたモード管理テーブルを保持して、モード管理及び分岐制御を行う。モード管理モジュール16によるモード管理とは、動的シナリオをどのHDMVモジュール14、BD-Jモジュール15に実行させるかという、モジュールを割り当てる処理を実施する。
ディスパッチャ17は、UO検知モジュール21により受け取ったユーザの操作(ユーザオペレーション、以下UOとも記す)から、現在の再生装置におけるモードに適切なUOのみを選んで、そのモードを実行するモジュールに渡す。例えばHDMVモードの実行中に、上下左右、アクティベートといったUOを受け付けた場合、HDMVモードのモジュールにこれらのUOを出力するのがディスパッチャ17の処理である。
【0122】
AV再生制御エンジン18は、HDMVモジュール14、あるいはBD-Jモジュール15からの呼び出しに応じて、AV再生機能、プレイリストの再生機能を実行する。AV再生機能とはBD-ROMにて定義されている、DVDプレーヤ、CDプレーヤから踏襲した機能群であり、再生開始、再生停止、一時停止、一時停止の解除、静止画機能の解除、再生速度を即値で指定した早送り、再生速度を即値で指定した巻戻し、音声切り替え、副映像切り替え、アングル切り替えといった処理である。プレイリスト再生機能とは、このAV再生機能のうち、再生開始や再生停止をプレイリスト情報に従って行う。
【0123】
アプリデータ関連付けモジュール19は、仮想ファイルシステム25から読み出される情報と、機器内で計算した結果、及びアプリケーションが設定する属性情報を元に、アプリケーション関連付け情報を生成、及び更新する機能を有している。
UO検知モジュール21は、装置の視聴者が再生装置に対して入力を実施したユーザの操作(UO)を受け取る。これは例えばリモコン・コントローラのような遠隔機器で入力されるものである場合もあるし、機器に対して設置されるボタンのようなインタフェースによって直接入力されるものである場合もある。
【0124】
プレーン合成部20は、左ビデオプレーン5または右ビデオプレーン6に格納されている非圧縮形式のビデオのピクチャデータと、左イメージプレーン9または右イメージプレーン10に格納されているイメージデータとの合成処理を行い、結果を映像として出力する。またプレーン合成部20は、1プレーン分の合成処理が完了した時点で、左右どちらのプレーンを対象とする合成処理が完了したかを通知する合成処理完了通知を、左右描画処理調停部30に対して行う。
【0125】
レンダリングエンジン22は、左イメージプレーン9および右イメージプレーン10に対する描画処理を行う。BD-Jモジュール15は、色指定を伴った線や矩形等図形の描画、指定領域の塗りつぶし、指定されたイメージのコピー・ペースト等の描画処理を、レンダリングエンジン22を通じて左イメージプレーン9および右イメージプレーン10に対して行うライブラリを有しており、BD-Jアプリはこれらの描画処理の要求を連続的に発行することで、様々なグラフィクス描画処理を実現することができる。
【0126】
ネットワークインターフェース23は、インターネット上に公開されたBD-ROM追加コンテンツのダウンロードに用いられる。BD-ROM追加コンテンツとは、オリジナルのBD-ROMにないコンテンツで、例えば追加の副音声、字幕、特典映像、アプリケーションなどである。BD-Jモジュール15からネットワークインターフェース23を制御することができ、インターネット上に公開された追加コンテンツをローカルストレージ24やリムーバブルメディア27にダウンロードすることができる。
【0127】
ローカルストレージ24は、再生装置に内蔵されているハードディスク等の磁気記録装置である。BD-ROM100に記録されているファイル形式またはそれに準ずる形で、トランスポートストリームや再生に使用する各種のデータを記録する。
仮想ファイルシステム25は、BD-ROM100あるいは、ローカルストレージ24あるいは、リムーバブルメディア27に記録されているファイルに対するリード・ライト機構を提供するファイルシステムである。
【0128】
BD-ROMの再生時に必要とされるファイルアクセスは、通常BD-ROM100に対して行われるが、仮想ファイルシステム25はローカルストレージ24あるいはリムーバブルメディア27に存在するファイルを、あたかもBD-ROM100上に記録されているファイルであるかのように仮想的にファイルのアドレス変換を行う機構を備える。すなわち本仮想ファイルシステム25はファイルの物理的な記録先を抽象化する機構を提供する。
【0129】
オーディオデコーダ26は、デマルチプレクサ3から出力されたオーディオフレームを復号して、非圧縮形式のオーディオデータを出力する。
リムーバブルメディア27は再生装置に装着された外部スロットから挿入される記憶媒体である。記憶媒体の種類は典型的にはSDカードなどのフラッシュメディアが利用されるが、USBメモリ、リムーバブルハードディスク、その他任意の種類の記憶媒体であってもよい。
【0130】
次元判定部28は、再生対象の映像が、立体視(3D)用のものであるか、2D用のものであるかを判定し、その結果を次元モード記憶部29に出力する。判定は、カレントプレイリストあるいはカレントストリームの中に、立体視(3D)に対応する映像か対応しない映像かのフラグが含まれている場合には、これを使用することにしてもよいし、あるいは再生装置を鑑賞するユーザの指定によって切り替えが行われるようになっていてもよい。
【0131】
次元モード記憶部29は、その時点で再生されている映像が、立体視(3D)用のものであるか、通常の2D用のものであるかを記憶する。
左右描画処理調停部30は、ミドルウェア115の構成要素であり、BD-Jモジュール15から連続的に発行される描画要求の中から左イメージプレーン9への描画要求と右イメージプレーン10への描画要求のセットを抽出する。立体視のグラフィックスを描画する典型的なBD-Jアプリでは、ある一つの描画対象オブジェクトについて、左眼視点から見た形状を左イメージプレーン9に描画し、右眼視点から見た形状を右イメージプレーン10に描画するというセットの処理を連続して行うことが多いと想定される。そこで、これらセットを成す描画処理に対応している描画要求の対を抽出し、プレーン合成部20が左眼と右眼の視覚の不整合を生じさせるような映像を出力しないように、レンダリングエンジン22の描画処理のタイミングおよび描画順序を制御することで、立体視映像のちらつきを抑制することが可能となる。
【0132】
描画要求のセットの抽出およびレンダンリングエンジン22の描画処理の制御に関する具体的な方法については後述する。
本実施の形態では以下、プレイリスト中に3D用か2D用かを識別する次元識別フラグを有しているものとして説明する。
先ず、本再生装置がどのようにして3D映像を作り出すかを図25に示される構成図をもとに説明する。BD-ROM上に配置されたストリームは、右眼用ストリームと左眼用ストリームを別々に記録していても良いし、一つのストリームファイルに規則を持って埋め込んでおいても良いが、本実施の形態においては、予め一つのストリームファイルに右眼用ストリームと左眼用ストリームが埋め込まれていることを前提に記載する。
【0133】
デマルチプレクサ3はストリームのヘッダ情報から左眼用ストリームと右眼用ストリームの振り分けを行う。
本実施の形態における再生装置200は、一組のビデオデコーダと左眼用のビデオプレーンである左ビデオプレーン5と右眼用のビデオプレーンである右ビデオプレーン6を持ち、立体視映像を出力する際にはこのビデオデコーダが左眼用の映像と右眼用の映像の処理を交互に行い、それぞれ左ビデオプレーン5と右ビデオプレーン6に交互に出力する。
【0134】
再生装置200に対して再生指示が行われると、図26に示した処理が開始される。この再生指示自体は、ユーザの再生時の指定(例えば再生ボタンの押下)に従って行われる場合、BD-ROM100の再生装置への挿入によって自動的に行われる場合、その他BD-Jモジュールを含む、何らかの装置内の設定によって自動的に行われる場合等、指示の開始はさまざまなケースが考えられる。本実施の形態では、任意の形式によって開始されたものと考えてよい。
【0135】
図26は、左右プレーンの交互出力を実現する場合のフレーム処理の処理手順を示すフローチャートである。フレーム処理とは、映像信号のフレーム期間において、ビデオプレーンやイメージプレーンからデータを読み出し、重畳して出力するという処理である。つまり、ミドルウェアからイメージプレーンへの描画イメージの書き込みについては、第1実施形態から第3実施形態までで説明を終えているので、本実施形態ではイメージプレーン及びビデオプレーンから合成部へのデータ読み出しを中心にして説明を行う。
【0136】
ステップS401において、仮想ファイルシステム25から読み出される1つ以上のプレイリスト、複数ストリームの中から、再生処理対象として指定されたプレイリストとトランスポートストリームを抽出し、カレントプレイリスト(PL)情報とカレントストリーム管理情報に設定する。
またデマルチプレクサ3は静的シナリオメモリ11のカレントプレイリスト情報を参照し、処理対象となるトランスポートストリームを取得する。
【0137】
ステップS402においては、デマルチプレクサ3は静的シナリオメモリ11のカレントプレイリスト情報から次元識別フラグを取得し、次元判定部28に引き渡し、再生対象のストリームが2D用か3D立体視用かの判定結果を得る。
判定結果が2Dであった場合は、2Dの映像出力処理を行う。この場合、そもそもL画像とR画像は同一の画像であるか、もし別々の映像が存在していたとしても、どちらかの映像が破棄され表示されず、その結果従来のBD-ROM再生と同様の処理となる。一例として、2Dの映像出力が常に左ビデオプレーン5に出力され、イメージデコーダ8やレンダリングエンジン22は常に左イメージプレーン9にのみイメージデータを出力し、プレーン合成部20は常に左ビデオプレーン5と左イメージプレーン9の合成のみを行う構成が挙げられる。
【0138】
ステップS402の判定が3Dであった場合は、3D映像の再生を開始する。
本実施の形態では、再生装置200は、プレーン合成部20を通して、左眼用映像(L画像)の映像出力と、右眼用映像(R画像)の映像出力とを交互に繰り返すものとする。
さて、3D映像の再生が開始されると、再生装置200はステップS403L以降の処理に従って、左右の出力映像を生成する。L画像の生成処理は、ステップS403L、ステップS404L、ステップS405L、ステップS406Lに相当し、R画像の生成処理は、ステップS403、ステップS404R、ステップS405R、ステップS406Rに相当する。
【0139】
ステップS403Lの処理は、処理対象となるトランスポートストリームから、ビデオデコーダにより、左眼用のビデオピクチャを取り出し、左ビデオプレーン5に出力する。
続いてステップS404LおよびステップS405Lにおいて、プレーン合成部20は、左ビデオプレーン5のビデオピクチャと左イメージプレーン9のイメージデータについて、プレーン全体にわたって合成する処理を行う。
【0140】
ここでは、左ビデオプレーン5と左イメージプレーン9の解像度が同じで、いずれも幅Wピクセル、高さHピクセルであるものとする。この場合、合成の処理は1番上の行(y=0)から1番下の行(y=H-1)の方向に向かって順番に、左ビデオプレーン5のy行目のラインデータの上に左イメージプレーン9のy行目のラインデータを重畳して、L画像のy行目が生成され、最終的な映像出力として出力される。
【0141】
プレーン全体に対して合成処理が完了すると、プレーン合成部20はステップS406Lの処理にて、L画像の合成処理が完了したという合成処理完了通知を、左右描画処理調停部30に対して行う。
続いて、ステップS403R、ステップS404R、ステップS405R、ステップS406Rの各処理により、R画像の生成が行われるが、これらの処理はそれぞれ、ステップS403L、ステップS404L、ステップS405L、ステップS406Lと同様のものであるため、ここでは説明を省略する。
【0142】
以上が、本実施の形態におけるL画像とR画像の生成および出力である。
この構成においては、左イメージプレーン9のイメージデータ、続いて右イメージプレーン10の画像が、交互にプレーン合成部20に送られることとなる。
そのため、例えば左イメージプレーン9のイメージデータが全て送られたステップS406Lのタイミングで、レンダリングエンジン22が左イメージプレーン9および右イメージプレーン10の画像を書き換えたものとする。この場合、その後にステップS403Rが実行されることにより、プレーン合成部に送られるR画像は、書き換え後の右イメージプレーン10の格納内容となる。
【0143】
一方、プレーン合成部に送られたL画像は、既に送られた書き換え前の画像であるから、結果として出力されるL画像とR画像は、R画像だけが書き換えを反映した不整合なものとなってしまう。
そこで、本実施の形態においては、左右描画処理調停部30が図27に示したフローチャートの処理によってレンダリングエンジン22の処理タイミングを調整する。
【0144】
図27は、描画要求の発行タイミングの調整を伴う場合の左右描画処理調停部30の処理手順を示すフローチャートである。
左右描画処理調停部30は、まずステップS501により、BD-Jアプリからの描画指示に基づいてBD-Jモジュール15から描画要求が発行されるのを待つ。ステップS502において、ステップS501で受け取った描画要求の種別情報が、第1実施形態で説明した「左右同時イメージコピー」であるか否かを判定する。
【0145】
描画要求の種別が「左右同時イメージコピー」でなかった場合には、ステップS503の処理にて、レンダリングエンジン22に対して描画要求をそのまま発行する。これは従来のBD-Jモジュール15と同様の処理になるため、説明は省略する。
描画要求の種別が「左右同時イメージコピー」だった場合は、ステップS504L以降の処理に移る。「左右同時イメージコピー」の描画要求が発行される場合は、BD-Jアプリとしては、ある一つの描画対象オブジェクトについて、左眼視点から見た形状と右眼視点から見た形状をセットで描画しようとしていることが予測される。そのため、これら2つのイメージコピー処理の結果は、プレーン合成部20において確実に同一フレームの映像出力として処理される必要があり、さもなくば左右の表示の不整合を引き起こすこととなる。
【0146】
そこで、まずステップS504Lの処理にて、プレーン合成部20からL画像の合成完了通知(図26のステップS406Lにて発行されたもの)が来るのを待ってから、ステップS505Lの処理にてレンダリングエンジン22に対して左イメージプレーン9に関連するイメージコピー処理の描画要求を発行する。これらの処理により、イメージコピー処理が十分高速なハードウエア(具体的には、プレーン合成部20がR画像の合成を行っている約0.5フレーム期間内にイメージコピーが完了する場合)においては、「左右同時イメージコピー」のうち左イメージプレーン9に対するイメージコピーの結果は、次のフレーム期間において、映像出力に反映されることを保証することができる。
【0147】
続いてR画像についても同様に、ステップS504Rの処理にて、プレーン合成部20からR画像の合成完了通知(図26のステップS406Rにて発行されたもの)が来るのを待ってから、ステップS505Rの処理にてレンダリングエンジン22に対して右イメージプレーン10に関連するイメージコピー処理の描画要求を発行する。これらの処理により、「左右同時イメージコピー」のうち右イメージプレーン10に対するイメージコピーの結果は、図26においては次のフレームにおいて、映像出力に反映されることを保証することができる。
【0148】
以上の処理により、「左右同時イメージコピー」を構成する2つのイメージコピーの結果が、プレーン合成部20にて同一フレームの映像出力に反映されるため、L画像とR画像の表示不整合に伴うちらつきを抑止することが可能となる。

また、本実施の形態においては、ステップS504LおよびステップS504Rにて合成処理完了通知を待つ。尚、「左右同時イメージコピー」は1フレームあたり1回に制約されることになるが、複数の描画要求を組み合わせて1フレームの描画を構成する必要がある場合には、まず前述のBufferedImage上に描画結果を生成しておき、最後に1回の「左右同時イメージコピー」で左右のイメージプレーンにコピーを行う実装とすればよい。これは、従来のBD-Jアプリにおいても、ちらつき防止のために頻繁に用いられている手法である。
【0149】
また、「左右同時イメージコピー」のみをステップS504L以降の処理の対象とし、それ以外の描画要求については従来と同様の処理、すなわち表示のちらつきの発生も許容する構成をとったが、それ以外の処理、例えば「左右同時矩形塗り潰し」等を新たに導入し、ステップS504L以降の処理対象としてもよい。この場合は、ちらつきを抑止しうる描画処理種別の範囲を拡げることができる。
【0150】
更に3D→2D切り替え時の強制コピーを実行してもよい。即ち、ステップS402の判定が2Dであった場合は、前述の通り、例えば、2Dモードの映像出力は常に左ビデオプレーン5に出力され、レンダリングエンジン22は常に左イメージプレーン9にのみ描画を行い、プレーン合成部20は常に左ビデオプレーン5と左イメージプレーン9の合成のみを行うことになる。
【0151】
ここで、2Dのストリームの再生が一旦終了し、続いて3Dのストリームの再生が開始される場合を考える。2Dのストリームの再生中は、BD-Jアプリも2D描画のアプリとして動作するため、左イメージプレーン9に対してのみ描画を行い、右イメージプレーンには何も描画を行わず、例えば全面黒色のままとなっている。ところが、この状態のままで3Dのストリームの再生に切り替わると、プレーン合成部20はステップS404R、ステップS405Rの処理にて、何も描画がなされていない右イメージプレーン10の画像を出力してしまう。3Dストリームに切り替わると、BD-Jアプリも3D描画のアプリとして動作を開始することが期待されるが、これらの切り替わりのタイミングにタイムラグが存在すると、一瞬R画像のみ全面黒色の出力がなされるため、ちらつきが発生してしまう。
【0152】
このようなちらつきを回避するには、プレーン合成部20の動作が2Dから3Dに切り替わるタイミングで、左イメージプレーン9の内容を右イメージプレーン10に強制的にコピーするようにすればよい。

ストリームが2Dから3Dに切り替わる場合だけではなく、例えばBD-Jモジュールの動作モードのみを2Dから3Dに切り替える機能が存在する場合についても、切り替えのタイミングで同様のコピーを行うようにすることで、BD-Jアプリの実装如何に関わらず、同種のちらつきを防止することができる。
【0153】
さらに、BD-Jモジュールが左イメージプレーン9のみを用いて3D描画を行う1plane+Offsetモードに対応している場合、コピー処理とシフト処理とを実行することで、左右の不整合を解消することができる。
1plane+Offsetモードとは、左イメージプレーン9全体をL画像としては左にnピクセル分、R画像としては右にnピクセル分シフトして出力することで、プレーン全体を手前あるいは奥まって表示させるモードである。かかる1plane+Offsetモードにおいて、左イメージプレーン9全体が右にnピクセル分シフトされた後に、シフト後の画像を右イメージプレーン10にコピーする。その後、左イメージプレーン9全体を左にnピクセル分シフトさせれば、描画モードの遷移前と遷移後のL画像およびR画像の出力が一致するため、ちらつきを抑止することが可能となる。
【0154】
この1plane+Offsetモードから左右両方のイメージプレーンを使用する3D描画モードに遷移する場合においても、かかるシフト及びコピー処理を適用することができる。
以上が、本発明にかかる立体視ビデオ再生方式の実施形態である。
(第5実施形態)
本実施形態では、プレーン合成部20および左右描画処理調停部30の別の実施形態について説明する。
【0155】
プレーン合成部20、左右描画処理調停部30以外の構成要素については第4実施形態と同様であるためここでは説明を省略し、異なる部分についてのみ説明を行う。
図28は、ラインの交互出力を実現する場合の、フレーム処理を示すフローチャートである。
ステップS701およびステップS702は、それぞれ図26のステップS401、ステップS402と同様であり、ステップS702の判定結果が3Dであった場合は、3D映像の再生を開始する。
【0156】
3D映像の再生が開始されると、再生装置200はステップS703L以降の処理に従って、左右の出力映像を生成する。まず、ステップS703LおよびステップS703Rの処理により、処理対象となるトランスポートストリームから、ビデオデコーダにより、左眼用のビデオピクチャおよび右眼用のビデオピクチャを取り出し、それぞれ左ビデオプレーン5、右ビデオプレーン6に出力する。
【0157】
続いてステップS704のループ処理で、プレーン合成部20は、左右のプレーン全体にわたって合成する処理を行う。
ここでは、左右のビデオプレーンと左右のイメージプレーンの解像度が同じで、いずれも幅Wピクセル、高さHピクセルであるものとする。この場合、合成の処理は1番上の行(y=0)から1番下の行(y=H-1)の方向に向かって1ラインずつ順番に行われる。

1ライン毎の処理としては、まずステップS705Lにおいて、左ビデオプレーン5のy行目の映像の上に左イメージプレーン9のy行目の映像を重畳して、出力L画像のy行目が生成され、最終的な映像出力として出力する。
【0158】
続いて、ステップS705Rにおいて、右ビデオプレーン6のy行目の映像の上に右イメージプレーン10のy行目の映像を重畳して、出力R画像のy行目が生成され、最終的な映像出力として出力する。ここでは上から順番に1ラインずつ処理する構成をとったが、下から上への順番など、他の順番に処理を行ってもよい。また、ビデオプレーンとイメージプレーンの解像度を同一としたが、これらの解像度が異なる構成をとってもよい。
【0159】
プレーン全体に対して合成処理が完了すると、プレーン合成部20はステップS706の処理にて、L画像とR画像の両方の合成処理が完了したという合成処理完了通知を、左右描画処理調停部30に対して行う。
以上が、本実施の形態において立体視映像を映し出す際の処理の流れである。
この構成においては、左イメージプレーン9のイメージデータ、続いて右イメージプレーン10の画像が1ラインずつ交互に、すなわち1フレームとして見れば両画像が並行でプレーン合成部20に送られることとなる。
【0160】
そのため、例えばBD-Jアプリがある一つの描画対象オブジェクトについて、左眼視点から見た形状と右眼視点から見た形状をこの順番で描画しようとした場合、レンダリングエンジン22は、まず左イメージプレーン9の画像を書き換える。しかし、このタイミングで、左右イメージ出力が実行されると、生成されるL画像については左イメージプレーン9の書き換えを反映したものになるが、R画像についてはまだ右イメージプレーン10は書き換え前であるため、結果として出力されるL画像とR画像は、L画像だけが書き換えを反映した不整合なものとなってしまう。
【0161】
そこで、本実施の形態においては、左右描画処理調停部30が図29に示したフローチャートの処理によってレンダリングエンジン22の処理順序を制御することで、前述のような不整合な表示の回避を行う。図29は、描画要求の統合を伴う左右描画処理調停部30の処理手順を示すフローチャートである。
まずステップS801により、BD-Jアプリからの描画指示に基づいてBD-Jモジュール15から描画要求Aが発行されるのを待つ。発行される描画要求は、先の実施の形態と同様の構造で表現される。
【0162】
次にステップS802において、ステップS801で受け取った描画要求Aの種別情報が「イメージコピー」で、かつ描画対象プレーンが左イメージプレーン9であるか否かを判定する。
ステップS802の条件を満たさなかった場合は、ステップS803の処理にて、レンダリングエンジン22に対して描画要求Aをそのまま発行する。これは従来のBD-Jモジュール15と同様の処理になるため、説明は省略する。
【0163】
ステップS802の条件を満たした場合、描画要求Aの処理はこのタイミングでは行わずに保留しておき、次のステップS804において、BD-Jモジュール15からの次の描画要求Bが発行されるのを待つ。
次にステップS805において、ステップS804で受け取った描画要求Bの種別情報が「イメージコピー」で、かつ描画対象プレーンが右イメージプレーン10であるか否かを判定する。
【0164】
ステップS805の条件を満たした場合は、続くステップS809の処理にて、描画要求Aのイメージコピーの描画位置と、描画要求Bのイメージコピーの描画位置との比較を行う。具体的には両者の描画先矩形領域のY座標を意味するy1およびy2の値がともに一致するか否かを判定する。
立体視のグラフィックスを描画する典型的なBD-Jアプリでは、ある一つの描画対象オブジェクトについて、左眼視点から見た形状を左イメージプレーン9に描画し、右眼視点から見た形状を右イメージプレーン10に描画するというセットの処理を連続して行うことが多いと想定される。さらに、左右の描画の違いは視点の差に起因するものであるため、Y座標は同じでX座標のみ視差の分だけずらした描画であることが想定される。そこで、描画要求Aおよび描画要求Bがそれぞれ左イメージプレーン9、右イメージプレーン10へのイメージコピーで、その描画位置の差がX座標のみであることを判定することで、BD-Jアプリとしては、ある一つの描画対象オブジェクトについて、左眼視点から見た形状と右眼視点から見た形状をセットで描画しようとしていることが予測される。したがって、これら2つのイメージコピー処理の結果は、プレーン合成部20において確実に同一フレームの映像出力として処理を行う必要がある。
【0165】
そこで、ステップS809の条件を満たした場合、左右描画処理調停部30はステップS810の処理により、レンダリングエンジン22に対して描画要求Aおよび描画要求Bの代わりに、描画要求A,Bを統合した左右同時描画要求Cを発行する。
図30(a)は、上記統合によって得られた左右同時描画要求Cを示す図である。図30(a)における左右同時描画要求903(描画要求C)は、図30(b)における描画要求901(描画要求A)と、図30(c)における描画要求902(描画要求B)の2つの描画要求を1つにまとめたものである。
【0166】
左右同時描画要求Cを受けたレンダリングエンジン22は、左イメージプレーン9へのイメージコピー処理と右イメージプレーン10へのイメージコピー処理を、順番に行うのではなく、例えば左右のコピー処理をビットマップイメージの上から下へと1ラインずつ交互に行うようにする。これにより、左右イメージプレーンへの描画処理が同時並行的に実行されることになるため、図28におけるプレーン合成部20の合成処理ステップS704、ステップS705L、ステップS705Rがどのタイミングで動作していても、出力映像としてのL画像とR画像の表示の不整合は最小限に抑えることが可能となる。
【0167】
ここではレンダリングエンジン22は左右を1ラインずつ処理する例を挙げたが、交互に切り替える処理の単位は1ラインずつに限定されるものではなく、また2つのレンダリングエンジンを備えることで完全な並列処理を行う構成をとってもよい。
一方で、ステップS805またはステップS809の条件が満たされなかった場合は、描画要求Aと描画要求Bは一つのオブジェクトについて左右の視点から見た描画を行うという、セットではなかったと判断され、以降は従来と同様の処理、すなわち表示のちらつきの発生も許容する処理が行われることになる。
【0168】
そこで次のステップS806の処理にて、警告メッセージを出力することで、BD-Jアプリの開発者あるいは再生装置200のユーザに対して、本BD-Jアプリではちらつきが発生する可能性がある旨を通知することができる。警告メッセージの出力としては、例えばBD-Java仕様におけるExceptionメッセージをスローすることで、BD-Jアプリの開発者に警告を知らせてもよいし、表示ディスプレイ400に警告メッセージを表示することで、BD-Jアプリの開発者あるいは再生装置200のユーザに対して警告を知らせる構成をとってもよい。
【0169】
続いてステップS807およびステップS808の処理にて、保留されていた描画要求Aおよび描画要求Bをレンダリングエンジン22に対してそのまま発行することで、これまでの実施形態と同様の描画処理を実行する。
以上の処理により、ステップS802、ステップS805、ステップS809の条件を満たす2つのイメージコピーの結果が、プレーン合成部20にて同一フレームの映像出力の中で同時に反映されることになる。したがって、ちらつき(ティアリング)が発生する可能性はあるものの、L画像とR画像の表示不整合に伴う左右の視覚の不整合を伴うちらつきは抑制することが可能となる。
【0170】
尚、判定対象のバリエーションとして以下のものを採用してもよい。つまり本実施の形態においては、「イメージコピー」のみをステップS802、ステップS805の判定処理の対象とし、それ以外の描画要求については従来と同様の処理、すなわち表示のちらつきの発生も許容する構成をとったが、それ以外の処理、例えば「矩形塗り潰し」等についても判定の対象に加えてもよい。この場合は、ちらつきを抑止しうる描画処理種別の範囲を拡げることができる。
【0171】
また本実施例ではステップS810において即時に左右同時描画要求を発行しているが、図28のステップS706による合成処理完了通知を待ってから、左右同時描画要求を発行するような構成としてもよい。この構成をとった場合、イメージコピー処理が十分高速なハードウエアにおいては、図28においては次フレームのステップS705L、ステップS705Rの処理が実行される前にイメージコピー処理を完了させることができるため、ティアリングも発生しない、より高品位な画面の更新を実現することが可能となる。
【0172】
更に、本実施の形態ではL画像とR画像の処理を上から1ラインずつ交互に行うことで、擬似的にL画像とR画像の生成を並行で行う構成をとるものとしているが、処理の単位は1ラインに限るものではない。
出力の2系統にしてもよい。つまり再生装置のハードウエアの構成によっては、デマルチプレクサ3は別の出力方式を実施しても良い。図25の構成図にはビデオデコーダとイメージデコーダ、プレーン合成部を各一組ずつ有しているが、例えばこれらの構成を2つずつ持つハードウエアでは、左眼用と右眼用の映像を別々の系統で処理することができる。すなわち、左眼用のビデオデコーダが左ビデオプレーン5にビデオピクチャを格納し、左眼用のイメージデコーダが左イメージプレーン9にイメージデータを格納し、左眼用のプレーン合成部が左ビデオプレーン5と左イメージプレーン9のピクチャを合成し、右眼用についても同様に別系統で処理するような構成をとることで、L画像の生成処理とR画像の生成処理を完全に並列で行うようにしてもよい。
【0173】
また本実施形態においては、プレーン合成部20の映像出力は、L画像とR画像を1ラインずつ交互に出力する構成をとっているが、映像出力についてもこの形式に限定するものではない。例えば、前述の左眼用と右眼用の二系統のハードウエアを持つ構成においては、映像出力としても左眼用映像出力と右眼用映像出力の二系統を有する構成もとることができる。また、プレーン合成部20の映像出力の先に出力映像の一時保存用バッファを設けることにより、実施の形態1と同様の、左眼用映像(L画像)の映像出力と、右眼用映像(R画像)の映像出力を交互に繰り返すような構成をとることもできる。
【0174】
(第6実施形態)
描画要求に加え、画面更新要求を発行することで映像出力を実現する改良である。
図30(d)は、画面更新要求904を示す。この画面更新要求904は、BD-Javaの規格においてjava.awt.Toolkit#syncメソッドとして規定される。画面更新処理は、現在のイメージプレーンの画像を確実に表示ディスプレイ側に送ることをBD-Jアプリ側から保証するためのものであり、イメージプレーンとしてダブルバッファ構成を導入している実装、すなわち描画対象バッファと表示対象バッファとを個別に持つことでティアリングを抑える実装において、特に意味を持つものである。
【0175】
図31は、画面更新要求をトリガとした左右描画処理調停部30の処理手順を示すフローチャートである。
本フローチャートのステップS1001、ステップS1002、ステップS1003、ステップS1004、ステップS1005、ステップS1006、ステップS1007、ステップS1008の各処理は、それぞれステップS801、ステップS802、ステップS803、ステップS804、ステップS805、ステップS806、ステップS807およびステップS808、ステップS809と同様である。
【0176】
ステップS1002、ステップS1005、ステップS1008の各条件が満たされた場合、すなわち、描画要求Aと描画要求Bが一つのオブジェクトについて左右の視点から見た描画を行うセットに該当すると判断された場合、描画要求Aおよび描画要求Bに相当する処理はこのタイミングでは行わない。つまり、描画要求A,Bを保留しておき、次のステップS1009において、BD-Jモジュール15からの次の描画要求Cが発行されるのを待つ。
【0177】
次のステップS1010において、描画要求Cの種別が「画面更新」であるか否かを判断する。描画要求Cが「画面更新」であった場合は、左右描画処理調停部30はステップS1013の処理により、レンダリングエンジン22に対して描画要求Aおよび描画要求Bの代わりに、左右同時描画要求を発行する。
描画要求Cが「画面更新」でなかった場合は、ステップS1011において、警告メッセージを出力した後、ステップS1012において、保留されていた描画要求A、描画要求B、描画要求Cをレンダリングエンジン22に対して順番にそのまま発行することで、これまでの実施形態と同様の描画処理を実行する。
【0178】
以上が、本実施の形態における左右描画処理調停部30の処理の流れである。
イメージプレーンがシングルバッファ構成をとっている場合は、画面更新要求の有無に関わらず、イメージプレーンの画像がプレーン合成部20の動作タイミングに応じて映像出力に反映されるため、画面更新要求自体は必ずしも意味を持たない。一方、イメージプレーンがダブルバッファ構成をとっている場合は、画面更新要求が重要な意味を持つ。本実施の形態では、BD-Jアプリが左イメージプレーン9への「イメージコピー」、右イメージプレーン10への「イメージコピー」、「画面更新」の3つをこの順番で呼び出さなければ、警告メッセージが出力されることになるため、BD-Jアプリ開発者に様々な再生装置において再生互換性が高いBD-Jアプリの開発を促すことができる。
【0179】
(第7実施形態)
前述の第4実施形態、第5実施形態および第6実施形態においては、左イメージプレーン9と右イメージプレーン10はそれぞれ別個のイメージプレーンとしており、BD-Jアプリからの描画要求の観点では、描画対象プレーンが別々のものとして扱うことを前提としていた。本実施形態においては、左イメージプレーン9および右イメージプレーン10を、BD-Jアプリの観点では同一のプレーンとして扱うものとする。
【0180】
図32(a)は、左イメージプレーン9と右イメージプレーン10とを左右に並べて連結することで構成される連結イメージプレーン(以降、サイドバイサイド形式と呼ぶ)を示す。この構成においては、左右のイメージプレーンの解像度がそれぞれ幅Wピクセル、高さHピクセルであるとすると、連結イメージプレーンは幅W×2ピクセル、高さHピクセルとなる。
【0181】
このサイドバイサイド形式のイメージプレーンの連結は、左右のイメージプレーンを、物理的に連続する同一のメモリとして構成することで実現可能となる。
左イメージプレーン9と右イメージプレーン10は別々のメモリによって構成し、BD-Jアプリに対してのみ一つの連結イメージプレーンとして見せるような構成を採用することでも実現可能である。
【0182】
図32(b)は、左イメージプレーン9と右イメージプレーン10を上下に並べて連結したものを一つの一般として扱う連結イメージプレーン(以降、トップアンドボトム形式と呼ぶ)を示す。この構成においては、左右のイメージプレーンの解像度が幅Wピクセル、高さHピクセルであるとすると、連結イメージプレーンは幅Wピクセル、高さH×2ピクセルとなる。
【0183】
このトップアンドボトム形式におけるイメージプレーンの連結にあたっても、左右のイメージプレーンを、物理的に連続する同一のメモリとして構成するのが望ましい。左イメージプレーン9と右イメージプレーン10は別々のメモリによって構成し、BD-Jアプリに対してのみ一つの連結イメージプレーンとして見せるような構成としてもよい。
トップアンドボトム形式の連結イメージプレーンを持つ場合、BD-Jアプリケーションは、図32(b)において、左イメージプレーンと右イメージプレーンとを上下にまたがるような矩形領域をイメージコピー処理の対象にすることができる。
【0184】
さて、本実施形態に係る再生装置200がディスプレイ400に立体視映像を映し出す際の処理は、図33に示される処理によって実現されるものとする。
図33は、本実施の形態における左右描画処理調停30の処理のフローチャートである。
まずステップS1101において、BD-Jアプリからの描画指示に基づいてBD-Jモジュール15から描画要求が発行されるのを待つ。描画要求が発行されれば、S1102において、ステップS1101で受け取った描画要求の種別情報が「イメージコピー」で、かつ描画位置が左イメージプレーンと右イメージプレーンの双方にまたがるものであるか否かを判定する。
【0185】
ステップS1102の条件を満たさない場合は、ステップS1103において、レンダリングエンジン22に対して描画要求をそのまま発行することで、これまでの実施形態と同様の描画処理を実行する。
ステップS1102の条件を満たした場合には、ステップS1104Lに移行する。
描画位置が左イメージプレーンと右イメージプレーンの双方にまたがるような描画要求が発行される場合は、BD-Jアプリとしては、ある一つの描画対象オブジェクトについて、左眼視点から見た形状と右眼視点から見た形状をセットで描画しようとしていることが予測される。そのため、本実施の形態においては、ステップS1104L以降の処理によって、左右描画処理調停部30がレンダリングエンジン22の処理タイミングを調整することで、L画像とR画像の表示の不整合の回避を試みる。
【0186】
まず、ステップS1104Lにおいて、プレーン合成部20からL画像の合成完了通知(図26のステップS406Lにて発行されたもの)が来るのを待つ。
次に、ステップS1105Lにおいて、描画位置として左イメージプレーン9に含まれる部分のみを切り抜いたイメージコピー処理の描画要求をレンダリングエンジン22に対して発行する。例えば図32(a)における矩形領域1301の場合は、左上が(x1,y1)、右下が(W,y2)で指定される矩形領域を対象としたイメージコピーを発行すればよい。
【0187】
R画像についても同様に、ステップS1104Rにおいて、プレーン合成部20からR画像の合成完了通知(図26のステップS406Rにて発行されたもの)が来るのを待つ。そして合成完了通知が発行されれば、ステップS1105Rにおいて、描画位置として右イメージプレーン10に含まれる部分のみを切り抜いたイメージコピー処理の描画要求をレンダリングエンジン22に対して発行する。図32(a)における矩形領域1301の場合は、左上が(W,y1)、右下が(x2,y2)で指定される矩形領域を対象としたイメージコピーを発行すればよい。
【0188】
これらの処理により、イメージコピー処理が十分高速なハードウエアにおいては、左イメージプレーン9に対するイメージコピーの結果は、図26においては次のフレームのステップS404L、ステップS405Lの処理にて映像出力に反映され、右イメージプレーン10に対するイメージコピーの結果は、次のフレームのステップS404R、ステップS405Rの処理にて映像出力に反映されることを保証することができ、2つのイメージコピーの結果が、プレーン合成部20にて同一フレームの映像出力に反映されるため、L画像とR画像の表示不整合に伴うちらつきを防止することが可能となる。
【0189】
尚、本実施の形態においては、「イメージコピー」のみをステップS1102の判定処理の対象とし、それ以外の描画要求については従来と同様の処理、すなわち表示のちらつきの発生も許容する構成をとったが、それ以外の処理、例えば「矩形塗り潰し」等についても判定の対象に加えてもよい。この場合は、ちらつきを抑止しうる描画処理種別の範囲を拡げることができる。
【0190】
(第8実施形態)
連結イメージプレーンに対する描画要求の分離を実現する実施形態である。描画要求の分離は、ある矩形範囲に対する描画要求を、左イメージプレーン9に含まれる部分のみを切り抜いたイメージコピー処理と、右イメージプレーン10に含まれる部分のみを切り抜いたイメージコピー処理とに分離して、これらのイメージコピー処理を同時に実行させるものである。
【0191】
図34は、描画要求と、左右同時描画要求とを示す。
図中の描画要求1401は、解像度が幅1000ピクセル、高さ1500ピクセルの描画イメージである”ビットマップイメージ1”を、トップアンドボトム形式のイメージプレーンにおける(x1,y1)=(200,300),(x2,y2)=(1200,1800)の矩形範囲に、書き込むことを要求するイメージコピーの要求である。
【0192】
左右同時描画要求1402は、描画要求1401を変換することで得られる左右同時描画要求であり、左イメージプレーン9に含まれる部分のみを切り抜いたイメージコピー処理、及び、右イメージプレーン10に含まれる部分のみを切り抜いたイメージコピー処理を左右同時に要求するものである。
左イメージプレーン9に含まれる部分のみを切り抜いたイメージコピー処理は、”ビットマップイメージ1”のx1=0,y1=0,x2=1000,y2=780の矩形領域を、イメージプレーンにおける(x1,y1)=(200,300),(x2,y2)=(1200,1080)の矩形範囲に、書き込むことを要求するイメージコピーの要求である。
【0193】
右イメージプレーン10に含まれる部分のみを切り抜いたイメージコピー処理は、”ビットマップイメージ1”のx1=0,y1=780,x2=1000,y2=1500の矩形領域を、イメージプレーンにおける(x1,y1)=(200,0),(x2,y2)=(1200,720)の矩形範囲に、書き込むことを要求するイメージコピーの要求である。
図35は本実施の形態における左右描画処理調停部30の処理のフローチャートである。まずステップS1201の処理により、BD-Jアプリからの描画指示に基づいてBD-Jモジュール15から描画要求が発行されるのを待つ。
【0194】
次に、ステップS1202において、ステップS1201で受け取った描画要求の種別情報が「イメージコピー」で、かつ描画範囲が左右の領域にまたがるものであるか、又は、上下の領域にまたがるものであるか否かを判定する。トップアンドボトム形式の連結イメージプレーンを持つ場合、BD-Jアプリは、上下にまたがるような矩形領域を描画範囲としてイメージコピー処理を要求することができる。
【0195】
サイドバイサイド形式の連結イメージプレーンを持つ場合、BD-Jアプリは、左右にまたがるような矩形領域を描画範囲としてイメージコピー処理を要求することができる。
ステップS1202の条件を満たさない場合は、ステップS1203の処理にて、レンダリングエンジン22に対して描画要求をそのまま発行することで、これまでと同様の描画処理が実行される。
【0196】
ステップS1202の条件を満たした場合には、ステップS1204において、受け付けた描画要求を、左イメージプレーン9に含まれる部分のみを切り抜いたイメージコピー処理と、右イメージプレーン10に含まれる部分のみを切り抜いたイメージコピー処理とを同時に実行させる左右同時描画要求に変換して、レンダリングエンジン22に発行する。
【0197】
描画位置が左イメージプレーンと右イメージプレーンの双方にまたがるような描画要求が発行される場合は、BD-Jアプリとしては、ある一つの描画対象オブジェクトについて、左眼視点から見た形状と右眼視点から見た形状をセットで描画しようとしていることが予測される。そのため、ステップS1204において、1つのイメージコピー処理を要求する描画要求を、2つのイメージコピー処理を同時に要求する左右同時描画要求に変換することにより、レンダリングエンジン22の処理順序を制御し、L画像とR画像の表示の不整合の回避を行う。
【0198】
尚、左右同時描画要求1402を受けたレンダリングエンジン22は、前述の実施形態で説明したように、左イメージプレーン9へのイメージコピー処理と右イメージプレーン10へのイメージコピー処理を順番に行うのではなく、例えば左右のコピー処理をビットマップイメージの上から下へと1ラインずつ交互に行うようにすることで、出力映像としてのL画像とR画像の表示の不整合を最小限に抑えることができる。
【0199】
ただし、本実施の形態においては、左イメージプレーン9への描画位置のY座標と右イメージプレーン10への描画位置のY座標が一致しない場合がある。そのため、コピー処理は単純に上から1ラインずつ交互に行うのではなく、例えば左イメージプレーン9のy行目へのコピー処理を行い、その次には、右イメージプレーン10の同じくy行目へのコピー処理を行うような順序でコピーを行うのが望ましい。
【0200】
また本実施の形態においては、「イメージコピー」のみをステップS1202の判定処理の対象とし、イメージコピー以外の描画要求については従来と同様の処理、すなわち表示のちらつきの発生も許容する構成をとった。しかしイメージコピー以外の処理でも、例えば「矩形塗り潰し」等を、左右同時描画要求を行うかどうか判定の対象に加えてもよい。この場合は、ちらつきを抑止しうる描画処理種別の範囲を拡げることができる。
【0201】
(備考)
以上、本願の出願時点において、出願人が知り得る最良の実施形態について説明したが、以下に示す技術的トピックについては、更なる改良や変更実施を加えることができる。各実施形態に示した通り実施するか、これらの改良・変更を施すか否かは、何れも任意的であり、実施する者の主観によることは留意されたい。
【0202】
(立体視方式)
各実施形態で説明の前提とした視差画像方式は、左右の映像を時間軸方向で交互に表示させるために、例えば、通常の2次元の映画であれば1秒に24枚の映像を表示させるのに対して、左右の映像合わせて1秒に48枚の映像を表示させる必要がある。従って、この方式では、一画面の書き換えが比較的早い表示装置において好適である。この視差画像を用いた立体視は、既に遊園地の遊具などで一般的に使用されており、技術的にも確立されているため、家庭における実用化に最も近いものと言える。視差画像を用いた立体視のための方法はこれらの他にも、2色分離方式などさまざまな技術が提案されている。本実施形態においては、継時分離方式あるいは偏光メガネ方式を例として用いて説明したが、視差画像を用いる限りこれら2方式に限定するものではない。
【0203】
テレビ400についても、レンチキュラーレンズだけでなく、同様の機能を持たせたデバイス、例えば液晶素子を用いてもよい。また左目用の画素には縦偏光のフィルター、右目用の画素には横偏光のフィルターを設置し、視聴者は、左目用には縦偏光、右目用には横偏光のフィルターを設置した偏光メガネを用いて表示装置の画面を見ることによって立体視を実現させてもよい。
【0204】
(プログラムの実施形態)
各実施形態に示したアプリケーションプログラムは、以下のようにして作ることができる。先ず初めに、ソフトウェア開発者は、プログラミング言語を用いて、各フローチャートや、機能的な構成要素を実現するようなソースプログラムを記述する。この記述にあたって、ソフトウェア開発者は、プログラミング言語の構文に従い、クラス構造体や変数、配列変数、外部関数のコールを用いて、各フローチャートや、機能的な構成要素を具現するソースプログラムを記述する。
【0205】
記述されたソースプログラムは、ファイルとしてコンパイラに与えられる。コンパイラは、これらのソースプログラムを翻訳してオブジェクトプログラムを生成する。
コンパイラによる翻訳は、構文解析、最適化、資源割付、コード生成といった過程からなる。構文解析では、ソースプログラムの字句解析、構文解析および意味解析を行い、ソースプログラムを中間プログラムに変換する。最適化では、中間プログラムに対して、基本ブロック化、制御フロー解析、データフロー解析という作業を行う。資源割付では、ターゲットとなるプロセッサの命令セットへの適合を図るため、中間プログラム中の変数をターゲットとなるプロセッサのプロセッサが有しているレジスタまたはメモリに割り付ける。コード生成では、中間プログラム内の各中間命令を、プログラムコードに変換し、オブジェクトプログラムを得る。
【0206】
ここで生成されたオブジェクトプログラムは、各実施形態に示したフローチャートの各ステップや、機能的構成要素の個々の手順を、コンピュータに実行させるような1つ以上のプログラムコードから構成される。ここでプログラムコードは、プロセッサのネィティブコード、JAVAバイトコードというように、様々な種類がある。プログラムコードによる各ステップの実現には、様々な態様がある。外部関数を利用して、各ステップを実現することができる場合、この外部関数をコールするコール文が、プログラムコードになる。また、1つのステップを実現するようなプログラムコードが、別々のオブジェクトプログラムに帰属することもある。命令種が制限されているRISCプロセッサでは、算術演算命令や論理演算命令、分岐命令等を組合せることで、フローチャートの各ステップを実現してもよい。
【0207】
オブジェクトプログラムが生成されるとプログラマはこれらに対してリンカを起動する。リンカはこれらのオブジェクトプログラムや、関連するライブラリプログラムをメモリ空間に割り当て、これらを1つに結合して、ロードモジュールを生成する。こうして生成されるロードモジュールは、コンピュータによる読み取りを前提にしたものであり、各フローチャートに示した処理手順や機能的な構成要素の処理手順を、コンピュータに実行させるものである。かかるプログラムをコンピュータ読取可能な記録媒体に記録してユーザに提供してよい。
【0208】
(記録媒体のバリエーション)
各実施の形態における記録媒体は、光ディスク、半導体メモリーカード等、パッケージメディア全般を含んでいる。本実施の形態の記録媒体は予め必要なデータが記録された光ディスク(例えばBD-ROM、DVD-ROMなどの既存の読み取り可能な光ディスク)を例に説明をするが、これに限定される必要はなく、例えば、放送またはネットワークを経由して配信された本発明の実施に必要なデータを含んだ3Dコンテンツを光ディスクへ書き込む機能を有する端末装置(例えば左記の機能は再生装置に組み込まれていてもよいし、再生装置とは別の装置であってもよい)を利用して書き込み可能な光ディスク(例えばBD-RE、DVD-RAMなどの既存の書き込み可能な光ディスク)に記録し、この記録した光ディスクを本発明の再生装置に適用しても本発明の実施は可能である。
【0209】
(ビデオデコーダの構成)
各実施形態において、ビデオデコーダは、左目用のビデオデコーダ5a、右目用のビデオデコーダ5bのそれぞれのものが存在すると説明したが、これらを一体にしてもよい。
(半導体メモリカード記録装置及び再生装置の実施形態)
各実施の形態で説明をしたデータ構造を半導体メモリーに記録する記録装置、及び、再生する再生装置の実施形態について説明する。
【0210】
まず、前提となる技術として、BD-ROMに記録されているデータの著作権保護の仕組みについて説明する。
BD-ROMに記録されたデータのうち、例えば著作権の保護、データの秘匿性の向上の観点からデータの一部が、必要に応じて暗号化されている場合がある。
例えば、BD-ROMに記録されたデータのうち、暗号化されているデータは、例えばビデオストリームに対応するデータ、オーディオストリームに対応するデータ、またはこれらを含むストリームに対応するデータであったりする。
【0211】
以後、BD-ROMに記録されたデータのうち、暗号化されているデータの解読について説明をする。
半導体メモリカード再生装置においては、BD-ROM内の暗号化されたデータを解読するために必要な鍵に対応するデータ(例えばデバイスキー)が予め再生装置に記憶されている。
【0212】
一方、BD-ROMには暗号化されたデータを解読するために必要な鍵に対応するデータ(例えば上述のデバイスキーに対応するMKB(メディアキーブロック))と、暗号化されたデータを解読するための鍵自体を暗号化したデータ(例えば上述のデバイスキー及びMKBに対応する暗号化タイトルキー)が記録されている。ここで、デバイスキー、MKB、及び暗号化タイトルキーは対になっており、さらにBD-ROM上の通常コピーできない領域(BCAと呼ばれる領域)に書き込まれた識別子(例えばボリュームID)とも対応付けがされている。この組み合わせが正しくなければ、暗号の解読ができないものとする。組み合わせが正しい場合のみ、暗号解読に必要な鍵(例えば上述のデバイスキー、MKB及びボリュームIDを元に、暗号化タイトルキーを復号して得られるタイトルキー)を導き出すことができ、この暗号解読に必要な鍵を用いて、暗号化されたデータの解読が可能となる。
【0213】
装填されたBD-ROMを再生装置において再生する場合、例えばBD-ROM内の暗号化タイトルキー、MKBと対になっている(または対応する)デバイスキーが再生装置内になければ、暗号化されたデータは再生がなされない。何故ならば、暗号化されたデータの解読に必要な鍵(タイトルキー)は、鍵自体が暗号化されて(暗号化タイトルキー)BD-ROM上に記録されており、MKBとデバイスキーの組み合わせが正しくなければ、暗号の解読に必要な鍵を導き出すことができないからである。
【0214】
逆に暗号化タイトルキー、MKB、デバイスキー及びボリュームIDの組み合わせが正しければ、例えば上述の暗号解読に必要な鍵(デバイスキー、MKB及びボリュームIDを元に、暗号化タイトルキーを復号して得られるタイトルキー)を用いてビデオストリームがデコーダにてデコードされ、オーディオストリームがオーディオデコーダにてデコードされるように再生装置は構成されている。
【0215】
以上が、BD-ROMに記録されているデータの著作権保護の仕組みであるが、この仕組みは、BD-ROMに必ずしも限定されるのではなく、例えば、読込み/書込み可能な半導体メモリー(例えばSDカードなどの可搬性を有する半導体メモリーカード)に適用した場合においても、実施が可能である。
半導体メモリーカード再生装置の再生手順について説明する。光ディスクでは例えば、光ディスクドライブを介してデータを読み出すように構成していたのに対し、半導体メモリーカードを用いた場合には、半導体メモリーカード内のデータを読み出すためのI/Fを介してデータを読み出すように構成すればよい。
【0216】
より詳細には、再生装置のスロット(図示せず)に半導体メモリーカードが挿入されると、半導体メモリーカードI/Fを経由して再生装置と半導体メモリーカードが電気的に接続される。半導体メモリーカードに記録されたデータは半導体メモリーカードI/Fを介して読み出すように構成すればよい。

次に、例えば電子配信を利用して、図1、図24に示した記録媒体100に記録されたデータ、例えば記録媒体100に記録されたオリジナルのコンテンツに対応するデータ(例えば、ビデオストリーム、オーディオストリーム、字幕データ、字幕データ、背景画像、GUI、アプリケーション、アプリケーション管理テーブルなど)の全部若しくは一部(例えば再生に必要なデータのアップデートデータ)、または追加コンテンツを配信データとして、半導体メモリーに記録する動作について説明をする。
【0217】
上述の動作は本実施の形態において説明をした再生装置がその半導体メモリーに記録する動作を行なえるように構成をされていても良いし、本実施の形態の再生装置とは別に半導体メモリーに配信データを記憶することを行う専用の端末装置にて行なうような形態であっても良い。ここでは再生装置が行なう例について説明をする。また記録先の半導体メモリーとしてSDメモリーカードを例に説明をする。
【0218】
再生装置が備えるスロットに挿入されたSDメモリーカードに配信データを記録する場合、まず配信データを蓄積する配信サーバ(図示せず)へ配信データの送信を要求する。このとき再生装置は挿入したSDメモリーカードを一意に識別するための識別情報(例えば個々のSDメモリーカード固有の識別番号、より具体的には、例えばSDメモリーカードのシリアル番号等)をSDメモリーカードから読み出して、読み出した識別情報を配信要求とともに、配信サーバへ送信する。
【0219】
この、SDメモリーカードを一意に識別するための識別情報は例えば上述のボリュームIDに相当する。
一方、配信サーバでは、配信するデータのうち必要なデータ(例えばビデオストリーム、オーディオストリーム等)が暗号解読に必要な鍵(例えばタイトルキー)を用いて暗号の解除ができるように暗号化がなされてサーバ上に格納されている。
【0220】
例えば配信サーバは、秘密鍵を保持しており、半導体メモリーカードの固有の識別番号のそれぞれに対して異なる公開鍵情報が動的に生成できるように構成されている。
また、配信サーバは、暗号化されたデータの解読に必要な鍵(タイトルキー)自身に対して暗号化ができるように構成されている(つまり暗号化タイトルキーを生成できるように構成されている)。

生成される公開鍵情報は例えば上述のMKB、ボリュームID及び暗号化タイトルキーに相当する情報を含む。暗号化されたデータは例えば半導体メモリー固有の識別番号、後述する公開鍵情報に含まれる公開鍵本体、および再生装置に予め記録されたデバイスキーの組み合わせが正しければ、暗号解読に必要な鍵(例えばデバイスキー、MKB及び半導体メモリー固有の識別番号を元に、暗号化タイトルキーを復号して得られるタイトルキー)が得られ、この得られた暗号解読に必要な鍵(タイトルキー)を用いて、暗号化されたデータの解読ができるものである。

次に、再生装置は、受信した公開鍵情報と配信データをスロットに挿入した半導体メモリーカードの記録領域に記録する。
【0221】
次に、半導体メモリーカードの記録領域に記録した公開鍵情報と配信データに含まれるデータのうち暗号化したデータを復号して再生する方法の一例について説明をする。
受信した公開鍵情報は例えば公開鍵本体(例えば上述のMKB及び暗号化タイトルキー)、署名情報、半導体メモリーカードの固有の識別番号、および無効にすべきデバイスに関する情報を示すデバイスリストが記録されている。
【0222】
署名情報には例えば、公開鍵情報のハッシュ値を含む。
デバイスリストには例えば、不正に再生がなされる可能性があるデバイスに関する情報が記載されている。これは例えば再生装置に予め記録されたデバイスキー、再生装置の識別番号、または再生装置が備えるデコーダの識別番号といったように、不正に再生される可能性がある装置、装置に含まれる部品、または機能(プログラム)といったものを一意に特定するための情報である。
【0223】
半導体メモリーカードの記録領域に記録した配信データのうち、暗号化されたデータの再生に関し、説明をする。

まず、公開鍵本体を利用して暗号化したデータを復号する前に復号鍵本体を機能させてよいかどうかに関するチェックを行う。
具体的には、
(1) 公開鍵情報に含まれる半導体メモリー固有の識別情報と半導体メモリーカードに予め記憶されている固有の識別番号とが一致するかどうかのチェック
(2) 再生装置内で算出した公開鍵情報のハッシュ値と署名情報に含まれるハッシュ値が一致するかのチェック
(3) 公開鍵情報に含まれるデバイスリストに示される情報に基づいて、再生を行う再生装置が不正な再生が可能かどうかのチェック(例えば公開鍵情報に含まれるデバイスリストに示されるデバイスキーと、再生装置に予め記憶されたデバイスキーが一致するかどうかのチェック)
を行なう。これらのチェックを行なう順番どのような順序で行なってもよい。
【0224】
上述の(1)〜(3)のチェックにおいて、公開鍵情報に含まれる半導体メモリー固有の識別情報と半導体メモリーに予め記憶されている固有の識別番号とが一致しない、再生装置内で算出した公開鍵情報のハッシュ値と署名情報に含まれるハッシュ値が一致しない、または、再生を行う再生装置が不正に再生される可能性があると判断した、のいずれかを満足すれば、再生装置は、暗号化されたデータの解読がなされないように制御する。

また、公開鍵情報に含まれる半導体メモリーカードの固有の識別情報と半導体メモリーカードに予め記憶されている固有の識別番号とが一致し、かつ再生装置内で算出した公開鍵情報のハッシュ値と署名情報に含まれるハッシュ値が一致し、かつ再生を行う再生装置が不正に再生される可能性がないと判断したのであれば、半導体メモリー固有の識別番号、公開鍵情報に含まれる公開鍵本体、および再生装置に予め記録されたデバイスキーの組み合わせが正しいと判断し、暗号解読に必要な鍵(デバイスキー、MKB及び半導体メモリー固有の識別番号を元に、暗号化タイトルキーを復号して得られるタイトルキー)を用いて、暗号化されたデータの解読を行なう。

例えば暗号化されたデータがビデオストリーム、オーディオストリームである場合、ビデオデコーダは上述の暗号解読に必要な鍵(暗号化タイトルキーを復号して得られるタイトルキー)を利用してビデオストリームを復号し(デコードし)、オーディオデコーダは、上述の暗号解読に必要な鍵を利用してオーディオストリームを復号する(デコードする)。
【0225】
このように構成をすることにより、電子配信時において不正利用される可能性がある再生装置、部品、機能(プログラム)などが分っている場合、これらを識別するための情報をデバイスリストに示して、配信するようにすれば、再生装置側がデバイスリストに示されているものを含むような場合には公開鍵情報(公開鍵本体)を用いた復号を抑止できるようにできるため、半導体メモリー固有の識別番号、公開鍵情報に含まれる公開鍵本体、および再生装置に予め記録されたデバイスキーの組み合わせが、たとえ正しくても、暗号化されたデータの解読がなされないように制御できるため、不正な装置上での配信データの利用を抑止することが可能となる。

また半導体メモリーカードに予め記録されている半導体メモリーカードの固有の識別子は秘匿性の高い記録領域に格納するような構成を採用するのが望ましい。何故ならば、半導体メモリーカードに予め記録されている固有の識別番号(例えばSDメモリーカードを例にすればSDメモリーカードのシリアル番号等)は改竄がなされると、違法コピーが容易になされてしまう。何故ならば複数の半導体メモリーカードには、それぞれ異なる固有の識別番号が割り当てられているが、この固有の識別番号が同一となるように改竄がなされてしまえば、上述の(1)の判定が意味を成さなくなり、改竄がなされた数に相当する違法コピーがなされてしまう可能性があるからである。
【0226】
従って、半導体メモリーカードの固有の識別番号といった情報は秘匿性が高い記録領域に記録するような構成を採用するのが望ましい。
このような構成を実現するために、例えば半導体メモリーカードは、半導体メモリーカードの固有の識別子と言った秘匿性の高いデータを記録するための記録領域を通常のデータを格納する記録領域(第1の記録領域と称す)とは別の記録領域(第2の記録領域と称す)に設けること、およびこの第2の記録領域へのアクセスをするための制御回路を設けるとともに、第2の記録領域へのアクセスには制御回路を介してのみアクセスできるような構成とする。
【0227】
例えば、第2の記録領域に記録されているデータは暗号化がなされて、記録されており、制御回路は、例えば暗号化されたデータを復号するための回路が組み込まれている。制御回路へ第2の記録領域へのデータのアクセスが合った場合には、暗号を復号し、復号したデータを返すように構成すれば良い。または、制御回路は第2の記録領域に記録されているデータの格納場所の情報を保持しており、データのアクセスの要求があれば、対応するデータの格納場所を特定し、特定した格納場所から読み取ったデータを返すような構成としても良い。

再生装置上で動作するアプリケーションで、電子配信を利用して半導体メモリーカードに記録する要求するアプリケーションは、メモリーカードI/Fを介して制御回路へ第2の記録領域に記録されたデータ(例えば半導体メモリ固有の識別番号)へのアクセス要求を発行すると、要求を受けた制御回路は第2の記録領域に記録されたデータを読み出して再生装置上で動作するアプリケーションへ返す。この半導体メモリーカードの固有の識別番号とともに必要なデータの配信要求を配信サーバに要求し、配信サーバから送られる公開鍵情報、および対応する配信データを第1の記録領域に記録するように構成すればよい。
【0228】
また、再生装置上で動作するアプリケーションで、電子配信を利用して半導体メモリーカードに記録を要求するアプリケーションは、メモリーカードI/Fを介して制御回路へ第2の記録領域に記録されたデータ(例えば半導体メモリ固有の識別番号)へのアクセス要求を発行する前に、アプリケーションの改竄がされていないかを事前にチェックすることが望ましい。改竄のチェックには例えば既存のX.509仕様に準拠したデジタル証明書を利用したチェックなどを利用しても良い。
【0229】
また、半導体メモリーカードの第1の記録領域に記録された配信データへのアクセスは半導体メモリーカードが有する制御回路を介してアクセスする必要は必ずしもない。
【産業上の利用可能性】
【0230】
本発明は、立体視映像を再生する再生機器において、描画更新のタイミングにおけるちらつきを抑止する技術に関し、特に、再生機器の映像出力と非同期に画像を更新する機能を持つ立体視映像再生装置に適用可能である。
【符号の説明】
【0231】
100 記録媒体
200 再生装置
300 リモコン
400 テレビ
500 シャッター眼鏡

【特許請求の範囲】
【請求項1】
再生装置であって、
記録媒体に記録されているビデオストリームをデコードして、立体視映像の再生を行う再生部と、
アプリケーションを動作させるプラットフォーム部と、
複数のプレーンメモリと、
アプリケーションからのアプリケーションプログラムインターフェイスの呼び出しに応じて、複数のプレーンメモリに対する描画イメージの書き込みを行う描画部とを備え、
複数のプレーンメモリには、レフトビュープレーンメモリと、ライトビュープレーンメモリとがあり、
前記アプリケーションプログラムインターフェイスの引数は、レフトビュープレーンメモリへの書き込み指定と、ライトビュープレーンメモリへの書き込み指定とのペアを含む
ことを特徴とする再生装置。
【請求項2】
前記プレーンメモリに書き込まれる描画イメージは、記録媒体に記録されたデータ構造体のインスタンスであり、
レフトビュープレーンメモリへの書き込み指定及びライトビュープレーンメモリへの書き込み指定は、
書き込みの対象となるインスタンスの指定と、
レフトビュープレーンメモリ及びライトビュープレーンメモリにおける座標の指定とを含む
ことを特徴とする請求項1記載の再生装置。
【請求項3】
前記描画イメージは、複数のラインデータからなり、
前記レフトビュープレーンメモリ及びライトビュープレーンメモリのうち、何れか一方にラインデータが書き込まれれば、
前記描画部は、レフトビュープレーンメモリ及びライトビュープレーンメモリのうち他方のプレーンメモリに対して、当該ラインデータと同じ行のラインデータの書き込みを行う
ことを特徴とする請求項1記載の再生装置。
【請求項4】
前記レフトビュープレーンメモリ及びライトビュープレーンメモリのそれぞれは、ダブルバッファであり、ダブルバッファを構成する2つのバッファのうち一方のものは表示対象バッファに割り当てられ、他方のものは描画対象バッファに割り当てられ、
前記描画部による描画イメージの書き込み先は、描画対象バッファであり、
表示対象バッファには、既に書き込みが完了した描画イメージであって、現在表示に供されている描画イメージが格納され、
描画対象バッファへの書き込みが完了した際、これまで描画対象バッファに割り当てらえていたバッファを表示対象バッファに変更し、これまで表示対象バッファに割り当られていたバッファを描画対象バッファに変更することで、描画イメージの立体視再生の更新を行う
ことを特徴とする請求項1記載の再生装置。
【請求項5】
アプリケーションプログラムインターフェイスの呼び出しがなされた場合、レフトビュープレーンメモリを構成する描画対象バッファ、及び、ライトビュープレーンメモリを構成する描画対象バッファのうち、何れか一方の書き込みを先に行い、当該書き込みが完了した後、レフトビュープレーンメモリを構成する描画対象バッファ、及び、ライトビュープレーンメモリを構成する描画対象バッファのうち、他方の書き込みを行う
ことを特徴とする請求項4記載の再生装置。
【請求項6】
記録媒体には複数のコンテンツが記録されており、
前記ビデオストリームは、特定のコンテンツに含まれており、
前記プラットフォーム部は、
複数のコンテンツのうち、特定のコンテンツが再生対象になった際、前記再生対象のコンテンツに対応するアプリケーション管理テーブルに従ってアプリケーションを起動して実行し、
レフトビュープレーンメモリ及びライトビュープレーンメモリは、
動作モードオブジェクト内のコンフィグレーション情報に従って、メモリデバイス上に確保される
ことを特徴とする請求項1記載の再生装置。
【請求項7】
前記コンフィグレーション情報は、解像度コードを含み、解像度コードは、縦画素数及び横画素数を示す
ことを特徴とする請求項6記載の再生装置。
【請求項8】
コンピュータ上で再生処理を行う再生方法であって、
記録媒体に記録されているビデオストリームをデコードして、立体視映像の再生を行う再生ステップと、
アプリケーションを動作させるプラットフォームステップと、
アプリケーションからのアプリケーションプログラムインターフェイスの呼び出しに応じて、コンピュータにおける複数のプレーンメモリに対する描画イメージの書き込みを行う描画ステップとを備え、
前記複数のプレーンメモリには、レフトビュープレーンメモリと、ライトビュープレーンメモリとがあり、
前記アプリケーションプログラムインターフェイスの引数は、レフトビュープレーンメモリへの書き込み指定と、ライトビュープレーンメモリへの書き込み指定とのペアを含む
ことを特徴とする再生方法。
【請求項9】
コンピュータに再生処理を実行させるプログラムであって、
記録媒体に記録されているビデオストリームをデコードして、立体視映像の再生を行う再生ステップと、
アプリケーションを動作させるプラットフォームステップと、
アプリケーションからのアプリケーションプログラムインターフェイスの呼び出しに応じて、コンピュータにおける複数のプレーンメモリに対する描画イメージの書き込みを行う描画ステップとをコンピュータに実行させ、
前記複数のプレーンメモリには、レフトビュープレーンメモリと、ライトビュープレーンメモリとがあり、
前記アプリケーションプログラムインターフェイスの引数は、レフトビュープレーンメモリへの書き込み指定と、ライトビュープレーンメモリへの書き込み指定とのペアを含む
ことを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate

【図35】
image rotate


【公開番号】特開2013−59036(P2013−59036A)
【公開日】平成25年3月28日(2013.3.28)
【国際特許分類】
【出願番号】特願2012−223489(P2012−223489)
【出願日】平成24年10月5日(2012.10.5)
【分割の表示】特願2011−500496(P2011−500496)の分割
【原出願日】平成22年2月12日(2010.2.12)
【出願人】(000005821)パナソニック株式会社 (73,050)
【Fターム(参考)】