<第1実施の形態>
[再生装置の構成例]
図1は、本発明を適用した再生装置の一実施の形態の構成例を示すブロック図である。
図1の再生装置20は、入力部21、制御部22、および再生部23により構成される。
入力部21は、キーボード、マウス、マイクロフォンなどよりなる。入力部21は、ユーザからの指令を受け付け、制御部22に供給する。制御部22は、入力部21からの指令に応じて再生部23を制御する。
再生部23は、ドライブ31、読み出しバッファ32、PIDフィルタ33、トランスポートプライオリティフィルタ34、オフセット生成部35、右目用ビデオ生成部36、左目用ビデオ生成部37、字幕/メニュー生成部38、3D表示データ生成部39、BD-Jグラフィックス生成部40、およびオーディオ生成部41により構成される。
ドライブ31は、制御部22の制御にしたがって、装着されたBD(Blu-Ray(登録商標) Disc)などよりなるディスク11を駆動する。これにより、ドライブ31は、ディスク11に記録されているインデックスファイル、ムービーオブジェクトファイル、BD-Jオブジェクトファイル、プレイリストファイル、クリップインフォメーションファイル、ストリームファイルなどを読み出す。
なお、インデックスファイルとは、ディスク11に記録されているタイトル番号の一覧と、そのタイトル番号に対応して実行されるオブジェクトの種類および番号とが記述されるファイルである。オブジェクトの種類としては、ムービーオブジェクトとBD-Jオブジェクトの2種類がある。
また、ムービーオブジェクトファイルとは、複数個のムービーオブジェクトが記述されるファイルである。ムービーオブジェクトには、ナビゲーションコマンドというプログラムが記述される。なお、以下では、ナビゲーションコマンドを特に区別する必要がない場合、単にコマンドという。
さらに、BD-Jオブジェクトファイルとは、複数個のBD-Jアプリケーションが記述されるファイルである。プレイリストファイルは、ムービーオブジェクトまたはBD-Jオブジェクトによってのみ再生されるファイルであり、これらのオブジェクトに記述される1つのコマンドで再生されるAVストリーム(詳細は後述する)に関する情報が記述される。
具体的には、プレイリストファイルは、単数または複数のプレイアイテムにより構成される。各プレイアイテムには、再生対象のAVストリームに対応するクリップインフォメーションファイルを指定する情報と、AVストリームの再生区間を表す時間情報が記述される。
AVストリームは、ストリームファイルとしてディスク11に記録されている。AVストリームは、左目用ビデオストリームおよび右目用ビデオストリーム、それらに対応するオーディオストリーム、字幕ストリーム、並びにメニューストリームがISO13818-2に準拠して多重化されたTS(Transport Stream)パケットにより構成される。
なお、左目用ビデオストリームは、MVC方式で符号化された左目用の主画像のストリームである。右目用ビデオストリームは、MVC方式で符号化された右目用の主画像のストリームであって、オフセットメタデータ(詳細は後述する)を含むストリームである。また、字幕ストリームは、字幕を2D表示するためのビットマップ形式やテキスト形式のデータを含むストリームであり、メニューストリームは、メニューボタンを2D表示するためのデータを含むストリームである。
オフセットメタデータとは、ピクチャ単位のオフセット情報を生成するためのデータである。具体的には、オフセットメタデータは、オフセット情報、このオフセット情報が設定される先頭のピクチャのPTS(Presentation Time Stamp)、および、このオフセット情報が設定されるピクチャの間隔を表すフレームレートにより構成される。なお、オフセット情報は、1GOP分の再生区間に対応する字幕、メニューボタン、BD-Jグラフィックスの画面(プレーン)ごとに記述される。また、BD-ROM(Blu-Ray Disc-Read Only Memory)規格では、メニューボタンとBD-Jグラフィックスは排他の関係にあるため、オフセット情報は、字幕の画面およびメニューボタンの画面に適用されるか、または、字幕の画面およびBD-Jグラフィックスの画面に適用される。オフセットメタデータの記述例の詳細は、後述する図11および図12を参照して説明する。
クリップインフォメーションファイルとは、プレイリストファイルに記述される時間情報と、AVストリームのパケット番号とを対応付けるマップが記述されるファイルである。従って、制御部22は、クリップインフォメーションファイルを参照することにより、各プレイアイテムに対応する再生対象のAVストリームのパケット番号を認識することができる。ストリームファイルは、AVストリームのファイルである。
ドライブ31は、読み出されたインデックスファイル、ムービーオブジェクトファイル、BD-Jオブジェクトファイル、プレイリストファイル、クリップインフォメーションファイルなどを制御部22に供給する。ドライブ31は、読み出されたストリームファイルのAVストリームを読み出しバッファ32に供給する。
読み出しバッファ32は、制御部22の制御にしたがって、ドライブ31から供給されるAVストリームを保持したり、保持しているAVストリームを読み出してPIDフィルタ33に供給したりする。
PIDフィルタ33は、読み出しバッファ32からのAVストリームの各TSパケットのパケットID(PID)に基づいて、AVストリームから、左目用ビデオストリーム、右目用ビデオストリーム、字幕ストリーム、メニューストリーム、およびオーディオストリームのTSパケットをそれぞれ抽出する。なお、PIDとは、TSパケットを構成するデータの種類ごとに固有のIDであり、パケットのヘッダに記述されている。
PIDフィルタ33は、抽出された右目用ビデオストリームのTSパケットをトランスポートプライオリティフィルタ34に供給し、左目用ビデオストリームのTSパケットを左目用ビデオ生成部37に供給する。また、PIDフィルタ33は、字幕ストリームおよびメニューストリームのTSパケットを字幕/メニュー生成部38に供給し、オーディオストリームのTSパケットをオーディオ生成部41に供給する。
トランスポートプライオリティフィルタ34は、PIDフィルタ33から供給される右目用ビデオストリームのTSパケットのヘッダに記述されているトランスポートプライオリティに基づいて、そのTSパケットのうちの所定のTSパケットをオフセット生成部35に供給する。また、トランスポートプライオリティフィルタ34は、PIDフィルタ33から供給される右目用ビデオストリームのTSパケットを右目用ビデオ生成部36に供給する。
オフセット生成部35は、トランスポートプライオリティフィルタ34から供給されるTSパケットのデータ部に配置されるオフセットメタデータに基づいてオフセット情報を生成し、3D表示データ生成部39に供給する。
右目用ビデオ生成部36は、トランスポートプライオリティフィルタ34から供給される右目用ビデオストリームのTSパケットのヘッダに記述されているトランスポートプライオリティに基づいて、そのTSパケットのデータ部に配置される右目用の主画像のビデオデータを復号する。右目用ビデオ生成部36は、復号の結果得られるビデオデータを右目用ビデオデータとして、3D表示データ生成部39に供給する。
また、左目用ビデオ生成部37は、PIDフィルタ33から供給される左目用ビデオストリームのTSパケットに含まれる左目用の主画像のビデオデータを復号する。左目用ビデオ生成部37は、復号の結果得られるビデオデータを左目用ビデオデータとして、3D表示データ生成部39に供給する。
字幕/メニュー生成部38は、字幕生成部51とメニュー生成部52により構成される。字幕生成部51は、ムービーオブジェクトの実行時に、PIDフィルタ33から供給される字幕ストリームのTSパケットに含まれる字幕データを3D表示データ生成部39に供給する。
メニュー生成部52は、ムービーオブジェクトの実行時に、PIDフィルタ33から供給されるメニューストリームのTSパケットに含まれるメニューデータを3D表示データ生成部39に供給する。
3D表示データ生成部39は、右目用ビデオ生成部36から供給される右目用ビデオデータと、左目用ビデオ生成部37から供給される左目用ビデオデータを、3Dビデオデータとする。また、3D表示データ生成部39は、オフセット生成部35から供給されるオフセット情報に基づいて、字幕生成部51から供給される字幕データに対応する字幕を、所定のオフセット値だけ所定のオフセット方向にそれぞれずらした字幕の字幕データを、右目用の字幕データおよび左目用の字幕データとして生成する。そして、3D表示データ生成部39は、右目用の字幕データと左目用の字幕データを、字幕を3D表示するための3D字幕データとする。
また、3D表示データ生成部39は、オフセット生成部35から供給されるオフセット情報に基づいて、3D字幕データと同様に、メニュー生成部52から供給されるメニューデータから、メニューボタンを3D表示するための3Dメニューデータを生成する。
さらに、3D表示データ生成部39は、3Dビデオデータ、3D字幕データ、および3Dメニューデータを、左右の各目用のデータごとに合成する。具体的には、3D表示データ生成部39は、左目用のビデオデータ、左目用の字幕データ、および左目用のメニューデータを合成して左目用の表示データを生成する。また、3D表示データ生成部39は、右目用のビデオデータ、右目用の字幕データ、および右目用のメニューデータを合成して右目用の表示データを生成する。
また、3D表示データ生成部39は、オフセット生成部35からのオフセット情報に基づいて、3D字幕データと同様に、BD-Jグラフィックス生成部40から供給される、メニューボタンなどからなるBD-Jグラフィックスを2D表示するためのグラフィックスデータから、BD-Jグラフィックスを3D表示するための3Dグラフィックスデータを生成する。
3D表示データ生成部39は、3Dビデオデータと3Dグラフィックスデータを、左右の各目用のデータごとに合成し、左目用の合成結果を左目用の表示データとし、右目用の合成結果を右目用の表示データとする。そして、3D表示データ生成部39は、左目用の表示データと右目用の表示データを3D表示データとして表示部61に供給し、左目用の画像と右目用の画像を表示部61に表示させる。
BD-Jグラフィックス生成部40は、BD-Jオブジェクトの実行時に、制御部22からの制御にしたがってグラフィックスデータを生成し、3D表示データ生成部39に供給する。
オーディオ生成部41は、PIDフィルタ33から供給されるオーディオストリームのTSパケットに含まれるオーディオデータを復号し、その結果得られるオーディオデータをスピーカ62に供給する。
表示部61は、3Dディスプレイなどにより構成される。表示部61は、3D表示データ生成部39から供給される3D表示データに基づいて左目用の画像と右目用の画像を表示する。その結果として、ユーザは、3D画像を見ることができる。
スピーカ62は、オーディオ生成部41から供給されるオーディオデータに対応する音声を出力する。
[右目用ビデオストリームの構成例]
図2は、右目用ビデオストリームの各GOP(Group of Picture)内の表示順で最初のディペンデントユニット(ピクチャ)の構成例を示す図である。
図2に示すように、右目用ビデオストリームの各GOP内の表示順で最初のディペンデントユニットには、先頭から順に、ディペンデントデリミタ(Dependent delimiter)、SPS(Sequence Parameter Set)、Subset PPS(Picture Parameter Set)、SEI(Supplemental Enhancement Information)、1以上のスライス(Slice)が配置される。
ディペンデントデリミタは、ディペンデントユニットの先頭を示す開始符号である。ディペンデントデリミタには、例えば、ディペンデントユニットに含まれるスライスの種類を示す情報が含まれている。
SPSは、シーケンス全体に関わる情報が含まれるヘッダである。SPSには、例えば、右目用ビデオストリームのプロファイルを示す情報や、右目用ビデオストリームのレベルを示す情報が含まれている。また例えば、SPSには、POC(Picture Order Count)を計算するために必要な情報が含まれている。POCとは、ピクチャの表示順序を示す情報である。
PPSは、ピクチャに関わる情報が含まれるヘッダである。例えば、PPSには、POCを計算するために必要な情報が含まれている。
SEIは、VCL(Video Coding Layer)のデコードに必須ではない付加情報を示す情報である。SEIは、ディスク11の作成者であるユーザが独自に定義する情報であるユーザSEI情報(BD User data SEI messages in MVC scalable nesting SEI)と、それ以外の情報(Other SEI messages in MVC scalable nesting SEI)に分類することができる。ディスク11では、少なくともユーザSEI情報としてオフセットメタデータ(offset metadata)が記述される。スライスは、MVC方式で符号化された右目用の主画像のビデオデータであり、ピクチャの実データである。
なお、1以上のスライスの後には、必要に応じて、フィラーデータ(Filler Data)、エンドオブシーケンス(End of Sequence)、エンドオブストリーム(End of Stream)が配置される。
フィラーデータは、データサイズの調整のために付加されるデータである。エンドオブシーケンスは、シーケンスの終端を表す情報である。エンドオブストリームは、右目用ビデオストリームの終端を表す情報である。
図3は、右目用ビデオストリームのTSパケットの生成方法を説明する図である。
図3に示すように、右目用ビデオストリームは、オフセットメタデータが他のデータとともにTSパケットに配置されないように、TSパケット化される。
具体的には、図3に示すように、PPSの最後のTSパケットTSn用のデータのデータサイズがTSパケットのデータ部のデータサイズより小さい場合、TSパケットTSnのデータサイズがTSパケットのデータサイズと同一になるように、TSパケットTSnのヘッダのアダプテーションフィールドを用いてヘッダ中に任意のスタッフィングバイトが挿入される。これにより、オフセットメタデータの先頭は、直前のPPSが配置されるTSパケットTSnとは別のTSパケットTSn+1にパケット化される。なお、TSiとは、i番目のTSパケットを表している。
また、図3に示すように、オフセットメタデータの最後のTSパケットTSm用のデータのデータサイズがTSパケットのデータ部のデータサイズより小さい場合、TSパケットTSmのデータサイズがTSパケットのデータサイズと同一になるように、TSパケットTSmのヘッダのアダプテーションフィールドを用いてヘッダ中に任意のスタッフィングバイトが挿入される。これにより、スライスの先頭は、直前のオフセットメタデータが配置されるTSパケットTSmとは別のTSパケットTSm+1にパケット化される。
さらに、図3に示すように、オフセットメタデータ以外のデータのTSパケットのヘッダには、トランスポートプライオリティとして0が記述される。また、オフセットメタデータのTSパケットのヘッダには、トランスポートプライオリティとして1が記述される。
詳細には、図4に示すように、TSパケットは、先頭のヘッダと、それ以降のデータ部により構成される。
図4に示すように、ヘッダには、8ビットの同期バイト(sync_byte)、1ビットのトランスポートエラーインジケータ(transport_error_indicator)、および1ビットのペイロードユニット開始インジケータ(payload_unit_start_indicator)が記述される。また、ヘッダには、1ビットのトランスポートプライオリティ(transport_priority)、13ビットのPID、および2ビットのトランスポートスクランブル制御(transport_scrambling_control)が記述される。さらに、ヘッダには、2ビットのアダプテーションフィールド制御(adaptation_field_control)、および2ビットの巡回カウンタ(continuity_counter)が記述される。なお、巡回カウンタは、フレーム毎に1だけインクリメントされるデータである。
アダプテーションフィールド制御が所定の値(図4の例では、「10」、「11」)である場合、ヘッダには、さらに、拡張ヘッダとしてのアダプテーションフィールドが配置される。
また、アダプテーションフィールド制御が所定の値(図4の例では、「01」、「11」)である場合、データ部にはペイロードが格納される。ペイロードとしては、例えば、右目用ビデオストリームが格納される。
右目用ビデオストリームのTSパケットでは、ペイロードとしてオフセットメタデータが記述される場合、そのTSパケットのヘッダのトランスポートプライオリティとして1が記述される。一方、ペイロードとしてオフセットメタデータ以外のデータが記述される場合、そのペイロードを含むTSパケットのヘッダのトランスポートプライオリティとして0が記述される。
即ち、トランスポートプライオリティは、データ部に配置されるデータがオフセットメタデータであるか、または、オフセットメタデータ以外のデータであるかを表すフラグ情報として用いられる。
従って、再生装置20は、トランスポートプライオリティによって、右目用ビデオストリームのTSパケットのうち、オフセットメタデータを含むTSパケットを抽出することができる。
[右目用ビデオ生成部とオフセット生成部の詳細構成例]
図5は、図1の右目用ビデオ生成部36とオフセット生成部35の詳細構成例を示すブロック図である。
図5に示すように、PIDフィルタ33には、トランスポートプライオリティとして0または1が記述されたヘッダを含むTSパケットが入力される。図5の例では、先頭からn番目乃至n+3番目のTSパケットがPIDフィルタ33に入力されている。n番目とn+3番目のTSパケットのトランスポートプライオリティは0であり、n+1番目とn+2番目のTSパケットのトランスポートプライオリティは1である。
PIDフィルタ33は、入力されたTSパケットのヘッダに記述されたPIDに基づいて、そのTSパケットのうち右目用ビデオストリームのTSパケットを抽出し、トランスポートプライオリティフィルタ34に供給する。
トランスポートプライオリティフィルタ34は、PIDフィルタ33から供給されるTSパケットを全て右目用ビデオ生成部36に供給するか、またはトランスポートプライオリティが0であるTSパケットのみを右目用ビデオ生成部36に供給する。
また、トランスポートプライオリティフィルタ34は、PIDフィルタ33から供給されるTSパケットのヘッダに記述されているトランスポートプライオリティが1である場合、そのTSパケットをオフセット生成部35に供給する。これにより、オフセット生成部35には、トランスポートプライオリティが1である右目用ビデオストリームのTSパケット、即ちオフセットメタデータがデータ部に配置されたTSパケットのみが供給される。
右目用ビデオ生成部36は、トランスポートバッファ71、エレメンタリバッファ72、およびビデオデコーダ73により構成される。
トランスポートバッファ71は、トランスポートプライオリティフィルタ34から供給されるTSパケットを蓄積する。トランスポートバッファ71は、蓄積されているTSパケットを所定のビットレートで読み出し、エレメンタリバッファ72に供給する。エレメンタリバッファ72は、トランスポートバッファ71から供給されるTSパケットを蓄積する。
ビデオデコーダ73は、汎用的なMVCデコーダにより構成される。ビデオデコーダ73は、エレメンタリバッファ72に蓄積されているTSパケットのトランスポートプライオリティに基づいて、そのTSパケットのうち、トランスポートプライオリティが0であるTSパケットのデータ部に配置されている右目用の主画像のビデオデータを所定のタイミングで引き抜く。そして、ビデオデコーダ73は、その右目用の主画像のビデオデータをMVC方式に対応する方式で復号し、その結果得られるビデオデータを右目用ビデオデータとして3D表示データ生成部39(図1)に供給する。
オフセット生成部35は、エクストラバッファ81およびオフセットデコーダ82により構成される。
エクストラバッファ81は、トランスポートプライオリティフィルタ34から供給される、トランスポートプライオリティが1であるTSパケットを蓄積する。
オフセットデコーダ82は、エクストラバッファ81に蓄積されているTSパケットのデータ部に配置されるオフセットメタデータを所定のタイミングで引き抜く。オフセットデコーダ82は、そのオフセットメタデータに基づいてオフセット情報を生成し、3D表示データ生成部39(図1)に供給する。
[再生装置の処理]
図6は、再生装置20のオフセット生成処理を説明するフローチャートである。このオフセット生成処理は、例えば、PIDフィルタに新たなTSパケットが入力されたとき、開始される。
ステップS11において、PIDフィルタ33は、入力されたTSパケットのPIDに基づいて、そのTSパケットが右目用ビデオストリームのTSパケットであるかどうかを判定する。ステップS11で入力されたTSパケットが右目用ビデオストリームのTSパケットではないと判定された場合、処理は終了する。
一方、ステップS11で入力されたTSパケットが右目用ビデオストリームのTSパケットであると判定された場合、PIDフィルタ33は、そのTSパケットをトランスポートプライオリティフィルタ34に供給する。
そして、ステップS12において、トランスポートプライオリティフィルタ34は、PIDフィルタ33から供給されるTSパケットのヘッダに記述されたトランスポートプライオリティが1であるかどうかを判定する。ステップS12でトランスポートプライオリティが1ではないと判定された場合、即ちトランスポートプライオリティが0である場合、処理は終了する。
一方、ステップS12でトランスポートプライオリティが1であると判定された場合、トランスポートプライオリティフィルタ34は、PIDフィルタ33から供給されるTSパケットをトランスポートバッファ71(図5)とエクストラバッファ81に供給する。
そして、ステップS13において、エクストラバッファ81は、トランスポートプライオリティフィルタ34から供給されるTSパケットを蓄積する。
ステップS14において、オフセットデコーダ82は、エクストラバッファ81に蓄積されているTSパケットのデータ部に配置されているオフセットメタデータを引き抜く。
ステップS15において、オフセットデコーダ82は、ステップS14で引き抜かれたオフセットメタデータに基づいてオフセット情報を生成し、3D表示データ生成部39に供給する。そして処理は終了する。
図7は、ムービーオブジェクト実行時の再生装置20の3D表示処理のフローチャートである。この3D表示処理は、例えば、オフセットメタデータ、左目用ビデオデータ、右目用ビデオデータ、字幕データ、およびメニューデータが3D表示データ生成部39に入力されたとき、開始される。
ステップS31において、3D表示データ生成部39は、オフセット生成部35から入力されるオフセット情報、右目用ビデオ生成部36から入力される右目用ビデオデータ、左目用ビデオ生成部37から入力される左目用ビデオデータ、字幕生成部51から入力される字幕データ、およびメニュー生成部52から入力されるメニューデータを取得する。
ステップS32において、3D表示データ生成部39は、オフセット情報に基づいて、右目用ビデオデータ、左目用ビデオデータ、字幕データ、およびメニューデータから3D表示データを生成する。
ステップS33において、3D表示データ生成部39は、ステップS32で生成された3D表示データに基づいて、3D画像を表示部61に表示させる。そして処理は終了する。
なお、BD-Jオブジェクト実行時の3D表示処理は、字幕データとメニューデータがグラフィックスデータに代わる以外、図7の3D表示処理と同様であるので、説明は省略する。
[記録装置の構成例]
図8は、ディスク11に右目用ビデオストリームを記録する記録装置100の構成例を示すブロック図である。
図8の記録装置100は、ビデオ取得部101、ビデオエンコーダ102、オフセット取得部103、バッファ104、PESパケット化部105、TSパケット化部106、ドライブ107、および制御部108により構成される。
ビデオ取得部101は、外部から入力される右目用の主画像のビデオデータを取得し、ビデオエンコーダ102に供給する。ビデオエンコーダ102は、ビデオ取得部101から供給されるビデオデータをMVC方式で符号化し、その結果得られるES(Elementary Stream)をバッファ104に供給する。なお、このESのSEIにはオフセットメタデータを配置するための空き領域が設けられている。
オフセット取得部103は、外部から入力されるオフセットメタデータを取得し、オフセットメタデータをバッファ104に供給する。
バッファ104は、ビデオバッファ111とオフセットバッファ112により構成される。ビデオバッファ111は、ビデオエンコーダ102から供給されるビデオデータのESを格納する。ビデオバッファ111は、制御部108からの制御に基づいて、自分自身に格納されているESを読み出し、そのESのSEIに設けられた空き領域にオフセットバッファ112から供給されるオフセットメタデータを配置して、PESパケット化部105に供給する。
オフセットバッファ112は、オフセット取得部103から供給されるオフセットメタデータを格納する。オフセットバッファ112は、制御部108からの制御に基づいて、自分自身に格納されているオフセットメタデータを読み出し、ビデオバッファ111に供給する。
PESパケット化部105は、制御部108からの制御に基づいて、ビデオバッファ111から供給されるESをPESパケットにパケット化する。
TSパケット化部106は、制御部108から供給されるトランスポートプライオリティに基づいて、PESパケット化部105から供給されるPESパケットを、TSパケットにパケット化する。具体的には、TSパケット化部106は、制御部108から供給されるトランスポートプライオリティが記述されたヘッダを含み、PESパケットがデータ部に配置されたTSパケットを生成する。なお、このTSパケットのヘッダには、右目用ビデオストリームに対応するPIDも記述される。TSパケット化部106は、生成されたTSパケットをドライブ107に供給する。
ドライブ107は、制御部108からの制御に基づいて、TSパケット化部106から供給されるTSパケットをディスク11に記録する。
制御部108は、バッファ104に格納されたビデオデータのESおよびオフセットメタデータを監視する。また、制御部108は、PTSを管理する。さらに、制御部108は、PESパケット化部105、TSパケット化部106、およびドライブ107の各部を制御する。
具体的には、例えば、制御部108は、TSパケット化部106にPESパケット化されたビデオデータが入力される場合、トランスポートプライオリティとして0をTSパケット化部106に供給する。一方、TSパケット化部106にPESパケット化されたオフセットメタデータが入力される場合、トランスポートプライオリティとして1をTSパケット化部106に供給する。
[記録装置の処理の説明]
図9は、図8の記録装置100の記録処理を説明するフローチャートである。この記録処理は、例えば、PESパケット化部105からTSパケット化部106にPESパケットが入力されたとき開始される。
ステップS51において、TSパケット化部106は、TSパケットのデータ部のデータサイズ分のPESパケットが供給されたかどうかを判定する。ステップS51でTSパケットのデータ部のデータサイズ分のPESパケットがまだ供給されていない場合、処理はステップS52に進む。
ステップS52において、TSパケット化部106は、制御部108から供給されるトランスポートプライオリティが変更されたかどうかを判定する。ステップS52でトランスポートプライオリティが変更されていないと判定された場合、処理はステップS51に戻る。そして、TSパケットのデータ部のデータサイズ分のPESパケットが供給されたか、または、トランスポートプライオリティが変更されるまで、ステップS51およびS52の処理が繰り返される。
一方、ステップS52でトランスポートプライオリティが変更されたと判定された場合、処理はステップS53に進む。ステップS53において、TSパケット化部106は、PESパケット化部105からのPESパケットがデータ部に配置される生成対象のTSパケットのデータサイズがTSパケットのデータサイズと同一になるように、アダプテーションフィールドを用いて生成対象のTSパケットのヘッダにスタッフィングデータを挿入する。具体的には、TSパケット化部106は、TSパケットのデータ部のデータサイズからPESパケットのデータサイズを減算した値分のスタッフィングデータを、TSパケットのヘッダのアダプテーションフィールドに挿入する。そして処理はステップS54に進む。
また、ステップS51でTSパケットのデータ部のデータサイズ分のPESパケットが供給されたと判定された場合、処理はステップS54に進む。
ステップS54において、TSパケット化部106は、PESパケット化部105から供給されるPESパケットを、TSパケットのデータ部に配置する。
ステップS55において、TSパケット化部106は、制御部108から供給されたデータ部に配置されたPESパケットに対するトランスポートプライオリティが0であるかどうかを判定する。ステップS55でトランスポートプライオリティが0であると判定された場合、処理はステップS56に進む。
ステップS56において、TSパケット化部106は、トランスポートプライオリティとして0が記述されたヘッダをデータ部に付加して、TSパケットを生成する。これにより、PESパケット化された右目用の主画像のビデオデータがデータ部に配置され、ヘッダのトランスポートプライオリティとして0が記述されたTSパケットが生成される。そして、TSパケット化部106は、生成されたTSパケットをドライブ107に供給し、処理をステップS58に進める。
一方、ステップS55でトランスポートプライオリティが0であると判定された場合、処理はステップS57に進む。ステップS57において、TSパケット化部106は、トランスポートプライオリティとして1が記述されたヘッダをデータ部に付加して、TSパケットを生成する。これにより、PESパケット化されたオフセットメタデータがデータ部に配置され、ヘッダのトランスポートプライオリティとして1が記述されたTSパケットが生成される。そして、TSパケット化部106は、生成されたTSパケットをドライブ107に供給し、処理をステップS58に進める。
ステップS58において、ドライブ107は、TSパケット化部106から供給されるTSパケットをディスク11に記録する。そして処理は終了する。
なお、上述した説明では、右目用ビデオストリームにオフセットメタデータが含まれるようにしたが、左目用ビデオストリームに含まれるようにしてもよい。また、右目用ビデオストリームと左目用ビデオストリームの両方に含まれるようにしてもよい。
また、上述した説明では、右目用ビデオストリームが、MVC方式のディペンデントストリームとなり、左目用ビデオストリームが、MVC方式のベースストリームとなるように符号化が行われたが、左目用ビデオストリームがディペンデントストリームとなり、右目用ビデオストリームがベースストリームとなるように符号化が行われるようにしてもよい。
本発明は、主画像の2D表示に用いられるビデオストリームと主画像のオフセット情報がディスクに記録される場合にも適用することができる。この場合、例えば、主画像の2D表示に用いられるビデオストリームに副画像のオフセットメタデータが含まれるとともに、主画像のオフセット情報が含まれる。
上述した一連の処理の少なくとも一部は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理の少なくとも一部をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
図10は、上述した一連の処理の少なくとも一部をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。
CPU(Central Processing Unit)201、ROM(Read Only Memory)202、RAM(Random Access Memory)203は、バス204により相互に接続されている。
バス204には、さらに、入出力インタフェース205が接続されている。入出力インタフェース205には、キーボード、マウスなどよりなる入力部206、ディスプレイ、スピーカなどよりなる出力部207が接続される。また、バス204には、ハードディスクや不揮発性のメモリなどよりなる記憶部208、ネットワークインタフェースなどよりなる通信部209、リムーバブルメディア211を駆動するドライブ210が接続される。
以上のように構成されるコンピュータでは、CPU201が、例えば、記憶部208に記憶されているプログラムを入出力インタフェース205及びバス204を介してRAM203にロードして実行することにより、上述した一連の処理が行われる。
CPU201が実行するプログラムは、例えばリムーバブルメディア211に記録して、あるいは、ローカルエリアネットワーク、インターネット、デジタル放送といった、有線または無線の伝送媒体を介して提供され、記憶部208にインストールされる。
<オフセットメタデータの記述例>
図11および図12は、オフセットメタデータの記述例を示す図である。
図11に示すように、オフセットメタデータには、そのオフセットメタデータが含まれる右目用ビデオストリームのフレームレート(frame_rate)が4ビットで記述され、その右目用ビデオストリームの表示順で先頭のピクチャのPTS(offset_start_PTS)が33(=3+15+15)ビットで記述される。このフレームレートとPTSによりオフセット情報を適用する画面の再生時刻を特定することができる。また、オフセットメタデータには、そのオフセットメタデータがSEIに含まれるGOPのフレーム数(number of frames)が8ビットで記述される。さらに、オフセットメタデータには、そのGOPに対応して設定された字幕のオフセット情報の種類の数(number_of_PG_offset_sequences)、および、そのGOPに対応して設定されたメニューボタンのオフセット情報の種類の数(number_of_IG_offset_sequences)がそれぞれ6ビットで記述される。なお、再生対象に適用するオフセット情報の種類は、プレイリストなどによって指定される。
また、図11に示すように、オフセットメタデータには、字幕のオフセット情報の種類ごとに、字幕のオフセット情報(PG_offset_sequence)が記述され、メニューボタンのオフセット情報の種類ごとに、メニューボタンのオフセット情報(IG_offset_sequence)が記述される。
オフセット情報(PG_offset_sequence,IG_offset_sequence)としては、図12Aや図12Bに示すように、オフセット方向を表す情報(offset_direction_flag)が1ビットで記述されるとともに、オフセット値を表す情報(offset_value)が7ビットで記述される。
オフセット方向を表す情報としては、例えば、オフセット方向が、表示面に対して手前側(ユーザ側)に3D画像を飛び出させる方向である場合「0」が用いられ、奥側に3D画像を引っ込ませる方向である場合「1」が用いられる。また、オフセット値は、例えば画素数で表現される。
オフセットメタデータには、さらに、図11に示すように、「0」が8回連続することを防止するために1ビットのマーカービット(marker_bit)が随所に配置される。具体的には、例えば、MVC方式の復号では、復号対象のデータにおいて「0」が8回連続すると、そのデータはスタートコードであると判定される。そのため、オフセットメタデータには、そのオフセットメタデータの一部がスタートコードを表さないように、マーカービットとして「1」が含まれる。また、オフセットメタデータには、空き領域(reserved_for_future_use)も配置される。
なお、図11の例では、「0」が8回連続しないようにマーカービットが配置されるが、マーカービットは、復号時にオフセットメタデータの一部または全部が所定のコードと認識されないように配置されればよく、マーカービットの配置方法は図11の方法に限定されない。
<3D表示データ生成部の詳細構成例>
図13は、図1の3D表示データ生成部39の詳細構成例を示すブロック図である。
図13の3D表示データ生成部39は、字幕プレーン531、メニュープレーン532、左目用表示データ生成部533、および右目用表示データ生成部534により構成される。
字幕プレーン531は、字幕生成部51(図1)から供給される字幕データを保持する。
メニュープレーン532は、メニュー生成部52(図1)から供給されるメニューデータを保持する。
左目用表示データ生成部533は、左目用ビデオプレーン541、透過部542、オフセット付加部543、透過部544、合成部545、透過部546、オフセット付加部547、透過部548、および合成部549により構成される。
左目用ビデオプレーン541は、左目用ビデオ生成部37(図1)から供給される左目用ビデオデータを保持する。
透過部542は、左目用ビデオプレーン541に保持されている左目用ビデオデータを読み出す。透過部542は、左目用の主画像が予め設定されている透過率(1−α1L)で透過するように、読み出された左目用ビデオデータを変換する。透過部542は、変換後の左目用ビデオデータを合成部545に供給する。
オフセット付加部543は、字幕プレーン531から字幕データを読み出す。オフセット付加部543は、図1のオフセット生成部35から供給される字幕データのオフセット情報に基づいて、読み出された字幕データから左目用の字幕データを生成する。オフセット付加部543は、その左目用の字幕データを透過部544に供給する。
透過部544は、オフセット付加部547から供給される左目用の字幕データを、左目用の字幕が予め設定されている透過率α1Lで透過するように変換する。透過部544は、変換後の左目用の字幕データを合成部545に供給する。
合成部545は、透過部542から供給される左目用のビデオデータと透過部544から供給される左目用の字幕データを合成し、その結果得られるデータを透過部546に供給する。
透過部546は、合成部545から供給されるデータに対応する画像が透過率(1−α2L)で透過するように、そのデータを変換し、合成部549に供給する。
オフセット付加部547は、メニュープレーン532からメニューデータを読み出す。オフセット付加部547は、図1のオフセット生成部35から供給されるメニューボタンのオフセット情報に基づいて、読み出されたメニューデータから左目用のメニューデータを生成する。オフセット付加部547は、その左目用のメニューデータを透過部548に供給する。
透過部548は、オフセット付加部547から供給される左目用のメニューデータを、左目用のメニューボタンが予め設定されている透過率α2Lで透過するように変換する。透過部548は、変換後の左目用のメニューデータを合成部549に供給する。
合成部549は、透過部546から供給されるデータと透過部548から供給されるメニューデータとを合成し、その結果得られるデータを左目用の表示データとして出力する。
右目用表示データ生成部534は、右目用ビデオプレーン551、透過部552、オフセット付加部553、透過部554、合成部555、透過部556、オフセット付加部557、透過部558、および合成部559により構成される。右目用表示データ生成部534の各部の処理は、処理の対象が右目用のデータであることを除いて左目用表示データ生成部533の各部の処理と同様であるので、説明は省略する。
<3D表示データにおける重畳順の説明>
図14は、3D表示データ生成部39により生成される3D表示データにおける重畳順を説明する図である。
図14Aに示すように、3D表示データのうちの左目用の表示データの重畳順序は、下から順に、左目用ビデオデータ、左目用の字幕データ、および左目用のメニューデータの順である。また、図14Bに示すように、右目用の表示データの重畳順序は、下から順に、右目用ビデオデータ、右目用の字幕データ、および右目用のメニューデータの順である。
本明細書において、プログラム記録媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。