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