【文献】
Shan Liu, et.al.,"Method and syntax for partial CU merge",[online],Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,2011年 3月20日,Document: JCTVC-E085(version 2),[平成26年12月8日検索], インターネット,URL,http://phenix.int-evry.fr/jct/doc_end_user/documents/5_Geneva/wg11/JCTVC-E085-v2.zip
【文献】
Ken McCann, et.al.,"High Efficiency Video Coding (HEVC) Test Model 2 (HM 2) Encoder Description",[online],Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,2011年 4月15日,Document: JCTVC-D502(version 2),第5.4.1節と、第6.6.2.1.3節,[平成26年12月8日検索], インターネット,URL,http://phenix.int-evry.fr/jct/doc_end_user/documents/4_Daegu/wg11/JCTVC-D502-v2.zip
【文献】
Jian-Liang Lin, et.al.,"Parallel NxN merge mode",[online],Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,2012年 4月16日,Document: JCTVC-I0180(version 1),[平成26年12月8日検索], インターネット,URL,http://phenix.int-evry.fr/jct/doc_end_user/documents/9_Geneva/wg11/JCTVC-I0180-v1.zip
【文献】
Yunfei Zheng, et.al.,"CE9: Unified Merge and AMVP candidates selection (UNI03)",[online],Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,2011年 7月14日,Document: JCTVC-F297(version 2),[平成26年12月8日検索], インターネット,URL,http://phenix.int-evry.fr/jct/doc_end_user/documents/6_Torino/wg11/JCTVC-F297-v2.zip
(58)【調査した分野】(Int.Cl.,DB名)
前記現在コーディングユニットが、予測ユニット1の上側に位置する予測ユニット0を含む2N×N、2N×nUまたは2N×nDパーティションタイプを有し、前記マージ候補セットからマージ候補を削除することが、予測ユニット1のための前記マージ候補セットから前記上マージ候補を削除することを備える、請求項1に記載の方法。
前記現在コーディングユニットが、予測ユニット1の左側に位置する予測ユニット0を含むN×2N、nL×2NまたはnR×2Nパーティションタイプを有し、前記マージ候補セットからマージ候補を削除することが、予測ユニット1のための前記マージ候補セットから前記左マージ候補を削除することを備える、請求項1に記載の方法。
前記現在コーディングユニットが、予測ユニット1の上側に位置する予測ユニット0を含む2N×N、2N×nUまたは2N×nDパーティションタイプを有し、前記ビデオエンコーダが、予測ユニット1のための前記マージ候補セットから前記上マージ候補を削除するようにさらに構成された、請求項5に記載の装置。
前記現在コーディングユニットが、予測ユニット1の左側に位置する予測ユニット0を含むN×2N、nL×2NまたはnR×2Nパーティションタイプを有し、前記ビデオエンコーダが、予測ユニット1のための前記マージ候補セットから前記左マージ候補を削除するようにさらに構成された、請求項5に記載の装置。
前記現在コーディングユニットが、予測ユニット1の上側に位置する予測ユニット0を含む2N×N、2N×nUまたは2N×nDパーティションタイプを有し、前記マージ候補セットからマージ候補を削除するための前記手段が、予測ユニット1のための前記マージ候補セットから前記上マージ候補を削除するための手段を備える、請求項10に記載の装置。
前記現在コーディングユニットが、予測ユニット1の左側に位置する予測ユニット0を含むN×2N、nL×2NまたはnR×2Nパーティションタイプを有し、前記マージ候補セットからマージ候補を削除するための前記手段が、予測ユニット1のための前記マージ候補セットから前記左マージ候補を削除するための手段を備える、請求項10に記載の装置。
前記現在コーディングユニットが、予測ユニット1の上側に位置する予測ユニット0を含む2N×N、2N×nUまたは2N×nDパーティションタイプを有し、前記命令が、前記1つまたは複数のプロセッサに、予測ユニット1のための前記マージ候補セットから前記上マージ候補を削除することをさらに行わせる、請求項15に記載のコンピュータ可読記憶媒体。
前記現在コーディングユニットが、予測ユニット1の左側に位置する予測ユニット0を含むN×2N、nL×2NまたはnR×2Nパーティションタイプを有し、前記命令が、前記1つまたは複数のプロセッサに、予測ユニット1のための前記マージ候補セットから前記左マージ候補を削除することをさらに行わせる、請求項15に記載のコンピュータ可読記憶媒体。
【発明を実施するための形態】
【0015】
概して、本開示では、ビデオデータをコーディングするための技法について説明する。本開示では、マージモード動きベクトル予測プロセスにおいてマージ候補セットを判断するための技法について説明する。
【0016】
デジタルビデオデバイスは、デジタルビデオ情報をより効率的に符号化および復号するためのビデオ圧縮技法を実装する。ビデオ圧縮は、ビデオシーケンスに固有の冗長性を低減または除去するために空間的(フレーム内)予測および/または時間的(フレーム間)予測技法を適用し得る。
【0017】
ITU−T Video Coding Experts Group(VCEG)とISO/IEC Motion Picture Experts Group(MPEG)とのJoint Collaboration Team on Video Coding(JCT−VC)によって開発されている新しいビデオコーディング規格、すなわち、高効率ビデオコーディング(HEVC)がある。「HEVC Working Draft 6」または「WD6」と呼ばれるHEVC規格の最近のドラフトは、文書JCTVC−H1003、Brossら、「High efficiency video coding (HEVC) text specification draft 6」、ITU−T SG16 WP3とISO/IEC JTC1/SC29/WG11のJoint Collaborative Team on Video Coding (JCT−VC)、第8回会合:米国カリフォルニア州サンノゼ、2012年2月に記載されおり、この文書は、2012年6月1日現在、http://phenix.int-evry.fr/jct/doc_end_user/documents/8_San%20Jose/wg11/JCTVC-H1003-v22.zipからダウンロード可能である。
【0018】
Joint Cooperative Team for Video Coding(JCT−VC)によって現在開発中の高効率ビデオコーディング(HEVC)規格に従うビデオコーディングでは、ビデオフレームがコーディングユニットに区分され得る。コーディングユニット(CU)は、概して、ビデオ圧縮のために様々なコーディングツールが適用される基本ユニットとして働く画像領域を指す。CUは、通常、Yとして示され得るルミナンス成分と、UおよびVとして示され得る2つのクロマ成分とを有する。ビデオサンプリングフォーマットに応じて、サンプルの数で表されるUおよびV成分のサイズは、Y成分のサイズと同じであるかまたはそれとは異なり得る。CUは、一般に正方形であり、たとえば、ITU−T H.264などの他のビデオコーディング規格の下でのいわゆるマクロブロックと同様であると見なされ得る。
【0019】
より良好なコーディング効率を達成するために、コーディングユニットは、ビデオコンテンツに応じて可変サイズを有し得る。さらに、コーディングユニットは、予測または変換のためにより小さいブロックに分割され得る。具体的には、各コーディングユニットは、予測ユニット(PU)と変換ユニット(TU)とにさらに区分され得る。予測ユニットは、H.264などの他のビデオコーディング規格の下でのいわゆるパーティションと同様であると見なされ得る。変換ユニット(TU)は、変換係数を生成するために変換が適用される残差データのブロックを指す。
【0020】
本出願では、例示のために、開発中のHEVC規格の現在提案されている態様のいくつかに従うコーディングについて説明する。ただし、本開示で説明する技法は、H.264または他の規格に従って定義されるビデオコーディングプロセスあるいはプロプライエタリビデオコーディングプロセスなど、他のビデオコーディングプロセスのために有用であり得る。
【0021】
HEVCの規格化の取り組みは、HEVCテストモデル(HM)と呼ばれるビデオコーディングデバイスのモデルに基づく。HMは、たとえば、ITU−T H.264/AVCによるデバイスに勝るビデオコーディングデバイスのいくつかの能力を仮定する。たとえば、H.264は9つのイントラ予測符号化モードを提供するが、HMは34個ものイントラ予測符号化モードを提供する。
【0022】
HMによれば、CUは、1つまたは複数の予測ユニット(PU)および/または1つまたは複数の変換ユニット(TU)を含み得る。ビットストリーム内のシンタックスデータは、ピクセルの数に関して最大CUである最大コーディングユニット(LCU)を定義し得る。概して、CUは、CUがサイズの差異を有しないことを除いて、H.264のマクロブロックと同様の目的を有する。したがって、CUは、サブCUに分割され得る。概して、本開示におけるCUへの言及は、ピクチャの最大コーディングユニットまたはLCUのサブCUを指すことがある。LCUはサブCUに分割され得、各サブCUはさらにサブCUに分割され得る。ビットストリームのシンタックスデータは、CU深さと呼ばれる、LCUが分割され得る最大回数を定義し得る。それに応じて、ビットストリームは最小コーディングユニット(SCU)をも定義し得る。本開示ではまた、CU、PU、またはTUのいずれかを指すために「ブロック」または「部分」という用語を使用する。概して、「部分」は、ビデオフレームの任意のサブセットを指し得る。
【0023】
LCUは4分木データ構造に関連付けられ得る。概して、4分木データ構造はCUごとに1つのノードを含み、ルートノードはLCUに対応する。CUが4つのサブCUに分割された場合、CUに対応するノードは4つのリーフノードを含み、リーフノードの各々はサブCUのうちの1つに対応する。4分木データ構造の各ノードは、対応するCUのシンタックスデータを与え得る。たとえば、4分木のノードは、そのノードに対応するCUがサブCUに分割されるかどうかを示す分割フラグを含み得る。CUのシンタックス要素は、再帰的に定義され得、CUがサブCUに分割されるかどうかに依存し得る。CUがさらに分割されない場合、そのCUはリーフCUと呼ばれる。
【0024】
その上、リーフCUのTUもそれぞれの4分木データ構造に関連付けられ得る。すなわち、リーフCUは、リーフCUがどのようにTUに区分されるかを示す4分木を含み得る。本開示では、LCUがどのように区分されるかを示す4分木をCU4分木と呼び、リーフCUがどのようにTUに区分されるかを示す4分木をTU4分木と呼ぶ。TU4分木のルートノードは概してリーフCUに対応し、CU4分木のルートノードは概してLCUに対応する。分割されないTU4分木のTUはリーフTUと呼ばれる。
【0025】
リーフCUは、1つまたは複数の予測ユニット(PU)を含み得る。概して、PUは、対応するCUの全部または一部分を表し、そのPUの参照サンプルを取り出すためのデータを含み得る。たとえば、PUがインターモード符号化されるとき、PUは、PUのための動きベクトルを定義するデータを含み得る。動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度(たとえば、1/4ピクセル精度もしくは1/8ピクセル精度)、動きベクトルがポイントする参照フレーム、および/または動きベクトルの参照リスト(たとえば、リスト0もしくはリスト1)を記述し得る。(1つまたは複数の)PUを定義するリーフCUのデータはまた、たとえば、CUを1つまたは複数のPUに区分することを記述し得る。区分モードは、CUが予測コーディングされないか、イントラ予測モード符号化されるか、またはインター予測モード符号化されるかに応じて異なり得る。イントラコーディングの場合、PUは、以下で説明するリーフ変換ユニットと同じように扱われ得る。
【0026】
ブロック(たとえば、ビデオデータの予測ユニット(PU))をコーディングするために、ブロックの予測子が最初に導出される。予測子は、イントラ(I)予測(すなわち、空間的予測)またはインター(PまたはB)予測(すなわち、時間的予測)のいずれかを通して導出され得る。したがって、いくつかの予測ユニットは、同じフレーム中の隣接参照ブロックに関する空間的予測を使用してイントラコーディング(I)され得、他の予測ユニットは、他のフレーム中の参照ブロックに関してインターコーディング(PまたはB)され得る。
【0027】
予測子が識別されると、元のビデオデータブロックとそれの予測子との間の差分が計算される。この差分は、予測残差とも呼ばれ、コーディングされるべきブロックのピクセルと、参照ブロックの(整数精度ピクセルまたは補間分数精度ピクセルであり得る)対応する参照サンプル、すなわち、予測子との間のピクセル差分を指す。より良好な圧縮を達成するために、予測残差(すなわち、ピクセル差分値のアレイ)は、概して、たとえば、離散コサイン変換(DCT)、整数変換、カルーネンレーベ(Karhunen-Loeve)(K−L)変換、または他の変換を使用して変換され得る。
【0028】
インター予測を使用してPUをコーディングすることは、現在ブロックと参照フレーム中のブロックとの間の動きベクトルを計算することを伴う。動きベクトルは、動き推定(または動き探索)と呼ばれるプロセスを通して計算される。動きベクトルは、たとえば、参照フレームの参照サンプルに対する、現在フレーム中の予測ユニットの変位を示し得る。参照サンプルは、絶対値差分和(SAD:sum of absolute difference)、2乗差分和(SSD:sum of squared difference)、または他の差分メトリックによって判断され得るピクセル差分に関して、コーディングされているPUを含むCUの部分にぴったり一致することがわかるブロックであり得る。参照サンプルは、参照フレームまたは参照スライス内のどこにでも発生し得る。いくつかの例では、参照サンプルは、全体的にまたは部分的に補間され、分数ピクセル位置において発生し得る。現在部分に最も良く一致する参照フレームの部分を見つけると、エンコーダは、現在部分のための現在動きベクトルを、現在部分から参照フレーム中の一致する部分までの(たとえば、現在部分の中心から一致する部分の中心までの)ロケーションの差分として判断する。
【0029】
いくつかの例では、エンコーダは、符号化ビデオビットストリーム中で、各部分について動きベクトルをシグナリングし得る。シグナリングされた動きベクトルは、ビデオデータを復号するために、デコーダによって動き補償を実行するために使用される。しかしながら、元の動きベクトルを直接シグナリングすると、一般に、情報を搬送するために多数のビットが必要なので、コーディングがあまり効率的でなくなることがある。
【0030】
いくつかの事例では、元の動きベクトルを直接シグナリングするのではなく、エンコーダは、各PUについて動きベクトルを予測し得る。本開示では、CU、PU、またはTUを指すために「ブロック」という用語を総称的に使用する。動きベクトル予測プロセスを実行する際に、エンコーダは、現在PUと同じフレーム中の空間的に隣接するブロックについて判断される候補動きベクトルのセット、あるいは参照フレーム中のコロケートPUについて判断される候補動きベクトルを選択し得る。エンコーダは、特定の候補動きベクトルを選択するために動きベクトル予測を実行し、必要な場合、シグナリングする際のビットレートを低減するために、選択された動きベクトル候補を示すシンタックス要素をシグナリングし得る。空間的に隣接するブロックからの候補動きベクトルは空間MVP候補と呼ばれることがあるが、別の参照フレーム中のコロケートブロックからの候補動きベクトルは時間MVP候補と呼ばれることがある。
【0031】
本開示の技法は、動きベクトル予測の「マージ」モードを対象とする。マージモードでは、ビデオエンコーダは、フレームの現在部分のための選択された候補動きベクトルから、動きベクトルと、(所与の参照ピクチャリストにおいて動きベクトルがポイントする参照フレームを識別する)参照インデックスと、(すなわち、参照フレームが時間的に現在フレームに先行するかまたは後続するかに関して、参照ピクチャリスト(リスト0またはリスト1)を識別する)動き予測方向とをコピーするように、予測シンタックスのビットストリームシグナリングを通してデコーダに命令する。これは、選択された候補動きベクトル(すなわち、特定の空間MVP候補または時間MVP候補)を識別する候補動きベクトルセットへのインデックスをビットストリーム中でシグナリングすることによって達成される。候補動きベクトルセットは、デフォルト設定を通して導出されるか、またはいくつかのコーディングパラメータから推測され得る。したがって、マージモードでは、予測シンタックスは、モード(この場合は「マージ」モード)を識別するフラグと、選択された候補動きベクトルを識別するインデックスとを含み得る。いくつかの事例では、候補動きベクトルは、現在PUに関する因果的PU中にあることになる。すなわち、候補動きベクトルは、デコーダによってすでに復号されていることになる。したがって、デコーダは、因果的PUのための動きベクトルと参照インデックスと動き予測方向とをすでに受信および/または判断している。したがって、デコーダは、単に、メモリから、因果的PUに関連する動きベクトルと参照インデックスと動き予測方向とを取り出し、現在PUについてこれらの値をコピーし得る。マージモードでブロックを復号するために、デコーダは、動きベクトル予測を使用して予測子ブロックを取得し、予測子ブロックに残差データを加算してコード化ブロックを再構成する。
【0032】
現在部分について動きベクトルを判断するために動き推定が実行されると、エンコーダは、参照フレーム中の一致する部分を現在部分と比較する。この比較は、一般に、上述のように、現在部分から参照フレーム中の(「参照サンプル」と通常呼ばれる)部分を減算することを伴い、いわゆる残差データを生じる。残差データは、現在部分と参照サンプルとの間のピクセル差分値を示す。エンコーダは、次いで、この残差データを空間領域から、周波数領域などの変換領域に変換する。通常、エンコーダは、この変換を達成するために、残差データに離散コサイン変換(DCT)を適用する。得られた変換係数は異なる周波数を表し、エネルギーの大部分が、通常、数個の低周波係数に集中するので、エンコーダは、残差データの圧縮を可能にするためにこの変換を実行する。
【0033】
一般に、得られた変換係数は、特に変換係数が最初に量子化される(丸められる)場合、ランレングス符号化を可能にする方法で一緒にグループ化される。エンコーダは、量子化変換係数についてこのランレングス符号化を実行し、次いで、ランレングスコーディングされた量子化変換係数をさらに圧縮するために統計的ロスレス(またはいわゆる「エントロピー」)符号化を実行する。
【0034】
ロスレスエントロピーコーディングを実行した後に、エンコーダは、符号化ビデオデータを含むビットストリームを生成する。このビットストリームはまた、いくつかの事例では、たとえば、動きベクトル予測が実行されたかどうかと、動きベクトルモードと、動きベクトル予測子(MVP:motion vector predictor)インデックス(すなわち、選択された動きベクトルをもつ候補部分のインデックス)とを指定するいくつかの予測シンタックス要素を含む。MVPインデックスは、それのシンタックス要素変数名「mvp_idx」と呼ばれることもある。
【0035】
図1に、マージモードにおいて使用するための、HEVC規格において現在提案されている候補動きベクトルセット90を示す。マージモードは、空間および時間ブロックからの6つのマージ候補、すなわち、左下(BL)ブロック91、左(L)ブロック92、右上(RA)ブロック93、上(A)ブロック94、左上(LA)ブロック95、および時間ブロック(T)96を使用する。これらのブロックに関連する候補動きベクトルが、マージモードで動きベクトル予測子を判断するために使用される。
【0036】
時間ブロック96は、現在PUとは異なるフレーム中のコロケートブロック内にあり得る(たとえば、T
2)か、または現在PU108とは異なるフレーム中のコロケートブロックに隣接し得る(たとえば、T
1)。
図1に示す空間候補ブロック(すなわち、BL、L、LA、A、およびRA)のロケーションは絶対位置ではなく、以下の一般的な定義に基づく、現在PU98に対する相対位置である。候補ブロックは、以下の定義を満たす最も近い可能なブロックである必要はなく、定義を満たすどのPUでもよいことに留意されたい。LA候補ブロック95は、現在PUを定義する上部ラインの上側、および現在PUを定義する左ラインの左側に位置する。L候補ブロック92は、現在PUを定義する左ラインの左側に位置し、また現在PUを定義する下部ラインの上側、および現在PUを定義する上部ラインの下側に位置する。BL候補ブロック91は、現在PUを定義する下部ラインの下側、および現在PUを定義する左ラインの左側に位置する。A候補ブロック94は、現在PUを定義する上部ラインの上側に位置し、また現在PUを定義する左ラインの右側、および現在PUを定義する右ラインの左側に位置する。RA候補ブロック93は、現在PUを定義する右ラインの右側、および現在PUを定義する上部ラインの上側に位置する。
【0037】
マージ候補はPUごとに生成される。すなわち、各PUはマージ候補のそれ自体のセットを有する。これは、より大きいCUから区分されたPUを含む。
図1の例は、2N×2N区分PU(たとえば、正方形PU)の場合である。
図2に、異なるパーティションタイプをもつ予測ユニットのさらなる例を示す。
図2に示すように、2N×2Nパーティションは正方形パーティションである。本質的に、それは非区分CUからのPUである。2N×Nパーティションは、正方形CUを2つの水平方向に配向したPUに分割することによって作られ、PU0はPU1の上側にある。N×2Nパーティションは、正方形CUを2つの垂直方向に配向したPUに分割することによって作られ、PU0はPU1の左側にある。N×Nパーティションは、正方形CUを4つの等しいサイズのPUに分割することによって作られる。N×Nパーティションでは、PU0はCUの左上にあり、PU1はCUの右上にあり、PU2はCUの左下にあり、PU3はCUの右下にある。
【0038】
図2は、「非正方形」パーティションの追加のタイプを示している。2N×nDパーティションは、水平方向に配向した非正方形パーティションタイプであり、下側PU(PU1)のサイズは上側PU(PU0)よりも小さい(すなわち、CUサイズの1/4サイズである)。2N×nUパーティションは、水平方向に配向した非正方形パーティションタイプであり、下側PU(PU1)のサイズは上側PU(PU0)よりも大きい(すなわち、CUサイズの3/4サイズである)。nL×2Nパーティションは、垂直方向に配向した非正方形パーティションタイプであり、左側PU(PU0)のサイズは右側PU(PU1)よりも小さい(すなわち、CUサイズの1/4サイズである)。nR×2Nパーティションは、垂直方向に配向した非正方形パーティションタイプであり、左側PU(PU0)のサイズは右側PU(PU1)よりも大きい(すなわち、CUサイズの3/4サイズである)。これらの区分例は、非対称動きパーティション(AMP:asymmetric motion partition)と呼ばれることがある。
【0039】
CUは、より正確なインター予測(時間的予測)を可能にするために、パーティションタイプのうちの1つに従って区分される。動き情報は、パーティションごとに別々にシグナリングされる。より細かいパーティション(たとえば、2N×Nパーティションは2N×2Nパーティションよりも細かい)を用いると、より良い品質の予測子が、各パーティションについて潜在的に導出され得る。一方、動き情報はパーティションごとに別々にシグナリングされるので、より細かいパーティションをもつCUのシグナリングオーバーヘッドも比較的より高くなる。実際には、現在CUのためのパーティションタイプを判断することは、レートひずみ最適化にしばしば基づく。選択されたパーティションタイプは、予測の精度とシグナリングオーバーヘッドとの間のトレードオフである。HEVC規格のための現在の提案は、同じCUのPUのために冗長マージ候補を使用することを回避するための技法を実装する。冗長マージ候補は、同じCU中の別のPUと同じ動き情報を有するマージ候補である。特定のパーティションタイプについて、PU1(または、N×NパーティションのためのPU1、2および3)のためのマージ候補の各々は、CU全体が同じ動き情報を使用することを回避するために、PU0(またはN×NパーティションのためのPU0、1および2)の動き情報と比較される。CU中のあらゆるPUが同じ動き情報を使用した場合、結果は2N×2Nパーティションタイプ(すなわち、区分なし)と重複するであろう。したがって、より正確なインター予測のためにCUを区分することの利点はなくなるであろう。
【0040】
冗長マージ候補を使用することを回避するために、HEVCのための1つの提案は、マージ候補セット中の各マージ候補についての動き情報を同じCUの他のPUの動き情報と比較することを提案する。前にコーディングされたPUと同じ動き情報をもつマージ候補は、CU全体が同じ動き情報を使用することを回避するためにマージ候補セットから削除される。
【0041】
この技法によれば、PUのためのマージ候補セットを生成するためのプロセスは以下のようになる。
【0042】
1.次の候補ブロックについての動き情報を検査する
2.候補動き情報を、同じCU中の前にコーディングされたPUについての動き情報と比較する
3.候補ブロックについての候補動き情報が、前にコーディングされたPUについての動き情報と同じである場合、ステップ1に進み、そうでない場合、ステップ4に進む
4.候補ブロックをマージ候補セットに追加する
5.すべての候補ブロックが検査された場合、完了し、そうでない場合、ステップ1に進む
概して、このプロセスを用いたマージ候補に対する制約は、2N×N、N×2NおよびN×Nパーティションタイプについて以下の結果を生じる。
【0043】
1)2N×N/N×2Nの場合:第2のPU(PU1)のためのマージ候補が第1のPU(PU0)のそれと同じ動き情報を有する場合、そのマージ候補は利用不可能と設定される。
【0044】
2)N×Nの場合:
a.PU0およびPU1が同じ動き情報を有する。PU3のマージ候補がPU2と同じ動き情報を有する場合、マージ候補は利用不可能と設定される。
【0045】
b.PU0およびPU2が同じ動き情報を有する。PU3のマージ候補がPU1と同じ動き情報を有する場合、マージ候補は利用不可能と設定される。
【0046】
このプロセスは冗長マージ候補をなくすが、このプロセスは、すべてのPUが、後続のPUのためのマージ候補セットを作成するより前に符号化/復号されていることを必要とする。したがって、1つのCUの複数のPUを並列に処理する能力は制限される。エンコーダ/デコーダは、現在PUのためのマージ候補セットを構成する前に、同じCU中のすべての前のPUの最終動き情報を判断しなければならない。さらに、候補ブロックごとの比較演算は、エンコーダ/デコーダにとって計算複雑さを増加させ得る。
【0047】
一例では、本開示は、マージ候補セットの生成中の比較検査動作を削除することを提案し、それによって、マージ候補生成を並列化フレンドリーにする。開示する技法は、CUの候補ブロックと他のPUとの間で動き情報を比較する必要をなくす。したがって、CUのすべてのPUのためのマージ候補セットが並列に生成され得る。開示するプロセスはまた、符号化および復号の計算複雑さを低減し得る。
【0048】
各PUのための提案するプロセスは以下の通りである。
【0049】
1.次の候補ブロックを検査する
2.候補ブロックを候補セットに追加する
3.すべての隣接ブロックが検査された場合、完了し、そうでない場合、ステップ1に進む
このプロセスは、予測ユニットのインデックス(たとえば、PU0、PU1)を考慮することなしに、また候補ブロックの動き情報と前にコーディングされたPUの動き情報との比較を行うことなしに、すべてのPUのための統一ソリューションを与える。上記で示した動き情報比較ステップは削除され得る。反復的に説明したが、本方法のステップは並列に実行され得る。たとえば、並列プロセスの第1のスレッドは、ステップ1およびステップ2の第1のインスタンスを実行するようにとの命令を含むことができ、並列プロセスの第2の異なるスレッドは、ステップ1およびステップ2の第2のインスタンスを実行するようにとの命令を含むことができる。追加のスレッドも与えられ得る。
【0050】
提案する技法に基づいて、前のPU内にあるマージ候補がマージ候補セットに含められ得る。しかしながら、これは、CU全体が同じ動き情報を使用することを引き起こし得る。したがって、区分CUは、2N×2Nパーティションと同じコード化動きベクトルで終わることがあり、インター予測のための区分の利益は制限され得る。さらに、そのような冗長候補ブロックをマージ候補セット中に含めることは、冗長マージ候補をシグナリングするために余分のビットが使用されるので、いくらかの性能低下を生じ得る。したがって、本開示はまた、マージ候補が同じCUの別のPU内に位置する場合、マージ候補セットからそのマージ候補を削除することを提案する。
【0051】
図3Aは、CUのN×2Nパーティションについてのマージモードのための候補ブロックを示す概念図である。
図3Aに示す技法は、nL×2NまたはnR×2N非対称パーティションタイプに等しく適用可能であることに留意されたい。マージ候補セット100は、N×2N区分CUのPU0のためのマージ候補を示す。マージ候補セット100中のマージ候補は同じCUの別のPU内にないので、すべてのマージ候補がマージ候補セット100中に残り得る。マージ候補セット102は、N×2N区分CUのPU1のためのマージ候補を示す。PU1のためのマージセット102についてわかるように、マージ候補Lは同じCUのPU0からのものである。したがって、マージ候補Lはマージ候補セット102から削除/除外され得る。このコンテキストでは、削除されるマージ候補は、マージ候補のあらかじめ定義されたリストから削除される候補と考えられ得る。除外されるマージ候補は、マージ候補リストがあらかじめ定義されるか否かにかかわらず、そのようなリストが導出されているとき、マージ候補リストから除外されるマージ候補であり得る。概して、削除/除外されるマージ候補は、最終マージ候補リスト中で使用されないマージ候補である。
【0052】
マージ候補Lは、(たとえば、PU0がさらに区分される場合)PU0中の厳密な位置にある必要はないが、マージ候補LがPU0のいずれかの部分中にある場合、除外され得ることに留意されたい。また、マージ候補セット100および102の各々は、
図1に示すように、時間マージ候補Tをも有することに留意されたい。
【0053】
図3Bは、CUの2N×Nパーティションについてのマージモードのための候補ブロックを示す概念図である。
図3Bに示す技法は、2N×nUまたは2N×nD非対称パーティションタイプに等しく適用可能であることに留意されたい。マージ候補セット104は、2N×N区分CUのPU0のためのマージ候補を示す。マージ候補セット104中のマージ候補は同じCUの別のPU内にないので、すべてのマージ候補がマージ候補セット104中に残り得る。マージ候補セット106は、2N×N区分CUのPU1のためのマージ候補を示す。PU1のためのマージセット106についてわかるように、マージ候補Aは同じCUのPU0からのものである。したがって、マージ候補Aはマージ候補セット106から削除/除外され得る。マージ候補Aは、(たとえば、PU0がさらに区分される場合)図示のようにPU0中の厳密な位置にある必要はないが、マージ候補AがPU0のいずれかの部分中にある場合、除外され得ることに留意されたい。また、マージ候補セット104および106の各々は、
図1に示すように、時間マージ候補Tをも有することに留意されたい。
【0054】
図4Aは、CUのN×Nパーティションについてのマージモードのための候補ブロックを示す概念図である。マージ候補セット108は、N×N区分CUのPU0のためのマージ候補を示す。マージ候補セット108中のマージ候補は同じCUの別のPU内にないので、すべてのマージ候補がマージ候補セット108中に残り得る。
【0055】
マージ候補セット110は、N×N区分CUのPU1のためのマージ候補を示す。PU1のためのマージセット110についてわかるように、マージ候補LおよびBLは、それぞれ同じCUのPU0およびPU2からのものである。したがって、マージ候補LおよびBLはマージ候補セット110から削除/除外され得る。マージ候補LおよびBLは、(たとえば、PU0またはPU2がさらに区分される場合)図示のようにPU0およびPU2中の厳密な位置にある必要はないが、マージ候補Lおよび/またはBLがPU0および/またはPU2のいずれかの部分中にある場合、除外され得ることに留意されたい。
【0056】
マージ候補セット112は、N×N区分CUのPU2のためのマージ候補を示す。PU2のためのマージセット112についてわかるように、マージ候補AおよびRAは、それぞれ同じCUのPU0およびPU1からのものである。したがって、マージ候補AおよびRAはマージ候補セット112から削除/除外され得る。マージ候補AおよびRAは、(たとえば、PU0またはPU1がさらに区分される場合)図示のようにPU0およびPU1中の厳密な位置にある必要はないが、マージ候補Aおよび/またはRAがPU0および/またはPU1のいずれかの部分中にある場合、除外され得ることに留意されたい。
【0057】
マージ候補セット114は、N×N区分CUのPU3のためのマージ候補を示す。PU3のためのマージセット114についてわかるように、マージ候補LA、AおよびLは、それぞれ同じCUのPU0、PU1およびPU2からのものである。したがって、マージ候補LA、AおよびLはマージ候補セット114から削除/除外され得る。マージ候補LA、AおよびLは、(たとえば、PU0、PU1またはPU2がさらに区分される場合)図示のようにPU0、PU1およびPU2中の厳密な位置にある必要はないが、マージ候補LA、Aおよび/またはLがPU0、PU1および/またはPU2のいずれかの部分中にある場合、除外され得ることに留意されたい。
【0058】
マージ候補セット108、110、112および114の各々は、
図1に示すように、時間マージ候補Tをも有することに留意されたい。
【0059】
上記で説明した例は、2N×N、N×2N、およびN×Nパーティションタイプのみを考慮しているが、他のパーティションタイプ(たとえば、AMP、幾何学的動きパーティション(GMP:geometric motion partition)など)も、開示する技法から恩恵を受けることができる。概して、提案する技法は、マージ候補の動き情報を他の予測ユニットの動き情報と比較することなしにマージ候補セットを判断する。さらに、現在予測ユニットのためのマージ候補セット内のマージ候補は、それらが同じコーディングユニットの別の予測ユニット内にある場合、削除/除外され得る。
【0060】
N×Nパーティションモードについての別の例では、各予測ユニットのすべてのマージ候補が、別の予測ユニットによる使用にかかわらず使用される。
図4Bは、マージ候補が、別のPU中のそれらの位置にかかわらず削除/除外されない、コーディングユニットのN×Nパーティションについてのマージモードのための例示的な候補ブロックを示す概念図である。
図4Bに示すように、(時間候補Tを含む)すべての候補が、PU116、118、120および122の各々のために使用される。2N×N、N×2Nなどの他のパーティションモード、ならびに2N×nD、2N×nU、nL×2NおよびnR×2Nなどの非対称モードでは、同じCUの別のPU内に位置する現在PUのためのいくつかの候補の除外が、上記で説明したプロセスに従って適用される。
【0061】
本開示の別の例では、N×2Nおよび2N×Nパーティションモードでの予測ユニット0が、2N×2Nパーティションモードにおいて使用されるであろうマージ候補と重複しないマージ候補(すなわち、動きベクトル予測における実際に選択された候補)を使用する場合、その特定のパーティションモードでの予測ユニット1のために、
図1に示すセット中のすべての潜在的なマージ候補を利用するマージ候補セットが生成される。N×Nパーティションモードについての別の例では、すべてのマージ候補が、別の予測ユニットによる使用にかかわらず使用される。
【0062】
この例によれば、マージ候補セットを生成するためのルールは以下のようになる。
【0063】
1.N×2Nパーティションモード:(左(L)マージ候補がPU1のために決して使用されない、本開示の前の例とは対照的に)PU0のために使用されるマージインデックス(すなわち、実際に選択されたマージ候補)がRA、AまたはTである場合、PU1のLが使用され、そうでない場合、Lは使用されない。
【0064】
2.2N×Nパーティションモード:(上(A)マージ候補がPU1のために決して使用されない、本開示の前の例とは対照的に)PU0のために使用されるマージインデックスがBL、LまたはTである場合、PU1のAが使用され、そうでない場合、Aは使用されない。
【0065】
3.N×Nパーティションモード:すべてのPUのすべての予測候補が有効であると見なされる。
【0066】
N×2N例では、N×2NパーティションモードでのPU0のためのマージ候補ロケーションRA、AまたはTは、必ずしも2N×2Nパーティションのために使用されるとは限らないので、PU1のためにマージ候補Lを利用することは、2N×2Nパーティションモードとの重複にはならない。同様に、2N×N例では、PU0のためのマージ候補BL、LまたはTは、必ずしも2N×2Nパーティションのために使用されるとは限らないので、PU1のためにマージ候補Aを利用することは、2N×2Nパーティションモードとの重複にはならない。
【0067】
図5は、本開示の例による、マージモードで候補動きベクトルを生成するための技法を利用するように構成され得る例示的なビデオ符号化および復号システム10を示すブロック図である。
図5に示すように、システム10は、通信チャネル16を介して符号化ビデオを宛先デバイス14に送信するソースデバイス12を含む。符号化ビデオデータはまた、記憶媒体34またはファイルサーバ36に記憶され得、必要に応じて宛先デバイス14によってアクセスされ得る。記憶媒体またはファイルサーバに記憶されたとき、ビデオエンコーダ20は、コード化ビデオデータを記憶媒体に記憶するための、ネットワークインターフェース、コンパクトディスク(CD)、ブルーレイ(登録商標)またはデジタルビデオディスク(DVD)バーナーまたはスタンピングファシリティデバイス、あるいは他のデバイスなど、別のデバイスにコード化ビデオデータを与え得る。同様に、ネットワークインターフェース、CDまたはDVDリーダーなど、ビデオデコーダ30とは別個のデバイスが、記憶媒体からコード化ビデオデータを取り出し、取り出されたデータをビデオデコーダ30に与え得る。
【0068】
ソースデバイス12および宛先デバイス14は、モバイルデバイス、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆるスマートフォンなどの電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソールなどを含む、多種多様なデバイスのいずれかを備え得る。多くの場合、そのようなデバイスはワイヤレス通信が可能であり得る。したがって、通信チャネル16は、符号化ビデオデータの送信に好適なワイヤレスチャネル、ワイヤードチャネル、またはワイヤレスチャネルとワイヤードチャネルとの組合せを備え得る。同様に、ファイルサーバ36は、インターネット接続を含む任意の標準データ接続を介して宛先デバイス14によってアクセスされ得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適である、ワイヤレスチャネル(たとえば、Wi−Fi接続)、ワイヤード接続(たとえば、DSL、ケーブルモデムなど)、またはその両方の組合せを含み得る。
【0069】
本開示の例による、マージモードで候補動きベクトルを生成するための技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、および/またはビデオテレフォニーなどの適用例をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
【0070】
図5の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、変調器/復調器22と、送信機24とを含む。ソースデバイス12において、ビデオソース18は、ビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および/またはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムなどのソース、あるいはそのようなソースの組合せを含み得る。一例として、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるカメラフォンまたはビデオフォンを形成し得る。ただし、本開示で説明する技法は、概してビデオコーディングに適用可能であり得、ワイヤレスおよび/またはワイヤード適用例、あるいは符号化ビデオデータがローカルディスクに記憶された適用例に適用され得る。
【0071】
キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成されたビデオは、ビデオエンコーダ20によって符号化され得る。符号化されたビデオ情報は、ワイヤレス通信プロトコルなどの通信規格に従ってモデム22によって変調され、送信機24を介して宛先デバイス14に送信され得る。モデム22は、信号変調のために設計された様々なミキサ、フィルタ、増幅器または他の構成要素を含み得る。送信機24は、増幅器、フィルタ、および1つまたは複数のアンテナを含む、データを送信するために設計された回路を含み得る。
【0072】
ビデオエンコーダ20によって符号化された、キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成されたビデオはまた、後で消費するために記憶媒体34またはファイルサーバ36に記憶され得る。記憶媒体34は、ブルーレイディスク、DVD、CD−ROM、フラッシュメモリ、または符号化ビデオを記憶するための他の好適なデジタル記憶媒体を含み得る。記憶媒体34に記憶された符号化ビデオは、次いで、復号および再生のために宛先デバイス14によってアクセスされ得る。
【0073】
ファイルサーバ36は、符号化ビデオを記憶することと、その符号化ビデオを宛先デバイス14に送信することとが可能な任意のタイプのサーバであり得る。例示的なファイルサーバは、(たとえば、ウェブサイトのための)ウェブサーバ、FTPサーバ、ネットワーク接続ストレージ(NAS)デバイス、ローカルディスクドライブ、または符号化ビデオデータを記憶することと、符号化ビデオデータを宛先デバイスに送信することとが可能な他のタイプのデバイスを含む。ファイルサーバ36からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはその両方の組合せであり得る。ファイルサーバ36は、インターネット接続を含む任意の標準データ接続を介して宛先デバイス14によってアクセスされ得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適である、ワイヤレスチャネル(たとえば、Wi−Fi接続)、ワイヤード接続(たとえば、DSL、ケーブルモデム、イーサネット(登録商標)、USBなど)、またはその両方の組合せを含み得る。
【0074】
図5の例では、宛先デバイス14は、受信機26と、モデム28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。宛先デバイス14の受信機26はチャネル16を介して情報を受信し、モデム28はその情報を復調して、ビデオデコーダ30のための復調されたビットストリームを生成する。チャネル16を介して通信される情報は、ビデオデータを復号する際にビデオデコーダ30が使用する、ビデオエンコーダ20によって生成された様々なシンタックス情報を含み得る。そのようなシンタックスはまた、記憶媒体34またはファイルサーバ36に記憶された符号化ビデオデータとともに含まれ得る。ビデオエンコーダ20およびビデオデコーダ30の各々は、ビデオデータを符号化または復号することが可能であるそれぞれのエンコーダデコーダ(コーデック)の一部を形成し得る。
【0075】
ディスプレイデバイス32は、宛先デバイス14と一体化されるかまたはその外部にあり得る。いくつかの例では、宛先デバイス14は、一体型ディスプレイデバイスを含み、また、外部ディスプレイデバイスとインターフェースするように構成され得る。他の例では、宛先デバイス14はディスプレイデバイスであり得る。概して、ディスプレイデバイス32は、復号されたビデオデータをユーザに対して表示し、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
【0076】
図5の例では、通信チャネル16は、無線周波数(RF)スペクトルあるいは1つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体、あるいはワイヤレス媒体とワイヤード媒体との任意の組合せを備え得る。通信チャネル16は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信チャネル16は、概して、ワイヤード媒体またはワイヤレス媒体の任意の好適な組合せを含む、ビデオデータをソースデバイス12から宛先デバイス14に送信するのに好適な任意の通信媒体、または様々な通信媒体の集合体を表す。通信チャネル16は、ソースデバイス12から宛先デバイス14への通信を可能にするのに有用であり得るルータ、スイッチ、基地局、または任意の他の機器を含み得る。
【0077】
ビデオエンコーダ20およびビデオデコーダ30は、現在開発中の高効率ビデオコーディング(HEVC)規格などのビデオ圧縮規格に従って動作し得、HEVCテストモデル(HM)に準拠し得る。代替的に、ビデオエンコーダ20およびビデオデコーダ30は、代替的にMPEG−4,Part10,Advanced Video Coding(AVC)と呼ばれるITU−T H.264規格など、他のプロプライエタリ規格または業界規格、あるいはそのような規格の拡張に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。他の例には、MPEG−2およびITU−T H.263がある。
【0078】
図5には示されていないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30は、それぞれオーディオエンコーダおよびオーディオデコーダと統合され得、また、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するための適切なMUX−DEMUXユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、いくつかの例では、MUX−DEMUXユニットはITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
【0079】
ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ回路のいずれか、またはそれらの任意の組合せとして実装され得る。本技法がソフトウェアで部分的に実装されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し、1つまたは複数のプロセッサを使用してその命令をハードウェアで実行して、本開示の技法を実行し得る。ビデオエンコーダ20およびビデオデコーダ30の各々は1つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ/デコーダ(コーデック)の一部として統合され得る。
【0080】
ビデオエンコーダ20は、ビデオ符号化プロセスにおいてマージモードで候補動きベクトルを生成するための本開示の技法のいずれかまたはすべてを実装し得る。同様に、ビデオデコーダ30は、ビデオ復号プロセスにおいてマージモードで候補動きベクトルを生成するためのこれらの技法のいずれかまたはすべてを実装し得る。本開示で説明するビデオコーダは、ビデオエンコーダまたはビデオデコーダを指すことがある。同様に、ビデオコーディングユニットは、ビデオエンコーダまたはビデオデコーダを指すことがある。同様に、ビデオコーディングはビデオ符号化またはビデオ復号を指すことがある。
【0081】
本開示の一例では、ソースデバイス12のビデオエンコーダ20は、現在コーディングユニットの現在予測ユニットのためのマージ候補セットを判断することであって、マージ候補セットが、マージ候補セット中のマージ候補の動き情報を他の予測ユニットの動き情報と比較することなしに判断される、判断することと、マージ候補セットを使用して、現在予測ユニットについてマージ動きベクトル予測プロセスを実行することとを行うように構成され得る。ビデオエンコーダ20は、現在コーディングユニットの別の予測ユニット内にあるマージ候補をマージ候補セットから削除するようにさらに構成され得る。
【0082】
本開示の別の例では、ソースデバイス12のビデオデコーダ30は、現在コーディングユニットの現在予測ユニットのためのマージ候補セットを判断することであって、マージ候補セットが、マージ候補セット中のマージ候補の動き情報を他の予測ユニットの動き情報と比較することなしに判断される、判断することと、マージ候補セットを使用して、現在予測ユニットについてマージ動きベクトル予測プロセスを実行することとを行うように構成され得る。ビデオデコーダ30は、現在コーディングユニットの別の予測ユニット内にあるマージ候補をマージ候補セットから削除するようにさらに構成され得る。
【0083】
図6は、本開示で説明する、マージモードで候補動きベクトルを生成するための技法を使用し得るビデオエンコーダ20の一例を示すブロック図である。ビデオエンコーダ20について、例示のためにHEVCコーディングのコンテキストにおいて説明するが、他のコーディング規格または方法に関して本開示を限定するものではない。
【0084】
ビデオエンコーダ20は、ビデオフレーム内のCUのイントラコーディングおよびインターコーディングを実行し得る。イントラコーディングは、所与のビデオフレーム内のビデオデータの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの現在フレームと前にコーディングされたフレームとの間の時間的冗長性を低減または除去するために時間的予測に依拠する。イントラモード(Iモード)は、いくつかの空間ベースのビデオ圧縮モードのいずれかを指すことがある。単方向予測(Pモード)または双方向予測(Bモード)などのインターモードは、いくつかの時間ベースのビデオ圧縮モードのいずれかを指すことがある。
【0085】
図6に示すように、ビデオエンコーダ20は、符号化されるべきビデオフレーム内の現在ビデオブロックを受信する。
図6の例では、ビデオエンコーダ20は、動き補償ユニット44と、動き推定ユニット42と、イントラ予測ユニット46と、参照フレームバッファ64と、加算器50と、変換モジュール52と、量子化ユニット54と、エントロピー符号化ユニット56とを含む。
図6に示す変換モジュール52は、残差データのブロックに実際の変換または変換の組合せを適用する構造または装置であり、CUの変換ユニット(TU)と呼ばれることもある変換係数のブロックと混同されるべきでない。ビデオブロック再構成のために、ビデオエンコーダ20はまた、逆量子化ユニット58と、逆変換モジュール60と、加算器62とを含む。再構成されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタ処理するデブロッキングフィルタ(
図6に図示せず)も含まれ得る。所望される場合、デブロッキングフィルタは、一般に、加算器62の出力をフィルタ処理することになる。
【0086】
符号化プロセス中に、ビデオエンコーダ20は、コーディングされるべきビデオフレームまたはスライスを受信する。フレームまたはスライスは、複数のビデオブロック、たとえば、最大コーディングユニット(LCU)に分割され得る。動き推定ユニット42および動き補償ユニット44は、時間圧縮を行うために、1つまたは複数の参照フレーム中の1つまたは複数のブロックに対する受信したビデオブロックのインター予測コーディングを実行する。イントラ予測ユニット46は、空間圧縮を行うために、コーディングされるべきブロックと同じフレームまたはスライス中の1つまたは複数の隣接ブロックに対する受信したビデオブロックのイントラ予測コーディングを実行し得る。
【0087】
モード選択ユニット40は、たとえば、各モードについての誤差(すなわち、ひずみ)結果に基づいて、コーディングモードのうちの1つ、すなわち、イントラまたはインターを選択し得、得られたイントラまたはインター予測ブロック(たとえば、予測ユニット(PU))を、残差ブロックデータを生成するために加算器50に与え、参照フレーム中で使用する符号化ブロックを再構成するために加算器62に与える。加算器62は、以下でより詳細に説明するように、予測ブロックを、そのブロックについての、逆変換モジュール60からの逆量子化され逆変換されたデータと合成して、符号化ブロックを再構成する。いくつかのビデオフレームはIフレームに指定され得、Iフレーム中のすべてのブロックはイントラ予測モードで符号化される。場合によっては、たとえば、動き推定ユニット42によって実行された動き探索によって得られたブロックの予測が不十分であったとき、イントラ予測ユニット46は、PフレームまたはBフレーム中のブロックのイントラ予測符号化を実行し得る。
【0088】
動き推定ユニット42と動き補償ユニット44とは、高度に統合され得るが、概念的な目的のために別々に示してある。動き推定(または動き探索)は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、参照フレームの参照サンプルに対する、現在フレーム中の予測ユニットの変位を示し得る。動き推定ユニット42は、予測ユニットを参照フレームバッファ64に記憶された参照フレームの参照サンプルと比較することによってインターコード化フレームの予測ユニットのための動きベクトルを計算する。参照サンプルは、絶対値差分和(SAD)、2乗差分和(SSD)、または他の差分メトリックによって判断され得るピクセル差分に関して、コーディングされているPUを含むCUの部分にぴったり一致することがわかるブロックであり得る。参照サンプルは、参照フレームまたは参照スライス内のどこにでも発生し得る。
【0089】
動きベクトルによって識別される参照フレームの部分は参照サンプルと呼ばれることがある。動き補償ユニット44は、たとえば、PUのための動きベクトルによって識別される参照サンプルを取り出すことによって、現在CUの予測ユニットについての予測値を計算し得る。いくつかのビデオ符号化技法では、動き推定ユニット42は、計算された動きベクトルと、参照フレームと、予測方向(たとえば、参照フレームが現在フレームに時間的に先行するのか後続するのかに関する方向)とをエントロピー符号化ユニット56および動き補償ユニット44に送る。他のビデオ符号化技法は、動きベクトルを符号化するために動きベクトル予測プロセスを利用する。動きベクトル予測プロセスは、マージモードを含む複数のモードの中から選定され得る。
【0090】
マージモードでは、エンコーダは、マージ候補ブロックのセットを検討し、コーディングされるべき現在ブロックと同じ(または最もぴったり一致する)動きベクトルと参照フレームと予測方向とを有するブロックを選択する。これは、たとえば、各候補ブロックを順に検査することと、候補ブロックの動きベクトル、参照フレーム、および予測方向が現在ブロックにコピーされると、最良のレートひずみ性能を生じる候補ブロックを選定することとによって達成される。次いで、符号化ビデオビットストリーム中でこの動きベクトル情報(すなわち、動きベクトル、参照フレーム、および予測方向)をシグナリングするのではなく、エンコーダは、選択された動きベクトル候補のためのインデックス番号をシグナリングする。インデックス番号は、候補動きベクトルのセットのうちの選択された候補動きベクトルを識別する。デコーダは、現在ブロックのために使用すべき動きベクトル候補から動きベクトル情報をコピーし得る。
【0091】
上記で説明した例では、符号化ビットストリーム中で動きベクトル情報をシグナリングすることは、必ずしもエンコーダからデコーダへのそのような要素のリアルタイム送信を必要とするとは限らず、むしろ、そのような情報がビットストリーム中に符号化され、任意の方法でデコーダにとってアクセス可能にされることを意味する。これは、(たとえば、ビデオ会議における)リアルタイム送信、ならびに(たとえば、ストリーミング、ダウンロード、ディスクアクセス、カードアクセス、DVD、ブルーレイなどにおける)デコーダによる将来の使用のために符号化ビットストリームをコンピュータ可読媒体に記憶することを含み得る。
【0092】
マージモードについての上記で説明した本開示の例によれば、マージ候補セットは、マージ候補の動き情報を現在PUと同じCU内の他のPUの動き情報と比較することなしに生成され得る。さらに、本開示はまた、マージ候補が同じCUの別のPU内に位置する場合、マージ候補セットからそのマージ候補を削除することを提案する。マージ候補の生成は、動き補償ユニット44、動き補償ユニット42によって、あるいはビデオエンコーダ20の他の固定機能またはプログラマブルハードウェア構造によって処理され得る。
【0093】
一例として、CUのN×2Nパーティションでは、すべてのマージ候補(たとえば、
図1に示したマージ候補)がPU0のために使用され得る。PU1について、マージ候補Lは、それがPU0内にあるので、マージ候補リストから削除/除外される(
図3A参照)。別の例として、CUの2N×Nパーティションでは、すべてのマージ候補(たとえば、
図1に示したマージ候補)がPU0のために使用され得る。PU1について、マージ候補Aは、それがPU0内にあるので、マージ候補リストから削除される(
図3B参照)。
【0094】
別の例として、CUのN×Nパーティションでは、すべてのマージ候補(たとえば、
図1に示したマージ候補)がPU0のために使用され得る。PU1について、マージ候補LおよびBLは、それらがそれぞれPU0およびPU2内にあるので、マージ候補リストから削除/除外される(
図4A参照)。PU2について、マージ候補AおよびRAは、それらがそれぞれPU0およびPU1内にあるので、マージ候補リストから削除/除外される(
図4A参照)。PU3について、マージ候補LA、AおよびLは、それらがそれぞれPU0、PU1およびPU2内にあるので、マージ候補リストから削除/除外される(
図4A参照)。したがって、PU0は、マージ候補BL、L、LA、A、RAおよびTを使用し得る。PU1は、マージ候補LA、A、RAおよびTを使用し得る。PU2は、マージ候補BL、L、LAおよびTを使用し得る。PU3は、マージ候補BL、RAおよびTを使用し得る。
【0095】
さらに別の例として、N×Nパーティションモードでは、各予測ユニットのすべてのマージ候補が、別の予測ユニットによる使用にかかわらず使用される(
図4B参照)。2N×N、N×2Nなどの他のパーティションモード、ならびに2N×nD、2N×nU、nL×2NおよびnR×2Nなどの非対称モードでは、同じCUの別のPU内に位置する現在PUのためのいくつかの候補の除外が、上記で説明したプロセスに従って適用される。
【0096】
図6に戻ると、イントラ予測ユニット46は、動き推定ユニット42と動き補償ユニット44とによって実行されるインター予測の代替として、受信ブロックに対してイントラ予測を実行し得る。イントラ予測ユニット46は、隣接する、前にコーディングされたブロック、たとえば、ブロックについての左から右へ、上から下への符号化順序を仮定すると、現在ブロックの上、右上、左上、または左のブロックに対して受信ブロックを予測し得る。イントラ予測ユニット46は多種多様なイントラ予測モードで構成され得る。たとえば、イントラ予測ユニット46は、符号化されているCUのサイズに基づいて、一定数の方向性予測モード、たとえば、34個の方向性予測モードで構成され得る。
【0097】
イントラ予測ユニット46は、たとえば、様々なイントラ予測モードの予測誤差値を計算し、最も低い誤差値を生じるモードを選択することによって、イントラ予測モードを選択し得る。方向性予測モードは、空間的に隣接するピクセルの値を合成し、その合成された値をPU中の1つまたは複数のピクセル位置に適用するための機能を含み得る。PU中のすべてのピクセル位置の値が計算されると、イントラ予測ユニット46は、PUの計算値または予測値と符号化されるべき受信した元のブロックとの間のピクセル差分に基づいて予測モードの誤差値を計算し得る。イントラ予測ユニット46は、許容できる誤差値を生じるイントラ予測モードが発見されるまでイントラ予測モードをテストし続け得る。イントラ予測ユニット46は、次いで、PUを加算器50に送り得る。
【0098】
ビデオエンコーダ20は、コーディングされている元のビデオブロックから、動き補償ユニット44またはイントラ予測ユニット46によって計算された予測データを減算することによって、1つのルーマブロックと2つのクロマブロックとを含み得る残差ブロックを形成する。加算器50は、この減算演算を実行する1つまたは複数の構成要素を表す。残差ブロックはピクセル差分値の2次元行列に対応し得、残差ブロック中の値の数は、残差ブロックに対応するPU中のピクセルの数と同じである。残差ブロック中の値は、PU中のコロケートピクセルの値と、コーディングされるべき元のブロック中のコロケートピクセルの値との間の差分、すなわち、誤差に対応し得る。そのような演算はルーマ成分とクロマ成分の両方に適用され、したがって、差分は、コーディングされるブロックのタイプに応じてクロマ差分またはルーマ差分であり得る。
【0099】
変換モジュール52は、残差ブロックから1つまたは複数の変換ユニット(TU)を形成し得る。変換モジュール52は、複数の変換の中から変換を選択する。変換は、ブロックサイズ、コーディングモードなど、1つまたは複数のコーディング特性に基づいて選択され得る。変換モジュール52は、次いで、選択された変換をTUに適用して、変換係数の2次元アレイを備えるビデオブロックを生成する。
【0100】
変換モジュール52は、得られた変換係数を量子化ユニット54に送り得る。量子化ユニット54は、次いで、その変換係数を量子化し得る。エントロピー符号化ユニット56が、次いで、走査モードに従って、行列中の量子化された変換係数の走査を実行し得る。本開示では、エントロピー符号化ユニット56が走査を実行するものとして説明する。ただし、他の例では、量子化ユニット54などの他の処理ユニットが走査を実行し得ることを理解されたい。
【0101】
変換係数が1次元アレイに走査されると、エントロピー符号化ユニット56は、コンテキスト適応型可変長コーディング(CAVLC:context adaptive variable length coding)、コンテキスト適応型バイナリ算術コーディング(CABAC:context adaptive binary arithmetic coding)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC:syntax-based context-adaptive binary arithmetic coding)、または別のエントロピーコーディング方法などのエントロピーコーディングを係数に適用し得る。エントロピーコーディングはまた、マージモードにおいて使用されるシンタックス要素など、シンタックス要素に適用され得る。
【0102】
CAVLCを実行するために、エントロピー符号化ユニット56は、送信されるべきシンボルの可変長コードを選択し得る。VLCのコードワードは、相対的により短いコードがより可能性が高いシンボルに対応し、より長いコードがより可能性が低いシンボルに対応するように構築され得る。このようにして、VLCの使用は、たとえば、送信されるべき各シンボルのために等長コードワードを使用するよりも、ビット節約を達成し得る。
【0103】
CABACを実行するために、エントロピー符号化ユニット56は、送信されるべきシンボルを符号化するために、あるコンテキストに適用すべきコンテキストモデルを選択し得る。変換係数の場合、コンテキストは、たとえば、隣接値が非0であるか否かに関係し得る。エントロピー符号化ユニット56はまた、選択された変換を表す信号など、シンタックス要素をエントロピー符号化し得る。本開示の技法によれば、エントロピー符号化ユニット56は、コンテキストモデル選択のために使用されるファクタの中でも、たとえば、イントラ予測モードのためのイントラ予測方向、シンタックス要素に対応する係数の走査位置、ブロックタイプ、および/または変換タイプに基づいて、これらのシンタックス要素を符号化するために使用されるコンテキストモデルを選択し得る。
【0104】
エントロピー符号化ユニット56によるエントロピーコーディングの後に、得られた符号化ビデオは、ビデオデコーダ30などの別のデバイスに送信されるか、あるいは後で送信するかまたは取り出すためにアーカイブされ得る。
【0105】
場合によっては、エントロピー符号化ユニット56またはビデオエンコーダ20の別のユニットは、エントロピーコーディングに加えて他のコーディング機能を実行するように構成され得る。たとえば、エントロピー符号化ユニット56はCUおよびPUのコード化ブロックパターン(CBP)値を判断するように構成され得る。また、場合によっては、エントロピー符号化ユニット56は係数のランレングスコーディングを実行し得る。
【0106】
逆量子化ユニット58および逆変換モジュール60は、それぞれ逆量子化および逆変換を適用して、たとえば、参照ブロックを再構築する際に後で使用するために、ピクセル領域において残差ブロックを再構成する。動き補償ユニット44は、復号ピクチャバッファと呼ばれることもある参照フレームバッファ64のフレームのうちの1つから形成された予測ブロックに残差ブロックを加算することによって参照ブロックを計算し得る。動き補償ユニット44はまた、再構成された参照ブロックに1つまたは複数の補間フィルタを適用して、動き推定において使用するサブ整数ピクセル値を計算し得る。加算器62は、再構成された残差ブロックを、動き補償ユニット44によって生成された動き補償予測ブロックに加算して、参照フレームバッファ64に記憶するための再構成されたビデオブロックを生成する。再構成されたビデオブロックは、別の後にコーディングされたビデオフレーム中のブロックをインターコーディングするために動き推定ユニット42および動き補償ユニット44によって参照ブロックとして使用され得る。
【0107】
図7は、符号化ビデオシーケンスを復号するビデオデコーダ30の一例を示すブロック図である。
図7の例では、ビデオデコーダ30は、エントロピー復号ユニット70と、動き補償ユニット72と、イントラ予測ユニット74と、逆量子化ユニット76と、逆変換モジュール78と、参照フレームバッファ82と、加算器80とを含む。ビデオデコーダ30は、いくつかの例では、ビデオエンコーダ20(
図6参照)に関して説明した符号化パスとは概して逆の復号パスを実行し得る。
【0108】
エントロピー復号ユニット70は、変換係数の1次元アレイを取り出すために、符号化ビットストリームに対してエントロピー復号プロセスを実行する。使用されるエントロピー復号プロセスは、ビデオエンコーダ20によって使用されたエントロピーコーディング(たとえば、CABAC、CAVLCなど)に依存する。エンコーダによって使用されたエントロピーコーディングプロセスは、符号化ビットストリーム中でシグナリングされるか、または所定のプロセスであり得る。
【0109】
いくつかの例では、エントロピー復号ユニット70(または逆量子化ユニット76)は、ビデオエンコーダ20のエントロピー符号化ユニット56(または量子化ユニット54)によって使用された走査モードをミラーリングする走査を使用して受信値を走査し得る。代替として、係数の走査は逆量子化ユニット76において実行され得るが、走査については、例示のために、エントロピー復号ユニット70によって実行されるものとして説明する。さらに、説明しやすいように別個の機能ユニットとして示されているが、ビデオデコーダ30のエントロピー復号ユニット70、逆量子化ユニット76、および他のユニットの構造および機能は互いに高度に統合され得る。
【0110】
逆量子化ユニット76は、ビットストリーム中で与えられ、エントロピー復号ユニット70によって復号された、量子化変換係数を逆量子化(inverse quantize)、すなわち、逆量子化(de-quantize)する。逆量子化プロセスは、たとえば、HEVCのために提案されたプロセスまたはH.264復号規格によって定義されたプロセスと同様の、従来のプロセスを含み得る。逆量子化プロセスは、量子化の程度を判断し、同様に、適用されるべき逆量子化の程度を判断するための、CUについてビデオエンコーダ20によって計算された量子化パラメータQPの使用を含み得る。逆量子化ユニット76は、係数が1次元アレイから2次元アレイに変換される前または変換された後に変換係数を逆量子化し得る。
【0111】
逆変換モジュール78は、逆量子化された変換係数に逆変換を適用する。いくつかの例では、逆変換モジュール78は、ビデオエンコーダ20からのシグナリングに基づいて、あるいはブロックサイズ、コーディングモードなどの1つまたは複数のコーディング特性から変換を推論することによって、逆変換を判断し得る。いくつかの例では、逆変換モジュール78は、現在ブロックを含むLCUのための4分木のルートノードにおけるシグナリングされた変換に基づいて、現在ブロックに適用すべき変換を判断し得る。代替的に、変換は、LCU4分木中のリーフノードCUのためのTU4分木のルートにおいてシグナリングされ得る。いくつかの例では、逆変換モジュール78は、逆変換モジュール78が、復号されている現在ブロックの変換係数に2つ以上の逆変換を適用する、カスケード逆変換を適用し得る。
【0112】
イントラ予測ユニット74は、シグナリングされたイントラ予測モードと、現在フレームの前に復号されたブロックからのデータとに基づいて、現在フレームの現在ブロックについての予測データを生成し得る。
【0113】
本開示の例によれば、ビデオデコーダ30は、符号化ビットストリームから、動きベクトル予測プロセスにおいて使用するためのマージ候補ブロックのセットからの選択されたマージ候補ブロックのインデックスを示す予測シンタックスを受信し得る。ビデオデコーダは、さらに、受信したインデックスによって識別されるマージ候補ブロックに関連する動きベクトルと参照フレームと予測方向とを取り出すことと、取り出された動きベクトルと参照フレームと予測方向とを使用して、現在ブロックについてインター予測復号を実行することとを行うように構成される。
【0114】
マージモードについての上記で説明した本開示の例によれば、マージ候補セットは、マージ候補の動き情報を現在PUと同じCU内の他のPUの動き情報と比較することなしに、ビデオデコーダ30によって生成され得る。さらに、本開示はまた、マージ候補が同じCUの別のPU内に位置する場合、マージ候補セットからそのマージ候補を削除することを提案する。マージ候補の生成は、動き補償ユニット72によって、あるいはビデオデコーダ30の他の固定機能またはプログラマブルハードウェア構造によって処理され得る。ビデオデコーダ30が最終マージ候補セットを判断した後、ビデオデコーダ30は、受信したインデックスによって示されるマージ候補から動き情報を取り出し得る。
【0115】
一例として、CUのN×2Nパーティションでは、すべてのマージ候補(たとえば、
図1に示したマージ候補)がPU0のために使用され得る。PU1について、マージ候補Lは、それがPU0内にあるので、マージ候補リストから削除/除外される(
図3A参照)。別の例として、CUの2N×Nパーティションでは、すべてのマージ候補(たとえば、
図1に示したマージ候補)がPU0のために使用され得る。PU1について、マージ候補Aは、それがPU0内にあるので、マージ候補リストから削除/除外される(
図3B参照)。
【0116】
別の例として、CUのN×Nパーティションでは、すべてのマージ候補(たとえば、
図1に示したマージ候補)がPU0のために使用され得る。PU1について、マージ候補LおよびBLは、それらがそれぞれPU0およびPU2内にあるので、マージ候補リストから削除/除外される(
図4A参照)。PU2について、マージ候補AおよびRAは、それらがそれぞれPU0およびPU1内にあるので、マージ候補リストから削除/除外される(
図4A参照)。PU3について、マージ候補LA、AおよびLは、それらがそれぞれPU0、PU1およびPU2内にあるので、マージ候補リストから削除/除外される(
図4A参照)。
【0117】
さらに別の例として、N×Nパーティションモードでは、各予測ユニットのすべてのマージ候補が、別の予測ユニットによる使用にかかわらず使用される(
図4B参照)。2N×N、N×2Nなどの他のパーティションモード、ならびに2N×nD、2N×nU、nL×2NおよびnR×2Nなどの非対称モードでは、同じCUのPU内に位置する現在PUのためのいくつかの候補の除外が、上記で説明したプロセスに従って適用される。
【0118】
図7に戻ると、動き補償ユニット72は、動き補償ブロックを生成し、場合によっては、補間フィルタに基づいて補間を実行し得る。サブピクセル精度をもつ動き推定に使用されるべき補間フィルタの識別子は、シンタックス要素中に含まれ得る。動き補償ユニット72は、ビデオブロックの符号化中にビデオエンコーダ20によって使用された補間フィルタを使用して、参照ブロックのサブ整数ピクセルの補間値を計算し得る。動き補償ユニット72は、受信されたシンタックス情報に従って、ビデオエンコーダ20によって使用された補間フィルタを判断し、その補間フィルタを使用して予測ブロックを生成し得る。
【0119】
さらに、動き補償ユニット72およびイントラ予測ユニット74は、HEVCの例では、(たとえば、4分木によって与えられる)シンタックス情報の一部を使用して、符号化ビデオシーケンスの(1つまたは複数の)フレームを符号化するために使用されたLCUのサイズを判断し得る。動き補償ユニット72およびイントラ予測ユニット74はまた、シンタックス情報を使用して、符号化ビデオシーケンスのフレームの各CUがどのように分割されるか(および、同様に、サブCUがどのように分割されるか)を記述する分割情報を判断し得る。シンタックス情報はまた、各CUがどのように符号化されるかを示すモード(たとえば、イントラまたはインター予測、およびイントラ予測の場合はイントラ予測符号化モード)と、各インター符号化PUについての1つまたは複数の参照フレーム(および/またはそれらの参照フレームの識別子を含んでいる参照リスト)と、符号化ビデオシーケンスを復号するための他の情報とを含み得る。
【0120】
加算器80は、残差ブロックを、動き補償ユニット72またはイントラ予測ユニット74によって生成された対応する予測ブロックと合成して、復号ブロックを形成する。復号ブロックは、実際には、量子化または他のコーディング態様による損失を受けた、最初にコーディングされたブロックを再構成する。所望される場合、ブロッキネスアーティファクトを除去するために、復号ブロックをフィルタ処理するためにデブロッキングフィルタも適用され得る。復号ビデオブロックは、次いで、参照フレームバッファ82に記憶され、参照フレームバッファ82は、その後の動き補償のための参照ブロックを与え、また、(
図5のディスプレイデバイス32などの)ディスプレイデバイス上での提示のために復号ビデオを生成する。
【0121】
図8は、本開示の技法による、ビデオを符号化する例示的な方法を示すフローチャートである。
図8の方法は、
図6のビデオエンコーダ20によって行われ得る。ビデオエンコーダ20は、現在コーディングユニットの現在予測ユニットのためのマージ候補セットを判断することであって、マージ候補セットが、マージ候補セット中のマージ候補の動き情報を別の予測ユニットの動き情報と比較することなしに判断される、判断すること(200)と、現在コーディングユニットの別の予測ユニット内にあるマージ候補をマージ候補セットから削除すること(202)とを行うように構成され得る。マージ候補セットは、左上マージ候補、上マージ候補、右上マージ候補、左マージ候補、左下マージ候補、および時間マージ候補を含み得る。
【0122】
現在コーディングユニットが、予測ユニット1の上側に位置する予測ユニット0を含む2N×Nパーティションタイプを有する場合、ビデオエンコーダ20は、予測ユニット1のためのマージ候補セットから上マージ候補を削除し得る。現在コーディングユニットが、予測ユニット1の左側に位置する予測ユニット0を含むN×2Nパーティションタイプを有する場合、ビデオエンコーダ20は、予測ユニット1のためのマージ候補セットから左マージ候補を削除し得る。
【0123】
現在コーディングユニットが、現在コーディングユニットの左上部分に位置する予測ユニット0と、現在コーディングユニットの右上部分に位置する予測ユニット1と、現在コーディングユニットの左下部分に位置する予測ユニット2と、現在コーディングユニットの右下部分に位置する予測ユニット3とを含むN×Nパーティションタイプを有する場合、ビデオエンコーダ20は、予測ユニット1のためのマージ候補セットから左マージ候補と左下マージ候補とを削除し得る。この場合、ビデオエンコーダ20は、さらに、予測ユニット2のためのマージ候補セットから上マージ候補と右上マージ候補とを削除し得る。この場合、ビデオエンコーダ20は、またさらに、予測ユニット3のためのマージ候補セットから上マージ候補と、左マージ候補と、左上マージ候補とを削除し得る。
【0124】
他の例では、マージ候補を除外することは、N×Nパーティションモード以外のすべてのパーティションモードについて、現在コーディングユニットのための別の予測ユニット内にあるマージ候補をマージ候補セットから除外することを備える。この場合、N×Nパーティションモードを有するコーディングユニットからの予測ユニットからのマージ候補は削除/除外されない。
【0125】
ビデオエンコーダ20は、現在予測ユニットのための選択されたマージ候補を判断するために、マージ候補セットを使用して、現在予測ユニットについてマージ動きベクトル予測プロセスを実行すること(204)と、符号化ビデオビットストリーム中で選択されたマージ候補を示すシンタックス要素をシグナリングすること(206)とを行うようにさらに構成され得る。
【0126】
図9は、本開示の技法による、ビデオを復号する例示的な方法を示すフローチャートである。
図9の方法は、
図7のビデオデコーダ30によって行われ得る。ビデオデコーダ30は、現在予測ユニットのための選択されたマージ候補を示すシンタックス要素を受信すること(220)と、現在コーディングユニットの現在予測ユニットのためのマージ候補セットを判断することであって、マージ候補セットが、マージ候補セット中のマージ候補の動き情報を他の予測ユニットの動き情報と比較することなしに判断される、判断すること(222)とを行うように構成され得る。ビデオデコーダ30は、現在コーディングユニットの別の予測ユニット内にあるマージ候補をマージ候補セットから削除すること(224)を行うようにさらに構成され得る。マージ候補セットは、左上マージ候補、上マージ候補、右上マージ候補、左マージ候補、左下マージ候補、および時間マージ候補を含み得る。
【0127】
現在コーディングユニットが、予測ユニット1の上側に位置する予測ユニット0を含む2N×Nパーティションタイプを有する場合、ビデオデコーダ30は、予測ユニット1のためのマージ候補セットから上マージ候補を削除し得る。現在コーディングユニットが、予測ユニット1の左側に位置する予測ユニット0を含むN×2Nパーティションタイプを有する場合、ビデオデコーダ30は、予測ユニット1のためのマージ候補セットから左マージ候補を削除し得る。
【0128】
現在コーディングユニットが、現在コーディングユニットの左上部分に位置する予測ユニット0と、現在コーディングユニットの右上部分に位置する予測ユニット1と、現在コーディングユニットの左下部分に位置する予測ユニット2と、現在コーディングユニットの右下部分に位置する予測ユニット3とを含むN×Nパーティションタイプを有する場合、ビデオデコーダ30は、予測ユニット1のためのマージ候補セットから左マージ候補と左下マージ候補とを削除し得る。この場合、ビデオデコーダ30は、さらに、予測ユニット2のためのマージ候補セットから上マージ候補と右上マージ候補とを削除し得る。この場合、ビデオデコーダ30は、またさらに、予測ユニット3のためのマージ候補セットから上マージ候補と、左マージ候補と、左上マージ候補とを削除し得る。
【0129】
他の例では、マージ候補を除外することは、N×Nパーティションモード以外のすべてのパーティションモードについて、現在コーディングユニットのための別の予測ユニット内にあるマージ候補をマージ候補セットから除外することを備える。この場合、N×Nパーティションモードを有するコーディングユニットからの予測ユニットからのマージ候補は削除/除外されない。
【0130】
ビデオデコーダ30は、現在予測ユニットのための動きベクトルを判断するために、マージ候補セットと受信したシンタックス要素とを使用して、現在予測ユニットについてマージ動きベクトル予測プロセスを実行すること(226)と、判断された動きベクトルを使用して現在予測ユニットを復号すること(228)とを行うようにさらに構成され得る。
【0131】
1つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体または通信媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、(1)非一時的である有形コンピュータ可読記憶媒体、あるいは(2)信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実装のための命令、コードおよび/またはデータ構造を取り出すために1つまたは複数のコンピュータあるいは1つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
【0132】
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD−ROMまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびブルーレイディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【0133】
命令は、1つまたは複数のデジタル信号プロセッサ(DSP)などの1つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、あるいは他の等価な集積回路またはディスクリート論理回路によって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明した技法の実装に好適な他の構造のいずれかを指すことがある。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のハードウェアおよび/またはソフトウェアモジュール内に与えられ得、あるいは複合コーデックに組み込まれ得る。また、本技法は、1つまたは複数の回路または論理要素中に十分に実装され得る。
【0134】
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェアおよび/またはファームウェアとともに、上記で説明した1つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって与えられ得る。
【0135】
様々な例について説明した。これらおよび他の例は以下の特許請求の範囲内に入る。
以下に、出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
ビデオデータをコーディングする方法であって、
現在コーディングユニットの現在予測ユニットのためのマージ候補セットを判断することであって、前記マージ候補セットが、前記マージ候補セット中のマージ候補の動き情報を他の予測ユニットの動き情報と比較することなしに判断される、判断することと、
前記マージ候補セットを使用して、前記現在予測ユニットについてマージ動きベクトル予測プロセスを実行することと
を備える方法。
[C2]
前記現在コーディングユニットの別の予測ユニット内にあるマージ候補を前記マージ候補セットから除外すること
をさらに備える、請求項1に記載の方法。
[C3]
マージ候補を除外することが、N×Nパーティションモード以外のすべてのパーティションモードについて、前記現在コーディングユニットのための別の予測ユニット内にあるマージ候補を前記マージ候補セットから除外することを備える、請求項2に記載の方法。
[C4]
前記N×Nパーティションモードを有する前記コーディングユニットからの予測ユニットからのマージ候補を除外しないこと
をさらに備える、請求項3に記載の方法。
[C5]
前記マージ候補セットが、左上マージ候補、上マージ候補、右上マージ候補、左マージ候補、左下マージ候補、および時間マージ候補を含む、請求項2に記載の方法。
[C6]
前記現在コーディングユニットが、予測ユニット1の上側に位置する予測ユニット0を含む2N×N、2N×nUまたは2N×nDパーティションタイプを有し、前記マージ候補セットからマージ候補を除外することが、予測ユニット1のための前記マージ候補セットから前記上マージ候補を除外することを備える、請求項5に記載の方法。
[C7]
前記現在コーディングユニットが、予測ユニット1の左側に位置する予測ユニット0を含むN×2N、nL×2NまたはnR×2Nパーティションタイプを有し、前記マージ候補セットからマージ候補を除外することが、予測ユニット1のための前記マージ候補セットから前記左マージ候補を除外することを備える、請求項5に記載の方法。
[C8]
前記現在コーディングユニットが、前記現在コーディングユニットの左上部分に位置する予測ユニット0と、前記現在コーディングユニットの右上部分に位置する予測ユニット1と、前記現在コーディングユニットの左下部分に位置する予測ユニット2と、前記現在コーディングユニットの右下部分に位置する予測ユニット3とを含むN×Nパーティションタイプを有し、
前記マージ候補セットからマージ候補を除外することが、予測ユニット1のための前記マージ候補セットから前記左マージ候補と前記左下マージ候補とを除外することを備え、
前記マージ候補セットからマージ候補を除外することが、予測ユニット2のための前記マージ候補セットから前記上マージ候補と前記右上マージ候補とを除外することを備え、
前記マージ候補セットからマージ候補を除外することが、予測ユニット3のための前記マージ候補セットから前記上マージ候補と、前記左マージ候補と、前記左上マージ候補とを除外することを備える、請求項2に記載の方法。
[C9]
ビデオをコーディングすることが、ビデオを復号することを備え、前記方法が、
前記現在予測ユニットのための選択されたマージ候補を示すシンタックス要素を受信することと、
前記現在予測ユニットのための動きベクトルを判断するために、前記マージ候補セットと前記受信したシンタックス要素とを使用して、前記現在予測ユニットについて前記マージ動きベクトル予測プロセスを実行することと、
前記判断された動きベクトルを使用して前記現在予測ユニットを復号することと
をさらに備える、請求項2に記載の方法。
[C10]
ビデオをコーディングすることが、ビデオを符号化することを備え、前記方法が、
前記現在予測ユニットのための選択されたマージ候補を判断するために、前記マージ候補セットを使用して、前記現在予測ユニットについて前記動きベクトル予測プロセスを実行することと、
符号化ビデオビットストリーム中で前記選択されたマージ候補を示すシンタックス要素をシグナリングすることと
をさらに備える、請求項2に記載の方法。
[C11]
ビデオデータをコーディングするように構成された装置であって、
現在コーディングユニットの現在予測ユニットのためのマージ候補セットを判断することであって、前記マージ候補セットが、前記マージ候補セット中のマージ候補の動き情報を他の予測ユニットの動き情報と比較することなしに判断される、判断することと、
前記マージ候補セットを使用して、前記現在予測ユニットについてマージ動きベクトル予測プロセスを実行することと
を行うように構成されたビデオコーダ
を備える装置。
[C12]
前記ビデオコーダが、
前記現在コーディングユニットの別の予測ユニット内にあるマージ候補を前記マージ候補セットから除外するようにさらに構成された、請求項11に記載の装置。
[C13]
前記ビデオコーダが、
N×Nパーティションモード以外のすべてのパーティションモードについて、前記現在コーディングユニットのための別の予測ユニット内にあるマージ候補を前記マージ候補セットから除外するようにさらに構成された、請求項12に記載の装置。
[C14]
前記ビデオコーダが、
前記N×Nパーティションモードを有する前記コーディングユニットからの予測ユニットからのマージ候補を除外しないようにさらに構成された、請求項13に記載の装置。
[C15]
前記マージ候補セットが、左上マージ候補、上マージ候補、右上マージ候補、左マージ候補、左下マージ候補、および時間マージ候補を含む、請求項12に記載の装置。
[C16]
前記現在コーディングユニットが、予測ユニット1の上側に位置する予測ユニット0を含む2N×N、2N×nUまたは2N×nDパーティションタイプを有し、前記ビデオコーダが、予測ユニット1のための前記マージ候補セットから前記上マージ候補を除外するようにさらに構成された、請求項15に記載の装置。
[C17]
前記現在コーディングユニットが、予測ユニット1の左側に位置する予測ユニット0を含むN×2N、nL×2NまたはnR×2Nパーティションタイプを有し、前記ビデオコーダが、予測ユニット1のための前記マージ候補セットから前記左マージ候補を除外するようにさらに構成された、請求項15に記載の装置。
[C18]
前記現在コーディングユニットが、前記現在コーディングユニットの左上部分に位置する予測ユニット0と、前記現在コーディングユニットの右上部分に位置する予測ユニット1と、前記現在コーディングユニットの左下部分に位置する予測ユニット2と、前記現在コーディングユニットの右下部分に位置する予測ユニット3とを含むN×Nパーティションタイプを有し、
前記ビデオコーダが、予測ユニット1のための前記マージ候補セットから前記左マージ候補と前記左下マージ候補とを除外するようにさらに構成され、
前記ビデオコーダが、予測ユニット2のための前記マージ候補セットから前記上マージ候補と前記右上マージ候補とを除外するようにさらに構成され、
前記ビデオコーダが、予測ユニット3のための前記マージ候補セットから前記上マージ候補と、前記左マージ候補と、前記左上マージ候補とを除外するようにさらに構成された、請求項15に記載の装置。
[C19]
前記ビデオコーダがビデオデコーダであり、前記ビデオデコーダが、
前記現在予測ユニットのための選択されたマージ候補を示すシンタックス要素を受信することと、
前記現在予測ユニットのための動きベクトルを判断するために、前記マージ候補セットと前記受信したシンタックス要素とを使用して、前記現在予測ユニットについて前記マージ動きベクトル予測プロセスを実行することと、
前記判断された動きベクトルを使用して前記現在予測ユニットを復号することと
を行うようにさらに構成された、請求項12に記載の装置。
[C20]
前記ビデオコーダがビデオエンコーダであり、前記ビデオエンコーダが、
前記現在予測ユニットのための選択されたマージ候補を判断するために、前記マージ候補セットを使用して、前記現在予測ユニットについて前記動きベクトル予測プロセスを実行することと、
符号化ビデオビットストリーム中で前記選択されたマージ候補を示すシンタックス要素をシグナリングすることと
を行うようにさらに構成された、請求項12に記載の装置。
[C21]
前記ビデオコーダがモバイルデバイスの一部である、請求項11に記載の装置。
[C22]
ビデオデータをコーディングするように構成された装置であって、
現在コーディングユニットの現在予測ユニットのためのマージ候補セットを判断するための手段であって、前記マージ候補セットが、前記マージ候補セット中のマージ候補の動き情報を他の予測ユニットの動き情報と比較することなしに判断される、判断するための手段と、
前記マージ候補セットを使用して、前記現在予測ユニットについてマージ動きベクトル予測プロセスを実行するための手段と
を備える装置。
[C23]
前記現在コーディングユニットの別の予測ユニット内にあるマージ候補を前記マージ候補セットから除外するための手段
をさらに備える、請求項22に記載の装置。
[C24]
マージ候補を除外するための前記手段が、N×Nパーティションモード以外のすべてのパーティションモードについて、前記現在コーディングユニットのための別の予測ユニット内にあるマージ候補を前記マージ候補セットから除外するための手段を備える、請求項23に記載の装置。
[C25]
前記N×Nパーティションモードを有する前記コーディングユニットからの予測ユニットからのマージ候補を除外しないための手段
をさらに備える、請求項23に記載の装置。
[C26]
前記マージ候補セットが、左上マージ候補、上マージ候補、右上マージ候補、左マージ候補、左下マージ候補、および時間マージ候補を含む、請求項23に記載の装置。
[C27]
前記現在コーディングユニットが、予測ユニット1の上側に位置する予測ユニット0を含む2N×N、2N×nUまたは2N×nDパーティションタイプを有し、前記マージ候補セットからマージ候補を除外するための前記手段が、予測ユニット1のための前記マージ候補セットから前記上マージ候補を除外するための手段を備える、請求項26に記載の装置。
[C28]
前記現在コーディングユニットが、予測ユニット1の左側に位置する予測ユニット0を含むN×2N、nL×2NまたはnR×2Nパーティションタイプを有し、前記マージ候補セットからマージ候補を除外するための前記手段が、予測ユニット1のための前記マージ候補セットから前記左マージ候補を除外するための手段を備える、請求項26に記載の装置。
[C29]
前記現在コーディングユニットが、前記現在コーディングユニットの左上部分に位置する予測ユニット0と、前記現在コーディングユニットの右上部分に位置する予測ユニット1と、前記現在コーディングユニットの左下部分に位置する予測ユニット2と、前記現在コーディングユニットの右下部分に位置する予測ユニット3とを含むN×Nパーティションタイプを有し、
前記マージ候補セットからマージ候補を除外するための前記手段が、予測ユニット1のための前記マージ候補セットから前記左マージ候補と前記左下マージ候補とを除外するための手段を備え、
前記マージ候補セットからマージ候補を除外するための前記手段が、予測ユニット2のための前記マージ候補セットから前記上マージ候補と前記右上マージ候補とを除外するための手段を備え、
前記マージ候補セットからマージ候補を除外するための前記手段が、予測ユニット3のための前記マージ候補セットから前記上マージ候補と、前記左マージ候補と、前記左上マージ候補とを除外するための手段を備える、請求項26に記載の装置。
[C30]
前記装置が、ビデオを復号するように構成され、前記装置が、
前記現在予測ユニットのための選択されたマージ候補を示すシンタックス要素を受信するための手段と、
前記現在予測ユニットのための動きベクトルを判断するために、前記マージ候補セットと前記受信したシンタックス要素とを使用して、前記現在予測ユニットについて前記マージ動きベクトル予測プロセスを実行するための手段と、
前記判断された動きベクトルを使用して前記現在予測ユニットを復号するための手段と
をさらに備える、請求項23に記載の装置。
[C31]
前記装置が、ビデオを符号化するように構成され、前記装置が、
前記現在予測ユニットのための選択されたマージ候補を判断するために、前記マージ候補セットを使用して、前記現在予測ユニットについて前記動きベクトル予測プロセスを実行するための手段と、
符号化ビデオビットストリーム中で前記選択されたマージ候補を示すシンタックス要素をシグナリングするための手段と
をさらに備える、請求項23に記載の装置。
[C32]
前記装置がモバイルデバイスの一部である、請求項22に記載の装置。
[C33]
実行されたとき、ビデオデータをコーディングするように構成された1つまたは複数のプロセッサに、
現在コーディングユニットの現在予測ユニットのためのマージ候補セットを判断することであって、前記マージ候補セットが、前記マージ候補セット中のマージ候補の動き情報を他の予測ユニットの動き情報と比較することなしに判断される、判断することと、
前記マージ候補セットを使用して、前記現在予測ユニットについてマージ動きベクトル予測プロセスを実行することと
を行わせる命令を記憶したコンピュータ可読記憶媒体。
[C34]
前記命令が、前記1つまたは複数のプロセッサに、
前記現在コーディングユニットの別の予測ユニット内にあるマージ候補を前記マージ候補セットから除外することをさらに行わせる、請求項33に記載のコンピュータ可読記憶媒体。
[C35]
前記命令が、前記1つまたは複数のプロセッサに、
N×Nパーティションモード以外のすべてのパーティションモードについて、前記現在コーディングユニットのための別の予測ユニット内にあるマージ候補を前記マージ候補セットから除外することをさらに行わせる、請求項34に記載のコンピュータ可読記憶媒体。
[C36]
前記命令が、前記1つまたは複数のプロセッサに、
前記N×Nパーティションモードを有する前記コーディングユニットからの予測ユニットからのマージ候補を除外しないことをさらに行わせる、請求項35に記載のコンピュータ可読記憶媒体。
[C37]
前記マージ候補セットが、左上マージ候補、上マージ候補、右上マージ候補、左マージ候補、左下マージ候補、および時間マージ候補を含む、請求項34に記載のコンピュータ可読記憶媒体。
[C38]
前記現在コーディングユニットが、予測ユニット1の上側に位置する予測ユニット0を含む2N×N、2N×nUまたは2N×nDパーティションタイプを有し、前記命令が、前記1つまたは複数のプロセッサに、予測ユニット1のための前記マージ候補セットから前記上マージ候補を除外することをさらに行わせる、請求項37に記載のコンピュータ可読記憶媒体。
[C39]
前記現在コーディングユニットが、予測ユニット1の左側に位置する予測ユニット0を含むN×2N、nL×2NまたはnR×2Nパーティションタイプを有し、前記命令が、前記1つまたは複数のプロセッサに、予測ユニット1のための前記マージ候補セットから前記左マージ候補を除外することをさらに行わせる、請求項37に記載のコンピュータ可読記憶媒体。
[C40]
前記現在コーディングユニットが、前記現在コーディングユニットの左上部分に位置する予測ユニット0と、前記現在コーディングユニットの右上部分に位置する予測ユニット1と、前記現在コーディングユニットの左下部分に位置する予測ユニット2と、前記現在コーディングユニットの右下部分に位置する予測ユニット3とを含むN×Nパーティションタイプを有し、
前記命令が、前記1つまたは複数のプロセッサに、予測ユニット1のための前記マージ候補セットから前記左マージ候補と前記左下マージ候補とを除外することをさらに行わせ、前記命令が、前記1つまたは複数のプロセッサに、予測ユニット2のための前記マージ候補セットから前記上マージ候補と前記右上マージ候補とを除外することをさらに行わせ、
前記命令が、前記1つまたは複数のプロセッサに、予測ユニット3のための前記マージ候補セットから前記上マージ候補と、前記左マージ候補と、前記左上マージ候補とを除外することをさらに行わせる、請求項37に記載のコンピュータ可読記憶媒体。