[0018]概して、本開示は、マルチビュービデオデータ、たとえば、3次元(3D)効果を生成するために使用されるビデオデータをコーディングし処理するための技法について説明する。特に、本開示は、3Dビデオコーディングプロセスにおけるビュー合成予測サポートシグナリングに関係する。
[0019]ビデオ中で3次元効果を生成するために、シーンの2つのビュー、たとえば、左眼ビューと右眼ビューとが同時にまたはほぼ同時に示され得る。シーンの左眼ビューと右眼ビューとに対応する、同じシーンの2つのピクチャは、閲覧者の左眼と右眼との間の水平視差を表すわずかに異なる水平位置からキャプチャされ得る(または、たとえば、コンピュータ生成グラフィックとして生成され得る)。左眼ビューのピクチャが閲覧者の左眼によって知覚され、右眼ビューのピクチャが閲覧者の右眼によって知覚されるようにこれらの2つのピクチャを同時またはほぼ同時に表示することによって、閲覧者は3次元ビデオ効果を経験し得る。
[0020]本開示は、深度マップをもつピクチャの2つ以上のビューのコーディングを含む高度なコーデックに基づく3Dビデオコーディングに関係する。概して、本開示の技法は、多種多様なビデオコーディング規格のいずれかに適用され得る。たとえば、これらの技法は、ITU−T H.264/AVC(アドバンストビデオコーディング:advanced video coding)のマルチビュービデオコーディング(MVC:multi-view video coding)拡張、次回の高効率ビデオコーディング(HEVC:High Efficiency Video Coding)規格の3Dビデオ(3DV:3D video)拡張、または他のコーディング規格に適用され得る。次回のHEVC規格の最近のドラフトは、文書HCTVC−I1003、Brossら、「高効率ビデオコーディング(HEVC)テキスト仕様ドラフト7」、ITU−T SG16WP3とISO/IEC JTC1/SC29/WG11のビデオコーディング共同研究部会(JCT−VC)、第9回会合:ジュネーブ、スイス、2012年4月27日〜2012年5月7日に記載されており、2012年8月2日の時点で、http://phenix.it−sudparis.eu/jct/doc_end_user/documents/9_Geneva/wg11/JCTVC−I1003−v10.zipからダウンロード可能である。説明のために、本開示の技法について、主に、ITU−T H.264/AVCのMVC拡張またはHEVCの3DV拡張のいずれかに関して説明する。ただし、これらの技法が、3次元効果を生成するために使用されるビデオデータをコーディングするための他の規格にも適用され得ることを理解されたい。
[0021]マルチビューコーディング(またはステレオビューコーディング)に関係するビデオコーディング技法は、概して、ビュー間予測および/またはコーディング深度情報を含み得る。ビュー間予測は、概して、標準のイントラ予測またはインター予測を使用してベースビューのピクチャをコーディングし、次いで、ベースビューまたは他のビューに対して他のビューのピクチャを予測することを含む。このようにして、非ベースビューのいくつかのピクチャは、ベースビューまたは別の非ベースビューのピクチャに対して予測され得る。
[0022]一般に、ピクチャが参照ピクチャに対してコーディングされるとき、ビデオコーディングデバイスは、参照ピクチャリストのメンバーとして参照ピクチャをシグナリングする。したがって、ビュー間コーディングでは、参照ピクチャリストに追加される参照ピクチャは、たとえば、時間的予測のための現在のビューの他のピクチャに加えて、他のビューのピクチャを含み得る。参照ピクチャリスト構成プロセスは、時間的およびビュー予測参照をフレキシブルに構成することができる。参照ピクチャ選択および冗長ピクチャ機構がビュー次元に拡張され得るので、これは、潜在的なコーディング効率向上だけでなく誤り耐性も与え得る。参照ピクチャリスト構成は、次のステップを含み得る:1)(たとえば、ITU−T H.264/AVCにおいて指定されている)時間的(ビュー内(intra-view))参照ピクチャのための参照ピクチャリスト初期化プロセス、ここでは、他のビューからの参照ピクチャは考慮されない、2)たとえば、ビュー間(inter-view)参照ピクチャがMVC SPS拡張で生じる順序で、ビュー間参照ピクチャをリストの最後に付加する、および3)ビュー内参照ピクチャとビュー間参照ピクチャの両方のための参照ピクチャリスト並替え(RPLR)プロセスを適用し、そこで、ビュー間参照ピクチャは、たとえばMVC SPS拡張で指定されたそれらのインデックス値によってRPLRコマンド中で識別され得る。
[0023]上記のように、本開示の技法は、HEVCの3DV拡張に適用され得る。Moving Picture Experts Group(MPEG)は、最近、HEVCに基づく3Dビデオ規格化アクティビティを開始した。3Dビデオ(3DV)の現在のコンテキストでは、ビデオコーダは、マルチビュービットストリームの各ビューについてのテクスチャ情報(たとえば、ルミナンス/輝度およびクロミナンス/色)と深度情報との両方をコーディングし得る。これは、マルチビュービットストリームが単にテクスチャ情報のみをもつ複数のビューを含んでいるビットストリームである、ITU−T H.264/AVCのMVCビットストリームとは対照的である。3DVビットストリームは、HEVCに基づく3Dビデオ規格化コンテキストでは、複数のビューのコード化表現を含み得、複数のビューの各々が、テクスチャ情報(テクスチャビューコンポーネント)と深度情報(深度ビューコンポーネント)との両方を含み得る。3DVはまた複数のビューのテクスチャを含んでいるが、場合によっては、3DVビットストリームはマルチビュービットストリームに適合し得る。したがって、HEVCのマルチビュー拡張において使用されるコーディングツールおよび高レベル機構がHEVCの3DV拡張または他のコーディング規格において再使用されるか、または後方互換性の形で拡張され得ることは簡単である。
[0024]深度情報を与えることによって、デバイスは、ビットストリーム中に与えられるビュー以外の様々なビューのためのピクチャをレンダリングし得る。たとえば、深度情報をもつ2つのビューがビットストリーム中に与えられている場合、クライアントデバイスは、たとえば、ビットストリームの2つのコード化ビューとの間に第3のビューのためのピクチャを生成するために深度情報を使用し得る。そのようなピクチャの生成は、深度画像ベースレンダリング(DIBR:depth image based rendering)と呼ばれる。DIBRは、利用可能なテクスチャおよび深度画像に基づいてビューを生成するために使用され得る。そのような生成プロセスはビュー合成と呼ばれる。ビュー合成は、ビューの復号に続く後処理のために使用され得る(「ループ後(post-loop)」ビュー合成とも呼ばれる)。追加または代替として、ビュー合成は、ビュー間予測のために使用される参照ピクチャを生成するために使用され得る(「ループ内(in-loop)」ビュー合成とも呼ばれる)。DIBRがテクスチャピクチャ、(一般に深度マップと呼ばれる)深度ピクチャ、またはその両方をレンダリングするために使用され得ることを理解されたい。概して、深度マップは、クロミナンス情報を含むことなしに、深度マップのピクセル値が輝度情報ではなく、対応するテクスチャ情報のための深度を表すことを除いて、テクスチャピクチャのルミナンス(ルーマ)データと同様に表される。
[0025]ビュー合成参照ピクチャ(VSRP:view synthesis reference picture)と呼ばれることがある、ビュー合成を使用して生成される参照ピクチャは、時間的インター予測参照ピクチャまたはビュー間参照ピクチャと同様の参照ピクチャとして使用され得る。VSRPは参照ピクチャリスト中に含まれ得る。従来のコーディング技法のいくつかの特定の設計では、DIBRを介してただ1つのVSRPを生成するために(深度をもつ)複数のビューが使用され得る。したがって、現在コーディングされているピクチャについて、ただ1つのVSRPがこれらの従来のコーディング技法において利用可能であり得る。
[0026]ビデオコーディング規格のコンテキストでは、「プロファイル」は、アルゴリズム、機能、またはツール、およびそのアルゴリズム、機能、およびツールに適用される制約のサブセットに対応する。たとえば、HEVC WD7によって定義される「プロファイル」は、HEVC WD7によって指定されたビットストリームシンタックス全体のサブセットである。HEVC WD7によって定義される「レベル」は、ビットストリーム中のシンタックス要素の値に課された制約の指定されたセットである。これらの制約は、値に関する単純な制限であり得る。代替的に、それらは、値の演算の組合せ(たとえば、ピクチャの幅×ピクチャの高さ×毎秒復号されるピクチャの数)に関する制約の形態をとり得る。このようにして、レベル値は、たとえば、ピクチャの解像度、ビットレート、およびマクロブロック(MB:macroblock)または最大コーディングユニット(LCU:largest coding unit)処理レートに関係し得るデコーダメモリおよび計算など、デコーダリソース消費の制限に対応し得る。プロファイルはprofile_idc(プロファイルインジケータ)値でシグナリングされ得、レベルはlevel_idc(レベルインジケータ)値でシグナリングされ得る。
[0027]動作点(operation point)は、概して、複数のビューを含むビットストリームのビューのフルセットの復号可能/表示可能ビューのサブセットに対応する。たとえば、ビットストリームが8つのビューを含む場合、動作点は、他の5つのビューなしに適切に復号または表示され得る、8つのビューのうちの3つに対応し得る。ITU−T H.264/AVCのMVC拡張において定義されているように:
動作点は、ターゲット時間レベルを表すtemporal_id値と、ターゲット出力ビューを表すview_id値のセットとによって識別される。1つの動作点がビットストリームサブセットに関連付けられ、これは、ターゲット出力ビューと、ターゲット出力ビューが依存するすべての他のビューとからなり、入力としてtemporal_id値に等しいtIdTargetと、view_id値のセットからなるviewIdTargetListとを用いて、[ITU−T H.264/AVCの]H.8.5.3項において規定されているサブビットストリーム抽出プロセスを使用して導出される。同じビットストリームサブセットに2つ以上の動作点が関連付けられ得る。本仕様書で「動作点が復号される」と述べられているとき、それは、動作点に対応するビットストリームサブセットの復号と、ターゲット出力ビューの後続の出力とを指す。
[0028]本開示は、たとえば、HEVCの3DV拡張およびITU−T H.264/AVCのMVC拡張の従来のコーディング技法に関して生じ得るいくつかの問題を認識する。たとえば、VSRPをサポートしない3Dビデオコーディングビットストリームのいくつかのプロファイル、レベル、または動作点があり得る。現在、ビットストリームをコーディングするビデオコーダがビュー合成予測をまったく行う必要がないかどうかの指示がない。したがって、本開示の技法がなければ、ビデオコーディングデバイスは、VSRPを不必要に生成し得、それにより、処理効率が低下し、処理サイクルの浪費につながり得、それにより、不要なバッテリー消費を生じ得る。さらに、ビュー合成予測が使用可能であるときでも、1つのビューコンポーネントまたはビューコンポーネントの1つのスライスがビュー合成を使用しない可能性がある。これによっても、処理サイクルの浪費および/または不要なバッテリー消費につながり得る。概して、ビュー合成ピクチャを常に作成することは、不要な、無駄な計算につながり得る。
[0029]本開示では、ビュー合成予測に関して不要な計算を低減させるかまたはなくすための様々な技法について説明する。たとえば、ビデオコーディングデバイス、たとえばビデオエンコーダおよびビデオデコーダは、パラメータセット(たとえば、シーケンスパラメータセット(SPS:sequence parameter set))に対応するピクチャがビュー合成を使用可能にされているかどうかを示す、SPSなどのパラメータセット中のフラグをコーディングし得る。いくつかのビデオコーディングプロファイル、たとえば、いくつかの3DVプロファイルでは、このフラグは、ビュー合成予測がそのプロファイルに対応するビデオデータのために使用不能であることを示すために常に0に設定され得る。追加または代替として、ビデオコーディングデバイスは、対応するスライスがビュー合成予測を使用してコーディングされるかどうかを示すためにスライスヘッダ中のフラグをコーディングし得る。代替的に、このフラグは、スライスのためのピクチャパラメータセット(PPS:picture parameter set)または適応パラメータセット(APS:adaptation parameter set)中でコーディングされ得る。このようにして、ビデオコーディングデバイスは、ビュー合成予測が使用可能であるかどうかを示す情報をコーディングし、ビュー合成予測が使用可能であるときのみ、ビュー合成ピクチャを生成し、生成されたビュー合成ピクチャに対して現在のピクチャをコーディングし得る。
[0030]同様に、AVCベースの3DVでは、パラメータセット、すなわち、深度パラメータセット(深度距離パラメータセットとも呼ばれる)があり、それは、アクセスユニットごとに変更され、深度距離に関係する情報と潜在的にカメラパラメータとを含み得る。フラグは、深度パラメータセット中に存在し、ビュー合成予測が、深度パラメータセットを参照するスライスのために使用可能であるかどうかを示し得る。このようにして、適応パラメータセットと深度パラメータセットとは、アクセスユニットレベルパラメータセットの例を表す。
[0031]図1は、ビュー合成予測に関係する情報をコーディングするための技法を利用し得る例示的なビデオ符号化および復号システム10を示すブロック図である。図1に示すように、システム10は、宛先デバイス14によって後で復号されるべき符号化ビデオデータを与えるソースデバイス12を含む。特に、ソースデバイス12は、コンピュータ可読媒体16を介してビデオデータを宛先デバイス14に与える。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスのいずれかを備え得る。場合によっては、ソースデバイス12および宛先デバイス14は、ワイヤレス通信のために装備され得る。
[0032]宛先デバイス14は、コンピュータ可読媒体16を介して復号されるべき符号化ビデオデータを受信し得る。コンピュータ可読媒体16は、符号化ビデオデータをソースデバイス12から宛先デバイス14に移動することが可能な任意のタイプの媒体またはデバイスを備え得る。一例では、コンピュータ可読媒体16は、ソースデバイス12が、符号化ビデオデータを宛先デバイス14にリアルタイムで直接送信することを可能にするための通信媒体を備え得る。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス14に送信され得る。通信媒体は、無線周波数(RF)スペクトルあるいは1つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信媒体は、ソースデバイス12から宛先デバイス14への通信を可能にするために有用であり得るルータ、スイッチ、基地局、または任意の他の機器を含み得る。
[0033]いくつかの例では、符号化データは、出力インターフェース22からストレージデバイスに出力され得る。同様に、符号化データは、入力インターフェースによってストレージデバイスからアクセスされ得る。ストレージデバイスは、ハードドライブ、ブルーレイ(登録商標)ディスク、DVD、CD−ROM、フラッシュメモリ、揮発性または不揮発性メモリ、あるいは符号化ビデオデータを記憶するための任意の他の好適なデジタル記憶媒体など、様々な分散されたまたはローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる一例では、ストレージデバイスは、ソースデバイス12によって生成された符号化ビデオを記憶し得るファイルサーバまたは別の中間ストレージデバイスに対応し得る。宛先デバイス14は、ストリーミングまたはダウンロードを介してストレージデバイスから、記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶し、その符号化ビデオデータを宛先デバイス14に送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバは、(たとえば、ウェブサイトのための)ウェブサーバ、FTPサーバ、ネットワーク接続ストレージ(NAS)デバイス、またはローカルディスクドライブを含む。宛先デバイス14は、インターネット接続を含む、任意の標準のデータ接続を介して符号化ビデオデータにアクセスし得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適であるワイヤレスチャネル(たとえば、Wi−Fi(登録商標)接続)、ワイヤード接続(たとえば、DSL、ケーブルモデムなど)、または両方の組合せを含み得る。ストレージデバイスからの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはそれらの組合せであり得る。
[0034]本開示の技法は、必ずしもワイヤレス適用例または設定に限定されるとは限らない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、動的適応ストリーミングオーバーHTTP(DASH:dynamic adaptive streaming over HTTP)などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されたデジタルビデオ、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および/またはビデオテレフォニーなどの適用例をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
[0035]図1の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、出力インターフェース22とを含む。宛先デバイス14は、入力インターフェース28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。本開示によれば、ソースデバイス12のビデオエンコーダ20は、ビュー合成予測に関係する情報をコーディングするための技法を適用するように構成され得る。他の例では、ソースデバイスおよび宛先デバイスは他の構成要素または構成を含み得る。たとえば、ソースデバイス12は、外部カメラなどの外部ビデオソース18からビデオデータを受信し得る。同様に、宛先デバイス14は、内蔵ディスプレイデバイスを含むのではなく、外部ディスプレイデバイスとインターフェースし得る。
[0036]ビデオソース18は、ビデオエンコーダ20にビデオデータの複数のビューを与え得る。たとえば、ビデオソース18は、各々が、撮影されている特定のシーンに対して一意の水平位置を有するカメラのアレイに対応し得る。代替的に、ビデオソース18は、たとえば、コンピュータグラフィックスを使用して異種水平カメラの観点からビデオデータを生成し得る。場合によっては、ビデオソース18はまた、深度データをキャプチャするかまたは生成するか、あるいはビデオエンコーダ20に深度データを与えるように構成され得、一方、他の場合には、ビデオエンコーダ20、またはソースデバイス12の別のユニットは、たとえば、異なるビューのピクチャ間の水平視差に基づいて深度データを計算することができる。
[0037]図1の図示のシステム10は一例にすぎない。ビュー合成予測に関係する情報をコーディングするための技法は、任意のデジタルビデオ符号化および/または復号デバイスによって実行され得る。概して、本開示の技法はビデオ符号化デバイスによって実行されるが、本技法は、一般に「コーデック」と呼ばれるビデオエンコーダ/デコーダによっても実行され得る。さらに、本開示の技法は、ビデオプリプロセッサによっても実行され得る。ソースデバイス12および宛先デバイス14は、ソースデバイス12が宛先デバイス14に送信するためのコード化ビデオデータを生成するような、コーディングデバイスの例にすぎない。いくつかの例では、デバイス12、14は、デバイス12、14の各々がビデオ符号化構成要素とビデオ復号構成要素とを含むように、実質的に対称的に動作し得る。したがって、システム10は、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、またはビデオテレフォニーのための、ビデオデバイス12とビデオデバイス14との間の一方向または双方向のビデオ送信をサポートし得る。
[0038]ソースデバイス12のビデオソース18は、ビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、および/またはビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースを含み得る。さらなる代替として、ビデオソース18は、ソースビデオとしてのコンピュータグラフィックスベースのデータ、またはライブビデオとアーカイブビデオとコンピュータ生成ビデオとの組合せを生成し得る。場合によっては、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるカメラフォンまたはビデオフォンを形成し得る。ただし、上述のように、本開示で説明する技法は、概してビデオコーディングに適用可能であり得、ワイヤレスおよび/またはワイヤード適用例に適用され得る。各場合において、キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成ビデオは、ビデオエンコーダ20によって符号化され得る。符号化されたビデオ情報は、次いで、出力インターフェース22によってコンピュータ可読媒体16上に出力され得る。
[0039]コンピュータ可読媒体16は、ワイヤレスブロードキャストまたはワイヤードネットワーク送信などの一時媒体、あるいはハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、ブルーレイディスク、または他のコンピュータ可読媒体などの記憶媒体(すなわち、非一時的記憶媒体)を含み得る。いくつかの例では、ネットワークサーバ(図示せず)は、たとえば、ネットワーク送信を介して、ソースデバイス12から符号化されたビデオデータを受信し、宛先デバイス14に符号化されたビデオデータを与え得る。同様に、ディスクスタンピング設備など、媒体製造設備のコンピューティングデバイスは、ソースデバイス12から符号化されたビデオデータを受信し、その符号化されたビデオデータを含んでいるディスクを生成し得る。したがって、コンピュータ可読媒体16は、様々な例において、様々な形態の1つまたは複数のコンピュータ可読媒体を含むことが理解されよう。
[0040]宛先デバイス14の入力インターフェース28は、コンピュータ可読媒体16から情報を受信する。コンピュータ可読媒体16の情報は、ビデオエンコーダ20によって定義され、またビデオデコーダ30によって使用される、ブロックおよび他のコード化ユニット、たとえば、GOPの特性および/または処理を記述するシンタックス要素を含む、シンタックス情報を含み得る。ディスプレイデバイス32は、復号されたビデオデータをユーザに対して表示し、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。いくつかの例では、ディスプレイデバイス32は、たとえば、閲覧者のための3D視覚影響を生成するために、同時にまたは実質的に同時に2つ以上のビューを表示することが可能なデバイスを備え得る。ディスプレイデバイス32は、仮想ビューのピクチャをレンダリングするために深度情報を使用するように構成され得る。代替的に、宛先デバイス14の別個のユニットは、深度情報を使用して仮想ビューのピクチャをレンダリングし得る。
[0041]ビデオエンコーダ20およびビデオデコーダ30は、現在開発中のHigh Efficiency Video Coding(HEVC)規格またはそれの3DV拡張など、ビデオコーディング規格に従って動作し得る。代替的に、ビデオエンコーダ20およびビデオデコーダ30は、代替的にMPEG−4、Part 10、アドバンストビデオコーディング(AVC:Advanced Video Coding)と呼ばれるITU−T H.264規格など、他のプロプライエタリ規格または業界規格、あるいはITU−T H.264/AVCのMVC拡張など、そのような規格の拡張に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオコーディング規格の他の例としては、MPEG−2およびITU−T H.263がある。図1には示されていないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30は、それぞれオーディオエンコーダおよびオーディオデコーダと統合され得、適切なMUX−DEMUXユニット、または他のハードウェアおよびソフトウェアを含んで、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理し得る。適用可能な場合、MUX−DEMUXユニットは、ITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
[0042]ITU−T H.264/MPEG−4(AVC)規格は、Joint Video Team(JVT)として知られる共同パートナーシップの成果として、ISO/IEC Moving Picture Experts Group(MPEG)とともにITU−T Video Coding Experts Group(VCEG)によって策定された。いくつかの態様では、本開示で説明する技法は、H.264規格に概して準拠するデバイスに適用され得る。H.264規格は、ITU−T Study Groupによる2005年3月付けのITU−T勧告H.264「Advanced Video Coding for generic audiovisual services」に記載されており、本明細書ではH.264規格またはH.264仕様、あるいはH.264/AVC規格または仕様と呼ぶことがある。Joint Video Team(JVT)はH.264/MPEG−4 AVCへの拡張に取り組み続けている。
[0043]ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し、1つまたは複数のプロセッサを使用してその命令をハードウェアで実行して、本開示の技法を実行し得る。ビデオエンコーダ20およびビデオデコーダ30の各々は1つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ/デコーダ(コーデック)の一部として統合され得る。
[0044]JCT−VCは、HEVC規格の開発に取り組んでいる。HEVC規格化の取り組みは、HEVCテストモデル(HM)と呼ばれるビデオコーディングデバイスの発展的モデルに基づく。HMは、たとえば、ITU−T H.264/AVCに従う既存のデバイスに対してビデオコーディングデバイスのいくつかの追加の能力を仮定する。たとえば、H.264は9つのイントラ予測符号化モードを提供するが、HMは33個ものイントラ予測符号化モードを提供し得る。
[0045]概して、HMの作業モデルは、ビデオフレームまたはピクチャが、ルーマサンプルとクロマサンプルの両方を含む一連のツリーブロックまたは最大コーディングユニット(LCU:largest coding unit)に分割され得ることを記載している。ビットストリーム内のシンタックスデータが、ピクセルの数に関して最大コーディングユニットであるLCUのサイズを定義し得る。スライスは、コーディング順序でいくつかの連続するツリーブロックを含む。ビデオフレームまたはピクチャは、1つまたは複数のスライスに区分され得る。各ツリーブロックは、4分木に従ってコーディングユニット(CU)に分割され得る。概して、4分木データ構造はCUごとに1つのノードを含み、ルートノードはツリーブロックに対応する。CUが4つのサブCUに分割された場合、CUに対応するノードは4つのリーフノードを含み、リーフノードの各々はサブCUのうちの1つに対応する。
[0046]4分木データ構造の各ノードは、対応するCUのシンタックスデータを与え得る。たとえば、4分木のノードは、そのノードに対応するCUがサブCUに分割されるかどうかを示す分割フラグを含み得る。CUのシンタックス要素は、再帰的に定義され得、CUがサブCUに分割されるかどうかに依存し得る。CUがさらに分割されない場合、そのCUはリーフCUと呼ばれる。本開示では、元のリーフCUの明示的分割が存在しない場合でも、リーフCUの4つのサブCUをリーフCUとも呼ぶ。たとえば、16×16サイズのCUがさらに分割されない場合、この16×16CUが決して分割されなくても、4つの8×8サブCUをリーフCUとも呼ぶ。
[0047]CUは、CUがサイズ差異を有しないことを除いて、H.264規格のマクロブロックと同様の目的を有する。たとえば、ツリーブロックは、4つの子ノード(サブCUとも呼ばれる)に分割され得、各子ノードは、今度は親ノードとなり、別の4つの子ノードに分割され得る。4分木のリーフノードと呼ばれる、最終的な分割されていない子ノードは、コーディングノードを備え、リーフCUとも呼ばれる。コード化ビットストリームに関連するシンタックスデータは、最大CU深度と呼ばれる、ツリーブロックが分割され得る最大回数を定義し得、また、コーディングノードの最小サイズを定義し得る。それに応じて、ビットストリームは最小コーディングユニット(SCU:smallest coding unit)をも定義し得る。本開示では、HEVCのコンテキストにおけるCU、PU、またはTU、あるいは他の規格のコンテキストにおける同様のデータ構造(たとえば、H.264/AVCにおけるマクロブロックおよびそれのサブブロック)のいずれかを指すために「ブロック」という用語を使用する。
[0048]CUは、コーディングノードと、コーディングノードに関連する予測ユニット(PU:prediction unit)および変換ユニット(TU:transform unit)とを含む。CUのサイズは、コーディングノードのサイズに対応し、形状が方形でなければならない。CUのサイズは、8×8ピクセルから最大64×64以上のピクセルをもつツリーブロックのサイズまでに及び得る。各CUは、1つまたは複数のPUと、1つまたは複数のTUとを含み得る。CUに関連するシンタックスデータは、たとえば、CUを1つまたは複数のPUに区分することを記述し得る。区分モードは、CUが、スキップモード符号化またはダイレクトモード符号化されるか、イントラ予測モード符号化されるか、あるいはインター予測モード符号化されるかによって異なり得る。PUは、形状が非方形になるように区分され得る。CUに関連するシンタックスデータは、たとえば、4分木に従って、CUを1つまたは複数のTUに区分することも記述し得る。TUは、形状が方形または非方形(たとえば、矩形)であり得る。
[0049]HEVC規格は、CUごとに異なり得るTUに従う変換を可能にする。TUは、一般に、区分されたLCUについて定義された所与のCU内のPUのサイズに基づいてサイズ決定されるが、常にそうであるとは限らない。TUは、一般にPUと同じサイズであるかまたはPUよりも小さい。いくつかの例では、CUに対応する残差サンプルは、「残差4分木」(RQT:residual quad tree)として知られる4分木構造を使用してより小さいユニットに再分割され得る。RQTのリーフノードは変換ユニット(TU)と呼ばれることがある。TUに関連するピクセル差分値は、量子化され得る変換係数を生成するために変換され得る。
[0050]リーフCUは、1つまたは複数の予測ユニット(PU)を含み得る。概して、PUは、対応するCUの全部または一部分に対応する空間的エリアを表し、そのPUの参照サンプルを取り出すためのデータを含み得る。その上、PUは、予測に関係するデータを含む。たとえば、PUがイントラモード符号化されるとき、PUについてのデータは、PUに対応するTUについてのイントラ予測モードを記述するデータを含み得る残差4分木(RQT)中に含まれ得る。別の例として、PUがインターモード符号化されるとき、PUは、PUのための1つまたは複数の動きベクトルを定義するデータを含み得る。PUの動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度(たとえば、1/4ピクセル精度もしくは1/8ピクセル精度)、動きベクトルが指す参照ピクチャ、および/または動きベクトルの参照ピクチャリスト(たとえば、リスト0、リスト1、もしくはリストC)を記述し得る。
[0051]1つまたは複数のPUを有するリーフCUはまた、1つまたは複数の変換ユニット(TU)を含み得る。変換ユニットは、上記で説明したように、(TU4分木構造とも呼ばれる)RQTを使用して指定され得る。たとえば、分割フラグは、リーフCUが4つの変換ユニットに分割されるかどうかを示し得る。次いで、各変換ユニットは、さらに、さらなるサブTUに分割され得る。TUがさらに分割されないとき、そのTUはリーフTUと呼ばれることがある。概して、イントラコーディングの場合、リーフCUに属するすべてのリーフTUは同じイントラ予測モードを共有する。すなわち、概して、リーフCUのすべてのTUの予測値を計算するために同じイントラ予測モードが適用される。イントラコーディングの場合、ビデオエンコーダは、イントラ予測モードを使用して各リーフTUの残差値を、TUに対応するCUの一部と元のブロックとの間の差分として計算し得る。TUは、必ずしもPUのサイズに制限されるとは限らない。したがって、TUはPUよりも大きくまたは小さくなり得る。イントラコーディングの場合、PUは、同じCUについて対応するリーフTUとコロケートされ得る。いくつかの例では、リーフTUの最大サイズは、対応するリーフCUのサイズに対応し得る。
[0052]その上、リーフCUのTUはまた、残差4分木(RQT)と呼ばれる、それぞれの4分木データ構造に関連付けられ得る。すなわち、リーフCUは、リーフCUがどのようにTUに区分されるかを示す4分木を含み得る。TU4分木のルートノードは概してリーフCUに対応し、CU4分木のルートノードは概してツリーブロック(またはLCU)に対応する。分割されないRQTのTUはリーフTUと呼ばれる。概して、本開示では、特に明記しない限り、リーフCUおよびリーフTUに言及するためにそれぞれCUおよびTUという用語を使用する。
[0053]ビデオシーケンスは、一般に、一連のビデオフレームまたはピクチャを含む。ピクチャグループ(GOP)は、概して、ビデオピクチャのうちの一連の1つまたは複数を備える。GOPは、GOP中に含まれるいくつかのピクチャを記述するシンタックスデータを、GOPのヘッダ中、ピクチャのうちの1つまたは複数のヘッダ中、または他の場所に含み得る。ピクチャの各スライスは、それぞれのスライスの符号化モードを記述するスライスシンタックスデータを含み得る。ビデオエンコーダ20は、一般に、ビデオデータを符号化するために個々のビデオスライス内のビデオブロックに対して動作する。ビデオブロックは、CU内のコーディングノードに対応し得る。ビデオブロックは、固定サイズまたは可変サイズを有し得、指定のコーディング規格に応じてサイズが異なり得る。
[0054]一例として、HMは、様々なPUサイズでの予測をサポートする。特定のCUのサイズが2N×2Nであると仮定すると、HMは、2N×2NまたはN×NのPUサイズでのイントラ予測をサポートし、2N×2N、2N×N、N×2N、またはN×Nの対称的なPUサイズでのインター予測をサポートする。HMはまた、2N×nU、2N×nD、nL×2N、およびnR×2NのPUサイズでのインター予測のための非対称区分をサポートする。非対称区分では、CUの一方向は区分されないが、他の方向は25%と75%とに区分される。25%の区分に対応するCUの部分は、「n」とその後ろに付く「Up」、「Down」、「Left」、または「Right」という表示によって示される。したがって、たとえば、「2N×nU」は、上部の2N×0.5N PUと下部の2N×1.5N PUとで水平方向に区分された2N×2N CUを指す。
[0055]本開示では、「N×N(NxN)」および「N×N(N by N)」は、垂直寸法および水平寸法に関するビデオブロックのピクセル寸法、たとえば、16×16(16x16)ピクセルまたは16×16(16 by 16)ピクセルを指すために互換的に使用され得る。一般に、16×16ブロックは、垂直方向に16ピクセルを有し(y=16)、水平方向に16ピクセルを有する(x=16)。同様に、N×Nブロックは、一般に、垂直方向にNピクセルを有し、水平方向にNピクセルを有し、Nは、非負整数値を表す。ブロック中のピクセルは行と列に構成され得る。さらに、ブロックは、必ずしも、水平方向に垂直方向と同じ数のピクセルを有する必要はない。たとえば、ブロックはN×Mピクセルを備え得、ただし、Mは必ずしもNに等しいとは限らない。
[0056]CUのPUを使用したイントラ予測コーディングまたはインター予測コーディング(たとえば、時間的インター予測またはビュー間予測)の後、ビデオエンコーダ20は、CUのTUのための残差データを計算し得る。PUは、(ピクセル領域とも呼ばれる)空間領域において予測ピクセルデータを生成する方法またはモードを記述するシンタックスデータを備え得、TUは、たとえば、残差ビデオデータへの離散コサイン変換(DCT)、整数変換、ウェーブレット変換、または概念的に同様の変換などの変換の適用後に、変換領域において係数を備え得る。残差データは、符号化されていないピクチャのピクセルと、PUに対応する予測値との間のピクセル差分に対応し得る。ビデオエンコーダ20は、CUのための残差データを含むTUを形成し、次いで、TUを変換して、CUのための変換係数を生成し得る。
[0057]変換係数を生成するための任意の変換の後に、ビデオエンコーダ20は、変換係数の量子化を実行し得る。量子化は、概して、さらなる圧縮を行う、係数を表すために使用されるデータの量をできるだけ低減するために変換係数を量子化するプロセスを指す。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。たとえば、量子化中にnビット値がmビット値に切り捨てられ得、ただし、nはmよりも大きい。
[0058]量子化の後に、ビデオエンコーダは、変換係数を走査して、量子化変換係数を含む2次元行列から1次元ベクトルを生成し得る。走査は、より高いエネルギー(したがってより低い周波数)の係数をアレイの前方に配置し、より低いエネルギー(したがってより高い周波数)の係数をアレイの後方に配置するように設計され得る。いくつかの例では、ビデオエンコーダ20は、エントロピー符号化され得るシリアル化ベクトルを生成するために、量子化変換係数を走査するためにあらかじめ定義された走査順序を利用し得る。他の例では、ビデオエンコーダ20は適応走査を実行し得る。量子化変換係数を走査して1次元ベクトルを形成した後に、ビデオエンコーダ20は、たとえば、コンテキスト適応型可変長コーディング(CAVLC:context-adaptive variable length coding)、コンテキスト適応型バイナリ算術コーディング(CABAC:context-adaptive binary arithmetic coding)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC:syntax-based context-adaptive binary arithmetic coding)、確率間隔区分エントロピー(PIPE:Probability Interval Partitioning Entropy)コーディング、または別のエントロピー符号化方法に従って1次元ベクトルをエントロピー符号化し得る。ビデオエンコーダ20はまた、ビデオデータを復号する際にビデオデコーダ30が使用するための、符号化ビデオデータに関連するシンタックス要素をエントロピー符号化し得る。
[0059]CABACを実行するために、ビデオエンコーダ20は、送信されるべきシンボルに、コンテキストモデル内のコンテキストを割り当て得る。コンテキストは、たとえば、シンボルの隣接値が非0であるか否かに関係し得る。CAVLCを実行するために、ビデオエンコーダ20は、送信されるべきシンボルのための可変長コードを選択し得る。VLCにおけるコードワードは、相対的により短いコードが優勢シンボルに対応し、より長いコードが劣勢シンボルに対応するように構成され得る。このようにして、VLCの使用は、たとえば、送信されるべき各シンボルのために等長コードワードを使用するよりも、ビット節約を達成し得る。確率決定は、シンボルに割り当てられるコンテキストに基づき得る。
[0060]本開示の技法によれば、ビデオエンコーダ20およびビデオデコーダ30は、ビュー合成予測が特定のビットストリームまたはサブビットストリーム(たとえば、複数のビューを含むビットストリームの動作点)のために使用可能であるかどうかを示す情報をコーディングするように構成され得る。ビデオエンコーダ20は、たとえば、ビットストリームまたはサブビットストリームのためにビュー合成予測を使用可能にすべきかどうかを決定するように構成され得る。たとえば、ビデオエンコーダ20は、ビュー合成予測を実行する能力がないビデオデコーダと後方互換性があるべきであるビットストリームをコーディングし得る。代替的に、ビデオエンコーダ20は、ビュー合成予測が他の従来のコーディング方法よりもコーディング結果の改善をもたらさないと決定し、したがって、ビュー合成予測が使用可能にされるべきでないと決定し得る。いずれの場合も、ビデオエンコーダ20は、ビュー合成予測がビットストリームまたはサブビットストリームのために使用可能であるかどうかを示す情報を符号化し得る。ビデオデコーダ30は、次に、ビュー合成予測が使用可能であるかどうかを示す情報を復号し、ビュー合成予測が使用可能であることを情報が示すときにのみ、(ビュー合成参照ピクチャまたはVSRPとも呼ばれる)参照ピクチャとして使用するためにビュー合成ピクチャを生成し得る。
[0061]概して、ビュー合成予測を実行するために、ビデオエンコーダ20またはビデオデコーダ30などのビデオコーダは、合成ビューコンポーネントを生成するために1つまたは複数のビューのテクスチャおよび深度情報を使用し得る。このプロセスは、表示のためにテクスチャおよび深度情報を使用して合成ビューコンポーネントを生成するためのプロセスと実質的に同様である。しかしながら、ビュー合成予測では、合成ビューコンポーネント(すなわち、ピクチャ)は、異なるビューをコーディングするときに参照ピクチャとして使用するために参照ピクチャリストに追加され得る。ビュー合成予測は、テクスチャ情報または深度情報をコーディングするために参照ピクチャを生成するために使用され得る。もちろん、生成されたビュー合成ピクチャはまた、再生の一部としてクライアントデバイスによって表示され得る。追加または代替として、ビデオデコーダ30、または後処理ユニット(図示せず)など、宛先デバイス14の別のユニットは、再生のための合成ピクチャを生成するためにビュー合成を実行し得る。予測のために使用されるビュー合成ピクチャが表示され得るが、いくつかの例では、別個のピクチャは、表示のためにDIBRを使用して生成され得ることを理解されたい。予測のためのビュー合成画像は、コーディングまたは「ループ内」中に生成され得、一方、表示のためのビュー合成画像は、「ループ内」または「ループ後」で、すなわちコーディングに続いて生成され得る。
[0062]いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30は、ビデオパラメータセット(VPS:video parameter set)、シーケンスパラメータセット(SPS:sequence parameter set)、ピクチャパラメータセット(PPS:picture parameter set)、または適応パラメータセット(APS:adaptation parameter set)などのパラメータセットのシンタックス要素としてビュー合成予測が使用可能であるかどうかを示す情報をコーディングするように構成され得る。概して、VPSは、ビットストリームの1つまたは複数のレイヤ(たとえば、1つまたは複数のビュー)に適用され、SPSは、(たとえば、瞬時デコーダリフレッシュ(IDR:instantaneous decoder refresh)ピクチャから始まり、後続のIDRピクチャの直前のピクチャで終了する)特定のレイヤの一連のピクチャに適用され、PPSは、個別のピクチャに適用され、APSは、ピクチャの個別のスライスに適用される。ビデオエンコーダ20およびビデオデコーダ30は、上記のデータ構造、たとえば、VPS、SPS、PPS、および/またはAPSのいずれかまたはすべての中で、ビュー合成予測が使用可能であるかどうかを示すシンタックス要素をコーディングし得る。
[0063]いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30は、SPS、PPS、およびAPS中でシンタックス要素を階層的にコーディングし得る。たとえば、ビュー合成予測が使用可能でないことをSPS中のシンタックス要素が示す場合、ビュー合成予測が全シーケンスのために使用不能であるので、PPSおよびAPS中のシンタックス要素がシグナリングされる必要はない。したがって、ビュー合成予測が使用可能でないことをSPS中のシンタックス要素が示す場合、ビデオデコーダ30は、SPSに対応するシーケンス中のピクチャおよびピクチャのスライスのPPSおよびAPSのシンタックス要素の値を推論し得、推論される値は、ビュー合成予測が使用不能であることを示す値である。
[0064]別の例として、ビュー合成予測が使用可能であることをSPS中のシンタックス要素が示す場合、ビュー合成予測が特定の対応するピクチャのために使用可能であるかどうかを示すためにPPS中に追加のシンタックス要素が与えられ得る。追加または代替として、ビュー合成予測が使用可能であることをSPS中のシンタックス要素が示す場合、ビュー合成予測に関して、同じピクチャのスライスのためのAPSのシンタックス要素が同じ値を有するように、特定のピクチャの各スライスのためのAPS中に追加のシンタックス要素が与えられ得る。概して、ビュー合成は全参照ピクチャを合成することを伴い、したがって、ビュー合成予測がピクチャの1つのスライスのために使用可能である場合、ビュー合成予測は、ピクチャのすべてのスライスのために使用可能であると見なされる。いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30は、追加または代替として、スライスのスライスヘッダ中でシンタックス要素をコーディングし得る。さらに、同様のシンタックス要素が、上記で説明したように、スライスのためにシグナリングされることに加えて、またはその代替として、ピクチャのタイルまたは波面のために個々にシグナリングされ得る。
[0065]以下の表1は、本開示の技法のいくつかの例による、SPSについてのシンタックスの例示的なセットを与える。この例では、SPSは、3DVのためのSPS拡張である。したがって、ITU−T H.264/AVCまたはHEVCなど、(表1で省略符号によって表されている)ベースコーディング規格の他のシンタックス要素は、対応するベースコーディング規格において定義されているシンタックス要素と同じままであり得る。
[0066]表1の例に示すように、seq_parameter_set_3dvc_extension()は、ITU−T H.264/AVCのサブセットSPSのための拡張の例を表す。しかしながら、seq_view_synthesis_enabled_flagは、代替的に、たとえば、表2に示すように、SPS自体中で直接シグナリングされ得る。
[0067]seq_view_synthesis_enabled_flagについてのセマンティクスは次のように定義され得る。1に等しいseq_view_synthesis_enabled_flagは、このSPSを参照するビューコンポーネント(テクスチャまたは深度ビューコンポーネント)がビュー合成予測モードを使用し得ることを示し得る。0に等しいseq_view_synthesis_enabled_flagは、このSPSを参照するビューコンポーネントがビュー合成を使用しないことを示し得る。(表1および表2で省略符号によって表されている)他のシンタックス要素についてのセマンティクスは、それぞれのコーディング規格においてこれらのシンタックス要素に対して定義されていているセマンティクスと実質的に同様のままであり得る。
[0068]以下の表3は、本開示の技法のいくつかの例による、PPSについてのシンタックスの例示的なセットを与える。
[0069]表3の例では、seq_parameter_set_idに対応するSPSは、ビュー合成予測がシーケンスために使用可能であるかどうかを示すseq_view_synthesis_enabled_flagの値をシグナリングしたと想定される。したがって、ビュー合成予測がシーケンスのために使用可能でない場合、PPSは、pic_view_synthesis_enaled_flagの値を含む必要がなく、ビデオデコーダ30は、pic_view_synthesis_enaled_flagの値がたとえば、0であるものとして推論し得る。代替的に、pic_view_synthesis_enabled_flagは、seq_view_synthesis_enabled_flagのシグナリングなしに直接シグナリングされ得る(言い換えれば、PPSについてのシンタックスは、seq_view_synthesis_enabled_flagが常に1に等しくなることと同等であり得る)。
[0070]シンタックス要素pic_view_synthesis_enabled_flagについてのセマンティクスは次のように定義され得る。1に等しいpic_view_synthesis_enabled_flagは、このPPSを参照するビューコンポーネント(テクスチャまたは深度ビューコンポーネント)がビュー合成予測を使用し得ることを示し得る。0に等しいpic_view_synthesis_enabled_flagは、このPPSを参照するビューコンポーネントがビュー合成を使用しないことを示し得る。他のシンタックス要素についてのセマンティクスは、それぞれのコーディング規格においてこれらのシンタックス要素に対して定義されていているセマンティクスと実質的に同様のままであり得る。
[0071]以下の表4は、本開示の技法のいくつかの例による、APSについてのシンタックスの例示的なセットを与える。
[0072]表4の例では、(たとえば、表1または2の)seq_view_synthesis_enabled_flagが0に等しいか、または(たとえば、表3の)pic_view_syenthsis_enabled_flagが0に等しい場合、ViewSynthesisEnabledは0(すなわち、「偽」)の値を有するように導出され得る。表4の例に示すように、aps_view_synthesis_enabled_flagは、ViewSynthesisEnabledが1(すなわち、「真」)の値を有するときのみシグナリングされる。したがって、ビュー合成予測が対応するシーケンスまたはピクチャのために使用可能でないことをseq_view_synthesis_enabled_flagまたはpic_view_syenthsis_enabled_flagのいずれかが示す場合、aps_view_synthesis_enabled_flagのための値がシグナリングされる必要はなく、代わりに、ビデオデコーダ30は、ビュー合成予測が対応するスライスのために使用可能でないことを示すものとしてaps_view_synthesis_enabled_flagのための値を推論し得る。代替的に、aps_view_synthesis_enabled_flagは、seq_view_synthesis_enabled_flagまたはpic_view_synthesis_enabled_flagのシグナリングなしに直接シグナリングされ得る。
[0073]aps_view_synthesis_enabled_flagについてのセマンティクスは次のように定義され得る。1に等しいaps_view_synthesis_enabled_flagは、このAPSを参照するビューコンポーネント(テクスチャまたは深度ビューコンポーネント)がビュー合成予測を使用し得ることを示し得る。0に等しいaps_view_synthesis_enabled_flagは、このAPSを参照するビューコンポーネントがビュー合成を使用しないことを示し得る。APSの他のシンタックス要素についてのセマンティクスは、それぞれのビデオコーディング規格において定義されているセマンティクスと実質的に同様のままであり得る。
[0074]いくつかの例では、ビュー合成予測が対応するスライスのために使用可能であるかどうかを示すAPS中でシンタックス要素をシグナリングすることに加えて、またはその代替として、ビュー合成予測が対応するスライスのために使用可能であるかどうかを示すスライスヘッダ中でシンタックス要素がシグナリングされ得る。表5は、本開示の技法のいくつかの例による、スライスヘッダについてのシンタックスの例示的なセットを与える。
[0075]表4に関して説明したように、seq_view_synthesis_enabled_flagが、シグナリングされ、0(すなわち、「偽」)に等しいか、またはpic_view_syenthsis_enabled_flagが、シグナリングされ、0(すなわち、「偽」)に等しい場合、ViewSynthesisEnabledは0であると導出され得る。HEVCベースの3DV、またはビュー合成予測が使用可能であるかどうかを示すシンタックス要素を含むAPSがシグナリングされる他のコーディング規格のコンテキストでは、aps_view_syenthsis_enabled_flagがシグナリングされ、0(すなわち、「偽」)に等しい場合、ViewSynthesisEnabledは0であると導出され得る。
[0076]表5のview_synthesis_flagについてのセマンティクスは次のように定義され得る。1に等しいview_synthesis_flagは、現在のスライスが予測されたビュー合成であり得、したがって、ビュー合成参照ピクチャが生成されるべきであることを示し得る。0に等しいview_synthesis_flagは、現在のスライスが予測されたビュー合成でなく、したがって、ビュー合成参照ピクチャが生成される必要はないことを示し得る。存在しないとき、このフラグは0であると推測され得る。
[0077]ITU−T H.264/AVCベースの3DVの現在のバージョンでは、ピクチャは複数のスライスに分割され得る。HEVCなどの他のコーディング規格では、ピクチャは、タイルまたは波面などの他の領域に分割され得る。スライスに関して上記で説明した技法(たとえば、スライスヘッダ中でおよび/またはAPSヘッダ中でシンタックス要素をシグナリングすること)はまた、タイルまたは波面などの他のサブピクチャ領域に適用され得る。
[0078]いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30は、共通ピクチャの複数のスライスが同じ値のview_synthesis_flagを有するように構成され得る。すなわち、ピクチャのすべてのスライスがview_synthesis_flagについて同じ値を有するような制約が導入され得る。このようにして、ビューコンポーネントの第1のスライス(すなわち、順序第1のスライス)のスライスヘッダがパースされ、view_synthesis_flagが1に等しいとき、(ピクセルごとの)ビュー合成ピクチャが、生成され得、制約により、同じビューコンポーネント中のすべてのスライスのために使用され得る。一方、この例では、第1のスライスのview_synthesis_flagが0に等しい場合、ビュー合成ピクチャは、制約により、ビュー合成予測のために現在のビューコンポーネントのいかなるスライスのためにも生成されない。
[0079]いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30は、代わりに、共通ピクチャの複数のスライスがview_synthesis_flagについて異なる値を有し得るように構成され得る。1に等しいview_synthisis_flagを有するビューコンポーネントのスライスのスライスヘッダがパースされるとき、(ピクセルごとの)ビュー合成参照ピクチャがそのビューコンポーネントのために生成され得る。代替として、ビュー合成予測プロセスは、0に等しいview_synthesis_flagをもつ現在のスライスに関係する(たとえば、それとコロケートされる、または視差による水平オフセットの後にそれとコロケートされる)領域にのみ適用され得る。
[0080]いくつかの例では、view_synthesis_flagがスライスヘッダ中でシグナリングされないとき、およびViewSynthesisEnabledが1に等しい場合、参照ピクチャリスト構成の後に、ビデオエンコーダ20およびビデオデコーダ30は、現在のスライスのための参照ピクチャを生成するためにビュー合成予測を使用すべきかどうかを決定するために検査を実行し得る。そのような検査は、各参照ピクチャリストの各エントリに対して実行され得、参照ピクチャリストの1つのエントリが、現在のスライスのピクチャ順序カウント(POC:picture order count)値に等しいPOC値を有する場合、現在のスライスのためにビュー合成予測を使用すべきと決定され得る。さらに、ビュー合成予測が現在のスライスのために使用されるとき、ビデオエンコーダ20およびビデオデコーダ30は、参照ピクチャとして使用されるべきビュー合成ピクチャを生成するように構成され得る。
[0081]代替的に、検査が、ビュー合成予測を使用すべきという決定に帰着する場合、ビデオエンコーダ20およびビデオデコーダ30は、現在のスライスに関係する参照領域を生成するためにビュー合成予測のみを実行し得る。ビデオエンコーダ20およびビデオデコーダ30は、パディングエリアで定義され得、ビデオエンコーダ20およびビデオデコーダ30は、コロケートスライス領域とパディングエリアとの中のピクセルの値を合成し得る。
[0082]概して、ビデオエンコーダ20およびビデオデコーダ30は、1つまたは2つの参照ビューのテクスチャおよび深度情報を使用するビュー合成予測を使用して参照ピクチャを生成し得る。2つの参照ビューが考慮に入れられるとき、一般に、参照ビューのうちの1つが、コーディングされている現在のビュー、すなわち、ビュー合成のターゲットビューの左側にあり、一方、他方の参照ビューが現在のビューの右側にある。
[0083]ビデオエンコーダ20およびビデオデコーダ30が参照ビューを識別した後、(テクスチャおよび深度情報を含む)ビューコンポーネントを復号するとき、ビデオエンコーダ20およびビデオデコーダ30は、さらに、識別されたビュー、を使用して参照ビューコンポーネントを識別し得、同じアクセスユニット内の現在のビューコンポーネントをコーディングするためにテクスチャまたは深度情報(またはその両方)が使用され得る。ビデオエンコーダ20およびビデオデコーダ30は、たとえば、ビュー識別子(view_id)値を使用するか、または水平変換情報を使用して参照ビュー識別子をコーディングするように構成され得る。ビデオエンコーダ20およびビデオデコーダ30は、参照ピクチャとして使用するためにビューコンポーネントを合成するために識別された(1つまたは複数の)参照ビューを使用し得る。
[0084]上記のように、いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30は、view_id値を使用してビューコンポーネントを合成するために使用されるべき参照ビューについての識別情報をコーディングし得る。VOIdxに等しいビュー順序インデックスをもつ現在のビューの場合、現在のビューよりも小さいビュー順序インデックスと現在のビューのview_id(viewID)に最も近いview_idとをもつビューが参照ビューとして識別され得る。VOIdxよりも小さいビュー順序インデックスとviewIDよりも小さいview_idとをもつビューの中から、最大のview_idをもつビューが第1の参照ビューとして識別され得る。VOIdxよりも小さいビュー順序インデックスとview_idよりも大きいview_idとをもつビューの中から、最小のview_idをもつビューが第2の参照ビューとして識別され得る。
[0085]ビュー合成予測のための参照ビューを識別するためにview_id値が使用される例では、第1の参照ビューと第2の参照ビューの両方が識別され得る場合、ビデオエンコーダ20およびビデオデコーダ30は、2つの参照ビューが可能にされれば、これらの2つの参照ビューからビュー合成参照ピクチャを合成し得る。そうでない場合、ビデオエンコーダ20およびビデオデコーダ30は単に、1つの参照ビューからビュー合成参照ピクチャを合成する。1つの参照ビューしか可能にされず、第1および第2の参照ビューが両方とも識別される場合、より近いview_idをもつ1つが選定され得る。両方の参照ビューが同じ距離(distance)のview_idを有する場合、ビデオエンコーダ20およびビデオデコーダ30は、より小さい(またはより大きい)view_idをもつ参照ビューを選択するように構成され得る。
[0086]いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30は、ビュー合成予測のための参照ビューを識別するために水平変換情報を使用するように構成され得る。2つの参照ビューが可能にされる場合、VOIdxよりも小さいビュー順序インデックスと現在のビューの水平変換よりも小さい水平変換とをもつビューの中から、最も近い水平ロケーションをもつビューは第1の参照ビューとして識別され得る。VOIdxよりも小さいビュー順序インデックスと現在のビューよりも大きい水平変換とをもつビューの中から、最も近い水平ロケーションをもつビューが第2の参照ビューとして識別され得る。
[0087]参照ビューを識別するために水平変換情報が使用される例では、第1の参照ビューと第2の参照ビューの両方が識別され得る場合、ビデオエンコーダ20およびビデオデコーダ30は、2つの参照ビューが可能にされれば、これらの2つの参照ビューからビュー合成参照ピクチャを合成し得る。そうでない場合、ビデオエンコーダ20およびビデオデコーダ30は単に、1つの参照ビューからビュー合成参照ピクチャを合成し得る。1つの参照ビューしか可能にされず、第1および第2の参照ビューが両方とも識別される場合、より近い水平ロケーションをもつ1つが選定され得る。両方の参照ビューが現在のビューまで同じ距離を有する場合、ビデオエンコーダ20およびビデオデコーダ30は左側の(または右側の)1つを選択するように構成され得る。
[0088]概して、ビデオエンコーダ20およびビデオデコーダ30は、ビュー合成のための参照ビューを選定するときに実質的に同じ方法で動作するように構成され得る。したがって、ただ1つの参照ビューが使用されるべきであり、2つの異なる参照ビューがほぼ同じ結果をもたらし得る場合、ビデオエンコーダ20およびビデオデコーダ30は、それらが同じ参照ビューを選択するように構成され得、したがって、参照ビューを明示的に識別するために追加のシンタックス要素がシグナリングされる必要はない。
[0089]このようにして、ビデオエンコーダ20およびビデオデコーダ30は、ビュー合成予測がビデオデータのために使用可能であるかどうかを示す情報をコーディングすることと、ビュー合成予測がビデオデータのために使用可能であることを情報が示すとき、ビデオデータを使用してビュー合成ピクチャを生成することと、ビュー合成ピクチャに対して現在のピクチャの少なくとも一部分をコーディングすることとを行うように構成されたビデオコーダの例を表す。一方、ビュー合成予測が使用可能でないことを情報が示すとき、ビデオコーダは、どのビュー合成ピクチャとも無関係に、イントラ予測と、時間的インター予測と、ビュー間予測とのうちの少なくとも1つを使用して現在のピクチャをコーディングするように構成され得る。したがって、ビデオコーダは、ビュー合成予測が使用可能であることを情報が示すときにのみ、参照ピクチャとして使用されるべきビュー合成ピクチャを生成するように構成され得、そうでない場合、ビュー合成はスキップされ得、それにより、処理リソースおよび/またはバッテリー電力を節約し得る。
[0090]ビュー合成予測がビデオデータのために使用可能であるかどうかを示す情報は、表1〜表5に関して上記で説明したように、VPS、SPS、PPS、またはAPSなどパラメータセット中でシグナリングされるか、および/あるいはスライスヘッダ中でシグナリングされ得る。この情報は、これらのデータ構造のいずれかまたはすべて中にシンタックス要素を、単独でまたは任意の組合せで備え得る。さらに、上記で説明したように、ビデオコーダは、たとえば、1つまたは複数の参照ビューのview_id値または水平変換情報を使用して、参照ピクチャとして使用されるべきビュー合成ピクチャを生成するために使用するために1つまたは複数の参照ビューについての識別情報をコーディングするように構成され得る。
[0091]ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、適用可能なとき、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダまたはデコーダ回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。ビデオエンコーダ20およびビデオデコーダ30の各々は1つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも複合ビデオエンコーダ/デコーダ(コーデック)の一部として統合され得る。ビデオエンコーダ20および/またはビデオデコーダ30を含むデバイスは、集積回路、マイクロプロセッサ、および/またはセルラー電話などのワイヤレス通信デバイスを備え得る。
[0092]図2は、ビュー合成予測に関係する情報をコーディングするための技法を実装し得るビデオエンコーダ20の一例を示すブロック図である。ビデオエンコーダ20は、ビデオスライス内のビデオブロックのイントラコーディングおよびインターコーディングを実行し得る。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの隣接フレームまたはピクチャ内のビデオの時間的冗長性を低減または除去するために時間的予測に依拠する。イントラモード(Iモード)は、いくつかの空間ベースのコーディングモードのいずれかを指し得る。単方向予測(Pモード)または双方向予測(Bモード)などのインターモードは、いくつかの時間ベースのコーディングモードのいずれかを指し得る。
[0093]図2に示すように、ビデオエンコーダ20は、符号化されるべきビデオフレーム内の現在のビデオブロックを受信する。図2の例では、ビデオエンコーダ20は、モード選択ユニット40と、参照フレームメモリ64と、加算器50と、変換処理ユニット52と、量子化ユニット54と、エントロピーコーディングユニット56とを含む。モード選択ユニット40は、今度は、動き補償ユニット44と、動き推定ユニット42と、イントラ予測ユニット46と、パーティションユニット48とを含む。ビデオブロック再構成のために、ビデオエンコーダ20はまた、逆量子化ユニット58と、逆変換ユニット60と、加算器62とを含む。再構成されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタ処理するデブロッキングフィルタ(図2に図示せず)も含まれ得る。所望される場合、デブロッキングフィルタは、一般に、加算器62の出力をフィルタ処理することになる。また、デブロッキングフィルタに加えて追加のフィルタ(ループ内またはループ後)が使用され得る。そのようなフィルタは、簡潔のために示されていないが、所望される場合、(ループ内フィルタとして)加算器50の出力をフィルタ処理し得る。
[0094]符号化プロセス中に、ビデオエンコーダ20は、コーディングされるべきビデオフレームまたはスライスを受信する。フレームまたはスライスは、複数のビデオブロックに分割され得る。動き推定ユニット42および動き補償ユニット44は、時間的予測を行うために、1つまたは複数の参照フレーム中の1つまたは複数のブロックに対して、受信されたビデオブロックのインター予測コーディングを実行する。イントラ予測ユニット46は、代替的に、空間的予測を行うために、コーディングされるべきブロックと同じフレームまたはスライス中の1つまたは複数の隣接ブロックに対して受信されたビデオブロックのイントラ予測コーディングを実行し得る。ビデオエンコーダ20は、たとえば、ビデオデータの各ブロックのための適切なコーディングモードを選択するために、複数のコーディングパスを実行し得る。
[0095]その上、パーティションユニット48は、前のコーディングパスにおける前の区分方式の評価に基づいて、ビデオデータのブロックをサブブロックに区分し得る。たとえば、パーティションユニット48は、初めにフレームまたはスライスをLCUに区分し、レートひずみ分析(たとえば、レートひずみ最適化)に基づいてLCUの各々をサブCUに区分し得る。モード選択ユニット40は、さらに、LCUをサブCUに区分することを示す4分木データ構造を生成し得る。4分木のリーフノードCUは、1つまたは複数のPUと、1つまたは複数のTUとを含み得る。
[0096]モード選択ユニット40は、たとえば、誤差結果に基づいて、イントラ予測、時間的インター予測、またはビュー間予測などのコーディングモードのうちの1つを選択し得、残差ブロックデータを生成するために、予測ブロックを加算器50に与え、参照フレームとして使用するための符号化ブロックを再構成するために、予測ブロックを加算器62に与える。モード選択ユニット40はまた、動きベクトル、イントラモードインジケータ、パーティション情報、および他のそのようなシンタックス情報など、シンタックス要素をエントロピーコーディングユニット56に与える。いくつかの例では、モード選択ユニット40は、ビュー合成予測のために、たとえば、前にコーディングされたビューまたは合成ビューに対してビュー間予測を選択するように構成され得る。以下でより詳細に説明するように、ビュー合成ユニット66は、ビュー合成予測のためにビューを合成する(すなわち、テクスチャおよび/または深度ピクセル値を含むピクチャを合成する)ように構成され得る。たとえば、ビュー合成ユニット66は、深度画像ベースレンダリング(DIBR:depth-image based rendering)と実質的に同様の技法を実行するように構成され得る。
[0097]さらに、モード選択ユニット40は、エントロピーコーディングユニット56にPUのための選択されたコーディングモードを示すシンタックス情報を与え得る。ビュー合成予測が使用可能である場合、モード選択ユニット40は、依然として、前にコーディングされたピクチャに対して他の利用可能なコーディングモード、たとえば、イントラ予測、時間的インター予測、またはビュー間予測の中から選択し得ることを理解されたい。したがって、ビデオエンコーダ20は、ビュー合成予測が使用可能であるかどうかを示す情報とは別個に、ビデオデータのブロックのためにどのコーディングモードが選択されるかの指示を与え得る。
[0098]動き推定ユニット42と動き補償ユニット44とは、高度に統合され得るが、概念的な目的のために別々に示してある。動き推定ユニット42によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、現在のフレーム(または他のコード化ユニット)内でコーディングされている現在のブロックに対する参照フレーム(または他のコード化ユニット)内の予測ブロックに対して現在のビデオフレームまたはピクチャ内のビデオブロックのPUの変位を示し得る。予測ブロックは、絶対値差分和(SAD:sum of absolute difference)、2乗差分和(SSD:sum of square difference)、または他の差分メトリックによって決定され得るピクセル差分に関して、コーディングされるべきブロックにぴったり一致することがわかるブロックである。動きベクトルは、時間的に別個のピクチャ中の同じビューの前にコーディングされたブロックに対してブロックの動きについて説明する時間的動きベクトルと、(異なる水平カメラパースペクティブを有する)が同じ時間的位置を有し得る異なるビュー中の同様のブロック間の視差について説明する視差動きベクトルとを含み得る。場合によっては、動きベクトルは、異なるビュー中にも存在する時間的に別個のピクチャに関する動きについて説明し得る。
[0099]いくつかの例では、ビデオエンコーダ20は、参照フレームメモリ64に記憶された参照ピクチャのサブ整数ピクセル位置の値を計算し得る。たとえば、ビデオエンコーダ20は、参照ピクチャの1/4ピクセル位置、1/8ピクセル位置、または他の分数ピクセル位置の値を補間し得る。したがって、動き推定ユニット42は、フルピクセル位置と分数ピクセル位置とに対して動き探索を実行し、分数ピクセル精度で動きベクトルを出力し得る。
[0100]ビュー間予測を実行するとき、動き推定ユニット42は、ビュー合成予測のために、異なるビューの前にコーディングされたピクチャまたは合成ピクチャに対して視差動きベクトルを計算し得る。したがって、動き推定ユニット42は、動き/視差推定ユニットと呼ばれることもある。概して、合成ピクチャは、ビュー合成ユニット66によって参照フレームメモリ64に記憶され得、したがって、動き推定ユニット42および動き補償ユニット44は、参照ピクチャが、異なるビューの前にコーディングされたピクチャであるのか、ビュー合成プロセスからの合成ピクチャであるのかを決定するように構成される必要はない。シーンのピクチャが、異種水平カメラの観点からキャプチャまたは生成されるために、同じ時間的位置における異なるビューのピクチャは、一般に、水平差異のみを含み、垂直差異を含まないので、視差動きベクトルを探索するためのプロセスは、水平方向と垂直方向の両方に探索するのではなく、水平方向に探索することに制限され得る。
[0101]動き推定ユニット42は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコード化スライスにおけるビデオブロックのPUのための動きベクトル(たとえば、時間的動きベクトルまたは視差動きベクトル)を計算する。参照ピクチャは、第1の参照ピクチャリスト(リスト0)または第2の参照ピクチャリスト(リスト1)から選択され得、それらの参照ピクチャリストの各々は、参照フレームメモリ64に記憶された1つまたは複数の参照ピクチャを識別する。動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56と動き補償ユニット44とに送る。
[0102]動き補償ユニット44によって実行される動き補償は、同じく、時間的動きベクトルまたは視差動きベクトルであり得る、動き推定ユニット42によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成することに関与し得る。この場合も、いくつかの例では、動き推定ユニット42と動き補償ユニット44とは機能的に統合され得る。現在のビデオブロックのPUについての動きベクトルを受信すると、動き補償ユニット44は、動きベクトルが参照ピクチャリストのうちの1つにおいて指す予測ブロックの位置を特定し得る。加算器50は、以下で説明するように、コーディングされている現在のビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって、残差ビデオブロックを形成する。
[0103]概して、動き推定ユニット42はルーマ成分に対して動き推定を実行し、動き補償ユニット44は、クロマ成分とルーマ成分の両方のためにルーマ成分に基づいて計算された動きベクトルを使用する。動き推定ユニット42および動き補償ユニット44は、深度マップをコーディングするためにルーマ成分から動きベクトル再使用するか、または深度マップのための動きベクトルを独立して計算するように構成され得る。したがって、場合によっては、動き推定42および動き補償ユニット44は、ルーマ成分と同様の方法で、またはクロマ成分と同様の方法で深度マップを予測するように構成され得る。モード選択ユニット40はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ30が使用するためのビデオブロックとビデオスライスとに関連するシンタックス要素を生成し得る。
[0104]イントラ予測ユニット46は、上記で説明したように、動き推定ユニット42および動き補償ユニット44によって実行されるインター予測(たとえば、時間的インター予測および/またはビュー間予測)の代替として、現在のブロックをイントラ予測し得る。特に、イントラ予測ユニット46は、現在のブロックを符号化するために使用すべきイントラ予測モードを決定し得る。いくつかの例では、イントラ予測ユニット46は、たとえば、別個の符号化パス中に、様々なイントラ予測モードを使用して現在のブロックを符号化し得、イントラ予測ユニット46(または、いくつかの例では、モード選択ユニット40)は、テストされたモードから使用するのに適切なイントラ予測モードを選択し得る。
[0105]たとえば、イントラ予測ユニット46は、様々なテストされたイントラ予測モードのためのレートひずみ分析を使用してレートひずみ値を計算し、テストされたモードの中で最良のレートひずみ特性を有するイントラ予測モードを選択し得る。レートひずみ分析は、概して、符号化ブロックと、符号化ブロックを生成するために符号化された元の符号化されていないブロックとの間のひずみ(または誤差)の量、ならびに符号化ブロックを生成するために使用されるビットレート(すなわち、ビット数)を決定する。イントラ予測ユニット46は、どのイントラ予測モードがブロックについて最良のレートひずみ値を呈するかを決定するために、様々な符号化ブロックのひずみおよびレートから比を計算し得る。
[0106]ブロックのイントラ予測モードを選択した後に、イントラ予測ユニット46は、エントロピーコーディングユニット56にブロックのための選択されたイントラ予測モードを示す情報を与え得る。エントロピーコーディングユニット56は、選択されたイントラ予測モードを示す情報を符号化し得る。ビデオエンコーダ20は、送信ビットストリーム中に、複数のイントラ予測モードインデックステーブルおよび複数の変更されたイントラ予測モードインデックステーブル(コードワードマッピングテーブルとも呼ばれる)と、様々なブロックの符号化コンテキストの定義と、コンテキストの各々について使用すべき、最確イントラ予測モード、イントラ予測モードインデックステーブル、および変更されたイントラ予測モードインデックステーブルの指示とを含み得る構成データを含み得る。
[0107]さらに、上記のように、モード選択ユニット40は、非ベースビューの特定のブロックをコーディングするためにビュー合成予測を利用すべきかどうかを決定し得る。モード選択ユニット40は、ビュー合成予測がビットストリームのために、またはマルチビュービットストリームの特定の動作点のために使用可能であるかどうかを示す構成データを受信し得る。たとえば、ユーザは、ビットストリームがビュー合成予測を実行する能力がないデバイスに適合すべきであることを示す構成データを与えられていることがあり、その場合、モード選択ユニット40は、全ビットストリームのためにビュー合成予測を使用不能にし得る。代替的に、構成データは、ビュー合成予測が使用不能である、動作点を形成するビューのサブセットを示し得、その場合、モード選択ユニット40は、サブセット中のビューの各々のためにビュー合成予測を使用不能にするが、サブセット中に含まれないビットストリームの他のビューのためにビュー合成予測をテストし得る。
[0108]概して、特定の非ベースビューに対してビュー合成予測が許可されると仮定すると、モード選択ユニット40は、ビュー合成予測が、前にコーディングされた(非合成)ビューに対して他のコーディングモード、たとえば、時間的インター予測、イントラ予測、および/またはビュー間予測よりも良いパフォーマンスをもたらすかどうかを決定するために非ベースビューのピクチャのブロックのためのビュー合成予測をテストし得る。モード選択ユニット40は、レートひずみ最適化(RDO:rate-distortion optimization)を使用して、および/またはBjontegaardデルタレート(BDレート)を使用して様々なコーディングモードのパフォーマンスをテストし得る。概して、レートひずみ最適化は、モードまたはモードの組合せによってもたらされるひずみの量に対して、特定のモードまたはモードの組合せを使用してビデオデータのセットをコーディングするために必要なビット数の量(measure)である。モード選択ユニット40は、これらの量(measure)によって示される最良のパフォーマンスをもたらすモードまたはモードの組合せを選択し得る。
[0109]さらに、モード選択ユニット40は、ビュー合成予測が最良のパフォーマンスをもたらすスライス、ピクチャ、シーケンス、または他のコード化ユニット(たとえば、タイルまたは波面)中のブロックの数を決定し、ブロックのこの数がビュー合成予測を使用することの処理時間を正当化するのに十分に高いかどうかを決定し得る。上記のように、ビデオデコーダによってビューを合成することは、かなり大量の処理リソースを必要とし得、したがって、ビュー合成予測が使用されるべきコード化ユニットに十分に多くの数のブロックがない場合、モード選択ユニット40は、ビュー合成予測の他に特定のブロックのための異なるコーディングモードを選択し得る。
[0110]モード選択ユニット40は、ビュー合成予測が、コード化ユニット(たとえば、シーケンス、ピクチャ、スライス、タイル、波面(wavefront)、または他の同様のコード化ユニット)のために階層的に使用可能であるべきかどうかを決定し得る。たとえば、ビュー合成予測がスライス、タイル、または波面のうちの1つのために使用可能であるべきである場合、モード選択ユニット40は、たとえば、表3〜表5のいずれかまたはすべてのシンタックス(および/または、たとえば、タイルヘッダまたは波面ヘッダ中のタイルまたは波面のための同様のシンタックス)を使用して、ビュー合成予測がスライス、タイル、または波面を含むピクチャのために使用可能であることを示し得る。追加または代替として、ビュー合成予測が、ピクチャ、スライス、タイル、または波面のうちの1つのために使用可能であるべきである場合、モード選択ユニット40は、たとえば、表1および表2のいずれかのシンタックスを使用して、ビュー合成予測がピクチャ、スライス、タイル、または波面を含む一連のピクチャのために使用可能であることを示し得る。モード選択ユニット40は、エントロピーコーディングユニット56に適切なシンタックスデータを与え得、エントロピーコーディングユニット56は、それに応じて、表1〜表5のいずれかまたはすべてのデータ構造をコーディングし得る。
[0111]ビュー合成ユニット66は、ビュー間予測のためのビューを合成するユニットを表す。モード選択ユニット40は、ビュー合成予測(VSP:view synthesis prediction)が(図2中で「VSP使用可能情報」と標示された)特定のピクチャまたはビューのために使用可能であるかどうかを示す情報を与え得る。ビュー合成予測が使用可能であるとき、ビュー合成ユニット66は、参照フレームメモリ64に記憶されたテクスチャおよび深度情報を使用して合成ビューのためのピクチャを合成し得る。
[0112]ビュー合成ユニット66は、別のビューを合成するために1つまたは複数の参照ビューを使用し得る。いくつかの例では、ビュー合成ユニット66は、合成されるべきビューのための水平ロケーションを決定し、前にコーディングされたビューのための水平ロケーションを決定し、次いで、前にコーディングされたビューの水平ロケーションに基づいて参照ビューを選択し得る。たとえば、ビュー合成ユニット66は、合成されるべきビューの水平ロケーションの左側に最も近い水平ロケーションを有する第1の参照ビューと、合成されるべきビューの水平ロケーションの右側に最も近い水平ロケーションを有する第2の参照ビューとを選択し得る。
[0113]ビュー合成ユニット66は、view_idsおよび/または水平オフセット情報を使用して参照ビューを識別し得る。ビュー合成予測のための参照ビューを識別するためにview_id値が使用される例では、第1の参照ビューと第2の参照ビューの両方が識別され得る場合、ビュー合成ユニット66は、2つの参照ビューが可能にされれば、これらの2つの参照ビューからビュー合成参照ピクチャを合成し得る。そうでない場合、ビュー合成ユニット66は単に、1つの参照ビューからビュー合成参照ピクチャを合成し得る。1つの参照ビューしか可能にされず、第1および第2の参照ビューが両方とも識別される場合、より近いview_idをもつ1つが選定され得る。両方の参照ビューが同じ距離のview_idを有する場合、ビュー合成ユニット66は、より小さい(またはより大きい)view_idをもつ参照ビューを選択するように構成され得る。いくつかの例では、ビュー合成予測が使用可能であるものとして示されると仮定すると、より小さいview_idが選定されるべきであるのか、またはより大きいview_idが選定されるべきであるのかを示すシンタックス情報が、たとえば、SPSまたはVPS中に与えられ得る。
[0114]参照ビューを識別するために水平変換情報が使用される例では、第1の参照ビューと第2の参照ビューの両方が識別され得る場合、ビュー合成ユニット66は、2つの参照ビューが可能にされれば、これらの2つの参照ビューからビュー合成参照ピクチャを合成し得る。そうでない場合、ビュー合成ユニット66は単に、1つの参照ビューからビュー合成参照ピクチャを合成し得る。1つの参照ビューしか可能にされず、第1および第2の参照ビューが両方とも識別される場合、より近い水平ロケーションをもつ1つが選定され得る。両方の参照ビューが現在のビューまで同じ距離を有する場合、ビュー合成ユニット66は左側の(または右側の)1つを選択するように構成され得る。いくつかの例では、ビュー合成予測が使用可能であるものとして示されると仮定すると、左の水平ロケーションが選定されるべきであるのか、または右の水平ロケーションが選定されるべきであるのかを示すシンタックス情報が、たとえば、SPSまたはVPS中に与えられ得る。
[0115]概して、ピクチャを合成するために、ビュー合成ユニット66は、1つまたは複数の前にコーディングされたビューのテクスチャおよび深度情報を使用し得る。ビュー合成ユニット66は、テクスチャピクチャの対応する(たとえば、実質的にコロケートされる)深度情報と対応する深度マップとに基づいてテクスチャ情報のための水平視差を計算し得る。概して、ディスプレイの深度に(たとえば、収束の平面に)出現すべき物体は、0の視差を有し得る。すなわち、この物体を表すピクセルは、参照ビューの場合のように合成ビュー中で実質的に同じ水平位置を有し得る。物体をスクリーンの前に表示すべき場合、「左眼」ピクチャ中で、物体のためのピクセルが「右眼」ピクチャ中の対応するピクセルの右側に配置されるように正の視差が割り当てられ得る。代替として、物体をスクリーンの背後に表示すべき場合、「左眼」ピクチャ中で、物体のためのピクセルが「右眼」ピクチャ中の対応するピクセルの左側に配置されるように負の視差が割り当てられ得る。相対的水平シフトは、達成されるべき深度の量、相対的水平オフセット、収束平面までの距離、現実世界距離、カメラパラメータなどの関数として決定され得る。
[0116]このようにして、ビュー合成ユニット66は、参照ピクチャとして使用されるべきビューのピクチャを合成し得る。ビュー合成ユニット66は、テクスチャ画像および/または深度マップのいずれかまたは両方を合成するために同様のプロセスを使用し得る。したがって、ビデオエンコーダ20は、合成ビューコンポーネントに対してテクスチャ画像および/または深度マップ、たとえば、合成テクスチャ画像または合成深度マップをコーディングし得る。ビュー合成ユニット66は、参照フレームメモリ64中に合成ビューコンポーネントについてのデータを記憶し得る。このようにして、モード選択ユニット40と、動き推定ユニット42と、動き補償ユニット44とは、合成ビューコンポーネントが従来の参照ピクチャであるかのように合成ビューコンポーネントを扱い得る。
[0117]ビデオエンコーダ20は、コーディングされている元のビデオブロックから、モード選択ユニット40からの予測データを減算することによって残差ビデオブロックを形成する。加算器50は、この減算演算を実行する1つまたは複数の構成要素を表す。変換処理ユニット52は、離散コサイン変換(DCT)または概念的に同様の変換などの変換を残差ブロックに適用し、残差変換係数値を備えるビデオブロックを生成する。変換処理ユニット52は、DCTと概念的に同様である他の変換を実行し得る。ウェーブレット変換、整数変換、サブバンド変換または他のタイプの変換も使用され得る。
[0118]いずれの場合も、変換処理ユニット52は、変換を残差ブロックに適用し、残差変換係数のブロックを生成する。変換は、残差情報をピクセル値領域から周波数領域などの変換領域に変換し得る。変換処理ユニット52は、得られた変換係数を量子化ユニット54に送り得る。量子化ユニット54は、ビットレートをさらに低減するために変換係数を量子化する。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって変更され得る。いくつかの例では、量子化ユニット54は、次いで、量子化変換係数を含む行列の走査を実行し得る。代替的に、エントロピー符号化ユニット56が走査を実行し得る。
[0119]量子化の後に、エントロピーコーディングユニット56は量子化変換係数をエントロピーコーディングする。たとえば、エントロピーコーディングユニット56は、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔区分エントロピー(PIPE)コーディングまたは別のエントロピーコーディング技法を実行し得る。コンテキストベースエントロピーコーディングの場合、コンテキストは隣接ブロックに基づき得る。エントロピーコーディングユニット56によるエントロピーコーディングの後に、符号化ビットストリームは、別のデバイス(たとえば、ビデオデコーダ30)に送信されるか、あるいは後で送信するかまたは取り出すためにアーカイブされ得る。
[0120]逆量子化ユニット58および逆変換ユニット60は、それぞれ逆量子化および逆変換を適用して、たとえば参照ブロックとして後で使用するために、ピクセル領域中で残差ブロックを再構成する。動き補償ユニット44は、残差ブロックを参照フレームメモリ64のフレームのうちの1つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット44はまた、再構成された残差ブロックに1つまたは複数の補間フィルタを適用して、動き推定において使用するためのサブ整数ピクセル値を計算し得る。加算器62は、再構成された残差ブロックを、動き補償ユニット44によって生成された動き補償予測ブロックに加算して、参照フレームメモリ64に記憶するための再構成されたビデオブロックを生成する。再構成されたビデオブロックは、後続のビデオフレーム中のブロックをインターコーディングするために動き推定ユニット42および動き補償ユニット44によって参照ブロックとして使用され得る。
[0121]このようにして、図2のビデオエンコーダ20は、ビュー合成予測がビデオデータのために使用可能であるかどうかを示す情報をコーディングするように構成されたビデオエンコーダの一例を表すものである。ビュー合成予測がビデオデータのために使用可能であることを情報が示すとき、ビデオエンコーダ20は、ビデオデータを使用してビュー合成ピクチャを生成し、ビュー合成ピクチャに対して現在のピクチャの少なくとも一部分をコーディングし得る。現在のピクチャの少なくとも一部分は、たとえば、ブロック(たとえば、PU、CU、マクロブロック、またはマクロブロックのパーティション)、スライス、タイル、波面、または現在のピクチャの全体を備え得る。
[0122]図3は、ビュー合成予測に関係する情報をコーディングするための技法を実装し得るビデオデコーダ30の一例を示すブロック図である。図3の例では、ビデオデコーダ30は、エントロピー復号ユニット70と、動き補償ユニット72と、イントラ予測ユニット74と、逆量子化ユニット76と、逆変換ユニット78と、参照フレームメモリ82と、加算器80とを含む。ビデオデコーダ30は、いくつかの例では、ビデオエンコーダ20(図2)に関して説明した符号化パスとは概して逆の復号パスを実行し得る。動き補償ユニット72は、エントロピー復号ユニット70から受信された動きベクトルに基づいて予測データを生成し得、イントラ予測ユニット74は、エントロピー復号ユニット70から受信されたイントラ予測モードインジケータに基づいて予測データを生成し得る。
[0123]復号プロセス中に、ビデオデコーダ30は、ビデオエンコーダ20から、符号化ビデオスライスのビデオブロックと、関連するシンタックス要素とを表す符号化ビデオビットストリームを受信する。ビデオデコーダ30のエントロピー復号ユニット70は、量子化係数、動きベクトルまたはイントラ予測モードインジケータ、および他のシンタックス要素を生成するためにビットストリームをエントロピー復号する。エントロピー復号ユニット70は、動きベクトルと他の予測シンタックス要素とを動き補償ユニット72に転送する。ビデオデコーダ30は、ビデオスライスレベルおよび/またはビデオブロックレベルでシンタックス要素を受信し得る。
[0124]本開示の技法によれば、ビデオデコーダ30は、ビュー合成予測が一連のピクチャ、個別のピクチャ、スライス、タイル、または波面のいずれかまたはすべてのために使用可能であるかどうかを示すシンタックス情報を受信し得る。いくつかの例では、ビュー合成予測がより高次のコード化ユニット(たとえば、一連のピクチャ)のために使用不能であることをシンタックス情報が示すとき、ビデオデコーダ30は、ビュー合成予測がより低次のコード化ユニット(たとえば、ピクチャのシーケンス中のピクチャの各々)のために使用不能であると推論し得る。したがって、ビュー合成予測が使用可能でないことをより高次のコード化ユニットについてのシンタックス情報が示すとき、ビデオデコーダ30は、ビュー合成予測がより低次のコード化ユニットのために使用可能であるかどうかを示すシンタックス情報を受信する必要はない。
[0125]シンタックス情報は、上記で説明した表1〜表5のシンタックス情報に対応し得る。たとえば、ビデオデコーダ30は、ビュー合成予測が一連のピクチャのために使用可能であるかどうかを決定するために、表1および2のいずれかに対応するデータ構造(たとえば、SPS)を復号するように構成され得る。ビュー合成予測が一連のピクチャのために使用可能であるとき、ビデオデコーダ30は、ビュー合成予測がピクチャのシーケンス中の特定のピクチャのために使用可能であるかどうかを決定するために、表3に対応するデータ構造(たとえば、PPS)を復号するように構成され得る。追加または代替として、ビュー合成予測が一連のピクチャのために(および、いくつかの例では、シーケンス中の特定のピクチャのために)使用可能であるとき、ビデオデコーダ30は、ビュー合成予測が個別のスライス(または、いくつかの例では、タイルまたは波面のための同様のデータ構造)のために使用可能であるかどうかを決定するために、表4に対応するデータ構造(たとえば、APS)を復号するように構成され得る。追加または代替として、ビュー合成予測が一連のピクチャのために(および、いくつかの例では、シーケンス中の特定のピクチャおよび/またはスライスのために)使用可能であるとき、ビデオデコーダ30は、ビュー合成予測が個別のスライス(または、いくつかの例では、タイルまたは波面のための同様のデータ構造)のために使用可能であるかどうかを決定するために、表5に対応するデータ構造(たとえば、スライスヘッダ)を復号するように構成され得る。
[0126]エントロピー復号ユニット70は、シンタックス情報を復号し、(図3中で「VPS使用可能情報」で表される)ビュー合成予測が使用可能であるかどうかを示す情報をビュー合成ユニット84に送り得る。ビュー合成ユニット84は、ビュー合成ユニット66(図2)の方法と実質的に同様の方法で動作するように構成され得る。たとえば、ビュー合成予測が使用可能であるとき、ビュー合成ユニット84は、ビュー合成を使用して参照ピクチャ(すなわち、ビュー合成参照ピクチャ)を生成するために、参照フレームメモリ82に記憶された、前に復号されたピクチャのテクスチャおよび深度情報を使用し得る。ビュー合成ユニット84は、参照フレームメモリ82中に合成ピクチャを記憶し得る。ビュー合成予測が使用可能でないとき、ビュー合成ユニット84は、ピクチャを生成する必要はなく、それにより、処理リソースおよび/またはバッテリー電力を節約し得る。
[0127]ビュー合成ユニット84は、別のビューを合成するために1つまたは複数の参照ビューを使用し得る。いくつかの例では、ビュー合成ユニット84は、合成されるべきビューのための水平ロケーションを決定し、前にコーディングされたビューのための水平ロケーションを決定し、次いで、前にコーディングされたビューの水平ロケーションに基づいて参照ビューを選択し得る。たとえば、ビュー合成ユニット84は、合成されるべきビューの水平ロケーションの左側に最も近い水平ロケーションを有する第1の参照ビューと、合成されるべきビューの水平ロケーションの右側に最も近い水平ロケーションを有する第2の参照ビューとを選択し得る。
[0128]ビュー合成ユニット84は、view_idsおよび/または水平オフセット情報を使用して参照ビューを識別し得る。ビュー合成予測のための参照ビューを識別するためにview_id値が使用される例では、第1の参照ビューと第2の参照ビューの両方が識別され得る場合、ビュー合成ユニット84は、2つの参照ビューが可能にされれば、これらの2つの参照ビューからビュー合成参照ピクチャを合成し得る。そうでない場合、ビュー合成ユニット84は単に、1つの参照ビューからビュー合成参照ピクチャを合成し得る。1つの参照ビューしか可能にされず、第1および第2の参照ビューが両方とも識別される場合、より近いview_idをもつ1つが選定され得る。両方の参照ビューが同じ距離のview_idを有する場合、ビュー合成ユニット84は、より小さい(またはより大きい)view_idをもつ参照ビューを選択するように構成され得る。いくつかの例では、エントロピー復号ユニット70は、より小さいview_idが選定されるべきであるのか、またはより大きいview_idが選定されるべきであるのかを示すシンタックス情報を復号し、それをビュー合成ユニット84に与え得る。ビュー合成予測が使用可能であるものとして示されると仮定すると、エントロピー復号ユニット70は、たとえば、SPSまたはVPSからそのようなシンタックス情報を抽出し得る。
[0129]参照ビューを識別するために水平変換情報が使用される例では、第1の参照ビューと第2の参照ビューの両方が識別され得る場合、ビュー合成ユニット84は、2つの参照ビューが可能にされれば、これらの2つの参照ビューからビュー合成参照ピクチャを合成し得る。そうでない場合、ビュー合成ユニット84は単に、1つの参照ビューからビュー合成参照ピクチャを合成し得る。1つの参照ビューしか可能にされず、第1および第2の参照ビューが両方とも識別される場合、より近い水平ロケーションをもつ1つが選定され得る。両方の参照ビューが現在のビューまで同じ距離を有する場合、ビュー合成ユニット84は左側の(または右側の)1つを選択するように構成され得る。いくつかの例では、エントロピー復号ユニット70は、左側の水平ロケーションが選定されるべきであるのか、または右側の水平ロケーションが選定されるべきであるのかを示すシンタックス情報を復号し、それをビュー合成ユニット84に与え得る。ビュー合成予測が使用可能であるものとして示されると仮定すると、エントロピー復号ユニット70は、たとえば、SPSまたはVPSからそのようなシンタックス情報を抽出し得る。
[0130]ビデオスライスがイントラコード化(I)スライスとしてコーディングされるとき、イントラ予測ユニット74は、シグナリングされたイントラ予測モードと、現在のフレームまたはピクチャの、前に復号されたブロックからのデータとに基づいて、現在のビデオスライスのビデオブロックのための予測データを生成し得る。ビデオフレームがインターコード化(たとえば、B、P、またはGPB)スライスとしてコーディングされるとき、動き補償ユニット72は、エントロピー復号ユニット70から受信された動きベクトルと他のシンタックス要素とに基づいて、現在のビデオスライスのビデオブロックのための予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの1つ内の参照ピクチャのうちの1つから生成され得る。ビデオデコーダ30は、参照ピクチャメモリ82に記憶された参照ピクチャに基づいて、デフォルトの構成技法を使用して、参照フレームリスト、すなわち、リスト0およびリスト1を構成し得る。
[0131]動き補償ユニット72は、動きベクトルと他のシンタックス要素とをパースすることによって現在のビデオスライスのビデオブロックのための予測情報を決定し、その予測情報を使用して、復号されている現在のビデオブロックのための予測ブロックを生成する。たとえば、動き補償ユニット72は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(たとえば、イントラ予測、時間的インター予測、またはビュー間予測)と、インター予測スライスタイプ(たとえば、Bスライス、Pスライス、またはGPBスライス)と、スライスの参照ピクチャリストのうちの1つまたは複数についての構成情報と、スライスの各インター符号化ビデオブロックのための動きベクトル(たとえば、視差動きベクトルおよび/または時間的動きベクトル)と、スライスの各インターコード化ビデオブロックのためのインター予測ステータスと、現在のビデオスライス中のビデオブロックを復号するための他の情報とを決定するために、受信されたシンタックス要素のいくつかを使用する。
[0132]動き補償ユニット72はまた、補間フィルタに基づいて補間を実行し得る。動き補償ユニット72は、ビデオブロックの符号化中にビデオエンコーダ20によって使用された補間フィルタを使用して、参照ブロックのサブ整数ピクセルの補間値を計算し得る。この場合、動き補償ユニット72は、受信されたシンタックス要素からビデオエンコーダ20によって使用された補間フィルタを決定し、その補間フィルタを使用して予測ブロックを生成し得る。
[0133]本開示の技法によれば、動き補償ユニット72は、視差動きベクトルを使用してビュー間予測を実行し得る。ビュー合成予測が使用可能であると仮定すると、そのようなビュー間予測は、別のビューの前に復号されたピクチャに対するものであるか、またはビュー合成を使用して生成される参照ピクチャに対するものであり得る。したがって、動き補償ユニット72は、動き/視差補正ユニット72と呼ばれることがある。
[0134]逆量子化ユニット76は、ビットストリーム中に与えられ、エントロピー復号ユニット70によって復号された、量子化変換係数を逆量子化(inverse quantize)、すなわち、逆量子化(de-quantize)する。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するための、ビデオスライス中のビデオブロックごとにビデオエンコーダ30によって計算される量子化パラメータQPYの使用を含み得る。
[0135]逆変換ユニット78は、ピクセル領域において残差ブロックを生成するために、逆変換、たとえば、逆DCT、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用する。
[0136]動き補償ユニット72またはイントラ予測ユニット74が、動きベクトルと他のシンタックス要素とに基づいて現在のビデオブロックのための予測ブロックを生成した後、ビデオデコーダ30は、逆変換ユニット78からの残差ブロックを対応する予測ブロックと加算することによって、復号されたビデオブロックを形成する。加算器90は、この加算演算を実行する1つまたは複数の構成要素を表す。所望される場合、ブロッキネスアーティファクトを除去するために、復号されたブロックをフィルタ処理するためにデブロッキングフィルタも適用され得る。ピクセル遷移を平滑化するために、または場合によってはビデオ品質を改善するために、他のループフィルタも(コーディングループ中またはコーディングループ後のいずれかで)使用され得る。所与のフレームまたはピクチャ中の復号されたビデオブロックは、次いで、その後の動き補償のために使用される参照ピクチャを記憶する参照ピクチャメモリ82に記憶される。参照フレームメモリ82はまた、図1のディスプレイデバイス32などのディスプレイデバイス上で後で表示するために、復号されたビデオを記憶する。
[0137]このようにして、図3のビデオデコーダ30は、ビュー合成予測がビデオデータのために使用可能であるかどうかを示す情報をコーディングするように構成されたビデオデコーダの一例を表すものである。ビュー合成予測がビデオデータのために使用可能であることを情報が示すとき、ビデオデコーダ30は、ビデオデータを使用してビュー合成ピクチャを生成し、ビュー合成ピクチャに対して現在のピクチャの少なくとも一部分をコーディングし得る。現在のピクチャの少なくとも一部分は、たとえば、ブロック(たとえば、PU、CU、マクロブロック、またはマクロブロックのパーティション)、スライス、タイル、波面、または現在のピクチャの全体を備え得る。
[0138]図4は、例示的なMVC予測パターンを示す概念図である。マルチビュービデオコーディング(MVC:multi-view video coding)は、ITU−T H.264/AVCの拡張である。同様の技法はHEVCに適用され得る。図4の例では、(ビューID「S0」〜「S7」を有する)8つのビューが示され、各ビューについて12個の時間ロケーション(「T0」〜「T11」)が示されている。すなわち、図4中の各行はビューに対応し、各列は時間ロケーションを示す。
[0139]MVCがH.264/AVCデコーダによって復号可能である、いわゆるベースビューを有し、また、ステレオビューペアがMVCによってサポートされ得るが、MVCの1つの利点は、MVCが、3Dビデオ入力として3つ以上のビューを使用し、複数のビューによって表されるこの3Dビデオを復号する例をサポートすることができることである。MVCデコーダを有するクライアントのレンダラは、複数のビューを用いて3Dビデオコンテンツを予想し得る。
[0140]典型的なMVC復号順序構成は、時間優先コーディングと呼ばれる。アクセスユニットは、1つの出力時間インスタンスのためのすべてのビューのコード化ピクチャを含み得る。たとえば、時間T0のピクチャの各々は共通アクセスユニット中に含まれ得、時間T1のピクチャの各々は第2の共通アクセスユニット中に含まれ得、以下同様である。復号順序は、必ずしも出力または表示順序と同一であるとは限らない。
[0141]図4中のフレームは、対応するフレームがイントラコード化される(すなわち、Iフレームである)のか、一方向に(すなわち、Pフレームとして)インターコード化されるのか、複数の方向に(すなわち、Bフレームとして)インターコード化されるのかを指定する、文字を含む影付きブロックを使用して、図4中の各行と各列との交差部において示されている。bフレームとして指定されたフレーム(すなわち、小文字の「b」をもつ)はまた、複数の方向にインターコード化され得、概して、ビューまたは時間的次元におけるコーディング階層においてBフレーム(すなわち、大文字の「B」をもつ)よりも低いフレームを指し得る。概して、予測は矢印によって示され、ここで矢印の終点のフレームは、予測参照のために矢印の始点のオブジェクトを使用する。たとえば、時間ロケーションT0におけるビューS2のPフレームは、時間ロケーションT0におけるビューS0のIフレームから予測される。
[0142]シングルビュービデオ符号化の場合と同様に、マルチビュービデオコーディングビデオシーケンスのフレームは、異なる時間ロケーションにおけるフレームに関して予測符号化され得る。たとえば、時間ロケーションT1におけるビューS0のbフレームは、時間ロケーションT0におけるビューS0のIフレームからそのbフレームに向けられた矢印を有し、その矢印は、bフレームがIフレームからインター予測されることを示す。しかしながら、さらに、マルチビュービデオ符号化のコンテキストにおいて、フレームは、ビュー間予測され得る。すなわち、ビューコンポーネントは、参照のために他のビュー中のビューコンポーネントを使用することができる。MVCでは、たとえば、別のビュー中のビューコンポーネントがインター予測参照であるかのように、ビュー間予測が実現される。潜在的なビュー間参照は、シーケンスパラメータセット(SPS)MVC拡張においてシグナリングされ得、インター予測またはビュー間予測参照のフレキシブルな順序付けを可能にする参照ピクチャリスト構成プロセスによって変更され得る。
[0143]H.264/AVCのMVC拡張では、同じアクセスユニット中のピクチャ(すなわち、同じ時間インスタンスを有するピクチャ)の間でビュー間予測が許容にされる。非ベースビューのうちの1つ中のピクチャをコーディングするとき、ピクチャが異なるビュー中にあるが同じ時間インスタンスをもつ場合、そのピクチャは参照ピクチャリストに追加され得る。ビュー間予測参照ピクチャは、任意のインター予測参照ピクチャと同様に、参照ピクチャリストの任意の位置に置かれ得る。
[0144]H.264/AVCのMVC拡張では、一例として、ビュー間予測は視差動き補償によってサポートされ、視差動き補償は、H.264/AVC動き補償のシンタックスを使用するが、異なるビュー中のピクチャを参照ピクチャとして使用することが可能になる。MVCによって2つのビューのコーディングがサポートされ得、それは、一般に、立体視ビューと呼ばれる。MVCの利点のうちの1つは、MVCエンコーダが3Dビデオ入力として3つ以上のビューをとらえることができ、また、MVCデコーダがそのようなマルチビュー表現を復号することができることである。したがって、MVCデコーダをもつレンダリングデバイスは、3つ以上のビューをもつ3Dビデオコンテンツを予想し得る。
[0145]以下の表6は、概して、本明細書では「SPS MVC拡張」と呼ぶ、シーケンスパラメータセットのためのITU−T H.264/AVC MVC拡張を表す。
[0146]表6のSPS MVC拡張の例では、ビューごとに、参照ピクチャリスト0と参照ピクチャリスト1とを形成するために使用され得るビューの数がシグナリングされ得る。SPS MVC拡張でシグナリングされるアンカーピクチャについての予測関係は、同じビューの(SPS MVC拡張でシグナリングされる)非アンカーピクチャについての予測関係とは異なり得る。
[0147]ITU−T H.264/AVCのMVC拡張の例では、NALユニットタイプがプレフィックスNALユニットまたはMVC VCL NALユニットである場合、MVC NALユニットは、(NALユニットタイプとnal_ref_idcシンタックス要素とを含む)1バイトNALユニットヘッダと3バイトMVC NALユニットヘッダ拡張とを含んでいる。NALユニットヘッダ拡張は、MVC拡張の例では、NALユニットがclosed−GOPランダムアクセスポイントとして使用され得るIDRアクセスユニットに属するかどうかを示すためのnor_idr_flagと、単純な、1次元適応のために使用され得るpriority_idと、現在のビューのビュー識別子を示すためのview_idと、現在のNALユニットの時間的なレベルを示すためのtemporal_idと、NALユニットがopen−GOPランダムアクセスポイントとして使用され得るアンカーピクチャに属するかどうかを示すためのanchor_pic_flagと、ビューコンポーネントが他のビュー中のNALユニットのためのビュー間予測のために使用されるかどうかを示すinter_view_flagとのシンタックス要素を含んでいる。MVCにおけるプレフィックスNALユニットは、NALユニットヘッダと、それのMVC NALユニットヘッダ拡張とのみを含んでいる。
[0148]図4のS0〜S7は、コード化ビュー、すなわち、コード化情報がビットストリーム中に与えられるビューの例を表すものである。本開示の技法によれば、追加のビューがS0からS7の間に合成され得る。たとえば、ビューS0とS1との間にビューが合成され得る。そのようなビューのピクチャを合成するために、ビューS0およびS2中のピクチャのテクスチャおよび深度情報が使用され得る。たとえば、時間T1における参照ピクチャを合成するために、ビューS0および/またはS2からの時間T1におけるピクチャからのテクスチャおよび深度情報が使用され得る。ビデオエンコーダ20またはビデオデコーダ30などのビデオコーダは、別のピクチャ、たとえば、時間T1におけるビューS1のピクチャをコーディングするための参照として使用されるべき合成ビューのそのようなピクチャについてのピクセルデータを補間し得る。
[0149]本開示の技法によれば、ビュー合成予測がビューS0〜S7についてのデータを含むビットストリームのために、またはそのようなビットストリームの動作点のために使用可能であるかどうかを示すシンタックス情報が与えられ得る。たとえば、動作点は、ビューS0、S1、およびS2を含み得る。この動作点についてのシンタックス情報は、ビュー合成予測が使用可能でないことを示し得る。したがって、この動作点をコーディングするとき、ビデオコーディングデバイスは、合成ビューについてのデータを生成する必要はなく、それにより、処理リソースとバッテリー電力とを節約し得る。しかしながら、別の動作点、たとえば、ビューS0、S2、S3、およびS4を含む動作点についてのシンタックス情報は、ビュー合成予測が使用可能であることを示し得る。この例では、ビューは、ビューS2とS4との間に合成され、ビューS3のピクチャをコーディングするためにビュー合成予測中に参照として使用され得る。
[0150]図5は、ビュー合成予測に関係する情報をコーディングするための例示的な方法を示すフローチャートである。図5の方法についてビデオエンコーダ20(図1および図2)に関して説明する。しかしながら、他のビデオコーディングデバイスが、同様の方法を実行するように構成され得ることを理解されたい。さらに、本方法におけるいくつかのステップは、異なる順序で、または並行して実行され得る。同様に、様々な例では、いくつかのステップが省略され得、他のステップが追加され得る。
[0151]図5の例では、ビデオエンコーダ20は、ビュー合成予測を使用可能にすべきかどうかを決定する(15)。たとえば、ビデオエンコーダ20は、ビュー合成予測が特定のビットストリームまたはビットストリームの動作点のために使用可能であるべきかどうかを示す構成データを受信し得る。追加または代替として、ビデオエンコーダ20は、許容できるコーディング性能をもたらす予測モードまたは予測モードの組合せを決定するために、ビュー合成予測を含む様々なコーディングモードをテストし得る。ビュー合成予測を使用可能にすることが(たとえば、処理リソースおよびバッテリー電力の増加と比較して)コーディング性能に十分な利得をもたらすとき、ビデオエンコーダ20はビュー合成予測を使用可能にし得る。
[0152]ビデオエンコーダ20はまた、ステップ150からの決定に基づいて、ビュー合成予測が使用可能であるかどうかを示す情報を符号化する(152)。たとえば、ビデオエンコーダ20は、ビュー合成予測が一連のピクチャのために使用可能であるかどうかを示すために、表1および表2のうちの1つに従ってSPSを符号化し得る。ビュー合成予測がシーケンス中の少なくとも1つのピクチャのために使用可能であるとき、ビデオエンコーダ20は、ビュー合成予測がピクチャのシーケンスのために使用可能であることを示すためにSPSを符号化し得る。一方、ビュー合成予測がシーケンス中のピクチャのどれのためにも使用されないとき、ビデオエンコーダ20は、ビュー合成予測がピクチャのシーケンスのために使用可能であることを示すためにSPSを符号化し得る。
[0153]ビュー合成予測が使用可能であることをSPSが示すとき、ビデオエンコーダ20は、さらに、ビュー合成予測が、個別のピクチャ、スライス、タイル、または波面などのより低次のコード化ユニットのために使用可能であるかどうかを示すために、よりきめの細かいデータ構造を符号化し得る。ビデオエンコーダ20は、表3に関して説明したように、ビュー合成予測がピクチャのために使用可能であるかどうかを示すためにPPSを符号化し得る。より詳細には、ビデオエンコーダ20は、上記で決定されたように、ビュー合成予測が使用可能であるかどうかを示すPPSのうちの1つのPPS識別子(PPS id)を指すために、様々なPPSを符号化し、ピクチャ(たとえば、ピクチャヘッダまたはスライスヘッダ)のシンタックス情報をコーディングし得る。同様に、ビデオエンコーダ20は、ビュー合成予測がスライスのために使用可能であるかどうかを示すために、それぞれ表4および表5に関して説明したように、APSおよび/またはスライスヘッダを符号化し得る。
[0154]ビュー合成予測が使用可能でないとき(154の「いいえ」分岐)、ビデオエンコーダ20は、現在のピクチャのブロックのためのコーディングモードを決定する(156)。利用可能なコーディングモードは、(現在のビューが非ベースビューであると仮定すると)イントラ予測、時間的インター予測、およびビュー間予測を含み得る。上記で説明したように、ビデオエンコーダ20は、たとえば、様々なテストされたコーディングモードのRDOパフォーマンスに基づいて、ピクチャまたはスライスの各ブロックのためのコーディングモードを選択し得る。ビデオエンコーダ20は、次いで、それぞれの決定されたモードを使用して現在のピクチャのブロックを符号化する(158)。このようにして、ビュー合成予測が使用可能でないとき、ビデオエンコーダ20は、どのビュー合成ピクチャとも無関係に現在のピクチャのブロックを符号化し得る。
[0155]一方、ビュー合成予測が使用可能であるとき(154の「はい」分岐)、ビデオエンコーダ20は、ビュー合成を実行するための1つまたは複数の参照ビューを決定する(160)。たとえば、上記で説明したように、ビデオエンコーダ20は、view_id値および/または水平変換情報を使用して参照ビューを識別し得る。ビデオエンコーダ20は、次いで、1つまたは複数の参照ビューピクチャに対してビュー合成ピクチャを生成する(162)。ビデオエンコーダ20はまた、参照ビュー識別情報を符号化する(164)。ビデオエンコーダ20は、さらに、ビュー合成ピクチャに対して現在のピクチャの少なくとも一部分を符号化する(166)。特に、ビデオエンコーダ20は、ビュー合成予測モードを含み得る、現在のピクチャの各ブロックのためのコーディングモードを選択し得る。ビデオエンコーダ20が、現在のピクチャのためにビュー合成予測を使用可能にしたので、現在のピクチャの少なくとも一部分(たとえば、スライス、タイル、波面、あるいは1つまたは複数のブロック)はビュー合成参照ピクチャに対して符号化され得る。
[0156]このようにして、図5の方法は、ビュー合成予測がビデオデータのために使用可能であるかどうかを示す情報をコーディングすることと、ビュー合成予測がビデオデータのために使用可能であることを情報が示すとき、ビデオデータを使用してビュー合成ピクチャを生成することと、ビュー合成ピクチャに対して現在のピクチャの少なくとも一部分をコーディングすることとを含む方法の一例を表すものである。上記のように、一方、ビュー合成予測がビデオデータのために使用可能でないことを情報が示すとき、本方法は、どのビュー合成ピクチャとも無関係に、イントラ予測と、時間的インター予測と、ビュー間予測とのうちの少なくとも1つを使用して現在のピクチャをコーディングすることを含み得る。
[0157]図6は、ビュー合成予測に関係する情報をコーディングするための例示的な方法を示すフローチャートである。図6の方法についてビデオデコーダ30(図1および図3)に関して説明する。しかしながら、他のビデオコーディングデバイスが、同様の方法を実行するように構成され得ることを理解されたい。さらに、本方法におけるいくつかのステップは、異なる順序で、または並行して実行され得る。同様に、様々な例では、いくつかのステップが省略され得、他のステップが追加され得る。
[0158]最初に、ビデオデコーダ30は、ビュー合成予測が使用可能であるかどうかを示す情報を復号する(200)。情報は、表1〜表5に関して説明した、情報の階層構成を含み得る。たとえば、ビュー合成予測が一連のピクチャのために使用可能であることをSPSが示す場合、ビデオデコーダ30は、シーケンス中の各ピクチャについて、たとえば、対応するPPSデータ構造を使用してビュー合成予測が使用可能であるかどうかを決定し得る。追加または代替として、ビュー合成予測が一連のピクチャまたはシーケンス中の個別のピクチャのために使用可能である場合、ビデオデコーダ30は、さらに、たとえば、APSおよび/またはスライスヘッダ(またはタイルヘッダまたは波面ヘッダ、または対応するパラメータセットデータ構造)中でシグナリングされたデータを使用してビュー合成予測が個別のスライス(またはタイルまたは波面)のために使用可能であるかどうかを決定し得る。
[0159]ビュー合成予測が使用可能でないことを情報が示すとき(202の「いいえ」分岐)、ビデオデコーダ30は、たとえば、現在のピクチャのブロックのためにシグナリングされたシンタックス情報を使用して、現在のピクチャのブロックのためのコーディングモードを決定する(204)。ビデオデコーダ30は、この場合ビュー合成参照ピクチャを生成する必要はなく、それにより、処理リソースおよび/またはバッテリー電力を節約し得る。ビデオデコーダ30は、次いで、それぞれの決定されたコーディングモード、たとえば、イントラ予測、時間的インター予測、および/またはビュー間予測を使用して現在のピクチャのブロックを復号する(206)。このようにして、ビュー合成予測がビデオデータのために使用可能でないことを情報が示すとき、ビデオデコーダ30は、どのビュー合成ピクチャとも無関係に、イントラ予測と、時間的インター予測と、ビュー間予測とのうちの少なくとも1つを使用して現在のピクチャを復号し得る。
[0160]一方、ビュー合成予測が使用可能であることを情報が示すとき(202の「はい」分岐)、ビデオデコーダ30は、参照ビュー識別情報、たとえば、view_idおよび/または水平オフセット情報を復号する(208)。この識別情報を使用して、ビデオデコーダ30は、ビュー合成のために使用されるべき1つまたは複数の参照ビューを決定する(210)。ビデオデコーダ30は、次いで、1つまたは複数の参照ビューのピクチャに対してビュー合成ピクチャを生成する(212)。ビデオデコーダ30は、さらに、ビュー合成ピクチャに対して少なくとも一部分(たとえば、1つまたは複数のブロック、スライス、タイル、波面、さらには全ピクチャ)を復号する(214)。
[0161]このようにして、図6の方法は、ビュー合成予測がビデオデータのために使用可能であるかどうかを示す情報をコーディングすることと、ビュー合成予測がビデオデータのために使用可能であることを情報が示すとき、ビデオデータを使用してビュー合成ピクチャを生成することと、ビュー合成ピクチャに対して現在のピクチャの少なくとも一部分をコーディングすることとを含む方法の一例を表すものである。上記のように、一方、ビュー合成予測がビデオデータのために使用可能でないことを情報が示すとき、本方法は、どのビュー合成ピクチャとも無関係に、イントラ予測と、時間的インター予測と、ビュー間予測とのうちの少なくとも1つを使用して現在のピクチャをコーディングすることを含み得る。
[0162]例によっては、本明細書で説明した技法のうちいずれかの、いくつかの作用またはイベントは、異なるシーケンスで実行され得、追加、マージ、または完全に除外され得る(たとえば、すべての説明した作用またはイベントが、本技法の実施のために必要であるとは限らない)ことを認識されたい。さらに、いくつかの例では、行為またはイベントは、連続的にではなく、たとえば、マルチスレッド処理、割込み処理、または複数のプロセッサを通して、同時に実行され得る。
[0163]1つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、(1)非一時的である有形コンピュータ可読記憶媒体、あるいは(2)信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実装のための命令、コードおよび/またはデータ構造を取り出すために1つまたは複数のコンピュータあるいは1つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
[0164]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)、およびブルーレイ(登録商標)ディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
[0165]命令は、1つまたは複数のデジタル信号プロセッサ(DSP)などの1つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、あるいは他の等価な集積回路またはディスクリート論理回路によって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明した技法の実装に好適な他の構造のいずれかを指し得る。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のハードウェアおよび/またはソフトウェアモジュール内に与えられ得、あるいは複合コーデックに組み込まれ得る。また、本技法は、1つまたは複数の回路または論理要素中に十分に実装され得る。
[0166]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェアおよび/またはファームウェアとともに、上記で説明した1つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって与えられ得る。
[0167]様々な例について説明した。これらおよび他の例は以下の特許請求の範囲内に入る。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[C1]
ビデオデータをコーディングする方法であって、
ビュー合成予測がビデオデータのために使用可能であるかどうかを示す情報をコーディングすることと、
ビュー合成予測が前記ビデオデータのために使用可能であることを前記情報が示すとき、
前記ビデオデータを使用してビュー合成ピクチャを生成することと、
前記ビュー合成ピクチャに対して現在のピクチャの少なくとも一部分をコーディングすることと、
を備える、方法。
[C2]
前記情報をコーディングすることは、前記現在のピクチャの前記少なくとも一部分に対応するパラメータセットのシンタックス要素をコーディングすることを備える、C1に記載の方法。
[C3]
前記シンタックス要素をコーディングすることは、前記現在のピクチャを含む一連のピクチャに対応するシーケンスパラメータセットのシンタックス要素をコーディングすることを備える、C2に記載の方法。
[C4]
前記シンタックス要素をコーディングすることは、前記現在のピクチャに対応するピクチャパラメータセットと前記現在のピクチャの前記少なくとも一部分を備えるスライスに対応するアクセスユニットレベルパラメータセットとのうちの少なくとも1つのシンタックス要素をコーディングすることを備える、C2に記載の方法。
[C5]
前記アクセスユニットレベルパラメータセットは適応パラメータセットと深度パラメータセットとのうちの1つを備える、C4に記載の方法。
[C6]
前記現在のピクチャの前記少なくとも一部分は現在のスライスを備え、前記情報をコーディングすることは、前記現在のスライスのためのスライスヘッダのシンタックス要素をコーディングすることを備える、C1に記載の方法。
[C7]
ビュー合成予測が使用可能であるかどうかを示す前記情報とは別個に、前記現在のピクチャの前記少なくとも一部分のための選択されたコーディングモードを表す値をコーディングすることをさらに備える、C1に記載の方法。
[C8]
前記ビュー合成ピクチャを生成するために使用するために参照ビューについての識別情報をコーディングすることをさらに備え、前記ビュー合成ピクチャを生成することは、前記参照ビューのピクチャに対して前記ビュー合成ピクチャを生成することを備える、C1に記載の方法。
[C9]
前記識別情報をコーディングすることは、前記参照ビューのためのビュー識別子(view_id)に基づいて値をコーディングすることを備える、C8に記載の方法。
[C10]
前記識別情報をコーディングすることは、前記参照ビューのための水平変換情報に基づいて値をコーディングすることを備える、C8に記載の方法。
[C11]
ビュー合成予測が前記ビデオデータのために使用可能でないことを前記情報が示すとき、どのビュー合成ピクチャも参照することなく、イントラ予測と、時間的インター予測と、ビュー間予測とのうちの少なくとも1つを使用して前記現在のピクチャをコーディングすることをさらに備える、C1に記載の方法。
[C12]
ビュー合成予測が前記ビデオデータのために使用可能でないことを前記情報が示すとき、前記ビデオデータをコーディングする間にビュー合成ピクチャが生成されない、C1に記載の方法。
[C13]
前記現在のピクチャの前記少なくとも一部分をコーディングすることは、前記現在のピクチャの前記少なくとも一部分を復号することを備える、C1に記載の方法。
[C14]
前記現在のピクチャの前記少なくとも一部分をコーディングすることは、前記現在のピクチャの前記少なくとも一部分を符号化することを備える、C1に記載の方法。
[C15]
ビデオデータをコーディングするためのデバイスであって、
ビュー合成予測がビデオデータのために使用可能であるかどうかを示す情報をコーディングすることと、
ビュー合成予測が前記ビデオデータのために使用可能であることを前記情報が示すとき、前記ビデオデータを使用してビュー合成ピクチャを生成することと、前記ビュー合成ピクチャに対して現在のピクチャの少なくとも一部分をコーディングすることと、
を行うように構成されたビデオコーダを備えるデバイス。
[C16]
前記ビデオコーダは、前記現在のピクチャの前記少なくとも一部分に対応するパラメータセットのシンタックス要素をコーディングするように構成された、C15に記載のデバイス。
[C17]
前記ビデオコーダは、前記現在のピクチャを含む一連のピクチャに対応するシーケンスパラメータセットのシンタックス要素をコーディングするように構成された、C16に記載のデバイス。
[C18]
前記ビデオコーダは、前記現在のピクチャに対応するピクチャパラメータセットと前記現在のピクチャの前記少なくとも一部分を備えるスライスに対応するアクセスユニットレベルパラメータセットとのうちの少なくとも1つのシンタックス要素をコーディングするように構成された、C16に記載のデバイス。
[C19]
前記現在のピクチャの前記少なくとも一部分は現在のスライスを備え、
前記ビデオコーダは、前記現在のスライスのためのスライスヘッダのシンタックス要素をコーディングするように構成された、C15に記載のデバイス。
[C20]
前記ビデオコーダは、前記ビュー合成ピクチャを生成するために使用するために参照ビューについての識別情報をコーディングするようにさらに構成され、前記ビデオコーダは、前記参照ビューのピクチャに対して前記ビュー合成ピクチャを生成するように構成された、C15に記載のデバイス。
[C21]
前記ビデオコーダは、前記識別情報として前記参照ビューのためのビュー識別子(view_id)をコーディングするように構成された、C20に記載のデバイス。
[C22]
前記ビデオコーダは、前記識別情報として前記参照ビューのための水平変換情報をコーディングするように構成された、C20に記載のデバイス。
[C23]
ビュー合成予測が前記ビデオデータのために使用可能でないことを前記情報が示すとき、前記ビデオコーダは、どのビュー合成ピクチャも参照することなく、イントラ予測と、時間的インター予測と、ビュー間予測とのうちの少なくとも1つを使用して前記現在のピクチャをコーディングするように構成された、C15に記載のデバイス。
[C24]
前記ビデオコーダはビデオデコーダを備える、C15に記載のデバイス。
[C25]
前記ビデオコーダはビデオエンコーダを備える、C15に記載のデバイス。
[C26]
前記デバイスは、
集積回路と、
マイクロプロセッサと、
前記ビデオコーダを含むワイヤレス通信デバイスと、
のうちの少なくとも1つを備える、C15に記載のデバイス。
[C27]
ビデオデータをコーディングするためのデバイスであって、
ビュー合成予測がビデオデータのために使用可能であるかどうかを示す情報をコーディングする手段と、
ビュー合成予測が前記ビデオデータのために使用可能であることを前記情報が示すとき、前記ビデオデータを使用してビュー合成ピクチャを生成する手段と、
ビュー合成予測が前記ビデオデータのために使用可能であることを前記情報が示すとき、前記ビュー合成ピクチャに対して現在のピクチャの少なくとも一部分をコーディングする手段と、
を備える、デバイス。
[C28]
前記情報をコーディングする前記手段は、前記現在のピクチャの前記少なくとも一部分に対応するパラメータセットのシンタックス要素をコーディングする手段を備える、C27に記載のデバイス。
[C29]
前記シンタックス要素をコーディングする前記手段は、前記現在のピクチャを含む一連のピクチャに対応するシーケンスパラメータセットのシンタックス要素をコーディングする手段を備える、C28に記載のデバイス。
[C30]
前記シンタックス要素をコーディングする前記手段は、前記現在のピクチャに対応するピクチャパラメータセットと前記現在のピクチャの前記少なくとも一部分を備えるスライスに対応するアクセスユニットレベルパラメータセットとのうちの少なくとも1つのシンタックス要素をコーディングする手段を備える、C28に記載のデバイス。
[C31]
前記現在のピクチャの前記少なくとも一部分が現在のスライスを備え、
前記情報をコーディングする前記手段は、前記現在のスライスのためのスライスヘッダのシンタックス要素をコーディングする手段を備える、C27に記載のデバイス。
[C32]
前記ビュー合成ピクチャを生成するために使用するために参照ビューについての識別情報をコーディングする手段をさらに備え、前記ビュー合成ピクチャを生成する前記手段は、前記参照ビューのピクチャに対して前記ビュー合成ピクチャを生成する手段を備える、C27に記載のデバイス。
[C33]
前記識別情報をコーディングする前記手段は、前記参照ビューのためのビュー識別子(view_id)をコーディングする手段を備える、C32に記載のデバイス。
[C34]
前記識別情報をコーディングする前記手段は、前記参照ビューのための水平変換情報をコーディングする手段を備える、C32に記載のデバイス。
[C35]
ビュー合成予測が前記ビデオデータのために使用可能でないことを前記情報が示すとき、どのビュー合成ピクチャも参照することなく、イントラ予測と、時間的インター予測と、ビュー間予測とのうちの少なくとも1つを使用して前記現在のピクチャをコーディングする手段をさらに備える、C27に記載のデバイス。
[C36]
前記現在のピクチャの前記少なくとも一部分をコーディングする前記手段は、前記現在のピクチャの前記少なくとも一部分を復号する手段を備える、C27に記載のデバイス。
[C37]
前記現在のピクチャの前記少なくとも一部分をコーディングする前記手段は、前記現在のピクチャの前記少なくとも一部分を符号化する手段を備える、C27に記載のデバイス。
[C38]
実行されたとき、プロセッサに、
ビュー合成予測がビデオデータのために使用可能であるかどうかを示す情報をコーディングすることと、
ビュー合成予測が前記ビデオデータのために使用可能であることを前記情報が示すとき、
前記ビデオデータを使用してビュー合成ピクチャを生成することと、
前記ビュー合成ピクチャに対して現在のピクチャの少なくとも一部分をコーディングすることと、
を行わせる命令を記憶したコンピュータ可読記憶媒体。
[C39]
前記情報をコーディングすることを前記プロセッサに行わせる前記命令は、前記現在のピクチャの前記少なくとも一部分に対応するパラメータセットのシンタックス要素をコーディングすることを前記プロセッサに行わせる命令を備える、C38に記載のコンピュータ可読記憶媒体。
[C40]
前記シンタックス要素をコーディングすることを前記プロセッサに行わせる前記命令は、前記現在のピクチャを含む一連のピクチャに対応するシーケンスパラメータセットのシンタックス要素をコーディングすることを前記プロセッサに行わせる命令を備える、C39に記載のコンピュータ可読記憶媒体。
[C41]
前記シンタックス要素をコーディングすることを前記プロセッサに行わせる前記命令は、前記現在のピクチャに対応するピクチャパラメータセットと前記現在のピクチャの前記少なくとも一部分を備えるスライスに対応するアクセスユニットレベルパラメータセットとのうちの少なくとも1つのシンタックス要素をコーディングすることを前記プロセッサに行わせる命令を備える、C39に記載のコンピュータ可読記憶媒体。
[C42]
前記現在のピクチャの前記少なくとも一部分は現在のスライスを備え、
前記情報をコーディングすることを前記プロセッサに行わせる前記命令は、前記現在のスライスのためのスライスヘッダのシンタックス要素をコーディングすることを前記プロセッサに行わせる命令を備える、C38に記載のコンピュータ可読記憶媒体。
[C43]
前記ビュー合成ピクチャを生成するために使用するために参照ビューについての識別情報をコーディングすることを前記プロセッサに行わせる命令をさらに備え、
前記ビュー合成ピクチャを生成することを前記プロセッサに行わせる前記命令は、前記参照ビューのピクチャに対して前記ビュー合成ピクチャを生成することを前記プロセッサに行わせる命令を備える、C38に記載のコンピュータ可読記憶媒体。
[C44]
前記識別情報をコーディングすることを前記プロセッサに行わせる前記命令は、前記参照ビューのためのビュー識別子(view_id)をコーディングすることを前記プロセッサに行わせる命令を備える、C43に記載のコンピュータ可読記憶媒体。
[C45]
前記識別情報をコーディングすることを前記プロセッサに行わせる前記命令は、前記参照ビューのための水平変換情報をコーディングすることを前記プロセッサに行わせる命令を備える、C43に記載のコンピュータ可読記憶媒体。
[C46]
ビュー合成予測が前記ビデオデータのために使用可能でないことを前記情報が示すとき、どのビュー合成ピクチャも参照することなく、イントラ予測と、時間的インター予測と、ビュー間予測とのうちの少なくとも1つを使用して前記現在のピクチャをコーディングすることを前記プロセッサに行わせる命令をさらに備える、C38に記載のコンピュータ可読記憶媒体。
[C47]
前記現在のピクチャの前記少なくとも一部分をコーディングすることを前記プロセッサに行わせる前記命令は、前記現在のピクチャの前記少なくとも一部分を復号することを前記プロセッサに行わせる命令を備える、C38に記載のコンピュータ可読記憶媒体。
[C48]
前記現在のピクチャの前記少なくとも一部分をコーディングすることを前記プロセッサに行わせる前記命令は、前記現在のピクチャの前記少なくとも一部分を符号化することを前記プロセッサに行わせる命令を備える、C38に記載のコンピュータ可読記憶媒体。