説明

記録方法

【課題】H.264 AVC/MVCで符号化して得られたBase view videoのストリームとDependent view videoのストリームが記録されているBD等の記録媒体を、3D再生に対応していない装置においても再生させることができるようにする。
【解決手段】Base view videoを格納したAccess UnitにはMVCヘッダの符号化が禁止されている。MVCヘッダがないAccess Unitに格納されているview componentについては、そのview_idが0であるとして認識するように定義されている。0がview_idとして設定されていると認識されたAccess Unit#1がデコードされ、次に、Yがview_idとして設定されているAccess Unit#2がデコードされる。本発明は、BD-ROM規格に対応した再生装置に適用することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本技術は、記録媒体、および記録方法に関し、特に、H.264 AVC/MVCで符号化して得られたBase view videoのストリームとDependent view videoのストリームが記録されているBD等の記録媒体を、3D再生に対応していない装置においても再生させることができるようにした記録媒体、および記録方法に関する。
【背景技術】
【0002】
映画等のコンテンツとしては2次元画像のコンテンツが主流であるが、最近では、立体視が可能な立体視画像のコンテンツが注目を集めている。
【0003】
立体視画像の表示には、専用のデバイスが必要であり、そのような立体視用デバイスとしては、例えば、NHK(日本放送協会)が開発したIP(Integral Photography)立体画像システムがある。
【0004】
立体視画像の画像データは、複数の視点の画像データ(複数の視点から撮影された画像の画像データ)からなり、視点の数が多く、かつ、視点が広範囲にわたるほど、様々な方向から被写体を見ることができる、いわば「のぞけるテレビ」を実現することができる。
【0005】
立体視画像のうちの、視点の数が最も少ないのは視点の数が2視点のステレオ画像(いわゆる3D画像)である。ステレオ画像の画像データは、左眼で観察される画像である左画像のデータと、右眼で観察される画像である右画像のデータとからなる。
【0006】
一方、映画等の、高解像度の画像のコンテンツはそのデータ量が多いことから、そのようなデータ量の多いコンテンツを記録するには大容量の記録媒体が必要になる。
【0007】
そのような大容量の記録媒体としては、BD(Blu-Ray(登録商標))-ROM(Read Only Memory)等のBlu-Ray(登録商標) Disc(以下、BDともいう)がある。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2005−348314号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
ところで、BDの規格では、ステレオ画像を含む立体視画像の画像データを、BDにどのように記録し、また、再生するかは規定されていない。
【0010】
ステレオ画像の画像データは、左画像のデータのストリームと右画像のデータのストリームの2本のデータストリームからなる。仮に、2本のデータストリームをそのままBDに記録しただけでは、既に普及しているBDプレーヤで再生できないおそれがある。
【0011】
本技術はこのような状況に鑑みてなされたものであり、H.264 AVC/MVCで符号化して得られたBase view videoのストリームとDependent view videoのストリームが記録されているBD等の記録媒体を、3D再生に対応していない装置においても再生させることができるようにするものである。
【課題を解決するための手段】
【0012】
本技術の一側面の記録媒体は、複数の映像データを対象としてH.264 AVC/MVCで符号化を行うことによって得られたviewのIDを含むMVCヘッダが付加されていないデータからなり、前記IDとして前記MVCヘッダに設定されている値が小さいviewのデータから順に処理を行う再生装置を、前記IDとして0の値が前記MVCヘッダに設定されているデータとして扱い、Dependent view videoのデータより先に復号を行うように機能させるBase view videoのストリームと、前記符号化を行うことによって得られた、Dependent viewのデータであることを表す1以上の値の前記IDを含む前記MVCヘッダが付加されたデータからなり、前記再生装置を、前記Base view videoのストリームの後に復号を行うように機能させる前記Dependent view videoのストリームとが記録された記録媒体である。
【0013】
本技術の一側面の記録方法は、複数の映像データをH.264 AVC/MVCで符号化し、符号化を行うことによって得られた、viewのIDを含むMVCヘッダが付加されていないデータからなるBase view videoのストリームと、Dependent viewのデータであることを表す前記IDを含む前記MVCヘッダが付加されたデータからなるDependent view videoのストリームを記録媒体に記録するステップを含む。
【発明の効果】
【0014】
本技術によれば、H.264 AVC/MVCで符号化して得られたBase view videoのストリームとDependent view videoのストリームが記録されているBD等の記録媒体を、3D再生に対応していない装置においても再生させることができる。
【図面の簡単な説明】
【0015】
【図1】本技術を適用した再生装置を含む再生システムの構成例を示す図である。
【図2】撮影の例を示す図である。
【図3】MVCエンコーダの構成例を示すブロック図である。
【図4】参照画像の例を示す図である。
【図5】TSの構成例を示す図である。
【図6】TSの他の構成例を示す図である。
【図7】TSのさらに他の構成例を示す図である。
【図8】AVストリームの管理の例を示す図である。
【図9】Main PathとSub Pathの構造を示す図である。
【図10】光ディスクに記録されるファイルの管理構造の例を示す図である。
【図11】PlayListファイルのシンタクスを示す図である。
【図12】図11にあるreserved_for_future_useの使い方の例を示す図である。
【図13】3D_PL_typeの値の意味を示す図である。
【図14】view_typeの値の意味を示す図である。
【図15】図11のPlayList()のシンタクスを示す図である。
【図16】図15のSubPath()のシンタクスを示す図である。
【図17】図16のSubPlayItem(i)のシンタクスを示す図である。
【図18】図15のPlayItem()のシンタクスを示す図である。
【図19】図18のSTN_table()のシンタクスを示す図である。
【図20】再生装置の構成例を示すブロック図である。
【図21】図20のデコーダ部の構成例を示す図である。
【図22】ビデオストリームの処理を行う構成を示す図である。
【図23】ビデオストリームの処理を行う構成を示す図である。
【図24】ビデオストリームの処理を行う他の構成を示す図である。
【図25】Access Unitの例を示す図である。
【図26】ビデオストリームの処理を行うさらに他の構成を示す図である。
【図27】合成部と、その前段の構成を示す図である。
【図28】合成部と、その前段の構成を示す他の図である。
【図29】ソフト製作処理部の構成例を示すブロック図である。
【図30】ソフト製作処理部を含む各構成の例を示す図である。
【図31】記録装置に設けられる3D video TS生成部の構成例を示す図である。
【図32】記録装置に設けられる3D video TS生成部の他の構成例を示す図である。
【図33】記録装置に設けられる3D video TS生成部のさらに他の構成例を示す図である。
【図34】Access Unitをデコードする再生装置側の構成を示す図である。
【図35】デコード処理を示す図である。
【図36】Close GOP構造を示す図である。
【図37】Open GOP構造を示す図である。
【図38】GOP内の最大フレーム・フィールド数を示す図である。
【図39】Close GOP構造を示す図である。
【図40】Open GOP構造を示す図である。
【図41】EP_mapに設定されたデコード開始位置の例を示す図である。
【図42】Dependent view videoのGOP構造を定義しない場合に生じる問題について示す図である。
【図43】ピクチャサーチの概念を示す図である。
【図44】光ディスク上に記録されたAVストリームの構造を示す図である。
【図45】Clip AVストリームの例を示す図である。
【図46】図45のClip AVストリームに対応したEP_mapを概念的に示す図である。
【図47】SPN_EP_startが指すソースパケットのデータ構造の例を示す図である。
【図48】コンピュータのハードウェアの構成例を示すブロック図である。
【発明を実施するための形態】
【0016】
<第1の実施の形態>
[再生システムの構成例]
図1は、本技術を適用した再生装置1を含む再生システムの構成例を示す図である。
【0017】
図1に示すように、この再生システムは、再生装置1と表示装置3がHDMI(High Definition Multimedia Interface)ケーブルなどで接続されることによって構成される。再生装置1には、BDなどの光ディスク2が装着される。
【0018】
光ディスク2には、視点の数が2つのステレオ画像(いわゆる3D画像)を表示するために必要なストリームが記録されている。
【0019】
再生装置1は、光ディスク2に記録されているストリームの3D再生に対応したプレーヤである。再生装置1は、光ディスク2に記録されているストリームを再生し、再生して得られた3D画像をテレビジョン受像機などよりなる表示装置3に表示させる。音声についても同様に再生装置1により再生され、表示装置3に設けられるスピーカなどから出力される。
【0020】
3D画像の表示の方式として様々な方式が提案されている。ここでは、3D画像の表示の方式として、以下のタイプ1の表示方式と、タイプ2の表示方式とを採用する。
【0021】
タイプ1の表示方式は、3D画像のデータを左眼で観察される画像(L画像)のデータと、右眼で観察される画像(R画像)のデータとで構成し、L画像とR画像を交互に表示することで、3D画像を表示する方式である。
【0022】
タイプ2の表示方式は、3D画像を生成する元になる画像である元画像のデータとDepthのデータとを用いて生成されるL画像とR画像を表示することで、3D画像を表示する方式である。タイプ2の表示方式で用いられる3D画像のデータは、元画像のデータと、元画像に与えることによってL画像とR画像を生成することができるDepthのデータとで構成される。
【0023】
タイプ1の表示方式は、視聴するときにメガネが必要となる表示方式である。タイプ2の表示方式は、メガネなしで3D画像を視聴できる表示方式である。
【0024】
光ディスク2には、タイプ1と2のいずれの表示方式によっても3D画像を表示することができるようなストリームが記録されている。
【0025】
そのようなストリームを光ディスク2に記録するための符号化の方式として、例えば、H.264 AVC(Advanced Video Coding)/MVC(Multi-view Video coding)が採用される。
【0026】
[H.264 AVC/MVC Profile]
H.264 AVC/MVCでは、Base view videoと呼ばれる画像ストリームと、Dependent view videoと呼ばれる画像ストリームとが定義されている。以下、適宜、H.264 AVC/MVCを単にMVCという。
【0027】
図2は、撮影の例を示す図である。
【0028】
図2に示すように、同じ被写体を対象として、L画像用のカメラとR画像用のカメラによって撮影が行われる。L画像用のカメラとR画像用のカメラによって撮影された映像のエレメンタリストリームがMVCエンコーダに入力される。
【0029】
図3は、MVCエンコーダの構成例を示すブロック図である。
【0030】
図3に示すように、MVCエンコーダ11は、H.264/AVCエンコーダ21、H.264/AVCデコーダ22、Depth算出部23、Dependent view videoエンコーダ24、およびマルチプレクサ25から構成される。
【0031】
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に入力されるようにしてもよい。
【0032】
H.264/AVCエンコーダ21は、映像#1のストリームを、例えばH.264 AVC/High Profileビデオストリームとして符号化する。H.264/AVCエンコーダ21は、符号化して得られたAVCビデオストリームを、Base view videoストリームとしてH.264/AVCデコーダ22とマルチプレクサ25に出力する。
【0033】
H.264/AVCデコーダ22は、H.264/AVCエンコーダ21から供給されたAVCビデオストリームをデコードし、デコードして得られた映像#1のストリームをDependent view videoエンコーダ24に出力する。
【0034】
Depth算出部23は、映像#1のストリームと映像#2のストリームに基づいてDepthを算出し、算出したDepthのデータをマルチプレクサ25に出力する。
【0035】
Dependent view videoエンコーダ24は、H.264/AVCデコーダ22から供給された映像#1のストリームと、外部から入力された映像#2のストリームをエンコードし、Dependent view videoストリームを出力する。
【0036】
Base view videoには、他のストリームを参照画像とする予測符号化が許されていないが、図4に示すように、Dependent view videoには、Base view videoを参照画像とする予測符号化が許されている。例えばL画像をBase view videoとするとともにR画像をDependent view videoとして符号化を行った場合、その結果得られるDependent view videoストリームのデータ量は、Base view videoストリームのデータ量に比較して少なくなる。
【0037】
なお、H.264/AVCでの符号化であるから、Base view videoについて時間方向の予測は行われている。また、Dependent view videoについても、view間の予測とともに、時間方向の予測が行われている。Dependent view videoをデコードするには、エンコード時に参照先とした、対応するBase view videoのデコードが先に終了している必要がある。
【0038】
Dependent view videoエンコーダ24は、このようなview間の予測も用いて符号化して得られたDependent view videoストリームをマルチプレクサ25に出力する。
【0039】
マルチプレクサ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に含まれることもある。
【0040】
マルチプレクサ25は、生成したTS(MPEG2 TS)を出力する。マルチプレクサ25から出力されたTSは、他の管理データとともに記録装置において光ディスク2に記録され、光ディスク2に記録された形で再生装置1に提供される。
【0041】
タイプ1の表示方式においてBase view videoとともに用いられるDependent view videoと、タイプ2の表示方式においてBase view videoとともに用いられるDependent view video(Depth)とを区別する必要がある場合、前者をD1 view videoといい、後者をD2 view videoという。
【0042】
また、Base view videoとD1 view videoを用いて行われる、タイプ1の表示方式での3D再生をB-D1再生という。Base view videoとD2 view videoを用いて行われる、タイプ2の表示方式での3D再生をB-D2再生という。
【0043】
再生装置1は、ユーザによる指示などに応じてB-D1再生を行う場合、Base view videoストリームとD1 view videoストリームを光ディスク2から読み出して再生する。
【0044】
また、再生装置1は、B-D2再生を行う場合、Base view videoストリームとD2 view videoストリームを光ディスク2から読み出して再生する。
【0045】
さらに、再生装置1は、通常の2D画像の再生を行う場合、Base view videoストリームだけを光ディスク2から読み出して再生する。
【0046】
Base view videoストリームはH.264/AVCで符号化されているAVCビデオストリームであるから、BDのフォーマットに対応したプレーヤであれば、そのBase view videoストリームを再生し、2D画像を表示させることが可能になる。
【0047】
以下、Dependent view videoがD1 view videoである場合について主に説明する。単にDependent view videoというときは、D1 view videoを表すことになる。D2 view videoについても、D1 view videoと同様にして光ディスク2に記録され、再生される。
【0048】
[TSの構成例]
図5は、TSの構成例を示す図である。
【0049】
図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に含まれていることもある。
【0050】
光ディスク2には、Main TSとSub TSが記録されている。Main TSは、少なくともBase view videoストリームを含むTSである。Sub TSは、Base view videoストリーム以外のストリームを含み、Main TSとともに用いられるTSである。
【0051】
ビデオと同様に3Dでの表示が可能になるように、後述するPG、IGについてもBase viewとDependent viewのそれぞれのストリームが用意されている。
【0052】
それぞれのストリームをデコードして得られたPG、IGのBase viewのプレーンは、Base view videoストリームをデコードして得られたBase view videoのプレーンと合成されて表示される。同様に、PG、IGのDependent viewのプレーンは、Dependent view videoストリームをデコードして得られたDependent view videoのプレーンと合成されて表示される。
【0053】
例えば、Base view videoストリームがL画像のストリームであり、Dependent view videoストリームがR画像のストリームである場合、PG、IGについても、そのBase viewのストリームはL画像のグラフィックスのストリームとなる。また、Dependent viewのPGストリーム、IGストリームはR画像のグラフィックスのストリームとなる。
【0054】
一方、Base view videoストリームがR画像のストリームであり、Dependent view videoストリームがL画像のストリームである場合、PG、IGについても、そのBase viewのストリームはR画像のグラフィックスのストリームとなる。また、Dependent viewのPGストリーム、IGストリームはL画像のグラフィックスのストリームとなる。
【0055】
図6は、TSの他の構成例を示す図である。
【0056】
図6のMain TSにはBase view video、Dependent view videoのそれぞれのストリームが多重化されている。
【0057】
一方、Sub TSにはPrimary audio、Base PG、Dependent PG、Base IG、Dependent IGのそれぞれのストリームが多重化されている。
【0058】
このように、ビデオストリームがMain TSに多重化され、PG、IGのストリーム等がSub TSに多重化されていることもある。
【0059】
図7は、TSのさらに他の構成例を示す図である。
【0060】
図7AのMain TSにはBase view video、Primary audio、Base PG、Dependent PG、Base IG、Dependent IGのそれぞれのストリームが多重化されている。
【0061】
一方、Sub TSにはDependent view videoストリームが含まれている。
【0062】
このように、Dependent view videoストリームがBase view videoストリームとは別のTSに含まれていることもある。
【0063】
図7BのMain TSにはBase view video、Primary audio、PG、IGのそれぞれのストリームが多重化されている。一方、Sub TSにはDependent view video、Base PG、Dependent PG、Base IG、Dependent IGのそれぞれのストリームが多重化されている。
【0064】
Main TSに含まれるPG、IGは2D再生用のストリームである。Sub TSに含まれているストリームは3D再生用のストリームである。
【0065】
このように、PGのストリームとIGのストリームを2D再生と3D再生において共有しないようにすることも可能である。
【0066】
以上のように、Base view videoストリームとDependent view videoストリームが別々のMPEG2 TSに含まれることがある。Base view videoストリームとDependent view videoストリームを別々のMPEG2 TSに含めて記録する場合のメリットについて説明する。
【0067】
例えば1本のMPEG2 TSとして多重化できるビットレートが制限されている場合を考える。この場合において、Base view videoストリームとDependent view videoストリームの両方を1本のMPEG2 TSに含めたときには、その制約を満たすために各ストリームのビットレートを下げる必要がある。その結果、画質が落ちてしまうことになる。
【0068】
それぞれ異なるMPEG2 TSに含めることによって、ビットレートを下げる必要がなくなり、画質を落とさずに済むことになる。
【0069】
[アプリケーションフォーマット]
図8は、再生装置1によるAVストリームの管理の例を示す図である。
【0070】
AVストリームの管理は、図8に示すようにPlayListとClipの2つのレイヤを用いて行われる。AVストリームは、光ディスク2だけでなく、再生装置1のローカルストレージに記録されていることもある。
【0071】
ここでは、1つのAVストリームとそれに付随する情報であるClip Informationのペアを1つのオブジェクトと考え、それらをまとめてClipという。以下、AVストリームを格納したファイルをAVストリームファイルという。また、Clip Informationを格納したファイルをClip Informationファイルともいう。
【0072】
AVストリームは時間軸上に展開され、各Clipのアクセスポイントは、主に、タイムスタンプでPlayListにおいて指定される。Clip Informationファイルは、AVストリーム中のデコードを開始すべきアドレスを見つけるためなどに使用される。
【0073】
PlayListはAVストリームの再生区間の集まりである。AVストリーム中の1つの再生区間はPlayItemと呼ばれる。PlayItemは、時間軸上の再生区間のIN点とOUT点のペアで表される。図8に示すように、PlayListは1つまたは複数のPlayItemにより構成される。
【0074】
図8の左から1番目のPlayListは2つのPlayItemから構成され、その2つのPlayItemにより、左側のClipに含まれるAVストリームの前半部分と後半部分がそれぞれ参照されている。
【0075】
左から2番目のPlayListは1つのPlayItemから構成され、それにより、右側のClipに含まれるAVストリーム全体が参照されている。
【0076】
左から3番目のPlayListは2つのPlayItemから構成され、その2つのPlayItemにより、左側のClipに含まれるAVストリームのある部分と、右側のClipに含まれるAVストリームのある部分がそれぞれ参照されている。
【0077】
例えば、左から1番目のPlayListに含まれる左側のPlayItemが再生対象としてディスクナビゲーションプログラムにより指定された場合、そのPlayItemが参照する、左側のClipに含まれるAVストリームの前半部分の再生が行われる。このように、PlayListは、AVストリームの再生を管理するための再生管理情報として用いられる。
【0078】
PlayListの中で、1つ以上のPlayItemの並びによって作られる再生パスをメインパス(Main Path)という。
【0079】
また、PlayListの中で、Main Pathに並行して、1つ以上のSubPlayItemの並びによって作られる再生パスをサブパス(Sub Path)という。
【0080】
図9は、Main PathとSub Pathの構造を示す図である。
【0081】
PlayListは、1つのMain Pathと1つ以上のSub Pathを持つことができる。
【0082】
上述したBase view videoストリームは、Main Pathを構成するPlayItemが参照するストリームとして管理される。また、Dependent view videoストリームは、Sub Pathを構成するSubPlayItemが参照するストリームとして管理される。
【0083】
図9のPlayListは、3つのPlayItemの並びにより作られる1つのMain Pathと、3つのSub Pathを有している。
【0084】
Main Pathを構成するPlayItemには、先頭から順番にそれぞれIDが設定される。Sub Pathにも、先頭から順番にSubpath_id=0、Subpath_id=1、およびSubpath_id=2のIDが設定される。
【0085】
図9の例においては、Subpath_id=0のSub Pathには1つのSubPlayItemが含まれ、Subpath_id=1のSub Pathには2つのSubPlayItemが含まれる。また、Subpath_id=2のSub Pathには1つのSubPlayItemが含まれる。
【0086】
1つのPlayItemが参照するClip AVストリームには、少なくともビデオストリーム(メイン画像データ)が含まれる。
【0087】
また、Clip AVストリームには、Clip AVストリームに含まれるビデオストリームと同じタイミングで(同期して)再生されるオーディオストリームが1つ以上含まれてもよいし、含まれなくてもよい。
【0088】
Clip AVストリームには、Clip AVストリームに含まれるビデオストリームと同期して再生されるビットマップの字幕データ(PG(Presentation Graphic))のストリームが1つ以上含まれてもよいし、含まれなくてもよい。
【0089】
Clip AVストリームには、Clip AVストリームファイルに含まれるビデオストリームと同期して再生されるIG(Interactive Graphic)のストリームが1つ以上含まれてもよいし、含まれなくてもよい。IGのストリームは、ユーザにより操作されるボタンなどのグラフィックを表示させるために用いられる。
【0090】
1つのPlayItemが参照するClip AVストリームには、ビデオストリームと、それと同期して再生される0個以上のオーディオストリーム、0個以上のPGストリーム、および、0個以上のIGストリームが多重化されている。
【0091】
また、1つのSubPlayItemは、PlayItemが参照するClip AVストリームとは異なるストリーム(別ストリーム)の、ビデオストリーム、オーディオストリーム、または、PGストリームなどを参照する。
【0092】
このようなPlayList、PlayItem、SubPlayItemを使ったAVストリームの管理については、例えば、特開2008−252740号公報、特開2005−348314号公報に記載されている。
【0093】
[ディレクトリ構造]
図10は、光ディスク2に記録されるファイルの管理構造の例を示す図である。
【0094】
図10に示すように、ファイルはディレクトリ構造により階層的に管理される。光ディスク2上には1つのrootディレクトリが作成される。rootディレクトリの下が、1つの記録再生システムで管理される範囲となる。
【0095】
rootディレクトリの下にはBDMVディレクトリが置かれる。
【0096】
BDMVディレクトリの直下に、「Index.bdmv」の名前が設定されたファイルであるIndexファイルと、「MovieObject.bdmv」の名前が設定されたファイルであるMovieObjectファイルが格納される。
【0097】
BDMVディレクトリの下には、BACKUPディレクトリ、PLAYLISTディレクトリ、CLIPINFディレクトリ、STREAMディレクトリ等が設けられる。
【0098】
PLAYLISTディレクトリには、PlayListを記述したPlayListファイルが格納される。各PlayListファイルには、5桁の数字と拡張子「.mpls」を組み合わせた名前が設定される。
図10に示す1つのPlayListファイルには「00000.mpls」のファイル名が設定されている。
【0099】
CLIPINFディレクトリにはClip Informationファイルが格納される。各Clip Informationファイルには、5桁の数字と拡張子「.clpi」を組み合わせた名前が設定される。
【0100】
図10の3つのClip Informationファイルには、それぞれ、「00001.clpi」、「00002.clpi」、「00003.clpi」のファイル名が設定されている。以下、適宜、Clip Informationファイルをclpiファイルという。
【0101】
例えば、「00001.clpi」のclpiファイルは、Base view videoのClipに関する情報が記述されたファイルである。
【0102】
「00002.clpi」のclpiファイルは、D2 view videoのClipに関する情報が記述されたファイルである。
【0103】
「00003.clpi」のclpiファイルは、D1 view videoのClipに関する情報が記述されたファイルである。
【0104】
STREAMディレクトリにはストリームファイルが格納される。各ストリームファイルには、5桁の数字と拡張子「.m2ts」を組み合わせた名前、もしくは、5桁の数字と拡張子「.ilvt」を組み合わせた名前が設定される。以下、適宜、拡張子「.m2ts」が設定されたファイルをm2tsファイルという。また、拡張子「.ilvt」が設定されたファイルをilvtファイルという。
【0105】
「00001.m2ts」のm2tsファイルは2D再生用のファイルであり、このファイルを指定することによってBase view videoストリームの読み出しが行われる。
【0106】
「00002.m2ts」のm2tsファイルはD2 view videoストリームのファイルであり、「00003.m2ts」のm2tsファイルはD1 view videoストリームのファイルである。
【0107】
「10000.ilvt」のilvtファイルはB-D1再生用のファイルであり、このファイルを指定することによってBase view videoストリームとD1 view videoストリームの読み出しが行われる。
【0108】
「20000.ilvt」のilvtファイルはB-D2再生用のファイルであり、このファイルを指定することによってBase view videoストリームとD2 view videoストリームの読み出しが行われる。
【0109】
図10に示すものの他に、BDMVディレクトリの下には、オーディオストリームのファイルを格納するディレクトリなども設けられる。
【0110】
[各データのシンタクス]
図11は、PlayListファイルのシンタクスを示す図である。
【0111】
PlayListファイルは、図10のPLAYLISTディレクトリに格納される、拡張子「.mpls」が設定されるファイルである。
【0112】
図11のtype_indicatorは、「xxxxx.mpls」のファイルの種類を表す。
【0113】
version_numberは、「xxxx.mpls」のバージョンナンバーを表す。version_numberは4桁の数字からなる。例えば、3D再生用のPlayListファイルには、「3D Spec version」であることを表す“0240”が設定される。
【0114】
PlayList_start_addressは、PlayListファイルの先頭のバイトからの相対バイト数を単位として、PlayList()の先頭アドレスを表す。
【0115】
PlayListMark_start_addressは、PlayListファイルの先頭のバイトからの相対バイト数を単位として、PlayListMark()の先頭アドレスを表す。
【0116】
ExtensionData_start_addressは、PlayListファイルの先頭のバイトからの相対バイト数を単位として、ExtensionData()の先頭アドレスを表す。
【0117】
ExtensionData_start_addressの後には、160bitのreserved_for_future_useが含まれる。
【0118】
AppInfoPlayList()には、再生制限などの、PlayListの再生コントロールに関するパラメータが格納される。
【0119】
PlayList()には、Main PathやSub Pathなどに関するパラメータが格納される。PlayList()の内容については後述する。
【0120】
PlayListMark()には、PlayListのマーク情報、すなわち、チャプタジャンプなどを指令するユーザオペレーションまたはコマンドなどにおけるジャンプ先(ジャンプポイント)であるマークに関する情報が格納される。
【0121】
ExtensionData()には、プライベートデータが挿入できるようになっている。
【0122】
図12は、PlayListファイルの記述の具体例を示す図である。
【0123】
図12に示すように、PlayListファイルには2bitの3D_PL_typeと1bitのview_typeが記述される。
【0124】
3D_PL_typeは、PlayListの種類を表す。
【0125】
view_typeは、PlayListによって再生が管理されるBase view videoストリームが、L画像(L view)のストリームであるのか、R画像(R view)のストリームであるのかを表す。
【0126】
図13は、3D_PL_typeの値の意味を示す図である。
【0127】
3D_PL_typeの値の00は、2D再生用のPlayListであることを表す。
【0128】
3D_PL_typeの値の01は、3D再生のうちのB-D1再生用のPlayListであることを表す。
【0129】
3D_PL_typeの値の10は、3D再生のうちのB-D2再生用のPlayListであることを表す。
【0130】
例えば、3D_PL_typeの値が01か10の場合には、PlayListファイルのExtenstionData()に3DPlayList情報が登録される。例えば、3DPlayList情報として、Base view videoストリームとDependent view videoストリームの光ディスク2からの読み出しに関する情報が登録される。
【0131】
図14は、view_typeの値の意味を示す図である。
【0132】
view_typeの値の0は、3D再生を行う場合には、Base view videoストリームがL viewのストリームであることを表す。2D再生を行う場合には、Base view videoストリームがAVCビデオストリームであることを表す。
【0133】
view_typeの値の1は、Base view videoストリームがR viewのストリームであることを表す。
【0134】
view_typeがPlayListファイルに記述されることにより、再生装置1は、Base view videoストリームがL viewのストリームであるのかR viewのストリームであるのかを識別することが可能になる。
【0135】
例えば、HDMIケーブルを介して表示装置3にビデオ信号を出力する場合、L viewの信号とR viewの信号とをそれぞれ区別した上で出力することが再生装置1に要求されるものと考えられる。
【0136】
Base view videoストリームがL viewのストリームであるのかR viewのストリームであるのかを識別することができるようにすることにより、再生装置1は、L viewの信号とR viewの信号を区別して出力することが可能になる。
【0137】
図15は、図11のPlayList()のシンタクスを示す図である。
【0138】
lengthは、このlengthフィールドの直後からPlayList()の最後までのバイト数を示す32ビットの符号なし整数である。すなわち、lengthは、reserved_for_future_useからPlayListの最後までのバイト数を表す。
【0139】
lengthの後には、16ビットのreserved_for_future_useが用意される。
【0140】
number_of_PlayItemsは、PlayListの中にあるPlayItemの数を示す16ビットのフィールドである。図9の例の場合、PlayItemの数は3である。PlayItem_idの値は、PlayListの中でPlayItem()が現れる順番に0から割り振られる。例えば、図9のPlayItem_id=0,1,2が割り振られる。
【0141】
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()が参照される。
【0142】
図16は、図15のSubPath()のシンタクスを示す図である。
【0143】
lengthは、このlengthフィールドの直後からSub Path()の最後までのバイト数を示す32ビットの符号なし整数である。すなわち、lengthは、reserved_for_future_useからPlayListの最後までのバイト数を表す。
【0144】
lengthの後には、16ビットのreserved_for_future_useが用意される。
【0145】
SubPath_typeは、Sub Pathのアプリケーションの種類を示す8ビットのフィールドである。SubPath_typeは、例えば、Sub Pathがオーディオであるか、ビットマップ字幕であるか、テキスト字幕であるかなどの種類を示す場合に利用される。
【0146】
SubPath_typeの後には、15ビットのreserved_for_future_useが用意される。
【0147】
is_repeat_SubPathは、Sub Pathの再生方法を指定する1ビットのフィールドであり、Main Pathの再生の間にSub Pathの再生を繰り返し行うか、またはSub Pathの再生を1回だけ行うかを示す。例えば、Main Pathが参照するClipとSub Pathが参照するClipの再生タイミングが異なる場合(Main Pathを静止画のスライドショーのパスとし、Sub PathをBGMとするオーディオのパスとして使う場合など)に利用される。
【0148】
Is_repeat_SubPathの後には、8ビットのreserved_for_future_useが用意される。
【0149】
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()が参照される。
【0150】
図17は、図16のSubPlayItem(i)のシンタクスを示す図である。
【0151】
lengthは、このlengthフィールドの直後からSub playItem()の最後までのバイト数を示す16ビットの符号なし整数である。
【0152】
図17のSubPlayItem(i)は、SubPlayItemが1つのClipを参照する場合と、複数のClipを参照する場合に分けて記述されている。
【0153】
SubPlayItemが1つのClipを参照する場合について説明する。
【0154】
Clip_Information_file_name[0]は参照するClipを表す。
【0155】
Clip_codec_identifier[0]はClipのコーデック方式を表す。Clip_codec_identifier[0]の後にはreserved_for_future_useが含まれる。
【0156】
is_multi_Clip_entriesはマルチClipの登録の有無を示すフラグである。is_multi_Clip_entriesのフラグが立っている場合、SubPlayItemが複数のClipを参照する場合のシンタクスが参照される。
【0157】
ref_to_STC_id[0]はSTC不連続点(システムタイムベースの不連続点)に関する情報である。
【0158】
SubPlayItem_IN_timeはSub Pathの再生区間の開始位置を表し、SubPlayItem_OUT_timeは終了位置を表す。
【0159】
sync_PlayItem_idとsync_start_PTS_of_PlayItemは、Main Pathの時間軸上でSub Pathが再生を開始する時刻を表す。
【0160】
SubPlayItem_IN_time、SubPlayItem_OUT_time、sync_PlayItem_id、sync_start_PTS_of_PlayItemは、SubPlayItemが参照するClipにおいて共通に使用される。
【0161】
「if(is_multi_Clip_entries==1b」であり、SubPlayItemが複数のClipを参照する場合について説明する。
【0162】
num_of_Clip_entriesは参照するClipの数を表す。Clip_Information_file_name[SubClip_entry_id]の数が、Clip_Information_file_name[0]を除くClipの数を指定する。
【0163】
Clip_codec_identifier[SubClip_entry_id]はClipのコーデック方式を表す。
【0164】
ref_to_STC_id[SubClip_entry_id]はSTC不連続点(システムタイムベースの不連続点)に関する情報である。ref_to_STC_id[SubClip_entry_id]の後にはreserved_for_future_useが含まれる。
【0165】
図18は、図15のPlayItem()のシンタクスを示す図である。
【0166】
lengthは、このlengthフィールドの直後からPlayItem()の最後までのバイト数を示す16ビットの符号なし整数である。
【0167】
Clip_Information_file_name[0]は、PlayItemが参照するClipのClip Informationファイルの名前を表す。なお、Clipを含むmt2sファイルのファイル名と、それに対応するClip Informationファイルのファイル名には同じ5桁の数字が含まれる。
【0168】
Clip_codec_identifier[0]はClipのコーデック方式を表す。Clip_codec_identifier[0]の後にはreserved_for_future_useが含まれる。reserved_for_future_useの後にはis_multi_angle、connection_conditionが含まれる。
【0169】
ref_to_STC_id[0]はSTC不連続点(システムタイムベースの不連続点)に関する情報である。
【0170】
IN_timeはPlayItemの再生区間の開始位置を表し、OUT_timeは終了位置を表す。
【0171】
OUT_timeの後にはUO_mask_table()、PlayItem_random_access_mode、still_modeが含まれる。
【0172】
STN_table()には、対象のPlayItemが参照するAVストリームの情報が含まれる。また、対象のPlayItemと関連付けて再生されるSub Pathがある場合、そのSub Pathを構成するSubPlayItemが参照するAVストリームの情報も含まれる。
【0173】
図19は、図18のSTN_table()のシンタクスを示す図である。
【0174】
STN_table()は、PlayItemの属性として設定されている。
【0175】
lengthは、このlengthフィールドの直後からSTN_table()の最後までのバイト数を示す16ビットの符号なし整数である。lengthの後には、16ビットのreserved_for_future_useが用意される。
【0176】
number_of_video_stream_entriesは、STN_table()の中でエントリーされる(登録される)、video_stream_idが与えられるストリームの数を表す。
【0177】
video_stream_idは、ビデオストリームを識別するための情報である。例えば、Base view videoストリームがこのvideo_stream_idにより特定される。
【0178】
Dependent view videoストリームのIDについては、STN_table()内で定義されるようにしてもよいし、Base view videoストリームのIDに所定の値を加算するなどして計算により求められるようにしてもよい。
【0179】
video_stream_numberは、ビデオ切り替えに使われる、ユーザから見えるビデオストリーム番号である。
【0180】
number_of_audio_stream_entriesは、STN_table()の中でエントリーされる、audio_stream_idが与えられる1番目のオーディオストリームのストリームの数を表す。audio_stream_idは、オーディオストリームを識別するための情報であり、audio_stream_numberは、音声切り替えに使われるユーザから見えるオーディオストリーム番号である。
【0181】
number_of_audio_stream2_entriesは、STN_table()の中でエントリーされる、audio_stream_id2が与えられる2番目のオーディオストリームのストリームの数を表す。audio_stream_id2は、オーディオストリームを識別するための情報であり、audio_stream_numberは、音声切り替えに使われるユーザから見えるオーディオストリーム番号である。この例においては、再生する音声を切り替えることができるようになされている。
【0182】
number_of_PG_txtST_stream_entriesは、STN_table()の中でエントリーされる、PG_txtST_stream_idが与えられるストリームの数を表す。この中では、ビットマップ字幕をランレングス符号化したPGストリームとテキスト字幕ファイル(txtST)がエントリーされる。PG_txtST_stream_idは、字幕ストリームを識別するための情報であり、PG_txtST_stream_numberは、字幕切り替えに使われるユーザから見える字幕ストリーム番号である。
【0183】
number_of_IG_stream_entriesは、STN_table()の中でエントリーされる、IG_stream_idが与えられるストリームの数を表す。この中ではIGストリームがエントリーされる。IG_stream_idは、IGストリームを識別するための情報であり、IG_stream_numberは、グラフィックス切り替えに使われるユーザから見えるグラフィックスストリーム番号である。
【0184】
Main TS、Sub TSのIDもSTN_table()に登録される。そのIDがエレメンタリストリームではなくTSのIDであることは、stream_attribute()に記述される。
【0185】
[再生装置1の構成例]
図20は、再生装置1の構成例を示すブロック図である。
【0186】
コントローラ51は、予め用意されている制御プログラムを実行し、再生装置1の全体の動作を制御する。
【0187】
例えば、コントローラ51は、ディスクドライブ52を制御し、3D再生用のPlayListファイルを読み出す。また、コントローラ51は、STN_tableに登録されているIDに基づいて、Main TSとSubTSを読み出させ、デコーダ部56に供給させる。
【0188】
ディスクドライブ52は、コントローラ51による制御に従って光ディスク2からデータを読み出し、読み出したデータを、コントローラ51、メモリ53、またはデコーダ部56に出力する。
【0189】
メモリ53は、コントローラ51が各種の処理を実行する上において必要なデータなどを適宜記憶する。
【0190】
ローカルストレージ54は例えばHDD(Hard Disk Drive)により構成される。ローカルストレージ54には、サーバ72からダウンロードされたDependent view videoストリームなどが記録される。ローカルストレージ54に記録されているストリームもデコーダ部56に適宜供給される。
【0191】
インターネットインタフェース55は、コントローラ51からの制御に従ってネットワーク71を介してサーバ72と通信を行い、サーバ72からダウンロードしたデータをローカルストレージ54に供給する。
【0192】
サーバ72からは、光ディスク2に記録されているデータをアップデートさせるデータがダウンロードされる。ダウンロードしたDependent view videoストリームを光ディスク2に記録されているBase view videoストリームと併せて用いることができるようにすることにより、光ディスク2の内容とは異なる内容の3D再生を実現することが可能になる。
Dependent view videoストリームがダウンロードされたとき、PlayListの内容も適宜更新される。
【0193】
デコーダ部56は、ディスクドライブ52、またはローカルストレージ54から供給されたストリームをデコードし、得られたビデオ信号を表示装置3に出力する。オーディオ信号も所定の経路を介して表示装置3に出力される。
【0194】
操作入力部57は、ボタン、キー、タッチパネル、ジョグダイヤル、マウスなどの入力デバイスや、所定のリモートコマンダから送信される赤外線などの信号を受信する受信部により構成される。操作入力部57はユーザの操作を検出し、検出した操作の内容を表す信号をコントローラ51に供給する。
【0195】
図21は、デコーダ部56の構成例を示す図である。
【0196】
図21においてはビデオ信号の処理を行う構成が示されている。デコーダ部56においては、オーディオ信号のデコード処理も行われる。オーディオ信号を対象として行われたデコード処理の結果は、図示せぬ経路を介して表示装置3に出力される。
【0197】
PIDフィルタ101は、ディスクドライブ52、またはローカルストレージ54から供給されたTSがMain TSであるかSub TSであるかを、TSを構成するパケットのPIDやストリームのIDなどに基づいて識別する。PIDフィルタ101は、Main TSをバッファ102に出力し、Sub TSをバッファ103に出力する。
【0198】
PIDフィルタ104は、バッファ102に記憶されたMain TSのパケットを順次読み出し、PIDに基づいて振り分ける。
【0199】
例えば、PIDフィルタ104は、Main TSに含まれているBase view videoストリームを構成するパケットをB videoバッファ106に出力し、Dependent view videoストリームを構成するパケットをスイッチ107に出力する。
【0200】
また、PIDフィルタ104は、Main TSに含まれているBase IGストリームを構成するパケットをスイッチ114に出力し、Dependent IGストリームを構成するパケットをスイッチ118に出力する。
【0201】
PIDフィルタ104は、Main TSに含まれているBase PGストリームを構成するパケットをスイッチ122に出力し、Dependent PGストリームを構成するパケットをスイッチ126に出力する。
【0202】
図5を参照して説明したように、Base view video、Dependent view video、Base PG、Dependent PG、Base IG、Dependent IGのそれぞれのストリームがMain TSに多重化されていることがある。
【0203】
PIDフィルタ105は、バッファ103に記憶されたSub TSのパケットを順次読み出し、PIDに基づいて振り分ける。
【0204】
例えば、PIDフィルタ105は、Sub TSに含まれているDependent view videoストリームを構成するパケットをスイッチ107に出力する。
【0205】
また、PIDフィルタ105は、Sub TSに含まれているBase IGストリームを構成するパケットをスイッチ114に出力し、Dependent IGストリームを構成するパケットをスイッチ118に出力する。
【0206】
PIDフィルタ105は、Sub TSに含まれているBase PGストリームを構成するパケットをスイッチ122に出力し、Dependent PGストリームを構成するパケットをスイッチ126に出力する。
【0207】
図7を参照して説明したように、Dependent view videoストリームがSub TSに含まれていることがある。また、図6を参照して説明したように、Base PG、Dependent PG、Base IG、Dependent IGのそれぞれのストリームがSub TSに多重化されていることがある。
【0208】
スイッチ107は、PIDフィルタ104、またはPIDフィルタ105から供給されたDependent view videoストリームを構成するパケットをD videoバッファ108に出力する。
【0209】
スイッチ109は、B videoバッファ106に記憶されたBase view videoのパケットと、D videoバッファ108に記憶されたDependent view videoのパケットを、デコードのタイミングを規定する時刻情報に従って順次読み出す。Base view videoのあるピクチャのデータを格納したパケットと、それに対応するDependent view videoのピクチャのデータを格納したパケットには例えば同じ時刻情報が設定されている。
【0210】
スイッチ109は、B videoバッファ106、またはD videoバッファ108から読み出したパケットをビデオデコーダ110に出力する。
【0211】
ビデオデコーダ110は、スイッチ109から供給されたパケットをデコードし、デコードすることによって得られたBase view video、またはDependent view videoのデータをスイッチ111に出力する。
【0212】
スイッチ111は、Base view videoのパケットをデコードして得られたデータをB videoプレーン生成部112に出力し、Dependent view videoのパケットをデコードして得られたデータをD videoプレーン生成部113に出力する。
【0213】
B videoプレーン生成部112は、Base view videoのプレーンをスイッチ111から供給されたデータに基づいて生成し、合成部130に出力する。
【0214】
D videoプレーン生成部113は、Dependent view videoのプレーンをスイッチ111から供給されたデータに基づいて生成し、合成部130に出力する。
【0215】
スイッチ114は、PIDフィルタ104、またはPIDフィルタ105から供給されたBase IGストリームを構成するパケットをB IGバッファ115に出力する。
【0216】
B IGデコーダ116は、B IGバッファ115に記憶されたBase IGストリームを構成するパケットをデコードし、デコードして得られたデータをB IGプレーン生成部117に出力する。
【0217】
B IGプレーン生成部117は、Base IGのプレーンをB IGデコーダ116から供給されたデータに基づいて生成し、合成部130に出力する。
【0218】
スイッチ118は、PIDフィルタ104、またはPIDフィルタ105から供給されたDependent IGストリームを構成するパケットをD IGバッファ119に出力する。
【0219】
D IGデコーダ120は、D IGバッファ119に記憶されたDependent IGストリームを構成するパケットをデコードし、デコードして得られたデータをD IGプレーン生成部121に出力する。
【0220】
D IGプレーン生成部121は、Dependent IGのプレーンをD IGデコーダ120から供給されたデータに基づいて生成し、合成部130に出力する。
【0221】
スイッチ122は、PIDフィルタ104、またはPIDフィルタ105から供給されたBase PGストリームを構成するパケットをB PGバッファ123に出力する。
【0222】
B PGデコーダ124は、B PGバッファ123に記憶されたBase PGストリームを構成するパケットをデコードし、デコードして得られたデータをB PGプレーン生成部125に出力する。
【0223】
B PGプレーン生成部125は、Base PGのプレーンをB PGデコーダ124から供給されたデータに基づいて生成し、合成部130に出力する。
【0224】
スイッチ126は、PIDフィルタ104、またはPIDフィルタ105から供給されたDependent PGストリームを構成するパケットをD PGバッファ127に出力する。
【0225】
D PGデコーダ128は、D PGバッファ127に記憶されたDependent PGストリームを構成するパケットをデコードし、デコードして得られたデータをD PGプレーン生成部129に出力する。
【0226】
D PGプレーン生成部129は、Dependent PGのプレーンをD PGデコーダ128から供給されたデータに基づいて生成し、合成部130に出力する。
【0227】
合成部130は、B videoプレーン生成部112から供給されたBase view videoのプレーンと、B IGプレーン生成部117から供給されたBase IGのプレーンと、B PGプレーン生成部125から供給されたBase PGのプレーンを所定の順番で重ねることによって合成し、Base viewのプレーンを生成する。
【0228】
また、合成部130は、D videoプレーン生成部113から供給されたDependent view videoのプレーンと、D IGプレーン生成部121から供給されたDependent IGのプレーンと、D PGプレーン生成部129から供給されたDependent PGのプレーンを所定の順番で重ねることによって合成し、Dependent viewのプレーンを生成する。
【0229】
合成部130は、Base viewのプレーンとDependent viewのプレーンのデータを出力する。合成部130から出力されたビデオデータは表示装置3に出力され、Base viewのプレーンとDependent viewのプレーンが交互に表示されることによって3D表示が行われる。
【0230】
[T-STD(Transport stream-System. Target Decoder)の第1の例]
ここで、図21に示す構成のうちの、デコーダと、その周辺の構成について説明する。
【0231】
図22は、ビデオストリームの処理を行う構成を示す図である。
【0232】
図22において、図21に示す構成と同じ構成には同じ符号を付してある。図22においては、PIDフィルタ104、B videoバッファ106、スイッチ107、D videoバッファ108、スイッチ109、ビデオデコーダ110、およびDPB(Decoded Picture Buffer)151が示されている。図21には示していないが、ビデオデコーダ110の後段には、デコード済みのピクチャのデータが記憶されるDPB151が設けられる。
【0233】
PIDフィルタ104は、Main TSに含まれるBase view videoストリームを構成するパケットをB videoバッファ106に出力し、Dependent view videoストリームを構成するパケットをスイッチ107に出力する。
【0234】
例えば、Base view videoストリームを構成するパケットには、PID=0がPIDの固定値として割り当てられている。また、Dependent view videoストリームを構成するパケットには、0以外の固定の値がPIDとして割り当てられている。
【0235】
PIDフィルタ104は、PID=0がヘッダに記述されているパケットをB videoバッファ106に出力し、0以外のPIDがヘッダに記述されているパケットをスイッチ107に出力する。
【0236】
B videoバッファ106に出力されたパケットは、TB(Transport Buffer)1、MB(Multiplexing Buffer)1を介してVSB1に記憶される。VSB1には、Base view videoのエレメンタリストリームのデータが記憶される。
【0237】
スイッチ107には、PIDフィルタ104から出力されたパケットだけでなく、図21のPIDフィルタ105においてSub TSから抽出されたDependent view videoストリームを構成するパケットも供給される。
【0238】
スイッチ107は、PIDフィルタ104からDependent view videoストリームを構成するパケットが供給された場合、それをD videoバッファ108に出力する。
【0239】
また、スイッチ107は、PIDフィルタ105からDependent view videoストリームを構成するパケットが供給された場合、それをD videoバッファ108に出力する。
【0240】
D videoバッファ108に出力されたパケットは、TB2、MB2を介してVSB2に記憶される。VSB2には、Dependent view videoのエレメンタリストリームのデータが記憶される。
【0241】
スイッチ109は、B videoバッファ106のVSB1に記憶されたBase view videoのパケットと、D videoバッファ108のVSB2に記憶されたDependent view videoのパケットを順次読み出し、ビデオデコーダ110に出力する。
【0242】
例えば、スイッチ109は、ある時刻のBase view videoのパケットを出力した直後にそれと同じ時刻のDependent view videoのパケットを出力するといったように、同じ時刻のBase view videoのパケットとDependent view videoのパケットを続けてビデオデコーダ110に出力する。
【0243】
Base view videoのあるピクチャのデータを格納したパケットと、それに対応するDependent view videoのピクチャのデータを格納したパケットには、そのエンコード時に、PCR(Program Clock Reference)同期が確保された同じ時刻情報が設定されている。Base view videoストリームとDependent view videoストリームがそれぞれ異なるTSに含まれている場合であっても、対応するピクチャのデータを格納したパケットには同じ時刻情報が設定される。
【0244】
時刻情報はDTS(Decoding Time Stamp)、PTS(Presentation Time Stamp)であり、各PES(Packetized Elementary Stream)パケットに設定される。
【0245】
すなわち、それぞれのストリームのピクチャをエンコード順/デコード順に並べたときに同じ時刻に位置するBase view videoのピクチャとDependent view videoのピクチャが、対応するピクチャとなる。あるBase view videoのピクチャのデータを格納するPESパケットと、デコード順でそのピクチャと対応するDependent view videoのピクチャのデータを格納するPESパケットには、同じDTSが設定されている。
【0246】
また、それぞれのストリームのピクチャを表示順に並べたときに同じ時刻に位置するBase view videoのピクチャとDependent view videoのピクチャも、対応するピクチャとなる。あるBase view videoのピクチャのデータを格納するPESパケットと、表示順でそのピクチャと対応するDependent view videoのピクチャのデータを格納するPESパケットには、同じPTSが設定されている。
【0247】
後述するようにBase view videoストリームのGOP構造とDependent view videoストリームのGOP構造が同じ構造である場合、デコード順で対応するピクチャは、表示順でも対応するピクチャになる。
【0248】
パケットの転送がシリアルで行われる場合、あるタイミングでB videoバッファ106のVSB1から読み出されたパケットのDTS1と、直後のタイミングでD videoバッファ108のVSB2から読み出されたパケットのDTS2は、図22に示すように同じ時刻を表すものになる。
【0249】
スイッチ109は、B videoバッファ106のVSB1から読み出したBase view videoのパケット、または、D videoバッファ108のVSB2から読み出したDependent view videoのパケットをビデオデコーダ110に出力する。
【0250】
ビデオデコーダ110は、スイッチ109から供給されたパケットを順次デコードし、デコードして得られたBase view videoのピクチャのデータ、または、Dependent view videoのピクチャのデータをDPB151に記憶させる。
【0251】
DPB151に記憶されたデコード済みのピクチャのデータは、所定のタイミングでスイッチ111により読み出される。また、DPB151に記憶されたデコード済みのピクチャのデータは、他のピクチャの予測にビデオデコーダ110により用いられる。
【0252】
データの転送がシリアルで行われる場合、あるタイミングで出力されたBase view videoのピクチャのデータのPTSと、直後のタイミングで出力されたDependent view videoのピクチャのデータのPTSは、同じ時刻を表すものになる。
【0253】
Base view videoストリームとDependent view videoストリームは図5等を参照して説明したように1本のTSに多重化される場合があるし、図7を参照して説明したようにそれぞれ異なるTSに含まれることがある。
【0254】
図22のデコーダモデルを実装することにより、再生装置1は、Base view videoストリームとDependent view videoストリームが1本のTSに多重化されている場合であっても、それぞれ異なるTSに含まれる場合であっても、対応することが可能になる。
【0255】
例えば図23に示すように1本のTSが供給される状況しか想定されていない場合、Base view videoストリームとDependent view videoストリームがそれぞれ異なるTSに含まれる場合などには対応することができない。
【0256】
また、図22のデコーダモデルによれば、同じDTSを持つことから、Base view videoストリームとDependent view videoストリームが異なるTSに含まれる場合であっても、正しいタイミングでビデオデコーダ110にパケットを供給することができる。
【0257】
Base view video用のデコーダとDependent view video用のデコーダをそれぞれ並列に設けるようにしてもよい。この場合、Base view video用のデコーダとDependent view video用のデコーダには、それぞれ、同じ時刻のパケットが同じタイミングで供給される。
【0258】
[第2の例]
図24は、ビデオストリームの処理を行う他の構成を示す図である。
【0259】
図24においては、図22の構成に加えて、スイッチ111、L videoプレーン生成部161、およびR videoプレーン生成部162が示されている。また、PIDフィルタ105もスイッチ107の前段に示されている。重複する説明については適宜省略する。
【0260】
L videoプレーン生成部161は、L view videoのプレーンを生成するものであり、図21のB videoプレーン生成部112に替えて設けられる。
【0261】
R videoプレーン生成部162は、R view videoのプレーンを生成するものであり、図21のD videoプレーン生成部113に替えて設けられる。
【0262】
この例においては、スイッチ111は、L viewのビデオデータとR viewのビデオデータを識別して出力する必要があることになる。
【0263】
すなわち、スイッチ111は、Base view videoのパケットをデコードして得られたデータがL viewとR viewのいずれのビデオデータであるのかを識別する必要がある。
【0264】
また、スイッチ111は、Dependent view videoのパケットをデコードして得られたデータがL viewとR viewのいずれのビデオデータであるのかを識別する必要がある。
【0265】
L viewとR viewの識別には、図12と図14を参照して説明したview_typeが用いられる。例えば、コントローラ51は、PlayListファイルに記述されているview_typeをスイッチ111に出力する。
【0266】
view_typeの値が0である場合、スイッチ111は、DPB151に記憶されたデータのうち、PID=0で識別されるBase view videoのパケットをデコードして得られたデータをL videoプレーン生成部161に出力する。上述したように、view_typeの値の0は、Base view videoストリームがL viewのストリームであることを表す。
【0267】
この場合、スイッチ111は、0以外のPIDで識別されるDependent view videoのパケットをデコードして得られたデータをR videoプレーン生成部162に出力する。
【0268】
一方、view_typeの値が1である場合、スイッチ111は、DPB151に記憶されたデータのうち、PID=0で識別されるBase view videoのパケットをデコードして得られたデータをR videoプレーン生成部162に出力する。view_typeの値の1は、Base view videoストリームがR viewのストリームであることを表す。
【0269】
この場合、スイッチ111は、0以外のPIDで識別されるDependent view videoのパケットをデコードして得られたデータをL videoプレーン生成部161に出力する。
【0270】
L videoプレーン生成部161は、L view videoのプレーンをスイッチ111から供給されたデータに基づいて生成し、合成部130に出力する。
【0271】
R videoプレーン生成部162は、R view videoのプレーンをスイッチ111から供給されたデータに基づいて生成し、合成部130に出力する。
【0272】
H.264 AVC/MVCでエンコードされたBase view video、Dependent view videoのエレメンタリストリーム内には、L viewであるのか、またはR viewであるのかを表す情報(フィールド)が存在しない。
【0273】
従って、view_typeをPlayListファイルに設定しておくことにより、記録装置は、Base view videoストリームとDependent view videoストリームがそれぞれL viewとR viewのいずれのストリームであるのかを再生装置1に識別させることが可能になる。
【0274】
再生装置1は、Base view videoストリームとDependent view videoストリームがそれぞれL viewとR viewのいずれのストリームであるのかを識別し、識別結果に応じて出力先を切り替えることができる。
【0275】
IG、PGのプレーンについてもそれぞれL viewとR viewが用意されている場合、ビデオストリームのL viewとR viewを区別できることにより、再生装置1はL view同士、R view同士のプレーンの合成を容易に行うことができる。
【0276】
上述したように、HDMIケーブルを介してビデオ信号を出力する場合、L viewの信号とR viewの信号とをそれぞれ区別した上で出力することが要求されるが、再生装置1はその要求に対応することが可能になる。
【0277】
DPB151に記憶されたBase view videoのパケットをデコードして得られたデータと、Dependent view videoのパケットをデコードして得られたデータの識別が、PIDではなく、view_idに基づいて行われるようにしてもよい。
【0278】
H.264 AVC/MVCでのエンコード時、エンコード結果のストリームを構成するAccess Unitにはview_idが設定される。view_idにより、各Access Unitがどのview componentのユニットであるのかが識別可能になっている。
【0279】
図25は、Access Unitの例を示す図である。
【0280】
図25のAccess Unit#1はBase view videoのデータを含むユニットである。Access Unit#2はDependent view videoのデータを含むユニットである。Access Unitはピクチャ単位でのアクセスが可能になるように、例えば1枚のピクチャのデータをまとめたユニットである。
【0281】
H.264 AVC/MVCでのエンコードが行われることによって、Base view videoとDependent view videoの各ピクチャのデータは、このようなAccess Unitに格納される。H.264 AVC/MVCでのエンコード時、Access Unit#2内に示すように、それぞれのview componentにはMVCヘッダが付加される。MVCヘッダにはview_idが含まれる。
【0282】
図25の例の場合、Access Unit#2については、そのAccess Unitに格納されるview componentがDependent view videoであることをview_idから識別することが可能になる。
【0283】
一方、図25に示すように、Access Unit#1に格納されたview componentであるBase view videoにはMVCヘッダが付加されていない。
【0284】
上述したようにBase view videoストリームは2D再生にも用いられるデータである。従って、それとの互換性を確保するために、Base view videoにはエンコード時にMVCヘッダが付加されない。あるいは、一度付加されたMVCヘッダが除去される。記録装置によるエンコードについては後述する。
【0285】
再生装置1には、MVCヘッダが付加されていないview componentについては、そのview_idが0であり、view componentをBase view videoであるとして認識するように定義(設定)されている。Dependent view videoには、0以外の値がview_idとしてエンコード時に設定される。
【0286】
これにより、再生装置1は、0であるとして認識したview_idに基づいてBase view videoを識別することができ、実際に設定されている0以外のview_idに基づいてDependent view videoを識別することができる。
【0287】
図24のスイッチ111においては、Base view videoのパケットをデコードして得られたデータとDependent view videoのパケットをデコードして得られたデータの識別が、このようなview_idに基づいて行われるようにしてもよい。
【0288】
[第3の例]
図26は、ビデオストリームの処理を行うさらに他の構成を示す図である。
【0289】
図26の例においては、図24のL videoプレーン生成部161に替えてB videoプレーン生成部112が設けられ、R videoプレーン生成部162に替えてD videoプレーン生成部113が設けられている。B videoプレーン生成部112とD videoプレーン生成部113の後段にはスイッチ171が設けられている。図26に示す構成においても、view_typeに基づいてデータの出力先が切り替えられるようになされている。
【0290】
スイッチ111は、DPB151に記憶されたデータのうち、Base view videoのパケットをデコードして得られたデータをB videoプレーン生成部112に出力する。また、スイッチ111は、Dependent view videoのパケットをデコードして得られたデータをD videoプレーン生成部113に出力する。
【0291】
Base view videoのパケットをデコードして得られたデータと、Dependent view videoのパケットをデコードして得られたデータは、上述したようにPID、またはview_idに基づいて識別される。
【0292】
B videoプレーン生成部112は、Base view videoのプレーンをスイッチ111から供給されたデータに基づいて生成し、出力する。
【0293】
D videoプレーン生成部113は、Dependent view videoのプレーンをスイッチ111から供給されたデータに基づいて生成し、出力する。
【0294】
スイッチ171に対しては、PlayListファイルに記述されているview_typeがコントローラ51から供給されている。
【0295】
view_typeの値が0である場合、スイッチ171は、B videoプレーン生成部112から供給されたBase view videoのプレーンをL view videoのプレーンとして合成部130に出力する。view_typeの値の0は、Base view videoストリームがL viewのストリームであることを表す。
【0296】
また、この場合、スイッチ171は、D videoプレーン生成部113から供給されたDependent view videoのプレーンをR view videoのプレーンとして合成部130に出力する。
【0297】
一方、view_typeの値が1である場合、スイッチ171は、D videoプレーン生成部113から供給されたDependent view videoのプレーンをL view videoのプレーンとして合成部130に出力する。view_typeの値の1は、Base view videoストリームがR viewのストリームであることを表す。
【0298】
また、この場合、スイッチ171は、B videoプレーン生成部112から供給されたBase view videoのプレーンをR view videoのプレーンとして合成部130に出力する。
【0299】
図26の構成によっても、再生装置1は、L viewとR viewを識別し、識別結果に応じて出力先を切り替えることができる。
【0300】
[プレーン合成モデルの第1の例]
図27は、図21に示す構成のうちの、合成部130と、その前段の構成を示す図である。
【0301】
図27においても、図21に示す構成と同じ構成には同じ符号を付してある。
【0302】
スイッチ181には、Main TS、またはSub TSに含まれるIGストリームを構成するパケットが入力される。スイッチ181に入力されるIGストリームを構成するパケットには、Base viewのパケットとDependent viewのパケットが含まれる。
【0303】
スイッチ182には、Main TS、またはSub TSに含まれるPGストリームを構成するパケットが入力される。スイッチ182に入力されるPGストリームを構成するパケットには、Base viewのパケットとDependent viewのパケットが含まれる。
【0304】
図5等を参照して説明したように、IG、PGについても、3D表示を行うためのBase viewのストリームとDependent viewのストリームが用意されている。
【0305】
Base viewのIGがBase view videoと合成して表示され、Dependent viewのIGがDependent view videoと合成して表示されることにより、ユーザは、ビデオだけでなく、ボタンやアイコンなどを3Dで見ることになる。
【0306】
また、Base viewのPGがBase view videoと合成して表示され、Dependent viewのPGがDependent view videoと合成して表示されることにより、ユーザは、ビデオだけでなく、字幕のテキストなどを3Dで見ることになる。
【0307】
スイッチ181は、Base IGストリームを構成するパケットをB IGデコーダ116に出力し、Dependent IGストリームを構成するパケットをD IGデコーダ120に出力する。スイッチ181は、図21のスイッチ114とスイッチ118の機能を有する。図27においては、各バッファの図示を省略している。
【0308】
B IGデコーダ116は、スイッチ181から供給されたBase IGストリームを構成するパケットをデコードし、デコードして得られたデータをB IGプレーン生成部117に出力する。
【0309】
B IGプレーン生成部117は、Base IGのプレーンをB IGデコーダ116から供給されたデータに基づいて生成し、合成部130に出力する。
【0310】
D IGデコーダ120は、スイッチ181から供給されたDependent IGストリームを構成するパケットをデコードし、デコードして得られたデータをD IGプレーン生成部121に出力する。Base IGストリームとDependent IGストリームが1つのデコーダによりデコードされるようにしてもよい。
【0311】
D IGプレーン生成部121は、Dependent IGのプレーンをD IGデコーダ120から供給されたデータに基づいて生成し、合成部130に出力する。
【0312】
スイッチ182は、Base PGストリームを構成するパケットをB PGデコーダ124に出力し、Dependent PGストリームを構成するパケットをD PGデコーダ128に出力する。スイッチ182は、図21のスイッチ122とスイッチ126の機能を有する。
【0313】
B PGデコーダ124は、スイッチ182から供給されたBase PGストリームを構成するパケットをデコードし、デコードして得られたデータをB PGプレーン生成部125に出力する。
【0314】
B PGプレーン生成部125は、Base PGのプレーンをB PGデコーダ124から供給されたデータに基づいて生成し、合成部130に出力する。
【0315】
D PGデコーダ128は、スイッチ182から供給されたDependent PGストリームを構成するパケットをデコードし、デコードして得られたデータをD PGプレーン生成部129に出力する。Base PGストリームとDependent PGストリームが1つのデコーダによりデコードされるようにしてもよい。
【0316】
D PGプレーン生成部129は、Dependent PGのプレーンをD PGデコーダ128から供給されたデータに基づいて生成し、合成部130に出力する。
【0317】
ビデオデコーダ110は、スイッチ109(図22等)から供給されたパケットを順次デコードし、デコードして得られたBase view videoのデータ、または、Dependent view videoのデータをスイッチ111に出力する。
【0318】
スイッチ111は、Base view videoのパケットをデコードして得られたデータをB videoプレーン生成部112に出力し、Dependent view videoのパケットをデコードして得られたデータをD videoプレーン生成部113に出力する。
【0319】
B videoプレーン生成部112は、Base view videoのプレーンをスイッチ111から供給されたデータに基づいて生成し、出力する。
【0320】
D videoプレーン生成部113は、Dependent view videoのプレーンをスイッチ111から供給されたデータに基づいて生成し、出力する。
【0321】
合成部130は、加算部191乃至194、およびスイッチ195から構成される。
【0322】
加算部191は、D PGプレーン生成部129から供給されたDependent PGのプレーンを、D videoプレーン生成部113から供給されたDependent view videoのプレーンの上に重ねるようにして合成し、合成結果を加算部193に出力する。D PGプレーン生成部129から加算部191に供給されるDependent PGのプレーンには、色情報の変換処理(CLUT(Color Look Up Table)処理)が施される。
【0323】
加算部192は、B PGプレーン生成部125から供給されたBase PGのプレーンを、B videoプレーン生成部112から供給されたBase view videoのプレーンの上に重ねるようにして合成し、合成結果を加算部194に出力する。B PGプレーン生成部125から加算部192に供給されるBase PGのプレーンには、色情報の変換処理やオフセット値を用いた補正処理が施される。
【0324】
加算部193は、D IGプレーン生成部121から供給されたDependent IGのプレーンを、加算部191による合成結果の上に重ねるようにして合成し、合成結果をDependent viewのプレーンとして出力する。D IGプレーン生成部121から加算部193に供給されるDependent IGのプレーンには、色情報の変換処理が施される。
【0325】
加算部194は、B IGプレーン生成部117から供給されたBase IGのプレーンを、加算部192による合成結果の上に重ねるようにして合成し、合成結果をBase viewのプレーンとして出力する。D IGプレーン生成部121から加算部194に供給されるBase IGのプレーンには、色情報の変換処理やオフセット値を用いた補正処理が施される。
【0326】
このようにして生成されたBase viewのプレーンとDependent viewのプレーンに基づいて表示される画像は、ボタンやアイコンが前面に見え、その下(奥行き方向)に字幕のテキストが見え、その下にビデオが見えるような画像になる。
【0327】
スイッチ195は、view_typeの値が0である場合、Base viewのプレーンをL viewのプレーンとして出力し、Dependent viewのプレーンをR viewのプレーンとして出力する。スイッチ195にはコントローラ51からview_typeが供給される。
【0328】
また、スイッチ195は、view_typeの値が1である場合、Base viewのプレーンをR viewのプレーンとして出力し、Dependent viewのプレーンをL viewのプレーンとして出力する。供給されたプレーンのうちのどのプレーンがBase viewのプレーンであるのかDependent viewのプレーンであるのかは、PIDやview_idに基づいて識別される。
【0329】
このように、再生装置1においては、Base viewのプレーン同士、Dependent viewのプレーン同士、video、IG、PGの各プレーンの合成が行われる。
【0330】
video、IG、PGの全てのプレーンの合成が終わった段階で、Base viewのプレーン同士を合成した結果がL viewであるのか、またはR viewであるのかがview_typeに基づいて判断され、R viewのプレーンとL viewのプレーンがそれぞれ出力される。
【0331】
また、video、IG、PGの全てのプレーンの合成が終わった段階で、Dependent viewのプレーン同士を合成した結果がL viewであるのか、またはR viewであるのかがview_typeに基づいて判断され、R viewのプレーンとL viewのプレーンがそれぞれ出力される。
【0332】
[第2の例]
図28は、合成部130と、その前段の構成を示す図である。
【0333】
図28に示す構成のうち、図27に示す構成と同じ構成には同じ符号を付してある。図28においては、合成部130の構成が図27の構成と異なる。また、スイッチ111の動作が、図27のスイッチ111の動作と異なる。B videoプレーン生成部112に替えてL videoプレーン生成部161が設けられ、D videoプレーン生成部113に替えてR videoプレーン生成部162が設けられている。重複する説明については省略する。
【0334】
スイッチ111と、合成部130のスイッチ201およびスイッチ202に対しては、同じview_typeの値がコントローラ51から供給される。
【0335】
スイッチ111は、図24のスイッチ111と同様に、Base view videoのパケットをデコードして得られたデータと、Dependent view videoのパケットをデコードして得られたデータの出力先をview_typeに基づいて切り替える。
【0336】
例えば、view_typeの値が0である場合、スイッチ111は、Base view videoのパケットをデコードして得られたデータをL videoプレーン生成部161に出力する。この場合、スイッチ111は、Dependent view videoのパケットをデコードして得られたデータをR videoプレーン生成部162に出力する。
【0337】
一方、view_typeの値が1である場合、スイッチ111は、Base view videoのパケットをデコードして得られたデータをR videoプレーン生成部162に出力する。この場合、スイッチ111は、Dependent view videoのパケットをデコードして得られたデータをL videoプレーン生成部161に出力する。
【0338】
L videoプレーン生成部161は、L view videoのプレーンをスイッチ111から供給されたデータに基づいて生成し、合成部130に出力する。
【0339】
R videoプレーン生成部162は、R view videoのプレーンをスイッチ111から供給されたデータに基づいて生成し、合成部130に出力する。
【0340】
合成部130は、スイッチ201、スイッチ202、加算部203乃至206から構成される。
【0341】
スイッチ201は、B IGプレーン生成部117から供給されたBase IGのプレーンとD IGプレーン生成部121から供給されたDependent IGのプレーンの出力先をview_typeに基づいて切り替える。
【0342】
例えば、view_typeの値が0である場合、スイッチ201は、B IGプレーン生成部117から供給されたBase IGのプレーンをL viewのプレーンとして加算部206に出力する。
この場合、スイッチ201は、D IGプレーン生成部121から供給されたDependent IGのプレーンをR viewのプレーンとして加算部205に出力する。
【0343】
一方、view_typeの値が1である場合、スイッチ201は、D IGプレーン生成部121から供給されたDependent IGのプレーンをL viewのプレーンとして加算部206に出力する。この場合、スイッチ201は、B IGプレーン生成部117から供給されたBase IGのプレーンをR viewのプレーンとして加算部205に出力する。
【0344】
スイッチ202は、B PGプレーン生成部125から供給されたBase PGのプレーンとD PGプレーン生成部129から供給されたDependent PGのプレーンの出力先をview_typeに基づいて切り替える。
【0345】
例えば、view_typeの値が0である場合、スイッチ202は、B PGプレーン生成部125から供給されたBase PGのプレーンをL viewのプレーンとして加算部204に出力する。
この場合、スイッチ202は、D PGプレーン生成部129から供給されたDependent PGのプレーンをR viewのプレーンとして加算部203に出力する。
【0346】
一方、view_typeの値が1である場合、スイッチ202は、D PGプレーン生成部129から供給されたDependent PGのプレーンをL viewのプレーンとして加算部204に出力する。この場合、スイッチ202は、B PGプレーン生成部125から供給されたBase PGのプレーンをR viewのプレーンとして加算部203に出力する。
【0347】
加算部203は、スイッチ202から供給されたR viewのPGのプレーンを、R videoプレーン生成部162から供給されたR view videoのプレーンの上に重ねるようにして合成し、合成結果を加算部205に出力する。
【0348】
加算部204は、スイッチ202から供給されたL viewのPGのプレーンを、L videoプレーン生成部161から供給されたL view videoのプレーンの上に重ねるようにして合成し、合成結果を加算部206に出力する。
【0349】
加算部205は、スイッチ201から供給されたR viewのIGのプレーンを、加算部203による合成結果のプレーンの上に重ねるようにして合成し、合成結果をR viewのプレーンとして出力する。
【0350】
加算部206は、スイッチ201から供給されたL viewのIGのプレーンを、加算部204による合成結果のプレーンの上に重ねるようにして合成し、合成結果をL viewのプレーンとして出力する。
【0351】
このように、再生装置1においては、video、IG、PGのそれぞれのBase viewのプレーンとDependent viewのプレーンについて、他のプレーンとの合成の前に、いずれのプレーンがL viewであるのか、またはR viewであるのかが判断される。
【0352】
その判断が行われた後、L viewのプレーン同士、R viewのプレーン同士を合成するように、video、IG、PGの各プレーンの合成が行われる。
【0353】
[記録装置の構成例]
図29は、ソフト製作処理部301の構成例を示すブロック図である。
【0354】
ビデオエンコーダ311は、図3のMVCエンコーダ11と同様の構成を有している。ビデオエンコーダ311は、複数の映像データをH.264 AVC/MVCでエンコードすることによってBase view videoストリームとDependent view videoストリームを生成し、バッファ312に出力する。
【0355】
例えば、ビデオエンコーダ311は、エンコード時、同じPCRを基準としてDTS、PTSを設定する。すなわち、ビデオエンコーダ311は、あるBase view videoのピクチャのデータを格納するPESパケットと、デコード順でそのピクチャと対応するDependent view videoのピクチャのデータを格納するPESパケットに同じDTSを設定する。
【0356】
また、ビデオエンコーダ311は、あるBase view videoのピクチャのデータを格納するPESパケットと、表示順でそのピクチャと対応するDependent view videoのピクチャのデータを格納するPESパケットに同じPTSを設定する。
【0357】
ビデオエンコーダ311は、後述するように、デコード順で対応するBase view videoのピクチャとBase view videoのピクチャに、復号に関する補助的な情報である付加情報としてそれぞれ同じ情報を設定する。
【0358】
さらに、ビデオエンコーダ311は、後述するように、表示順で対応するBase view videoのピクチャとBase view videoのピクチャに、ピクチャの出力順を表すPOCの値としてそれぞれ同じ値を設定する。
【0359】
また、ビデオエンコーダ311は、後述するように、Base view videoストリームのGOP構造とDependent view videoストリームのGOP構造とを一致させるようにしてエンコードを行う。
【0360】
オーディオエンコーダ313は、入力されたオーディオストリームをエンコードし、得られたデータをバッファ314に出力する。オーディオエンコーダ313には、Base view video、Dependent view videoストリームとともにディスクに記録させるオーディオストリームが入力される。
【0361】
データエンコーダ315は、PlayListファイルなどの、ビデオ、オーディオ以外の上述した各種のデータをエンコードし、エンコードして得られたデータをバッファ316に出力する。
【0362】
データエンコーダ315は、ビデオエンコーダ311によるエンコードに応じて、Base view videoストリームがL viewのストリームであるのか、R viewのストリームであるのかを表すview_typeをPlayListファイルに設定する。Base view videoストリームの種類ではなく、Dependent view videoストリームがL viewのストリームであるのか、R viewのストリームであるのかを表す情報が設定されるようにしてもよい。
【0363】
また、データエンコーダ315は、後述するEP_mapを、Base view videoストリームのClip Informationファイルと、Dependent view videoストリームのClip Informationファイルにそれぞれ設定する。デコード開始位置としてEP_mapに設定されたBase view videoストリームのピクチャと、Dependent view videoストリームのピクチャは対応するピクチャになる。
【0364】
多重化部317は、それぞれのバッファに記憶されたビデオデータ、オーディオデータ、および、ストリーム以外のデータを同期信号と共に多重化し、誤り訂正符号化部318に出力する。
【0365】
誤り訂正符号化部318は、エラー訂正用のコードを多重化部317により多重化されたデータに付加する。
【0366】
変調部319は、誤り訂正符号化部318から供給されたデータに対して変調を施し、出力する。変調部319の出力は、再生装置1において再生可能な光ディスク2に記録されるソフトウェアとなる。
【0367】
このような構成を有するソフト製作処理部301が記録装置に設けられる。
【0368】
図30は、ソフト製作処理部301を含む構成の例を示す図である。
【0369】
図30に示す構成の一部が記録装置内に設けられることもある。
【0370】
ソフト製作処理部301により生成された記録信号はプリマスタリング処理部331においてマスタリング処理が施され、光ディスク2に記録すべきフォーマットの信号が生成される。生成された信号は原盤記録部333に供給される。
【0371】
記録用原盤製作部332においては、ガラスなどよりなる原盤が用意され、その上に、フォトレジストなどよりなる記録材料が塗布される。これにより、記録用原盤が製作される。
【0372】
原盤記録部333において、プリマスタリング処理部331から供給された記録信号に対応してレーザビームが変調され、原盤上のフォトレジストに照射される。これにより、原盤上のフォトレジストが記録信号に対応して露光される。その後、この原盤を現像し、原盤上にピットを出現させることが行われる。
【0373】
金属原盤製作部334において、原盤に電鋳等の処理が施され、ガラス原盤上のピットを転写した金属原盤が製作される。この金属原盤から、さらに金属スタンパが製作され、これが成形用金型とされる。
【0374】
成形処理部335において、成形用金型に、インジェクションなどによりPMMA(アクリル)またはPC(ポリカーボネート)などの材料を注入し、固定化させることが行われる。
あるいは、金属スタンパ上に2P(紫外線硬化樹脂)などを塗布した後、紫外線を照射して硬化させることが行われる。これにより、金属スタンパ上のピットを、樹脂よりなるレプリカ上に転写することができる。
【0375】
成膜処理部336において、レプリカ上に、反射膜が蒸着あるいはスパッタリングなどにより形成される。あるいはまた、レプリカ上に、反射膜がスピンコートにより形成される。
【0376】
後加工処理部337において、このディスクに対して内外径の加工が施され、2枚のディスクを張り合わせるなどの必要な処置が施される。さらに、ラベルを貼り付けたり、ハブを取り付けたりした後、カートリッジに挿入される。このようにして再生装置1によって再生可能なデータが記録された光ディスク2が完成する。
【0377】
<第2の実施の形態>
[H.264 AVC/MVC Profileビデオストリームの運用1]
光ディスク2の規格であるBD-ROM規格においては、上述したように、H.264 AVC/MVC Profileを採用することで3D映像の符号化が実現される。
【0378】
また、BD-ROM規格においては、Base view videoストリームをL viewの映像のストリームとし、Dependent view videoストリームをR viewの映像のストリームとする。
【0379】
Base view videoをH.264 AVC/High Profileビデオストリームとして符号化することにより、過去のプレーヤや2D再生のみに対応したプレーヤにおいても、3D対応のディスクである光ディスク2を再生することが可能になる。すなわち、下位互換性を確保することが可能になる。
【0380】
具体的には、Base view videoのストリームのみをH.264 AVC/MVC非対応デコーダにおいてもデコード(再生)可能になる。つまり、Base view videoストリームは、既存の2DのBDプレーヤにおいても必ず再生可能なストリームになる。
【0381】
また、Base view videoストリームを、2D再生と3D再生において共通して使用することにより、オーサリング時の負荷の軽減を図ることが可能になる。オーサリング側は、AVストリームに関しては、従来行っていた作業に加えて、Dependent view videoストリームを用意すれば3D対応のディスクを製作することが可能になる。
【0382】
図31は、記録装置に設けられる3D video TS生成部の構成例を示す図である。
【0383】
図31の3D video TS生成部は、MVCエンコーダ401、MVCヘッダ除去部402、およびマルチプレクサ403から構成される。図2を参照して説明したようにして撮影されたL viewの映像#1のデータと、R viewの映像#2のデータがMVCエンコーダ401に入力される。
【0384】
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ストリームを生成し、出力する。
【0385】
MVCエンコーダ401から出力されたBase view videoストリームは、Base view videoの各ピクチャのデータを格納したAccess Unitからなる。また、MVCエンコーダ401から出力されたDependent view videoストリームは、Dependent view videoの各ピクチャのデータを格納したAccess Unitからなる。
【0386】
Base view videoストリームを構成する各Access UnitとDependent view videoストリームを構成する各Access Unitには、格納しているview componentを識別するためのview_idを記述したMVCヘッダが含まれている。
【0387】
Dependent view videoのMVCヘッダに記述されるview_idの値としては、1以上の固定値が用いられる。図32、図33の例においても同様である。
【0388】
すなわち、MVCエンコーダ401は、図3のMVCエンコーダ11とは異なり、MVCヘッダを付加した形でBase view videoとDependent view videoのそれぞれのストリームを生成し、出力するエンコーダである。図3のMVCエンコーダ11においては、H.264 AVC/MVCで符号化されたDependent view videoのみにMVCヘッダが付加されている。
【0389】
MVCエンコーダ401から出力されたBase view videoストリームはMVCヘッダ除去部402に供給され、Dependent view videoストリームはマルチプレクサ403に供給される。
【0390】
MVCヘッダ除去部402は、Base view videoストリームを構成する各Access Unitに含まれるMVCヘッダを除去する。MVCヘッダ除去部402は、MVCヘッダを除去したAccess Unitから構成されるBase view videoストリームをマルチプレクサ403に出力する。
【0391】
マルチプレクサ403は、MVCヘッダ除去部402から供給されたBase view videoストリームと、MVCエンコーダ401から供給されたDependent view videoストリームを含むTSを生成し、出力する。図31の例においては、Base view videoストリームを含むTSとDependent view videoストリームを含むTSがそれぞれ出力されているが、上述したように同じTSに多重化されて出力されることもある。
【0392】
このように、実装の仕方によっては、L viewの映像とR viewの映像を入力とし、MVCヘッダ付のBase view videoとDependent view videoのそれぞれのストリームを出力するMVCエンコーダも考えられる。
【0393】
なお、図31に示す構成全体を図3に示すようにMVCエンコーダの中に含めることも可能である。図32、図33に示す構成についても同様である。
【0394】
図32は、記録装置に設けられる3D video TS生成部の他の構成例を示す図である。
【0395】
図32の3D video TS生成部は、混合処理部411、MVCエンコーダ412、分離部413、MVCヘッダ除去部414、およびマルチプレクサ415から構成される。L viewの映像#1のデータと、R viewの映像#2のデータが混合処理部411に入力される。
【0396】
混合処理部411は、L viewの各ピクチャとR viewの各ピクチャを符号化順に並べる。
Dependent view videoの各ピクチャは対応するBase view videoのピクチャを参照して符号化が行われるから、符号化順に並べた結果は、L viewのピクチャとR viewのピクチャが交互に並ぶものになる。
【0397】
混合処理部411は、符号化順に並べたL viewのピクチャとR viewのピクチャをMVCエンコーダ412に出力する。
【0398】
MVCエンコーダ412は、混合処理部411から供給された各ピクチャをH.264 AVC/MVCで符号化し、符号化して得られたストリームを分離部413に出力する。MVCエンコーダ412から出力されたストリームには、Base view videoストリームとDependent view videoストリームが多重化されている。
【0399】
MVCエンコーダ412から出力されたストリームに含まれるBase view videoストリームは、Base view videoの各ピクチャのデータを格納したAccess Unitからなる。また、MVCエンコーダ412から出力されたストリームに含まれるDependent view videoストリームは、Dependent view videoの各ピクチャのデータを格納したAccess Unitからなる。
【0400】
Base view videoストリームを構成する各Access UnitとDependent view videoストリームを構成する各Access Unitには、格納しているview componentを識別するためのview_idを記述したMVCヘッダが含まれている。
【0401】
分離部413は、MVCエンコーダ412から供給されたストリームに多重化されているBase view videoストリームとDependent view videoストリームを分離し、出力する。分離部413から出力されたBase view videoストリームはMVCヘッダ除去部414に供給され、Dependent view videoストリームはマルチプレクサ415に供給される。
【0402】
MVCヘッダ除去部414は、分離部413から供給されたBase view videoストリームを構成する各Access Unitに含まれるMVCヘッダを除去する。MVCヘッダ除去部414は、MVCヘッダを除去したAccess Unitから構成されるBase view videoストリームをマルチプレクサ415に出力する。
【0403】
マルチプレクサ415は、MVCヘッダ除去部414から供給されたBase view videoストリームと、分離部413から供給されたDependent view videoストリームを含むTSを生成し、出力する。
【0404】
図33は、記録装置に設けられる3D video TS生成部のさらに他の構成例を示す図である。
【0405】
図33の3D video TS生成部は、AVCエンコーダ421、MVCエンコーダ422、およびマルチプレクサ423から構成される。L viewの映像#1のデータはAVCエンコーダ421に入力され、R viewの映像#2のデータはMVCエンコーダ422に入力される。
【0406】
AVCエンコーダ421は、L viewの映像#1のデータをH.264/AVCで符号化し、符号化して得られたAVCビデオストリームをBase view videoストリームとしてMVCエンコーダ422とマルチプレクサ423に出力する。AVCエンコーダ421から出力されたBase view videoストリームを構成する各Access UnitにはMVCヘッダが含まれていない。
【0407】
MVCエンコーダ422は、AVCエンコーダ421から供給されたBase view videoストリーム(AVCビデオストリーム)をデコードし、L viewの映像#1のデータを生成する。
【0408】
また、MVCエンコーダ422は、デコードして得られたL viewの映像#1のデータと、外部から入力されたR viewの映像#2のデータに基づいてDependent view videoストリームを生成し、マルチプレクサ423に出力する。MVCエンコーダ422から出力されたDependent view videoストリームを構成する各Access UnitにはMVCヘッダが含まれている。
【0409】
マルチプレクサ423は、AVCエンコーダ421から供給されたBase view videoストリームと、MVCエンコーダ422から供給されたDependent view videoストリームを含むTSを生成し、出力する。
【0410】
図33のAVCエンコーダ421が図3のH.264/AVCエンコーダ21の機能を有し、MVCエンコーダ422が図3のH.264/AVCデコーダ22とDependent view videoエンコーダ24の機能を有することになる。また、マルチプレクサ423が図3のマルチプレクサ25の機能を有することになる。
【0411】
このような構成を有する3D video TS生成部を記録装置内に設けることにより、Base view videoのデータを格納するAccess Unitに対するMVCヘッダの符号化を禁止することが可能になる。また、Dependent view videoのデータを格納するAccess Unitに、1以上のview_idが設定されたMVCヘッダが含まれるようにすることができる。
【0412】
図34は、Access Unitをデコードする再生装置1側の構成を示す図である。
【0413】
図34においては、図22等を参照して説明したスイッチ109とビデオデコーダ110が示されている。Base view videoのデータを含むAccess Unit#1と、Dependent view videoのデータを含むAccess Unit#2がバッファから読み出され、スイッチ109に供給される。
【0414】
Base view videoを参照して符号化が行われているから、Dependent view videoを正しく復号するには、まず、対応するBase view videoを復号しておくことが必要になる。
【0415】
H.264/MVC規格においては、デコーダ側が、MVCヘッダに含まれるview_idを利用して各Access Unitの復号順序を算出するようになされている。また、Base view videoには、そのエンコード時に、常に最小の値をview_idの値として設定することが定められている。
デコーダは、最小のview_idが設定されているMVCヘッダを含むAccess Unitから復号を開始することで、Base view videoとDependent view videoを正しい順序で復号することができるようになされている。
【0416】
ところで、再生装置1のビデオデコーダ110に供給される、Base view videoを格納したAccess UnitにはMVCヘッダの符号化が禁止されている。
【0417】
そこで、再生装置1においては、MVCヘッダがないAccess Unitに格納されているview componentについては、そのview_idが0であるとして認識するように定義されている。
【0418】
これにより、再生装置1は、0であるとして認識したview_idに基づいてBase view videoを識別することができ、実際に設定されている0以外のview_idに基づいてDependent view videoを識別することができる。
【0419】
図34のスイッチ109は、最小の値である0がview_idとして設定されていると認識したAccess Unit#1をまずビデオデコーダ110に出力し、デコードを行わせる。
【0420】
また、スイッチ109は、Access Unit#1のデコードが終了した後、0より大きい固定値であるYがview_idとして設定されているAccess Unit#2をビデオデコーダ110に出力し、デコードを行わせる。Access Unit#2に格納されているDependent view videoのピクチャは、Access Unit#1に格納されているBase view videoのピクチャに対応するピクチャである。
【0421】
このように、Base view videoを格納したAccess Unitに対するMVCヘッダの符号化を禁止することにより、光ディスク2に記録されているBase view videoストリームを、従来のプレーヤにおいても再生可能なストリームとすることができる。
【0422】
BD-ROM規格を拡張したBD-ROM 3D規格のBase view videoストリームの条件として、従来のプレーヤにおいても再生可能なストリームとするような条件が決められた場合であっても、その条件を満たすようにすることができる。
【0423】
例えば、図35に示すように、Base view videoとDependent view videoにそれぞれMVCヘッダを付加しておき、Base view videoから先にデコードが行われるようにした場合、そのBase view videoは従来のプレーヤにおいては再生できないものになる。従来のプレーヤが搭載するH.264/AVCデコーダにとっては、MVCヘッダは未定義のデータである。そのような未定義のデータが入力された場合、デコーダによってはそれを無視することができず、処理が破綻するおそれがある。
【0424】
なお、図35においては、Base view videoのview_idはX、Dependent view videoのview_idは、Xより大きいYである。
【0425】
また、MVCヘッダの符号化を禁止した場合であっても、Base view videoのview_idを0としてみなすように定義することにより、再生装置1にBase view videoのデコードを先に行わせ、その後に、対応するDependent view videoのデコードを行わせることができる。
すなわち、正しい順序でデコードを行わせることが可能になる。
【0426】
[運用2]
GOP構造について
H.264/AVC規格には、MPEG-2ビデオ規格におけるGOP(Group Of Picture)構造が定義されていない。
【0427】
そこで、H.264/AVCビデオストリームを扱うBD-ROM規格においては、H.264/AVCビデオストリームのGOP構造を定義し、ランダムアクセスなどのGOP構造を利用した各種の機能を実現している。
【0428】
H.264 AVC/MVCで符号化して得られたビデオストリームであるBase view videoストリームとDependent view videoストリームにも、H.264/AVCビデオストリームと同様にGOP構造の定義が存在しない。
【0429】
Base view videoストリームはH.264/AVCビデオストリームである。従って、Base view videoストリームのGOP構造は、BD-ROM規格において定義されたH.264/AVCビデオストリームのGOP構造と同じ構造になる。
【0430】
Dependent view videoストリームのGOP構造についても、Base view videoストリームのGOP構造、すなわち、BD-ROM規格において定義されたH.264/AVCビデオストリームのGOP構造と同じ構造として定義する。
【0431】
BD-ROM規格において定義されたH.264/AVCビデオストリームのGOP構造には次のような特徴がある。
【0432】
1.ストリーム構造についての特徴
(1)Open GOP/Closed GOP構造
図36は、Closed GOP構造を示す図である。
【0433】
図36の各ピクチャはH.264/AVCビデオストリームを構成するピクチャである。Closed GOPにはIDR(Instantaneous Decording Refresh)ピクチャが含まれる。
【0434】
IDRピクチャはIピクチャであり、IDRピクチャを含むGOP内の中で最初にデコードされる。IDRピクチャのデコード時、参照ピクチャバッファ(図22のDPB151)の状態や、それまで管理されていたフレーム番号やPOC(Picture Order Count)などのデコードに関する全ての情報はリセットされる。
【0435】
図36に示すように、Closed GOPである現在GOPにおいては、その現在GOPのピクチャのうち、IDRピクチャより表示順で前(過去)のピクチャは、直前のGOPのピクチャを参照することが禁止される。
【0436】
また、現在GOPのピクチャのうち、IDRピクチャより表示順で後(未来)のピクチャは、IDRピクチャを超えて、直前のGOPのピクチャを参照することが禁止される。H.264/AVCにおいては、表示順でIピクチャの後ろにあるPピクチャから、そのIピクチャより前のピクチャを参照することも許されている。
【0437】
図37は、Open GOP構造を示す図である。
【0438】
図37に示すように、Open GOPである現在GOPにおいては、その現在GOPのピクチャのうち、non-IDR Iピクチャ(IDRピクチャではないIピクチャ)より表示順で前のピクチャは、直前のGOPのピクチャを参照することが許される。
【0439】
また、現在GOPのピクチャのうち、non-IDR Iピクチャより表示順で後のピクチャは、non-IDR Iピクチャを超えて直前のGOPのピクチャを参照することが禁止される。
【0440】
(2)GOPの先頭のAccess Unitには、SPS、PPSが必ず符号化される。
【0441】
SPS(Sequence Parameter Set)は、シーケンス全体の符号化に関する情報を含む、シーケンスのヘッダ情報である。あるシーケンスのデコード時、シーケンスの識別情報などが含まれるSPSが最初に必要になる。PPS(Picture Parameter Set)は、ピクチャ全体の符号化に関する情報を含む、ピクチャのヘッダ情報である。
【0442】
(3)GOPの先頭のAccess Unitには、最大30個までのPPSを符号化することができる。
複数のPPSを先頭のAccess Unitに符号化した場合には、各PPSのid(pic_parameter_set_id)は一緒であってはならない。
【0443】
(4)GOPの先頭以外のAccess Unitには、最大1個までのPPSを符号化することができる。
【0444】
2.参照構造についての特徴
(1)I・P・Bピクチャは、それぞれI・P・Bスライスのみから構成されるピクチャであることが求められる。
【0445】
(2)表示順で参照ピクチャ(I or Pピクチャ)の直前のBピクチャは、符号化順では、必ず、その参照ピクチャの直後に符号化されていることが求められる。
【0446】
(3)参照ピクチャ(I or Pピクチャ)の符号化順と表示順は維持されること(同じであること)が求められる。
【0447】
(4)PピクチャからBピクチャを参照することは禁止される。
【0448】
(5)符号化順で、非参照Bピクチャ(B1)が非参照ピクチャ(B2)の前である場合、表示順もB1が前になることが求められる。
【0449】
非参照Bピクチャは、符号化順で後ろにある他のピクチャによって参照されないBピクチャである。
【0450】
(6)参照Bピクチャは、表示順で直前、又は直後の参照ピクチャ(I or Pピクチャ)を参照することができる。
【0451】
(7)非参照Bピクチャは、表示順で直前、又は直後の参照ピクチャ(I or Pピクチャ)、又は参照Bピクチャを参照することができる。
【0452】
(8)連続するBピクチャの数を最大3枚とすることが求められる。
【0453】
3.GOP内の最大フレーム・フィールド数についての特徴
GOP内の最大フレーム・フィールド数は、図38に示すようにビデオのフレームレートに応じて規定されている。
【0454】
図38に示すように、例えば、フレームレートが29.97フレーム/秒でインタレース表示を行う場合、1GOPのピクチャで表示させることが可能な最大フィールド数は60である。
また、フレームレートが59.94フレーム/秒でプログレッシブ表示を行う場合、1GOPのピクチャで表示させることが可能な最大フレーム数は60である。
【0455】
以上のような特徴を有するGOP構造を、Dependent view videoストリームのGOP構造としても定義する。
【0456】
また、Base view videoストリームのあるGOPの構造と、対応するDependent view videoストリームのGOPの構造を一致させることを制約として規定する。
【0457】
以上のようにして定義したBase view videoストリーム、またはDependent view videoストリームのClosed GOP構造を図39に示す。
【0458】
図39に示すように、Closed GOPである現在GOPにおいては、その現在GOPのピクチャのうち、IDRピクチャ、またはアンカーピクチャより表示順で前(過去)のピクチャは、直前のGOPのピクチャを参照することが禁止される。アンカーピクチャについては後述する。
【0459】
また、現在GOPのピクチャのうち、IDRピクチャ、またはアンカーピクチャより表示順で後(未来)のピクチャは、IDRピクチャ、またはアンカーピクチャを超えて、直前のGOPのピクチャを参照することが禁止される。
【0460】
図40は、Base view videoストリーム、またはDependent view videoストリームのOpen GOP構造を示す図である。
【0461】
図40に示すように、Open GOPである現在GOPにおいては、その現在GOPのピクチャのうち、non-IDRアンカーピクチャ(IDRピクチャではないアンカーピクチャ)より表示順で前のピクチャは、直前のGOPのピクチャを参照することが許される。
【0462】
また、現在GOPのピクチャのうち、non-IDRアンカーピクチャより表示順で後のピクチャは、non-IDRアンカーピクチャを超えて直前のGOPのピクチャを参照することが禁止される。
【0463】
以上のようにしてGOP構造を定義することにより、例えば、Base view videoストリームのあるGOPと、対応するDependent view videoストリームのGOPの間では、Open GOPであるのか、Closed GOPであるのかといったようなストリーム構造の特徴が一致することになる。
【0464】
また、Base view videoの非参照Bピクチャに対応するDependent view videoのピクチャは必ず非参照Bピクチャになるといったように、ピクチャの参照構造の特徴も一致することになる。
【0465】
さらに、Base view videoストリームのあるGOPと、対応するDependent view videoストリームのGOPの間では、フレーム数、フィールド数も一致することになる。
【0466】
このように、Dependent view videoストリームのGOP構造をBase view videoストリームのGOP構造と同じ構造として定義することにより、ストリーム間の対応するGOP同士に同じ特徴を持たせることが可能になる。
【0467】
また、ストリームの途中からデコードを行うような場合でも、問題なくそれを行うことが可能になる。ストリームの途中からのデコードは、例えば、トリックプレイやランダムアクセスのときに行われる。
【0468】
フレーム数が異なるといったように、ストリーム間の対応するGOP同士の構造が異なる場合、一方のストリームは正常に再生できるのに他方のストリームが再生できないといったことが生じるおそれがあるが、それを防ぐことができる。
【0469】
ストリーム間の対応するGOP同士の構造を異なるものとしてストリームの途中からデコードを開始した場合、Dependent view videoのデコードに必要となるBase view videoのピクチャがデコードされていないといったことが生じるおそれもある。この場合、結果として、Dependent view videoのピクチャをデコードすることができず、3D表示を行うことができなくなる。また、実装の方法によっては、Base view videoの画像も出力できない可能性があるが、それらの不都合も回避することができる。
【0470】
EP_mapについて
Base view videoストリームとDependent view videoストリームのGOP構造を利用することで、ランダムアクセスやトリックプレイ時のデコードの開始位置をEP_mapに設定することが可能になる。EP_mapはClip Informationファイルに含まれる。
【0471】
デコード開始位置としてEP_mapに設定可能なピクチャの制約として次の2つの制約を規定する。
【0472】
1.Dependent view videoストリームに設定可能な位置を、SubsetSPSに続けて配置されるアンカーピクチャの位置か、SubsetSPSに続けて配置されるIDRピクチャの位置とする。
【0473】
アンカーピクチャは、H.264 AVC/MVCで規定されるピクチャであり、時間方向に参照せずに、view間の参照を行って符号化されたDependent view videoストリームのピクチャである。
【0474】
2.Dependent view videoストリームのあるピクチャをデコード開始位置としてEP_mapに設定する場合、対応するBase view videoストリームのピクチャも、デコード開始位置としてEP_mapに設定する。
【0475】
図41は、上記2つの制約を満たすEP_mapに設定されたデコード開始位置の例を示す図である。
【0476】
図41においては、Base view videoストリームを構成するピクチャと、Dependent view videoストリームを構成するピクチャをデコード順に示している。
【0477】
Dependent view videoストリームのピクチャのうちの色を付けて示すピクチャP1は、アンカーピクチャ、またはIDRピクチャである。ピクチャP1のデータを含むAccess Unitの直前のAccess UnitにはSubsetSPSが含まれる。
【0478】
図41の例においては、白抜き矢印#11で示すように、ピクチャP1が、Dependent view videoストリームのEP_mapにデコード開始位置として設定されている。
【0479】
ピクチャP1に対応するBase view videoストリームのピクチャであるピクチャP11はIDRピクチャである。白抜き矢印#12で示すように、IDRピクチャであるピクチャP11も、Base view videoストリームのEP_mapにデコード開始位置として設定されている。
【0480】
ランダムアクセスやトリックプレイが指示されたことから、ピクチャP1とピクチャP11からデコードを開始する場合、最初に、ピクチャP11のデコードが行われる。IDRピクチャであるから、他のピクチャを参照することなく、ピクチャP11をデコードすることが可能である。
【0481】
ピクチャP11のデコードが終了したとき、次に、ピクチャP1がデコードされる。ピクチャP1のデコードにはデコード済みのピクチャP11が参照される。アンカーピクチャ、またはIDRピクチャであるから、ピクチャP11のデコードが終了していればピクチャP1のデコードは可能である。
【0482】
その後、Base view videoのピクチャP1の次のピクチャ、Dependent view videoのピクチャP11の次のピクチャ、・・・といったようにしてデコードが行われる。
【0483】
対応するGOPの構造が同じであり、かつ、対応する位置からデコードが開始されるから、Base view videoについてもDependent view videoについても、EP_mapに設定されたピクチャ以降のピクチャを問題なくデコードすることができる。これによりランダムアクセスを実現することが可能になる。
【0484】
図41の垂直方向に示す点線より左側に並ぶピクチャはデコードされないピクチャになる。
【0485】
図42は、Dependent view videoのGOP構造を定義しない場合に生じる問題について示す図である。
【0486】
図42の例においては、色を付けて示すBase view videoのIDRピクチャであるピクチャP21がデコード開始位置としてEP_mapに設定されている。
【0487】
Base view videoのピクチャP21からデコードを開始する場合において、ピクチャP21に対応するDependent view videoのピクチャであるピクチャP31がアンカーピクチャではない場合を考える。GOP構造を定義していない場合、Base view videoのIDRピクチャに対応するDependent view videoのピクチャが、IDRピクチャまたはアンカーピクチャであるという保障はない。
【0488】
この場合、Base view videoのピクチャP21のデコードが終わったときであっても、ピクチャP31をデコードすることはできない。ピクチャP31のデコードには時間方向の参照も必要になるが、垂直方向に示す点線より左側(デコード順で前)のピクチャはデコードされていない。
【0489】
ピクチャP31をデコードすることができないことにより、ピクチャP31を参照するDependent view videoの他のピクチャもデコードすることができないことになる。
【0490】
Dependent view videoストリームのGOP構造を定義しておくことにより、このようなことを回避することができる。
【0491】
Base view videoだけでなく、Dependent view videoについてもEP_mapでデコード開始位置を設定しておくことにより、再生装置1はデコードの開始位置を容易に特定することが可能になる。
【0492】
Base view videoのあるピクチャだけをデコード開始位置としてEP_mapに設定しておいた場合、再生装置1は、デコード開始位置のピクチャに対応するDependent view videoのピクチャを計算により特定する必要があり、処理が複雑になってしまう。
【0493】
たとえ対応するBase view videoとDependent view videoのピクチャ同士が同じDTS/PTSを持っていたとしても、ビデオのビットレートが異なる場合にはTSにおけるバイト配列まで一致させることができないため、この場合に処理が複雑になる。
【0494】
図43は、Base view videoストリームとDependent view videoストリームからなるMVCストリームを対象にしたランダムアクセスやトリックプレイを行う際に必要になるピクチャサーチの概念を示す図である。
【0495】
図43に示すように、ランダムアクセスやトリックプレイを行う際、non-IDRアンカーピクチャかIDRピクチャがサーチされ、デコード開始位置が決定される。
【0496】
ここで、EP_mapについて説明する。Base view videoのデコード開始位置をEP_mapに設定する場合について説明するが、Dependent view videoのデコード開始位置についても、同様にしてDependent view video のEP_mapに設定される。
【0497】
図44は、光ディスク2上に記録されたAVストリームの構造を示す図である。
【0498】
Base view videoストリームを含むTSは、6144バイトのサイズを有する整数個のアライドユニット(Aligned Unit)から構成される。
【0499】
アライドユニットは、32個のソースパケット(Source Packet)からなる。ソースパケットは192バイトを有する。1つのソースパケットは、4バイトのトランスポートパケットエクストラヘッダ(TP_extra header)と、188バイトのトランスポートパケット(Transport Packet)とからなる。
【0500】
Base view videoのデータは、MPEG2 PESパケットにパケット化されている。PESパケットのデータ部にPESパケットヘッダが付加されてPESパケットが形成される。PESパケットヘッダには、PESパケットが伝送するエレメンタリストリームの種類を特定するストリームIDが含まれる。
【0501】
PESパケットは、さらにトランスポートパケットにパケット化される。すなわち、PESパケットがトランスポートパケットのペイロードのサイズに分割され、ペイロードにトランスポートパケットヘッダが付加されてトランスポートパケットが形成される。トランスポートパケットヘッダは、ペイロードに格納されるデータの識別情報であるPIDを含む。
【0502】
なお、ソースパケットには、Clip AVストリームの先頭を例えば0として、ソースパケット毎に1ずつ増加するソースパケット番号が与えられる。また、アライドユニットは、ソースパケットの第1バイト目から始まる。
【0503】
EP_mapは、Clipのアクセスポイントのタイムスタンプが与えられたときに、Clip AVストリームファイルの中でデータの読み出しを開始すべきデータアドレスを検索するために用いられる。EP_mapは、エレメンタリストリームおよびトランスポートストリームから抽出されたエントリポイントのリストである。
【0504】
EP_mapは、AVストリームの中で、デコードを開始すべきエントリポイントを検索するためのアドレス情報を持つ。EP_map中の1つのEPデータは、PTSと、PTSに対応するAccess Unitの、AVストリーム中のアドレスとの対で構成される。AVC/H.264においては、1Access Unitには1ピクチャ分のデータが格納される。
【0505】
図45は、Clip AVストリームの例を示す図である。
【0506】
図45のClip AVストリームは、PID=xで識別されるソースパケットからなるビデオストリーム(Base view videoストリーム)である。ビデオストリームは、ソースパケット毎に、ソースパケット内のトランスポートパケットのヘッダに含まれるPIDにより区別される。
【0507】
図45においては、ビデオストリームのソースパケットのうちの、IDRピクチャの先頭バイトを含むソースパケットに色が付されている。色が付いていない四角は、ランダムアクセスポイントとならないデータが含まれるソースパケットや、他のストリームのデータが含まれているソースパケットを示す。
【0508】
例えば、PID=xで区別されるビデオストリームのランダムアクセス可能なIDRピクチャの先頭バイトを含む、ソースパケット番号X1のソースパケットは、Clip AVストリームの時間軸上でPTS=pts(x1)の位置に配置される。
【0509】
同様に、次にランダムアクセス可能なIDRピクチャの先頭バイトを含むソースパケットはソースパケット番号X2のソースパケットとされ、PTS=pts(x2)の位置に配置される。
【0510】
図46は、図45のClip AVストリームに対応したEP_mapの例を概念的に示す図である。
【0511】
図46に示すように、EP_mapは、stream_PID、PTS_EP_start、およびSPN_EP_startから構成される。
【0512】
stream_PIDは、ビデオストリームを伝送するトランスポートパケットのPIDを表す。
【0513】
PTS_EP_startは、ランダムアクセス可能なIDRピクチャから始まるAccess UnitのPTSを表す。
【0514】
SPN_EP_startは、PTS_EP_startの値により参照されるAccess Unitの第1バイト目を含むソースパケットのアドレスを表す。
【0515】
ビデオストリームのPIDがstream_PIDに格納され、PTS_EP_startとSPN_EP_startの対応関係を表すテーブル情報であるEP_map_for_one_stream_PID()が生成される。
【0516】
例えば、PID=xのビデオストリームのEP_map_for_one_stream_PID[0]には、PTS=pts(x1)とソースパケット番号X1、PTS=pts(x2)とソースパケット番号X2、・・・、PTS=pts(xk)とソースパケット番号Xkとがそれぞれ対応して記述される。
【0517】
このようなテーブルが、同じClip AVストリームに多重化されたそれぞれのビデオストリームについても生成される。生成されたテーブルを含むEP_mapが、当該Clip AVストリームに対応するClip Informationファイルに格納される。
【0518】
図47は、SPN_EP_startが指すソースパケットのデータ構造の例を示す図である。
【0519】
上述したように、ソースパケットは、188バイトのトランスポートパケットに4バイトのヘッダを付加した形で構成される。トランスポートパケット部分は、ヘッダ部(TP header)とペイロード部とからなる。SPN_EP_startは、IDRピクチャから始まるAccess Unitの第1バイト目を含むソースパケットのソースパケット番号を表す。
【0520】
AVC/H.264においては、Access Unitすなわちピクチャは、AUデリミタ(Access Unit Delimiter)から開始される。AUデリミタの後に、SRSとPPSが続く。その後に、IDRピクチャのスライスのデータの、先頭部分または全体が格納される。
【0521】
トランスポートパケットのTPヘッダにあるpayload_unit_start_indicatorの値が1であることは、新たなPESパケットがこのトランスポートパケットのペイロードから始まることを表す。このソースパケットから、Access Unitが開始されることになる。
【0522】
このようなEP_mapが、Base view videoストリームとDependent view videoストリームについてそれぞれ用意される。
【0523】
[運用3]
Base view videoストリームとDependent view videoストリームを構成する各ピクチャにはPOC(Picture Order Count)が符号化時に設定されている。POCは、ピクチャの表示順を表す値である。
【0524】
AVC/H.264においては、POCは「A variable having a value that is non-decreasing with increasing picture position in output order relative to the previous IDR picture in decoding order or relative to the previous picture containing the memory management control operation that marks all reference pictures as “unused for reference”.」として規定されている。
【0525】
符号化時、Base view videoストリームのピクチャに設定するPOCと、Dependent view videoストリームのピクチャに設定するPOCは統一して運用される。
【0526】
例えば、Base view videoストリームの表示順で1番目のピクチャにはPOC=1が設定され、それ以降、1ずつ値を増やして、POCが各ピクチャに設定される。
【0527】
また、Dependent view videoストリームの表示順で1番目のピクチャには、Base view videoストリームの1番目のピクチャに設定されるものと同じPOC=1が設定され、それ以降、1ずつ値を増やして、POCが各ピクチャに設定される。
【0528】
上述したようにBase view videoストリームのGOP構造とDependent view videoストリームのGOP構造は同じであるから、Base view videoストリームとDependent view videoストリームの各ピクチャには、表示順で対応するピクチャ同士、同じPOCが設定される。
【0529】
これにより、再生装置1は、同じPOCが設定されているview componentを、表示順で対応するview componentとして処理することが可能になる。
【0530】
例えば、再生装置1は、Base view videoストリームのピクチャのうちのPOC=1が設定されているピクチャと、Dependent view videoストリームのピクチャのうちのPOC=1が設定されているピクチャを、対応するピクチャとして処理することができる。
【0531】
また、Base view videoストリームとDependent view videoストリームを構成する各ピクチャにはPicture Timing SEI(Supplemental Enhancement Information)が設定されている。SEIは、H.264/AVCで規定される、デコードに関する補助的な情報を含む付加情報である。
【0532】
SEIのうちの1つであるPicture Timing SEIには、符号化時のCPB(Coded Picture Buffer)からの読み出し時刻、デコード時のDPB(図22のDPB151)からの読み出し時刻などの時刻情報が含まれる。また、表示時刻の情報、ピクチャ構造の情報などが含まれる。
【0533】
符号化時、Base view videoストリームのピクチャに設定するPicture Timing SEIと、Dependent view videoストリームのピクチャに設定するPicture Timing SEIは統一して運用される。
【0534】
例えば、Base view videoストリームの符号化順で1番目のピクチャにCPBからの読み出し時刻としてT1が設定された場合、Dependent view videoストリームの符号化順で1番目のピクチャにも、CPBからの読み出し時刻としてT1が設定される。
【0535】
すなわち、Base view videoストリームとDependent view videoストリームの各ピクチャには、符号化順、または復号順で対応するピクチャ同士、同じ内容のPicture Timing SEIが設定される。
【0536】
これにより、再生装置1は、同じPicture Timing SEIが設定されているview componentを、復号順で対応するview componentとして処理することが可能になる。
【0537】
POC、Picture Timing SEIは、Base view videoとDependent view videoのエレメンタリストリームに含まれるものであり、再生装置1においてはビデオデコーダ110により参照される。
【0538】
ビデオデコーダ110は、エレメンタリストリームに含まれる情報に基づいて、対応するview componentを識別することが可能になる。また、ビデオデコーダ110は、Picture Timing SEIに基づいて正しい復号順で、また、POCに基づいて正しい表示順になるようにデコード処理を行うことが可能になる。
【0539】
対応するview componentを識別するためにPlayListなどを参照する必要がないため、System Layerや、それ以上のLayerに問題が起きた場合の対処が可能になる。また、問題が起きたLayerに依存しないデコーダ実装も可能になる。
【0540】
上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
【0541】
図48は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。
【0542】
CPU(Central Processing Unit)501、ROM(Read Only Memory)502、RAM(Random Access Memory)503は、バス504により相互に接続されている。
【0543】
バス504には、さらに、入出力インタフェース505が接続されている。入出力インタフェース505には、キーボード、マウスなどよりなる入力部506、ディスプレイ、スピーカなどよりなる出力部507が接続される。また、バス504には、ハードディスクや不揮発性のメモリなどよりなる記憶部508、ネットワークインタフェースなどよりなる通信部509、リムーバブルメディア511を駆動するドライブ510が接続される。
【0544】
以上のように構成されるコンピュータでは、CPU501が、例えば、記憶部508に記憶されているプログラムを入出力インタフェース505及びバス504を介してRAM503にロードして実行することにより、上述した一連の処理が行われる。
【0545】
CPU501が実行するプログラムは、例えばリムーバブルメディア511に記録して、あるいは、ローカルエリアネットワーク、インターネット、デジタル放送といった、有線または無線の伝送媒体を介して提供され、記憶部508にインストールされる。
【0546】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【0547】
本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【符号の説明】
【0548】
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 操作入力部

【特許請求の範囲】
【請求項1】
複数の映像データを対象としてH.264 AVC/MVCで符号化を行うことによって得られたviewのIDを含むMVCヘッダが付加されていないデータからなり、前記IDとして前記MVCヘッダに設定されている値が小さいviewのデータから順に処理を行う再生装置を、前記IDとして0の値が前記MVCヘッダに設定されているデータとして扱い、Dependent view videoのデータより先に復号を行うように機能させるBase view videoのストリームと、
前記符号化を行うことによって得られた、Dependent viewのデータであることを表す1以上の値の前記IDを含む前記MVCヘッダが付加されたデータからなり、前記再生装置を、前記Base view videoのストリームの後に復号を行うように機能させる前記Dependent view videoのストリームと
が記録された記録媒体。
【請求項2】
複数の映像データをH.264 AVC/MVCで符号化し、
符号化を行うことによって得られた、viewのIDを含むMVCヘッダが付加されていないデータからなるBase view videoのストリームと、Dependent viewのデータであることを表す前記IDを含む前記MVCヘッダが付加されたデータからなるDependent view videoのストリームを記録媒体に記録する
ステップを含む記録方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate

【図35】
image rotate

【図36】
image rotate

【図37】
image rotate

【図38】
image rotate

【図39】
image rotate

【図40】
image rotate

【図41】
image rotate

【図42】
image rotate

【図43】
image rotate

【図44】
image rotate

【図45】
image rotate

【図46】
image rotate

【図47】
image rotate

【図48】
image rotate


【公開番号】特開2012−135001(P2012−135001A)
【公開日】平成24年7月12日(2012.7.12)
【国際特許分類】
【出願番号】特願2012−19823(P2012−19823)
【出願日】平成24年2月1日(2012.2.1)
【分割の表示】特願2009−94254(P2009−94254)の分割
【原出願日】平成21年4月8日(2009.4.8)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】