以下、発明を実施するための形態(以下、「実施の形態」とする)について説明する。なお、説明は以下の順序で行う。
1.実施の形態
2.変形例
<1.実施の形態>
[画像送受信システム]
図1は、実施の形態としての画像送受信システム10の構成例を示している。この画像送受信システム10は、放送局100および受信機200により構成されている。放送局100は、コンテナとしてのトランスポートストリームTSを放送波に載せて送信する。
立体(3D)画像送信時には、トランスポートストリームTSに、立体画像表示のための所定数、この実施の形態においては3つのビューの画像データを含む1つまたは複数のビデオストリームが含まれる。この場合、ビデオストリームは、例えば、MVCのベースビューのビデオエレメンタリストリーム(Base view sub-bitstream)、さらにはMVCのノンベースビューのビデオエレメンタリストリーム(Non-Base view sub-bitstream)として送信される。
また、2次元(2D)画像表示時には、トランスポートストリームTSに、2次元画像データを含むビデオストリームが含まれる。この場合、ビデオストリームは、例えば、AVC(2D)のビデオエレメンタリストリームとして送信される。
立体(3D)画像送信時に送信されるトランスポートストリームTSには、立体画像表示のための複数のビューのうち、少なくとも中央のビュー、左端のビューおよび右端のビューの画像データが符号化されて得られた1つまたは複数のビデオストリームが含まれる。この場合、中央のビューは、左端ビューおよび右端ビューの間に位置する中間ビューを構成している。
この立体(3D)画像送信時に送信されるトランスポートストリームTSに含まれるビデオストリームにおいて、図2に示すように、中央(Center)のビュー、左端(Left)のビューおよび右端(Right)のビューの画像データはそれぞれ1つのピクチャのデータとして符号化される。図示の例では、各ピクチャのデータは1920*1080のフルHDのサイズとされる。
あるいは、立体(3D)画像送信時に送信されるトランスポートストリームTSに含まれるビデオストリームにおいて、図3(a)に示すように、中央(Center)のビューの画像データは1つのピクチャのデータとして符号化され、左端(Left)のビューおよび右端(Right)のビューの画像データはインターリーブ処理されて1つのピクチャのデータとして符号化される。図示の例では、各ピクチャのデータは1920*1080のフルHDのサイズとされる。
なお、左端のビューおよび右端のビューの画像データがインターリーブ処理されて1つのピクチャのデータとして符号化される場合、各ビューの画像データは水平方向あるいは垂直方向に1/2に間引かれた状態となる。図示の例では、インターリーブのタイプがサイド・バイ・サイドであり、各ビューのサイズは960*1080とされる。図示していないが、インターリーブのタイプとしてトップ・アンド・ボトムも考えられ、その場合には、各ビューのサイズは1920*540とされる。
このように左端のビューおよび右端のビューの画像データがインターリーブ処理されて1つのピクチャのデータとして符号化される場合、受信側においては、図3(b)に示すように、スケーリング処理され、左端のビューおよび右端のビューの画像データのサイズは1920*1080のフルHDのサイズに戻される。
立体(3D)画像送信時に送信されるトランスポートストリームTSに含まれるビデオストリームは、1つまたは複数のピクチャのデータを含むものとされる。例えば、このトランスポートストリームTSには、以下の3つのビデオストリーム(ビデオエレメンタリストリーム)が含まれる。すなわち、中央のビュー、左端のビューおよび右端のビューの画像データがそれぞれ1つのピクチャとして符号化されて得られたビデオストリームである。
この場合、例えば、中央のビューの画像データが1つのピクチャとして符号化されて得られたビデオストリームは、MVCのベースビューのビデオエレメンタリストリーム(基本ビデオストリーム)とされる。また、左端のビューおよび右端のビューの画像データがそれぞれ1つのピクチャとして符号化されて得られた残りの2つのビデオストリームは、MVCのノンベースビューのビデオエレメンタリストリーム(追加ビデオストリーム)とされる。
また、例えば、このトランスポートストリームTSには、以下の2つのビデオストリーム(ビデオエレメンタリストリーム)が含まれる。すなわち、中央のビューの画像データが1つのピクチャとして符号化されて得られたビデオストリームと、左端のビューおよび右端のビューの画像データがインターリーブ処理されて1つのピクチャとして符号化されて得られたビデオストリームである。
この場合、例えば、中央のビューの画像データが1つのピクチャとして符号化されて得られたビデオストリームは、MVCのベースビューのビデオエレメンタリストリーム(基本ビデオストリーム)とされる。また、左端のビューおよび右端のビューの画像データがインターリーブ処理されて1つのピクチャとして符号化されて得られた残りの1つのビデオストリームは、MVCのノンベースビューのビデオエレメンタリストリーム(追加ビデオストリームとされる。
また、例えば、このトランスポートストリームTSには、以下の1つのビデオストリーム(ビデオエレメンタリストリーム)が含まれる。すなわち、この1つのビデオストリームには、中央のビュー、左端のビューおよび右端のビューの画像データがそれぞれ1つのピクチャのデータとして符号化されたデータが含まれる。この場合、この1つのビデオストリームは、MVCのベースビューのビデオエレメンタリストリーム(基本ビデオストリーム)とされる。
図4(a),(b)は、複数のピクチャの符号化データを含むビデオストリームの一例を示している。各アクセスユニットに、各ピクチャの符号化データが順次配置される。この場合、最初のピクチャの符号化データは、“SPS 〜 Coded Slice”で構成され、2番目以降のピクチャの符号化データは、“Subset SPS 〜 Coded Slice”で構成される。なお、この例は、MPEG4−AVCの符号化がされている例であるが、他の符号化方式でも適用可能である。なお、図中の16進数字は「 NAL unit type 」を示している。
各ピクチャの符号化データが1つのビデオストリームに共存する場合、各ピクチャの境界が瞬時に識別可能なことが要求される。しかし、AUD(access unit delimiter)は、一つのアクセスユニットの先頭にのみ付すことが可能である。そこで、図4(b)に示すように、各ピクチャの符号化データの間に、「View Separation Marker」という境界を示す新たな“NAL unit”を定義して配置することが考えられる。これにより、各ピクチャの先頭データに瞬時にアクセスすることが可能となる。なお、図4(a)は、2つのビューのデータの間に、「View Separation Marker」が配置されていない例を示している。
図5(a),(b)は、3つのピクチャの符号化データが1つのビデオストリームに共存する場合の例を示している。ここでは、各ピクチャの符号化データをサブストリーム(sub stream)として示している。図5(a)は、GOP(Group OfPictures)の先頭のアクセスユニットを示しており、図5(b)は、GOPの先頭以外のアクセスユニットを示している。
ビデオストリームのレイヤ(ピクチャレイヤ、シーケンスレイヤなど)に、このビデオストリーム内の画像データに関するビュー構成情報が挿入される。このビュー構成情報は、立体情報の要素を提示する補助情報を構成している。このビュー構成情報には、当該ビデオストリームに含まれる画像データが3Dを構成する一部のビューの画像データであるか否かを示す情報、さらに、3Dを構成する一部のビューの画像データである場合には、当該ビデオストリームに含まれる画像データがどのビューの画像データであるかを示す情報(各ビューの相対位置関係を示す情報)、当該ビデオストリームの1アクセスユニット内に複数のピクチャのデータが符号化されているかを示す情報等が含まれている。
このビュー構成情報は、例えば、ビデオストリームのピクチャヘッダまたはシーケンスヘッダのユーザデータ領域などに挿入される。このビュー構成情報は、少なくとも、番組単位、シーン単位、ピクチャグループ単位、あるいはピクチャ単位で挿入される。このビュー構成情報により、受信側では、3D表示処理または2D表示処理が行われる。また、このビュー構成情報により、受信側では、3D表示処理を行う場合に、複数のビューの画像データによる3次元画像(立体画像)の裸眼観賞を行うための適切かつ効率的な処理が可能となる。このビュー構成情報の詳細については後述する。
また、トランスポートストリームTSのレイヤに、ビデオストリームのレイヤにビュー構成情報の挿入があるか否かを識別するための識別情報が挿入される。この識別情報は、例えば、トランスポートストリームTSに含まれるプログラム・マップ・テーブル(PMT:Program Map Table)のビデオエレメンタリ・ループ(Video ESloop)の配下、あるいはイベント・インフォメーション・テーブル(EIT:Event InformationTable)の配下などに挿入される。この識別情報により、受信側では、ビデオストリームのレイヤにビュー構成情報の挿入があるか否かを容易に識別可能となる。この識別情報の詳細については後述する。
受信機200は、放送局100から放送波に載せて送られてくるトランスポートストリームTSを受信する。また、受信機200は、立体(3D)画像送信時には、このトランスポートストリームTSに含まれるビデオストリームをデコードして、中央のビュー、左端のビューおよび右端のビューの画像データを取得する。この際、受信機200は、ビデオストリームのレイヤに含まれるビュー構成情報により、各ビデオストリームに含まれる画像データが、どのビュー位置の画像データであるかを知ることができる。
受信機200は、中央のビューおよび左端ビューの間の視差データと、中央のビューおよび右端ビューの間の視差データとに基づいて、中央のビューおよび左端ビューの間と、中央のビューおよび右端ビューの間とに位置する所定数のビューの画像データを補間処理で取得する。この際、受信機200は、ビデオストリームのレイヤに含まれるビュー構成情報により、ビュー数を知ることができ、どの位置のビューが伝送されなかったかを容易に把握できる。
また、受信機200は、放送局100からビデオストリームと共に送られてくる視差データストリームをデコードして、上述の視差データを取得する。あるいは、受信機200は、取得された中央のビュー、左端のビューおよび右端のビューの画像データに基づいて、上述の視差データを生成する。
受信機200は、放送局100から送られてくる中央、左端および右端の各ビューの画像データと、上述の補間処理で取得される各ビューの画像データとに基づき、3次元画像(立体画像)の裸眼観賞のために、各ビューの画像を表示部に合成表示する。
図6は、ビュー数を5とした場合の受信機200の表示部を概略的に示している。ここで、「View_0」は中央のビュー、「View_1」は中央から1つ右のビュー、「View_2」は中央から1つ左のビュー、「View_3」は中央から2つ右、つまり右端のビュー、「View_4」は中央から2つ左、つまり左端のビューを示している。この場合、放送局100から「View_0」、「View_3」、「View_4」のビューの画像データのみが送信され、受信機200では「View_0」、「View_3」、「View_4」のビューの画像データが受信され、その他の「View_1」、「View_2」のビューの画像データは補間処理で求められる。そして、受信機200では、3次元画像(立体画像)の裸眼観賞のために、これらの5つのビューの画像が表示部に合成表示される。なお、図6には、レンチキュラーレンズを示しているが、この代わりにパララックスバリアなどであってもよい。
受信機200は、2次元(2D)画像送信時には、このトランスポートストリームTSに含まれるビデオストリームをデコードして、2次元画像データを取得する。そして、受信機200は、この2次元画像データに基づき、2次元画像を表示部に表示する。
「送信データ生成部の構成例」
図7は、放送局100において、上述したトランスポートストリームTSを生成する送信データ生成部110の構成例を示している。この送信データ生成部110は、N個の画像データ出力部111-1〜111-Nと、ビューセレクタ112と、スケーラ113-1,113-2,113-3と、ビデオエンコーダ114-1,114-2,114-3と、マルチプレクサ115を有している。また、この送信データ生成部110は、視差データ生成部116と、視差エンコーダ117と、グラフィクスデータ出力部118と、グラフィクスエンコーダ119と、音声データ出力部120と、オーディオエンコーダ121を有している。
最初に、立体(3D)画像送信時の場合について説明する。画像データ出力部111-1〜111-Nは、立体画像表示のためのN個のビュー(View 1・・・View N)の画像データを出力する。この画像データ出力部は、例えば、被写体を撮像して画像データを出力するカメラ、あるいは記憶媒体から画像データを読み出して出力する画像データ読み出し部などにより構成される。なお、伝送されないビューの画像データは、実際にはなくてもよい。
また、ビューセレクタ112は、N個のビュー(View 1・・・View N)の画像データから、少なくとも左端のビューおよび右端のビューの画像データと、左端および右端の間に位置する中間のビュー(1つまたは2つ以上)の画像データを選択的に取り出す。この実施の形態において、ビューセレクタ112は、左端のビューの画像データVLおよび右端のビューの画像データVRを取り出すと共に、中央のビューの画像データVCを取り出す。図8は、ビューセレクタ112におけるビュー選択状態を示している。
また、スケーラ113-1,113-2,113-3は、それぞれ、画像データVC,VL,VRに対してスケーリング処理を施して、例えば、1920*1080のフルHDのサイズの画像データVC′,VL′,VR′を得る。この場合、画像データVC,VL,VRが1920*1080のフルHDのサイズであるときは、そのまま出力する。また、画像データVC,VL,VRが1920*1080のサイズより大きいときは、スケールダウンして出力する。
ビデオエンコーダ114-1は、中央のビューの画像データVC′に対して、例えば、MPEG4−AVC(MVC)、MPEG2videoなどの符号化を施して、符号化ビデオデータを得る。そして、このビデオエンコーダ114-1は、後段に備えるストリームフォーマッタ(図示せず)により、この符号化データをサブストリーム(sub stream 1)として含むビデオストリームを生成する。
また、ビデオエンコーダ114-2は、左端のビューの画像データVL′に対して、例えば、MPEG4−AVC(MVC)、MPEG2videoなどの符号化を施して、符号化ビデオデータを得る。そして、このビデオエンコーダ114-2は、後段に備えるストリームフォーマッタ(図示せず)により、この符号化データをサブストリーム(sub stream 2)として含むビデオストリームを生成する。
さらに、ビデオエンコーダ114-3は、右端のビューの画像データVR′に対して、例えば、MPEG4−AVC(MVC)、MPEG2videoなどの符号化を施して、符号化ビデオデータを得る。そして、このビデオエンコーダ114-3は、後段に備えるストリームフォーマッタ(図示せず)により、この符号化データをサブストリーム(sub stream 3)として含むビデオストリームを生成する。
ビデオエンコーダ114-1,114-2,114-3は、ビデオストリームのレイヤに、上述したビュー構成情報を挿入する。このビュー構成情報には、上述したように、当該ビデオストリームに含まれる画像データが3Dを構成する一部のビューの画像データであるか否かを示す情報が含まれている。ここでは、この情報は、当該ビデオストリームに含まれる画像データが3Dを構成する一部のビューの画像データであることを示すものとされる。
そして、このビュー構成情報には、当該ビデオストリームに含まれる画像データがどのビューの画像データであるかを示す情報、当該ビデオストリームの1アクセスユニット内に複数のピクチャのデータが符号化されているかを示す情報等が含まれるものとなる。このビュー構成情報は、例えば、ビデオストリームのピクチャヘッダまたはシーケンスヘッダのユーザデータ領域などに挿入される。
視差データ生成部116は、ビューセレクタ112から出力される中央、左端および右端の各ビューの画像データに基づいて、視差データ(disparity data)を生成する。この視差データには、例えば、中央のビューおよび左端のビューの間の視差データと、中央のビューおよび右端のビューの間の視差データが含まれている。この場合、画素単位、あるいはブロック(Block)単位で、視差データが生成される。図9は、ブロック(Block)毎の視差データ(視差ベクトル)の一例を示している。
図10は、ブロック単位の視差データの生成方法の一例を示している。この例は、i番目のビューからj番目のビューを指し示す視差データを求める例である。この場合、i番目のビューのピクチャに、例えば4*4、8*8あるいは16*16などの画素ブロック(視差検出ブロック)が設定される。
図示のように、i番目のビューのピクチャが検出画像とされ、j番目のビューのピクチャが参照画像とされて、i番目のビューのピクチャのブロック毎に、画素間の差分絶対値和が最小となるように、j番目のビューのピクチャのブロック探索がされて、視差データが求められる。
すなわち、N番目のブロックの視差データDPnは、例えば、以下の(1)式に示すように、当該N番目のブロックにおける差分絶対値和が最小となるようにブロック探索されて求められる。なお、この(1)式において、Djはj番目のビューのピクチャにおける画素値、Diはi番目のビューのピクチャにおける画素値を示している。
DPn = min ( Σ abs( differ (Dj - Di))) ・・・(1)
図11は、画素単位の視差データの生成方法の一例を示している。この例は、ブロック単位から画素単位へ交換により画素単位の視差データを生成する方法である。図11(a)における“A”、“B”、“C”、“D”、“X”は、それぞれ、ブロックの領域を示している。
これらのブロックの視差データから、図11(b)に示すように、“X”のブロックを4分割した各領域の視差データは、以下の(2)式で求められる。例えば、“A”、“B”に隣接する分割領域の視差データX(A,B)は、“A”、“B”、“X”のブロックの視差データの中央値とされる。その他の分割領域においても、同様にして、視差データが求められる。
X(A,B)=median(X,A,B)
X(A,C)=median(X,A,C)
X(B,D)=median(X,B,D)
X(C,D)=median(X,C,D)
・・・(2)
上述の一度の変換で、視差データの占める領域は、元の縦横サイズの1/2のサイズに狭まる。ブロックサイズにより、この変換を所定回数繰り返すことによって、画素単位の視差データが求まる。なお、テクスチャにエッジを含んでいたりして画面内オブジェクトの複雑度が他の部分よりも高い場合などには、適宜、ブロックサイズを小さくとって、初期のブロック単位の視差データ自体のテクスチャ追従性を向上することも可能である。
視差エンコーダ117は、視差データ生成部116で生成された視差データに符号化を施して視差ストリーム(視差データエレメンタリストリーム)を生成する。この視差ストリームには、画素単位、またはブロック単位の視差データが含まれることとなる。視差データが画素単位である場合には、画素データと同様に、圧縮符号化して伝送できる。
なお、この視差ストリームにブロック単位の視差データが含まれる場合には、受信側で、上述した変換処理を行うことで、画素単位に変換することも可能である。また、このような視差ストリームの送信がない場合、受信側で、上述したように各ビュー間におけるブロック単位の視差データを求め、さらに画素単位に変換することが可能である。
グラフィクスデータ出力部118は、画像に重畳するグラフィクス(字幕としてのサブタイトルも含む)のデータを出力する。グラフィクスエンコーダ119は、グラフィクスデータ出力部118から出力されたグラフィクスデータを含むグラフィクスストリーム(グラフィクスエレメンタリストリーム)を生成する。ここで、グラフィクスは、重畳情報を構成し、例えば、ロゴ、字幕などである。
なお、グラフィクスデータ出力部118から出力されるグラフィクスデータは、例えば、中央のビューの画像に重畳するグラフィクスのデータである。グラフィクスデータ119は、視差データ生成部116で生成された視差データに基づいて、左端および右端のビューに重畳するグラフィクスのデータを作成して、これらのグラフィクスデータを含むグラフィクスストリームを生成してもよい。この場合には、受信側において左端および右端のビューに重畳するグラフィクスのデータを作成することが不要となる。
グラフィクスデータは、主にはビットマップデータである。このグラフィクスデータには、画像上の重畳位置を示すアイドリングオフセット情報が付加されている。このアイドリングオフセット情報は、例えば、画像の左上の原点から、グラフィクスの重畳位置の左上の画素までの垂直方向、水平方向のオフセット値を示す。なお、字幕データをビットマップデータとして伝送する規格は、例えば、ヨーロッパのデジタル放送規格であるDVBで「DVB_Subtitling」として規格化され、運用されている。
音声データ出力部120は、画像データに対応した音声データを出力する。この音声データ出力部120は、例えば、マイクロホン、あるいは記憶媒体から音声データを読み出して出力する音声データ読み出し部などにより構成される。オーディオエンコーダ121は、音声データ出力部120から出力される音声データに対して、MPEG−2Audio、AAC等の符号化を施し、オーディオストリーム(オーディオエレメンタリストリーム)を生成する。
マルチプレクサ115は、ビデオエンコーダ114-1,114-2,114-3、視差エンコーダ117、グラフィクスエンコーダ119およびオーディオエンコーダ121で生成された各エレメンタリストリームをパケット化して多重し、トランスポートストリームTSを生成する。この場合、それぞれのPES(Packetized Elementary Stream)のヘッダには、受信側における同期再生のために、PTS(Presentation Time Stamp)が挿入される。
マルチプレクサ115は、トランスポートストリームTSのレイヤに、上述した識別情報を挿入する。この識別情報は、ビデオストリームのレイヤにビュー構成情報の挿入があるか否かを識別するための情報である。この識別情報は、例えば、トランスポートストリームTSに含まれるプログラム・マップ・テーブル(PMT:Program Map Table)のビデオエレメンタリ・ループ(Video ESloop)の配下、あるいはイベント・インフォメーション・テーブル(EIT:Event InformationTable)の配下などに挿入される。
次に、2次元(2D)画像送信時の場合について説明する。画像データ出力部111-1〜111-Nのいずれかは、2次元画像データを出力する。ビュータセレクタ112は、その2次元画像データを取り出す。スケーラ113-1は、ビューセレクタ112で取り出された2次元画像データに対してスケーリング処理を施して、例えば、1920*1080のフルHDのサイズの2次元画像データを得る。この場合、スケーラ113-1,113-2は非動作状態におかれる。
ビデオエンコーダ114-1は、2次元画像データに対して、例えば、MPEG4−AVC(MVC)、MPEG2videoなどの符号化を施して、符号化ビデオデータを得る。そして、このビデオエンコーダ114-1は、後段に備えるストリームフォーマッタ(図示せず)により、この符号化データをサブストリーム(sub stream 1)として含むビデオストリームを生成する。この場合、ビデオエンコーダ114-1,114-2は非動作状態におかれる。
ビデオエンコーダ114-1は、ビデオストリームのレイヤに、上述したビュー構成情報を挿入する。このビュー構成情報には、上述したように、当該ビデオストリームに含まれる画像データが3Dを構成する一部のビューの画像データであるか否かを示す情報が含まれている。ここでは、この情報は、当該ビデオストリームに含まれる画像データが3Dを構成する一部のビューの画像データでないことを示すものとされる。そのため、このビュー構成情報には、その他の情報は含まれないことになる。なお、この2次元(2D)画像送信時には、ビデオストリームのレイヤに、上述したビュー構成情報を挿入しないことも考えられる。
詳細説明は省略するが、グラフィクスデータ出力部118、グラフィクスエンコーダ119、音声データ出力部120およびオーディオデコーダ121に関しては、立体(3D)画像送信時の場合と同様である。また、視差データ生成部116および視差エンコーダ117も、非動作状態におかれる。
マルチプレクサ115は、ビデオエンコーダ114-1、グラフィクスエンコーダ119およびオーディオエンコーダ121で生成された各エレメンタリストリームをパケット化して多重し、トランスポートストリームTSを生成する。この場合、それぞれのPES(Packetized Elementary Stream)のヘッダには、受信側における同期再生のために、PTS(Presentation Time Stamp)が挿入される。
図7に示す送信データ生成部110の動作を簡単に説明する。最初に、立体(3D)画像送信時の動作を説明する。N個の画像データ出力部111-1〜111-Nから出力される立体画像表示のためのN個のビュー(View 1・・・View N)の画像データは、ビューセレクタ112に供給される。ビューセレクタ112では、N個のビューの画像データから、中央のビューの画像データVC、左端のビューの画像データVLおよび右端のビューの画像データVRが取り出される。
ビューセレクタ112で取り出された中央のビューの画像データVCはスケーラ113-1に供給され、例えば、1920*1080のフルHDのサイズにスケーリング処理される。スケーリング処理後の画像データVC′は、ビデオエンコーダ114-1に供給される。
ビデオエンコーダ114-1では、この画像データVC′に対して符号化が施されて符号化ビデオデータが得られ、この符号化データをサブストリーム(sub stream 1)として含むビデオストリームが生成される。また、このビデオエンコーダ114-1では、ビデオストリームのピクチャヘッダまたはシーケンスヘッダのユーザデータ領域などに、ビュー構成情報が挿入される。このビデオストリームは、マルチプレクサ115に供給される。
また、ビューセレクタ112で取り出された左端のビューの画像データVLはスケーラ113-2に供給され、例えば、1920*1080のフルHDのサイズにスケーリング処理される。スケーリング処理後の画像データVL′は、ビデオエンコーダ114-2に供給される。
ビデオエンコーダ114-2では、この画像データVL′に対して符号化が施されて符号化ビデオデータが得られ、この符号化データをサブストリーム(sub stream 2)として含むビデオストリームが生成される。また、このビデオエンコーダ114-2では、ビデオストリームのピクチャヘッダまたはシーケンスヘッダのユーザデータ領域などに、ビュー構成情報が挿入される。このビデオストリームは、マルチプレクサ115に供給される。
さらに、ビューセレクタ112で取り出された右端のビューの画像データVRはスケーラ113-3に供給され、例えば、1920*1080のフルHDのサイズにスケーリング処理される。スケーリング処理後の画像データVR′は、ビデオエンコーダ114-3に供給される。
ビデオエンコーダ114-3では、この画像データVR′に対して符号化が施されて符号化ビデオデータが得られ、この符号化データをサブストリーム(sub stream 3)として含むビデオストリームが生成される。また、このビデオエンコーダ114-3では、ビデオストリームのピクチャヘッダまたはシーケンスヘッダのユーザデータ領域などに、ビュー構成情報が挿入される。このビデオストリームは、マルチプレクサ115に供給される。
また、ビューセレクタ112から出力される中央、左端および右端の各ビューの画像データは視差データ生成部116に供給される。この視差データ生成部116では、各ビューの画像データに基づいて、視差データ(disparity data)が生成される。この視差データには、中央のビューおよび左端のビューの間の視差データと、中央のビューおよび右端のビューの間の視差データが含まれる。この場合、画素単位、あるいはブロック(Block)単位で、視差データが生成される。
視差データ生成部116で生成された視差データは、視差エンコーダ117に供給される。この視差エンコーダ117では、視差データに符号化処理が施されて、視差ストリームが生成される。この視差ストリームは、マルチプレクサ115に供給される。
また、グラフィクスデータ出力部118から出力されるグラフィクスデータ(サブタイトルデータも含む)は、グラフィクスエンコーダ119に供給される。このグラフィクスエンコーダ119では、グラフィクスデータを含むグラフィクスストリームが生成される。このグラフィクスストリームは、マルチプレクサ115に供給される。
また、音声データ出力部118から出力される音声データは、オーディオエンコーダ121に供給される。このオーディオエンコーダ121では、音声データに対して、MPEG−2Audio、AAC等の符号化が施され、オーディオストリームが生成される。このオーディオストリームは、マルチプレクサ115に供給される。
マルチプレクサ115では、各エンコーダから供給されるエレメンタリストリームがパケット化されて多重され、トランスポートストリームTSが生成される。この場合、それぞれのPESヘッダには、受信側における同期再生のために、PTSが挿入される。また、マルチプレクサ115では、PMTの配下、あるいはEITの配下などに、ビデオストリームのレイヤにビュー構成情報の挿入があるか否かを識別するための識別情報が挿入される。
なお、図7に示す送信データ生成部110は、トランスポートストリームTSに3つのビデオストリームが含まれる場合を示している。すなわち、トランスポートストリームTSには、中央、左端および右端の各ビューの画像データがそれぞれ1つのピクチャとして符号化されて得られた3つのビデオストリームが含まれる。
詳細説明は省略するが、上述したように、トランスポートストリームTSに2つ、あるいは1つのビデオストリームが含まれる場合も、同様に構成できる。トランスポートストリームTSに2つのビデオストリームが含まれる場合には、例えば、以下のビデオストリームが含まれる。すなわち、中央のビューの画像データが1つのピクチャとして符号化されて得られたビデオストリームと、左端のビューおよび右端のビューの画像データがインターリーブ処理されて1つのピクチャとして符号化されて得られたビデオストリームが含まれる。
また、トランスポートストリームTSに1つのビデオストリームが含まれる場合には、例えば、以下のビデオストリームが含まれる。すなわち、中央、左端および右端の各ビューの画像データがそれぞれ1つのピクチャのデータとして符号化されたデータを含むビデオストリームが含まれる。
次に、2次元(2D)画像送信時の動作を説明する。画像データ出力部111-1〜111-Nのいずれかから2次元画像データが出力される。ビュータセレクタ112では、その2次元画像データが取り出されて、スケーラ113-1に供給される。スケーラ113-1では、ビューセレクタ112で取り出された2次元画像データに対してスケーリング処理が施されて、例えば、1920*1080のフルHDのサイズの2次元画像データが得られる。スケーリング後の2次元画像データは、ビデオエンコーダ114-1に供給される。
ビデオエンコーダ114-1では、2次元画像データに対して、例えば、MPEG4−AVC(MVC)、MPEG2videoなどの符号化が施されて、符号化ビデオデータが得られる。そして、このビデオエンコーダ114-1では、後段に備えるストリームフォーマッタ(図示せず)により、この符号化データをサブストリーム(sub stream 1)として含むビデオストリームが生成される。
ビデオエンコーダ114-1では、ビデオストリームのレイヤに、上述したビュー構成情報が挿入される。このビュー構成情報には、上述したように、当該ビデオストリームに含まれる画像データが3Dを構成する一部のビューの画像データであるか否かを示す情報が含まれている。ここでは、この情報は、当該ビデオストリームに含まれる画像データが3Dを構成する一部のビューの画像データでないこと、つまり2次元画像データを示すものとされる。マルチプレクサ115では、ビデオエンコーダ114-1、グラフィクスエンコーダ119およびオーディオエンコーダ121で生成された各エレメンタリストリームがパケット化されて多重され、トランスポートストリームTSが生成される。
[識別情報およびビュー構成情報の構造と、TS構成]
上述したように、ビデオストリームのレイヤにビュー構成情報の挿入があるか否かを識別するための識別情報が、トランスポートストリームTSのレイヤに挿入される。図12は、この識別情報としてのマルチビュー・ストリーム・コンフィグレーション・デスクリプタ(multiview_stream_configuration_descriptor)の構造例(Syntax)を示している。また、図13は、図12に示す構造例における主要な情報の内容(Semantics)を示している。
「multiview_stream_configuration_tag」は、デスクリプタタイプを示す8ビットのデータであり、ここでは、マルチビュー・ストリーム・コンフィグレーション・デスクリプタであることを示す。「multiview_stream_configuration_length」は、デスクリプタの長さ(サイズ)を示す8ビットのデータである。このデータは、デスクリプタの長さとして、以降のバイト数を示す。
「multiview_stream_checkflag」の1ビットフィールドは、ビデオストリームのレイヤにビュー構成情報の挿入があるか否かを示す。“1”は、ビデオストリームのレイヤにビュー構成情報の挿入があることを示し、“0”はその挿入がないことを示す。“1”であるとき、受信側(デコーダ)では、ユーザデータ領域に存在するビュー構成情報をチェックすることとなる。
また、上述したように、当該ビデオストリームに含まれる画像データが3Dを構成する一部のビューの画像データであるか否かを示す情報などを持つビュー構成情報が、ビデオストリームのレイヤに挿入される。このビュー構成情報は、上述したように、立体(3D)画像送信時には必ず挿入されるが、2次元(2D)画像送信時には挿入されないこともある。図14は、このビュー構成情報としてのマルチビュー・ストリーム・コンフィグレーション・インフォ(multiview_stream_configuration_info())の構造例(Syntax)を示している。また、図15、図16、図17は、図14に示す構造例における主要な情報の内容(Semantics)を示している。
「3D_flag」の1ビットフィールドは、符号化されるビデオストリームに含まれる画像データが3Dを構成する一部のビューの画像データであるか否かを示す。“1”は一部のビューの画像データであることを示し、“0”は一部を示す画像データでないことを示す。
「3D_flag=1」であるとき、「view_count」、「single_view_es_flag」、「view_interleaving_flag」の各情報が存在する。「view_count」の4ビットフィールドは、3Dサービスを構成するビュー数を示す。最小値は1で、最大値は15である。「single_view_es_flag 」の1ビットフィールドは、当該ビデオストリームの1アクセスユニット内に複数のピクチャのデータが符号化されているか否かを示す。“1”は1つのピクチャのデータのみが符号化されていることを示し、“0”は2つ以上のピクチャのデータが符号化されていることを示す。
「view_interleaving_flag」の1ビットフィールドは、当該ビデオストリームにおいて、2つのビューの画像データがインターリーブ処理されて1つのピクチャのデータとして符号化されているか否かを示す。“1”はインターリーブ処理されていて画面スプリットの構成であることを示し、“0”はインターリーブ処理されていないことを示す。
「view_interleaving_flag= 0」であるとき、「view_allocation」の情報が存在する。「view_allocation」の4ビットフィールドは、当該ビデオストリームに含まれる画像データがどのビューの画像データであるか、つまりビュー割り当てを示す。例えば、“0000”は、中央のビュー(center view)であることを示す。また、例えば、“0001”は、中央から左側に1つ隣りのビュー(1st left view next tocenter)であることを示す。また、例えば、“0010”は、中央から右側に1つ隣りのビュー(1st right view next to center)であることを示す。この「view_allocation」は、各ビューの相対位置関係を示す情報を構成している。
「view_interleaving_flag= 1」であるとき、「view_pair_position_id」、「view_interleaving_type」の情報が存在する。「view_pair_position_id」の3ビットフィールドは、全ビューにおける2つのビューの相対的なビュー位置を示す。この場合、例えば、スキャン順で早い位置が左(left)、遅い位置が右(right)とする。例えば、“000”は、両端の2つのビューペアであることを示す。また、例えば、“001”は、両端から1つ内側の2つのビューペアであることを示す。また、例えば、“010”は、両端から1つ内側の2つのビューペアであることを示す。
「view_interleaving_type」の1ビットフィールドは、インターリーブのタイプ(type)を示している。“1”はインターリーブのタイプがサイド・バイ・サイド(Side-by-Side)であることを示し、“0”はインターリーブのタイプがトップ・アンド・ボトム(Top & Bottom)であることを示す。
また、「3D_flag= 1」であるとき、「display_flag」、「indication_of_picture_size_scaling_horizontal」、「indication_of_picture_size_scaling_vertical」の各情報が存在する。「display_flag」の1ビットフィールドは、当該ビューは画像表示を行わせる際に表示必須か否かを示す。“1”は、表示必須であることを示す。一方、“0”は、表示必須でないことを示す。
「indication_of_picture_size_scaling_horizontal 」の4ビットフィールドは、フルHD(1920)に対してのデコード画の水平画素比率を示している。“0000”は100%、“0001”は80%、“0010”は75%、“0011”は66%、“0100”は50%、“0101”は33%、“0110”は25%、“0111”は20%をそれぞれ示す。
「indication_of_picture_size_scaling_vertical 」の4ビットフィールドは、フルHD(1080)に対してのデコード画の垂直画素比率を示している。0000”は100%、“0001”は80%、“0010”は75%、“0011”は66%、“0100”は50%、“0101”は33%、“0110”は25%、“0111”は20%をそれぞれ示す。
図18は、「view_count」が示すビュー数と、「view_pair_position_id」が示す2つのビュー(ここでは、“View 1”, “View 2”としている)の位置との関係の一例を示している。(1)の例は、「view_count」が示すビュー数が2であって、「view_pair_position_id= 000」であって両端の2つのビューであることを示している場合である。また、(2)の例は、「view_count」が示すビュー数が4であって、「view_pair_position_id = 000」であって両端の2つのビューであることを示している場合である。
また、(3)の例は、「view_count」が示すビュー数が4であって、「view_pair_position_id= 001」であって両端から1つ内側の2つのビューであることを示している場合である。また、(4)の例は、「view_count」が示すビュー数が5であって、「view_pair_position_id = 000」であって両端の2つのビューであることを示している場合である。
また、(5)の例は、「view_count」が示すビュー数が9であって、「view_pair_position_id= 000」であって両端の2つのビューであることを示している場合である。さらに、(6)の例は、「view_count」が示すビュー数が9であって、「view_pair_position_id = 010」であって両端から2つ内側の2つのビューであることを示している場合である。
両端よりも内側のビューペアは、受信側でビュー合成を行う際に両端の2つのビューでは十分に画質が満足できないような場合に、補間合成の性能を向上させるために、両端のビューペアに追加で伝送されることが可能である。その際、追加で伝送されるビューペアの符号化ビデオデータは、両端のビューペアのストリームの中に、アクセスユニット(Access Unit)を共有するように符号化されてもよいし、あるいは、別のストリームとして符号化されてもよい。
図19は、上述のように両端の2つのビューペアの画像データと共に、両端よりも内側の2つのビューペアの画像データを送信する場合において、送信側あるいは受信側における視差データ(disparity data)の生成例を示している。図示の例では、view_count」が示すビュー数が9とされている。そして、両端の2つのビュー(View 1, View 2)の画像データが含まれるサブストリーム(substream1)と、それよりも内側の2つのビュー(View 3, View 4)の画像データが含まれるサブストリーム(substream 2)とが存在するものとしている。
この場合、最初に、「View 1」と「View 3」とで視差データを計算する。次に、「View 2」と「View 4」とで視差データを計算する。最後に、「View 3」と「View 4」とで視差データを計算する。なお、サブストリーム間で、ビューの解像度が異なる場合は、どちらかの解像度に合わせた上で、視差データの計算を行う。
図20は、上述したように計算された視差データに基づき、受信側で、各ビューの間に位置するビューの画像データを補間合成する例を示している。この場合、最初に、「View 1」と「View 3」との間の視差データを用いて、「View 1」と「View 3」の間に位置する「View_A」を補間合成する。
次に、「View 2」と「View 4」との間の視差データを用いて、「View 2」と「View 4」の間に位置する「View_B」を補間合成する。最後に、「View 3」と「View 4」との間の視差データを用いて、「View 3」と「View 4」の間に位置する「View_C」、「View_D」、「View_E」を補間合成する。
次に、ビュー構成情報としてのマルチビュー・ストリーム・コンフィグレーション・インフォ(multiview_stream_configuration_info())を、ビデオストリーム(ビデオエレメンタリストリーム)のユーザデータ領域に挿入する場合について説明する。この場合、マルチビュー・ストリーム・コンフィグレーション・インフォは、ユーザデータ領域を利用して、例えば、ピクチャ単位あるいはGOP単位で挿入される。
例えば、符号化方式がAVCあるいはMVCである場合、または、HEVCのような、NALパケットなどの符号化構造が似通っている符号化方式である場合にも、マルチビュー・ストリーム・コンフィグレーション・インフォは、アクセスユニットの“SEIs”の部分に、「Multiview stream configuration SEI message」として、挿入される。図21(a)は、GOP(Group Of Pictures)の先頭のアクセスユニットを示しており、図21(b)は、GOPの先頭以外のアクセスユニットを示している。マルチビュー・ストリーム・コンフィグレーション・インフォがGOP単位で挿入される場合、GOPの先頭のアクセスユニットにのみ「Multiview stream configuration SEI message」が挿入される。
図22(a)は、「Multiview stream configuration SEI message」の構造例(Syntax)を示している。「uuid_iso_iec_11578」は、“ISO/IEC 11578:1996 AnnexA.”で示されるUUID値をもつ。「user_data_payload_byte」のフィールドに、「userdata_for_multiview_stream_configuration()」が挿入される。図22(b)は、「userdata_for_multiview_stream _configuration()」の構造例(Syntax)を示している。この中に、マルチビュー・ストリーム・コンフィグレーション・インフォ(multiview_stream_configuration_info())が挿入される(図14参照)。「userdata_id」は、符号なし16ビットで示されるマルチビュー・ストリーム・コンフィグレーション・インフォの識別子である。
また、例えば、符号化方式がMPEG2 videoである場合、マルチビュー・ストリーム・コンフィグレーション・インフォは、ピクチャヘッダ部のユーザデータ領域に、ユーザデータ「user_data()」として挿入される。図23(a)は、「user_data()」の構造例(Syntax)を示している。「user_data_start_code」の32ビットフィールドは、ユーザデータ(user_data)の開始コードであり、“0x000001B2”の固定値とされる。
この開始コードに続く32ビットフィールドは、ユーザデータの内容を識別する識別子である。ここでは、「Stereo_Video_Format_Signaling_identifier」とされ、ユーザデータが、マルチビュー・ストリーム・コンフィグレーション・インフォであることを識別可能とする。この識別子の後のデータ本体として、ストリーム関連付け情報としての「Multiview_stream_configuration()」が挿入される。図23(b)は、Multiview_stream_configuration()」の構造例(Syntax)を示している。この中に、マルチビュー・ストリーム・コンフィグレーション・インフォ(multiview_stream_configuration_info())が挿入される(図14参照)。
上述の図12に示す識別情報としてのマルチビュー・ストリーム・コンフィグレーション・デスクリプタ(multiview_stream_configuration_descriptor)は、トランスポートストリームTSのレイヤ、例えばPMTの配下、あるいはEITの配下などに挿入される。すなわち、このデスクリプタは、イベント単位あるいは時間的に静的ないし動的なユースケースに置いて最適な位置に配置される。
図24は、立体(3D)画像送信時におけるトランスポートストリームTSの構成例を示している。なお、この構成例では、図面の簡単化のために、視差データ、オーディオ、およびグラフィクスなどに関しては、その図示を省略している。この構成例は、トランスポートストリームTSに3つのビデオストリームが含まれる場合を示している。すなわち、トランスポートストリームTSには、中央、左端および右端の各ビューの画像データがそれぞれ1つのピクチャとして符号化されて得られた3つのビデオストリームが含まれている。また、この構成例は、ビュー数が5である場合を示している。
この図24の構成例では、中央ビューの画像データVC′が1つのピクチャとして符号化されているビデオストリームのPESパケット「video PES1」が含まれている。このビデオストリームのユーザデータ領域に挿入されるマルチビュー・ストリーム・コンフィグレーション・インフォにおいては、「View_count」が示すビュー数が5であることが示されている。
また、このインフォにおいては、「single_view_es_flag = 1」とされ、このビデオストリームにおいて、1アクセスユニット内に1つのピクチャのデータのみが符号化されていることが示されている。また、このインフォにおいては、「View_interleaving_flag= 0」とされ、このビデオストリームにおいて、2つのビューの画像データがインターリーブ処理されて1つのピクチャのデータとして符号化されていないことが示されている。さらに、「view_allocation = 0000」とされ、このビデオストリームに含まれる画像データが中央のビューの画像データであることが示されている。
また、この図24の構成例では、左端ビューの画像データVL′が1つのピクチャとして符号化されているビデオストリームのPESパケット「video PES2」が含まれている。このビデオストリームのユーザデータ領域に挿入されるマルチビュー・ストリーム・コンフィグレーション・インフォにおいては、「View_count」が示すビュー数が5であることが示されている。
また、このインフォにおいては、「single_view_es_flag = 1」とされ、このビデオストリームにおいて、1アクセスユニット内に1つのピクチャのデータのみが符号化されていることが示されている。また、このインフォにおいては、「View_interleaving_flag= 0」とされ、このビデオストリームにおいて、2つのビューの画像データがインターリーブ処理されて1つのピクチャのデータとして符号化されていないことが示されている。さらに、「view_allocation = 0011」とされ、このビデオストリームに含まれる画像データが中央から左側に2つ隣りのビュー、つまり左端ビューの画像データであることが示されている。
また、この図24の構成例では、左端ビューの画像データVR′が1つのピクチャとして符号化されているビデオストリームのPESパケット「video PES3」が含まれている。このビデオストリームのユーザデータ領域に挿入されるマルチビュー・ストリーム・コンフィグレーション・インフォにおいては、「View_count」が示すビュー数が5であることが示されている。
また、このインフォにおいては、「single_view_es_flag = 1」とされ、このビデオストリームにおいて、1アクセスユニット内に1つのピクチャのデータのみが符号化されていることが示されている。また、このインフォにおいては、「View_interleaving_flag= 0」とされ、このビデオストリームにおいて、2つのビューの画像データがインターリーブ処理されて1つのピクチャのデータとして符号化されていないことが示されている。さらに、「view_allocation = 0100」とされ、このビデオストリームに含まれる画像データが中央から右側に2つ隣りのビュー、つまり右端ビューの画像データであることが示されている。
また、トランスポートストリームTSには、PSI(Program Specific Information)として、PMT(ProgramMap Table)が含まれている。このPSIは、トランスポートストリームに含まれる各エレメンタリストリームがどのプログラムに属しているかを記した情報である。また、トランスポートストリームには、イベント単位の管理を行うSI(Serviced Information)としてのEIT(EventInformation Table)が含まれている。
PMTには、各エレメンタリストリームに関連した情報を持つエレメンタリ・ループが存在する。この構成例では、ビデオエレメンタリ・ループ(Video ES loop)が存在する。このエレメンタリ・ループには、ストリーム毎に、パケット識別子(PID)等の情報が配置されると共に、そのエレメンタリストリームに関連する情報を記述するデスクリプタも配置される。
この構成例では、PMTのビデオエレメンタリ・ループ(Video ES loop)の配下に、各ビデオストリームに関連して、マルチビュー・ストリーム・コンフィグレーション・デスクリプタ(multiview_stream_configuration_descriptor)が挿入されている。このデスクリプタで「multiview_stream_checkflag = 1」とされ、ビデオストリームのユーザ領域におけるビュー構成情報としてのマルチビュー・ストリーム・コンフィグレーション・インフォの存在が示されている。なお、このデスクリプタを、破線図示するように、EITの配下に挿入することも考えられる。
また、図25も、立体(3D)画像送信時におけるトランスポートストリームTSの構成例を示している。なお、この構成例でも、図面の簡単化のために、視差データ、オーディオ、およびグラフィクスなどに関しては、その図示を省略している。この構成例は、トランスポートストリームTSに2つのビデオストリームが含まれる場合を示している。すなわち、トランスポートストリームTSには、中央のビューの画像データが1つのピクチャとして符号化されて得られたビデオストリームとが含まれている。また、このトランスポートストリームTSには、左端のビューおよび右端のビューの画像データがインターリーブ処理されて1つのピクチャとして符号化されて得られたビデオストリームが含まれている。また、この構成例も、ビュー数が5である場合を示している。
この図25の構成例では、中央ビューの画像データVC′が1つのピクチャとして符号化されているビデオストリームのPESパケット「video PES1」が含まれている。このビデオストリームのユーザデータ領域に挿入されるマルチビュー・ストリーム・コンフィグレーション・インフォにおいては、「View_count」が示すビュー数が5であることが示されている。
また、このインフォにおいては、「single_view_es_flag = 1」とされ、このビデオストリームにおいて、1アクセスユニット内に1つのピクチャのデータのみが符号化されていることが示されている。また、このインフォにおいては、「View_interleaving_flag= 0」とされ、このビデオストリームにおいて、2つのビューの画像データがインターリーブ処理されて1つのピクチャのデータとして符号化されているものではないことが示されている。さらに、「view_allocation = 0000」とされ、このビデオストリームに含まれる画像データが中央のビューの画像データであることが示されている。
また、この図25の構成例では、左端ビューの画像データVL′および右端ビューの画像データVR′が1つのピクチャとして符号化されているビデオストリームのPESパケット「video PES2」が含まれている。このビデオストリームのユーザデータ領域に挿入されるマルチビュー・ストリーム・コンフィグレーション・インフォにおいては、「View_count」が示すビュー数が5であることが示されている。
また、このインフォにおいては、「single_view_es_flag = 1」とされ、このビデオストリームにおいて、1アクセスユニット内に1つのピクチャのデータのみが符号化されていることが示されている。また、このインフォにおいては、「View_interleaving_flag= 1」とされ、このビデオストリームにおいて、2つのビューの画像データがインターリーブ処理されて1つのピクチャのデータとして符号化されていることが示されている。さらに、「view_pair_position_id= 000」とされ、両端の2つのビューペアであることが示されている。さらに、「view_interleaving_type= 1」とされ、インターリーブのタイプがサイド・バイ・サイド(Side-by-Side)であることが示されている。
また、この構成例では、PMTのビデオエレメンタリ・ループ(Video ES loop)の配下に、各ビデオストリームに関連して、マルチビュー・ストリーム・コンフィグレーション・デスクリプタ(multiview_stream_configuration_descriptor)が挿入されている。このデスクリプタで「multiview_stream_checkflag = 1」とされ、ビデオストリームのユーザ領域におけるビュー構成情報としてのマルチビュー・ストリーム・コンフィグレーション・インフォの存在が示されている。なお、このデスクリプタを、破線図示するように、EITの配下に挿入することも考えられる。
また、図26も、立体(3D)画像送信時におけるトランスポートストリームTSの構成例を示している。なお、この構成例でも、図面の簡単化のために、視差データ、オーディオ、およびグラフィクスなどに関しては、その図示を省略している。この構成例は、トランスポートストリームTSに1つのビデオストリームが含まれる場合を示している。すなわち、トランスポートストリームTSには、中央、左端および右端の各ビューの画像データがそれぞれ1つのピクチャのデータとして符号化されたデータを含むビデオストリームが含まれている。また、この構成例も、ビュー数が5である場合を示している。
この図26の構成例では、1つのビデオストリームのPESパケット「video PES1」が含まれている。このビデオストリームには、中央、左端および右端の各ビューの画像データがそれぞれ1アクセスユニット内に1つのピクチャのデータとして符号化されたデータが含まれており、各ピクチャに対応してユーザデータ領域が存在する。そして、それぞれに、マルチビュー・ストリーム・コンフィグレーション・インフォが挿入されている。
中央ビューの画像データが符号化されたピクチャデータに対応するインフォにおいては、「View_count」が示すビュー数が5であることが示されている。また、このインフォにおいては、「single_view_es_flag = 0」とされ、このビデオストリームにおいて、1アクセスユニット内に複数のピクチャのデータが符号化されていることが示されている。また、このインフォにおいては、「View_interleaving_flag= 0」とされ、このピクチャデータが2つのビューの画像データがインターリーブ処理されて符号化されたものでないことが示されている。さらに、「view_allocation = 0000」とされ、このピクチャデータに含まれる画像データが中央のビューの画像データであることが示されている。
また、左端ビューの画像データが符号化されたピクチャデータに対応するインフォにおいては、「View_count」が示すビュー数が5であることが示されている。また、このインフォにおいては、「single_view_es_flag = 0」とされ、このビデオストリームにおいて、1アクセスユニット内に複数のピクチャのデータが符号化されていることが示されている。また、このインフォにおいては、「View_interleaving_flag= 0」とされ、このピクチャデータが2つのビューの画像データがインターリーブ処理されて符号化されたものでないことが示されている。さらに、「view_allocation = 0011」とされ、このピクチャデータに含まれる画像データが中央から左側に2つ隣りのビュー、つまり左端ビューの画像データであることが示されている。
また、右端ビューの画像データが符号化されたピクチャデータに対応するインフォにおいては、「View_count」が示すビュー数が5であることが示されている。また、このインフォにおいては、「single_view_es_flag = 0」とされ、このビデオストリームにおいて、1アクセスユニット内に複数のピクチャのデータが符号化されていることが示されている。また、このインフォにおいては、「View_interleaving_flag= 0」とされ、このピクチャデータが2つのビューの画像データがインターリーブ処理されて符号化されたものでないことが示されている。さらに、「view_allocation = 0100」とされ、このピクチャデータに含まれる画像データが中央から右側に2つ隣りのビュー、つまり右端ビューの画像データであることが示されている。
また、この構成例では、PMTのビデオエレメンタリ・ループ(Video ES loop)の配下に、1つのビデオストリームに関連して、マルチビュー・ストリーム・コンフィグレーション・デスクリプタ(multiview_stream_configuration_descriptor)が挿入されている。このデスクリプタで「multiview_stream_checkflag = 1」とされ、ビデオストリームのユーザ領域におけるビュー構成情報としてのマルチビュー・ストリーム・コンフィグレーション・インフォの存在が示されている。なお、このデスクリプタを、破線図示するように、EITの配下に挿入することも考えられる。
上述したように、図7に示す送信データ生成部110においては、立体(3D)画像送信時においては、立体画像表示のための複数のビューのうち、少なくとも左端のビューおよび右端のビューの画像データと、左端および右端の間に位置する中間のビューの画像データとが符号化されて得られたビデオストリームを含むトランスポートストリームTSが生成される。そのため、マルチビュー構成による立体画像の裸眼観賞を行うための画像データ伝送を効果的に行うことができる。
すなわち、左端のビューおよび右端のビューの画像データだけでなく、中間のビューの画像データも送信されるので、ビュー間の相対視差が小さく、その他のビューの画像データを補間する際の細かな部分の処理に伴うオクルージョン周辺の補間が容易になり、再生画像の品質向上を図ることができる。また、左端のビューおよび右端のビューの画像データが送信されるので、伝送されないビューの画像データの補間は全て内挿処理によって合成でき、オクルージョンなどの端点処理に関して高画質を維持することが容易となる。
また、図7に示す送信データ生成部110においては、立体(3D)画像送信時においては、必ず、ビデオストリームのレイヤに、ビュー構成情報としてのマルチビュー・ストリーム・コンフィグレーション・インフォ(multiview_stream_configuration_info())が挿入される。そのため、受信側では、このビュー構成情報により、複数のビューの画像データによる3次元画像(立体画像)の裸眼観賞を行うための適切かつ効率的な処理が可能となる。
また、図7に示す送信データ生成部110においては、トランスポートストリームTSのレイヤに、マルチビュー・ストリーム・コンフィグレーション・デスクリプタ(multiview_stream_configuration_descriptor)が挿入される。このデスクリプタは、ビデオストリームのレイヤにビュー構成情報の挿入があるか否かを識別するための識別情報を構成している。この識別情報により、受信側では、ビデオストリームのレイヤにビュー構成情報の挿入があるか否かを容易に識別可能となる。そのため、ビデオストリームのユーザデータ領域からのビュー構成情報の効率的な抽出が可能となる。
また、図7に示す送信データ生成部110においては、視差データ生成部116で各ビュー間の視差データが生成され、この視差データが符号化されて得られた視差ストリームが、ビデオストリームと共に、トランスポートストリームTSに含まれる。そのため、受信側では、受信された各ビューの画像データから視差データを生成する処理を行うことなく、送られてくる視差データに基づいて、伝送されない各ビューの画像データを容易に補間合成することが可能となる。
「受信機の構成例」
図27は、受信機200の構成例を示している。この受信機200は、CPU201と、フラッシュROM202と、DRAM203と、内部バス204と、リモートコントロール受信部(RC受信部)205と、リモートコントロール送信機(RC送信機)206を有している。また、この受信機200は、アンテナ端子211と、デジタルチューナ212と、トランスポートストリームバッファ(TSバッファ)213と、デマルチプレクサ214を有している。
また、受信機200は、コーデッドバッファ215-1,215-2,215-3と、ビデオデコーダ216-1,216-2,216-3と、デコーデッドバッファ217-1,217-2,217-3と、スケーラ218-1,218-2,218-3を有している。また、受信機200は、ビュー補間部219と、ピクセルインターリーブ/重畳部220を有している。また、受信機200は、コーデッドバッファ221と、視差デコーダ222と、視差バッファ223と、視差データ変換部224を有している。
また、受信機200は、コーデッドバッファ225と、グラフィクスデコーダ226と、ピクセルバッファ227と、スケーラ228と、グラフィクスシフタ229を有している。さらに、受信機200は、コーデッドバッファ230と、オーディオデコーダ231と、チャネルミキシング部232を有している。
CPU201は、受信機200の各部の動作を制御する。フラッシュROM202は、制御ソフトウェアの格納およびデータの保管を行う。DRAM203は、CPU201のワークエリアを構成する。CPU201は、フラッシュROM202から読み出したソフトウェアやデータをDRAM203上に展開してソフトウェアを起動させ、受信機200の各部を制御する。RC受信部205は、RC送信機206から送信されたリモーコントロール信号(リモコンコード)を受信し、CPU201に供給する。CPU201は、このリモコンコードに基づいて、受信機200の各部を制御する。CPU201、フラッシュROM202およびDRAM203は、内部バス204に接続されている。
以下、最初に、立体(3D)画像受信時の場合について説明する。アンテナ端子211は、受信アンテナ(図示せず)で受信されたテレビ放送信号を入力する端子である。デジタルチューナ212は、アンテナ端子211に入力されたテレビ放送信号を処理して、ユーザの選択チャネルに対応した所定のトランスポートストリーム(ビットストリームデータ)TSを出力する。トランスポートストリームバッファ(TSバッファ)213は、デジタルチューナ212から出力されたトランスポートストリームTSを一時的に蓄積する。
このトランスポートストリームTSに、立体画像表示のための複数のビューのうち、左端のビューおよび右端のビューの画像データと、左端および右端の間に位置する中間のビューとしての中央のビューの画像データとが符号化されて得られたビデオストリームが含まれている。
この場合、トランスポートストリームTSに、3つ、2つ、あるいは1つのビデオストリームが含まれる場合等がある(図24、図25、図26参照)。ここでは、説明を簡単にするために、トランスポートストリームTSに、中央、左端および右端の各ビューの画像データがそれぞれ1つのピクチャとして符号化されて得られた3つのビデオストリームが含まれるものとして説明を行うものとする。
このトランスポートストリームTSには、上述したように、PMTの配下、あるいはEITの配下などに、マルチビュー・ストリーム・コンフィグレーション・デスクリプタ(multiview_stream_configuration_descriptor)が挿入されている。このデスクリプタは、ビデオストリームのレイヤにビュー構成情報、つまりマルチビュー・ストリーム・コンフィグレーション・インフォ(multiview_stream_configuration_info())の挿入があるか否かを識別するための識別情報である。
デマルチプレクサ214は、TSバッファ213に一時的に蓄積されたトランスポートストリームTSから、ビデオ、視差、グラフィクスおよびオーディオの各エレメンタリストリームを抽出する。また、デマルチプレクサ214は、このトランスポートストリームTSから、上述したマルチビュー・ストリーム・コンフィグレーション・デスクリプタを抽出し、CPU201に送る。CPU201は、このデスクリプタの「multiview_stream_checkflag」の1ビットフィールドにより、ビデオストリームのレイヤにビュー構成情報の挿入があるか否かを容易に判断できる。
コーデッドバッファ215-1,215-2,215-3は、それぞれ、デマルチプレクサ214で抽出される中央、左端および右端の各ビューの画像データがそれぞれ1つのピクチャとして符号化されて得られたビデオストリームを一時的に蓄積する。ビデオデコーダ216-1,216-2,216-3は、CPU201の制御のもと、それぞれ、コーデッドバッファ215-1,215-2,215-3に記憶されているビデオストリームの復号化処理を行って、中央、左端および右端の各ビューの画像データを取得する。
ここで、ビデオデコーダ216-1は、圧縮データバッファを使用した復号化処理を行って中央ビュー(center view)の画像データを取得する。また、ビデオデコーダ216-2は、圧縮データバッファを使用した復号化処理を行って左端ビュー(left view)の画像データを取得する。さらに、ビデオデコーダ216-3は、圧縮データバッファを使用した復号化処理を行って右端ビュー(right view)の画像データを取得する。なお、2つ以上のビューがインターリーブされて符号化されている場合は、ストリーム単位で、コーデッドバッファ、ビデオデコーダ、デコーデッドバッファ、スケ―ラが割り当てられることになる。
各ビデオデコーダは、ビデオストリームのピクチャヘッダまたはシーケンスヘッダのユーザデータ領域などに挿入されているビュー構成情報としてのマルチビュー・ストリーム・コンフィグレーション・インフォ(multiview_stream_configuration_info())を抽出し、CPU201に送る。CPU201は、このビュー構成情報により、複数のビューの画像データによる3次元画像(立体画像)の裸眼観賞を行うための適切かつ効率的な処理を行う。
すなわち、CPU201は、このビュー構成情報に基づいて、番組単位、シーン単位、ピクチャグループ単位、あるいはピクチャ単位で、デマルチプレクサ214、ビデオデコーダ216-1,216-2,216-3、スケーラ218-1,218-2,218-3、ビュー補間部219等の動作を制御する。例えば、CPU201は、「view_count」の4ビットフィールドにより、3Dサービスを構成するビュー数を認識できる。
また、例えば、CPU201は、「single_view_es_flag 」の1ビットフィールドにより、ビデオストリームの1アクセスユニット内に複数のピクチャのデータが符号化されているか否かを識別できる。また、例えば、CPU201は、「view_interleaving_flag」の1ビットフィールドにより、ビデオストリームにおいて、2つのビューの画像データがインターリーブ処理されて1つのピクチャのデータとして符号化されているか否かを識別できる。
また、例えば、CPU201は、ビデオストリームにおいて、2つのビューの画像データがインターリーブ処理されて1つのピクチャのデータとして符号化されていないとき、「view_allocation」の4ビットフィールドにより、ビデオストリームに含まれる画像データがどのビューの画像データであるかを認識できる。
また、例えば、CPU201は、ビデオストリームにおいて、2つのビューの画像データがインターリーブ処理されて1つのピクチャのデータとして符号化されているとき、「view_pair_position_id」の3ビットフィールドにより、全ビューにおける2つのビューの相対的なビュー位置を認識できる。さらに、このとき、CPU201は、「view_interleaving_type」の1ビットフィールドにより、インターリーブのタイプ(type)を知ることができる。
また、例えば、CPU201は、「indication_of_picture_size_scaling _horizontal 」の4ビットフィールドおよび「indication_of_picture_size_scaling _vertical 」の4ビットフィールドにより、フルHDに対してのデコード画の水平画素比率を認識できる。
デコーデッドバッファ217-1,217-2,217-3は、それぞれ、ビデオデコーダ216-1,216-2,216-3で取得された各ビューの画像データを一時的に蓄積する。スケーラ218-1,218-2,218-3は、それぞれ、デコーデッドバッファ217-1,217-2,217-3から出力される各ビューの画像データの出力解像度が、所定の解像度となるように調整する。
マルチビュー・ストリーム・コンフィグレーション・インフォには、デコード画の水平画素比率を示す「indication_of_picture_size_scaling _horizontal 」の4ビットフィールドおよびデコード画の垂直画素比率を示す「indication_of_picture_size_scaling _vertical 」の4ビットフィールドが存在する。CPU201は、この画素比率情報に基づいて、スケーラ218-1,218-2,218-3におけるスケーリング比率を制御し、所定の解像度が得られるようにする。
この場合、CPU201は、デコードした画像データの解像度、モニタの解像度およびビュー(view)の数に基づいて、デコーデッドバッファに蓄積されている画像データに対するスケーリング比を算出し、スケーラ218-1,218-2,218-3に指示を行う。図28は、スケーリング比の算出例を示している。
例えば、デコードした画像データの解像度が960*1080で、モニタ解像度が1920*1080で、表示するビューの数が4である場合には、スケーリング比は1/2とされる。また、例えば、デコードした画像データの解像度が1920*1080で、モニタ解像度が1920*1080で、表示するビューの数が4である場合には、スケーリング比は1/4とされる。さらに、例えば、デコードした画像データの解像度が1920*2160で、モニタ解像度が3840*2160で、表示するビューの数が8である場合には、スケーリング比は1/4とされる。
コーデッドバッファ221は、デマルチプレクサ214で抽出される視差ストリームを一時的に蓄積する。視差デコーダ222は、上述の送信データ生成部110の視差エンコーダ117(図7参照)とは逆の処理を行う。すなわち、視差デコーダ223は、コーデッドバッファ221に記憶されている視差ストリームの復号化処理を行って、視差データを得る。この視差データには、中央ビューと左端ビューとの間の視差データと、中央ビューと右端ビューとの間の視差データが含まれている。また、この視差データは、画素単位、あるいはブロック単位の視差データである。視差バッファ223は、視差デコーダ222で取得された視差データを一時的に蓄積する。
視差データ変換部224は、視差バッファ223に蓄積されている視差データに基づいて、スケーリング後の画像データのサイズに合った画素単位の視差データを生成する。例えば、送信されてくる視差データがブロック単位である場合には、画素単位の視差データに変換する(図11参照)。また、例えば、送信されてくる視差データが画素単位であるが、スケーリング後の画像データのサイズに合っていない場合には、適宜、スケーリングされる。
ビュー補間部219は、スケーリング後の中央、左端および右端の各ビューの画像データから、視差データ変換部224で得られた各ビュー間の視差データに基づいて、伝送されてこない所定数のビューの画像データを補間合成する。すなわち、ビュー補間部219は、中央ビューと左端ビューとの間に位置する各ビューの画像データを補間合成して出力する。また、ビュー補間部219は、中央ビューと右端ビューとの間に位置する各ビューの画像データを補間合成して出力する。
図29は、ビュー補間部219における補間合成処理の一例を概略的に示している。図示の例において、例えば、カレントビュー(Current view)は上述の中央ビューに相当し、ターゲットビュー1(Targetview 1)は上述の左端ビューに相当し、ターゲットビュー2(Target view 2)は上述の右端ビューに相当する。
カレントビューとターゲットビュー1との間に位置するビューの補間合成と、カレントビューとターゲットビュー2との間に位置するビューの補間合成とは、同様に行われる。以下では、カレントビューとターゲットビュー1との間に位置するビューの補間合成について説明する。
カレントビューとターゲットビュー1との間に位置する補間合成するビューの画素は、以下のように割り当てられる。この場合、カレントビューからターゲットビュー1を指し示す視差データと、逆に、ターゲットビュー1からカレントビューを指し示す視差データとの、2方向の視差データが用いられる。まず、補間合成するビューの画素として、カレントビューの画素を、視差データをベクターとしてずらすことで、割り当てる(カレントビューからターゲットビュー1に向いた実線矢印および破線矢印と、黒丸を参照)。
この際に、ターゲットビュー1においてターゲット・オクルーデッド(target occluded)となる部分では、以下の画素割り当てを行う。すなわち、補間合成するビューの画素として、ターゲットビュー1の画素を、視差データをベクターとしてずらすことで、割り当てる(ターゲットビュー1からカレントビューに向いた一点鎖線矢印と、白丸を参照)。
このように、ターゲット・オクルーデッドとなる部分では、双方向の視差データを持つことで、補間合成されるビューの画素を、バックグランド(background)と見なせるビューからの画素で充当できる。なお、双方向で対応できないオクルージョン(Occlusion)領域は、ポスト(Post)処理で値を充当する。
また、図示の矢印の先端が重なっているターゲット・オーバーラップド(target overlapped)となる部分は、ターゲットビュー1において、視差(disparity)によるシフトが重なる部分である。この部分においては、2つの視差のうち、どちらがカレントビューのフォグランド(fore ground)に相当するかを、視差データの値で判断し、選択する。この場合には、主には値の小さな方が選択される。
図27に戻って、コーデッドバッファ225は、デマルチプレクサ214で抽出されるグラフィクスストリームを一時的に蓄積する。グラフィクスデコーダ226は、上述の送信データ生成部110のグラフィクスエンコーダ119(図7参照)とは逆の処理を行う。すなわち、グラフィクスデコーダ226は、コーデッドバッファ225に記憶されているグラフィクスストリームの復号化処理を行って、復号化されたグラフィクスデータ(サブタイトルデータを含む)を得る。また、グラフィクスデコーダ226は、このグラフィクスデータに基づいて、ビュー(画像)に重畳するグラフィクスのビットマップデータを発生する。
ピクセルバッファ227は、グラフィクスデコーダ226で発生されるグラフィクスのビットマップデータを一時的に蓄積する。スケーラ228は、ピクセルバッファ227に蓄積されているグラフィクスのビットマップデータのサイズを、スケーリング後の画像データのサイズに対応するように調整する。グラフィクスシフタ229は、サイズ調整後のグラフィクスのビットマップデータに対して、視差データ変換部224で得られる視差データに基づいてシフト処理を施す。そして、グラフィクスシフタ229は、ビュー補間部219から出力されるN個のビュー(View1, View2,・・・,ViewN )の画像データにそれぞれ重畳するN個のグラフィクスのビットマップデータを生成する。
ピクセルインターリーブ/重畳部220は、ビュー補間部219から出力されるN個のビュー(View1, View2,・・・,ViewN )の画像データにそれぞれ対応するグラフィクスのビットマップデータを重畳する。さらに、ピクセルインターリーブ/重畳部220は、N個のビュー(View1, View2,・・・,ViewN )の画像データに対してピクセルインターリーブ処理を行って、3次元画像(立体画像)の裸眼観賞のための表示用画像データを生成する。
コーデッドバッファ230は、デマルチプレクサ214で抽出されるオーディオストリームを一時的に蓄積する。オーディオデコーダ231は、上述の送信データ生成部110のオーディオエンコーダ121(図7参照)とは逆の処理を行う。すなわち、オーディオデコーダ231は、コーデッドバッファ230に記憶されているオーディオスストリームの復号化処理を行って、復号化された音声データを得る。チャネルミキシング部232は、オーディオデコーダ231で得られる音声データに対して、例えば5.1chサラウンド等を実現するための各チャネルの音声データを生成して出力する。
なお、デコーデッドバッファ217-1,217-2,217-2からの各ビューの画像データの読み出しと、視差バッファ223からの視差データの読み出しと、ピクセルバッファ227からのグラフィクスのビットマップデータの読み出しとは、PTSに基づいて行われ、転送同期が取られる。
次に、2次元(2D)画像受信時の場合について説明する。なお、上述した立体(3D)画像受信時の場合と同一である場合には、適宜、その説明を省略する。トランスポートストリームバッファ(TSバッファ)213は、デジタルチューナ212から出力されたトランスポートストリームTSを一時的に蓄積する。このトランスポートストリームTSに、2次元画像データが符号化されて得られたビデオストリームが含まれている。
ビデオストリームのレイヤにビュー構成情報、つまりマルチビュー・ストリーム・コンフィグレーション・インフォ(multiview_stream_configuration_info())の挿入があるとき、トランスポートストリームバッファ(TSバッファ)213には、上述したように、PMTの配下、あるいはEITの配下などに、マルチビュー・ストリーム・コンフィグレーション・デスクリプタ(multiview_stream_configuration_descriptor)が挿入されている。
デマルチプレクサ214は、TSバッファ213に一時的に蓄積されたトランスポートストリームTSから、ビデオ、グラフィクスおよびオーディオの各エレメンタリストリームを抽出する。また、デマルチプレクサ214は、このトランスポートストリームTSから、上述したマルチビュー・ストリーム・コンフィグレーション・デスクリプタを抽出し、CPU201に送る。CPU201は、このデスクリプタの「multiview_stream_checkflag」の1ビットフィールドにより、ビデオストリームのレイヤにビュー構成情報の挿入があるか否かを容易に判断できる。
コーデッドバッファ215-1は、デマルチプレクサ214で抽出される2次元画像データが符号化されて得られたビデオストリームを一時的に蓄積する。ビデオデコーダ216-1は、CPU201の制御のもと、コーデッドバッファ215-1に記憶されているビデオストリームの復号化処理を行って、2次元画像データを取得する。デコーデッドバッファ217-1は、ビデオデコーダ216-1で取得された2次元画像データを一時的に蓄積する。
スケーラ218-1は、デコーデッドバッファ217-1から出力される2次元画像データの出力解像度を、所定の解像度となるように調整する。ビュー補間部219は、スケーラ218-1で得られるスケーリング後の2次元画像データを、そのまま、例えばビュー1(View 1)の画像データとして出力する。この場合、ビュー補間部219は、2次元画像データのみを出力する。
この場合、コーデッドバッファ215-2,215-3、ビデオデコーダ216-2,216-3、デコーデッドバッファ217-2,217-3およびスケーラ218-2,218-3は、非動作状態におかれる。また、デマルチプレクサ214では視差のエレメンタリストリームの抽出はなく、コーデッドバッファ221、視差デコーダ222、視差バッファ223および視差データ変換部224は、非動作状態におかれる。
グラフィクスシフタ229は、スケーラ228で得られるサイズ調整後のグラフィクスのビットマップデータを、そのまま出力する。ピクセルインターリーブ/重畳部220は、ビュー補間部219から出力される2次元画像データに、グラフィクスシフタ229から出力されるグラフィクスのビットマップデータを重畳して、2次元画像の表示用画像データを生成する。
詳細説明は省略するが、音声系に関しては、立体(3D)画像送信時の場合と同様である。
受信機200の動作を簡単に説明する。最初に、立体(3D)画像受信時の動作を説明する。アンテナ端子211に入力されたテレビ放送信号はデジタルチューナ212に供給される。このデジタルチューナ212では、テレビ放送信号が処理されて、ユーザの選択チャネルに対応した所定のトランスポートストリームTSが出力される。このトランスポートストリームTSは、TSバッファ213に一時的に蓄積される。
このトランスポートストリームTSには、立体画像表示のための複数のビューのうち、左端のビューおよび右端のビューの画像データと、左端および右端の間に位置する中間のビューとしての中央のビューの画像データとが符号化されて得られたビデオストリームが含まれている。
デマルチプレクサ214では、TSバッファ213に一時的に蓄積されたトランスポートストリームTSから、ビデオ、視差、グラフィクスおよびオーディオの各エレメンタリストリームが抽出される。また、デマルチプレクサ214では、このトランスポートストリームTSから、識別情報としてのマルチビュー・ストリーム・コンフィグレーション・デスクリプタが抽出され、CPU201に送られる。CPU201では、このデスクリプタの「multiview_stream_checkflag」の1ビットフィールドにより、ビデオストリームのレイヤにビュー構成情報の挿入があるか否かを容易に判断できる
デマルチプレクサ214で抽出される中央、左端および右端の各ビューの画像データが符号化されているビデオストリームは、それぞれ、コーデッドバッファ215-1,215-2,215-3に供給されて一時的に蓄積する。そして、ビデオデコーダ216-1,216-2,216-3では、CPU201の制御のもと、それぞれ、コーデッドバッファ215-1,215-2,215-3に記憶されているビデオストリームの復号化処理が行われて、中央、左端および右端の各ビューの画像データが取得される。
また、各ビデオデコーダでは、ビデオストリームのピクチャヘッダまたはシーケンスヘッダのユーザデータ領域などに挿入されているビュー構成情報としてのマルチビュー・ストリーム・コンフィグレーション・インフォ(multiview_stream_configuration_info())が抽出され、CPU201に送られる。CPU201は、このビュー構成情報に基づいて、立体(3D)画像受信時の動作を行うように、つまり立体(3D)表示処理を行うように、各部の動作を制御する。
ビデオデコーダ216-1,216-2,216-3で取得された各ビューの画像データは、それぞれ、デコーデッドバッファ217-1,217-2,217-3に供給されて一時的に蓄積される。スケーラ218-1,218-2,218-3では、それぞれ、デコーデッドバッファ217-1,217-2,217-3から出力される各ビューの画像データの出力解像度が所定の解像度となるように調整される。
また、デマルチプレクサ214で抽出される視差ストリームは、コーデッドバッファ221に供給されて一時的に蓄積される。視差デコーダ222では、コーデッドバッファ221に記憶されている視差ストリームの復号化処理が行われて、視差データが得られる。この視差データには、中央ビューと左端ビューとの間の視差データと、中央ビューと右端ビューとの間の視差データが含まれている。また、この視差データは、画素単位、あるいはブロック単位の視差データである。
視差デコーダ222で取得された視差データは、視差バッファ223に供給されて一時的に蓄積される。視差データ変換部224は、視差バッファ223に蓄積されている視差データに基づいて、スケーリング後の画像データのサイズに合った画素単位の視差データが生成される。この場合、送信されてくる視差データがブロック単位である場合には、画素単位の視差データに変換される。また、この場合、送信されてくる視差データが画素単位であるが、スケーリング後の画像データのサイズに合っていない場合には、適宜、スケーリングされる。
ビュー補間部219では、スケーリング後の中央、左端および右端の各ビューの画像データから、視差データ変換部224で得られた各ビュー間の視差データに基づいて、伝送されてこない所定数のビューの画像データが補間合成される。このビュー補間部219からは、3次元画像(立体画像)を裸眼観賞するためのN個のビュー(View1, View2,・・・,ViewN )の画像データが得られる。なお、中央、左端および右端の各ビューの画像データも含まれる。
また、デマルチプレクサ214で抽出されるグラフィクスストリームは、コーデッドバッファ225に供給されて一時的に蓄積される。グラフィクスデコーダ226では、コーデッドバッファ225に記憶されているグラフィクスストリームの復号化処理が行われて、復号化されたグラフィクスデータ(サブタイトルデータを含む)が得られる。また、このグラフィクスデコーダ226では、このグラフィクスデータに基づいて、ビュー(画像)に重畳するグラフィクスのビットマップデータが発生される。
グラフィクスデコーダ226で発生されるグラフィクスのビットマップデータは、ピクセルバッファ227に供給されて一時的に蓄積される。スケーラ228では、ピクセルバッファ227に蓄積されているグラフィクスのビットマップデータのサイズが、スケーリング後の画像データのサイズに対応するように調整される。
グラフィクスシフタ229では、サイズ調整後のグラフィクスのビットマップデータに対して、視差データ変換部224で得られる視差データに基づいてシフト処理が施される。そして、グラフィクスシフタ229では、ビュー補間部219から出力されるN個のビュー(View1, View2,・・・,ViewN )の画像データにそれぞれ重畳するN個のグラフィクスのビットマップデータが生成され、ピクセルインターリーブ/重畳部220に供給される。
ピクセルインターリーブ/重畳部220では、N個のビュー(View1, View2,・・・,ViewN )の画像データにそれぞれ対応するグラフィクスのビットマップデータが重畳される。また、ピクセルインターリーブ/重畳部220では、N個のビュー(View1, View2,・・・,ViewN )の画像データに対してピクセルインターリーブ処理が行われて、3次元画像(立体画像)の裸眼観賞のための表示用画像データが生成される。この表示用画像データがディスプレイに供給されることで、3次元画像(立体画像)の裸眼観賞のための、画像表示が行われる。
また、デマルチプレクサ214で抽出されるオーディオストリームは、コーデッドバッファ230に供給されて一時的に蓄積される。オーディオデコーダ231では、コーデッドバッファ230に記憶されているオーディオスストリームの復号化処理が行われて、復号化された音声データが得られ。この音声データはチャネルミキシング部232に供給される。チャネルミキシング部232では、音声データに対して、例えば5.1chサラウンド等を実現するための各チャネルの音声データが生成される。この音声データは例えばスピーカに供給され、画像表示に合わせた音声出力がなされる。
次に、2次元(2D)画像受信時の動作を説明する。アンテナ端子211に入力されたテレビ放送信号はデジタルチューナ212に供給される。このデジタルチューナ212では、テレビ放送信号が処理されて、ユーザの選択チャネルに対応した所定のトランスポートストリームTSが出力される。このトランスポートストリームTSは、TSバッファ213に一時的に蓄積される。このトランスポートストリームTSには、2次元画像データが符号化されて得られたビデオストリームが含まれている。
デマルチプレクサ214では、TSバッファ213に一時的に蓄積されたトランスポートストリームTSから、ビデオ、グラフィクスおよびオーディオの各エレメンタリストリームが抽出される。また、デマルチプレクサ214では、挿入されている場合には、このトランスポートストリームTSから、識別情報としてのマルチビュー・ストリーム・コンフィグレーション・デスクリプタが抽出され、CPU201に送られる。CPU201では、このデスクリプタの「multiview_stream_checkflag」の1ビットフィールドにより、ビデオストリームのレイヤにビュー構成情報の挿入があるか否かを容易に判断できる
デマルチプレクサ214で抽出される2次元画像データが符号化されているビデオストリームは、コーデッドバッファ215-1に供給されて一時的に蓄積する。そして、ビデオデコーダ216-1では、CPU201の制御のもと、コーデッドバッファ215-1に記憶されているビデオストリームの復号化処理が行われて、2次元画像データが取得される。
また、ビデオデコーダ216-1では、挿入されている場合には、ビデオストリームのピクチャヘッダまたはシーケンスヘッダのユーザデータ領域などに挿入されているビュー構成情報としてのマルチビュー・ストリーム・コンフィグレーション・インフォ(multiview_stream_configuration_info())が抽出され、CPU201に送られる。CPU201は、この抽出されたビュー構成情報に基づいて、あるいはこのビュー構成情報が抽出されないことに基づいて、2次元(2D)画像受信時の動作を行うように、つまり2次元(2D)表示処理を行うように、各部の動作を制御する。
ビデオデコーダ216-1で取得された2次元画像データは、デコーデッドバッファ217-1に供給されて一時的に蓄積される。スケーラ218-1では、それぞれ、デコーデッドバッファ217-1から出力される2次元画像データの出力解像度が所定の解像度となるように調整される。スケーリング後の2次元画像データは、ビュー補間部219から、そのまま、例えばビュー1(View 1)の画像データとして出力される。
また、デマルチプレクサ214で抽出されるグラフィクスストリームは、コーデッドバッファ225に供給されて一時的に蓄積される。グラフィクスデコーダ226では、コーデッドバッファ225に記憶されているグラフィクスストリームの復号化処理が行われて、復号化されたグラフィクスデータ(サブタイトルデータを含む)が得られる。また、このグラフィクスデコーダ226では、このグラフィクスデータに基づいて、ビュー(画像)に重畳するグラフィクスのビットマップデータが発生される。
グラフィクスデコーダ226で発生されるグラフィクスのビットマップデータは、ピクセルバッファ227に供給されて一時的に蓄積される。スケーラ228では、ピクセルバッファ227に蓄積されているグラフィクスのビットマップデータのサイズが、スケーリング後の画像データのサイズに対応するように調整される。スケーラ228で得られるサイズ調整後のグラフィクスのビットマップデータは、グラフィクスシフタ229からそのまま出力される。
ピクセルインターリーブ/重畳部220では、ビュー補間部219から出力される2次元画像データに、グラフィクスシフタ229から出力されるグラフィクスのビットマップデータが重畳されて、2次元画像の表示用画像データが生成される。この表示用画像データがディスプレイに供給されることで、2次元画像の画像表示が行われる。
[3D期間、2D期間のシグナリング]
次に、図27に示す受信機200における立体(3D)表示処理と2次元(2D)の表示処理との動作モード切り替え制御について説明する。この切り替えは、CPU201により行われる。立体(3D)画像受信時には、各ビデオデコーダ216-1,216-2,216-3で抽出されるマルチビュー・ストリーム・コンフィグレーション・インフォがCPU201に供給される。また、2次元(2D)画像受信時には、挿入されている場合には、ビデオデコーダ216-1で抽出されるマルチビュー・ストリーム・コンフィグレーション・インフォがCPU201に供給される。CPU201は、このインフォの有無やその内容に基づいて、立体(3D)表示処理と2次元(2D)表示処理との切り替えを制御する。
図30、図31は、3D期間(立体画像受信時)と2D期間(2次元画像受信時)が交互に連続する場合における受信ストリームの一例を示している各期間は、例えば、番組単位、あるいはシーン単位である。3D期間には、基本ビデオストリームとしての中間ビューのビデオストリームES1が存在する他に、追加ビデオストリームとしての左端ビューおよび右端ビューの2つのビデオストリームES2,ES3が存在する。2D期間には、基本ビデオストリームとしてのビデオストリームES1のみが存在する。
図30の例は、マルチビュー・ストリーム・コンフィグレーション・インフォを含むSEIメッセージが、3D期間および2D期間の双方に、ピクチャ単位で挿入される場合を示している。また、図31の例は、マルチビュー・ストリーム・コンフィグレーション・インフォを含むSEIメッセージが、各期間に、シーン単位あるいはピクチャグループ単位(GOP単位)で挿入される場合を示している。
3D期間に挿入されているSEIメッセージにおいては、「3D_flag= 1」とされ、3Dモード(立体画像送信モード)を示す。また、2D期間に挿入されているSEIメッセージにおいては、「3D_flag= 0」とされ、3Dモードでないこと、従って2Dモード(2次元画像送信モード)を示す。なお、このSEIメッセージは、ビデオストリームES1だけではなく、ビデオストリームES2,ES3にも挿入されるが、図面の簡単化のために、その図示は省略している。
図32のフローチャートは、CPU201における動作モード切り替えの制御の処理手順の一例を示している。この例は、符号化方式がAVCあるいはMVCである場合の例である。上述したように、マルチビュー・ストリーム・コンフィグレーション・インフォが、アクセスユニットの“SEIs”の部分に、「Multiview stream configuration SEI message」として挿入される(図21、図14参照)。この場合、立体(3D)画像受信時には、MVCのベースビューストリーム(基本ビデオストリーム)およびノンベースビューストリーム(追加ビデオストリーム)が受信され、2次元(2D)画像受信時には、AVC(2D)ストリーム(基本ビデオストリーム)が受信される。
CPU201は、ピクチャフレーム毎に、このフローチャートに従った制御を行う。しかし、SEIメッセージがピクチャ単位で挿入されていない場合、例えばGOP単位で挿入されている場合(図31参照)、CPU201は、現在のGOPのSEI情報が次のGOPのSEI情報で置き換わるまでの間、現在のSEI情報を維持するようにされる。
まず、CPU201は、ステップST1において、処理を開始し、その後に、ステップST2の処理に移る。このステップST2において、CPU201は、基本ビデオストリームにSEI(「Multiview stream configuration SEI message」)の挿入があるか否かを判断する。このSEIの挿入があるとき、CPU201は、ステップST3において、SEIの中の情報が3Dモードを示すか、つまり「3D_flag= 1」であるかを判断する。
SEIの中の情報が3Dモードを示すとき、つまり、立体(3D)画像受信時には、CPU201は、ステップST4の処理に移る。CPU201は、このステップST4において、基本ビデオストリームおよび追加ビデオストリームの各々の入力バッファ(コーデッドバッファ)の管理を行い、ステップST5において、デコーダ(ビデオデコーダ)で基本ビデオストリーム、追加ビデオストリームの各々のデコードを行う。そして、CPU201は、さらに、ステップST6において、受信機200のその他も立体(3D)表示処理を行うように制御する。
また、CPU201は、ステップST2でSEIの挿入がないとき、あるいはステップST3でSEIの中の情報が3Dモードを示していないとき、つまり、2次元(2D)画像受信時には、ステップST7の処理に移る。CPU201は、このステップST7の処理に移る。CPU201は、ステップST7において、基本ビデオストリームの入力バッファ(コーデッドバッファ)の管理を行い、ステップST8において、デコーダ(ビデオデコーダ)で基本ビデオストリームのデコードを行う。そして、CPU201は、さらに、ステップST9において、受信機200のその他も2次元(2D)表示処理を行うように制御する。
上述したように、図27に示す受信機200においては、マルチビュー・ストリーム・コンフィグレーション・インフォを含むSEIメッセージの有無やその内容に基づいて、立体(3D)表示処理と2次元(2D)表示処理との切り替えが制御されるものである。そのため、配信内容の動的な変化に的確に対応でき、正しいストリーム受信を行うことができる。
図33は、トランスポートストリームTSに、「Stream_Type=0x1B」で、「PID=01」であるAVCのベースビューの基本ビデオストリームES1が連続して含まれ、「Stream_Type=0x20」で、「PID=10」、「PID=11」であるMVCの追加ビデオストリームES2,ES3が間欠的に含まれる場合の例を示している。この場合、ストリームES1に、マルチビュー・ストリーム・コンフィグレーション・SEIメッセージが挿入されている。
tn-1,tn+1の期間には、SEIメッセージが存在し、しかも、「3D_flag= 1 」であって、3Dモードを示す。そのため、この期間において、受信機200は、立体(3D)表示処理を行う。つまり、ストリームES1の他に、ストリームES2,ES3も抽出されてデコードされ、立体(3D)表示が行われる。一方、tnの期間には、SEIメッセージが存在するものの、「3D_flag= 0 」であって、2Dモードを示す。そのため、この期間において、受信機200は、2次元(2D)表示処理を行う。つまり、ストリームES1のみが抽出されてデコードされ、2次元(2D)表示が行われる。
図34は、3D期間(3Dモード期間)と2D期間(2Dモード期間)が交互に連続する場合であって、モード識別のための補助情報(マルチビュー・ストリーム・コンフィグレーション・SEIメッセージ)がない場合の一例を示している。期間T1,T3は3D期間を示し、期間T2は2D期間を示している。各期間は、例えば、番組単位、あるいはシーン単位を表す。
3D期間には、「Stream_Type=0x1B」のMVCのベースビューの基本ビデオストリームが存在すると共に、「Stream_Type=0x20」のMVCのノンベースビューの追加ビデオストリームが存在する。また、2D期間には、「Stream_Type=0x1B」のAVCストリームが存在する。なお、基本ビデオストリームは、SPSを先頭として、所定数のアクセスユニット(AU)が続く構成となっている。また、追加ビデオストリームは、サブセットSPS(SSSPS)を先頭として、所定数のアクセスユニット(AU)が続く構成となっている。また、アクセスユニット(AU)は、“PPS, Substream SEIs, Coded Slice”で構成されている。
モード識別のための補助情報がない場合、受信機は、3D期間から2D期間に切り替わったことを、受信機の入力バッファへのデータ入力が一定期間行われていないことで知る。しかし、入力バッファに追加ビデオストリームのデータ入力がないことは、伝送上あるいは符号化時のエラーが原因なのか、あるいは2D期間に切り換わったからなのか、T1の時点では分からない。したがって、受信機が2Dの処理モードに切り替わるのに時間的猶予が必要になる。
図35は、3D期間と2D期間が交互に連続する場合であって、モード識別のための補助情報(マルチビュー・ストリーム・コンフィグレーション・SEIメッセージ)がある場合の一例を示している。期間T1,T3は3D期間を示し、期間T2は2D期間を示している。各期間は、例えば、番組単位、あるいはシーン単位を表す。
3D期間には、「Stream_Type=0x1B」のMVCのベースビューの基本ビデオストリームが存在すると共に、「Stream_Type=0x20」のMVCのノンベースビューの追加ビデオストリームが存在する。また、2D期間には、「Stream_Type=0x1B」のAVCストリームが存在する。なお、基本ビデオストリームは、「SPS」を先頭として、所定数のアクセスユニット(AU)が続く構成となっている。また、追加ビデオストリームは、「SSSPS」を先頭として、所定数のアクセスユニット(AU)が続く構成となっている。また、アクセスユニット(AU)は、“PPS, Substream SEIs, Coded Slice”で構成されている。
モード識別のための補助情報(マルチビュー・ストリーム・コンフィグレーション・SEIメッセージ)がアクセスユニット(AU)毎に挿入されている。3D期間のアクセスユニットに挿入される補助情報は、「3D」で表しているが、「3D_flag= 1」とされて、3Dモード(立体画像送信モード)を示すものとされている。一方、2D期間のアクセスユニットに挿入される補助情報は、「2D」で表しているが、「3D_flag= 0」とされて、2Dモード(2次元画像送信モード)を示すものとされている。
このようにモード識別のための補助情報(マルチビュー・ストリーム・コンフィグレーション・SEIメッセージ)がある場合、受信機は、補助情報の要素「3D_flag」を検査して、その要素が3Dモードを示すか、あるいは2Dモードを示すかを即座に判別でき、デコード、そして表示処理を迅速に切換えることができる。受信機は、3D期間から2D期間に切り替わった場合、最初のアクセスユニットに挿入されている補助情報の要素「3D_flag」が2Dモードを示すとの判別タイミングT2で、3D期間から2D期間に切り替わったことを判定でき、受信機の3Dから2Dへのモード切り替えを迅速に行うことができる。
また、図27に示す受信機200においては、立体(3D)画像受信時には、立体画像表示のための複数のビューのうち、少なくとも左端のビューおよび右端のビューの画像データと、左端および右端の間に位置する中間のビューの画像データとが受信されるものである。そして、この受信機200において、その他のビューは視差データに基づいて補間処理で得るものである。そのため、マルチビュー構成による立体画像の裸眼観賞を良好に行うことができる。
すなわち、左端のビューおよび右端のビューの画像データだけでなく、中央のビューの画像データも受信される。そのため、ビュー間の相対視差が小さく、伝送されないビューの画像データを補間する際の細かな部分の処理に伴うオクルージョン周辺の補間が容易になり、再生画像の品質向上を図ることができる。また、左端のビューおよび右端のビューの画像データが受信されるので、伝送されないビューの画像データの補間は全て内挿処理によって合成でき、オクルージョンなどの端点処理に関して高画質を維持することが容易となる。
なお、図27に示す受信機200は、トランスポートストリームTSに視差データが符号化されて得られた視差ストリームが含まれる場合の構成例を示している。トランスポートストリームTSに視差ストリームが含まれていない場合には、受信された各ビューの画像データから視差データを生成して用いることになる。
図36は、その場合における受信機200Aの構成例を示している。この図36において、図27と対応する部分には同一符号を付し、その詳細説明は省略する。この受信機200Aは、視差データ生成部233を有している。この視差データ生成部233は、スケーリング処理された中央、左端および右端の各ビューの画像データに基づいて、視差データを生成する。
詳細説明は省略するが、この場合における視差データの生成方法は、上述した送信データ生成部110における視差データ生成部116における視差データ生成方法と同様である。なお、この視差データ生成部233は、図27に示す受信機200の視差データ変換部224で生成される画素単位の視差データと同様の視差データを生成して出力する。視差データ生成部233で生成された視差データは、ビュー補間部219に供給されると共に、フラフィクスシフタ229に供給されて用いられる。
なお、図36に示す受信機200Aにおいては、図27に示す受信機200におけるコーデッドバッファ221、視差デコーダ222、視差バッファ223および視差データ変換部224は、省略される。この図36に示す受信機200Aにおけるその他の構成は、図27に示す受信機200の構成と同様とされる。
[モード識別のための補助情報の他の例]
上述では、モード識別のための補助情報として、マルチビュー・ストリーム・コンフィグレーション・SEIメッセージを利用し、受信機は、その設定内容に基づいて、3D期間か2D期間かをフレーム精度で判別する例を示した。モード識別のための補助情報として、既存のマルチビュー・ビュー・ポジション・SEIメッセージ(multiview_view_position SEI message )」を利用することも考えられる。このマルチビュー・ビュー・ポジション・SEIメッセージを挿入する際には、送信側は、ビデオシーケンス全体にわたって、イントラリフレッシュ(圧縮バッファを空にする)を行うイントラピクチャーに挿入する必要がある。
図37は、このSEIメッセージに含まれるマルチビュー・ビュー・ポジション(Multiview view position())の構造例(Syntax)を示している。「num_views_minus1」のフィールドは、ビュー数から1引いた値(0〜1023)を示す。「view_position[i]」のフィールドは、各ビューの表示の際の相対的な位置関係を示す。つまり、各ビューを表示する際のレフトビュー(left view)からライトビュー(Right view)への順次相対位置を0から順次増加する値で示す。
上述の図7に示す送信データ生成部110は、3Dモード(立体画像送信モード)では、中間ビューの画像データが符号化されて得られたビデオストリーム(基本ビデオストリーム)に、マルチビュー・ビュー・ポジション・SEIメッセージを挿入する。このマルチビュー・ビュー・ポジション・SEIメッセージは、3Dモードであることを示す識別情報を構成する。この場合、少なくとも、番組単位、シーン単位、ピクチャグループ単位、あるいはピクチャ単位で挿入する。
図38(a)は、GOP(Group Of Pictures)の先頭のアクセスユニットを示しており、図38(b)は、GOPの先頭以外のアクセスユニットを示している。マルチビュー・ビュー・ポジションSEIがGOP単位で挿入される場合、GOPの先頭のアクセスユニットにのみ「multiview_view_position SEI message」が挿入される。
左端(Left)、中央(Center)、右端(Right)の3つのビューに当てはめると、このマルチビュー・ビュー・ポジション・SEIメッセージに含まれるマルチビュー・ビュー・ポジション(Multiview view position())(図37参照)においては、「view_position[0]= 1」とされ、基本ビデオストリームであるベースビューのビデオストリームが中央のビューの画像データが符号化されて得られたビデオストリームであることが示される。
また、「view_position[1] = 0」とされ、追加ビデオストリームであるノンベースビューの第1のビデオストリームが左端のビューの画像データが符号化されて得られたビデオストリームであることが示される。さらに、「view_position[2] = 2」とされ、追加ビデオストリームであるノンベースビューの第2のビデオストリームが右端のビューの画像データが符号化されて得られたビデオストリームであることが示される。
マルチビュー・ビュー・ポジション・SEIメッセージ(multiview_view_position message)を利用する場合における、図27に示す受信機200における立体(3D)表示処理と2次元(2D)の表示処理との動作モード切り替え制御について説明する。この切り替えは、CPU201により行われる。立体(3D)画像受信時には、ビデオデコーダ216-1でマルチビュー・ビュー・ポジション・SEIメッセージが抽出されてCPU201に供給される。しかし、2次元(2D)画像受信時には、ビデオデコーダ216-1でこのSEIメッセージが抽出されることはなく、CPU201に供給されない。CPU201は、このSEIメッセージの有無に基づいて、立体(3D)表示処理と2次元(2D)表示処理との切り替えを制御する。
図39、図40は、3D期間(立体画像受信時)と2D期間(2次元画像受信時)が交互に連続する場合における受信ストリームの一例を示している。各期間は、例えば、番組単位、あるいはシーン単位である。3D期間には、基本ビデオストリームとしての中央のビューのビデオストリームES1が存在する他に、追加ビデオストリームとしての左端ビューおよび右端ビューの2つのビデオストリームES2,ES3が存在する。2D期間には、基本ビデオストリームとしてのビデオストリームES1のみが存在する。
図39の例は、マルチビュー・ビュー・ポジション・SEIメッセージが、3D期間に、ピクチャ単位で挿入される場合を示している。また、図40の例は、マルチビュー・ビュー・ポジション・SEIが、3D期間に、シーン単位あるいはピクチャグループ単位(GOP単位)で挿入される場合を示している。
図41のフローチャートは、CPU201における動作モード切り替えの制御の処理手順の一例を示している。CPU201は、ピクチャフレーム毎に、このフローチャートに従った制御を行う。しかし、SEIがピクチャ単位で挿入されていない場合、例えばGOP単位で挿入されている場合(図40参照)、CPU201は、現在のGOPのSEIの有無の情報が、次のGOPのSEIの有無の情報で置き換わるまでの間維持するようにされる。
まず、CPU201は、ステップST11において、処理を開始し、その後に、ステップST12の処理に移る。このステップST12において、CPU201は、基本ビデオストリームにSEI(「Multiview Position SEI message」)の挿入があるか否かを判断する。このSEIの挿入があるとき、CPU201は、ステップST13の処理に移る。つまり、立体(3D)画像受信時には基本ビデオストリームにこのSEIが挿入されているので、CPU201は、ステップST13の処理に移る。
CPU201は、ステップST13において、基本ビデオストリームおよび追加ビデオストリームの各々の入力バッファ(コーデッドバッファ)の管理を行い、ステップST14において、デコーダ(ビデオデコーダ)で基本ビデオストリーム、追加ビデオストリームの各々のデコードを行う。そして、CPU201は、さらに、ステップST15において、受信機200のその他も立体(3D)表示処理を行うように制御する。
この場合、マルチビュー・ビュー・ポジション・SEIが挿入されていないビデオストリーム(追加ビデオストリーム)に関しては、このSEIの要素で指定される定義に従って処理が行われる。すなわち、この例では「view_position[i]」で指定される各ビューの表示の際の相対的な位置関係に従って、各追加ビデオストリームの処理も行われ、各ビューの画像データが適切に取得される。
また、CPU201は、ステップST12でSEI(「multiview_view_position SEI message」)の挿入がないとき、ステップST16の処理に移る。つまり、2次元(2D)画像受信時には基本ビデオストリームにこのSEIが挿入されていないので、CPU201は、ステップST16の処理に移る。CPU201は、ステップST16において、基本ビデオストリームの入力バッファ(コーデッドバッファ)の管理を行い、ステップST17において、デコーダ(ビデオデコーダ)で基本ビデオストリームのデコードを行う。そして、CPU201は、さらに、ステップST18において、受信機200のその他も2次元(2D)表示処理を行うように制御する。
上述したように、マルチビュー・ビュー・ポジション・SEIメッセージを利用することでも、受信側において、立体(3D)表示処理と2次元(2D)表示処理との切り替えを良好に行うことができる。そのため、配信内容の動的な変化に的確に対応でき、正しいストリーム受信を行うことができる。
図42は、トランスポートストリームTSに、「Stream_Type=0x1B」で、「PID=01」であるAVCのベースビューの基本ビデオストリームES1が連続して含まれ、「Stream_Type=0x20」で、「PID=10」、「PID=11」であるMVCの追加ビデオストリームES2,ES3が間欠的に含まれる場合の例を示している。この場合、ストリームES1の、3D期間には、マルチビュー・ビュー・ポジション・SEIが挿入されている。
tn-1,tn+1の期間には、マルチビュー・ビュー・ポジション・SEIが存在する。そのため、この期間において、受信機200は、立体(3D)表示処理を行う。つまり、ストリームES1の他に、ストリームES2,ES3も抽出されてデコードされ、立体(3D)表示が行われる。一方、tnの期間には、マルチビュー・ビュー・ポジション・SEIが存在しない。そのため、この期間において、受信機200は、2次元(2D)表示処理を行う。つまり、ストリームES1のみが抽出されてデコードされ、2次元(2D)表示が行われる。
また、送信側が送信するビデオストリームに、上述したマルチビュー・ストリーム・コンフィグレーション・SEIと、マルチビュー・ビュー・ポジション・SEIの少なくとも一方を挿入することが考えられる。その場合、受信側においては、少なくともいずれかのSEIを利用して、立体(3D)表示処理と2次元(2D)表示処理との切り替えを制御することも考えられる。
図43は、3D期間と2D期間が交互に連続する場合であって、モード識別のための補助情報(マルチビュー・ビュー・ポジション・SEIメッセージ)がある場合の一例を示している。期間T1,T3は3D期間を示し、期間T2は2D期間を示している。各期間は、例えば、番組単位、あるいはシーン単位を表す。
3D期間には、「Stream_Type=0x1B」のMVCのベースビューの基本ビデオストリームが存在すると共に、「Stream_Type=0x20」のMVCのノンベースビューの追加ビデオストリームが存在する。また、2D期間には、「Stream_Type=0x1B」のAVCストリームが存在する。なお、基本ビデオストリームは、「SPS」を先頭として、所定数のアクセスユニット(AU)が続く構成となっている。また、追加ビデオストリームは、「SSSPS」を先頭として、所定数のアクセスユニット(AU)が続く構成となっている。また、アクセスユニット(AU)は、“PPS, Substream SEIs, Coded Slice”で構成されている。
モード識別のための補助情報(マルチビュー・ビュー・ポジション・SEIメッセージ)が、3D期間の各アクセスユニット(AU)に挿入されている。この補助情報は3Dモードであることを示し、「3D」で表している。なお、2D期間の各アクセスユニット(AU)には、このような補助情報の挿入はない。
このようにモード識別のための補助情報がある場合、受信機は、補助情報の存在の有無により、3D期間か2D期間かを即座に判別でき、デコード、そして表示処理を迅速に切換えることができる。受信機は、3D期間から2D期間に切り替わった場合、最初のアクセスユニットに補助情報がないとの判別タイミングT2で、3D期間から2D期間に切り替わったことを判定でき、受信機の3Dから2Dへのモード切り替えを迅速に行うことができる。
図44のフローチャートは、CPU201における動作モード切り替えの制御の処理手順の一例を示している。CPU201は、ピクチャフレーム毎に、このフローチャートに従った制御を行う。しかし、SEIメッセージがピクチャ単位で挿入されていない場合、例えばGOP単位で挿入されている場合、CPU201は、現在のGOPのSEI情報が次のGOPのSEI情報で置き換わるまでの間、現在のSEI情報を維持するようにされる。以下では、マルチビュー・ストリーム・コンフィグレーション・SEIをAタイプSEIとし、マルチビュー・ビュー・ポジション・SEIをBタイプSEIとして説明する。
まず、CPU201は、ステップST21において、処理を開始し、その後に、ステップST22の処理に移る。このステップST22において、CPU201は、基本ビデオストリームにAタイプSEIの挿入があるか否かを判断する。このAタイプSEIの挿入があるとき、CPU201は、ステップST23において、AタイプSEIの中の情報が3Dモードを示すか、つまり「3D_flag= 1」であるかを判断する。
SEIの中の情報が3Dモードを示すとき、つまり、立体(3D)画像受信時には、CPU201は、ステップST24の処理に移る。CPU201は、このステップST24において、基本ビデオストリームおよび追加ビデオストリームの各々の入力バッファ(コーデッドバッファ)の管理を行い、ステップST25において、デコーダ(ビデオデコーダ)で基本ビデオストリーム、追加ビデオストリームの各々のデコードを行う。そして、CPU201は、さらに、ステップST6において、受信機200のその他も立体(3D)表示処理を行うように制御する。
また、CPU201は、ステップST23でAタイプSEIの中の情報が3Dモードを示していないとき、つまり、2次元(2D)画像受信時には、ステップST28の処理に移る。CPU201は、このステップST28において、基本ビデオストリームの入力バッファ(コーデッドバッファ)の管理を行い、ステップST29において、デコーダ(ビデオデコーダ)で基本ビデオストリームのデコードを行う。そして、CPU201は、さらに、ステップST30において、受信機200のその他も2次元(2D)表示処理を行うように制御する。
また、CPU201は、ステップST22でAタイプSEIの挿入がないとき、ステップST27において、基本ビデオストリームにBタイプSEIの挿入があるか否かを判断する。このBタイプSEIの挿入があるとき、CPU201は、ステップST24の処理に移り、上述したように、受信機200が立体(3D)表示処理を行うように制御する。一方、基本ビデオストリームにBタイプSEIの挿入がないとき、CPU201は、ステップST28の処理に移り、上述したように、受信機200が2次元(2D)表示処理を行うように制御する。
上述したように、送信ビデオストリームにマルチビュー・ストリーム・コンフィグレーション・SEIと、マルチビュー・ビュー・ポジション・SEIの少なくとも一方が挿入される場合、受信側において、少なくともいずれかを利用する構成とできる。これにより、立体(3D)表示処理と2次元(2D)表示処理との切り替えを良好に行うことができる。そのため、配信内容の動的な変化に的確に対応でき、正しいストリーム受信を行うことができる。
[モード識別のための補助情報のさらに他の例]
上述では、モード識別のための補助情報として、マルチビュー・ストリーム・コンフィグレーション・SEIメッセージ、あるいはマルチビュー・ビュー・ポジション・SEIメッセージを利用し、受信機は、その設定内容や有無に基づいて3D期間か2D期間かをフレーム精度で判別する例を示した。モード識別のための補助情報として、さらに別の補助情報を利用することも考えられる。すなわち、2Dモードを示す補助情報を利用するものである。
2Dモードを示す識別情報として、新規定義のSEIメッセージを使用できる。また、MPEG2ストリームの場合には、既存のフレーム・パッキング・アレンジメント・データ(frame_packing_arrangement_data())を使用できる。
図45は、フレーム・パッキング・アレンジメント・データ(frame_packing_arrangement_data())の構造例(Syntax)を示している。「frame_packing_user_data_identifier」の32ビットフィールドは、このユーザデータがフレーム・パッキング・アレンジメント・データであることを識別可能とする。「arrangement_type」の7ビットフィールドは、ステレオ・ビデオ・フォーマット・タイプ(stereo_video_format_type)を示す。図46に示すように、「0000011」はステレオ・サイド・バイ・サイドを示し、「0000100」はステレオ・トップ・アンド・ボトムを示し、「0001000」は2Dビデオを示す。
上述の図7に示す送信データ生成部110は、2Dモード(立体画像送信モード)では、中間ビューの画像データが符号化されて得られたビデオストリーム(基本ビデオストリーム)に、2Dモードを示す補助情報を挿入する。例えば、このストリームがMPEG2ストリームである場合、ユーザデータ領域に、上述のフレーム・パッキング・アレンジメント・データ(arrangement_type = 0001000)を挿入する。この場合、少なくとも、番組単位、シーン単位、ピクチャグループ単位、あるいはピクチャ単位で挿入する。
フレーム・パッキング・アレンジメント・データ(frame_packing_arrangement_data())は、ピクチャヘッダ部のユーザデータ領域に、ユーザデータ「user_data()」として挿入される。図47は、「user_data()」の構造例(Syntax)を示している。「user_data_start_code」の32ビットフィールドは、ユーザデータ(user_data)の開始コードであり、“0x000001B2”の固定値とされる。この開始コードの後のデータ本体として、「frame_packing_arrangement_data()」が挿入される。
2Dモードを示す補助情報を利用する場合における、図27に示す受信機200における立体(3D)表示処理と2次元(2D)の表示処理との動作モード切り替え制御について説明する。この切り替えは、CPU201により行われる。2次元(2D)画像受信時には、ビデオデコーダ216-1で2Dモードを示す補助情報が抽出されてCPU201に供給される。しかし、立体(3D)画像受信時には、ビデオデコーダ216-1でこの補助情報が抽出されることはなく、CPU201に供給されない。CPU201は、この補助情報の有無に基づいて、立体(3D)表示処理と2次元(2D)表示処理との切り替えを制御する。
図48、図49は、3D期間(立体画像受信時)と2D期間(2次元画像受信時)が交互に連続する場合における受信ストリームの一例を示している。各期間は、例えば、番組単位、あるいはシーン単位である。3D期間には、基本ビデオストリームとしての中央のビューのビデオストリームES1が存在する他に、追加ビデオストリームとしての左端ビューおよび右端ビューの2つのビデオストリームES2,ES3が存在する。2D期間には、基本ビデオストリームとしてのビデオストリームES1のみが存在する。図48の例は、2Dモードを示す補助情報が、2D期間に、ピクチャ単位で挿入される場合を示している。また、図49の例は、2Dモードを示す補助情報が、2D期間に、シーン単位あるいはピクチャグループ単位(GOP単位)で挿入される場合を示している。
図50のフローチャートは、CPU201における動作モード切り替えの制御の処理手順の一例を示している。CPU201は、ピクチャフレーム毎に、このフローチャートに従った制御を行う。しかし、補助情報がピクチャ単位で挿入されていない場合、例えばGOP単位で挿入されている場合(図49参照)、CPU201は、現在のGOPの補助情報の有無の情報が、次のGOPの補助情報の有無の情報で置き換わるまでの間は維持するようにされる。
まず、CPU201は、ステップST31において、処理を開始し、その後に、ステップST32の処理に移る。このステップST32において、CPU201は、基本ビデオストリームに2Dモードを示す補助情報の挿入があるか否かを判断する。この補助情報の挿入がないとき、CPU201は、ステップST33の処理に移る。つまり、立体(3D)画像受信時には基本ビデオストリームにこの補助情報の挿入がされていないので、CPU201は、ステップST33の処理に移る。
CPU201は、ステップST33において、基本ビデオストリームおよび追加ビデオストリームの各々の入力バッファ(コーデッドバッファ)の管理を行い、ステップST34において、デコーダ(ビデオデコーダ)で基本ビデオストリーム、追加ビデオストリームの各々のデコードを行う。そして、CPU201は、さらに、ステップST35において、受信機200のその他も立体(3D)表示処理を行うように制御する。
また、CPU201は、ステップST32で補助情報の挿入があるとき、ステップST36の処理に移る。つまり、2次元(2D)画像受信時には基本ビデオストリームにこの補助情報が挿入されているので、CPU201は、ステップST36の処理に移る。CPU201は、ステップST36において、基本ビデオストリームの入力バッファ(コーデッドバッファ)の管理を行い、ステップST37において、デコーダ(ビデオデコーダ)で基本ビデオストリームのデコードを行う。そして、CPU201は、さらに、ステップST38において、受信機200のその他も2次元(2D)表示処理を行うように制御する。
上述したように、2Dモードを示す補助情報を利用することでも、受信側において、立体(3D)表示処理と2次元(2D)表示処理との切り替えを良好に行うことができる。そのため、配信内容の動的な変化に的確に対応でき、正しいストリーム受信を行うことができる。
図51は、トランスポートストリームTSに、「Stream_Type=0x02」で、「PID=01」であるMPEG2のベースビューの基本ビデオストリームES1が連続して含まれ、「Stream_Type=0x23」で、「PID=10」、「PID=11」であるAVCの追加ビデオストリームES2,ES3が間欠的に含まれる場合の例を示している。この場合、ストリームES1の2D期間には、フレーム・パッキング・アレンジメント・データ(arrangement_type = “2D”)が挿入されている。
tn-1,tn+1の期間には、フレーム・パッキング・アレンジメント・データ(arrangement_type= “2D”)が存在しない。そのため、この期間において、受信機200は、立体(3D)表示処理を行う。つまり、ストリームES1の他に、ストリームES2,ES3も抽出されてデコードされ、立体(3D)表示が行われる。一方、tnの期間には、フレーム・パッキング・アレンジメント・データ(arrangement_type= “2D”)が存在する。そのため、この期間において、受信機200は、2次元(2D)表示処理を行う。つまり、ストリームES1のみが抽出されてデコードされ、2次元(2D)表示が行われる。
図52は、3D期間と2D期間が交互に連続する場合であって、モード識別のための補助情報(新規定義の2Dモードであることを示すSEIメッセージ)がある場合の一例を示している。期間T1,T3は3D期間を示し、期間T2は2D期間を示している。各期間は、例えば、番組単位、あるいはシーン単位を表す。
3D期間には、「Stream_Type=0x1B」のMVCのベースビューの基本ビデオストリームが存在すると共に、「Stream_Type=0x20」のMVCのノンベースビューの追加ビデオストリームが存在する。また、2D期間には、「Stream_Type=0x1B」のAVCストリームが存在する。なお、基本ビデオストリームは、「SPS」を先頭として、所定数のアクセスユニット(AU)が続く構成となっている。また、追加ビデオストリームは、「SSSPS」を先頭として、所定数のアクセスユニット(AU)が続く構成となっている。また、アクセスユニット(AU)は、“PPS, Substream SEIs, Coded Slice”で構成されている。
モード識別のための補助情報が2D期間の各アクセスユニット(AU)に挿入されている。この補助情報は2Dモードであることを示し、「2D」で表している。なお、3D期間の各アクセスユニット(AU)には、このような補助情報の挿入はない。
このようにモード識別のための補助情報がある場合、受信機は、補助情報の存在の有無により、3D期間か2D期間かを即座に判別でき、デコード、そして表示処理を迅速に切換えることができる。受信機は、3D期間から2D期間に切り替わった場合、最初のアクセスユニットに補助情報があるとの判別タイミングT2で、3D期間から2D期間に切り替わったことを判定でき、受信機の3Dから2Dへのモード切り替えを迅速に行うことができる。
[ステレオ立体画像の場合]
また、上述では、立体(3D)画像送信時に、マルチビュー立体画像を表示するための中央ビュー、左端ビュー、右端ビューの画像データを、放送局100から受信機200に送信する例を示した。本技術は、立体(3D)画像送信時に、ステレオ立体画像を表示するための左眼ビューおよび右眼ビューの画像データを放送局100から受信機200に送信する場合であっても同様に適用できる。
この場合、トランスポートストリームTSに含まれるビデオストリームにおいて、図53に示すように、左眼(Left)のビューおよび右眼(Right)のビューの画像データはそれぞれ1つのピクチャのデータとして符号化される。図示の例では、各ピクチャのデータは1920*1080のフルHDのサイズとされる。その場合、例えば、マルチビュー・ビュー・ポジション・SEIは、左眼ビューおよび右眼ビューの画像データがそれぞれ符号化されて得られた基本ビデオストリームおよび追加ビデオストリームのうち、基本ビデオストリームに挿入される。
図54は、放送局100において、ステレオ立体画像を表示するための左眼ビューおよび右眼ビューの画像データを送信する送信データ生成部110Bの構成例を示している。この図54において、図7と対応する部分には同一符号を付し、適宜、その詳細説明は省略する。
画像データ出力部111-1から出力される左眼ビューの画像データ(左眼画像データ)VLはスケーラ113-1で、例えば、1920*1080のフルHDのサイズにスケーリング処理される。そして、スケーリング処理後の画像データVL′は、ビデオエンコーダ114-1に供給される。ビデオエンコーダ114-1では、この画像データVL′に対して符号化が施されて符号化ビデオデータが得られ、この符号化データをサブストリーム(sub stream 1)として含むビデオストリーム(基本ビデオストリーム)が生成される。
なお、この場合、ビデオエンコーダ114-1では、このビデオストリーム(基本ビデオストリーム)に、マルチビュー・ビュー・ポジション・SEIメッセージを、少なくとも、番組単位、シーン単位、ピクチャグループ単位、あるいはピクチャ単位で挿入する。このマルチビュー・ビュー・ポジション・SEIメッセージに含まれるマルチビュー・ビュー・ポジション(Multiview view position())(図37参照)においては、例えば、「view_position[0]= 0」、「view_position[1] = 1」とされる。
これにより、基本ビデオストリームであるベースビューのビデオストリームが左端のビューの画像データが符号化されて得られたビデオストリームであることが示される。また、追加ビデオストリームであるノンベースビューのビデオストリームが右端のビューの画像データが符号化されて得られたビデオストリームであることが示される。
また、画像データ出力部111-2から出力される右眼ビューの画像データ(右眼画像データ)VRはスケーラ113-2で、例えば、1920*1080のフルHDのサイズにスケーリング処理される。そして、スケーリング処理後の画像データVR′は、ビデオエンコーダ114-2に供給される。ビデオエンコーダ114-2では、この画像データVR′に対して符号化が施されて符号化ビデオデータが得られ、この符号化データをサブストリーム(sub stream 2)として含むビデオストリーム(追加ビデオストリーム)が生成される。
マルチプレクサ115では、各エンコーダから供給されるエレメンタリストリームがパケット化されて多重され、トランスポートストリームTSが生成される。この場合、左眼画像データが符号化されたビデオストリーム(基本ビデオストリーム)は、例えば、MVCのベースビューのビデオエレメンタリストリーム(Base view sub-bitstream)として送信される。また、右眼画像データが符号化されたビデオストリーム(追加ビデオストリーム)は、例えば、MVCのノンベースビューのビデオエレメンタリストリーム(Non-Base view sub-bitstream)として送信される。また、この場合、それぞれのPESヘッダには、受信側における同期再生のために、PTSが挿入される。詳細説明は省略するが、図54に示す送信データ生成部110Bのその他は、図7に示す送信データ生成部110と同様に構成される。
図55は、ステレオ立体画像の受信機200Bの構成例を示している。この図55において、図27と対応する部分には同一符号を付し、適宜、その詳細説明は省略する。デマルチプレクサ214では、TSバッファ213に一時的に蓄積されたトランスポートストリームTSから、ビデオ、視差、グラフィクスおよびオーディオの各エレメンタリストリームが抽出される。
デマルチプレクサ214で抽出される左眼画像データ、右眼画像データがそれぞれ符号化されているビデオストリームは、それぞれ、コーデッドバッファ215-1,215-2に供給されて一時的に蓄積される。そして、ビデオデコーダ216-1,216-2では、CPU201の制御のもと、それぞれ、コーデッドバッファ215-1,215-2に記憶されているビデオストリームの復号化処理が行われて、左眼画像データおよび右眼画像データが取得される。
この場合、ビデオデコーダ216-1では、ビデオストリーム(基本ビデオストリーム)に、上述したように挿入されているマルチビュー・ビュー・ポジション・SEIメッセージ(図38、図37参照)が抽出され、CPU201に送られる。CPU201は、このSEI情報に基づいて、立体(3D)画像受信時の動作を行うように、つまり立体(3D)表示処理を行うように、各部の動作を制御する。
ビデオデコーダ216-1,216-2で取得された各ビューの画像データは、それぞれ、デコーデッドバッファ217-1,217-2に供給されて一時的に蓄積される。スケーラ218-1,218-2では、それぞれ、デコーデッドバッファ217-1,217-2から出力される各ビューの画像データの出力解像度が所定の解像度となるように調整される。
重畳部220Bでは、左眼画像データおよび右眼画像データにそれぞれ対応するグラフィクスのビットマップデータが重畳され、ステレオ立体画像表示のための表示用画像データが生成される。この表示用画像データがディスプレイに供給されることで、ステレオ立体(3D)画像の表示が行われる。詳細説明は省略するが、図55に示す送信データ生成部200Bのその他は、図27に示す送信データ生成部200と同様に構成される。
このように、立体画像としてステレオ立体(3D)画像の送信を行う場合にあっても、受信機200Bにおいては、立体画像の要素を提示する補助情報、例えば上述のマルチビュー・ビュー・ポジション・SEIを利用して、立体(3D)表示処理と2次元(2D)表示処理との切り替えを良好に行うことができる。そのため、配信内容の動的な変化に的確に対応でき、正しいストリーム受信を行うことができる。
図56、図57は、3D期間(立体画像受信時)と2D期間(2次元画像受信時)が交互に連続する場合における受信ストリームの一例を示している。各期間は、例えば、番組単位、あるいはシーン単位である。3D期間には、基本ビデオストリームとしての左眼ビューの画像データを含むビデオストリームES1が存在する他に、追加ビデオストリームとしての右眼ビューの画像データを含むビデオストリームES2が存在する。2D期間には、基本ビデオストリームとしての2次元画像データを含むビデオストリームES1のみが存在する。
図56の例は、マルチビュー・ビュー・ポジション・SEIメッセージが、3D期間に、ピクチャ単位で挿入される場合を示している。また、図57の例は、マルチビュー・ビュー・ポジション・SEIが、3D期間に、シーン単位あるいはピクチャグループ単位(GOP単位)で挿入される場合を示している。
図58は、トランスポートストリームTSに、「Stream_Type=0x1B」で、「PID=01」であるAVCのベースビューの基本ビデオストリームES1が連続して含まれ、「Stream_Type=0x20」で、「PID=11」であるMVCの追加ビデオストリームES2が間欠的に含まれる場合の例を示している。この場合、ストリームES1の、3D期間には、マルチビュー・ビュー・ポジション・SEIが挿入されている。
tn-1,tn+1の期間には、マルチビュー・ビュー・ポジション・SEIが存在する。そのため、この期間において、受信機200Bは、ステレオ立体(3D)表示処理を行う。つまり、ストリームES1の他に、ストリームES2も抽出されてデコードされ、ステレオ立体(3D)画像の表示が行われる。
一方、tnの期間には、マルチビュー・ビュー・ポジション・SEIが存在しない。そのため、この期間において、受信機200Bは、2次元(2D)表示処理を行う。つまり、ストリームES1のみが抽出されてデコードされ、2次元(2D)表示が行われる。この際、3Dの処理モードから2Dの処理モードへ迅速に移行するために、バッファ管理モードは3Dモードを維持したまま、基本ビデオストリームのデコードのみを行い、表示処理を2D表示とする、というような処理方法も可能である。
上述のステレオ立体画像表示の例では、マルチビュー・ビュー・ポジション・SEIをモード識別のための補助情報として使用している。しかし、詳細説明は省略するが、マルチビュー立体画像の例と同様に、マルチビュー・ストリーム・コンフィグレーション・SEIを使用する構成、2Dモードを示す補助情報(フレーム・パッキング・アレンジメント・データなど)を使用する構成も考えられる。
図59は、上述した、3D期間に基本ストリーム(Base stream)および追加ストリーム(Additional stream)が存在し、2D期間に基本ストリームのみが存在する場合において、3D期間と2D期間を識別する、ケースA、ケースB、ケースCの方法をまとめて示している。
図59(a)に示すケースAの方法は、3D期間および2D期間の双方において基本ストリームにモード識別のための補助情報を挿入し、この補助情報の設定内容により3D期間であるか2D期間であるかを識別可能とする方法である。このケースAの方法は、上述のマルチビュー・ストリーム・コンフィグレーション・SEIを使用した例に対応する。
図59(b)に示すケースBの方法は、3D期間のみ基本ストリームに3Dモードであることを示す補助情報を挿入し、この補助情報の有無により3D期間であるか2D期間であるかを識別可能とする方法である。このケースBの方法は、上述のマルチビュー・ビュー・ポジション・SEIを使用した例に対応する。
図59(c)に示すケースCの方法は、2D期間のみ基本ストリームに2Dモードであることを示す補助情報を挿入し、この補助情報の有無により3D期間であるか2D期間であるかを識別可能とする方法である。このケースCの方法は、上述の2Dモードを示す補助情報(新規定義のSEI、フレーム・パッキング・アレンジメント・データなど)を使用した例に対応する。
[2D期間にも追加ストリームが存在する場合]
上述では、2D期間には基本ストリームのみが存在する例を示した。しかし、2D期間にあっても、3D期間と同様のストリーム構成とすることも考えられる。すなわち、3D期間、2D期間の双方とも、基本ストリーム(Base stream)および追加ストリーム(Additional stream)が存在する例である。
上述の図7に示す送信データ生成部110では、立体(3D)画像送信時に、MVCのベースビューの基本ビデオストリームと、MVCのノンベースビューの2つの追加ビデオストリームが、送信ビデオストリームとして生成される。すなわち、スケーリング処理後の中央(Center)のビューの画像データVC′が符号化されてMVCのベースビューの基本ビデオストリームが得られる。また、スケーリング処理後の左端(Left)、右端(Right)の2つのビューの画像データVL′,VR′がそれぞれ符号化されてMVCのノンベースビューの追加ビデオストリームが得られる。
そして、上述の図7に示す送信データ生成部110では、例えば、2次元(2D)画像送信時にも、MVCのベースビューの基本ビデオストリームと、MVCのノンベースビューの2つの追加ビデオストリームが、送信ビデオストリームとして生成される。すなわち、スケーリング処理後の2次元画像データが符号化されてMVCのベースビューの基本ビデオストリームが得られる。また、基本ビデオストリームを参照した結果のビュー間差分がゼロであるという符号化モード(Skipped Macro Block)で符号化されて、2次元画像データと同じ画像データを実質的に含む2つの追加ビデオストリームが得られる。
このように2次元(2D)画像送信時にも、立体(3D)画像送信時と同様に、MVCのベースビューの基本ビデオストリームと、MVCのノンベースビューの2つの追加ビデオストリームというストリーム構成とすることで、エンコーダの運用として、MVCを継続できる。そのため、送信データ生成部110としては、安定した動作が期待される。
ここで、モード識別のための補助情報として、上述のマルチビュー・ビュー・ポジション・SEIメッセージ(multiview_view_position SEI message )が利用される。上述の図7に示す送信データ生成部110は、立体(3D)画像送信時および2次元(2D)画像送信時に、基本ビデオストリームに、マルチビュー・ビュー・ポジション・SEIメッセージを、少なくとも、番組単位、シーン単位、ピクチャグループ単位、あるいはピクチャ単位で挿入する。
立体(3D)画像送信時に挿入されるマルチビュー・ビュー・ポジション・SEIメッセージにおいて、「view_position[i]」は、以下のように設定される。すなわち、「view_position[0]= 1」とされ、基本ビデオストリームであるベースビューのビデオストリームが中央のビューの画像データが符号化されて得られたビデオストリームであることが示される。
また、「view_position[1] = 0」とされ、追加ビデオストリームであるノンベースビューの第1のビデオストリームが左端のビューの画像データが符号化されて得られたビデオストリームであることが示される。さらに、「view_position[2] = 2」とされ、追加ビデオストリームであるノンベースビューの第2のビデオストリームが右端のビューの画像データが符号化されて得られたビデオストリームであることが示される。
一方、2次元(2D)画像送信時に挿入されるマルチビュー・ビュー・ポジション・SEIメッセージにおいて、「view_position[i]」は、以下のように設定される。すなわち、「view_position[0]」、「view_position[1]」、「view_position[2]」の全てが、「0」、「1」あるいは「2」とされる。
このように「view_position[i]」が設定されることで、受信側は、基本ビデオストリームと2本の追加ビデオストリームが送信される場合であっても、追加ビデオストリームは基本ビデオストリームとの差分がゼロであることが分かる。つまり、受信側は、この「view_position[i]」の設定から、複数ストリームの伝送であっても、2次元(2D)画像送信時であることを検知できる。
図27に示す受信機200における立体(3D)表示処理と2次元(2D)の表示処理との動作モード切り替え制御について説明する。この切り替えは、CPU201により行われる。立体(3D)画像受信時には、ビデオデコーダ216-1でマルチビュー・ビュー・ポジション・SEIメッセージが抽出されてCPU201に供給される。CPU201は、このSEIメッセージの「view_position[i]」の設定内容に基づいて、立体画像送信モードか2次元画像送信モードのいずれかを識別し、立体(3D)表示処理と2次元(2D)表示処理との切り替えを制御する。
図60、図61は、3D期間(立体画像受信時)と2D期間(2次元画像受信時)が交互に連続する場合における受信ストリームの一例を示している。各期間は、例えば、番組単位、あるいはシーン単位である。3D期間および2D期間のいずれにも、基本ビデオストリームとしての中央のビューのビデオストリームES1が存在する他に、追加ビデオストリームとしての左端ビューおよび右端ビューの2つのビデオストリームES2,ES3が存在する。
図60の例は、マルチビュー・ビュー・ポジション・SEIメッセージが、3D期間および2D期間に、ピクチャ単位で挿入される場合を示している。また、図61の例は、マルチビュー・ビュー・ポジション・SEIが、3D期間および2D期間に、シーン単位あるいはピクチャグループ単位(GOP単位)で挿入される場合を示している。
図62のフローチャートは、CPU201における動作モード切り替えの制御の処理手順の一例を示している。CPU201は、ピクチャフレーム毎に、このフローチャートに従った制御を行う。しかし、SEIがピクチャ単位で挿入されていない場合、例えばGOP単位で挿入されている場合(図61参照)、CPU201は、現在のGOPのSEI情報が次のGOPのSEI情報で置き換わるまでの間、現在のSEI情報を維持するようにされる。
まず、CPU201は、ステップST41において、処理を開始し、その後に、ステップST42の処理に移る。このステップST42において、CPU201は、基本ビデオストリームにSEI(「multiview_view_position SEI message」)の挿入があるか否かを判断する。このSEIの挿入があるとき、CPU201は、ステップST43において、SEIの中の情報、つまり「view_position[i]」の設定内容が3Dモードを示すかを判断する。
SEIの中の「view_position[i]」の設定内容が3Dモードを示すとき、つまり、立体(3D)画像受信時には、CPU201は、ステップST44の処理に移る。CPU201は、このステップST44において、基本ビデオストリームおよび追加ビデオストリームの各々の入力バッファ(コーデッドバッファ)の管理を行い、ステップST45において、デコーダ(ビデオデコーダ)で基本ビデオストリーム、追加ビデオストリームの各々のデコードを行う。そして、CPU201は、さらに、ステップST46において、受信機200のその他も立体(3D)表示処理を行うように制御する。
また、CPU201は、ステップST42でSEIの挿入がないとき、あるいはステップST43でSEIの中の「view_position[i]」の設定内容が3Dモードを示していないとき、つまり、2次元(2D)画像受信時には、ステップST47の処理に移る。CPU201は、ステップST47において、基本ビデオストリームの入力バッファ(コーデッドバッファ)の管理を行い、ステップST48において、デコーダ(ビデオデコーダ)で基本ビデオストリームのデコードを行う。そして、CPU201は、さらに、ステップST49において、受信機200のその他も2次元(2D)表示処理を行うように制御する。
図63は、図27に示す受信機200における、立体(3D)画像受信時の受信パケット処理の一例を示している。基本ビデオストリームと追加ビデオストリームのNALパケットが混在して伝送されてくる。図64は、NALユニットヘッダおよびNALユニットヘッダのMVC拡張(NAL unit header MVC extension)の構成例(Syntax)を示している。「view_id」のフィールドは、該当するビューが何番目のビューかを示す。受信機200は、図63に示すように、NALユニットタイプ(NAL unit type)の値と、NALユニットヘッダのMVC拡張(Headermvc extension )のビューID(view_id)の組み合わせに基づいて、混在して伝送されてくるNALパケットをストリーム毎に振り分け、各ストリームをデコードする。
図65は、図27に示す受信機200における、2次元(2D)画像受信時の受信パケット処理の一例を示している。基本ビデオストリームと追加ビデオストリームのNALパケットが混在して伝送されてくる。受信機200は、図65に示すように、NALユニットタイプ(NAL unit type)の値と、NALユニットヘッダのMVC拡張(Headermvc extension )のビューID(view_id)の組み合わせに基づいて、混在して伝送されてくるNALパケットをストリーム毎に振り分け、基本ビデオストリームのみデコードする。
すなわち、受信機200は、2次元(2D)画像受信時にも、立体(3D)画像受信時と同様に、基本ビデオストリームおよび追加ビデオストリームを受信するが、マルチビュー・ビュー・ポジション・SEIメッセージの「view_position[i]」の設定内容に基づいて、従来のようなSEIに続くピクチャ全体のスライス(slice)のデコードを行うことなく、2次元(2D)画像処理を行う。
このように、追加ビデオストリームの符号化データのデコードを行うことなく、パケット(NALパケット)レベルでの識別ができるので、受信機200で、2D表示モードへの移行を迅速に行うことが可能となる。また、スライス・レイヤ(Slice layer)以下をデコードせずに破棄できるので、その分メモリ消費を抑制でき、省電力化、あるいは他のフィーチャー(例えば、グラフィックスの高性能化)に、システムのCPUバジェット、メモリスペースバンド幅等を割り当てることが可能となり、多機能化が可能となる。
また、受信機200は、2次元(2D)画像受信時には、立体(3D)画像受信時と同様に、基本ビデオストリームおよび追加ビデオストリームを受信するが、立体(3D)画像処理を行うことなく、2次元(2D)画像処理を行う。そのため、従来型の2D表示と同等の表示画質を得ることが可能となる。
すなわち、2次元(2D)画像受信時に、立体(3D)画像処理を行った場合、基本ビデオストリームをデコードして得られた画像データと、追加ビデオストリームをデコードして得られた画像データとは、同じになる。そのため、3Dモードで表示を行うと、表示がフラットな、つまり視差が付かない表示となり、従来型の2D表示を行う場合に比べて、画質が劣る可能性がある。これは、例えば、ステレオ立体画像表示を考えると、3Dモニタがパッシブ(passive)型(偏光メガネによる)、アクティブ(active)型(シャッターメガネによる)のいずれでも起こり得る。
パッシブ型の多くのタイプのモニタは、3D表示は垂直方向に表示ライン単位で、左眼ビュー(Left view)と、右眼ビュー(Right view)のデータが交互に表示されることで3Dとするものであるが、2つのビューの画像データが同じ場合は、単に垂直解像度が従来の2D表示に比べ半分になる。一方、アクティブ型のモニタは、3D表示は時間方向にフレームを左眼ビュー、右眼ビューと交互に切り換えて表示するものであるが、2つのビューの画像データが同じ場合は、時間方向の分解能が従来の2D表示に比べ半分になる。
図66は、トランスポートストリームTSに、「Stream_Type=0x1B」で、「PID=01」であるMVCのベースビューの基本ビデオストリームES1が連続して含まれ、さらに、「Stream_Type=0x20」で、「PID=10」、「PID=11」であるMVCの追加ビデオストリームES2,ES3も連続的に含まれる場合の例を示している。この場合、ストリームES1の、3D期間および2D期間には、マルチビュー・ビュー・ポジション・SEIが挿入されている。
tn-1,tn+1の期間では、例えば、「view_position[0] = 1」、「view_position[1] = 0」、「view_position[2] = 2」とされており、3Dモードを示す。そのため、この期間において、受信機200は、立体(3D)表示処理を行う。つまり、ストリームES1の他に、ストリームES2,ES3も抽出されてデコードされ、立体(3D)表示が行われる。
一方、tnの期間では、例えば、「view_position[0] = 0」、「view_position[1] = 0」、「view_position[2] = 0」とされており、2Dモードを示す。そのため、この期間において、受信機200は、2次元(2D)表示処理を行う。つまり、ストリームES1のみが抽出されてデコードされ、2次元(2D)表示が行われる。
図67は、3D期間(3Dモード期間)と2D期間(2Dモード期間)が交互に連続する場合であって、モード識別のための補助情報(マルチビュー・ビュー・ポジション・SEIメッセージ)がある場合の一例を示している。期間T1,T3は3D期間を示し、期間T2は2D期間を示している。各期間は、例えば、番組単位、あるいはシーン単位を表す。
3D期間および2D期間の双方に、「Stream_Type=0x1B」のMVCのベースビューの基本ビデオストリームが存在すると共に、「Stream_Type=0x20」のMVCのノンベースビューの追加ビデオストリームが存在する。なお、基本ビデオストリームは、「SPS」を先頭として、所定数のアクセスユニット(AU)が続く構成となっている。
また、追加ビデオストリームは、「SSSPS」を先頭として、所定数のアクセスユニット(AU)が続く構成となっている。アクセスユニット(AU)は、“PPS, Substream SEIs, Coded Slice”で構成されている。ただし、2D期間の追加ビデオストリームは、基本ビデオストリームを参照した結果のビュー間差分がゼロであるという符号化モード(Skipped Macro Block)で符号化されている。この期間の追加ビデオストリームは、「SSSPS」を先頭として、所定数のアクセスユニット(AV)が続く構成となっている。アクセスユニット(AV)は、“PPS, Substream SEIs, Slice Skipped MB”で構成されている。
モード識別のための補助情報(マルチビュー・ビュー・ポジション・SEIメッセージ)がアクセスユニット(AU)毎に挿入されている。3D期間のアクセスユニットに挿入される補助情報は、「3D」で表しているが、「view_position[i]」が各ビューの相対位置関係を示す値とされ、3Dモード(立体画像送信モード)を示すものとされている。一方、2D期間のアクセスユニットに挿入される補助情報は、「2D」で表しているが、「view_position[i]」が各ビューで同じ値とされ、2Dモード(2次元画像送信モード)を示すものとされている。つまり、この場合、受信側で3D表示処理が行われる場合には、フラットな3D表示がされることを意味している。
このようにモード識別のための補助情報(マルチビュー・ビュー・ポジション・SEIメッセージ)がある場合、受信機は、補助情報の要素「view_position[i]」を検査して、その要素が3Dモードを示すか、あるいは2Dモードを示すかを即座に判別でき、デコード、そして表示処理を迅速に切換えることができる。受信機は、3D期間から2D期間に切り替わった場合、最初のアクセスユニットに挿入されている補助情報の要素「view_position[i]」が2Dモードを示すとの判別タイミングT2で、3D期間から2D期間に切り替わったことを判定でき、受信機の3Dから2Dへのモード切り替えを迅速に行うことができる。
なお、上述では、モード識別のための補助情報としてマルチビュー・ビュー・ポジション・SEIメッセージを使用する例を示した。詳細説明は省略するが、その他の補助情報、例えばマルチビュー・ストリーム・コンフィグレーション・SEIメッセージ(図21、図14参照)などを利用することも考えられる。
[モード識別のための補助情報の他の例]
上述では、モード識別のための補助情報、例えば、マルチビュー・ビュー・ポジション・SEIメッセージを3D期間および2D期間の双方に挿入し、受信機は、その設定内容に基づいて、3D期間か2D期間かをフレーム精度で判別する例を示した。しかし、3Dモードであることを示す補助情報を3D期間のみに挿入し、その有無に基づいて、3D期間か2D期間かをフレーム精度で判別することも考えられる。この場合も、補助情報として、例えば、マルチビュー・ビュー・ポジション・SEIメッセージを用いることができる。
上述の図7に示す送信データ生成部110は、3Dモード(立体画像送信モード)では、中間ビューの画像データが符号化されて得られたビデオストリーム(基本ビデオストリーム)に、マルチビュー・ビュー・ポジション・SEIメッセージを挿入する。このマルチビュー・ビュー・ポジション・SEIメッセージは、3Dモードであることを示す識別情報を構成する。この場合、少なくとも、番組単位、シーン単位、ピクチャグループ単位、あるいはピクチャ単位で挿入する。
図68、図69は、3D期間(立体画像受信時)と2D期間(2次元画像受信時)が交互に連続する場合における受信ストリームの一例を示している。各期間は、例えば、番組単位、あるいはシーン単位である。3D期間および2D期間のいずれにも、基本ビデオストリームとしての中央のビューのビデオストリームES1が存在する他に、追加ビデオストリームとしての左端ビューおよび右端ビューの2つのビデオストリームES2,ES3が存在する。
図68の例は、マルチビュー・ビュー・ポジション・SEIメッセージが、3D期間に、ピクチャ単位で挿入される場合を示している。また、図69の例は、マルチビュー・ビュー・ポジション・SEIが、3D期間に、シーン単位あるいはピクチャグループ単位(GOP単位)で挿入される場合を示している。
詳細説明は省略するが、この場合におけるCPU201における動作モード切り替えの制御の処理手順も、例えば、上述の図41のフローチャートで示される。CPU201は、ピクチャフレーム毎に、このフローチャートに従った制御を行う。しかし、SEIがピクチャ単位で挿入されていない場合、例えばGOP単位で挿入されている場合(図69参照)、CPU201は、現在のGOPのSEIの有無の情報が、次のGOPのSEIの有無の情報で置き換わるまでの間維持するようにされる。
上述したように、マルチビュー・ビュー・ポジション・SEIメッセージを3D期間のみに挿入することでも、受信側において、そのSEIメッセージの有無に基づいて、立体(3D)表示処理と2次元(2D)表示処理との切り替えを良好に行うことができる。そのため、配信内容の動的な変化に的確に対応でき、正しいストリーム受信を行うことができる。
図70は、トランスポートストリームTSに、「Stream_Type=0x1B」で、「PID=01」であるMVCのベースビューの基本ビデオストリームES1が連続して含まれ、さらに、「Stream_Type=0x20」で、「PID=10」、「PID=11」であるMVCの追加ビデオストリームES2,ES3も連続的に含まれる場合の例を示している。この場合、ストリームES1の3D期間には、マルチビュー・ビュー・ポジション・SEIが挿入されている。
tn-1,tn+1の期間には、マルチビュー・ビュー・ポジション・SEIが存在する。そのため、この期間において、受信機200は、立体(3D)表示処理を行う。つまり、ストリームES1の他に、ストリームES2,ES3も抽出されてデコードされ、立体(3D)表示が行われる。一方、tnの期間には、マルチビュー・ビュー・ポジション・SEIが存在しない。そのため、この期間において、受信機200は、2次元(2D)表示処理を行う。つまり、ストリームES1のみが抽出されてデコードされ、2次元(2D)表示が行われる。
図71は、3D期間(3Dモード期間)と2D期間(2Dモード期間)が交互に連続する場合であって、モード識別のための補助情報(マルチビュー・ビュー・ポジション・SEIメッセージ)がある場合の一例を示している。期間T1,T3は3D期間を示し、期間T2は2D期間を示している。各期間は、例えば、番組単位、あるいはシーン単位を表す。上述の図67の例と同様に、3D期間および2D期間の双方に、「Stream_Type=0x1B」のMVCのベースビューの基本ビデオストリームが存在すると共に、「Stream_Type=0x20」のMVCのノンベースビューの追加ビデオストリームが存在する。
モード識別のための補助情報(マルチビュー・ビュー・ポジション・SEIメッセージ)が、3D期間の各アクセスユニット(AU)に挿入されている。この補助情報は3Dモードであることを示し、「3D」で表している。なお、2D期間の各アクセスユニット(AU)には、このような補助情報の挿入はない。
このようにモード識別のための補助情報がある場合、受信機は、補助情報の存在の有無により、3D期間か2D期間かを即座に判別でき、デコード、そして表示処理を迅速に切換えることができる。受信機は、3D期間から2D期間に切り替わった場合、最初のアクセスユニットに補助情報がないとの判別タイミングT2で、3D期間から2D期間に切り替わったことを判定でき、受信機の3Dから2Dへのモード切り替えを迅速に行うことができる。
[モード識別のための補助情報のさらに他の例]
上述では、モード識別のための補助情報として、マルチビュー・ビュー・ポジション・SEIメッセージを利用し、受信機は、その設定内容や有無に基づいて3D期間か2D期間かをフレーム精度で判別する例を示した。モード識別のための補助情報として、さらに別の補助情報を利用することも考えられる。すなわち、2Dモードを示す補助情報を利用するものである。
2Dモードを示す識別情報として、新規定義のSEIメッセージを使用できる。また、MPEG2ストリームの場合には、既存のフレーム・パッキング・アレンジメント・データ(frame_packing_arrangement_data())を使用できる(図45、図46参照)。
上述の図7に示す送信データ生成部110は、2Dモード(立体画像送信モード)では、中間ビューの画像データが符号化されて得られたビデオストリーム(基本ビデオストリーム)に、2Dモードを示す補助情報を挿入する。例えば、このストリームがMPEG2ストリームである場合、ユーザデータ領域に、上述のフレーム・パッキング・アレンジメント・データ(arrangement_type = 0001000)を挿入する。この場合、少なくとも、番組単位、シーン単位、ピクチャグループ単位、あるいはピクチャ単位で挿入する。
2Dモードを示す補助情報を利用する場合における、図27に示す受信機200における立体(3D)表示処理と2次元(2D)の表示処理との動作モード切り替え制御について説明する。この切り替えは、CPU201により行われる。2次元(2D)画像受信時には、ビデオデコーダ216-1で2Dモードを示す補助情報が抽出されてCPU201に供給される。しかし、立体(3D)画像受信時には、ビデオデコーダ216-1でこの補助情報が抽出されることはなく、CPU201に供給されない。CPU201は、この補助情報の有無に基づいて、立体(3D)表示処理と2次元(2D)表示処理との切り替えを制御する。
図72、図73は、3D期間(立体画像受信時)と2D期間(2次元画像受信時)が交互に連続する場合における受信ストリームの一例を示している。各期間は、例えば、番組単位、あるいはシーン単位である。3D期間および2D期間のいずれにも、基本ビデオストリームとしての中央のビューのビデオストリームES1が存在する他に、追加ビデオストリームとしての左端ビューおよび右端ビューの2つのビデオストリームES2,ES3が存在する。図72の例は、2Dモードを示す補助情報が、2D期間に、ピクチャ単位で挿入される場合を示している。また、図73の例は、2Dモードを示す補助情報が、2D期間に、シーン単位あるいはピクチャグループ単位(GOP単位)で挿入される場合を示している。
詳細説明は省略するが、この場合におけるCPU201における動作モード切り替えの制御の処理手順も、例えば、上述の図50のフローチャートで示される。CPU201は、ピクチャフレーム毎に、このフローチャートに従った制御を行う。しかし、SEIがピクチャ単位で挿入されていない場合、例えばGOP単位で挿入されている場合(図73参照)、CPU201は、現在のGOPのSEIの有無の情報が、次のGOPのSEIの有無の情報で置き換わるまでの間維持するようにされる。
上述したように、2Dモードを示す補助情報を2D期間のみに挿入することでも、その識別情報の有無に基づいて、立体(3D)表示処理と2次元(2D)表示処理との切り替えを良好に行うことができる。そのため、配信内容の動的な変化に的確に対応でき、正しいストリーム受信を行うことができる。
図74は、トランスポートストリームTSに、「Stream_Type=0x02」で、「PID=01」であるMPEG2のベースビューの基本ビデオストリームES1が連続して含まれ、「Stream_Type=0x23」で、「PID=10」、「PID=11」であるAVCの追加ビデオストリームES2,ES3も連続的に含まれる場合の例を示している。
tn-1,tn+1の期間には、フレーム・パッキング・アレンジメント・データ(arrangement_type= “2D”)が存在しない。そのため、この期間において、受信機200は、立体(3D)表示処理を行う。つまり、ストリームES1の他に、ストリームES2,ES3も抽出されてデコードされ、立体(3D)表示が行われる。一方、tnの期間には、フレーム・パッキング・アレンジメント・データ(arrangement_type= “2D”)が存在する。そのため、この期間において、受信機200は、2次元(2D)表示処理を行う。つまり、ストリームES1のみが抽出されてデコードされ、2次元(2D)表示が行われる。
図75は、3D期間(3Dモード期間)と2D期間(2Dモード期間)が交互に連続する場合であって、モード識別のための補助情報(新規定義の2Dモードであることを示すSEIメッセージ)がある場合の一例を示している。期間T1,T3は3D期間を示し、期間T2は2D期間を示している。各期間は、例えば、番組単位、あるいはシーン単位を表す。上述の図67の例を同様に、3D期間および2D期間の双方に、「Stream_Type=0x1B」のMVCのベースビューの基本ビデオストリームが存在すると共に、「Stream_Type=0x20」のMVCのノンベースビューの追加ビデオストリームが存在する。
モード識別のための補助情報が2D期間の各アクセスユニット(AU)に挿入されている。この補助情報は2Dモードであることを示し、「2D」で表している。なお、3D期間の各アクセスユニット(AU)には、このような補助情報の挿入はない。
このようにモード識別のための補助情報がある場合、受信機は、補助情報の存在の有無により、3D期間か2D期間かを即座に判別でき、デコード、そして表示処理を迅速に切換えることができる。受信機は、3D期間から2D期間に切り替わった場合、最初のアクセスユニットに補助情報があるとの判別タイミングT2で、3D期間から2D期間に切り替わったことを判定でき、受信機の3Dから2Dへのモード切り替えを迅速に行うことができる。
[ステレオ立体画像の場合]
図76、図77は、3D期間(立体画像受信時)と2D期間(2次元画像受信時)が交互に連続する場合における受信ストリームの一例を示している。ただし、この例は、立体(3D)画像表示がステレオ立体画像表示である場合の例である(図54、図55参照)。各期間は、例えば、番組単位、あるいはシーン単位である。3D期間および2D期間のいずれにも、基本ビデオストリームとしての左眼ビューの画像データを含むビデオストリームES1が存在する他に、追加ビデオストリームとしての右眼ビューの画像データを含むビデオストリームES2が存在する。
図76の例は、マルチビュー・ビュー・ポジション・SEIメッセージが、3D期間および2D期間に、ピクチャ単位で挿入される場合を示している。また、図77の例は、マルチビュー・ビュー・ポジション・SEIが、3D期間および2D期間に、シーン単位あるいはピクチャグループ単位(GOP単位)で挿入される場合を示している。
図78は、トランスポートストリームTSに、「Stream_Type=0x1B」で、「PID=01」であるMVCのベースビューの基本ビデオストリームES1が連続して含まれ、さらに、「Stream_Type=0x20」で、「PID=10」であるMVCの追加ビデオストリームES2も連続的に含まれる場合の例を示している。この場合、ストリームES1の、3D期間および2D期間には、マルチビュー・ビュー・ポジション・SEIが挿入されている。
tn-1,tn+1の期間では、例えば、「view_position[0] = 0」、「view_position[1] = 1」とされており、3Dモードを示す。そのため、この期間において、受信機200は、立体(3D)表示処理を行う。つまり、ストリームES1の他に、ストリームES2も抽出されてデコードされ、立体(3D)表示が行われる。
一方、tnの期間では、例えば、「view_position[0] = 0」、「view_position[1] = 0」とされており、2Dモードを示す。そのため、この期間において、受信機200は、2次元(2D)表示処理を行う。つまり、ストリームES1のみが抽出されてデコードされ、2次元(2D)表示が行われる。
上述のステレオ立体画像表示の例では、マルチビュー・ビュー・ポジション・SEIをモード識別のための補助情報として3D期間および2D期間の双方に挿入し、受信機において、その設定内容に基づいて3D期間か2D期間かを識別するものである。詳細説明は、省略するが、3Dモードであることを示す補助情報を3D期間のみに挿入する例、あるいは2Dモードであることを示す補助情報を2D期間のみに挿入する例も同様に考えることができる。
図79は、上述した、3D期間および2D期間の双方に基本ストリーム(Base stream)および追加ストリーム(Additional stream)が存在する場合において、3D期間と2D期間を識別する、ケースD、ケースE、ケースFの方法をまとめて示している。
図79(a)に示すケースDの方法は、3D期間および2D期間の双方において基本ストリームにモード識別のための補助情報を挿入し、この補助情報の設定内容により3D期間であるか2D期間であるかを識別可能とする方法である。上述では、補助情報として、例えば、マルチビュー・ビュー・ポジション・SEIを使用する例を示した。
図79(b)に示すケースEの方法は、3D期間のみ基本ストリームに3Dモードであることを示す補助情報を挿入し、この補助情報の有無により3D期間であるか2D期間であるかを識別可能とする方法である。上述では、補助情報として、例えば、マルチビュー・ビュー・ポジション・SEIを使用する例を示した。
図79(c)に示すケースFの方法は、2D期間のみ基本ストリームに2Dモードであることを示す補助情報を挿入し、この補助情報の有無により3D期間であるか2D期間であるかを識別可能とする方法である。上述では、補助情報として、例えば、新規定義のSEI、フレーム・パッキング・アレンジメント・データなどを使用する例を示した。
上述したように、本技術においては、図80、図81に示すようなストリーム構成において、受信側で、3D画像送信モードであるか2D画像送信モードであるかというモード識別を、迅速に行うことができる。
図80は、3D期間(3D画像送信モード)で基本ビデオストリームおよび追加ビデオストリームが送信され、2D期間(2D画像送信モード)で単一のビデオストリーム(基本ビデオストリームのみ)が送信されるストリーム構成例1である。また、図81は、3D期間(3D画像送信モード)と2D期間(2D画像送信モード)の双方で基本ビデオストリームおよび追加ビデオストリームが送信されストリーム構成例2である。ただし、2D期間において、追加ビデオストリームは、基本ビデオストリームを参照した結果のビュー間差分がゼロであるという符号化モード(Skipped Macro Block)で符号化されている。これらの構成例1,2において、上述したように、本技術により、3D期間、2D期間の識別をフレーム精度で行うことができる。
[ビデオレイヤのシグナリング情報とシステムレイヤの3D,2Dの識別情報]
上述では、ビデオストリームに挿入される補助情報、つまりビデオレイヤの補助情報(シグナリング情報)で3D期間であるか2D期間であるかをフレーム精度で判定する例を示した。この場合、受信機は、常に該当する補助情報に相当する部分をチェックすることが必要となる。
このビデオレイヤの補助情報(シグナリング情報)とシステムレイヤの3D,2Dの識別情報(シグナリング情報)との組み合わせで、3D期間であるか2D期間であるかを判定することも考えられる。この場合、受信機は、システムレイヤの識別情報をまず検知し、該当するビデオレイヤの補助情報に相当する部分をチェックすることが可能となる。
「構成例1」
図82は、3D期間、2D期間の双方に基本ビデオストリームおよび追加ビデオストリームが存在し、PMT(プログラム・マップ・テーブル)のプログラム・ループ(Program_loop)とビデオESループ(video ES_loop)の双方でシグナリングが行われる例である。
この例の場合、3D期間(イベント1)および2D期間(イベント2)の双方に、「Stream_Type=0x02」のMPEFG2のベースビューの基本ビデオストリームが存在すると共に、「Stream_Type=0x23」のAVCのノンベースビューの追加ビデオストリームが存在する。この例において、「L」は左眼画像データを示し、「R」は右眼画像データ示すものとする。基本ビデオストリームが「L」で追加ビデオストリームが「R」であるときは通常の3D表示が可能となるが、基本ビデオストリームが「L」で追加ビデオストリームが「L」であるときはフラットな3D表示となる。
この例の場合、図54に示す送信データ生成部110Bでは、2D期間に、基本ビデオストリームのユーザデータ領域に、ピクチャ単位で、2Dモードであることを示すフレーム・パッキング・アレンジメント・データ(arrangement_type = “2D”)が挿入される。これにより、受信機では、ビデオレイヤにおいて、フレーム精度で、2D期間か3D期間かの判定が可能となる。
また、この例の場合、PMT(プログラム・マップ・テーブル)のプログラム・ループ(Program_loop)とビデオESループ(Video ES_loop)の双方でシグナリングが行われる。プログラム・ループには、ステレオスコピック・プログラム・インフォ・デスクリプタ(Stereoscopic_program_info_descriptor)が配置される。
図83(a)は、ステレオスコピック・プログラム・インフォ・デスクリプタの構造例(Syntax)を示している。「descriptor_tag」は、デスクリプタタイプを示す8ビットのデータであり、ここでは、ステレオスコピック・プログラム・インフォ・デスクリプタであることを示す。「descriptor_length」は、デスクリプタの長さ(サイズ)を示す8ビットのデータである。このデータは、デスクリプタの長さとして、以降のバイト数を示す。
「stereoscopic_service_type」の3ビットフィールドは、サービスのタイプを指定する。図83(b)は、「stereoscopic_service_type」の値とサービスタイプとの関係を示している。例えば、“011”はサービスコンパチブル・ステレオスコピック・3Dサービスを示し、“001”は2Dサービス示す。
図82の例に戻って、PMT(プログラム・マップ・テーブル)のプログラム・ループに配置されるステレオスコピック・プログラム・インフォ・デスクリプタの「stereoscopic_service_type」の値は、3D期間では“011”とされ、2D期間では“001”とされる。
また、2D期間には、ビデオESループに、MPEG2・ステレオスコピック・ビデオ・デスクリプタ(MPEG2_stereoscopic_video_format descriptor)が配置される。図84は、MPEG2・ステレオスコピック・ビデオ・デスクリプタの構造例(Syntax)を示している。「descriptor_tag」は、デスクリプタタイプを示す8ビットのデータであり、ここでは、MPEG2・ステレオスコピック・ビデオ・デスクリプタであることを示す。「descriptor_length」は、デスクリプタの長さ(サイズ)を示す8ビットのデータである。このデータは、デスクリプタの長さとして、以降のバイト数を示す。
「Stereo_video_arrangement_type_present」は、“1”の場合、これに続く7ビットの「arrangement_type」が「stereo_video_format_type」であることを示す。これは、上述したようにユーザ領域に挿入されるフレーム・パッキング・アレンジメント・データ(frame_packing_arrangement_data())における「arramgement_type」の定義と同様である(図46参照)。一方、「Stereo_video_arrangement_type_present」は、“0”の場合、これに続く7ビットには何の情報もないリザーブ(reserved)領域であることを示す。
上述したように、2D期間にビデオESループに配置されるMPEG2・ステレオスコピック・ビデオ・デスクリプタにおいては、「Stereo_video_arrangement_type_present」は“1”とされ、しかも「arramgement_type」は“2D”を示すものとされる。
図82に示すようにビデオレイヤおよびシステムレイヤでシグナリングが行われる場合における、図55に示す受信機200Bにおける立体(3D)表示処理と2次元(2D)の表示処理との動作モード切り替え制御について説明する。この切り替えは、CPU201により行われる。
2次元(2D)画像受信時には、デマルチプレクサ215で、ステレオスコピック・プログラム・インフォ・デスクリプタ(stereoscopic_service_type = “001”)およびMPEG2・ステレオスコピック・ビデオ・デスクリプタ(arrangement_type = “2D”)が抽出されて、CPU201に供給される。また、この2次元(2D)画像受信時には、ビデオデコーダ216-1で、フレーム・パッキング・アレンジメント・データ(arrangement_type= “2D”)抽出されて、CPU201に供給される。一方、立体(3D)画像受信時には、デマルチプレクサ215で、ステレオスコピック・プログラム・インフォ・デスクリプタ(stereoscopic_service_type = “011”)が抽出されて、CPU201に供給される。
CPU201は、ステレオスコピック・プログラム・インフォ・デスクリプタ(stereoscopic_service_type = “011”)のみが抽出された後、フレーム・パッキング・アレンジメント・データ(arrangement_type = “2D”)が抽出されないフレーム(ピクチャ)のタイミング(「Ta」で図示)で、2次元(2D)表示処理から立体(3D)表示処理に切り替える制御を行う。
また、CPU201は、ステレオスコピック・プログラム・インフォ・デスクリプタ(stereoscopic_service_type = “001”)およびMPEG2・ステレオスコピック・ビデオ・デスクリプタ(arrangement_type = “2D”)が抽出された後、フレーム・パッキング・アレンジメント・データ(arrangement_type = “2D”)が抽出されるフレーム(ピクチャ)のタイミング(「Tb」で図示)で、立体(3D)表示処理から2次元(2D)表示処理に切り替える制御を行う。
図85は、トランスポートストリームTSの構成例を示している。なお、この構成例では、図面の簡単化のために、視差データ、オーディオ、およびグラフィクスなどに関しては、その図示を省略している。トランスポートストリームTSには、「PID1」の基本ビデオストリーム(MPEG2ストリーム)のPESパケット「video PES1」が含まれていると共に、「PID2」の追加ビデオストリーム(AVCストリーム)のPESパケット「video PES1」が含まれている。2D期間の場合のみ、基本ビデオストリームのユーザデータ領域には、ピクチャ単位で、2Dモードであることを示すフレーム・パッキング・アレンジメント・データ(arrangement_type = “2D”)が挿入される
また、PMT配下のプログラム・ループには、ステレオスコピック・プログラム・インフォ・デスクリプタ(Stereoscopic_program_info_descriptor)が配置されている。このデスクリプタの「stereoscopic_service_type」は、3D期間の場合には“011”とされ3Dサービスであることが示され、2D期間の場合には“001”とされ2Dサービスであることが示される。
また、PMT配下のビデオESループには、基本ビデオストリームに関する情報として、2D期間の場合のみ、MPEG2・ステレオスコピック・ビデオ・デスクリプタ(MPEG2_stereoscopic_video_format descriptor)が配置される。このデスクリプタの「arramgement_type」は“2D”とされている。これにより、2Dサービスであることが示される。逆に、このデスクリプタがないことで、3Dサービスであることが示されることになる。
「構成例2」
図86は、3D期間、2D期間の双方に基本ビデオストリームおよび追加ビデオストリームが存在し、PMTのビデオESループ(video ES_loop)でシグナリングが行われる例である。なお、この図86において、図82と対応する部分については、適宜、その説明を省略する。
この例の場合、図54に示す送信データ生成部110Bでは、2D期間に、基本ビデオストリームのユーザデータ領域に、ピクチャ単位で、2Dモードであることを示すフレーム・パッキング・アレンジメント・データ(arrangement_type = “2D”)が挿入される。これにより、受信機では、ビデオレイヤにおいて、フレーム精度で、2D期間か3D期間かの判定が可能となる。
また、この例の場合、PMTのプログラム・ループに、ステレオスコピック・プログラム・インフォ・デスクリプタ(Stereoscopic_program_info_descriptor)が配置される。このデスクリプタの「stereoscopic_service_type」の値は、3D期間および2D期間の双方ともに“011”とされる。また、この例の場合、2D期間には、ビデオESループに、MPEG2・ステレオスコピック・ビデオ・デスクリプタ(MPEG2_stereoscopic_video_format descriptor)が配置される。このデスクリプタにおいては、「arramgement_type」は“2D”を示すものとされる。
図86に示すようにビデオレイヤおよびシステムレイヤでシグナリングが行われる場合における、図55に示す受信機200Bにおける立体(3D)表示処理と2次元(2D)の表示処理との動作モード切り替え制御について説明する。この切り替えは、CPU201により行われる。
2次元(2D)画像受信時には、デマルチプレクサ215で、ステレオスコピック・プログラム・インフォ・デスクリプタ(stereoscopic_service_type = “011”)およびMPEG2・ステレオスコピック・ビデオ・デスクリプタ(arrangement_type = “2D”)が抽出されて、CPU201に供給される。また、この2次元(2D)画像受信時には、ビデオデコーダ216-1で、フレーム・パッキング・アレンジメント・データ(arrangement_type= “2D”)抽出されて、CPU201に供給される。一方、立体(3D)画像受信時には、デマルチプレクサ215で、ステレオスコピック・プログラム・インフォ・デスクリプタ(stereoscopic_service_type = “011”)のみが抽出されて、CPU201に供給される。
CPU201は、ステレオスコピック・プログラム・インフォ・デスクリプタ(stereoscopic_service_type = “011”)のみが抽出された後、フレーム・パッキング・アレンジメント・データ(arrangement_type = “2D”)が抽出されないフレーム(ピクチャ)のタイミング(「Ta」で図示)で、2次元(2D)表示処理から立体(3D)表示処理に切り替える制御を行う。
また、CPU201は、ステレオスコピック・プログラム・インフォ・デスクリプタ(stereoscopic_service_type = “011”)およびMPEG2・ステレオスコピック・ビデオ・デスクリプタ(arrangement_type = “2D”)が抽出された後、フレーム・パッキング・アレンジメント・データ(arrangement_type = “2D”)が抽出されるフレーム(ピクチャ)のタイミング(「Tb」で図示)で、立体(3D)表示処理から2次元(2D)表示処理に切り替える制御を行う。
「構成例3」
図87は、3D期間、2D期間の双方に基本ビデオストリームおよび追加ビデオストリームが存在し、PMTのプログラム・ループ(Program_loop)でシグナリングが行われる例である。なお、この図87において、図82と対応する部分については、適宜、その説明を省略する。
この例の場合、図54に示す送信データ生成部110Bでは、2D期間に、基本ビデオストリームのユーザデータ領域に、ピクチャ単位で、2Dモードであることを示すフレーム・パッキング・アレンジメント・データ(arrangement_type = “2D”)が挿入される。これにより、受信機では、ビデオレイヤにおいて、フレーム精度で、2D期間か3D期間かの判定が可能となる。
また、この例の場合、PMTのプログラム・ループに、ステレオスコピック・プログラム・インフォ・デスクリプタ(Stereoscopic_program_info_descriptor)が配置される。このデスクリプタの値は、3D期間では“011”とされ、2D期間では“001”とされる。
図87に示すようにビデオレイヤおよびシステムレイヤでシグナリングが行われる場合における、図55に示す受信機200Bにおける立体(3D)表示処理と2次元(2D)の表示処理との動作モード切り替え制御について説明する。この切り替えは、CPU201により行われる。
2次元(2D)画像受信時には、デマルチプレクサ215で、ステレオスコピック・プログラム・インフォ・デスクリプタ(stereoscopic_service_type = “001”)が抽出されて、CPU201に供給される。また、この2次元(2D)画像受信時には、ビデオデコーダ216-1で、フレーム・パッキング・アレンジメント・データ(arrangement_type= “2D”)抽出されて、CPU201に供給される。一方、立体(3D)画像受信時には、デマルチプレクサ215で、ステレオスコピック・プログラム・インフォ・デスクリプタ(stereoscopic_service_type = “011”)が抽出されて、CPU201に供給される。
CPU201は、ステレオスコピック・プログラム・インフォ・デスクリプタ(stereoscopic_service_type = “011”)が抽出された後、フレーム・パッキング・アレンジメント・データ(arrangement_type = “2D”)が抽出されないフレーム(ピクチャ)のタイミング(「Ta」で図示)で、2次元(2D)表示処理から立体(3D)表示処理に切り替える制御を行う。
また、CPU201は、ステレオスコピック・プログラム・インフォ・デスクリプタ(stereoscopic_service_type = “001”)が抽出された後、フレーム・パッキング・アレンジメント・データ(arrangement_type = “2D”)が抽出されるフレーム(ピクチャ)のタイミング(「Tb」で図示)で、立体(3D)表示処理から2次元(2D)表示処理に切り替える制御を行う。
「構成例4」
図88は、3D期間に基本ビデオストリームおよび追加ビデオストリームが存在し、2D期間に基本ビデオストリームのみが存在し、PMTのプログラム・ループ(Program_loop)とビデオESループ(video ES_loop)の双方でシグナリングが行われる例である。なお、この図88において、図82と対応する部分については、適宜、その説明を省略する。
この例の場合、図54に示す送信データ生成部110Bでは、2D期間に、基本ビデオストリームのユーザデータ領域に、ピクチャ単位で、2Dモードであることを示すフレーム・パッキング・アレンジメント・データ(arrangement_type = “2D”)が挿入される。これにより、受信機では、ビデオレイヤにおいて、フレーム精度で、2D期間か3D期間かの判定が可能となる。
また、この例の場合、PMTのプログラム・ループに、ステレオスコピック・プログラム・インフォ・デスクリプタ(Stereoscopic_program_info_descriptor)が配置される。このデスクリプタの「stereoscopic_service_type」の値は、3D期間では“011”とされ、2D期間では“001”とされる。また、この例の場合、2D期間には、ビデオESループに、MPEG2・ステレオスコピック・ビデオ・デスクリプタ(MPEG2_stereoscopic_video_format descriptor)が配置される。このデスクリプタにおいて、「arrangement_type」は“2D”を示すものとされる。
図88に示すようにビデオレイヤおよびシステムレイヤでシグナリングが行われる場合における、図55に示す受信機200Bにおける立体(3D)表示処理と2次元(2D)の表示処理との動作モード切り替え制御について説明する。この切り替えは、CPU201により行われる。
2次元(2D)画像受信時には、デマルチプレクサ215で、ステレオスコピック・プログラム・インフォ・デスクリプタ(stereoscopic_service_type = “001”)およびMPEG2・ステレオスコピック・ビデオ・デスクリプタ(arrangement_type = “2D”)が抽出されて、CPU201に供給される。また、この2次元(2D)画像受信時には、ビデオデコーダ216-1で、フレーム・パッキング・アレンジメント・データ(arrangement_type= “2D”)抽出されて、CPU201に供給される。一方、立体(3D)画像受信時には、デマルチプレクサ215で、ステレオスコピック・プログラム・インフォ・デスクリプタ(stereoscopic_service_type = “011”)が抽出されて、CPU201に供給される。
CPU201は、ステレオスコピック・プログラム・インフォ・デスクリプタ(stereoscopic_service_type = “011”)のみが抽出された後、フレーム・パッキング・アレンジメント・データ(arrangement_type = “2D”)が抽出されないフレーム(ピクチャ)のタイミング(「Ta」で図示)で、2次元(2D)表示処理から立体(3D)表示処理に切り替える制御を行う。
また、CPU201は、ステレオスコピック・プログラム・インフォ・デスクリプタ(stereoscopic_service_type = “001”)およびMPEG2・ステレオスコピック・ビデオ・デスクリプタ(arrangement_type = “2D”)が抽出された後、フレーム・パッキング・アレンジメント・データ(arrangement_type = “2D”)が抽出されるフレーム(ピクチャ)のタイミング(「Tb」で図示)で、立体(3D)表示処理から2次元(2D)表示処理に切り替える制御を行う。
「構成例5」
図89は、3D期間に基本ビデオストリームおよび追加ビデオストリームが存在し、2D期間に基本ビデオストリームのみが存在し、ビデオESループ(video ES_loop)でシグナリングが行われる例である。なお、この図89において、図82と対応する部分については、適宜、その説明を省略する。
この例の場合、図54に示す送信データ生成部110Bでは、2D期間に、基本ビデオストリームのユーザデータ領域に、ピクチャ単位で、2Dモードであることを示すフレーム・パッキング・アレンジメント・データ(arrangement_type = “2D”)が挿入される。これにより、受信機では、ビデオレイヤにおいて、フレーム精度で、2D期間か3D期間かの判定が可能となる。
また、この例の場合、PMTのプログラム・ループに、ステレオスコピック・プログラム・インフォ・デスクリプタ(Stereoscopic_program_info_descriptor)が配置される。このデスクリプタの「stereoscopic_service_type」の値は、3D期間および2D期間の双方ともに“011”とされる。また、この例の場合、2D期間には、ビデオESループに、MPEG2・ステレオスコピック・ビデオ・デスクリプタ(MPEG2_stereoscopic_video_format descriptor)が配置される。このデスクリプタにおいては、「arramgement_type」は“2D”を示すものとされる。
図89に示すようにビデオレイヤおよびシステムレイヤでシグナリングが行われる場合における、図55に示す受信機200Bにおける立体(3D)表示処理と2次元(2D)の表示処理との動作モード切り替え制御について説明する。この切り替えは、CPU201により行われる。
2次元(2D)画像受信時には、デマルチプレクサ215で、ステレオスコピック・プログラム・インフォ・デスクリプタ(stereoscopic_service_type = “011”)およびMPEG2・ステレオスコピック・ビデオ・デスクリプタ(arrangement_type = “2D”)が抽出されて、CPU201に供給される。また、この2次元(2D)画像受信時には、ビデオデコーダ216-1で、フレーム・パッキング・アレンジメント・データ(arrangement_type= “2D”)抽出されて、CPU201に供給される。一方、立体(3D)画像受信時には、デマルチプレクサ215で、ステレオスコピック・プログラム・インフォ・デスクリプタ(stereoscopic_service_type = “011”)のみが抽出されて、CPU201に供給される。
CPU201は、ステレオスコピック・プログラム・インフォ・デスクリプタ(stereoscopic_service_type = “011”)のみが抽出された後、フレーム・パッキング・アレンジメント・データ(arrangement_type = “2D”)が抽出されないフレーム(ピクチャ)のタイミング(「Ta」で図示)で、2次元(2D)表示処理から立体(3D)表示処理に切り替える制御を行う。
また、CPU201は、ステレオスコピック・プログラム・インフォ・デスクリプタ(stereoscopic_service_type = “011”)およびMPEG2・ステレオスコピック・ビデオ・デスクリプタ(arrangement_type = “2D”)が抽出された後、フレーム・パッキング・アレンジメント・データ(arrangement_type = “2D”)が抽出されるフレーム(ピクチャ)のタイミング(「Tb」で図示)で、立体(3D)表示処理から2次元(2D)表示処理に切り替える制御を行う。
「構成例6」
図90は、3D期間に基本ビデオストリームおよび追加ビデオストリームが存在し、2D期間に基本ビデオストリームのみが存在し、PMTのプログラム・ループ(Program_loop)でシグナリングが行われる例である。なお、この図90において、図82と対応する部分については、適宜、その説明を省略する。
この例の場合、図54に示す送信データ生成部110Bでは、2D期間に、基本ビデオストリームのユーザデータ領域に、ピクチャ単位で、2Dモードであることを示すフレーム・パッキング・アレンジメント・データ(arrangement_type = “2D”)が挿入される。これにより、受信機では、ビデオレイヤにおいて、フレーム精度で、2D期間か3D期間かの判定が可能となる。
また、この例の場合、PMTのプログラム・ループに、ステレオスコピック・プログラム・インフォ・デスクリプタ(Stereoscopic_program_info_descriptor)が配置される。このデスクリプタの値は、3D期間では“011”とされ、2D期間では“001”とされる。
図90に示すようにビデオレイヤおよびシステムレイヤでシグナリングが行われる場合における、図55に示す受信機200Bにおける立体(3D)表示処理と2次元(2D)の表示処理との動作モード切り替え制御について説明する。この切り替えは、CPU201により行われる。
2次元(2D)画像受信時には、デマルチプレクサ215で、ステレオスコピック・プログラム・インフォ・デスクリプタ(stereoscopic_service_type = “001”)が抽出されて、CPU201に供給される。また、この2次元(2D)画像受信時には、ビデオデコーダ216-1で、フレーム・パッキング・アレンジメント・データ(arrangement_type= “2D”)抽出されて、CPU201に供給される。一方、立体(3D)画像受信時には、デマルチプレクサ215で、ステレオスコピック・プログラム・インフォ・デスクリプタ(stereoscopic_service_type = “011”)が抽出されて、CPU201に供給される。
CPU201は、ステレオスコピック・プログラム・インフォ・デスクリプタ(stereoscopic_service_type = “011”)が抽出された後、フレーム・パッキング・アレンジメント・データ(arrangement_type = “2D”)が抽出されないフレーム(ピクチャ)のタイミング(「Ta」で図示)で、2次元(2D)表示処理から立体(3D)表示処理に切り替える制御を行う。
また、CPU201は、ステレオスコピック・プログラム・インフォ・デスクリプタ(stereoscopic_service_type = “001”)が抽出された後、フレーム・パッキング・アレンジメント・データ(arrangement_type = “2D”)が抽出されるフレーム(ピクチャ)のタイミング(「Tb」で図示)で、立体(3D)表示処理から2次元(2D)表示処理に切り替える制御を行う。
「その他の構成例」
上述の構成例1から構成例6は、2D期間のビデオストリームの各ピクチャに2Dモードであることを示す補助情報(例えば、フレーム・パッキング・アレンジメント・データ)を挿入する例を示した。詳細説明は、省略するが、2D期間および3D期間のビデオストリームの各ピクチャにモード識別を行うための補助情報を挿入する場合、さらには3D期間のビデオストリームの各ピクチャに3Dモードであることを示す補助情報を挿入する場合にも、同様の構成とすることができる。
<2.変形例>
[SVCストリーム]
なお、上述実施の形態においては、本技術をMVCストリームに適用した例を示した。すなわち、第1の送信モードが、立体画像表示のための、ベースビューの画像データと、このベースビューの画像データと共に使用されるノンベースビューの画像データを送信する立体画像送信モードであり、第2の送信モードが、2次元画像データを送信する2次元画像送信モードである、例である。
しかし、本技術は、SVCストリームにも同様に適用できる。SVCストリームには、スケーラブル符号化画像データを構成する最下位階層の画像データのビデオエレメンタリストリームが含まれる。さらに、このSVCストリームには、スケーラブル符号化画像データを構成する最下位階層以外の所定数の上位階層の画像データのビデオエレメンタリストリームが含まれる。
このSVCストリームの場合、第1の送信モードは、スケーラブル符号化画像データを構成する、最下位階層の画像データと、この最下位階層以外の階層の画像データを送信する拡張画像送信モードであり、第2の送信モードが、基本画像データを送信する基本画像送信モードである。このSVCストリームの場合も、上述したMVCストリームと同様にして、受信側で、モード識別を、迅速に行うことができる。
このSVCストリームの場合、拡張画像送信モードで基本ビデオストリームおよび追加ビデオストリームが送信され、基本画像送信モードで単一のビデオストリーム(基本ビデオストリームのみ)が送信されるストリーム構成例1が考えられる(図80参照)。この場合には、上述したMVCストリームの場合と同様にして、モード識別を行うことができる。
また、このSVCストリームの場合、拡張画像送信モードと基本画像送信モードの双方で基本ビデオストリームおよび追加ビデオストリームが送信されストリーム構成例2が考えられる(図81参照)。ただし、基本画像送信モードにおいて、追加ビデオストリームは、基本ビデオストリームを参照した結果のビュー間差分がゼロであるという符号化モード(Skipped Macro Block)で符号化される。この場合にも、上述したMVCストリームの場合と同様に、モード識別を行うことができる。
図91は、拡張画像受信時の受信パケット処理の一例を示している。基本ビデオストリームと追加ビデオストリームのNALパケットが混在して伝送されてくる。図92は、NALユニットヘッダおよびNALユニットヘッダのSVC拡張(NAL unit header SVC extension)の構成例(Syntax)を示している。「dependency_id」のフィールドは、該当する階層が何番目の階層かを示す。受信機は、図91に示すように、NALユニットタイプ(NAL unit type)の値と、NALユニットヘッダのSVC拡張(Headersvc extension )のデペンデンシィーID(dependency_id)の組み合わせに基づいて、混在して伝送されてくるNALパケットをストリーム毎に振り分け、各ストリームをデコードする。
図93は、基本画像送信モードの受信パケット処理の一例を示している。基本ビデオストリームと追加ビデオストリームのNALパケットが混在して伝送されてくる。受信機は、図93に示すように、NALユニットタイプ(NAL unit type)の値と、NALユニットヘッダのSVC拡張(Headersvc extension )のデペンデンシィーID(dependency_id)の組み合わせに基づいて、混在して伝送されてくるNALパケットをストリーム毎に振り分け、基本ビデオストリームのみデコードする。
すなわち、受信機は、基本画像送信モードにも、拡張画像送信モードと同様に、基本ビデオストリームおよび追加ビデオストリームを受信するが、拡張画像受信処理を行うことなく、マルチビュー・ビュー・ポジション・SEIメッセージの「view_position[i]」と同種のID値の情報、つまり、複数のストリームのデペンデンシィー(dependency)が同値であるような設定内容に基づいて、基本画像受信処理を行う。
このように、追加ビデオストリームの符号化データのデコードを行うことなく、パケット(NALパケット)レベルでの識別ができるので、受信機で、拡張画像送信モードから基本画像送信モードへの移行を迅速に行うことが可能となる。また、スライス・レイヤ(Slice layer)以下をデコードせずに破棄できるので、その分メモリ消費を抑制でき、省電力化、あるいは他のフィーチャー(例えば、グラフィックスの高性能化)に、システムのCPUバジェット、メモリスペースバンド幅等を割り当てることが可能となり、多機能化が可能となる。
[その他]
また、上述実施の形態においては、放送局100と受信機200からなる画像送受信システム10を示したが、本技術を適用し得る画像送受信システムの構成は、これに限定されるものではない。例えば、受信機200の部分が、例えば、(HDMI(High-Definition Multimedia Interface)などのデジタルインタフェースで接続されたセットトップボックスおよびモニタの構成などであってもよい。
また、上述実施の形態においては、コンテナがトランスポートストリーム(MPEG−2 TS)である例を示した。しかし、本技術は、インターネット等のネットワークを利用して受信端末に配信される構成のシステムにも同様に適用できる。インターネットの配信では、MP4やそれ以外のフォーマットのコンテナで配信されることが多い。つまり、コンテナとしては、デジタル放送規格で採用されているトランスポートストリーム(MPEG−2 TS)、インターネット配信で使用されているMP4などの種々のフォーマットのコンテナが該当する。
また、本技術は、以下のような構成を取ることもできる。
(1)所定数の画像データを含む1つまたは複数のビデオストリームを送信する送信部と、
複数の画像データを送信する第1の送信モードと単一の画像データを送信する第2の送信モードとを識別するための補助情報を、上記ビデオストリームに挿入する補助情報挿入部とを備える
画像データ送信装置。
(2)上記情報挿入部は、
上記第1の送信モードでは、上記ビデオストリームに、該第1の送信モードであることを示す補助情報を挿入し、上記第2のモードでは、上記ビデオストリームに、該第2の送信モードであることを示す補助情報を挿入する
前記(1)に記載の画像データ送信装置。
(3)上記情報挿入部は、
上記第1の送信モードでは、上記ビデオストリームに、該第1の送信モードであることを示す補助情報を挿入し、上記第2の送信モードでは、上記ビデオストリームに上記補助情報を挿入しない
前記(1)に記載の画像データ送信装置。
(4)上記情報挿入部は、
上記第1の送信モードでは、上記ビデオストリームに上記補助情報を挿入せず、上記第2の送信モードでは、上記ビデオストリームに、該第2の送信モードであることを示す補助情報を挿入する
前記(1)に記載の画像データ送信装置。
(5)上記情報挿入部は、
上記ビデオストリームに、上記補助情報を、少なくとも、番組単位、シーン単位、ピクチャグループ単位、あるいはピクチャ単位で挿入する
前記(1)から(4)のいずれかに記載の画像データ送信装置。
(6)上記送信部は、
上記第1の送信モードでは、第1の画像データを含む基本ビデオストリームと、該第1の画像データと共に使用される第2の画像データを含む所定数の追加ビデオストリームを送信し、
上記第2の送信モードでは、上記第1の画像データを含む1つのビデオストリームを送信する
前記(1)から(5)のいずれかに記載の画像データ送信装置。
(7)上記送信部は、
上記第1の送信モードでは、第1の画像データを含む基本ビデオストリームと、該第1の画像データと共に使用される第2の画像データを含む所定数の追加ビデオストリームを送信し、
上記第2の送信モードでは、第1の画像データを含む基本ビデオストリームと、該第1の画像データと同じ画像データを実質的に含む所定数の追加ビデオストリームとを送信する
前記(1)から(5)のいずれかに記載の画像データ送信装置。
(8)上記第1の送信モードは、立体画像表示のための、ベースビューの画像データと、該ベースビューの画像データと共に使用されるノンベースビューの画像データを送信する立体画像送信モードであり、
上記第2の送信モードは、2次元画像データを送信する2次元画像送信モードである
前記(1)から(7)のいずれかに記載の画像データ送信装置。
(9)上記立体画像送信モードを示す上記補助情報は、上記各ビューの相対位置関係を示す情報を含む
前記(8)に記載の画像データ送信装置。
(10)上記第1の送信モードは、スケーラブル符号化画像データを構成する、最下位階層の画像データと、該最下位階層以外の階層の画像データを送信する拡張画像送信モードであり、
上記第2の送信モードは、基本画像データを送信する基本画像送信モードである
前記(1)から(7)のいずれかに記載の画像データ送信装置。
(11)上記送信部は、上記ビデオストリームを含む所定フォーマットのコンテナを送信し、
上記コンテナのレイヤに、上記第1の送信モードにあるか上記第2の送信モードにあるかを識別するための識別情報を挿入する識別情報挿入部をさらに備える
前記(1)から(10)のいずれかに記載の画像データ送信装置。
(12)所定数の画像データを含む1つまたは複数のビデオストリームを送信する送信ステップと、
複数の画像データを送信する第1の送信モードと単一の画像データを送信する第2の送信モードとを識別するための補助情報を、上記ビデオストリームに挿入する情報挿入ステップとを備える
画像データ送信方法。
(13)所定数の画像データを含む1つまたは複数のビデオストリームを受信する受信部と、
上記受信されたビデオストリームに挿入されている補助情報に基づいて、複数の画像データが送信される第1の送信モードであるか単一の画像データが送信される第2の送信モードであるかを識別する送信モード識別部と、
上記受信されたビデオストリームを、上記モード識別結果に基づいて、各モードに応じた処理を行って、上記所定数の画像データを取得する処理部とを備える
画像データ受信装置。
(14)上記送信モード識別部は、
上記受信されたビデオストリームに第1の送信モードであることを示す補助情報が挿入されているとき、該第1の送信モードであると識別し、
上記受信されたビデオストリームに第2の送信モードであることを示す補助情報が挿入されているとき、該第2の送信モードであると識別する
前記(13)に記載の画像データ受信装置。
(15)上記送信モード識別部は、
上記受信されたビデオストリームに第1の送信モードであることを示す補助情報が挿入されているとき、該第1の送信モードであることを識別し、
上記受信されたビデオストリームに上記補助情報の挿入がないとき、上記第2の送信モードであると識別する
前記(13)に記載画像データ受信装置。
(16)上記送信モード識別部は、
上記受信されたビデオストリームに上記補助情報の挿入がないとき、上記第1の送信モードであると識別し、
上記受信されたビデオストリームに第2の送信モードであることを示す補助情報が挿入されているとき、該第2の送信モードであることを識別する
前記(13)に記載画像データ受信装置。
(17)上記受信部は、
上記第1の送信モードでは、第1の画像データを含む基本ビデオストリームと、該第1の画像データと共に使用される第2の画像データを含む所定数の追加ビデオストリームを受信し、上記第2の送信モードでは、第1の画像データを含む1つのビデオストリームを受信し、
上記処理部は、
上記第1の送信モードでは、上記基本ビデオストリームおよび上記所定数の追加のビデオストリームを処理して、上記第1の画像データおよび上記第2の画像データを取得し、上記第2の送信モードでは、上記1つのビデオストリームを処理して、上記第1の画像データを取得する
前記(13)から(16)のいずれかに記載の画像データ受信装置。
(18)上記受信部は、
上記第1の送信モードでは、第1の画像データを含む基本ビデオストリームと、該第1の画像データと共に使用される第2の画像データを含む所定数の追加ビデオストリームを受信し、上記第2の送信モードでは、第1の画像データを含む基本ビデオストリームと、該第1の画像データと同じ画像データを実質的に含む所定数の追加ビデオストリームとを受信し、
上記処理部は、
上記第1の送信モードでは、上記基本ビデオストリームおよび上記所定数の追加のビデオストリームを処理して、上記第1の画像データおよび上記第2の画像データを取得し、上記第2の送信モードでは、上記所定数の追加のビデオストリームから上記第2の画像データを取得する処理を行うことなく、上記基本のビデオストリームを処理して、上記第1の画像データを取得する
前記(13)から(16)のいずれかに記載の画像データ受信装置。
(19)上記受信部は、
上記ビデオストリームを含む所定フォーマットのコンテナを受信し、
上記コンテナには、上記コンテナのレイヤに、上記第1の送信モードにあるか上記第2の送信モードにあるかを識別するための識別情報が挿入されており、
上記送信モード識別部は、上記受信されたビデオストリームに挿入されている補助情報および上記コンテナのレイヤに挿入されている識別情報に基づいて、複数の画像データが送信される第1の送信モードであるか単一の画像データが送信される第2の送信モードであるかを識別する
前記(13)から(18)のいずれかに記載の画像データ受信装置。
(20)上記第1の送信モードは、立体画像表示のための、ベースビューの画像データと、該ベースビューの画像データと共に使用されるノンベースビューの画像データを送信する立体画像送信モードであり、
上記第2の送信モードは、2次元画像データを送信する2次元画像送信モードである
前記(13)から(19)のいずれかに記載の画像データ受信装置。
本技術の主な特徴は、送信ビデオストリームに、3D期間および2D期間、3D期間のみ、あるいは2D期間のみに挿入される補助情報(SEIメッセージ、ユーザデータなど)に基づき、受信側で、3D期間か2D期間かの識別をフレーム精度で可能とすることで、配信内容の動的な変化に的確に対応でき、正しいストリーム受信を可能にしたことである(図59、図79参照)。