(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-05-07
(45)【発行日】2025-05-15
(54)【発明の名称】隣接サンプル減少を伴う線形またはアフィン変換を使用するイントラ予測
(51)【国際特許分類】
H04N 19/593 20140101AFI20250508BHJP
H04N 19/11 20140101ALI20250508BHJP
H04N 19/134 20140101ALI20250508BHJP
H04N 19/176 20140101ALI20250508BHJP
H04N 19/59 20140101ALI20250508BHJP
【FI】
H04N19/593
H04N19/11
H04N19/134
H04N19/176
H04N19/59
(21)【出願番号】P 2023176714
(22)【出願日】2023-10-12
(62)【分割の表示】P 2021535642の分割
【原出願日】2019-12-19
【審査請求日】2023-11-09
(32)【優先日】2018-12-20
(33)【優先権主張国・地域又は機関】EP
(73)【特許権者】
【識別番号】500341779
【氏名又は名称】フラウンホーファー-ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン
(74)【代理人】
【識別番号】110002952
【氏名又は名称】弁理士法人鷲田国際特許事務所
(72)【発明者】
【氏名】ファフ・ヨナサン
(72)【発明者】
【氏名】ヘレ・フィリップ
(72)【発明者】
【氏名】シェーファー・ミヒャエル
(72)【発明者】
【氏名】リシュケ・ローマン
(72)【発明者】
【氏名】ヒンツ・トビアス
(72)【発明者】
【氏名】マークル・フィリップ
(72)【発明者】
【氏名】スタレンバーガー・ビョルン
(72)【発明者】
【氏名】ヴィンケン・マーティン
(72)【発明者】
【氏名】シークマン・ミシャ
(72)【発明者】
【氏名】シュヴァルツ・ハイコー
(72)【発明者】
【氏名】マルペ・デトレフ
(72)【発明者】
【氏名】ヴィーガンド・トーマス
【審査官】岩井 健二
(56)【参考文献】
【文献】国際公開第2019/185808(WO,A1)
【文献】国際公開第2018/199051(WO,A1)
【文献】国際公開第2016/199330(WO,A1)
【文献】Jonathan Pfaff, et al.,Intra prediction modes based on neural networks,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-J0037-v1,10th Meeting: San Diego, US,2018年04月,pp.1-14
【文献】Philipp Helle, et al.,CE3-related: Non-linear weighted intra prediction (cross-check report in JVET-K0262),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-K0196-v3,11th Meeting: Ljubljana, SI,2018年07月,pp.1-7
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
データストリーム(12)からのピクチャ(10)を復号するためのデコーダ(54)であって、前記デコーダは前記ピクチャ(10)を所定のブロック(18)を含む異なるブロックサイズの複数のブロックに細分するように構成され、前記デコーダは、複数の隣接サンプル(17)と比較して、サンプル数が、より少ない減少したセットのサンプル値(102)を取得するために、
前記複数の隣接サンプルを減少させる(100,811)ことであって、前記デコーダは、前記複数の隣接サンプル(17)を1つ以上の連続する隣接サンプルのグループ(110)にグループ化し、2つ以上の隣接サンプルを有する1つ以上の隣接サンプルの前記グループ(110)の各々に対して平均化を実行することによって前記減少(100,811)を実行するように構成される、減少させることと、
前記所定のブロック(18)の幅Wおよび高さHに応じて行列(19,17M,Ak)を選択されることであって、その結果、前記所定のブロック(18)に対して選択された前記行列は、以下から選択され、
前記所定のブロック(81)の前記幅Wおよび高さHが、
両方とも4である限り、行列の第1のセッ
トと、
前記所定のブロックの前記幅Wおよび高さHが、
両方とも8、又は前記幅W又は前記高さHのいずれか1つが4である限り、行列の第2のセッ
トと、
又は
それ以外の場合は、行列の第3のセットと、
前記所定のブロック(18)の所定のサンプル(104,118’,188’’)の予測値を取得するために、サンプル値の前記減少したセット(102)に前記選択された行列(19、17M)とオフセット値を適用すること(812)と、
による、デコーダ(54)。
【請求項2】
前記平均化がビットシフトを含む、請求項1に記載のデコーダ。
【請求項3】
補間によって、前記所定のサンプル(104,118’,118’’)および前記複数の隣接サンプル(17)の前記予測値に基づいて、前記所定のブロック(18)のさらなるサンプル(108,108’)の予測値を導出する(813)
ようにさらに構成される、請求項1または2に記載のデコーダ。
【請求項4】
ビットシフトによって補間を実行するように構成されている、請求
項3に記載のデコーダ。
【請求項5】
前記複数の隣接サンプル(17)は、前記所定のブロック(18)の2辺に沿って一次元に延在する、請求項1から4のいずれか一項に記載のデコーダ。
【請求項6】
前記行列は、Pred*QredまたはPred*Q個の重み係数を含み、Predは、サンプル値の前記減少したセット(102)内のサンプル値(102)の数であり、QredまたはQは、前記所定のブロック(18)内の所定のサンプルの数であり、
少なくとも1/4のPred*Qredまたは1/4のPred*Q個の重み係数は非ゼロの重み値であり、
前記Pred*QredまたはPred*Q個の重み係数が、前記QまたはQred個の所定のサンプルの各々について、それぞれの所定のサンプルに関する一連のPred個の重み係数を含み、前記一連のPred個の重み係数が、前記所定のブロック(18)の前記所定のサンプル間のラスタスキャン順序に従って上下に配置されると、全方向的に非線形である包絡線を形成する、請求項1から5のいずれか一項に記載のデコーダ。
【請求項7】
前記所定のブロック(18)について、前記データストリーム(12)から予測残差(34’’)を導出し、
前記所定のサンプル(24’,104,108,108’)に対する前記予測残差(34’’)および前記予測値(24’)を使用して、前記所定のブロック(18)を再構成する(42’)
ように構成される、請求項1から6のいずれか一項に記載のデコーダ。
【請求項8】
所定のブロック(18)を含む異なるブロックサイズの複数のブロックにサブ分割されたピクチャ(16)を復号する復号方法であって、前記方法は、
複数の隣接サンプル(17)と比較して、サンプル数が、より少ない減少したセットのサンプル値(102)を取得するために、前記複数の隣接サンプルを減少させる(100,811)ことによって、前記複数の隣接サンプルを使用して、前記ピクチャの所定のブロック(18)を予測することであって、減少させることは、前記複数の隣接サンプル(17)を1つ以上の連続する隣接サンプルのグループ(110)にグループ化することと、2つ以上の隣接サンプルを有する1つ以上の隣接サンプルの前記グループ(110)の各々に対して平均化を実行することと、を含み、
前記所定のブロック(18)の幅Wおよび高さHに応じて行列(19,17M,Ak)を選択されることであって、その結果、前記所定のブロック(18)に対して選択された前記行列は、以下から選択され、
前記所定のブロック(81)の前記幅Wおよび高さHが、
両方とも4である限り、行列の第1のセッ
トと、
前記所定のブロックの前記幅Wおよび高さHが、
両方とも8、又は前記幅W又は前記高さHのいずれか1つが4である限り、行列の第2のセッ
トと、
又は
それ以外の場合は、行列の第3のセットと、
前記所定のブロック(18)の所定のサンプル(104,118’,188’’)の予測値を取得するために、サンプル値の前記減少したセット(102)に前記選択された行列(19、17M)とオフセット値を適用すること(812)と、
を含む、復号方法。
【請求項9】
ピクチャをデータストリームに符号化するためのエンコーダであって、前記エンコーダは前記ピクチャ(16)を所定のブロック(18)を含む異なるブロックサイズの複数のブロックに細分するように構成され、前記エンコーダは、
複数の隣接サンプルと比較して、サンプル数が、より少ない減少したセット(102)のサンプル値を取得するために、前記複数の隣接サンプルを減少させる(100,811)ことと、
前記所定のブロック(18)の幅Wおよび高さHに応じて行列(19,17M,Ak)を選択されることであって、その結果、前記所定のブロック(18)に対して選択された前記行列は、以下から選択され、
前記所定のブロック(81)の前記幅Wおよび高さHが、
両方とも4である限り、行列の第1のセッ
トと、
前記所定のブロックの前記幅Wおよび高さHが、
両方とも8、又は前記幅W又は前記高さHのいずれか1つが4である限り、行列の第2のセッ
トと、
又は
それ以外の場合は、行列の第3のセットと、
前記所定のブロック(18)の所定のサンプル(104,118’,188’’)の予測値を取得するために、サンプル値の前記減少したセット(102)に前記選択された行列(19、17M)とオフセット値を適用すること(812)と、
を含む、エンコーダ。
【請求項10】
ビットシフトによる平均化を実行するように構成される、請求項9に記載のエンコーダ。
【請求項11】
補間によって、前記所定のサンプルおよび前記複数の隣接サンプルの前記予測値に基づいて、前記所定のブロックのさらなるサンプル(108)の予測値を導出する
ように構成される、請求項9に記載のエンコーダ。
【請求項12】
前記複数の隣接サンプルは、前記所定のブロックの2辺に沿って一次元に延在する、請求項9から11のいずれか一項に記載のエンコーダ。
【請求項13】
前記行列は、Pred*QredまたはPred*Q個の重み係数を含み、Pは、サンプル値の前記減少したセット(102)内のサンプル値の数であり、Qは、前記所定のブロック内の所定のサンプルの数であり、
少なくとも1/4のPred*Qredまたは1/4のPred*Q個の重み係数は非ゼロの重み値であり、
前記Pred*QredまたはPred*Q個の重み係数が、前記QまたはQred個の所定のサンプルの各々について、それぞれの所定のサンプルに関する一連のPred個の重み係数を含み、前記一連のPred個の重み係数が、前記所定のブロックの前記所定のサンプル間のラスタスキャン順序に従って上下に配置されると、全方向的に非線形である包絡線を形成する、請求項9から12のいずれか一項に記載のエンコーダ。
【請求項14】
前記所定のブロックについて、前記所定のサンプルの予測残差および前記予測値を使用して前記所定のブロックが再構成可能な前記データストリームに前記予測残差を挿入するようにさらに構成される、請求項9から13のいずれか一項に記載のエンコーダ。
【請求項15】
所定のブロック(18)を含む異なるブロックサイズの複数のブロックにサブ分割されたピクチャ(16)を符号化する符号化方法であって、前記方法は、
複数の隣接サンプル(17a、17c)を使用して前記ピクチャの所定のブロック(18)を予測することと、
複数の隣接サンプルと比較して、サンプル数が、より少ない減少したセット(102)のサンプル値を取得するために、前記複数の隣接サンプルを減少させる(100,811)ことと、
前記所定のブロック(18)の幅Wおよび高さHに応じて行列(19,17M,Ak)を選択されることであって、その結果、前記所定のブロック(18)に対して選択された前記行列は、以下から選択され、
前記所定のブロック(81)の前記幅Wおよび高さHが、
両方とも4である限り、行列の第1のセッ
トと、
前記所定のブロックの前記幅Wおよび高さHが、
両方とも8、又は前記幅W又は前記高さHのいずれか1つが4である限り、行列の第2のセッ
トと、
又は
それ以外の場合は、行列の第3のセットと、
前記所定のブロック(18)の所定のサンプル(104,118’,188’’)の予測値を取得するために、サンプル値の前記減少したセット(102)に前記選択された行列(19、17M)とオフセット値を適用すること(812)と、 による、符号化方法。
【請求項16】
プロセッサによって実行されると、前記プロセッサに請求項8または15に記載の方法を実行させる命令を記憶する非一時的記憶ユニット。
【発明の詳細な説明】
【技術分野】
【0001】
1 導入
以下では、異なる本発明の実施例、実施形態および態様を説明する。これらの例、実施形態、および態様の少なくともいくつかは、とりわけ、ビデオコーディングのための、および/または例えば隣接サンプル減少を伴う線形またはアフィン変換を使用してイントラ予測を実行するための、および/または例えばビデオアプリケーションおよび/または仮想現実アプリケーションのためのビデオ配信(例えば、放送、ストリーミング、ファイル再生など)を最適化するための方法および/または装置に関する。さらに、例、実施形態、および態様は、高効率ビデオコーディング(HEVC)または後継に関する。また、さらなる実施形態、例および態様は、添付の特許請求の範囲によって定義される。
【背景技術】
【0002】
特許請求の範囲によって定義される任意の実施形態、例および態様は、以下の章に記載される詳細(特徴および機能)のいずれかによって補足することができることに留意されたい。
【0003】
また、以下の章に記載される実施形態、例、および態様は、個別に使用することができ、別の章の特徴のいずれか、または特許請求の範囲に含まれる任意の特徴によって補足することもできる。
【0004】
また、本明細書に記載の個々の例、実施形態および態様は、個別にまたは組み合わせて使用することができることに留意されたい。したがって、詳細は、態様の別の1つに詳細を追加することなく、例、実施形態および個々の態様のそれぞれに追加することができる。
本開示は、復号および/または符号化システムおよび/または方法の特徴を明示的または暗黙的に説明することにも留意されたい。
【0005】
さらに、方法に関連して本明細書に開示された特徴および機能を装置で使用することもできる。さらに、装置に関して本明細書に開示された任意の特徴および機能を、対応する方法で使用することもできる。言い換えれば、本明細書に開示された方法は、装置に関して説明された特徴および機能のいずれかによって補完することができる。また、本明細書で説明される特徴および機能のいずれも、「さらなる実施形態および例」などの他のセクションで説明されるように、ハードウェアもしくはソフトウェアで、またはハードウェアとソフトウェアの組み合わせを使用して実装することができる。
【0006】
さらに、括弧内に記載された特徴のいずれか(「(...)」または「[...]」)は、いくつかの例、実施形態、または態様では任意選択であると見なされ得る。
【発明の概要】
【発明が解決しようとする課題】
【0007】
【課題を解決するための手段】
【0008】
1.1 概要
一態様によれば、データストリームからピクチャを復号するためのデコーダであって、複数の隣接サンプルを使用して、
【0009】
複数の隣接サンプルと比較して、サンプル数が、より少ないサンプル値の減少したセットを取得するために、複数の隣接サンプルを減少させる(例えば、平均化またはダウンサンプリングによって)ことと、
所定のブロックの所定のサンプルの予測値を取得するために、サンプル値の減少したセットを線形またはアフィン線形変換に供することと
によって、ピクチャの所定のブロックを予測するように構成される、デコーダが提供される。
【0010】
例では、デコーダは、複数の隣接サンプルと比較して、サンプル数が、より少ないサンプル値の減少したセットを取得するために、減少する、例えば複数の隣接サンプルのダウンサンプリングを平均化することを実行するようにさらに構成され得る。
【0011】
場合によっては、デコーダはまた、例えば補間によって、所定のサンプルおよび複数の隣接サンプルの予測値に基づいて、所定のブロックのさらなるサンプルの予測値を導出することもある。したがって、アップサンプリング動作を適用し得る。
一態様によれば、データストリームからピクチャを符号化するためのエンコーダであって、複数の隣接サンプルを使用して、
【0012】
複数の隣接サンプルと比較して、サンプル数が、より少ないサンプル値の減少したセットを取得するために、複数の隣接サンプルを減少させる(例えば、平均化またはダウンサンプリングによって)ことと、
所定のブロックの所定のサンプルの予測値を取得するために、サンプル値の減少したセットを線形またはアフィン線形変換に供することと
によって、ピクチャの所定のブロックを予測するように構成される、エンコーダが提供される。
【0013】
例では、エンコーダは、複数の隣接サンプルと比較して、サンプル数が、より少ないサンプル値の減少したセットを取得するために、複数の隣接サンプルをダウンサンプリングすることによって減少を実行するようにさらに構成され得る。
【0014】
場合によっては、エンコーダはまた、例えば補間によって、所定のサンプルおよび複数の隣接サンプルの予測値に基づいて、所定のブロックのさらなるサンプルの予測値を導出することもある。したがって、アップサンプリング動作を適用し得る。
【0015】
例では、上記のようなエンコーダおよび/または上記のようなデコーダを備えるシステムが提供されてもよい。いくつかの例では、エンコーダのハードウェアおよび/または少なくともいくつかの手続きルーチンは、デコーダのものと同じであってもよい。
【0016】
実施例では、複数の隣接サンプルと比較して、サンプル数が、より少ない減少したセットのサンプル値を取得するために、複数の隣接サンプルを減少させることによって、例えば、ダウンサンプリングまたは平均化することによって、複数の隣接サンプルを使用して、ピクチャの所定のブロックを予測することと、
所定のブロックの所定のサンプルの予測値を取得するために、減少したセットのサンプル値を線形またはアフィン線形変換に供することと
を含む、復号方法が提供され得る。
【0017】
実施例では、複数の隣接サンプルと比較して、サンプル数が、より少ない減少したセットのサンプル値を取得するために、複数の隣接サンプルを減少させることによって、例えば、ダウンサンプリングまたは平均化することによって、複数の隣接サンプルを使用して、ピクチャの所定のブロックを予測することと、
所定のブロックの所定のサンプルの予測値を取得するために、減少したセットのサンプル値を線形またはアフィン線形変換に供することと
を含む、符号化方法が提供され得る。
実施例では、プロセッサによって実行されると、プロセッサに上記の方法を実行させる命令を記憶する非一時的記憶ユニットが提供され得る。
1.3 図面
【図面の簡単な説明】
【0018】
【
図12】予測対象ブロックの次元を予測モードに関連付けるスキームを示す。
【
図13】本発明を理解するのに有用なスキームを示す。
【発明を実施するための形態】
【0019】
2 エンコーダ、デコーダ
以下では、イントラ予測を使用する場合に、より効果的な圧縮を達成するのを支援し得る様々な例が記載される。いくつかの例は、イントラ予測モードのセットを消費することによって圧縮効率の向上を達成する。後者は、例えばヒューリスティックに設計された他のイントラ予測モードに追加されてもよく、または排他的に提供されてもよい。また、さらに他の例では、前述の専門分野の両方を利用している。
【0020】
本出願の以下の例の理解を容易にするために、説明は、続いて概説される本出願の例を構築することができる可能なエンコーダおよびそれに適合するデコーダの提示から始まる。
図1は、ピクチャ10をデータストリーム12にブロック単位で符号化するための装置を示す。装置は、参照符号14を使用して示され、静止画エンコーダまたはビデオエンコーダであってもよい。言い換えれば、エンコーダ14がピクチャ10を含むビデオ16をデータストリーム12に符号化するように構成されている場合、ピクチャ10は、ビデオ16のうちの現在のピクチャであってもよく、またはエンコーダ14は、ピクチャ10をデータストリーム12に排他的に符号化してもよい。
【0021】
上述したように、エンコーダ14は、ブロック単位またはブロックベースで符号化を実行する。これのために、エンコーダ14はピクチャ10をブロックにサブ分割し、ブロックの単位でエンコーダ14はピクチャ10をデータストリーム12に符号化する。ピクチャ10のブロック18への可能なサブ分割の例は、以下により詳細に記載される。一般に、サブ分割は、ピクチャ10のピクチャエリア全体から、またはピクチャ10の事前分割からツリーブロックの配列へのマルチツリーサブ分割を開始する階層マルチツリーサブ分割の使用などによって、行および列に配置されたブロックの配列などの一定サイズのブロック18、または異なるブロックサイズのブロック18に最終的になることができ、これらの例は、ピクチャ10をブロック18にサブ分割する他の可能な方法を除外するものとして扱われない。
【0022】
さらに、エンコーダ14は、ピクチャ10をデータストリーム12に予測的に符号化するように構成された予測エンコーダである。特定のブロック18の場合、これは、エンコーダ14がブロック18の予測信号を決定し、予測残差、すなわち予測信号がブロック18内の実際のピクチャコンテンツから逸脱する予測誤差をデータストリーム12に符号化することを意味する。
【0023】
エンコーダ14は、あるブロック18の予測信号を導出するために、異なる予測モードをサポートし得る。以下の例で重要である予測モードはイントラ予測モードであり、それに従ってブロック18の内部がピクチャ10の隣接する既に符号化されたサンプルから空間的に予測される。ピクチャ10のデータストリーム12への符号化、したがって対応する復号手順は、ブロック18間で定義された特定の符号化順序20に基づくことができる。例えば、符号化順序20は、例えば、各行を左から右にトラバースしながら、行単位で上から下へなどのラスタスキャン順序でブロック18をトラバースし得る。階層的マルチツリーベースのサブ分割の場合、ラスタスキャン順序付けは各階層レベル内で適用されてもよく、深さ優先トラバース順序が適用されてもよく、すなわち、特定の階層レベルのブロック内のリーフノードは、符号化順序20に従って同じ親ブロックを有する同じ階層レベルのブロックに先行してもよい。符号化順序20に応じて、ブロック18の隣接する既に符号化されたサンプルは、通常、ブロック18の1つ以上の側に位置し得る。本明細書に提示される例の場合、例えば、ブロック18の隣接する既に符号化されたサンプルは、ブロック18の上部および左側に位置する。
【0024】
イントラ予測モードは、エンコーダ14によってサポートされている唯一のモードではないことがある。例えば、エンコーダ14がビデオエンコーダである場合、エンコーダ14はまた、ビデオ16の以前に符号化されたピクチャから、ブロック18が一時的に予測されるインター予測モードをサポートし得る。そのようなインター予測モードは、動き補償予測モードであってもよく、それに従って、ブロック18の予測信号が複製として導出される部分の相対空間オフセットを示すブロック18などに対して、動きベクトルがシグナリングされる。追加的または代替的に、エンコーダ14がマルチビューエンコーダである場合のインター予測モード、またはブロック18の内部がそのまま、すなわち予測なしで符号化される非予測モードとともに、他の非イントラ予測モードも利用可能であり得る。
【0025】
本出願の説明をイントラ予測モードに集中することを始める前に、
図2に関して説明したように、可能なブロックベースのエンコーダ、すなわちエンコーダ14の可能な実装形態のより具体的な例を示し、次に、それぞれ
図1および
図2に適合するデコーダの2つの対応する例を示す。
【0026】
図2は、
図1のエンコーダ14の可能な実装形態、すなわち、エンコーダが予測残差を符号化するために変換符号化を使用するように構成されているが、これはほぼ一例であり、本出願はその種の予測残差符号化に限定されない。
図2によれば、エンコーダ14は、インバウンド信号、すなわちピクチャ10、またはブロックベースで現在のブロック18から、対応する予測信号24を減算して予測残差信号26を取得し、これは次に、予測残差エンコーダ28によってデータストリーム12に符号化されるように構成された減算器22を備える。予測残差エンコーダ28は、非可逆符号化段28aと可逆符号化段28bとから構成される。非可逆段28aは、予測残差信号26を受け取り、予測残差信号26のサンプルを量子化する量子化器30を備える。既に上述したように、本例は、予測残差信号26の変換符号化を使用し、したがって、非可逆符号化段28aは、減算器22と量子化器30との間に接続された変換段32を備え、残差信号26を提示する変換された係数に対して行われる量子化器30の量子化で、スペクトル分解された予測残差26を変換する。変換は、DCT、DST、FFT、アダマール変換などであってもよい。次いで、変換され量子化された予測残差信号34は、エントロピコーダのエントロピ符号化量子化予測残差信号34である可逆符号化段28bによって可逆符号化に供されデータストリーム12になる。エンコーダ14は、量子化器30の出力に接続された予測残差信号再構成段36をさらに備え、それにより、変換および量子化された予測残差信号34からデコーダでも利用可能な方法で、すなわち符号化損失を量子化器30で考慮し、予測残差信号を再構成する。この目的のために、予測残差再構成段36は逆量子化器38を備え、これは量子化器30の量子化の逆を実行し、その後に逆変換器40が続き、これは上述の特定の変換例のいずれかに対する逆などのスペクトル分解の逆など、変換器32によって実行される変換に対して逆変換を実行する。エンコーダ14は、逆変換器40によって出力された再構成された予測残差信号と予測信号24とを加算して、再構成された信号、すなわち再構成されたサンプルを出力する加算器42を備える。この出力は、エンコーダ14の予測子44に供給され、予測子は、それに基づいて予測信号24を決定する。これは、
図1に関して既に上述したすべての予測モードをサポートする予測子44である。
図2はまた、エンコーダ14がビデオエンコーダである場合を示し、エンコーダ14はまた、フィルタリングされた後、インター予測ブロックに関する予測子44のための参照ピクチャを形成する、完全に再構成されたピクチャをフィルタリングするインループフィルタ46を備えてもよい。
【0027】
既に上述したように、エンコーダ14はブロックベースで動作する。以下の説明のために、関心のあるブロックベースは、ピクチャ10をブロックにサブ分割し、ブロックのために予測子44またはエンコーダ14によってそれぞれサポートされるセットまたは複数のイントラ予測モードからイントラ予測モードが選択され、選択されたイントラ予測モードが個別に実行される。しかしながら、ピクチャ10がサブ分割される他の種類のブロックも存在し得る。例えば、ピクチャ10がインター符号化されるかイントラ符号化されるかの上述の決定は、粒度で、またはブロック18から逸脱するブロックの単位で行われ得る。例えば、インター/イントラモード決定は、ピクチャ10がサブ分割され、各符号化ブロックが予測ブロックにサブ分割される符号化ブロックのレベルで実行されてもよい。イントラ予測が使用されると決定された符号化ブロックを有する予測ブロックは、それぞれイントラ予測モード決定にサブ分割される。これに対して、これらの予測ブロックの各々について、それぞれの予測ブロックに対してどのサポートされているイントラ予測モードを使用すべきかが決定される。これらの予測ブロックは、ここで関心のあるブロック18を形成する。インター予測に関連付けられた符号化ブロック内の予測ブロックは、予測子44によって異なるように処理される。それらは、動きベクトルを決定し、動きベクトルによって指し示される参照ピクチャ内の位置からこのブロックの予測信号を複製することによって、参照ピクチャからインター予測される。別のブロックサブ分割は、変換器32および逆変換器40による変換が実行される単位での変換ブロックへのサブ分割に関する。変換されたブロックは、例えば、符号化ブロックをさらにサブ分割した結果であり得る。当然ながら、本明細書に記載の実施例は限定的であるとして扱われるべきではなく、他の実施例も存在する。完全を期すためだけに、符号化ブロックへのサブ分割は、例えば、マルチツリーサブ分割を使用してもよく、予測ブロックおよび/または変換ブロックはまた、マルチツリーサブ分割を使用して符号化ブロックをさらにサブ分割することによって取得されてもよいことに留意されたい。
【0028】
図1のエンコーダ14に適合するブロック単位の復号化のためのデコーダ54または装置が
図3に示されている。このデコーダ54は、エンコーダ14とは反対のことを行い、すなわち、データストリーム12ピクチャ10からブロック単位で復号し、この目的のために、複数のイントラ予測モードをサポートする。デコーダ54は、例えば、残差プロバイダ156を備え得る。
図1に関して上述した他のすべての可能性は、デコーダ54にも有効である。これに対して、デコーダ54は、静止画デコーダまたはビデオデコーダであってもよく、すべての予測モードおよび予測可能性もデコーダ54によってサポートされる。エンコーダ14とデコーダ54との間の違いは、主に、エンコーダ14が、例えば、符号化レートおよび/または符号化歪みに依存し得る何らかのコスト関数を最小化するために、何らかの最適化に従って符号化決定を選択するという事実にある。これらの符号化オプションまたは符号化パラメータのうちの1つは、利用可能またはサポートされるイントラ予測モードの中から、現在のブロック18に使用されるイントラ予測モードの選択を含み得る。次いで、選択されたイントラ予測モードは、デコーダ54がブロック18のデータストリーム12内のこのシグナリングを使用して選択を再実行することにより、データストリーム12内の現在のブロック18のエンコーダ14によってシグナリングされ得る。同様に、ピクチャ10のブロック18へのサブ分割は、エンコーダ14内で最適化に供されることがあり、対応するサブ分割情報は、デコーダ54がサブ分割情報に基づいてピクチャ10のサブ分割をブロック18に復元することによってデータストリーム12内で伝達され得る。上記を要約すると、デコーダ54は、ブロックベースで動作する予測デコーダであってもよく、また、イントラ予測モードに加えて、デコーダ54は、例えばデコーダ54がビデオデコーダである場合には、インター予測モードなどの他の予測モードをサポートしてもよい。復号において、デコーダ54はまた、
図1に関して説明した符号化順序20を使用することができ、この符号化順序20はエンコーダ14とデコーダ54の両方で遵守されるため、同じ隣接サンプルがエンコーダ14とデコーダ54の両方で現在のブロック18に利用可能である。したがって、不必要な繰り返しを回避するために、エンコーダ14の動作モードの説明は、ピクチャ10のブロックへのサブ分割に関する限り、例えば、予測に関する限り、および予測残差の符号化に関する限り、デコーダ54にも適用されるものとする。違いは、エンコーダ14が、最適化によって、いくつかの符号化オプションまたは符号化パラメータおよび信号を選択し、またはデータストリーム12内に符号化パラメータを挿入し、これはその後、デコーダ54によって予測、サブ分割などを再実行するために、データストリーム12から導出されるという事実にある。
【0029】
図4は、
図3のデコーダ54の可能な実装形態、すなわち、
図2に示す
図1のエンコーダ14の実装形態に対して適合する実装形態を示す。
図4のエンコーダ54の多くの要素は
図2の対応するエンコーダで生じるものと同じであるため、これらの要素を示すために、
図4ではアポストロフィが付された同じ参照符号が使用されている。特に、加算器42’、任意選択のインループフィルタ46’および予測子44’は、
図2のエンコーダと同じ方法で予測ループに接続される。加算器42’に適用される再構成された、すなわち逆量子化され再変換された予測残差信号は、エントロピエンコーダ28bのエントロピ符号化を逆にするエントロピデコーダ56のシーケンスによって導出され、符号化側の場合と同様に、逆量子化器38’および逆変換器40’から構成される残差信号再構成段36’が続く。デコーダの出力は、ピクチャ10の再構成である。ピクチャ10の再構成は、加算器42’の出力で直接利用可能であってもよく、あるいはインループフィルタ46’の出力で利用可能であってもよい。ピクチャ品質を改善するためにピクチャ10の再構成を何らかのポストフィルタリングに供するために、デコーダの出力にいくつかのポストフィルタを配置し得るが、このオプションは
図4には示されていない。
【0030】
ここでも、
図4に関して、
図2に関して上述した説明は、エンコーダのみが最適化タスクおよび符号化オプションに関する関連する決定を実行することを除いて、
図4についても同様に有効である。しかしながら、ブロックサブ分割、予測、逆量子化、および再変換に関するすべての説明は、
図4のデコーダ54にも有効である。
3 ALWIP
【0031】
ALWIPに関するいくつかの非限定的な例は、本明細書で説明される技術を具現化するのにALWIPが必ずしも必要ではない場合であっても、本明細書で説明される。
【0032】
本出願は、とりわけ、HEVCまたはHEVCの任意の後続などのビデオコーデックで使用可能であるなどのブロック単位のピクチャ符号化のための改善されたイントラ予測モード概念に関する。
【0033】
イントラ予測モードは、ピクチャおよびビデオコーディングにおいて広く使用されている。ビデオコーディングでは、イントラ予測モードは、動き補償予測モードなどのインター予測モードなどの他の予測モードと競合する。イントラ予測モードでは、現在のブロックは、隣接サンプル、すなわち、エンコーダ側に関する限り既に符号化されており、デコーダ側に関する限り既に復号されているサンプルに基づいて予測される。隣接サンプル値は、現在のブロックの予測信号を形成するように現在のブロックに外挿され、予測残差は現在のブロックのデータストリームで送信される。予測信号が良好であるほど、予測残差は小さくなり、したがって、予測残差を符号化するために必要なビット数は少なくなる。
【0034】
効果的であるためには、ブロック単位のピクチャ符号化環境におけるイントラ予測のための効果的なフレームワークを形成するために、いくつかの態様が考慮されるべきである。例えば、コーデックによってサポートされるイントラ予測モードの数が多いほど、選択をデコーダにシグナリングするためのサイド情報レート消費が大きくなる。一方、サポートされているイントラ予測モードのセットは、良好な予測信号、すなわち、低い予測残差をもたらす予測信号を提供することができなければならない。
【0035】
改善されたイントラ予測モード概念を使用する場合、ブロック単位のピクチャコーデックのより効率的な圧縮を可能にするイントラ予測モード概念が求められている。
【0036】
この目的は、とりわけ、いわゆるアフィン線形重み付きイントラ予測子(ALWIP)変換によって達成される。データストリームからピクチャをブロック単位で復号するための装置(エンコーダまたはデコーダ)が開示されており、この装置は、ピクチャの所定のサイズのブロックのイントラ予測信号が、現在のブロックに隣接サンプルの第1のテンプレートを、シーケンスにおいてアフィン線形重み付きイントラ予測子(ALWIP)と呼ばれるアフィン線形予測子に適用することによって決定される、少なくとも1つのイントラ予測モードをサポートする。
【0037】
装置は、以下の特性(同じことが、例えば、プロセッサによって実行されたときに、プロセッサに、方法を実施させ、かつ/または装置として動作させる命令を記憶する非一時的記憶ユニットに実装される、方法または別の技術に適用されてもよい)のうちの少なくとも1つを有し得る。
3.1 提案された予測子は他の予測子と相補的であり得る
【0038】
装置によってサポートされるイントラ予測モードは、コーデックの他のイントラ予測モードと相補的である。したがって、それらは、HEVCコーデック応答において定義されたDC予測モード、平面予測モード、または角度予測モードと相補的であり得る。JEM参照ソフトウェア。以降、後者の3種類のイントラ予測モードを従来のイントラ予測モードと呼ぶ。したがって、イントラモードの所与のブロックについて、装置によってサポートされるイントラ予測モードのうちの1つが使用されるべきか否かを示すフラグがデコーダによって構文解析される必要がある。
3.2 2つ以上の提案された予測モード
【0039】
装置は、2つ以上のALWIPモードを含むことができる。したがって、装置によってサポートされるALWIPモードのうちの1つが使用されるべきであることをデコーダが知っている場合、デコーダは、装置によってサポートされるALWIPモードのうちのどれが使用されるべきかを示す追加情報を解析する必要がある。
【0040】
サポートされるモードの信号伝達は、いくつかのALWIPモードの符号化が他のALWIPモードよりも少ないビンを必要とし得るという特性を有し得る。これらのモードのうちのどれがより少ないビンを必要とし、どのモードがより多くのビンを必要とするかは、既に復号されたビットストリームから抽出され得るか、または事前に固定され得る情報に依存し得る。
4 いくつかの態様
【0041】
図2は、データストリーム12からピクチャを復号するためのデコーダ54を示す。デコーダ54は、ピクチャの所定のブロック18を復号するように構成され得る。特に、予測子44は、線形またはアフィン線形変換[例えば、ALWIP]を使用して所定のブロック18に隣接するP個の隣接サンプルのセットを所定のブロックのサンプルのQ個の予測値のセットにマッピングするように構成され得る。
【0042】
図5に示すように、所定のブロック18は、予測されるQ個の値(これは、動作の終わりに、「予測値」となる)を含む。ブロック18がM行N列を有する場合、Q=M*Nである。ブロック18のQ値は、空間領域(例えば、画素)または変換領域(例えば、DCT、離散ウェーブレット変換など)にあり得る。ブロック18のQ値は、一般にブロック18に隣接する隣接ブロック17a~17cから取得されたP値に基づいて予測し得る。隣接ブロック17a~17cのP値は、ブロック18に最も近い位置(例えば、隣接する)にあってもよい。隣接ブロック17a~17cのP値は、既に処理および予測されている。P値は、それらが(いくつかの例では、17’bは使用されない)一部であるブロックとP値を区別するために、部分17’a~17’cに値として示されている。
【0043】
図6に示すように、予測を実行するために、P個のエントリを有する第1のベクトル17P(隣接部分17’a~17’cの特定の位置に関連付けられている各エントリ)、Q個のエントリを有する第2のベクトル18Q(ブロック18の特定の位置に関連付けられている各エントリ)、およびマッピング行列17M(ブロック18内の特定の位置に関連付けられている各行、隣接部分17’a~17’c内の特定の位置に関連付けられている各列)を用いて動作することが可能である。したがって、マッピング行列17Mは、所定のモードに従って、隣接部分17’a~17’cのP値のブロック18の値への予測を実行する。したがって、マッピング行列17M内のエントリは、重み係数として理解され得る。以下の節では、17’a~17’cの代わりに符号17a~17cを使用して境界の隣接部分を参照する。
【0044】
当該技術分野では、DCモード、平面モード、および65方向性予測モードなどのいくつかの従来のモードが知られている。例えば、67個のモードが知られている。
【0045】
しかしながら、ここでは線形またはアフィン線形変換と呼ばれる異なるモードを利用することも可能であることに留意されたい。線形またはアフィン線形変換は、P*Q個の重み係数を含み、そのうち少なくとも1/4のP*Q個の重み係数は非ゼロの重み値であり、Q個の予測値の各々について、それぞれの予測値に関連する一連のP個の重み係数を含む。所定のブロックのサンプル間でラスタスキャン順序に従って上下に配置されると、連続により、全方向的に非線形である包絡線を形成する。
【0046】
図13は、隣接する値17’a~17’cのP個の位置(テンプレート)、隣接サンプル17’a~17’cのQ個の位置、および行列17MのP*Q個の重み係数の値をマッピングする
図70の例を示す。平面72は、DC変換の連続の包絡線の例である(DC変換のための平面である)。包絡線は明らかに平面であり、したがって、線形またはアフィン線形変換(ALWIP)の定義によって除外される。別の例は、角度モードのエミュレーションをもたらす行列であり、包絡線はALWIP定義から除外され、平たく言えば、P/Q平面内の方向に沿って上から下に斜めに進む丘のように見える。平面モードおよび65方向性予測モードは異なる包絡線を有するが、これは少なくとも一方向、すなわち、例えば例示されたDCのすべての方向、および例えば角度モードの丘方向において線形である。
【0047】
逆に、線形またはアフィン変換の包絡線は、全方向的線形ではない。そのような種類の変換は、状況によっては、ブロック18の予測を実行するために最適であり得ることが理解されている。重み係数の少なくとも1/4が0とは異なる(すなわち、P*Q個の重み係数の少なくとも25%は0とは異なる)ことが好ましいことに留意されたい。
【0048】
重み係数は、任意の規則的なマッピング規則に従って互いに無関係であってもよい。したがって、行列17Mは、そのエントリの値が明らかな認識可能な関係を有さないようなものであってもよい。例えば、重み係数は、いかなる分析関数または微分関数によっても記述することができない。
【0049】
実施例では、ALWIP変換は、それぞれの予測値に関連する第1の一連の重み係数と、それぞれの予測値以外の予測値に関連する第2の一連の重み係数、または後者の反転されたバージョンとの間の相互相関の最大値の平均は、最大値がより高くなるかどうかにかかわらず、所定の閾値(例えば、0.2または0.3または0.35または0.1、例えば、0.05~0.035の範囲内の閾値)よりも低くてもよい。例えば、ALWIP行列17Mの行の各結合(i1,i2)について、第i1行のP値に第i2行のP値を乗算することで相互相関を算出してもよい。得られた各相互相関について、最大値が得られることがある。したがって、行列17M全体(すなわち、すべての組み合わせにおける相互相関の最大値が平均化される)について平均値を得ることができる。その後、閾値は、例えば、0.2または0.3または0.35または0.1、例えば、0.05~0.035の範囲の閾値であってもよい。
【0050】
ブロック17a~17cのP個の隣接サンプルは、所定のブロック18の境界(例えば、18c、18a)に沿って延びる一次元経路に沿って配置されてもよい。所定のブロック18のQ個の予測値のそれぞれについて、それぞれの予測値に関連する一連のP個の重み係数は、一次元経路を所定の方向(例えば、左から右、上から下など)にトラバースするように順序付けられてもよい。
例では、ALWIP行列17Mは、非対角または非ブロック対角であってもよい。
4つの既に予測された隣接サンプルから4×4ブロック18を予測するためのALWIP行列17Mの例は、以下であってもよい:
{
{37,59,77,28}、
{32,92,85,25}、
{31,69,100,24}、
{33,36,106,29}、
{24,49,104,48}、
{24,21,94,59}、
{29,0,80,72}、
{35,2,66,84}、
{32,13,35,99}、
{39,11,34,103}、
{45,21,34,106}、
{51,24,40,105}、
{50,28,43,101}、
{56,32,49,101}、
{61,31,53,102}、
{61,32,54,100}
}.
【0051】
(ここで、{37,59,77,28}は第1行であり、{32,92,85,25}は第2行であり、{61,32,54,100}は行列17Mの第16行である。)行列17Mは、次元16x4を有し、(16*4=64の結果として)64個の重み係数を含む。これは、行列17Mが次元QxPを有するためであり、ここで、Q=M*Nは予測対象ブロック18(ブロック18は4×4ブロック)のサンプル数であり、Pは既に予測されたサンプルのサンプル数である。ここで、M=4、N=4、Q=16(M*N=4*4=16の結果として)、P=4である。行列は、非対角および非ブロック対角であり、特定の規則によって記述されない。
【0052】
見て分かるように、重み係数の1/4未満は0である(上記の行列の場合、64のうちの1つの重み係数は0である)。これらの値によって形成される包絡線は、ラスタスキャン順序に従って上下に配置されると、全方向的に非線形である包絡線を形成する。
【0053】
上記の説明が主にデコーダ(例えば、デコーダ54)を参照して説明されている場合でも、同じことがエンコーダ(例えば、エンコーダ14)で実行されてもよい。
【0054】
いくつかの例では、(ブロックサイズのセットにおける)各ブロックサイズについて、それぞれのブロックサイズのためのイントラ予測モードの第2のセット内のイントラ予測モードのALWIP変換は、相互に異なる。追加的または代替的に、ブロックサイズのセットにおけるブロックサイズのためのイントラ予測モードの第2のセットの濃度は、一致し得るが、異なるブロックサイズのためのイントラ予測モードの第2のセット内のイントラ予測モードの関連付けられた線形変換またはアフィン線形変換は、スケーリングによって互いへ転送不可能であり得る。
【0055】
いくつかの例では、ALWIP変換は、従来の変換と「共有するものがない」ように定義されてもよい(例えば、ALWIP変換は、上記のマッピングのうちの1つを介してマッピングされている場合であっても、対応する従来の変換と共有するものは「何もない」)。
【0056】
例では、ALWIPモードはルマ成分とクロマ成分の両方に使用されるが、他の例では、ALWIPモードはルマ成分に使用されるが、クロマ成分には使用されない。
5 エンコーダの高速化によるアフィン線形重み付きイントラ予測モード(例えば、試験CE3-1.2.1:)
5.1 方法または装置の説明
【0057】
CE3-1.2.1で試験されたアフィン線形重み付きイントラ予測(ALWIP)モードは、以下の変更を除いて、試験CE3-2.2.2下でJVET-L0199で提案されたものと同じであってもよく、
【0058】
多重基準線(MRL)イントラ予測、特にエンコーダ推定およびシグナリングとの整合、すなわちMRLはALWIPと組み合わされず、MRLインデックスの送信は非ALWIPブロックに制限される。
【0059】
サブサンプリングはすべてのブロックに必須であり、W×H≧32×32(以前は32×32についてオプションであった)、エンコーダにおける追加のテストおよびサブサンプリングフラグの送信は除去されている。
【0060】
64×NおよびN×64ブロック(N≦32)のALWIPは、それぞれ32×NおよびN×32にダウンサンプリングし、対応するALWIPモードを適用することによって追加されている。
さらに、テストCE 3-1.2.1は、ALWIPのための以下のエンコーダ最適化を含み、
【0061】
結合モード推定:従来のモードおよびALWIPモードは、フルRD推定のために共有アダマール候補リストを使用する、すなわち、ALWIPモード候補は、アダマールコストに基づいて従来の(およびMRL)モード候補と同じリストに追加される。
EMTイントラfastおよびPBイントラfastは、結合モードリストのためにサポートされ、フルRDチェックの数を減らすための追加の最適化がある。
利用可能な左および上のブロックのMPMのみが、従来のモードの場合と同じ手法に従って、ALWIPのフルRD推定のためのリストに追加される。
5.2 複雑性評価
【0062】
離散コサイン変換を呼び出す計算を除いて、テストCE3-1.2.1では、予測信号を生成するためにサンプルあたり最大12回の乗算が必要であった。さらに、それぞれ16ビットの合計136492個のパラメータが必要であった。これは、0.273メガバイトのメモリに相当する。
5.3 実験結果
【0063】
試験の評価は、VTMソフトウェアバージョン3.0.1を用いたイントラ専用(AI)およびランダムアクセス(RA)構成について、共通の試験条件JVET-J 1010[2]に従って実施した。対応するシミュレーションは、Linux(登録商標) OSおよびGCC 7.2.1コンパイラを備えたIntel Xeonクラスタ(E5-2697A v4、AVX2オン、ターボブーストオフ)上で実行された。
【0064】
【表1】
5.4 テストCE3-1.2.2:複雑度減少を伴うアフィン線形重み付きイントラ予測
【0065】
CE2で試験された技法は、JVET-L0199[1]に記載されている「アフィン線形イントラ予測」に関連しているが、メモリ要件および計算複雑性の点でそれを単純化する。
【0066】
・すべてのブロック形状をカバーする予測行列(例えば、S0、S1、S2、以下も参照されたい)およびバイアスベクトル(例えば、オフセット値を提供するために)の3つの異なるセットのみが存在し得る。結果として、パラメータの数は14400個の10ビット値に減少し、これは128×128CTUに記憶されるよりもメモリが少ない。
【0067】
・予測子の入力および出力サイズはさらに減少される。さらに、DCTを介して境界を変換する代わりに、平均化またはダウンサンプリングを境界サンプルに対して実行することができ、予測信号の生成は、逆DCTの代わりに線形補間を使用し得る。その結果、予測信号を生成するためにサンプルあたり最大4回の乗算が必要になる場合がある。
6.実施例
ここでは、ALWIP予測を用いていくつかの予測(例えば、
図6に示すように)を実行する方法について説明する。
【0068】
原則として、
図6を参照すると、予測されるMxNブロック18のQ=M*N値を取得するために、QxP ALWIP予測行列17MのQ*P個のサンプルとPx1隣接ベクトル17PのP個のサンプルとの乗算が実行されるべきである。したがって、一般に、予測対象のMxNブロック18のQ=M*N値の各々を得るためには、少なくともP=M+N値の乗算が必要である。
【0069】
これらの乗算は、極めて望ましくない効果を有する。境界ベクトル17Pの次元Pは、一般に、予測すべきMxNブロック18に隣接する(例えば、横)境界サンプル(ビンまたは画素)17a、17cの数M+Nに依存する。これは、予測対象のブロック18のサイズが大きいと、それに応じて境界画素数M+N(17a,17c)が大きくなるため、Px1境界ベクトル17Pの次元P=M+N、QxP ALWIP予測行列17Mの各行の長さ、ひいては必要な乗算回数(一般的に言えば、Q=M*N=W*Hであり、式中、W(幅)はNの別の記号であり、H(高さ)はMの別の記号であり、Pは、境界ベクトルがサンプルの1行および/または1列のみによって形成される場合、P=M+N=H+Wである)が大きくなることを意味する。
【0070】
この問題は、一般に、マイクロプロセッサベースのシステム(または他のデジタル処理システム)では、乗算が一般に電力を消費する動作であるという事実によって悪化する。多数のブロックの非常に多数のサンプルに対して行われる多数の乗算は、一般に望ましくない計算能力の浪費を引き起こすと推測され得る。
したがって、MxNブロック18を予測するために必要な乗算数Q*Pを減少させることが好ましい。
【0071】
乗算に代わる、処理がより容易な演算を知的に選択することによって、予測される各ブロック18の各イントラ予測に必要な計算能力を何らかの形で減少させることが可能であることが理解されている。
【0072】
特に、
図7.1~
図7.4、
図8.1、および
図8.2を参照すると、エンコーダまたはデコーダは、複数の隣接サンプル(例えば17a,17c)を使用して、
【0073】
複数の隣接サンプル(例えば17a,17c)と比較して、サンプル数が、より少ないサンプル値の減少したセットを取得するために、複数の隣接サンプルを減少させる(例えば、平均化またはダウンサンプリングによって)(例えば、ステップ811)ことと、
【0074】
所定のブロックの所定のサンプルの予測値を取得するために、サンプル値の減少したセットを線形またはアフィン線形変換に供する(例えば、ステップ812)ことと
によって、ピクチャの所定のブロック(例えば、18)を予測し得ることが理解される。
【0075】
場合によっては、デコーダまたはエンコーダはまた、例えば補間によって、所定のサンプルおよび複数の隣接サンプルの予測値に基づいて、所定のブロックのさらなるサンプルの予測値を導出する(例えば、
図8.1のステップ813)こともある。したがって、アップサンプリング戦略を得ることができる。
【0076】
例では、サンプル数が減少した(数が減少したサンプル102のサンプルうちの少なくとも1つは、元の境界サンプルの2つのサンプルの平均、または元の境界サンプルの選択であってもよい)サンプルの減少したセット102(
図7.1~
図7.4)に到達するように、境界17のサンプルに対していくつかの平均を実行する(例えば、ステップ811において)ことが可能である。例えば、元の境界がP=M+N個のサンプルを有する場合、サンプルの減少したセットは、P
red=M
red+N
redでありP
red<MおよびN
red<Nの少なくとも1つを伴い、それによりP
red<Pとなり得る。したがって、予測に実際に使用される境界ベクトル17P(例えば、ステップ812bにおいて)は、Px1エントリを有さず、P
red<PであるP
redx1エントリを有する。同様に、予測のために選択されたALWIP予測行列17Mは、QxP次元を有さず、少なくともP
red<P(M
red<MおよびN
red<Nの少なくとも1つによる)により行列の要素数が減少したQxP
red(またはQ
redxP
red、以下を参照)を有する。
【0077】
いくつかの例(例えば、
図7.2、
図7.3、および
図8.2)では、(ステップ812で)ALWIPによって取得されたブロックが、サイズ
【数1】
(すなわち、ALWIPによって直接予測されるサンプルの数は、実際に予測されるブロック18のサンプルの数よりも少ない)を伴う減少したブロックである場合、乗算の回数をさらに減らすことさえ可能である。したがって、
【数2】
を設定すると、これにより、Q*P
red乗算の代わりにQ
red*P
red乗算(Q
red*P
red<Q*P
red<Q*P)を使用することによってALWIP予測が得られる。この乗算は、
【数3】
次元を有する減少ブロックを予測する。それにもかかわらず、減少した
【数4】
予測ブロックから最終的なMxN予測ブロックへの(例えば、補間によって得られる)アップサンプリングを実行する(例えば後続のステップ813において)ことが可能である。
【0078】
これらの技法は、行列乗算が減少した乗算数(Qred*PredまたはQ*Pred)を含む一方で、初期減少(例えば、平均化またはダウンサンプリング)および最終変換(例えば、補間)の両方が乗算を減少(または回避)することによって実行され得るので、有利であり得る。例えば、加算およびシフトなどの計算能力を必要としないバイナリ演算を採用することによって、ダウンサンプリング、平均化および/または補間を実行し得る(例えば、ステップ811および/または813において)。
【0079】
ここで、プロセッサレベルでのシフト演算の一例について説明する。
図9は、10ビットレジスタ910内のバイナリ(1001000100b)に符号化された数580を示し、10ビットレジスタ910は10ビットレジスタ910aを有し、各ビットレジスタ910aは1ビット値(例えば、1または0)を記憶する。2バイトレジスタ910で符号化されたバイナリで表される値1001000100bは、
図9aでは「シフトされる値」として901として示されている。
図9bの符号902で示すバイナリ値は、符号901で示すバイナリ値の右シフトバージョンである。見て分かるように、バイナリ値902(0100100010bとして符号化される)は、各ビットレジスタ910aに符号化された各値がそれぞれの右位置のビットレジスタに単純に移動された後のバイナリ値901のバージョンであり、バイナリ値901の下位ビットは、バイナリ値902において失われ、シフトされたバイナリ値902の最上位ビットを0として加算する。シフトされたバイナリ値902を小数に変換すると、580の半分である小数値290が得られたことが分かる。これは、2進数を二等分するための技術であり得る(値901が奇数である場合は量子化誤差のみが存在する)。この操作は、実行が極めて容易であり、高い計算能力を必要としない。特に、複数回シフトすることによって、2のべき乗による除算が得られ、例えば、2回シフトすることによって、4による除算が得られ、3回シフトすることによって8による除算が得られ、一般にr回シフトすることによって2
r(2^r)による除算が得られる。これは、f>>rという表記で示すこともでき、したがって、f>>1はf/2を示し、f>>2はf/4を示し、以下同様である(fは整数)。この操作は右ローテーションとしても知られている。同様に、左ローテーション演算f<<rは、fに2
r(または2^r)を乗算することを意味する。シフト演算は、乗算を実行する必要性を回避するため、プロセッサにとって、計算的能力を必要とするものではなく、単に異なるレジスタ内でビットを移動させることによって得られる。この例では、レジスタ910は10ビットレジスタとして表されている。しかしながら、例では、レジスタ910は、異なる数のビットレジスタ910a、例えば8ビットレジスタ910(その場合、レジスタ910は8ビットレジスタである)を有してもよい。
また、加算は、多くの計算労力なしに容易に実行できる非常に簡単な演算である。
【0080】
このシフト演算は、例えば、最終的な予測ブロックを得るために、2つの境界サンプルを平均化するために、および/または減少した予測ブロックの(または境界から得られた)2つのサンプル(サポート値)を補間するために使用され得る。(補間のために、2つのサンプル値が必要である。ブロック内では、常に2つの所定の値を有するが、ブロックの左および上の境界に沿ってサンプルを補間するために、
図7.2のように、1つの所定の値のみを有し、したがって、補間のためのサポート値として境界サンプルを使用する。)
以下のような2段階手順を使用することがあり、
最初に2つのサンプルの値を合計し、
次いで、合計の値を半分にする(例えば、右シフトによって)などである。
あるいは、
サンプルの各々を最初に半分にして(例えば、左シフトによって)、
次いで、2つの半分にされたサンプルの値を合計する
ことが可能である。
【0081】
1つのサンプル量およびサンプルのグループ(例えば、互いに隣接サンプル)を選択するだけでよいため、ダウンサンプリング(例えば、ステップ811において)時にさらに容易な動作を実行し得る。
【0082】
したがって、ここで、実行されるべき乗算の数を減少させるための技術(複数可)を定義することが可能である。これらの技術のいくつかは、とりわけ、以下の原理のうちの少なくとも1つに基づいてもよい:
【0083】
実際に予測されるブロック18のサイズがMxNであっても、(2次元の少なくとも一方において)ブロックを減少させ、サイズが減少したQ
redxP
red(
【数5】
,P
red=N
red+M
redであり、
【数6】
および/またはM
red<Mおよび/またはN
red<Nである)のALWIP行列を適用してもよい。したがって、境界ベクトル17PはサイズP
redx1を有し、P
red<P乗算のみを意味する(P
red=M
red+N
redおよびP=M+N)。
P
redx 1境界ベクトル17Pは、元の境界17から容易に取得することができ、例えば、
ダウンサンプリングにより(例えば、境界のいくつかのサンプルのみを選択することによって)、および/または
境界の複数のサンプルを平均化することによる(これは、乗算なしで加算およびシフトよって容易に得ることができる)。
【0084】
追加的または代替的に、予測対象ブロック18のすべてのQ=M*N値を乗算によって予測する代わりに、次元が減少した減少したブロック(例えば、
【数7】
である)のみを予測することが可能である。予測すべきブロック18の残りのサンプルは、例えば、予測すべき残りのQ-Q
red値のサポート値としてQ
redサンプルを使用する補間によって取得される。
【0085】
プロセス810を一般的に説明するものとして理解され得る一例が
図8.1によって提供され、その特定の場合が
図7.1に示されている。この場合、4×4ブロック18(M=4、N=4、Q=M*N=16)が予測されることになり、サンプル17a(4つの既に予測されたサンプルを有する垂直行列)および17c(4つの既に予測されたサンプルを有する水平行)の近傍17は、前の反復で既に予測されている(近傍17aおよび17cは、集合的に17で示すことができる)。優先的に、
図5に示す式を使用することにより、予測行列17MはQxP=16x8行列(Q=M*N=4*4およびP=M+N=4+4=8による)であるべきであり、境界ベクトル17Pは8x1次元(P=8による)を有するべきである。しかしながら、これは、予測対象の4x4ブロック18の16個のサンプルの各々について8回の乗算を実行する必要性につながり、したがって、合計で16*8=128回の乗算を実行する必要性につながる。(サンプルあたりの平均乗算回数は、計算複雑度の良好な評価であることに留意されたい。従来のイントラ予測では、サンプルあたり4回の乗算が必要であり、これは関与する計算労力を増加させる。したがって、これをALWIPの上限として使用することが可能であり、複雑さが合理的であり、従来のイントラ予測の複雑さを超えないことが保証される。)
【0086】
それにもかかわらず、本技術を使用することにより、ステップ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つのサンプルを有するものとして処理され(例えば平均化されたサンプル)、垂直列17aは、元々4つのサンプルを有するが、2つのサンプルを有するものとして処理される(例えば平均化されたサンプル)。行17cおよび列17aをそれぞれ2つのサンプルのグループ110にサブ分割した後、単一のサンプルが維持される(例えば、グループ110のサンプルの平均またはグループ110のサンプル間の単純な選択)ことも理解することができる。したがって、セット102が4つのサンプル(M
red=2、N
red=2、P
red=M
red+N
red=4、P
red<P)のみを有することによって、サンプル値のいわゆる減少したセット102が得られる。
【0087】
プロセッサレベルで過度に多くの乗算を実行することなく(平均化またはダウンサンプリング100などの)演算を実行することが可能であることが理解されており、ステップ811で実行される平均化またはダウンサンプリング100は、加算およびシフトなどの単純で計算的能力を必要としない演算によって簡単に得ることができる。
【0088】
この時点で、サンプル値102の減少したセットを線形またはアフィン線形(ALWIP)変換19(例えば、
図5の行列17Mなどの予測行列を使用する)にかけることが可能であることが理解されている。この場合、ALWIP変換19は、4つのサンプル102をブロック18のサンプル値104に直接マッピングする。この場合、補間は不要である。
【0089】
この場合、ALWIP行列17Mは、次元QxPred=16x4を有する。これは、予測すべきブロック18のすべてのQ=16個のサンプルがALWIP乗算によって直接得られる(補間は不要である)という事実に従う。
【0090】
したがって、ステップ812aにおいて、次元QxP
redを有する適切なALWIP行列17Mが選択される。選択は、例えば、データストリーム12からのシグナリングに少なくとも部分的に基づいてもよい。選択されたALWIP行列17Mはまた、A
kで示されてもよく、ここで、kは、データストリーム12(場合によっては、行列は以下のように
【数8】
としても示される)でシグナリングされ得るインデックスとして理解されてもよい。選択は、
図12に示す方式に従って実行することができ、各次元(例えば、予測されるブロック18の高さ/幅の対)について、ALWIP行列17Mは、例えば、3組の行列S
0、S
1、S
2(3つのセットS
0、S
1、S
2の各々は、同じ次元の複数のALWIP行列17Mをグループ化することができ、予測のために選択されるALWIP行列はそれらのうちの1つになる)のうちの1つの中から選択される。
【0091】
ステップ812bにおいて、選択されたQxPred ALWIP行列17M(Akとしても示される)とPredx1境界ベクトル17Pとの乗算が実行される。
【0092】
ステップ812cで、オフセット値(例えば、b
k)を、例えばALWIPによって取得されたベクトル18Qのすべての取得された値104に追加し得る。オフセットの値(b
k、または場合によってはさらに
【数9】
としても示され、以下を参照)は、特定の選択されたALWIP行列(A
k)に関連付けられ、インデックス(例えば、データストリーム12でシグナリングされてもよい)に基づくことができる。
【0093】
したがって、本技術を使用することと本技術を使用しないこととの比較がここで再開される:
本技術を用いない場合:
予測対象ブロック18、次元M=4、N=4、
予測されるQ=M*N=4*4=16個の値、
P=M+N=4+4=8個の境界サンプル
P=予測されるQ=16個の値の各々についての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乗算の半分である!
【0094】
理解され得るように、平均化(場合によっては、加算および/またはシフトおよび/またはダウンサンプリング)などの直接的かつ計算的能力を必要としない演算に依存することによって、ステップ812において適切な値を得ることが可能である。
【0095】
図7.2および
図8.2を参照すると、予測されるブロック18は、ここでは64個のサンプルの8×8ブロック(M=8、N=8)である。ここで、優先的に、予測行列17Mは、サイズQxP=64x16(Q=M*N=8*8=64、M=8およびN=8によるQ=64、ならびにP=M+N=8+8=16)を有するべきである。したがって、優先的に、予測される8x8ブロック18のQ=64個のサンプルの各々についてP=16個の乗算が必要とされ、8x8ブロック18全体について64*16=1024の乗算に達するであろう!
【0096】
しかしながら、
図7.2および
図8.2に見られるように、境界の16個のサンプルすべてを使用する代わりに、8つの値(例えば、境界の元のサンプル間の水平境界行17cの4および垂直境界列17aの4)のみが使用される方法820を提供することができる。境界行17cからは、8個ではなく4個のサンプルを用いてもよい(例えば、それらは、2×2の平均および/または2つのうちの1つのサンプルの選択であってもよい)。したがって、境界ベクトルは、Px1=16x1ベクトルではなく、P
redx1=8x1ベクトルのみとなる(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
redxN
red=4x4のブロックを予測するALWIP行列を適用することができる。ブロック18の減少バージョンは、
図7.2のスキーム106において灰色で示されたサンプルを含み、灰色の四角で示されたサンプル(サンプル118’および118’’を含む)は、対象とするステップ812で得られたQ
red=16値を有する4×4減少ブロックを形成する。4x4減少ブロックは、対象ステップ812において線形変換19を適用することによって得られたものである。4x4減少ブロックの値を取得した後、例えば補間によって残りのサンプル(スキーム106において白色サンプルで示されているサンプル)の値を取得することが可能である。
【0097】
図7.1および
図8.1の方法810に関して、この方法820は、予測されるMxN=8x8ブロック18の残りのQ-Q
red=64-16=48サンプル(白色正方形)の予測値を例えば補間によって導出するステップ813をさらに含むことができる。残りのQ-Q
red=64-16=48個のサンプルは、補間(補間はまた、例えば、境界サンプルの値を利用することができる)によって直接取得されたQ
red=16個のサンプルから取得し得る。
図7.2に見られるように、サンプル118’および118’’は(灰色の四角で示すように)ステップ812で取得されているが、サンプル108’(サンプル118’および118’’の中間であり、白色の四角で示す)は、ステップ813でサンプル118’と118’’との間の補間によって取得される。補間はまた、シフトおよび加算などの平均化のためのものと同様の動作によって得ることができることが理解されている。したがって、
図7.2では、値108’は、一般に、サンプル118’の値とサンプル118’’の値との中間の値として決定され得る(平均であり得る)。
【0098】
補間を実行することにより、ステップ813において、104に示された複数のサンプル値に基づいてMxN=8x8ブロック18の最終バージョンに到達することも可能である。
したがって、本技術を使用することと使用しないこととを比較すると、
本技術を用いない場合:
予測対象ブロック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個の値、
【0099】
しかし、QredxPred ALWIP行列が使用され、Pred=Mred+Nred,Qred=Mred*Nred,Mred=4,Nred=4であり、
境界内のPred=Mred+Nred=4+4=8個のサンプル、ここでPred<Pであり、
予測される4×4減少ブロックのQred=16個の値の各々についてPred=8の乗算(スキーム106では灰色の正方形によって形成される)、
総数Pred*Qred=8*16=128の(1024を大幅に下回る!)の乗算、
乗算数と取得される最終値の数との比は、Pred*Qred/Q=128/64=2である(本技術を用いずに得られた16よりもはるかに少ない!)。
したがって、本明細書に提示される技術は、前の技術よりも8倍能力要求が少ない。
【0100】
図7.3は、(方法820に基づき得る)別の例を示し、予測されるブロック18は、Q=4*8=32個の予測されるサンプルを有する長方形の4×8ブロック(M=8、N=4)である。境界17は、N=8サンプルの水平行17cと、M=4サンプルの垂直列17aとで構成される。したがって、優先的に、境界ベクトル17Pは次元Px1=12x1を有するが、予測ALWIP行列はQxP=32x12行列であるべきであり、したがってQ*P=32*12=384の乗算が必要になる。
【0101】
しかしながら、例えば、水平行17cの少なくとも8つのサンプルを平均またはダウンサンプリングして、4つのサンプルのみ(例えば、平均化されたサンプル)の減少した水平行を得ることが可能である。いくつかの例では、垂直列17aはそのままである(例えば、平均化せずに)。合計で、減少した境界は、次元P
red=8を有し、P
red<Pである。したがって、境界ベクトル17Pは、次元P
redx1=8x1を有する。ALWIP予測行列17Mは、次元M*N
red*P
red=4*4*8=64を有する行列になる。対象ステップ812で直接取得された(スキーム107の灰色の列によって形成された)4x4減少したブロックは、サイズQ
red=M*N
red=4*4=16サンプルを有する(予測される元の4x8ブロック18のQ=4*8=32の代わりに)。減少した4×4ブロックがALWIPによって取得されると、オフセット値b
kを加算し(ステップ812c)、ステップ813において補間を実行することが可能である。
図7.3のステップ813で分かるように、減少した4x4ブロックは4x8ブロック18に拡張され、ステップ812で取得されなかった値108’は、ステップ813で取得された値118’および118’’(灰色の正方形)を補間することによってステップ812で取得される。
【0102】
したがって、本技術を使用することと使用しないこととを比較すると、
本技術を用いない場合:
予測対象ブロック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個の値、
【0103】
しかし、QredxPred=16x8 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の乗算、
総数Pred*Qred=8*16=128の乗算(384を下回る!)
乗算数と取得される最終値の数との比は、Pred*Qred/Q=128/32=4である(本技術を用いずに得られた12よりもはるかに少ない!)。
したがって、本技術では、計算労力が1/3に減少される。
【0104】
図7.4は、次元MxN=16x16で予測すべきブロック18の事例を示し、最終的に予測される値はQ=M*N=16*16=256であり、P=M+N=16+16=32個の境界サンプルである。これは、次元QxP=256x32を有する予測行列をもたらし、これは256*32=8192の乗算を意味する!
【0105】
しかしながら、方法820を適用することにより、ステップ811において、境界サンプルの数を、例えば32から8に減らす(例えば、平均化またはダウンサンプリングによって)ことが可能であり、例えば、行17aの4つの連続サンプルのグループ120ごとに、単一のサンプル(例えば、4つのサンプルの中から選択されるか、またはサンプルの平均)が残る。また、列17cの連続する4つのサンプルからなるグループごとに1つのサンプル(例えば、4つのサンプルの中から選択されるか、またはサンプルの平均)が残る。
【0106】
ここで、ALWIP行列17Mは、QredxPred=64x8行列である。これは、それが(8つの平均化されたサンプルまたは32個の境界から選択されたサンプルを使用することによって)Pred=8に選択されたという事実、およびステップ812で予測される減少ブロックが8x8ブロック(スキーム109では、灰色の正方形は64である)であるという事実に起因する。
【0107】
したがって、ステップ812で減少した8×8ブロックの64個のサンプルが取得されると、ステップ813で、予測されるブロック18の残りのQ-Qred=256-64=192個の値104を導出することが可能である。
【0108】
この場合、補間を実行するために、境界列17aのすべてのサンプルおよび境界行17cの代替サンプルのみを使用することが選択されている。他の選択が行われてもよい。
【0109】
本方法では、乗算回数と最終的に得られる値の数との間の比はQred*Pred/Q=8*64/256=2であり、これは本技術を用いない各値の32回の乗算よりもはるかに少ない!
本技術を使用することと使用しないこととを比較すると、
本技術を用いない場合:
予測対象ブロック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個の値、
【0110】
しかし、QredxPred=64x8 ALWIP行列を使用することができ、Mred=4,Nred=4であり、ALWIPによって予測されるのは、Qred=8*8=64個のサンプルであり、
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よりもはるかに少ない!)。
したがって、本技法によって必要とされる計算能力は、従来の技法よりも16倍小さい!
【0111】
したがって、複数の隣接サンプル(17)を使用して、複数の隣接サンプル(17)と比較して、サンプル数が、より少ないサンプル値の減少したセット(102)を取得するために、複数の隣接サンプルを減少させる(100,813)ことと、
【0112】
所定のブロック(18)の所定のサンプル(104,118’,188’’)の予測値を取得するために、サンプル値の減少したセット(102)を線形またはアフィン線形変換(19,17M)に供する(812)ことと
によって、ピクチャの所定のブロック(18)を予測することが可能である。
【0113】
特に、複数の隣接サンプル(17)と比較して、サンプル数が、より少ないサンプル値の減少したセット(102)を取得するために、ダウンサンプリングすることによって減少(100,813)を実行することが可能である。
【0114】
あるいは、複数の隣接サンプル(17)と比較して、サンプル数が、より少ないサンプル値の減少したセット(102)を取得するために、複数の隣接サンプルを平均化することによって減少(100,813)を実行することが可能である。
【0115】
さらに、補間によって、所定のサンプル(104,118’,118’’)および複数の隣接サンプル(17)の予測値に基づいて、所定のブロック(18)のさらなるサンプル(108,108’)の予測値を導出する(813)ことが可能である。
【0116】
複数の隣接サンプル(17a,17c)は、所定のブロック(18)の2辺(例えば、
図7.1~
図7.4の右および下に向かって)に沿って一次元に延在してもよい。所定のサンプル(例えば、ステップ812でALWIPによって得られたもの)はまた、行および列に配置されてもよく、行および列の少なくとも一方に沿って、所定のブロック18の2辺に隣接する所定のサンプル112のサンプル(112)からn番目ごとの位置に配置されてもよい。
【0117】
複数の隣接サンプル(17)に基づいて、行および列のうちの少なくとも1つのそれぞれに整列された複数の隣接位置のうちの1つの位置(118)のサポート値(118)を、行および列のうちの少なくとも1つのそれぞれについて決定することが可能である。補間によって、所定のサンプル(104,118’,118’’)の予測値および少なくとも1つの行および列に整列された隣接サンプル(118)のサポート値に基づいて、所定のブロック(18)のさらなるサンプル(108,108’)の予測値118を導出することも可能である。
【0118】
所定のサンプル(104)は、行に沿って所定のブロック18の2辺に隣接するサンプル(112)からn番目ごとの位置に配置されることがあり、所定のサンプルは、列に沿って所定のブロック(18)の2辺に隣接する所定のサンプル(112)のサンプル(112)からm番目ごとの位置に配置され、n,m>1である。場合によっては、n=mである(例えば、
図7.2および
図7.3では、812でALWIPによって直接取得され、灰色の四角で示されているサンプル104,118’,118’’は、行および列に沿って、ステップ813で続いて取得されたサンプル108,108’に交互にされる)。
【0119】
行(17c)および列(17a)のうちの少なくとも一方に沿って、各サポート値について、それぞれのサポート値が決定される隣接サンプル(118)を含む複数の隣接サンプル内の隣接サンプルのグループ(120)を、例えばダウンサンプリングまたは平均化(122)することによってサポート値の決定を実行することが可能であり得る。したがって、
図7.4では、ステップ813において、(ステップ812で以前に取得された)所定のサンプル118’’’の値および隣接サンプル118の値をサポート値として使用することによってサンプル119の値を取得することが可能である。
【0120】
複数の隣接サンプルは、所定のブロック(18)の2辺に沿って一次元に延在してもよい。複数の隣接サンプル(17)を1つ以上の連続する隣接サンプルのグループ(110)にグループ化し、2つ以上の隣接サンプルを有する1つ以上の隣接サンプルのグループ(110)の各々に対してダウンサンプリングまたは平均化を実行することによって減少(811)を実行することが可能であり得る。
【0121】
例では、線形またはアフィン線形変換は、Pred*QredまたはPred*Q個の重み係数を含むことができ、Predはサンプル値の減少したセット内のサンプル値の数(102)であり、QredまたはQは所定のブロック内の所定のサンプルの数(18)である。少なくとも1/4のPred*Qredまたは1/4のPred*Q個の重み係数は、非ゼロの重み値である。Pred*QredまたはPred*Q個の重み係数は、Q個またはQred個の所定のサンプルの各々について、それぞれの所定のサンプルに関する一連のPred個の重み係数を含むことができ、一連のPred個の重み係数は、所定のブロック(18)の所定のサンプル間のラスタスキャン順序に従って上下に配置されると、全方向的に非線形である包絡線を形成する。Pred*QまたはPred*Qred個の重み係数は、規則的なマッピング規則を介して互いに無関係であってもよい。それぞれの所定のサンプルに関連する第1の一連の重み係数と、それぞれの所定のサンプル以外の所定のサンプルに関連する第2の一連の重み係数、または後者の反転されたバージョンとの間の相互相関の最大値の平均は、最大値がより高くなるかどうかにかかわらず、所定の閾値よりも低い。所定の閾値は、0.3(または場合によっては0.2または0.1)であってもよい。Pred個の隣接サンプル(17)は、所定のブロック(18)の2辺に沿って延びる一次元経路に沿って配置され、QまたはQred個の所定のサンプルの各々について、それぞれの所定のサンプルに関連する一連のPred個の重み係数は、一次元経路を所定の方向にトラバースするように順序付けられ得る。
方法および装置の説明
【0122】
【数10】
(Mでも示される)の長方形のブロックのサンプルを予測するために、アフィン線形重み付きイントラ予測(ALWIP)は、ブロックの左のH個の再構成された隣接する境界サンプルの1つのラインおよびブロックの上の
【数11】
再構成された隣接する境界サンプルの1つのラインを入力として取ることができる。再構成されたサンプルが利用できない場合、それらは従来のイントラ予測で行われるように生成され得る。
予測信号(例えば、完全なブロック18の値)の生成は、以下の3つのステップのうちの少なくとも1つまたはいくつかに基づいてもよい。
【0123】
1.境界サンプル17のうち、サンプル102(例えば、W=H=4の場合には4つのサンプル、および/または他の場合には8つのサンプル)は、平均化またはダウンサンプリング(例えば、ステップ811)によって抽出し得る。
【0124】
2.行列ベクトル乗算とそれに続くオフセットの加算は、平均化されたサンプル(またはダウンサンプリングから残っているサンプル)を入力として実行され得る。結果は、元のブロック内のサブサンプルされたサンプルのセット上の減少した予測信号(例えば、ステップ812)であり得る。
【0125】
3.残りの位置の予測信号は、例えば線形補間(例えばステップ813)によって、サブサンプリングされたセット上の予測信号から、例えばアップサンプリングによって生成され得る。
【0126】
ステップ1(811)および/または3(813)のおかげで、行列ベクトル積の計算に必要な乗算の総数は、常に
【数12】
以下であるようなものであってもよい。さらに、境界に対する平均化演算および減少予測信号の線形補間は、加算およびビットシフトのみを使用して実行される。換言すれば、実施例では、ALWIPモードには1サンプル当たり最大4回の乗算が必要である。
【0127】
いくつかの例では、予測信号を生成するために必要な行列(例えば、17M)およびオフセットベクトル(例えば、b
k)は、例えば、デコーダおよびエンコーダの記憶ユニットに記憶され得る行列のセット(例えば、3セット)、例えば、
【数13】
から取得され得る。
【0128】
いくつかの例では、セット
【数14】
は、
図7.1による技術を実行するために、各々が16行および4列と、各々がサイズ16の18個のオフセットベクトル
【数15】
とを有し得る(例えば、構成される)
【数16】
(例えば、
【数17】
)行列
【数18】
を含み得る。個のセットの行列およびオフセットベクトルはサイズ4×4のブロック18に使用される。境界ベクトルがP
red=4ベクトル(
図7.1のステップ811について)に減少されると、サンプル102の減少したセットのP
red=4サンプルを、予測される4×4ブロック18のQ=16サンプルに直接マッピングすることが可能である。
【0129】
いくつかの例では、セット
【数19】
は、
図7.2または
図7.3による技術を実行するために、各々が16および8列と、各々がサイズ16の18個のオフセットベクトル
【数20】
とを有し得る(例えば、構成される)
【数21】
行列
【数22】
を含み得る。このセット
【数23】
の行列およびオフセットベクトルは、サイズ4×8、4×16、4×32、4×64、8×4、8×8、16×4、32×4、および64×4のブロックに使用され得る。さらに、それはまた、
【数24】
、を有するサイズW×Hのブロック、すなわち4×16または16×4、4×32または32×4および4×64または64×4のサイズのブロックにも使用され得る。16x8行列は、
図7.2および
図7.3で得られるように、4x4ブロックであるブロック18の減少版を指す。
【0130】
追加的または代替的に、セット
【数25】
行列
【数26】
を含むことができ(例えば、構成される)、その各々は、64行8列およびサイズ64の18個のオフセットベクトル
【数27】
を有し得る。64x8行列は、例えば
図7.4で得られるような8x8ブロックであるブロック18の減少バージョンを指す。このセットの行列およびオフセットベクトルは、サイズ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のブロックに使用され得る。
【0131】
ブロックの次元に基づくセット
【数28】
(ステップ812aで実行することができる)の選択の一例を
図12に要約する。代替例では、セットごとに異なる数の行列が可能である。追加的または代替的に、異なるサイズの行列が異なるセットに使用されてもよい。
これらの行列およびオフセットベクトルのセットまたは一部の行列およびオフセットベクトルは、他のすべてのブロック形状に使用されてもよい。
5.4 境界の平均化またはダウンサンプリング
ここでは、ステップ811に関して特徴が提供される。
【0132】
上記で説明したように、境界サンプル(17a,17c)は、平均化および/またはダウンサンプル(例えば、PサンプルからPred<Pサンプル)され得る。
【0133】
第1のステップでは、入力境界
【数29】
(例えば17a)は、より小さい境界
【数30】
に減少され、減少したセット102に到達し得る。ここで、
【数31】
は両方とも4×4ブロックの場合は2サンプルからなり、他の場合は両方とも4サンプルからなる。
4×4ブロックの場合、
【数32】
【0134】
および
【数33】
を同様に定義することができる。したがって、
【数34】
は、例えばビットシフト演算を使用して得られた平均値である。
【0135】
他のすべての場合(例えば、4とは異なるウィザーの幅または高さのブロックの)において、ブロック幅Wが
【数35】
として与えられる場合、
【数36】
について以下のように定義する:
【数37】
同様に
【数38】
を定義する。
【0136】
さらに他の場合では、境界(例えば、境界サンプルのグループから1つの特定の境界サンプルを選択することによって)をダウンサンプリングして、サンプル数を減らすことができる。例えば、
【数39】
の中から選択されてもよく、
【数40】
の中から選択されてもよい。同様に
【数41】
を定義することも可能である。
【0137】
2つの減少した境界
【数42】
は、減少した境界ベクトル
【数43】
(減少したセット102に関連付けられている)に連結されてもよく、これもまた17Pで示される。したがって、減少した境界ベクトル
【数44】
は、4×4の形状のブロック(
図7.1の例)についてはサイズ4(P
red=4)であり、他のすべての形状のブロック(
図7.2~7.4の例)についてはサイズ8(P
red=8)であり得る。
ここで、
【数45】
(または行列のセットにおける行列の数)であれば、以下を定義するのが可能である:
【数46】
の転置モードに対応するのであれば、以下を定義するのが可能である:
【数47】
【0138】
したがって、特定の状態
【数48】
によれば、出力ベクトルの予測値を異なるスキャン順序(例えば、1つのスキャン順序:
【数49】
)に沿って分布させることが可能である。
【0139】
他の戦略を実行してもよい。他の例では、モードインデックス「mode」は必ずしも0から35の範囲内ではない(他の範囲が定義されてもよい)。さらに、3つのセットS
0、S
1、S
2の各々が18個の行列(したがって、
【数50】
のような式の代わりに、行列S
0,S
1,S
2の各組の行列の数である
【数51】
にそれぞれすることが可能である)を有する必要はない。また、各セットは、それぞれ異なる数の行列(例えば、S
0は16個の行列を有し、S
1は8個の行列を有し、S
2は6個の行列を有してもよい)を有してもよい。
【0140】
モードおよび転置情報は、必ずしも1つの結合されたモードインデックス「モード」として記憶および/または送信されるわけではない。いくつかの例では、転置フラグおよび行列インデックス(S0の場合は0~15、S1の場合は0~7、S2の場合は0~5)として明示的にシグナリングする可能性がある。
【0141】
場合によっては、転置フラグと行列インデックスの組み合わせは、セットインデックスとして解釈されてもよい。例えば、転置フラグとして動作する1ビットと、「セットインデックス」としてまとめて示される、行列インデックスを示すいくつかのビットとがあり得る。
5.5 行列ベクトル乗算による減少した予測信号の生成
ここでは、ステップ812に関して特徴が提供される。
【0142】
減少した入力ベクトル
【数52】
(境界ベクトル17P)のうちの1つは、減少した予測信号
【数53】
を生成し得る。後者の信号は、
【数54】
のダウンサンプリングされたブロック上の信号であり得る。ここで、
【数55】
は、以下のように定義され得る。
【0143】
【0144】
減少した予測信号
【数57】
は、行列ベクトル積を計算し、オフセットを加えることによって計算し得る:
【数58】
【0145】
ここで、
【数59】
は、他のすべての場合にW=H=4および8列である場合に
【数60】
行および4列を有し得る行列(例えば、予測行列17M)であり、
【数61】
のベクトルであり得る。
【0146】
【数62】
の場合、Aは4列16行を有することができ、したがって、その場合には
【数63】
を計算するためにサンプルあたり4回の乗算が必要とされ得る。他のすべての場合において、Aは8個の列を有することができ、これらの場合において、1つが
【数64】
を有すること、すなわちこれらの場合においても、1サンプル当たり最大4回の乗算が
【数65】
の計算に必要であることを検証し得る。
【0147】
行列Aおよびベクトル
【数66】
は、以下のように、セット
【数67】
の1つから取得され得る。1つは、
【数68】
の場合、
【数69】
を設定し、
【数70】
を設定することによってインデックス
【数71】
を定義する。さらに、
【数72】
とすることができる。次に、
【数73】
の場合、
【数74】
を置くことができる。
【数75】
である場合、
【数76】
の各行を除外することによって生じる行列にし、W=4の場合、ダウンサンプルされたブロック内の奇数x座標に対応し、またはH=4の場合、ダウンサンプルされたブロック内の奇数y座標に対応する。
【数77】
の場合、減少した予測信号をその転置された信号で置き換える。代替的な例では、異なる戦略を実行し得る。例えば、より大きな行列のサイズを減少させる(「除外する」)代わりに、W
red=4およびH
red=4であるS
1(idx=1)のより小さな行列が使用される。すなわち、このようなブロックは、ここではS
2ではなくS
1に割り当てられる。
【0148】
他の戦略を実行してもよい。他の例では、モードインデックス「mode」は必ずしも0から35の範囲内ではない(他の範囲が定義されてもよい)。さらに、3つのセットS
0、S
1、S
2の各々が18個の行列(したがって、
【数78】
のような式の代わりに、行列S
0,S
1,S
2の各組の行列の数である
【数79】
にそれぞれすることが可能である)を有する必要はない。また、各セットは、それぞれ異なる数の行列(例えば、S
0は16個の行列を有し、S
1は8個の行列を有し、S
2は6個の行列を有してもよい)を有してもよい。
5.6 最終予測信号を生成するための線形補間
ここでは、ステップ812に関して特徴が提供される。
【0149】
サブサンプルされた予測信号の補間、大きなブロックでは、平均化された境界の第2のバージョンが必要とされ得る。すなわち、
【数80】
の場合、
【数81】
の場合には、
【数82】
を定義する。
【数83】
を同様に定義する。
加えて、または代替として、「ハードダウンサンプリング」を有することが可能であり、ここでは
【数84】
は以下に等しい:
【数85】
また、
【数86】
も同様に定義することができる。
【0150】
【数87】
の生成において除外されたサンプル位置において、最終的な予測信号は、
【数88】
(例えば、
図7.2~
図7.4および
図8.2の例のステップ813)からの線形補間によって生じ得る。いくつかの例では、W=H=4(例えば、
図7.1および
図8.1の例)場合、この線形補間は不要であり得る。
【0151】
線形補間は、以下のように与えられてもよい(他の例も可能である)。
【数89】
と仮定する。次に、
【数90】
の垂直アップサンプリングが実行され得る。その場合、
【数91】
は、以下のように上に1ライン分拡張されてもよい。
【数92】
を有することができ、例えば上記で定義されたように、平均化された境界信号
【数93】
によって上部に拡張され得る。
【数94】
であり、例えば上記で定義したように、平均化された境界信号
【数95】
によって上部に拡張される。
【数96】
を書き出すことができる。次に、幅
【数97】
のブロック上の信号
【数98】
は次のように与えられ得る:
【数99】
【0152】
ここで、
【数100】
後者のプロセスは、
【数101】
までk回実行され得る。したがって、H=8またはH=16の場合、最大で1回実行し得る。H=32の場合、2回行ってもよい。H=64であれば3回行ってもよい。次に、垂直アップサンプリングの結果に水平アップサンプリング演算を適用し得る。後者のアップサンプリング演算は、予測信号の全境界左を使用し得る。最後に、H>Wの場合、(必要に応じて)まず水平方向にアップサンプリングし、次いで垂直方向にアップサンプリングすることによって、同様に進めることができる。
【0153】
これは、第1の補間(水平または垂直)に減少した境界サンプルを使用し、第2の補間(垂直または水平)に元の境界サンプルを使用する補間の例である。ブロックサイズに応じて、第2の補間のみまたは補間なしが必要である。水平補間と垂直補間の両方が必要な場合、順序はブロックの幅と高さに依存する。
【0154】
しかしながら、異なる技術が実装されてもよく、例えば、元の境界サンプルが第1および第2の補間の両方に使用されてもよく、順序は固定されてもよく、例えば、最初に水平、次いで垂直(他の場合には、最初に垂直、次いで水平)であってもよい。
したがって、補間順序(水平/垂直)および減少/元の境界サンプルの使用を変更し得る。
5.7 ALWIPプロセス全体の例の説明
【0155】
平均化、行列ベクトル乗算、および線形補間の全プロセスは、
図7.1~
図7.4の異なる形状について示されている。残りの形状は、図示された事例の1つのように扱われることに留意されたい。
【0156】
4×4ブロックが与えられると、ALWIPは、
図7.1の技法を使用することによって境界の各軸に沿って2つの平均をとることができる。得られた4つの入力サンプルは、行列ベクトル乗算に入る。行列は、セット
【数102】
から取得される。オフセットを加えた後、これは16個の最終予測サンプルをもたらし得る。予測信号の生成には、線形補間は不要である。したがって、1サンプルあたり合計(4*16)/(4*4)=4乗算)が実行される。例えば、
図7.1および
図8.1を参照されたい。
【0157】
8×8ブロックが与えられると、ALWIPは、境界の各軸に沿って4つの平均をとることができる。結果として得られる8つの入力サンプルは、
図7.2の技法を使用して、行列ベクトル乗算に入る。行列は、セット
【数103】
から取得される。これにより、予測ブロックの奇数位置に16個のサンプルが得られる。したがって、1サンプルあたり合計(8*16)/(8*8)=2乗算)が実行される。オフセットを追加した後、これらのサンプルは、例えば上部境界を使用して垂直に、例えば左境界を使用して水平に補間し得る。例えば、
図7.2および
図8.2を参照されたい。
【0158】
8×4ブロックが与えられると、ALWIPは、
図7.3の技術を使用することによって、境界の水平軸に沿った4つの平均および左境界上の4つの元の境界値をとることができる。得られた8つの入力サンプルは、行列ベクトル乗算に入る。行列は、セット
【数104】
から取得される。これにより、予測ブロックの奇数水平位置および各垂直位置に16個のサンプルが得られる。したがって、1サンプルあたり合計(8*16)/(8*4)=4乗算)が実行される。オフセットを追加した後、これらのサンプルは、例えば左境界を使用して水平方向に補間される。例えば、
図7.3および
図8.2を参照されたい。
転置された事例はそれに応じて処理される。
【0159】
16×16ブロックが与えられると、ALWIPは、境界の各軸に沿って4つの平均をとることができる。結果として得られる8つの入力サンプルは、
図7.2の技法を使用して、行列ベクトル乗算に入る。行列は、セット
【数105】
から取得される。これにより、予測ブロックの奇数位置に64個のサンプルが得られる。したがって、1サンプルあたり合計(8*64)/(16*16)=2乗算)が実行される。オフセットを追加した後、これらのサンプルは、例えば、上部境界を使用して垂直方向に補間され、左境界を使用して水平方向に補間される。例えば、
図7.2および
図8.2を参照されたい。例えば、
図7.4および
図8.2を参照されたい。
より大きな形状の場合、手順は本質的に同じであり得、サンプルあたりの乗算数が2未満であることを確認することは容易である。
【0160】
W×8ブロックの場合、奇数水平および各垂直位置にサンプルが与えられるため、水平補間のみが必要である。したがって、これらの場合、せいぜい(サンプルあたり(8*64)/(16*8)=4の乗算が実行される。
【0161】
最後に、W>8のW×4ブロックについて、
【数106】
をダウンサンプルされたブロックの水平軸に沿った奇数エントリに対応する各行を除外することによって生じる行列とする。したがって、出力サイズは32であってもよく、ここでも水平補間のみが実行されたままである。せいぜい(サンプルあたりの(8*32)/(16*4)=4乗算が実行され得る。
転置された場合は、それに応じて処理され得る。
5.8 必要なパラメータの数および複雑さの評価
【0162】
すべての可能な提案されたイントラ予測モードに必要なパラメータは、セット
【数107】
に属する行列およびオフセットベクトルによって構成され得る。すべての行列係数およびオフセットベクトルは、10ビット値として記憶され得る。したがって、上記の説明によれば、各々が10ビット精度の合計14400個のパラメータが、提案された方法に必要とされ得る。これは、0.018メガバイトのメモリに対応する。現在、標準4:2:0のクロマサブサンプリングにおけるサイズのCTUは、それぞれ10ビットの24576個の値からなることが指摘される。したがって、提案されたイントラ予測ツールのメモリ要件は、最後の会議で採用された現在のピクチャ参照ツールのメモリ要件を超えない。また、従来のイントラ予測モードは、部分角度位置を有する角度予測モードのためのPDPCツールまたは4タップ補間フィルタに起因して、サンプルごとに4回の乗算を必要とすることが指摘される。したがって、動作の複雑さに関して、提案された方法は従来のイントラ予測モードを超えない。
5.9 提案されたイントラ予測モードのシグナリング
【0163】
ルマブロックについては、例えば35個のALWIPモードが提案されている(他の数のモードが使用されてもよい)。イントラモードの各符号化ユニット(CU)について、ALWIPモードが、対応する予測ユニット(PU)に適用されるべきであるか否かを示すフラグが、ビットストリームで送信される。後者の指標のシグナル伝達は、最初のCE試験と同じ方法でMRLと調和させることができる。ALWIPモードが適用される場合、ALWIPモードのインデックス
【数108】
は、3 MPMSを有するMPMリストを使用してシグナリングされ得る。
【0164】
ここで、MPMの導出は、以下のように、上記および左のPUのイントラモードを用いて行われてもよい。各従来のイントラ予測モード
【数109】
にALWIPモードを割り当てることができるテーブル、例えば3つの固定テーブル
【数110】
があってもよい:
【数111】
幅Wおよび高さHの各PUについて、以下を定義し示す:
【数112】
【0165】
これは、3つのセットのうちのどれからALWIPパラメータが上記のセクション4のように解釈されるべきかを示す。上記の予測ユニット
【数113】
が利用可能であり、現在のPUと同じCTUに属し、イントラモードにある場合、
【数114】
でありALWIPがALWIPモード
【数115】
に適用されている場合、以下とする:
【数116】
【0166】
上記のPUが利用可能であり、現在のPUと同じCTUに属しており、イントラモードにあり、従来のイントラ予測モード
【数117】
が上記のPUに適用される場合、以下とする:
【0167】
【数118】
他のすべての場合において、以下とする:
【数119】
【0168】
これは、このモードが利用できないことを意味する。同じように、ただし、左PUが現在のPUと同じCTUに属する必要があるという制限なしに、モードを導出する:
【数120】
【0169】
最後に、3つの固定デフォルトリスト
【数121】
が提供され、その各々は3つの異なるALWIPモードを含む。デフォルトリスト
【数122】
のうち、デフォルト値で-1を置換するとともに繰り返しを排除することによって、3つの異なるMPMを構築する。
5.10 従来のルマイントラ予測モードおよびクロマイントラ予測モードのための適応MPMリスト導出
【0170】
提案されたALWIPモードは、以下のように従来のイントラ予測モードのMPMベースの符号化と調和され得る。従来のイントラ予測モードのルマおよびクロマMPMリスト導出プロセスは、固定テーブルを使用し
【数123】
所与のPU上のALWIPモードを従来のイントラ予測モードのうちの1つにマッピングし得る
【数124】
【0171】
ルマMPMリスト導出の場合、ALWIPモード
【数125】
を使用する隣接ルマブロックに遭遇するときはいつでも、このブロックは従来のイントラ予測モード
【数126】
を使用しているかのように扱われ得る。クロマMPMリスト導出のために、現在のルマブロックがLWIPモードを使用するときはいつでも、同じマッピングを使用してALWIPモードを従来のイントラ予測モードに変換し得る。
5.11 実験結果
【0172】
試験の評価は、VTMソフトウェアバージョン3.0.1を用いたイントラ専用(AI)およびランダムアクセス(RA)構成について、共通の試験条件JVET-J 1010[2]に従って実施した。対応するシミュレーションは、Linux(登録商標) OSおよびGCC 7.2.1コンパイラを備えたIntel Xeonクラスタ(E5-2697A v4、AVX2オン、ターボブーストオフ)上で実行された。
【0173】
【表2】
5.12 さらなるエンコーダの高速化によるさらなる結果
CE3-1.2.2と同じ構文に依存するが、最適化されたエンコーダ検索を有するテストの2つのさらなる結果をさらに提供する。
【0174】
【0175】
図10は、
図1、
図2、および
図5~
図9の例(特に、いくつかの特徴は、
図2から直接導出されてもよく、したがってここでは繰り返さない)から解釈され得る別の例を示す。
【0176】
図10は、例えば、
図1のエンコーダの特定の事例であり得るエンコーダ14を示す。
図2と同様にエンコーダ14は、インバウンド信号、すなわちピクチャ10、またはブロックベースで現在のブロック18から、対応する予測信号24(例えば、ステップ812で取得された再構成されたサンプル104を有するブロック18)を減算して予測残差信号26を取得し、これは次に、予測残差エンコーダ28によってデータストリーム12に符号化されるように構成された減算器22を備え得る。予測残差エンコーダ28は、非可逆符号化段28aと可逆符号化段(エントロピコーダ)28bとを含み得る。非可逆符号化段28aは、予測残差信号26を受け取り、予測残差信号26のサンプルを量子化するように構成される量子化器30(図示せず)を備え得る。次いで、取得された予測残差信号34は、エントロピコーダのエントロピ符号化量子化予測残差信号34である可逆符号化段28bによって可逆符号化に供されデータストリーム12になる。エンコーダ14は、非可逆符号化段28aの出力に接続された予測残差信号再構成段36をさらに備え、それにより、変換および量子化された予測残差信号34’から予測残差信号を再構成し得る。
【0177】
エンコーダ14は、再構成された信号、すなわち再構成されたサンプルを出力するために、段36によって出力される再構成された予測残差信号34’と予測信号24(例えば、ステップ813で得られた再構成されたサンプル104を有するブロック18を含む)とを加算する加算器42を備え得る。この出力は、予測子44に供給され、予測子は、それに基づいて予測信号24を決定し得る(例えば、
図8.1~
図7.4に示す技術を適用することによって)。
【0178】
図9に見られるように、方法ステップ811,812,813は、ここでは予測子44内の段811’,812’,813’によってそれぞれマッピングされ、方法ステップ811,812,813は、予測子44内の、集合的に811’,812’,813’で示される、または予測子によって制御されるハードウェアユニットおよび/または手続きルーチンで実装され得る。例では、
図7.1の例のように、導出段813’をスキップすることが可能であることが示されている。
【0179】
特に、段811および/または813は、上述のシフト動作(レジスタ910は、必ずしも段811または813の一部ではなく、それは、対象段によって制御されるユニットとし得る)を実行するためのレジスタ910などのレジスタを提示するものとして示すことができる。代わりに、段812は、乗算器1910を有するかまたは制御するものとして示されており、乗算器では、隣接サンプル17の選択または平均化されたサンプル102のP
red個の要素間で実行される乗算が、行列
【数127】
のQまたはQ
red個の重み係数によって乗算される。段811’,812’,813’では、簡潔にするために他の要素(例えば、加算器などである)は示されていない。
【0180】
記憶装置1044は、ここでは、ALWIP行列17Mまたは
【数128】
(例えば、セットS
0,S
1,S
2)およびオフセットベクトル
【数129】
(上記ではb
kとしても示されている)を記憶するものとして示されている。行列および/またはオフセットのインデックス944(例えば、i、k、転置インデックス、セットインデックスなどの上記のインデックスのうちの1つ以上)iは、データストリーム12内で符号化され得る。QまたはQ
red個の重み係数は、一般に、データストリーム12でシグナリングされず、これは、デコーダがALWIP行列17MのQまたはQ
red個の重み係数を既に認識しているためであり(例えば、記憶装置1044に記憶されたデータの複製を有する)、したがってペイロードが削減される。
【0181】
図に示されていなくても、エンコーダ14が、例えばブロック18の次元に基づいて、使用されるALWIP行列の次元(例えば、セットS0,S1,S2のうちのセット)を決定する可能性がある。場合によっては、ブロック18の次元の選択の結果として、この選択を通知する必要はない。
【0182】
したがって、エンコーダ14は、所定のブロック18について、ステップ812で取得された所定のサンプルの予測残差34および予測値24(104)を使用して所定のブロック18が再構成可能なデータストリーム12に予測残差を挿入するようにさらに構成される。
【0183】
追加的または代替的に、エンコーダ14は、所定のブロック(18)について、予測残差(26,34)を、Q個またはQred個の所定のサンプルの各々について対応する残差値を示すデータストリーム(12)に挿入し、その結果、所定のブロック(18)は、QまたはQred値のセットの各々について予測値を補正することによって、所定のサンプルの予測残差(26,34)および予測値を使用して再構成され、その結果、対応する再構成値が、任意選択で、予測および/または補正後に適用されるクリッピングを除いて、サンプル値の減少したセット(102)内のPred個の隣接サンプル(102)に厳密に線形に依存する。
【0184】
追加的または代替的に、エンコーダ14は、ピクチャ(16)を、所定のブロック(18)を備える異なるブロックサイズの複数のブロックへサブ分割するように構成され得る。エンコーダ14は、所定のブロック(18)に対して選択された線形またはアフィン線形変換(19、Ak)が、所定のブロック(18)の幅Wおよび高さHが幅/高さ対の第1のセット(例えば、S0に関連付けられる)内にある限り、線形またはアフィン線形変換の第1のセットと、所定のブロック(18)の幅W(Nでも示される)および高さH(Mでも示される)が幅/高さ対の第1のセットに属さない幅/高さ対の第2のセット(例えば、S1に関連付けられる)内にある限り、線形またはアフィン線形変換の第2のセットとから選択されるように、所定のブロック(18)の幅Wおよび高さHに応じて線形またはアフィン線形変換(19、Ak)を選択するように構成され得る。
【0185】
追加的または代替的に、エンコーダは、1つ以上の幅/高さ対の第3のセット(例えば、S0)は、1つの幅/高さ対W’,H’を単に含むだけであり、線形またはアフィン線形変換の第2のセット内の各線形またはアフィン線形変換は、N’サンプル値をサンプル位置のW’xH’配列のW’*H’予測値に変換するためのものであるように構成され得る。
【0186】
追加的または代替的に、エンコーダは、幅/高さ対の第1および第2のセットの各々は、第1の幅/高さ対Wp,Hpであって、WpがHpと等しくない、第1の幅/高さ対Wp,Hpと、第2の幅/高さ対Wq,Hqであって、Hq=WpおよびWq=Hpである、第2の幅/高さ対Wq,Hqとを含むように構成され得る。
【0187】
追加的または代替的に、エンコーダは、幅/高さ対の第1および第2のセットの各々が、第3の幅/高さ対Wp,Hpをさらに含むことがあり、WpはHpに等しく、Hp>Hqであるように構成され得る。
【0188】
追加的または代替的に、エンコーダは、所定のブロックについて、セットインデックスをデータストリームに挿入し、線形またはアフィン線形変換の所定のセットから、セットインデックスに応じて線形またはアフィン線形変換を選択するように構成され得る。
【0189】
追加的または代替的に、エンコーダは、複数の隣接サンプルが、所定のブロックの2辺に沿って一次元に延在し、エンコーダは、所定のブロックの第1の側に隣接する複数の隣接サンプルの第1のサブセットについて、第1のサブセットを1つ以上の連続する隣接サンプルの第1のグループ(110)にグループ化し、所定のブロックの第2の側に隣接する複数の隣接サンプルの第2のサブセットについて、第2のサブセットを1つ以上の連続する隣接サンプルの第2のグループ(110)にグループ化し、3つ以上の隣接サンプルを有する1つ以上の隣接サンプルの第1および第2のグループの各々についてダウンサンプリングまたは平均化を実行することによって、減少を実行し、その結果、第1のグループから第1のサンプル値を、第2のグループについて第2のサンプル値を取得するように構成されることがあり、エンコーダは、線形またはアフィン線形変換の所定のセットからセットインデックスに応じて線形またはアフィン線形変換を選択し、その結果、セットインデックスの2つの異なる状態が、線形またはアフィン線形変換の所定のセットの線形またはアフィン線形変換の1つを選択するようにし、サンプル値の減少したセットを、所定の線形またはアフィン線形変換に供し、予測値の出力ベクトルを生成するために第1のベクトルの形態で2つの異なる状態の第1の状態を想定するセットインデックスの場合、出力ベクトルの予測値を第1のスキャン順序に沿って所定のブロックの所定のサンプルに分配し、第2のベクトルの形態で2つの異なる状態の第2の状態を想定するセットインデックスの場合、第1のベクトルと第2のベクトルとが異なり、その結果、第1のベクトル内の第1のサンプル値の1つで入力されたコンポーネントが、第2のベクトル内の第2のサンプル値の1つが入力され、第1のベクトル内の第2のサンプル値の1つで入力されたコンポーネントは、第2のベクトル内の第1のサンプル値の1つが入力され、その結果、予測値の出力ベクトルを生成し、出力ベクトルの予測値を、第2のスキャン順序に沿って、第1のスキャン順序に対して転置される所定のブロックの所定のサンプルへ分散するように構成され得る。
【0190】
追加的または代替的に、エンコーダは、線形またはアフィン線形変換の第1のセット内の各線形またはアフィン線形変換が、N1サンプル値をサンプル位置のw1xh1配列のw1*h1予測値に変換するためのものであり、線形またはアフィン線形変換の第1のセット内の各線形またはアフィン線形変換は、N2サンプル値をサンプル位置のw2xh2配列のw2*h2予測値に変換するためのものであり、幅/高さ対の第1のセットのうちの第1の所定のものについて、w1が第1の所定の幅/高さ対の幅を超えるか、またはh1が第1の所定の幅/高さ対の高さを超え、幅/高さ対の第1のセットのうちの第2の所定のものについて、w1が第2の所定の幅/高さ対の幅を超えることも、h1が第2の所定の幅/高さ対の高さを超えることもないように構成されてもよく、エンコーダは、サンプル値の減少したセット(102)を取得するために、複数の隣接サンプルをダウンサンプリングまたは平均化することによって、減少(100)を実行し、その結果、所定のブロックが、第1の所定の幅/高さ対のものである場合、そして所定のブロックが第2の所定の幅/高さ対のものである場合、サンプル値の減少したセット(102)はN1サンプル値を有し、サンプル値の減少したセットを、所定のブロックが第1の所定の幅/高さ対のものである場合には、w1が1つの幅/高さ対の幅を超える場合には幅次元に沿って、またはh1が1つの幅/高さ対の高さを超える場合には高さ次元に沿って、サンプル位置のw1xh1配列のサブサンプリングに関連する選択された線形またはアフィン線形変換の第1の下位部分のみを使用することによって、選択された線形またはアフィン線形変換に、所定のブロックが第2の所定の幅/高さ対のものである場合には、選択された線形またはアフィン線形変換に完全に、供することを実行するように構成されてもよい。
【0191】
追加的または代替的に、エンコーダは、線形またはアフィン線形変換の第1のセット内の各線形またはアフィン線形変換が、N
1サンプル値をw
1=h
1であるサンプル位置のw
1xh
1配列のw
1*h
1予測値に変換するためのものであり、線形またはアフィン線形変換の第1のセット内の各線形またはアフィン線形変換は、N
2サンプル値をw
2=h
2であるサンプル位置のw
2xh
2配列のw
2*h
2予測値に変換するためのものであるように構成され得る。
7.
図11の例
図11は、
図3から
図9の例(特に、いくつかの特徴は、
図4から直接導出されてもよく、したがってここでは繰り返さない)から解釈され得る別の例を示す。
【0192】
図11は、
図4のデコーダ54の可能な実装形態、すなわち、
図10のエンコーダ14の実装形態に対して適合する実装形態を示す。特に、加算器42’および予測子44’は、
図10のエンコーダ14と同じ方法で予測ループに接続され得る。加算器42’に適用される再構成された、すなわち逆量子化され再変換された予測残差信号は、エントロピエンコーダのエントロピ符号化を逆にするエントロピデコーダのシーケンスによって導出されることがあり、符号化側の場合と同様に、逆量子化器および逆変換器40’から構成される残差信号再構成段が続く。デコーダの出力は、ピクチャ10の再構成である。ピクチャ10の再構成は、加算器42’の出力で直接利用可能であってもよく、あるいはインループフィルタの出力で利用可能であってもよい。
【0193】
図から分かるように、段813’、812’、813’は、エンコーダ14としてのものであってもよく、記憶ユニット1044は、エンコーダ14と同様に行列のセットを記憶してもよい。したがって、ここでは説明を繰り返さない。インデックス944(例えば、i、k、転置インデックス、セットインデックスなどの上記のインデックスのうちの1つ以上)は、データストリーム12から直接取得し得る。セットS0,S1,S2の間の選択は、サイズ(例えば、H/KまたはM/N)に従うことができる。
【0194】
追加的または代替的に、デコーダは、所定のブロック(18)について、データストリーム(12)から予測残差(34’’)を導出し、所定のサンプル(24’,104,108,108’)に対する予測残差(34’’)および予測値(24’)を使用して、所定のブロック(18)を再構成する(42’)ように構成され得る。
【0195】
追加的または代替的に、デコーダは、所定のブロック(18)について、Q個またはQred個の所定のサンプルのセットの各々について対応する残差値を取得するために、データストリーム(12)から予測残差(34’’)を導出し、対応する再構成値(10)を得るために、Q個またはQred個の所定のサンプルのセットの各々の予測値を、対応する残差値(34’’)で補正することによって、所定のサンプル(118’,118’’)の予測残差(34’’)および予測値(24’,104)を使用して所定のブロック(18)を再構成し、その結果、対応する再構成値(10)が、任意選択で、予測および/または補正後に適用されるクリッピングを除いて、サンプル値の減少したセット内のPred個の隣接サンプル(102)に厳密に線形に依存する
ように構成され得る。
【0196】
追加的または代替的に、デコーダは、デコーダが、ピクチャ(10)を、所定のブロック(18)を含む異なるブロックサイズの複数のブロックに細分するように構成され、デコーダは、所定のブロック(18)の幅Wおよび高さHに応じて線形またはアフィン線形変換(19,17M,Ak)を選択し、その結果、所定のブロック(18)に対して選択された線形またはアフィン線形変換は、所定のブロック(81)の幅Wおよび高さHが幅/高さ対の第1のセット内にある限り、線形またはアフィン線形変換の第1のセットから選択され、所定のブロックの幅Wおよび高さHが、幅/高さ対の第1のセットとは分離される幅/高さ対の第2のセット内にある限り、線形またはアフィン線形変換の第2のセットから選択されるように構成され得る。
【0197】
追加的または代替的に、デコーダは、デコーダが、ピクチャ(10)を、所定のブロック(18)を含む異なるブロックサイズの複数のブロックに細分するように構成され、デコーダは、所定のブロック(18)の幅Wおよび高さHに応じて線形またはアフィン線形変換(19,17M,Ak)を選択し、その結果、所定のブロック(18)に対して選択された線形またはアフィン線形変換は、所定のブロック(18)の幅Wおよび高さHが幅/高さ対の第1のセット内にある限り、線形またはアフィン線形変換の第1のセットから選択され、所定のブロック(18)の幅Wおよび高さHが、幅/高さ対の第1のセットとは分離される幅/高さ対の第2のセット内にある限り、線形またはアフィン線形変換の第2のセットから選択され、所定のブロック(18)の幅Wおよび高さHが、幅/高さ対の第1および第2のセットとは分離される1つ以上の幅/高さ対の第3のセット内にある限り、線形またはアフィン線形変換の第3のセットから選択されるように構成され得る。
【0198】
追加的または代替的に、デコーダは、1つ以上の幅/高さ対の第3のセットが、1つの幅/高さ対W’,H’を単に含むだけであり、線形またはアフィン線形変換の第1のセット内の各線形またはアフィン線形変換は、N’サンプル値をサンプル位置のW’xH’配列のW’*H’予測値に変換するためのものであるように構成され得る。
【0199】
追加的または代替的に、デコーダは、幅/高さ対の第1および第2のセットの各々は、第1の幅/高さ対Wp,Hpであって、WpがHpと等しくない、第1の幅/高さ対Wp,Hpと、第2の幅/高さ対Wq,Hqであって、Hq=WpおよびWq=Hpである、第2の幅/高さ対Wq,Hqとを含むように構成され得る。
【0200】
追加的または代替的に、デコーダは、幅/高さ対の第1および第2のセットの各々は、第3の幅/高さ対Wp,Hpをさらに含むことがあり、WpはHpに等しく、Hp>Hqである。
追加的または代替的に、デコーダは、所定のブロック(18)について、セットインデックス(k)をデータストリーム(12)から読出し、
線形またはアフィン線形変換の所定のセットから、セットインデックス(k)に応じて線形またはアフィン線形変換を選択するように構成され得る。
【0201】
追加的または代替的に、デコーダは、複数の隣接サンプル(17)が、所定のブロック(18)の2辺に沿って一次元に延在し、デコーダは、所定のブロックの第1の側に隣接する複数の隣接サンプルの第1のサブセットについて、第1のサブセットを1つ以上の連続する隣接サンプルの第1のグループ(110)にグループ化し、所定のブロックの第2の側に隣接する複数の隣接サンプルの第2のサブセットについて、第2のサブセットを1つ以上の連続する隣接サンプルの第2のグループ(110)にグループ化し、3つ以上の隣接サンプルを有する1つ以上の隣接サンプルの第1および第2のグループの各々についてダウンサンプリングまたは平均化を実行することによって、減少(811)を実行し、その結果、第1のグループから第1のサンプル値を、第2のグループについて第2のサンプル値を取得するように構成されることがあり、デコーダは、線形またはアフィン線形変換の所定のセットからセットインデックスに応じて線形またはアフィン線形変換を選択し、その結果、セットインデックスの2つの異なる状態が、線形またはアフィン線形変換の所定のセットの線形またはアフィン線形変換の1つを選択するようにし、サンプル値の減少したセットを、所定の線形またはアフィン線形変換に供し、予測値の出力ベクトルを生成するために第1のベクトルの形態で2つの異なる状態の第1の状態を想定するセットインデックスの場合、出力ベクトルの予測値を第1のスキャン順序に沿って所定のブロックの所定のサンプルに分配し、第2のベクトルの形態で2つの異なる状態の第2の状態を想定するセットインデックスの場合、第1のベクトルと第2のベクトルとが異なり、その結果、第1のベクトル内の第1のサンプル値の1つで入力されたコンポーネントが、第2のベクトル内の第2のサンプル値の1つが入力され、第1のベクトル内の第2のサンプル値の1つで入力されたコンポーネントは、第2のベクトル内の第1のサンプル値の1つが入力され、その結果、予測値の出力ベクトルを生成し、出力ベクトルの予測値を、第2のスキャン順序に沿って、第1のスキャン順序に対して転置される所定のブロックの所定のサンプルへ分散するように構成され得る。
【0202】
追加的または代替的に、デコーダは、線形またはアフィン線形変換の第1のセット内の各線形またはアフィン線形変換は、N1サンプル値をサンプル位置のw1xh1配列のw1*h1予測値に変換するためのものであり、線形またはアフィン線形変換の第1のセット内の各線形またはアフィン線形変換は、N2サンプル値をサンプル位置のw2xh2配列のw2*h2予測値に変換するためのものであり、幅/高さ対の第1のセットのうちの第1の所定のものについて、w1が第1の所定の幅/高さ対の幅を超えるか、またはh1が第1の所定の幅/高さ対の高さを超え、幅/高さ対の第1のセットのうちの第2の所定のものについて、w1が第2の所定の幅/高さ対の幅を超えることも、h1が第2の所定の幅/高さ対の高さを超えることもないように構成されてもよく、デコーダは、サンプル値の減少したセット(102)を取得するために、複数の隣接サンプルをダウンサンプリングまたは平均化することによって、減少(100)を実行し、その結果、所定のブロックが、第1の所定の幅/高さ対のものである場合、そして所定のブロックが第2の所定の幅/高さ対のものである場合、サンプル値の減少したセット(102)はN1サンプル値を有し、サンプル値の減少したセットを、所定のブロックが第1の所定の幅/高さ対のものである場合には、w1が1つの幅/高さ対の幅を超える場合には幅次元に沿って、またはh1が1つの幅/高さ対の高さを超える場合には高さ次元に沿って、サンプル位置のw1xh1配列のサブサンプリングに関連する選択された線形またはアフィン線形変換の第1の下位部分のみを使用することによって、選択された線形またはアフィン線形変換に、所定のブロックが第2の所定の幅/高さ対のものである場合には、選択された線形またはアフィン線形変換に完全に、供することを実行するように構成される。
【0203】
追加的または代替的に、デコーダは、線形またはアフィン線形変換の第1のセット内の各線形またはアフィン線形変換は、N1サンプル値をw1=h1であるサンプル位置のw1xh1配列のw1*h1予測値に変換するためのものであり、線形またはアフィン線形変換の第1のセット内の各線形またはアフィン線形変換は、N2サンプル値をw2=h2であるサンプル位置のw2xh2配列のw2*h2予測値に変換するためのものであるように構成され得る。
8.本技術の効果の考察
【0204】
平均化および/または補間(これは、とりわけ、計算労力を減少させる効果に帰着する)のためのビットシフトなどの動作を使用することとは無関係に、いくつかの例ではビットシフトの効果的な使用を超え得る他の効果が得られ得ることにも留意されたい。
【0205】
特に、本実施例では、ALWIP行列17M(例えば、ステップ812aにおいて)の選択が限られた数のセットに対して実行されるように、予測モードを異なるブロック形状にわたって共有することができる。例えば、予測すべきブロック18の可能な次元(例えば、高さ/幅の対)よりも少ないALWIP行列のセットが存在し得る。上述したように、予測されるブロック18の異なる幅/高さ対をセットS
0(例えば、n
0個の行列、例えば、n
0=16である)、S
1(例えばn
1個の行列、例えばn
1=8)、およびS
2(例えばn
2行列、例えばn
2=6の場合)のうちの1つにマッピングする
図12を参照し得る(異なる再分割が可能であり得る)。
【0206】
例えば、セットS1の16×8行列は、次元
4×8、4×16、4×32、4×64、8×4、8×8、16×4、32×4および64×4のいずれかを有するブロックの予測モードによって共有されてもよく、セットS2の64×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×6を有するブロックの予測モードによって共有されてもよい。セット102を形成するために必要なPred数のサンプルに境界17の次元を減少させるための減少ステップ811(上記参照)について説明したような技術を実行するだけでよいが、ステップ812において、予測されるブロック18の元の次元は無関係である。ステップ813(実施される場合)において、単に補間を実行することによってブロックの完全な予測に到達することが可能である。
【0207】
この手法は、16*16*4+8*16*8+6*64*8=5120個の値(例えば、各値は、例えば8ビット値である)の予想外の次元で記憶空間1044において必要な記憶空間を削減することを可能にすることに留意されたい。
【0208】
比較すると、従来の技術では、幅/高さ対ごとに行列のセットを使用する必要がある。
図12から容易に理解できるように、25セットが必要になる!25セットの行列が5120個の値の記憶空間よりもはるかに多くを必要とすることは容易に理解することができる。したがって、必要な記憶空間を削減するために、各セットの行列の数を減らす必要があるが、予測のために自由に使える行列が少ない場合、品質は低下する!
【0209】
共有技術を考慮した記憶空間の減少は、記憶された行列自体のサイズの減少によってさらに増幅される。例えば、MxN=64x64ブロックの予測は、サイズQxP=(M*N)x(M+N)の行列、すなわち(64*64)*(64+64)=524288個の値が記憶空間に記憶されることを必要とするであろう!したがって、本技術では、予想よりもさらに多くの記憶空間を節約することが可能である。
したがって、本技術は、ユニット1044に記憶される必要があるパラメータの数を減らすことを可能にする。
【0210】
ビットシフトの実際の使用の有無にかかわらず、エンコーダまたはデコーダが自由に使える記憶資源を減らすことができ、あるいは逆に、より多くの予測モードを記憶空間のパリティに使用し得る。
【0211】
それにもかかわらず、最適な効果は、(ステップ811および/または813における)ビットシフト技術を、(ステップ812における)複数のモードに対して同じ予測モードを共有するものと組み合わせることによって達成される。
【0212】
25個の異なる高さ/幅の対に対して25個の異なるセットを使用する従来の手法に関して、本技術は明らかに複雑さを増すと解釈される可能性がある(ステップ811および/または813は従来の技術では考えられないため)。しかしながら、ステップ811および/または813の導入は、乗算の減少によってより補償することができる。
【0213】
さらに、25個の異なる高さ/幅の対に対して25の異なるセットを使用する従来の手法に関して、この処理を制御するために必要な命令は、(ステップ811および/または813のための追加の命令が記憶されるため)より多くの記憶空間を必要とする。しかしながら、ステップ811および/または813のための命令を記憶する必要性は、記憶される行列の数の減少によって暗示される空間の減少によってさらに補償され得る。
9.さらなる実施形態および実施例
【0214】
一般に、実施例は、コンピュータプログラム製品がコンピュータ上で動作するときに、本方法の1つを実行するように動作するプログラム命令を有するコンピュータプログラム製品として実施され得る。プログラム命令は、例えば、機械読み取り可能な媒体に記憶することができる。
他の実施例は、本明細書に記載の方法の1つを実行するためのコンピュータプログラムを含み、機械読み取り可能なキャリアに記憶される。
【0215】
換言すれば、本発明の方法の実施例は、コンピュータプログラムがコンピュータ上で実行されるときに、本明細書に記載の方法の1つを実行するためのプログラム命令を有するコンピュータプログラムである。
【0216】
したがって、本発明の方法のさらなる実施例は、本明細書に記載の方法のうちの1つを実行するためのコンピュータプログラムを含み、そこに記録される、データキャリア媒体(またはデジタル記憶媒体またはコンピュータ可読媒体)である。データキャリア媒体、デジタル記憶媒体、または記録媒体は、無形で一時的な信号ではなく、有形および/または非一時的である。
【0217】
したがって、本発明の方法のさらなる実施例は、本明細書に記載の方法のうちの1つを実行するためのコンピュータプログラムを表すデータストリームまたは信号のシーケンスである。データストリームまたは信号のシーケンスは、例えば、データ通信接続、例えばインターネットを介して転送され得る。
さらなる実施例は、本明細書に記載の方法のうちの1つを実行する処理手段、例えばコンピュータまたはプログラマブル論理装置を含む。
さらなる実施例は、本明細書で説明される方法の1つを実行するためのコンピュータプログラムがインストールされたコンピュータを含む。
【0218】
本発明によるさらなる実施例は、本明細書で説明される方法の1つを実行するためのコンピュータプログラムを受信機に転送(例えば、電子的にまたは光学的に)する装置またはシステムを含む。受信機は、例えば、コンピュータ、モバイル装置、メモリ装置などであってもよい。この装置またはシステムは、例えば、コンピュータプログラムを受信機に転送するためのファイルサーバを備え得る。
【0219】
いくつかの例では、プログラマブルロジック装置(例えば、フィールドプログラマブルゲート配列)を使用して、本明細書に記載の方法の機能の一部または全部を実行することができる。いくつかの実施形態では、フィールドプログラマブルゲート配列は、本明細書で説明する方法の1つを実行するためにマイクロ処理部と協働し得る。一般に、これらの方法は、任意の適切なハードウェア装置によって実行され得る。
【0220】
上述の例は、上述の原理の単なる例示である。本明細書に記載された構成および詳細の変更および変形は、明らかであることが理解される。したがって、差し迫った特許請求の範囲によって限定され、本明細書の実施例の記載および説明によって示される特定の詳細によっては限定されないことが意図される。
【0221】
等しいか同等である要素または等しいか同等である機能を有する要素は、以下の説明において、異なる図で発生する場合でも、等しいか同等である参照番号で示される。
参考文献
【0222】
[1] P. Helle et al., “Non-linear weighted intra prediction”, JVET-L0199, Macao, China, October 2018.
【0223】
[2] F. Bossen, J. Boyce, K. Suehring, X. Li, V. Seregin, “JVET common test conditions and software reference configurations for SDR video”, JVET-K1010, Ljubljana, SI, July 2018.