<1.実施の形態1>
<1−1.概要>
図1は、複数の視点映像の符号化の際の視点間の参照関係を示す概念図である。
同図は、視点映像a〜cにおける参照関係を示す一例である。
各視点映像は、対応する視点における経時的な眺め、すなわちカメラで撮影した時間的に連続した画像を示すピクチャ群から構成され、各ピクチャは、再生装置で再生する際の1画面を構成する画像、すなわちフレーム又はフィールドを構成する画像を意味する。
同図の矢印は、矢印の先にある視点映像が、矢印の元にある視点映像から参照される関係にあることを示している。例えば、図1(i)の視点映像aは視点映像cの同時刻のピクチャを参照して符号化することを意味する。
図1(i)で示す参照関係を持つ視点映像の場合、MPEG−4 MVC(Multi view coding)に準拠し、視点映像cを圧縮符号化したベースビューを生成する。そして、視点映像aと視点映像bのピクチャそれぞれを、ベースビューの同時刻を示すピクチャを参照したピクチャ間予測符号化を用いて圧縮符号化したディペンデントビューを生成する。同時刻の近接する視点映像におけるピクチャ間には、ピクチャに類似性がある(相関性が大きい)。そして、ピクチャ間の相関性が大きい程、ピクチャ間の差分は小さくなり、MPEG−4 MVCによる圧縮符号化においては、一般的に差分が小さい程、符号化したデータ量も小さくなる。そのため、その差分を圧縮符号化して生成するディペンデントビューは、ベースビューに比べてデータ量を削減できる。なお、以下、説明の都合上、ベースビューとディペンデントビューとを、単に「ビュー」と呼ぶこともある。また、異なる視点におけるビューのピクチャを参照することを「ビュー間参照」という。
図1(ii)で示す参照関係の場合は、視点映像cではなく視点映像bの同時刻のピクチャを参照したピクチャ間予測符号化を用いて、視点映像aのピクチャを符号化したディペンデントビューを生成する。
視点映像aが参照する視点映像bのピクチャは、図1(i)の場合と比べて、距離の近い視点映像を参照するため、ピクチャ間の相関性が大きく、データ量をより削減して圧縮符号化できると考えられる。しかし、視点映像aを復号する際には、図1(i)では、視点映像bのピクチャの復号は必要ないが、この場合には、視点映像bのピクチャも復号しなければならない。このように隣り合う視点映像を参照して符号化する場合、視点映像が多くなればなるほど、基準視点から離れた視点映像を再生する際に復号する視点映像の数も多くなるという問題がある。
図1(iii)で示す視点映像の場合は、図1(i)の場合と同様に、視点映像aは視点映像cのピクチャを参照するが、視点映像bは、視点映像cと視点映像aとの両方のピクチャを参照したピクチャ間予測符号化により符号化し、ディペンデントビューを生成する。この場合、視点映像bは、視点映像cと視点映像aの両方のピクチャを参照するため、図1(i)や(ii)の場合のように1つの視点映像だけを参照して符号化した場合に比べてデータ量をより削減して符号化し得る。2つの視点映像のピクチャを参照して符号化する視点映像の数が多くなればなるほど、図1(i)や(ii)の場合に比べて、複数の視点映像全体としてデータ量をより削減し得ると考えられる。
そこで、本実施の形態に係る符号化装置は、2つの視点映像を参照しながら符号化する視点映像の場合には、図1(iii)で示すような参照関係の視点映像、すなわち、符号化する視点映像を挟む2つの視点映像を用いて符号化を行う。これにより、複数の視点映像全体でデータ量を削減した符号化を行い得る。この場合の圧縮符号化方法として、MPEG−2やMPEG−4 MVCの圧縮符号化方法における、時間方向においてBピクチャとして符号化する場合と同様の符号化方法、すなわち、ピクチャ内のオブジェクトの動きベクトルを、前後2つのピクチャを参照することによって求め、マクロブロック単位で、その差分を圧縮符号化する符号化方法を用いて圧縮符号化する。
なお、本実施の形態では、符号化の際のピクチャタイプを3つに分類し、「SI(Spacial Intra)ピクチャ」、「SP(Spatial Predictive)ピクチャ」、「SB(Spatial Bi-directionally Predictive)ピクチャ」と呼ぶ。
SIピクチャとは、他の視点映像のピクチャを参照せず、単独で復号可能なベースビューのピクチャである。
SPピクチャとは、符号化対象の視点映像とは異なる視点映像を符号化したビューの内の1つのビューだけを参照して符号化したディペンデントビューのピクチャである。
SBピクチャとは、符号化対象の視点映像とは異なる視点映像を符号化したビューの内の異なる2つのビューを参照して符号化したディペンデントビューのピクチャである。SBピクチャは他の視点映像を符号化する際に参照されない。なお、他の視点映像を符号化する際に参照されるSBピクチャを特に「SBrピクチャ」と呼ぶ。
本実施の形態の符号化装置は、各視点映像を、全体を通して同じ種類のピクチャタイプで符号化したビュービデオストリームを生成する。SIピクチャ群で構成されるビュービデオストリームを「SIピクチャビデオ」、SPピクチャ群で構成されるビュービデオストリームを「SPピクチャビデオ」、SBピクチャ群で構成されるビュービデオストリームを「SBピクチャビデオ」、SBrピクチャ群で構成されるビュービデオストリームを「SBrピクチャビデオ」と呼ぶ。
以下、本発明の一実施形態に係る符号化装置と、復号装置を含む再生装置とについて説明する。
<1−2.符号化装置>
<1−2−1.構成>
図2は、本実施の形態に係る符号化装置2600の構成を示すブロック図である。
符号化装置2600は、複数の視点映像を入力として、各視点映像を符号化し、後述するデータフォーマットのベースビュービデオストリーム及びディペンデントビュービデオストリームを格納するトランスポートストリームを出力する。
符号化装置2600は、制御部2601、ベースビュービデオエンコーダ2602、ディペンデントビュービデオエンコーダ2603、エンコーダセレクタ2604、ビデオデコーダ2605、ピクチャメモリ2606、ビュービデオ符号化情報記憶部2607、デコードビデオセレクタ2608、ビュービデオ記憶部2609、参照情報記憶部2610、ベースビュービデオストリーム生成部2611、ディペンデントビュービデオストリーム生成部2612、PMT(Program Map Table)生成部2613、マルチプレクサ2614、トランスポートストリーム出力部2615から構成される。
符号化装置2600は、図示しないプロセッサ及びメモリを含んで構成されており、制御部2601、ベースビュービデオストリーム生成部2611、ディペンデントビュービデオストリーム生成部2612、及びPMT生成部2613の機能は、このメモリに記憶されているプログラムをこのプロセッサが実行することにより実現される。
(制御部2601)
制御部2601は、入力された視点映像毎に、入力された視点映像をベースビュービデオエンコーダ2602とディペンデントビュービデオエンコーダ2603とのどちらに出力するのかをエンコーダセレクタ2604に対して指示する機能を備える。
制御部2601は、複数の視点映像それぞれに対して視点映像の提供者が予め指定したエンコードタイプの情報(例えば、以下に示すエンコードタイプテーブル100)に基づいて、出力先のビデオエンコーダをどちらにするかを判断する。視点映像の提供者は、できるだけ効率よく符号化及び復号できるように各視点映像のエンコードタイプを指定する。例えば、各視点映像が一直線上に配置されている場合、ユーザが主に視聴するであろうと想定される中央の視点位置の視点映像を基準視点の視点映像と定め、SIピクチャビデオとして符号化するように指定し、基準視点から両側に最も離れた2つの視点映像をSPピクチャビデオ、残りの視点映像をSBピクチャビデオとして符号化するように指定する。
ここで、図3に、ピクチャビデオのエンコードタイプを指定するエンコードタイプテーブル100の一例を示す。
エンコードタイプテーブル100は、視点映像101とビデオタイプ102とを関連付けたテーブルである。視点映像101は、符号化対象の視点映像の識別情報であり、ビデオタイプ102は、視点映像101で示される視点映像を符号化する際のビデオタイプを示す情報である。ビデオタイプは、視点映像のピクチャをSIピクチャ、SPピクチャ、SB(SBrピクチャを含む)ピクチャのいずれのピクチャとして、符号化するかを示す情報である。同図の例では、視点映像eは、基準視点であるSIピクチャビデオとして符号化することを示し、視点映像a、iはSPピクチャビデオ、視点映像b、c、d、f、g、hはSBピクチャビデオとして符号化することを示す。
制御部2601は、エンコードタイプテーブル100を参照し、ビデオタイプ102がSIピクチャビデオである視点映像、SPピクチャビデオである視点映像、SBピクチャビデオである視点映像の順に符号化するように制御する。そして、入力された視点映像のエンコードタイプがSIピクチャビデオの場合には、ベースビュービデオエンコーダ2602に出力されるようにエンコーダセレクタ2604に指示し、SPピクチャビデオ及びSB(SBrを含む)ピクチャビデオの場合には、ディペンデントビュービデオエンコーダ2603に出力するように指示する。
また、制御部2601は、ディペンデントビュービデオエンコーダ2603が符号化の際に、後述するビュービデオ符号化情報に基づいて、同時刻の参照するピクチャを特定し、
ビデオデコーダ2605で参照先の視点映像における同時刻のピクチャを復号できるように、ビデオデコーダ2605へ参照先の視点映像のビューを出力する指示をデコードビデオセレクタ2608に対して行う機能を備える。制御部2601は、例えば、図1(iii)の視点映像aを符号化する際には、ベースビュービデオエンコーダ2602によって視点映像cを符号化したSIピクチャビデオを、ビデオデコーダ2605に出力するようにデコードビデオセレクタ2608に指示する。また、視点映像bを符号化する際には、ベースビュービデオエンコーダ2602によって視点映像cを符号化したSIピクチャビデオと、ディペンデントビュービデオエンコーダ2603によって視点映像aを符号化したSPピクチャビデオとをビデオデコーダ2605に、エンコードするピクチャ毎に、逐次切り替えて出力する指示をデコードビデオセレクタ2608に行う。
(ベースビュービデオエンコーダ2602)
ベースビュービデオエンコーダ2602は、エンコーダセレクタ2604を介して入力された視点映像から、MPEG−4 MVC形式に準拠して、他の視点映像を参照せず、符号化したベースビューを生成し、後述するビデオデコーダ2605及びビュービデオ記憶部2609に出力する機能を有する。
(ディペンデントビュービデオエンコーダ2603)
ディペンデントビュービデオエンコーダ2603は、エンコーダセレクタ2604を介して入力された視点映像から、MPEG−4 MVC形式に準拠して、ビュー間参照を用いて符号化したディペンデントビューを生成し、ビデオデコーダ2605及びビュービデオ記憶部に出力する機能を有する。ディペンデントビュービデオエンコーダ2603は、後述するビュービデオ符号化情報に含まれる情報を元に、ビュー間参照として、ビデオデコーダ2605で参照先の視点映像のビューを復号して得た同時刻のピクチャ(以下、「復号ピクチャ」と呼ぶ。)を用いて視点映像のピクチャの符号化を行う。更に、この時参照した視点映像を識別する情報に基づいて後述する参照情報200を生成し、参照情報記憶部2610に出力する機能を備える。
(エンコーダセレクタ2604)
エンコーダセレクタ2604は、制御部2601が指示に従い、入力された視点映像を出力するエンコーダを切り替える機能を有する。エンコーダセレクタ2604は、制御部2601の指示がSIピクチャビデオを出力する指示である場合には、ベースビュービデオエンコーダ2602に入力された視点映像を出力し、SPピクチャビデオ及びSBピクチャビデオを出力する指示である場合には、ディペンデントビュービデオエンコーダ2603に入力された視点映像を出力する。
(ビデオデコーダ2605)
ビデオデコーダ2605は、ディペンデントビュービデオエンコーダで圧縮符号化する際に参照するピクチャを復号する機能を備える。
ビデオデコーダ2605は、MPEG−4 MVCの既存のデコーダと同等の機能を備え、復号したピクチャと共に、各視点映像のビューにおいて、復号の際に表示やデコード順の同期をとるためのDTS、PTSの情報を出力する。これらの情報に基づいて、ディペンデントビュービデオエンコーダ2603は、参照先のピクチャと同じPTSを用いて符号化することができる。
ビデオデコーダ2605は、視点映像を符号化する際に、先に符号化されたSIピクチャビデオ及びSPピクチャビデオから、参照元の視点映像のピクチャと同時刻のピクチャを復号し、ピクチャメモリ2606に出力する。ビデオデコーダ2605は、例えば、ある1つの視点映像をSPピクチャビデオとして符号化する際には、制御部2601の指示に従い、デコードビデオセレクタ2608を介して入力された、先に符号化されたSIピクチャビデオを復号し、復号して得られたピクチャをビュー間参照用のピクチャとして、ピクチャメモリ2606に出力し、復号したビューに関するビュービデオ符号化情報を出力する。ビュービデオ符号化情報については、後述する。
(ピクチャメモリ2606)
ピクチャメモリ2606は、読書可能なメモリ(例えばDRAM:Dynamic Random Access Memory)であり、メモリビデオデコーダ2605で復号したピクチャを格納する機能を備える。ピクチャメモリ2606に格納されたピクチャは、ディペンデントビュービデオエンコーダ2603で視点映像を符号化する際に参照される。
(ビュービデオ符号化情報記憶部2607)
ビュービデオ符号化情報記憶部2607は、例えば不揮発性メモリであり、ビデオデコーダ2605で復号した際に得られるビューの属性情報(解像度、アスペクト比、フレームレート、プログレッシブかインターレースかの区別など)、該当ピクチャのピクチャ属性情報(ピクチャタイプなど)、後述するGOP(Group of Pictures)構造、及び、ピクチャメモリ管理情報を含むビュービデオ符号化情報を記憶する。
ピクチャメモリ管理情報は、ピクチャメモリ2606に格納される復号ピクチャのメモリアドレスと該当ピクチャの表示順情報(PTS:Presentation Time Stamp)と符号順情報(ファイルの符号順やDTS:Decoding Time Stamp)とを関連付した情報である。
これらの情報は、ビデオデコーダ2605でピクチャビデオを復号する際に得られる情報であり、基本的には、従来のMPEG−4 MVCの復号の際に得られる情報と同様の情報である。
(デコードビデオセレクタ2608)
デコードビデオセレクタ2608は、制御部2601の指示に従い、ビュー間参照するために復号するビューを切り替えてビデオデコーダ2605に出力する機能を備えるセレクタである。
(ビュービデオ記憶部2609)
ビュービデオ記憶部2609は、例えばハードディスクであり、ベースビュービデオエンコーダ2602及びディペンデントビュービデオエンコーダ2603で符号化されたビューのデータを記憶する。
(参照情報記憶部2610)
参照情報記憶部2610は、例えばハードディスクであり、1つの視点映像を符号化してディペンデントビューを生成する際に、その視点映像と参照先の視点映像との参照関係を示す参照情報200を記憶する。
ここで、参照情報200の一例を図4に示す。参照情報200は、視点映像201と参照先202とを関連付けたテーブルである。視点映像201は、符号化対象の視点映像の識別情報であり、参照先202は、視点映像201で示される視点映像を符号化する際に参照した視点映像の識別情報を示す。参照先202の項目の「0」は、視点映像を符号化する際に、参照した視点映像はないことを意味する。つまり、参照先に「0」が記載されている視点映像は、ベースビューであるSIピクチャビデオとして符号化されたことを示す。同図では、視点映像eは、他の視点映像を参照せず、視点映像a、iは、視点映像eを参照し、視点映像b、c、dは、視点映像a、eの2つの視点映像を参照し、視点映像f、g、hは、視点映像e、iの2つの視点映像を参照して符号化されたことを示す。
(ベースビュービデオストリーム生成部2611)
ベースビュービデオストリーム生成部2611は、ベースビュービデオエンコーダ2602で符号化され、ビュービデオ記憶部2609に保存されたベースビューのデータからマルチプレクサ2614でディペンデントビュービデオストリームと共に多重化してトランスポートストリームとして出力されるベースビュービデオストリームを生成する機能を備える。
(ディペンデントビュービデオストリーム生成部2612)
ディペンデントビュービデオストリーム生成部2612は、ディペンデントビュービデオエンコーダ2603で符号化され、ビュービデオ記憶部2609に保存されたディペンデントビューからマルチプレクサ2614でベースビュービデオストリームと共に多重化してトランスポートストリームとして出力されるディペンデントビュービデオストリームを生成する機能を備える。
(PMT生成部2613)
PMT生成部2613は、PMTヘッダ、トランスポートストリームに関する各種ディスクリプタ、及びトランスポートストリーム中に含まれる映像・音声・字幕などの各ストリームに関するストリーム情報とを備えるPMTを生成する機能を備える。
マルチプレクサ2614は、ベースビュービデオストリーム生成部2611から出力されたベースビュービデオストリーム及びディペンデントビュービデオストリーム生成部2612から出力されたディペンデントビュービデオストリームを多重化し、PES(Packetized Elementary Stream)パケット化した後にTSパケット単位で分割して出力する機能を備える。なお、マルチプレクサ2614は、ビデオストリームだけではなく、各視点映像を再生する際に同期して再生される共通の音声のストリーム及び字幕のストリームがある場合は、これらのストリームをビデオストリームと多重化して出力する。
(トランスポートストリーム出力部2615)
トランスポートストリーム出力部2615は、マルチプレクサで多重化されたTSパケットをトランスポートストリームとして逐次出力する機能を備えるインターフェースである。
<1−2−3.データフォーマット>
次に、データフォーマットについて、図面を参照しながら説明を行う。
本実施の形態で用いる視点映像の各ピクチャを符号化したデータのデータフォーマットは、MPEG−4 MVC形式のデータフォーマットと同じである。
図5は、本実施の形態でのベースビュービデオストリームとディペンデントビュービデオストリームとのGOP構成を示している。MPEG−4 MVCにおけるビデオストリームのGOPと同じ構造である。
GOPは1つ以上のビデオアクセスユニット(以下、「AU」と呼ぶ。)により構成される。AUは、ピクチャの圧縮符号化データを格納する単位であり、1つのAUには、1フレームのピクチャのデータが格納される。ベースビュービデオストリーム及びディペンデントビュービデオストリームは1つ以上のGOPで構成され、GOPは、それぞれ1つ以上のAUで構成される。なお、AUは従来のビデオストリームにおけるAUと同じ構造であり、詳細は後述する。
符号化の際には、再生装置での飛び込み再生などの特殊再生に対応するため、ベースビュービデオストリームのGOPとディペンデントビュービデオストリームのGOP(以下、「ディペンデントGOP」と呼ぶ。)とは全て同じ枚数で構成される。つまり、各ディペンデントGOPの先頭ピクチャは、ベースビュービデオストリームの各GOP先頭のIピクチャのPTSと同じPTSが付与されたピクチャである。
また、MPEG−4 MVCの規格に基づいて、GOP先頭のピクチャがファイル上のどこにあるかを示すエントリマップ情報を格納した管理情報を生成する。このとき、ベースビュービデオストリームのGOP先頭のピクチャの位置だけでなく、同時刻のディペンデントビューのピクチャのGOP先頭の位置を示すエントリマップ情報も格納する。
次に、多視点映像をMPEG−4 MVC形式で視点映像を符号化して得られるベースビュー及びディペンデントビューとの参照関係とマルチビューアクセスユニットの構成について説明する。
図6は、ベースビューとディペンデントビューとを構成する各ピクチャ間の参照関係を示す概念図である。各ピクチャ間の参照関係には、同一ビュー内での時間的な参照関係と、各ビュー間の空間的な参照関係とがある。
同図の矢印は、矢印の先にあるピクチャが、矢印の元にあるピクチャから参照される関係にあることを示している。例えば、ベースビューのI0ピクチャは、時間方向では、ベースビューのBr1、Br2、P3ピクチャから、空間方向では、ディペンデントビュー1のP10ピクチャ、ディペンデントビュー2のP20ピクチャから参照されることを示す。
各マルチビュービデオアクセスユニット(以下、「マルチビューAU」と呼ぶ。)は、ベースビューのAUと、ベースビューと同時刻の、複数のディペンデントビューのAUとで構成され、再生装置は、このマルチビューAU単位で復号する。マルチビューAU群で構成されるビデオストリームをマルチビュービデオストリームと呼ぶ。マルチビューAUの詳細は、後述する。
ここで、多視点映像を符号化して得られるベースビュー及びディペンデントビューとの関係を、具体例を挙げて説明する。
図7は、多視点映像の符号化の際の視点間の参照関係を示す概念図である。同図は、視点映像a〜iの9つの視点映像がある場合の一例である。
図7(i)では、視点映像eが基準視点の視点映像であり、視点映像eを符号化したベースビューを生成する。そして、視点映像eに隣接する視点映像d、fを、視点映像eのベースビューを参照して、符号化したディペンデントビューを生成する。
更に、図中、視点映像dに隣り合う視点映像cは、視点映像dを参照して符号化したディペンデントビューを生成する。このように順次隣り合う視点映像のビューを参照して符号化を行う。
ところで、再生装置で、図7(i)のユーザ視点Xの位置の映像を生成するためには視点映像a、bが必要である。視点映像a、bを得るためには、まず、視点映像eのベースビューを復号し、次に、視点映像d、c、b、aの順にディペンデントビューを復号しなければならない。すなわち、視点映像a〜eの5つの視点映像のビューの復号処理を行う必要があり、基準視点から離れるに従って、再生装置にとって処理負荷が増大する。以下、復号対象のビューを復号する際に参照するピクチャを得るために復号が必要なビューの数を「必要デコードビュー数」と呼ぶ。この例の場合は、必要デコードビュー数は5である。
一方、図7(ii)は、符号化装置2600で用いる視点間の参照関係の一例を示す図である。
図7(ii)の場合も、図7(i)と同様に、視点映像eが基準視点の視点映像とし、視点映像eを符号化したベースビューを生成する。
次に、図中、両端の視点映像a、iを、視点映像eを符号化したベースビューを参照して符号化し、それぞれの視点映像のディペンデントビューを生成する。そして、視点映像eと視点映像aとの間にある視点位置の視点映像b、c、dを、視点映像eと視点映像aとをそれぞれ符号化したビューを参照して符号化し、それぞれの視点映像のディペンデントビューを生成する。また、視点映像f、g、hについては、視点映像eと視点映像iとをそれぞれ符号化したビューを参照して符号化し、それぞれディペンデントビューを生成する。
このように符号化した場合でも、再生装置で、ユーザ視点Xの位置の映像を生成するためには、上述の場合と同様に視点映像a、bが必要である。しかし、視点映像aを得るためには視点映像eのビューを復号すれば足り、また、視点映像bは、視点映像a、eのビューを復号すれば足る。すなわち、この場合の必要デコードビュー数は3であり、図7(i)の場合に比べて必要デコードビュー数を削減できる。更に、視点映像aと視点映像eとの間の視点映像が多くなっても、視点映像aと視点映像eとの間の視点映像の復号の際の必要デコードビュー数は3であり、必要デコードビュー数は増加しない。
次に、図7(i)、(ii)で示される参照関係を持つ視点映像をMPEG−4 MVC形式で符号化した場合の各ビューの参照関係について図を用いて説明する。
図8は、図7(i)で示される視点間の参照関係の場合のビューの参照関係を概念的に示した図である。
同図のベースビューは視点映像eに対応し、ディペンデントビュー1は視点映像dに、ディペンデントビュー2は視点映像cに、ディペンデントビュー3は視点映像bに対応する。ディペンデントビュー1は、ベースビューを参照し、ディペンデントビュー2は、ディペンデントビュー1を参照し、ディペンデントビュー3は、ディペンデントビュー2を参照し符号化される。このため、例えば、ディペンデントビュー2のP20ピクチャを復号する場合には、まずベースビューのI0ピクチャを復号し、次にディペンデントビュー1のP10ピクチャを復号する必要がある。また、ディペンデントビュー3を復号するためには、同様にベースビューのI0ピクチャ、ディペンデントビューをP10ピクチャ、ディペンデントビュー2のP20ピクチャの順に復号する必要がある。
一方、図9は、図7(ii)で示される視点間の参照関係の場合のビューの参照関係を概念的に示した図である。
同図のベースビューは視点映像eに対応し、ディペンデントビュー1は視点映像aに、ディペンデントビュー2は視点映像bに、ディペンデントビュー3は視点映像cにそれぞれ対応する。
ディペンデントビュー1は、ベースビューを参照し、ディペンデントビュー2及びディペンデントビュー3は、ベースビューとディペンデントビュー1とを参照する。従って、ディペンデントビュー3のピクチャを復号する場合でも、ディペンデントビュー2のピクチャの復号は必要なく、ベースビューとディペンデントビュー1のピクチャを復号すればよい。
(マルチビューAU)
次に、マルチビューAUについて説明する。
図10は、マルチビューAUの内部構成の概念図である。
マルチビューAUは、ベースビューと複数のディペンデントビューの同時刻のそれぞれのAUを連結させた構成である。
GOP先頭のAUには、圧縮ピクチャデータとしてIピクチャのデータが格納され、AU識別コード、シーケンスヘッダ、ピクチャヘッダ、圧縮ピクチャデータが必ず格納される。補足データ、パディングデータ、シーケンス終端コード、ストリーム終端コードは必要に応じて適宜格納される。
一方、GOP先頭以外のAUには、AU識別コード、圧縮ピクチャデータが必ず格納され、補足データ、パディングデータ、シーケンス終端コード、ストリーム終端コードを必要に応じて適宜格納される。
(MVC情報ディスクリプタ及びMVCストリームディスクリプタ)
ここでは、多視点映像のトランスポートストリームを、受信した再生装置が多視点映像を利用できるように、トランスポートストリームに含める情報について説明する。
放送波などで配信されるトランスポートストリームには、多視点映像以外のトランスポートストリーム以外に2D映像、3D映像などのトランスポートストリームがあり、受信した再生装置は、受信したトランスポートストリームが、どのような映像であるかを識別できる必要がある。そこで、トランスポートストリームのPMT(Program Map Table)パケットに、このような映像の復号処理を行う上でのシグナリング情報を含める。
図11は、トランスポートストリームの構成とPMT(Program Map Table)パケットの関係を示している。同図に示すように、ディスクリプタは、各ビデオストリームの関係や本方式の映像再生の開始・終了などの情報を記述したMVC情報ディスクリプタと、ビデオストリーム毎に設定されるMVCストリームディスクリプタを含んで構成される。
以下、PMTに格納されるMVC情報ディスクリプタとMVCストリームディスクリプタについて説明する。
図12は、MVC情報ディスクリプタの構造を示す。
MVC情報ディスクリプタは、再生方式と再生情報ディスクリプタから構成される。
再生方式は、入力されたビデオストリームの映像再生方式を示す情報を示す識別子である。同図の例では、「1」の場合には2D映像の再生を示し、「2」の場合には2つの視点映像を用いた3D映像の再生を示し、「3」の場合には1枚の2D映像とデプスマップを用いた3D映像の再生を示し、「4」の場合には複数視点を用いた再生を示し、「5」は、拡張用のreservedであることを示す。
なお、本実施の形態の符号化装置では、拡張用のreservedの「5」は未使用であり、割り当てられている再生方式は割り当てられていないが、将来的には、例えば次のような再生方式を割り当ててもよい。
拡張用のreservedの「5」に割り当てる再生方式の一例としては、再生時に色階調を変えて再生する方式がある。この再生方式では、例えば、8ビットの色階調で2D映像を圧縮符号化したベースビュービデオストリームを生成し、12ビットの色階調を持つ映像とベースビュービデオストリームの復号結果との差分映像を圧縮符号化したディペンデントビュービデオストリームを生成したトランスポートストリームを配信する。このようなトランスポートストリームを受信した再生装置は、ベースビュービデオストリームを復号したピクチャに、ディペンデントビュービデオストリームを復号した差分ピクチャを合成して再生することで、異なる色階調で再生することができる。
再生情報ディスクリプタは、再生方式毎に用いるディスクリプタの種類を識別するための情報を示す識別子である。図12の例では、再生方式の値が「1」の場合は、MVC 2Dディスクリプタ、「2」の場合は、MVC Stereo 3Dディスクリプタ、「3」の場合は、MVC 2D+Depthディスクリプタ、「4」の場合は、MVCマルチビューディスクリプタを用いることを意味する。つまり、本実施の形態において生成するビデオストリームに関するMVC情報ディスクリプタの再生方式の値は「4」であり、マルチビューディスクリプタを用いる。
次に、本実施の形態で用いられるMVCマルチビューディスクリプタについて詳細に説明する。なお、MVCマルチビューディスクリプタは、2つの視点映像を用いる3D映像の場合のMVC Stereo 3Dディスクリプタと共通する部分が多いので、まず、MVC Stereo 3Dディスクリプタについて説明し、次に拡張部分について説明する。
(MVC Stereo 3Dディスクリプタ)
図13及び図14にMVC Stereo 3Dディスクリプタの各フィールドを示す。
以下、それぞれのフィールドについて説明する。
(base_view_left_flag)
base_view_left_flagは、ベースビューが左目用、右目用の映像のどちらであるかを示す識別子である。base_view_left_flagの値が「0」の場合は、ベースビューは左目用の映像であることを示し、「1」の場合は、右目用の映像であることを示す。再生装置は、この識別子を参照することで、3D映像として、テレビに表示する場合に、ベースビューを左目用、右目用のどちらの視点映像として出力するかを判断する。また、この識別子に値を設定することで、コンテンツのベースビューをどちらかに固定しなくてもよいため、コンテンツの符号化において、ベースビューとして符号化する視点映像を選択する際の自由度が増す。
(LR_same_content_flag)
LR_same_content_flagは、ベースビューとディペンデントビューのコンテンツ(内容)が同じか否かを示す識別子である。つまり、左目映像と右目映像の内容がまったく同じである場合、すなわち実質的には2D映像での再生の場合には、この識別子を「1」とする。再生装置は、例えば、この識別子の値が「1」の場合には、ベースビューのみを復号し、左目用、右目用として同じ映像を出力すればよいので、復号の際の処理負荷を下げることが可能となる。
(interview_reference_flag)
interview_reference_flagは、ベースビューとディペンデントビューの間に、ビュー間参照があるか否かを示す識別子である。interview_reference_flagの値が「0」の場合には、ベースビューとディペンデントビューの間にビュー間参照がないことを示し、再生装置は、ベースビューとディペンデントビューを復号する際にそれぞれのビューストリームを独立して並列に復号処理することができる。また、例えば、この識別子の値が「0」の場合には、ビュー間参照用のピクチャメモリを用いず復号することができる。
(interview_reference_type)
interview_reference_typeは、intereview_reference_flagの値が「1」の場合、すなわちビュー間参照する場合のビュー間参照の参照方法を示す識別子である。
interview_reference_typeの値が「0」の場合には、ベースビューのGOP先頭のピクチャのみビュー間参照されることを示す。「1」の場合には、ベースビューのピクチャがIピクチャの場合のみビュー間参照されることを示す。「2」の場合には、ベースビューのピクチャがIピクチャ又はPピクチャの場合のみ、ビュー間参照されることを示す。「3」の場合には、ベースビューのピクチャがIピクチャ、Pピクチャ以外のピクチャ、すなわちBピクチャであってもビュー間参照されることを示す。
再生装置は、復号処理を開始する前に、ビュー間参照の参照方法が分かるので、参照方法に応じた復号処理をすることができる。例えば、interview_reference_typeの値が「0」の場合、すなわち、ビュー間参照がGOP先頭のみの場合には、GOP先頭のピクチャの復号の際は、ベースビューのピクチャの復号を行った後にディペンデントビューを復号する。そして、この場合には、GOP先頭のピクチャの復号以外のピクチャは、ベースビューのピクチャを参照せずにディペンデントビューのピクチャを復号できるので、再生装置は、両者の復号を並列して行うことで、復号にかかる時間を短縮することができる。
(sub_audelimiter_flag)
sub_audelimiter_flagは、サブAU識別コードがあるかないかを示す識別子である。再生装置は、この識別子を参照することで、サブAU識別コードの存在有無に応じた制御を行うことができる。例えば、sub_audelimiter_flagの値が「1」の場合には、サブAU識別コードの位置を調べることで、ディペンデントビューのデータの位置を迅速に特定できるので、ストリームの解析処理の負荷を下げられる。
(base_view_first_flag)
base_view_first_flagは、「ベースビューのIピクチャの先頭TSパケット」が、「ディペンデントビューの対応するピクチャの先頭TSパケット」より前にあるか否かを示す識別子である。なお、本実施の形態の説明では、トランスポートストリームの先頭に近い方を「前」、終端に近い方を「後」と表現する。
base_view_first_flagの値が「1」の場合には、ベースビューのIピクチャの先頭TSパケットが、ディペンデントビューの対応するピクチャの先頭TSパケットより必ず前にあることを意味する。従って、再生装置は、ランダムアクセス再生を行う場合に、ベースビューのIピクチャのパケットから再生することで、対応するディペンデントビューのデータを更に読み出して復号し再生することができる。「0」の場合には、ベースビューのIピクチャが対応するディペンデントビューのピクチャのTSパケットが後にあるとは限らないので、ランダムアクセス再生時に、ディペンデントビューのTSパケットの読出しが困難となり3Dでのランダムアクセス再生ができない可能性がある。この場合、再生装置は、2D映像としてベースビューのみを再生するといった処理で対応することができる。
(dept_view_end_flag)
dept_view_end_flagは、「ベースビューのIピクチャの先頭TSパケット」が、「ディペンデントビューの対応するピクチャの再生順で一つ前のピクチャの終端TSパケット」より後ろにあるか否かを示す識別子である。dept_view_end_flagの値が「1」の場合には、「ベースビューのIピクチャの先頭TSパケット」が、「ディペンデントビューの対応するピクチャの再生順で一つ前のピクチャの終端TSパケット」より必ず後ろにあることを意味する。従って、再生装置は、ベースビューのIピクチャの先頭から、次のIピクチャの先頭までを読み込み再生することで、対応するディペンデントビューも同時に再生することができる。なお、base_view_first_flagやdept_view_end_flagで基準とするIピクチャを、GOP先頭のIピクチャのみにしてもよい。
(num_of_sub_bitstreams)
num_of_sub_bitstreamsは、サブビットストリームの数を示す識別子である。サブビットストリームとはトランスポートストリーム内でPIDが割り振られたビデオストリームのことである。
num_of_sub_bitstreamsの値が「1」の場合は、サブビットストリームは1つを意味し、ベースビューとディペンデントビューは、結合して同じPIDで格納されることを示す。「2」の場合は、サブビットストリームは2つを意味し、ベースビューとディペンデントビューは別々のPIDで格納されることを示す。
サブビットストリームが1つの場合には、図10のように、ベースビューのAUと、ディペンデントビューのAUが結合されたマルチビューAUの単位で、エレメンタリストリームを構成して、同一PIDで多重化される。再生装置では、num_of_sub_bitstreamsを参照することによって、ビデオストリーム自体を解析する前に、ベースビューとディペンデントビューが一つのPIDのストリームに格納されているのか、別々のPIDで格納されているのかを判別することができるので、ビデオストリームの多重分離の処理の負荷を軽減することができる。なお、後述する、多視点映像に拡張した場合のMVC マルチビューディスクリプタのnum_of_subbitstreamsのループ内に、PIDの値を格納してもよい。これにより、再生装置では、ビデオストリーム自体を解析せずに全てのサブビットストリームのPIDを取得することができる。
(max_disparity)
max_disparityは、ベースビューとディペンデントビューの映像の最大視差の大きさ(ピクセル単位)を示す識別子である。再生装置では、この値を用いて、ベースビューとディペンデントビューのピクチャをシフトさせて、視差の大きさを調整することができる。例えば、テレビサイズに対して、視差が大きすぎれば、小さくするようにピクチャをシフトし、3D表示を調整する。
(assumed_TV_size)
assumed_TV_sizeは、3D映像を視聴する場合の基準となるテレビサイズを示す識別子である。再生装置は、このサイズを参照することで、例えば、実際に視聴するテレビの大きさが、assumed_TV_sizeよりも大きければ、視差が大きくなりすぎ、視聴に適さない3D映像となる可能性があるので、視差が小さくなるようにピクチャをシフトし、視差の調整を行うことができる。
(BB_during_PopUp)
BB_during_PopUpは、3D映像を視聴する際に、再生装置のOSD(On Screen Display)ポップアップメニューを出す場合の映像再生方法を示す識別子である。再生装置は、BB_during_PopUpの値が「0」の場合は、3D映像再生のままで、「1」の場合には、ベースビューだけを再生して、2D映像として表示するように制御する。これにより、コンテンツの特性に合わせて、コンテンツ制作側が、3D映像視聴中のメニュー選択の表示を適切に制御するよう設定することができる。
(pg_for_3D)
pg_for_3Dは、3D向けのパレンタルロックの最低視聴年齢を示す識別子である。再生装置は、pg_for_3Dに設定された値よりも、再生装置のパレンタルロックのために設定されている値が低ければ、3D映像として再生せずに、2D映像として再生する。従って、再生装置は、目の発達が未熟な成長過程の子供が3D映像を誤って視聴することを防止するよう制御することができる。
(closed_caption_for_3D_flag)
closed_caption_for_3D_flagは、3D向けのClosed Captionが存在するかを示す識別子である。closed_caption_for_3D_flagの値が「0」の場合は3D向けのClosed Captionが存在しないことを意味し、「1」の場合は存在することを意味する。再生装置は、Closed Captionを表示させる場合には、この識別子の値が「0」であれば、3D映像を2D映像に切り替えて表示することで、3D映像に2D向けのClosed Captionを表示することを回避することができる。
(base_2D_preferable_flag)
base_2D_preferable_flagは、2D映像として再生する場合にベースビューを再生すべきかディペンデントビューを再生すべきかを示す識別子である。
base_2D_preferable_flagの値が「0」の場合は、ベースビューを2D映像として表示することが好ましいことを示し、「1」の場合は、ディペンデントビューを2D映像として表示することが好ましいことを示す。映像によっては、ディペンデントビュー方が映像として綺麗なケースもあり、再生装置で、綺麗な方の映像を2D映像として選択できるように、符号化の際にコンテンツ制作者がこの識別子に優先的に2D再生する映像のビューを指定することができる。
(profile、level)
profile及びlevelは、3D映像を再生するために再生装置で必要な性能を示す識別子である。それぞれ、MPEG−4 MVC方式におけるprofile_idc、level_idcに相当する識別子である。
(MVC Stereo 3Dストリームディスクリプタ)
次に、MVC Stereo 3Dストリームディスクリプタについて説明する。
図15に、MVC Stereo 3Dストリームディスクリプタの識別子を示す。MVC Stereo 3Dストリームディスクリプタは、PID毎に定義される。
(num_of_views)
num_of_viewsは、各PIDで示されるビデオストリームに含まれるビューの数を示す識別子である。ビデオストリームに、ベースビューとディペンデントビューとが両方格納されている場合(MVC Stereo 3Dディスクリプタのnum_of_sub_bitstreamsの値が「1」の場合)には、num_of_viewsは「2」となる。
(view_id)
view_idは、ビューを識別するためのIDを示し、MPEG−4 MVCのview_idに相当する識別子である。
(profile、level)
profile及びlevelは、当該ビューを再生するために再生装置で必要な性能を示す識別子であり、それぞれ、MPEG−4 MVC方式のprofile_idc、level_idcに相当する。
(interviewed_flag)
interviewed_flagは当該ビューがビュー間参照されるか否かを示す識別子である。interviewed_flagの値が「1」の場合は、当該ビューが他のビューからビュー間参照されることを示し、「0」の場合はビュー間参照されないことを示す。
(interview_flag)
interview_flagは当該ビューがビュー間参照するか否かを示す識別子である。interview_flagの値が「1」の場合は、当該ビューが他のビューをビュー間参照することを示し、「0」の場合はビュー間参照しないことを示す。
(MVCマルチビューディスクリプタ)
次に、MVCマルチビューディスクリプタについて、説明する。
図16は、MVCマルチビューディスクリプタの識別子を示す図である。なお、MVCマルチビューディスクリプタには、図16に示す識別子以外に、上述のMVC Stereo 3Dディスクリプタと同じフィールド名の識別子も含まれる。
(num_of_sub_bitstreams)
MVC Stereo 3Dディスクリプタのnum_of_sub_bitstreamsと同様に、サブビットストリームの数を示す識別子である。
(sub_bitstreams_order[num_of_subbitstreams])
sub_bitstreams_order[num_of_subbitstreams]はサブビットストリームの多重化順を示す配列の識別子である。サブビットストリームのGOP先頭ピクチャの先頭TSパケットの並び順を示す。sub_bitstream_idに記述されるIDを用いて並び順が格納される。再生装置は、このIDを参照することによって、飛び込み再生などを実現する場合に、どのサブストリームのGOP先頭のTSパケットから読み込んで処理を行えば、全てのサブビットストリームを読み出すことができるかを特定することができる。
(sub_bitstream_id)
sub_bitstream_idは、サブビットストリームに付与されるユニークなIDを格納する識別子である。
(PID)
PIDは、当該サブビットストリームのPIDである。これは多重化されるビデオストリームを区別できる情報であればよい。
(num_of_views)
num_of_viewsは、このマルチビューを構成する合計ビュー数を示す識別子である。例えば図7のように9つの視点映像を符号化してトランスポートストリームとして送信する場合にはnum_of_viewsは「9」である。
view_idは、ビューを識別するためのIDで、MPEG−4 MVC形式の場合のview_idに相当する識別子である。
(view_type)
view_typeは、当該ビューが、SIピクチャビデオ、SPピクチャビデオ、SB(SBrを含む)ピクチャビデオのどれに該当するかを示す識別子である。
(profile、level)
profile及びlevelは、当該ビューを再生するために再生装置で必要な性能を示す識別子であり、それぞれ、MPEG−4 MVC方式のprofile_idc、level_idcに相当する。
(view_ids_refers_to_this_view[])
view_ids_refers_to_this_view[]は、当該ビューのピクチャをビュー間参照に利用しているビューを示すview_idのリストを示す識別子である。
(view_ids_refered_to_by_this_view[])
view_ids_refered_to_by_this_view[]は、当該ビューがビュー間参照するビューを示すview_idのリストを示す識別子である。
全てのビューのview_ids_refers_to_this_view[]とview_ids_refered_to_by_this_view[]とを参照することにより、各ビューの参照関係を知ることができ、図17で示されるような参照関係を示すツリー構造を構築することができる。同図の例では、view_IDが0のビューがベースビューであり、view_IDが1〜7のビューから参照されるSIピクチャビデオである。view_idが1及び2のビューは、SPピクチャビデオであり、view_idが1のビデオは、view_idが3〜5のビューから参照され、view_idが2のビデオはview_idが6及び7のビューから参照されることを示す。view_idが3〜6のビューは、SBピクチャビデオであり、view_idが0のビューと、view_idが1又は2のビューとを参照する関係であることを示す。
(left_posision_view_id、distance_to_left等)
left_posision_view_idは、当該ビューに対応する視点映像の左側で最も近い位置にある視点映像に対応したビューのview_idを示す識別子であり、
distance_to_leftはその視点映像までの物理的な距離を示す識別子である。
同様にright_posision_view_id、up_posision_view_id、douwn_posision_view_idはそれぞれ、当該ビューに対応する視点映像の右側、上側、下側において最も近い位置にある視点映像に対応したビューのview_idを示す識別子であり、distance_to_right、distance_to_up、distance_to_downはそれぞれ、その視点映像までの物理的距離を示す識別子である。再生装置では、これらの識別子を参照することにより、各ビューに対応した視点映像の位置関係を判断する。
(view_id_order[num_of_views])
view_id_order[num_of_views]は、サブビットストリームに複数のビューが格納される場合のマルチビューAU内の各ビューの並び順にview_idを格納した配列の識別子ある。
図18にその格納の一例を示す。図18で示す様に、それぞれのマルチビューAU内には、view_idの値が「0」〜「3」のAUがあり、view_idの値が「0」、「3」、「2」、「1」の順にビューのAUが格納されているとするとview_id_order[num_of_views]には、その値が、「0」、「3」、「2」、「1」の順で格納される。すなわち、再生装置では、view_id_order[num_of_views]の値を参照することにより、マルチビューAUには、図18で示される順にAUが格納されていることを知ることができ、復号したいビューのAUを特定して抽出することができる。
<1−2−4.動作>
次に、符号化装置2600の符号化処理の動作について説明する。
図19は、符号化装置2600における符号化処理の動作を示すフローチャートである。
符号化装置2600には、複数のカメラで撮影された視点映像において、それぞれの視点映像の同時刻のフレーム画像が一定時間毎(例えば、1/30秒毎)に逐次入力される。視点映像がN個ある場合には、1/30秒毎にフレーム画像が入力されるとすると、全ての視点映像における同時刻のフレーム画像の入力にはN/30秒かかる。
入力される各フレーム画像は、SIピクチャ、SPピクチャ、SBピクチャビデオのどのピクチャタイプで符号化されるのかを示す情報が付加されて入力される。なお、説明の便宜上、以下の説明では、「視点映像のフレーム画像の入力」を、単に「視点映像の入力」などと表現する場合がある。また、視点映像のフレーム画像を出力する場合も、「視点映像の出力」という表現を用いる場合がある。
エンコーダセレクタ2604は、入力された視点映像が、基準視点の視点映像か否かをエンコードタイプテーブル100に基づいて判断する(ステップS10)。具体的には、エンコーダセレクタは、エンコードタイプテーブル100の視点映像101に記載された視点映像の識別情報に対応したビデオタイプ102に記載されたSI、SP、SBを識別する情報に基づいて、ビデオタイプを判別する。例えば、入力された視点映像が視点映像eの場合、エンコードタイプテーブル100には、視点映像eのエンコードタイプはSIピクチャビデオと記載されているので、エンコーダセレクタ2604は、入力された視点映像eを基準視点の視点映像と判断し、ベースビュービデオエンコーダ2602に出力する。
エンコーダセレクタ2604がベースビュービデオエンコーダ2602に視点映像を出力した場合(ステップS10:YES)、ベースビュービデオエンコーダ2602は、入力された視点映像を、SIピクチャビデオとして符号化する(ステップS11)。そして、ベースビュービデオエンコーダ2602は、ビュービデオ記憶部2609とピクチャメモリ2606とにSIピクチャビデオを出力し、ビュービデオ記憶部2609は、SIピクチャビデオを記憶する(ステップS20)。
次に、エンコーダセレクタ2604は、視点映像が入力されたか否かを判断し(ステップS21)、入力される視点映像がなければ(ステップS21:NO)ステップS22に進む。一方、入力される視点映像がある場合(ステップS21:YES)、ステップS10からの処理を行う。
一方、ステップS10で、エンコーダセレクタ2604が、基準視点ではない視点の視点映像が入力されたと判定した場合(ステップS10:NO)、入力された視点映像をディペンデントビュービデオエンコーダ2603に出力する。
デコードビデオセレクタ2608は、制御部2601の指示に従ってディペンデントビュービデオエンコーダ2603が符号化の際に参照するSIピクチャを復号するために、
SIピクチャビデオをベースビュービデオエンコーダ2602からビデオデコーダ2605に出力する。ビデオデコーダ2605は、入力されたSIピクチャビデオを復号し、得られたSIピクチャをピクチャメモリ2606に出力し、符号化の際に得られるビュービデオ符号化情報をビュービデオ符号化情報記憶部2607に出力する(ステップS12)。
次に、ディペンデントビュービデオエンコーダ2603は、入力された視点映像が、SPピクチャビデオとして符号化する視点映像か否かを、エンコードタイプテーブル100を参照して判断する(ステップS13)。具体的には、エンコードタイプテーブル100の視点映像101に記載された視点映像に対応したビデオタイプ102に記載されたビデオタイプに基づき判断する。例えば、視点映像aが入力された場合には、視点映像aに対応するビデオタイプ102にはSPが記載されているので、SPピクチャビデオとして符号化すると判断する(ステップS13:YES)。
ステップS13でYESの場合、ディペンデントビュービデオエンコーダ2603は、SPピクチャビデオとして符号化した視点映像の参照先視点映像を示す情報を参照情報200に追加する(ステップS14)。例えば、図7(ii)の視点映像aの場合には、視点映像aを符号化する際に参照する視点映像が視点映像eであることを示す参照情報を参照情報200に追加する。
次に、ディペンデントビュービデオエンコーダ2603は、ビュービデオ符号化情報に基づいて、ピクチャメモリ2606に記憶されている、入力された視点映像のピクチャと同時刻のSIピクチャを参照して、入力された視点映像をSPピクチャビデオとして符号化する(ステップS15)。ディペンデントビュービデオエンコーダ2603は、新たに参照情報を追加した参照情報200を参照情報記憶部2610に出力し、参照情報記憶部2610は、新たな参照情報200を記憶する(ステップS19)。次に、ディペンデントビュービデオエンコーダ2603は、SPピクチャビデオを、ビュービデオ記憶部2609に出力し、ビュービデオ記憶部2609は、SPピクチャビデオを記憶する(ステップS20)。
一方、ディペンデントビュービデオエンコーダ2603が、入力された視点映像をSPピクチャビデオとして符号化しないと判断した場合(ステップS13:NO)、デコードビデオセレクタ2608は、ディペンデントビュービデオエンコーダ2603が符号化の際に参照するSPピクチャを生成するためのSPピクチャビデオをディペンデントビュービデオエンコーダ2603からビデオデコーダ2605に出力するように切り替える。ビデオデコーダ2605は、入力されたSPピクチャビデオを復号し、得られたSPピクチャをピクチャメモリ2606に出力し、符号化の際に得られるビュービデオ符号化情報をビュービデオ符号化情報記憶部2607に出力する(ステップS16)。
次に、ディペンデントビュービデオエンコーダ2603は、SBピクチャビデオとして符号化した視点映像の参照先視点映像を示す情報を参照情報200に追加する(ステップS17)。例えば、図7(ii)の視点映像bの場合には、視点映像bを符号化する際に参照する視点映像が視点映像a、eであることを示す参照情報を参照情報200に追加する。
ディペンデントビュービデオエンコーダ2603は、ビュービデオ符号化情報に記載されているPTSの情報に基づいて、ピクチャメモリ2606に記憶されている、入力された視点映像のピクチャとPTSが同じSIピクチャとSBピクチャとを抽出し、これらピクチャを用いてビュー間参照により、入力された視点映像をSBピクチャビデオとして符号化する(ステップS18)。ディペンデントビュービデオエンコーダ2603は、新たに参照情報を追加した参照情報200を参照情報記憶部2610に出力し、参照情報記憶部2610は、新たな参照情報200を記憶する(ステップS19)。次に、ディペンデントビュービデオエンコーダ2603は、SBピクチャビデオを、ビュービデオ記憶部2609に出力し、ビュービデオ記憶部2609は、SBピクチャビデオを記憶する(ステップS20)。
エンコーダセレクタ2604は、次に、視点映像が入力されたか否かを判断し(ステップS21)、入力される視点映像がある場合(ステップS21:YES)、ステップS10からの処理を行う。
一方、入力される視点映像がなければ(ステップS21:NO)、ベースビュービデオストリーム生成部2611は、ビュービデオ記憶部2609に記憶している基準視点を符号化したベースビューを読出しベースビュービデオストリームを生成する(ステップS22)。次にディペンデントビュービデオストリーム生成部2612は、ビュービデオ記憶部2609に記憶している基準視点以外の視点映像を符号化した全てのディペンデントビューを読出しディペンデントビュービデオストリームを生成する(ステップS23)。
PMT生成部2613は、ベースビュービデオストリーム及びディペンデントビュービデオストリームに関するMVC情報ディスクリプタとMVCストリームディスクリプタを含むストリーム情報並びにトランスポートストリームに関するディスクリプタを含むPMTを生成する(ステップS24)。具体的には、MVC情報ディスクリプタの再生方式を示す識別子にマルチビューのストリームであることを示す値である「4」を記載する。
また、参照情報200に記された参照関係に基づいてMVC マルチビューディスクリプタのview_ids_refers_to_this_view[]及び、view_ids_refered_to_by_this_view[]の値を設定する。具体的には、参照情報200の視点映像201に記載されている視点映像に対応するビューのview_idに関する識別子を記述する箇所のview_ids_refered_to_by_this_view[]に参照先202に記載された視点映像に対応したview_idを記載する。
更に、参照先202に記載された視点映像に対応したview_idに関する識別子を記載する箇所のview_ids_refers_to_this_view[]には、参照先202に対応した視点映像201に記載されている視点映像に対応したview_idを記載する。例えば、参照情報200の視点映像201が「a」に対応する参照先202に記載されているのは「e」である。視点映像aに対応したビューのview_idを「1」、視点映像eに対応したview_idを「2」とすると、view_idが「2」であるビューに関する識別子を記載する箇所のview_ids_refers_to_this_view[]には、view_idが「1」のビューから参照されるので「1」を記載し、自身のビューは、他のビューを参照しないのでview_ids_refered_to_by_this_view[]には値を記載しない。
一方、view_idが「1」であるビューに関する識別子を記載する箇所のview_ids_refered_to_by_this_view[]には、view_idが「2」のビューを参照することを示す「2」を記載する。
また、視点映像201が「b」の場合には、参照先202に参照先として記載されているのは「a、e」である。視点映像bに対応したビューのview_idを「3」とすると、view_idが「3」であるビューに関する識別子を記載する箇所のview_ids_refered_to_by_this_view[]には、view_idが「1」と「2」とのビューを参照することを示す「1、2」を記載する。そして、view_ids_refers_to_this_view[]には、このビューは、他のビューから参照されないので値を記述しない。
更に、この場合、view_idが「2」であるビューに関する識別子を記載する箇所のview_ids_refers_to_this_view[]には、view_idが「3」のビューからも参照されることを示す、「3」が追記され、そして、view_ids_refers_to_this_view[]の値は「1、3」となる。
また、view_idが「1」であるビューに関する識別子を記載する箇所のview_ids_refers_to_this_view[]にも、view_idが「3」のビューからも参照されることを示す、「3」が記述される。このようにして、参照情報200に記載された全ての視点映像に対して視点映像201と参照先202の参照関係に基づいてMVC マルチビューディスクリプタのview_ids_refers_to_this_view[]及び、view_ids_refered_to_by_this_view[]の値を設定する。
その他の識別子は、MVC マルチビューディスクリプタの各識別子の値をビュービデオ符号化情報に基づいて記載する。各識別子の値は、MPEG−4 MVC形式で符号化した際に構築されるsyntax要素に記載された情報に基づいて設定される。syntax要素とは、MPEG−4 MVC形式の圧縮符号化方式における符号化に必要な属性情報を規定した要素である。
次に、マルチプレクサ2614は、PMT、ベースビュービデオストリーム及びディペンデントビュービデオストリームを多重化し、PESパケット化する(ステップS25)。
トランスポートストリーム出力部2615は、マルチプレクサ2614でPESパケット化されたトランスポートストリームをTSパケット単位に分割して出力する(ステップS26)。
以上の処理により、符号化装置2600は、多視点映像を符号化したデータを含むトランスポートストリームを出力する。
<1−3.再生装置>
ここでは、上述の符号化装置2600で符号化されたトランスポートストリームを受信し再生する再生装置2800について説明する。
<1−3−1.構成>
図20は、本実施の形態に係る再生装置2800の構成を示すブロック図である。
再生装置2800は、ユーザ位置取得手段2801、ビュービデオストリーム決定手段2802、PIDフィルタ2803、データセレクタ2804、マルチビュービデオデコーダ2822、プレーンメモリ2820、及びオーディオデコーダ2824から構成される。
再生装置2800は、図示しないプロセッサ及びメモリを含んで構成されており、ユーザ位置取得手段2801、ビュービデオストリーム決定手段の各機能は、このメモリに記憶されているプログラムをこのプロセッサが実行することにより実現される。
(ユーザ位置取得手段2801)
ユーザ位置取得手段2801は、ユーザを撮るためのカメラを備え、カメラ撮影した映像から顔認識技術を用いてユーザの顔の位置を検出し、検出した顔の位置からユーザの視点位置を特定し、視点位置に関する情報(例えば、視点位置の座標値)をビュービデオストリーム決定手段に出力する機能を有する。
(ビュービデオストリーム決定手段2802)
ビュービデオストリーム決定手段2802は、ユーザ位置取得手段2801から得た視点位置に関する情報(例えば、視点位置の座標値)に基づいて、復号すべき視点映像を特定し、特定した視点映像に対応するビデオストリームを選択する機能を備える。具体的には、ビュービデオストリーム決定手段2802は、PIDフィルタ2803でフィルタリングされて出力されたPMTデータを取得し、PMTに含まれるMVC情報ディスクリプタとMVCストリームディスクリプタから得られる各ビューの位置情報に関する識別子(left_posision_view_id、distance_to_leftなど)に基づいて、ユーザ位置取得手段2801から得た視点位置に関する情報と比較し、ユーザの視点位置に最も近いビューを復号対象のビューとして選択する。選択したビューを含むビュービデオストリームデータを、選択したビューのビデオタイプに応じてデータセレクタ2804に対して出力先のTB(Transport Stream Buffer)を切り替えさせる指示を行う。すなわち、入力されたビュービデオストリームデータに含まれるビューのビデオタイプがSIピクチャビデオの場合は、TB(1)に、SPピクチャビデオ及びSBピクチャビデオの場合には、TB(2)又はTB(3)に出力するようにデータセレクタ2804に指示する。同図の構成の場合には、TB(2)、TB(3)にそれぞれ異なったSPピクチャビデオを入力することで並列処理することができる。なお、TBについては後述する。
(PIDフィルタ2803)
PIDフィルタ2803は、ビュービデオストリーム決定手段2802の指示に従い、入力されたトランスポートストリームをフィルタリングする機能を備える。具体的には、PIDフィルタ2803は入力されるTSパケットを、TSパケットのPIDに従って、データセレクタ2804を介して、マルチビュービデオデコーダ2822又はオーディオデコーダ2824に出力する。
PIDフィルタ2803は、PMTパケットを解析することによって、PIDに対応したストリームを識別する。例えば、ベースビュービデオストリームとディペンデントビュービデオストリームが異なるPIDを持つビデオストリームとして生成されており、符号化装置がベースビュービデオストリームのPIDをPMTに0x1012と記述したとすると、入力されたTSパケットのPIDを参照し、PIDの値が0x1012であるTSパケットを、ベースビュービデオストリームのTSパケットであると判断して、データセレクタ2804を介してマルチビュービデオデコーダ2822に出力する。PIDがオーディオデータのストリームであることを示すPIDの場合には、該当するPIDのTSパケットをオーディオデコーダ2824に出力する。
(データセレクタ2804)
データセレクタ2804は、ビュービデオストリーム決定手段2802の指示に従って、PIDフィルタ2803から入力されたTSパケットを指示された出力先のTBに出力する機能を備える。
(マルチビュービデオデコーダ2822)
マルチビュービデオデコーダ2822は、TB(1)2806、MB(Multiplexing Buffer)(1)2807、EB(Elementary Stream Buffer)(1)2808、TB(2)2809、MB(2)2810、EB(2)2811、TB(3)2812、MB(3)2813、EB(3)2814、デコードスイッチ2815、Inter−view buffer2816、D2(2817)、及びDPB(Decoded Picture Buffer)2818から構成される。
(TB、MB、EB)
TB(1)2806は、データセレクタ2804から入力されたベースビデオストリームを含むTSパケットを、TSパケットのまま一旦蓄積されるバッファである。
MB(1)2807は、TB(1)2806からEB(1)2808にビデオストリームを出力するにあたって、一旦PESパケットを蓄積しておくためのバッファである。TB(1)2806からMB(1)2807にデータが転送される際に、TSパケットのTSヘッダ及びアダプテーションフィールドは取り除かれる。
EB(1)2808は、圧縮符号化されているピクチャ(Iピクチャ、Bピクチャ、Pピクチャ)データが格納されるバッファである。MB(1)2806からEB(1)2808にデータが転送される際にPESヘッダが取り除かれる。
TB(2)2809、MB(2)2810、及びEB(2)2811は、それぞれTB(1)2806、MB(1)2807、及びEB(1)2808と同じ機能を持つが、バッファリングするデータがディペンデントベースビュービデオストリームである点が異なる。
TB(3)2812、MB(3)2813、及びEB(3)2814は、それぞれTB(2)2809、MB(2)2810、及びEB(2)2811と同じ機能を備える。
デコードスイッチ2815は、EB(1)2808、EB(2)2811及びEB(3)2814とからDTSの値に従って、そのDTSが付与されているAUのデータを取り出し、マルチビューAUを構成して、D2(2817)に出力する。
(D2(2817)、Inter−view buffer2816)
D2(2817)は、デコードスイッチ2815から出力されるマルチビューAUに対する復号処理を行ってフレーム画像を生成するデコーダである。D2(2817)は、MPEG−4 MVC形式のディペンデントビュービデオストリームを復号する機能を備える。
Inter−view buffer2816は、D2(2817)が復号処理の際に、ビュー間参照するピクチャを格納する読書可能なメモリ(例えば、DRAM)である。
D2(2817)により復号されたピクチャは、Inter−view buffer2816に一旦格納される。D2(2817)は、ディペンデントビューのピクチャを、Inter−view buffer2816に格納されているPTSが同じ値である、ベースビューの復号ピクチャ又は、参照先のとなる視点映像のディペンデントビューの復号ピクチャを参照して、復号処理を行う。
また、D2(2817)は、復号したピクチャを、DPB2818を介してPTSの値に従ってプレーンメモリ2820に出力する機能を備える。
(DPB2818)
DPB2818は、D2(2817)で復号されたピクチャをPTSの値に従って出力するために一時的に保持しておくための読書可能なメモリ(例えば、DRAM)である。DPB2818に保持されたピクチャは、D2(2817)が、時間方向のピクチャ間予測符号化モードを用いてPピクチャやBピクチャなどのAUを復号する際に参照するために利用される。
(プレーンメモリ2820)
プレーンメモリ2820は、PTSの値に従ってDPB2818が出力したピクチャを保持するための読書可能なメモリ(例えば、DRAM)である。復号されたピクチャは、プレーンメモリを介して出力される。出力されたピクチャは、再生装置2800に接続したディスプレイなどの表示装置に表示される。
(オーディオデコーダ2824)
オーディオデコーダ2824は、PIDフィルタ2803から出力されるオーディオのTSパケットを復号し、音声データを出力する機能を備える。出力された音声データは、再生装置2800に接続したスピーカなどで再生される。
<1−3−2.動作>
次に、再生装置2800の復号処理の動作について説明する。
図21は、再生装置2800におけるマルチビュービデオストリームの復号処理の動作を示すフローチャートである。
ビュービデオストリーム決定手段2802は、ユーザ位置取得手段2801から得られたユーザの視点位置の情報に基づいて、復号するビュービデオストリームを選択する(ステップS30)。具体的には、ユーザ位置取得手段2801は、ユーザの視点位置を示す情報として、基準視点の位置を原点とした視点映像を含むxy平面(図28参照)の座標系における座標値を出力し、ビュービデオストリーム決定手段2802は、ユーザの視点位置の座標値と、MVCマルチビューディスクリプタに記述されたビュー毎の視点映像の位置に関する情報(left_posision_view_id、distance_to_leftなど)とから、ユーザの視点位置と各視点映像との距離を計算し、ユーザの視点位置に最も近い視点映像に対応したビューを含むビュービデオストリームを選択する。
次に、ビュービデオストリーム決定手段2802は、選択したビューのビデオタイプが、SIピクチャビデオか否かを判定する(ステップS31)。具体的には、MVCマルチビューディスクリプタにおいて、選択したビューのビューIDに対応するview_typeの値がSIであるか否かで判別する。
選択したビューのビデオタイプがSIである場合(ステップS31:YES)、ビュービデオストリーム決定手段2802は、選択したビューを含むビュービデオストリームをTB(1)2806に出力する指示をデータセレクタ2804に行い、データセレクタ2804は、指示に従い、選択したビュービデオストリームをTB(1)2806に出力する。D2(2817)は、MB(1)2807、EB(1)2808でヘッダ等が取り除かれたビュービデオストリームを復号し、DPB2818に出力する(ステップS39)。
一方、選択したビューのビデオタイプがSIピクチャビデオでない場合(ステップS31:NO)、選択したビューは、単独では復号できないので、参照先のビューを先に復号する必要がある。このため、ビュービデオストリーム決定手段2802は、まず、選択したビューが参照する単独で復号できるビューであるSIピクチャビデオを選択する(ステップS32)。具体的には、ビュービデオストリーム決定手段2802は、MVCマルチビューディスクリプタのview_ids_refers_to_this_view[]を参照し、参照先のビデオストリームのview_idを特定し、この内のview_typeがSIのものを選択する。
次に、ビュービデオストリーム決定手段2802は、選択したSIピクチャビデオをTB(1)2806に出力する指示をデータセレクタ2804に対して行い、データセレクタ2804は、ビュービデオストリーム決定手段2802の指示に従い、SIピクチャビデオのビデオストリームをTB(1)2806に出力する。
そして、D2(2817)は、MB(1)2807、EB(1)2808でヘッダ等が取り除かれたSIピクチャビデオを復号し(ステップS33)、復号したピクチャを、Inter−view buffer2816に格納する(ステップS34)。
次に、ビュービデオストリーム決定手段2802は、選択したビューのビデオタイプがSPピクチャビデオか否かを判定する(ステップS35)。ステップS31での判定と同様に、選択したビューのview_typeの値で判断する。
選択したビューのビデオタイプがSPピクチャビデオである場合(ステップS35:YES)、ビュービデオストリーム決定手段2802は、選択したビューを含むビデオストリームをTB(2)2809に出力する指示をデータセレクタ2804に対して行い、データセレクタ2804は、選択したビュービデオストリームをTB(2)2809に出力する。
そして、D2(2817)は、MB(2)2810、EB(2)2811でヘッダ等が取り除かれたSPピクチャビデオを、先に復号されInter−view buffer2816に格納されているSIピクチャビデオのPTSの値が同じピクチャを参照しながら復号し、DPB2818に出力する(ステップS39)。
一方、選択したビューのビデオタイプがSPピクチャビデオでない場合(ステップS35:NO)、ビュービデオストリーム決定手段2802は、選択したビューが参照するSPピクチャビデオを選択する(ステップS36)。具体的には、ビュービデオストリーム決定手段2802は、MVCマルチビューディスクリプタのview_ids_refers_to_this_view[]を参照し、参照先のビューのview_idを特定し、この内のview_typeがSPのものを選択する。
次に、ビュービデオストリーム決定手段2802は、選択したSPピクチャビデオをTB(2)2809に出力する指示をデータセレクタ2804に行い、データセレクタ2804は、指示に従い、SPピクチャビデオをTB(2)2809に出力する。
そして、D2(2817)は、MB(2)2810、EB(2)2811でヘッダ等が取り除かれたSPピクチャビデオを、Inter−view buffer2816に格納されている先に復号されたSIピクチャビデオのPTSの値が同じピクチャを参照しながら復号し(ステップS37)、復号したSPピクチャをInter−view buffer2816に出力する(ステップS38)。
次に、ビュービデオストリーム決定手段2802は、選択したビューを含むビュービデオストリームをTB(3)2812に出力する指示をデータセレクタ2804に行い、データセレクタ2804は、ビュービデオストリーム決定手段2802の指示に従い、ビュービデオストリームをTB(3)2812に出力する。
そして、D2(2817)は、MB(3)2813、EB(3)2814でヘッダ等が取り除かれたSBピクチャビデオのビュービデオストリームを、Inter−view buffer2816に格納されている先に復号されたSIピクチャビデオのピクチャ及びSPピクチャビデオのPTSの値が同じピクチャを参照しながら復号し、DPB2818に出力する(ステップS39)。
DPB2818は、PTSの値に従って、復号したピクチャをプレーンメモリ2820に出力する(ステップS40)。プレーンメモリ2820に出力されたピクチャは、再生装置に接続したディスプレイに表示される。
<1−4.まとめ>
符号化装置2600は、同時刻に撮影された複数視点の視点映像を符号化する場合、他の2つの視点映像に挟まれる位置関係にある視点映像については、その視点映像を挟む2つの視点映像を参照したビュー間参照を用いて圧縮符号化することにより、データ量を削減したビデオストリームを含む多重化したトランスポートストリームを生成することができる。
また、再生装置2800は、符号化装置2600で生成したトランスポートストリームを用いて、複数の視点位置の視点映像から、ユーザの視点位置に最も近い視点映像を選択して、その視点映像に対応したビデオストリームを復号して再生することができる。
<1−5.補足>
以下、本実施の形態の符号化装置や再生装置で実現する多視点映像の視聴について補足説明する。
既に述べたように、複数視点からの映像の視聴を実現するための技術として、自由視点映像技術がある。
実写の自由視点映像の再生には、複数のカメラによって同時に撮影した多視点映像を用いる。カメラによって撮影されていない視点位置における映像は、カメラで撮影された視点映像を用いて補間した映像を生成する。このため、カメラの間隔を密にするほど、高品質の自由視点映像を生成することができる。
図22は、カメラによる撮影の際の視点位置の一例を示す概念図である。
同図の例では、被写体を9つの視点位置(撮影視点A〜I)から同時に撮影することを示す。なお、撮影視点A〜Iからの視点映像は、図7の視点映像a〜iにそれぞれ対応する。この時、ユーザの視点が、Xの位置(以下、ユーザの視点位置を、「ユーザ視点」と呼び、例えば、Xの位置におけるユーザ視点を「ユーザ視点X」と呼ぶ。)のように、撮影された視点とは異なる位置にある場合には、近傍の撮影視点を用いて合成映像を生成する。同図のユーザ視点Xからの映像を生成する場合には、撮影視点Dで撮影された視点映像dと撮影視点Eで撮影された視点映像eとを用いる。合成映像の生成方法の一例としては、視点映像d及び視点映像eにあるオブジェクトの特徴点の対応関係に基づき、それぞれの視点映像のデプスマップを生成する。更に、このデプスマップに基づき、視点映像d及び視点映像eにおける視点映像中の各オブジェクトを、ユーザ視点から見た映像となるようにシフトさせて、ユーザ視点Xにおける映像を生成する。
図23は、このような多視点映像を受信した場合の利用形態の一例である自由視点テレビの概略図である。
自由視点テレビ10は、ユーザ視点における映像を再生する。自由視点テレビ10は、ディスプレイの上部にカメラを備え、カメラでユーザを撮影し、顔認識技術を用いてユーザの顔を認識することによってユーザの位置を特定する。この自由視点テレビ10は、図24のように、符号化装置から視点映像a〜iの9つの視点映像を受信しており、ユーザの位置に従って、その位置における視点映像を生成して表示する。同図のユーザ視点Xにおける視点映像は、ユーザ視点Xを挟み、それぞれの側で最も近い位置にある視点映像d及び視点映像eを用いて生成する。
このような自由視点テレビを実現するためには、多数の映像を同時に配信する必要があるが、配信するデータ量は小さい方が望ましい。
ところで、同じ対象物に対して同時刻に撮影された複数の視点映像は、互いに相関性が大きい。異なる映像間の相関性を利用してデータ量を削減して圧縮符号化する技術にMPEG−4 MVCがある。MPEG−4 MVCは、BD(Blu-ray Disc(登録商標))の3D映像、すなわち2視点の視点映像の圧縮符号化に用いられている符号化方式である。なお、3D映像の符号化の場合に符号化される映像は左目用と右目用との2つであるが、MPEG−4 MVCは、2つ以上の映像をまとめて圧縮符号化できる仕様である。
図25は、MPEG−4 MVCの符号化におけるビュー間の参照関係を示す概念図である。
MPEG−4 MVCでは、多視点映像を、1つのベースビューと1つ以上のディペンデントビューとして符号化する。なお、同図は、2視点の場合の例を示し、1つのベースビューと1つのディペンデントビューとの参照関係の一例である。
同図の矢印はピクチャ間の参照関係を示しており、矢印の先のピクチャは、矢印の元のピクチャを参照する関係であることを示す。例えば、同図のディペンデントビューの先頭のPピクチャであるピクチャP0は、ベースビューのIピクチャであるピクチャI0を参照する。ディペンデントビューのBピクチャであるピクチャB1は、ベースビューのBrピクチャであるピクチャBr1を参照する。ディペンデントビューの二つ目のPピクチャであるピクチャP3は、ベースビューのPピクチャであるピクチャP3を参照することを示す。
ベースビューは、ディペンデントビューのピクチャを参照していないため、このベースビューだけで復号し再生することができる。
一方、ディペンデントビューは、ベースビューを参照しながら復号するため、ディペンデントビュー単独では復号して再生することはできない。ただし、ディペンデントビューは、同時刻のビューを示す別視点のベースビューのピクチャを用いて、ピクチャ間予測符号化を行う。同時刻の近接する視点でのピクチャ間には、ピクチャに類似性があり(相関性が大きい)、両ピクチャ内の相互に類似するマクロブロックの差分をマクロブロック単位で圧縮符号化することでディペンデントビューはベースビューに比べてデータ量を削減し得る。
<2.変形例>
以上、本発明の実施の形態を説明したが、例示した符号化装置及び再生装置を以下のように変形することも可能であり、本発明が上記の実施の形態で示した通りの符号化装置及び再生装置に限られないことは勿論である。
(1)符号化装置2600は、直線上にある視点映像の中央の視点映像を基準視点としSIピクチャビデオとして符号化し、基準視点から最も遠い両端の視点映像をSPピクチャビデオとして符号化したが、SPビデオとして符号化する視点映像は、両端の視点映像に限らない。基準視点と両端の視点映像の間に視点映像が複数ある場合には、そのうちのいくつかをSPピクチャビデオとして符号化してもよい。例えば、図26(i)のように、左端の視点位置Iに対応する視点映像だけでなく、視点位置Aと視点位置Iの間の視点位置Eに対応する視点映像をSPピクチャビデオとして符号化してもよい。このようにすると参照する視点映像の距離が近くなるので、それぞれの視点におけるピクチャ間の差分が小さくなり、ディペンデントビュービデオのデータ量を更に削減して符号化し得る。
この場合、多視点映像の提供者は、基準視点から所定の視点映像の数離れる毎にSPピクチャを設定したエンコードタイプテーブル100を設定する。例えば、図3の例において、視点映像c、gのビデオタイプをSBではなく、SPと設定してもよい。
また、SIピクチャビデオとSPピクチャビデオとの間のSBピクチャビデオの内の1つを他の視点映像から参照されるSBrピクチャビデオとしてもよい。例えば、図26(ii)では、視点位置Eに対応する視点映像をSBrピクチャビデオとして符号化し、視点位置B、C、Dの視点映像は、このSBrピクチャビデオと、視点位置AのSIピクチャビデオを参照し、視点位置F、G、Hの視点映像は、このSBrピクチャビデオと、視点位置IのSPピクチャビデオとを参照して符号化してもよい。これにより、SPピクチャビデオを参照する場合と比較して参照する視点映像との距離が近くなるのでそれぞれの視点におけるピクチャ間の差分が小さくなり、視点位置B、C、D、F、G、Hの視点映像を更に高い圧縮率で符号化し得る。
なお、図26において、SI、SP、SBの後に添えられている数字は、そのピクチャを得るまでに復号が必要な他の視点映像の数を示す。以下、図27、30、31、32、33、36のSI、SP、SB、SBrの後に添えられた数字も同様である。
例えば、図26において、SI0の「0」は、他の視点映像の復号が必要ないことを示し、SP1の「1」は、1つの視点映像、すなわちSIピクチャビデオの復号が必要なことを意味する。また、SB2の「2」は、2つの視点映像、すなわちSIピクチャビデオとSPピクチャビデオとの復号が必要であることを意味する。また、同図(ii)のように視点映像EをSBr2として符号化した場合には、視点映像B、C、Dに対するピクチャビデオを得るためには、SI、SP1、SBrの3つのピクチャビデオの復号が必要となるため、これらに対応するピクチャビデオはSB3と表される。
(2)実施の形態では、視点映像の視点位置は一直線上にある場合を例に説明したが、視点位置は一直線上にある場合に限られない。それぞれの視点位置は、どのような位置関係にあっても構わない。例えば、図28のようにそれぞれの視点位置は、2次元行列上にあってもよい。図28のxy平面上の白抜きの楕円及び黒抜きの楕円は共に、各視点位置を示す。特に、黒塗りの楕円は、実施の形態で説明した一直線上に配置された視点位置に対応する。なお、図28で示す様に、水平方向をx軸、垂直方向をy軸、中央の視点位置から対象物へ向かう方向をz軸とする。
MVCマルチビューディスクリプタに、このようにxy平面上に広がりを持つ視点位置の位置関係を記述するための識別子を定義する。
図29に、新たに視点位置の位置関係を記述するための識別子を定義したMVCマルチビューディスクリプタの一例を示す。図16のMVCマルチビューディスクリプタに比べて、x_posishion及びy_positionの識別子が追加されている。
x_positionは、基準視点であるSIピクチャビデオに対応する視点位置をxy平面においてその座標値を(x,y)=(0,0)とした場合に、当該ピクチャビデオのx軸方向の座標値を示す識別子である。
y_positionは、同様に当該ピクチャビデオのy軸方向の座標値を示す識別子である。
この2つの識別子を参照することにより、再生装置は、xy平面上にある視点位置を特定し、各視点位置の位置関係を知ることができる。
なお、更にz_positionを追加して、xyz軸の3次元に拡張し、対象物に向かう方向をz軸の正(プラス)方向、基準視点の位置座標を(x,y,z)=(0,0,0)として、x_position、y_positionと同様の記述を行い、3次元行列上に視点位置を配置するようにしてもよい。
図30は、2次元行列上に視点位置が配置されている場合の各視点映像の参照関係を示す図である。図中の矢印は、矢印の先にある視点映像が、矢印の元にある視点映像から参照される関係にあることを示している。なお、図中に全ての参照関係の矢印を図示すると図が煩雑になるので参照関係の矢印は、一部だけを表示している。
同図の例では、中心の視点映像300を基準視点と定め、SIピクチャビデオとして符号化する。中心の視点映像から縦方向、横方向、及び対角線方向それぞれにおいて最も遠い位置にある視点映像を、SPピクチャビデオとして符号化する。そして残りの視点位置の視点映像をSBピクチャビデオとして図の破線の矢印で示す視点映像を参照して符号化する。例えば、図中の視点映像301は、その両隣の視点映像302と視点映像303とのSP1ピクチャビデオを参照してSBピクチャビデオとして符号化されることを示す。
また、図31で示す参照関係を用いて各視点映像を符号化してもよい。
図30では、対角方向の4角の視点位置の視点映像を、SPピクチャビデオとして符号化するが、図31では、SBrピクチャビデオとして符号化する点で異なる。
例えば、視点映像311は、視点映像312と視点映像313とのSPピクチャビデオを参照してSBrピクチャビデオとして符号化される。そして視点映像314は、視点映像311のSBrピクチャビデオと視点映像312のSPピクチャビデオとを参照してSBピクチャビデオとして符号化される。このように、視点映像を、SPピクチャビデオとして符号化する代わりにSBrピクチャビデオとして符号化することによって更にデータ量を削減し得る。
また、図32で示す参照関係を用いて各視点映像を符号化してもよい。
図30では、基準視点の上下左右方向に最も遠い視点位置の視点映像をSPピクチャビデオとして符号化したのに対し、図32では、SBrピクチャビデオとして符号化する点で異なる。
例えば、視点映像321は、視点映像322と視点映像323とのSPピクチャビデオを参照してSBrピクチャビデオとして符号化される。そして視点映像324は、この視点映像321のSBrピクチャビデオと視点映像322のSPピクチャビデオを参照してSBピクチャビデオとして符号化される。
このように、図31の場合と同様に、視点映像を、SPピクチャビデオとして符号化する代わりにSBrピクチャビデオとして符号化することによって更にデータ量を削減し得る。
(3)実施の形態では、基準視点とする視点映像は1つとして説明したが、基準視点は1つに限られない。基準視点は複数定めてもよい。例えば、図33で示すように、視点映像を複数のグループに分割し、それぞれのグループ内で1つの基準視点を定めてもよい。そして、ビュー間参照する視点映像のピクチャは、各グループ内の視点映像のピクチャに限り、異なるグループの視点映像のピクチャは、ビュー間参照しないようにする。このような視点映像のグループをGOV(Group of Views)と定義する。
同図は、対象物に対する正面の位置から−15度〜+15度の角度の範囲に含まれる視点映像のグループをGOV1とし、−15度〜−45度の範囲に含まれる視点映像のグループをGOV2、+15度〜+45度の範囲に含まれる視点映像をGOV3とした例である。
それぞれのGOVの中央の視点映像を基準視点の視点映像として、GOV毎にそのGOVに含まれる各視点映像を符号化する。そしてGOV毎に異なるトランスポートストリームを生成する。このように視点映像のグループを複数のGOVに分割することで1つのトランスポートストリームに含まれる視点映像の数を削減することができる。すなわち、1つのトランスポートストリームに含まれるデータ量を削減することができる。再生装置は、再生しようとする視点位置の視点映像が含まれるGOVに対応したトランスポートストリームだけを復号して再生すればよい。
(4)本実施の形態では、1つの視点映像を基準視点に定めて符号化する例で説明したが、基準視点の視点映像は、1つの視点映像に固定しなくてもよい。基準視点となる視点映像を符号化の途中で変えてもよい。
図34は、符号化の途中で基準視点となる視点映像を変える場合の一例である。
同図は、互いのカメラ位置を一定に保った左(Lカメラ)、中央(Cカメラ)、右(Rカメラ)の3つのカメラで同時に撮影した視点映像L、C、Rがあり、全てのカメラが左側へパンして撮影した映像と右側へパンして撮影した映像が連続している場合を示す。
カメラを左側へパンしながら撮影する場合、CカメラやRカメラは、Lカメラで撮影された映像を時間的に少し遅れて撮影することになるため、視点映像Lを基準視点の視点映像として符号化し、この視点映像を参照して視点映像C、Rを符号化すると、視点映像Cや視点映像Rを基準視点の視点映像として他の視点映像を符号化する場合よりも一般的に全体としての符号化の圧縮効率がよい。カメラが右側へパンしながら撮影する場合には、逆に視点映像Rを基準視点の視点映像として符号化する方がよい。そこで、カメラの動きが切り替わるタイミングで基準視点とする視点映像を視点映像Lから視点映像Rに切り替えて符号化し、ベースビューを生成することで、視点映像全体のデータ量を更に削減し得る。
そして、基準視点が変わらない間は、同じGOPとなるように符号化を行い、基準視点が変わると異なるGOPとなるように符号化を行い、基準視点として符号化して得られるAUの補足データに、基準視点であることを示す情報を記載してもよい。再生装置は、この補足データに記載された情報によって、ベースビューとして符号化された基準視点の視点映像を判断することができる。
(5)本実施の形態の再生装置では、ベースビューとディペンデントビューの参照関係をMVCマルチビューディスクリプタの識別子であるview_ids_refers_to_this_view[]及びview_ids_refered_to_by_this_view[]に記述されたview_idに基づいて判断する例で説明した。この参照関係が誤っているか否かを検証するための情報を更に追加し、再生装置は、MVCマルチビューディスクリプタの識別子に記述された参照関係が正しいかどうかを検証するようにしてもよい。
一連の2視点の視点映像を圧縮符号化したベースビューA1とディペンデントビューA2と、別の一連の2視点の視点映像を、同じ条件で符号化したベースビューB1とディペンデントビューB2とがある場合を例に説明する。このようなストリームを配信する場合、通信状態によっては、通信時にビット化けを起こすおそれがある。このビット化けがディスクリプタにおける参照関係を記述した識別子に対応する部分であれば、ディペンデントビューB2が、ベースビューA1を参照するというように解釈されるおそれがある。この場合、再生装置は参照関係が正しいか否かを判断することができず、記載された参照関係に基づいて復号処理自体は正常に行われる。しかし、間違った参照関係に基づいた復号処理によって得られるピクチャは、元の視点映像のピクチャではないということがあり得る。
そこで、図35のように、ベースビュービデオストリームとディペンデントビュービデオストリームの対応関係を検証するために、各AUの補足データなどに、各AUを特定する情報を格納するようにしてもよい。図35の例では、タイトル名とAU番号(例えば、「#100」は100番目のAUを意味する。)を補足データに格納している。
再生装置は、ディペンデントビュービデオストリームのピクチャを復号する際に、同じAU番号を持つ参照先のベースビュービデオストリームのAUの補足データを参照し、復号対象のディペンデントビュービデオストリームのAUの補足データの記載と比較することで参照関係が正しいか否かを判別する。図30上段では、ディペンデントビュービデオストリームの100番目のAUの補足データに記載されたタイトル名は、「王将戦」であり、ディペンデントビュービデオストリームが参照するベースビュービデオストリームの100番目のAUの補足データに記載されているタイトル名は、「名人戦」であるので、タイトル名が一致せず、参照先のビデオストリームが間違っていると判断することができる。このような場合、再生装置は、ディペンデントビュービデオストリームの復号は行わず、ユーザにその旨のメッセージを提示したり、ベースビュービデオストリームのみの再生を行ったりしてもよい。
(6)実施の形態では、再生装置における再生処理として、ユーザ視点に最も近い視点映像を復号して再生する例で説明したが、再生する映像は、最も近い視点映像に限られない。ユーザ視点に近い視点映像に基づいて視点位置における映像を補間により生成した映像を再生してもよい。
例えば、図7のユーザ視点Xにおける映像は、ユーザ視点Xを挟む視点位置の内、最も距離の近い2つの視点位置の視点映像である視点映像aと視点映像bとから復号したピクチャを用いて生成する。ユーザ視点における映像を補間により生成する方法の一例として、視点映像のデプスマップを用いる方法がある。デプスマップを用いる方法では、まず、この二つの視点映像を使って、それぞれの視点映像上のオブジェクトの特徴点の対応関係を抽出し、視差情報等を用いて、その特徴点の奥行き情報を計算することによって、それぞれの視点映像のデプスマップを作成する。次に、このデプスマップと二つの視点位置の情報に基づき、例えば、それぞれの視点映像との距離の比で内分して、デプスマップを生成した視点映像の各オブジェクトのシフト量を計算する。そして、計算したシフト量に従ってそれぞれのオブジェクトをシフトさせて、ユーザ視点における映像を生成する。
また、ユーザ視点が、基準視点Aの位置から左に移動している最中においては、ユーザ視点を挟む視点位置の内、最も距離の近い2つの視点位置の視点映像ではなく、ユーザ視点を挟むSIピクチャビデオ及びSPピクチャビデオとして符号化された視点映像を用いてユーザ視点の映像を生成してもよい。
図36(i)は、ユーザ視点は、基準視点Aの位置から視点映像Gと視点映像Hの間の視点位置まで左に移動する場合を示す。
ユーザ視点が移動中、視点映像Bと視点映像Cの位置にある間は、本来なら視点映像BのSBピクチャビデオと視点映像CのSBピクチャビデオとを用いてユーザ視点の映像を生成するが、視点映像Bと視点映像CとのSBピクチャビデオを復号するためには、視点映像AのSIピクチャビデオと視点映像EのSPピクチャビデオとを復号したのち、SBピクチャビデオを復号して再生しなければならない。また、ユーザ視点が移動している場合には、視点映像Bと視点映像Cとの間にユーザ視点が位置する時間は短時間であると考えられ、ユーザ視点の映像を生成するために用いる視点映像を短時間の間に切り替えなければならない。このため、再生装置の復号処理の負荷が大きい。
そこで、ユーザ視点が移動している間のユーザ視点の映像の生成処理においては、視点映像Aと視点映像Eの間にユーザ視点が位置する間は、視点映像AのSIピクチャビデオと視点映像EのSPピクチャビデオとを用いてユーザ視点の映像を生成するようにしてもよい。また、更にユーザ視点が移動して視点位置Eと視点位置Iの間にある場合には、視点映像EのSPピクチャビデオと視点映像IのSPピクチャビデオとを用いてユーザ視点の映像を生成するようにしてもよい。このようにすることで、SBピクチャビデオの復号処理を省略することができるので、再生装置の負荷を低減することができる。
そして、ユーザ視点の移動が無くなった時点で、ユーザ視点を挟む視点位置の内、最も距離の近い2つの視点映像のピクチャビデオを用いてユーザ視点の映像を生成すればよい。図36(ii)は、視点映像Gと視点映像Hの間にユーザ視点が止まった場合を示し、この場合に、視点映像GのSBピクチャビデオと視点映像HのSBピクチャビデオとを復号して得られるピクチャを用いてユーザ視点の映像を生成し再生する。
また、補間により生成する視点映像は、2Dの視点映像に限らない。
左目の視点位置と右目の視点位置とで異なる視点映像を生成し3Dの立体視映像として再生してもよい。
図37は、左目用の視点映像と右目用の視点映像とを生成する場合に、符号化する視点映像の視点位置の間隔の一例である。
一般的に人間の左右の目の間隔は6cm(センチメートル)程度である。このことより、各視点映像の視点位置の間隔が6cmより小さい(例えば4cm)の場合には、ユーザの位置によっては、図37(i)のように、左目用の視点映像を生成する場合には視点映像Aと視点映像Bを復号し、右目用の視点映像を生成する場合には視点映像Cと視点映像Dとを復号する必要がある。すなわち、ユーザの視点位置によっては、最大4つの異なる視点映像を復号しなければならない場合がある。一方、各視点映像の視点位置の間隔を6cmより少し広めの間隔(例えば、7cm)とすると、図37(ii)のように、左目用の視点映像は、視点映像Aと視点映像Bとを用い、右目用の視点映像は、視点映像Bと視点映像Cとを用いて生成することができる。つまりユーザの視点位置がどの位置であっても、最大3つの異なる視点位置の視点映像を復号することで左目用と右目用の視点映像を生成することができる。このような間隔で視点映像を符号化することによって、再生装置では、復号する視点映像を少なくすることができ、再生装置の負荷を軽減し得る。
ところで、視点映像の間隔を大きくしすぎると、視点映像間の差が大きくなり、精度よく補間映像を生成するとこが困難になる。このため、符号化する視点映像の視点位置の間隔は、想定される左右の目の間隔(例えば6cm)より大きく、左右の目の間隔の2倍(例えば12cm)より小さい間隔であることが望ましい。
(7)符号化装置2600において、視点映像を符号化する際に、それぞれの視点映像に対応したデプスマップを作成して符号化してもよい。デプスマップを符号化する際にも図27で示すように、視点映像を符号化するときに参照した視点位置のデプスマップを参照して符号化する。そして、生成したデプスマップのストリームデータを含んで多重化したマルチビュービデオストリームを生成してもよい。
上記(6)のようにユーザ視点からの映像を、デプスマップを用いた補間により生成する場合には、符号化装置2600がそれぞれの視点映像に対応したデプスマップを符号化したマルチビュービデオストリームを含んだトランスポートストリームを配信すれば、それを受信した再生装置2800は、デプスマップの生成処理を省略することができるので、再生処理の負荷を軽減することができる。
(8)実施の形態では、再生装置2800は、TB、MB、EBをそれぞれ3つ持つ構成で説明したが、TB、MB、EBは、それぞれ3つに限らない。トランスポートストリームに含まれるビューの数に応じて増減してもよい。例えば、TB、MB、EBの数を増やせば、同時に処理することができるビューの数を増やすことができる。
(9)本実施の形態では、複数の視点映像の視点位置は、一定間隔で配置されていることを前提として説明を行ったが、視点映像の視点位置の間隔は一定間隔に限らない。それぞれの視点位置間の距離は一定でなくてもよい。
例えば、ユーザが主に視聴すると想定される視点位置(例えば、モニタ画面の正面に対応する視点位置)周辺では、各視点映像の視点位置の間隔を小さくし、主に視聴すると想定される視点位置から離れると視点位置の間隔を大きくしてもよい。すなわち、多視点映像の提供者が、ユーザが視聴するであろうと想定した視点位置の範囲内では、符号化する視点位置を多くすることにより、精度よく再生することができる。
(10)本実施の形態では、複数の視点映像それぞれの映像の画質に関する条件(例えば、解像度)などは、同じであることを前提としていたが、画質に関する条件は、それぞれの視点映像で異なっていてもよい。
例えば、ユーザが主に視聴すると想定される視点位置(例えば、モニタ画面の正面に対応する視点位置)の近傍以外の視点位置の視点映像の解像度を低くしてもよい。水平方向に複数の視点映像がある場合において、解像度を低くする場合には、映像の横方向の解像度を低くする方が好ましい。水平方向に視線位置が移動する場合には、各視点映像において同一の対象物における縦方向の映像の変化は少ないが、水平方向には、正面から見た場合に比べて、正面から離れた位置から見た対象物の映像は、横方向に圧縮された映像となるので解像度を低くしても視聴したときの違和感が少ないからである。このように、視点映像の解像度を低くすることで、全体のデータ量を削減することができる。
(11)本実施の形態では、MVC Stereo 3Dディスクリプタ及びMVC Stereo 3Dストリームディスクリプタの情報をPMTに記述するとしたが、これらの情報の記述はPMTに限らない。配信されるストリームに記述されていればよい。例えば、これら情報の全て又は一部は、PMTパケットではなく、他のシステムパケットや各ビデオストリームの補足データ等に格納されてもよい。
(12)実施の形態において、SPピクチャタイプ、SBピクチャタイプの定義を、それぞれ、1つの他視点のピクチャを参照しながら符号化するピクチャ、異なる2つの他視点のピクチャを参照しながら符号化するピクチャと定義したが、ピクチャタイプの定義は、これに限らない。
図52に示すように、SIピクチャ、SPピクチャ、SBピクチャを定義してもよい。図52上段は、各ビュー間の参照関係を示す図であり、各矢印はピクチャの参照関係を示す。例えば、E地点のピクチャは、A地点のピクチャを参照している。C地点のピクチャは、A地点のピクチャと、E地点のピクチャを参照している。ここで、図52中段の矢印は、参照空間ベクトルを示す。参照空間ベクトルは、該当地点から、該当地点のピクチャの符号化に利用する参照ピクチャへの方向ベクトルである。例えば、図52中段の太線矢印は、地点Eのピクチャにおける参照空間ベクトルである。図52中段の点線矢印は、視点Cのピクチャにおける参照空間ベクトルである。このような参照空間ベクトルを用いて、SPピクチャ、SBピクチャを定義してもよい。
すなわち、SPピクチャの定義を「空間上で他のビューを参照するピクチャで、参照空間ベクトルが1方向である」とし、SBピクチャの定義を「空間上で他のビューを参照するピクチャで、参照空間ベクトルが2方向である」とする。これによって、図52中段の太線矢印の参照空間ベクトルは1方向であるため、地点EのピクチャはSPピクチャと定義でき、図52中段の点線矢印の参照空間ベクトルは2方向であるため、地点CのピクチャはSBピクチャと定義できる。
この定義の場合には、SPピクチャは、参照先が1つであるとの制限がなく、例えば、I地点のSPピクチャの場合には、地点EのSPピクチャだけでなく、地点AのSIピクチャを参照する構成にしてもよい。このように構成した場合、SPピクチャにおける参照空間ベクトルは、二つあるが、同一方向の空間ベクトルである。なお、参照空間ベクトルの方向が同じであるかは、ベクトル同士の角度を算出し、その角度が0度であれば、同じであると判断してもよいし、0度でなくとも、例えば、−10度〜10度までは同じ方向であると判断してもよい。
また、SBピクチャビデオは、自身の空間的な位置の直近のSIピクチャビデオやSPピクチャビデオを超えたピクチャビデオを参照しないという制約を課してもよい。例えば、図52上段例の場合には、地点Cの空間的な位置において、右側・左側の位置にある直近のSIピクチャやSPピクチャビデオは、地点AのSIピクチャビデオと地点EのSPピクチャビデオであるため、これを空間的に超えて、例えば、I地点のSPピクチャビデオを参照してはいけない。このように制約することで、位置の大きく離れたピクチャを参照することを防ぎ、再生装置の処理負荷を軽減することができる。
(13)実施の形態において説明した各処理(図19、図21で示す処理)を符号化装置又は再生装置に実行させるための制御プログラムを、記録媒体に記録し又は各種通信路等を介して、流通させ頒布することもできる。このような記録媒体には、ICカード、ハードディスク、光ディスク、フレキシブルディスク、ROM、フラッシュメモリ等がある。流通、頒布された制御プログラムは、それぞれの装置におけるプロセッサで読み取り可能なメモリ等に格納されることにより利用に供され、それぞれのプロセッサがその制御プログラムを実行することにより実施の形態で示した各機能が実現される。
(14)実施の形態において説明した符号化装置の制御部2601、ベースビュービデオエンコーダ2602、ディペンデントビュービデオエンコーダ2603、ビデオデコーダ2605、ベースビュービデオストリーム生成部2611、ディペンデントビュービデオストリーム生成部2612、PMT生成部2613、マルチプレクサ2614、及びトランスポートストリーム出力部の構成要素の内、全部又は一部を1チップ又は複数チップの集積回路で実現してもよいし、コンピュータプログラムで実現してもよいし、その他どのような形態で実現してもよい。
また、再生装置のユーザ位置取得手段2801、ビュービデオストリーム決定手段2802、マルチビュービデオデコーダ2822、及びオーディオデコーダ2824の構成要素の内、全部又は一部を1チップ又は複数チップの集積回路で実現してもよいし、コンピュータプログラムで実現してもよいし、その他どのような形態で実現してもよい。
(15)上記の実施の形態及び上記の変形例を適宜組み合わせてもよい。
<3.補足>
以下、更に本発明の一実施形態としての符号化装置、復号装置、及びその変形例と効果について説明する。
(a)本発明の一態様である符号化装置は、複数の視点それぞれにおける経時的な眺めを示すフレーム画像群を符号化したビデオストリームデータの生成を行う符号化装置であって、前記複数の視点それぞれのフレーム画像群の入力を受け付ける入力手段と、前記複数の視点のフレーム画像群の内の1つを基準視点のフレーム画像群とし、当該フレーム画像群を、他の視点のフレーム画像を参照画像として用いずに符号化したベースビュービデオストリームデータを生成するベースビュー符号化手段と、前記複数の視点の内、前記基準視点との間に少なくとも他の1つの視点を挟む位置関係にある第1種視点におけるフレーム画像群を、ベースビュービデオストリームデータの同一時刻のフレーム画像もしくは他の第1ディペンデントビュービデオストリームデータの同一時刻のフレーム画像を参照画像として用い符号化する第1ディペンデントビュービデオストリームデータを生成する第1ディペンデントビュー符号化手段と、前記基準視点及び第1種視点以外であり、他の視点に挟まれる位置関係にある第2種視点におけるフレーム画像群を、当該視点を挟む2視点の同時刻におけるフレーム画像を参照画像として用い符号化した第2ディペンデントビュービデオストリームデータを生成する第2ディペンデントビュー符号化手段と、前記ベースビュービデオストリームデータと前記第1及び第2ディペンデントビュービデオストリームデータとを出力するビデオストリームデータ出力手段とを備える。
ここでいう「フレーム画像」とは、1フレームを構成する画像だけでなく1フィールドを構成する画像を含む。
この構成の符号化装置は、異なる2つの視点映像に挟まれた視点映像をディペンデントビューとして符号化する際に、当該視点映像を挟む2つの視点映像のフレーム画像を参照して符号化することができる。従って、符号化されたマルチビュービデオストリーム全体でデータ量を削減し得るビデオストリームを生成することができる。
(b)ここで、前記第2ディペンデントビュー符号化手段は、前記第2種視点のフレーム画像群を符号化する際に参照する2視点として、基準視点及び第1種視点、又は、異なる2つの第1種視点を用いる、としてもよい。
この構成によると、第2ディペンデントビュービデオストリームを生成する際に参照する視点映像のフレーム画像は、基準視点及び第1種視点の視点映像のフレーム画像を用いる。従って、他の視点映像を参照する必要なく復号できる視点映像及び、他の1つ視点映像を参照することで復号できる第1種視点の視点映像に基づいて、第2ディペンデントビュービデオストリームを生成することができる。
(c)ここで、前記第2ディペンデントビュー符号化手段は、前記第2種視点のフレーム画像群を符号化する際に参照する2視点として、当該2視点を結ぶ直線上に前記第2種視点があるという条件を満たす位置関係の2視点を用いる、としてもよい。
この構成によると、第2ディペンデントビュービデオストリームとして生成する第2種視点の視点映像の視点位置と、参照先の2視点の視点位置とは、一直線上にあり、参照先の2視点で第2種視点の視点位置を挟む位置関係にある。
従って、第2子視点の視点映像は、直線上においてそれぞれ反対方向に位置する視点映像のフレーム画像を参照して符号化することができるため、高い圧縮効率で符号化し得る。
(d)ここで、前記第2ディペンデントビュー符号化手段は、前記第2種視点からの方向が異なり、それぞれの方向において前記第2種視点からの距離が最も近いという条件を更に満たす2視点を用いる、としてもよい。
この構成の符号化装置は、第2種視点の視点映像の符号化の際に参照する視点映像の視点位置は、当該視点映像からの方向が反対でそれぞれの方向において最も近い視点位置の視点映像のフレーム画像を用いる。従って、複数の視点映像の内、最も相関が大きいと考えられる視点映像のフレーム画像を用いて符号化することができるため、高い圧縮効率で符号化し得る。
(e)ここで、前記入力手段には、1つの直線上に配置された視点位置における複数の視点のフレーム画像群が入力され、前記ベースビュー符号化手段は、前記直線上にある視点の内、最も距離の離れた2視点からの距離の差が最も小さくなる位置にある視点を基準視点と定め、当該基準視点のフレーム画像群を符号化したベースビュービデオストリームデータを生成し、前記第1ディペンデントビュー符号化手段は、前記最も距離の離れた2視点それぞれについて、当該視点のフレーム画像群を前記基準視点のフレーム画像を参照して符号化した第1ディペンデントビュービデオストリームデータを生成する、としてもよい。
この構成の符号化装置は、直線上に配置された視点映像の内、中央付近の視点映像を基準視点として符号化し、基準視点からの方向が反対でそれぞれの方向において最も基準視点から離れた位置の視点映像を第1ディペンデントビューとして符号化する。
従って、マルチビュービデオストリーム全体でデータ量を削減したビデオストリームを生成することができる。
(f)ここで、前記入力手段には、前記基準視点における視線方向のベクトルを法線ベクトルとし、前記基準視点の視点位置を含む平面上において、前記基準視点を中心として、2次元行列上に予め定められた間隔に配置された視点位置における複数の視点のフレーム画像群が入力され、前記第1ディペンデントビュー符号化手段は、前記複数の視点の内、前記基準視点から、上下左右斜め方向それぞれについて最も離れた位置にある視点を第1種視点と定め、当該第1種視点のフレーム画像群を前記基準視点の同時刻におけるフレーム画像を参照して符号化し、前記第2ディペンデントビュー符号化手段は、前記基準視点及び第1種視点以外の全ての視点のフレーム画像群を、当該視点を挟む基準視点及び第1種視点の同時刻におけるフレーム画像を参照して符号化する、としてもよい。
この構成の符号化装置は、視点位置が2次元行列上に配置された視点映像に対応したマルチビュービデオストリームデータを生成する。
従って、ユーザの視点位置が水平方向だけではなく、上下方向に移動した場合に対応したマルチビュービデオストリームを生成することができる。
(g)ここで、更に、前記複数の視点のフレーム画像群それぞれについて、各フレーム画像の画素単位の奥行き情報を示すデプスマップを生成するデプスマップ生成手段を備える、としてもよい。
この構成の符号化装置は、視点映像の符号化の際に、同時にその視点映像のデプスマップを生成する。
従って、再生装置で再生する際に、デプスマップの奥行き情報を用いて、その視点からの3D映像生成における処理負荷を軽減することができる。
(h)ここで、前記ベースビュー符号化手段は、前記基準視点のフレーム画像群をMPEG−4 MVCにおけるベースビューに準拠した形式で符号化し、前記第1ディペンデントビュー符号化手段は、第1種視点のフレーム画像群をMPEG−4 MVCにおけるディペンデントビューに準拠した形式で符号化し、前記第2ディペンデントビュー符号化手段は、第2種視点のフレーム画像群をMPEG−4 MVCにおけるディペンデントビューに準拠した形式で符号化し、第2種視点のフレーム画像群を符号化する際に参照する2視点を示す情報を記載するようにMPEG−4 MVCにおけるシンタックスを拡張したビデオストリームデータを生成する、としてもよい。
この構成の符号化装置は、MPEG−4 MVCに準拠して、複数の視点位置における視点映像を圧縮符号化する。
従って、複数の視点映像から、それぞれ単独で符号化するよりもデータ量を削減したビデオストリームデータを生成することができる。
(i)ここで、更に、各視点のフレーム画像の内容の時間的変化に応じて、予め定められた期間毎に基準視点を変更する基準視点変更手段を備える、としてもよい。
この構成の符号化装置は、基準視点となる視点映像を時間単位で切り替えて符号化を行う。従って、時間毎に、複数の視点映像全体で、データ量をより削減し得る視点映像を基準視点として選択することができる。
(j)ここで、前記ベースビュー符号化手段、前記第1ディペンデントビュー符号化手段、及び前記第2ディペンデントビュー符号化手段は、前記視点毎のフレーム画像群を、基準視点を変更する毎に、異なるGOP(Group of Pictures)のビデオストリームデータとして符号化する、としてもよい。
この構成の符号化装置は、異なる基準視点で符号化したフレーム画像群をそれぞれ異なるGOPのビデオストリームデータとして符号化する。
従って、異なる基準視点で符号化されたビデオストリームをGOP単位で管理することができるので、再生装置での飛び込み再生等の特殊再生時の復号の処理負荷を軽減できるビデオストリームデータを生成することができる。
(k)ここで、更に、前記ベースビュービデオストリームデータ、前記第1ディペンデントビュービデオストリームデータ、及び第2ディペンデントビュービデオストリームデータを用いて、マルチビュービデオストリームを生成するマルチビュービデオストリーム生成手段と、ビデオストリーム毎に、当該ビデオストリームに係る参照関係を示すストリーム参照情報を生成するストリーム参照情報生成手段と、前記マルチビューストリームと前記ストリーム参照情報とを多重化したトランスポートストリームを送出するストリーム送出手段とを備える、としてもよい。
この構成の符号化装置は、複数の視点映像を符号化したビデオストリームデータを多重化したトランスポートストリームを出力する。
従って、複数視点の視点映像を符号化したトランスポートストリームを放送波などで配信することができる。
(l)本発明の一態様である復号装置は、本発明に係る符号化装置で生成されたストリームデータを取得する取得手段と、前記ストリームデータに含まれるベースビュービデオストリームデータを復号し、基準視点のフレーム画像群を得るベースビュー復号手段と、第1ディペンデントビュービデオストリームデータを復号する際の参照先の1視点に対応したビューストリームデータを先に復号し、復号により得た同時刻におけるフレーム画像を参照し、当該第1ディペンデントビュービデオストリームデータを復号したフレーム画像群を得る第1ディペンデントビュー復号手段と、第2ディペンデントビュービデオストリームデータを復号する際の参照先の2視点それぞれに対応したビューストリームデータを先に復号し、復号により得た同時刻におけるフレーム画像を参照し、当該第2ディペンデントビュービデオストリームデータを復号したフレーム画像群を得る第2ディペンデントビュー復号手段と、前記ベースビュー復号手段で得られたフレーム画像群と、前記第1及び第2ディペンデントビュー復号手段で得られたフレーム画像群とを出力する出力手段とを備える。
この構成の復号装置は、複数の視点映像間の参照関係に基づいて、各視点の視点映像に対応したビデオストリームデータを復号し、再生する。
従って、上記(a)で符号化されたマルチビュービデオストリームを復号し、再生することができる。
(m)本発明の一態様である再生装置は、本実施の形態の符号化装置から送信されたトランスポートストリームを受信し再生する再生装置であって、前記トランスポートストリームを受信するストリーム受信手段と、前記トランスポートストリームに含まれるベースビュービデオストリームを復号し、基準視点のフレーム画像群を得るベースビュー復号手段と、前記トランスポートストリームに含まれる属性情報を抽出する属性情報抽出手段と、前記トランスポートストリームに含まれる第1ディペンデントビュービデオストリームを、前記属性情報に基づいて復号したフレーム画像群を得る第1ディペンデントビュー復号手段と、前記トランスポートストリームに含まれる第2ディペンデントビュービデオストリームを、前記属性情報に基づいて復号したフレーム画像群を得る第2ディペンデントビュー復号手段と、前記ベースビュー復号手段で得られたフレーム画像群と、前記第1、第2ディペンデントビュー復号手段で得られたフレーム画像群とを再生する再生手段とを備える。
この再生装置は、複数の視点映像を符号化したビデオストリームデータを含んで多重化して配信されるトランスポートストリームを受信し、このビデオストリームデータを復号し、再生する。従って、上記(k)で出力されたトランスポートストリームを復号し、再生することができる。
(n)ここで、更に、ユーザの視点位置を検知するユーザ視点位置検知手段と、前記ユーザ視点位置検知手段で検知された前記ユーザの視点位置におけるフレーム画像群を生成するユーザ視点フレーム画像群生成手段と、前記ユーザ視点フレーム画像群生成手段で用いるビデオストリームを選択するビデオストリーム選択手段とを備え、前記ユーザ視点フレーム画像群生成手段は、前記ビデオストリーム選択手段で選択されたビデオストリームを復号したフレーム画像群を用いて、前記ユーザの視点位置におけるフレーム画像群を生成し、前記再生手段は、前記ユーザの視点位置におけるフレーム画像群を再生する、としてもよい。
この構成の再生装置は、視聴するユーザの視点位置を検出し、受信した複数視点の視点映像を符号化したビデオストリームを用いて、ユーザの視点位置における映像を生成して、再生する。
従って、ユーザの視点位置が、トランスポートストリームに含まれるビデオストリームデータの視点位置に一致していなくても、ユーザの視点位置からの映像を再生することができる。
(o)ここで、更に、前記ベースビュー復号手段で復号された前記基準視点のフレーム画像群と、前記ディペンデントビュー復号手段で復号された第1種視点のフレーム画像群とを記憶するフレーム画像群記憶手段を備え、前記ビデオストリーム選択手段は、前記ユーザ視点位置検知手段がユーザの視点位置の移動を検知している間は、ユーザの視点位置のフレーム画像群の生成に用いるビデオストリームを、ベースビュービデオストリームと第1ディペンデントビュービデオストリームとから選択し、前記ユーザ視点位置検知手段がユーザの視点位置の移動を検知しなくなった場合には、更に第2ディペンデントビュービデオストリームを含むビデオストリームから選択する、としてもよい。
この構成の再生装置は、ユーザの視点位置が移動している間は、第2ディペンデントビュービデオストリームとして符号化された視点映像のフレーム画像を用いず、ベースビュービデオストリームと第1ディペンデントビュービデオストリームとして符号化された視点映像のフレーム画像を用いて、ユーザの視点位置の映像の生成を行う。
従って、ユーザの視点が移動中の映像の再生の際には、復号処理を簡素化でき、再生装置の負荷を低減することができる。
<4.補足説明>
以下、本実施の形態で利用するストリーム形式や映像圧縮技術について簡単に補足説明する。
<ストリームデータの説明>
デジタルテレビの放送波等での伝送では、MPEG−2トランスポートストリーム形式のデジタルストリームが使われている。
MPEG−2トランスポートストリームとは、ビデオやオーディオなど様々なストリームを多重化して伝送するための規格である。ISO/IEC13818−1及びITU−T勧告H222.0において標準化されている。なお、本実施の形態でも、この形式のトランスポートストリームを生成するものとする。
図38は、MPEG−2トランスポートストリーム形式のデジタルストリームの構成を示す図である。
図38に示すようにトランスポートストリーム513は、ビデオのTS(Taransport Stream)パケット503、オーディオのTSパケット506、字幕ストリームのTSパケット509などを多重化して得られる。ビデオのTSパケット503は番組の主映像を、オーディオのTSパケット506は番組の主音声部分や副音声を、字幕ストリームのTSパケット509は番組の字幕情報を格納している。
ビデオフレーム列501は、MPEG−2、MPEG−4 AVCなどの映像の符号化方式を使って圧縮符号化される。オーディオフレーム列504は、ドルビーAC−3、MPEG−2 AAC、MPEG−4 AAC、HE−AACなどの音声の符号化方式で圧縮符号化される。
トランスポートストリームに含まれる各ストリームはPIDと呼ばれるストリーム識別IDによって識別される。このPIDのパケットを抽出することで再生装置は、処理対象のストリームを抽出することができる。PIDとストリームの対応関係の情報は、以降で説明するPMTパケットのディスクリプタに格納される。
トランスポートストリームを生成するために、まず、複数のビデオフレームからなるビデオフレーム列501、複数のオーディオフレームからなるオーディオフレーム列504を、それぞれPESパケット列502及び505に変換する。次にPESパケット列502及び505を、それぞれTSパケット503及び506に変換する。同様に字幕ストリーム507のデータをそれぞれPESパケット列508に変換し、更にTSパケット509に変換する。トランスポートストリーム513はこれらのTSパケットを1本のストリームに多重化することで構成される。PESパケット、TSパケットについては後述する。
<ビデオストリームのデータ構成>
次に、映像を上述の符号化方式で圧縮符号化して得られるビデオストリームのデータ構成について説明する。
ビデオストリームは、図39に示すような階層構造のデータである。ビデオストリームは、複数のGOPから構成されており、これを圧縮符号化処理の基本単位とすることで動画像の編集やランダムアクセスが可能となる。
GOPは1つ以上のAUにより構成されている。各AUは、AU識別コード、シーケンスヘッダ、ピクチャヘッダ、補足データ、圧縮ピクチャデータ、パディングデータ、シーケンス終端コード、及びストリーム終端コードを含む構成である。AUの各データはMPEG−4 AVCの場合は、NALユニットと呼ばれる単位で格納される。
AU識別コードはアクセスユニットの先頭を示す開始符号である。
シーケンスヘッダは、複数ビデオアクセスユニットから構成される再生シーケンスでの共通の情報を格納したヘッダであり、解像度、フレームレート、アスペクト比、ビットレートなどの情報が格納される。
ピクチャヘッダはピクチャ全体の符号化の方式などの情報を格納したヘッダである。
補足データは圧縮ピクチャデータの復号には必須ではない付加情報であり、例えば、映像と同期してTVに表示するクローズドキャプションの文字情報やGOP構造情報などが格納される。
圧縮ピクチャデータには、圧縮符号化されたピクチャのデータが格納される。
パディングデータは、形式を整えるためのデータが格納される。例えば、決められたビットレートを保つためのスタッフィングデータとして用いる。
シーケンス終端コードは、再生シーケンスの終端を示すデータである。
ストリーム終端コードは、ビットストリームの終端を示すデータである。
AU識別コード、シーケンスヘッダ、ピクチャヘッダ、補足データ、圧縮ピクチャデータ、パディングデータ、シーケンス終端コード、ストリーム終端コードのデータ構成は、ビデオの符号化方式によって異なる。
MPEG−4 AVCの場合、AU識別コードは、AUデリミタ(Access Unit Delimiter)、シーケンスヘッダはSPS(Sequence Parameter Set)に、ピクチャヘッダはPPS(Picture Parameter Set)に、圧縮ピクチャデータは複数個のスライス、補足データはSEI(Supplemental Enhancement Information)、パディングデータはFillerData、シーケンス終端コードはEnd of Sequence、ストリーム終端コードはEnd of Streamに対応する。
そして、MPEG−2形式の場合であれば、シーケンスヘッダはsequence_Header、sequence_extension、group_of_picture_headerに、ピクチャヘッダはpicture_header、picture_coding_extension、圧縮ピクチャデータは複数個のスライス、補足データはuser_data、シーケンス終端コードはsequence_end_codeに対応する。AU識別コードは存在しないが、それぞれのヘッダのスタートコードを使えば、アクセスユニットの切れ目を判断できる。
各属性情報のデータは常に必要ではなく、シーケンスヘッダはGOP先頭のビデオアクセスユニットでのみ必要で、それ以外のビデオアクセスユニットには付加せずに符号化することができる。また、ピクチャヘッダは符号順で前のビデオアクセスユニットのものを参照するようにして、自身のビデオアクセスユニット内にはピクチャヘッダを省略することもできる。
図40は、PESパケット列に、ビデオストリームがどのように格納されるかを示す図である。
図40の第1段目はビデオストリームのビデオフレーム列を示す。第2段目は、PESパケット列を示す。
図40中のyy1,yy2, yy3, yy4に示すように、ビデオストリームにおける複数のVideo Presentation UnitであるIピクチャ、Bピクチャ、Pピクチャは、ピクチャ毎に分割され、PESパケットのペイロードに格納される。
各PESパケットはPESヘッダを持ち、PESヘッダには、ピクチャの表示時刻であるPTSやピクチャのデコード時刻であるDTSが格納される。
図41は、トランスポートストリームを構成するTSパケットのデータ構造を示す図である。
TSパケットは、4ByteのTSヘッダと、アダプテーションフィールドとTSペイロードから構成される188Byte固定長のパケットである。TSヘッダは、transport_priority、PID、adaptaion_field_controlを含む構成である。PIDは前述した通りトランスポートストリームに多重化されているストリームを識別するためのIDである。
transport_priorityは、同一PIDのTSパケットの中のパケットの種別を識別するための情報である。
adaptation_field_controlは、アダプテーションフィールドとTSペイロードの構成を制御するための情報である。アダプテーションフィールドとTSペイロードはどちらかだけが存在する場合と両方が存在する場合があり、adaptation_field_controlはその有無を示す情報である。
adaptation_field_controlの値が「1」の場合は、TSペイロードのみが存在し、adaptation_field_controlの値が「2」の場合は、アダプテーションフィールドのみが存在し、adaptation_field_controlの値が「3」の場合は、TSペイロードとアダプテーションフィールドの両方が存在することを示す。
アダプテーションフィールドは、PCR(Program Clock Reference)などの情報の格納や、TSパケットを188バイト固定長にするためのスタッフィングするデータの格納領域である。TSペイロードにはPESパケットが分割されて格納される。
トランスポートストリームに含まれるTSパケットの種別には、映像・音声・字幕などの各ストリームのパケット以外にもPAT(Program Association Table)、PMT、PCRなどのパケットがある。これらのパケットはPSI(Program Specific Information)と呼ばれる。
PATはトランスポートストリーム中に利用されるPMTのPIDが何であるかを示し、PAT自身のPIDは「0」である。
図42はPMTのデータ構造を示す図である。
PMTは、PMTヘッダ、トランスポートストリームに関する各種ディスクリプタ、及びトランスポートストリーム中に含まれる映像・音声・字幕などの各ストリームに関するストリーム情報とを備える。
PMTヘッダには、PMTに含まれるデータの長さなどの情報が記録される。
トランスポートストリームに関するディスクリプタには、映像・音声などの各ストリームのコピーを許可・不許可を指示するコピーコントロール情報などが記録される。
各ストリームに関するストリーム情報は、ストリームの圧縮符号化方式などを識別するためストリームタイプ、ストリームのPID、ストリームの属性情報(例えば、フレームレート、アスペクト比)が記載されたストリームディスクリプタを含んで構成される。
PCRは、TSパケットのデコーダへの到着時刻とPTS、DTSの時間軸であるSTC(System Time Clock)との同期を取るために、そのPCRパケットがデコーダに転送される時刻に対応するSTC時間の情報を持つ。
<映像圧縮技術の説明>
<視差画像を用いた3D映像>
視差画像を使った立体視の方式では、右目用画像(R画像)と、左目用画像(L画像)とを各々用意し、ユーザに対してそれぞれの目に対応した画像だけが、それぞれの目に映るように制御した表示を行うことで立体視を実現する。
右目用画像で構成される動画像をライトビュービデオといい、左目用画像で構成される動画像をレフトビュービデオという。
図43に、3D映像を再生できる3Dデジタルテレビ20と、3D映像の再生をサポートしない2D映像のみを再生できる2Dデジタルテレビ40を示す。
図43(a)に示すように、ユーザは、3Dデジタルテレビ20と3D眼鏡30を用いて3D映像を視聴する。
3Dデジタルテレビ20は、2D映像及び3D映像を表示することができるものであり、受信した放送波に含まれるストリームを再生することで映像を表示する。具体的には、MPEG−2形式で圧縮符号化された2D用のビデオストリーム、及びMPEG−4 MVC形式で圧縮符号化された3D用のベースビュービデオストリームとディペンデントビュービデオストリームとを再生する。
3Dデジタルテレビ40は、3D映像の再生の際には、ベースビュービデオストリームを復号して得た左目用画像とディペンデントビュービデオストリームを復号して得た右目用画像とを交互に表示する。
ユーザは、このようにして再生された映像を、3D眼鏡30を着用して眺めることで立体映像として視聴することができる。
図43(b)は、3D眼鏡30の左目用画像の表示時を示す。
画面上に左目用の画像が表示されている瞬間において、3D眼鏡30は、左目に対応する液晶シャッターを透光にし、右目に対応する液晶シャッターは遮光する。
同図(c)は、右目用画像の表示時を示す。
画面上に右目用画像が表示されている瞬間において、先ほどと逆に右目に対応する液晶シャッターを透光にし、左目に対応する液晶シャッターを遮光する。
図43(d)の2Dデジタルテレビ40は、2D映像の再生に対応し、トランスポートストリームに含まれるビデオストリームのうち2D用のビデオストリームを復号して得られる2D映像を再生することができる。
図44は、立体視画像の表示の一例を示す図である。対象物である恐竜の骨格の左目用画像と、右目用画像とを表示した例を示している。3D眼鏡を用いて、右目及び左目の透光、遮光から繰り返されれば、ユーザの脳内では、目の残像反応により左右のシーンの重ね合わせがなされ、顔の中央の延長線上に立体映像が存在するように認識することができる。
レフトビュービデオとライトビュービデオを圧縮符号化する3Dの映像方式には、フレーム互換方式とマルチビュー符号化方式がある。
フレーム互換方式は、レフトビュービデオとライトビュービデオの同時刻のビューを示す画像に対応する各ピクチャをそれぞれ間引き又は縮小した上で一つのピクチャに合成して、圧縮符号化を行う方式である。一例として、図45に示すような、Side−by−Side方式がある。Side−by−Side方式では、レフトビュービデオとライトビュービデオの同時刻のビューを示す画像に対応する各ピクチャをそれぞれ水平方向に1/2に圧縮した上で、左右に並べることで一つのピクチャに合成する。合成されたピクチャによる動画像を、2D映像の圧縮符号化方式(例えばMPEG−2)によって圧縮符号化することによってビデオストリームを生成する。一方、再生時は、ビデオストリームを、ビデオストリーム生成と同じ圧縮符号化方式に基づいて復号する。復号された各ピクチャは、左右画像に分割されて、分割した画像それぞれを水平方向に2倍に伸長して、レフトビュービデオとライトビュービデオとのそれぞれ対応するピクチャを得る。得たレフトビュービデオのピクチャ(L画像)とライトビュービデオのピクチャ(R画像)を交互に表示することによって、図44に示すような立体視画像を得ることができる。
これに対してマルチビュー符号化方式は、レフトビュービデオとライトビュービデオのピクチャを1つのピクチャには合成せずに、それぞれ別々のピクチャのまま圧縮符号化する方式である。
これに対してマルチビュー符号化方式は、レフトビュービデオとライトビュービデオのピクチャを1つのピクチャには合成せずに、それぞれ別々のピクチャのまま圧縮符号化する方式である。一例として、MPEG−4 MVCがある。
<マルチビュー映像圧縮技術>
次に、本実施の形態に係る符号化装置及び復号装置で利用するMPEG−4 MVC形式の圧縮符号化方法について簡単に説明する。
この圧縮符号化においては、動画像の空間方向及び時間方向の冗長性を利用してデータ量の圧縮符号化を行う。
冗長性を利用して圧縮符号化する方法として、ピクチャ間予測符号化が用いられる。ピクチャ間予測符号化では、あるピクチャを符号化する際に、表示時間順で前方又は後方にあるピクチャを参照ピクチャとする。そして、その参照ピクチャからの動き量を検出し、動き補償を行ったピクチャと符号化対照のピクチャとの差分を圧縮符号化する。
図46はビデオストリームの時間方向のピクチャ間の参照関係を示している。図46では、ピクチャP3はピクチャI0を参照して圧縮符号化され、ピクチャB1とピクチャB2はそれぞれピクチャI0とピクチャP3を参照して圧縮符号化されている。
また、図6で示したように、MPEG−4 MVCでは、空間的な冗長性も利用する。すなわち、ディペンデントビューは、同時刻のベースビューのピクチャを参照して圧縮符号化を行う。このように時間的な冗長性及び空間的な冗長性を利用することで、圧縮率の高い圧縮符号化を実現できる。
<MPEG−4 MVC形式のビデオストリームのデータ構成>
次に、MPEG−4 MVC形式のビデオストリームについて説明する。
図47は、MPEG−4 MVC形式のビデオストリームの内部構成の一例を示す図である。
同図において、ライトビュービデオストリームのピクチャは、レフトビュービデオストリームの同じ表示時刻のピクチャを参照して圧縮符号化されている。ライトビュービデオストリームのピクチャP1、P2は、それぞれレフトビュービデオストリームのピクチャI1、P2を参照し、ライトビュービデオストリームのピクチャB3、B4、B6、B7はそれぞれ、レフトビュービデオストリームのピクチャBr3、Br4、Br6、Br7を参照しながら圧縮符号化されている。
同図の第2段目は、レフトビュービデオストリームの内部構成を示す。このレフトビュービデオストリームには、ピクチャI1、P2、Br3、Br4、P5、Br6、Br7、P9が含まれている。これらのピクチャは、DTSに設定された時刻順に復号されたピクチャである。
第1段目は、ディスプレイ等に表示される左目用画像を示す。左目用画像は、第2段目の復号されたピクチャI1、P2、Br3、Br4、P5、Br6、Br7、P9をPTSに設定された時刻順、すなわち、I1、Br3、Br4、P2、Br6、Br7、P5の順に表示される。
第4段目は、ライトビュービデオストリームの内部構成を示す。このライトビュービデオストリームには、ピクチャP1、P2、B3、B4、P5、B6、B7、P8が含まれている。これらのピクチャは、DTSに設定された時刻順に復号されたピクチャである。
第3段目は、ディスプレイ等に表示される右目用画像を示す。右目用画像は、第4段目の復号されたピクチャP1、P2、B3、B4、P5、B6、B7、P8をPTSに設定された時刻順、すなわち、P1、B3、B4、P2、B6、B7、P5の順に表示される。ただし、PTSに同じ値が付された左目用画像と右目用画像の内どちらか一方の表示を、次のPTSの時間までの間隔の半分の時間分だけ遅延させて行う。
第5段目は、3D眼鏡30の状態をどのように変化させるかを示す。この第5段目に示すように、左目用画像の視聴時は、右目のシャッターを閉じ、右目用画像の視聴時は、左目のシャッターを閉じる。
図48はビデオストリーム中におけるベースビュービデオストリームとディペンデントビュービデオストリームの各ビデオアクセスユニットに割り当てるPTSとDTSとの関係の例を示している。
同時刻のビューを示す視差画像を格納するベースビュービデオストリームのピクチャとディペンデントビュービデオストリームのピクチャとは、DTS及びPTSが同じ値を持つように設定される。
このように構成することで、ベースビュービデオストリームのピクチャとディペンデントビュービデオストリームのピクチャを復号する再生装置は、3Dビデオアクセスユニット単位で復号して表示を行うことができる。
<デプスマップを用いた3D映像の生成>
図49は2D映像とデプスマップから左目用画像と右目用画像の視差画像を生成する例を模式的に示している。
デプスマップは2D映像内のそれぞれの画素に対応した奥行き値を持っており、同図の例では、2D映像の円形の物体は、デプスマップでは円形の物体が近くにあることを示す情報(奥行き値がHigh)が割り当てられ、それ以外の領域は円形の物体より遠くにある(奥行き値がLow)ことを示す情報が割り当てられている。この情報は、画素毎のビット列で格納してもよいし、画像イメージ(例えば「黒」を奥行きがLowであることを示し、「白」を奥行きがHighであることを示す画像イメージ)として格納してもよい。視差画像は、デプスマップの奥行き値から、2D映像の視差量を調整することによって作成することができる。同図の例では、2D映像内の円形の物体の奥行き値がHighであるため、視差画像を作成するときには、円形の物体の画素の視差量を大きくする。一方、円形物体以外の領域は、奥行き値がLowであるため、円形の物体以外の画素の視差量を小さくして、左目用画像、右目用画像を作成する。この左目用画像と右目用画像を、継時分離方式等を使って表示すれば立体視が可能となる。
<クロッピング及びスケーリングの調整>
MPEG−2形式、MPEG−4 MVC形式の符号化方式では、圧縮符号化されたフレームの領域の内、実際に表示する領域を変更することができる。
このため、他の視点映像のビデオストリームのピクチャをビュー間参照によって参照しながらディペンデントビュービデオストリームのピクチャを復号する際には、同時刻のビューにおいてクロッピング範囲やスケーリングが同じ範囲やスケーリングを示す値になるように、属性情報を調整する必要がある。
クロッピング領域情報とスケーリング情報について図50を参照しながら説明する。
図50のように、圧縮符号化されたフレーム領域の中から実際に表示する領域を、クロッピング領域として指定することができる。MPEG−4 AVCの場合には、SPSに格納されるframe_cropping情報を使って指定する。frame_cropping情報は、図51の左方の図のように、クロッピング領域の上線、下線、左線、右線と、圧縮符号化されたフレーム領域の上線、下線、左線、右線とのそれぞれの差分を、上下左右のクロップ量として指定する。具体的には、クロッピング領域を指定する場合には、frame_cropping_flagに「1」を設定し、frame_crop_top_offset、frame_crop_bottom_offset、frame_crop_left_offset、frame_crop_right_offsetにそれぞれ上、下、左、右のクロップ量を指定する。
MPEG−2形式の場合には、図51の右図のように、クロッピング領域の縦横のサイズ(sequence_display_extensionのdisplay_horizontal_size, display_vertical_size)と、圧縮符号化されたフレーム領域の中心とクロッピング領域の中心との差分情報(picture_display_extensionのframe_centre_horizontal_offset、frame_centre_vertical_offset)を使ってクロッピング領域を指定する。 また、クロッピング領域を実際にテレビなどに表示する際のスケーリング方法を示すスケーリング情報としてアスペクト比が設定される。再生装置は、アスペクト比の情報を使って、クロッピング領域をアップコンバートして表示を行う。MPEG−4 AVCの場合には、このスケーリング情報として、SPSにアスペクト比の情報(aspect_ratio_idc)が格納される。例えば、1440x1080のクロッピング領域を、1920x1080に拡大して表示するためには、アスペクト比を4:3と指定する。この場合水平方向に4/3倍にアップコンバート(1440x4/3=1920)され、1920x1080のサイズに拡大されて表示される。
MPEG−2形式の場合にも同様にsequence_headerというアスペクト比の情報(aspect_ratio_information)を格納する属性情報があり、この属性情報の値を適宜設定することによって上記と同様の処理が実現できる。