(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-12-09
(54)【発明の名称】予測方法と装置、デバイス、システム、及び記憶媒体
(51)【国際特許分類】
H04N 19/105 20140101AFI20241202BHJP
H04N 19/176 20140101ALI20241202BHJP
H04N 19/136 20140101ALI20241202BHJP
H04N 19/70 20140101ALI20241202BHJP
【FI】
H04N19/105
H04N19/176
H04N19/136
H04N19/70
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024539671
(86)(22)【出願日】2022-04-12
(85)【翻訳文提出日】2024-06-28
(86)【国際出願番号】 CN2022086453
(87)【国際公開番号】W WO2023123736
(87)【国際公開日】2023-07-06
(31)【優先権主張番号】PCT/CN2021/144008
(32)【優先日】2021-12-31
(33)【優先権主張国・地域又は機関】CN
(81)【指定国・地域】
(71)【出願人】
【識別番号】516227559
【氏名又は名称】オッポ広東移動通信有限公司
【氏名又は名称原語表記】GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP., LTD.
【住所又は居所原語表記】No. 18 Haibin Road,Wusha, Chang’an,Dongguan, Guangdong 523860 China
(74)【代理人】
【識別番号】100120031
【氏名又は名称】宮嶋 学
(74)【代理人】
【識別番号】100107582
【氏名又は名称】関根 毅
(74)【代理人】
【識別番号】100152205
【氏名又は名称】吉田 昌司
(74)【代理人】
【識別番号】100137523
【氏名又は名称】出口 智也
(72)【発明者】
【氏名】ワン、ファン
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159LC09
5C159MA04
5C159MA05
5C159MA19
5C159MA21
5C159MC11
5C159ME01
5C159PP04
5C159RC11
5C159TA12
5C159TA18
5C159TB08
5C159TC26
5C159TD14
5C159UA02
5C159UA05
(57)【要約】
本出願において、予測方法と装置、デバイス、システム、及び記憶媒体が提供される。本出願では、K個の初期予測モードに基づいて現在ブロックの重み導出モードを確定することで、重み導出モードの確定方式がより豊かになる。また、本出願のエンコーディング側は、ビットストリームにおいて重み導出モードのインデックスを伝送しなくてもよく、デコーディング側はK個の初期予測モードに基づいて現在ブロックの重み導出モードを確定することができ、それによって、符号語を節約し、コーディングコストを削減することができる。
【特許請求の範囲】
【請求項1】
デコーダーに適用される予測方法であって、
ビットストリームをデコードして、K個の初期予測モードを確定することであって、前記Kは1より大きい正の整数である、確定することと、
前記K個の初期予測モードに基づいて、現在ブロックの重み導出モードを確定することと、
前記現在ブロックの重み導出モードに基づいて、前記現在ブロックの予測値を確定することと、
を含む、
ことを特徴とする予測方法。
【請求項2】
前記現在ブロックの重み導出モードに基づいて、前記現在ブロックの予測値を確定することは、
前記現在ブロックの重み導出モードに基づいて、K個の調整された予測モードを確定することと、
前記K個の調整された予測モードと前記現在ブロックの重み導出モードとに基づいて、前記現在ブロックの予測値を確定することと、
を含む、
ことを特徴とする請求項1に記載の方法。
【請求項3】
前記K個の初期予測モードに基づいて、現在ブロックの重み導出モードを確定することは、
N個の候補重み導出モードを確定することであって、前記Nは1より大きい正の整数である、確定することと、
前記N個の候補重み導出モードのうちのi番目の候補重み導出モードに対して、前記i番目の候補重み導出モードと前記K個の初期予測モードとに基づいて、前記i番目の候補重み導出モードに対応する第1コストを確定することであって、前記iは1からNまでの正の整数である、確定することと、
前記N個の候補重み導出モードの各々に対応する第1コストに基づいて、前記現在ブロックの重み導出モードを確定することと、
を含む、
ことを特徴とする請求項2に記載の方法。
【請求項4】
前記i番目の候補重み導出モードと前記K個の初期予測モードとに基づいて、前記i番目の候補重み導出モードに対応する第1コストを確定することは、
前記i番目の候補重み導出モードと前記K個の初期予測モードとを利用して前記現在ブロックのテンプレートを予測して、前記テンプレートの第1予測値を得ることと、
前記テンプレートの第1予測値と前記テンプレートの再構成値とに基づいて、前記i番目の重み導出モードに対応する第1コストを確定することと、
を含む、
ことを特徴とする請求項3に記載の方法。
【請求項5】
前記現在ブロックの重み導出モードに基づいて、K個の調整された予測モードを確定することは、
前記現在ブロックの重み導出モードに基づいて前記K個の初期予測モードを改善して、前記K個の調整された予測モードを得ること、を含む、
ことを特徴とする請求項4に記載の方法。
【請求項6】
前記現在ブロックの重み導出モードに基づいて前記K個の初期予測モードを改善して、前記K個の調整された予測モードを得ることは、
前記現在ブロックの重み導出モードに基づいて、第1のテンプレート重みを確定することと、
前記K個の初期予測モードのうちのj番目の初期予測モードに対して、前記j番目の初期予測モードに対応するM個の第1の候補予測モードを確定することであって、前記Mは1より大きい正の整数であり、前記jは1からKまでの正の整数である、確定することと、
前記第1のテンプレート重みに基づいて、前記M個の第1の候補予測モードの各々による前記テンプレートへの予測に対応する第2コストを確定することと、
前記M個の第1の候補予測モードの各々に対応する第2コストに基づいて、前記j番目の初期予測モードに対応する調整された予測モードを確定することと、
を含む、
ことを特徴とする請求項5に記載の方法。
【請求項7】
前記M個の第1の候補予測モードの各々に対応する第2コストに基づいて、前記j番目の初期予測モードに対応する調整された予測モードを確定することは、
前記M個の第1の候補予測モードのうちの、前記第2コストが最小である第1の候補予測モードを、前記j番目の初期予測モードに対応する調整された予測モードとして確定すること、を含む、
ことを特徴とする請求項6に記載の方法。
【請求項8】
前記i番目の候補重み導出モードと前記K個の初期予測モードとに基づいて、前記i番目の候補重み導出モードに対応する第1コストを確定することは、
前記i番目の候補重み導出モードに基づいて前記K個の初期予測モードを改善して、前記i番目の候補重み導出モードに対応するK個の第1の改善予測モードを得ることと、
前記i番目の候補重み導出モードと前記K個の第1の改善予測モードとに基づいて、前記i番目の候補重み導出モードに対応する第1コストを確定することと、
を含む、
ことを特徴とする請求項3に記載の方法。
【請求項9】
前記i番目の候補重み導出モードに基づいて前記K個の初期予測モードを改善して、前記i番目の候補重み導出モードに対応するK個の第1の改善予測モードを得ることは、
前記i番目の候補重み導出モードに基づいて第2のテンプレート重みを確定することと、
前記K個の初期予測モードのうちのj番目の初期予測モードに対して、前記j番目の初期予測モードに対応するM個の第1の候補予測モードを確定することであって、前記Mは正の整数であり、前記jは1からKまでの正の整数である、確定することと、
前記第2のテンプレート重みに基づいて、前記M個の第1の候補予測モードの各々による前記テンプレートへの予測に対応する第3コストを確定することと、
前記M個の第1の候補予測モードの各々に対応する第3コストに基づいて、前記j番目の初期予測モードに対応する第1の改善予測モードを確定することと、
を含む、
ことを特徴とする請求項8に記載の方法。
【請求項10】
前記M個の第1の候補予測モードの各々に対応する第3コストに基づいて、前記j番目の初期予測モードに対応する第1の改善予測モードを確定することは、
前記M個の第1の候補予測モードのうちの、前記第3コストが最小である第1の候補予測モードを、前記j番目の初期予測モードに対応する第1の改善予測モードとして確定すること、を含む、
ことを特徴とする請求項9に記載の方法。
【請求項11】
前記i番目の候補重み導出モードと前記K個の第1の改善予測モードとに基づいて、前記i番目の候補重み導出モードに対応する第1コストを確定することは、
前記i番目の候補重み導出モードと前記K個の第1の改善予測モードとを利用して前記現在ブロックのテンプレートを予測して、前記テンプレートの第2予測値を得ることと、
前記テンプレートの第2予測値と前記テンプレートの再構成値とに基づいて、前記i番目の重み導出モードに対応する第1コストを確定することと、
を含む、
ことを特徴とする請求項8に記載の方法。
【請求項12】
前記現在ブロックの重み導出モードに基づいて、K個の調整された予測モードを確定することは、
前記現在ブロックの重み導出モードに対応するK個の第1の改善予測モードを、前記K個の調整された予測モードとして確定すること、を含む、
ことを特徴とする請求項8に記載の方法。
【請求項13】
前記i番目の候補重み導出モードと前記K個の初期予測モードとに基づいて、前記i番目の候補重み導出モードに対応する第1コストを確定することは、
前記K個の初期予測モードのうちのj番目の初期予測モードに対して、前記j番目の初期予測モードに対応する、P個のサブテンプレートに関する第2の改善予測モードを確定することであって、前記Pは正の整数であり、前記jは1からKまでの正の整数である、確定することと、
前記i番目の候補重み導出モードに基づいて、前記K個の初期予測モードの各々に対応する、前記P個のサブテンプレートに関する第2の改善予測モードから、前記i番目の候補重み導出モードに対応するK個の第2の改善予測モードを確定することと、
前記i番目の候補重み導出モードと前記K個の第2の改善予測モードとに基づいて、前記i番目の候補重み導出モードに対応する第1コストを確定することと、
を含む、
ことを特徴とする請求項3に記載の方法。
【請求項14】
前記i番目の候補重み導出モードに基づいて、前記K個の初期予測モードの各々に対応する、前記P個のサブテンプレートに関する第2の改善予測モードから、前記i番目の候補重み導出モードに対応するK個の第2の改善予測モードを確定することは、
前記i番目の候補重み導出モードに対応する分割角度を確定することと、
前記分割角度と予測モードに対応するテンプレートとの対応関係に基づいて、前記K個の初期予測モードの各々に対応する、前記P個のサブテンプレートに関する第2の改善予測モードから、前記i番目の候補重み導出モードに対応するK個の第2の改善予測モードを確定することと、
を含む、
ことを特徴とする請求項13に記載の方法。
【請求項15】
前記P個のサブテンプレートは、前記現在ブロックの左側テンプレート、上側テンプレート、及び全テンプレートのうちの少なくとも1つを含む、
ことを特徴とする請求項13に記載の方法。
【請求項16】
前記j番目の初期予測モードに対応する、前記P個のサブテンプレートに関する第2の改善予測モードを確定することは、
前記j番目の初期予測モードに対応するM個の第1の候補予測モードを確定することであって、前記Mは1より大きい正の整数である、確定することと、
P個のサブテンプレートのうちのp番目のサブテンプレートに対して、前記M個の第1の候補予測モードの各々による前記p番目のサブテンプレートへの予測に対応する第4コストを確定することであって、前記pは1からPまでの正の整数である、確定することと、
前記M個の第1の候補予測モードの各々に対応する、前記p番目のサブテンプレートに関する第4コストに基づいて、前記j番目の初期予測モードに対応する、前記p番目のサブテンプレートに関する第2の改善予測モードを確定することと、
を含む、
ことを特徴とする請求項15に記載の方法。
【請求項17】
前記M個の第1の候補予測モードの各々に対応する、前記p番目のサブテンプレートに関する第4コストに基づいて、前記j番目の初期予測モードに対応する、前記p番目のサブテンプレートに関する第2の改善予測モードを確定することは、
前記M個の第1の候補予測モードのうちの、前記p番目のサブテンプレートに関する第4コストが最小である第1の候補予測モードを、前記j番目の初期予測モードに対応する、前記p番目のサブテンプレートに関する第2の改善予測モードとして確定すること、を含む、
ことを特徴とする請求項16に記載の方法。
【請求項18】
前記M個の第1の候補予測モードの各々による前記p番目のサブテンプレートへの予測に対応する第4コストを確定することは、
前記M個の第1の候補予測モードのうちのいずれか1つの第1の候補予測モードに対して、前記第1の候補予測モードを利用して前記p番目のサブテンプレートを予測して、前記p番目のサブテンプレートの予測値を得ることと、
前記p番目のサブテンプレートの予測値と前記p番目のサブテンプレートの再構成値とに基づいて、前記第1の候補予測モードに対応する、前記p番目のサブテンプレートに関する第4コストを確定することと、
を含む、
ことを特徴とする請求項16に記載の方法。
【請求項19】
前記i番目の候補重み導出モードと前記K個の第2の改善予測モードとに基づいて、前記i番目の候補重み導出モードに対応する第1コストを確定することは、
前記i番目の候補重み導出モードと前記K個の第2の改善予測モードとを利用して前記現在ブロックのテンプレートを予測して、前記テンプレートの第3予測値を得ることと、
前記テンプレートの第3予測値と前記テンプレートの再構成値とに基づいて、前記i番目の重み導出モードに対応する第1コストを確定することと、
を含む、
ことを特徴とする請求項13に記載の方法。
【請求項20】
前記現在ブロックの重み導出モードに基づいて、K個の調整された予測モードを確定することは、
前記現在ブロックの重み導出モードに対応するK個の第2の改善予測モードに基づいて、前記K個の調整された予測モードを確定すること、を含む、
ことを特徴とする請求項13に記載の方法。
【請求項21】
前記現在ブロックの重み導出モードに対応するK個の第2の改善予測モードに基づいて、前記K個の調整された予測モードを確定することは、
前記現在ブロックの重み導出モードに対応するK個の第2の改善予測モードを、前記K個の調整された予測モードとして確定すること、を含む、
ことを特徴とする請求項20に記載の方法。
【請求項22】
前記現在ブロックの重み導出モードに対応するK個の第2の改善予測モードに基づいて、前記K個の調整された予測モードを確定することは、
前記現在ブロックの重み導出モードに基づいて前記K個の第2の改善予測モードを改善して、前記K個の調整された予測モードを得ること、を含む、
ことを特徴とする請求項20に記載の方法。
【請求項23】
前記現在ブロックの重み導出モードに基づいて前記K個の第2の改善予測モードを改善して、前記K個の調整された予測モードを得ることは、
前記現在ブロックの重み導出モードに基づいて、第1のテンプレート重みを確定することと、
前記K個の第2の改善予測モードのうちのk番目の第2の改善予測モードに対して、前記k番目の第2の改善予測モードに対応するP個の第2の候補予測モードを確定することであって、前記Pは1より大きい正の整数であり、前記kは1からKまでの正の整数である、確定することと、
前記第1のテンプレート重みに基づいて、前記P個の第2の候補予測モードの各々による前記テンプレートへの予測に対応する第5コストを確定することと、
前記P個の第2の候補予測モードの各々に対応する第5コストに基づいて、前記k番目の第2の改善予測モードに対応する調整された予測モードを確定することと、
を含む、
ことを特徴とする請求項22に記載の方法。
【請求項24】
前記P個の第2の候補予測モードの各々に対応する第5コストに基づいて、前記k番目の第2の改善予測モードに対応する調整された予測モードを確定することは、
前記P個の第2の候補予測モードのうちの、前記第5コストが最小である第2の候補予測モードを、前記k番目の第2の改善予測モードに対応する調整された予測モードとして確定すること、を含む、
ことを特徴とする請求項23に記載の方法。
【請求項25】
前記j番目の初期予測モードがイントラ予測モードである場合、前記j番目の初期予測モードに対応するM個の第1の候補予測モードを確定することは、
前記j番目の初期予測モードに類似するM個のイントラ予測モードを、前記M個の第1の候補予測モードとして確定すること、を含む、
ことを特徴とする請求項6、10又は16に記載の方法。
【請求項26】
前記j番目の初期予測モードがインター予測モードである場合、前記j番目の初期予測モードに対応するM個の第1の候補予測モードを確定することは、
前記j番目の初期予測モードに基づいて検索を行って、M個の第1動き情報を得ることと、
前記M個の第1動き情報に基づいて、前記M個の第1の候補予測モードを得ることと、
を含む、
ことを特徴とする請求項6、10又は16に記載の方法。
【請求項27】
前記j番目の初期予測モードに基づいて検索を行って、M個の第1動き情報を得ることは、
前記i番目の初期予測モードに基づいて検索を行って、M個のオフセットを得ることと、
前記M個のオフセットに基づいて、前記M個の第1動き情報を得ることと、
を含む、
ことを特徴とする請求項26に記載の方法。
【請求項28】
前記k番目の第2の改善予測モードがイントラ予測モードである場合、前記k番目の第2の改善予測モードに対応するP個の第2の候補予測モードを確定することは、
前記k番目の第2の改善予測モードに類似するP個のイントラ予測モードを、前記P個の第2の候補予測モードとして確定すること、
を含む、
ことを特徴とする請求項23に記載の方法。
【請求項29】
前記k番目の第2の改善予測モードがインター予測モードである場合、前記k番目の第2の改善予測モードに対応するP個の第2の候補予測モードを確定することは、
前記k番目の第2の改善予測モードに基づいて検索を行って、P個の第2動き情報を得ることと、
前記P個の第2動き情報に基づいて、前記P個の第2の候補予測モードを得ることと、
を含む、
ことを特徴とする請求項23に記載の方法。
【請求項30】
前記k番目の第2の改善予測モードに基づいて検索を行って、P個の第2動き情報を得ることは、
前記k番目の第2の改善予測モードに基づいて検索を行って、P個のオフセットを得ることと、
前記P個のオフセットに基づいて、P個の第2動き情報を得ることと、
を含む、
ことを特徴とする請求項29に記載の方法。
【請求項31】
前記N個の候補重み導出モードの各々に対応するコストに基づいて、前記現在ブロックの重み導出モードを確定することは、
前記N個の候補重み導出モードのうちの、前記第1コストが最小である候補重み導出モードを、前記現在ブロックの重み導出モードとして確定すること、を含む、
ことを特徴とする請求項3~24のいずれか一項に記載の方法。
【請求項32】
前記N個の候補重み導出モードの各々に対応する第1コストに基づいて、前記現在ブロックの重み導出モードを確定することは、
前記N個の候補重み導出モードの各々に対応する第1コストに基づいて、前記N個の候補重み導出モードをソートして、候補重み導出モードのリストを得ることと、
前記ビットストリームをデコードして、重み導出モードインデックスを得ることと、
前記候補重み導出モードのリストにおける、前記重み導出モードインデックスに対応する候補重み導出モードを、前記現在ブロックの重み導出モードとして確定することと、
を含む、
ことを特徴とする請求項3~24のいずれか一項に記載の方法。
【請求項33】
前記ビットストリームをデコードして、K個の初期予測モードを確定することは、
侯選予測モードのリストを確定することであって、前記侯選予測モードのリストは少なくとも2つの侯選予測モードを含む、確定することと、
前記ビットストリームをデコードして、予測モードインデックスを得ることと、
前記予測モードインデックスに基づいて、前記侯選予測モードのリストから前記K個の初期予測モードを確定することと、
を含む、
ことを特徴とする請求項1~24のいずれか一項に記載の方法。
【請求項34】
前記方法は、
重み導出モードに基づいて、角度インデクシングと距離インデクシングを確定することと、
前記角度インデックス、前記距離インデックス、及びテンプレートのサイズに基づいて、テンプレート重みを確定することと、をさらに含み、
前記重み導出モードが前記現在ブロックの重み導出モードである場合、前記テンプレート重みは第1のテンプレート重みであり、前記重み導出モードがi番目の候補重み導出モードである場合、前記テンプレート重みは第2のテンプレート重みである、
ことを特徴とする請求項6、9又は23に記載の方法。
【請求項35】
前記角度インデックス、前記距離インデックス、及びテンプレートのサイズに基づいて、 前記テンプレート重みを確定することは、
前記角度インデックス、前記距離インデックス、及び前記テンプレートのサイズに基づいて、前記テンプレート内のサンプルの第1パラメータを確定することであって、前記第1パラメータは重みを確定するために用いられる、確定することと、
前記テンプレート内のサンプルの第1パラメータに基づいて、前記テンプレート内のサンプルの重みを確定することと、
前記テンプレート内のサンプルの重みに基づいて、前記テンプレート重みを確定することと、
を含む、
ことを特徴とする請求項34に記載の方法。
【請求項36】
前記K個の調整された予測モードと前記現在ブロックの重み導出モードとに基づいて、前記現在ブロックの予測値を確定することは、
前記K個の調整された予測モードに基づいて、K個の予測値を確定することと、
前記現在ブロックの重み導出モードに基づいて、予測値の重みを確定することと、
前記K個の予測モードと前記予測値の重みとに基づいて、前記現在ブロックの予測値を確定することと、
を含む、
ことを特徴とする請求項35に記載の方法。
【請求項37】
前記角度インデックス、前記距離インデックス、及びテンプレートのサイズに基づいて、 前記テンプレート重みを確定することは、
前記角度インデックス、前記距離インデックス、前記テンプレートのサイズ、及び前記現在ブロックのサイズに基づいて、前記現在ブロックと前記テンプレートとからなるマージ領域内のサンプルの重みを確定することと、
前記テンプレートのサイズと前記マージ領域内のサンプルの重みとに基づいて、前記テンプレート重みを確定することと、
を含む、
ことを特徴とする請求項34に記載の方法。
【請求項38】
前記K個の調整された予測モードと前記現在ブロックの重み導出モードとに基づいて、前記現在ブロックの予測値を確定することは、
前記K個の調整された予測モードに基づいて、K個の予測値を確定することと、
前記マージ領域内のサンプルの重みに基づいて、予測値の重みを確定することと、
前記K個の予測値及び前記予測値の重みに基づいて、前記現在ブロックの予測値を確定することと、
を含む、
ことを特徴とする請求項37に記載の方法。
【請求項39】
前記マージ領域内のサンプルの重みに基づいて、前記K個の予測値の重みを確定することは、
前記マージ領域内の前記現在ブロック内のサンプルに対応する重みに基づいて、前記K個の予測値の重みを確定すること、を含む、
ことを特徴とする請求項38に記載の方法。
【請求項40】
前記現在ブロックのテンプレートは、前記現在ブロックの上側のデコードされた領域、左側のデコードされた領域、及び左上側のデコードされた領域のうちの少なくとも1つを含む、
ことを特徴とする請求項4~24のいずれか一項に記載の方法。
【請求項41】
予測方法であって、
K個の初期予測モードを確定することであって、前記Kは1より大きい正の整数である、確定することと、
前記K個の初期予測モードに基づいて、現在ブロックの重み導出モードを確定することと、
前記現在ブロックの重み導出モードに基づいて、前記現在ブロックの予測値を確定することと、
を含む、
ことを特徴とする予測方法。
【請求項42】
前記現在ブロックの重み導出モードに基づいて、前記現在ブロックの予測値を確定することは、
前記現在ブロックの重み導出モードに基づいて、K個の調整された予測モードを確定することと、
前記K個の調整された予測モードと前記現在ブロックの重み導出モードとに基づいて、前記現在ブロックの予測値を確定することと、
を含む、
ことを特徴とする請求項41に記載の方法。
【請求項43】
前記K個の初期予測モードに基づいて、前記現在ブロックの重み導出モードを確定することは、
N個の候補重み導出モードを確定することであって、前記Nは1より大きい正の整数である、確定することと、
前記N個の候補重み導出モードのうちのi番目の候補重み導出モードに対して、前記i番目の候補重み導出モードと前記K個の初期予測モードとに基づいて、前記i番目の候補重み導出モードに対応する第1コストを確定することであって、前記iは1からNまでの正の整数である、確定することと、
前記N個の候補重み導出モードの各々に対応する第1コストに基づいて、前記現在ブロックの重み導出モードを確定することと、
を含む、
ことを特徴とする請求項42に記載の方法。
【請求項44】
前記i番目の候補重み導出モードと前記K個の初期予測モードとに基づいて、前記i番目の候補重み導出モードに対応する第1コストを確定することは、
前記i番目の候補重み導出モードと前記K個の初期予測モードとを利用して前記現在ブロックのテンプレートを予測して、前記テンプレートの第1予測値を得ることと、
前記テンプレートの第1予測値と前記テンプレートの再構成値とに基づいて、前記i番目の重み導出モードに対応する第1コストを確定することと、
を含む、
ことを特徴とする請求項43に記載の方法。
【請求項45】
前記現在ブロックの重み導出モードに基づいて、K個の調整された予測モードを確定することは、
前記現在ブロックの重み導出モードに基づいて前記K個の初期予測モードを改善して、前記K個の調整された予測モードを得ること、を含む、
ことを特徴とする請求項44に記載の方法。
【請求項46】
前記現在ブロックの重み導出モードに基づいて前記K個の初期予測モードを改善して、前記K個の調整された予測モードを得ることは、
前記現在ブロックの重み導出モードに基づいて、第1のテンプレート重みを確定することと、
前記K個の初期予測モードのうちのj番目の初期予測モードに対して、前記j番目の初期予測モードに対応するM個の第1の候補予測モードを確定することであって、前記Mは1より大きい正の整数であり、前記jは1からKまでの正の整数である、確定することと、
前記第1のテンプレート重みに基づいて、前記M個の第1の候補予測モードの各々による前記テンプレートへの予測に対応する第2コストを確定することと、
前記M個の第1の候補予測モードの各々に対応する第2コストに基づいて、前記j番目の初期予測モードに対応する調整された予測モードを確定することと、
を含む、
ことを特徴とする請求項45に記載の方法。
【請求項47】
前記M個の第1の候補予測モードの各々に対応する第2コストに基づいて、前記j番目の初期予測モードに対応する調整された予測モードを確定することは、
前記M個の第1の候補予測モードのうちの、前記第2コストが最小である第1の候補予測モードを、前記j番目の初期予測モードに対応する調整された予測モードとして確定すること、を含む、
ことを特徴とする請求項46に記載の方法。
【請求項48】
前記i番目の候補重み導出モードと前記K個の初期予測モードとに基づいて、前記i番目の候補重み導出モードに対応する第1コストを確定することは、
前記i番目の候補重み導出モードに基づいて前記K個の初期予測モードを改善して、前記i番目の候補重み導出モードに対応するK個の第1の改善予測モードを得ることと、
前記i番目の候補重み導出モードと前記K個の第1の改善予測モードとに基づいて、前記i番目の候補重み導出モードに対応する第1コストを確定することと、
を含む、
ことを特徴とする請求項43に記載の方法。
【請求項49】
前記i番目の候補重み導出モードに基づいて前記K個の初期予測モードを改善して、前記i番目の候補重み導出モードに対応するK個の第1の改善予測モードを得ることは、
前記i番目の候補重み導出モードに基づいて第2のテンプレート重みを確定することと、
前記K個の初期予測モードのうちのj番目の初期予測モードに対して、前記j番目の初期予測モードに対応するM個の第1の候補予測モードを確定することであって、前記Mは正の整数であり、前記jは1からKまでの正の整数である、確定することと、
前記第2のテンプレート重みに基づいて、前記M個の第1の候補予測モードの各々による前記テンプレートへの予測に対応する第3コストを確定することと、
前記M個の第1の候補予測モードの各々に対応する第3コストに基づいて、前記j番目の初期予測モードに対応する第1の改善予測モードを確定することと、
を含む、
ことを特徴とする請求項48に記載の方法。
【請求項50】
前記M個の第1の候補予測モードの各々に対応する第3コストに基づいて、前記j番目の初期予測モードに対応する第1の改善予測モードを確定することは、
前記M個の第1の候補予測モードのうちの、前記第3コストが最小である第1の候補予測モードを、前記j番目の初期予測モードに対応する第1の改善予測モードとして確定すること、を含む、
ことを特徴とする請求項49に記載の方法。
【請求項51】
前記i番目の候補重み導出モードと前記K個の第1の改善予測モードとに基づいて、前記i番目の候補重み導出モードに対応する第1コストを確定することは、
前記i番目の候補重み導出モードと前記K個の第1の改善予測モードとを利用して前記現在ブロックのテンプレートを予測して、前記テンプレートの第2予測値を得ることと、
前記テンプレートの第2予測値と前記テンプレートの再構成値とに基づいて、前記i番目の重み導出モードに対応する第1コストを確定することと、
を含む、
ことを特徴とする請求項47に記載の方法。
【請求項52】
前記現在ブロックの重み導出モードに基づいて、K個の調整された予測モードを確定することは、
前記現在ブロックの重み導出モードに対応するK個の第1の改善予測モードを、前記K個の調整された予測モードとして確定すること、を含む、
ことを特徴とする請求項48に記載の方法。
【請求項53】
前記i番目の候補重み導出モードと前記K個の初期予測モードとに基づいて、前記i番目の候補重み導出モードに対応する第1コストを確定することは、
前記K個の初期予測モードのうちのj番目の初期予測モードに対して、前記j番目の初期予測モードに対応する、P個のサブテンプレートに関する第2の改善予測モードを確定することであって、前記Pは正の整数であり、前記jは1からKまでの正の整数である、確定することと、
前記i番目の候補重み導出モードに基づいて、前記K個の初期予測モードの各々に対応する、前記P個のサブテンプレートに関する第2の改善予測モードから、前記i番目の候補重み導出モードに対応するK個の第2の改善予測モードを確定することと、
前記i番目の候補重み導出モードと前記K個の第2の改善予測モードとに基づいて、前記i番目の候補重み導出モードに対応する第1コストを確定することと、
を含む、
ことを特徴とする請求項43に記載の方法。
【請求項54】
前記i番目の候補重み導出モードに基づいて、前記K個の初期予測モードの各々に対応する、前記P個のサブテンプレートに関する第2の改善予測モードから、前記i番目の候補重み導出モードに対応するK個の第2の改善予測モードを確定することは、
前記i番目の候補重み導出モードに対応する分割角度を確定することと、
前記分割角度と予測モードに対応するテンプレートとの対応関係に基づいて、前記K個の初期予測モードの各々に対応する、前記P個のサブテンプレートに関する第2の改善予測モードから、前記i番目の候補重み導出モードに対応するK個の第2の改善予測モードを確定することと、
を含む、
ことを特徴とする請求項53に記載の方法。
【請求項55】
前記P個のサブテンプレートは、前記現在ブロックの左側テンプレート、上側テンプレート、及び全テンプレートのうちの少なくとも1つを含む、
ことを特徴とする請求項53に記載の方法。
【請求項56】
前記j番目の初期予測モードに対応する、前記P個のサブテンプレートに関する第2の改善予測モードを確定することは、
前記j番目の初期予測モードに対応するM個の第1の候補予測モードを確定することであって、前記Mは1より大きい正の整数である、確定することと、
P個のサブテンプレートのうちのp番目のサブテンプレートに対して、前記M個の第1の候補予測モードの各々による前記p番目のサブテンプレートへの予測に対応する第4コストを確定することであって、前記pは1からPまでの正の整数である、確定することと、
前記M個の第1の候補予測モードの各々に対応する、前記p番目のサブテンプレートに関する第4コストに基づいて、前記j番目の初期予測モードに対応する、前記p番目のサブテンプレートに関する第2の改善予測モードを確定することと、
を含む、
ことを特徴とする請求項55に記載の方法。
【請求項57】
前記M個の第1の候補予測モードの各々に対応する、前記p番目のサブテンプレートに関する第4コストに基づいて、前記j番目の初期予測モードに対応する、前記p番目のサブテンプレートに関する第2の改善予測モードを確定することは、
前記M個の第1の候補予測モードのうちの、前記p番目のサブテンプレートに関する第4コストが最小である第1の候補予測モードを、前記j番目の初期予測モードに対応する、前記p番目のサブテンプレートに関する第2の改善予測モードとして確定すること、を含む、
ことを特徴とする請求項56に記載の方法。
【請求項58】
前記M個の第1の候補予測モードの各々による前記p番目のサブテンプレートへの予測に対応する第4コストを確定することは、
前記M個の第1の候補予測モードのうちのいずれか1つの第1の候補予測モードに対して、前記第1の候補予測モードを利用して前記p番目のサブテンプレートを予測して、前記p番目のサブテンプレートの予測値を得ることと、
前記p番目のサブテンプレートの予測値と前記p番目のサブテンプレートの再構成値とに基づいて、前記第1の候補予測モードに対応する、前記p番目のサブテンプレートに関する第4コストを確定することと、
を含む、
ことを特徴とする請求項56に記載の方法。
【請求項59】
前記i番目の候補重み導出モードと前記K個の第2の改善予測モードとに基づいて、前記i番目の候補重み導出モードに対応する第1コストを確定することは、
前記i番目の候補重み導出モードと前記K個の第2の改善予測モードとを利用して前記現在ブロックのテンプレートを予測して、前記テンプレートの第3予測値を得ることと、
前記テンプレートの第3予測値と前記テンプレートの再構成値とに基づいて、前記i番目の重み導出モードに対応する第1コストを確定することと、
を含む、
ことを特徴とする請求項53に記載の方法。
【請求項60】
前記現在ブロックの重み導出モードに基づいて、K個の調整された予測モードを確定することは、
前記現在ブロックの重み導出モードに対応するK個の第2の改善予測モードに基づいて、前記K個の調整された予測モードを確定すること、を含む、
ことを特徴とする請求項53に記載の方法。
【請求項61】
前記現在ブロックの重み導出モードに対応するK個の第2の改善予測モードに基づいて、前記K個の調整された予測モードを確定することは、
前記現在ブロックの重み導出モードに対応するK個の第2の改善予測モードを、前記K個の調整された予測モードとして確定すること、を含む、
ことを特徴とする請求項60に記載の方法。
【請求項62】
前記現在ブロックの重み導出モードに対応するK個の第2の改善予測モードに基づいて、前記K個の調整された予測モードを確定することは、
前記現在ブロックの重み導出モードに基づいて前記K個の第2の改善予測モードを改善して、前記K個の調整された予測モードを得ること、を含む、
ことを特徴とする請求項60に記載の方法。
【請求項63】
前記現在ブロックの重み導出モードに基づいて前記K個の第2の改善予測モードを改善して、前記K個の調整された予測モードを得ることは、
前記現在ブロックの重み導出モードに基づいて、第1のテンプレート重みを確定することと、
前記K個の第2の改善予測モードのうちのk番目の第2の改善予測モードに対して、前記k番目の第2の改善予測モードに対応するP個の第2の候補予測モードを確定することであって、前記Pは1より大きい正の整数であり、前記kは1からKまでの正の整数である、確定することと、
前記第1のテンプレート重みに基づいて、前記P個の第2の候補予測モードの各々による前記テンプレートへの予測に対応する第5コストを確定することと、
前記P個の第2の候補予測モードの各々に対応する第5コストに基づいて、前記k番目の第2の改善予測モードに対応する調整された予測モードを確定することと、
を含む、
ことを特徴とする請求項62に記載の方法。
【請求項64】
前記P個の第2の候補予測モードの各々に対応する第5コストに基づいて、前記k番目の第2の改善予測モードに対応する調整された予測モードを確定することは、
前記P個の第2の候補予測モードのうちの、前記第5コストが最小である第2の候補予測モードを、前記k番目の第2の改善予測モードに対応する調整された予測モードとして確定すること、を含む、
ことを特徴とする請求項63に記載の方法。
【請求項65】
前記j番目の初期予測モードがイントラ予測モードである場合、前記j番目の初期予測モードに対応するM個の第1の候補予測モードを確定することは、
前記j番目の初期予測モードに類似するM個のイントラ予測モードを、前記M個の第1の候補予測モードとして確定すること、を含む、
ことを特徴とする請求項46、50又は56に記載の方法。
【請求項66】
前記j番目の初期予測モードがインター予測モードである場合、前記j番目の初期予測モードに対応するM個の第1の候補予測モードを確定することは、
前記j番目の初期予測モードに基づいて検索を行って、M個の第1動き情報を得ることと、
前記M個の第1動き情報に基づいて、前記M個の第1の候補予測モードを得ることと、
を含む、
ことを特徴とする請求項46、50又は56に記載の方法。
【請求項67】
前記j番目の初期予測モードに基づいて検索を行って、M個の第1動き情報を得ることは、
前記i番目の初期予測モードに基づいて検索を行って、M個のオフセットを得ることと、
前記M個のオフセットに基づいて、前記M個の第1動き情報を得ることと、
を含む、
ことを特徴とする請求項66に記載の方法。
【請求項68】
前記k番目の第2の改善予測モードがイントラ予測モードである場合、前記k番目の第2の改善予測モードに対応するP個の第2の候補予測モードを確定することは、
前記k番目の第2の改善予測モードに類似するP個のイントラ予測モードを、前記P個の第2の候補予測モードとして確定すること、
を含む、
ことを特徴とする請求項63に記載の方法。
【請求項69】
前記k番目の第2の改善予測モードがインター予測モードである場合、前記k番目の第2の改善予測モードに対応するP個の第2の候補予測モードを確定することは、
前記k番目の第2の改善予測モードに基づいて検索を行って、P個の第2動き情報を得ることと、
前記P個の第2動き情報に基づいて、前記P個の第2の候補予測モードを得ることと、
を含む、
ことを特徴とする請求項63に記載の方法。
【請求項70】
前記k番目の第2の改善予測モードに基づいて検索を行って、P個の第2動き情報を得ることは、
前記k番目の第2の改善予測モードに基づいて検索を行って、P個のオフセットを得ることと、
前記P個のオフセットに基づいて、P個の第2動き情報を得ることと、
を含む、
ことを特徴とする請求項69に記載の方法。
【請求項71】
前記N個の候補重み導出モードの各々に対応するコストに基づいて、前記現在ブロックの重み導出モードを確定することは、
前記N個の候補重み導出モードのうちの、前記第1コストが最小である候補重み導出モードを、前記現在ブロックの重み導出モードとして確定すること、を含む、
ことを特徴とする請求項43~64のいずれか一項に記載の方法。
【請求項72】
前記N個の候補重み導出モードの各々に対応する第1コストに基づいて、前記現在ブロックの重み導出モードを確定することは、
前記N個の候補重み導出モードの各々に対応する第1コストに基づいて、前記N個の候補重み導出モードをソートして、候補重み導出モードのリストを得ることと、
前記候補重み導出モードのリストに基づいて、前記現在ブロックの重み導出モードを確定することと、
を含む、
ことを特徴とする請求項43~64のいずれか一項に記載の方法。
【請求項73】
前記方法は、
前記候補重み導出モードのリストにおける前記現在ブロックの重み導出モードに対応する重み導出モードインデックスをビットストリームに書き込むこと、をさらに含む、
ことを特徴とする請求項71に記載の方法。
【請求項74】
前記方法は、
ビットストリームに予測モードインデックスを書き込むことをさらに含み、
前記予測モードインデックスは、前記K個の初期予測モードを確定するために用いられる、
ことを特徴とする請求項41に記載の方法。
【請求項75】
前記方法は、
重み導出モードに基づいて、角度インデクシングと距離インデクシングを確定することと、
前記角度インデックス、前記距離インデックス、及びテンプレートのサイズに基づいて、テンプレート重みを確定することと、をさらに含み、
前記重み導出モードが前記現在ブロックの重み導出モードである場合、前記テンプレート重みは第1のテンプレート重みであり、前記重み導出モードがi番目の候補重み導出モードである場合、前記テンプレート重みは第2のテンプレート重みである、
ことを特徴とする請求項46、49又は63に記載の方法。
【請求項76】
前記角度インデックス、前記距離インデックス、及びテンプレートのサイズに基づいて、 前記テンプレート重みを確定することは、
前記角度インデックス、前記距離インデックス、及び前記テンプレートのサイズに基づいて、前記テンプレート内のサンプルの第1パラメータを確定することであって、前記第1パラメータは重みを確定するために用いられる、確定することと、
前記テンプレート内のサンプルの第1パラメータに基づいて、前記テンプレート内のサンプルの重みを確定することと、
前記テンプレート内のサンプルの重みに基づいて、前記テンプレート重みを確定することと、
を含む、
ことを特徴とする請求項75に記載の方法。
【請求項77】
前記K個の調整された予測モードと前記現在ブロックの重み導出モードとに基づいて、前記現在ブロックの予測値を確定することは、
前記K個の調整された予測モードに基づいて、K個の予測値を確定することと、
前記現在ブロックの重み導出モードに基づいて、予測値の重みを確定することと、
前記K個の予測モードと前記予測値の重みとに基づいて、前記現在ブロックの予測値を確定することと、
を含む、
ことを特徴とする請求項76に記載の方法。
【請求項78】
前記角度インデックス、前記距離インデックス、及びテンプレートのサイズに基づいて、 前記テンプレート重みを確定することは、
前記角度インデックス、前記距離インデックス、前記テンプレートのサイズ、及び前記現在ブロックのサイズに基づいて、前記現在ブロックと前記テンプレートとからなるマージ領域内のサンプルの重みを確定することと、
前記テンプレートのサイズと前記マージ領域内のサンプルの重みとに基づいて、前記テンプレート重みを確定することと、
を含む、
ことを特徴とする請求項75に記載の方法。
【請求項79】
前記K個の調整された予測モードと前記現在ブロックの重み導出モードとに基づいて、前記現在ブロックの予測値を確定することは、
前記K個の調整された予測モードに基づいて、K個の予測値を確定することと、
前記マージ領域内のサンプルの重みに基づいて、予測値の重みを確定することと、
前記K個の予測値及び前記予測値の重みに基づいて、前記現在ブロックの予測値を確定することと、
を含む、
ことを特徴とする請求項78に記載の方法。
【請求項80】
前記マージ領域内のサンプルの重みに基づいて、前記K個の予測値の重みを確定することは、
前記マージ領域内の前記現在ブロック内のサンプルに対応する重みに基づいて、前記K個の予測値の重みを確定すること、を含む、
ことを特徴とする請求項79に記載の方法。
【請求項81】
前記テンプレートは、前記現在ブロックの上側のデコードされた領域、左側のデコードされた領域、及び左上側のデコードされた領域のうちの少なくとも1つを含む、
ことを特徴とする請求41~64のいずれか一項に記載の方法。
【請求項82】
予測装置であって、
デコーディングユニット、確定ユニット、及び予測ユニットを備え、
前記デコーディングユニットは、ビットストリームをデコードして、K個の初期予測モードを確定するように構成されており、前記Kは1より大きい正の整数であり、
前記確定ユニットは、前記K個の初期予測モードに基づいて、現在ブロックの重み導出モードを確定するように構成されており、
前記予測ユニットは、前記現在ブロックの重み導出モードに基づいて、前記現在ブロックの予測値を確定するように構成されている、
ことを特徴とする予測装置。
【請求項83】
予測装置であって、
第1の確定ユニット、第2の確定ユニット、及び予測ユニットを備え、
前記第1の確定ユニットは、K個の初期予測モードを確定するように構成されており、前記Kは1より大きい正の整数であり、
前記第2の確定ユニットは、前記K個の初期予測モードに基づいて、現在ブロックの重み導出モードを確定するように構成されており、
前記予測ユニットは、前記現在ブロックの重み導出モードに基づいて、前記現在ブロックの予測値を確定するように構成されている、
ことを特徴とする予測装置。
【請求項84】
プロセッサとメモリとを備える電子デバイスであって、
前記メモリーは、コンピュータプログラムを記憶するように構成されており、
前記プロセッサは、前記メモリに記憶されたコンピュータプログラムを呼び出して実行することにより、請求項1~40のいずれか一項に記載の方法、又は請求項41~81のいずれか一項に記載の方法を実現するように構成されている、
ことを特徴とする電子デバイス。
【請求項85】
ビデオエンコーディング・デコーディングシステムであって、
ビデオエンコーダー及びビデオデコーダーを含み、
前記ビデオデコーダーは、請求項1~40のいずれか一項に記載の方法を実現するように構成されており、
前記ビデオエンコーダーは、請求項41~81のいずれか一項に記載の方法を実現するように構成されている、
ことを特徴とするビデオエンコーディング・デコーディングシステム。
【請求項86】
コンピュータ可読記憶媒体であって、
前記コンピュータ可読記憶媒体はコンピュータプログラムを記憶するように構成されており、
前記コンピュータプログラムは、コンピュータに請求項1~40のいずれか一項に記載の方法、又は請求項41~81のいずれか一項に記載の方法を実行させる、
ことを特徴とするコンピュータ可読記憶媒体。
【請求項87】
請求項41~81のいずれか一項に記載の方法に基づいて生成される、
ことを特徴とするビットストリーム。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、ビデオエンコーディング・デコーディングの技術分野に関し、特に予測方法と装置、デバイス、システム、及び記憶媒体に関する。
【背景技術】
【0002】
デジタルビデオ技術は、デジタルテレビ、スマートフォン、コンピュータ、電子リーダー、又はビデオプレーヤなどの様々なビデオ装置に組み込まれることができる。ビデオ技術の発展に伴い、ビデオデータのデータ量が大きくなっている。ビデオデータの伝送を容易にするために、ビデオ装置がビデオ圧縮技術を利用することにより、ビデオデータがより効果的に伝送され又は記憶される。
【0003】
ビデオには時間的又は空間的な冗長性が存在するため、予測によってビデオにおける冗長性を除去又は低減し、圧縮効率を向上させることができる。いくつかの場合では、複数の予測モードを利用して現在ブロック(current block)を予測して、現在ブロックの予測値を得る。これらの場合、エンコーディング側とデコーディング側との一致性を保つために、エンコーディング側は現在ブロックを予測することに必要なモード情報をビットストリームに書き込む必要がある。それによって、エンコーディングリソースが多く占有され、コーディングコストが向上する。
【発明の概要】
【0004】
本出願の実施形態は、予測方法と装置、デバイス、システム、及び記憶媒体を提供する。それによって、K個の初期予測モードに基づいて現在ブロックの重み導出モード(weight derivation mode)を確定することで、コーディングコストを低減する。
【0005】
第一様態において、本出願では、デコーダーに適用される予測方法が提供される。当該予測方法は以下の内容を含むことができる。ビットストリームをデコードして、K個の初期予測モードを確定する。Kは1より大きい正の整数である。K個の初期予測モードに基づいて、現在ブロックの重み導出モードを確定する。現在ブロックの重み導出モードに基づいて、現在ブロックの予測値を確定する。
【0006】
第二様態において、本出願では予測方法が提供される。当該予測方法は以下の内容を含むことができる。K個の初期予測モードを確定する。Kは1より大きい正の整数である。K個の初期予測モードに基づいて、現在ブロックの重み導出モードを確定する。現在ブロックの重み導出モードに基づいて、現在ブロックの予測値を確定する。
【0007】
第三様態において、本出願では予測装置が提供される。当該予測装置は、上記第一様態又はその各実施形態における方法を実行するように構成されている。具体的に、当該予測装置は、上記第一様態又はその各実施形態における方法を実行するように構成された機能ユニットを備える。
【0008】
第四様態において、本出願では予測装置が提供される。当該予測装置は、上記第二様態又はその各実施形態における方法を実行するように構成されている。具体的に、当該予測装置は、上記第二様態又はその各実施形態における方法を実行するように構成された機能ユニットを備える。
【0009】
第五様態において、ビデオデコーダーが提供される。当該ビデオデコーダーは、プロセッサ及びメモリを備える。当該メモリは、コンピュータプログラムを記憶するように構成されている。当該プロセッサは、当該メモリに記憶されたコンピュータプログラムを呼び出して実行することにより、上記第一様態又はその各実施形態における方法を実行するように構成されている。
【0010】
第六様態において、ビデオエンコーダーが提供される。当該ビデオエンコーダーは、プロセッサ及びメモリを備える。当該メモリは、コンピュータプログラムを記憶するように構成されている。当該プロセッサは、当該メモリに記憶されたコンピュータプログラムを呼び出して実行することにより、上記第二様態又はその各実施形態における方法を実行するように構成されている。
【0011】
第七様態において、ビデオエンコーディング・デコーディングシステムが提供される。当該ビデオエンコーディング・デコーディングシステムは、ビデオエンコー及びビデオデコーダーを含む。当該ビデオデコーダーは、上記第一様態又はその各実施形態における方法を実行するように構成されている。当該ビデオエンコーダーは、上記第二様態又はその各実施形態における方法を実行するように構成されている。
【0012】
第八様態において、チップが提供される。当該チップは、上記第一様態もしくは第二様態、又は第一様態もしくは第二様態の各実施形態における方法を実行するように構成されている。具体的に、当該チップはプロセッサを含み、当該プロセッサは、メモリからコンピュータプログラムを呼び出して実行することにより、当該チップが装着されたデバイスに、上記第一様態もしくは第二様態、又は第一様態もしくは第二様態の各実施形態における方法を実行させるように構成されている。
【0013】
第九様態において、コンピュータ可読記憶媒体が提供される。当該コンピュータ可読記憶媒体は、コンピュータプログラムを記憶するように構成されており、当該コンピュータプログラムは、コンピュータに上記第一様態もしくは第二様態、又は第一様態もしくは第二様態の各実施形態における方法を実行させる。
【0014】
第十様態において、コンピュータプログラム製品が提供される。当該コンピュータプログラム製品は、コンピュータプログラム命令を含み、当該コンピュータプログラム命令は、コンピュータに上記第一様態もしくは第二様態、又は第一様態もしくは第二様態の各実施形態における方法を実行させるように構成されている。
【0015】
第十一様態において、コンピュータプログラムが提供される。当該コンピュータプログラムは、コンピュータで実行される場合、コンピュータに上記第一様態もしくは第二様態、又は第一様態もしくは第二様態の各実施形態における方法を実行させるように構成されている。
【0016】
第十二様態において、ビットストリームが提供される。当該ビットストリームは、上記第二様態の方法に基づいて生成される。
【0017】
上記技術案に基づいて、K個の初期予測モードに基づいて現在ブロックの重み導出モードを確定することで、重み導出モードの確定方式がより豊かになる。また、本出願のエンコーディング側は、ビットストリームにおいて重み導出モードのインデックスを伝送しなくてもよく、デコーディング側はK個の初期予測モードに基づいて現在ブロックの重み導出モードを確定することができ、それによって、符号語を節約し、コーディングコストを削減することができる。
【図面の簡単な説明】
【0018】
【
図1】
図1は、本出願の実施形態に係るビデオエンコーディング・デコーディングシステムを示すブロック図である。
【
図2】
図2は、本出願の実施形態に係るビデオエンコーダーを示すブロック図である。
【
図3】
図3は、本出願の実施形態に係るビデオデコーダーを示すブロック図である。
【
図4】
図4は、重みの割り当てを示す概略図である。
【
図5】
図5は、重みの割り当てを示す概略図である。
【
図6B】
図6Bは、重み付けインター予測を示す概略図である。
【
図9】
図9は、イントラ予測モードを示す概略図である。
【
図12】
図12は、重み付けイントラ予測を示す概略図である。
【
図13】
図13は、テンプレートマッチング(template matching)を示す概略図である。
【
図14】
図14は、本出願の一実施形態に係る予測方法を示すフローチャートである。
【
図15】
図15は、2つの予測モードを利用して現在ブロックを予測する場合の概略図である。
【
図18】
図18は、テンプレートのサイズを示す概略図である。
【
図19】
図19は、本出願の一実施形態に係る予測方法を示すフローチャートである。
【
図20】
図20は、本出願の一実施形態に係る予測装置を示すブロック図である。
【
図21】
図21は、本出願の一実施形態に係る予測装置を示すブロック図である。
【
図22】
図22は、本出願の実施形態に係る電子デバイスを示すブロック図である。
【
図23】
図23は、本出願の実施形態に係るビデオエンコーディング・デコーディングシステムを示すブロック図である。
【発明を実施するための形態】
【0019】
本出願は、画像エンコーディング・デコーディング分野、ビデオエンコーディング・デコーディング分野、ハードウェアビデオエンコーディング・デコーディング分野、専用回路ビデオエンコーディング・デコーディング分野、リアルタイムビデオエンコーディング・デコーディング分野などに適用可能である。例えば、本出願の技術案は、オーディオ・ビデオコーディング規格(audio video coding standard、AVS)に組み合わせられることが可能であり、AVSの例として、H.264/オーディオ・ビデオコーディング(audio video coding、AVC)規格、H.265/高効率ビデオコーディング(high efficiency video coding、HEVC)規格、及びH.266/多用途ビデオコーディング(versatile video coding、VVC)規格が挙げられる。又は、本出願の技術案は、他の専用の規格又は業界規格に組み合わせられることが可能であり、上記規格は、ITU-TH.261、ISO/IECMPEG-1Visual、ITU-TH.262又はISO/IECMPEG-2Visual、ITU-TH.263、ISO/IECMPEG-4Visual,ITU-TH.264(ISO/IECMPEG-4AVCとも呼ばれる)を含み、スケーラブルビデオコーディング(scalable video coding、SVC)、及びマルチビュービデオコーディング(multi-view video coding、MVC)拡張を含む。なお、本出願の技術は、特定のエンコーディング・デコーディング規格又は技術に限定されない。
【0020】
理解を容易にするため、まず
図1を参照しながら、本出願の実施形態に係るビデオエンコーディング・デコーディングシステムを紹介する。
【0021】
図1は、本出願の実施形態に係るビデオエンコーディング・デコーディングシステムを示すブロック図である。
図1は一例にすぎず、本出願の実施形態に係るビデオエンコーディング・デコーディングシステムは
図1に示されるものを含むが、それに限定されない。
図1に示されるように、当該ビデオエンコーディング・デコーディングシステム100は、エンコーディング装置110及びデコーディング装置120を含む。エンコーディング装置は、ビデオデータをエンコード(圧縮と理解されてもよい)してビットストリームを生成し、且つビットストリームをデコーディング装置に伝送するように構成されている。デコーディング装置は、エンコーディング装置によって生成されたビットストリームをデコードし、デコードされたビデオデータを得るように構成されている。
【0022】
本出願の実施形態に係るエンコーディング装置110は、ビデオエンコーディング機能を有する装置であると理解されることができ、デコーディング装置120は、ビデオデコーディング機能を有する装置であると理解されることができる。即ち、本出願の実施形態に係るエンコーディング装置110及びデコーディング装置120は、より広範な装置を含み、例えば、スマートフォン、デスクトップコンピュータ、モバイルコンピューティング装置、ノートブック(例えば、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス(set top box、STB)、テレビ、カメラ、表示装置、デジタルメディアプレーヤ、ビデオゲームコンソール、車載コンピュータなどを含む。
【0023】
いくつかの実施形態において、エンコーディング装置110は、エンコードされたビデオデータ(例えば、ビットストリーム)をチャネル130を介してデコーディング装置120に伝送することができる。チャネル130は、エンコードされたビデオデータをエンコーディング装置110からデコーディング装置120に伝送することができる1つ又は複数の媒体及び/又は装置を含むことができる。
【0024】
一例において、チャネル130は、エンコーディング装置110にエンコードされたビデオデータをリアルタイムでデコーディング装置120に直接に送信させることを可能にする1つ又は複数の通信媒体を含む。この例では、エンコーディング装置110は、通信規格に従ってエンコードされたビデオデータを変調し、変調されたビデオデータをデコーディング装置120に送信することができる。通信媒体は、無線周波数スペクトルなどの無線通信媒体を含む。選択的に、通信媒体は、1つ又は複数の物理的伝送線路などの有線通信媒体含むこともできる。
【0025】
別の例において、チャネル130は記憶媒体を含む。当該記憶媒体は、エンコーディング装置110によってエンコードされたビデオデータを記憶することができる。記憶媒体は、様々なローカルにアクセス可能なデータ記憶媒体を含み、例えば、光ディスク、デジタル多用途ディスク(digital versatile disc、DVD)、フラッシュメモリなどが挙げられる。この例では、デコーディング装置120は、当該記憶媒体からエンコードされたビデオデータを取得することができる。
【0026】
別の例において、チャネル130はストレージサーバを含むことができ、当該ストレージサーバは、エンコーディング装置110によってエンコードされたビデオデータを記憶することができる。この例では、デコーディング装置120は、当該ストレージサーバに記憶されている、エンコードされたビデオデータを当該ストレージサーバからダウンロードすることができる。選択的に、当該ストレージサーバは、エンコードされたビデオデータを記憶し、且つ当該エンコードされたビデオデータをデコーディング装置120に送信することができ、当該ストレージサーバの例としては、ウェブサーバ(例えば、ウェブサイト用)、ファイル転送プロトコル(file transfer protocol、FTP)サーバなどが挙げられる。
【0027】
いくつかの実施形態において、エンコーディング装置110は、ビデオエンコーダー112及び出力インタフェース113を含む。出力インタフェース113は、変調器/復調器(モデム)及び/又は送信器を含むことができる。
【0028】
いくつかの実施形態において、エンコーディング装置110は、ビデオエンコーダー112及び出力インタフェース113に加えて、ビデオソース(video source)111をさらに含むことができる。
【0029】
ビデオソース111は、ビデオ収集装置(例えば、ビデオカメラ)、ビデオアーカイブ(video archive)、ビデオ入力インターフェース、及びコンピュータグラフィクスシステム(computer graphics system)のうちの少なくとも1つを含むことができる。ビデオ入力インターフェースは、ビデオコンテンツプロバイダからビデオデータを受信ように構成されており、コンピュータグラフィックスシステムは、ビデオデータを生成するように構成されている。
【0030】
ビデオエンコーダー112は、ビデオソース111からのビデオデータをエンコードすることにより、ビットストリームを生成する。ビデオデータは、1つもしくは複数の画像(picture)又は画像シーケンス(sequence of pictures)含むことができる。ビットストリームは、画像又は画像シーケンスのエンコーディング情報を含む。エンコーディング情報は、エンコーディング画像データ及び関連データを含むことができる。関連データは、シーケンスパラメータセット(sequence parameter set、SPSと略称)、画像パラメータセット(picture parameter set、PPSと略称)、及び他のシンタックス構造を含むことができる。SPSは、1つ又は複数のシーケンスに適用されるパラメータを含むことができ、PPSは、1つ又は複数の画像に適用されるパラメータを含むことができる。シンタックス構造は、ビットストリームにおける、指定された順序で配列される0又は複数のシンタックス要素の集合である。
【0031】
ビデオエンコーダー112は、エンコードされたビデオデータを、出力インターフェース113を介してデコーディング装置120に直接に伝送する。エンコードされたビデオデータは、後続にデコーディング装置120によって読み取られるように、記憶媒体又はストレージサーバに記憶されることもできる。
【0032】
いくつかの実施形態において、デコーディング装置120は、入力インタフェース121及びビデオデコーダー122を含む。
【0033】
いくつかの実施形態において、デコーディング装置120は、入力インタフェース121及びビデオデコーダー122に加えて、表示装置123をさらに含むことができる。
【0034】
入力インターフェース121は、受信器及び/又はモデムを含む。入力インターフェース121は、チャネル130を介してエンコードされたビデオデータを受信することができる。
【0035】
ビデオデコーダー122は、エンコードされたビデオデータをデコードすることにより、デコードされたビデオデータを取得し、且つデコードされたビデオデータを表示装置123に伝送するように構成されている。
【0036】
表示装置123は、デコードされたビデオデータを表示する。表示装置123は、デコーディング装置120に内蔵されてもよく、又は、デコーディング装置120の外部に設けられてもよい。表示装置123は、多種の表示装置を含むことができ、例えば、液晶ディスプレイ(liquid crystal display、LCD)、プラズマディスプレイ(plasma display)、有機発光ダイオード(organic light emitting diode、OLED)ディスプレイ、又は他の種類の表示装置が挙げられる。
【0037】
また、
図1は一例にすぎず、本出願の実施形態の技術案は
図1に限定されるものではなく、例えば、本出願の技術は、片側のビデオエンコーディング又は片側のビデオデコーディングにも適用可能である。
【0038】
以下、本出願の実施形態に係るビデオエンコーディング・フレームワークについて説明する。
【0039】
図2は、本出願の実施形態に係るビデオエンコーダーを示すブロック図である。当該ビデオエンコーダー200は、画像に対して非可逆圧縮(lossy compression)又は可逆圧縮(lossless compression)を行うように構成されることができる。当該可逆圧縮は、視覚的可逆圧縮(visually lossless compression)であってもよく、数学的可逆圧縮(mathematically lossless compression)であってもよい。
【0040】
当該ビデオエンコーダー200は、輝度―彩度(YCbCr,YUV)フォーマットの画像データに適用可能である。例えば、YUVの比率は、4:2:0、4:2:2、又は4:4:4であることができ、Yは輝度(luma)を示し、Cb(U)は青色彩度を示し、Cr(V)は赤色彩度を示し、U、Vは、色及び飽和度を記述するための彩度(chroma)を示す。例えば、色フォーマットでは、4:2:0は、4つの画素ごとに4つの輝度成分、及び2つの彩度成分(YYYYCbCr)を有することを示し、4:2:2は、4つの画素ごとに4つの輝度成分、及び4つの彩度成分(YYYYCbCrCbCr)を有することを示し、4:4:4は、全画素表示(YYYYCbCrCbCrCbCrCbCr)を示す。
【0041】
例えば、当該ビデオエンコーダー200はビデオデータを読み取り、ビデオデータにおける各画像に対して、各画像をいくつかのコーディングツリーユニット(coding tree unit、CTU)に分割する。いくつかの例では、CTUは「ツリーブロック」、「最大コーディングユニット(largest coding unit、LCU)」又は「コーディングツリーブロック(coding tree block、CTB)」と呼ばれることができる。各CTUは、画像内のCTUと同じサイズを有する画素ブロックに関連付けられることができ、各画素は、1つの輝度(luminance又はluma)サンプル、及び2つの彩度(chrominance又はchroma)サンプルに対応することができる。そのため、各CTUは、1つの輝度サンプルブロック及び2つの彩度サンプルブロックに関連付けられることができる。CTUのサイズは、例えば、128×128、64×64、32×32などである。CTUは、エンコードされるように、いくつかのコーディングユニット(coding unit、CU)に引き続き分割されることができる。CUは、矩形のブロックであってもよく、方形のブロックであってもよい。CUは、さらに予測ユニット(prediction unit、PUと略称)及び変換ユニット(transform unit、TUと略称)に分割されることができ、その結果、エンコーディング、予測及び変換が分離され、処理を柔軟にすることができる。一例において、CTUは、四分木方式でCUに分割され、CUは、四分木方式でTU、PUに分割される。
【0042】
ビデオエンコーダー及びビデオデコーダーは、様々なPUサイズをサポートすることができる。特定のCUのサイズが2N×2Nであると仮定し、ビデオエンコーダー及びビデオデコーダーは、イントラ予測のために、2N×2N又はN×NのPUサイズをサポートし、また、インター予測のために、2N×2N、2N×N、N×2N、N×N又は類似のサイズを有する対称なPUをサポートすることができる。ビデオエンコーダー及びビデオデコーダーはさらに、インター予測のために、2N×nU、2N×nD、nL×2N及びnR×2Nのサイズを有する非対称なPUをサポートすることもできる。
【0043】
いくつかの実施形態において、
図2に示されるように、当該ビデオエンコーダー200は、予測ユニット210、残差ユニット220、変換/量子化ユニット230、逆変換/量子化ユニット240、再構成ユニット250、ループフィルタリングユニット(loop filtering unit)260、デコーディング画像バッファ270及びエントロピーエンコーディングユニット280を含むことができる。なお、ビデオエンコーダー200は、より多くの、より少ない、又は異なる機能ユニットを含んでもよい。
【0044】
選択的に、本出願では、現在ブロック(current block)は、現在CU又は現在PUなどと呼ばれてもよい。予測ブロックは、予測画像ブロック又は画像予測ブロックと呼ばれてもよい。再構成画像ブロックは、再構成ブロック又は画像再構成ブロックと呼ばれてもよい。
【0045】
いくつかの実施形態において、予測ユニット210は、インター予測ユニット211及びイントラ推定ユニット212を含む。ビデオ画像(video picture)における隣接サンプル間に強い関連性があるため、ビデオエンコーディング・デコーディング技術において、イントラ予測の方法を利用して隣接サンプル間の空間的な冗長性を解消する。ビデオにおける隣接画像間に類似性が強いため、ビデオエンコーディング・デコーディング技術において、インター予測の方法を利用して隣接画像間の時間的な冗長性を解消し、コーディング効率を向上させる。
【0046】
インター予測ユニット211は、インター予測のために用いられることができる。インター予測は、動き推定(motion estimation)及び動き補償(motion compensation)を含み得、インター予測では、異なる画像の画像情報を参照可能であり、動き情報を利用して参照画像から参照ブロックを見つけ、参照ブロックに基づいて予測ブロックを生成することにより、時間的な冗長性を解消する。インター予測に用いられる画像は、Pフレーム及び/又はBフレームであることができる。Pフレームは前方向予測画像を指し、Bフレームは双方向予測画像を指す。インター予測では、動き情報を利用して参照画像から参照ブロックを見つけ、参照ブロックに基づいて予測ブロックを生成する。動き情報は、参照画像を含む参照画像リスト、参照画像インデックス、動きベクトルを含む。動きベクトルは、整数サンプル動きベクトル(integer-sample motion vector)又は分数サンプル動きベクトル(fractional-sample motion vector)であることができる。動きベクトルが分数サンプル動きベクトルである場合、必要な分数サンプルブロックを生成するように、参照画像に補間フィルターを利用する必要がある。動きベクトルに基づいて見つけられた、参照画像における整数サンプルブロック又は分数サンプルブロックが参照ブロックと呼ばれる。参照ブロックをそのまま予測ブロックとする技術があり、参照ブロックに基づいて処理して予測ブロックを生成する技術もある。参照ブロックに基づいて処理して予測ブロックを生成することは、参照ブロックを予測ブロックとし、次に予測ブロックに基づいて処理して新しい予測ブロックを生成することであると理解されることもできる。
【0047】
イントラ推定ユニット212は、空間的な冗長性を解消するために、同一画像の情報のみを参照することにより、現在画像ブロック内のサンプル情報を予測する。イントラ予測に用いられる画像は、Iフレームであってもよい。
【0048】
イントラ予測は様々な予測モードを含み、国際デジタルビデオコーディング規格Hシリーズを例として、H.264/AVC規格は8種の角度予測モードと1種の非角度予測モードを含み、H.265/HEVCは33種の角度予測モードと2種の非角度予測モードに拡張されている。HEVCに用いられるイントラ予測モードは、平面モード(Planar)、DC(Direct Current)及び33種の角度モード、合計で35種の予測モードを含む。VVCに用いられるイントラモードは、Planar、DC及び65種の角度モード、合計で67種の予測モードを含む。
【0049】
なお、角度モードの数の増加に伴い、イントラ予測がより精確になり、高解像度及び超高解像度デジタルビデオの発展のニーズにもより適合する。
【0050】
残差ユニット220は、CUのサンプルブロック及びCUのPUの予測ブロックに基づいて、CUの残差ブロックを生成することができる。例えば、残差ユニット220は、残差ブロックにおける各サンプルが、CUのサンプルブロックにおけるサンプルとCUのPUの予測ブロックにおける対応のサンプルとの差分に等しくなるように、CUの残差ブロックを生成することができる。
【0051】
変換/量子化ユニット230は、変換係数を量子化することができる。変換/量子化ユニット230は、CUに関連付けられた量子化パラメータ(quantization parameter、QP)値に基づいて、CUのTUに関連付けられた変換係数を量子化することができる。ビデオエンコーダー200は、CUに関連付けられたQP値を調整することで、CUに関連付けられた変換係数に応用される量子化の度合いを調整することができる。
【0052】
逆変換/量子化ユニット240は、量子化された変換係数に逆量子化及び逆変換をそれぞれ応用することで、量子化された変換係数から残差ブロックを再構成することができる。
【0053】
再構成ユニット250は、再構成された残差ブロックにおけるサンプルを予測ユニット210により生成された1つ又は複数の予測ブロックにおける対応サンプルに加算することで、TUに関連付けられた再構成画像ブロックを生成することができる。このように、CUの各TUのサンプルブロックを再構成することにより、ビデオエンコーダー200はCUのサンプルブロックを再構成することができる。
【0054】
ループフィルタリングユニット260は、逆変換及び逆量子化されたサンプルを処理して歪み情報を補償し、後続のサンプルのエンコーディングにより良い参考を提供する。例えば、ループフィルタリングユニット260は、CUに関連付けられたサンプルブロックのブロックアーチファクト(blocking artifact)を低減するように、デブロッキングフィルタリング(deblocking filtering)処理を実行することができる。
【0055】
いくつかの実施形態において、ループフィルタリングユニット260は、デブロッキングフィルタリングユニット、及びサンプル適応オフセット(sample adaptive offset、SAO)/適応ループフィルタリング(adaptive loop filtering、ALF)ユニットを含み、デブロッキングフィルタリングユニットは、デブロッキングのために用いられ、SAO/ALFユニットは、リンギング効果(ringing effect)を除去するために用いられる。
【0056】
デコーディング画像バッファ270は、再構成サンプルブロックを記憶することができる。インター予測ユニット211は、再構成サンプルブロックを含む参照画像を利用して、他の画像のPUに対してインター予測を行うことができる。また、イントラ推定ユニット212は、デコーディング画像バッファ270における再構成サンプルブロックを利用して、CUと同じである画像における他のPUに対してイントラ予測を行うことができる。
【0057】
エントロピーエンコーディングユニット280は、変換/量子化ユニット230から量子化された変換係数を受信することができる。エントロピーエンコーディングユニット280は、量子化された変換係数に対して1つ又は複数のエントロピーコーディング処理を実行することにより、エントロピーコードされたデータを生成することができる。
【0058】
図3は、本出願の実施形態に係るビデオデコーダーを示すブロック図である。
【0059】
図3に示されるように、ビデオデコーダー300は、エントロピーデコーディングユニット310、予測ユニット320、逆量子化・変換ユニット330、再構成ユニット340、ループフィルタリングユニット350及びデコーディング画像バッファ360を含む。なお、ビデオデコーダー300は、より多くの、より少ない、又は異なる機能ユニットを含んでもよい。
【0060】
ビデオデコーダー300は、ビットストリームを受信することができる。エントロピーデコーディングユニット310は、ビットストリームを解析することにより、ビットストリームからシンタックス要素を抽出することができる。ビットストリームの解析の一部として、エントロピーデコーディングユニット310は、ビットストリームにおける、エントロピーコードされたシンタックス要素を解析することができる。予測ユニット320、逆量子化・変換ユニット330、再構成ユニット340及びループフィルタリングユニット350は、ビットストリームから抽出されたシンタックス要素に基づいてビデオデータをデコードし、即ち、デコードされたビデオデータを生成することができる。
【0061】
いくつかの実施形態において、予測ユニット320は、インター予測ユニット321及びイントラ推定ユニット322を含む。
【0062】
イントラ推定ユニット322は、イントラ予測を行うことによりPUの予測ブロックを生成することができる。イントラ推定ユニット322は、イントラ予測モードを利用して、空間的に隣接するPUのサンプルブロックに基づいてPUの予測ブロックを生成することができる。イントラ推定ユニット322はさらに、ビットストリームから解析された1つ又は複数のシンタックス要素に基づいて、PUのイントラ予測モードを確定することができる。
【0063】
インター予測ユニット321は、ビットストリームから解析されたシンタックス要素に基づいて、第1参照画像リスト(リスト0)及び第2参照画像リスト(リスト1)を構築することができる。また、PUがインター予測でエンコードされる場合、エントロピーデコーディングユニット310は、PUの動き情報を解析することができる。インター予測ユニット321は、PUの動き情報に基づいて、PUの1つ又は複数の参照ブロックを確定することができる。インター予測ユニット321は、PUの1つ又は複数の参照ブロックに基づいて、PUの予測ブロックを生成することができる。
【0064】
逆量子化・変換ユニット330は、TUに関連付けられた変換係数を逆量子化(即ち、脱量子化)することができる。逆量子化・変換ユニット330は、TUのCUに関連付けられたQP値を利用して、量子化の度合いを確定することができる。
【0065】
変換係数を逆量子化した後、逆量子化・変換ユニット330は、1つ又は複数の逆変換を逆量子化された変換係数に応用することで、TUに関連付けられた残差ブロックを生成することができる。
【0066】
再構成ユニット340は、CUのTUに関連付けられた残差ブロック及びCUのPUの予測ブロックを利用して、CUのサンプルブロックを再構成する。例えば、再構成ユニット340は、残差ブロックにおけるサンプルを予測ブロックにおける対応サンプルに加算することにより、CUのサンプルブロックを再構成し、再構成画像ブロックを取得することができる。
【0067】
ループフィルタリングユニット350は、CUに関連付けられたサンプルブロックのブロックアーチファクトを低減するように、デブロッキングフィルタリング処理を実行することができる。
【0068】
ビデオデコーダー300は、CUの再構成画像をデコーディング画像バッファ360に記憶することができる。ビデオデコーダー300は、デコーディング画像バッファ360における再構成画像を参照画像として後続の予測に用い、又は、再構成画像を表示装置に伝送して表示することができる。
【0069】
ビデオエンコーディング・デコーディングの基本的な流れは、以下の通りである。エンコーディング側では、1つの画像(フレーム)がブロックに分割され、現在ブロックに対して、予測ユニット210は、イントラ予測又はインター予測を実行して、現在ブロックの予測ブロックを生成する。残差ユニット220は、予測ブロックと現在ブロックのオリジナルブロック、即ち、予測ブロックと現在ブロックのオリジナルブロックとの間の差に基づいて、残差ブロックを計算することができ、当該残差ブロックは残差情報とも呼ばれる。当該残差ブロックは、変換/量子化ユニット230によって変換され且つ量子化されることにより、人間の目に敏感ではない情報が除去され、視覚的な冗長性が解消されることができる。選択的に、変換/量子化ユニット230によって変換され且つ量子化される前の残差ブロックは時間領域残差ブロック(time-domain residual block)と呼ばれることができ、変換/量子化ユニット230によって変換され且つ量子化された後の時間領域残差ブロックは周波数残差ブロック(frequency residual block)又は周波数領域残差ブロック(frequency-domain residual block)と呼ばれることができる。エントロピーエンコーディングユニット280は、変換/量子化ユニット230によって出力された、量子化された変化係数を受信し、当該量子化された変化係数をエントロピーコードすることにより、ビットストリームを出力することができる。例えば、エントロピーエンコーディングユニット280は、目標コンテキストモデル及び2進ビットストリームの確率情報に基づいて、文字冗長を削除することができる。
【0070】
デコーディング側では、エントロピーデコーディングユニット310は、ビットストリームを解析することにより、現在ブロックの予測情報、量子化係数行列などを取得することができ、予測ユニット320は、予測情報に基づいて、現在ブロックに対してイントラ予測又はインター予測を行うことにより現在ブロックの予測ブロックを生成する。逆量子化・変換ユニット330は、ビットストリームから取得された量子化係数行列を利用して、量子化係数行列を逆量子化し、逆変換して残差ブロックを取得する。再構成ユニット340は、予測ブロックと残差ブロックとを加算して再構成ブロックを取得する。再構成ブロックは再構成画像を形成する。ループフィルタリングユニット350は、画像又はブロックに基づいて再構成画像をループフィルタリングしてデコーディング画像を取得する。エンコーディング側でも、デコーディング画像を取得するための、デコーディング側と類似の処理が必要である。当該デコーディング画像は再構成画像と呼ばれてもよく、再構成画像は後続の画像の、インター予測のための参照画像であることができる。
【0071】
なお、エンコーディング側で確定されたブロック分割情報、及び、予測、変換、量子化、エントロピーコーディング、ループフィルタリングなどのモード情報又はパラメータ情報などは、必要に応じてビットストリームに携帯される。デコーディング側は、ビットストリームを解析し、既存情報から分析して、エンコーディング側と同じブロック分割情報、予測、変換、量子化、エントロピーコーディング、ループフィルタリングなどのモード情報又はパラメータ情報を確定する。それによって、エンコーディング側で取得されたデコーディング画像とデコーディング側で取得されたデコーディング画像が同じであることが確保される。
【0072】
上記は、ブロックに基づいた混合コーディングフレームワークでのビデオエンコーディング・デコーディングの基本的な流れである。技術の発展に伴い、当該フレームワーク又は流れの一部のモジュールやステップが最適化される可能性がある。本出願は、当該ブロックに基づいた混合コーディングフレームワークでのビデオエンコーディング・デコーディングの基本的な流れに適用されるが、当該フレームワーク又は流れに限定されない。
【0073】
いくつかの実施形態では、現在ブロック(current block)は、現在のコーディングユニット(CU)又は現在の予測ユニット(PU)などであってもよい。並列処理の必要性により、画像がスライス(slice)などに分割されることができ、同一画像内のスライスが並列処理されることができ、即ち、それらの間にデータ依存性がない。「フレーム」はよく用いられる用語であり、一般的に1フレームが1つの画像であると理解されることができる。また、本出願におけるフレームは、画像又はスライスなどに置き換えられることもできる。
【0074】
現在作成中の多用途ビデオコーディング(VVC)というビデオエンコーディング・デコーディング規格には、幾何分割モード(geometric partitioning mode、GPM)と呼ばれるインター予測モードがある。現在作成中のオーディオ・ビデオコーディング規格(AVS)というビデオエンコーディング・デコーディング規格には、角度重み付け予測(angular weighted prediction、AWP)と呼ばれるインター予測モードがある。これら2つのモードは、名称及び具体的な実現形態が異なるが、原理上では共通するところがある。
【0075】
なお、従来の単方向予測では、現在ブロックのサイズと同じサイズを有する1つの参照ブロックのみが使用されるが、従来の双方向予測では、現在ブロックのサイズと同じサイズを有する2つの参照ブロックが使用され、予測ブロック内の各サンプルの値は、2つの参照ブロックの対応位置にあるサンプルの値の平均値であり、即ち各参照ブロックにおけるすべてのサンプルは50%を占める。双方向重み付け予測では、2つの参照ブロックの割合が異なるようにしてもよく、例えば、1番目の参照ブロックにおけるすべてのサンプルが75%占め、2番目の参照ブロックにおけるすべてのサンプルが25%占める。しかし、同じ参照ブロックにおけるすべてのサンプルが同じ割合を有する。他のいくつかの最適化方式、例えば、デコーディング側動きベクトル改良(decoder side motion vector refinement、DMVR)技術、双方向オプティカルフロー(bi-directional optical flow、BIO)などによって、参照サンプル又は予測サンプルに何らかの変化が生じる。また、GPM又はAWPでも、現在ブロックのサイズと同じサイズを有する2つの参照ブロックを利用するが、いくつかのサンプル位置では、1番目の参照ブロックの対応位置におけるサンプル値が100%利用され、別のいくつかのサンプル位置では、2番目の参照ブロックの対応位置におけるサンプル値が100%利用され、遷移領域(交差領域)では、これら2つの参照ブロックの対応位置におけるサンプル値が一定の割合で利用される。これらの重みが具体的にどのように割り当てられるかは、GPM又はAWPの予測モードによって定められる。又は、GPM又はAWPでは、現在ブロックのサイズと異なるサイズを有する2つの参照ブロックを利用し、即ち、各参照ブロックの必要な部分を参照ブロックとすると考えられる。即ち、重みが0ではない部分が参照ブロックとされ、重みが0である部分が除去される。
【0076】
例示的に、
図4は、重みの割り当てを示す概略図である。
図4に示されるように、本出願の実施形態に係る64×64の現在ブロックにおけるGPMの複数種の分割モードの重みの割り当ての概略図が示されており、GPMには64種の分割モードがある。
図5は、重みの割り当てを示す概略図である。
図5に示されるように、本出願の実施形態に係る64×64の現在ブロックにおけるAWPの複数種の分割モードの重みの割り当ての概略図が示されており、AWPには56種の分割モードがある。
図4、
図5のいずれにおいても、各種の分割モードでは、黒領域は1番目の参照ブロックの対応位置の重み値が0%であることを示し、白領域は1番目の参照ブロックの対応位置の重み値が100%であることを示し、グレー領域は色の濃淡の違いで1番目の参照ブロックの対応位置の重み値が0%より大きく100%より小さいいずれかの重み値であることを示す。2番目の参照ブロックの対応位置の重み値は、100%から1番目の参照ブロックの対応位置の重み値を引いた値である。
【0077】
GPMにおける重みの導出方法とAWPにおける重みの導出方法は異なる。GPMでは、各種のモードに基づいて角度及びオフセットを確定し、次に、各種のモードの重み行列を算出する。AWPでは、まず1次元の重みライン(one-dimensional weight line)を生成し、次に、イントラ角度予測に類似した方法を利用して1次元の重みラインで行列全体を敷き詰める。
【0078】
早期のエンコーディング・デコーディング技術に、CU、PU、変換ユニット(transform unit、TU)の分割を問わず、矩形の分割方式のみが存在する。GPM及びAWPでは、分割されない場合に予測の非矩形の分割効果が実現される。GPM及びAWPでは、2つの参照ブロックの重みのマスク(mask)、即ち重みマップが利用される。このマスクから、予測ブロックを生成するための2つの参照ブロックの重みを確定する。又は、以下のように簡単に理解することができる。予測ブロックの一部の位置が1番目の参照ブロックに由来し、予測ブロックの一部の位置が2番目の参照ブロックに由来し、遷移領域(blending area)が、2つの参照ブロックの対応の位置を重み付けすることで取得され、遷移をよりスムーズにすることができる。GPM及びAWPでは、現在ブロックが分割線で2つのCU又はPUに分割されていないため、現在ブロックの全体に対して予測後の残差の変換、量子化、逆変換、逆量子化などが行われる。
【0079】
GPMでは、重み行列で幾何形状の分割を模擬し、より的確に言えば、予測の分割を模擬した。GPMを実施するために、重み行列に加えて、2つの予測値が必要であり、各予測値が1つの単方向の動き情報によって確定される。この2つの単方向の動き情報は1つの動き情報候補リストからのものであり、例えば、マージ動き情報候補リスト(mergeCandList)からのものである。GPMでは、ビットストリームにおいて2つのインデックスを利用して、mergeCandListから2つの単方向の動き情報を確定する。
【0080】
インター予測では、動き情報(motion information)を利用して「動き」を表す。基本的な動き情報は、参照フレーム(reference frame)(又は参照画像(reference picture)とも呼ばれる)情報と動きベクトル(motion vector、MV)情報を含む。一般的な双方向予測では、2つの参照ブロックを利用して現在ブロックを予測する。2つの参照ブロックとしては、1つの前方参照ブロック(forward reference block)と1つの後方参照ブロック(backward reference block)が用いられることができる。選択的に、2つの参照ブロックはいずれも前方参照ブロックであり、又は、いずれも後方参照ブロックであることもできる。前方とは、参照画像に対応する時刻が現在画像の前にあることを意味し、後方とは、参照画像に対応する時刻が現在画像の後にあることを意味する。換言すれば、前方とは、ビデオにおける参照画像の位置が現在画像の前に位置することを意味し、後方とは、ビデオにおける参照画像の位置が現在画像の後に位置することを意味する。換言すれば、前方とは、参照画像のPOC(picture order count)が現在画像のPOCより小さいことを意味し、後方とは、参照画像のPOCが現在画像のPOCより大きいことを意味する。双方向予測を利用できるように、当然に2つの参照ブロックを見つける必要がある。それで、2セットの参照画像情報と動きベクトル情報が必要となる。各セットを1つの単方向の動き情報とてし理解し、この2つのセットを組み合わせると1つの双方向の動き情報となる。具体的に実現する時、単方向の動き情報と双方向の動き情報は同じデータ構造を用いることができ、双方向の動き情報では2セットの参照画像情報と動きベクトル情報がいずれも有効であり、単方向の動き情報では2セットのうちの1セットの参照画像情報と動きベクトル情報が無効である。
【0081】
いくつかの実施形態では、2つの参照画像リストがサポートされ、RPL0、RPL1と表記され、RPLは参照画像リスト(Reference Picture List)の略称である。いくつかの実施形態では、PスライスはRPL0のみを利用でき、BスライスはRPL0及びRPL1を利用できる。1つのスライスに対して、各参照画像リストにはいくつかの参照画像があり、エンコーダーとデコーダーは、参照画像インデックスを利用してある特定の参照画像を見つける。いくつかの実施形態では、参照画像インデックス及び動きベクトルで動き情報を表す。例えば、上記双方向の動き情報に対して、RPL0に対応する参照画像インデックスrefIdxL0、RPL0に対応する動きベクトルmvL0、及びRPL1に対応する参照画像インデックスrefIdxL1、RPL1に対応する動きベクトルmvL0が利用される。RPL0に対応する参照画像インデックス及びRPL1に対応する参照画像インデックスは、上記参照画像情報として理解されることができる。いくつかの実施形態では、2つのフラグビット(flag bit)で、RPL0に対応する動き情報が利用されるか否か、及びRPL0に対応する動き情報が利用されるか否かをそれぞれ示し、2つのフラグビットのそれぞれがpredFlagL0及びpredFlagL1と表記される。また、predFlagL0及びpredFlagL1は、上記単方向の動き情報が「有効であるか否か」を示すと理解されることができる。動き情報というデータ構造は明示されていないが、各参照画像リストに対応する参照画像インデックス、動きベクトル、及び「有効であるか否か」のフラグビットはともに動き情報を表す。いくつかの規格のテキストでは、動き情報が現れず、動きベクトルが使用されている。参照画像インデックスと、対応する動き情報を利用するか否かを示すフラグとは動きベクトルの付属であると考えられることができる。本出願では、説明の便宜上、「動き情報」を用いるが、「動きベクトル」を用いて説明することも可能であることを理解されたい。
【0082】
現在ブロックに用いられる動き情報が記憶されることができる。隣接位置関係に基づいて、前のエンコード・デコード済みのブロック(例えば、隣接ブロック)の動き情報が現在画像のエンコード・デコードされようとする後続のブロックに用いられることができる。それは、空間関連性(spatial correlation)を利用しているため、そのようなエンコード・デコード済みの動き情報は空間動き情報(spatial motion information)と呼ばれる。現在画像の各ブロックに用いられる動き情報が記憶されることができる。参照関係に基づいて、前のエンコード・デコード済みの画像の動き情報がエンコード・デコードされようとする後続の画像に用いられることができる。それは、時間関連性(temporal correlation)を利用しているため、そのようなエンコード・デコード済みの画像の動き情報は時間動き情報(temporal motion information)と呼ばれる。現在画像の各ブロックに用いられる動き情報の記憶方法では、4×4行列のような固定サイズの行列を最小ユニットとして、各最小ユニットに単独的に1セットの動き情報が記憶される。このように、1つのブロックをエンコード・デコードするたびに、そのブロックの位置に対応するそれらの最小ユニットは、そのブロックの動き情報を記憶しておくことができる。このように、空間動き情報又は時間動き情報を利用する場合、位置に基づいて、当該位置に対応する動き情報を直接に見つけることができる。例えば、従来の単方向予測が1つの16×16のブロックに用いられる場合、当該ブロックに対応する4×4の最小ユニットのすべてがこの単方向予測の動き情報を記憶する。GPM又はAWPが1つのブロックに用いられる場合、当該ブロックに対応するすべての最小ユニットは、GPM又はAWPモード、1番目の動き情報、2番目の動き情報、及び各最小ユニットの位置に基づいて、各最小ユニットに記憶される動き情報を確定する。1つの方法として、1つの最小ユニットに対応する4×4のサンプルがすべて1番目の動き情報に由来する場合、この最小ユニットは1番目の動き情報を記憶する。1つの最小ユニットに対応する4×4のサンプルがすべて2番目の動き情報に由来する場合、この最小ユニットは2番目の動き情報を記憶する。1つの最小ユニットに対応する4×4のサンプルが1番目の動き情報及び2番目の動き情報の両方に由来する場合、AWPでは、その両方のうちの1つを選択して記憶し、GPMでは、2つの動き情報が異なる参照画像リストを指し示す場合、その2つの動き情報を組み合わせて双方向の動き情報として記憶し、そうではない場合、2番目の動き情報のみを記憶する。
【0083】
選択的に、上記mergeCandListは、空間動き情報、時間動き情報、履歴ベースの動き情報、及び他のいくつかの動き情報に基づいて構築される。例示的に、mergeCandListでは、
図6Aにおける1から5の位置を利用して空間動き情報を導出し、
図6Aにおける6又は7の位置を利用して時間動き情報を導出する。履歴ベースの動き情報では、1つのブロックをエンコード・デコードするたびに、このブロックの動き情報を先入れ先出し(First-In First-Out、FIFO)のリストに添加し、添加中に、リスト内の既存の動き情報と重複するか否かなど、いくつかのチェックが必要である。このようにして、現在ブロックをエンコード・デコードするとき、履歴ベースのリスト内の動き情報を参照することができる。
【0084】
いくつかの実施形態では、GPMのシンタックス記述は表1に示されているようである。
【0085】
【0086】
表1に示されたように、マージモードでは、regular_merge_flagが1ではない場合、CIIP(combined inter-intra prediction)又はGPMは現在ブロックに用いられることができる。CIIPが現在ブロックに用いられない場合、GPMが現在ブロックに用いられ、即ち、表1におけるシンタックス「if( !ciip_flag[x0][y0] )」に示されている内容でる。
【0087】
上記表1に示されたように、GPMでは、ビットストリームにおいて、merge_gpm_partition_idx、merge_gpm_idx0、merge_gpm_idx1という3つの情報を伝送する必要がある。x0、y0は、画像の左上隅の輝度サンプルに対する現在ブロックの左上隅の輝度サンプルの座標(x0、y0)を確定するために用いられる。merge_gpm_partition_idxはGPMの分割形状を確定するために用いられ、上記に示されたように、「模擬分割」である。merge_gpm_partition_idxは、本実施形態で説明する重み導出モード又は重み導出モードのインデックスである。merge_gpm_idx0は候補リストにおける1番目の動き情報のインデックス値であり、merge_gpm_idx1は候補リストにおける2番目の動き情報のインデックス値である。候補リストの長さ(MaxNumGpmMergeCand)> 2の場合のみ、merge_gpm_idx1を伝送する必要がある。そうではない場合、merge_gpm_idx1を直接に確定することができる。
【0088】
いくつかの実施形態では、GPMデコーディングプロセスは以下のステップを含む。
【0089】
デコーディングプロセスにおける入力情報は、画像の左上隅の輝度位置に対する現在ブロックの左上隅の輝度位置の座標(xCb、yCb)、現在ブロックの輝度成分の幅cbWidth、現在ブロックの輝度成分の高さcbHeight、1/16分数サンプル精度の輝度動きベクトルmvAとmvB、彩度動きベクトルmvCAとmvCB、参照画像インデックスrefIdxAとrefIdxB、予測リストフラグpredListFlagAとpredListFlagBを含む。
【0090】
例示的に、動きベクトル、参照画像インデックス、及び予測リストフラグの組み合わせで動き情報を表し得る。いくつかの実施形態では、2つの参照画像リストがサポートされ、各参照画像リストは複数の参照画像を有してもよい。単方向予測では、1つの参照画像リストにおける1つの参照画像内の1つの参照ブロックのみを参照として使用し、双方向予測では、1つの参照画像リストにおける1つの参照画像内の1つの参照ブロック、及びもう1つの参照画像リストにおける1つの参照画像内の1つの参照ブロックを参照として使用する。GPMでは、2つの単方向予測を使用する。上記mvAとmvB、mvCAとmvCB、refIdxAとrefIdxB、predListFlagAとpredListFlagBにおけるAは第1予測モードとして理解され、Bは第2予測モードとして理解されることができる。選択的に、XでA又はBを表し、predListFlagXは、Xに1番目の参照画像リストが使用されるか2番目の参照画像リストが利用されるかを示し、refIdxXは、Xに使用される参照画像リストにおける参照画像インデックスを示し、mvXは、Xに使用される輝度動きベクトルを示し、mvCXは、Xに使用される彩度動きベクトルを示す。動きベクトル、参照画像インデックス、及び予測リストフラグの組み合わせで本出願で説明する動き情報を表し得る。
【0091】
デコーディングプロセスにおける出力情報は、輝度予測サンプルの(cbWidth)Χ(cbHeight)行列predSamplesL、必要に応じて、Cb彩度成分の予測サンプルの(cbWidth / SubWidthC) Χ(cbHeight / SubHeightC)行列、必要に応じて、Cr彩度成分の予測サンプルの(cbWidth / SubWidthC) Χ(cbHeight / SubHeightC)行列を含む。
【0092】
例示的に、輝度成分を例として説明する。彩度成分の処理は輝度成分の処理と類似している。
【0093】
predSamplesLALとpredSamplesLBLのサイズはいずれも、(cbWidth)Χ(cbHeight)であり、2つの予測モードに基づいて取得した予測サンプルの行列であると仮定する。predSamplesLは、以下の方法に基づいて導出される。輝度動きベクトルmvA、彩度動きベクトルmvCA、参照画像インデックスrefIdxA、及び予測リストフラグpredListFlagAに基づいてpredSamplesLALを確定し、輝度動きベクトルmvB、彩度動きベクトルmvCB、参照画像インデックスrefIdxB、及び予測リストフラグpredListFlagBに基づいてpredSamplesLBLを確定する。即ち、2つの予測モードの動き情報のそれぞれに基づいて予測を行い、詳細なプロセスは詳述されない。通常、GPMはマージモードであり、GPMの2つの予測モードはいずれもマージモードであると考えられることができる。
【0094】
merge_gpm_partition_idx[ xCb ][ yCb ]に基づいて、表2を利用してGPMの「分割」角度インデックス変数angleIdxと距離インデックス変数distanceIdxを確定する。
【0095】
【0096】
なお、GPMは3つの成分(component、例えば、Y、Cb、Cr)のいずれにも利用されることができるため、いくつかの規格のテキストでは、1つの成分に対してGPM予測サンプル行列を生成するプロセスは、GPM用の重み付けサンプル予測プロセス(Weighted sample prediction process for GPM)というサブプロセスに包含されている。このサブプロセスは3つのコンポーネントのそれぞれに対して呼び出されるが、呼び出されるパラメータがそれぞれ異なるだけであり、ここでは輝度成分のみを例とする。現在の輝度ブロックの予測行列predSamplesL[ xL ][ yL ](xL = 0..cbWidth - 1、yL = 0..cbHeight - 1)は、GPM用の重み付けサンプル予測プロセスから導出される。nCbWはcbWidthに設定され、nCbHはcbHeightに設定され、2つの予測モードで生成した予測サンプル行列predSamplesLALとpredSamplesLBL、angleIdx、distanceIdxが入力とされる。
【0097】
いくつかの実施形態では、GPMの重み付けサンプル予測と導出プロセスは以下のステップを含む。
【0098】
当該プロセスの入力は、現在ブロックの幅nCbW、現在ブロックの高さnCbH、2つの(nCbW)Χ(nCbH)の予測サンプル行列predSamplesLAとpredSamplesLB、GPMの「分割」角度インデックス変数angleIdx、GPMの距離インデックス変数distanceIdx、成分インデックス変数cIdxを含む。この例では輝度を例とする。cIdxが0であることは、輝度成分を示す。
【0099】
このプロセスの出力は、GPMの(nCbW)Χ(nCbH) 行列pbSamplesの予測サンプル値を含む。
【0100】
例示的に、変数nW、 nH、shift1、offset1、displacementX、displacementY、partFlip、shiftHorは以下の方法に基づいて導出される。
nW = ( cIdx = = 0 ) ? nCbW : nCbW * SubWidthC、
nH = ( cIdx = = 0 ) ? nCbH : nCbH * SubHeightC、
shift1 = Max( 5, 17 - BitDepth )、BitDepthはエンコーディング・デコーディングのビット深度である。
offset1 = 1 << ( shift1 - 1 )、「<<」は左シフトを意味する。
displacementX = angleIdx、
displacementY = ( angleIdx + 8 ) % 32、
partFlip = ( angleIdx >= 13 && angleIdx <= 27 ) ? 0 : 1、
shiftHor = ( angleIdx % 16 = = 8 | | ( angleIdx % 16 != 0 && nH >= nW ) ) ? 0 : 1。
【0101】
変数offsetXとoffsetYは以下の方法に基づいて導出される。
shiftHorの値が0である場合、
offsetX = ( -nW ) >> 1
offsetY = ( ( -nH ) >> 1 ) + ( angleIdx < 16 ? ( distanceIdx * nH ) >> 3 : -( ( distanceIdx * nH ) >> 3 ) )。
【0102】
shiftHorの値が1である場合、
offsetX = ( ( -nW ) >> 1 ) + ( angleIdx < 16 ? ( distanceIdx * nW ) >> 3 : -( ( distanceIdx * nW ) >> 3 )
offsetY = ( - nH ) >> 1。
【0103】
変数xLとyLは以下の方法に基づいて導出される。
xL = ( cIdx = = 0 ) ? x : x * SubWidthC
yL = ( cIdx = = 0 ) ? y : y * SubHeightC
【0104】
現在位置における予測サンプルの重みを示す変数wValueは、以下の方法に基づいて導出される。wValueは、(x,y)での第1予測モードの予測行列における予測サンプルの値predSamplesLA[ x ][ y ] の重みであり、( 8 - wValue ) は、(x,y)での第1予測モードの予測行列における予測サンプルの値predSamplesLB[ x ][ y ] の重みである。
【0105】
距離行列disLutは表3に基づいて確定される。
【0106】
【0107】
weightIdx = ( ( ( xL + offsetX ) << 1 ) + 1 ) * disLut[ displacementX ] + ( ( ( yL + offsetY ) << 1 ) + 1 ) * disLut[ displacementY ]、
weightIdxL = partFlip ? 32 + weightIdx : 32 - weightIdx、
wValue = Clip3( 0, 8, ( weightIdxL + 4 ) >> 3 )。
【0108】
予測サンプルの値pbSamples[ x ][ y ]は以下の方法に基づいて導出される。
pbSamples[ x ][ y ] = Clip3( 0, ( 1 << BitDepth ) - 1, ( predSamplesLA[ x ][ y ] * wValue + predSamplesLB[ x ][ y ] * ( 8 - wValue ) + offset1 ) >> shift1 )。
【0109】
なお、現在ブロックの各位置に対して1つの重み値が導出され、1つのGPM予測値pbSamples[ x ][ y ]が計算される。この方式では、重みwValueは行列の形で記述される必要がないが、各位置のwValueを1つの行列に保存すれば、その行列が重み行列であると理解できる。各サンプルに対して重みを計算し、重み付けしてGPM予測値を算出する原理と、すべての重みを計算してから、一律に重み付けしてGPM予測サンプル行列を算出する原理とは同じである。本出願の多くの説明で重み行列という言葉を使うのは、表現を分かりやすくするためで、重み行列で描いた図がより直観的であるが、実は、各位置の重みで説明することもできる。例えば、重み行列導出モードは、重み導出モードとして表現されることもできる。
【0110】
いくつかの実施形態では、
図6Bに示されているように、GPMデコーディングプロセスは以下ように表現されることができる。ビットストリームを解析して、現在ブロックにGPM技術が利用されるか否かを確定し、現在ブロックにGPM技術が利用される場合、重み導出モード(又は「分割」モード、又は重み行列導出モード)、第1動き情報、及び第2動き情報を確定する。第1動き情報に基づいて第1予測ブロックを確定し、第2動き情報に基づいて第2予測ブロックを確定し、重み行列導出モードに基づいて重み行列を確定し、第1予測ブロックと第2予測ブロックと重み行列とに基づいて現在ブロックの予測ブロックを確定する。
【0111】
なお、本出願の実施形態において、GPM又はAWPは一種の予測技術に属する。GPM又はAWPが利用されるか否かを指示するフラグ(flag)をビットストリームで伝送する必要がある。当該フラグは、GPM又はAWPが現在ブロックに用いられるか否かを指示することができる。GPM又はAWPが利用される場合、エンコーダーは、利用される具体的なモード(即ち、GPMの64種の分割モードのいずれか、又はAWPの56種の分割モードのいずれか)と、2つの単方向の動き情報のインデックス値とをビットストリームで伝送する必要がある。即ち、現在ブロックに対して、デコーダーは、ビットストリームをデコードすることにより、GPM又はAWPが利用されるか否かの情報を取得することができる。GPM又はAWPが利用されると確定する場合、デコーダーは、GPM又はAWPの予測モードパラメータと、2つの動き情報インデックス値とを解析することができる。例えば、現在ブロックが2つのパーティションに分割される場合、第1パーティションに対応する第1インデックス値と、第2パーティションに対応する第2インデックス値とを解析することができる。
【0112】
具体的に、GPMモードでは、GPMが利用される場合、GPMにおける予測モードパラメータ(例えば、GPMの具体的な分割モード)がビットストリームで伝送される。通常では、GPMは64種の分割モードを含む。AWPモードでは、AWPが利用される場合、AWPにおける予測モードパラメータ(例えば、AWPの具体的な分割モード)がビットストリームで伝送される。通常では、AWPは56種の分割モードを含む。
【0113】
インター予測モードでは、例えば、GPM及びAWPでは、2つの参照ブロックを検索するために、2つの単方向の動き情報が必要である。現状の実現様態では、エンコーダー側は、現在ブロックの前のエンコード/デコード済みの部分の関連情報を利用して、1つの単方向の動き情報候補リストを構築し、単方向の動き情報候補リストから単方向の動き情報を選択し、これら2つの単方向の動き情報の単方向の動き情報候補リストにおけるインデックス(index)をビットストリームに書き込む。デコーダー側は、エンコーダー側と同じ方法を採用し、即ち、現在ブロックの前のデコード済みの部分の関連情報を利用して、1つの単方向の動き情報候補リストを構築する。この単方向の動き情報候補リストは、エンコーダー側で構築された候補リストと同じである。このようにして、ビットストリームから2つの単方向の動き情報のインデックスを解析し、次に、単方向の動き情報候補リストからその2つの単方向の動き情報(即ち、現在ブロックに用いられる必要のある2つの単方向の動き情報)を検索する。
【0114】
換言すれば、本出願に記載された単方向の動き情報は、動きベクトル情報(即ち(x、y)の値)と、対応する参照画像情報(即ち、参照画像リスト及び参照画像リストにおける参照画像インデックス)とを含むことができる。1つの表現方式では、2つの参照画像リストにおける参照画像インデックスを記録する。その2つの参照画像リストのうちの1つに対応する参照画像インデックスが有効であり、例えば、0、1、2などであり、もう1つに対応する参照画像インデックスが無効であり、例えば、-1である。参照画像インデックスが有効である参照画像リストは、現在ブロックの動き情報に用いられる参照画像リストである。参照画像インデックスに基づいて、当該参照画像リストから対応する参照画像を見つけることができる。各参照画像リストはそれぞれ、1つの対応の動きベクトルを有し、有効な参照画像リストに対応する動きベクトルが有効であり、無効な参照画像リストに対応する動きベクトルが無効である。デコーダーは、単方向の動き情報における参照画像情報から必要な参照画像を見つけることができ、現在ブロックの位置、動きベクトル(即ち(x、y)の値)に基づいて、参照画像から参照ブロックを見つけることができ、さらに、現在ブロックのインター予測値を確定することができる。
【0115】
イントラ予測方法では、現在ブロックの周辺のエンコード・デコード済みの再構成サンプルを参照サンプルとして利用して現在ブロックを予測する。
図7Aは、イントラ予測を示す概略図である。
図7Aに示されているように、現在ブロックのサイズは4×4であり、現在ブロックの左1列及び上1行のサンプルは、現在ブロックの参照サンプルであり、イントラ予測では、これらの参照サンプルを利用して、現在ブロックを予測する。これらの参照サンプルはすべて利用可能であり、即ち、すべてエンコード・デコードされている可能性がある。選択的に、これらの参照サンプルは一部が利用不可能である可能性がある。例えば、現在ブロックが画像全体の一番左にあり、現在ブロックの左の参照サンプルが利用不可能である。又は、現在ブロックをエンコード・デコードする場合、現在ブロックの左下のサンプルがまだエンコード・デコードされていないため、左下の参照サンプルも利用不可能である。参照サンプルが利用不可能である場合、利用可能な参照サンプルを利用して、又は何らかの値、何らかの方法を利用して、補充を行ってもよく、補充を行わなくてもよい。
【0116】
図7Bは、イントラ予測を示す概略図である。
図7Bに示されているように、マルチ参照ライン(multiple reference line、MRL)イントラ予測方法では、より多くの参照サンプルを利用してエンコーディング・デコーディング効率を向上させることができる。例えば、4つの参照行/列を現在ブロックの参照サンプルとする。
【0117】
さらに、イントラ予測に複数種の予測モードがあり、
図8A~
図8Iは、イントラ予測を示す概略図である。
図8A~
図8Iに示されているように、H.264では、4×4のブロックに対してイントラ予測を行う際、9種のモードを含むことができる。
図8Aに示されたモード0では、現在ブロックの上のサンプルを、垂直方向に沿って、現在ブロックにコピーして予測値とする。
図8Bに示されたモード1では、現在ブロックの左の参照サンプルを、水平方向に沿って、現在ブロックにコピーして予測値とする。
図8Cに示されたモード2(DC)では、A~D及びI~Lという8つのサンプルの平均値を、すべてのサンプルの予測値とする。
図8D~
図8Iに示されたモード3~8では、それぞれある角度に沿って、参照サンプルを現在ブロックの対応位置にコピーする。現在ブロックのいくつかの位置が参照サンプルに厳密に対応することができないため、参照サンプルの重み付け平均値、又は参照サンプルの補間された分数サンプル(interpolated factional sample)を利用する必要がある。
【0118】
他にも平面(Planar)モードなどがある。技術の発展及びブロックの拡大に伴い角度予測モードも多くなっている。
図9は、イントラ予測モードを示す概略図である。
図9に示されているように、例えば、HEVCに用いられるイントラ予測モードは、Planarモード、DCモード及び33種の角度モード、合計で35種の予測モードを含む。
図10は、イントラ予測モードを示す概略図である。
図10に示されているように、VVCに用いられるイントラモードは、Planarモード、DCモード及び65種の角度モード、合計で67種の予測モードを含む。
図11は、イントラ予測モードを示す概略図である。
図11に示されているように、AVS3に用いられるイントラモードは、DCモード、Planeモード、バイリニア(Bilinear)モード及び63種の角度モード、合計で66種の予測モードを含む。
【0119】
また、予測を改善する技術もあり、例えば、参照サンプルの分数サンプル補間を改善すること、予測サンプルをフィルタリングすることなどが挙げられる。例えば、AVS3におけるマルチイントラ予測フィルタ(multiple intra prediction filter、MIPF)では、異なるサイズを有するブロックに対して異なるフィルタを利用して予測値を生成する。同一ブロック内の異なる位置におけるサンプルに対して、参照サンプルに近いサンプルに対して1種のフィルタを利用して予測値を生成し、参照サンプルから遠いサンプルに対して別のフィルタを利用して予測値を生成する。AVS3におけるイントラ予測フィルタ(intra prediction filter、IPF)など、予測サンプルをフィルタリングする技術では、参照サンプルを利用して予測値をフィルタリングすることができる。
【0120】
イントラ予測において、最確モード(MostprobableModes、MPM)リストを利用したイントラモードコーディング技術を利用して、エンコーディング・デコーディング効率を向上させることができる。エンコード・デコード済みの周辺ブロックのイントラ予測モードと、エンコード・デコード済みの周辺ブロックのイントラ予測モードに基づいて導出されるイントラ予測モード(例えば、隣接するモード)と、汎用の又は利用確率の高いイントラ予測モード(例えば、DC、Planar、Bilinearモードなど)とを利用して、1つのモードリストを構成する。テクスチャが空間的な連続性があるため、エンコード・デコード済みの周辺ブロックのイントラ予測モードを参照することは、空間関連性を利用したものである。MPMは、イントラ予測モードの予測に用いられることができる。即ち、MPMが現在ブロックに用いられる確率は、MPMが現在ブロックに用いられない確率より高いと考えられる。そのため、二値化中に、より少ない符号語がMPMに用いられるため、オーバーヘッドを節約し、エンコーディング・デコーディング効率を向上させることができる。
【0121】
GPMでは、重み行列を利用して2つのインター予測ブロックを組み合わせる。実際には、重み行列の利用は、2つの任意の予測ブロックを組み合わせるように拡張されることができる。例えば、2つのインター予測ブロック、2つのイントラ予測ブロック、1つのインター予測ブロックと1つのイントラ予測ブロックなどが挙げられる。さらに、スクリーンコンテンツコーディング(screen content coding、SCC)において、イントラブロックコピー(intra block copy、IBC)又はパレット(palette)の予測ブロックを1つ又は2つの予測ブロックとすることが可能である。
【0122】
本出願では、イントラ予測、インター予測、IBC予測、パレット予測を異なる予測方式と言う。説明を簡単にするため、ここで予測モードと総称する。予測モードは、エンコーダー・デコーダーがそれに基づいて現在ブロックの予測ブロックを生成できる情報であると理解されることができる。例えば、イントラ予測では、予測モードは、DC、Planar、様々なイントラ角度予測モードなどのあるイントラ予測モードであることができる。もちろん、イントラ参照サンプルの最適化方法、初期予測ブロック生成後の最適化方法(フィルタリングなど)など、何らかの他の補助情報を重ねることもできる。例えば、インター予測では、予測モードは、スキップ(skip)モード、マージ(merge)モード、又はMMVD(merge with motion vector difference)モード、又はAMVP(advanced motion vector predition)であることができ、単方向予測であってもよく、双方向予測又はマルチ仮定予測(multi hypothesis predition)であってもよい。単方向予測がインター予測モードに用いられる場合、単方向の動き情報である1つの動き情報を確定する必要があり、動き情報に基づいて予測ブロックを確定することができる。双方向予測がインター予測モードに用いられる場合、1つの双方向の動き情報又は2つの単方向の動き情報を確定する必要があり、動き情報に基づいて予測ブロックを確定することができる。マルチ仮定予測がインター予測モードに用いられる場合、複数の単方向の動き情報を確定する必要があり、動き情報に基づいて予測ブロックを確定することができる。スキップモード、マージモード、及び通常のインターモードは、単方向予測、双方向予測、又はマルチ仮定予測をサポートすることができる。1つの予測モードがインター予測モードであれば、動き情報を確定することができ、動き情報に基づいて予測ブロックを確定することができる。スキップモード、マージモード、MMVDモード、及び通常のインターモードに基づいて、テンプレートマッチング方法を利用することができ、このような予測モードは、依然として、スキップモード、マージモード、MMVDモード、及び通常のインターモードと呼ばれることができ、又は、テンプレートマッチングを利用するスキップモード、テンプレートマッチングを利用するマージモード、テンプレートマッチングを利用するMMVDモード、テンプレートマッチングを利用する通常のインターモードと呼ばれることもできる。
【0123】
スキップモードとマージモードでは、ビットストリームで動きベクトル差分MVDを伝送することを必要とせず、スキップモードでは、また、ビットストリームで残差を伝送することを必要としない。MMVDは、特別なマージモードであると考えられることができ、いくつかのフラグビットによっていくつかの特定のMVDを表す。これらの特定のMVDにはいくつかの可能な予め設定された値のみがある。一例はVVCにおけるMMVDモードである。MMVDモードでは、mmvd_direction_idxでMVDの方向を表し、mmvd_direction_idxの可能な値は0、1、2、3である。0はMMVDの水平成分が正値であり、垂直方向が0であることを意味し、1はMMVDの水平成分が負値であり、垂直方向が0であることを意味し、2はMMVDの水平成分が0であり、垂直方向が正値であることを意味し、3はMMVDの水平成分が0であり、垂直方向が負値であることを意味する。mmvd_distance_idxで、上記正値又は負値の絶対値を表す。mmvd_distance_idxの可能な値は0~7であり、ph_mmvd_fullpel_only_flag = = 0の場合、1、2、4、8、16、32、64、128をそれぞれ表す。ph_mmvd_fullpel_only_flag = = 1の場合、4、8、16、32、64、128、256、512をそれぞれ表す。通常のインターモードのMVDは理論上、有効範囲内の任意の可能なMVDを表すことができる。
【0124】
このように、GPMに対して確定する必要のある情報は、1つの重み導出モードと2つの予測モードとして表記されることができる。重み導出モードは重み行列又は重みを確定するために用いられ、2つの予測モードはそれぞれ1つの予測ブロック又は予測値を確定するために用いられる。重み導出モードは、分割モードと呼ばれることもあるが、模擬分割であるため、本出願では重み導出モードと呼ぶ方が慣れている。
【0125】
選択的に、2つの予測モードは、同じ又は異なる予測方式からのものであることができ、予測方式は、イントラ予測、インター予測、IBC、パレットを含むが、それらに限定されない。
【0126】
1つの具体的な例は以下のようである。GPMが現在ブロックに用いられ、この例は、インターコードされたブロック(inter-coded block)に用いられ、イントラ予測とインター予測におけるマージモードを利用することができる。表4に示されているように、1つのシンタックス要素intra_mode_idxの追加は、どの予測モードがイントラ予測モードであるかを示す。例えば、intra_mode_idxが0であることは、2つの予測モードがいずれもインター予測モードであることを示し、即ち、mode0IsInterが1であり、mode0IsInterが1であることを示す。intra_mode_idxが1であることは、第1予測モードがイントラ予測モードであり、第2予測モードがインター予測モードであることを示し、即ち、mode0IsInterが0であり、mode0IsInterが1であることを示す。intra_mode_idxが2であることは、第1予測モードがインター予測モードであり、第2予測モードがイントラ予測モードであることを示し、即ち、mode0IsInterが1であり、mode0IsInterが0であることを示す。intra_mode_idxが3であることは、2つの予測モードがいずれもイントラ予測モードであることを示し、即ち、mode0IsInterが0であり、mode0IsInterが0であることを示す。
【0127】
【0128】
いくつかの実施形態では、
図12に示されているように、GPMデコーディングプロセスは以下ように表現されることができる。ビットストリームを解析して、現在ブロックにGPM技術が利用されるか否かを確定し、現在ブロックにGPM技術が利用される場合、重み導出モード(又は「分割」モード、又は重み行列導出モード)、第1のイントラ予測モード、及び第2のイントラ予測モードを確定する。第1のイントラ予測モードに基づいて第1予測ブロックを確定し、第2のイントラ予測モードに基づいて第2予測ブロックを確定し、重み行列導出モードに基づいて重み行列を確定し、第1予測ブロックと第2予測ブロックと重み行列とに基づいて現在ブロックの予測ブロックを確定する。
【0129】
テンプレートマッチング方法は、最初にインター予測に用いられる。テンプレートマッチングでは、隣接するサンプル間の関連性を利用して、現在ブロックの周辺のいくつかの領域をテンプレートとする。現在ブロックをエンコード・デコードする前に、その左側と上側にあるブロックはコーディング順序に従って既にエンコード・デコードされた。もちろん、既存のハードウェアデコーダーの実現では、現在ブロックをデコードする前に、必ずしもその左側と上側にあるブロックが既にデコードされたことを確保するとは限らない。もちろん、ここで言及されるのはインターブロックである。例えば、HEVCでは、インターコードされるブロック(inter-coding block)に対して予測ブロックを生成するとき、周辺の再構成サンプルを必要とせず、インターブロックの予測プロセスを並列に実行することができる。しかし、イントラコードされるブロックに対して、左側と上側にある再構成サンプルを参照サンプルとする必要がある。理論上、左側と上側にあるサンプルは利用可能であり、即ち、ハードウェア設計に対して対応の調整を行うことで実現することができる。それに対して、右側と下側にあるサンプルは、VVCなどの既存の規格におけるコーディング順序では利用不可能である。
【0130】
図13に示されているように、現在ブロックの左側と上側の矩形領域がテンプレートとして設定され、左側のテンプレートの高さは一般的に現在ブロックの高さと同じであり、上側のテンプレートの幅は一般的に現在ブロックの幅と同じである。テンプレートは、現在ブロックと異なる高さ又は幅を有してもよい。参照画像においてテンプレートの最適なマッチング位置を見つけて、現在ブロックの動き情報又は動きベクトルを確定する。このプロセスは以下のように説明されることができる。ある参照画像において、1つの開始位置から周辺の一定範囲内で検索を行う。検索範囲、検索ステップサイズなどの検索ルールを予め設定することができる。ある位置に移動するたびに、その位置に対応するテンプレートと現在ブロック周辺のテンプレートとのマッチングの度合いを計算する。いわゆるマッチングの度合いは、差分絶対値和(sum of absolute difference、SAD)、差分変換絶対値和(sum of absolute transformed difference、SATD)などのいくつかの歪みコストで測定されることができる。一般的にはSATDに用いられる変換は、アダマール(Hadamard)変換、平均二乗誤差(mean-square error、MSE)などである。SAD、SATD、MSEなどの値が小さいほど、マッチングの度合いが高くなる。その位置に対応するテンプレートの予測ブロックと、現在ブロック周辺のテンプレートの再構成ブロックとを利用してコストを計算する。整数サンプル位置の検索に加えて、分数サンプル位置の検索を行うこともできる。検索されたマッチングの度合いが最も高い位置に基づいて、現在ブロックの動き情報を確定することができる。隣接するサンプル間の関連性を利用して、テンプレートに適した動き情報は、現在ブロックに適した動き情報である可能性がある。もちろん、テンプレートマッチング方法は必ずしもすべてのブロックに有効であるとは限らないため、いくつかの方法を利用して、現在ブロックに上記テンプレートマッチング方法が用いられるか否かを確定することができる。例えば、制御スイッチを現在ブロックに利用して、テンプレートマッチング方法が用いられるか否かを表す。このようなテンプレートマッチング方法の1つの名称は、デコーダー側動きベクトル導出(decoder side motion vector derivation、DMVD)である。エンコーダーとデコーダーはいずれも、テンプレートを利用して検索を行って動き情報を導出し、又は、元の動き情報に基づいてより良い動き情報を見つけることができる。具体的な動きベクトル又は動きベクトルの差分を伝送する必要がなく、エンコーダーとデコーダーの両方が同じルールに従って検索を行うことで、エンコーディングとデコーディングの一致性を確保する。テンプレートマッチング方法によって、圧縮性能を向上させることができるが、デコーダーは「検索」を行う必要もあり、デコーダーの一定の複雑度がもたらされる。
【0131】
以上、インター予測にテンプレートマッチングを適用する方法を記載したが、テンプレートマッチング方法は、イントラ予測に用いられることもできる。例えば、テンプレートを利用してイントラ予測モードを確定する。現在ブロックに対して同様に、現在ブロックの上側と左側の一定範囲内の領域をテンプレートとして利用することができ、例えば、依然として
図13に示された左側の矩形領域と上側の矩形領域が挙げられる。現在ブロックをエンコード・デコードするとき、テンプレート内の再構成サンプルが利用可能である。このプロセスは以下のように説明されることができる。現在ブロックに対して候補イントラ予測モードの集合を確定し、候補イントラ予測モードは全部の利用可能なイントラ予測モードの1つの部分集合(subset)を構成する。もちろん、候補イントラ予測モードは、全部の利用可能なイントラ予測モードの全体集合(universal set)であってもよい。それは、性能と複雑度とのトレードオフに基づいて確定されることができる。MPM又はいくつかのルール(例えば、等間隔選別)に従って候補イントラ予測モードの集合を確定することができる。各候補イントラ予測モードの、テンプレートにおけるコスト、例えば、SAD、SATD、MSEなどを計算する。そのモードを利用してテンプレートで予測を行って予測ブロックを取得し、予測ブロックとテンプレートの再構成ブロックを利用してコストを計算する。コストが小さいモードはテンプレートによりマッチングする可能性があり、隣接するサンプル間の類似性を利用して、テンプレートで良好な性能を示すイントラ予測モードは、現在ブロックで良好な性能を示すイントラ予測モードである可能性がある。コストの小さい1つ又は複数のモードを選択する。もちろん、上記2つのステップを繰り返してもよく、例えば、コストの小さい1つ又は複数のモードを選択した後、候補イントラ予測モードの集合を再び確定し、新たに確定された候補イントラ予測モードの集合に対してコストを再び計算し、コストの小さい1つ又は複数のモードを選択する。それは、粗選択と精選択であると理解されることもできる。最終的に選択された1つのイントラ予測モードを現在ブロックのイントラ予測モードとして確定し、又は、最終的に選択された複数のイントラ予測モードを現在ブロックのイントラ予測モードの候補とする。もちろん、テンプレートマッチング方法のみで候補イントラ予測モードの集合をソートすることもでき、例えば、MPMリストをソートし、即ち、MPMリストにおける各モードでは、テンプレートに対して予測ブロックを取得してコストを確定し、コストの昇順でそれらのモードをソートする。一般に、MPMリストにおいて、モードがより前に位置するほど、ビットストリームにおけるオーバーヘッドが少なくなる。それによって、圧縮効率を向上させることができる。
【0132】
テンプレートマッチング方法は、GPMの2つの予測モードを確定するために用いられることができる。テンプレートマッチング方法がGPMに用いられる場合、現在ブロックに対して、1つの制御スイッチを利用して、現在ブロックの2つの予測モードにテンプレートマッチングが利用されるか否かを制御することができ、又は、2つの制御スイッチを利用して、2つの予測モードのそれぞれにテンプレートマッチングが利用されるか否かをそれぞれ制御することができる。
【0133】
また、他の面はテンプレートマッチングを如何に利用するかということである。例えば、GPMがマージモードで利用される場合、例えば、VVCにおけるGPMでは、merge_gpm_idxXを利用してmergeCandListから1つの動き情報を確定し、Xは0又は1である。X番目の動き情報に対して、1つの方法は、上記動き情報に基づいてテンプレートマッチング方法を利用して最適化することである。即ち、merge_gpm_idxXに基づいてmergeCandListから1つの動き情報を確定し、当該動き情報に対してテンプレートマッチングを利用する場合、テンプレートマッチング方法を利用して上記動き情報に基づいて最適化する。もう1つの方法は、merge_gpm_idxXを利用してmergeCandListから1つの動き情報を確定するというのではなく、デフォルトの動き情報に基づいて直接に検索を行って1つの動き情報を確定することである。
【0134】
X番目の予測モードがイントラ予測モードであり、且つ現在ブロックのX番目の予測モードにテンプレートマッチング方法が利用される場合、ビットストリーム中にイントラ予測モードのインデックスを示す必要がなく、テンプレートマッチング方法を利用してイントラ予測モードを確定することができる。又は、テンプレートマッチング方法を利用して候補集合又はMPMリストを確定し、ビットストリーム中に当該イントラ予測モードのインデックスを示す必要がある。
【0135】
GPMでは、重み導出モードを確定した後、各予測モードが占有する領域を確定することができる。いわゆる占有する領域は、当該予測モードに対応する重みが最大値である領域、又は当該予測モードに対応する重みがある閾値以上である領域であると理解されることができる。GPMで圧縮性能を向上させることができるのは、GPMに基づいて「分割」された2つの部分が異なるためである。従って、テンプレートマッチング方法を利用してGPMの予測モードを確定するとき、テンプレートを分割することもできる。既存技術では、テンプレートを左側、上側、全部(左側+上側)という3種類に分けることができる。テンプレートの分割は、重み導出モードに関連している。例えば、表5に示されているように、既存技術におけるテンプレートの分割は、「分割」角度又は「分割」角度インデックスangleIdxに関連している。
【0136】
【0137】
例えば、左側のテンプレートがTM_Aであり、上側のテンプレートがTM_Lであり、全部(左側+上側)のテンプレートがTM_ALであると記される。テンプレートと「分割」角度インデックスとの関係は表5に示されており、1、6、7などのいくつかの角度インデックスは、現在のGPMに利用されていないため、対応するテンプレートがなく、/で示されている。
【0138】
以下、
図14を参照しながら、デコーディング側を例として、本出願の実施形態に係るビデオデコーディング方法を説明する。
【0139】
図14は、本出願の一実施形態に係る予測方法を示すフローチャートである。本出願の実施形態は
図1及び
図3に示されたビデオデコーダーに適用される。
図14に示されているように、本出願の実施形態の方法は、以下の内容を含む。
【0140】
S101:ビットストリームをデコードして、K個の初期予測モードを確定する。
【0141】
上記から分かるように、予測精度をさらに向上させるために、複数の予測モードを利用して現在ブロックを予測することができる。この場合、エンコーディング側とデコーディング側との予測一致性を保つために、いくつかの実施形態では、エンコーディング側は、ビットストリームにおいて重み導出モードを指示する必要があり、例えば、重み導出モードのインデックスをビットストリームに書き込む。VVCを例として、GPMの64種の重み導出モードは、等確率でエンコードされる。即ち、二値化中に及び逆二値化中に、固定長の6ビットは64種の重み導出モードに利用されるため、コーディングコストが増加する。
【0142】
本出願の実施形態では、コーディングコストを低減するために、デコーディング側は、予測モードによって重み導出モードを導出する。具体的に、デコーディング側は、ビットストリームをデコードすることによってK個の初期予測モードを確定し、次に、これらのK個の初期予測モードに基づいて、現在ブロックの重み導出モードを確定し、さらに、現在ブロックの重み導出モードに基づいて、現在ブロックの予測値を確定する。
【0143】
上記現在ブロックのK個の初期予測モードは、以下のいくつかの例を含む。
【0144】
例1:上記K個の初期予測モードはいずれも、イントラ予測モードである。
【0145】
例2:上記K個の初期予測モードはいずれも、インター予測モードである。
【0146】
例3:上記K個の初期予測モードのうち、少なくとも1つはイントラ予測モードであり、少なくとも1つはインター予測モードである。
【0147】
例4:上記K個の初期予測モードのうち、少なくとも1つはイントラ予測モードであり、少なくとも1つは非インター予測モード且つ非イントラ予測モードであり、例えば、イントラブロックコピー(IBC)予測モード又はパレット(palette)予測モードなどが挙げられる。
【0148】
例5:上記K個の初期予測モードのうち、少なくとも1つはインター予測モードであり、少なくとも1つは非インター予測モード且つ非イントラ予測モードであり、例えば、IBC予測モード又はパレット予測モードなどが挙げられる。
【0149】
例6:上記K個の初期予測モードはいずれもイントラ予測モードではなく、インター予測モードでもなく、例えば、1つの初期予測モードはIBC予測モードであり、1つの初期予測モードはパレット予測モードである。
【0150】
なお、本出願の実施形態は、上記K個の初期予測モードの具体的な種類を限定しない。
【0151】
図15は、2つの予測モードを利用して現在ブロックを予測する場合の概略図である。
図15に示されているように、現在ブロックを予測する中に、第1予測モードを利用して第1予測値を確定し、また、第2予測モードを利用して第2予測値を確定し、次に、重みを利用して第1予測値と第2予測値を重み付けして、現在ブロックの予測値を得ることができる。
【0152】
上記S101において、デコーディング側がビットストリームをデコードして、K個の初期予測モードを確定する方式は以下を含むが、それらに限定されない。
【0153】
方式1:ビットストリームにK個の初期予測モードのインデックスが含まれている。そのため、デコーディング側は、ビットストリームをデコードすることにより、これらのK個の初期予測モードのインデックスを得、当該インデックスに基づいて、K個の初期予測モードを確定することができる。例えば、K個の初期予測モードがイントラ予測モードであることを例として、エンコーディング側は、これらのK個の初期イントラ予測モードのインデックスをビットストリームに書き込む。例示的に、K=2であり、この2つの初期予測モードが
図10に示されたVVCの65種の角度予測モードのうちの角度予測モード31及び角度予測モード35であると仮定して、エンコーディング側は、インデックス31及びインデックス35をビットストリームに書き込む。デコーディング側は、ビットストリームをデコードして、インデックス31及インデックスび35を取得し、さらに、
図10に示されたVVCの65種の角度予測モードから、インデックス31対応するイントラ予測モード及びインデックス35に対応するイントラ予測モードを2つの初期予測モードとして取得する。
【0154】
方式2:上記S101は、ステップS101-A1~S101-A3を含む。
S101-A1:侯選予測モードのリストを確定する。当該侯選予測モードのリストは少なくとも2つの侯選予測モードを含む。
S101-A2:ビットストリームをデコードして、予測モードインデックスを得る。
S101-A3:予測モードインデックスに基づいて、侯選予測モードのリストからK個の初期予測モードを確定する。
【0155】
いくつかの実施形態では、上記K個の初期予測モードがいずれもイントラ予測モードである場合、当該侯選予測モードのリストに含まれる侯選予測モードはいずれもイントラ予測モードであり、例えば、DCモード、平面モード、角度モードなどのうちの少なくとも1つを含む。選択的に、上記侯選予測モードのリストは、MPMリスト内のイントラ予測モードを含むこともできる。
【0156】
いくつかの実施形態において、上記K個の初期予測モードがいずれもインター予測モードである場合、当該侯選予測モードのリストに含まれる侯選予測モードはいずれもインター予測モードであり、例えば、スキップモード、マージモード、通常のインター予測モードなどのうちの少なくとも1つを含む。
【0157】
いくつかの実施形態では、上記K個の初期予測モードがインター予測モード及びイントラ予測モードの両方を含む場合、当該侯選予測モードのリストは、少なくとも1つのイントラ予測モード及び少なくとも1つのインター予測モードを含む。
【0158】
選択的に、上記侯選予測モードのリストは、IBCモード、パレットモードなどのモードを含むこともできる。
【0159】
選択的に、上記侯選予測モードのリストは、単方向予測、双方向予測、マルチ仮定予測などを含むこともできる。
【0160】
本出願は、上記侯選予測モードのリストに含まれる侯選予測モードの種類と数を限定しない。
【0161】
本出願の実施形態は、侯選予測モードのリストの確定方式を限定しない。
【0162】
一例では、上記侯選予測モードのリストに含まれる侯選予測モードは、予め設定されたモードである。
【0163】
一例では、上記侯選予測モードのリストはMPMリストである。
【0164】
一例では、上記侯選予測モードのリストは、等間隔選別などのいくつかのルールに従って確定された予測モードの集合である。
【0165】
一例では、エンコーディング側とデコーディング側の両方は、上記侯選予測モードのリストにおける侯選予測モードがテンプレートマッチング方式によって確定されることをデフォルトとする。例えば、デコーディング側は予測モードを利用して現在ブロックのテンプレートを予測して、テンプレートの予測値を取得し、テンプレートの予測値とテンプレートの再構成値に基づいて当該予測モードのコストを確定し、例として、SADコスト、SATDコスト、又はMSEコストなどが挙げられる。それによって、デコーディング側は、各予測モードのコストに基づいて予測モードをソートして侯選予測モードのリストを得ることができ、例えば、コストが最小である複数の予測モードを侯選予測モードとして確定して、侯選予測モードのリストを構成することができる。
【0166】
本出願の実施形態において、ビットストリームに含まれる予測モードインデックスは、K個の初期予測モードのうちの少なくとも1つの初期予測モードのインデックスであることができる。例えば、当該予測モードインデックスは、K個の初期予測モードのインデックスであり、又はK個の初期予測モードのうちの1番目の初期予測モードのインデックスである。デコーディング側は、ビットストリームをデコードして、当該予測モードインデックスを取得し、当該予測モードインデックスに基づいて、上記確定された侯選予測モードのリストからK個の初期予測モードを確定する。
【0167】
例示的に、ビットストリームに含まれる予測モードインデックスがK個の初期予測モードのインデックスである場合、デコーディング側は、侯選予測モードのリストにおける当該K個の初期予測モードのインデックスに対応するK個の侯選予測モードを、K個の初期予測モードとして確定する。
【0168】
例示的に、ビットストリームに含まれる予測モードインデックスが、K個の初期予測モードのうちの1番目の初期予測モードのインデックスである場合、デコーディング側は、侯選予測モードのリストにおける、当該インデックスに対応する侯選予測モードを、K個の初期予測モードのうちの1番目の初期予測モードとして確定し、侯選予測モードのリストにおける当該インデックスに続く(K-1)個インデックスに対応する(K-1)個の侯選予測モードを、K個の初期予測モードのうちの残りの(K-1)個の初期予測モードとして確定する。
【0169】
本出願の実施形態において、デコーディング側は、上記ステップに基づいてK個の初期予測モードを確定し、これらのK個の初期予測モードに基づいて現在ブロックの重み導出モードを確定し、さらに、当該現在ブロックの重み導出モードに基づいて現在ブロックを予測して、現在ブロックの予測値を確定する。
【0170】
いくつかの実施形態では、デコーディング側は、K個の初期予測モードを確定する前に、まず、現在ブロックに対してK種の異なる予測モードを利用して重み付け予測を行うか否かを確定する必要がある。デコーディング側は、現在ブロックに対してK種の異なる予測モードを利用して重み付け予測を行うと確定した場合、上記S101を実行してK個の初期予測モードを確定する。
【0171】
1つの可能な実施形態において、デコーディング側は、現在ブロックの予測モードパラメータを確定することによって、現在ブロックに対して2つの異なる予測モードを利用して重み付け予測を行うか否かを確定することができる。
【0172】
選択的に、本出願の実施形態では、予測モードパラメータは、現在ブロックにGPMモード又はAWPモードを利用できるか否かを示すことができ、即ち、現在ブロックに対してK個の異なる予測モードを利用して予測を行うことができるか否かを示す。
【0173】
なお、本出願の実施形態において、予測モードパラメータは、GPMモード又はAWPモードフラグビットが利用されているか否かを示すフラグビットとして理解されることができる。具体的に、エンコーディング側は、1つの変数を予測モードパラメータとして利用することができ、それによって、当該変数の値の設定で予測モードパラメータの設定を実現する。例示的に、本出願において、現在ブロックにGPMモード又はAWPモードを利用する場合、エンコーディング側は予測モードパラメータの値を、現在ブロックにGPMモード又はAWPモードを利用することを示すものに設定することができ、具体的に、エンコーディング側は、変数の値を1に設定することができる。例示的に、本出願において、現在ブロックにGPMモード又はAWPモードを利用しない場合、エンコーディング側は予測モードパラメータの値を、現在ブロックにGPMモード又はAWPモードを利用しないことを示すものに設定することができ、具体的に、エンコーディング側は、変数の値を0に設定することができる。さらに、本出願の実施形態において、エンコーディング側は、予測モードパラメータの設定を完了した後、予測モードパラメータをビットストリームに書き込み、デコーディング側に伝送することができる。それによって、デコーディング側はビットストリームを解析した後、予測モードパラメータを取得することができる。
【0174】
上記に基づいて、デコーディング側はビットストリームをデコードして、予測モードパラメータを取得し、さらに、当該予測モードパラメータに基づいて現在ブロックにGPMモード又はAWPモードを利用するか否かを確定する。現在ブロックにGPMモード又はAWPモードを利用する場合、即ちK個の異なる予測モードを利用して予測を行う場合、K個の初期予測モードを確定する。
【0175】
なお、本出願の実施形態において、GPMモード又はAWPモードは一種の予測方法である。具体的に、現在ブロックに対してK個の異なる予測モードを確定し、次に、これらのK個の異なる予測モードのそれぞれに基づいてK個の予測値を確定し、次に、重みを確定することができ、重みに基づいてK個の予測値を組合わせて、最終的に現在ブロックの予測値を得ることができる。
【0176】
いくつかの実施形態では、GPMモード又はAWPモードを利用する場合、現在ブロックのサイズが制限されることができる。本出願の実施形態に係る予測方法では、K個の異なる予測モードのそれぞれを利用してK個の予測値を生成し、重みに基づいて重み付けして、現在ブロックの予測値を得る必要がある。複雑度を低減するために、また、圧縮性能と複雑度とのトレードオフを考慮して、本出願の実施形態では、あるサイズを有するブロックに対してGPMモード又はAWPモードを利用しないよう制限することができる。従って、本出願では、デコーディング側は、まず、現在ブロックのサイズパラメータを確定し、次に、サイズパラメータに応じて、現在ブロックにGPMモード又はAWPモードを利用するか否かを確定することができる。
【0177】
なお、本出願の実施形態において、現在ブロックのサイズパラメータは、現在ブロックの高さ及び幅を含むことができる。従って、デコーディング側は、現在ブロックの高さ及び幅を利用して、GPMモード又はAWPモードの利用を制限することができる。例示的に、本出願では、幅が第1閾値より大きく且つ高さが第2閾値より大きい場合、現在ブロックにGPMモード又はAWPモードを利用すると確定する。上記分かるように、1つの可能な制限は、ブロックの幅が第1閾値より大きく(又は第1閾値以上であり)且つブロックの高さが第2閾値より大きい(又は第2閾値以上である)場合にのみ、GPMモード又はAWPモードを利用することである。第1閾値と第2閾値の値は、8、16、32などであってもよく、第1閾値は第2閾値に等しくてもよい。例示的に、本出願では、幅が第3閾値より小さく且つ高さが第4閾値より大きい場合、現在ブロックにGPMモード又はAWPモードを利用すると確定する。上記分かるように、1つの可能な制限は、ブロックの幅が第3閾値より小さく(又は第3閾値以下であり)且つブロックの高さが第4閾値より大きい(又は第4閾値以上である)場合にのみ、AWPモードを利用することである。第3と第4閾値の値は、8、16、32などであってもよく、第3閾値は第4閾値に等しくてもよい。
【0178】
いくつかの実施形態では、本出願の実施形態において、サンプルパラメータへの制限によって、GPMモード又はAWPモードを利用できるブロックのサイズを制限することができる。例示的に、本出願において、デコーディング側は、まず、現在ブロックのサンプルパラメータを確定し、次に、サンプルパラメータ及び第5閾値に基づいて、現在ブロックにGPMモード又はAWPモードを利用できるか否かを確定することができる。上記分かるように、1つの可能な制限は、ブロック内のサンプル数が第5閾値より大きい(又は第5閾値以上である)場合にのみ、GPMモード又はAWPモードを利用することである。第5閾値の値は、8、16、32などであってもよい。即ち、本出願において、現在ブロックのサイズパラメータがサイズ要件を満たすという条件下でのみ、現在ブロックにGPMモード又はAWPモードを利用できる。
【0179】
いくつかの実施形態では、本出願において、デコードされようとする現在画像に本出願の技術案を適用するか否かを確定するための画像レベルのフラグが存在し得る。例えば、本出願がイントラフレーム(例えば、Iフレーム)に適用し、インターフレーム(例えば、Bフレーム、Pフレーム)に適用しないように構成されることができる。又は、本出願がイントラフレームに適用せず、インターフレームに適用するように構成されることもできる。又は、本出願がインターフレームの一部に適用し、インターフレームの他の一部に適用しないように構成されることもできる。インターフレームにイントラ予測を利用することもできるため、本出願がインターフレームに適用するこ可能性もある。
【0180】
いくつかの実施形態では、この領域に本出願の技術案を適用するか否かを確定するために、画像レベル以下且つCUレベル以上(例えば、タイル、スライス、パッチ、LCUなど)のフラグも存在し得る。
【0181】
S102:K個の初期予測モードに基づいて、現在ブロックの重み導出モードを確定する。
【0182】
本出願では、重み導出モードは、現在ブロックに用いられる重みを確定するために用いられる。具体的に、重み導出モードは、重みを導出するモードであることができる。所定の長さ及び幅を有するブロックに対して、重み導出モードごとに1つの重み行列を導出することができる。同じサイズを有するブロックに対して、異なる重み導出モードによって導出される重み行列が異なる。
【0183】
例えば、本出願では、AWPには56種の重み導出モードがあり、GPMには64種の重み導出モードがある。
【0184】
本出願の実施形態において、デコーディング側は、上記確定されたK個の初期予測モードに基づいて、現在ブロックの重み導出モードを確定する。いくつかの場合では、エンコーディング側は、現在ブロックの重み導出モードに関連する情報をビットストリームに書き込まなくてもよい。それによって、符号語を節約し、コーディングコストを低減する。
【0185】
本出願の実施形態は、デコーディング側がK個の初期予測モードに基づいて現在ブロックの重み導出モードを確定する方式を限定しない。
【0186】
いくつかの実施形態では、デコーディング側は、現在ブロックのテンプレートに基づいて、K個の初期予測モードによって、現在ブロックの重み導出モードを確定する。VVCを例として、GPMには64種の重み導出モードがあり、デコーディング側はテンプレートを分析することにより、どの重み導出モードが選択される確率が高く、どの重み導出モードが選択される確率が低いかを推定する。インターGPMを例として、1つの典型的なシーンは2つのオブジェクトが互いに移動するシーンであり、GPMは2つのオブジェクトのエッジに用いられることができる。現在ブロックとテンプレートの両方にオブジェクトのエッジが含まれると仮定すると、テンプレートにおけるエッジを利用して、現在ブロックのエッジを推測することができる。一例として、2つの動き情報を与え、これら2つの動き情報のそれぞれに基づいてテンプレートの2つの予測値を得、それぞれ第1のテンプレート予測値及び第2のテンプレート予測値と記す。ある重み導出モードに基づいてテンプレート重みを導出し、第1のテンプレート予測値、第2のテンプレート予測値及びテンプレート重みに基づいて当該重み導出モードに対応するテンプレートの予測値を確定する。テンプレートの再構成値が利用可能であるため、当該重み導出モードに対応するテンプレートの予測値とテンプレートの再構成値に基づいて、テンプレートにおける当該重み導出モードのコストを得ることができる。それによって、テンプレートにおける各重み導出モードのコストに基づいて、重み導出モードが選択される確率を推定することができる。1つの可能な実施形態は、テンプレートにおける各重み導出モードのコストに基づいて、重み導出モードをソートすることである。コストの小さいモードが前に位置し、コストの大きいモードが後ろに位置する。ソートされた重み導出モードが大体、確率の高いものから確率の低いものへとソートされると考えられるため、可変長コーディングの方法を利用して処理することができる。1つの可能な実施形態は以下のようである。重み導出モードのリストを構築し、エンコーディング側は、現在ブロックに対して選択された現在ブロックの重み導出モードの、リストにおけるインデックスをビットストリームに書き込む。デコーダーは、ビットストリームにおけるインデックスを解析して、リストから現在ブロックの重み導出モードを確定する。
【0187】
以上から分かるように、本出願の実施形態では、K個の初期予測モードに基づいて現在ブロックの重み導出モードを確定するプロセスにおいて、重み導出モードに基づいてテンプレート重みを確定する必要がある。
【0188】
本出願の実施形態に係る重み導出モードに基づいてテンプレート重みを確定するプロセスを以下に説明する。
【0189】
テンプレートマッチングでは、隣接するサンプル間の関連性を利用して、現在ブロックの周辺のいくつかの領域をテンプレートとする。現在ブロックをエンコード・デコードする前に、その左側と上側にあるブロックはコーディング順序に従って既にデコードされた。インター予測では、参照画像からテンプレートの最適なマッチング位置を見つけることによって、現在ブロックの動き情報又は動きベクトルを確定する。イントラ予測では、テンプレートを利用して現在ブロックのイントラ予測モードを確定する。
【0190】
本出願は、現在ブロックのテンプレートの具体的な形状を制限しない。
【0191】
いくつかの実施形態では、テンプレートは、現在ブロックの上側のデコードされた領域、左側のデコードされた領域、及び左上側のデコードされた領域のうちの少なくとも1つを含む。
【0192】
選択的に、上側のデコードされた領域の幅は現在ブロックの幅と同じであり、左側のデコードされた領域の高さは現在ブロックの高さと同じであり、左上側のデコードされた領域の幅は左側のデコードされた領域の幅と同じであり、左上側のデコードされた領域の高さは上側のデコードされた領域の高さと同じである。
【0193】
現在、上記表5に示されたように、例えば、K=2であり、K個の予測モードは、第1予測モードと第2予測モードを含み、第1予測モードに対応するテンプレートと第2予測モードに対応するテンプレートはそれぞれ、現在ブロックの上側のデコードされた領域であり、又は、現在ブロックの左側のデコードされた領域であり、又は、現在ブロックの左側のデコードされた領域と上側のデコードされた領域である。例えば、
図16に示されているように、GPMインデックスが2である重み導出モードを例として、現在ブロックの重み行列の白色領域は第1予測モードの予測値に対応する重みであり、黒色領域は第2予測モードの予測値に対応する重みである。
図16に示されているように、第1予測モードに対応する第1テンプレートは現在ブロックの上側のデコードされた領域であり、第2予測モードに対応する第2テンプレートは現在ブロックの左側のデコードされた領域であるが、第2予測モードに近いテンプレートは左側領域に加えて上側のデコードされた領域の一部を含む。従って、既存技術ではテンプレートの分割が十分に細かくなく、その結果、テンプレートに基づいて現在ブロックの重み導出モードを的確に導出することができない。
【0194】
当該技術的課題を解決するために、本出願では、重み導出モードによってテンプレートのより細かい分割を実現することができる。例えば、
図17Aに示されているように、本出願では、現在ブロックの重み導出モードに対応する重み行列の分割線をテンプレート領域に向かって延長して、テンプレートを分割する。例えば、分割線の一方側のテンプレートを第1テンプレートとして記し、分割線の他方側のテンプレートを第2テンプレートとして記す。第1テンプレートは第1予測モードに対応し、第2テンプレートは第2予測モードに対応し、第1テンプレートの重みは第1予測モードに対応する重みに基づいて確定され、第2テンプレートの重みは第2予測モードに対応する重みに基づいて確定される。例えば、第1テンプレートの重みは第1予測モードに対応する重みと同じであり、第2テンプレートの重みは第2予測モードに対応する重みと同じである。
【0195】
いくつかの実施形態では、上記方法に従って分割された第1テンプレート及び第2テンプレートは、長方形ではない可能性がある。例えば、
図17Aに示されているように、第1テンプレート及び第2テンプレートは傾斜辺を有するが、不規則なテンプレートへのコストの計算は比較的複雑である。
【0196】
テンプレートマッチングの複雑度を軽減するために、いくつかの実施形態では、重み行列をテンプレート領域に向かって直接に延びて、例えば左方向や上方向に向かって延びて、テンプレートをカバーすることにより、テンプレートの重みを確定することができる。例えば、
図17Bに示されているように、選択的に、現在ブロックの左上側領域の矩形領域をテンプレートに追加することができ、テンプレートと現在ブロックを合わせて矩形を形成する。もちろん、左側部分と上側部分のみをテンプレートとして利用することも可能である。
図17Bに示されているように、左上側領域を追加したものを例として、左側、左上側、上側の逆L字型の領域をテンプレート領域とし、右下側の矩形領域を現在ブロックとし、左上側に延びた重み行列はテンプレートの重み行列となる。このように、テンプレートを実際に分割するのではなく、重みを利用してテンプレートの分割を模擬する。重み導出モードを利用してテンプレートの分割を模擬するとも言え、又は、重み導出モードを利用してテンプレート重みを確定し、テンプレート重みに基づいてテンプレートマッチングのコストを確定するとも言える。ブロック形状が異なればテンプレートの分割も異なる可能性があるため、本出願では、様々な形状を有するブロックに対して様々なルールを設定する必要がなく、例えば、表5に示された予測モードとテンプレートとの対応関係を設定する必要がない。また、「分割」の精度についても、左側領域と上側領域のみを区別する方法より、本出願における模擬分割のほうが、より細かく且つ精確である。
【0197】
いくつかの実施形態では、
図17Bに示されている現在ブロックの左側領域と上側領域を現在ブロックのテンプレートとし、左上側の行列領域を考慮しない。
【0198】
テンプレートマッチング中に、1つの成分(Y、Cb、Cr又はR、G、B)のみを利用することが可能である。例えば、YUVフォーマットでは、Yが支配的であるため、Yを利用することができるが、もちろん、すべての成分を利用することもできる。説明を簡単にするため、本出願では、1つの成分を例として説明し、例えば、Y成分に対してテンプレートマッチングを行うことを例とし、他の成分についてはY成分を参照することができる。
【0199】
本出願の実施形態において、重み導出モードに基づいてテンプレート重みを導出するプロセスと、予測値の重みを導出するプロセスとを合わせることができ、例えば、テンプレート重みと予測値の重みを同時に導出する。予測値の重みは、予測値に対応する重みとして理解されることができる。例えば、第1予測モードを利用して第1予測値を取得し、第2予測モードを利用して第2予測値を取得し、重み導出モードに基づいて第1予測値の第1重みを確定し、重み導出モードに基づいて第2予測値の第2重みを確定し、第1予測値及び第1重みの積と、第2予測値及び第2重みの積との和を現在ブロックの予測値として確定することができる。
【0200】
本出願では、テンプレート重みと区別するために、第1重み及び第2重みを予測値の重みと呼ぶ。
【0201】
いくつかの実施形態では、重み導出モードに基づいて、テンプレート重みを確定することは、以下のステップを含む。
ステップA:重み導出モードに基づいて、角度インデクシングと距離インデクシングを確定する。
ステップB:角度インデックス、距離インデックス、及びテンプレートのサイズに基づいて、テンプレート重みを確定する。
【0202】
本出願では、予測値の重みを導出する方式と同じ方式でテンプレート重みを導出することができる。例えば、まず、重み導出モードに基づいて、角度インデクシングと距離インデクシングを確定することができる。角度インデクシングは、重み導出モードによって導出された各重みの境界線の角度インデクシングとして理解されることができる。例えば、上記表2に従って、重み導出モードに対応する角度インデクシングと距離インデクシングを確定することができる。例えば、重み導出モードが27である場合、対応する角度インデクシングは12であり、対応する距離インデクシングは3である。次に、角度インデックス、距離インデックス、及びテンプレートのサイズに基づいて、テンプレート重みを確定する。
【0203】
上記ステップBにおける重み導出モードに基づいてテンプレート重みを導出する方式は以下を含むが、それらに限定されない。
【0204】
方式1:角度インデックス、距離インデックス、及びテンプレートのサイズに基づいて、テンプレート重みを直接に確定する。この場合、上記ステップBは、以下のステップB11~ステップB13を含む。
ステップB11:角度インデックス、距離インデックス、及びテンプレートのサイズに基づいて、テンプレート内のサンプルの第1パラメータを確定する。
ステップB12:テンプレート内のサンプルの第1パラメータに基づいて、テンプレート内のサンプルの重みを確定する。
ステップB13:テンプレート内のサンプルの重みに基づいて、テンプレート重みを確定する。
【0205】
本実施形態では、角度インデックス、距離インデックス、テンプレートのサイズ、及び現在ブロックのサイズに基づいて、テンプレート内のサンプルの重みを確定し、さらに、テンプレート内の各サンプルの重みからなる重み行列をテンプレート重みとして確定する。
【0206】
本出願の第1パラメータは、重みを確定するために用いられる。いくつかの実施形態では、第1パラメータは重みインデックスとも呼ばれる。
【0207】
可能な一実施形態では、オフセットと第1パラメータは、以下のように確定されることができる。テンプレート重み導出プロセスの入力は、
図18に示されているように、現在ブロックの幅nCbW、現在ブロックの高さnCbH、左側のテンプレートの幅nTmW、上側のテンプレートの高さnTmH、GPMの「分割」角度インデックス変数angleId、GPMの距離インデックス変数distanceIdx、成分インデックス変数cIdxを含む。例示的に、本出願では輝度成分を例とし、cIdxが0であることは輝度成分を示す。
【0208】
変数nW、nH、shift1、offset1、displacementX、displacementY、partFlip、及びshiftHorは以下の方法に基づいて導出される。
nW = ( cIdx = = 0 ) ? nCbW : nCbW * SubWidthC
nH = ( cIdx = = 0 ) ? nCbH : nCbH * SubHeightC
shift1 = Max( 5, 17 - BitDepth )、BitDepthはエンコーディング・デコーディングのビット深度である。
offset1 = 1 << ( shift1 - 1 )
displacementX = angleIdx
displacementY = ( angleIdx + 8 ) % 32
partFlip = ( angleIdx >= 13 && angleIdx <= 27 ) ? 0 : 1
shiftHor = ( angleIdx % 16 = = 8 | | ( angleIdx % 16 != 0 && nH >= nW ) ) ? 0 : 1
【0209】
オフセットoffsetXとoffsetYは以下の方法に基づいて導出される。
- shiftHorの値が0である場合、
offsetX = ( -nW ) >> 1
offsetY = ( ( -nH ) >> 1 ) + ( angleIdx < 16 ? ( distanceIdx * nH ) >> 3 : -( ( distanceIdx * nH ) >> 3 ) )
- そうではない場合(即ち、shiftHorの値が1である場合)
offsetX = ( ( -nW ) >> 1 ) + ( angleIdx < 16 ? ( distanceIdx * nW ) >> 3 : -( ( distanceIdx * nW ) >> 3 )
offsetY = ( - nH ) >> 1
【0210】
テンプレートの重み行列wTemplateValue[x][y](x = -nTmW..nCbW - 1、y = -nTmH..nCbH - 1、xとyがともに0以上である場合を除く)は、以下の方法に基づいて導出される(なお、この例では、現在ブロックの左上隅の座標が(0,0)とされる)。
- 変数xLと yLは以下の方法に基づいて導出される。
xL = ( cIdx = = 0 ) ? x : x * SubWidthC
yL = ( cIdx = = 0 ) ? y : y * SubHeightC
【0211】
disLutは上記表3に従って確定される。
【0212】
第1パラメータweightIdxは以下の方法に基づいて導出される。
weightIdx = ( ( ( xL + offsetX ) << 1 ) + 1 ) * disLut[ displacementX ] +
( ( ( yL + offsetY ) << 1 ) + 1 ) * disLut[ displacementY ]
【0213】
上記方法に基づいて、第1パラメータweightIdxを確定した後、weightIdxに基づいてテンプレート内のサンプル(x,y)の重みを確定する。
【0214】
本出願では、上記ステップB12におけるテンプレート内のサンプルの第1パラメータに基づいて、テンプレート内のサンプルの重みを確定する方式は以下を含むが、それらに限定されない。
【0215】
方式1:テンプレート内のサンプルの第1パラメータに基づいてテンプレート内のサンプルの第2パラメータを確定し、テンプレート内のサンプルの第2パラメータに基づいてテンプレート内のサンプルの重みを確定する。
【0216】
第2パラメータは、重みを確定するためにも用いられる。いくつかの実施形態では、上記第2パラメータは、第1成分での重みインデックスとも呼ばれ、当該第1成分は輝度成分、彩度成分などであってもよい。
【0217】
例えば、以下の公式に基づいてテンプレート内のサンプルの重みを確定する。
weightIdxL = partFlip ? 32 + weightIdx : 32 - weightIdx
wTemplateValue[x][y] = Clip3( 0, 8, ( weightIdxL + 4 ) >> 3 )
【0218】
wTemplateValue[x][y] は、テンプレート内のサンプル(x,y)の重みである。weightIdxLは、テンプレート内のサンプル(x,y)の第2パラメータであり、第1成分(例えば、輝度成分)での重みインデックスとも呼ばれる。wTemplateValue[x][y] は、テンプレート内のサンプル(x,y)の重みである。partFlipは、角度インデックスangleIdxに基づいて確定される中間変数である。例えば、上述のように、partFlip = ( angleIdx >= 13 && angleIdx <= 27 ) ? 0 : 1。即ち、partFlipの値は1又は0である。partFlipの値が0である場合、weightIdxLは32 - weightIdxである。partFlipの値が1である場合、weightIdxLは32 + weightIdxである。ここの32はただの例示に過ぎず、本出願ではそれに限定されない。
【0219】
方式2:テンプレート内のサンプルの第1パラメータ、第1の予め設定された値及び第2の予め設定された値に基づいて、テンプレート内のサンプルの重みを確定する。
【0220】
テンプレート重みの計算複雑度を低減するために、方式2では、テンプレート内のサンプルの重みを第1の予め設定された値又は第2の予め設定された値に限定する。即ち、テンプレート内のサンプルの重みを第1の予め設定された値又は第2の予め設定された値のいずれかにすることで、テンプレート重みの計算複雑度を低減する。
【0221】
本出願は、第1の予め設定された値と第2の予め設定された値の具体的な値を限定しない。
【0222】
選択的に、第1の予め設定された値は1である。
【0223】
選択的に、第2の予め設定された値は0である。
【0224】
一例として、以下の公式に基づいてテンプレート内のサンプルの重みを確定することができる。
wTemplateValue[x][y] = (partFlip ? weightIdx: - weightIdx) > 0 ? 1 : 0
【0225】
wTemplateValue[x][y] はテンプレート内のサンプル(x,y)の重みであり、上記「1 : 0」における1は第1の予め設定された値であり、0は第2の予め設定された値である。
【0226】
上記方式1では、重み導出モードに基づいてテンプレート内の各サンプルの重みが確定される。テンプレート内の各サンプルの重みからなる重み行列がテンプレート重みとされる。
【0227】
方式2:重み導出モードに基づいて現在ブロックの重みとテンプレート重みを確定する。即ち、当該方式2では、現在ブロックとテンプレートとからなるマージ領域を全体とし、重み導出モードに基づいてマージ領域内のサンプルの重みを導出する。それに基づいて、上記ステップBは、以下のステップB21及びB22を含む。
ステップB21:角度インデックス、距離インデックス、テンプレートのサイズ、及び現在ブロックのサイズに基づいて、現在ブロックとテンプレートとからなるマージ領域内のサンプルの重みを確定する。
ステップB22:テンプレートのサイズとマージ領域内のサンプルの重みとに基づいて、テンプレート重みを確定する。
【0228】
当該方式2では、現在ブロックとテンプレートを全体とし、角度インデックス、距離インデックス、テンプレートのサイズ、及び現在ブロックのサイズに基づいて、現在ブロックとテンプレートとからなるマージ領域内のサンプルの重みを確定し、次に、テンプレートのサイズに基づいて、マージ領域内のサンプルの重みにおけるテンプレートに対応する重みを、テンプレート重みとして確定する。例えば、
図18に示されているように、マージ領域内のL型のテンプレート領域に対応する重みをテンプレート重みとして確定する。
【0229】
当該方式2では、重み確定プロセスにおいて、テンプレート重みを確定するだけでなく、予測値の重みも確定する。即ち、マージ領域に対応する重みからテンプレート重みを除去した後、残ったものは予測値の重みである。そのため、予測値の重みを再び確定する必要なく、予測値の重みに基づいて後続の予測プロセスを実行することができる。それによって、予測ステップを削減し、予測効率を向上させることができる。
【0230】
本出願では、上記角度インデックス、距離インデックス、テンプレートのサイズ、及び現在ブロックのサイズに基づいて、現在ブロックとテンプレートとからなるマージ領域内のサンプルの重みを確定する具体的な実施形態が限定されない。
【0231】
いくつかの実施形態では、上記ステップB21におけるマージ領域内のサンプルの重みを確定することは、以下のステップB211~ステップB212を含む。
ステップB211:角度インデックス、距離インデックス、及びマージ領域のサイズに基づいて、マージ領域内のサンプルの第1パラメータを確定する。
ステップB212:マージ領域内のサンプルの第1パラメータに基づいて、マージ領域内のサンプルの重みを確定する。
【0232】
本実施形態では、角度インデックス、距離インデックス、及びマージ領域のサイズに基づいてマージ領域内のサンプルの重みが確定され、マージ領域内の各サンプルの重みは重み行列を形成する。
【0233】
可能な一実施形態では、オフセットと第1パラメータは、以下のように確定されることができる。マージ領域の重みの導出プロセスの入力は、
図18に示されているように、現在ブロックの幅nCbW、現在ブロックの高さnCbH、左側のテンプレートの幅nTmW、上側のテンプレートの高さnTmH、GPMの「分割」角度インデックス変数angleId、GPMの距離インデックス変数distanceIdx、成分インデックス変数cIdxを含む。例示的に、本出願では輝度成分を例とし、cIdxが0であることは輝度成分を示す。
【0234】
変数nW、nH、shift1、offset1、displacementX、displacementY、partFlip、及びshiftHorは以下の方法に基づいて導出される。
nW = ( cIdx = = 0 ) ? nCbW : nCbW * SubWidthC
nH = ( cIdx = = 0 ) ? nCbH : nCbH * SubHeightC
shift1 = Max( 5, 17 - BitDepth )、BitDepthはエンコーディング・デコーディングのビット深度である。
offset1 = 1 << ( shift1 - 1 )
displacementX = angleIdx
displacementY = ( angleIdx + 8 ) % 32
partFlip = ( angleIdx >= 13 && angleIdx <= 27 ) ? 0 : 1
shiftHor = ( angleIdx % 16 = = 8 | | ( angleIdx % 16 != 0 && nH >= nW ) ) ? 0 : 1
【0235】
オフセットoffsetXとoffsetYは以下の方法に基づいて導出される。
- shiftHorの値が0である場合、
offsetX = ( -nW ) >> 1
offsetY = ( ( -nH ) >> 1 ) + ( angleIdx < 16 ? ( distanceIdx * nH ) >> 3 : -( ( distanceIdx * nH ) >> 3 ) )
- そうではない場合(即ち、shiftHorの値が1である場合)
offsetX = ( ( -nW ) >> 1 ) + ( angleIdx < 16 ? ( distanceIdx * nW ) >> 3 : -( ( distanceIdx * nW ) >> 3 )
offsetY = ( - nH ) >> 1
【0236】
マージ領域内のサンプルの重みwValueMatrix[x][y](x = -nTmW..nCbW - 1、y = -nTmH..nCbH - 1)は、以下の方法に基づいて導出される(なお、この例では、現在ブロックの左上隅の座標が(0,0)とされる)。
- 変数xLと yLは以下の方法に基づいて導出される。
xL = ( cIdx = = 0 ) ? x : x * SubWidthC
yL = ( cIdx = = 0 ) ? y : y * SubHeightC
【0237】
disLutは上記表3に従って確定される。
【0238】
第1パラメータweightIdxは以下の方法に基づいて導出される。
weightIdx = ( ( ( xL + offsetX ) << 1 ) + 1 ) * disLut[ displacementX ] +
( ( ( yL + offsetY ) << 1 ) + 1 ) * disLut[ displacementY ]
【0239】
上記方法に基づいて、第1パラメータweightIdxを確定した後、weightIdxに基づいてマージ領域内のサンプル(x,y)の重みを確定する。
【0240】
本出願では、上記ステップB212におけるマージ領域内のサンプルの第1パラメータに基づいて、マージ領域内のサンプルの重みを確定する方式は以下を含むが、それらに限定されない。
【0241】
方式1:マージ領域内のサンプルの第1パラメータに基づいてマージ領域内のサンプルの第2パラメータを確定し、マージ領域内のサンプルの第2パラメータに基づいてマージ領域内のサンプルの重みを確定する。
【0242】
例えば、以下の公式に基づいてマージ領域内のサンプルの重みを確定する。
weightIdx = ( ( ( xL + offsetX ) << 1 ) + 1 ) * disLut[ displacementX ] +
( ( ( yL + offsetY ) << 1 ) + 1 ) * disLut[ displacementY ]
weightIdxL = partFlip ? 32 + weightIdx : 32 - weightIdx
wValueMatrix [x][y] = Clip3( 0, 8, ( weightIdxL + 4 ) >> 3 )
【0243】
wValueMatrix [x][y]は、マージ領域内のサンプル(x,y)の重みである。weightIdxLは、マージ領域内のサンプル(x,y)の第2パラメータである。wTemplateValue[x][y]は、マージ領域内のサンプル(x,y)の重みである。
【0244】
方式2:マージ領域内のサンプルの第1パラメータ、第1の予め設定された値及び第2の予め設定された値に基づいて、マージ領域内のサンプルの重みを確定する。
【0245】
例示的に、マージ領域内のサンプルの重みは、第1の予め設定された値又は第2の予め設定された値である。
【0246】
マージ領域重みの計算複雑度を低減するために、方式2では、マージ領域内のサンプルの重みを第1の予め設定された値又は第2の予め設定された値に限定する。即ち、マージ領域内のサンプルの重みを第1の予め設定された値又は第2の予め設定された値のいずれかにすることで、マージ領域重みの計算複雑度を低減する。
【0247】
本出願は、第1の予め設定された値と第2の予め設定された値の具体的な値を限定しない。
【0248】
選択的に、第1の予め設定された値は1である。
【0249】
選択的に、第2の予め設定された値は0である。
【0250】
一例として、以下の公式に基づいてマージ領域内のサンプルの重みを確定することができる。
wTemplateValue[x][y] = (partFlip ? weightIdx: - weightIdx) > 0 ? 1 : 0
【0251】
wValueMatrix [x][y]はマージ領域内のサンプル(x,y)の重みであり、上記「1 : 0」における1は第1の予め設定された値であり、0は第2の予め設定された値である。
【0252】
上記方式2では、重み導出モードに基づいて、現在ブロックとテンプレートとからなるマージ領域内の各サンプルの重みを確定し、さらに、テンプレートのサイズに基づいて、マージ領域内のテンプレートに対応する重みをテンプレート重みとして確定する。また、当該方式2では、後続の予測値の重みの確定ステップを実行する必要がなく、予測値の重みを確定した。それによって、予測ステップを削減し、予測効率を向上させることができる。
【0253】
以上、重み導出モードに基づいてテンプレート重みを確定するプロセスについて詳細に説明したが、上記重み導出モードは、本出願の実施形態に係る重み導出モードのいずれか1つであってもよく、例えば、現在ブロックの重み導出モード、又はN個の候補予測モードのうちのi番目の候補予測モードなどであってもよい。
【0254】
S103:現在ブロックの重み導出モードに基づいて、現在ブロックの予測値を確定する。
【0255】
本出願において、S103におけるデコーディング側が現在ブロックの重み導出モードに基づいて、現在ブロックの予測値を確定する方式は以下を含むが、それらに限定されない。
【0256】
方式1:デコーディング側は現在ブロックの重み導出モードとK個の初期予測モードに基づいて現在ブロックの予測値を確定する。具体的に、デコーディング側は現在ブロックの重み導出モードに基づいて予測値の重みを確定し、次に、K個の初期予測モードに基づいて現在ブロックを予測して、K個の予測値を取得し、次に、予測値の重みを利用してK個の予測値に対して重み付け平均計算を行って、現在ブロックの予測値を取得する。
【0257】
なお、上記現在ブロックの重み導出モードに基づいて導出される予測値の重みは、現在ブロック内の各サンプルに対応する重み、又は現在ブロックに対応する重み行列として理解され得る。予測値の重みに基づいて現在ブロックの予測値を確定する中に、現在ブロック内の各サンプルに対応するK個の予測値を確定し、各サンプルに対応するK個の予測値及び予測値の重みに基づいて各サンプルに対応する予測値を確定することができる。現在ブロック内の各サンプルに対応する予測値は現在ブロックの予測値を構成する。選択的に、予測値の重みに基づいて現在ブロックの予測値を確定することは、ブロックに基づいて実行されることができ、例えば、現在ブロックのK個の予測値を確定し、現在ブロックの重み行列に基づいて現在ブロックのK個の予測値を重み付けして、現在ブロックの予測値を取得することもできる。
【0258】
方式2:デコーディング側は、現在ブロックの重み導出モードを利用して上記K個の初期予測モードを改善することができる。この場合、上記S103は、以下のステップS103-A及びS103-Bを含む。
S103-A:現在ブロックの重み導出モードに基づいて、K個の調整された予測モードを確定する。
S103-B:K個の調整された予測モードと現在ブロックの重み導出モードとに基づいて、現在ブロックの予測値を確定する。
【0259】
本出願の実施形態では、GPMには(K+1)個の要素、即ち1つの重み導出モードとK個の予測モードが含まれると考えられることができる。1つの重み導出モードとK個の予測モードでともに1つの予測ブロックを生成し、この予測ブロックは現在ブロックに用いられる。そのため、これらは互いに関連している。例えば、現在ブロックは相対的に移動している2つのオブジェクトのエッジを含み、これはインターGPMにとって理想的なシナリオである。理論的には、この「分割」はオブジェクトのエッジで起こるべきであるが、実際に、「分割」の可能性は限られており、すべてのエッジをカバーすることはできない。近似する「分割」を選択する場合がある。近似する「分割」が複数存在する可能性があり、どの「分割」を選択するかは、どの「分割」が2つの予測モードとの組み合わせが最適な結果をもたらすかに依存する。同様に、どの予測モードを選択するかは、どの組み合わせが最適な結果をもたらすかに依存する。それは、当該予測モードを利用する部分でも、ナチュラルなビデオの場合、この部分を現在ブロックと完全にマッチングさせることは難しいためである。最終的に選択したものがコーディング効率が最も高いものである可能性がある。GPMがよく使われるもう一つのシナリオは、オブジェクト内に相対的な動きがある部分が現在ブロックに含まれているシナリオである。例えば、腕の振りなどによるねじれや変形があるところが挙げられ、「分割」はより曖昧になり、最終的にどの組み合わせが最適の結果をもたらすかに依存する可能性がある。もう1つのシナリオはイントラ予測であり、ナチュラルな画像におけるいくつかの部分のテクスチャは複雑で、いくつかの部分にはあるテクスチャから別のテクスチャへの緩やかな変化があり、いくつかの部分が単純に一方向で表現されることができない場合がある。イントラGPMは、より複雑な予測ブロックを提供することができ、イントラコードされたブロックは通常、同じ量子化でインターコードされたブロックと比べて、より大きな残差を有する。どの予測モードを選択するかは、最終的にどの組み合わせが最適な結果をもたらすかに依存する。
【0260】
上記から分かるように、(K+1)個の要素は互いに影響し合うため、重み導出モードを利用して予測モードを確定することができ、予測モードを利用して重み導出モードを確定することもできる。さらに、いくつかのモード情報は改善(refine)されることもできる。改善とは、初期のモード情報に基づいて、より多くの関連情報を収集することにより、計算などより多く方法を利用して、より良いモード情報を得ることを意味する。refineとは一般にデコーディング側の操作である。テンプレートに基づいて、動き情報を改善することもできる。即ち、初期の動き情報に基づいて、デコーディング側で小さな範囲内で検索を行い、検索された動き情報とテンプレートとのマッチングの度合いに応じて、動き情報を最適化する。動き情報とテンプレートとのマッチングの度合いは、動き情報に基づいたテンプレートの予測値とテンプレートの再構成値とのマッチングの度合いであると理解されることができる。
【0261】
GPMでは、まず、予測モードに基づいて重み導出モードを確定し、次に、重み導出モードに基づいて予測モードを改善することができる。又は、まず、重み導出モードに基づいて予測モードを確定し、次に、予測モードに基づいて重み導出モードを改善することができる。もちろん、複雑度が許せば、両者を交互に実施することもできる。テンプレートは、これらの方法を実施するためのリンクとされることができ、さらに、テンプレート重みは、これらの方法を実施するためのリンクとされることができる。即ち、予測モードでのテンプレートの予測値と、重み導出モードに対応するサブテンプレート又はテンプレートの重みに基づいてテンプレート上のコストを計算する。テンプレート上のコストを利用して、予測モード又は重み導出モードを導出し、又は確定する。
【0262】
即ち、本出願の実施形態では、K個の初期予測モードに基づいて、現在ブロックの重み導出モードを確定し、次に、現在ブロックの重み導出モードを利用して、K個の初期予測モードを改善して、K個の調整された予測モードを取得し、さらに、現在ブロックの重み導出モードとK個の調整された予測モードに基づいて、現在ブロックの予測値を確定する。
【0263】
以下、具体的な実施形態により、上記S102におけるK個の初期予測モードに基づいて、現在ブロックの重み導出モードを確定するプロセス、及び上記S103-Aにおける現在ブロックの重み導出モードに基づいて、K個の調整された予測モードを確定するプロセスについて詳細に説明する。
【0264】
いくつかの実施形態において、上記S102は、以下のステップS102-A~S102-Cを含む。
S102-A:N個の候補重み導出モードを確定する。Nは1より大きい正の整数である。
S102-B:N個の候補重み導出モードのうちのi番目の候補重み導出モードに対して、i番目の候補重み導出モードとK個の初期予測モードとに基づいて、i番目の候補重み導出モードに対応する第1コストを確定する。iは1からNまでの正の整数である。
S102-C:N個の候補重み導出モードの各々に対応する第1コストに基づいて、現在ブロックの重み導出モードを確定する。
【0265】
この実施形態では、デコーディング側は、まずN個の候補重み導出モードを確定する。当該N個の候補重み導出モードは、重み導出モードのリストを構成する。デコーディング側は、これらN個の候補重み導出モードの各々に対応する第1コストを計算することにより、第1コストに基づいて、これらN個の候補重み導出モードから現在ブロックの重み導出モードを確定する。
【0266】
例えば、N個の候補重み導出モードのうちの、第1コストが最小である候補重み導出モードを、現在ブロックの重み導出モードとして確定する。
【0267】
別の例として、N個の候補重み導出モードの各々に対応する第1コストに基づいて、N個の候補重み導出モードをソートして、候補重み導出モードのリストを得る。ビットストリームをデコードして、重み導出モードインデックスを得る。候補重み導出モードのリストにおける、重み導出モードインデックスに対応する候補重み導出モードを、現在ブロックの重み導出モードとして確定する。
【0268】
選択的に、上記第1コストは、SAD、SATD又はSEEなどのコストであってもよい。
【0269】
デコーディング側がN個の候補重み導出モードの各々に対応する第1コストを確定するプロセスは同じである。説明を簡単にするために、N個の候補重み導出モードのうちのi番目の候補重み導出モードに対応する第1コストを確定することを例として説明する。
【0270】
上記S102-Bにおけるi番目の候補重み導出モードとK個の初期予測モードとに基づいて、i番目の候補重み導出モードに対応する第1コストを確定する方式は以下を含むが、それらに限定されない。
【0271】
方式1:i番目の候補重み導出モードとK個の初期予測モードとを利用して現在ブロックのテンプレートを予測して、テンプレートの第1予測値を得る。テンプレートの第1予測値とテンプレートの再構成値とに基づいて、i番目の重み導出モードに対応する第1コストを確定する。
【0272】
具体的に、i番目の候補重み導出モードに基づいてテンプレート重みを確定し、K個の初期予測モードを利用してテンプレートを予測して、テンプレートのK個の予測値を得る。テンプレート重みを利用してテンプレートに対応するK個の予測値を重み付けして、テンプレートの予測値を得る。説明の便宜上、当該テンプレートの予測値をテンプレートの第1予測値として表記する。次に、テンプレートの第1予測値とテンプレートの再構成値に基づいて、当該i番目の候補重み導出モードに対応する、テンプレートに関する予測コストを確定し、その予測コストを、i番目の重み導出モードに対応する第1コストとして表記する。
【0273】
なお、i番目の候補重み導出モードに基づいてテンプレート重みを確定する具体的なプロセスについては、上記重み導出モードに基づいてテンプレート重みを確定する具体的な内容を参照することができるため、ここでは詳述しない。
【0274】
上記方法によって、N個の候補重み導出モードの各々に対応する第1コストを確定することができ、次に、N個の候補重み導出モードのうちの、第1コストが最小である候補重み導出モードを、現在ブロックの重み導出モードとして確定する。又は、N個の候補重み導出モードの各々に対応する第1コストに基づいて、N個の候補重み導出モードをソートして、候補重み導出モードのリストを得る。候補重み導出モードのリストにおける、重み導出モードインデックスに対応する候補重み導出モードを、現在ブロックの重み導出モードとして確定する。
【0275】
当該方式1に基づいて、上記S103-Aにおける現在ブロックの重み導出モードに基づいて、K個の調整された予測モードを確定する方式は以下のステップを含む。
【0276】
S103-A1:現在ブロックの重み導出モードに基づいてK個の初期予測モードを改善して、K個の調整された予測モードを得る。
【0277】
S103-A1の実施形態は、以下のいくつかの例を含むが、それらに限定されない。
【0278】
例1:現在ブロックの重み導出モードに関する少なくとも1つの予測モードを確定し、この少なくとも1つの予測モードは、予測角度が現在ブロックの重み導出モードの境界線に平行又はほぼ平行である予測モード、又は、予測角度が現在ブロックの重み導出モードの境界面に対して垂直又はほぼ垂直である予測モードであってもよい。K個の初期予測モードのうちの少なくとも1つの初期予測モードは、現在ブロックの重み導出モードに関する少なくとも1つの予測モードのうちの予測モードで置き換えられ、複数の予測モードの新しい組み合わせが形成される。予測モードの新しい組み合わせの各々にはK個の予測モードが含まれる。予測モードの新しい組み合わせの各々に対して、予測モードの新しい組み合わせに含まれるK個の予測モードと現在ブロックの重み導出モードとを利用してテンプレートを予測して、テンプレートの予測値を取得する。テンプレートの予測値とテンプレートの再構成値とに基づいて、当該予測モードの新しい組み合わせに対応するコストを確定し、それによって、上記形成される複数の予測モードの新しい組み合わせの各々に対応するコストを取得する。同様に、現在ブロックの重み導出モードとK個の初期予測モードを利用して現在ブロックを予測して、K個の初期予測モードに対応するコストを確定する。このように、デコーディング側は、予測モードの新しい組み合わせに対応するコストと、K個の初期予測モードに対応するコストとに基づいて、K個の調整された予測モードを得ることができる。例えば、予測モードの新しい組み合わせ1に対応するコストが最小である場合、当該予測モードの新しい組み合わせ1に含まれるK個の予測モードを、K個の調整された予測モードとして確定する。当該予測モードの新しい組み合わせ1に少なくとも1つの初期予測モードが含まれる可能性があり、初期予測モードが含まれていない可能性もある。
【0279】
例2:以下のステップS103-A11~S103-A14により、K個の初期予測モードを改善して、K個の調整された予測モードを得る。
【0280】
S103-A11:現在ブロックの重み導出モードに基づいて、第1のテンプレート重みを確定する。
【0281】
現在ブロックの重み導出モードに基づいて、第1のテンプレート重みを確定する具体的なプロセスについては、上記テンプレート重みの導出の実施形態の具体的な説明を参照することができ、ここで詳述しない。この場合、上記テンプレート重みの導出の実施形態における重み導出モードは、現在ブロックの重み導出モードであり、対応するテンプレート重みは上記第1のテンプレート重みである。
【0282】
S103-A12:K個の初期予測モードのうちのj番目の初期予測モードに対して、j番目の初期予測モードに対応するM個の第1の候補予測モードを確定する。Mは1より大きい正の整数であり、jは1からKまでの正の整数である。
【0283】
なお、上記S103-A12と上記S103-A11とは、実行される順序がない。即ち、上記S103-A12は、上記S103-A11の後に実行されてもよく、上記S103-A11の前に実行されてもよく、又は、上記S103-A11と同時に実行されてもよく、本出願の実施形態では、それについては限定されない。
【0284】
当該例では、デコーディング側は、現在ブロックの重み導出モードを利用してK個の初期予測モードの各々を改善して、K個の初期予測モードの各々に対応する調整された予測モードを得、即ち、K個の調整された予測モードを得る。
【0285】
K個の初期予測モードの各々に対応する調整された予測モードを確定するプロセスは同じである。説明を容易にするために、本出願の実施形態では、K個の初期予測モードのうちのj番目の初期予測モードに対応する調整された予測モードを確定することを例として説明する。
【0286】
本出願の実施形態において、デコーディング側は、j番目の初期予測モードに対して、まず、当該j番目の初期予測モードに対応するM個の第1の候補予測モードを確定する。
【0287】
デコーディング側がj番目の初期予測モードに対応するM個の第1の候補予測モードを確定する方式は、以下の2つのケースを含む。
【0288】
ケース1:j番目の初期予測モードがイントラ予測モードである場合、j番目の初期予測モードに類似するM個のイントラ予測モードを、M個の第1の候補予測モードとして確定する。例えば、j番目の初期予測モードが角度予測モードである場合、j番目の初期予測モードの角度に類似する(又は相似する)M個の角度予測モードを、j番目の初期予測モードに対応するM個の第1の候補予測モードとして確定する。
【0289】
ケース2:j番目の初期予測モードがインター予測モードである場合、j番目の初期予測モードに基づいて検索を行って、M個の第1動き情報を得る。これらM個の第1動き情報に基づいて、j番目の予測モードに対応するM個の第1の候補予測モードを確定する。例えば、j番目の初期予測モードに対して、その動きベクトルが(xInit,yInit)であり、水平方向でxInit-sRからxInit+sRまで、垂直方向でyInit-sRからyInit+sRまでの矩形領域などの検索範囲が設定され、sRは2、4、8などであってもよい。当該矩形領域内の各動きベクトルと、j番目の初期予測モードの他の情報、例えば、参照画像インデックス及び予測リストフラグなどとが組み合わせられて動き情報が確定され、さらに予測モードが確定される。それによって、j番目の初期予測モードに対応するM個の第1の候補予測モードを得ることができる。
【0290】
いくつかの実施形態において、上記j番目の初期予測モードに基づいて検索を行って、M個の第1動き情報を得る方式の1つは以下のようである。j番目の初期予測モードに対応する動きベクトルに基づいて、予め設定された検索範囲内で検索を行い、M個のオフセットを得る。各オフセットは、第1の方向(例えば、x方向)上のオフセットと第2の方向(例えば、y方向)上のオフセットを含む。さらに、これらM個のオフセットに基づいて、M個の第1動き情報を得る。例えば、M個のオフセットの各々について、オフセットに基づいて、j番目の初期予測モードに対応する動きベクトルをオフセットして、第1動き情報を得る。
【0291】
S103-A13:第1のテンプレート重みに基づいて、M個の第1の候補予測モードの各々によるテンプレートへの予測に対応する第2コストを確定する。
【0292】
上記ケース1又はケース2の方法に従って、j番目の初期予測モードに対応するM個の第1の候補予測モードを確定した後、これらM個の第1の候補予測モードに対応するコストを確定し、次に、コストに基づいて、j番目の初期予測モードに対応する調整された予測モードを確定する。説明の便宜上、第1の候補予測モードに対応するコストを第2コストとして表記する。
【0293】
具体的に、M個の第1の候補予測モードのうちの各々に対して、その第1の候補予測モードを利用して現在ブロックのテンプレートを予測して、予測値を得る。その後、第1のテンプレート重みと当該予測値とに基づいて、当該第1の候補予測モードに対応する、テンプレートに関する第2コストを確定する。
【0294】
以下、M個の第1の候補予測モードのうちの1つの第1の候補予測モードに対応する、テンプレートに関する第2コストを計算することを例として説明する。
【0295】
説明の便宜上、テンプレート内のi番目のサンプルを例として説明する。このi番目のサンプルは、テンプレート内の任意のサンプルであると理解されることができる。即ち、テンプレート内の各サンプルの第2コストを確定するプロセスは同じであり、i番目のサンプルを参照すればいい。具体的に、第1の候補予測モードを利用してテンプレートを予測して、テンプレートの予測値を得る。テンプレートの予測値におけるi番目のサンプルに対応する予測値をi番目の予測値として記し、テンプレートの再構成値におけるi番目のサンプルに対応する再構成値をi番目の再構成値として記す。i番目の予測値と、i番目の再構成値と、第1のテンプレート重みにおけるi番目のサンプルの重みとに基づいて、第1の候補予測モードに対応する、i番目のサンプルの第2コストを確定する。上記方法に基づいて、当該第1の候補予測モードに対応する、テンプレート内の各サンプル又は複数のサンプルの第2コストを確定する。次に、テンプレート内の各サンプル又は複数のサンプルの第2コストに基づいて、第1の候補予測モードに対応する、テンプレートに関する第2コストを確定する。例えば、当該第1の候補予測モードに対応する、テンプレート内のサンプルの第2コストの合計を、当該第1の候補予測モードに対応する、テンプレートに関する第2コストとして確定する。
【0296】
例示的に、SADコストを例として、第1の候補予測モードに対応する、テンプレート内のi番目のサンプル(x,y)の第2コストを、以下の数1に基づいて確定することができる。
【数1】
【0297】
例示的に、第1の候補予測モードに対応する、テンプレートに関する第2コストを、以下の数2に基づいて確定することができる。
【数2】
【0298】
abs(predTemplateSamplesCandA[x][y]-recTemplateSamples[x][y]) は、テンプレート内のサンプル(x,y)の予測値predTemplateSamplesCandAと再構成値recTemplateSamplesとの差の絶対値である。当該差の絶対値をサンプル(x,y)に対応する第2コストと呼ぶ。当該値を、第1のテンプレート重みにおける当該サンプルの重み値wTemplateValue[x][y]にかけることで、tempValueA[x][y]を得る。tempValueA[x][y]は、第1の候補予測モードに対応する、このサンプル(x,y)の第2コストであると考えられることができる。当該第1の候補予測モードに対応する、テンプレートの第2コストの合計costCandAは、テンプレート内の各サンプルの第2コストの和である。
【0299】
なお、上記では、SADに基づいて、第1の候補予測モードに対応する、テンプレートに関する第2コストを確定することを例とする。選択的に、SATD、MSEなどのコスト計算方法に基づいて、第1の候補予測モードに対応する、テンプレートに関する第2コストを確定することもできる。
【0300】
上記方法により、M個の第1の候補予測モードの各々に対応する第2コストを確定することができ、次に、以下のS103-A14を実行する。
【0301】
S103-A14:M個の第1の候補予測モードの各々に対応する第2コストに基づいて、j番目の初期予測モードに対応する調整された予測モードを確定する。
【0302】
例えば、M個の第1の候補予測モードのうちの、第2コストが最小である第1の候補予測モードを、j番目の初期予測モードに対応する調整された予測モードとして確定する。
【0303】
上記実施形態では、K個の初期予測モードのうちのj番目の初期予測モードに対応する調整された予測モードを確定することを例を説明したが、上記説明を参照すれば、K個の初期予測モードの各々に対応する調整された予測モードを確定し、K個の調整された予測モードを得ることができる。
【0304】
当該方式1において、デコーディング側は、まず、K個の初期予測モードに基づいて現在ブロックの重み導出モードを確定し、次に、現在ブロックの重み導出モードに基づいてK個の初期予測モードを改善して、例えば、上記例1又は例2の方式によって改善して、K個の調整された予測モードを取得し、さらに、現在ブロックの重み導出モードとK個の調整された予測モードとを利用して現在ブロックを予測して、現在ブロックの予測値を取得する。
【0305】
本出願の実施形態において、デコーディング側は、上記方式1を利用して、現在ブロックの重み導出モードとK個の調整された予測モードを確定することに加えて、以下の方式2によって、現在ブロックの重み導出モードとK個の調整された予測モードを確定することもできる。
【0306】
方式2:予測モードの改善と現在ブロックの重み導出モードの確定を融合し、同時に行う。この場合、上記S102-Bにおけるi番目の候補重み導出モードとK個の初期予測モードとに基づいて、i番目の候補重み導出モードに対応する第1コストを確定することは、以下のステップS102-B11~S102-B12を含む。
【0307】
S102-B11:i番目の候補重み導出モードに基づいてK個の初期予測モードを改善して、i番目の候補重み導出モードに対応するK個の第1の改善予測モードを得る。
【0308】
この方式2では、N個の候補予測モードのうちのi番目の候補重み導出モードに対して、まず、当該i番目の候補重み導出モードを利用してK個の初期予測モードを改善して、当該i番目の候補重み導出モードに対応するK個の改善予測モードを得る。説明の便宜上、ここで、i番目の候補重み導出モードに対応するK個の改善予測モードを、K個の第1の改善予測モードとして表記する。次に、当該i番目の候補重み導出モードと、当該i番目の候補重み導出モードに対応するK個の第1の改善予測モードとに基づいて、i番目の候補重み導出モードに対応する第1コストを確定する。それによって、より精確な現在ブロックの重み導出モードとK個の調整された予測モードを得ることができる。
【0309】
S102-B11の実施形態は、以下のいくつかの例を含むが、それらに限定されない。
【0310】
例1:i番目の候補重み導出モードに関する少なくとも1つの予測モードを確定し、この少なくとも1つの予測モードは、予測角度がi番目の候補重み導出モードの境界線に平行又はほぼ平行である予測モード、又は、予測角度がi番目の候補重み導出モードの境界面に対して垂直又はほぼ垂直である予測モードであってもよい。K個の初期予測モードのうちの少なくとも1つの初期予測モードは、i番目の候補重み導出モードに関する少なくとも1つの予測モードのうちの予測モードで置き換えられ、複数の予測モードの新しい組み合わせが形成される。予測モードの新しい組み合わせの各々にはK個の予測モードが含まれる。予測モードの新しい組み合わせの各々に対して、予測モードの新しい組み合わせに含まれるK個の予測モードとi番目の候補重み導出モードとを利用してテンプレートを予測して、テンプレートの予測値を取得する。テンプレートの予測値とテンプレートの再構成値とに基づいて、当該予測モードの新しい組み合わせに対応するコストを確定し、それによって、上記形成される複数の予測モードの新しい組み合わせの各々に対応するコストを取得する。同様に、i番目の候補重み導出モードとK個の初期予測モードを利用して現在ブロックを予測して、K個の初期予測モードに対応するコストを確定する。このように、デコーディング側は、予測モードの新しい組み合わせに対応するコストと、K個の初期予測モードに対応するコストとに基づいて、K個の第1の改善予測モードを得ることができる。例えば、予測モードの新しい組み合わせ1に対応するコストが最小である場合、当該予測モードの新しい組み合わせ1に含まれるK個の予測モードを、K個の第1の改善予測モードとして確定する。当該予測モードの新しい組み合わせ1に少なくとも1つの初期予測モードが含まれる可能性があり、初期予測モードが含まれていない可能性もある。
【0311】
例2:以下のステップS102-B11-1~S102-B11-4により、K個の初期予測モードを改善して、i番目の候補重み導出モードに対応するK個の第1の改善予測モードを得る。
【0312】
S102-B11-1:i番目の候補重み導出モードに基づいて第2のテンプレート重みを確定する。
【0313】
i番目の候補重み導出モードに基づいて第2のテンプレート重みを確定する具体的なプロセスは、上記テンプレート重みの導出の実施形態の具体的な説明を参照することができ、ここで詳述しない。この場合、重み導出モードは、i番目の候補重み導出モードであり、対応するテンプレート重みは第2のテンプレート重みである。
【0314】
S102-B11-2:K個の初期予測モードのうちのj番目の初期予測モードに対して、j番目の初期予測モードに対応するM個の第1の候補予測モードを確定する。Mは正の整数であり、jは1からKまでの正の整数である。
【0315】
なお、上記S102-B11-2と上記S102-B11-1とは、実行される順序がない。即ち、上記S102-B11-2は、上記S102-B11-1の後に実行されてもよく、上記S102-B11-1の前に実行されてもよく、又は、上記S102-B11-1と同時に実行されてもよく、本出願の実施形態では、それについては限定されない。
【0316】
当該例では、デコーディング側は、i番目の候補重み導出モードを利用してK個の初期予測モードの各々を改善して、i番目の候補重み導出モードでの、K個の初期予測モードの各々に対応する第1の改善予測モードを得、即ち、K個の第1の改善予測モードを得る。
【0317】
K個の初期予測モードの各々に対応する第1の改善予測モードを確定するプロセスは同じである。説明を容易にするために、本出願の実施形態では、K個の初期予測モードのうちのj番目の初期予測モードに対応する第1の改善予測モードを確定することを例として説明する。
【0318】
本出願の実施形態において、デコーディング側は、j番目の初期予測モードに対して、まず、当該j番目の初期予測モードに対応するM個の第1の候補予測モードを確定する。
【0319】
デコーディング側がj番目の初期予測モードに対応するM個の第1の候補予測モードを確定する方式は、以下の2つのケースを含む。
【0320】
ケース1:j番目の初期予測モードがイントラ予測モードである場合、j番目の初期予測モードに類似するM個のイントラ予測モードを、M個の第1の候補予測モードとして確定する。
【0321】
ケース2:j番目の初期予測モードがインター予測モードである場合、j番目の初期予測モードに基づいて検索を行って、M個の第1動き情報を得る。これらM個の第1動き情報に基づいて、j番目の予測モードに対応するM個の第1の候補予測モードを確定する。
【0322】
いくつかの実施形態において、上記j番目の初期予測モードに基づいて検索を行って、M個の第1動き情報を得る方式の1つは以下のようである。j番目の初期予測モードに対応する動きベクトルに基づいて、予め設定された検索範囲内で検索を行い、M個のオフセットを得る。各オフセットは、第1の方向(例えば、x方向)上のオフセットと第2の方向(例えば、y方向)上のオフセットを含む。さらに、これらM個のオフセットに基づいて、M個の第1動き情報を得る。例えば、M個のオフセットの各々について、オフセットに基づいて、j番目の初期予測モードに対応する動きベクトルをオフセットして、第1動き情報を得る。
【0323】
S102-B11-3:第2のテンプレート重みに基づいて、M個の第1の候補予測モードの各々によるテンプレートへの予測に対応する第3コストを確定する。
【0324】
上記ケース1又はケース2の方法に従って、j番目の初期予測モードに対応するM個の第1の候補予測モードを確定した後、これらM個の第1の候補予測モードに対応するコストを確定し、次に、コストに基づいて、j番目の初期予測モードに対応する第1の改善予測モードを確定する。説明の便宜上、この場合、第1の候補予測モードに対応するコストを第3コストとして表記する。
【0325】
具体的に、M個の第1の候補予測モードのうちの各々に対して、その第1の候補予測モードを利用して現在ブロックのテンプレートを予測して、予測値を得る。その後、第2のテンプレート重みと当該予測値とに基づいて、当該第1の候補予測モードに対応する、テンプレートに関する第3コストを確定する。
【0326】
以下、M個の第1の候補予測モードのうちの1つの第1の候補予測モードに対応する、テンプレートに関する第3コストを計算することを例として説明する。
【0327】
説明の便宜上、テンプレート内のi番目のサンプルを例として説明する。このi番目のサンプルは、テンプレート内の任意のサンプルであると理解されることができる。即ち、テンプレート内の各サンプルの第3コストを確定するプロセスは同じであり、i番目のサンプルを参照すればいい。具体的に、第1の候補予測モードを利用してテンプレートを予測して、テンプレートの予測値を得る。テンプレートの予測値におけるi番目のサンプルに対応する予測値をi番目の予測値として記し、テンプレートの再構成値におけるi番目のサンプルに対応する再構成値をi番目の再構成値として記す。i番目の予測値と、i番目の再構成値と、第2のテンプレート重みにおけるi番目のサンプルの重みとに基づいて、第1の候補予測モードに対応する、i番目のサンプルの第3コストを確定する。上記方法に基づいて、当該第1の候補予測モードに対応する、テンプレート内の各サンプル又は複数のサンプルの第3コストを確定する。次に、テンプレート内の各サンプル又は複数のサンプルの第3コストに基づいて、第1の候補予測モードに対応する、テンプレートに関する第3コストを確定する。例えば、当該第1の候補予測モードに対応する、テンプレート内のサンプルの第3コストの合計を、当該第1の候補予測モードに対応する、テンプレートに関する第3コストとして確定する。
【0328】
例示的に、上記数1と数2に基づいて、第1の候補予測モードに対応する、テンプレートに関する第3コストを確定することができる。具体的に、上記数1におけるwTemplateValue[x][y] を、第2のテンプレート重みにおけるサンプル(x,y)の対応する重み値に置き換える。
【0329】
上記方法により、M個の第1の候補予測モードの各々に対応する第3コストを確定することができ、次に、以下のS102-B11-4を実行する。
【0330】
S102-B11-4:M個の第1の候補予測モードの各々に対応する第3コストに基づいて、j番目の初期予測モードに対応する改善予測モードを確定する。
【0331】
例えば、M個の第1の候補予測モードのうちの、第3コストが最小である第1の候補予測モードを、j番目の初期予測モードに対応する第1の改善予測モードとして確定する。
【0332】
上記実施形態では、K個の初期予測モードのうちのj番目の初期予測モードに対応する第1の改善予測モードを確定することを例を説明したが、上記説明を参照すれば、K個の初期予測モードの各々に対応する第1の改善予測モードを確定し、i番目の候補重み導出モードでのK個の第1の改善予測モードを得ることができる。
【0333】
S102-B12:i番目の候補重み導出モードとK個の第1の改善予測モードとに基づいて、i番目の候補重み導出モードに対応する第1コストを確定する。
【0334】
例示的に、i番目の候補重み導出モードとK個の第1の改善予測モードとを利用して現在ブロックのテンプレートを予測して、テンプレートの第2予測値を得る。テンプレートの第2予測値とテンプレートの再構成値とに基づいて、i番目の重み導出モードに対応する第1コストを確定する。例えば、i番目の候補重み導出モードに基づいて第2のテンプレート重みを確定し、K個の第1の改善予測モードを利用してテンプレートを予測して、K個の予測値を得る。第2のテンプレート重みを利用してK個の予測値を重み付けして、テンプレートの第2予測値を得る。当該テンプレートの第2予測値とテンプレートの再構成値に基づいて、i番目の重み導出モードに対応する第1コストを確定する。
【0335】
上記はi番目の候補重み導出モードに対応する第1コストを確定することを例とする。N個の候補重み導出モードの各々に対して、上記i番目の候補重み導出モードに対応する第1コストを確定する方式を利用して、N個の候補重み導出モードの各々に対応する第1コストを確定することができ、次に、N個の候補重み導出モードの各々に対応する第1コストに基づいて、現在ブロックの重み導出モードを確定する。
【0336】
例えば、N個の候補重み導出モードのうちの、第1コストが最小である候補重み導出モードを、現在ブロックの重み導出モードとして確定する。
【0337】
別の例として、N個の候補重み導出モードの各々に対応する第1コストに基づいて、N個の候補重み導出モードをソートして、候補重み導出モードのリストを得る。ビットストリームをデコードして、重み導出モードインデックスを得る。候補重み導出モードのリストにおける、重み導出モードインデックスに対応する候補重み導出モードを、現在ブロックの重み導出モードとして確定する。
【0338】
この方式2では、N個の候補重み導出モードの各々に対応するK個の第1の改善予測モードを確定した。それに基づいて、上記S103-Aにおける現在ブロックの重み導出モードに基づいて、K個の調整された予測モードを確定することは、以下のステップを含む。
【0339】
S103-A2:現在ブロックの重み導出モードに対応するK個の第1の改善予測モードを、K個の調整された予測モードとして確定する。
【0340】
この方式2では、予測モードの改善と現在ブロックの重み導出モードの確定が融合されており、即ち、N個の候補重み導出モードに対応する第1コストを確定する中に、各候補重み導出モードに対応するK個の第1の改善予測モードを確定した。そのため、第1コストに基づいて現在ブロックの重み導出モードを確定した後、その現在ブロックの重み導出モードに対応するK個の第1の改善予測モードをK個の調整された予測モードとして確定することができる。次に、現在ブロックの重み導出モードとこれらのK個の調整された予測モードを利用して現在ブロックを予測して、現在ブロックの予測値を得ることができる。
【0341】
この方式2では、N個の候補重み導出モードのうちの各々に対して、各候補重み導出モードに対応するK個の第1の改善予測モードを確定する。次に、各候補重み導出モードとそれに対応するK個の第1の改善予測モードに基づいてテンプレートを予測し、第1コストを確定する。当該第1コストに基づいて、N個の候補重み導出モードから現在ブロックの重み導出モードをより精確的に確定することができる。
【0342】
本出願の実施形態において、デコーディング側は、上記方式1又は方式2を利用して、現在ブロックの重み導出モードとK個の調整された予測モードを確定することに加えて、以下の方式3によって、現在ブロックの重み導出モードとK個の調整された予測モードを確定することもできる。
【0343】
方式3:計算複雑度を低減するために、初期予測モードを改善する中に、各候補重み導出モードを利用して初期予測モードを改善するのではなく、簡単なP個のサブテンプレートを利用して、例えば、現在ブロックの全テンプレート、左側テンプレート、上側テンプレートを利用して、初期予測モードを改善する。それによって、初期予測モードの改善の計算複雑度を低減する。この場合、S102-Bにおけるi番目の候補重み導出モードとK個の初期予測モードとに基づいて、i番目の候補重み導出モードに対応する第1コストを確定することは、以下のステップS102-B21~S102-B23を含む。
【0344】
S102-B21:K個の初期予測モードのうちのj番目の初期予測モードに対して、j番目の初期予測モードに対応する、P個のサブテンプレートに関する第2の改善予測モードを確定する。Pは正の整数であり、jは1からKまでの正の整数である。
【0345】
この方式3において、デコーディング側は、P個のサブテンプレートを利用してK個の初期予測モードを改善して、K個の初期予測モードの各々に対応する、P個のサブテンプレートに関する第2の改善予測モードを得る。N個の候補重み導出モードのうちの各々に対して、候補重み導出モードとP個のサブテンプレートとの対応関係にに基づいて、K個の初期予測モードの各々に対応する、P個のサブテンプレートに関する第2の改善予測モードから、候補重み導出モードに対応するK個の第2の改善予測モードを得る。次に、候補重み導出モードとそれに対応するK個の第2の改善予測モードに基づいて、現在ブロックのテンプレートを予測して、候補重み導出モードに対応する第1コストを確定する。最後に、N個の候補重み導出モードの各々に対応する第1コストに基づいて、現在ブロックの重み導出モードを確定する。方式3では、候補予測モードを単独に利用してK個の初期予測モードを改善するたことがなくなり、初期予測モードの改善の複雑度が低減される。
【0346】
例示的に、P個のサブテンプレートは、現在ブロックの左側テンプレートTM_L、上側テンプレートTM_A、及び全テンプレートTM_ALのうちの少なくとも1つを含む。全テンプレートTM_ALは、左側テンプレートTM_Lと上側テンプレートTM_Aを含む。
【0347】
本出願の実施形態において、デコーディング側がK個の初期予測モードの各々に対応する、P個のサブテンプレートに関する第2の改善予測モードを確定するプロセスは同じである。説明を簡単にするために、本出願の実施形態では、K個の初期予測モードのうちのj番目の初期予測モードに対応する、P個のサブテンプレートに関する第2の改善予測モードを確定することを例として説明する。
【0348】
一例では、P個のサブテンプレートが、現在ブロックの左側テンプレートTM_L、上側テンプレートTM_A、及び全テンプレートTM_ALを含むと仮定すると、j番目の初期予測モードに対応する、P個のサブテンプレートに関する第2の改善予測モードを確定することは、j番目の初期予測モードに対応する、左側テンプレートTM_Lに関する第2の改善予測モードを確定することと、j番目の初期予測モードに対応する、上側テンプレートTM_Aに関する第2の改善予測モードを確定することと、j番目の初期予測モードに対応する、全テンプレートTM_ALに関する第2の改善予測モードを確定することとを含む。即ち、当該ステップにおいて、デコーディング側は、j番目の初期予測モードに対応する、P個のサブテンプレートの各々に関する第2の改善予測モードを確定する。
【0349】
本出願の実施形態は、j番目の初期予測モードに対応する、P個のサブテンプレートに関する第2の改善予測モードを確定する具体的な形式を限定しない。
【0350】
いくつかの実施形態において、S102-B21は、以下のステップS102-B21-1~S102-B21-3を含む。
【0351】
S102-B21-1:j番目の初期予測モードに対応するM個の第1の候補予測モードを確定する。Mは1より大きい正の整数である。
【0352】
デコーディング側がj番目の初期予測モードに対応するM個の第1の候補予測モードを確定する方式は、以下の2つのケースを含む。
【0353】
ケース1:j番目の初期予測モードがイントラ予測モードである場合、j番目の初期予測モードに類似するM個のイントラ予測モードを、M個の第1の候補予測モードとして確定する。
【0354】
ケース2:j番目の初期予測モードがインター予測モードである場合、j番目の初期予測モードに基づいて検索を行って、M個の第1動き情報を得る。これらM個の第1動き情報に基づいて、j番目の予測モードに対応するM個の第1の候補予測モードを確定する。
【0355】
いくつかの実施形態では、j番目の初期予測モードに基づいて検索を行って、M個の第1動き情報を得ることは、i番目の初期予測モードに基づいて検索を行って、M個のオフセットを得ることと、M個のオフセットに基づいて、M個の第1動き情報を得ることと、を含む。
【0356】
S102-B21-2:P個のサブテンプレートのうちのp番目のサブテンプレートに対して、M個の第1の候補予測モードの各々によるp番目のサブテンプレートへの予測に対応する第4コストを確定する。pは1からPまでの正の整数である。
【0357】
デコーディング側は、上記ケース1又はケース2の方法に従って、j番目の初期予測モードに対応するM個の第1の候補予測モードを確定した後、これらM個の第1の候補予測モードに対応する、P個のサブテンプレートの各々に関するコストを確定し、次に、コストに基づいて、j番目の初期予測モードに対応する、P個のサブテンプレートの各々に関する第2の改善予測モードを確定する。説明の便宜上、この場合、第1の候補予測モードに対応するコストを第4コストとして表記する。
【0358】
具体的に、P個のサブテンプレートのうちのp番目のサブテンプレートを例として、M個の第1の候補予測モードのうちの任意の第1の候補予測モードに対して、その第1の候補予測モードを利用してp番目のサブテンプレートを予測して、p番目のサブテンプレートの予測値を得る。その後、p番目のサブテンプレートの予測値とp番目のサブテンプレートの再構成値とに基づいて、第1の候補予測モードに対応する、p番目のサブテンプレートに関する第4コストを確定する。当該方法を参照すると、M個の第1の候補予測モードの各々に対応する、P個のサブテンプレートの各々に関する第4コストを確定することができる。
【0359】
例として、j番目の初期予測モードは、第1の候補予測モード1、第1の候補予測モード2、及び第1の候補予測モード3と記される3つの第1の候補予測モードに対応すると仮定し、P個のサブテンプレートは、左側テンプレートTM_L、上側テンプレートTM_A、及び全テンプレートTM_ALを含むと仮定する。まず、左側テンプレートTM_Lに対して、第1の候補予測モード1、第1の候補予測モード2、及び第1の候補予測モード3のそれぞれを利用して、左側テンプレートTM_Lを予測して、予測値1、予測値2、及び予測値3をそれぞれ得る。次に、予測値1と左側テンプレートTM_Lの再構成値に基づいて、第1の候補予測モード1に対応する、左側テンプレートTM_Lに関する第4コストを確定する。予測値2と左側テンプレートTM_Lの再構成値に基づいて、第1の候補予測モード2に対応する、左側テンプレートTM_Lに関する第4コストを確定する。予測値3と左側テンプレートTM_Lの再構成値に基づいて、第1の候補予測モード3に対応する、左側テンプレートTM_Lに関する第4コストを確定する。
【0360】
同様に、上側テンプレートTM_Aに対して、第1の候補予測モード1、第1の候補予測モード2、及び第1の候補予測モード3のそれぞれを利用して、上側テンプレートTM_Aを予測して、予測値4、予測値5、及び予測値6をそれぞれ得る。次に、予測値4と上側テンプレートTM_Aの再構成値に基づいて、第1の候補予測モード1に対応する、上側テンプレートTM_Aに関する第4コストを確定する。予測値5と上側テンプレートTM_Aの再構成値に基づいて、第1の候補予測モード2に対応する、上側テンプレートTM_Aに関する第4コストを確定する。予測値6と上側テンプレートTM_Aの再構成値に基づいて、第1の候補予測モード3に対応する、上側テンプレートTM_Aに関する第4コストを確定する。
【0361】
同様に、全テンプレートTM_ALに対して、第1の候補予測モード1、第1の候補予測モード2、及び第1の候補予測モード3のそれぞれを利用して、全テンプレートTM_ALを予測して、予測値7、予測値8、及び予測値9をそれぞれ得る。次に、予測値7と全テンプレートTM_ALの再構成値に基づいて、第1の候補予測モード1に対応する、全テンプレートTM_ALに関する第4コストを確定する。予測値8と全テンプレートTM_ALの再構成値に基づいて、第1の候補予測モード2に対応する、全テンプレートTM_ALに関する第4コストを確定する。予測値9と全テンプレートTM_ALの再構成値に基づいて、第1の候補予測モード3に対応する、全テンプレートTM_ALに関する第4コストを確定する。
【0362】
上記方法によって、j番目の初期予測モードに対応するM個の第1の候補予測モードの各々に対応する、P個のサブテンプレートの各々に関する第4コストを確定する。次に、S102-B21-3を実行する。
【0363】
S102-B21-3:M個の第1の候補予測モードの各々に対応する、p番目のサブテンプレートに関する第4コストに基づいて、j番目の初期予測モードに対応する、p番目のサブテンプレートに関する第2の改善予測モードを確定する。
【0364】
例えば、M個の第1の候補予測モードのうちの、p番目のサブテンプレートに関する第4コストが最小である第1の候補予測モードを、j番目の初期予測モードに対応する、p番目のサブテンプレートに関する第2の改善予測モードとして確定する。
【0365】
引き続き上記の例を参照して、j番目の初期予測モードは、第1の候補予測モード1、第1の候補予測モード2、及び第1の候補予測モード3と記される3つの第1の候補予測モードに対応すると仮定し、P個のサブテンプレートは、左側テンプレートTM_L、上側テンプレートTM_A、及び全テンプレートTM_ALを含むと仮定する。左側テンプレートTM_Lに対して、第1の候補予測モード1に対応する、上側テンプレートTM_Aに関する第4コストが、第1の候補予測モード2に対応する、上側テンプレートTM_Aに関する第4コストより小さく、且つ、第1の候補予測モード2に対応する、上側テンプレートTM_Aに関する第4コストが、第1の候補予測モード3に対応する、上側テンプレートTM_Aに関する第4コストより小さいと仮定すると、第1の候補予測モード1を、j番目の初期予測モードに対応する、左側テンプレートTM_Lに関する第2の改善予測モードとして確定することができる。
【0366】
同様に、上側テンプレートTM_Aに対して、第1の候補予測モード2に対応する、上側テンプレートTM_Aに関する第4コストが、第1の候補予測モード1に対応する、上側テンプレートTM_Aに関する第4コストより小さく、且つ、第1の候補予測モード1に対応する、上側テンプレートTM_Aに関する第4コストが、第1の候補予測モード3に対応する、上側テンプレートTM_Aに関する第4コストより小さいと仮定すると、第1の候補予測モード2を、j番目の初期予測モードに対応する、上側テンプレートTM_Aに関する第2の改善予測モードとして確定することができる。
【0367】
同様に、全テンプレートTM_ALに対して、第1の候補予測モード2に対応する、全テンプレートTM_ALに関する第4コストが、第1の候補予測モード1に対応する、全テンプレートTM_ALに関する第4コストより小さく、且つ、第1の候補予測モード1に対応する、全テンプレートTM_ALに関する第4コストが、第1の候補予測モード3に対応する、全テンプレートTM_ALに関する第4コストより小さいと仮定すると、第1の候補予測モード2を、j番目の初期予測モードに対応する、全テンプレートTM_ALに関する第2の改善予測モードとして確定することができる。
【0368】
上記方法によって、K個の初期予測モードの各々に対応する、P個のサブテンプレートの各々に関する第2の改善予測モードを確定することができる。
【0369】
例示的に、K=2であると仮定し、即ち、2つの初期予測モードをそれぞれ第1予測モード及び第2予測モードと記し、P個のサブテンプレートが左側テンプレートTM_L、上側テンプレートTM_A、及び全テンプレートTM_ALであると仮定する。上記方法に従って、第1予測モード及び第2予測モードの各々に対応する、左側テンプレートTM_L、上側テンプレートTM_A、及び全テンプレートの各々に関する第2の改善予測モードを確定し、表6に示す。
【0370】
【0371】
S102-B22:i番目の候補重み導出モードに基づいて、K個の初期予測モードの各々に対応する、P個のサブテンプレートに関する第2の改善予測モードから、i番目の候補重み導出モードに対応するK個の第2の改善予測モードを確定する。
【0372】
具体的に、N個の候補重み導出モードのうちのi番目の候補重み導出モードに対して、当該i番目の候補重み導出モードに対応するサブテンプレートに基づいて、K個の初期予測モードの各々に対応する、P個のサブテンプレートに関する第2の改善予測モードから、当該i番目の候補重み導出モードに対応するK個の第2の改善予測モードを確定する。
【0373】
例えば、K=2であることを例として、i番目の候補重み導出モードに対応するサブテンプレートは、上側テンプレートTM_Aと全テンプレートTM_ALである。上記表6を参照すると、第1予測モードに対応する、上側テンプレートTM_Aに関する第2の改善予測モードが第2の改善予測モード12であり、第2予測モードに対応する、全テンプレートTM_ALに関する第2の改善予測モードが第2の改善予測モード23であると確定できる。それによって、i番目の候補重み導出モードに対応する2つの第2の改善予測モードがそれぞれ、第2の改善予測モード12及び第2の改善予測モード23であると確定できる。
【0374】
一つの可能な実施形態において、デコーディング側は、i番目の候補重み導出モードに対応する分割角度を確定し、分割角度と予測モードに対応するテンプレートとの対応関係(上記表5を具体的に参照する)に基づいて、K個の初期予測モードの各々に対応する、P個のサブテンプレートに関する第2の改善予測モードから、i番目の候補重み導出モードに対応するK個の第2の改善予測モードを確定する。
【0375】
例示的に、K=2であることを例として、上記表2に基づいて、i番目の候補重み導出モードに対応する角度インデックスを確定する。例えば、i番目の候補重み導出モードが27である場合、対応する角度インデックスは12である。上記表5に示された分割角度と予測モードに対応するテンプレートとの対応関係において、その角度インデックスでの、第1予測モードに対応するテンプレートと第2予測モードに対応するテンプレートとをクエリして、第1予測モードに対応するテンプレートと第2予測モードに対応するテンプレートとに基づいて、当該i番目の候補重み導出モードに対応する2つの第2の改善予測モードを上記表6から確定する。例えば、当該角度インデックスでの、第1予測モードに対応するテンプレートが上側テンプレートTM_Aであり、第2予測モードに対応するテンプレートが全テンプレートTM_ALであることを表5からクエリした。そして、上記表6に基づいて、第1予測モードに対応する第2の改善予測モードにおける上側テンプレートTM_Aに対応する第2の改善予測モード12と、第2予測モードに対応する第2の改善予測モードにおける全テンプレートTM_ALに対応する第2の改善予測モード23とを、i番目の候補重み導出モードに対応する2つの第2の改善予測モードとして確定する。
【0376】
上記方法により、N個の候補重み導出モードのうちのi番目の候補重み導出モードに対応するK個の第2の改善予測モードを確定し、次に、以下のステップS102-B23を実行する。
【0377】
S102-B23:i番目の候補重み導出モードとi番目の候補重み導出モードに対応するK個の第2の改善予測モードとに基づいて、i番目の候補重み導出モードに対応する第1コストを確定する。
【0378】
具体的に、i番目の候補重み導出モードとK個の第2の改善予測モードとを利用して現在ブロックのテンプレートを予測して、テンプレートの第3予測値を得、テンプレートの第3予測値とテンプレートの再構成値とに基づいて、i番目の重み導出モードに対応する第1コストを確定する。例えば、i番目の候補重み導出モードに基づいてテンプレート重みを確定し、K個の第2の改善予測モードをそれぞれ利用して現在ブロックのテンプレートを予測して、K個の予測値を得る。確定されたテンプレート重みを利用して当該K個の予測値を重み付けして、i番目の候補重み導出モードに対応するテンプレートの予測値を取得する。さらに、テンプレートの予測値とテンプレートの再構成値に基づいて、当該i番目の候補重み導出モードに対応する第1コストを確定する。
【0379】
上記は、i番目の候補重み導出モードに対応する第1コストの確定を例とした。N個の候補重み導出モードの各々に対して、上記i番目の重み導出モードに対応する第1コストを確定する方式を利用して、N個の候補重み導出モードの各々に対応する第1コストを確定することができ、次に、N個の候補重み導出モードの各々に対応する第1コストに基づいて、現在ブロックの重み導出モードを確定する。
【0380】
例えば、N個の候補重み導出モードのうちの、第1コストが最小である候補重み導出モードを、現在ブロックの重み導出モードとして確定する。
【0381】
別の例として、N個の候補重み導出モードの各々に対応する第1コストに基づいて、N個の候補重み導出モードをソートして、候補重み導出モードのリストを得る。ビットストリームをデコードして、重み導出モードインデックスを得る。候補重み導出モードのリストにおける、重み導出モードインデックスに対応する候補重み導出モードを、現在ブロックの重み導出モードとして確定する。
【0382】
この方式3では、P個のサブテンプレートを利用してK個の初期予測モードを改善して、K個の初期予測モードの各々に対応する、P個のサブテンプレートの各々に関する第2の改善予測モードを得る。このように、後続でN個の候補重み導出モードの各々に対応する第1コストを確定する際に、異なる候補重み導出モードに応じてK個の初期予測モードをそれぞれ改善するのではなく、確定されたK個の初期予測モードの各々に対応する、P個のサブテンプレートの各々に関する第2の改善予測モードから、各候補重み導出モードに対応するK個の第2の改善予測モードを一括でクエリする。それによって、初期予測モードを改善する複雑度を軽減し、各候補重み導出モードに対応する第1コストを計算する速度を速め、N個の候補重み導出モードから現在ブロックの重み導出モードを迅速に確定することができる。
【0383】
当該方式3では、P個のサブテンプレートに基づいて、N個の候補重み導出モードの各々に対応するK個の第2の改善予測モードを確定した。それに基づいて、上記S103-Aにおける現在ブロックの重み導出モードに基づいて、K個の調整された予測モードを確定する方式は以下を含むが、それらに限定されない。
【0384】
方式1:現在ブロックの重み導出モードに対応するK個の第2の改善予測モードを、K個の調整された予測モードとして確定する。
【0385】
上記方式3では、N個の候補重み導出モードの各々に対応する第1コストを確定する中に、各候補重み導出モードに対応するK個の第2の改善予測モードを確定した。この場合、第1コストに基づいて現在ブロックの重み導出モードを確定した後、当該現在ブロックの重み導出モードに対応するK個の第2の改善予測モードをK個の調整された予測モードとして直接に確定することができる。
【0386】
方式2:K個の調整された予測モードの精度をさらに向上させるために、現在ブロックの重み導出モードに対応するK個の第2の改善予測モードを改善して、K個の調整された予測モードを得る。この場合、上記S103-Aは、以下のステップを含む。
【0387】
S103-A3:現在ブロックの重み導出モードに基づいてK個の第2の改善予測モードを改善して、K個の調整された予測モードを得る。
【0388】
S103-A3の実施形態は、以下のいくつかの例を含むが、それらに限定されない。
【0389】
例1:現在ブロックの重み導出モードに関する少なくとも1つの予測モードを確定し、この少なくとも1つの予測モードは、予測角度が現在ブロックの重み導出モードの境界線に平行又はほぼ平行である予測モード、又は、予測角度が現在ブロックの重み導出モードの境界面に対して垂直又はほぼ垂直である予測モードであってもよい。K個の第2の改善予測モードのうちの少なくとも1つの第2の改善予測モードは、現在ブロックの重み導出モードに関する少なくとも1つの予測モードのうちの予測モードで置き換えられ、複数の予測モードの新しい組み合わせが形成される。予測モードの新しい組み合わせの各々にはK個の予測モードが含まれる。予測モードの新しい組み合わせの各々に対して、予測モードの新しい組み合わせに含まれるK個の予測モードと現在ブロックの重み導出モードとを利用してテンプレートを予測して、テンプレートの予測値を取得する。テンプレートの予測値とテンプレートの再構成値とに基づいて、当該予測モードの新しい組み合わせに対応するコストを確定し、それによって、上記形成される複数の予測モードの新しい組み合わせの各々に対応するコストを取得する。同様に、現在ブロックの重み導出モードとK個の第2の改善予測モードを利用して現在ブロックを予測して、K個の第2の改善予測モードに対応するコストを確定する。このように、デコーディング側は、予測モードの新しい組み合わせに対応するコストと、K個の第2の改善予測モードに対応するコストとに基づいて、K個の調整された予測モードを得ることができる。例えば、予測モードの新しい組み合わせ1に対応するコストが最小である場合、当該予測モードの新しい組み合わせ1に含まれるK個の予測モードを、K個の調整された予測モードとして確定する。当該予測モードの新しい組み合わせ1に少なくとも1つの初期予測モードが含まれる可能性があり、初期予測モードが含まれていない可能性もある。
【0390】
例2:以下のステップS103-A31~S103-A34により、K個の第2予測モードを改善して、K個の調整された予測モードを得る。
【0391】
S103-A31:現在ブロックの重み導出モードに基づいて、第1のテンプレート重みを確定する。
【0392】
S103-A32:K個の第2の改善予測モードのうちのk番目の第2の改善予測モードに対して、k番目の第2の改善予測モードに対応するP個の第2の候補予測モードを確定する。Pは1より大きい正の整数であり、kは1からKまでの正の整数である。
【0393】
なお、上記S103-A32と上記S103-A31とは、実行される順序がない。即ち、上記S103-A32は、上記S103-A31の後に実行されてもよく、上記S103-A31の前に実行されてもよく、又は、上記S103-A31と同時に実行されてもよく、本出願の実施形態では、それについては限定されない。
【0394】
当該例では、デコーディング側は、現在ブロックの重み導出モードを利用してK個の第2の改善予測モードの各々を改善して、K個の第2の改善予測モードの各々に対応する調整された予測モードを得、即ち、K個の調整された予測モードを得る。
【0395】
K個の第2の改善予測モードの各々に対応する調整された予測モードを確定するプロセスは同じである。説明を容易にするために、本出願の実施形態では、K個の第2の改善予測モードのうちのk番目の第2の改善予測モードに対応する調整された予測モードを確定することを例として説明する。
【0396】
本出願の実施形態において、デコーディング側は、k番目の第2の改善予測モードに対して、まず、当該k番目の第2の改善予測モードに対応するP個の第2の候補予測モードを確定する。
【0397】
デコーディング側は、k番目の第2の改善予測モードに対応するP個の第2の候補予測モードを確定する方式は、以下の2つのケースを含む。
【0398】
ケース1:k番目の第2の改善予測モードがイントラ予測モードである場合、k番目の第2の改善予測モードに類似するP個のイントラ予測モードを、P個の第2の候補予測モードとして確定する。例えば、k番目の第2の改善予測モードが角度予測モードである場合、k番目の第2の改善予測モードの角度に類似する(又は相似する)P個の角度予測モードを、k番目の第2の改善予測モードに対応するP個の第2の候補予測モードとして確定する。
【0399】
ケース2:k番目の第2の改善予測モードがインター予測モードである場合、k番目の第2の改善予測モードに基づいて検索を行って、P個の第2動き情報を得る。これらP個の第2動き情報に基づいて、k番目の第2の改善予測モードに対応するP個の第2の候補予測モードを得る。例えば、k番目の第2の改善予測モードに対して、その動きベクトルが(xInit,yInit)であり、水平方向でxInit-sRからxInit+sRまで、垂直方向でyInit-sRからyInit+sRまでの矩形領域などの検索範囲が設定され、sRは2、4、8などであってもよい。当該矩形領域内の各動きベクトルと、k番目の第2の改善予測モードの他の情報、例えば、参照画像インデックス及び予測リストフラグなどとが組み合わせられて動き情報が確定され、さらに予測モードが確定される。それによって、k番目の第2の改善予測モードに対応するP個の第2の候補予測モードを得ることができる。
【0400】
いくつかの実施形態において、上記k番目の第2の改善予測モードに基づいて検索を行って、P個の第2動き情報を得る方式の1つは以下のようである。k番目の第2の改善予測モードに対応する動きベクトルに基づいて、予め設定された検索範囲内で検索を行い、P個のオフセットを得る。各オフセットは、第1の方向(例えば、x方向)上のオフセットと第2の方向(例えば、y方向)上のオフセットを含む。さらに、これらM個のオフセットに基づいて、P個の第2動き情報を得る。例えば、P個のオフセットの各々について、オフセットに基づいて、k番目の第2の改善予測モードに対応する動きベクトルをオフセットして、第2動き情報を得る。
【0401】
S103-A33:第1のテンプレート重みに基づいて、P個の第2の候補予測モードの各々によるテンプレートへの予測に対応する第5コストを確定する。
【0402】
上記ケース1又はケース2の方法に従って、k番目の第2の改善予測モードに対応するP個の第2の候補予測モードを確定した後、これらP個の第2の候補予測モードに対応するコストを確定し、次に、コストに基づいて、k番目の第2の改善予測モードに対応する調整された予測モードを確定する。説明の便宜上、第2の候補予測モードに対応するコストを第5コストとして表記する。
【0403】
具体的に、P個の第2の候補予測モードのうちの各々に対して、その第2の候補予測モードを利用して現在ブロックのテンプレートを予測して、予測値を得る。その後、第1のテンプレート重みと当該予測値とに基づいて、当該第1の候補予測モードに対応する、テンプレートに関する第5コストを確定する。テンプレート内の1つのサンプルを例として、当該第2の候補予測モードを利用して当該サンプルを予測して、当該サンプルの予測値を得る。第1のテンプレート重みから当該サンプルに対応するテンプレート重みを確定し、当該サンプルの予測値とテンプレート重みとの積を、当該第2の候補予測モードでの当該サンプルの予測値として確定する。この方式を参照すると、当該第2の候補予測モードでのテンプレート内のの各サンプルの予測値を得ることができる。これらの予測値は当該第2の候補予測モードに対応するテンプレートの予測値を形成する。テンプレートの予測値とテンプレートの再構成値とに基づいて、当該第2の候補予測モードに対応する第5コストを確定する。
【0404】
上記方法により、P個の第2の候補予測モードの各々に対応する第5コストを確定し、次に、以下のステップS103-A14を実行する。
【0405】
S103-A34:P個の第2の候補予測モードの各々に対応する第5コストに基づいて、k番目の第2の改善予測モードに対応する調整された予測モードを確定する。
【0406】
例えば、P個の第2の候補予測モードのうちの、第5コストが最小である第2の候補予測モードを、k番目の第2の改善予測モードに対応する調整された予測モードとして確定する。
【0407】
上記実施形態では、K個の第2の改善予測モードのうちのk番目の第2の改善予測モードに対応する調整された予測モードを確定することを例を説明したが、上記説明を参照すれば、K個の第2の改善予測モードの各々に対応する調整された予測モードを確定し、K個の調整された予測モードを得ることができる。
【0408】
この方式2において、デコーディング側は、まず、P個のサブテンプレートを利用してK個の初期予測モードを改善して、現在ブロックの重み導出モードに対応するK個の第2の改善予測モードを得、次に、現在ブロックの重み導出モードを利用して、現在ブロックの重み導出モードに対応するK個の第2の改善予測モードを改善して、精確なK個の調整された予測モードを得る。それによって、これらK個の調整された予測モードと現在ブロックの重み導出モードを利用して現在ブロックを予測する場合、予測精度をさらに向上させることができる。
【0409】
本出願の実施形態では、上記方法によって、現在ブロックの重み導出モードとK個の調整された予測モードを確定することができ、その後、現在ブロックの重み導出モードとK個の調整された予測モードを利用して、現在ブロックを予測して、現在ブロックの予測値を得る。
【0410】
本出願において、現在ブロックの重み導出モードとK個の調整された予測モードに基づいて、現在ブロックの予測値を確定する方式は、以下のいくつかの方式を含むが、それらに限定されない。
【0411】
方式1:上記現在ブロックの重み導出モードに基づいて第1のテンプレート重みを確定する中に、現在ブロックの重み導出モーに基づいて第1のテンプレート重みを確定したが、現在ブロック内のサンプルに対応する予測値の重みを確定していない。この場合、上記S103-Bは以下のステップを含む。
S103-B11:K個の調整された予測モードに基づいて、K個の予測値を確定する。
S103-B12:現在ブロックの重み導出モードに基づいて、予測値の重みを確定する。
S103-B13:K個の予測値及び予測値の重みに基づいて、現在ブロックの予測値を確定する。
【0412】
なお、本出願では、現在ブロックの重み導出モードは、現在ブロックに用いられる予測値の重みを確定するために用いられる。具体的に、現在ブロックの重み導出モードは、予測値の重みを導出するモードであることができる。所定の長さ及び幅を有するブロックに対して、重み導出モードごとに1つの予測値の重み行列を導出することができる。同じサイズを有するブロックに対して、異なる重み導出モードによって導出される予測値の重み行列が異なる。
【0413】
理解できるように、本出願の実施形態において、デコーディング側はK個の調整された予測モードと予測値の重みに基づいて現在ブロックの予測値を確定する中に、まず、K個の調整された予測モードに基づいてK個の予測値を確定し、次に、予測値の重みを利用してK個の予測値に対して重み付け平均計算を行って、最終的に現在ブロックの予測値を得ることができる。
【0414】
この方式1では、現在ブロックの重みの導出モードに基づいて第1のテンプレート重みを確定することと、現在ブロックの重みの導出モードに基づいて予測値の重みを確定することとは、互いに干渉しない2つの独立したプロセスである。
【0415】
いくつかの実施形態では、本出願は、以下の方式2を利用して現在ブロックの予測値を確定することもできる。
【0416】
方式2:上記第1のテンプレート重みを確定する中に、現在ブロックの重み導出モードに基づいて、テンプレート領域と現在ブロックとからなるマージ領域内のサンプルの重みを確定する。この場合、上記S103-Bは以下のステップを含む。
S103-B21:K個の調整された予測モードに基づいて、K個の予測値を確定する。
S103-B22:マージ領域内のサンプルの重みに基づいて、K個の予測値の重みを確定する。
S103-B23:K個の予測値及びK個の予測値の重みに基づいて、現在ブロックの予測値を確定する。
【0417】
この方式2では、重み導出中に、現在ブロックの重み導出モードに基づいて、マージ領域内のサンプルの重みを導出する。当該マージ領域は現在ブロックと現在ブロックのテンプレート領域を含む。次に、マージ領域内の現在ブロックに対応する重みを予測値の重みとして確定し、マージ領域内のテンプレート領域に対応する重みを第1のテンプレート重みとして確定する。即ち、この方式2では、テンプレート領域と現在ブロックを一つの全体の領域とすることで、第1のテンプレート重みと予測値の重みを1つのステップで導出することができ、重み導出のステップを減らし、予測効果を向上させることができる。
【0418】
いくつかの実施形態において、上記予測プロセスはサンプルごとに行われ、それに応じて、上記重みもサンプルに対応する重みである。この場合、現在ブロックを予測するとき、K個の調整された予測モードの各々を利用して現在ブロック内のあるサンプルAを予測して、K個の調整された予測モードでの、サンプルAのK個の予測値を得る。現在ブロックの重み導出モードに基づいてサンプルAのK個の予測値の重みを確定し、これらK個の予測値を重み付けして、サンプルAの最終の予測値を得る。現在ブロック内の各サンプルに対して上記ステップを実行することで、現在ブロック内の各サンプルの予測値を得ることができる。現在ブロック内の各サンプルの予測値は現在ブロックの予測値を構成する。K=2であることを例として、第1予測モードを利用して現在ブロック内のあるサンプルAを予測して、当該サンプルAの第1予測値を得、第2予測モードを利用して当該サンプルAを予測して、当該サンプルAの第2予測値を得、サンプルAに対応する予測値重みに基づいて、第1予測値と第2予測値を重み付けして、サンプルAの予測値を得る。
【0419】
K=2であることを例として、第1予測モードと第2予測モードがいずれもイントラ予測モードである場合、第1のイントラ予測モードを利用して予測を行って第1予測値を得、第2のイントラ予測モードを利用して予測を行って第2予測値を得、予測値の重みに基づいて第1予測値と第2予測値を重み付けして、現在ブロックの予測値を得る。例えば、第1のイントラ予測モードを利用してサンプルAを予測して、サンプルAの第1予測値を得、第2のイントラ予測モードを利用してサンプルAを予測して、サンプルAの第2予測値を得、サンプルAに対応する予測値の重みに基づいて、第1予測値と第2予測値を重み付けして、サンプルAの予測値を得る。
【0420】
いくつかの実施形態において、K個の調整された予測モードのうちのj番目の調整された予測モードがインター予測モードである場合、上記S103-BにおけるK個の調整された予測モードと現在ブロックの重み導出モードとに基づいて、現在ブロックの予測値を確定することは以下のステップを含む。
S103-B31:j番目の調整された予測モードに基づいて、動き情報を確定する。
S103-B32:動き情報に基づいてj番目の予測値を確定する。
S103-B33:K個の調整された予測モードのうちのj番目の調整された予測モード以外の予測モードに基づいて、(K-1)個の予測値を確定する。
S103-B34:現在ブロックの重み導出モードに基づいて、K個の予測値の重みを確定する。
S103-B35:j番目の予測値、(K-1)個の予測値、及び予測値の重みに基づいて、現在ブロックの予測値を確定する。
【0421】
K=2であることを例として、第1予測モードがイントラ予測モードであり、第2予測モードがインター予測モードである場合、イントラ予測モードを利用して予測を行って、第1予測値を取得し、インター予測モードを利用して予測を行って、第2予測値を取得し、予測値の重みに基づいて第1予測値と第2予測値を重み付けして、現在ブロックの予測値を取得する。この例では、イントラ予測モードを利用して、現在ブロック内の各サンプルを予測して、現在ブロック内の各サンプルの予測値を取得する。現在ブロック内の各サンプルの予測値は、現在ブロックの第1予測値を構成する。インター予測モードを利用して動き情報を確定し、当該動き情報に基づいて、現在ブロックの最適なマッチングブロックを確定し、当該最適なマッチングブロックを現在ブロックの第2予測値として確定する。現在ブロック内の各サンプルの予測値の重みを利用して、現在ブロックの第1予測値と第2予測値に対してサンプルごとに重み付け演算を実行して、現在ブロックの予測値を得る。例えば、現在ブロック内のサンプルAに対して、サンプルAの予測値の重みに基づいて、現在ブロックの第1予測値におけるサンプルAに対応する第1予測値と、現在ブロックの第2予測値におけるサンプルAに対応する第2予測値とを重み付けして、サンプルAの予測値を得る。
【0422】
いくつかの実施形態では、Kが2より大きい場合、現在ブロックの重み導出モードに基づいてK個の調整された予測モードのうちの任意の2つに対応する予測値の重みを確定することができる。K個の調整された予測モードのうちの他の調整された予測モードに対応する予測値の重みは、予め設定された値であることができる。例えば、K=3である場合、第1予測モードに対応する予測値の重み及び第2予測モードに対応する予測値の重みは、現在ブロックの重み導出モードに基づいて導出され、第3予測モードに対応する予測値の重みは、予め設定された値である。いくつかの実施形態において、K個の調整された予測モードに対応する予測値の総重みが固定されている場合、例えば8である場合、予め設定された重みの割合に基づいて、K個の調整された予測モードの各々に対応する予測値の重みを確定することができる。第3予測モードに対応する予測値の重みが全体の予測値の総重みの1/4を占めると仮定すると、第3予測モードに対応する予測値の重みが2であると確定することができ、予測値の総重みにおける残りの3/4は第1予測モードと第2予測モードに割り当てられる。例示的に、現在ブロックの重み導出モードに基づいて導出される第1予測モードに対応する予測値の重みが3である場合、第1予測モードに対応する予測値の重みは(3/4)*3であり、第2予測モードに対応する予測値の重みは(3/4)*5であると確定する。
【0423】
デコーディング側は上記方法に基づいて、現在ブロックの予測値を確定する。また、デコーディング側は、ビットストリームをデコードすることによって、現在ブロックの量子化係数を取得し、量子化係数を逆量子化して変換係数を取得し、変換係数を逆変換して現在ブロックの残差値を取得する。現在ブロックの予測値と残差値を加算して、現在ブロックの再構成値を得る。
【0424】
本出願の実施形態に係る予測方法では、デコーディング側はビットストリームをデコードし、K個の初期予測モードを確定し、K個の初期予測モードに基づいて、現在ブロックの重み導出モードを確定し、現在ブロックの重み導出モードに基づいて、現在ブロックの予測値を確定する。即ち、本出願では、K個の初期予測モードに基づいて、現在ブロックの重み導出モードを確定し、それによって、重み導出モードの確定方式を豊かにする。また、本出願におけるエンコーディング側がビットストリームに重み導出モードのインデックスを伝送しなくても、デコーディング側はK個の初期予測モードに基づいて現在ブロックの重み導出モードを確定することができる。それによって、符号語を節約し、コーディングコストを削減することができる。
【0425】
上記ではデコーディング側を例として本出願の予測方法を紹介した。以下、エンコーディング側を例として説明する。
【0426】
図19は、本出願の一実施形態に係る予測方法を示すフローチャートである。本出願の実施形態は
図1及び
図2に示されたビデオエンコーダーに適用される。
図19に示されているように、本出願の実施形態の方法は、以下の内容を含む。
【0427】
S201:K個の初期予測モードを確定する。
【0428】
なお、本出願の実施形態において、ビデオ画像は複数の画像ブロックに分割されることができ、現在ブロックはエンコードされようとする各現在の画像ブロックであり、コーティングブロック(Coding Block、CB)と呼ばれてもよい。各コーティングブロックは、第1の色成分(colour component)、第2の色成分、及び第3の色成分を含むことができる。具体的に、本出願において、第1予測が行われ、第1の色成分が輝度成分であり、即ち、予測されようとする色成分が輝度成分であると仮定すると、予測されようとするコーティングブロックは輝度ブロックと呼ばれることができる。又は、第2予測が行われ、第2の色成分が彩度成分であり、即ち、予測されようとする色成分が彩度成分であると仮定すると、予測されようとするコーティングブロックは彩度ブロックと呼ばれることができる。
【0429】
上記から分かるように、予測精度をさらに向上させるために、複数の予測モードを利用して現在ブロックを予測することができる。この場合、エンコーディング側とデコーディング側との予測一致性を保つために、いくつかの実施形態では、エンコーディング側は、ビットストリームにおいて重み導出モードを指示する必要があり、例えば、重み導出モードのインデックスをビットストリームに書き込む。VVCを例として、GPMの64種の重み導出モードは、等確率でエンコードされる。即ち、二値化中に及び逆二値化中に、固定長の6ビットは64種の重み導出モードに利用されるため、コーディングコストが増加する。
【0430】
本出願の実施形態では、コーディングコストを低減するために、デコーディング側は、予測モードによって重み導出モードを導出する。具体的に、デコーディング側は、ビットストリームをデコードすることによってK個の初期予測モードを確定し、次に、これらのK個の初期予測モードに基づいて、現在ブロックの重み導出モードを確定し、さらに、現在ブロックの重み導出モードに基づいて、現在ブロックの予測値を確定する。それに対応して、エンコーディング側もデコーディング側と同じな予測方式を利用し、即ち、K個の初期予測モードを確定し、これらのK個の初期予測モードに基づいて、現在ブロックの重み導出モードを確定し、さらに、現在ブロックの重み導出モードに基づいて、現在ブロックの予測値を確定する。
【0431】
いくつかの実施形態では、説明を簡単にするために、現在ブロックの重み導出モードを現在ブロックの重み導出モードとして記す。
【0432】
上記現在ブロックのK個の初期予測モードは、以下のいくつかの例を含む。
【0433】
例1:上記K個の初期予測モードはいずれも、イントラ予測モードである。
【0434】
例2:上記K個の初期予測モードはいずれも、インター予測モードである。
【0435】
例3:上記K個の初期予測モードのうち、少なくとも1つはイントラ予測モードであり、少なくとも1つはインター予測モードである。
【0436】
例4:上記K個の初期予測モードのうち、少なくとも1つはイントラ予測モードであり、少なくとも1つは非インター予測モード且つ非イントラ予測モードであり、例えば、イントラブロックコピー(IBC)予測モード又はパレット(palette)予測モードなどが挙げられる。
【0437】
例5:上記K個の初期予測モードのうち、少なくとも1つはインター予測モードであり、少なくとも1つは非インター予測モード且つ非イントラ予測モードであり、例えば、IBC予測モード又はパレット予測モードなどが挙げられる。
【0438】
例6:上記K個の初期予測モードはいずれもイントラ予測モードではなく、インター予測モードでもなく、例えば、1つの初期予測モードはIBC予測モードであり、1つの初期予測モードはパレット予測モードである。
【0439】
なお、本出願の実施形態は、上記K個の初期予測モードの具体的な種類を限定しない。
【0440】
上記S201におけるK個の初期予測モードを確定する方式は以下を含むが、それらに限定されない。
【0441】
方式1:上記K個の初期予測モードは、予め設定されたK個の予測モードである。
【0442】
方式2:上記S201は、ステップS201-A1~S201-A2を含む。
S201-A1:侯選予測モードのリストを確定する。当該侯選予測モードのリストは少なくとも2つの侯選予測モードを含む。
S201-A3:侯選予測モードのリストに基づいて、K個の初期予測モードを確定する。
【0443】
いくつかの実施形態では、上記K個の初期予測モードがいずれもイントラ予測モードである場合、当該侯選予測モードのリストに含まれる侯選予測モードはいずれもイントラ予測モードであり、例えば、DCモード、平面モード、角度モードなどのうちの少なくとも1つを含む。選択的に、上記侯選予測モードのリストは、MPMリスト内のイントラ予測モードを含むこともできる。
【0444】
いくつかの実施形態において、上記K個の初期予測モードがいずれもインター予測モードである場合、当該侯選予測モードのリストに含まれる侯選予測モードはいずれもインター予測モードであり、例えば、スキップモード、マージモード、通常のインター予測モードなどのうちの少なくとも1つを含む。
【0445】
いくつかの実施形態では、上記K個の初期予測モードがインター予測モード及びイントラ予測モードの両方を含む場合、当該侯選予測モードのリストは、少なくとも1つのイントラ予測モード及び少なくとも1つのインター予測モードを含む。
【0446】
選択的に、上記侯選予測モードのリストは、IBCモード、パレットモードなどのモードを含むこともできる。
【0447】
選択的に、上記侯選予測モードのリストは、単方向予測、双方向予測、マルチ仮定予測などを含むこともできる。
【0448】
本出願は、上記侯選予測モードのリストに含まれる侯選予測モードの種類と数を限定しない。
【0449】
本出願の実施形態は、侯選予測モードのリストの確定方式を限定しない。
【0450】
一例では、上記侯選予測モードのリストに含まれる侯選予測モードは、予め設定されたモードである。
【0451】
一例では、上記侯選予測モードのリストはMPMリストである。
【0452】
一例では、上記侯選予測モードのリストは、等間隔選別などのいくつかのルールに従って確定された予測モードの集合である。
【0453】
一例では、エンコーディング側とデコーディング側の両方は、上記侯選予測モードのリストにおける侯選予測モードがテンプレートマッチング方式によって確定されることをデフォルトとする。例えば、エンコーディング側は予測モードを利用して現在ブロックのテンプレートを予測して、テンプレートの予測値を取得し、テンプレートの予測値とテンプレートの再構成値に基づいて当該予測モードのコストを確定し、例として、SADコスト、SATDコスト、又はMSEコストなどが挙げられる。それによって、エンコーディング側は、各予測モードのコストに基づいて予測モードをソートして侯選予測モードのリストを得ることができ、例えば、コストが最小である複数の予測モードを侯選予測モードとして確定して、侯選予測モードのリストを構成することができる。
【0454】
本出願の実施形態では、上記方法に基づいて、侯選予測モードのリストを確定した後、侯選予測モードのリストからK個の侯選予測モードを選択してK個の初期予測モードとする。
【0455】
例示的に、エンコーディング側は、侯選予測モードのリストからK個の侯選予測モードをランダムに選択して、K個の初期予測モードとする。
【0456】
例示的に、エンコーディング側は、侯選予測モードのリストのうちの、コストが最小であるK個の侯選予測モードを選択して、K個の初期予測モードとする。
【0457】
エンコーディング側は、K個の初期予測モードを確定した後、ビットストリームに予測モードインデックスを書き込む。当該予測モードインデックスは、K個の初期予測モードのうちの少なくとも1つの初期予測モードのインデックスであることができる。例えば、当該予測モードインデックスは、K個の初期予測モードのインデックスであってもよく、又は、K個の初期予測モードのうちの1番目の初期予測モードのインデックスであってもよい。このように、デコーディング側はビットストリームをデコードして、当該予測モードインデックスを取得し、当該予測モードインデックスに基づいて、確定された侯選予測モードのリストからK個の初期予測モードを確定する。
【0458】
本出願の実施形態において、エンコーディング側は、上記ステップに基づいてK個の初期予測モードを確定し、これらのK個の初期予測モードに基づいて現在ブロックの重み導出モードを確定し、さらに、当該現在ブロックの重み導出モードに基づいて現在ブロックを予測して、現在ブロックの予測値を確定する。
【0459】
いくつかの実施形態では、エンコーディング側は、K個の初期予測モードを確定する前に、まず、現在ブロックに対してK種の異なる予測モードを利用して重み付け予測を行うか否かを確定する必要がある。エンコーディング側は、現在ブロックに対してK種の異なる予測モードを利用して重み付け予測を行うと確定した場合、上記S201を実行してK個の初期予測モードを確定する。
【0460】
1つの可能な実施形態において、エンコーディング側は、現在ブロックの予測モードパラメータを確定することによって、現在ブロックに対して2つの異なる予測モードを利用して重み付け予測を行うか否かを確定することができる。
【0461】
選択的に、本出願の実施形態では、予測モードパラメータは、現在ブロックにGPMモード又はAWPモードを利用できるか否かを示すことができ、即ち、現在ブロックに対してK個の異なる予測モードを利用して予測を行うことができるか否かを示す。
【0462】
なお、本出願の実施形態において、予測モードパラメータは、GPMモード又はAWPモードフラグビットが利用されているか否かを示すフラグビットとして理解されることができる。具体的に、エンコーディング側は、1つの変数を予測モードパラメータとして利用することができ、それによって、当該変数の値の設定で予測モードパラメータの設定を実現する。例示的に、本出願において、現在ブロックにGPMモード又はAWPモードを利用する場合、エンコーディング側は予測モードパラメータの値を、現在ブロックにGPMモード又はAWPモードを利用することを示すものに設定することができ、具体的に、エンコーディング側は、変数の値を1に設定することができる。例示的に、本出願において、現在ブロックにGPMモード又はAWPモードを利用しない場合、エンコーディング側は予測モードパラメータの値を、現在ブロックにGPMモード又はAWPモードを利用しないことを示すものに設定することができ、具体的に、エンコーディング側は、変数の値を0に設定することができる。さらに、本出願の実施形態において、エンコーディング側は、予測モードパラメータの設定を完了した後、予測モードパラメータをビットストリームに書き込み、デコーディング側に伝送することができる。それによって、デコーディング側はビットストリームを解析した後、予測モードパラメータを取得することができる。
【0463】
上記に基づいて、エンコーディング側は、当該予測モードパラメータに基づいて現在ブロックにGPMモード又はAWPモードを利用するか否かを確定する。現在ブロックにGPMモード又はAWPモードを利用する場合、即ちK個の異なる予測モードを利用して予測を行う場合、K個の初期予測モードを確定する。
【0464】
なお、本出願の実施形態において、GPMモード又はAWPモードは一種の予測方法である。具体的に、現在ブロックに対してK個の異なる予測モードを確定し、次に、これらのK個の異なる予測モードのそれぞれに基づいてK個の予測値を確定し、次に、重みを確定することができ、重みに基づいてK個の予測値を組合わせて、最終的に現在ブロックの予測値を得ることができる。
【0465】
いくつかの実施形態では、GPMモード又はAWPモードを利用する場合、現在ブロックのサイズが制限されることができる。本出願の実施形態に係る予測方法では、K個の異なる予測モードのそれぞれを利用してK個の予測値を生成し、重みに基づいて重み付けして、現在ブロックの予測値を得る必要がある。複雑度を低減するために、また、圧縮性能と複雑度とのトレードオフを考慮して、本出願の実施形態では、あるサイズを有するブロックに対してGPMモード又はAWPモードを利用しないよう制限することができる。従って、本出願では、エンコーディング側は、まず、現在ブロックのサイズパラメータを確定し、次に、サイズパラメータに応じて、現在ブロックにGPMモード又はAWPモードを利用するか否かを確定することができる。
【0466】
なお、本出願の実施形態において、現在ブロックのサイズパラメータは、現在ブロックの高さ及び幅を含むことができる。従って、エンコーディング側は、現在ブロックの高さ及び幅を利用して、GPMモード又はAWPモードの利用を制限することができる。例示的に、本出願では、幅が第1閾値より大きく且つ高さが第2閾値より大きい場合、現在ブロックにGPMモード又はAWPモードを利用すると確定する。上記分かるように、1つの可能な制限は、ブロックの幅が第1閾値より大きく(又は第1閾値以上であり)且つブロックの高さが第2閾値より大きい(又は第2閾値以上である)場合にのみ、GPMモード又はAWPモードを利用することである。第1閾値と第2閾値の値は、8、16、32などであってもよく、第1閾値は第2閾値に等しくてもよい。例示的に、本出願では、幅が第3閾値より小さく且つ高さが第4閾値より大きい場合、現在ブロックにGPMモード又はAWPモードを利用すると確定する。上記分かるように、1つの可能な制限は、ブロックの幅が第3閾値より小さく(又は第3閾値以下であり)且つブロックの高さが第4閾値より大きい(又は第4閾値以上である)場合にのみ、AWPモードを利用することである。第3と第4閾値の値は、8、16、32などであってもよく、第3閾値は第4閾値に等しくてもよい。
【0467】
いくつかの実施形態では、本出願の実施形態において、サンプルパラメータへの制限によって、GPMモード又はAWPモードを利用できるブロックのサイズを制限することができる。例示的に、本出願において、エンコーディング側は、まず、現在ブロックのサンプルパラメータを確定し、次に、サンプルパラメータ及び第5閾値に基づいて、現在ブロックにGPMモード又はAWPモードを利用できるか否かを確定することができる。上記分かるように、1つの可能な制限は、ブロック内のサンプル数が第5閾値より大きい(又は第5閾値以上である)場合にのみ、GPMモード又はAWPモードを利用することである。第5閾値の値は、8、16、32などであってもよい。即ち、本出願において、現在ブロックのサイズパラメータがサイズ要件を満たすという条件下でのみ、現在ブロックにGPMモード又はAWPモードを利用できる。
【0468】
いくつかの実施形態では、本出願において、デコードされようとする現在画像に本出願の技術案を適用するか否かを確定するための画像レベルのフラグが存在し得る。例えば、本出願がイントラフレーム(例えば、Iフレーム)に適用し、インターフレーム(例えば、Bフレーム、Pフレーム)に適用しないように構成されることができる。又は、本出願がイントラフレームに適用せず、インターフレームに適用するように構成されることもできる。又は、本出願がインターフレームの一部に適用し、インターフレームの他の一部に適用しないように構成されることもできる。インターフレームにイントラ予測を利用することもできるため、本出願がインターフレームに適用するこ可能性もある。
【0469】
いくつかの実施形態では、この領域に本出願の技術案を適用するか否かを確定するために、画像レベル以下且つCUレベル以上(例えば、タイル、スライス、パッチ、LCUなど)のフラグも存在し得る。
【0470】
S202:K個の初期予測モードに基づいて、現在ブロックの重み導出モードを確定する。
【0471】
本出願では、重み導出モードは、現在ブロックに用いられる重みを確定するために用いられる。具体的に、重み導出モードは、重みを導出するモードであることができる。所定の長さ及び幅を有するブロックに対して、重み導出モードごとに1つの重み行列を導出することができる。同じサイズを有するブロックに対して、異なる重み導出モードによって導出される重み行列が異なる。
【0472】
例えば、本出願では、AWPには56種の重み導出モードがあり、GPMには64種の重み導出モードがある。
【0473】
なお、説明を簡単にするために、本出願の実施形態では、現在ブロックの予測のための、最終的に確定された重み導出モードを、現在ブロックの重み導出モードとして記す。
【0474】
本出願の実施形態において、エンコーディング側は、上記確定されたK個の初期予測モードに基づいて、現在ブロックの重み導出モードを確定する。いくつかの場合では、エンコーディング側は、現在ブロックの重み導出モードに関連する情報をビットストリームに書き込まなくてもよい。それによって、符号語を節約し、コーディングコストを低減する。
【0475】
本出願の実施形態は、エンコーディング側がK個の初期予測モードに基づいて現在ブロックの重み導出モードを確定する方式を限定しない。
【0476】
いくつかの実施形態では、エンコーディング側は、現在ブロックのテンプレートに基づいて、K個の初期予測モードによって、現在ブロックの重み導出モードを確定する。VVCを例として、GPMには64種の重み導出モードがあり、エンコーディング側はテンプレートを分析することにより、どの重み導出モードが選択される確率が高く、どの重み導出モードが選択される確率が低いかを推定する。インターGPMを例として、1つの典型的なシーンは2つのオブジェクトが互いに移動するシーンであり、GPMは2つのオブジェクトのエッジに用いられることができる。現在ブロックとテンプレートの両方にオブジェクトのエッジが含まれると仮定すると、テンプレートにおけるエッジを利用して、現在ブロックのエッジを推測することができる。一例として、2つの動き情報を与え、これら2つの動き情報のそれぞれに基づいてテンプレートの2つの予測値を得、それぞれ第1のテンプレート予測値及び第2のテンプレート予測値と記す。ある重み導出モードに基づいてテンプレート重みを導出し、第1のテンプレート予測値、第2のテンプレート予測値及びテンプレート重みに基づいて当該重み導出モードに対応するテンプレートの予測値を確定する。テンプレートの再構成値が利用可能であるため、当該重み導出モードに対応するテンプレートの予測値とテンプレートの再構成値に基づいて、テンプレートにおける当該重み導出モードのコストを得ることができる。それによって、テンプレートにおける各重み導出モードのコストに基づいて、重み導出モードが選択される確率を推定することができる。1つの可能な実施形態は、テンプレートにおける各重み導出モードのコストに基づいて、重み導出モードをソートすることである。コストの小さいモードが前に位置し、コストの大きいモードが後ろに位置する。ソートされた重み導出モードが大体、確率の高いものから確率の低いものへとソートされると考えられるため、可変長コーディングの方法を利用して処理することができる。1つの可能な実施形態は以下のようである。重み導出モードのリストを構築し、エンコーディング側は、現在ブロックに対して選択された現在ブロックの重み導出モードの、リストにおけるインデックスをビットストリームに書き込む。デコーダーは、ビットストリームにおけるインデックスを解析して、リストから現在ブロックの重み導出モードを確定する。
【0477】
以上から分かるように、本出願の実施形態では、K個の初期予測モードに基づいて現在ブロックの重み導出モードを確定するプロセスにおいて、重み導出モードに基づいてテンプレート重みを確定する必要がある。
【0478】
本出願の実施形態に係る重み導出モードに基づいてテンプレート重みを確定するプロセスを以下に説明する。
【0479】
テンプレートマッチングでは、隣接するサンプル間の関連性を利用して、現在ブロックの周辺のいくつかの領域をテンプレートとする。現在ブロックをエンコード・デコードする前に、その左側と上側にあるブロックはコーディング順序に従って既にデコードされた。インター予測では、参照画像からテンプレートの最適なマッチング位置を見つけることによって、現在ブロックの動き情報又は動きベクトルを確定する。イントラ予測では、テンプレートを利用して現在ブロックのイントラ予測モードを確定する。
【0480】
本出願は、現在ブロックのテンプレートの具体的な形状を制限しない。
【0481】
いくつかの実施形態では、テンプレートは、現在ブロックの上側のデコードされた領域、左側のデコードされた領域、及び左上側のデコードされた領域のうちの少なくとも1つを含む。
【0482】
選択的に、上側のデコードされた領域の幅は現在ブロックの幅と同じであり、左側のデコードされた領域の高さは現在ブロックの高さと同じであり、左上側のデコードされた領域の幅は左側のデコードされた領域の幅と同じであり、左上側のデコードされた領域の高さは上側のデコードされた領域の高さと同じである。
【0483】
現在、上記表5に示されたように、例えば、K=2であり、K個の予測モードは、第1予測モードと第2予測モードを含み、第1予測モードに対応するテンプレートと第2予測モードに対応するテンプレートはそれぞれ、現在ブロックの上側のデコードされた領域であり、又は、現在ブロックの左側のデコードされた領域であり、又は、現在ブロックの左側のデコードされた領域と上側のデコードされた領域である。例えば、
図16に示されているように、GPMインデックスが2である重み導出モードを例として、現在ブロックの重み行列の白色領域は第1予測モードの予測値に対応する重みであり、黒色領域は第2予測モードの予測値に対応する重みである。
図16に示されているように、第1予測モードに対応する第1テンプレートは現在ブロックの上側のデコードされた領域であり、第2予測モードに対応する第2テンプレートは現在ブロックの左側のデコードされた領域であるが、第2予測モードに近いテンプレートは左側領域に加えて上側のデコードされた領域の一部を含む。従って、既存技術ではテンプレートの分割が十分に細かくなく、その結果、テンプレートに基づいて現在ブロックの重み導出モードを的確に導出することができない。
【0484】
当該技術的課題を解決するために、本出願では、重み導出モードによってテンプレートのより細かい分割を実現することができる。例えば、
図17Aに示されているように、本出願では、現在ブロックの重み導出モードに対応する重み行列の分割線をテンプレート領域に向かって延長して、テンプレートを分割する。例えば、分割線の一方側のテンプレートを第1テンプレートとして記し、分割線の他方側のテンプレートを第2テンプレートとして記す。第1テンプレートは第1予測モードに対応し、第2テンプレートは第2予測モードに対応し、第1テンプレートの重みは第1予測モードに対応する重みに基づいて確定され、第2テンプレートの重みは第2予測モードに対応する重みに基づいて確定される。例えば、第1テンプレートの重みは第1予測モードに対応する重みと同じであり、第2テンプレートの重みは第2予測モードに対応する重みと同じである。
【0485】
いくつかの実施形態では、上記方法に従って分割された第1テンプレート及び第2テンプレートは、長方形ではない可能性がある。例えば、
図17Aに示されているように、第1テンプレート及び第2テンプレートは傾斜辺を有するが、不規則なテンプレートへのコストの計算は比較的複雑である。
【0486】
テンプレートマッチングの複雑度を軽減するために、いくつかの実施形態では、重み行列をテンプレート領域に向かって直接に延びて、例えば左方向や上方向に向かって延びて、テンプレートをカバーすることにより、テンプレートの重みを確定することができる。例えば、
図17Bに示されているように、選択的に、現在ブロックの左上側領域の小さな矩形領域をテンプレートに追加することができ、テンプレートと現在ブロックを合わせて矩形を形成する。もちろん、左側部分と上側部分のみをテンプレートとして利用することも可能である。
図17Bに示されているように、左上側領域を追加したものを例として、左側、左上側、上側の逆L字型の領域をテンプレート領域とし、右下側の矩形領域を現在ブロックとし、左上側に延びた重み行列はテンプレートの重み行列となる。このように、テンプレートを実際に分割するのではなく、重みを利用してテンプレートの分割を模擬する。重み導出モードを利用してテンプレートの分割を模擬するとも言え、又は、重み導出モードを利用してテンプレート重みを確定し、テンプレート重みに基づいてテンプレートマッチングのコストを確定するとも言える。ブロック形状が異なればテンプレートの分割も異なる可能性があるため、本出願では、様々な形状を有するブロックに対して様々なルールを設定する必要がなく、例えば、表5に示された予測モードとテンプレートとの対応関係を設定する必要がない。また、「分割」の精度についても、左側領域と上側領域のみを区別する方法より、本出願における模擬分割のほうが、より細かく且つ精確である。
【0487】
いくつかの実施形態では、
図17Bに示されている現在ブロックの左側領域と上側領域を現在ブロックのテンプレートとし、左上側の行列領域を考慮しない。
【0488】
テンプレートマッチング中に、1つの成分(Y、Cb、Cr又はR、G、B)のみを利用することが可能である。例えば、YUVフォーマットでは、Yが支配的であるため、Yを利用することができるが、もちろん、すべての成分を利用することもできる。説明を簡単にするため、本出願では、1つの成分を例として説明し、例えば、Y成分に対してテンプレートマッチングを行うことを例とし、他の成分についてはY成分を参照することができる。
【0489】
本出願の実施形態において、重み導出モードに基づいてテンプレート重みを導出するプロセスと、予測値の重みを導出するプロセスとを合わせることができ、例えば、テンプレート重みと予測値の重みを同時に導出する。予測値の重みは、予測値に対応する重みとして理解されることができる。例えば、第1予測モードを利用して第1予測値を取得し、第2予測モードを利用して第2予測値を取得し、重み導出モードに基づいて第1予測値の第1重みを確定し、重み導出モードに基づいて第2予測値の第2重みを確定し、第1予測値及び第1重みの積と、第2予測値及び第2重みの積との和を現在ブロックの予測値として確定することができる。
【0490】
本出願では、テンプレート重みと区別するために、第1重み及び第2重みを予測値の重みと呼ぶ。
【0491】
いくつかの実施形態では、重み導出モードに基づいて、テンプレート重みを確定することは、以下のステップを含む。
ステップA:重み導出モードに基づいて、角度インデクシングと距離インデクシングを確定する。
ステップB:角度インデックス、距離インデックス、及びテンプレートのサイズに基づいて、テンプレート重みを確定する。
【0492】
本出願では、予測値の重みを導出する方式と同じ方式でテンプレート重みを導出することができる。例えば、まず、重み導出モードに基づいて、角度インデクシングと距離インデクシングを確定することができる。角度インデクシングは、重み導出モードによって導出された各重みの境界線の角度インデクシングとして理解されることができる。例えば、上記表2に従って、重み導出モードに対応する角度インデクシングと距離インデクシングを確定することができる。例えば、重み導出モードが27である場合、対応する角度インデクシングは12であり、対応する距離インデクシングは3である。次に、角度インデックス、距離インデックス、及びテンプレートのサイズに基づいて、テンプレート重みを確定する。
【0493】
上記ステップBにおける重み導出モードに基づいてテンプレート重みを導出する方式は以下を含むが、それらに限定されない。
【0494】
方式1:角度インデックス、距離インデックス、及びテンプレートのサイズに基づいて、テンプレート重みを直接に確定する。この場合、上記ステップBは、以下のステップB11~ステップB13を含む。
ステップB11:角度インデックス、距離インデックス、及びテンプレートのサイズに基づいて、テンプレート内のサンプルの第1パラメータを確定する。
ステップB12:テンプレート内のサンプルの第1パラメータに基づいて、テンプレート内のサンプルの重みを確定する。
ステップB13:テンプレート内のサンプルの重みに基づいて、テンプレート重みを確定する。
【0495】
本実施形態では、角度インデックス、距離インデックス、テンプレートのサイズ、及び現在ブロックのサイズに基づいて、テンプレート内のサンプルの重みを確定し、さらに、テンプレート内の各サンプルの重みからなる重み行列をテンプレート重みとして確定する。
【0496】
本出願の第1パラメータは、重みを確定するために用いられる。いくつかの実施形態では、第1パラメータは重みインデックスとも呼ばれる。
【0497】
可能な一実施形態では、上記実施形態の方式でオフセットと第1パラメータを確定することができる。具体的な内容については上記実施形態の説明を参照することができ、ここで詳述しない。
【0498】
上記方法に基づいて、第1パラメータweightIdxを確定した後、weightIdxに基づいてテンプレート内のサンプル(x,y)の重みを確定する。
【0499】
本出願では、上記ステップB12におけるテンプレート内のサンプルの第1パラメータに基づいて、テンプレート内のサンプルの重みを確定する方式は以下を含むが、それらに限定されない。
【0500】
方式1:テンプレート内のサンプルの第1パラメータに基づいてテンプレート内のサンプルの第2パラメータを確定し、テンプレート内のサンプルの第2パラメータに基づいてテンプレート内のサンプルの重みを確定する。
【0501】
第2パラメータは、重みを確定するためにも用いられる。いくつかの実施形態では、上記第2パラメータは、第1成分での重みインデックスとも呼ばれ、当該第1成分は輝度成分、彩度成分などであってもよい。
【0502】
方式2:テンプレート内のサンプルの第1パラメータ、第1の予め設定された値及び第2の予め設定された値に基づいて、テンプレート内のサンプルの重みを確定する。
【0503】
テンプレート重みの計算複雑度を低減するために、方式2では、テンプレート内のサンプルの重みを第1の予め設定された値又は第2の予め設定された値に限定する。即ち、テンプレート内のサンプルの重みを第1の予め設定された値又は第2の予め設定された値のいずれかにすることで、テンプレート重みの計算複雑度を低減する。
【0504】
本出願は、第1の予め設定された値と第2の予め設定された値の具体的な値を限定しない。
【0505】
選択的に、第1の予め設定された値は1である。
【0506】
選択的に、第2の予め設定された値は0である。
【0507】
上記方式1では、重み導出モードに基づいてテンプレート内の各サンプルの重みが確定される。テンプレート内の各サンプルの重みからなる重み行列がテンプレート重みとされる。
【0508】
方式2:重み導出モードに基づいて現在ブロックの重みとテンプレート重みを確定する。即ち、当該方式2では、現在ブロックとテンプレートとからなるマージ領域を全体とし、重み導出モードに基づいてマージ領域内のサンプルの重みを導出する。それに基づいて、上記ステップBは、以下のステップB21及びB22を含む。
ステップB21:角度インデックス、距離インデックス、テンプレートのサイズ、及び現在ブロックのサイズに基づいて、現在ブロックとテンプレートとからなるマージ領域内のサンプルの重みを確定する。
ステップB22:テンプレートのサイズとマージ領域内のサンプルの重みとに基づいて、テンプレート重みを確定する。
【0509】
当該方式2では、現在ブロックとテンプレートを全体とし、角度インデックス、距離インデックス、テンプレートのサイズ、及び現在ブロックのサイズに基づいて、現在ブロックとテンプレートとからなるマージ領域内のサンプルの重みを確定し、次に、テンプレートのサイズに基づいて、マージ領域内のサンプルの重みにおけるテンプレートに対応する重みを、テンプレート重みとして確定する。例えば、
図18に示されているように、マージ領域内のL型のテンプレート領域に対応する重みをテンプレート重みとして確定する。
【0510】
当該方式2では、重み確定プロセスにおいて、テンプレート重みを確定するだけでなく、予測値の重みも確定する。即ち、マージ領域に対応する重みからテンプレート重みを除去した後、残ったものは予測値の重みである。そのため、予測値の重みを再び確定する必要なく、予測値の重みに基づいて後続の予測プロセスを実行することができる。それによって、予測ステップを削減し、予測効率を向上させることができる。
【0511】
本出願では、上記角度インデックス、距離インデックス、テンプレートのサイズ、及び現在ブロックのサイズに基づいて、現在ブロックとテンプレートとからなるマージ領域内のサンプルの重みを確定する具体的な実施形態が限定されない。
【0512】
いくつかの実施形態では、上記ステップB21におけるマージ領域内のサンプルの重みを確定することは、以下のステップB211~ステップB212を含む。
ステップB211:角度インデックス、距離インデックス、及びマージ領域のサイズに基づいて、マージ領域内のサンプルの第1パラメータを確定する。
ステップB212:マージ領域内のサンプルの第1パラメータに基づいて、マージ領域内のサンプルの重みを確定する。
【0513】
本実施形態では、角度インデックス、距離インデックス、及びマージ領域のサイズに基づいてマージ領域内のサンプルの重みが確定され、マージ領域内の各サンプルの重みは重み行列を形成する。
【0514】
具体的な内容については上記実施形態の説明を参照することができ、ここで詳述しない。
【0515】
本出願では、上記ステップB212におけるマージ領域内のサンプルの第1パラメータに基づいて、マージ領域内のサンプルの重みを確定する方式は以下を含むが、それらに限定されない。
【0516】
方式1:マージ領域内のサンプルの第1パラメータに基づいてマージ領域内のサンプルの第2パラメータを確定し、マージ領域内のサンプルの第2パラメータに基づいてマージ領域内のサンプルの重みを確定する。
【0517】
方式2:マージ領域内のサンプルの第1パラメータ、第1の予め設定された値及び第2の予め設定された値に基づいて、マージ領域内のサンプルの重みを確定する。
【0518】
例示的に、マージ領域内のサンプルの重みは、第1の予め設定された値又は第2の予め設定された値である。
【0519】
マージ領域重みの計算複雑度を低減するために、方式2では、マージ領域内のサンプルの重みを第1の予め設定された値又は第2の予め設定された値に限定する。即ち、マージ領域内のサンプルの重みを第1の予め設定された値又は第2の予め設定された値のいずれかにすることで、マージ領域重みの計算複雑度を低減する。
【0520】
本出願は、第1の予め設定された値と第2の予め設定された値の具体的な値を限定しない。
【0521】
選択的に、第1の予め設定された値は1である。
【0522】
選択的に、第2の予め設定された値は0である。
【0523】
上記方式2では、重み導出モードに基づいて、現在ブロックとテンプレートとからなるマージ領域内の各サンプルの重みを確定し、さらに、テンプレートのサイズに基づいて、マージ領域内のテンプレートに対応する重みをテンプレート重みとして確定する。また、当該方式2では、後続の予測値の重みの確定ステップを実行する必要がなく、予測値の重みを確定した。それによって、予測ステップを削減し、予測効率を向上させることができる。
【0524】
以上、重み導出モードに基づいてテンプレート重みを確定するプロセスについて詳細に説明したが、上記重み導出モードは、本出願の実施形態に係る重み導出モードのいずれか1つであってもよく、例えば、現在ブロックの重み導出モード、又はN個の候補予測モードのうちのi番目の候補予測モードなどであってもよい。
【0525】
S203:現在ブロックの重み導出モードに基づいて、現在ブロックの予測値を確定する。
【0526】
本出願において、S203におけるエンコーディング側が現在ブロックの重み導出モードに基づいて、現在ブロックの予測値を確定する方式は以下を含むが、それらに限定されない。
【0527】
方式1:エンコーディング側は現在ブロックの重み導出モードとK個の初期予測モードに基づいて現在ブロックの予測値を確定する。具体的に、エンコーディング側は現在ブロックの重み導出モードに基づいて予測値の重みを確定し、次に、K個の初期予測モードに基づいて現在ブロックを予測して、K個の予測値を取得し、次に、予測値の重みを利用してK個の予測値に対して重み付け平均計算を行って、現在ブロックの予測値を取得する。
【0528】
なお、上記現在ブロックの重み導出モードに基づいて導出される予測値の重みは、現在ブロック内の各サンプルに対応する重み、又は現在ブロックに対応する重み行列として理解され得る。予測値の重みに基づいて現在ブロックの予測値を確定する中に、現在ブロック内の各サンプルに対応するK個の予測値を確定し、各サンプルに対応するK個の予測値及び予測値の重みに基づいて各サンプルに対応する予測値を確定することができる。現在ブロック内の各サンプルに対応する予測値は現在ブロックの予測値を構成する。選択的に、予測値の重みに基づいて現在ブロックの予測値を確定することは、ブロックに基づいて実行されることができ、例えば、現在ブロックのK個の予測値を確定し、現在ブロックの重み行列に基づいて現在ブロックのK個の予測値を重み付けして、現在ブロックの予測値を取得することもできる。
【0529】
方式2:エンコーディング側は、現在ブロックの重み導出モードを利用して上記K個の初期予測モードを改善することができる。この場合、上記S203は、以下のステップS203-A及びS203-Bを含む。
S203-A:現在ブロックの重み導出モードに基づいて、K個の調整された予測モードを確定する。
S203-B:K個の調整された予測モードと現在ブロックの重み導出モードとに基づいて、現在ブロックの予測値を確定する。
【0530】
本出願の実施形態では、GPMには(K+1)個の要素、即ち1つの重み導出モードとK個の予測モードが含まれると考えられることができる。1つの重み導出モードとK個の予測モードでともに1つの予測ブロックを生成し、この予測ブロックは現在ブロックに用いられる。そのため、これらは互いに関連している。例えば、現在ブロックは相対的に移動している2つのオブジェクトのエッジを含み、これはインターGPMにとって理想的なシナリオである。理論的には、この「分割」はオブジェクトのエッジで起こるべきであるが、実際に、「分割」の可能性は限られており、すべてのエッジをカバーすることはできない。近似する「分割」を選択する場合がある。近似する「分割」が複数存在する可能性があり、どの「分割」を選択するかは、どの「分割」が2つの予測モードとの組み合わせが最適な結果をもたらすかに依存する。同様に、どの予測モードを選択するかは、どの組み合わせが最適な結果をもたらすかに依存する。それは、当該予測モードを利用する部分でも、ナチュラルなビデオの場合、この部分を現在ブロックと完全にマッチングさせることは難しいためである。最終的に選択したものがコーディング効率が最も高いものである可能性がある。GPMがよく使われるもう一つのシナリオは、オブジェクト内に相対的な動きがある部分が現在ブロックに含まれているシナリオである。例えば、腕の振りなどによるねじれや変形があるところが挙げられ、「分割」はより曖昧になり、最終的にどの組み合わせが最適の結果をもたらすかに依存する可能性がある。もう1つのシナリオはイントラ予測であり、ナチュラルな画像におけるいくつかの部分のテクスチャは複雑で、いくつかの部分にはあるテクスチャから別のテクスチャへの緩やかな変化があり、いくつかの部分が単純に一方向で表現されることができない場合がある。イントラGPMは、より複雑な予測ブロックを提供することができ、イントラコードされたブロックは通常、同じ量子化でインターコードされたブロックと比べて、より大きな残差を有する。どの予測モードを選択するかは、最終的にどの組み合わせが最適な結果をもたらすかに依存する。
【0531】
上記から分かるように、(K+1)個の要素は互いに影響し合うため、重み導出モードを利用して予測モードを確定することができ、予測モードを利用して重み導出モードを確定することもできる。さらに、いくつかのモード情報は改善(refine)されることもできる。改善とは、初期のモード情報に基づいて、より多くの関連情報を収集することにより、計算などより多く方法を利用して、より良いモード情報を得ることを意味する。refineとは一般にエンコーディング側の操作である。テンプレートに基づいて、動き情報を改善することもできる。即ち、初期の動き情報に基づいて、エンコーディング側で小さな範囲内で検索を行い、検索された動き情報とテンプレートとのマッチングの度合いに応じて、動き情報を最適化する。動き情報とテンプレートとのマッチングの度合いは、動き情報に基づいたテンプレートの予測値とテンプレートの再構成値とのマッチングの度合いであると理解されることができる。
【0532】
GPMでは、まず、予測モードに基づいて重み導出モードを確定し、次に、重み導出モードに基づいて予測モードを改善することができる。又は、まず、重み導出モードに基づいて予測モードを確定し、次に、予測モードに基づいて重み導出モードを改善することができる。もちろん、複雑度が許せば、両者を交互に実施することもできる。テンプレートは、これらの方法を実施するためのリンクとされることができ、さらに、テンプレート重みは、これらの方法を実施するためのリンクとされることができる。即ち、予測モードでのテンプレートの予測値と、重み導出モードに対応するサブテンプレート又はテンプレートの重みに基づいてテンプレート上のコストを計算する。テンプレート上のコストを利用して、予測モード又は重み導出モードを導出し、又は確定する。
【0533】
即ち、本出願の実施形態では、K個の初期予測モードに基づいて、現在ブロックの重み導出モードを確定し、次に、現在ブロックの重み導出モードを利用して、K個の初期予測モードを改善して、K個の調整された予測モードを取得し、さらに、現在ブロックの重み導出モードとK個の調整された予測モードに基づいて、現在ブロックの予測値を確定する。
【0534】
上記K個の調整された予測モードと現在ブロックの重み導出モードに基づいて現在ブロックの予測値を確定する具体的なプロセスについては、重み導出モードとK個の予測モードに基づいて現在ブロックを予測して現在ブロックの予測値を確定する以下の具体的な説明の内容を参照することができ、ここでは詳述しない。
【0535】
以下、具体的な実施形態により、上記S202におけるK個の初期予測モードに基づいて、現在ブロックの重み導出モードを確定するプロセス、及び上記S203-Aにおける現在ブロックの重み導出モードに基づいて、K個の調整された予測モードを確定するプロセスについて詳細に説明する。
【0536】
いくつかの実施形態において、上記S202は、以下のステップS202-A~S202-Cを含む。
S202-A:N個の候補重み導出モードを確定する。Nは1より大きい正の整数である。
S202-B:N個の候補重み導出モードのうちのi番目の候補重み導出モードに対して、i番目の候補重み導出モードとK個の初期予測モードとに基づいて、i番目の候補重み導出モードに対応する第1コストを確定する。iは1からNまでの正の整数である。
S202-C:N個の候補重み導出モードの各々に対応する第1コストに基づいて、現在ブロックの重み導出モードを確定する。
【0537】
この実施形態では、エンコーディング側は、まずN個の候補重み導出モードを確定する。当該N個の候補重み導出モードは、重み導出モードのリストを構成する。エンコーディング側は、これらN個の候補重み導出モードの各々に対応する第1コストを計算することにより、第1コストに基づいて、これらN個の候補重み導出モードから現在ブロックの重み導出モードを確定する。
【0538】
例えば、N個の候補重み導出モードのうちの、第1コストが最小である候補重み導出モードを、現在ブロックの重み導出モードとして確定する。
【0539】
別の例として、N個の候補重み導出モードの各々に対応する第1コストに基づいて、N個の候補重み導出モードをソートして、候補重み導出モードのリストを得る。候補重み導出モードのリストに基づいて、現在ブロックの重み導出モードを確定する。例えば、候補重み導出モードのリストのうちのいずれか1つを現在ブロックの重み導出モードとして確定する。この実施形態では、エンコーディング側は、現在ブロックの重み導出モードに対応する重み導出モードインデックスをビットストリームに書き込む。それによって、デコーディング側は、当該重み導出モードインデックスに基づいて、確定された候補重み導出モードのリストから現在ブロックの重み導出モードを確定する。
【0540】
選択的に、上記第1コストは、SAD、SATD又はSEEなどのコストであってもよい。
【0541】
エンコーディング側がN個の候補重み導出モードの各々に対応する第1コストを確定するプロセスは同じである。説明を簡単にするために、N個の候補重み導出モードのうちのi番目の候補重み導出モードに対応する第1コストを確定することを例として説明する。
【0542】
上記S202-Bにおけるi番目の候補重み導出モードとK個の初期予測モードとに基づいて、i番目の候補重み導出モードに対応する第1コストを確定する方式は以下を含むが、それらに限定されない。
【0543】
方式1:i番目の候補重み導出モードとK個の初期予測モードとを利用して現在ブロックのテンプレートを予測して、テンプレートの第1予測値を得る。テンプレートの第1予測値とテンプレートの再構成値とに基づいて、i番目の重み導出モードに対応する第1コストを確定する。
【0544】
具体的に、i番目の候補重み導出モードに基づいてテンプレート重みを確定し、K個の初期予測モードを利用してテンプレートを予測して、テンプレートのK個の予測値を得る。テンプレート重みを利用してテンプレートに対応するK個の予測値を重み付けして、テンプレートの予測値を得る。説明の便宜上、当該テンプレートの予測値をテンプレートの第1予測値として表記する。次に、テンプレートの第1予測値とテンプレートの再構成値に基づいて、当該i番目の候補重み導出モードに対応する、テンプレートに関する予測コストを確定し、その予測コストを、i番目の重み導出モードに対応する第1コストとして表記する。
【0545】
なお、i番目の候補重み導出モードに基づいてテンプレート重みを確定する具体的なプロセスについては、重み導出モードに基づいてテンプレート重みを確定する以下の具体的な内容を参照することができるため、ここでは詳述しない。
【0546】
上記方法によって、N個の候補重み導出モードの各々に対応する第1コストを確定することができ、次に、N個の候補重み導出モードのうちの、第1コストが最小である候補重み導出モードを、現在ブロックの重み導出モードとして確定する。又は、N個の候補重み導出モードの各々に対応する第1コストに基づいて、N個の候補重み導出モードをソートして、候補重み導出モードのリストを得る。候補重み導出モードのリストにおける、重み導出モードインデックスに対応する候補重み導出モードを、現在ブロックの重み導出モードとして確定する。
【0547】
当該方式1に基づいて、上記S203-Aにおける現在ブロックの重み導出モードに基づいて、K個の調整された予測モードを確定する方式は以下のステップを含む。
【0548】
S203-A1:現在ブロックの重み導出モードに基づいてK個の初期予測モードを改善して、K個の調整された予測モードを得る。
【0549】
S203-A1の実施形態は、以下のいくつかの例を含むが、それらに限定されない。
【0550】
例1:現在ブロックの重み導出モードに関する少なくとも1つの予測モードを確定し、この少なくとも1つの予測モードは、予測角度が現在ブロックの重み導出モードの境界線に平行又はほぼ平行である予測モード、又は、予測角度が現在ブロックの重み導出モードの境界面に対して垂直又はほぼ垂直である予測モードであってもよい。K個の初期予測モードのうちの少なくとも1つの初期予測モードは、現在ブロックの重み導出モードに関する少なくとも1つの予測モードのうちの予測モードで置き換えられ、複数の予測モードの新しい組み合わせが形成される。予測モードの新しい組み合わせの各々にはK個の予測モードが含まれる。予測モードの新しい組み合わせの各々に対して、予測モードの新しい組み合わせに含まれるK個の予測モードと現在ブロックの重み導出モードとを利用してテンプレートを予測して、テンプレートの予測値を取得する。テンプレートの予測値とテンプレートの再構成値とに基づいて、当該予測モードの新しい組み合わせに対応するコストを確定し、それによって、上記形成される複数の予測モードの新しい組み合わせの各々に対応するコストを取得する。同様に、現在ブロックの重み導出モードとK個の初期予測モードを利用して現在ブロックを予測して、K個の初期予測モードに対応するコストを確定する。このように、エンコーディング側は、予測モードの新しい組み合わせに対応するコストと、K個の初期予測モードに対応するコストとに基づいて、K個の調整された予測モードを得ることができる。例えば、予測モードの新しい組み合わせ1に対応するコストが最小である場合、当該予測モードの新しい組み合わせ1に含まれるK個の予測モードを、K個の調整された予測モードとして確定する。当該予測モードの新しい組み合わせ1に少なくとも1つの初期予測モードが含まれる可能性があり、初期予測モードが含まれていない可能性もある。
【0551】
例2:以下のステップS203-A11~S203-A14により、K個の初期予測モードを改善して、K個の調整された予測モードを得る。
【0552】
S203-A11:現在ブロックの重み導出モードに基づいて、第1のテンプレート重みを確定する。
【0553】
現在ブロックの重み導出モードに基づいて、第1のテンプレート重みを確定する具体的なプロセスについては、以下のテンプレート重みの導出の実施形態の具体的な説明を参照することができ、ここで詳述しない。
【0554】
S203-A12:K個の初期予測モードのうちのj番目の初期予測モードに対して、j番目の初期予測モードに対応するM個の第1の候補予測モードを確定する。Mは1より大きい正の整数であり、jは1からKまでの正の整数である。
【0555】
なお、上記S203-A12と上記S203-A11とは、実行される順序がない。即ち、上記S203-A12は、上記S203-A11の後に実行されてもよく、上記S203-A11の前に実行されてもよく、又は、上記S203-A11と同時に実行されてもよく、本出願の実施形態では、それについては限定されない。
【0556】
当該例では、エンコーディング側は、現在ブロックの重み導出モードを利用してK個の初期予測モードの各々を改善して、K個の初期予測モードの各々に対応する調整された予測モードを得、即ち、K個の調整された予測モードを得る。
【0557】
K個の初期予測モードの各々に対応する調整された予測モードを確定するプロセスは同じである。説明を容易にするために、本出願の実施形態では、K個の初期予測モードのうちのj番目の初期予測モードに対応する調整された予測モードを確定することを例として説明する。
【0558】
本出願の実施形態において、エンコーディング側は、j番目の初期予測モードに対して、まず、当該j番目の初期予測モードに対応するM個の第1の候補予測モードを確定する。
【0559】
エンコーディング側がj番目の初期予測モードに対応するM個の第1の候補予測モードを確定する方式は、以下の2つのケースを含む。
【0560】
ケース1:j番目の初期予測モードがイントラ予測モードである場合、j番目の初期予測モードに類似するM個のイントラ予測モードを、M個の第1の候補予測モードとして確定する。例えば、j番目の初期予測モードが角度予測モードである場合、j番目の初期予測モードの角度に類似する(又は相似する)M個の角度予測モードを、j番目の初期予測モードに対応するM個の第1の候補予測モードとして確定する。
【0561】
ケース2:j番目の初期予測モードがインター予測モードである場合、j番目の初期予測モードに基づいて検索を行って、M個の第1動き情報を得る。これらM個の第1動き情報に基づいて、j番目の予測モードに対応するM個の第1の候補予測モードを確定する。例えば、j番目の初期予測モードに対して、その動きベクトルが(xInit,yInit)であり、水平方向でxInit-sRからxInit+sRまで、垂直方向でyInit-sRからyInit+sRまでの矩形領域などの検索範囲が設定され、sRは2、4、8などであってもよい。当該矩形領域内の各動きベクトルと、j番目の初期予測モードの他の情報、例えば、参照画像インデックス及び予測リストフラグなどとが組み合わせられて動き情報が確定され、さらに予測モードが確定される。それによって、j番目の初期予測モードに対応するM個の第1の候補予測モードを得ることができる。
【0562】
いくつかの実施形態において、上記j番目の初期予測モードに基づいて検索を行って、M個の第1動き情報を得ることは、j番目の初期予測モードに基づいて検索を行って、M個のオフセットを得ることと、M個のオフセットに基づいてM個の第1動き情報を得ることと、を含む。
【0563】
S203-A13:第1のテンプレート重みに基づいて、M個の第1の候補予測モードの各々によるテンプレートへの予測に対応する第2コストを確定する。
【0564】
上記ケース1又はケース2の方法に従って、j番目の初期予測モードに対応するM個の第1の候補予測モードを確定した後、これらM個の第1の候補予測モードに対応するコストを確定し、次に、コストに基づいて、j番目の初期予測モードに対応する調整された予測モードを確定する。説明の便宜上、第1の候補予測モードに対応するコストを第2コストとして表記する。
【0565】
具体的に、M個の第1の候補予測モードのうちの各々に対して、その第1の候補予測モードを利用して現在ブロックのテンプレートを予測して、予測値を得る。その後、第1のテンプレート重みと当該予測値とに基づいて、当該第1の候補予測モードに対応する、テンプレートに関する第2コストを確定する。
【0566】
以下、M個の第1の候補予測モードのうちの1つの第1の候補予測モードに対応する、テンプレートに関する第2コストを計算することを例として説明する。
【0567】
説明の便宜上、テンプレート内のi番目のサンプルを例として説明する。このi番目のサンプルは、テンプレート内の任意のサンプルであると理解されることができる。即ち、テンプレート内の各サンプルの第2コストを確定するプロセスは同じであり、i番目のサンプルを参照すればいい。具体的に、第1の候補予測モードを利用してテンプレートを予測して、テンプレートの予測値を得る。テンプレートの予測値におけるi番目のサンプルに対応する予測値をi番目の予測値として記し、テンプレートの再構成値におけるi番目のサンプルに対応する再構成値をi番目の再構成値として記す。i番目の予測値と、i番目の再構成値と、第1のテンプレート重みにおけるi番目のサンプルの重みとに基づいて、第1の候補予測モードに対応する、i番目のサンプルの第2コストを確定する。上記方法に基づいて、当該第1の候補予測モードに対応する、テンプレート内の各サンプル又は複数のサンプルの第2コストを確定する。次に、テンプレート内の各サンプル又は複数のサンプルの第2コストに基づいて、第1の候補予測モードに対応する、テンプレートに関する第2コストを確定する。例えば、当該第1の候補予測モードに対応する、テンプレート内のサンプルの第2コストの合計を、当該第1の候補予測モードに対応する、テンプレートに関する第2コストとして確定する。
【0568】
例示的に、SADコストを例として、第1の候補予測モードに対応する、テンプレート内のi番目のサンプル(x,y)の第2コストを、上記数1に基づいて確定することができる。
【0569】
なお、上記では、SADに基づいて、第1の候補予測モードに対応する、テンプレートに関する第2コストを確定することを例とする。選択的に、SATD、MSEなどのコスト計算方法に基づいて、第1の候補予測モードに対応する、テンプレートに関する第2コストを確定することもできる。
【0570】
上記方法により、M個の第1の候補予測モードの各々に対応する第2コストを確定することができ、次に、以下のS203-A14を実行する。
【0571】
S203-A14:M個の第1の候補予測モードの各々に対応する第2コストに基づいて、j番目の初期予測モードに対応する調整された予測モードを確定する。
【0572】
例えば、M個の第1の候補予測モードのうちの、第2コストが最小である第1の候補予測モードを、j番目の初期予測モードに対応する調整された予測モードとして確定する。
【0573】
上記実施形態では、K個の初期予測モードのうちのj番目の初期予測モードに対応する調整された予測モードを確定することを例を説明したが、上記説明を参照すれば、K個の初期予測モードの各々に対応する調整された予測モードを確定し、K個の調整された予測モードを得ることができる。
【0574】
当該方式1において、デコーディング側は、まず、K個の初期予測モードに基づいて現在ブロックの重み導出モードを確定し、次に、現在ブロックの重み導出モードに基づいてK個の初期予測モードを改善して、例えば、上記例1又は例2の方式によって改善して、K個の調整された予測モードを取得し、さらに、現在ブロックの重み導出モードとK個の調整された予測モードとを利用して現在ブロックを予測して、現在ブロックの予測値を取得する。
【0575】
本出願の実施形態において、エンコーディング側は、上記方式1を利用して、現在ブロックの重み導出モードとK個の調整された予測モードを確定することに加えて、以下の方式2によって、現在ブロックの重み導出モードとK個の調整された予測モードを確定することもできる。
【0576】
方式2:予測モードの改善と現在ブロックの重み導出モードの確定を融合し、同時に行う。この場合、上記S202-Bにおけるi番目の候補重み導出モードとK個の初期予測モードとに基づいて、i番目の候補重み導出モードに対応する第1コストを確定することは、以下のステップS202-B11~S202-B12を含む。
【0577】
S202-B11:i番目の候補重み導出モードに基づいてK個の初期予測モードを改善して、i番目の候補重み導出モードに対応するK個の第1の改善予測モードを得る。
【0578】
この方式2では、N個の候補予測モードのうちのi番目の候補重み導出モードに対して、まず、当該i番目の候補重み導出モードを利用してK個の初期予測モードを改善して、当該i番目の候補重み導出モードに対応するK個の改善予測モードを得る。説明の便宜上、ここで、i番目の候補重み導出モードに対応するK個の改善予測モードを、K個の第1の改善予測モードとして表記する。次に、当該i番目の候補重み導出モードと、当該i番目の候補重み導出モードに対応するK個の第1の改善予測モードとに基づいて、i番目の候補重み導出モードに対応する第1コストを確定する。それによって、より精確な現在ブロックの重み導出モードとK個の調整された予測モードを得ることができる。
【0579】
S202-B11の実施形態は、以下のいくつかの例を含むが、それらに限定されない。
【0580】
例1:i番目の候補重み導出モードに関する少なくとも1つの予測モードを確定し、この少なくとも1つの予測モードは、予測角度がi番目の候補重み導出モードの境界線に平行又はほぼ平行である予測モード、又は、予測角度がi番目の候補重み導出モードの境界面に対して垂直又はほぼ垂直である予測モードであってもよい。K個の初期予測モードのうちの少なくとも1つの初期予測モードは、i番目の候補重み導出モードに関する少なくとも1つの予測モードのうちの予測モードで置き換えられ、複数の予測モードの新しい組み合わせが形成される。予測モードの新しい組み合わせの各々にはK個の予測モードが含まれる。予測モードの新しい組み合わせの各々に対して、予測モードの新しい組み合わせに含まれるK個の予測モードとi番目の候補重み導出モードとを利用してテンプレートを予測して、テンプレートの予測値を取得する。テンプレートの予測値とテンプレートの再構成値とに基づいて、当該予測モードの新しい組み合わせに対応するコストを確定し、それによって、上記形成される複数の予測モードの新しい組み合わせの各々に対応するコストを取得する。同様に、i番目の候補重み導出モードとK個の初期予測モードを利用して現在ブロックを予測して、K個の初期予測モードに対応するコストを確定する。このように、エンコーディング側は、予測モードの新しい組み合わせに対応するコストと、K個の初期予測モードに対応するコストとに基づいて、K個の第1の改善予測モードを得ることができる。例えば、予測モードの新しい組み合わせ1に対応するコストが最小である場合、当該予測モードの新しい組み合わせ1に含まれるK個の予測モードを、K個の第1の改善予測モードとして確定する。当該予測モードの新しい組み合わせ1に少なくとも1つの初期予測モードが含まれる可能性があり、初期予測モードが含まれていない可能性もある。
【0581】
例2:以下のステップS202-B11-1~S202-B11-4により、K個の初期予測モードを改善して、i番目の候補重み導出モードに対応するK個の第1の改善予測モードを得る。
【0582】
S202-B11-1:i番目の候補重み導出モードに基づいて第2のテンプレート重みを確定する。
【0583】
i番目の候補重み導出モードに基づいて第2のテンプレート重みを確定する具体的なプロセスは、以下のテンプレート重みの導出の実施形態の具体的な説明を参照することができ、ここで詳述しない。
【0584】
S202-B11-2:K個の初期予測モードのうちのj番目の初期予測モードに対して、j番目の初期予測モードに対応するM個の第1の候補予測モードを確定する。Mは正の整数であり、jは1からKまでの正の整数である。
【0585】
なお、上記S202-B11-2と上記S202-B11-1とは、実行される順序がない。即ち、上記S202-B11-2は、上記S202-B11-1の後に実行されてもよく、上記S202-B11-1の前に実行されてもよく、又は、上記S202-B11-1と同時に実行されてもよく、本出願の実施形態では、それについては限定されない。
【0586】
当該例では、エンコーディング側は、i番目の候補重み導出モードを利用してK個の初期予測モードの各々を改善して、i番目の候補重み導出モードでの、K個の初期予測モードの各々に対応する第1の改善予測モードを得、即ち、K個の第1の改善予測モードを得る。
【0587】
K個の初期予測モードの各々に対応する第1の改善予測モードを確定するプロセスは同じである。説明を容易にするために、本出願の実施形態では、K個の初期予測モードのうちのj番目の初期予測モードに対応する第1の改善予測モードを確定することを例として説明する。
【0588】
本出願の実施形態において、エンコーディング側は、j番目の初期予測モードに対して、まず、当該j番目の初期予測モードに対応するM個の第1の候補予測モードを確定する。
【0589】
エンコーディング側がj番目の初期予測モードに対応するM個の第1の候補予測モードを確定する方式は、以下の2つのケースを含む。
【0590】
ケース1:j番目の初期予測モードがイントラ予測モードである場合、j番目の初期予測モードに類似するM個のイントラ予測モードを、M個の第1の候補予測モードとして確定する。
【0591】
ケース2:j番目の初期予測モードがインター予測モードである場合、j番目の初期予測モードに基づいて検索を行って、M個の第1動き情報を得る。これらM個の第1動き情報に基づいて、j番目の予測モードに対応するM個の第1の候補予測モードを確定する。
【0592】
いくつかの実施形態において、上記j番目の初期予測モードに基づいて検索を行って、M個の第1動き情報を得ることは、j番目の初期予測モードに基づいて検索を行って、M個のオフセットを得ることと、M個のオフセットに基づいてM個の第1動き情報を得ることと、を含む。
【0593】
S202-B11-3:第2のテンプレート重みに基づいて、M個の第1の候補予測モードの各々によるテンプレートへの予測に対応する第3コストを確定する。
【0594】
上記ケース1又はケース2の方法に従って、j番目の初期予測モードに対応するM個の第1の候補予測モードを確定した後、これらM個の第1の候補予測モードに対応するコストを確定し、次に、コストに基づいて、j番目の初期予測モードに対応する第1の改善予測モードを確定する。説明の便宜上、この場合、第1の候補予測モードに対応するコストを第3コストとして表記する。
【0595】
具体的に、M個の第1の候補予測モードのうちの各々に対して、その第1の候補予測モードを利用して現在ブロックのテンプレートを予測して、予測値を得る。その後、第2のテンプレート重みと当該予測値とに基づいて、当該第1の候補予測モードに対応する、テンプレートに関する第3コストを確定する。
【0596】
以下、M個の第1の候補予測モードのうちの1つの第1の候補予測モードに対応する、テンプレートに関する第3コストを計算することを例として説明する。
【0597】
説明の便宜上、テンプレート内のi番目のサンプルを例として説明する。このi番目のサンプルは、テンプレート内の任意のサンプルであると理解されることができる。即ち、テンプレート内の各サンプルの第3コストを確定するプロセスは同じであり、i番目のサンプルを参照すればいい。具体的に、第1の候補予測モードを利用してテンプレートを予測して、テンプレートの予測値を得る。テンプレートの予測値におけるi番目のサンプルに対応する予測値をi番目の予測値として記し、テンプレートの再構成値におけるi番目のサンプルに対応する再構成値をi番目の再構成値として記す。i番目の予測値と、i番目の再構成値と、第2のテンプレート重みにおけるi番目のサンプルの重みとに基づいて、第1の候補予測モードに対応する、i番目のサンプルの第3コストを確定する。上記方法に基づいて、当該第1の候補予測モードに対応する、テンプレート内の各サンプル又は複数のサンプルの第3コストを確定する。次に、テンプレート内の各サンプル又は複数のサンプルの第3コストに基づいて、第1の候補予測モードに対応する、テンプレートに関する第3コストを確定する。例えば、当該第1の候補予測モードに対応する、テンプレート内のサンプルの第3コストの合計を、当該第1の候補予測モードに対応する、テンプレートに関する第3コストとして確定する。
【0598】
例示的に、上記数1と数2に基づいて、第1の候補予測モードに対応する、テンプレートに関する第3コストを確定することができる。具体的に、上記数1におけるwTemplateValue[x][y] を、第2のテンプレート重みにおけるサンプル(x,y)の対応する重み値に置き換える。
【0599】
上記方法により、M個の第1の候補予測モードの各々に対応する第3コストを確定することができ、次に、以下のS202-B11-4を実行する。
【0600】
S202-B11-4:M個の第1の候補予測モードの各々に対応する第3コストに基づいて、j番目の初期予測モードに対応する改善予測モードを確定する。
【0601】
例えば、M個の第1の候補予測モードのうちの、第3コストが最小である第1の候補予測モードを、j番目の初期予測モードに対応する第1の改善予測モードとして確定する。
【0602】
上記実施形態では、K個の初期予測モードのうちのj番目の初期予測モードに対応する第1の改善予測モードを確定することを例を説明したが、上記説明を参照すれば、K個の初期予測モードの各々に対応する第1の改善予測モードを確定し、i番目の候補重み導出モードでのK個の第1の改善予測モードを得ることができる。
【0603】
S202-B12:i番目の候補重み導出モードとK個の第1の改善予測モードとに基づいて、i番目の候補重み導出モードに対応する第1コストを確定する。
【0604】
例示的に、i番目の候補重み導出モードとK個の第1の改善予測モードとを利用して現在ブロックのテンプレートを予測して、テンプレートの第2予測値を得る。テンプレートの第2予測値とテンプレートの再構成値とに基づいて、i番目の重み導出モードに対応する第1コストを確定する。例えば、i番目の候補重み導出モードに基づいて第2のテンプレート重みを確定し、K個の第1の改善予測モードを利用してテンプレートを予測して、K個の予測値を得る。第2のテンプレート重みを利用してK個の予測値を重み付けして、テンプレートの第2予測値を得る。当該テンプレートの第2予測値とテンプレートの再構成値に基づいて、i番目の重み導出モードに対応する第1コストを確定する。
【0605】
上記はi番目の候補重み導出モードに対応する第1コストを確定することを例とする。N個の候補重み導出モードの各々に対して、上記i番目の候補重み導出モードに対応する第1コストを確定する方式を利用して、N個の候補重み導出モードの各々に対応する第1コストを確定することができ、次に、N個の候補重み導出モードの各々に対応する第1コストに基づいて、現在ブロックの重み導出モードを確定する。
【0606】
例えば、N個の候補重み導出モードのうちの、第1コストが最小である候補重み導出モードを、現在ブロックの重み導出モードとして確定する。
【0607】
別の例として、N個の候補重み導出モードの各々に対応する第1コストに基づいて、N個の候補重み導出モードをソートして、候補重み導出モードのリストを得る。候補重み導出モードのリストにおける重み導出モードインデックスに基づいて、現在ブロックの重み導出モードを確定する。
【0608】
この方式2では、N個の候補重み導出モードの各々に対応するK個の第1の改善予測モードを確定した。それに基づいて、上記S203-Aにおける現在ブロックの重み導出モードに基づいて、K個の調整された予測モードを確定することは、以下のステップを含む。
【0609】
S203-A2:現在ブロックの重み導出モードに対応するK個の第1の改善予測モードを、K個の調整された予測モードとして確定する。
【0610】
この方式2では、予測モードの改善と現在ブロックの重み導出モードの確定が融合されており、即ち、N個の候補重み導出モードに対応する第1コストを確定する中に、各候補重み導出モードに対応するK個の第1の改善予測モードを確定した。そのため、第1コストに基づいて現在ブロックの重み導出モードを確定した後、その現在ブロックの重み導出モードに対応するK個の第1の改善予測モードをK個の調整された予測モードとして確定することができる。次に、現在ブロックの重み導出モードとこれらのK個の調整された予測モードを利用して現在ブロックを予測して、現在ブロックの予測値を得ることができる。
【0611】
この方式2では、N個の候補重み導出モードのうちの各々に対して、各候補重み導出モードに対応するK個の第1の改善予測モードを確定する。次に、各候補重み導出モードとそれに対応するK個の第1の改善予測モードに基づいてテンプレートを予測し、第1コストを確定する。当該第1コストに基づいて、N個の候補重み導出モードから現在ブロックの重み導出モードをより精確的に確定することができる。
【0612】
本出願の実施形態において、エンコーディング側は、上記方式1又は方式2を利用して、現在ブロックの重み導出モードとK個の調整された予測モードを確定することに加えて、以下の方式3によって、現在ブロックの重み導出モードとK個の調整された予測モードを確定することもできる。
【0613】
方式3:計算複雑度を低減するために、初期予測モードを改善する中に、各候補重み導出モードを利用して初期予測モードを改善するのではなく、簡単なP個のサブテンプレートを利用して、例えば、現在ブロックの全テンプレート、左側テンプレート、上側テンプレートを利用して、初期予測モードを改善する。それによって、初期予測モードの改善の計算複雑度を低減する。この場合、S202-Bにおけるi番目の候補重み導出モードとK個の初期予測モードとに基づいて、i番目の候補重み導出モードに対応する第1コストを確定することは、以下のステップS202-B21~S202-B23を含む。
【0614】
S202-B21:K個の初期予測モードのうちのj番目の初期予測モードに対して、j番目の初期予測モードに対応する、P個のサブテンプレートに関する第2の改善予測モードを確定する。Pは正の整数であり、jは1からKまでの正の整数である。
【0615】
この方式3において、エンコーディング側は、P個のサブテンプレートを利用してK個の初期予測モードを改善して、K個の初期予測モードの各々に対応する、P個のサブテンプレートに関する第2の改善予測モードを得る。N個の候補重み導出モードのうちの各々に対して、候補重み導出モードとP個のサブテンプレートとの対応関係にに基づいて、K個の初期予測モードの各々に対応する、P個のサブテンプレートに関する第2の改善予測モードから、候補重み導出モードに対応するK個の第2の改善予測モードを得る。次に、候補重み導出モードとそれに対応するK個の第2の改善予測モードに基づいて、現在ブロックのテンプレートを予測して、候補重み導出モードに対応する第1コストを確定する。最後に、N個の候補重み導出モードの各々に対応する第1コストに基づいて、現在ブロックの重み導出モードを確定する。方式3では、候補予測モードを単独に利用してK個の初期予測モードを改善するたことがなくなり、初期予測モードの改善の複雑度が低減される。
【0616】
例示的に、P個のサブテンプレートは、現在ブロックの左側テンプレートTM_L、上側テンプレートTM_A、及び全テンプレートTM_ALのうちの少なくとも1つを含む。全テンプレートTM_ALは、左側テンプレートTM_Lと上側テンプレートTM_Aを含む。
【0617】
本出願の実施形態において、エンコーディング側がK個の初期予測モードの各々に対応する、P個のサブテンプレートに関する第2の改善予測モードを確定するプロセスは同じである。説明を簡単にするために、本出願の実施形態では、K個の初期予測モードのうちのj番目の初期予測モードに対応する、P個のサブテンプレートに関する第2の改善予測モードを確定することを例として説明する。
【0618】
一例では、P個のサブテンプレートが、現在ブロックの左側テンプレートTM_L、上側テンプレートTM_A、及び全テンプレートTM_ALを含むと仮定すると、j番目の初期予測モードに対応する、P個のサブテンプレートに関する第2の改善予測モードを確定することは、j番目の初期予測モードに対応する、左側テンプレートTM_Lに関する第2の改善予測モードを確定することと、j番目の初期予測モードに対応する、上側テンプレートTM_Aに関する第2の改善予測モードを確定することと、j番目の初期予測モードに対応する、全テンプレートTM_ALに関する第2の改善予測モードを確定することとを含む。即ち、当該ステップにおいて、エンコーディング側は、j番目の初期予測モードに対応する、P個のサブテンプレートの各々に関する第2の改善予測モードを確定する。
【0619】
本出願の実施形態は、j番目の初期予測モードに対応する、P個のサブテンプレートに関する第2の改善予測モードを確定する具体的な形式を限定しない。
【0620】
いくつかの実施形態において、S202-B21は、以下のステップS202-B21-1~S202-B21-3を含む。
【0621】
S202-B21-1:j番目の初期予測モードに対応するM個の第1の候補予測モードを確定する。Mは1より大きい正の整数である。
【0622】
エンコーディング側がj番目の初期予測モードに対応するM個の第1の候補予測モードを確定する方式は、以下の2つのケースを含む。
【0623】
ケース1:j番目の初期予測モードがイントラ予測モードである場合、j番目の初期予測モードに類似するM個のイントラ予測モードを、M個の第1の候補予測モードとして確定する。
【0624】
ケース2:j番目の初期予測モードがインター予測モードである場合、j番目の初期予測モードに基づいて検索を行って、M個の第1動き情報を得る。これらM個の第1動き情報に基づいて、j番目の予測モードに対応するM個の第1の候補予測モードを確定する。
【0625】
いくつかの実施形態では、上記j番目の初期予測モードに基づいて検索を行って、M個の第1動き情報を得ることは、i番目の初期予測モードに基づいて検索を行って、M個のオフセットを得ることと、M個のオフセットに基づいて、M個の第1動き情報を得ることと、を含む。
【0626】
S202-B21-2:P個のサブテンプレートのうちのp番目のサブテンプレートに対して、M個の第1の候補予測モードの各々によるp番目のサブテンプレートへの予測に対応する第4コストを確定する。pは1からPまでの正の整数である。
【0627】
エンコーディング側は、上記ケース1又はケース2の方法に従って、j番目の初期予測モードに対応するM個の第1の候補予測モードを確定した後、これらM個の第1の候補予測モードに対応する、P個のサブテンプレートの各々に関するコストを確定し、次に、コストに基づいて、j番目の初期予測モードに対応する、P個のサブテンプレートの各々に関する第2の改善予測モードを確定する。説明の便宜上、この場合、第1の候補予測モードに対応するコストを第4コストとして表記する。
【0628】
具体的に、P個のサブテンプレートのうちのp番目のサブテンプレートを例として、M個の第1の候補予測モードのうちの任意の第1の候補予測モードに対して、その第1の候補予測モードを利用してp番目のサブテンプレートを予測して、p番目のサブテンプレートの予測値を得る。その後、p番目のサブテンプレートの予測値とp番目のサブテンプレートの再構成値とに基づいて、第1の候補予測モードに対応する、p番目のサブテンプレートに関する第4コストを確定する。当該方法を参照すると、M個の第1の候補予測モードの各々に対応する、P個のサブテンプレートの各々に関する第4コストを確定することができる。
【0629】
例として、j番目の初期予測モードは、第1の候補予測モード1、第1の候補予測モード2、及び第1の候補予測モード3と記される3つの第1の候補予測モードに対応すると仮定し、P個のサブテンプレートは、左側テンプレートTM_L、上側テンプレートTM_A、及び全テンプレートTM_ALを含むと仮定する。まず、左側テンプレートTM_Lに対して、第1の候補予測モード1、第1の候補予測モード2、及び第1の候補予測モード3のそれぞれを利用して、左側テンプレートTM_Lを予測して、予測値1、予測値2、及び予測値3をそれぞれ得る。次に、予測値1と左側テンプレートTM_Lの再構成値に基づいて、第1の候補予測モード1に対応する、左側テンプレートTM_Lに関する第4コストを確定する。予測値2と左側テンプレートTM_Lの再構成値に基づいて、第1の候補予測モード2に対応する、左側テンプレートTM_Lに関する第4コストを確定する。予測値3と左側テンプレートTM_Lの再構成値に基づいて、第1の候補予測モード3に対応する、左側テンプレートTM_Lに関する第4コストを確定する。
【0630】
同様に、上側テンプレートTM_Aに対して、第1の候補予測モード1、第1の候補予測モード2、及び第1の候補予測モード3のそれぞれを利用して、上側テンプレートTM_Aを予測して、予測値4、予測値5、及び予測値6をそれぞれ得る。次に、予測値4と上側テンプレートTM_Aの再構成値に基づいて、第1の候補予測モード1に対応する、上側テンプレートTM_Aに関する第4コストを確定する。予測値5と上側テンプレートTM_Aの再構成値に基づいて、第1の候補予測モード2に対応する、上側テンプレートTM_Aに関する第4コストを確定する。予測値6と上側テンプレートTM_Aの再構成値に基づいて、第1の候補予測モード3に対応する、上側テンプレートTM_Aに関する第4コストを確定する。
【0631】
同様に、全テンプレートTM_ALに対して、第1の候補予測モード1、第1の候補予測モード2、及び第1の候補予測モード3のそれぞれを利用して、全テンプレートTM_ALを予測して、予測値7、予測値8、及び予測値9をそれぞれ得る。次に、予測値7と全テンプレートTM_ALの再構成値に基づいて、第1の候補予測モード1に対応する、全テンプレートTM_ALに関する第4コストを確定する。予測値8と全テンプレートTM_ALの再構成値に基づいて、第1の候補予測モード2に対応する、全テンプレートTM_ALに関する第4コストを確定する。予測値9と全テンプレートTM_ALの再構成値に基づいて、第1の候補予測モード3に対応する、全テンプレートTM_ALに関する第4コストを確定する。
【0632】
上記方法によって、j番目の初期予測モードに対応するM個の第1の候補予測モードの各々に対応する、P個のサブテンプレートの各々に関する第4コストを確定する。次に、S202-B21-3を実行する。
【0633】
S202-B21-3:M個の第1の候補予測モードの各々に対応する、p番目のサブテンプレートに関する第4コストに基づいて、j番目の初期予測モードに対応する、p番目のサブテンプレートに関する第2の改善予測モードを確定する。
【0634】
例えば、M個の第1の候補予測モードのうちの、p番目のサブテンプレートに関する第4コストが最小である第1の候補予測モードを、j番目の初期予測モードに対応する、p番目のサブテンプレートに関する第2の改善予測モードとして確定する。
【0635】
引き続き上記の例を参照して、j番目の初期予測モードは、第1の候補予測モード1、第1の候補予測モード2、及び第1の候補予測モード3と記される3つの第1の候補予測モードに対応すると仮定し、P個のサブテンプレートは、左側テンプレートTM_L、上側テンプレートTM_A、及び全テンプレートTM_ALを含むと仮定する。左側テンプレートTM_Lに対して、第1の候補予測モード1に対応する、上側テンプレートTM_Aに関する第4コストが、第1の候補予測モード2に対応する、上側テンプレートTM_Aに関する第4コストより小さく、且つ、第1の候補予測モード2に対応する、上側テンプレートTM_Aに関する第4コストが、第1の候補予測モード3に対応する、上側テンプレートTM_Aに関する第4コストより小さいと仮定すると、第1の候補予測モード1を、j番目の初期予測モードに対応する、左側テンプレートTM_Lに関する第2の改善予測モードとして確定することができる。
【0636】
同様に、上側テンプレートTM_Aに対して、第1の候補予測モード2に対応する、上側テンプレートTM_Aに関する第4コストが、第1の候補予測モード1に対応する、上側テンプレートTM_Aに関する第4コストより小さく、且つ、第1の候補予測モード1に対応する、上側テンプレートTM_Aに関する第4コストが、第1の候補予測モード3に対応する、上側テンプレートTM_Aに関する第4コストより小さいと仮定すると、第1の候補予測モード2を、j番目の初期予測モードに対応する、上側テンプレートTM_Aに関する第2の改善予測モードとして確定することができる。
【0637】
同様に、全テンプレートTM_ALに対して、第1の候補予測モード2に対応する、全テンプレートTM_ALに関する第4コストが、第1の候補予測モード1に対応する、全テンプレートTM_ALに関する第4コストより小さく、且つ、第1の候補予測モード1に対応する、全テンプレートTM_ALに関する第4コストが、第1の候補予測モード3に対応する、全テンプレートTM_ALに関する第4コストより小さいと仮定すると、第1の候補予測モード2を、j番目の初期予測モードに対応する、全テンプレートTM_ALに関する第2の改善予測モードとして確定することができる。
【0638】
上記方法によって、K個の初期予測モードの各々に対応する、P個のサブテンプレートの各々に関する第2の改善予測モードを確定することができる。
【0639】
例示的に、K=2であると仮定し、即ち、2つの初期予測モードをそれぞれ第1予測モード及び第2予測モードと記し、P個のサブテンプレートが左側テンプレートTM_L、上側テンプレートTM_A、及び全テンプレートTM_ALであると仮定する。上記方法に従って、第1予測モード及び第2予測モードの各々に対応する、左側テンプレートTM_L、上側テンプレートTM_A、及び全テンプレートの各々に関する第2の改善予測モードを確定し、表6に示す。
【0640】
S202-B22:i番目の候補重み導出モードに基づいて、K個の初期予測モードの各々に対応する、P個のサブテンプレートに関する第2の改善予測モードから、i番目の候補重み導出モードに対応するK個の第2の改善予測モードを確定する。
【0641】
具体的に、N個の候補重み導出モードのうちのi番目の候補重み導出モードに対して、当該i番目の候補重み導出モードに対応するサブテンプレートに基づいて、K個の初期予測モードの各々に対応する、P個のサブテンプレートに関する第2の改善予測モードから、当該i番目の候補重み導出モードに対応するK個の第2の改善予測モードを確定する。
【0642】
例えば、K=2であることを例として、i番目の候補重み導出モードに対応するサブテンプレートは、上側テンプレートTM_Aと全テンプレートTM_ALである。上記表6を参照すると、第1予測モードに対応する、上側テンプレートTM_Aに関する第2の改善予測モードが第2の改善予測モード12であり、第2予測モードに対応する、全テンプレートTM_ALに関する第2の改善予測モードが第2の改善予測モード23であると確定できる。それによって、i番目の候補重み導出モードに対応する2つの第2の改善予測モードがそれぞれ、第2の改善予測モード12及び第2の改善予測モード23であると確定できる。
【0643】
一つの可能な実施形態において、エンコーディング側は、i番目の候補重み導出モードに対応する分割角度を確定し、分割角度と予測モードに対応するテンプレートとの対応関係(上記表5を具体的に参照する)に基づいて、K個の初期予測モードの各々に対応する、P個のサブテンプレートに関する第2の改善予測モードから、i番目の候補重み導出モードに対応するK個の第2の改善予測モードを確定する。
【0644】
例示的に、K=2であることを例として、上記表2に基づいて、i番目の候補重み導出モードに対応する角度インデックスを確定する。例えば、i番目の候補重み導出モードが27である場合、対応する角度インデックスは12である。上記表5に示された分割角度と予測モードに対応するテンプレートとの対応関係において、その角度インデックスでの、第1予測モードに対応するテンプレートと第2予測モードに対応するテンプレートとをクエリして、第1予測モードに対応するテンプレートと第2予測モードに対応するテンプレートとに基づいて、当該i番目の候補重み導出モードに対応する2つの第2の改善予測モードを上記表6から確定する。例えば、当該角度インデックスでの、第1予測モードに対応するテンプレートが上側テンプレートTM_Aであり、第2予測モードに対応するテンプレートが全テンプレートTM_ALであることを表5からクエリした。そして、上記表6に基づいて、第1予測モードに対応する第2の改善予測モードにおける上側テンプレートTM_Aに対応する第2の改善予測モード12と、第2予測モードに対応する第2の改善予測モードにおける全テンプレートTM_ALに対応する第2の改善予測モード23とを、i番目の候補重み導出モードに対応する2つの第2の改善予測モードとして確定する。
【0645】
上記方法により、N個の候補重み導出モードのうちのi番目の候補重み導出モードに対応するK個の第2の改善予測モードを確定し、次に、以下のステップS202-B23を実行する。
【0646】
S202-B23:i番目の候補重み導出モードとi番目の候補重み導出モードに対応するK個の第2の改善予測モードとに基づいて、i番目の候補重み導出モードに対応する第1コストを確定する。
【0647】
具体的に、i番目の候補重み導出モードとK個の第2の改善予測モードとを利用して現在ブロックのテンプレートを予測して、テンプレートの第3予測値を得、テンプレートの第3予測値とテンプレートの再構成値とに基づいて、i番目の重み導出モードに対応する第1コストを確定する。例えば、i番目の候補重み導出モードに基づいてテンプレート重みを確定し、K個の第2の改善予測モードをそれぞれ利用して現在ブロックのテンプレートを予測して、K個の予測値を得る。確定されたテンプレート重みを利用して当該K個の予測値を重み付けして、i番目の候補重み導出モードに対応するテンプレートの予測値を取得する。さらに、テンプレートの予測値とテンプレートの再構成値に基づいて、当該i番目の候補重み導出モードに対応する第1コストを確定する。
【0648】
上記は、i番目の候補重み導出モードに対応する第1コストの確定を例とした。N個の候補重み導出モードの各々に対して、上記i番目の重み導出モードに対応する第1コストを確定する方式を利用して、N個の候補重み導出モードの各々に対応する第1コストを確定することができ、次に、N個の候補重み導出モードの各々に対応する第1コストに基づいて、現在ブロックの重み導出モードを確定する。
【0649】
例えば、N個の候補重み導出モードのうちの、第1コストが最小である候補重み導出モードを、現在ブロックの重み導出モードとして確定する。
【0650】
別の例として、N個の候補重み導出モードの各々に対応する第1コストに基づいて、N個の候補重み導出モードをソートして、候補重み導出モードのリストを得る。候補重み導出モードのリストに基づいて、現在ブロックの重み導出モードを確定する。
【0651】
この方式3では、P個のサブテンプレートを利用してK個の初期予測モードを改善して、K個の初期予測モードの各々に対応する、P個のサブテンプレートの各々に関する第2の改善予測モードを得る。このように、後続でN個の候補重み導出モードの各々に対応する第1コストを確定する際に、異なる候補重み導出モードに応じてK個の初期予測モードをそれぞれ改善するのではなく、確定されたK個の初期予測モードの各々に対応する、P個のサブテンプレートの各々に関する第2の改善予測モードから、各候補重み導出モードに対応するK個の第2の改善予測モードを一括でクエリする。それによって、初期予測モードを改善する複雑度を軽減し、各候補重み導出モードに対応する第1コストを計算する速度を速め、N個の候補重み導出モードから現在ブロックの重み導出モードを迅速に確定することができる。
【0652】
当該方式3では、P個のサブテンプレートに基づいて、N個の候補重み導出モードの各々に対応するK個の第2の改善予測モードを確定した。それに基づいて、上記S203-Aにおける現在ブロックの重み導出モードに基づいて、K個の調整された予測モードを確定する方式は以下を含むが、それらに限定されない。
【0653】
方式1:現在ブロックの重み導出モードに対応するK個の第2の改善予測モードを、K個の調整された予測モードとして確定する。
【0654】
上記方式3では、N個の候補重み導出モードの各々に対応する第1コストを確定する中に、各候補重み導出モードに対応するK個の第2の改善予測モードを確定した。この場合、第1コストに基づいて現在ブロックの重み導出モードを確定した後、当該現在ブロックの重み導出モードに対応するK個の第2の改善予測モードをK個の調整された予測モードとして直接に確定することができる。
【0655】
方式2:K個の調整された予測モードの精度をさらに向上させるために、現在ブロックの重み導出モードに対応するK個の第2の改善予測モードを改善して、K個の調整された予測モードを得る。この場合、上記S203-Aは、以下のステップを含む。
【0656】
S203-A3:現在ブロックの重み導出モードに基づいてK個の第2の改善予測モードを改善して、K個の調整された予測モードを得る。
【0657】
S203-A3の実施形態は、以下のいくつかの例を含むが、それらに限定されない。
【0658】
例1:現在ブロックの重み導出モードに関する少なくとも1つの予測モードを確定し、この少なくとも1つの予測モードは、予測角度が現在ブロックの重み導出モードの境界線に平行又はほぼ平行である予測モード、又は、予測角度が現在ブロックの重み導出モードの境界面に対して垂直又はほぼ垂直である予測モードであってもよい。K個の第2の改善予測モードのうちの少なくとも1つの第2の改善予測モードは、現在ブロックの重み導出モードに関する少なくとも1つの予測モードのうちの予測モードで置き換えられ、複数の予測モードの新しい組み合わせが形成される。予測モードの新しい組み合わせの各々にはK個の予測モードが含まれる。予測モードの新しい組み合わせの各々に対して、予測モードの新しい組み合わせに含まれるK個の予測モードと現在ブロックの重み導出モードとを利用してテンプレートを予測して、テンプレートの予測値を取得する。テンプレートの予測値とテンプレートの再構成値とに基づいて、当該予測モードの新しい組み合わせに対応するコストを確定し、それによって、上記形成される複数の予測モードの新しい組み合わせの各々に対応するコストを取得する。同様に、現在ブロックの重み導出モードとK個の第2の改善予測モードを利用して現在ブロックを予測して、K個の第2の改善予測モードに対応するコストを確定する。このように、エンコーディング側は、予測モードの新しい組み合わせに対応するコストと、K個の第2の改善予測モードに対応するコストとに基づいて、K個の調整された予測モードを得ることができる。例えば、予測モードの新しい組み合わせ1に対応するコストが最小である場合、当該予測モードの新しい組み合わせ1に含まれるK個の予測モードを、K個の調整された予測モードとして確定する。当該予測モードの新しい組み合わせ1に少なくとも1つの初期予測モードが含まれる可能性があり、初期予測モードが含まれていない可能性もある。
【0659】
例2:以下のステップS203-A31~S203-A34により、K個の第2予測モードを改善して、K個の調整された予測モードを得る。
【0660】
S203-A31:現在ブロックの重み導出モードに基づいて、第1のテンプレート重みを確定する。
【0661】
現在ブロックの重み導出モードに基づいて、第1のテンプレート重みを確定する具体的なプロセスについては、以下のテンプレート重みの導出の実施形態の具体的な説明を参照することができ、ここで詳述しない。
【0662】
S203-A32:K個の第2の改善予測モードのうちのk番目の第2の改善予測モードに対して、k番目の第2の改善予測モードに対応するP個の第2の候補予測モードを確定する。Pは1より大きい正の整数であり、kは1からKまでの正の整数である。
【0663】
なお、上記S203-A32と上記S203-A31とは、実行される順序がない。即ち、上記S203-A32は、上記S203-A31の後に実行されてもよく、上記S203-A31の前に実行されてもよく、又は、上記S203-A31と同時に実行されてもよく、本出願の実施形態では、それについては限定されない。
【0664】
当該例では、エンコーディング側は、現在ブロックの重み導出モードを利用してK個の第2の改善予測モードの各々を改善して、K個の第2の改善予測モードの各々に対応する調整された予測モードを得、即ち、K個の調整された予測モードを得る。
【0665】
K個の第2の改善予測モードの各々に対応する調整された予測モードを確定するプロセスは同じである。説明を容易にするために、本出願の実施形態では、K個の第2の改善予測モードのうちのk番目の第2の改善予測モードに対応する調整された予測モードを確定することを例として説明する。
【0666】
本出願の実施形態において、エンコーディング側は、k番目の第2の改善予測モードに対して、まず、当該k番目の第2の改善予測モードに対応するP個の第2の候補予測モードを確定する。
【0667】
エンコーディング側は、k番目の第2の改善予測モードに対応するP個の第2の候補予測モードを確定する方式は、以下の2つのケースを含む。
【0668】
ケース1:k番目の第2の改善予測モードがイントラ予測モードである場合、k番目の第2の改善予測モードに類似するP個のイントラ予測モードを、P個の第2の候補予測モードとして確定する。例えば、k番目の第2の改善予測モードが角度予測モードである場合、k番目の第2の改善予測モードの角度に類似する(又は相似する)P個の角度予測モードを、k番目の第2の改善予測モードに対応するP個の第2の候補予測モードとして確定する。
【0669】
ケース2:k番目の第2の改善予測モードがインター予測モードである場合、k番目の第2の改善予測モードに基づいて検索を行って、P個の第2動き情報を得る。これらP個の第2動き情報に基づいて、k番目の第2の改善予測モードに対応するP個の第2の候補予測モードを得る。例えば、k番目の第2の改善予測モードに対して、その動きベクトルが(xInit,yInit)であり、水平方向でxInit-sRからxInit+sRまで、垂直方向でyInit-sRからyInit+sRまでの矩形領域などの検索範囲が設定され、sRは2、4、8などであってもよい。当該矩形領域内の各動きベクトルと、k番目の第2の改善予測モードの他の情報、例えば、参照画像インデックス及び予測リストフラグなどとが組み合わせられて動き情報が確定され、さらに予測モードが確定される。それによって、k番目の第2の改善予測モードに対応するP個の第2の候補予測モードを得ることができる。
【0670】
いくつかの実施形態において、上記k番目の第2の改善予測モードに基づいて検索を行って、P個の第2動き情報を得ることは、k番目の第2の改善予測モードに基づいて検索を行って、P個のオフセットを得ることと、P個のオフセットに基づいてP個の第2動き情報を得ることと、を含む。
【0671】
S203-A33:第1のテンプレート重みに基づいて、P個の第2の候補予測モードの各々によるテンプレートへの予測に対応する第5コストを確定する。
【0672】
上記ケース1又はケース2の方法に従って、k番目の第2の改善予測モードに対応するP個の第2の候補予測モードを確定した後、これらP個の第2の候補予測モードに対応するコストを確定し、次に、コストに基づいて、k番目の第2の改善予測モードに対応する調整された予測モードを確定する。説明の便宜上、第2の候補予測モードに対応するコストを第5コストとして表記する。
【0673】
具体的に、P個の第2の候補予測モードのうちの各々に対して、その第2の候補予測モードを利用して現在ブロックのテンプレートを予測して、予測値を得る。その後、第1のテンプレート重みと当該予測値とに基づいて、当該第1の候補予測モードに対応する、テンプレートに関する第5コストを確定する。テンプレート内の1つのサンプルを例として、当該第2の候補予測モードを利用して当該サンプルを予測して、当該サンプルの予測値を得る。第1のテンプレート重みから当該サンプルに対応するテンプレート重みを確定し、当該サンプルの予測値とテンプレート重みとの積を、当該第2の候補予測モードでの当該サンプルの予測値として確定する。この方式を参照すると、当該第2の候補予測モードでのテンプレート内のの各サンプルの予測値を得ることができる。これらの予測値は当該第2の候補予測モードに対応するテンプレートの予測値を形成する。テンプレートの予測値とテンプレートの再構成値とに基づいて、当該第2の候補予測モードに対応する第5コストを確定する。
【0674】
上記方法により、P個の第2の候補予測モードの各々に対応する第5コストを確定し、次に、以下のステップS203-A14を実行する。
【0675】
S203-A34:P個の第2の候補予測モードの各々に対応する第5コストに基づいて、k番目の第2の改善予測モードに対応する調整された予測モードを確定する。
【0676】
例えば、P個の第2の候補予測モードのうちの、第5コストが最小である第2の候補予測モードを、k番目の第2の改善予測モードに対応する調整された予測モードとして確定する。
【0677】
上記実施形態では、K個の第2の改善予測モードのうちのk番目の第2の改善予測モードに対応する調整された予測モードを確定することを例を説明したが、上記説明を参照すれば、K個の第2の改善予測モードの各々に対応する調整された予測モードを確定し、K個の調整された予測モードを得ることができる。
【0678】
この方式2において、エンコーディング側は、まず、P個のサブテンプレートを利用してK個の初期予測モードを改善して、現在ブロックの重み導出モードに対応するK個の第2の改善予測モードを得、次に、現在ブロックの重み導出モードを利用して、現在ブロックの重み導出モードに対応するK個の第2の改善予測モードを改善して、精確なK個の調整された予測モードを得る。それによって、これらK個の調整された予測モードと現在ブロックの重み導出モードを利用して現在ブロックを予測する場合、予測精度をさらに向上させることができる。
【0679】
本出願の実施形態では、上記方法によって、現在ブロックの重み導出モードとK個の調整された予測モードを確定することができ、その後、現在ブロックの重み導出モードとK個の調整された予測モードを利用して、現在ブロックを予測して、現在ブロックの予測値を得る。
【0680】
本出願において、現在ブロックの重み導出モードとK個の調整された予測モードに基づいて、現在ブロックの予測値を確定する方式は、以下のいくつかの方式を含むが、それらに限定されない。
【0681】
方式1:上記現在ブロックの重み導出モードに基づいて第1のテンプレート重みを確定する中に、現在ブロックの重み導出モーに基づいて第1のテンプレート重みを確定したが、現在ブロック内のサンプルに対応する予測値の重みを確定していない。この場合、上記S203-Bは以下のステップを含む。
S203-B11:K個の調整された予測モードに基づいて、K個の予測値を確定する。
S203-B12:現在ブロックの重み導出モードに基づいて、予測値の重みを確定する。
S203-B13:K個の予測値及び予測値の重みに基づいて、現在ブロックの予測値を確定する。
【0682】
なお、本出願では、現在ブロックの重み導出モードは、現在ブロックに用いられる予測値の重みを確定するために用いられる。具体的に、現在ブロックの重み導出モードは、予測値の重みを導出するモードであることができる。所定の長さ及び幅を有するブロックに対して、重み導出モードごとに1つの予測値の重み行列を導出することができる。同じサイズを有するブロックに対して、異なる重み導出モードによって導出される予測値の重み行列が異なる。
【0683】
理解できるように、本出願の実施形態において、エンコーディング側はK個の調整された予測モードと予測値の重みに基づいて現在ブロックの予測値を確定する中に、まず、K個の調整された予測モードに基づいてK個の予測値を確定し、次に、予測値の重みを利用してK個の予測値に対して重み付け平均計算を行って、最終的に現在ブロックの予測値を得ることができる。
【0684】
この方式1では、現在ブロックの重みの導出モードに基づいて第1のテンプレート重みを確定することと、現在ブロックの重みの導出モードに基づいて予測値の重みを確定することとは、互いに干渉しない2つの独立したプロセスである。
【0685】
いくつかの実施形態では、本出願は、以下の方式2を利用して現在ブロックの予測値を確定することもできる。
【0686】
方式2:上記第1のテンプレート重みを確定する中に、現在ブロックの重み導出モードに基づいて、テンプレート領域と現在ブロックとからなるマージ領域内のサンプルの重みを確定する。この場合、上記S203-Bは以下のステップを含む。
S203-B21:K個の調整された予測モードに基づいて、K個の予測値を確定する。
S203-B22:マージ領域内のサンプルの重みに基づいて、K個の予測値の重みを確定する。
S203-B23:K個の予測値及びK個の予測値の重みに基づいて、現在ブロックの予測値を確定する。
【0687】
この方式2では、重み導出中に、現在ブロックの重み導出モードに基づいて、マージ領域内のサンプルの重みを導出する。当該マージ領域は現在ブロックと現在ブロックのテンプレート領域を含む。次に、マージ領域内の現在ブロックに対応する重みを予測値の重みとして確定し、マージ領域内のテンプレート領域に対応する重みを第1のテンプレート重みとして確定する。即ち、この方式2では、テンプレート領域と現在ブロックを一つの全体の領域とすることで、第1のテンプレート重みと予測値の重みを1つのステップで導出することができ、重み導出のステップを減らし、予測効果を向上させることができる。
【0688】
いくつかの実施形態において、上記予測プロセスはサンプルごとに行われ、それに応じて、上記重みもサンプルに対応する重みである。この場合、現在ブロックを予測するとき、K個の調整された予測モードの各々を利用して現在ブロック内のあるサンプルAを予測して、K個の調整された予測モードでの、サンプルAのK個の予測値を得る。現在ブロックの重み導出モードに基づいてサンプルAのK個の予測値の重みを確定し、これらK個の予測値を重み付けして、サンプルAの最終の予測値を得る。現在ブロック内の各サンプルに対して上記ステップを実行することで、現在ブロック内の各サンプルの予測値を得ることができる。現在ブロック内の各サンプルの予測値は現在ブロックの予測値を構成する。K=2であることを例として、第1予測モードを利用して現在ブロック内のあるサンプルAを予測して、当該サンプルAの第1予測値を得、第2予測モードを利用して当該サンプルAを予測して、当該サンプルAの第2予測値を得、サンプルAに対応する予測値重みに基づいて、第1予測値と第2予測値を重み付けして、サンプルAの予測値を得る。
【0689】
K=2であることを例として、第1予測モードと第2予測モードがいずれもイントラ予測モードである場合、第1のイントラ予測モードを利用して予測を行って第1予測値を得、第2のイントラ予測モードを利用して予測を行って第2予測値を得、予測値の重みに基づいて第1予測値と第2予測値を重み付けして、現在ブロックの予測値を得る。例えば、第1のイントラ予測モードを利用してサンプルAを予測して、サンプルAの第1予測値を得、第2のイントラ予測モードを利用してサンプルAを予測して、サンプルAの第2予測値を得、サンプルAに対応する予測値の重みに基づいて、第1予測値と第2予測値を重み付けして、サンプルAの予測値を得る。
【0690】
いくつかの実施形態において、K個の調整された予測モードのうちのj番目の調整された予測モードがインター予測モードである場合、上記S203-BにおけるK個の調整された予測モードと現在ブロックの重み導出モードとに基づいて、現在ブロックの予測値を確定することは以下のステップを含む。
S203-B31:j番目の調整された予測モードに基づいて、動き情報を確定する。
S203-B32:動き情報に基づいてj番目の予測値を確定する。
S203-B33:K個の調整された予測モードのうちのj番目の調整された予測モード以外の予測モードに基づいて、(K-1)個の予測値を確定する。
S203-B34:現在ブロックの重み導出モードに基づいて、K個の予測値の重みを確定する。
S203-B35:j番目の予測値、(K-1)個の予測値、及び予測値の重みに基づいて、現在ブロックの予測値を確定する。
【0691】
K=2であることを例として、第1予測モードがイントラ予測モードであり、第2予測モードがインター予測モードである場合、イントラ予測モードを利用して予測を行って、第1予測値を取得し、インター予測モードを利用して予測を行って、第2予測値を取得し、予測値の重みに基づいて第1予測値と第2予測値を重み付けして、現在ブロックの予測値を取得する。この例では、イントラ予測モードを利用して、現在ブロック内の各サンプルを予測して、現在ブロック内の各サンプルの予測値を取得する。現在ブロック内の各サンプルの予測値は、現在ブロックの第1予測値を構成する。インター予測モードを利用して動き情報を確定し、当該動き情報に基づいて、現在ブロックの最適なマッチングブロックを確定し、当該最適なマッチングブロックを現在ブロックの第2予測値として確定する。現在ブロック内の各サンプルの予測値の重みを利用して、現在ブロックの第1予測値と第2予測値に対してサンプルごとに重み付け演算を実行して、現在ブロックの予測値を得る。例えば、現在ブロック内のサンプルAに対して、サンプルAの予測値の重みに基づいて、現在ブロックの第1予測値におけるサンプルAに対応する第1予測値と、現在ブロックの第2予測値におけるサンプルAに対応する第2予測値とを重み付けして、サンプルAの予測値を得る。
【0692】
いくつかの実施形態では、Kが2より大きい場合、現在ブロックの重み導出モードに基づいてK個の調整された予測モードのうちの任意の2つに対応する予測値の重みを確定することができる。K個の調整された予測モードのうちの他の調整された予測モードに対応する予測値の重みは、予め設定された値であることができる。例えば、K=3である場合、第1予測モードに対応する予測値の重み及び第2予測モードに対応する予測値の重みは、現在ブロックの重み導出モードに基づいて導出され、第3予測モードに対応する予測値の重みは、予め設定された値である。いくつかの実施形態において、K個の調整された予測モードに対応する予測値の総重みが固定されている場合、例えば8である場合、予め設定された重みの割合に基づいて、K個の調整された予測モードの各々に対応する予測値の重みを確定することができる。第3予測モードに対応する予測値の重みが全体の予測値の総重みの1/4を占めると仮定すると、第3予測モードに対応する予測値の重みが2であると確定することができ、予測値の総重みにおける残りの3/4は第1予測モードと第2予測モードに割り当てられる。例示的に、現在ブロックの重み導出モードに基づいて導出される第1予測モードに対応する予測値の重みが3である場合、第1予測モードに対応する予測値の重みは(3/4)*3であり、第2予測モードに対応する予測値の重みは(3/4)*5であると確定する。
【0693】
エンコーディング側は上記方法に基づいて、現在ブロックの予測値を確定し、次に、現在ブロックと予測値との差を現在ブロックの残差値として確定し、現在ブロックの残差値を変換して変換係数を取得し、変換係数を量子化して量子化係数を取得し、量子化係数をエンコードして、ビットストリームを取得する。
【0694】
本出願の実施形態に係る予測方法では、エンコーディング側はK個の初期予測モードを確定し、K個の初期予測モードに基づいて現在ブロックの重み導出モードを確定し、現在ブロックの重み導出モードに基づいて、現在ブロックの予測値を確定する。即ち、本出願では、K個の初期予測モードに基づいて、現在ブロックの重み導出モードを確定し、それによって、重み導出モードの確定方式を豊かにする。また、本出願におけるエンコーディング側はビットストリームに重み導出モードのインデックスを伝送しなくてもよい。それによって、符号語を節約し、コーディングコストを削減することができる。
【0695】
なお、
図14~
図19は本出願の例示にすぎず、本出願を限定するものであると理解されるべきではない。
【0696】
以上、添付図面を参照しながら本出願の好適な実施形態について詳細に説明したが、本出願は上記実施形態の詳細な内容に限定されるものではなく、本出願の技術的思想の範囲内において、本出願の技術案に様々な簡単な変更を加えることが可能であり、それらの簡単な変更はいずれも本出願の保護範囲に属する。例えば、上記具体的な実施形態で述べられた各具体的な技術的特徴は、矛盾のない場合、いかなる適当な手段により組み合わせてもよく、不要な重複を避けるために、本出願では様々な可能な組合せについて改めて説明しない。また、例えば、本出願の様々な異なる実施形態間において、本出願の思想に反しない限り、いかなる組合せであっても本出願に開示されるものとみなされるべきである。
【0697】
なお、本出願の様々な方法実施形態において、上記各プロセスのシーケンス番号の大きさは、実行順序を意味するものではないことを理解されたい。各プロセスの実行順序は、その機能及び内部論理によって特定されるべきであり、本出願の実施形態の実施プロセスに対するいかなる制限を構成すべきではない。また、本出願の実施形態では、用語「及び/又は」は単に関連対象の関連関係を説明するものであり、3種類の関係が存在することを示す。具体的に、A及び/又はBの場合は、Aのみが存在すること、AとBが同時に存在すること、Bのみが存在することという3つの状況を示す。また、本明細書では、符号「/」は一般的に前後の関連対象が「又は」の関係にあることを示す。
【0698】
以上では、
図14~
図19を参照しながら本出願の方法実施形態を詳細に説明した。以下では、
図20~
図22を参照しながら本出願の装置実施形態を詳細に説明する。
【0699】
図20は、本出願の一実施形態に係る予測装置を示すブロック図である。予測装置10は、上記ビデオデコーダーに適用される。
【0700】
図20に示されているように、予測装置10はデコーディングユニット11、確定ユニット12、及び予測ユニット13を備える。
デコーディングユニット11は、ビットストリームをデコードして、K個の初期予測モードを確定するように構成されており、Kは1より大きい正の整数である。
確定ユニット12は、K個の初期予測モードに基づいて、現在ブロックの重み導出モードを確定するように構成されている。
予測ユニット13は、現在ブロックの重み導出モードに基づいて、現在ブロックの予測値を確定するように構成されている。
【0701】
いくつかの実施形態では、具体的に、予測ユニット13は、現在ブロックの重み導出モードに基づいて、K個の調整された予測モードを確定し、K個の調整された予測モードと現在ブロックの重み導出モードとに基づいて、現在ブロックの予測値を確定するように構成されている。
【0702】
いくつかの実施形態では、具体的に、確定ユニット12は、N個の候補重み導出モードを確定するように構成されており、Nは1より大きい正の整数であり、また、確定ユニット12は、N個の候補重み導出モードのうちのi番目の候補重み導出モードに対して、i番目の候補重み導出モードとK個の初期予測モードとに基づいて、i番目の候補重み導出モードに対応する第1コストを確定するように構成されており、iは1からNまでの正の整数であり、また、確定ユニット12は、N個の候補重み導出モードの各々に対応する第1コストに基づいて、現在ブロックの重み導出モードを確定するように構成されている。
【0703】
いくつかの実施形態では、具体的に、確定ユニット12は、i番目の候補重み導出モードとK個の初期予測モードとを利用して現在ブロックのテンプレートを予測して、テンプレートの第1予測値を得、テンプレートの第1予測値とテンプレートの再構成値とに基づいて、i番目の重み導出モードに対応する第1コストを確定するように構成されている。
【0704】
いくつかの実施形態では、具体的に、確定ユニット12は、現在ブロックの重み導出モードに基づいてK個の初期予測モードを改善して、K個の調整された予測モードを得るように構成されている。
【0705】
いくつかの実施形態では、具体的に、確定ユニット12は、現在ブロックの重み導出モードに基づいて、第1のテンプレート重みを確定するように構成されており、また、確定ユニット12は、K個の初期予測モードのうちのj番目の初期予測モードに対して、j番目の初期予測モードに対応するM個の第1の候補予測モードを確定するように構成されており、Mは1より大きい正の整数であり、jは1からKまでの正の整数であり、また、確定ユニット12は、第1のテンプレート重みに基づいて、M個の第1の候補予測モードの各々によるテンプレートへの予測に対応する第2コストを確定し、M個の第1の候補予測モードの各々に対応する第2コストに基づいて、j番目の初期予測モードに対応する調整された予測モードを確定するように構成されている。
【0706】
いくつかの実施形態では、具体的に、確定ユニット12は、M個の第1の候補予測モードのうちの、第2コストが最小である第1の候補予測モードを、j番目の初期予測モードに対応する調整された予測モードとして確定するように構成されている。
【0707】
いくつかの実施形態では、具体的に、確定ユニット12は、i番目の候補重み導出モードに基づいてK個の初期予測モードを改善して、i番目の候補重み導出モードに対応するK個の第1の改善予測モードを得、i番目の候補重み導出モードとK個の第1の改善予測モードとに基づいて、i番目の候補重み導出モードに対応する第1コストを確定するように構成されている。
【0708】
いくつかの実施形態では、具体的に、確定ユニット12は、i番目の候補重み導出モードに基づいて第2のテンプレート重みを確定するように構成されており、また、確定ユニット12は、前記K個の初期予測モードのうちのj番目の初期予測モードに対して、j番目の初期予測モードに対応するM個の第1の候補予測モードを確定するように構成されており、Mは正の整数であり、jは1からKまでの正の整数であり、また、確定ユニット12は、第2のテンプレート重みに基づいて、M個の第1の候補予測モードの各々によるテンプレートへの予測に対応する第3コストを確定し、M個の第1の候補予測モードの各々に対応する第3コストに基づいて、j番目の初期予測モードに対応する第1の改善予測モードを確定するように構成されている。
【0709】
いくつかの実施形態では、具体的に、確定ユニット12は、M個の第1の候補予測モードのうちの、第3コストが最小である第1の候補予測モードを、j番目の初期予測モードに対応する第1の改善予測モードとして確定するように構成されている。
【0710】
いくつかの実施形態では、具体的に、確定ユニット12は、i番目の候補重み導出モードとK個の第1の改善予測モードとを利用して現在ブロックのテンプレートを予測して、テンプレートの第2予測値を得、テンプレートの第2予測値とテンプレートの再構成値とに基づいて、i番目の重み導出モードに対応する第1コストを確定するように構成されている。
【0711】
いくつかの実施形態では、具体的に、確定ユニット12は、現在ブロックの重み導出モードに対応するK個の第1の改善予測モードを、K個の調整された予測モードとして確定するように構成されている。
【0712】
いくつかの実施形態では、具体的に、確定ユニット12は、K個の初期予測モードのうちのj番目の初期予測モードに対して、j番目の初期予測モードに対応する、P個のサブテンプレートに関する第2の改善予測モードを確定するように構成されており、Pは正の整数であり、jは1からKまでの正の整数であり、また、確定ユニット12は、i番目の候補重み導出モードに基づいて、K個の初期予測モードの各々に対応する、P個のサブテンプレートに関する第2の改善予測モードから、i番目の候補重み導出モードに対応するK個の第2の改善予測モードを確定し、i番目の候補重み導出モードとK個の第2の改善予測モードとに基づいて、i番目の候補重み導出モードに対応する第1コストを確定するように構成されている。
【0713】
いくつかの実施形態では、具体的に、確定ユニット12は、i番目の候補重み導出モードに対応する分割角度を確定し、分割角度と予測モードに対応するテンプレートとの対応関係に基づいて、K個の初期予測モードの各々に対応する、P個のサブテンプレートに関する第2の改善予測モードから、i番目の候補重み導出モードに対応するK個の第2の改善予測モードを確定するように構成されている。
【0714】
選択的に、P個のサブテンプレートは、現在ブロックの左側テンプレート、上側テンプレート、及び全テンプレートのうちの少なくとも1つを含む。
【0715】
いくつかの実施形態では、具体的に、確定ユニット12は、j番目の初期予測モードに対応するM個の第1の候補予測モードを確定するように構成されており、Mは1より大きい正の整数であり、また、確定ユニット12は、P個のサブテンプレートのうちのp番目のサブテンプレートに対して、M個の第1の候補予測モードの各々によるp番目のサブテンプレートへの予測に対応する第4コストを確定するように構成されており、pは1からPまでの正の整数であり、また、確定ユニット12は、M個の第1の候補予測モードの各々に対応する、p番目のサブテンプレートに関する第4コストに基づいて、j番目の初期予測モードに対応する、p番目のサブテンプレートに関する第2の改善予測モードを確定するように構成されている。
【0716】
いくつかの実施形態では、具体的に、確定ユニット12は、M個の第1の候補予測モードのうちの、p番目のサブテンプレートに関する第4コストが最小である第1の候補予測モードを、j番目の初期予測モードに対応する、p番目のサブテンプレートに関する第2の改善予測モードとして確定するように構成されている。
【0717】
いくつかの実施形態では、具体的に、確定ユニット12は、M個の第1の候補予測モードのうちのいずれか1つの第1の候補予測モードに対して、第1の候補予測モードを利用してp番目のサブテンプレートを予測して、p番目のサブテンプレートの予測値を得、p番目のサブテンプレートの予測値とp番目のサブテンプレートの再構成値とに基づいて、第1の候補予測モードに対応する、p番目のサブテンプレートに関する第4コストを確定するように構成されている。
【0718】
いくつかの実施形態では、具体的に、確定ユニット12は、i番目の候補重み導出モードとK個の第2の改善予測モードとを利用して現在ブロックのテンプレートを予測して、テンプレートの第3予測値を得、テンプレートの第3予測値とテンプレートの再構成値とに基づいて、i番目の重み導出モードに対応する第1コストを確定するように構成されている。
【0719】
いくつかの実施形態では、具体的に、確定ユニット12は、現在ブロックの重み導出モードに対応するK個の第2の改善予測モードに基づいて、K個の調整された予測モードを確定するように構成されている。
【0720】
いくつかの実施形態では、具体的に、確定ユニット12は、現在ブロックの重み導出モードに対応するK個の第2の改善予測モードを、K個の調整された予測モードとして確定するように構成されている。
【0721】
いくつかの実施形態では、具体的に、確定ユニット12は、現在ブロックの重み導出モードに基づいてK個の第2の改善予測モードを改善して、K個の調整された予測モードを得るように構成されている。
【0722】
いくつかの実施形態では、具体的に、確定ユニット12は、現在ブロックの重み導出モードに基づいて、第1のテンプレート重みを確定するように構成されており、また、確定ユニット12は、K個の第2の改善予測モードのうちのk番目の第2の改善予測モードに対して、k番目の第2の改善予測モードに対応するP個の第2の候補予測モードを確定するように構成されており、Pは1より大きい正の整数であり、kは1からKまでの正の整数であり、また、確定ユニット12は、第1のテンプレート重みに基づいて、P個の第2の候補予測モードの各々によるテンプレートへの予測に対応する第5コストを確定し、P個の第2の候補予測モードの各々に対応する第5コストに基づいて、k番目の第2の改善予測モードに対応する調整された予測モードを確定するように構成されている。
【0723】
いくつかの実施形態では、具体的に、確定ユニット12は、P個の第2の候補予測モードのうちの、第5コストが最小である第2の候補予測モードを、k番目の第2の改善予測モードに対応する調整された予測モードとして確定するように構成されている。
【0724】
いくつかの実施形態では、j番目の初期予測モードがイントラ予測モードである場合、確定ユニット12は、j番目の初期予測モードに類似するM個のイントラ予測モードを、M個の第1の候補予測モードとして確定するように構成されている。
【0725】
いくつかの実施形態では、j番目の初期予測モードがインター予測モードである場合、確定ユニット12は、j番目の初期予測モードに基づいて検索を行って、M個の第1動き情報を得、M個の第1動き情報に基づいて、M個の第1の候補予測モードを得るように構成されている。
【0726】
いくつかの実施形態では、具体的に、確定ユニット12は、i番目の初期予測モードに基づいて検索を行って、M個のオフセットを得、M個のオフセットに基づいて、M個の第1動き情報を得るように構成されている。
【0727】
いくつかの実施形態では、具体的に、確定ユニット12は、k番目の第2の改善予測モードに類似するP個のイントラ予測モードを、P個の第2の候補予測モードとして確定するように構成されている。
【0728】
いくつかの実施形態では、具体的に、確定ユニット12は、k番目の第2の改善予測モードに基づいて検索を行って、P個の第2動き情報を得、P個の第2動き情報に基づいて、P個の第2の候補予測モードを得るように構成されている。
【0729】
いくつかの実施形態では、具体的に、確定ユニット12は、k番目の第2の改善予測モードに基づいて検索を行って、P個のオフセットを得、P個のオフセットに基づいて、P個の第2動き情報を得るように構成されている。
【0730】
いくつかの実施形態では、具体的に、確定ユニット12は、N個の候補重み導出モードのうちの、第1コストが最小である候補重み導出モードを、現在ブロックの重み導出モードとして確定するように構成されている。
【0731】
いくつかの実施形態では、具体的に、確定ユニット12は、N個の候補重み導出モードの各々に対応する第1コストに基づいて、N個の候補重み導出モードをソートして、候補重み導出モードのリストを得、ビットストリームをデコードして、重み導出モードインデックスを得、候補重み導出モードのリストにおける、重み導出モードインデックスに対応する候補重み導出モードを、現在ブロックの重み導出モードとして確定するように構成されている。
【0732】
いくつかの実施形態では、具体的に、デコーディングユニット11は、侯選予測モードのリストを確定するように構成されており、侯選予測モードのリストは少なくとも2つの侯選予測モードを含み、また、デコーディングユニット11は、ビットストリームをデコードして、予測モードインデックスを得、予測モードインデックスに基づいて、侯選予測モードのリストからK個の初期予測モードを確定するように構成されている。
【0733】
いくつかの実施形態では、具体的に、確定ユニット12は、重み導出モードに基づいて、角度インデクシングと距離インデクシングを確定し、角度インデックス、距離インデックス、及びテンプレートのサイズに基づいて、テンプレート重みを確定するように構成されている。重み導出モードが現在ブロックの重み導出モードである場合、テンプレート重みは第1のテンプレート重みであり、重み導出モードがi番目の候補重み導出モードである場合、テンプレート重みは第2のテンプレート重みである。
【0734】
いくつかの実施形態では、具体的に、確定ユニット12は、角度インデックス、距離インデックス、及びテンプレートのサイズに基づいて、テンプレート内のサンプルの第1パラメータを確定するように構成されており、第1パラメータは重みを確定するために用いられ、また、確定ユニット12は、テンプレート内のサンプルの第1パラメータに基づいて、テンプレート内のサンプルの重みを確定し、テンプレート内のサンプルの重みに基づいて、テンプレート重みを確定するように構成されている。
【0735】
いくつかの実施形態では、具体的に、予測ユニット13は、K個の調整された予測モードに基づいて、K個の予測値を確定し、現在ブロックの重み導出モードに基づいて、K個の予測値の重みを確定し、K個の予測モードとK個の予測値の重みとに基づいて、現在ブロックの予測値を確定するように構成されている。
【0736】
いくつかの実施形態では、具体的に、確定ユニット12は、角度インデックス、距離インデックス、テンプレートのサイズ、及び現在ブロックのサイズに基づいて、現在ブロックとテンプレートとからなるマージ領域内のサンプルの重みを確定し、テンプレートのサイズとマージ領域内のサンプルの重みとに基づいて、テンプレート重みを確定するように構成されている。
【0737】
いくつかの実施形態では、具体的に、予測ユニット13は、K個の調整された予測モードに基づいて、K個の予測値を確定し、マージ領域内のサンプルの重みに基づいて、K個の予測値の重みを確定し、K個の予測値及びK個の予測値の重みに基づいて、現在ブロックの予測値を確定するように構成されている。
【0738】
いくつかの実施形態では、具体的に、予測ユニット13は、マージ領域内の現在ブロック内のサンプルに対応する重みに基づいて、K個の予測値の重みを確定するように構成されている。
【0739】
選択的に、テンプレートは、現在ブロックの上側のデコードされた領域、左側のデコードされた領域、及び左上側のデコードされた領域のうちの少なくとも1つを含む。
【0740】
なお、装置実施形態と方法実施形態は互いに対応することができ、装置実施形態の類似の説明については、方法実施形態を参照することができる。重複を避けるため、ここではその説明を省略する。具体的に、
図20に示される装置10は、本出願の実施形態におけるデコーディング側の予測方法を実行することができる。また、装置10における各ユニットの上記及び他の操作及び/又は機能は上記デコーディング側の予測方法などの各々における対応のプロセスを実現するために用いられる。簡潔のため、ここでの説明を省略する。
【0741】
図21は、本出願の一実施形態に係る予測装置を示すブロック図である。当該予測装置は上記エンコーダーに適用される。
【0742】
図21に示されているように、予測装置20は第1の確定ユニット21、第2の確定ユニット22、及び予測ユニット23を備えることができる。第1の確定ユニット21は、K個の初期予測モードを確定するように構成されており、Kは1より大きい正の整数である。第2の確定ユニット22は、K個の初期予測モードに基づいて、現在ブロックの重み導出モードを確定するように構成されている。予測ユニット23は、現在ブロックの重み導出モードに基づいて、現在ブロックの予測値を確定するように構成されている。
【0743】
いくつかの実施形態では、具体的に、予測ユニット23は、現在ブロックの重み導出モードに基づいて、K個の調整された予測モードを確定し、K個の調整された予測モードと現在ブロックの重み導出モードとに基づいて、現在ブロックの予測値を確定するように構成されている。
【0744】
いくつかの実施形態では、具体的に、第2の確定ユニット22は、N個の候補重み導出モードを確定するように構成されており、Nは1より大きい正の整数であり、また、第2の確定ユニット22は、N個の候補重み導出モードのうちのi番目の候補重み導出モードに対して、i番目の候補重み導出モードとK個の初期予測モードとに基づいて、i番目の候補重み導出モードに対応する第1コストを確定するように構成されており、iは1からNまでの正の整数であり、また、第2の確定ユニット22は、N個の候補重み導出モードの各々に対応する第1コストに基づいて、現在ブロックの重み導出モードを確定するように構成されている。
【0745】
いくつかの実施形態では、具体的に、第2の確定ユニット22は、i番目の候補重み導出モードとK個の初期予測モードとを利用して現在ブロックのテンプレートを予測して、テンプレートの第1予測値を得、テンプレートの第1予測値とテンプレートの再構成値とに基づいて、i番目の重み導出モードに対応する第1コストを確定するように構成されている。
【0746】
いくつかの実施形態では、具体的に、第2の確定ユニット22は、現在ブロックの重み導出モードに基づいてK個の初期予測モードを改善して、K個の調整された予測モードを得るように構成されている。
【0747】
いくつかの実施形態では、具体的に、第2の確定ユニット22は、現在ブロックの重み導出モードに基づいて、第1のテンプレート重みを確定し、K個の初期予測モードのうちのj番目の初期予測モードに対して、j番目の初期予測モードに対応するM個の第1の候補予測モードを確定するように構成されており、Mは1より大きい正の整数であり、jは1からKまでの正の整数であり、また、第2の確定ユニット22は、第1のテンプレート重みに基づいて、M個の第1の候補予測モードの各々によるテンプレートへの予測に対応する第2コストを確定し、M個の第1の候補予測モードの各々に対応する第2コストに基づいて、j番目の初期予測モードに対応する調整された予測モードを確定するように構成されている。
【0748】
いくつかの実施形態では、具体的に、第2の確定ユニット22は、M個の第1の候補予測モードのうちの、第2コストが最小である第1の候補予測モードを、j番目の初期予測モードに対応する調整された予測モードとして確定するように構成されている。
【0749】
いくつかの実施形態では、具体的に、第2の確定ユニット22は、i番目の候補重み導出モードに基づいてK個の初期予測モードを改善して、i番目の候補重み導出モードに対応するK個の第1の改善予測モードを得、i番目の候補重み導出モードとK個の第1の改善予測モードとに基づいて、i番目の候補重み導出モードに対応する第1コストを確定するように構成されている。
【0750】
いくつかの実施形態では、具体的に、第2の確定ユニット22は、i番目の候補重み導出モードに基づいて第2のテンプレート重みを確定し、K個の初期予測モードのうちのj番目の初期予測モードに対して、j番目の初期予測モードに対応するM個の第1の候補予測モードを確定するように構成されており、Mは正の整数であり、jは1からKまでの正の整数であり、また、第2の確定ユニット22は、第2のテンプレート重みに基づいて、M個の第1の候補予測モードの各々によるテンプレートへの予測に対応する第3コストを確定し、M個の第1の候補予測モードの各々に対応する第3コストに基づいて、j番目の初期予測モードに対応する第1の改善予測モードを確定するように構成されている。
【0751】
いくつかの実施形態では、具体的に、第2の確定ユニット22は、M個の第1の候補予測モードのうちの、第3コストが最小である第1の候補予測モードを、j番目の初期予測モードに対応する第1の改善予測モードとして確定するように構成されている。
【0752】
いくつかの実施形態では、具体的に、第2の確定ユニット22は、i番目の候補重み導出モードとK個の第1の改善予測モードとを利用して現在ブロックのテンプレートを予測して、テンプレートの第2予測値を得、テンプレートの第2予測値とテンプレートの再構成値とに基づいて、i番目の重み導出モードに対応する第1コストを確定するように構成されている。
【0753】
いくつかの実施形態では、具体的に、第2の確定ユニット22は、現在ブロックの重み導出モードに対応するK個の第1の改善予測モードを、K個の調整された予測モードとして確定するように構成されている。
【0754】
いくつかの実施形態では、具体的に、第2の確定ユニット22は、K個の初期予測モードのうちのj番目の初期予測モードに対して、j番目の初期予測モードに対応する、P個のサブテンプレートに関する第2の改善予測モードを確定するように構成されており、Pは正の整数であり、jは1からKまでの正の整数であり、i番目の候補重み導出モードに基づいて、K個の初期予測モードの各々に対応する、P個のサブテンプレートに関する第2の改善予測モードから、i番目の候補重み導出モードに対応するK個の第2の改善予測モードを確定するように構成されており、i番目の候補重み導出モードとK個の第2の改善予測モードとに基づいて、i番目の候補重み導出モードに対応する第1コストを確定するように構成されている。
【0755】
いくつかの実施形態では、具体的に、第2の確定ユニット22は、i番目の候補重み導出モードに対応する分割角度を確定し、分割角度と予測モードに対応するテンプレートとの対応関係に基づいて、K個の初期予測モードの各々に対応する、P個のサブテンプレートに関する第2の改善予測モードから、i番目の候補重み導出モードに対応するK個の第2の改善予測モードを確定するように構成されている。
【0756】
選択的に、P個のサブテンプレートは、現在ブロックの左側テンプレート、上側テンプレート、及び全テンプレートのうちの少なくとも1つを含む。
【0757】
いくつかの実施形態では、具体的に、第2の確定ユニット22は、j番目の初期予測モードに対応するM個の第1の候補予測モードを確定するように構成されており、Mは1より大きい正の整数であり、また、第2の確定ユニット22は、P個のサブテンプレートのうちのp番目のサブテンプレートに対して、M個の第1の候補予測モードの各々によるp番目のサブテンプレートへの予測に対応する第4コストを確定するように構成されており、pは1からPまでの正の整数であり、また、第2の確定ユニット22は、M個の第1の候補予測モードの各々に対応する、p番目のサブテンプレートに関する第4コストに基づいて、j番目の初期予測モードに対応する、p番目のサブテンプレートに関する第2の改善予測モードを確定するように構成されている。
【0758】
いくつかの実施形態では、具体的に、第2の確定ユニット22は、M個の第1の候補予測モードのうちの、p番目のサブテンプレートに関する第4コストが最小である第1の候補予測モードを、j番目の初期予測モードに対応する、p番目のサブテンプレートに関する第2の改善予測モードとして確定するように構成されている。
【0759】
いくつかの実施形態では、具体的に、第2の確定ユニット22は、M個の第1の候補予測モードのうちのいずれか1つの第1の候補予測モードに対して、第1の候補予測モードを利用してp番目のサブテンプレートを予測して、p番目のサブテンプレートの予測値を得、p番目のサブテンプレートの予測値とp番目のサブテンプレートの再構成値とに基づいて、第1の候補予測モードに対応する、p番目のサブテンプレートに関する第4コストを確定するように構成されている。
【0760】
いくつかの実施形態では、具体的に、第2の確定ユニット22は、i番目の候補重み導出モードとK個の第2の改善予測モードとを利用して現在ブロックのテンプレートを予測して、テンプレートの第3予測値を得、テンプレートの第3予測値とテンプレートの再構成値とに基づいて、i番目の重み導出モードに対応する第1コストを確定するように構成されている。
【0761】
いくつかの実施形態では、具体的に、第2の確定ユニット22は、現在ブロックの重み導出モードに対応するK個の第2の改善予測モードに基づいて、K個の調整された予測モードを確定するように構成されている。
【0762】
いくつかの実施形態では、具体的に、第2の確定ユニット22は、現在ブロックの重み導出モードに対応するK個の第2の改善予測モードを、K個の調整された予測モードとして確定するように構成されている。
【0763】
いくつかの実施形態では、具体的に、第2の確定ユニット22は、現在ブロックの重み導出モードに基づいてK個の第2の改善予測モードを改善して、K個の調整された予測モードを得るように構成されている。
【0764】
いくつかの実施形態では、具体的に、第2の確定ユニット22は、現在ブロックの重み導出モードに基づいて、第1のテンプレート重みを確定し、K個の第2の改善予測モードのうちのk番目の第2の改善予測モードに対して、k番目の第2の改善予測モードに対応するP個の第2の候補予測モードを確定するように構成されており、Pは1より大きい正の整数であり、kは1からKまでの正の整数であり、また、第2の確定ユニット22は、
第1のテンプレート重みに基づいて、P個の第2の候補予測モードの各々によるテンプレートへの予測に対応する第5コストを確定し、P個の第2の候補予測モードの各々に対応する第5コストに基づいて、k番目の第2の改善予測モードに対応する調整された予測モードを確定するように構成されている。
【0765】
いくつかの実施形態では、具体的に、第2の確定ユニット22は、P個の第2の候補予測モードのうちの、第5コストが最小である第2の候補予測モードを、k番目の第2の改善予測モードに対応する調整された予測モードとして確定するように構成されている。
【0766】
いくつかの実施形態では、j番目の初期予測モードがイントラ予測モードである場合、第2の確定ユニット22は、j番目の初期予測モードに類似するM個のイントラ予測モードを、M個の第1の候補予測モードとして確定するように構成されている。
【0767】
いくつかの実施形態では、j番目の初期予測モードがインター予測モードである場合、第2の確定ユニット22は、j番目の初期予測モードに基づいて検索を行って、M個の第1動き情報を得、M個の第1動き情報に基づいて、M個の第1の候補予測モードを得るように構成されている。
【0768】
いくつかの実施形態では、具体的に、第2の確定ユニット22は、i番目の初期予測モードに基づいて検索を行って、M個のオフセットを得、M個のオフセットに基づいて、M個の第1動き情報を得るように構成されている。
【0769】
いくつかの実施形態では、k番目の第2の改善予測モードがイントラ予測モードである場合、第2の確定ユニット22は、k番目の第2の改善予測モードに類似するP個のイントラ予測モードを、P個の第2の候補予測モードとして確定するように構成されている。
【0770】
いくつかの実施形態では、k番目の第2の改善予測モードがインター予測モードである場合、第2の確定ユニット22は、k番目の第2の改善予測モードに基づいて検索を行って、P個の第2動き情報を得、P個の第2動き情報に基づいて、P個の第2の候補予測モードを得るように構成されている。
【0771】
いくつかの実施形態では、具体的に、第2の確定ユニット22は、k番目の第2の改善予測モードに基づいて検索を行って、P個のオフセットを得、P個のオフセットに基づいて、P個の第2動き情報を得るように構成されている。
【0772】
いくつかの実施形態では、具体的に、第2の確定ユニット22は、N個の候補重み導出モードのうちの、第1コストが最小である候補重み導出モードを、現在ブロックの重み導出モードとして確定するように構成されている。
【0773】
いくつかの実施形態では、具体的に、第2の確定ユニット22は、N個の候補重み導出モードの各々に対応する第1コストに基づいて、N個の候補重み導出モードをソートして、候補重み導出モードのリストを得、候補重み導出モードのリストに基づいて、現在ブロックの重み導出モードを確定するように構成されている。
【0774】
いくつかの実施形態では、具体的に、第1の確定ユニット22はさらに、候補重み導出モードのリストにおける現在ブロックの重み導出モードに対応する重み導出モードインデックスをビットストリームに書き込むように構成されている。
【0775】
いくつかの実施形態では、具体的に、第1の確定ユニット22はさらに、ビットストリームに予測モードインデックスを書き込むように構成されており、予測モードインデックスは、K個の初期予測モードを確定するために用いられる。
【0776】
いくつかの実施形態では、具体的に、第2の確定ユニット22は、重み導出モードに基づいて、角度インデクシングと距離インデクシングを確定し、角度インデックス、距離インデックス、及びテンプレートのサイズに基づいて、テンプレート重みを確定するように構成されている。重み導出モードが現在ブロックの重み導出モードである場合、テンプレート重みは第1のテンプレート重みであり、重み導出モードがi番目の候補重み導出モードである場合、テンプレート重みは第2のテンプレート重みである
【0777】
いくつかの実施形態では、具体的に、第2の確定ユニット22は、角度インデックス、距離インデックス、及びテンプレートのサイズに基づいて、テンプレート内のサンプルの第1パラメータを確定するように構成されており、第1パラメータは重みを確定するために用いられ、また、第2の確定ユニット22は、テンプレート内のサンプルの第1パラメータに基づいて、テンプレート内のサンプルの重みを確定し、テンプレート内のサンプルの重みに基づいて、テンプレート重みを確定するように構成されている。
【0778】
いくつかの実施形態では、具体的に、予測ユニット23は、K個の調整された予測モードに基づいて、K個の予測値を確定し、現在ブロックの重み導出モードに基づいて、K個の予測値の重みを確定し、K個の予測モードとK個の予測値の重みとに基づいて、現在ブロックの予測値を確定するように構成されている。
【0779】
いくつかの実施形態では、具体的に、第2の確定ユニット22は、角度インデックス、距離インデックス、テンプレートのサイズ、及び現在ブロックのサイズに基づいて、現在ブロックとテンプレートとからなるマージ領域内のサンプルの重みを確定し、テンプレートのサイズとマージ領域内のサンプルの重みとに基づいて、テンプレート重みを確定するように構成されている。
【0780】
いくつかの実施形態では、具体的に、予測ユニット23は、K個の調整された予測モードに基づいて、K個の予測値を確定し、マージ領域内のサンプルの重みに基づいて、K個の予測値の重みを確定し、K個の予測値及びK個の予測値の重みに基づいて、現在ブロックの予測値を確定するように構成されている。
【0781】
いくつかの実施形態では、具体的に、予測ユニット23は、マージ領域内の現在ブロック内のサンプルに対応する重みに基づいて、K個の予測値の重みを確定するように構成されている。
【0782】
選択的に、テンプレートは、現在ブロックの上側のデコードされた領域、左側のデコードされた領域、及び左上側のデコードされた領域のうちの少なくとも1つを含む。
【0783】
なお、装置実施形態と方法実施形態は互いに対応することができ、装置実施形態の類似の説明については、方法実施形態を参照することができる。重複を避けるため、ここではその説明を省略する。具体的に、
図21に示される装置20は、本出願の実施形態におけるエンコーディング側の予測方法を実行する主体に対応することができる。また、装置20における各ユニットの上記及び他の操作及び/又は機能は上記エンコーディング側の予測方法などの各々における対応のプロセスを実現するために用いられる。簡潔のため、ここでの説明を省略する。
【0784】
以上、図面を参照しながら、本出願の実施形態の装置及びシステムについて機能ユニットの角度から説明した。当該機能ユニットは、ハードウェア形態によって実現されてもよく、ソフトウェア形態の命令によって実現されてもよく、ハードウェアとソフトウェアユニットの組み合わせによって実現されてもよい。具体的に、本出願の実施形態における方法実施形態の各ステップは、プロセッサにおけるハードウェアの集積論理回路(integrated logic circuit)又はソフトウェア形態の命令によって完成されることができる。本出願の実施形態に開示された方法のステップは、直接にハードウェア復号化プロセッサによって実行且つ完成されることができ、又は復号化プロセッサにおけるハードウェアとソフトウェアモジュールの組み合わせによって実行且つ完成されることができる。選択的に、ソフトウェアユニットは、ランダムアクセスメモリ、フラッシュメモリ、読み取り専用メモリ、プログラム可能な読み取り専用メモリ、電気的に消去可能なプログラム可能なメモリ、レジスタなど本技術分野におけるマチュアな記憶媒体に位置することができる。記憶媒体はメモリに位置する。プロセッサは、メモリにおける情報を読み取り、プロセッサのハードウェアとともに上記方法実施形態のステップを完成する。
【0785】
図22は、本出願の実施形態に係る電子デバイスを示すブロック図である。
【0786】
図22に示されるように、当該電子デバイス30は、本出願の実施形態に記載のビデオエンコーダーであってもよく、又は、ビデオデコーダーであってもよい。当該電子デバイス30は、メモリ33及びプロセッサ32を備えることができる。当該メモリ33は、コンピュータプログラム34を記憶し、且つ当該コンピュータプログラム34を当該プロセッサ32に伝送するために用いられる。換言すれば、当該プロセッサ32は、メモリ33からコンピュータプログラム34を呼び出して実行することにより、本出願の実施形態における方法を実現することができる。
【0787】
例えば、当該プロセッサ32は、当該コンピュータプログラム34における命令に基づいて、上記方法200のステップを実行するために用いられることができる。
【0788】
本出願のいくつかの実施形態において、当該プロセッサ32は、汎用プロセッサ、デジタル信号プロセッサ(digital signal processor、DSP)、特定用途向け集積回路(application specific integrated circuit、ASIC)、フィールドプログラム可能なゲートアレイ(field programmable gate array、FPGA)又は他のプログラム可能なロジックデバイス、ディスクリートゲート又はトランジスタロジックデバイス、ディスクリートハードウェアコンポーネントなどを含むことができるが、それらに限定されない。
【0789】
本出願のいくつかの実施形態において、当該メモリ33は、揮発性メモリ及び/又は不揮発性メモリを含むが、それらに限定されない。不揮発性メモリは、読み取り専用メモリ(read only memory、ROM)、プログラム可能な読み取り専用メモリ(programmable ROM、PROM)、消去可能なプログラム可能な読み取り専用メモリ(erasable PROM、EPROM)、電気的に消去可能なプログラム可能な読み取り専用メモリ(electrically EPROM、EEPROM)、又はフラッシュメモリ(flash memory)であることができる。揮発性メモリは、外部高速キャッシュとして機能するランダムアクセスメモリ(random access memory、RAM)であることができる。例示的であるが限定的ではない例として、様々なRAMが利用可能であり、例えば、スタティックランダムアクセスメモリ(static RAM、SRAM)、ダイナミックランダムアクセスメモリ(dynamic RAM、DRAM)、同期ダイナミックランダムアクセスメモリ(synchronous DRAM、SDRAM)、ダブルデータレート同期ダイナミックランダムアクセスメモリ(double data rate SDRAM、DDRSDRAM)、強化された同期ダイナミックランダムアクセスメモリ(enhanced SDRAM、ESDRAM)、同期リンクダイナミックランダムアクセスメモリ(synch-link DRAM、SLDRAM)、ダイレクトランバスランダムアクセスメモリ(dierct rambus RAM、DRRAM)が挙げられる。
【0790】
本出願のいくつかの実施形態において、当該コンピュータプログラム34は、1つ又は複数のユニットに分割されることができ、当該1つ又は複数のユニットは当該メモリ33に記憶されており、当該プロセッサ32によって実行されることにより、本出願に係る方法を完成する。当該1つ又は複数のユニットは、特定の機能を果たすことが可能な一連のコンピュータプログラム命令セグメントであってもよく、当該命令セグメントは、当該電子デバイス30における当該コンピュータプログラム34の実行プロセスを記述するために用いられる。
【0791】
図22に示されるように、当該電子デバイス30は、トランシーバー33をさらに備えることができる。当該トランシーバー33は、当該プロセッサ32又はメモリ33に接続可能である。
【0792】
プロセッサ32は、当該トランシーバー33が他のデバイスと通信するように制御することができる。具体的に、トランシーバー33は、他のデバイスに情報やデータを送信することができ、又は他のデバイスによって送信された情報やデータを受信することができる。トランシーバー33は送信機及び受信機を含むことができる。トランシーバー33は、アンテナをさらに含むことができる。アンテナの数は一つ又は複数であることができる。
【0793】
なお、電子デバイス30における各コンポーネントはバスシステムを介して接続される。バスシステムはデータバス以外に、電力バス、制御バス及びステータス信号バスをさらに含む。
【0794】
図23は、本出願の実施形態に係るビデオエンコーディング・デコーディングシステムを示すブロック図である。
【0795】
図23に示されるように、当該ビデオエンコーディング・デコーディングシステム40は、ビデオエンコーダー41及びビデオデコーダー42を含むことができる。ビデオエンコーダー41は、本出願の実施形態に係るビデオエンコーディング方法を実行するために用いられ、ビデオデコーダー42は、本出願の実施形態に係るビデオデコーディング方法を実行するために用いられる。
【0796】
本出願はコンピュータ記憶媒体をさらに提供する。コンピュータ可読記憶媒体にコンピュータプログラムが記憶されている。当該コンピュータプログラムは、コンピュータによって実行される場合、当該コンピュータに上記方法実施形態の方法を実行させる、ことを可能にする。又は、本出願の実施形態は、命令を含むコンピュータプログラム製品をさらに提供する。当該命令は、コンピュータによって実行される場合、コンピュータに上記方法実施形態の方法を実行させる。
【0797】
本出願はビットストリームをさらに提供する。当該ビットストリームは、上記エンコーディング方法に基づいて生成される。選択的に、当該ビットストリームは、第1フラグを含み、又は第1のフラグと第2のフラグを含む。
【0798】
ソフトウェアによって実現される場合、上記実施形態の全部又は一部は、コンピュータプログラム製品の形式で実現されることができる。当該コンピュータプログラム製品は、一つ又は複数のコンピュータ命令を含む。コンピュータプログラム命令がコンピュータでロードされ且つ実行されるとき、本出願の実施形態のプロセス又は機能の全部又は一部が生成される。当該コンピュータは、汎用コンピュータ、専用コンピュータ、コンピュータネットワーク又は他のプログラム可能な装置であることができる。当該コンピュータ命令は、コンピュータ可読記憶媒体に記憶され、又は一つのコンピュータ可読記憶媒体から別のコンピュータ可読記憶媒体に伝送されることができる。例えば、当該コンピュータ命令は、一つのウェブサイト、コンピュータ、サーバ又はデータセンターから有線(例えば、同軸ケーブル、光ファイバー、デジタル加入者線(digital subscriber line、DSL)など)又は無線(例えば、赤外線、無線、マイクロ波など)で別のウェブサイト、コンピュータ、サーバ又はデータセンターに伝送されることができる。当該コンピュータ可読記憶媒体は、コンピュータがアクセスできる任意の利用可能な媒体であることができ、又はサーバ、データセンターなどのような一つ又は複数の利用可能な媒体が統合されたデータ記憶装置であることができる。利用可能な媒体は、磁気媒体(例えば、フロッピーディスク、ハードディスク又は磁気テープ)、光学媒体(例えば、デジタルビデオディスク(digital versatile disc、DVD))、又は半導体媒体(例えば、ソリッドステートディスク(solid state disk、SSD))などであることができる。
【0799】
本出願に開示された実施形態に記載される各例示的なユニット及びアルゴリズム操作と結びつけて、本出願が電子ハードウェア、又はコンピュータソフトウェアと電子ハードウェアとの組み合わせにより実現され得ることは、当業者が意識することができる。これらの機能が、ハードウェアにより実行されるかソフトウェアにより実行されるかについては、技術案の特定応用や設計の制限条件などによって決められる。当業者は、特定応用ごとに異なる方法を使用して記載される機能を実現できるが、これらの実現は、本出願の範囲を超えると見なされるべきではない。
【0800】
本出願に係るいくつかの実施形態において、開示されるシステム、装置、方法は、他の形態により実現され得ると理解されるべきである。例えば、上記装置実施形態は、例示的なものに過ぎない。例えば、ユニットの分割はロジック機能の分割に過ぎず、実際に実現される場合、別の分割形態を有してもよい。例えば、複数のユニット又はコンポーネントを組み合わせ、又は別のシステムに集積させ、又はその若干の特徴を無視し、又は実行しなくてもよい。さらに、示される又は検討される相互間の結合や直接結合や通信接続は、いくつかのインタフェース、装置、又はユニットによる間接結合や通信接続であってもよく、電気、機械又は他の形態であってもよい。
【0801】
分離コンポーネントとして説明されたユニットは、物理的に分離してもよく、分離しなくてもよい。ユニットとして表示されるコンポーネントは、物理的なユニットであってもよく、物理的なユニットではなくてもよい。即ち、一つの場所に位置してもよく、複数のネットワークユニットに配置されてもよい。実際のニーズに応じて一部又は全部のユニットを選択して本実施形態の技術案の目的を実現することができる。例えば、本出願の各実施形態に係る各機能ユニットは、1つの処理ユニットに集積されてもよく、各ユニットは単独に物理的に存在してもよく、2つ以上のユニットは1つのユニットに集積されてもよい。
【0802】
上記内容は、ただ本出願の具体的な実施形態であり、本出願の保護範囲はそれに限定されない。当業者が本出願に開示された技術範囲内で容易に想到し得る変更又は置換はすべて本出願の保護範囲内に含まれるべきである。従って、本出願の保護範囲は特許請求の保護範囲に準じるべきである。
【国際調査報告】