(57)【要約】      （修正有）【課題】ビデオのスケーリングを伴ったGUI処理を実現しつつも、臨場感の低減を図り、消費者保護を遵守する。【解決手段】オフセット設定部２１は、立体視を実現するにあたって、右方向及び左方向のそれぞれに、画素の座標をどれだけ移動させるべきかの基準を示すオフセットを保持する。プレーンシフトエンジン２０は、プレーンメモリにおけるグラフィクスデータを構成する画素データのそれぞれの座標を、水平方向に、オフセットに応じた画素数だけ移動させる。合成部１６は、ビデオフレームに、画素データの座標が移動されたグラフィクスデータを合成する。ここで、ビデオフレームのスケールが変更された場合、シフトエンジンによる画素データにおける座標の移動量は、オフセットに水平方向の変更後のスケーリング倍率を乗じた値の小数点以下の数値をくり上げた画素数とする。【選択図】図４
2011239373.tif 000002
【特許請求の範囲】
【請求項１】
立体視再生を実現する再生装置であって、
ビデオストリームをデコードしてビデオフレームを得るビデオデコーダと、
所定の縦画素数×横画素数からなる複数の画素データから構成されるグラフィクスデータを格納するプレーンメモリと、
立体視を実現するにあたって、右方向及び左方向のそれぞれに、画素の座標をどれだけ移動させるべきかの基準を示すオフセットを保持するオフセット保持部と、
プレーンメモリにおけるグラフィクスデータを構成する画素データのそれぞれの座標を、水平方向に、オフセットに応じた画素数だけ移動させるシフトエンジンと、
ビデオフレームに、画素データの座標が移動されたグラフィクスデータを合成する合成部とを備え、
前記ビデオフレームのスケールが変更された場合、前記シフトエンジンによる画素データにおける座標の移動量は、前記オフセットに水平方向の変更後のスケーリング倍率を乗じた値の小数点以下の数値をくり上げた画素数とする
ことを特徴とする再生装置。
【請求項２】
前記プレーンメモリに書き込まれるグラフィクスは、アプリケーションによって書き込まれたものである
ことを特徴とする請求項１記載の再生装置。
【請求項３】
前記プレーンメモリに書き込まれるグラフィクスは、ユーザオペレーションを受け付けるグラフィカルユーザインターフェイスを構成するものである
ことを特徴とする請求項１記載の再生装置。
【請求項４】
画素の移動量を算出するための乗算は、前記プレーンメモリのグラフィクスデータの解像度を保つキープレゾレリューションモードの要求があったとしても実行される
ことを特徴とする請求項１記載の再生装置。
【請求項５】
前記シフトエンジンは、複数の移動量のそれぞれを、アプリケーションから要求されるスケーリング倍率に対応付けて示すマッピングテーブルを有し、
移動量の乗算は、
マッピングテーブルに記載された複数移動量のうち、アプリケーションから指定されたスケーリング倍率に対応するものを読み出すことでなされる
ことを特徴とする請求項１記載の再生装置。
【請求項６】
前記シフトエンジンは、
スケーリング前のオフセットを前情報として保存する前情報保存部と、
スケーリング完了後の画素の移動量であって、オフセットにスケーリング倍率を乗じた画素数を後情報として保存する後情報保存部と、
スケーリング要求発生から何フレームが経過しているかを示す更新済みフレームiをフレーム処理の経過に従い更新するフレームカウンタとを備え、
前記乗算で求められるグラフィクスデータにおける画素データの移動量は、スケーリング命令の発生後からフレームNが経過した時点での移動量D(N)であり、
スケーリング要求の発生時点からフレームi(i≦N)が経過した時点での画素の移動量D(i)を、前情報と、後情報と、前記乗算によって得られた移動量D(N)と、フレームカウンタにて更新されるフレーム数iとを用いて算出する
ことを特徴とする請求項１記載のビデオ再生装置。
【請求項７】
前記フレームカウンタ部は、
何フレームかけてシフトを行うかを示すフレーム更新スパンを保持するフレーム更新スパン保持部を備え、
前記フレーム更新スパン保持部に保存されているフレーム更新スパンに、更新済みフレームiが近づけば近づくほど、連動して画素の移動量P(i)も変更する
ことを特徴とする請求項６記載の再生装置。
【請求項８】
前記フレームカウンタ部は、
何フレームかけてシフトを行うかを示すフレーム更新スパンを保持するフレーム更新スパン保持部を備え、
フレームiが、前記フレーム更新スパン保持部に保存されているフレーム更新スパンに到達するまではビデオプレーンのみを出力し、更新済みフレームiが、フレーム更新スパンに到達した時点で、移動量D(N)だけ画像データの座標を移動させて、プレーンメモリにおける画素をビデオフレームを構成する各画素と合成させる
ことを特徴とする請求項６記載の再生装置。
【請求項９】
前記乗算で求められるグラフィクスデータの画素の移動量は、スケーリング命令の発生後からフレームNが経過した時点での移動量D(N)であり、
スケーリング命令の発生からフレームi(i≦N)が経過した時点での画素の移動量D(i)は、以下の数式に基づき算出される画素の移動量D(i)＝ (Offset−(Factor×Offset))×(i/N)
Offset:オフセットに示される画素数、Factor:スケーリング倍率
ことを特徴とする請求項１記載の再生装置。
【請求項１０】
前記プレーンメモリは、グラフィクスデータを格納するグラフィクスプレーンであり、
前記再生装置は更に、デコーダによって得られたビデオフレームを格納するプレーンメモリであるビデオプレーンを備え、
前記シフトエンジンは、
ビデオプレーンにおけるビデオフレームに対してスケーリングが施される場合、グラフィクスプレーンにて保持されているグラフィクスデータだけではなく、ビデオフレームを構成する画素データの座標を移動させることができ、
前記プレーンシフトエンジンがビデオプレーンにおけるビデオフレームの画素データを移動する場合、ビデオプレーンにおける画素データの移動量と、グラフィクスプレーンにおける画素データの移動量との相対値が、前記オフセットに水平方向の変更後のスケーリング倍率を乗じた画素数に基づいた値になる
ことを特徴とする請求項１記載の再生装置。
【請求項１１】
前記ビデオプレーンにおける画像データの座標のプレーンオフセットVは、以下の数式に基づき算出される
座標プレーンオフセットV＝D−(Factor×D)
D:グラフィクスプレーンにおけるオフセット
Factor:スケーリングFactor
ことを特徴とする請求項１０記載の再生装置。
【請求項１２】
コンピュータ上で立体視再生を実現する再生方法であって、
ビデオストリームをデコードしてビデオフレームを得るデコードステップと、
所定の縦画素数×横画素数からなる複数の画素データから構成されるグラフィクスデータをコンピュータにおけるプレーンメモリに書き込む書込ステップと、
立体視を実現するにあたって、右方向及び左方向のそれぞれに、画素の座標をどれだけ移動させるべきかの基準を示すオフセットを取得する取得ステップと、
プレーンメモリにおけるグラフィクスデータを構成する画素データのそれぞれの座標を、右方向及び左方向のそれぞれに、オフセットに応じた画素数だけ移動させるシフトステップと、
デコードによって得られたビデオフレームに、画素データの座標が移動されたグラフィクスデータを合成する合成ステップとを有し、
前記ビデオフレームのスケールが変更された場合、前記シフトステップによる画素データにおける座標の移動量は、前記オフセットに水平方向の変更後のスケーリング倍率を乗じた値の小数点以下の数値をくり上げた画素数とする
ことを特徴とする再生方法。
【請求項１３】
コンピュータに立体視再生を実現させるプログラムであって、
ビデオストリームをデコードしてビデオフレームを得るデコードステップと、
所定の縦画素数×横画素数からなる複数の画素データから構成されるグラフィクスデータをコンピュータにおけるプレーンメモリに書き込む書込ステップと、
立体視を実現するにあたって、右方向及び左方向のそれぞれに、画素の座標をどれだけ移動させるべきかの基準を示すオフセットを取得する取得ステップと、
プレーンメモリにおけるグラフィクスデータを構成する画素データのそれぞれの座標を、水平方向に、オフセットに応じた画素数だけ移動させるシフトステップと、
デコードによって得られたビデオフレームに、画素データの座標が移動されたグラフィクスデータを合成する合成ステップとをコンピュータに実行させ、
前記ビデオフレームのスケールが変更された場合、前記シフトステップによる画素データにおける座標の移動量は、前記オフセットに水平方向の変更後のスケーリング倍率を乗じた値の小数点以下の数値をくり上げた画素数とする
ことを特徴とするプログラム。
【請求項１４】
前記プレーンメモリに書き込まれるグラフィックスは、グラフィックスストリームをデコードすることにより得られたグラフィックスデータまたは字幕ストリームをデコードすることにより得られた字幕データであることを特徴とする請求項１に記載の再生装置。
【請求項１５】
前記ビデオフレームのスケールの変更は、アプリケーションから指定させる
ことを特徴とする請求項１記載の再生装置。
【請求項１６】
前記スケーリング倍率は、ユーザオペレーションから指定される
ことを特徴とする請求項１記載の再生装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、立体視再生の技術分野に属する発明である。
【背景技術】
【０００２】
立体視再生技術とは、左目と右目とで異なる絵を見せる仕組みを導入し、その両目間の視差を利用することにより、立体的な映像を擬似的に作る技術をいう。
現状、立体視再生技術の応用は、劇場等での応用が主流であるが、家庭設置用のディスプレイや再生装置で立体視再生を楽しむ利用形態も、今後の急速な普及が期待される。
【０００３】
立体視画像をユーザに視聴させるためのディスプレイ(立体視ディスプレイ)には、さまざまな方式がある。たとえば、よく使われる方式の一つにシャッターメガネを利用した方式がある。この方式では、視聴者の左目と右目の視野を、メガネによって交互に高速にふさぎ、このメガネの動作と同期してディスプレイの表示画像も左目用・右目用と高速で更新する。こうすることで、結果的にディスプレイで表示される左目用の画像はシャッターメガネにより左目だけが見え、逆に右目用の画像は右目だけが見える。
【０００４】
通常のフラットな映像と同等のフレームレートで立体化された映像を視聴者に見せようとすると、再生装置側では、右目、左目のそれぞれで見ることができる2つの動画像を再生せねばならず、ディスプレイ側では、通常の２倍の応答性能が必要である。たとえば一秒６０コマのビデオを表示するためには最低、１秒１２０コマの切り替えをしなければならない。家庭設置用再生装置の先行技術には、以下の特許文献１に記載されたものがあり、立体視再生の先行技術には、以下の特許文献２に記載されたものがある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開公報第２００５/１１９６７５号公報
【特許文献２】米国公開公報第２００８/０１９２０６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
立体視可能な映画作品を光ディスクなどの記録媒体に記録して頒布することを考えた場合、動画像に字幕・GUI等のグラフィクスが合成されているような合成映像の立体視をどのようにして実現するかという議論がある。
【０００７】
１つ目の方法は、左目用、右目用のビデオストリームを用意しておいて、対応する左目用字幕と右目用字幕を別々に用意させておき、各自重ね合わせて表示させる方法である。
２つ目の方法は、特許文献２のように、一つのビデオストリームと、それに対応するDepth情報からビデオに立体効果をもたらし、その上に字幕オブジェクトを重ね合わせる方法である。この特許文献２では、字幕がビデオと重なる部分の奥行きをZeroパララックス、つまり奥行きを無くして表示することで、字幕とビデオとの奥行き感の違いをユーザに感じさせないようにしている。
【０００８】
３つ目の方法は、予め用意した左目用と右目用ビデオストリームに対し、一つの字幕オブジェクトを用意させておき、Depth情報からプレーンシフトにより立体効果をつけたものを重畳させる方法である。
【０００９】
１つ目の方法では、ビデオストリームのみならず、字幕・GUI用のグラフィクスストリームも左右双方のものを作成せねばならないので、オーサリングの負担が多大になる。これに対して２つ目の方法では、字幕表示のための左右のグラフィクスストリームを作る必要はなくなり、オーサリングの負担を軽減させることができるが、字幕がストリームと重なる部分については、奥行き感を失うので、見た目が余りよいとはいえない。
【００１０】
３つ目のプレーンシフトによる方法では、字幕・GUI用のグラフィクスストリームについて、左右双方のものを作成する必要はなく、また、字幕・GUIが動画像と重なる部分について奥行き感を失うこともないので、最も理想的なものとなる。ところが、プレーンシフトは、表示中の画面を拡大したり縮小したりするスケーリング機能を実行した際、その弊害が生じる。
【００１１】
レフトビューから見えるべき動画像、及び、ライトビューから見えるべき動画像を再生することで、ビデオストリームの立体視を実現していた場合、スケーリングが施されたとしてもレフトビューから見えるべき動画像、及び、ライトビューから見えるべき動画像が拡大したり、縮小するに過ぎないので、立体視再生に支障が出ることはない。
【００１２】
ところがグラフィクスは左目用と右目用で共有されているので、スケーリングにより文字は縮小されるものの、文字の位置がスケーリング前と同様なままとなり、字幕文字の奥行きは保たれることになる。そうなると、ビデオの奥行きは軽減したが、字幕はそのままという状態が生じ、スケーリング時にビデオと字幕・GUIの立体感の差が激しくなる。
【００１３】
スケーリングの前後で、レフトビューの字幕と、ライトビューの字幕との間隔が維持されたまま、ビデオの奥行きだけが変わってしまうと、動画像の飛び出し具合が、字幕の飛び出し具合と同一になり、スケーリング前に比べて、スケーリング後はビデオプレーンに対して字幕が大幅にシフトされる。そうすると動画像と、字幕との立体感の差が激しくなり目がついていけなくなる恐れがある。視聴者にとっては目の疲れが極端に増すため、消費者保護の観点からして望ましくないとの問題がある。
【００１４】
もっとも、プレーンシフトを採用した再生装置において、字幕が合成された状態でのスケーリングを禁じれば、上述したような問題が生じることはない。しかし現行の再生装置は、例えばフル画面による動画像の再生中に、メニューコールの操作がなされた際、フル画面のメニューを表示して、その上に縮小スケーリングしたビデオを表示させるという処理を実行する。かかる処理により、ビデオの視聴を妨げることなくメニューの視野を広げることが可能となるからである。ビデオのスケーリングを伴ったGUI処理は、メニューの視野を広げ、ユーザの利便性を保つものなので、たとえ立体視の実現のためとはいえ、スケーリングを伴ったGUI処理を省略することは、現行の光ディスク再生装置の利便性から退歩することを意味し、決して、産業界にとって有益な考え方とはいえない。
【００１５】
本発明の目的は、ビデオのスケーリングを伴ったGUI処理を実現しつつも、臨場感の低減を図り、消費者保護を遵守することができる再生装置を提供することである。
【課題を解決するための手段】
【００１６】
上記課題を解決するため本発明の一実施態様である再生装置は、立体視再生を実現する再生装置であって、
ビデオストリームをデコードしてビデオフレームを得るビデオデコーダと、
所定の縦画素数×横画素数からなる複数の画素データから構成されるグラフィクスデータを格納するプレーンメモリと、
立体視を実現するにあたって、右方向及び左方向のそれぞれに、画素の座標をどれだけ移動させるべきかの基準を示すオフセットを保持するオフセット保持部と、
プレーンメモリにおけるグラフィクスデータを構成する画素データのそれぞれの座標を、水平方向に、オフセットに応じた画素数だけ移動させるシフトエンジンと、
ビデオフレームに、画素データの座標が移動されたグラフィクスデータを合成する合成部とを備え、前記ビデオフレームのスケールが変更された場合、前記シフトエンジンによる画素データにおける座標の移動量は、前記オフセットに水平方向の変更後のスケーリング倍率を乗じた値の小数点以下の数値をくり上げた画素数とすることを特徴としている。
【発明の効果】
【００１７】
上述の構成により本発明に係る立体視ビデオ再生装置では、字幕付きビデオのスケーリング時に字幕のシフト量が調整されていることにより、スケーリングを伴ったGUI処理を行うにあたって、ビデオと字幕の画面構成が保たれ、立体感の差が激しくなることを防ぐことができる。これにより目の疲れを軽減するとともに、より自然な表示が行えるようになるので、消費者保護の万全化を図ることができる。
【００１８】
任意的ではあるが、上記課題解決手段に、以下のような変更を施すことにより、更なる効果を奏することができる。
プレーンオフセットから座標値への変換を、テーブルを用いて行うという演算のテーブル化を実現してもよい。こうすることで、機器リソースが少ない端末においてもスケーリング時の字幕の奥行きを変更することが可能となる。
【００１９】
さらには、字幕付きビデオのスケーリング時に、ビデオプレーンのシフト量を調整してもよい。ビデオプレーンのシフトによって、立体感の差が激しくなることを防ぎ、目の疲れを軽減するとともに、より自然な表示が行うことが可能である。
【００２０】
さらには、字幕付きビデオのスケーリング時に字幕のシフト量をフレーム単位で少しずつ調整してもよい。これにより、立体感の差が激しくなることを防ぎ、目の疲れを軽減するとともに、より自然な表示が行えるようになる。
【００２１】
さらには、字幕付きビデオのスケーリング時に字幕の表示を一定時間無効にし、一定時間が過ぎた時点で表示させてもよい。これにより、ユーザの目が立体感の差になれた状態で字幕が表示されることになり、立体感の差が激しくなることを防ぎ、目の疲れを軽減するとともに、より自然な表示が行えるようになる。
【図面の簡単な説明】
【００２２】
【図１】記録媒体、再生装置の、使用行為についての形態の一例を示す図である。
【図２】BD-ROM１００の内部構成の一例を示す図である。
【図３】BD-Jオブジェクトの内部構成の一例を示す図である。
【図４】再生装置の内部構成の一例を示す図である。
【図５】2D表示モード、3D表示モードの切り替えの一例を示す図である。
【図６】3D表示モードにおいて、各プレーンのステレオモードが全てオンである場合と、ステレオモードが全てオフである場合の合成処理の一例を示す図である。
【図７】全プレーンがステレオモードONである場合に、バックグラウンドプレーン１１、ビデオプレーン、イメージプレーン８、インタラクティブグラフィクスプレーン１０を重ねあわせる一例を示す図である。
【図８】全プレーンがステレオモードOFFである場合に、バックグラウンドプレーン１１、ビデオプレーン、イメージプレーン８、インタラクティブグラフィクスプレーン１０を重ねあわせる一例を示す図である。
【図９】プレーン毎の合成結果の一例を示す図である。
【図１０】全プレーンがステレオモードON時における映像出力を3D用ディスプレイで見た場合の一例を示す図である。
【図１１】ビデオプレーンはステレオモードONだが、それ以外のプレーンは全てステレオモードOFFにした場合の映像出力を、液晶眼鏡５００で見た場合に現れる立体視映像の一例を示す図である。
【図１２】右方向にシフトされたShifted Leftグラフィクスプレーン、左方向にシフトされたShifted Leftグラフィクスプレーンの一例を示す図である。
【図１３】プレーンオフセットの符号が正（レフトビュー用のグラフィクスイメージを右方向へずらし、ライトビュー用のグラフィクスイメージを左方向へずらす）である場合、像が表示画面よりも手前にあるように見える原理を説明するための図である。
【図１４】プレーンオフセットの符号が負（レフトビュー用のグラフィクスイメージを左方向へずらし、ライトビュー用のグラフィクスイメージを右方向へずらす）である場合、像が表示画面よりも奥にあるように見える原理を説明するための図である。
【図１５】正と負のプレーンオフセットの見え方の違いの一例を正示す図である。
【図１６】（ａ）は、ステップＳ７０４ｂの具体的処理の一例を説明するための図、（ｂ）はステップＳ７０６ｂの具体的処理の一例を説明するための図である。
【図１７】動画像に対してスケーリングがなされた場合に、ユーザによって視聴される立体視画像の一例を示す図である。
【図１８】動画像に対してスケーリングがなされた場合、プレーンシフトにおけるプレーンオフセットをどのように定めればよいかを示す。
【図１９】スケーリング前の動画像との合成に用いられたプレーンオフセットを、イメージプレーンのプレーンシフトに適用した場合に表示される立体視画像の一例を示す図である。
【図２０】スケーリング前の動画像との合成に用いられたプレーンオフセットを、イメージプレーンのプレーンシフトに適用した場合に表示される立体視画像の一例を示す図である。
【図２１】本実施形態１に係る再生装置２００のプレーンシフトエンジン２０の内部構成の一例を示す図である。
【図２２】1/1、1/2、1/4という3つのスケーリングFactorと、各スケーリングFactorが適用された場合の、字幕・GUIを含むグラフィクスの合成画像との一例を示す図である。
【図２３】（ａ）は、ステップＳ８０６ｂの具体的処理の一例を説明するための図、（ｂ）はステップＳ８０８ｂの具体的処理の一例を説明するための図である。
【図２４】1/1、1/2、1/4という3つのスケーリングFactorと、各スケーリングFactorが適用された場合の、字幕グラフィクスの合成画像との一例を示す図である。
【図２５】（ａ）は、ステップＳ７０６ａの具体的処理の一例を説明するための図、（ｂ）はステップＳ８０８ａの具体的処理の一例を説明するための図である。。
【図２６】イメージプレーン８の内部構成の一例を示す図である。
【図２７】右方向のシフト、左方向のシフトがなされた後の、前景領域の画素データ及び背景領域の画素データの一例を示す図である。
【図２８】インタラクティブグラフィクスプレーン１０の内部構成の一例を示す図である。
【図２９】右方向のシフト、左方向のシフトがなされた後の、前景領域の画素データ及び背景領域の画素データの一例を示す図である。
【図３０】イメージプレーン８におけるプレーンシフトの処理手順の一例を示す図である。
【図３１】インタラクティブグラフィクスプレーン１０におけるプレーンシフトの処理手順の一例を示す図である。
【図３２】グラフィクスプレーンに格納されている画素データの一例を示す図である。
【図３３】シフトがなされた後のグラフィクスプレーンの格納内容の一例を示す図である。
【図３４】BD-Jプラットフォーム部の内部構成の一例を示す図である。
【図３５】表示モード記憶部２９における記憶内容の一例を示す図である。
【図３６】タイトル切り替え時の表示モード設定の処理手順の一例を示すフローチャートである。
【図３７】タイトル内表示モード設定の処理手順の一例を示すフローチャートである。
【図３８】BD-Jモードにおけるプレイリスト再生の主たる手順の一例を示すフローチャートである。
【図３９】プレイアイテム情報に基づく再生手順の一例を示すフローチャートである。
【図４０】3DAVストリームの3D表示の処理手順の一例を示すフローチャートである。
【図４１】3D表示モード時の左目用処理の手順の一例を示すフローチャートである。
【図４２】右目用処理の処理手順の一例を示すフローチャートである。
【図４３】（ａ）は、ステップＳ７０２、ステップＳ８０４ａの具体的処理の一例を説明するための図、（ｂ）は、ステップＳ８０４ｂの具体的処理の一例を説明するための図である。
【図４４】（ａ）は、ステップＳ７０４ａの具体的処理の一例を説明するための図、（ｂ）はステップＳ８０６ａの具体的処理の一例を説明するための図である。
【図４５】実施の形態２におけるステップＳ８０４ｂの具体的処理の一例を説明するための図である。
【図４６】第２実施形態における再生装置のプレーンシフトエンジン２０の内部構成の一例を示すブロック図である。
【図４７】（ａ）は、実施の形態２におけるステップＳ７０２の具体的処理の一例を説明するための図、（ｂ）は、ステップＳ８０４ａの具体的処理の一例を説明するための図である。
【図４８】スケーリングがなされた動画像及びグラフィクスの座標を所定の画素数だけ移動させることを意図した状況の一例を示す図である。
【図４９】第３実施形態における再生装置のプレーンシフトエンジン２０の内部構成の一例を示すブロック図である。
【図５０】3DAVストリームの3D表示の処理手順の一例を示すフローチャートである。
【図５１】イメージプレーンのプレーンシフトの処理手順の一例を示すフローチャートである。
【図５２】更新済みフレームiが“１”、“２”、“３”と更新されてゆく場合に、プレーンオフセットがどのように変化するかの一例を示す図である。
【図５３】プレーンオフセットの設定に関わる部分の構成の一例を示す図である。
【図５４】再生装置のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００２３】
図面を参照しながら、上記課題解決手段を具備した記録媒体、及び、再生装置の実施形態について説明する。
図１は、記録媒体、再生装置の、使用行為についての形態の一例を示す図である。本図に示すように、記録媒体の一例であるBD-ROM１００、再生装置２００は、リモコン３００、テレビ４００、液晶眼鏡５００と共にホームシアターシステムを構成し、ユーザによる使用に供される。
【００２４】
BD-ROM１００は、上記ホームシアターシステムに、例えば映画作品を供給する。
再生装置２００は、テレビ４００と接続され、BD-ROM１００を再生する。こうして再生される再生映像には、2D映像、3D映像が存在する。2D映像とは、例えば表示装置の表示画面を含む平面をX-Y平面として捉えて、このX-Y平面上に位置する表示画面の表示位置における画素にて表現される画像であり、平面視画像とも呼ばれる。
【００２５】
対照的に3D映像とは、上述のX-Y平面として捉えた平面と直交する直線を軸とし（本実施の形態ではX-Y平面に垂直な直線を軸（Z軸）として定義する）、表示装置の表示画面におけるX-Y平面上の画素に、本実施の形態で説明する構成を採用することにより、人の目には立体的に見えるようにした、または表示画面よりも手前または奥に見えるようにした映像である。
【００２６】
3D映像は、例えば左目で視聴すべきレフトビュー映像と、右目で視聴すべきライトビュー映像とに対応するデータ（ストリームデータ）を後述する図４に記載の仮想ファイルシステムを介して読み出せる記録媒体（例えば、BD-ROM１００または後述する図４に示すローカルストレージ１ｃ、ここでは説明を簡単にするためBD-ROM１００を例にして説明をする）に記録しておき、左目で視聴すべきレフトビュー映像と、右目で視聴すべきライトビュー映像とが両目の視差の程度において見え方が異なる映像である場合、レフトビュー映像を左目のみに見せるようにし、ライトビュー映像を右目のみに見せるようにするという動作を繰り返すと、人の目には奥行きのある立体的な映像としてユーザに見せることができる。しかしながら、レフトビュー映像と、ライトビュー映像のうちの一方しか再生に利用しない場合には、人の目には平面的な映像としてしか見えない。例えばレフトビューの映像を左目にも右目にも見せるようにすると、レフトビューの映像は、人の目には平面的な映像としてしか見えない。
【００２７】
リモコン３００は、階層化されたGUIに対する操作をユーザから受け付ける機器であり、かかる操作受け付けのため、リモコン１００は、GUIを構成するメニューを呼び出すメニューキー、メニューを構成するGUI部品のフォーカスを移動させる矢印キー、メニューを構成するGUI部品に対して確定操作を行う決定キー、階層化されたメニューをより上位のものにもどってゆくための戻りキー、数値キーを備える。
【００２８】
テレビ４００は、映画作品の再生映像を表示したり、メニュー等を表示することで、対話的な操作環境をユーザに提供する。本図におけるテレビ４００の表示画面は、ビデオをスケーリングしてGUIをフル画面化した表示例を示している。このテレビ４００の画面のうち、右半分は、映画作品の監督によって記述されたディレクターズコメントcm1を表示している
テレビ４００の画面のうち、下半分は、ネクストスキップ、プレビアススキップを受け付けるボタン部材bn1、メニューコールを受け付けるボタン部材bn2、戻る操作を受け付けるボタン部材bn3、ネットワーク接続を受け付けるボタン部材bn4を含み、カレントタイトルの番号及びカレントチャプターの番号を表示するためのインディケータir1を含む。これらのボタン部材については、リモコン３００による操作が可能となる。
【００２９】
液晶眼鏡５００は、液晶シャッタと、制御部とから構成され、ユーザの両目における視差を用いて立体視を実現する。液晶眼鏡５００の液晶シャッタは、印加電圧を変えることにより、光の透過率が変化する性質を有する液晶レンズを用いたシャッタである。液晶眼鏡５００の制御部は、再生装置から送られるライトビュー用の画像とレフトビュー用の画像の出力の切り替えの同期信号を受け、この同期信号に従って、第１の状態、第２の状態の切り替えを行う。
【００３０】
第１の状態とは、ライトビューに対応する液晶レンズが光を透過しないように印加電圧を調節し、レフトビューに対応する液晶レンズが光を透過するように印加電圧を調節した状態であり、この状態において、左目にレフトビュー用の画像が視聴に供され、右目にはレフトビュー用の画像が視聴に供されない状態となる。
【００３１】
第２の状態とは、ライトビューに対応する液晶レンズが光を透過するように印加電圧を調節し、レフトビューに対応する液晶レンズが光を透過しないように印加電圧を調節した状態であり、この状態において、右目にライトビュー用の画像を視聴に供され、左目にはライトビュー用の画像が視聴に供されない状態となる。
【００３２】
一般にライトビュー用の画像と、レフトビュー用の画像は、その撮影位置の差に起因して、ライトビューから見える像とレフトビューから見える像には見え方に若干の差があるような画像である。
【００３３】
この像の見え方の差の程度を人間の左目／右目のそれぞれから見える像の差の程度（つまり、視差の程度）とすることにより、利用して人間の目から見える像を立体として認識できるのである。そこで、液晶眼鏡５００が、以上のような第１の状態、第２の状態の切り替えを、ライトビュー用の画像とレフトビュー用の画像の出力の切り替えタイミングに同期させれば、ユーザは、平面的な表示が立体的に見えると錯覚する。次に、ライトビュー映像、レフトビュー映像を表示するにあたっての時間間隔について説明する。
【００３４】
具体的には、平面表示の画像において、ライトビュー用の画像とレフトビュー用の画像には人間の視差に相当する見え方の差に相当する程度の差があり、これらの画像を短い時間間隔で切り替えて表示することにより、あたかも立体的な表示がなされているように見えるのである。
【００３５】
この短い時間間隔というのは、上述の切り替え表示により人間が立体的に見えると錯覚する程度の時間であれば足りる。
以上がホームシアターシステムについての説明である。
【００３６】
続いて再生装置２００が再生の対象としている、記録媒体について説明する。再生装置２００により、再生されるのは、BD-ROM１００である。図２は、BD-ROM１００の内部構成の一例を示す図である。
【００３７】
本図の第４段目に記録媒体の一例であるBD-ROM１００を示し、第３段目にBD-ROM１００上のトラックを示す。本図のトラックは、BD-ROM１００の内周から外周にかけて螺旋状に形成されているトラックを、横方向に引き伸ばして描画している。このトラックは、リードイン領域と、ボリューム領域と、リードアウト領域とからなる。また、リードインの内側にはBCA（Burst Cutting  Area）と呼ばれるドライブでしか読み出せない特別な領域がある。この領域はアプリケーションから読み出せないため、例えば著作権保護技術などに利用されることがよくある。
【００３８】
本図のボリューム領域は、ファイルシステム層、応用層というレイヤモデルをもち、ファイルシステム層には、ファイルシステム情報を先頭に映像データなどのアプリケーションデータが記録されている。ファイルシステムとは、UDFやISO９６６０などのことであり、通常のPCと同じように記録されている論理データをディレクトリ、ファイル構造を使って読み出しする事が可能になっており、２５５文字のファイル名、ディレクトリ名を読み出すことが可能である。ディレクトリ構造を用いてBD-ROMの応用層フォーマット(アプリケーションフォーマット)を表現すると、図中の第１段目のようになる。この第1段目においてBD-ROMには、Rootディレクトリの下に、CERTIFICATEディレクトリ、及びBDMVディレクトリがある。
【００３９】
CERTIFICATEディレクトリの配下には、ディスクのルート証明書のファイル(app.discroot.cert)が存在する。app.discroot.certはJava（登録商標）仮想マシンを用いて動的なシナリオ制御を行うJava（登録商標）アプリケーションのプログラムを実行する際に、アプリケーションが改竄されていないか、及びアプリケーションの身元確認を行なうプロセス（以下、署名検証という）に用いられるデジタル証明書である。
【００４０】
BDMVディレクトリはBD-ROM１００で扱うAVコンテンツや管理情報などのデータが記録されているディレクトリであり、BDMVディレクトリの配下には、PLAYLISTディレクトリ、CLIPINFディレクトリ、STREAMディレクトリ、BDJOディレクトリ、JARディレクトリ、METAディレクトリと呼ばれる６つのサブディレクトリが存在し、INDEX.BDMVとMovieObject.bdmvの２種類のファイルが配置されている。
【００４１】
STREAMディレクトリは、いわばトランスポートストリーム本体となるファイルを格納しているディレクトリであり、拡張子m２tsが付与されたファイル(００００１.
m２ts)が存在する。
【００４２】
PLAYLISTディレクトリには、拡張子mplsが付与されたファイル(００００１.mpls)が存在する。
CLIPINFディレクトリには、拡張子clpiが付与されたファイル(００００１.clpi)が存在する。
【００４３】
BDJOディレクトリには、拡張子bdjoが付与されたファイル(XXXXX.bdjo)が存在する。
JARディレクトリには、拡張子jarが付与されたファイル(YYYYY.jar)が存在する。
METAディレクトリには、XMLファイル(ZZZZZ.xml)が存在する。
【００４４】
以下、これらのファイルについて説明する。
＜m2tsファイル＞
先ず初めに、拡張子m２ts;が付与されたファイルについて説明する。拡張子m２ts;が付与されたファイルは、MPEG-TS(TransportStream)形式のデジタルAVストリームであり、ビデオストリーム、1つ以上のオーディオストリーム、グラフィクスストリームを多重化することで得られる。ビデオストリームは映画の動画部分を、オーディオストリームは映画の音声部分をそれぞれ示している。2D用のストリームのみを含むトランスポートストリームを“2Dストリーム”、3D用のストリームを含むトランスポートストリームを“3Dストリーム”という。
【００４５】
3Dストリームの場合はm２tsの中に左目用と右目用の両方のデータを入れることができるし、左目用と右目用に別々にm２tsを用意することができる。ストリームに使われる容量を少なくするため、レフトビュービデオストリームとライトビュービデオストリームが相互参照をするようなコーデック（たとえば、MPEG-４
AVC MVC）を使うことが望ましい。そのようなコーデックで圧縮符号化されたビデオストリームを、MVCビデオストリームと呼ぶ。
【００４６】
＜プレイリスト情報＞
拡張子“mpls”が付与されたファイルは、PlayList(PL)情報を格納したファイルである。プレイリスト情報は、AVクリップを参照してプレイリストを定義する情報である。
【００４７】
BD-ROM１００上には再生対象のストリームが2D用か3D用かを識別する次元識別フラグが存在しており、本実施の形態ではプレイリスト（PL）情報に次元識別フラグを埋め込んでいる。
【００４８】
本実施の形態では、BD-ROM１００上のプレイリスト（PL）の構成フォーマットから再生対象のストリームに3D用のストリームが存在するかを特定できる。
プレイリスト情報は、MainPath情報、Subpath情報、PlayListMark情報を含む。
【００４９】
1)MainPath情報は、AVストリームの再生時間軸のうち、In＿Timeとなる時点と、Out＿Timeとなる時点の組みを1つ以上定義することにより、論理的な再生区間を定義する情報であり、AVストリームに多重化されているエレメンタリストリームのうち、どれの再生を許可し、どれの再生を許可しないかを規定するストリーム番号テーブル(STN＿table)をもつ。
【００５０】
2)PlayListMark情報は、In＿Time情報及びOut＿Time情報の組みにて指定されたAVストリームの一部分のうち、チャプターとなる時点の指定を含む。
3)Subpath情報は、1つ以上のSubPlayItem情報から構成され、SubPlayItem情報は、前記AVストリームと同期して再生すべきエレメンタリストリームの指定と、そのエレメンタリストリームの再生時間軸におけるIn＿Time情報及びOut＿Time情報の組みとを含む。再生制御のためのJava(登録商標)アプリケーションが、このプレイリスト情報を再生するJMFプレーヤインスタンスの生成をJava(登録商標)仮想マシンに命じることで、AV再生を開始させることができる。JMF(Java Media Frame work)プレーヤインスタンスとは、JMFプレーヤクラスを基にして仮想マシンのヒープメモリ上に生成される実際のデータのことである。
【００５１】
さらに、用語定義として2Dプレイリストは2D再生用のストリームのみが含まれるものであり、3Dプレイリストには2Dストリームに加えて、3D立体視用のストリームも含まれるものである。
【００５２】
拡張子“clpi”が付与されたファイルは、AVクリップのそれぞれに1対1に対応するClip情報である。管理情報故に、Clip情報は、AVクリップにおけるストリームの符号化形式、フレームレート、ビットレート、解像度等の情報や、GOPの先頭位置を示すEP＿mapをもっている。以上のClip情報及びプレイリスト情報は、“静的シナリオ”に分類される。
【００５３】
<BD-Jオブジェクト>
続いて、拡張子BDJOを付したファイルについて説明する。拡張子BDJOを付したファイルは、BD-Jオブジェクトを格納したファイルである。BD-Jオブジェクトは、プレイリスト情報により定義されるAVクリップ列と、アプリケーションとの関連付けにより、タイトルを定義する情報である。BD-Jオブジェクトは、“アプリケーション管理テーブル”と、“プレイリスト情報に対する参照値”とを示す。“プレイリスト情報に対する参照値”は、このタイトルの開始時に、同時に再生すべきプレイリスト情報を示す。アプリケーション管理テーブルは、このタイトルを生存区間とするアプリケーションを指定する情報を羅列したものである。
【００５４】
アプリケーション管理テーブルには、アプリケーション詳細情報として、アプリケーションの名称を示す文字列と、アプリケーションに対応づけるアイコンの所在を指し示すアイコンロケータとを、アプリケーション毎にさせて格納している。アイコンロケータは、Java（登録商標）アーカイブファイル内に含まれるアイコンをアドレスにより指し示す。
【００５５】
このJava（登録商標）アプリケーションの実体にあたるのが、図２におけるBDMVディレクトリ配下のJARディレクトリに格納されたJava（登録商標）アーカイブファイル(YYYYY.jar)である。
【００５６】
アプリケーションは例えばJava（登録商標）アプリケーションであり、仮想マシンのヒープ領域(ワークメモリとも呼ばれる)にロードされる1つ以上のxletプログラムからなる。BD-Jオブジェクト内のアプリケーション管理テーブルに従ってアプリケーションシグナリングがなされ、生存区間が管理されるのでBD-Jアプリケーションと呼ばれる。BD-Jアプリケーションは、インタラクティブ性の向上を目的としたものであり、BD-Jアプリケーションを動作させるべく、再生装置のプラットフォームにはスケーリングのサイズ（以降、スケーリングFactor）を入力情報としたスケーリング命令を発行できるAPIが定義されている。それ以外にも、ユーザが直接機器内に組み込まれたレジデントアプリケーションによってスケーリング命令を発行することも可能である。スケーリング命令の発行のタイミングは自由であり、ビデオストリームの再生中に発行されることもあれば、それ以外のタイミングで発行する。
【００５７】
METAディレクトリに格納されたメタファイル（ZZZZZ.xml）には、ディスクに入っている映像作品に関する様々な情報が格納されている。メタファイルに格納されている情報としては、ディスクのディスク名及び画像、ディスクが誰によって作成されたかの情報、各タイトルに関わるタイトル名等がある。以上がBD-ROM１００についての説明である。メタファイルは、必須のファイルではなく、このファイルが格納されていないBD-ROMもある。
【００５８】
以上がBD-ROMについての説明である。続いて、BD-Jオブジェクトについて説明する。図３は、BD-Jオブジェクトの内部構成の一例を示す図である。本図に示すように、BD-Jオブジェクトは、「アプリケーション管理テーブル」、「GUI管理テーブル」、「プレイリスト管理テーブル」から構成される。
【００５９】
以下、これらの構成要素について説明する。
「アプリケーション管理テーブル（AMT）」は、タイトルを生存区間としたアプリケーションシグナリングを、再生装置に行わせるためのテーブルである。引き出し線bj1は、アプリケーション管理テーブルの内部構成をクローズアップして示している。この引き出し線に示すように、アプリケーション管理テーブルは、BD-Jオブジェクトに対応するタイトルがカレントタイトルになった際、動作させるべきアプリケーションを特定する『アプリケーション識別子』と、『制御コード』とを含む。制御コードは、AutoRunに設定された場合、このアプリケーションをヒープメモリにロードした上、自動的に起動する旨を示し、Presentに設定された場合、このアプリケーションをヒープメモリにロードした上、他のアプリケーションからのコールを待って、起動すべき旨を示す。
【００６０】
「GUI管理テーブル（GMT）」は、動作中のアプリケーションがGUIを行う際の管理テーブルであり、GUI表示を実行するにあたっての解像度や、GUIに用いるフォントデータ、GUIに対するメニューコール、タイトルコールがユーザによってなされた場合、これらのコールをマスクするかどうかを規定するマスクフラグを含む。引き出し線bj2は、GUI管理テーブルの内部構成をクローズアップして示している。この引き出し線bj2に示すように、GUI管理テーブルは、HD3D＿1920×1080、HD3D＿1280×720、HD＿1920×1080、HD＿1280×720、QHD960×540,SD,SD＿50HZ＿720×576,SD＿60HZ＿720×480の何れかに設定することができる。
【００６１】
「プレイリスト管理テーブル（PLMT）」は、BD-Jオブジェクトに対応するタイトルがカレントタイトルになった際、自動的に再生されるべきプレイリストの指定を含む。引き出し線bj4は、自動再生プレイリストの内部構成をクローズアップして示している。引出線bj4に示すように、自動再生プレイリストを指定する情報として、3Dプレイリスト1920×1080、3Dプレイリスト1280×720、2Dプレイリスト1920×1080、2Dプレイリスト1280×720、2Dプレイリスト720×576、2Dプレイリスト720×480の指定が可能になる。
【００６２】
再生装置の構成要素を詳細に説明する。図４は、再生装置の内部構成の構成の一例を示す図である。本図に示すように、再生装置には、BDドライブ１a,ローカルストレージ1b、ネットワークインターフェース１ｂ,ローカルストレージ１c、リードバッファ２a,２b、仮想ファイルシステム３、デマルチプレクサ４、ビデオデコーダ５a,5b、ビデオプレーン６、イメージデコーダ７a,7b、イメージメモリ７c,7d、イメージプレーン８、オーディオデコーダ９、インタラクティブグラフィクスプレーン１０、バックグラウンドプレーン１１、レジスタセット１２、静的シナリオメモリ１３、再生制御エンジン１４、スケーリングエンジン１５、合成部１６、HDMI送受信部１７、表示機能フラグ保持部１８、左右処理記憶部１９、プレーンシフトエンジン２０、オフセット設定部２１、BD-Jプラットフォーム２２、レンダリングエンジン２２a、動的シナリオメモリ２３、モード管理モジュール２４、HDMVモジュール２５、UO検知モジュール２６、静止画メモリ２７a、静止画デコーダ２７b、表示モード設定イニシャル表示設定部２８、表示モード記憶部２９から構成される。
【００６３】
本実施形態において、BD-ROM１００には、図２に示すようなファイル構造のデータを格納しており、後述する仮想的なBD-ROM（仮想パッケージ）から左目用のビデオストリーム、右目用のビデオストリーム、字幕ストリーム、グラフィックスストリームが後述する図４に記載の仮想ファイルシステム３を介して読み出せる。ここでは説明を簡単にするため左目用のビデオストリーム、右目用のビデオストリームがBD-ROM１００に記録されているものを例にして説明をする）
また字幕ストリーム、グラフィックスストリームについては左目用／右目用のものがそれぞれBD-ROM１００に記録されていても良いし、１の字幕ストリーム、グラフィックスストリームを左右で共有する構成であっても良い。この場合、後述するようにオフセットを与えることにより、液晶眼鏡５００を介して見える字幕、グラフィックスは平面的な像ではあるものの、表示画面から飛び出た位置に見えるようにしたり、表示画面よりも奥に位置するように見えるようにすることができる。
【００６４】
このBD-ROM１００に記録された、左目用のビデオストリーム、右目用のビデオストリームのそれぞれが再生装置２００に入力されて再生される映像というのは人間の視差の程度において見え方（例えば見える角度）の違う映像であり、このような映像を再生するためのデータがビデオストリームとして予めBD-ROM１００に記録されている。
【００６５】
本実施の形態においては、予め一つのストリームファイルに右目用のビデオストリームと左目用のビデオストリーム、字幕ストリーム、グラフィックスストリームが埋め込まれている形態が望ましい。これは、メモリやグラフィクスにおける機器リソースが乏しい機器（例えばCE機器）が必要とする演算量をなるべく抑えるためである。
【００６６】
(BDドライブ1a)
BDドライブ1aは、例えば、半導体レーザ（不図示）、コリメートレンズ（不図示）、ビームスプリッタ（不図示）、対物レンズ（不図示）、集光レンズ（不図示）、光検出器（不図示）を有する光学ヘッド（不図示）を備える。半導体レーザから出射された光ビームは、コリメートレンズ、ビームスプリッタ、対物レンズを通って、光ディスクの情報面に集光される。集光された光ビームは、光ディスク上で反射／回折され、対物レンズ、ビームスプリッタ、集光レンズを通って、光検出器に集光される。光検出器にて集光された光の光量に応じて、生成された信号がBD-ROMから読み出されたデータに対応する。
【００６７】
(ネットワークインターフェース1b）
ネットワークインターフェース1bは、再生装置の外部と通信を行うためのものであり、インターネットでアクセス可能なサーバにアクセスしたり、ローカルネットワークで接続されたサーバにアクセスしたりすることが可能である。例えば、インターネット上に公開されたBD-ROM追加コンテンツのダウンロードに用いられたり、コンテンツが指定するインターネット上のサーバとの間でデータ通信を行うこうことでネットワーク機能を利用したコンテンツの再生を可能としたりする。BD-ROM追加コンテンツとは、BDドライブ1aに装填したオリジナルのBD-ROM１００にないコンテンツで、例えば追加の副音声、字幕、特典映像、アプリケーションなどである。BD-Jプラットフォームからネットワークインターフェース1bを制御することができ、インターネット上に公開された追加コンテンツをローカルストレージ1cにダウンロードすることができる。
【００６８】
(ローカルストレージ1c)
ローカルストレージ1cは、ビルドインメディア、リムーバブルメディアを備え、ダウンロードしてきた追加コンテンツやアプリケーションが使うデータなどの保存に用いられる。追加コンテンツの保存領域はBD-ROM毎に分かれており、またアプリケーションがデータの保持に使用できる領域はアプリケーション毎に分かれている。また、ダウンロードした追加コンテンツをどのようにBDドライブ1aに装填したBD-ROM上のデータとマージされるか、マージ規則が記載されたマージ管理情報もこのビルドインメディア、リムーバブルメディアに保存される。
【００６９】
ビルドインメディアとは例えば再生装置に内蔵されたハードディスクドライブ、メモリなどの書き込み可能な記録媒体である。
リムーバブルメディアとは、例えば可搬性を有する記録媒体であり、好適にはSDカードなどの可搬性を有する半導体メモリーカードである。
【００７０】
リムーバブルメディアを半導体メモリーカードとしたときを例に説明をすると、再生装置にはリムーバブルメディアを装着するためのスロット（不図示）およびスロットに装着されたリムーバブルメディアを読み取るためのインターフェース（例えばメモリーカードI/F）が備えられており、スロットに半導体メモリを装着すると、リムーバブルメディアと再生装置とが電気的に接続され、インターフェース（例えばメモリーカードI/F）を利用して、半導体メモリに記録されたデータを電気信号に変換して読み出すことが可能となる。
【００７１】
(リードバッファ2a)
リードバッファ2aは、BDドライブ1aから読み出されたレフトビューストリームを構成するエクステントを構成するソースパケットを一旦格納しておき、転送速度を調整した上、デマルチプレクサ４に転送するためのバッファである。
【００７２】
(リードバッファ2b)
リードバッファ2bは、BDドライブ1aから読み出されたライトビューストリームを構成するエクステントを構成するソースパケットを一旦格納しておき、転送速度を調整した上、デマルチプレクサ４に転送するためのバッファである。
【００７３】
(仮想ファイルシステム３)
仮想ファイルシステム３は、例えば追加コンテンツと共にローカルストレージ1cにダウンロードされたマージ管理情報を元に、ローカルストレージに格納された追加コンテンツと装填したBD-ROM上のコンテンツをマージさせた、仮想的なBD-ROM（仮想パッケージ）を構築する。仮想パッケージの構築のため仮想ファイルシステム３は、アプリケーション関連付け情報を生成、及び更新するためのアプリデータ関連付けモジュールを有している。アプリデータ関連付け情報とは、BD-ROMディスク上の情報と、アプリケーションが設定する属性情報とを元にして、ローカルストレージの情報をアプリケーションに関連付ける情報である。
【００７４】
HDMVモードの動作主体であるコマンドインタプリタやBD-Jモードの動作主体であるBD-Jプラットフォームからは、仮想パッケージとオリジナルBD-ROMを区別なく参照することができる。仮想パッケージ再生中、再生装置はBD-ROM上のデータとローカルストレージ上のデータの両方を用いて再生制御を行うことになる。
【００７５】
(デマルチプレクサ４)
デマルチプレクサ４は、例えばソースパケットデパケッタイザー、PIDフィルタから構成され、再生すべきストリーム(ストリームは構築した仮想パッケージ（装填したBD-ROMおよび装填したBD-ROMに対応するローカルストレージ上のデータ）に含まれる)に対応するパケット識別子の指示を受け付けて、当該パケット識別子に基づくパケットフィルタリングを実行する。パケットフィルタリングにあたって、左右処理記憶部１９のフラグを基に、レフトビュービデオストリーム、ライトビュービデオストリームのうち、表示方式フラグに対応したビデオストリームを抜き出し、ビデオデコーダ５a、ビデオデコーダ５ｂに転送する。デマルチプレクサ３はストリームのヘッダ情報から左目用ビデオフレームと右目用ビデオフレームの振り分けを行う。
【００７６】
再生対象のストリームから分離されたストリームが字幕ストリームである場合、デマルチプレクサ４は、分離された字幕ストリームをイメージメモリに書き込む。例えば3D字幕ストリーム（レフトビュー用の字幕ストリーム、ライトビュー用の字幕ストリーム）がストリームに含まれている場合には、レフトビュー用の字幕ストリームをイメージメモリ７ｃに書き込み、ライトビュー用の字幕ストリームをイメージメモリ７ｄに書き込む。
【００７７】
また、例えば字幕ストリームが2Dの字幕ストリーム（平面表示のために用いる字幕ストリーム）がストリームに含まれている場合には、2Dの字幕ストリームをイメージメモリ７ｃに書き込む。
【００７８】
(ビデオデコーダ５a)
ビデオデコーダ５aは、デマルチプレクサ４から出力されたTSパケットを復号して非圧縮形式のピクチャをレフトビュービデオプレーン６（図４のビデオプレーン６における符号（Ｌ）で示したもの）に書き込む。
【００７９】
(ビデオデコーダ５ｂ)
ビデオデコーダ５ｂは、デマルチプレクサ４から出力されたライトビュービデオストリームを復号してTSパケットを復号して非圧縮形式のピクチャをライトビュービデオプレーン６（図４のビデオプレーン６における符号（Ｒ）で示したもの）に書き込む。
【００８０】
(ビデオプレーン６)
ビデオプレーン６は例えば、1920×2160(1280×1440)といった解像度に応じたピクチャデータを格納することができるプレーンメモリであり、1920×1080(1280×720)の解像度をもつ左目用プレーン（図４のビデオプレーン６における符号（Ｌ）で示したもの）、1920×1080(1280×720)の解像度をもつ右目用プレーン（図４のビデオプレーン６における符号（Ｒ）で示したもの）を有する。
【００８１】
(イメージデコーダ７a,b)
イメージデコーダ７a,bは、デマルチプレクサ４から出力され、イメージメモリ７ｃ、７ｄに書き込まれた字幕ストリームを構成するTSパケットを復号して非圧縮形式のグラフィクス字幕をグラフィクスプレーン８aに書き込む。イメージデコーダ７a,bによりデコードされる“字幕ストリーム”は、ランレングス符号化によって圧縮された字幕を表すデータであり、Y値,Cr値,Cb値,α値を示すピクセルコードと、そのピクセルコードのランレングスとによって定義される。
【００８２】
(イメージプレーン８)
イメージプレーン８は、例えば1920×1080(1280×720)といった解像度によって、字幕ストリームをデコードすることにより得られたグラフィクスデータ（例えば字幕データ）を格納することができるグラフィクスプレーンであり、例えば1920×1080(1280×720)の解像度をもつデータを格納できるような記憶領域を有する左目用プレーン（図４に示したイメージプレーン８における符号（Ｌ）で示したもの）、1920×1080(1280×720)の解像度をもつデータを格納できるような記憶領域を有する右目用プレーン（図４に示したイメージプレーン８における符号（Ｒ）で示したもの）を有する。
【００８３】
(オーディオデコーダ９)
オーディオデコーダ９は、デマルチプレクサ４から出力されたオーディオフレームを復号して、非圧縮形式のオーディオデータを出力する。
【００８４】
(インタラクティブグラフィクスプレーン１０)
インタラクティブグラフィクスプレーン１０は、例えば1920×1080(1280×720)といった解像度によって、BD-Jアプリケーションがレンダリングエンジン２２aを利用して描画したグラフィクスデータを格納することができる記憶領域を有するグラフィクスプレーンであり、例えば1920×1080(1280×720)の解像度をもつデータを格納できるような記憶領域を有する左目用プレーン（図４のインタラクティブグラフィクスプレーン１０において、符号（Ｌ）を付したもの）、1920×1080(1280×720)の解像度をもつデータを格納できるような記憶領域を有する右目用プレーン（図４のインタラクティブグラフィクスプレーン１０において、符号（Ｒ）を付したもの）を有する。
【００８５】
インタラクティブグラフィクスプレーン１０に格納される“グラフィクスデータ”は、個々の画素がR値,G値,B値,α値によって定義されるグラフィクスである。インタラクティブグラフィクスプレーン１０に書き込まれるグラフィクスは、主にGUIを構成するために使われる目的を持つイメージやウィジェットである。画素を表すデータに違いがあるものの、イメージデータ及びグラフィクスデータは、グラフィクスデータという表現で包括される。本願が対象としているグラフィクスプレーンには、イメージプレーン８、インタラクティブグラフィクスプレーン１０の２種類があり、単に“グラフィクスプレーン”と呼ぶ場合、イメージプレーン８、インタラクティブグラフィクスプレーン１０の双方又はどちらかを指し示すものとする。
【００８６】
(バックグラウンドプレーン１１)
バックグラウンドプレーン１１は、例えば1920×1080(1280×720)といった解像度によって、背景画となるべき静止画データを格納することができるプレーンメモリであり、具体的には、1920×1080(1280×720)の解像度をもつ左目用プレーン（図４に示すバックグラウンドプレーン１１における符号（Ｌ）を付したもの）、1920×1080(1280×720)の解像度をもつ右目用プレーン（図４に示すバックグラウンドプレーン１１における符号（Ｒ）を付したもの）を有する。
【００８７】
(レジスタセット１２)
レジスタセット１２は、プレイリストの再生状態を格納する再生状態レジスタ、再生装置におけるコンフィグレーションを示すコンフィグレーション情報を格納する再生設定レジスタ、コンテンツが利用する任意の情報を格納できる汎用レジスタを含む、レジスタの集まりである。プレイリストの再生状態とは、プレイリストに記載されている各種AVデータ情報の中のどのAVデータを利用しているか、プレイリストのどの位置（時刻）を再生しているかなどの状態を現す。
【００８８】
プレイリストの再生状態が変化した際は、再生制御エンジン１４がPSRセット１２に対し、その内容を格納する。また、HDMVモードの動作主体であるコマンドインタプリタもしくはBD-Jモードの動作主体であるJavaプラットフォームが実行しているアプリケーションからの指示により、アプリケーションが指定した値を格納したり、格納された値をアプリケーションに渡したりすることが可能である。
【００８９】
(静的シナリオメモリ１３)
静的シナリオメモリ１３は、カレントプレイリスト情報やカレントクリップ情報を格納しておくためのメモリである。カレントプレイリスト情報とは、BD-ROMまたはビルドインメディアドライブ、リムーバブルメディアドライブからアクセスできる複数プレイリスト情報のうち、現在処理対象になっているものをいう。カレントクリップ情報とは、BD-ROMまたはビルドインメディアドライブ、リムーバブルメディアドライブからアクセスできる複数クリップ情報のうち、現在処理対象になっているものをいう。
【００９０】
(再生制御エンジン１４)
再生制御エンジン１４は、HDMVモードの動作主体であるコマンドインタプリタ、BD-Jモードの動作主体であるJavaプラットフォームからの関数呼び出しに応じて、AV再生機能、プレイリストの再生機能を実行する。AV再生機能とは、DVDプレーヤ、CDプレーヤから踏襲した機能群であり、再生開始、再生停止、一時停止、一時停止の解除、静止画機能の解除、再生速度を即値で指定した早送り、再生速度を即値で指定した巻戻し、音声切り替え、副映像切り替え、アングル切り替えといった処理である。プレイリスト再生機能とは、このAV再生機能のうち、再生開始や再生停止をカレントプレイリストを構成するカレントプレイリスト情報、カレントクリップ情報に従って行うことをいう。
【００９１】
ディスク（例えばBD-ROM１００）の挿入というイベントが発生した場合、再生制御エンジン１２による再生処理の対象となるプレイリスト及びAVストリームは、BD-ROM上のカレントシナリオに記載されている自動再生プレイリスト（AutoStartPlaylist）である。AVストリーム再生は、ユーザオペレーション（例えば再生ボタン）をトリガーとして開始する場合もあれば、端末内の何かのイベントをトリガーとして自動的に開始する場合もある。
【００９２】
(スケーリングエンジン１５)
スケーリングエンジン１５は、イメージプレーン８やビデオプレーン５にある映像の縮小、拡大、及び等倍の制御を行うことが可能である。スケーリングエンジン１５は、イメージデータ、ピクチャデータのデコードがされた時点でプレーンシフトエンジン２０内に値が設定されていれば、スケーリングが発生しているとみなし、デコードされたビデオデータをビデオプレーンに格納する前、デコードされたグラフィクスをイメージプレーンに格納する前にスケーリングエンジン１５を通してスケーリングを行わせる。
【００９３】
スケーリングFactorは例えば水平画素数の倍率及び／又は垂直画素数の倍率であり、例をあげると、基本となる解像度が、1920×1080ピクセルのであるグラフィクスデータに対して、“１/２”のスケーリングFactorが指定された場合、グラフィクスデータの解像度は、(1920×0.5)×(1080×0.5)画素、つまり、960×540ピクセルに縮小される。スケーリングFactorは１/２のように、１以下の値だけでなく、１以上の値を設定することも可能であり、その場合は拡大処理が施される。
(合成部１６)
合成部１６は、インタラクティブグラフィクスプレーン１０、イメージプレーン８、ビデオプレーン６、バックグラウンドプレーン１１の格納内容を合成する。
【００９４】
インタラクティブグラフィクスプレーン１０、イメージプレーン８、ビデオプレーン６とバックグラウンドプレーン１１は別々のレイヤー構成になっており、必ず、下から、バックグラウンドプレーン１１、ビデオプレーン６、イメージプレーン８、インタラクティブグラフィクスプレーンの順に格納されたデータの合成（重ね合わせ）を行う。イメージプレーンのデータとして字幕、インタラクティブグラフィクスプレーン１０のデータとしてのPOP-UPメニュー（グラフィクス）、GUIグラフィックスのデータを表示するコンテンツの再生を想定した場合、合成部は、必ずビデオプレーン６のデータ（ビデオ）上にイメージプレーン８のデータ（字幕）を重ね合わせ、イメージプレーン８の上にインタラクティブグラフィクスプレーン１０のデータを重ね合わせる。つまり、たとえビデオプレーンが立体視のコンテンツであっても、奥行きのない字幕やPOP-UPメニュー、GUIが立体視ビデオに重なった場合はイメージ（字幕、POP-UPメニュー、GUIといった画像）を優先して表示させなければならない。これはスケーリングを行った時も同様である。
【００９５】
(HDMI送受信部１７)
HDMI送受信部１７は、例えばHDMI規格（HDMI:High Definition Multimedia Interface）に準拠したインターフェイスを含み、再生装置とHDMI接続する装置（この例ではテレビ４００）とHDMI規格に準拠するように送受信を行うものであり、ビデオに格納されたピクチャデータと、オーディオデコーダ９によってデコードされた非圧縮のオーディオデータとを、HDMI送受信部１６を介してテレビ４００に伝送する。テレビ４００は、例えば立体視表示に対応しているかに関する情報、平面表示可能な解像度に関する情報、立体表示可能な解像度に関する情報を保持しており、再生装置からHDMI送受信部１６を介して要求があると、テレビ４００は要求された必要な情報（例えば立体視表示に対応しているかに関する情報、平面表示可能な解像度に関する情報、立体表示可能な解像度に関する情報）を再生装置へ返す。このように、HDMI送受信部１６を介することで、テレビ４００が立体視表示に対応しているかどうかの情報を、テレビ４００から取得することができる。
【００９６】
(表示機能フラグ保存部１８)
表示機能フラグ保存部１８は、再生装置は再生装置が3Dの表示が可能か否かの区別を示す、3D表示機能フラグを保存している。
【００９７】
(左右処理記憶部１９)
左右処理記憶部１９は、現在の出力処理がレフトビュー用の出力か、または、ライトビュー用の出力かを記憶する。左右処理記憶部１９のフラグは、図１に示した再生装置と接続する表示デバイス（図１の例ではテレビ）に対する出力が、レフトビュー出力であるか、ライトビュー出力であるかを示す。レフトビュー出力をしている間、左右処理記憶部１９のフラグはレフトビュー出力を示すフラグに設定される。また、ライトビュー出力をしている間、左右処理記憶部１９のフラグはライトビュー出力を示すフラグに設定される。
【００９８】
(プレーンシフトエンジン２０)
プレーンシフトエンジン２０はプレーンオフセットを保存する領域を兼ね備え、左右処理記憶部１９に現在の処理対象が左目映像か右目映像かを判定した後、保存しているプレーンオフセットを用いてイメージプレーンの横軸のシフト量（表示画面上に表示される像を表示画面の水平方向へ基準となる位置からどの程度ずらすかを示す量）を計算し、シフトする。表示される字幕（グラフィクス）のシフト量を調節することにより、液晶眼鏡５００を介して見える平面的な字幕（グラフィクス）は表示画面の位置よりも手前／奥に表示されているように見せることができる。シフト量というのは表示画面の位置からどの程度、手前に位置しているように見えるかまたは奥に位置しているように見えるかを調節するための量である。
【００９９】
つまり、字幕/グラフィクスの横軸のずらし幅を変更することによって、奥行きが変更する。例えば、左目用字幕と右目用字幕を一定方向に遠くへ離せば離すほど手前に位置するように表示され、逆方向に遠くへ離せば離すほど奥に位置するように表示される視覚効果を得られる。
【０１００】
シフト量によっては、ディスプレイの解像度とサイズによってはイメージプレーンの変位が大きくなりすぎ、目がついていかなくイメージが二重に見える現象になる場合がある。その場合はプレーンオフセットに記載された値を基にディスプレイの解像度とサイズの情報を組み合わせ、字幕・グラフィクスが手前に表示しすぎないように調整する。例えば、再生装置２００がプレーンオフセットの値を設定できるセットアップ機能を兼ね備えている場合、プレーンシフトエンジン２０は、セットアップ機能を用いて設定した値を保存する。
【０１０１】
(オフセット設定部２１)
オフセット設定部２１は、オフセットの更新要求があった場合に更新すべきオフセットを後述するプレーンシフトエンジン２０のオフセット値保存部４１に設定するものである。
【０１０２】
具体的には（ａ）後述する表示モード記憶部２９に記憶されているイメージプレーン設定のオフセット値、インタラクティブグラフィックスプレーン設定のオフセット値を読み込んで設定する、（ｂ）デマルチプレクサ４に入力されるストリームのヘッダ領域に保持されているイメージプレーンのオフセット値、インタラクティブグラフィックスプレーンのオフセット値をデマルチプレクサ４が取得して、デマルチプレクサ４から得た上述のオフセットの値を設定する、（ｃ）UO検知モジュール２６から送られてくるイメージプレーンのオフセット値、インタラクティブグラフィックスプレーンのオフセット値を読み込んで設定する、（ｄ）カレントプレイリスト情報に含まれるイメージプレーンのオフセット値、インタラクティブグラフィックスプレーンのオフセット値を読み込んで設定するなどの動作により設定がなされる。
【０１０３】
ユーザ、あるいはアプリケーションからのプレーンのオフセットの更新要求があった際に一時的にその値を保存するモジュールである。プレーンオフセットは例えば奥行きが-６３〜６３で表現されている整数とし（６３が一番手前で-６３が一番奥）、それを最終的なシフトの幅を示す画素座標に変換する。
【０１０４】
(BD-Jプラットフォーム２２)
BD-Jプラットフォーム２２は、BD-Jモードの動作主体であるJavaプラットフォームであり、Java2Micro＿Edition(J2ME)
Personal Basis Profile(PBP 1.0)と、Globally Executable MHP
specification(GEM1.0.2)for package media targetsとをフル実装しており、JARアーカイブファイルに存在するクラスファイルからバイトコードを読み出して、ヒープメモリに格納することにより、BD-Jアプリケーションを起動する。そしてBD-Jアプリケーションを構成するバイトコード、システムアプリケーションを構成するバイトコードをネィティブコードに変換して、MPUに実行させる。BD-Jプラットフォーム２２は、BD-Jアプリケーションからスケーリングが要求された際、引数として与えられたスケーリングFactorを後述する図２１に示すスケーリングエンジン２０のスケーリングFactor保存部４２に格納する
(レンダリングエンジン２２a)
レンダリングエンジン２２aは、Java2D，OPEN-GLといった基盤ソフトウェアを備え、BD-JモードにおいてはBD-Jプラットフォーム２２からの指示に従って、グラフィクスや文字列をインタラクティブグラフィクスプレーン１０に書き込む。またHDMVモードにおいて、レンダリングエンジン２２aは、字幕に対応するストリーム（字幕ストリーム）以外のグラフィクスストリームから抽出したグラフィクスデータ（例えば、入力ボタンに対応するグラフィクスデータ）をレンダリングし、インタラクティブグラフィクスプレーン１０に書き込む。
【０１０５】
(動的シナリオメモリ２３)
動的シナリオメモリ２３は、カレント動的シナリオを格納しておき、HDMVモードの動作主体であるHDMVモジュール、BD-Jモードの動作主体であるJavaプラットフォームによる処理に供されるメモリである。カレント動的シナリオとは、BD-ROMまたはビルドインメディア、リムーバブルメディアに記録されているIndex.bdmv、BD-Jオブジェクト、ムービーブジェクトのうち、現在実行対象になっているものをいう。
【０１０６】
(モード管理モジュール２４)
モード管理モジュール２４は、BD-ROM１００またはローカルストレージ1c（図４の例ではビルドインメディアドライブ、リムーバブルメディアドライブ）から読み出されたIndex.bdmvを保持して、モード管理及び分岐制御を行う。モード管理モジュール２４によるモード管理とは、動的シナリオを、BD-Jプラットフォーム２２、HDMVモジュール２５のどちらに実行させるかという、モジュールの割り当てである。
【０１０７】
(HDMVモジュール２５)
HDMVモジュール２５は、HDMVモードの動作主体となるDVD仮想プレーヤであり、HDMVモードの実行主体となる。本モジュールは、コマンドインタプリタを具備し、ムービーオブジェクトを構成するナビゲーションコマンドを解読して実行することでHDMVモードの制御を実行する。ナビゲーションコマンドは、DVD-Videoと似たようなシンタックスで記述されているため、かかるナビゲーションコマンドを実行することにより、DVD-Videoライクな再生制御を実現することができる。
【０１０８】
(UO検知モジュール２６)
UO検知モジュール２６は、GUIに対するユーザオペレーションを受け付ける。かかるGUIによって受け付けられるユーザオペレーションには、BD-ROMに記録されているタイトルのうち、どれを選択するかというタイトル選択、字幕選択、音声選択がある。特に、立体視再生特有のユーザオペレーションとして、立体視映像の奥行き感のレベルを受け付けることがある。例えば、奥行き感が、遠い、普通、近い等の3つのレベルを受け付けることがあるし、奥行き感は何cm、何mmというように、数値入力によって奥行き感のレベルを受け付けることもある。
【０１０９】
またUO検知モジュール２６は、リモコンや機器に付属のボタンなどの操作によりイメージプレーンのスケーリングを変更する命令を受け付けた場合、それを機器内のモジュールが直接スケーリング命令を発行する。
【０１１０】
(静止画メモリ２７a)
静止画メモリ２７aは、BD-ROM、または、構築した仮想パッケージから取り出された背景画となる静止画データを格納する。
【０１１１】
(静止画デコーダ２７b)
静止画デコーダ２７bは、静止画メモリ２７aに読み出された静止画データをデコードして、非圧縮の背景画データをバックグラウンドプレーン１１に書き込む。
【０１１２】
(表示モード設定イニシャル表示設定部２８)
表示モード設定イニシャル表示設定部２８は、BD-Jプラットフォーム部に供せられるカレントタイトルにおけるBD-Jオブジェクトに基づき、表示モード、解像度の設定を行う。
【０１１３】
(表示モード記憶部２９)
表示モード記憶部２９は、表示モードが2Dまたは3Dのいずれであるのか、およびステレオモードがONまたはOFFのいずれであるのかを記憶する。再生装置が3D表示機能フラグとして3D表示が可能と設定されている場合、表示モード記憶部２９に保存された端末設定である表示モードは、2D、3Dの何れかに切り替えることが可能となる。以後、表示モードが“3D”と示されている状態を“3D表示モード”と呼び、表示モードが“2D”と示されている状態を“2D表示モード”と呼ぶ。
【０１１４】
この表示モードが、どのようなものであるかについて説明する。再生装置が3D表示モードの場合、各プレーンは、ステレオモードONの状態、ステレオモードOFFの状態の何れかの状態をとる。ステレオモードのONとOFFの違いはプレーンの合成方法の違いでもある。
【０１１５】
ビデオストリームを例に説明をすると、“ステレオモードON”とは、再生装置は見え方（例えば見える角度）の異なる２つの映像（例えば視差の程度において、見える角度の異なるレフトビュー用の映像とライトビュー用の映像）をそれぞれ用いて表示するような合成を行う3D表示モードである。
【０１１６】
“ステレオモードOFF”とは、再生装置は１つの映像（例えばレフトビュー用の映像とライトビュー用の映像のいずれか一方の映像であり、ここではレフトビュー用の映像を用いる例を説明する）を用いて左目／右目に供するような合成を行う3D表示モードである。つまり、両目で視聴した場合は立体感がない映像（平面映像）になる。
【０１１７】
ただし、例えばグラフィクスプレーン８においてはプレーンオフセットによる水平方向へのシフトにより、グラフィクスプレーンに格納され表示される平面的なグラフィクスデータ（字幕データ）を表示画面よりも手前または奥に位置するように見せることが可能である。このことは、ビデオプレーンに記憶されたビデオデータ、インタラクティブグラフィクスプレーンに記憶されたインターラクティブグラフィクスデータ、バックグラウンドプレーン１１に記憶された背景画データにおいて、“ステレオモードOFF”である場合にオフセットを調節すれば、同様のことが言える。
【０１１８】
以上説明したように“3D表示モード”において、“ステレオモードON”と、“ステレオモードOFF”の２つがあり、“3D表示モード”における“ステレオモードON”においてはレフトビュー用のデータとライトビュー用のデータ（例えば左目から見える像と右目から見える像とは見える角度の異なる像）であり、これらをそれぞれレフトビュー用のプレーンとライトビュー用のプレーンに格納し、格納された像を同期信号に従って表示することにより、立体感のある像を表示することが可能である。
【０１１９】
また、“3D表示モード”における“ステレオモードOFF”においてはレフトビュー用のデータとライトビュー用のデータのうちのいずれか一方のデータ（本実施の形態では例えばレフトビュー用のデータ）のみを用いて、これをレフトビュー用のプレーンとライトビュー用のプレーンのそれぞれに格納し、プレーンオフセットを調節することにより、平面的な像を表示画面よりも手前または奥に位置するように表示することが可能である。
【０１２０】
本実施の形態においては、“ステレオモードON”、“ステレオモードOFF”、はプレーン毎（つまり、ビデオプレーン６、グラフィクスプレーン８、インタラクティブグラフィクスプレーン１０、バックグラウンドプレーン１１毎）に設定できるように構成している。
【０１２１】
また、“2D表示モード”というのは通常の表示、つまり、表示画面の位置に対応する像が表示するものである。この場合、デフォルトで利用されるデコーダ、プレーンを予め決められておりこのデコーダ、プレーンを利用して合成画像を表示するように構成がなされている。
【０１２２】
例えば、“2D表示モード”の場合、ビデオデコーダ５ａが左目用ビデオプレーン（図４に示したビデオプレーン６における符号（Ｌ）で示したもの）に書き込んだ2Dビデオデータ、イメージデコーダ７aが左目用プレーン（図４に示したイメージプレーン８における符号（Ｌ）で示したもの）に書き込んだ2Dグラフィクスデータ（字幕データ）、BD-Jアプリケーションがレンダリングエンジン２２aを利用して、左目用プレーン（図４のインタラクティブグラフィクスプレーン１０において、符号（Ｌ）を付したもの）に書き込んだ2Dインタラクティブグラフィクス、静止画デコーダ２７ｂが左目用プレーン（図４に示すバックグラウンドプレーン１１における符号（Ｌ）を付したもの）に書き込んだ2Dの静止画データを合成するように構成されている。
【０１２３】
このとき、合成の順序は下から2D静止画データ、2Dビデオデータ、2Dグラフィクスデータ（字幕データ）、2Dインタラクティブグラフィクスの順で合成する。
表示モード設定イニシャル表示設定部２８は、BD-Jプラットフォーム部に供せられるカレントタイトルにおけるBD-Jオブジェクトに基づき、表示モード、解像度の設定を行う。
【０１２４】
この表示モードの設定によって、各プレーンメモリへの書き込みがどのように変化するかを説明する。
(ビデオプレーン６への書き込み)
先ず始めに、ビデオプレーン６について説明する。ビデオデータの表示モードが3D表示モードであって、かつステレオモードがオンである場合には、ビデオデコーダ５ａがレフトビュー用のビデオストリームをデコードし、左目用プレーン（図５に示したビデオプレーン６における符号（Ｌ）で示したもの）に書き込むとともに、ビデオデコーダ５ｂがライトビュー用のビデオストリームをデコードし、右目用プレーン（図５に示したビデオプレーン６における符号（Ｒ）で示したもの）に書き込む。
【０１２５】
また、ビデオデータの表示モードが3D表示モードであって、かつステレオモードがオフである場合には、ビデオデコーダ５ａは、例えばレフトビュー用のビデオストリームをデコードし、左目用プレーン（図５に示したビデオプレーン６における符号（Ｌ）で示したもの）および右目用プレーン（図５に示したビデオプレーン６における符号（Ｒ）で示したもの）に書き込む。
【０１２６】
また、ビデオデータの表示モードが2D表示モードである場合は、例えばデマルチプレクサ４は、2Dビデオストリームをビデオデコーダ５ａへ送り、ビデオデコーダ５ａは、デコードした2Dビデオデータを左目用ビデオプレーン（図５に示したビデオプレーン６における符号（Ｌ）で示したもの）に書き込むように構成されている。
【０１２７】
以上がビデオプレーン６についての説明である。
続いて、イメージプレーン８の詳細について説明する。
(イメージプレーン８への書き込み)
例えば字幕データの表示モードが3D表示モードであって、かつステレオモードがオンである場合には、イメージデコーダ７ａがイメージメモリ７ｃに記憶されたレフトビュー用の字幕ストリームをデコードし、左目用プレーン（図５に示したイメージプレーン８における符号（Ｌ）で示したもの）に書き込むとともに、イメージデコーダ７ｂがイメージメモリ７ｄに記憶されたライトビュー用の字幕ストリームをデコードし、右目用プレーン（図５に示したイメージプレーン８における符号（Ｒ）で示したもの）に書き込む。
【０１２８】
また、字幕データの表示モードが3D表示モードであって、かつステレオモードがオフである場合には、イメージデコーダ７ａは、イメージメモリ７ｃに記憶されたレフトビュー用の字幕ストリームをデコードし、左目用プレーン（図５に示したイメージプレーン８における符号（Ｌ）で示したもの）および右目用プレーン（図５に示したイメージプレーン８における符号（Ｒ）で示したもの）に書き込む。
【０１２９】
上述の例では、字幕データの表示モードが3D表示モードであって、かつステレオモードがオフである場合には、レフトビュー用の字幕ストリームデコードし、左目用プレーンおよび右目用プレーンに書き込むとしたが、記録媒体に記録されている字幕ストリームが左右で同じ字幕ストリームを共有する構成である場合には、この共有する字幕ストリームを読み込んで、左目用イメージプレーンおよび右目用イメージプレーンに書き込むようにすれば良い。
【０１３０】
また、字幕データの表示モードが2D表示モードである場合には、デマルチプレクサ４は、2D字幕ストリームをイメージメモリ７ｃに格納するように構成されており、イメージデコーダ７ａは、イメージメモリ７ｃに記憶された2D字幕ストリームをデコードし、左目用プレーン（図５に示したイメージプレーン８における符号（Ｌ）で示したもの）に書き込むように構成されている。
【０１３１】
以上がイメージプレーン８についての説明である。続いて、インタラクティブグラフィクスプレーン１０の格納内容について説明する。
(インタラクティブグラフィクスプレーン１０への書き込み)
インタラクティブグラフィクスの表示モードが例えば3D表示モードであって、かつステレオモードがオンである場合、左目から見えるインタラクティブグラフィクス（左目用インタラクティブグラフィクス）、右目から見えるインタラクティブグラフィクスであって、左目用インタラクティブグラフィクスとは異なるインタラクティブグラフィクス（右目用インタラクティブグラフィクス）を描画するプログラムがBD-Jアプリケーションに組み込まれていることを意味する。
【０１３２】
この描画プログラムによって描画される左目用インタラクティブグラフィクス及び右目用インタラクティブグラフィクスは、立体的なグラフィクスに見えるように互いに見える角度が異なるようなグラフィクスである。
【０１３３】
左目用インタラクティブグラフィクス及び右目用インタラクティブグラフィクスを表示に供する場合、BD-Jアプリケーションはレンダリングエンジン２２aを利用して、左目用プレーン（図４のインタラクティブグラフィクスプレーン１０において、符号（Ｌ）を付したもの）にレフトビュー用インタラクティブグラフィクスを書き込み、右目用プレーン（図４のインタラクティブグラフィクスプレーン１０において、符号（Ｒ）を付したもの）にライトビュー用インタラクティブグラフィクスを書き込む。
【０１３４】
また、インタラクティブグラフィクスの表示モードが例えば3D表示モードであって、かつステレオモードがオフである場合、BD-Jアプリケーションはレンダリングエンジン２２aを利用してレフトビュー用のインタラクティブグラフィクスをインタラクティブグラフィクスプレーン１０の符号（Ｌ）、符号（Ｒ）を付したものにそれぞれ書き込む。
【０１３５】
インタラクティブグラフィクスの表示モードが2D表示モードである場合、BD-Jアプリケーションはレンダリングエンジン２２aを利用して、2Dインタラクティブグラフィクスをインタラクティブグラフィクスプレーン１０（より具体的には、インタラクティブグラフィクスプレーン１０の符号（Ｌ）を付したもの）に書き込むように構成されている。
【０１３６】
以上がインタラクティブグラフィクスプレーン１０についての説明である。続いて表示モードに応じたバックグラウンドプレーン１１の格納内容について説明する。
(バックグラウンドプレーン１１への書き込み)
背景画の表示モードが例えば3D表示モードであって、かつステレオモードがオンである場合、静止画デコーダ２７ｂは、静止画メモリ２７ａに格納された、レフトビュー用の静止画データ、ライトビュー用の静止画データをデコードして、レフトビュー用の静止画データを左目用プレーン（図４に示すバックグラウンドプレーン１１における符号（Ｌ）を付したもの）、ライトビュー用の静止画データを右目用プレーン（図４に示すバックグラウンドプレーン１１における符号（Ｒ）を付したもの）にそれぞれ書き込む。
【０１３７】
背景画の表示モードが例えば3D表示モードであって、かつステレオモードがオフである場合、静止画メモリ２７ａに格納された3D背景画（レフトビュー用の静止画データ、ライトビュー用の静止画データ）のうち、レフトビュー用の静止画データを静止画デコーダ２７ｂがデコードし、左目用プレーン（図４に示すバックグラウンドプレーン１１における符号（Ｌ）を付したもの）および右目用プレーン（図４に示すバックグラウンドプレーン１１における符号（Ｒ）を付したもの）に書き込む。背景画の表示モードが例えば2D表示モードである場合、静止画メモリ２７ａに格納された2Dの静止画データを静止画デコーダ２７ｂがデコードし、左目用プレーン（図４に示すバックグラウンドプレーン１１における符号（Ｌ）を付したもの）に書き込むように構成されている。
【０１３８】
以上が表示モードに応じたバックグラウンドプレーン１１の格納内容についての説明である。
次に、本実施の形態における2D表示モード、3D表示モードの切り替えの詳細について説明する。
【０１３９】
図５は、2D表示モード、3D表示モードの切り替えを示す図である。本図の左側には2D表示モード時の出力モデルが示されている。左側のプレーン構成では、ビデオプレーン６、イメージプレーン８(図中の“Subtitle”)、インタラクティブグラフィクスプレーン１０、バックグラウンドプレーン１１、及び出力のそれぞれ一つで構成される。
【０１４０】
よって、2D表示モード時はレフトビューとライトビューは共通のものを利用することになり、結果として全く同じ出力を見ることになる。
本図の右側には3D表示モード時の出力モデルが表示されている。再生装置が3D表示モードの場合、ビデオプレーン６、イメージプレーン８(図中の“Subtitle”)、インタラクティブグラフィクスプレーン１０はそれぞれレフトビュー用と、ライトビュー用とに分けられており、これらに再生すべきピクチャデータ、グラフィクスデータが格納される。
【０１４１】
よって3D表示モード時はレフトビューとライトビュー出力が別々に存在し、左目と右目に異なるイメージを提供することが可能になり、その視差であたかも画面内の立体物が手前に飛び出しているかのような3Dのエフェクトを引き出すことが可能である。
【０１４２】
図６は、3D表示モードにおいて、各プレーンのステレオモードが全てオンである場合と、ステレオモードが全てオフである場合の合成処理の一例を示す図である。
図６では各プレーンがステレオモードを統一させている場合の例を示しているが、プレーン毎にステレオモードのON/OFFが変更可能である。
【０１４３】
左側は、3D表示モードにおいて、各プレーンのステレオモードが全てオンである場合のプレーン構成を示し、右側は、3D表示モードにおいて、各プレーンのステレオモードが全てオフである場合のプレーン構成を示す。
【０１４４】
第１段目は、バックグラウンドプレーン１１と、その合成前の出力とを示す。
第２段目は、ビデオストリームと、ビデオプレーン６、その合成前の出力とを示す。
第３段目は、イメージプレーン８と、その合成前の出力とを示す。
【０１４５】
第４段目は、インタラクティブグラフィクスプレーン１０と、その合成前の出力とを示す。
ステレオモードがONの場合、バックグラウンドプレーンは、（Ｌ）が付された領域で示す左目用バックグラウンドプレーンがレフトビュー用の背景データの書き込みに使われ、（Ｒ）が付された領域で示す右目用バックグラウンドプレーンがライトビュー用の背景データが書き込まれ、左目用／右目用の合成時にそれぞれ使われる。バックグラウンドプレーン１１のステレオモードがOFFの場合はアプリケーションによりレフトビュー用の背景データがバックグラウンドプレーンの、（Ｌ）、（Ｒ）を付した領域にそれぞれ書き込まれるので、ライトビュー用の背景データは表示に影響しない。
【０１４６】
ステレオモードがONの場合、ビデオストリームのうち、左目用のビデオのピクチャデータがレフトビュー用のビデオプレーンに格納される。また、ビデオストリームのうち、右目用のビデオのピクチャデータがライトビュー用のビデオプレーンに格納される。ビデオプレーンのステレオモードがOFFの場合は、左目用のビデオのピクチャデータがレフトビュー用のビデオプレーンとライトビュー用のビデオプレーンの両方に格納される。
【０１４７】
ステレオモードがONの場合、イメージプレーンは（Ｌ）が付された領域で示す左目用イメージプレーンにレフトビュー用のイメージデータが書き込まれ、（Ｒ）が付された領域で示す右目用イメージプレーンがライトビュー用のイメージデータが書き込まれ、左目用／右目用の合成時にそれぞれ使われる。
【０１４８】
イメージプレーン８のステレオモードがOFFの場合、ライトビュー用のイメージデータに対応する字幕グラフィクスは表示に影響しない。また、ステレオモードがOFFの場合、イメージプレーン８の内容は、右方向又は左方向にシフトされた内容になる(図中のShifed
Left)。
【０１４９】
ステレオモードがONの場合、インタラクティブグラフィクスプレーン１０は（Ｌ）が付された領域で示す左目用インタラクティブグラフィクスプレーンにレフトビュー用のインタラクティブグラフィクスが書き込まれ、（Ｒ）が付された領域で示す右目用インタラクティブグラフィクスプレーンにライトビュー用のインタラクティブグラフィクスが書き込まれ、左目用／右目用の合成時にそれぞれ使われる。
【０１５０】
インタラクティブグラフィクスプレーン１０のステレオモードがOFFの場合はアプリケーションによるライト用のインタラクティブグラフィクスは表示に影響しない。また、ステレオモードがOFFの場合、インタラクティブグラフィクスプレーン１０の内容は、右方向又は左方向にシフトされた内容になる(図中のShifed  Left)。
【０１５１】
図７は、表示モードが3Dにおいて、全プレーンがステレオモードONである場合に、バックグラウンドプレーン１１、ビデオプレーン、イメージプレーン８、インタラクティブグラフィクスプレーン１０がどのように重ねあわせられるかを示す。ステレオモードにおいては、レフトビューとしてレフトビューバックグラウンドプレーンu4、ビデオストリームから読み出されたレフトビュービデオu3、、イメージプレーン８のレフトビューグラフィクスu2、インタラクティブグラフィクスプレーン１０のレフトビューグラフィクスu1が順に合成されることがわかる。
【０１５２】
また、ライトビューとしてライトビューバックグラウンドプレーンu8、ビデオストリームから読み出されたライトビュービデオu7が、イメージプレーン８のライトビューグラフィクスu6、インタラクティブグラフィクスプレーン１０ののライトビューグラフィクスu5が順に合成されることがわかる。
【０１５３】
図８は、表示モードが3Dにおいて、全プレーンがステレオモードOFFである場合に、バックグラウンドプレーン１１、ビデオプレーン、イメージプレーン８、インタラクティブグラフィクスプレーン１０がどのように重ねあわせられるかを示す。ステレオモードOFF時においては、レフトビューとしてレフトビューバックグラウンドプレーンr4、ビデオストリームから読み出されたレフトビュービデオr2、イメージプレーン８のレフトビューグラフィクスを一定の水平方向（図では右）にシフトしたShiftedLeftグラフィクスr3、インタラクティブグラフィクスプレーン１０のレフトビューグラフィクスを一定の水平方向（図では右）にシフトしたShifted Leftグラフィクスr1が順に合成されることがわかる。
【０１５４】
また、ライトビューとしてライトビューバックグラウンドプレーンr8、ビデオストリームから読み出されたレフトビュービデオr6、イメージプレーン８のレフトビューグラフィクスをレフトビューとは逆の方向（図では左）にシフトしたShiftedLeftグラフィクスr7、インタラクティブグラフィクスプレーン１０のレフトビューグラフィクスをレフトビューとは逆の方向（図では左）にシフトしたShiftedLeftグラフィクスr5が順に合成されることがわかる。
【０１５５】
次に、本実施の形態におけるステレオモードの切り替えの詳細について説明する。
図９は、プレーン毎の合成結果を示す。
６L、６Rは、ビデオプレーンの一例を示すものである。女性の顔の向きの違いから、レフトビュー用のストリームとライトビューのストリームは違った角度から撮られたものであることがうかがえる。尚、図９における人物の顔の向きや位置のズレは模式的なものであり、立体視再生を実現するための正確な顔の向きや位置を表している訳ではない。液晶眼鏡５００をかけず、裸眼でテレビ４００の表示画面を見た場合、この違った角度から撮影された映像があたかも重ね合わされて表示されているかのように見えることになる。
【０１５６】
イメージプレーン８における“I love you”の字は字幕データがイメージデコーダによってデコードされた後のイメージである。
インタラクティブグラフィクスプレーン１０における前後スキップの操作を受け付けるGUI部品は、BD-Jアプリケーションがインタラクティブグラフィクスプレーン１０に描画したグラフィックス画像である。
【０１５７】
６LLは、合成後の出力レフトビューであり、６RRは、合成後に出力される出力ライトビューである。６LLのレフトビュー用映像では“I love you”の字幕が右にずれて合成されていることがわかる。また、６RRのライトビュー映像では“I love you”の字幕が左にずれて合成されている。
【０１５８】
図１０は、全プレーンがステレオモードON時における映像出力を3D用ディスプレイで見た場合の一例である。
ライトビューとレフトビュー用の映像は、例えば液晶眼鏡５００を通してフィルタされ、左右の目にそれぞれ違う映像を映し出す。ここで注目すべき点は、ビデオストリーム映像が左右の画像が重ねられて立体化されているのみでなく、“I love you”の字幕や前後スキップの操作を受け付けるGUI部品も左目と右目で異なっていることである。このように、予め左目用と右目用の両方のコンテンツが用意されている場合はステレオモードをONにすることにより、自然とビデオ、字幕やGUI部品全て奥行きが保たれた構成になることがわかる。
【０１５９】
図１１は、ビデオプレーンはステレオモードONだが、それ以外のプレーンは全てステレオモードOFFにした場合の映像出力を、液晶眼鏡５００で見た場合に現れる立体視映像の一例を示す。左目用と右目用の両方の字幕やGUIが用意されていないディスク（2D前提で作られた過去のコンテンツ、ディスクの容量が足りなくてそうせざるを得ないディスク等）に関してはグラフィクスプレーンのステレオモードはOFFにせざるを得ない。図１１はビデオプレーンがステレオモードONのため、レフトビュー用のストリームとライトビューのストリームのそれぞれから再生される像は撮影対象が同じで、違った角度から撮られたものを再生した映像であることがうかがえる。一方、イメージプレーン８及びインタラクティブグラフィクスプレーン１０は、ステレオモードOFFであり、同じ字幕ストリーム、同じGUI画像を右方向及び左方向にシフトしたものがビデオプレーンに合成され、片目用の字幕・GUIのみしか存在しなくても立体ビデオの手前に表示することが可能となり、視聴者への目の疲労の度合いを低減することが可能なことが伺える。
【０１６０】
（立体視効果を実現するための制御）
立体視効果の実現のため、グラフィクスプレーンをずらす方向について説明する。
プレーンシフトエンジン２０がシフトする方向はグラフィクスプレーンを表示画面よりも奥に位置するような立体感をもたせるか、表示画面よりも手前に位置するような立体感を持たせるかによって異なる。
【０１６１】
本実施形態ではレフトビュー用映像を右方向にずらす、つまり画面から飛び出させるに立体感を持たせることを前提とする。
元の画素データの座標と、右方向又は左方向にシフトした場合の各画素データの座標との差分を“シフト量“又は“シフト数”という。このシフト量は、立体視においては、イメージプレーン８に書き込まれた字幕、又は、インタラクティブグラフィクスプレーン１０書き込まれたグラフィックス画像を表示画面よりもどの程度、手前または奥に位置するように表示をさせるのかという奥行き値によって算出されるべきである。また、立体視再生において、両目の視差として採用することができる何等のパラメータから、導出することができる。
【０１６２】
また、上述したようなシフト量だけ、左右に、グラフィクスプレーン内の画素データを移動させるためのパラメータを“プレーンオフセット”と呼ぶ。シフト量はスカラ量であるのに対して、プレーンオフセットは、正負の極性と大きさを持つベクトルであり、通常の状態（つまり表示画面上に表示しているように見える状態）から、表示画面の水平方向（例えば右方向及び左方向）のどちらの向きに、どれだけ画素データの座標を移動させるかを指し示す。以降の説明においてプレーンシフトは、このプレーンオフセットに従って実行されるものとする。プレーンオフセットには、シフト量に正負の符号を付けたものもあるし、何等かの関数式による計算を施した上、シフト量として採用できるものもある。
【０１６３】
続いて、プレーンオフセットの正負の意味合いについて説明する。
グラフィクスプレーンのプレーンオフセットは、ライトビューのグラフィクスプレーンに格納されている画素データの座標、及び、レフトビュー用のグラフィクスプレーンに格納されている画素データの座標を何画素だけずらすかという画素数を示す。
【０１６４】
グラフィクスプレーンの映像が画面から飛び出る効果をもたらしたい場合はプレーンの合成の前にレフトビュー用のグラフィクスプレーンをプレーンオフセットに示されるシフト量の分だけ右側にシフトする。そして、ライトビューのグラフィクスプレーンをプレーンオフセットに示されるシフト量の分だけ左側にシフトする。本実施の形態ではプレーンオフセットの符号が“正の符号”の場合は飛び出る効果をもたらすこととする。
【０１６５】
グラフィクスプレーンの映像が画面の奥に表示される効果をもたらしたい場合はプレーンの合成の前にレフトビュー用のグラフィクスプレーンをプレーンオフセットに示されるシフト量の分だけ左にシフトする。そして、ライトビューのグラフィクスプレーンをプレーンオフセットに示されるシフト量の分だけ右にシフトする。本実施の形態ではプレーンオフセットの符号が“負の符号”の場合は奥に表示される効果をもたらすこととする。
【０１６６】
プレーンオフセットが“０”の場合、グラフィクスプレーンのシフトは行わない、つまり、通常の状態で表示（表示画面上に表示されるように見える状態）されることを意味するものとなる。
【０１６７】
図１２は、表示モードが3D、各プレーンのステレオモードがOFFの場合において、バックグラウンドプレーンに格納された背景画像のプレーンオフセットが“０”、ビデオプレーンに格納されたビデオのプレーンオフセットが“０”、イメージプレーンのプレーンオフセットが“０“
とは異なる値、インタラクティブグラフィックスプレーンのプレーンオフセットが“０“ とは異なる値のときの右方向にシフトされたShiftedLeftレフトビューグラフィクスプレーン、左方向にシフトされたShifted Leftライトビューグラフィクスプレーンを示す図である。
【０１６８】
本図（ａ）に示すように、イメージプレーン８において、右方向シフト後のグラフィクスプレーンは、左側に透明領域が追加され、右側の端部が切り取られる。同じくインタラクティブグラフィクスプレーン１０において、右方向シフト後のグラフィクスプレーンは、左側に透明領域が追加され、右側の端部が切り取られる。
【０１６９】
同じく（ｂ）に示すように、イメージプレーン８において、左方向シフト後のグラフィクスプレーンは、右側に透明領域が追加され、左側の端部が切り取られる。同じくインタラクティブグラフィクスプレーン１０において、左方向シフト後のグラフィクスプレーンは、右側に透明領域が追加され、左側の端部が切り取れる。
【０１７０】
ステレオモードがOFFである場合に実行されるプレーンシフトは、イメージプレーンやインタラクティブグラフィクスプレーン内のグラフィクスを表示画面よりも手前に位置するように見せたり、表示画面よりも奥に位置するように見せたりするという視覚効果を産み出す。このプレーンシフトが前提としている原理について説明する。
【０１７１】
(プレーンシフトによる立体視の原理)
図１３は、プレーンオフセットの符号が正（レフトビュー用のグラフィクスイメージを右方向へずらし、ライトビュー用のグラフィクスイメージを左方向へずらす）である場合、像が表示画面よりも手前にあるように見える原理を説明するための図である。
【０１７２】
本図において、丸で示したものは、表示画面上に表示される像である。
まず、プレーンオフセットがない場合、右目に見える像も左目に見える像も同じ位置であるため、両目を用いて、この像を見たときの焦点位置は、表示画面上に位置する（図１３（ａ））。結果として表示される像は表示画面上に位置する。
【０１７３】
一方、3D表示モードのステレオモードがOFFの場合において、左目に見える像はプレーンオフセットが０の場合に比べて右側の位置に見えるようシフトして表示する。このとき右目には液晶眼鏡５００により何も見えないようにする。一方、右目に見える像は、プレーンオフセットが０の場合に比べて左側の位置に見えるようにシフトして表示する。このとき左目には液晶眼鏡５００により何も見えないようにする（図１３（ｂ））。
【０１７４】
人間は両目を用いて焦点をあわせてその焦点位置に像があるように認識する。従って、液晶眼鏡５００により左目に像が見える状態と、右目に像が見える状態とを交互に短い時間間隔で切り替えると、人間の両目は表示画面よりも手前の位置に焦点位置を、合わせようとし、結果として表示画面よりも手前に位置する焦点位置に像があるように錯覚を起こす（図１３（ｃ））。
【０１７５】
図１４は、プレーンオフセットの符号が負（レフトビュー用のグラフィクスイメージを左方向へずらし、ライトビュー用のグラフィクスイメージを右方向へずらす）である場合、像が表示画面よりも奥にあるように見える原理を説明するための図である。
【０１７６】
図１４において、丸で示したものは、表示画面上に表示される像である。まず、プレーンオフセットがない場合、右目に見える像も左目に見える像も同じ位置であるため、両目を用いて、この像を見たときの焦点位置は、表示画面上に位置する（図１４（ａ））。結果として表示される像は表示画面上に位置する。
【０１７７】
一方、3D表示モードのステレオモードがオフの場合において、左目に見える像はプレーンオフセットが０の場合に比べて左側の位置に見えるようにする。このとき右目には液晶眼鏡５００により何も見えないようにする。一方、右目に見える像は、オフセットが０の場合に比べて右側の位置に見えるようにする、このとき左目には液晶眼鏡５００により何も見えないようにする（図１４（ｂ））。
【０１７８】
液晶眼鏡５００により左目に像が見える状態と、右目に像が見える状態と互に短い時間間隔で切り替えると、人間の両目は表示画面よりも奥の位置に焦点位置を、合わせようとし、結果として表示画面よりも奥の位置に像があるように錯覚を起こす（図１４（ｃ））。
【０１７９】
以上の説明は、グラフィクスプレーンに書き込まれたグラフィクスイメージについて説明をしたが、インタラクティブグラフィクスプレーン、ビデオプレーン、バックグラウンドプレーンについて上述のオフセットの概念を適用すれば同様のことが言えるのは言うまでもない。
【０１８０】
(飛出し度合／奥行きのもたらし方)
図１５は、正と負のプレーンオフセットの見え方の違いの一例を示す図である。
同図（ａ）（ｂ）において、手前の方は、ライトビュー出力時にシフトしたシフト後のグラフィクスプレーンを用いて出力されるライトビュー用のグラフィクスイメージを示す。奥の方は、レフトビュー出力時にシフトしたシフト後のグラフィクスプレーンを用いて出力されるレフトビュー用のグラフィクスイメージを示す。
【０１８１】
本図（ａ）は、プレーンオフセットの符号が正（レフトビュー用のグラフィクスイメージを右方向へずらし、ライトビュー用のグラフィクスイメージを左方向へずらす）である場合を示す。プレーンオフセットが正の値であると、図１３に示したようにレフトビュー出力時の字幕がライトビュー出力時の字幕より右の位置に見えるようになる。つまり、輻輳点（焦点位置）がスクリーンより手前にくるので、字幕も手前に見えるようになる。
【０１８２】
本図（ｂ）は、プレーンオフセットの符号が負である場合を示す。負の値であると、図１４に示したように、レフトビュー出力時の字幕がライトビューの出力時の字幕より左の位置に見えるようになる。つまり、輻輳点（焦点位置）がスクリーンより奥にゆくので、字幕も奥に見えるようになる。
【０１８３】
以上で、プレーンオフセットの正と負の切り替えによって、字幕が表示画面の位置よりも飛び出るか奥にゆくかを変化する方法についての説明を終える。
以上の説明から、プレーンシフトにおけるプレーンオフセットによって、平面的な画像が表示画面よりも手前に表示されたり奥に表示されたりするように見えることが判った。しかしながら、プレーンシフトの対象となる字幕グラフィクスの大きさは固定化されている訳ではなく、対話性の向上のため、動画像の拡大縮小などの処理に伴って変動することが一般的である。
【０１８４】
通常の再生においては、動画像をフルスケールで、字幕グラフィックスをフルスケールの動画像に対応したサイズで表示しているのに対し、メニュー画面に切り換えた場合、動画像を縮小して表示するとともに、字幕グラフィックスを縮小した動画像の大きさに応じたサイズに変更して表示するとともに、メニュー画面に必要なGUIを表示する必要がある。このように、動画像に対して対話性実現のためのスケーリングがなされた場合、プレーンシフトにおけるプレーンオフセットをどのように定めるかについて説明する。図１７は、動画像に対してスケーリングがなされた場合に、ユーザによって視聴される立体視画像を示す。
【０１８５】
表示モードが3DでビデオプレーンのステレオモードがONである場合において、動画像について、スケーリングFactor“1／2”のスケーリングがなされれば、横幅、縦幅が1/2になり、最終的には1/4の面積をもつ動画像が立体表示されることがわかる。
【０１８６】
このとき、表示モードが3DでビデオプレーンのステレオモードがONである場合において、レフトビュー用のビデオストリームとライトビュー用のビデオストリームにより再生される像というのはそれぞれ、見える角度が異なる像であるため、スケーリングFactorによって、スケーリングがなされれば、立体表示による飛び出し具合もスケーリングFactorに応じて動的に変化する。
【０１８７】
しかしながら、表示モードが3DでイメージプレーンのステレオモードがOFFである場合では、スケーリングFactorによって、イメージプレーンの字幕のスケーリングを行った場合において、イメージプレーンにプレーンオフセットが“０“でない値に設定がされていると、このプレーンオフセットはスケーリングによって動的に変化しないため、合成画像において、字幕が飛び出た感の強いものとなり、視聴者は違和感を覚える。
【０１８８】
この点は、表示モードが3DでインタラクティブグラフィックスプレーンのステレオモードがOFFである場合においても同様のことが言える。
簡単な例を用いて説明をする。
【０１８９】
図１８は、表示モードが3DでビデオプレーンのステレオモードがON、表示モードが3DでイメージプレーンのステレオモードがOFFである場合において、イメージプレーンのプレーンオフセットをビデオのスケーリングに応じて変えなければどのようなことが起こるのかを説明するための図である。
【０１９０】
図において、円形で示したものはレフトビュー用のビデオストリームとライトビュー用のビデオストリームにより再生されて、人の目に見える仮想的な立体像をX-Z平面から見たときの一例を示すもの、この例では立体的な像は表示画面よりも手前に表示されている。
【０１９１】
また字幕が仮想的に見える位置というのは、仮想的な立体的像よりも手前に見えるようイメージプレーンのオフセットが調節されている位置であると仮定する。
図１８（ａ）はフルスクリーン表示としたときの場合を示し、図１８（ｂ）はビデオを縮小表示したときの場合を示す。ビデオを縮小表示する場合におけるビデオの飛び出しの度合いは、縮小の度合いに応じて動的に変化をする。しかし、字幕が仮想的に見える位置というのはイメージプレーンのオフセットによって与えられる固定的な値であり、縮小処理によってオフセットが変化することはないので、スケーリングに応じてイメージプレーンのオフセットを変えないと、字幕の位置が妙に飛び出たように見えてしまう。
【０１９２】
図１８に示した飛び出し度合を模式的に示した一例が図１９である。
本実施形態に係る再生装置は、この技術的課題に着目し、解決する構成を提供するものである。
【０１９３】
具体的には、本実施形態に係る再生装置は、ビデオのスケーリングに応じてイメージプレーンのオフセットを動的に調整するようにしたことを特徴とする。具体的には図１８（ｃ）に示すようにビデオを縮小表示した場合、イメージプレーンのオフセットを調整（この例では小さくする）ことにより、字幕が仮想的に見える位置をより表示画面側に近づける。
【０１９４】
図１９は、本実施の形態の処理を行わなかった場合、つまり、動画像の縮小時にコンテンツ、あるいはユーザから指定されたスケーリング前のプレーンオフセットをそのままプレーンシフトに適用した場合に表示される立体視画像を示す。
【０１９５】
対照的に、スケーリング前の動画像との合成に用いられたプレーンオフセットDにスケーリングFactorを乗じたプレーンオフセットEを、イメージプレーンのプレーンシフトに適用すると、イメージプレーンにおける画素の飛び出し度合としての意味をもつプレーンオフセットDにスケーリングFactorが乗じられるので、飛出し度合が小さくなる。そうするとスケーリングがなされた人物像の近辺にまで、字幕を引き寄せることができる。こうすることで、スケーリングがなされた人物像の近くに字幕が存在することになり、人物像と字幕との飛び出し具合のアンバランス感は解消される。
【０１９６】
図２０は、本実施の形態の処理を行った場合、つまりスケーリング倍率が乗じられたプレーンオフセットを、イメージプレーンのプレーンシフトに適用した場合に表示される立体視画像を示す。
【０１９７】
図２０は、図１９とは異なりスケーリングがなされた人物像の近くに字幕が存在することになり、人物像と字幕との飛び出し具合のアンバランス感は解消される。
以上のようにして、アンバランス感を解消するには、スケーリングFactorを考慮して、最適なプレーンオフセットを算出する仕組みをプレーンシフトエンジン２０内に設ける必要がある。このように、スケーリングFactorを考慮して、最適なプレーンオフセットを算出する仕組みを組込んだのが、図２１におけるプレーンシフトエンジン２０である。以下、図２１を参照しながら、プレーンシフトエンジン２０について説明する。
【０１９８】
図２１は、本実施形態に係る再生装置２００のプレーンシフトエンジン２０の内部構成の一例を示した図である。本図に示すように、プレーンシフトエンジン２０は、オフセット値保存部４１、スケーリングFactor保存部４２、プレーンオフセット演算部４３、シフト部４４から構成される。
【０１９９】
(オフセット値保存部４１)
オフセット値保存部４１は、オフセット設定部２１からコンテンツ、あるいはユーザから指定されたオフセット値を格納する。
【０２００】
(スケーリングFactor保存部４２)
スケーリングFactor保存部４２は、スケーリング前からの倍率情報を保存する。例えば、スケーリングしていない場合は“１”、半分の場合は１/２、２倍に拡大する場合は“２”などという値を保持する。
【０２０１】
(プレーンオフセット演算部４３)
プレーンオフセット演算部４３は、オフセット値保存部４１に保存されたオフセット値を基にスケーリングや画面サイズを考慮して、シフト部４４によるシフトを行うシフト量をピクセル単位に変換する計算を実行する。具体的な実装例で言えば、スケーリングFactorが“1/2”と指定された場合は、オフセット値保存部４１に保存されたオフセット値に、スケーリングFactor保存部４２に保存されたスケーリング倍率を乗じた値を新しい“プレーンオフセットE”として得る。
【０２０２】
(演算結果の扱い)
次に、演算結果における小数点以下の扱いについて説明する。プレーンオフセット演算部４３による演算は、スケーリングFactorとの乗算を伴うものであり、この場合、小数点以下の数値の扱いが問題となる。何故なら、シフト量は画素の数に応じた数分シフトするため、シフト量は整数でなければならないからである。プレーンオフセット演算部４３が演算を行うに当たって、演算結果に小数点以下の数値が出現した場合、その小数点以下の数値を、次の整数に繰り上げることにする。例えばプレーンオフセット演算部４３による演算結果が“３．２“である場合、演算結果を“４”にすることを意味する。
【０２０３】
このように、演算結果における小数点以下の部分を、次の整数に繰り上げる演算を、“Ceil演算”という。本実施形態において、スケーリングFactorとの乗算を伴う演算を実行する場合、その演算結果に対してCeil演算を実行し、演算結果における小数点以下の部分を、次の整数に繰り上げるものとする。
【０２０４】
(解像度維持の要求による影響)
次に、アプリケーションからの解像度維持の要求による影響について述べる。プレーンオフセット演算部４３は、スケーリング時のKEEP＿RESOLUTION設定時であっても、スケーリングFactorに応じたシフト量の計算を実行する。KEEP＿RESOLUTION設定とは、スケーリング命令時にインタラクティブグラフィクスプレーンの拡大/縮小を行なわずに、ビデオプレーンのみ拡大/縮小を行う機能である。そうすることにより、KEEP＿REOLUTION時もビデオの奥行きと同期した字幕の奥行きの変更が可能となる。
【０２０５】
(シフト部４４)
シフト部４４は、プレーンオフセット演算部４３が計算した値を基にイメージプレーンの横軸へのシフティングを行う。
【０２０６】
図２２は、1/1、1/2、1/4という3つのスケーリングFactorと、各スケーリングFactorが適用された場合の、字幕・GUIを含むグラフィクスの合成画像とを示す図である。
手前はスケーリングFactor＝1/1のL画像、R画像の組みを示し、真ん中はスケーリングFactor＝1/2のL画像、R画像の組み、一番後ろは、スケーリングFactor＝1/4のL画像、R画像の組みを示す。
【０２０７】
例えばスケーリングFactor＝1/2、1/4とした場合には、表示画面の左上の位置にスケーリングを行なった合成画像を表示したときの例を示すものである。
スケーリングFactor＝1/2では、縦画素数及び横画素数が、1/2になっており、画面の左端に小さく表示されていることがわかる。スケーリングFactor＝1/4では、縦画素数及び横画素数が、1/4になっており、画面の左端に小さく表示されていることがわかる。
【０２０８】
図２２では、字幕・GUIが合成された動画像がスケーリングの対象になったが、スケーリングを伴ったGUI処理では、GUIはフル画面表示による表示に供され、GUIのフル画面表示のうち、左上領域に合成画像が配置される。GUIは、左上領域に表示する字幕・動画像の合成画像を表示している部分以外の部分に主として描画するようにした場合、GUIはスケーリングの対象から除外するような構成となり、字幕がビデオと合成された合成画像のみがスケーリングの対象になる。
【０２０９】
また、GUIをBD-Jアプリケーションが描画するインタラクティブグラフィックスデータの一例として説明をしているが、BD-Jアプリケーションが描画するインタラクティブグラフィックスデータはGUI以外にも、動画像と連動するアニメーションといったグラフィックス画像も含まれる。
【０２１０】
このような場合において、BD-Jアプリケーションが描画するインタラクティブグラフィックスデータは、字幕、動画像と同様にスケーリングの対象とすれば、字幕・動画像の縮小に応じて連動して縮小するように構成をしても良い。この場合には図２２の黒い部分にはバックグラウンドプレーンに格納された背景データが表示されることになる。
【０２１１】
図２２の右目画像、左目画像ではスケーリング前の合成構成に比べて、スケーリング後はビデオプレーンのサイズに応じて字幕のシフト量が調整されていることが理解できる。これにより立体感の差が激しくなることを防げ、目の疲れを軽減するとともに、より自然な表示が行えるようになる。
【０２１２】
図２４は、1/1、1/2、1/4という3つのスケーリングFactorと、各スケーリングFactorが適用された場合の、ビデオと字幕グラフィクスの合成画像とを示す図である。
スケーリングFactorが1/1である場合、GUIはが存在しないが、スケーリングFactor＝1/2であれば、GUIが表示されていることがわかる。テレビ４００の画面のうち右半分は、映画作品の監督によって記述されたディレクターズコメントcm1を表し、テレビ４００の画面のうち下半分は、ネクストスキップ、プレビアススキップを受け付けるボタン部材bn1、メニューコールを受け付けるボタン部材bn2、戻る操作を受け付けるボタン部材bn3、ネットワーク接続を受け付けるボタン部材bn4を含む。これらは、図１に示したものと同一である。
【０２１３】
スケーリングの対象が、字幕グラフィクスを合成した動画像であれば、プレーンシフトの対象はイメージプレーンのみとなり、プレーンオフセットEの算出対象も、イメージプレーンにおけるプレーンオフセットEのみとなる。
【０２１４】
以上がプレーンシフトエンジン２０についての説明である。続いて、プレーンシフトの対象となるイメージプレーンの詳細について説明する。最初に、図２６を用いて、イメージプレーンの一般構成を説明し、次に、このイメージプレーンにおいて、画素の移動がどのように行われるかについて説明する。
【０２１５】
図２６は、イメージプレーン８の内部構成の一例を示す。解像度が1920×1080に設定されている場合、同図（ａ）に示すように、イメージプレーン８は横1920×縦1080の、８ビット長の記憶素子からなる。これは1920×1080の解像度で、1画素当たり8ビットのピクセルコードを格納できるメモリアロケーションを意味する。記憶素子に記憶されている８ビットのピクセルコードは、カラールックアップテーブルを用いた色変換によって、Y値、Cr値、Cb値に変換される。このカラールックアップテーブルにおける、ピクセルコードと、Y値、Cr値、Cb値との対応関係は、字幕データ内のパレット定義セグメントによって規定される。
【０２１６】
同図（ｂ）は、イメージプレーン８に格納されている画素データを示す。本図に示すように、イメージプレーン８に格納されているグラフィクスデータは、前景部分(字幕“I love“を構成している部分)にあたる画素データ、背景部分にあたる画素データから構成される。ここで背景部分にあたる記憶素子には、透明色を示すピクセルコードが格納されており、この部分には、ビデオプレーンとの合成時において、ビデオプレーンにおける動画像が透けて見えるようになる。一方、前景部分にあたる記憶素子には、透明色以外を示すピクセルコードが格納されており、この透明色以外のY,Cr,Cb値によって、字幕が描かれることになる。合成部１５によるプレーン合成時において、透明画素にあたる部分には、字幕よりも下の位置にあるバックグラウンドプレーンに格納された背景画像またはビデオプレーンに格納されたビデオの内容が透けて見えるようになり、かかる透明部分の存在によって、プレーン合成が可能になる。
【０２１７】
図２７は、右方向のシフト、左方向のシフトがなされた後の、前景領域の画素データ及び背景領域の画素データを示す。（ａ）は、シフト前の画素データであり、（ｂ）は右方向のシフト後の画素データである。ここで、シフト量が15画素であるとすると、字幕文字“I love you”の“y“が移動して、画面から見えなくなっていることがわかる。（ｃ）は、左方向のシフトがなされた後の画素データである。ここでシフト量が15画素であると、字幕文字“I love”に後続する字幕文字“you”のうち、“o”の文字が、現れていることがわかる。
【０２１８】
以上がイメージプレーン８の内部構成と、そのシフト前後の画素データの配置の説明である。次に、インタラクティブグラフィクスプレーン１０の内部構成と、そのシフト前後の画素データの配置について説明する。
【０２１９】
図２８は、インタラクティブグラフィクスプレーン１０の内部構成を示す。解像度が1920×1080に設定されている場合、（ａ）に示すように、インタラクティブグラフィクスプレーン１０は横1920×縦1080の３２ビット長の記憶素子からなる。インタラクティブグラフィクスプレーン１０は、1920×1080の解像度で、1画素当たり３２ビットのR,G,B,α値を格納できるメモリアロケーションをもつ。記憶素子に記憶される３２ビットのR,G,B,α値は、８ビットのR値、８ビットのG値、８ビットのB値、８ビットの透明度αから構成される。
【０２２０】
（ｂ）は、インタラクティブグラフィクスプレーン１０に格納されている画素データを示す。本図に示すように、インタラクティブグラフィクスプレーン１０に格納されているグラフィクスデータは、前景部分(前後チャプターへのスキップ操作を受け付けるGUI)にあたる画素データ、背景部分にあたる画素データから構成される。ここで背景部分にあたる記憶素子には、透明色を示すα値が格納されており、この部分には、ビデオプレーンとの合成時において、イメージプレーンの字幕やビデオプレーンにおける動画像が透けて見えるようになる。一方、前景部分にあたる記憶素子には、透明色以外を示すR,G,B値が格納されており、この透明色以外のR,G,B値によって、グラフィクスが描かれることになる。
【０２２１】
合成部１５によるプレーン合成時において、透明画素にあたる部分には、バックグラウンドグラフィクスプレーン、ビデオプレーン、イメージプレーン８の内容が透けて見えるようになり、かかる透明部分の存在によって、プレーン合成が可能になる。
【０２２２】
以上で、右方向のシフト、左方向のシフトがなされた後の、前景領域の画素データ及び背景領域の画素データについての説明を終える。
図２９は、右方向のシフト、左方向のシフトがなされた後の、前景領域の画素データ及び背景領域の画素データを示す。本図（ａ）は、シフト前の画素データであり、本図（ｂ）は右方向のシフト後の画素データである。この場合、前後チャプターへのスキップ操作を受け付けるGUIが右方向に移動していることがわかる。本図（ｃ）は、左方向のシフトがなされた後の画素データである。前後チャプターへのスキップ操作を受け付けるGUIが左方向に移動していることがわかる。
【０２２３】
図３０は、イメージプレーン８におけるプレーンシフトの処理手順を示す図である。
（ａ）は、イメージプレーン８から生成された、左方向シフト後のグラフィクスプレーンと、右方向シフト後のグラフィクスプレーンとを示す。
【０２２４】
（ｂ）は、右方向のシフトを示す。本図に示すように水平方向の右方向へのシフト方法は次の、(1-1)(1ー2)(1ー3)のようにして行う。(1-1).イメージプレーン８の右端領域を切り取る。(1-2).イメージプレーン８に存在する画素データの位置を、上述したように右へ水平方向にプレーンオフセットEに示されるシフト量だけずらす。(1-3).イメージプレーン８の最も左端に、透明領域を追加する。
【０２２５】
（ｃ）は、左方向のシフトを示す。本図に示すように水平方向の左方向へのシフト方法は次の、(2-1)(2ー2)(2ー3)のようにして行う。(2-1).イメージプレーン８の左端領域を切り取る。(2-2).イメージプレーン８における各画素データの位置を左へ水平方向にプレーンオフセットEに示されるシフト量だけずらす。(2-3).イメージプレーン８の右端に透明領域を追加する。
【０２２６】
続いて、プレーンオフセットの正負の意味合いについて説明する。
3D表示モード中、かつイメージプレーン８のステレオモードがOFFの場合、再生装置はプレーンオフセットEに示されるシフト量に基づいてプレーンを次のように処理した上で合成を行う。
【０２２７】
プレーンオフセットEが正の符号が設定されている場合はプレーンの合成の前にレフトビュー用のイメージプレーン８をプレーンオフセットEに示されるシフト量の分だけ右にシフトする。そして、ライトビュー用のイメージプレーン８をプレーンオフセットEに示されるシフト量の分だけ左にシフトする。
【０２２８】
プレーンオフセットEが負の符号が設定されている場合はプレーンの合成の前にレフトビュー用のイメージプレーン８をプレーンオフセットEに示されるシフト量の分だけ左にシフトする。そして、ライトビュー用のイメージプレーン８をプレーンオフセットEに示されるシフト量の分だけ右にシフトする。
【０２２９】
図３１は、インタラクティブグラフィクスプレーン１０におけるプレーンシフトの処理手順を示す図である
（ａ）は、インタラクティブグラフィクスプレーン１０から生成された、左方向シフト後のグラフィクスプレーンと、右方向シフト後のグラフィクスプレーンとを示す。
【０２３０】
（ｂ）は、右方向のシフトを示す。本図に示すように水平方向の右方向へのシフト方法は次の、(1-1)(1ー2)(1ー3)のようにして行う。(1-1).インタラクティブグラフィクスプレーンの右端領域を切り取る。(1-2).インタラクティブグラフィクスプレーンに存在する画素データの位置を、上述したように右へ水平方向にプレーンオフセットEに示されるシフト量だけずらす。(1-3).インタラクティブグラフィクスプレーンの最も左端に、透明領域を追加する。
【０２３１】
（ｃ）は、左方向のシフトを示す。本図に示すように水平方向の左方向へのシフト方法は次の、(2-1)(2ー2)(2ー3)のようにして行う。(2-1).インタラクティブグラフィクスプレーンの左端領域を切り取る。
【０２３２】
(2-2).インタラクティブグラフィクスプレーンにおける各画素データの位置を左へ水平方向にプレーンオフセットEのシフト量分だけずらす。(2-3).インタラクティブグラフィクスプレーンの右端に透明領域を追加する。
【０２３３】
プレーンシフトにあたって、右端又は左端から切り取られる領域、右端又は左端に追加される領域の大きさについて説明する。上述したようなシフトにおけるプレーンオフセットは、右目と、左目との視差に応じた値である。ということは、グラフィクスプレーンの端部から切り取られる領域、グラフィクスプレーンの端部に追加される透明領域の横画素数は、プレーンオフセットEに、相当する画素数でなければならない。
【０２３４】
よってグラフィクスプレーンの端部から切り取られる領域の横画素数は、プレーンオフセットEのシフト量に相当する画素数になる。また、透明領域の縦画素数は、グラフィクスプレーンの高さを示す画素数になる。
【０２３５】
同様に、グラフィクスプレーンの端部に追加される透明領域の横画素数は、プレーンオフセットEのシフト量に相当する画素数になる。この透明領域の縦画素数は、グラフィクスプレーンの高さを示す画素数になる。
【０２３６】
以上で、イメージプレーン８、インタラクティブグラフィクスプレーン１０におけるプレーンシフトの処理手順についての説明を終える。次に、プレーンオフセットがもつ符号の正負の意味合いについて説明する。
【０２３７】
表示モードが3Dである場合であって、かつグラフィクスプレーンのステレオモードがOFFの場合、再生装置はプレーンオフセットに基づいてプレーンを次のように処理した上で合成を行う。
【０２３８】
プレーンオフセットEが正の符号が設定されている場合はプレーンの合成の前にレフトビュー用のグラフィクスプレーンをプレーンオフセットEのシフト量の分だけ右にシフトする。そして、ライトビューのグラフィクスプレーンをプレーンオフセットEのシフト量の分だけ左にシフトする。
【０２３９】
プレーンオフセットEが負の符号が設定されている場合はプレーンの合成の前にレフトビュー用のグラフィクスプレーンをプレーンオフセットEのシフト量の分だけ左にシフトする。そして、ライトビューのグラフィクスプレーンをプレーンオフセットEのシフト量の分だけ右にシフトする。
【０２４０】
（グラフィクスプレーンの記憶素子における画素データの移動）
上述したようなシフトによって、グラフィクスプレーンの記憶素子における画素データが、どのように移動するかを示す。グラフィクスデータは、1920×1080、1280×720といった解像度の画素データから構成されている。
【０２４１】
図３２は、グラフィクスプレーンに格納されている画素データを示す図である。本図において、四角枠は、３２ビット、又は、８ビットの情報を記憶する記憶素子であり、0001,0002,0003,0004,07A5,07A6,07A7,07A8,07A9,07AA,07ABといった１６進数の数値は、MPUのメモリ空間において、これらの記憶素子に連続的に割り当てられるアドレスである。また、記憶素子中の(0,0)(1,0)(2,0)(3,0)(1916,0)(1917,0)(1918,0)(1919,0)といった数値は、記憶素子内に、どの座標の画素データが格納されているかを示す。
【０２４２】
ここでは、座標(0,0)に存在する画素データがアドレス0001の記憶素子に格納されており、座標(1,0)に存在する画素データがアドレス0002の記憶素子に格納されており、座標(1919,0)に存在する画素データがアドレス07A8の記憶素子に格納されており、座標(0,1)に存在する画素データがアドレス07A9の記憶素子に格納されている。つまり、グラフィクスを構成する複数のラインが、連続アドレスになるように、グラフィクスデータが格納されていることがわかる。こうすることで、これらの連続アドレスが付された記憶素子に対して順次、DMA転送を行うことで、これらの画素データをバースト的に読み出すことが可能になる。
【０２４３】
図３３は、シフトがなされた後のグラフィクスプレーンの格納内容を示す。
同図（ａ）は、プレーンオフセットEが“3”に設定されていて、右方向にシフトされたグラフィクスプレーンを示す。プレーンオフセットEが“3“であるから、アドレス0004の記憶素子には、グラフィクスプレーン座標系における座標(0,0)の画素データが、アドレス0005の記憶素子には、グラフィクスプレーン座標系における座標(1,0)の画素データが、アドレス0006の記憶素子には、グラフィクスプレーン座標系における座標(2,0)の画素データが格納されていることがわかる。
【０２４４】
またアドレス07ACの記憶素子には、グラフィクスプレーン座標系における座標(0,1)の画素データが、アドレス07ADの記憶素子には、グラフィクスプレーン座標系における座標(1,1)の画素データが、アドレス07AEの記憶素子には、グラフィクスプレーン座標系における座標(2,1)の画素データが格納されていることがわかる。
【０２４５】
同図（ｂ）は、プレーンオフセットEが“3”に設定されていて、左方向にシフトされたグラフィクスプレーンを示す。プレーンオフセットEが“3“であるから、アドレス0001の記憶素子には、グラフィクスプレーン座標系における座標(3,0)の画素データが、アドレス0002の記憶素子には、グラフィクスプレーン座標系における座標(4,0)の画素データが、アドレス0003の記憶素子には、グラフィクスプレーン座標系における座標(5,0)の画素データが格納されていることがわかる。
【０２４６】
またアドレス07A9の記憶素子には、グラフィクスプレーン座標系における座標(3,1)の画素データが、アドレス07AAの記憶素子には、グラフィクスプレーン座標系における座標(4,1)の画素データが、アドレス07ABの記憶素子には、グラフィクスプレーン座標系における座標(5,1)の画素データが格納されていることがわかる。
【０２４７】
以上のように、シフトされたグラフィクスプレーンは、グラフィクスプレーンにおける各画素データの座標が、本来の座標から右方向、左方向に、プレーンオフセットEに示される画素数だけずれていることがわかる。
【０２４８】
グラフィクスデータを構成する各画素データが配置される記憶素子のアドレスを、所定のアドレスだけ変化させることで、グラフィクスプレーンのシフトは実現することができる。当然であるが、実際に、画素データが配置される記憶素子のアドレスを変化させなくても、これと等価な処理であるなら、グラフィクスプレーンのシフトを実現することは可能になる。
【０２４９】
以上で、シフトがなされた後のグラフィクスプレーンの格納内容についての説明を終える。
上述したように、プレーンシフトはメモリにおいて、画素の座標をどのように移動させるかという制御で実現されるものであり、いわば、再生装置における組込みソフトウェアによって実現されるものである。対照的に、BD-ROMから供給される、再生制御のためのプログラムは、上述したようなJava言語で記述されたバイトコードアプリケーションなので、このバイトコードアプリケーションの実行主体が、再生装置２００に存在することになる。以降、バイトコードアプリケーションを実行する主体である、BD-Jプラットフォーム部２２の内部構成について説明する。
【０２５０】
図３４は、BD-Jプラットフォーム部の内部構成を示す図である。本図に示すようにBD-Jプラットフォーム２２は、ヒープメモリ３１、バイトコードインタプリタ３２、ミドルウェア３３、クラスローダ３４、アプリケーションマネージャ３５から構成される。
【０２５１】
(ヒープメモリ３１)
ヒープメモリ３１は、システムアプリケーションのバイトコード、BD-Jアプリケーションのバイトコード、システムアプリケーションが利用するシステムパラメータ、BD-Jアプリケーションが利用するアプリケーションパラメータが配置されるスタック領域である。
【０２５２】
(バイトコードインタプリタ３２)
バイトコードインタプリタ３２は、ヒープメモリ３１に格納されているBD-Jアプリケーションを構成するバイトコード、システムアプリケーションを構成するバイトコードをネィティブコードに変換して、MPUに実行させる。
【０２５３】
(ミドルウェア３３)
ミドルウェア３３は、組込みソフトウェアのためのオペレーティングシステムであり、カーネル、デバイスドライバから構成される。カーネルは、BD-Jアプリケーションからのアプリケーションプログラミングインターフェイス(API)のコールに応じて、再生装置特有の機能をBD-Jアプリケーションに提供する。また、割込信号により割込ハンドラ部を起動する等のハードウェア制御を実現する。
【０２５４】
(クラスローダ３４)
クラスローダ３４は、システムアプリケーションの1つであり、JARアーカイブファイルに存在するクラスファイルからバイトコードを読み出して、ヒープメモリ３１に格納することにより、BD-Jアプリケーションのロードを行う。
【０２５５】
(アプリケーションマネージャ３５)
アプリケーションマネージャ３５は、システムアプリケーションの1つであり、BD-Jオブジェクト内のアプリケーション管理テーブルに基づき、BD-Jアプリケーションを起動したりBD-Jアプリケーションを終了したりする等、BD-Jアプリケーションのアプリケーションシグナリングを行う。
【０２５６】
以上で、BD-Jプラットフォーム部の内部構成についての説明を終える。
上記レイヤモデルにおいて表示モード設定イニシャル表示設定部２８は、プラットフォーム部の下位のレイヤーに存在しており、BD-Jプラットフォーム部に供せられるカレントタイトルにおけるBD-Jオブジェクトに基づき、表示モード、解像度の設定を行う。
【０２５７】
(表示モード記憶部２９の内部構成)
表示モード記憶部２９は、以上のレイヤモデルから参照できる構造になっているので、表示モード記憶部２９は、APIを通じて参照でき、且つ、バックグラウンドグラフィクスプレーン１１、ビデオプレーン６、イメージプレーン８、インタラクティブグラフィクスプレーン１０の各状態や設定を、明らかにできるような構成になっている。以降、表示モード記憶部２９の構成について、図３５を参照しながら説明する。
【０２５８】
図３５は、表示モード記憶部２９における記憶内容を示す。
本図において表示モード記憶部２９は、再生装置が2Dモードであるか、3Dモードであるかの表示モードの状態を示す情報に加え、バックグラウンドプレーン１１設定、ビデオプレーン設定、イメージプレーン設定、インタラクティブグラフィクスプレーン設定を保存する。各プレーンの設定項目としては「解像度(図中の:YY×ZZ)」、ステレオモード(図中の:ON
or OFF)、THREE＿Dの設定(図中の:ON or OFF)が保存されている。イメージプレーン８設定及びインタラクティブグラフィクスプレーン１０設定については、以上の設定項目の他に、プレーンオフセットを“−６３“から“＋６３”の範囲で設定することができる。
【０２５９】
本図に示すように、イメージプレーン設定におけるプレーンオフセットと、インタラクティブグラフィクスプレーン設定におけるプレーンオフセットを異なる値に設定をすると、字幕グラフィックスと、GUIが表示されるように見えるＺ軸上の位置が異なる位置となる。この場合、図２１におけるオフセット値保存部はイメージプレーン設定におけるプレーンオフセットとインタラクティブグラフィクスプレーン設定におけるプレーンオフセットの２つを保存する構成となる。
【０２６０】
表示モード記憶部２９によってサポートされる解像度について説明する。
再生装置が2D表示モードである場合、イニシャル表示設定としてバックグラウンドプレーン１１、ビデオプレーン６、イメージプレーン８、インタラクティブグラフィクスプレーン１０は１９２０×１０８０、１２８０×７２０、７２０×５７６、７２０×４８０ピクセルの解像度をサポートする。
【０２６１】
以上で、表示モード記憶部２９における記憶内容についての説明を終える。
（表示モード設定イニシャル表示設定部２８の実装）
表示モード設定イニシャル表示設定部２８の実装について説明する。一個のタイトルが選択され、そのタイトルに対応するBD-Jオブジェクトが再生装置で有効になっている期間においても、動作中のアプリケーションが、ユーザオペレーションに応じてJMFプレーヤインスタンスをコールすることにより、新たなプレイリストの再生が開始されることがある。このように新たなプレイリストの再生が開始されれば、タイトル内で、表示モードを設定やり直す必要がある。
【０２６２】
表示モード設定イニシャル表示設定部２８の機能としては、タイトルが変化した際のタイトル間表示モード設定と、タイトル内でプレイリストが変化した際の表示モード設定とアプリケーションが明示的にAPIを呼び出して設定した場合の表示モード設定とをサポートせなばならず、具体的には、以下のフローチャートに示す処理手順をMPUに実行させるようなプログラムを作成して、再生装置に組み込むことで実装することができる。
図３６は、タイトル切り替え時の表示モード設定の処理手順の一例を示すフローチャートである。本フローチャートは、ステップＳ２１、ステップＳ２２、ステップＳ２３、ステップＳ２６の判定結果に応じて、ステップＳ２４、ステップＳ２５、ステップＳ２７の処理を選択的に実行する。
【０２６３】
ステップＳ２１は、自動再生プレイリストが存在するかどうかの判定であり、ステップＳ２２は、直前の表示モードは3Dであるか否かの判定である。ステップＳ２３は、選択されたタイトルの自動再生プレイリストが、1920×1080の3Dプレイリスト又は1280×720の3Dプレイリストであるかどうかの判定である。
【０２６４】
自動再生プレイリストが存在しない場合、ステップＳ２６においてBD-Jオブジェクトのデフォルト解像度がHD3D＿1920×1080、HD3D＿1280×720であるかどうかが判定され、もしYesであれば、ステップＳ２５において、表示モードを3Dに設定し、BD-Jオブジェクトにおけるデフォルト解像度に応じて1920×1080、あるいは1280×720に設定する。もしNoであれば、ステップＳ２７において表示モードを2Dに設定し、解像度をBD-Jオブジェクトにおけるデフォルト解像度に設定する。
【０２６５】
自動再生プレイリストが存在しない場合、ステップＳ２２において直前の表示モードが2Dであるかどうか、又は、ステップＳ２３においてプレイリストが3Dプレイリストで、その解像度が1920×1080、1280×720であるがどうかを判定する。ステップＳ２２、ステップＳ２３のどちらかがNoであれば、ステップＳ２４において表示モードを2Dに設定し、解像度を、自動再生プレイリストの解像度に設定する。
【０２６６】
ステップＳ２２がYes、ステップＳ２３もYesと判定された場合、ステップＳ２５において、表示モードを3Dに設定し、解像度を、自動再生プレイリストの解像度に応じて1920×1080、又は、1280×720に設定する。
【０２６７】
以上で、タイトル間表示モード設定の処理手順についての説明を終える。
図３７は、タイトル内表示モード設定の処理手順を示すフローチャートである。本フローチャートは、ステップＳ３１、ステップＳ３２という、2つのステップを直列的に接続したものである。まず、タイトル内表示モード設定はプレイリストの再生要求から始まる。プレイリスト再生要求を受け付けた時点で、ステップＳ３１は、現在のステータス3Dかどうかの判定を行い、2Dであれば、ステップＳ３４において表示モードを2Dに設定する。ステップＳ３２は、再生要求のあったプレイリストが3Dプレイリストか否かを判定し、もし、3Dプレイリストであれば、ステップＳ３３に移行し、表示モードを3Dにし、2Dプレイリストであれば、ステッステップＳ３４に移行し、表示モードを2Dにする。
【０２６８】
以上で、タイトル内表示モード設定の処理手順についての説明を終える。
(再生制御エンジン１４の実装)
再生制御エンジン１４は、何等かの要因によってカレントプレイリストが選択された際、そのカレントプレイリストの再生を行うものであり、具体的には、カレントプレイリストに対応するプレイリスト情報を静的シナリオメモリ１３に読み出して、このプレイリスト情報のプレイアイテム情報によって参照されている3Dストリーム、2Dストリームを再生に供するという処理を実現せねばならず、具体的には、以下のフローチャートに示す処理手順を実行するようなプログラムを作成して再生装置に組み込み、MPUに実行させる必要がある。
【０２６９】
図３８は、BD-Jモードにおけるプレイリスト再生の主たる手順を示すフローチャートである。
ステップＳ４０は、選択されたタイトルに関連するBD-Jオブジェクトに示される自動再生プレイリストの設定又はJMFプレーヤインスタンスの生成により、カレントプレイリスト番号が設定されたかどうかの判定であり、もし設定されれば、ステップＳ４１において、カレントプレイリスト番号にて指示されているプレイリスト情報ファイルをシナリオメモリにロードし、ステップＳ４２において、プレイリスト情報に、プレーンオフセットが存在すれば、プレーンオフセットが存在すれば、オフセット設定部はプレーンシフトエンジン１９のプレーンオフセット値として設定する。そして、ステップＳ４３においてタイトル内表示モード設定を行う。
【０２７０】
ステップＳ４４では、ロードされたプレイリスト情報における最初のプレイアイテム番号を、カレントプレイアイテム番号に設定する。ステップＳ４５において、カレントプレイリスト情報において再生が許可されているPESストリームの中からカレントストリームを選択する。
【０２７１】
ステップＳ４６では、プレイアイテム情報に基づいて、どのストリーム番号を使うかを決定する。
ステップＳ４７においてステップＳ４３で判定した表示モードは、2Dであるか、又は3Dであるかの判定を行う。3Dであれば、ステップＳ４９において3D表示モード時の3Dビデオストリームの再生を実行する。2Dであれば、ステップＳ４８に移行する。
【０２７２】
ステップＳ４８は、カレントストリーム番号で指示されているビデオストリーム及び字幕ストリームは、2Dであるか、3Dであるかの判定である。ステップＳ４８で2Dと判定された場合、ステップＳ５１において2D表示モードにおける2DAVストリームの再生を実行する。3Dと判定された場合、ステップＳ５０において2D表示モードの3Dビデオストリームの再生を実行する。最後に、本図の“終了”に到達した時点でプレイリストの再生開始を行う。
【０２７３】
図３９は、プレイアイテム情報に基づく再生手順を示すフローチャートである。
ステップＳ６０において、ビデオストリームに組み込まれているプレーンオフセットDをプレーンシフトエンジン２０に設定し、ステップＳ６１において、レフトビューストリームのパケットIDに対応するエントリマップを用いて、カレントPlayItem.In＿Time及びカレントPlayItem.Out＿TimeをStart＿SPN[i]及びEnd＿SPN[i]に変換する。
【０２７４】
ライトビューストリームのパケットID[j]に対応するエントリマップ[j]を用いて特定されたSubPlayItemIn＿Time、SubPlayItemOut＿TimeをStart＿SPN[j]、End＿SPN[j]に変換する(ステップＳ６２)。
【０２７５】
パケットID[i]のTSパケット[i]をStart＿SPN[i]からEnd＿SPN[i]まで読み出すための読出範囲[i]に属するエクステントを特定し(ステップＳ６３)、パケットID[j]のTSパケット[j]をStart＿SPN[j]からEnd＿SPN[j]まで読み出すための読出範囲に属するエクステントを特定する(ステップＳ６４)。そしてステップＳ６５において読出範囲[i],[j]に属するエクステントをアドレスの昇順にソートして、ステップＳ６６においてソートされたアドレスを用いて、読出範囲[i],[j]に属するエクステントを連続的に読み出すよう、ドライブに指示する。
【０２７６】
以上で、再生制御エンジン１４についての説明を終える。
図４０は、3DAVストリームの3D表示の処理手順を示すフローチャートである。本フローチャートは、ステップＳ６０２〜ステップＳ６０６からなるループを実行するというものである。このループは、左目用処理(ステップＳ６０２)、右目用処理(ステップＳ６０３)を順次実行するという処理を、フレーム出力が途絶えるまで(ステップＳ６０６でNo)継続するものである。
【０２７７】
なお、カレントプレイリスト情報からプレーンオフセットDを抽出し、プレーンシフトエンジンに保存するという処理は図３８におけるステップＳ４２において既に行なわれている。
【０２７８】
本ループにおいて、ステップＳ６０４は、プレーンオフセットDがオフセット値保存部４１に設定されているかどうかの判定であり、もし設定されていなければステップＳ６０５をスキップするが、設定されていれば、ステップＳ６０５を実行する。ステップＳ６０５は、オフセット値保存部４１に保存されたプレーンオフセットDを用いて、プレーンシフトエンジン２０において、図２１に示すオフセット演算部４３によりオフセット演算を行い、プレーンオフセットEを更新するという処理である。
【０２７９】
（表示モードが3Dである場合の3Dビデオストリームの処理手順）
現在の表示モードが3D表示モードであり、再生対象が3Dプレイリスト及び3Dストリームである場合、図４１〜図４２の処理手順を実行することになる。
【０２８０】
図４１は、例えば図４０に示すステップＳ６０２（左目用処理）の具体的一例であり、詳しくは、表示モードが3Dの時の左目用処理の手順を示すフローチャートである。
図４１におけるステップＳ７０１〜ステップＳ７０７は左目用処理である。
【０２８１】
まず、ステップＳ７０１では、合成部１６はレフトビューに使うレフトビューバックグラウンドプレーン１１（図４に示す“（Ｌ）”の符号を付した領域）に書き込まれた背景データを取得する。レフトビューバックグラウンドプレーンにはBD-Jアプリケーションの描画命令により静止画デコーダ２７ｂを通して描画された背景データが格納されている。
【０２８２】
次に、ビデオデコーダ５ａを用いてレフトビュー用のビデオストリームをデコードして、ビデオプレーン６（図４の（Ｌ）を付したもの）に書き込んだ後に、合成部１５は前記ビデオプレーン６（図４に示す（Ｌ）の符号を付した領域）に書き込まれたレフトビュー用のビデオデータを取得する（ステップＳ７０２）。
【０２８３】
そして、ステップＳ７０３で合成部１５は表示モード記憶部２９にある、イメージプレーン設定のステレオモードがONであるかまたはOFFであるかを確認する（以後ステレオモードがONであるのかまたはOFFであるのかを確認することをステレオモードのフラグを確認すると称する）。ステレオモードがOFFの場合は、イメージデコーダ７ａによりデコードしたレフトビューイメージをイメージプレーン８（図４に示す符号（Ｌ）を付した領域）に書き込んだ後にプレーンシフトエンジン２０により左目用のシフト処理を施す（ステップＳ７０４ａ）。
【０２８４】
ステレオモードがONの場合は、イメージデコーダ７ａがデコードしたレフトビューイメージをイメージプレーン８（図４に示す符号（Ｌ）を付した領域）に書き込むが、イメージプレーン８（図４に示す符号（Ｌ）を付した領域）に書き込んだレフトビューイメージについて、左目用のシフト処理を施さない。何故ならばステレオモードがONの場合、レフトビューイメージとは見える角度の異なるライトビューイメージがイメージデコーダ７ｂを介してイメージプレーン（図４に示す符号（Ｒ）を付した領域）に書き込まれるからである（ステップＳ７０４ｂ）。
【０２８５】
ステップＳ７０４ａまたはステップＳ７０４ｂによりイメージプレーン８の符号（Ｌ）を付したものには、イメージメモリ７に格納された左目用のイメージデータであって、イメージデコーダ７ａによってデコードされたものが格納される。
【０２８６】
次に、ステップＳ７０５で合成部１５は表示モード記憶部２９にある、インタラクティブグラフィクスプレーン設定のステレオモードのフラグを確認する。ステレオモードがOFFの場合は、BD-Jアプリケーションはレンダリングエンジン２２aを利用して、左目用プレーン（図４のインタラクティブグラフィクスプレーン１０において、符号（Ｌ）を付したもの）にレフトビュー用インタラクティブグラフィクスを書き込み、左目用プレーン（図４のインタラクティブグラフィクスプレーン１０において、符号（Ｌ）を付したもの）からレフトビュー用インタラクティブグラフィクスを取得して、取得したレフトビュー用インタラクティブグラフィクスに対して、プレーンシフトエンジン２０が左目用のシフト処理を施す（ステップＳ７０６ａ）。
【０２８７】
ステレオモードがONの場合においては、BD-Jアプリケーションはレンダリングエンジン２２aを利用して、左目用プレーン（図４のインタラクティブグラフィクスプレーン１０において、符号（Ｌ）を付したもの）にレフトビュー用インタラクティブグラフィクスを書き込む。その後、表示のために左目用プレーン（図４のインタラクティブグラフィクスプレーン１０において、符号（Ｌ）を付したもの）からレフトビュー用インタラクティブグラフィクスを取得するが、レフトビュー用インタラクティブグラフィクスに対しては、左目用のシフト処理を施さない（ステップＳ７０６ｂ）。
【０２８８】
ステップＳ７０６ａ，ステップＳ７０６ｂでレフトビューインタラクティブグラフィクスが取得されたレフトビューインタラクティブグラフィクスプレーンには、BD-Jモード時においてBD-Jアプリケーションの描画命令によりレンダリングエンジン２２aを通して描画されたデータが格納されている。
【０２８９】
また、HDMVモード時において、レフトビューインタラクティブグラフィクスプレーンには、字幕ストリーム以外のグラフィクストリームから抽出されたグラフィクスデータのデコード結果が格納されることになる。
【０２９０】
ステップＳ７０７ではステップＳ７０１のバックグラウンドプレーン１１の（Ｌ）の符号を付したものに書き込まれた背景データ、ステップＳ７０２のビデオプレーンの（Ｌ）の符号を付したものに書き込まれたビデオデータ、ステップＳ７０４のイメージプレーンの（Ｌ）の符号を付したものに書き込まれた字幕データ、ステップＳ７０６のインタラクティブグラフィクスプレーンの（Ｌ）の符号を付したものに書き込まれたGUIデータを順に合成し、レフトビューとしてディスプレイへ出力する。
【０２９１】
ステップＳ７０３、Ｓ７０５において、ステレオモードがOFFであると判定された場合、対応するプレーンにおいてシフト処理が施されたデータが合成の対象となる。そして、ディスプレイの出力のタイミングで左右処理記憶部のフラグを転換する。なお、Ｓ７０１〜Ｓ７０７の各処理は左目用の処理を施しているが、現在の処理が左目用の処理であるかどうかは、左右処理記憶部を参照することにより判定される。
【０２９２】
次にＳ７０１〜Ｓ７０７の左目用の処理を完了した後に、右目用の処理を行なう。
図４２は、例えば図４０に示すステップＳ６０３（右目用処理）の具体的一例であり、詳しくは、表示モードが3Dのときの右目用処理の処理手順の一例を示すフローチャートである。図４２におけるステップＳ８０１〜ステッステップＳ８０９は右目用処理である。ステップＳ８０１で合成部１５は、表示モード記憶部２９にある、バックグラウンドプレーン設定のステレオモードのフラグを確認する。ステレオモードがOFFの場合はレフトビュー用の背景データをバックグラウンドプレーン１１の（Ｒ）を付したものに書き込み、バックグラウンドプレーン１１の（Ｒ）を付したものから背景データを取得する（ステップＳ８０２ａ）。ステレオモードがONの場合はライトビュー用の背景データをバックグラウンドプレーン１１の（Ｒ）を付したものに書き込み、バックグラウンドプレーン１１の（Ｒ）を付したものからライトビュー用の背景データを取得する（ステップＳ８０２ｂ）。
【０２９３】
次に、ステップＳ８０３で合成部１５は表示モード記憶部２９にある、ビデオプレーン設定のステレオモードのフラグを確認する。ステレオモードがOFFの場合はレフトビュー用のビデオストリームをビデオデコーダ５ａを用いてデコードして、ビデオプレーン６（図４の（Ｒ）を付したもの）に書き込んだ後に、合成部１５は前記ビデオプレーン６（図４の（Ｒ）を付したもの）からレフトビュー用のビデオデータを取得する（ステップＳ８０４ａ）。ステレオモードがONの場合は、ビデオデコーダ５ｂを用いてライトビュー用のビデオストリームをデコードして、ビデオプレーン６（図４の（Ｒ）を付したもの）に書き込んだ後に、合成部１５は前記ビデオプレーン６（図４の（Ｒ）を付したもの）からライトビュー用のビデオデータを取得する（ステップＳ８０４ｂ）。
【０２９４】
そして、ステップＳ８０５で合成部１５は表示モード記憶部２９にある、イメージプレーン設定のステレオモードのフラグを確認する。ステレオモードがOFFの場合はイメージデコーダ７ａがデコードしたレフトビューイメージをイメージプレーン８（符号（Ｒ）を付したもの）に書き込む。その後、イメージプレーン８の符号（Ｒ）を付したものに書き込まれたレフトビューイメージに対し、プレーンシフトエンジン２０が右目用のシフト処理を施す（ステップＳ８０６ａ）。ステレオモードがONの場合は、イメージデコーダ７ｂがデコードしたライトビューイメージをイメージプレーン８（図４に示す符号（Ｒ）を付した領域）に書き込むものの、シフト処理を施さない。何故ならばステレオモードがONの場合、レフトビューイメージとは見える角度の異なるライトビューイメージがイメージデコーダ７ｂを介してイメージプレーン８（図４に示す符号（Ｒ）を付した領域）に書き込まれるからである（ステップＳ８０６ｂ）。
【０２９５】
ステップＳ８０６ａ，ステップＳ８０６ｂで取得したイメージプレーンにはイメージメモリ７に格納された字幕データであって、イメージデコーダ７（図４のイメージデコーダ７ａまたは７ｂ）によってデコードされたものが格納される。
【０２９６】
次に、ステップＳ８０７で合成部１５は表示モード記憶部２９にある、インタラクティブグラフィクスプレーン設定のステレオモードのフラグを確認する。ステレオモードがOFFの場合は、BD-Jアプリケーションはレンダリングエンジン２２aを利用して、右目用プレーン（図４のインタラクティブグラフィクスプレーン１０において、符号（Ｒ）を付した領域）にレフトビュー用インタラクティブグラフィクスを書き込む。そして右目用プレーン（図４のインタラクティブグラフィクスプレーン１０において、符号（Ｒ）を付した領域）に書き込まれたレフトビュー用インタラクティブグラフィクスに対し、プレーンシフトエンジン２０が右目用のシフト処理を施す（ステップＳ８０８ａ）。
【０２９７】
ステレオモードがONの場合は、BD-Jアプリケーションはレンダリングエンジン２２aを利用して、右目用プレーン（図４のインタラクティブグラフィクスプレーン１０において、符号（Ｒ）を付した領域）にライトビュー用インタラクティブグラフィクスを書き込むものの、プレーンシフトエンジン２０は、右目用プレーン（図４のインタラクティブグラフィクスプレーン１０において、符号（Ｒ）を付した領域）に書き込まれたライトビュー用インタラクティブグラフィクスに対し、シフト処理を施さない（ステップＳ８０８ｂ）。
【０２９８】
ステップＳ８０９ではステップＳ８０２のバックグラウンドプレーン１１（符号（Ｒ）を付したもの）に書き込まれた背景データ、ステップＳ８０４のビデオプレーン６（符号（Ｒ）を付したもの）に書き込まれたビデオデータ、ステップＳ８０６のイメージプレーン８（符号（Ｒ）を付したもの）に書き込まれたイメージデータ、ステップＳ８０８のインタラクティブグラフィクスプレーンに書き込まれたGUIデータを順に合成する。
【０２９９】
ステップＳ８０５、Ｓ８０７において、ステレオモードがOFFである場合には、対応するプレーンにおいてシフト処理がされたデータが合成の対象となる。そしてステップＳ８０６b、ステップＳ８０８bにおいて、合成結果を、ライトビューとしてディスプレイへ出力する。最後に、ステップＳ８０９において、ディスプレイの出力のタイミングで左右処理記憶部のフラグを転換する。なお、ステップＳ８０１〜Ｓ８０９の各処理は右目用の処理を施しているが、現在の処理が右目用の処理かどうかの判定は、左右処理記憶部１９を参照することでなされる。
【０３００】
フレーム入力が継続している限り、図４０に示すＳ６０２、Ｓ６０３、Ｓ６０４、Ｓ６０５（Ｓ６０４においてYesの場合）の処理が繰り返されることになる（ステップＳ６０６）。
【０３０１】
以上で、表示モードが3Dのときのストリーム処理についての説明を終える。
なお、再生装置がAVストリームのヘッダ領域からプレーンオフセットDを取得する方法、かつ毎フレーム更新する実装をしている場合は、ステップＳ８１０の時点でオフセット設定部２１によりプレーンシフトエンジン２０のオフセットを次のフレームと対応した値に更新する必要がある。
【０３０２】
図４３（ａ）は、図４１に示すステップＳ７０２、図４２に示すステップＳ８０４ａの具体的一例を説明するためのフローチャート図である。
まず、ビデオデコーダ５ａを用いてレフトビュー用のビデオストリームをデコードしてビデオデータを出力する（ステップＳ２０１）。
【０３０３】
次にスケーリングFactorは“１“でないかどうかを判断する（ステップＳ２０２）。
この判断は、例えばBD-Jプラットフォーム２２から指定された、スケーリングFactorーを参照し、参照した値に基づいて判断することにより、実現される。
【０３０４】
本実施の形態では、プレーンシフトエンジン２０内のスケーリングFactor保存部４２に格納されたスケーリングFactor値を参照すればよいが、これに限定される必要はなく、スケーリングエンジン１５内にBD-Jプラットフォーム２２から指定された、スケーリングFactorを保存するスケーリングFactor保存部（図示せず）を備えるように構成しても良いし、プレーンシフトエンジン２０内にスケーリングFactor保存部４２を再生装置内であって、かつプレーンシフトエンジン２０の外側に設け、スケーリングエンジン１５、プレーンシフトエンジン２０が再生装置内であって、かつプレーンシフトエンジン２０の外側に設けたスケーリングFactor保存部４２に保存されたスケーリングFactorを参照できるようにしても良い。
【０３０５】
次にステップＳ２０２において、スケーリングFactorが“１“でないと判断した場合（ステップＳ２０２において、“Yes”と判定された場合）デコードしたビデオデータにおける水平ピクセル数（表示画面の水平方向の画素数）、および垂直ピクセル数（表示画面の垂直方向のピクセル数）をスケーリングFactorに応じた水平ピクセル数、垂直ピクセル数に変換し（つまり拡大／縮小処理し）、変換した水平ピクセル数、垂直ピクセル数のビデオデータを表示画面の所定の位置に表示されるようにビデオプレーン６に書き込む（ステップＳ２０３）。
【０３０６】
ここで、ステップＳ７０２の具体的処理においては、ステップＳ２０３は、ビデオプレーン６の符号（Ｌ）を付した領域に書き込むのに対し、ステップＳ８０４ａの具体的処理においては、ステップＳ２０３は、ビデオプレーン６の符号（Ｒ）を付した領域に書き込む点が異なる。
【０３０７】
例えばスケーリングFactorが１／２の場合には、例えば図２２に示されるように表示画面の左上にビデオデータが表示されるようにビデオプレーンに書き込み、スケーリングFactorが１／４である場合には、例えば図２２に示されるように表示画面の左上にビデオデータが表示されるようにビデオプレーンに書き込むことを意味する。また、上述の説明においては、垂直ピクセル数に変換し、変換した水平ピクセル数、垂直ピクセル数のビデオデータを表示画面の所定の位置に表示されるようにビデオプレーンに書き込むようにしたが、BD-Jアプリケーションからの指定に従って表示位置を決めるようにしても良い。
【０３０８】
また上述の処理において、拡大／縮小の処理は公知の技術を適用すればよい。
ステップＳ２０２において、スケーリングFactorが“１“であると判断した場合（ステップＳ２０２において、“No”と判定された場合）、ビデオデコーダ５ａを用いてレフトビュー用のビデオストリームをデコードしたビデオデータをビデオプレーン６に書き込む（Ｓ２０４）。
【０３０９】
ここで、ステップＳ７０２の具体的処理においては、ステップＳ２０４は、ビデオプレーン６の符号（Ｌ）を付した領域に書き込むのに対し、ステップＳ８０４ａの具体的処理においては、ステップＳ２０４は、ビデオプレーン６の符号（Ｒ）を付した領域に書き込む点が異なる。
【０３１０】
ステップＳ２０４は、例えばスケーリングFactorが１／１の場合であり、例えば図２２に示されるように表示画面にビデオデータが全画面表示されるようにビデオプレーンに書き込むことを意味する。
【０３１１】
図４３（ｂ）は、図４２におけるステップＳ８０４ｂの具体的一例を示すフローチャートである。
まず、ビデオデコーダ５ｂを用いてライトビュー用のビデオストリームをデコードしてビデオデータを出力する（ステップＳ２０１ｂ）。
【０３１２】
次にビスケーリングFactorは“１“でないかどうかを判断する（ステップＳ２０２）。
ステップＳ２０２において、スケーリングFactorが“１“でないと判断した場合（ステップＳ２０２において、“Yes”と判定された場合）デコードしたビデオデータにおける水平ピクセル数（表示画面の水平方向の画素数）、および垂直ピクセル数（表示画面の垂直方向のピクセル数）をスケーリングFactorに応じた水平ピクセル数、垂直ピクセル数に変換し（つまり拡大／縮小処理し）、変換した水平ピクセル数、垂直ピクセル数のビデオデータを表示画面の所定の位置に表示されるようにビデオプレーン６（符号（Ｒ）を付した領域）に書き込む（ステップＳ２０３ｂ）。
【０３１３】
ステップＳ２０２において、スケーリングFactorが“１“であると判断した場合（ステップＳ２０２において、“No”と判定された場合）、ビデオデコーダ５ｂを用いてライトビュー用のビデオストリームをデコードしたビデオデータをビデオプレーン６（符号（Ｒ）を付した領域）に書き込む（Ｓ２０４ｂ）。
【０３１４】
図１６（ａ）は、図４１に示すステップＳ７０４ｂの具体的一例を説明するためのフローチャート図である。図において、  まず、イメージデコーダ７ａを用いてレフトビュー用の字幕ストリームをデコードする（ステップＳ２０１ｃ）。
【０３１５】
次にスケーリングファクターは“１“でないかどうかを判断する（ステップＳ２０２）。
次にステップＳ２０２において、スケーリングFactorが“１“でないと判断した場合（ステップＳ２０２において、“Yes”と判定された場合）デコードしたイメージデータにおける水平ピクセル数（表示画面の水平方向の画素数）、および垂直ピクセル数（表示画面の垂直方向のピクセル数）をスケーリングFactorに応じた水平ピクセル数、垂直ピクセル数に変換し（つまり拡大／縮小処理し）、変換した水平ピクセル数、垂直ピクセル数のイメージデータを表示画面の所定の位置に表示されるようにイメージプレーン８（図４の（Ｌ）を付した領域）に書き込む（ステップＳ２０３ｃ）。
【０３１６】
例えばスケーリングFactorが１／２の場合には、例えば図２２（ｂ）の左側図のようにビデオデータを表示画面の左上に寄せる際、字幕が対応する大きさで表示されるように字幕データをイメージプレーンに書き込むことになる。スケーリングFactorが１／４である場合には、例えば図２２（ａ）の左側図のようにビデオデータを表示画面の左上に寄せる際、字幕が対応する大きさで表示されるように字幕データをイメージプレーンに書き込むことになる。また、上述の説明においては、垂直ピクセル数に変換し、変換した水平ピクセル数、垂直ピクセル数のビデオデータを表示画面の所定の位置に表示されるようにイメージプレーンに書き込むようにしたが、BD-Jアプリケーションからの指定に従って字幕データの表示位置を決めるようにしても良い。
【０３１７】
その他にも、上述の処理において、拡大／縮小の処理は公知の技術を適用してもよい。
ステップＳ２０２において、スケーリングFactorが“１“であると判断した場合（ステップＳ２０２において、“No”と判定された場合）、イメージデコーダ７ａを用いてレフトビュー用の字幕ストリームをデコードした字幕データをイメージプレーン８（図４の（Ｌ）を付した領域）に書き込む（Ｓ２０４ｃ）。
【０３１８】
例えばスケーリングFactorが１／１の場合であり、例えば図２２（ｃ）の左側図のように表示画面にビデオデータが全画面表示されたときに対応する大きさの字幕データをイメージプレーン８に書き込むことになる。
【０３１９】
図２３（a）は、図４２に示すステップＳ８０６ｂの具体的一例を説明するためのフローチャート図である。図において、まず、イメージデコーダ７ｂを用いてライトビュー用の字幕ストリームをデコードする（ステップＳ２０１e）。
【０３２０】
次にスケーリングファクターは“１“でないかどうかを判断する（ステップＳ２０２）。
ステップＳ２０２において、スケーリングFactorが“１“でないと判断した場合（ステップＳ２０２において、“Yes”と判定された場合）、デコードしたイメージデータにおける水平ピクセル数（表示画面の水平方向の画素数）、および垂直ピクセル数（表示画面の垂直方向のピクセル数）をスケーリングFactorに応じた水平ピクセル数、垂直ピクセル数に変換し（つまり拡大／縮小処理し）、変換がなされた水平ピクセル数、垂直ピクセル数のイメージデータが表示画面の所定の位置に表示されるようにイメージプレーン８（図４の（Ｒ）を付した領域）に書き込む（ステップＳ２０３e）。
【０３２１】
例えばスケーリングFactorが１／２の場合には、例えば図２２（ｂ）右側図のようにビデオデータを表示画面の左上に寄せる際、字幕を対応する大きさで表示すべく、字幕データをイメージプレーンに書き込むことになる。スケーリングFactorが１／４である場合には、例えば図２２（ａ）の右側図のように表示画面の左上にビデオデータを寄せて表示するにあたって、字幕データが同じ大きさで表示されるように、字幕データをイメージプレーンに書き込むことになる。
【０３２２】
また、上述の説明においては、垂直ピクセル数に変換し、変換した水平ピクセル数、垂直ピクセル数のビデオデータを表示画面の所定の位置に表示されるようにイメージプレーンに書き込むようにしたが、BD-Jアプリケーションからの指定に従って字幕データの表示位置を決めるようにしても良い。
【０３２３】
上述の処理において、拡大／縮小の処理は公知の技術を適用すればよい。
次にステップＳ２０２において、スケーリングFactorが“１“であると判断した場合（ステップＳ２０２において、“No”と判定された場合）、イメージデコーダ７ｂを用いてライトビュー用の字幕ストリームをデコードした字幕データをイメージプレーン８（図４の（Ｒ）を付した領域）に書き込む（Ｓ２０４e）。
【０３２４】
例えばスケーリングFactorが１／１の場合であり、例えば図２２（ｃ）の右側に示されるように表示画面にビデオデータが全画面表示されたときに対応する大きさの字幕データをイメージプレーン８に書き込むことを意味する。
【０３２５】
図１６（ｂ）は、図４１に示すステップＳ７０６ｂの具体的一例を説明するためのフローチャート図である。図において、まず、レフトビュー用のインタラクティブグラフィクスデータを生成する（ステップＳ２０１ｄ）。
【０３２６】
レフトビュー用のインタラクティブグラフィクスデータの生成は、例えばBD-Jアプリケーションに含まれる描画プログラムに従って、生成すればよい。より詳細にはプログラムコードに従って計算により各画素の値を算出するのでも良いし、対応するレフトビュー用のJPEGグラフィックス画像データを仮想ファイルシステムを介して読み取られる仮想的なBD-ROM（BD-ROM１００またはローカルストレージ１ｃ）に予め記録しておき、BD-Jアプリケーションがこのレフトビュー用のJPEGグラフィックス画像データを読み取る構成であっても良い。このとき、レフトビュー用のJPEGグラフィックス画像データがエンコードされて記録されている場合、図示しないデコーダまたはイメージデコーダ７ａによってデコードした後、読み取ればよい。
【０３２７】
次にインタラクティブグラフィクスプレーンのスケーリングファクターは“１“でないかどうかを判断する（ステップＳ２０２）。
次にステップＳ２０２において、スケーリングFactorが“１“でないと判断した場合（ステップＳ２０２において、“Yes”と判定された場合）、生成したインタラクティブグラフィクスデータにおける水平ピクセル数（表示画面の水平方向の画素数）、および垂直ピクセル数（表示画面の垂直方向のピクセル数）をスケーリングFactorに応じた水平ピクセル数、垂直ピクセル数に変換し（つまり拡大／縮小処理し）、変換後の水平ピクセル数、垂直ピクセル数のインタラクティブグラフィクスデータが表示画面の所定の位置に表示されるように、インタラクティブグラフィクスデータをインタラクティブグラフィクスプレーン１０（図４の（Ｌ）を付した領域）に書き込む（ステップＳ２０３ｄ）。
【０３２８】
例えばスケーリングFactorが１／２の場合、GUI部品に対応するグラフィックスデータを１／２に縮小して表示するようにインタラクティブグラフィックスプレーンに書き込み、スケーリングFactorが１／４である場合、GUI部品に対応するグラフィックスデータを１／４に縮小して表示するようにインタラクティブグラフィックスプレーンに書き込むことになる。
【０３２９】
また、上述の説明においては、垂直ピクセル数に変換し、変換した水平ピクセル数、垂直ピクセル数のビデオデータをBD-Jアプリケーションからの指定に従ってインタラクティブグラフィクスデータの表示位置を決めるようにしても良いし、所定の縮小率に応じて、インタラクティブグラフィクスデータの表示位置を予め決めておいても良い。
【０３３０】
また上述の処理において、拡大／縮小の処理は公知の技術を適用すればよい。
また、次にステップＳ２０２において、スケーリングFactorが“１“であると判断した場合（ステップＳ２０２において、“No”と判定された場合）、生成したレフトビュー用のインタラクティブグラフィクスデータを、インタラクティブグラフィクスプレーン１０（図４の（Ｌ）を付した領域）に書き込む（ステップＳ２０４ｄ）。
【０３３１】
例えばスケーリングFactorが１／１の場合であり、例えば全画面表示によりインターラクティブグラフィックスデータを表示する場合に対応する。
但し、インターラクティブグラフィックスプレーンのスケーリングFactorを考慮しない（つまり、インターラクティブグラフィックスプレーンのスケーリングFactorを常に１とする）のであれば、ステップＳ２０１ｄの後にステップＳ２０４ｄを行うようにし、ステップＳ２０２、ステップＳ２０３ｄは削除するようにすればよい、
例えば、インタラクティブグラフィクス画像がGUI部品に対応するグラフィクス画像である場合には、ステップＳ２０３ｄの処理において、表示画面において縮小したビデオ・字幕の合成画像が表示される部分以外にGUI部品に相当するインタラクティブグラフィクス画像の全画面表示がなされるように、インタラクティブグラフィクスデータをインタラクティブグラフィクスプレーン１０（符号（Ｌ）を付した領域）に書き込むよう構成することも可能である。
【０３３２】
具体的には図２４（ｂ）において、スケーリングFactorが1/1で字幕とビデオ合成画像が左目から見える画像として表示されている状態（図２４（ｂ）の左側）において、例えばメニュー画面に切り換える入力を受け付けると、図２４（ｂ）に示すように、ビデオと字幕の合成画像のスケーリングFactorが1/2となり、表示画面左上に表示されるとともに、グラフィックス画像に対応するGUI画像、ディレクターコメントといったものがインタラクティブグラフィックスプレーン（符号（Ｌ）を付した領域）に書き込まれ、このインタラクティブグラフィックスプレーン（符号（Ｌ）を付した領域）に書き込まれた画像が更に合成され、左目用の合成画像となる（図２４（ａ）の左側の図参照）
図２３（ｂ）は、図４２に示すステップＳ８０８ｂの具体的一例を説明するためのフローチャート図である。図において、まず、ライトビュー用のインタラクティブグラフィクスデータを生成する（ステップＳ２０１f）。
【０３３３】
ライトビュー用のインタラクティブグラフィクスデータの生成は、例えばBD-Jアプリケーションに含まれる描画プログラムに従って、生成すればよい。より詳細にはプログラムコードに従って計算により各画素の値を算出するのでも良いし、対応するライトビュー用のJPEGグラフィックス画像データを仮想ファイルシステムを介して読み取られる仮想的なBD-ROM（BD-ROM１００またはローカルストレージ１ｃ）に予め記録しておき、BD-Jアプリケーションがこのライトビュー用のJPEGグラフィックス画像データを読み取る構成であっても良い。このとき、ライトビュー用のJPEGグラフィックス画像データがエンコードされて記録されている場合、図示しないデコーダまたはイメージデコーダ７ｂによってデコードした後、読み取ればよい。
【０３３４】
次にスケーリングファクターは“１“でないかどうかを判断する（ステップＳ２０２）。  ステップＳ２０２において、スケーリングFactorが“１“でないと判断した場合（ステップＳ２０２において、“Yes”と判定された場合）、生成したインタラクティブグラフィクスデータにおける水平ピクセル数（表示画面の水平方向の画素数）、および垂直ピクセル数（表示画面の垂直方向のピクセル数）をスケーリングFactorに応じた水平ピクセル数、垂直ピクセル数に変換し（つまり拡大／縮小処理し）、変換した水平ピクセル数、垂直ピクセル数のインタラクティブグラフィクスデータを表示画面の所定の位置に表示されるようにインタラクティブグラフィクスプレーン１０（図４の（Ｒ）を付した領域）に書き込む（ステップＳ２０３f）。
【０３３５】
例えばスケーリングFactorが１／２の場合には、GUI部品に対応するグラフィックスデータを１／２に縮小して表示するようにインタラクティブグラフィックスプレーンに書き込み、スケーリングFactorが１／４である場合には、GUI部品に対応するグラフィックスデータを１／４に縮小して表示するようにインタラクティブグラフィックスプレーンに書き込むことになる。
【０３３６】
また、上述の説明においては、垂直ピクセル数に変換し、変換した水平ピクセル数、垂直ピクセル数のビデオデータをBD-Jアプリケーションからの指定に従ってインタラクティブグラフィクスデータの表示位置を決めるようにしても良いし、所定の縮小率に応じて、インタラクティブグラフィクスデータの表示位置を予め決めておいても良い。
【０３３７】
また上述の処理において、拡大／縮小の処理は公知の技術を適用すればよい。
次にステップＳ２０２において、スケーリングFactorが“１“であると判断した場合（ステップＳ２０２において、“No”と判定された場合）、生成したライトビュー用のインタラクティブグラフィクスデータを、インタラクティブグラフィクスプレーン１０（図４の（Ｒ）を付した領域）に書き込む（ステップＳ２０４ｆ）。
【０３３８】
例えばスケーリングFactorが１／１の場合であり、例えば全画面表示によりインターラクティブグラフィックスデータを表示する場合に対応する。
但し、インターラクティブグラフィックスプレーンのスケーリングFactorを考慮しない（つまり、インターラクティブグラフィックスプレーンのスケーリングFactorを常に１とする）のであれば、ステップＳ２０１ｆの後にステップＳ２０４ｆを行うようにし、ステップＳ２０２、ステップＳ２０３ｆは削除するようにすればよい。
【０３３９】
例えば、インタラクティブグラフィクス画像がGUI部品に対応するグラフィクス画像である場合には、ステップＳ２０３ｆの処理において、表示画面において縮小したビデオ・字幕の合成画像を表示する部分以外に、GUI部品に相当するインタラクティブグラフィクス画像が全画面表示されるように、インタラクティブグラフィクスデータをインタラクティブグラフィクスプレーン１０（符号（Ｒ）を付した領域）に書き込む構成を採用することが可能となる。
【０３４０】
具体的には図２４（ｂ）において、スケーリングFactorが1/1で字幕とビデオ合成画像が右目から見える画像として表示されている状態（図２４（ｂ）の右側に示す図）において、例えばメニュー画面に切り換える入力を受け付けると、図２４（ｂ）に示すように、ビデオと字幕の合成画像のスケーリングFactorが1/2となり、表示画面左上に表示されるとともに、グラフィックス画像に対応するGUI画像、ディレクターコメントといったものがインタラクティブグラフィックスプレーン（符号（Ｒ）を付した領域）に書き込まれ、このインタラクティブグラフィックスプレーン（符号（Ｒ）を付した領域）に書き込まれた画像が更に合成され、右目用の合成画像となる（図２４（ａ）の右側の図参照）
図４４（ａ）は、図４１に示すステップＳ７０４ａの具体的一例を説明するためのフローチャート図である。
【０３４１】
まず、イメージデコーダ７ａを用いてレフトビュー用の字幕ストリームをデコードして字幕データを出力する（ステップＳ４０６）。
ステップＳ４０６においては、レフトビュー用の字幕ストリームをデコードする構成を説明するが、字幕ストリームとして左右の表示で同じ字幕ストリームを共有するような構成である場合には、左右の表示で共有する字幕ストリームを読み込めばよい。
【０３４２】
スケーリングファクターは“１“でないかどうかを判断する（ステップＳ４０７）。  この判断は、例えばBD-Jプラットフォーム２２から指定された、スケーリングFactorーを参照し、参照した値に基づいて判断することにより、実現される。
【０３４３】
本実施の形態では、プレーンシフトエンジン２０内にスケーリングFactor保存部４２に格納されたスケーリングFactor値を参照すればよいが、これに限定される必要はなく、スケーリングエンジン１５内にBD-Jプラットフォーム２２から指定された、スケーリングFactorを保存するスケーリングFactor保存部（図示せず）を備えるように構成しても良いし、プレーンシフトエンジン２０内にスケーリングFactor保存部４２を再生装置内であって、かつプレーンシフトエンジン２０の外側に設け、スケーリングエンジン１５、プレーンシフトエンジン２０が再生装置内であって、かつプレーンシフトエンジン２０の外側に設けたスケーリングFactor保存部４２に保存されたスケーリングFactorを参照できるようにしても良い。
【０３４４】
ステップＳ４０７において、スケーリングFactorが“１“でないと判断した場合（ステップＳ４０７において、“Yes”と判定された場合）デコードした字幕データにおける水平ピクセル数（表示画面の水平方向の画素数）、および垂直ピクセル数（表示画面の垂直方向のピクセル数）をスケーリングFactorに応じた水平ピクセル数、垂直ピクセル数に変換し（つまり拡大／縮小処理し）、変換した水平ピクセル数、垂直ピクセル数のイメージデータを表示画面の所定の位置に表示されるようにイメージレーン８（図４の（Ｌ）を付した領域）に書き込む（ステップＳ４０８）。
【０３４５】
例えばスケーリングFactorが１／２の場合には、例えば図２２（ｂ）の左側図のようにビデオデータを表示画面の左上に寄せる際、字幕が対応する大きさで表示されるように字幕データをイメージプレーンに書き込み、スケーリングFactorが１／４である場合には、例えば図２２（ａ）の左側図のようにビデオデータを表示画面の左上に寄せる際、対応する字幕が同じ大きさで表示されるように字幕データがイメージプレーンに書き込まれることになる。また、上述の説明においては、垂直ピクセル数に変換し、変換した水平ピクセル数、垂直ピクセル数の字幕データを表示画面の所定の位置に表示されるようにイメージプレーンに書き込むようにしたが、BD-Jアプリケーションからの指定に従って字幕データの表示位置を決めるようにしても良い。
【０３４６】
また上述の処理において、拡大／縮小の処理は公知の技術を適用すればよい。
次に、プレーンシフトエンジン２０のオフセット値保存部４１に保存されたオフセット値、ステップＳ４０８において参照したスケーリングFactorを参照し、イメージプレーン８（具体的には図４において、（Ｌ）を付した領域）に格納した字幕データについて、左目用のシフト処理を行う。これは、演算（オフセット保存部の値（オフセット値）×スケーリングFactor）を行なった結果（小数点以下は切り上げる）に相当する分のオフセット値を用いてシフト処理を行うことに相当する（ステップＳ４０９）。
【０３４７】
次にステップＳ４０７において、スケーリングFactorが“１“であると判断した場合（ステップＳ４０７において、“No”と判定された場合）、イメージデコーダ７ａを用いてレフトビュー用の字幕ストリームをデコードした字幕データをイメージプレーン８（図４の（Ｌ）を付した領域）に書き込む（ステップＳ４１０）。
【０３４８】
例えばスケーリングFactorが１／１の場合であり、図２２（ｃ）の左側に示されるように表示画面にビデオデータが全画面表示されたとき、対応する大きさの字幕データがイメージプレーン８（図４の（Ｌ）を付した領域）に書き込まれることになる。
【０３４９】
次に、プレーンシフトエンジン２０のオフセット値保存部４１に保存されたオフセット値を参照し、イメージプレーン８（具体的には図４において、（Ｌ）を付した領域）に格納した字幕データについて、左目用のシフト処理を行う。これは、スケーリングFactorが１であるため、ステップＳ４０９における演算（オフセット保存部の値（オフセット値）×スケーリングFactor）において、スケーリングFactorの値が１である場合の演算に相当する、つまりオフセット値に相当する分シフトすることを意味する（ステップＳ４１１）。
【０３５０】
図４４（ｂ）は  図４２に示すステップＳ８０６ａの具体的一例を説明するためのフローチャート図である。
まず、イメージデコーダ７ａを用いてレフトビュー用の字幕ストリームをデコードして字幕データを出力する（ステップＳ４０６）。
【０３５１】
次にスケーリングファクターは“１“でないかどうかを判断する（ステップＳ４０７ｂ）。
この判断は、例えばBD-Jプラットフォーム２２から指定された、スケーリングFactorーを参照し、参照した値に基づいて判断することにより、実現される。
【０３５２】
本実施の形態では、プレーンシフトエンジン２０内にスケーリングFactor保存部４２に格納されたスケーリングFactor値を参照すればよいが、これに限定される必要はなく、スケーリングエンジン１５内にBD-Jプラットフォーム２２から指定された、スケーリングFactorを保存するスケーリングFactor保存部（図示せず）を備えるように構成しても良いし、プレーンシフトエンジン２０内にスケーリングFactor保存部４２を再生装置内であって、かつプレーンシフトエンジン２０の外側に設け、スケーリングエンジン１５、プレーンシフトエンジン２０が再生装置内であって、かつプレーンシフトエンジン２０の外側に設けたスケーリングFactor保存部４２に保存されたスケーリングFactorを参照できるようにしても良い。
【０３５３】
ステップＳ４０７ｂにおいて、スケーリングFactorが“１“でないと判断した場合（ステップＳ４０７ｂにおいて、“Yes”と判定された場合）デコードした字幕データにおける水平ピクセル数（表示画面の水平方向の画素数）、および垂直ピクセル数（表示画面の垂直方向のピクセル数）をスケーリングFactorに応じた水平ピクセル数、垂直ピクセル数に変換し（つまり拡大／縮小処理し）、変換した水平ピクセル数、垂直ピクセル数のイメージデータを表示画面の所定の位置に表示されるようにイメージプレーン８（図４の（Ｒ）を付した領域）に書き込む（ステップＳ４０８ｂ）。
【０３５４】
例えばスケーリングFactorが１／２の場合には、例えば図２２（ｂ）の右側図のように表示画面の左上にビデオデータを寄せて表示するにあたって、同じ大きさで字幕を表示するように字幕データをイメージプレーンに書き込み、スケーリングFactorが１／４である場合には、例えば図２２（ａ）の右側図のように表示画面の左上にビデオデータを寄せて表示するにあたって、字幕データが同じ大きさで表示されるように字幕データをイメージプレーンに書き込むことになる。また、上述の説明においては、垂直ピクセル数に変換し、変換した水平ピクセル数、垂直ピクセル数のビデオデータを表示画面の所定の位置に表示されるようにイメージプレーンに書き込むようにしたが、BD-Jアプリケーションからの指定に従って字幕データの表示位置を決めるようにしても良い。
【０３５５】
また上述の処理において、拡大／縮小の処理は公知の技術を適用すればよい。
次に、プレーンシフトエンジン２０のオフセット値保存部４１に保存されたオフセット値、ステップＳ４０８ｂにおいて参照したスケーリングFactorを参照し、イメージプレーン８（具体的には図４において、（Ｒ）を付した領域）に格納した字幕データについて、右目用のシフト処理を行う。これは、演算（オフセット保存部の値（オフセット値）×スケーリングFactor）を行なった結果（小数点以下は切り上げる）に相当する分のオフセット値を用いてシフト処理を行うことに相当する（ステップＳ４０９ｂ）。
【０３５６】
また、ステップＳ４０７ｂにおいて、スケーリングFactorが“１“であると判断した場合（ステップＳ４０７ｂにおいて、“No”と判定された場合）、イメージデコーダ７ａを用いてレフトビュー用の字幕ストリームをデコードした字幕データをイメージプレーン８（図４の（Ｒ）を付した領域）に書き込む（ステップＳ４１０）。
【０３５７】
例えばスケーリングFactorが１／１の場合であり、図２２（ｃ）の右側のように表示画面にビデオデータを全画面表示する際、対応する大きさの字幕データがイメージプレーン８に書き込まれることになる。
【０３５８】
次に、プレーンシフトエンジン２０のオフセット値保存部４１に保存されたオフセット値を参照し、イメージプレーン８（具体的には図４において、（Ｒ）を付した領域）に格納した字幕データについて、シフト処理を行う。これは、スケーリングFactorが１であるため、ステップＳ４０９における演算（オフセット保存部の値（オフセット値）×スケーリングFactor）において、スケーリングFactorの値が１である場合の演算に相当する（ステップＳ４１１ｂ）。
【０３５９】
図２５（ａ）は、図４１に示すステップＳ７０６ａの具体的一例を説明するためのフローチャート図である。図において、まず、レフトビュー用のインタラクティブグラフィクスデータを生成する（ステップＳ４２１ｃ）。レフトビュー用のインタラクティブグラフィクスデータの生成は、ステップＳ２０１ｄに関する説明において、既に説明をしたので、ここでは詳細な説明を省略する。
【０３６０】
但し、ステレオモードがOFFの状態であるため、予めGUI部品に対応するレフトビュー用のJPEGグラフィックス画像データ以外に、GUI部品に対応する同じJPEGグラフィックス画像データをレフトビュー用／ライトビュー用のJPEGグラフィックス画像データとして共有する構成であれば、ステップＳ４２１はこの共有するJPEGグラフィックス画像データを読み込むことになる。
【０３６１】
次にスケーリングファクターは“１“でないかどうかを判断する（ステップＳ４２２）。判断の具体例としては、ステップＳ２０２の説明において既に説明をしているので、ここでは詳細な説明を省略する。
【０３６２】
次に、ステップＳ４２２において、スケーリングFactorが“１“でないと判断した場合（ステップＳ４２２において、“Yes”と判定された場合）、生成したインタラクティブグラフィクスデータにおける水平ピクセル数（表示画面の水平方向の画素数）、および垂直ピクセル数（表示画面の垂直方向のピクセル数）をスケーリングFactorに応じた水平ピクセル数、垂直ピクセル数に変換し（つまり拡大／縮小処理し）、変換した水平ピクセル数、垂直ピクセル数のインタラクティブグラフィクスデータを表示画面の所定の位置に表示されるようにインタラクティブグラフィクスプレーン１０（図４の（Ｌ）を付した領域）に書き込む（ステップＳ４２３ｃ）。
【０３６３】
この具体例としては、ステップＳ２０３ｄの説明において既に説明をしているので、ここでは、詳細な説明を省略する。
プレーンシフトエンジン２０のオフセット値保存部４１に保存されたオフセット値、ステップＳ４２３ｃにおいて参照したスケーリングFactorを参照し、インタラクティブグラフィクスプレーン１０（具体的には図４において、（Ｌ）を付した領域）に格納したインタラクティブグラフィクスデータについて、左目用のシフト処理を行う。これは、演算（オフセット保存部の値（オフセット値）×スケーリングFactor）を行なった結果（小数点以下は切り上げる）に相当する分のオフセット値を用いてシフト処理を行うことに相当する（ステップＳ４２４ｃ）。
【０３６４】
次にステップＳ４２２において、スケーリングFactorが“１“であると判断した場合（ステップＳ４２２において、“No”と判定された場合）、生成したレフトビュー用のインタラクティブグラフィクスデータをインタラクティブグラフィクスプレーン１０（図４の（Ｌ）を付した領域）に書き込む（ステップＳ４２５ｃ）。
【０３６５】
プレーンシフトエンジン２０のオフセット値保存部４１に保存されたオフセット値を参照し、インタラクティブグラフィクスプレーン１０（具体的には図４において、（Ｌ）を付した領域）に格納したインタラクティブグラフィクスデータについて、左目用のシフト処理を行う。これは、スケーリングFactorが１であるため、ステップＳ４２４ｃにおける演算（オフセット保存部の値（オフセット値）×スケーリングFactor）において、スケーリングFactorの値が１である場合の演算に相当する、つまりオフセット値の値に応じたシフト処理を行う（ステップＳ４２６ｃ）。
【０３６６】
但し、インターラクティブグラフィックスプレーンのスケーリングFactorを考慮しない（つまり、インターラクティブグラフィックスプレーンのスケーリングFactorを常に１とする）のであれば、ステップＳ４２１ｄｃ後にステップＳ４２５ｃを行い、その後にステップＳ４２６ｃを行なうようにし、ステップＳ４２２ｃ、ステップＳ４２３ｃ、ステップＳ４２４ｃは削除するようにすればよい、
例えば、インタラクティブグラフィクス画像がGUI部品に対応するグラフィクス画像である場合には、ステップＳ２０３ｄの処理において、表示画面において縮小したビデオ、字幕の合成画像を表示する部分以外にGUI部品に相当するインタラクティブグラフィクス画像の全画面表示を行うよう、インタラクティブグラフィクスデータをインタラクティブグラフィクスプレーン１０（符号（Ｌ）を付した領域）に書き込む構成を採用することが可能となる。
【０３６７】
具体的には図２４（ｂ）において、スケーリングFactorが1/1で字幕とビデオ合成画像が左目から見える画像として表示されている状態（図２４（ｂ）の左側）において、例えばメニュー画面に切り換える入力を受け付けると、図２４（ｂ）の左側に示すように、ビデオと字幕の合成画像のスケーリングFactorが1/2となり、表示画面左上に表示されるとともに、グラフィックス画像に対応するGUI画像、ディレクターコメントといったものがインタラクティブグラフィックスプレーン（符号（Ｌ）を付した領域）に書き込まれ、このインタラクティブグラフィックスプレーン（符号（Ｌ）を付した領域）に書き込まれた画像が更に合成され、左目用の合成画像となる（図２４（ａ）の左側の図参照）。
【０３６８】
図２５（ｂ）は、図４２における、ステップＳ８０８ａの具体的処理の一例を説明するためのフローチャートである。図において、ステップＳ７０６ａの具体的動作の一例の説明に用いた図に付した符号と同一のものは、同一またはこれに相当するものであるため、ここでは、詳細な説明を省略する。つまり、Ｓ４２１ｃ、ステップ４２２の説明はここでは省略する。
【０３６９】
次に、ステップＳ４２２において、スケーリングFactorが“１“でないと判断した場合（ステップＳ４２２において、“Yes”と判定された場合）、生成したインタラクティブグラフィクスデータにおける水平ピクセル数（表示画面の水平方向の画素数）、および垂直ピクセル数（表示画面の垂直方向のピクセル数）をスケーリングFactorに応じた水平ピクセル数、垂直ピクセル数に変換し（つまり拡大／縮小処理し）、変換した水平ピクセル数、垂直ピクセル数のインタラクティブグラフィクスデータを表示画面の所定の位置に表示されるようにインタラクティブグラフィクスプレーン１０（図４の（Ｒ）を付した領域）に書き込む（ステップＳ４２３ｄ）。
【０３７０】
次に、プレーンシフトエンジン２０のオフセット値保存部４１に保存されたオフセット値、ステップＳ４０８において参照したスケーリングFactorを参照し、インタラクティブグラフィクスプレーン１０（具体的には図４において、（Ｒ）を付した領域）に格納したインタラクティブグラフィクスデータについて、右目用のシフト処理を行う。これは、演算（オフセット保存部の値（オフセット値）×スケーリングFactor）を行なった結果（小数点以下は切り上げる）に相当する分のオフセット値を用いてシフト処理を行うことに相当する（ステップＳ４２４ｄ）。
【０３７１】
また、次にステップＳ４２２において、スケーリングFactorが“１“であると判断した場合（ステップＳ４２２において、“No”と判定された場合）、生成したレフトビュー用のインタラクティブグラフィクスデータをインタラクティブグラフィクスプレーン１０（図４の（Ｒ）を付した領域）に書き込む（ステップＳ４２５ｄ）。
【０３７２】
次に、プレーンシフトエンジン２０のオフセット値保存部４１に保存されたオフセット値を参照し、インタラクティブグラフィクスプレーン１０（具体的には図４において、（Ｒ）を付した領域）に格納したインタラクティブグラフィクスデータについて、右目用のシフト処理を行う。これは、スケーリングFactorが１であるため、ステップＳ４２４ｃにおける演算（オフセット保存部の値（オフセット値）×スケーリングFactor）において、スケーリングFactorの値が１である場合の演算に相当する、つまりオフセット値に相当する分シフト処理を行うことに相当する（ステップＳ４２６ｄ）。
【０３７３】
以上のフローチャートは表示の度に、移動量の計算を行うものであったが、スケーリングがアプリケーションによってなされる場合は、そのコール時に、プレーンオフセットEを更新して、オフセット値保存部におけるプレーンオフセットを、新しいものに置き換える方が、シフト量算出のための計算回数を減らすことができて合理的である。
【０３７４】
このような処理を可能とするために、再生装置のBDーJプラットフォーム２２にスケーリングAPIを備えることが必要である。スケーリングAPIは、例えばアプリケーションから引数を指定して呼出出せるものであり、引数として、例えばスケーリングFactorを指定するものである。
【０３７５】
アプリケーションからスケーリングFactorを引数としてスケーリングAPIが呼出されると、BDーJプラットフォーム２２は、例えばスケーリングFactor保存部に保存されたスケーリングFactorを更新するものである。
【０３７６】
また、上記のような実装を行うことにより、出力処理の最中にスケーリング命令が来たとしても、すぐにはスケーリングFactorの更新に基づいた処理は行われず、右目と左目のずらし幅が必ず同期していることを保障できる。
【０３７７】
(第２実施形態)
本実施の形態では、第１実施形態のように、字幕データ、インタラクティブグラフィクスデータのストリームをビデオストリームの奥行きに追従するのではなく、ビデオストリームを字幕・GUIの奥行きに追従させることにより、字幕付きビデオのスケーリング時の視聴者への目の疲労度を低減する変形例について述べる。
【０３７８】
スケーリングにおいて、字幕、あるいはグラフィクスと、動画像との位置関係がおかしくならないようにするには、ビデオプレーンのプレーンシフトを実行するにあたって、グラフィクスプレーンにおけるプレーンオフセットがどのような値であるかを考慮して、ビデオプレーンのためのプレーンオフセットを計算せねばならない。
【０３７９】
このような構成を実現するためには、本実施の形態においては、例えば表示モード記憶部２９に記憶されているイメージプレーン設定のオフセット値を読み込んで、このオフセット値をビデオのオフセットに利用できる構成とすること、およびプレーンシフトエンジン２０はビデオプレーン６に格納されたビデオデータを利用して右目用のシフト処理、左目用のシフト処理を行うものとする。
【０３８０】
さらに図４において、プレーンシフトエンジン２０には、このビデオプレーン用のプレーンオフセットを計算する構成要素を追加する必要がある。かかる構成要素が追加されたプレーンシフトエンジン２０の内部構成を図４６に示す。
【０３８１】
第１実施形態では、オフセット保存部に保存されているプレーンオフセットを“プレーンオフセットD”と呼び、スケーリングのために算出されるプレーンオフセットをプレーンオフセットEと呼んだが、本実施形態においてビデオプレーンのプレーンシフトのために使用される実パラメータを、“プレーンオフセットＶ”と呼ぶ。
【０３８２】
図４６は、第２実施形態における再生装置のプレーンシフトエンジン２０の内部構成を示すブロック図である。第１実施形態に示す図２４のプレーンシフトエンジン２０の内部構成に、ビデオプレーンオフセット演算部４５が追加されていることがわかる。
【０３８３】
ビデオプレーンオフセット演算部４５は、字幕付きビデオのスケーリング時のビデオプレーンのプレーンオフセットVを計算するモジュールである。
第１実施形態におけるプレーンシフトは、グラフィクスプレーンに対するもののみであったが、本実施形態では、ビデオプレーンについてもプレーンシフトの対象になるので、ビデオプレーンのためのプレーンシフトの処理手順が必要になる。そして、イメージプレーンにおけるプレーンオフセットを考慮した、ビデオプレーンのプレーンオフセットの処理手順を示したのが、図４７のフローチャートである。
【０３８４】
図４７（ａ）は、図４１に示すステップＳ７０２の具体的一例を説明するためのフローチャート図である。
図において、図４３（ａ）に付した符号と同一の符号を付したものは、同一またはこれに相当するものであるので、ここでは重複する説明は省略する。
【０３８５】
ステップＳ２０２において、スケーリングFactorが“１“でないと判断した場合（ステップＳ２０２において、“Yes”と判定された場合）、ステップＳ２０３を行なう。
次に、イメージプレーン用のプレーンオフセットDを用いて以下の数式の計算を実行し、ビデオプレーン用の画素のプレーンオフセットＶを算出する。
【０３８６】
(数式)
ビデオプレーン用の画素のプレーンオフセットＶ＝Ceil(D-(スケーリングFactor×D))
そして、上述の数式により得られたビデオプレーンのプレーンオフセットVに基づき、左目用のビデオのシフト処理を行う（ステップＳ２０５ｅ）。
【０３８７】
シフト処理については図３０または図３１を用いての説明において、インターラクティブグラフィックスプレーンまたはイメージプレーンとあるのをビデオプレーンと読み替え、オフセットＥをオフセットＶと読み替えればよい。
【０３８８】
また、次にステップＳ２０２において、スケーリングFactorが“１“であると判断した場合（ステップＳ２０２において、“No”と判定された場合）、ステップＳ２０４を行なう。
【０３８９】
スケーリングFactorが“１“であるため、上述の数式において、スケーリングFactorに“１“を代入するとオフセットＶは０ではるため、スケーリングFactorが“１“である場合には、ビデオのオフセット処理は行われないことになる。
【０３９０】
図４７（ｂ）は、図４２に示すステップＳ８０４ａの具体的一例を説明するためのフローチャート図である。
図において、図４３（ａ）、図４７（ａ）に付した符号と同一の符号を付したものは、同一またはこれに相当するものであるので、ここでは重複する説明は省略する。
【０３９１】
ステップＳ２０２において、スケーリングFactorが“１“でないと判断した場合（ステップＳ２０２において、“Yes”と判定された場合）、デコードしたビデオデータにおける水平ピクセル数（表示画面の水平方向の画素数）、および垂直ピクセル数（表示画面の垂直方向のピクセル数）をスケーリングFactorに応じた水平ピクセル数、垂直ピクセル数に変換し（つまり拡大／縮小処理し）、変換した水平ピクセル数、垂直ピクセル数のビデオデータを表示画面の所定の位置に表示されるようにビデオプレーン６（符号（Ｒ）を付した領域）に書き込む（ステップＳ２０３ｆ）。
【０３９２】
次に、イメージプレーン用のプレーンオフセットDを用いて以下の数式の計算を実行し、ビデオプレーン用のプレーンオフセットＶを算出する。
(数式)
ビデオプレーン用のプレーンオフセットＶ＝Ceil(D-(スケーリングFactor×D))
そして、上述の数式により得られたビデオプレーンのプレーンオフセットVに基づき、右目用のビデオのシフト処理を行う（ステップＳ２０５f）。
【０３９３】
また、次にステップＳ２０２において、スケーリングFactorが“１“であると判断した場合（ステップＳ２０２において、“No”と判定された場合）、ビデオデコーダ５ａを用いてレフトビュー用のビデオストリームをデコードしたビデオデータをビデオプレーン６（符号（Ｒ）を付した領域）に書き込む（Ｓ２０４ｆ）。
【０３９４】
図４５はステップ図４２に示すステップＳ８０４ｂの一例を説明するフローチャートである。図において、図４３（ｂ）に付した符号と同一のものは、同一、またはこれに相当するものであるので、ここでは重複する説明は省略する。
【０３９５】
図において、ステップＳ２０２ｂにおいて、スケーリングFactorが“１“でないと判断した場合（ステップＳ２０２ｂにおいて、“Yes”と判定された場合）、ステップ２０３ｂを実行する。
【０３９６】
次に、イメージプレーン用のプレーンオフセットDを用いて以下の数式の計算を実行し、ビデオプレーン用のプレーンオフセットＶを算出する。
(数式)
ビデオプレーン用のプレーンオフセットＶ＝Ceil(D-(スケーリングFactor×D))
そして、上述の数式により得られたビデオプレーンのプレーンオフセットVに基づき、右目用のビデオのシフト処理を行う（ステップＳ２０５ｇ）。
【０３９７】
また、次にステップＳ２０２ｂにおいて、スケーリングFactorが“１“であると判断した場合（ステップＳ２０２ｂにおいて、“No”と判定された場合）、ステップＳ２０４ｂを実行する。
【０３９８】
このように右目用処理、左目用処理において、ビデオプレーンにオフセットを与えることにより、イメージプレーン、インタラクティブグラフィックスプレーンのシフト処理を必ずしも行わなくても良くなるので、ビデオのスケーリングに応じてイメージプレーン、インタラクティブグラフィックスプレーンのオフセットを変えなくても、ビデオのオフセットを変えるので、ビデオストリームを字幕・GUIの奥行きに追従させることが可能となり、字幕付きビデオのスケーリング時の視聴者への目の疲労度を低減することが可能となる。
【０３９９】
上述の処理は、右目用処理、左目用処理において、ビデオプレーンにオフセットを与えたときに、イメージプレーン、インタラクティブグラフィックスプレーンのシフト処理を行わないというものではない。
【０４００】
上述したようなフローチャートでは、ビデオプレーン用にプレーンオフセットが算出されるので、本実施形態では、ビデオプレーン及びイメージプレーンの双方において、プレーンシフトが実行されることになる。ここで、グラフィクスプレーンに対してプレーンシフトが実行された場合と、ビデオプレーン及びグラフィクスプレーンに対してプレーンシフトが実行された場合とで、字幕と、動画像との双方の位置関係がどのように変化するかを、図４８を参照しながら具体的に説明する。
【０４０１】
ビデオプレーン及びグラフィクスプレーンの双方シフトが適用される状況について説明する。
図４８（ａ）は、スケーリングがなされた動画像及びグラフィクスのうち、グラフィクスの座標を所定の画素数だけ移動させることを意図した状況を示す。これは、本実施の形態を行わずスケーリングを行った場合の出力画面を示すものである。本図において、プレーンオフセットが-40に設定されているので、レフトビュー時には、9RRに示すように右方向に40画素だけ、ライトビュー時には、9LLに示すように左方向に40画素だけ、各画素の座標が移動していることがわかる。
【０４０２】
スケーリングを施したビデオの上にスケーリング前と同様のシフト幅（４０ピクセル）をもつ字幕が動画像に合成されると、スケーリング前の映像と比較した場合、字幕のポジションが大幅にずれているため、ビデオと字幕の構成が保てない。これでは立体感の差が激しくなったことにより目がついていけなくなる恐れがある。
【０４０３】
そこでプレーンオフセット演算部４３は、上述した計算を行い、ビデオプレーンのシフト量を算出する。
具体的なプレーンオフセットが−４０画素であるものとし、スケーリングFactorが1/2であるものとする。これらを上記数式に適用してビデオプレーンのシフト量を算出すると、以下の計算によりビデオプレーンのプレーンオフセットは“-20”と算出される。
【０４０４】
Ｖ＝Ｄ−(ScallingFactor×Ｄ)＝-40-(1/2×-40)＝-20
ビデオプレーンについては、ビデオプレーンのための実パラメータであるプレーンオフセットＶが-20と算出されているので、レフトビュー時には右方向に20画素だけ、ライトビュー時には左方向に20画素だけ、ビデオプレーンの各画素の座標が移動することになる。動画像及びグラフィクスにスケーリングを施した場合、スケーリングを施したビデオが20画素だけシフトされ、その上に、40画素だけシフトされた字幕が合成されることになる。
【０４０５】
ビデオプレーンと、グラフィクスプレーンとの相対的な変化量は、レフトビューの場合は右方向に20画素、ライトビューの場合は左方向に20画素になるので、同図（ａ）と比較して、ビデオプレーンと、グラフィクスプレーンとの座標の変化量は小さく抑制されている。
【０４０６】
こうすることで同図（ｂ）では、スケーリング後の出力映像の１４LLと１４RRはスケーリング前のビデオと字幕との構成比率を保っていることがわかる。これにより立体感の差が激しくなることを防げ、目の疲れを軽減するとともに、より自然な表示が行えるようになる。
【０４０７】
以上のように本実施形態によれば、ビデオが縮小されるにつれて、左目と右目の視差が自然に縮まることによる奥行き感の軽減を、プレーンシフトによって防ぐことができる。
(第３実施形態)
本実施形態は、第１実施形態の拡張例である。スケーリングを行った場合は、拡大・縮小率が高いと奥行きの変更もスケーリング前と後で激しく異なる。第１実施形態ではスケーリングを行った際はスケーリング要求後の次のフレームでスケーリングFactorに応じた奥行き変更が反映される。急に映像の奥行きが激しく異なってしまうと、ユーザの目の疲労に繋がってしまう。本実施形態ではスケーリング要求があった際は次のフレームで一度に奥行きも変更してしまうのではなく、少しずつ奥行きを変更させていくことにより、ユーザの目の疲労を軽減させることを目的とする変形例について述べる。
【０４０８】
少しずつ奥行きを変更させるには、初期的なプレーンオフセットと、最終的なプレーンオフセットとの両方をプレーンオフセットとしてプレーンシフトエンジン２０内で保存しておく必要があり、奥行き変更処理の途中において、途中段階のプレーンオフセットを、再計算してやる必要がある。これらの変更を加えれば、プレーンシフトエンジン２０の内部構成は、図４９に示すものとなる。
【０４０９】
図４９は、第３実施形態における再生装置のプレーンシフトエンジン２０の内部構成を示すブロック図である。第１実施形態に示す図４のプレーンシフトエンジン２０の内部構成から、さらにプレーンオフセット値保存部４１に、前情報保存部４１aと、後情報保存部４１bとを含む構成を開示している。また、フレームカウンタ部４６も追加されており、フレームカウンタ部４６には、フレーム更新スパン保存部４６aと更新済みフレーム数保存部４６bとが追加されている。以下、本実施形態において新たに追加された構成要素について説明する。
【０４１０】
(前情報保存部４１a)
前情報保存部４１aは、オフセット設定部２１から指示されたプレーンオフセットDを、スケーリング前のプレーンオフセットとして保存する。
【０４１１】
(後情報保存部４１b)
後情報保存部４１bは、スケーリングが完了後のプレーンオフセットE、つまり、プレーンオフセットDにスケーリングFactorを乗じた値を保持する。また、オフセット値保存部にプレーンオフセットDにスケーリングFactorを乗じた値が更新された場合、更新されたオフセットが後情報保存部４１bに格納される。
【０４１２】
上述の更新するタイミングはスケーリング命令（例えばBD-Jアプリからスケーリング命令によりビデオ、字幕を縮小表示する場合など）が発行されたときにスケーリングFactor保存部４２の値を更新した後に行なわれる。
【０４１３】
(プレーンオフセット演算部４３)
プレーンオフセット演算部４３は、前情報保存部４１aに保存されているプレーンオフセットに示されるプレーンオフセットDと、後情報保存部４１bに保存されているプレーンオフセットEとを、それぞれ画素座標に変換する。そして、その２つの画素座標の差分を計算し、スケーリング時に必要なプレーンオフセットを得て、更新済みフレーム数保存部４６bの値をフレーム更新スパン保存部４６aの値で割る。
【０４１４】
そして、更新済みフレーム数保存部４６bの更新済みフレーム数を、フレーム更新スパン保存部４６aのフレーム更新スパンで割り、割った値に、最終的に上記演算したプレーンオフセットに乗ずる。
【０４１５】
第１実施形態では、オフセット設定部２１から供給されるプレーンオフセットを“プレーンオフセットD”と呼び、スケーリングに応じて算出されるプレーンオフセットを“プレーンオフセットE”と呼んだが、本実施形態で、フレームiが経過した時点において、イメージプレーンのシフトのために用いられるプレーンオフセットを、プレーンオフセットP(i)と呼ぶ。
【０４１６】
フレーム（i）におけるプレーンオフセットＰ(i)の計算には、次のような数式を用いる
（数式)
“プレーンオフセットＰ(i)=（スケーリング完了前のプレーンオフセットD - スケーリング完了後のプレーンオフセット）x (更新済みフレーム数i÷フレーム更新スパン)“。
【０４１７】
また、プレーンオフセットＰ(i)が小数点以下の数字となる場合には、小数点第１位の値を切り上げた整数値とする。
(シフト部４４)
シフト部４４は、右目用の処理を行う場合、画面より手前に飛び出さす場合は左へシフトさせ、奥に引っ込める場合は右へシフトさせる。左目用の処理を行う場合、画面より手前に飛び出さす場合は右へシフトさせ、奥に引っ込めさせる場合は左へシフトさせる。
【０４１８】
(フレームカウンタ部４６)
フレームカウンタ部４６は、スケーリング要求後にフレーム単位で前情報保存部４１aに保存された値から、後情報保存部４１bに近づける機能を兼ね備えている。
【０４１９】
具体的には、フレームカウンタ部４６は、どれだけのフレームを使って前情報保存部４１aに保存された値から、後情報保存部４１bに近づけるかを示すフレーム更新スパンを保持しているフレーム更新スパン保存部４６aと、スケーリング要求後に何回のフレーム処理が行われたかを保存する更新済みフレーム数保存部４６bとを有する。
【０４２０】
フレーム更新スパン保存部４６aの値は、再生装置のマニュファクチャによって再生装置に設定された値であり、更新されることはない。
更新済みフレーム数保存部４６bがフレーム更新スパン保存部４６aの値より低い場合は、更新済みフレーム数保存部４６bの値は、１だけインクリメントされる。
【０４２１】
以上がプレーンシフトエンジンの内部構成についての説明である。続いて、第３実施形態に係るプレーンシフトエンジンの内部構成について説明する。
更新済みフレーム数は、再生対象となるビデオフレームの変化に伴い、更新されてゆくものなので、本実施形態の処理を再生装置に実装するには、第１実施形態に示した3DAVストリームの再生処理の処理手順に、更新済みフレーム数に関する処理を追加せねばならない。そのような更新済みフレーム数に関する処理には、更新済みフレーム数をリセットする処理、更新済みフレーム数をインクリメントする処理がある。これら更新済みフレーム数に関する処理を追加すれば、3DAVストリームの3D表示の処理手順は、図５０のようなものになる。
【０４２２】
図５０は、3DAVストリームの3D表示の処理手順を示すフローチャートである。
図５０では、図４０からの変更点として、ステップS６１１からステップS６１４までが追加されていることになっていることに注目していただきたい。
【０４２３】
本図の図４０に付した符号と同一の符号を付したものは、図４０と同一またはこれに相当するものである。
本フローチャートは、ステップＳ６０２、Ｓ６０３、Ｓ６１３、Ｓ６１４、Ｓ６１５、Ｓ６１６、Ｓ６１７およびＳ６０６を含むステップを実行するというものである。
【０４２４】
上述のステップにおいて、左目用処理(ステップＳ６０２)、右目用処理(ステップＳ６０３)を順次実行するという処理を、フレーム出力が途絶えるまで(ステップＳ６０６でNo)継続するものである。本ループにおける左目用処理では、フレームiに対応する画素のシフト量P(i)だけ、イメージプレーンにおける各画素の座標を移動させる。また右目用処理でも、フレームiに対応する画素のシフト量P(i)だけ、イメージプレーンにおける各画素の座標を移動させる。このとき、左目用処理に対応するシフト量P(i)と、右目用処理に対応するシフト量P(i)は大きさは、同じであるもののシフトする方向が互いに異なる。
【０４２５】
まず、更新済みフレーム数ｉを０にセットする（ステップＳ６１７）。
次に左目用処理を行う（ステップＳ６０２）
このとき、左目用処理において、イメージプレーンオフセット（シフト量）の算出において、後述するスケーリング前のプレーンオフセットＤ、スケーリング完了後のプレーンオフセットＥ、更新済みフレーム数の数ｉ、更新スパンを用いて算出されるP(i)を用いる。
【０４２６】
次に右目用処理を行う（ステップＳ６０３）
このとき、右目用処理においてイメージプレーンオフセット（シフト量）の算出において、上述のP(i)を用いる。
【０４２７】
ステップＳ６１３は、更新済みフレーム数iがフレーム更新スパンより小さいかどうかの判定でありもし小さければ、ステップＳ６１４において更新済みフレームiをインクリメントする。等しいか大きければ（つまりステップＳ６１３においてＮｏと判断した場合）、。
【０４２８】
ステップＳ６０６へ進む。
ステップＳ６０６では、次フレームがあるのかどうかを判断する。
次フレームがない場合、つまりステップＳ６０６において、Ｎｏと判断した場合には３ＤＡＶストリームの３Ｄ表示の処理を終了する。
【０４２９】
次フレームがない場合、つまりステップＳ６０６において、Ｙｅｓと判断した場合には、ステップＳ６０２、Ｓ６０３における処理において、更新済みフレーム数を用いてP(i)を再度計算する。
【０４３０】
更新済みフレーム数ｉは更新スパンに到達するまでは、ステップＳ６１３の判断する毎に１つずつ増えていき、更新スパンに到達した以降はステップＳ６１４が実行されないため、更新済みフレーム数ｉは更新スパンに到達した以降は、その値が一定になる。
【０４３１】
更新済みフレームiは、ビデオストリームの再生進行に伴い更新されてゆき、それに伴い、プレーンオフセットEも更新されるので、本実施形態におけるプレーンシフトは、更新済みフレーム数が更新される度毎に、実行にする必要がある。この更新済みフレーム数の更新に伴い、プレーンオフセットの計算をやり直し、そして、再計算されたプレーンオフセットに基づきプラットフォームを実行する手順を示したのが、図５１のフローチャートである。
【０４３２】
図５１は、イメージプレーンのプレーンシフトの処理手順を示すフローチャートである。
図５１において、イメージプレーンのプレーンシフトの処理手順は左目用のシフト処理、右目用のシフト処理とは互いに共通する部分が多いため共通のフローチャートを用いて、説明をする。但し、左目用のシフト処理を行う場合はイメージプレーンの符号（Ｌ）を付した領域に格納した字幕データがシフト処理の対象となり、右目用のシフト処理を行う場合はイメージプレーンの符号（Ｒ）を付した領域に格納した字幕データがシフト処理の対象となる。
【０４３３】
イメージプレーンを取得し、デコードしたイメージをイメージプレーンに書き込む(ステップＳ９０１)。
そして、以下の計算により、フレームiにおけるプレーンオフセットP(i)を算出する。
【０４３４】
プレーンオフセットP(i)は
プレーンオフセットP(i)  ＝（スケーリング完了前のプレーンオフセットD - スケーリング完了後のプレーンオフセットE）x (更新済みフレームi÷フレーム更新スパン)
こうして算出されたプレーンオフセットP(i)に基づき、イメージプレーンのピクセル座標をシフトする(ステップＳ９０４)。但し、ステップＳ９０４は左目用のシフト処理をするときにシフトする方向と、右目用のシフト処理をするときにシフトする方向とは互いに逆向きである。
【０４３５】
図５１のループを一巡する度に更新済みフレームiが、ステップＳ８０９でインクリメントされてゆき、この更新済みフレームiに基づきプレーンオフセットP(i)が算出されるので、更新済みフレームiが大きくなればなる程、プレーンオフセットP(i)が大きく変化してゆくことがわかる。そして更新済みフレームiがフレーム更新スパンに到達すれば、更新済みフレームiが“0”にリセットすることがわかる。
【０４３６】
上述したように、更新済みフレームiは、ビデオストリームの再生進行に伴い更新されてゆき、それに伴い、プレーンオフセットP(i)も更新させてゆくことがわかる。この更新済みフレーム数及びプレーンオフセットP(i)の時間的変動を表したのが図５２である。以下、図５２の具体例を交えながら、プレーンオフセットP(i)の時間的変位について説明する。
【０４３７】
図５２は、更新済みフレームiが“１”、“２”、“３”と更新されてゆく場合に、プレーンオフセットP(i)がどのように変化するかを示す。本図では、右斜め方向に時間軸を描いており、この時間軸上にフレーム０、１、２、３を記述している。そして、このフレーム０、１、２、３におけるイメージプレーンの内容が、この時間軸上に描いている。
【０４３８】
各フレーム上の数式は、フレーム０、１、２、３を識別するための更新済みフレームiが、“１”、“２”、“３”の値をとった際、プレーンオフセットP(i)がどのような値になるかを示す。
【０４３９】
この具体例では、-40と-20という値が前情報保存部と後情報保存部に保存されていると仮定する。-40は、プレーンオフセットDであり、ー20は、プレーンオフセットのピクセル変更演算を加えた後のプレーンオフセットP(i)である。本例では、３フレームに跨いで奥行きを序々に変更する設定になっており、フレーム更新スパン保存部４６aには“３”の値が保存されている。更新済みフレーム数保存部４６bには、“１“が格納されている。スケーリング命令後、１フレーム目の処理を行っていることを示す。この格納値は、フレームの経過に伴い、“２”、“３”とインクリメントされてゆく。そしてスケーリング命令からスケーリングFactorが、“１/２“であるの要求があったため、スケーリングFactor保存部４１には１/２の値が設定されている。
【０４４０】
この具体例では、プレーンシフトエンジンの情報、前情報保存部と後情報保存部の差分から３フレームかけて-２０ピクセルを移動させる必要があることが判明している。
(フレーム１)
フレーム１において、更新済みフレームi＝“１“を上記数式に適用すれば、更新済みフレームi÷フレーム更新スパンは“１／３”になり、フレームP(i)における画素プレーンオフセットP(1)は、(-40-(1/2×-40)×1/3)の計算により、“-7”と算出される。従って、フレーム１においては、レフトビュー時においてイメージプレーンは右方向に７画素だけシフトし、ライトビュー時においてイメージプレーンは左方向に７画素だけシフトする。
【０４４１】
(フレーム２)
フレーム２において、更新済みフレームi＝“２“を上記数式に適用すれば、更新済みフレームi÷フレーム更新スパンは“２／３”になり、フレームP(i)におけるプレーンオフセットP(2)は、(-40-(1/2×-40)×2/3)の計算により、“-14”と算出される。従って、フレーム２においては、レフトビュー時においてイメージプレーンは右方向に１４画素だけシフトし、ライトビュー時においてイメージプレーンは左方向に１４画素だけシフトする。
【０４４２】
(フレーム３)
フレーム３において、更新済みフレームi＝“３“を上記数式に適用すれば、更新済みフレームi÷フレーム更新スパンは“３／３”になり、フレームP(i)におけるプレーンオフセットP(3)は、(-40-(1/2×-40)×3/3)の計算により、“-20”と算出される。従って、フレーム３においては、レフトビュー時においてイメージプレーンは右方向に２０画素だけシフトし、ライトビュー時においてイメージプレーンは左方向に２０画素だけシフトする。
この具体例では、-２０画素の１/３にあたるシフト数（７ピクセル）を各フレームで移動させ、３フレーム目には-２０ピクセルシフトがなされ、４フレーム目以降は３フレーム目のシフト数が維持され状態が継続する。この継続はステップＳ６０６において、次フレームがないと判断されるまで維持される。
【０４４３】
以上のように本実施形態によれば、スケーリング時の字幕の奥行き変換を急激に変えるのではなく、少しずつ奥行きを変更させていくことにより、ユーザの目の疲労を軽減させることが可能となる。（第４実施形態)
プレーンシフトエンジン２０が、プレーンシフトを行うにあたってのシフト量は、立体視のための何等かのパラメータに基づき、算出する必要がある。かかるシフト量算出のためにパラメータにはMVC（Multi
View Codec）ビデオストリームに組み込まれている立体視用のプレーンオフセットを採用することが望ましい。ただし、これには限らず、コンテンツプロバイダがBD-ROMを通じて再生装置に供給する様々な情報要素を通じて、プレーンシフトエンジン２０に供給できるようにしておく方が望ましい。
【０４４４】
図５３を参照しながら、プレーンオフセットの設定処理について説明する。
図５３は、プレーンオフセットの設定に関わる部分の構成を示す。
プレーンオフセットの供給の仕方には、以下の(AA)〜(FF)のバリエーションがある。
【０４４５】
(AA)BD-JアプリケーションはsetOffsetValueのメソッドコールによって、表示モード記憶部２９内のプレーン設定のプレーンオフセットを更新することができる。
上記プレーンオフセットはBD-JアプリケーションによりgetOffsetValueメソッドにより取得可能である。
【０４４６】
BD-JアプリケーションがAPIをコールしてプレーンオフセットを組込む場合、自由度は高いが、リアルタイム性が劣る。プレーンシフトエンジンがBD-Jアプリケーションにより指定されたオフセットを利用する場合、BD-Jアプリケーションから指定されたプレーンずオフセットが表示モード記億部２９（例えば、イメージプレーン設定におけるプレーンオフセット、インタラクティブグラフィックスプレーン設定におけるプレーンオフセット）に格納され、オフセット設定部２１により読み出されてプレーンシフトエンジン２０内のオフセット値保存部４１に設定される。プレーンシフトエンジンによる水平方向へのシフトはプレーンオフセットに応じて合成時に自動的に行われる。
【０４４７】
設定の時期について説明する。
イメージプレーン８及びインタラクティブグラフィクスプレーン１０の奥行きを変更するAPIは、アプリケーションが起動した後ならば、起動したアプリケーションからいつでも呼び出し可能であり、それ以外でも例えばビデオの停止中に呼び出される可能性もある。しかし、表示モード記憶部２９内のプレーンオフセットをプレーンシフトエンジン２０に格納するタイミングを制御することでグラフィクスプレーンのずらし幅が必ず同期していることを保障できる。
【０４４８】
具体的にはBD-JアプリケーションがsetOffset()を呼び出したタイミングでプレーンシフトエンジン２０のプレーンオフセットを更新するのではなく、１フレーム分のレフトビューとライトビューの両方の出力が完了した時点で表示モード記憶部２９内のプレーンオフセットが更新されているかを確認し、それに伴ってプレーンシフトエンジン２０のオフセットを更新するようにする。こうすることで、グラフィクスプレーンのずらし幅が必ず同期していることを保障できる。レフトビュー、及び、ライトビューのずらし幅が同期していない場合はコンテンツ作成者の意図しない表示になってしまい、視聴者に不愉快な出力映像を与えてしまうことは言うまでもない。
【０４４９】
(BB)BD-ROMがロードされた際、またはBD-ROMがロードされ、又は、仮想パッケージが構築された際、BD-ROMまたは仮想パッケージから特定されるMETAディレクトリに格納されたメタファイル（ZZZZZ.xml）からプレーンオフセットを読み出してプレーンシフトエンジン２０のプレーンオフセットを更新する。
【０４５０】
(CC)MVCビデオストリームの読み出し及びデコードが開始された際、MVCビデオストリームを構成する各PESパケットのヘッダ領域に組込まれているプレーンオフセットを、プレーンシフトエンジン２０のプレーンオフセットとしてリードバッファ２８内に設定する。望ましくは１フレーム分のレフトビューとライトビューの両方の出力が完了した時点で、現在処理中のフレームと対応するオフセットを、プレーンシフトエンジン２０のプレーンオフセットとして、リードバッファ２８内に設定する。
【０４５１】
MVCビデオストリームにプレーンオフセットを組み込む場合、ストリームから勝手にずらすことができるので、リアルタイム性が高いが、オーサリング時の手間が大きい。
(DD)トランスポートストリームの読み出し及びデコードが開始された際、トランスポートストリームパケットのヘッダ領域に組込まれているオフセットを、プレーンシフトエンジン２０のプレーンオフセットとしてに更新する。望ましくは１フレーム分のレフトビューとライトビューの両方の出力が完了した時点で、現在処理中のフレームと対応するプレーンオフセットを、プレーンシフトエンジン２０のプレーンオフセットとして、リードバッファ２８内に設定する。
【０４５２】
ストリーム内に組み込む場合、ストリームから勝手にずらすことができるので、リアルタイム性が高いが、オーサリング時の手間が大きい。
(EE)カレントプレイリストが決定されて、プレイリスト情報がロードされた際、このプレイリスト情報のオフセットを、プレーンシフトエンジン２０内にプレーンオフセットとして設定する。プレイリスト情報を用いる場合、オーサリングでの自由は高いが、ストリームにオフセットを埋め込んだ場合に比べると、一度オフセットを設定してから、オフセットを再度更新するまでのオフセット更新の時間間隔を余り短くすることができず、リアルタイム性がやや劣る。
【０４５３】
(FF)UO検知モジュール２６は、リモコンや機器に付属のボタンなどの操作によりイメージプレーン８及びインタラクティブグラフィクスプレーンの奥行きのレベルを変更するユーザオペレーションを受けた場合、つまり、奥行き感が、“遠い”、“普通”、“近い“等の3つのレベルを受け付けた場合や、奥行き感は“何cm”、“何mm”というように、数値入力によって奥行き感のレベルを受け付けた場合、これを用いて、プレーンシフトエンジン２０のプレーンオフセットを更新することができる。かかる更新によって、リモコンにおける右矢印キーの押下に応じてプレーンオフセットを大きくしたり、左矢印キーに応じてプレーンオフセットを小さくすることができる。こうすることで、右矢印キー、左矢印キーの押下回数によって、グラフィクスを手前に見せたり、奥に見せたりすることができ、操作性が向上する。
【０４５４】
イメージプレーン８及びインタラクティブグラフィクスプレーン１０のシフト量は、以上の過程を経て、プレーンシフトエンジン２０のプレーンオフセットに基づいて計算処理を行うことで得られる。
【０４５５】
MVCビデオストリーム内にプレーンオフセットが組込まれている場合、プレーンオフセット演算部４３は、1フレームに対するレフトビュー用の出力とライトビュー用の出力とが完了した時点で、プレーンシフトエンジン２０内に格納されたプレーンオフセットに基づいてグラフィクスプレーンのシフト量を計算する。これは、プレーンオフセットがMVCビデオストリームに格納されている場合、フレーム毎にプレーンオフセットが変化することもありうるからである。
【０４５６】
以上が、プレーンオフセットを設定する様々なケースについての説明である。続いて、ユーザ操作やアプリケーションによって提供される値について説明する。
ユーザ操作やアプリケーションから提供される値はシフト量そのものではなく、例えば、現状プレーンシフトエンジン２０に設定されている値からの調整値が与えられることがある。この場合、プレーンオフセット計算を実行する。例えば、右矢印キーが３回押されたり、数値キーの“３”という値が入力されれば、装置内に設定されているプレーンオフセットにかかる値を加算して、プレーンシフトエンジン２０は加算された値を基にプレーンオフセットを計算する。“+”の値であると、例えばよりずらし幅が縮小され、奥に見えるようにし、“―”の値であると、例えばずらし幅を増やし、より手前に見えるようにすることが考えられる。
【０４５７】
次に、奥行きの変更について説明する。
上述したように、字幕、GUI等のグラフィクスを横軸にシフトする際、字幕、GUI等のグラフィクスの横軸のずらし幅を変更することによって、奥行きが変更する。例えば、レフトビュー字幕とライトビュー字幕を一定方向に近くへ寄せれば寄せるほど画面に近づくに表示がなされ、逆方向に離せば離すほど画面から離れる視覚効果を得られる。しかし、プレーンオフセットと、飛び出し度合との相関性は、テレビにおけるインチ数、3D眼鏡における液晶の特性に影響するところが大きいので、この視覚効果の実現にあたって、予め端末内に係数を設定しておき、プレーンオフセットにこの係数を乗じたものをシフトに用いる。このように係数を乗じることで、テレビや再生装置、3D眼鏡における特性に基づき、立体視映像の飛び出し度合を調整することが可能になる。
【０４５８】
(第５実施形態)
本実施形態では、これまでの実施形態で述べた再生装置を、どのようなハードウェアを用いて構成するかを説明する。
【０４５９】
図５４は、再生装置の内部構成を示す図である。本図において再生装置を構成する主だった部品は、フロントエンド部１０１、システムLSI１０２、メモリデバイス１０３、バックエンド部１０４、不揮発性メモリ１０５、ホストマイコン１０６、ネットワークI／F１０７である。
【０４６０】
フロントエンド部１０１は、データ入力源である。フロントエンド部１０１は、例えば、前図に示したBDドライブ1a、ローカルストレージ1cを含む。
システムLSI１０２は、論理素子から構成され、再生装置中核をなす。少なくとも、デマルチプレクサ４、ビデオデコーダ５a,b、イメージデコーダ７a,b、オーディオデコーダ９、再生状態／設定レジスタ(PSR)セット１２、再生制御エンジン１４、合成部１５、プレーンシフトエンジン２０といった構成要素は、このシステムLSIの内部に組み込まれることになる。
メモリデバイス１０３は、SDRAM等のメモリ素子のアレイによって構成される。メモリデバイス１０７は、例えばリードバッファ2a、リードバッファ2b、動的シナリオメモリ２３、静的シナリオメモリ１３、グラフィクスプレーン６,８、ビデオプレーン１０、バックグラウンドプレーン１１を含む。
【０４６１】
バックエンド部１０４は、再生装置内部と、他の装置との接続インターフェイスであり、HDMI送受信部１７を含む。
不揮発性メモリ１０５は、読み書き可能な記録媒体であり、電源が供給されなくても、記録内容を保持できる媒体であり、後述する表示モード記憶部２９に記憶されている表示モードのバックアップに利用される。かかる不揮発性メモリ１０５には、例えばフラッシュメモリ、FeRAMなどを利用することができる。
【０４６２】
ホストマイコン１０６は、ROM、RAM、CPUからなるマイコンシステムであり、ROMには再生装置を制御するプログラムが記録されており、ROM内のプログラムがCPUに読み込まれ、プログラムとハードウェア資源とが協動することにより、HDMVモジュール２４、BD-Jプラットフォーム２２、モード管理モジュール２４、UO検知モジュール２６、再生制御エンジン１４の機能を実現する。
【０４６３】
以下、システムLSIについて説明する。システムLSIとは、高密度基板上にベアチップを実装し、パッケージングした集積回路をいう。複数個のベアチップを高密度基板上に実装し、パッケージングすることにより、あたかも1つのLSIのような外形構造を複数個のベアチップに持たせたものも、システムLSIに含まれる(このようなシステムLSIは、マルチチップモジュールと呼ばれる。)。
【０４６４】
ここでパッケージの種別に着目するとシステムLSIには、QFP(クッド フラッド アレイ)、PGA(ピン グリッド アレイ)という種別がある。QFPは、パッケージの四側面にピンが取り付けられたシステムLSIである。PGAは、底面全体に、多くのピンが取り付けられたシステムLSIである。
【０４６５】
これらのピンは、他の回路とのインターフェイスとしての役割を担っている。システムLSIにおけるピンには、こうしたインターフェイスの役割が存在するので、システムLSIにおけるこれらのピンに、他の回路を接続することにより、システムLSIは、再生装置２００の中核としての役割を果たす。
【０４６６】
かかるシステムLSIは、再生装置２００は勿論のこと、TVやゲーム、パソコン、ワンセグ携帯等、映像再生を扱う様々な機器に組込みが可能であり、本発明の用途を多いに広げることができる。
【０４６７】
システムLSIのアーキテクチャは、Uniphierアーキテクチャに準拠させるのが望ましい。
Uniphierアーキテクチャに準拠したシステムLSIは、以下の回路ブロックから構成される。
【０４６８】
・データ並列プロセッサDPP
これは、複数の要素プロセッサが同一動作するSIMD型プロセッサであり、各要素プロセッサに内蔵されている演算器を、1つの命令で同時動作させることで、ピクチャを構成する複数画素に対するデコード処理の並列化を図る。
【０４６９】
・命令並列プロセッサIPP
これは、命令RAM、命令キャッシュ、データRAM、データキャッシュからなる「Local Memory Controller」、命令フェッチ部、デコーダ、実行ユニット、レジスタファイルからなる「Processing Unit部」、複数アプリケーションの並列実行をProcessing Unit部に行わせる「Virtual Multi Processor Unit部」で構成される。
【０４７０】
・MPUブロック
これは、ARMコア、外部バスインターフェイス(Bus Control Unit:BCU)、DMAコントローラ、タイマー、ベクタ割込コントローラといった周辺回路、UART、GPIO(General Purpose Input Output)、同期シリアルインターフェイスなどの周辺インターフェイスで構成される。
【０４７１】
・ストリームI/Oブロック
これは、USBインターフェイスやATA Packetインターフェイスを介して、外部バス上に接続されたドライブ装置、ハードリディスクドライブ装置、SDメモリカードドライブ装置とのデータ入出力を行う。
【０４７２】
・AVI/Oブロック
これは、オーディオ入出力、ビデオ入出力、OSDコントローラで構成され、テレビ、AVアンプとのデータ入出力を行う。
【０４７３】
・メモリ制御ブロック
これは、外部バスを介して接続されたSD-RAMの読み書きを実現するブロックであり、各ブロック間の内部接続を制御する内部バス接続部、システムLSI外部に接続されたSD-RAMとのデータ転送を行うアクセス制御部、各ブロックからのSD-RAMのアクセス要求を調整するアクセススケジュール部からなる。
【０４７４】
具体的な生産手順の詳細は以下のものになる。まず各実施形態に示した構成図を基に、システムLSIとすべき部分の回路図を作成し、回路素子やIC,LSIを用いて、構成図における構成要素を具現化する。
【０４７５】
そうして、各構成要素を具現化してゆけば、回路素子やIC,LSI間を接続するバスやその周辺回路、外部とのインターフェイス等を規定する。更には、接続線、電源ライン、グランドライン、クロック信号線等も規定してゆく。この規定にあたって、LSIのスペックを考慮して各構成要素の動作タイミングを調整したり、各構成要素に必要なバンド幅を保証する等の調整を加えながら、回路図を完成させてゆく。
【０４７６】
回路図が完成すれば、実装設計を行う。実装設計とは、回路設計によって作成された回路図上の部品(回路素子やIC,LSI)を基板上のどこへ配置するか、あるいは、回路図上の接続線を、基板上にどのように配線するかを決定する基板レイアウトの作成作業である。
【０４７７】
こうして実装設計が行われ、基板上のレイアウトが確定すれば、実装設計結果をCAMデータに変換して、NC工作機械等の設備に出力する。NC工作機械は、このCAMデータを基に、SoC実装やSiP実装を行う。SoC(System
on chip)実装とは、1チップ上に複数の回路を焼き付ける技術である。SiP(System in Package)実装とは、複数チップを樹脂等で1パッケージにする技術である。以上の過程を経て、本発明に係るシステムLSIは、各実施形態に示した再生装置２００の内部構成図を基に作ることができる。
【０４７８】
尚、上述のようにして生成される集積回路は、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。
FPGAを用いてシステムLSIを実現した場合は、多数のロジックエレメントが格子状に配置されており、LUT(Look Up Table)に記載されている入出力の組合せに基づき、縦・横の配線をつなぐことにより、各実施形態に示したハードウェア構成を実現することができる。LUTは、SRAMに記憶されており、かかるSRAMの内容は、電源断により消滅するので、かかるFPGAの利用時には、コンフィグ情報の定義により、各実施形態に示したハードウェア構成を実現するLUTを、SRAMに書き込ませる必要がある。
本実施の形態は、ミドルウェアとシステムLSIに対応するハードウェア、システムLSI以外のハードウェア、ミドルウェアに対するインターフェイスの部分、ミドルウェアとシステムLSIのインターフェイスの部分、ミドルウェアとシステムLSI以外の必要なハードウェアへのインターフェイスの部分、ユーザインターフェースの部分で実現し、これらを組み込んで再生装置を構成したとき、それぞれが連携して動作することにより特有の機能が提供されることになる。
【０４７９】
ミドルウェアに対するインターフェイス、および、ミドルウェアとシステムLSIのインターフェイスを適切に定義することにより、再生装置のユーザインターフェース部分、ミドルウェア部分、システムLSI部分をそれぞれ独立して並行開発することができ、より効率よく開発することが可能となる。なお、それぞれのインターフェイスのきり方には、様々な切り方がある。
【０４８０】
(備考)
以上、本願の出願時点において、出願人が知り得る最良の実施形態について説明したが、以下に示す技術的トピックについては、更なる改良や変更実施を加えることができる。各実施形態に示した通り実施するか、これらの改良・変更を施すか否かは、何れも任意的であり、実施する者の主観によることは留意されたい。
【０４８１】
(次元識別フラグの埋め込み方)
BD-ROM上には再生対象のストリームが2D用か3D用かを識別する次元識別フラグが存在しており、第１実施形態ではプレイリスト（PL）情報に次元識別フラグを埋め込んが、これに限らず、ストリーム本体とそのストリーム2D用か3D用かを特定できる情報として記録される情報であれば、BD-ROM上に他の形で記録されていてもよい。
(ビデオプレーン６の物理的形態)
図４に示したビデオプレーン６に含まれる、左目用プレーン、右目用プレーンは物理的に分離したメモリを例示しているが、これに限定される必要はなく、例えば、1つのメモリ内に左目用プレーンの領域、右目用プレーンの領域を設け、この領域に対応するビデオデータを書き込むような構成であってもよい。
【０４８２】
(イメージプレーン８の物理的形態)
図４に示したイメージプレーン８に含まれる、左目用プレーン、右目用プレーンは物理的に分離したメモリを例示しているが、これに限定される必要はなく、例えば、1つのメモリ内に左目用プレーンの領域、右目用プレーンの領域を設け、この領域に対応するグラフィクスデータを書き込むような構成であってもよい。
【０４８３】
(インタラクティブグラフィクスプレーン１０の物理的形態)
図４では、インタラクティブグラフィクスプレーン１０は左目用の領域（符号（Ｌ）を付したもの）と、右目用の領域（符号（Ｒ）を付したもの）とが、1つのプレーンメモリ内に予め設けられている例を示しているが、これに限定される必要はなく、例えばインタラクティブグラフィクスプレーン１０の左目用の領域（符号（Ｌ）を付したもの）、右目用の領域（符号（Ｒ）を付したもの）を物理的に分離したものを用いてもよい。
(オフセット調整の仕方)
図７〜８を用いた説明は、ステレオモードがオフの状態において、バックグラウンドとビデオのオフセットを調整しない（つまりオフセットが０、より具体的には表示画面の位置に表示されている）例を題材にしている。これは上述の説明を簡単にするためである。従って上述の説明に限定される必要はなく、例えばグラフィクスイメージ（字幕）よりも奥にビデオが位置するように、かつ背景データがビデオよりも奥に位置するようにオフセットを調整して表示してもよい。
【０４８４】
(バックグラウンドプレーン１１、イメージプレーン８、インタラクティブグラフィクスプレーンがサポートすべき解像度)
再生装置が3D表示モードである場合は、バックグラウンドプレーン１１、イメージプレーン８、インタラクティブグラフィクスプレーンは2D表示モードの解像度に加えて、１９２０x２１６０や１２８０x１４４０ピクセルの解像度をサポートしてもよい。その場合は１９２０x２１６０や１２８０x１４４０ピクセルのアスペクト比は、１６/１８のアスペクト比になり、上半分を左目用の領域、下半分を右目用領域に利用することになる。
【０４８５】
(プレーンオフセットを設定する対象)
プレーンオフセットは、例えば、イメージプレーン用とインタラクティブグラフィクスプレーン用の２つのシフト量をもち、プレーンシフトを行う対象に応じてその２つのシフト量を使い分けてもよい。再生装置がセットアップ機能を兼ね備えていない場合、“０“がデフォルトで指定されるようにする。この場合は表示画面の位置に字幕、ＧＵＩなどのグラフィクスが表示され、表示画面から飛び出るような効果はない。
(合成部による合成からの除外)
2D静止画データ、2Dビデオデータ、2Dグラフィクスデータ（字幕データ）、2Dインタラクティブグラフィクスの順で合成する際、ビデオデータが全画面表示であれば、2D静止画データは、合成処理から除外してもよい。
【０４８６】
(表示モード記憶部２９におけるフラグ保持のバリエーション)
表示モード記憶部２９の2D表示モードか3D表示モードを示すフラグは再生状態レジスタ１２で保存してもよいし、表示モード記憶部２９と再生状態レジスタ１２の両方で保存してもよい。
【０４８７】
（演算のテーブル化）
プレーンオフセットから画素座標への変換アルゴリズムは様々考えられるが、表示対象のディスプレイのサイズや解像度、あるいは表示対象のビデオのサイズに依存したアルゴリズムを使うのが望ましい。
【０４８８】
また、機器リソースに乏しい再生装置は変換アルゴリズムによる演算ではなく、スケーリング対応テーブルを持たせて、そのテーブルに応じてプレーンオフセットから画素座標へ変換してもよい。具体的には、スケーリングFactorの倍率を数パターンに限定し、各スケーリングFactorに対応する画素座標がかかれたテーブルを予め持っておく。スケーリングFactorが指定された際に対応する画素座標をシフト部２８-Dに返すようにすればよい。
【０４８９】
プレーンオフセットの具体的な値としては、５０画素、３０画素、２５画素という3段階の値にしてもよい。そしてスケーリングFactorについては、２倍、１／２倍、１／４倍という3段階の値にしてもよい。プレーンオフセットやスケーリングFactorをこれらの値に制限することで、演算アルゴリズムは単純なものとなり、上記演算のテーブル化によって、プレーンオフセット演算部４３の実装を簡略化することができる。
【０４９０】
（二重化）
図の構成図にはビデオデコーダ、ビデオプレーン、イメージプレーン加算器を各一つずつ有しているが、各部分を２つずつもたせ、左目用の映像と右目用の映像を平行に処理をするようにしてもよい。
【０４９１】
（再利用）
デコードとスケーリングを施したイメージプレーンを保存している場合は、それを再利用してもよい。ただし、再利用した場合は、シフトしたイメージプレーンを元に戻す必要がある。
【０４９２】
（2Dのピクセル）
さらに、2Dビデオストリームとその2Dビデオストリームのフレーム毎の各画面ピクセルの奥行きを入力とする方式の場合は、フレーム毎の各画面ピクセルの奥行きから、一番手前にあるピクセルの奥行きを抽出し、プレーンオフセットとして利用してもよい。
【０４９３】
（同期）
左目と右目を同期するために、フラグを別途もうけ、左目用のスケーリング処理を施した場合のみ、右目用のスケーリング処理を行うようにしてもよい。
【０４９４】
（ファクターのバリエーション）
スケーリングFactorとしてスケーリング完了後の画素座標を具体的に指定してもよい。例えば、横の長さは１０００、縦の長さは２５０のように直接指定してもよい。
【０４９５】
スケーリングFactorが具体的なPixel数であった場合はスケーリング前と後の横軸の比率を計算し、それをイメージオフセットに掛けることにより新しいイメージオフセットを得ることが望ましい。
【０４９６】
（表示の時期）
本実施の形態の構成ではスケーリング命令受信後に少しずつ奥行きを変更させることも可能だが、字幕の表示を無効にしておき、一定のフレームが経過した後に一度に後情報保存部の値から算出したシフト画素座標で表示するようにしてもよい。その方法は、フレームに応じたずらし幅を計算するのではなく、更新済みフレーム数保存部の値がフレーム更新スパン保存部の値に到達した時点で、後情報保存部で計算できるピクセルシフト幅をシフトさせ表示させる。そうすることによって、ユーザがスケーリング後のビデオストリームの奥行き変更に目が慣れた状態で字幕が表示されるため、立体感の差がさらに吸収され、ユーザの目の疲れを軽減させる効果をもたらす。
【０４９７】
（ストリームの記録態様）
BD-ROM上に配置されたストリームは右目用ストリーム、左目用ストリームが別々に記録されてもよいし、一つのストリームファイルに埋め込んでおいてもよい。
【０４９８】
(立体視方式)
第１実施形態で説明の前提とした視差画像方式は、左右の映像を時間軸方向で交互に表示させるために、例えば、通常の2次元の映画であれば1秒に２４枚の映像を表示させるのに対して、左右の映像合わせて１秒に４８枚の映像を表示させる必要がある。従って、この方式では、一画面の書き換えが比較的早い表示装置において好適である。この視差画像を用いた立体視は、既に遊園地の遊具などで一般的に使用されており、技術的にも確立されているため、家庭における実用化に最も近いものと言える。視差画像を用いた立体視のための方法はこれらの他にも、2色分離方式などさまざまな技術が提案されている。本実施形態においては、継時分離方式あるいは偏光メガネ方式を例として用いて説明したが、視差画像を用いる限りこれら２方式に限定するものではない。
【０４９９】
表示装置３００についても、レンチキュラーレンズだけでなく、同様の機能を持たせたデバイス、例えば液晶素子を用いてもよい。また左目用の画素には縦偏光のフィルター、右目用の画素には横偏光のフィルターを設置し、視聴者は、左目用には縦偏光、右目用には横偏光のフィルターを設置した偏光メガネを用いて表示装置の画面を見ることによって立体視を実現させてもよい。
【０５００】
(イメージデータ)
各実施形態で示したイメージデータは、Presentation Graphicsストリームであることが望ましい。
【０５０１】
Presentation Graphicsストリーム(PGストリーム)は、映画の字幕等、ピクチャと緻密に同期すべきグラフィクスを示すグラフィクスストリームであり、英語、日本語、フランス語というように複数言語についてのストリームが存在する。
【０５０２】
PGストリームは、PCS(Presentation Control Segment)、PDS(Pallet Define Segment)、WDS(Window Define Segment)、ODS(Object Define Segment)という一連の機能セグメントからなる。ODS(Object DefineSegment)は、画素コードと、そのランレングスとを用いてランレングス圧縮されたグラフィクスオブジェクトを定義する機能セグメントである。PDS(Palette Difinition Segment)は、画素コードのそれぞれと、輝度(Y)、赤色差(Cr)、青色差(Cb)、透明度(α値)との対応関係を規定する機能セグメントである。PCS(Presentation Control Segment)は、グラフィクストリームにおける表示単位(ディスプレイセット)の詳細を規定すると共に、グラフィクスオブジェクトを用いた画面構成を規定する機能セグメントである。かかる画面構成には、Cut-In/Out、Fade-In/Out、Color Change、Scroll、Wipe-In/Outといったものがあり、PCSによる画面構成を伴うことにより、ある字幕を徐々に消去しつつ、次の字幕を表示させるという表示効果が実現可能になる。
【０５０３】
グラフィクストリームの再生において、グラフィクスデコーダは、ある表示単位(ディスプレイセット)に属するODSをデコードしてグラフィクスオブジェクトをオブジェクトバッファに書き込む処理と、先行する表示単位(ディスプレイセット)に属するODSをデコードすることにより得られたグラフィクスオブジェクトをオブジェクトバッファからプレーンメモリに書き込む処理とを同時に実行するというパイプラインによって、上述したような緻密な同期を実現する。パイプラインによるデコード動作の実現により、動画像との緻密な同期を実現するので、PresentationGraphicsストリームの用途は字幕のような文字再生に限定されない。映画作品のマスコットキャラクタを表示して、これを動画像と同期させつつ動作させるなど、緻密な同期が必要なグラフィクス再生であれば、どのようなものも、PresentationGraphicsストリームによる再生対象として、採用することができる。
【０５０４】
トランスポートストリームファイルに多重化されないが、字幕を現すストリームには、PGストリームの他に、テキスト字幕(textST)ストリームというものがある。textSTストリームは、字幕の内容をキャラクタコードで現したストリームである。このPGストリームと、textSTストリームとの組みは、BD-ROM規格において、“PGTextSTストリーム”と呼ばれる。テキスト字幕(textST)ストリームはAVストリームに多重化されないので、その再生にあたっては、テキスト字幕ストリーム本体と、テキストの展開に用いられるフォントとを再生に先立ち、メモリにプリロードしておく必要がある。またテキスト字幕ストリームのうち、どの言語を正常に表示できるかどうかは、BD-ROM再生装置において、言語コード毎に設定されたケーパビリティフラグに設定される。一方、PresentationGraphicsストリームによる字幕再生には、ケーパビリティフラグの参照は不要となる。PresentationGraphicsストリームにおける字幕は、ランレングス圧縮された字幕を展開すれば足りるからである。
【０５０５】
Presentation Graphicsストリームによる再生対象は、装置側の言語設定に応じて選ばれた字幕グラフィクスであってもよい。これにより、現状のDVDにおいて動画像本体で表現していたような文字を用いた表示効果を、装置側の言語設定に応じて表示された字幕グラフィクスで実現することができるので、実用上の価値は大きい。
【０５０６】
Preentation Graphicsストリームによる再生対象は、装置側のディスプレイ設定に応じて選ばれた字幕グラフィクスであってもよい。つまり、ワイドビジョン、パンスキャン、レターボックス用といった様々な表示モード用のグラフィクスがBD-ROMに記録されており、装置側は自身に接続されたテレビの設定に応じてこれらの何れかを選んで表示する。この場合、そうして表示された字幕グラフィクスに対し、PresentationGraphicsストリームに基づく表示効果をほどこすので、見栄えがよくなる。これにより、動画像本体で表現していたような文字を用いた表示効果を、装置側のディスプレィ設定に応じて表示された字幕で実現することができるので、実用上の価値は大きい。またPresentationGraphicsストリームはカラオケを実現するものであってもよい、そしてこの場合、Presentation Graphicsストリームは歌の進行に応じて、字幕の色を変えるという表示効果を実現してもよい。
【０５０７】
（プログラムの実施形態）
各実施形態に示したアプリケーションプログラムは、以下のようにして作ることができる。先ず初めに、ソフトウェア開発者は、プログラミング言語を用いて、各フローチャートや、機能的な構成要素を実現するようなソースプログラムを記述する。この記述にあたって、ソフトウェア開発者は、プログラミング言語の構文に従い、クラス構造体や変数、配列変数、外部関数のコールを用いて、各フローチャートや、機能的な構成要素を具現するソースプログラムを記述する。
【０５０８】
記述されたソースプログラムは、ファイルとしてコンパイラに与えられる。コンパイラは、これらのソースプログラムを翻訳してオブジェクトプログラムを生成する。
コンパイラによる翻訳は、構文解析、最適化、資源割付、コード生成といった過程からなる。構文解析では、ソースプログラムの字句解析、構文解析および意味解析を行い、ソースプログラムを中間プログラムに変換する。最適化では、中間プログラムに対して、基本ブロック化、制御フロー解析、データフロー解析という作業を行う。資源割付では、ターゲットとなるプロセッサの命令セットへの適合を図るため、中間プログラム中の変数をターゲットとなるプロセッサのプロセッサが有しているレジスタまたはメモリに割り付ける。コード生成では、中間プログラム内の各中間命令を、プログラムコードに変換し、オブジェクトプログラムを得る。
【０５０９】
ここで生成されたオブジェクトプログラムは、各実施形態に示したフローチャートの各ステップや、機能的構成要素の個々の手順を、コンピュータに実行させるような1つ以上のプログラムコードから構成される。ここでプログラムコードは、プロセッサのネィティブコード、JAVAバイトコードというように、様々な種類がある。プログラムコードによる各ステップの実現には、様々な態様がある。外部関数を利用して、各ステップを実現することができる場合、この外部関数をコールするコール文が、プログラムコードになる。また、1つのステップを実現するようなプログラムコードが、別々のオブジェクトプログラムに帰属することもある。命令種が制限されているRISCプロセッサでは、算術演算命令や論理演算命令、分岐命令等を組合せることで、フローチャートの各ステップを実現してもよい。
【０５１０】
オブジェクトプログラムが生成されるとプログラマはこれらに対してリンカを起動する。リンカはこれらのオブジェクトプログラムや、関連するライブラリプログラムをメモリ空間に割り当て、これらを１つに結合して、ロードモジュールを生成する。こうして生成されるロードモジュールは、コンピュータによる読み取りを前提にしたものであり、各フローチャートに示した処理手順や機能的な構成要素の処理手順を、コンピュータに実行させるものである。かかるプログラムをコンピュータ読取可能な記録媒体に記録してユーザに提供してよい。
【０５１１】
(記録媒体のバリエーション)
各実施の形態における記録媒体は、光ディスク、半導体メモリーカード等、パッケージメディア全般を含んでいる。本実施の形態の記録媒体は予め必要なデータが記録された光ディスク（例えばBD-ROM、DVD-ROMなどの既存の読み取り可能な光ディスク）を例に説明をするが、これに限定される必要はなく、例えば、放送またはネットワークを経由して配信された本発明の実施に必要なデータを含んだ3Dコンテンツを光ディスクへ書き込む機能を有する端末装置（例えば左記の機能は再生装置に組み込まれていてもよいし、再生装置とは別の装置であってもよい）を利用して書き込み可能な光ディスク（例えばBD-RE、DVD-RAMなどの既存の書き込み可能な光ディスク）に記録し、この記録した光ディスクを本発明の再生装置に適用しても本発明の実施は可能である。
【０５１２】
(ビデオデコーダの構成)
各実施形態において、ビデオデコーダは、左目用のビデオデコーダ5a、右目用のビデオデコーダ5bのそれぞれのものが存在すると説明したが、これらを一体にしてもよい。
【０５１３】
（半導体メモリカード記録装置及び再生装置の実施形態）
各実施の形態で説明をしたデータ構造を半導体メモリーに記録する記録装置、及び、再生する再生装置の実施形態について説明する。
【０５１４】
まず、前提となる技術として、BD-ROMに記録されているデータの著作権保護の仕組みについて説明する。
BD-ROMに記録されたデータのうち、例えば著作権の保護、データの秘匿性の向上の観点からデータの一部が、必要に応じて暗号化されている場合がある。
【０５１５】
例えば、BD-ROMに記録されたデータのうち、暗号化されているデータは、例えばビデオストリームに対応するデータ、オーディオストリームに対応するデータ、またはこれらを含むストリームに対応するデータであったりする。
【０５１６】
以後、BD-ROMに記録されたデータのうち、暗号化されているデータの解読について説明をする。
半導体メモリカード再生装置においては、BD-ROM内の暗号化されたデータを解読するために必要な鍵に対応するデータ（例えばデバイスキー）が予め再生装置に記憶されている。
【０５１７】
一方、BD-ROMには暗号化されたデータを解読するために必要な鍵に対応するデータ（例えば上述のデバイスキーに対応するMKB（メディアキーブロック））と、暗号化されたデータを解読するための鍵自体を暗号化したデータ（例えば上述のデバイスキー及びMKBに対応する暗号化タイトルキー）が記録されている。ここで、デバイスキー、MKB、及び暗号化タイトルキーは対になっており、さらにBD-ROM上の通常コピーできない領域（BCAと呼ばれる領域）に書き込まれた識別子（例えばボリュームID）とも対応付けがされている。この組み合わせが正しくなければ、暗号の解読ができないものとする。組み合わせが正しい場合のみ、暗号解読に必要な鍵（例えば上述のデバイスキー、MKB及びボリュームIDを元に、暗号化タイトルキーを復号して得られるタイトルキー）を導き出すことができ、この暗号解読に必要な鍵を用いて、暗号化されたデータの解読が可能となる。
【０５１８】
装填されたBD-ROMを再生装置において再生する場合、例えばBD-ROM内の暗号化タイトルキー、MKBと対になっている（または対応する）デバイスキーが再生装置内になければ、暗号化されたデータは再生がなされない。何故ならば、暗号化されたデータの解読に必要な鍵（タイトルキー）は、鍵自体が暗号化されて（暗号化タイトルキー）BD-ROM上に記録されており、MKBとデバイスキーの組み合わせが正しくなければ、暗号の解読に必要な鍵を導き出すことができないからである。
【０５１９】
逆に暗号化タイトルキー、MKB、デバイスキー及びボリュームIDの組み合わせが正しければ、例えば上述の暗号解読に必要な鍵（デバイスキー、MKB及びボリュームIDを元に、暗号化タイトルキーを復号して得られるタイトルキー）を用いてビデオストリームがデコーダにてデコードされ、オーディオストリームがオーディオデコーダにてデコードされるように再生装置は構成されている。
【０５２０】
以上が、BD-ROMに記録されているデータの著作権保護の仕組みであるが、この仕組みは、BD-ROMに必ずしも限定されるのではなく、例えば、読込み/書込み可能な半導体メモリー（例えばSDカードなどの可搬性を有する半導体メモリーカード）に適用した場合においても、実施が可能である。
【０５２１】
半導体メモリーカード再生装置の再生手順について説明する。光ディスクでは例えば、光ディスクドライブを介してデータを読み出すように構成していたのに対し、半導体メモリーカードを用いた場合には、半導体メモリーカード内のデータを読み出すためのI/Fを介してデータを読み出すように構成すればよい。
【０５２２】
より詳細には、再生装置のスロット（図示せず）に半導体メモリーカードが挿入されると、半導体メモリーカードI/Fを経由して再生装置と半導体メモリーカードが電気的に接続される。半導体メモリーカードに記録されたデータは半導体メモリーカードI/Fを介して読み出すように構成すればよい。
【産業上の利用可能性】
【０５２３】
本発明は、立体視ビデオストリームを再生する再生機器において、立体視ビデオストリーム上に字幕やグラフィクスを重ね合わせて表示するデバイスにおいて、立体視ビデオストリームに字幕を重ね合わせた状態でスケーリングを行う立体視ビデオ再生装置に適用可能である。
【符号の説明】
【０５２４】
１００  BD-ROM
２００  再生装置
３００  リモコン
４００  テレビ
５００  液晶眼鏡
１a BDドライブ
１b ローカルストレージ
１c ネットワークインターフェース
２a,２b リードバッファ
３  仮想ファイルシステム
４  デマルチプレクサ
５a,b ビデオデコーダ
６  ビデオプレーン
７a,b イメージデコーダ
７c,d、イメージメモリ
８  イメージプレーン
９  オーディオデコーダ
１０  インタラクティブグラフィクスプレーン
１１  バックグラウンドプレーン
１２  レジスタセット
１３  静的シナリオメモリ
１４  再生制御エンジン
１５  スケーラエンジン
１６  合成部
１７  HDMI送受信部
１８  表示機能フラグ保持部
１９  左右処理記憶部
２０  プレーンシフトエンジン
２１  オフセット設定部
２２  BD-Jプラットフォーム
２２a レンダリングエンジン
２３  動的シナリオメモリ
２４  モード管理モジュール
２５  HDMVモジュール
２６  UO検知モジュール
２７a 静止画メモリ
２７b 静止画デコーダ
２８  表示モード設定イニシャル表示設定部
２９  表示モード記憶部
【図１】
2011239373.tif 000003
【図２】
2011239373.tif 000004
【図３】
2011239373.tif 000005
【図４】
2011239373.tif 000006
【図５】
2011239373.tif 000007
【図６】
2011239373.tif 000008
【図７】
2011239373.tif 000009
【図８】
2011239373.tif 000010
【図９】
2011239373.tif 000011
【図１０】
2011239373.tif 000012
【図１１】
2011239373.tif 000013
【図１２】
2011239373.tif 000014
【図１３】
2011239373.tif 000015
【図１４】
2011239373.tif 000016
【図１５】
2011239373.tif 000017
【図１６】
2011239373.tif 000018
【図１７】
2011239373.tif 000019
【図１８】
2011239373.tif 000020
【図１９】
2011239373.tif 000021
【図２０】
2011239373.tif 000022
【図２１】
2011239373.tif 000023
【図２２】
2011239373.tif 000024
【図２３】
2011239373.tif 000025
【図２４】
2011239373.tif 000026
【図２５】
2011239373.tif 000027
【図２６】
2011239373.tif 000028
【図２７】
2011239373.tif 000029
【図２８】
2011239373.tif 000030
【図２９】
2011239373.tif 000031
【図３０】
2011239373.tif 000032
【図３１】
2011239373.tif 000033
【図３２】
2011239373.tif 000034
【図３３】
2011239373.tif 000035
【図３４】
2011239373.tif 000036
【図３５】
2011239373.tif 000037
【図３６】
2011239373.tif 000038
【図３７】
2011239373.tif 000039
【図３８】
2011239373.tif 000040
【図３９】
2011239373.tif 000041
【図４０】
2011239373.tif 000042
【図４１】
2011239373.tif 000043
【図４２】
2011239373.tif 000044
【図４３】
2011239373.tif 000045
【図４４】
2011239373.tif 000046
【図４５】
2011239373.tif 000047
【図４６】
2011239373.tif 000048
【図４７】
2011239373.tif 000049
【図４８】
2011239373.tif 000050
【図４９】
2011239373.tif 000051
【図５０】
2011239373.tif 000052
【図５１】
2011239373.tif 000053
【図５２】
2011239373.tif 000054
【図５３】
2011239373.tif 000055
【図５４】
2011239373.tif 000056