(57)【特許請求の範囲】
【請求項１】
立体視再生を実現する再生装置であって、
ビデオストリームをデコードしてビデオフレームを得るビデオデコーダと、
前記ビデオフレームを格納するビデオプレーンと、
グラフィクスデータを格納するグラフィクスプレーンと、
前記グラフィクスプレーンに格納されているグラフィクスデータをビデオフレームに合成する合成部と、
前記グラフィクスプレーンのプレーンシフトを実行するシフトエンジンとを備え、
前記立体視再生を実現する場合、前記ビデオプレーンに格納されている複数ビデオフレームのそれぞれを、ライトビュービデオフレーム、及び、レフトビュービデオフレームとして出力し、
前記グラフィクスプレーンにおけるグラフィクスデータは、所定の横画素数×縦画素数の画素データから構成され、
前記プレーンシフトは、
前記レフトビュービデオフレームを出力するにあたって、前記グラフィクスプレーンにおける画素データのそれぞれの座標を、右方向及び左方向のうちどちらかに移動させるとともに、前記ライトビュービデオフレームを出力するにあたって、前記グラフィクスプレーンにおける画素データのそれぞれの座標を、レフトビューとは反対の方向に移動させた上で前記合成部に供する処理であり、かつ
前記プレーンシフトは、
前記グラフィクスデータにおける右側端部及び左側端部のうち、前記プレーンシフトにより移動させた側の前記端部を含む矩形領域を切り取り、前記移動させた側とは反対側のグラフィクスデータの端部に、透明画素からなる矩形領域を追加することでなされ、
前記プレーンシフトにおける画素データのシフト量は、記録媒体から読み出したオフセットに基づいて計算される
ことを特徴とする再生装置。
【請求項２】
前記グラフィクスプレーンにおける画素データの座標を左側に移動する場合、矩形領域が切り取られる一方の端部はグラフィクスプレーンの座標系における左側の端部であり、
前記グラフィクスプレーンにおける画素データの座標を右側に移動する場合、矩形領域が切り取られる他方の端部はグラフィクスプレーンの座標系における右側の端部である
ことを特徴とする請求項１記載の再生装置。
【請求項３】
前記再生装置は、
プレイリスト情報を前記記録媒体から読み出すと共に、前記プレイリスト情報によって参照されているAVストリームを前記記録媒体から読み出す読出手段と、
前記AVストリームからビデオストリームを多重分離する多重分離手段とを備え、
前記ビデオフレームは、ビデオストリームをデコードすることで得られ、
前記プレイリスト情報に前記オフセットが組み込まれており、
前記プレーンシフトにおける画素データのシフト量は、前記プレイリスト情報に組込まれたオフセットに基づいて計算される
ことを特徴とする請求項１記載の再生装置。
【請求項４】
前記再生装置は、
プレイリスト情報を前記記録媒体から読み出すと共に、前記プレイリスト情報によって参照されているAVストリームを前記記録媒体から読み出す読出手段を備え、
前記AVストリームに多重化されているビデオストリームのヘッダ領域には、前記オフセットが組み込まれており、
前記プレーンシフトにおける画素データのシフト量は、前記オフセットに基づいて計算される
ことを特徴とする請求項１記載の再生装置。
【請求項５】
前記記録媒体には、メタ情報が記録されており、
前記メタ情報に前記オフセットが組み込まれており、
前記記録媒体が装填された際、前記記録媒体から前記メタ情報を読み出す処理を行い、
前記プレーンシフトにおける画素データのシフト量は、
前記メタ情報に埋め込まれたオフセットに基づいて計算される
ことを特徴とする請求項１記載の再生装置。
【請求項６】
プレイリスト情報を前記記録媒体から読み出すと共に、前記プレイリスト情報によって参照されているトランスポートストリームを前記記録媒体から読み出す読出手段と、
前記トランスポートストリームを構成するパケットのヘッダ領域に前記オフセットが組み込まれており、
前記プレーンシフトにおける画素データのシフト量は、前記オフセットに基づいて計算された値である
ことを特徴とする請求項１記載の再生装置。
【請求項７】
前記グラフィクスプレーンに格納された画素データによって表現されるグラフィクスの拡大又は縮小を行うスケーラを備え、
前記プレーンシフトにおける画素データのシフト量は、
前記スケーラによる拡大又は縮小がなされたグラフィクスに対してなされる
ことを特徴とする請求項１記載の再生装置
【請求項８】
立体視再生を実現する再生装置であって、
ビデオストリームをデコードしてビデオフレームを得るビデオデコーダと、
前記ビデオフレームを格納するビデオプレーンと、
グラフィクスデータを格納するグラフィクスプレーンと、
前記グラフィクスプレーンに格納されているグラフィクスデータをビデオフレームに合成する合成部と
前記グラフィクスプレーンのプレーンシフトを実行するシフトエンジンとを備え、
前記立体視再生を実現する場合、前記ビデオプレーンに格納されている複数ビデオフレームのそれぞれを、ライトビュービデオフレーム、及び、レフトビュービデオフレームとして出力し、
前記グラフィクスプレーンにおけるグラフィクスデータは、所定の横画素数×縦画素数の画素データから構成され、
前記プレーンシフトは、
前記レフトビュービデオフレームを出力するにあたって、前記グラフィクスプレーンにおける画素データのそれぞれの座標を、右方向及び左方向のうちどちらかに移動させるとともに、前記ライトビュービデオフレームを出力するにあたって、前記グラフィクスプレーンにおける画素データのそれぞれの座標を、レフトビューとは反対の方向に移動させた上で前記合成部に供する処理であり、
前記グラフィクスプレーンに格納されるグラフィクスデータは、アプリケーションによって書き込まれたものであり、
前記アプリケーションは、奥行き値を指示し、
前記プレーンシフトにおける画素データのシフト量は、指示された奥行きに基づいて計算される
ことを特徴とする再生装置。
【請求項９】
立体視再生を実現する再生装置であって、
ビデオストリームをデコードしてビデオフレームを得るビデオデコーダと、
前記ビデオフレームを格納するビデオプレーンと、
グラフィクスデータを格納するグラフィクスプレーンと、
前記グラフィクスプレーンに格納されているグラフィクスデータをビデオフレームに合成する合成部と、
グラフィクスプレーンのプレーンシフトを実行するシフトエンジンと、を備え、
前記立体視再生を実現する場合、前記ビデオプレーンに格納されている複数ビデオフレームのそれぞれを、ライトビュービデオフレーム、及び、レフトビュービデオフレームとして出力し、
前記グラフィクスプレーンにおけるグラフィクスデータは、所定の横画素数×縦画素数の画素データから構成され、
前記プレーンシフトは、
前記レフトビュービデオフレームを出力するにあたって、前記グラフィクスプレーンにおける画素データのそれぞれの座標を、右方向及び左方向のうちどちらかに移動させるとともに、前記ライトビュービデオフレームを出力するにあたって、前記グラフィクスプレーンにおける画素データのそれぞれの座標を、レフトビューとは反対の方向に移動させた上で前記合成部に供する処理であり、前記グラフィクスプレーンに書き込まれるグラフィクスデータは、ユーザオペレーションを受け付けるものであり、前記ユーザオペレーションは、奥行き値の指定を含み、
前記プレーンシフトにおける画素データのシフト量は、指定された奥行き値に基づいて計算された値である
ことを特徴とする再生装置。
【請求項１０】
立体視再生を実現する再生装置であって、
ビデオストリームをデコードしてビデオフレームを得るビデオデコーダと、
前記ビデオフレームを格納するビデオプレーンと、
グラフィクスデータを格納するグラフィクスプレーンと、
前記グラフィクスプレーンに格納されているグラフィクスデータをビデオフレームに合成する合成部と、
前記グラフィクスプレーンのプレーンシフトを実行するシフトエンジンとを備え、
前記立体視再生を実現する場合、前記ビデオプレーンに格納されている複数ビデオフレームのそれぞれを、ライトビュービデオフレーム、及び、レフトビュービデオフレームとして出力し、
前記グラフィクスプレーンにおけるグラフィクスデータは、所定の横画素数×縦画素数の画素データから構成され、
前記プレーンシフトは、
前記レフトビュービデオフレームを出力するにあたって、前記グラフィクスプレーンにおける画素データのそれぞれの座標を、右方向及び左方向のうちどちらかに移動させるとともに、前記ライトビュービデオフレームを出力するにあたって、前記グラフィクスプレーンにおける画素データのそれぞれの座標を、レフトビューとは反対の方向に移動させた上で前記合成部に供する処理であり、
前記グラフィクスプレーンに書き込まれるグラフィクスデータは、アプリケーションによって書き込まれたものであり、
前記アプリケーションから指定されたオフセットを一次的に保存するオフセット記憶部をさらに兼ね備え、
前記プレーンシフトにおける画素データのシフト量は、1フレームに対するレフトビュー用の出力とライトビューの出力が完了した時点で、前記オフセット記憶部のオフセットに基づいて計算される
ことを特徴とする再生装置。
【請求項１１】
立体視再生を実現する再生装置であって、
ビデオストリームをデコードしてビデオフレームを得るビデオデコーダと、
前記ビデオフレームを格納するビデオプレーンと、
グラフィクスデータを格納するグラフィクスプレーンと、
前記グラフィクスプレーンに格納されているグラフィクスデータをビデオフレームに合成する合成部と、
前記グラフィクスプレーンのプレーンシフトを実行するシフトエンジンとを備え、
前記立体視再生を実現する場合、前記ビデオプレーンに格納されている複数ビデオフレームのそれぞれを、ライトビュービデオフレーム、及び、レフトビュービデオフレームとして出力し、
前記グラフィクスプレーンにおけるグラフィクスデータは、所定の横画素数×縦画素数の画素データから構成され、
前記プレーンシフトは、
前記レフトビュービデオフレームを出力するにあたって、前記グラフィクスプレーンにおける画素データのそれぞれの座標を、右方向及び左方向のうちどちらかに移動させるとともに、前記ライトビュービデオフレームを出力するにあたって、前記グラフィクスプレーンにおける画素データのそれぞれの座標を、レフトビューとは反対の方向に移動させた上で合成部に供する処理であり、
前記グラフィクスプレーンに書き込まれるグラフィクスデータは、ユーザオペレーションを受け付けるものであり、
前記ユーザオペレーションにより指定されたオフセットを一次的に保存するオフセット記憶部をさらに兼ね備え、
前記プレーンシフトにおける画素データのシフト量は、
１フレームに対するレフトビュー用の出力とライトビューの出力が完了した時点で、前記オフセット記憶部のオフセットに基づいて計算される
ことを特徴とする再生装置。
【請求項１２】
立体視再生を実現する再生装置であって、
ビデオストリームをデコードしてビデオフレームを得るビデオデコーダと、
前記ビデオフレームを格納するビデオプレーンと、
グラフィクスデータを格納するグラフィクスプレーンと、
前記グラフィクスプレーンに格納されているグラフィクスデータをビデオフレームに合成する合成部と、
前記グラフィックスプレーンに格納されているグラフィクスデータをステレオモードで立体視再生するかまたはステレオモードとしないで立体視再生するかを示す情報を記憶する記憶部と、
前記グラフィクスプレーンのプレーンシフトを実行するシフトエンジンとを備え、
前記立体視再生を実現する場合、前記ビデオプレーンに格納されている複数ビデオフレームのそれぞれを、ライトビュービデオフレーム、及び、レフトビュービデオフレームとして出力し、
前記グラフィクスプレーンにおけるグラフィクスデータは、所定の横画素数×縦画素数の画素データから構成され、
前記プレーンシフトは、
前記レフトビュービデオフレームを出力するにあたって、前記グラフィクスプレーンにおける画素データのそれぞれの座標を、右方向及び左方向のうちどちらかに移動させるとともに、前記ライトビュービデオフレームを出力するにあたって、前記グラフィクスプレーンにおける画素データのそれぞれの座標を、レフトビューとは反対の方向に移動させた上で前記合成部に供する処理であり、
前記グラフィクスプレーンは、前記記憶部にステレオモードの立体視再生をすることを示す情報が記憶されている場合、前記グラフィクスプレーンの領域のうちのレフトビュー用の領域にレフトビュー出力時に合成すべきレフトビュー用のグラフィクスデータを格納し、前記グラフィクスプレーンの領域のうちのライトビュー用の領域に、ライトビュー出力時に合成すべきライトビュー用のグラフィクスデータを格納し、
前記記憶部にステレオモードとしないで立体視再生することを示す情報が記憶されている場合、前記グラフィクスプレーンにグラフィックスデータを格納し、前記格納したグラフィックスデータに対して前記プレーンシフトがなされる
ことを特徴とする再生装置。
【請求項１３】
立体視再生を実現する再生装置であって、
ビデオストリームをデコードしてビデオフレームを得るビデオデコーダと、
前記ビデオフレームを格納するビデオプレーンと、
グラフィクスデータを格納するグラフィクスプレーンと、
前記グラフィクスプレーンに格納されているグラフィクスデータをビデオフレームに合成する合成部と、
前記グラフィックスプレーンに格納されているグラフィクスデータをステレオモードで表示するかまたはステレオモードとしないで立体視再生するかを示す情報を記憶する記憶部と、
前記グラフィクスプレーンのプレーンシフトを実行するシフトエンジンとを備え、
前記立体視再生を実現する場合、前記ビデオプレーンに格納されている複数ビデオフレームのそれぞれを、ライトビュービデオフレーム、及び、レフトビュービデオフレームとして出力し、
前記グラフィクスプレーンにおけるグラフィクスデータは、所定の横画素数×縦画素数の画素データから構成され、
前記プレーンシフトは、
前記レフトビュービデオフレームを出力するにあたって、前記グラフィクスプレーンにおける画素データのそれぞれの座標を、右方向及び左方向のうちどちらかに移動させるとともに、前記ライトビュービデオフレームを出力するにあたって、前記グラフィクスプレーンにおける画素データのそれぞれの座標を、レフトビューとは反対の方向に移動させた上で前記合成部に供する処理であり、
前記記憶部にステレオモードとしないで立体視再生することを示す情報が記憶されている場合、前記グラフィクスプレーンのレフトビュー用の領域およびライトビュー用の領域のうちのいずれか一方の領域に、グラフィックスデータを格納し、前記格納したグラフィックスデータに対して前記プレーンシフトがなされる
ことを特徴とする再生装置。
【請求項１４】
立体視再生を実現する再生方法であって、
ビデオストリームをデコードしてビデオフレームを得るビデオデコードステップと、
前記ビデオフレームをビデオプレーンに格納するビデオプレーン格納ステップと、
グラフィクスデータをグラフィクスプレーンに格納するグラフィクスプレーン格納ステップと、
前記グラフィクスプレーンに格納されているグラフィクスデータをビデオフレームに合成する合成ステップと、
前記グラフィクスプレーンのプレーンシフトを実行するプレーンシフト実行ステップとを含み、
前記立体視再生を実現する場合、前記ビデオプレーンに格納されている複数ビデオフレームのそれぞれを、ライトビュービデオフレーム、及び、レフトビュービデオフレームとして出力し、
前記グラフィクスプレーンにおけるグラフィクスデータは、所定の横画素数×縦画素数の画素データから構成され、
前記プレーンシフトは、
前記レフトビュービデオフレームを出力するにあたって、前記グラフィクスプレーンにおける画素データのそれぞれの座標を、右方向及び左方向のうちどちらかに移動させるとともに、前記ライトビュービデオフレームを出力するにあたって、前記グラフィクスプレーンにおける画素データのそれぞれの座標を、前記レフトビューとは反対の方向に移動させた上で前記合成ステップに供する処理であり、かつ
前記プレーンシフトは、
前記グラフィクスデータにおける右側端部及び左側端部のうち、前記プレーンシフトにより移動させた側の前記端部を含む矩形領域を切り取り、前記移動させた側とは反対側のグラフィクスデータの端部に、透明画素からなる矩形領域を追加することでなされ、
前記プレーンシフトにおける画素データのシフト量は、記録媒体から読み出したオフセットに基づいて計算される
ことを特徴とする再生方法。
【請求項１５】
立体視再生を実現する再生方法であって、
ビデオストリームをデコードしてビデオフレームを得るビデオデコードステップと、
前記ビデオフレームをビデオプレーンに格納するビデオプレーン格納ステップと、
グラフィクスデータをグラフィクスプレーンに格納するグラフィクスプレーン格納ステップと、
前記グラフィクスプレーンに格納されているグラフィクスデータをビデオフレームに合成する合成ステップと
前記グラフィックスプレーンに格納されているグラフィクスデータをステレオモードで立体視再生するかまたはステレオモードとしないで立体視再生するかを示す情報を記憶する記憶ステップと、
前記グラフィクスプレーンのプレーンシフトを実行するプレーンシフト実行ステップとを含み、
前記立体視再生を実現する場合、前記ビデオプレーンに格納されている複数ビデオフレームのそれぞれを、ライトビュービデオフレーム、及び、レフトビュービデオフレームとして出力し、
前記グラフィクスプレーンにおけるグラフィクスデータは、所定の横画素数×縦画素数の画素データから構成され、
前記プレーンシフトは、
前記レフトビュービデオフレームを出力するにあたって、前記グラフィクスプレーンにおける画素データのそれぞれの座標を、右方向及び左方向のうちどちらかに移動させるとともに、前記ライトビュービデオフレームを出力するにあたって、前記グラフィクスプレーンにおける画素データのそれぞれの座標を、レフトビューとは反対の方向に移動させた上で前記合成ステップに供する処理であり、
前記グラフィクスプレーンは、前記記憶ステップでステレオモードの立体視再生をすることを示す情報が記憶されている場合、前記グラフィクスプレーンの領域のうちのレフトビュー用の領域にレフトビュー出力時に合成すべきレフトビュー用のグラフィクスデータを格納し、前記グラフィクスプレーンの領域のうちのライトビュー用の領域に、ライトビュー出力時に合成すべきライトビュー用のグラフィクスデータを格納し、
前記記憶ステップでステレオモードとしないで立体視再生することを示す情報が記憶されている場合、前記グラフィクスプレーンにグラフィックスデータを格納し、前記格納したグラフィックスデータに対して前記プレーンシフトがなされる
ことを特徴とする再生方法。
【請求項１６】
立体視再生を実現する再生方法であって、
ビデオストリームをデコードしてビデオフレームを得るビデオデコードステップと、
前記ビデオフレームをビデオプレーンに格納するビデオプレーン格納ステップと、
グラフィクスデータをグラフィクスプレーンに格納するグラフィクスプレーン格納ステップと、
前記グラフィクスプレーンに格納されているグラフィクスデータをビデオフレームに合成する合成ステップと、
前記グラフィックスプレーンに格納されているグラフィクスデータをステレオモードで表示するかまたはステレオモードとしないで立体視再生するかを示す情報を記憶する記憶ステップと、
前記グラフィクスプレーンのプレーンシフトを実行するプレーンシフト実行ステップとを含み、
前記立体視再生を実現する場合、前記ビデオプレーンに格納されている複数ビデオフレームのそれぞれを、ライトビュービデオフレーム、及び、レフトビュービデオフレームとして出力し、
前記グラフィクスプレーンにおけるグラフィクスデータは、所定の横画素数×縦画素数の画素データから構成され、
前記プレーンシフトは、
前記レフトビュービデオフレームを出力するにあたって、前記グラフィクスプレーンにおける画素データのそれぞれの座標を、右方向及び左方向のうちどちらかに移動させるとともに、前記ライトビュービデオフレームを出力するにあたって、前記グラフィクスプレーンにおける画素データのそれぞれの座標を、レフトビューとは反対の方向に移動させた上で前記合成ステップに供する処理であり、
前記記憶ステップでステレオモードとしないで立体視再生することを示す情報が記憶されている場合、前記グラフィクスプレーンのレフトビュー用の領域およびライトビュー用の領域のうちのいずれか一方の領域に、グラフィックスデータを格納し、前記格納したグラフィックスデータに対して前記プレーンシフトがなされる
ことを特徴とする再生方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、グラフィクスの合成技術の技術分野に属する発明である。
【背景技術】
【０００２】
グラフィクスの合成技術とは、ビデオストリームを構成する個々のビデオフレームに、字幕やGUIを表すグラフィクススを重ね合わせて表示する技術である。この表示のための表示デバイスの技術動向として、フラットな映像だけではなく、飛び出るような映像を楽しむ立体視ディスプレイが普及し始めている。立体視ディスプレイは、さまざまな方式があるが、基本的な原理としてレフトビューとライトビューとで異なる絵を見せる仕組みを導入し、その両目間の視差を利用することにより、立体的な映像を擬似的に作る。
【０００３】
通常のフラットな映像と同等のフレームレートで立体化された映像を視聴者に見せようとすると、ディスプレイ側は、通常の２倍の応答性能が必要であり、たとえば一秒６０コマのビデオを表示するためには最低、１秒１２０コマの切り替えをしなければならない。
従って、表示されるビデオストリームは、１秒１２０コマの状態でエンコードされなければならないが、フレームレートを上げる以外の方法で立体効果を得るためには、非特許文献１のようにサイドバイサイド方式によって実現するという方法もある。また、特許文献２のようにチェッカーパターンを使った方式もある。
【０００４】
また、画面を立体表示する技術において、特許文献３のように２D画像の中のオブジェクトの数を抽出し、そのオブジェクトの数の分のレイヤーを作成し、各レイヤーの奥行きを変えて３D画像を生成する技術がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開第２００５/１１９６７５号パンフレット
【特許文献２】米国特許出願公開第２００８/００３６８５４号明細書
【特許文献３】米国特許出願公開第２００２/０１１８２７５号明細書
【非特許文献】
【０００６】
【非特許文献１】FOUNDATIONS OF THE  STEREOSCOPIC  CINEMA  A STUDY  IN  DEPTH（by  LENNY LIPTON）
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、現状、立体視ビデオを楽しむ方法は、劇場等での応用が主流であるが、家庭設置用の再生装置で映画同様の立体視ビデオストリームを再生して楽しむ利用形態も今後は普及が予想される。
BD-ROMまたはDVD-Videoで供給されるパッケージメディアでは、映画用のようにビデオの一部として予め字幕が埋め込まれている訳ではない。複数の言語に対応する複数の字幕データが、ビデオストリームと別に記録されている。これは、再生装置における言語のセッティングに応じて、適切な字幕データを動画像に合成して、表示に供するためである。
【０００８】
また、GUIを実現するグラフィクススも、複数のグラフィクスデータがビデオストリームとは別に記録されている。これも、再生装置における言語のセッティングに応じて、適切なグラフィクスを動画像に合成して、表示に供するためである。その場合、字幕、GUIを表すグラフィクスのそれぞれに、レフトビュー用データ、ライトビュー用データを準備することが望ましいが、BD-ROMは容量が限られているため、ビデオ、グラフィクスのそれぞれについて、レフトビュー用のデータ、ライトビュー用のデータを準備する訳にはいかない。
【０００９】
グラフィクススについては、レフトビュー、ライトビューのうち、一つのみしか用意できない場合、ビデオストリームに対応する動画像は立体的に見えるのに対して、グラフィクススは、平面的に見えてしまう。そして、レフトビュー用のビデオのデータおよびライトビュー用のビデオのデータを用いて立体的に飛び出ているように見える空間というのを考慮することなく、平面的なグラフィクススを重ね合わせたと仮定する。この場合、レフトビュー用のビデオのデータおよびライトビュー用のビデオのデータを用いることで、動画像がテレビ等の画面から飛び出ているように見える立体的な空間の中に、グラフィクススの平面的な画像が存在するかの如く、動画像とグラフィクスとが合成されてしまうことになる。そうすると、レフトビューのビデオデータ及びライトビューのビデオデータによって飛び出しているように見える立体的な空間の中にグラフィクススがのめりこんでいるように見え、視聴者に不快感を与えてしまう。そうした場合、不自然な立体感の差から目がついていけなくなり、結果として臨場感覚が低減する。
【００１０】
本発明の目的は、レフトビュー用のグラフィクス、ライトビュー用のグラフィクスのうち、一つのみしか記録媒体に記録されていない場合であっても、視聴者に不快感を与えないビデオとグラフィクスの合成を行なう立体視再生を実現することができる再生装置を提供することである。
【課題を解決するための手段】
【００１１】
上記課題を解決するため本発明は、立体視再生を実現する再生装置であって、
ビデオストリームをデコードしてビデオフレームを得るビデオデコーダと、
前記ビデオフレームを格納するビデオプレーンと、
グラフィクスデータを格納するグラフィクスプレーンと、
前記グラフィクスプレーンに格納されているグラフィクスデータをビデオフレームに合成する合成部と
前記グラフィクスプレーンのプレーンシフトを実行するシフトエンジンとを備え、
前記立体視再生を実現する場合、前記ビデオプレーンに格納されている複数ビデオフレームのそれぞれを、ライトビュービデオフレーム、及び、レフトビュービデオフレームとして出力し、
前記グラフィクスプレーンにおけるグラフィクスデータは、所定の横画素数×縦画素数の画素データから構成され、
前記プレーンシフトは、
前記レフトビュービデオフレームを出力するにあたって、前記グラフィクスプレーンにおける画素データのそれぞれの座標を、右方向及び左方向のうちどちらかに移動させるとともに、前記ライトビュービデオフレームを出力するにあたって、前記グラフィクスプレーンにおける画素データのそれぞれの座標を、レフトビューとは反対の方向に移動させた上で前記合成部に供する処理であり、かつ
前記プレーンシフトは、
前記グラフィクスデータにおける右側端部及び左側端部のうち、前記プレーンシフトにより移動させた側の前記端部を含む矩形領域を切り取り、前記移動させた側とは反対側のグラフィクスデータの端部に、透明画素からなる矩形領域を追加することでなされ、
前記プレーンシフトにおける画素データのシフト量は、記録媒体から読み出したオフセットに基づいて計算される
ことを特徴としている。
【発明の効果】
【００１２】
グラフィクスプレーンにおける画素データの座標を移動させることにより、グラフィクスをどれだけ手前に寄せるか、グラフィクスを画面の奥に遠退けるかを調整することができる。よって、ライトビューグラフィクス、レフトビューグラフィクスが記録媒体から供給されないために、字幕やGUIが動画像にのめり込むような立体視映像が表れた場合は、字幕やGUIの移動量を調整して、ビデオより手前に見せることで、立体視映像の体裁を整えることができる。かかる調整によって字幕やGUIの奥行きを変更するので、字幕やGUIに立体感や奥行きをだすためのレフトビューグラフィクス、ライトビューグラフィクスを準備にする必要がない。よって、容量が限られたBD-ROMを供給媒体にする場合でも、好適な立体視再生を、ユーザに実現させることができる。
【００１３】
オーサリングスタジオにおいても、立体視再生のためのライトビューグラフィクス、レフトビューグラフィクスの制作を省略することができ、映画作品の制作工数を小さくすることができる。
字幕・GUIを表すグラフィクスの奥行きは適切でない場合にも、プレーンシフトを行うことにより、出力するビデオの奥行きに応じてグラフィクスの奥行きを適切なものに変化することができるので、グラフィクスの奥行きが自然なものになり、動画像と、字幕・GUIを表すグラフィクスとで立体感の差が生じることはない。よって肉眼の負担は緩和される。
【００１４】
また、レフトビューグラフィクスス、ライトビューグラフィクスを別々にメモリ上にロードしておく必要がないので、グラフィクスとの合成画像に立体感を持たせる場合においても、再生装置のメモリ規模に負担がかかることはない。
上述の構成により本発明に係る立体視ビデオ再生装置では、レフトビューグラフィクスと、ライトビューグラフィクスとを用意せずとも、ビデオ上に字幕やGUIを立体的に表示することが可能になる。
【図面の簡単な説明】
【００１５】
【図１】記録媒体、再生装置の、使用行為についての形態を示す図である。
【図２】BD-ROM１００の内部構成を示す図である。
【図３】BD-Jオブジェクトの内部構成を示す図である。
【図４】再生装置の内部構成を示す図である。
【図５】フロントエンド部１０１〜ホストマイコン１０６内の詳細な構成を示す図である。
【図６】２D表示モード、３D表示モードの切り替えを示す図である。
【図７】各プレーンのステレオモードがオンである場合と、ステレオモードがオフである場合の合成処理の一例を示す図である。
【図８】全てのプレーンがステレオモードＯＮである場合に、バックグラウンドプレーン、ビデオプレーン、イメージプレーン、インタラクティブグラフィクスプレーンがどのように合成されるかを示す。
【図９】全てのプレーンがステレオモードＯＦＦである場合に、バックグラウンドプレーン、ビデオプレーン、インタラクティブグラフィクスプレーンがどのように合成されるかを示す。
【図１０】プレーン毎の合成結果を示す。
【図１１】全てのプレーンがステレオモードＯＮである場合における映像出力を３D用ディスプレイで見た場合の一例である。
【図１２】ビデオプレーンがステレオモードＯＮ，その他のプレーンはステレオモードステレオモードＯＦＦである場合における映像出力を、シャッター眼鏡５００で見た場合に現れる立体視映像の一例を示す。
【図１３】右方向にシフトされたレフトビュー用グラフィクスプレーン、左方向にシフトされたライトビュー用グラフィクスプレーンを示す図である。
【図１４】イメージプレーンの内部構成を示す。
【図１５】右方向のシフト、左方向のシフトがなされた後の、前景領域の画素データ及び背景領域の画素データを示す。
【図１６】インタラクティブグラフィクスプレーンの内部構成を示す。
【図１７】右方向のシフト、左方向のシフトがなされた後の、前景領域の画素データ及び背景領域の画素データを示す。
【図１８】イメージプレーンにおけるプレーンシフトの処理手順を示す図である。
【図１９】インタラクティブグラフィクスプレーンにおけるプレーンシフトの処理手順を示す図である。
【図２０】プレーンオフセットの正・負によって、字幕の奥行きがどのように変化するかを示す図である。
【図２１】グラフィクスプレーンに格納されている画素データを示す図である。
【図２２】シフトがなされた後のグラフィクスプレーンの格納内容を示す。
【図２３】BD-Jプラットフォーム部の内部構成を示す図である。
【図２４】表示モード記憶部２９における記憶内容を示す。
【図２５】タイトル間遷移が発生した場合の、表示モードの遷移を表形式で示す図である。
【図２６】タイトル内においてプレイリストの再生が切り替った場合の、表示モードの遷移を示す。
【図２７】表示モード記憶部２９の設定に用いられるAPIを示す。
【図２８】オフセット設定部の内部構成を示す。
【図２９】タイトル間表示モード設定の処理手順を示すフローチャートである。
【図３０】タイトル内表示モード設定の処理手順を示すフローチャートである。
【図３１】平面像が表示画面の位置よりも手前にあるように見える原理を説明するための図である。
【図３２】プレイリスト再生の主たる手順を示すフローチャートである。
【図３３】プレイアイテム情報に基づく再生手順を示すフローチャートである。
【図３４】3D表示モード時の３Dストリームのレフトビュー処理を示すフローチャートである。
【図３５】3D表示モード時の３Dストリームのライトビュー処理を示すフローチャートである。
【図３６】2D表示モード時における2DAVストリームの処理手順を示すフローチャートである
【図３７】ＢＤ−Ｊアプリケーションによるオフセット更新命令発行時の処理手順を示すフローチャートである。
【図３８】合成部１５の構成を示す図である。
【図３９】右方向のプレーンシフトをラインデータ毎に実行する過程を示す。
【図４０】左方向のプレーンシフトをラインデータ毎に実行する過程を示す。
【図４１】ラインメモリへの読み出しの処理手順を示すフローチャートである。
【図４２】平面像が表示画面の位置よりも奥にあるように見える原理を説明するための図である。
【発明を実施するための形態】
【００１６】
図面を参照しながら、上記課題解決手段を具備した記録媒体、及び、再生装置の実施形態について説明する。
図１は、記録媒体、再生装置の、使用行為についての形態を示す図である。本図に示すように、記録媒体の一例であるBD-ROM１００、再生装置２００は、リモコン３００、テレビ４００、液晶眼鏡５００と共にホームシアターシステムを構成し、ユーザによる使用に供される。
【００１７】
BD-ROM１００は、上記ホームシアターシステムに、例えば映画作品を供給する。
再生装置２００は、テレビ４００と接続され、BD-ROM１００を再生する。
リモコン３００は、階層化されたGUIに対する操作をユーザから受け付ける機器であり、かかる操作受け付けのため、リモコン１００は、GUIを構成するメニューを呼び出すメニューキー、メニューを構成するGUI部品のフォーカスを移動させる矢印キー、メニューを構成するGUI部品に対して確定操作を行う決定キー、階層化されたメニューをより上位のものにもどってゆくための戻りキー、数値キーを備える。
【００１８】
テレビ４００は、映画作品の再生映像を表示したり、メニュー等を表示することで、対話的な操作環境をユーザに提供する。
液晶眼鏡５００は、液晶シャッタと、制御部とから構成され、ユーザの両目における視差を用いて立体視を実現する。液晶眼鏡５００の液晶シャッタは、印加電圧を変えることにより、光の透過率が変化する性質を有する液晶レンズを用いたシャッタである。液晶眼鏡５００の制御部は、再生装置から送られるライトビュー用の画像とレフトビュー用の画像の出力の切り替えの同期信号を受け、この同期信号に従って、第１の状態、第２の状態の切り替えを行う。
【００１９】
第１の状態とは、ライトビューに対応する液晶レンズが光を透過しないように印加電圧を調節し、レフトビューに対応する液晶レンズが光を透過するように印加電圧を調節した状態であり、この状態において、レフトビュー用の画像が視聴に供されることになる。
第２の状態とは、ライトビューに対応する液晶レンズが光を透過するように印加電圧を調節し、レフトビューに対応する液晶レンズが光を透過しないように印加電圧を調節した状態であり、この場合、液晶シャッタゴーグルは、ライトビュー用の画像を視聴に供することができる。
【００２０】
一般にライトビューと、レフトビューは、その位置の差に起因して、ライトビューから見える像とレフトビューから見える像には見え方に若干の差がある。この差を利用して人間は目に見える像を立体として認識できるのである。そこで、液晶眼鏡５００が、以上のような第１の状態、第２の状態の切り替えを、ライトビュー用の画像とレフトビュー用の画像の出力の切り替えタイミングに同期させれば、ユーザは、平面的な表示が立体的に見えると錯覚する。次に、ライトビュー映像、レフトビュー映像を表示するにあたっての時間間隔について説明する。
【００２１】
具体的には、平面表示の画像において、ライトビュー用の画像とレフトビュー用の画像には人間の視差に相当する見え方の差に相当する程度の差があり、これらの画像を短い時間間隔で切り替えて表示することにより、あたかも立体的な表示がなされているように見えるのである。
この短い時間間隔というのは、上述の切り替え表示により人間が立体的に見えると錯覚する程度の時間であればよい。
【００２２】
以上がホームシアターシステムについての説明である。
続いて再生装置２００が再生の対象としている、記録媒体について説明する。再生装置２００により、再生されるのは、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)が存在する。
【００２８】
以下、これらのファイルについて説明する。
先ず初めに、拡張子"m２ts"が付与されたファイルについて説明する。拡張子"m２ts"が付与されたファイルは、MPEG-TS (TransportStream)形式のデジタルAVストリームであり、ビデオストリーム、1つ以上のオーディオストリーム、グラフィクスストリームを多重化することで得られる。ビデオストリームは映画の動画部分を、オーディオストリームは映画の音声部分をそれぞれ示している。３D用のストリームの場合はm２tsの中に左目用と右目用の両方のデータを入れることができるし、左目用と右目用に別々にm２tsを用意することができる。ストリームに使われる容量を少なくするため、レフトビュービデオストリームとライトビュービデオストリームが相互参照をするようなコーデック（たとえば、MPEG-４ AVC  MVC）を使うことが望ましい。そのようなコーデックで圧縮符号化されたビデオストリームを、MVCビデオストリームと呼ぶ。
【００２９】
MVCビデオストリームには、ベースビュービデオストリーム、エンハンスドビュービデオストリームという種別がある。ベースビューストリームとは、レフトビュー又はライトビューを構成するビデオストリームのうち、平面視表示を実現しうるものである。一方は、ライトビュー又はレフトビューを構成するビデオストリームのうち、ベースビューストリームではないものを"エンハンスドビューストリーム"という。エンハンスドビューストリームを構成するピクチャデータは、ベースビューストリームを構成するピクチャデータとのフレーム相関性に基づき圧縮符号化されている。
拡張子"mpls"が付与されたファイルは、PlayList(PL)情報を格納したファイルである。PL情報は、AVClipを参照してプレイリストを定義する情報である。
【００３０】
本実施の形態では、BD-ROM上のプレイリスト（PL）の構成フォーマットから再生対象のストリームに３D用のストリームが存在するかを特定できる。
プレイリスト情報は、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プレーヤクラスを基にして仮想マシンのヒープメモリ上に生成される実際のデータのことである。
【００３２】
以後、２D用ストリームのみを含むストリームを"２Dストリーム"、２D，３D用のストリームの両方を含むストリームを"３Dストリーム"と呼ぶ。
さらに、用語定義として２Dプレイリストは２D再生用のストリームのみが含まれるものであり、３Dプレイリストには２Dストリームに加えて、3D立体視用のストリームも含まれるものである。
拡張子"clpi"が付与されたファイルは、AVClipのそれぞれに1対1に対応するClip情報である。管理情報故に、Clip情報は、AVClipにおけるストリームの符号化形式、フレームレート、ビットレート、解像度等の情報や、GOPの先頭位置を示すEP＿mapをもっている。以上のClip情報及びPL情報は、"静的シナリオ"に分類される。
続いて、拡張子BD-Jオブジェクトを付したファイルについて説明する。拡張子BD-Jオブジェクトを付したファイルは、BD-Jオブジェクトを格納したファイルである。BD-Jオブジェクトは、PlayList情報により定義されるAVClip列と、アプリケーションとの関連付けにより、タイトルを定義する情報である。
【００３３】
このJava（登録商標）アプリケーションの実体にあたるのが、図２におけるBDMVディレクトリ配下のJARディレクトリに格納されたJava（登録商標）アーカイブファイル(YYYYY.jar)である。
アプリケーションは例えばJava（登録商標）アプリケーションであり、仮想マシンのヒープ領域(ワークメモリとも呼ばれる)にロードされた1つ以上のxletプログラムからなる。このワークメモリにロードされたxletプログラム、及び、データから、アプリケーションは構成されることになる。
METAディレクトリに格納されたメタファイル（ZZZZZ.xml）には、ディスクに入っている映像作品に関する様々な情報が格納されている。メタファイルに格納されている情報としては、ディスクのディスク名及び画像、ディスクが誰によって作成されたかの情報、各タイトルに関わるタイトル名等がある。以上がBD-ROM１００についての説明である。メタファイルは、必須のファイルではなく、このファイルが格納されていないBD-ROMもある。      
【００３４】
以上がBD-ROMについての説明である。
続いて、BD-Jオブジェクトについて説明する。図３は、BD-Jオブジェクトの内部構成を示す図である。本図に示すように、BD-Jオブジェクトは、「アプリケーション管理テーブル」、「GUI管理テーブル」、「プレイリスト管理テーブル」から構成される。
以下、これらの構成要素について説明する。
【００３５】
「アプリケーション管理テーブル」は、タイトルを生存区間としたアプリケーションシグナリングを、再生装置に行わせるためのテーブルである。引き出し線bj1は、アプリケーション管理テーブルの内部構成をクローズアップして示している。この引き出し線に示すように、アプリケーション管理テーブルは、BD-Jオブジェクトに対応するタイトルがカレントタイトルになった際、動作させるべきアプリケーションを特定する『アプリケーション識別子』と、『制御コード』とを含む。制御コードは、AutoRunに設定された場合、このアプリケーションをヒープメモリにロードした上、自動的に起動する旨を示し、Presentに設定された場合、このアプリケーションをヒープメモリにロードした上、他のアプリケーションからのコールを待って、起動すべき旨を示す。
【００３６】
「GUI管理テーブル」は、動作中のアプリケーションが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の何れかに設定することができる。
【００３７】
引き出し線bj3は、プレイリスト管理テーブルの内部構成をクローズアップして示している。プレイリスト管理テーブルは、BD-Jオブジェクトに対応するタイトルがカレントタイトルになった際、デフォルトで起動されるべきプレイリストの指定を含む。引き出し線bj4は、デフォルト起動プレイリストの内部構成をクローズアップして示している。引出線bj4に示すように、デフォルト起動プレイリストを指定する情報として、3Dプレイリスト1920×1080、3Dプレイリスト1280×720、2Dプレイリスト1920×1080、2Dプレイリスト1280×720、2Dプレイリスト720×576、2Dプレイリスト720×480の指定が可能になる。
【００３８】
図４は、再生装置の内部構成を示す図である。本図において再生装置を構成する主だった部品は、フロントエンド部１０１、システムLSI１０２、メモリデバイス１０３、バックエンド部１０４、不揮発性メモリ１０５、ホストマイコン１０６、ネットワークI／F１０７である。
フロントエンド部１０１は、データ入力源である。後述する図において、フロントエンド部１０１は例えば、BDドライブ１１０、ローカルストレージ１１１を含む。
【００３９】
システムLSI１０２は、論理素子から構成され、再生装置中核をなす。少なくとも、デマルチプレクサ４、ビデオデコーダ５a,b、イメージデコーダ７a,b、オーディオデコーダ９、再生状態／設定レジスタ(PSR)セット１２、再生制御エンジン１４、合成部１５プレーンシフトエンジン１９、オフセット設定部２０といった構成要素は、このシステムLSIの内部に組み込まれることになる。
【００４０】
メモリデバイス１０３は、SDRAM等のメモリ素子のアレイによって構成される。
バックエンド部１０４は、再生装置内部と、他の装置との接続インターフェイスである。
不揮発性メモリ１０５は、読み書き可能な記録媒体であり、電源が供給されなくても、記録内容を保持できる媒体であり、後述する表示モード記憶部２９に記憶されている表示モードのバックアップに利用される。かかる不揮発性メモリ１０５には、例えばフラッシュメモリ、FeRAMなどを利用することができる。
【００４１】
ホストマイコン１０６は、MPU、ROM、RAMから構成される再生装置の中核である。後述する図の具体的な構成要素のうち、BD-Jプラットフォーム２２、コマンドインタプリタ２５は、このホストマイコン１０６に包含されることになる。
ネットワークインターフェース１０７は、再生装置の外部と通信を行うためのものであり、インターネットでアクセス可能なサーバにアクセスしたり、ローカルネットワークで接続されたサーバにアクセスしたりすることが可能である。例えば、インターネット上に公開されたBD-ROM追加コンテンツのダウンロードに用いられたり、コンテンツが指定するインターネット上のサーバとの間でデータ通信を行うこうことでネットワーク機能を利用したコンテンツの再生を可能としたりする。BD-ROM追加コンテンツとは、オリジナルのBD-ROMにないコンテンツで、例えば追加の副音声、字幕、特典映像、アプリケーションなどである。BD-Jプラットフォームからネットワークインターフェース１０７を制御することができ、インターネット上に公開された追加コンテンツをローカルストレージ１１１にダウンロードすることができる。
【００４２】
上述したように、フロントエンド部１０１は例えば、BDドライブ１１０、ローカルストレージ１１１を含む。
BDドライブ１１０は例えば、半導体レーザ（図示せず）、コリメートレンズ（図示せず）、ビームスプリッタ（図示せず）、対物レンズ（図示せず）、集光レンズ（図示せず）、光検出器（図示せず）を有する光学ヘッド（図示せず）を備える。半導体レーザから出射された光ビームは、コリメートレンズ、ビームスプリッタ、対物レンズを通って、光ディスクの情報面に集光される。集光された光ビームは、光ディスク上で反射／回折され、対物レンズ、ビームスプリッタ、集光レンズを通って、光検出器に集光される。光検出器にて集光された光の光量に応じて、生成された信号がBD-ROMから読み出されたデータに対応する。
【００４３】
ローカルストレージ１１１は、ビルドインメディア、リムーバブルメディアを備え、ダウンロードしてきた追加コンテンツやアプリケーションが使うデータなどの保存に用いられる。追加コンテンツの保存領域はBD-ROM毎に分かれており、またアプリケーションがデータの保持に使用できる領域はアプリケーション毎に分かれている。また、ダウンロードした追加コンテンツをどのようにBD-ROM上のデータとマージされるか、マージ規則が記載されたマージ管理情報もこのビルドインメディア、リムーバブルメディアに保存される。
【００４４】
ビルドインメディアとは例えば再生装置に内蔵されたハードディスクドライブ、メモリなどの書き込み可能な記録媒体である。
リムーバブルメディアとは、例えば可搬性を有する記録媒体であり、好適にはSDカードなどの可搬性を有する半導体メモリーカードである。
リムーバブルメディアを半導体メモリーカードとしたときを例に説明をすると、再生装置にはリムーバブルメディアを装着するためのスロット（図示せず）およびスロットに装着されたリムーバブルメディアを読み取るためのインターフェース（例えばメモリーカードI/F）が備えられており、スロットに半導体メモリを装着すると、リムーバブルメディアと再生装置とが電気的に接続され、インターフェース（例えばメモリーカードI/F）を利用して、半導体メモリに記録されたデータを電気信号に変換して読み出すことが可能となる。
【００４５】
これらフロントエンド部１０１〜ホストマイコン１０６内の構成要素を更に詳細に説明する。図５は、フロントエンド部１０１〜ホストマイコン１０６内の詳細な構成を示す図である。本図に示すように、フロントエンド部１０１〜ホストマイコン１０６内には、リードバッファ１,２、仮想ファイルシステム３、デマルチプレクサ４、ビデオデコーダ５a,b、ビデオプレーン６、イメージデコーダ７a,b、イメージメモリ７c,d、イメージプレーン８、オーディオデコーダ９、インタラクティブグラフィクスプレーン１０、バックグラウンドプレーン１１、再生状態／設定レジスタ(PSR)セット１２、静的シナリオメモリ１３、再生制御エンジン１４、合成部１５、HDMI送受信部１６、左右処理記憶部１７、表示機能フラグ保持部１８、プレーンシフトエンジン１９、オフセット設定部２０、BD-Jプラットフォーム２２、動的シナリオメモリ２３、モード管理モジュール２４、HDMVモジュール２５、UO検知モジュール２６、静止画メモリ２７a、静止画デコーダ２７b、表示モード設定イニシャル表示設定部２８、表示モード記憶部２９から構成される。
【００４６】
リードバッファ１は、BDドライブ１１０か読み出されたベースビューストリームを構成するエクステントを構成するソースパケットを一旦格納しておき、転送速度を調整した上、デマルチプレクサ４に転送するためのバッファであり、上述したような"RB1"という規模をもつ。
リードバッファ２は、BDドライブ１１０か読み出されたエンハンスドビューストリームを構成するエクステントを構成するソースパケットを一旦格納しておき、転送速度を調整した上、デマルチプレクサ４に転送するためのバッファであり、上述したような"RB2"という規模をもつ。
【００４７】
仮想ファイルシステム３は、追加コンテンツと共にローカルストレージ１１１にダウンロードされたマージ管理情報を元に、ローカルストレージに格納された追加コンテンツと装填したBD-ROM上のコンテンツをマージさせた、仮想的なBD-ROM（仮想パッケージ）を構築する。
HDMVモードの動作主体であるコマンドインタプリタやBD-Jモードの動作主体であるBD-Jプラットフォームからは、仮想パッケージとオリジナルBD-ROMを区別なく参照することができる。仮想パッケージ再生中、再生装置はBD-ROM上のデータとローカルストレージ上のデータの両方を用いて再生制御を行うことになる。
【００４８】
デマルチプレクサ４は、ソースパケットデパケッタイザー、PIDフイルタから構成され、再生すべきストリーム(ストリームは構築した仮想パッケージ（装填したBD-ROMおよび装填したBD-ROMに対応するローカルストレージ上のデータ）に含まれる)に対応するパケット識別子の指示を受け付けて、当該パケット識別子に基づくパケットフィルタリングを実行する。パケットフィルタリングにあたって、左右処理記憶部３１のフラグを基に、レフトビュービデオストリーム、ライトビュービデオストリームのうち、表示方式フラグに対応したビデオストリームを抜き出し、ビデオデコーダ５a、ビデオデコーダ５ｂに転送する。
【００４９】
再生対象のストリームから分離されたストリームが字幕ストリームである場合、デマルチプレクサ４は、分離された字幕ストリームをイメージメモリに書き込む。例えば３Ｄ字幕ストリーム（レフトビュー用の字幕ストリーム、ライトビュー用の字幕ストリーム）がストリームに含まれている場合には、レフトビュー用の字幕ストリームをイメージメモリ７ｃに書き込み、ライトビュー用の字幕ストリームをイメージメモリ７ｄに書き込む。
【００５０】
また、例えば字幕ストリームが２Ｄの字幕ストリーム（平面表示のために用いる字幕ストリーム）がストリームに含まれている場合には、２Ｄの字幕ストリームをイメージメモリ７ｃに書き込む。
ビデオデコーダ５aは、デマルチプレクサ４から出力されたTSパケットを復号して非圧縮形式のピクチャをレフトビュービデオプレーン６（図５のビデオプレーン６における符号（Ｌ）で示したもの）に書き込む。
【００５１】
ビデオデコーダ５ｂは、デマルチプレクサ４から出力されたエンハンスドビュービデオストリームを復号してTSパケットを復号して非圧縮形式のピクチャをライトビュービデオプレーン６（図５のビデオプレーン６における符号（Ｒ）で示したもの）に書き込む。
ビデオプレーン６は例えば、1920×2160(1280×1440)といった解像度によってピクチャデータを格納することができるプレーンメモリであり、1920×1080(1280×720)の解像度をもつ左目用プレーン（図５のビデオプレーン６における符号（Ｌ）で示したもの）、1920×1080(1280×720)の解像度をもつ右目用プレーン（図５のビデオプレーン６における符号（Ｒ）で示したもの）を有する。
【００５２】
ビデオデータの表示モードが３Ｄ表示モードであって、かつステレオモードがオンである場合には、ビデオデコーダ５ａがレフトビュー用のビデオストリームをデコードし、左目用プレーン（図５に示したビデオプレーン６における符号（Ｌ）で示したもの）に書き込むとともに、ビデオデコーダ５ｂがライトビュー用のビデオストリームをデコードし、右目用プレーン（図５に示したビデオプレーン６における符号（Ｒ）で示したもの）に書き込む。
【００５３】
また、ビデオデータの表示モードが３Ｄ表示モードであって、かつステレオモードがオフである場合には、ビデオデコーダ５ａは、例えばレフトビュー用のビデオストリームをデコードし、左目用プレーン（図５に示したビデオプレーン６における符号（Ｌ）で示したもの）および右目用プレーン（図５に示したビデオプレーン６における符号（Ｒ）で示したもの）に書き込む。
【００５４】
また、ビデオデータの表示モードが２Ｄ表示モードである場合は、例えばデマルチプレクサ４は、２Ｄビデオストリームをビデオデコーダ５ａへ送り、ビデオデコーダ５ａは、デコードした２Ｄビデオデータを左目用ビデオプレーン（図５に示したビデオプレーン６における符号（Ｌ）で示したもの）に書き込むように構成されている。
図示したビデオプレーン６に含まれる、左目用プレーン、右目用プレーンは物理的に分離したメモリを例示しているが、これに限定される必要はなく、例えば１つのメモリ内に左目用プレーンの領域、右目用プレーンの領域を設け、この領域に対応するビデオデータを書き込むような構成であっても良い。
【００５５】
イメージデコーダ７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アプリケーションがレンダリングエンジン２１を利用して描画したグラフィクスデータを格納することができる記憶領域を有するグラフィクスプレーンであり、例えば1920×1080(1280×720)の解像度をもつデータを格納できるような記憶領域を有する左目用プレーン（図５のインタラクティブグラフィクスプレーン１０において、符号（Ｌ）を付したもの）、1920×1080(1280×720)の解像度をもつデータを格納できるような記憶領域を有する右目用プレーン（図５のインタラクティブグラフィクスプレーン１０において、符号（Ｒ）を付したもの）を有する。
【００６２】
インタラクティブグラフィクスの表示モードが例えば３Ｄ表示モードであって、かつステレオモードがオンである場合、左目から見えるインタラクティブグラフィクスス（左目用インタラクティブグラフィクスス）、右目から見えるインタラクティブグラフィクススであって、左目用インタラクティブグラフィクススとは異なるインタラクティブグラフィクスス（右目用インタラクティブグラフィクスス）を描画するプログラムがBD-Jアプリケーションに組み込まれていることを意味する。
【００６３】
この描画プログラムによって描画される左目用インタラクティブグラフィクスス及び右目用インタラクティブグラフィクススは、立体的なグラフィクススに見えるように互いに見える角度が異なっているようなグラフィクススである。
左目用インタラクティブグラフィクスス及び右目用インタラクティブグラフィクススを表示に供する場合、BD-Jアプリケーションはレンダリングエンジン２１を利用して、左目用プレーン（図５のインタラクティブグラフィクスプレーン１０において、符号（Ｌ）を付したもの）にレフトビュー用インタラクティブグラフィクススを書き込み、右目用プレーン（図５のインタラクティブグラフィクスプレーン１０において、符号（Ｒ）を付したもの）にライトビュー用インタラクティブグラフィクススを書き込む。
【００６４】
また、インタラクティブグラフィクスの表示モードが例えば３Ｄ表示モードであって、かつステレオモードがオフである場合、BD-Jアプリケーションはレンダリングエンジン２１を利用してレフトビュー用のインタラクティブグラフィクスをインタラクティブグラフィクスプレーン１０の符号（Ｌ）、符号（Ｒ）を付したものにそれぞれ書き込む。
インタラクティブグラフィクスの表示モードが２Ｄ表示モードである場合、BD-Jアプリケーションはレンダリングエンジン２１を利用して、２Ｄインタラクティブグラフィクスをインタラクティブグラフィクスプレーン１０（より具体的には、インタラクティブグラフィクスプレーン１０の符号（Ｌ）を付したもの）に書き込むように構成されている。
【００６５】
図示したインタラクティブグラフィクスプレーン１０は左目用の領域（符号（Ｌ）を付したもの）、右目用の領域（符号（Ｒ）を付したもの）が１つのプレーンメモリ内に予め設けられている例を示しているが、これに限定される必要はなく、例えばインタラクティブグラフィクスプレーン１０の左目用の領域（符号（Ｌ）を付したもの）、右目用の領域（符号（Ｒ）を付したもの）を物理的に分離したものを用いてもよい。
【００６６】
インタラクティブグラフィクスプレーン１０に格納される"グラフィクスデータ"は、個々の画素がR値,G値,B値,α値によって定義されるグラフィクスである。インタラクティブグラフィクスプレーン１０に書き込まれるグラフィクスは、主にGUIを構成するために使われる目的を持つイメージやウィジェットである。
画素を表すデータに違いがあるものの、イメージデータ及びグラフィクスデータは、グラフィクスデータという表現で包括される。本願が対象としているグラフィクスプレーンには、イメージプレーン８、インタラクティブグラフィクスプレーン１０の２種類があり、単に"グラフィクスプレーン"と呼ぶ場合、イメージプレーン８、インタラクティブグラフィクスプレーン１０の双方又はどちらかを指し示すものとする。
【００６７】
静止画メモリ２７ａは、構築した仮想パッケージから取り出された背景画となる静止画データを格納する。
バックグラウンドプレーン１１は、例えば1920×1080(1280×720)といった解像度によって、背景画となるべき静止画データを格納することができるプレーンメモリであり、具体的には、1920×1080(1280×720)の解像度をもつ左目用プレーン（図５に示すバックグラウンドプレーン１１における符号（Ｌ）を付したもの）、1920×1080(1280×720)の解像度をもつ右目用プレーン（図５に示すバックグラウンドプレーン１１における符号（Ｒ）を付したもの）を有する。
背景画の表示モードが例えば３Ｄ表示モードであって、かつステレオモードがオンである場合、静止画デコーダ２７ｂは、静止画メモリ２７ａに格納された、レフトビュー用の静止画データ、ライトビュー用の静止画データをデコードして、レフトビュー用の静止画データを左目用プレーン（図５に示すバックグラウンドプレーン１１における符号（Ｌ）を付したもの）、ライトビュー用の静止画データを右目用プレーン（図５に示すバックグラウンドプレーン１１における符号（Ｒ）を付したもの）にそれぞれ書き込む。
背景画の表示モードが例えば３Ｄ表示モードであって、かつステレオモードがオフである場合、静止画メモリ２７ａに格納された３Ｄ背景画（レフトビュー用の静止画データ、ライトビュー用の静止画データ）のうち、レフトビュー用の静止画データを静止画デコーダ２７ｂがデコードし、左目用プレーン（図５に示すバックグラウンドプレーン１１における符号（Ｌ）を付したもの）および右目用プレーン（図５に示すバックグラウンドプレーン１１における符号（Ｒ）を付したもの）に書き込む。
背景画の表示モードが例えば２Ｄ表示モードである場合、静止画メモリ２７ａに格納された２Ｄの静止画データを静止画デコーダ２７ｂがデコードし、左目用プレーン（図５に示すバックグラウンドプレーン１１における符号（Ｌ）を付したもの）に書き込むように構成されている。
図示したバックグラウンドプレーン１１は、左目用の領域（符号（Ｌ）を付したもの）、右目用の領域（符号（Ｒ）を付したもの）が１のプレーンメモリ内に予め設けられている例を示しているが、これに限定される必要はなく、例えばバックグラウンドプレーン１１の左目用の領域（符号（Ｌ）を付したもの）、右目用の領域（符号（Ｒ）を付したもの）を物理的に分離したプレーンメモリを用いてもよい。
なお、図５に示したビデオプレーン６、イメージプレーン８、インタラクティブグラフィクススプレーン１０、バックグラウンドプレーン１１は左目用のデータを格納するための記憶領域、右目用のデータを格納するための記憶領域を設けるような構成を開示したが、これに限定される必要はなく、例えば１つの記憶領域を左目用／右目用の記憶領域として交互に利用するような構成であっても良い。
再生状態／設定レジスタ(Player Status/Setting Register)セット１２は、プレイリストの再生状態を格納する再生状態レジスタ、再生装置におけるコンフィグレーションを示すコンフィグレーション情報を格納する再生設定レジスタ、コンテンツが利用する任意の情報を格納できる汎用レジスタを含む、レジスタの集まりである。プレイリストの再生状態とは、プレイリストに記載されている各種AVデータ情報の中のどのAVデータを利用しているか、プレイリストのどの位置（時刻）を再生しているかなどの状態を現す。
【００６８】
プレイリストの再生状態が変化した際は、再生制御エンジン１４がPSRセット１２に対し、その内容を格納する。また、HDMVモードの動作主体であるコマンドインタプリタもしくはBD-Jモードの動作主体であるJava（登録商標）プラットフォームが実行しているアプリケーションからの指示により、アプリケーションが指定した値を格納したり、格納された値をアプリケーションに渡したりすることが可能である。
【００６９】
静的シナリオメモリ１３は、カレントプレイリスト情報やカレントクリップ情報を格納しておくためのメモリである。カレントプレイリスト情報とは、BD-ROMまたはビルドインメディアドライブ、リムーバブルメディアドライブからアクセスできる複数プレイリスト情報のうち、現在処理対象になっているものをいう。カレントクリップ情報とは、BD-ROMまたはビルドインメディアドライブ、リムーバブルメディアドライブからアクセスできる複数クリップ情報のうち、現在処理対象になっているものをいう。
【００７０】
再生制御エンジン１４は、HDMVモードの動作主体であるコマンドインタプリタ、BD-Jモードの動作主体であるJava（登録商標）プラットフォームからの関数呼び出しに応じて、AV再生機能、プレイリストの再生機能を実行する。AV再生機能とは、DVDプレーヤ、CDプレーヤから踏襲した機能群であり、再生開始、再生停止、一時停止、一時停止の解除、静止画機能の解除、再生速度を即値で指定した早送り、再生速度を即値で指定した巻戻し、音声切り替え、副映像切り替え、アングル切り替えといった処理である。プレイリスト再生機能とは、このAV再生機能のうち、再生開始や再生停止をカレントプレイリストを構成するカレントプレイリスト情報、カレントクリップ情報に従って行うことをいう。
【００７１】
ディスクの挿入というイベントが発生した場合、再生制御エンジン１２による再生処理の対象となるプレイリスト及びAVストリームは、BD-ROM上のカレントシナリオに記載されているデフォルト起動プレイリスト（AutoStartPlaylist）とデフォルト起動ストリームである。AVストリーム再生は、ユーザオペレーション（例えば再生ボタン）をトリガーとして開始する場合もあれば、端末内の何かのイベントをトリガーとして自動的に開始する場合もある。
【００７２】
合成部１５は、インタラクティブグラフィクスプレーン、イメージプレーン８、ビデオプレーン、バックグラウンドプレーン１１の格納内容を合成する。
インタラクティブグラフィクスプレーン、イメージプレーン８、ビデオプレーンとバックグラウンドプレーン１１は別々のレイヤー構成になっており、必ず、下から、バックグラウンドプレーン１１、ビデオプレーン、イメージプレーン８、インタラクティブグラフィクスプレーンの順に格納されたデータの合成（重ね合わせ）を行う。つまり、たとえ平面のグラフィクスを立体視ビデオの上に重ね合わせるケースにおいても、バックグラウンドプレーン１１に格納された背景画の上にビデオプレーンに格納されたビデオを合成し、その合成画像の上にイメージプレーンに格納された字幕を合成し、この合成画像の上に、インタラクティブグラフィクスプレーンに格納されたグラフィクス合成して表示する。そうしないと、グラフィクスの部分がビデオにめり込んだ形になり、不自然になってしまうからである。
【００７３】
また合成部１５は、スケーラを具備しており、シフトされたプレーンの合成を行う際にプレーンのスケーリングを行い、大きく見せる、あるいは小さく見せることも可能である。
スケーリングを実行する意義は以下の通りである。実世界では手前にきたオブジェクトは大きく写り、奥に表示されたオブジェクトは小さく見えるが、プレーンのシフトのみではオブジェクトのサイズがかわらないまま手前や奥に表示されることになる。そのような場合は視聴者にとっては不快感を与えてしまう。こういった不快感をなくすためである。例えば、シフト幅を大きくして手前に表示させる場合はイメージプレーン８の字幕やインタラクティブグラフィクスプレーン１０の画像をスケーリングによって大きくすることが考えられる。
【００７４】
HDMI送受信部１６は、例えばHDMI規格（HDMI:High Definition Multimedia Interface）に準拠したインターフェイスを含み、再生装置とHDMI接続する装置（この例ではテレビ４００）とHDMI規格に準拠するように送受信を行うものであり、ビデオに格納されたピクチャデータと、オーディオデコーダ９によってデコードされた非圧縮のオーディオデータとを、HDMI送受信部１６を介してテレビ４００に伝送する。テレビ４００は、例えば立体視表示に対応しているかに関する情報、平面表示可能な解像度に関する情報、立体表示可能な解像度に関する情報を保持しており、再生装置からHDMI送受信部１６を介して要求があると、テレビ４００は要求された必要な情報（例えば立体視表示に対応しているかに関する情報、平面表示可能な解像度に関する情報、立体表示可能な解像度に関する情報）を再生装置へ返す。このように、HDMI送受信部１６を介することで、テレビ４００が立体視表示に対応しているかどうかの情報を、テレビ４００から取得することができる。
【００７５】
左右処理記憶部１７は、現在の出力処理がレフトビュー用の出力か、または、ライトビュー用の出力かを記憶する。左右処理記憶部１７のフラグは、図１に示した再生装置と接続する表示デバイス（図１の例ではテレビ）に対する出力が、レフトビュー出力であるか、ライトビュー出力であるかを示す。レフトビュー出力をしている間、左右処理記憶部１７のフラグはレフトビュー出力を示すフラグに設定される。また、ライトビュー出力をしている間、左右処理記憶部１７のフラグはライトビュー出力を示すフラグに設定される。
【００７６】
表示機能フラグ保存部１８は、再生装置は再生装置が３Dの表示が可能か否かの区別を示す、3D表示機能フラグを保存している。
プレーンシフトエンジン１９は、左右処理記憶部３１のフラグと、グラフィクスプレーンの奥行き情報とを基に、イメージプレーン８及び／またはインタラクティブグラフィクスプレーン１０に格納されている画素データの座標を一定の方向（例えば表示画面の水平方向）にシフトする。この場合、左目用のインタラクティブグラフィクスプレーンと右目用のインタラクティブグラフィクスプレーンが同一の描画オブジェクトを利用したものであっても、シフトによって、表示画面よりも手前に飛び出した位置に表示しているかのように表示することも可能となる。つまり、イメージプレーンやインタラクティブグラフィクスプレーンの描画に用いた字幕やGUI等のグラフィクスのオブジェクト自体が立体視用の素材でなくても、表示画面よりも手前の位置に飛び出るエフェクトを得ることが可能になる。ビデオを２D表示させたまま、グラフィクスのみ立体効果を持たせたい場合、レフトビュービデオ、及び、ライトビュービデオの組みを用いるのではなく、レフトビュー及びライトビューの両方にレフトビュー用のビデオを用いて、その上に上記シフト済みイメージプレーンやインタラクティブグラフィクスプレーンを合成する。
【００７７】
プレーンシフトの対象は、イメージプレーン８、インタラクティブグラフィクスプレーン１０の双方である必然性はなく、インタラクティブグラフィクスプレーン１０のみをプレーンシフトの対象にしたり、イメージプレーン８のみをプレーンシフトの対象にしてもよい。
プレーンシフトエンジン１９は、プレーンシフトを行うにあたって、どの方向にどれだけシフトを行うかを示す"プレーンオフセット"（オフセット値）を記憶する記憶領域を有している。例えば、再生装置２００がプレーンオフセットの値を設定できるセットアップ機能を兼ね備えている場合、プレーンシフトエンジン１９は、セットアップ機能を用いて設定した値を保存する。前記オフセット値は例えば、イメージプレーン用とインタラクティブグラフィクスプレーン用の２つをもち、プレーンシフトを行う対象に応じてその２つのオフセット値を使い分けても良い。セットアップ機能を兼ね備えていない場合、"０"がデフォルトで指定されるようにしてもよい（この場合は表示画面の位置に字幕、ＧＵＩなどのグラフィクススが表示され、表示画面から飛び出るような効果はない）。
【００７８】
レンダリングエンジン２１は、Java（登録商標）２D，OPEN-GLといった基盤ソフトウェアを備え、BD-JモードにおいてはBD-Jプラットフォーム２２からの指示に従って、グラフィクススや文字列をインタラクティブグラフィクスプレーン１０に書き込む。またＨＤＭＶモードにおいて、レンダリングエンジン２１は、字幕に対応するストリーム（字幕ストリーム）以外のグラフィクスストリームから抽出したグラフィクスデータ（例えば、入力ボタンに対応するグラフィクススデータ）をレンダリングし、インタラクティブグラフィクスプレーン１０に書き込む。
【００７９】
BD-Jプラットフォーム２２は、BD-Jモードの動作主体であるJava（登録商標）プラットフォームであり、Java（登録商標）2Micro＿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に実行させる。
【００８０】
動的シナリオメモリ２３は、カレント動的シナリオを格納しておき、HDMVモードの動作主体であるHDMVモジュール、BD-Jモードの動作主体であるJava（登録商標）プラットフォームによる処理に供されるメモリである。カレント動的シナリオとは、BD-ROMまたはビルドインメディア、リムーバブルメディアに記録されているIndex.bdmv、BD-Jオブジェクト、ムービーブジェクトのうち、現在実行対象になっているものをいう。
【００８１】
表示モード管理モジュール２４は、BD-ROMまたはビルドインメディアドライブ、リムーバブルメディアドライブから読み出されたIndex.bdmvを保持して、モード管理及び分岐制御を行う。モード管理モジュール２４によるモード管理とは、動的シナリオを、BD-Jプラットフォーム２２、HDMVモジュール２５のどちらに実行させるかという、モジュールの割り当てである。
【００８２】
HDMVモジュール２５は、HDMVモードの動作主体となるDVD仮想プレーヤであり、HDMVモードの実行主体となる。本モジュールは、コマンドインタプリタを具備し、ムービーオブジェクトを構成するナビゲーションコマンドを解読して実行することでHDMVモードの制御を実行する。ナビゲーションコマンドは、DVD-Videoと似たようなシンタックスで記述されているため、かかるナビゲーションコマンドを実行することにより、DVD-Videoライクな再生制御を実現することができる。
【００８３】
UO検知モジュール２６は、GUIに対するユーザオペレーションを受け付ける。かかるGUIによって受け付けられるユーザオペレーションには、BD-ROMに記録されているタイトルのうち、どれを選択するかというタイトル選択、字幕選択、音声選択がある。特に、立体視再生特有のユーザオペレーションとして、立体視映像の奥行き感のレベルを受け付けることがある。例えば、奥行き感が、遠い、普通、近い等の3つのレベルを受け付けることがあるし、奥行き感は何cm、何mmというように、数値入力によって奥行き感のレベルを受け付けることもある。
【００８４】
静止画メモリ２７aは、BD-ROM（または構築された仮想パッケージ）から読み出された静止画データを格納する。
静止画デコーダ２７bは、リードバッファ２７aに読み出された静止画データをデコードして、非圧縮の背景画データをバックグラウンドプレーン１１に書き込む。
表示モード記憶部２９は、表示モード、ステレオモードを記憶する。再生装置が３D表示機能フラグとして３D表示が可能と設定されている場合、表示モード記憶部２９に保存された端末設定である表示モードは、２D、３Dの何れかに切り替えることが可能となる。以後、表示モードが"３D"と示されている状態を"３D表示モード"と呼び、表示モードが"２D"と示されている状態を"２D表示モード"と呼ぶ。
【００８５】
再生装置が３D表示モードの場合、各プレーンは、ステレオモードONの状態、ステレオモードOFFの状態の何れかの状態をとる。ステレオモードのONとOFFの違いはプレーンの合成方法の違いでもある。
"ステレオモードON"とは、再生装置はレフトビュー用の映像とライトビュー用の映像を別々のものを表示するような合成を行う3D表示モードである。
【００８６】
"ステレオモードOFF"とは、再生装置はレフトビュー用の映像とライトビュー用の映像を同一のものを表示するような合成を行う3D表示モードである。つまり、両目で視聴した場合は立体感がない映像（平面映像）になる。ただし、例えばグラフィクスプレーン８においてはプレーンオフセットによる水平方向へのシフトにより、グラフィクスプレーンに格納され表示される平面的なグラフィクススデータ（字幕データ）を表示画面よりも手前または奥に位置するように見せることが可能である。このことは、ビデオプレーンに記憶されたビデオデータ、インタラクティブグラフィクススプレーンに記憶されたインターラクティブグラフィクススデータ、バックグラウンドプレーン１１に記憶された背景画データにおいて、"ステレオモードOFF"である場合にオフセットを調節すれば、同様のことが言える。
【００８７】
以上説明をしたように"３D表示モード"において、"ステレオモードON"と"ステレオモードOFF"の２つがあり、"３D表示モード"にける"ステレオモードON"においてはレフトビュー用のデータとライトビュー用のデータ（例えば左目から見える像と右目から見える像とは見える角度の異なる像）であり、これらをそれぞれレフトビュー用のプレーンとライトビュー用のプレーンに格納し、格納された像を同期信号に従って表示することにより、立体感のある像を表示することが可能である。
【００８８】
また、"３D表示モード"における"ステレオモードOFF"においてはレフトビュー用のデータとライトビュー用のデータのうちのいずれか一方のデータ（本実施の形態では例えばレフトビュー用のデータ）のみを用いて、これをレフトビュー用のプレーンとライトビュー用のプレーンのそれぞれに格納し、オフセットを調節することにより、平面的な像を表示画面よりも手前または奥に位置するように表示することが可能である。
【００８９】
本実施の形態においては、"ステレオモードON"、"ステレオモードOFF"、はプレーン毎（つまり、ビデオプレーン６、グラフィクススプレーン８、インターラクティブグラフィクススプレーン１０、バックグラウンドプレーン１１毎）に設定できるように構成している。
また、"２D表示モード"というのは通常の表示つまり、表示画面の位置に対応する像が表示するものである。この場合、デフォルトで利用されるデコーダ、プレーンを予め決められておりこのデコーダ、プレーンを利用して合成画像を表示するように構成がなされている。
【００９０】
例えば、"２D表示モード"の場合、ビデオデコーダ５ａが左目用ビデオプレーン（図５に示したビデオプレーン６における符号（Ｌ）で示したもの）に書き込んだ２Ｄビデオデータ、イメージデコーダ７aが左目用プレーン（図５に示したイメージプレーン８における符号（Ｌ）で示したもの）に書き込んだ２Ｄグラフィクススデータ（字幕データ）、BD-Jアプリケーションがレンダリングエンジン２１を利用して、左目用プレーン（図５のインタラクティブグラフィクスプレーン１０において、符号（Ｌ）を付したもの）書き込んだ２Ｄインタラクティブグラフィクスス、静止画デコーダ２７ｂが左目用プレーン（図５に示すバックグラウンドプレーン１１における符号（Ｌ）を付したもの）に書き込んだ２Ｄの静止画データを合成するように構成されている。
【００９１】
このとき、合成の順序は下から２Ｄ静止画データ、２Ｄビデオデータ、２Ｄグラフィクススデータ（字幕データ）、２Ｄインタラクティブグラフィクススの順で合成する。このときビデオデータが全画面表示である場合、２Ｄ静止画データは合成しないように構成をしても良い。表示モード記憶部２９の2D表示モードか3D表示モードを示すフラグは再生状態レジスタ１２で保存してもよいし、表示モード記憶部２９と再生状態レジスタ１２の両方で保存しても良い。
【００９２】
表示モード設定イニシャル表示設定部２８は、BD-Jプラットフォーム部に供せられるカレントタイトルにおけるBD-Jオブジェクトに基づき、表示モード、解像度の設定を行う。
以上が再生装置の内部構成についての説明である。次に、本実施の形態における２D表示モード、３D表示モードの切り替えの詳細について説明する。
図６は、２D表示モード、３D表示モードの切り替えを示す図である。本図の左側には２D表示モード時の出力モデルが示されている。左側のプレーン構成では、ビデオプレーン６、イメージプレーン８(図中の"Subtitle")８、インタラクティブグラフィクスプレーン１０、バックグラウンドプレーン１１、及び出力のそれぞれ一つで構成される。
【００９３】
よって、２D表示モード時はレフとビューとライトビューは共通のものを利用することになり、結果として全く同じ出力を見ることになる。
本図の右側には３D表示モード時の出力モデルが表示されている。再生装置が３D表示モードの場合、ビデオプレーン６、イメージプレーン８(図中の"Subtitle")８、インタラクティブグラフィクスプレーン１０はそれぞれレフトビュー用と、ライトビュー用とに分けられており、これらに再生すべきピクチャデータ、グラフィクスデータが格納される。
【００９４】
よって３D表示モード時はレフトビューとライトビュー出力が別々に存在し、左目と右目に異なるイメージを提供することが可能になり、その視差であたかも画面内の立体物が手前に飛び出しているかのような３Dのエフェクトを引き出すことが可能である。
（立体効果の指定）
図７は、３Ｄ表示モードにおいて、各プレーンのステレオモードが全てオンである場合と、ステレオモードが全てオフである場合の合成処理の一例を示す図である。
【００９５】
図７では各プレーンがステレオモードを統一させている場合の例を示しているが、プレーン毎にステレオモードのＯＮ／ＯＦＦが変更可能である。
左側は、３Ｄ表示モードにおいて、各プレーンのステレオモードが全てオンである場合のプレーン構成を示し、右側は、３Ｄ表示モードにおいて、各プレーンのステレオモードが全てオフである場合のプレーン構成を示す。
【００９６】
第１段目は、バックグラウンドプレーン１１と、その合成前の出力とを示す。
第２段目は、ビデオストリームと、その合成前の出力とを示す。
第３段目は、イメージプレーン８と、その合成前の出力とを示す。
第４段目は、インタラクティブグラフィクスプレーン１０と、その合成前の出力とを示す。
【００９７】
ステレオモードがONの場合、バックグラウンドプレーンは、（Ｌ）が付された領域で示す左目用バックグラウンドプレーンがレフトビュー用の背景データの書き込みに使われ、（Ｒ）が付された領域で示す右目用バックグラウンドプレーンがライトビュー用の背景データの書き込まれ、左目用／右目用の合成時にそれぞれ使われる。バックグラウンドプレーン１１のステレオモードがOFFの場合はアプリケーションによりレフトビュー用の背景データがバックグラウンドプレーンの、（Ｌ）、（Ｒ）を付した領域にそれぞれ書き込まれるので、ライトビュー用の背景データは表示に影響しない。
【００９８】
ステレオモードがONの場合、ビデオストリームのうち、左目用のビデオのピクチャデータがレフトビュー用のビデオプレーンに格納される。また、ビデオストリームのうち、右目用のビデオのピクチャデータがライトビュー用のビデオプレーンに格納される。ビデオプレーンのステレオモードがOFFの場合は、左目用のビデオのピクチャデータがレフトビュー用のビデオプレーンとライトビュー用のビデオプレーンの両方に格納される。
【００９９】
ステレオモードがONの場合、イメージプレーンは（Ｌ）が付された領域で示す左目用イメージプレーンにレフトビュー用のイメージデータが書き込まれ、（Ｒ）が付された領域で示す右目用イメージプレーンがライトビュー用のイメージデータの書き込まれ、左目用／右目用の合成時にそれぞれ使われる。
イメージプレーン８のステレオモードがOFFの場合、ライトビュー用のイメージデータに対応する字幕グラフィクスは表示に影響しない。また、ステレオモードがOFFの場合、イメージプレーン８の内容は、右方向又は左方向にシフトされた内容になる(図中のShifed Left)
ステレオモードがONの場合、インタラクティブグラフィクスプレーン１０は（Ｌ）が付された領域で示す左目用インタラクティブグラフィクスプレーンにレフトビュー用のインタラクティブグラフィクスが書き込まれ、（Ｒ）が付された領域で示す右目用インタラクティブグラフィクスプレーンにライトビュー用のインタラクティブグラフィクスが書き込まれ、左目用／右目用の合成時にそれぞれ使われる。
【０１００】
インタラクティブグラフィクスプレーン１０のステレオモードがOFFの場合はアプリケーションによるライト用のインタラクティブグラフィクスは表示に影響しない。また、ステレオモードがOFFの場合、インタラクティブグラフィクスプレーン１０の内容は、右方向又は左方向にシフトされた内容になる(図中のShifed Left)。
図８は、全プレーンがステレオモードONである場合に、バックグラウンドプレーン１１、ビデオプレーン、イメージプレーン８、インタラクティブグラフィクスプレーン１０がどのように重ねあわせられるかを示す。ステレオモードにおいては、レフトビューとしてレフトビューバックグラウンドプレーンu4、ビデオストリームから読み出されたレフトビュービデオu3、、イメージプレーン８のレフトビューグラフィクスu2、インタラクティブグラフィクススプレーン１０のレフトビューグラフィクスu1が順に合成されることがわかる。
【０１０１】
また、ライトビューとしてライトビューバックグラウンドプレーンu8、ビデオストリームから読み出されたライトビュービデオu7が、イメージプレーン８のライトビューグラフィクスu6、インタラクティブグラフィクスプレーン１０ののライトビューグラフィクスu5が順に合成されることがわかる。
図９は、全プレーンがステレオモードOFFである場合に、バックグラウンドプレーン１１、ビデオプレーン、イメージプレーン８、インタラクティブグラフィクスプレーン１０がどのように重ねあわせられるかを示す。ステレオモードOFF時においては、レフトビューとしてレフトビューバックグラウンドプレーンr4、ビデオストリームから読み出されたレフトビュービデオr2、イメージプレーン８のレフトビューグラフィクスを一定の水平方向（図では右）にシフトしたShifted Leftグラフィクスr3、インタラクティブグラフィクスプレーン１０のレフトビューグラフィクスを一定の水平方向（図では右）にシフトしたShifted Leftグラフィクスr1が順に合成さることがわかる。
【０１０２】
また、ライトビューとしてライトビューバックグラウンドプレーンr8、ビデオストリームから読み出されたレフトビュービデオr6、イメージプレーン８のレフトビューグラフィクスをレフトビューとは逆の方向（図では左）にシフトしたShifted Leftグラフィクスr7、インタラクティブグラフィクスプレーン１０のレフトビューグラフィクスをレフトビューとは逆の方向（図では左）にシフトしたShifted Leftグラフィクスr5が順に合成されることがわかる。
【０１０３】
図７〜９に示す例では、ステレオモードがオフの状態において、バックグラウンドとビデオのオフセットを調整しない（つまりオフセットが０、より具体的には表示画面の位置に表示されている）例を説明しているが、これは上述の説明を簡単にするためである。従って上述の説明に限定される必要はなく、例えばグラフィクススイメージ（字幕）よりも奥にビデオが位置するように、かつ背景データがビデオよりも奥に位置するようにオフセットを調整して表示しても良い。
【０１０４】
次に、本実施の形態におけるステレオモードの切り替えの詳細について説明する。
図１０は、プレーン毎の合成結果を示す。
６L、６Rは、ビデオプレーンの一例を示すものである。女性の顔の向きの違いから、レフトビュー用のストリームとライトビューのストリームは違った角度から撮られたものであることがうかがえる。尚、図１０における人物の顔の向きや位置のズレは模式的なものであり、立体視再生を実現するための正確な顔の向きや位置を表している訳ではない。
【０１０５】
イメージプレーン８における"I  love  you"の字は字幕データがイメージデコーダによってデコードされた後のイメージである。
インタラクティブグラフィクスプレーン１０における太陽形状のGUI部品は、BD-Jアプリケーションがインタラクティブグラフィクスプレーン１０に描画したものである。
６LLは、合成後の出力レフトビューであり、６RRは、合成後に出力される出力ライトビューである。６LLのレフトビュー用映像では"I  love  you"の字幕が右にずれて合成されていることがわかる。また、６RRのライトビュー映像では"I  love  you"の字幕が左にずれて合成されている。
【０１０６】
図１１は、全プレーンがステレオモードON時における映像出力を３D用ディスプレイで見た場合の一例である。
ライトビューとレフトビュー用の映像は、例えばシャッター眼鏡５００を通してフィルタされ、各目に違う映像を映し出す。ここで注目すべき点は、ビデオストリーム映像が左右の画像が重ねられて立体化されているのみでなく、"I  love  you"の字幕や太陽形状のGUI部品も左目と右目で異なっていることである。このように、予め左目用と右目用の両方のコンテンツが用意されている場合はステレオモードをＯＮにすることにより、自然とビデオ、字幕やGUI部品全て奥行きが保たれた構成になることがわかる。
【０１０７】
図１２は、ビデオプレーンはステレオモードＯＮだが、それ以外のプレーンは全てステレオモードＯＦＦにした場合の映像出力を、シャッター眼鏡５００で見た場合に現れる立体視映像の一例を示す。左目用と右目用の両方の字幕やGUIが用意されていないディスク（２Ｄ前提で作られた過去のコンテンツ、ディスクの容量が足りなくてそうせざるを得ないディスク等）に関してはグラフィクスプレーンのステレオモードはＯＦＦにせざるを得ない。図１２はビデオプレーンがステレオモードＯＮのため、レフトビュー用のストリームとライトビューのストリームは違った角度から撮られたものであることがうかがえる。一方、イメージプレーン８及びインタラクティブグラフィクスプレーン１０は、ステレオモードＯＦＦであり、右方向及び左方向にシフトしたものがビデオプレーンに合成され、片目用の字幕・GUIのみしか存在しなくても立体ビデオの手前に表示することが可能となり、視聴者への目の労度を低減することが可能なことが伺える。
【０１０８】
（立体視効果を実現するための制御）
立体視効果の実現のため、グラフィクスプレーンをずらす方向について説明する。
プレーンシフトエンジン１９がシフトする方向はグラフィクスプレーンを画面の奥にめりこむ立体感をもたせるか、画面から飛び出させる立体感を持たせるかによって異なる。本実施形態ではレフトビュー用映像として右方向にずらす、つまり画面から飛び出させるに立体感を持たせることを前提とする。
【０１０９】
右方向にシフトした場合の各ピクセルデータの座標と、左方向にシフトした場合の各ピクセルデータの座標との差分を"シフト量"という。このシフト量は、立体視においては、イメージプレーン８、又は、インタラクティブグラフィクスプレーン１０に、どの程度の奥行きをもたせるかという奥行き値によって算出されるべきである。また、立体視再生において、両目の視差として採用することができる何等のパラメータから、導出することができる。
【０１１０】
また、上述したようなシフト量だけ、左右に、グラフィクスプレーン内の画素データを移動させるためのパラメータを"プレーンオフセット"と呼ぶ。シフト量はスカラ量であるのに対して、プレーンオフセットは、正負の値を持つベクトルであり、現在の状態から、右方向及び左方向のどちらの向きに、どれだけ画素データの座標を移動させるかを指し示す。以降の説明においてプレーンシフトは、このプレーンオフセットに従って実行されるものとする。プレーンオフセットには、シフト量に正負の符号を付けたものものもあるし、何等かの関数式による計算を施した上、シフト量として採用できるものもある。
【０１１１】
続いて、プレーンオフセットの正負の意味合いについて説明する。
グラフィクスプレーンのプレーンオフセットは、ライトビューのグラフィクスプレーンに格納されている画素データの座標、及び、レフトビュー用のグラフィクスプレーンに格納されている画素データの座標を何画素だけずらすかという画素数を示す。
グラフィクスプレーンの映像が画面から飛び出る効果をもたらしたい場合はプレーンの合成の前にレフトビュー用のグラフィクスプレーンをプレーンオフセットに示されるシフト量の分だけ右側にシフトする。そして、ライトビューのグラフィクスプレーンをプレーンオフセットに示されるシフト量の分だけ左側にシフトする。本実施の形態ではプレーンオフセットの符号が"正の符号"の場合は飛び出る効果をもたらすこととする。
【０１１２】
グラフィクスプレーンの映像が画面の奥に表示される効果をもたらしたい場合はプレーンの合成の前にレフトビュー用のグラフィクスプレーンをプレーンオフセットに示されるシフト量の分だけ左にシフトする。そして、ライトビューのグラフィクスプレーンをプレーンオフセットに示されるシフト量の分だけ右にシフトする。本実施の形態ではプレーンオフセットの符号が"負の符号"の場合は奥に表示される効果をもたらすこととする。
【０１１３】
プレーンオフセットが"０"の場合、グラフィクスプレーンのシフトは行わない、つまり、不作為を意味するものとなる。
図１３は、右方向にシフトされたShifted Leftグラフィクスプレーン、左方向にシフトされたShifted Leftグラフィクスプレーンを示す図である。
本図（ａ）に示すように、イメージプレーン８における右方向シフト後のグラフィクスプレーンは、左側に透明領域が存在しており、右側の端部が切り取られている。同じくインタラクティブグラフィクスプレーン１０における右方向シフト後のグラフィクスプレーンは、左側に透明領域が存在しており、右側の端部が切り取られている。
【０１１４】
同じく（ｂ）に示すように、イメージプレーン８における左方向シフト後のグラフィクスプレーンは、右側に透明領域が存在しており、左側の端部が切り取られている。同じくインタラクティブグラフィクスプレーン１０における左方向シフト後のグラフィクスプレーンは、右側に透明領域が存在しており、左側の端部が切り取られている。
図１４は、イメージプレーン８の内部構成を示す。解像度が1920×1080に設定されている場合、同図（ａ）に示すように、イメージプレーン８は横1920×縦1080の、８ビット長の記憶素子からなる。これは1920×1080の解像度で、1画素当たり８ビットのピクセルコードを格納できるメモリアロケーションを意味する。記憶素子に記憶されている８ビットのピクセルコードは、カラールックアップテーブルを用いた色変換によって、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値、８ビットのR値、８ビットの透明度αから構成される。
【０１１８】
（ｂ）は、インタラクティブグラフィクスプレーン１０に格納されている画素データを示す。本図に示すように、インタラクティブグラフィクスプレーン１０に格納されているグラフィクスデータは、前景部分(太陽のコロナを表す三角形)にあたる画素データ、背景部分にあたる画素データから構成される。ここで背景部分にあたる記憶素子には、透明色を示すR,G,B,α値が格納されており、この部分には、ビデオプレーンとの合成時において、ビデオプレーンにおける動画像が透けて見えるようになる。一方、前景部分にあたる記憶素子には、透明色以外を示すR,G,B,α値が格納されており、この透明色以外のR,G,B,α値によって、グラフィクスが描かれることになる。
【０１１９】
合成部１５によるプレーン合成時において、透明画素にあたる部分には、バックグラウンドグラフィクスプレーン、ビデオプレーン、イメージプレーン８の内容が透けて見えるようになり、かかる透明部分の存在によって、プレーン合成が可能になる。
以上で、右方向のシフト、左方向のシフトがなされた後の、前景領域の画素データ及び背景領域の画素データについての説明を終える。
【０１２０】
図１７は、右方向のシフト、左方向のシフトがなされた後の、前景領域の画素データ及び背景領域の画素データを示す。本図（ａ）は、シフト前の画素データであり、本図（ｂ）は右方向のシフト後の画素データである。この場合、太陽のコロナを表す三角形が右方向に移動していることがわかる。本図（ｃ）は、左方向のシフトがなされた後の画素データである。太陽のコロナを表す三角形が左方向に移動していることがわかる。
【０１２１】
図１８は、イメージプレーン８におけるプレーンシフトの処理手順を示す図である
（ａ）は、イメージプレーン８から生成された、左方向シフト後のグラフィクスプレーンと、右方向シフト後のグラフィクスプレーンとを示す。
（ｂ）は、右方向のシフトを示す。本図に示すように水平方向の右方向へのシフト方法は次の、(1-1)(1ー2)(1ー3)のようにして行う。(1-1).イメージプレーン８の右端領域を切り取る。(1-2).イメージプレーン８に存在する画素データの位置を、上述したように右へ水平方向にプレーンオフセットに示されるシフト量分だけずらす。(1-3).イメージプレーン８の最も左端に、透明領域を追加する。
【０１２２】
（ｃ）は、左方向のシフトを示す。本図に示すように水平方向の左方向へのシフト方法は次の、(2-1)(2ー2)(2ー3)のようにして行う。(2-1).イメージプレーン８の左端領域を切り取る。(2-2).イメージプレーン８における各画素データの位置を左へ水平方向にプレーンオフセットに示されるシフト量分だけずらす。(1-3).イメージプレーン８の右端に透明領域を追加する。
【０１２３】
続いて、プレーンオフセットの正負の意味合いについて説明する。
３D表示モード中、かつイメージプレーン８のステレオモードがOFFの場合、再生装置はプレーンオフセットに示されるシフト量に基づいてプレーンを次のように処理した上で合成を行う。
プレーンオフセットが正の符号が設定されている場合はプレーンの合成の前にレフトビュー用のイメージプレーン８をプレーンオフセットに示されるシフト量の分だけ右にシフトする。そして、ライトビュー用のイメージプレーン８をプレーンオフセットに示されるシフト量の分だけ左にシフトする。
【０１２４】
プレーンオフセットが負の符号が設定されている場合はプレーンの合成の前にレフトビュー用のイメージプレーン８をプレーンオフセットに示されるシフト量の分だけ左にシフトする。そして、ライトビュー用のイメージプレーン８をプレーンオフセットに示されるシフト量の分だけ右にシフトする。
図１９は、インタラクティブグラフィクスプレーン１０におけるプレーンシフトの処理手順を示す図である
（ａ）は、インタラクティブグラフィクスプレーン１０から生成された、左方向シフト後のグラフィクスプレーンと、右方向シフト後のグラフィクスプレーンとを示す。
【０１２５】
（ｂ）は、右方向のシフトを示す。本図に示すように水平方向の右方向へのシフト方法は次の、(1-1)(1ー2)(1ー3)のようにして行う。(1-1).インタラクティブグラフィクスプレーンの右端領域を切り取る。(1-2).インタラクティブグラフィクスプレーンに存在する画素データの位置を、上述したように右へ水平方向にプレーンオフセットに示されるシフト量だけずらす。(1-3).インタラクティブグラフィクスプレーンの最も左端に、透明領域を追加する。
【０１２６】
（ｃ）は、左方向のシフトを示す。本図に示すように水平方向の左方向へのシフト方法は次の、(2-1)(2ー2)(2ー3)のようにして行う。(2-1).インタラクティブグラフィクスプレーンの左端領域を切り取る。
(2-2).インタラクティブグラフィクスプレーンにおける各画素データの位置を左へ水平方向にプレーンオフセットのシフト量分だけずらす。(2-3).インタラクティブグラフィクスプレーンの右端に透明領域を追加する。
【０１２７】
プレーンシフトにあたって、右端又は左端から切り取られる領域、右端又は左端に追加される領域の大きさについて説明する。上述したようなシフトにおけるプレーンオフセットは、右目と、左目との視差に応じた値である。ということは、グラフィクスプレーンの端部から切り取られる領域、グラフィクスプレーンの端部に追加される透明領域の横画素数は、プレーンオフセットに、相当する画素数でなければならない。
【０１２８】
よってグラフィクスプレーンの端部から切り取られる領域の横画素数は、プレーンオフセットのシフト量に相当する画素数になる。また、透明領域の縦画素数は、グラフィクスプレーンの高さを示す画素数になる。
同様に、グラフィクスプレーンの端部に追加される透明領域の横画素数は、プレーンオフセットのシフト量に相当する画素数になる。この透明領域の縦画素数は、グラフィクスプレーンの高さを示す画素数になる。
【０１２９】
以上で、イメージプレーン８、インタラクティブグラフィクスプレーン１０におけるプレーンシフトの処理手順についての説明を終える。次に、プレーンオフセットがもつ符号の正負の意味合いについて説明する。
３D表示モード中、かつグラフィクスプレーンのステレオモードがOFFの場合、再生装置はプレーンオフセットに基づいてプレーンを次のように処理した上で合成を行う。
【０１３０】
プレーンオフセットが正の符号が設定されている場合はプレーンの合成の前にレフトビュー用のグラフィクスプレーンをプレーンオフセットのシフト量の分だけ右にシフトする。そして、ライトビューのグラフィクスプレーンをプレーンオフセットのシフト量の分だけ左にシフトする。
プレーンオフセットが負の符号が設定されている場合はプレーンの合成の前にレフトビュー用のグラフィクスプレーンをプレーンオフセットのシフト量の分だけ左にシフトする。そして、ライトビューのグラフィクスプレーンをプレーンオフセットのシフト量の分だけ右にシフトする。
【０１３１】
図２０は、プレーンオフセットの大小によって、字幕の飛び出し度合がどのように変化するかを示す図である。
同図（ａ）（ｂ）において、手前の方は、ライトビュー出力時にシフトしたシフト後のグラフィクスプレーンを用いて出力されるライトビュー用のグラフィクススイメージを示す。奥の方は、レフトビュー出力時にシフトしたシフト後のグラフィクスプレーンを用いて出力されるレフトビュー用のグラフィクススイメージを示す。
【０１３２】
本図（ａ）は、プレーンオフセットの符号が正（レフトビュー用のグラフィクススイメージを右方向へずらし、ライトビュー用のグラフィクススイメージを左方向へずらす）である場合を示す。プレーンオフセットが正の値であると、レフトビュー出力時の字幕がライトビュー出力時の字幕より右の位置に見えるようになる。つまり、
輻輳点（焦点位置）がスクリーンより手前にくるので、字幕も手前に見えるようになる。
【０１３３】
本図（ｂ）は、プレーンオフセットの符号が負である場合を示す。負の値であると、レフトビュー出力時の字幕がライトビューの出力時の字幕より左の位置に見えるようになる、つまり、輻輳点（焦点位置）がスクリーンより奥にゆくので、字幕も奥に見えるようになる。
以上で、プレーンオフセットの正と負の切り替えによって、字幕が表示画面の位置よりも飛び出るか奥にゆくかを変化する方法についての説明を終える。
図３１は、プレーンオフセットの符号が正（レフトビュー用のグラフィクススイメージを右方向へずらし、ライトビュー用のグラフィクススイメージを左方向へずらす）である場合、像が表示画面よりも手前にあるように見える原理を説明するための図である。
【０１３４】
図において、丸で示したものは、表示画面上に表示される像である。
まず、オフセットがない場合、右目に見える像も左目に見える像も同じ位置であるため、両目を用いて、この像を見たときの焦点位置は、表示画面上に位置する（図３１（ａ））。
一方、３Ｄ表示モードのステレオモードがオフの場合において、左目に見える像はオフセットが０の場合に比べて右側の位置に見えるようにする。このとき右目には液晶シャッタメガネにより何も見えないようにする。一方、右目に見える像は、オフセットが０の場合に比べて左側の位置に見えるようにする、このとき左目には液晶シャッタメガネにより何も見えないようにする（図３１（ｂ））。
【０１３５】
人間は両目を用いて焦点をあわせてその焦点位置に像があるように認識する。従って、液晶シャッタメガネにより左目に像が見える状態と、右目に像が見える状態とを交互に短い時間間隔で切り替えると、人間の両目は表示画面よりも手前の位置に焦点位置を、合わせようとし、結果として表示画面よりも手前に位置する焦点位置に像があるように錯覚を起こす（図３１（ｃ））。
図４２は、プレーンオフセットの符号が負（レフトビュー用のグラフィクススイメージを左方向へずらし、ライトビュー用のグラフィクススイメージを右方向へずらす）である場合、像が表示画面よりも奥にあるように見える原理を説明するための図である。
図４２において、丸で示したものは、表示画面上に表示される像である。まず、オフセットがない場合、右目に見える像も左目に見える像も同じ位置であるため、両目を用いて、この像を見たときの焦点位置は、表示画面上に位置する（図４２（ａ））。
【０１３６】
一方、３Ｄ表示モードのステレオモードがオフの場合において、左目に見える像はオフセットが０の場合に比べて左側の位置に見えるようにする。このとき右目には液晶シャッタメガネにより何も見えないようにする。一方、右目に見える像は、オフセットが０の場合に比べて右側の位置に見えるようにする、このとき左目には液晶シャッタメガネにより何も見えないようにする（図４２（ｂ））。
【０１３７】
液晶シャッタメガネにより左目に像が見える状態と、右目に像が見える状態と互に短い時間間隔で切り替えると、人間の両目は表示画面よりも奥の位置に焦点位置を、合わせようとし、結果として表示画面よりも奥の位置に像があるように錯覚を起こす（図４２（ｃ））。
以上の説明は、グラフィクススプレーンに書き込まれたグラフィクスイメージについて説明をしたが、インターラクティブグラフィクススプレーン、ビデオプレーン、バックグラウンドプレーンについて上述のオフセットの概念を適用すれば同様のことが言えるのは言うまでもない。
（グラフィクスプレーンの記憶素子における画素データの移動）
上述したようなシフトによって、グラフィクスプレーンの記憶素子における画素データが、どのように移動するかを示す。グラフィクスデータは、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の記憶素子に格納されており、座標(1918,0)に存在する画素データがアドレス07A7の記憶素子に格納されており、座標(0,1)に存在する画素データがアドレス07A9の記憶素子に格納されている。つまり、グラフィクスを構成する複数のラインが、連続アドレスになるように、グラフィクスデータが格納されていることがわかる。こうすることで、これらの連続アドレスが付された記憶素子に対して順次、DMA転送を行うことで、これらの画素データをバースト的に読み出すことが可能になる。
【０１４０】
図２２は、シフトがなされた後のグラフィクスプレーンの格納内容を示す。
同図（ａ）は、プレーンオフセットが"3"に設定されていて、右方向にシフトされたグラフィクスプレーンを示す。プレーンオフセットが"3"であるから、アドレス0004の記憶素子には、グラフィクスプレーン座標系における座標(0,0)の画素データが、アドレス0005の記憶素子には、グラフィクスプレーン座標系における座標(1,0)の画素データが、アドレス0006の記憶素子には、グラフィクスプレーン座標系における座標(2,0)の画素データが格納されていることがわかる。
【０１４１】
またアドレス07ACの記憶素子には、グラフィクスプレーン座標系における座標(0,1)の画素データが、アドレス07ADの記憶素子には、グラフィクスプレーン座標系における座標(1,1)の画素データが、アドレス07AEの記憶素子には、グラフィクスプレーン座標系における座標(2,1)の画素データが格納されていることがわかる。
同図（ｂ）は、プレーンオフセットが"3"に設定されていて、左方向にシフトされたグラフィクスプレーンを示す。プレーンオフセットが"3"であるから、アドレス0001の記憶素子には、グラフィクスプレーン座標系における座標(3,0)の画素データが、アドレス0002の記憶素子には、グラフィクスプレーン座標系における座標(4,0)の画素データが、アドレス0003の記憶素子には、グラフィクスプレーン座標系における座標(5,0)の画素データが格納されていることがわかる。
【０１４２】
またアドレス07A9の記憶素子には、グラフィクスプレーン座標系における座標(3,1)の画素データが、アドレス07AAの記憶素子には、グラフィクスプレーン座標系における座標(4,1)の画素データが、アドレス07ABの記憶素子には、グラフィクスプレーン座標系における座標(5,1)の画素データが格納されていることがわかる。
以上のように、シフトされたグラフィクスプレーンは、グラフィクスプレーンにおける各画素データの座標が、本来の座標から右方向、左方向に、プレーンオフセットに示される画素数だけずれていることがわかる。
【０１４３】
グラフィクスデータを構成する各画素データが配置される記憶素子のアドレスを、所定のアドレスだけ変化させることで、グラフィクスプレーンのシフトは実現することができる。当然であるが、実際に、画素データが配置される記憶素子のアドレスを変化させなくても、これと等価な処理であるなら、グラフィクスプレーンのシフトを実現することは可能になる。
【０１４４】
以上で、シフトがなされた後のグラフィクスプレーンの格納内容についての説明を終える。
図２３は、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を通じて参照でき、且つ、バックグラウンドグラフィクスプレーン１１、ビデオプレーン６、イメージプレーン８、インタラクティブグラフィクスプレーン１０の各状態や設定を、明らかにできるような構成になっている。以降、表示モード記憶部２９の構成について、図２４を参照しながら説明する。
【０１４９】
図２４は、表示モード記憶部２９における記憶内容を示す。
本図において表示モード記憶部２９は、再生装置が２Dモードであるか、３Dモードであるかの表示モードの状態に加え、バックグラウンドプレーン１１設定、ビデオプレーン設定、イメージプレーン８設定、インタラクティブグラフィクスプレーン設定を保存する。各プレーンの設定項目としては「解像度(図中の:YY×ZZ)」、ステレオモード(図中の:ON or OFF)、THREE＿Dの設定(図中の:ON or OFF)が保存されている。イメージプレーン８設定及びインタラクティブグラフィクスプレーン１０設定については、以上の設定項目の他に、プレーンオフセットを"−６３"から"＋６３"の範囲で設定することができる。
【０１５０】
表示モード記憶部２９によってサポートされる解像度について説明する。
再生装置が２D表示モードである場合、イニシャル表示設定としてバックグラウンドプレーン１１、ビデオプレーン６、イメージプレーン８、インタラクティブグラフィクスプレーン１０は１９２０x１０８０、１２８０x７２０、７２０x５７６、７２０x４８０ピクセルの解像度をサポートする。再生装置が３D表示モードである場合は、バックグラウンドプレーン１１、イメージプレーン８、インタラクティブグラフィクスプレーンは２D表示モードの解像度に加えて、１９２０x２１６０や１２８０x１４４０ピクセルの解像度をサポートしてもよい。その場合は１９２０x２１６０や１２８０x１４４０ピクセルのアスペクト比は、１６/１８のアスペクト比になり、上半分を左目用の領域、下半分を右目用領域に利用することになる。
【０１５１】
以上で、表示モード記憶部２９における記憶内容についての説明を終える。
各プレーンのTHREE＿D設定が変化するケースについて説明する。
まず、表示モードの切り替えが発生した場合の条件として表示モード記憶部２９内の各プレーン設定も変更を行う必要がある。例えば、表示モードが２D表示モードに設定された場合は各プレーンのTHREE＿D設定をOFFにする必要がある。また、表示モードが３Dモードに設定された場合は各プレーンのTHREE＿D設定をONにする必要がある。
【０１５２】
ステレオモード、プレーンオフセットがリセットされるケースについて説明する。
タイトル選択の結果、２D表示モードになった場合はバックグラウンド、ビデオプレーン、イメージプレーン８、インタラクティブグラフィクスプレーンのステレオモードはOFFに切り替わり、イメージプレーン８、インタラクティブグラフィクスレーンのプレーンオフセットのシフト量が"０"にリセットされる。
【０１５３】
表示モードがタイトル選択前に判定できない場合はタイトル起動前の表示モードは２D表示モードとして扱う。
表示モードの切り替えのトリガとなる事象について説明する。
表示モード記憶部２９の表示モードはプレイリストが切り替わった場合かBD-Jアプリケーションがメソッド呼び出しにより明示的に行うかの２種類の方法によって切り替わる可能性がある。
【０１５４】
プレイリスト再生をトリガとした、表示モードの切り替えパターンについて説明する。
プレイリスト再生により表示モードが変わるパターンとして、３D表示モード中に２Dプレイリストが再生された場合、再生装置は表示モード記憶部の表示モードを２D表示モードに自動的に切り替える。表示モードの切り替えが発生した際、BD-Jアプリケーションが登録していたイベントリスナーに対して非同期のイベントを発生させる。
【０１５５】
プレイリストの再生の中止による表示モードの切り替えは発生しない。つまり、プレイリストの再生中止のあとも表示モードは必ず維持される。
続いて、表示モード設定イニシャル表示設定部２８によるイニシャル表示設定について説明する。
イニシャル表示設定とは表示モード記憶部２９に保存されている解像度などといった表示設定の"タイトル起動時"に設定される値のことを意味する。
【０１５６】
イニシャル表示設定の影響要因について説明する。
再生装置が３D表示機能フラグとして３Dの表示が可能と設定されている場合、イニシャル表示設定は、２D専用再生装置の時のデフォルト起動プレイリスト（プレイリスト）やBD-Jオブジェクトに記載されたデフォルト設定のみに基づいて決定するのではなく、タイトル選択前の３D表示モードも影響して決定される。
【０１５７】
イニシャル表示設定が、どのようなものが基準になるかについて説明する。かかるイニシャル表示設定は、デフォルト起動プレイリストが基準となる。
デフォルト起動プレイリストが存在する場合、再生装置が３D表示モードであり、かつプレイリストが２Dプレイリストの場合に再生装置は自動的に２D表示モードに切り替えた後にデフォルト起動プレイリストのビデオと一致した２Ｄ用の解像度を設定する。
【０１５８】
デフォルト起動プレイリストが存在していて、表示モードに影響を与えない場合、タイトル選択前の表示モードでサポートされている解像度の中からビデオと一致した解像度のイニシャル表示設定を選択すし、解像度を設定する。
次に、解像度、プレーンオフセットが維持されるケースを説明する。
デフォルト起動プレイリストが存在する場合のタイトル選択の結果、３D表示モードになった場合は後述するステレオモードの値はバックグラウンドプレーン１１、ビデオプレーン、イメージプレーン８、インタラクティブグラフィクスプレーンは、全て維持され、プレーンオフセットも維持される。
【０１５９】
デフォルト起動プレイリストが存在しない場合の設定の基準について説明する。
デフォルト起動プレイリストが存在しない場合、イニシャル表示設定は常に選択したタイトルに対応するBD-Jオブジェクト内に書かれているデフォルト解像度値に従う。この場合はタイトル起動前の表示モードは影響されない。
ステレオモード、プレーンオフセットがリセットされるケースについて説明する。
【０１６０】
デフォルト起動プレイリストが存在しないタイトルを選択した場合において、３D表示モードになった場合はイメージプレーン８、インタラクティブグラフィクスプレーンのステレオモードはONになり、バックグラウンドとビデオプレーンのステレオモードはOFFとなるように構成されている。
さらに、３D表示モードから２D表示モードの切り替えが発生した場合は各プレーン設定のステレオモードはOFFにセットされ、プレーンオフセットのシフト量が"０"にリセットされる。
（表示モードのタイトル間遷移）
上述したように、解像度の情報やデフォルト起動プレイリストの指定は、タイトルに対応するBD-Jオブジェクト毎に存在するので、タイトルが変われば、対応するBD-Jオブジェクトも変わるので、表示モード記憶部２９に設定されている表示モードの内容も自ずと変化することになる。図２５を用いて、タイトル間遷移が発生した場合に、表示モードがどのように遷移するかを説明する。
【０１６１】
図２５は、タイトル間遷移が発生した場合の、表示モードの遷移を表形式で示す図である。本図の表は、カレントタイトル選択直前の表示モード、選択されたカレントタイトルのデフォルト起動プレイリストの種類、BD-Jオブジェクトに記載されたデフォルト解像度、カレントタイトルにおける表示モードと、イニシャル表示設定とを対応付けている。
デフォルト起動プレイリストと、デフォルト解像度とは排他的な関係にあり、タイトル内にデフォルト起動プレイリストが存在すれば（つまり有効であれば）、表示モードは、デフォルト起動プレイリストに規定された解像度に応じたものとなる。タイトル内にデフォルト起動プレイリストが存在しなければ（つまり無効であれば）、表示モードは、デフォルト起動プレイリストに規定された解像度に応じたものとなる。
【０１６２】
上半分Cr1は、タイトル内のデフォルト起動プレイリストが存在する（有効である）場合の表示モード設定を示し、下半分Cr2は、タイトル内のデフォルト起動プレイリストが存在しない（無効である）場合の表示モード設定を示す。
上半分の記載内容によると、直前の表示モードが3D、デフォルト起動プレイリストが3Dプレイリストであれば、3D出力を行い、それ以外は全て、2D出力に設定される。
【０１６３】
下半分の記載内容によると、直前の表示モードが2Dであるか3Dであり、デフォルト解像度がHD3D＿1920×1080、又は、HD3D＿1280×720である場合、3D出力に設定される。
(表示モードのタイトル内遷移)
一個のタイトルは、デフォルト起動プレイリスト等、1つのプレイリストによって構成されるとは限らない。複数のプレイリストによって構成されることも充分ある。そして、複数のプレイリストによって構成されているタイトルにおいては、プレイリストの再生が切り替った際、表示モード記憶部２９における表示モードの設定が切り替わることがある。以降、図２６を参照して、タイトル内でプレイリストが切り替った場合に表示モードがどのように遷移するかについて説明する。
【０１６４】
図２６は、タイトル内においてプレイリストの再生が切り替った場合の、表示モードの遷移を示す。本図の表は、現在のステータス、これから行おうとするアクション、最終的な表示モードを対応付けている。この表のうち、ハッチングを付したものは、最終的な表示モードが3Dに決定されるケースである。これ以外は、表示モードが2Dに決定されることになる。
【０１６５】
現在の表示モードが3Dであり、再生中のプレイリストが無い場合（例えばインターラクティブグラフィクススのみを表示する場合、またはインターラクティブグラフィクススおよび背景データを合成して表示する場合等）、又は、行おうとする処理が、3Dプレイリストの再生であれば、表示モードは3Dに設定される。
現在の表示モードが2Dであり、再生中のプレイリストが無い場合（例えばインターラクティブグラフィクススのみを表示またはインターラクティブグラフィクススおよび背景データを合成表示等）、又は、行おうとする処理が、BD-Jアプリケーションによる3D表示モードの設定であれば、表示モードは3Dに設定される。
【０１６６】
現在の表示モードが2D、3Dであり、再生中のプレイリストが無いか、3Dプレイリストである場合、行おうとする処理が、BD-Jアプリケーションによる3D表示モードの設定であれば、表示モードは3Dに設定される。
以上で、タイトル内においてプレイリストの再生が切り替った場合の、表示モードの遷移についての説明を終える。
【０１６７】
以下、ミドルウェアの構成要素について説明する。図２３においてミドルウェア３３は、プレーン制御モジュール４２を含む。
ＢＤ−Ｊアプリケーションによって表示モード記憶部２９のバックグラウンドプレーン設定のステレオモードがONに設定されれば、左目用の描画がなされたバックグラウンドプレーン１１がレフトビューが使われ、右目用の描画がなされたバックグラウンドプレーン１１がライトビューに使われるように合成される。バックグラウンドプレーンの設定ステレオモードがＯＦＦに設定されれば、バックグラウンドプレーン１１に格納するデータは左目と右目で同じにする。バックグラウンドプレーン１１として縦長の領域を用いる場合は上半分の領域がレフトビューに使われ、下半分の領域がライトビューに使われるように合成される。なお、その場合はバックグラウンドプレーン１１のステレオモードがOFFに設定されれば、アプリケーションによる下半分の描画は表示に影響しない。
【０１６８】
イメージプレーン８及びインタラクティブグラフィクスプレーンの立体効果の指定方法はイメージプレーン設定及びインタラクティブグラフィクスプレーン設定のステレオモードプロパティによって行う。ステレオモードプロパティによってステレオモードがONに設定されれば、バックグラウンドプレーン１１同様、左目用の描画がなされたイメージプレーン８及びインタラクティブグラフィクスプレーンがレフトビューに使われ、右目用の描画がなされたイメージプレーン８及びインタラクティブグラフィクスプレーンがライトビューに使われるように合成される。ステレオモードがＯＦＦに設定されれば、イメージプレーン８及びインタラクティブグラフィクスプレーンに格納するデータは左目と右目で同じにする。イメージプレーン８及びインタラクティブグラフィクスプレーンとして縦長の領域を用いる場合は上半分の領域がレフトビューに使われ、下半分の領域がライトビューに使われるように合成される。なお、その場合はステレオモードプロパティによってイメージプレーン８及びインタラクティブグラフィクスプレーンのステレオモードがOFFに設定されれば、アプリケーションによる下半分の描画は表示に影響しない。
【０１６９】
プレーン制御モジュール４２は、プレーン制御のためのライブラリによって構成され、プラットフォーム部からのAPIコールによってプレーン制御を実現する。
(表示モード記憶部２９の設定に用いられるAPI)
以上の表示モード記憶部２９は、再生装置のソフトウェアレイヤモデルにおいて物理層に近い位置に存在するので、この表示モード記憶部２９の内容は、アプリケーションプログラミングインターフェイスを通じて変化させることが可能である。以降、図２７を参照して、アプリケーションの命令による表示モード記憶部２９の設定について説明する。プレーン制御モジュール４２によってアプリケーションに提供されるアプリケーションプログラミングインターフェイスについて説明する。
【０１７０】
図２７は、表示モード記憶部２９の設定に用いられるAPIを示す。
同図（ａ）は、プレーン設定に用いられる5つのメソッド、つまり、getConfigTemplate、setPreferenceメソッド、getBestConfigurarionメソッド、getCurrentConfigurationメソッド、setCoherentConfigurarionメソッド、setConfigurationメソッドを示す。
プレーンステータスの取得について説明する。
【０１７１】
BD-Jアプリケーションは、例えば取得したいプレーンを引数として指定し、getConfigTemplateメソッドを呼出すと、引数としたプレーンのステータスを表現するテンプレートを取得できる。（ｂ）は、かかるメソッドによって取得することができる4つのテンプレートを示す。これらのテンプレートは、図２４に示したバックグラウンドプレーン１１設定、ビデオプレーン設定、イメージプレーン８設定、インタラクティブグラフィクスプレーン１０設定を個々に表すものである。
【０１７２】
本実施の形態では、バックグラウンドプレーン設定、ビデオプレーン設定において、プレーンオフセットが設定できないような構成を開示しているが、プレーンオフセットを設定できるような構成を採用しても良い。ここでは説明を簡単にするために、バックグラウンドプレーン設定、ビデオプレーン設定において、プレーンオフセットが設定できないような構成について説明をする。
先ずTHREE＿D設定について説明する。
【０１７３】
BD-Jアプリケーションは取得したテンプレートから設定できるパラメータに関する情報を取得し、必要があれば設定できるパラメータを引数にして、setPreferenceメソッドを呼出せば、引数にしたパラメータの設定ができるように構成される。例えば、THREE＿Dの設定ができるパラメータである場合には、これを引数にして、setPreferenceメソッドを呼出して、THREE＿D設定をONあるいはOFFに設定する。またsetPreferenceメソッドは呼出したアプリケーションに設定が成功したか失敗したかの結果を返す。
【０１７４】
BD-Jアプリケーションが現状の表示設定を取得する場合、getCurrentConfigurationを用いる。getCurrentConfigurationは、表示モード記憶部２９に現状設定されている表示モードやステレオモードなどと言った個々プレーン（バックグラウンドプレーン１１、ビデオプレーン、イメージプレーン８、インタラクティブグラフィクスプレーン）の表示設定をBD-Jアプリケーションに取得させるためのAPIである。
【０１７５】
また、getBestConfigurationメソッドはBD-Jアプリケーションに、再生装置における個々のプレーン（バックグラウンドプレーン１１、ビデオプレーン、イメージプレーン８、インタラクティブグラフィクスプレーン）の最善の設定情報を返す。
また、setCoherentConfigurationsメソッドはBD-Jアプリケーションから呼出されると、引数に指定した設定が、個々のプレーン（バックグラウンドプレーン１１、ビデオプレーン、  イメージプレーン８、インタラクティブグラフィクスプレーン）に共通に設定される。
【０１７６】
例えば、個々のプレーン（バックグラウンドプレーン１１、ビデオプレーン、イメージプレーン８、インタラクティブグラフィクスプレーン）のTHREE＿D設定をONにしたい場合には、引数としてTHREE＿D設定をONにするための情報を引数にして、setCoherentConfigurationsメソッドを呼出せば、個々のプレーン（バックグラウンドプレーン１１、ビデオプレーン、イメージプレーン８、インタラクティブグラフィクスプレーン）のTHREE＿D設定をONにすることが出来る。
【０１７７】
また、引数として解像度を指定し、setCoherentConfigurationsメソッドを呼出せば、個々のプレーン（バックグラウンドプレーン１１、ビデオプレーン、イメージプレーン８、インタラクティブグラフィクスプレーン）の解像度を同じにすることが出来る。
setCoherentConfigurationsメソッドは引数として、THREE＿D設定、または解像度を個別に指定して呼出す構成について説明をしたが、複数のパラメータを一度に引数として指定して呼出しても良い。
【０１７８】
setCoherentConfigurationsメソッドは各ブレーンの設定を一度に設定できるのに対し、setConfigurationメソッドは引数に指定したプレーンに対する設定のみを変更するためのものである。
コンフィグレーション設定について説明する。
setPreferenceメソッドで変更したテンプレートを用いてgetBestConfigurationメソッドによりコンフィグレーションを引数にして、setConfigurationメソッドを呼出す、またはsetCoherentConfigurationsメソッドを呼出せば、かかるコンフィグレーションは、表示モード記憶部２９に反映される。
【０１７９】
表示モードの変化がどのようなケースで発生するかについて説明する。
BD-Jアプリケーションにより表示モードを変える場合はsetCurrentConfigurationメソッドによって行う。ただし、制限事項として２Dプレイリストの再生中はBD-Jアプリケーションによって表示モードを変更することはできない。
モード切替えの失敗が、どのようなケースで発生するかについて説明する。
【０１８０】
BD-Jアプリケーションによる表示モード切替要求は次の場合に失敗する。
１.setCoherentConfigurationsメソッド呼び出し時に設定したプレーンごとにTHREE＿D設定のONとOFFが混在していた時。
２.２Dプレイリストの再生中にBD-JアプリケーションがTHREE＿D設定をONにした表示設定を設定しようとした場合。
【０１８１】
３.ステレオモードをONにした状態でTHREE＿D設定をOFFにした場合。
以上の１.〜３.の場合において、getBestConfigurationメソッドが失敗する。
さらに、BD-Jアプリケーションによる表示モード切替要求は３D表示モードを要求したが再生装置と接続する表示デバイスから、当該が３Dに対応するかどうかを示す情報を取得し、当該表示デバイスが３Ｄに対応していないと判断すれば、３D表示モードを要求したBD-Jアプリケーションに当該要求ができないこと（つまり当該要求を実行するための処理が失敗したこと）ことを返すように構成してもよい。
【０１８２】
以上で、表示モード記憶部２９の設定に用いられるAPIについての説明を終える。
(プレーンオフセットの設定)
プレーンシフトエンジン１９が、プレーンシフトを行うにあたってのシフト量は、立体視のための何等かのパラメータに基づき、算出する必要がある。かかるシフト量算出のためにパラメータにはMVC（Multi View Codec）ビデオストリームに組み込まれている立体視用のプレーンオフセットを採用することが望ましい。ただし、これには限らず、コンテンツプロバイダがBD-ROMを通じて再生装置に供給する様々な情報要素を通じて、プレーンシフトエンジン１９に供給できるようにしておく方が望ましい。
【０１８３】
図２８を参照しながら、プレーンオフセットの設定処理について説明する。
図２８は、プレーンオフセットの設定に関わる部分の構成を示す。オフセット設定部２０の書き込み制御部はプレーンシフトエンジン１９がプレーンシフトに使うプレーンシフト値を更新する役割を持つ。オフセット設定部２０の書き込み制御部によるプレーンシフトエンジン１９のプレーンオフセット値の書き込みには、以下の(AA)〜(FF)のバリエーションがある。
【０１８４】
(AA)BD-JアプリケーションはsetOffsetValueのメソッドコールによって、表示モード記憶部２９内のプレーン設定のプレーンオフセットを更新することができる。
上記プレーンオフセットはBD-JアプリケーションによりgetOffsetValueメソッドにより取得可能である。
BD-JアプリケーションがAPIをコールしてプレーンオフセットを組込む場合、自由度は高いが、リアルタイム性が劣る。プレーンシフトエンジンが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フレームに対するレフトビュー用の出力とライトビュー用の出力とが完了した時点で、前記オフセット設定部２０aによりプレーンシフトエンジン１９内に格納されたプレーンオフセットのシフト量に基づいてグラフィクスプレーンのシフト量を計算する。これは、プレーンオフセットがMVCビデオストリームに格納されている場合、フレーム毎にプレーンオフセットが変化することもありうるからである。
【０１９１】
以上が、オフセット設定部２０がプレーンオフセットを設定する様々なケースについての説明である。続いて、ユーザ操作やアプリケーションによって提供される値について説明する。
ユーザ操作やアプリケーションから提供される値はシフト量そのものではなく、例えば、現状プレーンシフトエンジン１９に設定されている値からの調整値が与えられることがある。この場合、プレーンオフセット計算を実行する。例えば、右矢印キーが３回押されたり、数値キーの"３"という値が入力されれば、装置内に設定されているプレーンオフセットにかかる値を加算して、プレーンシフトエンジン１９は加算された値を基にプレーンオフセットを計算する。"+"の値であると、例えばよりずらし幅が縮小され、奥に見えるようにし、"―"の値であると、例えばずらし幅を増やし、より手前に見えるようにすることが考えられる。
【０１９２】
次に、奥行きの変更について説明する。
上述したように、字幕、GUI等のグラフィクスを横軸にシフトする際、字幕、GUI等のグラフィクスの横軸のずらし幅を変更することによって、奥行きが変更する。例えば、レフトビュー字幕とライトビュー字幕を一定方向に近くへ寄せれば寄せるほど画面に近づくに表示がなされ、逆方向に離せば離すほど画面から離れる視覚効果を得られる。しかし、プレーンオフセットと、飛び出し度合との相関性は、テレビにおけるインチ数、3D眼鏡における液晶の特性に影響するところが大きいので、この視覚効果の実現にあたって、予め端末内に係数を設定しておき、プレーンオフセットにこの係数を乗じたものをシフトに用いる。このように係数を乗じることで、テレビや再生装置、3D眼鏡における特性に基づき、立体視映像の飛び出し度合を調整することが可能になる。
【０１９３】
ここでどのようにずらすかという"ずらす方法のバリエーション"を説明する。
レフト方向にずらした場合、その内容をイメージプレーン８及びインタラクティブグラフィクスプレーンに格納しておいて、ライトビューの再生時には、グラフィクスプレーンを本来の２倍の量を逆方向にずらすというバリエーションを実現することもできる。この場合、２回のイメージデコードを行わなくてすむ。
【０１９４】
以上が、再生装置の内部構成についての説明である。
（表示モード設定イニシャル表示設定部２８の実装）
表示モード設定イニシャル表示設定部２８の実装について説明する。一個のタイトルが選択され、そのタイトルに対応するBD-Jオブジェクトが再生装置で有効になっている期間においても、動作中のアプリケーションが、ユーザオペレーションに応じてJMFプレーヤインスタンスをコールすることにより、新たなプレイリストの再生が開始されることがある。このように新たなプレイリストの再生が開始されれば、タイトル内で、表示モードを設定やり直す必要がある。
【０１９５】
表示モード設定イニシャル表示設定部２８の機能としては、タイトルが変化した際のタイトル間表示モード設定と、タイトル内でプレイリストが変化した際の表示モード設定とアプリケーションが明示的にＡＰＩを呼び出して設定した場合の表示モード設定とをサポートせなばならず、具体的には、以下の図２９、図３０の処理手順を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に設定する。
以上で、タイトル間表示モード設定の処理手順についての説明を終える。
図３０は、タイトル内表示モード設定の処理手順を示すフローチャートである。本フローチャートは、ステップＳ３１、ステップＳ３２という２つのステップを直列的に接続したものである。まず、タイトル内表示モード設定はプレイリストの再生要求から始まる。プレイリスト再生要求を受け付けた時点で、ステップＳ３１は、現在のステータス3Dかどうかの判定を行い、2Dであれば、ステップＳ３４において表示モードを2Dに設定する。ステップＳ３２は、再生要求のあったプレイリストが3Dプレイリストか否かを判定し、もし、３Ｄプレイリストであれば、ステップＳ３３に移行し、表示モードを３Ｄにし、２Ｄプレイリストであれば、ステップ３４に移行し、表示モードを２Ｄにする。
【０２００】
以上で、タイトル内表示モード設定の処理手順についての説明を終える。
(再生制御エンジン１４の実装)
再生制御エンジン１４は、何等かの要因によってカレントプレイリストが選択された際、そのカレントプレイリストの再生を行うものであり、具体的には、カレントプレイリストに対応するプレイリスト情報を静的シナリオメモリ１３に読み出して、このプレイリスト情報のプレイアイテム情報によって参照されている3Dストリーム、2Dストリームを再生に供するという処理を実現せねばならず、具体的には、図３２、図３３の処理手順を実行するようなプログラムを作成して再生装置に組み込み、MPUに実行させる必要がある。
【０２０１】
図３２は、BD-Jモードにおけるプレイリスト再生の主たる手順を示すフローチャートである。
ステップＳ４０は、選択されたタイトルに関連するBD-Jオブジェクトに示されるデフォルト起動プレイリストの設定又はJMFプレーヤインスタンスの生成により、カレントプレイリスト番号が設定されたかどうかの判定であり、もし設定されれば、ステップＳ４１において、カレントプレイリスト番号にて指示されているプレイリスト情報ファイルをシナリオメモリにロードし、ステップＳ４２において、プレイリスト情報に、プレーンオフセットが存在すれば、オフセット設定部２０はプレーンシフトエンジン１９のプレーンオフセット値として設定する。そして、ステップＳ４３においてタイトル内表示モード設定を行う。
【０２０２】
ステップＳ４４では、ロードされたプレイリスト情報における最初のプレイアイテム番号を、カレントプレイアイテム番号に設定する。ステップＳ４５において、カレントプレイリスト情報において再生が許可されているPESストリームの中からカレントストリームを選択する。
ステップＳ４６では、プレイアイテム情報に基づいて、どのストリーム番号を使うかを決定する。
【０２０３】
ステップＳ４７においてステップＳ４３で判定した表示モードは、2Dであるか、又は3Dであるかの判定を行う。３Dであれば、ステップＳ４９において３D表示モード時の3Dビデオストリームの再生を実行する。２Dであれば、ステップＳ４８に移行する。
ステップＳ４８は、カレントストリーム番号で指示されているビデオストリーム及び字幕ストリームは、2Dであるか、3Dであるかの判定である。ステップＳ４８で2Dと判定された場合、ステップＳ５１において2D表示モードにおける2DAVストリームの再生を実行する。3Dと判定された場合、ステップＳ５０において２D表示モードの3Dビデオストリームの再生を実行する。最後に、図３２の"終了"に到達した時点でプレイリストの再生開始を行う。
【０２０４】
図３３は、プレイアイテム情報に基づく再生手順を示すフローチャートである。
ステップＳ６０において、ビデオストリームに組み込まれているプレーンオフセットをプレーンシフトエンジン１９に設定し、ステップＳ６１において、ベースビューストリームのパケット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]に属するエクステントを連続的に読み出すよう、ドライブに指示する。
【０２０６】
以上で、再生制御エンジン１４についての説明を終える。
(プレーンシフトエンジン１９の実装)
プレーンシフトエンジン１９は、ビデオフレームにおける表示期間が到来する度に、イメージプレーン８、インタラクティブグラフィクスプレーン１０からグラフィクスデータを読み出して、その表示期間において再生すべきピクチャデータ(ビデオフレームと呼ぶことがある)との合成に供するという処理を実現する。ここで、プレーンシフトエンジン１９がサポートすべき処理としては、イメージプレーン８が読出先になっている場合の読出及び合成処理、インタラクティブグラフィクスプレーン１０が読出先になっている場合の読出及び合成処理がある。更に、ステレオモードＯＮである場合と、ステレオモードＯＦＦである場合とで、処理内容を変えなければならないし、レフトビューとライトビューとで、処理内容をかえなければならない。そのため、プレーンシフトエンジン１９の実装には、再生装置における表示モード設定に応じて、図３４から、図３５までの処理手順を実行するようなプログラムを作成して再生装置に組み込み、MPUに実行させる必要がある。
【０２０７】
（3D表示モード時の3Dビデオストリームの処理手順）
現在の表示モードが3D表示モードであり、再生対象が3Dプレイリスト及び3Dストリームである場合、図３４〜図３５の処理手順を実行することになる。
図３４〜図３５は、3D表示モード時の３Dストリーム処理を示すフローチャートである。
【０２０８】
これらのフローチャートは、ステップＳ７０１〜ステップＳ８０９の処理を繰り返すループ構造になっている。本フローチャートの終了条件は、ステップＳ８０９において次のフレームが存在しないと判定されることである。図３４におけるステップＳ７０１〜ステップＳ７０７はレフトビュー用の処理であり、図３５におけるステップＳ８０１〜ステップ８０９はライトビュー用の処理である。まず、ステップＳ７０１では、合成部１５はレフトビューに使うレフトビューバックグラウンドプレーンに書き込まれた背景データを取得する。レフトビューバックグラウンドプレーンにはＢＤ−Ｊアプリケーションの描画命令により静止画デコーダ２７ｂを通して描画された背景データが格納されている。
【０２０９】
次に、レフトビュー用のビデオストリームをビデオデコーダ５ａを用いてデコードして、ビデオプレーン６（図５の（Ｌ）を付したもの）に書き込んだ後に、合成部１５は前記ビデオプレーンに書き込まれたレフトビュー用のビデオデータを取得する（ステップＳ７０２）。
そして、ステップＳ７０３で合成部１５は表示モード記憶部２９にある、イメージプレーン設定のステレオモードのフラグを確認する。ステレオモードがＯＦＦの場合は、イメージデコーダ７ａによりデコードしたレフトビューイメージをイメージプレーン８（符号（Ｌ））に書き込んだ後にプレーンシフトエンジン１９により左目用のシフト処理を施す（ステップＳ７０４ａ）。
【０２１０】
ステレオモードがＯＮの場合は、イメージデコーダ７ａがデコードしたレフトビューイメージをイメージプレーン８（符号（Ｌ）を付したもの）に書き込むが、イメージプレーン８（符号（Ｌ）を付したもの）に書き込んだレフトビューイメージについて、左目用のシフト処理を施さない。何故ならばステレオモードがＯＮの場合、レフトビューイメージとは見える角度の異なるライトビューイメージがイメージプレーン（符号（Ｒ）を付したもの）に書き込まれるからである（ステップＳ７０４ｂ）。
【０２１１】
ステップＳ７０４ａまたはステップＳ７０４ｂによりイメージプレーン８の符号（Ｌ）を付したものには、イメージメモリ７に格納された左目用のイメージデータであって、グラフィクスデコーダ８によってデコードされたものが格納される。
次に、ステップＳ７０５で合成部１５は表示モード記憶部２９にある、インタラクティブグラフィクスプレーン設定のステレオモードのフラグを確認する。ステレオモードがＯＦＦの場合は、BD-Jアプリケーションはレンダリングエンジン２１を利用して、左目用プレーン（図５のインタラクティブグラフィクスプレーン１０において、符号（Ｌ）を付したもの）にレフトビュー用インタラクティブグラフィクススを書き込み、左目用プレーン（図５のインタラクティブグラフィクスプレーン１０において、符号（Ｌ）を付したもの）からレフトビュー用インタラクティブグラフィクスを取得して、取得したレフトビュー用インタラクティブグラフィクスに対して、プレーンシフトエンジン１９が左目用のシフト処理を施す（ステップＳ７０６ａ）。
【０２１２】
ステレオモードがＯＮの場合においては、BD-Jアプリケーションはレンダリングエンジン２１を利用して、左目用プレーン（図５のインタラクティブグラフィクスプレーン１０において、符号（Ｌ）を付したもの）にレフトビュー用インタラクティブグラフィクススを書き込む。その後、表示のために左目用プレーン（図５のインタラクティブグラフィクスプレーン１０において、符号（Ｌ）を付したもの）からレフトビュー用インタラクティブグラフィクスを取得するが、レフトビュー用インタラクティブグラフィクスに対しては、左目用のシフト処理を施さない（ステップＳ７０６ｂ）。
【０２１３】
ステップＳ７０６ａ，ステップＳ７０６ｂでレフトビューインタラクティブグラフィクスが取得されたレフトビューインタラクティブグラフィクスプレーンには、ＢＤ−Ｊモード時においてＢＤ−Ｊアプリケーションの描画命令によりレンダリングエンジン２１を通して描画されたデータが格納されている。
また、ＨＤＭＶモード時において、レフトビューインタラクティブグラフィクスプレーンには、字幕ストリーム以外のグラフィクスストリームから抽出されたグラフィクスデータのデコード結果が格納されることになる。
【０２１４】
ステップＳ７０７ではステップＳ７０１のバックグラウンドプレーン１１の（Ｌ）の符号を付したものに書き込まれた背景データ、ステップＳ７０２のビデオプレーンの（Ｌ）の符号を付したものに書き込まれたビデオデータ、ステップＳ７０４のイメージプレーンの（Ｌ）の符号を付したものに書き込まれた字幕データ、ステップＳ７０６のインタラクティブグラフィクスプレーンの（Ｌ）の符号を付したものに書き込まれたＧＵＩデータを順に合成し、レフトビューとしてディスプレイへ出力する。この場合Ｓ７０３、Ｓ７０５において、ステレオモードがＯＦＦである場合には、対応するプレーンにおいてシフト処理が施されたデータが合成の対象となる。そして、ディスプレイの出力のタイミングで左右処理記憶部のフラグを転換する。なお、Ｓ７０１〜Ｓ７０７の各処理は左目用の処理を施しているが、現在の処理が左目用の処理であるかどうかは、左右処理記憶部を参照することにより判定される。
【０２１５】
次にＳ７０１〜Ｓ７０７の左目用の処理を完了した後に、右目用の処理を行なう。図３５は右目用の処理を説明するためのフローチャートである。ステップＳ８０１で合成部１５は表示モード記憶部２９にある、バックグラウンドプレーン設定のステレオモードのフラグを確認する。ステレオモードがＯＦＦの場合はレフトビュー用の背景データをバックグラウンドプレーン１１の（Ｒ）を付したものに書き込み、バックグラウンドプレーン１１の（Ｒ）を付したものから背景データを取得する（ステップＳ８０２ａ）。ステレオモードがＯＮの場合はライトビュー用の背景データをバックグラウンドプレーン１１の（Ｒ）を付したものに書き込み、バックグラウンドプレーン１１の（Ｒ）を付したものからライトビュー用の背景データを取得する（ステップＳ８０２ｂ）。
【０２１６】
次に、ステップＳ８０３で合成部１５は表示モード記憶部２９にある、ビデオプレーン設定のステレオモードのフラグを確認する。ステレオモードがＯＦＦの場合はレフトビュー用のビデオストリームをビデオデコーダ５ａを用いてデコードして、ビデオプレーン６（図５の（Ｒ）を付したもの）に書き込んだ後に、合成部１５は前記ビデオプレーン６（図５の（Ｒ）を付したもの）からレフトビュー用のビデオデータを取得する（ステップＳ８０４ａ）。ステレオモードがＯＮの場合はライトビュー用のビデオストリームをビデオデコーダ５ｂを用いてデコードして、ビデオプレーン６（図５の（Ｒ）を付したもの）に書き込んだ後に、合成部１５は前記ビデオプレーン６（図５の（Ｒ）を付したもの）からライトビュー用のビデオデータを取得する（ステップＳ８０４ｂ）。
【０２１７】
そして、ステップＳ８０５で合成部１５は表示モード記憶部２９にある、イメージプレーン設定のステレオモードのフラグを確認する。ステレオモードがＯＦＦの場合はイメージデコーダ７ａがデコードしたレフトビューイメージをイメージプレーン８（符号（Ｒ）を付したもの）に書き込む。その後、イメージプレーン８の符号（Ｒ）を付したものに書き込まれたレフトビューイメージに対し、プレーンシフトエンジン１９が右目用のシフト処理を施す（ステップＳ８０６ａ）。ステレオモードがＯＮの場合は、イメージデコーダ７ｂがデコードしたライトビューイメージをイメージプレーン８（符号（Ｒ）を付したもの）に書き込むものの、シフト処理を施さない（ステップＳ８０６ｂ）。
【０２１８】
ステップＳ８０６ａ，ステップＳ８０６ｂで取得したイメージプレーンにはイメージメモリ７に格納された字幕データであって、イメージデコーダ７（図５のイメージデコーダ７ａまたは７ｂ）によってデコードされたものが格納される。
次に、ステップＳ８０７で合成部１５は表示モード記憶部２９にある、インタラクティブグラフィクスプレーン設定のステレオモードのフラグを確認する。ステレオモードがＯＦＦの場合は、BD-Jアプリケーションはレンダリングエンジン２１を利用して、右目用プレーン（図５のインタラクティブグラフィクスプレーン１０において、符号（Ｒ）を付したもの）にレフトビュー用インタラクティブグラフィクススを書き込む。そして右目用プレーン（図５のインタラクティブグラフィクスプレーン１０において、符号（Ｒ）を付したもの）に書き込まれたレフトビュー用インタラクティブグラフィクススに対し、プレーンシフトエンジン１９が右目用のシフト処理を施す（ステップＳ８０８ａ）。
【０２１９】
ステレオモードがＯＮの場合は、BD-Jアプリケーションはレンダリングエンジン２１を利用して、右目用プレーン（図５のインタラクティブグラフィクスプレーン１０において、符号（Ｒ）を付したもの）にライトビュー用インタラクティブグラフィクススを書き込むものの、プレーンシフトエンジン１９は、右目用プレーン（図５のインタラクティブグラフィクスプレーン１０において、符号（Ｒ）を付したもの）に書き込まれたライトビュー用インタラクティブグラフィクスに対し、シフト処理を施さない（ステップＳ８０８ｂ）。
【０２２０】
ステップＳ８０９ではステップＳ８０２のバックグラウンドプレーン１１（符号（Ｒ）を付したもの）に書き込まれた背景データ、ステップＳ８０４のビデオプレーン６（符号（Ｒ）を付したもの）に書き込まれたビデオデータ、ステップＳ８０６のイメージプレーン８（符号（Ｒ）を付したもの）に書き込まれたイメージデータ、ステップＳ８０８のインタラクティブグラフィクスプレーンに書き込まれたＧＵＩデータを順に合成する。この場合Ｓ８０５、Ｓ８０７において、ステレオモードがオフである場合には、対応するプレーンにおいてシフト処理がされたデータが合成の対象となる。そして合成結果を、ライトビューとしてディスプレイへ出力する。そして、ディスプレイの出力のタイミングで左右処理記憶部のフラグを転換する。なお、Ｓ８０１〜Ｓ８０９の各処理は右目用の処理を施しているが、現在の処理が右目用の処理かどうかの判定は、左右処理記憶部を参照することでなされる。
【０２２１】
フレーム入力が継続している限り、以上の処理が繰り返されることになる（ステップＳ８１０）。
なお、端末がＡＶストリームのヘッダ領域からオフセットを取得する方法、かつ毎フレーム更新する実装をしている場合は、ステップＳ８１０の時点でオフセット設定部２０によりプレーンシフトエンジン１９のオフセット値を次のフレームと対応した値に更新する必要がある。
【０２２２】
以上で、3D表示モード時の３Dストリーム処理についての説明を終える。
(2D表示モード時の処理手順)
2D表示モード時において、再生対象になるAVストリームは、3Dストリームを構成するレフトビュー用のストリームおよびライトビュー用のストリームのうちの一方を用いてもよいし、2Dストリームを用いてもよい。ここでは２Ｄストリームを用いる例を説明する。現在の表示モードが2D表示モードである場合、図３６の処理手順を実行することになる。  
【０２２３】
図３６（ａ）は、2D表示モード時の2Dストリーム処理を示すフローチャートである。
まず、ステップＳ９０１では、合成部１５はバックグラウンドプレーン１１に書き込まれた背景データを取得する。次に、ビデオデコーダ５ａが２Ｄビデオストリームをデコードしてビデオプレーン６（符号（Ｌ）を付したもの）にデコードしたビデオデータを書き込み、合成部１５は、このビデオデータを取得する（ステップＳ９０２）。
【０２２４】
そして、ステップＳ９０３でイメージデコーダ７ａが２Ｄ字幕ストリームをデコードし、イメージプレーン８（符号（Ｌ）を付したもの）にデコードしたイメージデータ書き込み、合成部１５は、このイメージデータを取得する。
次に、ステップＳ９０４で、BD-Jアプリケーションはレンダリングエンジン２１を利用して、左目用プレーン（図５のインタラクティブグラフィクスプレーン１０において、符号（Ｌ）を付したもの）に２Ｄグラフィクススを書き込み、合成部１５は、インタラクティブグラフィクスプレーン１０（符号（Ｌ）を付したもの）からインタラクティブグラフィクスデータを取得する。
【０２２５】
ステップＳ９０５ではステップＳ９０１のバックグラウンドプレーン、ステップＳ９０２のビデオプレーン、ステップＳ９０３のイメージプレーン、ステップＳ９０４のインタラクティブグラフィクスプレーンのそれぞれに格納されたデータを順に合成し、ディスプレイへ出力する。フレーム入力が継続している限り、Ｓ９０１の処理ヘ戻り返される（ステップＳ８１０）。
【０２２６】
図３６（ｂ）は、2D表示モード時において、3Dストリームを構成するレフトビュー用のストリームおよびライトビュー用のストリームのうちの一方（この例ではレフトビュー用のストリーム）を用いて２Ｄ表示処理を示すフローチャートである。
本図は、図３４をベースとして作成されており、このベースとなるフローチャートと同一のステップについては、同一の参照符号を付している。処理の概略もほぼ同じであるが簡単に説明をする。まず、ステップＳ７０１では、合成部１５はバックグラウンドプレーン（符号（Ｌ）で示したもの）から背景データを取得する。
【０２２７】
次に、ビデオデコーダ５ａによりデコードされたレフトビュー用のビデオデータをビデオプレーン６（符号（Ｌ）を付したもの）に書き込み、合成部はビデオプレーン６（符号（Ｌ）を付したもの）からレフトビュー用のビデオデータを取得する（ステップＳ７０２）。
そして、ステップＳ７０４ｂで、イメージデコーダ７ａによりデコードされたレフトビュー用のイメージデータをイメージプレーン８（符号（Ｌ）を付したもの）に書き込み、合成部１５は、イメージプレーン８（符号（Ｌ）を付したもの）からイメージデータを取得する。
【０２２８】
次に、ステップＳ７０６ｂにおいて、BD-Jアプリケーションはレンダリングエンジン２１を利用して、左目用プレーン（図５のインタラクティブグラフィクスプレーン１０において、符号（Ｌ）を付したもの）にレフトビュー用インタラクティブグラフィクススを書き込み、インタラクティブグラフィクスプレーン１０（符号（Ｌ）を付したもの）からレフトビュー用インタラクティブグラフィクスを取得する。
【０２２９】
ステップＳ７０７ではステップＳ７０１のバックグラウンドプレーン、ステップＳ７０２のビデオプレーン、ステップＳ７０４のイメージプレーン、ステップＳ７０６のインタラクティブグラフィクスプレーンに格納されたデータを順に合成し、ディスプレイへ出力する。フレーム入力が継続している限り、Ｓ７０１の処理ヘ戻り返される（ステップＳ８１０）。
【０２３０】
以上で、2D表示モード時の処理手順について説明を終える。
（ＢＤ−Ｊアプリケーションによるオフセット更新の処理手順）
ここではＢＤ−Ｊアプリケーションによる奥行き変更のトリガとなる事象について説明する。
【０２３１】
BD-Jモジュール１５によって起動されたアプリケーションが、イメージプレーン８、またはインタラクティブグラフィクスプレーンの奥行きを変更するAPIを呼び出した場合の処理について図３７を参照しながら説明する。
図３７は、ＢＤ−Ｊアプリケーションによるオフセット更新命令発行時の処理手順を示すフローチャートであり、図３４〜図３５で示す３Ｄ表示モード時の３Ｄストリーム表示処理のステップＳ７０１〜ステップＳ８１０にステップＳ１００１、ステップＳ１００２，ステップＳ１００３が追加される形になる。
【０２３２】
グラフィクスプレーンの奥行きを変更するAPIの呼び出しを受け付けたBD-Jモジュール１５は、ステップＳ１００１において入力で受け取ったプレーンオフセットに基づいて表示モード記憶部２９の対象となるプレーンのプレーンオフセットを更新する。
この際に対象となるプレーンがイメージプレーンだった場合はイメージプレーン設定のプレーンオフセット、インタラクティブグラフィクスプレーンだった場合はインタラクティブグラフィクスプレーン設定のプレーンオフセットを更新する。
【０２３３】
一方、ステップS１００２において、表示モード記憶部２９のイメージプレーン設定、あるいはインタラクティブグラフィクスプレーン設定のプレーンオフセットが更新されているかを確認する。ステップＳ１００２にてプレーンオフセットが更新されている場合（ステップS１００２：Yes）は、プレーンシフトエンジン１９のプレーンオフセット値を更新する（ステップＳ１００３）。なお、ステップＳ１００３で更新されている対象がイメージプレーン設定の場合はプレーンシフトエンジン１９のイメージプレーンのプレーンオフセット値、インタラクティブグラフィクスプレーン設定の場合はプレーンシフトエンジン１９のインタラクティブグラフィクスプレーンのプレーンオフセット値を更新する。プレーンオフセットが更新されていない場合（ステップS１００２：No）は、ステップＳ１００３を実施せず、ステップS７０１の処理を再開する。
【０２３４】
以上のように本実施形態によれば、グラフィクスプレーンにおける画素データの座標を移動（例えば表示画面と水平方向に移動）させることにより、字幕グラフィクスをどれだけ手前に寄せように見えるようにするか、字幕グラフィクスを画面の奥に遠退けるように見えるようにするかを調整することができる。
さらに、ライトビューグラフィクス（ライトビューインタラクティブグラフィクス）、レフトビューグラフィクス（レフトビューインタラクティブグラフィクス）が記録媒体から供給されない（つまり２Ｄグラフィクスス、２Ｄインタラクティブグラフィクススのみが供給される）ために、本来ならば字幕グラフィクスが表示画面上にしか表示させることができずに、立体視ビデオにのめり込むような場合でも、ステレオモードがオフのときにこの２Ｄグラフィクスス（２Ｄインタラクティブグラフィクスス）対応するプレーン（符号（Ｌ）、（Ｒ）で付したもの）に格納するように構成するとともに、オフセットを調整することにより、レフトビュー用のビデオのデータおよびライトビュー用のビデオのデータを用いて立体的に飛び出ているように見える空間と干渉しない位置（例えば３Ｄビデオの空間よりも手前に見えるような位置）に字幕、ＧＵＩを表示することができる。そのため、ビデオの立体表示を極力損ねることなく字幕、ＧＵＩを合成表示できるようになり、これにより立体視映像の体裁を整えることができる。かかる調整によって字幕グラフィクスの奥行きを調整するので、立体視再生のために、レフトビューグラフィクス、ライトビューグラフィクスを準備にする必要がない。よって、容量が限られたBD-ROMを供給媒体にする場合でも、好適な立体視再生を、ユーザに実現させることができる。
【０２３５】
オーサリングスタジオにおいても、立体視再生のためのライトビューグラフィクス、レフトビューグラフィクスの制作の一方を省略することができ、映画作品の制作工数を小さくすることができる。
(第２実施形態)
第１実施形態では、プレーンメモリにおける記憶素子の内容をシフトすることで、プレーンシフトを実現したが、本実施形態では、プレーンメモリに格納されている画素データを、ライン単位に合成部１５に読み出す際、かかるプレーンシフトを実現する改良に関する。ここで、1920×1080、1280×720といった解像度をもつ画素データの集合体のうち、一ライン、つまり、横1920画素の集まり、又は、横1280画素の集まりをラインデータと呼ぶ。そして合成部１５は、ビデオプレーン、バックグラウンドプレーン１１、イメージプレーン８、インタラクティブグラフィクスプレーン１０のそれぞれから読み出されたラインデータに対して、合成を実行する。
【０２３６】
図３９は、合成部１５の構成を示す図である。本図に示すように、合成部１５は、ラインメモリ５０〜５４、α１乗算部５４、（１−α１）乗算部５５、ブレンド部５６、（１−α２）乗算部５７、スケーラ５８、α２乗算部５９、ブレンド部６０、スケーラ６１、α３乗算部６２、（１−α３）乗算部６３、ブレンド部６４から構成される。
ラインメモリ５０は、インタラクティブグラフィクスプレーン１０から読み出されたラインデータを格納する。
【０２３７】
ラインメモリ５１は、イメージプレーン８から読み出されたラインデータを格納する。
ラインメモリ５２は、ビデオプレーンから読み出されたインデータを格納する。
ラインメモリ５３は、バックグラウンドプレーン１１から読み出されたラインデータを格納する。
α１乗算部５４は、ラインメモリ５１に読み出されたピクチャを構成するラインデータの揮度に、透過率α１を乗じる。
【０２３８】
（１−α１）乗算部５５は、ラインメモリ５３に読み出されたグラフィクスデータを構成するラインデータの揮度に、透過率（１−α１）を乗じる。
ブレンド部５６は、α１乗算部５４により画素毎に透過率α１が乗じられたラインデータと、（1−α１）乗算部５５により画素毎に透過率（1-α１）が乗じられたラインデータとを合成する。
【０２３９】
（１−α２）乗算部５７は、ブレンド部５６の出力に、透過率（１−α２）を乗じる。
スケーラ５８は、ラインメモリ５２に読み出されたラインデータを拡大する。
α２乗算部５９は、スケーラ５８によって拡大がなされたピクチャを構成するラインデータの揮度に、透過率α２を乗じる。
ブレンド部６０は、透過率α２が乗じられたラインデータと、（1−α２）乗算部５７により画素毎に透過率（1-α２）が乗じられたラインデータとをブレンドする。
【０２４０】
スケーラ６１は、ラインメモリ５０に読み出されたラインデータを拡大する。
α３乗算部６２は、ラインメモリ５０に読み出され、スケーラ６１によって拡大がなされたグラフィクスを構成するラインデータの揮度に、透過率α３を乗じる。
（１−α３）乗算部６３は、ブレンド部６０の出力結果であるラインデータの揮度に、透過率（１−α３）を乗じる。
【０２４１】
ブレンド部６４は、透過率α３が乗じられたラインデータと、（1−α３）乗算部６３により画素毎に透過率（1-α３）が乗じられたラインデータとをブレンドする。
以上で、合成部１５の構成についての説明を終える。
第１実施形態で述べたプレーンシフトエンジン１９は、バックグラウンドグラフィクスプレーン、ビデオプレーン、イメージプレーン８、インタラクティブグラフィクスプレーン１０における記憶素子からライン単位の画素データを読み出して、ラインメモリ５０〜５４のそれぞれに格納するという転送処理を実現する。この転送処理にあたって、ラインメモリ５０〜５４のうち、画素データの転送先となるアドレスを変化させることで、第１実施形態に示したような記憶素子内の画素データの座標移動と等価の処理を実現する。
【０２４２】
図４０は、右方向のプレーンシフトをラインデータ毎に実行する過程を示す。（ａ）は、グラフィクスプレーンに存在するyライン目の画素データであり、（ｂ）は、ラインメモリに読み出された、yラインの画素データを示す。本図に示すように、プレーンオフセットがFピクセルであれば、yライン目の画素データのうち、(F+1,y)から(1919,0)までが、格納されることがわかる。そして、右端には、Ｆピクセル分の空きが存在することがわかる。
【０２４３】
（ｃ）は、透明画素データの追加を示す。Fピクセル分の空きに、透明画素データが追加されていることがわかる。
図４１は、左方向のプレーンシフトをラインデータ毎に実行する過程を示す。（ａ）は、グラフィクスプレーンに存在するyライン目の画素データであり、（ｂ）は、ラインメモリに読み出された画素データを示す。本図に示すように、プレーンオフセットがFピクセルであれば、yライン目の画素データのうち、(0,y)から(1919-F,0)までが、格納されることがわかる。そして、左端には、Ｆピクセル分の空きが存在することがわかる。
【０２４４】
（ｃ）は、左端への透明画素データの追加を示す。Fピクセル分の空きに、透明画素データが追加されていることがわかる。
以上で、プレーンシフトをラインデータ毎に実行する過程についての説明を終える。
プレーンシフトをラインデータ毎に実行するプレーンシフトエンジン１９は、図４２のフローチャートの処理手順をMPUに実行させるようなプログラムを作成して、再生装置に組込むことで実装することができる。以降、ソフトウェアによるプレーンシフトエンジン１９の実装について説明する。
【０２４５】
図４２は、ラインメモリへの読み出しの処理手順を示すフローチャートである。
ステップＳ１１１〜ステップＳ１１５は、ステップＳ１１１において変数iに0を設定した上、ステップＳ１１２〜ステップＳ１１５の処理を繰り返すループ構造になっている。本ループの終了条件は、変数iがライン数-1になることであり、かかるステップＳ１１４においてNoと判定される限り、変数iはインクリメントされて、ステップＳ１１２〜１１５の処理を繰り返すことになる。ステップＳ１１２では、グラフィクスプレーンにおける(X0,Yi)から(Xn-プレーンオフセット-1,Yi)までの画素データを読み出して、ラインメモリにおける(X0+プレーンオフセット)から(Xn)までに書き込む。ステップＳ１１３において、ラインメモリにおけるX0から〜までに透明画素データを書き込む。
【０２４６】
ステップＳ１２１〜ステップＳ１２５は、ステップＳ１２１において変数iに0を設定した上、ステップＳ１２２〜ステップＳ１２５の処理を繰り返すループ構造になっている。本ループの終了条件は、ステップＳ１２４において変数iがライン数-1になることであり、かかるステップＳ１２４においてNoと判定される限り、変数iはインクリメントされて、ステップＳ１２２〜１２５の処理を繰り返すことになる。ステップＳ１２２では、グラフィクスプレーンにおける(X0＋プレーンオフセット,Yi)から(Xn,Yi)までの画素データを読み出して、ラインメモリにおける(X0)から(Xn−プレーンオフセット-1)までに書き込む。ステップＳ１１３において、ラインメモリにおけるX0から(X0+プレーンオフセット-1)までに透明画素データを書き込む。
【０２４７】
以上で、左方向のプレーンシフトをラインデータ毎に実行する過程についての説明を終える。
以上のように本実施形態によれば、グラフィクスプレーンにおける画素データを、ライン毎に読み出す際、ラインメモリにおいて右方向のシフト、左方向のシフトを実現するので、グラフィクスプレーンに対するメモリアクセスの頻度を少なくすることができる。
【０２４８】
(備考)
以上、本願の出願時点において、出願人が知り得る最良の実施形態について説明したが、以下に示す技術的トピックについては、更なる改良や変更実施を加えることができる。各実施形態に示した通り実施するか、これらの改良・変更を施すか否かは、何れも任意的であり、実施する者の主観によることは留意されたい。
【０２４９】
(記録装置としての実施)
再生装置２００は、ビルドインメディアドライブ、リムーバブルメディアを含むローカルストレージを具備していて、これらへの書き込みを想定した構成になっているので、本願明細書に記載された再生装置は、記録装置としての機能を兼備しているといえる。再生装置２００が記録装置として機能する場合、以下の2つの態様によって、管理オブジェクトの書き込みを実行する。
i)再生装置２００が仮想パッケージを再生する機能をもつ場合、BD-Jオブジェクトの書き込みを以下のように行う。つまり、BD-ROMが装填された際、アプリケーションからの要求に従い、前記BD-ROMに対応する追加コンテンツを、ネットワークを介して、WWWサーバから取得する。取得された追加コンテンツはGUI管理テーブルが記述されてあるBD-Jオブジェクトを含む。再生装置２００において、記録制御を行う制御部は、前記アプリケーションからの要求に従い、取得したBD-Jオブジェクトをローカルストレージに書き込む。こうすることで、BD-ROMに記録されたコンテンツと、前記ローカルストレージに記録された追加コンテンツとを組み合わせることで、前記仮想パッケージを構築することが可能になる。
ここで前記BD-ROMには、ディスクルート証明書の識別子、BD-ROMコンテンツを頒布した組織の識別子、BD-ROMの識別子が記録されており、追加コンテンツが格納されるべき領域は、ディスクルート証明書識別子と、組織識別子と、BD-ROM識別子とを含むファイルパスによって特定される。
【０２５０】
前記アプリケーションは、追加コンテンツが格納されるべき領域を特定するファイルパスを、制御部に引き渡すことで書き込みを行う。
前記ローカルストレージが、ディレクトリ名、及び、ファイル名が２５５文字以下に制限されたファイルシステムを有している場合、前記ローカルストレージへの書き込みに用いられるファイルパスは、８文字以下のディレクトリ名、及び、ファイル名で、かつ拡張子名が３文字以下である８.３形式のファイルシステムにおけるファイル名と、拡張子との指定を含む。
ii)再生装置２００がオンデマンドマニュファクチャサービス又は電子的セルスルーサービス(MODEST)の供給を受ける機能をもつ場合、BD-Jオブジェクトの書き込みを以下のように行う。
【０２５１】
つまり再生装置２００がオンデマンドマニュファクチャサービス又は電子的セルスルーサービスによってBD-Jオブジェクトの供給を受ける際、リムーバブルメディアにおけるルートディレクトリの配下に、デフォルトのディレクトリと、MODESTディレクトリとをクリエイトして、MODESTディレクトリの配下に、BDMVディレクトリをクリエイトする。MODESTディレクトリは、ファーストMODESTディレクトリであり、ファーストMODESTディレクトリは、前記サービスを初めて受けた際、クリエイトされるMODESTディレクトリである。ユーザが２回目以降にサービスを受ける際、再生装置２００における制御部は、２回目以降のサービスに対応するMODESTディレクトリをクリエイトする。
【０２５２】
そして、上述したように、GUI管理テーブルが記述されたBD-Jオブジェクトを取得すると、制御部は、デフォルトディレクトリにスタートアッププログラムを書き込み、MODESTディレクトリ配下のBDMVディレクトリにBD-Jオブジェクトを書き込む。このスタートアッププログラムは、記録媒体が再生装置２００に装填された際、最初に実行されるべきプログラムであり、BDMVディレクトリを選択する操作をユーザから受け付けるためのメニューを再生装置２００に表示させて、ルート変更機能を再生装置２００に実行させる。このルート変更機能は、メニューに対する選択操作がユーザによってなされた場合、選択されたBDMVディレクトリが属するMODESTディレクトリをルートディレクトリとして認識させる機能である。かかるルート変更機能によって、BD-ROMを再生するのと同じ制御手順によって取得したBD-Jオブジェクトに基づく再生制御を実行することができる。
(Java（登録商標）アプリケーション)
BD-Jアプリケーションは、例えば電子商取引(EC(Electronic Commerce))のクライアントアプリケーションであってもよいし、ネット対戦型のオンラインゲームであってもよい。更に、検索エンジンと連携して、様々なオンラインサービスを、ユーザに供給するものでもよい。
(GUI管理テーブルを組込む単位)
各実施形態では、GUI管理テーブルをBD-Jオブジェクトに設けたが、GUI管理テーブルをプレイリスト情報やプレイアイテム情報に対応付けるようにもうけて、カレントプレイリストが特定のプレイリストになったタイミングまたはカレントプレイアイテムが、特定のプレイアイテムになった際、プレーンメモリの解放を行った上で、立体視再生のためのプレーンメモリの確保又は平面視再生のためのプレーンメモリの確保を実行してもよい。このようにすることで、メモリデバイスの領域管理がより決め細かい時間精度でなされることになる。
(立体視のためのビデオストリーム)
レフトビュー用、ライトビュー用のビデオストリームをBD-ROMに記録しておくというのは、一例に過ぎない。ピクチャ毎に、画素毎の奥行き値を表すビデオストリームをエンハンスドビュービデオストリームとしてBD-ROMに記録しておいて、再生に供してもよい。
【０２５３】
（実装すべきパッケージ）
再生装置の実施にあたっては、以下のBD-J Extensionを再生装置に実装するのが望ましい。BD-J Extensionは、GEM[1.0.2]を越えた機能を、Java（登録商標）プラットフォームに与えるために特化された、様々なパッケージを含んでいる。BD-J Extensionにて供給されるパッケージには、以下のものがある。
・org.bluray.media
このパッケージは、Java（登録商標） Media FrameWorkに追加すべき、特殊機能を提供する。アングル、音声、字幕の選択についての制御が、このパッケージに追加される。
・org.bluray.ti
このパッケージは、GEM[1.0.2]における"サービス"を"タイトル"にマップして動作するためのAPIや、BD-ROMからタイトル情報を問い合わせる機構や新たなタイトルを選択する機構を含む。
・org.bluray.application
このパッケージは、アプリケーションの生存区間を管理するためのAPIを含む。また、アプリケーションを実行させるにあたってのシグナリングに必要な情報を問い合わせるAPIを含む。
・org.bluray.ui
このパッケージは、BD-ROMに特化されたキーイベントのための定数を定義し、映像再生との同期を実現するようなクラスを含む。
・org.bluray.vfs
このパッケージは、データの所在に拘らず、データをシームレスに再生するため、BD-ROMに記録されたコンテンツ(on-discコンテンツ)と、BD-ROMに記録されていないLocal Storage上のコンテンツ(off-discコンテンツ)とをバインドする機構(Binding Scheme)を提供する。
【０２５４】
Binding Schemeとは、BD-ROM上のコンテンツ(AVクリップ、字幕、BD-Jアプリケーション)と、Local Storage上の関連コンテンツとを関連付けるものである。このBinding Schemeは、コンテンツの所在に拘らず、シームレス再生を実現する。
(グラフィクスプレーンの構成)
イメージプレーン８、インタラクティブグラフィクスプレーン１０がSDRAMによって構成される場合、SDRAMに格納されている画素データを移動させるための特有の制御が必要になる。
【０２５５】
SDRAMは、時分割でアドレスピンに出力されたROWアドレスをメモリアレイに出力するROWアドレスデコーダ、時分割でアドレスピンに出力されるたCOLUMNアドレスをメモリアレイに出力するCOLUMNアドレスデコーダ、メモリアレイから読み出された一ページ長のデータを保持してデータピンに出力するページデータバッファ、バースト読み出しすべきワード長をページデータバッファに指示するワード長レジスタとを有する。SDRAMは、記憶素子に、コンデンサを採用しているので、自然放電が発生する。そのため、SDRAMでは、各記憶素子に対して、リフレッシュを行う必要があり、そのリフレッシュのための付加回路が必要になる。
【０２５６】
SDRAMにピクチャが格納されでいる場合、RAS,CAS,WE,CS,CKEの状態の組合せにてコマンドを形成し、これとアドレスの組合せによって、読み出し／書き込みを実行することでプレーンシフトを行う。例えば、バースト転送モードを利用する場合、活性化コマンドを発行すると共に、SDRAMのアドレスピンにROWアドレスを発行する。発行から一定時間のディレイを行った上でREADコマンドを発行すると共に、アドレスピンにCOLUMNアドレスを発行する。
(プログラミング言語の適用範囲)
上記実施形態では、仮想マシンのプログラミング言語としてJava（登録商標）を利用したが、Java（登録商標）ではなく、UNIX（登録商標） OSなどで使われているB-Shellや、Perl Script、ECMA Scriptなど他のプログラミング言語であっても良い。
(マルチドライブ化)
上記実施形態では、記録媒体の一例としてBD-ROM、BD-ROMからデータを読み出す機能を有する具体的な手段の一例としてBD-ROMドライブを例に挙げて説明をした。しかしながら、BD-ROMは単なる一例であり、記録媒体としてBD-R、BD-RE、DVD、CDなどの光ディスク媒体であっても、これらの記録媒体に上述したデータ構造を有するデータが格納されていること、これらの記録媒体を読み取るドライブ装置があれば、上述の実施の形態で説明した動作が可能である。
【０２５７】
各実施の形態における記録媒体は、光ディスク、半導体メモリーカード等、パッケージメディア全般を含んでいる。本実施の形態の記録媒体は予め必要なデータが記録された光ディスク（例えばBD-ROM、DVD-ROMなどの既存の読み取り可能な光ディスク）を例に説明をしたが、これに限定される必要はなく、例えば、放送またはネットワークを経由して配信された本発明の実施に必要なデータを含んだ３Ｄコンテンツを光ディスクへ書き込む機能を有する端末装置（例えば左記の機能は再生装置に組み込まれていても良いし、再生装置とは別の装置であってもよい）を利用して書き込み可能な光ディスク（例えばBD-RE、DVD-RAMなどの既存の書き込み可能な光ディスク）に記録し、この記録した光ディスクを本発明の再生装置に適用しても本発明の実施は可能である。
【０２５８】
また、記録媒体は光ディスク以外にも例えば、SDメモリーカードなどのリムーバブルメディア（半導体メモリカード）であっても本発明の実施は可能である。
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カードなどの可搬性を有する半導体メモリーカード）に適用した場合においても、実施が可能である。
【０２６３】
例えば、BD-ROMに記録されるデータに相応するデータを例えば電子配信を利用して半導体メモリーカードに記録して、半導体メモリーカードから再生をするような構成としても良い。電子配信を利用して必要なデータを配信し、配信されたデータを記録する場合においても、配信されたデータのうちの一部または全てのデータに対して必要に応じて暗号化を行なって配信し、半導体メモリーに必要なデータについては暗号化がなされたままで記録するのが望ましい。
例えば電子配信を利用して、本実施の形態で説明をしたデータに相応するデータ（配信データ）を半導体メモリーに記録する動作について説明をする。
【０２６４】
上述の動作は本実施の形態において説明をした再生装置がそのような動作を行なえるように構成をされていても良いし、本実施の形態の再生装置とは別に半導体メモリーに配信データを記憶することを行う専用の端末装置にて行なうような形態であっても良い。ここでは再生装置が行なう例について説明をする。また記録先の半導体メモリーとしてSDカードを例に説明をする。
【０２６５】
再生装置が備えるスロットに挿入されたSDメモリーカードに配信データを記録する場合、まず配信データを蓄積する配信サーバ（図示せず）へ配信データの送信を要求する。このとき再生装置は挿入したSDメモリーカードを一意に識別するための識別情報（例えば個々のSDメモリーカード固有の識別番号、より具体的には、例えばSDメモリーカードのシリアル番号等）をSDメモリーカードから読み出して、読み出した識別情報を配信要求とともに、配信サーバへ送信する。
【０２６６】
この、SDメモリーカードを一意に識別するための識別情報は例えば上述のボリュームIDに相当する。
一方、配信サーバでは、配信するデータのうち必要なデータ（例えばビデオストリーム、オーディオストリーム等）が暗号解読に必要な鍵（例えばタイトルキー）を用いて暗号の解除ができるように暗号化がなされてサーバ上に格納されている。
【０２６７】
例えば配信サーバは、秘密鍵を保持しており、半導体メモリーカードの固有の識別番号のそれぞれに対して異なる公開鍵情報が動的に生成できるように構成されている。
また、配信サーバは、暗号化されたデータの解読に必要な鍵（タイトルキー）自身に対して暗号化ができるように構成されている（つまり暗号化タイトルキーを生成できるように構成されている）。
生成される公開鍵情報は例えば上述のMKB、ボリュームID及び暗号化タイトルキーに相当する情報を含む。暗号化されたデータは例えば半導体メモリー固有の識別番号、後述する公開鍵情報に含まれる公開鍵本体、および再生装置に予め記録されたデバイスキーの組み合わせが正しければ、暗号解読に必要な鍵（例えばデバイスキー、MKB及び半導体メモリー固有の識別番号を元に、暗号化タイトルキーを復号して得られるタイトルキー）が得られ、この得られた暗号解読に必要な鍵（タイトルキー）を用いて、暗号化されたデータの解読ができるものである。
次に、再生装置は、受信した公開鍵情報と配信データをスロットに挿入した半導体メモリーカードの記録領域に記録する。
【０２６８】
次に、半導体メモリーカードの記録領域に記録した公開鍵情報と配信データに含まれるデータのうち暗号化したデータを復号して再生する方法の一例について説明をする。
受信した公開鍵情報は例えば公開鍵本体（例えば上述のMKB及び暗号化タイトルキー）、署名情報、半導体メモリーカードの固有の識別番号、および無効にすべきデバイスに関する情報を示すデバイスリストが記録されている。
【０２６９】
署名情報には例えば、公開鍵情報のハッシュ値を含む。
デバイスリストには例えば、不正に再生がなされる可能性があるデバイスに関する情報が記載されている。これは例えば再生装置に予め記録されたデバイスキー、再生装置の識別番号、または再生装置が備えるデコーダの識別番号といったように、不正に再生される可能性がある装置、装置に含まれる部品、または機能（プログラム）といったものを一意に特定するための情報である。
【０２７０】
半導体メモリーカードの記録領域に記録した配信データのうち、暗号化されたデータの再生に関し、説明をする。
まず、公開鍵本体を利用して暗号化したデータを復号する前に復号鍵本体を機能させてよいかどうかに関するチェックを行う。
具体的には、
（１）  公開鍵情報に含まれる半導体メモリー固有の識別情報と半導体メモリーカードに予め記憶されている固有の識別番号とが一致するかどうかのチェック
（２）  再生装置内で算出した公開鍵情報のハッシュ値と署名情報に含まれるハッシュ値が一致するかのチェック
（３）  公開鍵情報に含まれるデバイスリストに示される情報に基づいて、再生を行う再生装置が不正な再生が可能かどうかのチェック（例えば公開鍵情報に含まれるデバイスリストに示されるデバイスキーと、再生装置に予め記憶されたデバイスキーが一致するかどうかのチェック）
を行なう。これらのチェックを行なう順番どのような順序で行なってもよい。
【０２７１】
上述の（１）〜（３）のチェックにおいて、公開鍵情報に含まれる半導体メモリー固有の識別情報と半導体メモリーに予め記憶されている固有の識別番号とが一致しない、再生装置内で算出した公開鍵情報のハッシュ値と署名情報に含まれるハッシュ値が一致しない、または、再生を行う再生装置が不正に再生される可能性があると判断した、のいずれかを満足すれば、再生装置は、暗号化されたデータの解読がなされないように制御する。
また、公開鍵情報に含まれる半導体メモリーカードの固有の識別情報と半導体メモリーカードに予め記憶されている固有の識別番号とが一致し、かつ再生装置内で算出した公開鍵情報のハッシュ値と署名情報に含まれるハッシュ値が一致し、かつ再生を行う再生装置が不正に再生される可能性がないと判断したのであれば、半導体メモリー固有の識別番号、公開鍵情報に含まれる公開鍵本体、および再生装置に予め記録されたデバイスキーの組み合わせが正しいと判断し、暗号解読に必要な鍵（デバイスキー、MKB及び半導体メモリー固有の識別番号を元に、暗号化タイトルキーを復号して得られるタイトルキー）を用いて、暗号化されたデータの解読を行なう。
例えば暗号化されたデータがビデオストリーム、オーディオストリームである場合、ビデオデコーダは上述の暗号解読に必要な鍵（暗号化タイトルキーを復号して得られるタイトルキー）を利用してビデオストリームを復号し（デコードし）、オーディオデコーダは、上述の暗号解読に必要な鍵を利用してオーディオストリームを復号する（デコードする）。
【０２７２】
このように構成をすることにより、電子配信時において不正利用される可能性がある再生装置、部品、機能（プログラム）などが分っている場合、これらを識別するための情報をデバイスリストに示して、配信するようにすれば、再生装置側がデバイスリストに示されているものを含むような場合には公開鍵情報（公開鍵本体）を用いた復号を抑止できるようにできるため、半導体メモリー固有の識別番号、公開鍵情報に含まれる公開鍵本体、および再生装置に予め記録されたデバイスキーの組み合わせが、たとえ正しくても、暗号化されたデータの解読がなされないように制御できるため、不正な装置上での配信データの利用を抑止することが可能となる。
また半導体メモリーカードに予め記録されている半導体メモリーカードの固有の識別子は秘匿性の高い記録領域に格納するような構成を採用するのが望ましい。何故ならば、半導体メモリーカードに予め記録されている固有の識別番号（例えばSDメモリーカードを例にすればSDメモリーカードのシリアル番号等）は改竄がなされると、違法コピーが容易になされてしまう。何故ならば複数の半導体メモリーカードには、それぞれ異なる固有の識別番号が割り当てられているが、この固有の識別番号が同一となるように改竄がなされてしまえば、上述の（１）の判定が意味を成さなくなり、改竄がなされた数に相当する違法コピーがなされてしまう可能性があるからである。
【０２７３】
従って、半導体メモリーカードの固有の識別番号といった情報は秘匿性が高い記録領域に記録するような構成を採用するのが望ましい。
このような構成を実現するために、例えば半導体メモリーカードは、半導体メモリーカードの固有の識別子と言った秘匿性の高いデータを記録するための記録領域を通常のデータを格納する記録領域（第１の記録領域と称す）とは別の記録領域（第２の記録領域と称す）に設けること、およびこの第２の記録領域へのアクセスをするための制御回路を設けるとともに、第２の記録領域へのアクセスには制御回路を介してのみアクセスできるような構成とする。
【０２７４】
例えば、第２の記録領域に記録されているデータは暗号化がなされて、記録されており、制御回路は、例えば暗号化されたデータを復号するための回路が組み込まれている。制御回路へ第２の記録領域へのデータのアクセスが合った場合には、暗号を復号し、復号したデータを返すように構成すれば良い。または、制御回路は第２の記録領域に記録されているデータの格納場所の情報を保持しており、データのアクセスの要求があれば、対応するデータの格納場所を特定し、特定した格納場所から読み取ったデータを返すような構成としても良い。
再生装置上で動作するアプリケーションで、電子配信を利用して半導体メモリーカードに記録する要求するアプリケーションは、メモリーカードＩ／Ｆを介して制御回路へ第２の記録領域に記録されたデータ（例えば半導体メモリ固有の識別番号）へのアクセス要求を発行すると、要求を受けた制御回路は第２の記録領域に記録されたデータを読み出して再生装置上で動作するアプリケーションへ返す。この半導体メモリーカードの固有の識別番号とともに必要なデータの配信要求を配信サーバに要求し、配信サーバから送られる公開鍵情報、および対応する配信データを第１の記録領域に記録するように構成すればよい。
【０２７５】
また、再生装置上で動作するアプリケーションで、電子配信を利用して半導体メモリーカードに記録を要求するアプリケーションは、メモリーカードＩ／Ｆを介して制御回路へ第２の記録領域に記録されたデータ（例えば半導体メモリ固有の識別番号）へのアクセス要求を発行する前に、アプリケーションの改竄がされていないかを事前にチェックすることが望ましい。改竄のチェックには例えば既存のＸ.５０９仕様に準拠したデジタル証明書を利用したチェックなどを利用しても良い。
【０２７６】
また、半導体メモリーカードの第１の記録領域に記録された配信データへのアクセスは半導体メモリーカードが有する制御回路を介してアクセスする必要は必ずしもない。
（プログラムの実施形態）
各実施形態に示したアプリケーションプログラムは、以下のようにして作ることができる。先ず初めに、ソフトウェア開発者は、プログラミング言語を用いて、各フローチャートや、機能的な構成要素を実現するようなソースプログラムを記述する。この記述にあたって、ソフトウェア開発者は、プログラミング言語の構文に従い、クラス構造体や変数、配列変数、外部関数のコールを用いて、各フローチャートや、機能的な構成要素を具現するソースプログラムを記述する。
【０２７７】
記述されたソースプログラムは、ファイルとしてコンパイラに与えられる。コンパイラは、これらのソースプログラムを翻訳してオブジェクトプログラムを生成する。
コンパイラによる翻訳は、構文解析、最適化、資源割付、コード生成といった過程からなる。構文解析では、ソースプログラムの字句解析、構文解析および意味解析を行い、ソースプログラムを中間プログラムに変換する。最適化では、中間プログラムに対して、基本ブロック化、制御フロー解析、データフロー解析という作業を行う。資源割付では、ターゲットとなるプロセッサの命令セットへの適合を図るため、中間プログラム中の変数をターゲットとなるプロセッサのプロセッサが有しているレジスタまたはメモリに割り付ける。コード生成では、中間プログラム内の各中間命令を、プログラムコードに変換し、オブジェクトプログラムを得る。
【０２７８】
ここで生成されたオブジェクトプログラムは、各実施形態に示したフローチャートの各ステップや、機能的構成要素の個々の手順を、コンピュータに実行させるような1つ以上のプログラムコードから構成される。ここでプログラムコードは、プロセッサのネィティブコード、JAVA（登録商標）バイトコードというように、様々な種類がある。プログラムコードによる各ステップの実現には、様々な態様がある。外部関数を利用して、各ステップを実現することができる場合、この外部関数をコールするコール文が、プログラムコードになる。また、1つのステップを実現するようなプログラムコードが、別々のオブジェクトプログラムに帰属することもある。命令種が制限されているRISCプロセッサでは、算術演算命令や論理演算命令、分岐命令等を組合せることで、フローチャートの各ステップを実現してもよい。
【０２７９】
オブジェクトプログラムが生成されるとプログラマはこれらに対してリンカを起動する。リンカはこれらのオブジェクトプログラムや、関連するライブラリプログラムをメモリ空間に割り当て、これらを１つに結合して、ロードモジュールを生成する。こうして生成されるロードモジュールは、コンピュータによる読み取りを前提にしたものであり、各フローチャートに示した処理手順や機能的な構成要素の処理手順を、コンピュータに実行させるものである。かかるプログラムをコンピュータ読取可能な記録媒体に記録してユーザに提供してよい。
(システムLSIの単体実施)
システムLSIとは、高密度基板上にベアチップを実装し、パッケージングしたものをいう。複数個のベアチップを高密度基板上に実装し、パッケージングすることにより、あたかも1つのLSIのような外形構造を複数個のベアチップに持たせたものも、システムLSIに含まれる(このようなシステムLSIは、マルチチップモジュールと呼ばれる。)。
【０２８０】
ここでパッケージの種別に着目するとシステムLSIには、QFP(クッド フラッド アレイ)、PGA(ピン グリッド アレイ)という種別がある。QFPは、パッケージの四側面にピンが取り付けられたシステムLSIである。PGAは、底面全体に、多くのピンが取り付けられたシステムLSIである。
これらのピンは、他の回路とのインターフェイスとしての役割を担っている。システムLSIにおけるピンには、こうしたインターフェイスの役割が存在するので、システムLSIにおけるこれらのピンに、他の回路を接続することにより、システムLSIは、再生装置２００の中核としての役割を果たす。
【０２８１】
かかるシステムLSIは、再生装置２００は勿論のこと、TVやゲーム、パソコン、ワンセグ携帯等、映像再生を扱う様々な機器に組込みが可能であり、本発明の用途を多いに広げることができる。
バッファやビデオデコーダ、オーディオデコーダ、グラフィクスデコーダをも、一体のシステムLSIにする場合、システム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部分をそれぞれ独立して並行開発することができ、より効率よく開発することが可能となる。なお、それぞれのインターフェイスの部分のきり方には、様々なきり方がある。例えば、システムLSI１０２に含まれるものとして示したビデオデコーダ５ａ、５ｂ、オーディオデコーダ９、合成部１５を一チップ化したとき、これらを制御するミドルウェアおよびこれらと対応するミドルウェアとの間のインターフェイスの部分について、チップを開発する側で開発をし、完成後、チップを再生装置に組み込むとともに、開発したミドルウェア、インターフェイス部分を再生装置内のメモリなどの記憶部に組み入れることにより、再生装置側の開発とチップ側の開発を並行して行なうことができるようになり、開発効率が向上する。
【０２９２】
開発したチップと開発したチップに関連するミドルウェアとの間のインターフェイス部分について、共通にすると、汎用性が高くなる。
なお、システムLSIにて構成をした部分に関しては、LSIでしか構成ができないというものではなく、システムLSIに含まれるべき機能に対応する信号処理回路を用いて構成をしても良いことは言うまでもない。
【産業上の利用可能性】
【０２９３】
本発明は、立体視ビデオストリームを再生する再生機器において、立体視ビデオストリーム上に字幕やグラフィクススを重ね合わせて表示する技術に関し、特に、立体視ビデオストリームだけでなく字幕やグラフィクスも合わせて立体的に出力し、重ね合わせる立体視ビデオ再生装置に適用可能である。
【符号の説明】
【０２９４】
１００  BD-ROM
２００  再生装置
３００  リモコン
４００  テレビ
５００  液晶シャッタゴーグル
１０１  フロントエンド部
１０２  システムLSI
１０３  メモリデバイス
１０４  バックエンド部
１０５  不揮発性メモリ
１０６  ホストマイコン
１０７  ネットワークI／F
１１０  BDドライブ
１１１  ローカルストレージ
１,２  リードバッファ
３  仮想ファイルシステム
４  デマルチプレクサ
５a,b ビデオデコーダ
６  ビデオプレーン
７a,b イメージデコーダ
７c,d イメージメモリ
８  イメージプレーン
９  オーディオデコーダ
１０  インタラクティブグラフィクスプレーン
１１  バックグラウンドプレーン
１２  再生状態／設定レジスタ(PSR)セット
１３  静的シナリオメモリ
１４  再生制御エンジン
１５  合成部１５
１６  HDMI送受信部
１７  左右処理記憶部
１８  表示機能フラグ保持部
１９  プレーンシフトエンジン
２０  オフセット設定部
２２  BD-Jプラットフォーム
２３  動的シナリオメモリ
２４  モード管理モジュール
２５  HDMVモジュール
２６  UO検知モジュール
２７a 静止画メモリ
２７b 静止画デコーダ
２８  表示モード設定イニシャル表示設定部
２９  表示モード記憶部
【図１】
0005395117.tif 000002
【図２】
0005395117.tif 000003
【図３】
0005395117.tif 000004
【図４】
0005395117.tif 000005
【図５】
0005395117.tif 000006
【図６】
0005395117.tif 000007
【図７】
0005395117.tif 000008
【図８】
0005395117.tif 000009
【図９】
0005395117.tif 000010
【図１０】
0005395117.tif 000011
【図１１】
0005395117.tif 000012
【図１２】
0005395117.tif 000013
【図１３】
0005395117.tif 000014
【図１４】
0005395117.tif 000015
【図１５】
0005395117.tif 000016
【図１６】
0005395117.tif 000017
【図１７】
0005395117.tif 000018
【図１８】
0005395117.tif 000019
【図１９】
0005395117.tif 000020
【図２０】
0005395117.tif 000021
【図２１】
0005395117.tif 000022
【図２２】
0005395117.tif 000023
【図２３】
0005395117.tif 000024
【図２４】
0005395117.tif 000025
【図２５】
0005395117.tif 000026
【図２６】
0005395117.tif 000027
【図２７】
0005395117.tif 000028
【図２８】
0005395117.tif 000029
【図２９】
0005395117.tif 000030
【図３０】
0005395117.tif 000031
【図３１】
0005395117.tif 000032
【図３２】
0005395117.tif 000033
【図３３】
0005395117.tif 000034
【図３４】
0005395117.tif 000035
【図３５】
0005395117.tif 000036
【図３６】
0005395117.tif 000037
【図３７】
0005395117.tif 000038
【図３８】
0005395117.tif 000039
【図３９】
0005395117.tif 000040
【図４０】
0005395117.tif 000041
【図４１】
0005395117.tif 000042
【図４２】
0005395117.tif 000043