特許第6356236号(P6356236)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ クゥアルコム・インコーポレイテッドの特許一覧

<>
  • 特許6356236-深度指向性のビュー間動きベクトル予測 図000010
  • 特許6356236-深度指向性のビュー間動きベクトル予測 図000011
  • 特許6356236-深度指向性のビュー間動きベクトル予測 図000012
  • 特許6356236-深度指向性のビュー間動きベクトル予測 図000013
  • 特許6356236-深度指向性のビュー間動きベクトル予測 図000014
  • 特許6356236-深度指向性のビュー間動きベクトル予測 図000015
  • 特許6356236-深度指向性のビュー間動きベクトル予測 図000016
  • 特許6356236-深度指向性のビュー間動きベクトル予測 図000017
  • 特許6356236-深度指向性のビュー間動きベクトル予測 図000018
  • 特許6356236-深度指向性のビュー間動きベクトル予測 図000019
  • 特許6356236-深度指向性のビュー間動きベクトル予測 図000020
  • 特許6356236-深度指向性のビュー間動きベクトル予測 図000021
  • 特許6356236-深度指向性のビュー間動きベクトル予測 図000022
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6356236
(24)【登録日】2018年6月22日
(45)【発行日】2018年7月11日
(54)【発明の名称】深度指向性のビュー間動きベクトル予測
(51)【国際特許分類】
   H04N 19/597 20140101AFI20180702BHJP
   H04N 19/52 20140101ALI20180702BHJP
【FI】
   H04N19/597
   H04N19/52
【請求項の数】15
【全頁数】78
(21)【出願番号】特願2016-524245(P2016-524245)
(86)(22)【出願日】2014年6月27日
(65)【公表番号】特表2016-527784(P2016-527784A)
(43)【公表日】2016年9月8日
(86)【国際出願番号】US2014044600
(87)【国際公開番号】WO2014210473
(87)【国際公開日】20141231
【審査請求日】2017年6月1日
(31)【優先権主張番号】61/840,400
(32)【優先日】2013年6月27日
(33)【優先権主張国】US
(31)【優先権主張番号】61/847,942
(32)【優先日】2013年7月18日
(33)【優先権主張国】US
(31)【優先権主張番号】61/890,107
(32)【優先日】2013年10月11日
(33)【優先権主張国】US
(31)【優先権主張番号】14/316,145
(32)【優先日】2014年6月26日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】595020643
【氏名又は名称】クゥアルコム・インコーポレイテッド
【氏名又は名称原語表記】QUALCOMM INCORPORATED
(74)【代理人】
【識別番号】100108855
【弁理士】
【氏名又は名称】蔵田 昌俊
(74)【代理人】
【識別番号】100109830
【弁理士】
【氏名又は名称】福原 淑弘
(74)【代理人】
【識別番号】100158805
【弁理士】
【氏名又は名称】井関 守三
(74)【代理人】
【識別番号】100194814
【弁理士】
【氏名又は名称】奥村 元宏
(72)【発明者】
【氏名】ティルマライ、ビジャヤラグハバン
(72)【発明者】
【氏名】ジャン、リ
(72)【発明者】
【氏名】チェン、イン
【審査官】 岩井 健二
(56)【参考文献】
【文献】 国際公開第2014/166348(WO,A1)
【文献】 国際公開第2014/043374(WO,A1)
【文献】 国際公開第2014/005548(WO,A1)
【文献】 国際公開第2013/016610(WO,A1)
【文献】 国際公開第2012/145670(WO,A1)
【文献】 Yi-Wen Chen et al.,3D-CE3.h results on removal of parsing dependency and picture buffers for motion parameter inheritance,Joint Collaborative Team on 3D Video Coding Extension Development of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,3rd Meeting: Geneva, CH,2013年 1月,JCT3V-C0137,pp.1-4
【文献】 Christine Guillemot and Laurent Guillo,3D-CE5.h: Additional merge candidates derived from shifted disparity candidate predictors,Joint Collaborative Team on 3D Video Coding Extension Development of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,3rd Meeting: Geneva, CH,2013年 1月,JCT3V-C0148-r1,pp.1-5
【文献】 Jian-Liang Lin et al.,3D-CE5.h related: Additional inter-view merging candidate,Joint Collaborative Team on 3D Video Coding Extensions of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,4th Meeting: Incheon, KR,,2014年 4月,JCT3V-D0109,pp.1-3
【文献】 Jicheng An et al.,3D-CE2.h related: Inter-view scaling for DV derivation,Joint Collaborative Team on 3D Video Coding Extension Development of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,4th Meeting: Incheon, KR,2013年 4月,JCT3V-D0149_r1,pp.1-4
【文献】 Vijayaraghavan Thirumalai et al.,CE5.h: Merge candidates derivation from vector shifting,Joint Collaborative Team on 3D Video Coding Extensions of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,4th Meeting: Incheon, KR,2013年 4月,JCT3V-D0178,pp.1-5
【文献】 Vijayaraghavan Thirumalai et al.,Inter-view motion vector prediction for depth coding,Joint Collaborative Team on 3D Video Coding Extensions of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,5th Meeting: Vienna, AU,2013年 7月,JCT3V-E0133_r1,pp.1-6
【文献】 Xin Zhao et al.,CE3: Inter-view motion vector prediction for depth coding,Joint Collaborative Team on 3D Video Coding Extensions of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,6th Meeting: Geneva, CH,2013年10月,JCT3V-F0125,pp.1-6
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 − 19/98
(57)【特許請求の範囲】
【請求項1】
HEVCビデオデータを符号化または復号する方法であって、
ビュー間予測された動きベクトル候補(IPMVC)を動きベクトル継承(MVI)候補と比較することと、
前記IPMVCおよび前記MVI候補が各々、従属深度ビュー中のビデオデータのブロックと関連付けられ、
前記従属深度ビュー中の前記ブロックと関連付けられる前記MVI候補が、前記従属深度ビュー中のビデオデータの前記ブロックに対応するテクスチャビュー中のビデオデータのすでにコーディングされたブロックの動きベクトルおよび/または参照インデックスが利用可能である場合、前記動きベクトルおよび参照インデックスを再使用し、
前記IPMVCが、前記従属深度ビュー中のビデオデータの前記ブロックに対応する参照深度ビュー中のビデオデータのブロックから生成され、
前記IPMVCが前記MVI候補と異なることに基づいて前記IPMVCを統合候補リストに追加すること、または、前記IPMVCが前記MVI候補と同一であることに基づいて前記統合候補リストから前記IPMVCを除外することの1つを実行することと、
を備える、方法。
【請求項2】
前記IPMVCを前記統合リストに追加することが、
前記MVI候補が前記統合候補リストへの追加に利用可能ではないことに基づいて、前記統合候補リスト内の最初の位置において前記IPMVCを挿入すること、または、前記MVI候補が前記統合候補リストへの追加に利用可能であることに基づいて、前記統合候補リスト内の前記MVI候補の位置に後続する前記統合候補リスト内の位置において前記IPMVCを挿入することの1つを実行することを備える、請求項1に記載の方法。
【請求項3】
前記IPMVCを前記MVI候補と比較することが、
前記IPMVCと関連付けられる動き情報を前記MVI候補と関連付けられる対応する動き情報と比較することと、
前記IPMVCと関連付けられる少なくとも1つの参照インデックスを前記MVI候補と関連付けられる少なくとも1つの対応する参照インデックスと比較することと、
を備える、請求項1に記載の方法。
【請求項4】
ビュー間相違動きベクトル候補(IDMVC)を、前記統合候補リストと関連付けられる第1の空間的候補および前記統合候補リストと関連付けられる第2の空間的候補の利用可能な1つまたは複数と比較することと、
前記IDMVC、前記第1の空間的候補、および前記第2の空間的候補の各々が、前記従属深度ビュー中のビデオデータの前記ブロックと関連付けられ、
前記IDMVCが、ビデオデータの前記ブロックと関連付けられる相違ベクトルから生成され、
前記IDMVCが前記第1の空間的候補および前記第2の空間的候補の前記利用可能な1つまたは複数の各々とは異なることに基づいて、前記IDMVCを前記統合候補リストに追加すること、または、前記IDMVCが前記第1の空間的候補または前記第2の空間的候補の少なくとも1つと同一であることに基づいて、前記IDMVCを前記統合候補リストから除外することの1つを実行することと、
をさらに備える、請求項1に記載の方法。
【請求項5】
シフトされたIPMVCが利用可能であると決定することと、
前記シフトされたIPMVCが、前記従属深度ビュー中のビデオデータの前記ブロックと関連付けられ、
前記シフトされたIPMVCが、ベース深度ビュー中のビデオデータの前記対応するブロックから生成され、
前記シフトされたIPMVCを前記IPMVCと比較することと、
をさらに備える、請求項1に記載の方法。
【請求項6】
前記シフトされたIPMVCが前記IPMVCと異なること、および前記統合候補リストが6個未満の候補を含むことに基づいて、前記シフトされたIPMVCを前記統合候補リストに追加すること、または、前記シフトされたIPMVCが前記IPMVCと同一であることに基づいて、前記シフトされたIPMVCを前記統合候補リストから除外することの1つを実行することをさらに備える、請求項に記載の方法。
【請求項7】
相違シフトされた動きベクトル(DSMV)候補が利用可能であると決定すること、
前記DSMV候補が、前記従属深度ビュー中のビデオデータの前記ブロックと関連付けられ、
前記DSMV候補が、前記従属深度ビュー中のビデオデータの前記ブロックと関連付けられる1つまたは複数の空間的に隣接するブロックを使用して生成され、
をさらに備える、請求項1に記載の方法。
【請求項8】
前記統合候補リストが6個未満の候補を含むことに基づいて、前記DSMV候補を前記統合候補リストに追加することをさらに備える、請求項に記載の方法。
【請求項9】
前記DSMV候補を前記統合候補リストに追加することが、1)前記統合候補リストに含まれる空間的候補の位置に後続する、および2)前記統合候補リストに含まれる時間的候補の位置に先行する位置において、前記DSMV候補を挿入することを備える、請求項に記載の方法。
【請求項10】
前記DSMV候補が利用可能であると決定することが、シフトされたIPMVCが利用可能ではないと決定したことに応答し、
前記シフトされたIPMVCが、前記従属深度ビュー中のビデオデータの前記ブロックと関連付けられ、
前記シフトされたIPMVCが、ビデオデータの前記ブロックのベースビューから生成される、請求項に記載の方法。
【請求項11】
前記DSMV候補が、前記従属深度ビュー中のビデオデータの前記ブロックと関連付けられる相違ベクトルをシフトすることによって生成され、
前記相違ベクトルが、前記従属深度ビュー中のビデオデータの前記ブロックと関連付けられる前記1つまたは複数の空間的に隣接するブロックと関連付けられる1つまたは複数の深度値から生成される、請求項に記載の方法。
【請求項12】
HEVCビデオデータを符号化または復号するためのデバイスであって、
メモリと、
ビュー間予測された動きベクトル候補(IPMVC)を動きベクトル継承(MVI)候補と比較することと、
前記IPMVCおよび前記MVI候補が各々、従属深度ビュー中のビデオデータのブロックと関連付けられ、
前記従属深度ビュー中の前記ブロックと関連付けられる前記MVI候補が、前記従属深度ビュー中のビデオデータの前記ブロックに対応するテクスチャビュー中のビデオデータのすでにコーディングされたブロックの動きベクトルおよび/または参照インデックスが利用可能である場合、前記動きベクトルおよび参照インデックスを再使用し、
前記IPMVCが、前記従属深度ビュー中のビデオデータの前記ブロックに対応する参照深度ビュー中のビデオデータのブロックから生成され、
前記IPMVCが前記MVI候補と異なることに基づいて前記IPMVCを統合候補リストに追加すること、または、前記IPMVCが前記MVI候補と同一であることに基づいて前記統合候補リストから前記IPMVCを除外することの1つを実行することと、
を行うように構成される、1つまたは複数のプロセッサと、
を備える、デバイス。
【請求項13】
前記IPMVCを前記統合リストに追加するために、前記1つまたは複数のプロセッサがさらに、
前記MVI候補が前記統合候補リストへの追加に利用可能ではないことに基づいて、前記統合候補リスト内の最初の位置において前記IPMVCを挿入すること、または、前記MVI候補が前記統合候補リストへの追加に利用可能であることに基づいて、前記統合候補リスト内の前記MVI候補の位置に後続する前記統合候補リスト内の位置において前記IPMVCを挿入することの1つを実行するように構成される、請求項12に記載のデバイス。
【請求項14】
前記IPMVCを前記MVI候補と比較するために、前記1つまたは複数のプロセッサが、
前記IPMVCと関連付けられる動き情報を前記MVI候補と関連付けられる対応する動き情報と比較することと、
前記IPMVCと関連付けられる少なくとも1つの参照インデックスを前記MVI候補と関連付けられる少なくとも1つの対応する参照インデックスと比較することと、
を行うように構成される、請求項12に記載のデバイス。
【請求項15】
実行されると、ビデオコーディングデバイスの1つまたは複数のプロセッサに、請求項1乃至11のいずれか1項に記載の方法を行わせる命令によって符号化された、コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
[0001]本出願は、
2013年6月27日に出願された米国仮出願第61/840,400号、
2013年7月18日に出願された米国仮出願第61/847,942号、および
2013年10月11日に出願された米国仮出願第61/890,107号
の利益を主張し、それらの内容全体の各々が本明細書に参照によって組み込まれる。
【0002】
[0002]本開示は、ビデオコーディングに関し、より詳細には、3次元(3D)ビデオコーディングに関する。
【背景技術】
【0003】
[0003]デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップコンピュータまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、携帯電話または衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、MPEG−2、MPEG−4、ITU−T H.263、ITU−T H.264/MPEG−4、Part10、Advanced Video Coding(AVC)、現在開発中のHigh Efficiency Video Coding(HEVC)規格によって定義された規格、およびそのような規格の拡張に記載されているもののような、ビデオコーディング技法を実装する。ビデオデバイスは、そのようなビデオコーディング技法を実装することによって、デジタルビデオ情報をより効率的に送信し、受信し、符号化し、復号し、および/または記憶することができる。
【0004】
[0004]ビデオコーディング技法は、ビデオシーケンスに固有の冗長性を低減または除去するための空間的(イントラピクチャ)予測および/または時間的(ピクチャ間)予測を含む。ブロックベースのビデオコーディングでは、ビデオスライス(たとえば、ビデオフレームまたはビデオフレームの一部分)は、ツリーブロック、コーディングユニット(CU)、および/またはコーディングノードと呼ばれることもある、ビデオブロックに区分され得る。ピクチャのイントラコーディングされた(I)スライス中のビデオブロックは、同じピクチャ中の隣接するブロック中の参照サンプルに対する空間的予測を使用して符号化される。ピクチャのインターコーディングされた(PまたはB)スライス中のビデオブロックは、同じピクチャ中の隣接するブロック中の参照サンプルに対する空間的予測、または他の参照ピクチャ中の参照サンプルに対する時間的予測を使用することができる。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
【0005】
[0005]空間的予測または時間的予測は、コーディングされるべきブロックに関する予測ブロックをもたらす。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコーディングされたブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトルに従って符号化され、残差データは、コーディングされたブロックと予測ブロックとの間の差分を示す。イントラコーディングされたブロックは、イントラコーディングモードおよび残差データに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換されて残差変換係数をもたらすことができ、その残差変換係数が、次いで量子化され得る。最初に2次元アレイで構成される量子化された変換係数は、変換係数の1次元ベクトルを生成するために走査されてよく、なお一層の圧縮を達成するためにエントロピーコーディングが適用されてよい。
【0006】
[0006]マルチビューコーディングビットストリームは、たとえば、複数の視点(multiple perspectives)からのビューを符号化することによって生成され得る。マルチビューコーディング態様を利用するいくつかの3次元(3D)ビデオ規格が開発されている。たとえば、3Dビデオをサポートするために、異なるビューが左眼のビューと右眼のビューとを伝える(transmit)ことができる。あるいは、いくつかの3Dビデオコーディングプロセスは、いわゆるマルチビュープラス深度コーディングを適用することができる。マルチビュープラス深度コーディングでは、3Dビデオビットストリームは、テクスチャビュー成分(texture view components)だけではなく深度ビュー成分(depth view components)も含み得る。たとえば、各ビューは、1つのテクスチャビュー成分と1つの深度ビュー成分とを備え得る。
【発明の概要】
【0007】
[0007]全般に、本開示は、ビデオコーディング技法を説明する。本技法は全般に、テクスチャビューと深度ビューからなる、3次元ビデオ(3DV)コンテンツのコーディングに関する。本開示の様々な技法は、深度ビューのためのビュー間動きベクトル予測に関する。様々な例によれば、本技法は、深度ベースビューのためのすでにコーディングされている動き情報からより多数の動きベクトル候補を利用する(leveraging)ことによって、従属深度ビューのための動きベクトル予測の精度を改善することを対象とする。たとえば、本技法は、従属深度ビュー中の深度ブロックの隣接する深度ピクセルから相違ベクトル(a disparity vector)が導出されることを可能にし、動きベクトル候補(たとえば、それによって統合リストを埋める(populate))をベース深度ビューから導出するために相違ベクトルを使用することができる。
【0008】
[0008]一例では、本開示はビデオデータをコーディングする方法を説明し、この方法は、従属深度ビュー中のビデオデータのブロックに隣接して配置される1つまたは複数の隣接するピクセルに基づいて、従属深度ビューに含まれるビデオデータのブロックと関連付けられる深度値を決定することと、ビデオデータのブロックと関連付けられる決定された深度値に少なくとも一部基づいて、ビデオデータのブロックと関連付けられる相違ベクトルを生成することとを含む。方法はさらに、相違ベクトルに基づいて、ビュー間相違動きベクトル候補(IDMVC:inter-view disparity motion vector candidate)を生成することと、ベースビュー中のビデオデータの対応するブロックに基づいて、ビデオデータのブロックと関連付けられるビュー間予測された動きベクトル候補(IPMVC:inter-view predicted motion vector candidate)を生成することと、ビデオデータのブロックと関連付けられる統合候補リストにIDMVCまたはIPMVCのいずれかを追加すべきかどうかを決定することとを含み得る。
【0009】
[0009]別の例では、本開示は、ビデオデータをコーディングするためのデバイスを説明し、このデバイスはメモリと1つまたは複数のプロセッサとを含む。1つまたは複数のプロセッサは、従属深度ビュー中のビデオデータのブロックに隣接して配置される1つまたは複数の隣接するピクセルに基づいて、従属深度ビューに含まれるビデオデータのブロックと関連付けられる深度値を決定し、ビデオデータのブロックと関連付けられる決定された深度値に少なくとも一部基づいて、ビデオデータのブロックと関連付けられる相違ベクトルを生成するように構成され、またはそうでなければそのように動作可能であり得る。1つまたは複数のプロセッサはさらに、ビュー間相違動きベクトル候補(IDMVC)を生成するために相違ベクトルを使用し、ベースビュー中のビデオデータの対応するブロックに基づいて、ビデオデータのブロックと関連付けられるビュー間予測された動きベクトル候補(IPMVC)を生成し、ビデオデータのブロックと関連付けられる統合候補リストにIDMVCとIPMVCのいずれかを追加すべきかどうかを決定するように構成され、または動作可能であり得る。
【0010】
[0010]別の例では、本開示は、実行されると、ビデオコーディングデバイスの1つまたは複数のプロセッサに、従属深度ビュー中のビデオデータのブロックに隣接して配置される1つまたは複数の隣接するピクセルに基づいて、従属深度ビューに含まれるビデオデータのブロックと関連付けられる深度値を決定させ、ビデオデータのブロックと関連付けられる決定された深度値に少なくとも一部基づいて、ビデオデータのブロックと関連付けられる相違ベクトルを生成させ、ビュー間相違動きベクトル候補(IDMVC)を生成するために相違ベクトルを使用させ、ベースビュー中のビデオデータの対応するブロックに基づいて、ビデオデータのブロックと関連付けられるビュー間予測された動きベクトル候補(IPMVC)を生成させ、ビデオデータのブロックと関連付けられる統合候補リストにIDMVCとIPMVCのいずれかを追加すべきかどうかを決定させる命令によって符号化された、コンピュータ可読記憶媒体を説明する。
【0011】
[0011]別の例では、本開示は、ビデオデータをコーディングするための装置を説明し、この装置は、従属深度ビュー中のビデオデータのブロックに隣接して配置される1つまたは複数の隣接するピクセルに基づいて、従属深度ビューに含まれるビデオデータのブロックと関連付けられる深度値を決定するための手段と、ビデオデータのブロックと関連付けられる決定された深度値に少なくとも一部基づいて、ビデオデータのブロックと関連付けられる相違ベクトルを生成するための手段と、ビュー間相違動きベクトル候補(IDMVC)を生成するために相違ベクトルを使用するための手段と、ベースビュー中のビデオデータの対応するブロックに基づいて、ビデオデータのブロックと関連付けられるビュー間予測された動きベクトル候補(IPMVC)を生成するための手段と、ビデオデータのブロックと関連付けられる統合候補リストにIDMVCとIPMVCのいずれかを追加すべきかどうかを決定するための手段とを含む。
【0012】
[0012]別の例では、本開示は、ビデオデータをコーディングする方法を説明し、この方法は、ビュー間予測された動きベクトル候補(IPMVC)を動きベクトル継承(MVI:motion vector inheritance)候補と比較すること、IPMVCとMVI候補が各々、従属深度ビュー中のビデオデータのブロックと関連付けられ、IPMVCがベース深度ビュー中のビデオデータの対応するブロックから生成され、を含む。方法はさらに、IPMVCがMVI候補と異なることに基づいてIPMVCを統合候補リストに追加すること、または、IPMVCがMVI候補と同一であることに基づいて統合候補リストからIPMVCを除外することの1つを実行することを含み得る。
【0013】
[0013]別の例では、本開示は、ビデオデータをコーディングするためのデバイスを説明し、このデバイスはメモリと1つまたは複数のプロセッサとを含む。1つまたは複数のプロセッサは、ビュー間予測された動きベクトル候補(IPMVC)を動きベクトル継承(MVI)候補と比較すること、IPMVCとMVI候補が各々、従属深度ビュー中のビデオデータのブロックと関連付けられ、IPMVCがベース深度ビュー中のビデオデータの対応するブロックから生成され、を行うように構成され、またはそうでなければそのように動作可能であり得る。1つまたは複数のプロセッサはさらに、IPMVCがMVI候補と異なることに基づいてIPMVCを統合候補リストに追加すること、または、IPMVCがMVI候補と同一であることに基づいて統合候補リストからIPMVCを除外することの1つを実行するように構成され、またはそうでなければそのように動作可能であり得る。
【0014】
[0014]別の例では、本開示は、実行されると、ビデオコーディングデバイスの1つまたは複数のプロセッサに、ビュー間予測された動きベクトル候補(IPMVC)を動きベクトル継承(MVI)候補と比較すること、IPMVCとMVI候補が各々、従属深度ビュー中のビデオデータのブロックと関連付けられ、IPMVCがベース深度ビュー中のビデオデータの対応するブロックから生成され、を行わせる命令によって符号化された、コンピュータ可読記憶媒体を説明する。命令はさらに、実行されると、ビデオコーディングデバイスの1つまたは複数のプロセッサに、IPMVCがMVI候補と異なることに基づいてIPMVCを統合候補リストに追加すること、または、IPMVCがMVI候補と同一であることに基づいて統合候補リストからIPMVCを除外することの1つを実行させ得る。
【0015】
[0015]別の例では、本開示は、ビデオデータをコーディングするための装置を説明し、この装置は、ビュー間予測された動きベクトル候補(IPMVC)を動きベクトル継承(MVI)候補と比較するための手段、IPMVCとMVI候補が各々、従属深度ビュー中のビデオデータのブロックと関連付けられ、IPMVCがベース深度ビュー中のビデオデータの対応するブロックから生成され、を含む。装置はさらに、IPMVCがMVI候補と異なることに基づいてIPMVCを統合候補リストに追加すること、または、IPMVCがMVI候補と同一であることに基づいて統合候補リストからIPMVCを除外することの1つを実行するための手段を含み得る。
【0016】
[0016]1つまたは複数の例の詳細が、添付の図面および以下の説明において述べられる。他の特徴、目的、および利点は、説明および図面から、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【0017】
図1】[0017]ビデオコーディングにおける深度指向性のビュー間動きベクトル予測(depth oriented inter-view motion vector prediction)のための技法を実施する、またはそうでなければ利用するように構成され得る、例示的なビデオ符号化および復号システムを示すブロック図。
図2】[0018]ビデオコーディングにおける深度指向性のビュー間動きベクトル予測のための技法を実施する、またはそうでなければ利用し得る、ビデオエンコーダの例を示すブロック図。
図3】[0019]ビデオコーディングにおける深度指向性のビュー間動きベクトル予測のための技法を実施する、またはそうでなければ利用し得る、ビデオデコーダの例を示すブロック図。
図4】[0020]例示的なマルチビュー復号順序を示す概念図。
図5】[0021]MVC、マルチビューHEVC、および3D−HEVC(マルチビュープラス深度)とともに使用され得る例示的なMVC予測パターンを示す概念図。
図6】[0022]時間的に隣接するブロックを示す概念図。
図7】[0023]ビデオコーディングデバイスがそれによってベースビューから深度ブロックを位置特定し、BVSP予測のために位置特定された深度ブロックを使用することができる、例示的な3段階のプロセスを示す。
図8】[0024]上で説明された、現在のブロックと、対応するブロックと、動き補償されたブロックとの関係を示す。
図9】[0025]深度コーディングのための動きベクトル継承(MVI)候補の導出を示す概念図。
図10】[0026]サンプルPx,yを予測するために(たとえば、ビデオコーディングデバイスによって)使用され得る、参照サンプルRx,yを示す。
図11】[0027]マルチビュービデオコーディングの例示的な予測構造を示す概念図。
図12】[0028]ビデオコーディングデバイスがそれによって本明細書で説明された深度指向性のビュー間動き予測技法を実行することができる、例示的なプロセスを示すフローチャート。
図13】[0029]本開示の態様による、ビデオコーディングデバイスがそれによって1つまたは複数の深度指向性のビュー間動きベクトル候補を使用して統合リスト構築を実施することができる、例示的なプロセスを示すフローチャート。
【発明を実施するための形態】
【0018】
[0030]本開示は、テクスチャビューと深度ビューからなる3Dビデオコンテンツのコーディングのための様々な技法を説明する。これらの技法は、いくつかの態様では、ビデオエンコーダによって実行され得る。他の態様では、これらの技法は、ビデオデコーダによって実行され得る。ベースビューは、「参照レイヤ」または「参照ビュー」とも本明細書では呼ばれ得る。加えて、基本レイヤ以外のビューまたはレイヤは、「従属レイヤ」または「従属ビュー」と本明細書では呼ばれ得る。加えて、本明細書で説明される様々な技法は、トランスコーダ、メディア認識ネットワーク要素(MANE)、またはビデオデータを処理する他のデバイスもしくはユニットのような、他のデバイスによって実行され得る。本開示では、本技法は、説明のために、ビデオエンコーダおよびデコーダに関して説明される。
【0019】
[0031]ビデオコーディング規格は、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、ならびに、ITU−T H.264のスケーラブルビデオコーディング(SVC)拡張および/またはマルチビュービデオコーディング(MVC)拡張とを含む(ISO/IEC MPEG−4 AVCとしても知られる)ITU−T H.264を含む。
【0020】
[0032]ビデオコーディング規格は、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、ならびに、ITU−T H.264のスケーラブルビデオコーディング(SVC)拡張および/またはマルチビュービデオコーディング(MVC)拡張とを含む(ISO/IEC MPEG−4 AVCとしても知られる)ITU−T H.264を含む。
【0021】
[0033]加えて、ITU−T Video Coding Experts Group(VCEG)とISO/IEC Motion Picture Experts Group(MPEG)とのJoint Collaboration Team on Video Coding(JCT−VC)によって開発されている新しいビデオコーディング規格、すなわち、High−Efficiency Video Coding(HEVC)がある。以後HEVC WD8と呼ばれる、HEVCの1つの最近のワーキングドラフト(WD)は、http://phenix.int−evry.fr/jct/doc_end_user/documents/11_Shanghai/wg11/JCTVC−K1003−v10.zipから入手可能である。HEVCの別のより最近のドラフトは、本明細書では「HEVC text specification draft 10」と呼ばれる。HEVC WD8(BROSS他、「High efficiency video coding (HEVC) text specification draft 8」、第10回会議:ストックホルム、スウェーデン、2012年7月11〜20日、JCTVC−J1003_d7、261pp)およびHEVC draft 10(BROSS他、「High efficiency video coding (HEVC) text specification draft 10(For FDIS & Last Call)」、第10回会議:ジュネーブ、スイス、2013年1月14〜23日、JCTVC−L1003_v34、310pp)の内容全体が、参照によって本明細書に組み込まれる。
【0022】
[0034]HEVCの1つの使用法は、高精細度および超高精細度(UHD)ビデオの領域におけるものであり得る。多くの高精細度(HD)ディスプレイはすでに、ステレオビデオをレンダリングすることが可能であり、UHDディスプレイの増大する解像度およびディスプレイサイズは、そのようなディスプレイをステレオビデオに対してさらにより適したものにし得る。その上、HEVCの改善された圧縮能力(たとえば、H.264/AVC Highプロファイルと比較して、同じ品質でビットレートは半分であると予測される)は、HEVCを、ステレオビデオをコーディングするための良好な候補にし得る。たとえば、ビュー間の冗長性を利用する機構を使用して、ビデオコーダ(たとえば、ビデオエンコーダまたはビデオデコーダ)は、H.264/AVC規格を使用してコーディングされる同じ品質および解像度の単一ビュー(モノスコープ(monoscopic))ビデオよりもさらに低いレートで、フル解像度のステレオビデオをコーディングするために、HEVCを使用することが可能であり得る。
【0023】
[0035]AVCベースのプロジェクトと同様に、VCEGおよびMPEGのJoint Collaboration Team on 3D Video Coding (JCT−3V)は、HEVCコーディング技術を使用している2つの3DVソリューションの研究を進めている。一方は、MV−HEVCとも呼ばれるHEVCのマルチビュー拡張であり、もう一方は、深度増強されたHEVCベースのフル3DVコーデック、すなわち3D−HEVCである。規格化の取組みの一部は、HEVCに基づいたマルチビュー/3Dビデオコーディングの規格化を含む。最新のソフトウェア3D−HTMバージョン5.0は、https://hevc.hhi.fraunhofer.de/svn/svn_3DVCSoftware/tags/HTM−5.0/において電子的に入手可能である。以下で説明される技法は、上記の2つの提案されている3DVソリューションとともに実施され得る。
【0024】
[0036]いくつかの例では、本技法はまた(または代替的に)、HEVCに対するスケーラブル拡張またはマルチビュー拡張とともに実施され得る。スケーラブルビデオコーディングでは、ビデオデータの複数のレイヤがコーディングされ得る。いくつかの例では、各レイヤは特定のビューに対応し得る。ここで、ビュースケーラビリティと空間的スケーラビリティの適用は、3Dサービスの進化において極めて有益であると考えられ、それは、ビュースケーラビリティおよび空間的スケーラビリティは、より多くのビューに対する後方互換性のある拡張(すなわち、様々なコーデックの以前のバージョンおよび/またはリリースとともに動作するように動作可能である、またはそのように構成される拡張)、および/または、従来のデバイス(すなわち、特定のコーデックの以前のバージョンおよび/またはリリースを実装するデバイス)による復号が可能であるような方法でビューの解像度を向上させることを可能にするからである。
【0025】
[0037]2次元ビデオコーディングでは、ビデオデータ(すなわち、ピクチャのシーケンス)は、ピクチャごとに、必ずしも表示の順序ではない順序でコーディングされる。ビデオコーディングデバイスは、各ピクチャをブロックに分割し、各ブロックを個々にコーディングする。ブロックベースの予測モードは、イントラ予測とも呼ばれる空間的予測とインター予測とも呼ばれる時間的予測とを含む。
【0026】
[0038]マルチビューコーディングされたデータまたはスケーラブルコーディングされたデータのような、3次元ビデオデータでは、ブロックはまた、ビュー間予測および/またはレイヤ間予測され得る。本明細書で説明されるように、ビデオ「レイヤ」は一般に、ビュー、フレームレート、解像度などの少なくとも1つの共通の特性を有するピクチャのシーケンスを指し得る。たとえば、レイヤは、マルチビュービデオデータの特定のビュー(たとえば、視点)と関連付けられるビデオデータを含み得る。別の例として、レイヤは、スケーラブルビデオデータの特定のレイヤと関連付けられるビデオデータを含み得る。
【0027】
[0039]したがって、本開示は、ビデオデータのレイヤとビューを交換可能に指し得る。すなわち、ビデオデータのビューはビデオデータのレイヤと呼ばれることがあり、ビデオデータのレイヤはビデオデータのビューと呼ばれることがある。その上、ビュー間予測およびレイヤ間予測という用語は、ビデオデータの複数のレイヤおよび/またはビューの間の予測を交換可能に指し得る。加えて、マルチレイヤコーデック(またはマルチレイヤビデオコーダ)は、マルチビューコーデックまたはスケーラブルコーデックをまとめて指し得る。
【0028】
[0040]マルチビューまたはスケーラブルビデオコーディングでは、ブロックは、ビデオデータの別のビューまたはレイヤのピクチャから予測され得る。この方式で、異なるビューから再構築されたビュー成分に基づくビュー間予測が可能にされ得る。本開示は、特定のビューまたはレイヤの符号化されたピクチャを指すために、「ビュー成分」という用語を使用する。すなわち、ビュー成分は、(表示順序または出力順序に関して)特定の時間における特定のビューに対する符号化されたピクチャを備え得る。ビュー成分(またはビュー成分のスライス)は、ピクチャ順序カウント(POC)値を有することがあり、POC値は一般に、ビュー成分の表示順序(または出力順序)を示す。
【0029】
[0041]通常、2つのビューの同一のまたは対応するオブジェクトは同じ位置にない(not co-located)。「相違ベクトル」という用語は、あるビューのピクチャ中のオブジェクトの、異なるビューにおける対応するオブジェクトに対する変位を示すベクトルを指すために使用され得る。そのようなベクトルは、「変位ベクトル」とも呼ばれ得る。相違ベクトルはまた、ピクチャのビデオデータのピクセルまたはブロックに適用可能であり得る。たとえば、第1のビューのピクチャ中のピクセルは、第2のビューのピクチャ中の対応するピクセルに対して、第1のビューおよび第2のビューがキャプチャされた異なるカメラ位置に関する特定の相違ベクトルの分だけ、変位していることがある。いくつかの例では、相違ベクトルは、あるビューから別のビューへの動き情報((1つまたは複数の)参照ピクチャインデックスを伴う、または伴わない(1つまたは複数の)動きベクトル)を予測するために使用され得る。
【0030】
[0042]したがって、コーディング効率をさらに改善するために、ビデオコーダはまた、ビュー間動き予測および/またはビュー間残差予測を適用することができる。ビュー間動き予測に関して、ビデオコーダは、あるビューのブロックと関連付けられる動きベクトルを、第2の異なるビューのブロックと関連付けられる動きベクトルに対してコーディングすることができる。しかしながら、ビュー間動き予測はテクスチャビューにおいて使用されてきたが、ビュー間動き予測は深度ビューにおいては使用されてこなかった。
【0031】
[0043]本開示の技法は全般に、ビュー間動き予測を深度ビューに適用することを対象とする。様々な例において、ビデオコーディングデバイスは、従属深度ビュー中の深度ブロックの隣接する深度ピクセルから相違ベクトルを導出するための、1つまたは複数の技法を実施することができる。次いで、ビデオコーディングデバイスは、ベース深度ビューから動きベクトル候補(たとえば、それによって統合リストを埋める)を導出するために相違ベクトルを使用するための技法を実施することができる。本明細書で説明される技法を実施することによって、ビデオコーディングデバイスは、深度ベースビューのためのすでにコーディングされている動き情報からより多数の動きベクトル候補を利用することによって、従属深度ビューのための動きベクトル予測の精度を改善することができる。他の例では、本開示の技法は、ビュー間動き予測を深度ビューに適用することによって生成される動きベクトル候補を使用した統合リスト構築を対象とする。
【0032】
[0044]図1は、ビデオコーディングにおける深度指向性のビュー間動きベクトル予測のための技法を実施する、またはそうでなければ利用するように構成され得る、例示的なビデオ符号化および復号システム10を示すブロック図である。図1に示されるように、システム10は、宛先デバイス14によって後で復号されるべき符号化されたビデオデータを与えるソースデバイス12を含む。具体的には、ソースデバイス12は、コンピュータ可読媒体16を介してビデオデータを宛先デバイス14に与える。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンのような電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲のデバイスのいずれかを備え得る。場合によっては、ソースデバイス12および宛先デバイス14はワイヤレス通信に対応し得る。
【0033】
[0045]宛先デバイス14は、コンピュータ可読媒体16を介して、復号されるべき符号化されたビデオデータを受信することができる。コンピュータ可読媒体16は、符号化されたビデオデータをソースデバイス12から宛先デバイス14に移動することが可能な任意のタイプの媒体またはデバイスを備え得る。一例では、コンピュータ可読媒体16は、ソースデバイス12が、符号化されたビデオデータを宛先デバイス14にリアルタイムで直接送信することを可能にするための通信媒体を備え得る。符号化されたビデオデータは、ワイヤレス通信プロトコルのような通信規格に従って変調され、宛先デバイス14に送信され得る。通信媒体は、無線周波数(RF)スペクトルあるいは1つまたは複数の物理伝送線路のような、任意のワイヤレス通信媒体またはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークのような、パケットベースネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、または、ソースデバイス12から宛先デバイス14への通信を支援するために有用であり得る任意の他の装置を含み得る。
【0034】
[0046]いくつかの例では、符号化されたデータは、出力インターフェース22から記憶デバイス31のような記憶デバイスへ出力され得る。同様に、符号化されたデータは、入力インターフェース28によって記憶デバイス31からアクセスされ得る。記憶デバイス31は、ハードドライブ、Blu−ray(登録商標)ディスク、DVD、CD−ROM、フラッシュメモリ、揮発性もしくは不揮発性メモリ、または、符号化されたビデオデータを記憶するための任意の他の適切なデジタル記憶媒体のような、様々な分散したまたはローカルでアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる例では、記憶デバイス31は、ソースデバイス12によって生成された符号化されたビデオを記憶することができるファイルサーバまたは別の中間記憶デバイスに対応し得る。宛先デバイス14は、ストリーミングまたはダウンロードを介して記憶デバイスからの記憶されたビデオデータにアクセスすることができる。ファイルサーバは、符号化されたビデオデータを記憶し、その符号化されたビデオデータを宛先デバイス14へ送信することができる、任意のタイプのサーバであり得る。例示的なファイルサーバは、ウェブサーバ(たとえば、ウェブサイトのための)、FTPサーバ、ネットワーク接続記憶(NAS)デバイス、またはローカルディスクドライブを含む。宛先デバイス14は、インターネット接続を含む任意の標準的なデータ接続を通じて、符号化されたビデオデータにアクセスすることができる。これは、ワイヤレスチャネル(たとえば、Wi−Fi(登録商標)接続)、ワイヤード接続(たとえば、DSL、ケーブルモデムなど)、または、ファイルサーバ上に記憶されている符号化されたビデオデータにアクセスするのに適した、それらの両方の組合せを含み得る。記憶デバイスからの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはそれらの組合せであり得る。
【0035】
[0047]本開示の技法は、必ずしもワイヤレスの用途または設定に限定されるとは限らない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、dynamic adaptive streaming over HTTP(DASH)のようなインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されたデジタルビデオ、データ記憶媒体上に記憶されたデジタルビデオの復号、または他の用途のような、種々のマルチメディア用途のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および/またはビデオ電話のような用途をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
【0036】
[0048]図1の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、出力インターフェース22とを含む。宛先デバイス14は、入力インターフェース28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。
【0037】
[0049]図1の例示されたシステム10は、一例にすぎない。深度指向性のビュー間動きベクトル予測のための技法は、任意のデジタルビデオ符号化および/または復号デバイスによって実行され得る。一般に、本開示の技法はビデオ符号化デバイスによって実行されるが、本技法は、通常「コーデック」と呼ばれるビデオエンコーダ/デコーダによっても実行され得る。その上、本開示の技法は、ビデオプリプロセッサによっても実行され得る。ソースデバイス12および宛先デバイス14は、ソースデバイス12が、宛先デバイス14に送信するためのコーディングされたビデオデータを生成するような、コーディングデバイスの例にすぎない。いくつかの例では、デバイス12、14は、デバイス12、14の各々がビデオ符号化コンポーネントとビデオ復号コンポーネントとを含むように実質的に対称的に動作し得る。したがって、システム10は、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、またはビデオ電話のために、ビデオデバイス12とビデオデバイス14との間の一方向または双方向のビデオ送信をサポートし得る。
【0038】
[0050]ソースデバイス12のビデオソース18は、ビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、および/またはビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースを含み得る。さらなる代替として、ビデオソース18は、ソースビデオとしてのコンピュータグラフィックスベースのデータ、またはライブビデオとアーカイブされたビデオとコンピュータにより生成されたビデオとの組合せを生成し得る。場合によっては、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるカメラ付き携帯電話またはビデオ付き携帯電話を形成し得る。しかしながら、上で言及されたように、本開示で説明される技法は、一般にビデオコーディングに適用可能であり、ワイヤレスおよび/またはワイヤード用途に適用され得る。各々の場合において、キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータにより生成されたビデオは、ビデオエンコーダ20によって符号化され得る。次いで、符号化されたビデオ情報は、出力インターフェース22によってコンピュータ可読媒体16上に出力され得る。
【0039】
[0051]コンピュータ可読媒体16は、ワイヤレスブロードキャストまたはワイヤードネットワーク送信のような一時的媒体、あるいはハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、Blu−rayディスク、または他のコンピュータ可読媒体のような記憶媒体(すなわち、非一時的記憶媒体)を含み得る。いくつかの例では、ネットワークサーバ(図示されず)は、ソースデバイス12から符号化されたビデオデータを受信し、たとえば、ネットワーク送信を介して、その符号化されたビデオデータを宛先デバイス14に与え得る。同様に、ディスクスタンピング設備のような、媒体製造設備のコンピューティングデバイスは、ソースデバイス12から符号化されたビデオデータを受信し、その符号化されたビデオデータを含むディスクを生成し得る。したがって、様々な例では、コンピュータ可読媒体16は、様々な形態の1つまたは複数のコンピュータ可読媒体を含むと理解され得る。
【0040】
[0052]宛先デバイス14の入力インターフェース28は、コンピュータ可読媒体16から情報を受け取る。コンピュータ可読媒体16の情報は、ビデオエンコーダ20によって定義され、またビデオデコーダ30によって使用される、ブロックおよび他のコーディングされたユニット、たとえば、GOPの特性および/または処理を記述するシンタックス要素を含む、シンタックス情報を含み得る。ディスプレイデバイス32は、復号されたビデオデータをユーザに対して表示し、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスのような、様々なディスプレイデバイスのいずれかを備え得る。
【0041】
[0053]ビデオエンコーダ20およびビデオデコーダ30は、現在開発中のHigh Efficiency Video Coding(HEVC)規格のようなビデオコーディング規格に従って動作することができ、一般にHEVC Test Model(HM)に準拠し得る。代替的に、ビデオエンコーダ20およびビデオデコーダ30は、代替的にMPEG−4、Part 10と呼ばれるITU−T H.264規格、Advanced Video Coding(AVC)、またはそのような規格の拡張のような、他のプロプライエタリ(proprietary)規格または業界規格に従って動作し得る。しかしながら、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオコーディング規格の他の例は、MPEG−2およびITU−T H.263を含む。図1には示されないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30は各々、オーディオエンコーダおよびオーディオデコーダと統合されてよく、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するための、適切なMUX−DEMUXユニット、または他のハードウェアとソフトウェアとを含み得る。適用可能な場合、MUX−DEMUXユニットは、ITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)のような他のプロトコルに準拠し得る。
【0042】
[0054]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】
[0055]ビデオエンコーダ20およびビデオデコーダ30は各々、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せのような、様々な適切なエンコーダ回路のいずれかとして実装され得る。技法が部分的にソフトウェアで実装される場合、デバイスは、ソフトウェアのための命令を、適切な非一時的コンピュータ可読媒体に記憶し、本開示の技法を実行するための1つまたは複数のプロセッサを使用して、ハードウェアで命令を実行し得る。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダに含まれてよく、そのいずれかは、組み合わされたエンコーダ/デコーダ(コーデック)の一部として、それぞれのデバイスに統合され得る。
【0044】
[0056]本開示は全般に、ビデオエンコーダ20が、ある情報をビデオデコーダ30などの別のデバイスに「シグナリング」することに言及することがある。しかしながら、ビデオエンコーダ20はあるシンタックス要素をビデオデータの様々な符号化された部分と関連付けることによって情報をシグナリングし得ることを理解されたい。すなわち、ビデオエンコーダ20は、ビデオデータの様々な符号化された部分のヘッダに、あるシンタックス要素を記憶することによって、データを「シグナリング」することができる。いくつかの場合には、そのようなシンタックス要素は、ビデオデコーダ30によって受信され復号される前に、符号化され記憶され(たとえば、記憶デバイス24に記憶され)得る。したがって、「シグナリング」という用語は全般に、圧縮されたビデオデータを復号するためのシンタックスまたは他のデータの通信を、そのような通信がリアルタイムで発生するかほぼリアルタイムで発生するかある期間にわたって発生するかにかかわらず指すことがあり、ある期間にわたる通信は、シンタックス要素を符号化の時点で媒体に記憶し、次いで、シンタックス要素がこの媒体に記憶された後の任意の時点で復号デバイスによって取り出され得るときに、発生し得る。
【0045】
[0057]いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30は、代替的にMPEG−4、Part 10、Advanced Video Coding(AVC)と呼ばれるITU−T H.264規格のような、プロプライエタリ規格または業界規格、あるいはそのような規格の拡張に従って動作し得る。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)によって策定された。
【0046】
[0058]ビデオエンコーダ20およびビデオデコーダ30は、加えて、または代替的に、HEVC WD8のような別のビデオコーディング規格に従って動作し得る。さらに、HEVC向けのスケーラブルビデオコーディング拡張、マルチビューコーディング拡張、および3次元ビデオ(3DV)拡張を製作する取組みが進行中である。したがって、いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30はマルチビュービデオコーディングを実行することができる。たとえば、ビデオエンコーダ20およびビデオデコーダ30は、HEVCのマルチビュー拡張(MV−HEVCと呼ばれる)、深度増強されたHEVCベースのフル3DVコーデック(3D−HEVCと呼ばれる)、または、HEVCのスケーラブルビデオコーディング拡張(SHEVC(スケーラブルHEVC)またはHSVC(高効率スケーラブルビデオコーディング)と呼ばれる)を実装することができる。
【0047】
[0059]以下で説明される技法は、上で述べられたHEVC拡張の1つまたは複数とともに実装され得る。3D−HEVCでは、テクスチャビューと深度ビューの両方に対する、コーディングユニット/予測ユニットレベルでのコーディングツールを含む新たなコーディングツールが、含まれサポートされ得る。2013年11月21日時点で、3D−HEVCのためのソフトウェア(すなわち、3D−HTMバージョン5.0)は、次のリンクhttps://hevc.hhi.fraunhofer.de/svn/svn_3DVCSoftware/tags/HTM−5.0/からダウンロードされ得る。
【0048】
[0060]2次元ビデオデータは一般に、その各々が特定の時間的インスタンスに対応する、個別ピクチャのシーケンスとしてコーディングされる。すなわち、各ピクチャは、シーケンス中の他の画像の再生時間に対して、関連付けられる再生時間を有する。これらのピクチャはテクスチャピクチャまたはテクスチャ画像と考えられ得る。深度ビュー成分は、対応するテクスチャビュー成分中のピクセルの相対深度を示し得る。一例として、深度ビュー成分は、ルーマ値のみを含むグレースケール画像である。言い換えれば、深度ビュー成分は、テクスチャの画像コンテンツを何ら伝えることができず、むしろ、深度ビュー成分は、テクスチャビュー成分において定義される様々なピクセルの相対深度の尺度を提供することができる。深度ビュー成分中の深度値は、0相違平面(a zero disparity plane)に対するそれぞれのピクセルの深度、または場合によっては他の何らかの基準を定義することができる。深度ベースの3Dビデオコーディングでは、シーケンス中の各テクスチャピクチャは深度マップにも対応し得る。すなわち、テクスチャピクチャに対応する深度マップは、対応するテクスチャピクチャのための深度データを表す。マルチビュービデオデータは、様々な異なるビューのためのデータを含んでよく、各ビューは、テクスチャピクチャと、対応する深度ピクチャとのそれぞれのシーケンスを含み得る。
【0049】
[0061]深度値は一般にテクスチャデータに対応する。たとえば、深度画像は、各々が対応するテクスチャデータの深度値を記述する、深度ピクセルのセットを含み得る。深度値は、対応するテクスチャデータの水平相違を決定するために使用され得る。したがって、テクスチャデータと深度値とを受信するデバイスは、一方のビュー(たとえば、左眼のビュー)のための第1のテクスチャ画像を表示し、深度値に基づいて決定された水平相違値だけ第1の画像のピクセル値をオフセットすることによって他方のビュー(たとえば、右眼のビュー)のための第2のテクスチャ画像を生成するように第1のテクスチャ画像を修正するために、深度値を使用することができる。一般に、水平相違(または単に「相違」)は、右ビュー中の対応するピクセルに対する第1のビュー中のピクセルの水平空間オフセットを表し、2つのピクセルは、2つのビュー中で表される同じオブジェクトの同じ部分に対応する。
【0050】
[0062]さらに他の例では、画像について定義された0相違平面に対して、所与のピクセルと関連付けられた深度が定義されるように、画像平面に直交するz次元におけるピクセルについて深度値が定義され得る。そのような深度は、0相違平面に対するピクセルのz次元の深度値に応じてピクセルが左眼と右眼に対して異なるように表示されるように、ピクセルを表示するための水平相違を作り出すために使用され得る。0相違平面はビデオシーケンスの異なる部分に対しては変化することがあり、0相違平面に対する深度の量も変化することがある。0相違平面上に位置するピクセルは、左眼および右眼に対して同様に定義され得る。0相違平面の前に位置するピクセルは、ピクセルが画像平面に直交するz方向へと画像から出てくるように見える知覚を作り出すように、(たとえば、水平相違を用いて)左眼と右眼に対して異なる位置に表示され得る。0相違平面の後ろに位置するピクセルは、深度をわずかに知覚する程度に、わずかなぼかしとともに表示されてよく、または(たとえば、0相違平面の前に位置するピクセルの水平相違とは反対の水平相違を用いて)左眼と右眼とに対して異なる位置に表示され得る。画像用の深度データを伝達または定義するために、様々な他の技法も使用され得る。
【0051】
[0063]概念的に、深度ビュー成分中の純白のピクセルは、対応するテクスチャビュー成分中の対応する1つまたは複数のピクセルが視者(viewer)の観点からはより近いことを示し、深度ビュー成分中の純黒のピクセルは、対応するテクスチャビュー成分中の対応する1つまたは複数のピクセルが視者の観点からはより遠いことを示す。黒と白との中間の灰色の様々な色合いは、様々な深度レベルを示す。たとえば、深度ビュー成分中の濃い灰色のピクセルは、テクスチャビュー成分中の対応するピクセルが、深度ビュー成分中のわずかにより薄い灰色のピクセルよりも遠いことを示す。ピクセルの深度を特定するためにグレースケールのみが必要とされるので、深度ビュー成分の色値がいかなる目的も果たし得ないことから、深度ビュー成分はクロマ成分を含む必要がない。深度を特定するためにルーマ値(たとえば、強度値(intensity values))のみを使用する深度ビュー成分が説明のために提供され、限定するものと見なされるべきではない。
【0052】
[0064]より一般的な意味では、深度ビュー成分は、最小値から最大値までの範囲の値を備え得る。1つの特定の基準のフレームに従って、最大深度値を有する深度ビュー成分中のピクセルは、より低い値を有する深度ビュー成分中のピクセルに対応するテクスチャビュー成分中のピクセルと比べて視者からより遠いものとして、テクスチャビュー成分中のそれぞれのピクセルの深度を定義することができる。その結果、最小深度値を有する深度ビュー成分中のピクセルは、より高い値を有する深度ビュー成分中のピクセルに対応するテクスチャビュー成分中のピクセルと比べて視者により近いものとして、テクスチャビュー成分中のそれぞれのピクセルの深度を定義することができる。他の例では、基準のフレームは異なるように定義され得る。たとえば、基準のフレームは、比較的高い値と比較的低い値の意味が反転するように定義され得る。すなわち、比較的低い値が視者からより遠い深度に対応することがあり、より高い値が視者からより近い深度に対応することがある。他の例では、テクスチャビュー成分中のピクセルの相対深度を示すために、任意の技法が利用され得る。
【0053】
[0065]一般に、HEVCの動き補償ループは、H.264/AVCにおける動き補償ループと同じである。たとえば、動き補償ループにおける現在のフレーム
【数1】
の再構築は、逆量子化された係数rと時間的予測Pを足したものに等しくてよい。
【数2】
上の式では、Pは、Pフレームのための単予測的インター予測またはBフレームのための双予測的インター予測を示す。
【0054】
[0066]しかしながら、HEVCにおける動き補償のユニットは、以前のビデオコーディング規格におけるユニットとは異なる。たとえば、以前のビデオコーディング規格におけるマクロブロックの概念は、HEVCでは存在しない。むしろ、マクロブロックは、一般的な4分木方式に基づく柔軟な階層構造によって置き換えられる。この方式の中で、3つのタイプのブロック、すなわちコーディングユニット(CU)、予測ユニット(PU)、および変換ユニット(TU)が定義される。CUは領域分割の基本ユニットである。CUの概念はマクロブロックの概念に類似するが、CUは最大サイズに制限されず、コンテンツの適応性を向上させるために4つの等しいサイズのCUへの繰り返しの分割(recursive splitting)を可能にする。PUはインター/イントラ予測の基本ユニットである。いくつかの例では、PUは、不規則な画像パターンを効果的にコーディングするために、単一のPUの中に複数の任意の形状の区分を含み得る。TUは変換の基本ユニットである。CUのTUは、CUのPUとは独立に定義され得る。しかしながら、TUのサイズは、TUが属するCUに限定される。3つの異なる概念へのブロック構造のこの分離は、各々が対応する役割に従って最適化されることを可能にでき、このことはコーディング効率の改善をもたらし得る。
【0055】
[0067]HEVCおよび他のビデオコーディング仕様では、ビデオシーケンスは通常、一連のピクチャを含む。ピクチャは「フレーム」とも呼ばれ得る。ピクチャは、SL、SCb、およびSCrと示される3つのサンプルアレイを含み得る。SLは、ルーマサンプルの2次元アレイ(すなわち、ブロック)である。SCbは、Cbクロミナンスサンプルの2次元アレイである。SCrは、Crクロミナンスサンプルの2次元アレイである。クロミナンスサンプルは、本明細書では「クロマ」サンプルとも呼ばれ得る。他の例では、ピクチャは、モノクロームであってよく、ルーマサンプルのアレイのみを含み得る。
【0056】
[0068]ピクチャの符号化された表現を生成するために、ビデオエンコーダ20はコーディングツリーユニット(CTU)のセットを生成し得る。CTUの各々は、ルーマサンプルのコーディングツリーブロックと、クロマサンプルの2つの対応するコーディングツリーブロックと、それらのコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。3つの別個のカラープレーン(color planes)を有する1つまたは複数のモノクロームピクチャでは、CTUは、単一のコーディングツリーブロックと、そのコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。コーディングツリーブロックは、サンプルのN×Nのブロックであり得る。CTUは「ツリーブロック」または「最大コーディングユニット」(LCU)とも呼ばれ得る。HEVCのCTUは、H.264/AVCのような、他の規格のマクロブロックに広い意味で類似し得る。しかしながら、CTUは、必ずしも特定のサイズに限定されず、1つまたは複数のCUを含み得る。スライスは、ラスタースキャン順序で(in a raster scan order)連続的に順序付けられた整数個のCTUを含み得る。
【0057】
[0069]コーディングされたスライスは、スライスヘッダとスライスデータとを備え得る。スライスのスライスヘッダは、スライスについての情報を提供するシンタックス要素を含むシンタックス構造であり得る。スライスデータは、スライスのコーディングされたCTUを含み得る。
【0058】
[0070]本開示は、サンプルの1つまたは複数のブロックのサンプルをコーディングするために使用される1つまたは複数のサンプルブロックとシンタックス構造とを指すために、「ビデオユニット」または「ビデオブロック」または「ブロック」という用語を使用し得る。例示的なタイプのビデオユニットまたはブロックは、CTU、CU、PU、変換ユニット(TU)、マクロブロック、マクロブロック区分などを含み得る。いくつかの状況では、PUについての論述は、マクロブロック区分のマクロブロックについての論述と交換され得る。
【0059】
[0071]コーディングされたCTUを生成するために、ビデオエンコーダ20は、CTUのコーディングツリーブロックに対して4分木区分を繰り返し実行して、コーディングツリーブロックをコーディングブロックに分割することができ、したがって「コーディングツリーユニット」という名称である。コーディングブロックは、サンプルのN×Nのブロックである。CUは、ルーマサンプルアレイとCbサンプルアレイとCrサンプルアレイとを有するピクチャのルーマサンプルのコーディングブロックと、そのピクチャのクロマサンプルの2つの対応するコーディングブロックと、それらのコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。3つの別個のカラープレーンを有する1つまたは複数のモノクロームピクチャでは、CUは、単一のコーディングブロックと、そのコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。
【0060】
[0072]ビデオエンコーダ20は、CUのコーディングブロックを1つまたは複数の予測ブロックに区分することができる。予測ブロックは、同じ予測が適用されるサンプルの矩形(すなわち、正方形または非正方形)ブロックである。CUのPUは、ルーマサンプルの予測ブロックと、クロマサンプルの2つの対応する予測ブロックと、それらの予測ブロックを予測するために使用されるシンタックス構造とを備え得る。3つの別個のカラープレーンを有する1つまたは複数のモノクロームピクチャでは、PUは、単一の予測ブロックと、その予測ブロックを予測するために使用されるシンタックス構造とを備え得る。ビデオエンコーダ20は、CUの各PUのルーマ予測ブロック、Cb予測ブロック、およびCr予測ブロックに対する、予測ルーマブロック、予測Cbブロック、および予測Crブロックを生成することができる。したがって、本開示では、CUは1つまたは複数のPUに区分されると言われ得る。説明を簡単にするために、本開示は、PUの予測ブロックのサイズを、単にPUのサイズと呼ぶことがある。
【0061】
[0073]ビデオエンコーダ20は、イントラ予測またはインター予測を使用して、PUに関する予測ブロックを生成し得る。ビデオエンコーダ20がイントラ予測を使用してPUの予測ブロックを生成する場合、ビデオエンコーダ20は、PUと関連付けられたピクチャのサンプルに基づいてPUの予測ブロックを生成し得る。本開示では、「に基づいて」という句は、「に少なくとも一部基づいて」を示し得る。
【0062】
[0074]ビデオエンコーダ20がインター予測を使用してPUの予測ブロックを生成する場合、ビデオエンコーダ20は、PUと関連付けられたピクチャ以外の1つまたは複数のピクチャの復号されたサンプルに基づいて、PUの予測ブロックを生成し得る。ブロックの予測ブロック(たとえば、PU)を生成するためにインター予測が使用されるとき、本開示は、ブロックを「インターコーディングされる」または「インター予測される」ものとして呼ぶことがある。インター予測は、単予測的(すなわち、単予測)または双予測的(すなわち、双予測)であり得る。単予測または双予測を実行するために、ビデオエンコーダ20は、現在のピクチャに対して、第1の参照ピクチャリスト(RefPicList0)と第2の参照ピクチャリスト(RefPicList1)とを生成し得る。参照ピクチャリストの各々は、1つまたは複数の参照ピクチャを含み得る。参照ピクチャリストが構築された後(すなわち、利用可能であれば、RefPicList0およびRefPicList1)、参照ピクチャリストに対する参照インデックスは、参照ピクチャリストに含まれる任意の参照ピクチャを識別するために使用され得る。
【0063】
[0075]単予測を使用するとき、ビデオエンコーダ20は、参照ピクチャ内の参照位置を決定するために、RefPicList0とRefPicList1のいずれかまたは両方の中の参照ピクチャを探索することができる。さらに、単予測を使用するとき、ビデオエンコーダ20は、参照位置に対応するサンプルに少なくとも一部基づいて、PUに関する予測ブロックを生成することができる。その上、単予測を使用するとき、ビデオエンコーダ20は、PUの予測ブロックと参照位置との間の空間的変位を示す単一の動きベクトルを生成することができる。この動きベクトルは、PUの予測ブロックと参照位置との間の水平方向の変位を規定する水平成分を含んでよく、PUの予測ブロックと参照位置との間の垂直方向の変位を規定する垂直成分を含んでよい。
【0064】
[0076]双予測を使用してPUを符号化するとき、ビデオエンコーダ20は、RefPicList0中の参照ピクチャ中の第1の参照位置と、RefPicList1中の参照ピクチャ中の第2の参照位置とを決定することができる。ビデオエンコーダ20は、第1の参照位置および第2の参照位置に対応するサンプルに少なくとも一部基づいて、PUに関する予測ブロックを生成することができる。その上、双予測を使用してPUを符号化するとき、ビデオエンコーダ20は、PUの予測ブロックと第1の参照位置との間の空間的変位を示す第1の動きベクトルと、PUの予測ブロックと第2の参照位置との間の空間的変位を示す第2の動きベクトルとを生成することができる。
【0065】
[0077]ビデオエンコーダ20がインター予測を使用してPUの予測ブロックを生成する場合、ビデオエンコーダ20は、PUと関連付けられたピクチャ以外の1つまたは複数のピクチャのサンプルに基づいて、PUの予測ブロックを生成することができる。たとえば、ビデオエンコーダ20は、PUに対して単予測的インター予測(すなわち、単予測)または双予測的インター予測(すなわち、双予測)を実行することができる。
【0066】
[0078]ビデオエンコーダ20がPUに対して単予測を実行する例では、ビデオエンコーダ20は、PUの動きベクトルに基づいて、参照ピクチャ中の参照位置を決定することができる。ビデオエンコーダ20は次いで、PUに関する予測ブロックを決定することができる。PUに関する予測ブロック中の各サンプルは、参照位置と関連付けられ得る。いくつかの例では、PUに関する予測ブロック中のサンプルは、PUと同じサイズを有しその左上の角が参照位置であるサンプルのブロック内にそのサンプルがあるとき、その参照位置と関連付けられ得る。予測ブロック中の各サンプルは、参照ピクチャの実際のサンプルまたは補間されたサンプルであり得る。
【0067】
[0079]予測ブロックのルーマサンプルが参照ピクチャの補間されたルーマサンプルに基づく例では、ビデオエンコーダ20は、8タップの補間フィルタを参照ピクチャの実際のルーマサンプルに適用することによって、補間されたルーマサンプルを生成することができる。予測ブロックのクロマサンプルが参照ピクチャの補間されたクロマサンプルに基づく例では、ビデオエンコーダ20は、4タップの補間フィルタを参照ピクチャの実際のクロマサンプルに適用することによって、補間されたクロマサンプルを生成することができる。一般に、フィルタのタップの数は、フィルタを数学的に表すために必要とされる係数の数を示す。よりタップ数の大きいフィルタは、よりタップ数の少ないフィルタより、一般に複雑である。
【0068】
[0080]ビデオエンコーダ20がPUに対して双予測を実行する例では、PUは2つの動きベクトルを有する。ビデオエンコーダ20は、PUの動きベクトルに基づいて、2つの参照ピクチャ中の2つの参照位置を決定することができる。ビデオエンコーダ20は次いで、上で説明された方式で、2つの参照位置と関連付けられる参照ブロックを決定することができる。ビデオエンコーダ20は次いで、PUに関する予測ブロックを決定することができる。予測ブロック中の各サンプルは、参照ブロック中の対応するサンプルの加重平均(a weighted average)であり得る。サンプルの重みは、PUを含むピクチャからの参照ピクチャの時間的距離に基づき得る。
【0069】
[0081]ビデオエンコーダ20は、様々な区分モードに従ってCUを1つまたは複数のPUに区分することができる。たとえば、CUのPUに関する予測ブロックを生成するためにイントラ予測が使用される場合、CUは、PART_2N×2NモードまたはPART_N×Nモードに従って区分され得る。PART_2N×2Nモードでは、CUは1つのPUしか有しない。PART_N×Nモードでは、CUは矩形の予測ブロックを有する4つの等しいサイズのPUを有する。CUのPUに関する予測ブロックを生成するためにインター予測が使用される場合、CUは、PART_2N×2Nモード、PART_N×Nモード、PART_2N×Nモード、PART_N×2Nモード、PART_2N×nUモード、PART_2N×uDモード、PART_nL×2Nモード、またはPART_nR×2Nモードに従って区分され得る。PART_2N×NモードおよびPART_N×2Nモードでは、CUは矩形の予測ブロックを有する2つの等しいサイズのPUに区分される。PART_2N×nUモード、PART_2N×uDモード、PART_nL×2Nモード、およびPART_nR×2Nモードの各々では、CUは矩形の予測ブロックを有する2つの等しくないサイズのPUに区分される。
【0070】
[0082]ビデオエンコーダ20がCUの1つまたは複数のPUに関する予測ルーマブロックと、予測Cbブロックと、予測Crブロックとを生成した後、ビデオエンコーダ20は、CUに関するルーマ残差ブロックを生成することができる。CUのルーマ残差ブロック中の各サンプルは、CUの予測ルーマブロックのうちの1つの中のルーマサンプルとCUの元のルーマコーディングブロック中の対応するサンプルとの間の差を示す。加えて、ビデオエンコーダ20はCUに関するCb残差ブロックを生成することができる。CUのCb残差ブロック中の各サンプルは、CUの予測Cbブロックのうちの1つの中のCbサンプルと、CUの元のCbコーディングブロック中の対応するサンプルとの間の差を示し得る。ビデオエンコーダ20はまた、CUに関するCr残差ブロックを生成することができる。CUのCr残差ブロック中の各サンプルは、CUの予測Crブロックのうちの1つの中のCrサンプルと、CUの元のCrコーディングブロック中の対応するサンプルとの間の差を示し得る。
【0071】
[0083]さらに、ビデオエンコーダ20は、4分木区分を使用して、CUのルーマ残差ブロック、Cb残差ブロック、およびCr残差ブロックを、1つまたは複数のルーマ変換ブロック、Cb変換ブロック、およびCr変換ブロックに分解することができる。変換ブロックは、同じ変換が適用されるサンプルの矩形(たとえば、正方形または非正方形)ブロックである。CUのTUは、ルーマサンプルの変換ブロックと、クロマサンプルの2つの対応する変換ブロックと、それらの変換ブロックサンプルを変換するために使用されるシンタックス構造とを備え得る。したがって、CUの各TUは、ルーマ変換ブロック、Cb変換ブロックおよびCr変換ブロックと関連付けられ得る。TUと関連付けられたルーマ変換ブロックは、CUのルーマ残差ブロックのサブブロックであり得る。Cb変換ブロックはCUのCb残差ブロックのサブブロックであり得る。Cr変換ブロックはCUのCr残差ブロックのサブブロックであり得る。3つの別個のカラープレーンを有する1つまたは複数のモノクロームピクチャでは、TUは、単一の変換ブロックと、その変換ブロックのサンプルを変換するために使用されるシンタックス構造とを備え得る。
【0072】
[0084]ビデオエンコーダ20は、TUのルーマ変換ブロックに1つまたは複数の変換を適用して、TUに関するルーマ係数ブロックを生成することができる。係数ブロックは変換係数の2次元アレイであり得る。変換係数はスカラー量であり得る。ビデオエンコーダ20は、TUのCb変換ブロックに1つまたは複数の変換を適用して、TUに関するCb係数ブロックを生成することができる。ビデオエンコーダ20は、TUのCr変換ブロックに1つまたは複数の変換を適用して、TUに関するCr係数ブロックを生成することができる。
【0073】
[0085]係数ブロック(たとえば、ルーマ係数ブロック、Cb係数ブロックまたはCr係数ブロック)を生成した後、ビデオエンコーダ20は係数ブロックを量子化することができる。量子化は一般に、変換係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を提供する処理を指す。ビデオエンコーダ20は、CUと関連付けられた量子化パラメータ(QP)値に基づいて、CUのTUと関連付けられた係数ブロックを量子化することができる。ビデオエンコーダ20は、CUと関連付けられたQP値を調整することによって、CUと関連付けられた係数ブロックに適用される量子化の程度を調整することができる。いくつかの例では、CUと関連付けられるQP値は、全体として現在のピクチャまたはスライスと関連付けられ得る。ビデオエンコーダ20が係数ブロックを量子化した後に、ビデオエンコーダ20は、量子化された変換係数を示すシンタックス要素をエントロピー符号化することができる。たとえば、ビデオエンコーダ20は、量子化された変換係数を示すシンタックス要素に対してコンテキスト適応型バイナリ算術コーディング(CABAC)を実行することができる。
【0074】
[0086]ビデオエンコーダ20は、ビデオデータの表現(すなわち、コーディングされたピクチャおよび関連付けられたデータ)を形成するビットのシーケンスを含むビットストリームを出力することができる。ビットストリームは、一連のネットワーク抽象化レイヤ(NAL)ユニットを備え得る。NALユニットは、NALユニット中のデータのタイプの指示と、必要に応じてエミュレーション防止ビットが散在させられているローバイトシーケンスペイロード(a raw byte sequence payload)(RBSP)の形態でそのデータを含むバイトとを含む、シンタックス構造である。NALユニットの各々は、NALユニットヘッダを含み、RBSPをカプセル化する。NALユニットヘッダは、NALユニットタイプコードを示すシンタックス要素を含み得る。NALユニットのNALユニットヘッダによって規定されるNALユニットタイプコードは、NALユニットのタイプを示す。RBSPは、NALユニット内にカプセル化された整数個のバイトを含むシンタックス構造であり得る。いくつかの例では、RBSPは0ビットを含む。
【0075】
[0087]異なるタイプのNALユニットは、異なるタイプのRBSPをカプセル化し得る。たとえば、異なるタイプのNALユニットは、ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、コーディングされたスライス、SEIなどに対して、異なるRBSPをカプセル化し得る。(パラメータセットおよびSEIメッセージのためのRBSPではなく)ビデオコーディングデータのためのRBSPをカプセル化するNALユニットは、ビデオコーディングレイヤ(VCL)NALユニットと呼ばれ得る。
【0076】
[0088]HEVCでは、SPSは、コーディングされたビデオシーケンス(CVS)のすべてのスライスに適用される情報を含み得る。HEVCでは、CVSは、瞬時復号リフレッシュ(IDR)ピクチャ、あるいはブロークンリンクアクセス(BLA)ピクチャ、あるいは、IDRまたはBLAピクチャではないすべての後続のピクチャを含むビットストリーム中の最初のピクチャであるクリーンランダムアクセス(CRA)ピクチャから開始し得る。すなわち、HEVCでは、CVSは、復号順序で、ビットストリーム中の第1のアクセスユニットであるCRAアクセスユニットと、IDRアクセスユニットまたはBLAアクセスユニットと、それに続いて、後続のIDRまたはBLAアクセスユニットを含まないがそれまでのすべての後続のアクセスユニットを含む、0個以上の非IDRおよび非BLAアクセスユニットとからなり得る、アクセスユニットのシーケンスを備え得る。
【0077】
[0089]VPSは、0個以上のCVS全体に適用されるシンタックス要素を備えるシンタックス構造である。SPSは、SPSがアクティブであるとき、アクティブであるVPSを識別するシンタックス要素を含み得る。したがって、VPSのシンタックス要素は、SPSのシンタックス要素よりも一般的に適用可能であり得る。PPSは、0個以上のコーディングされたピクチャに適用されるシンタックス要素を備えるシンタックス構造である。PPSは、PPSがアクティブであるとき、アクティブであるSPSを識別するシンタックス要素を含み得る。スライスのスライスヘッダは、スライスがコーディングされているときにアクティブであるPPSを示す、シンタックス要素を含み得る。
【0078】
[0090]ビデオデコーダ30は、ビデオエンコーダ20によって生成されたビットストリームを受信し得る。加えて、ビデオデコーダ30は、ビットストリームを解析して、ビットストリームからシンタックス要素を取得することができる。ビデオデコーダ30は、ビットストリームから取得されたシンタックス要素に少なくとも一部基づいて、ビデオデータのピクチャを再構築することができる。ビデオデータを再構築するためのプロセスは、全般に、ビデオエンコーダ20によって実行されるプロセスの逆であり得る。たとえば、ビデオデコーダ30は、PUの動きベクトルを使用して、現在のCUのPUに関する予測ブロックを決定することができる。加えて、ビデオデコーダ30は、現在のCUのTUと関連付けられる係数ブロックを逆量子化することができる。ビデオデコーダ30は、現在のCUのTUと関連付けられる変換ブロックを再構築するために、係数ブロックに対して逆変換を実行することができる。ビデオデコーダ30は、現在のCUのPUに関する予測ブロックのサンプルを現在のCUのTUの変換ブロックの対応するサンプルに加算することによって、現在のCUのコーディングブロックを再構築することができる。ピクチャの各CUに関するコーディングブロックを再構築することによって、ビデオデコーダ30はピクチャを再構築することができる。
【0079】
[0091]いくつかの例では、ビデオエンコーダ20は、統合モードまたは高度な動きベクトル予測(AMVP)モードを使用して、PUの動き情報をシグナリングすることができる。言い換えると、HEVCでは、動きパラメータの予測のために2つのモードがあり、一方は統合/スキップモードであり、他方はAMVPである。動き予測は、1つまたは複数の他のビデオユニットの動き情報に基づく、ビデオユニット(たとえば、PU)の動き情報の決定を備え得る。PUの動き情報(すなわち、動きパラメータ)は、PUの(1つまたは複数の)動きベクトルと、PUの(1つまたは複数の)参照インデックスと、1つまたは複数の予測方向インジケータとを含み得る。
【0080】
[0092]ビデオエンコーダ20が統合モードを使用して現在のPUの動き情報をシグナリングするとき、ビデオエンコーダ20は、統合候補リストを生成する。言い換えると、ビデオエンコーダ20は、動きベクトル予測子リストの構築プロセスを実行することができる。統合候補リストは、現在のPUに空間的または時間的に隣接するPUの動き情報を示す、統合候補のセットを含む。すなわち、統合モードでは、動きパラメータ(参照インデックス、動きベクトルなど)の候補リストが構築され、候補は、空間的に隣接するブロックおよび時間的に隣接するブロックからであり得る。
【0081】
[0093]さらに、統合モードでは、ビデオエンコーダ20は、統合候補リストから統合候補を選択することができ、現在のPUの動き情報として、選択された統合候補によって示される動き情報を使用することができる。ビデオエンコーダ20は、選択された統合候補の統合候補リスト中の位置をシグナリングすることができる。たとえば、ビデオエンコーダ20は、選択された統合候補の統合リスト内の位置を示すインデックスを送信する(すなわち、候補インデックスを統合する)ことによって、選択された動きベクトルパラメータをシグナリングすることができる。
【0082】
[0094]ビデオデコーダ30は、ビットストリームから、候補リストへのインデックス(すなわち、統合候補インデックス)を取得することができる。加えて、ビデオデコーダ30は、同じ統合候補リストを生成することができ、統合候補インデックスに基づいて、選択された統合候補を決定することができる。ビデオデコーダ30は次いで、選択された統合候補の動き情報を使用して、現在のPUに関する予測ブロックを生成することができる。すなわち、ビデオデコーダ30は、候補リストインデックスに少なくとも一部基づいて、候補リスト中の選択された候補を決定することができ、選択された候補は、現在のPUに関する動き情報(たとえば、動きベクトル)を規定する。このようにして、デコーダ側において、インデックスが復号されると、インデックスが指す対応するブロックのすべての動きパラメータは、現在のPUによって継承され得る。
【0083】
[0095]様々な例によれば、現在のブロックは2N×2Nの次元を有することがあり、このとき現在のブロックの左上の角はデカルト座標(x,y)によって示される。これらの例によれば、左上の隣接するサンプルの一部分が座標(x−1,y−1)に位置し、またはそうでなければその座標によって記述される。同様に、これらの例では、左下の隣接するサンプルの一部分が座標(x−1,y+2N−1)に位置し、またはそうでなければその座標によって記述される。加えて、これらの例では、右上の隣接するサンプルの一部分が座標(x+2N−1,y−1)に位置し、またはそうでなければその座標によって記述される。
【0084】
[0096]ビデオエンコーダ20は、従属深度ビューの現在のブロックに関する深度値を導出するために、特定された隣接するサンプルの1つまたは複数と関連付けられるデータを使用することができる。次いで、ビデオエンコーダ20は、現在のビデオブロックに関する相違ベクトルを取得するために、現在のブロックに関する導出された深度値を使用することができる。いくつかの例によれば、ビデオエンコーダ20は、現在のビデオブロックに関する相違ベクトルを取得するために、導出された深度値を変換することができる。たとえば、ビデオエンコーダ20は、現在のブロックを含むピクチャと関連付けられる1つまたは複数のカメラパラメータのような様々な利用可能なデータを使用して、導出された深度値を変換することができる。次いで、ビデオエンコーダ20は、取得された相違ベクトルを現在のブロック全体と関連付けることができる。たとえば、現在のブロックが従属深度ビュー中のCUを表す場合、ビデオエンコーダ20は、CUのすべてのPUにわたって相違ベクトルを共有することができる。
【0085】
[0097]ビデオエンコーダ20は、隣接するサンプルと関連付けられる特定の条件に基づいて、様々な方式で相違ベクトルを導出するために現在のブロックの隣接するサンプルを使用することができる。たとえば、現在のブロックがピクチャの左上の角に位置する場合、現在のブロックの隣接するサンプルのいずれもが利用可能ではないことがある。現在のブロックがピクチャの境界に位置する例では、3つの隣接するサンプルのうちの1つまたは2つのみが利用可能であり得る。1つの隣接するサンプルしか利用可能ではない例では、ビデオエンコーダ20は、その1つの利用可能な隣接するサンプルから現在のブロックに関する深度値を継承する(すなわち、現在のブロックの全体に対して、その1つの利用可能な隣接するサンプルから導出される深度値を利用する)ことができる。隣接するサンプルが利用可能ではない例では、ビデオエンコーダ20は、従属深度ビュー中の現在のブロックに対する動き情報を予測するために、ベースビューから同じ位置にあるブロックを使用することができる。より具体的には、隣接するサンプルが現在のブロックに対して利用可能ではない例では、ビデオエンコーダ20は、現在のブロックの相違ベクトルを0ベクトルとして設定することができる。この例および他の例では、ビデオエンコーダは、現在のブロックと関連付けられる深度値をデフォルトの深度値に設定することができる。ビデオエンコーダ20が使用し得るデフォルトの深度値の例は、0または128という値を含み得る。
【0086】
[0098]3つすべての隣接するサンプルが従属深度ビュー中の現在のブロックに対して利用可能であるとビデオエンコーダ20が決定する例では、ビデオエンコーダ20は、現在のブロックに関する深度値を導出するために、3つすべての隣接するサンプルと関連付けられる深度値を使用することができる。様々な例において、ビデオエンコーダ20は、現在のブロックに関する深度値を導出するために、利用可能な隣接するサンプルと関連付けられる深度値に対して種々の計算を実行することができる。いくつかの例によれば、ビデオエンコーダ20は、隣接するサンプルと関連付けられる深度値を平均して、その平均を現在のブロックに関する深度値として使用することができる。いくつかの例では、ビデオエンコーダ20は、3つの深度値の平均値を計算することによって平均を得ることができるが、他の例では、ビデオエンコーダ20は、平均を得るために、3つの深度値のメジアンおよび/またはモードを選択することができる。
【0087】
[0099]議論の目的で、3つすべての隣接するサンプルが利用可能である例に関して上で説明されたが、ビデオエンコーダ20は、2つの隣接するサンプルが現在のブロックに関して利用可能である例において本開示の様々な技法を実施できることが理解されるだろう。加えて、議論の目的で、隣接するサンプルの特定のセット(すなわち、左上、右上、および右下のサンプル)に関して上で説明されたが、ビデオエンコーダ20は、隣接するサンプルおよび/または現在のブロックと隣接しないサンプルを含む、サンプルの様々な組合せを使用するように、本開示の技法を実施することができる。様々な例において、ビデオエンコーダ20は、現在のブロックに関する再構築された深度値を導出する際に使用されるべきサンプルの特定のセットを選択する際に、様々な利用可能なサンプルを優先順位付けることができる。
【0088】
[0100]様々な例によれば、ビデオエンコーダ20は、3つの隣接するサンプルと関連付けられる深度値から現在のブロックの深度値を導出するために、「加重平均」の手法を実施することができる。より具体的には、ビデオエンコーダ20はそれぞれ、各隣接するサンプルの各深度値に重みを割り当て、各深度値を割り当てられた重みと乗算して3つの加重された積の値を得ることができる。次いで、ビデオエンコーダ20は、3つの積の値を合計して、その合計を所定の定数(たとえば、16)によって除算して、結果の値を得ることができる。ビデオエンコーダ20は、現在のブロックに関する深度値としてその結果の値を使用することができる。
【0089】
[0101]加重平均の手法のいくつかの実装形態では、ビデオエンコーダ20は、各隣接するサンプルに以下の相対的な重みを割り当てることができ、すなわち、(5/16)を左上のサンプルに、(5/16)を左下のサンプルに、および(6/16)を右上のサンプルに割り当てることができる。これらの実装形態によれば、ビデオエンコーダ20は、[(P0×5)+(P1×5)+(P2×6)]/16という式を適用することによって、深度値の加重平均を計算することができる。記述された式において、P0、P1、およびP2はそれぞれ、左上、左下、および右上のサンプルの深度値を示す。加えて、記述された式において、ビデオエンコーダ20は16という所定の定数を使用し、その値によって加重された積の合計を除算する。いくつかの例では、ビデオエンコーダ20は、オフセット値を3つの積の値の合計に加算することができる。たとえば、オフセットは、選択された定数のような所定の値、またはビデオエンコーダ20によって実行される別の式の出力であり得る。一例では、ビデオエンコーダ20は、オフセット値を8という値に選択することができる。この例では、ビデオエンコーダ20は、[(P0×5)+(P1×5)+(P2×6)+8]/16という式を適用することによって、深度値の加重平均を計算することができる。重み、オフセット、および所定の定数(式の除数)に関して、具体的な値が上で記述されるが、様々な実装形態において、ビデオエンコーダ20は、異なる値を、本開示の加重平均の計算において使用される、重み、オフセット、および/または所定の定数に割り当てることができることが諒解されるだろう。
【0090】
[0102]ビデオエンコーダ20は、結果の値を、P0、P1、およびP2の具体的な値に適用されるものとして、従属深度ビュー中の現在のブロックの深度値としての所定のオフセットを伴って、使用することができる。次いで、ビデオエンコーダ20は、現在のブロックに関する相違ベクトルを導出するために、記述された式から計算されるように、および任意選択でオフセットを含んで、現在のブロックと関連付けられる深度値を変換することができる。上で説明されたように、ビデオエンコーダ20は、カメラパラメータのようなデータを使用して、導出された深度値を相違ベクトルに変換することができ、ここでビデオブロックはCUを表し、ビデオエンコーダ20は導出された相違ベクトルをCUのすべてのPUに適用することができる。本明細書で説明される技法のいずれかに従って現在のブロックに対して導出される深度値は、本開示では「再構築された深度値」とも呼ばれ得る。
【0091】
[0103]本開示の態様によれば、ビデオエンコーダ20は次いで、現在のピクチャの参照レイヤビューまたはベースビューに基づいて、従属深度ビュー中の現在のブロックに関する動き情報を導出するために、上の技法によって導出された相違ベクトルを使用することができる。様々な例において、ビデオエンコーダ20は、参照ビューに基づいて、従属深度ビューの現在のブロックに関するビュー間予測された動きベクトル候補(IPMVC)を導出することができる。いくつかの例において、ビデオエンコーダ20は、従属深度ビューの現在のブロックと関連付けられるビュー間相違動きベクトル候補(IDMVC)を取得することができる。IDMVCを取得するために、ビデオエンコーダ20は、上で説明された技法に従って導出される相違ベクトルを使用することができる。より具体的には、ビデオエンコーダ20は、IDMVCを導出するために相違ベクトルを相違動きベクトルへと変換することができる。たとえば、ビデオエンコーダ20は、相違ベクトルを相違動きベクトルへと変換する際に、1つまたは複数のカメラパラメータを適用することができる。IDMVCは、ベース深度ビュー中のビデオデータのブロックを指し得る。IPMVCを取得するために、ビデオエンコーダ20は、ベースビュー中の対応するブロックと関連付けられる動き情報からIPMVCを導出することができる。一例では、ビデオエンコーダ20は、ベースビュー中の対応するブロックの動き情報をコピーすることによって、IPMVCを導出することができる。IPMVC導出の様々な例において、ベースビューからの動き情報は、空間的であるか時間的であるかのいずれかであり得る。IPMVCおよび/またはIDMVCを取得することによって、ビデオエンコーダ20は、従属深度ビューの現在のブロックに関する動きベクトル候補の数を増やすために本開示の技法を実施し、場合によっては現在のブロックに関する動きベクトル予測の精度を改善することができる。
【0092】
[0104]加えて、ビデオエンコーダ20は、IPMVCとIDMVCとを従属深度ビュー中の現在のブロックと関連付けられる統合リストに挿入するために、本開示の技法を実施することができる。いくつかの例では、ビデオエンコーダ20は、統合リスト中の第1の位置(たとえば、最高の優先度を有する位置、または最高の利用の確率と関連付けられる位置、または最低のインデックス値を有する位置)に、動きベクトル継承(MVI)候補を配置することができる。ビデオエンコーダ20は、MVI候補の直後(すなわち、MVI候補よりも高いインデックス値を有する位置において)、たとえば統合リスト中の第2の位置において、IPMVCを配置することができる。加えて、ビデオエンコーダ20は、IPMVCの直後に、および統合リスト中の第1の空間的動きベクトル候補の直前に、IDMVCを配置することができる。ビデオエンコーダ20は、IDMVCの後に複数の空間的動きベクトル候補を配置することができる。説明された位置にIPMVCとIDMVCとを含めるように、上で説明された順序で統合リストを構築することによって、ビデオエンコーダ20は、ベースビューからのビュー間動きベクトル候補の数を増やし、すべての可能性の分布をより確実に反映するように候補を順序付けることによって、深度指向性の動きベクトル予測の精度を改善し、これによって場合によっては符号化ビットのオーバーヘッドを減らすために、本開示の技法を実施することができる。本技法による統合リスト内の候補の他の順序(または優先順位)が、本開示の他の部分で説明される。
【0093】
[0105]これまで説明されたように、本開示の技法は全般に、ビデオエンコーダ20が、ベースビューを使用して2つのビュー間動きベクトル候補(すなわち、IPMVCおよびIDMVC)を生成することと、両方の候補が利用可能であれば、従属深度ビュー中の現在のブロックと関連付けられる統合リストに両方の候補を追加することとを対象とする。本開示の様々な態様によれば、ビデオエンコーダ20は、ベースビューからIPMVCを導出することができ、様々な条件に基づいて、ベースビューから導出されたIPMVCを統合リストに追加することができる。一例として、ビデオエンコーダ20は、導出された相違ベクトルを空間的に(たとえば、様々なオフセットの分だけ)シフトし、シフトされた相違ベクトルを使用してシフトされたIPMVCを取得することができる。たとえば、ビデオエンコーダ20は、ベースビュー中の対応するブロックを位置特定するためにシフトされた相違ベクトルを使用することができる。ビデオエンコーダ20がこの方式で識別し成功裏に位置特定するベースビューブロックに対して、ビデオエンコーダ20は、対応するベースビューブロックと関連付けられる対応するシフトされたIPMVCを選択プールに追加することができる。シフトされた相違ベクトルを使用して導出されたIPMVCは、「シフトされたIPMVC」と本明細書において呼ばれる。
【0094】
[0106]一例では、対応するベースビューブロックを位置特定する際に相違ベクトルをシフトするために、ビデオエンコーダ20は、「M1」によって示される水平方向のオフセットと「M2」によって示される垂直方向のオフセットとを相違ベクトルに適用することができる。この例によれば、ビデオエンコーダ20は、式(((幅/2)×4)+4)を適用することによってM1の値を取得し、式(((高さ/2)×4)+4)を適用することによってM2の値を取得することができる。従属深度ビューからの現在のブロックがCUである上の例では、値「幅」および「高さ」はそれぞれ、CUの現在のPUの水平方向の次元および垂直方向の次元を示す。具体的な式がM1およびM2を導出することに関して上で説明されるが、ビデオエンコーダ20は、他の技法を使用してM1とM2とを導出することもできることが理解されるだろう。
【0095】
[0107]いくつかの例では、ビデオエンコーダ20は、シフトされたIPMVCが利用可能ではないと決定することができる。たとえば、シフトされた相違ベクトルによって識別されるベースビューブロックがイントラコーディングまたはイントラ予測される場合、ビデオエンコーダ20は、シフトされたIPMVCが利用可能ではないと決定することができる。シフトされたIPMVCが利用可能ではないとビデオエンコーダ20が決定する例では、ビデオエンコーダ20は、本開示の態様に従って、それによって統合リストを埋める動きベクトル候補を生成するために、1つまたは複数の相違動きベクトル(DMV)を使用することができる。たとえば、ビデオエンコーダ20は、従属深度ビュー中の現在のブロックの空間的に隣接するブロックと関連付けられるDMVを選択し、選択されたDMVを所定のオフセットだけシフトして、相違シフトされた動きベクトル(DSMV:disparity shifted motion vector)候補を取得することができる。
【0096】
[0108]たとえば、ビデオエンコーダ20は、空間的に隣接するブロックと関連付けられる参照ピクチャリストのセットを調査することができる。より具体的には、上で説明された空間的に隣接するブロックの各々は、RefPicList0とRefPicList1とを含み得る。ビデオエンコーダ20は、上で説明された空間的に隣接するブロックの各々に対するそれぞれのRefPicList0を調査して、調査されたRefPicList0のインスタンスのいずれかが相違動きベクトル(DMV)を含むかどうかを決定することができる。ビデオエンコーダ20が調査されるRefPicList0のインスタンスの1つにおいてDMVを検出する場合、ビデオエンコーダ20は、調査されたRefPicList0のインスタンスから利用可能なDMVを選択することができる。たとえば、ビデオエンコーダ20は、ビデオエンコーダ20が調査されたRefPicList0のインスタンスから検出する、第1の利用可能なDMVを選択することができる。次いで、ビデオエンコーダ20は、DSMV候補を取得するために、選択されたDMVの水平のオフセットをシフトすることができる。加えて、DSMV候補を生成する際に、ビデオエンコーダ20は、選択されたDMVから参照インデックスをコピーまたは「継承」することができる。たとえば、DSMV候補がMvCによって示され、選択されたDMVがmv[0]によって示される場合、ビデオエンコーダ20は、次の式を使用してDSMV候補を導出することができる。すなわち、MvC[0]=mv[0]、MvC[1]=mv[1]、およびMvC[0][0]+=Nであり、ここで「N」は所定の定数(または「固定された」値)である。ビデオエンコーダ20が使用し得るNの例示的な値は、4、8、16、32、64、−4、−8、−16、−32、−64を含む。
【0097】
[0109]いくつかの例では、ビデオエンコーダ20は、空間的に隣接するブロックと関連付けられるRefPicList0のインスタンスを探索または調査するときに、従属深度ビューの空間的に隣接するブロックと関連付けられるいずれのDMVも位置特定してないことがある。これらの例では、ビデオエンコーダ20は、従属深度ビュー中の空間的に隣接するブロックと関連付けられるDMVを使用してDSMVを導出することができない。代わりに、DMV候補が対応するRefPicList0のインスタンスのいずれの中でも利用可能ではないとビデオエンコーダ20が決定する場合、ビデオエンコーダ20は、統合リストへと挿入するためのDSMV候補を取得するために、本開示の代替的な技法を実施することができる。
【0098】
[0110]たとえば、ビデオエンコーダ20が、空間的に隣接する候補に対応するRefPicList0のインスタンスのいずれかの中の空間的に隣接する候補と関連付けられるいずれのDMVも位置特定してない場合、ビデオエンコーダ20は、現在のブロックに対して計算される相違ベクトルをシフトすることによって、DSMV候補を導出することができる。より具体的には、ビデオエンコーダ20は、相違ベクトルにオフセットを加算して、得られたシフトされた相違ベクトルをDSMV候補として使用することができる。相違ベクトルがDVによって示される場合、ビデオエンコーダ20は次の式を使用してDSMVを導出することができる。すなわち、MvC[0]=DVおよびMvC[0][0]+=N、MvC[0][1]=0およびMvC[1]=DVおよびMvC[1][0]+=N、MvC[1][1]=0である。ビデオエンコーダ20は、4、8、16、32、64、−4、−8、−16、−32、または−64のような様々な値をNに割り当てることができる。加えて、ビデオエンコーダ20は、MvC[X]に対応する参照インデックスを、ベースビューに属するRefPicListX(Xは0以外の値を示す)中のピクチャの参照インデックスに設定することができる。
【0099】
[0111]ここまで説明された様々な技法によれば、ビデオエンコーダ20は、従属深度ビュー中の現在のブロックに関する3つの追加の動きベクトル候補を導出するために、深度ビューにわたってビュー間動き予測を適用することができる。すなわち、ビデオエンコーダ20は、深度ビューにわたってビュー間動きベクトル予測を適用することによって、従属深度ビュー中の現在のブロックに対して、IPMVCと、IDMVCと、シフトされたIPMVC/DSMV候補とを導出することができる。本明細書で説明される1つまたは複数の技法を実施することによって、ビデオエンコーダ20は、従来のプロセスに従って生成される動きベクトル候補の数よりも多数の動きベクトル候補を生成することによって、従属深度ビューに関する動きベクトル予測の精度を改善することができる。様々な例において、ビデオエンコーダ20は、1つまたは複数の従属深度ビューがコーディングされる前にコーディングされ得る深度ベースビューからの動き情報を利用することによって、より多数の動きベクトル候補を生成することができる。このようにして、ビデオエンコーダ20は、深度ベースビューからのすでにコーディングされている動き情報を使用してより多数の動きベクトル候補を生成することによって精度および/または安定性を改善するために、本開示の技法を実施することができる。
【0100】
[0112]次いで、ビデオエンコーダ20は、上で説明されたように取得される、IPMVC、IDMVC、および/またはシフトされたIPMVC/DSMVの1つまたは複数を場合によっては含む、統合リストを構築するために、本開示の技法を実施することができる。統合リストに含まれる動きベクトル候補の間の冗長性を軽減し、またはなくすために、ビデオエンコーダ20は、本明細書では「刈り込み(pruning)」と呼ばれるプロセスを実施することができる。本明細書で説明されるように、刈り込みは、複数の統合リスト候補が同一であるかどうかをビデオエンコーダ20が確認することができ、次いで、統合リスト内での冗長性を小さくするために同一の候補の1つまたは複数を除去することができる、1つまたは複数の技法を指し得る。刈り込みプロセスの一部として、ビデオエンコーダ20は、統合リストへの挿入の前に2つ以上の統合リスト候補の動きベクトルと参照インデックスとを互いに対して比較し、統合リスト候補が互いに同一ではない場合、統合リスト候補の1つまたは複数を削除することができる。具体的な例では、ビデオエンコーダ20は、動きベクトル、参照インデックスL0、および参照インデックスL1という、各々の2つの統合リスト候補の対応する特性を比較することができる。
【0101】
[0113]本開示の技法によれば、ビデオエンコーダ20は制約された刈り込みプロセスを実行することができる。たとえば、ビデオエンコーダ20は、本開示の制約された刈り込みプロセスを実施して、IPMVCを動きベクトル継承(MVI)候補と比較することができる。IPMVCがMVI候補と同一である場合、ビデオエンコーダ20は、統合リストへと挿入するための選択からIPMVCを除去することができる。この例および他の例において、ビデオエンコーダ20は、制約された刈り込みを実施して、統合リストに関して生成される空間的統合候補の各々とIDMVCを比較することができる。同様に、ビデオエンコーダ20は、IDMVCが空間的統合候補のいずれかと一致する(すなわち、同一である)場合、統合リストのための選択からIDMVCを除去することができる。加えて、シフトされたIPMVCが生成された場合、ビデオエンコーダ20は、シフトされたIPMVCをIPMVCと比較して、シフトされたIPMVCを除去することができる。
【0102】
[0114]代替的に、シフトされたIPMVCが生成されなかった場合、上で説明されたように、ビデオエンコーダ20はDSMV候補へのアクセスを有し得る。この例では、ビデオエンコーダ20は、刈り込みの目的でDSMVを任意の他の候補と比較することなく、DSMVを統合リストへと挿入することができる。シフトされたIPMVCが利用可能であったが、IPMVCに対する刈り込みに基づいて除去された例では、ビデオエンコーダ20は、統合リスト中の最後の位置にいずれの候補も挿入しなくてよい。このようにして、ビデオエンコーダ20は、制約された刈り込みプロセスを実施して、本明細書で説明されるような深度指向性のビュー間動き予測を使用して生成される追加の動きベクトル候補を含む統合リストを構築することができる。
【0103】
[0115]各候補に関するインデックス値が前に付けられた(prefixed)、ビデオエンコーダ20によって構築されるような例示的な統合リストの順序は次の通りである。
0.MVI候補
1.MVI候補に対する刈り込みを介して除去されなければ、本明細書で説明される技法によって生成されるようなIPMVC
2.空間的候補A1と空間的候補B1のいずれかに対する刈り込みを介して除去されなければ、本明細書で説明される技法によって生成されるようなIDMVC
3.空間的候補A0
4.空間的候補B2
5.(利用可能でありIPMVCに対する刈り込みを介して除去されなければ)本明細書で説明される技法によって生成されるようなシフトされたIPMVC、または(シフトされたIPMVCが利用可能であれば)DSMV、または(たとえば、シフトされたIPMVCは利用可能であったが、IPMVCに対する刈り込みを介して除去されれば)候補なし
上で説明される例示的な統合リストでは、インデックス値は対応する候補の相対的な位置を示す。1つの例示的な観点によれば、インデックス値0は統合リスト内の最初の位置に対応し、インデックス値1は統合リスト中の2番目の位置に対応し、以下同様であり、インデックス値5は統合リスト内の最後の位置に対応する。加えて、ビデオエンコーダ20は、最も可能性のある候補(たとえば、選択される確率が最高の候補)をインデックス0において配置するように統合リストを構築することができる。より具体的には、ビデオエンコーダ20は、インデックス0からインデックス5までの位置に対応して、選択される確率の降順で候補を配置することができる。このようにして、ビデオエンコーダ20は、バイナリ値として表されるべき、単一のビットしか必要としない0および1の値に基づいて、シグナリングの間のビットのオーバーヘッドを低減することができる。
【0104】
[0116]加えて、ビデオエンコーダ20は、それによって現在のブロックに関する動き情報を符号化すべき、動きベクトル候補の1つを統合リストから選択することができる。次いで、ビデオエンコーダ20は、ビデオデコーダ30に選択された動きベクトル候補のインデックスをシグナリングすることができる。ビデオデコーダ30は、1つまたは複数の深度指向性のビュー間動きベクトル候補を生成するために、ビデオエンコーダ20に関して上で説明された技法の1つまたは複数を実施することができる。ビデオデコーダ30は、深度指向性のビュー間動きベクトル候補の1つまたは複数を場合によっては含む統合リストの少なくとも一部分を再構築するために本開示の1つまたは複数の技法を実施することができ、復号の目的で同じ動きベクトル候補を選択するために、ビデオエンコーダ20によってシグナリングされたインデックスを使用することができる。より具体的には、本開示の1つまたは複数の態様によれば、ビデオエンコーダ20によってシグナリングされたインデックスと関連付けられる動きベクトル候補を選択することによって、ビデオデコーダ30は、深度指向性のビュー間動き情報を使用して従属深度ビュー中の現在のブロックを復号して、それによって、現在のブロックの動き情報の精度と安定性とを改善することができる。
【0105】
[0117]本明細書で説明されるように、ビデオエンコーダ20またはビデオデコーダ30の一方または両方は、ビデオデータをコーディングするためのデバイスを表し、含み、そのデバイスであり、またはそのデバイスの一部であってよく、そのデバイスはメモリと1つまたは複数のプロセッサとを含む。1つまたは複数のプロセッサは、従属深度ビュー中のビデオデータのブロックに隣接して配置される1つまたは複数の隣接するピクセルに基づいて、従属深度ビューに含まれるビデオデータのブロックと関連付けられる深度値を決定し、ビデオデータのブロックと関連付けられる決定された深度値に少なくとも一部基づいて、ビデオデータのブロックと関連付けられる相違ベクトルを生成するように構成され、またはそうでなければそのように動作可能であり得る。1つまたは複数のプロセッサはさらに、ビュー間相違動きベクトル候補(IDMVC)を生成するために相違ベクトルを使用し、ベースビュー中のビデオデータの対応するブロックに基づいて、ビデオデータのブロックと関連付けられるビュー間予測動きベクトル候補(IPMVC)を生成し、ビデオデータのブロックと関連付けられる統合候補リストにIDMVCとIPMVCのいずれかを追加すべきかどうかを決定するように構成され、または動作可能であり得る。様々な例において、IDMVCまたはIPMVCのいずれかを統合候補リストに追加すべきかどうかを決定するために、1つまたは複数のプロセッサは、統合候補リストにIDMVCとIPMVCの一方を追加すべきか、両方を追加すべきか、またはいずれも追加すべきではないかを決定するように構成され、または動作可能であり得る。いくつかの例では、深度値を決定するために、1つまたは複数のプロセッサは、1つまたは複数の隣接するピクセルと関連付けられる値の加重平均を計算するように構成される。いくつかの例によれば、1つまたは複数の隣接するピクセルは、ビデオデータのブロックに対して左上のピクセルと、右上のピクセルと、右下のピクセルとを含む。いくつかの例では、加重平均を計算するために、1つまたは複数のプロセッサは、複数の重み付けられた値を取得するために、5、6、および5という重みを、左上のピクセル、右上のピクセル、および右下のピクセルにそれぞれ適用するように構成される。
【0106】
[0118]様々な例によれば、加重平均を計算するために、1つまたは複数のプロセッサは、複数の重み付けられた値に基づいて合計を取得し、オフセット値および合計に基づいてオフセット合計を取得するように構成される。いくつかの例では、加重平均を計算するために、1つまたは複数のプロセッサは、所定の値によってオフセット合計を除算するように構成される。いくつかの例では、オフセット値は8という値を備え、所定の値は16という値を備える。いくつかの例では、深度値を決定するために、1つまたは複数のプロセッサは、1つまたは複数の隣接するピクセルと関連付けられる平均値、メジアン値、またはモード値の少なくとも1つを計算するように構成される。いくつかの例によれば、ビデオデータのブロックはコーディングユニット(CU)であり、生成された相違ベクトルは、CUに含まれるすべての予測ユニット(PU)に適用される。
【0107】
[0119]様々な例において、IPMVCを生成するために、1つまたは複数のプロセッサは、ビデオデータのブロックのベースビューからIPMVCを導出するように構成される。いくつかの例によれば、1つまたは複数のプロセッサはさらに、シフトされた相違ベクトルを形成するために相違ベクトルを空間的にシフトし、ベースビュー中のビデオデータの対応するブロックを位置特定するためにシフトされた相違ベクトルを使用するように構成される。いくつかの例では、1つまたは複数のプロセッサはさらに、シフトされたIPMVCがベースビュー中のビデオデータの位置特定された対応するブロックから利用可能かどうかを決定し、シフトされたIPMVCが利用可能であるという決定に基づいて、シフトされたIPMVCを統合リストに追加すべきかどうかを決定するように構成される。
【0108】
[0120]いくつかの例によれば、現在のブロックの1つまたは複数の空間的に隣接するブロックの各々は、それぞれの参照ピクチャリスト0およびそれぞれの参照ピクチャリスト1と関連付けられる。いくつかのそのような例では、1つまたは複数のプロセッサはさらに、シフトされたIPMVCがベースビューから利用可能ではないと決定するように、および、空間的に隣接するブロックと関連付けられる少なくとも1つのそれぞれの参照ピクチャリスト0が相違動きベクトルを含むかどうかを決定するように構成される。いくつかのそのような例では、1つまたは複数のプロセッサは、空間的に隣接するブロックと関連付けられる少なくとも1つのそれぞれの参照ピクチャリスト0が相違動きベクトルを含むという決定に基づいて、相違シフトされた動きベクトル(DSMV)候補を形成するために、それぞれの参照ピクチャリスト0に含まれる相違動きベクトルの水平成分をシフトするように構成される。1つのそのような例では、1つまたは複数のプロセッサは、DSMV候補を統合リストに追加するように構成される。
【0109】
[0121]いくつかの例では、1つまたは複数のプロセッサはさらに、それぞれの参照ピクチャリスト0のいずれもが相違動きベクトルを含まないことを決定し、DSMV候補を形成するためにオフセット値を相違ベクトルに適用し、DSMV候補を統合リストに適用するように構成される。いくつかの例によれば、深度値を決定するために、1つまたは複数のプロセッサは、1つまたは複数の隣接するピクセルが1つだけの利用可能な隣接するピクセルを含むと決定し、ビデオデータのブロックの深度値を形成するために1つの利用可能な隣接するピクセルの深度値を継承するように構成される。いくつかの例では、1つまたは複数のプロセッサはさらに、1つまたは複数の隣接するピクセルのいずれもが利用可能ではないと決定するように構成され、相違ベクトルを生成するために、1つまたは複数のプロセッサは、相違ベクトルを0ベクトルに設定することと、ビデオデータのブロックと関連付けられる深度値をデフォルトの深度値に設定することとの少なくとも1つを行うように構成される。
【0110】
[0122]ビデオエンコーダ20および/またはビデオデコーダ30の一方または両方は、ビデオデータをコーディングするためのデバイスを表し、含み、そのデバイスであり、またはそのデバイスの一部であってよく、そのデバイスはメモリと1つまたは複数のプロセッサとを含む。1つまたは複数のプロセッサは、ビュー間予測された動きベクトル候補(IPMVC)を動きベクトル継承(MVI)候補と比較するように構成され、またはそうでなければそのように動作可能であってよく、IPMVCとMVI候補が各々、従属深度ビュー中のビデオデータのブロックと関連付けられ、IPMVCがベース深度ビュー中のビデオデータの対応するブロックから生成される。1つまたは複数のプロセッサはさらに、IPMVCがMVI候補と異なることに基づいてIPMVCを統合候補リストに追加すること、または、IPMVCがMVI候補と同一であることに基づいて統合候補リストからIPMVCを除外することの1つを実行するように構成され、または動作可能であり得る。いくつかの例では、IPMVCを統合リストに追加するために、1つまたは複数のプロセッサはさらに、MVI候補が統合候補リストへの追加に利用可能ではないこと基づいて、統合候補リスト内の最初の位置(an initial position)においてIPMVCを挿入すること、または、MVI候補が統合候補リストへの追加に利用可能であること基づいて、統合候補リスト内のMVI候補の位置に後続する統合候補リスト内の位置においてIPMVCを挿入することの1つを実行するように構成される。様々な例において、最初の位置は0というインデックス値と関連付けられる。
【0111】
[0123]いくつかの例によれば、IPMVCをMVI候補と比較するために、1つまたは複数のプロセッサは、IPMVCと関連付けられる動き情報をMVI候補と関連付けられる対応する動き情報と比較し、IPMVCと関連付けられる少なくとも1つの参照インデックスをMVI候補と関連付けられる少なくとも1つの対応する参照インデックスと比較するように構成される。いくつかの例では、1つまたは複数のプロセッサはさらに、ビュー間相違動きベクトル候補(IDMVC)を、統合候補リストと関連付けられる第1の空間的候補および統合候補リストと関連付けられる第2の空間的候補の利用可能な1つまたは複数と比較するように構成され、または動作可能であり、IDMVC、第1の空間的候補、および第2の空間的候補の各々は、従属深度ビュー中のビデオデータのブロックと関連付けられ、IDMVCは、ビデオデータのブロックと関連付けられる相違ベクトルから生成される。いくつかのそのような例によれば、1つまたは複数のプロセッサは、IDMVCが第1の空間的候補および第2の空間的候補の利用可能な1つまたは複数の各々とは異なることに基づいて、IDMVCを統合候補リストに追加すること、または、IDMVCが第1の空間的候補または第2の空間的候補の少なくとも1つと同一であることに基づいて、IDMVCを統合候補リストから除外することの1つを実行するように構成され、またはそうでなければそのように動作可能である。
【0112】
[0124]いくつかの例では、IDMVCを統合候補リストに追加するために、1つまたは複数のプロセッサは、統合候補リスト内の次の利用可能な位置にIDMVCを挿入するように構成され、または動作可能である。いくつかのそのような例では、統合候補リスト内の次の利用可能な位置にIDMVCを挿入するために、1つまたは複数のプロセッサは、第1の空間的候補の少なくとも1つの位置または第2の空間的候補の位置に後続する位置にIDMVCを挿入するように構成され、または動作可能である。いくつかの例によれば、1つまたは複数のプロセッサはさらに、シフトされたIPMVCが利用可能であると決定するように構成され、または動作可能であり、シフトされたIPMVCは従属深度ビュー中のビデオデータのブロックと関連付けられ、シフトされたIPMVCはベース深度ビュー中のビデオデータの対応するブロックから生成される。いくつかのそのような例では、1つまたは複数のプロセッサはさらに、シフトされたIPMVCをIPMVCと比較するように構成され、または動作可能である。
【0113】
[0125]いくつかの例によれば、1つまたは複数のプロセッサはさらに、シフトされたIPMVCがIPMVCと異なること、および統合候補リストが6個未満の候補を含むことに基づいて、シフトされたIPMVCを統合候補リストに追加すること、または、シフトされたIPMVCがIPMVCと同一であることに基づいて、シフトされたIPMVCを統合候補リストから除外することの1つを実行するように構成される。いくつかの例では、1つまたは複数のプロセッサはさらに、相違シフトされた動きベクトル(DSMV)候補が利用可能であると決定するように構成され、DSMV候補は従属深度ビュー中のビデオデータのブロックと関連付けられ、DSMV候補は従属深度ビュー中のビデオデータのブロックと関連付けられる1つまたは複数の空間的に隣接するブロックを使用して生成される。いくつかの例によれば、1つまたは複数のプロセッサはさらに、統合候補リストが6個未満の候補を含むことに基づいて、DSMV候補を統合候補リストに追加するように構成され、または動作可能である。
【0114】
[0126]いくつかの例では、DSMV候補を統合候補リストに追加するために、1つまたは複数のプロセッサは、1)統合候補リストに含まれる空間的候補の位置に後続する、および2)統合候補リストに含まれる時間的候補の位置に先行する位置に、DSMV候補を挿入するように構成される。いくつかの例によれば、DSMV候補が利用可能であると決定するために、1つまたは複数のプロセッサは、シフトされたIPMVCが利用可能ではないと決定したことに応答してDSMV候補が利用可能であると決定するように構成され、または動作可能であり、シフトされたIPMVCは従属深度ビュー中のビデオデータのブロックと関連付けられ、シフトされたIPMVCはビデオデータのブロックのベースビューから生成される。
【0115】
[0127]いくつかの例によれば、DSMV候補は、1つまたは複数の空間的に隣接するサンプルの少なくとも1つの空間的に隣接するサンプルと関連付けられる参照ピクチャリスト0(RefPicList0)から選択される相違動きベクトル(DMV)を含む。いくつかの例では、DSMV候補は、従属深度ビュー中のビデオデータのブロックと関連付けられる相違ベクトルのシフトに基づいて生成され、相違ベクトルは、従属深度ビュー中のビデオデータのブロックと関連付けられる1つまたは複数の空間的に隣接するブロックと関連付けられる1つまたは複数の深度値から生成される。
【0116】
[0128]図2は、ビデオコーディングにおける深度指向性のビュー間動きベクトル予測のための技法を実施する、またはそうでなければ利用し得る、ビデオエンコーダ20の例を示すブロック図である。ビデオエンコーダ20は、ビデオスライス内のビデオブロックのイントラコーディングとインターコーディングとを実行し得る。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオの空間的冗長性を低減または除去するために、空間的予測に依拠する。インターコーディングは、ビデオシーケンスの隣接するフレーム内またはピクチャ内のビデオの時間的冗長性を低減または除去するために、時間的予測に依拠する。イントラモード(Iモード)は、いくつかの空間ベースのコーディングモードのいずれかを指し得る。一方向予測(Pモード)または双予測(Bモード)のようなインターモードは、いくつかの時間ベースのコーディングモードのいずれかを指し得る。
【0117】
[0129]図2に示されるように、ビデオエンコーダ20は、符号化されるべきビデオフレーム内の現在のビデオブロックを受信する。図2の例では、ビデオエンコーダ20は、モード選択ユニット40と、参照フレームメモリ64と、加算器50と、変換処理ユニット52と、量子化ユニット54と、エントロピーコーディングユニット56とを含む。モード選択ユニット40は次いで、動き補償ユニット44と、動き推定ユニット42と、イントラ予測ユニット46と、区分ユニット48とを含む。ビデオブロック再構築のために、ビデオエンコーダ20はまた、逆量子化ユニット58と、逆変換ユニット60と、加算器62とを含む。再構築されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタリングするための、デブロッキングフィルタ(図2に示されず)も含まれ得る。望まれる場合、デブロッキングフィルタは通常、加算器62の出力をフィルタリングする。追加のフィルタ(ループ内またはループ後)も、デブロッキングフィルタに加えて使用され得る。そのようなフィルタは簡潔のために示されていないが、望まれる場合、(ループ内フィルタとして)加算器50の出力をフィルタリングすることができる。
【0118】
[0130]符号化プロセス中に、ビデオエンコーダ20は、コーディングされるべきビデオフレームまたはスライスを受信する。フレームまたはスライスは複数のビデオブロックに分割され得る。動き推定ユニット42および動き補償ユニット44は、時間的予測をもたらすために、1つまたは複数の参照フレームの中の1つまたは複数のブロックに対して、受信されたビデオブロックのインター予測コーディングを実行する。イントラ予測ユニット46は、代替的に、空間的予測をもたらすために、コーディングされるべきブロックと同じフレームまたはスライスの中の1つまたは複数の隣接するブロックに対して、受信されたビデオブロックのイントラ予測コーディングを実行することができる。ビデオエンコーダ20は、たとえば、ビデオデータの各ブロックに対する適切なコーディングモードを選択するために、複数のコーディングパスを実行することができる。
【0119】
[0131]その上、区分ユニット48は、以前のコーディングパスにおける以前の区分方式の評価に基づいて、ビデオデータのブロックをサブブロックに区分することができる。たとえば、区分ユニット48は、最初は、レート歪み分析(たとえば、レート歪み最適化)に基づいて、フレームまたはスライスをLCUに区分し、LCUの各々をサブCUに区分することができる。モード選択ユニット40は、LCUのサブCUへの区分を示す4分木データ構造をさらに生成することができる。4分木のリーフノードCUは、1つまたは複数のPUと、1つまたは複数のTUとを含み得る。
【0120】
[0132]モード選択ユニット40は、たとえば、誤差の結果に基づいて、コーディングモードの1つ、イントラまたはインターを選択し、得られたイントラコーディングされたブロックまたはインターコーディングされたブロックを、残差ブロックデータを生成するために加算器50に与え、参照フレームとして使用するための符号化されたブロックを再構築するために加算器62に与えることができる。モード選択ユニット40はまた、動きベクトル、イントラモードインジケータ、区分情報、および他のそのようなシンタックス情報のような、シンタックス要素をエントロピーコーディングユニット56に与える。
【0121】
[0133]動き推定ユニット42および動き補償ユニット44は、高度に統合され得るが、概念的な目的のために別々に示されている。動き推定ユニット42によって実行される動き推定は、動きベクトルを生成するプロセスであり、これはビデオブロックに対する動きを推定する。動きベクトルは、たとえば、現在のフレーム内でコーディングされている現在のブロック(または、他のコーディングユニット)に対する、参照フレーム内の予測ブロック(または、他のコーディングユニット)に対する現在のビデオフレーム内またはピクチャ内のビデオブロックのPUの変位を示し得る。予測ブロックは、ピクセル差分に関して、コーディングされるべきブロックと厳密に一致することが見出されたブロックであり、ピクセル差分は、絶対値差分の合計(SAD)、二乗差分の合計(SSD)、または他の差分のメトリクスによって決定され得る。いくつかの例では、ビデオエンコーダ20は、参照フレームメモリ64に記憶されている参照ピクチャの、サブ整数ピクセル位置に対する値を計算することができる。たとえば、ビデオエンコーダ20は、参照ピクチャの、4分の1ピクセル位置、8分の1ピクセル位置、または他の分数のピクセル位置の値を補間することができる。したがって、動き推定ユニット42は、完全なピクセル位置および分数のピクセル位置に対して動き探索を実行し、動きベクトルを分数のピクセル精度で出力することができる。
【0122】
[0134]動き推定ユニット42は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコーディングされたスライス中のビデオブロックのPUに対する動きベクトルを計算する。参照ピクチャは、第1の参照ピクチャリスト(リスト0)または第2の参照ピクチャリスト(リスト1)から選択されてよく、それらの各々は、参照フレームメモリ64に記憶されている1つまたは複数の参照ピクチャを識別する。動き推定ユニット42は、計算された動きベクトルを、エントロピー符号化ユニット56および動き補償ユニット44に送る。
【0123】
[0135]動き補償ユニット44によって実行される動き補償は、動き推定ユニット42によって決定された動きベクトルに基づいて、予測ブロックをフェッチまたは生成することに関与し得る。やはり、いくつかの例では、動き推定ユニット42および動き補償ユニット44は、機能的に統合され得る。現在のビデオブロックのPUに対する動きベクトルを受信すると、動き補償ユニット44は、動きベクトルが参照ピクチャリストの1つにおいて指し示す予測ブロックを位置特定することができる。加算器50は、コーディングされている現在のビデオブロックのピクセル値から予測ブロックのピクセル値を減算することによって残差ビデオブロックを形成し、以下で説明されるようにピクセル差分の値を形成する。一般に、動き推定ユニット42は、ルーマ成分に対する動き推定を実行し、動き補償ユニット44は、クロマ成分とルーマ成分の両方のために、ルーマ成分に基づいて計算された動きベクトルを使用する。モード選択ユニット40はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ30が使用するためのビデオブロックとビデオスライスとに関連付けられる、シンタックス要素を生成することができる。
【0124】
[0136]イントラ予測ユニット46は、上で説明されたように、動き推定ユニット42と動き補償ユニット44とによって実行されるインター予測の代替として、現在のブロックをイントラ予測することができる。特に、イントラ予測ユニット46は、現在のブロックを符号化するために使用すべきイントラ予測モードを決定することができる。いくつかの例では、イントラ予測ユニット46は、たとえば、別個の符号化パスの間に様々なイントラ予測モードを使用して現在のブロックを符号化し、イントラ予測ユニット46(または、いくつかの例では、モード選択ユニット40)は、使用するのに適切なイントラ予測モードを、テストされたモードから選択することができる。
【0125】
[0137]たとえば、イントラ予測ユニット46は、様々なテストされたイントラ予測モードに対して、レート歪み分析を使用してレート歪みの値を計算し、テストされたモードの中から最良のレート歪み特性を有するイントラ予測モードを選択することができる。レート歪み分析は一般に、符号化されたブロックと、符号化されたブロックを生成するために符号化された元の符号化されていないブロックとの間の歪み(または誤差)の量、ならびに符号化されたブロックを生成するために使用されるビットレート(すなわち、ビット数)を決定する。イントラ予測ユニット46は、どのイントラ予測モードがブロックについて最良のレート歪み値を呈するかを決定するために、様々な符号化されたブロックに関する歪みおよびレートから比を計算することができる。
【0126】
[0138]ブロックのためのイントラ予測モードを選択した後に、イントラ予測ユニット46は、ブロックのための選択されたイントラ予測モードを示す情報をエントロピーコーディングユニット56に与えることができる。エントロピーコーディングユニット56は、選択されたイントラ予測モードを示す情報を符号化することができる。ビデオエンコーダ20は、送信されるビットストリーム中に構成データを含むことがあり、構成データは、コンテキストの各々に対して使用すべき、複数のイントラ予測モードのインデックステーブルと、複数の修正されたイントラ予測モードのインデックステーブル(コードワードマッピングテーブルとも呼ばれる)と、様々なブロックに対する符号化コンテキストの定義と、最も起こりそうなイントラ予測モードと、イントラ予測モードのインデックステーブルと、修正されたイントラ予測モードのインデックステーブルの指示とを含み得る。
【0127】
[0139]ビデオエンコーダ20は、モード選択ユニット40からの予測データを、コーディングされている元のビデオブロックから減算することによって、残差ビデオブロックを形成する。加算器50は、この減算演算を実行する1または複数のコンポーネントを表す。変換処理ユニット52は、離散コサイン変換(DCT)または概念的には類似する変換のような変換を残差ブロックに適用し、残差変換係数の値を備えるビデオブロックを生成する。変換処理ユニット52は、概念的にはDCTに類似する他の変換を実行することができる。ウェーブレット変換、整数変換、サブバンド変換または他のタイプ変換も使用され得る。いずれの場合でも、変換処理ユニット52は、変換を残差ブロックに適用し、残差変換係数のブロックを生成する。変換は、残差情報を、ピクセル値領域から周波数領域のような変換領域に変換することができる。変換処理ユニット52は、得られた変換係数を量子化ユニット54へ送ることができる。量子化ユニット54は、ビットレートをさらに低減するために、変換係数を量子化する。量子化プロセスは、係数の一部またはすべてと関連付けられたビット深度を低減することができる。量子化の程度は、量子化パラメータを調整することによって修正され得る。いくつかの例では、量子化ユニット54は次いで、量子化された変換係数を含む行列の走査を実行することができる。代替的に、エントロピー符号化ユニット56が走査を実行することができる。
【0128】
[0140]量子化の後に、エントロピーコーディングユニット56は量子化された変換係数をエントロピーコーディングする。たとえば、エントロピーコーディングユニット56は、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔区分エントロピー(PIPE)コーディングまたは別のエントロピーコーディング技法を実行することができる。コンテキストベースのエントロピーコーディングの場合、コンテキストは隣接するブロックに基づき得る。エントロピーコーディングユニット56によるエントロピーコーディングの後に、符号化されたビットストリームは、別のデバイス(たとえば、ビデオデコーダ30)に送信され、あるいは、後で送信するかまたは取り出すためにアーカイブされ得る。
【0129】
[0141]逆量子化ユニット58および逆変換ユニット60は、それぞれ逆量子化および逆変換を適用して、たとえば、参照ブロックとして後で使用するために、ピクセル領域において残差ブロックを再構築する。動き補償ユニット44は、残差ブロックを参照フレームメモリ64のフレームの1つの予測ブロックに加算することによって、参照ブロックを計算することができる。動き補償ユニット44は、動き推定において使用するためのサブ整数ピクセル値を計算するために、1つまたは複数の補間フィルタを再構築された残差ブロックに適用することもできる。加算器62は、参照フレームメモリ64へ記憶するための再構築されたビデオブロックを生成するために、再構築された残差ブロックを、動き補償ユニット44によって生成される動き補償された予測ブロックに加算する。再構築されたビデオブロックは、後続のビデオフレーム中のブロックをインターコーディングするための参照ブロックとして、動き推定ユニット42および動き補償ユニット44によって使用され得る。
【0130】
[0142]マルチビュービデオコーディング
[0143]マルチビュービデオコーディング(MVC)はH.264/AVCの拡張である。MVCの仕様は、以下の本開示のセクションおよびサブセクションにおいて簡単に論じられる。
【0131】
[0144]MVCビットストリーム構造
[0145]典型的なMVC復号順序(すなわち、ビットストリーム順序)が図4に示される。復号順序の構成は時間優先コーディング(time-first coding)と呼ばれる。各アクセスユニット(AU)は、1つの出力時間インスタンスのためのすべてのビューのコーディングされたピクチャを含むように定義される。アクセスユニットの復号順序は出力または表示の順序と同じではないことがあることに留意されたい。
【0132】
[0146]MVCコーディング構造
[0147]マルチビュービデオコーディングのための(各ビュー内のピクチャ間予測とビュー間予測の両方を含む)典型的なMVC予測構造が図5において示され、ここで、予測は矢印によって示され、矢印の終点のオブジェクトは、予測参照のために矢印の始点のオブジェクトを使用する。
【0133】
[0148]MVCでは、H.264/AVC動き補償のシンタックスを使用するが異なるビュー中のピクチャが参照ピクチャとして使用されることを可能にする、相違動き補償によって、ビュー間予測がサポートされる。
【0134】
[0149]2つのビューのコーディングは、MVCによってもサポートされることが可能であり、MVCの利点の1つは、MVCエンコーダが3Dビデオ入力として3つ以上のビューをとらえることができることと、MVCデコーダがそのようなマルチビュー表現を復号できることである。したがって、MVCデコーダを有する任意のレンダラは、3つ以上のビューをもつ3Dビデオコンテンツを予想することができる。
【0135】
[0150]MVCビュー間予測
[0151]MVCでは、同じアクセスユニット中の(すなわち、同じ時間インスタンスを有する)ピクチャ間でビュー間予測が可能にされる。非ベースビューの1つの中のピクチャをコーディングするとき、追加される可能性のあるピクチャが異なるビュー中にあるが同じ時間インスタンスを有する場合、ピクチャは参照ピクチャリストに追加され得る。
【0136】
[0152]ビュー間参照ピクチャは、任意のインター予測参照ピクチャと同様に、参照ピクチャリストの任意の位置に置かれ得る。ビュー間参照ピクチャが動き補償のために使用されるとき、対応する動きベクトルは「相違動きベクトル」と呼ばれる。
【0137】
[0153]HEVC技法
[0154]いくつかの関連するHEVC技法が以下で検討される。
【0138】
[0155]参照ピクチャリスト構築
[0156]通常、Bピクチャの第1または第2の参照ピクチャリストのための参照ピクチャリスト構築は、2つのステップ、すなわち参照ピクチャリストの初期化と、参照ピクチャリストの並べ替え(または「修正」)とを含む。参照ピクチャリストの初期化は、参照ピクチャメモリ(「復号ピクチャバッファ」としても知られる)中の参照ピクチャを、ピクチャ順序カウント(POC)値の順序に基づいてリストに入れる明示的な機構であり、POC値の順序は対応するピクチャの表示順序と揃えられる。参照ピクチャリストの並べ替え機構は、参照ピクチャリストの初期化中にリストに入れられたピクチャの位置を任意の新しい位置に修正することができ、または参照ピクチャメモリ中の任意の参照ピクチャを、そのピクチャが初期化されたリストに属さなくても、任意の位置に入れることができる。参照ピクチャリストの並べ替え(修正)の後のいくつかのピクチャは、リスト中のはるかに離れた位置に入れられることがある。しかしながら、ピクチャの位置がリストのアクティブ参照ピクチャの数を超える場合、ピクチャは、最終参照ピクチャリストのエントリーとは見なされない。アクティブ参照ピクチャの数は、各リストのためのスライスヘッダにおいてシグナリングされ得る。
【0139】
[0157]参照ピクチャリスト(すなわち、利用可能な場合、RefPicList0およびRefPicList1)が構築された後、参照ピクチャリストに対する参照インデックスは、参照ピクチャリストに含まれる任意の参照ピクチャを特定するために使用され得る。
【0140】
[0158]時間的動きベクトル予測子(TMVP)
[0159]時間的動きベクトル予測子(TMVP)を得るために、まず、同じ位置にあるピクチャが特定されることになる。現在のピクチャがBスライスである場合、同じ位置にあるピクチャがRefPicList0からのものかRefPicList1からのものかを示すために、collocated_from_l0_flagがスライスヘッダにおいてシグナリングされる。
【0141】
[0160]参照ピクチャリストが特定された後、スライスヘッダにおいてシグナリングされるcollocated_ref_idxが、リスト中のピクチャの中のピクチャを特定するために使用される。
【0142】
[0161]次いで、同じ位置にあるピクチャを確認することによって、同じ位置にある予測ユニット(PU)が特定される。現在のPUを含むコーディングユニット(CU)の右下のPUの動き、または、現在のPUを含むCUの中心のPU内の右下のPUの動きのいずれかが使用される。
【0143】
[0162]AMVPまたは統合モードの動き候補を生成するために上記のプロセスによって特定された動きベクトルが使用されるとき、動きベクトルは、(対応するピクチャのPOC値によって反映される)時間的位置に基づいてスケーリングされる必要があり得る。
【0144】
[0163]TMVPから導出される時間的統合候補のためのすべての考えられる参照ピクチャリストのターゲット参照インデックスは常に0に設定されるが、AMVPの場合、ターゲット参照インデックスは、復号された参照インデックスに等しく設定されることに留意されたい。
【0145】
[0164]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に等しいとき、復号順序がその特定のピクチャの前であるピクチャからの動きベクトルは、その特定のピクチャ、または復号順序がその特定のピクチャの後であるピクチャの復号において、時間的動きベクトル予測子として使用されない。
【0146】
[0165]HEVCベースの3DV
[0166]現在、VCEGおよびMPEGのJoint Collaboration Team on 3D Video Coding(JCT−3C)は、HEVCに基づいて3DV規格を開発中であり、そのための規格化の取組みの一部は、HEVCに基づくマルチビュービデオコーデック(MV−HEVC)と、HEVCに基づく3Dビデオコーディング(3D−HEVC)のための別の部分との規格化を含む。MV−HEVCでは、HEVCにおけるCU/PUレベルのモジュールが再設計される必要がなく、完全にMV−HEVCのために再使用され得るように、MV−HEVCにおいてハイレベルシンタックス(HLS)の変更しかないことが保証されるべきである。3D−HEVCでは、コーディングユニット/予測ユニットレベルのコーディングツールを含む新たなコーディングツールが、テクスチャと深度ビューの両方に関して含まれ、サポートされ得る。3D−HEVCのための最新のソフトウェア3D−HTMは、次のリンク、すなわち、[3D−HTM version 7.0]:https://hevc.hhi.fraunhofer.de/svn/svn_3DVCSoftware/tags/HTM−7.0/ からダウンロード可能であり得る。最新の参照ソフトウェアの説明、さらには3D−HEVCのワーキングドラフトは、次のように、すなわち、Gerhard Tech、Krzysztof Wegner、Ying Chen、Sehoon Yea、“3D−HEVC Test Model 4”、JCT3V−D1005_spec_v1、Joint Collaborative Team on 3D Video Coding Extension Development of ITU−T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11、第4回会議:仁川、韓国、2013年4月20〜26日において入手可能である。このワーキングドラフトは、次のリンク、すなわち、http://phenix.it−sudparis.eu/jct2/doc_end_user/documents/4_Incheon/wg11/JCT3V−D1005−v1.zipからダウンロード可能である。
【0147】
[0167]コーディング効率をさらに改善するために、2つの新規の技術、すなわち、「ビュー間動き予測」および「ビュー間残差予測」が、最新の参照ソフトウェアに採用されてきている。これらの2つのコーディングツールを有効にするために、第1のステップは、相違ベクトルを導出することである。ビデオコーディングデバイスは、ビュー間動き/残差予測のための他のビュー中の対応するブロックを位置特定するために相違ベクトルを使用することと、ビュー間動き予測のために相違ベクトルを相違動きベクトルに変換することとのいずれかを行うことができる。
【0148】
[0168]暗黙的相違ベクトル
[0169]ビデオコーディングデバイスは、PUがビュー間動きベクトル予測を利用するとき、すなわち、AMVPまたは統合モードのための候補が、相違ベクトルの助けによって他のビュー中の対応するブロックから導出されるとき、暗黙的相違ベクトル(IDV)を生成することができる。そのような相違ベクトルは、IDVと呼ばれる。IDVは、相違ベクトル導出の目的でPUに記憶される。
【0149】
[0170]相違ベクトル導出プロセス
[0171]相違ベクトルを導出するために、ビデオコーディングデバイスは、現在の3D−HTMにおいて記述されるような、隣接するブロックベース相違ベクトル(NBDV)と呼ばれる技法を使用することができる。NBDVは、空間的に隣接するブロックおよび時間的に隣接するブロックからの、相違動きベクトルを利用する。NBDVに従って、ビデオコーディングデバイスは、固定された確認順序で空間的に隣接するブロックまたは時間的に隣接するブロックの動きベクトルを確認することができる。相違動きベクトルまたはIDVが特定されると、確認プロセスは終了され、特定された相違ベクトルが返され、ビュー間動き予測およびビュー間残差予測において使用される相違ベクトルへと変換される。すべてのあらかじめ定義された隣接するブロックを確認した後、そのような相違動きベクトルが見つからない場合、ビデオコーディングデバイスは、ビュー間動き予測のために0相違ベクトルを使用することができるが、ビュー間残差予測は、対応する予測ユニット(PU)に対して無効にされる。
【0150】
[0172]NBDVのために使用される空間的に隣接するブロックおよび時間的に隣接するブロックは、確認順序に続いて、本開示の後続の部分において紹介される。
【0151】
[0173]空間的に隣接するブロック
[0174]5つの空間的に隣接するブロックが、相違ベクトル導出のために使用される。5つの空間的に隣接するブロックは、HEVC規格の図8−3において定義されるような、A0、A1、B0、B1またはB2によって示される、現在の予測ユニット(PU)の左下のブロック、左のブロック、右上のブロック、上のブロック、および左上のブロックである。
【0152】
[0175]時間的に隣接するブロック
[0176]時間的ブロックの確認のために、現在のビューからの最大で2つの参照ピクチャ、同じ位置にあるピクチャ、およびランダムアクセスピクチャ、または最小のPOC差分および最小の時間的IDを有する参照ピクチャが考慮される。ランダムアクセスがまず確認され、続いて同じ位置にあるピクチャが確認される。各候補ピクチャに対して、2つの候補ブロックが下で列挙されるように確認される。
a)中心ブロック(CR):現在のPUの同じ位置にある領域の中心の4×4ブロック(図6の「Pos.A」(102)参照)。
b)右下ブロック(BR):現在のPUの同じ位置にある領域の右下の4×4ブロック(図6の「Pos.B」(104)参照)。
【0153】
[0177]確認順序
[0178]すべての空間的/時間的に隣接するブロックに関して、DMVが使用されるかどうかが最初に確認され、続いてIDVが確認される。空間的に隣接するブロックがまず確認され、続いて時間的に隣接するブロックが確認される。
・5つの空間的に隣接するブロックが、A1、B1、B0、A0、およびB2の順序で確認される。5つの確認された空間的に隣接するブロックの1つがDMVを使用する場合、ビデオエンコーダ20は確認プロセスを終了することができ、最終相違ベクトルとして対応するDMVを使用することができる。
・各候補ピクチャに対して、2つのブロックが、第1の非ベースビューではCRおよびBRの順序で、または第2の非ベースビューではBR、CRの順序で確認される。2つの確認されたブロックの1つがDMVを使用する場合、ビデオエンコーダ20は確認プロセスを終了することができ、最終相違ベクトルとして対応するDMVを使用することができる。
・5つの空間的に隣接するブロックが、A0、A1、B0、B1、およびB2の順序で確認される。5つの確認された空間的に隣接するブロックの1つがIDVを使用し、スキップ/統合モードとしてコーディングされる場合、確認プロセスは終了され、最終相違ベクトルとして対応するIDVが使用される。
【0154】
[0179]相違ベクトルの精緻化
[0180]NBDV方式から生成される相違ベクトルはさらに、コーディングされた深度マップ中の情報を使用して精緻化され得る。すなわち、相違ベクトルの精度は、コーディングされたベースビュー深度マップ中の情報を利用することによって向上され得る。精緻化ステップは次のように説明され得る。
1.ベースビューのような、前にコーディングされた参照深度ビュー中の導出された相違ベクトルによって、対応する深度ブロックを位置特定し、対応する深度ブロックのサイズは、現在のPUのサイズと同じである。
2.相違ベクトルは、同じ位置にある深度ブロックから、4つの角の深度値の最大値から計算される。これは相違ベクトルの水平成分に等しく設定されるが、相違ベクトルの垂直成分は0に設定される。
【0155】
[0181]この新規の相違ベクトルは、「深度指向性の隣接するブロックベース相違ベクトル」(DoNBDV:depth oriented neighboring block based disparity vector)と呼ばれる。NBDV方式からの相違ベクトルは次いで、AMVPおよび統合モードのためのビュー間候補導出のためにDoNBDV方式から新規に導出されたこの相違ベクトルによって置き換えられる。精緻化されていない相違ベクトルがビュー間残差予測のために使用されることに留意されたい。加えて、精緻化された相違ベクトルが後方VSPモードでコーディングされる場合、精緻化された相違ベクトルは、1つのPUの動きベクトルとして記憶される。
【0156】
[0182]3D−HEVCにおける隣接するブロックを使用したブロックベースのビュー合成予測
[0183]JCT3V−C0152において提案されたような後方ワーピングVSP手法が、第3回JCT−3V会議において採用された。この後方ワーピングVSPの基本的な考えは、3D−AVCにおけるブロックベースVSPと同じである。これらの2つの技法の両方が、動きベクトル差分を送信することを避け、より正確な動きベクトルを使用するために、後方ワーピングとブロックベースVSPとを使用する。実装形態の詳細は、プラットフォームが異なることにより異なる。
【0157】
[0184]以下の段落では、「BVSP」という用語は、3D−HEVCにおける後方ワーピングVSP手法を指すために使われる。
【0158】
[0185]3D−HTMでは、テクスチャ優先コーディングは、共通の試験条件において適用される。したがって、対応する非ベース深度ビューは、1つの非ベーステクスチャビューを復号するときに利用不可能である。したがって、深度情報は、BVSPを実行するために推定および使用される。
【0159】
[0186]ブロックについての深度情報を推定するために、隣接するブロックから相違ベクトルをまず導出し、次いで参照ビューから深度ブロックを取得するために導出された相違ベクトルを使用することが提案される。
【0160】
[0187]HTM5.1テストモデルには、NBDV(隣接するブロック相違ベクトル)として知られる相違ベクトル予測子を導出するためのプロセスが存在する。(dvx,dvy)はNBDV関数から特定された相違ベクトルを示すものとし、現在のブロック位置は(blockx,blocky)である。参照ビューの深度画像では、(blockx+dvx,blocky+dvy)において深度ブロックをフェッチすることが提案される。フェッチされた深度ブロックは、現在の予測ユニット(PU)と同じサイズを有し、フェッチされた深度ブロックが次いで、現在のPUのための後方ワーピングを行うために使用される。図4は、どのように参照ビューからの深度ブロックが位置特定され、次いでBVSP予測に使用されるかの、3つのステップを照らす。
【0161】
[0188]NBDVに対する変更
[0189]BVSPがシーケンスにおいて有効にされる場合、以下の段落および中黒において説明されるように、ビュー間動き予測のためのNBDVプロセスが変更される。
・時間的に隣接するブロックの各々について、時間的に隣接するブロックが相違動きベクトルを使用する場合、相違動きベクトルは相違ベクトルとして返され、相違ベクトルはさらに、「相違ベクトルの精緻化」に関して上で説明された方法によって精緻化される。
・空間的に隣接するブロックの各々について、次のことが当てはまる。
○参照ピクチャリスト0または参照ピクチャリスト1の各々について、以下のことが当てはまる。
・参照ピクチャリスト(たとえば、0または1)が相違動きベクトルを使用する場合、相違動きベクトルは相違ベクトルとして返され、相違動きベクトルはさらに、「相違ベクトルの精緻化」に関して上で説明された方法によって精緻化される。
・そうではなく、参照ピクチャリスト(たとえば、0または1)がBVSPモードを使用する場合、関連付けられる動きベクトルは相違ベクトルとして返される。相違ベクトルはさらに、「相違ベクトルの精緻化」に関して上で説明されたのと同様の方法で精緻化される。しかしながら、最大深度値は、4つの角のピクセルではなく、対応する深度ブロックのすべてのピクセルから選択される。
【0162】
[0190]BVSPコーディングされたPUの指示
[0191]紹介されたBVSPモードは特別なインターコーディングされるモードとして扱われ、BVSPモードの使用を示すフラグが、各PUのために維持されるべきである。ビットストリームにおいてフラグをシグナリングするのではなく、新たな統合候補(すなわち、BVSP統合候補)が統合候補リストに追加され、フラグは、復号された統合候補インデックスがBVSP統合候補に対応するかどうかに依存する。BVSP統合候補は、次のように定義される。
・各参照ピクチャリストに対する参照ピクチャインデックス:−1
・各参照ピクチャリストに対する動きベクトル:精緻化された相違ベクトル
【0163】
[0192]BVSP統合候補の挿入される位置は、空間的に隣接するブロックに依存する。
・5つの空間的に隣接するブロックのいずれか(A0、A1、B0、B1、またはB2)が、BVSPモードでコーディングされる、すなわち、隣接するブロックの維持されたフラグが1に等しい場合、BVSP統合候補は、対応する空間的統合候補として扱われ、統合候補リストに挿入される。BVSP統合候補は、統合候補リストに一度だけ挿入されることに留意されたい。
・それ以外の場合(たとえば、5つの空間的に隣接するブロックのいずれもがBVSPモードでコーディングされない場合)、BVSP統合候補は、統合候補リストにおいて、時間的統合候補の直前に挿入される。
【0164】
[0193]組み合わされた双予測統合候補の導出プロセス中に、BVSP統合候補を含めることを避けるために、追加の条件が確認されるべきであることに留意されたい。
【0165】
[0194]予測導出プロセス
[0195]対応するサイズがN×Mによって示される各々のBVSPコーディングされたPUに対して、BVSPコーディングされたPUは、K×K(ここでKは4または2であり得る)に等しいサイズを有するいくつかの下位領域にさらに区分される。各下位領域に対して、別個の相違動きベクトルが導出され、各下位領域は、ビュー間参照ピクチャ中の導出された相違動きベクトルによって位置特定された1つのブロックから予測される。言い換えれば、BVSPコーディングされたPUのための動き補償ユニットのサイズは、K×Kに設定される。いくつかの一般的な試験条件では、Kは4に設定される。
【0166】
[0196]相違動きベクトル導出プロセス
[0197]BVSPモードによってコーディングされた1つのPU内の各下位領域(たとえば、4×4ブロック)に対して、対応する4×4の深度ブロックはまず、上で説明された精緻化された相違ベクトルによって参照深度ビューの中で位置特定される。第2に、対応する深度ブロック中の16個の深度ピクセルの最大値が選択される。第3に、最大値が相違動きベクトルの水平成分に変換される。相違動きベクトルの垂直成分は、0に設定される。
【0167】
[0198]スキップ/統合モードのためのビュー間候補導出プロセス
[0199]DoNBDV方式から導出された相違ベクトルに基づいて、新たな動きベクトル候補である、ビュー間予測動きベクトル候補(IPMVC)が、利用可能な場合、AMVPおよびスキップ/統合モードに追加され得る。ビュー間予測動きベクトルは、利用可能な場合、時間的動きベクトルである。
【0168】
[0200]スキップモードが統合モードと同じ動きベクトル導出プロセスを有するので、本明細書で説明される一部またはすべての技法は、統合モードとスキップモードの両方に適用され得る。
【0169】
[0201]統合/スキップモードに対して、ビュー間予測動きベクトルが次のステップによって導出される。
・同じアクセスユニットの参照ビュー中の現在のPU/CUの対応するブロックは、相違ベクトルによって(またはそれを使用して)位置特定される。
・対応するブロックがイントラコーディングされず、ビュー間予測されず、対応するブロックの参照ピクチャが、現在のPU/CUの同じ参照ピクチャリスト中の1つのエントリーのPOC値に等しいPOCを有する場合、対応するブロックの動き情報(予測方向、参照ピクチャ、および動きベクトル)が、POCに基づいて参照インデックスを変換した後で、ビュー間予測動きベクトルとなるように導出される。
【0170】
[0202]加えて、相違ベクトルは、ビュー間相違動きベクトルに変換され、ビュー間相違動きベクトルは、それが利用可能であるとき、IPMVCとは異なる位置において統合候補リストに追加され、または、IPMVCと同じ位置においてAMVP候補リストに追加される。IPMVCとビュー間相違動きベクトル候補(IDMVC)のいずれかが、この文脈において「ビュー間候補」と呼ばれる。
【0171】
[0203]統合/スキップモードでは、IPMVCは、可能な場合は常に、すべての空間的統合候補および時間的統合候補の前に、統合候補リストへと挿入される。IDMVCは、A0から導出された空間的統合候補の前に挿入される。
【0172】
[0204]3D−HEVCにおけるテクスチャコーディングのための統合候補リスト構築
[0205]相違ベクトルがまず、DoNBDVの方法によって導出される。相違ベクトルの場合、3D−HEVCにおける統合候補リスト構築プロセスは、次のように定義され得る。
【0173】
[0206]1.IPMVC挿入
IPMVCが、上で説明された手順によって導出される。IPMVCが利用可能である場合、IPMVCは統合リストに(たとえば、ビデオエンコーダ20によって)挿入される。
【0174】
[0207]2.3D−HEVCにおける空間的統合候補の導出プロセスおよびIDMVC挿入
以下の順序、すなわち、A1、B1、B0、A0、またはB2で空間的に隣接するPUの動き情報を確認する。制約された刈り込みは、以下の手順によって実行される。
− A1およびIPMVCが同じ動きベクトルと同じ参照インデックスとを有する場合、A1は候補リストに挿入されないが、それ以外の場合、A1はそのリストに挿入される。
− B1およびA1/IPMVCが同じ動きベクトルと同じ参照インデックスとを有する場合、B1は候補リストに挿入されないが、それ以外の場合、B1はそのリストに挿入される。
− B0が利用可能である場合、B0は候補リストに追加される。IDMVCは、(たとえば、段落[0103]、[0231]、および本開示の様々な他の部分において)上で説明された手順によって導出される。IDMVCが利用可能であり、A1およびB1から導出された候補と異なる場合、IDMVCは候補リストに(たとえば、ビデオエンコーダ20によって)挿入される。
− BVSPがピクチャ全体または現在のスライスに対して有効にされる場合、BVSP統合候補は、統合候補リストに挿入される。
− A0が利用可能である場合、A0は候補リストに追加される。
− B2が利用可能である場合、B2は候補リストに追加される。
【0175】
[0208]3.時間的統合候補のための導出プロセス
同じ位置にあるPUの動き情報が利用される、HEVCにおける時間的統合候補導出プロセスと同様のものが利用される。しかしながら、ターゲット参照ピクチャインデックスを0に固定する代わりに、時間的統合候補のターゲット参照ピクチャインデックスは変更され得る。0に等しいターゲット参照インデックスが時間的参照ピクチャ(同じビュー中の)に対応する一方で、同じ位置にある予測ユニット(PU)の動きベクトルがビュー間参照ピクチャを指すとき、ターゲット参照ピクチャインデックスは、参照ピクチャリスト中のビュー間参照ピクチャの第1のエントリーに対応する別のインデックスに変更される。反対に、0に等しいターゲット参照インデックスがビュー間参照ピクチャに対応する一方で、同じ位置にある予測ユニット(PU)の動きベクトルが時間的参照ピクチャを指すとき、ターゲット参照ピクチャインデックスは、参照ピクチャリスト中の時間的参照ピクチャの第1のエントリーに対応する別のインデックスに変更される。
【0176】
[0209]4.3D−HEVCにおける組み合わされた双予測統合候補のための導出プロセス
上記の2つのステップから導出された候補の総数が、候補の最大の数未満である場合、HEVCにおいて定義されたものと同じプロセスが、l0CandIdxおよびl1CandIdxの仕様を除いて実行される。combIdx、l0CandIdxおよびl1CandIdxの関係は、次の表において定義される。
【表1】
【0177】
[0210]5.0動きベクトル統合候補のための導出プロセス
− HEVCにおいて定義されたものと同じ手順が実行される。
【0178】
[0211]最新のソフトウェアでは、MRGリスト中の候補の総数は最大で6であり、five_minus_max_num_merge_candが、スライスヘッダ中で6から減算されるMRG候補の最大の数を指定するためにシグナリングされる。five_minus_max_num_merge_candは、両端値を含む0〜5の範囲内にあることに留意されたい。
【0179】
[0212]深度コーディングのための動きベクトル継承
[0213]動きベクトル継承(MVI)の背後にある考えは、テクスチャ画像と関連付けられる深度画像との間の、動き特性の類似性を利用することである。
【0180】
[0214]深度画像中の所与のPUに対して、MVI候補は、動きベクトルおよび/または参照インデックスが利用可能である場合、すでにコーディングされている対応するテクスチャブロックの動きベクトルと参照インデックスとを再使用する。図9は、対応するテクスチャブロックが現在のPUの中心の右下に位置する4×4のブロックとして選択される、MVI候補の導出プロセスの例を示す。
【0181】
[0215]整数精度の動きベクトルが深度コーディングにおいて使用されるが、動きベクトルの4分の1精度がテクスチャコーディングのために利用されることに留意されたい。したがって、対応するテクスチャブロックの動きベクトルは、MVI候補として使用する前にスケーリングされ得る。
【0182】
[0216]MVI候補の生成とともに、深度ビューのための統合候補リストは次のように構築される。
【0183】
[0217]1.MVI挿入
MVIが、上で説明された手順(たとえば、深度コーディングのための動きベクトル継承における)によって導出される。MVIが利用可能である場合、MVIが統合リストに(たとえば、ビデオエンコーダ20によって)挿入される。
【0184】
[0218]2.3D−HEVCにおける空間的統合候補の導出プロセスおよびIDMV挿入
以下の順序、すなわち、A1、B1、B0、A0、またはB2で空間的に隣接するPUの動き情報を確認する。制約された刈り込みは、以下の手順によって実行される。
− A1およびMVIが同じ動きベクトルと同じ参照インデックスを有する場合、A1は候補リストに挿入されない。
− B1およびA1/MVIが同じ動きベクトルと同じ参照インデックスを有する場合、B1は候補リストに挿入されない。
− B0が利用可能である場合、B0は候補リストに追加される。
− A0が利用可能である場合、A0は候補リストに追加される。
− B2が利用可能である場合、B2は候補リストに追加される。
【0185】
[0219]3.時間的統合候補のための導出プロセス
同じ位置にあるPUの動き情報が利用される、HEVCにおける時間的統合候補導出プロセスと同様のものが利用される。しかしながら、ターゲット参照ピクチャインデックスを0に固定する代わりに、「3D−HEVCにおけるテクスチャコーディングのための統合候補リスト構築」において説明されたように、時間的統合候補のターゲット参照ピクチャインデックスが変更され得る。
【0186】
[0220]4.3D−HEVCにおける組み合わされた双予測統合候補のための導出プロセス 上記の2つのステップから導出された候補の総数が、候補の最大の数未満である場合、HEVCにおいて定義されたものと同じプロセスが、l0CandIdxおよびl1CandIdxの仕様を除いて実行される。combIdx、l0CandIdx、およびl1CandIdxの間の関係は、本開示の表1において定義される。
【0187】
[0221]5.0動きベクトル統合候補のための導出プロセス
− HEVCにおいて定義されたものと同じ手順が実行される。
【0188】
[0222]ビュー間残差予測
[0223]現在の3D−HEVCでは、2つのビューの残差信号の間の相関をより効率的に利用するために、ビュー間残差予測がいわゆる進化型残差予測(ARP:Advanced Residual Prediction)によって実現され、相違ベクトルによって特定される参照ブロックの残差は、参照ビューのための残差ピクチャを維持して残差ピクチャ中の参照ブロック内の残差を直接予測する代わりに、図7に示されるように、オンザフライで生成される。
【0189】
[0224]図7に示されるように、Dcとして示される、非ベースビュー中の現在のブロックの残差をより良好に予測するために、参照ブロックBcはまず、相違ベクトルによって特定され、参照ブロックの動き補償が、予測信号Brと参照ブロックBcの再構築された信号との間の残差を導出するために呼び出される。ARPモードが呼び出されるとき、予測された残差が、非ベースビューの予測信号の上部に追加され、この予測信号は、たとえば、非ベースビューの参照ピクチャ中のブロックDrからの動き補償によって生成される。ARPモードの潜在的な利点は、(ARPのために残差を生成するとき)参照ブロックによって使用される動きベクトルが、現在のブロックの動きベクトルと揃えられ、その結果、現在のブロックの残差信号がより正確に予測され得ることである。したがって、残差のエネルギーは、かなり低減され得る。図8は、図7の様々なコンポーネントを、しかし異なる画像のテクスチャの詳細を伴わずに示す。例示を簡単にすることのみを目的に、図8図7に対して縮尺通りに描かれていないことが諒解されるだろう。
【0190】
[0225]ベース(参照)ビューと非ベースビューとの間の量子化差分はより低い予測精度につながり得るので、参照ビューから生成された残差に、2つの重み付け係数、すなわち0.5および1が適応的に適用される。
【0191】
[0226]ベース(参照)ビューにおける追加の動き補償はメモリアクセスおよび計算の大幅な増大を必要とすることがあるので、コーディング効率の犠牲を少なくしながら設計をより実用的にするためのいくつかの方法が採用されてきた。第1に、ARPモードは、特にエンコーダにおける計算を減らすために、予測ユニット(PU)が2N×2Nによってコーディングされるときだけ、有効にされる。第2に、ARPモードによってコーディングされるブロックのためのメモリアクセスを大幅に減らすために、参照ブロックと現在のブロックの両方の動き補償のために双線形フィルタが採用される。第3に、キャッシュ効率を改善するために、動きベクトルは非ベースビュー中の様々なピクチャを指し得るが、ベースビュー中の参照ピクチャは固定される。この場合、現在のブロックの動きベクトルは、ピクチャ距離に基づいてスケーリングされる必要があり得る。
【0192】
[0227]潜在的な問題
[0228]HEVCベースのマルチビュー/3DVコーダにおける深度コーディングのための動き関連の技術の現在の設計は、次の潜在的な問題を有する。非ベース深度ビューの動きベクトル予測コーディングは、統合/スキップモードのためのすでにコーディングされている参照(ベース)深度ビューの動き情報を考慮していない。言い換えると、1つの非ベース深度ビュー中のビデオブロックの動き情報(参照インデックスと動きベクトルとを含む)と、参照深度ビュー中の対応するブロックとの間の相関は利用されない。
【0193】
[0229]技法
[0230]本開示は、参照深度ビューのすでにコーディングされている動きベクトルからより多数の候補を導出することによって、従属深度ビューの動きベクトル予測精度を改善するための、1つまたは複数の技法を対象とする。本技法は、限定はされないが、本明細書で説明されるビデオエンコーダ20および/またはビデオデコーダ30を含む、種々のデバイスによって実行され得る。議論の目的で、本技法は、ビデオエンコーダ20、ならびに/または、動き推定ユニット42および/もしくは動き補償ユニット44のようなビデオエンコーダ20の様々なコンポーネントに関して説明される。統合候補を導出するために、ビデオエンコーダ20はまず、隣接する再構築された深度値から相違ベクトルを導出することができる。次いで、ビデオエンコーダ20は、この導出された相違ベクトルに基づいて追加の統合候補を生成することができ、統合候補リストに追加した。
【0194】
[0231]本開示の態様はさらに、次のように要約される。
関連するブロックの(x,y)ビー左上の角を示す。
I.ビデオエンコーダ20は、平均、最大値、メジアンのような数学的演算を隣接するサンプルに適用して深度値を得ることによって、現在のブロックの角に隣り合う隣接するピクセルに基づいて、各ブロックに対して単一の相違ベクトルメイビーディライブドを導出することができる。ビデオエンコーダ20は、深度値を相違ベクトルに直接変換することができる。
1)隣接するサンプルは、ブロックの左上、右上、および左下の再構築された深度サンプルに、たとえば、位置{(x−1,y−1)、(x−1,y+幅−1)、および(x+高さ−1,y−1)}にある隣接する再構築された深度サンプルに、隣り合っていてよい。各CUに対して(たとえば、ビデオエンコーダ20によって)導出される相違ベクトルは、本明細書のすべてのPUに対して共有される。ここで、ビデオブロックのサイズは幅×高さである。
2)代替的に、ビデオエンコーダ20は、深度値を導出するために、位置{(x−1,y−1)、(x−1,y+2N)、(x−1,y+2N−1)、(x+2N,y−1)、および(x+2N−1,y−1)}にある5つの隣接する再構築された深度サンプルを使用することができる。
3)一例では、CU中のすべてのPUに対して、このプロセスはCUであるブロックに適用され、すべてのPUがそのブロックのためにビデオエンコーダ20によって導出される同じ相違ベクトルを共有する。
4)一例では、各PUは独立のブロックであってよく、ビデオエンコーダ20は、現在のPUのためにそのブロックから導出される相違ベクトルを使用することができる。
II.IPMVC候補とIDMVC候補とを含むテクスチャPUと同様に、現在の深度PUに対して、ビデオエンコーダ20は、参照ビュー中の対応するブロックの動き情報から(たとえば、ビデオエンコーダ20によって)生成されるビュー間予測動きベクトル候補(IPMVC)を導出するために、および/または、相違ベクトルを相違動きベクトルに変換することによってビュー間相違動きベクトル候補(IDMVC)を導出するために、PUのために導出された相違ベクトルを使用することができる。ビデオエンコーダ20は、追加の候補が利用可能である場合、生成された追加の候補であるIPMVCとIDMVCとを、深度コーディングのための統合候補リストに追加することができる。
1)1つの代替形態では、ビデオエンコーダ20は、IPMVCが利用不可能であるときだけ、IDMVCを生成することができる。
2)別の代替形態では、ビデオエンコーダ20は、IPMVCが利用可能であるときだけ、IDMVCを生成することができる。しかしながら、この代替形態のいくつかの例では、ビデオエンコーダ20は、刈り込みの後、統合リスト中にIDMVCとIPMVCの一方または両方を含まないことがある。
3)一例では、ビデオエンコーダ20は、相違ベクトルを相違動きベクトルに変換する間に、動きベクトルの丸めを適用することができる。たとえば、相違ベクトルは4分の1精度であり、(mvX,0)によって表されるものとする。この例では、ビデオエンコーダ20は、相違ベクトルを、(mvX>>2,0)として、または整数精度では((mvX+2)>>2,0)として、相違動きベクトルに変換することができる。
III.ビデオエンコーダ20は、最初に生成された空間的統合候補、時間的統合候補、およびMVI統合候補に対する位置とともに、追加の統合候補を統合候補リストに挿入することができる。
1)代替的に、ビデオエンコーダ20は、追加の統合候補を、それらの候補の相対的な位置に関して空間的統合候補および時間的統合候補の直後に、挿入することができる。その後、ビデオエンコーダ20は、空間的統合候補、時間的統合候補、ならびにIPMVC統合候補および/またはIDMVC統合候補を含む統合候補リストに、MVI候補を挿入することができる。
2)一例では、イズインサーテッドによって決定されるような、IPMVCおよび/またはIDMVCの相対的な位置は、テクスチャブロックに対して使用されるものと同じである。すなわち、ビデオエンコーダ20は、すべての空間的統合候補の直前に、したがって、MVI候補(同じ位置にあるテクスチャブロックから導出される)の後に、IPMVCを追加することができる。加えて、ビデオエンコーダ20は、B0から導出される統合候補のすぐ前(直前)にIDMVCを追加することができる。
3)別の例では、IPMVCおよび/またはIDMVCの相対的な位置は、3D−HEVCテクスチャコーディングにおいて使用されるものとは異なり得る。
− 1つの代替形態では、ビデオエンコーダ20は、MVI候補の直後にIPMVCを追加することができ、空間的候補B1のすぐ次(直後)に、および空間的候補B0のすぐ前(直前)にIDMVC候補を挿入することができる。
− 別の代替形態では、ビデオエンコーダ20は、空間的候補A1のすぐ次(直後)にIPMVC候補を挿入することができ、IDMVC候補は候補B0の後に挿入され得る。
− 別の代替形態では、ビデオエンコーダ20は、MVI候補の前にIPMVC候補を挿入することができ、候補B1の後にIDMVC候補を挿入することができる。
III−A.ビデオエンコーダ20は、統合候補リストを生成するために、現在のPU/CUのシフトされた相違ベクトルから、参照ビューからより多数のIPMVCを導出することができる。そのようなIPMVCは、本明細書では「シフトされたIPMVC」と呼ばれる。
1)ビデオエンコーダ20は、水平方向にDV[0]+M1だけ、および垂直方向にDV[1]+M2だけ、相違ベクトルDVをシフトすることができる。加えて、ビデオコーダ20は、IPMVCを生成するために参照ビュー中の対応するブロックを位置特定するのに、シフトされた相違ベクトル(DV[0]+M1,DV[1]+M2)を使用することができる。IPMVCが利用可能である場合、ビデオエンコーダ20は、統合候補リストに対する追加の候補として、利用可能なIPMVCを使用することができる。
III−B.上のセクションIII−A、中黒#1(段落[0231])におけるように、シフトされた相違ベクトルからのIPMVCが利用不可能である場合、ビデオエンコーダ20は、(利用可能な相違動きベクトルである)mv[0]の水平成分をシフトすることによって追加の候補を導出して追加の動きベクトル候補MvCを生成するために、空間的に隣接するブロックA1、B1、B0、A0、またはB2のRefPicList0に対応する第1の利用可能な相違動きベクトル(DMV)を使用することができる。この候補は、相違シフトされた動きベクトル(DSMV)として示される。
1)DMVが利用可能であり、MvC[0]=mv[0]、MvC[1]=mv[1]、およびMvC[0][0]+=Nである場合、ビデオエンコーダ20は、参照インデックスを第1の利用可能な候補(DMVを含む)から継承することができる。
2)DMVが利用不可能である場合、ビデオエンコーダ20は、固定されたNに対して追加の候補を生成しなくてよい。
III−C.ビデオエンコーダ20は、上で(たとえば、III−Bにおいて)説明されたようにDSMVをまず生成することができる。DSMVが上のIII−Bにおいて説明された導出を介して入手可能ではない場合、ビデオエンコーダ20は、より具体的には次のように、動きベクトルを相違ベクトルからシフトされたベクトルに設定することによってDSMV(MvCとして示される)を導出することができる。
1)MvC[0]=DVおよびMvC[0][0]+=N、MvC[0][1]=0およびMvC[1]=DVおよびMvC[1][0]+=N、MvC[1][1]=0、ならびに、MvC[X]に対応する参照インデックスは、NBDVプロセスの間に相違ベクトルとともに特定される参照ビューに属するRefPicListX中のピクチャの参照インデックスに設定される。代替的に、ビデオエンコーダ20は、RefPicListXと関連付けられる参照インデックスは−1に設定されるに設定することができる。ビデオエンコーダ20は、値4、8、16、32、64、−4、−8、−16、−32、−64のいずれかにNを設定することができる。
III−D.ビデオエンコーダ20は、シフトされたIPMVCを生成するために使用されるシフト値M1およびM2は、同じであるか、または同じではないことがあるを、使用することができる。
1)ビデオエンコーダ20は、値4、8、16、32、64、−4、−8、−16、−32、−64のいずれかにM1およびM2を設定することができる。
2)1つの代替形態では、M1は(((幅/2)×4)+4)に等しくてよく、M2は(((高さ/2)×4)+4)に等しくてよく、このとき現在のPUのサイズは幅×高さである。
IV.ビデオエンコーダ20は、IPMVCとIDMVCとを含む追加の統合候補の各々に対して制約された刈り込みを適用することができる。
1)一例では、ビデオエンコーダ20は、MVI候補と比較することによって、IPMVCだけを刈り込むことができる。
2)一例では、ビデオエンコーダ20は、A1および/またはB1から導出される空間的統合候補と比較することによって、IDMVCだけを刈り込むことができる。
3)一例では、MVIによってIPMVCを刈り込むことに加えて、ビデオエンコーダ20はまた、IPMVCとMVIの両方によって空間的候補A1とB1とを刈り込むことができる。
【0195】
[0232]例示的な実装形態
[0233]以下のセクションでは、提案された方法の1つの例示的な方法の実装形態(たとえば、ビデオエンコーダ20および/またはその様々なコンポーネントによって実装され得るような)は、統合候補リストに対する追加の候補を生成するために生成される。
【0196】
[0234]実施例#1
[0235]ビデオエンコーダ20は、各CUに対して単一の相違ベクトル(DV)を導出することができ、単一のDVがCU中のすべてのPUに対して適用される。
【0197】
[0236]ビデオエンコーダ20は、可能であれば、位置{(x−1,y−1)、(x−1,y+2N−1)および(x+2N−1,y−1)}にある隣接する再構築された深度サンプルの平均深度値から相違ベクトルを導出することができる。可能ではない場合、ビデオエンコーダ20は、相違ベクトルを0ベクトルに設定することができる。
【0198】
[0237]ビデオエンコーダ20は、可能であれば、MVI候補のすぐ後(直後)に、および空間的候補A1のすぐ前(直前)に、IPMVC候補を追加することができる。
【0199】
[0238]ビデオエンコーダ20は、相違ベクトルDV=(mvX,0)を((mvX+2)>>2,0)として相違動きベクトルへと変換することによって、IDMVCを生成することができる。
【0200】
[0239]ビデオエンコーダ20は、IDMVC候補が空間的候補B1のすぐ隣に(たとえば隣接して)挿入されるを、挿入することができる。
【0201】
[0240]追加の候補を伴う深度ビューのための統合候補リスト構築
[0241]ビデオエンコーダ20は、追加の候補IPMVCとIDMVCとを統合候補リストに挿入することができる。追加の候補IPMVCおよびIDMVCを挿入するステップ(たとえば、ビデオエンコーダ20および/またはその様々なコンポーネントによって実施され得るような)が、以下で説明される。
1.MVI挿入
ビデオエンコーダ20は、上で説明された手順によってMVIを導出することができる。MVIが利用可能である場合、ビデオエンコーダ20はMVIを統合リストに挿入することができる。
2.IPMVC挿入
ビデオエンコーダ20は、上の中黒II(段落[0231]における)で説明された手順によって、IPMVCを導出することができる。IPMVCが利用可能であり、MVI候補とは異なる場合、ビデオエンコーダ20は、IPMVCを統合候補リストに挿入することができ、それ以外の場合、IPMVCはリストに挿入されない。
3.3D−HEVCにおける空間的統合候補の導出プロセスおよびIDMVC挿入
ビデオエンコーダ20は、空間的に隣接するPUの動き情報を、以下の順序、すなわち、A1、B1、B0、A0、またはB2で確認することができる。ビデオエンコーダ20は、次の手順に従って、制約された刈り込みを実行することができる。
− A1およびMVIが同じ動きベクトルと同じ参照インデックスとを有する場合、ビデオエンコーダ20はA1を候補リストに挿入しなくてよい。
− B1およびA1/MVIが同じ動きベクトルと同じ参照インデックスとを有する場合、ビデオエンコーダ20はB1を候補リストに挿入しなくてよい。
− ビデオエンコーダ20は、上の中黒II(段落[0231]における)で説明された手順によって、IDMVCを導出することができる。IDMVCが利用可能であり、A1およびB1から導出された候補と異なる場合、ビデオエンコーダ20はIDMVCを候補リストに挿入することができる。それ以外の場合、ビデオエンコーダ20はIDMVCをリストに挿入しなくてよい。
− B0が利用可能である場合、ビデオエンコーダ20はB0を候補リストに追加することができる。
− A0が利用可能である場合、ビデオエンコーダ20はA0を候補リストに追加することができる。
− B2が利用可能である場合、ビデオエンコーダ20はB2を候補リストに追加することができる。
4.時間的統合候補のための導出プロセス
同じ位置にあるPUの動き情報が利用される、HEVCにおける時間的統合候補導出プロセスと同様のものが利用される。しかしながら、ビデオエンコーダ20は、ターゲット参照ピクチャインデックスを0に固定する代わりに、上の「3D−HEVCにおけるテクスチャコーディングのための統合候補リスト構築」において説明されたように、時間的統合候補のターゲット参照ピクチャインデックスを変更することができる。
5.3D−HEVCにおける組み合わされた双予測統合候補のための導出プロセス
上記の2つのステップから導出された候補の総数が、候補の最大の数未満である場合、ビデオエンコーダ20は、l0CandIdxおよびl1CandIdxの仕様を除いて、HEVCにおいて定義されたものと同じプロセスを実行することができる。combIdx、l0CandIdx、およびl1CandIdxの間の関係は、本開示の表1において定義される。
6.0動きベクトル統合候補のための導出プロセス
− ビデオエンコーダ20は、HEVCにおいて定義されているものと同じ手順を実行することができる。
代替的に、さらに、ビデオエンコーダ20は、ステップ#4(「時間的統合候補のための導出プロセス」)を呼び出すすぐ前に、追加される(新たな)ステップを実行することができる。言い換えると、ビデオエンコーダ20は、上で説明されたステップ#3(「3D−HEVCにおける空間的統合候補の導出プロセスおよびIDMVC挿入」)を実行した後に、追加されたステップを実行することができる。ビデオエンコーダ20によって実行される新たなステップは、次のように説明される。
・DVまたは空間的に隣接するブロックからのシフトされた候補の導出プロセス
− まず、ビデオエンコーダ20は、シフティングベクトル(M1,M2)を伴うDVに等しい入力相違ベクトルを使用して、追加のIPMVCを生成することができる。
− 追加のIPMVCが利用可能であり、IPMVC(上のステップ#2(「IPMVC挿入」)を使用して導出される)とは異なる場合、ビデオエンコーダ20は、追加のIPMVCを統合候補リストに追加することができる。
− そうではなく、追加のIPMVCが利用不可能である場合、ビデオエンコーダ20は次のことを適用することができる。
・ビデオエンコーダ20はまず、空間的な近隣からの候補を確認することができ、ビデオエンコーダ20は、相違動きベクトルを含む確認された候補の最初の1つを特定することができる。
・そのような候補が利用可能である場合、ビデオエンコーダ20は、候補の他の部分(時間的動きベクトルを場合によっては含む)を変更しないままに保つことができるが、相違動きベクトルの水平成分をLだけシフトすることができる。ビデオエンコーダ20は、シフトされた候補を統合候補リストに追加することができる。それ以外の場合、ビデオエンコーダは、DVに等しい入力相違ベクトルを伴う相違動きベクトル候補へと新たな候補を設定することができ、水平成分はNだけシフトされる。ビデオエンコーダ20は次いで、シフトされた相違ベクトルを整数精度へと丸め、丸められたシフトされた相違ベクトルを統合候補リストに追加することができる。
一例では、ビデオエンコーダ20は、M1およびM2を、現在のPUの幅および高さにそれぞれ設定することができる。
一例では、ビデオエンコーダ20は、Lを1、−1、4、または−4に設定することができ、Nは1、−1、4、または−4に設定される。
【0202】
[0242]実施例#2
[0243]ビデオエンコーダ20は、各CUに対して単一の相違ベクトル(DV)を導出することができ、導出されたDVをCU中のすべてのPUに対して適用することができる。ビデオエンコーダ20は、単一の深度値から相違ベクトルを導出することができ、ビデオエンコーダ20は、重み(5,5,6)を伴う3つの隣接する再構築された深度サンプルの加重平均を使用してその単一の深度値を計算することができる。より具体的には、ビデオエンコーダは、単一の深度値を次のように計算することができる。
【数3】
【0203】
[0244]ここで、(xC,yC)は、サイズ2N×2Nの現在のCUの左上の角を表す。ビデオエンコーダ20は、可能であれば、計算された深度値(Depth)を相違ベクトルDVに変換することができる。可能ではない場合、ビデオエンコーダ20は、相違ベクトルDVを0ベクトル(0,0)に設定することができる。
【0204】
[0245]ビデオエンコーダ20は、IPMVC候補を導出するために、導出された相違ベクトルを使用することができる。IPMVCが利用可能である場合、ビデオエンコーダ20は、統合リストの中で、MVI候補のすぐ後に、および、空間的候補A1のすぐ前に、IPMVCを追加することができる。ビデオエンコーダ20は、相違ベクトルDV=(mvX,0)を((mvX+2)>>2,0)として相違動きベクトルへと変換することによって、IDMVCを生成することができる。
【0205】
[0246]ビデオエンコーダ20は、IDMVC候補を、空間的候補B1のすぐ隣に挿入することができる。例#2によれば、統合候補リスト構築プロセスは、例#1に関して説明されたものと同じであり、追加の挿入された候補は下線によって区別される。
【0206】
[0247]図2のビデオエンコーダ20は、本開示で説明される様々な方法を実行するように構成されたビデオエンコーダの例を表す。本明細書で説明される様々な例によれば、ビデオエンコーダ20は、ビデオデータをコーディングする方法を実行するように構成され、または別様に動作可能であってよく、この方法は、従属深度ビュー中のビデオデータのブロックに隣接して配置される1つまたは複数の隣接するピクセルに基づいて、従属深度ビューに含まれるビデオデータのブロックと関連付けられる深度値を決定することと、ビデオデータのブロックと関連付けられる決定された深度値に少なくとも一部基づいて、ビデオデータのブロックと関連付けられる相違ベクトルを生成することとを含む。方法はさらに、相違ベクトルに基づいて、ビュー間相違動きベクトル候補(IDMVC)を生成することと、ベースビュー中のビデオデータの対応するブロックに基づいて、ビデオデータのブロックと関連付けられるビュー間予測動きベクトル候補(IPMVC)を生成することと、ビデオデータのブロックと関連付けられる統合候補リストにIDMVCまたはIPMVCのいずれかを追加すべきかどうかを決定することとを含み得る。様々な例において、IDMVCまたはIPMVCのいずれかを統合候補リストに追加すべきかどうかを決定することは、統合候補リストにIDMVCとIPMVCの一方を追加すべきか、両方を追加すべきか、またはいずれも追加すべきではないかを決定することを含み得る。いくつかの例では、深度値を決定することは、1つまたは複数の隣接するピクセルと関連付けられる値の加重平均を計算することを含み得る。いくつかの例では、1つまたは複数の隣接するピクセルは、ビデオデータのブロックに対して左上のピクセルと、右上のピクセルと、右下のピクセルとを含む。いくつかの例では、加重平均を計算することは、複数の重み付けられた値を取得するために、5、6、および5という重みを、左上のピクセル、右上のピクセル、および右下のピクセルにそれぞれ適用することを備える。
【0207】
[0248]いくつかの例では、加重平均を計算することはさらに、複数の重み付けられた値に基づいて合計を取得することと、オフセット値および合計に基づいてオフセットの合計を取得することとを含む。いくつかの例によれば、加重平均を計算することはさらに、所定の値によってオフセットの合計を除算することを含む。1つのそのような例では、オフセット値は8という値を備え、所定の値は16という値を備える。いくつかの例によれば、深度値を決定することは、1つまたは複数の隣接するピクセルと関連付けられる平均値、メジアン値、またはモード値の少なくとも1つを計算することを備える。いくつかの例によれば、ビデオデータのブロックはコーディングユニット(CU)であり、生成された相違ベクトルは、CUに含まれるすべての予測ユニット(PU)に適用される。いくつかの例では、IPMVCを生成することは、ベースビュー中のビデオデータの対応するブロックからIPMVCを導出することを備える。
【0208】
[0249]様々な例によれば、方法はさらに、シフトされた相違ベクトルを形成するために相違ベクトルを空間的にシフトすることと、ベースビュー中のビデオデータの対応するブロックを位置特定するためにシフトされた相違ベクトルを使用することとを含む。いくつかのそのような例では、方法はさらに、シフトされたIPMVCがベースビュー中のビデオデータの位置特定された対応するブロックから利用可能かどうかを決定することと、シフトされたIPMVCが利用可能であると決定したことに基づいて、シフトされたIPMVCを統合リストに追加すべきかどうかを決定することとを含む。いくつかの例では、現在のブロックの1つまたは複数の空間的に隣接するブロックの各々は、それぞれの参照ピクチャリスト0およびそれぞれの参照ピクチャリスト1と関連付けられる。いくつかのそのような例では、方法はさらに、シフトされたIPMVCがベースビューから利用可能ではないと決定することと、空間的に隣接するブロックと関連付けられる少なくとも1つのそれぞれの参照ピクチャリスト0が相違動きベクトルを含むかどうかを決定することと、空間的に隣接するブロックと関連付けられる少なくとも1つのそれぞれの参照ピクチャリスト0が相違動きベクトルを含むと決定したことに基づいて、相違シフトされた動きベクトル(DSMV)候補を形成するためにそれぞれの参照ピクチャリスト0に含まれる相違動きベクトルの水平成分をシフトすることと、DSMV候補を統合リストに追加することとを含む。
【0209】
[0250]いくつかの例では、方法はさらに、それぞれの参照ピクチャリスト0のいずれもが相違動きベクトルを含まないことを決定することと、DSMV候補を形成するためにオフセット値を相違ベクトルに適用することと、DSMV候補を統合リストに適用することとを含む。いくつかの例によれば、深度値を決定することは、1つまたは複数の隣接するピクセルが1つだけの利用可能な隣接するピクセルを含むと決定することと、ビデオデータのブロックの深度値を形成するために1つの利用可能な隣接するピクセルの深度値を継承することとを含む。いくつかの例では、方法はさらに、1つまたは複数の隣接するピクセルのいずれもが利用可能ではないと決定することを含み、相違ベクトルを生成することは、相違ベクトルを0ベクトルに設定することと、ビデオデータのブロックと関連付けられる深度値をデフォルトの深度値に設定することとの少なくとも1つを備える。
【0210】
[0251]本開示の様々な態様によれば、ビデオエンコーダ20はビデオデータをコーディングする方法を実行することができ、この方法は、ビュー間予測動きベクトル候補(IPMVC)を動きベクトル継承(MVI)候補と比較することを含み、IPMVCとMVI候補の各々は従属深度ビュー中のビデオデータのブロックと関連付けられ、IPMVCはベース深度ビュー中のビデオデータの対応するブロックから生成される。方法はさらに、IPMVCがMVI候補と異なることに基づいてIPMVCを統合候補リストに追加すること、または、IPMVCがMVI候補と同一であることに基づいて統合候補リストからIPMVCを除外することの1つを実行することを含み得る。いくつかの例では、IPMVCを統合リストに追加することは、MVI候補が統合候補リストへの追加に利用可能ではないこと基づいて、統合候補リスト内の最初の位置においてIPMVCを挿入すること、または、MVI候補が統合候補リストへの追加に利用可能であること基づいて、統合候補リスト内のMVI候補の位置に後続する統合候補リスト内の位置においてIPMVCを挿入することの1つを実行することを含む。様々な例において、最初の位置は0というインデックス値と関連付けられる。いくつかの例によれば、IPMVCをMVI候補と比較することは、IPMVCと関連付けられる動き情報をMVI候補と関連付けられる対応する動き情報と比較することと、IPMVCと関連付けられる少なくとも1つの参照インデックスをMVI候補と関連付けられる少なくとも1つの対応する参照インデックスと比較することとを含む。
【0211】
[0252]いくつかの例では、方法はさらに、ビュー間相違動きベクトル候補(IDMVC)を、統合候補リストと関連付けられる第1の空間的候補および統合候補リストと関連付けられる第2の空間的候補の利用可能な1つまたは複数と比較することを含み、IDMVCの各々、第1の空間的候補、および第2の空間的候補は、従属深度ビュー中のビデオデータのブロックと関連付けられ、IDMVCは、ビデオデータのブロックと関連付けられる相違ベクトルから生成される。いくつかの例では、方法はさらに、IDMVCが第1の空間的候補および第2の空間的候補の利用可能な1つまたは複数の各々とは異なることに基づいて、IDMVCを統合候補リストに追加すること、または、IDMVCが第1の空間的候補または第2の空間的候補の少なくとも1つと同一であることに基づいて、IDMVCを統合候補リストから除外することの1つを実行することを含む。
【0212】
[0253]いくつかの例では、IDMVCを統合候補リストに追加することは、統合候補リスト内の次の利用可能な位置にIDMVCを挿入することを含む。いくつかの例によれば、統合候補リスト内の次の利用可能な位置にIDMVCを挿入することは、第1の空間的候補の少なくとも1つの位置または第2の空間的候補の位置に後続する位置にIDMVCを挿入することを含む。
【0213】
[0254]様々な例によれば、方法はさらに、シフトされたIPMVCが利用可能であると決定することを含み、シフトされたIPMVCは従属深度ビュー中のビデオデータのブロックと関連付けられ、シフトされたIPMVCはベース深度ビュー中のビデオデータの対応するブロックから生成される。いくつかのそのような例では、方法はさらに、シフトされたIPMVCをIPMVCと比較することを含む。いくつかの例では、方法はさらに、シフトされたIPMVCがIPMVCと異なり統合候補リストが6個未満の候補を含むことに基づいて、シフトされたIPMVCを統合候補リストに追加すること、または、シフトされたIPMVCがIPMVCと同一であることに基づいて、シフトされたIPMVCを統合候補リストから除外することの1つを実行することを含む。
【0214】
[0255]いくつかの例では、方法はさらに、相違シフトされた動きベクトル(DSMV)候補が利用可能であると決定することを含み、DSMV候補は従属深度ビュー中のビデオデータのブロックと関連付けられ、DSMV候補は従属深度ビュー中のビデオデータのブロックと関連付けられる1つまたは複数の空間的に隣接するブロックを使用して生成される。いくつかのそのような例によれば、方法はさらに、統合候補リストが6個未満の候補を含むことに基づいて、DSMV候補を統合候補リストに追加することを含む。いくつかの例では、DSMV候補を統合候補リストに追加することは、1)統合候補リストに含まれる空間的候補の位置に後続する、および2)統合候補リストに含まれる時間的候補の位置に先行する位置に、DSMV候補を挿入することを含む。
【0215】
[0256]いくつかの例によれば、DSMV候補が利用可能であると決定することは、シフトされたIPMVCが利用可能ではないと決定したことに応答し、シフトされたIPMVCは従属深度ビュー中のビデオデータのブロックと関連付けられ、シフトされたIPMVCはビデオデータのブロックのベースビューから生成される。いくつかの例では、DSMV候補は、1つまたは複数の空間的に隣接するサンプルの少なくとも1つの空間的に隣接するサンプルと関連付けられる参照ピクチャリスト0(RefPicList0)から選択される相違動きベクトル(DMV)を含む。いくつかの例によれば、DSMV候補は、従属深度ビュー中のビデオデータのブロックと関連付けられる相違ベクトルをシフトすることによって生成され、相違ベクトルは、従属深度ビュー中のビデオデータのブロックと関連付けられる1つまたは複数の空間的に隣接するブロックと関連付けられる1つまたは複数の深度値から生成される。
【0216】
[0257]図3は、ビデオコーディングにおける深度指向性のビュー間動きベクトル予測のための技法を実施する、または別様に利用し得る、ビデオデコーダ30の例を示すブロック図である。図3の例では、ビデオデコーダ30は、エントロピー復号ユニット70と、動き補償ユニット72と、イントラ予測ユニット74と、逆量子化ユニット76と、逆変換ユニット78と、参照フレームメモリ82と、加算器80とを含む。ビデオデコーダ30は、いくつかの例では、ビデオエンコーダ20(図2)に関して説明された符号化パスとは全般に逆の復号パスを実行することができる。動き補償ユニット72は、エントロピー復号ユニット70から受信された動きベクトルに基づいて予測データを生成することができるが、イントラ予測ユニット74は、エントロピー復号ユニット70から受信されたイントラ予測モードインジケータに基づいて予測データを生成することができる。
【0217】
[0258]復号プロセス中に、ビデオデコーダ30は、符号化されたビデオスライスのビデオブロックと関連付けられるシンタックス要素とを表現する符号化されたビデオビットストリームを、ビデオエンコーダ20から受信する。ビデオデコーダ30のエントロピー復号ユニット70は、量子化された係数と、動きベクトルまたはイントラ予測モードインジケータと、他のシンタックス要素とを生成するために、ビットストリームをエントロピー復号する。エントロピー復号ユニット70は、動きベクトルと他の予測シンタックス要素とを動き補償ユニット72に転送する。ビデオデコーダ30は、ビデオスライスレベルおよび/またはビデオブロックレベルでシンタックス要素を受信することができる。
【0218】
[0259]ビデオスライスがイントラコーディングされた(I)スライスとしてコーディングされるとき、イントラ予測ユニット74は、シグナリングされたイントラ予測モードと、現在のフレームまたはピクチャの以前に復号されたブロックからのデータとに基づいて、現在のビデオスライスのビデオブロックのための予測データを生成することができる。ビデオフレームがインターコーディングされた(すなわち、B、P、またはGPB)スライスとしてコーディングされるとき、動き補償ユニット72は、エントロピー復号ユニット70から受信された動きベクトルと他のシンタックス要素とに基づいて、現在のビデオスライスのビデオブロックのための予測ブロックを生成する。予測ブロックは、参照ピクチャリストの1つの中の参照ピクチャの1つから生成され得る。ビデオデコーダ30は、参照フレームメモリ82に記憶された参照ピクチャに基づいて、デフォルトの構築技法を使用して、参照フレームリスト、すなわち、リスト0とリスト1とを構築することができる。動き補償ユニット72は、動きベクトルと他のシンタックス要素とを解析することによって現在のビデオスライスのビデオブロックのための予測情報を決定し、その予測情報を使用して、復号されている現在のビデオブロックの予測ブロックを生成する。たとえば、動き補償ユニット72は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(たとえば、イントラまたはインター予測)と、インター予測スライスタイプ(たとえば、Bスライス、Pスライス、またはGPBスライス)と、スライスの参照ピクチャリストの1つまたは複数のための構築情報と、スライスの各々のインター符号化されたビデオブロックのための動きベクトルと、スライスの各々のインターコーディングされたビデオブロックのためのインター予測ステータスと、現在のビデオスライス中のビデオブロックを復号するための他の情報とを決定するために、受信されたシンタックス要素のいくつかを使用する。
【0219】
[0260]動き補償ユニット72はまた、補間フィルタに基づいて、補間を実行することができる。動き補償ユニット72は、参照ブロックの整数未満のピクセルのための補間された値を計算するために、ビデオブロックの符号化中にビデオエンコーダ20によって使用されるような補間フィルタを使用することができる。この場合、動き補償ユニット72は、受信されたシンタックス要素からビデオエンコーダ20によって使用される補間フィルタを決定し、その補間フィルタを使用して予測ブロックを生成することができる。
【0220】
[0261]逆量子化ユニット76は、ビットストリーム中で与えられ、エントロピー復号ユニット70によって復号された、量子化された変換係数を逆量子化(inverse quantize)、すなわち、逆量子化(de-quantize)する。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するための、ビデオスライス中のビデオブロックに対してビデオデコーダ30によって計算される量子化パラメータQPYの使用を含み得る。
【0221】
[0262]逆変換ユニット78は、ピクセル領域において残差ブロックを生成するために、逆変換、たとえば逆DCT、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用する。
【0222】
[0263]動き補償ユニット72が、動きベクトルおよび他のシンタックス要素に基づいて現在のビデオブロックのための予測ブロックを生成した後、ビデオデコーダ30は、逆変換ユニット78からの残差ブロックを動き補償ユニット72によって生成された対応する予測ブロックと加算することによって、復号されたビデオブロックを形成する。加算器80は、この加算演算を実行する1つまたは複数のコンポーネントを表す。望まれる場合、ブロッキネスアーティファクトを除去するために、復号されたブロックをフィルタリングするためのデブロッキングフィルタが適用されることもある。ピクセル遷移を平滑化するために、または別様にビデオ品質を改善するために、他のループフィルタも(コーディングループ中またはコーディングループ後のいずれかで)使用され得る。所与のフレームまたはピクチャ中の復号されたビデオブロックは、次いで、参照ピクチャメモリ82に記憶され、この参照ピクチャメモリ82は後続の動き補償のために使用される参照ピクチャを記憶する。参照フレームメモリ82は、図1のディスプレイデバイス32のようなディスプレイデバイス上で後に提示するための復号されたビデオも記憶する。
【0223】
[0264]様々な例において、ビデオデコーダ30またはビデオエンコーダ20(および/またはこれらの様々なコンポーネント)の1つまたは両方は、ビデオデータをコーディングするための装置を表し、含み、その装置であり、またはその一部であってよく、この装置は、従属深度ビュー中のビデオデータのブロックに隣接して配置される1つまたは複数の隣接するピクセルに基づいて、従属深度ビューに含まれるビデオデータのブロックと関連付けられる深度値を決定するための手段と、ビデオデータのブロックと関連付けられる決定された深度値に少なくとも一部基づいて、ビデオデータのブロックと関連付けられる相違ベクトルを生成するための手段と、ビュー間相違動きベクトル候補(IDMVC)を生成するために相違ベクトルを使用するための手段と、ベースビュー中のビデオデータの対応するブロックに基づいて、ビデオデータのブロックと関連付けられるビュー間予測動きベクトル候補(IPMVC)を生成するための手段と、ビデオデータのブロックと関連付けられる統合候補リストにIDMVCまたはIPMVCのいずれかを追加すべきかどうかを決定するための手段とを含む。
【0224】
[0265]様々な例において、ビデオデコーダ30またはビデオエンコーダ20(および/またはこれらの様々なコンポーネント)の1つまたは両方は、実行されると、ビデオコーディングデバイスの1つまたは複数のプロセッサに、従属深度ビュー中のビデオデータのブロックに隣接して配置される1つまたは複数の隣接するピクセルに基づいて、従属深度ビューに含まれるビデオデータのブロックと関連付けられる深度値を決定させ、ビデオデータのブロックと関連付けられる決定された深度値に少なくとも一部基づいて、ビデオデータのブロックと関連付けられる相違ベクトルを生成させ、ビュー間相違動きベクトル候補(IDMVC)を生成するために相違ベクトルを使用させ、ベースビュー中のビデオデータの対応するブロックに基づいて、ビデオデータのブロックと関連付けられるビュー間予測動きベクトル候補(IPMVC)を生成させ、ビデオデータのブロックと関連付けられる統合候補リストにIDMVCまたはIPMVCのいずれかを追加すべきかどうかを決定させる命令によって符号化された、コンピュータ可読記憶媒体を表し、含み、そのコンピュータ可読記憶媒体であり、またはその一部であり得る。
【0225】
[0266]様々な例において、ビデオデコーダ30またはビデオエンコーダ20(および/またはこれらの様々なコンポーネント)の1つまたは両方は、ビデオデータをコーディングするための装置を表し、含み、その装置であり、またはその一部であってよく、この装置は、ビュー間予測動きベクトル候補(IPMVC)を動きベクトル継承(MVI)候補と比較するための手段を含み、IPMVCとMVI候補の各々は従属深度ビュー中のビデオデータのブロックと関連付けられ、IPMVCはベース深度ビュー中のビデオデータの対応するブロックから生成される。装置はさらに、IPMVCがMVI候補と異なることに基づいてIPMVCを統合候補リストに追加すること、または、IPMVCがMVI候補と同一であることに基づいて統合候補リストからIPMVCを除外することの1つを実行するための手段を含み得る。
【0226】
[0267]様々な例において、ビデオデコーダ30またはビデオエンコーダ20(および/またはこれらの様々なコンポーネント)の1つまたは両方は、実行されると、ビデオコーディングデバイスの1つまたは複数のプロセッサに、ビュー間予測動きベクトル候補(IPMVC)を動きベクトル継承(MVI)候補と比較させる命令によって符号化された、コンピュータ可読記憶媒体を表し、含み、そのコンピュータ可読記憶媒体であり、またはその一部であってよく、IPMVCとMVI候補の各々は従属深度ビュー中のビデオデータのブロックと関連付けられ、IPMVCはベース深度ビュー中のビデオデータの対応するブロックから生成される。命令はさらに、実行されると、ビデオコーディングデバイスの1つまたは複数のプロセッサに、IPMVCがMVI候補と異なることに基づいてIPMVCを統合候補リストに追加すること、または、IPMVCがMVI候補と同一であることに基づいて統合候補リストからIPMVCを除外することの1つを実行させ得る。
【0227】
[0268]図4は、例示的なマルチビュー復号順序を示す概念図である。マルチビュー復号順序はビットストリームの順序であり得る。図4の例では、各正方形がビュー成分に対応する。正方形の列は、アクセスユニットに対応する。各アクセスユニットは、時間インスタンスのすべてのビューのコーディングされたピクチャを含むように定義され得る。正方形の行は、ビューに対応する。図4の例では、アクセスユニットがT0〜T11と標示され、ビューがS0〜S7と標示される。アクセスユニットの各ビュー成分は次のアクセスユニットの任意のビュー成分の前に復号されるので、図4の復号順序は時間優先コーディングと呼ばれ得る。アクセスユニットの復号順序は、出力または表示の順序と同一ではないことがある。
【0228】
[0269]マルチビューコーディングはビュー間予測をサポートすることができる。ビュー間予測は、H.264/AVC、HEVC、または他のビデオコーディング仕様において使用されるインター予測と同様であり、同じシンタックス要素を使用することができる。しかしながら、ビデオコーダが(マクロブロックまたはPUのような)現在のビデオユニットに対してビュー間予測を実行するとき、ビデオコーダは、参照ピクチャとして、現在のビデオユニットと同じアクセスユニット中にあるが異なるビュー中にあるピクチャを使用することができる。対照的に、従来のインター予測は、参照ピクチャとして異なるアクセスユニット中のピクチャのみを使用する。
【0229】
[0270]図5は、MVC、マルチビューHEVC、および3D−HEVC(マルチビュープラス深度)とともに使用され得る例示的なMVC予測パターンを示す概念図である。以下でのMVCへの言及は全般にMVCに当てはまり、H.264/MVCには限定されない。
【0230】
[0271]図5の例では、8個のビュー(S0〜S7)が示され、ビューごとに12個の時間的位置(T0〜T11)が示される。一般に、図5の各行はビューに対応し、各列は時間的位置を示す。ビューの各々は、他のビューに対する相対的なカメラ位置を示すために使用され得る、ビュー識別子(「view_id」)を使用して識別され得る。図5に示された例では、ビューIDは「S0」〜「S7」として示されているが、数字のビューIDが使用されることもある。加えて、時間的位置の各々は、ピクチャの表示順序を示すピクチャ順序カウント(POC)値を使用して識別され得る。図5に示された例では、POC値は「T0」〜「T11」として示されている。
【0231】
[0272]マルチビューコーディングされたビットストリームは、特定のデコーダによって復号可能である、いわゆるベースビューを有してよく、ステレオビューペアがサポートされ得るが、いくつかのマルチビュービットストリームは、3Dビデオ入力として3つ以上のビューをサポートすることができる。したがって、特定のデコーダを有するクライアントのレンダラは、複数のビューを伴う3Dビデオコンテンツを予想することができる。
【0232】
[0273]図5のピクチャは、対応するピクチャがイントラコーディングされる(すなわち、Iフレームである)か、または一方向に(すなわち、Pフレームとして)インターコーディングされるか、または複数の方向に(すなわち、Bフレームとして)インターコーディングされるかを指定する、文字を含む影付きブロックを使用して示される。一般に、予測は矢印によって示され、ここで矢印の終点のピクチャは、予測参照のために矢印の始点のオブジェクトを使用する。たとえば、時間的位置T0にあるビューS2のPフレームは、時間的位置T0にあるビューS0のIフレームから予測される。
【0233】
[0274]シングルビュービデオの符号化の場合と同様に、マルチビュービデオシーケンスのピクチャは、異なる時間的位置におけるピクチャに関して予測的に符号化され得る。たとえば、時間的位置T1におけるビューS0のbフレームは、時間的位置T0におけるビューS0のIフレームから指し示される矢印によって指し示され、bフレームがIフレームから予測されることを示す。しかしながら、加えて、マルチビュービデオの符号化のコンテキストにおいて、ピクチャはビュー間予測され得る。すなわち、ビュー成分は、参照のために他のビュー中のビュー成分を使用することができる。たとえば、別のビュー中のビュー成分がインター予測参照であるかのように、ビュー間予測が実現され得る。可能性のあるビュー間参照は、シーケンスパラメータセット(SPS)MVC拡張においてシグナリングされてよく、インター予測またはビュー間予測の参照の柔軟な順序付けを可能にする参照ピクチャリストの構築プロセスによって修正され得る。
【0234】
[0275]図5は、ビュー間予測の様々な例を提供する。図5の例では、ビューS1のピクチャは、ビューS1の様々な時間的位置にあるピクチャから予測されるものとして、および同じ時間的位置にあるビューS0およびビューS2のピクチャのうちのピクチャからビュー間予測されるものとして示されている。たとえば、時間的位置T1におけるビューS1のbフレームは、時間的位置T0およびT2におけるビューS1のBフレームの各々、ならびに時間的位置T1におけるビューS0およびビューS2のbフレームから予測される。
【0235】
[0276]図5の例では、大文字「B」および小文字「b」は、異なる符号化方法ではなく、ピクチャ間の異なる階層関係を示すことが意図される。一般に、大文字の「B」フレームは、小文字の「b」フレームよりも予測階層が比較的高い。図5はまた、異なるレベルの陰影(shading)を使用して予測階層の変化を示し、より陰影の量が大きい(すなわち、比較的暗い)ピクチャは、より陰影が少ない(すなわち、比較的明るい)ピクチャよりも予測階層が高い。たとえば、図5のすべてのIフレームは完全な陰影によって示されるが、Pフレームはいくぶん明るい陰影を有し、Bフレーム(および小文字のbフレーム)は、互いに対して様々なレベルの陰影を有するが、PフレームおよびIフレームの陰影よりも常に明るい。
【0236】
[0277]一般に、階層の比較的高いピクチャが、階層の比較的低いピクチャの復号中に参照ピクチャとして使用され得るように、予測階層の比較的高いピクチャは、階層の比較的低いピクチャを復号する前に復号されるべきであるという点で、予測階層はビュー順序インデックスに関係する。ビュー順序インデックスは、アクセスユニット中のビュー成分の復号順序を示すインデックスである。ビュー順序インデックスは、SPSのようなパラメータセット中で示唆され得る。
【0237】
[0278]このようにして、参照ピクチャとして使用されるピクチャは、その参照ピクチャを参照して符号化されたピクチャを復号する前に復号され得る。ビュー順序インデックスは、アクセスユニット中のビュー成分の復号順序を示すインデックスである。各々のビュー順序インデックスiに対して、対応するview_idがシグナリングされる。ビュー成分の復号は、ビュー順序インデックスの昇順に従う。すべてのビューが提示される場合、ビュー順序インデックスのセットは、0からビューの全数よりも1少ない数まで連続的に順序付けされたセットを備える。
【0238】
[0279]準拠するサブビットストリームを形成するために、ビットストリーム全体のサブセットが抽出され得る。たとえば、サーバによって提供されるサービス、1つもしくは複数のクライアントのデコーダの容量、サポート、および能力、ならびに/または、1つもしくは複数のクライアントの選好(preference)に基づいて、特定の適用例が必要とし得る多くの可能なサブビットストリームが存在する。たとえば、あるクライアントが3つのビューのみを必要とすることがあり、2つのシナリオがあり得る。一例では、あるクライアントは滑らかなビュー体験を必要とすることがあり、view_id値S0、S1、およびS2のビューを選好することがあり、一方、別のクライアントはビュースケーラビリティを必要とし、view_id値S0、S2、およびS4のビューを選好することがある。これらのサブビットストリームの両方が、独立したビットストリームとして復号され得るとともに、同時にサポートされ得ることに留意されたい。
【0239】
[0280]ビュー間予測に関して、同じアクセスユニット中の(すなわち、同じ時間インスタンスをもつ)ピクチャ間でビュー間予測が可能にされる。非ベースビューの1つの中のピクチャをコーディングするとき、ピクチャが異なるビュー中にあるが、同じ時間インスタンスを有する場合、ピクチャは参照ピクチャリストに追加され得る。ビュー間予測参照ピクチャは、任意のインター予測参照ピクチャと同様に、参照ピクチャリストの任意の位置に置かれ得る。
【0240】
[0281]したがって、マルチビュービデオコーディングのコンテキストでは、2種類の動きベクトルが存在する。動きベクトルの1つの種類は、時間的参照ピクチャを指す通常の動きベクトルである。通常の時間的動きベクトルに対応するインター予測のタイプは、動き補償された予測(MCP)と呼ばれ得る。ビュー間予測参照ピクチャが動き補償のために使用されるとき、対応する動きベクトルは「相違動きベクトル」と呼ばれる。言い換えると、相違動きベクトルは、異なるビュー中のピクチャ(すなわち、相違参照ピクチャまたはビュー間参照ピクチャ)を指す。相違動きベクトルに対応するインター予測のタイプは、「相違補償された予測」または「DCP」と呼ばれ得る。
【0241】
[0282]上で言及されたように、HEVCのマルチビュー拡張(すなわち、MV−HEVC)およびHEVCの3DV拡張(すなわち、3D−HEVC)が開発中である。MV−HEVCおよび3D−HEVCは、ビュー間動き予測とビュー間残差予測とを使用して、コーディング効率を改善することができる。ビュー間動き予測では、ビデオコーダは、現在のPUとは異なるビュー中のPUの動き情報に基づいて、現在のPUの動き情報を決定する(すなわち、予測する)ことができる。ビュー間残差予測では、ビデオコーダは、図5に示される予測構造を使用して、現在のCUとは異なるビュー中の残差データに基づいて、現在のCUの残差ブロックを決定することができる。
【0242】
[0283]ビュー間動き予測とビュー間残差予測とを可能にするために、ビデオコーダは、ブロック(たとえば、PU、CUなど)に対する相違ベクトルを決定することができる。一般に、相違ベクトルは、2つのビューの間の変位を推定するものとして使用される。ビデオエンコーダ20またはビデオデコーダ30のようなビデオコーダは、ブロックに対する相違ベクトルを使用して、ビュー間動き予測または残差予測のために別のビュー中の参照ブロック(本明細書では相違参照ブロックと呼ばれ得る)を位置特定することができ、またはビデオコーダは、ビュー間動き予測のために相違ベクトルを相違動きベクトルに変換することができる。
【0243】
[0284]図6は、時間的に隣接するブロックを示す概念図である。図6に示される時間的に隣接するブロックは、隣接するブロックベース相違ベクトル(NBDV)コーディングに従って使用され得る。加えて、図6に示される時間的に隣接するブロックは、ビデオエンコーダ20および/またはそのコンポーネントのようなビデオコーディングデバイスによって、本開示の深度指向性のビュー間動き予測技法の1つまたは複数を実施するために使用され得る。図6はCU100を示す。たとえば、CU100は、従属深度ビューに含まれ得る。
【0244】
[0285]図6に示されるように、CU100は、4×4のフォーマットに区分され、4つのPU全体を示す。幅106および高さ108は、CU100の単一のPUの幅および高さを示し、それぞれ、CU100の幅の半分および高さの半分を表す。たとえば、幅106および高さ108は、オフセット値M1とM2とを計算する際にビデオエンコーダ20によって使用される「幅/2」および「高さ/2」の値を表し得る。加えて、中心位置102は、ベースビューの中で表される同じ位置にある領域のような、CUの現在のPUの同じ位置にある領域の中心ブロックを表し得る。同様に、右下位置106は、ベースビューの中で表される同じ位置にある領域のような、CUの現在のPUの同じ位置にある領域の右下ブロックを表し得る。
【0245】
[0286]図7は、ビデオエンコーダ20および/またはビデオデコーダ30がそれによってベースビューから深度ブロックを位置特定し、BVSP予測のために位置特定された深度ブロックを使用することができる、例示的な3段階のプロセスを示す。双予測VSPによれば、RefPicList0およびRefPicList1の中の異なるビューからの複数のビュー間参照ピクチャがあるとき、ビデオエンコーダ20および/またはビデオエンコーダ30は、双予測VSPを適用することができる。すなわち、ビデオエンコーダ20は、本明細書で説明されるように、各参照リストから2つのVSP予測子を生成することができる。次いで、ビデオエンコーダ20は、最終VSP予測子を得るために、2つのVSP予測子を平均することができる。
【0246】
[0287]図8は、上で説明された、現在のブロックと、対応するブロックと、動き補償されたブロックとの関係を示す。言い換えると、図8は、ARPにおける、現在のブロックと、参照ブロックと、動き補償されたブロックとの例示的な関係を示す概念図である。図8の例では、ビデオコーダは現在、現在のピクチャ131中の現在のPU130をコーディングしている。現在のピクチャ131は、ビューV1および時間インスタンスT1と関連付けられる。
【0247】
[0288]さらに、図8の例では、ビデオコーダは、現在のPU130の相違ベクトルによって示される位置と関連付けられる参照ピクチャ133の実際のサンプルまたは補間されたサンプルを備える、参照ブロック132(すなわち、対応するブロック)を決定することができる。たとえば、参照ブロック132の左上の角は、現在のPU130の相違ベクトルによって示される位置であり得る。時間的相違参照ブロック145は、現在のPU130の予測ブロックと同じサイズを有し得る。
【0248】
[0289]図8の例では、現在のPU130は、第1の動きベクトル134と第2の動きベクトル136とを有する。動きベクトル134は、時間的参照ピクチャ138の中のある位置を示す。時間的参照ピクチャ138は、ビューV1(すなわち、現在のピクチャ131と同じビュー)および時間インスタンスT0と関連付けられる。動きベクトル136は、時間的参照ピクチャ140の中のある位置を示す。時間的参照ピクチャ140は、ビューV1および時間インスタンスT3と関連付けられる。
【0249】
[0290]上で説明されたARP方式によれば、ビデオコーダは、参照ピクチャ133と同じビューと関連付けられ時間的参照ピクチャ138と同じ時間インスタンスと関連付けられる参照ピクチャ(すなわち、参照ピクチャ142)を決定することができる。加えて、ビデオコーダは、動きベクトル134を参照ブロック132の左上の角の座標に加算して、時間的相違参照位置を導出することができる。ビデオコーダは、時間的相違参照ブロック143(すなわち、動き補償されたブロック)を決定することができる。時間的相違参照ブロック143中のサンプルは、動きベクトル134から導出された時間的相違参照位置と関連付けられる、参照ピクチャ142の実際のサンプルまたは補間されたサンプルであり得る。時間的相違参照ブロック143は、現在のPU130の予測ブロックと同じサイズを有し得る。
【0250】
[0291]同様に、ビデオコーダは、参照ピクチャ133と同じビューと関連付けられ時間的参照ピクチャ140と同じ時間インスタンスと関連付けられる参照ピクチャ(すなわち、参照ピクチャ144)を決定することができる。加えて、ビデオコーダは、動きベクトル136を参照ブロック132の左上の角の座標に加算して、時間的相違参照位置を導出することができる。ビデオコーダは次いで、時間的相違参照ブロック145(すなわち、動き補償されたブロック)を決定することができる。時間的相違参照ブロック145中のサンプルは、動きベクトル136から導出された時間的相違参照位置と関連付けられる、参照ピクチャ144の実際のサンプルまたは補間されたサンプルであり得る。時間的相違参照ブロック145は、現在のPU130の予測ブロックと同じサイズを有し得る。
【0251】
[0292]さらに、図8の例では、ビデオコーダは、時間的相違参照ブロック143および時間的相違参照ブロック145に基づいて、相違予測ブロックを決定することができる。ビデオコーダは次いで、残差予測子を決定することができる。残差予測子中の各サンプルは、参照ブロック132中のサンプルと、相違予測ブロック中の対応するサンプルとの差を示し得る。
【0252】
[0293]図9は、深度コーディングのための動きベクトル継承(MVI)候補の導出を示す概念図である。図9は、テクスチャピクチャ150と深度ピクチャ152とを示す。たとえば、テクスチャピクチャ150および深度ピクチャ152は、3D HEVCによれば、互いに対応し得る。加えて、図9は、深度ピクチャ152に含まれる現在のPU154を示す。示されるように、現在のPU154は、テクスチャブロック(または「対応するテクスチャブロック」)156に対応する。様々な例において、ビデオエンコーダ20は、現在のPU154および対応するテクスチャブロック156に基づいて、統合リストのMVI候補を導出することができる。
【0253】
[0294]図10は、サンプルPx,yを予測するために(たとえば、ビデオエンコーダ20および/またはビデオデコーダ30によって)使用され得る、参照サンプルRx,yを示す。
【0254】
[0295]図11は、マルチビュービデオコーディングの例示的な予測構造を示す概念図である。例として、ビデオコーダ(ビデオエンコーダ20またはビデオデコーダ30のような)は、時間T0におけるビューV1中のブロックPeを使用してビデオブロックを予測することによって、時間T8におけるビューV1中のブロックをコーディングすることができる。ビデオコーダは、Peから現在のブロックの元のピクセル値を減算し、これによって、現在のブロックの残差サンプルを取得することができる。
【0255】
[0296]加えて、ビデオコーダは、相違ベクトル104によって参照ビュー(ビューV0)における参照ブロックを位置特定することができる。参照ブロックIbの元のサンプル値と対応する予測されるサンプルPbとの差は、以下の式でrbによって示されるような、参照ブロックの残差サンプルと呼ばれる。いくつかの例では、ビデオコーダは、現在の残差からrbを減算し、得られた差の信号を変換コーディングするだけでよい。したがって、ビュー間残差予測が使用されるとき、動き補償ループは次の式で表され得る。
【数4】
ここで、現在のブロック
【数5】
の再構築は、逆量子化された係数reに、予測Peと量子化正規化された残差係数rbとを足したものに等しい。ビデオコーダは、rbを残差予測子として扱うことができる。したがって、動き補償と同様に、rbは現在の残差から減算されてよく、得られた差の信号のみが変換コーディングされる。
【0256】
[0297]ビデオコーダは、CUごとにビュー間残差予測の使用を示すために、フラグを条件的にシグナリングすることができる。たとえば、ビデオコーダは、残差参照領域によってカバーされる、または部分的にカバーされる、すべての変換ユニット(TU)を網羅する(traverse)ことができる。これらのTUのいずれかがインターコーディングされ、0ではないコーディングされたブロックフラグ(CBF)の値(ルーマCBFまたはクロマCBF)を含む場合、ビデオコーダは、関連する残差参照を利用可能なものとしてマークすることができ、ビデオコーダは、残差予測を適用することができる。この場合、ビデオコーダは、CUシンタックスの一部としてビュー間残差予測の使用を示す、フラグをシグナリングすることができる。このフラグが1に等しい場合、現在の残差信号は、補間された可能性のある参照残差信号を使用して予測され、差だけが、変換コーディングを使用して送信される。それ以外の場合、現在のブロックの残差は、HEVC変換コーディングを使用して従来通りにコーディングされる。
【0257】
[0298]2013年7月2日に出願された米国特許出願第13/933,588号は、スケーラブルビデオコーディングのための一般化された残差予測(GRP)を説明する。米国特許出願第13/933,588号はスケーラブルビデオコーディングに注目するが、米国特許出願第13/933,588号で説明されるGRP技法は、マルチビュービデオコーディング(たとえば、MV−HEVCおよび3D−HEVC)に適用可能であり得る。
【0258】
[0299]単予測のコンテキストでは、GRPの一般的な考え方は、次のように定式化され得る。
【数6】
【0259】
[0300]上の式において、Icは現在のレイヤ(またはビュー)の中の現在のフレームの再構築を示し、Pcは同じレイヤ(またはビュー)からの時間的予測を表し、rcはシグナリングされる残差を示し、rrは参照レイヤからの残差予測を示し、wは重み付け係数である。いくつかの例では、重み付け係数は、ビットストリームにおいてコーディングされること、または、以前にコーディングされた情報に基づいて導出されることが必要であり得る。GRPのためのこのフレームワークは、シングルループ復号とマルチループ復号の両方の場合に適用され得る。マルチループ復号は、再構築されアップサンプリングされたより低分解能の信号を使用した、ブロックの予測の制約されないバージョンを伴う。エンハンスメントレイヤ中の1つのブロックを復号するために、以前のレイヤ中の複数のブロックがアクセスされる必要がある。
【0260】
[0301]たとえば、ビデオデコーダ30がマルチループ復号を使用するとき、GRPはさらに、次のように定式化され得る。
【数7】
【0261】
[0302]上の式では、Prは参照レイヤ中の現在のピクチャに対する時間的予測を示し、Pcは同じレイヤ(またはビュー)からの時間的予測を表し、rcはシグナリングされた残差を示し、wは重み付け係数であり、Irは参照レイヤ中の現在のピクチャの完全な再構築を示す。上の式は、ビットストリーム中でシグナリングされ得る、または、以前にコーディングされた情報に基づいて導出され得る、重み付け係数を含む。いくつかの例では、ビデオエンコーダ20は、ビットストリーム中で、GRPにおいて使用される重み付けインデックスをCUごとにシグナリングすることができる。各重み付けインデックスは、0以上の1つの重み付け係数に対応し得る。現在のCUに対する重み付け係数が0に等しいとき、現在のCUの残差ブロックは、従来のHEVC変換コーディングを使用してコーディングされる。そうではなく、現在のCUに対する重み付け係数が0より大きいとき、現在の残差信号(すなわち、現在のCUの残差ブロック)は、重み付け係数によって乗算された参照残差信号を使用して予測されてよく、差だけが変換コーディングを使用して送信される。いくつかの例では、参照残差信号は補間される。
【0262】
[0303]図12は、ビデオコーディングデバイスがそれによって本明細書で説明された深度指向性のビュー間動き予測技法を実行することができる、例示的なプロセス200を示すフローチャートである。プロセス200は、議論を簡単にする目的のみで、本開示に従って種々のデバイスによって実行され得るが、プロセス200は、図1および図3のビデオデコーダ30に関して本明細書において説明される。加えて、ビデオデコーダ30に関して説明されるが、予測ユニット81のようなビデオデコーダ30の様々なコンポーネントは、プロセス200の1つまたは複数のステップを実行することができる。様々な例では、動きベクトル予測ユニット83は、プロセス200の1つまたは複数のステップを実行することができる。
【0263】
[0304]プロセス200は、ビデオデコーダ30(たとえば、予測ユニット81)が従属深度ビュー中の現在のビデオブロックに関する深度値を計算することで開始し得る(202)。例では、ビデオデコーダ30は、現在のブロックの隣接するピクセル(または「隣接するサンプル」)に基づいて深度値を計算することができる。たとえば、ビデオデコーダ30は、隣接するサンプルの個々の深度値の加重平均を計算することによって、深度値(または「再構築された深度値」)を計算することができる。いくつかの例では、ビデオデコーダ30は、左上の隣接するサンプル、右上の隣接するサンプル、および左下の隣接するサンプルの各々に対して、それぞれ、16分の5(5/16)、16分の6(6/16)、および16分の5(5/16)の重みを割り当てることができる。一例では、ビデオデコーダ30(たとえば、予測ユニット81)は、現在のブロックに関する再構築された深度値に到達するために、加重平均を計算しながらオフセット値を加算することができる。たとえば、ビデオエンコーダ20は、隣接するサンプルと関連付けられる深度値の各々を対応する重みの分子(たとえば、それぞれ5、6、および5)と乗算して、複数の積を得ることができる。次いで、ビデオエンコーダ20は積を合計し、オフセット値(8という値のような)を加算することができる。加えて、ビデオエンコーダ20は、得られた合計を16という値によって除算することができる。
【0264】
[0305]ビデオデコーダ30(たとえば、動きベクトル予測ユニット83のような予測ユニット81)は、再構築された深度値から現在のブロックに関する相違ベクトルを導出することができる(204)。たとえば、ビデオデコーダ30は、再構築された深度値を相違ベクトルに直接変換することができる。次いで、ビデオデコーダ30(たとえば、動きベクトル予測ユニット83のような予測ユニット81)は、現在のブロックのためのビュー間相違動きベクトル候補(IDMVC)とビュー間予測された動きベクトル候補(IPMVC)とを取得することができる(206)。より具体的には、ビデオデコーダ30は、現在のブロックのベース深度ビューからIDMVCとIPMVCとを取得することができる。IDMVCの場合、ビデオデコーダ30は相違ベクトルをIDMVCに変換することができる。IPMVCの場合、ビデオデコーダ30は、ベース深度ビュー中の同じ位置にあるブロックからすでにコーディングされている動き情報を導出することができ、またはいくつかの例ではコピーすることができる。次いで、ビデオデコーダ30(たとえば、動きベクトル予測ユニット83のような予測ユニット81)は、IDMVCとIPMVCの一方を含めるか、両方を含めるか、またはいずれも含めないかを決定したことに基づいて、統合リストを構築することができる(220)。
【0265】
[0306]ビデオデコーダ30(たとえば、動きベクトル予測ユニット83のような予測ユニット81)は、相違ベクトルを空間的にシフトすることができる(208)。図12に示されるように、いくつかの例では、ビデオデコーダ30は、IPMVCとIDMVCとを取得すること(206)と少なくとも部分的に並行して、相違ベクトルを空間的にシフトすることができる(208)。たとえば、ビデオデコーダ30は、水平に値M1だけ、および垂直に値M2だけ、相違ベクトルをシフトすることができる。オフセット値M1およびM2の計算は、図1に関して上で説明される。次いで、シフトされた相違ベクトルに基づいて、ビデオデコーダ30(たとえば、動きベクトル予測ユニット83のような予測ユニット81)は、対応するシフトされたIPMVCがベース深度ビューから利用可能かどうかを決定することができる(210)。シフトされたIPMVCが利用可能であるとビデオデコーダ30が決定する場合(210のはいの分岐)、ビデオデコーダ30は、ベース深度ビューからシフトされたIPMVCを取得することができる(212)。たとえば、ビデオデコーダ30は、現在のブロックと関連付けられるシフトされた相違ベクトルを使用して、ベース深度ビュー中のブロックを位置特定することができ、シフトされたIPMVCを導出するために、すでにコーディングされている位置特定されたブロックの動き情報を使用することができる。
【0266】
[0307]しかしながら、シフトされたIPMVCが利用可能ではないとビデオデコーダ30が決定する場合(210のいいえの分岐)、ビデオデコーダ30(たとえば、動きベクトル予測ユニット83のような予測ユニット81)は、相違シフトされた動きベクトル(DSMV)候補が隣接するブロックと関連付けられるRefPicList0から利用可能かどうかを決定することができる(214)。DSMV候補がRefPicList0から利用可能であるとビデオデコーダ30が決定する場合(214のはいの分岐)、ビデオデコーダは、RefPicList0から直接DSMV候補を取得することができる(216)。一方、DSMV候補がRefPicList0から利用可能ではないとビデオデコーダ30が決定する場合(214のいいえの分岐)、ビデオデコーダ30は、相違ベクトルをシフトすることによってDSMV候補を取得することができる(218)。たとえば、ビデオデコーダ30は、オフセット値を相違ベクトルに加算してDSMV候補を取得することができる。(212、216、または218の1つにおいて)シフトされたIPMVC候補とDSMV候補のいずれかを取得すると、ビデオデコーダ30は、深度指向性の動きベクトル候補と追加の動きベクトル候補とを使用して、統合リストを構築することができる(220)。
【0267】
[0308]プロセス200に関して説明されるように、ビデオデコーダ30は、本開示で説明される様々な方法を実行するように構成されるビデオデコーダの例を表す。本明細書で説明される様々な例によれば、ビデオデコーダ30は、ビデオデータをコーディングする方法を実行するように構成され、またはそうでなければそのように動作可能であってよく、この方法は、従属深度ビュー中のビデオデータのブロックに隣接して配置される1つまたは複数の隣接するピクセルに基づいて、従属深度ビューに含まれるビデオデータのブロックと関連付けられる深度値を決定することと、ビデオデータのブロックと関連付けられる決定された深度値に少なくとも一部基づいて、ビデオデータのブロックと関連付けられる相違ベクトルを生成することとを含む。方法はさらに、相違ベクトルに基づいて、ビュー間相違動きベクトル候補(IDMVC)を生成することと、ベースビュー中のビデオデータの対応するブロックに基づいて、ビデオデータのブロックと関連付けられるビュー間予測された動きベクトル候補(IPMVC)を生成することと、ビデオデータのブロックと関連付けられる統合候補リストにIDMVCまたはIPMVCのいずれかを追加すべきかどうかを決定することとを含み得る。様々な例において、IDMVCまたはIPMVCのいずれかを統合候補リストに追加すべきかどうかを決定することは、統合候補リストにIDMVCとIPMVCの一方を追加すべきか、両方を追加すべきか、またはいずれも追加すべきではないかを決定することを含み得る。いくつかの例では、深度値を決定することは、1つまたは複数の隣接するピクセルと関連付けられる値の加重平均を計算することを含み得る。いくつかの例では、1つまたは複数の隣接するピクセルは、ビデオデータのブロックに対して左上のピクセルと、右上のピクセルと、右下のピクセルとを含む。いくつかの例では、加重平均を計算することは、複数の重み付けられた値を取得するために、5、6、および5という重みを、左上のピクセル、右上のピクセル、および右下のピクセルにそれぞれ適用することを備える。
【0268】
[0309]いくつかの例では、加重平均を計算することはさらに、複数の重み付けられた値に基づいて合計を取得することと、オフセット値および合計に基づいてオフセットの合計を取得することとを含む。いくつかの例によれば、加重平均を計算することはさらに、所定の値によってオフセットの合計を除算することを含む。1つのそのような例では、オフセット値は8という値を備え、所定の値は16という値を備える。いくつかの例によれば、深度値を決定することは、1つまたは複数の隣接するピクセルと関連付けられる平均値、メジアン値、またはモード値の少なくとも1つを計算することを備える。いくつかの例によれば、ビデオデータのブロックはコーディングユニット(CU)であり、生成された相違ベクトルは、CUに含まれるすべての予測ユニット(PU)に適用される。いくつかの例では、IPMVCを生成することは、ベースビュー中のビデオデータの対応するブロックからIPMVCを導出することを備える。
【0269】
[0310]様々な例によれば、方法はさらに、シフトされた相違ベクトルを形成するために相違ベクトルを空間的にシフトすることと、ベースビュー中のビデオデータの対応するブロックを位置特定するためにシフトされた相違ベクトルを使用することとを含む。いくつかのそのような例では、方法はさらに、シフトされたIPMVCがベースビュー中のビデオデータの位置特定された対応するブロックから利用可能かどうかを決定することと、シフトされたIPMVCが利用可能であると決定したことに基づいて、シフトされたIPMVCを統合リストに追加すべきかどうかを決定することとを含む。いくつかの例では、現在のブロックの1つまたは複数の空間的に隣接するブロックの各々は、それぞれの参照ピクチャリスト0およびそれぞれの参照ピクチャリスト1と関連付けられる。いくつかのそのような例では、方法はさらに、シフトされたIPMVCがベースビューから利用可能ではないと決定することと、空間的に隣接するブロックと関連付けられる少なくとも1つのそれぞれの参照ピクチャリスト0が相違動きベクトルを含むかどうかを決定することと、空間的に隣接するブロックと関連付けられる少なくとも1つのそれぞれの参照ピクチャリスト0が相違動きベクトルを含むと決定したことに基づいて、相違シフトされた動きベクトル(DSMV)候補を形成するためにそれぞれの参照ピクチャリスト0に含まれる相違動きベクトルの水平成分をシフトすることと、DSMV候補を統合リストに追加することとを含む。
【0270】
[0311]いくつかの例では、方法はさらに、それぞれの参照ピクチャリスト0のいずれもが相違動きベクトルを含まないことを決定することと、DSMV候補を形成するためにオフセット値を相違ベクトルに適用することと、DSMV候補を統合リストに適用することとを含む。いくつかの例によれば、深度値を決定することは、1つまたは複数の隣接するピクセルが1つだけの利用可能な隣接するピクセルを含むと決定することと、ビデオデータのブロックの深度値を形成するために1つの利用可能な隣接するピクセルの深度値を継承することとを含む。いくつかの例では、方法はさらに、1つまたは複数の隣接するピクセルのいずれもが利用可能ではないと決定することを含み、相違ベクトルを生成することは、相違ベクトルを0ベクトルに設定することと、ビデオデータのブロックと関連付けられる深度値をデフォルトの深度値に設定することとの少なくとも1つを備える。
【0271】
[0312]図13は、本開示の態様による、ビデオコーディングデバイスがそれによって1つまたは複数の深度指向性のビュー間動きベクトル候補を使用して統合リスト構築を実施することができる、例示的なプロセス230を示すフローチャートである。プロセス230は、議論を簡単にする目的のみで、本開示に従って種々のデバイスによって実行され得るが、プロセス230は、図1および図3のビデオデコーダ30に関して本明細書において説明される。加えて、ビデオデコーダ30の様々なコンポーネントは、プロセス230の1つまたは複数のステップを実行できることが理解されるだろう。プロセス230の1つまたは複数の部分を実行し得るビデオデコーダ30のコンポーネントの例は、予測ユニット81(動きベクトル予測ユニット83のような)を含む。
【0272】
[0313]プロセス230は、ビデオデコーダ30(たとえば、動きベクトル予測ユニット83のような予測ユニット81)が統合リストの第1の位置において動きベクトル継承(MVI)候補を追加することで開始し得る(232)。次いで、ビデオデコーダ30は、IPMVC(図1図2、および図12に関して上で説明されるように導出される)がMVI候補と同じであるかどうかを決定することができる(234)。IPMVCはMVI候補と同じであるとビデオデコーダ30が決定する場合(234のはいの分岐)、ビデオデコーダ30は刈り込みによってIPMVCを除外することができる(236)。別の言い方をすると、ビデオデコーダ30(たとえば、動きベクトル予測ユニット83のような予測ユニット81)は、MVI候補に対してIPMVCを刈り込むことができる。
【0273】
[0314]しかしながら、IPMVCはMVI候補と異なるとビデオデコーダ30が決定する場合(234のいいえの分岐)、ビデオデコーダ30は統合リストの第2の位置においてIPMVCを追加することができる(238)。言い換えると、ビデオデコーダ30(たとえば、動きベクトル予測ユニット83のような予測ユニット81)は、MVI候補の直後にIPMVCを挿入することができる。加えて、ビデオデコーダ30が(236または238においてそれぞれ)IPMVCを刈り込んだかどうか、またはIPMVCを統合リストに追加したかどうかにかかわらず、ビデオデコーダ30は、A1およびB1によって示される2つの空間的動きベクトル候補の(1つまたは複数の)任意の利用可能な候補を統合リストに追加することができる。たとえば、ビデオデコーダ30は、MVI候補のすぐ後に来る(IPMVCが刈り込みで除外された場合)、またはIPMVCのすぐ後に来る(IPMVCが統合リストに追加された場合)、統合リストの2つの位置において、A1およびB1を追加することができる。
【0274】
[0315]加えて、ビデオデコーダ30は、IDMVC(図1図2、および図12に関して上で説明される)がA1またはB1のいずれかと同じであるかどうかを決定することができる(242)。IDMVCはA1またはB1の少なくとも1つと一致するとビデオデコーダ30が決定する場合(242のはいの分岐)、ビデオデコーダ30は刈り込みによってIDMVCを除外することができる(244)。しかしながら、IDMVCはA1またはB1の両方と異なるとビデオデコーダ30が決定する場合(242のいいえの分岐)、ビデオデコーダ30は、A1およびB1の利用可能な1つ(複数)の直後の位置において、IDMVCを統合リストに追加することができる(246)。次いで、ビデオエンコーダは、A0、B0、およびB2によって示される3つの空間的動きベクトル候補の(1つまたは複数の)任意の利用可能な候補を統合リストに追加することができる(247)。
【0275】
[0316]ビデオデコーダ30(たとえば、動きベクトル予測ユニット83のような予測ユニット81)は、シフトされたIPMVCが利用可能であるかどうかを決定することができる(248)。たとえば、ビデオデコーダは、図1図2、および図12に関して上で説明されたように、シフトされた相違ベクトルを使用することによって、シフトされたIPMVCが利用可能であるかどうかを決定することができる。シフトされたIPMVCが利用可能ではないとビデオデコーダ30が決定する場合(248のいいえの分岐)、ビデオデコーダ30は、相違シフトされた動きベクトル(DSMV)候補を統合リストに追加することができる(250)。たとえば、ビデオエンコーダは、A0、B0、およびB2の最後の利用可能な1つ(複数)の直後の位置において、DSMVを追加することができる。ビデオデコーダ30(たとえば、動きベクトル予測ユニット83のような予測ユニット81)は、図1図2、および図12に関して上で説明されたように、DSMV候補を導出することができる。
【0276】
[0317]しかしながら、シフトされたIPMVCが利用可能であるとビデオデコーダ30が決定する場合(248のはいの分岐)、ビデオデコーダ30は、シフトされたIPMVCが上で説明されたIPMVCと同じかどうかを決定することができる(252)。シフトされたIPMVCはIPMVCと異なるとビデオデコーダ30が決定する場合(252のいいえの分岐)、ビデオデコーダ30は統合リストにシフトされたIPMVCを追加することができる(254)。たとえば、ビデオエンコーダは、A0、B0、およびB2の最後の利用可能な1つ(複数)の直後の位置において、シフトされたIPMVCを追加することができる。一方、シフトされたIPMVCはIPMVCと同じであるとビデオデコーダ30が決定する場合(252のはいの分岐)、ビデオデコーダ30は刈り込みによってシフトされたIPMVCを除外することができる(256)。
【0277】
[0318]プロセス230に関して説明されるように、本開示の様々な態様によれば、ビデオデコーダ30はビデオデータをコーディングする方法を実行することができ、この方法は、ビュー間予測された動きベクトル候補(IPMVC)を動きベクトル継承(MVI)候補と比較することを含み、IPMVCとMVI候補が各々、従属深度ビュー中のビデオデータのブロックと関連付けられ、IPMVCはベース深度ビュー中のビデオデータの対応するブロックから生成される。方法はさらに、IPMVCがMVI候補と異なることに基づいてIPMVCを統合候補リストに追加すること、または、IPMVCがMVI候補と同一であることに基づいて統合候補リストからIPMVCを除外することの1つを実行することを含み得る。いくつかの例では、IPMVCを統合リストに追加することは、MVI候補が統合候補リストへの追加に利用可能ではないこと基づいて、統合候補リスト内の最初の位置においてIPMVCを挿入すること、または、MVI候補が統合候補リストへの追加に利用可能であること基づいて、統合候補リスト内のMVI候補の位置に後続する統合候補リスト内の位置においてIPMVCを挿入することの1つを実行することを含む。様々な例において、最初の位置は0というインデックス値と関連付けられる。いくつかの例によれば、IPMVCをMVI候補と比較することは、IPMVCと関連付けられる動き情報をMVI候補と関連付けられる対応する動き情報と比較することと、IPMVCと関連付けられる少なくとも1つの参照インデックスをMVI候補と関連付けられる少なくとも1つの対応する参照インデックスと比較することとを含む。
【0278】
[0319]いくつかの例では、方法はさらに、ビュー間相違動きベクトル候補(IDMVC)を、統合候補リストと関連付けられる第1の空間的候補および統合候補リストと関連付けられる第2の空間的候補の利用可能な1つまたは複数と比較することを含み、IDMVC、第1の空間的候補、および第2の空間的候補の各々は、従属深度ビュー中のビデオデータのブロックと関連付けられ、IDMVCは、ビデオデータのブロックと関連付けられる相違ベクトルから生成される。いくつかの例では、方法はさらに、IDMVCが第1の空間的候補および第2の空間的候補の利用可能な1つまたは複数の各々とは異なることに基づいて、IDMVCを統合候補リストに追加すること、または、IDMVCが第1の空間的候補または第2の空間的候補の少なくとも1つと同一であることに基づいて、IDMVCを統合候補リストから除外することの1つを実行することを含む。
【0279】
[0320]いくつかの例では、IDMVCを統合候補リストに追加することは、統合候補リスト内の次の利用可能な位置においてIDMVCを挿入することを含む。いくつかの例によれば、統合候補リスト内の次の利用可能な位置においてIDMVCを挿入することは、第1の空間的候補の少なくとも1つの位置または第2の空間的候補の位置に後続する位置にIDMVCを挿入することを含む。
【0280】
[0321]様々な例によれば、方法はさらに、シフトされたIPMVCが利用可能であると決定することを含み、シフトされたIPMVCは従属深度ビュー中のビデオデータのブロックと関連付けられ、シフトされたIPMVCはベース深度ビュー中のビデオデータの対応するブロックから生成される。いくつかのそのような例では、方法はさらに、シフトされたIPMVCをIPMVCと比較することを含む。いくつかの例では、方法はさらに、シフトされたIPMVCがIPMVCと異なること、および統合候補リストが6個未満の候補を含むことに基づいて、シフトされたIPMVCを統合候補リストに追加すること、または、シフトされたIPMVCがIPMVCと同一であることに基づいて、シフトされたIPMVCを統合候補リストから除外することの1つを実行することを含む。
【0281】
[0322]いくつかの例では、方法はさらに、相違シフトされた動きベクトル(DSMV)候補が利用可能であると決定することを含み、DSMV候補は従属深度ビュー中のビデオデータのブロックと関連付けられ、DSMV候補は従属深度ビュー中のビデオデータのブロックと関連付けられる1つまたは複数の空間的に隣接するブロックを使用して生成される。いくつかのそのような例によれば、方法はさらに、統合候補リストが6個未満の候補を含むことに基づいて、DSMV候補を統合候補リストに追加することを含む。いくつかの例では、DSMV候補を統合候補リストに追加することは、1)統合候補リストに含まれる空間的候補の位置に後続する、および2)統合候補リストに含まれる時間的候補の位置に先行する位置において、DSMV候補を挿入することを含む。
【0282】
[0323]いくつかの例によれば、DSMV候補が利用可能であると決定することは、シフトされたIPMVCが利用可能ではないと決定したことに応答し、シフトされたIPMVCは従属深度ビュー中のビデオデータのブロックと関連付けられ、シフトされたIPMVCはビデオデータのブロックのベースビューから生成される。いくつかの例では、DSMV候補は、1つまたは複数の空間的に隣接するサンプルの少なくとも1つの空間的に隣接するサンプルと関連付けられる参照ピクチャリスト0(RefPicList0)から選択される相違動きベクトル(DMV)を含む。いくつかの例によれば、DSMV候補は、従属深度ビュー中のビデオデータのブロックと関連付けられる相違ベクトルをシフトすることによって生成され、相違ベクトルは、従属深度ビュー中のビデオデータのブロックと関連付けられる1つまたは複数の空間的に隣接するブロックと関連付けられる1つまたは複数の深度値から生成される。
【0283】
[0324]例によっては、本明細書で説明された技法のうちのいずれかの、いくつかの動作またはイベントは、異なる順序で実行されてよく、追加、統合、または完全に除外され得る(たとえば、すべての説明された動作またはイベントが、本技法の実施のために必要であるとは限らない)ことを認識されたい。その上、いくつかの例では、動作またはイベントは、連続的にではなく、同時に、たとえば、マルチスレッド処理、割込み処理、または複数のプロセッサを通じて実行され得る。
【0284】
[0325]1つまたは複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実現され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体を介して記憶または伝送され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体のような、有形の媒体に相当するコンピュータ可読記憶媒体、または、ある場所から別の場所への、たとえば、通信プロトコルによる、コンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は一般に、(1)非一時的である有形コンピュータ可読記憶媒体または(2)信号もしくは搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明される技法の実装のために、命令、コードおよび/またはデータ構造を取り出すために1つもしくは複数のコンピュータまたは1つもしくは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
【0285】
[0326]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、フラッシュメモリ、または、命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用されコンピュータによってアクセスされ得る、任意の他の媒体を備え得る。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者線(DSL)、または赤外線、無線、およびマイクロ波のようなワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号または他の一時的媒体を含まないが、その代わりに、非一時的、有形記憶媒体を対象とすることを、理解されたい。本明細書使用されるディスク(diskおよびdisc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびブルーレイ(登録商標)ディスク(disc)を含み、ディスク(disk)は、通常は、磁気的にデータを再生し、ディスク(disc)は、レーザーで光学的にデータを再生する。前述の組合せもまた、コンピュータ可読媒体の範囲内に含まれるべきである。
【0286】
[0327]命令は、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルロジックアレイ(FPGA)、または他の同等の集積された論理回路もしくは個別の論理回路のような、1つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用される「プロセッサ」という用語は、前述の構造体のいずれか、または本明細書で説明された技法の実装に適した任意の他の構造体のいずれかを指し得る。加えて、いくつかの態様では、本明細書で説明される機能は、符号化および復号のために構成された専用ハードウェアおよび/もしくはソフトウェアモジュール内で提供されてよく、または結合されたコーデックに組み込まれてよい。また、本技法は、1つまたは複数の回路または論理要素で完全に実装され得る。
【0287】
[0328]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置で実装され得る。様々なコンポーネント、モジュール、またはユニットが、開示される技法を実行するように構成されたデバイスの機能的態様を強調するために本開示で説明されるが、異なるハードウェアユニットによる実現を必ずしも必要としない。むしろ、上で説明されたように、様々なユニットは、コーデックハードウェアユニットの中で結合されてよく、または、適切なソフトウェアおよび/またはファームウェアとともに、上で説明されたように1つまたは複数のプロセッサを含む、相互に動作するハードウェアユニットの集合体によって提供されてよい。
【0288】
[0329]様々な例が説明されてきた。これらのおよび他の例は、次の特許請求の範囲の範囲内にある。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[C1] ビデオデータをコーディングする方法であって、
ビュー間予測された動きベクトル候補(IPMVC)を動きベクトル継承(MVI)候補と比較することと、
前記IPMVCおよび前記MVI候補が各々、従属深度ビュー中のビデオデータのブロックと関連付けられ、
前記IPMVCが、ベース深度ビュー中のビデオデータの対応するブロックから生成され、
前記IPMVCが前記MVI候補と異なることに基づいて前記IPMVCを統合候補リストに追加すること、または、前記IPMVCが前記MVI候補と同一であることに基づいて前記統合候補リストから前記IPMVCを除外することの1つを実行することと、
を備える、方法。
[C2] 前記IPMVCを前記統合リストに追加することが、
前記MVI候補が前記統合候補リストへの追加に利用可能ではないことに基づいて、前記統合候補リスト内の最初の位置において前記IPMVCを挿入すること、または、前記MVI候補が前記統合候補リストへの追加に利用可能であることに基づいて、前記統合候補リスト内の前記MVI候補の位置に後続する前記統合候補リスト内の位置において前記IPMVCを挿入することの1つを実行することを備える、C1に記載の方法。
[C3] 前記IPMVCを前記MVI候補と比較することが、
前記IPMVCと関連付けられる動き情報を前記MVI候補と関連付けられる対応する動き情報と比較することと、
前記IPMVCと関連付けられる少なくとも1つの参照インデックスを前記MVI候補と関連付けられる少なくとも1つの対応する参照インデックスと比較することと、
を備える、C1に記載の方法。
[C4] ビュー間相違動きベクトル候補(IDMVC)を、前記統合候補リストと関連付けられる第1の空間的候補および前記統合候補リストと関連付けられる第2の空間的候補の利用可能な1つまたは複数と比較することと、
前記IDMVC、前記第1の空間的候補、および前記第2の空間的候補の各々が、前記従属深度ビュー中のビデオデータの前記ブロックと関連付けられ、
前記IDMVCが、ビデオデータの前記ブロックと関連付けられる相違ベクトルから生成され、
前記IDMVCが前記第1の空間的候補および前記第2の空間的候補の前記利用可能な1つまたは複数の各々とは異なることに基づいて、前記IDMVCを前記統合候補リストに追加すること、または、前記IDMVCが前記第1の空間的候補または前記第2の空間的候補の少なくとも1つと同一であることに基づいて、前記IDMVCを前記統合候補リストから除外することの1つを実行することと、
をさらに備える、C1に記載の方法。
[C5] 前記IDMVCを前記統合候補リストに追加することが、前記統合候補リスト内の次の利用可能な位置において前記IDMVCを挿入することを備える、C4に記載の方法。
[C6] 前記統合候補リスト内の前記次の利用可能な位置において前記IDMVCを挿入することが、前記第1の空間的候補の少なくとも1つの位置または前記第2の空間的候補の位置に後続する位置において前記IDMVCを挿入することを備える、C5に記載の方法。
[C7] シフトされたIPMVCが利用可能であると決定することと、
前記シフトされたIPMVCが、前記従属深度ビュー中のビデオデータの前記ブロックと関連付けられ、
前記シフトされたIPMVCが、前記ベース深度ビュー中のビデオデータの前記対応するブロックから生成され、
前記シフトされたIPMVCを前記IPMVCと比較することと、
をさらに備える、C1に記載の方法。
[C8] 前記シフトされたIPMVCが前記IPMVCと異なること、および前記統合候補リストが6個未満の候補を含むことに基づいて、前記シフトされたIPMVCを前記統合候補リストに追加すること、または、前記シフトされたIPMVCが前記IPMVCと同一であることに基づいて、前記シフトされたIPMVCを前記統合候補リストから除外することの1つを実行することをさらに備える、C7に記載の方法。
[C9] 相違シフトされた動きベクトル(DSMV)候補が利用可能であると決定すること、
前記DSMV候補が、前記従属深度ビュー中のビデオデータの前記ブロックと関連付けられ、
前記DSMV候補が、前記従属深度ビュー中のビデオデータの前記ブロックと関連付けられる1つまたは複数の空間的に隣接するブロックを使用して生成され、
をさらに備える、C1に記載の方法。
[C10] 前記統合候補リストが6個未満の候補を含むことに基づいて、前記DSMV候補を前記統合候補リストに追加することをさらに備える、C9に記載の方法。
[C11] 前記DSMV候補を前記統合候補リストに追加することが、1)前記統合候補リストに含まれる空間的候補の位置に後続する、および2)前記統合候補リストに含まれる時間的候補の位置に先行する位置において、前記DSMV候補を挿入することを備える、C10に記載の方法。
[C12] 前記DSMV候補が利用可能であると決定することが、シフトされたIPMVCが利用可能ではないと決定したことに応答し、
前記シフトされたIPMVCが、前記従属深度ビュー中のビデオデータの前記ブロックと関連付けられ、
前記シフトされたIPMVCが、ビデオデータの前記ブロックのベースビューから生成される、C9に記載の方法。
[C13] 前記DSMV候補が、前記1つまたは複数の空間的に隣接するサンプルの少なくとも1つの空間的に隣接するサンプルと関連付けられる参照ピクチャリスト0(RefPicList0)から選択される相違動きベクトル(DMV)を備える、C9に記載の方法。
[C14] 前記DSMV候補が、前記従属深度ビュー中のビデオデータの前記ブロックと関連付けられる相違ベクトルをシフトすることによって生成され、
前記相違ベクトルが、前記従属深度ビュー中のビデオデータの前記ブロックと関連付けられる前記1つまたは複数の空間的に隣接するブロックと関連付けられる1つまたは複数の深度値から生成される、C9に記載の方法。
[C15] ビデオデータをコーディングするためのデバイスであって、
メモリと、
ビュー間予測された動きベクトル候補(IPMVC)を動きベクトル継承(MVI)候補と比較することと、
前記IPMVCおよび前記MVI候補が各々、従属深度ビュー中のビデオデータのブロックと関連付けられ、
前記IPMVCが、ベース深度ビュー中のビデオデータの対応するブロックから生成され、
前記IPMVCが前記MVI候補と異なることに基づいて前記IPMVCを統合候補リストに追加すること、または、前記IPMVCが前記MVI候補と同一であることに基づいて前記統合候補リストから前記IPMVCを除外することの1つを実行することと、
を行うように構成される、1つまたは複数のプロセッサと、
を備える、デバイス。
[C16] 前記IPMVCを前記統合リストに追加するために、前記1つまたは複数のプロセッサがさらに、
前記MVI候補が前記統合候補リストへの追加に利用可能ではないことに基づいて、前記統合候補リスト内の最初の位置において前記IPMVCを挿入すること、または、前記MVI候補が前記統合候補リストへの追加に利用可能であることに基づいて、前記統合候補リスト内の前記MVI候補の位置に後続する前記統合候補リスト内の位置において前記IPMVCを挿入することの1つを実行するように構成される、C15に記載のデバイス。
[C17] 前記IPMVCを前記MVI候補と比較するために、前記1つまたは複数のプロセッサが、
前記IPMVCと関連付けられる動き情報を前記MVI候補と関連付けられる対応する動き情報と比較することと、
前記IPMVCと関連付けられる少なくとも1つの参照インデックスを前記MVI候補と関連付けられる少なくとも1つの対応する参照インデックスと比較することと、
を行うように構成される、C15に記載のデバイス。
[C18] 前記1つまたは複数のプロセッサがさらに、
ビュー間相違動きベクトル候補(IDMVC)を、前記統合候補リストと関連付けられる第1の空間的候補および前記統合候補リストと関連付けられる第2の空間的候補の利用可能な1つまたは複数と比較することと、
前記IDMVC、前記第1の空間的候補、および前記第2の空間的候補の各々が、前記従属深度ビュー中のビデオデータの前記ブロックと関連付けられ、
前記IDMVCが、ビデオデータの前記ブロックと関連付けられる相違ベクトルから生成され、
前記IDMVCが前記第1の空間的候補および前記第2の空間的候補の前記利用可能な1つまたは複数の各々とは異なることに基づいて、前記IDMVCを前記統合候補リストに追加すること、または、前記IDMVCが前記第1の空間的候補または前記第2の空間的候補の少なくとも1つと同一であることに基づいて、前記IDMVCを前記統合候補リストから除外することの1つを実行することと、
を行うように構成される、C15に記載のデバイス。
[C19] 前記IDMVCを前記統合候補リストに追加するために、前記1つまたは複数のプロセッサが、前記統合候補リスト内の次の利用可能な位置において前記IDMVCを挿入するように構成される、C18に記載のデバイス。
[C20] 前記統合候補リスト内の前記次の利用可能な位置において前記IDMVCを挿入するために、前記1つまたは複数のプロセッサが、前記第1の空間的候補の少なくとも1つの位置または前記第2の空間的候補の位置に後続する位置において前記IDMVCを挿入するように構成される、C19に記載のデバイス。
[C21] 前記1つまたは複数のプロセッサがさらに、
シフトされたIPMVCが利用可能であると決定することと、
前記シフトされたIPMVCが、前記従属深度ビュー中のビデオデータの前記ブロックと関連付けられ、
前記シフトされたIPMVCが、前記ベース深度ビュー中のビデオデータの前記対応するブロックから生成され、
前記シフトされたIPMVCを前記IPMVCと比較することと、
を行うように構成される、C15に記載のデバイス。
[C22] 前記1つまたは複数のプロセッサがさらに、
前記シフトされたIPMVCが前記IPMVCと異なること、および前記統合候補リストが6個未満の候補を含むことに基づいて、前記シフトされたIPMVCを前記統合候補リストに追加すること、または、前記シフトされたIPMVCが前記IPMVCと同一であることに基づいて、前記シフトされたIPMVCを前記統合候補リストから除外することの1つを実行するように構成される、C21に記載のデバイス。
[C23] 前記1つまたは複数のプロセッサがさらに、
相違シフトされた動きベクトル(DSMV)候補が利用可能であると決定すること、
前記DSMV候補が、前記従属深度ビュー中のビデオデータの前記ブロックと関連付けられ、
前記DSMV候補が、前記従属深度ビュー中のビデオデータの前記ブロックと関連付けられる1つまたは複数の空間的に隣接するブロックを使用して生成され、
を行うように構成される、C15に記載のデバイス。
[C24] 前記1つまたは複数のプロセッサがさらに、前記統合候補リストが6個未満の候補を含むことに基づいて、前記DSMV候補を前記統合候補リストに追加するように構成される、C23に記載のデバイス。
[C25] 前記DSMV候補を前記統合候補リストに追加するために、前記1つまたは複数のプロセッサが、1)前記統合候補リストに含まれる空間的候補の位置に後続する、および2)前記統合候補リストに含まれる時間的候補の位置に先行する位置において、前記DSMV候補を挿入するように構成される、C23に記載のデバイス。
[C26] 前記DSMV候補が利用可能であると決定するために、前記1つまたは複数のプロセッサが、シフトされたIPMVCが利用可能ではないと決定したことに応答して前記DSMV候補が利用可能であると決定するように構成され、
前記シフトされたIPMVCが、前記従属深度ビュー中のビデオデータの前記ブロックと関連付けられ、
前記シフトされたIPMVCが、ビデオデータの前記ブロックのベースビューから生成される、C23に記載のデバイス。
[C27] 前記DSMV候補が、前記1つまたは複数の空間的に隣接するサンプルの少なくとも1つの空間的に隣接するサンプルと関連付けられる参照ピクチャリスト0(RefPicList0)から選択される相違動きベクトル(DMV)を備える、C23に記載のデバイス。
[C28] 前記DSMV候補が、前記従属深度ビュー中のビデオデータの前記ブロックと関連付けられる相違ベクトルのシフトに基づいて生成され、
前記相違ベクトルが、前記従属深度ビュー中のビデオデータの前記ブロックと関連付けられる前記1つまたは複数の空間的に隣接するブロックと関連付けられる1つまたは複数の深度値から生成される、C23に記載のデバイス。
[C29] 実行されると、ビデオコーディングデバイスの1つまたは複数のプロセッサに、
ビュー間予測された動きベクトル候補(IPMVC)を動きベクトル継承(MVI)候補と比較することと、
前記IPMVCおよび前記MVI候補が各々、従属深度ビュー中のビデオデータのブロックと関連付けられ、
前記IPMVCが、ベース深度ビュー中のビデオデータの対応するブロックから生成され、
前記IPMVCが前記MVI候補と異なることに基づいて前記IPMVCを統合候補リストに追加すること、または、前記IPMVCが前記MVI候補と同一であることに基づいて前記統合候補リストから前記IPMVCを除外することの1つを実行することと、
を行わせる命令によって符号化された、コンピュータ可読記憶媒体。
[C30] ビデオデータをコーディングするための装置であって、
ビュー間予測された動きベクトル候補(IPMVC)を動きベクトル継承(MVI)候補と比較するための手段と、
前記IPMVCおよび前記MVI候補が各々、従属深度ビュー中のビデオデータのブロックと関連付けられ、
前記IPMVCが、ベース深度ビュー中のビデオデータの対応するブロックから生成され、
前記IPMVCが前記MVI候補と異なることに基づいて前記IPMVCを統合候補リストに追加すること、または、前記IPMVCが前記MVI候補と同一であることに基づいて前記統合候補リストから前記IPMVCを除外することの1つを実行するための手段と、
を備える、装置。

図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13