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

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

▶ フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェラインの特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024069438
(43)【公開日】2024-05-21
(54)【発明の名称】イントラ予測を用いた符号化
(51)【国際特許分類】
   H04N 19/70 20140101AFI20240514BHJP
   H04N 19/593 20140101ALI20240514BHJP
【FI】
H04N19/70
H04N19/593
【審査請求】有
【請求項の数】1
【出願形態】OL
(21)【出願番号】P 2024039409
(22)【出願日】2024-03-13
(62)【分割の表示】P 2021574164の分割
【原出願日】2020-06-10
(31)【優先権主張番号】19180383.2
(32)【優先日】2019-06-14
(33)【優先権主張国・地域又は機関】EP
(71)【出願人】
【識別番号】500341779
【氏名又は名称】フラウンホーファー-ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン
(74)【代理人】
【識別番号】110002952
【氏名又は名称】弁理士法人鷲田国際特許事務所
(72)【発明者】
【氏名】ファフ・ヨナサン
(72)【発明者】
【氏名】ヒンツ・トビアス
(72)【発明者】
【氏名】ヘレ・フィリップ
(72)【発明者】
【氏名】マークル・フィリップ
(72)【発明者】
【氏名】スタレンバーガー・ビョルン
(72)【発明者】
【氏名】シェーファー・ミヒャエル
(72)【発明者】
【氏名】ブロス・ベンジャミン
(72)【発明者】
【氏名】ヴィンケン・マーティン
(72)【発明者】
【氏名】シークマン・ミシャ
(72)【発明者】
【氏名】シュヴァルツ・ハイコー
(72)【発明者】
【氏名】マルペ・デトレフ
(72)【発明者】
【氏名】ヴィーガンド・トーマス
(57)【要約】      (修正有)
【課題】イントラ予測を使用して画像の所定のブロックを復号するための装置を提供する。
【解決手段】装置3000は、イントラ予測モードの第1のセット508のうちの1つを使用して所定のブロック18が予測されるべきかどうかを示すセット選択的シンタックス要素522をデータストリーム12から導出し、予測されるべきであることを示す場合、MPMリストインデックス534をデータストリーム12から導出し、所定のイントラ予測モード3100を使用してイントラ予測し、予測されるべきでないことを示す場合、行列ベースのイントラ予測モード510の第2のセット520のうちの所定の行列ベースのイントラ予測モードを示すさらなるインデックス540をデータストリーム12から導出し、予測ベクトル518に基づいて所定のブロック18のサンプルを予測する。
【選択図】図12
【特許請求の範囲】
【請求項1】
イントラ予測を使用して画像(10)の所定のブロック(18)を復号するための装置(3000)であって、
イントラ予測モードの第1のセット(508)であって、DCイントラ予測モード(506)および角度イントラ予測モード(500)を含む第1のセット(508)のうちのイントラ予測モードを使用して、ルマブロックである前記所定のブロック(18)が予測されるべきかどうかを示すセット選択的シンタックス要素(522)をデータストリーム(12)から復号し、
前記セット選択的シンタックス要素(522)が、イントラ予測モードの前記第1のセット(508)のうちの一方を用いて前記所定のブロック(18)が予測されるべきであることを指示する場合、
前記所定のブロック(18)の隣接ブロック(524、526)を予測するのに使用されるイントラ予測モード(3050)を備える最も可能性の高いイントラ予測モードのリスト(528)を形成し、前記隣接ブロック(524、526)の一方が前記角度イントラ予測モード(500)のいずれかによって予測され、前記隣接ブロック(524、526)の他方が非角度イントラ予測モードによって予測される場合、前記リストは、前記DCイントラ予測モード(506)を含まず、
前記最も可能性の高いイントラ予測モードのリスト(528)を所定のイントラ予測モード(3100)を指し示すMPMリストインデックス(534)を前記データストリーム(12)から導出し、
前記所定のイントラ予測モード(3100)を用いて前記所定のブロック(18)をイントラ予測し、
前記セット選択的シンタックス要素(522)が、前記所定のブロック(18)がイントラ予測モードの前記第1のセット(508)のうちの一方を使用して予測されないことを指示する場合、
前記データストリーム(12)から、行列ベースのイントラ予測モード(3200)の第2のセット(520)のうちの所定の行列ベースのイントラ予測モード(510)を示すさらなるインデックス(540、546)を導出し、
予測ベクトル(518)を取得するために、前記所定のブロック(18)の近傍の参照サンプル(17)から導出されたベクトル(514、400、402)と前記所定の行列ベースのイントラ予測モード(3200)に関連付けられた所定の予測行列(516)との間の行列ベクトル積(512)を計算し、
前記予測ベクトル(518)に基づいて前記所定のブロック(18)のサンプルを予測する、装置(3000)。
【請求項2】
請求項1に記載の装置(3000)であって、
前記セット選択的シンタックス要素(522)が、前記イントラ予測モードの前記第1のセット(508)のうちの一方を用いて前記所定のブロック(18)が予測されるべきであることを指示する場合、
前記イントラ予測モードの前記第1のセット(508)の前記所定のイントラ予測モード(3100)が前記最も可能性の高いイントラ予測モードのリスト(528)内にあるか否かを示すMPMシンタックス要素(532)を前記データストリーム(12)から導出し、
MPMシンタックス要素(532)が、イントラ予測モードの第1のセット(508)の所定のイントラ予測モード(3100)が前記最も可能性の高いイントラ予測モードのリスト(528)内にあることを示す場合、
前記所定のブロック(18)に隣接する隣接ブロック(524、526)が予測されるイントラ予測モード(3050)に基づいて、前記最も可能性の高いイントラ予測モードのリスト(528)を形成するステップと、
前記最も可能性の高いイントラ予測モードのリスト(528)の所定のイントラ予測モード(3100)を指し示すデータストリーム(12)からのMPMリストインデックス(534)の導出するステップと、を実行し、
前記データストリーム(12)からの前記MPMシンタックス要素(532)が、イントラ予測モードの前記第1のセット(508)の前記所定のイントラ予測モード(3100)が前記最も可能性の高いイントラ予測モードのリスト(528)内にないことを示す場合、
前記イントラ予測モードの前記第1のセット(508)のうちの前記所定のイントラ予測モード(3100)を示すさらなるリストインデックス(536)を前記データストリーム(12)から導出する、ように構成されている、装置(3000)。
【請求項3】
請求項1または2に記載の装置(3000)であって、
前記セット選択的シンタックス要素(522)が、前記所定のブロック(18)がイントラ予測モードの前記第1のセット(508)のうちの一方を使用して予測されないことを指示する場合、
ブロックベースのイントラ予測モード(510)の前記第2のセット(520)の所定のブロックベースのイントラ予測モード(3200)が最も可能性の高いブロックベースのイントラ予測モード(510)のリスト(542)内にあるか否かを示すさらなるMPMシンタックス要素(538)を前記データストリーム(12)から導出し、
さらなるMPMシンタックス要素(538)が、ブロックベースのイントラ予測モード(510)の第2のセット(520)の所定のブロックベースのイントラ予測モード(3200)が最も可能性の高いブロックベースのイントラ予測モード(510)のリスト(542)内にあることを示す場合、
前記所定のブロック(18)に隣接する隣接ブロック(524、526)が予測されるイントラ予測モード(3050)に基づいて、前記最も可能性の高いブロックベースのイントラ予測モード(510)のリスト(542)を形成し、
前記データストリーム(12)から、前記最も可能性の高いブロックベースのイントラ予測モード(510)のリスト(542)を所定のブロックベースのイントラ予測モード(3200)上に指し示すさらなるMPMリストインデックス(540)を導出し、
前記さらなるMPMシンタックス要素(538)が、ブロックベースのイントラ予測モード(510)の第2のセット(520)の所定のブロックベースのイントラ予測モード(3200)が最も可能性の高いブロックベースのイントラ予測モード(510)のリスト(542)内にないことを示す場合、
前記ブロックベースのイントラ予測モード(510)の前記第2のセット(520)の中の前記所定のブロックベースのイントラ予測モード(3200)を示すさらに別のリストインデックス(546)を前記データストリーム(12)から導出するように構成される、装置(3000)。
【請求項4】
前記所定のブロック(18)に隣接する隣接ブロック(524、526)が予測されるイントラ予測モード(3050)に基づいて、前記最も可能性の高いイントラ予測モードのリスト(528)の前記形成を実行し、
前記リスト(528)は、前記隣接ブロック(524、526)の各々について、前記DCイントラ予測モード(506)を含む前記第1のセット(508)を有する少なくとも1つの非角度イントラ予測モード(504、506)のいずれかを使用して予測されたか、またはブロックベースのイントラ予測モード(510)の前記第2のセット(520)から、前記最も可能性の高いイントラ予測モードのリスト(528)の形成に使用される前記第1のセット(508)内の前記イントラ予測モードへのマッピングによって、前記少なくとも1つの非角度イントラ予測モード(504、506)のいずれかにマッピングされるブロックベースのイントラ予測モード(510)のいずれかを使用して予測されたそれぞれの前記隣接ブロックの場合にのみ、前記DCイントラ予測モード(506)でポピュレートされる、ように構成された、
請求項1から3のいずれか一項に記載の装置(3000)。
【請求項5】
前記隣接ブロック(524、526)の各々について、前記DCイントラ予測モード(506)を含む前記第1のセット(508)を有する少なくとも1つの非角度イントラ予測モード(504、506)のいずれかを使用して予測されるか、またはブロックベースのイントラ予測モード(510)の前記第2のセット(520)から、前記最も可能性の高いイントラ予測モードのリスト(528)の前記形成に使用される前記第1のセット(508)内の前記イントラ予測モードへのマッピングによって、前記少なくとも1つの非角度イントラ予測モード(504、506)のいずれかにマッピングされるブロックベースのイントラ予測モード(510)のいずれかを使用して予測されるそれぞれの前記隣接ブロックが予測されるように、前記所定のブロック(18)に隣接する前記隣接ブロック(524、526)が使用されるイントラ予測モード(3050)に基づいて前記最も可能性の高いイントラ予測モードのリスト(528)の前記形成を実行するように構成され、
前記DCイントラ予測モード(506)は、前記最も可能性の高いイントラ予測モードのリスト(528)内の任意の角度イントラ予測モード(500)の前に位置付けられる、
請求項1から4のいずれか一項に記載の装置(3000)。
【請求項6】
前記イントラ予測モードの第1のセット(508)が、平面イントラ予測モード(504)をさらに備える、請求項1から5のいずれか一項に記載の装置(3000)。
【請求項7】
前記所定のブロック(18)の隣接ブロック(524、526)を予測するのに使用されるイントラ予測モード(3050)を備える前記最も可能性の高いイントラ予測モードのリスト(528)の前記形成を実行し、
前記リスト(528)は、前記隣接ブロック(524、526)を予測するのに使用される前記イントラ予測モードとは独立した方法で、前記平面イントラ予測モード(504)でポピュレートされる、
ように構成された、請求項6に記載の装置(3000)。
【請求項8】
前記所定のブロック(18)の隣接ブロック(524、526)を予測するのに使用されるイントラ予測モード(3050)を備える前記最も可能性の高いイントラ予測モードのリスト(528)の前記形成を実行し、
前記平面イントラ予測モード(504)は、前記隣接ブロック(524、526)を予測するのに使用されるイントラ予測モードから独立した前記最も可能性の高いイントラ予測モードのリスト(528)の第1の位置に位置付けられる、
請求項7に記載の装置(3000)。
【請求項9】
複数の参照サンプル(17)からサンプル値ベクトル(400)を形成し、
前記サンプル値ベクトル(400)が所定の可逆線形変換(403)によって前記ベクトル(514)上にマッピングされるように、前記サンプル値ベクトル(400)からさらなるベクトル(514,402)を導出するように構成された、
請求項1から8のいずれか一項に記載の装置(3000)。
【請求項10】
前記可逆線形変換(403)は、
前記さらなるベクトル(514、402)の所定の成分はaとなり、
前記所定の成分を除く前記さらなるベクトル(514、402)の他の成分の各々は、前記サンプル値ベクトル(400)の対応する成分からaを引いたものに等しく、
aは、所定の値である、
ように定義される、請求項9に記載の装置(3000)。
【請求項11】
前記所定の値は、
サンプル値ベクトル(400)の成分の算術平均または加重平均などの平均、
デフォルト値、
前記画像(10)が符号化されるデータストリーム(12)内でシグナリングされる値、および
前記サンプル値ベクトル(400)の前記所定の成分に対応する成分、
のうちの1つである、請求項10に記載の装置(3000)。
【請求項12】
前記可逆線形変換(403)は、
前記さらなるベクトル(514、402)の所定の成分がaとなり、
前記所定の成分を除く前記さらなるベクトル(514、402)の他の成分の各々が、前記サンプル値ベクトル(400)の対応する成分からaを引いたものに等しく、
aが前記サンプル値ベクトル(400)の成分の算術平均である、
請求項9に記載の装置(3000)。
【請求項13】
前記可逆線形変換(403)は、
前記さらなるベクトル(514、402)の所定の成分がaとなり、
前記所定の成分を除く前記さらなるベクトル(514、402)の他の成分の各々が、前記サンプル値ベクトル(400)の対応する成分からaを引いたものに等しく、
aが、前記所定の成分に対応する前記サンプル値ベクトル(400)の成分である、ように定義され、
前記装置(3000)は、
各々が前記さらなるベクトル(514、402)の一方の成分に関連付けられた複数の可逆線形変換(403)を含み、
前記サンプル値ベクトル(400)の成分の中から前記所定の成分を選択し、
前記所定の成分に対応付けられた前記複数の可逆線形変換(403)のうちの前記可逆線形変換(403)を前記所定の可逆線形変換(403)として用いる、
ように構成される、請求項9に記載の装置(3000)。
【請求項14】
前記さらなるベクトル(514、402)の前記所定の成分に対応する前記予測行列(516)の列内の前記予測行列(516)の行列成分はすべて0であり、前記装置(3000)は、
前記列を除外することによって前記予測行列(516)から結果として生じる縮小された予測行列と、前記所定の成分を除外することによって前記さらなるベクトル(514、402)から結果として生じるなおさらなるベクトルとの間の行列ベクトル積(512)を計算することによって乗算を実行することによって前記行列ベクトル積(512)を計算するようにさらに構成される、
請求項10から13のいずれか一項に記載の装置(3000)。
【請求項15】
前記予測ベクトル(518)に基づいて前記所定のブロックの前記サンプルを予測する際に、
前記予測ベクトル(518)の各成分について、それぞれの前記成分とaとの和を計算する、ように構成された、
請求項10から14のいずれか一項に記載の装置(3000)。
【請求項16】
前記さらなるベクトル(514、402)の前記所定の成分に対応する前記予測行列(516)の列内の前記予測行列(516)の各行列成分を、前記可逆線形変換(403)の[すなわち、行列B]倍と合計した行列が、機械学習予測行列の量子化バージョンに対応する、請求項10から15のいずれか一項に記載の装置(3000)。
【請求項17】
前記サンプル値ベクトル(400)の各成分について、
前記複数の参照サンプル(17)のうちの一方の参照サンプルを前記サンプル値ベクトル(400)のそれぞれの前記成分として採用し、および/または
前記サンプル値ベクトル(400)の2つ以上の成分を平均して、前記サンプル値ベクトル(400)のそれぞれの成分を取得する、ことにより、複数の参照サンプル(17)から前記サンプル値ベクトル(400)を形成する(100)、ように構成された、
請求項9から16のいずれか一項に記載の装置(3000)。
【請求項18】
前記複数の参照サンプル(17)は、前記所定のブロック(18)の外縁に沿って前記画像(10)内に配置される、請求項9から17のいずれか一項に記載の装置(3000)。
【請求項19】
固定小数点演算を使用して前記行列ベクトル積(512)を計算するように構成される、請求項1から18のいずれか一項に記載の装置(3000)。
【請求項20】
浮動小数点演算なしで前記行列ベクトル積(512)を計算するように構成される、請求項1から19のいずれか一項に記載の装置(3000)。
【請求項21】
前記予測行列(516)の固定小数点数表現を格納するように構成される、請求項1から20のいずれか一項に記載の装置(3000)。
【請求項22】
予測パラメータを使用して前記予測行列(516)を表し、前記さらなるベクトル(514、402)の成分および前記予測パラメータおよびそれから生じる中間結果に対して乗算および合計を実行することによって前記行列ベクトル積(512)を計算するように構成され、前記予測パラメータの絶対値は、nビットの固定小数点数表現によって表すことができ、nは14以下、または10以下、または8以下である、請求項10から18のいずれか一項に記載の装置(3000)。
【請求項23】
前記予測パラメータは、
それぞれが前記予測行列(516)の対応する行列成分に関連付けられた重みを含む、請求項22に記載の装置(3000)。
【請求項24】
前記予測パラメータは、
それぞれが予測行列(516)の前記1つまたは複数の対応する行列成分に関連する前記重みをスケーリングするために前記予測行列(516)の前記1つまたは複数の対応する行列成分に関連する1つまたは複数のスケーリング係数、および/または
前記予測行列(516)の前記1つまたは複数の対応する行列成分に関連付けられた前記重みをオフセットするために、それぞれが前記予測行列(516)の前記1つまたは複数の対応する行列成分に関連付けられた1つまたは複数のオフセット、を含む、
請求項23に記載の装置(3000)。
【請求項25】
前記予測ベクトル(518)に基づいて前記所定のブロック(18)の前記サンプルを予測する際に、
各成分が前記所定のブロック(18)内の対応する位置に関連付けられている前記予測ベクトル(518)に基づいて前記所定のブロック(18)の少なくとも1つのサンプル位置を計算するために補間を使用するように構成される、
請求項1から24のいずれか一項に記載の装置(3000)。
【請求項26】
イントラ予測を使用して画像(10)の所定のブロック(18)を符号化するための装置(6000)であって、
イントラ予測モードの第1のセット(508)であって、DCイントラ予測モード(506)および角度イントラ予測モード(500)を含む第1のセット(508)のうちのイントラ予測モードを使用して、ルマブロックである前記所定のブロック(18)が予測されるべきかどうかを示すデータストリーム(12)内のセット選択的シンタックス要素(522)をシグナリングし、
前記セット選択的シンタックス要素(522)が、前記イントラ予測モードの前記第1のセット(508)のうちの一方を用いて前記所定のブロック(18)が予測されるべきであることを指示する場合、
前記所定のブロック(18)の隣接ブロック(524、526)を予測するのに使用されるイントラ予測モード(3050)を備える最も可能性の高いイントラ予測モードのリスト(528)を形成し、前記隣接ブロック(524、526)の一方が前記角度イントラ予測モード(500)のいずれかによって予測され、前記隣接ブロック(524、526)の他方が非角度イントラ予測モードによって予測される場合、前記リストは、前記DCイントラ予測モード(506)を含まず、
前記最も可能性の高いイントラ予測モードのリスト(528)を所定のイントラ予測モード(3100)を指し示すデータストリーム(12)内のMPMリストインデックス(534)をシグナリングし、
前記所定のイントラ予測モード(3100)を用いて前記所定のブロック(18)をイントラ予測し、
前記セット選択的シンタックス要素(522)が、前記所定のブロック(18)がイントラ予測モードの前記第1のセット(508)のうちの一方を使用して予測されないことを指示する場合、
前記データストリーム(12)内の、行列ベースのイントラ予測モード(510)の第2のセット(520)のうちの所定の行列ベースのイントラ予測モード(3200)を示すさらなるインデックス(540、546)をシグナリングし、
予測ベクトル(518)を取得するために、前記所定のブロック(18)の近傍の参照サンプル(17)から導出されたベクトル(514、400、402)と前記所定の行列ベースのイントラ予測モード(3200)に関連付けられた所定の予測行列(516)との間の行列ベクトル積(512)を計算し、
前記予測ベクトル(518)に基づいて前記所定のブロック(18)のサンプルを予測する、
装置(6000)。
【請求項27】
イントラ予測を使用して画像の所定のブロック(18)を復号するための方法(4000)であって、
イントラ予測モードの第1のセット(508)であって、DCイントラ予測モード(506)および角度イントラ予測モード(500)を含む第1のセット(508)のうちのイントラ予測モードを使用して、ルマブロックである前記所定のブロックが予測されるべきかどうかを示すセット選択的シンタックス要素(522)をデータストリームから導出するステップ(4100)と、
前記セット選択的シンタックス要素(522)が、前記所定のブロックがイントラ予測モードの前記第1のセットのうちの1つを使用して予測されるべきであることを示す(4150)場合、
前記所定のブロックの隣接ブロック(524、526)を予測するのに使用されるイントラ予測モードを備える最も可能性の高いイントラ予測モードのリスト(528)を形成するステップ(4200)と、
前記最も可能性の高いイントラ予測モードのリストを所定のイントラ予測モードを指し示す前記データストリームからMPMリストインデックス(534)を導出するステップ(4300)と、
前記所定のイントラ予測モードを用いて前記所定のブロックをイントラ予測するステップ(4400)であって、前記隣接ブロック(524、526)の一方が前記角度イントラ予測モード(500)のいずれかによって予測され、前記隣接ブロック(524、526)の他方が非角度イントラ予測モードによって予測される場合、前記リストは、前記DCイントラ予測モード(506)を含まず、イントラ予測するステップ(4400)と、
前記セット選択的シンタックス要素(522)が、前記所定のブロックがイントラ予測モードの前記第1のセットのうちの1つを使用して予測されないことを示す場合(4155)、
行列ベースのイントラ予測モード(510)の第2のセット(520)のうちの所定の行列ベースのイントラ予測モードを示すさらなるインデックス(540、546)を前記データストリームから導出するステップ(4250)と、
予測ベクトル(518)を取得するために、前記所定のブロックの近傍の参照サンプル(17)から導出されたベクトル(514)と前記所定の行列ベースのイントラ予測モードに関連付けられた所定の予測行列(516)との間の行列ベクトル積(512)を計算するステップ(4350)と、
前記予測ベクトルに基づいて前記所定のブロックのサンプルを予測するステップ(4450)と、を含む、
方法(4000)。
【請求項28】
イントラ予測を使用して画像の所定のブロック(18)を符号化するための方法(5000)であって、
イントラ予測モードの第1のセット(508)であって、DCイントラ予測モード(506)および角度イントラ予測モード(500)を含む第1のセット(508)のうちのイントラ予測モードを使用して、ルマブロックである前記所定のブロックが予測されるべきかどうかを示すデータストリーム内のセット選択的シンタックス要素(522)をシグナリングするステップ(5100)と、
前記セット選択的シンタックス要素(522)が、前記所定のブロックがイントラ予測モードの前記第1のセットのうちの1つを使用して予測されるべきであることを示す(5150)場合、
前記所定のブロックの隣接ブロック(524、526)を予測するのに使用されるイントラ予測モードを備える最も可能性の高いイントラ予測モードのリスト(528)を形成するステップ(5200)であって、前記隣接ブロック(524、526)の一方が前記角度イントラ予測モード(500)のいずれかによって予測され、前記隣接ブロック(524、526)の他方が非角度イントラ予測モードによって予測される場合、前記リストは、前記DCイントラ予測モード(506)を含まない、形成するステップ(5200)と、
前記最も可能性の高いイントラ予測モードのリストを所定のイントラ予測モードを指し示す前記データストリーム内のMPMリストインデックス(534)をシグナリングするステップ(5300)と、
前記所定のイントラ予測モードを用いて前記所定のブロックをイントラ予測するステップ(5400)と、
前記セット選択的シンタックス要素(522)が、前記所定のブロックがイントラ予測モードの前記第1のセットのうちの1つを使用して予測されないことを示す場合(5155)、
行列ベースのイントラ予測モード(510)の第2のセット(520)のうちの所定の行列ベースのイントラ予測モードを示す前記データストリーム内のさらなるインデックス(540、546)をシグナリングするステップ(5250)と、
予測ベクトル(518)を取得するために、前記所定のブロックの近傍の参照サンプル(17)から導出されたベクトル(514)と前記所定の行列ベースのイントラ予測モードに関連付けられた所定の予測行列(516)との間の行列ベクトル積(512)を計算するステップ(5350)と、
前記予測ベクトルに基づいて前記所定のブロックのサンプルを予測するステップ(5450)と、を含む、
方法(5000)。
【請求項29】
コンピュータ上で実行されると、請求項27から28のいずれか一項に記載の方法を実行するためのプログラムコードを有するコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、イントラ予測の分野に関する。実施形態は、最も可能性の高いモードリストを生成するための有利な方法に関する。
【0002】
今日、最も可能性の高いモードリストを生成する様々な方法が存在する。しかしながら、最終的に使用されるイントラ予測モードがこのリスト内にないので、追加のシンタックス要素が送信される必要がある状況の可能性は依然として高い。
したがって、最も可能性のあるモードリストの生成を最適化するため、および/または符号化効率を改善するための問題に直面している。
これは、本出願の独立請求項の主題によって達成される。
本発明によるさらなる実施形態は、本出願の従属請求項の主題によって定義される。
【発明の概要】
【0003】
本発明の第1の態様によれば、本出願の発明者らは、最も可能性の高いイントラ予測モードのリストを形成するときに遭遇する1つの問題が、ありそうにない予測モードが符号化効率に悪影響を及ぼし、所定のブロックを予測するために最終的に使用されるイントラ予測モードがこのリスト内にない状況の可能性を増加させる貴重なリスト位置を引き継ぐことであることを認識した。本出願の第1の態様によれば、この困難さは、所定のブロックに隣接する既に予測された隣接ブロックに基づいて最も可能性の高いイントラ予測モードのリストを形成することによって克服される。したがって、ありそうにないイントラ予測モードを省略することができる。隣接ブロックのイントラ予測モードと同様の所定のブロックのイントラ予測モードの高い確率が期待できる。特に、隣接ブロックのうちの少なくとも1つが任意の角度イントラ予測モードによって予測される場合、リストにはDCイントラ予測モードがない。これは、リスト内にある所定のブロックのためにイントラ予測モードが使用される可能性を高める角度イントラ予測モードの多様性を有する最も可能性の高いイントラ予測モードのリストを可能にする。さらに、行列ベースのイントラ予測モードは、例えば、最も可能性の高いイントラ予測モードのリストについて考慮されず、したがって、最も可能性の高いイントラ予測モードのリスト内の位置についてイントラ予測モードの第1のセットのイントラ予測モードと競合しない、イントラ予測モードの別個の第2のセットを形成する。
【0004】
したがって、本出願の第1の態様によれば、イントラ予測を使用して画像の所定のブロックを復号するための装置は、DCイントラ予測モードおよび角度予測モードを含むイントラ予測モードの第1のセットのうちの1つを使用して所定のブロックが予測されるべきかどうかを示すセット選択的シンタックス要素をデータストリームから導出するように構成される。任意選択で、イントラ予測モードの第1のセットは、DCイントラ予測モードに加えて、またはその代わりに、平面イントラ予測モードを含み得る。セット選択的シンタックス要素が、イントラ予測モードの第1のセットのうちの1つを使用して所定のブロックが予測されるべきであることを示す場合、装置は、所定のブロックに隣接する隣接ブロックが予測されるときを使用してイントラ予測モードに基づいて最も可能性の高いイントラ予測モードのリストを形成し、最も可能性の高いイントラ予測モードのリストを所定のイントラ予測モード上に向けるMPM(すなわち、最も可能性のあるモード)リストインデックスをデータストリームから導出し、所定のイントラ予測モードを使用して所定のブロックをイントラ予測するように構成される。言い換えれば、この場合、装置は、所定のブロックに隣接する隣接ブロックの予測に使用されるイントラ予測モードに基づいて、最も可能性の高いイントラ予測モードのリストを形成するように構成される。セット選択的シンタックス要素が、イントラ予測モードの第1のセットのうちの1つを使用して所定のブロックが予測されるべきではないことを示す場合、装置は、予測ベクトルを取得するために所定のブロックの近隣内の参照サンプルから導出されたベクトルと所定の行列ベースのイントラ予測モードに関連付けられた所定の予測行列との間の行列ベクトル積を計算し、予測ベクトルに基づいて所定のブロックのサンプルを予測することによって、行列ベースのイントラ予測モードの第2のセット、すなわち行列ベースのイントラ予測モードを含むイントラ予測モードの第2のセットのうちの所定の行列ベースのイントラ予測モードを示すさらなるインデックスをデータストリームから導出するように構成される。この場合、予測は、例えば、図5図11の実施形態に関して説明したALWIP予測と同様または等しい。装置は、隣接ブロックが角度イントラ予測モードのいずれかによって予測されている場合、最も可能性の高いイントラ予測モードのリストがDCイントラ予測モードを含まないように、所定のブロックに隣接する隣接ブロックが予測されるときを使用して、イントラ予測モードに基づいて最も可能性の高いイントラ予測モードのリストの形成を実行するように構成される。換言すれば、装置は、隣接ブロックが角度イントラ予測モードのいずれかによって排他的に予測されている場合に、最も可能性の高いイントラ予測モードのリストがDCイントラ予測モードを含まないように、所定のブロックに隣接する隣接ブロックが予測されるときを使用して、イントラ予測モードに基づいて最も可能性の高いイントラ予測モードのリストの形成を実行するように構成される。したがって、DCイントラ予測モードは、DCイントラ予測モードが所定のブロックのために選択される可能性が小さい場合、最も可能性の高いイントラ予測モードのリスト内の位置を占有しない。
【0005】
この装置により、所定のブロックのイントラ予測モードを決定するための有利かつ効率的な方法が導入される。特に、最も可能性の高いイントラ予測モードのリストを形成するための、所定のブロックに隣接する隣接ブロックの予測の有利な分析が提示され、隣接ブロックはすでに予測されている。
【0006】
一実施形態によれば、装置は、隣接ブロックの各々について、DCイントラ予測モードを含む第1のセットを有する少なくとも1つの非角度イントラ予測モードのいずれかを使用して予測されるか、またはブロックベースのイントラ予測モードの第2のセットから、最も可能性のあるイントラ予測モードのリストの形成に使用される第1のセット内のイントラ予測モードへのマッピングによって、少なくとも1つの非角度イントラ予測モードのいずれかにマッピングされるブロックベースのイントラ予測モードのいずれかを使用して予測される場合にのみ、最も可能性のあるイントラ予測モードのリストがDCイントラ予測モードで埋められるように、所定のブロックに隣接する隣接ブロックが予測されるときを使用して、イントラ予測モードに基づいて最も可能性のあるイントラ予測モードのリストの形成を実行するように構成される。言い換えれば、最も可能性の高いイントラ予測モードのリストは、イントラ予測モードの第1のセットの少なくとも1つの非角度イントラ予測モードのいずれかを使用して、すべての隣接ブロック、例えば両方の隣接ブロックの予測の場合のDCイントラ予測モードを含む。あるいは、最も可能性の高いイントラ予測モードのリストは、イントラ予測モードの第2のセットのブロックベースのイントラ予測モードのいずれかを使用して、すべての隣接ブロック、例えば両方の隣接ブロックの予測の場合のDCイントラ予測モードを含み、ブロックベースのイントラ予測モードは、ブロックベースのイントラ予測モードの第2のセットから第1のセット内の非角度イントラ予測モードにマッピングされる。一実施形態によれば、装置は、最も可能性の高いイントラ予測モードのリスト内の任意の角度イントラ予測モードの前にDCイントラ予測モードを位置決めするように構成される。これは、上記のケースでは、DCイントラ予測モードが所定のブロックの最も可能性の高いモードであり、それによってこの位置決めが符号化効率を高めるという考えに基づく。
【0007】
一実施形態によれば、装置は、イントラ予測モードの第1のセットの所定のイントラ予測モードが最も可能性の高いイントラ予測モードのリスト内にあることを示すMPMシンタックス要素の場合にのみ、データストリームからMPMシンタックス要素を導出し、最も可能性の高いイントラ予測モードのリストを形成するように構成される。この特徴により、最も可能性の高いイントラ予測モードのリストは、必要または有利な場合にのみ形成されるため、符号化効率が向上する。
【0008】
所定のブロックがイントラ予測モードの第2のセットのうちの1つを使用して予測されるべきである場合、装置は、一実施形態によれば、最も可能性の高いブロックベースのイントラ予測モードのリストを形成するように構成される。この場合、装置は、例えば、最も可能性の高いブロックベースのイントラ予測モードのリストを所定の行列ベースのイントラ予測モード、すなわち所定のブロックベースのイントラ予測モードを指すデータストリームからさらなるMPMリストインデックスを導出するように構成される。任意選択で、最も可能性の高いブロックベースのイントラ予測モードのこのリストは、データストリームから導出されたさらなるMPMシンタックス要素が、所定のブロックベースのイントラ予測モードが最も可能性の高いブロックベースのイントラ予測モードのリスト内にあることを示す場合にのみ形成される。
【0009】
したがって、装置は、例えば、イントラ予測モードの第1のセットおよびイントラ予測モードの第2のセットのための異なるMPMリストを形成するように構成される。最も可能性の高いイントラ予測モードのリストは、例えば、イントラ予測モードの第1のセットのイントラ予測モードを備え、最も可能性の高いブロックベースのイントラ予測モードのリストは、例えば、イントラ予測モードの第2のセット、すなわちブロックベースのイントラ予測モードの第2のセットのイントラ予測モードを備える。これにより、ブロックベースのイントラ予測モードが、全体的なMPMリスト内の位置に対して、イントラ予測モードの第1のセットのイントラ予測モード、例えばDCイントラ予測モードおよび角度予測モードと競合する必要がないことが可能になる。この分離により、所定のブロックのイントラ予測モードが実際にはそれぞれのMPMリスト内にある可能性が高くなる。
【0010】
一実施形態は、イントラ予測を使用して画像の所定のブロックを符号化するための装置であって、DCイントラ予測モードおよび角度予測モードを含むイントラ予測モードの第1のセットのうちの1つを使用して所定のブロックが予測されるべきかどうかを示すデータストリーム内のセット選択的シンタックス要素をシグナリングするように構成される装置に関する。任意選択で、イントラ予測モードの第1のセットは、DCイントラ予測モードに加えて、またはその代わりに、平面イントラ予測モードを含み得る。セット選択的シンタックス要素が、イントラ予測モードの第1のセットのうちの1つを使用して所定のブロックが予測されるべきであることを示す場合、装置は、所定のブロックに隣接する隣接ブロックが予測されるときを使用してイントラ予測モードに基づいて最も可能性の高いイントラ予測モードのリストを形成し、最も可能性の高いイントラ予測モードのリストを所定のイントラ予測モード上に指し示すデータストリーム内のMPMリストインデックスをシグナリングし、所定のイントラ予測モードを使用して所定のブロックをイントラ予測するように構成される。言い換えれば、この場合、装置は、所定のブロックに隣接する隣接ブロックの予測に使用されるイントラ予測モードに基づいて、最も可能性の高いイントラ予測モードのリストを形成するように構成される。セット選択的シンタックス要素が、イントラ予測モードの第1のセットのうちの1つを使用して所定のブロックが予測されるべきではないことを示す場合、装置は、予測ベクトルを取得するために所定のブロックの近隣内の参照サンプルから導出されたベクトルと所定の行列ベースのイントラ予測モードに関連付けられた所定の予測行列との間の行列ベクトル積を計算し、予測ベクトルに基づいて所定のブロックのサンプルを予測することによって、行列ベースのイントラ予測モードの第2のセット、すなわち行列ベースのイントラ予測モードを含むイントラ予測モードの第2のセットのうちの所定の行列ベースのイントラ予測モードを示すデータストリーム内のさらなるインデックスをシグナリングするように構成される。この場合、予測は、例えば、図5図11の実施形態に関して説明したALWIP予測と同様または等しい。最も可能性の高いイントラ予測モードのリストは、隣接ブロックが角度イントラ予測モードのいずれかによって予測されている場合に、最も可能性の高いイントラ予測モードのリストがDCイントラ予測モードを含まないように、所定のブロックに隣接する隣接ブロックが予測されるときを使用して、イントラ予測モードに基づいて形成される。換言すれば、最も可能性の高いイントラ予測モードのリストは、隣接するブロックが角度イントラ予測モードのいずれかによって排他的に予測されている場合に、最も可能性の高いイントラ予測モードのリストがDCイントラ予測モードを含まないように、所定のブロックに隣接する隣接ブロックが予測されるときに使用されるイントラ予測モードに基づいて形成される。
【0011】
一実施形態は、イントラ予測を使用して画像の所定のブロックを復号するための方法であって、DCイントラ予測モードおよび角度予測モードを含むイントラ予測モードの第1のセットのうちの1つを使用して所定のブロックが予測されるべきかどうかを示すセット選択的シンタックス要素をデータストリームから導出するステップを含む、方法に関する。セット選択的シンタックス要素が、イントラ予測モードの第1のセットのうちの1つを使用して所定のブロックが予測されるべきであることを示す場合、本方法は、所定のブロックに隣接する隣接ブロックが予測されるときを使用してイントラ予測モードに基づいて最も可能性の高いイントラ予測モードのリストを形成するステップと、最も可能性の高いイントラ予測モードのリストを所定のイントラ予測モード上に指し示すMPMリストインデックスをデータストリームから導出するステップと、所定のイントラ予測モードを使用して所定のブロックをイントラ予測するステップとを含む。セット選択的シンタックス要素が、イントラ予測モードの第1のセットのうちの1つを使用して所定のブロックが予測されるべきではないことを示す場合、本方法は、予測ベクトルを取得するために、所定のブロックの近傍の参照サンプルから導出されたベクトルと所定の行列ベースのイントラ予測モードに関連付けられた所定の予測行列との間の行列ベクトル積を計算し、予測ベクトルに基づいて所定のブロックのサンプルを予測することによって、行列ベースのイントラ予測モードの第2のセットのうちの所定の行列ベースのイントラ予測モードを示すさらなるインデックスをデータストリームから導出するステップを含む。最も可能性の高いイントラ予測モードのリストは、隣接ブロックが角度イントラ予測モードのいずれかによって予測されている場合に、最も可能性の高いイントラ予測モードのリストがDCイントラ予測モードを含まないように、所定のブロックに隣接する隣接ブロックが予測されるときを使用して、イントラ予測モードに基づいて形成される。換言すれば、最も可能性の高いイントラ予測モードのリストは、隣接するブロックが角度イントラ予測モードのいずれかによって排他的に予測されている場合に、最も可能性の高いイントラ予測モードのリストがDCイントラ予測モードを含まないように、所定のブロックに隣接する隣接ブロックが予測されるときに使用されるイントラ予測モードに基づいて形成される。
【0012】
一実施形態は、イントラ予測を使用して画像の所定のブロックを符号化するための方法であって、DCイントラ予測モードおよび角度予測モードを含むイントラ予測モードの第1のセットのうちの1つを使用して所定のブロックが予測されるべきかどうかを示すデータストリーム内のセット選択的シンタックス要素をシグナリングするステップを含む、方法に関する。セット選択的シンタックス要素が、イントラ予測モードの第1のセットのうちの1つを使用して所定のブロックが予測されるべきであることを示す場合、方法は、所定のブロックに隣接する隣接ブロックが予測されるときを使用してイントラ予測モードに基づいて最も可能性の高いイントラ予測モードのリストを形成するステップと、最も可能性の高いイントラ予測モードのリストを所定のイントラ予測モード上に向けるデータストリーム内のMPMリストインデックスをシグナリングするステップと、所定のイントラ予測モードを使用して所定のブロックをイントラ予測するステップとを含む。セット選択的シンタックス要素が、イントラ予測モードの第1のセットのうちの1つを使用して所定のブロックが予測されるべきでないことを示す場合、方法は、予測ベクトルを取得するために、所定のブロックの近傍の参照サンプルから導出されたベクトルと所定の行列ベースのイントラ予測モードに関連付けられた所定の予測行列との間の行列ベクトル積を計算するステップと、予測ベクトルに基づいて所定のブロックのサンプルを予測するステップとによって、第2のセットの行列ベースのイントラ予測モードのうちの所定の行列ベースのイントラ予測モードを示すデータストリーム内のさらなるインデックスをシグナリングするステップとを含む。最も可能性の高いイントラ予測モードのリストは、隣接ブロックが角度イントラ予測モードのいずれかによって予測されている場合に、最も可能性の高いイントラ予測モードのリストがDCイントラ予測モードを含まないように、所定のブロックに隣接する隣接ブロックが予測されるときを使用して、イントラ予測モードに基づいて形成される。換言すれば、最も可能性の高いイントラ予測モードのリストは、隣接するブロックが角度イントラ予測モードのいずれかによって排他的に予測されている場合に、最も可能性の高いイントラ予測モードのリストがDCイントラ予測モードを含まないように、所定のブロックに隣接する隣接ブロックが予測されるときに使用されるイントラ予測モードに基づいて形成される。
一実施形態は、本明細書に記載の符号化方法を使用して符号化された画像を有するデータストリームに関する。
一実施形態は、コンピュータ上で実行されると、本明細書に記載の方法を実行するためのプログラムコードを有するコンピュータプログラムに関する。
【図面の簡単な説明】
【0013】
図面は、必ずしも縮尺通りではなく、代わりに一般に本発明の原理を説明することに重点が置かれている。以下の説明では、本発明の様々な実施形態が、以下の図面を参照して説明される。
図1】データストリームへの符号化の一実施形態を示す図である。
図2】符号化器の一実施形態を示す図である。
図3】画像の再構成の一実施形態を示す図である。
図4】復号器の一実施形態を示す図である。
図5】一実施形態による、符号化および/または復号のためのブロックの予測の概略図である。
図6】一実施形態による、符号化および/または復号のためのブロックの予測のための行列演算を示す図である。
図7.1】一実施形態による、低減されたサンプル値ベクトルを有するブロックの予測を示す図である。
図7.2】一実施形態によるサンプルの補間を使用したブロックの予測を示す図である。
図7.3】一実施形態による、いくつかの境界サンプルのみが平均化される、サンプル値ベクトルが削減されたブロックの予測を示す図である。
図7.4】一実施形態による、低減されたサンプル値ベクトルを有するブロックの予測を示し、4つの境界サンプルのグループが平均化される。
図8】一実施形態による装置によって実行される行列演算を示す図である。
図9a】一実施形態による装置によって実行される詳細な行列演算を示す図である。
図9b-9c】一実施形態による装置によって実行される詳細な行列演算を示す図である。
図10】一実施形態による、オフセットおよびスケーリングパラメータを使用して装置によって実行される詳細な行列演算を示す図である。
図11】異なる実施形態による、オフセットおよびスケーリングパラメータを使用して装置によって実行される詳細な行列演算を示す図である。
図12】一実施形態による所定のブロックを復号するための装置の概略図である。
図13】一実施形態による所定のブロックの復号および符号化の詳細を示す概略図である。
図14】一実施形態による所定のブロックを符号化するための装置の概略図である。
図15】一実施形態による所定のブロックを復号するための方法のブロック図である。
図16】一実施形態による所定のブロックを符号化するための方法のブロック図を示す。
【発明を実施するための形態】
【0014】
同じもしくは同等の要素、または同じもしくは同等の機能を有する要素は、異なる図で発生する場合であっても、以下の説明では同じまたは同等の参照番号で示される。
【0015】
以下の説明では、本発明の実施形態のより全体的な説明を提供するために、複数の詳細が記載される。しかしながら、本発明の実施形態がこれらの具体的な詳細なしに実施され得ることは、当業者には明らかであろう。他の例では、本発明の実施形態を不明瞭にすることを避けるために、周知の構造およびデバイスが詳細ではなくブロック図形式で示されている。さらに、後に本明細書に記載される異なる実施形態の特徴は、特に明記しない限り、互いに組み合わせることができる。
1 序論
【0016】
以下では、異なる本発明の実施例、実施形態および態様を説明する。これらの例、実施形態、および態様の少なくともいくつかは、とりわけ、ビデオコーディングのための、および/または例えば隣接するサンプル低減を伴う線形もしくはアフィン変換を使用してイントラ予測を実行するための、および/または例えばビデオアプリケーションおよび/または仮想現実アプリケーションのためのビデオ配信(例えば、放送、ストリーミング、ファイル再生などである)を最適化するための方法および/または装置に関する。
【0017】
さらに、例、実施形態、および態様は、高効率ビデオ符号化(HEVC)または後継を参照し得る。また、さらなる実施形態、例および態様は、添付の特許請求の範囲によって定義される。
【0018】
特許請求の範囲によって定義される任意の実施形態、例および態様は、以下の章に記載される詳細(特徴および機能)のいずれかによって補足することができることに留意されたい。
【0019】
また、以下の章に記載される実施形態、例、および態様は、個別に使用することができ、別の章の特徴のいずれか、または特許請求の範囲に含まれる任意の特徴によって補足することもできる。
【0020】
また、本明細書に記載の個々の例、実施形態および態様は、個別にまたは組み合わせて使用することができることに留意されたい。したがって、詳細は、上記例、実施形態および態様のうちの別の1つに詳細を追加することなく、上記個々の態様の各々に追加することができる。
本開示は、復号および/または符号化システムおよび/または方法の特徴を明示的または暗黙的に説明することにも留意されたい。
【0021】
さらに、方法に関連して本明細書に開示された特徴および機能を装置で使用することもできる。さらに、装置に関して本明細書に開示された任意の特徴および機能を、対応する方法で使用することもできる。言い換えれば、本明細書に開示された方法は、装置に関して説明された特徴および機能のいずれかによって補完することができる。
【0022】
また、本明細書に記載されている特徴および機能のいずれも、「実装選択肢」のセクションで説明するように、ハードウェアもしくはソフトウェアで、またはハードウェアとソフトウェアの組み合わせを使用して実装することができる。
【0023】
さらに、括弧内に記載された特徴のいずれか(「(...)」または「[...]」)は、いくつかの例、実施形態、または態様では任意選択であると見なされ得る。
2 符号化器、復号器
【0024】
以下では、ブロックベースの予測を使用する場合に、より効果的な圧縮を達成するのを支援することができる様々な例を説明する。いくつかの例は、イントラ予測モードのセットを費やすことによって高い圧縮効率を達成する。後者は、例えばヒューリスティックに設計された他のイントラ予測モードに追加されてもよく、または排他的に提供されてもよい。また、さらに他の例では、前述の専門分野の両方を利用している。しかしながら、これらの実施形態の振動として、イントラ予測は、代わりに別の画像内の参照サンプルを使用することによってインター予測に変換され得る。
【0025】
本出願の以下の例の理解を容易にするために、説明は、続いて概説される本出願の例を構築することができる可能な符号化器およびそれに嵌合する復号器の提示から始まる。図1は、画像10をデータストリーム12にブロック単位で符号化するための装置を示す。装置は、参照符号14を使用して示され、静止画符号化器またはビデオ符号化器であってもよい。言い換えれば、符号化器14が画像10を含むビデオ16をデータストリーム12に符号化するように構成されている場合、画像10は、ビデオ16のうちの現在の画像であってもよく、または符号化器14は、画像10をデータストリーム12に排他的に符号化してもよい。
【0026】
上述したように、符号化器14は、ブロック単位またはブロックベースで符号化を実行する。これのために、符号化器14は画像10をブロックに細分し、ブロックの単位で符号化器14は画像10をデータストリーム12に符号化する。画像10のブロック18への可能な細分化の例は、以下により詳細に記載される。一般に、細分化は、画像10の画像エリア全体から、または画像10の事前分割からツリーブロックのアレイへのマルチツリー細分化を開始する階層マルチツリー細分化の使用などによって、行および列に配置されたブロックのアレイなどの一定サイズのブロック18、または異なるブロックサイズのブロック18に終了することができ、これらの例は、画像10をブロック18に細分化する他の可能な方法を除外するものとして扱われない。
【0027】
さらに、符号化器14は、画像10をデータストリーム12に予測的に符号化するように構成された予測符号化器である。特定のブロック18の場合、これは、符号化器14がブロック18の予測信号を決定し、予測残差、すなわち予測信号がブロック18内の実際の画像コンテンツから逸脱する予測誤差をデータストリーム12に符号化することを意味する。
【0028】
符号化器14は、あるブロック18の予測信号を導出するために、異なる予測モードをサポートし得る。以下の例で重要である予測モードはイントラ予測モードであり、それに従ってブロック18の内側が画像10の隣接する既に符号化されたサンプルから空間的に予測される。画像10のデータストリーム12への符号化、したがって対応する復号手順は、ブロック18間で定義された特定の符号化順序20に基づくことができる。例えば、符号化順序20は、例えば、各行を左から右にトラバースしながら、上から下へ行ごとなどのラスタスキャン順序でブロック18をトラバースすることができる。階層的マルチツリーベースの細分化の場合、ラスタースキャン順序付けは各階層レベル内で適用されてもよく、深さ優先トラバーサル順序が適用されてもよく、すなわち、特定の階層レベルのブロック内のリーフノードは、符号化順序20に従って同じ親ブロックを有する同じ階層レベルのブロックに先行してもよい。符号化順序20に応じて、ブロック18の隣接する既に符号化されたサンプルは、通常、ブロック18の1つまたは複数の側に位置することができる。本明細書に提示される例の場合、例えば、ブロック18の隣接する既に符号化されたサンプルは、ブロック18の上部および左側に位置する。
【0029】
イントラ予測モードは、符号化器14によってサポートされている唯一のモードではない場合があり得る。例えば、符号化器14がビデオ符号化器である場合、符号化器14はまた、ビデオ16の以前に符号化された画像から、ブロック18が一時的に予測されるインター予測モードをサポートし得る。そのようなインター予測モードは、動き補償予測モードであってもよく、それに従って、ブロック18の予測信号がコピーとして導出される部分の相対空間オフセットを示す動きベクトルがそのようなブロック18に対してシグナリングされる。それに加えて、またはその代わりに、符号化器14がマルチビュー符号化器である場合のインター予測モード、またはブロック18の内部がそのまま、すなわち予測なしで符号化される非予測モードなどの他の非イントラ予測モードも利用可能であり得る。
【0030】
本出願の説明をイントラ予測モードに集中することから始める前に、図2に関して説明したように、可能なブロックベースの符号化器、すなわち符号化器14の可能な実装形態のより具体的な例を示し、次に、それぞれ図1および図2に適合する復号器の2つの対応する例を示す。
【0031】
図2は、図1の符号化器14の可能な実装形態、すなわち、符号化器が予測残差を符号化するために変換符号化を使用するように構成されているが、これはほぼ一例であり、本出願はその種の予測残差符号化に限定されない。図2によれば、符号化器14は、インバウンド信号、すなわち画像10、またはブロックベースで現在のブロック18から対応する予測信号24を減算して、予測残差符号化器28によってデータストリーム12に符号化される予測残差信号26を取得するように構成された減算器22を備える。予測残差符号化器28は、非可逆符号化段階28aと可逆符号化段階28bとから構成される。非可逆段28aは、予測残差信号26を受け取り、予測残差信号26のサンプルを量子化する量子化器30を備える。既に上述したように、本例は、予測残差信号26の変換符号化を使用し、したがって、損失性符号化段28aは、そのようなスペクトル分解された予測残差26を変換するように減算器22と量子化器30との間に接続された変換段32を備え、量子化器30の量子化は、残差信号26を提示する変換係数に対して行われる。変換は、DCT、DST、FFT、アダマール変換などであってもよい。次いで、変換され量子化された予測残差信号34は、エントロピーコーダのエントロピー符号化量子化された予測残差信号34である可逆符号化段28bによって可逆符号化されてデータストリーム12になる。符号化器14は、変換および量子化された予測残差信号34から復号器でも利用可能な方法で予測残差信号を再構成するように、量子化器30の出力に接続された予測残差信号再構成段36をさらに備え、すなわち符号化損失を量子化器30で考慮する。この目的のために、予測残差再構成段36は、量子化器30の量子化の逆を実行する逆量子化器38と、その後に続く、上述の特定の変換例のいずれかに対する逆などのスペクトル分解の逆など、変換器32によって実行される変換に対して逆変換を実行する逆変換器40とを備える。符号化器14は、逆変換器40によって出力された再構築された予測残差信号と予測信号24とを加算して、再構築された信号、すなわち再構築されたサンプルを出力する加算器42を備える。この出力は、符号化器14の予測器44に供給され、予測器44は、予測信号24をそれに基づいて決定する。これは、図1に関してすでに上述したすべての予測モードをサポートする予測器44である。図2はまた、符号化器14がビデオ符号化器である場合、符号化器14が、フィルタリングされた後、インター予測ブロックに関する予測器44のための参照画像を形成する、完全に再構成された画像をフィルタリングするインループフィルタ46を備えてもよいことを示す。
【0032】
既に上述したように、符号器14はブロックベースで動作する。以下の説明のために、関心のあるブロックベースは、予測器44または符号器14によってそれぞれサポートされるセットまたは複数のイントラ予測モードからイントラ予測モードが選択され、選択されたイントラ予測モードが個別に実行されるブロックに、一個の細分化画像10である。しかしながら、画像10が細分される他の種類のブロックも存在し得る。例えば、画像10がインター符号化されるかイントラ符号化されるかの上述の決定は、粒度で、またはブロック18から逸脱するブロックの単位で行われ得る。例えば、インター/イントラモード決定は、画像10が再分割され、各符号化ブロックが予測ブロックに再分割される符号化ブロックのレベルで実行されてもよい。イントラ予測が使用されると決定された符号化ブロックを有する予測ブロックは、それぞれイントラ予測モード決定に細分される。これに対して、これらの予測ブロックのそれぞれについて、それぞれの予測ブロックに対してどのサポートされるイントラ予測モードを使用すべきかが決定される。これらの予測ブロックは、ここで関心のあるブロック18を形成する。インター予測に関連付けられた符号化ブロック内の予測ブロックは、予測器44によって異なるように扱われる。それらは、動きベクトルを決定し、動きベクトルによって指し示される参照画像内の位置からこのブロックの予測信号をコピーすることによって、参照画像から相互予測される。別のブロック細分化は、変換器32および逆変換器40による変換が実行される単位での変換ブロックへの細分化に関する。変換されたブロックは、例えば、符号化ブロックをさらに細分化した結果であり得る。当然ながら、本明細書に記載の実施例は限定的であるとして扱われるべきではなく、他の実施例も存在する。完全を期すためだけに、符号化ブロックへの細分化は、例えば、マルチツリー細分化を使用してもよく、予測ブロックおよび/または変換ブロックは、マルチツリー細分化を使用して符号化ブロックをさらに細分化することによって取得されてもよいことに留意されたい。
【0033】
図1の符号化器14に適合するブロック単位の復号のための復号器54または装置が図3に示されている。この復号器54は、符号化器14とは反対のことを行い、すなわち、データストリーム12画像10からブロック単位で復号し、この目的のために、複数のイントラ予測モードをサポートする。復号器54は、例えば、残差プロバイダ156を備えることができる。図1に関して上述した他のすべての可能性は、復号器54にも有効である。これに対して、復号器54は、静止画復号器またはビデオ復号器であってもよく、すべての予測モードおよび予測可能性も復号器54によってサポートされる。符号化器14と復号器54との違いは、主に、符号化器14が、例えば、符号化レートおよび/または符号化歪みに依存し得る何らかのコスト関数を最小化するために、何らかの最適化に従って符号化決定を選択または選択するという事実にある。これらの符号化オプションまたは符号化パラメータのうちの1つは、利用可能またはサポートされるイントラ予測モードの中から、現在のブロック18に使用されるイントラ予測モードの選択を含み得る。次いで、選択されたイントラ予測モードは、復号器54がブロック18のデータストリーム12内のこのシグナリングを使用して選択を再実行することにより、データストリーム12内の現在のブロック18の符号化器14によってシグナリングされ得る。同様に、画像10のブロック18への細分化は、符号化器14内で最適化の対象とすることができ、対応する細分情報は、復号器54が細分情報に基づいて画像10の細分化をブロック18に復元することによってデータストリーム12内で伝達することができる。上記を要約すると、復号器54は、ブロックベースで動作する予測復号器であってもよく、また、イントラ予測モードに加えて、復号器54は、例えば復号器54がビデオ復号器である場合には、インター予測モードなどの他の予測モードをサポートしてもよい。復号において、復号器54はまた、図1に関して説明した符号化順序20を使用することができ、この符号化順序20は符号器14と復号器54の両方で遵守されるため、同じ隣接サンプルが符号器14と復号器54の両方で現在のブロック18に利用可能である。したがって、不必要な繰り返しを回避するために、符号化器14の動作モードの説明は、画像10のブロックへの細分化に関する限り、例えば、予測に関する限り、および予測残差の符号化に関する限り、復号器54にも適用されるものとする。違いは、符号化器14が、最適化によって、いくつかの符号化オプションまたは符号化パラメータを選択し、予測、細分化などを再実行するために、データストリーム12内に、その後、復号器54によってデータストリーム12から導出された符号化パラメータをシグナリングおよび挿入するという事実にある。
【0034】
図4は、図3の復号器54の可能な実装形態、すなわち、図2に示す図1の符号化器14の実装形態に対する1つのフィッティングを示す。図4の符号化器54の多くの要素は図2の対応する符号化器で生じるものと同じであるため、これらの要素を示すために、図4ではアポストロフィが付された同じ参照符号が使用されている。特に、加算器42’、オプションのインループフィルタ46’および予測器44’は、図2の符号器と同じ方法で予測ループに接続される。加算器42’に適用される再構成された、すなわち逆量子化され再変換された予測残差信号は、エントロピー符号化器28bのエントロピー符号化を逆にするエントロピー復号器56のシーケンスによって導出され、符号化側の場合と同様に、逆量子化器38’および逆変換器40’から構成される残差信号再構成段36’が続く。復号器の出力は、画像10の再構成である。画像10の再構成は、加算器42’の出力で直接利用可能であってもよく、あるいはインループフィルタ46’の出力で利用可能であってもよい。画像品質を改善するために画像10の再構成を何らかのポストフィルタリングにかけるために、復号器の出力にいくつかのポストフィルタを配置することができるが、このオプションは図4には示されていない。
【0035】
ここでも、図4に関して、図2に関して上述した説明は、符号化器のみが最適化タスクおよびコーディングオプションに関する関連する決定を実行することを除いて、図4についても同様に有効である。しかしながら、ブロック細分化、予測、逆量子化、および再変換に関するすべての説明は、図4の復号器54にも有効である。
3 ALWIP(アフィン線形重み付けイントラ予測器)
【0036】
ALWIPに関するいくつかの非限定的な例は、本明細書で説明される技術を具現化するのにALWIPが必ずしも必要ではない場合であっても、本明細書で説明される。
【0037】
本出願は、とりわけ、HEVCまたはHEVCの任意の後続のビデオコーデックで使用可能なようなブロック単位の画像符号化のための改善されたブロックベースの予測モード概念に関する。予測モードはイントラ予測モードであってもよいが、理論的には、本明細書に記載された概念は、参照サンプルが別の画像の一部であるインター予測モードにも移され得る。
ハードウェアフレンドリな実装などの効率的な実装を可能にするブロックベースの予測概念が求められている。
この目的は、本出願の独立請求項の主題によって達成される。
【0038】
イントラ予測モードは、画像およびビデオ符号化において広く使用されている。ビデオ符号化では、イントラ予測モードは、動き補償予測モードなどのインター予測モードなどの他の予測モードと競合する。イントラ予測モードでは、現在のブロックは、隣接するサンプル、すなわち、符号器側に関する限り既に符号化されており、復号器側に関する限り既に復号されているサンプルに基づいて予測される。隣接するサンプル値は、現在のブロックの予測信号を形成するように現在のブロックに外挿され、予測残差は現在のブロックのデータストリームで送信される。予測信号が良好であるほど、予測残差は小さくなり、したがって、予測残差を符号化するために必要なビット数は少なくなる。
【0039】
効果的であるためには、ブロックワイズ画像コーディング環境におけるイントラ予測のための効果的なフレームワークを形成するために、いくつかの態様が考慮されるべきである。例えば、コーデックによってサポートされるイントラ予測モードの数が多いほど、選択を復号器にシグナリングするためのサイド情報レート消費が大きくなる。一方、サポートされているイントラ予測モードのセットは、良好な予測信号、すなわち、低い予測残差をもたらす予測信号を提供することができなければならない。
【0040】
以下では、比較実施形態または基礎例として、データストリームから画像をブロック単位で復号するための装置(符号化器または復号器)であって、画像の所定のサイズのブロックに対するイントラ予測信号が、現在のブロックに隣接するサンプルの第1のテンプレートを、結局はアフィン線形重み付けイントラ予測器(Affine Linear Weighted Intra Predictor(ALWIP))と呼ばれるアフィン線形予測器に適用することによって決定される、少なくとも1つのイントラ予測モードをサポートする装置が開示される。
【0041】
装置は、以下の特性(同じことが、例えば、プロセッサによって実行されたときに、プロセッサに、方法を実施させ、かつ/または装置として動作させる命令を記憶する非一時的記憶ユニットに実装される、方法または別の技術に適用されてもよい)のうちの少なくとも1つを有し得る。
3.1 予測子は、他の予測子と相補的であり得る。
【0042】
以下でさらに説明される実施改善の主題を形成し得るイントラ予測モードは、コーデックの他のイントラ予測モードに対して相補的であり得る。したがって、それらは、HEVCコーデックおよびJEM参照ソフトウェアにおいて定義されたDC予測モード、平面予測モード、または角度予測モードを補完することができる。以降、後者の3種類のイントラ予測モードを従来のイントラ予測モードと呼ぶ。したがって、イントラモードの所与のブロックについて、装置によってサポートされるイントラ予測モードのうちの1つが使用されるべきか否かを示すフラグが復号器によって構文解析される必要がある。
3.2 2つ以上の提案された予測モード
【0043】
装置は、2つ以上のALWIPモードを含むことができる。したがって、装置によってサポートされるALWIPモードのうちの1つが使用されるべきであることを復号器が知っている場合、復号器は、装置によってサポートされるALWIPモードのうちのどれが使用されるべきかを示す追加情報を解析する必要がある。
【0044】
サポートされるモードの信号伝達は、いくつかのALWIPモードの符号化が他のALWIPモードよりも少ないビンを必要とし得るという特性を有し得る。これらのモードのうちのどれがより少ないビンを必要とし、どのモードがより多くのビンを必要とするかは、既に復号されたビットストリームから抽出され得るか、または事前に固定され得る情報に依存し得る。
4 いくつかの態様
【0045】
図2は、データストリーム12から画像を復号するための復号器54を示す。復号器54は、画像の所定のブロック18を復号するように構成され得る。特に、予測器44は、線形またはアフィン線形変換[例えば、ALWIP]を使用して所定のブロック18に隣接するP個の隣接サンプルのセットを所定のブロックのサンプルのQ個の予測値のセットにマッピングするように構成され得る。
【0046】
図5に示すように、所定のブロック18は、予測されるQ個の値(これは、動作の終わりに、「予測値」となる)を含む。ブロック18がM行N列を有する場合、Q=M・Nである。ブロック18のQ値は、空間領域(例えば、画素)または変換領域(例えば、DCT、離散ウェーブレット変換など)にあり得る。ブロック18のQ値は、一般にブロック18に隣接する隣接ブロック17a~17cから取得されたP値に基づいて予測することができる。隣接するブロック17a~17cのP値は、ブロック18に最も近い位置(例えば、隣接する)にあってもよい。隣接ブロック17a~17cのP値は、既に処理および予測されている。P値は、それらをそれらが(いくつかの例では、17’bは使用されない)の一部であるブロックと区別するために、部分17’a~17’cに値として示されている。
【0047】
図6に示すように、予測を実行するために、P個のエントリを有する第1のベクトル17P(各エントリは、隣接部分17’a~17’cの特定の位置に関連付けられている)、Q個のエントリを有する第2のベクトル18Q(各エントリは、ブロック18の特定の位置に関連付けられている)、およびマッピング行列17M(各行は、ブロック18内の特定の位置に関連付けられ、各列は、隣接する部分17’a~17’c内の特定の位置に関連付けられる)で動作することが可能である。したがって、マッピング行列17Mは、所定のモードに従って、隣接部分17’a~17’cのP値のブロック18の値への予測を実行する。したがって、マッピング行列17M内のエントリは、重み係数として理解することができる。以下の節では、17’a~17’cの代わりに符号17a~17cを使用して境界の隣接部分を参照する。
【0048】
当該技術分野では、DCモード、平面モード、および65方向予測モードなどのいくつかの従来のモードが知られている。例えば、67個のモードが知られている。
【0049】
しかしながら、ここでは線形またはアフィン線形変換と呼ばれる異なるモードを利用することも可能であることに留意されたい。線形またはアフィン線形変換は、P・Q個の重み係数を含み、そのうち少なくとも1/4 P・Q個の重み係数は非ゼロの重み値であり、Q個の予測値の各々について、それぞれの予測値に関する一連のP個の重み係数を含む。系列は、所定のブロックのサンプル間でラスタ走査順序に従って上下に配置されると、全方向的に非線形である包絡線を形成する。
【0050】
隣接する値17’a~17’c(テンプレート)のP個の位置、隣接するサンプル17’a~17’cのQ個の位置、および行列17MのP*Q個の重み係数の値をマッピングすることが可能である。平面は、DC変換のための系列の包絡線の一例である(DC変換のための平面である)。包絡線は明らかに平面であり、したがって線形またはアフィン線形変換(ALWIP)の定義によって除外される。別の例は、角度モードのエミュレーションをもたらす行列であり、包絡線はALWIP定義から除外され、平たく言えば、P/Q平面内の方向に沿って上から下に斜めに進む丘のように見える。平面モードおよび65方向予測モードは異なる包絡線を有するが、これは少なくとも一方向、すなわち、例えば例示されたDCのすべての方向、および例えば角度モードの丘方向において線形である。
【0051】
逆に、線形またはアフィン変換の包絡線は、全方向的に線形ではない。そのような種類の変換は、状況によっては、ブロック18の予測を実行するために最適であり得ることが理解されている。重み係数の少なくとも1/4が0と異なる(すなわち、P*Q重み係数の少なくとも25%は0とは異なる)ことが好ましいことに留意されたい。
【0052】
重み係数は、任意の規則的なマッピング規則に従って互いに無関係であってもよい。したがって、行列17Mは、そのエントリの値が明らかな認識可能な関係を有さないようなものであってもよい。例えば、重み係数は、いかなる分析関数または微分関数によっても記述することができない。
【0053】
例では、ALWIP変換は、それぞれの予測値に関連する第1の系列の重み係数と、それぞれの予測値以外の予測値に関連する第2の系列の重み係数との間の相互相関の最大値の平均、または後者の系列の反転されたバージョンは、最大値がより高くなるにもかかわらず、所定の閾値(例えば、0.2または0.3または0.35または0.1、例えば、0.05と0.035との間の範囲内の閾値)よりも低くてもよい。例えば、ALWIP行列17Mの行の結合(i、i)毎に、i行目のP値にi行目のP値を乗算することで相互相関を算出してもよい。得られた各相互相関について、最大値を得ることができる。したがって、行列17M全体(すなわち、すべての組み合わせにおける相互相関の最大値が平均化される)について平均(平均)を得ることができる。その後、閾値は、例えば、0.2または0.3または0.35または0.1、例えば、0.05から0.035の間の範囲の閾値であってもよい。
【0054】
ブロック17a~17cのP個の隣接サンプルは、所定のブロック18の境界(例えば、18c、18a)に沿って延びる一次元経路に沿って配置されてもよい。所定のブロック18のQ個の予測値のそれぞれについて、それぞれの予測値に関連する一連のP個の重み係数は、一次元経路を所定の方向(例えば、左から右、上から下など)に横断するように順序付けられてもよい。
例では、ALWIP行列17Mは、非対角または非ブロック対角であってもよい。
4つの既に予測された隣接するサンプルから4×4ブロック18を予測するためのALWIP行列17Mの例は、以下であってもよい。

{ 37,59,77,28},
{ 32,92,85,25},
{ 31,69,100,24},
{ 33,36,106,29},
{ 24,49,104,48},
{ 24,21,94,59},
{ 29,0,80,72},
{ 35,2,66,84},
{ 32,13,35,99},
{ 39,11,34,103},
{ 45,21,34,106},
{ 51,24,40,105},
{ 50,28,43,101},
{ 56,32,49,101},
{ 61,31,53,102},
{ 61,32,54,100}
}.
【0055】
(ここで、{37、59、77、28}は行列17Mの第1行であり、{32、92、85、25}は第2行であり、{61、32、54、100}は16行目である)。行列17Mは、次元16×4を有し、(16*4=64の結果として)64個の重み係数を含む。これは、行列17Mが次元Q×Pを有するためであり、ここで、Q=M*Nは予測対象ブロック18(ブロック18は4×4ブロック)のサンプル数であり、Pは既に予測されたサンプルのサンプル数である。ここで、M=4、N=4、Q=16(M*N=4*4=16の結果として)、P=4である。行列は、非対角および非ブロック対角であり、特定の規則によって記述されない。
【0056】
見て分かるように、重み係数の1/4未満が0である(上記の行列の場合、64のうちの1つの重み係数は0である)。これらの値によって形成される包絡線は、ラスタ走査順序に従って1つ下に配置されると、全方向的に非線形である包絡線を形成する。
上記の説明が主に復号器(例えば、復号器54)を参照して説明されている場合でも、同じことが符号化器(例えば、符号化器14)で実行されてもよい。
【0057】
いくつかの例では、(ブロック・サイズのセットにおける)各ブロック・サイズについて、それぞれのブロック・サイズのためのイントラ予測モードの第2のセット内のイントラ予測モードのALWIP変換は、相互に異なる。それに加えて、またはその代わりに、ブロック・サイズのセットにおけるブロック・サイズのためのイントラ予測モードの第2のセットのカーディナリティは、一致し得るが、異なるブロック・サイズのためのイントラ予測モードの第2のセット内のイントラ予測モードの関連付けられた線形変換またはアフィン線形変換は、スケールすることによって、互いに移転不可能であり得る。
【0058】
いくつかの例では、ALWIP変換は、従来の変換(例えば、ALWIP変換は、上記のマッピングのうちの1つを介してマッピングされているにもかかわらず、対応する従来の変換と共有するための「何もない」を有することができる)と「共有するものがない」ように定義されてもよい。
【0059】
例では、ALWIPモードはルマ成分とクロマ成分の両方に使用されるが、他の例では、ALWIPモードはルマ成分に使用されるが、クロマ成分には使用されない。
5 符号器の高速化によるアフィン線形加重イントラ予測モード(例えば、試験CE3-1.2.1)
5.1 方法または装置の説明
【0060】
CE3-1.2.1で試験されたアフィン線形加重イントラ予測(ALWIP)モードは、以下の変更を除いて、試験CE3-2.2.2の下でJVET-L0199で提案されたものと同じであり得る。
【0061】
・多重基準線(MRL)イントラ予測、特に符号化器推定およびシグナリングとの整合、すなわちMRLはALWIPと組み合わされず、MRLインデックスの送信は非ALWIPブロックに制限される。
【0062】
・サブサンプリングはすべてのブロックに必須W×H≧32×32(以前は32×32についてオプションであった)である。したがって、符号化器における追加のテストおよびサブサンプリングフラグの送信は除去されている。
【0063】
・64×NおよびN×64ブロック(N≦32)のALWIPは、それぞれ32×NおよびN×32にダウンサンプリングし、対応するALWIPモードを適用することによって追加されている。
さらに、テストCE3-1.2.1は、ALWIPのための以下の符号化器最適化を含む。
【0064】
・結合モード推定:従来のモードおよびALWIPモードは、フルRD推定のために共有アダマール候補リストを使用する、すなわち、ALWIPモード候補は、アダマール費用に基づいて従来の(およびMRL)モード候補と同じリストに追加される。
【0065】
・EMTイントラfastおよびPBイントラfastは、結合モードリストのためにサポートされ、フルRDチェックの数を減らすための追加の最適化がある。
・利用可能な左および上のブロックのMPMのみが、従来のモードの場合と同じ手法に従って、ALWIPのフルRD推定のためのリストに追加される。
5.2 複雑性評価
【0066】
離散コサイン変換を呼び出す計算を除いて、テストCE3-1.2.1では、予測信号を生成するためにサンプルあたり最大12回の乗算が必要であった。さらに、それぞれ16ビットの合計136個の492個のパラメータが必要であった。これは、0.273メガバイトのメモリに相当する。
5.3 実験結果
【0067】
試験の評価は、VTMソフトウェアバージョン3.0.1を用いたイントラ専用(AI)およびランダムアクセス(RA)構成について、共通の試験条件JVET-J1010[2]に従って実施した。対応するシミュレーションは、Linux(登録商標) OSおよびGCC 7.2.1コンパイラを備えたIntel Xeonクラスタ(E5-2697A v4、AVX2オン、ターボブーストオフ)上で実行された。
【0068】
【表1】
【0069】
【表2】
5.4 複雑度低減を伴うアフィン線形重み付きイントラ予測(例えば、試験CE3-1.2.2)
【0070】
CE2で試験された技法は、JVET-L0199[1]に記載されている「アフィン線形イントラ予測」に関連しているが、メモリ要件および計算複雑性の点でそれを単純化する。
【0071】
・すべてのブロック形状をカバーする予測行列(例えば、S、S、S、以下も参照されたい)およびバイアスベクトル(例えば、オフセット値を提供するために)の3つの異なるセットのみが存在し得る。結果として、パラメータの数は14400個の10ビット値に減少し、これは
【数1】
CTUに記憶されるよりもメモリが少ない。
【0072】
・予測子の入力および出力サイズはさらに低減される。さらに、DCTを介して境界を変換する代わりに、平均化またはダウンサンプリングを境界サンプルに対して実行することができ、予測信号の生成は、逆DCTの代わりに線形補間を使用することができる。その結果、予測信号を生成するために、サンプルあたり最大4回の乗算が必要となり得る。
6 実施例
ここでは、ALWIP予測を用いていくつかの予測(例えば、図6に示すように)を実行する方法について説明する。
【0073】
原則として、図6を参照すると、予測されるM×Nブロック18のQ=M*N値を取得するために、Q×P ALWIP予測行列17MのQ*PサンプルとP×1隣接ベクトル17PのPサンプルとの乗算が実行されるべきである。したがって、一般に、予測対象のM×Nブロック18のQ=M*N個の値の各々を得るためには、少なくともP=M+N個の値の乗算が必要である。
【0074】
これらの乗算は、極めて望ましくない効果を有する。境界ベクトル17Pの次元Pは、一般に、予測されるべきM×Nブロック18に隣接する(例えば、隣接する)境界サンプル(ビンまたは画素)17a、17cの数M+Nに依存する。これは、予測対象のブロック18のサイズが大きいと、それに応じて境界画素数M+N(17a、17c)が大きくなるため、P×1境界ベクトル17Pの次元P=M+N、Q×P ALWIP予測行列17Mの各行の長さ、ひいては必要な乗算回数(一般的に言えば、Q=M*N=W*Hであり、式中、W(Width)はNの別の記号であり、H(Height)はMの別の記号であり、Pは、境界ベクトルがサンプルの1行および/または1列のみによって形成される場合、P=M+N=H+Wである)が大きくなることを意味する。
【0075】
この問題は、一般に、マイクロプロセッサベースのシステム(または他のデジタル処理システム)では、乗算が一般に電力を消費する動作であるという事実によって悪化する。多数のブロックの非常に多数のサンプルに対して搬送される多数の乗算は、一般に望ましくない計算能力の浪費を引き起こすと推測され得る。
したがって、M×Nブロック18を予測するために必要な乗算数Q*Pを低減することが好ましい。
【0076】
乗算に代わる、処理がより容易な演算を知的に選択することによって、予測される各ブロック18の各イントラ予測に必要な計算能力を何らかの形で低減することが可能であることが理解されている。
【0077】
特に、図7.1~図7.4を参照すると、符号化器または復号器は、複数の隣接するサンプル(例えば、17a、17c)を使用して、(例えば、ステップ811で)、(例えば、平均化またはダウンサンプリングによって)、複数の隣接するサンプル(例えば、17a、17c)を減少させて、複数の隣接するサンプルと比較してより低いサンプル数の減少したサンプル値のセットを取得することによって、(例えば、ステップ812で)減少したサンプル値のセットを線形またはアフィン線形変換に供して、所定のブロックの所定のサンプルの予測値を取得することによって、画像の所定のブロック(例えば、18)を予測し得ることが理解されてきた。
【0078】
場合によっては、復号器または符号化器はまた、例えば補間によって、所定のサンプルおよび複数の隣接するサンプルの予測値に基づいて、所定のブロックのさらなるサンプルの予測値を導出することができる。したがって、アップサンプリング戦略を得ることができる。
【0079】
例では、サンプル数が減少したサンプルの減少したセット102(図7.1~図7.4)に到達するように、境界17のサンプルに対していくつかの平均を実行する(例えば、ステップ811において)ことが可能である(低減された数のサンプル102のサンプルの少なくとも一方は、元の境界サンプルの2つのサンプルの平均、または元の境界サンプルの選択であってもよい)。例えば、元の境界がP=M+N個のサンプルを有する場合、サンプルの削減されたセットは、Mred<MおよびNred<Nのうちの少なくとも1つで、Pred<Pとなるように、Pred=Mred+Nredを有することができる。したがって、予測に実際に使用される境界ベクトル17P(例えば、ステップ812bにおいて)は、P×1エントリを有さず、Pred<PでPred×1エントリを有する。同様に、予測のために選択されたALWIP予測行列17Mは、Q×P次元を有さず、少なくともPred<Pのために(Mred<MおよびNred<Nのうちの少なくとも1つのために)行列の要素数が削減されたQ×Pred(またはQredxPred、以下を参照)を有する。
【0080】
いくつかの例(例えば、図7.2、図7.3)では、(ステップ812で)ALWIPによって取得されたブロックが、
【数2】
サイズ、
【数3】
および/または
【数4】
(すなわち、ALWIPによって直接予測されるサンプルの数は、実際に予測されるブロック18のサンプルの数よりも少ない)を有する縮小されたブロックである場合、乗算の回数をさらに減らすことさえ可能である。したがって、
【数5】
と設定すると、これにより、Q*Pred乗算の代わりにQred*Pred乗算(Qred*Pred<Q*Pred<Q*P)を使用することによってALWIP予測が得られる。この乗算は、
【数6】
次元を有する縮小ブロックを予測する。それにもかかわらず、低減された
【数7】
予測ブロックから最終的なM×N予測ブロックへのアップサンプリング(例えば、補間によって得られる)を実行する(例えば、後続のステップ813において)ことが可能である。
【0081】
これらの技法は、行列乗算が低減された乗算数(Qred*PredまたはQ*Pred)を含む一方で、初期低減(例えば、平均化またはダウンサンプリング)および最終変換(例えば補間)の両方が乗算を低減(または回避)することによって実行され得るので、有利であり得る。例えば、加算およびシフトなどの非計算電力を必要とするバイナリ演算を採用することによって、ダウンサンプリング、平均化および/または補間を実行することができる(例えば、ステップ811および/または813において)。
また、追加は、多くの計算労力なしに容易に実行できる非常に簡単な操作である。
【0082】
このシフト演算は、例えば、最終的な予測ブロックを得るために、2つの境界サンプルを平均化するために、および/または縮小された予測ブロックの(または境界から得られた)2つのサンプル(支持値)を補間するために使用され得る。(補間のために、2つのサンプル値が必要である。ブロック内では、常に2つの所定の値を有するが、ブロックの左および上の境界に沿ってサンプルを補間するために、図7.2のように、1つの所定の値のみを有し、したがって、補間のためのサポート値として境界サンプルを使用する)
以下の、
最初に2つのサンプルの値を合計するステップと、
次いで、和の値を半分にする(例えば、右シフトによって)ステップと、
のような2段階手順を使用することができる。
あるいは、以下の、
サンプルの各々を最初に半分にするステップ(例えば、左シフトによって)と、
次いで、2つの半分にされたサンプルの値を合計するステップと、
が可能である。
【0083】
1つのサンプル量およびサンプルのグループ(例えば、互いに隣接するサンプル)を選択するだけでよいため、ダウンサンプリング(例えば、ステップ811において)時にさらに容易な動作を実行することができる。
【0084】
したがって、ここで、実行されるべき乗算の数を低減するための技術(複数可)を定義することが可能である。これらの技術のいくつかは、とりわけ、以下の原理のうちの少なくとも1つに基づいてもよい。
【0085】
実際に予測されるブロック18のサイズがM×Nであっても、(二次元の少なくとも一方において)ブロックを縮小し、サイズが縮小されたQredxPred(ここで、
【数8】
red=Nred+Mred
【数9】
および/または
【数10】
red<Mおよび/またはNred<N)のALWIP行列を適用してもよい。したがって、境界ベクトル17PはサイズPred×1を有し、Pred<P乗算のみを意味する(Pred=Mred+NredおよびP=M+N)。
red×1境界ベクトル17Pは、例えば、
ダウンサンプリングにより(例えば、境界のいくつかのサンプルのみを選択することによって)、および/または
境界の複数のサンプルを平均することによって(これは、乗算なしで加算およびシフトによって容易に得ることができる)、
元の境界17から容易に取得することができる。
【0086】
加えて、または代替的に、予測対象ブロック18のすべてのQ=M*N値を乗算によって予測する代わりに、次元が削減された削減ブロック(例えば
【数11】

【数12】
および/または
【数13】
)のみを予測することが可能である。予測されるべきブロック18の残りのサンプルは、例えば、予測されるべき残りのQ-Qred値のサポート値としてQredサンプルを使用する補間によって取得される。
【0087】
図7.1に示す例によれば、4×4ブロック18(M=4、N=4、Q=M*N=16)が予測されることになり、サンプル17aの近傍17(4つの既に予測されたサンプルを有する垂直行列)および17c(4つの既に予測されたサンプルを有する水平行)は、前の反復で既に予測されている(近傍17aおよび17cは、集合的に17で示すことができる)。事前に、図6に示す式を使用することにより、予測行列17MはQ×P=16×8行列(Q=M*N=4*4およびP=M+N=4+4=8による)であるべきであり、境界ベクトル17Pは8×1次元(P=8による)を有するべきである。しかしながら、これは、予測対象の4×4ブロック18の16個のサンプルの各々について8回の乗算を実行する必要性につながり、したがって、合計で16*8=128回の乗算を実行する必要性につながる。(サンプルあたりの平均乗算回数は、計算複雑度の良好な評価であることに留意されたい。従来のイントラ予測では、サンプルあたり4回の乗算が必要であり、これは関与する計算労力を増加させる。したがって、これをALWIPの上限として使用することが可能であり、複雑さが合理的であり、従来のイントラ予測の複雑さを超えないことが保証される。)
【0088】
それにもかかわらず、本技術を使用することにより、ステップ811において、予測されるブロック18に隣接するサンプル17aおよび17cの数をPからPred<Pに減らすことが可能であることが理解されている。特に、2つの水平行および2つの垂直列を有する縮小境界102を得るために、互いに隣接する境界サンプル(17a、17c)を平均(例えば、図7.1の100において)することが可能であり、したがって、ブロック18として動作することは、2×2ブロック(縮小境界は、平均値によって形成される)であったことが理解されている。あるいは、ダウンサンプリングを実行することが可能であり、したがって、行17cに対して2つのサンプルを選択し、列17aに対して2つのサンプルを選択する。したがって、水平行17cは、4つの元のサンプルを有する代わりに、2つのサンプル(例えば平均化されたサンプル)を有するものとして処理され、元々4つのサンプルを有する垂直列17aは、2つのサンプル(例えば平均化されたサンプル)を有するものとして処理される。行17cおよび列17aをそれぞれ2つのサンプルのグループ110に細分化した後、単一のサンプルが維持される(例えば、グループ110のサンプルの平均またはグループ110のサンプル間の単純な選択)ことも理解することができる。したがって、セット102が4つのサンプル(Mred=2、Nred=2、Pred=Mred+Nred=4、Pred<P)のみを有することによって、サンプル値のいわゆる低減されたセット102が得られる。
【0089】
プロセッサレベルで過度に多くの乗算を実行することなく(平均化またはダウンサンプリング100などの)演算を実行することが可能であることが理解されている。つまり、ステップ811で実行される平均化またはダウンサンプリング100は、加算およびシフトなどの単純で計算上非電力消費の演算によって簡単に得ることができる。
【0090】
この時点で、低減されたサンプル値のセット102を線形またはアフィン線形(ALWIP)変換19(例えば、図6の行列17Mなどの予測行列を使用する)にかけることが可能であることが理解されている。この場合、ALWIP変換19は、4つのサンプル102をブロック18のサンプル値104に直接マッピングする。この場合、補間は不要である。
【0091】
この場合、ALWIP行列17Mは、次元Q×Pred=16×4を有する。これは、予測されるべきブロック18のすべてのQ=16個のサンプルがALWIP乗算によって直接得られる(補間は不要である)という事実に従う。
【0092】
したがって、ステップ812aにおいて、寸法Q×Predを有する適切なALWIP行列17Mが選択される。選択は、例えば、データストリーム12からのシグナリングに少なくとも部分的に基づいてもよい。選択されたALWIP行列17Mはまた、Aで示されてもよく、ここで、kは、データストリーム12(場合によっては、行列は以下
【数14】
のようにも示される)でシグナリングされ得るインデックスとして理解され得る。選択は、以下のスキームに従って実行され得る。すなわち、各次元(例えば、予測されるブロック18の高さ/幅の対)について、ALWIP行列17Mは、例えば、3セットの行列S、S、S(3つのセットS、S、Sの各々は、同じ次元の複数のALWIP行列17Mをグループ化することができ、予測のために選択されるALWIP行列はそれらのうちの1つになる)のうちの1つの中から選択される。
【0093】
ステップ812bにおいて、選択されたQ×Pred ALWIP行列17M(Aとしても示される)とPred×1境界ベクトル17Pとの乗算が実行される。
【0094】
ステップ812cにおいて、オフセット値(例えば、b)を、例えば、ALWIPによって取得されたベクトル18Qのすべての取得値104に加算することができる。オフセット(b、または場合によってはさらに
【数15】
以下を参照されたい)の値は、特定の選択されたALWIP行列(A)に関連付けられてもよく、インデックス(例えば、データストリーム12でシグナリングされてもよい)に基づいてもよい。
したがって、本技術を使用することと本技術を使用しないこととの比較がここで再開される。
本技術を用いない場合:
寸法M=4、N=4の予測対象ブロック18、
Q=M*N=4*4=16予測される値、
P=M+N=4+4=8境界サンプル
P=予測されるQ=16個の値の各々についての8回の乗算、
P*Qの総数=8*16=128回、
本技術では、
寸法M=4、N=4の予測対象ブロック18、
Q=M*N=4*4=最後に予測される16個の値、
境界ベクトルの縮小次元:Pred=Mred+Nred=2+2=4、
red=ALWIPによって予測されるべきQ=16個の値の各々について4回の乗算、
red*Qの総数=4*16=64回(128の半分!)
乗算回数と取得される最終値の数との比は、Pred*Q/Q=4であり、すなわち、予測される各サンプルについてP=8の乗算の半分である!
【0095】
理解され得るように、平均化(場合によっては、追加および/またはシフトおよび/またはダウンサンプリング)などの直接的かつ計算的に電力を必要としない動作に依存することによって、ステップ812において適切な値を得ることが可能である。
【0096】
図7.2を参照すると、予測されるブロック18は、ここでは64サンプルの8×8ブロック(M=8、N=8)である。ここで、先験的に、予測行列17Mは、サイズQ×P=64×16(Q=M*N=8*8=64、M=8およびN=8によるQ=64、ならびにP=M+N=8+8=16)を有するべきである。したがって、先験的に、予測される8×8ブロック18のQ=64個のサンプルの各々についてP=16個の乗算が必要とされ、8×8ブロック18全体について64*16=1024個の乗算に達するであろう!
【0097】
しかしながら、図7.2に見られるように、境界の16個のサンプルすべてを使用する代わりに、8つの値(例えば、境界の元のサンプル間の水平境界行17cの4および垂直境界列17aの4)のみが使用される方法820を提供することができる。境界列17cからは、8個ではなく4個のサンプルを用いてもよい(例えば、それらは、2×2の平均および/または2つのうちの1つのサンプルの選択であってもよい)。したがって、境界ベクトルは、P×1=16×1ベクトルではなく、Pred×1=8×1ベクトルのみとなる(Pred=Mred+Nred=4+4)。元のP=16個のサンプルの代わりに、Pred=8個の境界値のみを有するように、水平行17cのサンプルおよび垂直列17aのサンプルを選択または平均(例えば、2×2)して、サンプル値の縮小されたセット102を形成することが可能であることが理解されている。この縮小セット102は、ブロック18の縮小バージョンを取得することを可能にし、縮小バージョンは、(Q=M*N=8*8=64の代わりに)Qred=Mred*Nred=4*4=16サンプルを有する。サイズMredxNred=4×4のブロックを予測するALWIP行列を適用することができる。ブロック18の縮小版は、図7.2のスキーム106において灰色で示されたサンプルを含み、灰色の四角で示されたサンプル(サンプル118’および118’’を含む)は、対象とするステップ812で得られたQred=16値を有する4×4縮小ブロックを形成する。4×4縮小ブロックは、対象ステップ812において線形変換19を適用することによって得られたものである。4×4縮小ブロックの値を取得した後、例えば補間によって残りのサンプル(スキーム106において白色サンプルで示されているサンプル)の値を取得することが可能である。
【0098】
図7.1の方法810に関して、この方法820は、予測されるM×N=8×8ブロック18の残りのQ-Qred=64~16=48サンプル(白い正方形)の予測値を例えば補間によって導出するステップ813をさらに含むことができる。残りのQ-Qred=64~16=48個のサンプルは、補間(補間はまた、例えば、境界サンプルの値を利用することができ)によって直接取得されたQred=16個のサンプルから取得することができる。図7.2に見られるように、サンプル118’および118’’は(灰色の四角で示すように)ステップ812で取得されているが、サンプル108’(サンプル118’および118’’の中間であり、白色の四角で示す)は、ステップ813でサンプル118’と118’’との間の補間によって取得される。補間はまた、シフトおよび加算などの平均化のためのものと同様の動作によって得ることができることが理解されている。したがって、図7.2では、値108’は、一般に、サンプル118’の値とサンプル118’’の値との中間の値として決定され得る(平均であり得る)。
【0099】
補間を実行することによって、ステップ813において、104に示された複数のサンプル値に基づいてM×N=8×8ブロック18の最終バージョンに到達することも可能である。
したがって、本技術を使用することと使用しないこととを比較すると、
本技術を用いない場合:
予測対象ブロック18内の寸法M=8、N=8、Q=M*N=8*8=64サンプルの予測対象ブロック18、
P=M+N=8+8=境界17内の16サンプル、
P=予測されるQ=64個の値の各々についての16回の乗算、
P*Qの総数=16*64=1028回の乗算
乗算回数と得られる最終値の数との比は、P*Q/Q=16である。
本技術では、
寸法M=8、N=8を有する、予測されるべきブロック18
Q=M*N=8*8=最後に予測される64個の値、
【0100】
ただし、使用されるQredxPred ALWIP行列は、Pred=Mred+Nred、Qred=Mred*Nred、Mred=4、Nred=4であり、
red=Mred+Nred=4+4=境界内の8サンプル、Pred<P
red=予測される4×4縮小ブロックのQred=16個の値の各々について8回の乗算(スキーム106では灰色の正方形によって形成される)、
red*Qredの総数=8*16=128回(1024を大幅に下回る!)
乗算回数と求めるべき最終値の数との比は、Pred*Qred/Q=128/64=2(本技術を用いずに得られた16よりもはるかに少ない!)である。
したがって、本明細書に提示される技術は、前の技術よりも8倍電力要求が少ない。
【0101】
図7.3は、(方法820に基づき得る)別の例を示し、予測されるブロック18は、Q=4*8=32個の予測されるサンプルを有する長方形の4×8ブロック(M=8、N=4)である。境界17は、N=8サンプルの横列17cと、M=4サンプルの縦列17aとで形成される。したがって、事前に、境界ベクトル17Pは次元P×1=12×1を有するが、予測ALWIP行列はQ×P=32×12行列であるべきであり、したがってQ*P=32*12=384回の乗算が必要になる。
【0102】
しかしながら、例えば、水平行17cの少なくとも8つのサンプルを平均またはダウンサンプリングして、4つのサンプルのみ(例えば、平均化されたサンプル)の縮小された水平行を得ることが可能である。いくつかの例では、垂直柱17aはそのままである(例えば、平均化なし)。合計で、縮小された境界は、寸法Pred=8を有し、Pred<Pである。したがって、境界ベクトル17Pは、寸法Pred×1=8×1を有する。ALWIP予測行列17Mは、次元M*Nred*Pred=4*4*8=64を有する行列になる。対象ステップ812で直接取得された(スキーマ107の灰色の列によって形成された)4×4縮小ブロックは、サイズQred=M*Nred=4*4=16サンプルを有する(予測される元の4×8ブロック18のQ=4*8=32の代わりに)。縮小された4×4ブロックがALWIPによって取得されると、オフセット値bを加算し(ステップ812c)、ステップ813において補間を実行することが可能である。図7.3のステップ813で分かるように、縮小された4×4ブロックは4×8ブロック18に拡張され、ステップ812で取得されなかった値108’は、ステップ812で取得された値118’および118’’(灰色の正方形)を補間することによってステップ813で取得される。
したがって、本技術を使用することと使用しないこととを比較すると、
本技術を用いない場合:
寸法M=4、N=8の予測対象ブロック18
Q=M*N=4*8=32予測される値、
P=M+N=4+8=境界における12サンプル、
P=予測されるQ=32個の値の各々についての12回の乗算、
P*Qの総数=12*32=384回の乗算
乗算回数と得られる最終値の数との比は、P*Q/Q=12である。
本技術では、
寸法M=4、N=8の予測対象ブロック18
Q=M*N=4*8=最後に予測される32個の値、
【0103】
ただし、QredxPred=16×8 ALWIP行列を使用することができ、M=4、Nred=4、Qred=M*Nred=16、Pred=M+Nred=4+4=8であり、
red=M+Nred=4+4=境界内の8サンプル、Pred<P
red=予測対象の縮小ブロックのQred=16個の値のそれぞれについての8回の乗算
red*Predの総数=16*8=128回(384未満!)
乗算回数と求めるべき最終値の数との比は、Pred*Qred/Q=128/32=4(本技術を用いずに得られた12よりもはるかに少ない!)である。
したがって、本技術では、計算労力が1/3に低減される。
【0104】
図7.4は、寸法M×N=16×16で予測されるべきブロック18の事例を示し、最終的に予測される値はQ=M*N=16*16=256であり、P=M+N=16+16=32個の境界サンプルである。これは、次元Q×P=256×32を有する予測行列をもたらし、これは256*32=8192の乗算を意味する!
【0105】
しかしながら、方法820を適用することにより、ステップ811において、境界サンプルの数を、例えば32から8に減らす(例えば、平均化またはダウンサンプリングによって)ことが可能であり、例えば、行17aの4つの連続サンプルのグループ120ごとに、単一のサンプル(例えば、4つのサンプルの中から選択されるか、またはサンプルの平均)が残る。また、カラム17cの連続する4つのサンプルからなるグループごとに1つのサンプル(例えば、4つのサンプルの中から選択されるか、またはサンプルの平均)が残る。
【0106】
ここで、ALWIP行列17Mは、QredxPred=64×8行列である。これは、それが(8つの平均化されたサンプルまたは32個の境界から選択されたサンプルを使用することによって)Pred=8に選択されたという事実、およびステップ812で予測される縮小ブロックが8×8ブロック(スキーム109では、灰色の正方形は64である)であるという事実に起因する。
【0107】
したがって、ステップ812で縮小された8×8ブロックの64個のサンプルが取得されると、ステップ813で、予測されるブロック18の残りのQ-Qred=256-64=192個の値104を導出することが可能である。
【0108】
この場合、補間を実行するために、境界列17aのすべてのサンプルおよび境界行17cの代替サンプルのみを使用することが選択されている。他の選択が行われてもよい。
【0109】
本方法では、乗算回数と最終的に得られる値の数との間の比はQred*Pred/Q=8*64/256=2であり、これは本技術を用いない各値の32回の乗算よりもはるかに少ない!
本技術を使用することと使用しないこととの比較は、以下の通りである。
本技術を用いない場合:
寸法M=16、N=16の予測対象ブロック18
Q=M*N=16*16=256予測される値、
P=M+N=16*16=境界内の32サンプル、
P=予測されるQ=256個の値の各々についての32回の乗算、
P*Qの総数=32*256=8192回の乗算、
乗算回数と得られる最終値の数との比は、P*Q/Q=32である。
本技術では、
寸法M=16、N=16の予測対象ブロック18
Q=M*N=16*16=最後に予測される256個の値、
【0110】
ただし、使用されるQredxPred=64×8 ALWIP行列は、Mred=4、Nred=4、Qred=8*8=ALWIPによって予測される64サンプル、Pred=Mred+Nred=4+4=8である。
red=Mred+Nred=4+4=境界内の8サンプル、Pred<P
red=予測対象の縮小ブロックのQred=64個の値のそれぞれについて8回の乗算
red*Predの総数=64*4=256回(8192未満!)
乗算回数と得られる最終値の数との比は、Pred*Qred/Q=8*64/256=2(本技術を用いずに得られた32よりもはるかに少ない!)である。
したがって、本技法によって必要とされる計算能力は、従来の技法よりも16倍小さい。
したがって、
【0111】
複数の隣接するサンプルを低減して(100、813)、複数の隣接するサンプル(17)と比較して、サンプル数がより少ない低減されたサンプル値のセット(102)を得るステップと、
【0112】
低減されたサンプル値のセット(102)を線形またはアフィン線形変換(19、17M)に供して、所定のブロック(18)の所定のサンプル(104、118’、188’’)の予測値を取得するステップ(812)と、により、
複数の隣接サンプル(17)を使用して画像の所定のブロック(18)を予測することができる。
【0113】
特に、複数の隣接サンプルをダウンサンプリングして、複数の隣接サンプル(17)と比較してサンプル数が少ないサンプル値の縮小されたセット(102)を取得することによって、縮小(100、813)を実行することが可能である。
【0114】
あるいは、複数の隣接サンプルを平均化して、複数の隣接サンプル(17)と比較してサンプル数が少ないサンプル値の縮小されたセット(102)を取得することによって、縮小(100、813)を実行することが可能である。
【0115】
さらに、所定のサンプル(104、118’、118’’)および複数の隣接サンプル(17)の予測値に基づいて、所定のブロック(18)のさらなるサンプル(108、108’)の予測値を補間によって導出する(813)ことが可能である。
【0116】
複数の隣接するサンプル(17a、17c)は、所定のブロック(18)の二辺(例えば、図7.1~図7.4の右および下に向かって)に沿って一次元に延在してもよい。所定のサンプル(例えば、ステップ812でALWIPによって得られたもの)はまた、行および列に配置されてもよく、行および列の少なくとも一方に沿って、所定のブロック18の両側に隣接する所定のサンプル112のサンプル(112)からn番目ごとの位置に配置されてもよい。
【0117】
複数の隣接サンプル(17)に基づいて、行および列のうちの少なくとも一方のそれぞれに位置合わせされた複数の隣接位置のうちの一方(118)の支持値(118)を、行および列のうちの少なくとも一方のそれぞれについて決定することが可能である。所定のサンプル(108、108’)の予測値と、行および列のうちの少なくとも一方に整列された隣接サンプル(118)のサポート値とに基づいて、所定のブロック(18)のさらなるサンプル(104、118’、118’’)の予測値118を補間によって導出することも可能である。
【0118】
所定のサンプル(104)は、行に沿って所定のブロック18の2つの側に隣接するサンプル(112)からn番目ごとの位置に配置されてもよく、所定のサンプルは、列に沿って所定のブロック(18)の2つの側に隣接する(112)所定のサンプルのサンプル(112)からm番目ごとの位置に配置され、n、m>1である。場合によっては、n=m(例えば、図7.2および図7.3では、812でALWIPによって直接取得され、灰色の四角で示されているサンプル104、118’、118’’は、行および列に沿って、ステップ813で続いて取得されたサンプル108、108’に交互にされる)。
【0119】
行(17c)および列(17a)のうちの少なくとも一方に沿って、支持値ごとに、それぞれの支持値が決定される隣接サンプル(118)を含む複数の隣接サンプル内の隣接サンプルのグループ(120)をダウンサンプリングまたは平均化(122)することによって、支持値を決定するステップを実行することが可能であり得る。したがって、図7.4では、ステップ813において、(ステップ812で以前に取得された)所定のサンプル118’’’の値および隣接するサンプル118の値を支持値として使用することによってサンプル119の値を取得することが可能である。
【0120】
複数の隣接するサンプルは、所定のブロック(18)の二辺に沿って一次元に延在してもよい。複数の隣接サンプル(17)を1つまたは複数の連続する隣接サンプルのグループ(110)にグループ化し、2つまたは3つ以上の隣接サンプルを有する1つまたは複数の隣接サンプルのグループ(110)の各々に対してダウンサンプリングまたは平均化を実行することによって、低減(811)を実行することが可能であり得る。
【0121】
例では、線形またはアフィン線形変換は、Pred*QredまたはPred*Q重み係数を含むことができ、Predはサンプル値の減少したセット内のサンプル値の数(102)であり、QredまたはQは所定のブロック内の所定のサンプルの数(18)である。少なくとも1/4のPred*Qredまたは1/4のPred*Q重み係数は、非ゼロの重み値である。Pred*QredまたはPred*Q重み係数は、Q個またはQred個の所定のサンプルの各々について、それぞれの所定のサンプルに関する一連のPred重み係数を含むことができ、一連のPred重み係数は、所定のブロック(18)の所定のサンプル間のラスタ走査順序に従って上下に配置されると、全方向的に非線形である包絡線を形成する。Pred*QまたはPred*Qred重み係数は、規則的なマッピング規則を介して互いに無関係であってもよい。それぞれの所定のサンプルに関連する第1の系列の重み係数と、それぞれの所定のサンプル以外の所定のサンプルに関連する第2の系列の重み係数との間の相互相関の最大値、または後者の系列の反転されたものは、最大値がより高くなるにもかかわらず、所定の閾値よりも低い。所定の閾値は、0.3[または場合によっては0.2または0.1]であってもよい。Pred隣接サンプル(17)は、所定のブロック(18)の両側に沿って延びる一次元経路に沿って配置されてもよく、Q個またはQred個の所定のサンプルの各々について、それぞれの所定のサンプルに関する一連のPred重み係数は、一次元経路を所定の方向に横断するように順序付けられる。
6.1 方法および装置の説明
【0122】

【数16】
(Nでも示される)および高さ
【数17】
(Mでも示される)の長方形のブロックのサンプルを予測するために、アフィン線形重み付きイントラ予測(ALWIP)は、ブロックの左のH個の再構築された隣接する境界サンプルの1つのラインおよびブロックの上の
【数18】
再構築された隣接する境界サンプルの1つのラインを入力として取ることができる。再構築されたサンプルが利用できない場合、それらは従来のイントラ予測で行われるように生成され得る。
予測信号(例えば、完全なブロック18の値)の生成は、以下の3つのステップのうちの少なくともいくつかに基づいてもよい。
【0123】
1.境界サンプル17のうち、サンプル102(例えば、W=H=4の場合には4つのサンプル、および/または他の場合には8つのサンプル)は、平均化またはダウンサンプリング(例えば、ステップ811)によって抽出することができる。
【0124】
2.行列ベクトル乗算とそれに続くオフセットの加算は、平均化されたサンプル(またはダウンサンプリングから残っているサンプル)を入力として実行され得る。結果は、元のブロック内のサブサンプルされたサンプルのセット上の低減された予測信号(例えば、ステップ812)であり得る。
【0125】
3.残りの位置の予測信号は、例えば、サブサンプリングされたセット上の予測信号から、例えば線形補間(例えば、ステップ813)によって、例えばアップサンプリングによって生成され得る。
【0126】
ステップ1.(811)および/または3.(813)のおかげで、行列ベクトル積の計算に必要な乗算の総数は、それが常に
【数19】
以下であるようにすることができる。さらに、境界に対する平均化演算および縮小予測信号の線形補間は、加算およびビットシフトのみを使用して実行される。換言すれば、実施例では、ALWIPモードには1サンプル当たり最大4回の乗算が必要である。
【0127】
いくつかの例では、予測信号を生成するために必要な行列(例えば、17M)およびオフセットベクトル(例えば、b)は、例えば、復号器および符号化器の記憶ユニットに記憶され得る行列のセット(例えば、3セット)、例えば
【数20】

【数21】
から取得され得る。
【0128】
いくつかの例では、セット
【数22】
は、図7.1による技術を実行するために、それぞれが16行および4列と、それぞれがサイズ16の18個のオフセットベクトル
【数23】
{0、...、n-1}とを有し得る(例えば、以下からなる)
【数24】
(例えば、
【数25】
=16または
【数26】
=18または別の数)行列
【数27】
{0、...、n-1}を含み得る。このセットの行列およびオフセットベクトルは、サイズ
【数28】
のブロック18に使用される。境界ベクトルがPred=4ベクトル(図7.1のステップ811について)に縮小されると、縮小されたサンプルセット102のPred=4サンプルを、予測される4×4ブロック18のQ=16サンプルに直接マッピングすることが可能である。
【0129】
いくつかの例では、
【数29】
集合は、(例えば、以下からなる)n(例えば、
【数30】
=8または
【数31】
=18または別の数)個の行列
【数32】
{0、...、n-1}を含むことができ、その各々は、図7.2または図7.3による技術を実行するために、
【数33】
行および8列と、サイズ16の各々の18個のオフセットベクトル
【数34】
{0、...、n-1}とを有することができる。このセットSの行列およびオフセットベクトルは、サイズ
【数35】
4×16、4×32、4×64、16×4、32×4、64×4、8
【数36】
および8
【数37】
のブロックに使用され得る。さらに、それはまた、
【数38】
を有するサイズ
【数39】
のブロック、すなわち4×16または16×4、4×32または32×4および4×64または64×4のサイズのブロックにも使用され得る。16×8行列は、図7.2および図7.3で得られるように、4×4ブロックであるブロック18の縮小版を指す。
【0130】
これに加え、あるいはこれに代えて、
【数40】
集合は、(例えば、以下からなる)n(例えば、
【数41】
=6または
【数42】
=18または別の数)個の行列
【数43】
{0、...、n-1}を含んでもよく、行列の各々は、64行8列と、サイズ64の18個のオフセットベクトル
【数44】
{0、...、n-1}とを有してもよい。64×8行列は、例えば図7.4で得られるような8×8ブロックであるブロック18の縮小バージョンを指す。このセットの行列およびオフセットベクトルは、サイズ
【数45】
のブロックに使用され得る。
これらの行列およびオフセットベクトルのセットまたは一部の行列およびオフセットベクトルは、他のすべてのブロック形状に使用されてもよい。
6.2 境界の平均化またはダウンサンプリング
ここでは、ステップ811に関して特徴が提供される。
【0131】
上記で説明したように、境界サンプル(17a、17c)は、平均化および/またはダウンサンプル(例えば、PサンプルからPred<Pサンプル)され得る。
【0132】
第1のステップでは、入力境界
【数46】
(例えば、17c)および
【数47】
(例えば、17a)は、より小さい境界
【数48】
に縮小され、縮小された集合102に到達することができる。ここで、
【数49】
および
【数50】
は両方とも4×4ブロックの場合は2サンプルからなり、他の場合は両方とも4サンプルからなる。
4×4ブロックの場合、
【数51】

【数52】
【0133】
同様に
【数53】
と定義することができる。したがって
【数54】

【数55】

【数56】

【数57】
[1]は、例えばビットシフト演算を用いて得られた平均値であり、
【0134】
他のすべての場合(例えば、4とは異なるウィザーの幅または高さのブロックについて)において、ブロック幅W
【数58】
がW
【数59】
として与えられる場合、
【数60】

同様に
【数61】
と定義する。
【0135】
さらに他の場合では、境界(例えば、境界サンプルのグループから1つの特定の境界サンプルを選択することによって)をダウンサンプリングして、サンプル数を減らすことができる。例えば、
【数62】

【数63】
および
【数64】
の中から選択されてもよく、
【数65】

【数66】
および
【数67】
の中から選択されてもよい。同様に
【数68】
と定義することも可能である。
【0136】
2つの縮小された境界
【数69】
および
【数70】
は、縮小された境界ベクトル
【数71】
(縮小されたセット102に関連付けられている)に連結されてもよく、これもまた17Pで示される。したがって、縮小された境界ベクトル
【数72】
は、
【数73】
形状のブロック(図7.1の例)についてはサイズ4(Pred=4)であり、他のすべての形状のブロック(図7.2~7.4の例)についてはサイズ8(Pred=8)であり得る。
ここで、
【数74】
(または行列の集合における行列の数)であれば、
【数75】
【数76】
の転置モード
【数77】
に対応するのであれば、
【数78】
と定義し得る。
【0137】
したがって、特定の状態(
【数79】
)によれば、出力ベクトルの予測値を異なる走査順序(例えば、1つの走査順序:
【数80】
)に沿って分布させることが可能である。
【0138】
他の戦略を実行してもよい。他の例では、モードインデックス「モード」は必ずしも0から35の範囲内ではない(他の範囲が定義されてもよい)。さらに、3つのセットS、S、Sの各々が18個の行列(したがって、
【数81】
のような式の代わりに、行列S、S、Sの各セットの行列の数である
【数82】

【数83】

【数84】
にそれぞれすることが可能である)を有する必要はない。また、各セットは、それぞれ異なる数の行列(例えば、Sは16個の行列を有し、Sは8個の行列を有し、Sは6個の行列を有してもよい)を有してもよい。
【0139】
モードおよび転置情報は、必ずしも1つの結合されたモードインデックス「モード」として格納および/または送信されるわけではない。つまり、いくつかの例では、転置フラグおよび行列インデックス(Sの場合は0~15、Sの場合は0~7、Sの場合は0~5)として明示的にシグナリングする可能性がある。
【0140】
場合によっては、転置フラグと行列インデックスの組み合わせは、セットインデックスとして解釈されてもよい。例えば、転置フラグとして動作する1ビットと、「セットインデックス」としてまとめて示される、行列インデックスを示すいくつかのビットとがあり得る。
6.3 行列ベクトル乗算による縮小予測信号の生成
ここでは、ステップ812に関して特徴が提供される。
【0141】
縮小された入力ベクトル
【数85】
(境界ベクトル17P)のうちの1つは、縮小された予測信号
【数86】
を生成することができる。後者の信号は、幅
【数87】
および高さ
【数88】
のダウンサンプリングされたブロック上の信号であり得る。ここで、
【数89】
および
【数90】
は、以下のように定義され得る。
【数91】

【数92】
である場合
【数93】
そうではない場合。
低減された予測信号
【数94】
は、行列ベクトル積を計算し、オフセットを加えることによって計算することができる。
【数95】
【0142】
ここで、
【数96】
は、他のすべての場合にW=H=4および8列である場合に
【数97】
行および4列を有し得る行列(例えば、予測行列17M)であり、
【数98】
はサイズ
【数99】
のベクトルであり得る。
【数100】
の場合、Aは4列16行を有することができ、したがって、その場合には
【数101】
計算するためにサンプルあたり4回の乗算が必要とされ得る。他のすべての場合において、Aは8個の列を有することができ、これらの場合において、Aが
【数102】
を有すること、すなわちこれらの場合においても、1サンプル当たり最大4回の乗算が
【数103】
計算に必要であることを検証することができる。
【0143】
行列Aおよびベクトル
【数104】
は、以下のように、セット
【数105】
の1つから取得され得る。
【数106】
の場合は
【数107】

【数108】
の場合は
【数109】
、およびその他すべての場合は
【数110】
と設定することによってインデックス
【数111】
を定義する。さらに、
【数112】
の場合は
【数113】
、その他の場合は
【数114】
と置くことができる。次に、
【数115】
または
【数116】
および
【数117】
の場合、
【数118】
および
【数119】
を置くことができる。
【数120】
=2、かつ
【数121】
である場合、
【数122】
はその各行
【数123】
を除外することによって生じる行列であり、W=4の場合、ダウンサンプルされたブロック内の奇数x座標に対応し、またはH=4の場合、ダウンサンプルされたブロック内の奇数y座標に対応する。
【数124】
の場合、縮小された予測信号をその転置された信号で置き換える。代替的な例では、異なる戦略を実行することができる。例えば、より大きな行列のサイズを縮小する(「除外する」)代わりに、Wred=4およびHred=4であるS(idx=1)のより小さな行列が使用される。すなわちこのようなブロックは、ここではSではなくSに割り当てられる。
【0144】
他の戦略を実行してもよい。他の例では、モードインデックス「モード」は必ずしも0から35の範囲内ではない(他の範囲が定義されてもよい)。さらに、3つのセットS、S、Sの各々が18個の行列(したがって、
【数125】
のような式の代わりに、行列S、S、Sの各セットの行列の数である
【数126】

【数127】

【数128】
にそれぞれすることが可能である)を有する必要はない。また、各セットは、それぞれ異なる数の行列(例えば、Sは16個の行列を有し、Sは8個の行列を有し、Sは6個の行列を有してもよい)を有してもよい。
6.4 最終予測信号を生成するための線形補間
ここでは、ステップ812に関して特徴が提供される。
【0145】
サブサンプルされた予測信号の補間、大きなブロックでは、平均化された境界の第2のバージョンが必要とされ得る。すなわち、
【数129】
の場合、および
【数130】
の場合には、W
【数131】
を書き込み、
【数132】
の場合には、
【数133】
と定義する.
【数134】
および
【数135】
の場合も同様に
【数136】
と定義される。
【0146】
加えて、または代替として、「ハードダウンサンプリング」を有することが可能であり、
【数137】

【数138】
に等しい。
【0147】
また、
【数139】
も同様に定義することができる。
【数140】
の生成において除外されたサンプル位置において、最終的な予測信号は、
【数141】
(例えば、図7.2~図7.4の例のステップ813)からの線形補間によって生じ得る。いくつかの例では、
【数142】
(例えば、図7.1の例)場合、この線形補間は不要であり得る。
【0148】
線形補間は、以下のように与えられてもよい(他の例も可能である)。
【数143】
と仮定する。次に、
【数144】
の場合、
【数145】
の垂直アップサンプリングが実行され得る。その場合、
【数146】
は、以下のように上に1ライン分拡張されてもよい。
【数147】
の場合、
【数148】
は幅
【数149】
を有することができ、例えば上記で定義されたように、平均化された境界信号
【数150】
によって上部に拡張され得る。
【数151】
の場合、
【数152】
は幅
【数153】
であり、例えば上記で定義したように、平均化された境界信号
【数154】
によって上部に拡張される。第1のライン
【数155】

【数156】
を書き込むことができる。次に、幅
【数157】
および高さ
【数158】
のブロック上の信号
【数159】
は次のように与えられ得る。
【数160】
[x][2*y+1]=
【数161】
[x][y]、
【数162】
[x][2*y]=
【数163】
[x][y-1]+
【数164】
[x][y]+1)>>1、
【0149】
ここで、
【数165】
および
【数166】
である。後者のプロセスは、2k
【数167】
red=Hになるまでk回実行することができる。したがって、H
【数168】
またはH
【数169】
の場合、最大で1回実行することができる。H
【数170】
の場合、2回行ってもよい。H
【数171】
であれば3回行ってもよい。次に、垂直アップサンプリングの結果に水平アップサンプリング動作を適用することができる。後者のアップサンプリング動作は、予測信号の全境界左を使用することができる。最後に、
【数172】
の場合、最初に水平方向に(必要に応じて)アップサンプリングし、次に垂直方向にアップサンプリングすることによって同様に進めることができる。
【0150】
これは、第1の補間(水平または垂直)に縮小された境界サンプルを使用し、第2の補間(垂直または水平)に元の境界サンプルを使用する補間の例である。ブロックサイズに応じて、第2の補間のみまたは補間なしが必要である。水平補間と垂直補間の両方が必要な場合、順序はブロックの幅と高さに依存する。
しかしながら、異なる技術が実装されてもよく、例えば、元の境界サンプルが第1および第2の補間の両方に使用されてもよく、順序は固定されてもよく、例えば、最初に水平、次いで垂直(他の場合には、最初に垂直、次いで水平)であってもよい。
したがって、補間順序(水平/垂直)および縮小/元の境界サンプルの使用を変更することができる。
【0151】
6.5 ALWIPプロセス全体の例の説明
平均化、行列ベクトル乗算、および線形補間の全プロセスは、図7.1~図7.4の異なる形状について示されている。残りの形状は、図示された事例の1つのように扱われることに留意されたい。
【0152】
1.
【数173】
ブロックが与えられると、ALWIPは、図7.1の技法を使用して境界の各軸に沿って2つの平均をとることができる。得られた4つの入力サンプルは、行列ベクトル乗算に入る。行列は、セット
【数174】
から取得される。オフセットを加えた後、これは16個の最終予測サンプルをもたらし得る。予測信号の生成には、線形補間は不要である。したがって、1サンプルあたり合計(
【数175】
乗算)が実行される。例えば、図7.1を参照されたい。
【0153】
2.
【数176】
ブロックが与えられると、ALWIPは、境界の各軸に沿って4つの平均を取ることができる。結果として得られる8つの入力サンプルは、図7.2の技法を使用して、行列ベクトル乗算に入る。行列は、セット
【数177】
から取得される。これにより、予測ブロックの奇数位置に16個のサンプルが得られる。したがって、1サンプルあたり合計(
【数178】
乗算)が実行される。オフセットを追加した後、これらのサンプルは、例えば、上部境界を使用して垂直に、および例えば、左境界を使用して水平に補間され得る。例えば、図7.2を参照されたい。
【0154】
3.
【数179】
ブロックが与えられると、ALWIPは、図7.3の技法を使用することによって、境界の横軸に沿った4つの平均および左境界上の4つの元の境界値を取ることができる。得られた8つの入力サンプルは、行列ベクトル乗算に入る。行列は、セット
【数180】
から取得される。これにより、予測ブロックの奇数水平位置および各垂直位置に16個のサンプルが得られる。したがって、1サンプルあたり合計(
【数181】
乗算)が実行される。オフセットを追加した後、これらのサンプルは、例えば左境界を使用して水平方向に補間される。例えば、図7.3を参照されたい。
転置された事例はそれに応じて処理される。
【0155】
4.
【数182】
ブロックが与えられると、ALWIPは境界の各軸に沿って4つの平均を取ることができる。結果として得られる8つの入力サンプルは、図7.2の技法を使用して行列ベクトル乗算に入る。行列は、セット
【数183】
から取得される。これにより、予測ブロックの奇数位置に64個のサンプルが得られる。したがって、1サンプルあたり合計(
【数184】
乗算)が実行される。オフセットを追加した後、これらのサンプルは、例えば、上部境界を使用して垂直方向に補間され、左境界を使用して水平方向に補間される。例えば、図7.2を参照されたい。例えば、図7.4を参照されたい。
より大きな形状の場合、手順は本質的に同じであり得、サンプルあたりの乗算数が2未満であることを確認することは容易である。
W×8ブロックの場合、奇数水平および各垂直位置にサンプルが与えられるため、水平補間のみが必要である。したがって、これらの場合、せいぜい(サンプルあたりの乗算
【数185】
が実行される。
最後に、W>8のW×4ブロックについて、ダウンサンプルされたブロックの水平軸に沿った奇数エントリに対応する各行を除外することによって生じる行列を
【数186】
とする。したがって、出力サイズは32であってもよく、ここでも水平補間のみが実行されたままである。せいぜい(サンプルあたりの乗算
【数187】
が実行され得る。
転置された症例は、それに応じて処置され得る。
【0156】
6.6 必要なパラメータの数および複雑さの評価
すべての可能な提案されたイントラ予測モードに必要なパラメータは、セット
【数188】

【数189】
に属する行列およびオフセットベクトルによって構成され得る。すべての行列係数およびオフセットベクトルは、10ビット値として格納され得る。したがって、上記の説明によれば、各々が10ビット精度の合計14400個のパラメータが、提案された方法に必要とされ得る。これは、0.018メガバイトのメモリに対応する。現在、標準4:2:0のクロマサブサンプリングにおけるサイズ
【数190】
のCTUは、それぞれ10ビットの24576個の値からなることが指摘される。したがって、提案されたイントラ予測ツールのメモリ要件は、最後の会議で採用された現在の画像参照ツールのメモリ要件を超えない。また、従来のイントラ予測モードは、部分角度位置を有する角度予測モードのためのPDPCツールまたは4タップ補間フィルタに起因して、サンプルごとに4回の乗算を必要とすることが指摘される。したがって、動作の複雑さに関して、提案された方法は従来のイントラ予測モードを超えない。
【0157】
6.7 提案されたイントラ予測モードのシグナリング
ルマブロックについては、例えば35個のALWIPモードが提案されている(他の数のモードが使用されてもよい)。イントラ・モードの各符号化ユニット(CU)について、ALWIPモードが、対応する予測ユニット(PU)に適用されるべきであるか否かを示すフラグが、ビットストリームで送信される。後者の指標のシグナル伝達は、第1のCE試験と同じ方法でMRLと調和させることができる。ALWIPモードが適用される場合、ALWIPモードのインデックス
【数191】
は、3MPMSを有するMPMリストを使用してシグナリングされ得る。
【0158】
ここで、MPMの導出は、以下のように、上記および左のPUのイントラモードを用いて行われてもよい。各従来のイントラ予測モード
【数192】
にALWIPモード
【数193】
を割り当てることができるテーブル、例えば3つの固定テーブル
【数194】

【数195】
があってもよい。

【数196】
および高さ
【数197】
の各PUについて、
上記のセクション4のように、3つのセットのうちのどのセットからALWIPパラメータを取得するかを示すインデックス
【数198】
を定義する。上記の予測ユニット
【数199】
が利用可能であり、現在のPUと同じCTUに属し、イントラモードにある場合、
【数200】
であって、ALWIPがALWIPモード
【数201】

【数202】
に適用されている場合、
【数203】
とする。
上記のPUが利用可能であり、現在のPUと同じCTUに属しており、イントラモードにあり、従来のイントラ予測モード
【数204】
が上記のPUに適用される場合、
【数205】
とする。
【0159】
他のすべての場合において、
【数206】
とし、
これは、このモードが利用できないことを意味する。同じように、ただし、左PUが現在のPUと同じCTUに属する必要があるという制限なしに、モード
【数207】
を導出する。
最後に、3つの固定デフォルトリスト
【数208】

【数209】
が提供され、その各々は3つの異なるALWIPモードを含む。デフォルトリスト
【数210】
およびモード
【数211】
およびモード
【数212】
のうち、デフォルト値で-1を置換するとともに繰り返しを排除することによって、3つの異なるMPMを構築する。
【0160】
本明細書に記載の実施形態は、提案されたイントラ予測モードの上述の信号化によって限定されない。代替実施形態によれば、MPMおよび/またはマッピングテーブルは、MIP(ALWIP)に使用されない。
【0161】
6.8 従来のルマイントラ予測モードおよびクロマイントラ予測モードのための適応MPMリスト導出
提案されたALWIPモードは、以下のように従来のイントラ予測モードのMPMベースの符号化と調和され得る。従来のイントラ予測モードのルマおよびクロマMPMリスト導出プロセスは、固定テーブル
【数213】

【数214】
を使用し、所与のPU上のALWIPモード
【数215】
を従来のイントラ予測モード
【数216】
のうちの1つにマッピングすることができる。
ルマMPMリスト導出の場合、ALWIPモード
【数217】
を使用する隣接ルマブロックに遭遇するときはいつでも、このブロックは従来のイントラ予測モード
【数218】
を使用しているかのように扱われ得る。クロマMPMリスト導出のために、現在のルマブロックがLWIPモードを使用するときはいつでも、同じマッピングを使用してALWIPモードを従来のイントラ予測モードに変換することができる。
ALWIPモードは、MPMおよび/またはマッピングテーブルを使用することなく、従来のイントラ予測モードと調和させることもできることは明らかである。例えば、クロマブロックについて、現在のルマブロックがALWIPモードを使用するときはいつでも、ALWIPモードが平面イントラ予測モードにマッピングされることが可能である。
【0162】
7 実施効率的な実施形態
以下に説明する実施形態をさらに拡張するための基礎を形成する可能性があるため、上記の例を簡単に要約する。
画像10の所定のブロック18を予測するために、複数の隣接サンプル17a、17cを使用することが使用される。
複数の隣接サンプルの平均化による削減100は、複数の隣接サンプルと比較してサンプル数が少ない削減されたサンプル値のセット102を得るために行われている。この減少は、本明細書の実施形態では任意であり、以下で言及されるいわゆるサンプル値ベクトルをもたらす。サンプル値の低減されたセットは、所定のブロックの所定のサンプル104の予測値を取得するために線形またはアフィン線形変換19を受ける。この変換は、後に、機械学習(ML)によって取得され、実装が効率的に実行されるべきである行列Aおよびオフセットベクトルbを使用して示される。
【0163】
2補間により、所定のブロックのさらなるサンプル108の予測値が、所定のサンプルおよび複数の隣接するサンプルの予測値に基づいて導出される。理論的には、アフィン/線形変換の結果は、ブロック18のすべてのサンプルが代替の実施形態による補間によって取得され得るように、ブロック18の非フルペルサンプル位置に関連付けることができると言える。補間も全く必要ないかもしれない。
【0164】
複数の隣接サンプルは、所定のブロックの二辺に沿って一次元に延びることができ、所定のサンプルは、行および列に、ならびに行および列のうちの少なくとも一方に沿って配置され、所定のサンプルは、所定のブロックの二辺に隣接する所定のサンプルのサンプル(112)からn番目ごとの位置に配置され得る。複数の隣接サンプルに基づいて、行および列のうちの少なくとも一方の各々について、複数の隣接位置のうちの一方(118)のサポート値が決定され得、これは、行および列のうちの少なくとも一方のそれぞれに整列され、補間によって、所定のブロックのさらなるサンプル108の予測値は、所定のサンプルの予測値および行および列のうちの少なくとも一方に整列された隣接サンプルのサポート値に基づいて導出され得る。所定のサンプルは、行に沿って所定のブロックの両側に隣接する所定のサンプルのサンプル112からn番目ごとの位置に配置されてもよく、所定のサンプルは、列に沿って所定のブロックの両側に隣接する所定のサンプルのサンプル112からm番目ごとの位置に配置されてもよく、n、m>1である。n=mであってもよい。行および列の少なくとも一方に沿って、支持値の決定は、各支持値について、それぞれの支持値が決定される隣接サンプル118を含む複数の隣接サンプル内の隣接サンプルのグループ120を平均すること(122)によって行うことができる。複数の隣接サンプルは、所定のブロックの二辺に沿って一次元に延在してもよく、削減は、複数の隣接サンプルを1つまたは複数の連続する隣接サンプルのグループ110にグループ化し、3つ以上の隣接サンプルを有する1つまたは複数の隣接サンプルのグループの各々に対して平均化を実行することによって行われてもよい。
【0165】
所定のブロックについて、予測残差がデータストリーム内で送信され得る。これは、復号器においてそこから導出されてもよく、所定のブロックは、所定のサンプルの予測残差および予測値を使用して再構成される。符号化器では、予測残差が符号化器でデータストリームに符号化される。
画像は、異なるブロック・サイズの複数のブロックに細分され得る。これら複数のブロックは、所定のブロックを備える。次に、ブロック18の線形またはアフィン線形変換は、所定のブロックの幅Wおよび高さHに応じて選択され、所定のブロックの幅Wおよび高さHが幅/高さ対の第1のセット内にある限り、所定のブロックに対して選択された線形またはアフィン線形変換は、線形またはアフィン線形変換の第1のセットから選択され、所定のブロックの幅Wおよび高さHが幅/高さ対の第1のセットとは異なる幅/高さ対の第2のセット内にある限り、線形またはアフィン線形変換の第2のセットは、選択される。再び、後に、アフィン/線形変換が他のパラメータ、すなわちCの重み、ならびに任意選択的にオフセットおよびスケールパラメータによって表されることが明らかになる。
【0166】
復号器および符号化器は、画像を、所定のブロックを含む異なるブロックサイズの複数のブロックに細分化し、所定のブロックに対して選択された線形またはアフィン線形変換が、
所定のブロックの幅Wおよび高さHが幅/高さ対の第1のセット内にある限り、線形またはアフィン線形変換の第1のセットから選択され、
所定のブロックの幅Wおよび前記高さHが、幅/高さ対の第1のセットに共通しない幅/高さ対の第2のセット内にある限り、線形またはアフィン線形変換の第2のセットから選択され、
所定のブロックの幅Wおよび高さHが1つまたは複数の幅/高さ対の第3のセット内にあり、幅/高さ対の第1および第2のセットとは無関係である限り、線形またはアフィン線形変換の第3のセットから選択される、ように、所定のブロックの幅Wおよび高さHに応じて線形またはアフィン線形変換を選択する、ように構成される。
1つまたは複数の幅/高さ対の第3のセットは、単に1つの幅/高さ対W’、H’を含み、線形またはアフィン線形変換の第1のセット内の各線形またはアフィン線形変換は、N’サンプル値を、サンプル位置のW’xH’アレイのW’*H’予測値に変換するためのものである。
【0167】
第1および第2のセットの幅/高さ対の各々は、WがHに等しくない第1の幅/高さ対W、Hと、H=WおよびWq=Hである第2の幅/高さ対W、Hとを含むことができる。
第1および第2のセットの幅/高さ対の各々は、第3の幅/高さ対W、Hをさらに含むことができ、WはHに等しく、H>Hである。
所定のブロックについて、線形またはアフィン線形変換の所定のセットのうちのどの線形またはアフィン線形変換がブロック18に対して選択されるべきかを示すセットインデックスがデータストリーム内で送信され得る。
【0168】
複数の隣接サンプルは、所定のブロックの二辺に沿って一次元に延在してもよく、削減は、所定のブロックの第1の辺に隣接する複数の隣接サンプルの第1のサブセットについて、第1のサブセットを、1つまたは複数の連続する隣接サンプルの第1のグループ110にグループ化し、所定のブロックの第2の辺に隣接する複数の隣接サンプルの第2のサブセットについて、第2のサブセットを、1つまたは複数の連続する隣接サンプルの第2のグループ110にグループ化し、第1のグループから第1のサンプル値および第2のグループの第2のサンプル値を取得するために、第2のサブセットを、2つまたは複数の隣接サンプルを有する1つまたは複数の隣接サンプルの第1のおよび第2のグループの各々に対して平均化を実行することによって行われてもよい。次いで、線形またはアフィン線形変換は、線形またはアフィン線形変換の所定のセットからのセットインデックスに応じて選択されてもよく、その結果、セットインデックスの2つの異なる状態が、線形またはアフィン線形変換の所定のセットの線形またはアフィン線形変換のうちの1つの選択になり、サンプル値の低減されたセットは、2つの異なる状態のうちの第1の状態を第1のベクトルの形式で仮定するセットインデックスの場合、所定の線形またはアフィン線形変換を受けて予測値の出力ベクトルを生成し、出力ベクトルの予測値を第1の走査順序に沿って所定のブロックの所定のサンプルに分配し、2つの異なる状態のうちの第2の状態を第2のベクトルの形式で仮定するセットインデックスの場合、第1および第2のベクトルは、第1のベクトルおよび第2のベクトルにおいて第1のサンプル値のサンプル値のうちの1のサンプル値が、第2のベクトルにおいて第2のサンプル値のベクトルにおいて第2のサンプル値の1のサンプル値の値の1の1の値、予測値の出力ベクトルを生成し、第1の走査順序に対して転置された所定のブロックの所定のサンプル上に第2の走査順序に沿って出力ベクトルの予測値を分配するように、第1のベクトル内の第2のサンプル値のうちの1つによってポピュレートされた成分が、第2のベクトル内の第1のサンプル値のうちの1つによってポピュレートされる。
【0169】
線形またはアフィン線形変換の第1のセット内の各線形またはアフィン線形変換は、Nサンプル値をサンプル位置のw×hアレイについてのw*h予測値に変換するためのものであってもよく、線形またはアフィン線形変換の第2のセット内の各線形またはアフィン線形変換は、Nサンプル値をサンプル位置のw×hアレイについてのw*h予測値に変換するためのものであり、幅/高さ対の第1の所定の1つについて、wは第1の所定の幅/高さ対の幅を超えることができ、またはhは第1の所定の幅/高さ対の高さを超えることができ、幅/高さ対の第1の第2の所定の1の1つについて、wは第2の所定の幅/高さ対の幅を超えることができない。平均化することによって、サンプル値の低減されたセット(102)を得るために複数の隣接するサンプルを低減するステップ(100)は、所定のブロックが第1の所定の幅/高さ対のものである場合、および所定のブロックが第2の所定の幅/高さ対のものである場合、低減されたサンプル値のセット102がN個のサンプル値を有するように行われてもよく、低減されたサンプル値のセットを選択された線形またはアフィン線形変換にかけることは、サンプル位置のw×h配列のサブサンプリングに関連する選択された線形またはアフィン線形変換の最初のサブ部分のみを使用して実行されてもよく、wが1つの幅/高さの対の幅を超える場合、幅の寸法に沿って、または、hが1つの幅/高さのペアの高さを超える場合は高さ寸法に沿って、所定のブロックが第1の所定の幅/高さの対である場合、所定のブロックが第2の所定の幅/高さの対である場合、選択された線形またはアフィン線形変換は完全に行われる。
【0170】
線形またはアフィン線形変換の第1のセット内の各線形またはアフィン線形変換は、w=hであるサンプル位置のw×hアレイについてNサンプル値をw*h予測値に変換するためのものであり得、線形またはアフィン線形変換の第2のセット内の各線形またはアフィン線形変換は、w=hであるサンプル位置のw×h2アレイについてNサンプル値をw*h予測値に変換するためのものである。
上記の実施形態はすべて、本明細書で以下に説明する実施形態の基礎を形成し得るという点で単なる例示である。すなわち、上記の概念および詳細は、以下の実施形態を理解するのに役立ち、本明細書で後述する実施形態の可能な拡張および修正のリザーバとして役立つ。特に、上記の詳細の多くは、隣接するサンプルの平均化、隣接するサンプルが参照サンプルとして使用されるという事実など、任意選択である。
より一般的には、本明細書に記載の実施形態は、矩形ブロック上のイントラ予測信号がブロックの左および上の隣接する既に再構成されたサンプルから生成されるなど、矩形ブロック上の予測信号が既に再構成されたサンプルから生成されると仮定する。予測信号の生成は、以下のステップに基づく。
【0171】
1.しかしながら、説明を他の場所に配置された参照サンプルに転送する可能性を排除することなく、境界サンプルと呼ばれる参照サンプルから、サンプルは平均化によって抽出され得る。ここで、平均化は、ブロックの左および上の両方の境界サンプルに対して、または2つの側の一方の境界サンプルに対してのみ実行される。片側で平均化が行われない場合、その側のサンプルは変更されないままである。
2.行列ベクトル乗算が実行され、任意選択で、その後にオフセットが追加され、行列ベクトル乗算の入力ベクトルは、平均化が左側のみに適用された場合、ブロックの平均化された境界サンプルの左とブロックの上の元の境界サンプルとの連結、または平均化が上側のみに適用された場合、ブロックの元の境界サンプルの左とブロックの上の平均化された境界サンプルとの連結、または平均化がブロックの両側に適用された場合、ブロックの平均化された境界サンプルの左とブロックの上の平均化された境界サンプルとの連結のいずれかである。ここでも、平均化がまったく使用されていないものなどの代替物が存在する。
【0172】
3.行列ベクトル乗算および任意選択のオフセット加算の結果は、任意選択的に、元のブロック内のサブサンプルされたサンプルのセット上の低減された予測信号であってもよい。残りの位置における予測信号は、線形補間によってサブサンプルされたセット上の予測信号から生成され得る。
ステップ2における行列ベクトル積の計算は、好ましくは整数演算で実行されるべきである。したがって、
【数219】
が行列ベクトル積の入力を示す場合、すなわち
【数220】
がブロックの左および上の(平均化された)境界サンプルの連結を示す場合、
【数221】
から、ステップ2で計算された(低減された)予測信号は、ビットシフト、オフセットベクトルの加算、および整数との乗算のみを使用して計算されるべきである。理想的には、ステップ2の予測信号は、
【数222】
のように与えられる。ここでは
【数223】
は0であり得るオフセットベクトルであり、
【数224】
はいくつかの機械学習ベースの訓練アルゴリズムによって導出される。しかしながら、そのような訓練アルゴリズムは、通常、浮動小数点精度で与えられる行列
【数225】
のみをもたらす。したがって、式がこれらの整数演算
【数226】
を使用して十分に近似されるように、前述の意味で整数演算を指定するという問題に直面する。ここで、これらの整数演算は、ベクトル
【数227】
の均一な分布を仮定して式
【数228】
を近似するように必ずしも選択されるのではなく、典型的には、式
【数229】
が近似される入力ベクトル
【数230】
が自然映像信号からの(平均化された)境界サンプルであり、
【数231】
の成分
【数232】
間のいくつかの相関を期待することができることを考慮することに言及することが重要である。
【0173】
図8は、改善されたALWIP予測を示す。所定のブロックのサンプルは、いくつかの機械学習ベースの訓練アルゴリズムによって導出された行列A1100とサンプル値ベクトル400との間の第1の行列-ベクトル積に基づいて予測することができる。任意選択的に、オフセットb1110を追加することができる。この第1の行列ベクトル積の整数近似または固定点近似を達成するために、サンプル値ベクトルは、さらなるベクトル402を決定するために可逆線形変換403を受けることができる。さらなる行列B1200とさらなるベクトル402との間の第2の行列-ベクトル積は、第1の行列-ベクトル積の結果に等しくなり得る。
さらなるベクトル402の特徴のために、第2の行列-ベクトル積は、所定の予測行列C405とさらなるベクトル402とさらなるオフセット408との間の行列-ベクトル積404によって整数近似することができる。さらなるベクトル402およびさらなるオフセット408は、整数値または固定小数点値からなることができる。さらなるオフセットのすべての成分は、例えば、同じである。所定の予測行列405は、量子化された行列であってもよいし、量子化される行列であってもよい。所定の予測行列405とさらなるベクトル402との間の行列-ベクトル積404の結果は、予測ベクトル406として理解することができる。
【0174】
以下では、この整数近似に関するさらなる詳細が提供される。
例Iによる可能な解決策:平均値の減算および加算
上記のシナリオで使用可能な式
【数233】
の整数近似の可能な組み込みの一例は、サンプル値ベクトル400の第
【数234】
の成分
【数235】
、すなわち
【数236】
の所定の成分1500を、他のすべての成分の成分
【数237】
の平均値
【数238】
、すなわち所定の値1400で置き換え、この平均値を他のすべての成分から減算することである。言い換えれば、可逆線形変換403は、図9aに示すように、さらなるベクトル402の所定の成分1500がaになり、所定の成分1500を除くさらなるベクトル402の他の成分の各々が、サンプル値ベクトルの対応する成分からaを引いたものに等しくなるように定義され、aは、例えば、サンプル値ベクトル400の成分の算術平均または加重平均などの平均である所定の値1400である。入力に対するこの操作は、特に
【数239】
の次元
【数240】
が2の累乗である場合、明らかな整数の実装を有する可逆変換
【数241】
403によって与えられる。
【数242】
であるため、入力
【数243】
に対してそのような変換を行う場合、
【数244】
および
【数245】
である行列ベクトル積
【数246】
の積分近似を見つける必要がある。行列ベクトル積
【数247】
は、長方形のブロック、すなわち所定のブロック上の予測を表し、
【数248】
はそのブロックの(例えば、平均)境界サンプルによって構成されるので、
【数249】
のすべてのサンプル値が等しい場合、すなわち、すべての
【数250】
について
【数251】
である場合、予測信号
【数252】
内の各サンプル値は、
【数253】
に近いか、または
【数254】
に正確に等しくなければならないことを期待すべきである。これは、第
【数255】
番目の列、すなわち所定の成分
【数256】
に対応する列が、1のみからなる列に非常に近いかまたは等しいことを期待すべきであることを意味する。したがって、
【数257】
)、すなわち整数行列1300が、その第
【数258】
の列が1からなり、その他の列のすべてが0である行列である場合、
【数259】
yを
【数260】
と書き込むと、図9bに示すように、
【数261】
の第
【数262】
の列、すなわち所定の予測行列405は、かなり小さいエントリを有するか、または0であることを期待すべきである。さらに、
【数263】
の成分は相関しているため、
【数264】
それぞれについて、
【数265】
のi番目の成分
【数266】
はxのi番目の成分よりも絶対値がはるかに小さいことが多いことが期待できる。行列
【数267】
は整数行列であるため、
【数268】
の整数近似が与えられる場合、
【数269】
の整数近似が達成され、上記の引数により、
【数270】
の各エントリを適切な方法で量子化することによって生じる量子化誤差は、
【数271】

【数272】
それぞれの結果として得られる量子化の誤差にわずかにしか影響しないことが期待できる。
【0175】
所定値1400は、必ずしも平均値
【数273】
である必要はない。式
【数274】
の本明細書に記載された整数近似はまた、所定値1400の以下の代替的な定義を用いて達成することができる。

【数275】
の整数近似の別の可能な組み込みでは、
【数276】
の第
【数277】
の成分
【数278】
は変更されないままであり、同じ値
【数279】
が他のすべての成分から減算される。すなわち、それぞれの
【数280】
について
【数281】
および
【数282】
である。言い換えれば、所定値1400は、所定成分1500に対応するサンプル値ベクトル400の成分とすることができる。
あるいは、所定値1400は、デフォルト値、または画像が符号化されたデータストリームでシグナリングされる値である。
所定値1400は、例えば、2bitdepth-1に等しい。この場合、さらなるベクトル402は、i>0の場合、y=2bitdepth-1およびy=x-xによって定義することができる。
あるいは、所定成分1500は、所定値1400を減算した定数となる。定数は、例えば、2bitdepth-1に等しい。一実施形態によれば、さらなるベクトルy402の所定の成分
【数283】
1500は、2ビット深度-1から所定の成分
【数284】
1500に対応するサンプル値ベクトル400の成分を引いたものに等しく、さらなるベクトル402の他のすべての成分は、サンプル値ベクトル400の対応する成分から所定の成分1500に対応するサンプル値ベクトル400の成分を引いたものに等しい。
例えば、所定値1400は、所定のブロックのサンプルの予測値との偏差が小さいと有利である。
【0176】
一実施形態によれば、装置1000は、複数の可逆線形変換403を含むように構成され、その各々はさらなるベクトル402の一成分に関連付けられる。また、この装置は、例えば、サンプル値ベクトル400の成分のうちの所定の成分1500を選択し、その所定の成分1500に対応付けられている複数の可逆線形変換のうちの可逆線形変換403を、その所定の可逆線形変換として用いるように構成される。これは、例えば、i番目の行、すなわち、さらなるベクトル内の所定の成分の位置に依存する、所定の成分に対応する可逆線形変換403の行の異なる位置に起因する。例えば、さらなるベクトル402の第1の成分、すなわちy1が所定の成分である場合、i番目の行は可逆線形変換の第1の行を置き換える。
【0177】
図9bに示すように、さらなるベクトル402の所定の成分1500に対応する所定の予測行列405の列412、すなわちi番目の列内の所定の予測行列405の行列成分414は、例えば、すべて0である。この場合、装置は、例えば、図9cに示すように、列412を残すことによって所定の予測行列C405から結果として生じる縮小された予測行列C’405と、所定の成分1500を残すことによってさらなるベクトル402から結果として生じるなおさらなるベクトル410との間の行列ベクトル積407を計算することによって乗算を実行することによって行列ベクトル積404を計算するように構成される。したがって、予測ベクトル406をより少ない乗算で計算することができる。
【0178】
図8図9bおよび図9cに示すように、装置1000は、予測ベクトル406に基づいて所定のブロックのサンプルを予測する際に、予測ベクトル406の各成分について、それぞれの成分とaとの和、すなわち所定値1400を計算するように構成することができる。この合計は、図8および図9cに示すように、予測ベクトル406とベクトル409との和によって表すことができ、ベクトル409のすべての成分は所定値1400に等しい。あるいは、加算は、図9bに示すように、予測ベクトル406と、整数行列M1300とさらなるベクトル402との間の行列ベクトル積1310との和によって表すことができ、整数行列1300の行列成分は、さらなるベクトル402の所定の成分1500に対応する整数行列1300の列、すなわちi列内で1であり、他のすべての成分は、例えば0である。
【0179】
所定の予測行列405と整数行列1300との合計の結果は、例えば、図8に示すさらなる行列1200に等しいかまたは近似する。
換言すれば、さらなるベクトル402の所定の成分1500に対応する所定の予測行列405の列412、すなわちi番目の列内の所定の予測行列C405の各行列成分を、可逆線形変換403の(すなわち、行列B)倍と合計した行列、すなわちさらなる行列B1200は、例えば、図8図9aおよび図9bに示すように、機械学習予測行列A1100の量子化バージョンに対応する。図9bに示すように、i番目の列412内の所定の予測行列C405の各行列成分とを合計することは、所定の予測行列405と整数行列1300との合計に対応することができる。図8に示すように、機械学習予測行列A1100は、さらなる行列の結果を可逆線形変換403の1200倍に等しくすることができる。これは、
【数285】
に起因する。所定の予測行列405は、例えば、量子化行列、整数行列および/または固定小数点行列であり、これにより、機械学習予測行列A1100の量子化バージョンを実現することができる。
【0180】
整数演算のみを用いた行列乗算
低複雑度実装(スカラー値を加算および乗算する複雑さの観点、ならびにパーテイキング行列のエントリに必要な記憶装置の観点から)では、整数演算のみを使用して行列乗算404を実行することが望ましい。
【数286】
の近似、すなわち、
【数287】
を計算するために
【0181】
一実施形態によれば、整数のみに対する演算を使用して、実数値
【数288】
は整数値
【数289】
にマッピングされなければならない。これは、例えば、一様スカラ量子化によって、または値
【数290】
間の特定の相関を考慮することによって行うことができる。整数値は、例えば、各々が固定数のビットn_bit、例えばn_bit=8で記憶され得る固定小数点数を表す。
サイズm×nの行列、すなわち所定の予測行列405を有する行列ベクトル積404は、この擬似コードに示すように実行することができ、ここで、<<、>>は算術バイナリ左シフト演算および右シフト演算であり、+、-および*は整数値のみで動作する。
【0182】
(1)
final_offset=1 <<(right_shift_result-1);
for i in 0…m-1

accumulator=0
for j in 0…n-1

accumulator:=accumulator+y[j]*C[i,j]

z[i]=(accumulator+final_offset)>> right_shift_result;

ここで、配列C、すなわち所定の予測行列405は、固定小数点数を例えば整数として記憶する。final_offsetの最後の加算およびright_shift_resultによる右シフト演算は、出力で必要とされる固定小数点形式を得るために丸めによって精度を低下させる。
【0183】
Cの整数によって表現可能な実数値の範囲の増加を可能にするために、図10および図11の実施形態に示すように、2つの追加の行列
【数291】

【数292】
を使用することができ、その結果、行列ベクトル積
【数293】
における
【数294】
の各係数
【数295】
は、
【数296】
によって与えられる。

【数297】
および
【数298】
は、それ自体が整数値である。例えば、これらの整数は、固定数のビット、例えば8ビット、または例えば値
【数299】
を格納するために使用されるのと同じ数のビットn_bitでそれぞれ格納することができる固定小数点数を表すことができる。
言い換えれば、装置1000は、予測パラメータ、例えば整数値
【数300】
および値
【数301】

【数302】
を使用して所定の予測行列405を表し、さらなるベクトル402の成分および予測パラメータおよびそれから生じる中間結果に対して乗算および加算を実行することによって行列ベクトル積404を計算するように構成され、予測パラメータの絶対値は、nビットの固定小数点数表現によって表すことができ、nは14以下、または10、または8である。例えば、さらなるベクトル402の成分は、予測パラメータと乗算されて、中間結果として生成物を生成し、これは、合計の影響を受けるか、または加算を形成する。
【0184】
一実施形態によれば、予測パラメータは、それぞれが予測行列の対応する行列成分に関連付けられた重みを含む。すなわち、所定の予測行列は、例えば、予測パラメータに置き換えられたり、予測パラメータによって表されたりする。重みは、例えば、整数および/または固定点値である。
一実施形態によれば、予測パラメータは、1つまたは複数のスケーリング係数、例えば値scaleをさらに含み、その各々は、所定の予測行列405の1つまたは複数の対応する行列成分に関連付けられた、重み、例えば整数値
【数303】
をスケーリングするための所定の予測行列405の1つまたは複数の対応する行列成分に関連付けられる。追加的または代替的に、予測パラメータは、1つまたは複数のオフセット、例えば値offseti、jを含み、その各々は、所定の予測行列405の1つまたは複数の対応する行列成分に関連付けられた重み、例えば整数値
【数304】
をオフセットするための所定の予測行列405の1つまたは複数の対応する行列成分に関連付けられる。
【数305】
および
【数306】
に必要な記憶量を低減するために、それらの値は、インデックスi、jの特定のセットに対して一定であるように選択することができる。例えば、図10に示すように、それらのエントリは列ごとに一定であってもよいし、行ごとに一定であってもよいし、すべてのi、jについて一定であってもよい。
【0185】
例えば、好ましい一実施形態では、
【数307】
および
【数308】
は、図11に示すように、ある予測モードの行列のすべての値に対して一定である。したがって、k=0..K-1のK個の予測モードがある場合、モードkの予測を計算するために単一の値
【数309】
および単一の値
【数310】
のみが必要である。
一実施形態によれば、
【数311】
および/または
【数312】
は、すべての行列ベースのイントラ予測モードについて一定である、すなわち同一である。追加的または代替的に、
【数313】
および/または
【数314】
は、すべてのブロックサイズに対して一定である、すなわち同一であることが可能である。
【0186】
オフセット表現
【数315】
およびスケール表現
【数316】
を用いて、(1)における計算は、以下のように修正することができる。
(2)
final_offset=0;
for i in 0…n-1

final_offset:=final_offset-y[i];

final_offset *=final_offset * offset * scale;
final_offset+=1 <<(right_shift_result-1);
for i in 0…m-1

accumulator=0
for j in 0…n-1

accumulator:=accumulator+y[j]*C[i,j]

z[i]=(accumulator*scale+final_offset)>> right_shift_result;
【0187】
その解決策から生じる広範な実施形態
上記の解決策は、以下の実施形態を意味する。
1.セクションIに記載されているような予測方法であって、セクションIのステップ2において、関与する行列ベクトル積の整数近似に対して以下が行われる、すなわち、(平均化された)境界サンプル
【数317】
から、
【数318】
である
【数319】
で固定されている場合、ベクトル
【数320】
が計算され、
【数321】
であり、
【数322】
であり、
【数323】
であり、
【数324】
は、
【数325】
の平均値である。そして、ベクトル
【数326】
は、セクションIのステップ2からの(ダウンサンプリングされた)予測信号
【数327】

【数328】
のように与えられるように、行列ベクトル積
【数329】
(の整数実現)の入力として機能する。この式において、
【数330】
は、(ダウンサンプリングされた)予測信号の領域内の各サンプル位置について
【数331】
に等しい信号を示す。(例えば、図9bを参照されたい)
【0188】
2.セクションIに記載されているような予測方法であって、セクションIのステップ2において、関与する行列ベクトル積の整数近似に対して以下が行われる、すなわち、(平均化された)境界サンプル
【数332】
から、
【数333】
である
【数334】
で固定されている場合、ベクトル
【数335】
が計算され、
【数336】
であり、
【数337】
であり、
【数338】
であり、
【数339】
であり、
【数340】

【数341】
の平均値である。そして、ベクトル
【数342】
は、セクションIのステップ2からの(ダウンサンプリングされた)予測信号
【数343】

【数344】
のように与えられるように、行列ベクトル積
【数345】
(の整数実現)の入力として機能する。この式において、
【数346】
は、(ダウンサンプリングされた)予測信号の領域内の各サンプル位置について
【数347】
に等しい信号を示す。(例えば、図9cを参照されたい)
3.行列ベクトル積
【数348】
の整数実現が、行列ベクトル積
【数349】
内の係数
【数350】
を使用することによって与えられる、セクションIに記載の予測方法。(例えば、図10を参照されたい)
【0189】
4.セクションIに記載の予測方法であって、ステップ2は、複数の予測モードを計算することができるように、K個の行列のうちの1つを使用し、各々がk=0の異なる行列
【数351】
を使用する。ここで、行列ベクトル積
【数352】
の整数実現は、行列ベクトル積
【数353】
内の係数
【数354】
を使用することによって与えられる。(例えば、図11を参照されたい)
すなわち、本出願の実施形態によれば、符号化器および復号器は、図8を参照して、画像10の所定のブロック18を予測するために以下のように機能する。予測には、複数の参照サンプルが用いられる。上で概説したように、本出願の実施形態はイントラ符号化に限定されず、したがって、参照サンプルは隣接サンプル、すなわち画像10隣接ブロック18のサンプルに限定されない。特に、基準サンプルは、ブロックの外縁に当接するサンプルなど、ブロック18の外縁に沿って配置されたものに限定されない。しかしながら、この状況は確かに本出願の一実施形態である。
【0190】
予測を行うために、参照サンプル17aおよび17cなどの参照サンプルからサンプル値ベクトル400が形成される。可能な形成が上述された。形成は平均化を含むことができ、それによって形成に寄与する参照サンプル17と比較してサンプル102の数またはベクトル400の成分の数を減らすことができる。形成はまた、上述したように、ブロック18の幅および高さなどのブロックの寸法またはサイズに何らかの形で依存し得る。
ブロック18の予測を得るためにアフィンまたは線形変換を受けるべきはこのベクトル400である。異なる命名法が上記で使用されている。最新のものを使用して、オフセットベクトルbとの加算を実行する範囲内で、行列ベクトル積によって行列Aにベクトル400を適用することによって予測を実行することが目的である。オフセットベクトルbは任意である。AまたはAおよびbによって決定されるアフィンまたは線形変換は、符号化器および復号器によって、またはより正確には、既に上述したようにブロック18のサイズおよび寸法に基づいて予測のために決定され得る。
【0191】
しかしながら、上記で概説した計算効率の改善を達成するために、または予測を実施に関してより効果的にするために、アフィンまたは線形変換が量子化されており、符号化器および復号器、またはその予測器は、アフィン変換の量子化バージョンを表す、上記の方法で適用されたCおよびTを用いて、線形またはアフィン変換を表し実行するために、上記のCおよびTを使用した。特に、ベクトル400を行列Aに直接適用する代わりに、符号化器および復号器の予測子は、サンプル値ベクトル400から得られたベクトル402を、所定の可逆線形変換Tを介してマッピングに供することによって適用する。ここで使用される変換Tは、ベクトル400が同じサイズを有する、すなわちブロックの寸法、すなわち幅および高さに依存しない限り同じであるか、または異なるアフィン/線形変換について少なくとも同じである。上記では、ベクトル402はyで示されている。機械学習によって決定されたアフィン/線形変換を実行するための正確な行列はBであった。しかしながら、正確にBを実行する代わりに、符号化器および復号器における予測は、その近似または量子化バージョンによって行われる。特に、表現は、Cを上記で概説した方法で適切に表すことによって行われ、C+MはBの量子化バージョンを表す。
【0192】
したがって、符号器および復号器における予測は、ベクトル402と、符号器および復号器において適切に表され記憶された所定の予測行列Cとの間の行列ベクトル積404を上記の方法で計算することによってさらに遂行される。次いで、この行列-ベクトル積から生じるベクトル406は、ブロック18のサンプル104を予測するために使用される。上述したように、予測のために、ベクトル406の各成分は、Cの対応する定義を補償するために、408で示されるようにパラメータaとの総和を受ける可能性がある。オフセットベクトルbとのベクトル406の任意選択の総和もまた、ベクトル406に基づくブロック18の予測の導出に含まれ得る。上述したように、ベクトル406の各成分、したがって、ベクトル406の合計の各成分、408で示されたすべてのaのベクトル、および任意選択のベクトルbは、ブロック18のサンプル104に直接対応し、したがって、サンプルの予測値を示すことができる。ブロックのサンプル104のサブセットのみがそのように予測され、108などのブロック18の残りのサンプルが補間によって導出されることも可能である。
【0193】
上述したように、aを設定するための異なる実施形態がある。例えば、ベクトル400の成分の算術平均であってもよい。その場合については、図9を参照されたい。可逆線形変換Tは、図9に示すようになり得る。iは、それぞれサンプル値ベクトルおよびベクトル402の所定の成分であり、aで置き換えられる。しかしながら、上記でも示したように、他の可能性もある。しかしながら、Cの表現に関する限り、それは異なって具現化され得ることも上記で示されている。例えば、行列ベクトル積404は、その実際の計算において、より低い次元を有するより小さい行列ベクトル積の実際の計算になる可能性がある。特に、上記のように、Cの定義により、その第i列412全体が0になるため、積404の実際の計算は、
【数355】
成分の省略によるベクトル402から生じるベクトル402の縮小バージョンによって、すなわち、この縮小ベクトル410に、第i列412を除外することによってCから生じる縮小行列C’を乗算することによって行われ得る。
Cの重みまたはC’の重み、すなわちこの行列の成分は、固定小数点数表現で表現および格納することができる。しかしながら、これらの重み414はまた、上述したように、異なるスケールおよび/またはオフセットに関連する方法で記憶されてもよい。スケールおよびオフセットは、行列C全体に対して定義されてもよく、すなわち、行列Cまたは行列C’のすべての重み414に対して等しいか、または行列Cおよび行列C’の同じ行のすべての重み414または同じ列のすべての重み414に対してそれぞれ一定または等しくなるように定義されてもよい。これに関して、図10は、行列ベクトル積の計算、すなわち積の結果が、実際にはわずかに異なって実行され得ること、すなわち、例えば、スケールとの乗算をベクトル402または404に向かってシフトすることによって実行され得、それにより、さらに実行されなければならない乗算の数が低減されることを示している。図11は、上記の計算(2)で行われたように、CまたはC’のすべての重み414に対して1つのスケールおよび1つのオフセットを使用する場合を示す。
【0194】
一実施形態によれば、画像の所定のブロックを予測するための本明細書に記載の装置は、以下の特徴を含む行列ベースのサンプル内予測を使用するように構成することができる。
装置は、複数の基準サンプル17からサンプル値ベクトルpTemp[x]400を形成するように構成される。pTemp[x]が2*boundarySizeであると仮定すると、pTemp[x]は、例えば、直接コピーまたはサブサンプリングもしくはプール化によって、所定のブロックの最上部に位置する隣接サンプルredT[x]によって、x=0..boundarySize-1でポピュレートされ、続いて所定のブロックの左側に位置する隣接サンプルredL[x]によって、x=0..boundarySize-1でポピュレートされてもよく(例えば、isTransposed=0の場合)、転置された処理(例えば、isTransposed=1の場合)の場合はその逆であってもよい。
【0195】
x=0..inSize-1の入力値p[x]が導出される、すなわち、装置は、以下のように、サンプル値ベクトルpTemp[x]から、サンプル値ベクトルpTemp[x]が所定の可逆線形変換によってマッピングされるさらなるベクトルp[x]を導出するように、またはより具体的な所定の可逆アフィン線形変換であるように構成される。
-mipSizeIdが2に等しい場合、以下が適用される。
p[x]=pTemp[x+1]-pTemp[0]
-そうでない場合(mipSizeIdが2未満)、以下が適用される。
p[0]=(1<<(BitDepth-1))-pTemp[0]
p[x]=pTemp[x]-pTemp[0](x=1の場合)・・・inSize-1
ここで、変数mipSizeIdは、所定のブロックのサイズを示す。すなわち、本実施形態によれば、サンプル値ベクトルからさらなるベクトルを導出するための可逆変換は、所定のブロックのサイズに依存する。依存関係は、以下に従って与えられてもよい。
【0196】
【表3】
【0197】
predSizeは、所定のブロック内の予測されたサンプルの数を示し、2*bondarySizeは、サンプル値ベクトルのサイズを示し、inSize=(2*boundarySize)-(mipSizeId==2)?1:0に従ってinSize、すなわちファーターベクトルのSサイズに関連している。より正確には、inSizeは、計算において実際に関与するさらなるベクトルのコンポーネントの数を示す。inSizeは、小さいブロックサイズではサンプル値ベクトルのサイズと同じ大きさであり、大きいブロックサイズでは1つのコンポーネントがより小さい。前者の場合、1つの成分、すなわち、後に計算される行列ベクトル積のように、さらなるベクトルの所定の成分に対応する成分が分解されてもよく、対応するベクトル成分の寄与はいずれにせよ0になり、したがって実際に計算される必要はない。ブロックサイズへの依存性は、2つの代替案のうちの1つのみが必然的に使用される、すなわちブロックサイズに関係なく使用される代替的な実施形態の場合には除外され得る(mipSizeIdに対応するオプションが2未満であるか、またはmipSizeIdに対応するオプションが2に等しい)。
【0198】
言い換えれば、所定の可逆線形変換は、例えば、さらなるベクトルpの所定の成分がaになり、他のすべての成分がサンプル値ベクトルからaを引いた成分に対応するように定義され、例えば、a=pTemp[0]である。2に等しいmipSizeIdに対応する第1のオプションの場合、これは容易に見え、さらなるベクトルの別個に形成された成分のみがさらに考慮される。すなわち、第1の選択肢の場合、さらなるベクトルは実際には{p[0...inSize]、p温度[0]}であり、ここで、pTemp[0]はであり、行列ベクトル乗算の実際に計算された部分、すなわち乗算の結果は、行列が計算を必要としない0列を有するので、さらなるベクトルおよび行列の対応する列のinSize成分のみに制限される。他の場合には、2より小さいmipSizeIdに対応して、p[0]を除くさらなるベクトルのすべての成分、すなわち、所定の成分p[0]を除くさらなるベクトルpの他の成分p[x](x=1の場合..inSize-1)の各々は、サンプル値ベクトルpTemp[x]の対応する成分-aに等しいが、p[0]は定数-aであるようにa=pTemp[0]が選択される。次いで、行列ベクトル積が計算される。定数は、表現可能な値の平均、すなわち2x-1(すなわち、1<<(ビット深度-1))であり、xは使用される計算表現のビット深度を示す。p[0]が代わりにpTemp[0]であるように選択された場合、計算された積は、上記のようにp[0]を使用して計算された積(p[0]=(1<<(BitDepth-1))-pTemp[0])から、積、すなわち予測ベクトルに基づいてブロック内部を予測するときに考慮することができる定数ベクトルだけ逸脱することに留意されたい。したがって、値aは所定の値、例えばpTemp[0]である。所定値pTemp[0]は、この場合、例えば、所定成分p[0]に対応するサンプル値ベクトルpTempの成分である。それは、所定のブロックの左上隅に最も近い、所定のブロックの上または所定のブロックの左に隣接するサンプルであり得る。
【0199】
例えばイントラ予測モードを指定するなど、predModeIntraによるサンプル内予測プロセスの場合、装置は、例えば、以下のステップを適用するように構成され、例えば、少なくとも第1のステップを実行する。
1.x=0..predSize-1、y=0..predSize-1である行列ベースのイントラ予測サンプルpredMip[x][y]は、以下のように導出される。
-変数modeIdは、predModeIntraと等しく設定される。
-x=0..inSize-1、y=0..predSize*predSize-1の重み行列mWeight[x][y]は、mipSizeIdとmodeIdを入力としてMIP重み行列導出プロセスを呼び出すことによって導出される。
-x=0..predSize-1、y=0..predSize-1である行列ベースのイントラ予測サンプルpredMip[x][y]は、以下のように導出される。
oW=32-32*(
【数356】

predMip[x][y]=(((
【数357】
)+
oW)>>6)+pTemp[0]
【0200】
言い換えれば、装置は、さらなるベクトルp[i]の間の行列ベクトル積、またはmipSizeIdが2に等しい場合、{p[i]、pTemp[0]}および所定の予測行列mWeight、またはmipSizeIdが2より小さい場合、予測行列mWeightは、ここでは、配列predMip[x][y]をもたらすように所定のブロックの内側に分布するブロック位置{x、y}の配列に既に割り当てられている予測ベクトルを得るために、pの省略された成分に対応する追加のゼロ重み線を有する。予測ベクトルは、predMip[x][y]の行またはpredMip[x][y]の列の連結にそれぞれ対応する。
一実施形態によれば、または異なる解釈によれば、成分((
【数358】
)+oW)>>6)のみが予測ベクトルとして理解され、装置は、予測ベクトルに基づいて所定のブロックのサンプルを予測する際に、予測ベクトルの各成分について、それぞれの成分と、例えばpTemp[0]との和を計算するように構成される。
装置は、任意選択的に、予測ベクトルに基づいて所定のブロックのサンプルを予測する際に以下のステップ、例えばpredMipまたは((
【数359】
)+oW)>>6をさらに実行するように構成することができる。
【0201】
2.x=0..predSize-1、y=0..predSize-1である行列ベースのイントラ予測サンプルpredMip[x][y]は、例えば、以下のようにクリップされる。
predMip[x][y]=Clip1(predMip[x][y])
3.isTransposedがTRUEに等しい場合、x=0..predSize-1、y=0..predSize-1のpredSize×predSize配列predMip[x][y]は、例えば、以下のように転置される。
predTemp[y][x]=predMip[x][y]
predMip=predTemp
4.x=0..nTbW-1、y=0..nTbH-1である予測サンプルpredSamples[x][y]は、例えば、以下のように導出される。
-変換ブロック幅を指定するnTbWがpredSizeよりも大きいか、変換ブロック高さを指定するnTbHがpredSizeよりも大きい場合、MIP予測アップサンプリング処理は、入力ブロックサイズpredSize、x=0..predSize-1、y=0..predSize-1を有する行列ベースのイントラ予測サンプルpredMip[x][y]、変換ブロック幅nTbW、変換ブロック高さnTbH、x=0..nTbW-1を有する上位参照サンプルrefT[x]、およびy=0..nTbH-1を有する左参照サンプルrefL[y]を入力として呼び出され、出力は予測サンプルアレイpredSamplesである。
-そうでない場合、x=0..nTbW-1、y=0..nTbH-1であるpredSamples[x][y]は、predMip[x][y]と等しく設定される。
言い換えれば、装置は、予測ベクトルpredMipに基づいて所定のブロックのサンプルpredSamplesを予測するように構成される。
【0202】
8 他のイントラ予測モードとともにブロックベースのイントラ予測モードを使用する実施形態
上記のすべての説明は、ここで説明する実施形態の任意選択の実施の詳細と見なされるものとする。以下では、ブロックベースのイントラ予測という用語は、上記のALWIPによって示されたものと具体化され得るかまたはそれに等しくなり得るイントラ予測モードを示すために使用されることに留意されたい。
【0203】
図12は、イントラ予測を使用して画像10の所定のブロック18を復号するための装置3000の一実施形態を示す。装置3000は、DCイントラ予測モード506および角度予測モード500を含むイントラ予測モードの第1のセット508のうちの1つを使用して所定のブロック18が予測されるべきかどうかを示すデータストリーム12からセット選択的シンタックス要素522を導出するように構成される。データストリーム12は、装置3000の機能を示す異なるシンタックス要素および/またはインデックスを含むことができる。
【0204】
セット選択的シンタックス要素522が、イントラ予測モードの第1のセット508のうちの1つを使用して所定のブロック18が予測されるべきであることを示す場合、装置3000は、所定のブロック18に隣接する隣接ブロック524、526が予測されるときを使用して、イントラ予測モード3050に基づいて最も可能性の高いイントラ予測モードのリスト528を形成するように構成される。言い換えれば、イントラ予測モードの第1のセット508のイントラ予測モード506、500は、隣接するブロック524および526の予測に使用されるイントラ予測モード3050に基づいて、最も可能性の高いイントラ予測モードのリスト528に位置決め/配置される。装置3000は、例えば、既に予測されたブロックに使用される予測モードを保存し、保存された予測モードのうちの隣接ブロック524および526に使用される予測モード3050を取得するか、または隣接ブロック524および526を分析して、隣接ブロック524および526に使用される予測モード3050を取得するように構成される。一実施形態によれば、装置3000は、イントラ予測モードの第1のセット508内の隣接ブロック524および526に使用される予測モード3050と等しいまたは類似のイントラ予測モードを探索し、この等しいまたは類似のイントラ予測モードのうちの最も可能性の高いイントラ予測モードのリスト528を形成するように構成される。
【0205】
最も可能性の高いイントラ予測モードのリスト528は、隣接ブロック524および526が角度イントラ予測モード506のいずれかによって排他的に予測されている場合、最も可能性の高いイントラ予測モードのリスト528がDCイントラ予測モード500を含まないように形成される。したがって、DCイントラ予測モード506の可用性は、所定のブロック18の隣接ブロック524および526のみに依存し、画像10の他のブロックには依存しない。DCイントラ予測モード506は、例えば、角度イントラ予測モード500を使用して少なくとも1つの隣接ブロック524または526が予測される場合、最も可能性の高いイントラ予測モードのリスト528に配置/配置されない。最も可能性の高いイントラ予測モードのリスト528はまた、隣接するブロック524および526の両方が角度イントラ予測モード500を使用して予測される場合、DCイントラ予測モード506を含まなくてもよい。
【0206】
さらに、この装置は、セット選択的シンタックス要素522が、イントラ予測モードの第1のセット508のうちの1つを用いて所定のブロック18が予測されるべきであることを示す場合、データストリームからMPMリストインデックス534を導出するように構成される。MPMリストインデックス534は、最も可能性の高いイントラ予測モードのリスト528を所定のイントラ予測モードに向ける。装置3000は、所定のイントラ予測モード3100を使用して所定のブロック18をイントラ予測するように構成される。
【0207】
セット選択的シンタックス要素522が、イントラ予測モードの第1のセット508のうちの1つを使用して所定のブロック18が予測されるべきでないことを示す場合、装置3000は、データストリーム12から、行列ベースのイントラ予測モードの第2のセット520、すなわちブロックベースのイントラ予測モード510のうちの所定の行列ベースのイントラ予測モード、すなわち所定のブロックベースのイントラ予測モード3200を示すさらなるインデックス540を導出するように構成される。言い換えれば、ブロックベースのイントラ予測モードの第2のセット520のうちの所定のブロックベースのイントラ予測モード3200が、所定のブロック18の予測のためにさらなるインデックス540に基づいて選択される。装置3000は、予測ベクトル518を取得するために、所定のブロック18の近傍の参照サンプル17から導出されたベクトル514と所定の行列ベースのイントラ予測モード3200に関連付けられた所定の予測行列516との間の行列ベクトル積512を計算し、設定選択的シンタックス要素522が、イントラ予測モードの第1のセット508のうちの1つを使用して所定のブロック18が予測されないことを示す場合、予測ベクトル518に基づいて所定のブロック18のサンプルを予測するように構成される。
データストリーム12は、設定選択的シンタックス要素522に基づいて、MPMリストインデックス534またはさらなるインデックス540のいずれかを含む。
装置3000は、図13に関して説明したような特徴および/または機能を含むことができる。
【0208】
これにより、図13に関して以下で説明される実施形態は、異なるイントラ予測モードがサポートされる所定のブロック18を復号/符号化するためのイントラ予測をサポートする復号器および符号化器に関する。所定のブロック18のイントラ予測信号を取得するために、所定のブロック18を満たすために所定のブロック18に隣接する参照サンプル17が使用される角度イントラ予測モード500がある。特に、所定のブロック18の上端および左端に沿ってなど、所定のブロック18の境界に沿って配置される基準サンプル17は、所定の方向502に沿って所定のブロック18の内側に外挿される、またはコピーされる画像コンテンツを表す。外挿またはコピーの前に、隣接するサンプル17によって表される画像コンテンツは、補間フィルタリングを受ける可能性があり、または異なる言い方が、補間フィルタリングの場合、隣接するサンプル17から導出され得る。角度イントラ予測モード500は、イントラ予測方向502が互いに異なる。各角度イントラ予測モード500は、関連付けられたインデックスを有することができ、角度イントラ予測モード500へのインデックスの関連付けは、方向500が、関連付けられたモードインデックスに従って角度イントラ予測モード500を順序付けるとき、時計回りまたは反時計回りに単調に回転するようなものであり得る。
【0209】
非角度イントラ予測モードもあり得る。例えば504、図13は、セット508に任意選択的に含まれる平面イントラ予測モードを示し、それに従って、水平勾配、垂直勾配、およびオフセットによって定義される二次元線形関数が隣接するサンプル17に基づいて導出され、この線形関数は、所定のブロック18の予測サンプル値を定義する。水平傾き、垂直傾き、およびオフセットは、隣接するサンプル17に基づいて導出される。一実施形態によれば、イントラ予測モードの第1のセット508は平面イントラ予測モード504を含む。
セット508に含まれる特定の非角度イントラ予測モードであるDCモードが506に示されている。ここでは、近傍のサンプル17に基づいて、擬似的にDC値である1つの値が導出され、この1つのDC値は、イントラ予測信号を得るために、所定のブロック18のすべてのサンプルに起因する。非イントラ予測モードの2つの例が示されているが、ただ1つまたは3つ以上が存在してもよい。
【0210】
イントラ予測モード500、504および506は、符号器および復号器によってサポートされるイントラ予測モードのセット508を形成し、符号器および復号器は、レート/歪み最適化の意味に関して、参照符号510を使用して一般的に示されるブロックベースのイントラ予測モードと競合し、その例では、略語ALWIPを使用して上述した。上述したように、これらのブロックベースのイントラ予測モード510によれば、一方では隣接サンプル17から導出されたベクトル514と、他方では所定の予測行列516との間で行列ベクトル積520が実行される。乗算512の結果は、所定のブロック18のサンプルを予測するために使用される予測ベクトル518である。ブロックベースのイントラ予測モード510は、それぞれのモードに関連付けられた予測行列516において互いに異なる。
したがって、簡単に要約すると、本明細書に記載された実施形態による符号化器および復号器は、イントラ予測モードのセット508、すなわちイントラ予測モードの第1のセットと、ブロックベースのイントラ予測モードのセット520、すなわち行列ベースのイントラ予測モードの第2のセットとを備え、それらは互いに競合する。
【0211】
本出願の実施形態によれば、所定のブロック18は、以下の方法でイントラ予測を使用して符号化/復号される。特に、第1に、所定のブロック18がイントラ予測モードのセット508のいずれか、またはブロックベースのイントラ予測モードのセット520のいずれかのモードを使用して予測されるかどうかのセット選択シンタックス要素522である。セット選択されたシンタックス要素が、セット508の任意のモード、すなわちイントラ予測モードの第1のセットを使用して所定のブロック18が予測されるべきであることを示す場合、セット508からの最も可能性の高い候補のリスト528は、隣接ブロック18、および524および526で例示的に示されている隣接ブロックがどのイントラ予測モードを使用して予測されたかに基づいて、復号器および符号化器において解釈/形成される。隣接するブロック524および526は、サンプルなどのブロック18の特定の隣接するサンプルをブロック18の左上のサンプルの上に重ね合わせる隣接するブロック、および上述のコーナーサンプルの左にサンプルを含むブロック526を決定することなどによって、所定の方法で所定のブロック18の位置に対して決定することができる。当然、これは一例にすぎない。すべての実施形態について2つに限定されないモード予測に使用される隣接ブロックの数にも同じことが当てはまる。2つより多くてもよいし、1つだけでもよい。これらのブロック524および526のいずれかが欠落している場合、デフォルトのイントラ予測モードは、その欠落している隣接ブロックのイントラ予測モードの代わりとしてデフォルトで使用され得る。動き補償予測などによるインター予測モードを使用してブロック524および526のいずれかが符号化/復号された場合も同様であり得る。
【0212】
セット508からのモードのリスト、すなわち最も可能性の高いイントラ予測モードのリスト528の構成は以下の通りである。リスト528のリスト長、すなわち、その中の最も可能性の高いモードの数は、デフォルトで固定され得る。長さは、図13に示すように4であってもよいし、5または6など、それと異なっていてもよい。後者の場合は、以下に説明する具体例に当てはまる。後述するデータストリームにおけるインデックスは、所定のブロック18に使用されるリスト528のうちの1つのモードを示してもよい。インデックス化は、リスト順序またはランキング530に沿って実行され、リストインデックスは、例えば、インデックスの長さが順序530に沿って単調に増加するように符号化された可変長である。したがって、最初に、セット508から最も可能性の高いモードのみをリスト528に追加し、順序530に沿って、ブロック18に適している可能性がより低いモードと比較してより可能性の高いモードを上流に配置することは価値がある。リスト528のモードは、ブロック524および526、すなわち所定のブロック18に隣接する隣接ブロックに使用されるモードに基づいて導出される。ブロック524および526のいずれかがセット520のうちのブロックベースのモード510を使用してイントラ予測された場合、そのような「ALWIP」またはブロックベースのモード510からセット508内のモード、例えば非ALWIPモードへの前述のマッピングが使用される。後者のマッピングは、例えば、ブロックベースのモード510の大部分(すなわち、半分より多く)をDCモード506(またはDC506もしくは平面モード504のいずれか)にマッピングすることができる。
【0213】
一実施形態によれば、最も可能性の高いイントラ予測モードのリスト528は、近隣ブロックが予測されるときを使用して、イントラ予測モードから独立した方法で平面イントラ予測モード504で埋められる。したがって、例えば、DCイントラ予測モード506および角度イントラ予測モード500のみが、近隣ブロック524および526の予測に使用されるイントラ予測モードに依存してリスト528に取り込まれる。平面イントラ予測モード504は、例えば、隣接ブロック524および526が予測されるときを使用して、イントラ予測モードから独立した最も可能性の高いイントラ予測モードのリスト528の第1の位置に配置される。
【0214】
以下により詳細に例示されるように、最も可能性の高いイントラ予測モードのリスト528のリスト構築は、近隣ブロック524および526が角度イントラ予測モード506によって排他的に予測されている場合、リスト528がDCイントラ予測モード500を含まないように行われる。DCイントラ予測モード506は、1つの隣接ブロック524または526が任意の角度イントラ予測モード500によって予測される場合、および/または両方の隣接ブロック524および526が任意の角度イントラ予測モード500によって予測される場合、最も可能性の高いイントラ予測モードのリスト528にはない。本明細書で以下に示される実施形態によれば、例えば、リスト528は、以下の状況がすべての隣接ブロック524および526に当てはまる場合にのみDCモード506で埋められる:いずれかが、非角度イントラ予測モード504および506のいずれかを使用して符号化されているか、またはいずれかが、ブロックベースのイントラ予測モード510を使用してイントラ予測されており、これは、ブロックベースのイントラ予測モード510からセット508内のモードへの前述のマッピングによって、非角度イントラ予測モード504および506のいずれかにマッピングされる。その場合にのみ、DCイントラ予測モード506がリスト528に位置付けられる。その場合、後続の例から分かるように、順序530の任意の角度イントラ予測モード500の前に配置され得る。
言い換えれば、最も可能性の高いイントラ予測モードのリスト528は、例えば、隣接ブロック524および526の各々について、DCイントラ予測モード506を含む第1のセット508を有する少なくとも1つの非角度イントラ予測モード504および506のいずれかを使用して予測されるか、またはブロックベースのイントラ予測モード510の第2のセット520から、最も可能性の高いイントラ予測モードのリスト528の形成に使用される第1のセット506内のイントラ予測モードにマッピングすることによって、少なくとも1つの非角度イントラ予測モード500のいずれかにマッピングされるブロックベースのイントラ予測モード510のいずれかを使用して予測されるそれぞれの隣接ブロックの場合にのみ、DCイントラ予測モード508で埋められる。
【0215】
したがって、所定のブロック18がデータストリーム12にどのように符号化されるかに関する説明を再開すると、データストリーム12は、セット選択的シンタックス要素522が、所定のブロック18が第1のセット508のうちのいずれかのモードによって符号化されるべきであることを示す場合、任意選択的に、所定のブロック18に使用されるべきイントラ予測モードがリスト528内にあるか否かを示すMPMシンタックス要素532を含み、そうである場合、データストリーム12は、順序530に沿って同じものにインデックスを付けることによってリスト528のうちの所定のブロック18に使用されるべきモード、すなわち所定のイントラ予測モードを示すリスト528内を指し示すMPMリストインデックス534を含む。しかしながら、MPMシンタックス要素532によって示されるように、セット508からのモードがリスト528内にない場合、データストリーム12は、ブロック18に対して、どのモード、すなわち所定のイントラ予測モードがセット508からのブロック18に使用されるべきかを示すさらなるシンタックス要素536を含む。さらなるシンタックス要素536は、リスト528に含まれていないセット508からのモードを単に区別することによってモードを示すことができる。
言い換えれば、装置3000は、例えば、イントラ予測モードの第1のセット508の所定のイントラ予測モードが最も可能性の高いイントラ予測モードのリスト528内にあるか否かを示すMPMシンタックス要素532をデータストリームから導出するように構成され、セット選択シンタックス要素522は、イントラ予測モードの第1のセット508のうちの1つを使用して所定のブロック18が予測されることを示す。MPMシンタックス要素532が、イントラ予測モードの第1のセット508の所定のイントラ予測モードが最も可能性の高いイントラ予測モードのリスト528内にあることを示す場合、装置3000は、例えば、所定のブロック100に隣接する隣接ブロック524、526が予測されるときを使用してイントラ予測モードに基づいて最も可能性の高いイントラ予測モードのリスト528の形成を実行し、最も可能性の高いイントラ予測モードのリスト528の所定のイントラ予測モードを指し示すデータストリーム12からMPMリストインデックス534の導出を実行するように構成される。データストリーム12からのMPMシンタックス要素532が、イントラ予測モードの第1のセット508の所定のイントラ予測モードが最も可能性の高いイントラ予測モードのリスト528内にないことを示す場合、装置3000は、イントラ予測モードの第1のセットのうちの所定のイントラ予測モードを示すデータストリームからさらなるリストインデックス536を導出するように構成される。したがって、MPMシンタックス要素532に基づいて、データストリーム12は、所定のブロック18の予測のためのMPMリストインデックス534またはさらなるリストインデックス536のいずれかを含む。
【0216】
リスト528がDCイントラ予測モード506を含む状況を除去することによって、以下の利点が達成される。特に、本出願の発明者らは、シンタックス要素522、すなわち、セット選択的シンタックス要素によって示されるセット508のイントラ予測モードのいずれかを使用するべきである所定のブロック18を符号化/復号するために、セット508のうちのDCイントラ予測モード506を有するリスト528の貴重なリスト位置を「消費する」ことは、いずれにせよ、セット508のうちのそのようなDCイントラ予測モード506がブロックベースのイントラ予測モード510と競合するので、符号化効率に悪影響を及ぼすことを見出した。したがって、セット508からのそのようなDCイントラ予測モード506を用いてリスト528のリスト位置を「消費」することは、所定のブロック18のために最終的に使用されるべきイントラ予測モード、すなわち所定のイントラ予測モードがリスト528内にない状況の可能性を高めることになり、その結果、シンタックス要素536、すなわちさらなるリストインデックスがデータストリーム12内で送信される必要がある。
特に、シンタックス要素522は、ブロック18に対して、セット508内のモードのいずれかまたはセット520のブロックベースのモード510のいずれかを使用して予測されるべきかどうかを既に示しているため、シンタックス要素522が、セット508内のモードがブロック18に好ましいものであり、したがってブロックベースのモード510がブロック18に使用されないことを示す場合、セット508のDC予測モード506がブロック18に適している可能性は非常に低いため、リスト528におけるその発生は、隣接するブロック524および526に使用されるモードの非常に限定されたコンスタレーションのセット、すなわち上記で設定されたコンスタレーションに制限されるべきである。
【0217】
他方の場合、すなわち、セット選択的シンタックス要素522が、ブロックベースのイントラ予測モード510のいずれかを使用して所定のブロック18が予測されることを示す場合、ブロック18のデータストリーム12への符号化およびそこからのこの復号は、上記の方法で行われ得る。この目的のために、インデックス付けを使用して、セット520のうちのブロックベースのイントラ予測モード510、すなわちブロックベースのイントラ予測モードの第2のセットのうちの選択されたものをインデックス付けするか、またはそれに関して示すことができる。さらなるMPMシンタックス要素538は、インデックス付けがインデックス540によって、すなわち最も可能性の高いブロックベースのイントラ予測モード510のリスト542のうちのブロック18に使用されるべきブロックベースのイントラ予測モード510を示すさらなるMPMリストインデックスによって、すなわちリスト順序544に沿ってインデックス付けすることによって行われるかどうか、またはブロック18に使用されるべきブロックベースのイントラ予測モード510がさらなるシンタックス要素546によって、すなわちセット520のうちのブロックベースのイントラ予測モード510を示すなおさらなるリストインデックスによって示されるかどうかを示すことができ、後者のシンタックス要素546は、例えば、リスト542内にまだ含まれていないセット520内のそれらのモード510間のみを区別することができる。リスト542のリスト構築は、ブロック524および526が予測されたモードに基づいて行うことができる。ブロック524および526のいずれかが、画像外であるか、またはインター予測されているために利用可能でない場合、セット508のうちの1つのようなデフォルトのイントラ予測モードが代わりに使用され得る。セット520ではなくセット508の外のモードを使用してイントラ予測された各ブロック524および526について、セット508のモードからセット520の外のモードへの前述のマッピングは、それぞれのブロック、すなわち所定のブロック18のイントラ予測モード510、すなわち所定のブロックベースのイントラ予測モードを取得するために使用され、ブロック524および526の結果として得られるブロックベースのイントラ予測モードに基づいて、リスト542が解釈される。
【0218】
一実施形態によれば、装置3000は、セット選択的シンタックス要素522がイントラ予測モードの第1のセット508のうちの1つを使用して所定のブロック18が予測されないことを示す場合、ブロックベースのイントラ予測モード510の第2のセット520の所定のブロックベースのイントラ予測モードが最も可能性の高いブロックベースのイントラ予測モードのリスト542内にあるか否かを示すさらなるMPMシンタックス要素538をデータストリーム12から導出するように構成される。さらなるMPMシンタックス要素538が、ブロックベースのイントラ予測モード510の第2のセット520の所定のブロックベースのイントラ予測モードが最も可能性の高いブロックベースのイントラ予測モードのリスト542内にあることを示す場合、装置3000は、例えば、所定のブロック18に隣接する隣接ブロック524、526が予測されるときを使用してイントラ予測モードに基づいて最も可能性の高いブロックベースのイントラ予測モードのリスト542を形成し、最も可能性の高いブロックベースのイントラ予測モードのリスト542を所定のブロックベースのイントラ予測モード上に示すさらなるMPMリストインデックス540をデータストリーム12から導出するように構成される。さらなるMPMシンタックス要素538が、ブロックベースのイントラ予測モードの第2のセット520の所定のブロックベースのイントラ予測モードが最も可能性の高いブロックベースのイントラ予測モードのリスト542内にないことを示す場合、装置3000は、ブロックベースのイントラ予測モードの第2のセット520のうちの所定のブロックベースのイントラ予測モードを示すさらにさらなるリストインデックス546をデータストリーム12から導出するように構成される。したがって、さらなるMPMシンタックス要素538に基づいて、データストリーム12は、所定のブロック18の予測のためのさらなるMPMリストインデックス540またはさらにさらなるリストインデックス546のいずれかを含む。
【0219】
さらなるMPMシンタックス要素538、さらなるMPMリストインデックス540、およびなおさらなるリストインデックス546は、MPMシンタックス要素532、MPMリストインデックス534、およびさらなるリストインデックス536と並列であるものとして図13のデータストリーム12で表されているが、さらなるMPMシンタックス要素538、およびさらなるMPMシンタックス要素538に関連付けられたインデックス、例えばさらなるMPMリストインデックス540またはなおさらなるリストインデックス546のいずれかが、データストリーム12またはMPMシンタックス要素532、およびMPMシンタックス要素532に関連付けられたインデックス、例えばMPMリストインデックス534またはさらなるリストインデックス536によって構成されることは明らかである。このシンタックス要素およびインデックスのいずれがデータストリーム12に含まれるかは、例えば、セット選択的シンタックス要素522に依存する。
擬似コードとして書かれたデータストリーム12のシンタックス要素部分の例は以下のように見え、参照符号は、どのシンタックス要素が前述のシンタックス要素に対応するかを示す。
【0220】
【表4-1】
【表4-2】
【表4-3】
【表4-4】
【表4-5】
【0221】
リスト528のリスト構築は以下のように定義されてもよく、ここで、candIntraPredModeA/Bは、対応するブロック524または526がブロックベースのイントラ予測モード510のいずれかを使用してイントラ予測された場合、ブロック524のAおよびブロック526のBなど、ブロック524および526のいずれかが予測されたイントラ予測モード、またはセット508からイントラ予測モードがマッピングされるモードを示す。INTRA_DCは、モード506を示すために使用され、角度モード500は、INTRA_ANGULAR#によって示され、上に例示的に示されたように、すなわち、角度方向502が数の増加と共に単調に減少または増加するように、角度モードを順序付けて番号付け(#)する。セット508内のモード間の順序は、INTRA_PLANARがモード504を示す後続の表で定義される通りであってもよい。
【0222】
上記の例では、インデックス534は、実際には、シンタックス要素534’および534’’上に分散されることに留意されたい。すなわち、前者534’は、この例によればINTRA_PLANARモード504が必然的に位置付けられるリスト528の最初の、順序530の位置に固有である。後者534’’は、リスト528の後続の位置のいずれかを指し、説明したように、DCモード506は、説明した特殊な状況にのみ含まれる。
【0223】
さらに、上記の例では、セット508内のモードのいずれかが使用されることを示すシンタックス要素522の場合、さらなるシンタックス要素がデータストリーム12に含まれ、このさらなるシンタックス要素は、何らかの形でセット508内のイントラ予測モードをパラメータ化する。例えば、シンタックス要素600は、基準サンプル17が配置される領域をパラメータ化または変化させ、それに基づいて、セット508内のモードは、ブロック18の外周に向かう距離などに関して、ブロック18の内側をイントラ予測する。これに加えて、またはこれに代えて、シンタックス要素602は、参照サンプル17がセット508内のモードによって使用されてブロック18の内部をグローバルにまたはブロック内でイントラ予測するかどうか、またはイントラ予測がブロック18が細分された部分または部分で行われて順次イントラ予測されるかどうかをパラメータ化または変更し、その結果、ある部分についてデータストリーム12に符号化された予測残差は、後続の部分をイントラ予測するために新しい参照サンプルを採用するのに役立ち得る。シンタックス要素によって制御される後者の符号化オプションは、シンタックス要素600が、例えば、ブロック18に隣接する参照サンプル17が存在する領域に対応する所定の状態を有する場合にのみ利用可能であり得る(および対応するシンタックス要素がデータストリームにのみ存在し得る)。部分は、ブロックを水平方向に、それによってブロック18と同じ高さの部分をもたらすか、または垂直方向に、それによってブロック18と同じ幅の部分をもたらすかのいずれかのような所定の方向に沿って細分することによって画定され得る。分割がアクティブであるようにシグナリングされる場合、どの分割方向が使用されるかに関して制御するシンタックス要素604がデータストリーム内に存在し得る。見て分かるように、INTRA_PLANARモード用に予約されているリスト528内の位置は、シンタックス要素600が、例えば、ブロック18に隣接する参照サンプル17が存在する領域に対応する所定の状態を有する場合、および/またはシンタックス要素602によって通知されるように部分ワイズイントラ予測モードがアクティブでない場合など、上述のパラメータ化シンタックス要素によるモードの特定のパラメータ化の場合にのみ利用可能である。
【0224】
表に示され、具体的に上述されていないすべてのシンタックス要素はオプションであり、本明細書ではこれ以上説明しない。
-candIntraPredModeBがcandIntraPredModeAに等しく、candIntraPredModeAがINTRA_DCより大きい場合、x=0..4であるcandModeList[x]は以下のように導出される。
candModeList[0]=candIntraPredModeA
candModeList[1]=2+((candIntraPredModeA+61)% 64)
candModeList[2]=2+((candIntraPredModeA-1)% 64)
candModeList[3]=2+((candIntraPredModeA+60)% 64)
candModeList[4]=2+(candIntraPredModeA % 64)
-さもなければ、candIntraPredModeBがcandIntraPredModeAと等しくなく、candIntraPredModeAまたはcandIntraPredModeBがINTRA_DCより大きい場合、以下が適用される。
-変数minABおよびmaxABは、以下のように導出される。
【0225】
minAB=Min(candIntraPredModeA,candIntraPredModeB)
maxAB=Max(candIntraPredModeA,candIntraPredModeB)
-candIntraPredModeAとcandIntraPredModeBの両方がINTRA_DCより大きい場合、x=0..4であるcandModeList[x]は以下のように導出される。
candModeList[0]=candIntraPredModeA
candModeList[1]=candIntraPredModeB
-maxAB-minABが1に等しい場合、以下が適用される。
candModeList[2]=2+((minAB+61)% 64)
candModeList[3]=2+((maxAB-1)% 64)
candModeList[4]=2+((minAB+60)% 64)
-そうではなく、maxAB-minABが62以上である場合、以下が適用される。
candModeList[2]=2+((minAB-1)% 64)
candModeList[3]=2+((maxAB+61)% 64)
candModeList[4]=2+(minAB % 64)
-そうではなく、maxAB-minABが2に等しい場合、以下が適用される。
candModeList[2]=2+((minAB-1)% 64)
candModeList[3]=2+((minAB+61)% 64)
candModeList[4]=2+((maxAB-1)% 64)
-そうでなければ、以下が適用される。
candModeList[2]=2+((minAB+61)% 64)
candModeList[3]=2+((minAB-1)% 64)(8-36)
candModeList[4]=2+(((maxAB+61))% 64)
-そうでない場合(candIntraPredModeAまたはcandIntraPredModeBはINTRA_DCより大きい)、x=0..4であるcandModeList[x]は以下のように導出される。
candModeList[0]=maxAB
candModeList[1]=2+((maxAB+61)% 64)
candModeList[2]=2+((maxAB-1)% 64)(8-41)
candModeList[3]=2+((maxAB+60)% 64)
candModeList[4]=2+(maxAB % 64)
-そうでなければ、以下が適用される。
candModeList[0]=INTRA_DC
candModeList[1]=INTRA_ANGULAR50(
candModeList[2]=INTRA_ANGULAR18
candModeList[3]=INTRA_ANGULAR46
candModeList[4]=INTRA_ANGULAR54
【0226】
【表5】
【0227】
イントラ予測モードの第1のセット508のうちの1つを用いて所定のブロック18が予測されるべきでないことを示すセット選択的シンタックス要素522の場合、所定のブロック18を復号するための装置および/または所定のブロック18を符号化するための装置は、以下の特徴のうちの1つ以上を含み得る。
一実施形態によれば、装置は、複数の基準サンプル17からサンプル値ベクトル、例えば図6から図9の実施形態のうちの1つに関して説明したサンプル値ベクトル400を形成し、サンプル値ベクトルが所定の可逆線形変換によってベクトル514にマッピングされるように、サンプル値ベクトルからベクトル514を導出するように構成される。この場合、ベクトル514はさらなるベクトルとして理解することができる。ベクトル514は、例えば、図8図11の実施形態のうちの1つに関してさらなるベクトル402について説明したように決定および/または定義される。
【0228】
一実施形態によれば、装置は、サンプル値ベクトルの各成分について、複数の参照サンプルのうちの1つの参照サンプルをサンプル値ベクトルのそれぞれの成分として採用すること、および/またはサンプル値ベクトルの2つ以上の成分を平均化してサンプル値ベクトルのそれぞれの成分を取得することによって、複数の参照サンプル17からサンプル値ベクトルを形成するように構成される。
複数の参照サンプル17は、例えば、所定のブロック18の外縁に沿って画像内に配置される。
可逆線形変換は、例えば、ベクトル514の所定の成分、例えばさらなるベクトルの所定の成分がaになり、所定の成分を除くベクトル514の他の成分の各々が、サンプル値ベクトルの対応する成分からaを引いたものに等しくなるように定義される。値aは、例えば、所定の値である。
【0229】
一実施形態によれば、所定の値は、サンプル値ベクトルの成分の算術平均または加重平均などの平均、デフォルト値、画像が符号化されるデータストリーム内でシグナリングされる値、および所定の成分に対応するサンプル値ベクトルの成分のうちの1つである。
可逆線形変換は、例えば、ベクトル514の所定の成分、例えばさらなるベクトルの所定の成分がaになり、所定の成分を除くベクトル514の他の成分の各々が、サンプル値ベクトルの対応する成分からaを引いたものに等しくなるように定義され、aはサンプル値ベクトルの成分の算術平均である。
可逆線形変換は、例えば、ベクトル514の所定の成分、例えばさらなるベクトルの所定の成分がaになり、所定の成分を除くベクトル514の他の成分の各々が、サンプル値ベクトルの対応する成分からaを引いたものに等しくなるように定義され、aは、所定の成分に対応するサンプル値ベクトルの成分である。この装置は、例えば、各々がベクトル514の一成分に関連付けられた複数の可逆線形変換を備え、サンプル値ベクトルの成分から所定の成分を選択し、所定の成分に関連付けられた複数の可逆線形変換からの可逆線形変換を所定の可逆線形変換として使用するように構成される。
【0230】
一実施形態によれば、例えばさらなるベクトルのベクトル514の所定の成分に対応する予測行列516の列内の予測行列516の行列成分はすべてゼロである。装置は、列を除外することによって予測行列516から生じる縮小された予測行列と、所定の成分を除外することによってベクトル514から生じるさらに別のベクトルとの間の行列ベクトル積512を計算することによって乗算を実行することによって行列ベクトル積512を計算するように構成される。
一実施形態によれば、装置は、予測ベクトル518に基づいて所定のブロック18のサンプルを予測する際に、予測ベクトル518の各成分について、それぞれの成分とaとの和を計算するように構成される。
ベクトル514の、例えばさらなるベクトルの所定の成分に対応する予測行列516の列内の予測行列516の各行列成分を、可逆線形変換の(すなわち、図8の行列B)倍と合計した行列は、例えば機械学習予測行列の量子化バージョンに対応する。
【0231】
一実施形態によれば、装置は、固定小数点演算を使用して行列ベクトル積512を計算するように構成される。
一実施形態によれば、装置は、浮動小数点演算なしで行列ベクトル積512を計算するように構成される。
一実施形態によれば、装置は、予測行列516の固定小数点数表現を格納するように構成される。
【0232】
一実施形態によれば、装置は、予測パラメータを使用して予測行列516を表し、例えばさらなるベクトルのベクトル514の成分、および予測パラメータおよびそれから生じる中間結果に対して乗算および加算を実行することによって行列ベクトル積512を計算するように構成され、予測パラメータの絶対値は、nビットの固定小数点数表現によって表すことができ、nは14以下、または代替的に10、または代替的に8である。これは、同様に、または図10または図11に記載されるように実行することができる。
予測パラメータは、例えば、それぞれが予測行列516の対応する行列成分に関連付けられた重みを含む。
予測パラメータは、例えば、それぞれが予測行列516の1つまたは複数の対応する行列成分に関連付けられた重みをスケーリングするための予測行列516の1つまたは複数の対応する行列成分に関連付けられた1つまたは複数のスケーリング係数、および/またはそれぞれが予測行列516の1つまたは複数の対応する行列成分に関連付けられた重みをオフセットするための予測行列516の1つまたは複数の対応する行列成分に関連付けられた1つまたは複数のオフセットをさらに含む。
【0233】
一実施形態によれば、装置は、予測ベクトル518に基づいて所定のブロック18のサンプルを予測する際に、各成分が所定のブロック18内の対応する位置に関連付けられた予測ベクトル518に基づいて所定のブロック18の少なくとも1つのサンプル位置を計算するために補間を使用するように構成される。
【0234】
図14は、イントラ予測を使用して画像10の所定のブロック18を符号化するための装置6000を示し、この装置は、DCイントラ予測モード506および角度予測モード500を含むイントラ予測モードの第1のセット508のうちの1つを使用して所定のブロック18が予測されるべきかどうかを示すデータストリーム12内のセット選択的シンタックス要素522をシグナリングするように構成される。セット選択的シンタックス要素522が、イントラ予測モードの第1のセット508のうちの1つを使用して所定のブロック18が予測されるべきであることを示す場合、装置6000は、所定のブロック18に隣接する隣接ブロック524、526が予測されるイントラ予測モードに基づいて最も可能性の高いイントラ予測モードのリスト528を形成し、最も可能性の高いイントラ予測モードのリスト528を所定のイントラ予測モード3100上に指し示すデータストリーム12内のMPMリストインデックス534をシグナリングし、所定のイントラ予測モード3100を使用して所定のブロック18をイントラ予測するように構成される。セット選択的シンタックス要素522が、イントラ予測モードの第1のセット508のうちの1つを使用して所定のブロック18が予測されるべきでないことを示す場合、装置6000は、予測ベクトル518を取得するために、所定のブロック18の近傍の参照サンプル17から導出されたベクトル514と所定の行列ベースのイントラ予測モード3200に関連付けられた所定の予測行列516との間の行列ベクトル積512を計算し、予測ベクトル518に基づいて所定のブロック18のサンプルを予測することによって、行列ベースのイントラ予測モード510の第2のセット520のうちの所定の行列ベースのイントラ予測モード3200を示すデータストリーム12内のさらなるインデックス540をシグナリングするように構成される。
【0235】
最も可能性の高いイントラ予測モードのリスト528は、隣接ブロック524、526のうちの少なくとも1つが角度イントラ予測モード500のいずれかによって予測されている場合に、最も可能性の高いイントラ予測モードのリストがDCイントラ予測モード506を含まないように、所定のブロック18に隣接する隣接ブロック524、526が使用されるイントラ予測モードに基づいて形成される。
イントラ予測モードの第1のセット508は、例えば、平面イントラ予測モード504をさらに含む。
【0236】
一実施形態によれば、装置6000は、図12および/または図13の装置3000に関して説明したのと同様の特徴および/または機能を含むことができる。同様に、装置3000は、図14の装置6000に関して説明したのと同様の特徴および/または機能を含むことができる。
セット選択的シンタックス要素522が、イントラ予測モードの第1のセット508のうちの1つを使用して所定のブロック18が予測されるべきであることを示す場合、装置6000は、例えば、イントラ予測モードの第1のセット508の所定のイントラ予測モード3100が最も可能性の高いイントラ予測モードのリスト528内にあるか否かを示すデータストリーム12内のMPMシンタックス要素532をシグナリングするように構成される。MPMシンタックス要素532が、イントラ予測モードの第1のセット508の所定のイントラ予測モードが最も可能性の高いイントラ予測モードのリスト528内にあることを示す場合、装置6000は、例えば、所定のブロック18に隣接する隣接ブロック524、526が予測されるイントラ予測モードに基づいて最も可能性の高いイントラ予測モードのリスト528の形成を実行し、最も可能性の高いイントラ予測モードのリスト528の所定のイントラ予測モード3100を指し示すデータストリーム12内のMPMリストインデックス534のシグナリングを実行するように構成される。データストリーム12内のMPMシンタックス要素532が、イントラ予測モードの第1のセット508の所定のイントラ予測モード3100が最も可能性の高いイントラ予測モードのリスト528内にないことを示す場合、装置6000は、例えば、イントラ予測モードの第1のセット508のうちの所定のイントラ予測モード3100を示すデータストリーム12内のさらなるリストインデックス536をシグナリングするように構成される。
【0237】
セット選択的シンタックス要素522が、イントラ予測モードの第1のセット508のうちの1つを使用して所定のブロック18が予測されるべきでないことを示す場合、装置6000は、例えば、ブロックベースのイントラ予測モードの第2のセット520の所定のブロックベースのイントラ予測モード3200が最も可能性の高いブロックベースのイントラ予測モードのリスト542内にあるかどうか、すなわち、最も可能性の高いブロックベースのイントラ予測モードの第2のリスト、例えば、ブロックベースのイントラ予測モードの第2のセット520の最も可能性の高いブロックベースのイントラ予測モードのリスト542内にあるかどうかを示すデータストリーム12内のさらなるMPMシンタックス要素538をシグナリングするように構成されている。さらなるMPMシンタックス要素538が、ブロックベースのイントラ予測モードの第2のセット520の所定のブロックベースのイントラ予測モード3200が最も可能性の高いブロックベースのイントラ予測モードのリスト542内にあることを示す場合、装置6000は、例えば、所定のブロック18に隣接する隣接ブロック524、526が予測されるイントラ予測モード3050に基づいて最も可能性の高いブロックベースのイントラ予測モードのリスト542を形成し、最も可能性の高いブロックベースのイントラ予測モードのリスト542を所定のブロックベースのイントラ予測モード3200上に指し示すデータストリーム12内のさらなるMPMリストインデックス540をシグナリングするように構成される。さらなるMPMシンタックス要素538が、ブロックベースのイントラ予測モードの第2のセット520の所定のブロックベースのイントラ予測モード3200が最も可能性の高いブロックベースのイントラ予測モードのリスト542内にないことを示す場合、装置6000は、例えば、ブロックベースのイントラ予測モードの第2のセット520のうちの所定のブロックベースのイントラ予測モード3200を示すデータストリーム12内のさらなるリストインデックス546をシグナリングするように構成される。
【0238】
一実施形態によれば、装置6000は、隣接ブロック524および526の各々について、DCイントラ予測モード506を含む第1のセット508を有する少なくとも1つの非角度イントラ予測モード504および/または506のいずれかを使用して予測されたか、またはブロックベースのイントラ予測モードの第2のセット520から、最も可能性の高いイントラ予測モードのリスト528の形成に使用される第1のセット508内のイントラ予測モードにマッピングすることによって予測されたブロックベースのイントラ予測モード510のいずれかを使用して予測されたそれぞれの隣接ブロックがDCイントラ予測モード506を含む場合にのみ、リスト528にDCイントラ予測モード528が取り込まれるように、どちらの隣接ブロック524、526が所定のブロック18に隣接するかを使用してイントラ予測モードの第1のセット508の最も可能性の高いイントラ予測モードのリスト528の形成を実行するように構成され、少なくとも1つの非角度イントラ予測モード504および/または506のいずれかにマッピングされる。
【0239】
一実施形態によれば、装置6000は、隣接ブロック524および526の各々について、DCイントラ予測モード506を含む第1のセット508を有する少なくとも1つの非角度イントラ予測モード504および/または506のいずれかを使用して予測されるか、または最も可能性の高いイントラ予測モードのリスト528の形成に使用されるブロックベースのイントラ予測モードの第2のセット520から第1のセット508内のイントラ予測モードへのマッピングによって、少なくとも1つの非角度イントラ予測モード504および/または506のいずれかにマッピングされるブロックベースのイントラ予測モード510のいずれかを使用して予測されるそれぞれの隣接ブロックが、それを使用して所定のブロック18に隣接する隣接ブロック524、526が予測されるイントラ予測モードに基づいて、最も可能性の高いイントラ予測モードのリスト528の形成を実行するように構成される。DCイントラ予測モード506は、最も可能性の高いイントラ予測モードのリスト528内の任意の角度イントラ予測モード500の前に配置される。
【0240】
一実施形態によれば、装置6000は、所定のブロック18に隣接する隣接ブロック524、526が予測されるイントラ予測モードに基づいて最も可能性の高いイントラ予測モードのリスト528の形成を実行するように構成され、その結果、リスト528は、隣接ブロック524、526が予測されるイントラ予測モードとは独立した方法で平面イントラ予測モード504でポピュレートされる。
一実施形態によれば、装置6000は、所定のブロック18に隣接する隣接ブロック524、526が予測されるイントラ予測モードに基づいて、最も可能性の高いイントラ予測モードのリスト528の形成を実行するように構成され、それにより、平面イントラ予測モード504は、隣接ブロック524、526が予測されるイントラ予測モードから独立した最も可能性の高いイントラ予測モードのリスト528の第1の位置に配置される。
【0241】
図15は、イントラ予測を使用して画像の所定のブロック18を復号するための方法4000のブロック図を示し、DCイントラ予測モードおよび角度予測モードを含むイントラ予測モードの第1のセットのうちの一方を使用して所定のブロックが予測されるべきかどうかを示すセット選択的シンタックス要素をデータストリームから導出するステップ4100を含む。セット選択的シンタックス要素が、イントラ予測モードの第1のセットのうちの1つを使用して所定のブロックが予測されるべきであることを示す4150場合、方法4000は、所定のブロックに隣接する隣接ブロックが予測されるイントラ予測モードに基づいて最も可能性の高いイントラ予測モードのリストを形成するステップ4200と、最も可能性の高いイントラ予測モードのリストを所定のイントラ予測モードに向けるデータストリームからMPMリストインデックスを導出するステップ4300と、所定のイントラ予測モードを使用して所定のブロックをイントラ予測するステップ4400とを含む。セット選択的シンタックス要素が、イントラ予測モードの第1のセットのうちの1つを使用して所定のブロックが予測されるべきでないことを示す4155場合、方法4000は、予測ベクトルを取得するために、所定のブロックの近傍の参照サンプルから導出されたベクトルと所定の行列ベースのイントラ予測モードに関連付けられた所定の予測行列との間の行列ベクトル積を計算するステップ4350と、予測ベクトルに基づいて所定のブロックの4450個のサンプルを予測するステップとによって、行列ベースのイントラ予測モードの第2のセットのうちの所定の行列ベースのイントラ予測モードを示すさらなるインデックスをデータストリームから導出するステップ4250を含む。最も可能性の高いイントラ予測モードのリストは、隣接ブロックのうちの少なくとも1つが角度イントラ予測モードのいずれかによって予測されている場合に、最も可能性の高いイントラ予測モードのリストがDCイントラ予測モードを含まないように、所定のブロックに隣接する隣接ブロックが予測されるイントラ予測モードに基づいて形成される4200。
【0242】
図16は、イントラ予測を使用して画像の所定のブロックを符号化するための方法5000のブロック図を示し、DCイントラ予測モードおよび角度予測モードを含むイントラ予測モードの第1のセットのうちの一方を使用して所定のブロックが予測されるべきかどうかを示すデータストリーム内のセット選択的シンタックス要素をシグナリング5100することを含む。セット選択的シンタックス要素が、イントラ予測モードの第1のセットのうちの1つを使用して所定のブロックが予測されるべきであることを示す5150場合、方法5000は、所定のブロックに隣接する隣接ブロックが予測されるイントラ予測モードに基づいて最も可能性の高いイントラ予測モードのリストを形成するステップ5200と、最も可能性の高いイントラ予測モードのリストを所定のイントラ予測モードに向けるデータストリーム内のMPMリストインデックスをシグナリングするステップ5300と、所定のイントラ予測モードを使用して所定のブロックをイントラ予測するステップ5400とを含む。セット選択的シンタックス要素が、イントラ予測モードの第1のセットのうちの1つを使用して所定のブロックが予測されるべきでないことを示す5155場合、方法5000は、予測ベクトルを取得するために、所定のブロックの近傍の参照サンプルから導出されたベクトルと所定の行列ベースのイントラ予測モードに関連付けられた所定の予測行列との間の行列ベクトル積を計算するステップ5350と、予測ベクトルに基づいて所定のブロックのサンプルを予測するステップ5450とによって、行列ベースのイントラ予測モードの第2のセットのうちの所定の行列ベースのイントラ予測モードを示すデータストリーム内のさらなるインデックスをシグナリングするステップ5250を含む。最も可能性の高いイントラ予測モードのリストは、隣接ブロックのうちの少なくとも1つが角度イントラ予測モードのいずれかによって予測されている場合に、最も可能性の高いイントラ予測モードのリストがDCイントラ予測モードを含まないように、所定のブロックに隣接する隣接ブロックが予測されるイントラ予測モードに基づいて形成される5200。
【0243】
参考文献
[1] P.Helleら、「Non-linear weighted intra prediction」、JVET-L0199、マカオ、中国、2018年10月。
[2] F.Bossen、J.Boyce、K.Suehring、X.Li、V.Seregin、「JVET common test conditions and software reference configurations for SDR video」、JVET-K 1010、Ljubljana、SI、2018年7月。
【0244】
さらなる実施形態および実施例
一般に、例は、プログラム命令を有するコンピュータプログラム製品として実装されてもよく、プログラム命令は、コンピュータプログラム製品がコンピュータ上で実行されるときに方法のうちの1つを実行するように動作する。プログラム命令は、例えば、機械可読媒体に記憶されてもよい。
他の例は、機械可読キャリアに格納された、本明細書に記載の方法の1つを実行するためのコンピュータプログラムを含む。
言い換えれば、したがって、方法の一例は、コンピュータプログラムがコンピュータ上で実行されるときに、本明細書に記載の方法のうちの1つを実行するためのプログラム命令を有するコンピュータプログラムである。
【0245】
したがって、方法のさらなる例は、本明細書に記載の方法の1つを実行するためのコンピュータプログラムを記録したデータキャリア媒体(またはデジタル記憶媒体、またはコンピュータ可読媒体)である。データキャリア媒体、デジタル記憶媒体、または記録媒体は、無形で一時的な信号ではなく、有形および/または非一時的である。
したがって、方法のさらなる例は、本明細書に記載の方法のうちの1つを実行するためのコンピュータプログラムを表すデータストリームまたは信号シーケンスである。データストリームまたは信号シーケンスは、例えば、データ通信接続を介して、例えばインターネットを介して転送されてもよい。
【0246】
さらなる例は、処理手段、例えばコンピュータ、または本明細書に記載の方法のうちの1つを実行するプログラマブル論理デバイスを含む。
さらなる例は、本明細書に記載の方法のうちの1つを実行するためのコンピュータプログラムをインストールしたコンピュータを含む。
さらなる例は、本明細書に記載された方法のうちの1つを実行するためのコンピュータプログラムを受信機へ転送する(例えば、電子的または光学的に)装置またはシステムを備える。受信機は、例えば、コンピュータ、モバイルデバイス、メモリデバイスなどであってもよい。装置またはシステムは、例えば、コンピュータプログラムを受信機に転送するためのファイルサーバを備えることができる。
【0247】
いくつかの例では、プログラマブル・ロジック・デバイス(例えば、フィールド・プログラマブル・ゲート・アレイ)を使用して、本明細書に記載の方法の機能の一部またはすべてを実行することができる。いくつかの例では、フィールド・プログラマブル・ゲート・アレイは、本明細書に記載の方法のうちの1つを実行するためにマイクロプロセッサと協働することができる。一般に、方法は、任意の適切なハードウェア装置によって実行されてもよい。
【0248】
上述の例は、上述の原理の単なる例示である。本明細書に記載の構成および詳細の修正および変形は明らかであることが理解される。したがって、本明細書の実施例の説明および説明として提示される特定の詳細によってではなく、添付の特許請求の範囲によって限定されることが意図される。
同じもしくは同等の要素、または同じもしくは同等の機能を有する要素は、異なる図で発生する場合であっても、以下の説明では同じまたは同等の参照番号で示される。
図1
図2
図3
図4
図5
図6
図7.1】
図7.2】
図7.3】
図7.4】
図8
図9a
図9b-9c】
図10
図11
図12
図13
図14
図15
図16
【手続補正書】
【提出日】2024-04-12
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
イントラ予測を使用して画像(10)の所定のブロック(18)を復号するための装置(3000)であって、
イントラ予測モードの第1のセット(508)であって、DCイントラ予測モード(506)および角度イントラ予測モード(500)を含む第1のセット(508)のうちのイントラ予測モードを使用して、ルマブロックである前記所定のブロック(18)が予測されるべきかどうかを示すセット選択的シンタックス要素(522)をデータストリーム(12)から復号し、
前記セット選択的シンタックス要素(522)が、イントラ予測モードの前記第1のセット(508)のうちの一方を用いて前記所定のブロック(18)が予測されるべきであることを指示する場合、
前記所定のブロック(18)の隣接ブロック(524、526)を予測するのに使用されるイントラ予測モード(3050)を備える最も可能性の高いイントラ予測モードのリスト(528)を形成し、前記隣接ブロック(524、526)の一方が前記角度イントラ予測モード(500)のいずれかによって予測され、前記隣接ブロック(524、526)の他方が非角度イントラ予測モードによって予測される場合、前記リストは、前記DCイントラ予測モード(506)を含まず、
前記最も可能性の高いイントラ予測モードのリスト(528)を所定のイントラ予測モード(3100)を指し示すMPMリストインデックス(534)を前記データストリーム(12)から導出し、
前記所定のイントラ予測モード(3100)を用いて前記所定のブロック(18)をイントラ予測し、
前記セット選択的シンタックス要素(522)が、前記所定のブロック(18)がイントラ予測モードの前記第1のセット(508)のうちの一方を使用して予測されないことを指示する場合、
前記データストリーム(12)から、行列ベースのイントラ予測モード(3200)の第2のセット(520)のうちの所定の行列ベースのイントラ予測モード(510)を示すさらなるインデックス(540、546)を導出し、
予測ベクトル(518)を取得するために、前記所定のブロック(18)の近傍の参照サンプル(17)から導出されたベクトル(514、400、402)と前記所定の行列ベースのイントラ予測モード(3200)に関連付けられた所定の予測行列(516)との間の行列ベクトル積(512)を計算し、
前記予測ベクトル(518)に基づいて前記所定のブロック(18)のサンプルを予測する、装置(3000)。