IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ ベイジン バイトダンス ネットワーク テクノロジー カンパニー リミテッドの特許一覧 ▶ バイトダンス インコーポレイテッドの特許一覧

特開2023-181441効率的なアフィンマージ動きベクトル導出
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023181441
(43)【公開日】2023-12-21
(54)【発明の名称】効率的なアフィンマージ動きベクトル導出
(51)【国際特許分類】
   H04N 19/52 20140101AFI20231214BHJP
【FI】
H04N19/52
【審査請求】有
【請求項の数】10
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023187705
(22)【出願日】2023-11-01
(62)【分割の表示】P 2020573104の分割
【原出願日】2019-07-01
(31)【優先権主張番号】PCT/CN2018/093943
(32)【優先日】2018-07-01
(33)【優先権主張国・地域又は機関】CN
(31)【優先権主張番号】PCT/CN2018/095568
(32)【優先日】2018-07-13
(33)【優先権主張国・地域又は機関】CN
(71)【出願人】
【識別番号】520476341
【氏名又は名称】北京字節跳動網絡技術有限公司
【氏名又は名称原語表記】Beijing Bytedance Network Technology Co., Ltd.
【住所又は居所原語表記】Room B-0035, 2/F, No.3 Building, No.30, Shixing Road, Shijingshan District Beijing 100041 China
(71)【出願人】
【識別番号】520477474
【氏名又は名称】バイトダンス インコーポレイテッド
【氏名又は名称原語表記】BYTEDANCE INC.
【住所又は居所原語表記】12655 West Jefferson Boulevard, Sixth Floor, Suite No. 137 Los Angeles, California 90066 United States of America
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ザン,カイ
(72)【発明者】
【氏名】ザン,リー
(72)【発明者】
【氏名】リュウ,ホンビン
(72)【発明者】
【氏名】ワン,ユエ
(57)【要約】
【課題】効率的なアフィンマージ動きベクトル導出のためのビデオ処理方法等を提供する。
【解決手段】1つの態様で、ビデオ処理方法は、現在のビデオブロックをサブブロックに分けることと、サブブロックごとに動きベクトルを導出することであり、各サブブロックの動きベクトルがポジション規則に従ってそのサブブロックの位置と関連付けられることと、サブブロックの動きベクトルに基づいて現在のビデオブロックのビットストリーム表現を処理することとを含むよう提供される。
【選択図】図14
【特許請求の範囲】
【請求項1】
ビデオデータを処理する方法であって、
ビデオの現在のビデオブロックと前記ビデオのビットストリームとの間の変換のために、規則に基づいて、前記現在のビデオブロックの制御点での動きベクトル(CPMV)を決定することと、
前記CPMVに基づいて、前記現在のビデオブロックと前記ビットストリームとの間の前記変換を実行することと
を有し、
前記規則は、前記現在のビデオブロックのCPMV候補が、アフィンマージモードでコーディングされた上隣接ブロックからの動きベクトルから導出される、ことを定め、前記CPMV候補は、前記現在のビデオブロックの前記CPMVを導出するために使用される、
方法。
【請求項2】
前記現在のビデオブロックは現在のスライスに属し、前記現在のビデオブロックの1つ以上の空間近傍ブロックの中の空間近傍ブロックは、その空間近傍ブロックが前記現在のスライスとは異なるスライスに属する場合に、妥当でない、
請求項1に記載の方法。
【請求項3】
前記現在のビデオブロックは複数のサブブロックを含み、前記変換を実行することは、
前記複数のサブブロックの中の各サブブロックについて、前記CPMV及び対応するサブブロックの特定の位置に基づいて、動きベクトルを決定することを有する、
請求項1又は2に記載の方法。
【請求項4】
前記特定の位置は、前記対応するサブブロックの中心である、
請求項3に記載の方法。
【請求項5】
前記対応するサブブロックは、M×Nのサイズを有し、前記対応するサブブロックの中心は、[(M>>1)+a,(N>>1)+b]として定義され、M及びNは自然数であり、a、bは0又は-1である、
請求項3に記載の方法。
【請求項6】
前記変換は、前記現在のビデオブロックを前記ビットストリームに符号化することを含む、
請求項1乃至5のうちいずれか一項に記載の方法。
【請求項7】
前記変換は、前記ビットストリームから前記現在のビデオブロックを復号することを含む、
請求項1乃至5のうちいずれか一項に記載の方法。
【請求項8】
ビデオデータを処理する装置であって、
プロセッサと、命令を有している非一時的なメモリとを有し、
前記命令は、前記プロセッサによって実行されると、前記プロセッサに、
ビデオの現在のビデオブロックと前記ビデオのビットストリームとの間の変換のために、規則に基づいて、前記現在のビデオブロックの制御点での動きベクトル(CPMV)を決定することと、
前記CPMVに基づいて、前記現在のビデオブロックと前記ビットストリームとの間の前記変換を実行することと
を実行させ、
前記規則は、前記現在のビデオブロックのCPMV候補が、アフィンマージモードでコーディングされた上隣接ブロックからの動きベクトルから導出される、ことを定め、前記CPMV候補は、前記現在のビデオブロックの前記CPMVを導出するために使用される、
装置。
【請求項9】
プロセッサに、
ビデオの現在のビデオブロックと前記ビデオのビットストリームとの間の変換のために、規則に基づいて、前記現在のビデオブロックの制御点での動きベクトル(CPMV)を決定することと、
前記CPMVに基づいて、前記現在のビデオブロックと前記ビットストリームとの間の前記変換を実行することと
を実行させる命令を記憶し、
前記規則は、前記現在のビデオブロックのCPMV候補が、アフィンマージモードでコーディングされた上隣接ブロックからの動きベクトルから導出される、ことを定め、前記CPMV候補は、前記現在のビデオブロックの前記CPMVを導出するために使用される、
非一時的なコンピュータ可読記憶媒体。
【請求項10】
ビデオのビットストリームを記憶する方法であって、
前記ビデオの現在のビデオブロックから前記ビットストリームを生成するために、規則に基づいて、前記現在のビデオブロックの制御点での動きベクトル(CPMV)を決定することと、
前記決定に基づいて、前記現在のビデオブロックから前記ビットストリームを生成することと、
前記ビットストリームを非一時的なコンピュータ可読記録媒体に記憶することと
を有し、
前記規則は、前記現在のビデオブロックのCPMV候補が、アフィンマージモードでコーディングされた上隣接ブロックからの動きベクトルから導出される、ことを定め、前記CPMV候補は、前記現在のビデオブロックの前記CPMVを導出するために使用される、
方法。
【発明の詳細な説明】
【技術分野】
【0001】
本特許文献は、ビデオ符号化及び復号化技術、デバイス、及びシステムに関係がある。
【背景技術】
【0002】
ビデオ圧縮の進歩に関わらず、デジタルビデオは、インターネット及び他のデジタル通信ネットワークで最大のバンド幅使用を依然として占めている。ビデオを受信及び表示可能な被接続ユーザデバイスの数が増えるにつれて、デジタルビデオ利用のためのバンド幅需要は成長し続けると予想される。
【発明の概要】
【0003】
本文書は、サブブロックに基づくコーディング、特に、アフィン動きコーディングモードを使用する場合の性能を改善するためにビデオ符号化及び復号化実施形態で使用され得る技術を開示する。
【0004】
一例となる態様で、ビデオ処理方法は、現在のブロックをサブブロックに分けることと、サブブロックごとに動きベクトルを導出することであり、各サブブロックの動きベクトルがポジション規則に従ってそのサブブロックの位置と関連付けられることと、サブブロックの動きベクトルを用いて現在のブロックのビットストリーム表現を処理することとを含むよう提供される。
【0005】
他の態様では、ビデオ処理方法は、アフィンモードを使用する、現在のブロックと現在のブロックのビットストリーム表現との間の変換のために、ポジション規則に基づいて現在のブロックの制御点での動きベクトルを導出することと、動きベクトルを用いて現在のブロックとビットストリーム表現との間の変換を実行することとを有し、ポジション規則が、導出のための非隣接近傍ブロックの使用を除くことを定めるよう提供される。
【0006】
他の態様では、ビデオ処理の方法は、現在のブロックと現在のブロックのビットストリーム表現との間の変換のために、1つ以上の隣接ブロックの位置に基づいて妥当性基準を満足する1つ以上の隣接ブロックからのマージ候補を含めることによってアフィンマージ候補のリストを決定することと、動きベクトルを用いて現在のブロックとビットストリーム表現との間の変換を実行することとを有するよう提供される。
【0007】
更なる他の例となる態様では、本明細書で記載されるビデオ符号化方法を実装するビデオエンコーダデバイスが開示される。
【0008】
更なる他の代表的な態様では、本明細書で記載される様々な技術は、非一時的なコンピュータ可読媒体に記憶されているコンピュータプログラム製品として具現されてもよい。コンピュータプログラム製品は、本明細書で記載される方法を実行するためのプログラムコードを含む。
【0009】
更なる他の代表的な態様では、ビデオデコーダ装置が、本明細書で記載される方法を実装してもよい。
【0010】
1つ以上の実施の詳細は、添付の書類、図面、及び以下の説明において示される。他の特徴は、明細書及び図面から、並びに特許請求の範囲から明らかである。
【図面の簡単な説明】
【0011】
図1】サブブロックに基づく予測の例を示す。
図2】簡単化されたアフィン動きモデルの例を表す。
図3】サブブロックごとのアフィン動きベクトル場(MVF)の例を示す。
図4】AF_INTERモードのための動きベクトル予測(MVP)の例を示す。
図5A】AF_MERGE符号化モードのための候補の例を表す。
図5B】AF_MERGE符号化モードのための候補の例を表す。
図6】コーディングユニット(CU)のためのアドバンスド時間動きベクトル予測子(ATMVP)のプロセスの例を示す。
図7】4つのサブブロック(A~D)を有する1つのCU及びその隣接ブロック(a~d)の例を示す。
図8】ビデオコーディングにおけるオプティカルフロー軌跡の例を示す。
図9A】ブロック拡張なしの双方向オプティカル(BIO)コーディング技術の例を示し、ブロックの外にあるアクセス位置の例を示す。
図9B】ブロック拡張なしの双方向オプティカル(BIO)コーディング技術の例を示し、余分のメモリアクセス及び計算を回避するために使用されるパディングの例を示す。
図10】バイラテラルマッチングの例を示す。
図11】テンプレートマッチングの例を示す。
図12】フレームレートアップコンバージョン(FRUC)におけるユニラテラル動き推定(ME)の例を示す。
図13】織り込み予測の実施例を表す。
図14】異なるサブブロックごとにMVを導出するために異なる位置の例を示し、星は異なる位置を表す。
図15】v0x及びv0yを導出するための隣接ブロックの例を示す。
図16A】アフィンモードでコーディングされた左隣のブロックからアフィンマージモードのためのMVを導出する例を示す。
図16B】アフィンモードでコーディングされた上隣のブロックからアフィンマージモードのためのMVを導出する例を示す。
図17】異なるコーディングツリーユニット(CTU)に属する隣接ブロック及び現在のブロックの例を示し、そのような隣接ブロックからのアフィンマージ候補は妥当でないとして扱われる。
図18】開示されている技術に従う2つの分割パターンによる織り込み予測の例を示す。
図19A】開示されている技術に従ってブロックが4×4サブブロックに分けられる分割パターンの例を示す。
図19B】開示されている技術に従ってブロックが8×8サブブロックに分けられる分割パターンの例を示す。
図19C】開示されている技術に従ってブロックが4×8サブブロックに分けられる分割パターンの例を示す。
図19D】開示されている技術に従ってブロックが8×4サブブロックに分けられる分割パターンの例を示す。
図19E】開示されている技術に従ってブロックが一様でないサブブロックに分けられる分割パターンの例を示す。
図19F】開示されている技術に従ってブロックが一様でないサブブロックに分けられる分割パターンの他の例を示す。
図19G】開示されている技術に従ってブロックが一様でないサブブロックに分けられる分割パターンの更なる他の例を示す。
図20】本文書で記載される視覚媒体復号化又は視覚媒体符号化技術を実装するハードウェアプラットフォームの例のブロック図である。
図21】ビデオ処理の方法の例のフローチャートである。
図22】ビデオ処理の方法の他の例のフローチャートである。
図23】ビデオ処理の方法の他の例のフローチャートである。
【発明を実施するための形態】
【0012】
項目見出しは、読みやすさを改善するために本文書中で使用され、項目内で記載されている技術及び実施形態をその項目にのみ制限しない。
【0013】
ビデオの圧縮率を改善するために、研究者は、継続的に、ビデオを符号化するための新しい技術を探している。
【0014】
1.イントロダクション
本特許文献は、ビデオ/イメージコーディング技術に関係がある。具体的に、それは、ビデオ/イメージコーディングにおけるサブブロックに基づく予測に関係がある。それは、HEVCのような既存のビデオコーディング規格、又は最終決定されるべき規格(バーサタイルビデオコーディング)に適用されてよい。それはまた、将来のビデオ/イメージコーディング規格又はビデオ/イメージコーデックにも適用可能である。
【0015】
簡潔な解説
サブブロックに基づく予測は、HEVC Annex I(3D-HEVC)によってビデオコーディング規格に最初に導入される。サブブロックに基づく予測により、コーディングユニット(Coding Unit,CU)又は予測ユニット(Prediction Unit,PU)などのブロックは、いくつかの重なり合わないサブブロックに分けられる。異なるサブブロックは、参照インデックス又は動きベクトル(Motion Vector,MV)などの異なる動き情報を割り当てられてよく、動き補償(Motion Compensation,MC)は、サブブロックごとに個別に実行される。図1は、サブブロックに基づく予測の概念を表す。
【0016】
HEVCを越える将来のビデオコーディング技術を探求すべく、Joint Video Exploration Team(JVET)は、2015年にVCEG及びMPEGによって合同で設立された。それ以来、多くの新しい方法がJVETによって採用され、Joint Exploration Model(JEM)と名付けられた参照ソフトウェアに入れられた。
【0017】
JEMでは、サブブロックに基づく予測は、アフィン予測、選択的時間動きベクトル予測(Alternative Temporal Motion Vector Prediction,ATMVP)、空間時間動きベクトル予測(Spatial-Temporal Motion Vector Prediction,STMVP)、双方向オプティカルフロー(Bi-directional Optical flow,BIO)及びフレームレートアップコンバージョン(Frame-Rate Up Conversion,FRUC)などのいくつかのコーディングツールにおいて採用される。
【0018】
2.1 アフィン予測
HEVCでは、平行移動モデルが動き補償予測(Motion Compensation Prediction,MCP)のために適用される。現実世界では、多くの種類の動き、例えば、ズームイン/アウト、回転、視点動作(perspective motions)及び他の不規則な動きがある。JEMでは、簡単化されたアフィン変換動き補償予測が適用される。図2に示されるように、ブロックのアフィン動き場は、2つの制御点動きベクトルによって記述される。
【0019】
ブロックの動きベクトル場(Motion Vector field,MVF)は、次の式によって記述される:
【数1】
【0020】
式(1)中、m(v0x,v0y)は、左上角の制御点の動きベクトルであり、(v1x,v1y)は、右上角の制御点の動きベクトルである。
【0021】
動き補償予測を更に簡単にするために、サブブロックに基づくアフィン変換予測が適用される。サブブロックサイズM×Nは、式(2)で見られるように導出される。式(2)中、MvPreは、動きベクトル分数精度(JEMでは1/16)であり、(v2x,v2y)は、式(1)に従って計算される左下制御点の動きベクトルである:
【数2】
【0022】
式(2)によって導出された後、M及びNは、夫々w及びhの約数にするよう、必要に応じて下方に調整されるべきである。
【0023】
各M×Nサブブロックの動きベクトルを導出するために、図3に示されるように、各サブブロックの中心サンプルの動きベクトルは、式(1)に従って計算され、1/16分数精度に丸められる。次いで、動き補償補間フィルタが、導出された動きベクトルによる各サブブロックの予測を生成するよう適用される。
【0024】
MCPの後、各サブブロックの高精度の動きベクトルは丸められ、通常の動きベクトルと同じ精度でセーブされる。
【0025】
JEMでは、2つのアフィン動きモード、すなわちAF_INTERモード及びAF_MERGEモードがある。幅及び高さの両方が8よりも大きいCUの場合に、AF_INTERモードが適用され得る。CUレベルでのアフィンフラグは、AF_INTERモードが使用されるかどうかを示すためにビットストリームにおいて伝送される。このモードでは、動きベクトル対{(v,v)|v={v,v,v},v={v,v}}を有する候補リストが、隣接するブロックを用いて構成される。図4に示されるように、vは、ブロックA、B又はCの動きベクトルから選択される。隣接するブロックからの動きベクトルは、参照リストと、隣接するブロックのためのリファレンスのPOCと、現在のCUのためのリファレンスのPOC、及び現在のCUのPOCの間の関係とに従って、スケーリングされる。そして、隣接するブロックD及びEからvを選択するアプローチは同様である。候補リストの数が2よりも小さい場合に、リストは、AMVP候補の夫々を複製することによって構成された動きベクトル対によってパディングされる。候補リストが2よりも大きい場合には、候補は、最初に、隣接する動きベクトルの一貫性(ペア候補に含まれる2つの動きベクトルの類似性)に従ってソートされ、最初の2つの候補のみが保持される。RDコストチェックは、どの動きベクトル対候補が現在のCUの制御点動きベクトル予測(CPMVP)として選択されるかを決定するために使用される。そして、候補リスト内のCPMVPの位置を示すインデックスが、ビットストリームにおいて伝送される。現在のアフィンCUのCPMVPが決定された後、アフィン動き推定が適用され、制御点動きベクトル(CPMV)が求められる。次いで、CPMVとCPMVPとの差が、ビットストリームにおいて伝送される。
【0026】
CUがAF_MERGEモードにおいて適用される場合に、それは、有効な隣接する再構成されたブロックから、アフィンモードでコーディングされた第1ブロックを得る。そして、候補ブロックの選択順序は図5Aに示されるように左、上、右上、左下、左上の順である。隣接する左下ブロックAが図5Bに示されるようにアフィンモードでコーディングされる場合に、ブロックAを含むCUの左上角、右上角、及び左下角の動きベクトルv、v及びvが導出される。そして、現在のCUの左上角の動きベクトルvは、v、v及びvに従って計算される。次に、現在のCUの右上の動きベクトルvが計算される。
【0027】
現在のCUのCPMV v及びvが導出された後、簡単化されたアフィン動きモデル式(1)に従って、現在のCUのMVFが生成される。現在のCUがAF_MERGEモードでコーディングされているかどうかを特定するために、少なくとも1つの隣接ブロックがアフィンモードでコーディングされている場合に、アフィンフラグがビットストリームにおいて伝送される。
【0028】
2.2 ATMVP
選択的時間動きベクトル予測(ATMVP)法では、動きベクトルの時間動きベクトル予測(TMVP)は、現在のCUよりも小さいブロックから複数組の動き情報(動きベクトル及び参照インデックスを含む)をフェッチすることによって変更される。図6に示されるように、サブCUは、正方形のN×Nブロックである(Nは、デフォルトで4にセットされる)。
【0029】
ATMVPは、CU内のサブCUの動きベクトルを2つのステップで予測する。第1ステップは、いわゆる時間ベクトルにより参照ピクチャ内の対応するブロックを識別することである。参照ピクチャは、モーションソースピクチャ(motion source picture)と呼ばれる。第2ステップは、現在のCUをサブCUに分け、図6に示されるように、各サブCUに対応するブロックから各サブCUの参照インデックスとともに動きベクトルを取得することである。
【0030】
第1ステップで、参照ピクチャ及び対応するブロックは、現在のCUの空間的隣接ブロックの動き情報によって決定される。隣接するブロックの繰り返しの走査プロセスを回避するために、現在のCUのマージ候補リスト内の第1マージ候補が使用される。第1の利用可能な動きベクトル及びその関連する参照インデックスは、時間ベクトル及びモーションソースピクチャへのインデックスであるようセットされる。このように、ATMVPでは、対応するブロックは、MTVPと比較して、より正確に特定され得る。このとき、対応するブロック(同一位置ブロック(collocated block)と時々呼ばれる)は常に、現在のCUに対して右下又は中心の位置にある。
【0031】
第2ステップで、サブCUの対応するブロックは、現在のCUの座標に時間ベクトルを加えることによって、モーションソースピクチャにおける時間ベクトルによって特定される。サブCUごとに、その対応するブロック(中心サンプルをカバーする最小のモーショングリッド)の動き情報が、そのサブCUの動き情報を導出するために使用される。対応するN×Nブロックの動き情報が特定された後、それは、HEVCのTMVPと同じように、現在のサブCUの動きベクトル及び参照インデックスに変換される。このとき、モーションスケーリング及び他のプロシージャが適用される。例えば、デコーダは、低遅延条件(すなわち、現在のピクチャの全ての参照ピクチャのPOCが、現在のピクチャのPOCよりも小さい)が満足されるかどうかをチェックし、場合により、サブCUごとに動きベクトルMVyを予測するために動きベクトルMVx(参照ピクチャリストXに対応する動きベクトル)を使用する(Xは0又は1に等しく、Yは1-Xに等しい)。
【0032】
3.STMVP
この方法では、サブCUの動きベクトルは、ラスタスキャン順序に従って、再帰的に導出される。図7は、この概念を表す。4つの4×4サブCU A、B、C及びDを含む8×8CUを考える。現在のフレームにおける隣接する4×4ブロックは、a、b、c及びdと表記される。
【0033】
サブCU Aの動き導出は、その2つの空間的隣接ブロックを特定することによって開始する。第1隣接ブロックは、サブCU Aの上にあるN×Nブロック(ブロックc)である。このブロックcが利用可能でないか、又はイントラコーディングされている場合には、サブCU Aの上にある他のN×Nブロックが(ブロックcから開始して左から右へ)チェックされる。第2隣接ブロックは、サブCU Aの左にあるブロック(ブロックb)である。ブロックbが利用可能でないか、又はイントラコーディングされている場合には、サブCUの左にある他のブロックが(ブロックbから開始して上から下へ)チェックされる。各リストの隣接ブロックから得られた動き情報は、所与のリストの第1参照フレームに合わせて調整される。次に、サブブロックAの時間動きベクトル予測子(TMVP)が、HEVCで定められているTMVP導出の同じプロシージャに従うことによって、導出される。位置Dにある同一位置ブロックの動き情報は、然るべくフェッチ及びスケーリングされる。最終的に、動き情報を取り出しスケーリングした後、全ての利用可能な動きベクトル(最大で3つまで)は、参照リストごとに別々に平均化される。平均化された動きベクトルは、現在のサブCUの動きベクトルとして割り当てられる。
【0034】
4.BIO
双方向オプティカルフロー(BIO)は、双予測(bi-prediction)のためにブロックワイズの動き補償に加えて実行されるサンプルワイズの動き精緻化である。サンプルレベルの動き精緻化は、シグナリングを使用しない。
【0035】
(k)は、ブロック動き補償後のリファレンスk(k=0,1)からのルーマ値であり、∂I(k)/∂x、∂I(k)/∂yは、夫々、I(k)勾配の水平及び垂直成分である、とする。オプティカルフローが有効であるすると、動きベクトル場(v,v)は、式:
【数3】
によって与えられる。
【0036】
このオプティカルフロー式を各サンプルの動き軌跡のエルミート補間(Hermite interpolation)と組み合わせることで、最後には関数値I(k)及び導関数∂I(k)/∂x、∂I(k)/∂yの両方に一致する一意の三次多項式が得られる。t=0でのこの多項式の値がBIO予測である:
【数4】
【0037】
ここで、τ及びτは、図8に示されるように参照フレームまでの距離を表す。距離τ及びτは、Ref0及びRef1のPOCに基づいて計算される。すなわち、τ=POC(現在)-POC(Ref0)、τ=POC(Ref1)-POC(現在)である。両方の予測が同じ時間方向から(両方とも過去から又両方とも未来から)もたらされる場合に、符号は異なる(すなわち、τ・τ<0)。この場合に、BIOは、予測が同じ時点からでない(すなわち、τ≠τ)場合にのみ適用され、両方の参照領域は非ゼロの動きを有し(MVx,MVy,MVx,MVy≠0)、ブロック動きベクトルは時間的距離に比例する(MVx/MVx=MVy/MVy=-τ/τ)。
【0038】
動きベクトル場(v,v)は、点A及びBでの値の間の差Δを最小化にすることによって決定される(図9A及び図9Bの参照フレーム面及び動き軌跡の交点)。モデルは、Δのために局所テイラー転換の最初の線形項しか使用しない:
【数5】
【0039】
上記の式中の全ての値は、これまで表記から省略されていたサンプル位置(i´,j´)に依存する。動きが局所周囲エリアにおいて一貫しているとすると、Mが2に等しいとして、現在予測されている点(i,j)を中心とした(2M+1)×(2M+1)の正方形窓Ω内でΔを最小化する:
【数6】
【0040】
この最適化問題のために、JEMは、最初に垂直方向において、次いで水平方向において最小化を行う簡単なアプローチを使用する。これにより、次が得られる:
【数7】
ここで、
【数8】
である。
【0041】
ゼロ又は非常に小さい値による除算を回避するために、正則化パラメータr及びmが式(7)及び式(8)に導入される:

r=500・4d-8 (10)
m=700・4d-8 (11)
【0042】
ここで、dは、ビデオサンプルのビットデプスである。
【0043】
BIOのメモリアクセスを通常の双予測動き補償の場合と同じに保つために、全ての予測及び勾配値I(k)、∂I(k)/∂x、∂I(k)/∂yは、現在のブロック内の位置についてのみ計算される。式(9)において、予測されているブロックの境界上にある現在予測されている点に中心がある(2M+1)×(2M+1)の正方形窓Ωは、ブロックの外にある点にアクセスする必要がある(図9Aに図示)。JEMでは、ブロックの外にあるI(k)、∂I(k)/∂x、∂I(k)/∂yの値は、ブロック内の最も近い利用可能な値に等しくセットされる。例えば、これは、図9Bに示されるように、パディングとして実施され得る。
【0044】
BIOによれば、動き場はサンプルごとに精緻化され得ることが可能である。計算複雑性を軽減するよう、BIOのブロックに基づく設計がJEMでは使用される。動き精緻化は、4×4ブロックに基づいて計算される。ブロックに基づくBIOでは、4×4ブロック内の全てのサンプルの式(9)中のsの値は集計され、次いで、sの集計値は、4×4ブロックのBIO動きベクトルを導出するために使用される。より具体的に、次の式が、ブロックに基づくBIO導出のために使用される:
【数9】
【0045】
ここで、bは、予測されているブロックのk番目の4×4ブロックに属するサンプルの組を表し、式(7)及び式(8)中のsは、関連する動きベクトルオフセットを導出するよう((sn,bk)>>4)によって置換される。
【0046】
いくつかの場合に、BIOのMVレジメントは、ノイズ又は不規則な動きにより信頼できないことがある。そのため、MVレジメントの大きさは、閾値thBIOにクリップされる。閾値は、現在のピクチャの参照ピクチャが全て1方向からであるかどうかに基づいて決定される。現在のピクチャの全ての参照ピクチャが1方向からである場合には、閾値の値は12×214-dにセットされ、そうでない場合には、それは12×213-dにセットされる。
【0047】
BIOの勾配は、HEVC動き補償プロセス(二次元可分FIR)と一致する動作を用いて動き補償補間と同時に計算される。この二次元可分FIRのための入力は、動き補償プロセスの場合と同じ参照フレームサンプルであり、ブロック動きベクトルの分数部分に応じた分数位置(fracX,fracY)である。水平勾配∂I/∂xの場合に、信号は、最初に、スケール除去シフトd-8で分数位置fracYに対応するBIOfilterSを用いて垂直に補間され、次いで、勾配フィルタBIOfilterGが、18-dによるスケール除去シフトで分数位置fracXに対応する水平方向において適用される。垂直勾配∂I/∂yの場合に、最初に、勾配フィルタは、スケール除去シフトd-8で分数位置fracYに対応するBIOfilterGを用いて垂直に適用され、次いで、信号変位が、18-dによるスケール除去シフトで分数位置fracXに対応する水平方向においてBIOfilterSを用いて実行される。勾配計算及び信号変位のための補間フィルタBIOfilterG、BIOfilterFの長さは、合理的な複雑さを保つために、より短い(6タップ)。表は、BIOにおいてブロック動きベクトルの異なる分数位置ごとに勾配計算に使用されるフィルタを示す。表は、BIOにおいて予測信号生成のために使用される補間フィルタを示す。
【表1】
【表2】
【0048】
JEMでは、BIOは、2つの予測が異なる参照ピクチャからである場合に、全ての双予測されたブロックに適用される。LICがCUのために有効である場合に、BIOは無効にされる。
【0049】
JEMでは、OBMCが、通常のMCプロセスの後でブロックに適用される。計算複雑性を軽減するよう、BIOは、OBMCプロセス中に適用されない。これは、BIOが、ブロックのMCプロセスにおいて、それ自身のMCを使用する場合にのみ適用され、OBMCプロセス中に隣接ブロックのMVが使用される場合にはMCプロセスにおいて適用されないことを意味する。
【0050】
2.5 FRUC
FRUCフラグは、CUについて、そのマージフラグが真である場合に伝送される。FRUCフラグが偽である場合に、マージインデックスが伝送され、通常のマージモードが使用される。FRUCフラグが真である場合には、どの方法(バイラテラルマッチング又はテンプレートマッチング)がブロックの動き情報を導出するために使用されるべきかを示すために、追加的なFRUCモードフラグが伝送される。
【0051】
エンコーダの側では、通常のマージ候補について行われるように、CUのためにFRUCマージモードを使用することがRFコスト選択に基づくかどうかが決定される。すなわち、2つのマッチングモード(バイラテラルマッチング及びテンプレートマッチング)は両方とも、RFコスト選択を使用することによってCUについてチェックされる。最低コストをもたらす1つが、他のCUモードと更に比較される。FRUCマッチングモードが最も効率的なモードである場合に、FRUCフラグは、そのCUについて真にセットされ、関連するマッチングモードが使用される。
【0052】
FRUCマージモードにおける動き導出プロセスは2つのステップを有する。CUレベル動き探索が最初に行われ、次いで、サブCUレベルの動き精緻化が続く。CUレベルでは、バイラテラルマッチング又はテンプレートマッチングに基づいてCU全体について初期動きベクトルが導出される。最初に、MV候補のリストが生成され、最低マッチングコストをもたらす候補が、更なるCUレベル精緻化のための開始点として選択される。次いで、開始点の周りのバイラテラルマッチング又はテンプレートマッチングに基づく局所探索が行われ、最低マッチングコストをもたらすMVが、CU全体のMVとなる。その後に、動き情報は、導出されたCU動きベクトルを開始点として用いてサブCUレベルで更に精緻化される。
【0053】
例えば、次の導出プロセスが、W×HのCUの動き情報導出のために実行される。第1段階で、W×HのCU全体のMVが導出される。第2段階で、CUは、M×MのサブCUに更に分けられる。Mの値は、式(13)で見られるように計算され、Dは、JEMではデフォルトで3にセットされる予め定義された分割デプスである。次いで、サブCUごとのMVが導出される。
【数10】
【0054】
図10に示されるように、バイラテラルマッチングは、2つの異なる参照ピクチャにおいて現在のCUの動き軌跡に沿って2つのブロック間の最も近い一致を見つけることによって、現在のCUの動き情報を導出するために使用される。連続的な動き軌跡を仮定して、2つの参照ブロックを指す動きベクトルMV0及びMV1は、現在のピクチャと2つの参照ピクチャとの間の時間的距離、すなわち、TD0及びTD1に比例するはずである。特別な場合として、現在のピクチャが時間的に2つの参照ピクチャの間にあり、現在のピクチャから2つの参照ピクチャまでの時間的距離が同じである場合に、バイラテラルマッチングは、ミラーに基づく双方向MVになる。
【0055】
図11に示されるように、テンプレートマッチングは、現在のピクチャにおけるテンプレート(現在のCUの上及び/又は左隣のブロック)と参照ピクチャにおけるブロック(テンプレートと同じサイズ)との間の最も近い一致を見つけることによって、現在のCUの動き情報を導出するために使用される。上記のFRUCマージモードを除いて、テンプレートマッチングは、AMVPモードにも適用される。JEMでは、HEVCで行われるように、AMVPは2つの候補を有する。テンプレートマッチング法によれば、新しい候補が導出される。テンプレートマッチングによる新たに導出された候補が、最初に存在しているAMVP候補と異なる場合には、それは、AMVP候補リストの初めに挿入され、次いで、リストサイズは2にセットされる(すなわち、2番目に存在するAMVP候補を削除する)。AMVPモードに適用される場合に、CUレベル探索のみが適用される。
【0056】
[CUレベルのMV候補セット]
CUレベルでのMV候補セットは:
(i)現在のCUがAMVPモードにある場合に、原AMVP候補、
(ii)全てのマージ候補、
(iii)補間されたMV場におけるいくつかのMV(後述される)、
(iv)上及び左隣の動きベクトル
から成る。
【0057】
バイラテラルマッチングを使用する場合に、マージ候補の夫々の有効なMVは、バイラテラルマッチングを仮定して、MV対を生成するために入力として使用される。例えば、マージ候補の1つの有効なMVは、参照リストAで(MVa,refa)である。次いで、その対となるバイラテラルMVの参照ピクチャrefbは、refa及びrefbが時間的に現在のピクチャの異なる側にあるように、他の参照リストBで見つけられる。そのようなrefbが参照リストBで利用可能でない場合に、refbは、refaとは異なるリファレンスとして決定され、現在のピクチャまでのその時間的距離は、リストBにおける最小距離になる。refbが決定された後、MVbは、現在のピクチャとrefa、refbとの間の時間的距離に基づいてMVaをスケーリングすることによって導出される。
【0058】
補間されたMV場からの4つのMVも、CUレベル候補リストに加えられる。より具体的に、現在のCUの位置(0,0)、(W/2,0)、(0,H/2)及び(W/2,H/2)での補間されたMVが加えられる。
【0059】
FRUCがAMVPモードで適用される場合に、原AMVP候補も、CUレベルMV候補セットに加えられる。
【0060】
CUレベルでは、AMVP CUの場合には最大15個までのMVが、マージCUの場合には最大13個までのMVが、候補リストに加えられる。
【0061】
[サブCUレベルのMV候補セット]
サブCUレベルでのMV候補セットは:
(i)CUレベル探索から決定されたMV、
(ii)上、左、左上及び右上の隣接するMV、
(iii)参照ピクチャからの同一位置MVのスケーリングされたバージョン、
(iv)最大4個のATMVP候補、
(v)最大4個のSTMVP候補
から成る。
【0062】
参照ピクチャからのスケーリングされたMVは、次のように導出される。両リスト内の全ての参照ピクチャはトラバースされる。参照ピクチャ内のサブCUの同一配置位置でのMVは、開始CUレベルMVのリファレンスに合わせて調整される。
【0063】
ATMVP及びSTMVP候補は、最初の4つの候補に限定される。
【0064】
サブCUレベルでは、最大17個のMVが、候補リストに加えられる。
【0065】
[補間されたMV場の生成]
フレームのコーディング前に、補間された動き場が、ユニラテラルMEに基づいてピクチャ全体について生成される。次いで、動き場は、CUレベル又はサブCUレベルのMV候補として後に使用されてよい。
【0066】
第1に、両参照リストにおける各参照ピクチャの動き場は、4×4ブロックレベルでトラバースされる。4×4のブロックごとに、現在のピクチャの4×4ブロックを通過するブロックに動きが関連付けられ、ブロックが如何なる補間された動きも割り当てられていない場合に、参照ブロックの動きは、時間的な距離TD0及びTD1に従って現在のピクチャに合わせて調整され(HEVCのTMVPのMVスケーリングと同じ方法)、スケーリングされた動きは、現在のフレーム内のブロックに割り当てられる。スケーリングされたMVが4×4ブロックに割り当てられない場合に、ブロックの動きは、補間された動き場で使用不可としてマークされる。
【0067】
[補間及びマッチングコスト]
動きベクトルが分数サンプル位置を指す場合に、動き補償された補間が必要とされる。複雑さを軽減するよう、通常の8タップHEVC補間の代わりに、双線形補間が、バイラテラルマッチング及びテンプレートマッチングの両方のために使用される。
【0068】
マッチングコストの計算は、異なるステップで少し異なる。CUレベルでの候補セットから候補を選択する場合に、マッチングコストは、バイラテラルマッチング又はテンプレートマッチングのSAD(sum of absolute difference)である。開始MVが決定された後、サブCUレベル探索でのバイラテラルマッチングのマッチングコストCは、次のように計算される:
【数11】
【0069】
ここで、wは、経験的に4にセットされる重み係数であり、MV及びMVは、夫々、現在のMV及び開始MVを示す。SADは、サブCUレベル探索でのテンプレートマッチングのマッチングコストとしても依然として使用される。
【0070】
FRUCモードで、MVは、ルーマサンプルのみを使用することによって導出される。導出された動きは、MCインター予測のためにルーマ及びクロマの両方について使用される。MVが決定された後、最終的なMCは、ルーマのための8タップ補間フィルタ及びクロマのための4タップ補間フィルタを用いて実行される。
【0071】
[MV精緻化]
MV精緻化は、バイラテラルマッチング又はテンプレートマッチングの基準によるパターンに基づくMV探索である。JEMでは、2つの探索パターンがサポートされる。夫々CUレベル及びサブCUレベルでのMV精緻化のための制約なし中心バイアス化ダイヤモンド探索アルゴリズム(unrestricted center-biased diamond search,UCBDS)及び適応横断探索(adaptive cross search)である。CUレベル及びサブCUレベルの両方の精緻化のために、MVは、4分の1ルーマサンプルMV精度で直接探索され、この後に、8分の1ルーマサンプルMV精緻化が続く。CU及びサブCUステップのためのMV精緻化の探索範囲は、8個のルーマサンプルに等しくセットされる。
【0072】
[テンプレートマッチングFRUCマージモードでの予測方向の選択]
バイラテラルマッチングマージモードでは、CUの動き情報が、2つの異なる参照ピクチャにおける現在のCUの動き軌跡に沿った2つのブロック間の最も近い一致に基づき導出されるので、双予測が常に適用される。テンプレートマッチングマージモード場合には、そのような制限はない。テンプレートマッチングマージモードでは、エンコーダは、CUのためにリスト0からの片予測(uni-prediction)、リスト1からの片予測、又は双予測から選択することができる。選択は、次のように、テンプレートマッチングコストに基づく:

costBi≦factor×min(cost0,cost1)の場合、
双予測が使用される;
そうではなく、cost0≦cost1の場合、
リスト0からの片予測が使用される;
上記以外の場合、
リスト1からの片予測が使用される。
【0073】
cost0は、リスト0のテンプレートマッチングのSADであり、cost1は、リスト1のテンプレートマッチングのSADであり、costBiは、双予測のテンプレートマッチングのSADである。factorの値は1.25に等しく、すなわち、選択プロセスは双予測の方に偏っている。
【0074】
インター予測方向選択は、CUレベルのテンプレートマッチングプロセスにのみ適用される。
【0075】
[織り込み予測の例]
織り込み予測(interweaved prediction)によれば、ブロックは、1つよりも多い分割パターンによりサブブロックに分けられる。分割パターンは、サブブロックのサイズ及びサブブロックの位置を含む、ブロックをサブブロックに分ける方法として定義される。分割パターンごとに、対応する予測ブロックは、分割パターンに基づいて各サブブロックの動き情報を導出することによって生成され得る。従って、1つの予測方向についてさえ、複数の予測ブロックが、多数の分割パターンによって生成され得る。代替的に、予測方向ごとに、ただ1つの分割パターンしか適用されなくてもよい。
【0076】
X個の分割パターンが存在し、P,P,・・・,PX-1と表される現在のブロックのX個の予測ブロックが、X個の分割パターンを用いて、サブブロックに基づく予測によって生成されるとする。Pと表される現在のブロックの最終的な予測は:
【数12】
として生成され得る。
【0077】
ここで、(x,y)は、ブロック内のピクセルの座標であり、w(x,y)は、Pの重み値である。一般性を失わずに、
【数13】
であることが考えられ、ここで、Nは非負値である。図13は、2つの分割パターンによる織り込み予測の例を示す。
【0078】
3.記載される実施形態によって解決される課題の例
図5に示されるようにアフィンマージMV導出プロセスには2つの潜在的な欠点がある。
【0079】
第1に、CUの左上の点の座標及びCUのサイズは、CUに属する各4×4ブロックによって保持されるべきである。この情報は、HEVCでは保持されるよう求められない。
【0080】
第2に、デコーダは、現在のCUに隣接しない4×4ブロックのMVにアクセスしなければならない。HEVCでは、デコーダは、現在のCUに隣接する4×4ブロックのMVにアクセスしさえすればよい。
【0081】
4.実施形態の例
織り込み予測及びアフィンマージMV導出プロセスを含むサブブロックに基づく予測を更に改善するいくつかの方法を提案する。
【0082】
以下の技術及び実施形態の列挙は、一般概念を説明するための例と考えられるべきである。更に、それらの技術は、ビデオ符号化中に、又は相応して符号化プロセス中に、一緒に動作するよう組み合わされ得る。留意すべきは、ここで、「符号化」との語は、非圧縮フォーマットでのソースビデオが他の符号化フォーマットに符号化される「トランスコーディング」を含む点である。
【0083】
サブブロックのMV導出
1.一実施形態で、サブブロックのMVは、そのサブブロックの中心について導出される。
a.代替的に、サブブロックのMVは、そのサブブロック内の如何なる位置についても導出され、その位置は、サブブロックの中心になくてもよい。
b.代替的に、MVが導出される位置は、サブブロックごとに異なってよい。(位置は、各サブブロックに関連する。)
c.MVが導出される位置は、サブブロックの配置に依存してよい。図14は例を示す。
d.M×Nによってサブブロックを表す。このとき、中心位置は((M>>1)+a)×((N>>1)+b)と表すことができ、a、bは0又は-1である。
【0084】
図14は、異なるサブブロックごとにMVを導出するための異なる位置の例を示す。星は位置を表す。明らかなように、様々な異なる位置が、MV導出のために使用されてよい。
【0085】
効率的なアフィンマージMV導出
2.一実施形態で、制御点でのMV(例えば、左上の点でのmv0及び右上の点でのmv1)は、アフィンマージMV導出プロセスにおいて、隣接する近傍ブロックの情報によってのみ導出される。一例において、隣接するCUのサイズ及び左上の点の座標、並びに現在のCUに隣接しない4×4ブロックのMVは、アフィンマージモードにより現在のCUのMVを導出するために必要とされない。
a.一実施形態で、アフィンパラメータ(例えば、式(1)中の4パラメータアフィンモードのためのa、b、c及びd)は、アフィンモード(アフィンインターモード及びアフィンマージモードを含む)でコーディングされた各ブロックにおいて保持される。
i.ブロックがアフィンマージモードでコーディングされる場合に、それは、アフィンモードでコーディングされた隣接ブロックからの4つのパラメータを引き継ぐ。
ii.一例において、4つのパラメータは、リスト0及びリスト1について異なっている。
iii.一例において、両方の参照ピクチャリストのパラメータが保持されてよい。代替的に、ひと組のアフィンパラメータしか、双予測のためでさえ保持されなくてもよい。代替的に、多重仮説(multiple hypothesis)の場合に、2組のアフィンパラメータが保持され、各1つが、双予測のための1つの参照ピクチャリストに対応する。
b.一実施形態で、ひと組のアフィンパラメータの一部(例えば、4パラメータアフィンのための式(1)中の2つのパラメータ(a及びb))のみが、アフィンモード(アフィンインターモード及びアフィンマージモードを含む)でコーディングされた各ブロックにおいて保持される。ブロックがアフィンマージモードでコーディングされる場合に、それは、アフィンモードでコーディングされた隣接ブロックから、保持されている一部のパラメータを引き継ぐ。
i.一例において、異なる参照ピクチャ又は異なる参照ピクチャリストは、全ての関連する一部のアフィンパラメータを保持してよい。
ii.2つのパラメータは、リスト0及びリスト1について異なっている。
c.一実施形態で、式(1)中のv0x及びv0y(c及びdとも表される)は、現在のブロックの左上角に隣接するブロックから導出される。次の例では、現在のブロックは、アフィンモードでコーディングされた隣接ブロックGにマージされることが考えられる。
i.一例において、図15に示される3つの隣接ブロックR、S及びTは、(v0x,v0y)を導出するために使用される。3つのブロックにおけるMVは、MV(R)、MV(S)及びMV(T)と表記される。
(a)一例において、(v0x,v0y)は、Xがインターコーディングされる場合に、MV(X)に等しくセットされる(XはR、S又はTであることができる)。
(b)一例において、(v0x,v0y)は、R、S及びTがインターコーディングされる場合に、MV(R)、MV(S)及びMV(T)の平均に等しくセットされる。
(c)一例において、(v0x,v0y)は、X及びYがインターコーディングされる場合に、MV(X)及びMV(Y)の平均に等しくセットされる(X及びYはR、S又はTであることができる)。
(d)一例において、(v0x,v0y)は、MV(X)に等しくセットされ、MV(X)は、ブロックGの同じリファレンスを参照する。
ii.一例において、(v0x,v0y)は、時間的隣接ブロックのMVから導出される。
iii.一例において、(v0x,v0y)は、ブロックGのリファレンスに合わせて調整される。
d.一実施形態で、アフィンマージモードでコーディングされたブロックのMVは、アフィンモードでコーディングされたS(4パラメータアフィンモードの場合にS=2、6パラメータアフィンモードの場合にS=3)個の左隣のブロックから導出される。図16Aは、例を示す。L0及びL1は、アフィンモードでコーディングされた2つの左隣のブロックである。Δは、2つの左隣のブロック間の距離である。2つのブロックの動きベクトルは、夫々(mvL ,mvL )及び(mvL ,mvL )である。(mv 、mv )は、式(1)中の現在のブロックの左上制御点でのMV(別名、(v0x,v0y))である。2つのブロックの1つ(例えば、L0)と左上制御点との間のy距離は、Φと表記される。留意されるべきは、距離は、ブロックの上、真ん中、又は下から測定され得る点である。図16Aでは、それは下から測定されている。
i.一例において、式(1)中のa及びbは、a=(mvL -mvL )/Δ、b=(mvL -mvL )/Δとして導出され得る。
ii.Δは固定数であることができる。
(a)それは、1、4、8、16などの2の形をとることができる。この場合に、上記のa及びbを計算するための除算演算は、シフト演算として実施され得る。
iii.Δは、ブロックの高さに応じた数であることができる。
iv.Δは、L0とL1との間の全ての左隣のブロック(L0及びL1の両方を含む)がアフィンモードでコーディングされ、同じ参照ピクチャを共有することを満足する最大長さとして導出され得る。
v.(mv 、mv )は、mv =mvL +bΦ、mv =mvL -aΦとして導出され得る。
vi.ΦがL1と左上制御点との間のy距離である場合に、(mv 、mv )は、mv =mvL +bΦ、mv =mvL -aΦとして導出され得る。
e.一実施形態で、アフィンマージモードでコーディングされたブロックのMVは、アフィンモードでコーディングされたS(4パラメータアフィンモードの場合にS=2、6パラメータアフィンモードの場合にS=3)個の上隣のブロックから導出される。図16Bは、例を示す。T0及びT1は、アフィンモードでコーディングされた2つの上隣のブロックである。Δは、2つの上隣のブロック間の距離である。2つのブロックの動きベクトルは、夫々(mvT ,mvT )及び(mvT ,mvT )である。(mv 、mv )は、式(1)中の現在のブロックの左上制御点でのMV(別名、(v0x,v0y))である。2つのブロックの1つ(例えば、T0)と左上制御点との間のx距離は、Φと表記される。留意されるべきは、距離は、ブロックの左、真ん中、又は右から測定され得る点である。図16Bでは、それは右から測定されている。
i.一例において、式(1)中のa及びbは、a=(mvT -mvT )/Δ、b=(mvT -mvT )/Δとして導出され得る。
ii.Δは固定数であることができる。
(a)それは、1、4、8、16などの2の形をとることができる。この場合に、上記のa及びbを計算するための除算演算は、シフト演算として実施され得る。
iii.Δは、ブロックの高さに応じた数であることができる。
iv.Δは、T0とT1との間の全ての上隣のブロック(T0及びT1の両方を含む)がアフィンモードでコーディングされ、同じ参照ピクチャを共有することを満足する最大長さとして導出され得る。
v.(mv 、mv )は、mv =mvT -aΦ、mv =mvT -bΦとして導出され得る。
vi.ΦがT1と左上制御点との間のx距離である場合に、(mv 、mv )は、mv =mvT -aΦ、mv =mvT -bΦとして導出され得る。
【0086】
図16A及び16Bは、アフィンモードでコーディングされた左隣のブロックから(図16A)又はアフィンモードでコーディングされた上隣のブロックから(図16B)アフィンマージモードのMVを導出する例を示す。
f.アフィンマージモードでコーディングされたブロックのMVは、アフィンモードでコーディングされた非隣接ブロックから導出されてよい。
g.アフィンマージモードでコーディングされたブロックのMVを導出するためにどの隣接ブロックが使用されるかは、ブロック形状に依存し得る。
i.サイズがM×N(M>N)であるブロックの場合に、アフィンマージモードでコーディングされたブロックのMVは、アフィンモードでコーディングされた上隣のブロックから導出される。
ii.サイズがM×N(M<N)であるブロックの場合に、アフィンマージモードでコーディングされたブロックのMVは、アフィンモードでコーディングされた左隣のブロックから導出される。
iii.サイズがM×N(M=N)であるブロックの場合に、アフィンマージモードでコーディングされたブロックのMVは、現在のブロックの左上角に隣接するブロックから導出される。
3.一実施形態で、隣接ブロックからのアフィンマージ候補が妥当なアフィンマージ候補であるかどうかは、隣接ブロックの配置に依存する。
a.一例において、隣接ブロックからのアフィンマージ候補は、隣接ブロックが現在のCTU(Coding Tree Unit)とは異なるCTU(例えば、最大CU(LCU))に属する場合に、妥当でないとして扱われる(マージ候補リストに入れられない)。
b.代替的に、隣接ブロックからのアフィンマージ候補は、隣接ブロックが、図17に示されるように、現在のCTUラインとは異なるCUTラインに属する場合に、妥当でないとして扱われる(マージ候補リストに入れられない)。
c.代替的に、隣接ブロックからのアフィンマージ候補は、隣接ブロックがスライスとは異なるスライスに属する場合に、妥当でないとして扱われる(マージ候補リストに入れられない)。
d.代替的に、隣接ブロックからのアフィンマージ候補は、隣接ブロックがタイルとは異なるタイルに属する場合に、妥当でないとして扱われる(マージ候補リストに入れられない)。
【0087】
図17は、異なるCTUラインに属する現在のブロック及び隣接ブロックの例を示す。この例では、隣接ブロックからのアフィンマージ候補は、隣接ブロックが現在のCTUラインとは異なるCTUラインに属する場合に、妥当でないとして扱われる(マージ候補リストに入れられない)。
【0088】
[織り込み予測の例]
図18は、開示される技術に従って、2つの分割パターンによる織り込み予測の例を示す。現在のブロック1300は、複数のパターンに分割され得る。例えば、図18に示されるように、現在のブロックは、パターン0(1301)及びパターン1(1302)の両方に分割される。2つの予測ブロックP(1303)及びP(1304)が生成される。現在のブロック1300の最終的な予測ブロックP(1305)は、P(1303)及びP(1304)の加重和を計算することによって生成され得る。
【0089】
より一般的には、X個の分割パターンを考えると、P,P,・・・PX-1と表される現在のブロックのX個の予測ブロックが、X個の分割パターンを用いて、サブブロックに基づく予測によって生成され得る。Pと表される現在のブロックの最終的な予測は:
【数14】
として生成され得る。
【0090】
ここで、(x,y)は、ブロック内のピクセルの座標であり、w(x,y)は、Pの重み値である。一例として、制限なしに、重みは:
【数15】
と表現され得る。
【0091】
Nは非負値である。代替的に、式(16)のビットシフト演算は:
【数16】
とも表現され得る。
【0092】
2の累乗である重みの和は、浮動小数点除算の代わりにビットシフト演算を行うことによって、加重和Pのより効率的な計算を可能にする。
【0093】
分割パターンは、サブブロックの異なる形状、又はサイズ、又は位置を有することができる。いくつかの実施形態で、分割パターンは、不規則なサブブロックサイズを含んでもよい。図19A~Gは、16×16ブロックの分割パターンのいくつかの例を示す。図19Aで、ブロックは、開示されている技術に従って4×4サブブロックに分けられる。このパターンは、JEMでも使用される。図19Bは、開示されている技術に従って、8×8サブブロックに分けられるブロックの例を示す。図19Cは、開示されている技術に従って4×8サブブロックに分けられるブロックの例を示す。図19Dは、開示されている技術に従って8×4サブブロックに分けられるブロックの例を示す。図19Eでは、ブロックの一部が、開示されている技術に従って4×4サブブロックに分けられる。ブロック境界にあるピクセルは、2×4、4×2又は2×2のようなサイズを有するより小さいサブブロックにおいて分けられる。いくつかのサブブロックは、より大きいサブブロックを形成するようマージされてよい。図19Fは、6×4、4×6又は6×6のようなサイズを有するより大きいサブブロックを形成するようマージされる、4×4サブブロック及び2×4サブブロックのような隣接サブブロックの例を示す。図19Gでは、ブロックの一部が、8×8サブブロックに分けられる。ブロック境界にあるピクセルは、代わりに、8×4、4×8又は4×4のようなサイズを有するより小さいサブブロックにおいて分けられる。
【0094】
サブブロックに基づく予測におけるサブブロックの形状及びサイズは、コーディングブロックの形状及び/又はサイズ、及び/又はコーディングされたブロックの情報に基づいて、決定され得る。例えば、いくつかの実施形態で、サブブロックは、現在のブロックがM×Nのサイズを有する場合に、4×N(又は8×Nなど)のサイズを有する。すなわち、サブブロックは、現在のブロックと同じ高さを有する。いくつかの実施形態で、サブブロックは、現在のブロックがM×Nのサイズを有する場合に、M×4(又はM×8など)のサイズを有する。すなわち、サブブロックは、現在のブロックと同じ幅を有する。いくつかの実施形態で、サブブロックは、現在のブロックがM×N(M>N)のサイズを有する場合に、A×B(A>B)(例えば、8×4)のサイズを有する。代替的に、サブブロックはB×ATMVP(例えば、4×8)のサイズを有することができる。
【0095】
いくつかの実施形態で、現在のブロックはM×Nのサイズを有する。サブブロックは、M×N≦T(あるいは、Min(M,N)≦T又はMax(M,N)≦Tなど)の場合に、A×Bのサイズを有し、サブブロックは、M×N>T(あるいは、Min(M,N)>T又はMax(M,N)>Tなど)の場合に、C×Dのサイズを有し、ここで、A≦CかつB≦Dである。例えば、M×N≦256の場合に、サブブロックは4×4のサイズであることができる。いくつかの実施形態で、サブブロックは8×8のサイズを有する。
【0096】
いくつかの実施形態で、織り込み予測を適用すべきかどうかは、インター予測方向に基づいて決定され得る。例えば、いくつかの実施形態で、織り込み予測は、双予測に適用され得るが、片予測には適用されない。他の例として、多重仮説が適用される場合に、織り込み予測は、1よりも多い参照ブロックがあるときに、1つの予測方向に適用され得る。
【0097】
いくつかの実施形態で、どのように織り込み予測を適用すべきかも、インター予測方向に基づいて決定され得る。いくつかの実施形態で、サブブロックに基づく予測により双予測されたブロックは、2つの異なる参照リストについて2つの異なる分割パターンによりサブブロックに分けられる。例えば、双予測されたブロックは、参照リスト0(L0)から予測される場合に、図19Cに示されるように4×8サブブロックに分けられる。同じブロックは、参照リスト1(L1)から予測される場合に、図19Dに示されるように8×4サブブロックに分けられる。最終的な予測Pは:
【数17】
と計算される。
【0098】
ここで、P及びPは、夫々、L0及びL1からの予測であり、w及びwは、夫々、L0及びL1のための重み値である。式(16)に示されるように、重み値は、w(x,y)+w(x,y)=1<<N(ここで、Nは非負整数値である)と決定され得る。各方向における予測のために使用されるサブブロックはより少ないので(例えば、8×8サブブロックに対して4×8サブブロック)、既存のサブブロックに基づく方法と比較して,計算に必要とされるバンド幅は小さい。より大きいサブブロックを使用することによって、予測結果はまた、ノイズ干渉の影響を受けにくくなる。
【0099】
いくつかの実施形態で、サブブロックに基づく予測により片予測されたブロックは、同じ参照リストについて2つ以上の異なる分割パターンによりサブブロックに分けられる。例えば、リストL(L=0又は1)の予測Pは:
【数18】
と計算される。
【0100】
ここで、XLは、リストLの分割パターンの数である。P (x,y)は、i番目の分割パターンにより生成された予測であり、w (x,y)は、P (x,y)の重み値である。例えば、XLが2である場合に、2つの分割パターンがリストLについて適用される。第1分割パターンで、ブロックは、図19Cに示されるように4×8サブブロックに分けられる。第2分割パターンで、ブロックは、図19Dに示されるように、8×4サブブロックに分けられる。
【0101】
いくつかの実施形態で、サブブロックに基づく予測により双予測されたブロックは、夫々L0及びL1からの2つの片予測されたブロックの組み合わせと見なされる。各リストからの予測は、上記の例で記載されるように導出され得る。最終的な予測Pは、
【数19】
と計算され得る。
【0102】
ここで、パラメータa及びbは、2つの内部予測ブロックに適用される2つの付加的な重みである。この具体例では、a及びbは両方とも1にセットされ得る。上記の例と同様に、各方向における予測のために使用されるサブブロックはより少ないので(例えば、8×8サブブロックに対して4×8サブブロック)、バンド幅利用は、既存のサブブロックに基づく方法よりも良いか、又はそれと同等である。同時に、予測結果は、より大きいサブブロックを使用することによって、改善され得る。
【0103】
いくつかの実施形態で、単一の非一様パターンが、夫々の片予測されたブロックにおいて使用され得る。例えば、リストL(例えば、L0又はL1)ごとに、ブロックは、異なるパターンに分割される(例えば、図19E又は図19Fに示される)。より少数のサブブロックの使用は、バンド幅の需要を小さくする。サブブロックの非一様性はまた、予測結果のロバスト性を向上させる。
【0104】
いくつかの実施形態で、多重仮説符号化ブロックの場合に、予測方向(又は参照ピクチャリスト)ごとに異なる分割パターンによって生成された1つよりも多い予測ブロックが存在し得る。複数の予測ブロックが、付加的な重みが適用された最終的な予測を生成するために使用され得る。例えば、付加的な重みは1/Mにセットされてよく、Mは、生成された予測ブロックの総数である。
【0105】
いくつかの実施形態で、エンコーダは、織り込み予測を適用すべきかどうか及びどのように織り込み予測を適用すべきかを決定することができる。次いで、エンコーダは、シーケンスレベル、ピクチャレベル、ビューレベル、スライスレベル、CTU(LCUとしても知られる)レベル、CUレベル、PUレベル、ツリーユニット(TU)レベル、又は領域レベル(複数のCU/PU/TU/LCUを含んでよい)でデコーダへ決定に対応する情報を送信することができる。情報は、シーケンスパラメータセット(SPS)、ビューパラメータセット(VPS)、ピクチャパラメータセット(PPS)、スライスヘッダ(SH)、CTU/LCU、CU、PU、TU、又は領域の第1ブロックにおいて伝送され得る。
【0106】
いくつかの実施で、織り込み予測は、アフィン予測、ATMVP、STMVP、FRUC、又はBIOのような既存のサブブロック方法に適用される。そのような場合に、更なるシグナリングコストは必要とされない。いくつかの実施で、織り込み予測によって生成された新しいサブブロックマージ候補は、マージリストに挿入され得る(例えば、織り込み予測+ATMVP、織り込み予測+STMVP、織り込み予測+FRUC、など)。
【0107】
いくつかの実施形態で、現在のブロックによって使用される分割パターンは、空間的及び/又は時間的隣接ブロックからの情報に基づいて導出され得る。例えば、関連情報を伝送するエンコーダに依存する代わりに、エンコーダ及びデコーダの両方が、時間的隣接(例えば、同じブロックの前に使用された分割パターン)又は空間的隣接(例えば、隣接するブロックによって使用された分割パターン)に基づいて分割パターンを取得する用所定の規則の組を採用することができる。
【0108】
いくつかの実施形態で、重み値wは固定であることができる。例えば、全ての分割パターンは、等しく重み付けされ得る。すなわち、w(x,y)=1である。いくつかの実施形態で、重み値は、使用される分割パターンに加えてブロックの位置に基づいて決定され得る。例えば、w(x,y)は、異なる(x,y)ごとに異なってよい。いくつかの実施形態で、重み値は、サブブロック予測に基づくコーディング技術(例えば、アフィン又はATMVP)及び/又は他のコーディングされた情報(例えば、スキップ若しくは非スキップモード、及び/又はMV情報)に更に依存してもよい。
【0109】
いくつかの実施形態で、エンコーダは、重み値を決定し、その値をシーケンスレベル、スライスレベル、CTU/LCUレベル、CUレベル、PUレベル、または領域レベル(複数のCU/PU/TU/LCUを含んでよい)でデコーダへ送信してよい。重み値は、シーケンスパラメータセット(SPS)、ビューパラメータセット(VPS)、ピクチャパラメータセット(PPS)、スライスヘッダ(SH)、CTU/LCU、CU、PU、TU、又は領域の第1ブロックにおいて伝送され得る。いくつかの実施形態で、重み値は、空間的及び/又は時間的隣接ブロックの重み値から導出され得る。
【0110】
本明細書で開示される織り込み予測技術は、サブブロックに基づく予測の1つ、いくつか、又は全てのコーディング技術に適用可能であることが知られる。例えば、織り込み予測技術は、アフィン予測に適用可能であり、一方、サブブロックに基づく予測の他のコーディング技術(例えば、ATMVP、STMVP、FRUC又はBIO)は、織り込み予測を使用しない。他の例として、アフィン、ATMVP、及びSTMVPの全てが、本明細書で開示される織り込み予測技術を適用する。
【0111】
図20は、例となるビデオビットストリーム処理装置2000のブロック図である。装置2000は、本明細書で記載される方法の1つ以上を実装するために使用されてよい。装置2000は、スマートフォン、タブレット、コンピュータ、インターネット・オブ・シングス(IoT)レシーバ、などにおいて具現されてよい。装置2000は、1つ以上のプロセッサ2002、1つ以上のメモリ2004、及びビデオ処理ハードウェア2006を含んでよい。プロセッサ2002は、本特許文献で記載される1つ以上の方法を実装するよう構成されてよい。メモリ(複数を含む)2004は、本明細書で記載される方法及び技術を実装するために使用されるデータ及びコードを記憶するために使用されてよい。ビデオ処理ハードウェア2006は、本文書で記載されるいくつかの技術をハードウェア回路において実装するために使用されてよい。留意すべきは、プロセッサ2002のエレクトロニクスからのメモリ2004及び回路2006の部分的又は完全な外在性は任意であり、実施選択である。
【0112】
図21は、例となるビデオ処理方法2100のフローチャートを示す。方法2100は、現在のブロックをサブブロックに分けること(2102)を含む。方法2100は、サブブロックごとに動きベクトルを導出することと(2104)を更に含み、各サブブロックの動きベクトルは、ポジション規則に従ってそのサブブロックの位置と関連付けられる。方法2100は、サブブロックの動きベクトルを用いて現在のブロックのビットストリーム表現を処理すること(2106)を更に含む。
【0113】
図22は、例となるビデオ処理方法2200のフローチャートである。方法2200は、アフィンモードを使用する、現在のブロックと現在のブロックのビットストリーム表現との間の変換のために、ポジション規則に基づいて現在のブロックの制御点での動きベクトルを導出すること(2202)を含む。方法2200は、動きベクトルを使用して、現在のブロックとビットストリーム表現との間の変換を実行すること(2204)を更に含む。いくつかの実施で、ポジション規則は、導出のための非隣接近傍ブロックの使用を除くことを定めてよい。いくつかの実施で、動きベクトルは、現在のブロックの少なくとも1つの非隣接4×4ブロックを含む隣接コーディングユニットの情報を使用せずに導出され得る。いくつかの実施で、方法は、前に変換された隣接ブロックの少なくともいくつかのアフィンパラメータを保持及び再利用することを更に含む。いくつかの実施で、少なくともいくつかのアフィンパラメータの保持及び再利用は、互いに別々に2つのステップで実行され得る。
【0114】
図23は、例となるビデオ処理方法2300のフローチャートである。方法は、現在のブロックと現在のブロックのビットストリーム表現との間の変換のために、1つ以上の隣接ブロックの位置に基づいて妥当性基準を満足する1つ以上の隣接ブロックからのマージ候補を含めることによって変換のためのアフィンマージ候補のリストを決定すること(2302)を含む。方法2300は、動きベクトルを用いて現在のブロックとビットストリーム表現との間の変換を実行すること(2304)を更に含む。
【0115】
上記の方法/技術の更なる特徴及び実施形態は、箇条書きで以下に記載される。
【0116】
1.ビデオ処理の方法(例えば、図21に示される方法2100)であって、
現在のブロックをサブブロックに分けることと、
サブブロックごとに動きベクトルを導出することとであり、各サブブロックの前記動きベクトルは、ポジション規則に従ってそのサブブロックの位置と関連付けられる、ことと、
前記サブブロックの動きベクトルを用いて前記現在のブロックのビットストリーム表現を処理することと
を有する方法。
【0117】
2.前記ポジション規則は、前記位置が対応するサブブロックの中心であることを定める、
1項に記載の方法。
【0118】
3.前記対応するサブブロックは、サイズM×Nを有し、前記中心は、((M>>1)+a)×((N>>1)+b)として定義され、M及びNは自然数であり、a、bは0又は-1である、
項2に記載の方法。
【0119】
4.前記ポジション規則は、前記位置が対応するサブブロックの非中心位置であることを定める、
項1に記載の方法。
【0120】
5.前記ポジション規則によって指定される位置は、動きベクトルが異なるサブブロックでは異なる位置で導出されることをもたらす、
項1に記載の方法。
【0121】
6.ビデオ処理方法(例えば、図22に示される方法2200)であって、
アフィンモードを使用する、現在のブロックと該現在のブロックのビットストリーム表現との間の変換のために、ポジション規則に基づいて前記現在のブロックの制御点での動きベクトルを導出することと、
前記動きベクトルを使用して、前記現在のブロックと前記ビットストリーム表現との間の前記変換を実行することと
を有し、
前記ポジション規則は、前記導出のための非隣接近傍ブロックの使用を除くことを定める、
方法。
【0122】
7.動きベクトルは、前記現在のブロックの少なくとも1つの非隣接4×4ブロックを含む隣接コーディングユニットの情報を使用せずに導出される、
項6に記載の方法。
【0123】
8.前に変換された隣接ブロックの少なくともいくつかのアフィンパラメータを保持及び再利用することを更に含む、
項7に記載の方法。
【0124】
9.前記現在のブロックは、アフィンモードでコーディングされた隣接ブロックから前記少なくともいくつかのアフィンパラメータを引き継ぐ、
項8に記載の方法。
【0125】
10.前記少なくともいくつかのアフィンパラメータは、リスト0及びリスト1参照フレームについて異なる、
項8に記載の方法。
【0126】
11.前記少なくともいくつかのアフィンパラメータは、2つの組を有し、各組は、多重仮説参照ピクチャリストの1つのためである、
項8に記載の方法。
【0127】
12.前記少なくともいくつかのアフィンパラメータは、4つのアフィンパラメータのうちの2つを有する、
項8乃至11のいずれかに記載の方法。
【0128】
13.前記現在のブロックの左上角の動きベクトル(v0x,v0y)は、前記現在のブロックの前記左上角に隣接するブロックから導出され、前記現在のブロックは、前記アフィンモードでコーディングされた隣接ブロックにマージされる、
項6に記載の方法。
【0129】
14.前記動きベクトル(v0x,v0y)を導出するために、対応する動きベクトルMV(R)、MV(S)及びMV(T)を夫々有している3つの隣接ブロックR、S及びTを使用することを更に含み、
Xがインターコーディングされる場合に、前記動きベクトル(v0x,v0y)はMV(X)に等しくセットされ、XはR、S又はTである、
項13に記載の方法。
【0130】
15.前記動きベクトル(v0x,v0y)を導出するために、対応する動きベクトルMV(R)、MV(S)及びMV(T)を夫々有している3つの隣接ブロックR、S及びTを使用することを更に含み、
R、S及びTがインターコーディングされる場合に、前記動きベクトル(v0x,v0y)はMV(R)、MV(S)及びMV(T)の平均に等しくセットされる、
項13に記載の方法。
【0131】
16.前記動きベクトル(v0x,v0y)を導出するために、対応する動きベクトルMV(R)、MV(S)及びMV(T)を夫々有している3つ隣接ブロックR、S及びTを使用することを更に含み、
X及びYがインターコーディングされる場合に、前記動きベクトル(v0x,v0y)は、MV(X)及びMV(Y)の平均に等しくセットされ、X及びYはR、S又はTである、
項13に記載の方法。
【0132】
17.前記動きベクトル(v0x,v0y)は、時間的隣接ブロックの動きベクトルから導出される、
項13に記載の方法。
【0133】
18.前記動きベクトル(v0x,v0y)は、前記隣接ブロックのリファレンスにスケーリングされる、
項13に記載の方法。
【0134】
19.前記動きベクトルは、前記アフィンモードでコーディングされた左隣のブロックから導出される、
項6に記載の方法。
【0135】
20.前記アフィンモードでコーディングされたブロックの動きベクトルは、前記アフィンモードでコーディングされたS個の上隣のブロックから導出され、Sは、4パラメータアフィンモードの場合に2に等しい、
項6に記載の方法。
【0136】
21.2個の上隣のブロックの間の距離は、2の形で固定値であり、Nは整数である、
項20に記載の方法。
【0137】
22.前記上隣のブロックの間の距離は、前記アフィンモードでコーディングされたブロックの高さに依存する、
項20に記載の方法。
【0138】
23.前記上隣のブロックの間の距離は、全ての上隣のブロックが前記アフィンモードでコーディングされ、同じ参照ピクチャを共有することを満足する最大長さとして導出される、
項20に記載の方法。
【0139】
24.前記現在のブロックの左上制御点での動きベクトル(mv ,mv )は、i)mv =mvT -aΦ及びmv =mvT -bΦ又はii)mv =mvT -aΦ及びmv =mvT -bΦとして導出され、Φは、前記左上制御点と前記アフィンモードでコーディングされた2つの上隣のブロックT0及びT1のうちの1つとの間の距離である、
項20に記載の方法。
【0140】
25.前記現在のブロックは、M×Nピクセルのサイズを有し、M及びNは整数であり、前記動きベクトルは、M<Nの場合に左側隣接ブロックから導出される、
項6に記載の方法。
【0141】
26.前記現在のブロックは、M×Nピクセルのサイズを有し、M及びNは整数であり、前記動きベクトルは、M>Nの場合に上側隣接ブロックから導出される、
項6に記載の方法。
【0142】
27.前記現在のブロックは、M×Nピクセルのサイズを有し、M及びNは整数であり、前記動きベクトルは、M=Nの場合に左上角に隣接するブロックから導出される、
項6に記載の方法。
【0143】
28.ビデオ処理の方法(例えば、図23に示される方法2300)であって、
現在のブロックと該現在のブロックのビットストリーム表現との間の変換のために、1つ以上の隣接ブロックの位置に基づいて妥当性基準を満足する前記1つ以上の隣接ブロックからのマージ候補を含めることによって前記変換のためのアフィンマージ候補のリストを決定することと、
動きベクトルを用いて前記現在のブロックと前記ビットストリーム表現との間の前記変換を実行することと
を有する方法。
【0144】
29.隣接ブロックは、現在のCTU(Coding Tree Unit)とは異なるCTUからであり、前記隣接ブロックからのアフィンマージモード候補は妥当でない、
項28に記載の方法。
【0145】
30.現在のCTUは現在のCTUラインに属し、前記隣接ブロックは、前記現在のCTUラインとは異なるCTUラインに属し、前記隣接ブロックからのアフィンマージモード候補は妥当でない、
項28に記載の方法。
【0146】
31.前記現在のブロックは現在のスライスに属し、前記隣接ブロックは、前記現在のスライスとは異なるスライスに属し、前記隣接ブロックからのアフィンマージモード候補は妥当でない、
項28に記載の方法。
【0147】
32.前記現在のブロックは現在のタイルに属し、前記隣接ブロックは、前記現在のタイルとは異なるタイルに属し、前記隣接ブロックからのアフィンマージモード候補は妥当でない、
項28に記載の方法。
【0148】
33.ビデオ処理の方法であって、
アフィンモードを使用する、現在のブロックと該現在のブロックのビットストリーム表現との間の変換のために、1つ以上の隣接する近傍ブロックに基づいて前記現在のブロックの制御点での動きベクトルを導出することと、
前記動きベクトルを用いて前記現在のブロックと前記ビットストリーム表現との間の前記変換を実行することと
を有する方法。
【0149】
34.アフィンモードを使用する前記現在のブロックの制御点での前記動きベクトルは、上にある前記1つ以上の隣接する近傍ブロックから引き継がれる、
項33に記載の方法。
【0150】
35.前記隣接する近傍ブロックはまた、アフィンモードによってコーディングされる、
項33に記載の方法。
【0151】
36.前記隣接する近傍ブロックは、4パラメータアフィンモードによってコーディングされる、
項35に記載の方法。
【0152】
37.アフィンモードを使用する前記現在のブロックの制御点での前記動きベクトルは、前記1つ以上の隣接する近傍ブロックの左下及び右下制御点動きベクトルから引き継がれる、
項36に記載の方法。
【0153】
38.前記変換は、前記現在のブロックから前記ビットストリーム表現を生成することを含む、
上記の項のいずれかに記載の方法。
【0154】
39.前記変換は、前記ビットストリーム表現から前記現在のブロックを生成することを含む、
上記の項のいずれかに記載の方法。
【0155】
40.項1乃至39の1つ以上に記載の方法を実装するよう構成されるプロセッサを有するビデオ復号化装置。
【0156】
41.項1乃至39の1つ以上に記載の方法を実装するよう構成されるプロセッサを有するビデオ符号化装置。
【0157】
42.プロセッサによって実行される場合に、該プロセッサに、項1乃至39の1つ以上に記載の方法を実施させる命令を有するコードが記憶されているコンピュータ可読プログラム媒体。
【0158】
以上から、目下開示されている技術の具体的な実施形態は、実例のために本明細書で記載されており、様々な変更は、発明の範囲から外れずに行われ得ることが理解されるだろう。従って、目下開示されている技術は、添付の特許請求の範囲による場合を除いて制限されない。
【0159】
本文書で記載される開示されている及び他の実施形態、モジュール及び機能動作は、デジタル電子回路で、又は本文書で開示される構造及びそれらの構造的な同等物を含むコンピュータソフトウェア、ファームウェア、若しくはハードウェアで、又はそれらの1つ以上の組み合わせで実装され得る。開示されている及び他の実施形態は、1つ以上のコンピュータプログラム製品、例えば、データ処理装置による実行のために又はその動作を制御するためにコンピュータ可読媒体で符号化されているコンピュータプログラム命令の1つ以上のモジュール、として実装され得る。コンピュータ可読媒体は、マシン読み出し可能な記憶デバイス、マシン読み出し可能な記憶担体、メモリデバイス、マシン読み出し可能な伝搬信号を実現する組成物、又はそれらの1つ以上の組み合わせであることができる。「データ処理装置」との語は、一例として、プログラム可能なプロセッサ、コンピュータ、又は複数のプロセッサ若しくはコンピュータを含む、データを処理するための全ての装置、デバイス、及びマシンを包含する。装置は、問題となっているコンピュータプログラムのための実行環境を作り出すコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、又はそれらの1つ以上の組み合わせを構成するコードを、ハードウェアに加えて含むことができる。伝搬信号は、人工的に生成された信号、例えば、マシンにより生成された電気的、光学的、又は電磁気的な信号であって、適切な受信装置への伝送のために情報を符号化するよう生成される信号である。
【0160】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、又はコードとしても知られる)は、コンパイル済み又は解釈済みの言語を含む如何なる形式のプログラミング言語でも記述可能であり、それは、スタンドアロンプログラムとして、又はモジュール、コンポーネント、サブルーチン、若しくはコンピューティング環境での使用に適した他のユニットとしてを含め、如何なる形式でも展開され得る。コンピュータプログラムは、必ずしもファイルシステム内のファイルに対応しない。プログラムは、他のプログラム若しくはデータを保持するファイルの部分(例えば、マークアップ言語文書で保持されている1つ以上のスクリプト)で、問題となっているプログラムに専用の単一ファイルで、又は複数の協調ファイル(例えば、1つ以上のモジュール、サブプログラム、若しくはコードの部分を保持するファイル)で記憶され得る。コンピュータプログラムは、1つのコンピュータで、又は1つの場所に位置するか若しくは複数の場所にわたって分布し、通信ネットワークによって相互接続されている複数のコンピュータで実行されるよう展開され得る。
【0161】
本文書で記載されるプロセス及びロジックフローは、入力データに作用して出力を生成することによって機能を実行するよう1つ以上のコンピュータプログラムを実行する1つ以上のプログラム可能なプロセッサによって実行可能である。プロセス及びロジックフローはまた、特別目的のロジック回路、例えば、FPGA(Field Programmable Gate Array)又はASIC(Application-Specific Integrated Circuit)としても実装され得る。
【0162】
コンピュータプログラムの実行に適したプロセッサは、一例として、汎用マイクロプロセッサ及び専用プロセッサの両方、並びにあらゆる種類のデジタルコンピュータのいずれか1つ以上のプロセッサを含む。一般に、プロセッサは、リード・オンリー・メモリ若しくはランダム・アクセス・メモリまたは両方から命令及びデータを受け取る。コンピュータの必須の要素は、命令を実行するプロセッサと、命令及びデータを記憶する1つ以上のメモリデバイスとである。一般に、コンピュータはまた、データを記憶する1つ以上の大容量記憶デバイス、例えば、磁気若しくは光学磁気ディスク又は光ディスクを含むか、あるいは、それとの間のデータの受信、転送、若しくはその両方のために動作上結合される。しかし、コンピュータは、そのようなデバイスを有する必要がない。コンピュータプログラム命令及びデータを記憶するのに適したコンピュータ可読媒体は、一例として、半導体メモリデバイス、例えば、EPROM、EEPROM、及びフラッシュメモリデバイス;磁気ディスク、例えば、内蔵ハードディスク及びリムーバブルディスク;光学磁気ディスク;並びにCD-ROM及びDVD-ROMディスクを含む、全ての形態の不揮発性メモリ、媒体、及びメモリデバイスを含む。プロセッサ及びメモリは、特別目的のロジック回路によって補完されるか、あるいは、それに組み込まれ得る。
【0163】
本文書は多くの詳細を含むが、それらは、あらゆる発明の又は請求され得るものの範囲に対する制限として解釈されるべきではなく、むしろ、特定の発明の特定の実施形態に固有であり得る特徴の記載として解釈されるべきである。別個の実施形態に関連して本特許文献中で記載される特定の特徴はまた、単一の実施形態では組み合わせて実装され得る。反対に、単一の実施形態に関連して記載される様々な特徴はまた、複数の実施形態で別々に、又は任意の適切な組み合わせで、実装され得る。更に、特徴は、特定の組み合わせで動作するものとして先に記載され、そのようなものとして最初に請求されることさえあるが、請求されている組み合わせからの1つ以上の特徴は、いくつかの場合に、その組み合わせから切り取ることが可能であり、請求されている組み合わせは、サブコンビネーション又はサブコンビネーションのバリエーションに向けられてもよい。
【0164】
同様に、動作は、図面において特定の順序で表されるが、これは、所望の結果を得るために、そのような動作が図示されている特定の順序で若しくは順番に実行されること、又は全ての表されている動作が実行されることを必要とするものとして理解されるべきではない。更に、本特許文献中で記載される実施形態における様々なシステムコンポーネントの分離は、全ての実施形態でそのような分離を必要とするものとして理解されるべきではない。
【0165】
ほんの2、3の実施及び例が記載され、他の実施、拡張及び変形は、本特許文献で記載及び例示されているものに基づいて行われ得る。
【0166】
[関連出願の相互参照]
本願は、2018年7月1日付けで出願された国際特許出願第PCT/CN2018/093943号、及び2018年7月13日付けで出願された国際特許出願第PCT/CN2018/095568号の優先権及び利益を主張する国際特許出願第PCT/IB2019/055592号に基づく特願2020-573104号の分割出願である。国際特許出願第PCT/IB2019/055592号、国際特許出願第PCT/CN2018/093943号及び国際特許出願第PCT/CN2018/095568号の全開示は、本願の開示の部分として参照により援用される。
図1
図2
図3
図4
図5A
図5B
図6
図7
図8
図9A
図9B
図10
図11
図12
図13
図14
図15
図16A
図16B
図17
図18
図19A
図19B
図19C
図19D
図19E
図19F
図19G
図20
図21
図22
図23
【外国語明細書】