(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-07-02
(54)【発明の名称】動きベクトルリファインメントを有する幾何学的分割モードの方法及びデバイス
(51)【国際特許分類】
H04N 19/105 20140101AFI20240625BHJP
H04N 19/13 20140101ALI20240625BHJP
H04N 19/513 20140101ALI20240625BHJP
H04N 19/139 20140101ALI20240625BHJP
H04N 19/176 20140101ALI20240625BHJP
【FI】
H04N19/105
H04N19/13
H04N19/513
H04N19/139
H04N19/176
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023577272
(86)(22)【出願日】2022-06-14
(85)【翻訳文提出日】2024-02-09
(86)【国際出願番号】 US2022033473
(87)【国際公開番号】W WO2022266128
(87)【国際公開日】2022-12-22
(32)【優先日】2021-06-14
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】521147444
【氏名又は名称】ベイジン ダージャー インターネット インフォメーション テクノロジー カンパニー リミテッド
【氏名又は名称原語表記】BEIJING DAJIA INTERNET INFORMATION TECHNOLOGY CO., LTD.
(74)【代理人】
【識別番号】100147485
【氏名又は名称】杉村 憲司
(74)【代理人】
【識別番号】230118913
【氏名又は名称】杉村 光嗣
(74)【代理人】
【識別番号】100226263
【氏名又は名称】中田 未来生
(72)【発明者】
【氏名】シュウ シャオユウ
(72)【発明者】
【氏名】チェン ウェイ
(72)【発明者】
【氏名】クオ チェウェイ
(72)【発明者】
【氏名】チュウ ホンチェン
(72)【発明者】
【氏名】ヤン ニン
(72)【発明者】
【氏名】チェン イーウェン
(72)【発明者】
【氏名】ワン シエンリン
(72)【発明者】
【氏名】ユウ ビン
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159NN21
5C159TA30
5C159TA58
5C159TB08
5C159TC12
(57)【要約】
動きベクトルリファインメント(MVR)オフセットのセット間の適応切り替えを可能にする制御変数を受信することと、符号化レベルの下でMVRオフセットのセットにおけるオフセットの大きさを2値化する符号語表間の適応切り替えを可能にする指示変数を受信することと、ビデオブロックを第1及び第2幾何学的パーティションに分割することと、前記制御変数に基づいて、1つのMVRオフセットのセットを選択することと、構文要素を受信して、前記指示変数により前記選択されたMVRオフセットのセットから前記第1及び第2幾何学的パーティションに適用される第1及び第2MVRオフセットを決定することと、前記第1及び第2幾何学的パーティションの候補リストから第1及び第2MVを取得することと、前記第1及び第2MV、並びに、前記第1及び第2MVRオフセットに基づいて、第1及び第2リファインMVを算出することと、前記第1及び第2リファインMVに基づいて、予測サンプルを取得することと、を含む、ビデオ復号化方法を提供する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
ビデオブロックに関連付けられた、複数の動きベクトルリファインメント(MVR)オフセットのセット間の適応切り替えを可能にして符号化レベルで適用される制御変数を受信することと、
前記ビデオブロックに関連付けられた、前記符号化レベルの下で前記複数のMVRオフセットのセットにおける複数のオフセットの大きさを2値化する複数の符号語表間の適応切り替えを可能にする指示変数を受信することと、
前記ビデオブロックを第1幾何学的パーティションと第2幾何学的パーティションに分割することと、
前記制御変数に基づいて、前記複数のMVRオフセットのセットから1つのMVRオフセットのセットを選択することと、
1つ以上の構文要素を受信して、前記指示変数により前記選択されたMVRオフセットのセットから前記第1及び第2幾何学的パーティションに適用される第1MVRオフセット及び第2MVRオフセットを決定することと、
前記第1幾何学的パーティション及び前記第2幾何学的パーティションの候補リストから、第1動きベクトル(MV)及び第2MVを取得することと、
前記第1及び第2MV、並びに、前記第1及び第2MVRオフセットに基づいて、第1リファインMV及び第2リファインMVを算出することと、
前記第1及び第2リファインMVに基づいて、前記ビデオブロックのための予測サンプルを取得することと、
を含む、幾何学的分割モード(GPM)でビデオブロックを復号化する方法。
【請求項2】
前記符号化レベルは、シーケンスレベル、画像レベル、符号化ツリーユニットレベル又は符号化ブロックレベルを含む、請求項1に記載の方法。
【請求項3】
前記複数のMVRオフセットのセットは、第1MVRオフセットのセットと、第2MVRオフセットのセットとを含み、
前記第2MVRオフセットのセットは、前記第1MVRオフセットのセットのオフセットの大きさ及びMVRの方向を含み、
前記複数の符号語表は、第1符号語表と第2符号語表とを含み、前記第1及び第2MVRオフセットのセットにおけるオフセットの大きさは、それぞれ前記第1及び第2符号語表を用いて2値化される、請求項1に記載の方法。
【請求項4】
前記制御変数が0に等しいと判定したことに応じて、前記第1MVRオフセットのセットを適用すると判定することと、
前記制御変数が1に等しいと判定したことに応じて、前記第2MVRオフセットのセットを適用すると判定することと、
を更に含む、請求項3に記載の方法。
【請求項5】
前記指示変数が0に等しいと判定したことに応じて、第1符号語表を適用すると判定することと、
前記指示変数が1に等しいと判定したことに応じて、第2符号語表を適用すると判定することと、
を更に含む、請求項4に記載の方法。
【請求項6】
前記第1MVRオフセットのセットは、複数のデフォルトオフセットの大きさを含み、前記複数のデフォルトオフセットの大きさは、
前記ビデオブロックから1/4画素の距離を示す第1デフォルトオフセットの大きさと、
前記ビデオブロックから1/2画素の距離を示す第2デフォルトオフセットの大きさと、
前記ビデオブロックから1画素の距離を示す第3デフォルトオフセットの大きさと、
前記ビデオブロックから2画素の距離を示す第4デフォルトオフセットの大きさと、
前記ビデオブロックから4画素の距離を示す第5デフォルトオフセットの大きさと、
前記ビデオブロックから8画素の距離を示す第6デフォルトオフセットの大きさと、
前記ビデオブロックから16画素の距離を示す第7デフォルトオフセットの大きさと、
前記ビデオブロックから32画素の距離を示す第8デフォルトオフセットの大きさと、を含み、
前記第2MVRオフセットのセットは、複数の代替オフセットの大きさを含み、前記複数の代替オフセットの大きさは、
前記ビデオブロックから1/4画素の距離を示す第1代替オフセットの大きさと、
前記ビデオブロックから1/2画素の距離を示す第2代替オフセットの大きさと、
前記ビデオブロックから1画素の距離を示す第3代替オフセットの大きさと、
前記ビデオブロックから2画素の距離を示す第4代替オフセットの大きさと、
前記ビデオブロックから3画素の距離を示す第5代替オフセットの大きさと、
前記ビデオブロックから4画素の距離を示す第6代替オフセットの大きさと、
前記ビデオブロックから6画素の距離を示す第7代替オフセットの大きさと、
前記ビデオブロックから8画素の距離を示す第8代替オフセットの大きさと、
前記ビデオブロックから16画素の距離を示す第9代替オフセットの大きさと、
を含む、請求項5に記載の方法。
【請求項7】
前記制御変数が0に等しく、前記指示変数が0に等しいと判定したことに応じて、前記第1MVRオフセットのセットを適用し、前記第1符号語表を用いて複数のデフォルトオフセットの大きさを2値化すると判定することを更に含み、
前記第1符号語表を用いて前記複数のデフォルトオフセットの大きさを2値化することは、
前記第1デフォルトオフセットの大きさを1として2値化することと、
前記第2デフォルトオフセットの大きさを10として2値化することと、
前記第3デフォルトオフセットの大きさを110として2値化することと、
前記第4デフォルトオフセットの大きさを1110として2値化することと、
前記第5デフォルトオフセットの大きさを11110として2値化することと、
前記第6デフォルトオフセットの大きさを111110として2値化することと、
前記第7デフォルトオフセットの大きさを1111110として2値化することと、
前記第8デフォルトオフセットの大きさを1111111として2値化することと、
を含む、請求項6に記載の方法。
【請求項8】
前記制御変数が0に等しく、前記指示変数が1に等しいと判定したことに応じて、前記第1MVRオフセットのセットを適用し、前記第2符号語表を用いて前記複数のデフォルトオフセットの大きさを2値化すると判定することを更に含み、
前記第2符号語表を用いて前記複数のデフォルトオフセットの大きさを2値化することは、
前記第1デフォルトオフセットの大きさを111110として2値化することと、
前記第2デフォルトオフセットの大きさを1として2値化することと、
前記第3デフォルトオフセットの大きさを10として2値化することと、
前記第4デフォルトオフセットの大きさを110として2値化することと、
前記第5デフォルトオフセットの大きさを1110として2値化することと、
前記第6デフォルトオフセットの大きさを11110として2値化することと、
前記第7デフォルトオフセットの大きさを1111110として2値化することと、
前記第8デフォルトオフセットの大きさを11111111として2値化することと、
を含む、請求項6に記載の方法。
【請求項9】
前記制御変数が1に等しく、前記指示変数が0に等しいと判定したことに応じて、前記第2MVRオフセットのセットを適用し、前記第1符号語表を用いて前記複数の代替オフセットの大きさを2値化することを更に含み、
前記第1符号語表を用いて前記複数の代替オフセットの大きさを2値化することは、
前記第1代替オフセットの大きさを1として2値化することと、
前記第2代替オフセットの大きさを10として2値化することと、
前記第3代替オフセットの大きさを110として2値化することと、
前記第4代替オフセットの大きさを1110として2値化することと、
前記第5代替オフセットの大きさを11110として2値化することと、
前記第6代替オフセットの大きさを111110として2値化することと、
前記第7代替オフセットの大きさを1111110として2値化することと、
前記第8代替オフセットの大きさを11111110として2値化することと、
前記第9代替オフセットの大きさを11111111として2値化することと、
を含む、請求項6に記載の方法。
【請求項10】
前記制御変数が1に等しく、前記指示変数が1に等しいと判定したことに応じて、前記第2MVRオフセットのセットを適用し、前記第2符号語表を用いて前記複数の代替オフセットの大きさを2値化することを更に含み、
前記第2符号語表を用いて前記複数の代替オフセットの大きさを2値化することは、
前記第1代替オフセットの大きさを111110として2値化することと、
前記第2代替オフセットの大きさを1として2値化することと、
前記第3代替オフセットの大きさを10として2値化することと、
前記第4代替オフセットの大きさを110として2値化することと、
前記第5代替オフセットの大きさを1110として2値化することと、
前記第6代替オフセットの大きさを11110として2値化することと、
前記第7代替オフセットの大きさを1111110として2値化することと、
前記第8代替オフセットの大きさを11111110として2値化することと、
前記第9代替オフセットの大きさを11111111として2値化することと、
を含む、請求項6に記載の方法。
【請求項11】
前記複数のMVRオフセットのセットは、第1MVRオフセットのセットと、第2MVRオフセットのセットとを含み、
前記第1及び第2MVRオフセットのセットにおけるオフセットの方向は、それぞれ固定長符号語を用いて2値化される、請求項1に記載の方法。
【請求項12】
1つ以上の構文要素を受信して、前記選択されたMVRオフセットのセットから前記第1及び第2幾何学的パーティションに適用される第1MVRオフセット及び第2MVRオフセットを決定することは、
前記MVRが前記第1幾何学的パーティションに適用されるか否かを示す第1幾何学的パーティション有効構文要素を受信することと、
前記幾何学的パーティション有効構文要素が1に等しいと判定したことに応じて、前記選択されたMVRオフセットのセットに基づいて決定された前記第1幾何学的パーティションの前記第1MVRオフセットの方向及び大きさを示す第1方向構文要素及び第1大きさ構文要素を受信することと、
前記MVRが前記第2幾何学的パーティションに適用されるか否かを示す第2幾何学的パーティション有効構文要素を受信することと、
前記第2幾何学的パーティション有効構文要素が1に等しいと判定したことに応じて、前記選択されたMVRオフセットのセットに基づいて決定された前記第2幾何学的パーティションの前記第2MVRオフセットの方向及び大きさを示す第2方向構文要素及び第2大きさ構文要素を受信することと、
を含む、請求項1に記載の方法。
【請求項13】
前記第1幾何学的パーティション有効構文要素は、gpm_mvr_partIdx0_enable_flagを含み、
前記第1方向構文要素及び前記第1大きさ構文要素は、それぞれ、gpm_mvr_partIdx0_direction_idx及びgpm_mvr_partIdx0_distance_idxを含み、
前記第2幾何学的パーティション有効構文要素は、gpm_mvr_partIdx1_enable_flagを含み、
前記第2方向構文要素及び前記第2大きさ構文要素は、それぞれ、gpm_mvr_partIdx1_direction_idx及びgpm_mvr_partIdx1_distance_idxを含む、請求項12に記載の方法。
【請求項14】
1つ以上のプロセッサと、
前記1つ以上のプロセッサによって実行可能な命令を格納するように構成されたメモリと、を含み、
前記1つ以上のプロセッサは、前記命令の実行時に、請求項1~13のいずれか一項に記載の方法を実行するように構成される、ビデオ復号化装置。
【請求項15】
1つ以上のコンピュータプロセッサによって実行されると、前記1つ以上のコンピュータプロセッサに請求項1~13のいずれか一項に記載の方法を実行させるコンピュータ実行可能な命令を格納する、非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【関連出願の相互参照】
【0001】
本願は、2021年6月14日に提出された米国仮特許出願第63/210,484号に基づき優先権を主張し、その開示は、あらゆる目的でその全体が参照により本明細書に組み込まれる。
【技術分野】
【0002】
本開示は、ビデオ符号化復号化及び圧縮に関する。より詳細には、本開示は、角度重み付け予測(AWP)モードとしても知られる幾何学的分割モード(GPM)の符号化復号化効率を向上させる方法及び装置に関する。
【背景技術】
【0003】
ビデオデータを圧縮するためには、様々なビデオ符号化復号化技術を用いることができる。ビデオ符号化復号化は、1つ以上のビデオ符号化復号化標準に従って実行される。例えば、今日ではよく知られたいくつかのビデオ符号化復号化標準として、ISO/IEC MPEGとITU-T VECGによって共同開発された汎用ビデオ符号化復号化(VVC)、高効率ビデオ符号化復号化(HEVC、H.265又はMPEG-H Part 2としても知られる)、及び高度ビデオ符号化復号化(AVC、H.264又はMPEG-4 Part 10としても知られる)が挙げられる。AOメディアビデオ1(AV1)は、先行標準VP9の後継としてアライアンス・フォー・オープン・メディア(AOM)によって開発された。デジタルオーディオ及びデジタルビデオ圧縮標準を指すオーディオビデオ符号化復号化(AVS)は、中国のオーディオ及びビデオ符号化復号化標準ワークグループによって開発された別のビデオ圧縮標準シリーズである。既存のビデオ符号化復号化標準の多くは、例えば、ブロックベースの予測方法(例えば、インター予測、イントラ予測)を用いてビデオ又はシーケンスに存在する冗長性を削減し、変換符号化を用いて予測誤差のエネルギーを圧縮するなどのように、有名なハイブリッドビデオ符号化復号化フレームワークに基づいて構築される。ビデオ符号化復号化技術の1つの重要な目標は、ビデオ品質の劣化を回避又は最小限に抑えながら、ビデオデータを、より低いビットレートによる形式に圧縮することである。
【発明の概要】
【0004】
本開示は、ビデオ符号化復号化方法及び装置、並びに非一時的コンピュータ可読記憶媒体を提供する。
【0005】
本開示の第1態様において、GPMでビデオブロックを復号化する方法が提供される。前記方法は、前記ビデオブロックに関連付けられた、複数の動きベクトルリファインメント(MVR)オフセットのセット間の適応切り替えを可能にすることができって符号化レベルで適用される制御変数を受信することを含んでもよい。前記方法は、前記ビデオブロックに関連付けられた、前記符号化レベルの下で複数のMVRオフセットのセットにおける複数のオフセットの大きさを2値化する複数の符号語表間の適応切り替えを可能にすることができる指示変数を受信することを含んでもよい。前記方法は、前記ビデオブロックを第1幾何学的パーティションと第2幾何学的パーティションに分割することを含んでもよい。前記方法は、前記制御変数に基づいて、前記複数のMVRオフセットのセットから1つのMVRオフセットのセットを選択することを含んでもよい。前記方法は、1つ以上の構文要素を受信して、選択されたMVRオフセットのセットから前記第1及び第2幾何学的パーティションに適用される第1MVRオフセット及び第2MVRオフセットを決定することを含んでもよい。前記方法は、前記第1幾何学的パーティション及び前記第2幾何学的パーティションの候補リストから、第1動きベクトル(MV)及び第2MVを取得することを含んでもよい。前記方法は、前記第1及び第2MV、並びに、前記第1及び第2MVRオフセットに基づいて、第1リファインMV及び第2リファインMVを算出することを含んでもよい。また、前記方法は、前記第1及び第2リファインMVに基づいて、前記ビデオブロックのための予測サンプルを取得することを含んでもよい。
【0006】
本開示の第2態様において、ビデオ復号化装置が提供される。前記装置は、1つ以上のプロセッサと、非一時的コンピュータ可読記憶媒体とを含んでもよい。前記非一時的コンピュータ可読記憶媒体は、前記1つ以上のプロセッサによって実行可能な命令を格納するように構成される。前記1つ以上のプロセッサは、前記命令の実行時に、前記第1態様に係る方法を実行するように構成される。
【0007】
本開示の第3態様において、非一時的コンピュータ可読記憶媒体が提供される。前記非一時的コンピュータ可読記憶媒体は、1つ以上のコンピュータプロセッサによって実行されると、前記1つ以上のコンピュータプロセッサに前記第1態様に係る方法を実行させるコンピュータ実行可能な命令を格納してもよい。
【0008】
前述の一般的な説明と以下の詳細な説明は、いずれも単なる例であり、本開示を限定するものではないことを理解されたい。
【図面の簡単な説明】
【0009】
本明細書に組み込まれ、その一部を構成する添付図面は、本開示と一致する実施例を示しており、説明とともに、本開示の原理を説明する役割を果たす。
【0010】
【
図1】本開示の1つの実施例に係るエンコーダのブロック図である。
【
図2A】本開示の1つの実施例に係る、マルチタイプツリー構造のブロック分割を示す図である。
【
図2B】本開示の1つの実施例に係る、マルチタイプツリー構造のブロック分割を示す図である。
【
図2C】本開示の1つの実施例に係る、マルチタイプツリー構造のブロック分割を示す図である。
【
図2D】本開示の1つの実施例に係る、マルチタイプツリー構造のブロック分割を示す図である。
【
図2E】本開示の1つの実施例に係る、マルチタイプツリー構造のブロック分割を示す図である。
【
図3】本開示の1つの実施例に係るデコーダのブロック図である。
【
図4】本開示の1つの実施例に係る、許容された幾何学的分割(GPM)パーティションの図示である。
【
図5】本開示の1つの実施例に係る、単方向予測動きベクトルの選択を示す表である。
【
図6A】本開示の1つの実施例に係る動きベクトル差分(MMVD)モードの図示である。
【
図6B】本開示の1つの実施例に係るMMVDモードの図示である。
【
図7】本開示の1つの実施例に係るテンプレートマッチング(TM)アルゴリズムの図示である。
【
図8】本開示の1つの実施例に係る、GPMでビデオブロックを復号化する方法である。
【
図9】本開示の1つの実施例に係る、ユーザインターフェースに結合されたコンピューティング環境を示す図である。
【
図10】本開示のいくつかの実施例に係る、ビデオブロックの符号化及び復号化のためのシステムを示すブロック図である。
【発明を実施するための形態】
【0011】
実施形態を詳細に参照し、それらの実施例を添付図面に示す。以下の説明は、添付図面を参照し、異なる図面中の同じ番号は、特に示さない限り、同じ又は類似の要素を表す。実施形態の以下の説明に記載される実装形態は、本開示と一致する全ての実装形態を表すわけではない。むしろ、それらは、添付の特許請求の範囲に記載されるように、本開示に関連する態様と一致する装置及び方法の単なる例である。
【0012】
本開示で使用される用語は、特定の実施形態を説明するためだけのものであり、本開示を限定することを意図するものではない。本開示及び添付の特許請求の範囲で使用されるように、単数形「1つ」などは、文脈において別途明確に示さない限り、複数形も含むことが意図される。なお、本明細書で使用される「及び/又は」という用語は、関連する列挙された項目のうちの1つ以上の任意の又は全ての可能な組み合わせを意味し、含むことが意図される。
【0013】
なお、「第1」、「第2」、「第3」などの用語は、様々な情報を説明するために本明細書で使用され得るが、情報は、これらの用語によって限定されるべきではない。これらの用語は、情報の1つのカテゴリを別のカテゴリから区別するためにのみ使用される。例えば、本開示の範囲から逸脱することなく、第1情報を第2情報と呼ぶことができ、同様に、第2情報を第1情報と呼ぶこともできる。本明細書で使用されるように、用語「もし~ば」は、文脈に応じて、「~場合」、「~すると」又は「判定に応じて」を意味すると理解されてもよい。
【0014】
第1世代のAVS標準は、中国の国家標準「情報技術、高度なオーディオビデオ符号化復号化、第2部分:ビデオ」(AVS1として知られる)及び「情報技術、高度なオーディオビデオ符号化復号化、第16部分:ラジオテレビビデオ」(AVS+として知られる)を含む。MPEG-2標準と比較して、同じ知覚品質で約50%ビットレートを節約することができる。AVS1標準のビデオ部分は、2006年2月に中国の国家標準として公布された。第2世代のAVS標準は、主に追加のHD TVプログラムの送信を対象とした一連の中国国家標準「情報技術、効率的なマルチメディア符号化復号化」(AVS2として知られる)を含む。AVS2の符号化復号化効率は、AVS+の2倍である。2016年5月に、AVS2は、中国の国家標準として発行された。一方、AVS2標準のビデオ部分は、アプリケーションの国際標準の1つとして電気電子学会(IEEE)によって提出された。AVS3標準は、最新の国際標準HEVCの符号化復号化効率を超えることを目的とした、UHDビデオアプリケーション用の新世代のビデオ符号化復号化標準の1つである。2019年3月に、第68回のAVS会議で、HEVC標準よりも約30%のビットレートを節約するAVS3-P2ベースラインが完成した。現在、ハイパフォーマンスモデル(HPM)と呼ばれる1つの参照ソフトウェアがあり、参照ソフトウェアは、AVSグループによってメンテナンスされて、AVS3標準の参照実装形態を実証する。
【0015】
AVS3標準は、HEVCと同様に、ブロックベースのハイブリッドビデオ符号化復号化フレームワークに基づいて構築される。
【0016】
図10は、本開示のいくつかの実装形態に係る、ビデオブロックの符号化及び復号化を並列に行う例示的なシステム10を示すブロック図である。
図1に示すように、システム10は、目標装置14によって後で復号化されるビデオデータを生成して符号化するソース装置12を含む。ソース装置12及び目標装置14は、デスクトップ又はラップトップコンピュータ、タブレットコンピュータ、スマートフォン、セットトップボックス、デジタルテレビ、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む多種多様な電子デバイスのいずれかを含んでもよい。いくつかの実装形態では、ソース装置12及び目標装置14は、無線通信機能を備える。
【0017】
いくつかの実装形態では、目標装置14は、リンク16を介して、復号化される符号化されたビデオデータを受信してもよい。リンク16は、符号化されたビデオデータをソース装置12から目標装置14に移動させることが可能な任意のタイプの通信媒体又はデバイスを含んでもよい。1つの実施例では、リンク16は、ソース装置12が符号化されたビデオデータを目標装置14にリアルタイムで直接送信できるようにする通信媒体を含んでもよい。符号化されたビデオデータは、無線通信プロトコルなどの通信標準に従って変調され、目標装置14に送信されてもよい。通信媒体は、無線周波数(RF)スペクトル又は1つ以上の物理伝送線などの、任意の無線又は有線の通信媒体を含んでもよい。通信媒体は、ローカルエリアネットワーク、広域ネットワーク、又はインターネットなどのグローバルネットワークなどのパケットベースのネットワークの一部を構成してもよい。通信媒体は、ルータ、スイッチ、基地局、又はソース装置12から目標装置14への通信を容易にするのに有用であり得る任意の他の機器を含んでもよい。
【0018】
いくつかの他の実装形態では、符号化されたビデオデータは、出力インターフェース22からストレージ装置32に送信されてもよい。その後、ストレージ装置32内の符号化されたビデオデータは、入力インターフェース28を介して目標装置14からアクセスされてもよい。ストレージ装置32は、ハードドライブ、ブルーレイディスク、デジタルバーサタイルディスク(DVD)、コンパクトディスク読み取り専用メモリ(CD-ROM)、フラッシュメモリ、揮発性又は不揮発性メモリ、又は符号化されたビデオデータを格納する任意の他の適切なデジタル記憶媒体などの、分散型又はローカルにアクセスされる様々なデータ記憶媒体のいずれかを含んでもよい。更なる実施例では、ストレージ装置32は、ソース装置12によって生成された符号化されたビデオデータを保持し得るファイルサーバ又は他の中間ストレージ装置に対応してもよい。目標装置14は、ストリーミング又はダウンロードを介して、ストレージ装置32からの格納されたビデオデータにアクセスしてもよい。ファイルサーバは、符号化されたビデオデータを格納するとともに、符号化されたビデオデータを目標装置14へ送信することが可能な任意のタイプのコンピュータであってもよい。例示的なファイルサーバは、(例えば、ウェブサイト用の)ウェブサーバ、ファイル転送プロトコル(FTP)サーバ、ネットワーク接続ストレージ(NAS)デバイス、又はローカルディスクドライブを含む。目標装置14は、ファイルサーバに格納された符号化されたビデオデータにアクセスするのに適した無線チャネル(例えば、Wi-Fi(Wireless Fidelity)接続)、有線接続(例えば、DSL(Digital Subscriber Line、デジタル加入者線)、ケーブルモデムなど)、又は両方の組み合わせを含む任意の標準データ接続を通じて、符号化されたビデオデータにアクセスしてもよい。ストレージ装置32からの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、又は両方の組み合せであってもよい。
【0019】
図10に示すように、ソース装置12は、ビデオソース18、ビデオエンコーダ20、及び出力インターフェース22を含む。ビデオソース18は、ビデオカメラ、以前にキャプチャされたビデオを含むビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するビデオフィードインターフェースなどのビデオキャプチャデバイス、及び/又は、ソースビデオとしてのコンピュータグラフィックデータを生成するコンピュータグラフィックシステムなどのソース、又は、これらのソースの組み合わせを含んでもよい。1つの実施例として、ビデオソース18がセキュリティ監視システムのビデオカメラである場合には、ソース装置12及び目標装置14は、カメラフォン又はビデオフォンを形成してもよい。しかしながら、本願で説明される実装形態は、一般にビデオ符号化復号化に適用可能であり、無線及び/又は有線のアプリケーションにも適用可能である。
【0020】
キャプチャされたビデオ、予めキャプチャされたビデオ、又はコンピュータ生成されたビデオは、ビデオエンコーダ20によって符号化されてもよい。符号化されたビデオデータは、ソース装置12の出力インターフェース22を介して、目標装置14に直接送信されてもよい。符号化されたビデオデータはまた(又は代わりに)、目標装置14又は他のデバイスによって後でアクセスされて、復号化及び/又は再生されるように、ストレージ装置32に格納されてもよい。出力インターフェース22は、モデム及び/又は送信機を更に含んでもよい。
【0021】
目標装置14は、入力インターフェース28、ビデオデコーダ30、及びディスプレイデバイス34を含む。入力インターフェース28は、受信機及び/又はモデムを含み、リンク16を介して符号化されたビデオデータを受信してもよい。リンク16を介して通信されるか又はストレージ装置32に提供される符号化されたビデオデータは、ビデオデコーダ30がビデオデータの復号化に用いる、ビデオエンコーダ20が生成した様々な構文要素を含んでもよい。そのような構文要素は、通信媒体に送信されるか、記憶媒体に格納されるか、又はファイルサーバに格納される符号化されたビデオデータ内に含まれてもよい。
【0022】
いくつかの実装形態では、目標装置14は、一体化されたディスプレイデバイス、及び目標装置14と通信するように構成された外部ディスプレイデバイスであり得るディスプレイデバイス34を含んでもよい。ディスプレイデバイス34は、復号化されたビデオデータをユーザに表示し、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、又は他のタイプのディスプレイデバイスなどの様々なディスプレイデバイスのいずれかを含んでもよい。
【0023】
ビデオエンコーダ20及びビデオデコーダ30は、例えば、VVC、HEVC、MPEG-4、Part 10、AVCなどの独自又は産業上の標準に従って動作してもよいし、それらの標準の拡張に従って動作してもよい。本願は、特定のビデオ符号化/復号化標準に限定されず、他のビデオ符号化/復号化標準にも適用可能であることを理解されたい。一般に、ソース装置12のビデオエンコーダ20は、これらの現在又は将来のいずれかの標準に従ってビデオデータを符号化するように構成されてもよいことが考えられる。同様に、目標装置14のビデオデコーダ30は、これらの現在又は将来のいずれかの標準に従ってビデオデータを復号化するように構成されてもよいことも一般に考えられる。
【0024】
ビデオエンコーダ20及びビデオデコーダ30はそれぞれ、1つ以上のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリートロジック、ソフトウェア、ハードウェア、ファームウェア、又はこれらの組み合わせなどの様々な適切なエンコーダ及び/又はデコーダ回路のいずれかとして実装されてもよい。電子デバイスは、ソフトウェアで部分的に実装される場合には、ソフトウェアの命令を適切な非一時的コンピュータ可読媒体に格納し、1つ以上のプロセッサによってハードウェアで命令を実行して、本開示で開示されるビデオ符号化/復号化動作を実行してもよい。ビデオエンコーダ20及びビデオデコーダ30のそれぞれは、1つ以上のエンコーダ又はデコーダに含まれていてもよく、いずれか一方が、各デバイス内の組み合わせたエンコーダ/デコーダ(CODEC)の一部として統合されてもよい。
【0025】
図1は、VVCのブロックベースのビデオエンコーダの一般的な図を示す。具体的には、
図1は、典型的なエンコーダ100を示す。エンコーダ100は、
図10に示すビデオエンコーダ20であってもよい。エンコーダ100は、ビデオ入力110、動き補償112、動き推定114、イントラ/インターモード決定116、ブロック予測子140、加算器128、変換130、量子化132、予測関連情報142、イントラ予測118、画像バッファ120、逆量子化134、逆変換136、加算器126、メモリ124、インループフィルタ122、エントロピー符号化138、及びビットストリーム144を含む。
【0026】
エンコーダ100では、ビデオフレームは、処理のために複数のビデオブロックに分割される。所与の各ビデオブロックに対して、インター予測アプローチ又はイントラ予測アプローチに基づいて予測が形成される。なお、「フレーム」という用語は、ビデオ符号化復号化の分野では、「画像」又は「画像」という用語の同義語として使用されてもよい。
【0027】
ビデオ入力110の一部である現在のビデオブロックと、ブロック予測子140の一部であるその予測子との間の差を表す予測残差は、加算器128から変換130に送られる。次に、変換係数は、エントロピー低減のために、変換130から量子化132に送られる。次に、量子化係数がエントロピー符号化138に供給されて、圧縮されたビデオビットストリームを生成する。
図1に示すように、ビデオブロック分割情報、動きベクトル(MV)、参照画像インデックス、及びイントラ予測モードなどのイントラ/インターモード決定116からの予測関連情報142もエントロピー符号化138によって供給され、圧縮されたビットストリーム144に保存される。圧縮されたビットストリーム144は、ビデオビットストリームを含む。
【0028】
エンコーダ100では、予測の目的で画素を再構成するために、デコーダ関連の回路も必要である。まず、逆量子化134と逆変換136によって予測残差を再構成する。この再構成された予測残差をブロック予測子140と組み合わせて、現在のビデオブロックについてフィルタ処理されていない再構成された画素を生成する。
【0029】
空間予測(又は「イントラ予測」)は、現在のビデオブロックと同じビデオフレーム内の既に符号化された隣接ブロックのサンプル(参照サンプルと呼ばれる)からの画素を使用して、現在のビデオブロックを予測する。
【0030】
時間予測(「インター予測」とも呼ばれる)は、既に符号化されたビデオ画像からの再構成された画素を使用して、現在のビデオブロックを予測する。時間予測は、ビデオ信号に固有の時間冗長性を低減する。所与の符号化ユニット(CU)又は符号化ブロックの時間予測信号は、通常、現在のCUとその時間基準との間の動きの量及び方向を示す1つ以上のMVによってシグナリングされる。また、複数の参照画像がサポートされる場合には、1つの参照画像インデックスが更に送られ、参照画像インデックスは、時間予測信号が参照画像記憶装置内のどの参照画像から来るかを特定するために使用される。
【0031】
動き推定114は、ビデオ入力110及び画像バッファ120からの信号を取り込み、動き推定信号を動き補償112に出力する。動き補償112は、ビデオ入力110、画像バッファ120からの信号、及び動き推定114からの動き推定信号を取り込み、動き補償信号をイントラ/インターモード決定116に出力する。
【0032】
空間及び/又は時間予測が実行された後、エンコーダ100のイントラ/インターモード決定116は、例えば、レート歪み最適化法に基づいて、最良の予測モードを選択する。次いで、ブロック予測子140は、現在のビデオブロックから減算され、得られた予測残差は、変換130及び量子化132により相関解除される。得られた量子化残差係数は、逆量子化134によって逆量子化され、逆変換136によって逆変換されて再構成された残差を形成し、次いで、再構成された残差は、予測ブロックに加算されて、CUの再構成された信号を形成する。デブロッキングフィルタ、サンプル適応オフセット(SAO)、及び/又は適応インループフィルタ(ALF)などの更なるインループフィルタリング122を、再構成されたCUが画像バッファ120の参照画像記憶装置に入れられ、将来のビデオブロックを符号化復号化するために使用される前に、再構成されたCUに適用することができる。出力ビデオビットストリーム144を形成するために、符号化モード(インター又はイントラ)、予測モード情報、動き情報、及び量子化残差係数は、全て、エントロピー符号化ユニット138に送られ、更に圧縮され、パックされてビットストリームを形成する。
【0033】
図1は、一般的なブロックベースのハイブリッドビデオ符号化システムのブロック図を示す。入力ビデオ信号は、(符号化ユニット(CU)と呼ばれる)ブロック毎に処理される。AVS3では、4分木のみに基づいてブロックを分割するHEVCとは異なり、1つの符号化ツリーユニット(CTU)は、4分木/2分木/3分木に基づいて、変動するローカル特性に適応するようにCUに分割される。更に、HEVCにおける多重分割ユニットタイプの概念は、除去され、即ち、CU、予測ユニット(PU)、及び変換ユニット(TU)の分離は、AVS3に存在せず、代わりに、各CUは、更なる分割なしで、予測及び変換の両方のための基本ユニットとして常に使用される。AVS3のツリー分割構造では、まず、1つのCTUは、4分木構造に基づいて分割される。次に、各4分木リーフノードは、2分木構造及び拡張4分木構造に基づいて更に分割され得る。
【0034】
図2A、
図2B、
図2C、
図2D、及び
図2Eに示すように、5つの分割タイプ、即ち、4分割、水平2分割、垂直2分割、水平拡張4分木分割、及び垂直拡張4分木分割がある。
【0035】
図2Aは、本開示に係る、マルチタイプツリー構造におけるブロックの4分割を示す図を示す。
【0036】
図2Bは、本開示に係る、マルチタイプツリー構造におけるブロックの垂直2分割を示す図を示す。
【0037】
図2Cは、本開示に係る、マルチタイプツリー構造におけるブロックの水平2分割を示す図を示す。
【0038】
図2Dは、本開示に係る、マルチタイプツリー構造におけるブロックの垂直3分割を示す図を示す。
【0039】
図2Eは、本開示に係る、マルチタイプツリー構造におけるブロック水平3分割を示す図を示す。
【0040】
図1では、空間予測及び/又は時間予測を行ってもよい。空間予測(又は「イントラ予測」)は、同じビデオ画像/スライスの既に符号化された隣接ブロックのサンプル(参照サンプルと呼ばれる)からの画素を使用して、現在のビデオブロックを予測する。空間予測は、ビデオ信号に固有の空間冗長性を低減する。時間予測(「インター予測」又は「動き補償予測」とも呼ばれる)は、既に符号化されたビデオ画像からの再構成された画素を使用して、現在のビデオブロックを予測する。時間予測は、ビデオ信号に固有の時間冗長性を低減する。所与のCUについての時間予測信号は、通常、現在のCUとその時間参照との間の動きの量及び方向を示す1つ以上の動きベクトル(MV)によってシグナリングされる。また、複数の参照画像がサポートされる場合には、1つの参照画像インデックスが更に送られ、参照画像インデックスは、時間予測信号が参照画像記憶装置内のどの参照画像から来るかを特定するために使用される。空間及び/又は時間予測の後、エンコーダのモード決定ブロックは、例えば、レート歪み最適化法に基づいて、最良の予測モードを選択する。次いで、予測ブロックは、現在のビデオブロックから減算され、予測残差は、変換を用いて相関解除されて、量子化される。量子化残差係数は、逆量子化され、逆変換されて再構成された残差を形成し、次いで、再構成された残差は、予測ブロックに再加算されて、CUの再構成された信号を形成する。更に、デブロッキングフィルタ、サンプル適応オフセット(SAO)及び適応インループフィルタ(ALF)などのインループフィルタリングを、再構成されたCUが参照画像記憶装置に入れられ、将来のビデオブロックを符号化復号化するために参照として使用される前に、再構成されたCUに適用することができる。出力ビデオビットストリームを形成するために、符号化モード(インター又はイントラ)、予測モード情報、動き情報、及び量子化残差係数は、全て、エントロピー符号化ユニットに送られ、更に圧縮され、パックされる。
【0041】
図3は、本開示のいくつかの実装形態に係る、ブロックベースのビデオデコーダを示すブロック図である。ブロックベースのビデオデコーダは、例えば、
図10に示すビデオデコーダ30であってもよい。ビデオビットストリームは、エントロピー復号化ユニット(例えば、エントロピー復号化301)において最初にエントロピー復号化される。符号化モード及び予測情報は、空間予測ユニット(イントラ符号化されている場合)(例えば、イントラ予測308)又は時間予測ユニット(インター符号化されている場合)(例えば、動き補償307)に送られて、予測ブロックを形成する。残差変換係数は、逆量子化ユニット(例えば、逆量子化302)と逆変換ユニット(例えば、逆変換303)に送られて、残差ブロックを再構成する。次に、予測ブロックと残差ブロックとが加算される(例えば、イントラ/インターモード選択309を介して、及び/又はメモリ304に格納される)。再構成されたブロックは、参照画像記憶装置(例えば、画像バッファ306)に格納される前に、インループフィルタリングを更に行うことができる。次に、参照画像記憶装置の再構成されたビデオは、将来のビデオブロックを予測するために使用されるだけでなく、ディスプレイデバイスを駆動するために送られる。
【0042】
本開示の焦点は、VVC標準とAVS3標準の両方で使用される幾何学的分割モード(GPM)の符号化復号化性能を向上させることである。AVS3では、このツールは、角度重み付け予測(AWP)としても知られており、AWPは、GPMと同じ設計精神に従うが、特定の設計の詳細にいくつかの微妙な違いがある。本開示の説明を容易にするために、以下では、VVC標準における既存のGPM設計は、GPM/AWPツールの主な態様を説明するために例として使用される。一方、VVC標準とAVS3標準の両方に適用される動きベクトル差分を有するマージモード(MMVD)と呼ばれる他の既存のインター予測技術も、本開示で提案された技術と密接に関連しているため、簡単に概説する。その後、現在のGPM/AWP設計のいくつかの欠点が特定される。最後に、提案された方法について詳細に説明する。なお、VVC標準の既存のGPM設計が本開示全体を通じて例として使用されるが、最新のビデオ符号化復号化技術の当業者にとって、提案された技術は、同じ又は同様の設計思想を有する他のGPM/AWP設計又は他の符号化ツールにも適用することができる。
【0043】
幾何学的分割モード(GPM)
VVCでは、インター予測のために、幾何学的分割モードがサポートされる。幾何学的分割モードは、1つの特別なマージモードとして、1つのCUレベルフラグによってシグナリングされる。現在のGPM設計では、8×64と64×8を除いて、幅と高さの両方が8以上64以下の可能なサイズのCU毎に、合計64個のパーティションがGPMモードによってサポートされる。
【0044】
このモードが使用される場合には、
図4に示すように、CUは、幾何学的に配置された直線によって2つの部分に分割される(説明は以下に提供される)。分割線の位置は、特定のパーティションの角度及びオフセットパラメータから数学的に導出される。CU内の幾何学的パーティションの各部分は、それぞれの動きを用いてインター予測され、パーティション毎に単方向予測のみが許容され、即ち、各部分は、1つの動きベクトルと1つの参照インデックスを有する。単方向予測動き制約は、従来の双方向予測と同様に、各CUに必要な動き補償予測が2回だけであることを保証するために適用される。現在のCUに幾何学的分割モードが使用される場合には、幾何学的パーティションの分割モードを示す幾何学的分割インデックス(角度とオフセット)及び2つのマージインデックス(各パーティションに1つ)が更にシグナリングされる。最大GPM候補サイズの数は、シーケンスレベルで明示的にシグナリングされる。
【0045】
図4は、許容されたGPMパーティションを示しており、各ピクチャの分割は、1つの同じ分割方向を有する。
【0046】
単方向予測候補リストの構築
1つの幾何学的パーティションに対する単方向予測動きベクトルを導出するために、1つの単方向予測候補リストは、通常のマージ候補リスト生成プロセスから最初に直接導出される。nは、幾何学的単方向予測候補リストにおける単方向予測動きのインデックスとして表される。n番目のマージ候補のLX動きベクトル(Xがnのパリティに等しい)は、幾何学的分割モードのn番目の単方向予測動きベクトルとして使用される。
【0047】
これらの動きベクトルは、
図5に「x」でマークされている(後述する)。n番目の拡張マージ候補の対応するLX動きベクトルが存在しない場合には、代わりに、同じ候補のL(1-X)動きベクトルが幾何学的分割モードの単方向予測動きベクトルとして使用される。
【0048】
図5は、GPMのマージ候補リストの動きベクトルからの単方向予測動きベクトルの選択を示す。
【0049】
幾何学的パーティションエッジに沿ったブレンディング
各幾何学的パーティションがそれぞれの動きを使用して取得された後、ブレンディングが2つの単方向予測信号に適用されて、幾何学的パーティションエッジの周囲のサンプルを導出する。CUの各位置のブレンディング重みは、それぞれの個別のサンプル位置から対応するパーティションエッジまでの距離に基づいて導出される。
【0050】
GPMシグナリング設計
現在のGPM設計によれば、GPMの使用は、1つのフラグをCUレベルでシグナリングすることによって示される。このフラグは、現在のCUがマージモード又はスキップモードで符号化されている場合にのみシグナリングされる。具体的には、フラグが1に等しい場合には、それは、現在のCUがGPMによって予測されていることを示す。それ以外の場合(フラグが0に等しい場合)には、CUは、通常のマージモード、動きベクトル差分を有するマージモード、組み合わせられたインター及びイントラ予測などの他のマージモードによって符号化されている。現在のCUに対してGPMが有効である場合には、適用された幾何学的分割モード(
図4に示すように、CUを2つのパーティションに分割するCU中心からの直線の方向とオフセットを指定する)を示す1つの構文要素、即ち、merge_gpm_partition_idxは、更にシグナリングされる。その後、第1及び第2GPMパーティションに使用される単方向予測マージ候補のインデックスを示す2つの構文要素merge_gpm_idx0及びmerge_gpm_idx1は、シグナリングされる。より具体的には、これらの2つの構文要素は、「単方向予測マージリストの構築」というセクションで説明したように、単方向予測マージリストから2つのGPMパーティションの単方向MVを決定するために使用される。現在のGPM設計によれば、2つの単方向MVをより異なるものにするために、2つのインデックスを同じにすることはできない。このような事前知識に基づいて、第1GPMパーティションの単方向予測マージインデックスが最初にシグナリングされて予測子として使用されて、第2GPMパーティションの単方向予測マージインデックスのシグナリングオーバーヘッドを削減する。詳細には、第2単方向予測マージインデックスが第1単方向予測マージインデックスよりも小さい場合には、その元の値がそのままシグナリングされる。それ以外の場合(第2単方向予測マージインデックスが第1単方向予測マージインデックスよりも大きい場合)には、その値は、ビットストリームにシグナリングされる前に1減算される。デコーダ側では、第1単方向予測マージインデックスは、最初に復号化される。次に、第2単方向予測マージインデックスの復号化では、解析された値が第1単方向予測マージインデックスよりも小さい場合には、第2単方向予測マージインデックスは、解析された値に等しく設定され、それ以外の場合(解析された値が第1単方向予測マージインデックス以上である場合)には、第2単方向予測マージインデックスは、解析された値に1を加えた値に等しく設定される。表1は、現在のVVC仕様でGPMモードに使用される既存の構文要素を示す。
表1 VVC仕様のマージデータ構文表における既存のGPM構文要素
【表1】
【0051】
一方、現在のGPM設計では、切り捨てられた単進コードは、2つの単方向予測マージインデックス、即ち、merge_gpm_idx0及びmerge_gpm_idx1の2値化に使用される。また、2つの単方向予測マージインデックスを同じにすることができないため、異なる最大値を使用して、2つの単方向予測マージインデックスの符号語を切り捨て、2つの単方向予測マージインデックスは、merge_gpm_idx0及びmerge_gpm_idx1に対して、それぞれMaxGPMMergeCand-1及びMaxGPMMergeCand-2に等しく設定される。MaxGPMMergeCandは、単方向予測マージリストにおける候補の数である。
【0052】
GPM/AWPモードが適用される場合には、2つの異なる2値化方法は、構文merge_gpm_partition_idxを2値ビットの列に変換するために適用される。具体的には、構文要素は、VVC標準及びAVS3標準では、それぞれ固定長コード及び切り捨てられた2値コードによって2値化される。一方、AVS3におけるAWPモードに対して、異なる最大値は、構文要素の値の2値化に使用される。具体的には、AVS3では、許容されたGPM/AWP分割モードの数は、56(即ち、merge_gpm_partition_idxの最大値が55である)であるが、VVCでは、その数は、64(即ち、merge_gpm_partition_idxの最大値が63である)に増加する。
【0053】
動きベクトル差分を有するマージモード(MMVD)
1つの現在のブロックの動き情報をその空間/時間隣接ブロックから導出する従来のマージモードに加えて、MMVD/UMVEモードは、1つの特別なマージモードとして、VVC標準とAVS標準の両方に導入される。具体的には、VVC及びAVS3の両方では、モードは、符号化ブロックレベルで1つのMMVDフラグによってシグナリングされる。MMVDモードでは、通常のマージモードのマージリスト内の最初の2つの候補は、MMVDの2つのベースマージ候補として選択される。1つのベースマージ候補が選択されてシグナリングされた後、選択されたマージ候補の動きに加算される動きベクトル差分(MVD)を示す追加の構文要素がシグナリングされる。MMVD構文要素は、ベースマージ候補を選択するためのマージ候補フラグと、MVDの大きさを指定する距離インデックスと、MVD方向を示す方向インデックスと、を含む。
【0054】
既存のMMVD設計では、距離インデックスは、始点からの所定の1セットのオフセットに基づいて定義されるMVDの大きさを指定する。
図6A及び
図6Bに示すように、オフセットは、開始MV(即ち、選択されたベースマージ候補のMV)の水平成分又は垂直成分に加算される。
【0055】
図6Aは、L0参照のMMVDモードを示す。
図6Bは、L1参照のMMVDモードを示す。
【0056】
表2は、AVS3で適用されるMVDオフセットをそれぞれ示す。
表2 AVS3で使用されたMVDオフセット
【表2】
【0057】
表3に示すように、方向インデックスは、シグナリングされたMVDのコードを特定するために用いられる。なお、MVDコードの意味は、開始MVに応じて変化し得る。開始MVが単方向予測MV、又はPOCが両方とも現在の画像のPOCよりも大きいか、両方とも現在の画像のPOCよりも小さい2つの参照画像を指すMVを有する双方向予測MVである場合には、シグナリングされたコードは、開始MVに追加されるMVDのコードである。開始MVが、一方の画像のPOCが現在の画像のPOCよりも大きく、他方の画像のPOCが現在の画像のPOCよりも小さい2つの参照画像を指す双方向予測MVである場合には、シグナリングされたコードは、L0 MVDに適用され、シグナリングされたコードの反対の値がL1 MVDに適用される。
表3 方向インデックスによって指定されたMVDコード
【表3】
【0058】
通常のインターモードの動きシグナリング
HEVC標準と同様に、マージ/スキップモードに加えて、VVC及びAVS3の両方で、1つのインターCUがビットストリームでその動き情報を明示的に指定することができる。全体として、VVCとAVS3の両方の動き情報シグナリングは、HEVC標準のものと同じに保持される。具体的には、予測信号がリストL0からのものであるか、L1からのものであるか、又はその両方からのものであるかを示す1つのインター予測構文、即ち、inter_pred_idcは、最初にシグナリングされる。使用された参照リスト毎に、対応する参照画像は、対応する参照リストの1つの参照画像インデックスref_idx_lx(x=0、1)をシグナリングすることによって特定され、対応するMVは、MV予測子(MVP)を選択するために使用される1つのMVPインデックスmvp_lx_flag(x=0、1)で表され、その後にそのターゲットMVと選択されたMVPとの間の動きベクトル差分(MVD)で表される。また、VVC標準では、1つの制御フラグmvd_l1_zero_flagは、スライスレベルでシグナリングされる。mvd_l1_zero_flagが0に等しい場合には、L1MVDは、ビットストリームでシグナリングされ、それ以外の場合(mvd_l1_zero_flagが1に等しい場合)には、L1MVDは、シグナリングされておらず、その値がエンコーダ及びデコーダで常に0と推定される。
【0059】
CUレベルの重みによる双方向予測
VVCとAVS3よりも前の標準では、重み付け予測(WP)が適用されない場合には、双方向予測信号は、2つの参照画像から取得された単方向予測信号を平均化することにより生成される。VVCでは、1回のツール符号化、即ち、CUレベルの重みによる双方向予測(BCW)が導入されて、双方向予測の効率を向上させた。具体的には、BCWにおける双方向予測は、単純な平均化の代わりに、以下のように、2つの予測信号の重み付け平均化を可能にすることにより拡張される。
【数1】
【0060】
【0061】
テンプレートマッチング
テンプレートマッチング(TM)は、現在のCUの上と左の隣接する再構成されたサンプルからなる1つのテンプレートと、参照画像内の参照ブロック(即ち、テンプレートと同じサイズ)との間の最良の一致を見つけることによって、現在のCUの動き情報をリファインするデコーダ側のMV導出方法である。
図7に示すように、1つのMVは、[-8,+8]の画素検索範囲内で現在のCUの初期動きベクトルを中心として検索される。最良の一致は、例えば、現在のテンプレートと参照テンプレートとの差分絶対値の和(SAD)、変換された差分絶対値の和(SATD)などの最小マッチングコストを達成するMVとして定義されてもよい。以下の2つの異なる方法でインター符号化復号化にTMモードを適用する。
【0062】
AMVPモードでは、MVP候補は、現在のブロックテンプレートと参照ブロックテンプレートとの差分が最小となるものをピックアップするために、テンプレートマッチングの差分に基づいて決定され、その後、TMは、MVリファインメントのためにこの特定のMVP候補に対してのみ実行される。TMは、反復的ダイヤモンド検索を使用することによって、[-8、+8]画素の検索範囲内のフル画素MVD精度(又は、4画素AMVRモードの場合には、4画素)から開始して、このMVP候補をリファインする。AMVP候補は、以下の表14に示すように、フル画素MVD精度(4画素AMVRモードの場合には、4画素)のクロス検索、続いてAMVRモードに応じたハーフ画素のクロス検索と1/4画素のクロス検索を順に行うことで、更にリファインすることができる。この検索プロセスによって、MVP候補がTMプロセスの後にもAMVRモードで示されるものと同じMV精度をすることが保証される。
表14
【表4】
【0063】
マージモードでは、マージインデックスにより示されたマージ候補に対して同様の検索方法が適用される。上記表に示すように、TMは、マージされた動き情報に応じて代替補間フィルタ(AMVRがハーフ画素モードの場合に使用される)を使用するか否かに応じて、1/8画素MVD精度まで全て行ってもよいし、ハーフ画素MVD精度を超える精度をスキップしてもよい。
【0064】
上述したように、2つのGPMパーティションの予測サンプルを生成するために使用される単方向動きは、通常のマージ候補から直接取得される。空間/時間隣接ブロックのMV間に強い相関関係がない場合には、マージ候補から導出された単方向MVは、GPMパーティションの真の動きを捕捉するには十分な精度がない可能性がある。動き推定は、より正確な動きを提供することが可能であるが、これは、任意の動きのリファインメントが既存の単方向MVの上で適用できるため、無視できないシグナリングのオーバヘッドを犠牲にする。一方、MVMDモードは、VVC標準とAVS3標準の両方で利用されており、MVDシグナリングオーバーヘッドを削減する効率的なシグナリングメカニズムの1つであることが証明されている。したがって、GPMモードとMMVDモードを組み合わせることも有利であり得る。このような組み合わせは、より正確なMVを提供して各GPMパーティションの個々の動きを捕捉することで、GPMツール全体の符号化復号化効率を向上させる可能性がある。
【0065】
前述したように、VVC標準及びAVS3標準の両方では、GPMモードは、マージ/スキップモードにのみ適用される。このような設計は、全ての非マージインターCUがGPMの柔軟な非矩形パーティションから利点を得ることができないことを考慮すると、符号化復号化効率の観点から最適ではない可能性がある。一方、上述と同様の理由により、通常のマージ/スキップモードから導出された単方向予測動き候補は、2つの幾何学的パーティションの真の動きを正確に捕捉できるとは限られない。このような分析に基づいて、GPMモードを非マージインターモード(即ち、ビットストリームでそれらの動き情報を明示的にシグナリングするCU)に合理的に拡張することで、追加の符号化復号化利得が期待できる。しかしながら、MV精度の向上は、シグナリングオーバヘッドの増加を犠牲にする。したがって、GPMモードを明示的なインターモードに効率的に適用するためには、2つの幾何学的パーティションに対してより正確なMVを提供しながら、シグナリングコストを最小化できる1つの有効なシグナリングスキームを特定することが重要となる。
【0066】
提案された方法
本開示では、各GPMパーティションに適用される既存の単方向MVの上で、更なる動きリファインメントを適用することによって、GPMの符号化復号化効率を更に向上させる方法が提案されている。提案された方法は、動きベクトルリファインメントを有する幾何学的分割モード(GPM-MVR)と呼ばれる。また、提案されたスキームでは、動きリファインメントは、既存のMMVD設計と同様の方式で、即ち、1セットの所定のMVDの大きさと動きリファインメントの方向に基づいてシグナリングされる。
【0067】
本開示の別の方面では、GPMモードを明示的なインターモードに拡張するための解決手段が提供される。説明を簡単にするために、これらのスキームは、明示的な動きシグナリングを有する幾何学的分割モード(GPM-EMS)と呼ばれる。具体的には、通常のインターモードとのより良い調和を達成するために、提案されたGPM-EMSスキームでは、既存の動きシグナリングメカニズム、即ち、MVP+MVDを利用して、2つの幾何学的パーティションの対応する単方向MVを指定する。
【0068】
個別の動きベクトルリファインメントを有する幾何学的分割モード
GPMの符号化復号化効率を向上させるために、このセクションでは、個別の動きベクトルリファインメントを有する改良された幾何学的分割モードが提案されている。具体的には、GPMパーティションが与えられた場合には、提案された方法としては、既存の構文merge_gpm_idx0及びmerge_gpm_idx1を最初に使用して、既存の単方向予測マージ候補リストから2つのGPMパーティションの単方向MVを特定し、それらをベースMVとして使用する。2つのベースMVを決定した後に、2セットの新しい構文要素を導入して、2つのGPMパーティションのベースMVの上で適用される動きリファインメントの値を個別に特定する。具体的には、GPM-MVRが第1及び第2GPMパーティションに適用されるか否かをそれぞれ示す2つのフラグ、即ち、gpm_mvr_partIdx0_enable_flag及びgpm_mvr_partIdx1_enable_flagは、最初にシグナリングされる。1つのGPMパーティションのフラグが1に等しい場合には、当該パーティションのベースMVに適用されるMVRの対応する値、即ち、MVRの大きさを指定するための1つの距離インデックス(構文要素gpm_mvr_partIdx0_distance_idx及びgpm_mvr_partIdx1_distance_idxによって示される)と、MVRの方向を指定するための1つの方向インデックス(構文要素gpm_mvr_partIdx0_direction_idx及びgpm_mvr_partIdx1_direction_idxによって示される)とは、MMVDスタイルで、シグナリングされる。表4は、提案されたGPM-MVR方法で導入される構文要素を示す。
表4 提案された、2つのGPMパーティションの個別のMVRを有するGPM-MVR方法(方法1)の構文要素
【表5】
【0069】
表4に示す提案された構文要素に基づいて、デコーダで、各GPMパーティションの単方向予測サンプルを生成するために使用される最終MVは、シグナリングされた動きベクトルリファインメントと対応するベースMVとの和に等しい。実際には、MVRの大きさと方向の異なるセットが予め定義されて、提案されたGPM-MVRスキームに適用されてもよく、これにより、動きベクトル精度とシグナリングオーバーヘッドとの間に様々なトレードオフを与えることができる。1つの具体例では、VVC標準で使用される8つのMVDオフセット(即ち、1/4画素、1/2画素、1画素、2画素、4画素、8画素、16画素及び32画素)及び4つのMVD方向(即ち、+/-x軸及び+/-y軸)を提案されたGPM-MVRスキームで再利用することが提案されている。他の実施例では、AVS3標準で使用されている既存の5つのMVDオフセット{1/4画素、1/2画素、1画素、2画素及び4画素}及び4つのMVD方向(即ち、+/-x軸及び+/-y軸)は、提案されたGPM-MVRスキームに適用される。
【0070】
「GPMシグナリング設計」というセクションで議論したように、2つのGPMパーティションに使用される単方向MVを同じにすることができないため、既存のGPM設計では、2つの単方向予測マージインデックスが異なるように強制する1つの制約が適用される。しかしながら、提案されたGPM-MVRスキームでは、既存のGPM単方向MVの上で、更なる動きリファインメントが適用される。したがって、2つのGPMパーティションのベースMVが同じであっても、2つの動きベクトルリファインメントの値が同じでなければ、2つのパーティションを予測するために使用される最終単方向MVは、異なり得る。以上の考慮に基づいて、提案されたGPM-MVRスキームが適用される場合には、(2つの単方向予測マージインデックスが異なるように制限する)制約は除去される。また、2つの単方向予測マージインデックスを同じにすることができるため、同じ最大値MaxGPMMergeCand-1は、merge_gpm_idx0とmerge_gpm_idx1の両方の2値化に使用され、MaxGPMMergeCandは、単方向予測マージリストの候補の数である。
【0071】
上で分析したように、2つのGPMパーティションの単方向予測マージインデックス(即ち、merge_gpm_idx0及びmerge_gpm_idx1)が同じである場合には、2つの動きベクトルリファインメントの値は、2つのパーティションの最終MVが異なることを保証するために、同じにすることができない。このような条件に基づいて、本開示の一実施形態では、2つのGPMパーティションの単方向予測マージインデックスが同じである(即ち、merge_gpm_idx0がmerge_gpm_idx1に等しい)場合には、第1GPMパーティションのMVRを使用して、第2GPMパーティションのMVRのシグナリングオーバーヘッドを削減するシグナリング冗長性除去方法が提案されている。1つの実施例では、以下のシグナリング条件が適用される。
【0072】
第1に、フラグgpm_mvr_partIdx0_enable_flagが0に等しい(即ち、GPM-MVRが第1GPMパーティションに適用されない)場合には、フラグgpm_mvr_partIdx1_enable_flagは、シグナリングされていないが、1と推定される(即ち、GPM-MVRが第2GPMパーティションに適用される)。
【0073】
第2に、フラグgpm_mvr_partIdx0_enable_flagとgpm_mvr_partIdx1_enable_flagの両方が1に等しく(即ち、GPM_MVRが2つのGPMパーティションに適用される)、gpm_mvr_partIdx0_direction_idxがgpm_mvr_partIdx1_direction_idxに等しい(即ち、2つのGPMパーティションのMVRは、同じ方向を有する)場合には、第1GPMパーティションのMVRの大きさ(即ち、gpm_mvr_partIdx0_distance_idx)は、第2GPMパーティションのMVRの大きさ(即ち、gpm_mvr_partIdx1_distance_idx)を予測するために使用される。具体的には、gpm_mvr_partIdx1_distance_idxがgpm_mvr_partIdx0_distance_idxよりも小さい場合には、その元の値は、直接シグナリングされる。それ以外の場合(gpm_mvr_partIdx1_distance_idxがgpm_mvr_partIdx0_distance_idxよりも大きい場合)には、その値は、ビットストリームにシグナリングされる前に1減算される。デコーダ側では、gpm_mvr_partIdx1_distance_idxの値を復号化するために、解析された値がgpm_mvr_partIdx0_distance_idxよりも小さい場合には、gpm_mvr_partIdx1_distance_idxは、解析された値に等しく設定され、それ以外の場合(解析された値がgpm_mvr_partIdx0_distance_idx以上である場合)には、gpm_mvr_partIdx1_distance_idxは、解析された値に1を加えた値に等しく設定される。このような場合には、オーバーヘッドを更に削減するために、異なる最大値MaxGPMMVRDistance-1及びMaxGPMMVRDistance-2は、gpm_mvr_partIdx0_distance_idx及びgpm_mvr_partIdx1_distance_idxの2値化に使用することができ、MaxGPMMVRDistanceは、動きベクトルリファインメントの許容される大きさの数である。
【0074】
他の実施形態では、MVRの大きさがMVRの大きさよりも前にシグナリングされるように、gpm_mvr_partIdx0_direction_idx/gpm_mvr_partIdx1_direction_idxと、gpm_mvr_partIdx0_distance_idx/gpm_mvr_partIdx1_distance_idxとのシグナリング順序を切り替えることが提案されている。このようにして、上記と同様のロジックに従って、エンコーダ/デコーダは、第1GPMパーティションのMVR方向によって、第2GPMパーティションのMVR方向のシグナリングを調整することができる。他の実施形態では、第2GPMパーティションのMVRの大きさと方向を最初にシグナリングし、それらを第2GPMパーティションのMVRの大きさと方向のシグナリングを条件にすることが提案されている。
【0075】
他の実施形態では、既存のGPM構文要素のシグナリングの前にGPM-MVRに関する構文要素をシグナリングすることが提案されている。具体的には、このような設計では、GPM-MVRが第1及び第2GPMパーティションに適用されるか否かをそれぞれ示す2つのフラグ、即ち、gpm_mvr_partIdx0_enable_flag及びgpm_mvr_partIdx1_enable_flagは、最初にシグナリングされる。1つのGPMパーティションのフラグが1に等しい場合には、距離インデックス(構文要素gpm_mvr_partIdx0_distance_idx及びgpm_mvr_partIdx1_distance_idxによって示される)と、方向インデックス(構文要素gpm_mvr_partIdx0_direction_idx及びgpm_mvr_partIdx1_distance_idx)とは、MVRの方向を指定する。その後、既存の構文merge_gpm_idx0とmerge_gpm_idx1は、2つのGPMパーティションの単方向MV、即ち、ベースMVを特定するためにシグナリングされる。表5は、提案されたGPM-MVRシグナリングスキームを示す。
表5 提案された、2つのGPMパーティションの個別のMVRを有するGPM-MVR方法(方法2)の構文要素
【表6】
【0076】
表4のシグナリング方法と同様に、表5のGPM-MVRシグナリング方法が適用される場合に、2つのGPMパーティションの予測に使用される得られたMVが同じでないことを保証するために、特定の条件が適用されてもよい。具体的には、第1と第2GPMパーティションに適用されるMVRの値に応じて、単方向予測マージインデックスmerge_gpm_idx0及びmerge_gpm_idx1のシグナリングを制約するために、以下の条件が提案されている。
【0077】
第1に、gpm_mvr_partIdx0_enable_flagとgpm_mvr_partIdx1_enable_flagの両方の値が0に等しい(即ち、GPM-MVRが2つのGPMパーティションで無効である)場合には、merge_gpm_idx0とmerge_gpm_idx1の値を同じにすることができない。
【0078】
第2に、gpm_mvr_partIdx0_enable_flagが1に等しく(即ち、GPM-MVRが第1GPMパーティションで有効である)、gpm_mvr_partIdx1_enable_flagが0に等しい(即ち、GPM-MVRが第2GPMパーティションで無効である)場合には、merge_gpm_idx0とmerge_gpm_idx1の値を同じにすることができる。
【0079】
第3に、gpm_mvr_partIdx0_enable_flagが0に等しく(即ち、GPM-MVRが第1GPMパーティションで無効である)、gpm_mvr_partIdx1_enable_flagが1に等しい(即ち、GPM-MVRが第2GPMパーティションで有効である)場合には、merge_gpm_idx0とmerge_gpm_idx1の値を同じにすることができる。
【0080】
第4に、gpm_mvr_partIdx0_enable_flagとgpm_mvr_partIdx1_enable_flagの両方の値が1に等しい(即ち、GPM_MVRが2つのGPMパーティションの両方に対して有効である)場合には、merge_gpm_idx0とmerge_gpm_idx1の値を同じにすることができるか否かについての判定は、2つのGPMパーティションに適用されるMVR(gpm_mvr_partIdx0_direction_idxとgpm_mvr_partIdx0_distance_idx、及び、gpm_mvr_partIdx1_direction_idxとgpm_mvr_partIdx1_distance_idxによって示される)の値に依存する。2つのMVRの値が等しい場合には、merge_gpm_idx0とmerge_gpm_idx1を同じにすることができない。それ以外の場合(2つのMVRの値が等しくない場合)には、merge_gpm_idx0とmerge_gpm_idx1の値を同じにすることができる。
【0081】
上記4つの場合では、merge_gpm_idx0とmerge_gpm_idx1の値を同じにすることができないとき、一方のパーティションのインデックス値は、他方のパーティションのインデックス値の予測子として使用することができる。1つの方法では、merge_gpm_idx0を最初にシグナリングし、その値を用いてmerge_gpm_idx1を予測することが提案されている。具体的には、エンコーダでは、merge_gpm_idx1がmerge_gpm_idx0よりも大きい場合には、デコーダに送られるmerge_gpm_idx1の値は1減少する。デコーダでは、受信されたmerge_gpm_idx1の値が受信されたmerge_gpm_idx0の値以上である場合には、merge_gpm_idx1の値は1増加する。他の方法では、merge_gpm_idx1を最初にシグナリングし、その値を用いてmerge_gpm_idx0を予測することが提案されている。したがって、このような場合には、エンコーダでは、merge_gpm_idx0がmerge_gpm_idx1よりも大きい場合には、デコーダに送られるmerge_gpm_idx0の値は1減少する。デコーダでは、受信されたmerge_gpm_idx0の値が受信されたmerge_gpm_idx1の値以上である場合には、merge_gpm_idx0の値は1増加する。また、既存のGPMシグナリング設計と同様に、異なる最大値MaxGPMMergeCand-1及びMaxGPMMergeCand-2は、それぞれ、シグナリング順序に応じて第1及び第2インデックス値の2値化に使用することができる。一方、2つのインデックス値に相関関係がないため、merge_gpm_idx0とmerge_gpm_idx1の値を同じにすることができるとき、同じ最大値MaxGPMMergeCand-1は、2つのインデックス値の両方の2値化に使用することができる。
【0082】
上記方法では、シグナリングコストを削減するために、異なる最大値は、merge_gpm_idx0とmerge_gpm_idx1の2値化に適用されてもよい。対応する最大値の選択は、MVRの復号化された値(gpm_mvr_partIdx0_enable、gpm_mvr_partIdx1_enable、gpm_mvr_partIdx0_direction_idx、gpm_mvr_partIdx1_direction_idx、gpm_mvr_partIdx0_distance_idx、及びgpm_mvr_partIdx1_distance_idxによって示される)に依存する。このような設計は、異なるGPM構文要素間に望ましくない解析依存性を引き起こし、これは、全体の解析に影響を与える可能性がある。このような問題を解決するために、1つの実施形態では、1つの同じ最大値(例えば、MaxGPMMergeCand-1)は、常にmerge_gpm_idx0とmerge_gpm_idx1の値を解析することに使用されることが提案されている。このような方法を用いる場合には、2つのGPMパーティションの復号化された2つのMVが同じであることを防止するために、1つのビットストリーム適合性制約を使用してもよい。他の方法では、2つのGPMパーティションの復号化されたMVを同じにすることができるように、そのような非同一性制約を除去することもできる。一方、このような方法が適用される(即ち、merge_gpm_idx0とmerge_gpm_idx1に対して同じ最大値を用いる)場合には、merge_gpm_idx0/merge_gpm_idx1と他のGPM-MVRの構文要素との間に解析依存性はない。したがって、これらの構文要素をシグナリングする順序は、もう重要ではない。1つの実施例では、merge_gpm_idx0/merge_gpm_idx1のシグナリングを、gpm_mvr_partIdx0_enable、gpm_mvr_partIdx1_enable、gpm_mvr_partIdx0_direction_idx、gpm_mvr_partIdx1_direction_idx、gpm_mvr_partIdx0_distance_idx、及びgpm_mvr_partIdx1_distance_idxのシグナリングの前に移動させることが提案されている。
【0083】
対称動きベクトルリファインメントを有する幾何学的分割モード
上記GPM-MVR方法では、2つの別個のMVR値がシグナリングされ、そのうちの1つのMVR値が1つのGPMパーティションのみのベースMVを向上させるために適用されている。このような方法は、各GPMパーティションに独立した動きリファインメントを可能とすることで、予測精度の向上に有効である。しかしながら、このような柔軟な動きリファインメントは、エンコーダからデコーダに異なる2セットのGMP-MVRの構文要素を送る必要があることを考慮すると、シグナリングオーバヘッドの増加を犠牲にする。シグナリングのオーバーヘッドを削減するために、このセクションでは、対称動きベクトルリファインメントを有する幾何学的分割モードが提案されている。具体的には、この方法では、1つのMVR値は、1つのGPM CUにシグナリングされ、かつ現在の画像と2つのGPMパーティションに関連付けられた参照画像との画像順序カウント(POC)値の対称性の関係に応じて、2つのGPMパーティションの両方に使用される。表6は、提案された方法が適用される場合の構文要素を示す。
表6 提案された、2つのGPMパーティションの対称MVRを有するGPM-MVR方法(方法1)の構文要素
【表7】
【0084】
表6に示すように、2つのGPMパーティションのベースMVが(merge_gpm_idx0とmerge_gpm_idx1に基づいて)選択された後、GPM-MVRモードが現在のGPM CUに適用されるか否かを示す1つのフラグgpm_mvr_enable_flagは、シグナリングされる。フラグが1に等しい場合には、2つのGPMパーティションのベースMVを強化するために動きリファインメントが適用されることを示す。それ以外の場合(フラグが0に等しい場合)には、2つのパーティションのいずれにも動きリファインメントが適用されないことを示す。GPM-MVRモードが有効である場合には、追加の構文要素は、方向インデックスgpm_mvr_direction_idx及び大きさインデックスgpm_mvr_distance_idxによって適用されたMVRの値を指定するために、更にシグナリングされる。また、MMVDモードと同様に、MVRコードの意味は、現在の画像のPOCとGPMパーティションの2つの参照画像との関係に応じて変化し得る。具体的には、2つの参照画像の両方のPOCが現在の画像のPOCよりも大きいか又は小さい場合には、シグナリングされたコードは、2つのベースMVの両方に追加されるMVRのコードである。それ以外の場合(一方の参照画像のPOCが現在の画像よりも大きく、かつ他方の参照画像のPOCが現在の画像よりも小さい場合)には、シグナリングされたコードは、第1GPMパーティションのMVRに適用され、逆コードは、第2GPMパーティションに適用される。表6では、merge_gpm_idx0とmerge_gpm_idx1の値を同じにすることができる。
【0085】
他の実施形態では、2つのGPMパーティションのGPM-MVRモードの有効/無効を個別に制御するために、2つの異なるフラグをシグナリングすることが提案されている。しかしながら、GPM-MVRモードが有効である場合には、1つのMVRのみは、構文要素gpm_mvr_direction_idx及びgpm_mvr_distance_idxに基づいてシグナリングされる。このようなシグナリング方法の対応する構文表は、表7に示される。
表7 提案された、2つのGPMパーティションの対称MVRを有するGPM-MVR方法(方法2)の構文要素
【表8】
【0086】
表7のシグナリング方法が適用される場合には、merge_gpm_idx0とmerge_gpm_idx1の値を同じにすることができる。しかしながら、2つのGPMパーティションに適用される得られたMVが冗長でないことを保証するために、フラグgpm_mvr_partIdx0_enable_flagが0に等しい(即ち、GPM-MVRが第1GPMパーティションに適用されない)場合には、フラグgpm_mvr_partIdx1_enable_flagは、シグナリングされていないが、1と推定される(即ち、GPM-MVRが第2GPMパーティションに適用される)。
【0087】
GPM-MVRの許容されたMVRの適応
上記GPM-MVR方法では、1つのグループの固定されたMVR値は、1つのビデオシーケンスにおいて、エンコーダとデコーダの両方でGPM CUに使用される。このような設計は、高解像度のビデオコンテンツ又は激しい動きを有するビデオコンテンツに対しては最適以下である。それらの場合には、MVが非常に大きくなる傾向にあるため、固定されたMVRの値は、それらののブロックの実際の動きを捕捉するのに最適ではない可能性がある。GPM-MVRモードの符号化復号化性能を更に向上させるために、本開示では、シーケンスレベル、画像/スライス画像、符号化ブロックグループレベルなどの様々な符号化レベルで、GPM-MVRモードによって選択可能なMVR値の適応をサポートすることが提案されている。例えば、複数のMVRセットと対応する符号語とは、異なるビデオシーケンスの特定の動き特性に応じて、オフラインで導出されてもよい。エンコーダは、最良のMVRセットを選択し、選択されたMVRセットの対応するインデックスをデコーダにシグナリングすることができる。
【0088】
本開示のいくつかの実施形態では、GPM-MVRモードに対して、8つのオフセットの大きさ(即ち、1/4画素、1/2画素、1画素、2画素、4画素、8画素、16画素、及び32画素)と4つのMVR方向(+/-x軸及び+/-y軸)を含むデフォルトMVRオフセットに加えて、以下の表で定義されている他のMVRオフセットが提案されている。表15は、提案された、第2MVRオフセットのセットにおけるオフセットの大きさを示す。表16は、提案された、第2MVRオフセットのセットにおけるMVR方向を示す。
表15
【表9】
表16
【表10】
【0089】
上記表15及び表16では、x軸及びy軸の値+1/2及び-1/2は、水平方向及び垂直方向の対角方向(+45°及び-45°)を示す。表15及び表16に示すように、既存のMVRオフセットのセットと比較して、第2MVRオフセットのセットには、2つの新しいオフセットの大きさ(即ち、3画素及び6画素)と、4つのオフセットの方向(45°、135°、225°、及び315°)とが導入される。新しく追加されたMVRオフセットにより、第2MVRオフセットのセットは、複雑な動きを有するビデオブロックを符号化するのにより適する。また、2つのMVRオフセットのセット間の適応切り替えを可能にするために、1つの制御フラグを1つの特定の符号化レベル(例えば、シーケンス、画像、スライス、CTU、符号化ブロックなど)でシグナリングして、当該符号化レベルで適用されるGPM-MVRモードにどのMVRオフセットのセットが選択されるかを示すことが提案されている。提案された適応が画像レベルで実行されると仮定すると、以下の表17は、画像ヘッダでシグナリングされた対応する構文要素を示す。
表17
【表11】
【0090】
上記表17では、新しいフラグph_gpm_mvr_offset_set_flagは、画像に使用される対応するGPM_MVRオフセットの選択を示すために使用される。フラグが0に等しい場合には、デフォルトMVRオフセット(即ち、1/4画素、1/2画素、1画素、2画素、4画素、8画素、16画素、及び32画素の大きさ、及び、4つのMVR方向+/-x軸及び+/-y軸)が画像内のGPM-MVRモードに適用されることを意味する。それ以外の場合(フラグが1に等しい場合)には、第2MVRオフセット(即ち、1/4画素、1/2画素、1画素、2画素、3画素、4画素、6画素、8画素、及び16画素の大きさ、及び、8つのMVR方向+/-x軸、+/-y軸、45°、135°、225°、及び315°)が画像内のGPM-MVRモードに適用されることを意味する。
【0091】
異なる方法でMVRオフセットをシグナリングしてもよい。まず、MVR方向が、通常、統計的に均等に分布することを考慮すると、固定長の符号語を使用してMVR方向を2値化することが提案されている。デフォルトMVRオフセットを例にとると、合計4つの方向があり、00、01、10、及び11の符号語は、4つの方向を表すために使用することができる。一方、MVRオフセットの大きさがビデオコンテンツの特定の動き特性に適応した様々な分布を有する可能性があるため、可変長の符号語を使用してMVRの大きさを2値化することが提案されている。以下の表18は、デフォルトMVRオフセットのセット及び第2MVRオフセットのセットのMVRの大きさの2値化に使用できる1つの特定の符号語表を示す。
表18
【表12】
【0092】
他の実施形態では、デフォルトMVRオフセットのセット及び第2MVRオフセットのセットのMVRオフセットの大きさを2値化するために異なる固定長の可変符号語が適用されてもよく、例えば、上記符号語表におけるビン「0」とビン「1」とは、コンテキスト適応2値算術符号化復号化(CABAC)エンジンの様々な0/1統計量に適応するために交換されてもよい。
【0093】
1つの具体例では、2つの異なる符号語表が設けられて、MVRの大きさの値を2値化する。以下の表は、第1及び第2符号語表で適用されるデフォルト及び第2MVRオフセットのセットの対応する符号語を示す。表19は、第1符号語表におけるMVRオフセットの大きさの符号語を示す。表20は、第2符号語表におけるMVRオフセットの大きさの符号語を示す。
表19
【表13】
表20
【表14】
【0094】
2つの符号語表間の適応切り替えを可能にするために、1つの指示フラグを1つの符号化レベル(例えば、シーケンス、画像、スライス、CTU、符号化ブロックなど)でシグナリングして、当該符号化レベルでMVRの大きさを2値化するためにどの符号語表が使用されるかを指定することが提案されている。提案された適応が画像レベルで実行されると仮定すると、以下の表21は、画像ヘッダでシグナリングされた対応する構文要素を示しており、新しく追加された構文要素は、斜体の太字で示されている。
表21
【表15】
【0095】
上記構文表では、新しいフラグph_gpm_mvr_step_codeword_flagは、画像のMVRの大きさの2値化に使用される対応する符号語表の選択を示すために使用される。フラグが0に等しい場合には、それは、第1符号語表が画像に適用されることを示し、それ以外の場合(即ち、フラグが1に等しい場合)には、それは、第2符号語表が画像に適用されることを示す。
【0096】
他の実施形態では、ビデオシーケンス全体の符号化/復号化中にMVRオフセットの大きさを2値化するために1つの符号語表を常に使用することが提案されている。1つの実施例では、MVRの大きさの2値化のために第1符号語表を常に使用することが提案されている。他の実施例では、MVRの大きさの2値化のために第2符号語表を常に使用することが提案されている。
【0097】
他の方法では、1つの統計ベースの2値化方法を適用して、シグナリングなしにオンザフライでMVRオフセットの大きさに対する最適な符号語を適応的に設計してもよい。最適な符号語を決定するために使用される統計量は、以前に符号化された多数の画像、スライス、及び/又は符号化ブロックについて収集されたMVRオフセットの大きさの確率分布であってもよいが、これに限定されない。符号語は、様々な周波数レベルで再決定/更新されてもよい。例えば、更新は、CUがGPM-MVRモードで符号化復号化されるたびに実行されてもよい。他の実施例では、GPM-MVRモードで符号化復号化された複数(例えば8個又は16個)のCUが存在するたびに、更新が再決定され、及び/又は、更新されてもよい。
【0098】
他の方法では、1つの新しい符号語のセットを再設計する代わりに、提案された統計ベースの方法は、より多く使用される大きさに短い符号語を割り当て、あまり使用されていない大きさに長い符号語を割り当てるために、同じ符号語のセットに基づいて、MVRの大きさの値を再順序付けするのにも使用することができる。以下の表を例にとると、統計量が画像レベルで収集されると仮定すると、「使用率」という列は、以前に符号化された画像におけるGPM-MVRの符号化ブロックによって使用される、異なるMVRオフセットの大きさの対応する割合を示す。「使用率」という列の値に応じて、同じ2値化方法(即ち、切り捨てられた単進符号語)で、エンコーダ/デコーダは、MVRの大きさの値をそれらの使用率に基づいて順位付け、その後、エンコーダ/デコーダは、最も頻繁に使用されるMVRの大きさ(即ち、1画素)に最も短い符号語(即ち、「1」)を割り当て、2番目に頻繁に使用されるMVRの大きさ(即ち、1/2画素)に2番目に短い符号語(即ち、「01」)を割り当て、…、最もまれに使用される2つのMVRの大きさ(即ち、16画素と32画素)に最も長い符号語(即ち、「0000001」と「0000000」)を割り当てることができる。したがって、このような再順序付けのスキームにより、MVRの大きさの統計量分布の動的な変化に適応するように、同じ符号語のセットを自由に再順序付けすることができる。
【表16】
【0099】
GPM-MVRレート歪み最適化のためのエンコーダスピードアップロジック
提案されたGPM-MVRスキームについて、各GPMパーティションの最適なMVRを決定するためには、エンコーダは、各GPMパーティションのレート歪みコストを複数回テストする必要があり、毎回のテストにおいて、適用されているMVRの値を変える。これにより、GPMモードの符号化復号化複雑度を大幅に増加させる可能性がある。符号化復号化複雑度の問題を解決するために、このセクションでは、以下の高速符号化復号化ロジックが提案されている。
【0100】
第1に、VVCとAVS3で適用される4分木/2分木/3分木のブロック分割構造により、1つの同じ符号化ブロックがレート歪み最適化(RDO)プロセス中にチェックでき、毎回、当該同じ符号化ブロックがそれぞれ異なる分割パスによって分割される。現在のVTM/HPMエンコーダの実装形態では、異なるブロックパーティションの組み合わせで同じCUが得られるたびに、GPM、GPM-MVRモードと、他のインター及びイントラ符号化復号化モードとが常にテストされる。一般的に言えば、異なる分割パスについて、1つのCUの隣接ブロックのみが異なる可能性があるが、これは、1つのCUが選択する最適符号化復号化モードに比較的小さい影響を与えるべきである。このような考慮に基づいて、適用されているGPM RDOの総数を削減するために、1つのCUのRDコストが初めてチェックされるときにGPMモードが選択されたか否かの決定を格納することが提案されている。その後、同じCUがRDOプロセスによって(他の分割パスによって)再びチェックされる場合には、CUに対してGPMが初めて選択された場合にのみ、GPMのRDコスト(GPM-MVRを含む)がチェックされる。1つのCUの最初のRDチェックのためにGPMが選択されなかった場合には、同じCUが他の分割パスによって得られたときにGPMのみ(GPM-MVRなし)がテストされる。他の方法では、1つのCUの最初のRDチェックのためにGPMが選択されなかった場合には、同じCUが他の分割パスによって得られたときにGPMとGPM-MVRの両方がテストされない。
【0101】
第2に、GPM-MVRモードのGPMパーティションの数を削減するために、1つのCUのRDコストが初めてチェックされるときに、RDコストが最小ではない最初のM個のGPM分割モードを維持することが提案されている。その後、同じCUがRDOプロセスによって(他の分割パスによって)再びチェックされる場合には、GPM-MVRモードについて、それらのm個のGPM分割モードのみがテストされる。
【0102】
第3に、最初のRDOプロセスでテストされるGPMパーティションの数を削減するために、各GPMパーティションについて、2つのGPMパーティションに対して異なる単方向予測マージ候補を使用するときに差分絶対値の和(SAD)を最初に算出することが提案されている。次に、1つの特定の分割モードの下での各GPMパーティションについて、最小のSAD値を有する最良の単方向予測マージ候補を選択し、2つのGPMパーティションについての最良の単方向予測マージ候補のSAD値の和に等しい当該分割モードの対応するSAD値を算出する。次に、以下のRDプロセスでは、GPM-MVRモードについて、前のステップでの最良のSAD値を有する最初のN個の分割モードのみがテストされる。
【0103】
明示的な動きシグナリングを有する幾何学的パーティション
このセクションでは、2つの単方向MVがエンコーダからデコーダに明示的にグナリングされるGPMモードを、通常のインターモードの双方向予測に拡張する複数の方法が提案されている。
【0104】
第1解決策(解決策1)では、既存の双方向予測の動きシグナリングを完全に再利用して、GPMモードの2つの単方向MVをシグナリングすることが提案されている。表8は、提案されたスキームの修正された構文表を示しており、新しく追加された構文要素は、斜体の太字で示されている。表8に示すように、この解決策では、L0及びL1の動き情報をシグナリングする全ての既存の構文要素は、2つのGPMパーティションの単方向MVをそれぞれ示すために完全に再利用される。また、L0 MVは、第1GPMパーティションに常に関連付けられ、L1 MVは、第2GPMパーティションに常に関連付けられると想定される。一方、表8では、inter_pred_idcの値がGPMフラグ(即ち、gpm_flag)の存在を条件付けるために使用できるように、インター予測構文、即ち、inter_pred_idcは、gpm_flagの前にシグナリングされる。具体的には、inter_pred_idcがPRED_BI(即ち、双方向予測)に等しく、inter_affine_flag及びsym_mvd_flagの両方が0に等しい(即ち、CUがアフィンモードでもSMVDモードでも符号化復号化されていない)場合にのみ、フラグgpm_flagは、シグナリングされる必要がある。フラグgpm_flagがシグナリングされない場合には、その値は、常に0と推定される(即ち、GPMモードが無効である)。gpm_flagが1である場合には、現在のCUに対して(合計64個のGPMパーティションのうち)選択されたGPMモードを示す他の構文要素gpm_partition_idxは、更にシグナリングされる。
表8 解決策1(オプション1)の動きシグナリングのための修正された構文表
【表17】
【0105】
他の方法では、gpm_flagの値が、他のインター構文要素が存在する必要があるか否かを判定するために使用できるように、フラグgpm_flagを他のインターシグナリング構文要素の前にシグナリングすることが提案されている。表9は、そのような方法が適用される場合の対応する構文表を示しており、新しく追加された構文要素は、斜体の太字で示されている。見て分かるように、gpm_flagが表9で最初にシグナリングされる。gpm_flagが1に等しい場合には、対応するinter_pred_idc、inter_affine_flag、及びsym_mvd_flagのシグナリングは、バイパスすることができる。その代わりに、3つの構文要素の対応する値は、それぞれPRED_BI、0、及び0と推定することができる。
表9 解決策1(オプション2)の動きシグナリングのための修正された構文表
【表18】
【0106】
表8と表9の両方では、SMVDモードは、GPMモードと組み合わせることができない。他の実施例では、現在のCUがGPMモードによって符号化復号化される場合には、SMVDモードを許容することが提案されている。このような組み合わせが許容される場合には、SMVDの同じ設計に従うことにより、2つのGPMパーティションのMVDが対称であると想定され、それにより、第1GPMパーティションのMVDのみがシグナリングされる必要があり、第2GPMパーティションのMVDが第1MVDと常に対称となる。このような方法が適用される場合には、gpm_flag上のsym_mvd_flagの対応するシグナリング条件は、削除することができる。
【0107】
以上に示すように、第1解決策では、L0 MVが第1GPMパーティションに使用され、L1 MVが第2GPMパーティションに使用されると常に想定される。このような設計は、この方法が、2つのGPMパーティションのMVが同一の予測リスト(L0又はL1)から取得されることを禁止するという意味で最適ではない可能性がある。このような問題を解決するために、表10に示すようなシグナリング設計を有する代替GPM-EMSスキームである解決策2が提案されている。表10では、新しく追加された構文要素は、斜体の太字で示されている。表10に示すように、フラグgpm_flagが最初にシグナリングされる。フラグが1に等しい(即ち、GPMが有効である)場合には、選択されたGPMモードを指定するための構文gpm_partition_idxは、シグナリングされる。次に、第1GPMパーティションのMVが由来する対応する予測リストを示す追加フラグgpm_pred_dir_flag0は、シグナリングされる。フラグgpm_pred_dir_flag0が1に等しい場合には、第1GPMパーティションのMVがL1から由来することを示し、それ以外の場合(フラグが0に等しい場合)には、第1GPMパーティションのMVがL0から由来することを示す。その後、既存の構文要素ref_idx_l0、mvp_l0_flag、及びmvd_coding()は、第1GPMパーティションの参照ピクチャインデックス、mvpインデックス、及びMVDの値をシグナリングするように利用される。一方、第1パーティションと同様に、他の構文要素gpm_pred_dir_flag1は、第2GPMパーティションの対応する予測リストを選択するように導入され、その後に、第2GPMパーティションのMVの導出に使用される既存の構文要素ref_idx_l1、mvp_l1_flag、及びmvd_coding()が導入される。
表10 解決策2の動きシグナリングのための修正された構文表
【表19】
【0108】
最後に、GPMモードが2つの単方向予測パーティション(分割エッジ上のブレンディングサンプルを除く)で構成されていることを考慮すると、提案されたGPM-EMSスキームが1つのインターCUに対して有効である場合に、双方向オプティカルフロー、デコーダ側の動きベクトルリファインメント(DMVR)、CU重みを有する双方向予測(BCW)などの、双方向予測のために特定に設計されたVVC及びAVS3のいくつかの既存の符号化ツールは、自動的にバイパスすることができる。例えば、提案されたGPM-EMSのうちの1つが1つのCUに対して有効である場合には、BCWがGPMモードに適用できないことを考慮すると、シグナリングオーバーヘッドを削減するために、対応するBCW重みをCUに対して更にシグナリングする必要はない。
【0109】
GPM-MVRとGPM-EMSとの組み合わせ
このセクションでは、幾何学的パーティションを有する1つのCUに対してGPM-MVRとGPM-EMSを組み合わせることが提案されている。具体的には、マージベースの動きシグナリング及び明示的シグナリングの一方のみが2つのGPMパーティションの単方向予測MVをシグナリングするために適用できるGPM-MVR又はGPM-EMSとは異なり、提案されたスキームでは、1)一方のパーティションがGPM-MVRベースの動きシグナリングを使用するが、他方のパーティションがGPM-EMSベースの動きシグナリングを使用すること、又は、2)2つのパーティションがGPM-MVRベースの動きシグナリングを使用すること、又は、3)2つのパーティションがGPM-EMSベースの動きシグナリングを使用することが許容される。表4のGPM-MVRシグナリング及び表10のGPM-EMSにより、提案されたGPM-MVRとGPM-EMSとの組み合わせの後の対応する構文表を表11に示す。表11では、新しく追加された構文要素は、斜体の太字で示されている。表11に示すように、2つの追加の構文要素gpm_merge_flag0及びgpm_merge_flag1がパーティション#1及び#2にそれぞれ導入され、これは、対応するパーティションがGPM-MVRベースのマージシグナリング又はGPM-EMSベースの明示的なシグナリングを使用することを指定する。フラグが1である場合には、merge_gpm_idxX、gpm_mvr_partIdxX_enabled_flag、gpm_mvr_partIdxX_direction_idx、及びgpm_mvr_partIdxX_distance_idx(X=0、1)によってGPM単方向予測動きがシグナリングされるパーティションに対して、GPM-MVRベースのシグナリングが有効であることを意味する。それ以外の場合には、フラグが0である場合には、パーティションの単方向予測動きが構文要素gpm_pred_dir_flagX、ref_idx_lX、mvp_lX_flag、及びmvd_lX(X=0、1)によりGPM-EMSの方式で明示的にシグナリングされることを意味する。
表11 提案されたGPM-MVRとGPM-EMSとの組み合わせを有するGPMモードの構文表
【表20】
【0110】
GPM-MVRとテンプレートマッチングとの組み合わせ
このセクションでは、GPM-MVRとテンプレートマッチングとを組み合わせるために、異なる解決策が提供される。
【0111】
方法1では、1つのCUがGPMモードで符号化復号化される場合には、2つのGPMパーティションに対して、対応するパーティションの単方向動きがテンプレートマッチングによって更にリファインか否かをそれそれ示す2つの別個のフラグをシグナリングすることが提案されている。フラグが有効である場合には、テンプレートは、現在のCUの左と上の隣接する再構成されたサンプルを使用して生成され、次に、パーティションの単方向動きは、「テンプレートマッチング」というセクションで説明したものと同じ手順に従って、テンプレートとその参照サンプルとの間の差分を最小限に抑えることによってリファインされる。それ以外の場合(フラグが無効である場合)には、テンプレートマッチングがパーティションに適用されず、GPM-MVRが更に適用されてもよい。表5のGPM-MVRシグナリング方法を例にとると、表12は、GPM-MVRとテンプレートマッチングを組み合わせた場合の対応する構文表を示す。表12では、新しく追加された構文要素は、斜体の太字で示されている。
表12 提案された、GPM-MVRとテンプレートマッチングとを組み合わせる方法(方法1)の構文要素
【表21】
【0112】
表12に示すように、提案されたスキームでは、動きが2つのGPMパーティションに対してリファインされるか否かをそれぞれ示す2つの追加のフラグgpm_tm_enable_flag0及びgpm_tm_enable_flag1は、最初にシグナリングされる。フラグが1である場合には、TMが1つのパーティションの単方向MVをリファインするために適用されることを示す。フラグが0である場合には、GPM_MVRがGPMパーティションに適用されるか否かを示す1つのフラグ(gpm_mvr_partIdx0_enable_flag又はgpm_mvr_partIdx1_enable_flag)は、更にシグナリングされる。1つのGPMパーティションのフラグが1に等しい場合には、距離インデックス(構文要素gpm_mvr_partIdx0_distance_idx及びgpm_mvr_partIdx1_distance_idxによって示される)と、方向インデックス(構文要素gpm_mvr_partIdx0_direction_idx及びgpm_mvr_partIdx1_distance_idx)とは、MVRの大きさを指定する。その後、2つのGPMパーティションの単方向MVを特定するための既存の構文merge_gpm_idx0とmerge_gpm_idx1は、シグナリングされる。一方、表5に適用されるシグナリング条件と同様に、2つのGPMパーティションの予測に使用される得られたMVが同じでないことを保証するために、以下の条件が適用されてもよい。
【0113】
第1に、gpm_tm_enable_flag0とgpm_tm_enable_flag1の両方の値が1に等しい場合(即ち、TMが2つのGPMパーティションの両方に対して有効である場合)には、merge_gpm_idx0とmerge_gpm_idx1の値を同じにすることができない。
【0114】
第2に、gpm_tm_enable_flag0とgpm_tm_enable_flag1の一方が1であり、他方が0である場合には、merge_gpm_idx0とmerge_gpm_idx1の値を同じにすることができる。
【0115】
それ以外の場合、即ち、gpm_tm_enable_flag0とgpm_tm_enable_flag1の両方が1に等しい場合には、第1に、gpm_mvr_partIdx0_enable_flagとgpm_mvr_partIdx1_enable_flagの両方が0に等しい(即ち、GPM-MVRが2つのGPMパーティションの両方に対して無効である)とき、merge_gpm_idx0とmerge_gpm_idx1の値を同じにすることができず、第2に、gpm_mvr_partIdx0_enable_flagが1に等しく(即ち、GPM-MVRが第1GPMパーティションに対して有効である)、gpm_mvr_partIdx1_enable_flagが0に等しい(即ち、GPM-MVRが2つのGPMパーティションに対して無効である)とき、merge_gpm_idx0とmerge_gpm_idx1の値を同じにすることができ、第3に、gpm_mvr_partIdx0_enable_flagが0に等しく(即ち、GPM-MVRが第1GPMパーティションに対して無効である)、gpm_mvr_partIdx1_enable_flagが1に等しい(即ち、GPM-MVRが第2GPMパーティションに対して有効である)とき、merge_gpm_idx0とmerge_gpm_idx1の値を同じにすることができ、第4に、gpm_mvr_partIdx0_enable_flagとgpm_mvr_partIdx1_enable_flagの両方の値が1に等しい(即ち、GPM_MVRが2つのGPMパーティションの両方に対して有効である)とき、merge_gpm_idx0とmerge_gpm_idx1の値を同じにすることができるか否かについての判定は、2つのGPMパーティションに適用されるMVR(gpm_mvr_partIdx0_direction_idxとgpm_mvr_partIdx0_distance_idx、及び、gpm_mvr_partIdx1_direction_idxとgpm_mvr_partIdx1_distance_idxによって示される)の値に依存する。2つのMVRの値が等しい場合には、merge_gpm_idx0とmerge_gpm_idx1を同じにすることができない。それ以外の場合(2つのMVRの値が等しくない場合)には、merge_gpm_idx0とmerge_gpm_idx1の値を同じにすることができる。
【0116】
上記方法1では、TMとMVRは、GPMに排他的に適用される。このようなスキームでは、TMモードのリファインMVの上で、MVRを更に適用することが禁止される。したがって、GPMの更に多くのMV候補を提供するために、TMのリファインMVの上でMVRオフセットを適用できるようにする方法2が提案されている。表13は、GPM-MVRとテンプレートマッチングを組み合わせた場合の対応する構文表を示す。表13では、新しく追加された構文要素は、斜体の太字で示されている。
表13 提案された、GPM-MVRとテンプレートマッチングとを組み合わせる方法(方法2)の構文要素
【表22】
【0117】
表13に示すように、表12とは異なり、gpm_tm_enable_flag0及びgpm_tm_enable_flag1上のgpm_mvr_partIdx0_enable_flag及びgpm_mvr_partIdx1_enable_flagのシグナリング条件が削除される。そのため、TMが1つのGPMパーティションの単方向動きをリファインするか否かに関わらず、MVリファインメントが常にGPMパーティションのMVに適用することができる。従来と同様に、2つのGPMパーティションの得られたMVが同じでないことを保証するために、以下の条件を適用する必要がある。
【0118】
第1に、gpm_tm_enable_flag0とgpm_tm_enable_flag1の一方が1であり、他方が0である場合には、merge_gpm_idx0とmerge_gpm_idx1の値を同じにすることができる。
【0119】
それ以外の場合、即ち、gpm_enable_flag0とgpm_enable_flag1の両方が1に等しいか、又は、両方のフラグが0に等しい場合には、第1に、gpm_mvr_partIdx0_enable_flagとgpm_mvr_partIdx1_enable_flagの両方が0に等しい(即ち、GPM-MVRが2つのGPMパーティションの両方に対して無効である)とき、merge_gpm_idx0とmerge_gpm_idx1の値を同じにすることができず、第2に、gpm_mvr_partIdx0_enable_flagが1に等しく(即ち、GPM-MVRが第1GPMパーティションに対して有効である)、gpm_mvr_partIdx1_enable_flagが0に等しい(即ち、GPM-MVRが第2GPMパーティションに対して無効である)とき、merge_gpm_idx0とmerge_gpm_idx1の値を同じにすることができ、第3に、gpm_mvr_partIdx0_enable_flagが0に等しく(即ち、GPM-MVRが第1GPMパーティションに対して無効である)、gpm_mvr_partIdx1_enable_flagが1に等しい(即ち、GPM-MVRが第2GPMパーティションに対して有効である)とき、merge_gpm_idx0とmerge_gpm_idx1の値を同じにすることができ、第4に、gpm_mvr_partIdx0_enable_flagとgpm_mvr_partIdx1_enable_flagの両方の値が1に等しい(即ち、GPM_MVRが2つのGPMパーティションの両方に対して有効である)とき、merge_gpm_idx0とmerge_gpm_idx1の値を同じにすることができるか否かについての判定は、2つのGPMパーティションに適用されるMVR(gpm_mvr_partIdx0_direction_idxとgpm_mvr_partIdx0_distance_idx、及び、gpm_mvr_partIdx1_direction_idxとgpm_mvr_partIdx1_distance_idxによって示される)の値に依存する。2つのMVRの値が等しい場合には、merge_gpm_idx0とmerge_gpm_idx1を同じにすることができない。それ以外の場合(2つのMVRの値が等しくない場合)には、merge_gpm_idx0とmerge_gpm_idx1の値を同じにすることができる。
【0120】
上記2つの方法では、TMが各GPMパーティションに適用されるか否かを示す2つの別個のフラグがシグナリングされる必要がある。付加されたシグナリングは、追加のオーバーヘッドにより、特に低ビットレートの場合には、全体的な符号化復号化効率を低下させる可能性がある。シグナリングオーバヘッドを削減するために、追加のシグナリングを導入する代わりに、TMベースの単方向MVをGPMモードの単方向MV候補リストに挿入する方法3が提案されている。TMベースの単方向MVは、「テンプレートマッチング」というセクションで説明したものと同じTMプロセスに従って、GPMの元の単方向MVを最初のMVとして生成される。このようなスキームにより、エンコーダからデコーダに追加の制御フラグを更にシグナリングする必要がなくなる。代わりに、デコーダは、ビットストリームから受信された対応するマージインデックス(即ち、merge_gpm_idx0及びmerge_gpm_idx1)を通じて、1つのMVがTMによってリファインされるか否かを特定することができる。異なる方法で通常のGPMのMV候補(即ち、non-TM)とTMベースのMV候補を配置し得る。1つの方法では、MV候補リストの先頭に最初にTMベースのMV候補を配置し、次に非TMベースのMV候補を配置することが提案されている。他の方法では、最初に非TMベースのMV候補を配置し、次にTMベースのMV候補を配置することが提案されている。他の方法では、TMベースのMV候補と、非TMベースのMV候補とをインターリーブ方式で配置することが提案されている。例えば、最初のN個の非TMベースの候補を配置し、次に全てのTMベースの候補を配置し、最後に残りの非TMベースの候補を配置することができる。他の実施例では、最初のN個のTMベースの候補を配置し、次に全ての非TMベースの候補を配置し、最後に残りのTMベースの候補を配置することができる。他の実施例では、非TMベースの候補とTMベースの候補とを交互に、即ち、1つの非TMベースの候補、1つのTMベースの候補などのように配置することが提案されている。
【0121】
上記方法は、特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、デジタル信号処理デバイス(DSPD)、プログラマブルロジックデバイス(PLD)、フィールドプログラマブルゲートアレイ(FPGA)、コントローラ、マイクロコントローラ、マイクロプロセッサ、又は他の電子コンポーネントを含む1つ以上の回路を含む装置を採用して実装され得る。装置は、上述の方法を実行するために、他のハードウェア又はソフトウェアコンポーネントと組み合わせて回路を採用することができる。上記で開示された各モジュール、サブモジュール、ユニット、又はサブユニットは、1つ以上の回路で少なくとも部分的に実装され得る。
【0122】
図9は、ユーザインターフェース960に結合されたコンピューティング環境(又はコンピューティングデバイス)910を示す。コンピューティング環境910は、データ処理サーバの一部とすることができる。いくつかの実施形態では、コンピューティングデバイス910は、以上に説明したような、本開示の様々な実施例に係る様々な方法又はプロセス(例えば、符号化/復号化方法又はプロセス)のいずれかを実行することができる。コンピューティング環境910は、プロセッサ920と、メモリ940と、I/Oインターフェース950とを含んでもよい。
【0123】
プロセッサ920は、典型的には、ディスプレイ、データ取得、データ通信、及び画像処理に関連する動作などの、コンピューティング環境910の全体的な動作を制御する。プロセッサ920は、上述方法のステップの全部又は一部を実行する命令を実行するための1つ以上のプロセッサを含んでもよい。また、プロセッサ920は、プロセッサ920と他のコンポーネントとの間のインタラクションを容易にする1つ以上のモジュールを含んでもよい。上記プロセッサは、中央処理装置(CPU)、マイクロプロセッサ、シングルチップマシン、GPUなどであってもよい。
【0124】
メモリ940は、コンピューティング環境910の動作をサポートするために、様々なタイプのデータを格納するように構成される。メモリ940は、所定のソフトウェア942を含んでもよい。そのようなデータの例は、コンピューティング環境910上で動作する任意のアプリケーション又は方法のための命令、ビデオデータセット、画像データなどを含む。メモリ940は、静的ランダムアクセスメモリ(SRAM)、電気的に消去可能なプログラマブル読み取り専用メモリ(EEPROM)、消去可能なプログラマブル読み取り専用メモリ(EPROM)、プログラマブル読み取り専用メモリ(PROM)、読み取り専用メモリ(ROM)、磁気メモリ、フラッシュメモリ、磁気ディスク又は光ディスクなどの任意のタイプの揮発性又は不揮発性メモリ装置、又はそれらの組み合わせを使用することによって実装され得る。
【0125】
I/Oインターフェース950は、プロセッサ920と、キーボード、クリックホイール、ボタンなどの周辺インターフェースモジュールとの間のインターフェースを提供する。ボタンは、ホームボタン、スタートスキャンボタン、及びストップスキャンボタンを含んでもよいが、これらに限定されない。I/Oインターフェース950は、エンコーダ及びデコーダに結合することができる。
【0126】
いくつかの実施形態では、上述の方法を実行するために、コンピューティング環境910内のプロセッサ920によって実行可能な、メモリ940に含まれるような複数のプログラムを含む非一時的コンピュータ可読記憶媒体も提供される。例えば、非一時的コンピュータ可読記憶媒体は、ROM、RAM、CD-ROM、磁気テープ、フロッピーディスク、光データ記憶デバイスなどであってもよい。
【0127】
非一時的コンピュータ可読記憶媒体は、1つ以上のプロセッサを有するコンピューティングデバイスによって実行される複数のプログラムを格納しており、複数のプログラムは、1つ以上のプロセッサによって実行されると、コンピューティングデバイスに上述の動き予測方法を実行させる。
【0128】
いくつかの実施形態では、コンピューティング環境910は、上記方法を実行するために、1つ以上の特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、デジタル信号処理デバイス(DSPD)、プログラマブルロジックデバイス(PLD)、フィールドプログラマブルゲートアレイ(FPGA)、グラフィカルプロセッシングユニット(GPU)、コントローラ、マイクロコントローラ、マイクロプロセッサ、又は他の電子コンポーネントを用いて実装され得る。
【0129】
図8は、本開示の一実施例に係る、GPMでビデオブロックを復号化する方法を示すフローチャートである。
【0130】
ステップ801では、プロセッサ920は、ビデオブロックに関連付けられた制御フラグを受信してもよい。制御フラグは、2値フラグ、非2値フラグなどの1つ以上のフラグを含む制御変数又は任意の他の変数であってもよい。1つ以上の実施例では、制御変数は、表17又は表21に示すように、フラグ「ph_gpm_mvr_offset_set_flag」であってもよい。
【0131】
いくつかの実施例では、制御変数は、複数のMVRオフセットのセット間の適応切り替えを可能にし、符号化レベルで適用される。
【0132】
いくつかの実施例では、符号化レベルは、シーケンスレベル、画像/スライスレベル、CTUレベル又は符号化ブロックレベルであってもよい。例えば、制御変数がエンコーダ側で画像レベルでシグナリングされる場合には、デコーダ側は、現在のビデオブロックに関連付けられた対応するMVRオフセットを選択するという目的のために、どのMVRオフセットセットを選択するかを示すための制御変数を画像レベルで対応して受信する。
【0133】
ステップ802では、プロセッサ920は、ビデオブロックに関連付けられた指示フラグを受信してもよい。指示フラグは、2値フラグ、非2値フラグなどの1つ以上のフラグを含む指示変数又は任意の他の変数であってもよい。1つ以上の実施例では、制御変数は、表21に示すように、フラグ「ph_gpm_mvr_step_codeword_flag」であってもよい。フラグ「ph_gpm_mvr_step_codeword_flag」の値は、異なる符号語表によって異なるオフセットのセットを2値化するように2値化表を切り替えることで、より高い柔軟性が得られる。
【0134】
いくつかの実施例では、指示変数は、符号化レベルの下で複数のMVRオフセットのセットにおける複数のオフセットの大きさを2値化する複数の符号語表間の適応切り替えを可能にする。
【0135】
ステップ803では、プロセッサ920は、ビデオブロックを第1幾何学的パーティションと第2幾何学的パーティションに分割してもよい。
【0136】
ステップ804では、プロセッサ920は、制御変数に基づいて、複数のMVRオフセットのセットから1つのMVRオフセットのセットを選択してもよい。
【0137】
ステップ805では、プロセッサ920は、1つ以上の構文要素を受信して、選択されたMVRオフセットのセットから第1及び第2幾何学的パーティションに適用される第1MVRオフセット及び第2MVRオフセットを決定してもよい。選択されたMVRオフセットは、制御変数によって選択された1つのMVRオフセットであってもよい。
【0138】
いくつかの実施例では、複数のMVRオフセットのセットは、第1MVRオフセットのセット及び第2MVRオフセットのセットを含んでもよい。いくつかの実施例では、第1MVRオフセットのセットは、複数のデフォルトオフセットの大きさ及び複数のデフォルトMVR方向を含む複数のデフォルトMVRオフセットを含んでもよい。いくつかの実施例では、第2MVRオフセットのセットは、複数の代替オフセットの大きさ及び複数の代替MVR方向を含む複数の代替MVRオフセットを含んでもよい。いくつかの実施例では、第2MVRオフセットのセットは、第1MVRオフセットのセットよりも多くのオフセットの大きさ及び第1MVRオフセットのセットよりも多くのMVR方向を含んでもよい。例えば、複数のデフォルトオフセットの大きさ及び複数のデフォルトMVR方向は、8つのオフセットの大きさ(例えば、1/4画素、1/2画素、1画素、2画素、4画素、8画素、16画素、及び32画素)及び4つのMVR方向(+/-x軸及び+/-y軸)を含んでもよい。複数の代替オフセットの大きさ及び複数の代替MVR方向は、表15、表16、表19及び表20に示すように、オフセット及び方向を含んでもよい。
【0139】
表15、表16、表19及び表20に示すように、代替MVRオフセットのセットは、複数のデフォルトオフセットの大きさに加えて、より多くのオフセットの大きさを含んでもよく、複数のデフォルトMVR方向に加えて、より多くのMVR方向を含んでもよい。
【0140】
いくつかの実施例では、プロセッサ920は、制御変数が0に等しいと判定したことに応じて、第1MVRオフセットのセットを適用すると判定してもよく、制御変数が1に等しいと判定したことに応じて、第2MVRオフセットのセットを適用すると判定してもよい。
【0141】
いくつかの実施例では、複数の符号語表は、第1符号語表と第2符号語表とを含み、第1及び第2MVRオフセットのセットは、
図19及び
図20に示すように、それぞれ、第1及び第2符号語表を用いて2値化される。
【0142】
表19及び表20に示すように、第1デフォルトオフセットの大きさ(例えば、1/4画素)は、ビデオブロックから1/4画素の距離を示し、第2デフォルトオフセットの大きさ(例えば、1/2画素)は、ビデオブロックから1/2画素の距離を示し、第3デフォルトオフセットの大きさ(例えば、1画素)は、ビデオブロックから1画素の距離を示し、第4デフォルトオフセットの大きさ(例えば、2画素)は、ビデオブロックから2画素の距離を示し、第5デフォルトオフセットの大きさ(例えば、4画素)は、ビデオブロックから4画素の距離を示し、第6デフォルトオフセットの大きさ(例えば、8画素)は、ビデオブロックから8画素の距離を示し、第7デフォルトオフセットの大きさ(例えば、16画素)は、ビデオブロックから16画素の距離を示し、第8デフォルトオフセットの大きさ(例えば、32画素)は、ビデオブロックから32画素の距離を示す。
【0143】
更に、表19及び表20に示すように、第1代替オフセットの大きさ(例えば、1/4画素)は、ビデオブロックから1/4画素の距離を示し、第2代替オフセットの大きさ(例えば、1/2画素)は、ビデオブロックから1/2画素の距離を示し、第3代替オフセットの大きさ(例えば、1画素)は、ビデオブロックから1画素の距離を示し、第4代替オフセットの大きさ(例えば、2画素)は、ビデオブロックから2画素の距離を示し、第5代替オフセットの大きさ(例えば、3画素)は、ビデオブロックから3画素の距離を示し、第6代替オフセットの大きさ(例えば、4画素)は、ビデオブロックから4画素の距離を示し、第7代替オフセットの大きさ(例えば、6画素)は、ビデオブロックから6画素の距離を示し、第8代替オフセットの大きさ(例えば、8画素)は、ビデオブロックから8画素の距離を示し、第9代替オフセットの大きさ(例えば、16画素)は、ビデオブロックから16画素の距離を示す。
【0144】
いくつかの実施例では、プロセッサ920は、制御変数が0に等しく、指示変数が0に等しいと判定したことに応じて、第1MVRオフセットのセットを適用し、第1符号語表を用いて複数のデフォルトオフセットの大きさを2値化することを更に判定してもよい。表19に示すように、第1デフォルトオフセットの大きさを1として2値化し、第2デフォルトオフセットの大きさを10として2値化し、第3デフォルトオフセットの大きさを110として2値化し、第4デフォルトオフセットの大きさを1110として2値化し、第5デフォルトオフセットの大きさを11110として2値化し、第6デフォルトオフセットの大きさを111110として2値化し、第7デフォルトオフセットの大きさを1111110として2値化し、第8デフォルトオフセットの大きさを1111111として2値化する。
【0145】
いくつかの実施例では、プロセッサ920は、制御変数が0に等しく、指示変数が1に等しいと判定したことに応じて、第1MVRオフセットのセットを適用し、第2符号語表を用いて複数のデフォルトオフセットの大きさを2値化することを更に判定してもよい。表20に示すように、第1デフォルトオフセットの大きさを111110として2値化し、第2デフォルトオフセットの大きさを1として2値化し、第3デフォルトオフセットの大きさを10として2値化し、第4デフォルトオフセットの大きさを110として2値化し、第5デフォルトオフセットの大きさを1110として2値化し、第6デフォルトオフセットの大きさを11110として2値化し、第7デフォルトオフセットの大きさを1111110として2値化し、第8デフォルトオフセットの大きさを1111111として2値化する。
【0146】
いくつかの実施例では、プロセッサ920は、制御変数が1に等しく、指示変数が0に等しいと判定したことに応じて、第2MVRオフセットのセットを適用し、第1符号語表を用いて複数の代替オフセットの大きさを2値化することを更に判定してもよい。表19に示すように、第1代替オフセットの大きさを1として2値化し、第2代替オフセットの大きさを10として2値化し、第3代替オフセットの大きさを110として2値化し、第4代替オフセットの大きさを1110として2値化し、第5代替オフセットの大きさを11110として2値化し、第6代替オフセットの大きさを111110として2値化し、第7代替オフセットの大きさを1111110として2値化し、第8代替オフセットの大きさを11111110として2値化し、第9代替オフセットの大きさを11111111として2値化する。
【0147】
いくつかの実施例では、プロセッサ920は、制御変数が1に等しく、指示変数が1に等しいと判定したことに応じて、第2MVRオフセットのセットを適用し、第2符号語表を用いて複数の代替オフセットの大きさを2値化することを更に判定してもよい。表20に示すように、第1代替オフセットの大きさを111110として2値化し、第2代替オフセットの大きさを1として2値化し、第3代替オフセットの大きさを10として2値化し、第4代替オフセットの大きさを110として2値化し、第5代替オフセットの大きさを1110として2値化し、第6代替オフセットの大きさを11110として2値化し、第7代替オフセットの大きさを1111110として2値化し、第8代替オフセットの大きさを11111110として2値化し、第9代替オフセットの大きさを11111111として2値化する。
【0148】
いくつかの実施例では、プロセッサは、更に、固定長符号語使用して第1及び第2MVRオフセットのセットにおけるオフセットの方向をそれぞれ2値化してもよい。
【0149】
いくつかの実施例では、プロセッサ920は、更に、MVRが第1幾何学的パーティションに適用されるか否かを示す第1幾何学的パーティション有効構文要素(例えば、gpm_mvr_partIdx0_enable_flag)を受信し、幾何学的パーティション有効構文要素が1に等しいと判定したことに応じて、選択されたMVRオフセットのセットに基づいて決定された第1幾何学的パーティションの第1MVRオフセットの方向及び大きさを示す第1方向構文要素(例えば、gpm_mvr_partIdx0_direction_idx)及び第1大きさ構文要素(例えば、gpm_mvr_partIdx0_distance_idx)を受信し、MVRが第2幾何学的パーティションに適用されるか否かを示す第2幾何学的パーティション有効構文要素(例えば、gpm_mvr_partIdx1_enable_flag)を受信し、第2幾何学的パーティション有効構文要素が1に等しいと判定したことに応じて、選択されたMVRオフセットのセットに基づいて決定された第2幾何学的パーティションの第2MVRオフセットの方向及び大きさを示す第2方向構文要素(例えば、gpm_mvr_partIdx1_direction_idx)及び第2大きさ構文要素(例えば、gpm_mvr_partIdx1_distance_idx)を受信してもよい。
【0150】
ステップ806では、プロセッサ920は、第1幾何学的パーティション及び第2幾何学的パーティションの候補リストから第1MV及び第2MVを取得してもよい。
【0151】
ステップ807では、プロセッサ920は、第1及び第2MV、並びに、第1及び第2MVRオフセットに基づいて、第1リファインMV及び第2リファインMVを算出してもよい。
【0152】
ステップ808では、プロセッサ920は、第1及び第2リファインMVに基づいて、ビデオブロックの予測サンプルを取得してもよい。
【0153】
いくつかの実施例では、GPMでビデオブロックを復号化する装置が提供される。装置は、プロセッサ920と、プロセッサによって実行可能な命令を格納するメモリ940とを含み、プロセッサは、命令の実行時に、
図8に示す方法を実行するように構成される。
【0154】
他のいくつかの実施例では、命令を格納する非一時的コンピュータ可読記憶媒体が提供される。命令がプロセッサ920によって実行されると、命令は、
図8に示す方法をプロセッサに実行させる。
【0155】
本開示の他の実施例は、本明細書に開示された本開示の明細書及び実施を考慮することにより、当業者には明らかとなるであろう。本願は、その一般的な原理に従い、本分野で既知又は慣例の範囲内にある本開示からの逸脱を含む、本開示のあらゆる変形、使用、又は適応を網羅することを意図している。明細書及び実施例は、例示としてのみ考慮されることを意図している。
【0156】
本開示は、上述した、添付の図面によって示された正確な実施例に限定されるものではなく、本開示の範囲から逸脱することなく様々な修正及び変更を行うことができることが理解されるであろう。
【手続補正書】
【提出日】2024-02-09
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ビデオブロックに関連付けられた、複数の動きベクトルリファインメント(MVR)オフセットのセット間の適応切り替えを可能にして符号化レベルで適用される制御変数を受信することと、
前記ビデオブロックに関連付けられた、前記符号化レベルの下で前記複数のMVRオフセットのセットにおける複数のオフセットの大きさを2値化する複数の符号語表間の適応切り替えを可能にする指示変数を受信することと、
前記ビデオブロックを第1幾何学的パーティションと第2幾何学的パーティションに分割することと、
前記制御変数に基づいて、前記複数のMVRオフセットのセットから1つのMVRオフセットのセットを選択することと、
1つ以上の構文要素を受信して
、前記選択されたMVRオフセットのセットから前記第1及び第2幾何学的パーティションに適用される第1MVRオフセット及び第2MVRオフセットを決定することと、
前記第1幾何学的パーティション及び前記第2幾何学的パーティションの候補リストから、第1動きベクトル(MV)及び第2MVを取得することと、
前記第1及び第2MV、並びに、前記第1及び第2MVRオフセットに基づいて、第1リファインMV及び第2リファインMVを算出することと、
前記第1及び第2リファインMVに基づいて、前記ビデオブロックのための予測サンプルを取得することと、
を含む、幾何学的分割モード(GPM)でビデオブロックを復号化する方法。
【請求項2】
前記符号化レベルは、シーケンスレベル、画像レベル、符号化ツリーユニットレベル又は符号化ブロックレベルを含む、請求項1に記載の方法。
【請求項3】
前記複数のMVRオフセットのセットは、第1MVRオフセットのセットと、第2MVRオフセットのセットとを含み、
前記第2MVRオフセットのセットは、前記第1MVRオフセットのセットのオフセット
の少なくとも1つの大き
さを含み、
前記複数の符号語表は、第1符号語表と第2符号語表とを含み、
前記第1符号語表は、前記第
1MVRオフセットのセットにおけるオフセットの大きさを
2値化するためのものであり、前記第2符号語表
は、前記第2MVRオフセットのセットにおけるオフセットの大きさを2値化
するためのものである、請求項1に記載の方法。
【請求項4】
前記制御変数が0に等しいと判定したことに応じて、前記第1MVRオフセットのセットを適用すると判定することと、
前記制御変数が1に等しいと判定したことに応じて、前記第2MVRオフセットのセットを適用すると判定することと、
を更に含む、請求項3に記載の方法。
【請求項5】
前記指示変数が0に等しいと判定したことに応じて、第1符号語表を適用すると判定することと、
前記指示変数が1に等しいと判定したことに応じて、第2符号語表を適用すると判定することと、
を更に含む、請求項4に記載の方法。
【請求項6】
前記第1MVRオフセットのセットは、複数のデフォルトオフセットの大きさを含み、前記複数のデフォルトオフセットの大きさは、
前記ビデオブロックから1/4画素の距離を示す第1デフォルトオフセットの大きさと、
前記ビデオブロックから1/2画素の距離を示す第2デフォルトオフセットの大きさと、
前記ビデオブロックから1画素の距離を示す第3デフォルトオフセットの大きさと、
前記ビデオブロックから2画素の距離を示す第4デフォルトオフセットの大きさと、
前記ビデオブロックから4画素の距離を示す第5デフォルトオフセットの大きさと、
前記ビデオブロックから8画素の距離を示す第6デフォルトオフセットの大きさと、
前記ビデオブロックから16画素の距離を示す第7デフォルトオフセットの大きさと、
前記ビデオブロックから32画素の距離を示す第8デフォルトオフセットの大きさと、を含み、
前記第2MVRオフセットのセットは、複数の代替オフセットの大きさを含み、前記複数の代替オフセットの大きさは、
前記ビデオブロックから1/4画素の距離を示す第1代替オフセットの大きさと、
前記ビデオブロックから1/2画素の距離を示す第2代替オフセットの大きさと、
前記ビデオブロックから1画素の距離を示す第3代替オフセットの大きさと、
前記ビデオブロックから2画素の距離を示す第4代替オフセットの大きさと、
前記ビデオブロックから3画素の距離を示す第5代替オフセットの大きさと、
前記ビデオブロックから4画素の距離を示す第6代替オフセットの大きさと、
前記ビデオブロックから6画素の距離を示す第7代替オフセットの大きさと、
前記ビデオブロックから8画素の距離を示す第8代替オフセットの大きさと、
前記ビデオブロックから16画素の距離を示す第9代替オフセットの大きさと、
を含む、請求項5に記載の方法。
【請求項7】
前記制御変数が0に等しく、前記指示変数が0に等しいと判定したことに応じて、前記第1MVRオフセットのセットを適用し、前記第1符号語表を用いて
前記複数のデフォルトオフセットの大きさを2値化すると判定することを更に含み、
前記第1符号語表を用いて前記複数のデフォルトオフセットの大きさを2値化することは、
前記第1デフォルトオフセットの大きさを1として2値化することと、
前記第2デフォルトオフセットの大きさを10として2値化することと、
前記第3デフォルトオフセットの大きさを110として2値化することと、
前記第4デフォルトオフセットの大きさを1110として2値化することと、
前記第5デフォルトオフセットの大きさを11110として2値化することと、
前記第6デフォルトオフセットの大きさを111110として2値化することと、
前記第7デフォルトオフセットの大きさを1111110として2値化することと、
前記第8デフォルトオフセットの大きさを1111111として2値化することと、
を含む、請求項6に記載の方法。
【請求項8】
前記制御変数が0に等しく、前記指示変数が1に等しいと判定したことに応じて、前記第1MVRオフセットのセットを適用し、前記第2符号語表を用いて前記複数のデフォルトオフセットの大きさを2値化すると判定することを更に含み、
前記第2符号語表を用いて前記複数のデフォルトオフセットの大きさを2値化することは、
前記第1デフォルトオフセットの大きさを111110として2値化することと、
前記第2デフォルトオフセットの大きさを1として2値化することと、
前記第3デフォルトオフセットの大きさを10として2値化することと、
前記第4デフォルトオフセットの大きさを110として2値化することと、
前記第5デフォルトオフセットの大きさを1110として2値化することと、
前記第6デフォルトオフセットの大きさを11110として2値化することと、
前記第7デフォルトオフセットの大きさを1111110として2値化することと、
前記第8デフォルトオフセットの大きさを11111111として2値化することと、
を含む、請求項6に記載の方法。
【請求項9】
前記制御変数が1に等しく、前記指示変数が0に等しいと判定したことに応じて、前記第2MVRオフセットのセットを適用し、前記第1符号語表を用いて前記複数の代替オフセットの大きさを2値化することを更に含み、
前記第1符号語表を用いて前記複数の代替オフセットの大きさを2値化することは、
前記第1代替オフセットの大きさを1として2値化することと、
前記第2代替オフセットの大きさを10として2値化することと、
前記第3代替オフセットの大きさを110として2値化することと、
前記第4代替オフセットの大きさを1110として2値化することと、
前記第5代替オフセットの大きさを11110として2値化することと、
前記第6代替オフセットの大きさを111110として2値化することと、
前記第7代替オフセットの大きさを1111110として2値化することと、
前記第8代替オフセットの大きさを11111110として2値化することと、
前記第9代替オフセットの大きさを11111111として2値化することと、
を含む、請求項6に記載の方法。
【請求項10】
前記制御変数が1に等しく、前記指示変数が1に等しいと判定したことに応じて、前記第2MVRオフセットのセットを適用し、前記第2符号語表を用いて前記複数の代替オフセットの大きさを2値化することを更に含み、
前記第2符号語表を用いて前記複数の代替オフセットの大きさを2値化することは、
前記第1代替オフセットの大きさを111110として2値化することと、
前記第2代替オフセットの大きさを1として2値化することと、
前記第3代替オフセットの大きさを10として2値化することと、
前記第4代替オフセットの大きさを110として2値化することと、
前記第5代替オフセットの大きさを1110として2値化することと、
前記第6代替オフセットの大きさを11110として2値化することと、
前記第7代替オフセットの大きさを1111110として2値化することと、
前記第8代替オフセットの大きさを11111110として2値化することと、
前記第9代替オフセットの大きさを11111111として2値化することと、
を含む、請求項6に記載の方法。
【請求項11】
前記複数のMVRオフセットのセットは、第1MVRオフセットのセットと、第2MVRオフセットのセットとを含み、
前記第2MVRオフセットのセットは、前記第1MVRオフセットのセットの少なくとも1つのオフセットの方向を含み、
前記第1及び第2MVRオフセットのセットにおけるオフセットの方向は、それぞれ固定長符号語を用いて2値化される、請求項1に記載の方法。
【請求項12】
1つ以上の構文要素を受信して、前記選択されたMVRオフセットのセットから前記第1及び第2幾何学的パーティションに適用される第1MVRオフセット及び第2MVRオフセットを決定することは、
前記MVRが前記第1幾何学的パーティションに適用されるか否かを示す第1幾何学的パーティション有効構文要素を受信することと、
前記
第1幾何学的パーティション有効構文要素が1に等しいと判定したことに応じて、前記選択されたMVRオフセットのセットに基づいて決定された前記第1幾何学的パーティションの前記第1MVRオフセットの
オフセット方向及び
オフセット大きさを示す第1方向構文要素及び第1大きさ構文要素を受信することと、
前記MVRが前記第2幾何学的パーティションに適用されるか否かを示す第2幾何学的パーティション有効構文要素を受信することと、
前記第2幾何学的パーティション有効構文要素が1に等しいと判定したことに応じて、前記選択されたMVRオフセットのセットに基づいて決定された前記第2幾何学的パーティションの前記第2MVRオフセットの
オフセット方向及び
オフセット大きさを示す第2方向構文要素及び第2大きさ構文要素を受信することと、
を含む、請求項1に記載の方法。
【請求項13】
前記第1幾何学的パーティション有効構文要素は、gpm_mvr_partIdx0_enable_flagを含み、
前記第1方向構文要素及び前記第1大きさ構文要素は、それぞれ、gpm_mvr_partIdx0_direction_idx及びgpm_mvr_partIdx0_distance_idxを含み、
前記第2幾何学的パーティション有効構文要素は、gpm_mvr_partIdx1_enable_flagを含み、
前記第2方向構文要素及び前記第2大きさ構文要素は、それぞれ、gpm_mvr_partIdx1_direction_idx及びgpm_mvr_partIdx1_distance_idxを含む、請求項12に記載の方法。
【請求項14】
1つ以上のプロセッサと、
前記1つ以上のプロセッサによって実行可能な命令を格納するように構成されたメモリと、を含み、
前記1つ以上のプロセッサは、前記命令の実行時に、請求項1~13のいずれか一項に記載の方法を実行するように構成される、ビデオ復号化装置。
【請求項15】
1つ以上のコンピュータプロセッサによって実行されると、前記1つ以上のコンピュータプロセッサに請求項1~13のいずれか一項に記載の方法を実行させ、
請求項1~13のいずれか一項に記載の方法によって復号化されるビットストリームを格納するコンピュータ実行可能な命令を格納する、非一時的コンピュータ可読記憶媒体。
【請求項16】
請求項1~13のいずれか一項に記載の方法によって復号化されるビットストリーム。
【請求項17】
ビットストリームを格納するための命令を有するコンピュータプログラムであって、
前記ビットストリームは、請求項1~13のいずれか一項に記載の方法によって復号化される符号化ビデオデータを含む、コンピュータプログラム。
【請求項18】
請求項1~13のいずれか一項に記載の方法によって復号化されるデータ構造。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【関連出願の相互参照】
【0001】
本願は、2021年6月14日に提出された米国仮特許出願第63/210,484号に基づき優先権を主張し、その開示は、あらゆる目的でその全体が参照により本明細書に組み込まれる。
【技術分野】
【0002】
本開示は、ビデオ符号化復号化及び圧縮に関する。より詳細には、本開示は、角度重み付け予測(AWP)モードとしても知られる幾何学的分割モード(GPM)の符号化復号化効率を向上させる方法及び装置に関する。
【背景技術】
【0003】
ビデオデータを圧縮するためには、様々なビデオ符号化復号化技術を用いることができる。ビデオ符号化復号化は、1つ以上のビデオ符号化復号化標準に従って実行される。例えば、今日ではよく知られたいくつかのビデオ符号化復号化標準として、ISO/IEC MPEGとITU-T VECGによって共同開発された汎用ビデオ符号化復号化(VVC)、高効率ビデオ符号化復号化(HEVC、H.265又はMPEG-H Part 2としても知られる)、及び高度ビデオ符号化復号化(AVC、H.264又はMPEG-4 Part 10としても知られる)が挙げられる。AOメディアビデオ1(AV1)は、先行標準VP9の後継としてアライアンス・フォー・オープン・メディア(AOM)によって開発された。デジタルオーディオ及びデジタルビデオ圧縮標準を指すオーディオビデオ符号化復号化(AVS)は、中国のオーディオ及びビデオ符号化復号化標準ワークグループによって開発された別のビデオ圧縮標準シリーズである。既存のビデオ符号化復号化標準の多くは、例えば、ブロックベースの予測方法(例えば、インター予測、イントラ予測)を用いてビデオ又はシーケンスに存在する冗長性を削減し、変換符号化を用いて予測誤差のエネルギーを圧縮するなどのように、有名なハイブリッドビデオ符号化復号化フレームワークに基づいて構築される。ビデオ符号化復号化技術の1つの重要な目標は、ビデオ品質の劣化を回避又は最小限に抑えながら、ビデオデータを、より低いビットレートによる形式に圧縮することである。
【発明の概要】
【0004】
本開示は、ビデオ符号化復号化方法及び装置、並びに非一時的コンピュータ可読記憶媒体を提供する。
【0005】
本開示の第1態様において、GPMでビデオブロックを復号化する方法が提供される。前記方法は、前記ビデオブロックに関連付けられた、複数の動きベクトルリファインメント(MVR)オフセットのセット間の適応切り替えを可能にすることができって符号化レベルで適用される制御変数を受信することを含んでもよい。前記方法は、前記ビデオブロックに関連付けられた、前記符号化レベルの下で複数のMVRオフセットのセットにおける複数のオフセットの大きさを2値化する複数の符号語表間の適応切り替えを可能にすることができる指示変数を受信することを含んでもよい。前記方法は、前記ビデオブロックを第1幾何学的パーティションと第2幾何学的パーティションに分割することを含んでもよい。前記方法は、前記制御変数に基づいて、前記複数のMVRオフセットのセットから1つのMVRオフセットのセットを選択することを含んでもよい。前記方法は、1つ以上の構文要素を受信して、選択されたMVRオフセットのセットから前記第1及び第2幾何学的パーティションに適用される第1MVRオフセット及び第2MVRオフセットを決定することを含んでもよい。前記方法は、前記第1幾何学的パーティション及び前記第2幾何学的パーティションの候補リストから、第1動きベクトル(MV)及び第2MVを取得することを含んでもよい。前記方法は、前記第1及び第2MV、並びに、前記第1及び第2MVRオフセットに基づいて、第1リファインMV及び第2リファインMVを算出することを含んでもよい。また、前記方法は、前記第1及び第2リファインMVに基づいて、前記ビデオブロックのための予測サンプルを取得することを含んでもよい。
【0006】
本開示の第2態様において、ビデオ復号化装置が提供される。前記装置は、1つ以上のプロセッサと、非一時的コンピュータ可読記憶媒体とを含んでもよい。前記非一時的コンピュータ可読記憶媒体は、前記1つ以上のプロセッサによって実行可能な命令を格納するように構成される。前記1つ以上のプロセッサは、前記命令の実行時に、前記第1態様に係る方法を実行するように構成される。
【0007】
本開示の第3態様において、非一時的コンピュータ可読記憶媒体が提供される。前記非一時的コンピュータ可読記憶媒体は、1つ以上のコンピュータプロセッサによって実行されると、前記1つ以上のコンピュータプロセッサに前記第1態様に係る方法を実行させるコンピュータ実行可能な命令を格納してもよい。
【0008】
前述の一般的な説明と以下の詳細な説明は、いずれも単なる例であり、本開示を限定するものではないことを理解されたい。
【図面の簡単な説明】
【0009】
本明細書に組み込まれ、その一部を構成する添付図面は、本開示と一致する実施例を示しており、説明とともに、本開示の原理を説明する役割を果たす。
【0010】
【
図1】本開示の1つの実施例に係るエンコーダのブロック図である。
【
図2A】本開示の1つの実施例に係る、マルチタイプツリー構造のブロック分割を示す図である。
【
図2B】本開示の1つの実施例に係る、マルチタイプツリー構造のブロック分割を示す図である。
【
図2C】本開示の1つの実施例に係る、マルチタイプツリー構造のブロック分割を示す図である。
【
図2D】本開示の1つの実施例に係る、マルチタイプツリー構造のブロック分割を示す図である。
【
図2E】本開示の1つの実施例に係る、マルチタイプツリー構造のブロック分割を示す図である。
【
図3】本開示の1つの実施例に係るデコーダのブロック図である。
【
図4】本開示の1つの実施例に係る、許容された幾何学的分割
モード(GPM)パーティションの図示である。
【
図5】本開示の1つの実施例に係る、単方向予測動きベクトルの選択を示す表である。
【
図6A】本開示の1つの実施例に係る動きベクトル差分(MMVD)
モードを有するマージモードの図示である。
【
図6B】本開示の1つの実施例に係るMMVDモードの図示である。
【
図7】本開示の1つの実施例に係るテンプレートマッチング(TM)アルゴリズムの図示である。
【
図8】本開示の1つの実施例に係る、GPMでビデオブロックを復号化する方法である。
【
図9】本開示の1つの実施例に係る、ユーザインターフェースに結合されたコンピューティング環境を示す図である。
【
図10】本開示のいくつかの実施例に係る、ビデオブロックの符号化及び復号化のためのシステムを示すブロック図である。
【発明を実施するための形態】
【0011】
実施形態を詳細に参照し、それらの実施例を添付図面に示す。以下の説明は、添付図面を参照し、異なる図面中の同じ番号は、特に示さない限り、同じ又は類似の要素を表す。実施形態の以下の説明に記載される実装形態は、本開示と一致する全ての実装形態を表すわけではない。むしろ、それらは、添付の特許請求の範囲に記載されるように、本開示に関連する態様と一致する装置及び方法の単なる例である。
【0012】
本開示で使用される用語は、特定の実施形態を説明するためだけのものであり、本開示を限定することを意図するものではない。本開示及び添付の特許請求の範囲で使用されるように、単数形「1つ」などは、文脈において別途明確に示さない限り、複数形も含むことが意図される。なお、本明細書で使用される「及び/又は」という用語は、関連する列挙された項目のうちの1つ以上の任意の又は全ての可能な組み合わせを意味し、含むことが意図される。
【0013】
なお、「第1」、「第2」、「第3」などの用語は、様々な情報を説明するために本明細書で使用され得るが、情報は、これらの用語によって限定されるべきではない。これらの用語は、情報の1つのカテゴリを別のカテゴリから区別するためにのみ使用される。例えば、本開示の範囲から逸脱することなく、第1情報を第2情報と呼ぶことができ、同様に、第2情報を第1情報と呼ぶこともできる。本明細書で使用されるように、用語「もし~ば」は、文脈に応じて、「~場合」、「~すると」又は「判定に応じて」を意味すると理解されてもよい。
【0014】
第1世代のAVS標準は、中国の国家標準「情報技術、高度なオーディオビデオ符号化復号化、第2部分:ビデオ」(AVS1として知られる)及び「情報技術、高度なオーディオビデオ符号化復号化、第16部分:ラジオテレビビデオ」(AVS+として知られる)を含む。MPEG-2標準と比較して、同じ知覚品質で約50%ビットレートを節約することができる。AVS1標準のビデオ部分は、2006年2月に中国の国家標準として公布された。第2世代のAVS標準は、主に追加のHD TVプログラムの送信を対象とした一連の中国国家標準「情報技術、効率的なマルチメディア符号化復号化」(AVS2として知られる)を含む。AVS2の符号化復号化効率は、AVS+の2倍である。2016年5月に、AVS2は、中国の国家標準として発行された。一方、AVS2標準のビデオ部分は、アプリケーションの国際標準の1つとして電気電子学会(IEEE)によって提出された。AVS3標準は、最新の国際標準HEVCの符号化復号化効率を超えることを目的とした、UHDビデオアプリケーション用の新世代のビデオ符号化復号化標準の1つである。2019年3月に、第68回のAVS会議で、HEVC標準よりも約30%のビットレートを節約するAVS3-P2ベースラインが完成した。現在、ハイパフォーマンスモデル(HPM)と呼ばれる1つの参照ソフトウェアがあり、参照ソフトウェアは、AVSグループによってメンテナンスされて、AVS3標準の参照実装形態を実証する。
【0015】
AVS3標準は、HEVCと同様に、ブロックベースのハイブリッドビデオ符号化復号化フレームワークに基づいて構築される。
【0016】
図10は、本開示のいくつかの実装形態に係る、ビデオブロックの符号化及び復号化を並列に行う例示的なシステム10を示すブロック図である。
図10に示すように、システム10は、目標装置14によって後で復号化されるビデオデータを生成して符号化するソース装置12を含む。ソース装置12及び目標装置14は、デスクトップ又はラップトップコンピュータ、タブレットコンピュータ、スマートフォン、セットトップボックス、デジタルテレビ、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む多種多様な電子デバイスのいずれかを含んでもよい。いくつかの実装形態では、ソース装置12及び目標装置14は、無線通信機能を備える。
【0017】
いくつかの実装形態では、目標装置14は、リンク16を介して、復号化される符号化されたビデオデータを受信してもよい。リンク16は、符号化されたビデオデータをソース装置12から目標装置14に移動させることが可能な任意のタイプの通信媒体又はデバイスを含んでもよい。1つの実施例では、リンク16は、ソース装置12が符号化されたビデオデータを目標装置14にリアルタイムで直接送信できるようにする通信媒体を含んでもよい。符号化されたビデオデータは、無線通信プロトコルなどの通信標準に従って変調され、目標装置14に送信されてもよい。通信媒体は、無線周波数(RF)スペクトル又は1つ以上の物理伝送線などの、任意の無線又は有線の通信媒体を含んでもよい。通信媒体は、ローカルエリアネットワーク、広域ネットワーク、又はインターネットなどのグローバルネットワークなどのパケットベースのネットワークの一部を構成してもよい。通信媒体は、ルータ、スイッチ、基地局、又はソース装置12から目標装置14への通信を容易にするのに有用であり得る任意の他の機器を含んでもよい。
【0018】
いくつかの他の実装形態では、符号化されたビデオデータは、出力インターフェース22からストレージ装置32に送信されてもよい。その後、ストレージ装置32内の符号化されたビデオデータは、入力インターフェース28を介して目標装置14からアクセスされてもよい。ストレージ装置32は、ハードドライブ、ブルーレイディスク、デジタルバーサタイルディスク(DVD)、コンパクトディスク読み取り専用メモリ(CD-ROM)、フラッシュメモリ、揮発性又は不揮発性メモリ、又は符号化されたビデオデータを格納する任意の他の適切なデジタル記憶媒体などの、分散型又はローカルにアクセスされる様々なデータ記憶媒体のいずれかを含んでもよい。更なる実施例では、ストレージ装置32は、ソース装置12によって生成された符号化されたビデオデータを保持し得るファイルサーバ又は他の中間ストレージ装置に対応してもよい。目標装置14は、ストリーミング又はダウンロードを介して、ストレージ装置32からの格納されたビデオデータにアクセスしてもよい。ファイルサーバは、符号化されたビデオデータを格納するとともに、符号化されたビデオデータを目標装置14へ送信することが可能な任意のタイプのコンピュータであってもよい。例示的なファイルサーバは、(例えば、ウェブサイト用の)ウェブサーバ、ファイル転送プロトコル(FTP)サーバ、ネットワーク接続ストレージ(NAS)デバイス、又はローカルディスクドライブを含む。目標装置14は、ファイルサーバに格納された符号化されたビデオデータにアクセスするのに適した無線チャネル(例えば、Wi-Fi(Wireless Fidelity)接続)、有線接続(例えば、DSL(Digital Subscriber Line、デジタル加入者線)、ケーブルモデムなど)、又は両方の組み合わせを含む任意の標準データ接続を通じて、符号化されたビデオデータにアクセスしてもよい。ストレージ装置32からの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、又は両方の組み合せであってもよい。
【0019】
図10に示すように、ソース装置12は、ビデオソース18、ビデオエンコーダ20、及び出力インターフェース22を含む。ビデオソース18は、ビデオカメラ、以前にキャプチャされたビデオを含むビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するビデオフィードインターフェースなどのビデオキャプチャデバイス、及び/又は、ソースビデオとしてのコンピュータグラフィックデータを生成するコンピュータグラフィックシステムなどのソース、又は、これらのソースの組み合わせを含んでもよい。1つの実施例として、ビデオソース18がセキュリティ監視システムのビデオカメラである場合には、ソース装置12及び目標装置14は、カメラフォン又はビデオフォンを形成してもよい。しかしながら、本願で説明される実装形態は、一般にビデオ符号化復号化に適用可能であり、無線及び/又は有線のアプリケーションにも適用可能である。
【0020】
キャプチャされたビデオ、予めキャプチャされたビデオ、又はコンピュータ生成されたビデオは、ビデオエンコーダ20によって符号化されてもよい。符号化されたビデオデータは、ソース装置12の出力インターフェース22を介して、目標装置14に直接送信されてもよい。符号化されたビデオデータはまた(又は代わりに)、目標装置14又は他のデバイスによって後でアクセスされて、復号化及び/又は再生されるように、ストレージ装置32に格納されてもよい。出力インターフェース22は、モデム及び/又は送信機を更に含んでもよい。
【0021】
目標装置14は、入力インターフェース28、ビデオデコーダ30、及びディスプレイデバイス34を含む。入力インターフェース28は、受信機及び/又はモデムを含み、リンク16を介して符号化されたビデオデータを受信してもよい。リンク16を介して通信されるか又はストレージ装置32に提供される符号化されたビデオデータは、ビデオデコーダ30がビデオデータの復号化に用いる、ビデオエンコーダ20が生成した様々な構文要素を含んでもよい。そのような構文要素は、通信媒体に送信されるか、記憶媒体に格納されるか、又はファイルサーバに格納される符号化されたビデオデータ内に含まれてもよい。
【0022】
いくつかの実装形態では、目標装置14は、一体化されたディスプレイデバイス、及び目標装置14と通信するように構成された外部ディスプレイデバイスであり得るディスプレイデバイス34を含んでもよい。ディスプレイデバイス34は、復号化されたビデオデータをユーザに表示し、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、又は他のタイプのディスプレイデバイスなどの様々なディスプレイデバイスのいずれかを含んでもよい。
【0023】
ビデオエンコーダ20及びビデオデコーダ30は、例えば、VVC、HEVC、MPEG-4、Part 10、AVCなどの独自又は産業上の標準に従って動作してもよいし、それらの標準の拡張に従って動作してもよい。本願は、特定のビデオ符号化/復号化標準に限定されず、他のビデオ符号化/復号化標準にも適用可能であることを理解されたい。一般に、ソース装置12のビデオエンコーダ20は、これらの現在又は将来のいずれかの標準に従ってビデオデータを符号化するように構成されてもよいことが考えられる。同様に、目標装置14のビデオデコーダ30は、これらの現在又は将来のいずれかの標準に従ってビデオデータを復号化するように構成されてもよいことも一般に考えられる。
【0024】
ビデオエンコーダ20及びビデオデコーダ30はそれぞれ、1つ以上のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリートロジック、ソフトウェア、ハードウェア、ファームウェア、又はこれらの組み合わせなどの様々な適切なエンコーダ及び/又はデコーダ回路のいずれかとして実装されてもよい。電子デバイスは、ソフトウェアで部分的に実装される場合には、ソフトウェアの命令を適切な非一時的コンピュータ可読媒体に格納し、1つ以上のプロセッサによってハードウェアで命令を実行して、本開示で開示されるビデオ符号化/復号化動作を実行してもよい。ビデオエンコーダ20及びビデオデコーダ30のそれぞれは、1つ以上のエンコーダ又はデコーダに含まれていてもよく、いずれか一方が、各デバイス内の組み合わせたエンコーダ/デコーダ(CODEC)の一部として統合されてもよい。
【0025】
図1は、VVCのブロックベースのビデオエンコーダの一般的な図を示す。具体的には、
図1は、典型的なエンコー
ダを示す。エンコー
ダは、
図10に示すビデオエンコーダ20であってもよい。エンコー
ダは、ビデオ入
力、動き補償
101、動き推定
102、イントラ/インターモード決定
103、ブロック予測
子、加算器128、変換
108、量子化
109、予測関連情
報、イントラ予測
104、画像バッファ
106、逆量子化
111、逆変換
112、加算器126、メモリ
105、インループフィルタ
107、エントロピー符号化
110、及びビットストリー
ムを含む。
【0026】
エンコーダでは、ビデオフレームは、処理のために複数のビデオブロックに分割される。所与の各ビデオブロックに対して、インター予測アプローチ又はイントラ予測アプローチに基づいて予測が形成される。なお、「フレーム」という用語は、ビデオ符号化復号化の分野では、「画像」又は「画像」という用語の同義語として使用されてもよい。
【0027】
ビデオ入
力の一部である現在のビデオブロックと、ブロック予測
子の一部であるその予測子との間の差を表す予測残差は、加算器128から変換
108に送られる。次に、変換係数は、エントロピー低減のために、変換
108から量子化
109に送られる。次に、量子化係数がエントロピー符号化
110に供給されて、圧縮されたビデオビットストリームを生成する。
図1に示すように、ビデオブロック分割情報、動きベクトル(MV)、参照画像インデックス、及びイントラ予測モードなどのイントラ/インターモード決定
103からの予測関連情
報もエントロピー符号化
110によって供給され、圧縮されたビットストリー
ムに保存される。圧縮されたビットストリー
ムは、ビデオビットストリームを含む。
【0028】
エンコーダでは、予測の目的で画素を再構成するために、デコーダ関連の回路も必要である。まず、逆量子化111と逆変換112によって予測残差を再構成する。この再構成された予測残差をブロック予測子と組み合わせて、現在のビデオブロックについてフィルタ処理されていない再構成された画素を生成する。
【0029】
空間予測(又は「イントラ予測」)は、現在のビデオブロックと同じビデオフレーム内の既に符号化された隣接ブロックのサンプル(参照サンプルと呼ばれる)からの画素を使用して、現在のビデオブロックを予測する。
【0030】
時間予測(「インター予測」とも呼ばれる)は、既に符号化されたビデオ画像からの再構成された画素を使用して、現在のビデオブロックを予測する。時間予測は、ビデオ信号に固有の時間冗長性を低減する。所与の符号化ユニット(CU)又は符号化ブロックの時間予測信号は、通常、現在のCUとその時間基準との間の動きの量及び方向を示す1つ以上のMVによってシグナリングされる。また、複数の参照画像がサポートされる場合には、1つの参照画像インデックスが更に送られ、参照画像インデックスは、時間予測信号が参照画像記憶装置内のどの参照画像から来るかを特定するために使用される。
【0031】
動き推定102は、ビデオ入力及び画像バッファ106からの信号を取り込み、動き推定信号を動き補償101に出力する。動き補償101は、ビデオ入力、画像バッファ106からの信号、及び動き推定102からの動き推定信号を取り込み、動き補償信号をイントラ/インターモード決定103に出力する。
【0032】
空間及び/又は時間予測が実行された後、エンコーダのイントラ/インターモード決定103は、例えば、レート歪み最適化法に基づいて、最良の予測モードを選択する。次いで、ブロック予測子は、現在のビデオブロックから減算され、得られた予測残差は、変換108及び量子化109により相関解除される。得られた量子化残差係数は、逆量子化111によって逆量子化され、逆変換112によって逆変換されて再構成された残差を形成し、次いで、再構成された残差は、予測ブロックに加算されて、CUの再構成された信号を形成する。デブロッキングフィルタ、サンプル適応オフセット(SAO)、及び/又は適応インループフィルタ(ALF)などの更なるインループフィルタリング107を、再構成されたCUが画像バッファ106の参照画像記憶装置に入れられ、将来のビデオブロックを符号化復号化するために使用される前に、再構成されたCUに適用することができる。出力ビデオビットストリームを形成するために、符号化モード(インター又はイントラ)、予測モード情報、動き情報、及び量子化残差係数は、全て、エントロピー符号化ユニット110に送られ、更に圧縮され、パックされてビットストリームを形成する。
【0033】
図1は、一般的なブロックベースのハイブリッドビデオ符号化システムのブロック図を示す。入力ビデオ信号は、(符号化ユニット(CU)と呼ばれる)ブロック毎に処理される。AVS3では、4分木のみに基づいてブロックを分割するHEVCとは異なり、1つの符号化ツリーユニット(CTU)は、4分木/2分木/3分木に基づいて、変動するローカル特性に適応するようにCUに分割される。更に、HEVCにおける多重分割ユニットタイプの概念は、除去され、即ち、CU、予測ユニット(PU)、及び変換ユニット(TU)の分離は、AVS3に存在せず、代わりに、各CUは、更なる分割なしで、予測及び変換の両方のための基本ユニットとして常に使用される。AVS3のツリー分割構造では、まず、1つのCTUは、4分木構造に基づいて分割される。次に、各4分木リーフノードは、2分木構造及び拡張4分木構造に基づいて更に分割され得る。
【0034】
図2A、
図2B、
図2C、
図2D、及び
図2Eに示すように、5つの分割タイプ、即ち、4分割、水平2分割、垂直2分割、水平拡張4分木分割、及び垂直拡張4分木分割がある。
【0035】
図2Aは、本開示に係る、マルチタイプツリー構造におけるブロックの4分割を示す図を示す。
【0036】
図2Bは、本開示に係る、マルチタイプツリー構造におけるブロックの垂直2分割を示す図を示す。
【0037】
図2Cは、本開示に係る、マルチタイプツリー構造におけるブロックの水平2分割を示す図を示す。
【0038】
図2Dは、本開示に係る、マルチタイプツリー構造におけるブロックの垂直3分割を示す図を示す。
【0039】
図2Eは、本開示に係る、マルチタイプツリー構造におけるブロック水平3分割を示す図を示す。
【0040】
図1では、空間予測及び/又は時間予測を行ってもよい。空間予測(又は「イントラ予測」)は、同じビデオ画像/スライスの既に符号化された隣接ブロックのサンプル(参照サンプルと呼ばれる)からの画素を使用して、現在のビデオブロックを予測する。空間予測は、ビデオ信号に固有の空間冗長性を低減する。時間予測(「インター予測」又は「動き補償予測」とも呼ばれる)は、既に符号化されたビデオ画像からの再構成された画素を使用して、現在のビデオブロックを予測する。時間予測は、ビデオ信号に固有の時間冗長性を低減する。所与のCUについての時間予測信号は、通常、現在のCUとその時間参照との間の動きの量及び方向を示す1つ以上の動きベクトル(MV)によってシグナリングされる。また、複数の参照画像がサポートされる場合には、1つの参照画像インデックスが更に送られ、参照画像インデックスは、時間予測信号が参照画像記憶装置内のどの参照画像から来るかを特定するために使用される。空間及び/又は時間予測の後、エンコーダのモード決定ブロックは、例えば、レート歪み最適化法に基づいて、最良の予測モードを選択する。次いで、予測ブロックは、現在のビデオブロックから減算され、予測残差は、変換を用いて相関解除されて、量子化される。量子化残差係数は、逆量子化され、逆変換されて再構成された残差を形成し、次いで、再構成された残差は、予測ブロックに再加算されて、CUの再構成された信号を形成する。更に、デブロッキングフィルタ、サンプル適応オフセット(SAO)及び適応インループフィルタ(ALF)などのインループフィルタリングを、再構成されたCUが参照画像記憶装置に入れられ、将来のビデオブロックを符号化復号化するために参照として使用される前に、再構成されたCUに適用することができる。出力ビデオビットストリームを形成するために、符号化モード(インター又はイントラ)、予測モード情報、動き情報、及び量子化残差係数は、全て、エントロピー符号化ユニットに送られ、更に圧縮され、パックされる。
【0041】
図3は、本開示のいくつかの実装形態に係る、ブロックベースのビデオデコーダを示すブロック図である。ブロックベースのビデオデコーダは、例えば、
図10に示すビデオデコーダ30であってもよい。ビデオビットストリームは、エントロピー復号化ユニット(例えば、エントロピー復号化301)において最初にエントロピー復号化される。符号化モード及び予測情報は、空間予測ユニット(イントラ符号化されている場合)(例えば、イントラ予測308)又は時間予測ユニット(インター符号化されている場合)(例えば、動き補償307)に送られて、予測ブロックを形成する。残差変換係数は、逆量子化ユニット(例えば、逆量子化302)と逆変換ユニット(例えば、逆変換303)に送られて、残差ブロックを再構成する。次に、予測ブロックと残差ブロックとが加算される(例えば、イントラ/インターモード選択309を介して、及び/又はメモリ304に格納される)。再構成されたブロックは、参照画像記憶装置(例えば、画像バッファ306)に格納される前に、インループフィルタリング
(例えば、インループフィルタ305)を更に行うことができる。次に、参照画像記憶装置の再構成されたビデオは、将来のビデオブロックを予測するために使用されるだけでなく、ディスプレイデバイスを駆動するために送られる。
【0042】
本開示の焦点は、VVC標準とAVS3標準の両方で使用される幾何学的分割モード(GPM)の符号化復号化性能を向上させることである。AVS3では、このツールは、角度重み付け予測(AWP)としても知られており、AWPは、GPMと同じ設計精神に従うが、特定の設計の詳細にいくつかの微妙な違いがある。本開示の説明を容易にするために、以下では、VVC標準における既存のGPM設計は、GPM/AWPツールの主な態様を説明するために例として使用される。一方、VVC標準とAVS3標準の両方に適用される動きベクトル差分を有するマージモード(MMVD)と呼ばれる他の既存のインター予測技術も、本開示で提案された技術と密接に関連しているため、簡単に概説する。その後、現在のGPM/AWP設計のいくつかの欠点が特定される。最後に、提案された方法について詳細に説明する。なお、VVC標準の既存のGPM設計が本開示全体を通じて例として使用されるが、最新のビデオ符号化復号化技術の当業者にとって、提案された技術は、同じ又は同様の設計思想を有する他のGPM/AWP設計又は他の符号化ツールにも適用することができる。
【0043】
幾何学的分割モード(GPM)
VVCでは、インター予測のために、幾何学的分割モードがサポートされる。幾何学的分割モードは、1つの特別なマージモードとして、1つのCUレベルフラグによってシグナリングされる。現在のGPM設計では、8×64と64×8を除いて、幅と高さの両方が8以上64以下の可能なサイズのCU毎に、合計64個のパーティションがGPMモードによってサポートされる。
【0044】
このモードが使用される場合には、
図4に示すように、CUは、幾何学的に配置された直線によって2つの部分に分割される(説明は以下に提供される)。分割線の位置は、特定のパーティションの角度及びオフセットパラメータから数学的に導出される。CU内の幾何学的パーティションの各部分は、それぞれの動きを用いてインター予測され、パーティション毎に単方向予測のみが許容され、即ち、各部分は、1つの動きベクトルと1つの参照インデックスを有する。単方向予測動き制約は、従来の双方向予測と同様に、各CUに必要な動き補償予測が2回だけであることを保証するために適用される。現在のCUに幾何学的分割モードが使用される場合には、幾何学的パーティションの分割モードを示す幾何学的分割インデックス(角度とオフセット)及び2つのマージインデックス(各パーティションに1つ)が更にシグナリングされる。最大GPM候補サイズの数は、シーケンスレベルで明示的にシグナリングされる。
【0045】
図4は、許容されたGPMパーティションを示しており、各ピクチャの分割は、1つの同じ分割方向を有する。
【0046】
単方向予測候補リストの構築
1つの幾何学的パーティションに対する単方向予測動きベクトルを導出するために、1つの単方向予測候補リストは、通常のマージ候補リスト生成プロセスから最初に直接導出される。nは、単方向予測候補リストにおける単方向予測動きのインデックスとして表される。n番目のマージ候補のLX動きベクトル(Xがnのパリティに等しい)は、幾何学的分割モードのn番目の単方向予測動きベクトルとして使用される。
【0047】
これらの動きベクトルは、
図5に「x」でマークされている(後述する)。n番目の拡張マージ候補の対応するLX動きベクトルが存在しない場合には、代わりに、同じ候補のL(1-X)動きベクトルが幾何学的分割モードの単方向予測動きベクトルとして使用される。
【0048】
図5は、GPMのマージ候補リストの動きベクトルからの単方向予測動きベクトルの選択を示す。
【0049】
幾何学的パーティションエッジに沿ったブレンディング
各幾何学的パーティションがそれぞれの動きを使用して取得された後、ブレンディングが2つの単方向予測信号に適用されて、幾何学的パーティションエッジの周囲のサンプルを導出する。CUの各位置のブレンディング重みは、それぞれの個別のサンプル位置から対応するパーティションエッジまでの距離に基づいて導出される。
【0050】
GPMシグナリング設計
現在のGPM設計によれば、GPMの使用は、1つのフラグをCUレベルでシグナリングすることによって示される。このフラグは、現在のCUがマージモード又はスキップモードで符号化されている場合にのみシグナリングされる。具体的には、フラグが1に等しい場合には、それは、現在のCUがGPMによって予測されていることを示す。それ以外の場合(フラグが0に等しい場合)には、CUは、通常のマージモード、動きベクトル差分を有するマージモード、組み合わせられたインター及びイントラ予測などの他のマージモードによって符号化されている。現在のCUに対してGPMが有効である場合には、適用された幾何学的分割モード(
図4に示すように、CUを2つのパーティションに分割するCU中心からの直線の方向とオフセットを指定する)を示す1つの構文要素、即ち、merge_gpm_partition_idxは、更にシグナリングされる。その後、第1及び第2GPMパーティションに使用される単方向予測マージ候補のインデックスを示す2つの構文要素merge_gpm_idx0及びmerge_gpm_idx1は、シグナリングされる。より具体的には、これらの2つの構文要素は、「単方向予測マージリストの構築」というセクションで説明したように、単方向予測マージリストから2つのGPMパーティションの単方向MVを決定するために使用される。現在のGPM設計によれば、2つの単方向MVをより異なるものにするために、2つのインデックスを同じにすることはできない。このような事前知識に基づいて、第1GPMパーティションの単方向予測マージインデックスが最初にシグナリングされて予測子として使用されて、第2GPMパーティションの単方向予測マージインデックスのシグナリングオーバーヘッドを削減する。詳細には、第2単方向予測マージインデックスが第1単方向予測マージインデックスよりも小さい場合には、その元の値がそのままシグナリングされる。それ以外の場合(第2単方向予測マージインデックスが第1単方向予測マージインデックスよりも大きい場合)には、その値は、ビットストリームにシグナリングされる前に1減算される。デコーダ側では、第1単方向予測マージインデックスは、最初に復号化される。次に、第2単方向予測マージインデックスの復号化では、解析された値が第1単方向予測マージインデックスよりも小さい場合には、第2単方向予測マージインデックスは、解析された値に等しく設定され、それ以外の場合(解析された値が第1単方向予測マージインデックス以上である場合)には、第2単方向予測マージインデックスは、解析された値に1を加えた値に等しく設定される。表1は、現在のVVC仕様でGPMモードに使用される既存の構文要素を示す。
表1 VVC仕様のマージデータ構文表における既存のGPM構文要素
【表1】
【0051】
一方、現在のGPM設計では、切り捨てられた単進コードは、2つの単方向予測マージインデックス、即ち、merge_gpm_idx0及びmerge_gpm_idx1の2値化に使用される。また、2つの単方向予測マージインデックスを同じにすることができないため、異なる最大値を使用して、2つの単方向予測マージインデックスの符号語を切り捨て、2つの単方向予測マージインデックスは、merge_gpm_idx0及びmerge_gpm_idx1に対して、それぞれMaxGPMMergeCand-1及びMaxGPMMergeCand-2に等しく設定される。MaxGPMMergeCandは、単方向予測マージリストにおける候補の数である。
【0052】
GPM/AWPモードが適用される場合には、2つの異なる2値化方法は、構文merge_gpm_partition_idxを2値ビットの列に変換するために適用される。具体的には、構文要素は、VVC標準及びAVS3標準では、それぞれ固定長コード及び切り捨てられた2値コードによって2値化される。一方、AVS3におけるAWPモードに対して、異なる最大値は、構文要素の値の2値化に使用される。具体的には、AVS3では、許容されたGPM/AWP分割モードの数は、56(即ち、merge_gpm_partition_idxの最大値が55である)であるが、VVCでは、その数は、64(即ち、merge_gpm_partition_idxの最大値が63である)に増加する。
【0053】
動きベクトル差分を有するマージモード(MMVD)
1つの現在のブロックの動き情報をその空間/時間隣接ブロックから導出する従来のマージモードに加えて、MMVD/UMVEモードは、1つの特別なマージモードとして、VVC標準とAVS標準の両方に導入される。具体的には、VVC及びAVS3の両方では、モードは、符号化ブロックレベルで1つのMMVDフラグによってシグナリングされる。MMVDモードでは、通常のマージモードのマージリスト内の最初の2つの候補は、MMVDの2つのベースマージ候補として選択される。1つのベースマージ候補が選択されてシグナリングされた後、選択されたマージ候補の動きに加算される動きベクトル差分(MVD)を示す追加の構文要素がシグナリングされる。MMVD構文要素は、ベースマージ候補を選択するためのマージ候補フラグと、MVDの大きさを指定する距離インデックスと、MVD方向を示す方向インデックスと、を含む。
【0054】
既存のMMVD設計では、距離インデックスは、始点からの所定の1セットのオフセットに基づいて定義されるMVDの大きさを指定する。
図6A及び
図6Bに示すように、オフセットは、開始MV(即ち、選択されたベースマージ候補のMV)の水平成分又は垂直成分に加算される。
【0055】
図6Aは、L0参照のMMVDモードを示す。
図6Bは、L1参照のMMVDモードを示す。
【0056】
表2は、AVS3で適用されるMVDオフセット
の大きさをそれぞれ示す。
表2 AVS3で使用されたMVDオフセット
の大きさ
【表2】
【0057】
表3に示すように、方向インデックスは、シグナリングされたMVDのコードを特定するために用いられる。なお、MVDコードの意味は、開始MVに応じて変化し得る。開始MVが単方向予測MV、又はPOCが両方とも現在の画像のPOCよりも大きいか、両方とも現在の画像のPOCよりも小さい2つの参照画像を指すMVを有する双方向予測MVである場合には、シグナリングされたコードは、開始MVに追加されるMVDのコードである。開始MVが、一方の画像のPOCが現在の画像のPOCよりも大きく、他方の画像のPOCが現在の画像のPOCよりも小さい2つの参照画像を指す双方向予測MVである場合には、シグナリングされたコードは、L0 MVDに適用され、シグナリングされたコードの反対の値がL1 MVDに適用される。
表3 方向インデックスによって指定されたMVDコード
【表3】
【0058】
通常のインターモードの動きシグナリング
HEVC標準と同様に、マージ/スキップモードに加えて、VVC及びAVS3の両方で、1つのインターCUがビットストリームでその動き情報を明示的に指定することができる。全体として、VVCとAVS3の両方の動き情報シグナリングは、HEVC標準のものと同じに保持される。具体的には、予測信号がリストL0からのものであるか、L1からのものであるか、又はその両方からのものであるかを示す1つのインター予測構文、即ち、inter_pred_idcは、最初にシグナリングされる。使用された参照リスト毎に、対応する参照画像は、対応する参照リストの1つの参照画像インデックスref_idx_lx(x=0、1)をシグナリングすることによって特定され、対応するMVは、MV予測子(MVP)を選択するために使用される1つのMVPインデックスmvp_lx_flag(x=0、1)で表され、その後にそのターゲットMVと選択されたMVPとの間の動きベクトル差分(MVD)で表される。また、VVC標準では、1つの制御フラグmvd_l1_zero_flagは、スライスレベルでシグナリングされる。mvd_l1_zero_flagが0に等しい場合には、L1MVDは、ビットストリームでシグナリングされ、それ以外の場合(mvd_l1_zero_flagが1に等しい場合)には、L1MVDは、シグナリングされておらず、その値がエンコーダ及びデコーダで常に0と推定される。
【0059】
CUレベルの重みによる双方向予測
VVCとAVS3よりも前の標準では、重み付け予測(WP)が適用されない場合には、双方向予測信号は、2つの参照画像から取得された単方向予測信号を平均化することにより生成される。VVCでは、1回のツール符号化、即ち、CUレベルの重みによる双方向予測(BCW)が導入されて、双方向予測の効率を向上させた。具体的には、BCWにおける双方向予測は、単純な平均化の代わりに、以下のように、2つの予測信号の重み付け平均化を可能にすることにより拡張される。
【数1】
【0060】
【0061】
テンプレートマッチング
テンプレートマッチング(TM)は、現在のCUの上と左の隣接する再構成されたサンプルからなる1つのテンプレートと、参照画像内の参照ブロック(即ち、テンプレートと同じサイズ)との間の最良の一致を見つけることによって、現在のCUの動き情報をリファインするデコーダ側のMV導出方法である。
図7に示すように、1つのMVは、[-8,+8]の画素検索範囲内で現在のCUの初期動きベクトルを中心として検索される。最良の一致は、例えば、現在のテンプレートと参照テンプレートとの差分絶対値の和(SAD)、変換された差分絶対値の和(SATD)などの最小マッチングコストを達成するMVとして定義されてもよい。以下の2つの異なる方法でインター符号化復号化にTMモードを適用する。
【0062】
AMVPモードでは、MVP候補は、現在のブロックテンプレートと参照ブロックテンプレートとの差分が最小となるものをピックアップするために、テンプレートマッチングの差分に基づいて決定され、その後、TMは、MVリファインメントのためにこの特定のMVP候補に対してのみ実行される。TMは、反復的ダイヤモンド検索を使用することによって、[-8、+8]画素の検索範囲内のフル画素MVD精度(又は、4画素AMVRモードの場合には、4画素)から開始して、このMVP候補をリファインする。AMVP候補は、以下の表14に示すように、フル画素MVD精度(4画素AMVRモードの場合には、4画素)のクロス検索、続いてAMVRモードに応じたハーフ画素のクロス検索と1/4画素のクロス検索を順に行うことで、更にリファインすることができる。この検索プロセスによって、MVP候補がTMプロセスの後にもAMVRモードで示されるものと同じMV精度をすることが保証される。
表14
【表4】
【0063】
マージモードでは、マージインデックスにより示されたマージ候補に対して同様の検索方法が適用される。上記表に示すように、TMは、マージされた動き情報に応じて代替補間フィルタ(AMVRがハーフ画素モードの場合に使用される)を使用するか否かに応じて、1/8画素MVD精度まで全て行ってもよいし、ハーフ画素MVD精度を超える精度をスキップしてもよい。
【0064】
上述したように、2つのGPMパーティションの予測サンプルを生成するために使用される単方向動きは、通常のマージ候補から直接取得される。空間/時間隣接ブロックのMV間に強い相関関係がない場合には、マージ候補から導出された単方向MVは、GPMパーティションの真の動きを捕捉するには十分な精度がない可能性がある。動き推定は、より正確な動きを提供することが可能であるが、これは、任意の動きのリファインメントが既存の単方向MVの上で適用できるため、無視できないシグナリングのオーバヘッドを犠牲にする。一方、MVMDモードは、VVC標準とAVS3標準の両方で利用されており、MVDシグナリングオーバーヘッドを削減する効率的なシグナリングメカニズムの1つであることが証明されている。したがって、GPMモードとMMVDモードを組み合わせることも有利であり得る。このような組み合わせは、より正確なMVを提供して各GPMパーティションの個々の動きを捕捉することで、GPMツール全体の符号化復号化効率を向上させる可能性がある。
【0065】
前述したように、VVC標準及びAVS3標準の両方では、GPMモードは、マージ/スキップモードにのみ適用される。このような設計は、全ての非マージインターCUがGPMの柔軟な非矩形パーティションから利点を得ることができないことを考慮すると、符号化復号化効率の観点から最適ではない可能性がある。一方、上述と同様の理由により、通常のマージ/スキップモードから導出された単方向予測動き候補は、2つの幾何学的パーティションの真の動きを正確に捕捉できるとは限られない。このような分析に基づいて、GPMモードを非マージインターモード(即ち、ビットストリームでそれらの動き情報を明示的にシグナリングするCU)に合理的に拡張することで、追加の符号化復号化利得が期待できる。しかしながら、MV精度の向上は、シグナリングオーバヘッドの増加を犠牲にする。したがって、GPMモードを明示的なインターモードに効率的に適用するためには、2つの幾何学的パーティションに対してより正確なMVを提供しながら、シグナリングコストを最小化できる1つの有効なシグナリングスキームを特定することが重要となる。
【0066】
提案された方法
本開示では、各GPMパーティションに適用される既存の単方向MVの上で、更なる動きリファインメントを適用することによって、GPMの符号化復号化効率を更に向上させる方法が提案されている。提案された方法は、動きベクトルリファインメントを有する幾何学的分割モード(GPM-MVR)と呼ばれる。また、提案されたスキームでは、動きリファインメントは、既存のMMVD設計と同様の方式で、即ち、1セットの所定のMVDの大きさと動きリファインメントの方向に基づいてシグナリングされる。
【0067】
本開示の別の方面では、GPMモードを明示的なインターモードに拡張するための解決手段が提供される。説明を簡単にするために、これらのスキームは、明示的な動きシグナリングを有する幾何学的分割モード(GPM-EMS)と呼ばれる。具体的には、通常のインターモードとのより良い調和を達成するために、提案されたGPM-EMSスキームでは、既存の動きシグナリングメカニズム、即ち、MVP+MVDを利用して、2つの幾何学的パーティションの対応する単方向MVを指定する。
【0068】
個別の動きベクトルリファインメントを有する幾何学的分割モード
GPMの符号化復号化効率を向上させるために、このセクションでは、個別の動きベクトルリファインメントを有する改良された幾何学的分割モードが提案されている。具体的には、GPMパーティションが与えられた場合には、提案された方法としては、既存の構文merge_gpm_idx0及びmerge_gpm_idx1を最初に使用して、既存の単方向予測マージ候補リストから2つのGPMパーティションの単方向MVを特定し、それらをベースMVとして使用する。2つのベースMVを決定した後に、2セットの新しい構文要素を導入して、2つのGPMパーティションのベースMVの上で適用される動きリファインメントの値を個別に特定する。具体的には、GPM-MVRが第1及び第2GPMパーティションに適用されるか否かをそれぞれ示す2つのフラグ、即ち、gpm_mvr_partIdx0_enable_flag及びgpm_mvr_partIdx1_enable_flagは、最初にシグナリングされる。1つのGPMパーティションのフラグが1に等しい場合には、当該パーティションのベースMVに適用されるMVRの対応する値、即ち、MVRの大きさを指定するための1つの距離インデックス(構文要素gpm_mvr_partIdx0_distance_idx及びgpm_mvr_partIdx1_distance_idxによって示される)と、MVRの方向を指定するための1つの方向インデックス(構文要素gpm_mvr_partIdx0_direction_idx及びgpm_mvr_partIdx1_direction_idxによって示される)とは、MMVDスタイルで、シグナリングされる。表4は、提案されたGPM-MVR方法で導入される構文要素を示す。
表4 提案された、2つのGPMパーティションの個別のMVRを有するGPM-MVR方法(方法1)の構文要素
【表5】
【0069】
表4に示す提案された構文要素に基づいて、デコーダで、各GPMパーティションの単方向予測サンプルを生成するために使用される最終MVは、シグナリングされた動きベクトルリファインメントと対応するベースMVとの和に等しい。実際には、MVRの大きさと方向の異なるセットが予め定義されて、提案されたGPM-MVRスキームに適用されてもよく、これにより、動きベクトル精度とシグナリングオーバーヘッドとの間に様々なトレードオフを与えることができる。1つの具体例では、VVC標準で使用される8つのMVDの大きさ(即ち、1/4画素、1/2画素、1画素、2画素、4画素、8画素、16画素及び32画素)及び4つのMVD方向(即ち、+/-x軸及び+/-y軸)を提案されたGPM-MVRスキームで再利用することが提案されている。他の実施例では、AVS3標準で使用されている既存の5つのMVDの大きさ{1/4画素、1/2画素、1画素、2画素及び4画素}及び4つのMVD方向(即ち、+/-x軸及び+/-y軸)は、提案されたGPM-MVRスキームに適用される。
【0070】
「GPMシグナリング設計」というセクションで議論したように、2つのGPMパーティションに使用される単方向MVを同じにすることができないため、既存のGPM設計では、2つの単方向予測マージインデックスが異なるように強制する1つの制約が適用される。しかしながら、提案されたGPM-MVRスキームでは、既存のGPM単方向MVの上で、更なる動きリファインメントが適用される。したがって、2つのGPMパーティションのベースMVが同じであっても、2つの動きベクトルリファインメントの値が同じでなければ、2つのパーティションを予測するために使用される最終単方向MVは、異なり得る。以上の考慮に基づいて、提案されたGPM-MVRスキームが適用される場合には、(2つの単方向予測マージインデックスが異なるように制限する)制約は除去される。また、2つの単方向予測マージインデックスを同じにすることができるため、同じ最大値MaxGPMMergeCand-1は、merge_gpm_idx0とmerge_gpm_idx1の両方の2値化に使用され、MaxGPMMergeCandは、単方向予測マージリストの候補の数である。
【0071】
上で分析したように、2つのGPMパーティションの単方向予測マージインデックス(即ち、merge_gpm_idx0及びmerge_gpm_idx1)が同じである場合には、2つの動きベクトルリファインメントの値は、2つのパーティションの最終MVが異なることを保証するために、同じにすることができない。このような条件に基づいて、本開示の一実施形態では、2つのGPMパーティションの単方向予測マージインデックスが同じである(即ち、merge_gpm_idx0がmerge_gpm_idx1に等しい)場合には、第1GPMパーティションのMVRを使用して、第2GPMパーティションのMVRのシグナリングオーバーヘッドを削減するシグナリング冗長性除去方法が提案されている。1つの実施例では、以下のシグナリング条件が適用される。
【0072】
第1に、フラグgpm_mvr_partIdx0_enable_flagが0に等しい(即ち、GPM-MVRが第1GPMパーティションに適用されない)場合には、フラグgpm_mvr_partIdx1_enable_flagは、シグナリングされていないが、1と推定される(即ち、GPM-MVRが第2GPMパーティションに適用される)。
【0073】
第2に、フラグgpm_mvr_partIdx0_enable_flagとgpm_mvr_partIdx1_enable_flagの両方が1に等しく(即ち、GPM_MVRが2つのGPMパーティションに適用される)、gpm_mvr_partIdx0_direction_idxがgpm_mvr_partIdx1_direction_idxに等しい(即ち、2つのGPMパーティションのMVRは、同じ方向を有する)場合には、第1GPMパーティションのMVRの大きさ(即ち、gpm_mvr_partIdx0_distance_idx)は、第2GPMパーティションのMVRの大きさ(即ち、gpm_mvr_partIdx1_distance_idx)を予測するために使用される。具体的には、gpm_mvr_partIdx1_distance_idxがgpm_mvr_partIdx0_distance_idxよりも小さい場合には、その元の値は、直接シグナリングされる。それ以外の場合(gpm_mvr_partIdx1_distance_idxがgpm_mvr_partIdx0_distance_idxよりも大きい場合)には、その値は、ビットストリームにシグナリングされる前に1減算される。デコーダ側では、gpm_mvr_partIdx1_distance_idxの値を復号化するために、解析された値がgpm_mvr_partIdx0_distance_idxよりも小さい場合には、gpm_mvr_partIdx1_distance_idxは、解析された値に等しく設定され、それ以外の場合(解析された値がgpm_mvr_partIdx0_distance_idx以上である場合)には、gpm_mvr_partIdx1_distance_idxは、解析された値に1を加えた値に等しく設定される。このような場合には、オーバーヘッドを更に削減するために、異なる最大値MaxGPMMVRDistance-1及びMaxGPMMVRDistance-2は、gpm_mvr_partIdx0_distance_idx及びgpm_mvr_partIdx1_distance_idxの2値化に使用することができ、MaxGPMMVRDistanceは、動きベクトルリファインメントの許容される大きさの数である。
【0074】
他の実施形態では、MVRの方向がMVRの大きさよりも前にシグナリングされるように、gpm_mvr_partIdx0_direction_idx/gpm_mvr_partIdx1_direction_idxと、gpm_mvr_partIdx0_distance_idx/gpm_mvr_partIdx1_distance_idxとのシグナリング順序を切り替えることが提案されている。このようにして、上記と同様のロジックに従って、エンコーダ/デコーダは、第1GPMパーティションのMVR方向によって、第2GPMパーティションのMVR方向のシグナリングを調整することができる。他の実施形態では、第2GPMパーティションのMVRの大きさと方向を最初にシグナリングし、それらを第1GPMパーティションのMVRの大きさと方向のシグナリングを条件にすることが提案されている。
【0075】
他の実施形態では、既存のGPM構文要素のシグナリングの前にGPM-MVRに関する構文要素をシグナリングすることが提案されている。具体的には、このような設計では、GPM-MVRが第1及び第2GPMパーティションに適用されるか否かをそれぞれ示す2つのフラグ、即ち、gpm_mvr_partIdx0_enable_flag及びgpm_mvr_partIdx1_enable_flagは、最初にシグナリングされる。1つのGPMパーティションのフラグが1に等しい場合には、距離インデックス(構文要素gpm_mvr_partIdx0_distance_idx及びgpm_mvr_partIdx1_distance_idxによって示される)と、方向インデックス(構文要素gpm_mvr_partIdx0_direction_idx及びgpm_mvr_partIdx1_distance_idx)とは、
シグナリングされてMVRの方向を指定する。その後、既存の構文merge_gpm_idx0とmerge_gpm_idx1は、2つのGPMパーティションの単方向MV、即ち、ベースMVを特定するためにシグナリングされる。表5は、提案されたGPM-MVRシグナリングスキームを示す。
表5 提案された、2つのGPMパーティションの個別のMVRを有するGPM-MVR方法(方法2)の構文要素
【表6】
【0076】
表4のシグナリング方法と同様に、表5のGPM-MVRシグナリング方法が適用される場合に、2つのGPMパーティションの予測に使用される得られたMVが同じでないことを保証するために、特定の条件が適用されてもよい。具体的には、第1と第2GPMパーティションに適用されるMVRの値に応じて、単方向予測マージインデックスmerge_gpm_idx0及びmerge_gpm_idx1のシグナリングを制約するために、以下の条件が提案されている。
【0077】
第1に、gpm_mvr_partIdx0_enable_flagとgpm_mvr_partIdx1_enable_flagの両方の値が0に等しい(即ち、GPM-MVRが2つのGPMパーティションで無効である)場合には、merge_gpm_idx0とmerge_gpm_idx1の値を同じにすることができない。
【0078】
第2に、gpm_mvr_partIdx0_enable_flagが1に等しく(即ち、GPM-MVRが第1GPMパーティションで有効である)、gpm_mvr_partIdx1_enable_flagが0に等しい(即ち、GPM-MVRが第2GPMパーティションで無効である)場合には、merge_gpm_idx0とmerge_gpm_idx1の値を同じにすることができる。
【0079】
第3に、gpm_mvr_partIdx0_enable_flagが0に等しく(即ち、GPM-MVRが第1GPMパーティションで無効である)、gpm_mvr_partIdx1_enable_flagが1に等しい(即ち、GPM-MVRが第2GPMパーティションで有効である)場合には、merge_gpm_idx0とmerge_gpm_idx1の値を同じにすることができる。
【0080】
第4に、gpm_mvr_partIdx0_enable_flagとgpm_mvr_partIdx1_enable_flagの両方の値が1に等しい(即ち、GPM_MVRが2つのGPMパーティションの両方に対して有効である)場合には、merge_gpm_idx0とmerge_gpm_idx1の値を同じにすることができるか否かについての判定は、2つのGPMパーティションに適用されるMVR(gpm_mvr_partIdx0_direction_idxとgpm_mvr_partIdx0_distance_idx、及び、gpm_mvr_partIdx1_direction_idxとgpm_mvr_partIdx1_distance_idxによって示される)の値に依存する。2つのMVRの値が等しい場合には、merge_gpm_idx0とmerge_gpm_idx1を同じにすることができない。それ以外の場合(2つのMVRの値が等しくない場合)には、merge_gpm_idx0とmerge_gpm_idx1の値を同じにすることができる。
【0081】
上記4つの場合では、merge_gpm_idx0とmerge_gpm_idx1の値を同じにすることができないとき、一方のパーティションのインデックス値は、他方のパーティションのインデックス値の予測子として使用することができる。1つの方法では、merge_gpm_idx0を最初にシグナリングし、その値を用いてmerge_gpm_idx1を予測することが提案されている。具体的には、エンコーダでは、merge_gpm_idx1がmerge_gpm_idx0よりも大きい場合には、デコーダに送られるmerge_gpm_idx1の値は1減少する。デコーダでは、受信されたmerge_gpm_idx1の値が受信されたmerge_gpm_idx0の値以上である場合には、merge_gpm_idx1の値は1増加する。他の方法では、merge_gpm_idx1を最初にシグナリングし、その値を用いてmerge_gpm_idx0を予測することが提案されている。したがって、このような場合には、エンコーダでは、merge_gpm_idx0がmerge_gpm_idx1よりも大きい場合には、デコーダに送られるmerge_gpm_idx0の値は1減少する。デコーダでは、受信されたmerge_gpm_idx0の値が受信されたmerge_gpm_idx1の値以上である場合には、merge_gpm_idx0の値は1増加する。また、既存のGPMシグナリング設計と同様に、異なる最大値MaxGPMMergeCand-1及びMaxGPMMergeCand-2は、それぞれ、シグナリング順序に応じて第1及び第2インデックス値の2値化に使用することができる。一方、2つのインデックス値に相関関係がないため、merge_gpm_idx0とmerge_gpm_idx1の値を同じにすることができるとき、同じ最大値MaxGPMMergeCand-1は、2つのインデックス値の両方の2値化に使用することができる。
【0082】
上記方法では、シグナリングコストを削減するために、異なる最大値は、merge_gpm_idx0とmerge_gpm_idx1の2値化に適用されてもよい。対応する最大値の選択は、MVRの復号化された値(gpm_mvr_partIdx0_enable、gpm_mvr_partIdx1_enable、gpm_mvr_partIdx0_direction_idx、gpm_mvr_partIdx1_direction_idx、gpm_mvr_partIdx0_distance_idx、及びgpm_mvr_partIdx1_distance_idxによって示される)に依存する。このような設計は、異なるGPM構文要素間に望ましくない解析依存性を引き起こし、これは、全体の解析に影響を与える可能性がある。このような問題を解決するために、1つの実施形態では、1つの同じ最大値(例えば、MaxGPMMergeCand-1)は、常にmerge_gpm_idx0とmerge_gpm_idx1の値を解析することに使用されることが提案されている。このような方法を用いる場合には、2つのGPMパーティションの復号化された2つのMVが同じであることを防止するために、1つのビットストリーム適合性制約を使用してもよい。他の方法では、2つのGPMパーティションの復号化されたMVを同じにすることができるように、そのような非同一性制約を除去することもできる。一方、このような方法が適用される(即ち、merge_gpm_idx0とmerge_gpm_idx1に対して同じ最大値を用いる)場合には、merge_gpm_idx0/merge_gpm_idx1と他のGPM-MVRの構文要素との間に解析依存性はない。したがって、これらの構文要素をシグナリングする順序は、もう重要ではない。1つの実施例では、merge_gpm_idx0/merge_gpm_idx1のシグナリングを、gpm_mvr_partIdx0_enable、gpm_mvr_partIdx1_enable、gpm_mvr_partIdx0_direction_idx、gpm_mvr_partIdx1_direction_idx、gpm_mvr_partIdx0_distance_idx、及びgpm_mvr_partIdx1_distance_idxのシグナリングの前に移動させることが提案されている。
【0083】
対称動きベクトルリファインメントを有する幾何学的分割モード
上記GPM-MVR方法では、2つの別個のMVR値がシグナリングされ、そのうちの1つのMVR値が1つのGPMパーティションのみのベースMVを向上させるために適用されている。このような方法は、各GPMパーティションに独立した動きリファインメントを可能とすることで、予測精度の向上に有効である。しかしながら、このような柔軟な動きリファインメントは、エンコーダからデコーダに異なる2セットのGMP-MVRの構文要素を送る必要があることを考慮すると、シグナリングオーバヘッドの増加を犠牲にする。シグナリングのオーバーヘッドを削減するために、このセクションでは、対称動きベクトルリファインメントを有する幾何学的分割モードが提案されている。具体的には、この方法では、1つのMVR値は、1つのGPM CUにシグナリングされ、かつ現在の画像と2つのGPMパーティションに関連付けられた参照画像との画像順序カウント(POC)値の対称性の関係に応じて、2つのGPMパーティションの両方に使用される。表6は、提案された方法が適用される場合の構文要素を示す。
表6 提案された、2つのGPMパーティションの対称MVRを有するGPM-MVR方法(方法1)の構文要素
【表7】
【0084】
表6に示すように、2つのGPMパーティションのベースMVが(merge_gpm_idx0とmerge_gpm_idx1に基づいて)選択された後、GPM-MVRモードが現在のGPM CUに適用されるか否かを示す1つのフラグgpm_mvr_enable_flagは、シグナリングされる。フラグが1に等しい場合には、2つのGPMパーティションのベースMVを強化するために動きリファインメントが適用されることを示す。それ以外の場合(フラグが0に等しい場合)には、2つのパーティションのいずれにも動きリファインメントが適用されないことを示す。GPM-MVRモードが有効である場合には、追加の構文要素は、方向インデックスgpm_mvr_direction_idx及び大きさインデックスgpm_mvr_distance_idxによって適用されたMVRの値を指定するために、更にシグナリングされる。また、MMVDモードと同様に、MVRコードの意味は、現在の画像のPOCとGPMパーティションの2つの参照画像との関係に応じて変化し得る。具体的には、2つの参照画像の両方のPOCが現在の画像のPOCよりも大きいか又は小さい場合には、シグナリングされたコードは、2つのベースMVの両方に追加されるMVRのコードである。それ以外の場合(一方の参照画像のPOCが現在の画像よりも大きく、かつ他方の参照画像のPOCが現在の画像よりも小さい場合)には、シグナリングされたコードは、第1GPMパーティションのMVRに適用され、逆コードは、第2GPMパーティションに適用される。表6では、merge_gpm_idx0とmerge_gpm_idx1の値を同じにすることができる。
【0085】
他の実施形態では、2つのGPMパーティションのGPM-MVRモードの有効/無効を個別に制御するために、2つの異なるフラグをシグナリングすることが提案されている。しかしながら、GPM-MVRモードが有効である場合には、1つのMVRのみは、構文要素gpm_mvr_direction_idx及びgpm_mvr_distance_idxに基づいてシグナリングされる。このようなシグナリング方法の対応する構文表は、表7に示される。
表7 提案された、2つのGPMパーティションの対称MVRを有するGPM-MVR方法(方法2)の構文要素
【表8】
【0086】
表7のシグナリング方法が適用される場合には、merge_gpm_idx0とmerge_gpm_idx1の値を同じにすることができる。しかしながら、2つのGPMパーティションに適用される得られたMVが冗長でないことを保証するために、フラグgpm_mvr_partIdx0_enable_flagが0に等しい(即ち、GPM-MVRが第1GPMパーティションに適用されない)場合には、フラグgpm_mvr_partIdx1_enable_flagは、シグナリングされていないが、1と推定される(即ち、GPM-MVRが第2GPMパーティションに適用される)。
【0087】
GPM-MVRの許容されたMVRの適応
上記GPM-MVR方法では、1つのグループの固定されたMVR値は、1つのビデオシーケンスにおいて、エンコーダとデコーダの両方でGPM CUに使用される。このような設計は、高解像度のビデオコンテンツ又は激しい動きを有するビデオコンテンツに対しては最適以下である。それらの場合には、MVが非常に大きくなる傾向にあるため、固定されたMVRの値は、それらののブロックの実際の動きを捕捉するのに最適ではない可能性がある。GPM-MVRモードの符号化復号化性能を更に向上させるために、本開示では、シーケンスレベル、画像/スライス画像、符号化ブロックグループレベルなどの様々な符号化レベルで、GPM-MVRモードによって選択可能なMVR値の適応をサポートすることが提案されている。例えば、複数のMVRセットと対応する符号語とは、異なるビデオシーケンスの特定の動き特性に応じて、オフラインで導出されてもよい。エンコーダは、最良のMVRセットを選択し、選択されたMVRセットの対応するインデックスをデコーダにシグナリングすることができる。
【0088】
本開示のいくつかの実施形態では、GPM-MVRモードに対して、8つのオフセットの大きさ(即ち、1/4画素、1/2画素、1画素、2画素、4画素、8画素、16画素、及び32画素)と4つの
オフセット方向(+/-x軸及び+/-y軸)を含むデフォルトMVRオフセットに加えて、以下の表で定義されている他のMVRオフセットが提案されている。表15は、提案された、第2MVRオフセットのセットにおけるオフセットの大きさを示す。表16は、提案された、第2MVRオフセットのセットにおける
オフセット方向を示す。
表15
【表9】
表16
【表10】
【0089】
上記表15及び表16では、x軸及びy軸の値+1/2及び-1/2は、水平方向及び垂直方向の対角方向(+45°及び-45°)を示す。表15及び表16に示すように、既存のMVRオフセットのセットと比較して、第2MVRオフセットのセットには、2つの新しいオフセットの大きさ(即ち、3画素及び6画素)と、4つのオフセットの方向(45°、135°、225°、及び315°)とが導入される。新しく追加されたMVRオフセットにより、第2MVRオフセットのセットは、複雑な動きを有するビデオブロックを符号化するのにより適する。また、2つのMVRオフセットのセット間の適応切り替えを可能にするために、1つの制御フラグを1つの特定の符号化レベル(例えば、シーケンス、画像、スライス、CTU、符号化ブロックなど)でシグナリングして、当該符号化レベルで適用されるGPM-MVRモードにどのMVRオフセットのセットが選択されるかを示すことが提案されている。提案された適応が画像レベルで実行されると仮定すると、以下の表17は、画像ヘッダでシグナリングされた対応する構文要素を示す。
表17
【表11】
【0090】
上記表17では、新しいフラグph_gpm_mvr_offset_set_flagは、画像に使用される対応するGPM_MVRオフセットの選択を示すために使用される。フラグが0に等しい場合には、デフォルトMVRオフセット(即ち、1/4画素、1/2画素、1画素、2画素、4画素、8画素、16画素、及び32画素のオフセットの大きさ、及び、4つのオフセット方向+/-x軸及び+/-y軸)が画像内のGPM-MVRモードに適用されることを意味する。それ以外の場合(フラグが1に等しい場合)には、第2MVRオフセット(即ち、1/4画素、1/2画素、1画素、2画素、3画素、4画素、6画素、8画素、及び16画素のオフセットの大きさ、及び、8つのオフセット方向+/-x軸、+/-y軸、45°、135°、225°、及び315°)が画像内のGPM-MVRモードに適用されることを意味する。
【0091】
異なる方法でMVRオフセットをシグナリングしてもよい。まず、MVR方向が、通常、統計的に均等に分布することを考慮すると、固定長の符号語を使用してMVR方向を2値化することが提案されている。デフォルトMVRオフセットを例にとると、合計4つの方向があり、00、01、10、及び11の符号語は、4つの方向を表すために使用することができる。一方、MVRオフセットの大きさがビデオコンテンツの特定の動き特性に適応した様々な分布を有する可能性があるため、可変長の符号語を使用してMVR
オフセットの大きさを2値化することが提案されている。以下の表18は、デフォルトMVRオフセットのセット及び第2MVRオフセットのセットのMVR
オフセットの大きさの2値化に使用できる1つの特定の符号語表を示す。
表18
【表12】
【0092】
他の実施形態では、デフォルトMVRオフセットのセット及び第2MVRオフセットのセットのMVRオフセットの大きさを2値化するために異なる固定長の可変符号語が適用されてもよく、例えば、上記符号語表におけるビン「0」とビン「1」とは、コンテキスト適応2値算術符号化復号化(CABAC)エンジンの様々な0/1統計量に適応するために交換されてもよい。
【0093】
1つの具体例では、2つの異なる符号語表が設けられて、MVR
オフセットの大きさの値を2値化する。以下の表は、第1及び第2符号語表で適用されるデフォルト及び第2MVRオフセットのセットの対応する符号語を示す。表19は、第1符号語表におけるMVRオフセットの大きさの符号語を示す。表20は、第2符号語表におけるMVRオフセットの大きさの符号語を示す。
表19
【表13】
表20
【表14】
【0094】
2つの符号語表間の適応切り替えを可能にするために、1つの指示フラグを1つの符号化レベル(例えば、シーケンス、画像、スライス、CTU、符号化ブロックなど)でシグナリングして、当該符号化レベルでMVR
オフセットの大きさを2値化するためにどの符号語表が使用されるかを指定することが提案されている。提案された適応が画像レベルで実行されると仮定すると、以下の表21は、画像ヘッダでシグナリングされた対応する構文要素を示しており、新しく追加された構文要素は、斜体の太字で示されている。
表21
【表15】
【0095】
上記構文表では、新しいフラグph_gpm_mvr_step_codeword_flagは、画像のMVRオフセットの大きさの2値化に使用される対応する符号語表の選択を示すために使用される。フラグが0に等しい場合には、それは、第1符号語表が画像に適用されることを示し、それ以外の場合(即ち、フラグが1に等しい場合)には、それは、第2符号語表が画像に適用されることを示す。
【0096】
他の実施形態では、ビデオシーケンス全体の符号化/復号化中にMVRオフセットの大きさを2値化するために1つの符号語表を常に使用することが提案されている。1つの実施例では、MVRオフセットの大きさの2値化のために第1符号語表を常に使用することが提案されている。他の実施例では、MVRオフセットの大きさの2値化のために第2符号語表を常に使用することが提案されている。
【0097】
他の方法では、1つの統計ベースの2値化方法を適用して、シグナリングなしにオンザフライでMVRオフセットの大きさに対する最適な符号語を適応的に設計してもよい。最適な符号語を決定するために使用される統計量は、以前に符号化された多数の画像、スライス、及び/又は符号化ブロックについて収集されたMVRオフセットの大きさの確率分布であってもよいが、これに限定されない。符号語は、様々な周波数レベルで再決定/更新されてもよい。例えば、更新は、CUがGPM-MVRモードで符号化復号化されるたびに実行されてもよい。他の実施例では、GPM-MVRモードで符号化復号化された複数(例えば8個又は16個)のCUが存在するたびに、更新が再決定され、及び/又は、更新されてもよい。
【0098】
他の方法では、1つの新しい符号語のセットを再設計する代わりに、提案された統計ベースの方法は、より多く使用される大きさに短い符号語を割り当て、あまり使用されていない大きさに長い符号語を割り当てるために、同じ符号語のセットに基づいて、MVR
オフセットの大きさの値を再順序付けするのにも使用することができる。以下の表を例にとると、統計量が画像レベルで収集されると仮定すると、「使用率」という列は、以前に符号化された画像におけるGPM-MVRの符号化ブロックによって使用される、異なるMVRオフセットの大きさの対応する割合を示す。「使用率」という列の値に応じて、同じ2値化方法(即ち、切り捨てられた単進符号語)で、エンコーダ/デコーダは、MVR
オフセットの大きさの値をそれらの使用率に基づいて順位付け、その後、エンコーダ/デコーダは、最も頻繁に使用されるMVR
オフセットの大きさ(即ち、1画素)に最も短い符号語(即ち、「1」)を割り当て、2番目に頻繁に使用されるMVR
オフセットの大きさ(即ち、1/2画素)に2番目に短い符号語(即ち、「01」)を割り当て、…、最もまれに使用される2つのMVR
オフセットの大きさ(即ち、16画素と32画素)に最も長い符号語(即ち、「0000001」と「0000000」)を割り当てることができる。したがって、このような再順序付けのスキームにより、MVR
オフセットの大きさの統計量分布の動的な変化に適応するように、同じ符号語のセットを自由に再順序付けすることができる。
【表16】
【0099】
GPM-MVRレート歪み最適化のためのエンコーダスピードアップロジック
提案されたGPM-MVRスキームについて、各GPMパーティションの最適なMVRを決定するためには、エンコーダは、各GPMパーティションのレート歪みコストを複数回テストする必要があり、毎回のテストにおいて、適用されているMVRの値を変える。これにより、GPMモードの符号化復号化複雑度を大幅に増加させる可能性がある。符号化復号化複雑度の問題を解決するために、このセクションでは、以下の高速符号化復号化ロジックが提案されている。
【0100】
第1に、VVCとAVS3で適用される4分木/2分木/3分木のブロック分割構造により、1つの同じ符号化ブロックがレート歪み最適化(RDO)プロセス中にチェックでき、毎回、当該同じ符号化ブロックがそれぞれ異なる分割パスによって分割される。現在のVTM/HPMエンコーダの実装形態では、異なるブロックパーティションの組み合わせで同じCUが得られるたびに、GPM、GPM-MVRモードと、他のインター及びイントラ符号化復号化モードとが常にテストされる。一般的に言えば、異なる分割パスについて、1つのCUの隣接ブロックのみが異なる可能性があるが、これは、1つのCUが選択する最適符号化復号化モードに比較的小さい影響を与えるべきである。このような考慮に基づいて、適用されているGPM RDOの総数を削減するために、1つのCUのRDコストが初めてチェックされるときにGPMモードが選択されたか否かの決定を格納することが提案されている。その後、同じCUがRDOプロセスによって(他の分割パスによって)再びチェックされる場合には、CUに対してGPMが初めて選択された場合にのみ、GPMのRDコスト(GPM-MVRを含む)がチェックされる。1つのCUの最初のRDチェックのためにGPMが選択されなかった場合には、同じCUが他の分割パスによって得られたときにGPMのみ(GPM-MVRなし)がテストされる。他の方法では、1つのCUの最初のRDチェックのためにGPMが選択されなかった場合には、同じCUが他の分割パスによって得られたときにGPMとGPM-MVRの両方がテストされない。
【0101】
第2に、GPM-MVRモードのGPMパーティションの数を削減するために、1つのCUのRDコストが初めてチェックされるときに、RDコストが最小である最初のM個のGPM分割モードを維持することが提案されている。その後、同じCUがRDOプロセスによって(他の分割パスによって)再びチェックされる場合には、GPM-MVRモードについて、それらのm個のGPM分割モードのみがテストされる。
【0102】
第3に、最初のRDOプロセスでテストされるGPMパーティションの数を削減するために、各GPMパーティションについて、2つのGPMパーティションに対して異なる単方向予測マージ候補を使用するときに差分絶対値の和(SAD)を最初に算出することが提案されている。次に、1つの特定の分割モードの下での各GPMパーティションについて、最小のSAD値を有する最良の単方向予測マージ候補を選択し、2つのGPMパーティションについての最良の単方向予測マージ候補のSAD値の和に等しい当該分割モードの対応するSAD値を算出する。次に、以下のRDプロセスでは、GPM-MVRモードについて、前のステップでの最良のSAD値を有する最初のN個の分割モードのみがテストされる。
【0103】
明示的な動きシグナリングを有する幾何学的パーティション
このセクションでは、2つの単方向MVがエンコーダからデコーダに明示的にグナリングされるGPMモードを、通常のインターモードの双方向予測に拡張する複数の方法が提案されている。
【0104】
第1解決策(解決策1)では、既存の双方向予測の動きシグナリングを完全に再利用して、GPMモードの2つの単方向MVをシグナリングすることが提案されている。表8は、提案されたスキームの修正された構文表を示しており、新しく追加された構文要素は、斜体の太字で示されている。表8に示すように、この解決策では、L0及びL1の動き情報をシグナリングする全ての既存の構文要素は、2つのGPMパーティションの単方向MVをそれぞれ示すために完全に再利用される。また、L0 MVは、第1GPMパーティションに常に関連付けられ、L1 MVは、第2GPMパーティションに常に関連付けられると想定される。一方、表8では、inter_pred_idcの値がGPMフラグ(即ち、gpm_flag)の存在を条件付けるために使用できるように、インター予測構文、即ち、inter_pred_idcは、gpm_flagの前にシグナリングされる。具体的には、inter_pred_idcがPRED_BI(即ち、双方向予測)に等しく、inter_affine_flag及びsym_mvd_flagの両方が0に等しい(即ち、CUがアフィンモードでもSMVDモードでも符号化復号化されていない)場合にのみ、フラグgpm_flagは、シグナリングされる必要がある。フラグgpm_flagがシグナリングされない場合には、その値は、常に0と推定される(即ち、GPMモードが無効である)。gpm_flagが1である場合には、現在のCUに対して(合計64個のGPMパーティションのうち)選択されたGPMモードを示す他の構文要素gpm_partition_idxは、更にシグナリングされる。
表8 解決策1(オプション1)の動きシグナリングのための修正された構文表
【表17】
【0105】
他の方法では、gpm_flagの値が、他のインター構文要素が存在する必要があるか否かを判定するために使用できるように、フラグgpm_flagを他のインターシグナリング構文要素の前にシグナリングすることが提案されている。表9は、そのような方法が適用される場合の対応する構文表を示しており、新しく追加された構文要素は、斜体の太字で示されている。見て分かるように、gpm_flagが表9で最初にシグナリングされる。gpm_flagが1に等しい場合には、対応するinter_pred_idc、inter_affine_flag、及びsym_mvd_flagのシグナリングは、バイパスすることができる。その代わりに、3つの構文要素の対応する値は、それぞれPRED_BI、0、及び0と推定することができる。
表9 解決策1(オプション2)の動きシグナリングのための修正された構文表
【表18】
【0106】
表8と表9の両方では、SMVDモードは、GPMモードと組み合わせることができない。他の実施例では、現在のCUがGPMモードによって符号化復号化される場合には、SMVDモードを許容することが提案されている。このような組み合わせが許容される場合には、SMVDの同じ設計に従うことにより、2つのGPMパーティションのMVDが対称であると想定され、それにより、第1GPMパーティションのMVDのみがシグナリングされる必要があり、第2GPMパーティションのMVDが第1MVDと常に対称となる。このような方法が適用される場合には、gpm_flag上のsym_mvd_flagの対応するシグナリング条件は、削除することができる。
【0107】
以上に示すように、第1解決策では、L0 MVが第1GPMパーティションに使用され、L1 MVが第2GPMパーティションに使用されると常に想定される。このような設計は、この方法が、2つのGPMパーティションのMVが同一の予測リスト(L0又はL1)から取得されることを禁止するという意味で最適ではない可能性がある。このような問題を解決するために、表10に示すようなシグナリング設計を有する代替GPM-EMSスキームである解決策2が提案されている。表10では、新しく追加された構文要素は、斜体の太字で示されている。表10に示すように、フラグgpm_flagが最初にシグナリングされる。フラグが1に等しい(即ち、GPMが有効である)場合には、選択されたGPMモードを指定するための構文gpm_partition_idxは、シグナリングされる。次に、第1GPMパーティションのMVが由来する対応する予測リストを示す追加フラグgpm_pred_dir_flag0は、シグナリングされる。フラグgpm_pred_dir_flag0が1に等しい場合には、第1GPMパーティションのMVがL1から由来することを示し、それ以外の場合(フラグが0に等しい場合)には、第1GPMパーティションのMVがL0から由来することを示す。その後、既存の構文要素ref_idx_l0、mvp_l0_flag、及びmvd_coding()は、第1GPMパーティションの参照ピクチャインデックス、mvpインデックス、及びMVDの値をシグナリングするように利用される。一方、第1パーティションと同様に、他の構文要素gpm_pred_dir_flag1は、第2GPMパーティションの対応する予測リストを選択するように導入され、その後に、第2GPMパーティションのMVの導出に使用される既存の構文要素ref_idx_l1、mvp_l1_flag、及びmvd_coding()が導入される。
表10 解決策2の動きシグナリングのための修正された構文表
【表19】
【0108】
最後に、GPMモードが2つの単方向予測パーティション(分割エッジ上のブレンディングサンプルを除く)で構成されていることを考慮すると、提案されたGPM-EMSスキームが1つのインターCUに対して有効である場合に、双方向オプティカルフロー、デコーダ側の動きベクトルリファインメント(DMVR)、CU重みを有する双方向予測(BCW)などの、双方向予測のために特定に設計されたVVC及びAVS3のいくつかの既存の符号化ツールは、自動的にバイパスすることができる。例えば、提案されたGPM-EMSのうちの1つが1つのCUに対して有効である場合には、BCWがGPMモードに適用できないことを考慮すると、シグナリングオーバーヘッドを削減するために、対応するBCW重みをCUに対して更にシグナリングする必要はない。
【0109】
GPM-MVRとGPM-EMSとの組み合わせ
このセクションでは、幾何学的パーティションを有する1つのCUに対してGPM-MVRとGPM-EMSを組み合わせることが提案されている。具体的には、マージベースの動きシグナリング及び明示的シグナリングの一方のみが2つのGPMパーティションの単方向予測MVをシグナリングするために適用できるGPM-MVR又はGPM-EMSとは異なり、提案されたスキームでは、1)一方のパーティションがGPM-MVRベースの動きシグナリングを使用するが、他方のパーティションがGPM-EMSベースの動きシグナリングを使用すること、又は、2)2つのパーティションがGPM-MVRベースの動きシグナリングを使用すること、又は、3)2つのパーティションがGPM-EMSベースの動きシグナリングを使用することが許容される。表4のGPM-MVRシグナリング及び表10のGPM-EMSにより、提案されたGPM-MVRとGPM-EMSとの組み合わせの後の対応する構文表を表11に示す。表11では、新しく追加された構文要素は、斜体の太字で示されている。表11に示すように、2つの追加の構文要素gpm_merge_flag0及びgpm_merge_flag1がパーティション#1及び#2にそれぞれ導入され、これは、対応するパーティションがGPM-MVRベースのマージシグナリング又はGPM-EMSベースの明示的なシグナリングを使用することを指定する。フラグが1である場合には、merge_gpm_idxX、gpm_mvr_partIdxX_enabled_flag、gpm_mvr_partIdxX_direction_idx、及びgpm_mvr_partIdxX_distance_idx(X=0、1)によってGPM単方向予測動きがシグナリングされるパーティションに対して、GPM-MVRベースのシグナリングが有効であることを意味する。それ以外の場合には、フラグが0である場合には、パーティションの単方向予測動きが構文要素gpm_pred_dir_flagX、ref_idx_lX、mvp_lX_flag、及びmvd_lX(X=0、1)によりGPM-EMSの方式で明示的にシグナリングされることを意味する。
表11 提案されたGPM-MVRとGPM-EMSとの組み合わせを有するGPMモードの構文表
【表20】
【0110】
GPM-MVRとテンプレートマッチングとの組み合わせ
このセクションでは、GPM-MVRとテンプレートマッチングとを組み合わせるために、異なる解決策が提供される。
【0111】
方法1では、1つのCUがGPMモードで符号化復号化される場合には、2つのGPMパーティションに対して、対応するパーティションの単方向動きがテンプレートマッチングによって更にリファインか否かをそれそれ示す2つの別個のフラグをシグナリングすることが提案されている。フラグが有効である場合には、テンプレートは、現在のCUの左と上の隣接する再構成されたサンプルを使用して生成され、次に、パーティションの単方向動きは、「テンプレートマッチング」というセクションで説明したものと同じ手順に従って、テンプレートとその参照サンプルとの間の差分を最小限に抑えることによってリファインされる。それ以外の場合(フラグが無効である場合)には、テンプレートマッチングがパーティションに適用されず、GPM-MVRが更に適用されてもよい。表5のGPM-MVRシグナリング方法を例にとると、表12は、GPM-MVRとテンプレートマッチングを組み合わせた場合の対応する構文表を示す。表12では、新しく追加された構文要素は、斜体の太字で示されている。
表12 提案された、GPM-MVRとテンプレートマッチングとを組み合わせる方法(方法1)の構文要素
【表21】
【0112】
表12に示すように、提案されたスキームでは、動きが2つのGPMパーティションに対してリファインされるか否かをそれぞれ示す2つの追加のフラグgpm_tm_enable_flag0及びgpm_tm_enable_flag1は、最初にシグナリングされる。フラグが1である場合には、TMが1つのパーティションの単方向MVをリファインするために適用されることを示す。フラグが0である場合には、GPM_MVRがGPMパーティションに適用されるか否かを示す1つのフラグ(gpm_mvr_partIdx0_enable_flag又はgpm_mvr_partIdx1_enable_flag)は、更にシグナリングされる。1つのGPMパーティションのフラグが1に等しい場合には、距離インデックス(構文要素gpm_mvr_partIdx0_distance_idx及びgpm_mvr_partIdx1_distance_idxによって示される)と、方向インデックス(構文要素gpm_mvr_partIdx0_direction_idx及びgpm_mvr_partIdx1_distance_idx)とは、MVRの大きさを指定する。その後、2つのGPMパーティションの単方向MVを特定するための既存の構文merge_gpm_idx0とmerge_gpm_idx1は、シグナリングされる。一方、表5に適用されるシグナリング条件と同様に、2つのGPMパーティションの予測に使用される得られたMVが同じでないことを保証するために、以下の条件が適用されてもよい。
【0113】
第1に、gpm_tm_enable_flag0とgpm_tm_enable_flag1の両方の値が1に等しい場合(即ち、TMが2つのGPMパーティションの両方に対して有効である場合)には、merge_gpm_idx0とmerge_gpm_idx1の値を同じにすることができない。
【0114】
第2に、gpm_tm_enable_flag0とgpm_tm_enable_flag1の一方が1であり、他方が0である場合には、merge_gpm_idx0とmerge_gpm_idx1の値を同じにすることができる。
【0115】
それ以外の場合、即ち、gpm_tm_enable_flag0とgpm_tm_enable_flag1の両方が1に等しい場合には、第1に、gpm_mvr_partIdx0_enable_flagとgpm_mvr_partIdx1_enable_flagの両方が0に等しい(即ち、GPM-MVRが2つのGPMパーティションの両方に対して無効である)とき、merge_gpm_idx0とmerge_gpm_idx1の値を同じにすることができず、第2に、gpm_mvr_partIdx0_enable_flagが1に等しく(即ち、GPM-MVRが第1GPMパーティションに対して有効である)、gpm_mvr_partIdx1_enable_flagが0に等しい(即ち、GPM-MVRが2つのGPMパーティションに対して無効である)とき、merge_gpm_idx0とmerge_gpm_idx1の値を同じにすることができ、第3に、gpm_mvr_partIdx0_enable_flagが0に等しく(即ち、GPM-MVRが第1GPMパーティションに対して無効である)、gpm_mvr_partIdx1_enable_flagが1に等しい(即ち、GPM-MVRが第2GPMパーティションに対して有効である)とき、merge_gpm_idx0とmerge_gpm_idx1の値を同じにすることができ、第4に、gpm_mvr_partIdx0_enable_flagとgpm_mvr_partIdx1_enable_flagの両方の値が1に等しい(即ち、GPM_MVRが2つのGPMパーティションの両方に対して有効である)とき、merge_gpm_idx0とmerge_gpm_idx1の値を同じにすることができるか否かについての判定は、2つのGPMパーティションに適用されるMVR(gpm_mvr_partIdx0_direction_idxとgpm_mvr_partIdx0_distance_idx、及び、gpm_mvr_partIdx1_direction_idxとgpm_mvr_partIdx1_distance_idxによって示される)の値に依存する。2つのMVRの値が等しい場合には、merge_gpm_idx0とmerge_gpm_idx1を同じにすることができない。それ以外の場合(2つのMVRの値が等しくない場合)には、merge_gpm_idx0とmerge_gpm_idx1の値を同じにすることができる。
【0116】
上記方法1では、TMとMVRは、GPMに排他的に適用される。このようなスキームでは、TMモードのリファインMVの上で、MVRを更に適用することが禁止される。したがって、GPMの更に多くのMV候補を提供するために、TMのリファインMVの上でMVRオフセットを適用できるようにする方法2が提案されている。表13は、GPM-MVRとテンプレートマッチングを組み合わせた場合の対応する構文表を示す。表13では、新しく追加された構文要素は、斜体の太字で示されている。
表13 提案された、GPM-MVRとテンプレートマッチングとを組み合わせる方法(方法2)の構文要素
【表22】
【0117】
表13に示すように、表12とは異なり、gpm_tm_enable_flag0及びgpm_tm_enable_flag1上のgpm_mvr_partIdx0_enable_flag及びgpm_mvr_partIdx1_enable_flagのシグナリング条件が削除される。そのため、TMが1つのGPMパーティションの単方向動きをリファインするか否かに関わらず、MVリファインメントが常にGPMパーティションのMVに適用することができる。従来と同様に、2つのGPMパーティションの得られたMVが同じでないことを保証するために、以下の条件を適用する必要がある。
【0118】
第1に、gpm_tm_enable_flag0とgpm_tm_enable_flag1の一方が1であり、他方が0である場合には、merge_gpm_idx0とmerge_gpm_idx1の値を同じにすることができる。
【0119】
それ以外の場合、即ち、gpm_enable_flag0とgpm_enable_flag1の両方が1に等しいか、又は、両方のフラグが0に等しい場合には、第1に、gpm_mvr_partIdx0_enable_flagとgpm_mvr_partIdx1_enable_flagの両方が0に等しい(即ち、GPM-MVRが2つのGPMパーティションの両方に対して無効である)とき、merge_gpm_idx0とmerge_gpm_idx1の値を同じにすることができず、第2に、gpm_mvr_partIdx0_enable_flagが1に等しく(即ち、GPM-MVRが第1GPMパーティションに対して有効である)、gpm_mvr_partIdx1_enable_flagが0に等しい(即ち、GPM-MVRが第2GPMパーティションに対して無効である)とき、merge_gpm_idx0とmerge_gpm_idx1の値を同じにすることができ、第3に、gpm_mvr_partIdx0_enable_flagが0に等しく(即ち、GPM-MVRが第1GPMパーティションに対して無効である)、gpm_mvr_partIdx1_enable_flagが1に等しい(即ち、GPM-MVRが第2GPMパーティションに対して有効である)とき、merge_gpm_idx0とmerge_gpm_idx1の値を同じにすることができ、第4に、gpm_mvr_partIdx0_enable_flagとgpm_mvr_partIdx1_enable_flagの両方の値が1に等しい(即ち、GPM_MVRが2つのGPMパーティションの両方に対して有効である)とき、merge_gpm_idx0とmerge_gpm_idx1の値を同じにすることができるか否かについての判定は、2つのGPMパーティションに適用されるMVR(gpm_mvr_partIdx0_direction_idxとgpm_mvr_partIdx0_distance_idx、及び、gpm_mvr_partIdx1_direction_idxとgpm_mvr_partIdx1_distance_idxによって示される)の値に依存する。2つのMVRの値が等しい場合には、merge_gpm_idx0とmerge_gpm_idx1を同じにすることができない。それ以外の場合(2つのMVRの値が等しくない場合)には、merge_gpm_idx0とmerge_gpm_idx1の値を同じにすることができる。
【0120】
上記2つの方法では、TMが各GPMパーティションに適用されるか否かを示す2つの別個のフラグがシグナリングされる必要がある。付加されたシグナリングは、追加のオーバーヘッドにより、特に低ビットレートの場合には、全体的な符号化復号化効率を低下させる可能性がある。シグナリングオーバヘッドを削減するために、追加のシグナリングを導入する代わりに、TMベースの単方向MVをGPMモードの単方向MV候補リストに挿入する方法3が提案されている。TMベースの単方向MVは、「テンプレートマッチング」というセクションで説明したものと同じTMプロセスに従って、GPMの元の単方向MVを最初のMVとして生成される。このようなスキームにより、エンコーダからデコーダに追加の制御フラグを更にシグナリングする必要がなくなる。代わりに、デコーダは、ビットストリームから受信された対応するマージインデックス(即ち、merge_gpm_idx0及びmerge_gpm_idx1)を通じて、1つのMVがTMによってリファインされるか否かを特定することができる。異なる方法で通常のGPMのMV候補(即ち、non-TM)とTMベースのMV候補を配置し得る。1つの方法では、MV候補リストの先頭に最初にTMベースのMV候補を配置し、次に非TMベースのMV候補を配置することが提案されている。他の方法では、最初に非TMベースのMV候補を配置し、次にTMベースのMV候補を配置することが提案されている。他の方法では、TMベースのMV候補と、非TMベースのMV候補とをインターリーブ方式で配置することが提案されている。例えば、最初のN個の非TMベースの候補を配置し、次に全てのTMベースの候補を配置し、最後に残りの非TMベースの候補を配置することができる。他の実施例では、最初のN個のTMベースの候補を配置し、次に全ての非TMベースの候補を配置し、最後に残りのTMベースの候補を配置することができる。他の実施例では、非TMベースの候補とTMベースの候補とを交互に、即ち、1つの非TMベースの候補、1つのTMベースの候補などのように配置することが提案されている。
【0121】
上記方法は、特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、デジタル信号処理デバイス(DSPD)、プログラマブルロジックデバイス(PLD)、フィールドプログラマブルゲートアレイ(FPGA)、コントローラ、マイクロコントローラ、マイクロプロセッサ、又は他の電子コンポーネントを含む1つ以上の回路を含む装置を採用して実装され得る。装置は、上述の方法を実行するために、他のハードウェア又はソフトウェアコンポーネントと組み合わせて回路を採用することができる。上記で開示された各モジュール、サブモジュール、ユニット、又はサブユニットは、1つ以上の回路で少なくとも部分的に実装され得る。
【0122】
図9は、ユーザインターフェース960に結合されたコンピューティング環境(又はコンピューティングデバイス)910を示す。コンピューティング環境910は、データ処理サーバの一部とすることができる。いくつかの実施形態では、コンピューティングデバイス910は、以上に説明したような、本開示の様々な実施例に係る様々な方法又はプロセス(例えば、符号化/復号化方法又はプロセス)のいずれかを実行することができる。コンピューティング環境910は、プロセッサ920と、メモリ940と、I/Oインターフェース950とを含んでもよい。
【0123】
プロセッサ920は、典型的には、ディスプレイ、データ取得、データ通信、及び画像処理に関連する動作などの、コンピューティング環境910の全体的な動作を制御する。プロセッサ920は、上述方法のステップの全部又は一部を実行する命令を実行するための1つ以上のプロセッサを含んでもよい。また、プロセッサ920は、プロセッサ920と他のコンポーネントとの間のインタラクションを容易にする1つ以上のモジュールを含んでもよい。上記プロセッサは、中央処理装置(CPU)、マイクロプロセッサ、シングルチップマシン、GPUなどであってもよい。
【0124】
メモリ940は、コンピューティング環境910の動作をサポートするために、様々なタイプのデータを格納するように構成される。メモリ940は、所定のソフトウェア942を含んでもよい。そのようなデータの例は、コンピューティング環境910上で動作する任意のアプリケーション又は方法のための命令、ビデオデータセット、画像データなどを含む。メモリ940は、静的ランダムアクセスメモリ(SRAM)、電気的に消去可能なプログラマブル読み取り専用メモリ(EEPROM)、消去可能なプログラマブル読み取り専用メモリ(EPROM)、プログラマブル読み取り専用メモリ(PROM)、読み取り専用メモリ(ROM)、磁気メモリ、フラッシュメモリ、磁気ディスク又は光ディスクなどの任意のタイプの揮発性又は不揮発性メモリ装置、又はそれらの組み合わせを使用することによって実装され得る。
【0125】
I/Oインターフェース950は、プロセッサ920と、キーボード、クリックホイール、ボタンなどの周辺インターフェースモジュールとの間のインターフェースを提供する。ボタンは、ホームボタン、スタートスキャンボタン、及びストップスキャンボタンを含んでもよいが、これらに限定されない。I/Oインターフェース950は、エンコーダ及びデコーダに結合することができる。
【0126】
いくつかの実施形態では、上述の方法を実行するために、コンピューティング環境910内のプロセッサ920によって実行可能な、メモリ940に含まれるような複数のプログラムを含む非一時的コンピュータ可読記憶媒体も提供される。例えば、非一時的コンピュータ可読記憶媒体は、ROM、RAM、CD-ROM、磁気テープ、フロッピーディスク、光データ記憶デバイスなどであってもよい。
【0127】
非一時的コンピュータ可読記憶媒体は、1つ以上のプロセッサを有するコンピューティングデバイスによって実行される複数のプログラムを格納しており、複数のプログラムは、1つ以上のプロセッサによって実行されると、コンピューティングデバイスに上述の動き予測方法を実行させる。
【0128】
いくつかの実施形態では、コンピューティング環境910は、上記方法を実行するために、1つ以上の特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、デジタル信号処理デバイス(DSPD)、プログラマブルロジックデバイス(PLD)、フィールドプログラマブルゲートアレイ(FPGA)、グラフィカルプロセッシングユニット(GPU)、コントローラ、マイクロコントローラ、マイクロプロセッサ、又は他の電子コンポーネントを用いて実装され得る。
【0129】
図8は、本開示の一実施例に係る、GPMでビデオブロックを復号化する方法を示すフローチャートである。
【0130】
ステップ801では、プロセッサ920は、ビデオブロックに関連付けられた制御フラグを受信してもよい。制御フラグは、2値フラグ、非2値フラグなどの1つ以上のフラグを含む制御変数又は任意の他の変数であってもよい。1つ以上の実施例では、制御変数は、表17又は表21に示すように、フラグ「ph_gpm_mvr_offset_set_flag」であってもよい。
【0131】
いくつかの実施例では、制御変数は、複数のMVRオフセットのセット間の適応切り替えを可能にし、符号化レベルで適用される。
【0132】
いくつかの実施例では、符号化レベルは、シーケンスレベル、画像/スライスレベル、CTUレベル又は符号化ブロックレベルであってもよい。例えば、制御変数がエンコーダ側で画像レベルでシグナリングされる場合には、デコーダ側は、現在のビデオブロックに関連付けられた対応するMVRオフセットを選択するという目的のために、どのMVRオフセットセットを選択するかを示すための制御変数を画像レベルで対応して受信する。
【0133】
ステップ802では、プロセッサ920は、ビデオブロックに関連付けられた指示フラグを受信してもよい。指示フラグは、2値フラグ、非2値フラグなどの1つ以上のフラグを含む指示変数又は任意の他の変数であってもよい。1つ以上の実施例では、指示変数は、表21に示すように、フラグ「ph_gpm_mvr_step_codeword_flag」であってもよい。フラグ「ph_gpm_mvr_step_codeword_flag」の値は、異なる符号語表によって異なるオフセットのセットを2値化するように2値化表を切り替えることで、より高い柔軟性が得られる。
【0134】
いくつかの実施例では、指示変数は、符号化レベルの下で複数のMVRオフセットのセットにおける複数のオフセットの大きさを2値化する複数の符号語表間の適応切り替えを可能にする。
【0135】
ステップ803では、プロセッサ920は、ビデオブロックを第1幾何学的パーティションと第2幾何学的パーティションに分割してもよい。
【0136】
ステップ804では、プロセッサ920は、制御変数に基づいて、複数のMVRオフセットのセットから1つのMVRオフセットのセットを選択してもよい。
【0137】
ステップ805では、プロセッサ920は、1つ以上の構文要素を受信して、選択されたMVRオフセットのセットから第1及び第2幾何学的パーティションに適用される第1MVRオフセット及び第2MVRオフセットを決定してもよい。選択されたMVRオフセットのセットは、制御変数によって選択された1つのMVRオフセットのセットであってもよい。
【0138】
いくつかの実施例では、複数のMVRオフセットのセットは、第1MVRオフセットのセット及び第2MVRオフセットのセットを含んでもよい。いくつかの実施例では、第1MVRオフセットのセットは、複数のデフォルトオフセットの大きさ及び複数のデフォルトオフセット方向を含む複数のデフォルトMVRオフセットを含んでもよい。いくつかの実施例では、第2MVRオフセットのセットは、複数の代替オフセットの大きさ及び複数の代替オフセット方向を含む複数の代替MVRオフセットを含んでもよい。いくつかの実施例では、第2MVRオフセットのセットは、第1MVRオフセットのセットよりも多くのオフセットの大きさ及び第1MVRオフセットのセットよりも多くのオフセット方向を含んでもよい。例えば、複数のデフォルトオフセットの大きさ及び複数のデフォルトオフセット方向は、8つのオフセットの大きさ(例えば、1/4画素、1/2画素、1画素、2画素、4画素、8画素、16画素、及び32画素)及び4つのオフセット方向(+/-x軸及び+/-y軸)を含んでもよい。複数の代替オフセットの大きさ及び複数の代替オフセット方向は、表15、表16、表19及び表20に示すように、大きさ及び方向を含んでもよい。
【0139】
表15、表16、表19及び表20に示すように、代替MVRオフセットのセットは、複数のデフォルトオフセットの大きさに加えて、より多くのオフセットの大きさを含んでもよく、複数のデフォルトオフセット方向に加えて、より多くのオフセット方向を含んでもよい。
【0140】
いくつかの実施例では、プロセッサ920は、制御変数が0に等しいと判定したことに応じて、第1MVRオフセットのセットを適用すると判定してもよく、制御変数が1に等しいと判定したことに応じて、第2MVRオフセットのセットを適用すると判定してもよい。
【0141】
いくつかの実施例では、複数の符号語表は、第1符号語表と第2符号語表とを含み、第1符号語表と第2符号語表は、表19及び表20に示すように、それぞれ、第1及び第2MVRオフセットのセットにおけるオフセットの大きさを2値化するためのものである。
【0142】
表19及び表20に示すように、第1デフォルトオフセットの大きさ(例えば、1/4画素)は、ビデオブロックから1/4画素の距離を示し、第2デフォルトオフセットの大きさ(例えば、1/2画素)は、ビデオブロックから1/2画素の距離を示し、第3デフォルトオフセットの大きさ(例えば、1画素)は、ビデオブロックから1画素の距離を示し、第4デフォルトオフセットの大きさ(例えば、2画素)は、ビデオブロックから2画素の距離を示し、第5デフォルトオフセットの大きさ(例えば、4画素)は、ビデオブロックから4画素の距離を示し、第6デフォルトオフセットの大きさ(例えば、8画素)は、ビデオブロックから8画素の距離を示し、第7デフォルトオフセットの大きさ(例えば、16画素)は、ビデオブロックから16画素の距離を示し、第8デフォルトオフセットの大きさ(例えば、32画素)は、ビデオブロックから32画素の距離を示す。
【0143】
更に、表19及び表20に示すように、第1代替オフセットの大きさ(例えば、1/4画素)は、ビデオブロックから1/4画素の距離を示し、第2代替オフセットの大きさ(例えば、1/2画素)は、ビデオブロックから1/2画素の距離を示し、第3代替オフセットの大きさ(例えば、1画素)は、ビデオブロックから1画素の距離を示し、第4代替オフセットの大きさ(例えば、2画素)は、ビデオブロックから2画素の距離を示し、第5代替オフセットの大きさ(例えば、3画素)は、ビデオブロックから3画素の距離を示し、第6代替オフセットの大きさ(例えば、4画素)は、ビデオブロックから4画素の距離を示し、第7代替オフセットの大きさ(例えば、6画素)は、ビデオブロックから6画素の距離を示し、第8代替オフセットの大きさ(例えば、8画素)は、ビデオブロックから8画素の距離を示し、第9代替オフセットの大きさ(例えば、16画素)は、ビデオブロックから16画素の距離を示す。
【0144】
いくつかの実施例では、プロセッサ920は、制御変数が0に等しく、指示変数が0に等しいと判定したことに応じて、第1MVRオフセットのセットを適用し、第1符号語表を用いて複数のデフォルトオフセットの大きさを2値化することを更に判定してもよい。表19に示すように、第1デフォルトオフセットの大きさを1として2値化し、第2デフォルトオフセットの大きさを10として2値化し、第3デフォルトオフセットの大きさを110として2値化し、第4デフォルトオフセットの大きさを1110として2値化し、第5デフォルトオフセットの大きさを11110として2値化し、第6デフォルトオフセットの大きさを111110として2値化し、第7デフォルトオフセットの大きさを1111110として2値化し、第8デフォルトオフセットの大きさを1111111として2値化する。
【0145】
いくつかの実施例では、プロセッサ920は、制御変数が0に等しく、指示変数が1に等しいと判定したことに応じて、第1MVRオフセットのセットを適用し、第2符号語表を用いて複数のデフォルトオフセットの大きさを2値化することを更に判定してもよい。表20に示すように、第1デフォルトオフセットの大きさを111110として2値化し、第2デフォルトオフセットの大きさを1として2値化し、第3デフォルトオフセットの大きさを10として2値化し、第4デフォルトオフセットの大きさを110として2値化し、第5デフォルトオフセットの大きさを1110として2値化し、第6デフォルトオフセットの大きさを11110として2値化し、第7デフォルトオフセットの大きさを1111110として2値化し、第8デフォルトオフセットの大きさを1111111として2値化する。
【0146】
いくつかの実施例では、プロセッサ920は、制御変数が1に等しく、指示変数が0に等しいと判定したことに応じて、第2MVRオフセットのセットを適用し、第1符号語表を用いて複数の代替オフセットの大きさを2値化することを更に判定してもよい。表19に示すように、第1代替オフセットの大きさを1として2値化し、第2代替オフセットの大きさを10として2値化し、第3代替オフセットの大きさを110として2値化し、第4代替オフセットの大きさを1110として2値化し、第5代替オフセットの大きさを11110として2値化し、第6代替オフセットの大きさを111110として2値化し、第7代替オフセットの大きさを1111110として2値化し、第8代替オフセットの大きさを11111110として2値化し、第9代替オフセットの大きさを11111111として2値化する。
【0147】
いくつかの実施例では、プロセッサ920は、制御変数が1に等しく、指示変数が1に等しいと判定したことに応じて、第2MVRオフセットのセットを適用し、第2符号語表を用いて複数の代替オフセットの大きさを2値化することを更に判定してもよい。表20に示すように、第1代替オフセットの大きさを111110として2値化し、第2代替オフセットの大きさを1として2値化し、第3代替オフセットの大きさを10として2値化し、第4代替オフセットの大きさを110として2値化し、第5代替オフセットの大きさを1110として2値化し、第6代替オフセットの大きさを11110として2値化し、第7代替オフセットの大きさを1111110として2値化し、第8代替オフセットの大きさを11111110として2値化し、第9代替オフセットの大きさを11111111として2値化する。
【0148】
いくつかの実施例では、プロセッサは、更に、固定長符号語使用して第1及び第2MVRオフセットのセットにおけるオフセットの方向をそれぞれ2値化してもよい。
【0149】
いくつかの実施例では、プロセッサ920は、更に、MVRが第1幾何学的パーティションに適用されるか否かを示す第1幾何学的パーティション有効構文要素(例えば、gpm_mvr_partIdx0_enable_flag)を受信し、幾何学的パーティション有効構文要素が1に等しいと判定したことに応じて、選択されたMVRオフセットのセットに基づいて決定された第1幾何学的パーティションの第1MVRオフセットのオフセット方向及びオフセット大きさを示す第1方向構文要素(例えば、gpm_mvr_partIdx0_direction_idx)及び第1大きさ構文要素(例えば、gpm_mvr_partIdx0_distance_idx)を受信し、MVRが第2幾何学的パーティションに適用されるか否かを示す第2幾何学的パーティション有効構文要素(例えば、gpm_mvr_partIdx1_enable_flag)を受信し、第2幾何学的パーティション有効構文要素が1に等しいと判定したことに応じて、選択されたMVRオフセットのセットに基づいて決定された第2幾何学的パーティションの第2MVRオフセットのオフセット方向及びオフセット大きさを示す第2方向構文要素(例えば、gpm_mvr_partIdx1_direction_idx)及び第2大きさ構文要素(例えば、gpm_mvr_partIdx1_distance_idx)を受信してもよい。
【0150】
ステップ806では、プロセッサ920は、第1幾何学的パーティション及び第2幾何学的パーティションの候補リストから第1MV及び第2MVを取得してもよい。
【0151】
ステップ807では、プロセッサ920は、第1及び第2MV、並びに、第1及び第2MVRオフセットに基づいて、第1リファインMV及び第2リファインMVを算出してもよい。
【0152】
ステップ808では、プロセッサ920は、第1及び第2リファインMVに基づいて、ビデオブロックの予測サンプルを取得してもよい。
【0153】
いくつかの実施例では、GPMでビデオブロックを復号化する装置が提供される。装置は、プロセッサ920と、プロセッサによって実行可能な命令を格納するメモリ940とを含み、プロセッサは、命令の実行時に、
図8に示す方法を実行するように構成される。
【0154】
他のいくつかの実施例では、命令を格納する非一時的コンピュータ可読記憶媒体が提供される。命令がプロセッサ920によって実行されると、命令は、
図8に示す方法をプロセッサに実行させる。
【0155】
本開示の他の実施例は、本明細書に開示された本開示の明細書及び実施を考慮することにより、当業者には明らかとなるであろう。本願は、その一般的な原理に従い、本分野で既知又は慣例の範囲内にある本開示からの逸脱を含む、本開示のあらゆる変形、使用、又は適応を網羅することを意図している。明細書及び実施例は、例示としてのみ考慮されることを意図している。
【0156】
本開示は、上述した、添付の図面によって示された正確な実施例に限定されるものではなく、本開示の範囲から逸脱することなく様々な修正及び変更を行うことができることが理解されるであろう。
【手続補正3】
【補正対象書類名】図面
【補正方法】変更
【補正の内容】
【国際調査報告】