JP4985886B2 - 再生装置、再生方法、および記録方法 - Google Patents

再生装置、再生方法、および記録方法 Download PDF

Info

Publication number
JP4985886B2
JP4985886B2 JP2012013605A JP2012013605A JP4985886B2 JP 4985886 B2 JP4985886 B2 JP 4985886B2 JP 2012013605 A JP2012013605 A JP 2012013605A JP 2012013605 A JP2012013605 A JP 2012013605A JP 4985886 B2 JP4985886 B2 JP 4985886B2
Authority
JP
Japan
Prior art keywords
stream
picture
view video
unit
video stream
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2012013605A
Other languages
English (en)
Other versions
JP2012124924A (ja
Inventor
しのぶ 服部
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2012013605A priority Critical patent/JP4985886B2/ja
Publication of JP2012124924A publication Critical patent/JP2012124924A/ja
Application granted granted Critical
Publication of JP4985886B2 publication Critical patent/JP4985886B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本技術は、再生装置、再生方法および記録方法に関し、特に、例えばH.264 AVC/MVCプロファイル規格で符号化して得られたDependent view videoのストリームのGOP構造を定義してBD等の記録媒体に記録させ、またはGOP構造が定義された記録媒体を再生することができるようにした再生装置、再生方法および記録方法に関する。
映画等のコンテンツとしては2次元画像のコンテンツが主流であるが、最近では、立体視が可能な立体視画像のコンテンツが注目を集めている。
立体視画像の表示には、専用のデバイスが必要であり、そのような立体視用デバイスとしては、例えば、NHK(日本放送協会)が開発したIP(Integral Photography)立体画像システムがある。
立体視画像の画像データは、複数の視点の画像データ(複数の視点から撮影された画像の画像データ)からなり、視点の数が多く、かつ、視点が広範囲にわたるほど、様々な方向から被写体を見ることができる、いわば「のぞけるテレビ」を実現することができる。
立体視画像のうちの、視点の数が最も少ないのは視点の数が2視点のステレオ画像(いわゆる3D画像)である。ステレオ画像の画像データは、左眼で観察される画像である左画像のデータと、右眼で観察される画像である右画像のデータとからなる。
一方、映画等の、高解像度の画像のコンテンツはそのデータ量が多いことから、そのようなデータ量の多いコンテンツを記録するには大容量の記録媒体が必要になる。
そのような大容量の記録媒体としては、BD(Blu-Ray(登録商標))-ROM(Read Only Memory)等のBlu-Ray(登録商標) Disc(以下、BDともいう)がある。
特開2005−348314号公報
ところで、BDの規格では、ステレオ画像を含む立体視画像の画像データを、BDにどのように記録し、また、再生するかは規定されていない。
例えば、ステレオ画像の画像データは、左画像のデータのストリームと右画像のデータのストリームの2本のデータストリームからなる。このため、この2本のデータストリームのGOP構造についても定義し、一致させなければ不都合が生じることがある。
本技術はこのような状況に鑑みてなされたものであり、例えばH.264 AVC/MVCプロファイル規格で符号化して得られたDependent view videoのストリームのGOP構造を定義してBD等の記録媒体に記録させ、またはGOP構造が定義された記録媒体を再生することができるようにするものである。
本技術の一側面の再生装置は、2つの視点から撮影された第1のビデオストリームと第2のビデオストリームのうちの第1のビデオストリームを、Iピクチャから、復号順で未来の、次のIピクチャの直前のピクチャまでの集合を単位とし、該単位内の、前記Iピクチャよりも表示順で未来のピクチャを、該単位より過去の単位内のピクチャから予測することを禁止してH.264 AVC/MVCによって符号化して得られた基本ストリームと、前記第2のビデオストリームを、Anchorピクチャから、復号順で未来の、次のAnchorピクチャの直前のピクチャまでの集合を単位とし、該単位内の、前記Anchorピクチャよりも表示順で未来のピクチャを、該単位より過去の単位内のピクチャから予測することを禁止するとともに、該単位を構成するピクチャの数を、対応する前記基本ストリームの単位を構成するピクチャの数と一致させるようにH.264 AVC/MVCによって符号化して得られた拡張ストリームと、前記Iピクチャの表示時刻と前記基本ストリーム上の位置とを対応付けた第1のテーブル情報と、前記Anchorピクチャの表示時刻と前記拡張ストリーム上の位置とを対応付けた第2のテーブル情報とを記録媒体から読み出す読み出し部と、前記記録媒体から読み出された前記基本ストリームを、前記第1のテーブル情報に基づいて所定のIピクチャから復号し、前記拡張ストリームを、前記第2のテーブル情報に基づいて、前記所定のIピクチャと表示時刻が同じAnchorピクチャから復号する復号部とを備える。
固定値として割り当てられた第1のPIDに基づいて、前記記録媒体から読み出された第1のトランスポートストリームから前記基本ストリームを構成するパケットを分離する第1の分離部と、固定値として割り当てられた第2のPIDに基づいて、前記記録媒体から読み出された第2のトランスポートストリームから前記拡張ストリームを構成するパケットを分離する第2の分離部と、前記第1の分離部により分離された前記基本ストリームのパケットを記憶する第1のバッファと、前記第2の分離部により分離された前記拡張ストリームのパケットを記憶する第2のバッファとをさらに設けることができる。この場合、前記復号部には、前記第1のバッファにパケットが記憶された前記基本ストリームを復号し、前記第2のバッファにパケットが記憶された前記拡張ストリームを復号させることができる。
復号して得られた前記基本ストリームを構成する各ピクチャのデータと前記拡張ストリームを構成する各ピクチャのデータを記憶する第3のバッファと、前記第3のバッファに記憶された前記基本ストリームを構成する各ピクチャのデータを左目用と右目用のうちの一方のピクチャのデータとして出力し、前記第3のバッファに記憶された前記拡張ストリームを構成する各ピクチャのデータを左目用と右目用のうちの他方のピクチャのデータとして出力する出力部とをさらに設けることができる。
本技術によれば、例えばH.264 AVC/MVCプロファイル規格で符号化して得られたDependent view videoのストリームのGOP構造を定義してBD等の記録媒体に記録させ、またはGOP構造が定義された記録媒体を再生することができる。
本技術を適用した再生装置を含む再生システムの構成例を示す図である。 撮影の例を示す図である。 MVCエンコーダの構成例を示すブロック図である。 参照画像の例を示す図である。 TSの構成例を示す図である。 TSの他の構成例を示す図である。 TSのさらに他の構成例を示す図である。 AVストリームの管理の例を示す図である。 Main PathとSub Pathの構造を示す図である。 光ディスクに記録されるファイルの管理構造の例を示す図である。 PlayListファイルのシンタクスを示す図である。 図11にあるreserved_for_future_useの使い方の例を示す図である。 3D_PL_typeの値の意味を示す図である。 view_typeの値の意味を示す図である。 図11のPlayList()のシンタクスを示す図である。 図15のSubPath()のシンタクスを示す図である。 図16のSubPlayItem(i)のシンタクスを示す図である。 図15のPlayItem()のシンタクスを示す図である。 図18のSTN_table()のシンタクスを示す図である。 再生装置の構成例を示すブロック図である。 図20のデコーダ部の構成例を示す図である。 ビデオストリームの処理を行う構成を示す図である。 ビデオストリームの処理を行う構成を示す図である。 ビデオストリームの処理を行う他の構成を示す図である。 Access Unitの例を示す図である。 ビデオストリームの処理を行うさらに他の構成を示す図である。 合成部と、その前段の構成を示す図である。 合成部と、その前段の構成を示す他の図である。 ソフト製作処理部の構成例を示すブロック図である。 ソフト製作処理部を含む各構成の例を示す図である。 記録装置に設けられる3D video TS生成部の構成例を示す図である。 記録装置に設けられる3D video TS生成部の他の構成例を示す図である。 記録装置に設けられる3D video TS生成部のさらに他の構成例を示す図である。 Access Unitをデコードする再生装置側の構成を示す図である。 デコード処理を示す図である。 Close GOP構造を示す図である。 Open GOP構造を示す図である。 GOP内の最大フレーム・フィールド数を示す図である。 Close GOP構造を示す図である。 Open GOP構造を示す図である。 EP_mapに設定されたデコード開始位置の例を示す図である。 Dependent view videoのGOP構造を定義しない場合に生じる問題について示す図である。 ピクチャサーチの概念を示す図である。 光ディスク上に記録されたAVストリームの構造を示す図である。 Clip AVストリームの例を示す図である。 図45のClip AVストリームに対応したEP_mapを概念的に示す図である。 SPN_EP_startが指すソースパケットのデータ構造の例を示す図である。 EP_mapに含まれるサブテーブルを示す図である。 エントリPTS_EP_coarseおよびエントリPTS_EP_fineのフォーマットの例を示す図である。 エントリSPN_EP_coarseおよびエントリSPN_EP_fineのフォーマットの例を示す図である。 Access Unitの構成を示す図である。 記録装置の構成例を示すブロック図である。 図52のMVCエンコーダの構成例を示すブロック図である。 記録装置の記録処理について説明するフローチャートである。 図54のステップS2において行われる符号化処理について説明するフローチャートである。 再生装置の構成例を示すブロック図である。 図56のMVCデコーダの構成例を示すブロック図である。 再生装置の再生処理について説明するフローチャートである。 図58のステップS32において行われるデコード処理について説明するフローチャートである。 図58のステップS32において行われるデコード処理について説明する、図59に続くフローチャートである。 再生装置のランダムアクセス再生処理について説明するフローチャートである。 Base view videoストリームとDependent view videoストリームの状態を示す図である。 Base view videoストリームにおけるHRD parametersの符号化位置の例を示す図である。 図63に示す位置にHRD parametersを符号化した場合の記述形式を示す図である。 Base view videoストリームにおけるmax_dec_frame_bufferingの符号化位置の例を示す図である。 図65に示す位置にmax_dec_frame_bufferingを符号化した場合の記述形式を示す図である。 Dependent view videoストリームにおけるHRD parametersの符号化位置の例を示す図である。 図67に示す位置にHRD parametersを符号化した場合の記述形式を示す図である。 図67に示す位置にHRD parametersを符号化した場合の他の記述形式を示す図である。 Dependent view videoストリームにおけるmax_dec_frame_bufferingの符号化位置の例を示す図である。 図70に示す位置にmax_dec_frame_bufferingを符号化した場合の記述形式を示す図である。 図70に示す位置にmax_dec_frame_bufferingを符号化した場合の他の記述形式を示す図である。 記録装置の記録処理について説明するフローチャートである。 再生装置の再生処理について説明するフローチャートである。 パラメータの設定の例を示す図である。 パラメータの設定の他の例を示す図である。 MVCデコーダの他の構成例を示すブロック図である。 パラメータの設定のさらに他の例を示す図である。 パラメータの設定の例を示す図である。 パラメータの設定の他の例を示す図である。 パラメータの設定のさらに他の例を示す図である。 検証装置を示す図である。 HRDの機能構成を示す図である。 検証の例を示す図である。 検証の他の例を示す図である。 view_typeの記述の例を示す図である。 view_typeの記述の他の例を示す図である。 コンピュータのハードウェアの構成例を示すブロック図である。
<第1の実施の形態>
[再生システムの構成例]
図1は、本技術を適用した再生装置1を含む再生システムの構成例を示す図である。
図1に示すように、この再生システムは、再生装置1と表示装置3がHDMI(High Definition Multimedia Interface)ケーブルなどで接続されることによって構成される。再生装置1には、BDなどの光ディスク2が装着される。
光ディスク2には、視点の数が2つのステレオ画像(いわゆる3D画像)を表示するために必要なストリームが記録されている。
再生装置1は、光ディスク2に記録されているストリームの3D再生に対応したプレーヤである。再生装置1は、光ディスク2に記録されているストリームを再生し、再生して得られた3D画像をテレビジョン受像機などよりなる表示装置3に表示させる。音声についても同様に再生装置1により再生され、表示装置3に設けられるスピーカなどから出力される。
3D画像の表示の方式として様々な方式が提案されている。ここでは、3D画像の表示の方式として、以下のタイプ1の表示方式と、タイプ2の表示方式とを採用する。
タイプ1の表示方式は、3D画像のデータを左眼で観察される画像(L画像)のデータと、右眼で観察される画像(R画像)のデータとで構成し、L画像とR画像を交互に表示することで、3D画像を表示する方式である。
タイプ2の表示方式は、3D画像を生成する元になる画像である元画像のデータとDepthのデータとを用いて生成されるL画像とR画像を表示することで、3D画像を表示する方式である。タイプ2の表示方式で用いられる3D画像のデータは、元画像のデータと、元画像に与えることによってL画像とR画像を生成することができるDepthのデータとで構成される。
タイプ1の表示方式は、視聴するときにメガネが必要となる表示方式である。タイプ2の表示方式は、メガネなしで3D画像を視聴できる表示方式である。
光ディスク2には、タイプ1と2のいずれの表示方式によっても3D画像を表示することができるようなストリームが記録されている。
そのようなストリームを光ディスク2に記録するための符号化の方式として、例えば、H.264 AVC(Advanced Video Coding)/MVC(Multi-view Video coding)プロファイル規格が採用される。
[H.264 AVC/MVC Profile]
H.264 AVC/MVCプロファイル規格では、Base view videoと呼ばれる画像ストリームと、Dependent view videoと呼ばれる画像ストリームとが定義されている。以下、適宜、H.264 AVC/MVCプロファイル規格を単にMVCという。
図2は、撮影の例を示す図である。
図2に示すように、同じ被写体を対象として、L画像用のカメラとR画像用のカメラによって撮影が行われる。L画像用のカメラとR画像用のカメラによって撮影された映像のエレメンタリストリームがMVCエンコーダに入力される。
図3は、MVCエンコーダの構成例を示すブロック図である。
図3に示すように、MVCエンコーダ11は、H.264/AVCエンコーダ21、H.264/AVCデコーダ22、Depth算出部23、Dependent view videoエンコーダ24、およびマルチプレクサ25から構成される。
L画像用のカメラにより撮影された映像#1のストリームはH.264/AVCエンコーダ21とDepth算出部23に入力される。また、R画像用のカメラにより撮影された映像#2のストリームはDepth算出部23とDependent view videoエンコーダ24に入力される。映像#2のストリームがH.264/AVCエンコーダ21とDepth算出部23に入力され、映像#1のストリームがDepth算出部23とDependent view videoエンコーダ24に入力されるようにしてもよい。
H.264/AVCエンコーダ21は、映像#1のストリームを、例えばH.264 AVC/High Profileビデオストリームとして符号化する。H.264/AVCエンコーダ21は、符号化して得られたAVCビデオストリームを、Base view videoストリームとしてH.264/AVCデコーダ22とマルチプレクサ25に出力する。
H.264/AVCデコーダ22は、H.264/AVCエンコーダ21から供給されたAVCビデオストリームをデコードし、デコードして得られた映像#1のストリームをDependent view videoエンコーダ24に出力する。
Depth算出部23は、映像#1のストリームと映像#2のストリームに基づいてDepthを算出し、算出したDepthのデータをマルチプレクサ25に出力する。
Dependent view videoエンコーダ24は、H.264/AVCデコーダ22から供給された映像#1のストリームと、外部から入力された映像#2のストリームをエンコードし、Dependent view videoストリームを出力する。
Base view videoには、他のストリームを参照画像とする予測符号化が許されていないが、図4に示すように、Dependent view videoには、Base view videoを参照画像とする予測符号化が許されている。例えばL画像をBase view videoとするとともにR画像をDependent view videoとして符号化を行った場合、その結果得られるDependent view videoストリームのデータ量は、Base view videoストリームのデータ量に比較して少なくなる。
なお、H.264/AVCでの符号化であるから、Base view videoについて時間方向の予測は行われている。また、Dependent view videoについても、view間の予測とともに、時間方向の予測が行われている。Dependent view videoをデコードするには、エンコード時に参照先とした、対応するBase view videoのデコードが先に終了している必要がある。
Dependent view videoエンコーダ24は、このようなview間の予測も用いて符号化して得られたDependent view videoストリームをマルチプレクサ25に出力する。
マルチプレクサ25は、H.264/AVCエンコーダ21から供給されたBase view videoストリームと、Depth算出部23から供給されたDependent view videoストリーム(Depthのデータ)と、Dependent view videoエンコーダ24から供給されたDependent view videoストリームとを、例えばMPEG2 TSとして多重化する。Base view videoストリームとDependent view videoストリームは1本のMPEG2 TSに多重化されることもあるし、別々のMPEG2 TSに含まれることもある。
マルチプレクサ25は、生成したTS(MPEG2 TS)を出力する。マルチプレクサ25から出力されたTSは、他の管理データとともに記録装置において光ディスク2に記録され、光ディスク2に記録された形で再生装置1に提供される。
タイプ1の表示方式においてBase view videoとともに用いられるDependent view videoと、タイプ2の表示方式においてBase view videoとともに用いられるDependent view video(Depth)とを区別する必要がある場合、前者をD1 view videoといい、後者をD2 view videoという。
また、Base view videoとD1 view videoを用いて行われる、タイプ1の表示方式での3D再生をB-D1再生という。Base view videoとD2 view videoを用いて行われる、タイプ2の表示方式での3D再生をB-D2再生という。
再生装置1は、ユーザによる指示などに応じてB-D1再生を行う場合、Base view videoストリームとD1 view videoストリームを光ディスク2から読み出して再生する。
また、再生装置1は、B-D2再生を行う場合、Base view videoストリームとD2 view videoストリームを光ディスク2から読み出して再生する。
さらに、再生装置1は、通常の2D画像の再生を行う場合、Base view videoストリームだけを光ディスク2から読み出して再生する。
Base view videoストリームはH.264/AVCで符号化されているAVCビデオストリームであるから、BDのフォーマットに対応したプレーヤであれば、そのBase view videoストリームを再生し、2D画像を表示させることが可能になる。
以下、Dependent view videoがD1 view videoである場合について主に説明する。単にDependent view videoというときは、D1 view videoを表すことになる。D2 view videoについても、D1 view videoと同様にして光ディスク2に記録され、再生される。
[TSの構成例]
図5は、TSの構成例を示す図である。
図5のMain TSにはBase view video、Dependent view video、Primary audio、Base PG、Dependent PG、Base IG、Dependent IGのそれぞれのストリームが多重化されている。
このように、Dependent view videoストリームが、Base view videoストリームとともにMain TSに含まれていることもある。
光ディスク2には、Main TSとSub TSが記録されている。Main TSは、少なくともBase view videoストリームを含むTSである。Sub TSは、Base view videoストリーム以外のストリームを含み、Main TSとともに用いられるTSである。
ビデオと同様に3Dでの表示が可能になるように、後述するPG、IGについてもBase viewとDependent viewのそれぞれのストリームが用意されている。
それぞれのストリームをデコードして得られたPG、IGのBase viewのプレーンは、Base view videoストリームをデコードして得られたBase view videoのプレーンと合成されて表示される。同様に、PG、IGのDependent viewのプレーンは、Dependent view videoストリームをデコードして得られたDependent view videoのプレーンと合成されて表示される。
例えば、Base view videoストリームがL画像のストリームであり、Dependent view videoストリームがR画像のストリームである場合、PG、IGについても、そのBase viewのストリームはL画像のグラフィックスのストリームとなる。また、Dependent viewのPGストリーム、IGストリームはR画像のグラフィックスのストリームとなる。
一方、Base view videoストリームがR画像のストリームであり、Dependent view videoストリームがL画像のストリームである場合、PG、IGについても、そのBase viewのストリームはR画像のグラフィックスのストリームとなる。また、Dependent viewのPGストリーム、IGストリームはL画像のグラフィックスのストリームとなる。
図6は、TSの他の構成例を示す図である。
図6のMain TSにはBase view video、Dependent view videoのそれぞれのストリームが多重化されている。
一方、Sub TSにはPrimary audio、Base PG、Dependent PG、Base IG、Dependent IGのそれぞれのストリームが多重化されている。
このように、ビデオストリームがMain TSに多重化され、PG、IGのストリーム等がSub TSに多重化されていることもある。
図7は、TSのさらに他の構成例を示す図である。
図7AのMain TSにはBase view video、Primary audio、Base PG、Dependent PG、Base IG、Dependent IGのそれぞれのストリームが多重化されている。
一方、Sub TSにはDependent view videoストリームが含まれている。
このように、Dependent view videoストリームがBase view videoストリームとは別のTSに含まれていることもある。
図7BのMain TSにはBase view video、Primary audio、PG、IGのそれぞれのストリームが多重化されている。一方、Sub TSにはDependent view video、Base PG、Dependent PG、Base IG、Dependent IGのそれぞれのストリームが多重化されている。
Main TSに含まれるPG、IGは2D再生用のストリームである。Sub TSに含まれているストリームは3D再生用のストリームである。
このように、PGのストリームとIGのストリームを2D再生と3D再生において共有しないようにすることも可能である。
以上のように、Base view videoストリームとDependent view videoストリームが別々のMPEG2 TSに含まれることがある。Base view videoストリームとDependent view videoストリームを別々のMPEG2 TSに含めて記録する場合のメリットについて説明する。
例えば1本のMPEG2 TSとして多重化できるビットレートが制限されている場合を考える。この場合において、Base view videoストリームとDependent view videoストリームの両方を1本のMPEG2 TSに含めたときには、その制約を満たすために各ストリームのビットレートを下げる必要がある。その結果、画質が落ちてしまうことになる。
それぞれ異なるMPEG2 TSに含めることによって、ビットレートを下げる必要がなくなり、画質を落とさずに済むことになる。
[アプリケーションフォーマット]
図8は、再生装置1によるAVストリームの管理の例を示す図である。
AVストリームの管理は、図8に示すようにPlayListとClipの2つのレイヤを用いて行われる。AVストリームは、光ディスク2だけでなく、再生装置1のローカルストレージに記録されていることもある。
ここでは、1つのAVストリームとそれに付随する情報であるClip Informationのペアを1つのオブジェクトと考え、それらをまとめてClipという。以下、AVストリームを格納したファイルをAVストリームファイルという。また、Clip Informationを格納したファイルをClip Informationファイルともいう。
AVストリームは時間軸上に展開され、各Clipのアクセスポイントは、主に、タイムスタンプでPlayListにおいて指定される。Clip Informationファイルは、AVストリーム中のデコードを開始すべきアドレスを見つけるためなどに使用される。
PlayListはAVストリームの再生区間の集まりである。AVストリーム中の1つの再生区間はPlayItemと呼ばれる。PlayItemは、時間軸上の再生区間のIN点とOUT点のペアで表される。図8に示すように、PlayListは1つまたは複数のPlayItemにより構成される。
図8の左から1番目のPlayListは2つのPlayItemから構成され、その2つのPlayItemにより、左側のClipに含まれるAVストリームの前半部分と後半部分がそれぞれ参照されている。
左から2番目のPlayListは1つのPlayItemから構成され、それにより、右側のClipに含まれるAVストリーム全体が参照されている。
左から3番目のPlayListは2つのPlayItemから構成され、その2つのPlayItemにより、左側のClipに含まれるAVストリームのある部分と、右側のClipに含まれるAVストリームのある部分がそれぞれ参照されている。
例えば、左から1番目のPlayListに含まれる左側のPlayItemが再生対象としてディスクナビゲーションプログラムにより指定された場合、そのPlayItemが参照する、左側のClipに含まれるAVストリームの前半部分の再生が行われる。このように、PlayListは、AVストリームの再生を管理するための再生管理情報として用いられる。
PlayListの中で、1つ以上のPlayItemの並びによって作られる再生パスをメインパス(Main Path)という。
また、PlayListの中で、Main Pathに並行して、1つ以上のSubPlayItemの並びによって作られる再生パスをサブパス(Sub Path)という。
図9は、Main PathとSub Pathの構造を示す図である。
PlayListは、1つのMain Pathと1つ以上のSub Pathを持つことができる。
上述したBase view videoストリームは、Main Pathを構成するPlayItemが参照するストリームとして管理される。また、Dependent view videoストリームは、Sub Pathを構成するSubPlayItemが参照するストリームとして管理される。
図9のPlayListは、3つのPlayItemの並びにより作られる1つのMain Pathと、3つのSub Pathを有している。
Main Pathを構成するPlayItemには、先頭から順番にそれぞれIDが設定される。Sub Pathにも、先頭から順番にSubpath_id=0、Subpath_id=1、およびSubpath_id=2のIDが設定される。
図9の例においては、Subpath_id=0のSub Pathには1つのSubPlayItemが含まれ、Subpath_id=1のSub Pathには2つのSubPlayItemが含まれる。また、Subpath_id=2のSub Pathには1つのSubPlayItemが含まれる。
1つのPlayItemが参照するClip AVストリームには、少なくともビデオストリーム(メイン画像データ)が含まれる。
また、Clip AVストリームには、Clip AVストリームに含まれるビデオストリームと同じタイミングで(同期して)再生されるオーディオストリームが1つ以上含まれてもよいし、含まれなくてもよい。
Clip AVストリームには、Clip AVストリームに含まれるビデオストリームと同期して再生されるビットマップの字幕データ(PG(Presentation Graphic))のストリームが1つ以上含まれてもよいし、含まれなくてもよい。
Clip AVストリームには、Clip AVストリームファイルに含まれるビデオストリームと同期して再生されるIG(Interactive Graphic)のストリームが1つ以上含まれてもよいし、含まれなくてもよい。IGのストリームは、ユーザにより操作されるボタンなどのグラフィックを表示させるために用いられる。
1つのPlayItemが参照するClip AVストリームには、ビデオストリームと、それと同期して再生される0個以上のオーディオストリーム、0個以上のPGストリーム、および、0個以上のIGストリームが多重化されている。
また、1つのSubPlayItemは、PlayItemが参照するClip AVストリームとは異なるストリーム(別ストリーム)の、ビデオストリーム、オーディオストリーム、または、PGストリームなどを参照する。
このようなPlayList、PlayItem、SubPlayItemを使ったAVストリームの管理については、例えば、特開2008−252740号公報、特開2005−348314号公報に記載されている。
[ディレクトリ構造]
図10は、光ディスク2に記録されるファイルの管理構造の例を示す図である。
図10に示すように、ファイルはディレクトリ構造により階層的に管理される。光ディスク2上には1つのrootディレクトリが作成される。rootディレクトリの下が、1つの記録再生システムで管理される範囲となる。
rootディレクトリの下にはBDMVディレクトリが置かれる。
BDMVディレクトリの直下に、「Index.bdmv」の名前が設定されたファイルであるIndexファイルと、「MovieObject.bdmv」の名前が設定されたファイルであるMovieObjectファイルが格納される。
BDMVディレクトリの下には、BACKUPディレクトリ、PLAYLISTディレクトリ、CLIPINFディレクトリ、STREAMディレクトリ等が設けられる。
PLAYLISTディレクトリには、PlayListを記述したPlayListファイルが格納される。各PlayListファイルには、5桁の数字と拡張子「.mpls」を組み合わせた名前が設定される。
図10に示す1つのPlayListファイルには「00000.mpls」のファイル名が設定されている。
CLIPINFディレクトリにはClip Informationファイルが格納される。各Clip Informationファイルには、5桁の数字と拡張子「.clpi」を組み合わせた名前が設定される。
図10の3つのClip Informationファイルには、それぞれ、「00001.clpi」、「00002.clpi」、「00003.clpi」のファイル名が設定されている。以下、適宜、Clip Informationファイルをclpiファイルという。
例えば、「00001.clpi」のclpiファイルは、Base view videoのClipに関する情報が記述されたファイルである。
「00002.clpi」のclpiファイルは、D2 view videoのClipに関する情報が記述されたファイルである。
「00003.clpi」のclpiファイルは、D1 view videoのClipに関する情報が記述されたファイルである。
STREAMディレクトリにはストリームファイルが格納される。各ストリームファイルには、5桁の数字と拡張子「.m2ts」を組み合わせた名前、もしくは、5桁の数字と拡張子「.ilvt」を組み合わせた名前が設定される。以下、適宜、拡張子「.m2ts」が設定されたファイルをm2tsファイルという。また、拡張子「.ilvt」が設定されたファイルをilvtファイルという。
「00001.m2ts」のm2tsファイルは2D再生用のファイルであり、このファイルを指定することによってBase view videoストリームの読み出しが行われる。
「00002.m2ts」のm2tsファイルはD2 view videoストリームのファイルであり、「00003.m2ts」のm2tsファイルはD1 view videoストリームのファイルである。
「10000.ilvt」のilvtファイルはB-D1再生用のファイルであり、このファイルを指定することによってBase view videoストリームとD1 view videoストリームの読み出しが行われる。
「20000.ilvt」のilvtファイルはB-D2再生用のファイルであり、このファイルを指定することによってBase view videoストリームとD2 view videoストリームの読み出しが行われる。
図10に示すものの他に、BDMVディレクトリの下には、オーディオストリームのファイルを格納するディレクトリなども設けられる。
[各データのシンタクス]
図11は、PlayListファイルのシンタクスを示す図である。
PlayListファイルは、図10のPLAYLISTディレクトリに格納される、拡張子「.mpls」が設定されるファイルである。
図11のtype_indicatorは、「xxxxx.mpls」のファイルの種類を表す。
version_numberは、「xxxx.mpls」のバージョンナンバーを表す。version_numberは4桁の数字からなる。例えば、3D再生用のPlayListファイルには、「3D Spec version」であることを表す“0240”が設定される。
PlayList_start_addressは、PlayListファイルの先頭のバイトからの相対バイト数を単位として、PlayList()の先頭アドレスを表す。
PlayListMark_start_addressは、PlayListファイルの先頭のバイトからの相対バイト数を単位として、PlayListMark()の先頭アドレスを表す。
ExtensionData_start_addressは、PlayListファイルの先頭のバイトからの相対バイト数を単位として、ExtensionData()の先頭アドレスを表す。
ExtensionData_start_addressの後には、160bitのreserved_for_future_useが含まれる。
AppInfoPlayList()には、再生制限などの、PlayListの再生コントロールに関するパラメータが格納される。
PlayList()には、Main PathやSub Pathなどに関するパラメータが格納される。PlayList()の内容については後述する。
PlayListMark()には、PlayListのマーク情報、すなわち、チャプタジャンプなどを指令するユーザオペレーションまたはコマンドなどにおけるジャンプ先(ジャンプポイント)であるマークに関する情報が格納される。
ExtensionData()には、プライベートデータが挿入できるようになっている。
図12は、PlayListファイルの記述の具体例を示す図である。
図12に示すように、PlayListファイルには2bitの3D_PL_typeと1bitのview_typeが記述される。view_typeは、例えば図11のAppInfoPlayList()に記述される。
3D_PL_typeは、PlayListの種類を表す。
view_typeは、PlayListによって再生が管理されるBase view videoストリームが、L画像(L view)のストリームであるのか、R画像(R view)のストリームであるのかを表す。
図13は、3D_PL_typeの値の意味を示す図である。
3D_PL_typeの値の00は、2D再生用のPlayListであることを表す。
3D_PL_typeの値の01は、3D再生のうちのB-D1再生用のPlayListであることを表す。
3D_PL_typeの値の10は、3D再生のうちのB-D2再生用のPlayListであることを表す。
例えば、3D_PL_typeの値が01か10の場合には、PlayListファイルのExtenstionData()に3DPlayList情報が登録される。例えば、3DPlayList情報として、Base view videoストリームとDependent view videoストリームの光ディスク2からの読み出しに関する情報が登録される。
図14は、view_typeの値の意味を示す図である。
view_typeの値の0は、3D再生を行う場合には、Base view videoストリームがL viewのストリームであることを表す。2D再生を行う場合には、Base view videoストリームがAVCビデオストリームであることを表す。
view_typeの値の1は、Base view videoストリームがR viewのストリームであることを表す。
view_typeがPlayListファイルに記述されることにより、再生装置1は、Base view videoストリームがL viewのストリームであるのかR viewのストリームであるのかを識別することが可能になる。
例えば、HDMIケーブルを介して表示装置3にビデオ信号を出力する場合、L viewの信号とR viewの信号とをそれぞれ区別した上で出力することが再生装置1に要求されるものと考えられる。
Base view videoストリームがL viewのストリームであるのかR viewのストリームであるのかを識別することができるようにすることにより、再生装置1は、L viewの信号とR viewの信号を区別して出力することが可能になる。
図15は、図11のPlayList()のシンタクスを示す図である。
lengthは、このlengthフィールドの直後からPlayList()の最後までのバイト数を示す32ビットの符号なし整数である。すなわち、lengthは、reserved_for_future_useからPlayListの最後までのバイト数を表す。
lengthの後には、16ビットのreserved_for_future_useが用意される。
number_of_PlayItemsは、PlayListの中にあるPlayItemの数を示す16ビットのフィールドである。図9の例の場合、PlayItemの数は3である。PlayItem_idの値は、PlayListの中でPlayItem()が現れる順番に0から割り振られる。例えば、図9のPlayItem_id=0,1,2が割り振られる。
number_of_SubPathsは、PlayListの中にあるSub Pathの数を示す16ビットのフィールドである。図9の例の場合、Sub Pathの数は3である。SubPath_idの値は、PlayListの中でSubPath()が現れる順番に0から割り振られる。例えば、図9のSubpath_id=0,1,2が割り振られる。その後のfor文では、PlayItemの数だけPlayItem()が参照され、Sub Pathの数だけSubPath()が参照される。
図16は、図15のSubPath()のシンタクスを示す図である。
lengthは、このlengthフィールドの直後からSub Path()の最後までのバイト数を示す32ビットの符号なし整数である。すなわち、lengthは、reserved_for_future_useからPlayListの最後までのバイト数を表す。
lengthの後には、16ビットのreserved_for_future_useが用意される。
SubPath_typeは、Sub Pathのアプリケーションの種類を示す8ビットのフィールドである。SubPath_typeは、例えば、Sub Pathがオーディオであるか、ビットマップ字幕であるか、テキスト字幕であるかなどの種類を示す場合に利用される。
SubPath_typeの後には、15ビットのreserved_for_future_useが用意される。
is_repeat_SubPathは、Sub Pathの再生方法を指定する1ビットのフィールドであり、Main Pathの再生の間にSub Pathの再生を繰り返し行うか、またはSub Pathの再生を1回だけ行うかを示す。例えば、Main Pathが参照するClipとSub Pathが参照するClipの再生タイミングが異なる場合(Main Pathを静止画のスライドショーのパスとし、Sub PathをBGMとするオーディオのパスとして使う場合など)に利用される。
Is_repeat_SubPathの後には、8ビットのreserved_for_future_useが用意される。
number_of_SubPlayItemsは、1つのSub Pathの中にあるSubPlayItemの数(エントリー数)を示す8ビットのフィールドである。例えば、図9のSubPath_id=0のSubPlayItemのnumber_of_SubPlayItemsは1であり、SubPath_id=1のSubPlayItemのnumber_of_SubPlayItemsは2である。その後のfor文では、SubPlayItemの数だけ、SubPlayItem()が参照される。
図17は、図16のSubPlayItem(i)のシンタクスを示す図である。
lengthは、このlengthフィールドの直後からSub playItem()の最後までのバイト数を示す16ビットの符号なし整数である。
図17のSubPlayItem(i)は、SubPlayItemが1つのClipを参照する場合と、複数のClipを参照する場合に分けて記述されている。
SubPlayItemが1つのClipを参照する場合について説明する。
Clip_Information_file_name[0]は参照するClipを表す。
Clip_codec_identifier[0]はClipのコーデック方式を表す。Clip_codec_identifier[0]の後にはreserved_for_future_useが含まれる。
is_multi_Clip_entriesはマルチClipの登録の有無を示すフラグである。is_multi_Clip_entriesのフラグが立っている場合、SubPlayItemが複数のClipを参照する場合のシンタクスが参照される。
ref_to_STC_id[0]はSTC不連続点(システムタイムベースの不連続点)に関する情報である。
SubPlayItem_IN_timeはSub Pathの再生区間の開始位置を表し、SubPlayItem_OUT_timeは終了位置を表す。
sync_PlayItem_idとsync_start_PTS_of_PlayItemは、Main Pathの時間軸上でSub Pathが再生を開始する時刻を表す。
SubPlayItem_IN_time、SubPlayItem_OUT_time、sync_PlayItem_id、sync_start_PTS_of_PlayItemは、SubPlayItemが参照するClipにおいて共通に使用される。
「if(is_multi_Clip_entries==1b」であり、SubPlayItemが複数のClipを参照する場合について説明する。
num_of_Clip_entriesは参照するClipの数を表す。Clip_Information_file_name[SubClip_entry_id]の数が、Clip_Information_file_name[0]を除くClipの数を指定する。
Clip_codec_identifier[SubClip_entry_id]はClipのコーデック方式を表す。
ref_to_STC_id[SubClip_entry_id]はSTC不連続点(システムタイムベースの不連続点)に関する情報である。ref_to_STC_id[SubClip_entry_id]の後にはreserved_for_future_useが含まれる。
図18は、図15のPlayItem()のシンタクスを示す図である。
lengthは、このlengthフィールドの直後からPlayItem()の最後までのバイト数を示す16ビットの符号なし整数である。
Clip_Information_file_name[0]は、PlayItemが参照するClipのClip Informationファイルの名前を表す。なお、Clipを含むmt2sファイルのファイル名と、それに対応するClip Informationファイルのファイル名には同じ5桁の数字が含まれる。
Clip_codec_identifier[0]はClipのコーデック方式を表す。Clip_codec_identifier[0]の後にはreserved_for_future_useが含まれる。reserved_for_future_useの後にはis_multi_angle、connection_conditionが含まれる。
ref_to_STC_id[0]はSTC不連続点(システムタイムベースの不連続点)に関する情報である。
IN_timeはPlayItemの再生区間の開始位置を表し、OUT_timeは終了位置を表す。
OUT_timeの後にはUO_mask_table()、PlayItem_random_access_mode、still_modeが含まれる。
STN_table()には、対象のPlayItemが参照するAVストリームの情報が含まれる。また、対象のPlayItemと関連付けて再生されるSub Pathがある場合、そのSub Pathを構成するSubPlayItemが参照するAVストリームの情報も含まれる。
図19は、図18のSTN_table()のシンタクスを示す図である。
STN_table()は、PlayItemの属性として設定されている。
lengthは、このlengthフィールドの直後からSTN_table()の最後までのバイト数を示す16ビットの符号なし整数である。lengthの後には、16ビットのreserved_for_future_useが用意される。
number_of_video_stream_entriesは、STN_table()の中でエントリーされる(登録される)、video_stream_idが与えられるストリームの数を表す。
video_stream_idは、ビデオストリームを識別するための情報である。例えば、Base view videoストリームがこのvideo_stream_idにより特定される。
Dependent view videoストリームのIDについては、STN_table()内で定義されるようにしてもよいし、Base view videoストリームのIDに所定の値を加算するなどして計算により求められるようにしてもよい。
video_stream_numberは、ビデオ切り替えに使われる、ユーザから見えるビデオストリーム番号である。
number_of_audio_stream_entriesは、STN_table()の中でエントリーされる、audio_stream_idが与えられる1番目のオーディオストリームのストリームの数を表す。audio_stream_idは、オーディオストリームを識別するための情報であり、audio_stream_numberは、音声切り替えに使われるユーザから見えるオーディオストリーム番号である。
number_of_audio_stream2_entriesは、STN_table()の中でエントリーされる、audio_stream_id2が与えられる2番目のオーディオストリームのストリームの数を表す。audio_stream_id2は、オーディオストリームを識別するための情報であり、audio_stream_numberは、音声切り替えに使われるユーザから見えるオーディオストリーム番号である。この例においては、再生する音声を切り替えることができるようになされている。
number_of_PG_txtST_stream_entriesは、STN_table()の中でエントリーされる、PG_txtST_stream_idが与えられるストリームの数を表す。この中では、ビットマップ字幕をランレングス符号化したPGストリームとテキスト字幕ファイル(txtST)がエントリーされる。PG_txtST_stream_idは、字幕ストリームを識別するための情報であり、PG_txtST_stream_numberは、字幕切り替えに使われるユーザから見える字幕ストリーム番号である。
number_of_IG_stream_entriesは、STN_table()の中でエントリーされる、IG_stream_idが与えられるストリームの数を表す。この中ではIGストリームがエントリーされる。IG_stream_idは、IGストリームを識別するための情報であり、IG_stream_numberは、グラフィックス切り替えに使われるユーザから見えるグラフィックスストリーム番号である。
Main TS、Sub TSのIDもSTN_table()に登録される。そのIDがエレメンタリストリームではなくTSのIDであることは、stream_attribute()に記述される。
[再生装置1の構成例]
図20は、再生装置1の構成例を示すブロック図である。
コントローラ51は、予め用意されている制御プログラムを実行し、再生装置1の全体の動作を制御する。
例えば、コントローラ51は、ディスクドライブ52を制御し、3D再生用のPlayListファイルを読み出す。また、コントローラ51は、STN_tableに登録されているIDに基づいて、Main TSとSubTSを読み出させ、デコーダ部56に供給させる。
ディスクドライブ52は、コントローラ51による制御に従って光ディスク2からデータを読み出し、読み出したデータを、コントローラ51、メモリ53、またはデコーダ部56に出力する。
メモリ53は、コントローラ51が各種の処理を実行する上において必要なデータなどを適宜記憶する。
ローカルストレージ54は例えばHDD(Hard Disk Drive)により構成される。ローカルストレージ54には、サーバ72からダウンロードされたDependent view videoストリームなどが記録される。ローカルストレージ54に記録されているストリームもデコーダ部56に適宜供給される。
インターネットインタフェース55は、コントローラ51からの制御に従ってネットワーク71を介してサーバ72と通信を行い、サーバ72からダウンロードしたデータをローカルストレージ54に供給する。
サーバ72からは、光ディスク2に記録されているデータをアップデートさせるデータがダウンロードされる。ダウンロードしたDependent view videoストリームを光ディスク2に記録されているBase view videoストリームと併せて用いることができるようにすることにより、光ディスク2の内容とは異なる内容の3D再生を実現することが可能になる。
Dependent view videoストリームがダウンロードされたとき、PlayListの内容も適宜更新される。
デコーダ部56は、ディスクドライブ52、またはローカルストレージ54から供給されたストリームをデコードし、得られたビデオ信号を表示装置3に出力する。オーディオ信号も所定の経路を介して表示装置3に出力される。
操作入力部57は、ボタン、キー、タッチパネル、ジョグダイヤル、マウスなどの入力デバイスや、所定のリモートコマンダから送信される赤外線などの信号を受信する受信部により構成される。操作入力部57はユーザの操作を検出し、検出した操作の内容を表す信号をコントローラ51に供給する。
図21は、デコーダ部56の構成例を示す図である。
図21においてはビデオ信号の処理を行う構成が示されている。デコーダ部56においては、オーディオ信号のデコード処理も行われる。オーディオ信号を対象として行われたデコード処理の結果は、図示せぬ経路を介して表示装置3に出力される。
PIDフィルタ101は、ディスクドライブ52、またはローカルストレージ54から供給されたTSがMain TSであるかSub TSであるかを、TSを構成するパケットのPIDやストリームのIDなどに基づいて識別する。PIDフィルタ101は、Main TSをバッファ102に出力し、Sub TSをバッファ103に出力する。
PIDフィルタ104は、バッファ102に記憶されたMain TSのパケットを順次読み出し、PIDに基づいて振り分ける。
例えば、PIDフィルタ104は、Main TSに含まれているBase view videoストリームを構成するパケットをB videoバッファ106に出力し、Dependent view videoストリームを構成するパケットをスイッチ107に出力する。
また、PIDフィルタ104は、Main TSに含まれているBase IGストリームを構成するパケットをスイッチ114に出力し、Dependent IGストリームを構成するパケットをスイッチ118に出力する。
PIDフィルタ104は、Main TSに含まれているBase PGストリームを構成するパケットをスイッチ122に出力し、Dependent PGストリームを構成するパケットをスイッチ126に出力する。
図5を参照して説明したように、Base view video、Dependent view video、Base PG、Dependent PG、Base IG、Dependent IGのそれぞれのストリームがMain TSに多重化されていることがある。
PIDフィルタ105は、バッファ103に記憶されたSub TSのパケットを順次読み出し、PIDに基づいて振り分ける。
例えば、PIDフィルタ105は、Sub TSに含まれているDependent view videoストリームを構成するパケットをスイッチ107に出力する。
また、PIDフィルタ105は、Sub TSに含まれているBase IGストリームを構成するパケットをスイッチ114に出力し、Dependent IGストリームを構成するパケットをスイッチ118に出力する。
PIDフィルタ105は、Sub TSに含まれているBase PGストリームを構成するパケットをスイッチ122に出力し、Dependent PGストリームを構成するパケットをスイッチ126に出力する。
図7を参照して説明したように、Dependent view videoストリームがSub TSに含まれていることがある。また、図6を参照して説明したように、Base PG、Dependent PG、Base IG、Dependent IGのそれぞれのストリームがSub TSに多重化されていることがある。
スイッチ107は、PIDフィルタ104、またはPIDフィルタ105から供給されたDependent view videoストリームを構成するパケットをD videoバッファ108に出力する。
スイッチ109は、B videoバッファ106に記憶されたBase view videoのパケットと、D videoバッファ108に記憶されたDependent view videoのパケットを、デコードのタイミングを規定する時刻情報に従って順次読み出す。Base view videoのあるピクチャのデータを格納したパケットと、それに対応するDependent view videoのピクチャのデータを格納したパケットには例えば同じ時刻情報が設定されている。
スイッチ109は、B videoバッファ106、またはD videoバッファ108から読み出したパケットをビデオデコーダ110に出力する。
ビデオデコーダ110は、スイッチ109から供給されたパケットをデコードし、デコードすることによって得られたBase view video、またはDependent view videoのデータをスイッチ111に出力する。
スイッチ111は、Base view videoのパケットをデコードして得られたデータをB videoプレーン生成部112に出力し、Dependent view videoのパケットをデコードして得られたデータをD videoプレーン生成部113に出力する。
B videoプレーン生成部112は、Base view videoのプレーンをスイッチ111から供給されたデータに基づいて生成し、合成部130に出力する。
D videoプレーン生成部113は、Dependent view videoのプレーンをスイッチ111から供給されたデータに基づいて生成し、合成部130に出力する。
スイッチ114は、PIDフィルタ104、またはPIDフィルタ105から供給されたBase IGストリームを構成するパケットをB IGバッファ115に出力する。
B IGデコーダ116は、B IGバッファ115に記憶されたBase IGストリームを構成するパケットをデコードし、デコードして得られたデータをB IGプレーン生成部117に出力する。
B IGプレーン生成部117は、Base IGのプレーンをB IGデコーダ116から供給されたデータに基づいて生成し、合成部130に出力する。
スイッチ118は、PIDフィルタ104、またはPIDフィルタ105から供給されたDependent IGストリームを構成するパケットをD IGバッファ119に出力する。
D IGデコーダ120は、D IGバッファ119に記憶されたDependent IGストリームを構成するパケットをデコードし、デコードして得られたデータをD IGプレーン生成部121に出力する。
D IGプレーン生成部121は、Dependent IGのプレーンをD IGデコーダ120から供給されたデータに基づいて生成し、合成部130に出力する。
スイッチ122は、PIDフィルタ104、またはPIDフィルタ105から供給されたBase PGストリームを構成するパケットをB PGバッファ123に出力する。
B PGデコーダ124は、B PGバッファ123に記憶されたBase PGストリームを構成するパケットをデコードし、デコードして得られたデータをB PGプレーン生成部125に出力する。
B PGプレーン生成部125は、Base PGのプレーンをB PGデコーダ124から供給されたデータに基づいて生成し、合成部130に出力する。
スイッチ126は、PIDフィルタ104、またはPIDフィルタ105から供給されたDependent PGストリームを構成するパケットをD PGバッファ127に出力する。
D PGデコーダ128は、D PGバッファ127に記憶されたDependent PGストリームを構成するパケットをデコードし、デコードして得られたデータをD PGプレーン生成部129に出力する。
D PGプレーン生成部129は、Dependent PGのプレーンをD PGデコーダ128から供給されたデータに基づいて生成し、合成部130に出力する。
合成部130は、B videoプレーン生成部112から供給されたBase view videoのプレーンと、B IGプレーン生成部117から供給されたBase IGのプレーンと、B PGプレーン生成部125から供給されたBase PGのプレーンを所定の順番で重ねることによって合成し、Base viewのプレーンを生成する。
また、合成部130は、D videoプレーン生成部113から供給されたDependent view videoのプレーンと、D IGプレーン生成部121から供給されたDependent IGのプレーンと、D PGプレーン生成部129から供給されたDependent PGのプレーンを所定の順番で重ねることによって合成し、Dependent viewのプレーンを生成する。
合成部130は、Base viewのプレーンとDependent viewのプレーンのデータを出力する。合成部130から出力されたビデオデータは表示装置3に出力され、Base viewのプレーンとDependent viewのプレーンが交互に表示されることによって3D表示が行われる。
[T-STD(Transport stream-System. Target Decoder)の第1の例]
ここで、図21に示す構成のうちの、デコーダと、その周辺の構成について説明する。
図22は、ビデオストリームの処理を行う構成を示す図である。
図22において、図21に示す構成と同じ構成には同じ符号を付してある。図22においては、PIDフィルタ104、B videoバッファ106、スイッチ107、D videoバッファ108、スイッチ109、ビデオデコーダ110、およびDPB(Decoded Picture Buffer)151が示されている。図21には示していないが、ビデオデコーダ110の後段には、デコード済みのピクチャのデータが記憶されるDPB151が設けられる。
PIDフィルタ104は、Main TSに含まれるBase view videoストリームを構成するパケットをB videoバッファ106に出力し、Dependent view videoストリームを構成するパケットをスイッチ107に出力する。
例えば、Base view videoストリームを構成するパケットには、PID=0がPIDの固定値として割り当てられている。また、Dependent view videoストリームを構成するパケットには、0以外の固定の値がPIDとして割り当てられている。
PIDフィルタ104は、PID=0がヘッダに記述されているパケットをB videoバッファ106に出力し、0以外のPIDがヘッダに記述されているパケットをスイッチ107に出力する。
B videoバッファ106に出力されたパケットは、TB(Transport Buffer)1、MB(Multiplexing Buffer)1を介してVSB1に記憶される。VSB1には、Base view videoのエレメンタリストリームのデータが記憶される。
スイッチ107には、PIDフィルタ104から出力されたパケットだけでなく、図21のPIDフィルタ105においてSub TSから抽出されたDependent view videoストリームを構成するパケットも供給される。
スイッチ107は、PIDフィルタ104からDependent view videoストリームを構成するパケットが供給された場合、それをD videoバッファ108に出力する。
また、スイッチ107は、PIDフィルタ105からDependent view videoストリームを構成するパケットが供給された場合、それをD videoバッファ108に出力する。
D videoバッファ108に出力されたパケットは、TB2、MB2を介してVSB2に記憶される。VSB2には、Dependent view videoのエレメンタリストリームのデータが記憶される。
スイッチ109は、B videoバッファ106のVSB1に記憶されたBase view videoのパケットと、D videoバッファ108のVSB2に記憶されたDependent view videoのパケットを順次読み出し、ビデオデコーダ110に出力する。
例えば、スイッチ109は、ある時刻のBase view videoのパケットを出力した直後にそれと同じ時刻のDependent view videoのパケットを出力するといったように、同じ時刻のBase view videoのパケットとDependent view videoのパケットを続けてビデオデコーダ110に出力する。
Base view videoのあるピクチャのデータを格納したパケットと、それに対応するDependent view videoのピクチャのデータを格納したパケットには、そのエンコード時に、PCR(Program Clock Reference)同期が確保された同じ時刻情報が設定されている。Base view videoストリームとDependent view videoストリームがそれぞれ異なるTSに含まれている場合であっても、対応するピクチャのデータを格納したパケットには同じ時刻情報が設定される。
時刻情報はDTS(Decoding Time Stamp)、PTS(Presentation Time Stamp)であり、各PES(Packetized Elementary Stream)パケットに設定される。
すなわち、それぞれのストリームのピクチャをエンコード順/デコード順に並べたときに同じ時刻に位置するBase view videoのピクチャとDependent view videoのピクチャが、対応するピクチャとなる。あるBase view videoのピクチャのデータを格納するPESパケットと、デコード順でそのピクチャと対応するDependent view videoのピクチャのデータを格納するPESパケットには、同じDTSが設定されている。
また、それぞれのストリームのピクチャを表示順に並べたときに同じ時刻に位置するBase view videoのピクチャとDependent view videoのピクチャも、対応するピクチャとなる。あるBase view videoのピクチャのデータを格納するPESパケットと、表示順でそのピクチャと対応するDependent view videoのピクチャのデータを格納するPESパケットには、同じPTSが設定されている。
後述するようにBase view videoストリームのGOP構造とDependent view videoストリームのGOP構造が同じ構造である場合、デコード順で対応するピクチャは、表示順でも対応するピクチャになる。
パケットの転送がシリアルで行われる場合、あるタイミングでB videoバッファ106のVSB1から読み出されたパケットのDTS1と、直後のタイミングでD videoバッファ108のVSB2から読み出されたパケットのDTS2は、図22に示すように同じ時刻を表すものになる。
スイッチ109は、B videoバッファ106のVSB1から読み出したBase view videoのパケット、または、D videoバッファ108のVSB2から読み出したDependent view videoのパケットをビデオデコーダ110に出力する。
ビデオデコーダ110は、スイッチ109から供給されたパケットを順次デコードし、デコードして得られたBase view videoのピクチャのデータ、または、Dependent view videoのピクチャのデータをDPB151に記憶させる。
DPB151に記憶されたデコード済みのピクチャのデータは、所定のタイミングでスイッチ111により読み出される。また、DPB151に記憶されたデコード済みのピクチャのデータは、他のピクチャの予測にビデオデコーダ110により用いられる。
データの転送がシリアルで行われる場合、あるタイミングで出力されたBase view videoのピクチャのデータのPTSと、直後のタイミングで出力されたDependent view videoのピクチャのデータのPTSは、同じ時刻を表すものになる。
Base view videoストリームとDependent view videoストリームは図5等を参照して説明したように1本のTSに多重化される場合があるし、図7を参照して説明したようにそれぞれ異なるTSに含まれることがある。
図22のデコーダモデルを実装することにより、再生装置1は、Base view videoストリームとDependent view videoストリームが1本のTSに多重化されている場合であっても、それぞれ異なるTSに含まれる場合であっても、対応することが可能になる。
例えば図23に示すように1本のTSが供給される状況しか想定されていない場合、Base view videoストリームとDependent view videoストリームがそれぞれ異なるTSに含まれる場合などには対応することができない。
また、図22のデコーダモデルによれば、同じDTSを持つことから、Base view videoストリームとDependent view videoストリームが異なるTSに含まれる場合であっても、正しいタイミングでビデオデコーダ110にパケットを供給することができる。
Base view video用のデコーダとDependent view video用のデコーダをそれぞれ並列に設けるようにしてもよい。この場合、Base view video用のデコーダとDependent view video用のデコーダには、それぞれ、同じ時刻のパケットが同じタイミングで供給される。
[第2の例]
図24は、ビデオストリームの処理を行う他の構成を示す図である。
図24においては、図22の構成に加えて、スイッチ111、L videoプレーン生成部161、およびR videoプレーン生成部162が示されている。また、PIDフィルタ105もスイッチ107の前段に示されている。重複する説明については適宜省略する。
L videoプレーン生成部161は、L view videoのプレーンを生成するものであり、図21のB videoプレーン生成部112に替えて設けられる。
R videoプレーン生成部162は、R view videoのプレーンを生成するものであり、図21のD videoプレーン生成部113に替えて設けられる。
この例においては、スイッチ111は、L viewのビデオデータとR viewのビデオデータを識別して出力する必要があることになる。
すなわち、スイッチ111は、Base view videoのパケットをデコードして得られたデータがL viewとR viewのいずれのビデオデータであるのかを識別する必要がある。
また、スイッチ111は、Dependent view videoのパケットをデコードして得られたデータがL viewとR viewのいずれのビデオデータであるのかを識別する必要がある。
L viewとR viewの識別には、図12と図14を参照して説明したview_typeが用いられる。例えば、コントローラ51は、PlayListファイルに記述されているview_typeをスイッチ111に出力する。
view_typeの値が0である場合、スイッチ111は、DPB151に記憶されたデータのうち、PID=0で識別されるBase view videoのパケットをデコードして得られたデータをL videoプレーン生成部161に出力する。上述したように、view_typeの値の0は、Base view videoストリームがL viewのストリームであることを表す。
この場合、スイッチ111は、0以外のPIDで識別されるDependent view videoのパケットをデコードして得られたデータをR videoプレーン生成部162に出力する。
一方、view_typeの値が1である場合、スイッチ111は、DPB151に記憶されたデータのうち、PID=0で識別されるBase view videoのパケットをデコードして得られたデータをR videoプレーン生成部162に出力する。view_typeの値の1は、Base view videoストリームがR viewのストリームであることを表す。
この場合、スイッチ111は、0以外のPIDで識別されるDependent view videoのパケットをデコードして得られたデータをL videoプレーン生成部161に出力する。
L videoプレーン生成部161は、L view videoのプレーンをスイッチ111から供給されたデータに基づいて生成し、合成部130に出力する。
R videoプレーン生成部162は、R view videoのプレーンをスイッチ111から供給されたデータに基づいて生成し、合成部130に出力する。
H.264 AVC/MVCプロファイル規格でエンコードされたBase view video、Dependent view videoのエレメンタリストリーム内には、L viewであるのか、またはR viewであるのかを表す情報(フィールド)が存在しない。
従って、view_typeをPlayListファイルに設定しておくことにより、記録装置は、Base view videoストリームとDependent view videoストリームがそれぞれL viewとR viewのいずれのストリームであるのかを再生装置1に識別させることが可能になる。
再生装置1は、Base view videoストリームとDependent view videoストリームがそれぞれL viewとR viewのいずれのストリームであるのかを識別し、識別結果に応じて出力先を切り替えることができる。
IG、PGのプレーンについてもそれぞれL viewとR viewが用意されている場合、ビデオストリームのL viewとR viewを区別できることにより、再生装置1はL view同士、R view同士のプレーンの合成を容易に行うことができる。
上述したように、HDMIケーブルを介してビデオ信号を出力する場合、L viewの信号とR viewの信号とをそれぞれ区別した上で出力することが要求されるが、再生装置1はその要求に対応することが可能になる。
DPB151に記憶されたBase view videoのパケットをデコードして得られたデータと、Dependent view videoのパケットをデコードして得られたデータの識別が、PIDではなく、view_idに基づいて行われるようにしてもよい。
H.264 AVC/MVCプロファイル規格でのエンコード時、エンコード結果のストリームを構成するAccess Unitにはview_idが設定される。view_idにより、各Access Unitがどのview componentのユニットであるのかが識別可能になっている。
図25は、Access Unitの例を示す図である。
図25のAccess Unit#1はBase view videoのデータを含むユニットである。Dependent Unit#2はDependent view videoのデータを含むユニットである。Access Unit(Dependent viewの場合、Dependent Unit)はピクチャ単位でのアクセスが可能になるように、例えば1枚のピクチャのデータをまとめたユニットである。
H.264 AVC/MVCプロファイル規格でのエンコードが行われることによって、Base view videoとDependent view videoの各ピクチャのデータは、このようなユニットに格納される。H.264 AVC/MVCプロファイル規格でのエンコード時、Dependent Unit#2内に示すように、それぞれのview componentにはMVCヘッダが付加される。MVCヘッダにはview_idが含まれる。
図25の例の場合、Dependent Unit#2については、そのユニットに格納されるview componentがDependent view videoであることをview_idから識別することが可能になる。
一方、図25に示すように、Access Unit#1に格納されたview componentであるBase view videoにはMVCヘッダが付加されていない。
上述したようにBase view videoストリームは2D再生にも用いられるデータである。従って、それとの互換性を確保するために、Base view videoにはエンコード時にMVCヘッダが付加されない。あるいは、一度付加されたMVCヘッダが除去される。記録装置によるエンコードについては後述する。
再生装置1には、MVCヘッダが付加されていないview componentについては、そのview_idが0であり、view componentをBase view videoであるとして認識するように定義(設定)されている。Dependent view videoには、0以外の値がview_idとしてエンコード時に設定される。
これにより、再生装置1は、0であるとして認識したview_idに基づいてBase view videoを識別することができ、実際に設定されている0以外のview_idに基づいてDependent view videoを識別することができる。
図24のスイッチ111においては、Base view videoのパケットをデコードして得られたデータとDependent view videoのパケットをデコードして得られたデータの識別が、このようなview_idに基づいて行われるようにしてもよい。
[第3の例]
図26は、ビデオストリームの処理を行うさらに他の構成を示す図である。
図26の例においては、図24のL videoプレーン生成部161に替えてB videoプレーン生成部112が設けられ、R videoプレーン生成部162に替えてD videoプレーン生成部113が設けられている。B videoプレーン生成部112とD videoプレーン生成部113の後段にはスイッチ171が設けられている。図26に示す構成においても、view_typeに基づいてデータの出力先が切り替えられるようになされている。
スイッチ111は、DPB151に記憶されたデータのうち、Base view videoのパケットをデコードして得られたデータをB videoプレーン生成部112に出力する。また、スイッチ111は、Dependent view videoのパケットをデコードして得られたデータをD videoプレーン生成部113に出力する。
Base view videoのパケットをデコードして得られたデータと、Dependent view videoのパケットをデコードして得られたデータは、上述したようにPID、またはview_idに基づいて識別される。
B videoプレーン生成部112は、Base view videoのプレーンをスイッチ111から供給されたデータに基づいて生成し、出力する。
D videoプレーン生成部113は、Dependent view videoのプレーンをスイッチ111から供給されたデータに基づいて生成し、出力する。
スイッチ171に対しては、PlayListファイルに記述されているview_typeがコントローラ51から供給されている。
view_typeの値が0である場合、スイッチ171は、B videoプレーン生成部112から供給されたBase view videoのプレーンをL view videoのプレーンとして合成部130に出力する。view_typeの値の0は、Base view videoストリームがL viewのストリームであることを表す。
また、この場合、スイッチ171は、D videoプレーン生成部113から供給されたDependent view videoのプレーンをR view videoのプレーンとして合成部130に出力する。
一方、view_typeの値が1である場合、スイッチ171は、D videoプレーン生成部113から供給されたDependent view videoのプレーンをL view videoのプレーンとして合成部130に出力する。view_typeの値の1は、Base view videoストリームがR viewのストリームであることを表す。
また、この場合、スイッチ171は、B videoプレーン生成部112から供給されたBase view videoのプレーンをR view videoのプレーンとして合成部130に出力する。
図26の構成によっても、再生装置1は、L viewとR viewを識別し、識別結果に応じて出力先を切り替えることができる。
[プレーン合成モデルの第1の例]
図27は、図21に示す構成のうちの、合成部130と、その前段の構成を示す図である。
図27においても、図21に示す構成と同じ構成には同じ符号を付してある。
スイッチ181には、Main TS、またはSub TSに含まれるIGストリームを構成するパケットが入力される。スイッチ181に入力されるIGストリームを構成するパケットには、Base viewのパケットとDependent viewのパケットが含まれる。
スイッチ182には、Main TS、またはSub TSに含まれるPGストリームを構成するパケットが入力される。スイッチ182に入力されるPGストリームを構成するパケットには、Base viewのパケットとDependent viewのパケットが含まれる。
図5等を参照して説明したように、IG、PGについても、3D表示を行うためのBase viewのストリームとDependent viewのストリームが用意されている。
Base viewのIGがBase view videoと合成して表示され、Dependent viewのIGがDependent view videoと合成して表示されることにより、ユーザは、ビデオだけでなく、ボタンやアイコンなどを3Dで見ることになる。
また、Base viewのPGがBase view videoと合成して表示され、Dependent viewのPGがDependent view videoと合成して表示されることにより、ユーザは、ビデオだけでなく、字幕のテキストなどを3Dで見ることになる。
スイッチ181は、Base IGストリームを構成するパケットをB IGデコーダ116に出力し、Dependent IGストリームを構成するパケットをD IGデコーダ120に出力する。スイッチ181は、図21のスイッチ114とスイッチ118の機能を有する。図27においては、各バッファの図示を省略している。
B IGデコーダ116は、スイッチ181から供給されたBase IGストリームを構成するパケットをデコードし、デコードして得られたデータをB IGプレーン生成部117に出力する。
B IGプレーン生成部117は、Base IGのプレーンをB IGデコーダ116から供給されたデータに基づいて生成し、合成部130に出力する。
D IGデコーダ120は、スイッチ181から供給されたDependent IGストリームを構成するパケットをデコードし、デコードして得られたデータをD IGプレーン生成部121に出力する。Base IGストリームとDependent IGストリームが1つのデコーダによりデコードされるようにしてもよい。
D IGプレーン生成部121は、Dependent IGのプレーンをD IGデコーダ120から供給されたデータに基づいて生成し、合成部130に出力する。
スイッチ182は、Base PGストリームを構成するパケットをB PGデコーダ124に出力し、Dependent PGストリームを構成するパケットをD PGデコーダ128に出力する。スイッチ182は、図21のスイッチ122とスイッチ126の機能を有する。
B PGデコーダ124は、スイッチ182から供給されたBase PGストリームを構成するパケットをデコードし、デコードして得られたデータをB PGプレーン生成部125に出力する。
B PGプレーン生成部125は、Base PGのプレーンをB PGデコーダ124から供給されたデータに基づいて生成し、合成部130に出力する。
D PGデコーダ128は、スイッチ182から供給されたDependent PGストリームを構成するパケットをデコードし、デコードして得られたデータをD PGプレーン生成部129に出力する。Base PGストリームとDependent PGストリームが1つのデコーダによりデコードされるようにしてもよい。
D PGプレーン生成部129は、Dependent PGのプレーンをD PGデコーダ128から供給されたデータに基づいて生成し、合成部130に出力する。
ビデオデコーダ110は、スイッチ109(図22等)から供給されたパケットを順次デコードし、デコードして得られたBase view videoのデータ、または、Dependent view videoのデータをスイッチ111に出力する。
スイッチ111は、Base view videoのパケットをデコードして得られたデータをB videoプレーン生成部112に出力し、Dependent view videoのパケットをデコードして得られたデータをD videoプレーン生成部113に出力する。
B videoプレーン生成部112は、Base view videoのプレーンをスイッチ111から供給されたデータに基づいて生成し、出力する。
D videoプレーン生成部113は、Dependent view videoのプレーンをスイッチ111から供給されたデータに基づいて生成し、出力する。
合成部130は、加算部191乃至194、およびスイッチ195から構成される。
加算部191は、D PGプレーン生成部129から供給されたDependent PGのプレーンを、D videoプレーン生成部113から供給されたDependent view videoのプレーンの上に重ねるようにして合成し、合成結果を加算部193に出力する。D PGプレーン生成部129から加算部191に供給されるDependent PGのプレーンには、色情報の変換処理(CLUT(Color Look Up Table)処理)が施される。
加算部192は、B PGプレーン生成部125から供給されたBase PGのプレーンを、B videoプレーン生成部112から供給されたBase view videoのプレーンの上に重ねるようにして合成し、合成結果を加算部194に出力する。B PGプレーン生成部125から加算部192に供給されるBase PGのプレーンには、色情報の変換処理やオフセット値を用いた補正処理が施される。
加算部193は、D IGプレーン生成部121から供給されたDependent IGのプレーンを、加算部191による合成結果の上に重ねるようにして合成し、合成結果をDependent viewのプレーンとして出力する。D IGプレーン生成部121から加算部193に供給されるDependent IGのプレーンには、色情報の変換処理が施される。
加算部194は、B IGプレーン生成部117から供給されたBase IGのプレーンを、加算部192による合成結果の上に重ねるようにして合成し、合成結果をBase viewのプレーンとして出力する。D IGプレーン生成部121から加算部194に供給されるBase IGのプレーンには、色情報の変換処理やオフセット値を用いた補正処理が施される。
このようにして生成されたBase viewのプレーンとDependent viewのプレーンに基づいて表示される画像は、ボタンやアイコンが前面に見え、その下(奥行き方向)に字幕のテキストが見え、その下にビデオが見えるような画像になる。
スイッチ195は、view_typeの値が0である場合、Base viewのプレーンをL viewのプレーンとして出力し、Dependent viewのプレーンをR viewのプレーンとして出力する。スイッチ195にはコントローラ51からview_typeが供給される。
また、スイッチ195は、view_typeの値が1である場合、Base viewのプレーンをR viewのプレーンとして出力し、Dependent viewのプレーンをL viewのプレーンとして出力する。供給されたプレーンのうちのどのプレーンがBase viewのプレーンであるのかDependent viewのプレーンであるのかは、PIDやview_idに基づいて識別される。
このように、再生装置1においては、Base viewのプレーン同士、Dependent viewのプレーン同士、video、IG、PGの各プレーンの合成が行われる。
video、IG、PGの全てのプレーンの合成が終わった段階で、Base viewのプレーン同士を合成した結果がL viewであるのか、またはR viewであるのかがview_typeに基づいて判断され、R viewのプレーンとL viewのプレーンがそれぞれ出力される。
また、video、IG、PGの全てのプレーンの合成が終わった段階で、Dependent viewのプレーン同士を合成した結果がL viewであるのか、またはR viewであるのかがview_typeに基づいて判断され、R viewのプレーンとL viewのプレーンがそれぞれ出力される。
[第2の例]
図28は、合成部130と、その前段の構成を示す図である。
図28に示す構成のうち、図27に示す構成と同じ構成には同じ符号を付してある。図28においては、合成部130の構成が図27の構成と異なる。また、スイッチ111の動作が、図27のスイッチ111の動作と異なる。B videoプレーン生成部112に替えてL videoプレーン生成部161が設けられ、D videoプレーン生成部113に替えてR videoプレーン生成部162が設けられている。重複する説明については省略する。
スイッチ111と、合成部130のスイッチ201およびスイッチ202に対しては、同じview_typeの値がコントローラ51から供給される。
スイッチ111は、図24のスイッチ111と同様に、Base view videoのパケットをデコードして得られたデータと、Dependent view videoのパケットをデコードして得られたデータの出力先をview_typeに基づいて切り替える。
例えば、view_typeの値が0である場合、スイッチ111は、Base view videoのパケットをデコードして得られたデータをL videoプレーン生成部161に出力する。この場合、スイッチ111は、Dependent view videoのパケットをデコードして得られたデータをR videoプレーン生成部162に出力する。
一方、view_typeの値が1である場合、スイッチ111は、Base view videoのパケットをデコードして得られたデータをR videoプレーン生成部162に出力する。この場合、スイッチ111は、Dependent view videoのパケットをデコードして得られたデータをL videoプレーン生成部161に出力する。
L videoプレーン生成部161は、L view videoのプレーンをスイッチ111から供給されたデータに基づいて生成し、合成部130に出力する。
R videoプレーン生成部162は、R view videoのプレーンをスイッチ111から供給されたデータに基づいて生成し、合成部130に出力する。
合成部130は、スイッチ201、スイッチ202、加算部203乃至206から構成される。
スイッチ201は、B IGプレーン生成部117から供給されたBase IGのプレーンとD IGプレーン生成部121から供給されたDependent IGのプレーンの出力先をview_typeに基づいて切り替える。
例えば、view_typeの値が0である場合、スイッチ201は、B IGプレーン生成部117から供給されたBase IGのプレーンをL viewのプレーンとして加算部206に出力する。
この場合、スイッチ201は、D IGプレーン生成部121から供給されたDependent IGのプレーンをR viewのプレーンとして加算部205に出力する。
一方、view_typeの値が1である場合、スイッチ201は、D IGプレーン生成部121から供給されたDependent IGのプレーンをL viewのプレーンとして加算部206に出力する。この場合、スイッチ201は、B IGプレーン生成部117から供給されたBase IGのプレーンをR viewのプレーンとして加算部205に出力する。
スイッチ202は、B PGプレーン生成部125から供給されたBase PGのプレーンとD PGプレーン生成部129から供給されたDependent PGのプレーンの出力先をview_typeに基づいて切り替える。
例えば、view_typeの値が0である場合、スイッチ202は、B PGプレーン生成部125から供給されたBase PGのプレーンをL viewのプレーンとして加算部204に出力する。
この場合、スイッチ202は、D PGプレーン生成部129から供給されたDependent PGのプレーンをR viewのプレーンとして加算部203に出力する。
一方、view_typeの値が1である場合、スイッチ202は、D PGプレーン生成部129から供給されたDependent PGのプレーンをL viewのプレーンとして加算部204に出力する。この場合、スイッチ202は、B PGプレーン生成部125から供給されたBase PGのプレーンをR viewのプレーンとして加算部203に出力する。
加算部203は、スイッチ202から供給されたR viewのPGのプレーンを、R videoプレーン生成部162から供給されたR view videoのプレーンの上に重ねるようにして合成し、合成結果を加算部205に出力する。
加算部204は、スイッチ202から供給されたL viewのPGのプレーンを、L videoプレーン生成部161から供給されたL view videoのプレーンの上に重ねるようにして合成し、合成結果を加算部206に出力する。
加算部205は、スイッチ201から供給されたR viewのIGのプレーンを、加算部203による合成結果のプレーンの上に重ねるようにして合成し、合成結果をR viewのプレーンとして出力する。
加算部206は、スイッチ201から供給されたL viewのIGのプレーンを、加算部204による合成結果のプレーンの上に重ねるようにして合成し、合成結果をL viewのプレーンとして出力する。
このように、再生装置1においては、video、IG、PGのそれぞれのBase viewのプレーンとDependent viewのプレーンについて、他のプレーンとの合成の前に、いずれのプレーンがL viewであるのか、またはR viewであるのかが判断される。
その判断が行われた後、L viewのプレーン同士、R viewのプレーン同士を合成するように、video、IG、PGの各プレーンの合成が行われる。
[記録装置の構成例]
図29は、ソフト製作処理部301の構成例を示すブロック図である。
ビデオエンコーダ311は、図3のMVCエンコーダ11と同様の構成を有している。ビデオエンコーダ311は、複数の映像データをH.264 AVC/MVCプロファイル規格でエンコードすることによってBase view videoストリームとDependent view videoストリームを生成し、バッファ312に出力する。
例えば、ビデオエンコーダ311は、エンコード時、同じPCRを基準としてDTS、PTSを設定する。すなわち、ビデオエンコーダ311は、あるBase view videoのピクチャのデータを格納するPESパケットと、デコード順でそのピクチャと対応するDependent view videoのピクチャのデータを格納するPESパケットに同じDTSを設定する。
また、ビデオエンコーダ311は、あるBase view videoのピクチャのデータを格納するPESパケットと、表示順でそのピクチャと対応するDependent view videoのピクチャのデータを格納するPESパケットに同じPTSを設定する。
ビデオエンコーダ311は、後述するように、デコード順で対応するBase view videoのピクチャとBase view videoのピクチャに、復号に関する補助的な情報である付加情報としてそれぞれ同じ情報を設定する。
さらに、ビデオエンコーダ311は、後述するように、表示順で対応するBase view videoのピクチャとBase view videoのピクチャに、ピクチャの出力順を表すPOCの値としてそれぞれ同じ値を設定する。
また、ビデオエンコーダ311は、後述するように、Base view videoストリームのGOP構造とDependent view videoストリームのGOP構造とを一致させるようにしてエンコードを行う。
オーディオエンコーダ313は、入力されたオーディオストリームをエンコードし、得られたデータをバッファ314に出力する。オーディオエンコーダ313には、Base view video、Dependent view videoストリームとともにディスクに記録させるオーディオストリームが入力される。
データエンコーダ315は、PlayListファイルなどの、ビデオ、オーディオ以外の上述した各種のデータをエンコードし、エンコードして得られたデータをバッファ316に出力する。
データエンコーダ315は、ビデオエンコーダ311によるエンコードに応じて、Base view videoストリームがL viewのストリームであるのか、R viewのストリームであるのかを表すview_typeをPlayListファイルに設定する。Base view videoストリームの種類ではなく、Dependent view videoストリームがL viewのストリームであるのか、R viewのストリームであるのかを表す情報が設定されるようにしてもよい。
また、データエンコーダ315は、後述するEP_mapを、Base view videoストリームのClip Informationファイルと、Dependent view videoストリームのClip Informationファイルにそれぞれ設定する。デコード開始位置としてEP_mapに設定されたBase view videoストリームのピクチャと、Dependent view videoストリームのピクチャは対応するピクチャになる。
多重化部317は、それぞれのバッファに記憶されたビデオデータ、オーディオデータ、および、ストリーム以外のデータを同期信号と共に多重化し、誤り訂正符号化部318に出力する。
誤り訂正符号化部318は、エラー訂正用のコードを多重化部317により多重化されたデータに付加する。
変調部319は、誤り訂正符号化部318から供給されたデータに対して変調を施し、出力する。変調部319の出力は、再生装置1において再生可能な光ディスク2に記録されるソフトウェアとなる。
このような構成を有するソフト製作処理部301が記録装置に設けられる。
図30は、ソフト製作処理部301を含む構成の例を示す図である。
図30に示す構成の一部が記録装置内に設けられることもある。
ソフト製作処理部301により生成された記録信号はプリマスタリング処理部331においてマスタリング処理が施され、光ディスク2に記録すべきフォーマットの信号が生成される。生成された信号は原盤記録部333に供給される。
記録用原盤製作部332においては、ガラスなどよりなる原盤が用意され、その上に、フォトレジストなどよりなる記録材料が塗布される。これにより、記録用原盤が製作される。
原盤記録部333において、プリマスタリング処理部331から供給された記録信号に対応してレーザビームが変調され、原盤上のフォトレジストに照射される。これにより、原盤上のフォトレジストが記録信号に対応して露光される。その後、この原盤を現像し、原盤上にピットを出現させることが行われる。
金属原盤製作部334において、原盤に電鋳等の処理が施され、ガラス原盤上のピットを転写した金属原盤が製作される。この金属原盤から、さらに金属スタンパが製作され、これが成形用金型とされる。
成形処理部335において、成形用金型に、インジェクションなどによりPMMA(アクリル)またはPC(ポリカーボネート)などの材料を注入し、固定化させることが行われる。
あるいは、金属スタンパ上に2P(紫外線硬化樹脂)などを塗布した後、紫外線を照射して硬化させることが行われる。これにより、金属スタンパ上のピットを、樹脂よりなるレプリカ上に転写することができる。
成膜処理部336において、レプリカ上に、反射膜が蒸着あるいはスパッタリングなどにより形成される。あるいはまた、レプリカ上に、反射膜がスピンコートにより形成される。
後加工処理部337において、このディスクに対して内外径の加工が施され、2枚のディスクを張り合わせるなどの必要な処置が施される。さらに、ラベルを貼り付けたり、ハブを取り付けたりした後、カートリッジに挿入される。このようにして再生装置1によって再生可能なデータが記録された光ディスク2が完成する。
<第2の実施の形態>
[H.264 AVC/MVC Profileビデオストリームの運用1]
光ディスク2の規格であるBD-ROM規格においては、上述したように、H.264 AVC/MVC Profileを採用することで3D映像の符号化が実現される。
また、BD-ROM規格においては、Base view videoストリームをL viewの映像のストリームとし、Dependent view videoストリームをR viewの映像のストリームとする。
Base view videoをH.264 AVC/High Profileビデオストリームとして符号化することにより、過去のプレーヤや2D再生のみに対応したプレーヤにおいても、3D対応のディスクである光ディスク2を再生することが可能になる。すなわち、下位互換性を確保することが可能になる。
具体的には、Base view videoのストリームのみをH.264 AVC/MVCプロファイル規格非対応デコーダにおいてもデコード(再生)可能になる。つまり、Base view videoストリームは、既存の2DのBDプレーヤにおいても必ず再生可能なストリームになる。
また、Base view videoストリームを、2D再生と3D再生において共通して使用することにより、オーサリング時の負荷の軽減を図ることが可能になる。オーサリング側は、AVストリームに関しては、従来行っていた作業に加えて、Dependent view videoストリームを用意すれば3D対応のディスクを製作することが可能になる。
図31は、記録装置に設けられる3D video TS生成部の構成例を示す図である。
図31の3D video TS生成部は、MVCエンコーダ401、MVCヘッダ除去部402、およびマルチプレクサ403から構成される。図2を参照して説明したようにして撮影されたL viewの映像#1のデータと、R viewの映像#2のデータがMVCエンコーダ401に入力される。
MVCエンコーダ401は、図3のMVCエンコーダ11と同様に、L viewの映像#1のデータをH.264/AVCで符号化し、符号化して得られたAVCビデオデータをBase view videoストリームとして出力する。また、MVCエンコーダ401は、L viewの映像#1のデータとR viewの映像#2のデータに基づいてDependent view videoストリームを生成し、出力する。
MVCエンコーダ401から出力されたBase view videoストリームは、Base view videoの各ピクチャのデータを格納したAccess Unitからなる。また、MVCエンコーダ401から出力されたDependent view videoストリームは、Dependent view videoの各ピクチャのデータを格納したDependent Unitからなる。
Base view videoストリームを構成する各Access UnitとDependent view videoストリームを構成する各Dependent Unitには、格納しているview componentを識別するためのview_idを記述したMVCヘッダが含まれている。
Dependent view videoのMVCヘッダに記述されるview_idの値としては、1以上の固定値が用いられる。図32、図33の例においても同様である。
すなわち、MVCエンコーダ401は、図3のMVCエンコーダ11とは異なり、MVCヘッダを付加した形でBase view videoとDependent view videoのそれぞれのストリームを生成し、出力するエンコーダである。図3のMVCエンコーダ11においては、H.264 AVC/MVCプロファイル規格で符号化されたDependent view videoのみにMVCヘッダが付加されている。
MVCエンコーダ401から出力されたBase view videoストリームはMVCヘッダ除去部402に供給され、Dependent view videoストリームはマルチプレクサ403に供給される。
MVCヘッダ除去部402は、Base view videoストリームを構成する各Access Unitに含まれるMVCヘッダを除去する。MVCヘッダ除去部402は、MVCヘッダを除去したAccess Unitから構成されるBase view videoストリームをマルチプレクサ403に出力する。
マルチプレクサ403は、MVCヘッダ除去部402から供給されたBase view videoストリームと、MVCエンコーダ401から供給されたDependent view videoストリームを含むTSを生成し、出力する。図31の例においては、Base view videoストリームを含むTSとDependent view videoストリームを含むTSがそれぞれ出力されているが、上述したように同じTSに多重化されて出力されることもある。
このように、実装の仕方によっては、L viewの映像とR viewの映像を入力とし、MVCヘッダ付のBase view videoとDependent view videoのそれぞれのストリームを出力するMVCエンコーダも考えられる。
なお、図31に示す構成全体を図3に示すようにMVCエンコーダの中に含めることも可能である。図32、図33に示す構成についても同様である。
図32は、記録装置に設けられる3D video TS生成部の他の構成例を示す図である。
図32の3D video TS生成部は、混合処理部411、MVCエンコーダ412、分離部413、MVCヘッダ除去部414、およびマルチプレクサ415から構成される。L viewの映像#1のデータと、R viewの映像#2のデータが混合処理部411に入力される。
混合処理部411は、L viewの各ピクチャとR viewの各ピクチャを符号化順に並べる。
Dependent view videoの各ピクチャは対応するBase view videoのピクチャを参照して符号化が行われるから、符号化順に並べた結果は、L viewのピクチャとR viewのピクチャが交互に並ぶものになる。
混合処理部411は、符号化順に並べたL viewのピクチャとR viewのピクチャをMVCエンコーダ412に出力する。
MVCエンコーダ412は、混合処理部411から供給された各ピクチャをH.264 AVC/MVCプロファイル規格で符号化し、符号化して得られたストリームを分離部413に出力する。MVCエンコーダ412から出力されたストリームには、Base view videoストリームとDependent view videoストリームが多重化されている。
MVCエンコーダ412から出力されたストリームに含まれるBase view videoストリームは、Base view videoの各ピクチャのデータを格納したAccess Unitからなる。また、MVCエンコーダ412から出力されたストリームに含まれるDependent view videoストリームは、Dependent view videoの各ピクチャのデータを格納したDependent Unitからなる。
Base view videoストリームを構成する各Access UnitとDependent view videoストリームを構成する各Dependent Unitには、格納しているview componentを識別するためのview_idを記述したMVCヘッダが含まれている。
分離部413は、MVCエンコーダ412から供給されたストリームに多重化されているBase view videoストリームとDependent view videoストリームを分離し、出力する。分離部413から出力されたBase view videoストリームはMVCヘッダ除去部414に供給され、Dependent view videoストリームはマルチプレクサ415に供給される。
MVCヘッダ除去部414は、分離部413から供給されたBase view videoストリームを構成する各Access Unitに含まれるMVCヘッダを除去する。MVCヘッダ除去部414は、MVCヘッダを除去したAccess Unitから構成されるBase view videoストリームをマルチプレクサ415に出力する。
マルチプレクサ415は、MVCヘッダ除去部414から供給されたBase view videoストリームと、分離部413から供給されたDependent view videoストリームを含むTSを生成し、出力する。
図33は、記録装置に設けられる3D video TS生成部のさらに他の構成例を示す図である。
図33の3D video TS生成部は、AVCエンコーダ421、MVCエンコーダ422、およびマルチプレクサ423から構成される。L viewの映像#1のデータはAVCエンコーダ421に入力され、R viewの映像#2のデータはMVCエンコーダ422に入力される。
AVCエンコーダ421は、L viewの映像#1のデータをH.264/AVCで符号化し、符号化して得られたAVCビデオストリームをBase view videoストリームとしてMVCエンコーダ422とマルチプレクサ423に出力する。AVCエンコーダ421から出力されたBase view videoストリームを構成する各Access UnitにはMVCヘッダが含まれていない。
MVCエンコーダ422は、AVCエンコーダ421から供給されたBase view videoストリーム(AVCビデオストリーム)をデコードし、L viewの映像#1のデータを生成する。
また、MVCエンコーダ422は、デコードして得られたL viewの映像#1のデータと、外部から入力されたR viewの映像#2のデータに基づいてDependent view videoストリームを生成し、マルチプレクサ423に出力する。MVCエンコーダ422から出力されたDependent view videoストリームを構成する各Dependent UnitにはMVCヘッダが含まれている。
マルチプレクサ423は、AVCエンコーダ421から供給されたBase view videoストリームと、MVCエンコーダ422から供給されたDependent view videoストリームを含むTSを生成し、出力する。
図33のAVCエンコーダ421が図3のH.264/AVCエンコーダ21の機能を有し、MVCエンコーダ422が図3のH.264/AVCデコーダ22とDependent view videoエンコーダ24の機能を有することになる。また、マルチプレクサ423が図3のマルチプレクサ25の機能を有することになる。
このような構成を有する3D video TS生成部を記録装置内に設けることにより、Base view videoのデータを格納するAccess Unitに対するMVCヘッダの符号化を禁止することが可能になる。また、Dependent view videoのデータを格納するDependent Unitに、1以上のview_idが設定されたMVCヘッダが含まれるようにすることができる。
図34は、Access Unitをデコードする再生装置1側の構成を示す図である。
図34においては、図22等を参照して説明したスイッチ109とビデオデコーダ110が示されている。Base view videoのデータを含むAccess Unit#1と、Dependent view videoのデータを含むDependent Unit#2がバッファから読み出され、スイッチ109に供給される。
Base view videoを参照して符号化が行われているから、Dependent view videoを正しく復号するには、まず、対応するBase view videoを復号しておくことが必要になる。
H.264/MVCプロファイル規格においては、デコーダ側が、MVCヘッダに含まれるview_idを利用して各ユニットの復号順序を算出するようになされている。また、Base view videoには、そのエンコード時に、常に最小の値をview_idの値として設定することが定められている。デコーダは、最小のview_idが設定されているMVCヘッダを含むユニットから復号を開始することで、Base view videoとDependent view videoを正しい順序で復号することができるようになされている。
ところで、再生装置1のビデオデコーダ110に供給される、Base view videoを格納したAccess UnitにはMVCヘッダの符号化が禁止されている。
そこで、再生装置1においては、MVCヘッダがないAccess Unitに格納されているview componentについては、そのview_idが0であるとして認識するように定義されている。
これにより、再生装置1は、0であるとして認識したview_idに基づいてBase view videoを識別することができ、実際に設定されている0以外のview_idに基づいてDependent view videoを識別することができる。
図34のスイッチ109は、最小の値である0がview_idとして設定されていると認識したAccess Unit#1をまずビデオデコーダ110に出力し、デコードを行わせる。
また、スイッチ109は、Access Unit#1のデコードが終了した後、0より大きい固定値であるYがview_idとして設定されているユニットであるDependent Unit#2をビデオデコーダ110に出力し、デコードを行わせる。Dependent Unit#2に格納されているDependent view videoのピクチャは、Access Unit#1に格納されているBase view videoのピクチャに対応するピクチャである。
このように、Base view videoを格納したAccess Unitに対するMVCヘッダの符号化を禁止することにより、光ディスク2に記録されているBase view videoストリームを、従来のプレーヤにおいても再生可能なストリームとすることができる。
BD-ROM規格を拡張したBD-ROM 3D規格のBase view videoストリームの条件として、従来のプレーヤにおいても再生可能なストリームとするような条件が決められた場合であっても、その条件を満たすようにすることができる。
例えば、図35に示すように、Base view videoとDependent view videoにそれぞれMVCヘッダを付加しておき、Base view videoから先にデコードが行われるようにした場合、そのBase view videoは従来のプレーヤにおいては再生できないものになる。従来のプレーヤが搭載するH.264/AVCデコーダにとっては、MVCヘッダは未定義のデータである。そのような未定義のデータが入力された場合、デコーダによってはそれを無視することができず、処理が破綻するおそれがある。
なお、図35においては、Base view videoのview_idはX、Dependent view videoのview_idは、Xより大きいYである。
また、MVCヘッダの符号化を禁止した場合であっても、Base view videoのview_idを0としてみなすように定義することにより、再生装置1にBase view videoのデコードを先に行わせ、その後に、対応するDependent view videoのデコードを行わせることができる。
すなわち、正しい順序でデコードを行わせることが可能になる。
[運用2]
GOP構造について
H.264/AVC規格には、MPEG-2ビデオ規格におけるGOP(Group Of Pictures)構造が定義されていない。
そこで、H.264/AVCビデオストリームを扱うBD-ROM規格においては、H.264/AVCビデオストリームのGOP構造を定義し、ランダムアクセスなどのGOP構造を利用した各種の機能を実現している。
H.264 AVC/MVCプロファイル規格で符号化して得られたビデオストリームであるBase view videoストリームとDependent view videoストリームにも、H.264/AVCビデオストリームと同様にGOP構造の定義が存在しない。
Base view videoストリームはH.264/AVCビデオストリームである。従って、Base view videoストリームのGOP構造は、BD-ROM規格において定義されたH.264/AVCビデオストリームのGOP構造と同じ構造になる。
Dependent view videoストリームのGOP構造についても、Base view videoストリームのGOP構造、すなわち、BD-ROM規格において定義されたH.264/AVCビデオストリームのGOP構造と同じ構造として定義する。
BD-ROM規格において定義されたH.264/AVCビデオストリームのGOP構造には次のような特徴がある。
1.ストリーム構造についての特徴
(1)Open GOP/Closed GOP構造
図36は、Closed GOP構造を示す図である。
図36の各ピクチャはH.264/AVCビデオストリームを構成するピクチャである。Closed GOPにはIDR(Instantaneous Decoding Refresh)ピクチャが含まれる。
IDRピクチャはIピクチャであり、IDRピクチャを含むGOP内の中で最初にデコードされる。IDRピクチャのデコード時、参照ピクチャバッファ(図22のDPB151)の状態や、それまで管理されていたフレーム番号やPOC(Picture Order Count)などのデコードに関する全ての情報はリセットされる。
図36に示すように、Closed GOPである現在GOPにおいては、その現在GOPのピクチャのうち、IDRピクチャより表示順で前(過去)のピクチャは、直前のGOPのピクチャを参照することが禁止される。
また、現在GOPのピクチャのうち、IDRピクチャより表示順で後(未来)のピクチャは、IDRピクチャを超えて、直前のGOPのピクチャを参照することが禁止される。H.264/AVCにおいては、表示順でIピクチャの後ろにあるPピクチャから、そのIピクチャより前のピクチャを参照することも許されている。
図37は、Open GOP構造を示す図である。
図37に示すように、Open GOPである現在GOPにおいては、その現在GOPのピクチャのうち、non-IDR Iピクチャ(IDRピクチャではないIピクチャ)より表示順で前のピクチャは、直前のGOPのピクチャを参照することが許される。
また、現在GOPのピクチャのうち、non-IDR Iピクチャより表示順で後のピクチャは、non-IDR Iピクチャを超えて直前のGOPのピクチャを参照することが禁止される。
(2)GOPの先頭のAccess Unitには、SPS、PPSが必ず符号化される。
SPS(Sequence Parameter Set)は、シーケンス全体の符号化に関する情報を含む、シーケンスのヘッダ情報である。あるシーケンスのデコード時、シーケンスの識別情報などが含まれるSPSが最初に必要になる。PPS(Picture Parameter Set)は、ピクチャ全体の符号化に関する情報を含む、ピクチャのヘッダ情報である。
(3)GOPの先頭のAccess Unitには、最大30個までのPPSを符号化することができる。
複数のPPSを先頭のAccess Unitに符号化した場合には、各PPSのid(pic_parameter_set_id)は一緒であってはならない。
(4)GOPの先頭以外のAccess Unitには、最大1個までのPPSを符号化することができる。
2.参照構造についての特徴
(1)I・P・Bピクチャは、それぞれI・P・Bスライスのみから構成されるピクチャであることが求められる。
(2)表示順で参照ピクチャ(I or Pピクチャ)の直前のBピクチャは、符号化順では、必ず、その参照ピクチャの直後に符号化されていることが求められる。
(3)参照ピクチャ(I or Pピクチャ)の符号化順と表示順は維持されること(同じであること)が求められる。
(4)PピクチャからBピクチャを参照することは禁止される。
(5)符号化順で、非参照Bピクチャ(B1)が非参照ピクチャ(B2)の前である場合、表示順もB1が前になることが求められる。
非参照Bピクチャは、符号化順で後ろにある他のピクチャによって参照されないBピクチャである。
(6)参照Bピクチャは、表示順で直前、又は直後の参照ピクチャ(I or Pピクチャ)を参照することができる。
(7)非参照Bピクチャは、表示順で直前、又は直後の参照ピクチャ(I or Pピクチャ)、又は参照Bピクチャを参照することができる。
(8)連続するBピクチャの数を最大3枚とすることが求められる。
3.GOP内の最大フレーム・フィールド数についての特徴
GOP内の最大フレーム・フィールド数は、図38に示すようにビデオのフレームレートに応じて規定されている。
図38に示すように、例えば、フレームレートが29.97フレーム/秒でインタレース表示を行う場合、1GOPのピクチャで表示させることが可能な最大フィールド数は60である。
また、フレームレートが59.94フレーム/秒でプログレッシブ表示を行う場合、1GOPのピクチャで表示させることが可能な最大フレーム数は60である。
以上のような特徴を有するGOP構造を、Dependent view videoストリームのGOP構造としても定義する。
また、Base view videoストリームのあるGOPの構造と、対応するDependent view videoストリームのGOPの構造を一致させることを制約として規定する。
以上のようにして定義したBase view videoストリーム、またはDependent view videoストリームのClosed GOP構造を図39に示す。
図39に示すように、Closed GOPである現在GOPにおいては、その現在GOPのピクチャのうち、IDRピクチャ、またはアンカーピクチャより表示順で前(過去)のピクチャは、直前のGOPのピクチャを参照することが禁止される。アンカーピクチャについては後述する。
また、現在GOPのピクチャのうち、IDRピクチャ、またはアンカーピクチャより表示順で後(未来)のピクチャは、IDRピクチャ、またはアンカーピクチャを超えて、直前のGOPのピクチャを参照することが禁止される。
図40は、Base view videoストリーム、またはDependent view videoストリームのOpen GOP構造を示す図である。
図40に示すように、Open GOPである現在GOPにおいては、その現在GOPのピクチャのうち、non-IDRアンカーピクチャ(IDRピクチャではないアンカーピクチャ)より表示順で前のピクチャは、直前のGOPのピクチャを参照することが許される。
また、現在GOPのピクチャのうち、non-IDRアンカーピクチャより表示順で後のピクチャは、non-IDRアンカーピクチャを超えて直前のGOPのピクチャを参照することが禁止される。
以上のようにしてGOP構造を定義することにより、例えば、Base view videoストリームのあるGOPと、対応するDependent view videoストリームのGOPの間では、Open GOPであるのか、Closed GOPであるのかといったようなストリーム構造の特徴が一致することになる。
また、Base view videoの非参照Bピクチャに対応するDependent view videoのピクチャは必ず非参照Bピクチャになるといったように、ピクチャの参照構造の特徴も一致することになる。
さらに、Base view videoストリームのあるGOPと、対応するDependent view videoストリームのGOPの間では、フレーム数、フィールド数も一致することになる。
このように、Dependent view videoストリームのGOP構造をBase view videoストリームのGOP構造と同じ構造として定義することにより、ストリーム間の対応するGOP同士に同じ特徴を持たせることが可能になる。
また、ストリームの途中からデコードを行うような場合でも、問題なくそれを行うことが可能になる。ストリームの途中からのデコードは、例えば、トリックプレイやランダムアクセスのときに行われる。
フレーム数が異なるといったように、ストリーム間の対応するGOP同士の構造が異なる場合、一方のストリームは正常に再生できるのに他方のストリームが再生できないといったことが生じるおそれがあるが、それを防ぐことができる。
ストリーム間の対応するGOP同士の構造を異なるものとしてストリームの途中からデコードを開始した場合、Dependent view videoのデコードに必要となるBase view videoのピクチャがデコードされていないといったことが生じるおそれもある。この場合、結果として、Dependent view videoのピクチャをデコードすることができず、3D表示を行うことができなくなる。また、実装の方法によっては、Base view videoの画像も出力できない可能性があるが、それらの不都合も回避することができる。
[EP_map]
Base view videoストリームとDependent view videoストリームのGOP構造を利用することで、ランダムアクセスやトリックプレイ時のデコードの開始位置をEP_mapに設定することが可能になる。EP_mapはClip Informationファイルに含まれる。
デコード開始位置としてEP_mapに設定可能なピクチャの制約に次の2つの制約を規定する。
1.Dependent view videoストリームに設定可能な位置を、SubsetSPSに続けて配置されるアンカーピクチャの位置か、SubsetSPSに続けて配置されるIDRピクチャの位置とする。
アンカーピクチャは、H.264 AVC/MVCプロファイル規格で規定されるピクチャであり、時間方向に参照せずに、view間の参照を行って符号化されたDependent view videoストリームのピクチャである。
2.Dependent view videoストリームのあるピクチャをデコード開始位置としてEP_mapに設定する場合、対応するBase view videoストリームのピクチャも、デコード開始位置としてEP_mapに設定する。
図41は、上記2つの制約を満たすEP_mapに設定されたデコード開始位置の例を示す図である。
図41においては、Base view videoストリームを構成するピクチャと、Dependent view videoストリームを構成するピクチャをデコード順に示している。
Dependent view videoストリームのピクチャのうちの色を付けて示すピクチャP1は、アンカーピクチャ、またはIDRピクチャである。ピクチャP1のデータを含むAccess UnitにはSubsetSPSが含まれる。
図41の例においては、白抜き矢印#11で示すように、ピクチャP1が、Dependent view videoストリームのEP_mapにデコード開始位置として設定されている。
ピクチャP1に対応するBase view videoストリームのピクチャであるピクチャP11はIDRピクチャである。白抜き矢印#12で示すように、IDRピクチャであるピクチャP11も、Base view videoストリームのEP_mapにデコード開始位置として設定されている。
ランダムアクセスやトリックプレイが指示されたことから、ピクチャP1とピクチャP11からデコードを開始する場合、最初に、ピクチャP11のデコードが行われる。IDRピクチャであるから、他のピクチャを参照することなく、ピクチャP11をデコードすることが可能である。
ピクチャP11のデコードが終了したとき、次に、ピクチャP1がデコードされる。ピクチャP1のデコードにはデコード済みのピクチャP11が参照される。アンカーピクチャ、またはIDRピクチャであるから、ピクチャP11のデコードが終了していればピクチャP1のデコードは可能である。
その後、Base view videoのピクチャP1の次のピクチャ、Dependent view videoのピクチャP11の次のピクチャ、・・・といったようにしてデコードが行われる。
対応するGOPの構造が同じであり、かつ、対応する位置からデコードが開始されるから、Base view videoについてもDependent view videoについても、EP_mapに設定されたピクチャ以降のピクチャを問題なくデコードすることができる。これによりランダムアクセスを実現することが可能になる。
図41の垂直方向に示す点線より左側に並ぶピクチャはデコードされないピクチャになる。
図42は、Dependent view videoのGOP構造を定義しない場合に生じる問題について示す図である。
図42の例においては、色を付けて示すBase view videoのIDRピクチャであるピクチャP21がデコード開始位置としてEP_mapに設定されている。
Base view videoのピクチャP21からデコードを開始する場合において、ピクチャP21に対応するDependent view videoのピクチャであるピクチャP31がアンカーピクチャではない場合を考える。GOP構造を定義していない場合、Base view videoのIDRピクチャに対応するDependent view videoのピクチャが、IDRピクチャまたはアンカーピクチャであるという保障はない。
この場合、Base view videoのピクチャP21のデコードが終わったときであっても、ピクチャP31をデコードすることはできない。ピクチャP31のデコードには時間方向の参照も必要になるが、垂直方向に示す点線より左側(デコード順で前)のピクチャはデコードされていない。
ピクチャP31をデコードすることができないことにより、ピクチャP31を参照するDependent view videoの他のピクチャもデコードすることができないことになる。
Dependent view videoストリームのGOP構造を定義しておくことにより、このようなことを回避することができる。
Base view videoだけでなく、Dependent view videoについてもEP_mapでデコード開始位置を設定しておくことにより、再生装置1はデコードの開始位置を容易に特定することが可能になる。
Base view videoのあるピクチャだけをデコード開始位置としてEP_mapに設定しておいた場合、再生装置1は、デコード開始位置のピクチャに対応するDependent view videoのピクチャを計算により特定する必要があり、処理が複雑になってしまう。
たとえ対応するBase view videoとDependent view videoのピクチャ同士が同じDTS/PTSを持っていたとしても、ビデオのビットレートが異なる場合にはTSにおけるバイト配列まで一致させることができないため、この場合に処理が複雑になる。
図43は、Base view videoストリームとDependent view videoストリームからなるMVCストリームを対象にしたランダムアクセスやトリックプレイを行う際に必要になるピクチャサーチの概念を示す図である。
図43に示すように、ランダムアクセスやトリックプレイを行う際、non-IDRアンカーピクチャかIDRピクチャがサーチされ、デコード開始位置が決定される。
ここで、EP_mapについて説明する。Base view videoのデコード開始位置をEP_mapに設定する場合について説明するが、Dependent view videoのデコード開始位置についても、同様にしてDependent view video のEP_mapに設定される。
図44は、光ディスク2上に記録されたAVストリームの構造を示す図である。
Base view videoストリームを含むTSは、6144バイトのサイズを有する整数個のアライドユニット(Aligned Unit)から構成される。
アライドユニットは、32個のソースパケット(Source Packet)からなる。ソースパケットは192バイトを有する。1つのソースパケットは、4バイトのトランスポートパケットエクストラヘッダ(TP_extra header)と、188バイトのトランスポートパケット(Transport Packet)とからなる。
Base view videoのデータは、MPEG2 PESパケットにパケット化されている。PESパケットのデータ部にPESパケットヘッダが付加されてPESパケットが形成される。PESパケットヘッダには、PESパケットが伝送するエレメンタリストリームの種類を特定するストリームIDが含まれる。
PESパケットは、さらにトランスポートパケットにパケット化される。すなわち、PESパケットがトランスポートパケットのペイロードのサイズに分割され、ペイロードにトランスポートパケットヘッダが付加されてトランスポートパケットが形成される。トランスポートパケットヘッダは、ペイロードに格納されるデータの識別情報であるPIDを含む。
なお、ソースパケットには、Clip AVストリームの先頭を例えば0として、ソースパケット毎に1ずつ増加するソースパケット番号が与えられる。また、アライドユニットは、ソースパケットの第1バイト目から始まる。
EP_mapは、Clipのアクセスポイントのタイムスタンプが与えられたときに、Clip AVストリームファイルの中でデータの読み出しを開始すべきデータアドレスを検索するために用いられる。EP_mapは、エレメンタリストリームおよびトランスポートストリームから抽出されたエントリポイントのリストである。
EP_mapは、AVストリームの中で、デコードを開始すべきエントリポイントを検索するためのアドレス情報を持つ。EP_map中の1つのEPデータは、PTSと、PTSに対応するAccess Unitの、AVストリーム中のアドレスとの対で構成される。AVC/H.264においては、1Access Unitには1ピクチャ分のデータが格納される。
図45は、Clip AVストリームの例を示す図である。
図45のClip AVストリームは、PID=xで識別されるソースパケットからなるビデオストリーム(Base view videoストリーム)である。ビデオストリームは、ソースパケット毎に、ソースパケット内のトランスポートパケットのヘッダに含まれるPIDにより区別される。
図45においては、ビデオストリームのソースパケットのうちの、IDRピクチャの先頭バイトを含むソースパケットに色が付されている。色が付いていない四角は、ランダムアクセスポイントとならないデータが含まれるソースパケットや、他のストリームのデータが含まれているソースパケットを示す。
例えば、PID=xで区別されるビデオストリームのランダムアクセス可能なIDRピクチャの先頭バイトを含む、ソースパケット番号X1のソースパケットは、Clip AVストリームの時間軸上でPTS=pts(x1)の位置に配置される。
同様に、次にランダムアクセス可能なIDRピクチャの先頭バイトを含むソースパケットはソースパケット番号X2のソースパケットとされ、PTS=pts(x2)の位置に配置される。
図46は、図45のClip AVストリームに対応したEP_mapの例を概念的に示す図である。
図46に示すように、EP_mapは、stream_PID、PTS_EP_start、およびSPN_EP_startから構成される。
stream_PIDは、ビデオストリームを伝送するトランスポートパケットのPIDを表す。
PTS_EP_startは、ランダムアクセス可能なIDRピクチャから始まるAccess UnitのPTSを表す。
SPN_EP_startは、PTS_EP_startの値により参照されるAccess Unitの第1バイト目を含むソースパケットのアドレスを表す。
ビデオストリームのPIDがstream_PIDに格納され、PTS_EP_startとSPN_EP_startの対応関係を表すテーブル情報であるEP_map_for_one_stream_PID()が生成される。
例えば、PID=xのビデオストリームのEP_map_for_one_stream_PID[0]には、PTS=pts(x1)とソースパケット番号X1、PTS=pts(x2)とソースパケット番号X2、・・・、PTS=pts(xk)とソースパケット番号Xkとがそれぞれ対応して記述される。
このようなテーブルが、同じClip AVストリームに多重化されたそれぞれのビデオストリームについても生成される。生成されたテーブルを含むEP_mapが、当該Clip AVストリームに対応するClip Informationファイルに格納される。
図47は、SPN_EP_startが指すソースパケットのデータ構造の例を示す図である。
上述したように、ソースパケットは、188バイトのトランスポートパケットに4バイトのヘッダを付加した形で構成される。トランスポートパケット部分は、ヘッダ部(TP header)とペイロード部とからなる。SPN_EP_startは、IDRピクチャから始まるAccess Unitの第1バイト目を含むソースパケットのソースパケット番号を表す。
AVC/H.264においては、Access Unitすなわちピクチャは、AUデリミタ(Access Unit Delimiter)から開始される。AUデリミタの後に、SRSとPPSが続く。その後に、IDRピクチャのスライスのデータの、先頭部分または全体が格納される。
トランスポートパケットのTPヘッダにあるpayload_unit_start_indicatorの値が1であることは、新たなPESパケットがこのトランスポートパケットのペイロードから始まることを表す。このソースパケットから、Access Unitが開始されることになる。
このようなEP_mapが、Base view videoストリームとDependent view videoストリームについてそれぞれ用意される。
図48は、EP_mapに含まれるサブテーブルを示す図である。
図48に示すように、EP_mapは、サブテーブルであるEP_coarseとEP_fineに分けられる。サブテーブルEP_coarseは、大まかな単位での検索を行うためのテーブルであり、サブテーブルEP_fineは、より精密な単位での検索を行うためのテーブルである。
図48に示すように、サブテーブルEP_fineは、エントリPTS_EP_fineとエントリSPN_EP_fineとが対応付けられるテーブルである。サブテーブル内では、エントリのそれぞれに対して、例えば最上列を"0"として昇順にエントリ番号が与えられる。サブテーブルEP_fineにおいて、エントリPTS_EP_fineとエントリSPN_EP_fineとを合わせたデータ幅は4バイトとされる。
サブテーブルEP_coarseは、エントリref_to_EP_fine_id、エントリPTS_EP_coarseおよびエントリSPN_EP_coarseが対応付けられるテーブルである。エントリref_to_EP_fine_id、エントリPTS_EP_coarseおよびエントリSPN_EP_coarseを合わせたデータ幅は8バイトとされる。
サブテーブルEP_fineのエントリは、エントリPTS_EP_startおよびエントリSPN_EP_startのそれぞれのLSB(Least Significant Bit)側のビット情報からなる。また、サブテーブルEP_coarseのエントリは、エントリPTS_EP_startおよびエントリSPN_EP_startのそれぞれのMSB(Most Significant Bit)側のビット情報と、それに対応するサブテーブルEP_fineのテーブル中のエントリ番号からなる。このエントリ番号は、同じデータPTS_EP_startから取り出したLSB側のビット情報を持つサブテーブルEP_fineの中のエントリの番号である。
図49は、エントリPTS_EP_coarseおよびエントリPTS_EP_fineのフォーマットの例を示す図である。
エントリPTS_EP_startはデータ長が33ビットの値である。MSBのビットを第32ビット、LSBのビットを第0ビットとすると、エントリPTS_EP_coarseには、エントリPTS_EP_startの第32ビットから第19ビットまでの14ビットが用いられる。エントリPTS_EP_coarseにより、解像度が5.8秒で、26.5時間までの範囲で検索が可能である。
また、エントリPTS_EP_fineには、エントリPTS_EP_startの第19ビットから第9ビットまでの11ビットが用いられる。エントリPTS_EP_fineにより、解像度が5.7ミリ秒で、11.5秒までの範囲で検索が可能である。なお、第19ビットは、エントリPTS_EP_coarseとエントリPTS_EP_fineとで共通して用いられる。また、LSB側の第0ビットから第8ビットまでの9ビットは、用いられない。
図50は、エントリSPN_EP_coarseおよびエントリSPN_EP_fineのフォーマットの例を示す図である。
エントリSPN_EP_startはデータ長が32ビットの値である。MSBのビットを第31ビット、LSBのビットを第0ビットとすると、エントリSPN_EP_coarseには、エントリSPN_EP_startの第31ビットから第0ビットまでの全てのビットが用いられる。
また、エントリSPN_EP_fineには、エントリSPN_EP_startの第16ビットから第0ビットまでの17ビットが用いられる。
EP_coarseとEP_fineを用いて行われる、ランダムアクセス時の読み出し開始アドレスの決定の仕方については後述する。EP_mapについては、例えば特開2005−348314号公報にも記載されている。
[運用3]
デコード時、Dependent view videoストリームのピクチャのPOC(Picture Order Count)の値として、対応するBase view videoストリームのピクチャのPOCの値と同じ値が用いられる。POCは、AVC/H.264規格において規定されるピクチャの表示順を表す値であり、デコード時に計算により求められる。
例えば、Base view videoストリームのピクチャのPOCの値が計算により求められ、求められた値により示される順に、デコーダからBase view videoストリームのピクチャが出力される。また、Base view videoストリームのピクチャが出力されるのと同時に、対応するDependent view videoストリームのピクチャが出力される。これにより、実質的に、Base view videoストリームのピクチャのPOCの値と同じ値が、Dependent view videoストリームのピクチャのPOCの値として用いられることになる。
また、Base view videoストリームとDependent view videoストリームを構成する各ピクチャのデータにはSEI(Supplemental Enhancement Information)が付加される。SEIは、H.264/AVCで規定される、デコードに関する補助的な情報を含む付加情報である。
SEIのうちの1つであるPicture Timing SEIには、デコード時のCPB(Coded Picture Buffer)からの読み出し時刻、DPBからの読み出し時刻などの時刻情報が含まれる。また、表示時刻の情報、ピクチャ構造の情報などが含まれる。
図51は、Access Unitの構成を示す図である。
図51に示すように、Base view videoストリームの1ピクチャのデータを含むBase view videoのAccess Unitと、Dependent view videoストリームの1ピクチャのデータを含むDependent view videoのDependent Unitは同じ構成を有する。1つのユニットは、各ユニットの境界を示すデリミタ、SPS、PPS、SEI、ピクチャデータから構成される。
符号化時、Base view videoストリームのピクチャに付加するPicture Timing SEIと、Dependent view videoストリームのピクチャに付加するPicture Timing SEIは統一して運用される。
例えば、Base view videoストリームの符号化順で1番目のピクチャに、CPBからの読み出し時刻がT1であることを表すPicture Timing SEIが付加された場合、Dependent view videoストリームの符号化順で1番目のピクチャにも、CPBからの読み出し時刻がT1であることを表すPicture Timing SEIが付加される。
すなわち、Base view videoストリームとDependent view videoストリームの各ピクチャには、符号化順、または復号順で対応するピクチャ同士、同じ内容のPicture Timing SEIが付加される。
これにより、再生装置1は、同じPicture Timing SEIが付加されているview componentを、復号順で対応するview componentとして処理することが可能になる。
Picture Timing SEIは、Base view videoとDependent view videoのエレメンタリストリームに含まれるものであり、再生装置1においてはビデオデコーダ110により参照される。
ビデオデコーダ110は、エレメンタリストリームに含まれる情報に基づいて、対応するview componentを識別することが可能になる。また、ビデオデコーダ110は、Picture Timing SEIに基づいて正しい復号順で、デコード処理を行うことが可能になる。
対応するview componentを識別するためにPlayListなどを参照する必要がないため、System Layerや、それ以上のLayerに問題が起きた場合の対処が可能になる。また、問題が起きたLayerに依存しないデコーダ実装も可能になる。
[記録装置の構成]
図52は、以上のような運用に従って符号化を行い、Base view videoストリームとDependent view videoストリームを記録媒体に記録する記録装置の構成例を示すブロック図である。
図52の記録装置501においては、Base view videoストリームが生成されるとともに、Dependent view videoストリームとしてD1 view videoのストリームが生成される。
すなわち、記録装置501においては、図3を参照して説明したようなDepthの情報は生成されない。
図52に示すように、記録装置501は、情報生成部511、MVCエンコーダ512、および記録部513から構成される。情報生成部511は、上述した図29のデータエンコーダ315に対応し、MVCエンコーダ512は、図29のビデオエンコーダ311に対応する。L画像データとR画像データはMVCエンコーダ512に入力される。
情報生成部511は、プレイリストファイル、Base view video用のEP_mapを含むClip Informationファイル、Dependent view video用のEP_mapを含むClip Informationファイルからなるデータベース情報を生成する。情報生成部511によるデータベース情報の生成は、記録装置501のユーザ(コンテンツ制作者)による入力に従って行われる。情報生成部511は、生成したデータベース情報を記録部513に出力する。
また、情報生成部511は、Base view videoの各ピクチャに付加する図51のSPS、PPS、SEI等のBase view video用の付加情報と、Dependent view videoの各ピクチャに付加するSPS、PPS、SEI等のDependent view video用の付加情報を生成する。情報生成部511により生成されるBase view video用の付加情報とDependent view video用の付加情報には、それぞれPicture Timing SEIが含まれる。情報生成部511は、生成した付加情報をMVCエンコーダ512に出力する。
MVCエンコーダ512は、L画像データとR画像データをH.264 AVC/MVCプロファイル規格に従って符号化し、L画像データを符号化して得られたBase view videoの各ピクチャのデータと、R画像データを符号化して得られたDependent view videoの各ピクチャのデータを生成する。
また、MVCエンコーダ512は、Base view videoの各ピクチャのデータに情報生成部511により生成されたBase view video用の付加情報を付加することによってBase view videoストリームを生成する。同様に、MVCエンコーダ512は、Dependent view videoの各ピクチャのデータに情報生成部511により生成されたDependent view video用の付加情報を付加することによってDependent view videoストリームを生成する。
MVCエンコーダ512は、生成したBase view videoストリームとDependent view videoストリームを記録部513に出力する。
記録部513は、情報生成部511から供給されたデータベース情報と、MVCエンコーダ512から供給されたBase view videoストリームとDependent view videoストリームをBD等の記録媒体に記録する。記録部513によりデータが記録された記録媒体は、例えば上述した光ディスク2として再生側の装置に提供される。
なお、記録部513においては、Base view videoストリームとDependent view videoストリームを記録する前に各種の処理が行われる。例えば、Base view videoストリームとDependent view videoストリームを同じTSに、またはそれぞれ他のデータとともに異なるTSに多重化する処理、Base view videoのAccess UnitからMVCヘッダを除去する処理、Base view videoストリームとDependent view videoストリームをソースパケットに分割するパケット化処理などが行われる。
図53は、図52のMVCエンコーダ512の構成例を示すブロック図である。
図53に示すように、MVCエンコーダ512は、Base view videoエンコーダ521とDependent view videoエンコーダ522から構成される。L画像データはBase view videoエンコーダ521とDependent view videoエンコーダ522に入力され、R画像データはDependent view videoエンコーダ522に入力される。R画像データがBase view videoエンコーダ521に入力され、Base view videoとしてエンコードされるようにしてもよい。
Base view videoエンコーダ521は、L画像データを例えばH.264 AVCの規格に従って符号化する。また、Base view videoエンコーダ521は、符号化して得られた各ピクチャにBase view video用の付加情報を付加し、Base view videoストリームとして出力する。
Dependent view videoエンコーダ522は、L画像データを適宜参照し、R画像データをH.264 AVC/MVCプロファイル規格に従って符号化する。また、Dependent view videoエンコーダ522は、符号化して得られた各ピクチャにDependent view video用の付加情報を付加し、Dependent view videoストリームとして出力する。
[記録装置の動作]
ここで、図54のフローチャートを参照して、記録装置501の記録処理について説明する。
ステップS1において、情報生成部511は、プレイリストファイルとClip Informationファイルからなるデータベース情報と、L画像データとR画像のそれぞれのピクチャに付加する付加情報とを生成する。
ステップS2において、MVCエンコーダ512により符号化処理が行われる。符号化処理によって生成されたBase view videoストリームとDependent view videoストリームは記録部513に供給される。
ステップS3において、記録部513は、情報生成部511により生成されたデータベース情報と、MVCエンコーダ512により生成されたBase view videoストリームとDependent view videoストリームを記録媒体に記録させる。その後、処理は終了される。
次に、図55のフローチャートを参照して、図54のステップS2において行われる符号化処理について説明する。
ステップS11において、Base view videoエンコーダ521は、入力されたL画像のうちの1つのピクチャ(1フレーム)を符号化対象のピクチャとして選択する。
ステップS12において、Base view videoエンコーダ521は、符号化対象のL画像をIピクチャまたはIDRピクチャとして符号化するか否かを判定する。1GOPを構成するピクチャの数、1GOPに含まれるIピクチャまたはIDRピクチャの数などの符号化条件が設定されている場合、符号化対象のL画像のピクチャタイプは、例えば符号化順に並べたときのピクチャの位置に応じて定まる。
IピクチャまたはIDRピクチャとして符号化するとステップS12において判定した場合、ステップS13において、Base view videoエンコーダ521は、符号化対象のL画像のピクチャタイプをIピクチャまたはIDRピクチャとして決定する。
ステップS14において、Dependent view videoエンコーダ522は、入力されたR画像のうち、ピクチャタイプがIピクチャまたはIDRピクチャとしてステップS13において決定されたL画像に対応する1つのピクチャを検出する。上述したように、表示順、符号化順で各ピクチャを並べたときに同じ時刻、同じ位置にあるL画像とR画像が対応するピクチャになる。
ステップS15において、Dependent view videoエンコーダ522は、検出したR画像のピクチャタイプをAchorピクチャとして決定する。
一方、符号化対象のL画像をIピクチャまたはIDRピクチャとして符号化しないとステップS12において判定した場合、ステップS16において、Base view videoエンコーダ521は、符号化対象のL画像の位置に応じてピクチャタイプを決定する。
ステップS17において、Dependent view videoエンコーダ522は、入力されたR画像のうち、ピクチャタイプがステップS16において決定されたL画像に対応する1つのピクチャを検出する。
ステップS18において、Dependent view videoエンコーダ522は、検出したR画像のピクチャタイプとして、いま符号化対象として選択されているL画像の次に出力が可能になるようなタイプを決定する。
ステップS19において、Base view videoエンコーダ521は、決定したピクチャタイプに従って符号化対象のL画像を符号化する。また、Dependent view videoエンコーダ522は、決定したピクチャタイプに従って、ステップS14またはS17において検出したR画像を符号化する。
ステップS20において、Base view videoエンコーダ521は、符号化して得られたBase view videoのピクチャに付加情報を付加する。また、Dependent view videoエンコーダ522は、符号化して得られたDependent view videoのピクチャに付加情報を付加する。
ステップS21において、Base view videoエンコーダ521は、符号化対象としていま選択しているL画像が最後のピクチャであるか否かを判定する。
符号化対象としていま選択しているL画像が最後のピクチャではないとステップS21において判定された場合、ステップS11に戻り、符号化対象のピクチャを切り替えて以上の処理が繰り返される。いま選択しているL画像が最後のピクチャであるとステップS21において判定された場合、図54のステップS2に戻り、それ以降の処理が行われる。
以上の処理により、L画像のデータとR画像のデータを、符号化後のBase view videoストリーム、Dependent view videoストリームにおいてGOP構造が同じになるように符号化することが可能になる。
また、Base view videoのピクチャと、対応するDependent view videoのピクチャに、それぞれ同じ内容の付加情報を付加することが可能になる。
[再生装置の構成]
図56は、記録装置501によりデータが記録された記録媒体を再生する再生装置の構成例を示すブロック図である。
図56に示すように、再生装置502は、取得部531、制御部532、MVCデコーダ533、および出力部534から構成される。取得部531は例えば図20のディスクドライブ52に対応し、制御部532は図20のコントローラ51に対応する。MVCデコーダ533は図20のデコーダ部56の一部の構成に対応する。
取得部531は、制御部532による制御に従って、記録装置501によりデータが記録され、再生装置502に装着された記録媒体からデータを読み出す。取得部531は、記録媒体から読み出したデータベース情報を制御部532に出力し、Base view videoストリームとDependent view videoストリームをMVCデコーダ533に出力する。
制御部532は、記録媒体からのデータの読み出しなどの、再生装置502の全体の動作を制御する。
例えば、制御部532は、取得部531を制御して記録媒体から読み出させることによって、データベース情報を取得する。また、制御部532は、取得したデータベース情報に含まれる3D再生用のプレイリスト(図13の3D_PL_typeの値が01のプレイリスト)の再生が指示された場合、プレイリストに記述されているストリームIDなどの情報を取得部531に供給し、Base view videoストリームとDependent view videoストリームを記録媒体から読み出させる。制御部532は、MVCデコーダ533を制御し、Base view videoストリームとDependent view videoストリームをデコードさせる。
MVCデコーダ533は、制御部532による制御に従って、Base view videoストリームとDependent view videoストリームをデコードする。MVCデコーダ533は、Base view videoストリームとDependent view videoストリームをデコードして得られたデータを出力部534に出力する。例えば、MVCデコーダ533は、view_type(図14)に従って、Base view videoストリームをデコードして得られたデータをL画像データ、Dependent view videoストリームをデコードして得られたデータをR画像データとして、それぞれ出力する。
出力部534は、MVCデコーダ533から供給されたL画像データとR画像データをディスプレイに出力し、L画像とR画像を表示させる。
図57は、MVCデコーダ533の構成例を示すブロック図である。
図57に示すように、MVCデコーダ533は、CPB541、デコーダ542、およびDPB543から構成される。CPB541は、図22のB videoバッファ106とD videoバッファ108を含む。デコーダ542は図22のビデオデコーダ110に対応し、DPB543は図22のDPB151に対応する。図示は省略しているが、CPB541とデコーダ542の間には、図22のスイッチ109に対応する回路も設けられる。
CPB541は、取得部531から供給されたBase view videoストリームのデータとDependent view videoストリームのデータを記憶する。CPB541に記憶されたBase view videoストリームのデータは、1つのAccess Unitを構成するデータの単位でデコーダ542により読み出される。CPB541に記憶されたDependent view videoストリームのデータも同様に、1つのDependent Unitを構成するデータの単位でデコーダ542により読み出される。
デコーダ542は、CPB541から読み出したデータをデコードし、デコードして得られたBase view video、Dependent view videoの各ピクチャのデータをDPB543に出力する。
DPB543は、デコーダ542から供給されたデータを記憶する。DPB543に記憶されたBase view video、Dependent view videoの各ピクチャのデータは、デコード順で後のピクチャをデコードするときにデコーダ542により適宜参照される。DPB543に記憶された各ピクチャのデータは、Picture Timing SEIにより表される各ピクチャの表示時刻などに従って出力される。
[再生装置の動作]
ここで、図58のフローチャートを参照して、再生装置502の再生処理について説明する。
なお、図58においては、Base view videoストリームの処理を行った後にDependent view videoストリームの処理を行うように各ステップを示しているが、Base view videoストリームの処理とDependent view videoストリームの処理は適宜並行して行われる。Base view videoストリームとDependent view videoストリームの処理に関する他のフローチャートについても同様である。
ステップS31において、取得部531は、再生装置502に装着された記録媒体からデータを読み出す。取得部531は、読み出したデータベース情報を制御部532に出力し、Base view videoストリームのデータとDependent view videoストリームのデータをMVCデコーダ533に出力する。
ステップS32において、MVCデコーダ533はデコード処理を行う。
ステップS33において、出力部534は、MVCデコーダ533から供給されたL画像データとR画像データをディスプレイに出力し、L画像とR画像を表示させる。その後、処理は終了される。
次に、図59および図60のフローチャートを参照して、図58のステップS32において行われるデコード処理について説明する。
ステップS41において、CPB541は、Base view videoストリームのデータとDependent view videoストリームのデータを記憶する。CPB541に記憶されたデータは、適宜、制御部532により読み出される。
ステップS42において、制御部532は、CPB541に記憶されたデータを参照し、Base view videoストリームのAccess Unitの境界を検出する。Access Unitの境界の検出は、例えばAccess Unitデリミタを検出することによって行われる。ある位置の境界から次の境界までのデータが1つのAccess Unitのデータとなる。1つのAccess Unitのデータには、Base view videoの1ピクチャのデータと、それに付加された付加情報が含まれる。
ステップS43において、制御部532は、境界を検出したBase view videoの1つのAccess UnitにPicture Timing SEIが符号化されている(含まれている)か否かを判定する。
Picture Timing SEIが符号化されているとステップS43において判定した場合、ステップS44において、制御部532はPicture Timing SEIを読み出す。
ステップS45において、制御部532は、読み出したPicture Timing SEIに記述されている引き出し時刻(読み出し時刻)に合わせて、境界を検出した1つのAccess Unitのデータのうちの、Base view videoのピクチャのデータをCPB541からデコーダ542に供給させる。
一方、Picture Timing SEIが符号化されていないとステップS43において判定した場合、ステップS46において、制御部532は、システム情報(DTS)に合わせて、境界を検出した1つのAccess Unitのデータのうちの、Base view videoのピクチャのデータをCPB541からデコーダ542に供給させる。
ステップS47において、デコーダ542は、CPB541から供給されたデータをデコードする。Base view videoのピクチャのデコードには、適宜、DPB543に記憶されているデコード済みのピクチャが参照される。
ステップS48において、DPB543は、デコードによって得られたBase view videoのピクチャのデータを記憶する。
ステップS49において、制御部532は、デコードしたBase view videoのピクチャのPOCを計算し、記憶する。
ステップS50において、制御部532は、Dependent view videoストリームのDependent Unitの境界を検出し、ステップS42で境界を検出したBase view videoストリームのAccess Unitに対応するDependent view videoストリームのDependent Unitを検出する。
ステップS51において、制御部532は、境界を検出したDependent view videoの1つのDependent UnitにPicture Timing SEIが符号化されているか否かを判定する。
Picture Timing SEIが符号化されているとステップS51において判定した場合、ステップS52において、制御部532はPicture Timing SEIを読み出す。
ステップS53において、制御部532は、読み出したPicture Timing SEIに記述されている引き出し時刻に合わせて、境界を検出した1つのDependent Unitのデータのうちの、Dependent view videoのピクチャのデータをCPB541からデコーダ542に供給させる。
一方、Picture Timing SEIが符号化されていないとステップS51において判定した場合、ステップS54において、制御部532は、システム情報に合わせて、境界を検出した1つのDependent Unitのデータのうちの、Dependent view videoのピクチャのデータをCPB541からデコーダ542に供給させる。
なお、Base view video用のデコーダとDependent view video用のデコーダがそれぞれMVCデコーダ533に設けられている場合、CPB541に記憶されているDependent view videoのピクチャのデータは、Base view videoのピクチャのデータがCPB541からBase view video用のデコーダに供給されるタイミングと同じタイミングでDependent view video用のデコーダに供給される。
ステップS55において、デコーダ542は、CPB541から供給されたデータをデコードする。Dependent view videoのピクチャのデコードには、適宜、DPB543に記憶されているデコード済みのBase view videoのピクチャ、Dependent view videoのピクチャが参照される。
ステップS56において、DPB543は、デコードによって得られたDependent view videoのピクチャのデータを記憶する。以上の処理が繰り返されることによって、DPB543には、POCの値が計算された複数のBase view videoのピクチャと、対応するDependent view videoのピクチャが記憶される。Dependent view videoのピクチャについては、POCの値の計算は行われない。
ステップS57において、制御部532は、DPB543に記憶されているBase view videoのピクチャの中でPOCの値が最も小さいピクチャをDPB543から出力させるとともに、同じタイミングで、対応するDependent view videoのピクチャをDPB543から出力させる。DPB543から出力されたピクチャは出力部534に供給される。
Base view videoのピクチャの出力は、そのピクチャにPicture Timing SEIが付加されている場合、Picture Timing SEIに記述されている表示時刻に合わせて行われる。一方、Picture Timing SEIが付加されていない場合、システム情報(PTS)により表される表示時刻に合わせて行われる。
ステップS58において、制御部532は、Base view videoとDependent view videoの全てのピクチャの出力が終了したか否かを判定する。制御部532は、全てのピクチャの出力が終了していないとステップS58において判定した場合、ステップS41に戻り、以上の処理を繰り返し行う。全てのピクチャの出力が終了したとステップS58において判定した場合、図58のステップS32に戻り、それ以降の処理が行われる。
以上の処理により、GOP構造が同じになるようにして符号化されるとともに、各ピクチャに同じ付加情報が付加されたBase view videoストリームとDependent view videoストリームをデコードすることが可能になる。
次に、図61のフローチャートを参照して、EP_mapを用いて行われる再生装置502のランダムアクセス再生の処理について説明する。
ステップS71において、制御部532は、取得部531を制御し、Base view videoストリームのClipとDependent view videoストリームのClipのそれぞれのClip Informationファイルを読み出す。また、制御部532は、Base view video用のEP_mapとDependent view video用のEP_mapを取得する。上述したように、EP_mapは、Base view video用のものとDependent view video用のものがそれぞれ用意される。
ステップS72において、制御部532は、ユーザによる操作などに基づいてランダムアクセス再生の開始時刻を表すPTSを取得する。例えば、ビデオストリームに設定されたチャプタがメニュー画面から選択された場合、選択されたチャプタのPTSが取得される。
ステップS73において、制御部532は、Base view video用のEP_mapより、取得した再生開始時刻のPTSに対応するSPN_EP_startが示すソースパケット番号を特定する。また、制御部532は、特定したソースパケット番号により識別されるソースパケットが記録されている記録媒体上のアドレスを読み出し開始アドレスとして設定する。
例えば、PTSを構成する32ビットのうちのMSB側の14ビットに基づいて、Base view video用のEP_mapのサブテーブルであるEP_coarseを対象として検索が行われ、PTS_EP_coarseと、対応するref_to_EP_fine_id、SPN_EP_coarseが特定される。また、特定されたref_to_EP_fine_idに基づいて、EP_fineを対象として検索が行われ、LSB側の第10ビットからの11ビットの値に対応するエントリPTS_EP_fineが特定される。
PTS_EP_fineに対応するSPN_EP_coarseが示すソースパケット番号が特定され、ソースパケット番号により識別されるソースパケットが記録されているアドレスが読み出し開始アドレスとして決定される。それぞれのソースパケットの記録媒体上のアドレスは、記録媒体に記録されているデータを管理するファイルシステムにより特定される。
ステップS74において、制御部532は、Dependent view video用のEP_mapより、取得した再生開始時刻のPTSに対応するSPN_EP_startが示すソースパケット番号を特定する。PTSに対応するSPN_EP_startが示すソースパケット番号の特定も、Dependent view video用のEP_mapを構成するサブテーブルを用いて行われる。また、制御部532は、特定したソースパケット番号により識別されるソースパケットが記録されている記録媒体上のアドレスを読み出し開始アドレスとして設定する。
ステップS75において、取得部531は、ステップS73で設定された読み出し開始アドレスから、Base view videoストリームを構成する各ソースパケットのデータの読み出しを開始する。また、取得部531は、ステップS74で設定された読み出し開始アドレスから、Dependent view videoストリームを構成する各ソースパケットのデータの読み出しを開始する。
読み出されたBase view videoストリームのデータとDependent view videoストリームのデータは、MVCデコーダ533に供給される。図59、図60を参照して説明した処理が行われることによって、ユーザにより指定された再生開始位置からのデコードが行われる。
ステップS76において、制御部532は、次にサーチするか否か、すなわち、他の位置からランダムアクセス再生を開始することが指示されたか否かを判定し、指示されたと判定した場合、ステップS71以降の処理を繰り返し行う。
他の位置からランダム再生を開始することが指示されていないとステップS76において判定された場合、処理は終了される。
[バッファコントロール情報]
以上のように、H.264 AVC/MVCプロファイル規格では、基本となるビデオストリームであるBase view videoストリームと、Base view videoストリームを基本として符号化、復号を行うビデオストリームであるDependent view videoストリームが定義されている。
H.264 AVC/MVCプロファイル規格では、Base view videoストリームとDependent view videoストリームが1本のビデオストリームとして存在することも、それぞれ単独のビデオストリームとして存在することも許容されている。
図62Aは、Base view videoストリームとDependent view videoストリームが1本のビデオストリームとして存在する状態を示す図である。
図62Aの例においては、Base view videoストリーム全体とDependent view videoストリーム全体がそれぞれ所定の区間毎に分割され、各区間が混在するように1本のエレメンタリストリームが構成されている。図62Aにおいて「B」の文字を付して示す区間はBase view videoストリームの区間を表し、「D」の文字を付して示す区間はDependent view videoストリームの区間を表す。
図62Bは、Base view videoストリームとDependent view videoストリームがそれぞれ単独のビデオストリームとして存在する状態を示す図である。
BD-ROM 3D規格においては、図62Bに示すように、Base view videoストリームとDependent view videoストリームが、それぞれ単独のエレメンタリストリームとしてディスク上に記録されていることが求められる。また、Base view videoストリームが、H.264/AVC規格で符号化されたストリームであることが求められる。これらの制限は、3D再生に対応していないBDプレーヤによる、Base view videoストリームのみの再生(2D再生)を可能にするためである。
従って、BD-ROM 3D規格においては、H.264/AVC規格で符号化されたBase view videoストリームだけを再生した場合であっても、Base view videoストリームとDependent view videoストリームを合わせて再生した場合であっても正しく再生できるように記録装置側でストリームを符号化しておく必要がある。具体的には、バッファアンダーフローやオーバーフローが生じることがないように符号化しておく必要がある。
H.264/AVC規格においては、バッファアンダーフローなどが生じないようにするために2種類のバッファコントロール情報をストリーム中に符号化することが可能になっている。BD-ROM 3D規格においても、Base view videoストリームだけのデコードと、Base view videoストリームとDependent view videoストリームを合わせてのデコードとを想定して、バッファコントロール情報をストリーム中に符号化しておく必要がある。
ところで、BD-ROM 3D規格に対応した再生装置には、Base view videoストリームとDependent view videoストリームを1つのデコーダでデコードするものと、Base view video用とDependent view video用の2つのデコーダでデコードするものがある。BD-ROM 3D規格においてはデコーダの数までは規定されていない。
従って、BD-ROM 3D規格においては、1つのデコーダでデコードした場合であっても、2つのデコーダでデコードした場合であっても正しく再生できるように、記録装置側でバッファコントロール情報をストリーム中に符号化しておく必要がある。
以上より、記録装置においては、次のようにしてバッファコントロール情報が符号化される。
1.Base view videoストリーム中に、Base view videoストリームのみを再生した場合にそれを正しく行うことができるようにするための値が符号化される。
2.Dependent view videoストリーム中に、Dependent view videoストリームを単独デコーダ(Dependent view video用のデコーダ)で再生した場合にそれを正しく行うことができるようにするための値が符号化される。
3.Dependent view videoストリーム中に、Base view videoストリームとDependent view videoストリームを合わせて1つのデコーダで再生した場合にそれを正しく行うことができるようにするための値が符号化される。
[符号化位置の具体例]
Base view videoストリームとDependent view videoストリームには、バッファコントロール情報として、HRD parametersとmax_dec_frame_bufferingが符号化される。
HRD parametersは、CPBからデコーダに対する入力の最大ビットレートを表す情報が含まれる。CPBに対する入力の最大ビットレートを表す情報、CPBのバッファサイズを表す情報、HRDがCBR(Constant Bit Rate)であるか否かを示すフラグが含まれるようにしてもよい。
max_dec_frame_bufferingは、DPBに記憶可能なピクチャ(参照ピクチャ)の最大枚数を表す情報である。
図63は、Base view videoストリームにおけるHRD parametersの符号化位置の例を示す図である。
図63に示すように、HRD parametersは、Base view videoストリームを構成するそれぞれのAccess Unitに含まれるSPSの1つの情報として符号化される。図63の例においては、SPSに含まれるVUI(Video Usability Information)の1つの情報として符号化されている。
図63のHRD parametersは、Base view videoストリームのみを再生した場合の、デコーダに対する入力の最大ビットレートを表す。CPBとデコーダの間のバスをBase view videoストリームのデータのみの伝送に用いた場合、その伝送レートはHRD parametersにより表されるビットレート以下に制限される。
なお、図63のAUDは図51を参照して説明したAUデリミタに対応し、Slicesは、図63のAccess Unitに含まれる1ピクチャのデータに対応する。
図64は、図63に示す位置にHRD parametersを符号化した場合のseq_parameter_set_data()(SPS)の記述形式を示す図である。
図64に示すように、hrd_parameters()(HRD parameters)は、seq_parameter_set_data()中のvui_parameters()(VUI)の中に記述される。
図65は、Base view videoストリームにおけるmax_dec_frame_bufferingの符号化位置の例を示す図である。
図65に示すように、max_dec_frame_bufferingも、Base view videoストリームを構成するそれぞれのAccess Unitに含まれるSPSの1つの情報として符号化される。図65の例においては、SPSに含まれるVUIの1つの情報として符号化されている。
図65のmax_dec_frame_bufferingは、Base view videoストリームのみを再生した場合の、DPBに記憶可能なピクチャの最大枚数を表す。1つのDPBをBase view videoストリームのデコード済みのピクチャのみの記憶に用いた場合、DPBに記憶されるピクチャの枚数はmax_dec_frame_bufferingにより表される枚数以下に制限される。
図66は、図65に示す位置にmax_dec_frame_bufferingを符号化した場合のseq_parameter_set_data()の記述形式を示す図である。
図66に示すように、max_dec_frame_bufferingは、seq_parameter_set_data()中のvui_parameters()の中に記述される。
以下、適宜、図63に示すようにしてBase view videoストリームに符号化されているHRD parametersを第1のHRD parametersという。また、図65に示すようにしてBase view videoストリームに符号化されているmax_dec_frame_bufferingを第1のmax_dec_frame_bufferingという。
図67は、Dependent view videoストリームにおけるHRD parametersの符号化位置の例を示す図である。
図67に示すように、HRD parametersは、Dependent view videoストリームを構成するそれぞれのDependent Unitに含まれるSubsetSPSの1つの情報として符号化される。図67の例においては、SubsetSPSに含まれるSPSの1つの情報として符号化されている。
SPSの1つの情報として符号化されているHRD parametersは、Dependent view videoストリームを単独デコーダで再生した場合の、Dependent view video用のデコーダに対する入力の最大ビットレートを表す。CPBと単独デコーダの間のバスをDependent view videoストリームのデータのみの伝送に用いた場合、その伝送レートはHRD parametersにより表されるビットレート以下に制限される。
図68は、SPSの1つの情報としてHRD parametersを符号化した場合のsubset_seq_parameter_set_data()(SubsetSPS)の記述形式を示す図である。SubsetSPSは、H.264/AVCのSPSを拡張したパラメータの記述であり、ビュー間の依存関係を表す情報などが含まれる。
図68に示すように、hrd_parameters()は、subset_seq_parameter_set_data()中の、seq_parameter_set_data()中の、vui_parameters()の中に記述される。
図67の例においては、SubsetSPSに含まれるMVC VUI Extの1つの情報としてもHRD parametersが符号化されている。
MVC VUI Extの1つの情報として符号化されているHRD parametersは、Base view videoストリームとDependent view videoストリームを合わせて1つのデコーダで再生した場合の、デコーダに対する入力の最大ビットレートを表す。CPBと1つのデコーダの間のバスをBase view videoストリームのデータとDependent view videoストリームのデータの伝送に用いた場合、その伝送レートはHRD parametersにより表されるビットレート以下に制限される。
図69は、MVC VUI Extの1つの情報としてHRD parametersを符号化した場合のsubset_seq_parameter_set_data()の記述形式を示す図である。
図69に示すように、hrd_parameters()は、subset_seq_parameter_set_data()中の、mvc_vui_parameters_extension()(MVC VUI Ext)中に記述される。
以下、適宜、図67に示すようにしてSPSの1つの情報としてDependent view videoストリームに符号化されているHRD parameters(図67の左側)を第2のHRD parametersという。また、MVC VUI Extの1つの情報としてDependent view videoストリームに符号化されているHRD parameters(図67の右側)を第3のHRD parametersという。
図70は、Dependent view videoストリームにおけるmax_dec_frame_bufferingの符号化位置の例を示す図である。
図70に示すように、max_dec_frame_bufferingは、Dependent view videoストリームを構成するそれぞれのDependent Unitに含まれるSubsetSPSの1つの情報として符号化される。図70の例においては、SubsetSPSに含まれるSPSの1つの情報として符号化されている。
SPSの1つの情報として符号化されているmax_dec_frame_bufferingは、Dependent view videoストリームを単独デコーダで再生した場合の、DPBに記憶可能なピクチャの最大枚数を表す。1つのDPBをDependent view videoストリームのデコード済みのピクチャのみの記憶に用いた場合、DPBに記憶されるピクチャの枚数はmax_dec_frame_bufferingにより表される枚数以下に制限される。
図71は、SPSの1つの情報としてmax_dec_frame_bufferingを符号化した場合のsubset_seq_parameter_set_data()の記述形式を示す図である。
図71に示すように、max_dec_frame_bufferingは、subset_seq_parameter_set_data()中の、seq_parameter_set_data()中の、vui_parameters()の中に記述される。
図70の例においては、SEIの1つの情報としてもmax_dec_frame_bufferingが符号化されている。
SEIの1つの情報として符号化されているmax_dec_frame_bufferingは、Base view videoストリームとDependent view videoストリームを合わせて1つのデコーダで再生した場合の、DPBに記憶可能なピクチャの最大枚数を表す。1つのDPBをBase view videoストリームのデコード済みのピクチャとDependent view videoストリームのデコード済みのピクチャの記憶に用いた場合、DPBに記憶されるピクチャの枚数はmax_dec_frame_bufferingにより表される枚数以下に制限される。
図72は、SEIの1つの情報としてmax_dec_frame_bufferingを符号化した場合のsei_message()(SEI)の記述形式を示す図である。
図72に示すように、max_dec_frame_bufferingは、sei_message()中の、view_scalability_info()(View scalability information SEI)中に記述される。
以下、適宜、図70に示すようにしてSPSの1つの情報としてDependent view videoストリームに符号化されているmax_dec_frame_buffering(図70の左側)を第2のmax_dec_frame_bufferingという。また、SEIの1つの情報としてDependent view videoストリームに符号化されているmax_dec_frame_buffering(図70の右側)を第3のmax_dec_frame_bufferingという。
このように、Base view videoストリームとDependent view videoストリームには、HRD parametersとmax_dec_frame_bufferingが3種類ずつ符号化される。
[装置の構成]
バッファコントロール情報を含むデータをBDに記録する記録装置は図52に示す記録装置501と同じ構成を有する。また、BDに記録されたデータを再生する再生装置は図56に示す再生装置502と同じ構成を有する。
以下、バッファコントロール情報を用いた処理を行う記録装置と再生装置の構成として図52、図56の構成を引用して説明する。上述した説明と重複する説明については適宜省略する。
記録装置501の情報生成部511は、プレイリストファイルとClip Informationファイルからなるデータベース情報とともに、Base view video用の付加情報と、Dependent view video用の付加情報を生成する。Base view video用の付加情報には、第1のHRD parametersと、第1のmax_dec_frame_bufferingが含まれる。また、Dependent view video用の付加情報には、第2、第3のHRD parametersと、第2、第3のmax_dec_frame_bufferingが含まれる。
情報生成部511は、生成したデータベース情報を記録部513に出力し、付加情報をMVCエンコーダ512に出力する。
MVCエンコーダ512は、L画像データとR画像データをH.264 AVC/MVCプロファイル規格に従って符号化し、L画像データを符号化して得られたBase view videoの各ピクチャのデータと、R画像データを符号化して得られたDependent view videoの各ピクチャのデータを生成する。
また、MVCエンコーダ512は、Base view videoの各ピクチャのデータに情報生成部511により生成されたBase view video用の付加情報を付加することによってBase view videoストリームを生成する。Base view videoストリームにおいては、図63に示す位置に第1のHRD parametersが符号化され、図65に示す位置に第1のmax_dec_frame_bufferingが符号化されている。
同様に、MVCエンコーダ512は、Dependent view videoの各ピクチャのデータに情報生成部511により生成されたDependent view video用の付加情報を付加することによってDependent view videoストリームを生成する。Dependent view videoストリームにおいては、図67に示す位置に第2、第3のHRD parametersが符号化され、図70に示す位置に第2、第3のmax_dec_frame_bufferingが符号化されている。
MVCエンコーダ512は、生成したBase view videoストリームとDependent view videoストリームを記録部513に出力する。
記録部513は、情報生成部511から供給されたデータベース情報と、MVCエンコーダ512から供給されたBase view videoストリームとDependent view videoストリームをBDに記録する。記録部513によりデータが記録されたBDは再生装置502に提供される。
再生装置502の取得部531は、記録装置501によりデータが記録され、再生装置502に装着されたBDからデータを読み出す。取得部531は、BDから読み出したデータベース情報を制御部532に出力し、Base view videoストリームとDependent view videoストリームをMVCデコーダ533に出力する。
制御部532は、記録媒体からのデータの読み出しなどの、再生装置502の全体の動作を制御する。
例えば、制御部532は、Base view videoストリームのみを再生する場合、Base view videoストリームから第1のHRD parametersと第1のmax_dec_frame_bufferingを読み出す。制御部532は、読み出した情報に基づいて、MVCデコーダ533によるBase view videoストリームのデコードを制御する。
また、制御部532は、Base view videoストリームとDependent view videoストリームを再生(3D再生)する場合、MVCデコーダ533が1つのデコーダを有しているときには、Dependent view videoストリームから第3のHRD parametersと第3のmax_dec_frame_bufferingを読み出す。制御部532は、読み出した情報に基づいて、MVCデコーダ533によるBase view videoストリームとDependent view videoストリームのデコードを制御する。
MVCデコーダ533は、制御部532による制御に従って、Base view videoストリームのみ、またはBase view videoストリームとDependent view videoストリームをデコードする。MVCデコーダ533は、デコードして得られたデータを出力部534に出力する。
出力部534は、MVCデコーダ533から供給された画像をディスプレイに出力し、2D画像または3D画像を表示させる。
[装置の動作]
ここで、図73のフローチャートを参照して、記録装置501の記録処理について説明する。
ステップS101において、情報生成部511は、データベース情報と、Base view videoとDependent view videoのそれぞれのピクチャに付加するバッファコントロール情報を含む付加情報とを生成する。
ステップS102において、MVCエンコーダ512により符号化処理が行われる。ここでは、図55を参照して説明した処理と同じ処理が行われる。ステップS101により生成されたバッファコントロール情報は、Base view videoとDependent view videoの各ピクチャに付加される。符号化処理によって生成されたBase view videoストリームとDependent view videoストリームは記録部513に供給される。
ステップS103において、記録部513は、情報生成部511により生成されたデータベース情報と、MVCエンコーダ512により生成されたBase view videoストリームとDependent view videoストリームをBDに記録させる。その後、処理は終了される。
次に、図74のフローチャートを参照して、再生装置502の再生処理について説明する。
ステップS111において、取得部531は、再生装置502に装着されたBDからデータを読み出す。取得部531は、読み出したデータベース情報を制御部532に出力し、例えば3D再生を行う場合、Base view videoストリームのデータとDependent view videoストリームのデータをMVCデコーダ533に出力する。
ステップS112において、制御部532は、BDから読み出され、供給されたストリームのデータからバッファコントロール情報を読み出し、パラメータをMVCデコーダ533に設定する。後述するように、バッファコントロール情報の読み出し元になるストリームは、BDから読み出されたストリームに応じて、またはMVCデコーダ533の構成に応じて変わることになる。
ステップS113において、MVCデコーダ533は、制御部532により設定されたパラメータに従って、図59、図60を参照して説明したデコード処理を行う。
ステップS114において、出力部534は、MVCデコーダ533によりデコード処理が行われることによって得られた画像データをディスプレイに出力する。その後、処理は終了される。
[パラメータの設定の具体例]
バッファコントロール情報を用いて行われるパラメータの設定の具体例について説明する。
ここでは、Base view videoストリームのみを再生した場合のデコーダに対する入力の最大ビットレートは40Mbpsであるものとする。また、Dependent view videoストリームを単独デコーダで再生した場合のDependent view video用のデコーダに対する入力の最大ビットレートは40Mbpsであるものとする。Base view videoストリームとDependent view videoストリームを合わせて1つのデコーダで再生した場合のデコーダに対する入力の最大ビットレートは60Mbpsであるものとする。
この場合、記録装置501においては、第1のHRD parametersの値、第2のHRD parametersの値としていずれも40Mbpsを表す値が符号化される。第3のHRD parametersの値として60Mbpsを表す値が符号化される。
また、Base view videoストリームのみを再生した場合のDPBに記憶可能なピクチャの最大枚数は4枚であるものとする。Dependent view videoストリームを単独デコーダで再生した場合のDPBに記憶可能なピクチャの最大枚数は4枚であるものとする。Base view videoストリームとDependent view videoストリームを合わせて1つのデコーダで再生した場合のDPBに記憶可能なピクチャの最大枚数は6枚であるものとする。
この場合、記録装置501においては、第1のmax_dec_frame_bufferingの値、第2のmax_dec_frame_bufferingの値としていずれも4枚を表す値が符号化される。第3のmax_dec_frame_bufferingの値として6枚を表す値が符号化される。
図75は、1つのデコーダを有するMVCデコーダ533において、Base view videoストリームのみをデコードする場合の例を示す図である。
この場合、図75に示すように、Base view videoストリームに符号化されている第1のHRD parametersと第1のmax_dec_frame_bufferingが制御部532により読み出される。Base view videoストリーム上に斜線を付して示すバッファコントロール情報D1は第1のHRD parametersと第1のmax_dec_frame_bufferingを表す。
また、制御部532により、CPB541からデコーダ542に対する入力の最大ビットレートが40Mbpsとして第1のHRD parametersに基づいて設定される。例えば、CPB541とデコーダ542の間のバスの帯域幅が40Mbps分だけ確保されることによって最大ビットレートが設定される。
さらに、制御部532により、DPB543に記憶可能なピクチャの最大枚数が4枚として第1のmax_dec_frame_bufferingに基づいて設定される。例えば、DPB543の記憶領域のうち、デコード済みのピクチャを4枚分だけ記憶可能な領域が確保されることによって、記憶可能なピクチャの最大枚数が設定される。
これにより、記録側で想定した通りにBase view videoストリームのデコードが1つのデコーダを用いて行われることになる。制約の範囲内でデコードできるようにBase view videoストリームが記録側で符号化されていれば、再生側のバッファが破綻するのを防ぐことが可能になる。
図76は、1つのデコーダを有するMVCデコーダ533において、Base view videoストリームとDependent view videoストリームをデコードする場合の例を示す図である。
この場合、図76に示すように、Dependent view videoストリームに符号化されている第3のHRD parametersと第3のmax_dec_frame_bufferingが制御部532により読み出される。Dependent view videoストリーム上に斜線を付して示すバッファコントロール情報D2は第2のHRD parametersと第2のmax_dec_frame_bufferingを表す。また、バッファコントロール情報D3は第3のHRD parametersと第3のmax_dec_frame_bufferingを表す。
また、制御部532により、CPB541からデコーダ542に対する入力の最大ビットレートが60Mbpsとして第3のHRD parametersに基づいて設定される。
さらに、制御部532により、DPB543に記憶可能なピクチャの最大枚数が6枚として第3のmax_dec_frame_bufferingに基づいて設定される。
これにより、記録側で想定した通りにBase view videoストリームとDependent view videoストリームのデコードが行われることになる。制約の範囲内でデコードできるようにBase view videoストリームとDependent view videoストリームが記録側で符号化されていれば、再生側のバッファが破綻するのを防ぐことが可能になる。
図77は、MVCデコーダ533の他の構成例を示すブロック図である。
図77に示す構成のうち、図57に示す構成と同じ構成には同じ符号を付してある。重複する説明については適宜省略する。
図77の例においては、デコーダ542−1とデコーダ542−2の2つのデコーダが設けられている。デコーダ542−1はBase view video用のデコーダであり、デコーダ542−2はDependent view video用のデコーダである。
CPB541に記憶されたBase view videoストリームのデータは、1つのAccess Unitを構成するデータの単位でデコーダ542−1により読み出される。また、CPB541に記憶されたDependent view videoストリームは、1つのDependent Unitを構成するデータの単位でデコーダ542−2により読み出される。
デコーダ542−1は、CPB541から読み出したデータをデコードし、デコードして得られたBase view videoの各ピクチャのデータをDPB543に出力する。
デコーダ542−2は、CPB541から読み出したデータをデコードし、デコードして得られたDependent view videoの各ピクチャのデータをDPB543に出力する。
このように、MVCデコーダ533が2つのデコーダを有している場合について説明する。
図78は、2つのデコーダを有するMVCデコーダ533において、Base view videoストリームのみをデコードする場合の例を示す図である。
この場合、図78に示すように、Base view videoストリームに符号化されている第1のHRD parametersと第1のmax_dec_frame_bufferingが制御部532により読み出される。
また、制御部532により、CPB541からデコーダ542に対する入力の最大ビットレートが40Mbpsとして第1のHRD parametersに基づいて設定される。
さらに、制御部532により、DPB543に記憶可能なピクチャの最大枚数が4枚として第1のmax_dec_frame_bufferingに基づいて設定される。
図78において、デコーダ542−2を破線で示していることは、デコーダ542−2において処理が行われないことを示す。
図79は、2つのデコーダを有するMVCデコーダ533において、Base view videoストリームとDependent view videoストリームをデコードする場合の例を示す図である。
この場合、図79に示すように、Base view videoストリームに符号化されている第1のHRD parametersと、Dependent view videoストリームに符号化されている第2のHRD parametersと第3のmax_dec_frame_bufferingが制御部532により読み出される。
また、制御部532により、CPB541からデコーダ542−1に対する入力の最大ビットレートが40Mbpsとして第1のHRD parametersに基づいて設定され、CPB541からデコーダ542−2に対する入力の最大ビットレートが40Mbpsとして第2のHRD parametersに基づいて設定される。
さらに、制御部532により、DPB543に記憶可能なピクチャの最大枚数が6枚として第3のmax_dec_frame_bufferingに基づいて設定される。DPB543はBase view videoとDependent view videoとで共通に用いられるから、DPB543に記憶可能なピクチャの最大枚数を設定するためのパラメータとして第3のmax_dec_frame_bufferingが用いられる。
図80は、2つのデコーダを有するMVCデコーダ533において、Base view videoストリームとDependent view videoストリームをデコードする場合の他の例を示す図である。
図80のMVCデコーダ533には、CPB541とDPB543についても、それぞれ、Base view video用のものとDependent view video用のものが設けられている。
この場合、図80に示すように、Base view videoストリームに符号化されている第1のHRD parametersと第1のmax_dec_frame_bufferingが制御部532により読み出される。また、Dependent view videoストリームに符号化されている第2のHRD parametersと第2のmax_dec_frame_bufferingが制御部532により読み出される。
制御部532により、Base view video用のCPBであるCPB541−1からデコーダ542−1に対する入力の最大ビットレートが40Mbpsとして第1のHRD parametersに基づいて設定される。また、Dependent view video用のCPBであるCPB541−2からデコーダ542−2に対する入力の最大ビットレートが40Mbpsとして第2のHRD parametersに基づいて設定される。
さらに、制御部532により、Base view video用のDPBであるDPB543−1に記憶可能なピクチャの最大枚数が4枚として第1のmax_dec_frame_bufferingに基づいて設定される。また、Dependent view video用のDPBであるDPB543−2に記憶可能なピクチャの最大枚数が4枚として第2のmax_dec_frame_bufferingに基づいて設定される。
図81は、2つのデコーダを有するMVCデコーダ533において、Base view videoストリームとDependent view videoストリームをデコードする場合のさらに他の例を示す図である。
図81のMVCデコーダ533には、CPBについては、Base view video用のものとDependent view video用のものが設けられているが、DPBは、Base view videoとDependent view videoとで共通して用いられる。また、Base view video用のCPBであるCPB541−1とデコーダ542−1の間のデータの伝送、Dependent view video用のCPBであるCPB541−2とデコーダ542−2の間のデータの伝送は、同じバスを介して行われる。
この場合、図81に示すように、Dependent view videoストリームに符号化されている第3のHRD parametersと第3のmax_dec_frame_bufferingが制御部532により読み出される。
また、制御部532により、CPB541−1とデコーダ542−1の間のデータ伝送と、CPB541−2とデコーダ542−2の間のデータ伝送に用いられるバスの最大ビットレートが60Mbpsとして第3のHRD parametersに基づいて設定される。
さらに、制御部532により、DPB543に記憶可能なピクチャの最大枚数が6枚として第3のmax_dec_frame_bufferingに基づいて設定される。
[検証装置]
図82は、記録装置501によりBDに記録されたビデオストリームが、再生装置502において正しく再生できるものであるか否かを検証する検証装置を示す図である。
図82の検証装置551はコンピュータにより構成される。検証装置551に対しては、BDから読み出されたビデオストリームが入力される。
検証装置551にビデオストリームとして入力されるBase view videoストリームには、第1のHRD parametersと第1のmax_dec_frame_bufferingが符号化されている。また、Dependent view videoストリームには、第2、第3のHRD parametersと、第2、第3のmax_dec_frame_bufferingが符号化されている。
検証装置551においては、CPUにより所定のプログラムが実行されることによって制御部551Aが実現される。制御部551Aは、入力されたビデオストリームが、再生装置502において正しく再生できるものであるか否かを検証し、検証結果を表す情報を出力する。検証結果は例えばディスプレイに表示され、検証装置551を用いて検証を行うユーザにより確認される。
また、検証装置551においては、CPUにより所定のプログラムが実行されることによってHRD(Hypothetical Reference Decoder)が実現される。HRDは、再生装置502のMVCデコーダ533を仮想的に再現したものである。HRDの機能構成を図83に示す。
図83に示すように、HRD561は、CPB571、デコーダ572、およびDPB573から構成される。
CPB571は、入力されたBase view videoストリームのデータとDependent view videoストリームのデータを記憶する。CPB571に記憶されたBase view videoストリームのデータは、1つのAccess Unitを構成するデータの単位でデコーダ572により読み出される。CPB571に記憶されたDependent view videoストリームのデータも同様に、1つのDependent Unitを構成するデータの単位でデコーダ572により読み出される。
デコーダ572は、CPB571から読み出したデータをデコードし、デコードして得られたBase view video、Dependent view videoの各ピクチャのデータをDPB573に出力する。
DPB573は、デコーダ573から供給されたデータを記憶する。DPB573に記憶されたBase view video、Dependent view videoの各ピクチャのデータは、Picture Timing SEIにより表される各ピクチャの表示時刻などに従って出力される。
検証の具体例について説明する。
上述した例と同様に、第1、第2、第3のHRD parametersの値として、それぞれ、40Mbps、40Mbps、60Mbpsを表す値が符号化されているものとする。また、第1、第2、第3のmax_dec_frame_bufferingの値として、それぞれ、4枚、4枚、6枚を表す値が符号化されているものとする。
図83は、Base view videoストリームのみをデコードする場合の例を示す図である。
この場合、図83に示すように、Base view videoストリームに符号化されている第1のHRD parametersと第1のmax_dec_frame_bufferingが制御部551Aにより読み出される。
また、制御部551Aにより、CPB571からデコーダ572に対する入力の最大ビットレートが40Mbpsとして第1のHRD parametersに基づいて設定される。さらに、制御部551Aにより、DPB573に記憶可能なピクチャの最大枚数が4枚として第1のmax_dec_frame_bufferingに基づいて設定される。
この状態で、Base view videoストリームのデコードを正しく行うことができるか否かが制御部551Aにより検証され、検証結果を表す情報が出力される。デコードを正しく行うことができると判断された場合、入力されたBase view videoストリームは、それに符号化されている第1のHRD parametersと第1のmax_dec_frame_bufferingに基づいて、図75、図78、図80を参照して説明したようにして正しく再生できるストリームであることになる。
図84は、Dependent view videoストリームのみをDependent view video用のデコーダでデコードする場合の例を示す図である。
この場合、図84に示すように、Dependent view videoストリームに符号化されている第2のHRD parametersと第2のmax_dec_frame_bufferingが制御部551Aにより読み出される。
また、制御部551Aにより、CPB571からデコーダ572に対する入力の最大ビットレートが40Mbpsとして第2のHRD parametersに基づいて設定される。さらに、制御部551Aにより、DPB573に記憶可能なピクチャの最大枚数が4枚として第2のmax_dec_frame_bufferingに基づいて設定される。
この状態で、Dependent view videoストリームのデコードを正しく行うことができるか否かが制御部551Aにより検証され、検証結果を表す情報が出力される。デコードを正しく行うことができると判断された場合、入力されたDependent view videoストリームは、それに符号化されている第2のHRD parametersと第2のmax_dec_frame_bufferingに基づいて、図80を参照して説明したようにしてDependent view video用のデコーダで正しく再生できるストリームであることになる。
なお、Dependent view videoストリームをデコードするにはBase view videoストリームが必要である。図84のデコーダ572に対しては、Base view videoストリームのデコード済みのピクチャのデータも適宜入力され、Dependent view videoストリームのデコードに用いられる。
図85は、Base view videoストリームとDependent view videoストリームを1つのデコーダでデコードする場合の例を示す図である。
この場合、図85に示すように、Dependent view videoストリームに符号化されている第3のHRD parametersと第3のmax_dec_frame_bufferingが制御部551Aにより読み出される。
また、制御部551Aにより、CPB571からデコーダ572に対する入力の最大ビットレートが60Mbpsとして第3のHRD parametersに基づいて設定される。
さらに、制御部551Aにより、DPB573に記憶可能なピクチャの最大枚数が6枚として第3のmax_dec_frame_bufferingに基づいて設定される。
この状態で、Base view videoストリームとDependent view videoストリームのデコードを正しく行うことができるか否かが制御部551Aにより検証され、検証結果を表す情報が出力される。デコードを正しく行うことができると判断された場合、入力されたBase view videoストリームとDependent view videoストリームは、第3のHRD parametersと第3のmax_dec_frame_bufferingに基づいて、図76を参照して説明したようにして正しく再生できるストリームであることになる。
[view_typeの位置]
以上においては、図12を参照して説明したように、Base view videoストリームがL画像のストリームであるのか、R画像のストリームであるのかを表すview_typeがPlayListに記述されるものとしたが、他の位置に記述されるようにしてもよい。
例えば、Base view videoストリームとDependent view videoストリームが、同じTS、またはそれぞれ異なるTSに多重化されて、放送波やネットワークを介して伝送されることも考えられる。この場合、view_typeは、例えば伝送制御情報であるPSI中や、Base view videoストリームまたはDependent view videoストリーム(エレメンタリストリーム)中に記述される。
図86は、PSI(Program Specific Information)に含まれるPMT(Program Map Table)にview_typeを記述する場合の例を示す図である。
図86に示すように、MVC用のdescriptorとしてMVC_video_stream_descriptor()を新たに定義し、MVC_video_stream_descriptor()の中にview_typeが記述されるようにしてもよい。なお、descriptor_tagの値として例えば65が割り当てられる。
TSを受信した再生装置1においては、PMTに記述されたview_typeの値に基づいて、TSに多重化されているBase view videoストリームがL画像のストリームであるのか、R画像のストリームであるのかが判断され、復号結果のデータの出力先を切り替えるなどの、図24、図26を参照して説明した処理が行われることになる。
PMTの中ではなく、SIT(Selection Information Table)などの他の位置に記述されるようにしてもよい。
図87は、エレメンタリストリーム中にview_typeを記述する場合の例を示す図である。
図87に示すように、SEI中のMVC_video_stream_info()の中にview_typeが記述されるようにすることも可能である。上述したように、SEIは、Base view videoストリームとDependent view videoストリームを構成する各ピクチャのデータに付加される付加情報である。view_typeを含むSEIは、Base view videoストリームとDependent view videoストリームのうちの少なくともいずれかのストリームの各ピクチャに付加される。
SEIを読み出した再生装置1においては、SEIに記述されたview_typeの値に基づいて、Base view videoストリームがL画像のストリームであるのか、R画像のストリームであるのかが判断され、復号結果のデータの出力先を切り替えるなどの、図24、図26を参照して説明した処理が行われることになる。
上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
図88は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。
CPU(Central Processing Unit)701、ROM(Read Only Memory)702、RAM(Random Access Memory)703は、バス704により相互に接続されている。
バス704には、さらに、入出力インタフェース705が接続されている。入出力インタフェース705には、キーボード、マウスなどよりなる入力部706、ディスプレイ、スピーカなどよりなる出力部707が接続される。また、バス704には、ハードディスクや不揮発性のメモリなどよりなる記憶部708、ネットワークインタフェースなどよりなる通信部709、リムーバブルメディア711を駆動するドライブ710が接続される。
以上のように構成されるコンピュータでは、CPU701が、例えば、記憶部708に記憶されているプログラムを入出力インタフェース705及びバス704を介してRAM703にロードして実行することにより、上述した一連の処理が行われる。
CPU701が実行するプログラムは、例えばリムーバブルメディア711に記録して、あるいは、ローカルエリアネットワーク、インターネット、デジタル放送といった、有線または無線の伝送媒体を介して提供され、記憶部708にインストールされる。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
1 再生装置, 2 光ディスク, 3 表示装置, 11 MVCエンコーダ, 21 H.264/AVCエンコーダ, 22 H.264/AVCデコーダ, 23 Depth算出部, 24 Dependent view videoエンコーダ, 25 マルチプレクサ, 51 コントローラ, 52 ディスクドライブ, 53 メモリ, 54 ローカルストレージ, 55 インターネットインタフェース, 56 デコーダ部, 57 操作入力部

Claims (5)

  1. 2つの視点から撮影された第1のビデオストリームと第2のビデオストリームのうちの第1のビデオストリームを、Iピクチャから、復号順で未来の、次のIピクチャの直前のピクチャまでの集合を単位とし、該単位内の、前記Iピクチャよりも表示順で未来のピクチャを、該単位より過去の単位内のピクチャから予測することを禁止してH.264 AVC/MVCによって符号化して得られた基本ストリームと、
    前記第2のビデオストリームを、Anchorピクチャから、復号順で未来の、次のAnchorピクチャの直前のピクチャまでの集合を単位とし、該単位内の、前記Anchorピクチャよりも表示順で未来のピクチャを、該単位より過去の単位内のピクチャから予測することを禁止するとともに、該単位を構成するピクチャの数を、対応する前記基本ストリームの単位を構成するピクチャの数と一致させるようにH.264 AVC/MVCによって符号化して得られた拡張ストリームと、
    前記Iピクチャの表示時刻と前記基本ストリーム上の位置とを対応付けた第1のテーブル情報と、
    前記Anchorピクチャの表示時刻と前記拡張ストリーム上の位置とを対応付けた第2のテーブル情報と
    を記録媒体から読み出す読み出し部と、
    前記記録媒体から読み出された前記基本ストリームを、前記第1のテーブル情報に基づいて所定のIピクチャから復号し、前記拡張ストリームを、前記第2のテーブル情報に基づいて、前記所定のIピクチャと表示時刻が同じAnchorピクチャから復号する復号部と
    を備える再生装置。
  2. 固定値として割り当てられた第1のPIDに基づいて、前記記録媒体から読み出された第1のトランスポートストリームから前記基本ストリームを構成するパケットを分離する第1の分離部と、
    固定値として割り当てられた第2のPIDに基づいて、前記記録媒体から読み出された第2のトランスポートストリームから前記拡張ストリームを構成するパケットを分離する第2の分離部と、
    前記第1の分離部により分離された前記基本ストリームのパケットを記憶する第1のバッファと、
    前記第2の分離部により分離された前記拡張ストリームのパケットを記憶する第2のバッファと
    をさらに備え、
    前記復号部は、前記第1のバッファにパケットが記憶された前記基本ストリームを復号し、前記第2のバッファにパケットが記憶された前記拡張ストリームを復号する
    請求項1に記載の再生装置。
  3. 復号して得られた前記基本ストリームを構成する各ピクチャのデータと前記拡張ストリームを構成する各ピクチャのデータを記憶する第3のバッファと、
    前記第3のバッファに記憶された前記基本ストリームを構成する各ピクチャのデータを左目用と右目用のうちの一方のピクチャのデータとして出力し、前記第3のバッファに記憶された前記拡張ストリームを構成する各ピクチャのデータを左目用と右目用のうちの他方のピクチャのデータとして出力する出力部と
    をさらに備える請求項2に記載の再生装置。
  4. 2つの視点から撮影された第1のビデオストリームと第2のビデオストリームのうちの第1のビデオストリームを、Iピクチャから、復号順で未来の、次のIピクチャの直前のピクチャまでの集合を単位とし、該単位内の、前記Iピクチャよりも表示順で未来のピクチャを、該単位より過去の単位内のピクチャから予測することを禁止してH.264 AVC/MVCによって符号化して得られた基本ストリームと、
    前記第2のビデオストリームを、Anchorピクチャから、復号順で未来の、次のAnchorピクチャの直前のピクチャまでの集合を単位とし、該単位内の、前記Anchorピクチャよりも表示順で未来のピクチャを、該単位より過去の単位内のピクチャから予測することを禁止するとともに、該単位を構成するピクチャの数を、対応する前記基本ストリームの単位を構成するピクチャの数と一致させるようにH.264 AVC/MVCによって符号化して得られた拡張ストリームと、
    前記Iピクチャの表示時刻と前記基本ストリーム上の位置とを対応付けた第1のテーブル情報と、
    前記Anchorピクチャの表示時刻と前記拡張ストリーム上の位置とを対応付けた第2のテーブル情報と
    を記録媒体から読み出し、
    前記記録媒体から読み出した前記基本ストリームを、前記第1のテーブル情報に基づいて所定のIピクチャから復号し、
    前記拡張ストリームを、前記第2のテーブル情報に基づいて、前記所定のIピクチャと表示時刻が同じAnchorピクチャから復号する
    ステップを含む再生方法。
  5. 2つの視点から撮影された第1のビデオストリームと第2のビデオストリームのうちの第1のビデオストリームを、Iピクチャから、復号順で未来の、次のIピクチャの直前のピクチャまでの集合を単位とし、該単位内の、前記Iピクチャよりも表示順で未来のピクチャを、該単位より過去の単位内のピクチャから予測することを禁止してH.264 AVC/MVCによって符号化して得られた基本ストリームと、
    前記第2のビデオストリームを、Anchorピクチャから、復号順で未来の、次のAnchorピクチャの直前のピクチャまでの集合を単位とし、該単位内の、前記Anchorピクチャよりも表示順で未来のピクチャを、該単位より過去の単位内のピクチャから予測することを禁止するとともに、該単位を構成するピクチャの数を、対応する前記基本ストリームの単位を構成するピクチャの数と一致させるようにH.264 AVC/MVCによって符号化して得られた拡張ストリームと、
    前記基本ストリームとともに読み出され、再生装置により前記基本ストリームの復号に用いられる、前記Iピクチャの表示時刻とストリーム上の位置とを対応付けた第1のテーブル情報と、
    前記拡張ストリームとともに読み出され、前記再生装置により前記拡張ストリームの復号に用いられる、前記Anchorピクチャの表示時刻とストリーム上の位置とを対応付けた第2のテーブル情報と
    を生成し、
    生成した前記基本ストリーム、前記拡張ストリーム、前記第1のテーブル情報、および前記第2のテーブル情報を記録媒体に記録させる
    ステップを含む記録方法。
JP2012013605A 2009-04-08 2012-01-26 再生装置、再生方法、および記録方法 Active JP4985886B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012013605A JP4985886B2 (ja) 2009-04-08 2012-01-26 再生装置、再生方法、および記録方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2009094255 2009-04-08
JP2009094255 2009-04-08
JP2012013605A JP4985886B2 (ja) 2009-04-08 2012-01-26 再生装置、再生方法、および記録方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2010065111A Division JP4957823B2 (ja) 2009-04-08 2010-03-19 再生装置および再生方法

Publications (2)

Publication Number Publication Date
JP2012124924A JP2012124924A (ja) 2012-06-28
JP4985886B2 true JP4985886B2 (ja) 2012-07-25

Family

ID=46505846

Family Applications (5)

Application Number Title Priority Date Filing Date
JP2012013604A Active JP4985885B2 (ja) 2009-04-08 2012-01-26 再生装置、再生方法、および記録方法
JP2012013601A Expired - Fee Related JP4985882B2 (ja) 2009-04-08 2012-01-26 記録方法
JP2012013605A Active JP4985886B2 (ja) 2009-04-08 2012-01-26 再生装置、再生方法、および記録方法
JP2012013603A Active JP4985884B2 (ja) 2009-04-08 2012-01-26 再生装置、再生方法、および記録方法
JP2012013602A Active JP4985883B2 (ja) 2009-04-08 2012-01-26 再生装置、再生方法、および記録方法

Family Applications Before (2)

Application Number Title Priority Date Filing Date
JP2012013604A Active JP4985885B2 (ja) 2009-04-08 2012-01-26 再生装置、再生方法、および記録方法
JP2012013601A Expired - Fee Related JP4985882B2 (ja) 2009-04-08 2012-01-26 記録方法

Family Applications After (2)

Application Number Title Priority Date Filing Date
JP2012013603A Active JP4985884B2 (ja) 2009-04-08 2012-01-26 再生装置、再生方法、および記録方法
JP2012013602A Active JP4985883B2 (ja) 2009-04-08 2012-01-26 再生装置、再生方法、および記録方法

Country Status (1)

Country Link
JP (5) JP4985885B2 (ja)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1693844A3 (en) * 1996-02-28 2006-10-11 Matsushita Electric Industrial Co., Ltd. High-resolution optical disk for recording stereoscopic video, optical disk reproducing device and optical disk recording device
JP2002232844A (ja) * 2001-02-02 2002-08-16 Matsushita Electric Ind Co Ltd 情報記録媒体、録画装置及び方法、再生装置及び方法並びにプログラム記憶媒体
JP4608953B2 (ja) * 2004-06-07 2011-01-12 ソニー株式会社 データ記録装置、方法およびプログラム、データ再生装置、方法およびプログラム、ならびに、記録媒体
US20070177674A1 (en) * 2006-01-12 2007-08-02 Lg Electronics Inc. Processing multiview video
JP4793366B2 (ja) * 2006-10-13 2011-10-12 日本ビクター株式会社 多視点画像符号化装置、多視点画像符号化方法、多視点画像符号化プログラム、多視点画像復号装置、多視点画像復号方法、及び多視点画像復号プログラム
JP2008252740A (ja) * 2007-03-30 2008-10-16 Sony Corp リモートコマンダおよびコマンド発生方法、再生装置および再生方法、プログラム、並びに、記録媒体

Also Published As

Publication number Publication date
JP2012130030A (ja) 2012-07-05
JP2012124924A (ja) 2012-06-28
JP2012130031A (ja) 2012-07-05
JP4985884B2 (ja) 2012-07-25
JP4985883B2 (ja) 2012-07-25
JP2012130029A (ja) 2012-07-05
JP4985882B2 (ja) 2012-07-25
JP2012124923A (ja) 2012-06-28
JP4985885B2 (ja) 2012-07-25

Similar Documents

Publication Publication Date Title
JP4993224B2 (ja) 再生装置および再生方法
JP4957823B2 (ja) 再生装置および再生方法
WO2010116997A1 (ja) 情報処理装置、情報処理方法、再生装置、再生方法、および記録媒体
JP5267886B2 (ja) 再生装置、記録媒体、および情報処理方法
JP4962525B2 (ja) 再生装置、再生方法、およびプログラム
JP2010245970A (ja) 再生装置、再生方法、およびプログラム
JP4984184B2 (ja) 再生装置および再生方法
JP4985886B2 (ja) 再生装置、再生方法、および記録方法
JP4993044B2 (ja) 再生装置、再生方法、および記録方法
JP4984192B2 (ja) 記録方法
JP4993233B2 (ja) 記録方法
JP4993234B2 (ja) 再生装置、再生方法、および記録方法
JP4984193B2 (ja) 再生装置、再生方法、および記録方法
JP4984194B2 (ja) 記録方法

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120403

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120416

R151 Written notification of patent or utility model registration

Ref document number: 4985886

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150511

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150511

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250