[0027] 本開示では、ビデオコーディングに関する技法について説明し、より詳細には、3次元(3D)ビデオコーディングおよび他のタイプのマルチレイヤおよび/またはマルチビューコーディングに関する技法について説明する。マルチレイヤビデオをコーディングするために使用される様々なコーディングツールは、現在レイヤ中の1つまたは複数のビデオブロックをコーディングするために、1つのレイヤから取得された情報を利用する。例えば、現在レイヤの現在ブロックをコーディングするための動きベクトルは、別のレイヤの別のブロックをコーディングするために使用される動きベクトルを識別することによって決定され得る。現在レイヤのコーディングが別のレイヤに依存するとき、現在レイヤは、他のレイヤに直接依存すると見なされる。ビデオデコーダおよび他のビデオ処理デバイスがマルチレイヤビデオを適切に扱うために、ビデオ処理デバイスは、あるレイヤがどの他のレイヤに依存するかを知る必要があり得る。
[0028] 3Dビデオコーディングでは、ビデオデータは、一般に、1つまたは複数のテクスチャビューおよび1つまたは複数の対応する深度ビューとしてコーディングされる。コード化テクスチャビューとコード化深度ビューとに基づいて、ビデオレンダリングデバイスは追加のビューを合成し得る。以下でより詳細に説明するように、深度指向隣接ブロックディスパリティ(DoNBDV:depth-oriented, neighboring block disparity)プロセスまたは後方ワーピングビュー合成予測(BVSP:backward-warping view synthesis prediction)プロセスなどの様々なコーディングツールは、深度レイヤから取得された情報を利用してテクスチャレイヤをコーディングし、従って、テクスチャレイヤを深度レイヤに直接依存させ得る。
[0029] 本開示の技法によれば、ビデオエンコーダは、例えばビデオパラメータセット(VPS)中で、深度およびテクスチャの異なるプロパティとともにレイヤの直接依存性をシグナリングし得る。言い換えれば、ビデオエンコーダは、ビデオビットストリーム中で、テクスチャレイヤが特定の深度レイヤに依存すること、または深度レイヤが特定のテクスチャレイヤに依存することをシグナリングし得る。
[0030] 本開示における様々な技法についてビデオコーダに関して説明し、ビデオコーダは、ビデオエンコーダまたはビデオデコーダのいずれをも指すことができる総称語であるものとする。別段に明記されていない限り、ビデオエンコーダまたはビデオデコーダに関して説明する技法は、ビデオエンコーダまたはビデオデコーダの他方によって行われないことがあると考えられるべきではない。例えば、多くの事例では、ビデオデコーダは、符号化ビデオデータを復号するために、同じまたは時々逆のコーディング技法をビデオエンコーダとして行う。多くの事例では、ビデオエンコーダもビデオ復号ループを含み、従って、ビデオエンコーダは、ビデオデータを符号化することの一部としてビデオ復号を行う。従って、別段に記載されていない限り、本開示で説明する技法は、ビデオエンコーダまたはビデオデコーダのいずれによっても行われ得る。
[0031] 本開示はまた、現在レイヤ、現在ブロック、現在ピクチャ、現在スライスなどの用語を使用することがある。本開示のコンテキストでは、現在という用語は、例えば、前にコーディングされたレイヤ、ブロック、ピクチャ、およびスライス、またはこれからコーディングされるべきブロック、ピクチャ、およびスライスとは対照的に、現在コーディングされているレイヤ、ブロック、ピクチャ、スライスなどを識別するものとする。
[0032] 図1は、本開示で説明する技法を利用し得る例示的なビデオ符号化および復号システム10を示すブロック図である。図1に示されているように、システム10は、宛先デバイス14によって後で復号されるべき符号化ビデオデータを与えるソースデバイス12を含む。特に、ソースデバイス12は、コンピュータ可読媒体16を介してビデオデータを宛先デバイス14に与える。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスのいずれかを備え得る。場合によっては、ソースデバイス12および宛先デバイス14はワイヤレス通信のために装備され得る。
[0033] 宛先デバイス14は、コンピュータ可読媒体16を介して復号されるべき符号化ビデオデータを受信し得る。コンピュータ可読媒体16は、ソースデバイス12から宛先デバイス14に符号化ビデオデータを移動させることが可能な任意のタイプの媒体またはデバイスを備え得る。一例では、コンピュータ可読媒体16は、ソースデバイス12が、リアルタイムで宛先デバイス14に直接符号化ビデオデータを送信することを可能にするための通信媒体を備え得る。
[0034] 符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス14に送信され得る。通信媒体は、無線周波数(RF)スペクトルまたは1つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス12から宛先デバイス14への通信を可能にするために有用であり得る任意の他の機器を含み得る。
[0035] いくつかの例では、符号化ビデオデータは、出力インターフェース22からストレージデバイスに出力され得る。同様に、符号化ビデオデータは入力インターフェースによってストレージデバイスからアクセスされ得る。ストレージデバイスは、ハードドライブ、Blu−ray(登録商標)ディスク、DVD、CD−ROM、フラッシュメモリ、揮発性または不揮発性メモリ、あるいは符号化ビデオデータを記憶するための任意の他の好適なデジタル記憶媒体など、様々な分散されたまたはローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる一例では、ストレージデバイスは、ソースデバイス12によって生成された符号化ビデオを記憶し得るファイルサーバまたは別の中間ストレージデバイスに対応し得る。
[0036] 宛先デバイス14は、ストリーミングまたはダウンロードを介してストレージデバイスから記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶し、その符号化ビデオデータを宛先デバイス14に送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバとしては、(例えば、ウェブサイトのための)ウェブサーバ、FTPサーバ、ネットワーク接続ストレージ(NAS)デバイス、またはローカルディスクドライブがある。宛先デバイス14は、インターネット接続を含む、任意の標準のデータ接続を通して符号化ビデオデータにアクセスし得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適であるワイヤレスチャネル(例えば、Wi−Fi(登録商標)接続)、ワイヤード接続(例えば、DSL、ケーブルモデムなど)、またはその両方の組合せを含み得る。ストレージデバイスからの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはそれらの組合せであり得る。
[0037] 本開示の技法は、必ずしもワイヤレス適用例または設定に限定されるとは限らない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、動的適応ストリーミングオーバーHTTP(DASH)などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されたデジタルビデオ、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および/またはビデオテレフォニーなどの適用例をサポートするために一方向または二方向ビデオ送信をサポートするように構成され得る。
[0038] 図1の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、出力インターフェース22とを含む。宛先デバイス14は、入力インターフェース28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。本開示によれば、ソースデバイス12のビデオエンコーダ20は、マルチビューコーディングにおける動きベクトル予測のための技法を適用するように構成され得る。他の例では、ソースデバイスおよび宛先デバイスは他のコンポーネントまたは構成を含み得る。例えば、ソースデバイス12は、外部カメラなど、外部ビデオソース18からビデオデータを受信し得る。同様に、宛先デバイス14は、内蔵ディスプレイデバイスを含むのではなく、外部ディスプレイデバイスとインターフェースし得る。
[0039] 図1の図示されたシステム10は一例にすぎない。時間動きベクトル予測のための技法は、任意のデジタルビデオ符号化および/または復号デバイスによって行われ得る。概して、本開示の技法はビデオ符号化デバイスによって行われが、本技法は、一般に「コーデック」と呼ばれるビデオエンコーダ/デコーダによっても行われ得る。その上、本開示の技法はビデオプリプロセッサによっても行われ得る。ソースデバイス12および宛先デバイス14は、ソースデバイス12が宛先デバイス14に送信するためのコード化ビデオデータを生成するような、コーディングデバイスの例にすぎない。いくつかの例では、デバイス12、14は、デバイス12、14の各々がビデオ符号化構成要素とビデオ復号構成要素とを含むように、実質的に対称的に動作し得る。従って、システム10は、例えば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、またはビデオテレフォニーのためのビデオデバイス12とビデオデバイス14との間の一方向または二方向ビデオ送信をサポートし得る。
[0040] ソースデバイス12のビデオソース18は、ビデオカメラなどのビデオキャプチャデバイス、前にキャプチャされたビデオを含んでいるビデオアーカイブ、および/またはビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースを含み得る。さらなる代替として、ビデオソース18は、ソースビデオとしてのコンピュータグラフィックスベースデータ、またはライブビデオとアーカイブビデオとコンピュータ生成ビデオとの組合せを生成し得る。場合によっては、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14はいわゆるカメラフォンまたはビデオフォンを形成し得る。但し、上述のように、本開示で説明する技法は、概してビデオコーディングに適用可能であり得、ワイヤレスおよび/またはワイヤード適用例に適用され得る。各場合において、キャプチャされたビデオ、前にキャプチャされたビデオ、またはコンピュータ生成ビデオは、ビデオエンコーダ20によって符号化され得る。符号化ビデオ情報は、次いで、出力インターフェース22によってコンピュータ可読媒体16上に出力され得る。
[0041] コンピュータ可読媒体16は、ワイヤレスブロードキャストまたはワイヤードネットワーク送信などの一時媒体、あるいはハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、Blu−rayディスク、または他のコンピュータ可読媒体などの記憶媒体(すなわち、非一時的記憶媒体)を含み得る。いくつかの例では、ネットワークサーバ(図示せず)は、ソースデバイス12から符号化ビデオデータを受信し、例えば、ネットワーク送信を介して、その符号化ビデオデータを宛先デバイス14に与え得る。同様に、ディスクスタンピング設備など、媒体製造設備のコンピューティングデバイスは、ソースデバイス12から符号化ビデオデータを受信し、その符号化ビデオデータを含んでいるディスクを生成し得る。従って、コンピュータ可読媒体16は、様々な例において、様々な形態の1つまたは複数のコンピュータ可読媒体を含むことが理解されよう。
[0042] 宛先デバイス14の入力インターフェース28はコンピュータ可読媒体16から情報を受信する。コンピュータ可読媒体16の情報は、ビデオエンコーダ20によって定義され、またビデオデコーダ30によって使用される、ブロックおよび他のコード化ユニット、例えば、GOPの特性および/または処理を記述するシンタックス要素を含む、シンタックス情報を含み得る。ディスプレイデバイス32は、ユーザに復号ビデオデータを表示し、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
[0043] ビデオエンコーダ20およびビデオデコーダ30は、高効率ビデオコーディング(HEVC)規格などのビデオコーディング規格に従って動作し得、HEVCテストモデル(HM)に準拠し得る。代替または追加として、ビデオエンコーダ20およびビデオデコーダ30は、代替的にMPEG−4,Part10,アドバンストビデオコーディング(AVC)と呼ばれるITU−T H.264規格など、他のプロプライエタリ規格または業界規格、またはそのような規格の拡張に従って動作し得る。但し、本開示の技法は、いかなる特定のコーディング規格にも限定されない。
[0044] ITU−T H.264/MPEG−4(AVC)規格は、ジョイントビデオチーム(JVT)として知られる共同パートナーシップの成果として、ISO/IECムービングピクチャエキスパートグループ(MPEG)とともにITU−Tビデオコーディングエキスパートグループ(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規格または仕様と呼ぶことがある。ジョイントビデオチーム(JVT)はH.264/MPEG−4 AVCの拡張に取り組み続けている。
[0045] ビデオエンコーダ20およびビデオデコーダ30がそれに従って動作するように構成され得る他のビデオコーディング規格は、ITU−T H.261と、ISO/IEC MPEG−1 Visualと、ITU−T H.262またはISO/IEC MPEG−2 Visualと、ITU−T H.263と、ISO/IEC MPEG−4 Visualと、それのスケーラブルビデオコーディング(SVC)およびマルチビュービデオコーディング(MVC)拡張を含む(ISO/IEC MPEG−4 AVCとしても知られる)ITU−T H.264とを含む。MVCのドラフトは、「Advanced video coding for generic audiovisual services」、ITU−T勧告H.264、2010年3月に記載されている。
[0046] JCT−VCはHEVC規格を最近確定した。HEVC規格化の取り組みは、HEVCテストモデル(HM)と呼ばれるビデオコーディングデバイスの発展的モデルに基づいていた。HMは、例えば、ITU−T H.264/AVCに従う既存のデバイスに対して、ビデオコーディングデバイスのいくつかの追加の能力を仮定する。例えば、H.264は9個のイントラ予測符号化モードを与えるが、HMは33個ものイントラ予測符号化モードを与え得る。
[0047] 概して、HMの作業モデルは、ビデオピクチャ(または「フレーム」)が、ルーマサンプルとクロマサンプルの両方を含む一連のツリーブロックまたは最大コーディングユニット(LCU:largest coding unit)に分割され得ることを記載している。ビットストリーム内のシンタックスデータが、ピクセルの数に関して最大コーディングユニットであるLCUのサイズを定義し得る。スライスは、コーディング順序でいくつかの連続するツリーブロックを含む。ピクチャは、1つまたは複数のスライスに区分され得る。各ツリーブロックは、4分木(quadtree)に従ってコーディングユニット(CU)にスプリットされ得る。概して、4分木データ構造はCUごとに1つのノードを含み、ルートノードはツリーブロックに対応する。CUが4つのサブCUにスプリットされた場合、CUに対応するノードは4つのリーフノードを含み、リーフノードの各々はサブCUのうちの1つに対応する。
[0048] 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とも呼ぶことがある。
[0049] CUは、CUがサイズ差異を有しないことを除いて、H.264規格のマクロブロックと同様の目的を有する。例えば、ツリーブロックは、(サブCUとも呼ばれる)4つの子ノードにスプリットされ得、各子ノードは、今度は親ノードとなり、別の4つの子ノードにスプリットされ得る。4分木のリーフノードと呼ばれる、最後のスプリットされていない子ノードは、リーフCUとも呼ばれるコーディングノードを備える。コード化ビットストリームに関連するシンタックスデータは、最大CU深度と呼ばれる、ツリーブロックがスプリットされ得る最大回数を定義し得、また、コーディングノードの最小サイズを定義し得る。従って、ビットストリームはまた、最小コーディングユニット(SCU:smallest coding unit)を定義し得る。本開示では、HEVCのコンテキストにおけるCU、PU、またはTU、あるいは他の規格のコンテキストにおける同様のデータ構造(例えば、H.264/AVCにおけるマクロブロックおよびそれのサブブロック)のいずれかを指すために「ブロック」という用語を使用する。
[0050] 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は、形状が正方形または非正方形(例えば、矩形)であり得る。
[0051] HEVC規格は、異なるCUについて異なり得る、TUに従う変換を可能にする。TUは、一般に、区分されたLCUのために定義された所与のCU内のPUのサイズに基づいてサイズ決定されるが、これは常にそうであるとは限らない。TUは、一般に、PUと同じサイズであるか、またはそれよりも小さい。いくつかの例では、CUに対応する残差サンプルは、「残差4分木」(RQT:residual quad tree)として知られる4分木構造を使用してより小さいユニットに再分割され得る。RQTのリーフノードは変換ユニット(TU)と呼ばれることがある。TUに関連するピクセル差分値は、変換係数を生成するために変換され、その変換係数は量子化され得る。
[0052] リーフ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)を記述し得る。
[0053] 1つまたは複数のPUを有するリーフCUはまた、1つまたは複数の変換ユニット(TU)を含み得る。変換ユニットは、上記で説明したように、(TU4分木構造とも呼ばれる)RQTを使用して指定され得る。例えば、スプリットフラグは、リーフCUが4つの変換ユニットにスプリットされるかどうかを示し得る。次いで、各変換ユニットは、さらなるサブTUにさらにスプリットされ得る。TUがさらにスプリットされないとき、そのTUはリーフTUと呼ばれることがある。概して、イントラコーディングの場合、リーフCUに属する全てのリーフTUは、同じイントラ予測モードを共有する。すなわち、同じイントラ予測モードが、概して、リーフCUの全てのTUのための予測値を計算するために適用される。イントラコーディングの場合、ビデオエンコーダ20は、イントラ予測モードを使用して各リーフTUのための残差値を、TUに対応するCUの部分と元のブロックとの間の差分として計算し得る。TUは、必ずしもPUのサイズに制限されるとは限らない。従って、TUは、PUよりも大きいことも小さいこともある。イントラコーディングの場合、PUは、同じCUのための対応するリーフTUとコロケートされ得る。いくつかの例では、リーフTUの最大サイズは、対応するリーフCUのサイズに対応し得る。
[0054] その上、リーフCUのTUはまた、残差4分木(RQT)と呼ばれる、それぞれの4分木データ構造に関連し得る。すなわち、リーフCUは、リーフCUがどのようにTUに区分されるかを示す4分木を含み得る。TU4分木のルートノードは概してリーフCUに対応し、CU4分木のルートノードは概してツリーブロック(またはLCU)に対応する。スプリットされないRQTのTUはリーフTUと呼ばれる。概して、本開示では、別段に明記されていない限り、リーフCUおよびリーフTUに言及するためにそれぞれCUおよびTUという用語を使用する。
[0055] ビデオシーケンスは、一般に一連のピクチャを含む。本明細書で説明する「ピクチャ」および「フレーム」という用語は同義で使用され得る。すなわち、ビデオデータを含んでいるピクチャは、ビデオフレームまたは単に「フレーム」と呼ばれることがある。ピクチャグループ(GOP:group of picture)は、概して、ビデオピクチャのうちの一連の1つまたは複数を備える。GOPは、GOP中に含まれるいくつかのピクチャを記述するシンタックスデータを、GOPのヘッダ中、ピクチャのうちの1つまたは複数のヘッダ中、または他の場所に含み得る。ピクチャの各スライスは、それぞれのスライスのための符号化モードを記述するスライスシンタックスデータを含み得る。ビデオエンコーダ20は、一般に、ビデオデータを符号化するために、個々のビデオスライス内のビデオブロックに作用する。ビデオブロックはCU内のコーディングノードに対応し得る。ビデオブロックは、固定サイズまたは変動サイズを有し得、指定されたコーディング規格に応じてサイズが異なり得る。
[0056] 一例として、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を指す。
[0057] 本開示では、「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に等しいとは限らない。
[0058] CUのPUを使用したイントラ予測コーディングまたはインター予測コーディングの後に、ビデオエンコーダ20は、CUのTUのための残差データを計算し得る。PUは、(ピクセル領域とも呼ばれる)空間領域において予測ピクセルデータを生成する方法またはモードを記述するシンタックスデータを備え得、TUは、変換、例えば、残差ビデオデータへの離散コサイン変換(DCT)、整数変換、ウェーブレット変換、または概念的に同様の変換の適用後の、変換領域における係数を備え得る。残差データは、符号化されていないピクチャのピクセルと、PUに対応する予測値との間のピクセル差分に対応し得る。ビデオエンコーダ20は、CUのための残差データを含むTUを形成し、次いで、CUのための変換係数を生成するためにTUを変換し得る。
[0059] 変換係数を生成するための任意の変換の後に、ビデオエンコーダ20は変換係数の量子化を行い得る。量子化は、概して、係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を行うプロセスを指す。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。例えば、量子化中にnビット値がmビット値に切り捨てられ得、但し、nはmよりも大きい。
[0060] 量子化の後に、ビデオエンコーダは、変換係数を走査して、量子化変換係数を含む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が使用するための符号化ビデオデータに関連するシンタックス要素をエントロピー符号化し得る。
[0061] CABACを行うために、ビデオエンコーダ20は、コンテキストモデル内のコンテキストを、送信されるべきシンボルに割り当て得る。コンテキストは、例えば、シンボルの隣接値が非0であるか否かに関係し得る。CAVLCを行うために、ビデオエンコーダ20は、送信されるべきシンボルのための可変長コードを選択し得る。VLC中のコードワードは、比較的より短いコードが優勢シンボルに対応し、より長いコードが劣勢シンボルに対応するように構成され得る。このようにして、VLCの使用は、例えば、送信されるべき各シンボルのための等長コードワードを使用することに勝るビット節約を達成し得る。確率決定は、シンボルに割り当てられたコンテキストに基づき得る。
[0062] ビデオエンコーダ20は、さらに、ブロックベースのシンタックスデータ、ピクチャベースのシンタックスデータ、およびGOPベースのシンタックスデータなどのシンタックスデータを、例えば、ピクチャヘッダ、ブロックヘッダ、スライスヘッダ、またはGOPヘッダ中でビデオデコーダ30に送り得る。GOPシンタックスデータは、それぞれのGOP中のピクチャの数を記述し得、ピクチャシンタックスデータは、対応するピクチャを符号化するために使用される符号化/予測モードを示し得る。
[0063] 図1には示されていないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30は、それぞれ、オーディオエンコーダおよびデコーダと統合され得、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するために、適切なMUX−DEMUXユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、MUX−DEMUXユニットは、ITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
[0064] ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、適用可能なとき、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェアまたはそれらの任意の組合せなど、様々な好適なエンコーダまたはデコーダ回路のいずれかとして実装され得る。ビデオエンコーダ20およびビデオデコーダ30の各々は1つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも複合ビデオエンコーダ/デコーダ(コーデック)の一部として統合され得る。ビデオエンコーダ20および/またはビデオデコーダ30を含むデバイスは、集積回路、マイクロプロセッサ、および/またはセルラー電話などのワイヤレス通信デバイスを備え得る。
[0065] 本開示で説明する隣接ブロックベースディスパリティベクトル(NBDV:Neighboring Blocks based Disparity Vector)および高度残差予測(ARP:advanced residual prediction)技法の基礎の理解を容易にするために、HEVCのいくつかの態様を以下で概説する。イントラ予測、参照リスト構成、および時間動きベクトル予測など、ベースHEVCの様々な態様について以下で説明する。さらに、イントラ予測、参照リスト構成、および時間動きベクトル予測から構築するHEVCの3次元ビデオ拡張の様々な態様についても以下で説明する。本開示のいくつかの態様について説明の目的でHEVCに関して説明するが、本技法は、これに限定されず、様々な他のコーディング規格とともに使用され得ることを理解されたい。
[0066] 図2は、HEVCによってサポートされるイントラ予測モードを示す図である。HEVCに従ってイントラ予測を行うとき、各PUのルーマ成分について、ビデオエンコーダ20および/またはビデオデコーダ30は、図2に示されているように、(2から34までインデックス付けされた)33個の角度予測モードと、(1でインデックス付けされた)DCモードと、(0でインデックス付けされた)平面モードとを利用し得る。イントラ予測を行うとき、ビデオデコーダ30は、角度イントラ予測が使用されるとき、イントラ予測モードの角度に従って隣接ブロックから取得されたピクセル値に基づいて現在ブロックを予測する。DCイントラ予測モードを使用してコーディングされるブロックの場合、ビデオデコーダ30は、平均値を決定するために隣接参照サンプルの値を平均することによって予測ブロックを決定し、平面モードを使用してコーディングされるブロックの場合、ビデオデコーダ30は、隣接ピクセル値の2次元線形補間を行うことによって予測ブロックを決定する。
[0067] インター予測を行うために、ビデオエンコーダ20およびビデオデコーダ30は、ビデオエンコーダ20およびビデオデコーダ30がブロックをそれからインター予測し得る参照ピクチャを含む参照ピクチャリストを構成し得る。HEVCにおける参照ピクチャリスト構成に関して、ビデオエンコーダ20およびビデオデコーダ30は、一般に、2つのステップを使用してBピクチャの第1または第2の参照ピクチャリストについて参照ピクチャリストを構成し得る。第1に、ビデオエンコーダ20およびビデオデコーダ30は参照ピクチャリスト初期化を行い得、第2に、ビデオエンコーダ20およびビデオデコーダ30は参照ピクチャリスト並べ替え(例えば順序付けの変更)を行い得る。参照ピクチャリスト初期化は、POC(ピクチャの表示順序に整合するピクチャ順序カウント(Picture Order Count))値の順序に基づいて、(復号ピクチャバッファとしても知られる)参照ピクチャメモリ中の参照ピクチャをリストに入れる明示的機構であり得る。参照ピクチャリスト並べ替え機構は、参照ピクチャリスト初期化中にリストに入れられたピクチャの位置を任意の新しい位置に変更するか、または参照ピクチャメモリ中の任意の参照ピクチャを、そのピクチャが初期化リストに属していなくても任意の位置に入れ得る。いくつかのピクチャは、参照ピクチャリスト並べ替えの後に、リスト中のより低い位置に入れられ得る。ピクチャの位置がリストのアクティブ参照ピクチャの数を超える事例では、そのピクチャは最終参照ピクチャリストのエントリとは見なされないことがある。言い換えれば、参照リストが、0からX−1にわたるリスト位置をもつX個のアクティブ参照ピクチャを含む場合、ビデオエンコーダ20およびビデオデコーダ30は、インター予測を行うための候補参照ピクチャとして、並びに参照ピクチャリスト中の位置Xおよびより高い位置にある参照ピクチャを除外し得る。アクティブ参照ピクチャの数は、例えば、リストごとにスライスヘッダ中でシグナリングされ得る。
[0068] ビデオエンコーダ20およびビデオデコーダ30が参照ピクチャリスト(すなわち、利用可能な場合、RefPicList0およびRefPicList1)を構成した後、参照ピクチャリストへの参照インデックスが、参照ピクチャリスト中に含まれる任意の参照ピクチャを識別するために使用され得る。言い換えれば、ビデオエンコーダ20は、インター予測を行うために使用すべき1つまたは複数の参照ピクチャを選択し、選択された参照ピクチャを符号化ビデオビットストリーム中でビデオデコーダ30にシグナリングし得る。
[0069] 選択された参照ピクチャをシグナリングすることに加えて、ビデオエンコーダ20は、選択された参照ピクチャ中の参照ブロックの位置を特定する際に使用すべきビデオデコーダ30のための動きベクトルをも符号化ビットストリーム中でシグナリングし得る。ビデオエンコーダ20は動きベクトルを予測的にシグナリングし得る。予測シグナリング技法の2つの例は、高度動きベクトル予測(AMVP:advanced motion vector prediction)とマージモードシグナリングとを含む。AMVPでは、ビデオエンコーダ20およびビデオデコーダ30は、両方とも、すでにコーディングされたブロックから決定された動きベクトルに基づいて候補リストをアセンブルする。ビデオエンコーダ20は、次いで、動きベクトル予測子(MVP:motion vector predictor)を識別するための候補リストへのインデックスをシグナリングし、動きベクトル差分(MVD:motion vector difference)をシグナリングする。AMVPでは、ビデオデコーダ30がブロックをインター予測するために使用する動きベクトルは、MVDだけ変更されたMVP、例えば、MVP+MVDである。
[0070] マージモードでは、ビデオエンコーダ20およびビデオデコーダ30は、両方とも、すでにコーディングされたブロックに基づいて候補リストをアセンブルし、ビデオエンコーダ20は、候補リスト中の候補のうちの1つのためのインデックスをシグナリングする。マージモードでは、ビデオデコーダ30は、シグナリングされた候補の動きベクトルと参照ピクチャインデックスとを使用して現在ブロックをインター予測する。AMVPとマージモードの両方において、ビデオエンコーダ20およびビデオデコーダ30は、ブロックをどのように符号化するかを決定するときにビデオエンコーダ20によって使用されるリストが、そのブロックをどのように復号するかを決定するときにビデオデコーダ30によって使用されるリストに一致するように、同じリスト構成技法を利用する。
[0071] AMVPとマージとを行うために、ビデオエンコーダ20およびビデオデコーダ30は時間動きベクトル予測子(TMVP:temporal motion vector predictor)候補を決定し得る。動きベクトル予測、より詳細には時間動きベクトル予測に関して、TMVP候補を識別するために、最初にビデオエンコーダ20および/またはビデオデコーダ30はコロケートピクチャを識別し得る。現在ピクチャがBスライスである場合、ビデオエンコーダ20は、コロケートピクチャがRefPicList0からのものであるのかRefPicList1からのものであるのかを示すために、スライスヘッダ中でcollocated_from_l0_flagをシグナリングし得る。参照ピクチャリストが識別された後、ビデオコーダは、リスト中のピクチャ中のピクチャを識別するために、スライスヘッダ中でシグナリングされたcollocated_ref_idxを使用する。
[0072] ビデオコーダは、次いで、場合によってはコロケートピクチャを検査することによって、コロケート予測ユニット(PU)を識別し得る。このPUを含んでいるコーディングユニット(CU)の右下PUの動き情報、またはこのPUを含んでいるCUの中心PU内の右下PUの動きのいずれかが使用され得る。
[0073] 上記のプロセスによって識別された動きベクトルが、AMVPまたはマージモードのための動き候補を生成するために使用されるとき、動きベクトルは、(ピクチャ順序カウント(POC)値によって反映される)時間ロケーションに基づいてスケーリングされ得る。
[0074] いくつかの事例では、TMVPから導出される時間マージング候補のための全てのあり得る参照ピクチャリストのターゲット参照インデックスは常に0に設定されるが、AMVPでは、それは復号参照インデックスに等しく設定される。
[0075] HEVCでは、シーケンスパラメータセット(SPS)はフラグsps_temporal_mvp_enable_flagを含み、スライスヘッダは、sps_temporal_mvp_enable_flagが1に等しいとき、フラグpic_temporal_mvp_enable_flagを含む。特定のピクチャについてpic_temporal_mvp_enable_flagとtemporal_idの両方が0に等しいとき、復号順序でその特定のピクチャの前のピクチャからの動きベクトルは、その特定のピクチャまたは復号順序でその特定のピクチャの後のピクチャの復号において時間動きベクトル予測子として使用されないことがある。
[0076] VCEGおよびMPEGのジョイントコラボレーションチームオン3Dビデオコーディング(JCT−3C)は、HEVCに基づく3DV規格を開発中であり、それのために、規格化作業の一部は、HEVCに基づくマルチビュービデオコーデック(MV−HEVC)と、HEVCに基づく3Dビデオコーディング(3D−HEVC)のための別の部分との規格化を含む。MV−HEVCでは、JCTは、HEVCにおけるCU/PUレベルでのモジュールが再設計される必要がなく、従って、MV−HEVCのために完全に再利用され得るように、HEVCのハイレベルシンタックス(HLS)変更しかないことを保証することを目指している。しかしながら、3D−HEVCでは、テクスチャビューと深度ビューの両方のためにCU/PUレベルで使用されるコーディングツールを含む、新たなコーディングツールが含められ、サポートされ得る。3D−HEVCのための最新のソフトウェア3D−HTMが以下のリンクからダウンロードされ得る。[3D−HTM version 7.0]:
https://hevc.hhi.fraunhofer.de/svn/svn_3DVCSoftware/tags/HTM-7.0/
[0077] 以下のような最新の参照ソフトウェア記述並びに3D−HEVCのワーキングドラフトが入手可能になる。
Gerhard Tech、Krzysztof Wenger、Ying Chen、Sehoon Yea、「3D-HEVC Test Model 4」、JCT3V−F1001、ITU−T SG16 WP3とISO/IEC JTC1/SC29/WG11とのジョイントコラボレーティブチームオン3Dビデオコーディング拡張開発、第6回会議。これは、以下のリンクからダウンロードされ得る。
http://phenix.int-evry.fr/jct2/doc_end_user/documents/6_Geneva/wg11/JCT3V-F1001-v2.zip
[0078] 3D−HEVCによってサポートされる新しいツールの一例として、3D−HEVCを実装するビデオコーダは暗黙的ディスパリティベクトル(IDV:implicit disparity vector)を決定し、利用する。ビデオコーダは、例えば、PUがビュー間動きベクトル予測を採用するとき、例えば、AMVPまたはマージモードのための候補が、ディスパリティベクトルの助けによって他のビュー中の対応するブロックから導出されるとき、IDVを生成し得る。そのようなディスパリティベクトルはIDVと呼ばれることがある。IDVは、ディスパリティベクトル導出の目的でPUのために記憶され得る。
[0079] 3D−HEVCはまた、ディスパリティベクトル導出プロセスを与える。ディスパリティベクトルを導出するために、ビデオコーダは、現在の3D−HTMにおいてNBDVと呼ばれるプロセス(ビデオエンコーダ20などのビデオエンコーダによって実装されるべきテストソフトウェアを指す)を使用し得る。NBDVに従って、ビデオエンコーダ20およびビデオデコーダ30は、空間隣接ブロックおよび時間隣接ブロックから決定されたDMVを利用し得る。NBDVでは、ビデオエンコーダ20およびビデオデコーダ30は、固定された順序で空間および/または時間隣接ブロックの動きベクトルを検査する。ディスパリティ動きベクトルまたはIDVが識別されると、ビデオエンコーダ20およびビデオデコーダ30は検査プロセスを終了する。ビデオエンコーダ20およびビデオデコーダ30は、識別されたディスパリティ動きベクトルを、ビュー間動き予測および/またはビュー間残差予測において使用され得るディスパリティベクトルに変換し得る。全ての予め定義された隣接ブロックを検査した後、そのようなディスパリティ動きベクトルが見つからない場合、ビデオエンコーダ20およびビデオデコーダ30はビュー間動き予測のためにゼロディスパリティベクトルを使用し得るが、ビュー間残差予測は、対応するPUに対して無効にされ得る。
[0080] 図3に、NBDVのためにビデオエンコーダ20およびビデオデコーダ30によって使用され得る空間隣接ブロックおよび時間隣接ブロックの表現を示す。ビデオエンコーダ20およびビデオデコーダ30は、ディスパリティベクトル導出のために5つの空間隣接ブロックを使用し得る。5つの空間隣接ブロックは、図3に示されているように、それぞれA0、A1、B0、B1またはB2によって示された、現在予測ユニット(PU)の左下ブロック、左ブロック、右上ブロック、上ブロックおよび左上ブロックである。
[0081] ビデオエンコーダ20およびビデオデコーダ30は、例えば、時間隣接ブロックを決定するために現在ビューからの最高2つの参照ピクチャを考慮し得る。2つの参照ピクチャは、例えば、コロケートピクチャ、およびランダムアクセスピクチャまたは最小POC差分と最小時間IDとをもつ参照ピクチャであり得、時間ブロック検査のために考慮され得る。いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30は、最初にランダムアクセスピクチャを検査し、続いてコロケートピクチャを検査し得る。候補ピクチャごとに、ビデオエンコーダ20およびビデオデコーダ30は2つの候補ブロックを検査し得る。2つの候補ブロックは、例えば、中心ブロック(例えば、現在PUのコロケート領域の中心4×4ブロック、図4中の「Pos.A」参照)および右下ブロック(例えば、現在PUのコロケート領域の右下4×4ブロック、図4中の「Pos.B」参照)であり得る。
[0082] いわゆる「検査順序(checking order)」に関して、DMVが使用されるかどうかは、いくつかの例では、最初に全ての空間/時間隣接ブロックについて検査され、続いてIDVについて検査される。これらの例では、空間隣接ブロックが最初に検査され、続いて時間隣接ブロックが検査される。
[0083] 一般に、ビデオエンコーダ20およびビデオデコーダ30は、A1、B1、B0、A0およびB2の順序で図3の5つの空間隣接ブロックを検査する。それらのうちの1つがDMVを使用して予測していた場合、ビデオエンコーダ20およびビデオデコーダ30は、検査プロセスを終了し、最終ディスパリティベクトルとして対応するDMVを使用する。
[0084] また、これらおよび他の例では、候補ピクチャごとに、2つのブロックが、第1の非ベースビューのためのCRおよびBR、または第2の非ベースビューのためのBR、CRの順序で検査される。それらのうちの1つがDMVを使用して予測された場合、ビデオエンコーダ20およびビデオデコーダ30は、検査プロセスを終了し、最終ディスパリティベクトルとして対応するDMVを使用する。
[0085] ビデオエンコーダ20およびビデオデコーダ30はまた、A0、A1、B0、B1およびB2の順序で図3の5つの空間隣接ブロックを検査し得る。5つの空間隣接ブロックのうちの1つがDMVを使用して予測され、スキップ/マージモードを使用してコーディングされた場合、ビデオエンコーダ20およびビデオデコーダ30は、これらおよび他の例では、検査プロセスを終了し、最終ディスパリティベクトルとして対応するIDVを使用し得る。
[0086] NBDVのためのデフォルト参照インデックスの導出に関して、3D−HEVCでは、NBDVプロセスは、検査された隣接ブロックがDMVを含んでいないとき、デフォルトビュー順序インデックスに関連するデフォルトディスパリティベクトル(0)を返し得る。このようにして、現在のNBDVプロセスは、デフォルトビュー順序インデックスを導出するために、両方の参照ピクチャリストを検査し、ビュー順序インデックスを1つずつ比較する必要があり得る。
[0087] 3D−HEVCはまた、ディスパリティベクトルの改良を与える。すなわち、NBDV方式から生成されたディスパリティベクトルは、コード化深度マップ中の情報を使用してさらに改良され得る。言い換えれば、ディスパリティベクトルの精度は、情報コード化ベースビュー深度マップ(information coded base view depth map)を利用することによって向上され得る。改良ステップは、一例として以下のように説明される。
1)ベースビューなど、前にコーディングされた参照深度ビュー中の導出されたディスパリティベクトルによって、対応する深度ブロックの位置を特定する。対応する深度ブロックのサイズは現在PUのサイズと同じである。
2)ディスパリティベクトルは、コロケート深度ブロックから、4つのコーナー深度値の最大値から計算される。これは、ディスパリティベクトルの水平成分に等しく設定されるが、ディスパリティベクトルの垂直成分は0に設定される。
[0088] この新しいディスパリティベクトルは、「深度指向隣接ブロックベースディスパリティベクトル(DoNBDV:depth oriented neighboring block based disparity vector)」と呼ばれることがある。NBDV方式からのディスパリティベクトルは、次いで、AMVPおよびマージモードのためのビュー間候補導出のためにDoNBDV方式からのこの新たに導出されたディスパリティベクトルによって置き換えられ得る。改良されていないディスパリティベクトルがビュー間残差予測のために使用され得ることに留意されたい。さらに、改良されたディスパリティベクトルは、それが後方VSP(BVSP)モードでコーディングされる場合、1つのPUの動きベクトルとして記憶される。
[0089] 3D−HEVCはまた、隣接ブロックを使用するブロックベースビュー合成予測を与える。著者Tianらによる「CE1.h: Backward View Synthesis Prediction using Neighbouring Blocks」と題するJCT3V−C0152において提案された後方ワーピングVSP手法(BVSPと同じまたは同様であり、同じくBVSPとして示される)は第3回JCT−3V会議において採用された。この後方ワーピングVSPの基本概念は、3D−AVCにおけるブロックベースVSPと同じまたは同様である。これらの2つのプロセスの両方は、動きベクトル差分を送信することを回避し、より正確な動きベクトルを使用するために、後方ワーピングおよびブロックベースVSPを使用し得る。実装詳細は、異なるプラットフォームにより異なる。
[0090] 以下の段落では、「BVSP」という用語を、3D−HEVCにおける後方ワーピングVSP手法を示すためにも使用する。
[0091] 3D−HTMでは、ビデオエンコーダ20は、一般に、共通テスト条件においてテクスチャファーストコーディングを適用し得る。従って、ある非ベーステクスチャビューを復号するとき、対応する非ベース深度ビューは利用不可能である。従って、ビデオコーダは、深度情報を推定し得、BVSPを行うためにこの推定深度情報を使用した。
[0092] ブロックのための深度情報を推定するために、ビデオコーダは、最初に隣接ブロックからディスパリティベクトルを導出し、次いで、参照ビューから深度ブロックを取得するために、導出されたディスパリティベクトルを使用し得る。
[0093] HTM5.1テストモデルでは、NBDV(隣接ブロックディスパリティベクトル)と呼ばれる、ディスパリティベクトル予測子を導出するためのプロセスが存在する。(dvx,dvy)がNBDV関数から識別されたディスパリティベクトルを示し、現在ブロック位置が(blockx,blocky)であるとする。ビデオコーダは、参照ビューの深度画像中の(blockx+dvx,blocky+dvy)において深度ブロックをフェッチし得る。フェッチされた深度ブロックは、概して、現在予測ユニット(PU)と同じサイズを有し、このフェッチされた深度ブロックは、次いで、現在PUのための後方ワーピングを行うために使用され得る。
[0094] 図5は、参照ビューからの深度ブロックがどのように位置を特定され、次いで、BVSP予測のために使用され得るかの一例を示す図である。図5の例では、深度ピクチャ102およびテクスチャピクチャ106は同じビューに対応するが、テクスチャピクチャ104は異なるビューに対応する。特に、テクスチャピクチャ104は、参照ピクチャとして働くテクスチャピクチャ106に対してコーディングされた現在ブロック112を含む。ビデオコーダは、ディスパリティベクトルを決定するために、現在ブロック112に隣接する隣接ブロック114を参照し得る。隣接ブロック114は、前に決定されたディスパリティベクトル118を含む。ディスパリティベクトル118は、現在ブロック112のためのディスパリティベクトル116として導出され得る。従って、ディスパリティベクトル116は、参照ビューの深度ピクチャ102中の深度ブロック108を参照する。
[0095] ビデオコーダは、次いで、後方ワーピングを行うために、現在ブロック112のピクセル(すなわち、テクスチャ値)のためのディスパリティ値119を決定するために、深度ブロック108のピクセル(すなわち、深度値)を使用し得る。ビデオコーダは、次いで、ディスパリティ値119によって識別されたピクセルから現在ブロック112のための予測ブロック(すなわち、BVSP参照ブロック)のための値を合成し得る。ビデオコーダは、次いで、この予測ブロックを使用して現在ブロック112を予測し得る。例えば、ビデオエンコーダ20によるビデオ符号化中に、ビデオエンコーダ20は、残差値を生成するために、予測ブロックと現在ブロック112との間のピクセルごとの差分を計算し得、ビデオエンコーダ20は、次いで、残差値を変換、量子化、およびエントロピー符号化し得る。一方、ビデオデコーダ30によるビデオ復号中に、ビデオデコーダ30は、残差データをエントロピー復号、逆量子化、および逆変換し、次いで、現在ブロック112を再生するために、残差データを(ピクセルごとに)予測ブロックと結合し得る。
[0096] BVSPがシーケンスのために有効にされる場合、ビュー間動き予測のためのNBDVプロセスは変更され得る。以下の段落では、相違点に下線が引かれている。
・ 時間隣接ブロックの各々について、時間隣接ブロックがディスパリティ動きベクトルを使用する場合、ディスパリティ動きベクトルがディスパリティベクトルとして返され、ディスパリティベクトルは、上記で説明したプロセスを用いてさらに改良される。
・ 空間隣接ブロックの各々について、以下が適用される。
○ 参照ピクチャリスト0または参照ピクチャリスト1ごとに、以下が適用される。
□ 空間隣接ブロックがディスパリティ動きベクトルを使用する場合、ディスパリティ動きベクトルがディスパリティベクトルとして返され、ディスパリティベクトルは、上記で説明したプロセスを用いてさらに改良される。
□ そうではなく、空間隣接ブロックがBVSPモードを使用する場合、関連する動きベクトルがディスパリティベクトルとして返される。ディスパリティベクトルは、上記で説明したのと同様の方法でさらに改良される。しかしながら、最大深度値は、4つのコーナーピクセルではなく、対応する深度ブロックの全てのピクセルから選択される。
[0097] 空間隣接ブロックの各々について、空間隣接ブロックがIDVを使用する場合、IDVがディスパリティベクトルとして返され、ディスパリティベクトルは、上記で説明したプロセスを用いてさらに改良される。
[0098] 導入されたBVSPモードは、空間インターコード化モードとして扱われ得、BVSPモードの使用を示すフラグがPUごとに維持され得る。ビットストリーム中でフラグをシグナリングするのではなく、新しいマージング候補(BVSPマージング候補)がマージ候補リストに追加され得、ここで、このフラグは、復号されたマージ候補インデックスがBVSPマージング候補に対応するかどうかに依存し得る。BVSPマージング候補は以下のように定義される。
・ 参照ピクチャリストごとの参照ピクチャインデックス:−1
・ 参照ピクチャリストごとの動きベクトル:改良されたディスパリティベクトル
[0099] BVSPマージング候補の挿入位置は、いくつかの例では、空間隣接ブロックに依存し得る。
・ 5つの空間隣接ブロックのいずれか(A0、A1、B0、B1またはB2)がBVSPモードでコーディングされる場合、例えば、隣接ブロックの維持されたフラグが1に等しい場合、BVSPマージング候補は、対応する空間マージング候補として扱われ、マージ候補リストに挿入される。いくつかの例では、BVSPマージング候補はマージ候補リストに一度のみ挿入され得る。
・ そうでない場合(5つの空間隣接ブロックのいずれもBVSPモードでコーディングされない)、BVSPマージング候補は、時間マージング候補の直前にマージ候補リストに挿入され得る。
[0100] いくつかの例では、結合双予測マージング候補の導出プロセス(combined bi-predictive merging candidate derivation process)中に、BVSPマージング候補を含めることを回避するために、追加の条件が検査されるべきである。
[0101] 予測導出プロセスに関して、それのサイズがN×Mによって示されるBVSPコード化PUごとに、PUは、K×K(ここにおいて、Kは4または2であり得る)に等しいサイズをもついくつかの下位領域にさらに区分され得る。下位領域ごとに、別個のディスパリティ動きベクトルが導出され得、各下位領域は、ビュー間参照ピクチャ中の導出されたディスパリティ動きベクトルによって位置を特定された1つのブロックから予測され得る。言い換えれば、ビデオコーダは、BVSPコード化PUのための動き補償ユニットのサイズをK×Kに設定し得る。共通テスト条件では、Kは4に設定され得る。
[0102] ディスパリティ動きベクトル導出プロセス(disparity motion vector derivation process)に関して、BVSPモードでコーディングされた1つのPU内の下位領域(4×4ブロック)ごとに、ビデオコーダは、上述の改良されたディスパリティベクトルを用いて参照深度ビュー中の対応する4×4深度ブロックの位置を特定し得る。第2に、ビデオコーダは、対応する深度ブロック中の16個の深度ピクセルの最大値を選択する。第3に、ビデオコーダは、その最大値をディスパリティ動きベクトルの水平成分に変換する。ディスパリティ動きベクトルの垂直成分は0に設定され得る。
[0103] 3D−HTMはまた、スキップ/マージモードのためのビュー間候補導出プロセスを与える。DoNBDV方式から導出されたディスパリティベクトルに基づいて、ビデオエンコーダ20は、利用可能な場合、新しい動きベクトル候補、ビュー間予測動きベクトル候補(IPMVC:Inter-view Predicted Motion Vector Candidate)をAMVPおよびスキップ/マージモードに追加し得る。ビュー間予測動きベクトルは、利用可能な場合、時間動きベクトルを備え得る。
[0104] スキップモードは、概して、マージモードと同じ動きベクトル導出プロセスを利用したので、本開示で説明する全てのプロセスはマージモードとスキップモードの両方に適用され得る。
[0105] マージ/スキップモードでは、ビュー間予測動きベクトルは以下のステップによって導出される。最初に、ビデオエンコーダ20およびビデオデコーダ30は、ディスパリティベクトルを使用して、同じアクセスユニットの参照ビュー中の現在PU/CUの対応するブロックの位置を特定する。次に、対応するブロックがイントラコーディングされず、ビュー間予測されず、それの参照ピクチャが現在PU/CUの同じ参照ピクチャリスト中の1つのエントリのものに等しいPOC値を有する場合、ビデオエンコーダ20およびビデオデコーダ30は、POCに基づいて参照インデックスをビュー間予測動きベクトルになるように変換した後に、それの動き情報(予測方向、参照ピクチャ、および動きベクトル)を導出する。
[0106] 対応するブロックは以下のように定義される。
現在ピクチャの左上ルーマサンプルに対する現在予測ユニットの左上ルーマサンプルのルーマロケーション(xP,yP)を示し、nPSWおよびnPSHは、それぞれ現在予測ユニットの幅および高さを示し、参照ビュー順序インデックスrefViewIdx、およびディスパリティベクトルmvDisp、参照レイヤルーマロケーション(xRef,yRef)は以下によって導出される。
[0107] ビデオコーダは、対応するブロックを、refViewIdxに等しいViewIdxをもつビューコンポーネント中のルーマロケーション(xRef,yRef)をカバーする予測ユニットに設定し得る。
[0108] 図6は、ビュー間予測動きベクトル候補の導出プロセスの一例を示す図である。第1のビュー(V1)中の現在ブロック120について、ビデオデコーダ30は、異なるビュー(V0)中の対応するブロック121の位置を特定する。ビデオデコーダ30は、現在ブロック120のための動き情報を導出するために、参照ブロック121の動き情報を再利用し得る。例えば、ビデオデコーダ30が参照ブロック121を予測するために動きベクトル124Bを使用した場合、ビデオデコーダ30は、現在ブロック120を予測するために動きベクトル124Aを使用し得る。動きベクトル124Aおよび動きベクトル124Bは、同じ動きベクトルの2つの異なるインスタンスを表すものとする。
[0109] さらに、ビデオコーダは、ディスパリティベクトルをビュー間ディスパリティ動きベクトルに変換し得、ビュー間ディスパリティ動きベクトルは、次いで、IPMVCとは異なる位置においてマージ候補リストに追加され、または場合によっては、それが利用可能であるとき、IPMVCと同じ位置においてAMVP候補リストに追加され得る。IPMVCまたはビュー間ディスパリティ動きベクトル候補(IDMVC:Inter-view Disparity Motion Vector Candidate)のいずれも、このコンテキストでは「ビュー間候補」と呼ばれることがある。
[0110] マージ/スキップモードでは、IPMVCは、利用可能な場合、常に、全ての空間マージング候補および時間マージング候補の前にマージ候補リストに挿入され得る。IDMVCは、A0から導出された空間マージング候補の前に挿入され得る。
[0111] 3D−HEVCはまた、テクスチャコーディングのためのマージ候補リスト構成を与える。このコンテキストでは、ビデオコーダは、最初に、DoNBDVのプロセスを用いてディスパリティベクトルを導出し得る。ディスパリティベクトルを用いて、3D−HEVCにおけるマージング候補リスト構成プロセスは、一例として、以下のように定義され得る。
1. IPMVC挿入
IPMVCが、上記で説明したプロシージャによって導出される。IPMVCが利用可能である場合、IPMVCはマージリストに挿入される。
2. 3D−HEVCにおける空間マージング候補のための導出プロセスおよびIDMVC挿入
以下の順序、すなわち、A1、B1、B0、A0、またはB2で空間隣接PUの動き情報を検査する。次いで、制約付きプルーニングが以下のプロシージャによって行われ得る。
・ A1およびIPMVCが同じ動きベクトルと同じ参照インデックスとを有する場合、A1は候補リストに挿入されず、そうでない場合、A1はそのリストに挿入される。
・ B1およびA1/IPMVCが同じ動きベクトルと同じ参照インデックスとを有する場合、B1は候補リストに挿入されず、そうでない場合、B1はそのリストに挿入される。
・ B0が利用可能である場合、B0は候補リストに追加される。IDMVCが、上記で説明したプロシージャによって導出される。IDMVCが利用可能であり、それがA1およびB1から導出された候補と異なる場合、IDMVCは候補リストに挿入される。
・ BVSPがピクチャ全体に対してまたは現在スライスに対して有効にされる場合、BVSPマージング候補はマージ候補リストに挿入される。
・ A0が利用可能である場合、A0は候補リストに追加される。
・ B2が利用可能である場合、B2は候補リストに追加される。
3. 時間マージング候補のための導出プロセス
コロケートPUの動き情報が利用される、HEVCにおける時間マージング候補導出プロセスと同様に、但し、時間マージング候補のターゲット参照ピクチャインデックスが、0であるように固定するのではなく変更され得る。0に等しいターゲット参照インデックスが(同じビュー中の)時間参照ピクチャに対応し、コロケート予測ユニット(PU)の動きベクトルがビュー間参照ピクチャを指すとき、ターゲット参照インデックスは、参照ピクチャリスト中のビュー間参照ピクチャの第1のエントリに対応する別のインデックスに変更される。反対に、0に等しいターゲット参照インデックスがビュー間参照ピクチャに対応し、コロケート予測ユニット(PU)の動きベクトルが時間参照ピクチャを指すとき、ターゲット参照インデックスは、参照ピクチャリスト中の時間参照ピクチャの第1のエントリに対応する別のインデックスに変更される。
4. 3D−HEVCにおける結合双予測マージング候補のための導出プロセス
上記の2つのステップから導出された候補の総数が候補の最大数未満である場合、l0CandIdxおよびl1CandIdxの仕様を除いて、HEVCにおいて定義されたのと同じプロセスが行われる。combIdxとl0CandIdxとl1CandIdxとの間の関係は、図7に示す表において定義されている。
5. ゼロ動きベクトルマージング候補のための導出プロセス
・ HEVCにおいて定義されたのと同じプロシージャが行われ得る。
[0112] 最新のソフトウェアでは、MRGリスト中の候補の総数は最大6であり、スライスヘッダ中で6から減算されるMRG候補の最大数を指定するために、five_minus_max_num_merge_candがシグナリングされ得る。いくつかの例では、five_minus_max_num_merge_candは、両端値を含む0〜5の範囲内にある。
[0113] 深度コーディングのための動きベクトル継承も与えられる。動きベクトル継承(MVI)は、一般に、テクスチャ画像とそれの関連する深度画像との間の動き特性の類似度を活用する。
[0114] 図8に、対応するテクスチャブロック133が、現在PU135の中心の右下に位置する4×4ブロックとして選択される、MVI候補の導出プロセスの一例を示す。深度ピクチャ137中の所与のPUについて、MVI候補は、利用可能な場合、すでにコーディングされた対応するテクスチャブロック133の動きベクトルと参照インデックスとを再利用し得る。
[0115] いくつかの例では、整数精度をもつ動きベクトルが深度コーディングにおいて使用され、動きベクトルの1/4精度がテクスチャコーディングのために利用される。その結果、対応するテクスチャブロックの動きベクトルは、MVI候補として使用する前にスケーリングされ得る。
[0116] MVI候補生成により、深度ビューのためのマージ候補リストが、以下の例示的な様式に記載されているように構成される。
1. MVI挿入
MVIが、上記で説明したプロシージャによって導出される。MVIが利用可能である場合、MVIはマージリストに挿入される。
2. 3D−HEVCにおける空間マージング候補のための導出プロセスおよびIDMVC挿入
以下の順序、すなわち、A1、B1、B0、A0、またはB2で空間隣接PUの動き情報を検査する。制約付きプルーニングが以下のプロシージャによって行われる。
・ A1およびMVIが同じ動きベクトルと同じ参照インデックスとを有する場合、A1は候補リストに挿入されない。
・ B1およびA1/MVIが同じ動きベクトルと同じ参照インデックスとを有する場合、B1は候補リストに挿入されない。
・ B0が利用可能である場合、B0は候補リストに追加される。
・ A0が利用可能である場合、A0は候補リストに追加される。
・ B2が利用可能である場合、B2は候補リストに追加される。
3. 時間マージング候補のための導出プロセス
コロケートPUの動き情報が利用される、HEVCにおける時間マージング候補導出プロセスと同様に、但し、時間マージング候補のターゲット参照ピクチャインデックスが、0であるように固定するのではなく、セクション2.4.6において説明されているように変更され得る。
4. 3D−HEVCにおける結合双予測マージング候補のための導出プロセス
上記の2つのステップから導出された候補の総数が候補の最大数未満である場合、l0CandIdxおよびl1CandIdxの仕様を除いて、HEVCにおいて定義されたのと同じプロセスが行われる。combIdxとl0CandIdxとl1CandIdxとの間の関係は表2において定義されている。
5. ゼロ動きベクトルマージング候補のための導出プロセス
・ HEVCにおいて定義されたのと同じプロシージャが行われる。
このコーディングツールは、本開示では「MPI」と呼ばれることがある。
[0117] 3D−HEVCでは、高度残差予測(ARP:advanced residual prediction)は依存テクスチャビューに対して有効にされ得る。図9は、1つの参照ピクチャリストのためのマルチビュービデオコーディングおよび3DビデオコーディングにおけるARPの予測構造の一例を示す図である。1つの参照ピクチャリスト中の1つのPUの予測子を得るために、図9に示されているように、現在ブロック140の動き情報を再利用することによって、3つのブロック、すなわち、この例では、(CurrRef145によって示される)現在ビュー中の時間参照ブロック、(Base141によって示される)NBDVプロセスからDVによって位置を特定される参照ビュー中の対応するブロック、および(BaseRef143によって示される)参照ビュー中の参照ブロックが識別され得る。次いで、参照ビュー中の2つのブロックの差、すなわち、BaseRef−Baseによって残差予測子が計算され得る。さらに、(0、1または0.5である)重み付け係数wが残差予測子にさらに乗算され得、重み付けされた残差予測子は、1つの参照ピクチャリストのための現在ブロックの最終予測を生成するために、現在時間参照ブロックに追加され得る。
[0118] しかしながら、現在ブロックが1つの参照ピクチャリストのための(異なるビュー中の)ビュー間参照ピクチャを使用するとき、残差予測プロセスは、mvLXの欠落により無効にされ得る。
[0119] 時間残差のためのARP設計と同様に、現在予測ユニットがビュー間参照ピクチャを使用するとき、ビュー間残差の予測が有効にされ得る。最初に、異なるアクセスユニット内のビュー間残差が計算され得、次いで、計算された残差情報が、現在ブロックのビュー間残差を予測するために使用され得る。
[0120] この点において、以下で説明する図10の例に示されているように、Baseからの時間動き情報を再利用することによって、3つの関係するブロック、すなわち、(Baseによって示される)現在ブロックのディスパリティ動きベクトルによって位置を特定される参照ビュー中の参照ブロック、時間動きベクトル(mvLX)と、利用可能な場合、Baseによって含まれている参照インデックスとによって位置を特定される(BaseRefによって示される)参照ビュー中のBaseの参照ブロック、および(CurrRefによって示される)現在ビュー中の参照ブロックが識別され得る。
[0121] 識別された3つのブロックを用いて、現在PUの残差信号の残差予測子が、異なるアクセスユニット中のこれらの2つのブロック間の差、CurrRef−BaseRefとして計算され得る。さらに、ビュー間予測子は、現在のARPにおいて使用されている重み付け係数を乗算され得る。
[0122] 同様に、ビデオコーダは、時間残差予測のためのARPの現在の設計の場合のように、3つの相対ブロックを生成するために双線形フィルタを使用し得る。さらに、Baseによって含まれている時間動きベクトルが、現在PUの第1の利用可能な時間参照ピクチャの異なるアクセスユニット中にある参照ピクチャを指すとき、時間動きベクトルは、最初に、第1の利用可能な時間参照ピクチャにスケーリングされ得、スケーリングされた動きベクトルは、異なるアクセスユニット中の2つのブロックの位置を特定するために使用され得る。
[0123] 図10に、ビュー間ARPのための例示的な予測構造を示す。図10に示されているように、ビュー間ARPでは、ビデオデコーダ30は、現在ブロック170のための3つの関係するブロックを識別する。Base171は、現在ブロック170のディスパリティ動きベクトル(DMV172A)によって位置を特定される参照ビュー中の参照ブロックを表す。BaseRef173は、時間動きベクトルmvLX174Aと、利用可能な場合、Base171によって含まれている参照インデックスとによって位置を特定される参照ビュー中のBase171の参照ブロックを表す。CurrRef175は、Base171からの時間動き情報を再利用することによって識別される現在ビュー中の参照ブロックを表す。従って、ビデオデコーダ30は、mvLX174Bを使用してCurrRef175の位置を特定し得、ここで、mvLX174AおよびmvLX174Bは、同じ動きベクトルの2つのインスタンスを表す。DMV172Bは、Curr170とBase171との間のディスパリティがCurrRef175とBaseRef173との間のディスパリティに等しいことを示すために図10に含まれているDMV172Aに等しい。DMV172Bは、実際は、ビデオデコーダ30によって使用または生成されるディスパリティ動きベクトルに対応しないことがある。
[0124] 識別された3つのブロックを用いて、ビデオデコーダ30は、現在PU(すなわちCurr170)のための残差信号の残差予測子をCurrRefとBaseRefとの間の差として計算し得る。さらに、ビュー間予測子は重み付け係数(w)を乗算され得る。従って、ビデオデコーダ30によって決定された現在ブロック(Curr170)の最終予測子はBase+w*(CurrRef−BaseRef)として示される。
[0125] ビデオデコーダ30は、時間残差予測のためのARPのいくつかの知られている設計の場合のように、3つの相対ブロックを生成するために双線形フィルタ処理(bi-linear filtering)を使用し得る。さらに、Base171によって含まれている時間動きベクトルが、現在PUの第1の利用可能な時間参照ピクチャの異なるアクセスユニット中にある参照ピクチャを指すとき、ビデオデコーダ30は、時間動きベクトルを第1の利用可能な時間参照ピクチャにスケーリングし得、スケーリングされた動きベクトルは、異なるアクセスユニット中の2つのブロックの位置を特定するために使用され得る。
[0126] 以下で、ビデオコーダがARPのためのターゲット参照インデックスをそれによって導出し得る1つの例示的なプロセスについて説明する。3D−HEVCでは、ARPを使用できるピクチャごとにターゲット参照インデックスRpRefIdxLXが選定される。
[0127] 第1に、各参照ピクチャリスト(RefPicList0またはRefPicList1)に対応する時間参照ピクチャが識別される。
[0128] 第2に、そのような時間参照ピクチャを用いて、(スライスヘッダにおいて定義されている)アクティブレイヤ間参照ピクチャの参照ピクチャリスト中の参照ビューが1つずつ検査される。refViewIdxに等しいビュー順序インデックスをもつアクティブレイヤ間参照ピクチャが、現在ピクチャのRpRefIdxLXと同じPOCをもつ(DPB中にまだ存在する)時間参照ピクチャを有する場合、変数RefRpRefAvailFlagLX[refViewIdx] は1に等しく設定される。そうでない場合、RefRpRefAvailFlagLX[refViewIdx]は0に等しく設定される。NBDVプロセスが、0に等しいRefRpRefAvailFlagLX[i]に対応する(iによって示される)ビュー順序インデックスを返す場合、ARPは適用されるべきでない。
[0129] サブクローズH.8.3.9(残差予測のためのターゲット参照インデックスのための導出プロセス)における現在の3D−HEVC設計は以下の通りである。
このプロセスは、現在スライスがPスライスまたはBスライスであるときに呼び出される。
変数RpRefIdxL0およびRpRefIdxL1は−1に等しく設定され、変数RpRefPicAvailFlagL0およびRpRefPicAvailFlagL1は0に等しく設定される。
両端値を含む0〜1の範囲内のXについて、以下が適用される。
− Xが0に等しいか、または現在スライスがBスライスであるとき、以下が適用される。
− 両端値を含む0〜num_ref_idx_lX_active_minus1の範囲内のiについて、以下が適用される。
− PicOrderCnt(RefPicListX[i])がPicOrderCntValに等しくなく、RpRefPicAvailFlagLXが0に等しいとき、以下が適用される。
[Ed.(GT):上記の条件を満たすが、例えば、現在レイヤと比較してDepthFlagの異なる値を有する、DPB中に存在するピクチャがあり得る。]。
変数RpRefPicAvailFlagが(RpRefPicAvailFlagL0||RpRefPicAvailFlagL1)に等しく設定される。
RpRefPicAvailFlagが1に等しいとき、両端値を含む0〜1の範囲内のXについて、以下が適用される。
Xが0に等しいか、または現在スライスがBスライスであるとき、以下が適用される。
a. 両端値を含む0〜NumActiveRefLayerPics−1の範囲内のiについて、以下が適用される。
i. 変数refViewIdxがViewIdx(RefPicListX[i])に等しく設定される。
ii. 変数RefRpRefAvailFlagLX[refViewIdx]が0に等しく設定される。
iii. RpRefPicAvailFlagLXが1に等しく、PicOrderCnt(RefPicListX[RpRefIdxLX])に等しいPicOrderCnt(picA)、refViewIdxに等しいViewIdx(picA)、0に等しいDepthFlag(picA)をもち、「参照のために使用される」とマークされたピクチャpicAがDPB中にあるとき、RefRpRefAvailFlagLX[refViewIdx]は1に等しく設定される。
このサブクローズにおいて、i番目の参照ピクチャではなく、i番目のアクティブレイヤ間参照ピクチャので、この箇条「i.変数refViewIdxがViewIdx(RefPicListX[i])に等しく設定される。」には明らかな誤りがある。
[0130] ARPのコーディング効率をさらに改善するために、サブPU(ブロック)レベルARPがJCT3V−F0124において提案された。
[0131] この提案では、ARPが時間残差またはビュー間残差のいずれかに適用されるとき、現在PUの動きベクトルによって位置を特定される参照ブロックの中心位置をカバーするブロックに関連する動き情報が、NBDVからのDVを更新するか、または最終残差予測子を生成するために使用される時間動きベクトルを更新するために使用される。場合によっては、参照ブロックは異なる動き情報を含んでいることがある。従って、参照ブロック内の複数の動き情報を考慮する場合、より良いコーディング利得が予想され得る。
[0132] 1つの方法は、ブロックレベルでARPを行うことである。より詳細には、各PUが、この例では、いくつかのブロックに最初にスプリットされ(シミュレーションでは8×8ブロックサイズが使用される)、各ブロックは現在PUと同じ動き情報を共有する。
[0133] 各8×8ブロックについて、ディスパリティベクトルまたは時間動きベクトル情報がブロックごとに更新され得る。現在「ARPコード化」PUが時間参照ピクチャを有するとき、以下で説明する図11Aの例に示されているように、現在PU内の各8×8ブロックのディスパリティベクトルは異なることがある。現在ARPコード化PUがビュー間参照ピクチャを有するとき、以下で説明する図11Bの例に示されているように、現在PU内の各8×8ブロックの時間動きベクトルは異なることがある。
[0134] さらに、現在PUがARPでコーディングされる場合、クロマ成分の残差はコーディングされないことがある。
[0135] 図11Aに、ブロックレベル時間ARPの例示的な予測構造を示す。図11Aの例では、Curr180は、図11AにおいてA〜Dと標示された4つの8×8ブロックに分割されたPUを表す。Base181は、Curr180のディスパリティベクトルによって導出された参照/ベースビュー中の(A’〜D’と標示された)4つの参照ブロックを表す。Based181のブロックA’は、(DV[0]として図11Aに示された)ブロックAのディスパリティベクトルを使用して識別され、ブロックB’は、(DV[1]として図11Aに示された)ディスパリティベクトルを使用して識別される。図11Aには明示的に示されていないが、ブロックC’およびD’は、ブロックCおよびDのディスパリティベクトルを使用して同様に識別され得る。
[0136] 導出された動きベクトル(すなわち、時間ARPにおけるディスパリティベクトル)は8×8ブロックごとに更新され得る。時間ARPでは、(図11Aにおいて、i番目の8×8ブロックの場合、DV[i]によって示される)デフォルトderivedMvは、最初に、NBDVプロセスからのDVであるように設定される。CurrRef内のi番目の8×8ブロックの中心位置をカバーするブロックがディスパリティ動きベクトルを含んでいるとき、DV[i]は、そのディスパリティ動きベクトルになるように更新される。従って、図11Aに示されているように、ブロックA’〜D’は、ブロックA〜Dが互いに対して配置されるのとは別様に、互いに対して配置され得る。CurrRef183は、Curr180の(図11AにおいてmvLX184Aとして示された)時間動きベクトルによって導出されたcurr180と同じビュー中の4つのブロック(AP〜DP)を表す。BaseRef185は、現在ブロックの時間動きベクトル(mvLX184B)によって導出されたBase181と同じビュー中の4つのブロック(AR〜DR)を表す。図11Aの例では、mvLX184AおよびmvLX184Bは、同じ動きベクトルの2つの異なる適用例を表すものとする。すなわち、mvLX184AおよびmvLX184Bは同じx成分とy成分とを有する。
[0137] 残差予測子は、図11Aの例では、BaseRef−Baseとして示され、ここで、減算演算は、示されたピクセルアレイの各ピクセルに適用される。重み付け係数(w)が残差予測子にさらに乗算される。従って、ビデオデコーダ30によって決定されたブロックA〜Dのための最終予測子は、CurrRef[NP]+w*(Base[N’]−BaseRef[NR])として示され、NはA〜Dに対応する。
[0138] 図11Bに、ブロックレベルビュー間ARPの例示的な予測構造を示す。図11Bの例では、ビデオデコーダ30は、現在ブロック182の3つの関係するブロックを識別する。Base186は、現在ブロック182のディスパリティ動きベクトル(DMV188A)によって位置を特定される参照ビュー中の4つの参照ブロック(A〜D)を表す。BaseRef187は、時間動きベクトルmvLX[N]と、利用可能な場合、Base186によって含まれている参照インデックスとによって位置を特定される参照ビュー中のBase186の4つの参照ブロック(A’〜D’)を表し、ただし、NはブロックA〜Dに対応する。ビュー間ARPでは、(図11Bにおいて、i番目の8×8ブロックの場合、mvLX[i]によって示される)デフォルトderivedMvは、現在のARPの場合のように、Baseの中心位置をカバーするブロックに関連する時間動きベクトルに設定され得る。Base内のi番目の8×8ブロックの中心位置をカバーするブロックが時間動きベクトルを含んでいるとき、mvLX[i]は、その時間動きベクトルになるように更新される。従って、図11Aに示されているように、ブロックA’〜D’は、ブロックA〜Dが互いに対して配置されるのとは別様に、互いに対して配置され得る。
[0139] CurrRef189は、Base186からの時間動き情報を再利用することによって識別される現在ビュー中の4つの参照ブロック(AR〜DR)を表す。従って、例えば、ビデオデコーダ30は、mvLX[A]を使用してARの位置を特定し、mvLX[B]を使用してBRの位置を特定し、以下同様である。3つの識別されたブロックを用いて、ビデオデコーダ30は、現在PUの残差信号の残差予測子をCurrRef−BaseRef間の差として計算し得る。それは、異なるアクセスユニット中にあり得る。さらに、ビュー間予測子は重み付け係数(w)を乗算され得る。従って、ビデオデコーダ30によって決定された現在ブロックの最終予測子はBase[N]+w*(CurrRef[NR]−BaseRef[N’])として示される。
[0140] 以下で、ビデオコーダがスライスヘッダ中のアクティブレイヤ間参照をどのように指定または場合によっては決定し得るかについて説明する。
[0141] MV−HEVCでは、アクティブレイヤ間参照ピクチャは、現在ピクチャの初期参照ピクチャリストに入れられるである参照ピクチャのためのスライスヘッダ中でシグナリングされ得る。
[0142] アクティブレイヤ間参照ピクチャの数とレイヤ間参照ピクチャの各々とがスライスヘッダ中でシグナリングされ得る。現在レイヤがVPS中でシグナリングされた参照レイヤを有するでも、スライスレベルシグナリングにより、それが参照レイヤとしてシグナリング/導出されない場合、そのようなレイヤのピクチャはそれの参照ピクチャリストに挿入されないことがある。
[0143] 上記のことは以下の潜在的問題を生じ得る。現在の3D−HEVCは、ビデオデコーダ30が、NBDVのためのデフォルトレイヤ間参照ピクチャを見つけるために参照ピクチャリスト全体を検査することを必要とする。このプロセスは不要であり得る。その上、3D−HEVCでは、実際の深度参照レイヤがテクスチャピクチャのためのスライスレベルにおいてどのようにシグナリングされるべきか、および同様に、アクティブテクスチャ参照レイヤ(関連するもののみ)が深度ピクチャのためのスライスヘッダ中でどのようにシグナリングされるべきかがまだ決定されていない。
[0144] 本開示で説明する技法によれば、ビデオエンコーダ20は、参照ピクチャリストに記憶された各参照ピクチャを査定する必要なしにNBDVプロセスのためのデフォルトレイヤ間参照ピクチャを決定し、ディスパリティベクトルを決定するためにデフォルトレイヤ間参照ピクチャを使用してNBDVプロセスを行い、ディスパリティベクトルに基づいて3次元ビデオデータの現在ピクチャを符号化し得る。
[0145] すなわち、本開示では、デフォルトディスパリティベクトルがそれに関連するデフォルトNBDVピクチャの導出と、ARPのためのターゲット参照インデックスの導出とのための、3D−HEVCに関係する技法について説明する。言い換えれば、本開示の技法は、(例えば、inter_layer_pred_layer_idc[i]によって)スライスヘッダ中でシグナリングされるアクティブ参照レイヤが、テクスチャまたは深度である、現在ピクチャと同じプロパティを有するレイヤにのみ関係し得るように、(例えば、上述のように、テストモデル4に対して)3D−HEVCを変更し得る。従って、アクティブレイヤは、現在ピクチャの参照ピクチャリストに入れられ得るレイヤ間参照ピクチャを示すために使用され得る。
[0146] 本開示の一技法によれば、3D−HEVCでは、(例えば、inter_layer_pred_layer_idc[i]によって)スライスヘッダ中でシグナリングされるアクティブ参照レイヤは、テクスチャまたは深度である、現在ピクチャと同じプロパティを有するレイヤのみに関係し得る。従って、そのようなアクティブレイヤは、現在ピクチャの参照ピクチャリストに入れられ得るレイヤ間参照ピクチャを示すために使用されるが、他のタイプの依存性を示すために使用されない。
[0147] NBDVピクチャのデフォルトビュー順序インデックスは、スライスヘッダ中でシグナリングされるか、またはスライスレベルにおいて導出される、第1のアクティブレイヤ間参照のビュー順序インデックスであると導出され得る。
[0148] 本開示の一技法によれば、ビデオエンコーダ20は、DoNBDVまたはBVSPが深度レイヤからの情報を使用して行われる場合、テクスチャレイヤが深度レイヤに依存することを、例えばVPS中でシグナリングし得る。代替的に、ビデオエンコーダ20はこの依存性をシグナリングしないことがあるが、代わりに、ビデオエンコーダ20およびビデオデコーダ30は依存性を導出し得る。例えば、テクスチャレイヤAがテクスチャレイヤBに依存する場合、テクスチャレイヤAは、テクスチャレイヤCがテクスチャレイヤBと同じビューに属するとき、(存在する場合)深度レイヤCにも依存する。
[0149] VPS中で、ビデオエンコーダ20は、テクスチャレイヤが深度レイヤと同じビューに属する場合、深度レイヤがテクスチャレイヤに依存することまたは依存しないことをシグナリングし得る。シングリング機構は、現在のMV−HEVCの場合と同じであり、従って、依存レイヤがテクスチャであるのか深度であるのかに関係しないことがある。
[0150] ビデオデコーダ30は、例えば、VPS中でシグナリングされた現在テクスチャレイヤの直接依存レイヤに基づいて、ビデオデータの現在テクスチャレイヤがビデオデータの深度レイヤに依存すると決定し、深度レイヤを使用して現在テクスチャレイヤを処理し得る。言い換えれば、ビデオデコーダ30は、パラメータセット(例えばVPS)中でシグナリングされた1つまたは複数のパラメータに基づいて、ビデオデータのテクスチャレイヤがビデオデータの深度レイヤに依存すると決定し、テクスチャレイヤが深度レイヤに依存することに応答して、深度レイヤを処理し得る。深度レイヤを処理することの一部として、ビデオデコーダ30は、深度レイヤから取得された情報を使用して、DoNBDVプロセスまたはBVSPプロセスのうちの少なくとも1つを使用してテクスチャレイヤのブロックを予測し得る。ビデオデコーダ30は、パラメータセットとは別に、例えばテクスチャレイヤのスライスのためのスライスヘッダ中で、テクスチャレイヤのスライスのためのアクティブ参照スライスレイヤの指示を受信し得る。ビデオデコーダ30は、パラメータセットとは別に、例えば深度レイヤのスライスのためのスライスヘッダ中で、深度レイヤのスライスのためのアクティブ参照スライスレイヤの指示を受信し得る。これらの例では、深度レイヤはベース深度レイヤであり得、テクスチャレイヤは非ベーステクスチャレイヤであり得る。深度レイヤは、依存テクスチャレイヤとは異なるテクスチャレイヤに対応し得る。
[0151] 代替的に、フラグ(例えばtexture_dep_flag)が同じ目的のためにシグナリングされ得る。例えば、このフラグが1である場合、現在深度レイヤは同じビュー中のテクスチャレイヤに依存し得る。そうでない場合、現在深度レイヤは同じビュー中のテクスチャレイヤに依存しない。これらおよび他の例では、textureDepFlagは、上記の2つの場合のいずれかで導出され得、textureDepFlagが1であるときのみ、MPIが有効にされ、mpi_flag[layerId]がシグナリングされる。さらに、textureDepFlagが1に等しいときのみ、DMMモード4(深度ブロックの区分がコロケートテクスチャブロックに依存する)が有効にされ得る。代替的に、そのような依存性はシグナリングされないことがあるが、代わりに、常に仮定され得る。
[0152] これらおよび他の例では、ビデオエンコーダ20は、異なる深度レイヤとテクスチャレイヤとの間の1つまたは複数の依存性に基づいて、深度レイヤへのテクスチャレイヤの依存性を導出し得る。これらおよび他の例では、ビデオエンコーダ20は、異なる深度レイヤとテクスチャレイヤとの間の1つまたは複数の依存性に基づいて、深度レイヤへのテクスチャレイヤの依存性を導出し得る。ビデオエンコーダ20は、テクスチャレイヤが深度レイヤと同じビューに属するかどうかに基づいて、深度レイヤがテクスチャレイヤに依存するかどうかを決定し得る。
[0153] すなわち、各テクスチャスライスについて、参照深度レイヤへの現在テクスチャピクチャのためのスライスレベル依存性は、スライスヘッダ中でシグナリングされたアクティブ参照レイヤに属さないことがある。いくつかの例では、それは、VPS中でシグナリングされたものと常に潜在的に同じであると仮定される。これらの例では、参照深度レイヤへの現在テクスチャピクチャのためのスライスレベル依存性は、テクスチャ参照レイヤが現在スライスのアクティブ参照レイヤである場合(アクティブ参照レイヤのアクセスユニット中のピクチャが現在ピクチャの復号のために必要とされ得ることを意味する)、同じビューの深度参照レイヤは、同じアクセスユニット中に存在する場合、現在スライス/ピクチャの参照レイヤであるという形で導出される。いくつかの例では、テクスチャレイヤのためのそのような依存深度レイヤは、現在テクスチャスライスのスライスヘッダ中で明示的にシグナリングされ得る。
[0154] 各深度スライスについて、それが同じビューのおよび同じアクセスユニットのテクスチャピクチャに依存するかどうかを示す、スライスヘッダ中のフラグが存在し得る。代替的に、そのようなフラグはシグナリングされず、依存性が存在することを意味する、1であると常に仮定される。代替的に、そのようなフラグは、MPI(現在深度レイヤについて1であるmpi_flag[layerId])またはDMMモード4が深度レイヤ全体に対して有効にされるときのみシグナリングされる。
[0155] 代替的に、そのようなフラグは存在せず、textureDepFlagが0に等しい場合、またはMPIとDMMの両方が深度レイヤ全体に対して無効にされる場合、0に等しいと推論される。そのようなフラグが0に等しいとき、同じビュー中の同じアクセスユニットのテクスチャレイヤへの依存性は可能にされず、それに依存するコーディングツールは無効にされる。無効にされるツールは、現在スライス/ピクチャのためのMPIとDMM4とを含む。
[0156] 言い換えれば、ビデオエンコーダ20は、デフォルトレイヤ間参照ピクチャを決定するとき、現在ピクチャに関連するスライスヘッダからデフォルトレイヤ間参照ピクチャを決定し得る。
[0157] これらおよび他の例では、現在ピクチャは現在テクスチャピクチャを備える。現在ピクチャを符号化するとき、ビデオエンコーダ20は、現在テクスチャピクチャを符号化するために、ディスパリティベクトルに基づいてビュー合成予測(VPS:view synthesis prediction)を行い得る。NBDVプロセスを行うとき、ビデオエンコーダ20は、参照深度レイヤへの現在テクスチャピクチャのためのスライスレベル依存性が、現在テクスチャピクチャに関連するスライスヘッダ中でシグナリングされるアクティブ参照レイヤに属さないが、VPSを行うためにシグナリングされるアクティブ参照レイヤに属するように、その依存性を決定し得る。
[0158] これらおよび他の例では、ビデオエンコーダ20は、スライスヘッダから、深度スライスが同じビューのおよび同じアクセスユニットのテクスチャピクチャに依存するかどうかをさらに決定し得る。
[0159] 動作中、ビデオエンコーダ20は、3D−HEVC規格の改訂バージョンに関して指定された以下の技法に従って動作し得、ここで、改訂は、削除を示すための取消し線または追加を示すための下線を使用して示されている。
[0160] この態様は、上記で説明した事例に対応し、ここにおいて、アクティブ参照レイヤは、現在ピクチャと同じテクスチャ/深度プロパティをもつアクティブ参照レイヤのみに関係し得る。
[0161] 変更は、デフォルトNBDV参照ピクチャおよびARPのターゲット参照インデックスに関するものである。
[0162] デフォルト参照ビュー順序インデックスの導出は、ARPにおけるターゲット参照ピクチャの導出プロセスの場合と同様の方法で簡略化されるべきであることが提案される。さらに、ARPにおけるターゲット参照ピクチャの導出プロセスに関するバグフィックスが行われる。
変更されたテキストには下線が引かれ、削除されたテキストには
が引かれている。
H.8.3.8 ディスパリティ導出のためのデフォルト参照ビュー順序インデックスのための導出プロセス
このプロセスは、現在スライスがPスライスまたはBスライスであるときに呼び出される。
H.8.3.9 残差予測のためのターゲット参照インデックスのための導出プロセス
このプロセスは、現在スライスがPスライスまたはBスライスであるときに呼び出される。
変数RpRefIdxL0およびRpRefIdxL1は−1に等しく設定され、変数RpRefPicAvailFlagL0およびRpRefPicAvailFlagL1は0に等しく設定される。
両端値を含む0〜1の範囲内のXについて、以下が適用される。
Xが0に等しいか、または現在スライスがBスライスであるとき、以下が適用される。
両端値を含む0〜num_ref_idx_lX_active_minus1の範囲内のiについて、以下が適用される。
PicOrderCnt(RefPicListX[i])がPicOrderCntValに等しくなく、RpRefPicAvailFlagLXが0に等しいとき、以下が適用される。
変数RpRefPicAvailFlagが(RpRefPicAvailFlagL0||RpRefPicAvailFlagL1)に等しく設定される。
RpRefPicAvailFlagが1に等しいとき、両端値を含む0〜1の範囲内のXについて、以下が適用される。
Xが0に等しいか、または現在スライスがBスライスであるとき、以下が適用される。
両端値を含む0〜NumActiveRefLayerPics−1の範囲内のiについて、以下が適用される。
変数RefRpRefAvailFlagLX[refViewIdx]が0に等しく設定される。
RpRefPicAvailFlagLXが1に等しく、PicOrderCnt(RefPicListX[RpRefIdxLX])に等しいPicOrderCnt(picA)、refViewIdxに等しいViewIdx(picA)、0に等しいDepthFlag(picA)をもち、「参照のために使用される」とマークされたピクチャpicAがDPB中にあるとき、RefRpRefAvailFlagLX[refViewIdx]は1に等しく設定される。
[0163] その上、本技法の様々な態様は、ビデオコーダが、アクティブ参照レイヤの第1の非0セットを決定し、アクティブ参照レイヤの第2の非0セットを決定し、アクティブ参照レイヤの第1の非0セットおよびアクティブ参照レイヤの第2の非0セットのうちの1つまたは複数に基づいて3次元ビデオデータをコーディングすることを可能にし得る。
[0164] これらおよび他の例では、アクティブ参照レイヤの第1の非0セットは、コーディングされるべき3次元ビデオデータの現在テクスチャレイヤのためのテクスチャ参照レイヤのみを含む。これらおよび他の例では、アクティブ参照レイヤの第2の非0セットは現在テクスチャレイヤのための残りのレイヤを含む。これらおよび他の例では、アクティブ参照レイヤの第2の非0セットは残りのレイヤを含む。
[0165] これらおよび他の例では、アクティブ参照レイヤの第1の非0セットは、コーディングされるべき3次元ビデオデータの深度テクスチャレイヤのための深度参照レイヤのみを含む。これらおよび他の例では、アクティブ参照レイヤの第2の非0セットは現在深度レイヤのための残りのレイヤを含む。これらおよび他の例では、アクティブ参照レイヤの第2の非0セットは残りのレイヤを含む。
[0166] これらおよび他の例では、3次元ビデオデータをコーディングすることは、ビデオエンコーダ20を用いて3次元ビデオデータを符号化することを備える。
[0167] これらおよび他の例では、3次元ビデオデータは符号化3次元ビデオデータを備え、3次元ビデオデータをコーディングすることは、ビデオデコーダ30を用いて符号化3次元ビデオデータを復号することを備える。
[0168] すなわち、アクティブ参照レイヤが、現在テクスチャピクチャのための深度レイヤまたは現在深度レイヤのためのテクスチャレイヤを含むとき。ビデオコーダはアクティブ参照レイヤの2つのセットを作成し得る。いくつかの例では、第1のセットは、現在テクスチャレイヤのためのテクスチャ参照レイヤのみを含んでいるか、または現在深度レイヤのための深度参照レイヤのみを含んでいる、同じプロパティのアクティブ参照レイヤセットを有し得る。これらおよび他の例では、第2のセットは、残りのアクティブ参照レイヤを含んでいる、異なるプロパティのアクティブ参照レイヤセットである。アクティブ参照レイヤを必要とする3D−HEVCにおける復号プロセスは、同じプロパティのアクティブレイヤセットによって置き換えられ得る。
[0169] 動作中、ビデオエンコーダ20および/またはビデオデコーダ30は、3D−HEVC規格の改訂バージョンに関して指定された以下の技法に従って動作し得、ここで、改訂は、削除を示すための取消し線または追加を示すための下線を使用して示されている。
inter_layer_pred_layer_idcのセマンティクスは以下のように変更される。
inter_layer_pred_layer_idc[i]は、レイヤ間予測のために現在ピクチャによって使用され得るi番目のピクチャのnuh_layer_idを表す変数RefPicLayerId[i]を指定する。シンタックス要素inter_layer_pred_layer_idc[i]の長さはCeil(Log2(NumDirectRefLayers[nuh_layer_id]))ビットである。inter_layer_pred_layer_idc[i]の値は、両端値を含む0〜NumDirectRefLayers[nuh_layer_id]−1の範囲内にあることになる。存在しないとき、inter_layer_pred_layer_idc[i]の値はrefLayerPicIdc[i]に等しいと推論される。
iが0よりも大きいとき、inter_layer_pred_layer_idc[i]はinter_layer_pred_layer_idc[i−1]よりも大きくなる。
両端値を含む0〜NumActiveRefLayerPics−1の範囲内のiの全ての値のための変数RefPicLayerId[i]は以下のように導出される。
両端値を含む0〜NumActiveRefLayerPics−1の範囲内のiの値ごとに、以下2つの条件のいずれかが真になることが、ビットストリームコンフォーマンスの要件である。
− max_tid_il_ref_pics_plus1[LayerIdxInVps[RefPicLayerId[i]]][LayerIdxInVps[nuh_layer_id]]の値がTemporalIdよりも大きい。
− max_tid_il_ref_pics_plus1[LayerIdxInVps[RefPicLayerId[i]]][LayerIdxInVps[nuh_layer_id]]の値とTemporalIdの値が両方とも0に等しく、RefPicLayerId[i]に等しいnuh_layer_idをもつ現在アクセスユニット中のピクチャがIRAPピクチャである。
RefPicLayerIdは、現在、同じプロパティのアクティブ参照レイヤセットを表し、RefPicLayerIdDiffPropertyは、現在、異なるプロパティのアクティブ参照レイヤセットを表すことに留意されたい。
H.8.3.8 ディスパリティ導出のためのデフォルト参照ビュー順序インデックスのための導出プロセス
このプロセスは、現在スライスがPスライスまたはBスライスであるときに呼び出される。
H.8.3.9 残差予測のためのターゲット参照インデックスのための導出プロセス
このプロセスは、現在スライスがPスライスまたはBスライスであるときに呼び出される。
変数RpRefIdxL0およびRpRefIdxL1は−1に等しく設定され、変数RpRefPicAvailFlagL0およびRpRefPicAvailFlagL1は0に等しく設定される。
両端値を含む0〜1の範囲内のXについて、以下が適用される。
− Xが0に等しいか、または現在スライスがBスライスであるとき、以下が適用される。
− 両端値を含む0〜num_ref_idx_lX_active_minus1の範囲内のiについて、以下が適用される。
− PicOrderCnt(RefPicListX[i])がPicOrderCntValに等しくなく、RpRefPicAvailFlagLXが0に等しいとき、以下が適用される。
変数RpRefPicAvailFlagが(RpRefPicAvailFlagL0||RpRefPicAvailFlagL1)に等しく設定される。
RpRefPicAvailFlagが1に等しいとき、両端値を含む0〜1の範囲内のXについて、以下が適用される。
− Xが0に等しいか、または現在スライスがBスライスであるとき、以下が適用される。
− 両端値を含む0〜NumActiveRefLayerPics−1の範囲内のiについて、以下が適用される。
− 変数RefRpRefAvailFlagLX[refViewIdx]が0に等しく設定される。
− RpRefPicAvailFlagLXが1に等しく、PicOrderCnt(RefPicListX[RpRefIdxLX])に等しいPicOrderCnt(picA)、refViewIdxに等しいViewIdx(picA)、0に等しいDepthFlag(picA)をもち、「参照のために使用される」とマークされたピクチャpicAがDPB中にあるとき、RefRpRefAvailFlagLX[refViewIdx]は1に等しく設定される。
[0170] 本技法の様々な態様はまた、ビデオコーダが、参照レイヤがテクスチャレイヤであるのか深度レイヤであるのかの決定に基づいてアクティブ参照レイヤの非0セットを決定し、アクティブ参照レイヤの決定された非0セットに基づいて3次元ビデオデータをコーディングすることを可能にし得る。
[0171] 動作中、ビデオコーダは、3D−HEVC規格の改訂バージョンに関して指定された以下の技法に従って動作し得、ここで、改訂は、削除を示すための取消し線または追加を示すための下線を使用して示されている。
[0172] この態様は、アクティブ参照レイヤの2つのセットを潜在的に作成しないことによって、直前の態様と同じ目的を達成し得る。この場合、アクティブ参照レイヤに依存する復号プロセスは、参照レイヤがテクスチャレイヤであるのか深度レイヤであるのかを検査する必要があり得る。
H.8.3.8 ディスパリティ導出のためのデフォルト参照ビュー順序インデックスのための導出プロセス
このプロセスは、現在スライスがPスライスまたはBスライスであるときに呼び出される。
H.8.3.9 残差予測のためのターゲット参照インデックスのための導出プロセス
このプロセスは、現在スライスがPスライスまたはBスライスであるときに呼び出される。
変数RpRefIdxL0およびRpRefIdxL1は−1に等しく設定され、変数RpRefPicAvailFlagL0およびRpRefPicAvailFlagL1は0に等しく設定される。
両端値を含む0〜1の範囲内のXについて、以下が適用される。
Xが0に等しいか、または現在スライスがBスライスであるとき、以下が適用される。
両端値を含む0〜num_ref_idx_lX_active_minus1の範囲内のiについて、以下が適用される。
PicOrderCnt(RefPicListX[i])がPicOrderCntValに等しくなく、RpRefPicAvailFlagLXが0に等しいとき、以下が適用される。
変数RpRefPicAvailFlagが(RpRefPicAvailFlagL0||RpRefPicAvailFlagL1)に等しく設定される。
RpRefPicAvailFlagが1に等しいとき、両端値を含む0〜1の範囲内のXについて、以下が適用される。
Xが0に等しいか、または現在スライスがBスライスであるとき、以下が適用される。
両端値を含む0〜NumActiveRefLayerPics−1の範囲内のiについて、以下が適用される。
変数RefRpRefAvailFlagLX[refViewIdx]が0に等しく設定される。
RpRefPicAvailFlagLXが1に等しく、PicOrderCnt(RefPicListX[RpRefIdxLX])に等しいPicOrderCnt(picA)、refViewIdxに等しいViewIdx(picA)、0に等しいDepthFlag(picA)をもち、「参照のために使用される」とマークされたピクチャpicAがDPB中にあるとき、RefRpRefAvailFlagLX[refViewIdx]は1に等しく設定される。
[0173] 図12は、時間動きベクトル予測のための本開示で説明する技法を実装し得る例示的なビデオエンコーダ20を示すブロック図である。ビデオエンコーダ20は、ビデオスライス内のビデオブロックのイントラコーディングおよびインターコーディングを行い得る。イントラコーディングは、所与のピクチャ内のビデオの空間冗長性を低減または除去するために空間予測に依拠する。インターコーディングは、ビデオシーケンスの隣接ピクチャまたはピクチャ内のビデオの時間冗長性を低減または除去するために時間予測に依拠する。イントラモード(Iモード)は、いくつかの空間ベースの圧縮モードのいずれかを指すことがある。単方向予測(Pモード)または双予測(Bモード)などのインターモードは、いくつかの時間ベースの圧縮モードのいずれかを指すことがある。
[0174] 図12に示すように、ビデオエンコーダ20は、符号化されるべきビデオデータを受信する。図12の例では、ビデオエンコーダ20は、ビデオデータメモリ38と、モード選択ユニット40と、加算器50と、変換処理ユニット52と、量子化ユニット54と、エントロピー符号化ユニット56と、復号ピクチャバッファ64とを含む。モード選択ユニット40は、動き推定ユニット42と、動き補償ユニット44と、イントラ予測ユニット46と、パーティションユニット48とを含む。ビデオブロック再構成のために、ビデオエンコーダ20はまた、逆量子化ユニット58と、逆変換処理ユニット60と、加算器62とを含む。再構成されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタ処理するデブロッキングフィルタ(図12に図示せず)も含まれ得る。所望される場合、デブロッキングフィルタは、一般に、加算器62の出力をフィルタ処理することになる。追加のループフィルタ(ループ内またはループ後)もデブロッキングフィルタに加えて使用され得る。そのようなフィルタは、簡潔のために示されていないが、所望される場合、(ループ内フィルタとして)加算器50の出力をフィルタ処理し得る。
[0175] ビデオデータメモリ38は、ビデオエンコーダ20の構成要素によって符号化されるべきビデオデータを記憶し得る。ビデオデータメモリ38に記憶されるビデオデータは、例えば、ビデオソース18から取得され得る。復号ピクチャバッファ64は、例えば、イントラコーディングモードまたはインターコーディングモードでビデオエンコーダ20によってビデオデータを符号化する際に使用する参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ38および復号ピクチャバッファ64は、同期DRAM(SDRAM)を含むダイナミックランダムアクセスメモリ(DRAM)、磁気抵抗RAM(MRAM)、抵抗性RAM(RRAM(登録商標))、または他のタイプのメモリデバイスなど、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ38および復号ピクチャバッファ64は、同じメモリデバイスまたは別個のメモリデバイスによって与えられ得る。様々な例では、ビデオデータメモリ38は、ビデオエンコーダ20の他の構成要素とともにオンチップであるか、またはそれらの構成要素に対してオフチップであり得る。
[0176] 符号化プロセス中に、ビデオエンコーダ20は、コーディングされるべきピクチャまたはスライスを受信する。ピクチャまたはスライスは複数のビデオブロックに分割され得る。動き推定ユニット42および動き補償ユニット44は、時間圧縮を行うために、1つまたは複数の参照ピクチャ中の1つまたは複数のブロックに対する受信したビデオブロックのインター予測コーディングを行う。イントラ予測ユニット46は、代替的に、空間圧縮を行うために、コーディングされるべきブロックと同じピクチャまたはスライス中の1つまたは複数の隣接ブロックに対する受信したビデオブロックのイントラ予測コーディングを行い得る。ビデオエンコーダ20は、例えば、ビデオデータのブロックごとに適切なコーディングモードを選択するために、複数のコーディングパスを行い得る。
[0177] その上、パーティションユニット48は、前のコーディングパスにおける前の区分方式の評価に基づいて、ビデオデータのブロックをサブブロックに区分し得る。例えば、パーティションユニット48は、初めにピクチャまたはスライスをLCUに区分し、レートひずみ分析(例えば、レートひずみ最適化)に基づいてLCUの各々をサブCUに区分し得る。モード選択ユニット40は、さらに、サブCUへのLCUの区分を示す4分木データ構造を生成し得る。4分木のリーフノードCUは、1つまたは複数のPUと1つまたは複数のTUとを含み得る。
[0178] モード選択ユニット40は、例えば、誤差結果に基づいて、コーディングモード、すなわち、イントラまたはインターのうちの1つを選択し得、得られたイントラコード化ブロックまたはインターコード化ブロックを、残差ブロックデータを生成するために加算器50に与え、参照ピクチャとして使用する符号化ブロックを再構成するために加算器62に与える。モード選択ユニット40はまた、動きベクトル、イントラモードインジケータ、パーティション情報、および他のそのようなシンタックス情報など、シンタックス要素をエントロピー符号化ユニット56に与える。
[0179] 動き推定ユニット42、動きベクトル予測ユニット43、および動き補償ユニット44は、高度に統合され得るが、概念的な目的のために別々に示されている。動き推定ユニット42によって行われる動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、例えば、現在ピクチャ(または他のコード化ユニット)内でコーディングされている現在ブロックに対する参照ピクチャ(または他のコード化ユニット)内の予測ブロックに対する現在ピクチャ内のビデオブロックのPUの変位を示し得る。
[0180] 予測ブロックは、絶対差分和(SAD:sum of absolute difference)、2乗差分和(SSD:sum of square difference)、または他の差分メトリックによって決定され得るピクセル差分に関して、コーディングされるべきブロックにぴったり一致することがわかるブロックである。いくつかの例では、ビデオエンコーダ20は、参照ピクチャバッファと呼ばれることもある復号ピクチャバッファ64に記憶された参照ピクチャのサブ整数ピクセル位置の値を計算し得る。例えば、ビデオエンコーダ20は、参照ピクチャの1/4ピクセル位置、1/8ピクセル位置、または他の分数ピクセル位置の値を補間し得る。従って、動き推定ユニット42は、フルピクセル位置と分数ピクセル位置とに関して動き探索を行い、分数ピクセル精度で動きベクトルを出力し得る。
[0181] 動き推定ユニット42は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコード化スライス中のビデオブロックのPUのための動きベクトルを計算する。従って、概して、動きベクトルのためのデータは、参照ピクチャリストと、参照ピクチャリストへのインデックス(ref_idx)と、水平成分と、垂直成分とを含み得る。参照ピクチャは、第1の参照ピクチャリスト(リスト0)、第2の参照ピクチャリスト(リスト1)、または結合参照ピクチャリスト(リストc)から選択され得、それらの各々が、復号ピクチャバッファ64に記憶された1つまたは複数の参照ピクチャを識別する。
[0182] 動き推定ユニット42は、参照ピクチャの予測ブロックを識別する動きベクトルを生成し、エントロピー符号化ユニット56と動き補償ユニット44とに送り得る。すなわち、動き推定ユニット42は、予測ブロックを含んでいる参照ピクチャリストと、予測ブロックのピクチャを識別する参照ピクチャリストへのインデックスと、識別されたピクチャ内の予測ブロックの位置を特定するための水平成分および垂直成分とを識別する動きベクトルデータを生成し、送り得る。
[0183] いくつかの例では、現在PUのための実際の動きベクトルを送るのではなく、動きベクトル予測ユニット43は、動きベクトルを通信するために必要とされるデータの量をさらに低減するために、動きベクトルを予測し得る。この場合、動きベクトル自体を符号化し、通信するのではなく、動きベクトル予測ユニット43は、知られている(または知り得る)動きベクトルに対する動きベクトル差分(MVD)を生成し得る。現在動きベクトルを定義するためにMVDとともに使用され得る、知られている動きベクトルは、いわゆる動きベクトル予測子(MVP)によって定義され得る。概して、有効なMVPであるために、予測のために使用されている動きベクトルは、現在コーディングされている動きベクトルと同じ参照ピクチャを指さなければならない。
[0184] いくつかの例では、以下で図6および図7に関してより詳細に説明するように、動きベクトル予測ユニット43は、MVPのための候補として空間および/または時間方向におけるいくつかの隣接ブロックを含む動きベクトル予測子候補リストを構築し得る。複数の動きベクトル予測子候補が(複数の候補ブロックから)利用可能であるとき、動きベクトル予測ユニット43は、所定の選択基準に従って現在ブロックのための動きベクトル予測子を決定し得る。例えば、動きベクトル予測ユニット43は、符号化レートおよびひずみの分析に基づいて(例えば、レートひずみコスト分析または他のコーディング効率分析を使用して)、候補セットから最も正確な予測子を選択し得る。他の例では、動きベクトル予測ユニット43は動きベクトル予測子候補の平均を生成し得る。動きベクトル予測子を選択する他の方法も可能である。
[0185] 動きベクトル予測子を選択するときに、動きベクトル予測ユニット43は、MVP候補ブロックを含んでいる参照ピクチャリスト中のどこにMVPがあるかを(例えば、ビデオデコーダ30などの)ビデオデコーダに通知するために使用され得る、動きベクトル予測子インデックス(mvp_flag)を決定し得る。動きベクトル予測ユニット43はまた、現在ブロックと選択されたMVPとの間のMVDを決定し得る。MVPインデックスおよびMVDは、動きベクトルを再構成するために使用され得る。
[0186] いくつかの例では、動きベクトル予測ユニット43は、代わりに、いわゆる「マージモード」を実装し得、マージモードでは、動きベクトル予測ユニット43は、予測ビデオブロックの(動きベクトル、参照ピクチャインデックス、予測方向、または他の情報などの)動き情報を現在ビデオブロックと「マージ」し得る。従って、マージモードに関して、現在ビデオブロックは、別の知られている(または知り得る)ビデオブロックから動き情報を継承する。動きベクトル予測ユニット43は、マージモードのための候補として空間および/または時間方向におけるいくつかの隣接ブロックを含むマージモード候補リストを構築し得る。動きベクトル予測ユニット43は、マージング候補ブロックを含んでいる参照ピクチャリスト中のどこにマージングビデオブロックがあるかを(例えば、ビデオデコーダ30などの)ビデオデコーダに通知するために使用され得るインデックス値(例えば、merge_idx)を決定し得る。
[0187] 動きベクトル予測ユニット43は、マルチビューコーディングにおいて、例えば、MVDを生成するか、またはマージするために、動きベクトル予測子を識別し得る。例えば、動きベクトル予測ユニット43は、現在ブロックのための動きベクトルを予測するために、現在ブロックとは異なるビューコンポーネント中のブロックからディスパリティ動きベクトルを識別し得る。他の例では、動きベクトル予測ユニット43は、現在ブロックのための動きベクトルを予測するために、現在ブロックとは異なるビューコンポーネント中のブロックから時間動きベクトルを識別し得る。
[0188] ディスパリティ動きベクトル予測に関して、動きベクトル予測ユニット43は、(「現在ブロック」と呼ばれる)現在コーディングされているビデオブロックのための動きベクトルを予測するために、候補ブロックからディスパリティ動きベクトル候補を識別し得る。現在ブロックは、候補ブロックと同じピクチャ中にあり得(例えば、候補ブロックに空間的に隣接する)、または候補ブロックと同じビュー内の別のピクチャ中にあり得る。いくつかの例では、動きベクトル予測ユニット43は、現在ブロックのための動きベクトルとは異なるビュー中の参照ピクチャを指す動きベクトル予測子を識別し得る。そのような場合、本開示の技法によれば、動きベクトル予測ユニット43は、2つのビュー(例えば、動きベクトル予測子によって指されたビューと現在動きベクトルによって指されたビューとの)間のカメラロケーションの差に基づいて動きベクトル予測子をスケーリングし得る。例えば、動きベクトル予測ユニット43は、2つのビュー間の差に従ってディスパリティ動きベクトル予測子をスケーリングし得る。いくつかの例では、2つのビュー間の差は、ビューに関連するビュー識別子(view_id)間の差によって表され得る。
[0189] 時間動きベクトル予測に関して、動きベクトル予測ユニット43は、現在ブロックのための動きベクトルを予測するために、現在ブロックとは異なるビュー中の候補ブロックから時間動きベクトル候補を識別し得る。例えば、動きベクトル予測ユニット43は、第1のビューの別の時間ロケーションにあるピクチャ中のブロックを指す、第1のビュー中の時間動きベクトル予測子候補を識別し得る。動きベクトル予測ユニット43は、第2の異なるビュー中の現在ブロックに関連する動きベクトルを予測するために、識別された時間動きベクトル予測子候補を使用し得る。(動きベクトル予測子候補を含む)候補ブロックと現在ブロックとはコロケートされ得る。しかしながら、2つのビュー間のディスパリティにより、候補ブロックの相対ロケーションは現在ブロックからオフセットされることがある。
[0190] 動き補償ユニット44によって行われる動き補償は、動き推定ユニット42によって決定された動きベクトルおよび/または動きベクトル予測ユニット43からの情報に基づいて、予測ブロックをフェッチまたは生成することを伴い得る。この場合も、動き推定ユニット42と、動きベクトル予測ユニット43と、動き補償ユニット44とは、いくつかの例では、機能的に統合され得る。現在ビデオブロックのPUのための動きベクトルを受信すると、動き補償ユニット44は、動きベクトルが参照ピクチャリストのうちの1つにおいてそれを指す予測ブロックの位置を特定し得る。
[0191] 加算器50は、以下で説明するように、コーディングされている現在ビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって、残差ビデオブロックを形成する。概して、動き推定ユニット42はルーマ成分に対して動き推定を行い、動き補償ユニット44は、クロマ成分とルーマ成分の両方のための、ルーマ成分に基づいて計算された動きベクトルを使用する。モード選択ユニット40はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ30が使用するビデオブロックとビデオスライスとに関連するシンタックス要素を生成し得る。
[0192] イントラ予測ユニット46は、上記で説明したように、動き推定ユニット42と動き補償ユニット44とによって行われるインター予測の代替として、現在ブロックをイントラ予測し得る。特に、イントラ予測ユニット46は、現在ブロックを符号化するために使用すべきイントラ予測モードを決定し得る。いくつかの例では、イントラ予測ユニット46は、例えば、別個の符号化パス中に、様々なイントラ予測モードを使用して現在ブロックを符号化し得、イントラ予測ユニット46(または、いくつかの例では、モード選択ユニット40)は、テストされたモードから使用するのに適切なイントラ予測モードを選択し得る。
[0193] 例えば、イントラ予測ユニット46は、様々なテストされたイントラ予測モードについてレートひずみ分析を使用してレートひずみ値を計算し、テストされたモードの中で最良のレートひずみ特性を有するイントラ予測モードを選択し得る。レートひずみ分析は、概して、符号化ブロックと、符号化ブロックを生成するために符号化された元の符号化されていないブロックとの間のひずみ(または誤差)の量、並びに符号化ブロックを生成するために使用されるビットレート(すなわち、ビット数)を決定する。イントラ予測ユニット46は、どのイントラ予測モードがブロックについて最良のレートひずみ値を呈するかを決定するために、様々な符号化ブロックについてのひずみおよびレートから比を計算し得る。
[0194] ブロックのためのイントラ予測モードを選択した後に、イントラ予測ユニット46は、ブロックのための選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット56に与え得る。エントロピー符号化ユニット56は、選択されたイントラ予測モードを示す情報を符号化し得る。ビデオエンコーダ20は、複数のイントラ予測モードインデックステーブルおよび複数の変更イントラ予測モードインデックステーブル(コードワードマッピングテーブルとも呼ばれる)と、様々なブロックの符号化コンテキストの定義と、コンテキストの各々について使用すべき、最確イントラ予測モード、イントラ予測モードインデックステーブル、および変更イントラ予測モードインデックステーブルの指示とを含み得る構成データを送信ビットストリーム中に含め得る。
[0195] ビデオエンコーダ20は、コーディングされている元のビデオブロックから、モード選択ユニット40からの予測データを減算することによって残差ビデオブロックを形成する。加算器50は、この減算演算を行う1つまたは複数の構成要素を表す。変換処理ユニット52は、離散コサイン変換(DCT)または概念的に同様の変換などの変換を残差ブロックに適用し、残差変換係数値を備えるビデオブロックを生成する。変換処理ユニット52は、DCTと概念的に同様である他の変換を行い得る。ウェーブレット変換、整数変換、サブバンド変換または他のタイプの変換も使用され得る。いずれの場合も、変換処理ユニット52は、変換を残差ブロックに適用し、残差変換係数のブロックを生成する。変換は、残差情報をピクセル値領域から周波数領域などの変換領域に変換し得る。
[0196] 変換処理ユニット52は、得られた変換係数を量子化ユニット54に送り得る。量子化ユニット54は、ビットレートをさらに低減するために変換係数を量子化する。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって変更され得る。いくつかの例では、量子化ユニット54は、次いで、量子化された変換係数を含む行列の走査を行い得る。代替的に、エントロピー符号化ユニット56が走査を行い得る。
[0197] 量子化の後に、エントロピー符号化ユニット56は量子化変換係数をエントロピーコーディングする。例えば、エントロピー符号化ユニット56は、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔区分エントロピー(PIPE)コーディングまたは別のエントロピーコーディング技法を行い得る。コンテキストベースエントロピーコーディングの場合、コンテキストは隣接ブロックに基づき得る。エントロピー符号化ユニット56によるエントロピーコーディングの後に、符号化ビットストリームは、別のデバイス(例えば、ビデオデコーダ30)に送信されるか、あるいは後で送信するかまたは取り出すためにアーカイブされ得る。
[0198] 逆量子化ユニット58および逆変換処理ユニット60は、例えば、参照ブロックとして後で使用するために、ピクセル領域中で残差ブロックを再構成するために、それぞれ逆量子化および逆変換を適用する。動き補償ユニット44は、復号ピクチャバッファ64のピクチャのうちの1つの予測ブロックに残差ブロックを加算することによって参照ブロックを計算し得る。動き補償ユニット44はまた、動き推定において使用するサブ整数ピクセル値を計算するために、再構成された残差ブロックに1つまたは複数の補間フィルタを適用し得る。加算器62は、復号ピクチャバッファ64に記憶するための再構成されたビデオブロックを生成するために、再構成された残差ブロックを、動き補償ユニット44によって生成された動き補償予測ブロックに加算する。再構成されたビデオブロックは、後続のピクチャ中のブロックをインターコーディングするための参照ブロックとして、動き推定ユニット42および動き補償ユニット44によって使用され得る。
[0199] 本開示で説明する技法の様々な態様によれば、モード選択ユニット40は、上記でより詳細に説明したように、参照ピクチャリストに記憶された各参照ピクチャを査定する必要なしにNBDVプロセスのためのデフォルトレイヤ間参照ピクチャを決定し、ディスパリティベクトルを決定するためにデフォルトレイヤ間参照ピクチャを使用してNBDVプロセスを行い、ディスパリティベクトルに基づいて符号化3次元ビデオデータの現在ピクチャを復号し得る。
[0200] その上、本開示で説明する技法の様々な態様によれば、モード選択ユニット40は、本開示で説明する技法の他の態様とは別にまたはそれとともに、アクティブ参照レイヤの第1の非0セットを決定し、アクティブ参照レイヤの第2の非0セットを決定し、アクティブ参照レイヤの第1の非0セットおよびアクティブ参照レイヤの第2の非0セットのうちの1つまたは複数に基づいて3次元ビデオデータをコーディングし得る。
[0201] その上、本開示で説明する技法の様々な態様によれば、モード選択ユニット40は、本開示で説明する技法の他の態様とは別にまたはそれとともに、参照レイヤがテクスチャレイヤであるのか深度レイヤであるのかの決定に基づいてアクティブ参照レイヤの非0セットを決定し、アクティブ参照レイヤの決定された非0セットに基づいて3次元ビデオデータをコーディングし得る。
[0202] その上、本開示で説明する技法の様々な態様によれば、モード選択ユニット40は、ビデオデータの現在テクスチャレイヤがビデオデータの深度レイヤに依存することに応答して、VPS中で直接依存レイヤをシグナリングし得る。
[0203] 図13は、マルチビューコーディングにおいて動きベクトルを予測するための本開示で説明する技法を実装し得る例示的なビデオデコーダ30を示すブロック図である。図13の例では、ビデオデコーダ30は、ビデオデータメモリ78と、エントロピー復号ユニット80と、予測ユニット81と、逆量子化ユニット86と、逆変換処理ユニット88と、加算器90と、復号ピクチャバッファ92とを含む。予測ユニット81は、動き補償ユニット82とイントラ予測ユニット84とを含む。
[0204] ビデオデータメモリ78は、ビデオデコーダ30の構成要素によって復号されるべき、符号化ビデオビットストリームなどのビデオデータを記憶し得る。ビデオデータメモリ78に記憶されるビデオデータは、例えば、コンピュータ可読媒体16から、例えば、カメラなどのローカルビデオソースから、ビデオデータのワイヤードもしくはワイヤレスネットワーク通信を介して、または物理データ記憶媒体にアクセスすることによって取得され得る。ビデオデータメモリ78は、符号化ビデオビットストリームからの符号化ビデオデータを記憶するコード化ピクチャバッファ(CPB)を形成し得る。復号ピクチャバッファ92は、例えば、イントラコーディングモードまたはインターコーディングモードでビデオデコーダ30によってビデオデータを復号する際に使用する参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ78および復号ピクチャバッファ92は、同期DRAM(SDRAM)を含むダイナミックランダムアクセスメモリ(DRAM)、磁気抵抗RAM(MRAM)、抵抗性RAM(RRAM)、または他のタイプのメモリデバイスなど、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ78および復号ピクチャバッファ92は、同じメモリデバイスまたは別個のメモリデバイスによって与えられ得る。様々な例では、ビデオデータメモリ78は、ビデオデコーダ30の他の構成要素とともにオンチップであるか、またはそれらの構成要素に対してオフチップであり得る。
[0205] 復号プロセス中に、ビデオデコーダ30は、ビデオエンコーダ20から、符号化ビデオスライスのビデオブロックと、関連するシンタックス要素とを表す符号化ビデオビットストリームを受信する。ビデオデコーダ30のエントロピー復号ユニット80は、量子化係数、動きベクトル、および他のシンタックス要素を生成するためにビットストリームをエントロピー復号する。エントロピー復号ユニット80は、動きベクトルと他のシンタックス要素とを予測ユニット81に転送する。ビデオデコーダ30は、ビデオスライスレベルおよび/またはビデオブロックレベルでシンタックス要素を受信し得る。
[0206] 例えば、背景として、ビデオデコーダ30は、ネットワークを介した送信のために、いわゆる「ネットワークアブストラクションレイヤユニット(network abstraction layer unit)」またはNALユニットに圧縮された圧縮ビデオデータを受信し得る。各NALユニットは、NALユニットに記憶されるデータのタイプを識別するヘッダを含み得る。一般にNALユニットに記憶される、2つのタイプのデータがある。NALユニットに記憶される第1のタイプのデータはビデオコーディングレイヤ(VCL)データであり、これは圧縮ビデオデータを含む。NALユニットに記憶される第2のタイプのデータは非VCLデータと呼ばれ、これは、多数のNALユニットに共通のヘッダデータを定義するパラメータセットなどの追加の情報と、補足エンハンスメント情報(SEI:supplemental enhancement information)とを含む。
[0207] 例えば、パラメータセットは、(例えば、シーケンスパラメータセット(SPS)中の)シーケンスレベルヘッダ情報と、(例えば、ピクチャパラメータセット(PPS)中の)まれに変化するピクチャレベルヘッダ情報とを含んでいることがある。パラメータセット中に含まれている、まれに変化する情報は、シーケンスまたはピクチャごとに繰り返される必要がなく、それによりコーディング効率が改善される。さらに、パラメータセットの使用はヘッダ情報の帯域外送信を可能にし、それにより誤り耐性のための冗長送信の必要が回避される。
[0208] ビデオスライスがイントラコード化(I)スライスとしてコーディングされたとき、予測ユニット81のイントラ予測ユニット84は、シグナリングされたイントラ予測モードと、現在ピクチャの前に復号されたブロックからのデータとに基づいて、現在ビデオスライスのビデオブロックのための予測データを生成し得る。ピクチャがインターコード化(すなわち、B、PまたはGPB)スライスとしてコーディングされたとき、予測ユニット81の動き補償ユニット82は、エントロピー復号ユニット80から受信された動きベクトルと他のシンタックス要素とに基づいて、現在ビデオスライスのビデオブロックのための予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの1つ内の参照ピクチャのうちの1つから生成され得る。ビデオデコーダ30は、復号ピクチャバッファ92に記憶された参照ピクチャに基づいて、デフォルト構成技法を使用して、参照ピクチャリスト、リスト0およびリスト1を構成し得る。
[0209] 動き補償ユニット82は、動きベクトルと他のシンタックス要素とをパースすることによって現在ビデオスライスのビデオブロックのための予測情報を決定し、復号されている現在ビデオブロックのための予測ブロックを生成するために、その予測情報を使用する。例えば、動き補償ユニット82は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(例えば、イントラまたはインター予測)と、インター予測スライスタイプ(例えば、Bスライス、Pスライス、またはGPBスライス)と、スライスのための参照ピクチャリストのうちの1つまたは複数のための構成情報と、スライスの各インター符号化ビデオブロックのための動きベクトルと、スライスの各インターコード化ビデオブロックのためのインター予測ステータスと、現在ビデオスライス中のビデオブロックを復号するための他の情報とを決定するために、受信されたシンタックス要素のいくつかを使用する。いくつかの例では、動き補償ユニット82は、動きベクトル予測ユニット83からいくらかの動き情報を受信し得る。
[0210] 動きベクトル予測ユニット83は、現在ブロックのための動き情報をどこで取り出すべきかを示す予測データを受信し得る。例えば、動きベクトル予測ユニット83は、MVPインデックス(mvp_flag)、MVD、マージフラグ(merge_flag)、および/またはマージインデックス(merge_idx)などの動きベクトル予測情報を受信し、現在ブロックを予測するために使用される動き情報を識別するために、そのような情報を使用し得る。すなわち、ビデオエンコーダ20に関して上述したように、本開示の態様によれば、動きベクトル予測ユニット83は、MVPインデックス(mvp_flag)とMVDとを受信し、現在ブロックを予測するために使用される動きベクトルを決定するために、そのような情報を使用し得る。動きベクトル予測ユニット83は、MVPまたはマージ候補のリストを生成し得る。本開示の態様によれば、MVPおよび/またはマージ候補は、現在復号されているビデオブロックとは異なるビュー中にある1つまたは複数のビデオブロックを含み得る。
[0211] 動きベクトル予測ユニット83は、現在ブロックの動きベクトルを予測するために使用される動き情報を識別するために、MVPまたはマージインデックスを使用し得る。すなわち、例えば、動きベクトル予測ユニット83は、MVPインデックス(mvp_flag)を使用して参照ピクチャのリストからMVPを識別し得る。動きベクトル予測ユニット83は、現在ブロックのための動きベクトルを決定するために、識別されたMVPを受信されたMVDと結合し得る。他の例では、動きベクトル予測ユニット83は、現在ブロックのための動き情報を決定するために、マージインデックス(merge_idx)を使用して参照ピクチャのリストからマージ候補を識別し得る。いずれの場合も、現在ブロックのための動き情報を決定した後に、動きベクトル予測ユニット83は現在ブロックのための予測ブロックを生成し得る。
[0212] 動きベクトル予測ユニット83は、マルチビューコーディングにおいて動きベクトル予測子を決定し得る。例えば、動きベクトル予測ユニット83は、現在ブロックのための動きベクトルを予測するために使用される、現在ブロックとは異なるビューコンポーネント中のブロックからのディスパリティ動きベクトルを指定する情報を受信し得る。他の例では、動きベクトル予測ユニット83は、現在ブロックのための動きベクトルを予測するために使用される、現在ブロックとは異なるビューコンポーネント中のブロックからの時間動きベクトルを識別する情報を受信し得る。
[0213] ディスパリティ動きベクトル予測に関して、動きベクトル予測ユニット83は、候補ブロックから現在ブロックのためのディスパリティ動きベクトルを予測し得る。候補ブロックは、現在ブロックと同じピクチャ中にあり得(例えば、候補ブロックに空間的に隣接する)、または現在ブロックと同じビュー内の別のピクチャ中にあり得る。候補ブロックはまた、異なるビューのピクチャ中にあるが、現在ブロックと同じタイムインスタンス中にあり得る。
[0214] 例えば、MVPまたはマージモードのいずれかに関して、予測されるべき現在ブロックのディスパリティ動きベクトル「A」のターゲットピクチャおよび参照ピクチャは知られている(以前に決定された)。説明の目的で、候補ブロックからの動きベクトルは「B」であると仮定する。動きベクトルBがディスパリティ動きベクトルでない場合、動きベクトル予測ユニット83は、候補ブロックを利用不可能である(例えば、動きベクトルAを予測するために利用可能でない)と見なし得る。すなわち、動きベクトル予測ユニット83は、動きベクトル予測のために候補ブロックを使用する能力を無効にし得る。
[0215] 動きベクトルBがディスパリティ動きベクトルであり、動きベクトルBの参照ピクチャがディスパリティ動きベクトルAの参照ピクチャのビューと同じビューに属し、動きベクトルBのターゲットピクチャがディスパリティ動きベクトルAのターゲットピクチャと同じビューに属する場合、動きベクトル予測ユニット83は、動きベクトルAの候補予測子として直接動きベクトルBを使用し得る。そうでない場合、動きベクトル予測ユニット83は、ディスパリティ動きベクトルBが動きベクトルAの候補予測子として使用され得る前に、ディスパリティ動きベクトルBをスケーリングし得る。そのような場合、本開示の技法によれば、動きベクトル予測ユニット83は、動きベクトルAのビュー距離と動きベクトルBのビュー距離とに基づいてディスパリティ動きベクトルをスケーリングし得る。例えば、動きベクトル予測ユニット83は、動きベクトルBのビュー距離で除算された動きベクトルAのビュー距離に等しいスケーリングファクタによってディスパリティ動きベクトルBをスケーリングし得る。いくつかの例では、動きベクトル予測ユニット83は、参照ピクチャおよびターゲットピクチャのビュー識別子を使用してそのようなスケーリングを行い得る。
[0216] 時間動きベクトル予測に関して、動きベクトル予測ユニット83は、現在ブロックのビューとは異なるビュー中の候補ブロックから現在ブロックのための時間動きベクトルを予測し得る。例えば、動きベクトル予測ユニット83は、第1のビュー中にターゲットピクチャを有する時間動きベクトル予測子候補を識別し得、第1のビューの別の時間ロケーションにある参照ピクチャ中のブロックを指す。
[0217] 例えば、MVPまたはマージモードのいずれかに関して、予測されるべき現在ブロックの時間動きベクトル「A」のターゲットピクチャおよび参照ピクチャは知られている(すなわち、以前に決定された)。説明の目的で、候補ブロックからの動きベクトルは「B」であると仮定する。候補ブロックからの動きベクトルBが時間動きベクトルでない場合、動きベクトル予測ユニット83は、候補ブロックを利用不可能である(例えば、動きベクトルAを予測するために利用可能でない)と見なし得る。すなわち、いくつかの例では、動きベクトル予測ユニット83は、動きベクトル予測のために候補ブロックを使用する能力を無効にし得る。
[0218] 動きベクトルBが時間動きベクトルであり、動きベクトルBの参照ピクチャのPOCが動きベクトルAの参照ピクチャと同じであり、動きベクトルBのターゲットピクチャのPOCが動きベクトルBのターゲットピクチャと同じである場合、動きベクトル予測ユニット83は、動きベクトルAの候補予測子として直接動きベクトルBを使用し得る。そうでない場合、動きベクトル予測ユニット83は、時間距離(temporal distance)に基づいて時間動きベクトルBをスケーリングし得る。(動きベクトル予測子候補を含む)候補ブロックと現在ブロックとは、異なるビュー中にコロケートされ得る。しかしながら、2つのビュー間のディスパリティにより、候補ブロックの相対ロケーションは現在ブロックからオフセットされることがある。
[0219] 逆量子化ユニット86は、ビットストリーム中で与えられ、エントロピー復号ユニット80によって復号された量子化変換係数を逆量子化(inverse quantize)、すなわち、逆量子化(de-quantize)する。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するための、ビデオスライス中のビデオブロックごとにビデオエンコーダ20によって計算される量子化パラメータの使用を含み得る。
[0220] 逆変換処理ユニット88は、ピクセル領域において残差ブロックを生成するために、逆変換、例えば、逆DCT、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用する。本開示の態様によれば、逆変換処理ユニット88は、変換が残差データに適用された様式を決定し得る。すなわち、例えば、逆変換処理ユニット88は、受信されたビデオデータのブロックに関連する残差ルーマサンプルおよび残差クロマサンプルに変換(例えば、DCT、整数変換、ウェーブレット変換、または1つまたは複数の他の変換)が適用された様式を表すRQTを決定し得る。
[0221] 動き補償ユニット82が、動きベクトルと他のシンタックス要素とに基づいて現在ビデオブロックのための予測ブロックを生成した後、ビデオデコーダ30は、逆変換処理ユニット88からの残差ブロックを動き補償ユニット82によって生成された対応する予測ブロックと加算することによって、復号ビデオブロックを形成する。加算器90は、この加算演算を行う1つまたは複数の構成要素を表す。所望される場合、ブロッキネスアーティファクトを除去するために、復号ブロックをフィルタ処理するためのデブロッキングフィルタも適用され得る。(コーディングループ中またはコーディングループ後のいずれかの)他のループフィルタも、ピクセル遷移を平滑化するか、または場合によってはビデオ品質を改善するために使用され得る。所与のピクチャ中の復号ビデオブロックは、次いで、その後の動き補償のために使用される参照ピクチャを記憶する復号ピクチャバッファ92に記憶される。復号ピクチャバッファ92はまた、図1のディスプレイデバイス32などのディスプレイデバイス上で後で表示するために復号ビデオを記憶する。
[0222] 本開示の態様によれば、ビデオデコーダ30の予測ユニット81は、上記でより詳細に説明したように、参照ピクチャリストに記憶された各参照ピクチャを査定する必要なしにNBDVプロセスのためのデフォルトレイヤ間参照ピクチャを決定し、ディスパリティベクトルを決定するためにデフォルトレイヤ間参照ピクチャを使用してNBDVプロセスを行い、ディスパリティベクトルに基づいて符号化3次元ビデオデータの現在ピクチャを復号し得る。
[0223] これらおよび他の例では、デフォルトレイヤ間参照ピクチャを決定するとき、予測ユニット81は、第1のアクティブレイヤ間参照のビュー順序インデックスに基づいて、デフォルトレイヤ間参照ピクチャのデフォルトビュー順序インデックスを決定し得る。
[0224] これらおよび他の例では、予測ユニット81は、現在ピクチャに関連するスライスヘッダから第1のアクティブレイヤ間参照を決定し得る。
[0225] これらおよび他の例では、予測ユニット81は、スライスレベルにおいて第1のアクティブレイヤ間参照を決定し得る。
[0226] これらおよび他の例では、予測ユニット81は、現在ピクチャを復号するとき、現在ピクチャを復号するために、ディスパリティベクトルに基づいてビュー合成予測(VSP)を行い得る。
[0227] これらおよび他の例では、予測ユニット81は、VSPを行うとき、NBDVプロセスが深度指向NBDV(DoNBDV)プロセスであるか、またはVSPプロセスが後方ワーピングVPS(BVSP)プロセスであるとき、テクスチャレイヤが深度レイヤに依存すると決定し得る。
[0228] これらおよび他の例では、予測ユニット81は、VPSを行うとき、異なる深度レイヤとテクスチャレイヤとの間の1つまたは複数の依存性に基づいて、深度レイヤへのテクスチャレイヤの依存性を導出し得る。
[0229] これらおよび他の例では、予測ユニット81は、VPSを行うとき、テクスチャレイヤが深度レイヤと同じビューに属するかどうかに基づいて、深度レイヤがテクスチャレイヤに依存するかどうかを決定し得る。
[0230] これらおよび他の例では、予測ユニット81は、デフォルトレイヤ間参照ピクチャを決定するとき、現在ピクチャに関連するスライスヘッダからデフォルトレイヤ間参照ピクチャを決定し得る。
[0231] これらおよび他の例では、現在ピクチャは現在テクスチャピクチャを備える。現在ピクチャを復号するとき、予測ユニット81は、現在テクスチャピクチャを復号するために、ディスパリティベクトルに基づいてVSPを行い得る。NBDVプロセスを行うとき、予測ユニット81は、参照深度レイヤへの現在テクスチャピクチャのためのスライスレベル依存性が、現在テクスチャピクチャに関連するスライスヘッダ中でシグナリングされるアクティブ参照レイヤに属さないが、VSPを行うためにシグナリングされるアクティブ参照レイヤに属するように、その依存性を決定し得る。
[0232] これらおよび他の例では、予測ユニット81は、スライスヘッダから、深度スライスが同じビューのおよび同じアクセスユニットのテクスチャピクチャに依存するかどうかを決定し得る。
[0233] 本開示で説明する技法の様々な態様によれば、予測ユニット81は、本開示で説明する技法の他の態様とともにまたはそれとは別に、アクティブ参照レイヤの第1の非0セットを決定し、アクティブ参照レイヤの第2の非0セットを決定し、アクティブ参照レイヤの第1の非0セットおよびアクティブ参照レイヤの第2の非0セットのうちの1つまたは複数に基づいて3次元ビデオデータをコーディングし得る。
[0234] 本開示で説明する技法の様々な態様によれば、予測ユニット81は、本開示で説明する技法の他の態様とともにまたはそれとは別に、参照レイヤがテクスチャレイヤであるのか深度レイヤであるのかの決定に基づいてアクティブ参照レイヤの非0セットを決定し、アクティブ参照レイヤの決定された非0セットに基づいて3次元ビデオデータをコーディングし得る。
[0235] 図14は、本開示で説明する技法による、ビデオデータを符号化するための例示的な方法を示すフローチャートである。図14の技法について、ビデオエンコーダ20などのビデオエンコーダに関して説明する。ビデオデータの現在テクスチャレイヤがビデオデータの深度レイヤに依存することに応答して、VPS中で直接依存レイヤをシグナリングするビデオエンコーダ20(202)。深度レイヤは、現在テクスチャレイヤとは異なるビューに属する。ビデオエンコーダ20は、深度レイヤを使用して現在テクスチャレイヤを処理する(204)。深度レイヤから取得された情報を使用して、DoNBDVプロセスまたはBVSPプロセスのうちの少なくとも1つを使用して現在テクスチャレイヤのブロックを予測することに応答して、ビデオエンコーダ20は、ビデオデータの現在テクスチャレイヤが深度レイヤに依存すると決定する。いくつかの例では、テクスチャから深度への依存性に加えて、深度からテクスチャへの依存性もVPS中でシグナリングされ得る。
[0236] ビデオエンコーダ20は、テクスチャレイヤのスライスについて、テクスチャレイヤのスライスのためのアクティブ参照レイヤを形成するために使用される直接依存テクスチャレイヤ(direct dependent texture layers)を、VPS中でシグナリングされた直接依存レイヤとは別にシグナリングする。このコンテキストでは、シグナリングすることは、符号化ビデオデータ中に含めるための1つまたは複数のシンタックス要素を生成することを含み得る。
[0237] 図15は、本開示で説明する技法による、ビデオデータを処理するための例示的な方法を示すフローチャートである。図15の技法について、ビデオ処理デバイスに関して説明する。ビデオ処理デバイスは、例えば、ビデオデコーダ30などのビデオデコーダを含み得るか、またはメディアアウェアネットワークエンティティ(MANE:media aware network entity)などのネットワークエンティティでもあり得る。ビデオ処理デバイスは、VPS中でシグナリングされた直接依存レイヤに基づいて、ビデオデータの現在テクスチャレイヤがビデオデータの深度レイヤに依存すると決定する(210)。ビデオ処理デバイスは、例えば、直接依存レイヤを識別する1つまたは複数のシンタックス要素をVPS中で受信し得る。シンタックス要素は、例えば、現在テクスチャレイヤがそれに依存する深度レイヤを識別し得る。深度レイヤは、現在テクスチャレイヤとは異なるビューに属し得る。ビデオ処理デバイスは、深度レイヤを使用して現在テクスチャレイヤを処理する(212)。
[0238] いくつかの例では、テクスチャから深度への依存性に加えて、深度からテクスチャへの依存性もVPS中でシグナリングされ得る。例えば、ビデオデコーダ20は、VPS中でシグナリングされた直接依存レイヤに基づいて、ビデオデータの現在深度レイヤがビデオデータのテクスチャレイヤに依存すると決定し得る。
[0239] ビデオ処理デバイスは、VPS中でシグナリングされた直接依存レイヤに基づいて、ビデオデータの現在深度レイヤがビデオデータの第2のテクスチャレイヤに依存するとさらに決定し得る。ビデオ処理デバイスは、さらに、深度レイヤから取得された情報を使用して、DoNBDVプロセスまたはBVSPプロセスのうちの少なくとも1つを使用して現在テクスチャレイヤのブロックを予測し得る。
[0240] ビデオデコーダ30は、ビデオパラメータセット中でシグナリングされた直接依存レイヤから、テクスチャレイヤのスライスについて、テクスチャレイヤのスライスのためのアクティブ参照レイヤ(active reference layers)を形成するために使用される直接依存テクスチャレイヤを分離し得る。ビデオデコーダ20は、ビデオパラメータセット中でシグナリングされた直接依存レイヤから、深度レイヤのスライスについて、深度レイヤのスライスのためのアクティブ参照レイヤを形成するために使用される直接依存深度レイヤを分離し得る。言い換えれば、混合(テクスチャおよび深度)依存レイヤを決定した後に、ビデオデコーダ30は、混合依存レイヤ(mixed dependent layers)を深度依存レイヤ(depth dependent layers)とテクスチャ依存レイヤ(texture dependent layers)とに分離するために復号プロセスを行い得る。場合によっては、例えばスライスレベルシグナリングに基づいて、これらの2つのサブセットのうちの1つのみがアクティブ参照レイヤを構築するために使用され得る。
[0241] ビデオ処理デバイスがビデオデコーダを含む場合、深度レイヤを使用して現在テクスチャレイヤを処理することは、現在テクスチャレイヤから取得された情報を使用して深度レイヤのブロックを予測すること、および/または深度レイヤから取得された情報を使用して現在テクスチャレイヤのブロックを予測することを含み得る。ビデオ処理デバイスがMANEを含む場合、現在テクスチャレイヤを処理することは、ビデオデータに対してサブビットストリーム抽出プロセスを行うことを含み得る。
[0242] 例によっては、本明細書で説明した方法のうちのいずれかのいくつかの行為またはイベントは、異なるシーケンスで行われ得、追加、マージ、または完全に除外され得る(例えば、全ての説明した行為またはイベントが、本方法の実施のために必要であるとは限らない)ことを理解されたい。その上、いくつかの例では、行為またはイベントは、連続的にではなく、例えば、マルチスレッド処理、割込み処理、または複数のプロセッサを通して同時に行われ得る。さらに、本開示のいくつかの態様について、明快のために単一のモジュールまたはユニットによって行われるものとして説明したが、本開示の技法は、ビデオコーダに関連するユニットまたはモジュールの組合せによって行われ得ることを理解されたい。
[0243] 技法の様々な態様の特定の組合せについて上記で説明したが、これらの組合せは、本開示で説明した技法の例を示すために与えたものにすぎない。従って、本開示の技法は、これらの例示的な組合せに限定されるべきではなく、本開示で説明した技法の様々な態様の任意の想起可能な組合せを包含し得る。
[0244] 1つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応する、コンピュータ可読記憶媒体を含み得るか、または、例えば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む通信媒体を含み得る。
[0245] このようにして、コンピュータ可読媒体は、概して、(1)非一時的である有形コンピュータ可読記憶媒体、あるいは(2)信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実装のための命令、コードおよび/またはデータ構造を取り出すために、1つまたは複数のコンピュータあるいは1つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
[0246] 限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。例えば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用してウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は媒体の定義に含まれる。
[0247] 但し、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびblu−ray(登録商標)ディスク(disc)を含み、ここで、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
[0248] 命令は、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、あるいは他の等価な集積回路またはディスクリート論理回路など、1つまたは複数のプロセッサによって実行され得る。従って、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明した技法の実装に好適な他の構造のいずれかを指すことがある。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のハードウェアおよび/またはソフトウェアモジュール内に与えられるか、あるいは複合コーデックに組み込まれ得る。また、本技法は、1つまたは複数の回路または論理要素中に十分に実装され得る。
[0249] 本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(例えば、チップセット)を含む、多種多様なデバイスまたは装置で実装され得る。本開示では、開示する技法を行うように構成されたデバイスの機能的態様を強調するために、様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェアおよび/またはファームウェアとともに、上記で説明した1つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって与えられ得る。
[0250] 本開示の様々な態様について説明した。これらおよび他の態様は以下の特許請求の範囲内に入る。
以下に、出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
3次元(3D)ビデオデータを処理する方法であって、前記方法は、
ビデオパラメータセット中でシグナリングされた直接依存レイヤに基づいて、前記ビデオデータの現在テクスチャレイヤが前記ビデオデータの深度レイヤに依存すると決定することと、
前記深度レイヤを使用して前記現在テクスチャレイヤを処理することとを備える、方法。
[C2]
前記ビデオパラメータセット中でシグナリングされた前記直接依存レイヤに基づいて、前記ビデオデータの現在深度レイヤが前記ビデオデータの第2のテクスチャレイヤに依存すると決定することをさらに備える、C1に記載の方法。
[C3]
前記深度レイヤから取得された情報を使用して、深度指向NBDV(DoNBDV)プロセスまたは後方ワーピングビュー合成予測(BVSP)プロセスのうちの少なくとも1つを使用して前記現在テクスチャレイヤのブロックを予測することをさらに備える、C1に記載の方法。
[C4]
前記ビデオパラメータセット中でシグナリングされた前記直接依存レイヤから、前記テクスチャレイヤのスライスについて、前記テクスチャレイヤの前記スライスのためのアクティブ参照レイヤを形成するために使用される直接依存テクスチャレイヤを分離することをさらに備える、C1に記載の方法。
[C5]
前記ビデオパラメータセット中でシグナリングされた前記直接依存レイヤから、前記深度レイヤのスライスについて、前記深度レイヤの前記スライスのためのアクティブ参照レイヤを形成するために使用される直接依存深度レイヤを分離することをさらに備える、C1に記載の方法。
[C6]
前記アクティブ参照レイヤは、前記深度レイヤの前記スライスのブロックがそれから予測される参照レイヤを備える、C5に記載の方法。
[C7]
処理することが、
前記現在テクスチャレイヤから取得された情報を使用して前記深度レイヤのブロックを予測することを備える、C1に記載の方法。
[C8]
前記深度レイヤから取得された情報を使用して前記現在テクスチャレイヤのブロックを予測することをさらに備える、C1に記載の方法。
[C9]
前記深度レイヤが前記現在テクスチャレイヤとは異なるビューに属する、C1に記載の方法。
[C10]
前記方法がビデオデコーダによって行われる、C1に記載の方法。
[C11]
3次元(3D)ビデオデータを符号化する方法であって、前記方法は、
前記ビデオデータの現在テクスチャレイヤが前記ビデオデータの深度レイヤに依存することに応答して、ビデオパラメータセット中で直接依存レイヤをシグナリングすることと、
前記深度レイヤを使用して前記現在テクスチャレイヤを処理することとを備える、方法。
[C12]
前記深度レイヤから取得された情報を使用して、深度指向NBDV(DoNBDV)プロセスまたは後方ワーピングビュー合成予測(BVSP)プロセスのうちの少なくとも1つを使用して前記現在テクスチャレイヤのブロックを予測することに応答して、前記ビデオデータの前記現在テクスチャレイヤが前記深度レイヤに依存すると決定することをさらに備える、C11に記載の方法。
[C13]
前記ビデオパラメータセット中でシグナリングされた前記直接依存レイヤから、前記テクスチャレイヤのスライスについて、前記テクスチャレイヤの前記スライスのためのアクティブ参照レイヤを形成するために使用される直接依存テクスチャレイヤを分離することをさらに備える、C11に記載の方法。
[C14]
前記深度レイヤが前記現在テクスチャレイヤとは異なるビューに属する、C11に記載の方法。
[C15]
ビデオデータを記憶するように構成されたメモリと、
ビデオパラメータセット中でシグナリングされた直接依存レイヤに基づいて、前記ビデオデータの現在テクスチャレイヤが前記ビデオデータの深度レイヤに依存すると決定することと、
前記深度レイヤを使用して前記現在テクスチャレイヤを処理することとを行うように構成された1つまたは複数のプロセッサとを備えるビデオコーディングデバイス。
[C16]
前記1つまたは複数のプロセッサは、
前記ビデオパラメータセット中でシグナリングされた直接依存レイヤに基づいて、前記ビデオデータの現在深度レイヤが前記ビデオデータの第2のテクスチャレイヤに依存すると決定することを行うようにさらに構成された、C15に記載のビデオコーディングデバイス。
[C17]
前記1つまたは複数のプロセッサが、
前記深度レイヤから取得された情報を使用して、深度指向NBDV(DoNBDV)プロセスまたは後方ワーピングビュー合成予測(BVSP)プロセスのうちの少なくとも1つを使用して前記現在テクスチャレイヤのブロックを予測することを行うようにさらに構成された、C15に記載のビデオコーディングデバイス。
[C18]
前記1つまたは複数のプロセッサが、
前記ビデオパラメータセット中でシグナリングされた前記直接依存レイヤから、前記テクスチャレイヤのスライスについて、前記テクスチャレイヤの前記スライスのためのアクティブ参照レイヤを形成するために使用される直接依存テクスチャレイヤを分離することを行うようにさらに構成された、C15に記載のビデオコーディングデバイス。
[C19]
前記1つまたは複数のプロセッサが、
前記深度レイヤのスライスについて、前記深度レイヤの前記スライスのためのアクティブ参照レイヤを形成するために使用される直接依存深度レイヤを、前記ビデオパラメータセット中でシグナリングされた前記直接依存レイヤとは別にシグナリングすることを行うようにさらに構成された、C15に記載のビデオコーディングデバイス。
[C20]
前記アクティブ参照レイヤは、前記深度レイヤの前記スライスのブロックがそれから予測される参照レイヤを備える、C19に記載のビデオコーディングデバイス。
[C21]
前記現在テクスチャレイヤを処理するために、前記1つまたは複数のプロセッサが、前記現在テクスチャレイヤから取得された情報を使用して前記深度レイヤのブロックを予測する、C15に記載のビデオコーディングデバイス。
[C22]
前記1つまたは複数のプロセッサが、前記深度レイヤから取得された情報を使用して前記現在テクスチャレイヤのブロックを予測するようにさらに構成された、C15に記載のビデオコーディングデバイス。
[C23]
前記深度レイヤが前記現在テクスチャレイヤとは異なるビューに属する、C15に記載のビデオコーディングデバイス。
[C24]
前記デバイスが、
集積回路と、
マイクロプロセッサと、
ビデオデコーダを含むワイヤレス通信デバイスとのうちの少なくとも1つを備える、C15に記載のデバイス。
[C25]
1つまたは複数のプロセッサによって実行されたとき、前記1つまたは複数のプロセッサに、
ビデオパラメータセット中でシグナリングされた直接依存レイヤに基づいて、ビデオデータの現在テクスチャレイヤが前記ビデオデータの深度レイヤに依存すると決定することと、
前記深度レイヤを使用して前記現在テクスチャレイヤを処理することとを行わせる命令を記憶するコンピュータ可読記憶媒体。
[C26]
実行されたとき、前記1つまたは複数のプロセッサに、
前記ビデオパラメータセット中でシグナリングされた直接依存レイヤに基づいて、前記ビデオデータの現在深度レイヤが前記ビデオデータの第2のテクスチャレイヤに依存すると決定することを行わせる命令をさらに記憶する、C25に記載のコンピュータ可読記憶媒体。
[C27]
実行されたとき、前記1つまたは複数のプロセッサに、
前記深度レイヤから取得された情報を使用して、深度指向NBDV(DoNBDV)プロセスまたは後方ワーピングビュー合成予測(BVSP)プロセスのうちの少なくとも1つを使用して前記現在テクスチャレイヤのブロックを予測することを行わせる命令をさらに記憶する、C25に記載のコンピュータ可読媒体。
[C28]
実行されたとき、前記1つまたは複数のプロセッサに、
前記ビデオパラメータセット中でシグナリングされた前記直接依存レイヤから、前記テクスチャレイヤのスライスについて、前記テクスチャレイヤの前記スライスのためのアクティブ参照レイヤを形成するために使用される直接依存テクスチャレイヤを分離することを行わせる命令をさらに記憶する、C25に記載のコンピュータ可読記憶媒体。
[C29]
実行されたとき、前記1つまたは複数のプロセッサに、
前記深度レイヤから取得された情報を使用して前記現在テクスチャレイヤのブロックを予測することを行わせる命令をさらに記憶する、C25に記載のコンピュータ可読記憶媒体。
[C30]
前記深度レイヤが前記現在テクスチャレイヤとは異なるビューに属する、C25に記載のコンピュータ可読記憶媒体。