(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-07-05
(54)【発明の名称】ビデオ符号化のためのネットワークベースの画像フィルタリング
(51)【国際特許分類】
H04N 19/126 20140101AFI20240628BHJP
H04N 19/136 20140101ALI20240628BHJP
H04N 19/176 20140101ALI20240628BHJP
H04N 19/46 20140101ALI20240628BHJP
【FI】
H04N19/126
H04N19/136
H04N19/176
H04N19/46
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024500126
(86)(22)【出願日】2022-07-05
(85)【翻訳文提出日】2024-01-04
(86)【国際出願番号】 US2022036146
(87)【国際公開番号】W WO2023283202
(87)【国際公開日】2023-01-12
(32)【優先日】2021-07-05
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】521248394
【氏名又は名称】ベイジン、ターチア、インターネット、インフォメーション、テクノロジー、カンパニー、リミテッド
【氏名又は名称原語表記】BEIJING DAJIA INTERNET INFORMATION TECHNOLOGY CO.,LTD.
(74)【代理人】
【識別番号】100120031
【氏名又は名称】宮嶋 学
(74)【代理人】
【識別番号】100107582
【氏名又は名称】関根 毅
(74)【代理人】
【識別番号】100217940
【氏名又は名称】三並 大悟
(72)【発明者】
【氏名】チェン、ウェイ
(72)【発明者】
【氏名】シウ、シャオユー
(72)【発明者】
【氏名】チェン、イー-ウェン
(72)【発明者】
【氏名】チュー、ホン-チェン
(72)【発明者】
【氏名】クオ、チョー-ウェイ
(72)【発明者】
【氏名】ワン、シャンリン
(72)【発明者】
【氏名】ユイ、ビン
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159MA04
5C159MA05
5C159MC11
5C159ME01
5C159PP04
5C159RC12
5C159TA46
5C159TB08
5C159TC28
5C159TD15
5C159UA02
5C159UA05
5C159UA16
(57)【要約】
ニューラルネットワークを使用したビデオ符号化時の画像フィルタリングの方法および装置が提供される。方法は、複数の量子化パラメータ(QP)マップ(QpMap)チャネルにおける複数のQpMap値をニューラルネットワークにロードすることと、入力フレームに関する複数の入力QP値を調節することによってQPスケーリング因子を取得することと、ニューラルネットワークへの入力フレームをニューラルネットワークが学習およびフィルタリングするために、QPスケーリング因子に応じて、複数のQpMap値を調節することとを含む。
【特許請求の範囲】
【請求項1】
ビデオ符号化時の画像フィルタリングの方法であって、
1つまたは複数の量子化パラメータ(QP)マップ(QpMap)チャネルにおける複数のQpMap値をニューラルネットワークにロードすることと、
入力フレームに関する複数の入力QP値を調節することによってQPスケーリング因子を取得することと、
前記ニューラルネットワークへの前記入力フレームを前記ニューラルネットワークが学習およびフィルタリングするために、前記QPスケーリング因子に応じて、前記複数のQpMap値を調節することと、
を含む、方法。
【請求項2】
前記入力フレームに関する前記複数の入力QP値を調節することが、
QPオフセットステップサイズ、下限、およびオフセットインデックスに基づいてQPオフセットを取得することであって、前記QPオフセットステップサイズが、各入力QP値を調節するためのステップサイズであり、前記下限が、最大QP値低減を決定する整数値であり、前記オフセットインデックスが、シグナリングされたインデックス値であることと、
入力QP値から前記QPオフセットを減算することと、を含む、請求項1に記載の方法。
【請求項3】
エンコーダによって、前記QPオフセットステップサイズ、前記下限、および前記オフセットインデックスをシグナリングすることであって、前記オフセットインデックスが、0から3までの整数であること、をさらに含む、請求項2に記載の方法。
【請求項4】
エンコーダによって、前記QPオフセットステップサイズおよび前記下限を予め定義することと、
前記エンコーダによって、前記オフセットインデックスをシグナリングすることであって、前記オフセットインデックスが、0から3までの整数であること、をさらに含む、請求項2に記載の方法。
【請求項5】
前記QPスケーリング因子を取得することが、QPオフセットを取得することを含み、
前記複数のQpMap値を調節することが、入力QP値から前記QPオフセットを減算することを含む、請求項1に記載の方法。
【請求項6】
前記QPスケーリング因子を取得することが、
QPオフセットを取得することと、
【数1】
という演算を使用して前記QPスケーリング因子を取得することと、を含み、
α
CHが、前記QPスケーリング因子を示し、QP
offsetが、前記QPオフセットを示す、請求項1に記載の方法。
【請求項7】
入力ビデオブロック毎に前記QPオフセットを決定すること、をさらに含む、請求項6に記載の方法。
【請求項8】
エンコーダによって、フレームレベルで前記QPオフセットをシグナリングすること、をさらに含む、請求項6に記載の方法。
【請求項9】
エンコーダによって、ルックアップテーブル(LUT)を予め定義することであって、前記LUTが、複数の符号語、および前記複数の符号語に対応する複数のQPオフセットを含むことと、
前記LUTに基づいて符号語に対応するQPオフセットをデコーダが取り出すように、前記エンコーダによって、前記符号語をシグナリングすることと、
をさらに含む、請求項5に記載の方法。
【請求項10】
エンコーダによって、異なる粒度で複数のルックアップテーブル(LUT)を予め定義することと、
異なる粒度で前記複数のLUTに基づいて符号語に対応するQPオフセットをデコーダが取り出すように、前記エンコーダによって、前記符号語をシグナリングすることと、
をさらに含む、請求項9に記載の方法。
【請求項11】
エンコーダによって、異なる粒度で複数のルックアップテーブル(LUT)を予め定義することと、
符号語およびLUTステップサイズ差に基づいて前記符号語に対応するQPオフセットをデコーダが取り出すように、前記エンコーダによって、前記符号語および前記LUTステップサイズ差をシグナリングすることであって、前記LUTステップサイズ差が、第1のステップサイズと第2のステップサイズとの間の差であり、前記第1のステップサイズが、第1のLUTにおける2つの隣接したQPオフセットの間の差であり、前記第2のステップサイズが、第2のLUTにおける2つの隣接したQPオフセットの間の差であることと、
をさらに含む、請求項9に記載の方法。
【請求項12】
ニューラルネットワークを使用したビデオ符号化時の画像フィルタリング用の装置であって、
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサに結合され、前記1つまたは複数のプロセッサによって実行可能な命令を格納するように構成されたメモリと、を備え、
前記1つまたは複数のプロセッサが、前記命令を実行すると、請求項1から11のいずれかに記載の方法を行うように構成される、
装置。
【請求項13】
1つまたは複数のコンピュータプロセッサによって実行されたとき、請求項1から11のいずれかに記載の方法を前記1つまたは複数のコンピュータプロセッサに行わせるコンピュータ実行可能命令を格納する、非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願への相互参照
本出願は、2021年7月5日に提出された「Neural Network based Image filtering for Video Coding」と題された米国仮出願第63/218,485号の優先権を主張し、その全体が、全ての目的のために参照により組み込まれる。
【0002】
本開示は、ビデオ符号化に関し、詳細には限定ではなく、ニューラルネットワークベースのモデルフィルタリングを使用したビデオ符号化についての方法および装置に関する。
【背景技術】
【0003】
ビデオデータを圧縮するために、様々なビデオ符号化技法が使用されることがある。ビデオ符号化は、1つまたは複数のビデオ符号化規格に従って行われる。例えば、ビデオ符号化規格は、バーサタイルビデオ符号化(VVC:Versatile Video Coding)、ジョイントエクスプロレーションテストモデル(JEM:joint exploration test model)、高効率ビデオ符号化(H.265/HEVC)、高度ビデオ符号化(H.264/AVC)、ムービングピクチャエキスパートグループ(MPEG)符号化などを含む。ビデオ符号化は、一般に、ビデオ画像またはシーケンスに存在する冗長性を活用した予測方法(例えば、インター予測、イントラ予測など)を利用する。ビデオ符号化技法の重要な目標は、ビデオ品質の劣化を回避または最小化しながら、より低いビットレートを使用した形式にビデオデータを圧縮することである。
【0004】
HEVC規格の第1のバージョンは、2013年10月に最終決定され、前世代のビデオ符号化規格H.264/MPEG AVCに比べて、およそ50%のビットレート削減または同等の知覚品質を提供している。HEVC規格は、前のものより著しい符号化改善をもたらすが、追加の符号化ツールを用いると、HEVCより優れた符号化効率が達成可能であるという証拠がある。これに基づいて、将来のビデオ符号化の標準化のための新しい符号化技術の探索作業をVCEGおよびMPEGの両方が開始した。符号化効率の実質的な強化を可能にし得る先進技術の重要な研究を始めるために、1つのジョイントビデオエクスプロレーションチーム(JVET:Joint Video Exploration Team)が、ITU-T VECGおよびISO/IEC MPEGによって2015年10月に結成された。HEVCテストモデル(HM)の上にいくつかの追加の符号化ツールを統合することによって、ジョイントエクスプロレーションモデル(JEM)と呼ばれる1つの基準ソフトウェアがJVETによって整備された。
【0005】
HEVCを超える能力を有するビデオ圧縮についての共同提案募集(CfP:joint call for proposals)が、ITU-TおよびISO/IECによって発行された。23件のCfPへの返答が受け取られ、第10回JVET会合において評価され、HEVCに対して約40%の圧縮効率の向上を示した。このような評価結果に基づいて、JVETは、バーサタイルビデオ符号化(VVC)と名付けられた新世代ビデオ符号化規格を開発するために新しいプロジェクトを立ち上げた。VVC規格の基準実装形態を示すために、VVCテストモデル(VTM:VVC test model)と呼ばれる1つの基準ソフトウェアコードベースが確立された。
【発明の概要】
【発明が解決しようとする課題】
【0006】
本開示は、ニューラルネットワークベースのモデルフィルタリングを使用することによる、ビデオ符号化効率の改善に関する技法の例を提供する。
【課題を解決するための手段】
【0007】
本開示の第1の態様によれば、ニューラルネットワークを使用したビデオ符号化時の画像フィルタリングの方法が提供される。方法は、1つまたは複数の量子化パラメータ(QP:quantization parameter)マップ(QpMap:QP map)チャネルにおける複数のQpMap値をニューラルネットワークにロードすることと、入力フレームに関する複数の入力QP値を調節することによってQPスケーリング因子を取得することと、ニューラルネットワークへの入力フレームをニューラルネットワークが学習およびフィルタリングするために、QPスケーリング因子に応じて、複数のQpMap値を調節することとを含む。
【0008】
本開示の第2の態様によれば、ニューラルネットワークを使用したビデオ符号化時の画像フィルタリング用の装置が提供される。装置は、1つまたは複数のプロセッサと、1つまたは複数のプロセッサに結合され、1つまたは複数のプロセッサによって実行可能な命令を格納するように構成されたメモリとを含む。さらに、1つまたは複数のプロセッサは、命令を実行すると、第1の態様による方法を行うように構成される。
【0009】
本開示の第3の態様によれば、1つまたは複数のコンピュータプロセッサによって実行されたとき、第2の態様による方法を1つまたは複数のコンピュータプロセッサに行わせるコンピュータ実行可能命令を格納する非一時的コンピュータ可読記憶媒体が提供される。
【0010】
添付の図面に例示された具体例を参照することによって、本開示の例のより詳細な説明が行われる。これらの図面が、一部の例を描写しているにすぎず、したがって、範囲を限定するものとみなされないことを前提として、添付の図面の使用を通じてさらに具体的かつ詳細に例が記載および説明される。
【図面の簡単な説明】
【0011】
【
図1】本開示の一部の実装形態に係るブロックベースのビデオエンコーダを例示したブロック図である。
【
図2】本開示の一部の実装形態に係るブロックベースのビデオデコーダを例示したブロック図である。
【
図3A】本開示の一部の実装形態に係る4分割木区分モードを例示した概略図である。
【
図3B】本開示の一部の実装形態に係る垂直2分割木区分モードを例示した概略図である。
【
図3C】本開示の一部の実装形態に係る水平2分割木区分モードを例示した概略図である。
【
図3D】本開示の一部の実装形態に係る垂直3分割木区分モードを例示した概略図である。
【
図3E】本開示の一部の実装形態に係る水平3分割木区分モードを例示した概略図である。
【
図4】本開示の一部の実装形態に係る入力層、出力層、および複数の隠れ層から成る簡単なFC-NNの図である。
【
図5A】本開示の一部の実装形態に係る2つの隠れ層を有するFC-NNの図である。
【
図5B】本開示の一部の実装形態に係る第2の隠れ層の次元が[W,H,深度]であるCNNの例の図である。
【
図6】本開示の一部の実装形態に係る入力画像に空間フィルタを適用する例の図である。
【
図7A】本開示の一部の実装形態に係る、アイデンティティコネクション(identity connection)によって残差ブロックの入力が要素毎に加算された残差ブロックをResNetの要素として含む単一画像超解像(ResNet)の図である。
【
図7B】本開示の一部の実装形態に係る残差モジュールを区画することによるResNetの例の図である。
【
図8A】本開示の一部の実装形態に係る全体的なアイデンティティコネクションを伴う複数の残差ブロックを含むResNetの例の図である。
【
図8B】本開示の一部の実装形態に係るビデオ符号化効率をさらに改善するために、複数の残差ブロックをスタックしたResNetの別の例の図である。
【
図8C】本開示の一部の実装形態に係る残差ブロックの出力を集約することによって単一画像超解像(SISR:single-image super-resolution)に取り組むResNetの別の例である。
【
図9】本開示の一部の実装形態に係るビデオ符号化のための画像フィルタリングを行うための典型的なニューラルネットワークベースのモデルの図である。
【
図10】本開示の一部の実装形態に係る領域ベースの特徴マップ解像度制御の図である。
【
図11】本開示の一部の実装形態に係る典型的なQP独立ニューラルネットワークモデルの図である。
【
図12A】本開示の一部の実装形態に係るQpMapチャネルとYUVチャネルとを並べたレイアウトの例の図である。
【
図12B】本開示の一部の実装形態に係るQpMapチャネルとYUVチャネルとを並べたレイアウトの例の図である。
【
図13】本開示の一部の実装形態に係るニューラルネットワークの領域2における彩度アップサンプリングの図である。
【
図14】本開示の一部の実装形態に係るニューラルネットワークの領域2におけるルマ・ダウンサンプリングの図である。
【
図15】本開示の一部の実装形態に係るニューラルネットワークの領域1におけるルマ・ダウンサンプリングの図である。
【
図16A】本開示の一部の実装形態に係るQpMapチャネルとYUVチャネルとを並べたレイアウトの別の例の図である。
【
図16B】本開示の一部の実装形態に係るQpMapチャネルとYUVチャネルとを並べたレイアウトの別の例の図である。
【
図17】本開示の一部の実装形態に係る残差ブロック毎に行われる要素毎のスケーリングの例の図である。
【
図18】本開示の一部の実装形態に係るニューラルネットワークを使用したビデオ符号化時の画像フィルタリング用の装置を例示したブロック図である。
【
図19】本開示の一部の実装形態に係るニューラルネットワークを使用したビデオ符号化時の画像フィルタリングのためのプロセスを例示したフローチャートである。
【
図20】本開示の一部の例に係るビデオブロックをエンコードおよびデコードするためのシステムを例示したブロック図である。
【発明を実施するための形態】
【0012】
特定の実装形態がここから詳細に参照され、その例が、添付の図面に例示されている。以下の詳細な説明では、本明細書で提示される主題の理解を助けるための数多くの非限定的な具体的詳細が説明されている。しかし、様々な代替形態が使用されてもよいことが当業者には明らかであろう。例えば、本明細書で提示される主題は、デジタルビデオ能力を有する多くのタイプの電子デバイスで実施可能であることが当業者には明らかであろう。
【0013】
「1つの実施形態」、「実施形態」、「例」、「一部の実施形態」、「一部の例」、または類似の言葉への本明細書全体の言及は、記載された特定の特徴、構造、または特性が、少なくとも1つの実施形態または例に含まれることを意味する。1つまたはいくつかの実施形態と共に記載された特徴、構造、要素、または特性は、別途明確に指定のない限り、他の実施形態にも適用可能である。
【0014】
本開示の全体において、用語「第1」、「第2」、「第3」などは全て、例えば、デバイス、構成要素、構成物、ステップなど、関連要素への言及のためだけの用語体系として使用され、別途明確に指定のない限り、どのような空間的または時系列的順序も示唆しない。例えば、「第1のデバイス」および「第2のデバイス」は、2つの別々に形成されたデバイス、または、同じデバイスの2つの部品、構成要素、もしくは動作可能な状態を指すことがあり、任意に名前を付けられることもある。
【0015】
用語「モジュール」、「サブモジュール」、「回路」、「サブ回路」、「回路機器」、「サブ回路機器」、「ユニット」、または「サブユニット」は、1つまたは複数のプロセッサによって実行可能なコードまたは命令を格納するメモリ(共有、専用、またはグループ)を含んでもよい。モジュールは、格納されたコードまたは命令の有無に関わらず、1つまたは複数の回路を含んでもよい。モジュールまたは回路は、直接的または間接的に接続された1つまたは複数の構成要素を含んでもよい。これらの構成要素は、物理的に取り付けられてもそうでなくてもよく、または、互いに隣接して置かれてもそうでなくてもよい。
【0016】
本明細書で使用されるように、用語「場合」または「とき」は、文脈に応じて、「と同時に」または「応答して」を意味するものと理解されてもよい。これらの用語は、請求項に現れた場合、関連した限定または特徴が条件付きまたは任意選択であることを示さないこともある。例えば、方法は、i)条件Xが存在するときまたは場合、機能またはアクションX’が行われる、およびii)条件Yが存在するときまたは場合、機能またはアクションY’が行われる、というステップを含んでもよい。方法は、機能またはアクションX’を行う能力、および機能またはアクションY’を行う能力の両方で行われてもよい。したがって、機能X’およびY’は、方法の多重実行時に、異なる時間に、両方行われてもよい。
【0017】
ユニットまたはモジュールは、純粋にソフトウェアによって、純粋にハードウェアによって、またはハードウェアとソフトウェアとの組合せによって実行されてもよい。純粋なソフトウェア実装形態では、例えば、ユニットまたはモジュールは、特定の機能を行うように、直接的または間接的に一緒にリンクされた、機能的に関係のあるコードブロックまたはソフトウェア構成要素を含んでもよい。
【0018】
図20は、本開示の一部の実装形態に係る、ビデオブロックを並列にエンコードおよびデコードするための例示的なシステム10を例示したブロック図である。
図1に示されているように、システム10は、宛先デバイス14によって後でデコードされることになるビデオデータを生成およびエンコードするソースデバイス12を含む。ソースデバイス12および宛先デバイス14は、デスクトップまたはラップトップ・コンピュータ、タブレット・コンピュータ、スマートフォン、セット・トップ・ボックス、デジタル・テレビ、カメラ、ディスプレイデバイス、デジタル・メディア・プレーヤ、ビデオ・ゲーム機、ビデオ・ストリーミング・デバイスなどを含む多種多様な電子デバイスのいずれかを含んでもよい。一部の実装形態では、ソースデバイス12および宛先デバイス14には、ワイヤレス通信能力が装備される。
【0019】
一部の実装形態では、宛先デバイス14は、デコードされることになるエンコード済みビデオデータを、リンク16を介して受け取ってもよい。リンク16は、エンコード済みビデオデータをソースデバイス12から宛先デバイス14に移す能力がある任意のタイプの通信媒体またはデバイスを含んでもよい。1つの例では、リンク16は、ソースデバイス12が、エンコード済みビデオデータを直接的に宛先デバイス14にリアルタイムに伝送できるようにするための、通信媒体を含んでもよい。エンコード済みビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス14に伝送されてもよい。通信媒体は、無線周波数(RF)スペクトル、または1つもしくは複数の物理伝送回線など、任意のワイヤレスまたは有線通信媒体を含んでもよい。通信媒体は、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、または、インターネットなどのグローバル・ネットワークなど、パケット・ベースのネットワークの一部を形成してもよい。通信媒体は、ルータ、スイッチ、基地局、または、ソースデバイス12から宛先デバイス14への通信を容易にするのに有益であり得る任意の他の機器を含んでもよい。
【0020】
一部の他の実装形態では、エンコード済みビデオデータは、出力インターフェース22から記憶デバイス32に伝送されてもよい。その後、記憶デバイス32内のエンコード済みビデオデータは、入力インターフェース28を介して宛先デバイス14によってアクセスされてもよい。記憶デバイス32は、ハード・ドライブ、ブルーレイ・ディスク、デジタル・バーサタイル・ディスク(DVD)、コンパクト・ディスク・リード・オンリ・メモリ(CD-ROM)、フラッシュ・メモリ、揮発性もしくは不揮発性メモリ、または、エンコード済みビデオデータを格納するための任意の他の適切なデジタル・ストレージ媒体など、様々な分散型のまたはローカルにアクセスされるデータ・ストレージ媒体のいずれかを含んでもよい。さらなる例では、記憶デバイス32は、ソースデバイス12によって生成されたエンコード済みビデオデータを保持し得るファイル・サーバまたは別の中間ストレージデバイスに対応してもよい。宛先デバイス14は、ストリーミングまたはダウンロードを介して記憶デバイス32からの格納済みビデオデータにアクセスしてもよい。ファイル・サーバは、エンコード済みビデオデータを格納し、エンコード済みビデオデータを宛先デバイス14に伝送する能力がある、任意のタイプのコンピュータでもよい。例示的なファイル・サーバは、ウェブ・サーバ(例えば、ウェブサイト用)、ファイル・トランスファ・プロトコル(FTP)サーバ、ネットワーク接続ストレージ(NAS)デバイス、またはローカル・ディスク・ドライブを含む。宛先デバイス14は、ファイル・サーバに格納されたエンコード済みビデオデータにアクセスするのに適した、ワイヤレス・チャネル(例えば、ワイヤレス・フィデリティ(Wi-Fi)接続)、有線接続(例えば、デジタル・サブスクライバ・ライン(DSL)、ケーブル・モデム等)、または、両方の組合せを含む、任意の標準データ接続を通じて、エンコード済みビデオデータにアクセスしてもよい。記憶デバイス32からのエンコード済みビデオデータの伝送は、ストリーミング伝送、ダウンロード伝送、または両方の組合せでもよい。
【0021】
図20に示されているように、ソースデバイス12は、ビデオソース18、ビデオエンコーダ20、および出力インターフェース22を含む。ビデオソース18は、例えばビデオ・カメラといったビデオ・キャプチャ・デバイス、以前にキャプチャされたビデオを含むビデオ・アーカイブ、ビデオコンテンツ・プロバイダからのビデオを受け取るためのビデオ・フィード・インターフェース、および/もしくは、コンピュータ・グラフィックス・データをソース・ビデオとして生成するためのコンピュータ・グラフィックス・システムなどのソース、または、このようなソースの組合せを含んでもよい。1つの例として、ビデオソース18がセキュリティ監視システムのビデオ・カメラである場合、ソースデバイス12および宛先デバイス14は、カメラフォンまたはビデオフォンを形成してもよい。しかし、本出願に記載の実装形態は、一般にビデオ符号化に適用可能でもよく、ワイヤレスおよび/または有線アプリケーションに適用されてもよい。
【0022】
キャプチャされた、事前キャプチャされた、またはコンピュータ生成されたビデオは、ビデオエンコーダ20によってエンコードされてもよい。エンコード済みビデオデータは、ソースデバイス12の出力インターフェース22を介して宛先デバイス14に直接的に伝送されてもよい。エンコード済みビデオデータは、さらに(または代替として)、デコードおよび/またはプレイバック用に、宛先デバイス14または他のデバイスによる後のアクセスのために、記憶デバイス32に格納されてもよい。出力インターフェース22は、モデムおよび/またはトランスミッタをさらに含んでもよい。
【0023】
宛先デバイス14は、入力インターフェース28、ビデオデコーダ30、およびディスプレイデバイス34を含む。入力インターフェース28は、レシーバおよび/またはモデムを含み、リンク16を介してエンコード済みビデオデータを受け取ってもよい。リンク16を介して通信されるか、記憶デバイス32に提供される、エンコード済みビデオデータは、ビデオデータのデコード時にビデオデコーダ30によって使用するための、ビデオエンコーダ20によって生成された様々な構文要素を含んでもよい。このような構文要素は、通信媒体で伝送された、ストレージ媒体に格納された、またはファイル・サーバに格納された、エンコード済みビデオデータ内に含まれてもよい。
【0024】
一部の実装形態では、宛先デバイス14は、ディスプレイデバイス34を含んでもよく、ディスプレイデバイス34は、宛先デバイス14と通信するように構成された統合型ディスプレイデバイスおよび外部ディスプレイデバイスであることが可能である。ディスプレイデバイス34は、デコード済みビデオデータをユーザに表示し、液晶ディスプレイ(LCD)、プラズマ・ディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを含んでもよい。
【0025】
ビデオエンコーダ20およびビデオデコーダ30は、VVC、HEVC、MPEG-4、Part10、AVCなどの専用もしくは業界規格、またはこのような規格の拡張版に従って動作してもよい。本出願は、特定のビデオ・エンコーディング/デコーディング規格に限定されず、他のビデオ・エンコーディング/デコーディング規格に適用可能でもよいことを理解されたい。ソースデバイス12のビデオエンコーダ20は、これらの現在または将来の規格のいずれかに従ってビデオデータをエンコードするように構成されてもよいことが一般に想定される。同様に、宛先デバイス14のビデオデコーダ30は、これらの現在または将来の規格のいずれかに従ってビデオデータをデコードするように構成されてもよいことも一般に想定される。
【0026】
ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、ディスクリート・ロジック、ソフトウェア、ハードウェア、ファームウェア、または任意のその組合せなど、様々な適切なエンコーダおよび/またはデコーダ回路機器のいずれかとして実行されてもよい。部分的にソフトウェアで実行されるとき、電子デバイスは、適切な非一時的コンピュータ可読媒体にソフトウェア用の命令を格納し、本開示で開示されたビデオ・エンコーディング/デコーディング動作を行うために、1つまたは複数のプロセッサを使用してハードウェアで命令を実行してもよい。ビデオエンコーダ20およびビデオデコーダ30のそれぞれは、1つまたは複数のエンコーダまたはデコーダに含まれてもよく、これらのいずれかは、それぞれのデバイスにおいて、組み合わされたエンコーダ/デコーダ(コーデック)の一部として統合されてもよい。
【0027】
HEVCのように、VVCは、ブロックベースのハイブリッドビデオ符号化フレームワーク上に構築されている。
図1は、本開示の一部の実装形態に係る、ブロックベースのビデオエンコーダを例示したブロック図である。エンコーダ100において、符号化ユニット(CU:coding unit)と呼ばれるブロック毎に、入力映像信号が処理される。エンコーダ100は、
図20に示されているようなビデオエンコーダ20でもよい。VTM-1.0では、CUは、128×128ピクセルまでであることが可能である。しかし、4分木だけに基づいてブロックを分割するHEVCとは異なり、VVCでは、4/2/3分木に基づく様々な局所特性に適合させるために、1つの符号化ツリーユニット(CTU:coding tree unit)がCUに分けられる。追加として、HEVCにおける複数の分割ユニット・タイプの概念は廃止され、すなわち、CU、予測ユニット(PU)、および変換ユニット(TU)の区別は、VVCにはもはや存在せず、代わりに、各CUがさらに分割されずに、予測および変換両方のための基本ユニットとして常に使用される。複数種類の木構造では、4分木構造によって、1つのCTUが最初に分割される。次いで、2および3分木構造によって、各4分木の葉ノードが、さらに分割されることが可能である。
【0028】
【0029】
所与のビデオブロック毎に、空間予測および/または時間予測が行われてもよい。空間予測(または「イントラ予測」)は、同じビデオピクチャ/スライス内の既に符号化済みの隣のブロックのサンプル(基準サンプルと呼ばれる)からのピクセルを使用して、現在のビデオブロックを予測する。空間予測は、映像信号に内在する空間的冗長性を低減させる。時間予測(「インター予測」または「動き補償予測」とも呼ばれる)は、既に符号化済みのビデオピクチャから再構築されたピクセルを使用して、現在のビデオブロックを予測する。時間予測は、映像信号に内在する時間的冗長性を低減させる。所与のCUのための時間予測信号は、通常、現在のCUとその時間基準との間の動きの量および方向を示す1つまたは複数の動きベクトル(MV)によってシグナリングされる。また、複数の基準ピクチャがサポートされる場合、1つの基準ピクチャ・インデックスが追加として送られ、基準ピクチャ・インデックスは、基準ピクチャストア内のどの基準ピクチャから時間予測信号が来たかを識別するために使用される。
【0030】
空間および/または時間予測の後、エンコーダ100のイントラ/インター・モード決定回路機器121が、例えば、レート歪み最適化方法に基づいて、最善の予測モードを選ぶ。ブロック予測子120は、次いで、現在のビデオブロックから減算され、結果として生じた予測残差は、変換回路機器102および量子化回路機器104を使用して、相関除去される。結果として生じた量子化残差係数は、逆量子化回路機器116によって逆量子化され、逆変換回路機器118によって逆変換されて、再構築された残差を形成し、再構築された残差は、次いで、予測ブロックに再び加算されて、CUの再構築された信号を形成する。さらに、再構築されたCUが、ピクチャバッファ117の基準ピクチャストアに置かれ、将来のビデオブロックを符号化するために使用される前に、デブロッキングフィルタ、サンプル・アダプティブ・オフセット(SAO)、および/またはアダプティブループ内フィルタ(ALF)などのループ内フィルタリング115が、再構築されたCUに適用されてもよい。出力ビデオ・ビットストリーム114を形成するために、符号化モード(インターまたはイントラ)、予測モード情報、動き情報、および量子化された残差係数が、ビット・ストリーミングを形成するためにさらに圧縮されパッキングされるように、エントロピ符号化ユニット106に全て送られる。
【0031】
例えば、デブロッキングフィルタが、AVC、HEVC、および今現在のバージョンのVVCで利用可能である。HEVCでは、符号化効率をさらに改善するために、SAOと呼ばれる追加のループ内フィルタが定義される。VVC規格の今現在のバージョンでは、ALFと呼ばれるさらに別のループ内フィルタが活発に調査されており、最終的な規格に含まれる可能性が高い。
【0032】
これらのループ内フィルタ動作は任意選択である。これらの動作を行うことは、符号化効率および視覚品質を改善するのに役立つ。これらは、さらに、計算の複雑性を省くために、エンコーダ100によって行われた判定としてオフにされてもよい。
【0033】
イントラ予測は、通常、フィルタリングされていない再構築済みピクセルに基づき、その一方で、インター予測は、これらのフィルタオプションがエンコーダ100によってオンにされた場合、フィルタリングされた再構築済みピクセルに基づくことに留意されたい。
【0034】
図2は、多くのビデオ符号化規格と併用して使用され得るブロックベースのビデオデコーダ200を例示したブロック図である。このデコーダ200は、
図1のエンコーダ100に常駐している再構築関連セクションに類似のものである。ブロックベースのビデオデコーダ200は、
図20に示されているようなビデオデコーダ30でもよい。デコーダ200では、入ってくるビデオ・ビットストリーム201は、量子化係数レベルおよび予測関連情報を導出するために、エントロピ復号202を通じて最初にデコードされる。量子化係数レベルは、次いで、再構築済み予測残差を取得するために逆量子化204および逆変換206を通じて処理される。イントラ/インター・モード選択器212で実行されるブロック予測子メカニズムは、デコードされた予測情報に基づいて、イントラ予測208または動き補償210を行うように構成される。加算器214を使用して、逆変換206からの再構築済み予測残差と、ブロック予測子メカニズムによって生成された予測的出力とを合計することによって、フィルタリングされていない再構築済みピクセルのセットが取得される。
【0035】
再構築済みブロックは、ループ内フィルタ209をさらに通過してもよく、その後、基準ピクチャストアとして機能するピクチャバッファ213に格納される。ピクチャバッファ213内の再構築済みビデオは、ディスプレイデバイスを駆動するために送られ、また将来のビデオブロックを予測するために使用されてもよい。ループ内フィルタ209がオンにされている状況では、これらの再構築済みピクセルに対してフィルタリング動作が行われ、最終的な再構築済みビデオ出力222を導出する。
【0036】
本開示は、上述のビデオ符号化規格または技法の画像フィルタリング・デザインを改善するためのものである。本開示で提案されるフィルタリング方法は、ニューラルネットワークベースのものであり、例えば、デブロッキングフィルタとサンプル・アダプティブ・オフセット(SAO)との間の、ループ内フィルタリングの一部として、または、現在のビデオ符号化技法を改善するためのループ後フィルタリングの一部として、または、現在のビデオ符号化技法の後の処理後フィルタリングの一部として適用されてもよい。
【0037】
例えば、完全接続ニューラルネットワーク(FC-NN:fully connected neural network)、畳み込みニューラルネットワーク(CNN:convolutional neural network)、および長短期記憶ネットワーク(LSTM)といった、ニューラルネットワーク技法は、コンピュータ・ビジョンおよびビデオ理解を含む多くの研究分野において著しい成功を既に収めている。
【0038】
完全接続ニューラルネットワーク(FC-NN)
図4は、本開示の一部の実装形態に係る、入力層、出力層、および複数の隠れ層から成る簡単なFC-NNを例示している。第kの層では、出力f
k(x
k-1,W
k,B
k)は、
【数1】
【数2】
によって生成され、ここで、x
k-1∈R
Mは、第(k-1)の層の出力であり、W
k∈R
M*NおよびB
k∈R
Nは、第kの層における重みおよびバイアスである。δ(・)は活性化関数であり、例えば、等式(3)に定義されているような、正規化線形ユニット(ReLU)関数である。
【数3】
したがって、K層FC-NNの一般的な形式は、
【数4】
のように書かれる。
【0039】
普遍的近似仮説および等式(4)によれば、任意の連続関数g(x)およびいくつかのε>0を仮定した場合、∀x、|g(x)-f(x)|<εであるような、例えばReLUといった、非線形の合理的選択を伴うニューラルネットワークf(x)が存在する。したがって、表面下の説明可能な特徴を抽出するために、隠れた変数を有するモデルを模倣するための近似器としてニューラルネットワークを多くの実証的研究が応用した。例えば、画像認識に適用すると、FC-NNは、例えば、エッジ、テクスチャ、幾何学形状、およびオブジェクトといった、単一のピクセルだけでなく、ますます深く複雑なサブ構造を理解するシステムを研究者が構築するのに役立つ。
【0040】
畳み込みニューラルネットワーク(CNN)
図5Aは、本開示の一部の実装形態に係る、2つの隠れ層を有するFC-NNを例示している。CNNは、画像またはビデオ・アプリケーションのための広く普及したニューラルネットワーク・アーキテクチャであり、
図5Aに示されているようなFC-NNに非常に類似しており、重みおよびバイアス・メトリックを含む。CNNは、ニューラルネットワークの3Dバージョンとみなされることが可能である。
図5Bは、本開示の一部の実装形態に係る、第2の隠れ層の次元が[W,H,深度]であるCNNの例を例示している。
図5Bでは、CNNを形成するためにニューロンが3次元構造(幅、高さ、および深度)で配置され、第2の隠れ層が視覚化されている。この例では、入力層が、入力画像またはビデオフレームを保持し、したがって、その幅および高さは、入力データと同じである。画像またはビデオ・アプリケーションに適用するために、CNN内の各ニューロンは、その入力と共に整列された拡張された深度を有する空間フィルタ要素であり、例えば、入力画像に3つの色成分がある場合、深度は3である。
【0041】
図6は、本開示の一部の実装形態に係る、入力画像に空間フィルタを適用する例を例示している。
図6に示されているように、CNN内の基本要素の次元は、[Filter
width,Filter
height,Input
depth,Output
depth]と定義され、この例では、[5,5,3,4]にセットされている。各空間フィルタは、入力画像に対して5*5*3の重みを有する2次元空間畳み込みを行う。入力画像は、64×64×3画像でもよい。次いで、4つの畳み込み結果が出力される。したがって、追加の2つのピクセルで境界を埋めた場合、フィルタリング結果の次元は、[64+4,64+4,4]である。
【0042】
残差ネットワーク(ResNet:Residual Network)
画像分類では、正確度は、ニューラルネットワークの深度が増加するとき、素早く飽和し悪化する。より具体的に言えば、勾配はディープ・ネットワークに沿って、および終端のゼロ勾配に向かって徐々に消えるので、ディープ・ニューラルネットワークにより多くの層を追加すると、訓練誤差がより大きくなる。したがって、残差ブロックで構成されたResNetは、アイデンティティコネクションを導入することによって悪化問題を解決することになる。
【0043】
図7Aは、本開示の一部の実装形態に係る、アイデンティティコネクションによって残差ブロックの入力が要素毎に加算された残差ブロックをResNetの要素として含むResNetを例示している。
図7Aに示されているように、ResNetの基本モジュールは、残差ブロックおよびアイデンティティコネクションから成る。普遍的近似仮説によれば、入力xを仮定すると、残差ブロック内の活性化関数を有する重み付け層は、出力H(x)=F(x)+xではなく、隠れた関数F(x)を近似する。
【0044】
非線形多層ニューラルネットワークをスタックすることによって、残差ブロックは、入力画像の局所特性を表す特徴を探査する。追加のパラメータも計算の複雑性も導入することなく、アイデンティティコネクションは、
図7Aに示されているような1つまたは複数の非線形重み付け層を飛ばすことによって、深層学習ネットワークを訓練可能にすることが証明される。重み付け層を飛ばすと、残差層の微分出力は、
【数5】
のように、記載されることが可能である。
【0045】
【0046】
ResNetの変形形態
図8A~
図8Bでは、単一画像超解像(SISR)の回復画像品質を改善し、画像分類の正確度を向上させるために、ResNetのいくつかの変形形態が提案された。
図8Aは、本開示の一部の実装形態に係る、全体的なアイデンティティコネクションを伴う複数の残差ブロックを含むResNetの例を例示している。
図8Aでは、アップサンプリングされた画像の視覚品質を強化するために、ResNetの変形形態が提案されている。具体的には、訓練手順の統合を容易にするために、第1の残差ブロックの入力から最後の残差ブロックの出力への全体的なアイデンティティコネクションが適用される。
【0047】
図8Bは、本開示の一部の実装形態に係る、ビデオ符号化効率をさらに改善するために、複数の残差ブロックをスタックしたResNetの別の例を例示している。各残差ブロックは、連結動作によって独自の入力を次のユニットに直接的に伝搬させる。言い換えれば、恒等的接続(identical connection)を通じてマルチレベル情報が流れることが可能なので、各中間ブロックがその前のユニットから多階層型情報を受け取ることができる。
図8Bの各残差ブロックのパラメータは、連結動作により、層の数と共に線形的に増加する。
【0048】
図8A~
図8Bでは、残差情報が後のモジュールに伝搬可能になる前に、残差特徴は、1つまたはいくつかのモジュールを通過しなければならない。アイデンティティコネクションにより、これらの残差特徴は、特定の層において恒等特徴と素早く結合され、後続のモジュールへの伝搬を停止可能である。したがって、前の2つの変形形態における残差特徴は局所的に限定され、性能が劣化する。
【0049】
図8Cは、本開示の一部の実装形態に係る、残差ブロックの出力を集約することによって単一画像超解像(SISR)に取り組むResNetの別の例を例示している。
図8Cでは、最後の残差ブロックの出力は、前の3つのモジュールの出力全てと連結される。第1の残差ブロックの入力との要素毎の加算に適用される前に、畳み込み動作によって、連結された階層的特徴が融合される。最初の2つの変形形態とは異なり、集約されたResNetは、階層型情報が後続のブロックに伝搬可能であるように、非局所的特徴を最後の残差モジュールに適用可能にし、より差別的な方式で特徴表現を達成する。
【0050】
本開示では、現在のハイブリッドビデオ符号化の符号化効率をさらに改善するために、ニューラルネットワークベースの画像フィルタリングに関する方法および装置が提案される。提案される方法および装置は、例えば、
図2に示されているような、デブロッキングフィルタとサンプル・アダプティブ・オフセット(SAO)との間の、ループ内フィルタリングの一部として、または、現在のビデオ符号化技法を改善するためのループ後フィルタリングとして、または、現在のビデオ符号化技法の後の処理後フィルタリングとして適用されてもよい。
【0051】
図9は、本開示の一部の実装形態に係る、ビデオ符号化のための画像フィルタリングを行うための典型的なニューラルネットワークベースのモデルを例示している。YUV成分は、ニューラルネットワークモデルに並列に提供されてもよい。YUV成分のこの並列入力は、処理遅延を低減させることだけでなく、例えば、クロス・コンポーネント・フィルタリングおよび/またはルマ誘導彩度フィルタリング(luma guided chroma filtering)といった、並べられたYUV情報間の相関関係をニューラルネットワークモデルが学習することにも有益な場合がある。このニューラルネットワークモデルベースフィルタのオン/オフ制御は、制御粒度とシグナリングオーバヘッドとの間の妥当なトレードオフのために、符号化ツリーユニット(CTU)レベルで行われてもよい。YUV成分のためのニューラルネットワークベースフィルタのオン/オフ制御は、同じまたは異なる粒度で行われてもよい。例えば、Y成分のためのこのニューラルネットワークモデルベースフィルタのオン/オフ制御は、CTUレベルで行われてもよく、その一方で、UおよびV成分のためのオン/オフ制御は、例えば、CTUレベル・フラグ・シグナリングオーバヘッドを省くために、フレームレベルで行われてもよい。
【0052】
特徴マップ解像度整列
図9に示されているようなニューラルネットワークモデルフィルタにCTUレベルのYUV情報が提供されたとき、YUV CTUバッチの解像度は、同じでもそうでなくてもよい。例えば、エンコードされたビデオコンテンツがYUV420の場合、3つの並べられたYUVパッチの解像度は、同じでなくてもよい。このケースでは、解像度整列が必要である。より簡単な例証のために、ビデオコンテンツがYUV420であることを、本開示において提案される方法およびデバイス全てが想定する。提案される方法は、例えば、YUV422、YUV444といった、異なるコンテンツ・フォーマットのために、容易に拡張されてもよい。
【0053】
一部の例では、解像度整列は、YUVパッチがニューラルネットワークに入る前に行われてもよい。
【0054】
一部の例では、1つの128×128のYパッチが、1つの64×64パッチまたは4つの64×64パッチにダウンサンプリングされてもよい。4つの64×64パッチが生成されたとき、元の128×128パッチの情報全てが、4つのパッチにおいて保持および分散されてもよい。元の128×128パッチの情報分散のために使用される方法は、分割ベースのものでもよく、例えば、1つの64×64パッチが、元の128×128パッチの左上からのものでもよく、別の64×64パッチが、元の128×128パッチの右上からのものでもよい。代替として、元の128×128パッチの情報分散のために使用される方法は、インターリーブ・ベースのものでもよく、例えば、元の128×128パッチの全ての4つの隣接したサンプルが、4つの64×64パッチにおいて均一に分散される。
【0055】
一部の例では、1つの64×64のUまたはVパッチが、1つの128×128パッチにアップサンプリングされてもよい。
【0056】
一部の例では、解像度整列は、YUVパッチがニューラルネットワークに入った後に行われてもよい。1つの例では、Y入力解像度は、UV入力にマッチするように減少されてもよい。これを達成するための1つの方式は、UV入力に比べて2倍のストライド・サイズの畳み込み層を使用することである。この例では、ニューラルネットワークの終わりに、モデルの出力が入力と同じ解像度を有するように、Yコンテンツをスケールアップするための解像度増加層が必要になる。これを達成するための1つの方式は、ピクセルシャッフル層を使用して、Y解像度をスケールアップすることである。別の例では、UV入力解像度は、Y入力にマッチするように増加されてもよい。達成するための1つの方式は、ピクセルシャッフル層を使用して、ニューラルネットワークの始めにUVをスケールアップし、次いで、ニューラルネットワークの終わりにスケールダウンすることである。
【0057】
特徴マップ解像度制御
特徴マップ解像度は、ニューラルネットワーク処理オーバヘッドに比例的に影響するが、ニューラルネットワークの性能には比例的に影響しないことがある。モデルフィルタリングの計算複雑性を制御するために、例えば、残差ブロックの数、残差ブロック毎の畳み込み層の入力および出力チャネルの数といった、異なるソリューションが利用可能になることがある。畳み込み層における特徴マップの解像度制御は、計算複雑性を制御するための別の効果的なオプションである。
【0058】
図10は、本開示の一部の実装形態に係る、領域ベースの特徴マップ解像度制御を例示している。
図10に示されているように、(領域ベースの特徴マップ解像度制御と呼ばれることが可能な)計算複雑性制御のための特徴マップ解像度を調節するために、3つの領域が使用されてもよい。領域1では、入力YUVパッチの解像度が決定され、対応するスケールアップ/ダウン動作が行われる。例えば、アップ/ダウンサンプリング方法が「特徴マップ解像度整列」において導入された。例が、
図15に示されている。
【0059】
図15は、本開示の一部の実装形態に係る、ニューラルネットワークの領域1におけるルマ・ダウンサンプリングを例示している。
図15に示されているように、ニューラルネットワークに入る前の領域1において、元のYパッチが、4つのダウンサンプリングされたYパッチにダウンサンプリングされる。例えば、1つの128×128のYパッチが、4つの64×64のYパッチにダウンサンプリングされてもよい。ニューラルネットワークの処理が終わった後、例えばアップサンプルといった、逆の動作が領域1において行われる。
図15に示されているように、ニューラルネットワークによって出力された4つのダウンサンプリングされたYパッチが、1つの元のYパッチにアップサンプリングされる。例えば、4つの64×64のYパッチが、1つの128×128のYパッチにアップサンプリングされてもよい。
【0060】
領域2では入力YUVパッチの解像度が決定され、対応するスケールアップ/ダウン動作が、YUV連結の前に行われる。この領域はニューラルネットワークの始めにあるので、スケールダウン動作が行われた場合、入力情報が著しく失われることがあり、モデル訓練後の全体性能が損なわれる場合がある。2つの例がそれぞれ、
図13~
図14に示されている。
【0061】
図13は、本開示の一部の実装形態に係る、ニューラルネットワークの領域2における彩度アップサンプリングを例示している。
図13に示されているように、UVパッチは、ニューラルネットワークに入った後、ニューラルネットワークの領域2における対応する畳み込みブロックまたは層によってスケールアップされる。
図13に示されているように、領域3における最後の残差ブロックによって出力された対応するUVパッチに対して、例えばスケーリング-ダウンといった、逆の動作が行われる。
【0062】
図14は、本開示の一部の実装形態に係る、ニューラルネットワークの領域2におけるルマ・ダウンサンプリングを例示している。
図14に示されているように、Yパッチは、ニューラルネットワークに入った後、ニューラルネットワークの領域2における対応する畳み込みブロックまたは層によってスケールダウンされる。
図14に示されているように、領域3における最後の残差ブロックによって出力された対応するYパッチに対して、例えばスケーリング-アップといった、逆の動作が行われる。
【0063】
領域3では、入力YUVパッチの解像度が、始めの残差ブロックのうちの1つにおいて、スケールアップ/ダウンされてもよく、後の残差ブロックにおいて、例えばスケールダウン/アップといった、逆の動作が行われてもよい。この領域はYUV連結の後にあるので、スケールダウン動作が行われた場合、情報学習に十分な深度を有する始めの畳み込み層でほとんどの入力情報が既にキャプチャまたは学習されているので、入力情報が領域2ほど著しく失われることはない。例えば、領域2の後、128×128にスケールアップされたUVを有するYUVコンテンツの3つのチャネルが生成される。Y入力情報は、連結の前に、始めの畳み込み層において既に学習/抽出され、分散/重複されてもよい。代替として、Y入力情報特徴を学習/抽出するのに十分なチャネルを第1の残差ブロックが有し得るので、第1の残差ブロックの後にスケールダウン動作が行われてもよい。
【0064】
QP独立ニューラルネットワークモデル
提案されるニューラルネットワークモデルフィルタリングのより簡単な展開を容易にするために、ニューラルネットワークモデルから入力量子化パラメータ(QP)依存関係を除去することが望ましい。したがって、ビデオ符号化のために使用される入力QPとは無関係の画像フィルタリングのために、単一のニューラルネットワークモデルが使用されてもよい。
【0065】
図11は、本開示の一部の実装形態に係る、典型的なQP独立ニューラルネットワークモデルを例示している。典型的なビデオ符号化システムの場合、予測残差量子化/量子化解除のための量子化ステップサイズを計算するために、QP値が使用される。したがって、異なるQP値が、ビデオ品質の異なるレベルを表す。異なる入力QPおよび品質を有する異なるビデオフレームを取り扱うために、QpMapがニューラルネットワークに提供される。QpMapは、ビデオ品質の異なるレベル(例えば、入力Qp)を含み得る提供されたYUV入力を適応的にフィルタリングするために、ニューラルネットワークが学習するべき別の次元の情報を追加する。HEVC、VVC、またはAVSなどの、一部の共通ビデオ符号化規格では、入力Qp値が予測残差量子化のためのQpステップサイズにコンバートされるときに、予め定義された関係(例えば、Q
step=2
(QP-4)/6)が典型的に使用される。より簡単な例証として、下記のように、提案される着想を導入するために、入力Qp値またはQpステップサイズ値を有するか含むQpMapが使用される。
【0066】
QpMap値のダイナミックレンジ制御
図11は、本開示の一部の実装形態に係る、ビデオ符号化のための画像フィルタリングを行うための典型的なQP独立ニューラルネットワークベースのモデルを例示している。QpMapは、YUV入力チャネルと連結される。各QpMapチャネルは、異なる座標に同じ値を有してもよい。また、各QpMapチャネルは、関連付けられた入力チャネルと同じ解像度を有してもよい。つまり、Y入力用のQpMapチャネルは、Y入力チャネルと同じ解像度を有し、QpMapの各値は、Y入力チャネル内のサンプル全てが同じQp値を有することを示す。
【0067】
QpMap値を生成するために、ビデオフレーム/画像毎の入力QP値が直接的に使用されてもよい。代替として、ビデオフレーム/画像毎の入力QP値は、QpMap値を生成するために、例えば、Qstep=2(QP-4)/6といった、Qpステップサイズに最初にコンバートされてもよい。本開示の一部の例では、QpステップサイズQstepは、QPstepと呼ばれることもある。
【0068】
入力QPまたはQpステップサイズからQpMap値が生成されたとき、QpMap値のダイナミックレンジは、以下の3つの意味で妥当であることが望ましい。
【0069】
第1に、範囲は十分大きくあるべきであり、その結果、異なる入力QpまたはQpステップサイズを表す/差別するために異なるQpMap値が容易に使用可能になる。言い換えれば、2つの入力Qp値を仮定すると、対応するQpMap値は互いに近くなるべきではない。
【0070】
第2に、範囲は十分バランスをとられるべきであり、その結果、異なるQpMap値が範囲の異なる位置に均一に分散可能になる。
【0071】
第3に、範囲は関連付けられたYUVサンプル値のダイナミックレンジにマッチするべきである。例えば、Pmaxを除算することによってYUVサンプル値が[0,1]に正規化され、Pmax=2bitdepth-1である場合、QpMap値は類似の範囲内でも同様に正規化されるはずである。
【0072】
したがって、QpMapがダイナミックレンジにマッピングされたとき、最大または最小の入力QpまたはQpステップサイズを除算因子として使用しないことが提案され、そうでない場合、除算は、生成されたQpMap値をダイナミックレンジの一方の側に押しやることになり、これは、QpMap値のダイナミックレンジを低減させることに等しい。
【0073】
例えば、(最大入力Qp63に対応する)最大QpStepサイズ912を使用する場合、理論上のダイナミックレンジは(0,1)であるが、入力Qpステップサイズが典型的に(入力Qp37に対応する)45未満の場合、効果的なダイナミックレンジは(0,0.05)にすぎず、これは、ほとんどのケースにおいて、QpMap値が0に近いことを意味する。
【0074】
その代わりに、中央/中間入力QpまたはQpステップサイズを使用して正規化を行うことが提案され、したがって、生成されたQpMap値は、例えば[0.5,1.5]といった、ダイナミックレンジのどちらかの側に分散され得る。1つの例示的な選択された中央/中間入力Qp値はQp32であり、次いで、QP対Qstep(Qpステップサイズ)等式(例えば、Qstep=2(QP-4)/6)に従って、コンバートされたQpステップサイズは、およそ25.5である。したがって、任意の入力Qp値が最初に対応するQpステップサイズにコンバートされ、次いで、選択されたQpステップサイズ25.5による除算が続く。
【0075】
正規化除算のためのこの選択された入力QpまたはQpステップサイズは、実際の入力Qp範囲に基づいて柔軟に決定されてもよい。例えば、実際のQp範囲[22,42]の場合、実際のQp範囲の低い方のQpの正規化された値がゼロにあまり近づかず、その一方で、高い方のQpの正規化された値が1.0をそれほど超えないように、Qp37またはその対応するQpステップサイズが除算因子として選択されてもよい。代替として、最大値が最小値よりそれほど大きくない場合(例えば、2倍以内のサイズ)、実際の入力QP範囲の最大値(例えば、実際のQp範囲[22,42]のうちの42)またはその対応するQpステップサイズが除算因子として選択されてもよい。
【0076】
QpMap値の予測ベースの調節
上記で説明されたように、QpMap値は、入力Qp値によって直接的に生成されてもよく、または、入力Qp値とQpステップサイズとの間のマッピング関係に応じて、Qpステップサイズ値によって生成されてもよい。より簡単な例証のために、下記の説明は、QpMap値が入力Qp値によって直接的に生成されることを想定している。Qpステップサイズ値によってQpMap値が生成されたとき、提案される着想/方法が同様に拡張されてもよい。
【0077】
インター予測ビデオフレーム/画像の場合、例えばスキップ・モードといった、残差が小さいまたはない状態で、フレーム/画像内のほとんどのブロック/CTUがインター予測されてもよい。このケースでは、対応する基準フレーム/画像によって、有効な入力Qp値が決定されるはずである。
【0078】
一部の例では、対応する基準フレーム/画像の入力Qp値は、動き補償プロセス中に現在の画像が再構築されたときに保存および取得されてもよい。現在のフレーム毎の入力QP値は既知である。しかし、このフレームが現在のものでなく、このフレームが別のフレームの基準フレームであるとき、このフレームの入力Qp値は未知になる。したがって、Qp値は、将来において、これを取得するために、保存されなければならない。
【0079】
一部の例では、対応する基準フレーム/画像の入力Qp値は、インター符号化された現在のフレームのQP値から特定の値を減算することによって導出されてもよく、特定の値は、インター符号化された現在のフレームの時間層インデックスをチェックすることによって取得されてもよい。
【0080】
他の一部の例では、基準フレーム/画像が基準画像(基準フレーム/画像の基準フレーム/画像)のチェーンである場合、この情報は、シグナリングから継承されるか引き継がれてもよい。
【0081】
簡単なソリューションでは、インター予測ビデオフレーム/画像の場合、有効なQpステップサイズは、現在のフレームのQpステップサイズから、0.5などの一定のスケーリング因子によって導出されてもよく、これは、値6との入力Qp差に対応する。このスケーリング演算は、基準フレーム/画像入力QpまたはQpステップサイズへの近似である。
【0082】
Qpステップサイズと入力Qpとの間の典型的なマッピング関係(例えば、Qstep=2(QP-4)/6)により、Qpステップサイズのスケーリング演算は、入力Qp値の減法/加法演算と同等である。すなわち、Qpステップサイズのスケーリング演算は、入力Qp値の減法/加法演算を適用することによって実施可能である。
【0083】
シグナリングオーバヘッドと予測ベースの調節正確度との間のトレードオフに応じて、Qpステップサイズのスケーリング、または入力Qp値の減算/加算は、異なる精度または/および異なる粒度で表されてもよい。より簡単な例証として、下記の提案される着想/方法は、QpMap値の予測ベースの調節のために、Qpステップサイズのスケーリングが使用されることを想定している。QpMap値の予測ベースの調節のために入力Qp値の減算/加算が使用されるとき、提案される着想/方法が直接拡張されてもよい。
【0084】
1つまたは複数の例では、Qpステップサイズのスケーリングは、その後のインター予測フレームのために使用される一定のスケーリング因子の不正確度を補償するために、イントラ予測フレーム/画像にも同様に適用されてもよい。
【0085】
別の例では、Qpスケーリング因子は、以下の異なる方法を使用して柔軟に導出されてもよい。
【0086】
第1の方法では、Qpスケーリング因子は、値のセットからエンコーダによって選択されてもよい。スケーリング因子セットは、シーケンスベースまたは画像/スライスベースのものでもよく、これは、セットが、ピクチャヘッダまたはシーケンスパラメータセット内で符号化されてもよいことを意味する。スケーリング因子セット内の選択されたQpスケーリング因子のインデックスは、画像品質とシグナリングオーバヘッドとの間の良好なトレードオフのために、例えば、ピクチャレベルインデックス選択、CTUレベル・インデックス選択、ブロックレベル選択といった異なる粒度で、エンコーダ側でレート歪み最適化アルゴリズムに基づいて選択されてもよい(例えば、ピクチャは、4分木分割に基づいて異なるブロックに分配されてもよい)。
【0087】
第2の方法では、Qpスケーリング因子は、Qpオフセット/調節にコンバートされてもよい。Qpオフセット/調節は、QpMap値を計算する前に、入力Qp値またはQpステップサイズに適用されてもよい。
【0088】
1つの例では、調節された入力Qp値が、Qp_new=Qp_old-Qp_offset_stepsize×(lower_bound-offset_index)と表されてもよく、ここで、Qp_oldは、現在のスライスまたはCTUの元のQp値であり、Qp_newは、調節後の新しいQp値であり、Qp_offset_stepsizeは、Qp調節毎のステップサイズであり、lower_boundは、最大Qp低減を決定する整数値であり、offset_indexは、シグナリングされるインデックス値(例えば、範囲[0,3]の値)である。offset_indexは、エンコーダ側で決められ、デコーダ側でパース/使用される。Qp_offset_stepsizeおよびlower_boundは、予め定義された一定の値であるか、または同様にシグナリングされることに留意されたい。
【0089】
例えば、Qp_offset_stepsizeは、4などの一定の値でもよく、lower_boundは2であり、シグナリングされるoffset_indexが1のとき、デコーダは、現在のQp値32が28になるように調節してもよく、ここで、28=32-4*(2-1)である。
【0090】
第3の方法では、現在のCTU/ピクチャ/ブロックの場合、Qpスケーリング因子は、シグナリングオーバヘッドを省くために、隣接したCTU/ピクチャ/ブロック(例えば、空間ドメインにおける左もしくは上のCTU/ブロック、または時間ドメインにおける基準ブロック/CTU)から継承されてもよい。
【0091】
第4の方法では、Qpスケーリング因子は、シグナリングまたは継承ではなく、現在のCTU/ブロックおよび基準CTU/ブロックのQp差によってデコーダ側で計算されてもよい。現在のCTU/ブロックに対応する複数の基準CTU/ブロックがある場合、Qpスケーリング因子の平均値が計算されてもよい。基準CTU/ブロックが基準チェーンに含まれる場合。基準深度は制限されてもよく、Qpスケーリング因子は、ほとんどの制限された基準深度において、親の基準CTU/ブロックに応じて計算されてもよい。
【0092】
第5の方法では、より低い複雑性のために、異なる構成要素のQpスケーリング因子が一緒にシグナリング/選択/計算されてもよい。代替として、異なる構成要素のQpスケーリング因子は、別々にシグナリング/選択/計算されてもよい。代替として、ルマおよび彩度のQpスケーリング因子は、別々にシグナリング/選択/計算されてもよい。
【0093】
第6の方法では、上記の方法の任意の組合せがハイブリッド方法として使用されてもよい。
【0094】
さらに、上記の第2の方法では、導出プロセスの1つの実施形態が下記のように導入可能である。
【0095】
一般に、チャネルCHの位置(x,y)におけるQpMap値(QM
CH(x,y))が、
【数6】
【数7】
のように計算可能である。
【0096】
VVCでは、QPと量子化ステップQstepとの間の関係は、QP
step=2
(QP-4)/6によって与えられる。したがって、等式(7)は、
【数8】
のように書き直されることが可能である。
【0097】
1つの実施形態では、等式(8)の場合、QPは、現在のフレームの入力QPであり、チャネル依存である。QP
maxは、VVCにおける63に等しい最大許容入力QPである。等式(7)および(8)を用いて、等式(6)は、
【数9】
のように書き直されることが可能である。
【0098】
等式(9)から、項全体が、チャネル依存または一定の値であることがわかる。したがって、品質マップのチャネル毎に、異なる位置の値は同じである。
【0099】
より簡単な実装形態として、2つの修正が、等式(9)に対してさらに行われることが可能である。第1の修正は、VVCにおける実際の値63の代わりに、一定の値QP
selectedをQP
maxとして使用することである。動機は、非常に小さい品質マップ値によって引き起こされる勾配消失問題を回避することである。QP
selectedは、セクション「QpMap値のダイナミックレンジ制御」で既に紹介された、QpMap値のダイナミックレンジを制御することと同等であることに留意されたい。第2の修正は、スケーリング因子α
CHの代わりに、QPオフセット値をシグナリングすることである。このケースでは、等式(9)は、
【数10】
のように書き直されることが可能である。
【0100】
等式(10)を等式(9)と比較すると、これは、新たにシグナリングされたQPオフセット値QPoffsetの閉形式表現でαCHを表すことと同等である。1つの実施形態では、対応する基準ブロックが、独立して選択された時間基準ピクチャから生じたものであるので、QPoffsetは、入力ビデオブロック毎に決定される必要がある。別の実施形態では、QPoffsetは、シグナリング・ビットを節約するためにフレームレベルで決定およびシグナリングされ、これは、同じビデオフレーム内の全てのCTUが、QPoffsetの同じ値を共有することを意味する。
【0101】
1つの例では、QPoffsetは、ルックアップテーブル(LUT:look up table)として実現される。テーブル1に示されているように、QPオフセット値を直接的にシグナリングするのではなく、予め定義された符号語が定義されてもよい。ビットストリームで受け取られた符号語に基づいて、等式(10)のために使用される実際のQPオフセット値が、テーブル1に示されたLUTから取り出されることが可能である。例えば、符号化されたワード「01」がデコーダ側で受け取られた場合、テーブル1に示された例では、QPオフセット値8が導出可能である。テーブル1において、マッピングされたQPオフセットは、4における一定のステップサイズを有し、5におけるステップサイズを有する別の例のLUTは、テーブル2に定義されてもよいことに留意されたい。
【0102】
テーブル1は、スケーリング因子をシグナリングするために使用される例示的なLUTを示している。
【0103】
【0104】
テーブル2は、スケーリング因子をシグナリングするために使用される別の例示的なLUTを示している。
【0105】
【0106】
QPoffsetのLUTベースの実装形態は、例えば、シーケンス・レベル、フレームレベルなど、異なる粒度で定義されてもよい。異なるLUTに対して、LUT差がシグナリングされてもよく、またはLUTステップサイズ差がシグナリングされてもよい。例えば、テーブル1およびテーブル2におけるLUTのステップサイズ差は、1に等しい(5-4=1)。
【0107】
QpMap値ベースのサンプル値のスケーリング
QP独立ニューラルネットワークモデルは、ネットワークにQpMapチャネルを明示的に含まなくてもよい。例えば、
図11に示されているように、YUVチャネル毎に生成されたQpMap値は、YUVチャネルと連結される。代替として、ネットワークに送り込まれたQpMap値は、YUVチャネル毎のサンプル値を直接的にスケーリングするために使用されてもよい。このように、QpMapチャネルは、YUVチャネルと連結されず、これは、ネットワークにおけるQpMapの暗黙的使用を表す。
【0108】
QpMapチャネルがネットワークに入力され、YUVチャネルと連結されたとき、
図11に示されているのと同様に、サンプル値のスケーリング、すなわち、YUVチャネルにおけるサンプル値のスケーリングは、要素毎の乗算によって直接的に行われてもよい。例えば、Y成分のためのQpMapチャネルの各要素は、Yチャネルの対応する要素で乗算され、UまたはV成分のためのQpMapチャネルの各要素は、UまたはVチャネルの対応する要素で乗算される。QpMapチャネルの解像度は、対応する成分チャネルの解像度と既に整列されていてもよいことに留意されたい。
【0109】
別の例では、要素毎のスケーリングはまた、残差ブロック毎に行われてもよい。
図17は、本開示の一部の実装形態に係る、残差ブロック毎に行われる要素毎のスケーリングの例を例示している。
図17では、QpMapチャネルは、YUV解像度が整列された後、YUVチャネルと最初に連結される。次いで、QpMapチャネルは、第1の残差ブロックのための入力特徴マップとして使用されるだけではなく、残差ブロック毎のサンプル値のスケーリング因子としても使用される。
【0110】
上記の2つのサンプル・スケーリング・メカニズムは、排他的に使用されるか組み合わされてもよいことに留意されたい。言い換えれば、
図11などの連結の前にYUVサンプルに対して直接的に適用されたサンプル・スケーリング、および
図17などの残差ブロック毎に適用されたサンプル・スケーリングは、同じニューラルネットワークで両方使用されても、異なるニューラルネットワークで別々に使用されてもよい。
【0111】
QpMapの暗黙的使用についての一部の例では、QpMapデータは、ネットワークに送り込まれなくてもよく、YUVチャネル毎のサンプル値のスケーリングは、ニューラルネットワークの前で行われる。
【0112】
ニューラルネットワークベースのモデルフィルタリングと他のループ内フィルタとの間の相互作用
異なる品質を有するビデオコンテンツをフィルタリングするために、QpMapチャネルがニューラルネットワークに提供されたとき、QpMapチャネルは、1つまたは複数の成分からのQp情報を含んでもよい。
【0113】
図12Aは、本開示の一部の実装形態に係る、QpMapチャネルとYUVチャネルとを並べたレイアウトの例を例示している。
図12Bは、本開示の一部の実装形態に係る、QpMapチャネルとYUVチャネルとを並べたレイアウトの別の例を例示している。
図12A~
図12Bにおいて、マップYというブロックは、YチャネルのためのQpMapチャネルを示し、マップUというブロックは、UチャネルのためのQpMapチャネルを示し、マップVというブロックは、VチャネルのためのQpMapチャネルを示す。ブロックY、U、およびVはそれぞれ、Yチャネル、Uチャネル、およびVチャネルを示す。
【0114】
YUV420のコンテンツを仮定すると、UV成分は、最初にアップサンプリングされてもよく、次いで、YUVは、
図12Aに示されているように、対応するQpMapチャネルと並べられて差し挟まれ、またはYチャネルは、4つのより小さいYチャネルに最初にダウンサンプリングされてもよく、次いで、YUVは、
図12Bに示されているように、QpMapチャネルと並べられて差し挟まれる。一部の例では、アップサンプリングまたはダウンサンプリングは、例えば
図10の領域2および3のネットワーク内で、または、例えば
図10の領域1のネットワークの外部で行われる。
【0115】
図16Aは、本開示の一部の実装形態に係る、QpMapチャネルとYUVチャネルとを並べたレイアウトの別の例を例示している。
図16Bは、本開示の一部の実装形態に係る、QpMapチャネルとYUVチャネルとを並べたレイアウトの別の例を例示している。
図16A~
図16Bでは、マップYというブロックは、YチャネルのためのQpMapチャネルを示し、マップUというブロックは、UチャネルのためのQpMapチャネルを示し、マップVというブロックは、VチャネルのためのQpMapチャネルを示す。ブロックY、U、およびVはそれぞれ、Yチャネル、Uチャネル、およびVチャネルを示す。
図16A~
図16Bに示されているように、複数のQpMapチャネルは、最初に内部で連結され、次いで、YUVチャネルと連結されてもよい。
【0116】
1つの成分のただ1つまたは複数のQpMapチャネルがニューラルネットワークに提供される場合、1つまたは複数のQpMapチャネルは、YUVチャネルの一方の側に置かれてもよく、これは、YUVチャネルが隣接して並べられるように、QpMapチャネルの追加の前にYUVチャネルが連結されることを示す。
【0117】
別の例では、異なる成分からのQpMpaチャネルに加えて、異なるタイプの訓練データのための追加のQpMapチャネルが必要になることがある。例えば、訓練データが、IフレームまたはBフレームまたはPフレームから切り取られた場合、フレーム・タイプ情報を含むQpMapが生成および連結されてもよい。Iフレームは、内部符号化されたフレームであり、Bフレームは、双方向予測フレームであり、Pフレームは、予測フレームである。
【0118】
ニューラルネットワークモデルベースフィルタの出力のフィルタリングオフセットまたはスケーリング
一般化のために、品質、動き、および照明環境のレベルが異なる、異なるビデオコンテンツのために、統合ニューラルネットワークモデルベースフィルタが使用されてもよい。ニューラルネットワークモデルベースフィルタの出力は、より良い符号化効率のためにエンコーダ側でオフセットまたはスケーリングの形でわずかに調節されてもよい。
【0119】
フィルタリングオフセットまたはスケーリング値は、値のセットからエンコーダによって適応的に選択されてもよい。オフセットまたはスケーリング・セットは、シーケンスベースまたは画像/スライスベースのものでもよく、これは、セットが、ピクチャ/スライス・ヘッダまたはシーケンスパラメータセット内で符号化されてもよいことを意味する。セット内の選択されたオフセットまたはスケーリング値のインデックスは、画像品質とシグナリングオーバヘッドとの間の良好なトレードオフのために、例えば、ピクチャレベルインデックス選択、CTUレベル・インデックス選択、ブロックレベル選択といった異なる粒度で、エンコーダ側でレート歪み最適化アルゴリズムに基づいて選択されてもよく、例えば、ピクチャは、4分木分割に基づいて異なるブロックに分配されてもよい。
【0120】
適応的フィルタリングオフセットまたはスケーリング値の選択は、コンテンツ平滑性、または、方向付けられた勾配のヒストグラム(histogram of oriented gradients)など、特定の分類アルゴリズムに基づいてもよい。カテゴリ毎の適応的フィルタリングオフセットまたはスケーリング値は、エンコーダにおいて計算および選択され、サンプル歪みを効果的に低減させるためにデコーダに明示的にシグナリングされ、その一方で、サンプル毎の分類は、サイド情報を著しく節約するために、エンコーダおよびデコーダ両方で行われる。
【0121】
適応的フィルタリングオフセットまたはスケーリング値の選択は、異なる成分に対して一緒または別々に行われてもよく、例えば、YUVは、異なる適応的フィルタリングオフセットまたはスケーリング値を有する。
【0122】
訓練データ生成および訓練プロセス
ニューラルネットワークベースフィルタモデルが訓練されるとき、訓練データの準備および訓練プロセスは、異なる方式で行われてもよい。
【0123】
一部の例では、モデルは、静止画像だけを有するデータセットに基づいて訓練されてもよい。データセットは、ニューラルネットワークベースフィルタが使用されるビデオ符号化ツールからの全てのIフレームでエンコードされてもよい。
【0124】
一部の例では、モデルは、2経路プロセスに基づいて訓練されてもよい。第1の経路では、全てのIフレームでデータセットがエンコードされてもよく、モデルAは、Iフレーム全てに基づいて訓練されてもよい。第2の経路では、同じデータセットまたは新しいデータセットが、異なる比率(含まれるI、B、およびPフレームの数の比率)を有するI、B、およびPフレームの組合せでエンコードされてもよい。一部の例では、生成されたI/B/Pフレームは、第1の経路で訓練されたモデルAを適用することによってエンコードされる。新たに生成されたI/B/Pフレームに基づいて、新しいモデルBが訓練されてもよい。
【0125】
モデルBが訓練されるとき、モデルAは、モデルBがモデルAから始まる洗練されたモデルであるように、事前訓練済みモデルとしてロードされてもよい。別の例では、モデルAとは異なる別のモデルが、事前訓練済みポイントとしてロードされてもよい。
【0126】
代替として、モデルBは、ゼロから訓練されてもよい。
【0127】
一部の例では、モデルは、3つ以上の経路である訓練されたマルチ経路でもよい。第1の経路では、モデルAは、Iフレームに基づいて訓練されてもよい。第2の経路では、モデルBは、モデルAがエンコーダに適用されたときのI/B/Pフレームの組合せに基づいて、モデルAに基づいて訓練または洗練されてもよい。この第2の訓練経路中の、B/Pフレームの選択された組合せは、低時間層だけからのものでもよいことに留意されたい。第3の経路またはさらなる経路において、モデルCは、B/Pフレームのより高い一時的な層に基づいて、モデルBに基づいて訓練または洗練されてもよい。B/Pフレームのより高い一時的な層が生成および選択されたとき、モデルBまたは/およびモデルAは、エンコーダ側で適用されてもよい。
【0128】
ネットワーク訓練前に、訓練データが生成されなければならない。このマルチ経路方法では、訓練データは、以下を含む3つの経路によって生成され、第1のパスは、モデルAを訓練するために使用されるIフレームだけを生成することであり、モデルAの準備ができると、エンコーダは、モデルAをロードすること、および第2の経路と呼ばれる低時間層B/Pフレームを生成することを、行っても行わなくてもよい。これらの生成された低時間層B/Pフレームは、新しい訓練によってモデルBを訓練するために使用されるか、モデルAに基づいて洗練される。
【0129】
さらに、モデルBの準備ができると、エンコーダは、モデルAおよびBをロードすること、ならびに第3の経路と呼ばれる高時間層B/Pフレームを生成することを、行っても行わなくてもよい。これらの生成された高時間層B/Pフレームは、新しい訓練によってモデルCを訓練するために使用されるか、モデルAまたは/およびBに基づいて洗練される。
【0130】
ニューラルネットワークベースのモデルフィルタリングと他のループ内フィルタとの間の相互作用
CTUレベルまたはフレームレベルでオンにされるように、ニューラルネットワークベースのモデルフィルタリングがシグナリングされたとき、デブロッキングフィルタリングは、不必要な計算または過度の平滑化を回避するために飛ばされてもよい。代替として、デブロッキングフィルタリングは、視覚品質のために、依然として行われてもよい。
【0131】
CTUレベルまたはフレームレベルでオンにされるように、ニューラルネットワークベースのモデルフィルタリングがシグナリングされたとき、ALF、クロスコンポーネントアダプティブループ・フィルタ(CCALF:Cross Component Adaptive Loop Filter)、およびSAOのような、他のいくつかのループ内フィルタは、オフにされてもよい。
【0132】
CTUレベルまたはフレームレベルでオンにされるように、ニューラルネットワークベースのモデルフィルタリングがシグナリングされたとき、他のループ内フィルタが、CTUレベルまたはフレームレベルで選択的にオンまたはオフにされてもよい。例えば、ニューラルネットワークベースのモデルフィルタリングのためにイントラ・フレームまたはイントラ・フレームCTUが有効化された場合、現在のイントラ・フレーム、または現在のイントラ・フレームCTUのために、デブロッキングフィルタリング、または/およびALF、または/およびCCALF、または/およびSAOなど、他のループ内フィルタが無効化される。
【0133】
図18は、本開示の一部の実装形態に係る、ニューラルネットワークを使用したビデオ符号化時の画像フィルタリング用の装置を例示したブロック図である。装置1800は、モバイル・フォン、タブレット・コンピュータ、デジタル・ブロードキャスト端末、タブレット・デバイス、またはパーソナル・デジタル・アシスタントなどの、端末でもよい。
【0134】
図18に示されているように、装置1800は、処理コンポーネント1802、メモリ1804、電源コンポーネント1706、マルチメディアコンポーネント1808、オーディオコンポーネント1810、入出力(I/O)インターフェース1812、センサコンポーネント1814、および通信コンポーネント1816といった構成要素のうちの1つまたは複数を含んでもよい。
【0135】
処理コンポーネント1802は、通常、ディスプレイに関する動作、通話、データ通信、カメラ動作、および記録動作など、装置1800の全動作を制御する。処理コンポーネント1802は、上記の方法のステップの全てまたは一部を完了させるための命令を実行するための1つまたは複数のプロセッサ1820を含んでもよい。さらに、処理コンポーネント1802は、処理コンポーネント1802と他の構成要素との間の相互作用を容易にするための1つまたは複数のモジュールを含んでもよい。例えば、処理コンポーネント1802は、マルチメディアコンポーネント1808と処理コンポーネント1802との間の相互作用を容易にするためのマルチメディア・モジュールを含んでもよい。
【0136】
メモリ1804は、装置1800の動作をサポートするための異なるタイプのデータを格納するように構成される。このようなデータの例は、装置1800で動作する任意のアプリケーションまたは方法のための命令、連絡先データ、電話帳データ、メッセージ、ピクチャ、ビデオなどを含む。メモリ1804は、任意のタイプの揮発性もしくは不揮発性ストレージデバイス、またはその組合せによって実現されてもよく、メモリ1804は、スタティック・ランダム・アクセス・メモリ(SRAM)、電気的消去可能プログラマブル・リード・オンリ・メモリ(EEPROM)、消去可能プログラマブル・リード・オンリ・メモリ(EPROM)、プログラマブル・リード・オンリ・メモリ(PROM)、リード・オンリ・メモリ(ROM)、磁気メモリ、フラッシュ・メモリ、磁気ディスク、またはコンパクト・ディスクでもよい。
【0137】
電源コンポーネント1806は、装置1800の異なる構成要素に電力を供給する。電源コンポーネント1806は、電力供給管理システム、1つまたは複数の電源、ならびに、装置1800のための電力の生成、管理、および配布に関連付けられた他の構成要素を含んでもよい。
【0138】
マルチメディアコンポーネント1808は、装置1800とユーザとの間の出力インターフェースを提供する画面を含む。一部の例では、画面は、液晶ディスプレイ(LCD)およびタッチ・パネル(TP)を含んでもよい。画面がタッチ・パネルを含む場合、画面は、ユーザからの入力信号を受け取るタッチ・スクリーンとして実現されてもよい。タッチ・パネルは、タッチ・パネル上のタッチ、スライド、およびジェスチャを検知するための、1つまたは複数のタッチ・センサを含んでもよい。タッチ・センサは、タッチまたはスライド・アクションの境界を検知するだけでなく、タッチまたはスライド動作に関する持続時間および圧力をさらに検出してもよい。一部の例では、マルチメディアコンポーネント1808は、前部カメラおよび/または後部カメラを含んでもよい。装置1800が、撮影モードまたはビデオ・モードなどの動作モードのとき、前部カメラおよび/または後部カメラは、外部マルチメディア・データを受け取ってもよい。
【0139】
オーディオコンポーネント1810は、オーディオ信号を出力および/または入力するように構成される。例えば、オーディオコンポーネント1810は、マイクロフォン(MIC)を含む。装置1800が、通話モード、記録モード、および音声認識モードなどの動作モードのとき、マイクロフォンは、外部オーディオ信号を受け取るように構成される。受け取られたオーディオ信号は、メモリ1804にさらに格納されるか、通信コンポーネント1816を介して送られてもよい。一部の例では、オーディオコンポーネント1810は、オーディオ信号を出力するためのスピーカをさらに含む。
【0140】
I/Oインターフェース1812は、処理コンポーネント1802と周辺インターフェース・モジュールとの間のインターフェースを提供する。上記の周辺インターフェース・モジュールは、キーボード、クリック・ホイール、ボタンなどでもよい。これらのボタンは、ホーム・ボタン、ボリューム・ボタン、スタート・ボタン、およびロック・ボタンを含んでもよいがこれらに限定されない。
【0141】
センサコンポーネント1814は、異なる態様における状態評価を装置1800に提供するための1つまたは複数のセンサを含む。例えば、センサコンポーネント1814は、装置1800のオン/オフ状態、および構成要素の相対ロケーションを検出してもよい。例えば、構成要素は、装置1800のディスプレイおよびキーパッドである。センサコンポーネント1814はまた、装置1800または装置1800の構成要素の位置変化、装置1800に対するユーザの接触の有無、装置1800の向きまたは加速/減速、および装置1800の温度変化を検出してもよい。センサコンポーネント1814は、物理的接触が何もなくても、近くの物体の存在を検出するように構成された近接センサを含んでもよい。センサコンポーネント1814は、イメージング・アプリケーションで使用されるCMOSまたはCCDイメージ・センサなどの光センサをさらに含んでもよい。一部の例では、センサコンポーネント1814は、加速度センサ、ジャイロスコープ・センサ、磁気センサ、圧力センサ、または温度センサをさらに含んでもよい。
【0142】
通信コンポーネント1816は、装置1800と他のデバイスとの間の有線またはワイヤレス通信を容易にするように構成される。装置1800は、Wi-Fi、4G、またはその組合せなどの通信規格に基づいて、ワイヤレス・ネットワークにアクセスしてもよい。例では、通信コンポーネント1816は、ブロードキャスト・チャネルを介して外部のブロードキャスト管理システムからブロードキャスト信号またはブロードキャスト関連情報を受け取る。例では、通信コンポーネント1816は、短距離通信を促進するための近距離無線通信(NFC)モジュールをさらに含んでもよい。例えば、NFCモジュールは、無線周波数識別(RFID)技術、赤外線通信協会(IrDA)技術、超広帯域(UWB)技術、ブルートゥース(登録商標)(BT)技術、および他の技術に基づいて実現されてもよい。
【0143】
例では、装置1800は、特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、デジタル信号処理デバイス(DSPD)、プログラマブル・ロジック・デバイス(PLD)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、コントローラ、マイクロコントローラ、マイクロプロセッサ、または、上記の方法を行うための他の電子要素のうちの1つまたは複数によって実現されてもよい。非一時的コンピュータ可読記憶媒体は、例えば、ハードディスク・ドライブ(HDD)、ソリッド・ステート・ドライブ(SSD)、フラッシュ・メモリ、ハイブリッド・ドライブまたはソリッド・ステート・ハイブリッド・ドライブ(SSHD)、リード・オンリ・メモリ(ROM)、コンパクト・ディスク・リード・オンリ・メモリ(CD-ROM)、磁気テープ、フロッピー・ディスクなどでもよい。
【0144】
図19は、本開示の一部の実装形態に係る、ニューラルネットワークを使用したビデオ符号化時の画像フィルタリングのためのプロセスを例示したフローチャートである。
【0145】
ステップ1901において、プロセッサ1820は、1つまたは複数のQpMapチャネルにおける複数のQpMap値をニューラルネットワークにロードする。
図11に示されているように、複数のQpMapチャネルはそれぞれ、連結ブロックの前の3つの畳み込みブロックまたは層の後の対応するYUVチャネルと組み合わされた。
【0146】
例えば、QpMapは、YUVが異なるQP値を有してもよいので、QP-Y、QP-U、QP-VというYUVのための3つのチャネルをそれぞれ有してもよい。
【0147】
ステップ1902において、プロセッサ1820は、入力フレームに関する複数の入力QP値を調節することによってQPスケーリング因子を取得する。例えば、「QpMap値の予測ベースの調節」というセクションの第2の方法で論じられたように、Qpオフセット/調節はQpMap値を計算する前に、入力Qp値またはQp・ステップサイズに適用されてもよい。本開示では、略称の「QP」は「Qp」と同じである。
【0148】
ステップ1903において、プロセッサ1820は、ニューラルネットワークへの入力フレームをニューラルネットワークが学習およびフィルタリングするために、QPスケーリング因子に応じて、複数のQpMap値を調節する。
【0149】
一部の例では、プロセッサ1820は、QPオフセットステップサイズ、下限、およびオフセットインデックスに基づいてQPオフセットを取得してもよく、QPオフセットステップサイズは、各入力QP値を調節するためのステップサイズでもよく、下限は、最大QP値低減を決定する整数値でもよく、オフセットインデックスは、シグナリングされたインデックス値でもよい。さらに、プロセッサ1820は、入力QP値からQPオフセットを減算してもよい。例えば、「QpMap値の予測ベースの調節」というセクションの第2の方法で論じられたように、調節された入力Qp値は、Qp_new=Qp_old-Qp_offset_stepsize×(lower_bound-offset_index)と表されてもよい。
【0150】
一部の例では、エンコーダは、QPオフセットステップサイズ、下限、およびオフセットインデックスをシグナリングしてもよく、オフセットインデックスは、0から3までの整数でもよく、QPオフセットステップサイズおよび下限は、それぞれ予め定義された一定の値でもよい。
【0151】
一部の例では、エンコーダは、QPオフセットステップサイズおよび下限を予め定義してもよい。エンコーダは、オフセットインデックスをさらにシグナリングしてもよく、オフセットインデックスは0から3までの整数でもよい。例えば、QPオフセットステップサイズおよび下限は、一定の値として予め定義されてもよい。このケースでは、QPオフセットステップサイズおよび下限は、シグナリングされる必要がない。QPオフセットステップサイズおよび下限が一定の値でない場合、シグナリングが必要になる。
【0152】
一部の例では、プロセッサ1820は、QPオフセットを取得することによってQPスケーリング因子を取得してもよく、入力QP値からQPオフセットを減算することによって複数のQpMap値を調節してもよい。
【0153】
一部の例では、QPスケーリング因子は、等式(9)および(10)に示されているような
という等式を使用して取得されてもよく、α
CHは、QPスケーリング因子を示し、QP
offsetは、QPオフセットを示す。
【0154】
一部の例では、QPオフセットは、入力ビデオブロック毎に決定されてもよい。
【0155】
一部の例では、QPオフセットは、フレームレベルでシグナリングされてもよい。
【0156】
一部の例では、プロセッサ1820は、LUTを予め定義してもよく、LUTは、テーブル1または2に示されたように、複数の符号語、および複数の符号語に対応する複数のQPオフセットを含んでもよい。
【0157】
一部の例では、プロセッサ1820は、LUTに基づいて符号語に対応するQPオフセットをデコーダが取り出すように、符号語をさらにシグナリングしてもよい。
【0158】
一部の例では、プロセッサ1820は、異なる粒度で複数のLUTを予め定義し、異なる粒度で複数のLUTに基づいて符号語に対応するQPオフセットをデコーダが取り出すように符号語をシグナリングしてもよい。
【0159】
例えば、LUTは、同じフレーム内の全てのビデオブロックが同じLUTを有し、エンコーダが符号語をシグナリングする必要しかないように、フレームレベルで予め定義されてもよい。デコーダは、シグナリングされた符号語を受け取り、受け取られた符号語および同じLUTに基づいて、対応するQPオフセットを取り出してもよい。
【0160】
一部の例では、プロセッサ1820は、異なる粒度で複数のLUTを予め定義し、符号語およびLUTステップサイズ差に基づいて符号語に対応するQPオフセットをデコーダが取り出すように、符号語およびLUTステップサイズ差をシグナリングしてもよく、テーブル1およびテーブル2に示されたように、LUTステップサイズ差は、第1のステップサイズと第2のステップサイズとの間の差であり、第1のステップサイズは、第1のLUTにおける2つの隣接したQPオフセットの間の差であり、第2のステップサイズは、第2のLUTにおける2つの隣接したQPオフセットの間の差である。
【0161】
例えば、テーブル1~2に示されているように、テーブル1における第1のステップサイズは4であり、テーブル2における第2のステップサイズは5であり、LUTステップサイズ差は1である(=5-4)。一部の例では、エンコーダは、デコーダが、LUTステップサイズ差、およびデコーダに以前に保存されたLUTに基づいて、対応するQPオフセットを見つけることができるように、全てのLUTをデコーダに送る必要はないが、LUTステップサイズ差だけを送る必要がある。
【0162】
他の一部の例では、命令を格納した非一時的コンピュータ可読記憶媒体1804が提供される。1つまたは複数のプロセッサ1820によって命令が実行されたとき、命令は、
図19および上記に記載されたような任意の方法をプロセッサに行わせる。
【0163】
本開示の説明は、例証のために提示されたものであり、網羅的であること、または本開示に限定されることを意図するものではない。多くの変更形態、変形形態、および代替実装形態が、前述の説明および関連付けられた図面において提示された教示の利益を有する当業者には明らかであろう。
【0164】
例は、本開示の原理を説明するために、ならびに、様々な実装形態についての開示を当業者が理解できるようにするために、ならびに、予期される特定の使用に適したような、様々な変更形態と共に基礎をなす原理および様々な実装形態を最もうまく利用するために、選ばれ説明された。したがって、本開示の範囲は、開示された実装形態の具体例に限定されるべきではなく、変更形態および他の実装形態が本開示の範囲内に含まれることが意図されることを理解されたい。
【手続補正書】
【提出日】2024-01-18
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ビデオ符号化時の画像フィルタリングの方法であって、
1つまたは複数の量子化パラメータ(QP)マップ(QpMap)チャネルにおける複数のQpMap値をニューラルネットワークにロードすることと、
入力フレームに関する複数の入力QP値を調節することによってQPスケーリング因子を取得することと、
前記ニューラルネットワークへの前記入力フレームを前記ニューラルネットワークが学習およびフィルタリングするために、前記QPスケーリング因子に応じて、前記複数のQpMap値を調節することと、
を含む、方法。
【請求項2】
前記入力フレームに関する前記複数の入力QP値を調節することが、
QPオフセットステップサイズ、下限、およびオフセットインデックスに基づいてQPオフセットを取得することであって、前記QPオフセットステップサイズが、各入力QP値を調節するためのステップサイズであり、前記下限が、最大QP値低減を決定する整数値であり、前記オフセットインデックスが、シグナリングされたインデックス値であることと、
入力QP値から前記QPオフセットを減算することと、を含む、請求項1に記載の方法。
【請求項3】
エンコーダによって、前記QPオフセットステップサイズ、前記下限、および前記オフセットインデックスをシグナリングすることであって、前記オフセットインデックスが、0から3までの整数であること、をさらに含む、請求項2に記載の方法。
【請求項4】
エンコーダによって、前記QPオフセットステップサイズおよび前記下限を予め定義することと、
前記エンコーダによって、前記オフセットインデックスをシグナリングすることであって、前記オフセットインデックスが、0から3までの整数であること、をさらに含む、請求項2に記載の方法。
【請求項5】
前記QPスケーリング因子を取得することが、QPオフセットを取得することを含み、
前記複数のQpMap値を調節することが、入力QP値から前記QPオフセットを減算することを含む、請求項1に記載の方法。
【請求項6】
前記QPスケーリング因子を取得することが、
QPオフセットを取得することと、
【数1】
という演算を使用して前記QPスケーリング因子を取得することと、を含み、
α
CHが、前記QPスケーリング因子を示し、QP
offsetが、前記QPオフセットを示す、請求項1に記載の方法。
【請求項7】
入力ビデオブロック毎に前記QPオフセットを決定すること、をさらに含む、請求項6に記載の方法。
【請求項8】
エンコーダによって、フレームレベルで前記QPオフセットをシグナリングすること、をさらに含む、請求項6に記載の方法。
【請求項9】
エンコーダによって、ルックアップテーブル(LUT)を予め定義することであって、前記LUTが、複数の符号語、および前記複数の符号語に対応する複数のQPオフセットを含むことと、
前記LUTに基づいて符号語に対応するQPオフセットをデコーダが取り出すように、前記エンコーダによって、前記符号語をシグナリングすることと、
をさらに含む、請求項5に記載の方法。
【請求項10】
エンコーダによって、異なる粒度で複数のルックアップテーブル(LUT)を予め定義することと、
異なる粒度で前記複数のLUTに基づいて符号語に対応するQPオフセットをデコーダが取り出すように、前記エンコーダによって、前記符号語をシグナリングすることと、
をさらに含む、請求項9に記載の方法。
【請求項11】
エンコーダによって、異なる粒度で複数のルックアップテーブル(LUT)を予め定義することと、
符号語およびLUTステップサイズ差に基づいて前記符号語に対応するQPオフセットをデコーダが取り出すように、前記エンコーダによって、前記符号語および前記LUTステップサイズ差をシグナリングすることであって、前記LUTステップサイズ差が、第1のステップサイズと第2のステップサイズとの間の差であり、前記第1のステップサイズが、第1のLUTにおける2つの隣接したQPオフセットの間の差であり、前記第2のステップサイズが、第2のLUTにおける2つの隣接したQPオフセットの間の差であることと、
をさらに含む、請求項9に記載の方法。
【請求項12】
ニューラルネットワークを使用したビデオ符号化時の画像フィルタリング用の装置であって、
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサに結合され、前記1つまたは複数のプロセッサによって実行可能な命令およびビットストリームを格納するように構成されたメモリと、を備え、
前記1つまたは複数のプロセッサが、前記命令を実行すると、請求項1から11のいずれかに記載の方法を行って前記ビットストリームを生成するように構成される、
装置。
【請求項13】
コンピュータ実行可能命令およびビットストリームを格納する非一時的コンピュータ可読記憶媒体であって、前記コンピュータ実行可能命令が1つまたは複数のコンピュータプロセッサによって実行されたとき、前記1つまたは複数のコンピュータプロセッサに前記ビットストリームを格納させ、請求項1から11のいずれかに記載の方法を行わせて前記ビットストリームを生成させる、非一時的コンピュータ可読記憶媒体。
【請求項14】
ビットストリームを格納するための方法であって、前記ビットストリームは、ビデオ符号化方法によって生成され、
前記ビデオ符号化方法は、
1つまたは複数の量子化パラメータ(QP)マップ(QpMap)チャネルにおける複数のQpMap値をニューラルネットワークにロードすることと、
入力フレームに関する複数の入力QP値を調節することによってQPスケーリング因子を取得することと、
前記ニューラルネットワークへの前記入力フレームを前記ニューラルネットワークが学習およびフィルタリングするために、前記QPスケーリング因子に応じて、前記複数のQpMap値を調節することと、を含む、方法。
【国際調査報告】