(81)【指定国】
AP(BW,GH,GM,KE,LR,LS,MW,MZ,NA,RW,SD,SL,ST,SZ,TZ,UG,ZM,ZW),EA(AM,AZ,BY,KG,KZ,RU,TJ,TM),EP(AL,AT,BE,BG,CH,CY,CZ,DE,DK,EE,ES,FI,FR,GB,GR,HR,HU,IE,IS,IT,LT,LU,LV,MC,MK,MT,NL,NO,PL,PT,RO,RS,SE,SI,SK,SM,TR),OA(BF,BJ,CF,CG,CI,CM,GA,GN,GQ,GW,KM,ML,MR,NE,SN,TD,TG),AE,AG,AL,AM,AO,AT,AU,AZ,BA,BB,BG,BH,BN,BR,BW,BY,BZ,CA,CH,CL,CN,CO,CR,CU,CZ,DE,DJ,DK,DM,DO,DZ,EC,EE,EG,ES,FI,GB,GD,GE,GH,GM,GT,HN,HR,HU,ID,IL,IN,IR,IS,JO,JP,KE,KG,KH,KN,KP,KR,KW,KZ,LA,LC,LK,LR,LS,LU,LY,MA,MD,ME,MG,MK,MN,MW,MX,MY,MZ,NA,NG,NI,NO,NZ,OM,PA,PE,PG,PH,PL,PT,QA,RO,RS,RU,RW,SA,SC,SD,SE,SG,SK,SL,SM,ST,SV,SY,TH,TJ,TM,TN,TR,TT
映像復号化方法は、多数のテーブルを維持することであって、各テーブルは、動き候補のセットを含み、各動き候補は、以前符号化された映像ブロックから導出された対応する動き情報に関連付けられる、維持することと、現在の映像ブロックと映像領域における現在の映像ブロックのビットストリーム表現との間で変換を行うことと、更新規則に基づいて1つ以上のテーブルを更新することと、を含む。
多数のテーブルを維持することであって、各テーブルは、動き候補のセットを含み、各動き候補は、以前に符号化した映像ブロックから導出した対応する動き情報に関連付けられる、維持することと、
現在の映像ブロックと映像領域における前記現在の映像ブロックのビットストリーム表現との間で変換を行うことと、
更新規則に基づいて前記1つ以上のテーブルを更新することと、を含む、
方法。
現在の映像ブロックと映像領域における前記現在の映像ブロックのビットストリーム表現との間の前記変換処理において、1つのテーブルを用いる場合、同じテーブルを更新する、
請求項1に記載の方法。
動き候補は、予測方向、参照ピクチャインデックス、動きベクトル値、強度補償フラグ、アフィンフラグ、動きベクトル差精度または動きベクトル差分値のうち少なくとも1つを含む動き情報に関連付けられる、
請求項1〜11のいずれかに記載の方法。
【発明を実施するための形態】
【0014】
映像の圧縮率を改善するために、研究者らは、映像をコーディングする新しい技術を絶えず求めている。
【0016】
本明細書は、映像符号化技術に関する。具体的には、映像符号化における動き情報のコーディング(例えば、マージモード、AMVPモード)に関する。HEVCのような既存の映像符号化規格に適用してもよいし、規格(Versatile Video Coding)を確定させるために適用してもよい。本発明は、将来の映像符号化規格またはビデオコーデックにも適用可能である。
【0018】
映像符号化規格は、主に周知のITU−TおよびISO/IEC規格の開発によって発展してきた。ITU−TはH.261とH.263を、ISO/IECはMPEG−1とMPEG−4 Visualを、両団体はH.262/MPEG−2 VideoとH.264/MPEG−4 高度映像符号化(AVC)とH.265/HEVC規格を共同で作成した。映像符号化規格、H.262は、時間予測プラス変換コーディングが利用されるハイブリッド映像符号化構造に基づく。典型的なHEVCエンコーダフレームワークの一例を
図1に示す。
2.1 パーティション構造
2.1.1 H.264/AVCにおけるパーティションツリー構造
【0019】
以前の規格におけるコーディング層のコアは、16×16ブロックの輝度サンプルを含む、また、通常の4:2:0カラーサンプリングの場合、2つの対応する8×8ブロックのクロマサンプル含むマクロブロックであった。
【0020】
イントラコーディングされたブロックは、画素間の空間的相関を利用するために空間予測を使用する。2つのパーティションを規定する。16×16および4×4である。
【0021】
インターコーディングされたブロックは、ピクチャ間の動きを推定することで、空間的予測の代わりに時間予測を用いる。動きは、16×16マクロブロックまたはそのサブマクロブロックパーティションのいずれかに対して独立して推定できる。16×8、8×16、8×8、8×4、4×8、4×4(
図2参照)。1つのサブマクロブロックパーティション当たり1つの動きベクトル(MV)のみが許可される。
【0022】
2.1.2 HEVCにおけるパーティションツリー構造
【0023】
HEVCにおいて、CTUは、様々な局所的特徴に適応するように、コーディングツリー(coding tree)と呼ばれる4分木構造を用いてCUに分割される。インターピクチャ(時間的)予測またはイントラピクチャ(空間的)予測を使用した、ピクチャ領域をコーディングするかどうかの決定は、CUレベルで行われる。各CUは、PU分割タイプによって1つ、2つまたは4つのPUに更に分割することができる。1つのPUの内部では、同じ予測処理が適用され、PU単位で関連情報がデコーダに送信される。PU分割タイプに基づく予測処理を適用して残差ブロックを得た後、CUのためのコーディングツリーに類似した別の4分木構造に基づいて、CUを変換ユニット(TU)に分割することができる。HEVC構造の重要な特徴の1つは、CU、PU、TUを含む複数のパーティション概念を有することである。
【0024】
以下、HEVCを使用したハイブリッド映像符号化に関連する様々な特徴に焦点を当てる。
【0025】
1)コーディングツリーユニットおよびコーディングツリーブロック(CTB)構造:HEVCにおける類似した構造は、符号化ツリーユニット(CTU)であり、この符号化ツリーユニットは、エンコーダによって選択されたサイズを有し、従来のマクロブロックよりも大きくてもよい。CTUは、輝度CTBと、対応するクロマCTBおよび構文要素とからなる。輝度CTBのサイズL×Lは、L=16、32、または64個のサンプルとして選択することができ、より大きいサイズは、一般的に、より優れた圧縮を有効にする。HEVCは、次いで、ツリー構造および4分木の様な信号通知を使用して、CTBをより小さなブロックに分割することをサポートする。
【0026】
2)コーディングユニット(CU)およびコーディングブロック(CB):CTUの4分木の構文は、その輝度およびクロマCBのサイズおよび位置を指定する。4分木のルートはCTUに関連付けられる。従って、輝度CTBのサイズは、輝度CBに対してサポートされる最大のサイズである。CTUを輝度CBおよびクロマCBに分割することは、共に信号通知されることである。1つの輝度CBおよび通常2つのクロマCBは、関連する構文と共に、1つのコーディングユニット(CU)を形成する。CTBは、1つのCUのみを含んでもよく、または複数のCUを形成するように分割されてもよく、各CUは、それに関連付けられた予測ユニット(PU)への分割と、1つの変換ユニットのツリー(TU)とを有する。
【0027】
3)予測ユニットおよび予測ブロック(PB):インターピクチャまたはイントラピクチャ予測を使用してピクチャ領域をコーディングするかどうかの決定は、CUレベルで行われる。PUの分割構造は、そのルートがCUレベルにある。基本的な予測タイプの決定に基づいて、次に、ルマ度およびクロマCBのサイズをさらに分割し、輝度およびクロマ予測ブロック(PB)から予測することができる。HEVCは、64×64個のサンプルから4×4個のサンプルまでの可変PBサイズをサポートする。
図3は、MxM CUのための許可されたPBの例を示す。
【0028】
4)TUおよび変換ブロック:予測残差は、ブロック変換を使用してコーディングされる。TUツリー構造は、そのルートがCUレベルにある。この輝度CB残差は、輝度変換ブロック(TB)と同一であってもよいし、小さな輝度TBにさらに分割されてもよい。クロマTBについても同様である。正方形TBサイズ4×4、8×8、16×16、および32×32に対して、離散コサイン変換(DCT)の整数基底関数に類似した整数基底関数が規定される。輝度イントラピクチャ予測残差の4×4変換のために、離散正弦変換(DST)の形式から導出される整数変換が代替的に指定される。
【0029】
図4は、CTBをCB[及び変換ブロック(TB)]に細分する例を示す。実線はCB境界を示し、点線はTB境界を示す。(a)CTBとその分割(b)対応する4分木。
【0030】
2.1.2.1 変換ブロックおよびユニットへのツリー構造の分割
【0031】
残差コーディングの場合、CBは、変換ブロック(TB)に再帰的に分割することができる。この分割は、残差4分木によって信号通知される。
図4に示すように、1つのブロックを再帰的に象限に分割することができるように、正方形のCBおよびTBの分割のみを指定する。サイズM×Mの所与の輝度CBに対して、フラグは、それがサイズM/2×M/2の4つのブロックに分割されるかどうかを信号通知する。さらなる分割が可能である場合、SPSに示される残留4分木の最大深さによって信号通知されるように、各象限には、それが4つの象限に分割されているかどうかを示すフラグが割り当てられる。残差4分木の結果得られるリーフノードブロックは、変換コーディングによってさらに処理される変換ブロックである。エンコーダは、それが使用することになる最大輝度TBサイズおよび最小輝度TBサイズを示す。CBサイズが最大TBサイズよりも大きい場合、分割は非明示的に行われる。分割により、示された最小値よりも小さい輝度TBサイズとなる場合、分割を行わないことが、非明示的に行われる。輝度TBサイズが4×4である場合を除き、クロマTBサイズは、各次元において輝度TBサイズの半分であり、この場合、4つの4×4輝度TBによって覆われる領域には1つの4×4クロマTBが使用される。イントラピクチャ予測CUの場合、最近の近傍のTB(CB内またはCB外)の復号サンプルを、イントラピクチャ予測のための参照データとして用いる。
【0032】
従来の規格とは対照的に、HEVC設計により、1つのTBがインターピクチャ予測CUのために複数のPBにまたがることを可能となり、4分木構造のTBの分割の潜在的なコーディング効率の利点が最大となる。
【0034】
CTBは、4分木構造に基づいて分割され、そのノードはコーディングユニットである。4分木構造における複数のノードは、リーフノードおよび非リーフノードを含む。リーフノードは、ツリー構造内に子ノードを持たない(すなわち、リーフノードはそれ以上分割されない)。非リーフノードは、ツリー構造のルートノードを含む。ルートノードは、映像データの最初の映像ブロック(例えば、CTB)に対応する。複数のノードのうちのそれぞれの非ルートノードごとに、それぞれの非ルートノードは、それぞれの非ルートノードのツリー構造における親ノードに対応する映像ブロックのサブブロックである映像ブロックに対応する。複数の非リーフノードのそれぞれの非リーフノードは、ツリー構造において1つ以上の子ノードを有する。
【0035】
2.1.3 JEMにおけるより大きいCTUを有する4分木+2分木ブロック構造
【0036】
HEVCを超えた将来の映像符号化技術を探索するため、2015年には、VCEGとMPEGが共同で共同映像探索チーム(Joint Video Exploration Team:JVET)を設立した。それ以来、多くの新しい方法がJVETによって採用され、共同探索モデル(JEM)と呼ばれる参照ソフトウェアに組み込まれてきた。
【0037】
2.1.3.1 QTBTブロックの分割構造
【0038】
HEVCとは異なり、QTBT構造は、複数のパーティションタイプの概念を削除する。すなわち、CU、PU、TUのコンセプトの切り離しを取り除き、CUパーティションの形状の柔軟性を向上させる。QTBTブロック構造において、CUは正方形または長方形のいずれかを有することができる。
図5に示すように、まず、コーディングツリーユニット(CTU)を4分木構造で分割する。4分木のリーフノードは、2分木構造によってさらに分割される。2分木の分割には、対称水平分割と対称垂直分割の2つの分割タイプがある。2分木のリーフノードは、コーディングユニット(CU)と呼ばれ、このセグメント化は、それ以上の分割を行うことなく、予測および変換処理に使用される。これは、QTBTコーディングされたブロック構造において、CU、PUおよびTUが同じブロックサイズを有することを意味する。JEMにおいて、CUは、異なる色成分のコーディングされたブロック(CB)からなることがある。例えば、4:2:0クロマフォーマットのPおよびBスライスの場合、1つのCUは1つの輝度CBおよび2つのクロマCBを含み、時には、単一の成分のCBからなる。例えば、1つのCUは、1つの輝度CBのみを含み、またはIスライスの場合、2つのクロマCBのみを含む。
【0039】
QTBT分割スキームに対して以下のパラメータを規定する。
-CTUのサイズ:1つの4分木のルートノードのサイズ、HEVCと同じ概念
-MinQTSize:最小許容4分木のリーフノードサイズ
-MaxBTSize:最大許容2分木ルートノードサイズ
-Ma×BTDepth:最大許容2分木の深さ
-MinBTSize:最小限に許容される2分木のリーフノードのサイズ
【0040】
QTBTの分割構造の一例において、CTUのサイズを、2つの対応する64×64ブロックのクロマサンプルを有する128×128の輝度サンプルとして設定し、MinQTSizeを16×16として設定し、Ma×BTSizeを64×64として設定し、MinBTSize(幅および高さの両方について)を4×4として設定し、Ma×BTDepthを4として設定する。4分木の分割は、まずCTUに適用され、4分木のリーフノードを生成する。4分木のリーフノードのサイズは、16×16(即ち、MinQTSize)から128×128(即ち、CTUサイズ)までが可能である。リーフ4分木のノードが128×128である場合、サイズがMa×BTSize(すなわち、64×64)を超えるため、2分木によってさらに分割されない。そうでない場合、リーフ4分木のノードは、2分木によってさらに分割されてもよい。従って、この4分木のリーフノードは、2分木のルートノードでもあり、その2分木の深さは0である。2分木の深さがMa×BTDepth(すなわち、4)に達した場合、それ以上の分割は考慮されない。2分木のノードの幅がMinBTSizeに等しい(すなわち、4である)場合、それ以上の水平分割は考慮されない。同様に、2分木のノードの高さがMinBTSizeに等しい場合、それ以上の垂直分割は考慮されない。2分木のリーフノードは、さらに分割することなく、予測および変換処理によってさらに処理される。JEMにおいて、最大CTUサイズは、256×256個の輝度サンプルである。
【0041】
図5(左)はQTBTを用いたブロックの分割の例を示し、
図5(右)は対応するツリー表現を示す。実線は4分木の分割を表し、点線は2分木の分割を表す。2分木の各分割(即ち、非リーフ)ノードにおいて、1つのフラグが、どの分割タイプ(即ち、水平または垂直)が使用されるかを示すために信号通知される。ここで、0は、水平分割を表し、1は、垂直分割を表す。4分木の分割の場合、4分木の分割は常にブロックを水平および垂直に分割し、等分したサイズの4つのサブブロックを生成するため、分割タイプを示す必要がない。
【0042】
さらに、QTBT方式は、輝度およびクロマが別個のQTBT構造を有する能力をサポートする。現在、PおよびBスライスの場合、1つのCTUにおける輝度およびクロマCTBは、同じQTBT構造を共有する。しかしながら、Iスライスの場合、輝度CTBはQTBT構造によってCUに分割され、クロマCTBは別のQTBT構造によってクロマCUに分割される。これは、1つのIスライスにおける1つのCUが1つの輝度成分の1つのコーディングされたブロックまたは2つのクロマ成分の1つのコーディングされたブロックからなり、1つのPまたはBスライスにおける1つのCUが3つの色成分すべてのコーディングされたブロックからなることを意味する。
【0043】
HEVCにおいて、小さなブロックのためのインター予測は、動き補償のメモリアクセスを低減するために制限され、その結果、4×8および8×4ブロックのために双予測はサポートされず、4×4ブロックのためにインター予測はサポートされない。JEMのQTBTにおいて、これらの制限は取り除かれる。
【0045】
いくつかの実施形態において、4分木および2分木以外のツリータイプがサポートされる。本実装形態において、
図6(d)、(e)に示すように、3分木(TT)パーティションを2つ以上、すなわち、水平および垂直中心側の3分木を導入する。
【0046】
図6は、(a)4分木分割(b)垂直2分木分割(c)水平2分木分割(d)垂直中心側3分木分割(e)水平中心側3分木分割(e)水平中心側3分木分割を示す。
【0047】
いくつかの実装形態において、2つのレベルのツリー、すなわち、領域ツリー(4分木)および予測ツリー(2分木または3分木)がある。CTUは、まず、領域ツリー(RT)によって分割される。RTリーフは、予測ツリー(PT)によってさらに分割されてもよい。PTリーフはまた、最大PT深さに達するまで、PTでさらに分割されてもよい。PTリーフが基本コーディングユニットである。便宜上、ここでもCUと呼ぶ。1つのCUをさらに分割することはできない。予測および変換は両方ともJEMと同様にCUに適用される。パーティション構造全体を「マルチタイプツリー」と呼ぶ。
【0049】
この応答で使用されるツリー構造は、マルチツリータイプ(Multi−Tree Type:MTT)と呼ばれ、QTBTを一般化したものである。QTBTにおいて、
図5に示すように、まず、コーディングツリーユニット(CTU)を4分木構造で分割する。4分木のリーフノードは、2分木構造によってさらに分割される。
【0050】
MTTの基本構造は、2つのタイプのツリーノードを構成する。
図7に示すように、領域ツリー(RT)および予測ツリー(PT)は、9つのタイプのパーティションをサポートする。
【0051】
FIG.7は、(a)4分木分割(b)垂直2分木分割(c)水平2分木分割(d)垂直3分木分割(e)水平3分木分割(f)水平上方非対称2分木分割(g)水平下方非対称2分木分割(h)垂直左非対称2分木分割(i)垂直右非対称2分木分割を示す。
【0052】
1つの領域ツリーは、1つのCTUを4×4サイズの領域ツリーのリーフノードになるように正方形のブロックに再帰的に分割することができる。領域ツリーにおける各ノードにおいて、予測ツリーは、2分木(BT)、3分木(TT)、および非対称2分木(ABT)。PT分割において、予測ツリーの枝に4分木のパーティションを有することは禁止される。JEMにおけるように、輝度ツリーおよびクロマツリーは、I個のスライスに分けられる。RTおよびPTの信号通知方法を
図8に示す。
【0053】
2.2 HEVC/H.265におけるインター予測
【0054】
各インター予測PUは、1つまたは2つの参照ピクチャリストのための動きパラメータを有する。動きパラメータは、動きベクトルおよび参照ピクチャインデックスを含む。2つの参照ピクチャリストのうちの1つの参照ピクチャリストの使用は、inter_pred_idcを使用して信号通知されてもよい。動きベクトルは、予測子に対してデルタとして明確にコーディングされてもよく、このようなコーディングモードは、AMVPモードと呼ばれる。
【0055】
1つのCUがスキップモードでコーディングされる場合、1つのPUがこのCUに関連付けられ、有意な残差係数がなく、コーディング動きベクトルデルタも参照ピクチャインデックスもない。マージモードを指定し、これにより、現在のPUのための動きパラメータを、空間的および時間的候補を含む近傍のPUから取得する。マージモードは、スキップモードのためだけでなく、任意のインター予測されたPUに適用することができる。マージモードの代替としては、動きパラメータの明確な送信があり、PUごとに、各参照ピクチャリストおよび参照ピクチャリストの使用に対応する参照ピクチャインデックスである、動きベクトルを明確に信号通知する。
【0056】
2つの参照ピクチャリストのうちの1つを使用することを信号通知が示す場合、1つのサンプルのブロックからPUを生成する。これを「単一予測」と呼ぶ。PスライスおよびBスライスの両方に対して単一予測が利用可能である。
【0057】
両方の参照ピクチャリストを使用することを信号通知が示す場合、2つのサンプルのブロックからPUを生成する。これを「双予測」と呼ぶ。Bスライスのみに双予測が利用可能である。
【0058】
以下、HEVCに規定されるインター予測モードについて詳細に説明する。まず、マージモードについて説明する。
【0060】
2.2.1.1 マージモードの候補の導出
【0061】
マージモードを使用してPUを予測する場合、ビットストリームからマージ候補リストにおけるエントリを指すインデックスを構文解析し、これを使用して動き情報を検索する。このリストの構成は、HEVC規格で規定されており、以下のステップのシーケンスに基づいてまとめることができる。
・ ステップ1:初期候補導出
o ステップ1.1:空間的候補導出
o ステップ1.2:空間的候補の冗長性チェック
o ステップ1.3:時間的候補導出
・ ステップ2:追加候補挿入
o ステップ2.1:双予測候補の作成
o ステップ2.2:動きゼロ候補の挿入
【0062】
これらのステップは
図9にも概略的に示されている。空間的マージ候補導出のために、5つの異なる位置にある候補の中から最大4つのマージ候補を選択する。時間的マージ候補導出のために、2つの候補の中から最大1つのマージ候補を選択する。デコーダ側ではPUごとに一定数の候補を想定しているので、候補数がスライスヘッダで信号通知されるマージ候補(MaxNumMergeCand)の最大数に達しない場合、追加の候補を生成する。候補の数は一定であるので、短縮された単項2値化(TU)を使用して最良マージ候補のインデックスをエンコードする。CUのサイズが8に等しい場合、現在のCUのすべてのPUは、2N×2N予測ユニットのマージ候補リストと同じ1つのマージ候補リストを共有する。
【0063】
以下、上述したステップに関連付けられた動作を詳しく説明する。
【0065】
空間的マージ候補の導出において、
図10に示す位置にある候補の中から、最大4つのマージ候補を選択する。導出の順序はA1、B1、B0、A0、B2である。位置A1、B1、B0、A0のいずれかのPUが利用可能でない場合(例えば、別のスライスまたはタイルに属しているため)、またはイントラコーディングされた場合にのみ、位置B2が考慮される。位置A1の候補を加えた後、残りの候補を加えると、冗長性チェックを受け、それにより、同じ動き情報を有する候補を確実にリストから排除でき、コーディング効率を向上させることができる。計算の複雑性を低減するために、前述の冗長性チェックにおいて、考えられる候補対のすべてを考慮することはしない。代わりに、
図11において矢印でリンクされた対のみを考慮し、冗長性チェックに使用される対応する候補が同じ動き情報を有していない場合にのみ、その候補をリストに加える。重複した動き情報の別のソースは、2N×2Nとは異なるパーティションに関連付けられた「第2のPU」である。一例として、
図12は、それぞれN×2Nおよび2N×Nの場合の第2のPUを示す。現在のPUをN×2Nに分割する場合、リスト構築に位置A1の候補は考慮されない。実際、この候補を加えることにより、双予測ユニットが同じ動き情報を有するようになり、1つのコーディングユニットに1つのPUのみを有することは冗長である。同様に、現在のPUを2N×Nに分割する場合、位置B1は考慮されない。
【0067】
このステップにおいて、1つの候補のみがリストに追加される。具体的には、この時間的マージ候補の導出において、所与の参照ピクチャリストにおける現在のピクチャとの間に最小のPOC差を有するピクチャに属するコロケーションPUに基づいて、スケーリングされた動きベクトルを導出する。スライスヘッダにおいて、コロケーションPUの導出に用いられる参照ピクチャリストが明確に信号通知される。
図13に点線で示すように、時間的マージ候補のスケーリングされた動きベクトルが得られる。これは、POC距離tbおよびtdを利用して、コロケーションPUの動きベクトルからスケーリングしたものである。tbは、現在のピクチャの参照ピクチャと現在のピクチャのPOC差として規定し、tdは、コロケーションPUの参照ピクチャとコロケーションピクチャのPOC差として規定する。時間的マージ候補の参照ピクチャインデックスをゼロに等しく設定する。このスケーリング処理の実際的な実現については、HEVC仕様に記載されている。Bスライスの場合、2つの動きベクトル、即ち、1つは参照ピクチャリスト0のためのもの、もう1つは参照ピクチャリスト1のためのものを取得し、これらを組み合わせることによって、双予測マージ候補を形成する。時間的マージ候補のための動きベクトルのスケーリングの説明。
【0068】
参照フレームに属するコロケーションPU(Y)において、
図14に示すように、候補C0と候補C1との間で時間的候補の位置を選択する。位置C0のPUが利用可能でない場合、イントラコーディングされている場合、または現在のCTUの外側にある場合、位置C1が使用される。そうでない場合、位置C0が時間的マージ候補の導出に使用される。
【0070】
時空間的マージ候補の他に、2つの追加のタイプのマージ候補、すなわち、結合双予測マージ候補およびゼロマージ候補がある。時空間的マージ候補を利用して、結合双予測マージ候補を生成する。結合双予測マージ候補は、Bスライスのみに使用される。最初の候補の第1の参照ピクチャリスト動きパラメータと別の候補の第2の参照ピクチャリスト動きパラメータとを組み合わせることで、結合双予測候補を生成する。これら2つのタプルが異なる動き仮説を提供する場合、これらのタプルは、新しい双予測候補を形成する。一例として、
図15は、オリジナルリスト(左側)における、mvL0、refIdxL0またはmvL1、refIdxL1を有する2つの候補を用いて、最終リスト(右側)に加えられる結合双予測マージ候補を生成する場合を示す。これらの追加のマージ候補を生成するために考慮される組み合わせについては、様々な規則が存在する。
【0071】
動きゼロ候補を挿入し、マージ候補リストにおける残りのエントリを埋めることにより、MaxNumMergeCand容量にヒットする。これらの候補は、空間的変位がゼロであり、新しいゼロ動き候補をリストに加える度にゼロから始まり増加する参照ピクチャインデックスを有する。これらの候補が使用する参照フレームの数は、それぞれ、一方向予測の場合は1つ、双方向予測の場合は2つである。最終的には、これらの候補に対して冗長性チェックは行われない。
【0072】
2.2.1.5 並列処理のための動き推定領域
【0073】
エンコーディング処理を高速化するために、動き推定を並列に行うことができ、それによって、所与の領域内のすべての予測ユニットの動きベクトルを同時に導出する。1つの予測ユニットは、その関連する動き推定が完了するまで、隣接するPUから動きパラメータを導出することができないので、空間的近傍からのマージ候補の導出は、並列処理に干渉する可能性がある。符号化効率と処理待ち時間との間のトレードオフを緩和するために、HEVCは、動き推定領域(MER)を規定し、そのサイズは、「log2_parallel_merge_level_minus2」構文要素を使用してピクチャパラメータセットにおいて信号通知される。1つのMERを規定するとき、同じ領域にあるマージ候補は使用不可としてマークされ、それゆえにリスト構築においては考慮されない。
7.3.2.3 ピクチャパラメータセットRBSP構文
7.3.2.3.1 一般ピクチャパラメータセットRBSP構文
【0075】
log2_parallel_merge_level_minus2 plus 2は、8.5.3.2.2.2節で指定されたマージモードの輝度動きベクトルの導出処理と、8.5.3.2.3節で指定された空間的マージ候補の導出処理で使用される変数Log2ParMrgLevelの値を指定する。log2_parallel_merge_level_minus2の値は、0〜CtbLog2SizeY_2を含む範囲内とする。
変数Log2ParMrgLevelは、以下のように導出される。
Log2ParMrgLevel=log2_parallel_merge_level_minus2+2 (7−37)
注3:Log2ParMrgLevelの値は、マージ候補リストを並列に導出する組み込み能力を示す。例えば、Log2ParMrgLevelが6に等しい場合、64×64ブロックに含まれたすべての予測ユニット(PU)およびコーディングユニット(CU)のためのマージ候補リストを並列に導出することができる。
【0076】
2.2.2 AMVPモードにおける動きベクトル予測
【0077】
動きベクトル予測は、動きベクトルと近傍のPUとの間の空間−時間的相関を利用し、これを動きパラメータの明確な伝送に用いる。まず、左側、上側の時間的に近傍のPU位置の可用性をチェックし、冗長な候補を取り除き、ゼロベクトルを加えることで、候補リストの長さを一定にすることで、動きベクトル候補リストを構築する。次いで、エンコーダは、候補リストから最良の予測子を選択し、選択された候補を示す対応するインデックスを送信することができる。マージインデックスの信号通知と同様に、最良の動きベクトル候補のインデックスは、短縮された単項を使用してエンコードされる。この場合のエンコーディング対象の最大値は2である(例えば、
図2〜
図8)。以下の章では、動きベクトル予測候補の導出処理の詳細を説明する。
【0078】
2.2.2.1 動きベクトル予測候補の導出
【0079】
図16に、動きベクトル予測候補の導出処理をまとめる。
【0080】
動きベクトル予測において、空間的動きベクトル候補と時間的動きベクトル候補という2つのタイプの動きベクトル候補が考えられる。空間的動きベクトル候補を導出するために、
図11に示したように、5つの異なる位置にある各PUの動きベクトルに基づいて、最終的には2つの動きベクトル候補を導出する。
【0081】
時間的動きベクトル候補を導出するために、2つの異なる同じ場所に配置された位置に基づいて導出された2つの候補から1つの動きベクトル候補を選択する。第1の時空間的候補リストを作成した後、リストにおける重複した動きベクトル候補を除去する。候補の数が2よりも多い場合、関連づけられた参照ピクチャリストにおける参照ピクチャインデックスが1よりも大きい動きベクトル候補をリストから削除する。空間的―時間的動きベクトル候補の数が2未満である場合は、追加のゼロ動きベクトル候補をリストに加える。
【0082】
2.2.2.2 空間的動きベクトル候補
【0083】
空間的動きベクトル候補の導出において、
図11に示したような位置にあるPUから導出された5つの潜在的な候補のうち、動きマージと同じ位置にあるものを最大2つの候補を考慮する。現在のPUの左側のための導出の順序は、A0、A1、スケーリングされたA0、スケーリングされたA1として規定される。現在のPUの上側のための導出の順序は、B0、B1、B2、スケーリングされたB0、スケーリングされたB1、スケーリングされたB2として規定される。そのため、辺ごとに、動きベクトル候補として使用できる場合は4つ、すなわち空間的スケーリングを使用する必要がない2つの場合と、空間的スケーリングを使用する2つの場合とがある。4つの異なる場合をまとめると、以下のようになる。
・ 空間的スケーリングなし
− (1)同じ参照ピクチャリスト、および同じ参照ピクチャインデックス(同じPOC)
− (2)異なる参照ピクチャリストであるが、同じ参照ピクチャ(同じPOC)
・ 空間的スケーリング
− (3)同じ参照ピクチャリストであるが、異なる参照ピクチャ(異なるPOC)
− (4)異なる参照ピクチャリスト、および異なる参照ピクチャ(異なるPOC)
【0084】
最初に非空間的スケーリングの場合をチェックし、次に空間的スケーリングを行う。参照ピクチャリストにかかわらず、POCが近傍のPUの参照ピクチャと現在のPUの参照ピクチャとで異なる場合、空間的スケーリングを考慮する。左側候補のすべてのPUが利用可能でないか、またはイントラコーディングされている場合、上側の動きベクトルのスケーリングは、左側および上側MV候補の並列導出に役立つ。そうでない場合、上側の動きベクトルに対して空間的スケーリングは許可されない。
【0085】
空間的スケーリング処理において、
図17に示すように、時間的スケーリングと同様にして、近傍のPUの動きベクトルをスケーリングする。主な違いは、現在のPUの参照ピクチャリストおよびインデックスを入力として与え、実際のスケーリング処理は時間的スケーリングと同じであることである。
【0086】
2.2.2.3 時間的動きベクトル候補
【0087】
参照ピクチャインデックスを導出する以外は、時間的マージ候補を導出するための処理は、すべて、空間的動きベクトル候補を導出するための処理と同じである(
図6参照)。参照ピクチャインデックスはデコーダに信号通知される。
【0088】
2.2.2.4 AMVP情報の信号通知
【0089】
AMVPモードの場合、ビットストリームにおいて、4つの部分、すなわち、予測方向、参照インデックス、MVD、およびmv予測子候補インデックスを信号通知することができる。
構文テーブル:
【0090】
【表2】
7.3.8.9 動きベクトル差構文
【0092】
2.3 共同探索モデル(JEM)における新しいインター予測方法
【0093】
2.3.1 サブCUに基づく動きベクトル予測
【0094】
QTBTを有するJEMにおいて、各CUは、各予測方向に対して最大1つの動きパラメータのセットを有することができる。エンコーダにおいて、ラージCUをサブCUに分割し、ラージCUのすべてのサブCUの動き情報を導出することにより、2つのサブCUレベルの動きベクトル予測方法を考慮する。代替的な時間的動きベクトル予測(ATMVP)方法により、各CUが、配列された参照ピクチャにおける現在のCUよりも小さい複数のブロックから複数の動き情報のセットをフェッチすることが可能となる。空間的−時間的動きベクトル予測(STMVP)法において、時間的動きベクトル予測子および空間的近傍動きベクトルを使用して、サブCUの動きベクトルを再帰的に導出する。
【0095】
サブCU動き予測のためにより正確な動きフィールドを維持するために、参照フレームの動き圧縮は現在無効にされている。
【0096】
2.3.1.1 代替の時間的動きベクトル予測
【0097】
代替的な時間的動きベクトル予測(ATMVP)において、動きベクトル時間的動きベクトル予測(TMVP)法は、現在のCUより小さいブロックから複数セットの動き情報(動きベクトルおよび参照インデックスを含む)を取り出すことで修正される。
図18に示すように、サブCUは、N×N個のブロックの正方形である(デフォルトでは、Nは4に設定される)。
【0098】
ATMVPは、CU内のサブCUの動きベクトルを2つのステップで予測する。第1のステップは、参照ピクチャ1における対応するブロックを、いわゆる時間的ベクトルで特定することである。この参照ピクチャをモーションソースピクチャと呼ぶ。第2のステップは、
図18に示すように、現在のCUをサブCUに分割し、各サブCUに対応するブロックから各サブCUの動きベクトルならびに参照インデックスを得る。
【0099】
第1のステップにおいて、現在のCUの空間的に近傍のブロックの動き情報によって、参照ピクチャおよび対応するブロックを決定する。近傍のブロックの繰り返し走査処理を回避するために、現在のCUのマージ候補リストにおける第1のマージ候補を用いる。第1の利用可能な動きベクトルおよびその関連する参照インデックスを、時間的ベクトルおよびモーションソースピクチャのインデックスに設定する。このように、ATMVPでは、TMVPに比べて、対応するブロックをより正確に特定することができ、対応するブロック(配列されたブロックと呼ばれることがある)は、常に現在のCUに対して右下または中心位置にある。1つの例において、第1のマージ候補が左側の近傍のブロック(即ち、
図19のA1)からのものである場合、関連するMVおよび参照ピクチャを利用して、ソースブロックおよびソースピクチャを特定する。
【0100】
図19は、ソースブロックおよびソースピクチャの特定の例を示す。
【0101】
第2のステップにおいて、現在のCUの座標に時間ベクトルを加えることで、モーションソースピクチャにおける時間的ベクトルによって、サブCUの対応するブロックを特定する。サブCUごとに、その対応するブロックの動き情報(中心サンプルを覆う最小の動きグリッド)を使用して、サブCUの動き情報を導出する。対応するN×Nブロックの動き情報を特定した後、HEVCのTMVPと同様に、現在のサブCUの動きベクトルおよび参照インデックスに変換され、動きスケーリングや他の手順が適用される。例えば、デコーダは、低遅延条件(現在のピクチャのすべての参照ピクチャのPOCが現在のピクチャのPOCよりも小さい)が満たされているかどうかをチェックし、場合によっては、動きベクトルMVx(参照ピクチャリストxに対応する動きベクトル)を使用して、各サブCUの動きベクトルMVy(Xが0または1に等しく、Yが1−Xに等しい)を予測する。
【0102】
2.3.1.2 空間的−時間的動きベクトル予測
【0103】
この方法において、サブCUの動きベクトルは、ラスタスキャンの順に沿って再帰的に導出される。
図20にこの概念を示す。4つの4×4サブCU、A、B、C、およびDを含む8×8CUを考える。現在のフレームの近傍の4×4ブロックには、a、b、c、dというラベルが付けられている。
【0104】
サブCUのAの動きの導出は、その2つの空間的近傍を特定することで始まる。第1の近傍は、サブCUのAの上のN×Nブロックである(ブロックc)。このブロックcが利用可能でないか、またはイントラコーディングされている場合、サブCU Aより上の他のN×N個のブロックをチェックする(ブロックcから始まり、左から右へ)。第2の近傍は、サブCUのAの左側のブロックである(ブロックb)。ブロックbが利用可能でないか、またはイントラコーディングされている場合、サブCUのAの左側の他のブロックをチェックする(ブロックbを中心に、上から下へ)。各リストの近傍のブロックから得られた動き情報を、所与のリストの第1の参照フレームにスケーリングする。次に、HEVCに規定されているTMVP導出と同様の手順に従って、サブブロックAの時間的動きベクトル予測子(TMVP)を導出する。ロケーションDにおける配列されたブロックの動き情報をフェッチし、それに応じてスケーリングする。最後に、動き情報を検索し、スケーリングした後、参照リストごとにすべての利用可能な動きベクトル(3まで)を別々に平均する。この平均化された動きベクトルを現在のサブCUの動きベクトルとする。
【0105】
図20は、4つのサブブロック(A−D)およびその近傍のブロックを有する1つのCUの例を示す。
【0106】
2.3.1.3 サブCU動き予測モード信号通知
【0107】
サブCUモードは追加のマージ候補として有効とされ、モードを信号通知するために追加の構文要素は必要とされない。ATMVPモードおよびSTMVPモードを表すように、各CUのマージ候補リストに2つの追加のマージ候補を加える。シーケンスパラメータセットがATMVPおよびSTMVPが有効であることを示す場合、7個までのマージ候補を使用する。追加のマージ候補のエンコーディングロジックは、HMにおけるマージ候補の場合と同じであり、つまり、PまたはBスライスにおける各CUについて、2つの追加のマージ候補に対して2回以上のRDチェックが必要となる。
【0108】
JEMにおいて、マージインデックスのすべてのビンは、CABACによってコンテキストコーディングされる。一方、HEVCにおいては、第1のビンのみがコンテキストコーディングされ、残りのビンはコンテキストバイパスコーディングされる。
【0109】
2.3.2 適応型動きベクトル差解像度
【0110】
HEVCにおいて、use_integer_mv_flagがスライスヘッダにおいて0であるとき、4分の1輝度サンプルの単位で動きベクトルの差(MVD)(動きベクトルとPUの予測動きベクトルとの差)が信号通知される。JEMにおいて、ローカル適応型動きベクトル解像度(LAMVR)が導入される。JEMにおいて、MVDは、1/4輝度サンプル、整数輝度サンプルまたは4つの輝度サンプルの単位でコーディングできる。MVD分解能はコーディングユニット(CU)レベルで制御され、MVD解像度フラグは、少なくとも1つのノンゼロMVDモジュールを有する各CUに対して条件付きで信号通知される。
【0111】
少なくとも1つのノンゼロMVDモジュールを有するCUの場合、1/4輝度サンプルMV精度がCUにおいて使用されるかどうかを示すために、第1のフラグが信号通知される。第1のフラグ(1に等しい)が、1/4輝度サンプルMV精度が使用されていないことを示す場合、整数輝度サンプルMV精度が使用されるかまたは4輝度サンプルMV精度が使用されるかを示すために、別のフラグが信号通知される。
【0112】
CUの第1のMVD解像度フラグがゼロであるか、またはCUに対してコーディングされていない(つまり、CUにおけるすべてのMVDがゼロである)場合、CUに対して1/4輝度サンプルMV解像度が使用される。CUが整数輝度サンプルMV精度または4輝度サンプルMV精度を使用する場合、CUのAMVP候補リストにおけるMVPを対応する精度に丸める。
【0113】
エンコーダにおいて、CUレベルのRDチェックは、どのMVD解像度をCUに用いるかを決定するために用いられる。すなわち、1つのMVD解像度ごとに3回、CUレベルのRDチェックを行う。エンコーダの速度を速めるために、JEMにおいては、以下の符号化方式が適用される。
【0114】
通常の1/4輝度サンプルMVD解像度を有するCUのRDチェック中、現在のCUの動き情報(整数輝度サンプル精度)が記憶される。整数輝度サンプルおよび4輝度サンプルのMVD解像度を有する同じCUのRDチェック中に、記憶された動き情報(丸められた後)は、更なる小範囲動きベクトル改良の開始点として使用されるので、時間がかかる動き推定処理が3回重複しない。
【0115】
4輝度サンプルMVD解像度を有するCUのRDチェックを条件付きで呼び出す。CUの場合、整数輝度サンプルMVD解像度のRDコストが1/4輝度サンプルMVD解像度のそれよりもはるかに大きい場合、CUのための4輝度サンプルMVD解像度のRDチェックは省略される。
【0116】
2.3.3 パターンマッチング動きベクトル導出
【0117】
パターンマッチング動きベクトル導出(PMMVD)モードは、フレームレートアップ変換(FRUC)技術に基づく特殊マージモードである。このモードでは、ブロックの動き情報は信号通知されず、デコーダ側で導出される。
【0118】
FRUCフラグは、そのマージフラグが真である場合、CUに信号通知される。FRUCフラグが偽である場合、マージインデックスを信号通知することができ、通常のマージモードが使用される。FRUCフラグが真である場合、追加のFRUCモードフラグを信号通知して、どの方法(バイラテラルマッチングまたはテンプレートマッチング)を使用してブロックの動き情報を導出するかを示す。
【0119】
エンコーダ側では、CUのためにFRUCマージモードを使用するかどうかの決定は、通常のマージ候補に対して行われるのと同じように、RDコストの選択に基づく。つまり、RDコスト選択を使用して、1つのCUに対して2つのマッチングモード(例えば、バイラテラルマッチングおよびテンプレートマッチング)を両方チェックする。最小コストに導くものが、他のCUモードと比較される。FRUCマッチングモードが最も効率的なものである場合、CUに対してFRUCフラグを真に設定し、関連するマッチングモードを使用する。
【0120】
FRUCマージモードにおける動き導出処理は、2つのステップを有する。まず、CUレベルの動き探索を実行し、次に、サブCUレベルの動き改良を実行する。CUレベルでは、バイラテラルマッチングまたはテンプレートマッチングに基づいて、CU全体のための初期の動きベクトルを導出する。まず、MV候補のリストを生成し、最小マッチングコストに導く候補を、さらなるCUレベル改善の開始点として選択する。そして、バイラテラルマッチングまたは開始点付近のテンプレートマッチングに基づく局所検索を行い、最小マッチングコストとなるMV結果をCU全体のMVとする。続いて、導出されたCU動きベクトルを開始点として、サブCUレベルでの動き情報をさらに改良する。
【0121】
例えば、W×H CU動き情報導出のために、以下の導出処理を行う。第1のステージにおいて、W×H CU全体のためのMVが導出される。第2のステージにおいて、CUは、M×M個のサブCUにさらに分割される。Mの値は、(16)のように計算されるが、Dは、予め規定義された分割深さであり、JEMにおいてデフォルトで3に設定される。そして、各サブCUのMVを導出する。
【0123】
図21に示すように、このバイラテラルマッチングは、2つの異なる参照ピクチャにおける現在のCUの動き軌跡に沿った2つのブロック間の最も近いマッチングを見出すことで、現在のCUの動き情報を導出するために用いられる。連続した動き軌跡を仮定すると、2つの参照ブロックを指す動きベクトルMV0、MV1は、現在のピクチャと2つの参照ピクチャとの間の時間的距離、例えばTD0、TD1に比例する。特殊なケースとしては、現在のピクチャが時間的に2つの参照ピクチャの間にあり、現在のピクチャと2つの参照ピクチャとの時間的な距離が同じである場合、バイラテラルマッチングはミラーに基づく双方向MVとなる。
【0124】
図22に示すように、現在のピクチャにおけるテンプレート(現在のCUの上側および/または左側の近傍のブロック)と、参照ピクチャにおけるブロック(テンプレートと同じサイズ)との間の最も近いマッチングを見出すことで、テンプレートマッチングを使用して、現在のCUの動き情報を導出する。前述のFRUCマージモード以外に、テンプレートマッチングは、AMVPモードにも適用される。JEMにおいて、HEVCと同様、AMVPは2つの候補を有する。テンプレートマッチング法を用いることで、新しい候補を導出する。テンプレートマッチングによって新規に導出された候補が、第1の既存のAMVP候補と異なる場合、AMVP候補リストの最初に挿入し、次に、(第2の既存のAMVP候補を取り除くことを意味する)リストサイズを2に設定する。AMVPモードに適用される場合、CUレベル検索のみが適用される。
【0125】
2.3.3.1 CUレベルMV候補セット
【0126】
CUレベルのMV候補セットは、以下からなる。
(i) 現在のCUがAMVPモードになっている場合の元のAMVP候補
(ii) すべてのマージ候補、
(iii) 補間MVフィールド内の複数のMV。
(iv) 左上の近傍の動きベクトル
【0127】
バイラテラルマッチングを使用する場合、マージ候補の各有効なMVを入力として使用して、バイラテラルマッチングを仮定してMV対を生成する。例えば、マージ候補の1つの有効なMVは、参照リストAにおいて(MVa,refa)であり、そして、その対をなすバイラテラルMVの参照ピクチャrefbが他の参照リストBにおいて見出され、refaおよびrefbは、時間的に現在のピクチャの異なる側にある。参照リストBにおいてこのようなrefbが利用可能でない場合、refbをrefaとは異なる参照として決定し、現在のピクチャとの時間的距離はリストBにおける最小値である。refbを決定した後、現在のピクチャとrefa,refbとの時間距離に基づいてMVaをスケーリングすることでMVbを導出する。
【0128】
補間されたMVフィールドからの4つのMVもCUレベル候補リストに追加する。具体的には、現在のCUの(0,0)、(W/2,0)、(0,H/2)、(W/2,H/2)の位置の補間MVを加算する。
【0129】
AMVPモードでFRUCを適用する場合、元のAMVP候補をCUレベルMV候補セットにも加える。
【0130】
CUレベルにおいて、AMVP CUのための15個のMVおよびマージCUに対し、13個までのMVを候補リストに加える。
【0131】
2.3.3.2 サブCUレベルMV候補セット
【0132】
サブCUレベルのMV候補セットは、以下からなる。
(i) CUレベルの検索から決定されたMV、
(ii) 左上、右上の近傍のMV、
(iii) 参照ピクチャから並置されたMVのスケーリングされたバージョン、
(iv) 最大4つのATMVP候補、
(v) 最大4つのSTMVP候補
【0133】
参照ピクチャからのスケーリングされたMVは、以下のように導出される。両方のリストにおける参照ピクチャをすべてトラバースする。参照ピクチャにおけるサブCUの配列位置にあるMVは、開始CUレベルMVの参照に対してスケーリングされる。
【0134】
ATMVPおよびSTMVPの候補は、最初の4つの候補に限定される
【0135】
サブCUレベルにおいて、最大17個のMVが候補リストに追加される。
【0136】
2.3.3.3 補間MVフィールドの生成
【0137】
あるフレームをコーディングする前に、片側MEに基づいてピクチャ全体に対して補間動きフィールドを生成する。そして、この動きフィールドを後にCUレベルまたはサブCUレベルのMV候補として使用してもよい。
【0138】
まず、両方の参照リストにおける各参照ピクチャの動きフィールドは、4×4ブロックレベルでトラバースされる。各4×4ブロックにおいて、現在のピクチャの4×4ブロックを通過するブロックに関連する動きで、補間動きがまだ割り当てられていない場合、時間的距離TD0およびTD1に基づいて(HEVCにおけるTMVPのMVスケーリングと同様に)、参照ブロックの動きを現在のピクチャ(
図23に示す)にスケーリングし、スケーリングされた動きを現在のフレームのブロックに割り当てる。4×4ブロックにスケーリングされたMVが割り当てられていない場合、ブロックの動きは、補間された動きフィールドにおいて利用不可能であるとマークされる。
【0139】
2.3.3.4 補間およびマッチングコスト
【0140】
1つの動きベクトルが1つの小数のサンプル位置を指す場合、動き補償補間が必要である。複雑性を低減するために、通常の8タップHEVC補間の代わりに、バイラテラルマッチングおよびテンプレートマッチングの両方に双線形補間を使用する。
【0141】
マッチングコストの計算は、異なるステップでは少し異なる。CUレベルの候補セットから候補を選択する場合、マッチングコストは、バイラテラルマッチングまたはテンプレートマッチングの絶対和差(SAD)である。開始MVを決定した後、サブCUレベル検索におけるバイラテラルマッチングのマッチングコストCを以下のように算出する。
【0143】
ここで、wは、経験的に4に設定された重み係数であり、MVおよびMV
sは、それぞれ、現在のMVおよび開始MVを示す。SADは、依然として、サブCUレベル検索におけるテンプレートマッチングのマッチングコストとして使用される。
【0144】
FRUCモードにおいて、MVは、輝度サンプルのみを使用することによって導出される。導出された動きは、MCインター予測のために、輝度およびクロマの両方に使用される。MVを決定した後、輝度用の8タップ補間フィルタおよびクロマ用の4タップ補間フィルタを使用して、最終的なMCを行う。
【0146】
MV改良は、バイラテラルマッチングコストまたはテンプレートマッチングコストの基準を有するパターンに基づくMV検索である。JEMでは、2つの検索パターン、即ち、無制限中心バイアス菱形検索(UCBDS)およびCUレベルおよびサブCUレベルでのMV改良のための適応クロス検索をそれぞれサポートする。CUおよびサブCUレベルのMV改善の両方のために、MVは、1/4輝度サンプルMVの正確度で直接検索され、これに続いて1/8輝度サンプルMVの改良が行われる。CUおよびサブCUステップのためのMV改良の検索範囲は、8つの輝度サンプルに等しく設定される。
【0147】
2.3.3.6 テンプレートマッチングFRUCマージモードにおける予測方向の選択
【0148】
バイラテラルマッチングマージモードにおいては、双予測が常に適用される。なぜなら、2つの異なる参照ピクチャにおける現在のCUの動き軌跡に沿った2つのブロック間の最も近いマッチングに基づいて、CUの動き情報を導出するからである。テンプレートマッチングマージモードについては、そのような限定はない。テンプレートマッチングマージモードにおいて、エンコーダは、list0からの単一予測、list1からの単一予測、またはCUのための双予測のうちから選択することができる。選択は、テンプレートマッチングコストに基づいて、以下のように行う。
costBi<=factor*min(cost0,cost1) の場合
双予測を用いる。
それ以外の場合であって、cost0<=cost1の場合、
list0からの単一予測を用いる。
そうでない場合、
list1からの単一予測を用いる。
【0149】
ここで、cost0はlist0テンプレートマッチングのSADであり、cost1はlist1テンプレートマッチングのSADであり、costBiは双予測テンプレートマッチングのSADである。factorの値が1.25である場合、選択処理が双予測に偏っていることを意味する。
このインター予測方向選択は、CUレベルのテンプレートマッチング処理にのみ適用される。
【0150】
2.3.4 デコーダ側動きベクトル改良
【0151】
双予測演算において、1つのブロック領域を予測するために、list0の動きベクトル(MV)およびlist1のMVをそれぞれ使用して構成される双予測ブロックを組み合わせ、1つの予測信号を形成する。デコーダ側動きベクトル改良(DMVR)方法において、バイラテラルテンプレートマッチング処理によって、双予測の2つの動きベクトルをさらに改良する。追加の動き情報を送信することなく改良されたMVを得るために、デコーダにおいてバイラテラルテンプレートマッチングを適用し、バイラテラルテンプレートと参照ピクチャにおける再構成サンプルとの間で歪みに基づく検索を行う。
【0152】
DMVRにおいて、
図23に示すように、list0の最初のMV0とlist1のMV1とから、それぞれ双予測ブロックの重み付け結合(すなわち、平均)としてバイラテラルテンプレートを生成する。テンプレートマッチング操作は、生成されたテンプレートと参照ピクチャにおけるサンプル領域(最初の予測ブロックの付近)との間のコスト尺度を計算することからなる。2つの参照ピクチャの各々について、テンプレートコストが最小となるMVを、そのリストの更新されたMVと見なし、元のMVに置き換える。JEMにおいて、各リストに対して9つのMV候補を検索する。9つのMV候補は、元のMVと、水平または垂直方向のいずれかまたは両方向に元のMVに対してオフセットしている1つの輝度サンプルを有する8つの周囲のMVを含む。最後に、2つの新しいMV、即ち、
図24に示すようなMV0’およびMV1’を使用して、最終的な双予測結果を生成する。絶対差の合計(SAD)をコスト尺度として使用する。
【0153】
DMVRは、追加の構文要素を送信することなく、過去の参照ピクチャからの1つのMVと、将来の参照ピクチャからの1つのMVとの間の双予測のマージモードに適用される。JEMにおいて、CUに対してLIC、アフィン動き、FRUCまたはサブCUマージ候補が有効である場合、DMVRは適用されない。
【0154】
2.3.5 バイラテラルマッチングの改良を伴うマージ/スキップモードの例
【0155】
まず、利用可能な候補の数が最大候補サイズ19に達するまで、空間的に近傍のブロックおよび時間的に近傍のブロックの動きベクトルおよび参照インデックスを冗長性チェック付き候補リストに挿入することで、マージ候補リストを構築する。マージ/スキップモードのマージ候補リストは、予め規定された挿入順に基づいて、HEVC(結合候補およびゼロ候補)に用いられる空間的候補(
図11)、時間的候補、アフィン候補、高度な時間的MVP(ATMVP)候補、空間的時間的MVP(STMVP)候補、および追加候補を挿入することで構築される。
【0161】
−空間的候補(ブロック5)(利用可能な候補の数が6よりも少ない場合にのみ使用される)
【0163】
−時間的候補(HEVCのように導出)
【0164】
−非隣接空間的候補の後にアフィン候補を外挿する(
図25に示すブロック6〜49)
【0167】
なお、ICフラグは、STMVPおよびアフィンを除き、マージ候補から継承される。また、最初の4つの空間的候補について、双予測のものを単一予測のものの前に挿入する。
【0168】
いくつかの実装形態において、現在のブロックに接続されていないブロックにアクセスすることができる。非隣接ブロックが非イントラモードでコーディングされている場合、関連する動き情報を追加のマージ候補として追加してもよい。
【0169】
3. 本明細書に開示される実施形態が解決しようとする課題の例
【0170】
現在のHEVC設計は、動き情報をよりよくコーディングするために、現在のブロックの近傍のブロック(現在のブロックの隣)の相関をとることができる。しかしながら、近傍のブロックが、異なる動き軌跡を有する異なる対象に対応する可能性がある。この場合、その近傍のブロックからの予測は効率的ではない。
【0171】
非隣接ブロックの動き情報からの予測は、全ての動き情報(一般的には4×4レベル)をキャッシュに記憶するコストをかけることになり、付加的なコーディング利得をもたらし、ハードウェア実装の複雑性を大幅に増大させる。
【0173】
既存の実装形態の欠点を克服するために、様々な実施形態において、ブロックの動き情報を予測するために、少なくとも1つの動き候補が記憶された1つ以上のルックアップテーブルを使用するLUTに基づく動きベクトル予測技術を実装し、より高いコーディング効率を有する映像符号化を提供することができる。各LUTは、それぞれが対応する動き情報に関連付けられた1つ以上の動き候補を含んでもよい。動き候補の動き情報は、予測方向、参照インデックス/ピクチャ、動きベクトル、LICフラグ、アフィンフラグ、動きベクトル導出(MVD)精度、および/またはMVD値の一部または全部を含んでもよい。動き情報は、動き情報がどこから来ているかを示すために、ブロック位置情報をさらに含んでもよい。
【0174】
開示される技術に基づいたLUTに基づく動きベクトル予測は、既存のおよび将来の映像符号化規格の両方を向上させることができ、様々な実装形態のために以下の例で解明される。LUTは、履歴データ(例えば、既に処理されたブロック)に基づいてエンコーディング/デコーディング処理を行うことを可能にするため、LUTに基づく動きベクトル予測は、履歴ベースの動きベクトル予測(HMVP)法と呼ぶこともできる。LUTに基づく動きベクトル予測方法において、以前にコーディングされたブロックからの動き情報を有する1つまたは複数のテーブルは、エンコーディング/デコーディング処理時に維持される。1つのブロックの符号化/復号化の間、LUTにおける関連付けられた動き情報を動き候補リストに追加して、1つのブロックを符号化/復号化した後に、LUTを使用してもよい。以下の実施例は、一般的な概念を説明するための例であると考えられるべきである。これらの例は狭い意味で解釈されるべきではない。さらに、これらの例は、任意の方法で組み合わせることができる。
【0175】
一部の実施形態において、1つのブロックの動き情報を予測するために、少なくとも1つの動き候補が記憶された1つ以上のルックアップテーブルを用いてもよい。実施形態は、動き候補を用いて、ルックアップテーブルに記憶された動き情報のセットを示すことができる。従来のAMVPまたはマージモードの場合、実施形態では、動き情報を記憶するためにAMVPまたはマージ候補を使用してもよい。
【0176】
以下の実施例は、一般的な概念を説明する。
【0178】
例A1:各ルックアップテーブルは、各候補がその動き情報に関連付けられた1つ以上の動き候補を含んでもよい。
a. 動き候補の動き情報は、予測方向、参照インデックス/ピクチャ、動きベクト
ル、LICフラグ、アフィンフラグ、MVD精度、MVD値の一部または全部
を含んでもよい。
b. 動き情報は、動き情報がどこから来ているかを示すために、ブロック位置情
報をさらに含んでもよい。
c. ルックアップテーブルごとに1つのカウンタをさらに割り当ててもよい。
i. ピクチャ/スライス/LCU(CTU)行/タイルの符号化/復号化の
開始時に、カウンタをゼロに初期化してもよい。
ii. 一例において、前記カウンタは、CTU/CTB/CU/CB/PU/
一定の領域サイズ(例えば、8×8または16×16)を符号化/復号
化した後に更新されてもよい。
iii.一例において、1つの候補をルックアップテーブルに加える度に、カウ
ンタを1つずつ増加させる。
iv. 一例において、カウンタは、テーブルのサイズ(許容される動き候補の
数)以下であるべきである。
v. 代替的に、このカウンタを使用して、いくつの動き候補をルックアップ
テーブルに追加しようとしたかを示してもよい(これらのうちのいくつ
かはルックアップテーブルに含まれていたが、後にテーブルから削除し
てもよい)。この場合、カウンタはテーブルのサイズよりも大きくても
よい。
d. テーブルのサイズ(許可される動き候補の数)および/またはテーブルの数
は、固定であってもよいし、適応的であってもよい。テーブルのサイズは、
すべてのテーブルで同じであってもよいし、異なるテーブルで異なってもよ
い。
i. 代替的に、異なるサイズを異なるルックアップテーブル(例えば、1ま
たは2)に使用してもよい。
ii. 一例において、テーブルのサイズおよび/またはテーブルの数は、予め
規定されてもよい。
iii.一例において、テーブルのサイズおよび/またはテーブルの数は、映像
パラメータセット(VPS)、シーケンスパラメータセット(SPS)、
ピクチャパラメータセット(PPS)、スライスヘッダ、タイルヘッダ、
符号化ツリーユニット(CTU)、符号化ツリーブロック(CTB)、符
号化ユニット(CU)または予測ユニット(PU)、複数のCTU/CT
B/CU/PUを含む領域で信号通知されてもよい。
iv. テーブルのサイズおよび/または数は、スライスタイプ、ピクチャの時
間層インデックス、1つのスライスと最も近いイントラスライスとの間
のピクチャ順序カウント(POC)距離に更に依存してもよい。
e. 1つの符号化スレッドに使用されるN個のテーブルが存在し、1つのスライ
スを符号化するためにN*P個のテーブルが必要とされ、ここで、Pは、L
CU行の数またはタイルの数を示す。
i. 代替的に、1つのスライスを符号化するためにP個のテーブルのみが必要
とされてもよく、PはLCU行の数を示し、各LCU行は1つのルックア
ップテーブルのみを使用し、タイルが無効とされている場合、N個でも1
よりも大きくてもよい。
【0180】
例B1:1つのブロックをコーディングする場合、1つのルックアップテーブルからの動き候補の一部または全部を順にチェックすることができる。1つのブロックをコーディングする間に1つの動き候補をチェックするとき、この動き候補を動き候補リスト(例えば、AMVP、マージ候補リスト)に加えてもよい。
a. 代替的に、複数のルックアップテーブルからの動き候補を順にチェックしても
よい。
b. ルックアップテーブルインデックスは、CTU、CTB、CU若しくはPU、
または複数のCTU/CTB/CU/PUを含む領域において信号通知され
てもよい。
【0181】
例B2:ルックアップテーブルの選択は、ブロックの位置に依存してもよい。
a. それはブロックを含むCTUアドレスに依存してもよい。ここで、アイデアを
説明するために、例えばデュアルルックアップテーブル(DLUT)を挙げる
。
i. ブロックがCTU行内の第1のM個のCTUのうちの1つに位置する場合
、第1のルックアップテーブルをブロックの符号化に利用してもよく、C
TU行内の残りのCTUに位置するブロックの場合、第2のルックアップ
テーブルを利用してもよい。
ii. ブロックがCTU行内の第1のM個のCTUの1つに位置する場合、まず
第1のルックアップテーブルの動き候補によってブロックを符号化する
かどうかをチェックし、第1のテーブルに十分な候補がない場合、第2の
ルックアップテーブルをさらに利用することができる。一方、CTU行の
残りのCTUに位置するブロックに対して、第2のルックアップテーブル
を利用してもよい。
iii.代替的に、CTU行の残りのCTUに位置するブロックについて、第2の
ルックアップテーブルの動き候補がまずブロックの符号化についてチェ
ックされ、第2のテーブルに十分な候補がない場合、第1のルックアップ
テーブルをさらに利用してもよい。
b. それは、1つ以上のルックアップテーブルにおけるブロックの位置と1つの
動き候補に関連付けられた位置との間の距離に依存してもよい。
iv. 一例において、1つの動き候補が符号化対象のブロックまでのより小さな
距離に関連付けられている場合、別の動き候補と比較して早くチェックされ てもよい。
【0183】
例C1:チェック対象のルックアップテーブルにおける動き候補の総数は、予め規定されてもよい。
a. それは、符号化情報、ブロックサイズ、ブロック形状等にさらに依存してもよ
い。例えば、AMVPモードの場合、m個の動き候補のみをチェックし、マー
ジモードの場合、n個の動き候補をチェックしてもよい(例えば、m=2、n
=44)。
b. 一例において、チェック対象の動き候補の総数は、映像パラメータセット(V
PS)、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(
PPS)、スライスヘッダ、タイルヘッダ、符号化ツリーユニット(CTU)、
符号化ツリーブロック(CTB)、符号化ユニット(CU)または予測ユニッ
ト(PU)、複数のCTU/CTB/CU/PUを含む領域で信号通知されて
もよい。
【0184】
例C2:1つのルックアップテーブルに含まれる1つ以上の動き候補は、1つのブロックによって直接継承されてもよい。
a. それらをマージモード符号化に使用してもよい。すなわち、マージ候補リスト
導出処理において動き候補をチェックしてもよい。
b. これらは、アフィンマージモード符号化に使用してもよい。
i. アフィンフラグが1である場合、ルックアップテーブルにおける動き候補
をアフィンマージ候補として加えることができる。
c. 以下の場合、ルックアップテーブルにおける動き候補のチェックを有効にして
もよい。
i. TMVP候補を挿入した後、マージ候補リストに空きがある。
ii. 空間的マージ候補導出のために特定の空間的に近傍のブロックをチェック
した後、マージ候補リストに空きがある。
iii.すべての空間的マージ候補の後、マージ候補リストに空きがある。
iv. 結合双予測マージ候補の後、マージ候補リストに空きがある。
v. マージ候補リストに動き候補を追加する前に、プルーニングを適用しても
よい。
【0185】
例C3:ルックアップテーブルに含まれる動き候補は、ブロックの動き情報をコーディングする予測モジュールとして用いられてもよい。
a. それらをAMVPモード符号化に使用してもよい。すなわち、AMVP候補リ
スト導出処理において動き候補をチェックしてもよい。
b. 以下の場合、ルックアップテーブルにおける動き候補のチェックを有効にして
もよい。
i. TMVP候補を挿入した後、AMVP候補リストに空きがある。
ii. AMVP候補リストは、空間的近傍から選択し、プルーニングした後で、
TMVP候補を挿入する直前には、空きがある。
iii. 上位隣接ブロックからのAMVP候補がスケーリング無しで存在しない
場合、および/または左側の近傍のブロックからのAMVP候補がスケー
リング無しで存在しない場合。
iv. AMVP候補リストに動き候補を追加する前に、プルーニングを適用して
もよい。
c. 現在の参照ピクチャと同一の参照ピクチャを有する動き候補をチェックする。
i. 代替的に、現在の参照ピクチャとは異なる参照ピクチャを有する動き候補
も(MVスケーリングされた状態で)チェックする。
ii. 代替的に、まず、現在の参照ピクチャと同一の参照ピクチャを有するすべ
ての動き候補をチェックし、次に、現在の参照ピクチャとは異なる参照ピ
クチャを有する動き候補をチェックする。
iii.代替的に、マージした後、動き候補をチェックする。
【0186】
例C4:ルックアップテーブルにおける動き候補のチェック順序は、以下のように規定される(K(K>=1)個の動き候補をチェックすることができるとする):
a. ルックアップテーブルにおける最後のK個の動き候補は、例えば、LUTへの
エントリインデックスの降順に配列される。
b. 第1のK%L候補。Lは、K>=Lである場合のルックアップテーブルのサイ
ズであり、例えば、LUTへのエントリインデックスの降順に配列される。
c. K>=Lである場合、ルックアップテーブルにおけるすべての候補(L個の候
補)。
d. 代替的に、さらに、動き候補指標の降順に基づく。
e. 代替的に、候補情報に基づいて、動き候補に関連付けられた位置の距離や現在
のブロックなど、K個の動き候補を選択する。
f. 異なるルックアップテーブルのチェック順序は、次のサブセクションのルック
アップテーブルの使用法で規定されている。
g. 一旦マージ/AMVP候補リストが最大許容候補数に達すると、このチェック
処理は終了する。
h. 代替的に、追加された動き候補の数が最大許容動き候補数に達すると、終了す
る。
i. テーブルサイズを示す1つのシンタックス要素ならびにチェック対象の動き候
補の数(すなわち、K=L)は、SPS、PPS、スライスヘッダ、タイルヘ
ッダにおいて信号通知してもよい。
【0187】
例C5:1つのブロックの動き情報符号化のためのルックアップテーブルの使用の有効/無効は、SPS、PPS、スライスヘッダ、タイルヘッダ、CTU、CTB、CU、またはPU、複数のCTU/CTB/CU/PUを含む領域において信号通知されてもよい。
【0188】
例C6:ルックアップテーブルからの予測を適用するかどうかは、さらに符号化情報に依存してもよい。1つのブロックに適用しないと推測される場合、予測の指示の追加の信号通知はスキップされる。代替的に、1つのブロックに適用しないと推測される場合、ルックアップテーブルの動き候補にアクセスする必要はなく、関連する動き候補のチェックは省略される。
a. ルックアップテーブルからの予測を適用するかどうかは、ブロックサイズ/ブ
ロック形状に依存してもよい。一例において、より小さなブロック、例えば、
4×4、8×4または4×8ブロックについては、ルックアップテーブルから
の予測を実行することを許可されない。
b. ルックアップテーブルからの予測を適用するかどうかは、ブロックがAMVP
で符号化されているかマージモードで符号化されているかに依存してもよい。
一例において、AMVPモードの場合、ルックアップテーブルからの予測を行
うことは許可されない。
c. ルックアップテーブルからの予測を適用するかどうかは、ブロックがアフィン
の動きまたは他の種類の動き(例えば、並進的な動き)で符号化されるかどう
かに依存してもよい。一例において、アフィンモードの場合、ルックアップテ
ーブルからの予測を行うことは許可されない。
【0189】
例C7:以前符号化されたフレーム/スライス/タイルにおけるルックアップテーブルの動き候補を使用して、異なるフレーム/スライス/タイルにおけるブロックの動き情報を予測してもよい。
a. 一例において、現在のブロックの参照ピクチャに関連付けられたルックアップテーブルのみを、現在のブロックを符号化するために利用してもよい。
b. 一例において、現在のブロックを符号化するために、現在のブロックの同じスライスタイプおよび/または同じ量子化パラメータを有するピクチャに関連付けられたルックアップテーブルのみを利用してもよい。
【0191】
例D1:動き情報を有するブロックをコーディングした後(すなわち、IntraBCモード、インターコーディングモード)に、1つ以上のルックアップテーブルを更新してもよい。
a. 一例において、ルックアップテーブルを更新するかどうかは、ルックアップテ
ーブルを選択するための規則を再利用してもよい。
b. ルックアップテーブルは、符号化情報および/またはブロック/LCUの位置
に基づいて更新されてもよい。
c. ブロックが直接信号通知される動き情報(例えば、AMVPモード)で符号化
される場合、ブロックの動き情報をルックアップテーブルに加えてもよい。
i. 代替的に、ブロックが、いかなる改良も伴わずに、空間的に近傍のブロッ
クから直接継承された動き情報でコーディングされる場合(例えば、改良
を伴わない空間的マージ候補)、ブロックの動き情報をルックアップテー
ブルに加えるべきではない。
ii. 代替的に、ブロックが、改良を行って、空間的に近傍のブロックから直接
継承された動き情報でコーディングされる場合(DMVR、FRUCなど
)、ブロックの動き情報をいかなるルックアップテーブルにも加えるべき
ではない。
iii.代替的に、ブロックが、ルックアップテーブルに記憶された動き候補から
直接継承された動き情報でコーディングされている場合は、ブロックの動
き情報は、いかなるルックアップテーブルにも加えるべきではない。
d. ブロック内のM(M>=1)個の代表位置を選択し、この代表位置に関連付け
られた動き情報を使用してルックアップテーブルを更新する。
i. 一例において、代表位置は、ブロック内の4つのコーナー位置(例えば、
図26のC0〜C3)のうちの1つとして規定される。
ii. 一例において、代表位置は、ブロック内の中心位置(例えば、
図26にお
けるCa_Cd)として規定される。
iii.ブロックに対してサブブロック予測が許可されない場合、Mは1に設定
される。
iv. サブブロック予測がブロックに対して許可される場合、Mは、1又はサブ
ブロックの総数、又は1とサブブロックの数の間の一意の値に排他的に設
定され得る。
v. 代替的に、ブロックのためにサブブロック予測を許可する場合、Mを1に
設定することができ、代表的なサブブロックの選択は、に基づいて行われる。
1. 利用される動き情報の周波数
2. 双予測ブロックであるかどうか
3. 参照ピクチャインデックス/参照ピクチャに基づいて
4. 他の動きベクトルと比較した動きベクトルの差(例えば、最大MV差を
選択する)
5. 他のコーディング情報
e. M(M>=1)個の代表位置のセットを選択してルックアップテーブルを更新
する場合、更なる条件をチェックした後、これらを更なる動き候補としてルッ
クアップテーブルに加えてもよい。
i. ルックアップテーブルにおける既存の動き候補に対して、新たな動き情報
のセットをプルーニングしてもよい。
ii. 一例において、新しい動き情報のセットは、ルックアップテーブルにおけ
る既存の動き候補のいずれかまたは一部と同一であってはならない。
iii.代替的に、新しい動き情報のセットおよび1つの既存の動き候補からの同
じ参照ピクチャの場合、MVの差は、1/複数の閾値よりも小さくてはな
らない。例えば、MV差の水平および/または垂直モジュールは、1ピク
セルの距離よりも大きくなければならない。
iv. 代替的に、K>Lである場合、新しい動き情報のセットを、最後のK個の
候補または最初のK%L個の既存の動き候補によってのみプルーニング
し、古い動き候補を再びアクティブにすることができるようにする。
v. 代替的に、プルーニングは適用しない。
f. M個の動き情報のセットがルックアップテーブルを更新するために用いられる
場合、対応するカウンタをMだけ増加させるべきである。
g. 現在のブロックをコーディングする前に、1つの(上記の方法で)選択された
動き情報のセットに対して、更新されるべきルックアップテーブルのカウンタ
をKとし、このブロックをコーディングした後、これを、K%Lに等しいイン
デックスを有する追加の動き候補として加える(ここで、Lはルックアップテ
ーブルのサイズである)。その例を
図27に示す。
i. 代替的に、それは、min(K+1,L−1)に等しいインデックスを有
する追加の動き候補として追加される。代替的に、K>=Lである場合、
第1の動き候補(インデックス=0)をルックアップテーブルから取り除
き、後続のK個の候補インデックスを1だけ減らす。
h. 1つのイントラ制約ブロックをコーディングした後、ルックアップテーブルを
空にしてもよい。
i. 動き情報のエントリをルックアップテーブルに追加する場合、動き情報から導
出することによって、より多くの動き情報のエントリをテーブルに追加しても
よい。この場合、ルックアップテーブルに関連付けられたカウンタを1より大
きい数だけ増加させることができる。
i. 一例において、動き情報のエントリのMVをスケーリングし、テーブルに
入れる。
ii. 一例において、動き情報のエントリのMVは、(dx,dy)だけ加算さ
れ、テーブルに入れられる。
iii.一例において、2つ以上の動き情報のエントリのMVの平均を計算し、テー ブルに入れる。
【0192】
例D2:1つのブロックが1つのピクチャ/スライス/タイルの境界に位置する場合、ルックアップテーブルの更新は常に許可されない。
【0193】
例D3:現在のLCU行をコーディングするために、上記LCU行の動き情報を無効にしてもよい。
a. この場合、新しいスライス/タイル/LCU行の始まりにおいて、利用可能な
動き候補の数を0にリセットしてもよい。
【0194】
例D4:新しい時間層インデックスを使用してスライス/タイルをコーディングする開始時に、利用可能な動き候補の数を0にリセットすることができる。
【0195】
例D5:ルックアップテーブルは、同じ時間層インデックスを有する1つのスライス/タイル/LCUの行/スライスで連続的に更新されてもよい。
a. 代替的に、ルックアップテーブルは、各S(S>=1)個のCTU/CTB/
CU/CBをコーディング/デコーディングした後、または特定の領域(例え
ば、8×8または16×16に等しいサイズ)をコーディング/デコーディン
グした後にのみ更新されてもよい。
b. 代替的に、1つのルックアップテーブルは、最大許容カウンタに達すると、更
新を停止してもよい。
c. 一例において、カウンタは予め規定されてもよい。代替的に、映像パラメータ
セット(VPS)、シーケンスパラメータセット(SPS)、ピクチャパラメー
タセット(PPS)、スライスヘッダ、タイルヘッダ、コーディングツリーユ
ニット(CTU)、コーディングツリーブロック(CTB)、コーディングユニ
ット(CU)または予測ユニット(PU)、複数のCTU/CTB/CU/P
Uをカバーする領域で信号通知される。
【0196】
図28は、映像処理装置2800のブロック図である。装置2800は、本明細書に記載の方法の1つ以上を実装するために使用してもよい。装置2800は、スマートフォン、タブレット、コンピュータ、モノのインターネット(IoT)受信機等に実施されてもよい。装置2800は、1つ以上の処理装置2802と、1つ以上のメモリ2804と、映像処理ハードウェア2806と、を含んでもよい。1つまたは複数の処理装置2802は、本明細書に記載される1つ以上の方法を実装するように構成されてもよい。メモリ(複数可)2804は、本明細書で説明される方法および技術を実装するために使用されるデータおよびコードを記憶するために使用してもよい。映像処理ハードウェア2806は、本明細書に記載される技術をハードウェア回路にて実装するために使用してもよい。
【0197】
図29は、映像デコーディング方法2900の例のフローチャートである。この方法2900は、多数のテーブル(例えばルックアップテーブル:LUT)を維持すること(2902)を含み、各テーブルは、動き候補のセットを含み、各動き候補は、以前符号化された映像ブロックから導出された対応する動き情報に関連付けられ、現在の映像ブロックと映像領域における現在の映像ブロックのビットストリーム表現との間で変換を行うこと(2904)と、更新規則に基づいて1つ以上のテーブルを更新すること(2906)と、を含む。
【0198】
図30は、映像復号化方法3000の例のフローチャートである。この方法3000は、テーブルのセット(例えばルックアップテーブル;LUT)をチェックすること(3002)を含み、各テーブルは、1つ以上の動き候補を含み、各動き候補が動き候補の動き情報に関連付けられており、1つ以上のテーブルに基づいてこの映像ブロックの動き情報を処理すること(3004)と、処理によって生成された映像ブロックに基づいて1つ以上のテーブルを更新すること(3006)と、を含む。
【0199】
以上、説明の目的で本開示の技術の特定の実施形態を説明したが、本発明の範囲から逸脱することなく様々な修正が可能であることは、理解されるであろう。従って、本開示の技術は、添付の特許請求の範囲による場合を除き、限定されない。
【0200】
本明細書に記載された開示されたそして他の実施形態、モジュール、および機能操作の実装形態は、本明細書に開示された構造およびその構造的等価物を含め、デジタル電子回路、またはコンピュータソフトウェア、ファームウェア、若しくはハードウェアで実施されてもよく、またはそれらの1つ以上の組み合わせで実施してもよい。開示された、そして他の実施形態は、1つ以上のコンピュータプログラム製品、すなわち、データ処理装置によって実装されるため、またはデータ処理装置の操作を制御するために、コンピュータ可読媒体上に符号化されたコンピュータプログラム命令の1つ以上のモジュールとして実施することができる。このコンピュータ可読媒体は、機械可読記憶装置、機械可読記憶基板、記憶装置、機械可読伝播信号をもたらす物質の組成物、またはこれらの1つ以上の組み合わせであってもよい。「データ処理装置」という用語は、例えば、プログラマブル処理装置、コンピュータ、または複数の処理装置若しくはコンピュータを含め、データを処理するためのすべての装置、デバイス、および機械を含む。この装置は、ハードウェアの他に、当該コンピュータプログラムの実行環境を作るコード、例えば、処理装置ファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはこれらの1つ以上の組み合わせを構成するコードを含んでもよい。伝播信号は、人工的に生成した信号、例えば、機械で生成した電気、光、または電磁信号であり、適切な受信装置に送信するための情報をコーディングするように生成される。
【0201】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとも呼ばれる)は、コンパイルされた言語または解釈された言語を含む任意の形式のプログラミング言語で記述することができ、それは、スタンドアロンプログラムとして、またはコンピューティング環境で使用するのに適したモジュール、コンポーネント、サブルーチン、または他のユニットとして、も含む任意の形式で展開することができる。コンピュータプログラムは、必ずしもファイルシステムにおけるファイルに対応するとは限らない。プログラムは、他のプログラムまたはデータを保持するファイルの一部(例えば、マークアップ言語文書に格納された1つ以上のスクリプト)に記録されていてもよいし、当該プログラム専用の単一のファイルに記憶されていてもよいし、複数の調整ファイル(例えば、1つ以上のモジュール、サブプログラム、またはコードの一部を格納するファイル)に記憶されていてもよい。1つのコンピュータプログラムを、1つのサイトに位置する1つのコンピュータ、または複数のサイトに分散され通信ネットワークによって相互接続される複数のコンピュータで実行させるように展開可能である。
【0202】
本明細書に記載されたプロセスおよびロジックフローは、入力データ上で動作し、出力を生成することによって機能を実行するための1つ以上のコンピュータプログラムを実行する1つ以上のプログラマブル処理装置によって行うことができる。プロセスおよびロジックフローはまた、特定用途のロジック回路、例えば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実行することができ、装置はまた、特定用途のロジック回路として実装することができる。
【0203】
コンピュータプログラムの実行に適した処理装置は、例えば、汎用および専用マイクロ処理装置の両方、並びに任意の種類のデジタルコンピュータの任意の1つ以上の処理装置を含む。一般的に、処理装置は、読み出し専用メモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受信する。コンピュータの本質的な要素は、命令を実行するための処理装置と、命令およびデータを記憶するための1つ以上の記憶装置とである。一般的に、コンピュータは、データを記憶するための1つ以上の大容量記憶デバイス、例えば、磁気、光磁気ディスク、または光ディスクを含んでもよく、またはこれらの大容量記憶デバイスからデータを受信するか、またはこれらにデータを転送するように動作可能に結合されてもよい。しかしながら、コンピュータは、このようなデバイスを有する必要はない。コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、あらゆる形式の不揮発性メモリ、媒体、および記憶装置を含み、例えば、EPROM、EEPROM、フラッシュ記憶装置、磁気ディスク、例えば内部ハードディスクまたはリムーバブルディスク、光磁気ディスク、およびCD−ROMおよびDVD−ROMディスク等の半導体記憶装置を含む。処理装置およびメモリは、専用ロジック回路によって補完されてもよく、または専用ロジック回路に組み込まれてもよい。
【0204】
本特許明細書は多くの詳細を含むが、これらは、任意の発明の範囲または特許請求の範囲を限定するものと解釈されるべきではなく、むしろ、特定の発明の特定の実施形態に特有であり得る特徴の説明と解釈されるべきである。本特許明細書において別の実施形態の文脈で説明されている特定の特徴は、1つの例において組み合わせて実装してもよい。逆に、単一の例の文脈で説明された様々な特徴は、複数の実施形態において別個にまたは任意の適切なサブコンビネーションで実装してもよい。さらに、特徴は、特定の組み合わせで作用するものとして上記に記載され、最初にそのように主張されていてもよいが、主張された組み合わせからの1つ以上の特徴は、場合によっては、組み合わせから抜粋されることができ、主張された組み合わせは、サブコンビネーションまたはサブコンビネーションのバリエーションに向けられてもよい。
【0205】
同様に、動作は図面において特定の順番で示されているが、これは、所望の結果を達成するために、このような動作が示された特定の順番でまたは連続した順番で実行されること、または示された全ての操作が実行されることを必要とするものと理解されるべきではない。また、本特許明細書に記載されている例における様々なシステムモジュールの分離は、全ての実施形態においてこのような分離を必要とするものと理解されるべきではない。
【0206】
いくつかの実装形態および例のみが記載されており、本特許明細書に記載され図示されている内容に基づいて、他の実施形態、拡張および変形が可能である。