(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-09-12
(54)【発明の名称】ビデオ符号化における変換係数の残差符号予測の改良
(51)【国際特許分類】
H04N 19/48 20140101AFI20240905BHJP
【FI】
H04N19/48
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024514612
(86)(22)【出願日】2022-09-29
(85)【翻訳文提出日】2024-04-26
(86)【国際出願番号】 SG2022050706
(87)【国際公開番号】W WO2023055300
(87)【国際公開日】2023-04-06
(32)【優先日】2021-09-29
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2022-01-04
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】523475516
【氏名又は名称】アリババ ダモ (ハンジョウ) テクノロジー カンパニー,リミテッド
(74)【代理人】
【識別番号】100079108
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【氏名又は名称】内藤 和彦
(72)【発明者】
【氏名】サーヴァー,モハメド ゴラム
(72)【発明者】
【氏名】イエ,ヤン
(72)【発明者】
【氏名】チェン,ジエ
(72)【発明者】
【氏名】リャオ,ルーリン
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159MC33
(57)【要約】
残差係数のソート順序と、TBの拡張された領域とを利用する残差符号予測方法を実装するVVC規格符号化器およびVVC規格復号器を提供する。変換係数レベルが大きいほど符号予測精度が高くなるので、VVC規格符号化器およびVVC規格復号器は、残差係数レベル値の代わりに対応するQIdx値に基づいて、1次元配列内のTBの変換係数符号をソートする。最大から最小の順に並べられた対応するQIdx値に応じた最初のn個の符号が、残差符号予測方法を使用して予測され、残りの符号はEPビンによってシグナリングされる。符号予測エリアも、変換ブロック内の左上の4×4領域に限定されず、最大で32×32のサイズの領域まで拡張され、VVC規格符号化器は、その領域の最大寸法をVVC規格復号器にブロックのシンタックス構造でシグナリングする。
【特許請求の範囲】
【請求項1】
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサに通信可能に結合されたメモリと、
を備え、前記メモリは、前記1つまたは複数のプロセッサによって実行された場合に、関連付けられた動作を実行する、前記1つまたは複数のプロセッサによって実行可能なフロントエンドアプリケーションを記憶し、前記動作は、
ソートされた順序の現在のブロックの変換係数の最大のそれぞれの量子化インデックスに対応する前記現在のブロックの複数の変換係数符号を予測することと、
エントロピー符号化器によって、前記予測された複数の変換係数符号の残差を前記現在のブロックのシンタックス構造でシグナリングすることと、
を含む、コンピューティングシステム。
【請求項2】
前記動作は、
前記予測された複数の変換係数符号以外の前記現在のブロックの変換係数符号の符号化をバイパスすることと、
予測された複数の変換係数符号の前記シグナリングされた残差と、符号化がバイパスされた変換係数符号の等確率バイナリ列シグナリングとを含む符号化されたブロックを出力することと、
をさらに含む、請求項1に記載のコンピューティングシステム。
【請求項3】
前記動作は、
符号化がバイパスされた変換係数符号をシグナリングする前に、予測された各変換係数符号の残差をビットストリームでシグナリングすることと、
前記シグナリングされた残差に続いて、符号化がバイパスされた変換係数符号を前記ビットストリームでシグナリングすることと、
をさらに含む、請求項2に記載のコンピューティングシステム。
【請求項4】
前記現在のブロックの前記変換係数の前記量子化インデックスを、配列の要素としてラスタスキャン順序で記録することと、
前記配列の前記要素を大きさ順にソートして、ソートされた配列を生成することと、
をさらに含む、請求項1に記載のコンピューティングシステム。
【請求項5】
最大の量子化インデックスに対応する前記現在のブロックの複数の変換係数符号を予測することは、前記ソートされた配列の末尾にある複数の要素に記録された量子化インデックスに対応する各変換係数を予測することを含む、請求項4に記載のコンピューティングシステム。
【請求項6】
前記予測された複数の変換係数符号は、前記現在のブロックのある領域に限定され、
前記現在のブロックの前記領域の幅は、固定の幅および前記現在のブロックの幅のうちの小さい方の値であり、
前記現在のブロックの前記領域の高さは、固定の高さおよび前記現在のブロックの高さのうちの小さい方の値である、
請求項1に記載のコンピューティングシステム。
【請求項7】
前記動作は、前記現在のブロックの前記シンタックス構造で前記固定の幅および前記固定の高さをシグナリングすることをさらに含む、請求項6に記載のコンピューティングシステム。
【請求項8】
変換係数符号は最大許容限度まで予測され、
前記最大許容限度は8よりも大きく、
前記動作は、前記現在のブロックのシンタックス構造で前記最大許容限度をシグナリングすることをさらに含む、
請求項1に記載のコンピューティングシステム。
【請求項9】
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサに通信可能に結合されたメモリと、
を備え、前記メモリは、前記1つまたは複数のプロセッサによって実行された場合に、関連付けられた動作を実行する、前記1つまたは複数のプロセッサによって実行可能なフロントエンドアプリケーションを記憶し、前記動作は、
エントロピー復号器によって、現在のブロックの複数のエントロピー符号化された変換係数を復号して、前記現在のブロックの復号された変換係数を生成することと、
ソートされた順序の前記現在のブロックの再構成された残差の前記変換係数の最大のそれぞれの量子化インデックスに対応する前記現在のブロックの再構成された残差の予測された複数の変換係数符号の残差に基づいて前記現在のブロックを再構成することと、
を含む、コンピューティングシステム。
【請求項10】
前記動作は、
前記エントロピー復号器によって、前記現在のブロックのシンタックス構造から、予測された変換係数符号の複数の残差をパースすることと、
前記復号された変換係数、および変換係数符号の前記複数の残差を、逆量子化および逆変換して、前記現在のブロックの再構成された残差を生成することと、
をさらに含む、請求項9に記載のコンピューティングシステム。
【請求項11】
前記現在のブロックの再構成された残差の変換係数の量子化インデックスを、配列の要素としてラスタスキャン順序で記録することと、
前記配列の前記要素を大きさ順にソートして、ソートされた配列を生成することと、
をさらに含む、請求項10に記載のコンピューティングシステム。
【請求項12】
前記現在のブロックの再構成された残差を生成することは、最大の量子化インデックスに対応する前記現在のブロックの再構成された残差の複数の変換係数符号を選択することを含み、前記ソートされた配列の末尾にある複数の要素に記録された量子化インデックスに対応する各変換係数を予測することを含む、請求項11に記載のコンピューティングシステム。
【請求項13】
前記現在のブロックの前記再構成された残差と、前記複数の変換係数符号を含む予測信号とを加算して、再構成されたブロックを生成することをさらに含む、請求項11に記載のコンピューティングシステム。
【請求項14】
前記予測された複数の変換係数符号は、前記現在のブロックのある領域に限定され、
前記現在のブロックの前記領域の幅は、固定の幅および前記現在のブロックの幅のうちの小さい方の値であり、
前記現在のブロックの前記領域の高さは、固定の高さおよび前記現在のブロックの高さのうちの小さい方の値である、
請求項9に記載のコンピューティングシステム。
【請求項15】
前記動作は、前記現在のブロックのシンタックス構造から、前記固定の幅および前記固定の高さをパースすることをさらに含む、請求項14に記載のコンピューティングシステム。
【請求項16】
ビデオシーケンスに関連付けられたビットストリームを記憶する非一時的コンピュータ可読記憶媒体であって、前記ビットストリームは、
ソートされた順序の符号化されたブロックの変換係数の最大のそれぞれの量子化インデックスに対応する前記符号化されたブロックの予測された複数の変換係数符号の残差
を含む、非一時的コンピュータ可読記憶媒体。
【請求項17】
前記ビットストリームは、符号化がバイパスされた変換係数符号の等確率バイナリ列シグナリングをさらに含み、前記符号化がバイパスされた変換係数符号は、前記複数の変換係数符号以外の前記符号化されたブロックの変換係数符号を含む、請求項16に記載の非一時的コンピュータ可読記憶媒体。
【請求項18】
ビットストリームは、予測された複数の変換係数符号の前記残差と、後続する等確率バイナリ列とを含む、請求項17に記載の非一時的コンピュータ可読記憶媒体。
【請求項19】
前記ビットストリームは、前記予測された複数の変換係数符号が制限される、前記符号化されたブロックの領域の固定の幅および固定の高さをさらに含む、請求項16に記載の非一時的コンピュータ可読記憶媒体。
【請求項20】
前記ビットストリームは、予測された変換係数符号の最大許容限度をさらに含む、請求項16に記載の非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願
[0001] 本PCT出願は、2021年9月29日に出願された米国仮特許出願第63/250,202号に対する優先権を主張し、また、2022年1月4日に出願された米国仮特許出願第63/296,370号に対する優先権を主張し、それぞれが引用により本明細書に組み込まれている。
【背景技術】
【0002】
[0002] 2020年に、ITU-Tビデオ符号化専門家グループ(「ITU-T VCEG:Video Coding Expert Group」)およびISO/IEC動画像専門家グループ(「ISO/IEC MPEG:Moving Picture Expert Group」)の共同ビデオ専門家チーム(「JVET:Joint Video Experts Team」)が、次世代ビデオコーデック仕様であるバーサタイルビデオコーディング(「VVC」)の最終ドラフトを発行した。この仕様は、H.264/AVC(高度ビデオ符号化:Advanced Video Coding)およびH.265/HEVC(高効率ビデオ符号化:High Efficiency Video Coding)などの以前の規格に比べて、ビデオ符号化のパフォーマンスをさらに向上させる。JVETは、拡張圧縮モデル(「ECM:Enhanced Compression Model」)という名の下に収集されている、VVC規格自体の範囲を超える追加技術の提案を継続している。
【0003】
[0003] AVC、HEVC、およびVVC規格のそれぞれにおいて、離散コサイン変換(「DCT:discrete cosine transform」)技術は、効率的なビデオ符号化のための基本的な画像圧縮技術である。画像は符号化ブロックに分割され、各符号化ブロックに対して予測計算が実行されて、予測ユニットおよび残差が導出され、次いで、残差に対して変換計算が実行されて、係数の配列が導出される。残差係数に基づいて、復号器は、予測ユニットおよび変換係数に基づいて画像を再構成して、最終的に、再構成されたピクチャを送信用のビットストリームに出力し得る。再構成されたピクチャを送信することにより、ビデオストリームの送信に必要なビットレートが削減され、これによりレート向上が実現される。
【0004】
[0004] 残差係数にさらに予測、符号化、復号も施すことで、圧縮効率がさらに向上した。これは、エントロピー符号化器のコンテキスト依存2値算術コーデック(「CABAC:Context-Sensitive Binary Arithmetic Codec」)の形態で実装される。しかしながら、当業者には理解される課題のため、従来、各残差係数の符号は予測または符号化の対象とされておらず、「符号ビット」として送信されており、これらのビットは、送信されるビットストリームのかなりの部分を占め続けているので、さらなるビットレート向上を実現するための継続的な取り組みの標的のままとなっている。
【0005】
[0005] 本明細書の執筆時点で、ECM(2021年10月の動画像専門家グループ(「MPEG」)の第136回会合で「拡張圧縮モデル3(ECM3)のアルゴリズム記述」として発表)の最新のドラフトには、残差係数符号に予測、符号化、および復号を施す提案が含まれている。しかしながら、ビデオ符号化においてさらに大きなビットレート向上および圧縮効率を実現するために、また、結果として得られるビットレート向上が予測精度の損失によって大きく相殺されないように、符号予測の提案の改良を継続することが望ましい。
【発明の概要】
【0006】
[0006] 添付の図面を参照して詳細に説明する。図において、参照番号の左端の桁は、その参照番号が最初に登場する図を識別する。異なる図における同じ参照番号の使用は、類似または同一の項目または特徴を示す。
【図面の簡単な説明】
【0007】
【
図1A】[0007]本開示の例示的な実施形態によるビデオ符号化プロセスの例示的なブロック図である。
【
図1B】[0007]本開示の例示的な実施形態によるビデオ復号プロセスの例示的なブロック図である。
【
図2】[0008]ECM3提案による16×8ピクセルのサイズのTUの4×4領域を示す図である。
【
図3】[0009]ECM3提案による、予測される符号を決定するためのTUの4×4領域のスキャン順序を示す図である。
【
図4A】[0010]ECM3提案による8×4のTUの残差境界予測の例を示す図である。
【
図4B】[0010]ECM3提案による8×4のTUの残差境界予測の例を示す図である。
【
図5】[0011]ECM3提案による導出された予測された境界残差を示す図である。
【
図6A】[0012]本開示の例示的な実施形態による残差符号予測方法における勾配ベースの境界残差符号予測プロセスの利用を示す図である。
【
図6B】[0012]本開示の例示的な実施形態による残差符号予測方法における勾配ベースの境界残差符号予測プロセスの利用を示す図である。
【
図7】[0013]最上行の予測されるピクセルに対する8つの最近傍の間のいくつかの相関パターンを示す図である。
【
図8A-C】[0014]本開示の斜め右モードによるTBの例示的な残差境界予測を示す図である。
【
図8D-F】[0014]本開示の斜め右モードによるTBの例示的な残差境界予測を示す図である。
【
図9A-C】[0015]本開示の斜め左モードによるTBの例示的な残差境界予測を示す図である。である。
【
図9D-F】[0015]本開示の斜め左モードによるTBの例示的な残差境界予測を示す図である。
【
図10A-C】[0016]本開示の第1の混合モードによるTBの例示的な残差境界予測を示す図である。
【
図10D-F】[0016]本開示の第1の混合モードによるTBの例示的な残差境界予測を示す図である。
【
図11A-C】[0017]本開示の第2の混合モードによるTBの例示的な残差境界予測を示す図である。
【
図11D-F】[0017]本開示の第2の混合モードによるTBの例示的な残差境界予測を示す図である。
【
図12A-C】[0018]本開示の第3の混合モードによるTBの残差境界予測の例を示す図である。
【
図12D-F】[0018]本開示の第3の混合モードによるTBの残差境界予測の例を示す図である。
【
図13A-C】[0019]本開示の第4の混合モードによるTBの残差境界予測の例を示す図である。
【
図13D-F】[0019]本開示の第4の混合モードによるTBの残差境界予測の例を示す図である。
【
図14A-C】[0020]本開示の第5の混合モードによるTBの残差境界予測の例を示す図である。
【
図14D-F】[0020]本開示の第5の混合モードによるTBの残差境界予測の例を示す図である。
【
図15A-C】[0021]本開示の第6の混合モードによるTBの残差境界予測の例を示す図である。
【
図15D-F】[0021]本開示の第6の混合モードによるTBの残差境界予測の例を示す図である。
【
図16】[0022]本開示の例示的な実施形態による、テンプレートと比較される再構成された近傍のブロックのサンプルの一例を示す図である。
【
図17】[0023]本開示の例示的な実施形態による、TBの符号を第1のグループおよび第2のグループに分類する一例を示す図である。
【
図18】[0024]本開示の例示的な実施形態によるTB依存のM×N符号予測領域の一例を示す図である。
【
図19】[0025]本開示の例示的な実施形態によるソート順序を利用する残差符号予測方法の一例を示す図である。
【
図20】[0026]2つの量子化器間の同じ残差係数レベルに対する量子化インデックスの不一致を示す図である。
【
図21】[0027]ECM3提案によるビットストリームシグナリング順序を示す図である。
【
図22】[0028]ECM3提案によるビットストリームシグナリング順序の結果を示す図である。
【
図23】[0029]本開示の例示的な実施形態によるソート順序を利用する残差符号予測方法のための2パスビットストリームシグナリング方法を示す図である。
【
図24】[0030]予測される符号を決定するためにTBの4×4領域のスキャン順序に適用されるジグザグスキャン順序を示す図である。
【
図25】[0031]本開示の例示的な実施形態によるM=N=2の拡張された境界の一例を示す図である。
【
図26】[0032]境界拡張を伴う不連続性測定の一例を示す図である。
【
図27】[0033]残差符号予測を実装するための本明細書に記載のプロセスおよび方法を実装するための例示的なシステムを示す図である。
【発明を実施するための形態】
【0008】
[0034] VVCビデオ符号化規格(「VVC規格」)およびその中に記載されている動き予測に従って、コンピュータ可読記憶媒体に記憶されたコンピュータ可読命令は、VVC規格によって記述された符号化器の動作と、VVC規格によって記述された復号器の動作とを実行するように1つまたは複数のプロセッサを構成するために、コンピューティングシステムの1つまたは複数のプロセッサによって実行可能である。VVC規格によるこれらの符号化器動作および復号器動作の一部について、後でさらに詳細に説明するが、これらの以降の説明は、VVC規格による符号化器動作および復号器動作を網羅するものとして理解されるべきではない。続いて、「VVC規格符号化器」および「VVC規格復号器」は、これらのそれぞれの動作(これらは、例として、符号化器または復号器の「参照実装」と呼ばれ得る)を実行するように1つまたは複数のプロセッサを構成する、コンピュータ可読記憶媒体に記憶されたそれぞれのコンピュータ可読命令を記述するものとする。
【0009】
[0035] さらに、本開示の例示的な実施形態によれば、VVC規格符号化器およびVVC規格復号器は、VVC規格で規定されていない動作を実行するように1つまたは複数のプロセッサを構成するために、コンピューティングシステムの1つまたは複数のプロセッサによって実行可能な、コンピュータ可読記憶媒体に記憶されたコンピュータ可読命令をさらに含む。VVC規格符号化器は、符号化器の参照実装の動作に限定されるものとして理解されるべきではなく、本明細書に記載のさらなる動作を実行するようにコンピューティングシステムの1つまたは複数のプロセッサを構成するさらなるコンピュータ可読命令を含むものとして理解されるべきである。VVC規格復号器は、復号器の参照実装の動作に限定されるものとして理解されるべきではなく、本明細書に記載のさらなる動作を実行するようにコンピューティングシステムの1つまたは複数のプロセッサを構成するさらなるコンピュータ可読命令を含むものと理解されるべきである。
【0010】
[0036]
図1Aおよび
図1Bは、それぞれ、本開示の例示的な実施形態による符号化プロセス100および復号プロセス150の例示的なブロック図を示す。
【0011】
[0037] 符号化プロセス100では、VVC規格符号化器は、画像ソース102から1つまたは複数の入力ピクチャを入力として受け取るようにコンピューティングシステムの1つまたは複数のプロセッサを構成する。入力ピクチャは、フォトセンサアレイなどの画像キャプチャデバイスによってサンプリングされたある数のピクセルを含み、ピクチャの元の解像度で色データを記憶する複数の色チャネル(たとえば、RGB色チャネル)の非圧縮ストリームを含み、各チャネルは、あるビット数を使用してピクチャの各ピクセルの色データを記憶する。VVC規格符号化器は、この非圧縮色データを圧縮形式で記憶するようにコンピューティングシステムの1つまたは複数のプロセッサを構成し、色データは、ピクチャの元の解像度よりも低い解像度で記憶され、ルマ(「Y」)チャネル、ならびにルマチャネルよりも解像度の低い2つのクロマ(「U」および「V」チャネル)として符号化される。
【0012】
[0038] VVC規格符号化器は、分割構造に従って元のピクチャをユニットおよびサブユニットに分割するようにコンピューティングシステムの1つまたは複数のプロセッサを構成することによって、ピクチャ(画像ソース102から受け取られる他のピクチャと区別して「現在のピクチャ」と呼ばれる符号化中のピクチャ)を符号化する。VVC規格符号化器は、ピクチャをマクロブロック(「MB」)に細分化するようにコンピューティングシステムの1つまたは複数のプロセッサを構成し、各MBは16×16ピクセルの寸法を有し、MBはさらにパーティションに細分化され得る。VVC規格符号化器は、ピクチャを符号化ツリーユニット(「CTU:coding tree unit」)に細分化するようにコンピューティングシステムの1つまたは複数のプロセッサを構成し、CTUのルマおよびクロマコンポーネントは、さらに符号化ツリーブロック(「CTB:coding tree block」)に細分化され得、CTBはさらに符号化ユニット(「CU:coding unit」)に細分化される。あるいは、VVC規格符号化器は、ピクチャをN×Nピクセルのユニットに細分化するようにコンピューティングシステムの1つまたは複数のプロセッサを構成し、次いでこのユニットはさらにサブユニットに細分化され得る。ピクチャのこれらの最大の細分化されたユニットのそれぞれは、本開示のために、一般に「ブロック」と呼び得る。
【0013】
[0039] CUはルマサンプルの1つのブロックとクロマサンプルの2つの対応するブロックとを使用して符号化され、ピクチャはモノクロではなく、1つの符号化ツリーを使用して符号化される。
【0014】
[0040] VVC規格符号化器は、4×4ピクセルの倍数の寸法を有するパーティションにブロックを細分化するようにコンピューティングシステムの1つまたは複数のプロセッサを構成する。たとえば、ブロックのパーティションは、8×4ピクセル、4×8ピクセル、8×8ピクセル、16×8ピクセル、または8×16ピクセルの寸法を有し得る。
【0015】
[0041] VVC規格符号化器は、フル解像度の元のピクチャのピクセルの色情報ではなく、ピクチャのブロックおよびその細分化の色情報を符号化することにより、入力ピクチャよりも低い解像度でピクチャの色情報を符号化して、入力ピクチャよりも少ないビットで色情報を記憶するようにコンピューティングシステムの1つまたは複数のプロセッサを構成する。
【0016】
[0042] さらに、VVC規格符号化器は、現在のピクチャのブロックに対して動き予測を実行するようにコンピューティングシステムの1つまたは複数のプロセッサを構成することによってピクチャを符号化する。動き予測符号化とは、イントラ予測104またはインター予測106に従って、ピクセルデータではなく動き情報および予測ユニット(「PU:prediction unit」)を使用して、現在のピクチャのブロック(符号化前の元のピクチャのブロックは「入力ブロック」と呼ばれる)の画像データを記憶することを指す。
【0017】
[0043] 動き情報は、動きベクトル、および現在のピクチャまたは参照ピクチャのブロックへの参照など、ピクチャのブロック構造またはそのユニットもしくはサブユニットの動きを記述するデータを指す。PUは、MBまたはCTUなどの、ピクチャの複数のブロック構造のうちの1つのブロック構造に対応する1つのユニットまたは複数のサブユニットを指し得、ブロックは、ピクチャデータに基づいて分割され、VVC規格に従って符号化される。PUに対応する動き情報は、本明細書に記載のように、VVC規格符号化器によって符号化される動き予測を記述し得る。
【0018】
[0044] VVC規格符号化器は、最初に復号されるブロックがピクチャの最上端かつ最左端のブロックであるラスタスキャン順序など、ブロック間の符号化順序でピクチャの各ブロックに対して動き予測情報を符号化するようにコンピューティングシステムの1つまたは複数のプロセッサを構成する。符号化中のブロックは、同じピクチャ内の他のブロックと区別して「現在のブロック」と呼ばれる。
【0019】
[0045] イントラ予測104によれば、コンピューティングシステムの1つまたは複数のプロセッサは、同じピクチャの1つまたは複数の他のブロックの動き情報およびPUを参照することによってブロックを符号化するように構成される。イントラ予測符号化によれば、コンピューティングシステムの1つまたは複数のプロセッサは、現在のブロックの空間的に近傍のブロックからの空間的に近傍のサンプルに基づいて現在のブロックの動き情報を符号化することによってイントラ予測104(空間予測とも呼ばれる)計算を実行する。
【0020】
[0046] インター予測106によれば、コンピューティングシステムの1つまたは複数のプロセッサは、1つまたは複数の他のピクチャの動き情報およびPUを参照することによってブロックを符号化するように構成される。コンピューティングシステムの1つまたは複数のプロセッサは、インター予測符号化の目的で、以前に符号化および復号された1つまたは複数のピクチャを参照ピクチャバッファに記憶するように構成され、これらの記憶されたピクチャは参照ピクチャと呼ばれる。
【0021】
[0047] 1つまたは複数のプロセッサは、1つまたは複数の参照ピクチャからのサンプルに基づいて現在のブロックの動き情報を符号化することによってインター予測106(時間予測または動き補償予測とも呼ばれる)計算を実行するように構成される。インター予測は、さらに単方向予測または双方向予測に従って計算され得、単方向予測では、1つの参照ピクチャを指す1つの動きベクトルのみを使用して、現在のブロックの予測信号を生成する。双方向予測では、各動きベクトルがそれぞれの参照ピクチャを指す2つの動きベクトルを使用して、現在のブロックの予測信号を生成する。
【0022】
[0048] VVC規格符号化器は、VVC規格復号器の参照のために、現在のブロックの予測信号を識別するための参照インデックスを含むようにCUを符号化するようコンピューティングシステムの1つまたは複数のプロセッサを構成する。コンピューティングシステムの1つまたは複数のプロセッサは、インター予測インジケータを含むようにCUを符号化することができる。インター予測インジケータは、リスト0と呼ばれる第1の参照ピクチャリストを参照するリスト0予測、リスト1と呼ばれる第2の参照ピクチャリストを参照するリスト1予測、またはリスト0およびリスト1とそれぞれ呼ばれる両方の参照ピクチャリストを参照する双方向予測を示す。
【0023】
[0049] インター予測インジケータがリスト0予測またはリスト1予測を示す場合、コンピューティングシステムの1つまたは複数のプロセッサは、リスト0またはリスト1それぞれによって参照される参照ピクチャバッファの参照ピクチャを参照する参照インデックスを含めてCUを符号化するように構成される。インター予測インジケータが双方向予測を示す場合、コンピューティングシステムの1つまたは複数のプロセッサは、リスト0によって参照される参照ピクチャバッファの第1の参照ピクチャを参照する第1の参照インデックスと、リスト1によって参照される参照ピクチャの第2の参照ピクチャを参照する第2の参照インデックスとを含めてCUを符号化するように構成される。
【0024】
[0050] VVC規格符号化器は、ピクチャの現在のブロックを個別に符号化して、それぞれの予測ブロックを出力するようにコンピューティングシステムの1つまたは複数のプロセッサを構成する。VVC規格によれば、CTUは128×128のルマサンプル(加えて、クロマフォーマットに応じて、対応するクロマサンプル)の大きさにすることができる。CTUは、四分木、二分木、または三分木に従ってCUにさらに分割され得る。コンピューティングシステムの1つまたは複数のプロセッサは、符号化モード(イントラモードまたはインターモード)、インター符号化されたブロックの動き情報(参照インデックス、動きベクトルなど)、および量子化された残差係数などの符号化パラメータセットを分割構造のリーフノードのシンタックス構造に最終的に記録するように構成される。
【0025】
[0051] 予測ブロックが出力された後、VVC規格符号化器は、符号化モード(すなわち、イントラまたはインター予測)、イントラ予測モードまたはインター予測モード、および動き情報などの符号化パラメータセットをエントロピー符号化器124(後述)に送るようにコンピューティングシステムの1つまたは複数のプロセッサを構成する。
【0026】
[0052] VVC規格は、CUの符号化パラメータセットを記録するためのセマンティクスを提供する。たとえば、上記の符号化パラメータセットに関して、CUのpred_mode_flagは、インター符号化されたブロックでは0に設定され、イントラ符号化されたブロックでは1に設定され、CUのgeneral_merge_flagは、CUのインター予測でマージモードが使用されるか否かを示すために設定され、CUのinter_affine_flagおよびcu_affine_type_flagは、CUのインター予測でアフィン動き補償が使用されるか否かを示すために設定され、mvp_l0_flagおよびmvp_l1_flagは、リスト0またはリスト1それぞれにおける動きベクトルインデックスを示すために設定され、ref_idx_l0およびref_idx_l1は、リスト0またはリスト1それぞれにおける参照ピクチャインデックスを示すために設定される。VVC規格には、本開示の範囲を越えている他の様々な情報、フラグ、およびオプションを記録するためのセマンティクスが含まれていることを理解されるべきである。
【0027】
[0053] VVC規格符号化器は、1つまたは複数のモード決定および符号化器制御設定108、たとえば、レート制御設定をさらに実装する。コンピューティングシステムの1つまたは複数のプロセッサは、イントラ予測またはインター予測の後に、レート歪み最適化方法に基づいて、現在のブロックに対して最適化された予測モードを選択することによってモード決定を実行するように構成される。
【0028】
[0054] レート制御設定は、異なるピクチャに異なる量子化パラメータ(「QP:quantization parameter」)を割り当てるようにコンピューティングシステムの1つまたは複数のプロセッサを構成する。QPの大きさは、(後述するように)1つまたは複数のプロセッサによる符号化中にピクチャ情報が量子化されるスケールを決定し、ひいては、符号化プロセス100が符号化中にシーケンスのMBから(スケールのステップ間に情報が位置するために)ピクチャ情報を破棄する程度を決定する。
【0029】
[0055] VVC規格符号化器は、減算器110をさらに実装する。コンピューティングシステムの1つまたは複数のプロセッサは、入力ブロックと予測ブロックとの差を計算することによって減算演算を実行するように構成される。最適化された予測モードに基づいて、入力ブロックから予測ブロックが減算される。入力ブロックと予測ブロックとの差は、予測残差、または簡潔にするために「残差」と呼ばれる。
【0030】
[0056] 予測残差に基づいて、VVC規格符号化器は変換112をさらに実装する。コンピューティングシステムの1つまたは複数のプロセッサは、係数(これは「残差係数」、「変換係数」などと呼ばれ得る)の配列を導出するために、行列算術演算によって残差に対して変換演算を実行して、それにより、現在のブロックを変換ブロック(「TB:transform block」)として符号化するように構成される。変換係数は、サブブロックに適用され得る、対角反転、垂直反転、または回転などのいくつかの空間変換のうちの1つを表す係数を指し得る。
【0031】
[0057] 係数は、後でさらに詳細に説明するように、絶対値および符号の2つの構成要素として記憶できることが理解されるべきである。
【0032】
[0058] PUおよびTBなどのCUのサブブロックは、上述のようなサブブロック寸法の任意の組み合わせで配置することができる。VVC規格符号化器は、CUをTBの階層構造である残差四分木(「RQT:residual quadtree」)に細分化するようにコンピューティングシステムの1つまたは複数のプロセッサを構成する。RQTは、各レベルのサブブロックにわたる動き予測および残差符号化の順序を提供し、RQTの各レベルを再帰的に下降する。
【0033】
[0059] VVC規格符号化器は量子化114をさらに実装する。コンピューティングシステムの1つまたは複数のプロセッサは、量子化行列および上記で割り当てられたQPに基づいて、行列算術演算によって残差係数に対して量子化演算を実行するように構成される。ある区間内にある残差係数は保持され、その区間ステップ外にある残差係数は破棄される。
【0034】
[0060] VVC規格符号化器は、逆量子化116および逆変換118をさらに実装する。コンピューティングシステムの1つまたは複数のプロセッサは、上述の量子化演算および変換演算の逆の行列算術演算によって、量子化された残差係数に対して逆量子化演算および逆変換演算を実行するように構成される。逆量子化演算および逆変換演算により、再構成された残差が得られる。
【0035】
[0061] VVC規格符号化器は加算器120をさらに実装する。コンピューティングシステムの1つまたは複数のプロセッサは、予測ブロックと再構成された残差とを加算することによって加算演算を実行して、再構成されたブロックを出力するように構成される。
【0036】
[0062] VVC規格符号化器はループフィルタ122をさらに実装する。コンピューティングシステムの1つまたは複数のプロセッサは、デブロッキングフィルタ、サンプル適応オフセット(「SAO:sample adaptive offset」)フィルタ、および適応ループフィルタ(「ALF:adaptive loop filter」)などのループフィルタを、再構成されたブロックに適用して、フィルタリングされた再構成されたブロックを出力するように構成される。
【0037】
[0063] VVC規格符号化器はさらに、フィルタリングされた再構成されたブロックを復号済みピクチャバッファ(「DPB:decoded picture buffer」)200に出力するようにコンピューティングシステムの1つまたは複数のプロセッサを構成する。DPB200は、インター予測に関して上述したように、コンピューティングシステムの1つまたは複数のプロセッサによって、現在のピクチャ以外のピクチャを符号化する際の参照ピクチャとして使用される再構成されたピクチャを記憶する。
【0038】
[0064] VVC規格符号化器はエントロピー符号化器124をさらに実装する。コンピューティングシステムの1つまたは複数のプロセッサは、エントロピー符号化を実行するように構成され、コンテキスト依存2値算術コーデック(「CABAC」)に従って、量子化された残差係数を構成するシンボルは、バイナリ列(以下、「ビン」)へのマッピングによって符号化され、これは圧縮されたビットレートの出力ビットストリームで送信することができる。符号化された量子化された残差係数のシンボルは、残差係数の絶対値を含む(これらの絶対値を以降「残差係数レベル」と呼ぶ)。
【0039】
[0065] しかしながら、残差係数レベルは予測および符号化されるが、残差係数符号は、等確率(以下、「EP:equiprobable」)状態を示すビンを使用してシグナリングされる(値が0の係数は符号を有さないので、シグナリングされる必要がないことを理解されるべきである)。VVC規格符号化器は、計算上の課題(当該課題は、当業者には理解されると思われるが、本開示の例示的な実施形態を理解するためにここで繰り返す必要はない)のため、残差係数符号を予測するようにコンピューティングシステムの1つまたは複数のプロセッサを構成しない。これらの理由から、CABACは、残差係数符号の符号化をバイパスして、出力ビットストリームにおいて符号ごとに1ビットを追加して送信するようにコンピューティングシステムの1つまたは複数のプロセッサを構成する。
【0040】
[0066] したがって、エントロピー符号化器は、ブロックの残差係数レベルを符号化し、残差係数符号の符号化をバイパスし、残差係数符号を符号化されたブロックと共に記録し、符号化されたブロックのシンタックス構造内に符号化される、たとえば、符号化モード、イントラ予測モードまたはインター予測モード、および動き情報などの符号化パラメータセット(たとえば、ピクチャヘッダに含まれているピクチャパラメータセット(「PPS」)、ならびに複数のピクチャのシーケンスに含まれているシーケンスパラメータセット(「SPS」))を記録し、符号化されたブロックを出力するようにコンピューティングシステムの1つまたは複数のプロセッサを構成する。
【0041】
[0067] VVC規格符号化器は、エントロピー符号化器124から符号化されたブロックで構成される符号化されたピクチャを出力するようにコンピューティングシステムの1つまたは複数のプロセッサを構成する。符号化されたピクチャは送信バッファに出力され、最終的にVVC規格符号化器からの出力用のビットストリームにパックされる。
【0042】
[0068] 復号プロセス150では、VVC規格復号器は、ビットストリームから1つまたは複数の符号化されたピクチャを入力として受け取るようにコンピューティングシステムの1つまたは複数のプロセッサを構成する。
【0043】
[0069] VVC規格復号器は、エントロピー復号器152を実装する。コンピューティングシステムの1つまたは複数のプロセッサは、エントロピー復号を実行するように構成され、CABACに従って、シンボルからビンへのマッピングを逆にすることによってビンが復号され、それによってエントロピー符号化された量子化された残差係数が復元される。エントロピー復号器152は、量子化された残差係数を出力し、符号化がバイパスされた残差係数符号を出力し、PPSおよびSPSなどのシンタックス構造も出力する。
【0044】
[0070] VVC規格復号器は、逆量子化154および逆変換156をさらに実装する。コンピューティングシステムの1つまたは複数のプロセッサは、上述の量子化演算および変換演算の逆の行列算術演算によって、復号された量子化された残差係数に対して逆量子化演算および逆変換演算を実行するように構成される。逆量子化演算および逆変換演算により、再構成された残差が得られる。
【0045】
[0071] さらに、エントロピー符号化器124によってPPSおよびSPSなどのシンタックス構造に記録された(あるいは、帯域外送信によって受信された、または復号器内に符号化された)符号化パラメータセットと、符号化パラメータセットに含まれる符号化モードとに基づいて、VVC規格復号器は、再構成された残差にイントラ予測156(すなわち、空間予測)を適用するか、動き補償予測158(すなわち、時間予測)を適用するかを判定する。
【0046】
[0072] 符号化パラメータセットがイントラ予測を指定している場合、VVC規格復号器は、符号化パラメータセットで指定された予測情報を使用してイントラ予測158を実行するようにコンピューティングシステムの1つまたは複数のプロセッサを構成する。これにより、イントラ予測158は予測信号を生成する。
【0047】
[0073] 符号化パラメータセットがインター予測を指定している場合、VVC規格復号器は、DPB200からの参照ピクチャを使用して動き補償予測160を実行するようにコンピューティングシステムの1つまたは複数のプロセッサを構成する。これにより、動き補償予測160は予測信号を生成する。
【0048】
[0074] VVC規格復号器は加算器162をさらに実装する。加算器162は、再構成された残差および予測信号に対して加算演算を実行して、再構成されたブロックを出力するようにコンピューティングシステムの1つまたは複数のプロセッサを構成する。
【0049】
[0075] VVC規格復号器はループフィルタ164をさらに実装する。コンピューティングシステムの1つまたは複数のプロセッサは、たとえば、デブロッキングフィルタ、SAOフィルタ、ALFなどのループフィルタを、再構成されたブロックに適用して、フィルタリングされた再構成されたブロックを出力するように構成される。
【0050】
[0076] VVC規格復号器は、フィルタリングされた再構成されたブロックをDBP200に出力するようにコンピューティングシステムの1つまたは複数のプロセッサをさらに構成する。上述したように、DPB200は、動き補償予測に関して上述したように、コンピューティングシステムの1つまたは複数のプロセッサによって、現在のピクチャ以外のピクチャを符号化する際の参照ピクチャとして使用される、再構成されたピクチャを記憶する。
【0051】
[0077] VVC規格復号器は、再構成されたピクチャをDPBからコンピューティングシステムのユーザが閲覧可能なディスプレイに、たとえば、テレビのディスプレイ、パーソナルコンピューティングモニタ、スマートフォンのディスプレイ、タブレットのディスプレイなどに出力するようにコンピューティングシステムの1つまたは複数のプロセッサをさらに構成する。
【0052】
[0078] したがって、上述の符号化プロセス100および復号プロセス150に示すように、VVC規格符号化器およびVVC規格復号器はそれぞれ、VVC仕様に従う動き予測符号化を実装する。VVC規格符号化器およびVVC規格復号器はそれぞれ、VVC規格によって記述された動き補償予測に従ってDPBの以前の再構成されたピクチャに基づいて、再構成されたピクチャを生成するようにコンピューティングシステムの1つまたは複数のプロセッサを構成し、以前の再構成されたピクチャは、本明細書に記載の動き補償予測における参照ピクチャとして機能する。
【0053】
[0079] 上記で説明したように、符号化されたブロックがビットストリームで送信されるときに、伝送ビットレートのかなりの部分が残差係数符号の送信によって消費され、各符号は1ビットでシグナリングされ(これらのビットを以降「符号ビット」と呼ぶ)、VVC規格は、さらなる圧縮を実現するためにこれらの符号ビットをさらに圧縮するための技術を提供していない。VVC仕様(2021年10月の動画像専門家グループ(「MPEG」)の第136回会合で「拡張圧縮モデル3(ECM3)のアルゴリズム記述」として発表)の範囲を超える圧縮技術を開発するためのJVETの継続的な取り組みでは、残差係数符号(以下、簡略化のため「符号」)にも予測および符号化を施すことによって、この動作を置き換えることが提案されている(以降、「残差符号予測」技術または「符号予測」技術と呼び、さらなる詳細は後述する)。
【0054】
[0080] ECM3は、近傍のTBの境界線にまたがって頻繁に発生する符号間の高い相関(この相関は変換演算後に残っている)に基づく残差符号予測技術を提案している。ECM3提案は、他のブロックの近傍にあるTBの行および列の符号を予測するVVC規格符号化器およびVVC規格復号器を提供し、近傍のTBには冗長な情報が含まれるので、これにより個々のTBを符号化する際のビットが節約され得る。さらに、TB内では、そのサイズに関係なく、TBの最上端かつ最左端の4×4領域内の符号のみが予測され(その結果、VVC規格符号化器およびVVC規格復号器は、後述するように、近傍の再構成されたブロックを予測に使用し得る)、同じTBの他の符号は依然としてEPビンによってシグナリングされる。
【0055】
[0081] 本開示の例示的な実施形態を理解する目的で、ECM3の残差符号予測の提案について以下でさらに詳しく説明する。
【0056】
[0082]
図2は16×8ピクセルのサイズのTBの4×4領域を示しており、ECM3提案によれば、残差符号予測技術はこの領域内の符号のみを予測する。
【0057】
[0083] さらに、ECM3の残差符号予測によれば、各TBについて、最大数以下の符号が予測され得る。予測される符号の最大数が変数maxNumPredSignsで表されると仮定する。maxNumPredSignsの値は、SPSを通じて復号器に向けてシグナリングされる。maxNumPredSignsの許容値は0~8であり、両端の値を含む。maxNumPredSignsの値が0の場合、符号予測方法はそのシーケンスに対して無効化される。maxNumPredSignsが8に等しい場合、TBに対して最大で8つの符号が予測される。左上の4×4領域の符号の数が最大許容値(maxNumPredSigns)よりも大きい場合、後述するように、ラスタスキャン順序で決定された最初のmaxNumPredSigns個の符号のみが予測される。
【0058】
[0084]
図3は、ECM3提案による、予測される符号を決定するためのTBの最上端かつ最左端の4×4領域のスキャン順序を示す。TBの4×4領域はまず、残差係数をラスタスキャン順序でスキャンすることによって1次元配列に変換され、この配列内で、(ラスタスキャン順序で)最初のn個の符号が予測される。
図3が示すように、ラスタスキャン順序で最初の8個(maxNumPredSigns==8と仮定)の符号が予測され、続いて符号化され、残りの後続の符号はCABACバイパスモードでEPビンとして伝達される。この方法では、一部の符号はシグナリングされるのではなく、予測および符号化されるので、送信時の符号ビットが節約される。値が0の係数には符号がないので、予測もシグナリングも必要ないことを理解されるべきである。
【0059】
[0085] 各符号は正または負のいずれかであるので、n個の符号が予測される場合、2n個の可能な符号値の組み合わせが存在する。したがって、ECM3に従って実装されるVVC規格符号化器およびVVC規格復号器はそれぞれ、2n回の単純化された残差境界再構成を実行することによって、予測された符号を再構成することができる(したがって、nを小さい値に抑えることで、高い計算複雑性が生じなくなる)。境界残差は、近傍の再構成されたブロックと、復号プロセスにおいて予測処理を受けている現在のブロックとから予測され、ブロックはラスタスキャン順序で復号および再構成されるので、現在のブロックが復号される前に、上の近傍のブロックと左の近傍のブロックとが既に以前に復号および再構成されており、それらの近傍のブロックの再構成されたピクセルはVVC規格符号化器およびVVC規格復号器の両方で利用可能である。
【0060】
[0086] 特定の境界再構成について、ブロックの最左端かつ最上端の残差値のみが、逆量子化およびそれに続く逆変換から再作成される。符号値の各組み合わせの残差境界再構成は仮説と呼ばれる。nが予測される符号の数を表す場合、仮説の数は2nであり、境界残差再構成は2n回実行される。
【0061】
[0087]
図4Aおよび
図4Bは、ECM3提案による8×4のTBの残差境界予測の例を示す。境界の最上行の残差は、上の最初の行(
図4Aに示す)または上の最初の2行(
図4Bに示す)の再構成された近傍から予測され、左列の残差は、左の最初の列(
図4Aに示す)または左の最初の2列の再構成された近傍から予測される。ここで、(0,0)は符号が予測されるTBの左上の位置を示す。
図4Aによれば、上の行および左の列の境界残差は次のように予測される。
ResPred
x,0=R
x,-1-P
x,0
ResPred
0,y=R
-1,y-P
0,y
【0062】
[0088]
図4Bによれば、上の行および左の列の境界残差は次のように予測される。
ResPred
x,0=-R
x,-2+2R
x,-1-P
x,0
ResPred
0,y=-R
-2,y+2R
-1,y-P
0,y
【0063】
[0089] ここで、ResPred
x,yは、TBの位置(x,y)の予測された境界残差を表す(
図4Aおよび
図4Bに濃い影で示す)。R
x,yは位置(x,y)の近傍のブロックの再構成されたピクセルを表し、P
x,yは位置(x,y)における現在のブロックの予測信号を表す。
【0064】
[0090]
図5は、
図4Bに示すECM3提案による上記の式から導出された予測された境界残差を示す。TBの最上行では、垂直方向にそれぞれ1ピクセルおよび2ピクセルだけオフセットされた2つの再構成された近傍のピクセルに基づいて、予測された境界残差が決定される。TBの最左行では、水平方向にそれぞれ1ピクセルおよび2ピクセルだけオフセットされた2つの再構成された近傍のピクセルに基づいて、予測された境界残差が決定される。
【0065】
[0091] 2n個の仮説を決定し、予測された境界残差を決定すると、符号化器および復号器は、予測された境界残差に対して各仮説をテストして、どの仮説がコスト関数を最小化するかを決定し得る。ここでのコスト関数は、近傍のブロック間の不連続性が高いほどコストが高くなるように構成される。コスト関数は、次のように、予測された残差と、仮説の再構成された残差との差分絶対値和(「SAD:sum of absolute differences」)として定義される。
【0066】
【0067】
[0092] ここで、ResPredx,yは上記で定義したとおりであり、符号が予測されるTBの左上の位置を表す(0,0)にも従い、ResRecx,yは、位置(x,y)における2n個の仮説のうちのある仮説の各再構成された残差の候補であり、wおよびhはTBの幅および高さである。
【0068】
[0093] 予測された各符号を導出するために、符号化器および復号器は各仮説(すなわち、候補)について上記のコスト関数を評価し、最小のコストをもたらす仮説が符号の予測子として選択される。
【0069】
[0094] 最後に、ECM3の残差符号予測によれば、予測された符号はビットストリーム内でEPシグナリングされなくなり、予測が正しかったか否かを示す「残差」(関連するCABACコンテキストを使用してシグナリングされる)に置き換えられる。本開示では、変数errSignPredを使用して、符号の「残差」を定義する。errSignPredの値が0に等しいことは、予測された符号が実際の符号と同じであることを示し、errSignPredの値が1に等しいことは、予測された符号が実際の符号と異なることを示す。
【0070】
[0095] さらに、VVC規格符号化器およびVVC規格復号器は、予測されるn個の符号のうちの各符号を1つずつ予測し、その後の予測を行う際に、以前の予測のerrSignPred値を参照することを理解されるべきである。ECM3によれば、予測された符号は、ラスタスキャン順序でのブロックの最初のn個の符号である(後で
図21を参照して詳しく説明する)。
【0071】
[0096] 最初の予測された符号について、VVC規格符号化器およびVVC規格復号器は、以前のerrSignPred値を有さない。VVC規格符号化器およびVVC規格復号器は、2n個の仮説のそれぞれについて上記のコスト関数を評価し、それらの中で最小のコストをもたらす仮説を選択し、その仮説の最初の符号を現在のブロックの最初の符号の予測子として指定する。次いで、最初の符号の予測が正しいか否かを示すための、最初の符号のerrSignPredフラグがシグナリングされる。
【0072】
[0097] 第2の予測された符号について、VVC規格符号化器およびVVC規格復号器は、最初の予測された符号に対して以前に決定されたerrSignPred値を知っているため、最初の符号の実際の値を導出することができるので、残りのn-1個の符号について評価すべき仮説は2n-1個だけである。VVC規格符号化器およびVVC規格復号器は、2n-1個の仮説のそれぞれについて上記のコスト関数を評価し、その中で最小のコストをもたらす仮説を選択し、その仮説の第2の符号(すなわち、残りのn-1個の符号のうちの最初の符号)を現在のブロックの第2の符号の予測子として指定する。次いで、第2の符号の予測が正しいか否かを示すための、第2の符号のerrSignPredフラグがシグナリングされる。
【0073】
[0098] 第3の予測された符号について、VVC規格符号化器およびVVC規格復号器は、第2の予測された符号に対して以前に決定されたerrSignPred値を知っているため、最初の符号の実際の値と共に、第2の符号の実際の値を導出することができるので、残りのn-2個の符号について評価すべき仮説は2n-2個だけである。VVC規格符号化器およびVVC規格復号器は、2n-2個の仮説のそれぞれについて上記のコスト関数を評価し、その中で最小のコストをもたらす仮説を選択し、その仮説の第3の符号(すなわち、残りのn-2個の符号のうちの最初の符号)を現在のブロックの第3の符号の予測子として指定する。次いで、第3の符号の予測が正しいか否かを示すための、第3の符号のerrSignPredフラグがシグナリングされる。
【0074】
[0099] VVC規格符号化器およびVVC規格復号器は、最後の予測された符号まで、後続の予測された符号ごとに上記の工程を繰り返す。最後の予測された符号について、符号化器および復号器は、他の全ての予測された符号に対して以前に決定された全てのerrSignPred値を知っているため、他の全ての符号の実際の値を導出することができるので、残りの1つの符号について評価すべき仮説は2つだけである。符号化器および復号器は、両方の仮説について上記のコスト関数を評価し、その中で最小のコストをもたらす仮説を選択し、その仮説の最後の符号(すなわち、残りの符号)を現在のブロックの最後の符号の予測子として指定する。次いで、最後の符号の予測が正しいか否かを示すための、最後の符号のerrSignPredフラグがシグナリングされる。
【0075】
[00100] しかしながら、上述したように、ECM3の残差符号予測には依然として欠点がある。境界残差は上の近傍の再構成されたピクセルまたは左の近傍の再構成されたピクセルから予測されるので、ブロックの画像データに斜め方向の目に見える境界線が含まれている場合、予測は正確でない場合がある。さらに、TBの左上の4×4領域のみに基づいて残差符号予測を実行することには依然として制限があり、より大きなビットレート向上を実現するには、より多くの残差係数符号を予測することが望ましい。さらに、ラスタスキャン順序で最初のn個の符号のみを予測することにも制限があり、計算の複雑さを過度に増加させることなく、より多くの符号を予測することが望ましい。
【0076】
[00101] さらに、上記のコスト関数は、全ての場合において各仮説の実際のコストを正確に測定するわけではなく、たとえば、近傍のTBの境界線にエッジが一致するオブジェクトが画像に含まれている場合、近傍のTBの境界線にまたがって残差係数符号間に高い相関があるという仮定が成り立たなくなり、近傍のTBに冗長な情報が含まれているという仮定が成り立たなくなる。
【0077】
[00102] そこで、本開示の例示的な実施形態は、いくつかの点でECM3を超える改善をもたらす残差符号予測方法を提供する。
【0078】
[00103] 1つまたは複数の態様において、本開示の例示的な実施形態は、勾配ベースの境界残差符号予測プロセスを利用する残差符号予測方法を実装するVVC規格符号化器およびVVC規格復号器を提供する。
【0079】
[00104] 1つまたは複数の態様において、本開示の例示的な実施形態は、マルチモーダル残差境界予測を利用する残差符号予測方法を実装し、シグナリングによる;予測されるテンプレートの計算による;およびシグナリングの導出による、残差境界予測をさらに構成するVVC規格符号化器およびVVC規格復号器を提供する。
【0080】
[00105] 1つまたは複数の態様において、本開示の例示的な実施形態は、マルチモーダル残差境界予測を利用して2段階残差符号予測を実行する残差符号予測方法を実装するVVC規格符号化器およびVVC規格復号器を提供する。
【0081】
[00106] 1つまたは複数の態様において、本開示の例示的な実施形態は、TB全体またはTBの拡張された領域にわたって符号予測を利用する残差符号予測方法を実装するVVC規格符号化器およびVVC規格復号器を提供する。
【0082】
[00107] 1つまたは複数の態様において、本開示の例示的な実施形態は、拡張された最大数の予測された符号を利用する残差符号予測方法を実装するVVC規格符号化器およびVVC規格復号器を提供する。
【0083】
[00108] 1つまたは複数の態様において、本開示の例示的な実施形態は、残差係数のソート順序を利用する残差符号予測方法を実装するVVC規格符号化器およびVVC規格復号器を提供する。
【0084】
[00109] 1つまたは複数の態様において、本開示の例示的な実施形態は、非ラスタスキャン順序を利用する残差符号予測方法を実装するVVC規格符号化器およびVVC規格復号器を提供する。
【0085】
[00110] 1つまたは複数の態様において、本開示の例示的な実施形態は、拡張された境界に対して境界予測を利用する残差符号予測方法を実装するVVC規格符号化器およびVVC規格復号器を提供する。
【0086】
[00111] 1つまたは複数の態様において、本開示の例示的な実施形態は、拡張された範囲の残差シグナリングを利用する残差符号予測方法を実装するVVC規格符号化器およびVVC規格復号器を提供する。
【0087】
[00112] 続いて、本開示の例示的な実施形態の上記の態様のそれぞれをさらに詳細に説明する。
【0088】
[00113]
図6Aおよび
図6Bは、本開示の例示的な実施形態による残差符号予測方法における勾配ベースの境界残差符号予測プロセスの利用を示す。
【0089】
[00114] ECM3提案によれば、垂直方向にオフセットされたまたは水平方向にオフセットされた再構成された近傍のサンプルに基づいて、予測された境界残差が決定される。しかしながら、符号化されたビデオビットストリームでは、近傍のTBの境界線にまたがる残差係数符号間の相関が、垂直方向および水平方向だけでなく、斜め方向にも発生し得(すなわち、近傍の分割されたブロックにまたがる目に見える斜めの境界線を有するオブジェクトが画像に含まれている場合)、ECM3の残差符号予測では、これらの斜めの相関が見落とされる傾向がある。
【0090】
[00115] したがって、
図6Aおよび
図6Bが示すように、本開示の例示的な実施形態によれば、VVC規格符号化器およびVVC規格復号器はそれぞれ、予測されるピクセルの最も近い8つの再構成された近傍のサンプルから境界残差を予測するようにコンピューティングシステムの1つまたは複数のプロセッサを構成する。予測されるピクセルがTBの最上行にある場合と、TBの最左列にある場合との両方を示しており、予測されるピクセルにXとラベル付けし、その最近傍にC~EおよびJ~Nとラベル付けしている。
【0091】
[00116] 予測された残差ResPredは、次のように3つの近傍C、D、およびEの加重平均から予測(P)を減算することによって計算される。
【0092】
【0093】
[00117] W0、W1、およびW2は重み係数であり、3つの方向の勾配値の逆数として計算される。
【0094】
【0095】
【0096】
[00118] 8つの最近傍の分布を考慮すると、残差係数符号間の相関の3つの一般的なパターン、すなわち、斜めに左から右へ、斜めに右から左へ、および垂直(最上行)または水平(最左列)のいずれかが観察され得ることを理解されるべきである。
図7は、最上行の予測されるピクセルの8つの最近傍間でこれらのパターンがどのように発生し得るかを示している。これらのパターンは、最左列の予測されるピクセルについても同様に回転して発生する。
【0097】
[00119] 3つの発生方向の勾配は次のように計算される。
Grad0=(J-C)2+(K-D)2+(L-E)2
Grad1=(K-C)2+(L-D)2+(M-E)2
Grad2=(L-C)2+(M-D)2+(N-E)2
【0098】
[00120] Grad0は斜め右方向に発生するパターンの勾配を表し、Grad1は垂直方向に発生するパターンの勾配を表し、Grad2は斜め左方向に発生するパターンの勾配を表す。Grad0の値が低い場合、予測されるピクセルXの値は近傍Cにより類似しており、Grad1の値が低い場合、予測されるピクセルXの値は近傍Dにより類似しており、Grad2の値が低い場合、予測されるピクセルXの値は近傍Eにより類似していると想定される。
【0099】
[00121] TBの最左列に沿った予測されるピクセルにおける勾配を計算するための工程は、上記の説明から同様に導出され得る。
【0100】
[00122] ECM3提案によれば、
図4A、
図4B、および
図5を参照して上述した残差境界予測は、全てのTBに対して一様に実行され、この方法では、特にブロックの画像データに顕著なテクスチャおよび境界線が含まれる場合、あらゆる種類の画像内容に対して最適な圧縮パフォーマンスが得られるわけではない。したがって、本開示の例示的な実施形態は、様々な画像内容に対する残差境界予測方法の精度を向上させるために、マルチモーダル残差境界予測を提供する。
【0101】
[00123] 本開示の例示的な実施形態によれば、VVC規格符号化器は、複数の残差符号予測モードの中の各モードをチェックし、モードを選択し、選択されたモードをVVC規格復号器に向けてシグナリングするようにコンピューティングデバイスの1つまたは複数のプロセッサを構成する。本開示の例示的な実施形態は、特定のモードおよび特定の数のモードに限定されるものとして解釈されるべきではない。例として、9つの符号予測モードについて以下に説明し、ここで、上述したECM3の残差境界予測方法を「デフォルトモード」と表す。
【0102】
[00124] 本開示の例示的な実施形態による他の符号予測モードは、「斜め右モード」、「斜め左モード」、「第1の混合モード」(最上行の斜め右モードと最左列の斜め左モードとの両方を含む)、「第2の混合モード」(最上行の斜め左モードと最左列の斜め右モードとの両方を含む)、「第3の混合モード」(最上行のデフォルトモードと最左列の斜め左モードとの両方を含む)、「第4の混合モード」(最上行のデフォルトモードと最左列の斜め右モードとの両方を含む)、「第5の混合モード」(最上行の斜め右モードと最左列のデフォルトモードとの両方を含む)、および「第6の混合モード」(最上行の斜め左モードと最左列のデフォルトモードとの両方を含む)として説明する。
【0103】
[00125]
図8A、
図8B、
図8C、
図8D、
図8E、および
図8Fは、本開示の斜め右モードによる現在のブロック800(ここでは、TB)の例示的な残差境界予測を示す。
図8A、
図8B、および
図8Cが示すように、本開示の例示的な実施形態によるVVC規格符号化器は、2つの近傍の行および2つの近傍の列ではなく斜め右モードを選択するようにコンピューティングデバイスの1つまたは複数のプロセッサを構成し、境界の最上行802の残差および最左列804の残差は、上の最初の行806および左の最初の列808の再構成された近傍のみから予測される。ここで、(0,0)は符号が予測されるTBの左上の位置を示す。最上行802および最左列804の両方の各残差は、その左上のそれぞれの異なる再構成されたサンプルから、たとえば、例として、次のように予測される。
ResPred
x,0=R
x-1,-1-P
x,0
ResPred
0,y=R
-1,y-1-P
0,y
【0104】
[00126] しかしながら、
図8D、
図8E、および
図8Fが示すように、境界の最上行802の残差および最左列804の残差は、上の最初の2行806および810ならびに左の最初の2列808および812の再構成された近傍から予測される。ここで、(0,0)は符号が予測されるTBの左上の位置を示す。最上行802および最左列804の両方の各残差は、その左上のそれぞれの2つの異なる再構成されたサンプルピクセルから、たとえば、例として、次のように予測される。
ResPred
x,0=2R
x-1,-1-R
x-2,-2-P
x,0
ResPred
0,y=2R
-1,y-1-R
-2,y-2-P
0,y
【0105】
[00127] ここでは(上述したように、参照を容易にするためにここで繰り返す)、ResPred
x,yは、TBの位置(x,y)の予測された境界残差を表す(
図8A、
図8B、
図8C、
図8D、
図8E、および
図8Fに濃い影で示す)。R
x,yは位置(x,y)の近傍のブロックの再構成されたピクセルを表し、P
x,yは位置(x,y)における現在のブロックの予測信号を表す。
【0106】
[00128]
図9A、
図9B、
図9C、
図9D、
図9E、および
図9Fは、本開示の斜め左モードによる現在のブロック800(ここでは、TB)の残差境界予測の例を示す。
図8A、
図8B、および
図8Cと同様に、
図9A、
図9B、および
図9Cでは、境界の最上行802の残差および最左列804の残差は、上の最初の行806および左の最初の列808の再構成された近傍から予測される。ここで、(0,0)は符号が予測されるTBの左上の位置を示す。最上行802の各残差は、その右上のそれぞれの異なる再構成されたサンプルから予測され、最左列804の各残差は、その左下のそれぞれの異なる再構成されたサンプルから予測され、たとえば、例として、次のように行われる。
ResPred
x,0=R
x+1,-1-P
x,0
ResPred
0,y=R
-1,y+1-P
0,y
【0107】
[00129] しかしながら、
図8D、
図8E、および
図8Fと同様に、
図9D、
図9E、および
図9Fでは、境界の最上行802の残差および最左列804の残差は、上の最初の2行806および810ならびに左の最初の2列808および812の再構成された近傍から予測される。ここで、(0,0)は符号が予測されるTBの左上の位置を示す。最上行802の各残差は、その右上のそれぞれの2つの異なる再構成されたサンプルピクセルから予測され、最左列804の各残差は、その左下のそれぞれの2つの異なる再構成されたサンプルピクセルから予測され、たとえば、例として、次のように行われる。
ResPred
x,0=2R
x+1,-1-R
x+2,-2-P
x,0
ResPred
0,y=2R
-1,y+1-R
-2,y+2-P
0,y
【0108】
[00130] ここでは(上述したように、参照を容易にするためにここで繰り返す)、ResPred
x,yは、TBの位置(x,y)の予測された境界残差を表す(
図9A、
図9B、
図9C、
図9D、
図9E、および
図9Fに濃い影で示す)。R
x,yは位置(x,y)の近傍のブロックの再構成されたピクセルを表し、P
x,yは位置(x,y)における現在のブロックの予測信号を表す。
【0109】
[00131]
図10A、
図10B、
図10C、
図10D、
図10E、および
図10Fは、本開示の第1の混合モードによる現在のブロック800(ここでは、TB)の残差境界予測の例を示す。
図8A、
図8B、
図8C、
図9A、
図9B、および
図9Cと同様に、
図10A、
図10B、および
図10Cでは、境界の最上行802の残差および最左列804の残差は、上の最初の行806および左の最初の列808の再構成された近傍から予測される。ここで、(0,0)は符号が予測されるTBの左上の位置を示す。最上行802の各残差は、その左上のそれぞれの異なる再構成されたサンプルから予測され、最左列804の各残差は、その左下のそれぞれの異なる再構成されたサンプルから予測され、たとえば、例として、次のように行われる。
ResPred
x,0=R
x-1,-1-P
x,0
ResPred
0,y=R
-1,y+1-P
0,y
【0110】
[00132] しかしながら、
図8D、
図8E、
図8F、
図9D、
図9E、および
図9Fと同様に、
図10D、
図10E、および
図10Fでは、境界の最上行802の残差および最左列804の残差は、上の最初の2行806および810ならびに左の最初の2列808および812の再構成された近傍から予測される。ここで、(0,0)は符号が予測されるTBの左上の位置を示す。最上行802の各残差は、その左上のそれぞれの2つの異なる再構成されたサンプルピクセルから予測され、最左列804の各残差は、その左下のそれぞれの2つの異なる再構成されたサンプルピクセルから予測され、次のように行われる。
ResPred
x,0=2R
x-1,-1-R
x-2,-2-P
x,0
ResPred
0,y=2R
-1,y+1-R
-2,y+2-P
0,y
【0111】
[00133] ここでは(上述したように、参照を容易にするためにここで繰り返す)、ResPred
x,yは、TBの位置(x,y)の予測された境界残差を表す(
図10A、
図10B、
図10C、
図10D、
図10E、および
図10Fに濃い影で示す)。R
x,yは位置(x,y)の近傍のブロックの再構成されたピクセルを表し、P
x,yは位置(x,y)における現在のブロックの予測信号を表す。
【0112】
[00134]
図11A、
図11B、
図11C、
図11D、
図11E、および
図11Fは、本開示の第2の混合モードによる現在のブロック800(ここでは、TB)の残差境界予測の例を示す。
図8A、
図8B、
図8C、
図9A、
図9B、
図9C、
図10A、
図10B、および
図10Cと同様に、
図11A、
図11B、および
図11Cでは、境界の最上行802の残差および最左列804の残差は、上の最初の行806および左の最初の列808の再構成された近傍から予測される。ここで、(0,0)は符号が予測されるTBの左上の位置を示す。最上行802の各残差は、その右上のそれぞれの異なる再構成されたサンプルから予測され、最左列804の各残差は、その左上のそれぞれの異なる再構成されたサンプルから予測され、たとえば、例として、次のように行われる。
ResPred
x,0=R
x+1,-1-P
x,0
ResPred
0,y=R
-1,y-1-P
0,y
【0113】
[00135] しかしながら、
図8D、
図8E、
図8F、
図9D、
図9E、
図9F、
図10D、
図10E、および
図10Fと同様に、
図11D、
図11E、および
図11Fでは、境界の最上行802の残差および最左列804の残差は、上の最初の2行806および810ならびに左の最初の2列808および812の再構成された近傍から予測される。ここで、(0,0)は符号が予測されるTBの左上の位置を示す。最上行802の各残差は、その右上のそれぞれの2つの異なる再構成されたサンプルピクセルから予測され、最左列804の各残差は、その左上のそれぞれの2つの異なる再構成されたサンプルピクセルから予測され、たとえば、例として、次のように行われる。
ResPred
x,0=2R
x+1,-1-2R
x+2,-2-P
x,0
ResPred
0,y=2R
-1,y-1-R
-2,y-2-P
0,y
【0114】
[00136] ここでは(上述したように、参照を容易にするためにここで繰り返す)、ResPred
x,yは、TBの位置(x,y)の予測された境界残差を表す(
図11A、
図11B、
図11C、
図11D、
図11E、および
図11Fに濃い影で示す)。R
x,yは位置(x,y)の近傍のブロックの再構成されたピクセルを表し、P
x,yは位置(x,y)における現在のブロックの予測信号を表す。
【0115】
[00137]
図12A、
図12B、
図12C、
図12D、
図12E、および
図12Fは、本開示の第3の混合モードによる現在のブロック800(ここでは、TB)の残差境界予測の例を示す。
図8A、
図8B、
図8C、
図9A、
図9B、
図9C、
図10A、
図10B、
図10C、
図11A、
図11B、および
図11Cと同様に、
図12A、
図12B、および
図12Cでは、境界の最上行802の残差および最左列804の残差は、上の最初の行806および左の最初の列808の再構成された近傍から予測される。ここで、(0,0)は符号が予測されるTBの左上の位置を示す。最上行802の各残差は、上のそれぞれの異なる再構成されたサンプルピクセルから予測され、最左列804の各残差は、その左下のそれぞれの異なる再構成されたサンプルピクセルから予測され、たとえば、例として、次のように行われる。
ResPred
x,0=R
x,-1-P
x,0
ResPred
0,y=R
-1,y+1-P
0,y
【0116】
[00138] しかしながら、
図8D、
図8E、
図8F、
図9D、
図9E、
図9F、
図10D、
図10E、
図10F、
図11D、
図11E、および
図11Fと同様に、
図12D、
図12E、および
図12Fでは、境界の最上行802の残差および最左列804の残差は、上の最初の2行806および810ならびに左の最初の2列808および812の再構成された近傍から予測される。ここで、(0,0)は符号が予測されるTBの左上の位置を示す。最上行802の各残差は、上のそれぞれの2つの異なる再構成されたサンプルピクセルから予測され、最左列804の各残差は、その左下のそれぞれの2つの異なる再構成されたサンプルピクセルから予測され、たとえば、例として、次のように行われる。
ResPred
x,0=2R
x,-1-R
x,-2-P
x,0
ResPred
0,y=2R
-1,y+1-R
-2,y+2-P
0,y
【0117】
[00139] ここでは(上述したように、参照を容易にするためにここで繰り返す)、ResPred
x,yは、TBの(x,y)位置の予測された境界残差を表す(
図12A、
図12B、
図12C、
図12D、
図12E、および
図12Fに濃い影で示す)。R
x,yは位置(x,y)の近傍のブロックの再構成されたピクセルを表し、P
x,yは(x,y)位置における現在のブロックの予測信号を表す。
【0118】
【0119】
[00141] しかしながら、
図8D、
図8E、
図8F、
図9D、
図9E、
図9F、
図10D、
図10E、
図10F、
図11D、
図11E、
図11F、
図12D、
図12E、および
図12Fと同様に、
図13D、
図13E、および
図13Fでは、境界の最上行802の残差および最左列804の残差は、上の最初の2行806および810ならびに左の最初の2列808および812の再構成された近傍から予測される。ここで、(0,0)は符号が予測されるTBの左上の位置を示す。最上行802の各残差は、上のそれぞれの2つの異なる再構成されたサンプルピクセルから予測され、最左列804の各残差は、その左上のそれぞれの2つの異なる再構成されたサンプルピクセルから予測され、たとえば、例として、次のように行われる。
ResPred
x,0=2R
x,-1-2R
x,-2-P
x,0
ResPred
0,y=2R
-1,y-1-R
-2,y-2-P
0,y
【0120】
[00142] ここでは(上述したように、参照を容易にするためにここで繰り返す)、ResPred
x,yは、TBの(x,y)位置の予測された境界残差を表す(
図13A、
図13B、
図13C、
図13D、
図13E、および
図13Fに濃い影で示す)。R
x,yは位置(x,y)の近傍のブロックの再構成されたピクセルを表し、P
x,yは(x,y)位置における現在のブロックの予測信号を表す。
【0121】
【0122】
[00144] しかしながら、
図8D、
図8E、
図8F、
図9D、
図9E、
図9F、
図10D、
図10E、
図10F、
図11D、
図11E、
図11F、
図12D、
図12E、
図12F、
図13D、
図13E、および
図13Fと同様に、
図14D、
図14E、および
図14Fでは、境界の最上行802の残差および最左列804の残差は、上の最初の2行806および810ならびに左の最初の2列808および812の再構成された近傍から予測される。ここで、(0,0)は符号が予測されるTBの左上の位置を示す。最上行802の各残差は、その左上のそれぞれの2つの異なる再構成されたサンプルピクセルから予測され、最左列804の各残差は、その左のそれぞれの2つの異なる再構成されたサンプルピクセルから予測され、たとえば、例として、次のように行われる。
ResPred
x,0=2R
x-1,-1-R
x-2,-2-P
x,0
ResPred
0,y=2R
-1,y-R
-2,y-P
0,y
【0123】
[00145] ここでは(上述したように、参照を容易にするためにここで繰り返す)、ResPred
x,yは、TBの(x,y)位置の予測された境界残差を表す(
図14A、
図14B、
図14C、
図14D、
図14E、および
図14Fに濃い影で示す)。R
x,yは位置(x,y)の近傍のブロックの再構成されたピクセルを表し、P
x,yは(x,y)位置における現在のブロックの予測信号を表す。
【0124】
【0125】
【0126】
[00148] ここでは(上述したように、参照を容易にするためにここで繰り返す)、ResPred
x,yは、TBの(x,y)位置の予測された境界残差を表す(
図15A、
図15B、
図15C、
図15D、
図15E、および
図15Fに濃い影で示す)。R
x,yは位置(x,y)の近傍のブロックの再構成されたピクセルを表し、P
x,yは(x,y)位置における現在のブロックの予測信号を表す。
【0127】
[00149] 上記で説明した9つの符号予測モードを以下の表1にまとめる。
【0128】
【0129】
[00150] VVC規格符号化器およびVVC規格復号器が複数の境界予測モード(たとえば、限定はしないが、表1に示す9つの予測モード)を実装する例示的な実施形態によれば、VVC規格符号化器は、最終的な符号化のためにどの予測モードが選択されるかをシグナリングする必要がある。VVC規格はマルチモーダル残差境界予測を含まないので、本開示の例示的な実施形態は、符号化されたブロックのシンタックス構造での境界予測モードのシグナリングを実装するVVC規格符号化器と、符号化されたブロックのシンタックス構造からの境界予測モードのパースを実装するVVC規格復号器とをさらに提供する。
【0130】
[00151] コンピューティングシステムの1つまたは複数のプロセッサは、TBレベルのシンタックス構造、および/またはCUレベルのシンタックス構造、および/またはCTUレベルのシンタックス構造、および/またはスライスレベルのシンタックス構造、および/またはピクチャレベルのシンタックス構造、ならびに/あるいはシーケンスレベルのシンタックス構造で境界予測モードをシグナリングするように構成することができる。境界予測モードのシグナリングがTBレベルのシンタックス構造である場合、各TBについて、符号化器はレート歪みコストを最小化することにより境界予測モードを選択して、復号器に向けてシグナリングする。
【0131】
[00152] 例として、本開示の例示的な実施形態は、VVC規格によるブロックセマンティクスに2つのシンタックス要素を導入する。各TBについて、VVC規格符号化器は、そのTBの残差符号予測にデフォルトモードが適用されるか否かを示すための第1のフラグ(本明細書での参照のために、default_mode_flagと呼ぶ)をTBのシンタックス構造でシグナリングするようにコンピューティングシステムの1つまたは複数のプロセッサを構成する。default_mode_flagの値が1に等しい場合、VVC規格符号化器は最終的な符号化にデフォルトモードを適用する。
【0132】
[00153] default_mode_flagの値が0に等しい場合、VVC規格符号化器は、VVC規格符号化器がTBの残差符号予測にどの非デフォルト境界予測モードを適用するかを示すための3ビット(以下の表2に従う)を使用する第2のフラグ(本明細書での参照のために、borderModeIdcと呼ぶ)をTBのシンタックス構造でシグナリングするようにコンピューティングシステムの1つまたは複数のプロセッサを構成する。値borderModeIdcは、そのTBに使用される境界予測モードを示す。borderModeIdc値の一例を以下の表2に示す。
【0133】
【0134】
[00154] 例として、VVC規格符号化器はさらに、次の疑似コードに従って境界予測モードのシグナリングを実装することができる。
各変換ブロックについて
default_mode_flagをシグナリングする
default_mode_flag==0の場合
borderModeIdcをシグナリングする
【0135】
[00155] しかしながら、ブロックシンタックス構造での境界予測モードのシグナリングを実装するVVC規格符号化器は、符号化された各ピクチャにシグナリングビットを追加するので、ビットストリーム送信に追加のオーバーヘッドが導入され、圧縮効率が影響を受け得る。シグナリングオーバーヘッドを削減するために、本開示の例示的な実施形態による上記のマルチモーダル残差境界予測は、テンプレートベースの境界モード導出をさらに提供し得る。
【0136】
[00156] 本開示の例示的な実施形態によれば、VVC規格符号化器およびVVC規格復号器はそれぞれ、再構成された近傍のブロックのサンプルを複数のテンプレートと比較して、複数のテンプレートのうちのいずれかが、実際の再構成された近傍のブロックに最も適合するかを評価することによって、シグナリングなしのテンプレートベースの境界予測モードの導出を実装する。近傍のブロックは、符号化順序に従って、現在のブロックの符号化前および復号前に再構成されるので、現在のブロックの符号化プロセス中および復号プロセス中に符号化器および復号器によってアクセス可能である。
【0137】
[00157]
図16は、テンプレートと比較される再構成された近傍のブロックのサンプルの一例を示す(白色で強調表示した上方の近傍ブロック境界のサンプルと、別途白色で強調表示した左の近傍ブロックのサンプルとを含む)。上の最初の3つの近傍の再構成されたピクセルの行と、左の最初の3つの近傍の再構成されたピクセルの列を使用して、各境界予測モードのコストを計算する。表1および表2を参照して上述した各境界予測モードについて、VVC規格符号化器およびVVC規格復号器は、それぞれの境界予測モードを現在のブロックの対応するサンプルに逆に適用することによってモードテンプレートを生成するようにコンピューティングシステムの1つまたは複数のプロセッサを構成する。
【0138】
[00158] 換言すれば、モードテンプレートは、各境界予測モードについて、その境界予測モードが現在のブロックの対応するサンプルに適合する場合の、再構成された近傍のブロックのサンプルの理想的な期待値を記述する。
【0139】
[00159] 各境界予測モードの適合性は、モードテンプレートと、再構成された近傍のブロックの対応するサンプルとのコスト関数を計算することによって評価される。例として、モードテンプレートと、再構成された近傍のブロックの対応するサンプルとの間で、それぞれの境界予測モードのコストとして、SADが次のように計算される。
【0140】
【0141】
[00160] あるいは、変換差分絶対値和(「SATD:sum of absolute transform differences」)などの他のコスト関数もSADの代わりに使用することができる。
【0142】
[00161] ここで、R
x,yは位置(x,y)の近傍のブロックの再構成されたピクセルを表す。(0,0)は、現在のブロックの左上のサンプルの位置を表し、
図16に矢印で示している。PredTemplate
x,yは、それぞれの各境界予測モードに基づいて位置(x,y)で生成されたモードテンプレート値を表す。それぞれの各境界予測モードのモードテンプレートの計算を以下の表3にまとめる。
【0143】
【0144】
[00162] 各境界予測モードのコスト関数を計算した後、最適なコスト関数出力を有する境界予測モードが最も適合するものとして決定され、現在のブロックに選択される。
【0145】
[00163] あるいは、本開示の例示的な実施形態は、残差符号予測にデフォルトモードが適用されるか否かを示すための第1のフラグ(たとえば、上述のdefault_mode_flag)をシンタックス構造でシグナリングすることなく、マルチモーダル残差境界予測を利用する残差符号予測方法を実装するVVC規格符号化器およびVVC規格復号器を提供する。このようにして、ビットストリーム送信で1ビットが節約され、シグナリングのオーバーヘッドがさらに削減される。
【0146】
[00164] 明示的なシグナリングの代わりに、第1のフラグは、変換係数レベルの総和のパリティビットから導出される。例として、VVC規格符号化器およびVVC規格復号器は、次の疑似コードに従って境界予測モードの暗黙的なシグナリングを実装することができる。
各TBについて
変換係数レベルの絶対値の総和を計算する
総和が偶数の場合
default_mode_flag=1を設定する
そうでない場合、
default_mode_flag=0を設定する
【0147】
[00165] この異なる方法によって暗黙的にシグナリングされる第1のフラグを決定することによって、第1のフラグおよび第2のフラグの両方がシグナリングされる上述のVVC規格復号器と実質的に同様にVVC規格復号器を実装できることが理解されるべきである。
【0148】
[00166] VVC規格符号化器はさらに、変換係数レベルの絶対値の総和が偶数である場合にデフォルトモードを使用し、そうでない場合にはデフォルトモードを使用しないという条件を満たすようにビットストリームを出力するようコンピューティングデバイスの1つまたは複数のプロセッサを構成する。
【0149】
[00167] また、本開示の例示的な実施形態は、マルチモーダル残差境界予測を利用する2段階残差符号予測方法を実装するVVC規格符号化器およびVVC規格復号器を提供する。
【0150】
[00168] 2段階符号予測方法を実装するVVC規格符号化器およびVVC規格復号器によれば、コンピューティングシステムの1つまたは複数のプロセッサは、2段階でTBの符号を予測および再構成するように構成される。まず、TBの符号は2つの異なるグループに分類される。VVC規格符号化器およびVVC規格復号器は、第1のグループの符号を予測するためにデフォルトモードのみを適用し、第2のグループの符号を予測するために上述の複数の境界予測モードを適用する。
【0151】
[00169]
図17は、TBの符号を第1のグループおよび第2のグループに分類する一例を示す。
【0152】
[00170] 本発明の実施形態によるTBに対して実行される2段階残差符号予測方法は、以下の工程を含み得る。
【0153】
[00171] 第1の工程では、コンピューティングシステムの1つまたは複数のプロセッサは、n個の未知の符号を第1のグループおよび第2のグループの間で分類するように構成される。提案する方法が特定の分類またはグループ化方法に限定されないことを理解されるべきである。たとえば、最初のn/2個の符号が第1のグループに分類され、残りが第2のグループに分類され得る。あるいは、分類またはグループ化は、符号が交互に各グループに分類されるインターリーブ方式で実行され得る。
【0154】
[00172] 続いて、第1のグループの符号に対してデフォルトモードの符号予測を実行し、これらの符号に関するデフォルトモードの符号予測誤差を計算して、第1のグループの符号に最も適合するモード(デフォルトモードか他の符号予測モードかを問わない)が選択される。これは後続の工程に従って実装される。
【0155】
[00173] 後続の工程では、コンピューティングシステムの1つまたは複数のプロセッサは、デフォルトの符号予測モードを適用して、第1のグループの符号を予測し、第1のグループの符号を再構成する。したがって、第1のグループの実際の符号はこのとき既知となる。
【0156】
[00174] 後続の工程では、コンピューティングシステムの1つまたは複数のプロセッサは、次のように、第1のグループの符号予測誤差に基づいて第2のグループの符号予測モードを選択する。
【0157】
[00175] コンピューティングシステムの1つまたは複数のプロセッサは、各符号予測モードについて第1のグループの符号を予測し、次いで、各非符号予測モードについてのそれぞれの予測誤差(すなわち、前の工程の再構成に基づく正しい符号の数)を計算する。
【0158】
[00176] コンピューティングシステムの1つまたは複数のプロセッサは、全ての符号予測モードの中から、予測誤差が最小の符号予測モードを、選択された符号予測モードとして選択する。
【0159】
[00177] 後続の工程では、コンピューティングシステムの1つまたは複数のプロセッサは、選択された符号予測モードを適用して、第2のグループの符号を予測し、第2のグループの符号を再構成する。
【0160】
[00178] 1つまたは複数の態様において、本開示の例示的な実施形態は、TB全体またはTBの拡張された領域にわたって符号予測を利用する残差符号予測方法を実装するVVC規格符号化器およびVVC規格復号器を提供する。
【0161】
[00179] ECM3では、符号予測はTBの左上の4×4領域に限定される。対照的に、本開示の例示的な実施形態は、現在のブロック内の予測された符号の位置を限定せずに(すなわち、変換ブロック内の左上の4×4領域に限定せずに)、符号予測エリアを変換ブロック全体に拡張する。換言すれば、予測されたTBの符号の数が最大許容限度以下である限り、TBの符号を予測することができる。最大許容限度はmaxNumPredSignsで表される。
【0162】
[00180] あるいは、符号予測領域(M×N)は、変換ブロックの幅および高さに依存する。
図18は、TB依存のM×N符号予測領域の一例を示しており、Mの値は4またはTBの幅の4分の1の大きい方であり、Nの値は4またはTBの高さの4分の1の大きい方であり、それぞれ次のように計算される。
【0163】
【0164】
[00181] コンピューティングシステムの1つまたは複数のプロセッサは、(x<M && y<N)の場合に、本明細書に記載の残差符号予測を適用して符号を予測し、ここで、(x,y)は予測される符号の水平および垂直位置である。そうでない場合、1つまたは複数のプロセッサは、予測なしでEPビンによって符号をシグナリングする。
【0165】
[00182] あるいは、符号予測領域(M×N)は固定である。maxMおよびmaxNがそれぞれMおよびNの最大値であると仮定する。maxMおよびmaxNの値は固定値(すなわち、maxM=maxN=32)にすることができ、符号化器および復号器の両方に対して事前に定義することができる。MおよびNの値は次のように決定され得る。
M=max(maxM,width)
N=max(maxN,height)
【0166】
[00183] あるいは、MおよびNの値は次のように決定され得る。
M=min(maxM,width)
N=min(maxN,height)
【0167】
[00184] コンピューティングシステムの1つまたは複数のプロセッサは、(x<M && y<N)の場合に、本明細書に記載の残差符号予測を適用して符号を予測し、ここで、(x,y)は予測される符号の水平および垂直位置である。そうでない場合、1つまたは複数のプロセッサは、予測なしでEPビンによって符号をシグナリングする。
【0168】
[00185] あるいは、VVC規格符号化器は、Mの最大値(maxMと表す)およびNの最大値(maxNと表す)を、SPS、PPSなどのシンタックス構造でVVC規格復号器に向けてシグナリングする。MおよびNの値は、maxMおよびmaxN、ならびに現在のTBの幅および高さから次のように導出することができる。
M=max(maxM,width)
N=max(maxN,height)
【0169】
[00186] あるいは、MおよびNの値は次のように導出することができる。
M=min(maxM,width)
N=min(maxN,height)
【0170】
[00187] コンピューティングシステムの1つまたは複数のプロセッサは、TBの最初の符号を予測する前にNumPredSignをゼロとして初期化し、次いで、(x<M && y<N && NumPreSign<maxNumPreSigns)の場合に、本明細書に記載の残差符号予測を適用して符号を予測し、ここで、(x,y)は予測される符号の水平および垂直位置であり、NumPreSignを1ずつインクリメントする。そうでない場合、1つまたは複数のプロセッサは、予測なしでEPビンによって符号をシグナリングする。
【0171】
[00188] 1つまたは複数の態様において、本開示の例示的な実施形態は、拡張された最大数の予測された符号を利用する残差符号予測方法を実装するVVC規格符号化器およびVVC規格復号器を提供する。
【0172】
[00189] ECM3では、TBの予測された符号の最大数(maxNumPredSigns)が復号器に向けてシグナリングされ、最大許容値は8である。本開示の例示的な実施形態によれば、最大数は16まで増加され得る。あるいは、予測された符号の最大数(maxNumPredSigns)の値をピクチャごとに変更し、スライスヘッダおよび/またはピクチャヘッダなどのシンタックス構造でシグナリングすることもできる。
【0173】
[00190] 1つまたは複数の態様において、本開示の例示的な実施形態は、残差係数に基づく符号ソート順序を利用する残差符号予測方法を実装するVVC規格符号化器およびVVC規格復号器を提供する。
【0174】
[00191] 一般に、変換係数レベルの絶対値が大きいほど符号予測精度が高くなる。そこで、本開示の例示的な実施形態は、
図3を参照して上述したように、2Dの変換係数レベルが1次元の係数レベル配列に記憶される残差符号予測方法を提供する。
【0175】
[00192] 後続の工程では、コンピューティングシステムの1つまたは複数のプロセッサは、係数レベルの絶対値順に配列をソートする。配列は絶対値の降順でソートされ、最大の絶対値を有する残差係数レベルがソートされた配列の先頭に配置され、最小の絶対値を有する残差係数レベルが配列の末尾に配置される。ソートされた配列内の対応する配列位置に応じた最初のn個の符号が、残差符号予測方法を使用して予測され、残りの符号はEPビンによってシグナリングされる。
【0176】
[00193]
図19は、本開示の例示的な実施形態によるソート順序を利用する残差符号予測方法の一例を示す。この方法により、TB内の最大の残差係数レベルの符号が予測に関して優先される。
【0177】
[00194] あるいは、本開示の例示的な実施形態は、残差係数レベルに基づかない符号ソート順序を利用する残差符号予測方法を実装するVVC規格符号化器およびVVC規格復号器を提供する。これは、ECM3によれば、2つの量子化器(Q0およびQ1)が実装されるために、レベルの絶対値が、逆量子化されたDCT変換係数レベルを必ずしも一貫して表さない場合があるという観察によって動機付けられている。同じレベルの値であっても、量子化インデックス(QIdx:quantization index)が異なり得る。
【0178】
[00195]
図20は、2つの量子化器間の同じ残差係数レベルに対する量子化インデックスの不一致を示す。同じレベル値に対して、再構成ポイントが異なり得ることが示されている。
【0179】
[00196] したがって、符号のソートを改良して符号予測精度をさらに向上させるために、(残差係数レベル値の代わりに)対応するQIdx値に基づいて符号のソートが実行される。変換係数レベルのQIdxは次のように計算することができる。
【0180】
[00197] QIdx=(abs(level)<<1)-(state&1)
【0181】
[00198] ここで、levelという変数は量子化された変換係数レベルの値であり、「state」はレベルの依存量子化状態を表す。量子化状態については、H.Schwarz、P.Haase、T.Nguyen、J.Pfaff、D.Marpe、T.Wiegand、「EE2-4.1:Results for dependent quantization with 8 states」、JVET-V0082、2021年4月にさらに詳細に記載されている。同じ量子化パラメータの場合、より大きいQIdxは、逆量子化後のより大きい変換係数レベルを表す。したがって、最大から最小の順に並べられた対応するQIdx値に応じた最初のn個の符号が、残差符号予測方法を使用して予測され、残りの符号はEPビンによってシグナリングされる。
【0182】
[00199] 続いて、予測された符号は、復号器による後の処理のために、ビットストリームでシグナリングされる必要がある。しかしながら、
図4Aおよび
図4Bを参照して上述したように、ECM3提案によれば、ラスタスキャン順序で決定される最初のmaxNumPredSigns個の符号が予測されるので、
図21に示すように、ラスタスキャン順序でブロックの最初の8つの非ゼロの符号が予測され、それらのerrSignPredフラグによってシグナリングされ、残りの4つの非ゼロの符号は予測されず、EPビンによってシグナリングされる。
【0183】
[00200] ECM3によれば、予測された係数レベルのerrSignPredフラグおよび予測されなかった係数のEPビンシグナリングは両方とも、元のラスタスキャン順序でシグナリングされる。
図21は、予測された符号のerrSignPredフラグが最初にビットストリーム内でシグナリングされ、その後、残りの予測されなかった符号のEPビン信号が続くことを示している。
【0184】
[00201] しかしながら、残差係数のソート順を利用する上述の残差符号予測方法によれば、予測される符号は必ずしもラスタスキャン順序での最初のN個の符号であるとは限らず、この結果を
図22に示す。したがって、予測された符号および予測されなかった符号がラスタスキャン順序でビットストリーム内に符号化された場合、それらは
図22に示すように交互配置されるだろう。
【0185】
[00202] この問題を解決するために、1つまたは複数の態様において、本開示の例示的な実施形態は、
図23に示すように、ソート順序を利用する残差符号予測方法のための2パスビットストリームシグナリング方法を実装するVVC規格符号化器およびVVC規格復号器を提供する。第1のパスでは、ブロックの符号に対して予測された各errSignPredフラグが、予測されなかった各符号をシグナリングする前に、ラスタスキャン順序またはレベルの絶対値の順序で、ビットストリームでシグナリングされる。第2のパスでは、残りの予測されなかった各符号が、それぞれラスタスキャン順序で、EPビン信号でシグナリングされ、EPビン信号は、符号に対して予測されたフラグの後に続く。
【0186】
[00203] ビットストリームを処理するように構成されたCABACエントロピー復号器の場合、EPビン信号が一緒にグループ化されると有益である。エントロピー復号器152は、予測された符号の符号化された残差およびバイパス符号化された符号のビットストリームをパースしている間に、現在パース中のビンが、予測された符号の符号化された残差であるか、またはバイパス符号化された符号であるかを判定する。予測された符号の符号化された残差は全て、バイパス符号化された符号の前にパースされる。エントロピー復号器152は、符号の残差およびバイパス符号化された符号をパースし、それらをバッファに記憶する。その後、再構成プロセスにおいて、VVC規格復号器は、符号選択を実行して符号の残差を割り当て、バイパス符号化された符号を係数に正しく割り当てることができる。エントロピー復号器152は、パースプロセスにおいて符号選択を実行する必要がなく、後で再構成プロセスにおいて符号選択を実行することができる。
【0187】
[00204] 1つまたは複数の態様において、本開示の例示的な実施形態は、予測に非ラスタスキャン順序を利用する残差符号予測方法を実装するVVC規格符号化器およびVVC規格復号器を提供する。
図24は、予測される符号を決定するためにTBの4×4領域のスキャン順序に適用されるジグザグスキャン順序を示す(
図3に示すラスタスキャン順序を置き換える)。
【0188】
[00205] 1つまたは複数の態様において、本開示の例示的な実施形態は、拡張された境界に対して境界予測を利用する残差符号予測方法を実装するVVC規格符号化器およびVVC規格復号器を提供する。
【0189】
[00206] ECM3によれば、仮説再構成および境界予測は全て、TBの最上行802および最左列804に対してのみ実行される。そこで、本開示の例示的な実施形態は、拡張された境界領域に対する境界予測を提供する。一実施形態では、境界エリアは変換ブロック全体に拡張される。他の実施形態では、境界エリアは、M個の最上行814およびN個の最左列816に拡張される(M=N=1は、ECM3によって確立される境界エリアを表す)。MおよびNの値は固定にすることができる(たとえば、M=N=2)。MおよびNの値は、スライス/ピクチャレベルまたはSPSレベルで復号器に向けてシグナリングすることもできる。
【0190】
[00207]
図25は、本開示の例示的な実施形態による、M=N=2の拡張された境界の一例を示す。
【0191】
[00208] 拡張境界予測方法を実装するVVC規格符号化器およびVVC規格復号器は、コスト関数を2つのサブコスト関数の和として計算するようにコンピューティングシステムの1つまたは複数のプロセッサを構成し、各サブコスト関数は、近傍のブロックおよび現在のブロックのそれぞれの異なる行にわたる不連続性、または近傍のブロックおよび現在のブロックのそれぞれの異なる列にわたる不連続性を測定する。第1のサブコスト関数は、R-2、R-1、および候補の最初の行(または上の境界ではなく左の境界の最初の列)の間の不連続性を測定する。第2のサブコスト関数は、R-1と、候補の最初の行(または上の境界ではなく左の境界の最初の列)と、候補の2番目の行(または上の境界ではなく左の境界の2番目の列)との間の不連続性を測定する。
【0192】
[00209] コスト計算の例を以下に示す。
【0193】
【0194】
[00210] ここで、ResPred
x,yはTBの位置(x,y)の予測された境界残差(
図25に濃い影で示す)を指し、ResRec
x,yは位置(x,y)における仮説の再構成された残差の候補(
図5を参照して上述)を指す。(0,0)は符号が予測されるTBの左上の位置を表し、wおよびhはTBの幅および高さであり、P
x,yは位置(x,y)における予測サンプルである。
【0195】
【0196】
[00211]
図26は、境界拡張を伴う不連続性測定の一例を示す。
【0197】
[00212] 1つまたは複数の態様において、本開示の例示的な実施形態は、拡張された範囲の残差シグナリングを利用する残差符号予測方法を実装するVVC規格符号化器およびVVC規格復号器を提供する。
【0198】
[00213] ECM3によれば、予測された符号ごとに、符号化器は符号の残差errSignPredを復号器に向けてシグナリングするように構成される。errSignPredの値が0に等しい場合、予測された符号の値は実際の符号の値と同じである。errSignPredの値が1に等しい場合、予測された符号の値は実際の符号の値と同じではない。
【0199】
[00214] ルマコンポーネントのerrSignPredを符号化するために使用される4つのコンテキスト変数があり、クロマコンポーネントのerrSignPredを符号化するために4つのコンテキストモデルが使用される。コンテキスト変数の導出は、CUがイントラ符号化されるかインター符号化されるか、および予測される符号がDCの符号であるかACの符号であるかによって異なる。ECM3によれば、コンテキストインデックスは次のように導出される。
各TBについて:
int ctxOffset=CU::isIntra(*tu.cu)?0:2;
予測された各符号について
(x,y)が符号化される符号の(TBの左上の位置からの)水平および垂直位置であると仮定する
ctxIdc=(x==0 && y==0)?0:1
ctxIdc+=ctxOffset
【0200】
[00215] しかしながら、上記は、変換ブロックの予測された符号の数が増加すると、符号予測方法の精度が低下するというさらなる観察を考慮していない。したがって、本開示の例示的な実施形態によれば、変換ブロックの予測された符号の数が所定の閾値よりも大きい場合に、信号コンテキストのシンタックス構造に追加のコンテキスト変数が導入される。提案する方法では、ルマに6つのコンテキストを使用し、クロマに6つのコンテキストを使用する。VVC規格符号化器は、次の疑似コードに従ってコンテキストインデックスの導出を実装することができる。
各TBについて:
int ctxOffset=CU::isIntra(*tu.cu)?0:3;
予測された各符号について
(x,y)が符号化される符号の(TBの左上の位置からの)水平および垂直位置であると仮定する
ctxIdc=(x==0 && y==0)?0:1
ctxIdc+=((x||y) && numSigns<Th)?1:0
ctxIdc+=ctxOffset
【0201】
[00216] さらに、TBの予測された符号の数に応じて、いくつかのコンテキストモデルのうちの1つが選択され得る。たとえば、TBの予測された符号の数が閾値Aよりも大きい場合、第1のコンテキストモデルが使用され、TBの予測された符号の数が閾値A以下であるが閾値Bよりも大きい場合、第2のコンテキストモデルが使用され、TBの予測された符号の数が閾値B以下の場合、第3のコンテキストモデルが使用され、以下同様である。
【0202】
[00217] あるいは、VVC規格符号化器は、次の疑似コードに従って、TB内の予測される符号の数と現在のビンの順序とに応じたコンテキストインデックスの導出を実装することができる。
各TBについて:
int ctxOffset=CU::isIntra(*tu.cu)?0:maxNumPredSigns;
ctxIdc=numSigns;
ctxIdc=ctxIdc+ctxOffset;
予測された各符号について:
ctxIdcを使用して現在のビンを符号化または復号する
ctxIdc=ctxIdc+1;
【0203】
[00218] ここで、maxNumPredSignsは、現在シーケンスに対して予測される符号の最大数を表し、numSignsは、現在のTB内の予測される符号の数を表す。
【0204】
[00219] 本開示の例示的な実施形態による残差符号予測方法は、予測間の境界ピクセルの除外をさらに実行し得る。上記のように、近傍のTBの境界線にエッジが一致するオブジェクトが画像に含まれている場合、近傍のTBの境界線にまたがって残差係数符号間に高い相関があるという仮定が成り立たなくなり、近傍のTBに冗長な情報が含まれているという仮定が成り立たなくなる。
【0205】
[00220] ECM3提案のコスト関数のこの制限を克服するために、VVC規格符号化器およびVVC規格復号器は、コスト関数評価から一部の境界ピクセルを除外し、特に近傍のTBに対して内容が不連続である境界ピクセルを除外する残差符号予測方法を実装する。
【0206】
[00221]
図4Aおよび
図4Bを参照して上述したように、VVC規格符号化器およびVVC規格復号器は、予測されるn個の符号のうちの各符号を1つずつ予測するようにコンピューティングシステムの1つまたは複数のプロセッサを構成し、最初の予測された符号について、VVC規格符号化器およびVVC規格復号器は、ECM3提案に従って2
n個の仮説のそれぞれについてコスト関数を評価するようにコンピューティングシステムの1つまたは複数のプロセッサを構成し、コスト関数評価は、全ての境界ピクセルを含む境界ピクセルセットNを含む。
【0207】
[00222] VVC規格符号化器およびVVC規格復号器は、それらの中で最小のコストをもたらす仮説を選択し、その仮説の最初の符号を現在のブロックの最初の符号の予測子として指定するようにコンピューティングシステムの1つまたは複数のプロセッサを構成する。次いで、最初の符号の予測が正しいか否かを示すための、最初の符号のerrSignPredフラグがシグナリングされる。
【0208】
[00223] 続いて、最初の符号の予測が誤っている(すなわち、現在のブロックの符号が、選択された仮説、および選択された仮説で予測された現在のブロックの対応する符号と比較して誤って予測された)と仮定し、以降、予測子として指定された仮説をAと呼び、正しい仮説をBと呼ぶ。
【0209】
[00224] 仮説AおよびBのそれぞれについて、VVC規格符号化器およびVVC規格復号器は、各境界ピクセルの予測された残差と再構成された残差との差を計算および比較するようにコンピューティングシステムの1つまたは複数のプロセッサを構成する。すなわち、境界ピクセルpについて、仮説Aの予測された残差と再構成された残差との差がdiff_A(p)として計算され、仮説Bの予測された残差と再構成された残差との差がdiff_B(p)として計算される。次に、diff_B(p)とdiff_A(p)の差としてdiff_A_B(p)が計算される。diff_B(p)がdiff_A(p)よりも大きい場合(すなわち、diff_A_B(p)が0よりも大きい場合)、pは境界ピクセルセットNから除外される。
【0210】
[00225] 例として、仮説Bの予測された残差と再構成された残差との間に、仮説Aよりも大きな差をもたらす各ピクセルは、境界ピクセルセットNから除外される。
【0211】
[00226] 他の例として、仮説Bの予測された残差と再構成された残差との間に、仮説Aよりも大きな差をもたらす各ピクセルのうち、仮説Aの差と仮説Bの差との間の差の大きさが最大のk個のピクセルのみが(すなわち、k個のピクセルはdiff_A_B()の最大値である)、境界ピクセルセットNから除外される。境界ピクセルを除外した後、残りのピクセルは、次のビンを予測する際の境界ピクセルセットNとして使用される。
【0212】
[00227] したがって、誤った予測をもたらす各符号予測工程は、前の予測と次の予測との間での境界ピクセルセットNからの1つまたは2つ以上の境界ピクセルの除外をトリガし、残りの境界ピクセルのみが次の符号の予測に使用される。除外された境界ピクセルは、近傍のTBと内容が不連続であるために、コスト関数の信頼性が低くなるピクセルとして理解することができる。そのようなピクセルを除外することにより、コスト関数の精度を向上させ、それに応じて予測精度を向上させることができる。
【0213】
[00228] 当業者は、本開示の上記の態様の全てがそれらの任意の組み合わせで同時に実装され得、本開示の全ての態様が本開示のさらに他の実施形態として組み合わせて実装され得ることを理解するであろう。
【0214】
[00229]
図27は、残差符号予測を実装するための上述のプロセスおよび方法を実装するための例示的なシステム2700を示す。
【0215】
[00230] 本明細書に記載の技術およびメカニズムは、システム2700の複数のインスタンスによって、ならびに他の任意のコンピューティングデバイス、システム、および/または環境によって実装され得る。
図27に示すシステム2700は、システムの一例にすぎず、上述のプロセスおよび/または手順を実行するために利用される任意のコンピューティングデバイスの使用または機能の範囲に関するいかなる制限も示唆することを意図したものではない。実施形態での使用に適し得る他のよく知られているコンピューティングデバイス、システム、環境、および/または構成には、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、ゲームコンソール、プログラム可能な家庭用電化製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたはデバイスのいずれかを含む分散コンピューティング環境、フィールドプログラマブルゲートアレイ(「FPGA」)および特定用途向け集積回路(「ASIC」)を使用した実装、ならびに/あるいは同様のものが含まれるが、これらに限定されない。
【0216】
[00231] システム2700は、1つまたは複数のプロセッサ2702と、プロセッサ2702に通信可能に結合されたシステムメモリ2704とを含み得る。プロセッサ2702は、1つまたは複数のモジュールおよび/またはプロセスを実行して、プロセッサ2702に様々な機能を実行させ得る。いくつかの実施形態では、プロセッサ2702は、中央処理装置(「CPU」)、グラフィックス処理装置(「GPU」)、CPUおよびGPUの両方、または当技術分野で知られている他の処理ユニットもしくはコンポーネントを含み得る。さらに、プロセッサ2702のそれぞれは、独自のローカルメモリを所持し得、これもプログラムモジュール、プログラムデータ、ならびに/あるいは1つまたは複数のオペレーティングシステムを記憶し得る。
【0217】
[00232] システム2700の正確な構成およびタイプに応じて、システムメモリ2704は、たとえばRAMなどの揮発性、たとえばROM、フラッシュメモリ、小型ハードドライブ、メモリカードなどの不揮発性、またはそれらの組み合わせであり得る。システムメモリ2704は、プロセッサ2702によって実行可能な1つまたは複数のコンピュータ実行可能モジュール2706を含み得る。
【0218】
[00233] モジュール2706は、符号化器2708および復号器2710のうちの1つまたは複数を含み得るが、これらに限定されない。
【0219】
[00234] 符号化器2708は、上述した本開示の例示的な実施形態の任意の、一部の、または全ての態様を実装し、上述の動作を実行するようにプロセッサ902を構成するためにプロセッサ902によって実行可能であるVVC規格符号化器であり得る。
【0220】
[00235] 復号器2710は、上述した本開示の例示的な実施形態の任意の、一部の、または全ての態様を実装し、上述の動作を実行するようにプロセッサ2702を構成するためにプロセッサ2702によって実行可能であるVVC規格符号化器であり得る。
【0221】
[00236] システム2700は、画像ソースデータおよびビットストリームデータを受け取り、再構成されたピクチャを参照ピクチャバッファあるいはDBPおよび/または表示バッファに出力するための入力/出力(I/O)インターフェース2740をさらに含み得る。システム2700はまた、システム2700がネットワーク(図示せず)を介して他のデバイス(図示せず)と通信することを可能にする通信モジュール2750を含み得る。ネットワークには、インターネット、有線ネットワークまたは直接有線接続などの有線媒体、音響、無線周波数(「RF」)、赤外線、および他の無線媒体などの無線媒体が含まれ得る。
【0222】
[00237] 上述の方法の一部または全ての動作は、以下に定義するように、コンピュータ可読記憶媒体に記憶されたコンピュータ可読命令を実行することによって実施することができる。本説明および特許請求の範囲で使用する「コンピュータ可読命令」という用語には、ルーチン、アプリケーション、アプリケーションモジュール、プログラムモジュール、プログラム、コンポーネント、データ構造、アルゴリズムなどが含まれる。コンピュータ可読命令は、シングルプロセッサまたはマルチプロセッサシステム、ミニコンピュータ、メインフレームコンピュータ、パーソナルコンピュータ、ハンドヘルドコンピューティングデバイス、マイクロプロセッサベースのプログラム可能な家庭用電化製品、それらの組み合わせなどを含む様々なシステム構成で実装することができる。
【0223】
[00238] コンピュータ可読記憶媒体は、揮発性メモリ(たとえば、ランダムアクセスメモリ(「RAM」))および/または不揮発性メモリ(たとえば、読み取り専用メモリ(「ROM」)、フラッシュメモリなど)を含み得る。コンピュータ可読記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュールなどの不揮発性記憶装置を提供し得るフラッシュメモリ、磁気記憶装置、光記憶装置、および/またはテープ記憶装置を含むがこれらに限定されない追加のリムーバブル記憶装置および/または非リムーバブル記憶装置も含まれ得る。
【0224】
[00239] 非一時的コンピュータ可読記憶媒体は、コンピュータ可読媒体の一例である。コンピュータ可読媒体には、少なくとも2つのタイプのコンピュータ可読媒体、すなわち、コンピュータ可読記憶媒体および通信媒体が含まれる。コンピュータ可読記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するための任意のプロセスまたは技術で実装される揮発性および不揮発性のリムーバブルおよび非リムーバブル媒体が含まれる。コンピュータ可読記憶媒体には、相変化メモリ(「PRAM」)、スタティックランダムアクセスメモリ(「SRAM」)、ダイナミックランダムアクセスメモリ(「DRAM」)、他のタイプのランダムアクセスメモリ(「RAM」)、読み取り専用メモリ(「ROM」)、電気的に消去可能なプログラマブル読み取り専用メモリ(「EEPROM」)、フラッシュメモリまたは他のメモリ技術、コンパクトディスク読み取り専用メモリ(「CD-ROM」)、デジタルバーサタイルディスク(「DVD」)または他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶デバイス、あるいはコンピューティングデバイスによるアクセスのために情報を記憶するために使用することができる他の非伝送媒体が含まれるが、これらに限定されない。対照的に、通信媒体は、搬送波または他の伝送メカニズムなどの変調データ信号内のコンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを具現化し得る。本明細書で使用するコンピュータ可読記憶媒体は、たとえば、電波または他の自由伝播電磁波、導波管または他の伝送媒体(たとえば、光ファイバケーブルを通る光パルス)を伝播する電磁波、またはワイヤを介して伝播する電気信号などの一時的な信号そのものとして解釈されないものとする。
【0225】
[00240] 1つまたは複数のプロセッサによって実行された場合に、
図1A~
図26を参照して上述した動作を実行し得る、1つまたは複数の非一時的コンピュータ可読記憶媒体に記憶されたコンピュータ可読命令。一般に、コンピュータ可読命令には、特定の機能を実行する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。動作を説明する順序は、限定として解釈されることを意図したものではなく、任意の数の説明した動作を任意の順序でおよび/または並行して組み合わせて、プロセスを実装することができる。
【0226】
[00241] 本主題は、構造的特徴および/または方法論的行為に特有の文言で説明してきたが、添付の特許請求の範囲で定義した主題は、必ずしも説明した特定の特徴または行為に限定されないことは理解されたい。むしろ、特定の特徴および行為は、特許請求の範囲を実施する例示的な形態として開示している。
【0227】
[00242] 本開示の例示的な実施形態を少なくとも以下の条項によってさらに記載する。
【0228】
[00243] A.コンピューティングシステム(2700)の1つまたは複数のプロセッサ(2702)によって、現在のブロック(800)の最上行(802)および現在のブロック(800)の最左列(804)の残差係数符号を予測することを含み、少なくとも、最上行(802)の残差係数符号が、それぞれの左上の再構成されたサンプルもしくはそれぞれの右上の再構成されたサンプルから予測されるか、または最左列(804)の残差係数符号が、それぞれの左上の再構成されたサンプルもしくはそれぞれの左下の再構成されたサンプルから予測される、方法。
【0229】
[00244] B.最上行(802)の残差係数符号は、それぞれの左上の再構成されたサンプルから予測され、最左列(804)の残差係数符号は、それぞれの左上の再構成されたサンプルから予測される、段落Aに記載の方法。
【0230】
[00245] C.最上行(802)の残差係数符号は、それぞれの左上の2つの再構成されたサンプルから予測され、最左列(804)の残差係数符号は、それぞれの左上の2つの再構成されたサンプルから予測される、段落Bに記載の方法。
【0231】
[00246] D.最上行(802)の残差係数符号は、それぞれの左下の再構成されたサンプルから予測され、最左列(804)の残差係数符号は、それぞれの右上の再構成されたサンプルから予測される、段落Aに記載の方法。
【0232】
[00247] E.最上行(802)の残差係数符号は、それぞれの左下の2つの再構成されたサンプルから予測され、最左列(804)の残差係数符号は、それぞれの右上の2つの再構成されたサンプルから予測される、段落Dに記載の方法。
【0233】
[00248] F.最上行(802)の残差係数符号は、それぞれの左下の再構成されたサンプルから予測され、最左列(804)の残差係数符号は、それぞれの左上の再構成されたサンプルから予測される、段落Aに記載の方法。
【0234】
[00249] G.最上行(802)の残差係数符号は、それぞれの左下の2つの再構成されたサンプルから予測され、最左列(804)の残差係数符号は、それぞれの左上の2つの再構成されたサンプルから予測される、段落Fに記載の方法。
【0235】
[00250] H.最上行(802)の残差係数符号は、それぞれの左上の再構成されたサンプルから予測され、最左列(804)の残差係数符号は、それぞれの右上の再構成されたサンプルから予測される、段落Aに記載の方法。
【0236】
[00251] I.最上行(802)の残差係数符号は、それぞれの左上の2つの再構成されたサンプルから予測され、最左列(804)の残差係数符号は、それぞれの右上の2つの再構成されたサンプルから予測される、段落Hに記載の方法。
【0237】
[00252] J.最上行(802)の残差係数符号は、それぞれの左下の再構成されたサンプルから予測され、最左列(804)の残差係数符号は、それぞれの上の再構成されたサンプルから予測される、段落Aに記載の方法。
【0238】
[00253] K.最上行(802)の残差係数符号は、それぞれの左下の2つの再構成されたサンプルから予測され、最左列(804)の残差係数符号は、それぞれの上の2つの再構成されたサンプルから予測される、段落Jに記載の方法。
【0239】
[00254] L.最上行(802)の残差係数符号は、それぞれの左上の再構成されたサンプルから予測され、最左列(804)の残差係数符号は、それぞれの上の再構成されたサンプルから予測される、段落Aに記載の方法。
【0240】
[00255] M.最上行(802)の残差係数符号は、それぞれの左上の2つの再構成されたサンプルから予測され、最左列(804)の残差係数符号は、それぞれの上の2つの再構成されたサンプルから予測される、段落Lに記載の方法。
【0241】
[00256] N.最上行(802)の残差係数符号は、それぞれの左の再構成されたサンプルから予測され、最左列(804)の残差係数符号は、それぞれの左上の再構成されたサンプルから予測される、段落Aに記載の方法。
【0242】
[00257] O.最上行(802)の残差係数符号は、それぞれの左の2つの再構成されたサンプルから予測され、最左列(804)の残差係数符号は、それぞれの左上の2つの再構成されたサンプルから予測される、段落Nに記載の方法。
【0243】
[00258] P.最上行(802)の残差係数符号は、それぞれの左の再構成されたサンプルから予測され、最左列(804)の残差係数符号は、それぞれの右上の再構成されたサンプルから予測される、段落Aに記載の方法。
【0244】
[00259] Q.最上行(802)の残差係数符号は、それぞれの左の2つの再構成されたサンプルから予測され、最左列(804)の残差係数符号は、それぞれの右上の2つの再構成されたサンプルから予測される、段落Pに記載の方法。
【0245】
[00260] R.1つまたは複数のプロセッサ(2702)によって、現在のブロック(800)のシンタックス構造で境界予測モードフラグをシグナリングすること、あるいは、1つまたは複数のプロセッサ(2702)によって、現在のブロック(800)のシンタックス構造から境界予測モードフラグをパースすることのうちの1つをさらに含む、段落A~Qのいずれか1つに記載の方法。
【0246】
[00261] S.1つまたは複数のプロセッサ(2702)によって、現在のブロック(800)のシンタックス構造で非デフォルト境界予測モードフラグをシグナリングすること、あるいは、1つまたは複数のプロセッサ(2702)によって、現在のブロック(800)のシンタックス構造から非デフォルト境界予測モードフラグをパースすることのうちの1つをさらに含む、段落Rに記載の方法。
【0247】
[00262] T.1つまたは複数のプロセッサ(2702)によって、非デフォルト境界予測モードフラグをシグナリングすることなく、現在のブロック(800)のシンタックス構造で境界予測モードフラグをシグナリングすること、あるいは、1つまたは複数のプロセッサ(2702)によって、現在のブロック(800)の変換係数レベルの総和のパリティビットから非デフォルト予測モードフラグを決定することのうちの1つをさらに含む、段落Rに記載の方法。
【0248】
[00263] U.1つまたは複数のプロセッサ(2702)によって、複数の境界予測モードについて、それぞれの複数の対応するモードテンプレートを、現在のブロック(800)の最上行(802)および最左列(804)にそれぞれ基づいて生成することと、1つまたは複数のプロセッサ(2702)によって、複数のモードテンプレートのそれぞれについて、モードテンプレートと、再構成された近傍のブロックの対応するサンプルとのコスト関数を計算することと、対応するモードテンプレートに対して最適なコスト関数出力を有する境界予測モードを選択することと、をさらに含む、段落A~Tのいずれか1つに記載の方法。
【0249】
[00264] V.コンピューティングシステム(2700)の1つまたは複数のプロセッサ(2702)によって、現在のブロック(800)の第1の複数の残差係数符号および第2の複数の残差係数符号を分類することと、1つまたは複数のプロセッサ(2702)によって、デフォルトの符号予測モードによって第1の複数の残差係数符号を予測することと、1つまたは複数のプロセッサ(2702)によって、第1の複数の残差係数符号を再構成することと、1つまたは複数のプロセッサ(2702)によって、複数の符号予測モードによって第1の複数の残差係数符号を予測することと、1つまたは複数のプロセッサ(2702)によって、複数の符号予測モードのそれぞれの中から、最小の予測誤差を有する符号予測モードを選択することと、1つまたは複数のプロセッサ(2702)によって、選択された符号予測モードによって第2の複数の残差係数符号を予測することと、を含む、方法。
【0250】
[00265] W.コンピューティングシステム(2700)の1つまたは複数のプロセッサ(2702)によって、現在のブロック(800)内の予測される残差係数符号の位置の制限なく、現在のブロック(800)の残差係数符号を予測することを含む方法。
【0251】
[00266] X.コンピューティングシステム(2700)の1つまたは複数のプロセッサ(2702)によって、現在のブロック(800)の残差係数符号を予測することを含み、予測された残差係数符号は現在のブロック(800)のある領域に限定され、現在のブロック(800)のその領域の幅は、4と、現在のブロック(800)の幅の4分の1とのうちの大きい方の値であり、現在のブロック(800)のその領域の高さは、4と、現在のブロック(800)の高さの4分の1とのうちの大きい方の値である、方法。
【0252】
[00267] Y.コンピューティングシステム(2700)の1つまたは複数のプロセッサ(2702)によって、現在のブロック(800)の残差係数符号を予測することを含み、予測された残差係数符号は、現在のブロック(800)のある領域に限定され、現在のブロック(800)のその領域の幅は、固定の幅と現在のブロック(800)の幅とのうちの大きい方の値であり、現在のブロック(800)のその領域の高さは、固定の高さと現在のブロック(800)の高さとのうちの大きい方の値である、方法。
【0253】
[00268] Z.残差係数符号は最大許容限度まで予測され、最大許容限度は8よりも大きく、最大許容限度は現在のブロック(800)のシンタックス構造でシグナリングされる、段落Yに記載の方法。
【0254】
[00269] AA.コンピューティングシステム(2700)の1つまたは複数のプロセッサ(2702)によって、現在のブロック(800)の残差係数レベルを大きさ順にソートすることと、1つまたは複数のプロセッサ(2702)によって、ソートされた順序の現在のブロック(800)の最大の残差係数レベルに対応する現在のブロック(800)の複数の残差係数符号を予測することと、を含む、方法。
【0255】
[00270] AB.コンピューティングシステム(2700)の1つまたは複数のプロセッサ(2702)によって、現在のブロック(800)の残差係数の量子化ステップを大きさ順にソートすることと、1つまたは複数のプロセッサ(2702)によって、ソートされた順序の現在のブロック(800)の残差係数の最大の量子化ステップに対応する現在のブロック(800)の複数の残差係数符号を予測することと、を含む、方法。
【0256】
[00271] AC.1つまたは複数のプロセッサ(2702)によって、予測されなかった残差係数符号をシグナリングする前に、予測された各残差係数符号に関するフラグをビットストリームでシグナリングすることと、1つまたは複数のプロセッサ(2702)によって、シグナリングされたフラグに続いて、予測されなかった残差係数符号をシグナリングすることと、をさらに含む、段落ABまたはACに記載の方法。
【0257】
[00272] AD.コンピューティングシステム(2700)の1つまたは複数のプロセッサ(2702)によって、ラスタスキャン順序以外の順序で現在のブロック(800)の残差係数符号を予測することを含む、方法。
【0258】
[00273] AE.現在のブロック(800)の残差係数符号は、ジグザグスキャン順序で予測される、段落ADに記載の方法。
【0259】
[00274] AF.コンピューティングシステム(2700)の1つまたは複数のプロセッサ(2702)によって、現在のブロック(800)の複数の最上行(814)および現在のブロック(800)の複数の最左列(816)の残差係数符号を予測することを含む、方法。
【0260】
[00275] AG.1つまたは複数のプロセッサ(2702)によって、残差係数符号を予測することは、1つまたは複数のプロセッサ(2702)によって、コスト関数を2つのサブコスト関数の和として計算することを含み、各サブコスト関数は、近傍のブロックおよび現在のブロック(800)のそれぞれ異なる行にわたって、または近傍のブロックおよび現在のブロック(800)のそれぞれ異なる列にわたって測定する、請求項AFに記載の方法。
【0261】
[00276] AH.コンピューティングシステム(2700)の1つまたは複数のプロセッサ(2702)によって、現在のブロック(800)の残差係数符号を予測することと、1つまたは複数のプロセッサ(2702)によって、予測された残差係数符号の数に従って、現在のブロックのシンタックス構造で複数のコンテキストモデルのうちの1つをシグナリングすることと、を含む、方法。
【0262】
[00277] AI.コンピューティングシステム(2700)の1つまたは複数のプロセッサ(2702)によって、境界ピクセルセットに基づいて現在のブロック(800)の境界ピクセルに対する現在のブロック(800)の複数の残差係数符号のうちの1つを予測することと、1つまたは複数のプロセッサ(2702)によって、複数の仮説のそれぞれに従ってコスト関数を評価することと、1つまたは複数のプロセッサ(2702)によって、最小のコスト関数出力をもたらす複数の仮説の中から選択された仮説を選択することと、1つまたは複数のプロセッサ(2702)によって、選択された仮説と比較して最初の符号が誤って予測されたと判定することと、1つまたは複数のプロセッサ(2702)によって、境界ピクセルの予測された残差と再構成された残差との差を計算することと、1つまたは複数のプロセッサ(2702)によって、予測された残差と再構成された残差との差の大きさが上位の1つまたは複数の境界ピクセルを、後続の残差符号予測のための境界ピクセルセットから除外することと、を含む、方法。
【国際調査報告】