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

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

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

特許7377894サブブロックマージモードでのシンタックスシグナリング
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-01
(45)【発行日】2023-11-10
(54)【発明の名称】サブブロックマージモードでのシンタックスシグナリング
(51)【国際特許分類】
   H04N 19/70 20140101AFI20231102BHJP
   H04N 19/52 20140101ALI20231102BHJP
【FI】
H04N19/70
H04N19/52
【請求項の数】 15
(21)【出願番号】P 2021568037
(86)(22)【出願日】2020-05-21
(65)【公表番号】
(43)【公表日】2022-07-15
(86)【国際出願番号】 CN2020091539
(87)【国際公開番号】W WO2020233661
(87)【国際公開日】2020-11-26
【審査請求日】2021-11-12
(31)【優先権主張番号】PCT/CN2019/087805
(32)【優先日】2019-05-21
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】520476341
【氏名又は名称】北京字節跳動網絡技術有限公司
【氏名又は名称原語表記】Beijing Bytedance Network Technology Co., Ltd.
【住所又は居所原語表記】Room B-0035, 2/F, No.3 Building, No.30, Shixing Road, Shijingshan District Beijing 100041 China
(73)【特許権者】
【識別番号】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)【発明者】
【氏名】ワン,ユエ
【審査官】岩井 健二
(56)【参考文献】
【文献】Hahyun Lee, et al.,CE2-related: Simplification of subblock-based temporal merging candidates,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-M0240,13th Meeting: Marrakech, MA,2019年01月,pp.1-6
【文献】Li Zhang, et al.,CE2-related: Early awareness of accessing temporal blocks in sub-block merge list construction,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-M0273,13th Meeting: Marrakech, MA,2019年01月,pp.1-4
【文献】Benjamin Bross, Jianle Chen, and Shan Liu,Versatile Video Coding (Draft 5),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-N1001 (version 5),14th Meeting: Geneva, CH,2019年05月14日,pp.32-34,40-43,70-78,86-93,152-154,180-184
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
ビデオデータを処理する方法であって、
ビデオの視覚メディアデータと前記ビデオのビットストリームとの間の変換のために、時間動きベクトル予測コーディングモードが前記視覚メディアデータに対して有効にされているかどうかを決定するステップと、
少なくとも前記決定に基づいて前記変換を実行するステップと
を有し、
前記視覚メディアデータに関連した同一位置参照ピクチャに関する情報を示す指示が前記ビットストリームに含まれるかどうかは、少なくとも、前記時間動きベクトル予測コーディングモードが前記視覚メディアデータに対して有効にされているかどうかに基づき、
前記指示は、前記同一位置参照ピクチャの参照インデックスを示し、
サブブロックマージ候補リスト内の候補の最大数は、前記時間動きベクトル予測コーディングモードが有効にされているかどうかと、サブブロックベースの時間動きベクトル予測コーディングモードが有効にされているかどうかとに依存する、
方法。
【請求項2】
前記指示は、どの参照ピクチャリストから前記同一位置参照ピクチャが導出されるかを示す、
請求項1に記載の方法。
【請求項3】
前記指示は、前記時間動きベクトル予測コーディングモードが有効にされていることに応答して、前記ビットストリームに含まれる、
請求項1又は2に記載の方法。
【請求項4】
前記指示は、前記時間動きベクトル予測コーディングモードが無効にされていることに応答して、前記ビットストリームに含まれない、
請求項1又は2に記載の方法。
【請求項5】
前記視覚メディアデータの現在のブロックは、少なくとも1つのサブブロックに分割され、前記変換を実行するステップは、
前記少なくとも1つのサブブロックのための前記サブブロックマージ候補リストを生成することと、
少なくとも前記サブブロックマージ候補リストに基づいて、前記少なくとも1つのサブブロックについて前記変換を実行することと
を有する、
請求項1乃至4のうちいずれか一項以上に記載の方法。
【請求項6】
前記サブブロックマージ候補リストは、前記時間動きベクトル予測コーディングモード及び前記サブブロックベースの時間動きベクトル予測コーディングモードが有効にされる場合に、1つ以上のサブブロックベースの時間マージ候補を有する、
請求項5に記載の方法。
【請求項7】
前記変換は、前記視覚メディアデータを前記ビットストリームにエンコードすることを含む、
請求項1乃至のうちいずれか一項以上に記載の方法。
【請求項8】
前記変換は、前記ビットストリームから前記視覚メディアデータをデコードすることを含む、
請求項1乃至のうちいずれか一項以上に記載の方法。
【請求項9】
ビデオデータを処理する装置であって、
プロセッサと、命令を含む非一時的なメモリとを有し、
前記命令は、前記プロセッサによる実行時に、前記プロセッサに、
ビデオの視覚メディアデータと前記ビデオのビットストリームとの間の変換のために、時間動きベクトル予測コーディングモードが前記視覚メディアデータに対して有効にされているかどうかを決定することと、
少なくとも前記決定に基づいて前記変換を実行することと
を実行させ、
前記視覚メディアデータに関連した同一位置参照ピクチャに関する情報を示す指示が前記ビットストリームに含まれるかどうかは、少なくとも、前記時間動きベクトル予測コーディングモードが前記視覚メディアデータに対して有効にされているかどうかに基づき、
前記指示は、前記同一位置参照ピクチャの参照インデックスを示し、
サブブロックマージ候補リスト内の候補の最大数は、前記時間動きベクトル予測コーディングモードが有効にされているかどうかと、サブブロックベースの時間動きベクトル予測コーディングモードが有効にされているかどうかとに依存する、
装置。
【請求項10】
前記指示は、どの参照ピクチャリストから前記同一位置参照ピクチャが導出されるかを示す、
請求項に記載の装置。
【請求項11】
前記指示は、前記時間動きベクトル予測コーディングモードが有効にされていることに応答して、前記ビットストリームに含まれる、
請求項又は10に記載の装置。
【請求項12】
前記指示は、前記時間動きベクトル予測コーディングモードが無効にされていることに応答して、前記ビットストリームに含まれない、
請求項又は10に記載の装置。
【請求項13】
前記視覚メディアデータの現在のブロックは、少なくとも1つのサブブロックに分割され、前記命令は、前記プロセッサによる実行時に、前記プロセッサに、
前記少なくとも1つのサブブロックのための前記サブブロックマージ候補リストを生成することと、
少なくとも前記サブブロックマージ候補リストに基づいて、前記少なくとも1つのサブブロックについて前記変換を実行することと
を実行させ、
前記サブブロックマージ候補リストは、前記時間動きベクトル予測コーディングモード及び前記サブブロックベースの時間動きベクトル予測コーディングモードが有効にされる場合に、1つ以上のサブブロックベースの時間マージ候補を有する、
請求項乃至12のうちいずれか一項に記載の装置。
【請求項14】
命令を記憶している非一時的なコンピュータ可読記憶媒体であって、
前記命令は、プロセッサに、
ビデオの視覚メディアデータと前記ビデオのビットストリームとの間の変換のために、時間動きベクトル予測コーディングモードが前記視覚メディアデータに対して有効にされているかどうかを決定することと、
少なくとも前記決定に基づいて前記変換を実行することと
を実行させ、
前記視覚メディアデータに関連した同一位置参照ピクチャに関する情報を示す指示が前記ビットストリームに含まれるかどうかは、少なくとも、前記時間動きベクトル予測コーディングモードが前記視覚メディアデータに対して有効にされているかどうかに基づき、
前記指示は、前記同一位置参照ピクチャの参照インデックスを示し、
サブブロックマージ候補リスト内の候補の最大数は、前記時間動きベクトル予測コーディングモードが有効にされているかどうかと、サブブロックベースの時間動きベクトル予測コーディングモードが有効にされているかどうかとに依存する、
非一時的なコンピュータ可読記憶媒体。
【請求項15】
ビデオのビットストリームを記憶する方法であって、
時間動きベクトル予測コーディングモードがビデオの視覚メディアデータに対して有効にされているかどうかを決定するステップと、
少なくとも前記決定に基づいて前記ビデオの前記ビットストリームを生成するステップと、
前記ビットストリームを非一時的なコンピュータ可読記録媒体に記憶するステップと
を有し、
前記視覚メディアデータに関連した同一位置参照ピクチャに関する情報を示す指示が前記ビットストリームに含まれるかどうかは、少なくとも、前記時間動きベクトル予測コーディングモードが前記視覚メディアデータに対して有効にされているかどうかに基づき、
前記指示は、前記同一位置参照ピクチャの参照インデックスを示し、
サブブロックマージ候補リスト内の候補の最大数は、前記時間動きベクトル予測コーディングモードが有効にされているかどうかと、サブブロックベースの時間動きベクトル予測コーディングモードが有効にされているかどうかとに依存する、
方法。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願への相互参照]
願は、2019年5月21日付けで出願された国際特許出願第PCT/CN2019/087805号に対する優先権及びその利益を請求して2020年5月21日付けで出願された国際特許出願第PCT/CN2020/091539号の国内移行である。上記の出願の開示全体は、本願の開示の部分として参照により援用される。
【0002】
本特許文献は、ビデオ符号化/復号化技術、デバイス、及びシステムに関する。
【背景技術】
【0003】
ビデオ圧縮の進歩にかかわらず、デジタルビデオは依然として、インターネット及び他のデジタル通信ネットワーク上で最大バンド幅使用を占める。ビデオを受信及び表示することが可能なユーザデバイスの接続数が増えるにつれて、デジタルビデオ利用のためのバンド幅需要は成長し続けることが予期される。
【発明の概要】
【0004】
本明細書は、サブブロックベースの動きベクトル精緻化を用いてビデオ符号化又は復号化が実行される様々な実施形態及び技術について記載する。一例となる態様では、視覚メディア処理の方法が開示される。方法は、視覚メディアデータのビットストリーム表現におけるアフィン適応動きベクトル分解(AMVR)技術に関する制御情報に応じて、前記視覚メディアデータに対して前記アフィンAMVR技術を使用すべきかどうかを決定するステップであり、前記制御情報は、規則に基づき前記ビットストリーム表現において包含又は削除される、前記決定するステップと、前記視覚メディアデータと該視覚メディアデータの前記ビットストリーム表現との間の変換を実行するステップとを含む。
【0005】
他の例となる態様では、視覚メディア処理の他の方法が開示される。方法は、サブブロックベースの時間的動きベクトル予測(subblock-based Temporal Motion Vector Prediction,sbTMVP)技術が視覚メディアデータに適用されるか否かの決定を行うステップと、該決定に応答して、前記視覚メディアデータに含まれる現在のビデオブロックについてサブブロックマージ候補リストを生成するステップと、該サブブロックマージ候補リストを用いて、前記現在のビデオブロックと該現在のビデオブロックのビットストリーム表現との間の変換を実行するステップとを含む。
【0006】
更なる他の例となる態様では、視覚メディア処理の他の方法が開示される。方法は、現在のビデオブロックとビットストリーム表現との間の変換中に、該変換のためのサブブロックマージ候補リストに1つ以上のデフォルトのマージ候補を付け足すステップと、付け足された前記1つ以上のデフォルトのマージ候補を含む前記サブブロックマージ候補リストを用いて、前記変換を実行するステップとを含む。
【0007】
更なる他の例となる態様では、視覚メディア処理の他の方法が開示される。方法は、ビデオの現在のビデオブロックとビットストリーム表現との間の変換中に、該変換へのサブブロックベースの時間的動きベクトル予測(sbTMVP)の適用可能性を決定するステップであり、前記ビットストリーム表現中の1つ以上のビットが前記決定に対応する、前記決定するステップと、前記決定に基づき前記変換を実行するステップとを含む。
【0008】
更なる他の例となる態様では、視覚メディア処理の他の方法が開示される。方法は、時間的動きベクトル予測(TMVP)ステップ又はサブブロックベースの時間的動きベクトル予測(sbTMVP)ステップに関連した条件に基づき選択的にサブブロックマージ候補リストを構成するステップと、該サブブロックマージ候補リストに基づき現在のビデオブロックと該現在のビデオブロックのビットストリーム表現との間の変換を実行するステップとを含む。
【0009】
更なる他の例となる態様では、視覚メディア処理の他の方法が開示される。方法は、視覚メディアデータと該視覚メディアデータのビットストリーム表現との間の変換中に、前記視覚メディアデータに関連した同一位置(collocated)参照ピクチャに関する情報を決定するステップであり、前記情報は、時間動き情報にアクセスするコーディングモードが有効にされるかどうかに基づき前記ビットストリーム表現において包含又は削除される、前記決定するステップと、前記情報に従って前記同一位置参照ピクチャを決定するステップと、該同一位置参照ピクチャに基づき、前記視覚メディアデータと該視覚メディアデータの前記ビットストリーム表現との間の前記変換を実行するステップとを含む。
【0010】
更なる他の例となる態様では、視覚メディア処理の他の方法が開示される。方法は、視覚メディアデータのビデオブロックと前記視覚メディアデータのビットストリーム表現との間の変換を実行するステップと、該変換中に、規則に基づき前記ビットストリーム表現において包含又は削除される制御情報に応じて、オプティカルフローを使用した予測精緻化(Predictive Refinement using Optical Flow,PROF)を適用すべきかどうか決定するステップとを含む。
【0011】
更なる他の例となる態様では、上記の方法を実装するよう構成されたプロセッサを有するビデオ符号化及び/又は復号化装置が開示される。
【0012】
更なる他の例となる態様では、コンピュータ可読媒体が開示される。コンピュータ可読媒体は、上記の方法の1つを具現するプロセッサ実行可能なコードを記憶している。
【0013】
これら及び他の態様は、本明細書で更に記載される。
【図面の簡単な説明】
【0014】
図1】マージ候補リスト構成のための導出プロセスの例を示す。
図2】空間的候補の位置の例を示す。
図3】空間マージ候補の冗長性検査のために考慮される候補対の例を示す。
図4A】N×2N及び2N×Nパーティションの第2PUの位置の例を示す。
図4B】N×2N及び2N×Nパーティションの第2PUの位置の例を示す。
図5】時間マージ候補に対する動きベクトルスケーリングの実例である。
図6】時間マージ候補の候補位置C0及びC1の例を示す。
図7】複合双予測マージ候補の例を示す。
図8】動きベクトル予測候補の導出プロセスを要約する。
図9】空間動きベクトル候補に対する動きベクトルスケーリングの実例を示す。
図10】CUに対する適応時間動きベクトル予測(ATMVP)の例を示す。
図11】4つのサブブロック(A~D)を含む1つのCU及びその隣接するブロック(a~d)の例を示す。
図12】異なるMV精度による符号化の例となるフローチャートである。
図13】(a)は、135°パーティションタイプ(左上隅から右下隅への分割)及び(b)45°分割パターンを示す。
図14】隣接ブロックの例となる位置を示す。
図15】TPMフラグコーディングでコンテキスト選択のために使用される隣接ブロック(A及びL)を示す。
図16】(a)4パラメータアフィンモデル及び(b)6パラメータアフィンモデルを示す。
図17】サブブロックごとのアフィンMVFの例を示す。
図18】(a)4パラメータアフィンモデル及び(b)6パラメータアフィンモデルを示す。
図19】遺伝的アフィン候補に対するAF_INTERのためのMVPを示す。
図20】構成されたアフィン候補に対するAF_INTERのためのMVPを示す。
図21】(a)5つの隣接ブロック及び(b)CPMV予測子導出の例を示す。
図22】アフィンマージモードのための例となる候補の位置を示す。
図23】ATMVPによって使用される空間隣接ブロックの例を示す。
図24】空間近傍からの動きシフトを適用し、対応する同一位置サブCUからの動き情報をスケーリングすることによってサブCU動き場を導出する例を示す。
図25】アフィンマージモードのための候補の位置を示す。
図26】変更されたマージリストの構成プロセスを示す。
図27】サブブロックMV VSB及びピクセルΔv(i,j)(赤色矢印)を示す。
図28】本明細書で記載される方法を実装するために使用されるハードウェアプラットフォームの例のブロック図である。
図29】ビデオ処理の方法の例のフローチャートである。
図30】開示されている技術が実装され得るビデオ処理システムの例のブロック図である。
図31】視覚メディア処理の方法の例のフローチャートである。
図32】視覚メディア処理の方法の例のフローチャートである。
図33】視覚メディア処理の方法の例のフローチャートである。
図34】視覚メディア処理の方法の例のフローチャートである。
図35】視覚メディア処理の方法の例のフローチャートである。
図36】視覚メディア処理の方法の例のフローチャートである。
図37】視覚メディア処理の方法の例のフローチャートである。
【発明を実施するための形態】
【0015】
セクション見出しは、理解を簡単にするために本明細書で使用されているのであって、セクションで開示されている実施形態をそのセクションにのみ制限するものではない。更に、特定の実施形態は、VVC(Versatile Video Coding)又は他の特定のビデオコーディングを参照して記載されているが、開示されている技術は、他のビデオコーディング技術にも適用可能である。更に、いくつかの実施形態は、ビデオコーディングステップについて詳述しているが、符号化を元に戻す対応する復号化ステップがデコーダによって実装されることが理解されるだろう。更に、ビデオ処理という用語は、ビデオ符号化又は圧縮、ビデオ復号化又は圧縮解除、及びビデオピクセルが1つの圧縮されたフォーマットから他の圧縮されたフォーマットに又は異なる圧縮ビットレートで表現されるビデオトランスコーディングを包含する。
【0016】
1.概要
本明細書は、ビデオコーディング技術に関係がある。具体的に、それは、ビデオコーディングにおける動きベクトルコーディングに関係がある。それは、HEVCのような既存のビデオコーディング標準規格、又はまとめられるべき標準規格(VVC)に適用されてもよい。それはまた、将来のビデオコーディング標準規格又はビデオコーデックにも適用可能であり得る。
【0017】
2.最初の議論
ビデオコーディング標準規格は、主として、よく知られているITU-T及びISO/IEC標準規格の開発を通じて、進化してきた。ITU-Tは、H.261及びH.263を作り出し、ISO/IECは、MPEG-1及びMPEG-4 Visualを作り出し、2つの組織は共同で、H.262/MPEG-2 Video及びH264/MPEG-4 AVC(Advanced Video Coding)並びにH.265/HEVC標準規格を作り出した。H.262以降、ビデオコーディング標準規格は、ハイブリッドビデオコーディング構造に基づいており、時間予測及び変換コーディングが利用される。HEVCを越える将来のビデオコーディング技術を探るために、JVET(Joint Video Exploration Team)が2015年にVCEG及びMPEGによって共同設立された。それ以来、多くの新しい方法がJVETによって導入され、JEM(Joint Exploration Model)と名付けられた参照ソフトウェアに置かれてきた[3,4]。2018年4月に、VCEG(Q6/16)とISO/IEC JTC1 SG29/WG11(MPEG)との間で、HEVCと比較してビットレート50%減を目指すVVC標準規格を研究するためのJVETJoint Video Experts Team)が作られた。
【0018】
VVC草案(Versatile Video Coding (Draft 5))の最新バージョンは、phenix.it-sudparis.eu/jvet/doc_end_user/documents/14_Geneva/wg11/JVET-N1001-v5.zipで入手可能である。
【0019】
VTMと名付けられたVVCの最新の参照ソフトウェアは、vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM/tags/VTM-5.0で入手可能である。
【0020】
2.1.HEVC/H.265でのインター予測
夫々のインター予測されたPU(prediction unit)は、1つ又は2つの参照ピクチャリストについての動きパラメータを有している。動きパラメータは、動きベクトル及び参照ピクチャインデックスを含む。2つの参照ピクチャリストの一方の利用は、inter_pred_idcを用いてシグナリングされてもよい。動きベクトルは、予測子に対する差分として明示的にコーディングされてもよい。
【0021】
CUがスキップモードでコーディングされる場合に、1つのPUがCUと関連付けられ、有意な残差係数、コーディングされた動きベクトル差分、又は参照ピクチャインデックスは、存在しない。マージモードが指定され、これによって、現在のPUの動きパラメータは、空間及び時間的候補を含む隣接PUから取得される。マージモードは、スキップモードのためだけでなく、如何なるインター予測されたPUにも適用可能である。マージモードに対する代替手段は、動きパラメータの明示的な伝送であり、動きベクトル(より厳密に言えば、動きベクトル予測子と比較した動きベクトル差分(motion vector differences,MVD))、各参照ピクチャリストの対応する参照ピクチャインデックス、及び参照ピクチャリスト利用が、各PUごとに明示的にシグナリングされる。このようなモードは、本開示ではアドバンスド動きベクトル予測(advanced motion vector prediction,AMVP)と呼ばれる。
【0022】
2つの参照ピクチャリストの一方が使用されるべきであることをシグナリングが示す場合に、PUは、サンプルの1つのブロックから生成される。これは「片予測」(uni-prediction)と呼ばれる。片予測は、Pスライス及びBスライスの両方について利用可能である。
【0023】
両方の参照ピクチャリストが使用されるべきであることをシグナリングが示す場合に、PUは、サンプルの2つのブロックから生成される。これは「双予測」(bi-prediction)と呼ばれる。双予測は、Bスライスについてのみ利用可能である。
【0024】
下記は、HEVCで規定されているインター予測モードに関する詳細を提供する。記載はマージモードから始まる。
【0025】
2.1.1.参照ピクチャリスト
HEVCでは、インター予測という用語が、現在のデコードされているピクチャ以外の参照ピクチャのデータ要素(例えば、サンプル値又は動きベクトル)から導出された予測を表すために使用される。同様に、H.264/AVCでは、ピクチャは、複数の参照ピクチャから予測され得る。インター予測のために使用される参照ピクチャは、1つ以上の参照ピクチャリストに編成される。参照インデックスは、リスト内のどの参照ピクチャが予測信号を生成するために使用されるべきであるかを識別する。
【0026】
単一の参照ピクチャリストList0は、Pスライスのために使用され、2つの参照リストList0及びList1は、Bスライスのために使用される。留意されるべきは、List0/1に含まれる参照ピクチャは、捕捉/表示順序に関して過去及び未来のピクチャからであってよい点である。
【0027】
2.1.2.マージモード
2.1.2.1.マージモードのための候補の導出
PUがマージモードを用いて予測される場合に、merge candidates list(マージ候補リスト)内のエントリを指し示すインデックスは、ビットストリームからパースされ、動き情報を読み出すために使用される。このリストの構成は、HEVC標準規格で規定されており、次のステップの連続に従って手短に述べられ得る:
ステップ1:初期候補の導出
ステップ1.1:空間的候補の導出
ステップ1.2:空間的候補に対する冗長性検査
ステップ1.3:時間的候補の導出
ステップ2:追加候補の挿入
ステップ2.1:双予測候補の生成
ステップ2.2:ゼロ動き候補の挿入
【0028】
これらのステップは、図1でも概略的に説明されている。初期マージ候補の導出のために、最大4つのマージ候補が、5つの異なった位置にある候補の中から選択される。時間マージ候補の導出のために、最大1つのマージ候補が、2つの候補の中から選択される。PUごとの一定数の候補がデコーダで考えられているので、ステップ1から取得された候補の数が、スライスヘッダでシグナリングされているマージ候補の最大数(MaxNumMergeCand)に達しない場合には、追加候補が生成される。候補の数は一定であるから、最良のマージ候補のインデックスは、トランケーテッドユーナリー二値化(truncated unary binarization,TU)を用いて符号化される。CUのサイズが8に等しい場合に、現在のCUの全てのPUは、2N×2N予測ユニットのマージ候補リストと同一である単一のマージ候補リストを共有する。
【0029】
以下では、上記のステップに関連した動作が詳述される。
【0030】
図1は、マージ候補リスト構成のための導出プロセスの例を示す。
【0031】
2.1.2.2.空間的候補の導出
空間マージ候補の導出において、最大4つのマージ候補が、図2に表されている位置にある候補の中から選択される。導出の順序は、A、B、B、A、及びBである。位置Bは、位置A、B、B、AのいずれかのPU(それが他のスライス又はタイルに属するために)利用可能でないか、あるいは、イントラコーディングされている場合にのみ検討される。位置Aでの候補が加えられた後、残りの候補の追加は冗長性検査を受ける。これは、同じ動き情報を有する候補が、コーディング効率が改善されるようにリストから外されることを確かにする。
【0032】
計算複雑性を低減するために、上記の冗長性検査において、可能性がある全ての候補対が検討されるわけではない。代わりに、図3において矢印で結ばれている対が検討され、候補は、冗長性検査のために使用された対応する候補が同じ動き情報を有していない場合にのみリストに加えられる。そっくり同じ動き情報の他のソースは、2N×2Nとは異なるパーティションに関連した「第2PU」である。例として、図4は、夫々、N×2N及び2N×Nの場合について、第2PUを表す。現在のPUがN×2Nとしてパーティション化される場合に、位置Aでの候補はリスト構成のために考慮に入れられない。実際に、この候補を加えることで、同じ動き情報を有する2つの予測ユニットが生じることになり、これは、コーディングユニット内でただ1つのPUを有するには冗長である。同様に、位置Bは、現在のPUが2N×Nとしてパーティション化される場合に考慮に入れられない。
【0033】
2.1.2.3.時間的候補の導出
このステップでは、ただ1つの候補がリストに加えられる。特に、この時間マージ候補の導出において、スケーリングされた動きベクトルは、所与の参照ピクチャリスト内で現在のピクチャとのPOC差が最小であるピクチャに属する同一位置(co-located)PUに基づいて導出される。同一位置PUの導出のために使用される参照ピクチャリストは、スライスヘッダで明示的にシグナリングされる。時間マージ候補のスケーリングされた動きベクトルは、図5で破線によって表されるように取得され、POC距離tb及びtdを用いて同一位置PUの動きベクトルからスケーリングされている。tbは、現在のピクチャの参照ピクチャと現在のピクチャとの間のPOC距離であるよう定義され、tdは、同一位置ピクチャの参照ピクチャと同一位置ピクチャとの間のPOC差であるよう定義される。時間マージ候補の参照ピクチャインデックスは、ゼロに等しくセットされる。スケーリングプロセスの実際の実現は、HEVC規格で記載されている。Bスライスについては、2つの動きベクトル(1つは参照ピクチャリスト0用であり、もう1つは参照ピクチャリスト1用である)が取得され、双予測マージ候補を生成するよう結合される。
【0034】
図5は、時間マージ候補の動きベクトルスケーリングの実例である。
【0035】
参照フレームに属する同一位置PU(Y)では、時間的候補の位置が、図6に表されているように、候補C及びCの間で選択される。位置CにあるPUが利用可能でないか、イントラコーディングされているか、あるいは、現在のコーディングツリーユニット(Coding Tree Unit,CTU、別名最大コーディングユニット(Largest Coding Unit,LCU)行の外にある場合に、位置Cが使用される。そうでない場合には、位置Cが時間マージ候補の導出において使用される。
【0036】
図6は、時間マージ候補の候補位置C0及びC1の例を示す。
【0037】
2.1.2.4.追加候補の挿入
空間及び時間マージ候補に加えて、2つの更なるタイプのマージ候補、すなわち、複合双予測マージ候補(combined bi-predictive merge candidate)及びゼロマージ候補(zero merge candidate)が存在する。複合双予測マージ候補は、空間及び時間マージ候補を利用することによって生成される。複合双予測マージ候補は、Bスライスにのみ使用される。複合双予測マージ候補は、最初の候補の第1参照ピクチャリスト動きパラメータを他の第2参照ピクチャリスト動きパラメータと組み合わせることによって生成される。これら2つのタプルが異なった動き仮説(hypotheses)をもたらす場合に、それらは新しい双予測候補を形成することになる。一例として、図7は、mvL0及びrefIdxL0又はmvL1及びrefIdx1を有する原リスト(左側にある)内の2つの候補が、最終的なリスト(右側にある)に加えられる複合双予測マージ候補を生成するために使用される場合を表す。これらの追加マージ候補を生成するために考えられる組み合わせに関して多数の規則がある。
【0038】
ゼロ動き候補は、マージ候補リスト内の残りのエントリを満たして、MaxNumMergeCand容量に達するよう挿入される。これらの候補は、ゼロ空間変位と、ゼロから始まって、新しいゼロ動き候補がリストに加えられるたびに増える参照ピクチャインデックスとを有している。
【0039】
より具体的には、次のステップが、マージリストが一杯になるまで順番に実行される:
1.Pスライスについては、リスト0に関連した参照ピクチャの数、又はBスライスについては、2つのリスト内の参照ピクチャの最小数、のどちらか一方に変数numRefをセットする;
2.非反復的なゼロ動き候補を加える;
0・・・numRef-1である変数iについては、(0,0)にセットされたMVと、リスト0(Pスライスの場合)について又は両方のリスト(Bスライスの場合)についてiにセットされた参照ピクチャインデックスとを有するデフォルトの動き候補を加える。
3.(0,0)にセットされたMVと、0にセットされたリスト0(Pスライスの場合)の参照ピクチャインデックスと、0にセットされた両方のリスト(Bスライスの場合)の参照ピクチャインデックスとを有する反復的なゼロ動き候補を加える。
【0040】
最後に、それらの候補に対して冗長性検査は実行されない。
【0041】
2.1.3.AMVP
AMVP(Advanced Motion Vector Prediction)は、動きパラメータの明示的な伝送のために使用される隣接PUとの動きベクトルの空間時間相関を利用する。参照ピクチャリストごとに、動きベクトル候補リストは、左及び上にある時間的に隣接したPU位置の利用可能性を最初に確認し、冗長な候補を除いて、候補リストを一定の長さにするようゼロベクトルを加えることによって、構成される。次いで、エンコーダは、候補リストから最良の予測子を選択し、選択された候補を示す対応するインデックスを送信することができる。同様に、マージインデックスシグナリングにより、最良の動きベクトル候補のインデックスは、トランケーテッドユーナリー(truncated unary)を用いて符号化される。この場合に符号化される最大値は2である(図8を参照)。以下のセクションでは、動きベクトル予測候補の導出プロセスに関する詳細が提供される。
【0042】
2.1.3.1.AMVP候補の導出
図8は、動きベクトル予測候補の導出プロセスを要約する。
【0043】
動きベクトル予測では、2つのタイプの動きベクトル候補、すなわち、空間動きベクトル候補及び時間動きベクトル候補、が考えられている。空間動きベクトル候補導出については、2つの動きベクトル候補が、図2に表されるように5つの異なった位置にある各PUの動きベクトルに基づいて最終的に導出される。
【0044】
時間動きベクトル候補導出については、2つの異なった同一位置の位置に基づいて導出される2つの候補から、1つの動きベクトル候補が選択される。空間時間的候補の第1リストが生成された後、リスト内の重複した動きベクトル候補が除かれる。潜在的な候補の数が2つよりも多い場合には、関連する参照ピクチャリスト内の参照ピクチャインデックスが1よりも大きい動きベクトル候補は、リストから除かれる。空間時間動きベクトル候補の数が2つよりも少ない場合には、追加のゼロ動きベクトル候補がリストに加えられる。
【0045】
2.1.3.2.空間動きベクトル候補
空間動きベクトル候補の導出において、図2に表されるような位置(これらの位置は、動きマージのそれらと同じである)にあるPUから導出される5つの潜在的な候補から、最大2つの候補が考えられる。現在のPUの左側の導出の順序は、A、A及びスケーリングされたA、スケーリングされたAとして定義される。現在のPUの上側の導出の順序は、B、B、B、スケーリングされたB、スケーリングされたB、スケーリングされたBとして定義される。夫々の側について、従って、動きベクトル候補として使用され得る4つの場合が存在し、2つの場合は、空間スケーリングを使用することが不要であり、他の2つの場合には、空間スケーリングが使用される。4つの異なる場合は、次のように簡単に述べられる。
・空間スケーリングなし
(1)同じ参照ピクチャリスト、かつ同じ参照ピクチャインデックス(同じPOC)
(2)異なる参照ピクチャリスト、しかし同じ参照ピクチャ(同じPOC)
・空間スケーリング
(3)同じ参照ピクチャリスト、しかし異なる参照ピクチャ(異なるPOC)
(4)異なる参照ピクチャリスト、かつ異なる参照ピクチャ(異なるPOC)
【0046】
空間スケーリングなしの場合が最初に確認され、その後に空間スケーリングが続く。空間スケーリングは、参照ピクチャリストにかかわらず隣接PUの参照ピクチャと現在のPUのそれとの間でPOCが異なる場合に考えられる。左の候補の全てのPUが利用不可能であるか、又はイントラコーディングされている場合に、上の動きベクトルのスケーリングが、左及び上のMV候補の並列導出を助けるよう可能にされる。そうでない場合には、空間スケーリングは、上の動きベクトルに対して認められないい。
【0047】
図9は、空間動きベクトル候補のための動きベクトルスケーリングの実例である。
【0048】
空間スケーリングプロセスでは、隣接PUの動きベクトルは、図9に表されるように、時間スケーリングの場合と同じようにしてスケーリングされる。主な違いは、現在のPUの参照ピクチャリスト及びインデックスが入力として与えられる点であり、実際のスケーリングプロセスは時間スケーリングのそれと同じである。
【0049】
2.1.3.3.時間動きベクトル候補
参照ピクチャインデックス導出は別として、時間マージ候補の導出のための全てのプロセスは、空間動きベクトル候補の導出(図6を参照)の場合と同じである。参照ピクチャインデックスはデコーダへシグナリングされる。
【0050】
2.2.JEMにおけるサブCUに基づいた動きベクトル予測方法
四分木プラス二分木(quadtrees plus binary trees,QTBT)によるJEMでは、各CUは、予測方向ごとに多くてもひと組の動きパラメータを有することができる。2つのサブCUレベル動きベクトル予測方法が、大きいCUをサブCUに分割し、大きいCUの全てのサブCUについて動き情報を導出することによって、エンコーダにおいて考えられている。代替時間動きベクトル予測(ATMVP)方法は、各CUが、同一位置の参照ピクチャにある現在のCUよりも小さい複数のブロックから複数の組の動き情報をフェッチすることを可能にする。空間時間動きベクトル予測(STMVP)方法では、サブCUの動きベクトルは、時間動きベクトル予測子及び空間隣接動きベクトルを使用することによって再帰的に導出される。
【0051】
サブCU動き予測のためのより正確な運動場を保つために、参照フレームのための動き圧縮は目下無効にされている。
【0052】
図10は、CUに対するATMVP動き予測の例を示す。
【0053】
2.2.1.代替時間動きベクトル予測
代替時間動きベクトル予測(Alternative Temporal Motion Vector Prediction,ATMVP)法では、動きベクトルの時間動きベクトル予測(Temporal Motion Vector Prediction,TMVP)が、現在のCUよりも小さいブロックから複数の組の動き情報(動きベクトル及び参照インデックスを含む)をフェッチすることによって改良されている。CUは、正方N×Nブロックである(Nはデフォルトで4にセットされる)。
【0054】
ATMVPは、2つのステップでCU内のサブCUの動きベクトルを予測する。最初のステップは、いわゆる時間ベクトルにより参照ピクチャ内の対応するブロックを識別することである。参照ピクチャは、モーションソースピクチャ(motion source picture)と呼ばれる。第2のステップは、現在のCUをサブCUに分け、各サブCUに対応するブロックから各サブCUの動きベクトル及び参照インデックスを取得することである。
【0055】
最初のステップで、参照ピクチャ及び対応するブロックは、現在のCUの空間隣接ブロックの動き情報によって決定される。隣接ブロックの反復的な走査プロセスを回避するために、現在のCUのマージ候補リスト内の最初のマージ候補が使用される。最初の利用可能な動きベクトル及びその関連する参照インデックスが、時間ベクトルと、モーションソースピクチャへのインデックスとであるようセットされる。このようにして、ATMVPでは、対応するブロックは、TMVPと比較して、より正確に識別され得る。ここで、対応するブロック(時々、同一位置ブロックと呼ばれる)は、現在のCUに対して右下又は中心位置に常にある。
【0056】
第2のステップで、サブCUの対応するブロックは、モーションソースピクチャの時間ベクトルによって、現在のCUの座標にその時間ベクトルを加えることによって識別される。各サブCUについて、その対応するブロック(中心サンプルをカバーする最小モーショングリッド)の動き情報が、当該サブCUの動き情報を導出するために使用される。対応するN×Nブロックの動き情報が識別された後、それは、HEVCのTMVPと同じように、現在のサブCUの動きベクトル及び参照インデックスに変換される。このとき、動きスケーリング及び他のプロシージャが適用される。例えば、デコーダは、低遅延条件(すなわち、現在のピクチャの全ての参照ピクチャのPOCが現在のピクチャのPOCよりも小さい)が満足されるかどうかを確認し、場合により、各サブCUについて動きベクトルMVy(Xは0又は1に等しく、Yは1-Xに等しい)を予測するために動きベクトルMVx(参照ピクチャリストXに対応する動きベクトル)を使用する。
【0057】
2.2.2.空間時間動きベクトル予測(STMVP)
空間時間動きベクトル予測(spatial-temporal motion vector prediction,STMVP)法では、サブCUの動きベクトルは、ラスタ走査順序に従って、再帰的に導出される。図11は、この概念を表す。4つのサブブロックA、B、C及びDを含む8×8CUを考えるとする。現在のフレームの隣接する4×4ブロックは、a、b、c及びdと表記される。
【0058】
サブCU Aの動き導出は、その2つの空間近傍を識別することによって開始する。第1近傍は、サブCU Aの上にあるN×Nブロック(ブロックc)である。このブロックcが利用不可能であるか、又はイントラコーディングされている場合に、サブCU Aの上にある他のN×Nブロックが確認される(ブロックcから始まって、左から右へ)。第2近傍は、サブCU Aの左にあるブロック(ブロックb)である。ブロックbが利用不可能であるか、又はイントラコーディングされている場合に、サブCU Aの左にある他のブロックが確認される(ブロックbから始まって、上から下へ)。各リストについて隣接ブロックから取得された動き情報は、所与のリストについての第1参照フレームにスケーリングされる。次に、サブブロックAの時間動きベクトル予測子(TMVP)が、HEVCで定められているTMVP導出の同じプロシージャに従うことによって、導出される。位置Dでの同一位置ブロックの動き情報は、それに応じてフェッチされスケーリングされる。最後に、動き情報を取り出しスケーリングした後、全ての利用可能な動きベクトル(最大3つ)は、参照リストごとに別々に平均化される。平均化された動きベクトルは、現在のサブCUの動きベクトルとして割り当てられる。
【0059】
2.2.3.サブCU動き予測モードシグナリング
サブCUモードは、追加のマージ候補として使用可能であり、モードをシグナリングするために追加のシンタックス要素は必要とされない。2つの追加マージ候補が、ATMVPモード及びSTMVPモードを表すために各CUのマージ候補に加えられる。ATMVP及びSTMVPが使用可能であることをシーケンスパラメータセットが示す場合には、最大7つのマージ候補が使用される。追加マージ候補の符号化ロジックは、HMにおけるマージ候補の場合と同じである。これは、P又はBスライス内の各CUについて、2つ以上のRDチェックが2つの追加マージ候補のために必要とされる可能性があることを意味する。
【0060】
JEMでは、マージインデックスの全ビンが、CABAC(Context-based Adaptive Binary Arithmetic Coding))によってコンテキストコーディングされる。一方、HEVCでは、最初のビンのみがコンテキストコーディングされ、残りのビンは、コンテキストバイパスコーディングされる。
【0061】
2.3.VVCにおけるインター予測方法
MVDをシグナリングするための適応動きベクトル差分分解(Adaptive Motion Vector Difference Resolution,AMVR)、アフィン予測モード、三角予測モード(Triangular Prediction Mode,TPM)、ATMVP、一般化された双予測(Generalized Bi-Prediction,GBI)、双予測オプティカルフロー(Bi-directional Optical Flow,BIO)などの、インター予測の改善のためのいくつかの新しいコーディングツールが存在する。
【0062】
2.3.1.適応動きベクトル差分分解
HEVCでは、(PUの動きベクトルと予測された動きベクトルとの間の)動きベクトル差分(MVD)は、スライスヘッダにおいてuse_integer_my_flagが0に等しいときに4分の1ルーマサンプルの単位でシグナリングされる。VVCでは、局所適応動きベクトル分解(LAMVR)が紹介されている。VVCでは、MVDは、4分の1ルーマサンプル、整数ルーマサンプル、又は4ルーマサンプルの単位(すなわち、1/4ペル、1ペル、4ペル)でコーディングされ得る。MVD分解は、コーディングユニット(CU)レベルで制御され、MVD分解フラグは、少なくとも1つの非ゼロMVD成分を有している各CUについて条件付きでシグナリングされる。
【0063】
少なくとも1つの非ゼロMVD成分を有するCUについては、4分の1ルーマサンプルMV精度がCUで使用されるかどうかを示すために、第1フラグがシグナリングされる。第1グラフ(1に等しい)が、4分の1ルーマサンプルMV精度が使用されないことを示す場合に、整数ルーマサンプルMV精度又は4ルーマサンプルMV精度が使用されるかどうかを示すために、他のフラグがシグナリングされる。
【0064】
CUの第1MVD分解フラグがゼロであるか、あるいは、CUに対してコーディングされない(つまり、CU内の全てのMVDがゼロである)場合に、そのCUに対しては、4分の1ルーマサンプルMV分解が使用される。CUが整数ルーマサンプルMV精度又は4ルーマサンプルMVDがゼロ精度を使用する場合に、そのCUのAMVP候補リスト内のMVPは、対応する精度に丸められる。
【0065】
エンコーダでは、そのMVD分解能がCUに対して使用されるべきであるかを決定するために、CUレベルのRDチェックが使用される。すなわち、CUレベルのRDチェックは、MVD分解能ごとに3回実行される。エンコーダ速度を加速させるために、次の符号化スキームがJEMでは適用される。
・通常の4分の1ルーマサンプルMVD分解能によるCUのRDチェックの間、現在のCUの動き情報(整数ルーマサンプル精度)が保存される。保存された動き情報(丸め後)は、整数ルーマサンプル及び4ルーマサンプルMVD分解能による同じCUに対するRDチェックの間に更なる小範囲動きベクトル精緻化のために開始点として使用される。それにより、時間のかかる動き推定プロセスは3回繰り返されない。
・4ルーマサンプルMVD分解能によるCUのRDチェックは、条件付きで呼び出される。あるCUについて、RDコスト整数ルーマサンプルMVD分解能が4分の1ルーマサンプルMVD分解能のそれよりもずっと大きい場合に、そのCUに対する4ルーマサンプルMVD分解能のRDチェックはスキップされる。
【0066】
符号化プロセスは図12に示される。最初に、1/4ペルMVがテストされ、RDコストが計算されてRDCost0と表され、次いで、整数MVがテストされ、RDコストはRDCost1と表される。RDCost1<th×RDCost0である場合に(thは正の値である)、4ペルMVはテストされ、そうでない場合には、4ペルMVはスキップされる。基本的に、動き情報及びRDコストなどは、整数又は4ペルMVをチェックするときに4/1ペルMVについて既に知られており、これらは、整数又は4ペルMVの符号化プロセスを加速させるために再利用され得る。
【0067】
VVCで、AMVRはアフィン予測モードにも適用可能であり、分解能は1/16ペル、1/4ペル及び1ペルから選択され得る。
【0068】
図12は、異なるMV精度による符号化のフローチャートである。
【0069】
2.3.2.三角予測モード
三角予測モード(TPM)の概念は、動き補償された予測のための新しい三角パーティションを導入することである。図13に示されるように、それはCUを対角又は逆対角方向のどちらか一方で2つの三角予測ユニットに分割する。CU内の各三角予測ユニットは、単一の片予測候補リストから導出されるそれ自体の片予測動きベクトル及び参照フレームインデックスを用いてインター予測される。適応重み付けプロセスは、三角予測ユニットを予測した後に、対角辺に対して実行される。次いで、変換及び量子化プロセスがCU全体に適用される。このモードは、マージモードにのみ適用されることが知られる(注記:スキップモードは特別なマージモードとして扱われる。)。
【0070】
2.3.2.1.TPMのための片予測候補リスト
TPM動き候補リストと名付けられている片予測候補リストは、5つの片予測動きベクトル候補から成る。それは、図14に示されるように、5つの空間隣接ブロック(1から5)及び2つの時間同一位置ブロック(6から7)を含む7つの隣接ブロックから導出される。7つの隣接ブロックの動きベクトルは集められ、片予測動きベクトルの順序、双予測動きベクトルのL0動きベクトル、双予測動きベクトルのL1動きベクトル、並びに双予測動きベクトルのL0及びL1動きベクトルの平均化された動きベクトルに従って片予測候補リストに置かれる。候補の数が5に満たない場合には、ゼロ動きベクトルがリストに加えられる。このリストに加えられた動き候補は、TPM動き候補と呼ばれ、空間/時間ブロックから導出された動き情報は、正則動き候補(regular motion candidates)と呼ばれる。
【0071】
より具体的には、次のステップが含まれる。
1)空間隣接ブロックの例から正則動き候補を加える場合に完全プルーニング動作を用いて、B、B、A、B、Col及びCol2(図14のブロック1~7に対応)から動き候補を取得する。
2)変数numCurrMergeCand=0をセットする。
3)A、B、B、A、B、Col及びCol2から導出された正則動き候補ごとに、プルーニングされず、かつ、numCurrMergeCandが5よりも小さい場合に、正則動き候補が片予測(リスト0又はリスト1のどちらか一方から)であるならば、それは、numCurrMergeCandを1増やしてTPM候補としてマージリストに直接に追加される。そのようなTPM候補は、「元々片予測された候補」(originally uni-predicted candidate)と呼ばれる。
完全プルーニング(full pruning)が適用される。
4)A、B、B、A、B、Col及びCol2から導出された動き候補ごとに、プルーニングされず、かつ、numCurrMergeCandが5よりも小さい場合に、正則動き候補が双予測であるならば、リスト0からの動き情報が新しいTPM候補としてTPMマージリストに追加され(すなわち、リスト0からの片予測であるよう変更され)、numCurrMergeCandは1だけ増やされる。そのようなTMP候補は、「切り捨てられたリスト0予測候補」(Truncated List0-predicted candidate)と呼ばれる。
完全プルーニングが適用される。
5)A、B、B、A、B、Col及びCol2から導出された動き候補ごとに、プルーニングされず、かつ、numCurrMergeCandが5よりも小さい場合に、正則動き候補が双予測であるならば、リスト1からの動き情報がTPMマージリストに追加され(すなわち、リスト1からの片予測であるよう変更され)、numCurrMergeCandは1だけ増やされる。そのようなTPM候補は、「切り捨てられたリスト1予測候補」(Truncated List1-predicted candidate)と呼ばれる。
完全プルーニングが適用される。
6)A、B、B、A、B、Col及びCol2から導出された動き候補ごとに、プルーニングされず、かつ、numCurrMergeCandが5よりも小さい場合に、正則動き候補が双予測であるならば、
- リスト0参照ピクチャのスライス量子化パラメータ(QP)がリスト1参照ピクチャのスライスQPよりも小さい場合には、リスト1の動き情報が最初にリスト0参照ピクチャにスケーリングされ、2つのMV(一方は元のリスト0からであり、他方はリスト1からのスケーリングされたMVである。)の平均がTPMマージリストに追加される。このような候補は、リスト0動き候補からの平均された片予測と呼ばれ、numCurrMergeCandは1だけ増やされる。
- そうでない場合には、リスト0の動き情報が最初にリスト1参照ピクチャにスケーリングされ、2つのMV(一方は元のリスト1からであり、他方はリスト0からのスケーリングされたMVである。)の平均がTPMマージリストに加えられる。このようなTPM候補は、リスト1動き候補からの平均された片予測と呼ばれ、numCurrMergeCandは1だけ増やされる。
完全プルーニングが適用される。
7)numCurrMergeCandが5よりも小さい場合に、ゼロ動きベクトル候補が加えられる。
【0072】
図14は、隣接ブロックの位置の例を示す。
【0073】
候補をリストに挿入するときに、以前に加えられた候補のうちの1つとそれが同じであるかどうかを確かめるために、挿入される候補が、以前に加えられた候補の全てと比較される必要がある場合に、そのようなプロセスは完全プルーニングと呼ばれる。
【0074】
2.3.2.2.適応重み付けプロセス
各三角予測ユニットを予測した後、CU全体の最終的な予測を導出するために、2つの三角予測ユニットの間の対角辺に適応重み付けプロセスが適用される。2つの重み付け係数グループが次のように定義される:
・第1重み付け係数グループ:{7/8,6/8,4/8,2/8,1/8}及び{7/8,4/8,1/8}は、夫々、ルミナンスサンプル及びクロミナンスサンプルのために使用される。
・第2重み付け係数グループ:{7/8,6/8,5/8,4/8,3/8,2/8,1/8}及び{6/8,4/8,2/8}は、夫々、ルミナンスサンプル及びクロミナンスサンプルのために使用される。
【0075】
重み係数グループは、2つの三角予測ユニットの動きベクトルの比較に基づき選択される。第2重み係数グループは、2つの三角予測ユニットの参照ピクチャが互いに異なるか、あるいは、それらの動きベクトル差分が16ピクセルよりも大きい場合に、使用される。そうではない場合に、第1重み付け係数グループは使用される。例は図15に示される。
【0076】
2.3.2.3.三角予測モード(TPM)のシグナリング
TPMが使用されるかどうかを示す1ビットフラグが、最初にシグナリングされてよい。その後に、2つの分割パターン(図13に図示)の指示と、2つのパーティションの夫々についての選択されたマージインデックスとが、更にシグナリングされる。
【0077】
2.3.2.3.1.TPMフラグのシグナリング
1つのルーマブロックの幅及び高さを夫々、W及びHによって表すとする。W×H<64である場合に、三角予測モードは無効にされる。
【0078】
1つのブロックがアフィンモードでコーディングされる場合に、三角予測モードはやはり無効にされる。
【0079】
1つのブロックがマージモードでコーディングされる場合に、三角予測モードがそのブロックについて有効又は無効にされるかどうかを示すために、1ビットフラグがシグナリングされ得る。
【0080】
フラグは、次の式に基づき、3つのコンテキストでコーディングされる:
【数1】
【0081】
図15は、TPMフラグコーディングでコンテキスト選択のために使用される隣接ブロック(A及びL)を示す。
【0082】
2.3.2.3.2.2つの分割パターン(図13に図示)の指示及び2つのパーティションの夫々についての選択されたマージインデックスのシグナリング
分割パターン及び2つのパーティションのマージインデックスは一緒にコーディングされることが知られている。いくつかの実施で、2つのパーティションは同じ参照インデックスを使用することができない、と制限される。そのため、2(分割パターン)×N(マージ候補の最大数)×(N-1)通りの可能性がある。ここで、Nは5にセットされる。1つの指示がコーディングされ、分割パターン間のマッピング、2つのマージインデックス、及びコーディングされた指示は、以下で定義されているアレイから導出される:
【数2】
【0083】
2つの動き候補A及びBが導出されると、2つのパーティション(PU1及びPU2)の動き情報はA又はBのどちらか一方からセットされ得る。PU1がマージ候補A又はBのどちらの動き情報を使用するかは、2つの動き候補の予測方向に依存する。表1は、2つのパーティションについて、2つの導出された動き候補A及びBの間の関係を示す。
【表1】
【0084】
2.3.2.3.3.指示(merge_triangle_idxと表される)のエントロピコーディング
merge_triangle_idxは、0以上39以下の範囲([0,39])内にある。K次の指数ゴロム(Exponential Golomb,EG)コードは、merge_triangle_idxの二値化のために使用される。ここで、Kは1にセットされる。
【0085】
K次のEG
(より小さい数をエンコードするためにより多くの数を使用することを犠牲にして)より少ないビットでより大きい数をエンコードするために、これは、非負整数パラメータkを用いて一般化され得る。非負整数xを次数kの指数ゴロムコードでエンコードするために:
1.上記の次数0の指数ゴロムコードを用いて
【数3】
をエンコードし、次いで、
2.二進法でxmod2をエンコードする。
【表2】
【0086】
2.3.3.アフィン動き補償予測
HEVCでは、並進運動モデル(translation motion model)しか動き補償予測(Motion Compensation Prediction,MCP)のために適用されない。現実世界では、多くの種類の動き、例えば、ズームイン/アウト、回転、射影運動、及び他の不規則な動きを有する可能性がある。VVCでは、簡単化されたアフィン変換動き補償予測が4パラメータアフィンモデル及び6パラメータアフィンモデルにより適用される。図16に示されるように、ブロックのアフィン運動場は、4パラメータアフィンモデルについては2つの制御点動きベクトル(Control Point Motion Vectors,CPMV)、及び6パラメータアフィンモデルについては3つのCPMVによって記述される。
【0087】
図16は、簡単化されたアフィン運動モデルの例を示す。
【0088】
ブロックの動きベクトル場(Motion Vector Field,MVF)は、式(1)の4パラメータアフィンモデル(ここで、4パラメータは、変数a、b、e及びfとして定義されている。)及び式(2)の6パラメータアフィンモデル(ここで、6パラメータは、a、b、c、d、e及びfとして定義されている。)により夫々、次の式によって記述される:
【数4】
【0089】
ここで、(mv ,mv )は、左上隅の制御点の動きベクトルであり、(mv ,mv )は、右上隅の制御点の動きベクトルであり、(mv ,mv )は、左下隅の制御点の動きベクトルであり、これら3つの動きベクトルは全て、制御点動きベクトル(CPMV)と呼ばれ、(x,y)は、現在のブロック内の左上サンプルに対する代表点の座標を表し、(mv(x,y),mv(x,y))は、(x,y)に位置しているサンプルについて導出された動きベクトルである。CP動きベクトルは、シグナリング(アフィンAMVPモードと同様)されるか、あるいは、オン・ザ・フライで導出(アフィンモードと同様)されてよい。w及びhは、現在のブロックの幅及び高さである。実際に、分割は、丸め演算付き右シフトによって実施される。VTMでは、代表点は、サブブロックの中心位置であるよう定義され、例えば、現在のブロック内の左上サンプルに対するサブブロックの左上隅の座標が(xs,ys)である場合に、代表点の座標は、(xs+2,ys+2)であるよう定義される。各サブブロック(すなわち、VTMでは4×4)について、代表点は、そのサブブロック全体の動きベクトルを導出するために利用される。
【0090】
動き補償予測を更に簡単にするために、サブブロックベースのアフィン変換予測が適用される。各M×Nサブブロック(M及びNは両方とも、現在のVVCでは、4にセットされる。)の動きベクトルを導出するために、図17に示される各サブブロックの中心サンプルの動きベクトルは、式(1)及び(2)に従って計算され、1/16分数精度に丸められ得る。次いで、1/16ペルのための動き補償補間フィルタが、導出された動きベクトルにより各サブブロックの予測を生成するために適用される。1/16ペルのための補間フィルタがアフィンモードによって導入される。
【0091】
MCPの後、各サブブロックの高精度動きベクトルは丸められ、通常の動きベクトルと同じ精度としてセーブされる。
【0092】
2.3.3.1.アフィン予測のシグナリング
並進運動モデルと同様に、アフィンモデルによるサイド情報をシグナリングするための2つのモードもある。それらは、AFFINE_INTERモード及びAFFINE_MERGEモードである。
【0093】
2.3.3.2.AF_INTERモード
幅及び高さの両方が8よりも大きいCUについては、AF_INTERモードが適用され得る。CUレベルでのアフィンフラグは、AF_INTERモードが使用されるかどうかを示すためにビットストリームでシグナリングされる。
【0094】
このモードで、各参照ピクチャリスト(List0又はList1)について、アフィンAMVP候補リストは、次の順序で3つのタイプのアフィン動き予測子により構成され、各候補は、現在のブロックの推定されたCPMVを含む。エンコーダ側で見つけられた最良のCPMV(例えば、図20のmv、mv、mv)と推定されたCPMVとの差がシグナリングされる。更には、推定されたCPMVが導出されるアフィンAMVP候補のインデックスが更にシグナリングされる。
【0095】
1)遺伝的(つまり、引き継がれた(inherited))アフィン動き予測子
検査順序は、HEVC AMVPリスト構成における空間MVPのそれと同様である。最初に、現在のブロックと同じ参照ピクチャを有し、アフィンコーディングされている{A1,A0}内の最初のブロックから、左側の遺伝的アフィン動き予測子が導出される。第2に、現在のブロックと同じ参照ピクチャを有し、アフィンコーディングされている{B1,B0,B2}内の最初のブロックから、上側の遺伝的アフィン動き予測子が導出される。5つのブロックA1、A0、B1、B0、B2は、図19に表されている。
【0096】
隣接するブロックがアフィンモードでコーディングされていると分かると、隣接するブロックをカバーするコーディングユニットのCPMVは、現在のブロックのCPMVの予測子を導出するために使用される。例えば、A1が非アフィンモードでコーディングされ、A0が4パラメータアフィンモードでコーディングされる場合に、左側の遺伝的アフィンMV予測子はA0から導出されることになる。この場合に、図21Bで左上CPMVについてはMV 及び右上CPMVについてはMV によって表されている、A0をカバーするCUのCPMVは、現在のブロックの左上位置(座標(x0,y0)を有する)、右上位置(座標(x1,y1)を有する)及び右下位置(座標(x2,y2)を有する)についてMV 、MV 、MV によって表される現在のブロックの推定されたCPMVを導出するために利用される。
【0097】
2)構成されたアフィン動き予測子
構成されたアフィン動き予測子は、同じ参照ピクチャを有している、図20に示されるような隣接するインターコーディングされたブロックから導出される制御点動きベクトル(CPMV)から成る。現在のアフィン運動モデルが4パラメータアフィンである場合に、CPMVの数は2であり、そうではなく、現在のアフィン運動モデルが6パラメータアフィンである場合に、CPMVの数は3である。左上CPMV
(外1)
(以降、バーmv)は、現在のブロックと同じ参照ピクチャを有している、インターコーディングされているグループ{A,B,C}内の最初のブロックでのMVによって、導出される。右上CPMV
(外2)
(以降、バーmv)は、現在のブロックと同じ参照ピクチャを有している、インターコーディングされているグループ{D,E}内の最初のブロックでのMVによって、導出される。左下CPMV
(外3)
(以降、バーmv)は、現在のブロックと同じ参照ピクチャを有している、インターコーディングされているグループ{F,G}内の最初のブロックでのMVによって、導出される。
- 現在のアフィン運動モデルが4パラメータアフィンである場合に、構成されたアフィン動き予測子は、バーmv及びバーmvの両方が求められる、つまり、バーmv及びバーmvが現在のブロックの左上位置(座標(x0,y0)を有する)及び右上位置(座標(x1,y1)を有する)についての推定されたCPMVとして使用される場合にのみ、候補リストに挿入される。
- 現在のアフィン運動モデルが6パラメータアフィンである場合に、構成されたアフィン動き予測子は、バーmv、バーmv、及びバーmvが全て求められる、つまり、バーmv、バーmv、及びバーmvが現在のブロックの左上位置(座標(x0,y0)を有する)、右上位置(座標(x1,y1)を有する)及び右下位置(座標(x2,y2)を有する)についての推定されたCPMVとして使用される場合にのみ、候補リストに挿入される。
【0098】
構成されたアフィン動き予測子を候補リストに挿入する場合に、プルーニングプロセスは適用されない。
【0099】
3)通常のAMVP動き予測子
以下は、アフィン動き予測の数が最大値に達するまで適用される。
1)利用可能である場合に全てのCPMVをバーmvに等しくセットすることによってアフィン動き予測子を導出する。
2)利用可能である場合に全てのCPMVをバーmvに等しくセットすることによってアフィン動き予測子を導出する。
3)利用可能である場合に全てのCPMVをバーmvに等しくセットすることによってアフィン動き予測子を導出する。
4)利用可能である場合に全てのCPMVをHEVC TMVPに等しくセットすることによってアフィン動き予測子を導出する。
5)全てのCPMVをゼロMVにセットすることによってアフィン動き予測子を導出する。
【0100】
留意されるべきは、
(外4)
(以降、バーmv)は、構成されたアフィン運動では既に導出されている点である。
【0101】
AF_INTERモードでは、4又は6パラメータアフィンモードが使用される場合に、2又は3つの制御点が必要とされるので、2つ又は3つのMVDが、図18に示されるように、それらの制御点に対してコーディングされる必要がある。JVET-K0337では、MVを次のように導出することが提案されており、すなわち、mvdからmvd及びmvdが予測される。
【数5】
【0102】
ここで、バーmv、mvd及びmvは、図18(b)に示されるように、夫々、左上ピクセル(i=0)、右上ピクセル(i=1)、又は左下ピクセル(i=2)の予測された動きベクトル、動きベクトル差分及び動きベクトルである。2つの動きベクトル(例えば、mvA(xA,yA)及びmvB(xB,yB))の追加は、別々に2つの成分の和に等しいことに留意されたい。すなわち、newMV=mvA+mvBであり、newMVの2つの成分は夫々、(xA+xB)及び(yA+yB)にセットされる。
【0103】
2.3.3.3.AF_MERGEモード
CUがAF_MERGEモードで適用される場合に、それは、有効な隣接する再構成されたブロックからアフィンモードによりコーディングされた最初のブロックを得る。そして、候補ブロックの選択順序は、図21(a)に示されるように、左から、上、右上、左下、左上へである(順にA、B、C、D、Eによって表される)。例えば、隣接する左下ブロックが、図21(b)でA0によって表されるように、アフィンモードでコーディングされる場合に、ブロックAを含む隣接するCU/PUの左上隅、右上隅、及び左下隅の制御点(CP)動きベクトルmv 、mv 及びmv がフェッチされる。そして、現在のCU/PU上の左上隅/右上/左下の動きベクトルmv 、mv 及びmv (6パラメータアフィンモデルのためにのみ使用される)は、mv 、mv 及びmv に基づいて計算される。留意されるべきは、VTM-2.0では、現在のブロックがアフィンコーディングされている場合に、左上隅に位置するサブブロック(例えば、VTMでは、4×4ブロック)は、mv0を保存し、右上隅にあるサブブロックは、mv1を保存する。現在のブロックが6パラメータアフィンモデルでコーディングされる場合には、左下隅にあるサブブロックは、mv2を保存し、そうでない(4パラメータアフィンモデルによる)場合には、LBはmv2’を保存する。他のサブブロックは、MCのために使用されるMVを保存する。
【0104】
現在のCUのCPMVであるmv 、Mv 及びmv が、簡単化されたアフィン運動モデル、つまり、式(1)及び(2)に従って導出された後、現在のCUのMVFが生成される。現在のCUがAF_MERGEモードでコーディングされているかどうかを識別するために、アフィンモードでコーディングされている少なくとも1つの隣接ブロックがある場合に、アフィンフラグがビットストリームでシグナリングされる。
【0105】
JVET-L0142及びJVET-L0632では、アフィンマージ候補リストは、次のステップで構成される。
【0106】
1)遺伝的アフィン候補の挿入
遺伝によるアフィン候補(inherited affine candidate)とは、候補が、その有効な隣接するアフィンコーディングされたブロックのアフィン運動モデルから導出されることを意味する。最大2つの遺伝的アフィン候補が、隣接ブロックのアフィン運動モデルから導出され、候補リストに挿入される。左側予測子については、走査順序は{A0,A1}であり、上側予測子については、走査順序は{B0,B1,B2}である。
【0107】
2)構成されたアフィン候補の挿入
アフィンマージ候補リスト内の候補の数がMaxNumAffineCand(例えば、5つ)に満たない場合には、構成されたアフィン候補(constructed affine candidates)が候補リストに挿入される。構成されたアフィン候補とは、候補が、各制御点の隣接動き情報を結合することによって構成されることを意味する。
a)制御点の動き情報は、最初に、図22に示されている指定された空間近傍及び時間近傍から導出される。CPk(k=1,2,3,4)は、k番目の制御点を表す。A0、A1、A2、B0、B1、B2及びB3は、CPk(k=1,2,3)を予測するための空間的位置である。Tは、CP4を予測するための時間的位置である。
CP1、CP2、CP3及びCP4の座標は、夫々、(0,0)、(W,0)、(H,0)及び(W,H)であり、ここで、W及びHは、現在のブロックの幅及び高さである。
各制御点の動き情報は、次の優先順序に従って取得される:
- CP1については、チェック優先度はB2→B3→A2である。B2は、それが利用可能である場合に使用される。そうではない場合に、B3が利用可能であるならば、B3が使用される。B2及びB3の両方が利用不可能である場合には、A2が使用される。3つ全ての候補が利用不可能である場合には、CP1の動き情報は取得不可能である。
- CP2については、チェック優先度はB1→B0である。
- CP3については、チェック優先度はA1→A0である。
- CP4については、Tが使用される。
b)第2に、制御点の組み合わせが、アフィンマージ候補を構成するために使用される。
I.3つの制御点の動き情報が、6パラメータアフィン候補を構成するために必要とされる。3つの制御点は、次の4つの組み合わせ({CP1,CP2,CP4},{CP1,CP2,CP3},{CP2,CP3,CP4},{CP1,CP3,CP4})のうちの1つから選択され得る。組み合わせ{CP1,CP2,CP3}、{CP2,CP3,CP4}、{CP1,CP3,CP4}は、左上、右上、及び左下制御点によって表される6パラメータ運動モデルへ変換されることになる。
II.2つの制御点の動きベクトルが、4パラメータアフィン候補を構成するために必要とされる。2つの制御点は、次の2つの組み合わせ({CP1,CP2},{CP1,CP3})のうちの1つから選択され得る。2つの組み合わせは、左上及び右上制御点によって表される4パラメータ運動モデルへ変換されることになる。
III.構成されたアフィン候補の組み合わせは、次の順序:{CP1,CP2,CP3},{CP1,CP2,CP4},{CP1,CP3,CP4},{CP2,CP3,CP4},{CP1,CP2},{CP1,CP3}として候補リストに挿入される。
i.組み合わせごとに、各CPのためのリストXの参照インデックスはチェックされ、それらが全て同じである場合に、この組み合わせはリストXの有効なCPMVを有している。組み合わせがリスト0及びリスト1の両方の有効なCPMVを有してない場合には、この組み合わせは無効とマークされる。そうでない場合には、それは有効であり、CPMVはサブブロックマージリストに置かれる。
【0108】
3)ゼロアフィン動きベクトル候補によるパディング
アフィンマージ候補リスト内の候補の数が5よりも少ない場合に、サブブロックマージ候補リストについて、4パラメータマージ候補は、MVが(0,0)にセットされ、予測方向がリスト0からの片予測(Pスライスの場合)及び双予測(Bスライスの場合)にセットされる。
【0109】
2.3.4.VVCにおけるマージリスト設計
VVCでサポートされている3つの異なったマージリスト構成プロセスがある。
1)サブブロックマージ候補リスト:それはATMVP及びアフィンマージ候補を含む。1つのマージリスト構成プロセスが、アフィンモード及びATMVPモードの両方について共有される。ここで、ATMVP及びアフィンマージ候補は順番に加えられ得る。サブブロックマージリストのサイズはスライスヘッダでシグナリングされ、最大値は5である。
2)片予測TPMマージリスト:三角予測モードについては、2つのパーティションがそれら自身のマージ候補インデックスを選択することができたとしても、2つのパーティションのための1つのマージリスト構成プロセスが共有される。このマージリストを構成するときに、ブロックの空間隣接ブロック及び2つの時間ブロックがチェックされる。空間近傍及び時間ブロックから導出された動き情報は、我々のIDFでは正則動き候補と呼ばれる。これらの正則動き候補は、複数のTPM航法を導出するために更に利用される。2つのパーティションがそれら自身の予測ブロックを生成するために異なる動きベクトルを使用し得るとしても、ブロック全体のレベルで変換が実行されることに留意されたい。
片予測TPMマージリストサイズは、5であるよう固定される。
3)正則マージリスト:残りのコーディングブロックについては、1つのマージリスト構成プロセスが共有される。ここで、空間/時間/HMVP、ペアワイズの組み合わされた双予測マージ候補、及びゼロ動き候補は、順番に挿入され得る。正則マージリストのサイズはスライスヘッダでシグナリングされ、最大値は6である。
【0110】
2.3.4.1.サブブロックマージ候補リスト
全てのサブブロックに関連した動き候補は、非サブブロックマージ候補のための正則マージリストに加えて別個のマージリストに置かれる。
【0111】
サブブロックに関連した動き候補は、「サブブロックマージ候補リスト」と名付けられている別個のマージリストに置かれる。
【0112】
一例で、サブブロックマージ候補リストは、アフィンマージ候補、及びATMVP候補、及び/又はサブブロックベースのSTMVP候補を含む。
【0113】
2.3.4.1.1.JVET-L0278
この寄稿では、通常のマージリスト内のATMVPマージ候補は、アフィンマージリストの第1の位置に動かされる。それにより、新しいリスト(すなわち、サブブロックベースのマージ候補リスト)内の全てのマージ候補は、サブブロックコーディングツールに基づく。
【0114】
2.3.4.1.2.JVET-N1001におけるATMVP
ATMVPは、サブブロックベースの時間動きベクトル予測(SbTMVP)としても知られている。
【0115】
JVET-N1001では、サブブロックマージ候補リスト(別名、アフィンマージ候補リスト)として知られている特別なマージ候補リストが、正則マージ候補リストに加えて追加されている。サブブロックマージ候補リストは、次の順序で候補を充てんされる:
a.ATMVP候補(利用可能あっても利用不可能であってもよい);
b.遺伝的アフィン候補;
c.同一位置参照ピクチャでのMVを使用するTMVPに基づいた構成されたアフィン候補を含む構成されたアフィン候補;
d.ゼロMVとして4パラメータアフィンモデルをパディングする。
【0116】
VTMは、サブブロックベースの時間動きベクトル予測(sbTMVP)方法をサポートする。HEVCでの時間動きベクトル予測(TMVP)と同様に、SbTMVPは、現在のピクチャにおけるCUのための動きベクトル予測及びマージモードを改善するよう同一位置ピクチャにおける動き場を使用する。TMVPによって使用される同じ同一位置ピクチャはSbTMVPのために使用される。sbTMVPは、次の2つの側面でTMVPとは異なっている:
1.TMVPは、CUレベルで動きを予測するが、sbTMVPは、サブCUレベルで動きを予測する。
2.TMVPは、同一位置ピクチャ内の同一位置ブロック(同一位置ブロックは、現在のCuに対する右下又は中心ブロックである)から時間動きベクトルをフェッチするが、一方で、sbTMVPは、同一位置ピクチャから時間動き情報をフェッチする前に、動きシフトを適用し、動きシフトは、現在のCUの空間隣接ブロックの1つからの動きベクトルから取得される。
【0117】
SbTVMPプロセスは、図23及び図24に表されている。sbTMVPは、2つのステップで現在のCU内のサブCUの動きベクトルを予測する。第1のステップで、図23の空間近傍A1が試験される。A1が、その参照ピクチャとして同一位置ピクチャを使用する動きベクトルを有する場合に、動きベクトルは、適用されるべき動きシフトであるよう選択される。そのような動きが識別されない場合には、動きシフトは(0,0)にセットされる。
【0118】
第2のステップで、ステップ1で識別された動きシフトは、図24に示されるように同一位置ピクチャからサブCUレベルの動き情報(動きベクトル及び参照インデックス)を取得するために適用される(すなわち、現在のブロックの座標に加えられる)。図24の例は、動きシフトがブロックA1の動きにセットされる、と仮定する。それから、サブCUごとに、同一位置ピクチャ内のその対応するブロック(中心サンプルをカバーする最小の動きグリッド)の動き情報は、そのサブCUの動き情報を導出するために使用される。同一位置サブCUの動き情報が識別された後、それは、HEVCのTMVPプロセスと同様にして、現在のサブCUの動きベクトル及び参照インデックスに変換され、ここで、時間動きスケーリングが、時間動きベクトルの参照ピクチャを現在CUのそれらにアライメントするよう適用される。
【0119】
VTMでは、sbTMVP候補及びアフィンマージ候補の両方を含む、サブブロックベースの複合的なマージリストが、サブブロックベースのマージモードのシグナリングのために使用される。sbTMVPモードは、シーケンスパラメータセット(SPS)フラグによって有効/無効にされる。sbTMVPモードが有効にされる場合に、sbTMVP予測子が、サブブロックベースのマージ候補のリストの最初のエントリとして加えられ、それにアフィンマージ候補が続く。サブブロックベースのマージリストのサイズはSPSでシグナリングされ、サブブロックベースのマージリストの最大許容サイズはVTM4では5である。
【0120】
sbTMVPで使用されるサブCUサイズは、8×8である用固定され、アフィンマージモードに対して行われるように、sbTMVPモードは、幅及び高さの両方が8以上であるCUにのみ適用可能である。
【0121】
追加のsbTMVPマージ候補の符号化ロジックは、他のマージ候補についてと同じであり、つまり、P又はBスライスにおける各CUについて、追加のRDチェックが、sbTMVP候補を使用すべきかどうかを決定するために実行される。
【0122】
図23~24は、VVCにおけるsbTMVPプロセスの例を示す。
【0123】
サブブロックマージ候補リスト内の候補の最大数は、MaxNumSubblockMergeCandと表される。
【0124】
2.3.4.1.3.サブブロックマージリストに関連したシンタックス/セマンティクス
【表3】
【0125】
2.3.4.2.正則マージリスト
マージリスト設計とは異なり、VVCでは、履歴に基づいた動きベクトル予測(History-based Motion Vector Prediction)が用いられる。
【0126】
HMVPでは、前にコーディングされた動き情報が保存される、前にコーディングされたブロックの動き情報は、HMVP候補として定義される。複数のHMVP候補が、HMVPテーブルと名付けられたテーブルに保存され、このテーブルは、オン・ザ・フライで符号化/復号化プロセス中に保持される。HMVPテーブルは、新しいスライスの符号化/復号化を開始するときに空にされる。インターコーディングされたブロックが存在するときには、関連する動き情報が、新しいHMVP候補としてテーブルの最後のエントリに加えられる。全体のコーディングフローは図25に表される。
【0127】
HMVPは、AMVP及びマージ候補リスト構成プロセスの両方で使用され得る。図26は、変更されたマージ候補リスト構成プロセスを表す。TMVP候補挿入の後にマージ候補リストがいっぱいでないとき、HMVPテーブルに保存されているHMVP候補が、マージ候補リストに充てんするために利用される。1つのブロックが、通常は、動き情報に関して最も近い隣接ブロックとより高い相関を有していることを考えると、テーブル内のHMVP候補は、インデックスの降順で挿入される。テーブル内の最後のエントリが最初にリストに加えられ、一方、最初のエントリは最後に加えられる。同様に、冗長性除去がHMVP候補に対して適用される。利用可能なマージ候補の総数が、シグナリングされることを許されたマージ候補の最大数に達すると、マージ候補リスト構成プロセスは終了する。
【0128】
図25は、アフィンマージモードのための候補位置を示す。
【0129】
図26は、変更されたマージリスト構成プロセスを示す。
【0130】
2.3.5.JVET-N0236
この寄稿は、オプティカルフローによりサブブロックベースアフィン動き補償された予測を精緻化する方法を提案している。サブブロックベースのアフィン動き補償が実行された後、予測サンプルは、オプティカルフロー式によって導出された差を加えることによって精緻化される。これは、オプティカルフローによる予測精緻化(PROF)と呼ばれる。提案されている方法は、メモリアクセスバンド幅を増大させずにピクセルレベル粒度でのインター予測を達成することができる。
【0131】
より細かい粒度の動き補償を達成するために、この寄稿は、オプティカルフローによりサブブロックベースのアフィン動き補償された予測を精緻化する方法を提案する。サブブロックベースのアフィン動き補償が実行された後に、ルーマ予測サンプルは、オプティカルフロー式によって導出された差を加えることによって精緻化される。この提案されているPROF(Prediction Refinement with Optical Flow)は、次の4つのステップとして記載される。
【0132】
ステップ1)サブブロックベースのアフィン動き補償が、サブブロック予測I(i,j)を生成するために実行される。
【0133】
ステップ2)サブブロック予測の空間勾配g(i,j)及びg(i,j)が、3タップフィルタ[-1,0,1]を用いて各サンプル位置で計算される。

(i,j)=I(i+1,j)-I(i-1,j)
(i,j)=I(i,j+1)-I(i,j-1)
【0134】
サブブロック精度は、勾配計算のために各辺で1ピクセルずつ広げられる。メモリバンド幅及び複雑性を低減するよう、広げられた境界上のピクセルは、参照ピクチャ内の最も近い整数ピクセル位置からコピーされる。従って、領域パディングのための追加の補間は回避される。
【0135】
ステップ3)ルーマ予測精緻化が、オプティカルフロー式によって計算される。

ΔI(i,j)=g(i,j)×Δv(i,j)+g(i,j)×Δv(i,j)

ここで、Δv(i,j)は、図27に示されるように、v(i,j)によって表される、サンプル位置(i,j)について計算されたピクセルMVと、ピクセル(i,j)が属するサブブロックのサブブロックMVとの間の差である。
【0136】
アフィンモデルパラメータ及びサブブロック中心に対するピクセル位置は、サブブロックごとに変化しないので、Δv(i,j)は、最初のサブブロックについて計算され、同じCU内の他のサブブロックに対して再利用され得る。x及びyを、ピクセル位置からサブブロックの中心までの水平及び垂直オフセットとすると、Δv(x,y)は、次の式によって導出され得る。
【数6】
【0137】
4パラメータアフィンモデルについては、
【数7】
であり
6パラメータアフィンモデルについては、
【数8】
であり、ここで、(v0x,v0y)、(v1x,v1y)、(v2x,v2y)は、左上、右上、及び左下制御点動きベクトルであり、w及びhは、CUの幅及び高さである。
【0138】
ステップ4)最後に、ルーマ予測精緻化がサブブロック予測I(i,j)に加えられる。最終的な予測I’は、次の式として生成される。

I’(i,j)=I(i,j)+ΔI(i,j)
【0139】
2.3.6.ATMVPの改善に関するPCT/CN2018/124520及びPCT/CN2018/116889
これらの文献で、我々は、ATMVPモードの設計を妥当かつ効率的にするためのいくつかのアプローチを開示した。これらは両方とも、その全文を参照により援用される。
【0140】
3.実施形態によって解決された課題の例
VVCの現在の設計では、サブブロックベースの予測モードは次の問題を抱えている:
1)SPS内のアフィンAMVRフラグは、正則AMVRがオフされるときにオンされる可能性がある。
2)SPS内のアフィンAMVRフラグは、アフィンモードがオフされるときにオンされる可能性がある。
3)MaxNumSubblockMergeCandは、ATMVPが適用されないときに近似的にセットされない。
4)TMVPがスライスに対して無効にされ、ATMVPがシーケンスに対して有効にされるとき、Bスライスの同一位置ピクチャは識別されなかったが、同一位置ピクチャはATMVPプロセスで必要とされる。
5)TMVP及びATMVPは両方とも、参照ピクチャから動き情報をフェッチする必要があり、現在の設計では、それは同じであると想定されており、これは事前である可能性がある。
6)PROFは、そのオン/オフを制御するフラグを有するべきである。
【0141】
4.例となる実施形態
以下の詳細な発明は、一般概念を説明するための例と見なされるべきである。これらの発明は、狭い意味で解釈されるべきではない。更に、これらの発明は、如何なる方法でも組み合わせ可能である。いくつかの実施形態は、代替時間動きベクトル予測(ATMVP)技術の例を用いて記載されるが、代替の実施形態では、サブブロックベースの時間動きベクトル予測(sbTMVP)技術が適用可能であってもよい。
【0142】
以下で記載されている方法は、他の種類の動き候補リスト(例えば、AMVP候補リスト)にも適用可能であり得る。
【0143】
1.アフィンAMVRのための制御情報がシグナリングされるかどうかは、アフィン予測が適用されるか否かに依存し得る。
a)一例で、アフィンAMVRのための制御情報は、アフィン予測が適用されない場合にはシグナリングされない。
b)一例で、アフィンAMVRは、アフィン予測がコンフォーマンスビットストリーム(conformance bitstream)で適用されない場合には無効にされるべきある(例えば、アフィンAMVRの利用は、偽であるとシグナリングされるべきである)。
c)一例で、アフィンAMVRのためのシグナリングされた制御情報は、アフィン予測が適用されない場合には無視されて、適用されないと推測されてもよい。
【0144】
2.アフィンAMVRのための制御情報がシグナリングされるかどうかは、正則AMVRが適用されるか否かに依存し得る。
a)一例で、アフィンAMVRのための制御情報は、正則AMVRが適用されない場合にはシグナリングされない。
b)一例で、アフィンAMVRは、正則AMVRがコンフォーマンスビットストリームで適用されない場合には無効にされるべきである(アフィンAMVRフラグの利用は、偽であるとシグナリングされる)。
c)一例で、アフィンAMVRのためのシグナリングされた制御情報は、正則AMVRが適用されない場合には無視されて、適用されないと推測されてもよい。
d)一例で、適応動きベクトル分解の指示(例えば、1つのフラグ)は、正則AMVR(すなわち、並進運動に適用されるAMVR)及びアフィンAMVR(すなわち、アフィン運動に適用されるAMVR)などの複数のコーディング方法のためのAMVRの利用を制御するために、シーケンス/ピクチャ/スライス/タイルグループ/タイル/ブリック/他のビデオユニットでシグナリングされ得る。
i.一例で、そのような指示は、SPS/DPS/VPS/PPS/ピクチャヘッダ/スライスヘッダ/タイルグループヘッダでシグナリングされ得る。
ii.代替的に、更に、正則AMVR及び/又はアフィンAMVRの利用の指示をシグナリングすべきかどうかは、その指示に依存してもよい。
1)一例で、そのような指示が、適応動きベクトル分解が無効にされることを示すとき、正則AMVRの利用の指示のシグナリングはスキップされてもよい。
2)一例で、そのような指示が、適応動きベクトル分解が無効にされることを示すとき、アフィンAMVRの利用の指示のシグナリングはスキップされてもよい。
iii.代替的に、更に、アフィンAMVRの利用の指示をシグナリングすべきかどうかは、アフィン予測モードの利用及び指示に依存してもよい。
1)例えば、そのような指示は、アフィン予測モードが無効にされる場合にスキップされてもよい。
iv.一例で、そのような指示は、現在のスライス/タイルグループ/ピクチャが先行ピクチャからのみ予測可能である場合にはシグナリングされてなくてもよく、偽であると導出され得る。
v.一例で、そのような指示は、現在のスライス/タイルグループ/ピクチャが後続ピクチャからのみ予測可能である場合にはシグナリングされなくてもよく、偽であると導出され得る。
vi.一例で、そのような指示は、現在のスライス/タイルグループ/ピクチャが先行ピクチャ及び後続ピクチャの両方から予測可能であるときにシグナリングされ得る。
【0145】
3.アフィンAMVRのための制御情報がシグナリングされるべきかどうかは、正則AMVRが適用されるか否かと、アフィン予測が適用されるか否かとに依存してもよい。
a)一例で、アフィンAMVRのための制御情報は、アフィン予測が適用されないか又は正則AMVRが適用されない場合にはシグナリングされない。
i.一例で、アフィンAMVRは、コンフォーマンスビットストリームでアフィン予測が適用されないか又は正則AMVRが適用されない場合には無効にされるべきである(例えば、アフィンAMVRの利用は、偽であるとシグナリングされるべきである)。
ii.一例で、アフィンAMVRのためのシグナリングされた制御情報は、アフィン予測が適用されないか又は正則AMVRが適用されない場合には無視され、適用されないと推測されてもよい。
b)一例で、アフィンAMVRのための制御情報は、アフィン予測が適用されずかつ正則AMVRが適用されない場合にはシグナリングされない。
i.一例で、アフィンAMVRは、コンフォーマンスビットストリームでアフィン予測が適用されずかつ正則AMVRが適用されない場合には無効にされるべきある(例えば、アフィンAMVRの利用は、偽であるとシグナリングされるべきである)。
ii.一例で、アフィンAMVRのためのシグナリングされた制御情報は、アフィン予測が適用されずかつ正則AMVRが適用されない場合には無視されて、適用されないと推測されてもよい。
【0146】
4.サブブロックマージ候補リスト内の候補の最大数(MaxNumSubblockMergeCandと表される)は、ATMVPが有効にされるか否かに依存してもよい。ATMVPが有効にされるか否かは、SPS内のsps_sbtmvp_enabled_flagによってのみ示されなくてもよい。
a)例えば、ATMVPが有効にされるか否かは、シーケンスレベルでシグナリングされたフラグ(例えば、SPS内のsps_sbtmvp_enabled_flag)にしか依存しなくてもよい。それはまた、VPS、DPS、APS、PPS、スライスヘッダ、タイルグループヘッダ、ピクチャヘッダ、などのようなシーケンス/ピクチャ/スライス/タイルグループ/タイルレベルでの何らかの他のビデオユニットでシグナリングされた1つ又は複数のシンタックス要素にも依存してよい。
i.代替的に、ATMVPが有効にされるかどうかは、シグナリングによらずに暗黙的に導出されてもよい。
ii.例えば、ATMVPは、TMVPがピクチャ又はスライス又はタイルグループに対して有効にされない場合には、ピクチャ又はスライス又はタイルグループに対して有効にされない。
b)例えば、MaxNumSubblockMergeCandに関連したシンタックス要素(例えば、five_minus_max_num_subblock_merge_cand)をシグナリングすべきかどうか及び/又はどのようにシグナリングすべきかは、ATMVPが有効にされるか否かに依存してもよい。
i.例えば、five_minus_max_num_subblock_merge_candは、ATMVPが有効にされない場合にはコンフォーマンスビットストリームにおいて制約され得る。
1)例えば、five_minus_max_num_subblock_merge_candは、ATMVPが有効にされない場合には、固定数に等しいことを許されない。2つの例で、固定数は0又は5であってよい。
2)例えば、five_minus_max_num_subblock_merge_candは、ATMVPが有効にされない場合には、固定数よりも大きいことを許されない。1つの例で、固定数は4であってよい。
3)例えば、five_minus_max_num_subblock_merge_candは、ATMVPが有効にされない場合には、固定数よりも小さいことを許されない。1つの例で、固定数は1であってよい。
ii.例えば、five_minus_max_num_subblock_merge_candは、それが存在しない場合にはfive_minus_max_num_subblock_merge_cand-(ATMVPが有効にされる?0:1)としてセットされてもよく、ATMVPが有効にされるかどうかは、SPS内のフラグ(例えば、sps_sbtmvp_enabled_flag)にしか依存しないわけではない。
c)例えば、MaxNumSubblockMergeCandは、1つ以上のシンタックス要素(例えば、five_minus_max_num_subblock_merge_cand)及びATMVPが有効にされるか否かに応じて導出されてもよい。
i.例えば、MaxNumSubblockMergeCandは、MaxNumSubblockMergeCand=5-five_minus_max_num_subblock_merge_cand-(ATMVPが有効にされる?0:1)として導出され得る。
d)MaxNumSubblockMergeCandは、ATMVPが有効にされるときに1にセットされてもよく、アフィン運動予測は無効にされる。
【0147】
5.デフォルト候補(並進及び/又はアフィン運動による)がサブブロックマージ候補リストに付け加えられてもよい。デフォルト候補は、サブブロックなどの予測タイプを有してもよく、あるいは、それは、ブロック全体予測によるものであってもよい。
a)一例で、デフォルト候補に対するブロック全体予測は、並進運動モデル(例えば、正則マージ候補に対するブロック全体予測)に続いてもよい。
b)一例で、デフォルト候補に対するサブブロック予測は、並進運動モデル(例えば、ATMP候補に対するサブブロック予測)に続いてもよい。
c)一例で、デフォルト候補に対するサブブロック予測は、アフィン運動モデル(例えば、アフィンマージ候補に対するサブブロック予測)に続いてもよい。
d)一例で、デフォルト候補は、0に等しいアフィンフラグを有してもよい。
i.代替的に、デフォルト候補は、1に等しいアフィンフラグを有してもよい。
e)一例で、ブロックに対する後続の手順は、そのブロックがデフォルト候補でコーディングされるかどうかに依存してもよい。
i.一例で、ブロックは、ブロック全体予測デコーディングされているものとして扱われ(例えば、選択されたデフォルト候補は、ブロック全体予測を使用する)、
1)例えば、PROFは、ブロックに適用されなくてもよい。
2)例えば、DMVR(Decode-side Motion Vector Refinement)は、ブロックに適用されてもよい。
3)例えば、BDOF(Bi-Directional Optical Flow)は、ブロックに適用されてもよい。
4)例えば、デブロッキングフィルタは、ブロック内のサブブロック間の境界に適用されなくてもよい。
ii.一例で、ブロックは、サブブロック予測でコーディングされているものとして扱われ(例えば、選択されたデフォルト候補は、サブブロック予測を使用する)、
1)例えば、PROFは、ブロックに適用されてもよい。
2)例えば、DMVR(Decode-side Motion Vector Refinement)は、ブロックに適用されなくてもよい。
3)例えば、BDOF(Bi-Directional Optical Flow)は、ブロックに適用されなくてもよい。
4)例えば、デブロッキングフィルタは、ブロック内のサブブロック間の境界に適用されてもよい。
iii.一例で、ブロックは並進予測でコーディングされているものとして扱われ、
1)例えば、PROFは、ブロックに適用されなくてもよい。
2)例えば、DMVR(Decode-side Motion Vector Refinement)は、ブロックに適用されてもよい。
3)例えば、BDOF(Bi-Directional Optical Flow)は、ブロックに適用されてもよい。
4)例えば、デブロッキングフィルタは、ブロック内のサブブロック間の境界に適用されなくてもよい。
iv.一例で、ブロックは、アフィン予測でコーディングされているものとして扱われ、
1)例えば、PROFは、ブロックに適用されてもよい。
2)例えば、DMVR(Decode-side Motion Vector Refinement)は、ブロックに適用されなくてもよい。
3)例えば、BDOF(Bi-Directional Optical Flow)は、ブロックに適用されなくてもよい。
4)例えば、デブロッキングフィルタは、ブロック内のサブブロック間の境界に適用されてもよい。
f)一例で、1つ又は複数の種類のデフォルト候補が、サブブロックマージ候補リストに置かれてもよい。
i.例えば、ブロック全体予測による第1の種類のデフォルト候補及びサブブロック予測による第2の種類のデフォルト候補の両方がサブブロックマージ候補リストに置かれてもよい。
ii.例えば、並進予測による第1の種類のデフォルト候補及びアフィン予測による第2の種類のデフォルト候補の両方がサブブロックマージ候補リストに置かれてもよい。
iii.各種類からのデフォルト候補の最大数は、ATMVPが有効にされるかどうか及び/又はアフィン予測が有効にされるかどうかに依存してもよい。
g)一例で、Bスライスについては、デフォルト候補は、全てのサブブロックについてゼロ動きベクトルを有してもよく、双予測が適用され、両方の参照ピクチャは0にセットされる。
h)一例で、Pスライスについては、デフォルト候補は、全てのサブブロックについてゼロ動きベクトルを有してもよく、片予測が適用され、参照ピクチャは0にセットされる。
i)どの種類のデフォルト候補がサブブロックマージ候補リストに置かれるかは、ATMVP及び/又はアフィン予測モードの利用に依存してもよい。
i.一例で、アフィン予測モードが有効にされるとき、アフィンフラグが1であるアフィン運動モデル(例えば、全てのCPMVが0に等しい)によるデフォルト候補が加えられ得る。
ii.一例で、アフィン予測モード及びATMVPの両方が有効にされるとき、アフィンフラグが0である並進運動モデル(例えば、ゼロMV)によるデフォルト候補及び/又はアフィンフラグが1であるアフィン運動モデル(例えば、全てのCPMVが0に等しい)によるデフォルト候補が加えられ得る。
1)一例で、並進運動モデルによるデフォルト候補は、アフィン運動モデルによるデフォルト候補の前に加えられ得る。
iii.一例で、アフィン予測が無効にされ、ATMVPが有効にされるとき、アフィンフラグが0である並進運動モデルによるデフォルト候補が加えられ得、アフィン運動によるデフォルト候補は加えられない。
j)上記の方法は、ATMVP候補及び/又は空間/時間/構成されたアフィンマージ候補をチェックした後でサブブロックマージ候補が満たされていないときに適用され得る。
【0148】
6.ATMVPがスライス又はタイルグループ又はピクチャに対して有効にされるかどうかなどのATMVPに関する情報は、スライスヘッダ又はタイルグループヘッダ又はスライスヘッダでシグナリングされてもよい。
a)一例で、ATMVPの同一位置ピクチャは、TMVPの同一位置ピクチャとは異なってもよい。
b)一例で、ATMVPに関する情報は、Iスライス又はIタイルグループ又はIピクチャについてシグナリングされなくてもよい。
c)一例で、ATMVPに関する情報は、ATMVPがシーケンスレベルで有効にされるとシグナリングされる(例えば、sps_sbtmvp_enabled_flagが1に等しい)場合にのみシグナリングされ得る。
d)一例で、ATMVPに関する情報は、TMVPがスライス又はタイルグループ又はピクチャに対して無効にされる場合には、そのスライス又はタイルグループ又はピクチャについてシグナリングされなくてもよい。
i.例えば、ATMVPは、この場合に、無効にされると推測され得る。
e)ATMVPは、ATMVPの利用のシグナリングされた情報にかかわらず、TMVPがスライス(又はタイルグループ又はピクチャ)に対して無効にされる場合には、そのスライス(又はタイルグループ又はピクチャ)に対して無効にされると推測され得る。
【0149】
7.サブブロックベースの時間マージ候補(例えば、時間アフィン動き候補)を加えるべきかどうかは、TMVPの利用に依存してもよい。
a)代替的に、それは、sps_temporal_mvp_enabled_flagの値に依存してもよい。
b)代替的に、それは、slice_temporal_mvp_enabled_flagの値に依存してもよい。
c)sps_temporal_mvp_enabled_flag又はslice_temporal_mvp_enabled_flagが真であるとき、サブブロックベースの時間マージ候補は、サブブロックマージ候補に加えられてもよい。
i.代替的に、sps_temporal_mvp_enabled_flag及びslice_temporal_mvp_enabled_flagが両方とも真であるとき、サブブロックベースの時間マージ候補は、サブブロックマージ候補に加えられてもよい。
ii.代替的に、sps_temporal_mvp_enabled_flag又はslice_temporal_mvp_enabled_flagが偽であるとき、サブブロックベースの時間マージ候補は、サブブロックマージ候補に加えられるべきではない。
d)代替的に、サブブロックベースの時間マージ候補を加えることの指示は、シーケンス/ピクチャ/スライス/タイルグループ/タイル/ブリック/他のビデオユニットでシグナリングされてもよい。
i.代替的に、更に、それは、時間動きベクトル予測の利用(例えば、sps_temporal_mvp_enabled_flag及び/又はslice_temporal_mvp_enabled_flag)に従って条件付きでシグナリングされてもよい。
【0150】
8.どの参照ピクチャリストから同一位置参照ピクチャが導出されるか(例えば、collocated_from_l0_flag)及び/又は同一位置参照ピクチャの参照インデックスなどの、同一位置参照ピクチャの指示は、時間動き情報にアクセスする必要がある複数のコーディング方法の利用に従って条件付きでシグナリングされてもよい。
a)一例で、条件は、ATMVP又はTMVPのうちの一方が有効にされることである。
b)一例で、条件は、ATMVP又はTMVP又はアフィン動き情報予測のうちの1つが有効にされることである。
【0151】
9.一例で、サブブロックベースの時間マージ候補は、ATMVP及びTMVPが両方とも現在のピクチャ/スライス/タイルグループに対して有効にされるときにのみサブブロックマージ候補リストに置かれてよい。
a)代替的に、サブブロックベースの時間マージ候補は、ATMVPが現在のピクチャ/スライス/タイルグループに対して有効にされるときにのみサブブロックマージ候補リストに置かれてよい。
【0152】
10.MaxNumSubblockMergeCandは、サブブロックベースの時間マージ候補が使用され得るかどうかに依存してもよい。
a)代替的に、MaxNumSubblockMergeCandは、TMVPが使用され得るかどうかに依存してもよい。
b)例えば、MaxNumSubblockMergeCandは、サブブロックベースの時間マージ候補(又はTMVP)が使用され得ない場合には、4よりも大きくてはならない。
i.例えば、MaxNumSubblockMergeCandは、サブブロックベースの時間マージ候補(又はTMVP)が使用され得ず、ATMVPが使用され得る場合には、4よりも大きくてはならない。
ii.例えば、MaxNumSubblockMergeCandは、サブブロックベースの時間マージ候補(又はTMVP)が使用され得ず、ATMVPが使用され得ない場合には、4よりも大きくてはならない。
iii.例えば、MaxNumSubblockMergeCandは、サブブロックベースの時間マージ候補(又はTMVP)が使用され得ず、ATMVPが使用され得ない場合には、3よりも大きくてはならない。
【0153】
11.PROFを行うべきかどうか及び/又はどのように行うべきかを示す1つ又は複数のシンタックス要素は、VPS、DPS、APS、PPS、スライスヘッダ、タイルグループヘッダ、ピクチャヘッダ、CTU、CU、PU、などのようなシーケンス/ピクチャ/スライス/タイルグループ/タイル/CTU行/CTU。CU/PU/TUレベルでの何らかのビデオユニットでシグナリングされ得る。
a)一例で、1つ又は複数のシンタックス要素(例えば、PROGが有効にされるかどうかを示すフラグ)は、アフィン予測が有効にされるかどうかを示すシンタックス要素などの他のシンタックス要素に応じて条件付きでシグナリングされ得る。
i.例えば、PROFが有効にされるかどうかを示すシンタックス要素は、シグナリングされなくてもよく、PROFは、アフィン予測が無効にされるときには、無効にされると推測される。
b)一例で、PROFが有効にされるかどうかを示すシンタックス要素は、アフィン予測がコンフォーマンスビットストリームで無効にされるときには、PROFが無効にされるとセットされなければならない。
c)一例で、アフィン予測がコンフォーマンスビットストリームで無効にされるときに、PROFが有効にされるかどうかを示すシグナリングされたシンタックス要素は、無視されて、PROFは、無効にされると推測される。
d)一例で、1つのシンタックス要素が、PROFが片予測にのみ適用されるか否かを示すためにシグナリングされてもよい。
【0154】
5.実施形態
次の全ての実施形態については、シンタックス要素は、SPS/PPS/スライスヘッダ/ピクチャヘッダ/タイルグループヘッダ/タイル又は他のビデオユニットなどの異なるレベルでシグナリングされてもよい。
【0155】
5.1,実施形態#1:SPS/PPS/スライスヘッダ/タイルグループヘッダでのsps_affine_amvr_enabled_flagに関するシンタックス設計の例
【表4】
代替的に、
【表5】
代替的に、
【表6】
代替的に、
【表7】
【0156】
5.2.実施形態#2:five_minus_max_num_subblock_merge_candに関するセマンティクスの例
【表8】
【0157】
5.3.実施形態#3:スライスヘッダ(又はタイルグループヘッダ)でのATMVPのためのシンタックス要素の例
【表9】
代替的に、
【表10】
【0158】
5.4.実施形態#4:スライスヘッダ(又はタイルグループヘッダ)でのサブブロックベースの時間マージ候補のためのシンタックス要素の例
【表11】
【0159】
5.5.実施形態#5:SPSでPROFを制御するシンタックス/セマンティクスの例
【表12】
【0160】
図28は、ビデオ処理装置1400のブロック図である。装置1400は、本明細書で説明されている方法の1つ以上を実装するために使用されてよい。装置1400は、スマートフォン、タブレット、コンピュータ、インターネット・オブ・シングス(Internet of Things,IoT)レシーバ、などで具現されてよい。装置1400は、1つ以上のプロセッサ1402、1つ以上のメモリ1404、及びビデオ処理ハードウェア1406を含んでよい。プロセッサ1402は、本明細書で説明されている1つ以上の方法を実装するよう構成されてよい。メモリ(複数のメモリ)1404は、本明細書で説明されている方法及び技術を実装するために使用されるデータ及びコードを記憶するために使用されてよい。ビデオ処理ハードウェア1406は、ハードウェア回路で、本明細書で説明されているいくつかの技術を実装するために使用されてよい。
【0161】
図29は、ビデオ処理の例示的な方法2900のフローチャートである。方法2900は、ビデオの現在のビデオブロックとビデオのビットストリーム表現との間の変換を、アフィン適応動きベクトル分解技術を用いて実行するステップ(2902)を含み、それにより、ビットストリーム表現は、規則に基づいて、アフィン適応動きベクトル分解技術に関する制御情報を選択的に含む。
【0162】
以下の例の列挙は、数ある課題の中でも、本明細書で記載されている技術的課題に対処することができる実施形態を提供する。
【0163】
1.ビデオ処理の方法であって、ビデオの現在のビデオブロックと前記ビデオのビットストリーム表現との間の変換を、アフィン適応動きベクトル分解技術を用いて実行するステップ(2902)を含み、それにより、前記ビットストリーム表現は、規則に基づいて、前記アフィン適応動きベクトル分解技術に関する制御情報を選択的に含む、方法。
【0164】
2.例1の方法であって、前記規則は、アフィン予測が前記変換中に使用される場合に前記制御情報を含め、アフィン予測が前記変換中に使用されない場合に前記制御情報を省略することを定める、方法。
【0165】
3.例1の方法であって、前記規則は、アフィン予測が前記変換に適用されない場合に、前記変換中に適応動きベクトル分解ステップを使用することを除くことを更に定める、方法。
【0166】
上記の例に関連した更なる例及び実施形態は、セクション4、項目1で提供される。
【0167】
4.例1の方法であって、前記規則は、正則な適応動きベクトル分解ステップが前記変換中に使用されるか否かに基づき前記制御情報を包含又は省略することを定める、方法。
【0168】
5.例4の方法であって、前記規則は、前記正則な適応動きベクトル分解ステップが前記変換中に適用されない場合に、前記制御情報が省略されることを定める、方法。
【0169】
6.例1の方法であって、前記制御情報は、前記変換中の複数の適応動きベクトル分解技術の仕様を示す同じフィールドを含む、方法。
【0170】
上記の例に関連した更なる例及び実施形態は、セクション4、項目2で提供される。
【0171】
7.例1の方法であって、前記規則は、正則な適応動きベクトル分解及びアフィン予測が前記変換中に使用されるか否かに基づき前記制御情報を包含又は省略することを定める、方法。
【0172】
8.例7の方法であって、前記規則は、前記正則な適応動きベクトル分解及びアフィン予測が両方とも前記変換中に適用されない場合に、前記制御情報を省略することを定める、方法。
【0173】
上記の例に関連した更なる例及び実施形態は、セクション4、項目3で提供される。
【0174】
9.ビデオ処理の方法であって、現在のビデオブロックとビットストリーム表現との間の変換中に、該変換のためのサブブロックマージ候補リストを決定するステップであり、前記サブブロックマージ候補リスト内の候補の最大数は、代替時間動きベクトル予測(ATMVP)が前記変換に適用されるか否かに依存する、前記決定するステップと、前記サブブロックマージ候補リストを用いて前記変換を実行するステップとを有する方法。
【0175】
10.例9の方法であって、前記ビットストリーム表現内のフィールドは、代替時間動きベクトル予測が前記変換に適用されるか否かを示す、方法。
【0176】
11.例10の方法であって、前記フィールドは、シーケンスレベル又はビデオパラメータセットレベル又はピクチャパラメータセットレベル又はスライスレベル又はタイルグループレベル又はピクチャヘッダレベルにある、方法。
【0177】
12.例9の方法であって、ATMVPが前記変換に適用され、アフィン予測が前記変換のために無効にされる場合に、前記候補の最大数は1にセットされる、方法。
【0178】
上記の例に関連した更なる例及び実施形態は、セクション4、項目4で提供される。
【0179】
13.ビデオ処理の方法であって、現在のビデオブロックとビットストリーム表現との間の変換中に、該変換のためのサブブロックマージ候補リストに1つ以上のデフォルトのマージ候補を付け足すステップと、1つ以上のデフォルトのマージ候補が付け足された前記サブブロックマージ候補リストを用いて前記変換を実行するステップとを有する方法。
【0180】
14.例13の方法であって、デフォルト候補は、サブブロック予測タイプと関連付けられる、方法。
【0181】
15.例14の方法であって、前記サブブロック予測タイプは、並進運動モデル又はアフィン運動モデルに基づく予測を含む、方法。
【0182】
16.例13の方法であって、デフォルト候補は、ブロック全体予測タイプと関連付けられる、方法。
【0183】
17.例14の方法であって、前記ブロック全体予測タイプは、並進運動モデル又はアフィン運動モデルに基づく予測を含む、方法。
【0184】
上記の例に関連した更なる例及び実施形態は、セクション4、項目5で提供される。
【0185】
18.ビデオ処理の方法であって、ビデオの現在のビデオブロックとビットストリーム表現との間の変換中に、該変換への代替時間動きベクトル予測(ATMVP)の適用可能性を決定するステップであり、前記ビットストリーム表現内の1つ以上のビットは前記決定に対応する、前記決定するステップと、前記決定に基づき前記変換を実行するステップとを有する方法。
【0186】
19.例18の方法であって、前記1つ以上のビットは、ピクチャヘッダ又はスライスヘッダ又はタイルグループヘッダに含まれる、方法。
【0187】
20.例18~19の方法であって、前記変換は、時間動きベクトル予測(TMVP)を使用した前記ビデオの前記変換のために使用される他の同一位置ピクチャとは異なる同一位置ピクチャをATMVPのために使用する、方法。
【0188】
上記の例に関連した更なる例及び実施形態は、セクション4、項目6で提供される。
【0189】
21.ビデオ処理の方法であって、時間動きベクトル予測(TMVP)ステップ又は代替時間動きベクトル予測(ATMVP)に関連した条件に基づき選択的にサブブロックマージ候補リストを構成するステップと、該サブブロックマージ候補リストに基づき現在のビデオブロックと該現在のビデオブロックのビットストリーム表現との間の変換を実行するステップとを有する方法。
【0190】
22.例21の方法であって、前記条件は、シーケンスパラメータセットレベル又はスライスレベル又はタイルレベル又はブリックレベルでの前記ビットストリーム表現内のフラグの存在に対応する、方法。
【0191】
23.例21の方法であって、前記サブブロックマージ候補リストは、代替動きベクトル予測及びTMVPステップが両方とも、前記現在のビデオブロックが属するピクチャ又はタイル又はタイルグループについて有効にされる場合にのみ、サブブロックベースの時間マージ候補を用いて構成される、方法。
【0192】
24.例21の方法であって、前記サブブロックマージ候補リストは、ATMVP及びTMVPステップが両方とも、前記現在のビデオブロックが属するピクチャ又はタイル又はタイルグループについて有効にされる場合にのみ、サブブロックベースの時間マージ候補を用いて構成される、方法。
【0193】
25.例21の方法であって、前記サブブロックマージ候補リストは、前記現在のビデオブロックが属するピクチャ又はタイル又はタイルグループについてATMVPが有効にされTMVPステップが無効にされる場合にのみ、サブブロックベースの時間マージ候補を用いて構成される、方法。
【0194】
上記の例に関連した更なる例及び実施形態は、セクション4、項目7及び9で提供される。
【0195】
26.例21~25の方法であって、前記ビットストリーム表現内のフラグは、サブブロックベースの時間マージ候補が前記変換中に使用されるか否かに基づき包含又は省略される、方法。
【0196】
上記の例に関連した更なる例及び実施形態は、セクション4、項目10で提供される。
【0197】
27.ビデオ処理の方法であって、ビデオの現在のビデオブロックと前記ビデオのビットストリーム表現との間の変換を、規則に基づいて、オプティカルフローを使用した予測精緻化(PROF)を選択的に用いて実行するステップを有し、前記規則は、(1)前記ビットストリーム表現内のフィールドの包含又は省略、あるいは、(2)アフィン予測が前記変換に適用されるか否か、を有する、方法。
【0198】
28.例27の方法であって、前記規則は、前記変換に対するアフィン予測の無効化によりPROFを無効にすることを定める、方法。
【0199】
29.例27の方法であって、アフィン予測が無効にされる場合に、PROFは前記変換に対して無効にされると推測される、方法。
【0200】
30.例27の方法であって、前記規則は、前記ビットストリーム表現内の対応するフラグに基づき片予測のためにのみPROFを使用することを更に定める、方法。
【0201】
上記の例に関連した更なる例及び実施形態は、セクション4、項目11で提供される。
【0202】
31.例1乃至30のうちの1つ以上を実装するよう構成されたプロセッサを有するビデオ処理装置。
【0203】
32.プロセッサによって実行される場合に、該プロセッサに、例1乃至30のうちのいずれか1つ以上に記載の方法を実装させるコードを記憶しているコンピュータ可読媒体。
【0204】
本明細書における例の列挙において、変換との用語は、現在のビデオブロックのビットストリーム表現の生成又は現在のビデオブロックをビットストリーム表現から生成することを指し得る。ビットストリーム表現は、必ずしも、連続したビットのグループを表すわけではなく、コーディングされたピクセル値情報を表すコードワードで又はヘッダフィールドで含まれるビットに分けられてもよい。
【0205】
上記の例では、規則は予め定義され、エンコーダ及びデコーダに知られていることがある。
【0206】
図30は、本明細書で開示されている様々な技術が実装され得る、例となるビデオ処理システム3000を示すブロック図である。様々な実施は、システム3000のコンポーネントのいくつか又は全てを含んでよい。システム3000は、ビデオコンテンツを受け取る入力部3002を含んでよい。ビデオコンテンツは、生の又は圧縮されていないフォーマット、例えば、8又は10ビットマルチコンポーネントピクセル値で、受け取られてよく、あるいは、圧縮又はエンコードされたフォーマットであってもよい。入力部3002は、ネットワーク・インターフェース、ペリフェラル・バス・インターフェース、又はストレージ・インターフェースに相当してよい。ネットワーク・インターフェースの例には、Ethernet(登録商標)、受動光学ネットワーク(Passive Optical Network,PON)、などのような有線インターフェース、及びWi-Fi又はセルラーインターフェースのような無線インターフェースがある。
【0207】
システム3000は、本明細書で説明されている様々なコーディング又は符号化方法を実装し得るコーディングコンポーネント3004を含んでよい。コーディングコンポーネント3004は、ビデオのコーディングされた表現を生成するよう入力部3002からコーディングコンポーネント3004の出力部までのビデオの平均ビットレートを低減してよい。コーディング技術は、従って、時々、ビデオ圧縮又はビデオトランスコーディング技術と呼ばれる。コーディングコンポーネント3004の出力は、コンポーネント3006によって表されているように、記憶されるか、あるいは、通信接続を介して伝送されるかのどちらかであってよい。入力部3002で受け取られたビデオの記憶又は通信されたビットストリーム(又はコーディングされた)表現は、表示インターフェース3010へ送られるピクセル値又は表示可能なビデオを生成するためにコンポーネント3008によって使用されてよい。ビットストリーム表現から、ユーザが見ることができるビデオを生成するプロセスは、時々、ビデオ圧縮解除と呼ばれる。更に、特定のビデオ処理動作は「コーディング」動作又はツールと呼ばれるが、コーディングツール又は動作はエンコーダで使用され、コーディングの結果を判定させる対応する復号化ツール又は動作は、デコーダで実行されることになる。
【0208】
ペリフェラル・バス・インターフェース又は表示インターフェースの例には、ユニバーサル・シリアル・バス(Universal Serial Bus,USB)又は高精細マルチメディアインターフェース(High Definition Multimedia Interface,HDMI(登録商標))などが含まれ得る。ストレージ・インターフェースの例には、SATA(Serial Advanced Technology Attachment)、PCI、IDEインターフェース、などがある。本明細書で説明されている技術は、携帯電話機、ラップトップ、スマートフォン、あるいは、デジタルデータ処理及び/又はビデオ表示を実行することが可能な他のデバイスのような様々な電子機器で具現されてよい。
【0209】
図31は、視覚メディア処理の方法の例のフローチャートである。このフローチャートのステップは、本明細書のセクション4で例示的な実施形態1に関連して説明されている。ステップ3102で、プロセスは、視覚メディアデータのビットストリーム表現におけるアフィン適応動きベクトル分解(AMVR)技術に関する制御情報に応じて、前記視覚メディアデータに対して前記アフィンAMVR技術を使用すべきかどうかを決定し、前記制御情報は、規則に基づき前記ビットストリーム表現において包含又は削除される。ステップ3104で、プロセスは、前記視覚メディアデータと該視覚メディアデータの前記ビットストリーム表現との間の変換を実行する。
【0210】
図32は、視覚メディア処理の方法の例のフローチャートである。このフローチャートのステップは、本明細書のセクション4で例示的な実施形態4に関連して説明されている。ステップ3202で、プロセスは、サブブロックベースの時間的動きベクトル予測(sbTMVP)技術が視覚メディアデータに適用されるか否かの決定を行う。ステップ3204で、前記決定に応答して、プロセスは、前記視覚メディアデータに含まれる現在のビデオブロックについてサブブロックマージ候補リストを生成する。ステップ3206で、プロセスは、前記サブブロックマージ候補リストを用いて、前記現在のビデオブロックと該現在のビデオブロックのビットストリーム表現との間の変換を実行する。
【0211】
図33は、視覚メディア処理の方法の例のフローチャートである。このフローチャートのステップは、本明細書のセクション4で例示的な実施形態5に関連して説明されている。ステップ3302で、プロセスは、現在のビデオブロックとビットストリーム表現との間の変換中に、該変換のためのサブブロックマージ候補リストに1つ以上のデフォルトのマージ候補を付け足す。ステップ3304で、プロセスは、1つ以上のデフォルトのマージ候補を付け足された前記サブブロックマージ候補リストを用いて、前記変換を実行する。
【0212】
図34は、視覚メディア処理の方法の例のフローチャートである。このフローチャートのステップは、本明細書のセクション4で例示的な実施形態6に関連して説明されている。ステップ3402で、プロセスは、ビデオの現在のビデオブロックとビットストリーム表現との間の変換中に、該変換へのサブブロックベースの時間的動きベクトル予測(sbTMVP)の適用可能性を決定する。ここで、ビットストリーム表現中の1つ以上のビットは、前記決定に対応する。ステップ3404で、プロセスは、前記決定に基づき前記変換を実行する。
【0213】
図35は、視覚メディア処理の方法の例のフローチャートである。このフローチャートのステップは、本明細書のセクション4で例示的な実施形態7に関連して説明されている。ステップ3502で、プロセスは、時間的動きベクトル予測(TMVP)ステップ又はサブブロックベースの時間的動きベクトル予測(sbTMVP)ステップに関連した条件に基づき選択的にサブブロックマージ候補リストを構成する。ステップ3504で。プロセスは、前記サブブロックマージ候補リストに基づき現在のビデオブロックと該現在のビデオブロックのビットストリーム表現との間の変換を実行する。
【0214】
図36は、視覚メディア処理の方法の例のフローチャートである。このフローチャートのステップは、本明細書のセクション4で例示的な実施形態8に関連して説明されている。ステップ3602で、プロセスは、視覚メディアデータと該視覚メディアデータのビットストリーム表現との間の変換中に、前記視覚メディアデータに関連した同一位置(collocated)参照ピクチャに関する情報を決定する。ここで、情報は、時間動き情報にアクセスするコーディングモードが有効にされるかどうかに基づき前記ビットストリーム表現において包含又は削除される。ステップ3604で、プロセスは、前記情報に従って前記同一位置参照ピクチャを決定する。ステップ3606で、プロセスは、前記同一位置参照ピクチャに基づき、前記視覚メディアデータと該視覚メディアデータの前記ビットストリーム表現との間の前記変換を実行する。
【0215】
図37は、視覚メディア処理の方法の例のフローチャートである。このフローチャートのステップは、本明細書のセクション4で例示的な実施形態11に関連して説明されている。ステップ3702で、プロセスは、視覚メディアデータのビデオブロックと前記視覚メディアデータのビットストリーム表現との間の変換を実行する。ステップ3704で、プロセスは、前記変換中に、規則に基づき前記ビットストリーム表現において包含又は削除される制御情報に応じて、オプティカルフローを使用した予測精緻化(PROF)を適用すべきかどうか決定する。
【0216】
これより、本明細書のいくつかの実施形態が、箇条書き形式で与えられている。
【0217】
A1.視覚メディア処理の方法であって、
視覚メディアデータのビットストリーム表現におけるアフィン適応動きベクトル分解(AMVR)技術に関する制御情報に応じて、前記視覚メディアデータに対して前記アフィンAMVR技術を使用すべきかどうかを決定するステップであり、前記制御情報は、規則に基づき前記ビットストリーム表現において包含又は削除される、前記決定するステップと、
前記視覚メディアデータと該視覚メディアデータの前記ビットストリーム表現との間の変換を実行するステップと
を有する方法。
【0218】
A2.箇条A1に記載の方法であって、
前記規則は、
(1)アフィン予測が前記変換中に使用されるかどうか、
(2)正則AMVR技術が前記変換中に使用されるかどうか、
(3)適応動きベクトル分解に関する情報により、前記アフィンAMVR技術が有効又は無効にされることが示されるかどうか
のうちの少なくとも1つに基づき、前記制御情報が前記ビットストリーム表現において包含又は削除されることを定める、
方法。
【0219】
A3.箇条A1に記載の方法であって、
前記規則は、アフィン予測が前記変換中に使用されない場合に前記制御情報を除くことを定める、
方法。
【0220】
A4.箇条A1に記載の方法であって、
前記規則は、アフィン予測が前記変換中に使用される場合に前記制御情報を含めることを定める、
方法。
【0221】
A5.箇条A1に記載の方法であって、
前記アフィンAMVR技術の利用は、アフィン予測が使用されない場合に前記変換中に無効にされる、
方法。
【0222】
A6.箇条A2に記載の方法であって、
前記適応動きベクトル分解に関する情報は、複数のコーディング技術のための前記アフィンAMVR技術の利用を制御するために使用され、
前記複数のコーディング技術は、正則AMVR技術及びアフィンAMVR技術を有する、
方法。
【0223】
A7.箇条A2又はA6のうちいずれか1つ以上に記載の方法であって、
前記規則は、前記適応動きベクトル分解に関する情報により前記アフィンAMVR技術が無効にされることが示される場合に、前記アフィンAMVR技術に関する前記制御情報を除くことを定める、
方法。
【0224】
A8.箇条A2又はA6のうちいずれか1つ以上に記載の方法であって、
前記規則は、前記適応動きベクトル分解に関する情報により前記アフィンAMVR技術が有効にされることが示される場合に、前記アフィンAMVR技術に関する前記制御情報を含めることを定める、
方法。
【0225】
A9.箇条2又はA6~A8のうちいずれか1つ以上に記載の方法であって、
前記適応動きベクトル分解に関する情報は、シーケンスレベルで前記ビットストリーム表現においてシグナリングされる、
方法。
【0226】
A10.箇条A1~A9のうちいずれか1つ以上に記載の方法であって、
前記規則は、正則AMVR技術が前記変換中に使用される場合に、前記アフィンAMVR技術に関する前記制御情報を含めることを更に定める、
方法。
【0227】
A11.箇条A1~A9のうちいずれか1つ以上に記載の方法であって、
前記規則は、正則AMVR技術が前記変換中に適用されない場合に、前記アフィンAMVR技術に関する前記制御情報を除くことを更に定める、
方法。
【0228】
A12.箇条A5に記載の方法であって、
前記アフィンAMVR技術は、前記正則AMVR技術が前記変換中に適用されない場合に無効にされる、
方法。
【0229】
A13.箇条A1~A4のうちいずれか1つ以上に記載の方法であって、
前記制御情報は、前記変換中の複数の適応動きベクトル分解技術の使用を示す同じフィールドを含む、
方法。
【0230】
A14.箇条A1~A13のうちいずれか1つ以上に記載の方法であって、
アフィン予測が前記変換中に使用されない場合に、前記アフィンAMVR技術に関する前記制御情報を無視するステップを更に有する、
方法。
【0231】
A15.箇条A1~A14のうちいずれか1つ以上に記載の方法であって、
前記規則は、正則適応動きベクトル分解及びアフィン予測が前記変換中に使用されるか否かに基づき、前記制御情報を包含又は削除することを定める、
方法。
【0232】
A16.箇条A15に記載の方法であって、
前記規則は、前記正則適応動きベクトル分解及び前記アフィン予測のうちの少なくとも一方が前記変換中に適用されない場合に、前記制御情報を除くことを定める、
方法。
【0233】
A17.箇条A1~A16のうちいずれか1つ以上に記載の方法であって、
前記規則は、アフィン予測の利用に関連した1つ以上の基準に基づいて、前記ビットストリーム表現において前記制御情報を包含又は削除することを更に定める、
方法。
【0234】
A18.箇条A17に記載の方法であって、
前記規則は、アフィン予測の利用が無効にされる場合に、前記ビットストリーム表現において前記制御情報を除くことを定め、更には、前記ビットストリーム表現における前記制御情報の欠如は、アフィンAMVRの利用が無効にされていること推測するために使用される、
方法。
【0235】
A19.箇条A1~A18のうちいずれか1つ以上に記載の方法であって、
現在のスライス、タイルグループ、又はピクチャが前記視覚メディアデータに関連した1つ以上の先行ピクチャからのみ予測される場合に、前記制御情報は前記ビットストリーム表現において除かれる、
方法。
【0236】
A20.箇条A1~A18のうちいずれか1つ以上に記載の方法であって、
現在のスライス、タイルグループ、又はピクチャが前記視覚メディアデータに関連した1つ以上の後続ピクチャからのみ予測される場合に、前記制御情報は前記ビットストリーム表現において除かれる、
方法。
【0237】
A21.箇条A1~A18のうちいずれか1つ以上に記載の方法であって、
現在のスライス、タイルグループ、又はピクチャが前記視覚メディアデータに関連した1つ以上の後続又は先行ピクチャから予測される場合に、前記制御情報は前記ビットストリーム表現において除かれる、
方法。
【0238】
A22.箇条A1に記載の方法であって、
前記アフィンAMVR技術は、アフィン予測又は正則AMVR技術が前記変換中に使用されない場合に無効にされる、
方法。
【0239】
A23.箇条A22に記載の方法であって、
前記アフィンAMVR技術に関する前記制御情報は、アフィンAMVRが無効にされる場合には、前記ビットストリーム表現において除かれる、
方法。
【0240】
A24.箇条A1に記載の方法であって、
前記規則は、アフィン予測又は正則AMVR技術のうちの少なくとも一方が前記変換中に適用されない場合に、前記アフィンAMVR技術に関する前記制御情報を除くことを更に定める、
方法。
【0241】
A25.箇条A1に記載の方法であって、
前記規則は、アフィン予測も正則AMVR技術も前記変換中に適用されない場合に、前記アフィンAMVR技術に関する前記制御情報を除くことを更に定める、
方法。
【0242】
A26.箇条A1~A25に記載の方法であって、
前記制御情報は、シーケンス、ピクチャ、スライス、タイルグループ、タイル、現在のビデオブロックに関連したブリック、又は前記視覚メディアデータの他のビデオブロック、のうちの1つに含まれる、
方法。
【0243】
A27.箇条A26に記載の方法であって、
前記制御情報は、シーケンスパラメータセット(SPS)、復号化パラメータセット(DPS)、ビデオパラメータセット(VPS)、ピクチャパラメータセット(PPS)、ピクチャヘッダ、スライスヘッダ、又はタイルグループヘッダ、のうちの1つに含まれる、
方法。
【0244】
B1.視覚メディア処理の方法であって、
サブブロックベースの時間的動きベクトル予測(sbTMVP)技術が視覚メディアデータに適用されるか否かの決定を行うステップと、
前記決定に応答して、前記視覚メディアデータに含まれる現在のビデオブロックについてサブブロックマージ候補リストを生成するステップと、
前記サブブロックマージ候補リストを用いて、前記現在のビデオブロックと該現在のビデオブロックのビットストリーム表現との間の変換を実行するステップと
を有する方法。
【0245】
B2.箇条B1に記載の方法であって、
前記サブブロックマージ候補リスト内の候補の最大数は、前記sbTMVP技術が前記変換に適用されるか否か、又は時間動きベクトル予測(TMVP)技術が前記変換に適用されるか否か、のうちの少なくとも1つに依存する、
方法。
【0246】
B3.箇条B1に記載の方法であって、
前記サブブロックマージ候補リスト内の候補の最大数は、サブブロックベースの時間マージ候補が使用されるかどうかに依存する、
方法。
【0247】
B4.箇条B3に記載の方法であって、
前記サブブロックベースの時間マージ候補は、時間動きベクトル予測(TMVP)技術及び前記sbTMVP技術が前記変換に適用される場合に使用される、
方法。
【0248】
B5.箇条B1又はB2のうちいずれか1つ以上に記載の方法であって、
前記ビットストリーム表現内のフィールドは、前記sbTMVP技術が前記変換に適用されるか否かを明示的に示す、
方法。
【0249】
B6.箇条B5に記載の方法であって、
前記フィールドは、シーケンスレベル又はビデオパラメータセットレベル又はピクチャパラメータセットレベル又はスライスレベル又はタイルグループレベル又はピクチャヘッダレベルにある、
方法。
【0250】
B7.箇条B1に記載の方法であって、
時間動きベクトル予測(TMVP)技術がピクチャ又はスライス又はタイルグループに適用されないことを検出すると、前記sbTMVP技術は前記ピクチャ又は前記スライス又は前記タイルグループに適用されないと決定するステップを更に有する、
方法。
【0251】
B8.箇条B2に記載の方法であって、
前記サブブロックマージ候補リスト内の候補の最大数に関係がある前記ビットストリーム表現内の1つ以上のシンタックス要素は、前記sbTMVP技術が前記変換に適用されるか否かに依存する、
方法。
【0252】
B9.箇条B8に記載の方法であって、
前記sbTMVP技術が前記変換に適用されないと決定すると、前記1つ以上のシンタックス要素の値を制約するステップを更に有する、
方法。
【0253】
B10.箇条B6に記載の方法であって、
前記サブブロックマージ候補リスト内の候補の最大数に関係がある1つ以上のシンタックス要素は、前記ビットストリーム表現において選択的に包含又は削除される、
方法。
【0254】
B11.箇条B2~B10のうちいずれか1つ以上に記載の方法であって、
前記サブブロックマージ候補リスト内の候補の最大数は、0、1、又は5である、
方法。
【0255】
C1.視覚メディア処理の方法であって、
現在のビデオブロックとビットストリーム表現との間の変換中に、該変換のためのサブブロックマージ候補リストに1つ以上のデフォルトのマージ候補を付け足すステップと、
付け足された前記1つ以上のデフォルトのマージ候補を含む前記サブブロックマージ候補リストを用いて、前記変換を実行するステップと
を含む方法。
【0256】
C2.箇条C1に記載の方法であって、
デフォルト候補は、サブブロック予測タイプと関連付けられる、
方法。
【0257】
C3.箇条C2に記載の方法であって、
前記サブブロック予測タイプは、並進運動モデル又はアフィン運動モデルに基づく予測を含む、
方法。
【0258】
C4.箇条C1に記載の方法であって、
デフォルト候補は、ブロック全体予測タイプと関連付けられる、
方法。
【0259】
C5.箇条C4に記載の方法であって、
前記ブロック全体予測タイプは、並進運動モデル又はアフィン運動モデルに基づく予測を含む、
方法。
【0260】
D1.視覚メディア処理の方法であって、
ビデオの現在のビデオブロックとビットストリーム表現との間の変換中に、該変換へのサブブロックベースの時間的動きベクトル予測(sbTMVP)の適用可能性を決定するステップであり、前記ビットストリーム表現中の1つ以上のビットが前記決定に対応する、前記決定するステップと、
前記決定に基づき前記変換を実行するステップと
を有する方法。
【0261】
D2.箇条D1に記載の方法であって、
前記1つ以上のビットは、ピクチャヘッダ又はスライスヘッダ又はタイルグループヘッダに含まれる、
方法。
【0262】
D3.箇条D1~D2のうちいずれか1つ以上に記載の方法であって、
前記変換は、時間動きベクトル予測(TMVP)を使用した前記ビデオの前記変換のために使用される他の同一位置ピクチャとは異なる同一位置ピクチャをATMVPのために使用する、
方法。
【0263】
D4.箇条D1~D3のうちいずれか1つ以上に記載の方法であって、
前記1つ以上のビットは、Iスライス又はIタイルグループ又はIピクチャに含まれる、
方法。
【0264】
D5.箇条D1~D3のうちいずれか1つ以上に記載の方法であって、
前記1つ以上のビットは、sbTMVPがシーケンスレベルで適用される場合に、前記シーケンスレベルで前記ビットストリーム表現に含まれる、
方法。
【0265】
D6.箇条D1~D3のうちいずれか1つ以上に記載の方法であって、
前記1つ以上のビットは、TMVPがスライスレベル
又はタイルグループレベル又はピクチャレベルについて無効にされる場合に、前記スライスレベル又は前記タイルグループレベル又は前記ピクチャレベルで前記ビットストリーム表現において除かれる、
方法。
【0266】
D7.箇条D6に記載の方法であって、
sbTMVPは、適用不可であると決定される、
方法。
【0267】
D8.箇条D1に記載の方法であって、
TMVPは、スライス又はタイルグループ又はピクチャについて無効にされ、方法は、
前記ビットストリーム表現内の前記1つ以上のビットにかかわらず、前記スライス又は前記タイルグループ又は前記ピクチャについてsbTMVPが無効にされると推測するステップを更に有する、
方法。
【0268】
E1.視覚メディア処理の方法であって、
時間的動きベクトル予測(TMVP)ステップ又はサブブロックベースの時間的動きベクトル予測(sbTMVP)ステップに関連した条件に基づき選択的にサブブロックマージ候補リストを構成するステップと、
前記サブブロックマージ候補リストに基づき現在のビデオブロックと該現在のビデオブロックのビットストリーム表現との間の変換を実行するステップと
を有する方法。
【0269】
E2.箇条E1に記載の方法であって、
前記条件は、シーケンスパラメータセットレベル又はスライスレベル又はタイルレベル又はブリックレベルでの前記ビットストリーム表現内のフラグの存在に対応する、
方法。
【0270】
E3.箇条E1に記載の方法であって、
前記サブブロックマージ候補リストは、sbTMVPステップ及びTMVPステップが両方とも、前記現在のビデオブロックが属するピクチャ又はタイル又はタイルグループについて有効にされる場合にのみ、サブブロックベースの時間マージ候補を用いて構成される、
方法。
【0271】
E4.箇条E1に記載の方法であって、
前記サブブロックマージ候補リストは、sbTMVPステップが、前記現在のビデオブロックが属するピクチャ又はタイル又はタイルグループについて有効にされる場合にのみ、サブブロックベースの時間マージ候補を用いて構成される、
方法。
【0272】
E5.箇条E1に記載の方法であって、
前記サブブロックマージ候補リストは、前記現在のビデオブロックが属するピクチャ又はタイル又はタイルグループについてsbTMVPステップが有効にされTMVPステップが無効にされる場合にのみ、サブブロックベースの時間マージ候補を用いて構成される、方法。
【0273】
E6.箇条E1~E5のうちいずれか1つ以上に記載の方法であって、
前記ビットストリーム表現内のフラグは、サブブロックベースの時間マージ候補が前記変換中に使用されるか否かに基づき包含又は削除される、
方法。
【0274】
E7.箇条E6に記載の方法であって、
前記フラグは、sps_temporal_mvp_enabled_flag又はsps_sbtmvp_enabled_flagの少なくとも1つを有する、
方法。
【0275】
F1.視覚メディア処理の方法であって、
視覚メディアデータと該視覚メディアデータのビットストリーム表現との間の変換中に、前記視覚メディアデータに関連した同一位置参照ピクチャに関する情報を決定するステップであり、前記情報は、時間動き情報にアクセスするコーディングモードが有効にされるかどうかに基づき前記ビットストリーム表現において包含又は削除される、前記決定するステップと、
前記情報に従って前記同一位置参照ピクチャを決定するステップと、
前記同一位置参照ピクチャに基づき、前記視覚メディアデータと該視覚メディアデータの前記ビットストリーム表現との間の前記変換を実行するステップと
を有する方法。
【0276】
F2.箇条F1に記載の方法であって、
前記情報は、前記同一位置参照ピクチャ及び/又は前記同一位置参照ピクチャの参照インデックスを導出するために使用される参照ピクチャリストを示す、
方法。
【0277】
F3.箇条F1に記載の方法であって、
前記コーディングモードは、時間動きベクトル予測(TMVP)コーディング技術を有する、
方法。
【0278】
G1.視覚メディア処理の方法であって、
視覚メディアデータのビデオブロックと前記視覚メディアデータのビットストリーム表現との間の変換を実行するステップと、
前記変換中に、規則に基づき前記ビットストリーム表現において包含又は削除される制御情報に応じて、オプティカルフローを使用した予測精緻化(PROF)を適用すべきかどうか決定するステップと
を有する方法。
【0279】
G2.箇条G1に記載の方法であって、
前記規則は、アフィン予測が前記変換に適用されるか否かに基づき、前記ビットストリーム表現において前記制御情報を包含又は削除することを定める、
方法。
【0280】
G3.箇条G1~G2のうちいずれか1つ以上に記載の方法であって、
PROFの適用は、前記変換に対するアフィン予測の無効化に基づき無効にされる、
方法。
【0281】
G4.箇条G2に記載の方法であって、
前記規則は、アフィン予測が無効にされる場合に前記制御情報を除くことを更に定める、
方法。
【0282】
G5.箇条G4に記載の方法であって、
アフィン予測は無効にされ、方法は、
PROFが前記変換に対して無効にされると推測するステップを更に有する、
方法。
【0283】
G6.箇条G2に記載の方法であって、
PROFの適用は、前記ビットストリーム表現内の対応するフラグに基づき片予測のためにのみ関連付けられる、
方法。
【0284】
G7.箇条G1~G6に記載の方法であって、
前記制御情報は、シーケンス、ピクチャ、スライス、タイルグループ、タイル、現在のビデオブロックに関連したブリック、又は前記視覚メディアデータの他のビデオブロック、のうちの1つに含まれる、
方法。
【0285】
G8.箇条G7に記載の方法であって、
前記制御情報は、シーケンスパラメータセット(SPS)、復号化パラメータセット(DPS)、ビデオパラメータセット(VPS)、ピクチャパラメータセット(PPS)、ピクチャヘッダ、スライスヘッダ、又はタイルグループヘッダ、のうちの1つに含まれる、
方法。
【0286】
H1.箇条A1~G8のうちいずれか1つ以上に記載の方法であって、
前記変換は、前記現在のビデオブロックから前記ビットストリーム表現を生成することを含む、
方法。
【0287】
H2.箇条A1~G8のうちいずれか1つ以上に記載の方法であって、
前記変換は、前記ビットストリーム表現から前記現在のビデオブロックのピクセル値を生成することを含む、
方法。
【0288】
H3.箇条A1~G8のうちいずれか1つ以上に記載の方法を実装するよう構成されたプロセッサを有するビデオエンコーダ装置。
【0289】
H4.箇条A1~G8のうちいずれか1つ以上に記載の方法を実装するよう構成されたプロセッサを有するビデオデコーダ装置。
【0290】
H5.箇条A1~G8のうちいずれか1つ以上に記載の方法を実装するためのプロセッサ実行可能命令を具現するコードを記憶しているコンピュータ可読媒体。
【0291】
本明細書中、「ビデオ処理」という用語は、ビデオ符号化、ビデオ復号化、ビデオトランスコーディング、ビデオ圧縮、又はビデオ圧縮解除を指し得る。例えば、ビデオ圧縮アルゴリズムは、ビデオのピクセル表現から対応するビットストリーム表現への変換中に適用されてよく、あるいは、その逆も同様である。現在のビデオブロックのビットストリーム表現は、例えば、シンタックスによって定義されるように、ビットストリーム内の異なった場所に拡散しているか又は同一位置にあるビットに対応してよい。例えば、マクロブロックは、トランスコーディング及びコーディングされた誤差残差値に関して、ビットストリームにおけるヘッダ及び他のフィールド内のビットも用いて、エンコードされてよい。更には、変換中に、デコーダは、上記の解決法で記載されているように、決定に基づいて、いくつかのフィールドが存在又は不存在であることを知った上で、ビットストリームをパースしてよい。同様に、エンコーダは、特定のシンタックスフィールドが含まれるべきか否かを決定し、それに応じて、コーディングされた表現に対してシンタックスフィールドを含めるか又は取り除くことによって、コーディングされた表現(ビットストリーム表現)を生成してよい。開示されている技術は、サブブロックベースの動きベクトル精緻化の使用を含む技術を用いて圧縮効率を改善するためにビデオエンコーダ又はデコーダで具現され得る、ことが理解されるだろう。
【0292】
本明細書で記載されている開示された及び他の解決法、例、実施形態、方法及び機能的動作は、デジタル電子回路で、又は本明細書で開示されている構造及びそれらの構造的同等物を含むコンピュータソフトウェア、ファームウェア、若しくはハードウェアで、又はそれらの1つ以上の組み合わせで実装可能である。開示された及び他の実施形態は、1つ以上のコンピュータプログラム製品、すなわち、データ処理装置による実行のために又はデータ処理装置の動作を制御するためにコンピュータ可読媒体上にエンコードされているコンピュータプログラム命令の1つ以上のモジュール、として実装可能である。コンピュータ可読媒体は、機械により読み出し可能な記憶デバイス、機械により読み出し可能な記憶担体、メモリデバイス、機械により読み出し可能な伝搬信号をもたらす組成物、又はそれらの1つ以上の組み合わせであることができる。「データ処理装置」との用語は、例として、プログラム可能なプロセッサ、コンピュータ、又は複数のプロセッサ若しくはコンピュータを含む、データを処理する全ての装置、デバイス、及び機械を包含する。装置は、ハードウェアに加えて、問題となっているコンピュータプログラムのための実行環境を作り出すコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、又はそれらの1つ以上の組み合わせを構成するコード、を含むことができる。伝搬信号は、人工的に生成された信号、例えば、機械により生成された電気、光、又は電磁気信号であり、適切なレシーバ装置への伝送のために情報をエンコードするよう生成される。
【0293】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、又はコードとしても知られる。)は、コンパイル済み又は解釈済みの言語を含む如何なる形式のプログラミング言語でも記述可能であり、それは、スタンドアロンプログラムとして又はコンピューティング環境における使用に適したモジュール、コンポーネント、サブルーチン、若しくは他のユニットとして、を含め、如何なる形式でもデプロイ可能である。コンピュータプログラムは、必ずしもファイルシステムにおけるファイルに対応しない。プログラムは、問題となっているプログラムに専用の単一のファイルで、又は複数の協調したファイル(例えば、1つ以上のモジュール、サブプログラム、又はコードの部分を保存するファイル)で、他のプログラム又はデータ(例えば、マークアップ言語文書で保存された1つ以上のスクリプト)を保持するファイルの部分において保存可能である。コンピュータプログラムは、1つのコンピュータで、あるいは、1つの場所に位置しているか、又は複数の場所にわたって分布しており、通信ネットワークによって相互接続されている複数のコンピュータで、実行されるようデプロイ可能である。
【0294】
本明細書で記載されているプロセス及び論理フローは、入力データに作用して出力を生成することによって機能を実行するよう1つ以上のコンピュータプログラムを実行する1つ以上のプログラム可能なプロセッサによって実行可能である。プロセス及び論理フローはまた、専用のロジック回路、例えば、FPGA(Field Programmable Gate Array)又はASIC(Application-Specific Integrated Circuit)によっても実行可能であり、装置は、そのようなものとしても実装可能である。
【0295】
コンピュータプログラムの実行に適したプロセッサは、例として、汎用のマイクロプロセッサ及び専用のマイクロプロセッサの両方、並びにあらゆる種類のデジタルコンピュータのいずれか1つ以上のプロセッサを含む。一般に、プロセッサは、リード・オンリー・メモリ若しくはランダム・アクセス・メモリ又はその両方から命令及びデータを受け取ることになる。コンピュータの必須の要素は、命令を実行するプロセッサと、命令及びデータを保存する1つ以上のメモリデバイスと、である。一般に、コンピュータはまた、データを保存する1つ以上の大容量記憶デバイス、例えば、磁気、光学磁気ディスク、又は光ディスクを含むか、あるいは、そのような1つ以上の大容量記憶デバイスからのデータの受信若しくはそれへのデータの転送又はその両方のために動作可能に結合されることになる。しかし、コンピュータは、そのようなデバイスを有する必要はない。コンピュータプログラム命令及びデータを保存するのに適したコンピュータ可読媒体は、例として、半導体メモリデバイス、例えば、EPROM、EEPROM、及びフラッシュメモリデバイスを含む全ての形式の不揮発性メモリ、媒体及びメモリデバイスを含む。プロセッサ及びメモリは、専用のロジック回路によって強化されるか、あるいは、それに組み込まれ得る。
【0296】
本明細書は、多数の詳細を含むが、それらは、あらゆる発明の又は請求される可能性があるものの範囲に対する限定としてではなく、むしろ、特定の発明の特定の実施形態に特有であり得る特徴の説明として解釈されるべきである。別々の実施形態に関連して本明細書に記載されている特定の特徴は、単一の実施形態と組み合わせても実装可能である。逆に、単一の実施形態に関連して記載されている様々な特徴はまた、複数の実施形態で別々に、又は何らかの適切なサブコンビネーションで実装可能である。更に、特徴は、特定の組み合わせで動作するものとして上述され、そのようなものとして最初に請求されることさえあるが、請求されている組み合わせからの1つ以上の特徴は、いくつかの場合に、その組み合わせから削除可能であり、請求されている組み合わせは、サブコンビネーション又はサブコンビネーションの変形に向けられてもよい。
【0297】
同様に、動作は、特定の順序で図面において表されているが、これは、所望の結果を達成するために、そのような動作が、示されているその特定の順序で、又は順次的な順序で実行されること、あるいは、表されている全ての動作が実行されることを求めている、と理解されるべきではない。更に、本明細書に記載されている実施形態における様々なシステムコンポーネントの分離は、全ての実施形態でそのような分離を求めている、と理解されるべきではない。
【0298】
ほんのわずかの実施及び例が説明されており、他の実施、強化及び変形は、本明細書で記載及び例示されているものに基づいて行われ得る。
図1
図2
図3
図4A
図4B
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
図29
図30
図31
図32
図33
図34
図35
図36
図37