(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-22
(45)【発行日】2024-05-01
(54)【発明の名称】行列ベースのイントラ予測および二次変換を使用したコーディング
(51)【国際特許分類】
H04N 19/12 20140101AFI20240423BHJP
H04N 19/159 20140101ALI20240423BHJP
H04N 19/593 20140101ALI20240423BHJP
H04N 19/70 20140101ALI20240423BHJP
H04N 19/176 20140101ALI20240423BHJP
【FI】
H04N19/12
H04N19/159
H04N19/593
H04N19/70
H04N19/176
(21)【出願番号】P 2021577085
(86)(22)【出願日】2020-06-23
(86)【国際出願番号】 EP2020067446
(87)【国際公開番号】W WO2020260248
(87)【国際公開日】2020-12-30
【審査請求日】2022-02-24
(32)【優先日】2019-06-25
(33)【優先権主張国・地域又は機関】EP
(73)【特許権者】
【識別番号】500242786
【氏名又は名称】フラウンホファー ゲセルシャフト ツール フェールデルンク ダー アンゲヴァンテン フォルシュンク エー.ファオ.
(74)【代理人】
【識別番号】110002952
【氏名又は名称】弁理士法人鷲田国際特許事務所
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】ヨナタン・パフ
(72)【発明者】
【氏名】トビアス・ヒンツ
(72)【発明者】
【氏名】フィリップ・ヘレ
(72)【発明者】
【氏名】フィリップ・メルクル
(72)【発明者】
【氏名】ビョルン・シュタレンベルガー
(72)【発明者】
【氏名】ミヒャエル・シェーファー
(72)【発明者】
【氏名】ベンヤミン・ブロス
(72)【発明者】
【氏名】マルティン・ヴィンケン
(72)【発明者】
【氏名】ミーシャ・ジークマン
(72)【発明者】
【氏名】ハイコ・シュヴァルツ
(72)【発明者】
【氏名】デトレフ・マルペ
(72)【発明者】
【氏名】トーマス・ヴィーガント
【審査官】間宮 嘉誉
(56)【参考文献】
【文献】国際公開第2020/211765(WO,A1)
【文献】国際公開第2020/226424(WO,A1)
【文献】特表2022-529030(JP,A)
【文献】特表2022-532114(JP,A)
【文献】KOO, Moonmo et al.,CE6: Reduced Secondary Transform (RST) (CE6-3.1),JVET-N0193 (version 5),ITU,2019年03月27日,pp.1-19,[online],[retrieved on 2023-04-25],Retrieved from the Internet: <URL: https://jvet-experts.org/doc_end_user/documents/14_Geneva/wg11/JVET-N0193-v5.zip>,JVET-N0193_r3.docx
【文献】PFAFF, Jonathan et al.,CE3: Affine Linear Weighted Intra Prediction (CE3-4.1, CE3-4.2),JVET-N0217 (version3),ITU,2019年03月25日,pp.1-17,[online],[retrieved on 2023-04-25],Retrieved from the Internet: <URL: https://jvet-experts.org/doc_end_user/documents/14_Geneva/wg11/JVET-N0217-v3.zip>,JVET-N0217_v1.docx
【文献】WANG, B. et al.,CE3-related: A Unified MPM List for Intra Mode Coding,JVET-N0185 (version 7),ITU,2019年04月04日,pp.1-3,[online],[retrieved on 2023-04-25],Retrieved from the Internet: <URL: https://jvet-experts.org/doc_end_user/documents/14_Geneva/wg11/JVET-N0185-v7.zip>,JVET-N0185.docx
(58)【調査した分野】(Int.Cl.,DB名)
H04N 7/12
H04N 19/00-19/98
(57)【特許請求の範囲】
【請求項1】
データストリームからピクチャ(10)を復号するための装置(54)であって、
前記ピクチャ(10)のブロック(18)に対して、前記データストリームに含まれる指示に基づいて、DCイントラ予測モード(506)、Planarイントラ予測モード(504)、および少なくとも1つのAngular予測モード(500)を含むイントラ予測モードの第1の集合(508)と少なくとも1つの行列ベースのイントラ予測モード(510)を含むイントラ予測モードの第2の集合(520)とからイントラ予測モード(604)を選択し(602)、前記イントラ予測モードの各々に従って、ブロック(18)の近傍の参照サンプル(17)から導出されるベクトル(514)と前記選択された行列ベースのイントラ予測モード(510)に関連付けられる予測行列(516)の行列ベクトル積(512)から予測ベクトル(518)が生成され、これによって前記ブロック(18)のサンプルが予測され、
前記選択されたイントラ予測モード(604)を使用して前記ブロック(18)のための予測信号(606)を導出し、
前記選択されたイントラ予測モード(604)と前記ブロック(18)のサイズに基づいて、複数の低周波の分離不可能な二次変換(LFNST)を含む二次変換の集合(612)の中から二次変換の部分集合(610)を選択し(608)、選択された二次変換の前記部分集合(610)は、前記複数のLFNSTの少なくとも1つを含み、二次変換の同じ前記部分集合(610)は、前記Planarイントラ予測モード(504)と前記少なくとも1つの行列ベースのイントラ予測モード(510)に対して選択され、
前記データストリーム(12)から、前記ブロック(18)の予測残差を導出し(614)、
一次変換(Tp)と、二次変換の前記部分集合(610)から選択された、LFNSTに対応する二次変換(Ts)と、の連結によって定義される変換(T)を使用して、前記予測残差(606)を変換し、
前記ブロック(18)についての前記予測信号(606)および変換された前記予測残差を使用して、前記ブロック(18)を再構築する(624)ように構成される、装置(54)。
【請求項2】
二次変換の前記集合(612)の各二次変換が前記第1の集合(508)および第2の集合(520)内の前記イントラ予測モードのうちの少なくとも1つのために選択された二次変換の部分集合(610)に含まれるように、二次変換の前記集合(612)から1つまたは複数の二次変換の前記部分集合(610)を選択するように構成される、請求項1に記載の装置(54)。
【請求項3】
任意の行列ベースのイントラ予測モード(510)のために選択された二次変換の各部分集合(610)の各二次変換が前記Angular予測モード(500)に属さない前記第1の集合(508)内の少なくとも1つのイントラ予測モードのために選択された二次変換の部分集合(610)に含まれるように、二次変換の前記集合(612)から1つまたは複数の二次変換の部分集合(610)を選択するように構成される、請求項1または2に記載の装置(54)。
【請求項4】
前記行列ベースのイントラ予測モード(510)のために選択された二次変換の部分集合(610)の第1の連合(611
matrix)と、すべてのAngularイントラ予測モード(500)のために選択された二次変換の部分集合(610)の第2の連合(611
angular)との交わりが空集合であるように、二次変換の前記集合(612)から1つまたは複数の二次変換の部分集合(610)を選択するように構成される、請求項1から3のいずれか一項に記載の装置(54)。
【請求項5】
1つまたは複数の二次変換の前記部分集合(610)が1つより多くの二次変換を含む場合、前記ブロック(18)のために前記データストリーム(12)において送信される二次変換指示シンタックス要素に応じて、1つまたは複数の二次変換の前記部分集合(610)から前記二次変換(Ts)を選択するように構成される、請求項1から4のいずれか一項に記載の装置(54)。
【請求項6】
前記ブロック(18)の次元が基準を満たす場合、前記ブロック(18)のための前記変換された予測残
差が前記ブロック(18)の前記予測残差(606)
の空間領域バージョン(618)に関連付けられる前記変換が、前記一次変換であると推測するように構成され、前記装置(54)が、前記ブロック(18)の前記次元が前記基準を満たすこととは独立に、前記イントラ予測モード(604)の前記選択(602)のためにイントラ予測モードの前記第2の集合(520)を利用可能にする、請求項1から5のいずれか一項に記載の装置(54)。
【請求項7】
前記次元が閾値を下回る場合、前記基準が満たされる、請求項6に記載の装置(54)。
【請求項8】
前記変換されたバージョン(616)内の非ゼロ変換領域エリア(623)を示す、前記それぞれのブロック(18)のための前記データストリーム(12)において送信される非ゼロゾーン指示を読み取り、すべての非ゼロ係数が、前記非ゼロ変換領域エリア(623)内のみに位置し、前記データストリーム(12)から前記非ゼロ変換領域エリア(623)内の前記
すべての非ゼロ係数を復号し、
前記ブロック(18)のための予測残差の前記変換されたバージョン(616)が前記ブロック(18)の前記予測残差
の空間領域バージョン(618)に関連付けられる前記変換が、第1の基準を満たす前記非ゼロ変換領域エリア(623)の拡張および/もしくは位置、ならびに/または、第2の基準を満たす前記非ゼロ変換領域エリア(623)内の非ゼロ係数の数に応じた、前記一次変換であると推測するように構成される、請求項1から7のいずれか一項に記載の装置(54)。
【請求項9】
前記一次変換が分離可能な2D変換であり、前記二次変換が分離不可能な2D変換である、請求項1から8のいずれか一項に記載の装置(54)。
【請求項10】
前記ブロック(18)がDCイントラ予測モード(506)およびAngular予測モード(500)を含むイントラ予測モードの前記第1の集合(508)のうちの1つを使用して予測されるべきであるかどうかを示す、集合選択シンタックス要素(522)を前記データストリーム(12)から導出し、
前記ブロック(18)がイントラ予測モードの前記第1の集合(508)のうちの1つを使用して予測されるべきであることを前記集合選択シンタックス要素(522)が示す場合、
前記ブロック(18)の近傍の近傍ブロック(524、526)を予測するために使用されるイントラ予測モードに基づいて、最尤イントラ予測モード(MPM)のリスト(528)を形成し、
前記リスト(528)の最尤イントラ予測モードのどれが前記イントラ予測モード(604)として選択されるかを示すMPMリストインデックス(534)を前記データストリーム(12)から導出し、
前記ブロック(18)がイントラ予測モードの前記第1の集合(508)のうちの1つを使用して予測されるべきではないことを前記集合選択シンタックス要素(522)が示す場合、
イントラ予測モードの前記第2の集合(520)の中の前記イントラ予測モード(604)を示すさらなるインデックス(540;546)を前記データストリーム(12)から導出する
ように構成される、請求項1から9のいずれか一項に記載の装置(54)。
【請求項11】
前記ブロック(18)がイントラ予測モードの前記第1の集合(508)のうちの1つを使用して予測されるべきであることを前記集合選択シンタックス要素(522)が示す場合、
イントラ予測モードの前記第1の集合(508)の前記イントラ予測モード(604)が最尤イントラ予測モードの前記リスト(528)内にあるかどうかを示すMPMシンタックス要素(532)を前記データストリーム(12)から導出し、
イントラ予測モードの前記第1の集合(508)の前記イントラ予測モード(604)が最尤イントラ予測モードの前記リスト(528)内にあることを前記MPMシンタックス要素(532)が示す場合、
前記ブロック(18)の近傍の近傍ブロック(524、526)を予測するために使用されるイントラ予測モードに基づく、最尤イントラ予測モードの前記リスト(528)の前記形成、
最尤イントラ予測モードの前記リスト(528)のイントラ予測モード(604)を指し示す前記MPMリストインデックス(534)の前記データストリーム(12)からの前記導出
を実行し、
イントラ予測モードの前記第1の集合(508)の前記イントラ予測モード(604)が最尤イントラ予測モードの前記リスト(528)内にないことを前記データストリーム(12)からの前記MPMシンタックス要素(532)が示す場合、
イントラ予測モードの前記第1の集合(508)からの前記イントラ予測モード(604)を示すさらなるリストインデックス(536)を前記データストリーム(12)から導出する
ように構成される、請求項10に記載の装置(54)。
【請求項12】
前記ブロック(18)がイントラ予測モードの前記第1の集合(508)のうちの1つを使用して予測されるべきではないことを前記集合選択シンタックス要素(522)が示す場合、
イントラ予測モードの前記第2の集合(520)の前記行列ベースのイントラ予測モード(510)の少なくとも1つが最尤のイントラ予測モード(510)のリスト(542)内にあるかどうかを示すさらなるMPMシンタックス要素(538)を前記データストリーム(12)から導出し、
イントラ予測モードの前記第2の集合(520)の前記行列ベースのイントラ予測モード(510)の少なくとも1つが最尤のイントラ予測モード(510)のリスト(542)内にあることを前記さらなるMPMシンタックス要素(538)が示す場合、
前記ブロック(18)の近傍の近傍ブロック(524、526)を予測するために使用されるイントラ予測モードに基づいて、最尤のイントラ予測モード(510)の前記リスト(542)を形成し、
最尤の行列ベースのイントラ予測モード(510)の前記リスト(542)上の前記行列ベースのイントラ予測モード(510)を指し示すさらなるMPMリストインデックス(540)を前記データストリーム(12)から導出し、
イントラ予測モードの前記第2の集合(520)の前記行列ベースのイントラ予測モード(510)の少なくとも1つが最尤のイントラ予測モード(510)のリスト(542)内にないことを前記さらなるMPMシンタックス要素(538)が示す場合、
イントラ予測モードの前記第2の集合(520)の前記行列ベースのイントラ予測モード(510)を示すまたさらなるリストインデックス(546)を前記データストリーム(12)から導出する
ように構成される、請求項1または11に記載の装置(54)。
【請求項13】
前記ブロック(18)の近傍の近傍ブロック(524、526)を予測するために使用されるイントラ予測モードに基づく、最尤イントラ予測モードの前記リスト(528)の前記形成を、
前記近傍ブロックの各々に対して、前記それぞれの近傍ブロックが、少なくとも1つの非Angularイントラ予測モード(504、506)のいずれかを、前記DCイントラ予測モード(506)を含む前記第1の集合(508)とともに使用して予測される場合にのみ、または、最尤イントラ予測モードの前記リスト(528)の前記形成のために使用される、前記第1の集合(508)内の前記イントラ予測モードへのイントラ予測モードの前記第2の集合(520)からのマッピングにより、前記少なくとも1つの非Angularイントラ予測モードのいずれかへとマッピングされる、行列ベースのイントラ予測モード(510)のいずれかを使用して予測される場合にのみ、前記リスト(528)が前記DCイントラ予測モード(506)を用いて埋められる
ように実行するように構成される、請求項11または12に記載の装置(54)。
【請求項14】
前記ブロック(18)の近傍の近傍ブロック(524、526)を予測するために使用されるイントラ予測モードに基づく、最尤イントラ予測モードの前記リスト(528)の前記形成を、
前記近傍ブロックの各々に対して、前記それぞれの近傍ブロックが、少なくとも1つの非Angularイントラ予測モード(504、506)のいずれかを、前記DCイントラ予測モード(506)を含む前記第1の集合(508)とともに使用して予測される場合に、または、最尤イントラ予測モードの前記リスト(528)の前記形成のために使用される、前記第1の集合(508)内の前記イントラ予測モードへのイントラ予測モード(510)の前記第2の集合(520)からのマッピングにより、前記少なくとも1つの非Angularイントラ予測モードのいずれかへとマッピングされる、イントラ予測モードのいずれかを使用して予測される場合に、前記DCイントラ予測モード(506)が、最尤イントラ予測モードの前記リスト(528)においていずれのAngularイントラ予測モード(500)よりも前に置かれるように、実行するように構成される、請求項11から13のいずれか一項に記載の装置(54)。
【請求項15】
前記ブロック(18)の近傍の近傍ブロック(524、526)を予測するために使用されるイントラ予測モードに基づく、最尤イントラ予測モードの前記リスト(528)の前記形成を、
前記近傍ブロックがそれを用いて予測される前記イントラ予測モードとは独立した方式で前記リスト(528)が前記Planarイントラ予測モード(504)を用いて埋められる
ように実行するように構成される、請求項11または12に記載の装置(54)。
【請求項16】
前記ブロック(18)の近傍の近傍ブロック(524、526)を予測するために使用されるイントラ予測モードに基づく、最尤イントラ予測モードの前記リスト(528)の前記形成を、
前記近傍ブロックがそれを用いて予測される前記イントラ予測モードとは独立した最尤イントラ予測モードの前記リスト(528)の第1の位置に、前記Planarイントラ予測モード(504)が配置される
ように実行するように構成される、請求項15に記載の装置(54)。
【請求項17】
前記複数の参照サンプル(17)からサンプル値ベクトル(400)を形成し、
前記サンプル値ベクトル(400)が前記ベクトル(514)へと正則線形変換(403)によってマッピングされるように、前記ベクトル(514)を前記サンプル値ベクトル(400)から導出する
ように構成される、請求項1から16のいずれか一項に記載の装置(54)。
【請求項18】
前記正則線形変換(403)が、
成分(1500)を除く前記ベクトル(514、402)の他の成分の各々が前記サンプル値ベクトル(400)の対応する成分からaを引いたものに等しい
ように定義され、aが所定の値(1400)である、請求項17に記載の装置(54)。
【請求項19】
前記値(1400)が、
前記サンプル値ベクトル(400)の成分の、算術平均または加重平均などの平均、
デフォルト値、
前記ピクチャ(10)がコーディングされるデータストリーム(12)においてシグナリングされる値、
前記成分(1500)に対応する前記サンプル値ベクトル(400)の成分
のうちの1つである、請求項18に記載の装置(54)。
【請求項20】
前記正則線形変換(403)が、
前記成分(1500)を除き前記ベクトル(514、402)の他の成分の各々が前記サンプル値ベクトル(400)の対応する成分からaを引いたものに等しいように定義され、aが前記サンプル値ベクトル(400)の成分の算術平均である、請求項17に記載の装置(54)。
【請求項21】
前記正則線形変換(403)が、
前記成分(1500)を除き前記ベクトル(514、402)の他の成分の各々が前記サンプル値ベクトル(400)の対応する成分からaを引いたものに等しいように定義され、aが前記成分(1500)に対応する前記サンプル値ベクトル(400)の成分であり、
前記装置(54)が、
各々が前記ベクトル(514、402)の1つの成分と関連付けられる、複数の正則線形変換(403)を含み、
前記サンプル値ベクトル(400)の前記成分から前記成分(1500)を選択し、
前記成分(1500)と関連付けられる前記複数の正則線形変換(403)の中の前記正則線形変換(403)を前記正則線形変換(403)として使用する
ように構成される、請求項17に記載の装置(54)。
【請求項22】
前記ベクトル(514、402)の前記成分(1500)に対応する前記予測行列(516)の列(412)内の前記予測行列(516)の行列成分がすべて0であり、前記装置(54)が、
前記列(412)を除外することにより前記予測行列(516)から得られる縮小された予測行列(405)と前記成分(1500)を除外することにより前記ベクトル(514、402)から得られるさらなるベクトル(410)との行列ベクトル積(407)を計算することにより乗算を実行することによって、前記行列ベクトル積(512)を計算する
ように構成される、請求項18から21のいずれか一項に記載の装置(54)。
【請求項23】
前記予測ベクトル(518)に基づいて前記ブロック(18)の前記サンプルを予測する際に、
前記予測ベクトル(518)の各成分に対して、前記それぞれの成分とaの合計を計算するように構成される、請求項18から22のいずれか一項に記載の装置(54)。
【請求項24】
前記ベクトル(514、402)の前記成分(1500)に対応する、値が1である前記予測行列(516)の列(412)内の前記予測行列(516)の各行列成分を加算することにより得られる行列と前記正則線形変換(403)を乗じたものが、機械学習予測行列(1100)の量子化されたバージョンに対応する、請求項18から23のいずれか一項に記載の装置(54)。
【請求項25】
前記サンプル値ベクトル(400)の各成分に対して、
前記複数の参照サンプル(17)の1つの参照サンプルを前記サンプル値ベクトル(400)の前記それぞれの成分として採用すること、および/または、
前記サンプル値ベクトル(400)の2つ以上の成分を平均化して前記サンプル値ベクトル(400)の前記それぞれの成分を取得すること
によって、前記複数の参照サンプル(17)から前記サンプル値ベクトル(400)を形成する(100)ように構成される、請求項17から24のいずれか一項に記載の装置(54)。
【請求項26】
前記複数の参照サンプル(17)が、前記ブロック(18)の外側の縁に沿って前記ピクチャ(10)内に並んでいる、請求項1から25のいずれか一項に記載の装置(54)。
【請求項27】
固定小数点算術演算を使用して前記行列ベクトル積(512)を計算するように構成される、請求項1から26のいずれか一項に記載の装置(54)。
【請求項28】
浮動小数点算術演算なしで前記行列ベクトル積(512)を計算するように構成される、請求項1から27のいずれか一項に記載の装置(54)。
【請求項29】
前記予測行列(516)の固定小数点数表現を記憶するように構成される、請求項1から28のいずれか一項に記載の装置(54)。
【請求項30】
予測パラメータを使用して前記予測行列(516)を表現し、前記ベクトル(514、402)の前記成分および前記予測パラメータおよびそれらから得られる中間の結果についての乗算と加算を実行することによって前記行列ベクトル積(512)を計算するように構成され、前記予測パラメータの絶対値が、nビットの固定小数点数表現により表現可能であり、nが14以下であり、または代替として10以下であり、または代替として8以下である、請求項18から29のいずれか一項に記載の装置(54)。
【請求項31】
前記予測パラメータが、各々が前記予測行列(516)の対応する行列成分と関連付けられる重みを含む、請求項30に記載の装置(54)。
【請求項32】
前記予測パラメータがさらに、
前記予測行列(516)の1つまたは複数の対応する行列成分と関連付けられる前記重みをスケーリングするための、前記予測行列(516)の前記1つまたは複数の対応する行列成分と各々が関連付けられる1つまたは複数のスケーリング係数、および/または、
前記予測行列(516)の1つまたは複数の対応する行列成分と関連付けられる前記重みをオフセットするための、前記予測行列(516)の前記1つまたは複数の対応する行列成分と各々が関連付けられる1つまたは複数のオフセットを含む、請求項31に記載の装置(54)。
【請求項33】
前記予測ベクトル(518)に基づいて前記ブロック(18)の前記サンプルを予測する際に、
前記ブロック(18)内の対応する位置とその各成分が関連付けられる前記予測ベクトル(518)に基づいて、前記ブロック(18)の少なくとも1つのサンプル位置を計算するために、補間を使用するように構成される、請求項1から32のいずれか一項に記載の装置(54)。
【請求項34】
ピクチャ(10)のブロック(18)を符号化するための装置(14)であって、
DCイントラ予測モード(506) 、Planarイントラ予測モード(504)、および少なくとも1つのAngular予測モード(500)を含むイントラ予測モードの第1の集合(508)と少なくとも1つの行列ベースのイントラ予測モード(510)を含むイントラ予測モードの第2の集合(520)とからイントラ予測モード(604)を選択し(602)、前記複数のイントラ予測モードの各々に従って、前記ブロック(18)の近傍の参照サンプル(17)から導出されるベクトル(514)と前記選択された行列ベースのイントラ予測モード(510)と関連付けられる予測行列(516)との行列ベクトル積(512)から予測ベクトル(518)が生成され、これによって前記ブロック(18)のサンプルが予測され、
データストリーム(12)において前記イントラ予測モード(604)をシグナリングし、
前記選択されたイントラ予測モード(604)を使用して前記ブロック(18)のための予測信号(606)を導出し、
前記選択されたイントラ予測モード(604)と前記ブロック(18)のサイズに基づいて、複数の低周波の分離不可能な二次変換(LFNST)を含む二次変換の集合(612)の中から二次変換の部分集合(610)を選択し(608)、選択された二次変換の前記部分集合(610)は、前記複数のLFNSTの少なくとも1つを含み、二次変換の同じ前記部分集合(610)は、前記Planarイントラ予測モード(504)と前記少なくとも1つの行列ベースのイントラ予測モード(510)に対して選択され、
一次変換(Tp)と、二次変換の前記部分集合(610)から選択された、LFNSTに対応する二次変換(Ts)と、の連結によって定義される変換(T)を使用して、前記予測残差を変換し、
前記ブロック(18)についての前記予測残差の変換されたバージョン(616)を前記データストリーム(12)へと符号化する(614)ように構成され、
前記ブロック(18)は、前記ブロック(18)のための前記予測信号(606)および前記予測残差を使用して再構築可能である(624)、装置(14)。
【請求項35】
ピクチャ(10)を復号するための方法(6000)であって、
前記ピクチャ(10)のブロック(18)に対して、DCイントラ予測モード(506) 、Planarイントラ予測モード(504)、および少なくとも1つのAngular予測モード(500)を含むイントラ予測モードの第1の集合(508)と、少なくとも1つの行列ベースのイントラ予測モード(510) を含むイントラ予測モードの第2の集合(520)とからイントラ予測モード(604)を選択するステップ(602)であって、前記イントラ予測モードの各々に従って、前記ブロック(18)の近傍の参照サンプル(17)から導出されるベクトル(514)と前記選択された行列ベースのイントラ予測モード(510)と関連付けられる予測行列(516)との行列ベクトル積(512)から予測ベクトル(518)が生成され、これによって、前記ブロック(18)のサンプルが予測される、ステップと、
前記選択されたイントラ予測モード(604)を使用して前記ブロック(18)のための予測信号(606)を導出するステップと、
前記選択されたイントラ予測モード(604)と前記ブロック(18)のサイズに基づいて、複数の低周波の分離不可能な二次変換(LFNST)を含む二次変換の集合(612)の中から二次変換の部分集合(610)を選択するステップ(608)であって、選択された二次変換の前記部分集合(610)は、前記複数のLFNSTの少なくとも1つを含み、二次変換の同じ前記部分集合(610)は、前記Planarイントラ予測モード(504)と前記少なくとも1つの行列ベースのイントラ予測モード(510)に対して選択される、選択するステップ(608)と、
前記データストリーム(12)から、前記ブロック(18)の予測残差を導出するステップ(614)と、
一次変換(Tp)と、二次変換の前記部分集合(610)から選択された、LFNSTに対応する二次変換(Ts)と、の連結によって定義される変換(T)を使用して、前記予測残差(606)を変換するステップと、
前記ブロック(18)についての前記予測信号(606)および変換された前記予測残差を使用して、前記ブロック(18)を再構築するステップ(624)とを含む、方法。
【請求項36】
ピクチャ(10)のブロック(18)を符号化するための方法(7000)であって、
DCイントラ予測モード(506) 、Planarイントラ予測モード(504)、および少なくとも1つのAngular予測モード(500)を含むイントラ予測モードの第1の集合(508)と少なくとも1つの行列ベースのイントラ予測モード(510) を含むイントラ予測モードの第2の集合(520)とからイントラ予測モード(604)を選択するステップ(602)であって、前記行列ベースのイントラ予測モードの各々に従って、前記ブロック(18)の近傍の参照サンプル(17)から導出されるベクトル(514)と前記選択された行列ベースのイントラ予測モード(510)と関連付けられる予測行列(516)の行列ベクトル積(512)から予測ベクトル(518)が生成され、これによって前記ブロック(18)のサンプルが予測される、ステップと、
データストリーム(12)において前記イントラ予測モード(604)をシグナリングするステップと、
前記選択されたイントラ予測モード(604)を使用して前記ブロック(18)のための予測信号(606)を導出するステップと、
前記選択されたイントラ予測モード(604)と前記ブロック(18)のサイズに基づいて、複数の低周波の分離不可能な二次変換(LFNST)を含む二次変換の集合(612)の中から二次変換の部分集合(610)を選択するステップ(608)であって、選択された二次変換の前記部分集合(610)は、前記複数のLFNSTの少なくとも1つを含み、二次変換の同じ前記部分集合(610)は、前記Planarイントラ予測モード(504)と前記少なくとも1つの行列ベースのイントラ予測モード(510)に対して選択される、選択するステップ(608)と、
一次変換(Tp)と、二次変換の前記部分集合(610)から選択された、LFNSTに対応する二次変換(Ts)と、の連結によって定義される変換(T)を使用して、前記予測残差を変換するステップと、
前記ブロック(18)についての予測残差の変換されたバージョン(616)を前記データストリーム(12)へと符号化するステップ(614)とを含み、
前記ブロック(18)は、前記ブロック(18)についての前記予測信号(606)および前記予測残差を使用して再構築可能である(624)、方法。
【請求項37】
コンピュータ上で実行されると、請求項35に記載の方法を実行するためのプログラムコードを有する、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、行列ベースのイントラ予測および二次変換の分野に関する。
【背景技術】
【0002】
Planarモード、DCモード、およびAngularモードのような従来のイントラ予測モードでは、分離不可能な二次変換(LFNST)が、これらのイントラ予測モードに対応する予測残差を変換するために使用されるツールである。ここで、複数の変換集合のうちのある集合Sは、各々の従来のイントラ予測モードがこれらの変換集合のうちの1つと関連付けられるように与えられる。次いで、デコーダにおいて、所与のブロック上でLFNSTが適用されるべきであるかどうかが、ビットストリームから抽出され得る。適用されるべきである場合、現在のブロック上で使用されるイントラ予測モードに応じて、集合Sの中から1つの変換集合が与えられ、この変換集合が1つより多くの変換からなる場合、この集合の中のいずれの変換Tが使用されるべきかがビットストリームから抽出され得る。次いで、デコーダにおいて、変換Tが二次変換として適用され、これは、それが分離可能な一次変換の残差変換係数の部分集合に適用されることを意味する。しかし、前述の二次変換は、従来のイントラ予測モードのみに対して先験的に定義される。
【先行技術文献】
【非特許文献】
【0003】
【文献】P.Helle他、「Non-linear weighted intra prediction」、JVET-L0199、Macao, China、2018年10月
【文献】F.Bossen、J.Boyce、K.Suehring、X.Li、V.Seregin、「JVET common test conditions and software reference configurations for SDR video」、JVET-K1010、Ljubljana, Sl、2018年7月
【発明の概要】
【発明が解決しようとする課題】
【0004】
したがって、行列ベースのイントラ予測(MIP)、すなわちブロックベースのイントラ予測のための二次変換をサポートするのにより効率的なピクチャコーディングおよび/またはビデオコーディングをレンダリングするための概念を提供することが望ましい。
【0005】
これは、本出願の独立請求項の主題により達成される。
【0006】
本発明によるさらなる実施形態は、本出願の従属請求項の主題により定義される。
【課題を解決するための手段】
【0007】
本発明の第1の態様によれば、本出願の発明者らは、二次変換を行列ベースのイントラ予測モードと関連付けようとするときに遭遇する1つの問題は、各MIPモードのために特定の二次変換を用意することが、追加的な変換を追加で記憶するためのメモリ要件の点であまりにも高価であり得るという事実に起因することを認識した。本出願の第1の態様によれば、この難点は、行列ベースのイントラ予測モードと関連付けられる変換および非行列ベースのイントラ予測モードと関連付けられる変換を含む二次変換の集合から1つまたは複数の二次変換の部分集合を選択することにより克服される。二次変換の集合の中のそれらの二次変換は、1つまたは複数の予測モードに対して定義されてもよく、これは、二次変換の集合のために必要なメモリ容量を減らす。Planarイントラ予測モードのために定義される変換および/またはDCイントラ予測モードのために定義される変換も、行列ベースのイントラ予測モードのために選択可能であり得る。行列ベースのイントラ予測モードのための二次変換の部分集合のこの具体的な選択により、コーディング効率を高めることが可能であるが、二次変換の使用を示すために行列ベースのイントラ予測モードと関連付けられるブロックに対して必要とされる追加のシンタックス要素により、ビットストリーム、およびしたがってシグナリングのコストが増大し得る。
【0008】
したがって、本出願の第1の態様によれば、イントラ予測を用いてピクチャの所定のブロックを復号するための装置、すなわちデコーダは、データストリームに基づいて、イントラ予測モードの第1の集合および行列ベースのイントラ予測モードの第2の集合を含む複数のイントラ予測モードから所定のイントラ予測モードを選択するように構成される。イントラ予測モードの第1の集合は、DCイントラ予測モードと、Angular予測モードと、任意選択でPlanarイントラ予測モードとを含む。第2の集合のうちのある行列ベースのイントラ予測モードが所定のイントラ予測モードとして選択される場合、デコーダは、所定のブロックの近傍における参照サンプルから導出されるベクトルとそれぞれの行列ベースのイントラ予測モードと関連付けられる予測行列の行列ベクトル積を使用して、予測ベクトルを取得するように構成され、それに基づいて、デコーダは所定のブロックのサンプルを予測するように構成される。デコーダは、所定のイントラ予測モードを使用して所定のブロックのための予測信号を導出し、二次変換の集合のうちの1つまたは複数の二次変換の部分集合を、所定のイントラ予測モードがイントラ予測モードの第1の集合に含まれる場合に、および所定のイントラ予測モードが行列ベースのイントラ予測モードの第2の集合に含まれる場合に、その部分集合が非空であるように、所定のイントラ予測モードに依存した方式で選択するように構成される。第1の集合および第2の集合は、二次変換がそれらに対して利用可能であるイントラ予測モードを定義する。したがって、第1の集合または第2の集合から選択された所定のイントラ予測モードに対して、デコーダは、選択された所定のイントラ予測モードと特に関連付けられる二次変換の集合から、1つまたは複数の二次変換の部分集合を選択するように構成される。加えて、デコーダは、所定のイントラ予測モードがイントラ予測モードの第1の集合に含まれる場合に、および所定のイントラ予測モードが行列ベースのイントラ予測モードの第2の集合に含まれる場合に、データストリームから、一次変換と、一次変換の係数の部分集合へと適用される二次変換の部分集合からの所定の二次変換との連結により定義される変換を介して、所定のブロックの予測残差の空間領域バージョンに関連する所定のブロックのための予測残差の変換されたバージョンを導出するように構成される。一次変換は、たとえばデフォルトで設定され、所定の二次変換は、たとえばデコーダによって二次変換の部分集合から選択される。デコーダは、データストリームから二次変換を示すシンタックス要素を導出することによって、二次変換の部分集合から所定の二次変換を選択するように構成され得る。デコーダは、所定のブロックについての予測信号および予測残差を使用して、所定のブロックを再構築するように構成される。
【0009】
本出願の第1の態様によれば、デコーダに類似して、イントラ予測を用いてピクチャの所定のブロックを符号化するための装置、すなわちエンコーダは、DCイントラ予測モードおよびAngular予測モードおよび任意選択でPlanarイントラ予測モードを含むイントラ予測モードの第1の集合と、行列ベースのイントラ予測モードの第2の集合と、を含む複数のイントラ予測モードから所定のイントラ予測モードを選択するように構成され、行列ベースのイントラ予測モードの各々に従って、所定のブロックの近傍における参照サンプルから導出されるベクトルとそれぞれの行列ベースのイントラ予測モードと関連付けられる予測行列の行列ベクトル積が、予測ベクトルを取得するために使用され、これに基づいて所定のブロックのサンプルが予測される。エンコーダは、データストリームにおいて所定のイントラ予測モードをシグナリングし、所定のイントラ予測モードを使用して所定のブロックのための予測信号を導出するように構成される。加えて、エンコーダは、二次変換の集合のうちの1つまたは複数の二次変換の部分集合を、所定のイントラ予測モードがイントラ予測モードの第1の集合に含まれる場合に、および所定のイントラ予測モードが行列ベースのイントラ予測モードの第2の集合に含まれる場合に、その部分集合が非空であるように、所定のイントラ予測モードに依存した方式で選択するように構成される。エンコーダは、所定のイントラ予測モードがイントラ予測モードの第1の集合に含まれる場合に、および所定のイントラ予測モードが行列ベースのイントラ予測モードの第2の集合に含まれる場合、一次変換と、一次変換の係数の部分集合へと適用される二次変換の部分集合からの所定の二次変換との連結により定義される変換を介して、所定のブロックの予測残差の空間領域バージョンに関連する所定のブロックのための予測残差の変換されたバージョンをデータストリームへと符号化するように構成される。所定のブロックは、所定のブロックのための予測信号および予測残差を使用して再構築可能である。
【0010】
ある実施形態によれば、デコーダ/エンコーダは、二次変換の集合の各二次変換が第1の集合および第2の集合内のイントラ予測モードの少なくとも1つのために選択される1つまたは複数の二次変換の部分集合に含まれるように、所定のイントラ予測モードに依存した方式で二次変換の集合から1つまたは複数の二次変換の部分集合を選択するように構成される。第1の集合内または第2の集合内の1つまたは複数のイントラ予測モードに対して、それぞれの選択された部分集合は、二次変換の集合のすべての二次変換を含み得る。
【0011】
ある実施形態によれば、デコーダ/エンコーダは、任意の行列ベースのイントラ予測モードのために選択された二次変換の各部分集合の各二次変換がAngular予測モードに属さない第1の集合内の少なくとも1つのイントラ予測モードのために選択された二次変換の部分集合に含まれるように、所定のイントラ予測モードに依存した方式で、二次変換の集合から1つまたは複数の二次変換の部分集合を選択するように構成される。行列ベースのイントラ予測モードのために選択された部分集合は、DCイントラ予測モードおよび/またはPlanarイントラ予測モードのような、第1の集合内の1つまたは複数の非Angularイントラ予測モードと関連付けられる二次変換を含み得る。したがって、二次変換の集合からのそれらの二次変換は、1つまたは複数の二次変換の1つより多くの部分集合の一部であり得る。所定のイントラ予測モードが行列ベースのイントラ予測モードであるブロックのみに対して使用可能な追加の二次変換は、二次変換の集合に含まれなくてもよい。所定のイントラ予測モードが行列ベースのイントラ予測モードである所定のブロックに対して、デコーダ/エンコーダは、第1の集合からの非Angular予測モードである所定のイントラ予測モードについて、二次変換の集合から同じ二次変換を選択するように構成される。行列ベースのイントラ予測モードのために選択された部分集合は、Angular予測モードに属しない第1の集合内のイントラ予測モードのために選択された部分集合に等しくてもよく、または、Angular予測モードに属しない第1の集合内のイントラ予測モードのために選択された部分集合の一部の二次変換を含んでもよく、または、Angular予測モードに属しない第1の集合内のイントラ予測モードのために選択された2つ以上の部分集合の一部もしくはすべての二次変換を含んでもよい。
【0012】
符号化または復号するための方法は、符号化または復号するための上述の装置と同じ考察に基づく。ところで、方法は、符号化または復号するための装置に関しても説明された、すべての特徴および機能を用いて完了され得る。
【0013】
図面は必ずしも縮尺通りではなく、代わりに、本発明の原理を示すことが全般に強調されている。以下の説明では、本発明の様々な実施形態が、以下の図面を参照して説明される。
【図面の簡単な説明】
【0014】
【
図1】データストリームへの符号化の実施形態を示す図である。
【
図3】ピクチャの再構築の実施形態を示す図である。
【
図5】ある実施形態による、符号化および/または復号するためのブロックの予測の概略図である。
【
図6】ある実施形態による、符号化および/または復号するためのブロックの予測のための行列演算を示す図である。
【
図7.1】ある実施形態による、縮小されたサンプル値ベクトルを用いたブロックの予測を示す図である。
【
図7.2】ある実施形態による、サンプルの補間を使用したブロックの予測を示す図である。
【
図7.3】ある実施形態による、一部の境界サンプルのみが平均化される、縮小されたサンプル値ベクトルを用いたブロックの予測を示す図である。
【
図7.4】ある実施形態による、4つの境界サンプルのグループが平均化される、縮小されたサンプル値ベクトルを用いたブロックの予測を示す図である。
【
図8】ある実施形態による、装置によって実行される行列演算を示す図である。
【
図9a】ある実施形態による、装置によって実行される詳細な行列演算を示す図である。
【
図9b】ある実施形態による、装置によって実行される詳細な行列演算を示す図である。
【
図9c】ある実施形態による、装置によって実行される詳細な行列演算を示す図である。
【
図10】ある実施形態による、オフセットおよびスケーリングパラメータを使用して装置によって実行される詳細な行列演算を示す図である。
【
図11】異なる実施形態による、オフセットおよびスケーリングパラメータを使用して装置によって実行される詳細な行列演算を示す図である。
【
図12】ある実施形態による、最尤モードリストからのある予測モードを使用した所定のブロックのイントラ予測の詳細を伴う概略図である。
【
図13】ある実施形態による、二次変換を使用した所定のブロックの復号の概略図である。
【
図14】ある実施形態による、一次変換および二次変換の適用の概略図である。
【
図15】ある実施形態による、二次変換の部分集合の選択の概略図である。
【
図16】ある実施形態による、非ゼロ変換領域エリアを伴う所定のブロックの概略図である。
【
図17】ある実施形態による、所定のブロックを復号するための方法のブロック図である。
【
図18】ある実施形態による、所定のブロックを符号化するための方法のブロック図である。
【
図19a】データストリームのシンタックス要素部分を示す図である。
【
図19b】データストリームのシンタックス要素部分を示す図である。
【
図19c】データストリームのシンタックス要素部分を示す図である。
【
図19d】データストリームのシンタックス要素部分を示す図である。
【発明を実施するための形態】
【0015】
等しいもしくは等価な要素、または等しいもしくは等価な機能をもつ要素は、異なる図において存在する場合であっても、等しいまたは等価な参照番号によって以下の説明において表記される。
【0016】
以下の説明では、本発明の実施形態のより完全な説明を提供するために、複数の詳細が記載される。しかしながら、これらの具体的な詳細なしで、本発明の実施形態が実践され得ることが、当業者には明らかであろう。他の事例では、本発明の実施形態を不明瞭にするのを避けるために、よく知られている構造およびデバイスは、詳細にではなくブロック図の形式で示される。加えて、本明細書において後で説明される異なる実施形態の特徴は、別段特に述べられない限り、互いに組み合わせられ得る。
【0017】
1 導入
以下では、異なる進歩性のある例、実施形態、および態様が説明される。これらの例、実施形態、および態様の少なくともいくつかは、とりわけ、ビデオコーディングのための、ならびに/または、たとえば近傍サンプルの低減を伴う線形変換もしくはアフィン変換を用いてイントラ予測を実行するための、ならびに/または、たとえばビデオアプリケーションおよび/または仮想現実アプリケーションのための、ビデオ配信(たとえば、ブロードキャスト、ストリーミング、ファイル再生など)を最適化するための、方法および/または装置を指す。
【0018】
さらに、例、実施形態、および態様は、高効率ビデオコーディング(HEVC)または後継のものを指し得る。または、さらなる実施形態、例、および態様が、添付の請求項によって定義される。
【0019】
請求項によって定義されるような任意の実施形態、例、および態様は、以下の章において説明される詳細(特徴および機能)のいずれかにより補足され得ることに留意されたい。
【0020】
また、以下の章において説明される実施形態、例、および態様は、個別に使用されてもよく、別の章における特徴のいずれか、または請求項に含まれるいずれの特徴によっても補足されてもよい。
【0021】
また、本明細書において説明される個別の例、実施形態、および態様は、個別にまたは組合せで使用され得ることに留意されたい。したがって、前記例、実施形態、および態様の別の1つに詳細を追加することなく、前記個別の態様の各々に詳細が追加され得る。
【0022】
本開示は、符号化および/または復号のシステムおよび/または方法の特徴を、明確にまたは暗黙的に説明することにも留意されたい。
【0023】
その上、方法に関して本明細書において開示される特徴および機能も、装置において使用され得る。さらに、装置に関して本明細書において開示されるいずれの特徴および機能も、対応する方法において使用され得る。言い換えると、本明細書において開示される方法は、装置に関して説明される特徴および機能のいずれかにより補足され得る。
【0024】
また、本明細書において説明される特徴および機能のいずれもが、「代替の実装形態」というセクションにおいて説明されるように、ハードウェアもしくはソフトウェアにおいて、またはハードウェアとソフトウェアの組合せを使用して実装され得る。
【0025】
その上、括弧の中に記載される特徴のいずれも(「(…)」または「[…]」)は、いくつかの例、実施形態、または態様において任意選択であると見なされ得る。
【0026】
2 エンコーダ、デコーダ
以下では、ブロックベースの予測を使用するとき、より効果的な圧縮を達成するのを助け得る様々な例が説明される。いくつかの例は、イントラ予測モードの集合を用いることにより、高い圧縮効率を達成する。後者は、ヒューリスティックに設計された他のイントラ予測モードに追加されてもよく、たとえば、または排他的に提供されてもよい。そして、他の例も、すぐ上で論じられた特性の両方を利用する。これらの実施形態の変形として、しかしながら、別のピクチャの中の参照サンプルを代わりに使用することによって、イントラ予測がインター予測へと変えられることがあり得る。
【0027】
本出願の以下の例の理解を簡単にするために、説明は、それに適合するあり得るエンコーダとデコーダの提示で開始し、本出願の後で概説される例がそれらへと構築され得る。
図1は、ピクチャ10をデータストリーム12へとブロックごとに符号化するための装置を示す。装置は、参照記号14を使用して示され、静止ピクチャエンコーダまたはビデオエンコーダであり得る。言い換えると、ピクチャ10は、エンコーダ14がピクチャ10を含むビデオ16をデータストリーム12へと符号化するように構成されるとき、またはエンコーダ14がピクチャ10をデータストリーム12へと排他的に符号化し得るとき、ビデオ16からの現在のピクチャであり得る。
【0028】
言及されたように、エンコーダ14は、ブロックごとの方式で、またはブロックベースで符号化を実行する。このために、エンコーダ14はピクチャ10をブロックへと再分割し、ブロックの単位で、エンコーダ14はピクチャ10をデータストリーム12へと符号化する。ブロック18へのピクチャ10のあり得る再分割の例が、以下により詳しく記載される。一般に、再分割は、ピクチャ10の全体のピクチャエリアからの、または木ブロックのアレイへのピクチャ10の事前区分からの多分木再分割を開始することを伴う階層的多分木再分割の使用などによって、行および列に並べられたブロックのアレイなどの一定のサイズのブロック18、または、異なるブロックサイズのブロック18を生むことがあり、これらの例は、ピクチャ10をブロック18へと再分割する他のあり得る方法を排除するものとして扱われるべきではない。
【0029】
さらに、エンコーダ14は、ピクチャ10をデータストリーム12へと予測的に符号化するように構成される予測エンコーダである。あるブロック18に対して、これは、エンコーダ14がブロック18のための予測信号を決定し、予測残差、すなわち、予測信号がブロック18内で実際のピクチャの内容からずれる予測誤差を、データストリーム12へと符号化することを意味する。
【0030】
エンコーダ14は、あるブロック18のための予測信号を導出するために、異なる予測モードをサポートし得る。以下の例において重要である予測モードは、ブロック18の内側がそれに従ってピクチャ10の近傍のすでに符号化されたサンプルから空間的に予測されるイントラ予測モードである。データストリーム12へのピクチャ10の符号化、およびしたがって、対応する復号手順は、ブロック18の間で定義されるコーディング順序20に基づき得る。たとえば、コーディング順序20は、たとえば左から右へと各行を走査しながら上から下へと行ごとになどの、ラスター走査順序でブロック18を走査し得る。階層的な多分木ベースの再分割の場合、各階層レベル内でラスター走査順序が適用されてもよく、ここで、深度優先の走査順序が適用されてもよく、すなわち、ある階層レベルのブロック内のリーフノードは、コーディング順序20に従った同じ親ブロックを有する同じ階層レベルのブロックの前にあり得る。コーディング順序20に応じて、ブロック18の近傍のすでに符号化されたサンプルは通常、ブロック18の1つまたは複数の側に位置し得る。本明細書において提示される例の場合、たとえば、ブロック18の近傍のすでに符号化されたサンプルは、ブロック18の上および左に位置する。
【0031】
イントラ予測モードは、エンコーダ14によってサポートされる唯一のモードではないことがある。エンコーダ14がビデオエンコーダである場合、たとえば、エンコーダ14は、ブロック18がそれに従ってビデオ16の以前に符号化されたピクチャから時間的に予測されるインター予測モードもサポートし得る。そのようなインター予測モードは動き補償された予測モードであってもよく、それに従って、ブロック18の予測信号がコピーとしてそれから導出されるべき部分の相対的な空間オフセットを示す動きベクトルが、そのようなブロック18のためにシグナリングされる。追加または代替として、エンコーダ14がマルチビューエンコーダである場合のインター予測モード、またはブロック18の内側がそれに従ってそのまま、すなわちどのような予測もなしでコーディングされる非予測モードなどの、他の非イントラ予測モードも利用可能であり得る。
【0032】
本出願の説明をイントラ予測モードへと集中させるのを始める前に、あり得るブロックベースのエンコーダ、すなわちエンコーダ14のあり得る実装形態のためのより具体的な例が
図2を参照して説明され、次いで、
図1および
図2に適合するデコーダの2つの対応する例をそれぞれ提示する。
【0033】
図2は、
図1のエンコーダ14のあり得る実装形態、すなわち、エンコーダが予測残差を符号化するための変換コーディングを使用するように構成される実装形態を示すが、これはほとんど例であり、本出願はその種の予測残差コーディングに限定されない。
図2によれば、エンコーダ14は、後で予測残差エンコーダ28によってデータストリーム12へと符号化される予測残差信号26を取得するために、現在のブロック18、対応する予測信号24を、入ってくる信号、すなわちピクチャ10から、またはブロックごとに差し引くように構成される、減算器22を含む。予測残差エンコーダ28は、非可逆符号化段28aおよび可逆符号化段28bからなる。非可逆段28aは、予測残差信号26を受信し、予測残差信号26のサンプルを量子化する量子化器30を含む。上ですでに言及されたように、この例は、予測残差信号26の変換コーディングを使用し、それに従って、非可逆符号化段28aは、残差信号26を提示しながら、変換された係数について行われる量子化器30の量子化を用いて、そのようなスペクトル分解された予測残差26を変換するために、減算器22と量子化器30との間に接続される変換段32を含む。変換は、DCT、DST、FFT、Hadamard変換などであり得る。変換および量子化された予測残差信号34は次いで、量子化された予測残差信号34をデータストリーム12にエントロピーコーディングするエントロピーコーダである、可逆符号化段28bによる可逆コーディングを受ける。エンコーダ14はさらに、変換および量子化された予測残差信号34から、デコーダにおいても利用可能な方式で、すなわちコーディング損失を考慮して予測残差信号を再構築するために、量子化器30の出力に接続された予測残差信号再構築段36を含む。これを目的に、予測残差再構築段36は、量子化器30の量子化の逆を実行する逆量子化器38と、それに続く、上で言及された特定の変換例のいずれとも逆のものなどの、スペクトル分解の逆などの変換器32によって実行される変換に対して逆の変換を実行する逆変換器40とを含む。エンコーダ14は、再構築された信号、すなわち再構築されたサンプルを出力するために、逆変換器40および予測信号24によって出力されるような再構築された予測残差信号を加算する、加算器42を含む。この出力は、エン
コーダ14の予測器44へと供給され、エンコーダ14は次いで、それに基づいて予測信号24を決定する。
図1に関して上ですでに論じられたすべての予測モードをサポートするのが予測器44である。
図2はまた、エンコーダ14がビデオエンコーダである場合に、エンコーダ14が、フィルタ完全に再構築されたピクチャを伴うループ内フィルタも含むことを示し、ピクチャはフィルタリングされた後で、インター予測されたブロックに関して予測器44のための参照ピクチャを形成する。
【0034】
上述したように、エンコーダ14はブロックベースで動作する。以下の説明では、関心対象のブロックの基礎は、予測器44またはエンコーダ14によってそれぞれサポートされるイントラ予測モードの集合または複数のイントラ予測モードからイントラ予測モードがそのために選択されるブロックへとピクチャ10を再分割するようなものであり、選択されたイントラ予測モードは個別に実行される。しかしながら、ピクチャ10がそれらへと再分割される他の種類のブロックも存在し得る。たとえば、ピクチャ10がインターコーディングされるかイントラコーディングされるかの上述の決定は、ブロック18から逸脱する粒度またはブロックの単位で行われ得る。たとえば、インター/イントラモードの決定は、ピクチャ10がそれらへと再分割されるコーディングブロックのレベルで実行されてもよく、各コーディングブロックは予測ブロックへと再分割される。イントラ予測が使用されると決定された符号化ブロックを伴う予測ブロックは、各々イントラ予測モードの決定へと再分割される。このために、これらの予測ブロックの各々に対して、どのサポートされるイントラ予測モードがそれぞれの予測ブロックのために使用されるべきであるかについて決定される。これらの予測ブロックは、ここで関心対象であるブロック18を形成する。インター予測と関連付けられるコーディングブロック内の予測ブロックは、予測器44によって異なるように扱われる。それらは、動きベクトルを決定して、動きベクトルにより指し示される参照ピクチャの中の位置からこのブロックのための予測信号をコピーすることによって、参照ピクチャからインター予測される。別のブロック再分割は、変換ブロックへの再分割に関係し、変換ブロックの単位で、変換器32および逆変換器40による変換が実行される。変換されたブロックは、たとえば、さらなる再分割コーディングブロックの結果であり得る。当然、本明細書に記載される例は限定的であるものとして扱われるべきではなく、他の例も存在する。完全を期すためだけに、コーディングブロックへの再分割は、たとえば多分木再分割を使用してもよく、予測ブロックおよび/または変換ブロックは、多分木再分割を使用してコーディングブロックをさらに再分割することによっても取得され得ることに留意されたい。
【0035】
図1のエンコーダ14に適合するブロックごとの復号のためのデコーダ54または装置が、
図3に図示されている。このデコーダ54はエンコーダ14とは反対のことを行い、すなわち、それは、ブロックごとにピクチャ10をデータストリーム12から復号し、この目的で、複数のイントラ予測モードをサポートする。デコーダ54は、たとえば、残差提供器156を含み得る。
図1に関して上で論じられたすべての他の可能性も、デコーダ54に対して有効である。このために、デコーダ54は、静止ピクチャデコーダまたはビデオデコーダであってもよく、すべての予測モードおよび予測の可能性もデコーダ54によってサポートされる。エンコーダ14とデコーダ54との違いは主に、エンコーダ14が、たとえばコーディングレートおよび/またはコーディングひずみに依存し得る何らかのコスト関数を最小にすることなどのために、何らかの最適化に従ってコーディングの決定を選び、または選択するという事実にある。これらのコーディングオプションまたはコーディングパラメータの1つは、利用可能なまたはサポートされるイントラ予測モードの間で現在のブロック18のために使用されるべきイントラ予測モードの選択を伴い得る。選択されたイントラ予測モードは次いで、データストリーム12内の現在のブロック18のためにエンコーダ14によってシグナリングされてもよく、デコーダ54は、ブロック18のためのデータストリーム12においてこのシグナリングを使用して選択を再び行う。同様に、ブロック18へのピクチャ10の再分割はエンコーダ14内で最適化を受けてもよく、対応する再分割情報はデータストリーム12内で伝えられてもよく、デコーダ54は、再分割情報に基づいて、ブロック18へのピクチャ10の再分割を復元する。上記をまとめると、デコーダ54は、ブロックごとに動作する予測デコーダであってもよく、イントラ予測モードを除き、デコーダ54は、たとえばデコーダ54がビデオデコーダである場合のインター予測モードなどの、他の予測モードをサポートしてもよい。復号において、デコーダ54は、
図1に関して論じられたコーディング順序20も使用してもよく、エンコーダ14とデコーダ54の両方においてこのコーディング順序20に従うので、エンコーダ14とデコーダ54の両方において、同じ近傍サンプルが現在のブロック18
に対して利用可能である。したがって、不要な反復を避けるために、エンコーダ14の動作のモードの説明は、ブロックへのピクチャ10の再分割が関係する限り、たとえば、予測が関係する限り、および予測残差のコーディングが関係する限り、デコーダ54にも適用されるものとする。違いは、エンコーダ14が、最適化によって、何らかのコーディングオプションまたはコーディングパラメータを選び、コーディングパラメータをデータストリーム12内でシグナリングし、またはそれへと挿入し、コーディングパラメータが次いで、予測、再分割などを再び行うためにデコーダ54によってデータストリーム12から導出されるという事実にある。
【0036】
図4は、
図3のデコーダ54、すなわち
図2に示されるような
図1のエンコーダ14の実装形態に適合するもののあり得る実装形態を示す。
図4のエンコーダ54の多くの要素は
図2の対応するエンコーダに存在するものと同じであるので、これらの要素を示すために、アポストロフィとともに与えられる同じ参照記号が
図4において使用される。具体的には、加算器42'、任意選択のループ内フィルタ46'、および予測器44'は、
図2のエンコーダにおけるのと同じ方式で予測ループへと接続される。加算器42'に適用される、再構築された、すなわち逆量子化された再変換された予測残差信号は、エントロピーデコーダ56のシーケンスによって導出され、エントロピーデコーダ56は、符号化側の場合と同じように、エントロピーエンコーダ28bのエントロピー符号化の逆を行い、それに続いて、逆量子化器38'および逆変換器40'からなる残差信号再構築段36'がある。デコーダの出力は、ピクチャ10の再構築である。ピクチャ10の再構築は、加算器42'の出力において、または代替として、ループ内フィルタ46'の出力において直接利用可能であり得る。一部のポストフィルタは、ピクチャ品質を改善するために、ピクチャ10の再構築に何らかのポストフィルタリングを適用するために、デコーダの出力に並べられ得るが、このオプションは
図4において図示されていない。
【0037】
再び
図4について、
図2に関して上記で提示された説明は、エンコーダのみが最適化のタスクおよびコーディングオプションに関して関連付けられた決定を実行するということを除き、
図4に対しても有効であるものとする。しかしながら、ブロックの再分割、予測、逆量子化、および再送信に関するすべての説明も、
図4のデコーダ54に対して有効である。
【0038】
3 ALWIP(アフィン線形加重イントラ予測子)
ALWIPはここで論じられる技法を具現化するために常に必要とは限らないが、ALWIPに関するいくつかの非限定的な例がここで論じられる。
【0039】
すなわち、本出願は、HEVCまたはHEVCの任意の後継などのビデオコーデックにおいて使用可能なものなどの、ブロックごとのピクチャコーディングのための改善されたブロックベースの予測モードの概念に関係する。予測モードはイントラ予測モードであり得るが、理論的には、本明細書において説明される概念は、参照サンプルが別のピクチャの一部であるようなインター予測モードにも流用され得る。
【0040】
ハードウェアフレンドリーな実装形態などの、効率的な実装形態を可能にするブロックベース予測の概念が求められている。
【0041】
この目的は、本出願の独立請求項の主題によって達成される。
【0042】
イントラ予測モードは、ピクチャおよびビデオのコーディングにおいて広く使用される。ビデオコーディングにおいて、イントラ予測モードは、動き補償された予測モードなどのインター予測モードなどの他の予測モードと競合する。イントラ予測モードにおいて、現在のブロックは、近傍サンプル、すなわち、エンコーダ側に関する限りはすでに符号化されているサンプル、およびデコーダ側に関する限りはすでに復号されたサンプルに基づいて予測される。現在のブロックのための予測信号を形成するために、近傍サンプル値が現在のブロックへと外挿され、予測残差は現在のブロックのためのデータストリームにおいて送信される。予測信号が良いほど、予測残差は少なくなり、したがって、予測残差をコーディングするために必要なビットの数は少なくなる。
【0043】
効果的であるために、ブロックごとのピクチャコーディングの環境においてイントラ予測のための効果的なフレームワークを形成するために、いくつかの態様が考慮されるべきである。たとえば、コーデックによってサポートされるイントラ予測モードの数が多いほど、デコーダの選択をシグナリングするための副次情報レートの消費が大きくなる。一方、サポートされるイントラ予測モードの集合は、良好な予測信号、すなわち低い予測残差をもたらす予測信号を提供することが可能であるべきである。
【0044】
以下では、比較の実施形態または基礎の例として、データストリームからピクチャをブロックごとに復号するための装置(エンコーダまたはデコーダ)が開示され、この装置は、現在のブロックに隣接するサンプルの第1のテンプレートをアフィン線形予測子へと適用することによって、ピクチャの所定のサイズのブロックのためのイントラ予測信号がそれに従って決定される少なくとも1つのイントラ予測モードをサポートし、アフィン線形予測子はその結果、アフィン線形加重イントラ予測子(ALWIP)と呼ばれるものとする。
【0045】
装置は、以下の性質のうちの少なくとも1つを有し得る(プロセッサによって実行されると、プロセッサに方法を実施させ、および/または装置として動作させる命令を記憶した非一時的記憶ユニットにおいて実装される、ある方法または別の技法に同じことが当てはまり得る)。
【0046】
3.1 予測子は他の予測子を補足するものであり得る
以下でさらに説明される実装形態の改善の主題を形成し得るイントラ予測モードは、コーデックの他のイントラ予測モードを補足するものであり得る。したがって、それらは、HEVCコーデックおよびJEM参照ソフトウェアにおいてそれぞれ定義されるDC予測モード、Planar予測モード、またはAngular予測モードを補足するものであり得る。後者の3つのタイプのイントラ予測モードを、以下、従来のイントラ予測モードと呼ぶものとする。したがって、イントラモードにある所与のブロックに対して、装置によってサポートされるイントラ予測モードのうちの1つが使用されるべきかどうかを示すフラグが、デコーダによって解析される必要がある。
【0047】
3.2 1つより多くの提案された予測モード
装置は、1つより多くのALWIPモードを含み得る。したがって、装置によってサポートされるALWIPモードの1つが使用されるべきであることをデコーダが知っている場合、デコーダは、装置によってサポートされるALWIPモードのいずれが使用されるべきかを示す追加の情報を解析する必要がある。
【0048】
サポートされるモードのシグナリングは、一部のALWIPモードのコーディングが他のALWIPモードより少ないビンを必要とし得るという性質を有し得る。これらのモードのいずれがより少ないビンを必要とするか、およびどのモードがより多くのビンを必要とするかは、すでに復号されたビットストリームから抽出され得る情報に依存し得るか、または事前に定められ得るかのいずれかである。
【0049】
4 いくつかの態様
図2は、データストリーム12からピクチャを復号するためのデコーダ54を示す。デコーダ54は、ピクチャの所定のブロック18を復号するように構成され得る。具体的には、予測器44は、所定のブロックのサンプルのためのQ個の予測された値の集合へと、線形変換またはアフィン線形変換[たとえば、ALWIP]を使用して所定のブロック18の近傍のP個の近傍サンプルの集合をマッピングするために構成され得る。
【0050】
図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'a~17'cを、それらがその一部になっているブロックから区別するために、部分17'a~17'cにおける値として示される(いくつかの例では、17'bは使用されない)。
【0051】
図6に示されるように、予測を実行するために、P個のエントリを伴う第1のベクトル17P(各エントリは近傍の部分17'a~17'cにおける特定の位置に関連付けられる)、Q個のエントリを伴う第2のベクトル18Q(各エントリはブロック18における特定の位置に関連付けられる)、およびマッピング行列17M(各行はブロック18における特定の位置に関連付けられ、各列は近傍の部分17'a~17'cにおける特定の位置に関連付けられる)とともに動作することが可能である。したがって、マッピング行列17Mは、所定のモードに従って、ブロック18の値への近傍の部分17'a~17'cのP値の予測を実行する。したがって、マッピング行列17Mの中のエントリは加重係数として理解され得る。以下の一節では、17'a~17'cの代わりに記号17a~17cを用いて、境界の近傍の部分に言及する。
【0052】
本技術分野では、DCモード、Planarモード、および65個の方向性予測モードなどの、いくつかの従来のモードが知られている。たとえば、知られている67個のモードがあり得る。
【0053】
しかしながら、ここで線形変換またはアフィン線形変換と称される、異なるモードを利用することも可能であることに留意されたい。線形変換またはアフィン線形変換はP・Q個の加重係数を含み、そのうちの少なくとも(1/4)P・Q個の加重係数は0ではない加重値であり、これらは、Q個の予測された値の各々に対して、それぞれの予測された値に関するP個の加重係数の系列を含む。この系列は、所定のブロックのサンプルの間のラスター走査順序に従って一方が他方の下に並べられると、全方向に非線形のエンベロープを形成する。
【0054】
近傍の値17'a~17'c(テンプレート)のP個の位置をマッピングし、近傍のサンプル17'a~17'cのQ個の位置をマッピングし、行列17MのP*Q個の加重係数の値においてマッピングすることが可能である。平面は、DC変換のための系列のエンベロープ(これはDC変換のための平面である)の例である。エンベロープは明らかに平面的(planar)であるので、線形変換またはアフィン線形変換(ALWIP)の定義から除外される。別の例は、Angularモードのエミュレーションをもたらす行列である。エンベロープはALWIPの定義から除外され、率直に言って、P/Q平面の中の方向に沿って上から下に斜めに延びる丘のように見える。Planarモードおよび65個の方向性予測モードは異なるエンベロープを有し、しかしながら、これらは、少なくとも1つの方向、すなわち、たとえば例示されるDCではすべての方向、および、たとえばAngularモードでは丘の方向において線形である。
【0055】
それとは反対に、線形変換またはアフィン変換のエンベロープは、全方向に線形ではない。いくつかの状況では、ブロック18のための予測を実行するために、そのような種類の変換が最適であり得ることが理解されている。加重係数の少なくとも4分の1が0とは異なる(すなわち、P*Q個の加重係数の少なくとも25%が0とは異なる)ことが好ましいことに留意されたい。
【0056】
加重係数は、どのような通常のマッピング規則に従っても互いに関連していないことがある。したがって、行列17Mは、そのエントリの値が明らかな認識可能な関係を有しないようなものであり得る。たとえば、加重係数は、どのような分析的なまたは差分の関数によっても記述することができない。
【0057】
例では、ALWIP変換は、それぞれの予測された値に関する加重係数の第1の系列と、それぞれの予測された値以外の予測された値に関する加重係数の第2の系列との間の相互相関の最大値、または後者の系列の逆にされたバージョンとの相互相関の最大値のうちでより大きい方の最大値の平均が、所定の閾値(たとえば、0.2または0.3または0.35または0.1、たとえば0.05と0.035の間の範囲にある閾値)より小さくなり得るようなものである。たとえば、ALWIP行列17Mの行の各々の組(i1,i2)に対して、i1番目の行のP値をi2番目の行のP値と乗じることによって相互相関が計算され得る。各々の取得された相互相関に対して、最大値が取得され得る。したがって、全体の行列17Mに対して、平均(mean)(平均(average))が取得され得る(すなわち、すべての組合せにおける相互相関の最大値が平均される)。その後、閾値は、たとえば0.2または0.3または0.35または0.1、たとえば0.05と0.035の間の範囲にある閾値であり得る。
【0058】
ブロック17a~17cのP個の近傍サンプルは、所定のブロック18の境界(たとえば、18c、18a)に沿って延びる1次元の経路に沿って位置し得る。所定のブロック18のQ個の予測された値の各々に対して、それぞれの予測された値に関するP個の加重係数の系列は、所定の方向に(たとえば、左から右、上から下など)1次元の経路を走査する方式で並べられ得る。
【0059】
例では、ALWIP行列17Mは、非対角または非ブロック対角であり得る。
【0060】
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}
}
【0061】
(ここで、{37,59,77,28}が第1の行であり、{32,92,85,25}が第2の行であり、{61,32,54,100}が行列17Mの第16の行である)。行列17Mは次元16×4を有し、64個の加重係数(16*4=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である。行列は、非対角および非ブロック対角であり、特定の規則によって記述されない。
【0062】
理解され得るように、加重係数のうちの4分の1未満が0である(上で示される行列の場合、64個のうちの1つの加重係数が0である)。これらの値によって形成されるエンベロープは、ラスター走査順序に従って一方が他方の下に並べられると、全方向に非線形のエンベロープを形成する。
【0063】
上記の説明は主にデコーダ(たとえば、デコーダ54)を参照して論じられるが、同じことがエンコーダ(たとえば、エンコーダ14)において実行され得る。
【0064】
いくつかの例では、(ブロックサイズの集合の中の)各ブロックサイズに対して、それぞれのブロックサイズのためのイントラ予測モードの第2の集合内のイントラ予測モードのALWIP変換は相互に異なる。加えて、または代わりに、ブロックサイズの集合の中のブロックサイズのためのイントラ予測モードの第2の集合の濃度は一致し得るが、異なるブロックサイズのためのイントラ予測モードの第2の集合内のイントラ予測モードの関連付けられた線形変換またはアフィン線形変換は、スケーリングによって互いへと流用可能ではないことがある。
【0065】
いくつかの例では、ALWIP変換は、従来の変換と「共有すべきものがない」ように定義され得る(たとえば、ALWIP変換は、上記のマッピングのうちの1つを介してマッピングされたとしても、対応する従来の変換と共有すべきものが「ない」ことがある)。
【0066】
例では、ALWIPモードはルマ成分とクロマ成分の両方のために使用されるが、他の例では、ALWIPモードはルマ成分には使用され、しかしクロマ成分には使用されない。
【0067】
5 エンコーダのスピードアップを伴うアフィン線形加重イントラ予測モード(たとえば、Test CE3-1.2.1)
5.1 方法または装置の説明
CE3-1.2.1において試験されるアフィン線形加重イントラ予測(ALWIP)モードは、以下の変更を除いて、JVET-L0199under test CE3-2.2.2において提案されたものと同じであり得る。
・複数の参照ライン(MRL)イントラ予測、特にエンコーダ推定およびシグナリングとの調和。すなわち、MRLはALWIPと組み合わされず、MRLインデックスの送信は非ALWIPブロックに制限される。
・すべてのブロックW×H≧32×32に対して今は必須であるサブサンプリング(以前は32×32に対しては任意選択であった)。したがって、エンコーダにおける追加的な試験およびサブサンプリングフラグの送信はなくされている。
・64×NおよびN×64ブロック(N≦32である)のためのALWIPが、それぞれ32×NおよびN×32へとダウンサンプリングし、対応するALWIPモードを適用するによって、追加されている。
【0068】
その上、test CE3-1.2.1は、ALWIPのための以下のエンコーダの最適化を含む。
・統合されたモード推定:従来のモードおよびALWIPモードは、完全なRD推定のための共有されたHadamard候補リストを使用する。すなわち、ALWIPモード候補は、Hadamardコストに基づいて従来の(およびMRL)モード候補と同じリストに追加される。
・EMT intra fastおよびPB intra fastが、統合されたモードリストのためにサポートされ、完全なRD確認の数を減らすためのさらなる最適化がある。
・利用可能な左および上のブロックのMPMのみが、ALWIPのための完全なRD推定のためのリストに追加され、従来のモードと同じ手法に従う。
【0069】
5.2 複雑さの評価
Test CE3-1.2.1では、離散コサイン変換を呼び出す計算を除き、多くてもサンプル当たり12回の乗算が、予測信号を生成するために必要であった。その上、各々16ビットの、合計で136492個のパラメータが必要であった。これは、0.273メガバイトのメモリに相当する。
【0070】
5.3 実験結果
試験の評価は、VTMソフトウェアバージョン3.0.1を用いたイントラのみ(AI)構成およびランダムアクセス(RA)構成について、共通の試験条件JVET-J1010[2]に従って実行された。対応するシミュレーションが、Intel Xeonクラスタ(E5-2697A v4、AVX2オン、ターボブーストオフ)上で、Linux(登録商標) OSおよびGCC 7.2.1コンパイラを用いて行われた。
【0071】
【0072】
【0073】
5.4 複雑さが低減されたアフィン線形加重イントラ予測(たとえば、Test CE3-1.2.2)
CE2において試験される技法は、JVET-L0199[1]に記載される「アフィン線形イントラ予測」に関するが、メモリ要件および計算の複雑さの点でそれを簡単にする。
・すべてのブロック形状をカバーする、予測行列(たとえば、S0、S1、S2、以下を参照されたい)およびバイアスベクトル(たとえば、オフセット値を提供するための)の3つの異なる集合のみがあり得る。結果として、パラメータの数は14400個の10ビット値に減り、これは128×128のCTUに記憶されるものより少ないメモリである。
・予測子の入力サイズおよび出力サイズがさらに低減される。その上、DCTを介して境界を変換する代わりに、平均化またはダウンサンプリングが境界サンプルに対して実行されてもよく、予測信号の生成は逆DCTの代わりに線形補間を使用してもよい。結果として、サンプル当たり4つの乗算という最大値が、予測信号を生成するために必要であり得る。
【0074】
6. 例
ここで、ALWIP予測を用いていくつかの予測(たとえば、
図6に示されるような)をどのように実行するかについて論じる。
【0075】
原則として、
図6を参照すると、予測されるべきM×Nブロック18のQ=M*N個の値を取得するために、P×1の近傍ベクトル17PのP個のサンプルとの、Q×PのALWIP予測行列17MのQ×P個のサンプルの乗算が実行されるべきである。したがって、一般に、予測されるべきM×Nブロック18のQ=M*N個の値の各々を取得するために、少なくともP=M+N個の値の乗算が必要である。
【0076】
これらの乗算には極めて望ましくない効果がある。境界ベクトル17Pの次元Pは一般に、予測されるべきM×Nブロック18の近傍の(たとえば、それに隣接する)境界サンプル(ビンまたはピクセル)17a、17cの数M+Nに依存する。これは、予測されるべきブロック18のサイズが大きい場合、境界ピクセル(17a、17c)の数M+Nもそれに従って大きくなるので、P×1の境界ベクトル17Pの次元P=M+NおよびQ×PのALWIP予測行列17Mの各行の長さを増大させ、したがって、必要な乗算の数も増やす(一般に、Q=M*N=W*Hであり、W(幅)はNの別の記号であり、H(高さ)はMの別の記号である。境界ベクトルがサンプルの1つの行および/または1つの列のみによって形成される場合、PはP=M+N=H+Wである)。
【0077】
この問題は、一般に、マイクロプロセッサベースのシステム(または他のデジタル処理システム)において、乗算が一般に処理能力を消費する演算であるという事実により悪化する。多数のブロックのための極端に多数のサンプルに対して行われる多数の乗算が、処理能力の浪費を引き起こすと想像することができ、これは一般に望まれない。
【0078】
したがって、M×Nブロック18を予測するために必要な乗算の数Q*Pを減らすことが好ましい。
【0079】
乗算の代わりの、より処理が簡単な演算をインテリジェントに選ぶことによって、予測されるべき各ブロック18の各イントラ予測に対して必要な処理能力をいくらか減らすことが可能であることが理解されている。
【0080】
具体的には、
図7.1~
図7.4を参照すると、エンコーダまたはデコーダが、複数の近傍サンプル(たとえば、17a、17c)を使用してピクチャの所定のブロック(たとえば、18)を、
複数の近傍サンプル(たとえば、17a、17c)と比較してサンプルの数が少ないサンプル値の縮小された集合を取得するために、複数の近傍サンプルを(たとえば、平均化またはダウンサンプリングによって)(たとえば、ステップ811において)減らし、
所定のブロックの所定のサンプルのための予測された値を取得するために、サンプル値の縮小された集合に線形変換またはアフィン線形変換を(たとえば、ステップ812において)適用する
ことによって予測し得ることが理解されている。
【0081】
いくつかの場合、デコーダまたはエンコーダはまた、たとえば、所定のサンプルおよび複数の近傍サンプルのための予測された値に基づいて、所定のブロックのさらなるサンプルのための予測値を、たとえば補間によって導出し得る。したがって、アップサンプリング戦略を得ることができる。
【0082】
例では、よりサンプルの数が少ないサンプルの縮小された集合102(たとえば、
図7.1~
図7.4)に到達するために、境界17のサンプルに対して何らかの平均を(たとえば、ステップ811において)実行することが可能である(より少ない数のサンプル102のサンプルのうちの少なくとも1つは、元の境界サンプルの2つのサンプルの平均、または元の境界サンプルの選択であり得る)。たとえば、元の境界がP=M+N個のサンプルを有する場合、サンプルの縮小された集合はP
red=M
red+N
redを有してもよく、M
red<MとN
red<Nのうちの少なくとも一方が成り立つので、P
red<Pである。したがって、実際に予測のために(たとえば、ステップ812bにおいて)使用される境界ベクトル17Pは、P×1のエントリではなく、P
red×1のエントリを有し、P
red<Pである。同様に、予測のために選ばれるALWIP予測行列17Mは、Q×Pの次元ではなくQ×P
red(またはQ
red×P
red、以下を参照されたい)の次元を有し、(M
red<MとN
red<Nのうちの少なくとも一方が成り立つことにより)少なくともP
red<Pであるので、行列の要素の数がより少ない。
【0083】
いくつかの例(たとえば、
図7.2、
図7.3)では、(ステップ812において)ALWIPによって得られるブロックが、サイズM'
red×N'
redを有する縮小されたブロックであり、
【0084】
【0085】
および/または
【0086】
【0087】
である(すなわち、ALWIPによって直接予測されるサンプルの数が、実際に予測されるべきブロック18のサンプルより少ない)場合、乗算の回数をさらに減らすことすら可能である。したがって、
【0088】
【0089】
と設定すると、これは、Q*Pred回の乗算ではなく、Qred*Pred回の乗算(Qred*Pred<Q*Pred<Q*Pである)を使用することによって、ALWIP予測を取得することをもたらす。この乗算は、次元
【0090】
【0091】
の縮小されたブロックを予測する。それにもかかわらず、縮小された
【0092】
【0093】
の予測されたブロックから最終的なM×Nの予測されたブロックへの(たとえば、補間によって得られる)アップサンプリングを(たとえば、後続のステップ813において)実行することが可能であろう。
【0094】
これらの技法は有利であることがあり、それは、行列乗算がより少ない回数(Qred*PredまたはQ*Pred)の乗算を伴う一方で、最初の縮小(たとえば、平均化またはダウンサンプリング)と最後の変換(たとえば、補間)の両方が、乗算を減らす(または回避すらする)ことによって実行され得るからである。たとえば、加算およびシフトなどの、処理能力を必要としない二進演算を採用することによって、ダウンサンプリング、平均化、および/または補間が(たとえば、ステップ811および/または813において)実行され得る。
【0095】
また、加算は、多くの計算量なしで簡単に実行され得る、極めて簡単な演算である。
【0096】
このシフト演算は、たとえば、最終的な予測されたブロックを取得するために、2つの境界サンプルを平均化すること、および/または、縮小された予測されたブロックの(または境界から取られた)2つのサンプル(サポート値)を補間することのために使用され得る。(補間のためには2つのサンプル値が必要である。
図7.2のように、ブロック内では、常に2つの所定の値があるが、ブロックの左の境界と上の境界に沿ったサンプルを補間するために、1つだけの所定の値があるので、補間のためのサポート値として境界サンプルを使用する。)
【0097】
2ステップの手順が使用されてもよく、すなわち、
まず2つのサンプルの値を加算する。
次いで合計の値を(たとえば、右シフトによって)半分にする。
などである。
【0098】
あるいは、次のことが可能である。
サンプルの各々を(たとえば、左シフトによって)まず半分にする。
次いで2つの半分にされたサンプルの値を加算する。
【0099】
(たとえば、ステップ811における)ダウンサンプリングのときには、さらに簡単な演算を実行することができ、それは、サンプルのグループ(たとえば、互いに隣接するサンプル)から1つのサンプルを選択することだけが必要であるからである。
【0100】
したがって、ここで、実行されるべき乗算の回数を減らすための技法を定義することが可能である。すなわち、これらの技法の一部は、以下の技法のうちの少なくとも1つに基づき得る。
実際に予測されるべきブロック18がサイズM×Nを有する場合であっても、(2つの次元のうちの少なくとも1つに)ブロックを縮小することができ、縮小されたサイズQred×Predを伴うALWIP行列(
【0101】
【0102】
であり、Pred=Nred+Mredであり、
【0103】
【0104】
および/または
【0105】
【0106】
および/またはMred<Mおよび/またはNred<Nである)が適用され得る。したがって、境界ベクトル17PはサイズPred×1を有し、Pred<P回の乗算しかないことを示唆する(Pred=Mred+NredかつP=M+Nである)。
Pred×1の境界ベクトル17Pは、たとえば、
(たとえば、境界の一部のサンプルのみを選ぶことにより)ダウンサンプリングによって、および/または
境界の複数のサンプルを平均化することによって(これは乗算なしで加算およびシフトによって簡単に取得され得る)、
元の境界17から簡単に取得され得る。
追加または代替として、予測されるべきブロック18のすべてのQ=M*N個の値を乗算によって予測するのではなく、次元が減らされた縮小されたブロックのみを予測することが可能である(たとえば、
【0107】
【0108】
であり、
【0109】
【0110】
および/または
【0111】
【0112】
である)。予測されるべきブロック18の残りのサンプルは、補間によって、たとえば、予測されるべき残りのQ-Qred値のためのサポート値としてQred個のサンプルを使用することによって取得される。
【0113】
図7.1に示される例によれば、4×4ブロック18(M=4、N=4、Q=M*N=16)が予測されることになり、サンプルの近傍17である17a(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に対する上限としてこれを使用することで、複雑さが妥当なものになり従来のイントラ予測の複雑さを超えないことを確実にすることが可能である。)
【0114】
それにもかかわらず、本技法を使用することによって、ステップ811において、予測されるべきブロック18の近傍のサンプル17aおよび17cの数をPからP
red<Pに減らすことが可能であることが理解されている。具体的には、2つの水平方向の行および2つの垂直方向の列を伴う縮小された境界102を取得するために、互いに隣接する境界サンプル(17a、17c)を平均化し(たとえば、
図7.1の100において)、したがってブロック18が2×2ブロック(縮小された境界が平均値によって形成されている)であるかのように動作することが可能であることが理解されている。あるいは、ダウンサンプリングを実行すること、したがって、行17cのための2つのサンプルおよび列17aのための2つのサンプルを選択することが可能である。したがって、水平の行17cは、4つの元のサンプルを有するのではなく2つのサンプル(たとえば、平均化されたサンプル)を有するものとして処理されるが、元々4つのサンプルを有していた垂直方向の列17aは、2つのサンプル(たとえば、平均化されたサンプル)を有するものとして処理される。各々2つのサンプルのグループ110の中の行17cおよび列17aを再分割した後、1つの単一のサンプルが維持される(たとえば、グループ110のサンプルの平均またはグループ110のサンプルからの単純な選択)と理解することも可能である。したがって、サンプル値のいわゆる縮小された集合102が、集合102が4つのサンプルのみを有する(M
red=2、N
red=2、P
red=M
red+N
red=4、ただしP
red<P)ことにより得られる。
【0115】
プロセッサレベルであまりにも多くの乗算を行うことなく演算(平均化またはダウンサンプリング100など)を実行することが可能であることが理解されている。ステップ811において実行される平均化またはダウンサンプリング100は、加算およびシフトなどの単純で処理能力を消費しない演算によって簡単に取得され得る。
【0116】
この時点で、(たとえば、
図6の行列17Mなどの予測行列を使用して)サンプル値の縮小された集合102に線形またはアフィン線形(ALWIP)変換19を適用することが可能であることが理解されている。この場合、ALWIP変換19は、ブロック18のサンプル値104へと4つのサンプル102を直接マッピングする。この場合には補間は必要ではない。
【0117】
この場合、ALWIP行列17Mは、次元Q×Pred=16×4を有する。これは、予測されるべきブロック18のすべてのQ=16個のサンプルがALWIP乗算により直接得られる(補間が必要とされない)という事実に従う。
【0118】
したがって、ステップ812aにおいて、次元Q×Predを伴う適切なALWIP行列17Mが選択される。この選択は、たとえば、データストリーム12からのシグナリングに少なくとも部分的に基づき得る。選択されたALWIP行列17Mはまた、Akを用いて示されてもよく、kはインデックスとして理解されてもよく、これはデータストリーム12においてシグナリングされてもよい(いくつかの場合、行列は
【0119】
【0120】
としても示される。以下を参照されたい)。この選択は、以下の方式に従って実行され得る。各次元(たとえば、予測されるべきブロック18の高さ/幅のペア)に対して、ALWIP行列17Mが、たとえば行列の3つの集合S0、S1、S2のうちの1つの中から選ばれる(3つの集合S0、S1、S2の各々が、同じ次元の複数のALWIP行列17Mをグループ化してもよく、予測のために選ばれるべきALWIP行列はそれらのうちの1つである)。
【0121】
ステップ812bにおいて、選択されたQ×PredのALWIP行列17M(Akとしても示される)とPred×1の境界ベクトル17Pとの乗算が実行される。
【0122】
ステップ812cにおいて、オフセット値(たとえば、bk)が、たとえばALWIPによって得られるベクトル18Qのすべての得られた値104に加算され得る。オフセットの値(bk、または場合によっては
【0123】
【0124】
を用いても示される。以下を参照されたい)は、特定の選択されたALWIP行列(Ak)に関連付けられてもよく、インデックス(たとえば、データストリーム12においてシグナリングされてもよい)に基づいてもよい。
【0125】
したがって、本技法を使用することと本技法を使用しないこととの比較がここで再開される。
本技法を用いない場合:
ブロック18が予測されることになり、このブロックは次元M=4、N=4を有する
Q=M*N=4*4=16個の値が予測されることになる
P=M+N=4+4=8個の境界サンプル
予測されるべきQ=16個の値の各々に対してP=8回の乗算
合計でP*Q=8*16=128回の乗算
本技法を用いる場合:
ブロック18が予測されることになり、このブロックは次元M=4、N=4を有する
Q=M*N=4*4=16個の値が最後に予測されることになる
境界ベクトルの低減された次元:Pred=Mred+Nred=2+2=4
ALWIPによって予測されるべきQ=16個の値の各々に対してPred=4回の乗算
合計でPred*Q=4*16=64回の乗算(128の半分)
乗算の回数と取得されるべき最終的な値の数との比はPred*Q/Q=4であり、すなわち、予測されるべき各サンプルに対するP=8回の乗算の半分である
【0126】
理解され得るように、平均化(および場合によっては、加算および/またはシフトおよび/またはダウンサンプリング)などの単純で処理能力を必要としない演算を利用することによって、ステップ812において適切な値を取得することが可能である。
【0127】
図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であることにより、ならびにP=M+N=8+8=16であることにより、Q=64である)。したがって、先験的に、全体の8×8ブロック18のための64×16=1024回の乗算に到達するために、予測されるべき8×8ブロック18のQ=64個のサンプルの各々に対して、P=16回の乗算が必要とされる。
【0128】
しかしながら、
図7.2において見られ得るように、それに従うと、境界のすべての16個のサンプルを使用するのではなく、8個だけの値(たとえば、境界の元のサンプル間の水平方向の境界の行17cの中の4個の値および垂直方向の境界の列17aの中の4個の値)が使用されるような、方法820が提供され得る。境界の行17cから、8個ではなく4個のサンプルが使用され得る(たとえば、それらは2対2の平均および/または2つのサンプルからの1つのサンプルの選択であり得る)。したがって、境界ベクトルはP×1=16×1のベクトルではなく、P
red×1=8×1のベクトルにすぎない(P
red=M
red+N
red=4+4)。元のP=16個のサンプルではなく、P
red=8個の境界値のみがあるように、水平方向の行17cのサンプルおよび垂直方向の列17aのサンプルを選択または平均化し(たとえば、2対2)、サンプル値の縮小された集合102を形成することが可能であることが理解されている。この縮小された集合102は、ブロック18の縮小されたバージョンを取得することを可能にし、縮小されたバージョンは、(Q=M*N=8*8=64個ではなく)Q
red=M
red*N
red=4*4=16個のサンプルを有する。サイズM
red×N
red=4×4を有するブロックを予測するためのALWIP行列を適用することが可能である。ブロック18の縮小されたバージョンは、
図7.2の方式106において灰色で示されているサンプルを含む。灰色の四角で示されているサンプル(サンプル118'および118''を含む)は、適用するステップ812において得られるQ
red=16個の値を伴う4×4の縮小されたブロックを形成する。4×4の縮小されたブロックは、適用するステップ812において線形変換19を適用することによって取得されている。4×4の縮小されたブロックの値を取得した後で、たとえば補間によって、残りのサンプル(方式106において白いサンプルで示されているサンプル)の値を取得することが可能である。
【0129】
図7.1の方法810に関して、この方法820は、たとえば補間によって、予測されるべきM×N=8×8のブロック18の残りのQ-Q
red=64-16=48個のサンプル(白い四角)のための予測値を導出するステップ813を追加で含み得る。残りのQ-Q
red=64-16=48個のサンプルは、補間によってQ
red=16個の直接得られたサンプルから取得され得る(たとえば、補間は境界サンプルの値も利用し得る)。
図7.2において見られ得るように、(灰色の四角によって示されるように)サンプル118'および118''がステップ812において取得され、一方、(白い四角で示されている、サンプル118'と118''の中間にある)サンプル108'がステップ813においてサンプル118'と118''との間の補間によって取得される。補間はまた、シフトおよび加算などの平均化のための演算と同様の演算によって取得され得ることが理解されている。したがって、
図7.2において、値108'は一般に、サンプル118'の値とサンプル118''の値の中間の値として決定され得る(平均であり得る)。
【0130】
補間を実行することによって、ステップ813において、104に示される複数のサンプル値に基づいてM×N=8×8のブロック18の最終的なバージョンに到達することも可能である。
【0131】
したがって、本技法を使用することと本技法を使用しないこととの比較は次の通りである。
本技法を用いない場合:
ブロック18が予測されることになり、このブロックは次元M=8、N=8を有する
ブロック18の中のQ=M*N=8*8=64個のサンプルが予測されることになる
境界17の中のP=M+N=8+8=16個のサンプル
予測されるべきQ=64個の値の各々に対してP=16回の乗算
合計でP*Q=16*64=1028回の乗算
乗算の回数と取得されるべき最終的な値の数との比はP*Q/Q=16である
本技法を用いる場合:
ブロック18が予測されることになり、このブロックは次元M=8、N=8を有する
Q=M*N=8*8=64個の値が最後に予測されることになる
しかしQred×PredのALWIP行列が使用されることになり、Pred=Mred+Nred、Qred=Mred*Nred、Mred=4、Nred=4である
境界の中にPred=Mred+Nred=4+4=8個のサンプルがあり、Pred<Pである
(方式106において灰色の四角により形成される)予測されるべき4×4の縮小されたブロックのQred=16個の値の各々に対するPred=8回の乗算
合計でPred*Qred=8*16=128回の乗算(1024よりはるかに少ない)
乗算の回数と取得されるべき最終的な値の数との比はPred*Qred/Q=128/64=2である(本技法なしで得られる16よりはるかに小さい)
【0132】
したがって、本明細書で提示される技法は、以前の技法より8倍少ない処理能力しか必要としない。
【0133】
図7.3は、予測されるべきブロック18が長方形の4×8ブロック(M=8、N=4)であり、Q=4*8=32個のサンプルが予測されることになる、別の例(方法820に基づき得る)を示す。N=8個のサンプルを伴う水平方向の行17cおよびM=4個のサンプルを伴う垂直方向の列17aによって、境界17が形成される。したがって、先験的に、境界ベクトル17Pは次元P×1=12×1を有するが、予測ALWIP行列はQ×P=32×12の行列であるはずであり、したがってQ*P=32*12=384回の乗算の必要が生じる。
【0134】
しかしながら、たとえば、4個のサンプル(たとえば、平均化されたサンプル)しかない縮小された水平方向の行を取得するために、水平方向の行17cの少なくとも8個のサンプルを平均化またはダウンサンプリングすることが可能である。いくつかの例では、垂直方向の列17aは(たとえば、平均化なしで)そのまま残る。全体では、縮小された境界は次元P
red=8を有し、P
red<Pである。したがって、境界ベクトル17Pは、次元P
red×1=8×1を有する。ALWIP予測行列17Mは、次元M*N
red*P
red=4*4*8=64を伴う行列になる。適用するステップ812において直接得られる、4×4の縮小されたブロック(図解107において灰色の列によって形成される)は、(予測されるべき元の4×8ブロック18のQ=4*8=32の代わりに)Q
red=M*N
red=4*4=16個のサンプルというサイズを有する。縮小された4×4ブロックがALWIPによって取得されると、オフセット値b
kを加算し(ステップ812c)、ステップ813において補間を実行することが可能である。
図7.3のステップ813において見られ得るように、縮小された4×4ブロックは4×8ブロック18に拡大され、ステップ812において得られない値108'は、ステップ812において得られる値118'と118''(灰色の四角)を補間することによってステップ813において得られる。
【0135】
したがって、本技法を使用することと本技法を使用しないこととの比較は次の通りである。
本技法を用いない場合:
ブロック18が予測されることになり、このブロックは次元M=4、N=8を有する
Q=M*N=4*8=32個の値が予測されることになる
境界の中にP=M+N=4+8=12個のサンプルがある
予測されるべきQ=32個の値の各々に対してP=12回の乗算
合計でP*Q=12*32=384回の乗算
乗算の回数と取得されるべき最終的な値の数との比はP*Q/Q=12である
本技法を用いる場合:
ブロック18が予測されることになり、このブロックは次元M=4、N=8を有する
Q=M*N=4*8=32個の値が最後に予測されることになる
しかしQred×Pred=16×8のALWIP行列を使用することができ、M=4、Nred=4、Qred=M*Nred=16、Pred=M+Nred=4+4=8である
境界の中にPred=M+Nred=4+4=8個のサンプルがあり、Pred<Pである
予測されるべき縮小されたブロックのQred=16個の値の各々に対するPred=8回の乗算
合計でQred*Pred=16*8=128回の乗算(384より少ない)
乗算の回数と取得されるべき最終的な値の数との比はPred*Qred/Q=128/32=4である(本技法なしで得られる12よりはるかに小さい)
【0136】
したがって、本技法を用いると、計算量が3分の1に減る。
【0137】
図7.4は、次元M×N=16×16を伴い、最後に予測されるべきQ=M*N=16*16=256個の値を有し、P=M+N=16+16=32個の境界サンプルを伴う、予測されるべきブロック18の事例を示す。これは、次元Q×P=256×32を伴う予測行列をもたらし、これは256×32=8192回の乗算を示唆する。
【0138】
しかしながら、方法820を適用することによって、ステップ811において、境界サンプルの数を、たとえば32から8に、(たとえば、平均化またはダウンサンプリングによって)減らすことが可能である。たとえば、行17aの4つの連続するサンプルの各グループ120に対して、1つの単一のサンプル(たとえば、4つのサンプルから選択される、またはサンプルの平均)が残る。また、列17cの4つの連続するサンプルの各グループに対して、1つの単一のサンプル(たとえば、4つのサンプルから選択される、またはサンプルの平均)が残る。
【0139】
ここで、ALWIP行列17MはQred×Pred=64×8の行列である。これは、Pred=8が選ばれた(境界の32個のサンプルから8個の平均化されたまたは選択されたサンプルを使用することによって)という事実、およびステップ812において予測されるべき縮小されたブロックが8×8ブロックであるという事実に起因する(方式109では、灰色の四角は64である)。
【0140】
したがって、縮小された8×8ブロックの64個のサンプルがステップ812において得られると、ステップ813において、予測されるべきブロック18の残りのQ-Qred=256-64=192個の値104を導出することが可能である。
【0141】
この場合、補間を実行するために、境界の列17aのすべてのサンプルおよび境界の行17cの中の代替のサンプルのみを使用することが選ばれている。他の選択が行われてもよい。
【0142】
本方法を用いると、乗算の回数と最終的に得られる値の数との比はQred*Pred/Q=8*64/256=2であり、これは本技法を用いない場合の各値に対する32回の乗算よりはるかに少ない。
【0143】
本技法を使用することと本技法を使用しないこととの比較は次の通りである。
本技法を用いない場合:
ブロック18が予測されることになり、このブロックは次元M=16、N=16を有する
Q=M*N=16*16=256個の値が予測されることになる
境界の中にP=M+N=16+16=32個のサンプルがある
予測されるべきQ=256個の値の各々に対してP=32回の乗算
合計でP*Q=32*256=8192回の乗算
乗算の回数と取得されるべき最終的な値の数との比はP*Q/Q=32である
本技法を用いる場合:
ブロック18が予測されることになり、このブロックは次元M=16、N=16を有する
Q=M*N=16*16=256個の値が最後に予測されることになる
しかしQred×Pred=64×8のALWIP行列が使用されることになり、Qred=8*8=64個のサンプルがMred=4、Nred=4、ALWIPにより予測されることになり、Pred=Mred+Nred=4+4=8である
境界の中にPred=Mred+Nred=4+4=8個のサンプルがあり、Pred<Pである
予測されるべき縮小されたブロックのQred=64個の値の各々に対するPred=8回の乗算
合計でQred*Pred=64*4=256回の乗算(8192よりはるかに少ない)
乗算の回数と取得されるべき最終的な値の数との比はPred*Qred/Q=8*64/256=2である(本技法なしで得られる32よりはるかに小さい)
【0144】
したがって、本技法により必要とされる処理能力は従来の技法より16倍少ない。
【0145】
したがって、複数の近傍サンプル(17)を使用してピクチャの所定のブロック(18)を、
複数の近傍サンプル(17)と比較してサンプルの数が少ないサンプル値の縮小された集合(102)を取得するために、複数の近傍サンプルを減らし(100、813)、
所定のブロック(18)の所定のサンプル(104、118'、188'')のための予測される値を取得するために、サンプル値の縮小された集合(102)に線形変換またはアフィン線形変換(19、17M)を適用する(812)
ことによって予測することが可能である。
【0146】
具体的には、複数の近傍サンプル(17)と比較してサンプルの数が少ないサンプル値の縮小された集合(102)を取得するために、複数の近傍サンプルをダウンサンプリングすることによって、減らすこと(100、813)を実行することが可能である。
【0147】
あるいは、複数の近傍サンプル(17)と比較してサンプルの数が少ないサンプル値の縮小された集合(102)を取得するために、複数の近傍サンプルを平均化することによって減らすこと(100、813)を実行することが可能である。
【0148】
さらに、補間によって、所定のサンプルのための予測される値(104、118'、118'')および複数の近傍サンプル(17)に基づいて、所定のブロック(18)のさらなるサンプル(108、108')のための予測値を導出する(813)ことが可能である。
【0149】
複数の近傍サンプル(17a、17c)は、所定のブロック(18)の2つの辺に沿って(たとえば、
図7.1~
図7.4において右および下に向かって)一次元に延び得る。所定のサンプル(たとえば、ステップ812においてALWIPによって得られるもの)はまた、行および列に並べられてもよく、行および列のうちの少なくとも1つに沿って、所定のサンプルは、所定のブロック18の2つの辺に隣接する所定のサンプル112のサンプル(112)からn個ごとの位置に配置されていてもよい。
【0150】
複数の近傍サンプル(17)に基づいて、行および列のうちの少なくとも1つの各々に対して、複数の近傍の位置のうちの1つ(118)のためのサポート値(118)を決定することが可能であり、これらは、行および列のうちの少なくとも1つのそれぞれ1つと揃えられる。補間によって、所定のサンプル(104、118'、118'')のための予測される値および行と列の少なくとも1つに揃えられた近傍サンプル(118)のためのサポート値に基づいて、所定のブロック(18)のさらなるサンプル(108、108')のための予測値118を導出することも可能である。
【0151】
所定のサンプル(104)は、行に沿って所定のブロック18の2つの辺に隣接するサンプル(112)からn個ごとの位置に配置されていてもよく、所定のサンプルは、列に沿って所定のブロック(18)の2つの辺に隣接するサンプル(112)からm個ごとの位置に配置されており、n,m>1である。いくつかの場合、n=mである(たとえば、
図7.2、
図7.3では、812においてALWIPによって直接得られ、灰色の四角を用いて示されるサンプル104、118'、118''は、ステップ813において後で得られるサンプル108、108'と、行および列に沿って互い違いになっている)。
【0152】
行(17c)および列(17a)のうちの少なくとも1つに沿って、たとえばダウンサンプリングおよび平均化(122)によって、サポート値を決定することを実行することが可能であってもよく、各サポート値に対して、複数の近傍サンプル内の近傍サンプルのグループ(120)が、それぞれのサポート値が決定される近傍サンプル(118)を含む。したがって、
図7.4では、ステップ813において、所定のサンプル118'''の値(ステップ812において以前に得られた)および近傍サンプル118をサポート値として使用することによって、サンプル119の値を取得することが可能である。
【0153】
複数の近傍サンプルは、所定のブロック(18)の2つの辺に沿って一次元に延び得る。複数の近傍サンプル(17)を1つまたは複数の連続する近傍サンプルのグループ(110)へとグループ化し、2つ以上の近傍サンプルを有する1つまたは複数の近傍サンプルのグループ(110)の各々に対してダウンサンプリングまたは平均化を実行することによって、低減(811)を実行することが可能であり得る。
【0154】
例では、線形変換またはアフィン線形変換は、Pred*Qred個またはPred*Q個の加重係数を含んでもよく、Predはサンプル値の縮小された集合内のサンプル値(102)の数であり、QredまたはQは所定のブロック(18)内の所定のサンプルの数である。少なくとも(1/4)Pred*Qred個または(1/4)Pred*Q個の加重係数は、0ではない加重値である。Pred*Qred個またはPred*Q個の加重係数は、QまたはQred個の所定のサンプルの各々に対して、それぞれの所定のサンプルに関するPred個の加重係数の系列を含んでもよく、系列は、所定のブロック(18)の所定のサンプルの中でラスター走査順序に従って一方が他方の下に並べられると、全方向に非線形のエンベロープを形成する。Pred*Q個またはPred*Qred個の加重係数は、どのような通常のマッピング規則を介しても互いに関連していないことがある。それぞれの所定のサンプルに関する加重係数の第1の系列と、それぞれの所定のサンプル以外の所定のサンプルに関する加重係数の第2の系列との相互相関の最大値、または後者の系列の逆にされたバージョンとの間の相互相関の最大値のうちでより大きい方の最大値の平均は、所定の閾値より低い。所定の閾値は、0.3[または場合によっては0.2もしくは0.1]であり得る。Pred個の近傍サンプル(17)は、所定のブロック(18)の2つの辺に沿って延びる一次元の経路に沿って位置していてもよく、QまたはQred個の所定のサンプルの各々に対して、それぞれの所定のサンプルに関するPred個の加重係数の系列は、所定の方向における一次元の経路を走査する方式で順序付けられる。
【0155】
6.1 方法および装置の説明
幅W(Nとも示される)および高さH(Mとも示される)の長方形ブロックのサンプルを予測するために、アフィン線形加重イントラ予測(ALWIP)は、ブロックの左のH個の再構築された近傍境界サンプルの1行と、ブロックの上のW個の再構築された近傍境界サンプルの1行とを、入力として取ってもよい。再構築されたサンプルが利用不可能である場合、それらは、従来のイントラ予測において行われるように生成されてもよい。
【0156】
予測信号(たとえば、完全なブロック18のための値)の生成は、以下の3つのステップの少なくともいくつかに基づき得る。
【0157】
1. 境界サンプル17の中から、平均化またはダウンサンプリングによって、サンプル102(たとえば、W=H=4の場合には4つのサンプルおよび/または他の場合には8つのサンプル)が抽出され得る(たとえば、ステップ811)。
【0158】
2. 行列ベクトルの乗算、続いてオフセットの加算が、平均化されたサンプル(またはダウンサンプリングから残ったサンプル)を入力として用いて行われ得る。結果は、元のブロック(たとえば、ステップ812)におけるサンプルのサブサンプリングされた集合に対する縮小された予測信号であり得る。
【0159】
3. 残りの位置における予測信号は、たとえば線形補間(たとえば、ステップ813)によって、サブサンプリングされた集合に対する予測信号から、たとえばアップサンプリングによって生成され得る。
【0160】
ステップ1(811)および/または3(813)により、行列ベクトル積の計算に必要な乗算の総数は、常に4*W*H以下であるようなものになり得る。その上、境界に対する平均化演算および縮小された予測信号の線形補間は、加算およびビットシフトのみを使用することによって行われる。言い換えると、例では、サンプル当たり最大で4回の乗算がALWIPモードのために必要とされる。
【0161】
いくつかの例では、予測信号を生成するために必要とされる行列(たとえば、17M)およびオフセットベクトル(たとえば、bk)は、たとえばデコーダおよびエンコーダの記憶ユニットに記憶され得る、行列の集合(たとえば、3つの集合)、たとえばS0、S1、S2から取られてもよい。
【0162】
いくつかの例では、集合S0はn0個(たとえば、n0=16またはn0=18または別の数)の行列
【0163】
【0164】
を含んでもよく(たとえば、それらからなっていてもよく)、
図7.1による技法を実行するために、これらの各々が、16行、4列、および各々サイズ16の18個のオフセットベクトル
【0165】
【0166】
を有し得る。この集合の行列およびオフセットベクトルは、サイズ4×4のブロック18のために使用される。境界ベクトルがP
red=4個のベクトルに縮小されると(
図7.1のステップ811のように)、予測されるべき4×4ブロック18のQ=16個のサンプルへと直接、サンプル102の縮小された集合のP
red=4個のサンプルをマッピングすることが可能である。
【0167】
いくつかの例では、集合S1はn1個(たとえば、n1=8またはn1=18または別の数)の行列
【0168】
【0169】
を含んでもよく(たとえば、それらからなっていてもよく)、
図7.2または
図7.3による技法を実行するために、これらの各々が、16行、8列、および各々サイズ16の18個のオフセットベクトル
【0170】
【0171】
を有し得る。この集合S
1の行列およびオフセットベクトルは、サイズ4×8、4×16、4×32、4×64、16×4、32×4、64×4、8×4、および8×8のブロックのために使用され得る。加えて、それは、max(W,H)>4かつmin(W,H)=4であるサイズW×Hのブロック、すなわち、サイズ4×16または16×4、4×32または32×4、および4×64または64×4のブロックのためにも使用され得る。16×8の行列は、ブロック18の縮小されたバージョンを指し、これは、
図7.2および
図7.3において得られるように、4×4ブロックである。
【0172】
追加または代替として、集合S2はn2個(たとえば、n2=6またはn2=18または別の数)の行列
【0173】
【0174】
を含んでもよく(たとえば、それらからなっていてもよく)、これらの各々が、64行、8列、および各々サイズ64の18個のオフセットベクトル
【0175】
【0176】
を有し得る。64×8の行列は、ブロック18の縮小されたバージョンを指し、これは、たとえば
図7.4において得られるような8×8ブロックである。この集合の行列およびオフセットベクトルは、サイズ8×16、8×32、8×64、16×8、16×16、16×32、16×64、32×8、32×16、32×32、32×64、64×8、64×16、64×32、64×64のブロックのために使用され得る。
【0177】
その集合の行列およびオフセットベクトルまたはこれらの行列およびオフセットベクトルの一部が、すべての他のブロック形状のために使用され得る。
【0178】
6.2 境界の平均化またはダウンサンプリング
ここで、ステップ811に関する特徴が提供される。
【0179】
上述のように、境界サンプル(17a、17c)は、(たとえば、P個のサンプルからPred<P個のサンプルに)平均化および/またはダウンサンプリングされ得る。
【0180】
第1のステップにおいて、入力境界bdrytop(たとえば、17c)およびbdryleft(たとえば、17a)が、縮小された集合102に到達するためにより小さい境界
【0181】
【0182】
および
【0183】
【0184】
に縮小され得る。ここで、
【0185】
【0186】
と
【0187】
【0188】
はともに、4×4ブロックの場合には2個のサンプルからなり、他の場合にはともに4個のサンプルからなる。
【0189】
4×4ブロックの場合、
【0190】
【0191】
を定義し、
【0192】
【0193】
を同様に定義することが可能である。したがって、
【0194】
【0195】
、
【0196】
【0197】
、
【0198】
【0199】
、
【0200】
【0201】
は、たとえばビットシフト演算を使用して得られた平均値である。
【0202】
すべての他の場合(たとえば、幅または高さのいずれかが4とは異なるブロックに対する)において、ブロック幅WはW=4*2kとして与えられ、0≦i<4に対して、
【0203】
【0204】
が定義され、同様に
【0205】
【0206】
が定義される。
【0207】
さらに他の場合には、より少ない数のサンプルに到達するために、(たとえば、境界サンプルのグループから1つの特定の境界サンプルを選択することによって)境界をダウンサンプリングすることが可能である。たとえば、
【0208】
【0209】
は、bdrytop[0]およびbdrytop[1]の中から選ばれてもよく、
【0210】
【0211】
は、bdrytop[2]およびbdrytop[3]の中から選ばれてもよい。同様に
【0212】
【0213】
を定義することも可能である。
【0214】
2つの縮小された境界
【0215】
【0216】
および
【0217】
【0218】
は、17Pとも示される、縮小された境界ベクトルbdry
red(縮小された集合102に関連付けられる)に連結され得る。したがって、縮小された境界ベクトルbdry
redは、形状4×4のブロックに対してはサイズが4(P
red=4)であり(
図7.1の例)、すべての他の形状のブロックに対してはサイズが8(P
red=8)であり得る(
図7.2~
図7.4の例)。
【0219】
ここで、mode<18(または行列の集合の中の行列の数)である場合、
【0220】
【0221】
を定義することが可能である。
【0222】
mode-17の転置されたモードに相当する、mode≧18である場合、
【0223】
【0224】
を定義することが可能である。
【0225】
したがって、特定の状態(1つの状態:mode<18、1つの他の状態:mode≧18)に従って、異なる走査順序(たとえば、1つの走査順序:
【0226】
【0227】
、1つの他の走査順序:
【0228】
【0229】
)に沿って出力ベクトルの予測された値を分布させることが可能である。
【0230】
他の戦略が実行されてもよい。他の例では、モードインデックス「mode」は、必ずしも0から35の範囲にない(他の範囲が定義され得る)。さらに、3つの集合S0、S1、S2の各々が18個の行列を有することは必要ではない(したがって、mode≧18のような表現の代わりに、mode≧n0,n1,n2であることが可能であり、これらはそれぞれ、行列の各集合S0、S1、S2に対する行列の数である)。さらに、集合は、各々異なる数の行列を有し得る(たとえば、S0が16個の行列を有し、S1が8個の行列を有し、S2が6個の行列を有するということがあり得る)。
【0231】
モードおよび転置された情報は、1つの統合されたモードインデックス「mode」として必ずしも記憶および/または送信されない。いくつかの例では、転置されたフラグおよび行列インデックス(S0に対して0~15、S1に対して0~7、およびS2に対して0~5)として、明示的にシグナリングする可能性がある。
【0232】
いくつかの場合、転置されたフラグおよび行列インデックスの組合せは、集合インデックスとして解釈され得る。たとえば、転置されたフラグとして動作する1つのビットと、行列インデックスを示すいくつかのビットがあってもよく、まとめて「集合インデックス」として示される。
【0233】
5.4 行列ベクトル乗算による縮小された予測信号の生成
ここで、ステップ812に関する特徴が提供される。
【0234】
縮小された入力ベクトルbdryred(境界ベクトル17P)の中から、縮小された予測信号predredを生成し得る。後者の信号は、Wredおよび高さHredを伴うダウンサンプリングされたブロックに対する信号であり得る。ここで、WredおよびHredは次のように定義され得る。
max(W,H)≦8の場合、Wred=4、Hred=4
それ以外の場合、Wred=min(W,8)、Hred=min(H,8)
【0235】
縮小された予測信号predredは、行列ベクトル積を計算し、オフセットを加算することによって計算され得る。
predred=A・bdryred+b
【0236】
ここで、Aは、Wred*Hred行と、W=H=4である場合には4列、およびすべての他の場合には8列を有し得る行列(たとえば、予測行列17M)であり、bはサイズWred*Hredであり得るベクトルである。
【0237】
W=H=4である場合、Aは4列および16行を有し得るので、その場合、predredを計算するために、サンプル当たり4回の乗算が必要とされ得る。すべての他の場合には、Aは8列を有してもよく、これらの場合には、8*Wred*Hred≦4*W*Hであり、すなわち、これらの場合にはまた、predredを計算するためにサンプル当たり最大で4回の乗算が必要とされることが、確認され得る。
【0238】
行列Aおよびベクトルbは、次のように集合S0、S1、S2のうちの1つから取られてもよい。W=H=4の場合にはidx(W,H)=0と設定し、max(W,H)=8の場合にはidx(W,H)=1と設定し、すべての他の場合にはidx(W,H)=2と設定することによって、インデックスidx=idx(W,H)を定義する。その上、mode<18の場合にはm=modeとし、それ以外の場合にはm=mode-17とすることができる。次いで、idx≦1またはidx=2かつmin(W,H)>4である場合、
【0239】
【0240】
および
【0241】
【0242】
とすることができる。idx=2かつmin(W,H)=4である場合、Aを、
【0243】
【0244】
の各行を除外することにより生じる行列とし、それらの行は、W=4の場合には、ダウンサンプリングされたブロックにおける奇数番目のx座標に対応し、またはH=4の場合には、ダウンサンプリングされたブロックにおける奇数番目のy座標に対応する。mode≧18である場合、縮小された予測信号を転置された信号により置き換える。代替の例では、異なる戦略が実行されてもよい。たとえば、より大きい行列のサイズを減らす(「除外する」)のではなく、Wred=4かつHred=4であるS1のより小さい行列(idx=1)が使用される。すなわち、そのようなブロックは今や、S2ではなくS1に割り当てられる。
【0245】
他の戦略が実行されてもよい。他の例では、モードインデックス「mode」は、必ずしも0から35の範囲にない(他の範囲が定義され得る)。さらに、3つの集合S0、S1、S2の各々が18個の行列を有することは必要ではない(したがって、mode<18のような表現の代わりに、mode<n0,n1,n2であることが可能であり、これらはそれぞれ、行列の各集合S0、S1、S2に対する行列の数である)。さらに、集合は、各々異なる数の行列を有し得る(たとえば、S0が16個の行列を有し、S1が8個の行列を有し、S2が6個の行列を有するということがあり得る)。
【0246】
6.4 最終的な予測信号を生成するための線形補間
ここで、ステップ812に関する特徴が提供される。
【0247】
サブサンプリングされた予測信号の補間、大きいブロック上で、平均化された境界の第2のバージョンが必要とされ得る。すなわち、min(W,H)>8かつW≧Hである場合、W=8*2lと書かれ、0≦i<8に対して、
【0248】
【0249】
を定義する。
【0250】
min(W,H)>8かつH>Wである場合、同様に
【0251】
【0252】
を定義する。
【0253】
追加または代替として、「ハードダウンサンプリング」を有することが可能であり、ハードダウンサンプリングにおいて、
【0254】
【0255】
は
【0256】
【0257】
に等しい。
【0258】
また、
【0259】
【0260】
が同様に定義され得る。
【0261】
pred
redの生成において除外されたサンプル位置において、最終的な予測信号は、pred
redから線形補間により生じ得る(たとえば、
図7.2から
図7.4の例のステップ813)。いくつかの例では、W=H=4である場合(たとえば、
図7.1の例)、この線形補間は不要であり得る。
【0262】
線形補間は、次のように与えられ得る(それでも他の例が可能である)。W≧Hであると仮定される。そして、H>Hredである場合、predredの垂直方向のアップサンプリングが実行され得る。その場合、predredは、次のように上に1行だけ拡張され得る。W=8である場合、predredは、幅Wred=4を有してもよく、たとえば上記において定義されたように、平均化された境界信号
【0263】
【0264】
により上に拡張されてもよい。W>8である場合、predredは幅がWred=8であり、たとえば上記において定義されたように、平均化された境界信号
【0265】
【0266】
により上に拡張される。predredの最初の行に対して、predred[x][-1]を書き込むことができる。そして、幅Wredおよび高さ2*Hredのブロック上の信号
【0267】
【0268】
は、
【0269】
【0270】
として与えられてもよく、0≦x<Wredであり、0≦y<Hredである。後者のプロセスは、2k*Hred=Hまでk回行われ得る。したがって、H=8またはH=16である場合、それは多くても一度行われ得る。H=32である場合、それは2回行われ得る。H=64である場合、それは3回行われ得る。次に、水平方向のアップサンプリング演算が、垂直方向のアップサンプリングの結果に適用され得る。後者のアップサンプリング演算は、予測信号の左の完全な境界を使用し得る。最後に、H>Wである場合、水平方向にまずアップサンプリングし(必要である場合)、次いで垂直方向にアップサンプリングすることによって、同様に進行することができる。
【0271】
これは、第1の補間のための縮小された境界サンプル(水平方向または垂直方向)および第2の補間のための元の境界サンプル(垂直方向または水平方向)を使用した補間の例である。ブロックサイズに応じて、第2の補間だけが必要とされるか、または補間は必要とされない。水平補間と垂直補間の両方が必要とされる場合、順序はブロックの幅および高さに依存する。
【0272】
しかしながら、異なる技法が実施されてもよく、たとえば、第1の補間と第2の補間の両方のために元の境界サンプルが使用されてもよく、順序が固定されていてもよく、たとえばまず水平方向、次いで垂直方向(他の場合には、まず垂直方向、次いで水平方向)であってもよい。
【0273】
したがって、補間順序(水平/垂直)および縮小された/元の境界サンプルの使用は、様々であり得る。
【0274】
6.5 ALWIPプロセス全体の例の説明
図7.1~
図7.4の異なる形状に対する、行列ベクトル乗算および線形補間を平均化するプロセス全体が示される。残りの形状は、図示される事例のうちの1つのように扱われることに留意されたい。
【0275】
1. 4×4ブロックを仮定すると、ALWIPは、
図7.1の技法を使用することによって、境界の各軸に沿った2つの平均をとり得る。得られた4つの入力サンプルが、行列ベクトル乗算に入る。行列は集合S
0から取られる。オフセットを加算した後、これは、16個の最終的な予測サンプルを生み出し得る。線形補間は、予測信号を生成するために必要ではない。したがって、サンプル当たり全体で(4*16)/(4*4)=4回の乗算が実行される。たとえば、
図7.1を参照されたい。
【0276】
2. 8×8ブロックを仮定すると、ALWIPは、境界の各軸に沿って4つの平均をとり得る。得られた8つの入力サンプルが、
図7.2の技法を使用することによって、行列ベクトル乗算に入る。行列は集合S
1から取られる。これは、予測ブロックの奇数番目の位置に16個のサンプルを生み出す。したがって、サンプル当たり全体で(8*16)/(8*8)=2回の乗算が実行される。オフセットを加算した後、これらのサンプルは、たとえば上の境界を使用することによって垂直方向に、および左の境界を使用することによって水平方向に補間され得る。たとえば、
図7.2を参照されたい。
【0277】
3. 8×4ブロックを仮定すると、ALWIPは、
図7.3の技法を使用することによって、境界の水平軸および左の境界上の4つの元の境界値に沿って4つの平均をとり得る。得られた8つの入力サンプルが行列ベクトル乗算に入る。行列は集合S
1から取られる。これは、予測ブロックの奇数番目の水平方向の位置および各々の垂直方向の位置に16個のサンプルを生み出す。したがって、サンプル当たり全体で(8*16)/(8*4)=4回の乗算が実行される。オフセットを加算した後、これらのサンプルは、たとえば左の境界を使用することによって水平方向に補間され得る。たとえば、
図7.3を参照されたい。
【0278】
それに従って、転置された場合が扱われる。
【0279】
4. 16×16ブロックを仮定すると、ALWIPは、境界の各軸に沿って4つの平均をとり得る。
図7.2の技法を使用することによって、得られた8つの入力サンプルが行列ベクトル乗算に入る。行列は集合S
2から取られる。これは、予測ブロックの奇数番目の位置に64個のサンプルを生み出す。したがって、サンプル当たり全体で(8*64)/(16*16)=2回の乗算が実行される。オフセットを加算した後、これらのサンプルは、たとえば、上の境界を使用することによって垂直方向に、および左の境界を使用することによって水平方向に補間される。たとえば、
図7.2を参照されたい。たとえば、
図7.4を参照されたい。
【0280】
より大きい形状に対して、手順は基本的に同じであってもよく、サンプル当たりの乗算の回数が2未満であることを確認するのは簡単である。
【0281】
W×8ブロックに対して、奇数番目の水平方向の位置および各々の垂直方向の位置においてサンプルが与えられるので、水平方向の補間だけが必要である。したがって、これらの場合、サンプル当たり最大で(8*64)/(16*8)=4回の乗算が実行される。
【0282】
最後に、W>8であるW×4ブロックに対して、Akを、ダウンサンプリングされたブロックの水平方向の軸に沿った奇数番目のエントリに相当する各行を除外することにより生じる行列とする。したがって、出力サイズは32であってもよく、やはり、水平方向の補間のみが実行され続ける。サンプル当たり最大で(8*32)/(16*4)=4回の乗算が実行され得る。
【0283】
それに従って、転置された場合が扱われ得る。
【0284】
6.6 必要なパラメータの数および複雑さの評価
すべての可能な提案されるイントラ予測モードに必要なパラメータは、集合S0、S1、S2に属する行列およびオフセットベクトルに含まれ得る。すべての行列係数およびオフセットベクトルは、10ビット値として記憶され得る。したがって、上の説明によれば、各々10ビットの精度で、合計14400個のパラメータが、提案された方法に必要とされ得る。これは、0.018メガバイトのメモリに相当する。現在は、標準的な4:2:0のクロマサブサンプリングにおけるサイズ128×128のCTUは、各々10ビットの24576個の値からなる。したがって、提案されたイントラ予測ツールのメモリ要件は、最後の会議において採用された現在のピクチャ参照ツールのメモリ要件を超えない。また、従来のイントラ予測モードは、分数角度位置を伴うAngular予測モードに対するPDPCツールまたは4タップの補間フィルタにより、サンプル当たり4回の乗算を必要とすることが指摘される。したがって、動作の複雑さに関して、提案される方法は従来のイントラ予測モードを超えない。
【0285】
6.7 提案されるイントラ予測モードのシグナリング
ルマブロックに対して、たとえば35個のALWIPモードが提案される(他の数のモードが使用されてもよい)。イントラモードの各コーディング単位(CU)に対して、ALWIPモードが対応する予測単位(PU)上で適用されるべきかどうかを示すフラグがビットストリームにおいて送信される。後者のインデックスのシグナリングは、最初のCE試験と同じ方法でMRLと調和し得る。ALWIPモードが適用されるべきである場合、ALWIPモードのインデックスpredmodeは、3つのMPMを伴うMPMリストを使用してシグナリングされ得る。
【0286】
ここで、MPMの導出は、以下のように上および左のPUのイントラモードを使用して実行され得る。各々の従来のイントラ予測モードpredmodeAngularにALWIPモードを割り当て得るテーブル、たとえば、3つの固定されたテーブルmap_angular_to_alwipidx, idx∈{0,1,2}があり得る。
predmodeALWIP=map_angular_to_alwipidx[predmodeAngular]
【0287】
幅Wおよび高さHの各PUに対して、上のセクション4のように3つの集合のいずれからALWIPパラメータが取られるべきであるかを示すインデックス
idx(PU)=idx(W,H)∈{0,1,2}
を定義する。上の予測単位PUaboveが利用可能であり、現在のPUと同じCTUに属し、イントラモードにある場合、idx(PU)=idx(PUabove)である場合、およびALWIPモード
【0288】
【0289】
を用いてPUaboveにALWIPが適用される場合、
【0290】
【0291】
である。
【0292】
上のPUが利用可能であり、現在のPUと同じCTUに属し、イントラモードにある場合、および従来のイントラ予測モード
【0293】
【0294】
が上のPUで適用される場合、
【0295】
【0296】
である。
【0297】
すべての他の場合には、
【0298】
【0299】
であり、これは、このモードが利用不可能であることを意味する。同じように、しかし左のPUが現在のPUと同じCTUに属していなければならないという制約なしで、モード
【0300】
【0301】
が導かれる。
【0302】
最後に、3つの固定されたデフォルトリストlistidx, idx∈{0,1,2}が与えられ、これらの各々が3つの別個のALWIPモードを含む。デフォルトリストlistidx(PU)およびモード
【0303】
【0304】
および
【0305】
【0306】
から、デフォルト値で-1を置き換え、ならびに反復をなくすことによって、3つの別々のMPMを構築する。
【0307】
本明細書において説明される実施形態は、提案されるイントラ予測モードの上述のシグナリングに限定されない。代替の実施形態によれば、MIP(ALWIP)のために、MPMおよび/またはマッピングテーブルは使用されない。
【0308】
6.8 従来のルマおよびクロマイントラ予測モードのための適応されたMPMリストの導出
以下のように従来のイントラ予測モードのMPMベースのコーディングと、提案されたALWIPモードは調和し得る。従来のイントラ予測モードのためのルマおよびクロマMPMリスト導出プロセスは、固定されたテーブルmap_alwip_to_angularidx, idx∈{0,1,2}を使用してもよく、これは、所与のPU上のALWIPモードpredmodeALWIPを従来のイントラ予測モードの1つにマッピングする。
predmodeAngular=map_alwip_to_angularidx(PU)[predmodeALWIP]
【0309】
ルマMPMリストの導出のために、ALWIPモードpredmodeALWIPを使用する近傍ルマブロックに遭遇するときは常に、このブロックは、従来のイントラ予測モードpredmodeAngularを使用していたかのように扱われ得る。クロマMPMリストの導出のために、現在のルマブロックがALWIPモードを使用するときは常に、ALWIPモードを従来のイントラ予測モードに変換するために、同じマッピングが使用され得る。
【0310】
ALWIPモードは、MPMおよび/またはマッピングテーブルの使用なしでも、従来のイントラ予測モードと調和し得ることが明らかである。たとえば、クロマブロックに対して、現在のルマブロックがALWIPモードを使用するときは常に、ALWIPモードがPlanarイントラ予測モードにマッピングされることが可能である。
【0311】
7. 実装が効率的な実施形態
上の例は、本明細書において以下で説明される実施形態をさらに拡張するための基礎になり得るので、それを簡単に要約しよう。
【0312】
ピクチャ10の所定のブロック18を予測するために、複数の近傍サンプル17a、17cが使用される。
【0313】
複数の近傍サンプルの、平均化による縮小100が、複数の近傍サンプルと比較してサンプルの数が少ないサンプル値の縮小された集合102を取得するために行われている。この縮小は、本明細書の実施形態では任意選択であり、以下で言及されるいわゆるサンプル値を生み出す。所定のブロックの所定のサンプル104のための予測された値を取得するために、サンプル値の縮小された集合が、線形変換またはアフィン線形変換19を受ける。機械学習(ML)によって得られ、効率的に実行されるはずであるのは、行列Aおよびオフセットベクトルbを使用して以後示されるこの変換である。
【0314】
補間によって、所定のブロックのさらなるサンプル108のための予測値が、所定のサンプルのための予測された値および複数の近傍サンプルに基づいて導出される。理論的には、アフィン/線形変換の結果は、ブロック18のすべてのサンプルが代替の実施形態に従って補間により取得され得るように、ブロック18の非フルペルサンプル位置と関連付けられ得ると言えるはずである。補間がまったく必要ではないこともある。
【0315】
複数の近傍サンプルが、所定のブロックの2つの辺に沿って1次元に延びてもよく、所定のサンプルは行および列に並べられ、行および列の少なくとも1つに沿って、所定のサンプルは、所定のブロックの2つの辺に隣接する所定のサンプルであるサンプル(112)からn個ごとの位置に配置されていてもよい。複数の近傍サンプルに基づいて、行および列の少なくとも1つの各々に対して、複数の近傍の位置のうちの1つ(118)のためのサポート値が決定されてもよく、これは、行および列の少なくとも1つのそれぞれ1つに揃えられ、補間によって、所定のブロックのさらなるサンプル108のための予測値が、所定のサンプルのための予測された値、ならびに行および列の少なくとも1つに揃えられている近傍サンプルのためのサポート値に基づいて導出されてもよい。所定のサンプルは、行に沿った所定のブロックの2つの辺に隣接する所定のサンプルであるサンプル112からn個ごとの位置に配置されていてもよく、所定のサンプルは、列に沿った所定のブロックの2つの辺に隣接する所定のサンプルであるサンプル112からm個ごとの位置に配置されていてもよくn,m>1である。n=mでもあり得る。行および列のうちの少なくとも1つに沿って、サポート値の決定は、各サポート値に対して、それぞれのサポート値が決定される近傍サンプル118を含む複数の近傍サンプル内の近傍サンプルのグループ120を平均化する(122)ことによって行われ得る。複数の近傍サンプルは、所定のブロックの2つの辺に沿って1次元に延びてもよく、1つまたは複数の連続する近傍サンプルのグループ110へと複数の近傍サンプルをグループ化することによって、および、2つより多くの近傍サンプルを有する1つまたは複数の近傍サンプルのグループの各々に対する平均化を実行することによって、縮小が行われ得る。
【0316】
所定のブロックに対して、データストリームにおいて予測残差が送信され得る。それは、デコーダにおいてそれから導出されてもよく、所定のブロックは、予測残差および所定のサンプルのための予測された値を使用して再構築されてもよい。エンコーダにおいて、予測残差は、エンコーダにおいてデータストリームへと符号化される。
【0317】
ピクチャは、異なるブロックサイズの複数のブロックへと再分割されてもよく、これらの複数のブロックは所定のブロックを含む。そして、所定のブロックのために選択される線形変換またはアフィン線形変換が、所定のブロックの幅Wおよび高さHが幅/高さのペアの第1の集合内にある限り、線形変換またはアフィン線形変換の第1の集合から選択されるように、かつ、所定のブロックの幅Wおよび高さHが幅/高さのペアの第1の集合と分離した幅/高さのペアの第2の集合内にある限り、線形変換またはアフィン線形変換の第2の集合から選択されるように、所定のブロックの幅Wおよび高さHに応じて、ブロック18のための線形変換またはアフィン線形変換が選択されるということがあり得る。再び、後で、アフィン/線形変換が他のパラメータ、すなわちCの重み、および任意選択でオフセットとスケールパラメータにより表現されることが明らかになる。
【0318】
デコーダおよびエンコーダは、所定のブロックを含む、異なるブロックサイズの複数のブロックへとピクチャを再分割し、所定のブロックの幅Wおよび高さHに応じて線形変換またはアフィン線形変換を選択するように構成されてもよく、それにより、所定のブロックのために選択される線形変換またはアフィン線形変換は、
所定のブロックの幅Wおよび高さHが幅/高さのペアの第1の集合内にある限り、線形変換またはアフィン線形変換の第1の集合、
所定のブロックの幅Wおよび高さHが幅/高さのペアの第1の集合と分離した幅/高さのペアの第2の集合内にある限り、線形変換またはアフィン線形変換の第2の集合、ならびに
所定のブロックの幅Wおよび高さHが、幅/高さのペアの第1および第2の集合と分離した1つまたは複数の幅/高さのペアの第3の集合内にある限り、線形変換またはアフィン線形変換の第3の集合、
から選択される。
【0319】
1つまたは複数の幅/高さのペアの第3の集合は単に、1つの幅/高さのペアW'、H'を含み、線形変換またはアフィン線形変換の第1の集合内の各線形変換またはアフィン線形変換は、サンプル位置のW'×H'のアレイのためのW'*H'個の予測された値にN'個のサンプル値を変換するためのものである。
【0320】
幅/高さのペアの第1の集合と第2の集合の各々が、第1の幅/高さのペアWp、Hpを含んでもよく、WpはHpおよび第2の幅/高さのペアWq、Hqに等しくなく、Hq=Wpであり、Wq=Hpである。
【0321】
幅/高さのペアの第1の集合および第2の集合の各々は追加で、第3の幅/高さのペアWp、Hpを含んでもよく、WpはHpに等しく、Hp>Hqである。
【0322】
所定のブロックに対して、集合インデックスがデータストリームにおいて送信されてもよく、これは、線形変換またはアフィン線形変換の所定の集合から、ブロック18に対して選択されるべき線形変換またはアフィン線形変換を示す。
【0323】
複数の近傍サンプルは、所定のブロックの2つの辺に沿って一次元に延びてもよく、第1のグループからの第1のサンプル値および第2のグループのための第2のサンプル値を取得するために、所定のブロックの第1の辺に隣接する複数の隣接サンプルの第1の部分集合に対して、1つまたは複数の連続する隣接サンプルの第1のグループ110へと第1の部分集合をグループ化し、所定のブロックの第2の辺に隣接する複数の近傍サンプルの第2の部分集合に対して、1つまたは複数の連続する近傍サンプルの第2のグループ110へと第2の部分集合をグループ化し、2つより多くの近傍サンプルを有する1つまたは複数の近傍サンプルの第1のグループおよび第2のグループの各々に対して平均化を実行することによって、縮小が行われてもよい。次いで、集合インデックスの2つの異なる状態が、線形変換またはアフィン線形変換の所定の集合の、線形変換またはアフィン線形変換のうちの1つの選択をもたらすように、線形変換またはアフィン線形変換の所定の集合の中から、集合インデックスに応じて、線形変換またはアフィン線形変換が選択されてもよく、集合インデックスが第1のベクトルの形式の2つの異なる状態のうちの第1の状態をとる場合、予測された値の出力ベクトルを生み出し、所定のブロックの所定のサンプルへと第1の走査順序に沿って出力ベクトルの予測された値を分散させるために、および、集合インデックスが第2のベクトルの形式の2つの異なる状態のうちの第2の状態をとり、第1のベクトルの中の第1のサンプル値のうちの1つにより埋められる成分が第2のベクトルの中の第2のサンプル値のうちの1つにより埋められるように、かつ第1のベクトルの中の第2のサンプル値のうちの1つにより埋められる成分が第2のベクトルの中の第1のサンプル値のうちの1つにより埋められるように、第1のベクトルおよび第2のベクトルが異なる場合、予測された値の出力ベクトルを生み出し、第1の走査順序に対して転置された所定のブロックの所定のサンプルへと第2の走査順序に沿って出力ベクトルの予測された値を分散させるために、サンプル値の縮小された集合が、所定の線形変換またはアフィン線形変換を受けてもよい。
【0324】
線形変換またはアフィン線形変換の第1の集合内の各線形変換またはアフィン線形変換は、サンプル位置のw1×h1アレイのためのw1*h1個の予測された値にN1個のサンプル値を変換するためのものであってもよく、線形変換またはアフィン線形変換の第2の集合内の各線形変換またはアフィン線形変換は、サンプル位置のw2×h2アレイのためのw2*h2個の予測された値にN2個のサンプル値を変換するためのものであり、幅/高さのペアの第1の集合のうちの第1の所定のペアに対して、w1が第1の所定の幅/高さのペアの幅を超えることがあり、または、h1が第1の所定の幅/高さのペアの高さを超えることがあり、幅/高さのペアの第1の集合のうちの第2の所定のペアに対して、w1が第2の所定の幅/高さペアの幅を超えることも、h1が第2の所定の幅/高さのペアの高さを超えることもないことがある。所定のブロックが第1の所定の幅/高さのペアのものである場合、および所定のブロックが第2の所定の幅/高さのペアのものである場合、サンプル値の縮小された集合102がN1個のサンプル値を有するように、サンプル値の縮小された集合(102)を取得するための複数の近傍サンプルの平均化による縮小(100)が次いで行われてもよく、サンプル値の縮小された集合に選択された線形変換またはアフィン線形変換を適用することは、w1がある幅/高さのペアの幅を超える場合には幅の次元に沿った、または、h1がある幅/高さのペアの高さを超え、所定のブロックが第1の所定の幅/高さのペアのものである場合には高さの次元に沿った、サンプル位置のw1×h1アレイのサブサンプリングに関する選択された線形変換またはアフィン線形変換の第1の下位部分のみを使用することによって実行されてもよく、所定のブロックが第2の所定の幅/高さのペアのものである場合には、選択された線形変換またはアフィン線形変換を完全に使用することによって実行されてもよい。
【0325】
線形変換またはアフィン線形変換の第1の集合内の各線形変換またはアフィン線形変換は、w1=h1であるサンプル位置のw1×h1アレイのためのw1*h1個の予測された値にN1個のサンプル値を変換するためのものであってもよく、線形変換またはアフィン線形変換の第2の集合内の各線形変換またはアフィン線形変換は、w2=h2であるサンプル位置のw2×h2アレイのためのw2*h2個の予測された値にN2個のサンプル値を変換するためのものである。
【0326】
上述の実施形態のすべてが、本明細書において以下で説明される実施形態の基礎となり得るという点で、例示的なものにすぎない。すなわち、上記の概念および詳細は、以下の実施形態を理解するのに役立ち、本明細書において以下で説明される実施形態のあり得る拡張および修正の蓄積となるであろう。具体的には、近傍サンプルの平均化、近傍サンプルが参照サンプルとして使用されるという事実などの、上述の詳細の多くが任意選択である。
【0327】
より一般的には、本明細書において説明される実施形態は、長方形ブロック上の予測信号が、すでに再構築されているサンプルから生成されること、たとえば、長方形ブロック上のイントラ予測信号が、そのブロックの左および上の近傍のすでに再構築されたサンプルから生成されることを仮定する。予測信号の生成は以下のステップに基づく。
【0328】
1. ここで境界サンプルと呼ばれる参照サンプルの中から、しかし、他の箇所に位置する参照サンプルに説明を流用する可能性を排除しながら、平均化によってサンプルが抽出され得る。ここで、平均化は、ブロックの左と上の両方の境界サンプルに対して、または、2つの辺のうちの1つの境界サンプルのみに対してのいずれかで行われる。平均化がある辺で行われない場合、その辺のサンプルは変更されないままである。
【0329】
2. 行列ベクトル乗算と、任意選択でそれに続いてオフセットの加算とが行われ、行列ベクトル乗算の入力ベクトルは、平均化が左側だけに適用された場合の、ブロックの左の平均化された境界サンプルとブロックの上の元の境界サンプルの連結、または、平均化が上側だけに適用された場合の、ブロックの左の元の境界サンプルとブロックの上の平均化された境界サンプルの連結、または、平均化がブロックの両側に適用された場合の、ブロックの左の平均化された境界サンプルとブロックの上の平均化された境界サンプルの連結のいずれかである。再び、平均化がまったく使用されない形態などの、代替形態が存在する。
【0330】
3. 行列ベクトル乗算および任意選択のオフセット加算の結果は任意選択で、元のブロックの中のサンプルのサブサンプリングされた集合上の縮小された予測信号であり得る。残りの位置における予測信号は、線形補間によって、サブサンプリングされた集合上の予測信号から生成され得る。
【0331】
ステップ2における行列ベクトル積の計算は、好ましくは、整数の計算で行われるべきである。したがって、x=(x1,…xn)が行列ベクトル積の入力を示す場合、すなわち、xがブロックの左および上の(平均化された)境界サンプルの連結を示す場合、xの中から、ステップ2において計算された(縮小された)予測信号が、ビットシフト、オフセットベクトルの加算、および整数との乗算のみを使用して計算されるはずである。理想的には、ステップ2における予測信号はAx+bとして与えられ、ここで、bは0であり得るオフセットベクトルであり、Aは何らかの機械学習ベースの訓練アルゴリズムにより導出される。しかしながら、そのような訓練アルゴリズムは通常、浮動小数点精度で与えられる行列A=Afloatのみをもたらす。したがって、表現Afloatxがこれらの整数演算を使用して良好に近似されるように前述の意味で整数演算を規定するという問題に直面する。ここで、これらの整数演算は、ベクトルxの均一な分布を仮定して表現Afloatxを近似するようには必ずしも選ばれず、表現Afloatxが近似されるべき対象である入力ベクトルxが自然なビデオ信号からの(平均化された)境界サンプルであり、xの成分xi間に何らかの相関が予想され得ることを通常は考慮することに触れておくことは重要である。
【0332】
図8は、改善されたALWIP予測を示す。所定のブロックのサンプルは、何らかの機械学習ベースの訓練アルゴリズムにより導出される行列A1100とサンプル値ベクトルx400との第1の行列ベクトル積に基づいて予測され得る。任意選択で、オフセットb1110が加算され得る。この第1の行列ベクトル積の整数近似または固定小数点近似を達成するために、サンプル値ベクトルは、さらなるベクトル402を決定するために、正則線形変換403を受けることができる。さらなる行列B1200とさらなるベクトル402との間の第2の行列ベクトル積は、第1の行列ベクトル積の結果に等しくてもよい。
【0333】
さらなるベクトル402の特徴により、第2の行列ベクトル積は、所定の予測行列C405と、さらなるベクトル402にさらなるオフセット408を足したものとの行列ベクトル積404により近似される整数であり得る。さらなるベクトル402およびさらなるオフセット408は、整数値または固定小数点値からなり得る。さらなるオフセットのすべての成分が、たとえば同じである。所定の予測行列405は、量子化された行列、または量子化されることになる行列であり得る。所定の予測行列405とさらなるベクトル402との間の行列ベクトル積404の結果は、予測ベクトル406として理解され得る。
【0334】
以下では、この整数近似に関するさらなる詳細が与えられる。
【0335】
例Iによるあり得る解決策:平均値の減算および加算
上記のシナリオにおいて使用可能な表現Afloatxの整数近似の1つのあり得る組み込み方は、x、すなわちサンプル値ベクトル400のi0番目の成分
【0336】
【0337】
、すなわち所定の成分1500を、xの成分の平均値mean(x)、すなわち所定の値1400で置き換えて、この平均値をすべての他の成分から差し引くことである。言い換えると、
図9aに示されるような正則線形変換403は、さらなるベクトル402の所定の成分1500がaになり、所定の成分1500を除くさらなるベクトル402の他の成分の各々が、サンプル値ベクトル400の対応する成分からaを引いたものに等しいように定義され、aは所定の値1400であり、これは、たとえば、サンプル値ベクトル400の成分の算術平均または加重平均などの、平均である。入力に対するこの演算は、xの次元nが2のべき乗である場合には特に、明らかな整数の実装形態を有する、正則変換T403によって与えられる。
【0338】
A
float=(A
floatT
-1)Tであるので、入力xに対してそのような変換を行う場合、行列ベクトル積Byの整数近似を見つけなければならず、ここでB=(A
floatT
-1)であり、y=Txである。行列ベクトル積A
floatxは長方形ブロック、すなわち所定のブロックについての予測を表すので、および、x400はそのブロックの(たとえば、平均化された)境界サンプルに含まれるので、xのすべてのサンプル値が等しい場合、すなわちすべてのiに対してx
i=mean(x)である場合、予測信号A
floatxの中の各サンプル値はmean(x)に近く、またはmean(x)に厳密に等しいはずであると予想すべきである。これは、Bのi
0番目の列、すなわち所定の成分に対応する列が、1のみからなる列に非常に近く、またはそれに等しいと予想すべきであることを意味する。したがって、M(i
0)、すなわち整数行列1300が、そのi
0番目の列が1からなり、他の列のすべてが0であるような行列である場合、By=Cy+M(i
0)yと書かれ、C=B-M(i
0)であり、C、すなわち所定の予測行列405のi
0番目の列412は、
図9bに示されるように、比較的小さいエントリを有し、または0であると予想すべきである。その上、xの成分は相関しているので、各i≠i
0に対して、yのi番目の成分y
i=x
i-mean(x)はしばしば、xのi番目の成分よりはるかに小さい絶対値を有すると予想することができる。行列M(i
0)1300は整数行列であるので、Byの整数近似は、Cyの整数近似が与えられれば達成され、上記の議論により、適切な方法でC405の各エントリを量子化することにより生じる量子化誤差は、A
floatxのそれぞれのByの得られる量子化における誤差にわずかに影響するだけであるはずであると予想することができる。
【0339】
所定の値1400は、必ずしも平均値mean(x)ではない。本明細書において説明される表現Afloatxの整数近似は、所定の値1400の以下の代替の定義を用いても達成され得る。
【0340】
表現Afloatxの整数近似の別のあり得る組み込み方において、xのi0番目の成分
【0341】
【0342】
は変更されないままであり、同じ値
【0343】
【0344】
がすべての他の成分から差し引かれる。すなわち、各々のi≠i0に対して、
【0345】
【0346】
および
【0347】
【0348】
である。言い換えると、所定の値1400は、所定の成分1500に対応するサンプル値ベクトル400の成分であり得る。
【0349】
あるいは、所定の値1400は、デフォルト値、またはピクチャがコーディングされるデータストリームにおいてシグナリングされる値である。
【0350】
所定の値1400は、たとえば2bitdepth-1に等しい。この場合、さらなるベクトル402は、y0=2bitdepth-1によって定義されてもよく、i>0に対してyi=xi-x0である。
【0351】
あるいは、所定の成分1500は、定数から所定の値1400を引いたものになる。定数は、たとえば2bitdepth-1に等しい。ある実施形態によれば、さらなるベクトルy402の所定の成分
【0352】
【0353】
1500は、2bitdepth-1から所定の成分1500に対応するサンプル値ベクトル400の成分
【0354】
【0355】
を引いたものに等しく、さらなるベクトル402のすべての他の成分は、サンプル値ベクトル400の対応する成分から、所定の成分1500に対応するサンプル値ベクトル400の成分を引いたものに等しい。
【0356】
たとえば、所定の値1400が、所定のブロックのサンプルの予測値からの小さい偏差を有することが有利である。
【0357】
ある実施形態によれば、装置1000は、複数の正則線形変換403を含むように構成され、それらの各々がさらなるベクトル402の1つの成分と関連付けられる。さらに、装置は、たとえば、サンプル値ベクトル400の成分から所定の成分1500を選択し、所定の成分1500と関連付けられる複数の正則線形変換からの正則線形変換403を所定の正則線形変換として使用するように構成される。これは、たとえば、さらなるベクトルの中の所定の成分の位置に依存して、i0番目の行、すなわち所定の成分に対応する正則線形変換403の行の位置が異なることによるものである。たとえば、さらなるベクトル402の第1の成分、すなわちy1が所定の成分である場合、i0番目の行が正則線形変換の第1の行を置き換える。
【0358】
図9bに示されるように、さらなるベクトル402の所定の成分1500に対応する所定の予測行列405の列412、すなわちi
0番目の列内の所定の予測行列C405の行列成分414は、たとえばすべて0である。この場合、装置は、たとえば、
図9cに示されるように、列412を除外することによって所定の予測行列C405から得られる縮小された予測行列C'405と、所定の成分1500を除外することによりさらなるベクトル402から得られるまたさらなるベクトル410との、行列ベクトル積407を計算することによる乗算を実行することによって、行列ベクトル積404を計算するように構成される。したがって、予測ベクトル406を、より少数の乗算で計算することができる。
【0359】
図8、
図9b、および
図9cに示されるように、装置1000は、予測ベクトル406に基づいて所定のブロックのサンプルを予測する際に、予測ベクトル406の各成分に対して、それぞれの成分とa、すなわち所定の値1400との合計を計算するように構成され得る。
図8および
図9cに示されるように、この加算は、予測ベクトル406およびベクトル409の加算により表されてもよく、ベクトル409のすべての成分が所定の値1400に等しい。あるいは、この加算は、
図9bに示されるように、予測ベクトル406と、整数行列M1300とさらなるベクトル402との行列ベクトル積1310との合計によって表されてもよく、整数行列1300の行列成分は、さらなるベクトル402の所定の成分1500に対応する整数行列のある例、すなわちi
0番目の列内では1であり、すべての他の成分は、たとえば0である。
【0360】
所定の予測行列C405と整数行列1300の加算の結果は、たとえば、
図8に示されるさらなる行列B1200に等しく、またはそれに近い。
【0361】
言い換えると、
図8、
図9a、および
図9bに示されるように、さらなるベクトル402の所定の成分1500に対応する、所定の予測行列405の列412、すなわちi
0番目の列内の所定の予測行列C405の、値が1である各行列成分を加算することにより得られる行列、すなわち、さらなる行列B1200(すなわち、複数の行列B)と正則線形変換403を乗じたものは、たとえば、機械学習予測行列A1100の量子化されたバージョンに対応する。
図9bに示されるように、値が1である、i
0番目の列412内の所定の予測行列C405の各行列成分の加算は、所定の予測行列405および整数行列1300の加算に対応し得る。
図8に示されるように、機械学習予測行列A1100は、さらなる行列1200と正則線形変換403を乗じた結果に等しいことがある。これは、A・x=BT・yT
-1であるためである。所定の予測行列405は、たとえば、量子化された行列、整数行列、および/または固定小数点行列であり、それにより、機械学習予測行列A1100の量子化されたバージョンを実現することができる。
【0362】
整数演算のみを使用した行列乗算
(スカラー値の加算および乗算の複雑さに関して、ならびに関係する行列のエントリに必要なストレージに関して)複雑度の低い実装形態では、整数計算のみを使用して行列乗算404を実行することが望ましい。
【0363】
整数に対する演算のみを使用して、z=Cyという近似、すなわち
【0364】
【0365】
を計算するには、ある実施形態によれば、実数値Ci,jが整数値
【0366】
【0367】
にマッピングされなければならない。これは、たとえば、一様なスカラー量子化によって、または、値yi間の具体的な相関を考慮することによって行われ得る。整数値は、一定の数のビットn_bits、たとえばn_bits=8を用いて各々記憶され得る、たとえば固定小数点数を表す。
【0368】
サイズm×nの行列、すなわち所定の予測行列405との行列ベクトル積404が次いで、この擬似コードに示されるように行われてもよく、ここで<<、>>は、バイナリの左シフトおよび右シフト演算であり、+、-、および*は、整数値に対してのみ作用する。
【0369】
(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;
}
【0370】
ここで、アレイC、すなわち所定の予測行列405は、たとえば固定小数点数を、整数として記憶する。最後のfinal_offsetの加算およびright_shift_resultを用いた右シフト演算は、出力において必要とされる固定小数点フォーマットを得るために、丸めにより精度を低下させる。
【0371】
Cにおいて整数により表現可能な実数値の範囲の拡大を可能にするために、
図10および
図11の実施形態において示されるように、2つの追加の行列offset
i,jおよびscale
i,jを使用することができるので、行列ベクトル積
【0372】
【0373】
におけるyjの各係数bi,jは、
【0374】
【0375】
により与えられる。
【0376】
値offseti,jおよびscalei,j自体が整数値である。たとえば、これらの整数は、一定の数のビット、たとえば8ビットを用いて、または、値
【0377】
【0378】
を記憶するために使用されるのと同じビットの数n_bitsを用いて各々記憶され得る、固定小数点数を表し得る。
【0379】
言い換えると、装置1000は、予測パラメータ、たとえば整数値
【0380】
【0381】
ならびに値offseti,jおよびscalei,jを使用して所定の予測行列405を表し、さらなるベクトル402の成分および予測パラメータおよびそれらから得られる中間の結果について乗算と加算を実行することによって行列ベクトル積404を計算するように構成され、予測パラメータの絶対値は、nを14以下、または代替的に10以下、または代替的に8以下として、nビットの固定小数点数表現により表現可能である。たとえば、さらなるベクトル402の成分は、予測パラメータと乗じられて中間の結果として積が生じ、この積が次いで、加算を受け、または加算の加数となる。
【0382】
ある実施形態によれば、予測パラメータは、その各々が予測行列の対応する行列成分と関連付けられる、重みを含む。言い換えると、所定の予測行列は、たとえば、予測パラメータにより置き換えられ、または表される。重みは、たとえば、整数値および/または固定小数点値である。
【0383】
ある実施形態によれば、予測パラメータはさらに、1つまたは複数のスケーリング係数、たとえば値scalei,jを含み、その各々が、所定の予測行列405の1つまたは複数の対応する行列成分と関連付けられる重み、たとえば整数値
【0384】
【0385】
をスケーリングするための、所定の予測行列405の1つまたは複数の対応する行列成分と関連付けられる。追加または代替として、予測パラメータは、1つまたは複数のオフセット、たとえば値offseti,jを含み、それらの各々が、所定の予測行列405の1つまたは複数の対応する行列成分と関連付けられる重み、たとえば整数値
【0386】
【0387】
をオフセットするための所定の予測行列405の1つまたは複数の対応する行列成分と関連付けられる。
【0388】
offset
i,jおよびscale
i,jに必要なストレージの量を減らすために、それらの値は、インデックスi,jの特定の集合に対して一定となるように選ばれ得る。たとえば、
図10に示されるように、それらのエントリは各列に対して一定であってもよく、またはそれらは各行に対して一定であってもよく、またはそれらはすべてのi,jに対して一定であってもよい。
【0389】
たとえば、1つの好ましい実施形態では、
図11に示されるように、offset
i,jおよびscale
i,jは、1つの予測モードの行列のすべての値に対して一定である。したがって、K個の予測モードがあり、k=0…K-1であるとき、単一の値o
kおよび単一の値s
kだけが、モードkのための予測を計算するために必要とされる。
【0390】
ある実施形態によれば、offseti,jおよび/またはscalei,jは、すべての行列ベースのイントラ予測モードに対して一定であり、すなわち同一である。追加または代替として、offseti,jおよび/またはscalei,jがすべてのブロックサイズに対して一定である、すなわち同一であることが可能である。
【0391】
offsetはokを表し、scaleはskを表すので、(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;
}
【0392】
その解決策により生じる拡大された実施形態
上記の解決策は、以下の実施形態を示唆する。
【0393】
1. セクションIにおけるような予測方法であって、セクションIのステップ2において、関係する行列ベクトル積の整数近似のために次のことが行われる。1≦i0≦nである一定のi0に対して、(平均化された)境界サンプルx=(x1,…,xn)の中から、ベクトルy=(y1,…,yn)が計算され、ここでi≠i0に対してyi=xi-mean(x)であり、
【0394】
【0395】
であり、mean(x)はxの平均値を表す。そうすると、ベクトルyは行列ベクトル積Cy(の整数による具現化)のための入力となるので、セクションIのステップ2からの(ダウンサンプリングされた)予測信号predは、pred=Cy+meanpred(x)として与えられる。この式では、meanpred(x)は、(ダウンサンプリングされた)予測信号の領域における各サンプル位置に対するmean(x)に等しい信号を表す(たとえば、
図9b参照)。
【0396】
2. セクションIにおけるような予測方法であって、セクションIのステップ2において、関係する行列ベクトル積の整数近似のために次のことが行われる。1≦i
0≦nである一定のi
0に対して、(平均化された)境界サンプルx=(x
1,…,x
n)の中から、ベクトルy=(y
1,…,y
n-1)が計算され、ここでi<i
0に対してy
i=x
i-mean(x)であり、i≧i
0に対してy
i=x
i+1-mean(x)であり、mean(x)はxの平均値を表す。そうすると、ベクトルyは行列ベクトル積Cy(の整数による具現化)のための入力となるので、セクションIのステップ2からの(ダウンサンプリングされた)予測信号predは、pred=Cy+meanpred(x)として与えられる。この式では、meanpred(x)は、(ダウンサンプリングされた)予測信号の領域における各サンプル位置に対するmean(x)に等しい信号を表す(たとえば、
図9c参照)。
【0397】
3. セクションIにおけるような予測方法であって、行列ベクトル積Cyの整数による具現化は、行列ベクトル積zi=Σjbi,j*yjにおける係数
【0398】
【0399】
を使用することによって与えられる(たとえば、
図10参照)。
【0400】
4. セクションIにおけるような予測方法であって、ステップ2がK個の行列のうちの1つを使用し、それにより、複数の予測モードを、k=0…K-1である異なる行列
【0401】
【0402】
を各々使用して計算することができ、行列ベクトル積Ckyの整数による具現化は、行列ベクトル積
【0403】
【0404】
における係数
【0405】
【0406】
を使用することにより与えられる(たとえば、
図11参照)。
【0407】
すなわち、本出願の実施形態によれば、エンコーダおよびデコーダは、ピクチャ10の所定のブロック18を予測するために次のように動作し、
図8を参照されたい。予測のために、複数の参照サンプルが使用される。上記において概説されたように、本出願の実施形態は、イントラコーディングに限定されないので、参照サンプルは近傍サンプル、すなわちブロック18の近傍のピクチャ10のサンプルに限定されない。具体的には、参照サンプルは、ブロックの外側の縁に接するサンプルなどの、ブロック18の外側の縁に沿って並んでいるサンプルに限定されない。しかしながら、この状況はもちろん、本出願の1つの実施形態である。
【0408】
予測を実行するために、サンプル値ベクトル400が、参照サンプル17aおよび17cなどの参照サンプルから形成される。あり得る形成が上述されている。この形成は、形成に寄与する参照サンプル17と比較して、サンプル102の数またはベクトル400の成分の数を平均化し、それにより減らすことを伴い得る。この形成はまた、上述のように、その幅および高さなどの、ブロック18の次元またはサイズに何らかの形で依存し得る。
【0409】
ブロック18の予測を得るためにアフィン変換または線形変換を受けるべきであるのは、このベクトル400である。様々な用語が上で使用されている。最も新しいものを使用すると、オフセットベクトルbとの加算を実行する際に行列ベクトル積によりベクトル400を行列Aに適用することによって、予測を実行することが狙いである。オフセットベクトルbは任意選択である。AまたはAおよびbによって決定されるアフィン変換または線形変換は、エンコーダおよびデコーダによって、またはより正確には、すでに上述したようなブロック18のサイズおよび次元に基づく予測のために、決定され得る。
【0410】
しかしながら、上記において概説された計算効率の改善を達成するために、または実装に関して予測をより効果的にするために、アフィン変換および線形変換は量子化されており、エンコーダおよびデコーダ、またはそれらの予測器は、CおよびTを用いた、上述の方式で適用されアフィン変換の量子化されたバージョンを表現する線形変換またはアフィン変換を、表現して実行するために、上述したCおよびTを使用した。具体的には、ベクトル400を直接行列Aに適用するのではなく、エンコーダおよびデコーダの中の予測器が、所定の正則線形変換Tを介したマッピングをサンプル値ベクトル400に適用することによって、サンプル値ベクトル400から得られるベクトル402を適用する。ベクトル400が同じサイズを有する限り、すなわちブロックの次元、すなわち幅および高さに依存しない限り、または異なるアフィン/線形変換に対して少なくとも同じである限り、ここで使用されるような変換Tは同じであるということがあり得る。上記では、ベクトル402はyと表記されている。機械学習によって決定されるようなアフィン/線形変換を実行するための厳密な行列は、Bであったはずである。しかしながら、厳密にBを実行するのではなく、エンコーダおよびデコーダにおける予測は、近似またはその量子化されたバージョンにより行われる。具体的には、Bの量子化されたバージョンを表すC+Mを用いて上で概説された方式でCを適切に表現することを介して、表現が行われる。
【0411】
したがって、エンコーダおよびデコーダにおける予測はさらに、ベクトル402と、上述の方式でエンコーダおよびデコーダにおいて適切に表現され記憶されている所定の予測行列Cとの、行列ベクトル積404を計算することによって遂行される。この行列ベクトル積から得られるベクトル406が次いで、ブロック18のサンプル104を予測するために使用される。上述のように、予測のために、ベクトル406の各成分は、Cの対応する定義に対する埋め合わせを行うために、408において示されるようなパラメータaとの加算を受けることがある。オフセットベクトルbとのベクトル406の任意選択の加算はまた、ベクトル406に基づくブロック18の予測の導出に関わり得る。上述のように、ベクトル406の各成分、およびしたがって、ベクトル406の加算の各成分、408において示されるすべてがaであるベクトル、および任意選択のベクトルbは、ブロック18のサンプル104に直接対応し得るので、サンプルの予測される値を示し得るということがあり得る。ブロックのサンプル104の部分集合のみがその方式で予測され、108などのブロック18の残りのサンプルが補間により導出されるということもあり得る。
【0412】
上述のように、aを設定するための様々な実施形態がある。たとえば、それはベクトル400の成分の算術平均であり得る。その場合については、
図9aを参照されたい。正則線形変換T403は、
図9aに示されるようなものであり得る。i
0はサンプル値ベクトルおよびベクトル402の所定の成分であり、これらはそれぞれaにより置き換えられる。しかしながら、やはり上述したように、他の可能性がある。しかしながら、Cの表現に関係する限り、同じことが異なるように具現化され得ることも上述されている。たとえば、行列ベクトル積404は、その実際の計算において、より次元の低いより小さい行列ベクトル積の実際の計算になることがある。具体的には、上述したように、Cの定義により、その全体のi
0番目の列412は0になるので、積404の実際の計算は、成分
【0413】
【0414】
の省略によりベクトル402から得られるベクトル402の縮小されたバージョンによって、すなわち、i0番目の列412を除外することによりCから得られる縮小された行列C'とこの縮小されたベクトル410を乗じることによって、行われ得るということがあり得る。
【0415】
Cの重みまたはC'の重み、すなわちこの行列の成分は、固定小数点数表現で表現され記憶され得る。しかしながら、これらの重み414はまた、上述のように、異なるスケールおよび/またはオフセットに関する方式でも記憶され得る。スケールおよびオフセットは、全体の行列Cに対して定義されてもよく、すなわち、行列Cもしくは行列C'のすべての重み414に対して等しくてもよく、または、行列Cおよび行列C'の同じ行のすべての重み414もしくは同じ列のすべての重み414に対してそれぞれ一定であるような、または等しいような方式で定義されてもよい。
図10は、これに関して、行列ベクトル積の計算、すなわち積の結果が、実際にはわずかに異なるように実行されてもよく、すなわち、たとえばベクトル402または410に向かうスケールとの乗算をシフトし、それによりさらに実行されなければならない乗算の回数を減らすことによって実行されてもよい。
図11は、上の式(2)において行われるものなどの、CまたはC'のすべての重み414に対して1つのスケールおよび1つのオフセットを使用する事例を示す。
【0416】
ある実施形態によれば、ピクチャの所定のブロックを予測するための本明細書で説明される装置は、以下の特徴を含む行列ベースのイントラサンプル予測を使用するように構成され得る。
【0417】
装置は、複数の参照サンプル17からサンプル値ベクトルpTemp[x]400を形成するように構成される。pTemp[x]が2*boundarySizeであると仮定すると、たとえば直接コピーすることによって、またはサブサンプリングすることによって、またはプールすることによって、pTemp[x]は、所定のブロックの上に位置する近傍サンプルである、x=0…boundarySize-1であるredT[x]、およびそれに続いて所定のブロックの左に位置する近傍サンプルである、x=0…boundarySize-1であるredL[x]によって(たとえば、Transposed=0の場合)、または、転置された処理の場合にはその逆によって(たとえば、Transposed=1の場合)埋められ得る。
【0418】
x=0…inSize-1である入力値p[x]が導出され、すなわち、装置は、サンプル値ベクトルpTemp[x]が所定の正則線形変換によって、またはより具体的には所定の正則アフィン線形変換によって次のようにマッピングされるさらなるベクトルp[x]を、サンプル値ベクトルpTemp[x]から導出するように構成される。
- mipSizeIdが2に等しい場合、次のことが当てはまる。
p[x]=pTemp[x+1]-pTemp[0]
- それ以外(mipSizeIdが2より小さい)の場合、次のことが当てはまる。
p[0]=(1<<(BitDepth-1))-pTemp[0]
x=1…inSize-1に対して、p[x]=pTemp[x]-pTemp[0]
【0419】
ここで、変数mipSizeIdは所定のブロックのサイズを示す。すなわち、本実施形態によれば、さらなるベクトルがそれを用いてサンプル値ベクトルから導出される正則変換は、所定のブロックのサイズに依存する。依存性は、
【0420】
【0421】
に従って与えられ得る。
【0422】
predSizeが所定のブロック内の予測されたサンプルの数を示す場合、2*boundarySizeがサンプル値ベクトルのサイズを示し、inSize=(2*boundarySize)-(mipSizeId==2)?1:0に従って、inSize、すなわちさらなるベクトルSのサイズに関係する。より正確には、inSizeは、実際に計算に参加するさらなるベクトルの成分の数を示す。inSizeは、より小さいブロックサイズではサンプル値ベクトルのサイズと同じ大きさであり、より大きいブロックサイズではサンプル値ベクトルのサイズより1つの成分だけ小さい。前者の場合、1つの成分、すなわち、さらなるベクトルの所定の成分に対応する成分が無視されてもよく、それは、後で計算されることになる行列ベクトル積において、対応するベクトル成分の寄与はいずれにしても0となるので、実際に計算される必要がないからである。ブロックサイズに対する依存性は、代替の実施形態ではなくされてもよく、このとき、2つの選択肢のうちの1つだけが必然的に、すなわちブロックサイズとは独立に使用される(2未満のmipSizeIdに対応する選択肢、または2に等しいmipSizeIdに対応する選択肢)。
【0423】
言い換えると、所定の正則線形変換は、たとえば、さらなるベクトルpの所定の成分がaになり、一方ですべての他の成分がサンプル値ベクトルの成分からaを引いたものに対応するように定義され、たとえばa=pTemp[0]である。2に等しいmipSizeIdに対応する第1の選択肢の場合、これは容易に明らかであり、さらなるベクトルの差分的に形成された成分のみがさらに考慮される。すなわち、第1の選択肢の場合、さらなるベクトルは実際には{p[0…inSize];pTemp[0]}であり、pTemp[0]はaであり、行列ベクトル積、すなわち乗算の結果を生むための行列ベクトル乗算の実際に計算される部分は、さらなるベクトルのinSize成分および行列の対応する列のみに限定され、それは、計算を必要としないゼロ列が行列にあるからである。2より小さいmipSizeIdに対応する他の場合には、a=pTemp[0]が選ばれ、それは、p[0]を除くさらなるベクトルのすべての成分、すなわち、所定の成分p[0]を除くさらなるベクトルpの他の成分p[x]の各々(x=1…inSize-1に対する)は、サンプル値ベクトルpTemp[x]の対応する成分からaを引いたものに等しいが、p[0]は定数からaを引いたものとなるように選ばれるからである。次いで、行列ベクトル積が計算される。この定数は、表現可能な値、すなわち2x-1(すなわち、1<<(BitDepth-1))の平均であり、xは使用される計算表現のビット深度を表す。p[0]が代わりにpTemp[0]であるものとして選択された場合、計算される積は単に、積、すなわち予測ベクトルに基づいてブロックの内側を予測するときに考慮され得る定数ベクトルの分だけ、上述したようなp[0]を使用して計算されたものからずれる(p[0]=(1<<(BitDepth-1))-pTemp[0])ことに留意されたい。したがって、値aは、所定の値、たとえばpTemp[0]である。所定の値pTemp[0]は、この場合、たとえば、所定の成分p[0]に対応するサンプル値ベクトルpTempの成分である。それは、所定のブロックの上または所定のブロックの左にある、所定のブロックの左上の角に最も近い近傍サンプルであり得る。
【0424】
たとえばイントラ予測モードを指定する、predModeIntraに従ったイントラサンプル予測処理のために、装置は、たとえば、以下のステップを適用するように、たとえば少なくとも第1のステップを実行するように構成される。
【0425】
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]は、次のように導出される。
【0426】
【0427】
言い換えると、装置は、予測ベクトルを取得するために、さらなるベクトルp[i]、またはmipSizeIdが2に等しい場合には{p[i];pTemp[0]}と、所定の予測行列mWeight、またはmipSizeIdが2より小さい場合にはpの省略された成分に対応する追加のゼロ重み線を有する予測行列mWeightとの行列ベクトル積を計算するように構成され、ここで、予測ベクトルは、アレイpredMip[x][y]をもたらすように、所定のブロックの内側に分布するブロック位置{x,y}のアレイにすでに割り当てられている。予測ベクトルはそれぞれ、predMip[x][y]の行およびpredMip[x][y]の列の連結に対応する。
【0428】
ある実施形態によれば、または異なる解釈によれば、成分
【0429】
【0430】
だけが予測ベクトルとして理解され、装置は、予測ベクトルに基づいて所定のブロックのサンプルを予測する際に、予測ベクトルの各成分に対して、それぞれの成分とaの合計、たとえばpTemp[0]を計算するように構成される。
【0431】
装置は任意選択で、予測ベクトル、たとえばpredMipまたは
【0432】
【0433】
に基づいて所定のブロックのサンプルを予測する際に、以下のステップを追加で実行するように構成され得る。
【0434】
2. x=0…predSize-1、y=0…predSize-1である行列ベースのイントラ予測サンプルpredMip[x][y]は、たとえば次のようにクリップされる。
predMip[x][y]=Clip1(predMip[x][y])
【0435】
3. isTransposedがTRUEに等しいとき、x=0…predSize-1、y=0…predSize-1であるpredSize×predSizeのアレイpredMip[x][y]は、たとえば次のように転置される。
predTemp[y][x]=predMip[x][y]
predMip=predTemp
【0436】
4. x=0…nTbW-1、y=0…nTbH-1である予測されたサンプルpredSamples[x][y]は、たとえば次のように導出される。
- 変換ブロックの幅を指定するnTbWがpredSizeより大きい場合、または変換ブロックの高さを指定するnTbHがpredSizeより大きい場合、入力ブロックサイズ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]を入力として伴う、MIP予測アップサンプリングプロセスが呼び出され、出力は予測されたサンプルアレイpredSamplesである。
- それ以外の場合、x=0…nTbW-1、y=0…nTbH-1であるpredSamples[x][y]は、predMip[x][y]に等しく設定される。
【0437】
言い換えると、装置は、予測ベクトルpredMipに基づいて、所定のブロックのサンプルpredSamplesを予測するように構成される。
【0438】
8. 他のイントラ予測モードとともにブロック/行列ベースのイントラ予測モードを使用すること
以下の説明は、再び、他のイントラ予測モードとブロック/行列ベースの予測を組み合わせるための可能性を提示する。それは、後続のセクションにおいて説明される実施形態がそれに基づいて具現化され得る可能性のさらなる提示となる。
【0439】
以下では、上記のALWIPに具現化されることがある、またはそれによって示されるものに等しいことがある、イントラ予測モードを表記するために、ブロックベースのイントラ予測という用語が使用されることに留意されたい。
【0440】
これにより、
図12に関して以下で説明される実施形態は、所定のブロック18を復号/符号化するためのイントラ予測をサポートするデコーダおよびエンコーダに関し、様々なイントラ予測モードがサポートされる。所定のブロック18を埋めて所定のブロック18のためのイントラ予測信号を取得するために、所定のブロック18の近傍の参照サンプル17がそれに従って使用される、Angularイントラ予測モード500がある。具体的には、所定のブロック18の上および左の縁に沿ってなど、所定のブロック18の境界に沿って並んでいる参照サンプル17は、所定の方向502に沿って所定のブロック18の内側へと外挿またはコピーされるピクチャコンテンツを表す。外挿またはコピーの前に、近傍サンプル17によって表されるピクチャコンテンツは、補間フィルタリングを受けることがあり、または言い換えると、補間フィルタリングによって近傍サンプル17から導出されることがある。Angularイントラ予測モード500は、イントラ予測方向502において相互に異なる。各Angularイントラ予測モード500は、関連付けられたインデックスを有してもよく、Angularイントラ予測モード500へのインデックスの関連付けは、方向500が、関連付けられたモードインデックスに従ってAngularイントラ予測モード500を並べると、時計回りまたは反時計回りに単調に回転するようなものであってもよい。
【0441】
非Angularイントラ予測モードもあり得る。たとえば、504は、集合508に任意選択で含まれるようなPlanarイントラ予測モードを
図12において示し、それに従って、水平方向の傾き、垂直方向の傾き、およびオフセットによって定義される2次元線形関数が近傍サンプル17に基づいて導出され、この線形関数は、所定のブロック18の予測されたサンプル値を定義する。水平方向の傾き、垂直方向の傾き、およびオフセットは、近傍サンプル17に基づいて導出される。ある実施形態によれば、イントラ予測モードの第1の集合508は、Planarイントラ予測モード504を含む。
【0442】
集合508に含まれる、特定の非Angularイントラ予測モード、すなわちDCモードが、506において示される。ここで、擬似的なDC値である1つの値が、近傍サンプル17に基づいて導出され、この1つのDC値は、イントラ予測信号を取得するための所定のブロック18のすべてのサンプルに起因する。非イントラ予測モードのための2つの例が示されているが、1つだけ、または2つより多くが存在してもよい。
【0443】
イントラ予測モード500、504、および506は、略称ALWIPを使用して例が上述された参照符号510を使用して一般に示される、レート/ひずみ最適化の意味でブロックベースのイントラ予測モードと競合するエンコーダおよびデコーダによりサポートされるイントラ予測モードの集合508を形成する。上述のように、これらのブロックベースのイントラ予測モード510によれば、行列ベクトル積520は、一方の縁の近傍サンプル17から導出されるベクトル514と他方の縁の所定の予測行列516と間で実行される。乗算520の結果は、所定のブロック18のサンプルを予測するために使用される予測ベクトル518である。ブロックベースのイントラ予測モード510は、それぞれのモードと関連付けられる予測行列516において相互に異なる。
【0444】
したがって、簡単に要約すると、本明細書において説明される実施形態によるエンコーダおよびデコーダは、イントラ予測モードの集合508、すなわちイントラ予測モードの第1の集合と、ブロックベースのイントラ予測モードの集合520、すなわち行列ベースのイントラ予測モードの第2の集合とを含み、それらは互いに競合する。
【0445】
本出願の実施形態によれば、所定のブロック18は、以下の方式でイントラ予測を用いてコーディング/復号される。具体的には、まず、所定のブロック18がイントラ予測モードの集合508のいずれかを使用して予測されるべきか、またはブロックベースのイントラ予測モードの集合520のモードのいずれかを使用して予測されるべきかの、集合選択シンタックス要素522。所定のブロック18が集合508の、すなわちイントラ予測モードの第1の集合のいずれかのモードを使用して予測されるべきであることを、集合選択されたシンタックス要素が示す場合、集合508の中の最尤候補のリスト528が、近傍ブロック、すなわち524および526において例示的に示される近傍ブロック18がそれを用いて予測されたイントラ予測モードに基づいて、デコーダおよびエンコーダにおいて構築/形成される。近傍ブロック524および526は、ブロック18の左上の縁のサンプルの上にあるサンプルなどのブロック18のいくつかの近傍サンプルと重複する近傍ブロック、およびすぐ上で言及された角のサンプルの左にあるサンプルを含むブロック526を決定することなどによって、所定の方式で所定のブロック18の位置に対して相対的に決定され得る。当然、これは例にすぎない。同じことがモード予測のために使用される近傍ブロックの数に当てはまり、この数はすべての実施形態に対して2に限定されない。2つより多く、または1つだけが使用されてもよい。これらのブロック524および526のいずれかが欠けている場合、その欠けている近傍ブロックのイントラ予測モードの代替として、デフォルトのイントラ予測モードが使用され得る。ブロック524および526のいずれかが、動き補償予測などによってインター予測モードを使用してコーディング/符号化された場合、同じことが当てはまり得る。
【0446】
最尤イントラ予測モードの集合508の中のモードのリスト、すなわちリスト528の構築は次の通りである。リスト528のリスト長、すなわちリストの中の最尤モードの数は、デフォルトでは一定であり得る。この長さは、
図12に示されるように4であってもよく、または、5もしくは6など、4とは異なってもよい。後者の場合は、本明細書において以下で説明される特定の例に当てはまる。後で説明されることになるデータストリームの中のインデックスは、所定のブロック18のために使用されるべきリスト528の中の1つのモードを示し得る。インデクシングは、リスト順序またはランキング530に沿って実行され、リストインデックスは、たとえば、インデックスの長さが順序530に沿って単調に増大するようにコーディングされる可変の長さである。したがって、まず、集合508の中の最尤モードだけでリスト528を埋め、順序530に沿って、より可能性のあるモードを、ブロック18にとって適切である可能性の低いモードより上流に置くことには価値がある。リスト528のモードは、ブロック524および526、すなわち所定のブロック18の近傍の近傍ブロックのために使用されるモードに基づいて導出される。ブロック524および526のいずれかが、集合520の中のブロックベースのモードを使用してイントラ予測された場合、そのような「ALWIP」またはブロックベースのモード510から集合508内のモード、たとえば非ALWIPモードへの前述のマッピングが使用される。後者のマッピングは、たとえば、ブロックベースのモード510の多数派(すなわち、半分より多く)をDCモード506(またはDC506もしくはPlanarモード504のいずれか)にマッピングし得る。
【0447】
ある実施形態によれば、最尤イントラ予測モードのリスト528は、近傍ブロックがそれを用いて予測されるイントラ予測モードとは独立した方式でPlanarイントラ予測モード504を用いて埋められる。したがって、たとえば、DCイントラ予測モード506およびAngularイントラ予測モード500のみが、近傍ブロック524および526の予測のために使用されるイントラ予測モードに依存してリスト528において埋められる。Planarイントラ予測モード504は、たとえば、近傍ブロック524および526がそれを用いて予測されるイントラ予測モードとは独立に最尤イントラ予測モードのリスト528の第1の位置に配置される。
【0448】
以下でより詳しく例示的に示される方式では、最尤イントラ予測モードのリスト528のリスト構築は、近傍ブロック524および526がいずれかのAngularイントラ予測モード500だけによって予測されている場合、リスト528にDCイントラ予測モード506がないような方式で行われる。近傍ブロック524または526の一方がいずれかのAngularイントラ予測モード500により予測される場合、および/または、近傍ブロック524と526の両方がいずれかのAngularイントラ予測モード500により予測される場合、DCイントラ予測モード506は、最尤イントラ予測モードのリスト528の中にない。本明細書において以下に記載される実施形態によれば、たとえば、リスト528は、すべての近傍ブロック524および526に対して以下の状況、すなわち、非Angularイントラ予測モード504および506のいずれかを使用してすべての近傍ブロック524および526がコーディングされていること、または、いずれかのブロックベースのイントラ予測モード510を使用してすべての近傍ブロック524および526がイントラ予測されており、ブロックベースのイントラ予測モード510が、集合508内のモードへのブロックベースのイントラ予測モード510からの前述のマッピングにより、非Angularイントラ予測モード504および506のいずれかへとマッピングされていることの、いずれかが真である場合にのみ、DCモード506を用いて埋められる。その場合にのみ、DCイントラ予測モード506はリスト528に置かれる。その場合、後続の例において見られることがあるように、DCイントラ予測モード506は、順序530においていずれのAngularイントラ予測モード500よりも前に置かれ得る。
【0449】
言い換えると、最尤イントラ予測モードのリスト528は、たとえば、近傍ブロック524および526の各々に対して、それぞれの近傍ブロックが、少なくとも1つの非Angularイントラ予測モード504および506のいずれかを、DCイントラ予測モード506を含む第1の集合508とともに使用して予測される場合にのみ、または、最尤イントラ予測モードのリスト528の形成のために使用される、第1の集合508内のイントラ予測モードへのブロックベースのイントラ予測モード510の第2の集合520からのマッピングにより、少なくとも1つの非Angularイントラ予測モード500のいずれかへとマッピングされる、ブロックベースのイントラ予測モード510のいずれかを使用して予測される場合にのみ、DCイントラ予測モード506を用いて埋められる。DCイントラ予測モード506は、たとえば、最尤イントラ予測モードのリスト528においていずれのAngularイントラ予測モード500より前に置かれる。
【0450】
したがって、所定のブロック18がどのようにデータストリーム12へとコーディングされるかについての説明を再開すると、データストリーム12は、所定のブロック18が第1の集合508の中のいずれかのモードによってコーディングされるべきであることを集合選択シンタックス要素522が示す場合、任意選択で、所定のブロック18のために使用されるべきイントラ予測モードがリスト528内にあるかどうかを示すMPMシンタックス要素532を含み、リスト528内にある場合、データストリーム12は、順序530に沿ってモードをインデクシングすることによって、リスト528の中の所定のブロック18のために使用されるべきモード、すなわち所定のイントラ予測モードを示す、リスト528の中を指し示すMPMリストインデックス534を含む。しかしながら、MPMシンタックス要素532により示されるように、集合508の中のモードがリスト528内にない場合、データストリーム12は、集合508の中のどのモード、すなわち所定のイントラ予測モードがブロック18のために使用されるべきかを示す、さらなるシンタックス要素536をブロック18のために含む。さらなるシンタックス要素536は、リスト528に含まれない集合508の中のモードを単に区別することによって、ある方式でモードを示し得る。
【0451】
言い換えると、所定のブロック18を復号するための装置は、たとえば、所定のブロック18がイントラ予測モードの第1の集合508のうちの1つを使用して予測されるべきであることを集合選択シンタックス要素522が示す場合、イントラ予測モードの第1の集合508の所定のイントラ予測モードが最尤イントラ予測モードのリスト528内にあるかどうかを示すMPMシンタックス要素532をデータストリームから導出するように構成される。イントラ予測モードの第1の集合508の所定のイントラ予測モードが最尤イントラ予測モードのリスト528内にあることをMPMシンタックス要素532が示す場合、装置は、たとえば、所定のブロック100の近傍の近傍ブロック524、526がそれを用いて予測されるイントラ予測モードに基づいて最尤イントラ予測モードのリスト528の形成を実行し、最尤イントラ予測モードのリスト528の所定のイントラ予測モードを指し示す、MPMリストインデックス534のデータストリーム12からの導出を実行するように構成される。イントラ予測モードの第1の集合508の所定のイントラ予測モードが最尤イントラ予測モードのリスト528内にないことをデータストリーム12からのMPMシンタックス要素532が示す場合、装置は、イントラ予測モードの第1の集合からの所定のイントラ予測モードを示す、さらなるリストインデックス536をデータストリームから導出するように構成される。したがって、MPMシンタックス要素532に基づいて、データストリーム12は、所定のブロック18の予測のために、MPMリストインデックス534またはさらなるリストインデックス536のいずれかを含む。
【0452】
リスト528がDCイントラ予測モード506を含むような状況をなくすことによって、以下の利点が達成される。具体的には、本出願の発明者らは、シンタックス要素522、すなわち集合選択シンタックス要素によって示されるような、集合508のイントラ予測モードのいずれかを使用すべきである所定のブロック18をコーディング/復号するための、集合508の中のDCイントラ予測モード506によりリスト528の価値のあるリスト位置を「消費すること」は、集合508の中のそのようなDCイントラ予測モード506はいずれにしてもブロックベースのイントラ予測モード510と競合するので、コーディング効率に悪影響を及ぼすことを発見した。したがって、集合508の中のそのようなDCイントラ予測モード506によりリスト528のリスト位置を「消費すること」は、所定のブロック18のために最終的に使用されるべきイントラ予測モード、すなわち所定のイントラ予測モードがリスト528内にないので、シンタックス要素536、すなわちさらなるリストインデックスがデータストリーム12において送信される必要があるような状況の確率を高める。
【0453】
具体的には、シンタックス要素522は、ブロック18に対して、集合508内のモードのいずれかまたは集合520のブロックベースのモード510のいずれかを使用してブロック18が予測されるべきであるかどうかをすでに示しているので、集合508内のモードがブロック18に対して好ましいものになること、およびしたがって、ブロックベースのモード510がブロック18のために使用されるべきではないことを、シンタックス要素522が示す場合、集合508の中のDC予測モード506がブロック18に対して適切であり得る確率は、リスト528におけるDC予測モードの存在が近傍ブロック524および526のために使用されるモードの一群、すなわち上記において提示された一群の非常に限られた集合に限定されるべきであるほど低いかのように見える。
【0454】
他の場合、すなわち、所定のブロック18がブロックベースのイントラ予測モード510のいずれかを使用して予測されるべきであることを、集合選択シンタックス要素522が示す場合には、データストリーム12へのブロック18のコーディング、およびそれからのこの復号は、上記において提示された方式で行われ得る。このために、集合520、すなわちブロックベースのイントラ予測モードの第2の集合の中のブロックベースのイントラ予測モード510のうちの選択された1つをインデクシングするために、またはブロックベースのイントラ予測モードのいずれが使用されるべきかを示すために、インデクシングが使用され得る。さらなる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に対して、集合520の中のモードへの集合508のモードからの前述のマッピングが、それぞれのブロック、すなわち所定のブロック18のための、イントラ予測モード510、すなわち所定のブロックベースのイントラ予測モードを取得する
ために使用され、ブロック524および526のための得られたブロックベースのイントラ予測モードに基づいて、リスト542が解釈される。
【0455】
ある実施形態によれば、所定のブロック18を復号するための装置は、所定のブロック18がイントラ予測モードの第1の集合508の中の1つを使用して予測されるべきではないことを集合選択シンタックス要素522が示す場合、ブロックベースのイントラ予測モード510の第2の集合520の所定のブロックベースのイントラ予想モードが最尤ブロックベースのイントラ予測モードのリスト542内にあるかどうかを示すさらなるMPMシンタックス要素538をデータストリーム12から導出するように構成される。ブロックベースのイントラ予測モード510の第2の集合520の所定のブロックベースのイントラ予測モードが最尤ブロックベースのイントラ予測モードのリスト542内にあることをさらなるMPMシンタックス要素538が示す場合、装置は、たとえば、所定のブロック18の近傍の近傍ブロック524、526がそれを用いて予測されるイントラ予測モードに基づいて最尤ブロックベースのイントラ予測モードのリスト542を形成し、最尤ブロックベースのイントラ予測モードのリスト542上の所定のブロックベースのイントラ予測モードを指し示すさらなるMPMリストインデックス540をデータストリーム12から導出するように構成される。ブロックベースのイントラ予測モードの第2の集合520の所定のブロックベースのイントラ予測モードが最尤ブロックベースのイントラ予測モードのリスト542内にないことをさらなるMPMシンタックス要素538が示す場合、装置は、ブロックベースのイントラ予測モードの第2の集合520の中の所定のブロックベースのイントラ予測モードを示すまたさらなるリストインデックス546をデータストリーム12から導出するように構成される。したがって、さらなるMPMシンタックス要素538に基づいて、データストリーム12は、所定のブロック18の予測のために、さらなるMPMリストインデックス540、または、またさらなるリストインデックス546のいずれかを含む。
【0456】
さらなるMPMシンタックス要素538、さらなるMPMリストインデックス540、およびまたさらなるリストインデックス546は、MPMシンタックス要素532、MPMリストインデックス534、およびさらなるリストインデックス536に対応するものとして
図12のデータストリーム12において表されているが、さらなるMPMシンタックス要素538と、さらなるMPMシンタックス要素538と関連付けられるインデックス、たとえばさらなるMPMリストインデックス540またはまたさらなるリストインデックス546とのいずれかが、データストリーム12またはMPMシンタックス要素532およびMPMシンタックス要素532と関連付けられるインデックス、たとえばMPMリストインデックス534またはさらなるリストインデックス536に含まれることが明らかである。このシンタックス要素とインデックスのどちらがデータストリーム12に含まれるかは、たとえば集合選択シンタックス要素522に依存する。
【0457】
擬似コードとして書かれるデータストリーム12のシンタックス要素部分の例は、
図19aから
図19dに示されるようなものであってもよく、参照記号は、どのシンタックス要素が前に論じられたシンタックス要素に対応するかを示す。
【0458】
リスト528のリスト構築は次のように定義されてもよく、candIntraPredModeA/Bは、ブロック524に対するAおよびブロック526に対するBなどの、ブロック524および526のいずれかがそれを用いて予測されたイントラ予測モードを示し、または、対応するブロック524または526がブロックベースのイントラ予測モード510のいずれかを使用してイントラ予測された場合には、イントラ予測モードが集合508からどのモードにマッピングされるかを示す。INTRA_DCがモード506を示すために使用され、Angularモード500はINTRA_ANGULAR#によって示され、番号(#)は上で例示的に示されたようなAngularモードを、すなわち、角度方向502が番号の増大とともに単調に減少または増加するような方式で並べる。集合508内のモード間のこの順序は、INTAR_PLANARがモード504を示すような後続のテーブルにおいて定義されるようなものであり得る。
【0459】
上の例では、インデックス534は実際には、シンタックス要素534'および534''へと分散されることに留意されたい。前者534'は、順序530においてリスト528の最初の位置に対して固有であり、この例によれば、INTRA_PLANARモード504が必然的に配置される。後者534''はリスト528の後続の位置のいずれかを指し示し、説明されたように、DCモード506のみがこの説明された特別な状況に含まれる。
【0460】
さらに、上の例では、集合508内のモードのうちのいずれもが使用されることをシンタックス要素522が示す場合、さらなるシンタックス要素がデータストリームに含まれ、このさらなるシンタックス要素は何らかの方法で、集合500内のイントラ予測モードをパラメータ化する。たとえば、シンタックス要素600は、ブロック18の外周までの距離などに関して、集合508の中のどのモードがブロック18の内側をイントラ予測するかに基づいて参照サンプル17が配置される領域を、パラメータ化し、または変化させる。追加または代替として、シンタックス要素602は、参照サンプル17が集合508の中のモードによってブロック18の内側をグローバルにもしくはenブロックでイントラ予測するために使用されるかどうか、または、ブロック18がそれらへと再分割される断片もしくは部分においてイントラ予測が行われるかどうかを、パラメータ化し、または変化させ、それらの断片または部分は、1つの部分のためのデータストリームへとコーディングされる予測残差が次の部分をイントラ予測するための新しい参照サンプルを集めるのに役立ち得るように、逐次イントラ予測される。シンタックス要素によって制御される後者のコーディングオプションは、シンタックス要素600が、たとえば、ブロック18に接する、参照サンプル17が存在する領域に対応する所定の状態を有する場合にのみ利用可能であり得る(および対応するシンタックス要素はデータストリームにのみ存在し得る)。水平方向に、したがってそれらの部分がブロック18と同じ高さになるように、または垂直方向に、したがってそれらの部分がブロック18と同じ幅になるようにの、いずれかなどで、所定の方向に沿ってブロックを再分割することによって、それらの部分が定義され得る。区分が有効であるとシグナリングされる場合、シンタックス要素604がデータストリームに存在していてもよく、これは、どの分割方向が使用されるかを制御する。理解され得るように、INTRA_PLANARモードのために確保されるリスト528の中の位置は、シンタックス要素600が、たとえば、ブロック18に接する、参照サンプル17が存在する領域に対応する所定の状態を有する場合のみ、および/または、シンタックス要素602によってシグナリングされるような部分ごとのイントラ予測モード
が有効ではない場合のみなどの、すぐ上記において言及されたシンタックス要素のパラメータ化によるモードの何らかのパラメータ化の場合にのみ利用可能であるということがあり得る。
【0461】
表に示されているが上記において特に言及されていないすべてのシンタックス要素は任意選択であり、本明細書においてさらに論じられない。
- 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は次のように導出される。
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
【0462】
【0463】
9. 他のイントラ予測モードとともにブロック/行列ベースのイントラ予測モードを利用し、二次変換を利用する実施形態
以下の説明は、予測残差をコーディングするために二次変換を使用することと、他のイントラ予測モードを用いたブロック/行列ベースの予測とを組み合わせるための実施形態を提示する。行列ベースのイントラ予測(ALWIP)と、それと他のイントラ予測モードとの組合せについての、上記の可能性の提示は、本明細書において以下で説明される実施形態を実装するための例となるものとする。
図12において、たとえば、MPMリストにDCモードを含めることが制約されていることに関する、MPMリスト構築についてのすべての詳細は、任意選択である。
【0464】
上述のように、本明細書においてブロックベースのイントラ予測およびALWIPとも表記される行列ベースのイントラ予測(MIP)は、行列ベクトル乗算を実行することによって長方形ブロック上でイントラ予測信号を生成し、行列ベクトル乗算の出力はダウンサンプリングされたブロック上の予測信号であるものと見なされてもよく、行列ベクトル乗算の入力はダウンサンプリングされた境界サンプルに含まれてもよい。出力がダウンサンプリングされたブロック上の予測信号であると見なされる場合、この予測信号は、最終的な予測信号が得られる前にアップサンプリング(または線形補間)段階を経る必要がある。
【0465】
一方、上の説明では集合508のモードとも表記される、Planarモード504、DCモード506、およびAngularモード500のような従来のイントラ予測モードでは、分離不可能な二次変換(LFNST)が、これらのイントラ予測モードに対応する予測残差を変換するために使用されるツールである。ここで、各々の従来のイントラ予測モードがこれらの変換集合のうちの1つと関連付けられるように、変換集合の集合Sが与えられる。次いで、デコーダにおいて、所与のブロック上でLFNSTが適用されるべきかどうかが、ビットストリームから抽出され得る。適用されるべきである場合、現在のブロック上で使用されるイントラ予測モードに応じて、集合Sの中の1つの変換集合が与えられ、この変換集合が1つより多くの変換からなる場合、この集合のうちのどの変換Tが使用されるべきかがビットストリームから抽出され得る。次いで、デコーダにおいて、変換Tが二次変換Tsとして適用され、これは、たとえば
図14に示されるように、それが分離可能な一次変換Tpの残差変換係数620の部分集合622に適用されることを意味する。
【0466】
問題は、前述の二次変換Tsが従来のイントラ予測モードのためだけに先験的に定義されるということである。各MIPモード510に対して特定の二次変換Tsを提供することは、余剰の変換を追加で記憶するためのメモリ要件に関してあまりにも高価であり得る。
【0467】
図13は、この問題を解決するデコーダを示す。デコーダは、イントラ予測を用いてピクチャの所定のブロック18を復号する。ある実施形態によれば、エンコーダは、デコーダに類似した特徴および/または機能を含む。
【0468】
デコーダ/エンコーダは、イントラ予測モードの第1の集合508および行列ベースのイントラ予測モード510の第2の集合520を含む複数のイントラ予測モード600から、所定のイントラ予測モード604を選択する(602)ように構成される。このイントラモード選択602は、デコーダによってデータストリーム12に基づいて実行され、エンコーダは、データストリーム12において所定のイントラ予測モード604をシグナリングするように構成される。イントラモード選択602は、
図12に関して説明されたように実行され得る。
【0469】
イントラ予測モードの第1の集合508は、DCイントラ予測モード506と、Angular予測モード500と、任意選択でPlanarイントラ予測モード504とを含む。所定のイントラ予測モード604が第2の集合520の中の行列ベースのイントラ予測モード510である場合、デコーダ/エンコーダは、予測ベクトル518を得るために、所定のブロック18の近傍における参照サンプル17から導出されたベクトル514と、それぞれの行列ベースのイントラ予測モード510と関連付けられる予測行列516との行列ベクトル積512を使用するように構成され、予測ベクトル518に基づいて、所定のブロック18のサンプルが予測される。所定のイントラ予測モード604として行列ベースのイントラ予測モード510を使用した所定のブロック18の予測は、
図6から
図11の実施形態に従ってデコーダ/エンコーダによって実行され得る。デコーダ/エンコーダは、所定のイントラ予測モード604を使用して、所定のブロック18のための予測信号606を導出するように構成される。
【0470】
デコーダ/エンコーダは、所定のイントラ予測モード604がイントラ予測モードの第1の集合508に含まれる場合、および所定のイントラ予測モード604が行列ベースのイントラ予測モード510の第2の集合520に含まれる場合に、部分集合610が非空であるように、所定のイントラ予測モード604に依存する方式で、二次変換Tsの集合612、たとえばTs(1)-Ts(N)から、1つまたは複数の二次変換Ts(i1)-Ts(in)の部分集合610を選択する(608)ように構成され、i1は1からNの範囲にあり、inはi1からNの範囲にある。
【0471】
ある実施形態によれば、デコーダ/エンコーダは、二次変換Tsの集合612の各二次変換Tsが第1の集合508および第2の集合520内のイントラ予測モードのうちの少なくとも1つに対して選択される1つまたは複数の二次変換Tsの部分集合610に含まれるように、部分集合610を選択する(608)ように構成される。したがって、部分集合610は、二次変換の集合612に等しくてもよい。そのような部分集合は、1つまたは複数の行列ベースのイントラ予測モード510のために選択され得る。1つまたは複数の行列ベースのイントラ予測モード510では、二次変換の集合612のすべての二次変換Tsを選択することが可能であってもよく、この1つまたは複数の行列ベースのイントラ予測モード510のための部分集合610は、イントラ予測モードの第1の集合508内のイントラ予測モードに対して選択可能な二次変換Tsを含む。したがって、行列ベースのイントラ予測モード510のうちの少なくとも1つに対して、二次変換の集合612において、特定の追加の二次変換は必要とされない。
【0472】
ある実施形態によれば、デコーダ/エンコーダは、任意の行列ベースのイントラ予測モード510のために選択される二次変換Tsの各部分集合610
matrixの各二次変換TsがAngular予測モード500に属さない第1の集合508内の少なくとも1つのイントラ予測モードのために選択される二次変換Tsの部分集合、たとえば610
DCおよび/または610
planarに含まれるような方式で、部分集合610を選択する(608)ように構成される。
図15は、任意の行列ベースのイントラ予測モード510のために選択される二次変換Tsの様々なあり得る部分集合を示す。デコーダ/エンコーダは、各々の行列ベースのイントラ予測モード510に対して、行列ベースのイントラ予測モード510のための二次変換の部分集合610の第1の連合611
matrixの部分集合610を選択するように構成され得る。
【0473】
図15に示されるように、1つまたは複数の行列ベースのイントラ予測モード510のために選択可能な部分集合610は、DCイントラ予測モード506のために選択可能な部分集合、たとえば610
DC1もしくは610
DC2に等しくてもよく、または、Planarイントラ予測モード504のために選択可能な部分集合、たとえば610
planar1もしくは610
planar2に等しくてもよい。1つまたは複数の行列ベースのイントラ予測モード510のために選択可能な部分集合610は、部分集合610
matrix4によって示されるように、Angular予測モード500に属さない第1の集合508内の1つのイントラ予測モードのために選択される二次変換Tsの部分集合、たとえば610
DCの1つまたは複数の二次変換、たとえばTs
(ax)からTs
(aY)のみを含むことが可能である。
【0474】
行列ベースのイントラ予測モード510のために選択可能な部分集合610は、部分集合610matrix1によって示されるような、DCイントラ予測モード506のために選択可能な2つ以上の部分集合、たとえば610DC1および610DC2の中の1つまたは複数の二次変換を含んでもよく、または、部分集合610matrix3によって示されるような、Planarイントラ予測モード504のために選択可能な2つ以上の部分集合、たとえば610planar1および610planar2の中の1つまたは複数の二次変換を含んでもよい。
【0475】
行列ベースのイントラ予測モード510のために選択可能なさらなるあり得る部分集合610は、部分集合610matrix2によって示されるような、DCイントラ予測モード506のために選択可能な1つまたは複数の部分集合、たとえば610DC2からの1つまたは複数の二次変換、および、Planarイントラ予測モード504のために選択可能な1つまたは複数の部分集合、たとえば610planar1からの1つまたは複数の二次変換を含み得る。
【0476】
ある実施形態によれば、デコーダ/エンコーダは、行列ベースのイントラ予測モード510のために選択された二次変換の部分集合610の第1の連合611matrixと、すべてのAngularイントラ予測モードのために選択された二次変換の部分集合610angularの第2の連合611angularとの交わりが空集合であるような方式で、部分集合610を選択する(608)ように構成される。第3の連合611DCは、DCイントラ予測モード506のために選択されるすべての部分集合610DCを含み、第4の連合611planarは、Planarイントラ予測モード504のために選択されるすべての部分集合610planarを含む。たとえば、縮小された予測信号606に任意選択で適用されるダウンサンプリングにより、MIPモード510は、Planarモード504およびDCモード506のように非方向性であるので、それらの予測残差618は、Angularモード500の予測残差よりも、DCモード506およびPlanarモード504の予測残差とより多くの統計的な類似性を有する。
【0477】
さらに、
図13に示されるように、デコーダは、データストリームへとエンコーダによって符号化された、所定のブロック18のための予測残差の変換されたバージョン616を、データストリームから導出する(614)ように構成され、この変換されたバージョンは、一次変換Tpと、二次変換の部分集合610からの所定の二次変換Tsとの連結によって定義される変換Tを介して、所定のブロック18の予測残差の空間領域バージョン618に関係する。
図14に示されるように、エンコーダは、所定のイントラ予測モードがイントラ予測モードの第1の集合508に含まれる場合、および、所定のイントラ予測モードが行列ベースのイントラ予測モード510の第2の集合520に含まれる場合、一次変換Tpの係数620の部分集合622へと変換Tを適用するように構成され得る。デコーダは、所定のブロック18の予測残差の空間領域バージョン618を取得するために、変換Tの逆関数T
-1を使用するように構成され得る。一次変換は、たとえば分離可能な2D変換であり、二次変換は、たとえば分離不可能な2D変換である。
【0478】
デコーダは、所定のブロック18のための予測信号606および予測残差618を使用して、所定のブロック18を再構築する(624)ように構成される。
【0479】
1つまたは複数の二次変換Tsの部分集合610が1つより多くの二次変換Tsを含む場合、デコーダは、所定のブロックのためのデータストリーム12において送信される二次変換指示シンタックス要素に応じて、1つまたは複数の二次変換の部分集合610から所定の二次変換Tsを選択するように構成され得る。二次変換指示シンタックス要素は、1つまたは複数の二次変換の選択された部分集合610の中へと指し示すインデックスであり得る。この場合、エンコーダは、データストリーム12において二次変換指示シンタックス要素を送信するように構成され得る。
【0480】
ある実施形態によれば、所定のブロック18の次元が所定の基準を満たす場合、デコーダは、所定のブロック18のための予測残差の変換されたバージョン616が所定のブロック18の予測残差の空間領域バージョン618に関連付けられる変換Tが、一次変換Tpであると推測するように構成される。それ以外の場合、変換Tは、一次変換Tpと所定の二次変換Tsの連結であり得る。デコーダは、所定のブロック18の次元が所定の基準を満たすこととは独立に、所定のイントラ予測モード604の選択602のために、行列ベースのイントラ予測モード510の第2の集合520を利用可能にする。所定のブロック18の次元のための所定の基準は、部分集合の選択608だけに関係してもよく、イントラモードの選択602には関係しなくてもよい。たとえば、MIP/ALWIP510が利用可能であるが、LFNST、すなわち部分集合の選択608が利用可能ではない、ブロックの次元がある。そのような次元のブロック18に対して、二次変換指示シンタックス要素は、データストリームにおいて送信される必要はなく、データストリームから読み取られる必要はない。所定の基準は、たとえば、次元が所定の閾値を下回る場合に満たされる。小さい所定のブロック18に対しては、それは有益ではないことがあり、それは、後者の形状に対して、LFNSTがMIPモードにおいてブロックに対して適用されるべきかどうかをシグナリングするための追加のシグナリングのコストが、平均すると、MIPモードに対してLFNST変換を許容することにより得られる利益より高いことを意味する。
【0481】
ある実施形態によれば、
図16に示されるように、デコーダは、所定のブロック18のための予測残差の変換されたバージョン616内の非ゼロ変換領域エリア623を示す、それぞれの所定のブロック18のためのデータストリーム12において送信される非ゼロゾーン指示を読み取るように構成される。すべての非ゼロ係数が、非ゼロ変換領域エリア623のみに位置する。非ゼロゾーン指示は、たとえば、エンコーダによってデータストリーム12において送信される。デコーダ/エンコーダは、データストリーム12から/へと、非ゼロ変換領域エリア623内の係数を復号/符号化するように構成される。LPシンタックス要素は、非ゼロゾーン指示として動作し得る。DC係数位置から反対側の、または最高の周波数の係数位置に至るスキャン経路に沿った、最後の非ゼロ係数位置が、本明細書におけるLPシンタックス要素によって示される。LPシンタックス要素は擬似的に、非ゼロ変換領域エリア623内の非ゼロ係数の予想されるカウントの尺度となり得る。
【0482】
ある実施形態によれば、デコーダは、所定のブロック18のための予測残差の変換されたバージョン616が所定のブロック18の予測残差の空間領域バージョン618に関連付けられる変換Tが、第1の所定の基準を満たす非ゼロ変換領域エリア623の拡張および/もしくは位置、ならびに/または第2の所定の基準を満たす非ゼロ変換領域エリア623内の非ゼロ係数の数に応じた、一次変換Tpであると推測するように構成される。
【0483】
第1の所定の基準は、たとえば、非ゼロ変換領域エリア623が、二次変換Tpが連結によって適用される一次変換Tpの係数の部分集合622を独占的に包含しない場合に、満たされるというようなものである。これは、二次変換Tsが一次変換Tpの変換係数のすべての非ゼロ係数を包含すべきであるという考え方に基づく。非ゼロ係数が一次変換Tpの係数の部分集合622の外側にある場合、所定の二次変換を適用することは有利ではないことがあり、それが理由で、デコーダは、変換Tが一次変換Tpであると推測する。デコーダは、部分集合の選択608を実行し、二次変換Tpが下記の連結により適用される一次変換Tpの係数の部分集合622の内部に非ゼロ変換領域エリア623が完全に位置している場合、一次変換Tpと、一次変換Tpの係数の部分集合622へと適用される二次変換の部分集合610の中のおよび所定の二次変換Tsとの連結によって定義される変換Tを適用して、所定のブロック18の予測残差の空間領域バージョン618を取得することができ、たとえば、
図16を参照されたい。
【0484】
第2の所定の基準は、たとえば、非ゼロ変換領域エリア623内の非ゼロ係数の数が所定の閾値を下回る場合に、満たされるというようなものである。これは、非ゼロ変換領域エリア623内の非ゼロ係数の数が、所定の閾値を下回る場合には、二次変換Tsによりさらに減らされる必要がないという考え方に基づく。一次変換Tpの非ゼロ係数が少数である場合、所定の二次変換を追加で適用するのは有利ではないことがあり、それが理由で、デコーダは、変換Tが一次変換Tpであると推測する。非ゼロ係数の数が所定の閾値を下回る場合、所定の二次変換のための追加のシグナリングのコストは、所定の二次変換により達成されるコーディング効率の向上より大きい。デコーダは、部分集合の選択608を実行し、非ゼロ変換領域エリア623内の非ゼロ係数の数が所定の閾値以上である場合、一次変換Tpと、一次変換Tpの係数の部分集合622へと適用される二次変換の部分集合610の中の所定の二次変換Tsとの連結によって定義される変換Tを適用して、所定のブロック18の予測残差の空間領域バージョン618を取得し得る。
【0485】
ある実施形態によれば、たとえば
図12に関して説明されるように、デコーダ/エンコーダは、所定のブロック18がイントラ予測モードの第1の集合508のうちの1つを使用して予測されるべきかどうかを示す、集合選択シンタックス要素522をデータストリーム12から導出する/データストリーム12へと符号化するように構成される。所定のブロック18がイントラ予測モードの第1の集合508のうちの1つを使用して予測されるべきであることを集合選択シンタックス要素522が示す場合、デコーダ/エンコーダは、所定のブロック18の近傍の近傍ブロック524および526がそれを用いて予測されるイントラ予測モードに基づいて、最尤イントラ予測モードのリスト528を形成し、最尤イントラ予測モードのリスト528上の所定のイントラ予測モード604を指し示すMPMリストインデックス534をデータストリーム12から導出する/データストリーム12へとシグナリングするように構成される。所定のブロック18がイントラ予測モードの第1の集合508のうちの1つを使用して予測されるべきであることを集合選択シンタックス要素522が示す場合、デコーダ/エンコーダは、行列ベースのイントラ予測モード510の第2の集合520の中の所定のイントラ予測モード604を示す、さらなるインデックス540および/または546をデータストリームから導出する/データストリームへと符号化するように構成される。
【0486】
図13に関して説明される、デコーダおよびエンコーダは、
図12に関して説明されるようなさらなる特徴および/または機能を含み得る。
【0487】
所定のブロック18のための所定のイントラ予測モード604が第2の集合520の中の行列ベースのイントラ予測モード510である場合、所定のブロック18を復号するための装置、すなわち
図13によるデコーダ、および/または、所定のブロック18を符号化するための装置、すなわち
図13によるエンコーダは、以下の特徴のうちの1つまたは複数を含み得る。
【0488】
ある実施形態によれば、装置は、複数の参照サンプル17の中からサンプル値ベクトル、たとえば、
図6から
図9の実施形態のうちの1つに関して説明されたようなサンプル値ベクトル400を形成し、サンプル値ベクトルがベクトル514への所定の正則線形変換によってマッピングされるように、ベクトル514をサンプル値ベクトルから導出するように構成される。この場合、ベクトル514はさらなるベクトルとして理解され得る。ベクトル514は、たとえば、
図8から
図11の実施形態のうちの1つに関してさらなるベクトル402のために説明されたように、決定および/または定義される。
【0489】
ある実施形態によれば、装置は、サンプル値ベクトルの各成分に対して、サンプル値ベクトルのそれぞれの成分として複数の参照サンプルのうちの1つの参照サンプルを採用すること、および/または、サンプル値ベクトルの2つ以上の成分を平均化してサンプル値ベクトルのそれぞれの成分を取得することによって、複数の参照サンプル17からサンプル値ベクトルを形成するように構成される。
【0490】
複数の参照サンプル17は、たとえば、所定のブロック18の外側の縁に沿ってピクチャ内に並んでいる。
【0491】
正則線形変換は、たとえば、ベクトル514の、たとえばさらなるベクトルの所定の成分がaになり、所定の成分を除くベクトル514の他の成分の各々が、サンプル値ベクトルの対応する成分からaを引いたものに等しいように定義される。値aは、たとえば所定の値1400である。
【0492】
ある実施形態によれば、所定の値1400は、サンプル値ベクトルの成分の、算術平均または加重平均などの平均、デフォルト値、ピクチャがコーディングされるデータストリームにおいてシグナリングされる値、および所定の成分に対応するサンプル値ベクトルの成分のうちの1つである。
【0493】
正則線形変換は、たとえば、ベクトル514、たとえばさらなるベクトルの所定の成分がaになり、所定の成分を除くベクトル514の他の成分の各々がサンプル値ベクトルの対応する成分からaを引いたものに等しいように定義され、aはサンプル値ベクトルの成分の算術平均である。
【0494】
正則線形変換は、たとえば、ベクトル514、たとえばさらなるベクトルの所定の成分がaになり、所定の成分を除くベクトル514の他の成分の各々がサンプル値ベクトルの対応する成分からaを引いたものに等しいように定義され、aは所定の成分に対応するサンプル値ベクトルの成分である。装置は、たとえば、その各々がベクトル514の1つの成分と関連付けられる複数の正則線形変換を含み、サンプル値ベクトルの成分から所定の成分を選択し、所定の成分と関連付けられる複数の正則線形変換からの正則線形変換を所定の正則線形変換として使用するように構成される。
【0495】
ある実施形態によれば、ベクトル514、たとえばさらなるベクトルの所定の成分に対応する予測行列516の列内の予測行列516の行列成分は、すべて0である。装置は、
図9cに示されるように、その列を除外することによって予測行列516から得られる縮小された予測行列と、所定の成分を除外することによってベクトル514から得られるさらなるベクトル410との行列ベクトル積512を計算することにより乗算を実行することによって、行列ベクトル積512を計算するように構成される。
【0496】
ある実施形態によれば、装置は、予測ベクトル518に基づいて所定のブロック18のサンプルを予測する際に、予測ベクトル518の各成分に対してそれぞれの成分とaの合計を計算するように構成される。
【0497】
ベクトル514、たとえばさらなるベクトルの所定の成分に対応する、値が1である予測行列516の列内の予測行列516の各行列成分を加算する(すなわち、
図9aに示される行列C405と行列M1300の加算、
図8の行列Bをもたらす)ことにより得られる行列と正則線形変換を乗じたものは、たとえば、機械学習予測行列の量子化されたバージョン(すなわち、
図8に示される予測行列A1100)に対応する。
【0498】
ある実施形態によれば、装置は、固定小数点算術演算を使用して行列ベクトル積512を計算するように構成される。
【0499】
ある実施形態によれば、装置は、浮動小数点算術演算なしで行列ベクトル積512を計算するように構成される。
【0500】
ある実施形態によれば、装置は、予測行列516の固定小数点数表現を記憶するように構成される。
【0501】
ある実施形態によれば、装置は、予測パラメータを使用して予測行列516を表現し、ベクトル514の、たとえばさらなるベクトルの成分ならびに予測パラメータならびにそれらから得られる中間の結果についての乗算および加算を実行することによって行列ベクトル積512を計算するように構成され、予測パラメータの絶対値は、nビットの固定小数点数表現により表現可能であり、nは14以下であり、または代替として10以下であり、または代替として8以下である。これは、同様に、または
図10もしくは
図11において説明されるように実行され得る。
【0502】
予測パラメータは、たとえば、予測行列516の対応する行列成分と各々が関連付けられる重みを含む。
【0503】
予測パラメータはさらに、たとえば、予測行列516の1つもしくは複数の対応する行列成分と関連付けられる重みをスケーリングするための予測行列516の1つもしくは複数の対応する行列成分と各々が関連付けられる1つもしくは複数のスケーリング係数、および/または、予測行列516の1つもしくは複数の対応する行列成分と関連付けられる重みをオフセットするための予測行列516の1つもしくは複数の対応する行列成分と各々が関連付けられる1つもしくは複数のオフセットを含む。
【0504】
ある実施形態によれば、装置は、予測ベクトル518に基づいて所定のブロック18のサンプルを予測する際に、所定のブロック18内の対応する位置とその各成分が関連付けられる予測ベクトル518に基づいて、所定のブロック18の少なくとも1つのサンプル位置を計算するために、補間を使用するように構成される。
【0505】
図13に関して説明されたデコーダおよびエンコーダは、
図6から
図11の1つまたは複数の実施形態に関して説明されたようなさらなる特徴および/または機能を含み得る。
【0506】
したがって、本発明により提供される解決策は、所与の変換集合S612の中の変換の1つの特定の集合160を各MIPモード510に関連付けることであり、後者は元々、従来のイントラ予測モード、すなわち第1の集合508内のイントラ予測モードのために定義されている。これを行うための1つの具体的な方法は、最初はPlanarモード504およびDCモード506のために設計されたLFNST変換、すなわち二次変換を、すべてのMIPモード510が使用するということである。たとえば、縮小された予測信号に任意選択で適用されるダウンサンプリングにより、MIPモード510は、Planarモード504およびDCモード506のように非方向性であるので、それらの予測残差は、Angularモード500の予測残差よりも、DCモード506およびPlanarモード504の予測残差とのより大きい統計的な類似性を有する。
【0507】
前述の方法でMIP510に対してLFNSTを許容すること、すなわち二次変換の使用を許容することが、一部のブロック形状ではコーディング効率の点で有益であり、および他のブロック形状では有益ではないことがあると判明することがあり、これは、後者の形状では、LFNSTがMIPモード510でブロック18のために適用されるべきかどうかをシグナリングするための追加のシグナリングのコストが、平均すると、MIPモード510のためにLFNST変換を許容することにより得られる利益より大きいことを意味する。したがって、本発明のある実施形態では、LFNSTおよびMIP510の前述の組合せは、そのような組合せが原則として可能であるすべてのブロック形状の部分集合でのみ許容される。
【0508】
図17は、イントラ予測を用いてピクチャの所定のブロック(18)を復号するための方法6000を示し、これは、データストリームに基づいて、DCイントラ予測モード(506)およびAngular予測モード(500)および任意選択でPlanarイントラ予測モード(504)を含むイントラ予測モードの第1の集合(508)と、行列ベースのイントラ予測モード(510)の第2の集合(520)と、を含む複数のイントラ予測モード(600)から所定のイントラ予測モード(604)を選択する(602)ステップを含み、行列ベースのイントラ予測モードの各々に従って、予測ベクトル(518)を取得するために、所定のブロックの近傍の参照サンプル(17)から導出されるベクトル(514)とそれぞれの行列ベースのイントラ予測モードと関連付けられる予測行列(516)の行列ベクトル積(512)が使用され、予測ベクトルに基づいて、所定のブロックのサンプルが予測される。所定のブロックのための予測信号(606)は、所定のイントラ予測モードを使用して導出され(6100)、二次変換の集合(612)の中の1つまたは複数の二次変換の部分集合(610)は、所定のイントラ予測モードがイントラ予測モードの第1の集合(508)に含まれる場合、および所定のイントラ予測モードが行列ベースのイントラ予測モード(510)の第2の集合(520)に含まれる場合に、部分集合(610)が非空であるように、所定のイントラ予測モードに依存した方式で選択される(608)。方法6000は、所定のイントラ予測モードがイントラ予測モードの第1の集合(508)に含まれる場合、および所定のイントラ予測モードが行列ベースのイントラ予測モード(510)の第2の集合(520)に含まれる場合、データストリームから、一次変換(Tp)と、一次変換の係数(620)の部分集合(622)へと適用される二次変換の部分集合(610)からの所定の二次変換(Ts)との連結によって定義される変換(T)を介して、所定のブロックの予測残差の空間領域バージョン(618)に関係する所定のブロック(18)についての予測残差の変換されたバージョン(616)を導出するステップ(614)を含む。加えて、方法6000は、所定のブロック(18)のための予測信号および予測残差を使用して、所定のブロックを再構築するステップ(624)を含む。
【0509】
図18は、DCイントラ予測モード(506)およびAngular予測モード(500)を含むイントラ予測モードの第1の集合(508)と、行列ベースのイントラ予測モード(510)の第2の集合(520)と、を含む複数のイントラ予測モード(600)から所定のイントラ予測モード(604)を選択するステップ(602)を含む、イントラ予測を用いてピクチャの所定のブロック(18)を符号化するための方法7000を示し、それらの行列ベースのイントラ予測モードの各々に従って、所定のブロックの近傍の参照サンプル(17)から導出されたベクトル(514)とそれぞれの行列ベースのイントラ予測モードと関連付けられる予測行列(516)の行列ベクトル積(512)が、予測ベクトル(518)を取得するために使用され、これに基づいて、所定のブロックのサンプルが予測される。加えて、方法7000は、データストリームにおいて所定のイントラ予測モード(604)をシグナリングするステップ(7100)と、所定のイントラ予測モードを使用して所定のブロックのための予測信号(606)を導出するステップ(7200)と、二次変換の集合(612)から1つまたは複数の二次変換の部分集合(610)を、所定のイントラ予測モードがイントラ予測モードの第1の集合(508)に含まれ、所定のイントラ予測モードが行列ベースのイントラ予測モード(510)の第2の集合(520)に含まれる場合に、部分集合(610)が非空であるように、所定のイントラ予測モードに依存した方式で選択するステップ(608)とを含む。方法は、所定のイントラ予測モードがイントラ予測モードの第1の集合(508)に含まれる場合、および所定のイントラ予測モードが行列ベースのイントラ予測モード(510)の第2の集合(520)に含まれる場合に、一次変換(Tp)と、一次変換の係数(620)の部分集合(622)へと適用される二次変換の部分集合(610)からの所定の二次変換(Ts)との連結によって定義される変換(T)を介して、変換されたバージョンは所定のブロックの予測残差の空間領域バージョン(618)に関連する所定のブロック(18)についての予測残差の変換されたバージョン(616)をデータストリームへと符号化するステップ(614)を含み、所定のブロックは、所定のブロック(18)のための予測信号および予測残差を使用して再構築可能である(624)。
【0510】
(参考文献)
【0511】
さらなる実施形態および例
一般に、例は、プログラム命令を伴うコンピュータプログラム製品として実装されてもよく、プログラム命令は、コンピュータプログラム製品がコンピュータ上で実行されると、方法のうちの1つを実行するように動作可能である。プログラム命令は、たとえば機械可読媒体に記憶され得る。
【0512】
他の例は、機械可読担体に記憶された、本明細書において説明される方法のうちの1つを実行するためのコンピュータプログラムを含む。
【0513】
言い換えると、方法の例は、したがって、コンピュータプログラムがコンピュータ上で実行されると、本明細書において説明される方法のうちの1つを実行するためのプログラム命令を有するコンピュータプログラムである。
【0514】
方法のさらなる例は、したがって、本明細書において説明される方法のうちの1つを実行するためのコンピュータプログラムが記録されている、データ担体媒体(またはデジタル記憶媒体、またはコンピュータ可読媒体)である。データ担体媒体、デジタル記憶媒体、または記録された媒体は、無形で一時的である信号ではなく、有形であり、および/または非一時的である。
【0515】
方法のさらなる例は、したがって、本明細書において説明される方法のうちの1つを実行するためのコンピュータプログラムを表すデータストリームまたは信号のシーケンスである。データストリームまたは信号のシーケンスは、たとえば、データ通信接続を介して、たとえばインターネットを介して伝送され得る。
【0516】
さらなる例は、処理手段、たとえばコンピュータ、または本明細書において説明される方法のうちの1つを実行するプログラマブル論理デバイスを含む。
【0517】
さらなる例は、本明細書において説明される方法のうちの1つを実行するためのコンピュータプログラムがインストールされているコンピュータを含む。
【0518】
さらなる例は、本明細書において説明される方法のうちの1つを実行するためのコンピュータプログラムを受信機に移す(たとえば、電気的にまたは光学的に)装置またはシステムを含む。受信機は、たとえば、コンピュータ、モバイルデバイス、メモリデバイスなどであり得る。装置またはシステムは、たとえば、コンピュータプログラムを受信機に移すためのファイルサーバを含み得る。
【0519】
いくつかの例では、プログラマブル論理デバイス(たとえば、フィールドプログラマブルゲートアレイ)が、本明細書において説明される方法の機能の一部またはすべてを実行するために使用され得る。いくつかの例では、フィールドプログラマブルゲートアレイは、本明細書において説明される方法のうちの1つを実行するために、マイクロプロセッサと協働し得る。一般に、方法は、任意の適切なハードウェア装置によって実行され得る。
【0520】
上述の例は、上で論じられた原理を例示するものにすぎない。本明細書において説明された構成および詳細の修正と変形が明らかであることが理解される。したがって、説明のために提示された具体的な詳細および本明細書の例の説明ではなく、以下の特許請求の範囲により限定されることが意図される。
【0521】
等しいまたは等価な機能をもつ等しいまたは等価な1つまたは複数の要素は、異なる図面に存在する場合であっても、等しいまたは等価な参照番号により以下の説明において表記されている。
【符号の説明】
【0522】
10 ピクチャ
12 データストリーム
14 エンコーダ
16 ビデオ
17 近傍ブロック、近傍サンプル
18 ブロック、所定のブロック
19 ALWIP変換
20 コーディング順序
22 減算器
24 予測信号
26 予測残差信号
28 予測残差エンコーダ
30 量子化器
32 変換段
34 量子化された予測残差信号
36 予測残差再構築段
38 逆量子化器
40 逆変換器
42 加算器
44 予測器
46 ループ内フィルタ
54 デコーダ
56 エントロピーデコーダ
102 縮小された集合
104 サンプル値、サンプル
108 サンプル
110 グループ
112 サンプル
118 サンプル
119 サンプル
120 グループ
150 所定の成分
156 残差提供器
400 サンプル値ベクトル
402 さらなるベクトル
403 正則線形変換
404 行列ベクトル積
405 所定の予測行列
406 予測ベクトル
407 行列ベクトル積
408 さらなるオフセット
409 ベクトル
410 またさらなるベクトル
412 列
414 重み、行列成分
500 Angularイントラ予測モード
502 角度方向
504 INTRA_PLANARモード、Planarイントラ予測モード
506 DCモード、DCイントラ予測モード
508 第1の集合
510 行列ベースのイントラ予測モード
512 行列ベクトル積
514 ベクトル
516 予測行列
518 予測ベクトル
520 第2の集合、乗算
522 集合選択シンタックス要素
524 近傍ブロック
526 近傍ブロック
528 リスト
530 順序
532 MPMシンタックス要素
534 MPMリストインデックス
536 さらなるシンタックス要素
538 さらなるMPMシンタックス要素
540 インデックス、MPMリストインデックス
542 リスト
544 リスト順序
546 さらなるシンタックス要素
600 シンタックス要素
602 シンタックス要素
604 所定のイントラ予測モード
606 予測信号
610 部分集合
611 第1の連合、第2の連合
612 集合
616 変換されたバージョン
618 空間領域バージョン
620 係数
622 部分集合
623 非ゼロの変換領域エリア
1100 機械学習予測行列
1110 オフセットB
1200 さらなる行列B
1300 整数行列、行列M(i0)
1310 行列ベクトル積
1400 所定の値
1500 所定の成分