JP7408835B2 - マルチタスクニューラルネットワークを使用するマルチ品質ループフィルタによるビデオ処理の方法、装置及びコンピュータプログラム - Google Patents

マルチタスクニューラルネットワークを使用するマルチ品質ループフィルタによるビデオ処理の方法、装置及びコンピュータプログラム Download PDF

Info

Publication number
JP7408835B2
JP7408835B2 JP2022561031A JP2022561031A JP7408835B2 JP 7408835 B2 JP7408835 B2 JP 7408835B2 JP 2022561031 A JP2022561031 A JP 2022561031A JP 2022561031 A JP2022561031 A JP 2022561031A JP 7408835 B2 JP7408835 B2 JP 7408835B2
Authority
JP
Japan
Prior art keywords
weight parameters
neural network
layers
masks
weight
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2022561031A
Other languages
English (en)
Other versions
JP2023522163A (ja
Inventor
ジアン,ウェイ
ワン,ウェイ
リン,シェン
リウ,シャン
Original Assignee
テンセント・アメリカ・エルエルシー
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by テンセント・アメリカ・エルエルシー filed Critical テンセント・アメリカ・エルエルシー
Publication of JP2023522163A publication Critical patent/JP2023522163A/ja
Application granted granted Critical
Publication of JP7408835B2 publication Critical patent/JP7408835B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Multimedia (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Biophysics (AREA)
  • General Engineering & Computer Science (AREA)
  • Molecular Biology (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Processing (AREA)

Description

H.264/AVC(Advanced Video Coding)、HEVC(High-Efficiency Video Coding)及びVVC(Versatile Video Coding)のような伝統的なビデオコーディング規格は、同様の(再帰的)ブロックベースのハイブリッド予測/変換フレームワークを共有し、この場合、イントラ/インター予測、整数変換及びコンテキスト適応エントロピーコーディングのような個々のコーディングツールが、全体的な効率を最適化するために集中的に手作り(handcrafted)される。時空間ピクセル近傍(spatiotemporal pixel neighborhoods)が予測信号構築のために利用され、後続の変換、量子化及びエントロピーコーディングのための対応する残差を取得する。一方、ニューラルネットワーク(NN:Neural Networks)の性質は、隣接するピクセルの受容野(receptive field)からの時空間情報を解析することによって、異なるレベルの時空間刺激(spatiotemporal stimuli)を抽出することになる。高い非線形性と非局所的時空間相関を探索する能力は、大いに改善される圧縮品質のための有望な機会を提供する。
非可逆ビデオ圧縮では、圧縮されたビデオは必然的に圧縮アーチファクトに悩まされ、これはエクスペリエンスの品質(QoE:Quality of Experience)を大幅に低下させる。実際に許容される歪みの量は用途に依存し、一般に、圧縮比が高いほど歪みは大きくなる。圧縮品質を制御するためには多くの方法がある。例えば量子化パラメータ(QP:Quantization Parameter)は量子化ステップサイズを決定する。QP値が大きいほど、量子化ステップサイズは大きく、歪みが大きくなる。ユーザの異なる要求に対応するために、ビデオコーディング方法は、異なる圧縮品質を有するビデオを圧縮する能力を必要とする。例えばVVCは、QP値を0から63の間で変化させることを許容する。
実施形態によると、マイクロ構造化パラメータ共有に基づいて、マスク化マルチタスクニューラルネットワークを使用するマルチ品質ループフィルタビデオ圧縮の方法は、少なくとも1つのプロセッサによって実行され、ニューラルネットワーク内の第1の層のセットについて、第1のマスクのセット及び第1の複数の重みパラメータを用いて入力と複数の量子化パラメータ値とに基づいて、第1のマスク化重みパラメータのセットを生成するステップと、複数の量子化パラメータ値に基づいて、第2の複数の重みパラメータを用いて、複数の量子化パラメータ値について、ニューラルネットワークの第2の層のセットを選択するステップと、第1のマスク化重みパラメータのセットと第2の複数の重みパラメータとに基づいて、推論出力を計算して出力するステップとを含む。
実施形態によると、マイクロ構造化パラメータ共有に基づいて、マスク化マルチタスクニューラルネットワークを使用するマルチ品質ループフィルタビデオ圧縮の装置は、プログラムコードを記憶するよう構成される少なくとも1つのメモリと、プログラムコードを読み出し、プログラムコードによって指示されるように動作するよう構成される少なくとも1つのプロセッサとを含む。プログラムコードは、少なくとも1つのプロセッサに、ニューラルネットワークの第1の層のセットについて、第1のマスクのセット及び第1の複数の重みパラメータを用いて入力と複数の量子化パラメータ値とに基づいて、第1のマスク化重みパラメータのセットを生成させるよう構成される生成コードと、少なくとも1つのプロセッサに、複数の量子化パラメータ値に基づいて、第2の複数の重みパラメータを用いて、複数の量子化パラメータ値について、ニューラルネットワークの第2の層のセットを選択させるよう構成される第1選択コードと、少なくとも1つのプロセッサに、第1のマスク化重みパラメータのセットと第2の複数の重みパラメータとに基づいて、推論出力を計算させるよう構成される計算コードと、少なくとも1つのプロセッサに、計算された推論出力を出力させるよう構成される出力コードと、を含む。
実施形態によると、非一時的なコンピュータ読取可能媒体は、マルチタスクニューラルネットワークを使用するマルチ品質ループフィルタでビデオを処理するために、少なくとも1つのプロセッサによって実行されると、該少なくとも1つのプロセッサに、ニューラルネットワークの第1の層のセットについて、第1のマスクのセット及び第1の複数の重みパラメータを用いて入力と複数の量子化パラメータ値とに基づいて、第1のマスク化重みパラメータのセットを生成させ、複数の量子化パラメータ値に基づいて、第2の複数の重みパラメータを用いて、複数の量子化パラメータ値について、ニューラルネットワークの第2の層のセットを選択させ、第1のマスク化重みパラメータのセットと第2の複数の重みパラメータとに基づいて、推論出力を計算させ、計算された推論出力を出力させる、命令を記憶する。
実施形態に従って、本明細書において説明される方法、装置及びシステムが実装され得る環境の図である。
図1の1つ以上のデバイスの例示的な構成要素のブロック図である。
実施形態に従った、テスト段階中の、マイクロ構造化マスクを使用するビデオ圧縮のマルチ品質ループフィルタ(MQLF:Multi-Quality Loop Filter)方法のためのマルチタスクニューラルネットワーク(MTNN:Multi-Task Neural Network)の推論のブロック図である。
実施形態に従った、トレーニング段階中の、マイクロ構造化マスクを使用するマルチタスクニューラルネットワークビデオ圧縮のためのトレーニング装置のブロック図である。
実施形態に従った、トレーニング段階中の、図4のトレーニング装置からの重み充填(Weight Filling)モジュールの詳細なブロック図である。
実施形態に従った、トレーニング段階中の、図4のトレーニング装置からのマイクロ構造化プルーニングモジュールの詳細なブロック図である。
実施形態に従った、共有マルチタスク層、タスク固有層及びマイクロ構造化マスクを有するMTNNを使用するMQLFによるビデオ圧縮のための方法のフローチャートである。
実施形態に従った、共有マルチタスク層、タスク固有層及びマイクロ構造化マスクを有するMTNNを使用するMQLFによるビデオ圧縮のための装置のブロック図である。
ディープニューラルネットワーク(DNN:Deep Neural Network)ベースの方法は、ビデオノイズ除去、超解像度、ぼけ除去、デブロッキング等、圧縮ビデオの視覚品質を良好に強化するために開発されている。しかしながら、NNベースの品質強化法方法にとって、多数のQPに対応することは困難な問題であった。伝統的に、各QP値は、個々のタスクとして扱われ、1つのNNモデルインスタンスは、各QP値についてトレーニングされて展開される。多数のQP値によって生じる記憶及び計算コストを低減することが重要である。
p個のQP値のセットqp1,...qppが与えられると、1つの解決策は、すべてのp個の値を区別することなく1つのセットとして扱い、したがって、異なるQP値のトレーニングデータを組み合わせることによって、すべてのp個の値について1つのNNモデルインスタンスをトレーニングすることである。改善された解決策は、QP値qpiをNNモデルの追加入力として使用し、異なるQP値の組み合わされたトレーニングデータで1つのNNモデルインスタンスをトレーニングすることである。QP値を入力として使用することによって、NNモデルインスタンスがそのパラメータを編成することを自動的に学習し、1つのサブグループが各QP値に対応する、データサンプルのサブグループの分布を暗黙的にモデル化することが期待される。
実施形態は、マイクロ構造化パラメータ共有に基づくマルチタスクニューラルネットワーク(MTNN:Multi-Task Neural Network)を用いることによる、マルチ品質ループフィルタ(MQLF:Multi-Quality Loop Filter)メカニズムに関連し得る。1つのMTNNモデルインスタンスが、多数のQP値を収容(accommodate)するために使用され、ここで、バイナリマイクロ構造化マスク(MSM:Micro-Structured Mask)が各QP値に関連付けられ、そのQP値に対するMTNNの推論計算(inference computation)を明示的にガイドする。
したがって、本開示の実施形態は、復号されたビデオを処理してノイズ、ブラー及びブロック効果のような1つ以上のタイプのアーチファクトを低減するために、マルチ品質ループフィルタ(MQLF)メカニズムを使用する方法及び装置を説明し得る。マイクロ構造化パラメータ共有に基づくマルチタスクニューラルネットワーク(MTNN)が提案され、ここで、1つのMTNNモデルインスタンスが、多数の量子化パラメータ(QP)値を収容するために使用され、1つのマイクロ構造化マスク(MSM)が各QP値に割り当てられて、そのQP値に対するMTNNの推論計算を明示的にガイドする。
図1は、実施形態に従った、本明細書で説明される方法、装置及びシステムが実装され得る環境100の図である。
図1に示されるように、環境100は、ユーザデバイス110、プラットフォーム120及びネットワーク130を含み得る。環境100のデバイスは、有線接続、無線接続又は有線及び無線接続の組合せを介して相互接続し得る。
ユーザデバイス110は、プラットフォーム120に関連付けられる情報を受信、生成、記憶、処理及び/又は提供することが可能な1つ以上のデバイスを含む。例えばユーザデバイス110は、コンピューティングデバイス(例えばデスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ハンドヘルドコンピュータ、スマートスピーカ、サーバ等)、携帯電話(例えばスマートフォン、無線電話等)、ウェアラブルデバイス(例えば一対のスマートグラス又はスマートウォッチ)又は類似のデバイスを含み得る。いくつかの実装では、ユーザデバイス110は、プラットフォーム120から情報を受信及び/又はプラットフォーム120へ情報を送信し得る。
プラットフォーム120は、本明細書の他の箇所で説明されるように、1つ以上のデバイスを含む。いくつかの実装では、プラットフォーム120は、クラウドサーバ又はクラウドサーバのグループを含み得る。いくつかの実装形態では、プラットフォーム120は、ソフトウェア構成要素がスワップイン又はアウトされ得るようにモジュール化されるよう設計され得る。したがって、プラットフォーム120は、異なる使用のために容易に及び/又は迅速に再構成され得る。
いくつかの実装では、図示されるように、プラットフォーム120は、クラウドコンピューティング環境122でホストされ得る。特に、本明細書に記載される実装は、プラットフォーム120がクラウドコンピューティング環境122でホストされるものとして説明するが、いくつかの実装では、プラットフォーム120は、クラウドベースではなくてもよく(すなわち、クラウドコンピューティング環境の外部で実装されてもよく)又は部分的にクラウドベースであってもよい。
クラウドコンピューティング環境122は、プラットフォーム120をホストする環境を含む。クラウドコンピューティング環境122は、プラットフォーム120をホストするシステム及び/又はデバイスの物理的な位置及び構成に関するエンドユーザ(例えばユーザデバイス110)の知識を必要としない、計算、ソフトウェア、データアクセス、ストレージ等のサービスを提供し得る。図示されるように、クラウドコンピューティング環境122は、コンピューティングリソース124のグループ(「(複数の)コンピューティングリソース124」と総称され、個々に「コンピューティングリソース124」と称される)を含み得る。
コンピューティングリソース124は、1つ以上のパーソナルコンピュータ、ワークステーションコンピュータ、サーバデバイス又は他のタイプの計算及び/又は通信デバイスを含む。いくつかの実装では、コンピューティングリソース124はプラットフォーム120をホストし得る。クラウドリソースは、コンピューティングリソース124において実行される計算インスタンス、コンピューティングリソース124において提供されるストレージデバイス、コンピューティングリソース124によって提供されるデータ転送デバイス等を含み得る。いくつかの実装では、コンピューティングリソース124は、有線接続、無線接続又は有線及び無線接続の組合せを介して、他のコンピューティングリソース124と通信し得る。
図1に更に示されるように、コンピューティングリソース124は、1つ以上のアプリケーション(「APP」)124-1、1つ以上の仮想マシン(「VM」)124-2、仮想化ストレージ(「VS」)124-3、1つ以上のハイパーバイザ(「HYP」)124-4等のようなクラウドリソースのグループを含む。
アプリケーション124-1は、ユーザデバイス110及び/又はプラットフォーム120に提供され得るか又はこれらによってアクセスされ得る、1つ以上のソフトウェアアプリケーションを含む。アプリケーション124-1は、ユーザデバイス110上にソフトウェアアプリケーションをインストールして実行する必要をなくすことができる。例えばアプリケーション124-1は、プラットフォーム120に関連付けられるソフトウェア及び/又はクラウドコンピューティング環境122を介して提供可能な任意の他のソフトウェアを含み得る。いくつかの実装では、1つのアプリケーション124-1が、仮想マシン124-2を介して、1つ以上の他のアプリケーション124-1へ/から情報を送信/受信し得る。
仮想マシン124-2は、物理マシンのような、プログラムを実行するマシン(例えばコンピュータ)のソフトウェア実装を含む。仮想マシン124-2は、仮想マシン124-2による任意の実マシンへの使用及び対応の程度に応じて、システム仮想マシン又はプロセス仮想マシンのいずれかであり得る。システム仮想マシンは、完全なオペレーティングシステム(「OS」)の実行をサポートする完全なシステムプラットフォームを提供し得る。プロセス仮想マシンは、単一のプログラムを実行し、単一のプロセスをサポートし得る。いくつかの実装では、仮想マシン124-2は、ユーザ(例えばユーザデバイス110)に代わって実行してよく、データ管理、同期化又は長時間データ転送のようなクラウドコンピューティング環境122のインフラストラクチャを管理し得る。
仮想化ストレージ124-3は、コンピューティングリソース124のストレージシステム又はデバイス内で仮想化技術を使用する、1つ以上のストレージシステム及び/又は1つ以上のデバイスを含む。いくつかの実装では、ストレージシステムのコンテキスト内では、仮想化のタイプは、ブロック仮想化及びファイル仮想化を含み得る。ブロック仮想化は、物理ストレージからの論理ストレージの抽象化(又は分離)を参照してよく、その結果、ストレージシステムは、物理ストレージ又は異種構造に関係なく、アクセスされ得る。この分離は、管理者がエンドユーザのストレージを管理する方法におけるストレージシステムの管理者の柔軟性を許容し得る。ファイル仮想化は、ファイルレベルでアクセスされるデータと、ファイルが物理的に記憶される場所との間の依存関係を排除し得る。これは、ストレージの使用、サーバ統合及び/又は非破壊的なファイルマイグレーション(non-disruptive file migrations)の性能の最適化を可能にし得る。
ハイパーバイザ124-4は、複数のオペレーティングシステム(例えば「ゲストオペレーティングシステム」)が、コンピューティングリソース124のようなホストコンピュータ上で同時に実行することを可能にするハードウェア仮想化技術を提供し得る。ハイパーバイザ124-4は、ゲストオペレーティングシステムに対して仮想オペレーティングプラットフォームを提示し得、ゲストオペレーティングシステムの実行を管理し得る。様々なオペレーティングシステムの複数のインスタンスは、仮想化ハードウェアリソースを共有し得る。
ネットワーク130は、1つ以上の有線及び/又は無線ネットワークを含む。例えばネットワーク130は、セルラーネットワーク(例えば第5世代(5G)ネットワーク、長期進化(LTE)ネットワーク、第3世代(3G)ネットワーク、コード分割多元接続(CDMA)ネットワーク等)、公衆陸上移動網(PLMN:public land mobile network)、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、電話網(例えば公衆交換電話網(PSTN))、プライベートネットワーク、アドホックネットワーク、イントラネット、インターネット、光ファイバベースのネットワーク等及び/又はこれら又は他のタイプのネットワークの組合せを含んでもよい。
図1に示されるデバイス及びネットワークの数及び配置は、一例として提供される。実際には、図1に示されるものよりも、追加のデバイス及び/又はネットワーク、より少ないデバイス及び/又はネットワーク、異なるデバイス及び/又はネットワーク又は異なるように配置されるデバイス及び/又はネットワークが存在し得る。さらに、図1に示される2つ以上のデバイスが、単一のデバイス内に実装されてもよく、あるいは図1に示される単一のデバイスが、複数の分散デバイスとして実装されて得る。加えて又は代替的に、環境100のデバイスのセット(例えば1つ以上のデバイス)は、環境100のデバイスの別のセットによって実行されるものとして説明される1つ以上の機能を実行し得る。
図2は、図1の1つ以上のデバイスの例示的な構成要素のブロック図である。
デバイス200は、ユーザデバイス110及び/又はプラットフォーム120に対応し得る。図2に示されるように、デバイス200は、バス210、プロセッサ220、メモリ230、記憶構成要素240、入力構成要素250、出力構成要素260及び通信インタフェース270を含み得る。
バス210は、デバイス200の構成要素間の通信を可能にする構成要素を含む。プロセッサ220は、ハードウェア、ファームウェア又はハードウェアとソフトウェアの組合せで実装される。プロセッサ220は、中央処理ユニット(CPU)、グラフィクス処理ユニット(GPU)、加速処理ユニット(APU)、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)又は別のタイプの処理構成要素である。いくつかの実装では、プロセッサ220は、機能を実行するようにプログラムされることが可能な1つ以上のプロセッサを含む。メモリ230は、ランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)及び/又はプロセッサ220による使用のための情報及び/又は命令を記憶する別のタイプの動的又は静的ストレージデバイス(例えばフラッシュメモリ、磁気メモリ及び/又は光メモリ)を含む。
記憶構成要素240は、デバイス200の操作及び使用に関連する情報及び/又はソフトウェアを記憶する。例えば記憶構成要素240は、ハードディスク(例えば磁気ディスク、光ディスク、光磁気ディスク及び/又はソリッドステートディスク)、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、フロッピーディスク、カートリッジ、磁気テープ及び/又は別のタイプの非一時的なコンピュータ読取可能媒体を、対応するドライブとともに含み得る。
入力構成要素250は、デバイス200が、ユーザ入力(例えばタッチスクリーンディスプレイ、キーボード、キーパッド、マウス、ボタン、スイッチ及び/又はマイクロホン)を介するなどして情報を受け取ることを可能にする構成要素を含む。加えて又は代替的に、入力構成要素250は、情報を感知するためのセンサ(例えば全地球測位システム(GPS)構成要素、加速度計、ジャイロスコープ及び/又はアクチュエータ)を含んでもよい。出力構成要素260は、デバイス200からの出力情報を提供する構成要素(例えばディスプレイ、スピーカ及び/又は1つ以上の発光ダイオード(LED))を含む。
通信インタフェース270は、デバイス200が有線接続、無線接続又は有線と無線接続の組合せを介するなどして他のデバイスと通信することを可能にする、トランシーバ状の構成要素(例えばトランシーバ及び/又は別個の受信機と送信機)を含む。通信インタフェース270は、デバイス200が別のデバイスから情報を受け取り、かつ/又は別のデバイスに情報を提供することを可能にし得る。例えば通信インタフェース270は、イーサネット(登録商標)インタフェース、光インタフェース、同軸インタフェース、赤外線インタフェース、無線周波数(RF)インタフェース、ユニバーサルシリアルバス(USB)インタフェース、Wi-Fiインタフェース、セルラーネットワークインタフェース等を含み得る。
デバイス200は、本明細書で説明される1つ以上のプロセスを実行し得る。デバイス200は、プロセッサ220が、メモリ230及び/又は記憶構成要素240のような、非一時的なコンピュータ読取可能媒体によって記憶されるソフトウェア命令を実行することに応答して、これらのプロセスを実行し得る。コンピュータ読取可能媒体は、本明細書では、非一時的なメモリデバイスとして定義される。メモリデバイスは、単一の物理ストレージデバイス内のメモリ空間又は複数の物理ストレージデバイスにわたって広がるメモリ空間を含む。
ソフトウェア命令は、別のコンピュータ読取可能媒体から又は通信インタフェース270を介して別のデバイスから、メモリ230及び/又は記憶構成要素240に読み込まれてよい。実行されると、メモリ230及び/又は記憶構成要素240に記憶されたソフトウェア命令は、プロセッサ220に、本明細書で説明される1つ以上のプロセスを実行させることができる。加えて又は代替的に、ハードワイヤード回路が、本明細書で説明される1つ以上のプロセスを実行するために、ソフトウェア命令の代わりに又はそれと組み合わせて使用されてよい。したがって、本明細書で説明される実施形態は、ハードウェア回路とソフトウェアの特定の組合せに限定されない。
図2に示される構成要素の数及び配置は、一例として提供される。実際には、デバイス200は、図2に示されるものよりも、追加の構成要素、より少ない構成要素、異なる構成要素又は異なる配置の構成要素を含んでもよい。加えて又は代替的に、デバイス200の構成要素(例えば1つ以上の構成要素)のセットは、デバイス200の構成要素の別のセットによって実行されるものとして説明される1つ以上の機能を実行してもよい。
マイクロ構造化パラメータ共有に基づく、マスク化マルチタスクニューラルネットワークを使用するマルチ品質ループフィルタのビデオ圧縮のための方法及び装置が、次に詳細に説明される。
典型的なビデオ圧縮フレームワークを、以下のように説明することができる。入力ビデオxが複数の画像フレームx1,...,xTを含む仮定する。第1の動き推定(motion estimation)ステップでは、フレームを空間ブロックに区分化し、各ブロックを、より小さなブロックに反復的に区分化することができ、各ブロックについて、現在のフレームxtと、一組の以前の再構成フレーム
(外1)
Figure 0007408835000001

との間の一組の動きベクトルmtが計算される。下付き文字tは、現在のt番目の符号化サイクルを示し、これは、画像フレームのタイムスタンプと一致しなくてよいことに留意されたい。また、以前の再構成フレーム
(外2)
Figure 0007408835000002

は、複数の以前の符号化サイクルからのフレームを含む。次に、第2の動き補償ステップでは、予測フレーム
(外3)
Figure 0007408835000003

が、動きベクトルmtと、元のフレームxtと予測フレーム
(外4)
Figure 0007408835000004

との間の残差rtとに基づいて、以前の再構成フレーム
(外5)
Figure 0007408835000005

の対応するピクセルをコピーすることによって取得される。第3のステップでは、残差rtが量子化される(典型的には、より良好な量子化性能を達成するためにrtのDCT係数が量子化される、DCTのような変換の後に)。量子化ステップの結果として、量子化フレーム
(外6)
Figure 0007408835000006

が得られる。動きベクトルmtと量子化フレーム
(外7)
Figure 0007408835000007

の両方が、エントロピーコーディングによってビットストリームに符号化され、デコーダに送信される。次いで、デコーダ側において、量子化フレーム
(外8)
Figure 0007408835000008

が、(典型的には、非量子化係数を用いるIDCTのような逆変換を通して)非量子化され、復元された残差
(外9)
Figure 0007408835000009

を取得する。次に、復元された残差
(外10)
Figure 0007408835000010

を予測フレーム
(外11)
Figure 0007408835000011
に加算して、再構成フレーム
(外12)
Figure 0007408835000012
を取得する。
再構成フレーム
(外13)
Figure 0007408835000013
の視覚品質を改善するために、追加の構成要素が更に使用される。デブロッキングフィルタ(DF)、サンプル適応オフセット(SAO)、適応ループフィルタ(ALF)、クロス構成要素適応ループフィルタ(CCALF)等を含む、以下の強化モジュール(enhancement modules)の1つ又は多数が、再構成フレーム
(外14)
Figure 0007408835000014
を処理するために選択され得る。選択されたモジュールの処理順序はこれに限定されず、変更することができる。
本開示の実施形態は、再構成フレーム
(外15)
Figure 0007408835000015
の視覚品質を強化するためのMQLFを提案する。目標は、再構成フレーム
(外16)
Figure 0007408835000016
におけるノイズ、ぼけ、ブロック効果のようなアーチファクトを低減させ、結果として高品質フレーム
(外17)
Figure 0007408835000017
を得ることである。具体的には、MTNNを使用して、高品質フレーム
(外18)
Figure 0007408835000018
を計算し、ここで、1つのモデルインスタンスが多数のQP値を収容することができる。バイナリMSMが各QP値に使用され、そのQP値に対するMTNNの推論計算をガイドする。
提案されるMQLFは、再構成フレーム
(外19)
Figure 0007408835000019

の視覚品質を改善するために、前述した追加の構成要素(すなわち、DF、SAO、ALF、CCALF等)の1つ又は多数と組み合わせて使用されることができる。例えば再構成フレーム
(外20)
Figure 0007408835000020
は、最初にDFを通過し、続いてMQLFを通過し、更に続いてSAOとALFを通過することができる。これらの構成要素が使用される順序は、任意に変更することができる。一例示的な実施形態では、提案される方法はまた、再構成フレーム
(外21)
Figure 0007408835000021
の視覚品質を強化するために、他のすべての構成要素の置き換えとして単独で使用されることもできる。
MQLFは、上述の追加の構成要素(例えばDF、SAO、ALF、CCALF等)の1つ又は多数と組み合わせて、フレームの各々におけるスライス/CUレベルの両方に使用され得る。言い換えると、再構成フレーム
(外22)
Figure 0007408835000022
は、スライススイッチオン(Slice switch On)が適用される場合のIフレームのように、1つのフレーム全体とすることができ、階層レベル0のフレームを示す。また、再構成フレーム
(外23)
Figure 0007408835000023

は、フレーム内のブロック、例えばCTUスイッチオン(CTU switch On)が適用される場合のCTUとすることができ、階層構造の下位レベルのフレームを示す。再構成フレーム
(外24)
Figure 0007408835000024

を計算する特定のビデオ圧縮方法(例えばHEVC、VVC)に対する制限はない。
図3は、実施形態に従った、テスト段階中の、マルチ品質ループフィルタ(MQLF:Multi-Quality Loop Filter)装置300のためのマイクロ構造化パラメータ共有によるマルチタスクニューラルネットワーク(MTNN:Multi-Task Neural Network)の推論のブロック図である。
図3に示されるように、テスト装置300は、MTNN推論モジュール310を含む。
サイズ(h,w,c)の入力
(外25)
Figure 0007408835000025

を所与とすると、h、w、cはそれぞれ、高さ、幅及びチャネルの数であり、MQLFの推論ワークフローのテスト段階を以下のように説明することができる。
MQLFは、1組の共有マルチタスク層(SMTL:Shared Multi-Task Layers)と1組のタスク固有層(TSL:Task-Specific Layers)という2つの部分に分けることができる、MTNNを使用する。SMTLのモデルパラメータは、異なるQP値にわたって共有される(すなわち、異なるQP値に対して同じ)。TSLのモデルパラメータは、各QP値について個別である。ある順序で、好ましくは入力フレーム
(外26)
Figure 0007408835000026

の低い方から高い方への再構成品質に対応する降順でランク付けられた、p個のQP値qp1,...,qppが存在すると仮定する。
(外27)
Figure 0007408835000027

が、SMTLの1組の重みパラメータを示すものとし、ここで、各
(外28)
Figure 0007408835000028

は、j番目の層の重みパラメータである。
(外29)
Figure 0007408835000029

が、QP値qpiに対応する1組のバイナリマスクを示すものとし、ここで、各バイナリマスク
(外30)
Figure 0007408835000030

は、j番目の層の重みパラメータ
(外31)
Figure 0007408835000031

と同じ形状を有する。バイナリマスク
(外32)
Figure 0007408835000032

の各エントリは1又は0であり、重みパラメータ
(外33)
Figure 0007408835000033

内の対応する重みエントリが、QP値qpiの推論計算に関与するかどうかを示す。
(外34)
Figure 0007408835000034

が、QP値qpiに対応するTSLの1組の重みパラメータを示すものとし、ここで、
(外35)
Figure 0007408835000035

は、j番目の層の重みパラメータである。層のタイプ(例えば畳み込み、正規化、完全接続など)及びSMTLとTSL内の層の位置に対して制限を設けない。例えばSTMLとTSLの層をインターレースして、MTNNを形成することができる。
重みパラメータ
(外36)
Figure 0007408835000036

の各々は、サイズ(c1,k1,k2,k3,c2)の一般的な5次元(5D)テンソルである。対応する層の入力は、サイズ(h1,w1,d1,c1)の4次元(4D)テンソルAであり、出力は、サイズ(h2,w2,d2,c2)の4DテンソルBである。サイズc1,k1,k2,k3,c2,h1,w1,d1,h2,w2,d2は、1以上の整数である。サイズc1,k1,k2,k3,c2,h1,w1,d1,h2,w2,d2のいずれかが1に等しいとき、対応するテンソルはより小さい次元に減少する。各テンソルの各アイテムは浮動数(floating number)である。パラメータh1,w1及びd1は入力Aの高さ、重み及び深度である。同様に、パラメータh2,w2及びd2は出力Bの高さ、重み及び深度である。パラメータc1は、入力Aの入力チャネルの数である。同様に、パラメータc2は、出力Bの出力チャネルの数である。パラメータk1,k2及びk3は、それぞれ高さ軸、重み軸、深度軸に対応する畳み込みカーネルのサイズである。出力Bは、入力Aと、重みパラメータ
(外37)
Figure 0007408835000037

と、可能な場合にはマスク
(外38)
Figure 0007408835000038

とに基づいて、畳み込み演算Θを通して計算される。重みパラメータ
(外39)
Figure 0007408835000039

については、マスク
(外40)
Figure 0007408835000040

もそれに関連付けられてよく、マスク
(外41)
Figure 0007408835000041

のすべてのエントリが1に設定されることに留意されたい。この観点から、個々のタスクとして、各個々のQP値について個々のモデルインスタンスをトレーニングする伝統的な方法は、本開示において提案される方法の特殊なケースとして見なされることができ、この場合、SMTLは層及びマスクを有さず、一方、TSLがすべての層を有する。
出力Bは、入力Aを、マスク化された重みと畳み込むことによって取得され得る:
Figure 0007408835000042
ここで、・は要素ごとの乗算である。
図3を参照すると、上記の学習された重みパラメータ
Figure 0007408835000043

及びマスク
Figure 0007408835000044

が、入力
(外42)
Figure 0007408835000045

及び関連付けられるターゲットQP値
(外43)
Figure 0007408835000046

とともに与えられると、対応するマスク
(外44)
Figure 0007408835000047

を使用して、SMTLのためのマスク化重みパラメータ
(外45)
Figure 0007408835000048

を生成し、QP値
(外46)
Figure 0007408835000049

についてのTSLの対応するサブネットワークが、重みパラメータ
(外47)
Figure 0007408835000050

を用いて選択される。次いで、SMTL推論のためのマスク化重みパラメータ
(外48)
Figure 0007408835000051

を使用し、かつTSL推論のための重みパラメータ
(外49)
Figure 0007408835000052

を使用して、MTNN推論モジュール310は、推論出力
(外50)
Figure 0007408835000053

を計算し、これは、強化された高品質の結果である。
各重みパラメータ
(外51)
Figure 0007408835000054

の形状は、同じ出力を取得するために、整形(reshaped)された入力の、整形された
(外52)
Figure 0007408835000055

との畳み込みに対応して、変更されることができる。同様に、各マスク
(外53)
Figure 0007408835000056

の形状も変更することもできる。実施形態において、各重みパラメータの形状は、2つの構成をとり得る。まず、5D重みテンソルを、サイズ(c1’,c2’,k)の3Dテンソルに整形し、ここで、c1’×c2’×k=c1×c2×k1×k2×k3である。例えば構成はc1’=c1,c2’=c,k=k1×k2×k3である。次に、5D重みテンソルを、(c1’,c2’)の2D行列に整形し、ここで、c1’×c2’=c1×c2×k1×k2×k3である。例えばいくつかの構成は、c1’=c1,c2’=c2×k1×k2×k3又はc2’=c2,c1’=c×k1×k2×k3を含む。
マスクの所望のマイクロ構造は、マスク化重みパラメータを使用する推論計算を加速することができるように、畳み込み演算が実装される方法の基礎となるGEMM行列乗算プロセスと整合するように設計される。実施形態では、ブロックごと(block-wise)のマイクロ構造が、3D整形重みテンソル又は2D整形重み行列における各層のマスク(すなわち、マスク化重みパラメータ)に使用される。具体的には、整形された3D重みテンソルの場合、ブロックは、サイズ(g1’,g2’,gk)のブロックに区分化される。整形された2D重み行列の場合、ブロックは、(g1’,g2’)のブロックに区分化される。g1’,g2’,gkのいずれかがサイズ1をとると、対応するブロックはより小さい次元に減少する。マスクのブロック内のすべてのアイテムは、同じバイナリ値、1又は0を有する。すなわち、重みパラメータは、ブロックごとのマイクロ構造化の方式でマスクされる。
実施形態によるNNモデルのトレーニングプロセスを次に説明する。提案される多段階トレーニングフレームワークの全体的なワークフローが図4に示されている。トレーニング段階の目標は、MTNNモデルインスタンスを、重みパラメータ
(外54)
Figure 0007408835000057

と、1組のマイクロ構造化マスク
(外55)
Figure 0007408835000058

で学習し、各マスク
(外56)
Figure 0007408835000059

及び重みパラメータ
(外57)
Figure 0007408835000060

は、関心のあるQP値qpiの各QP値をターゲットとしている。この目標を達成するために、漸進的な多段階トレーニングフレームワークが使用され得る。
図4は、実施形態に従った、トレーニング段階中の、マイクロ構造化マスクによるマルチタスクニューラルネットワークのビデオ圧縮のためのトレーニング装置400のブロック図である。
図4に示されるように、トレーニング装置400は、重み充填モジュール410と、マイクロ構造化プルーニングモジュール420とを含む。
現在のタスクが、QP値qpiをターゲットとするマスク、重み
(外58)
Figure 0007408835000061

を有する現在のモデルインスタンス及び対応するマスク
(外59)
Figure 0007408835000062

をトレーニングすることであると仮定する。また、現在のQP値qpiは、学習すべき重みパラメータ
(外60)
Figure 0007408835000063

を有する、それらの対応するTSLを有する。言い換えると、目標は、マスク
(外61)
Figure 0007408835000064

と、更新された重みパラメータ
(外62)
Figure 0007408835000065

と、新しい重みパラメータ
(外63)
Figure 0007408835000066

を取得することである。
まず、マスク
(外64)
Figure 0007408835000067

によってマスク化重みパラメータ
(外65)
Figure 0007408835000068

がフィックス(fix)される。例えば対応するマスクエントリ
(外66)
Figure 0007408835000069

が1である重みパラメータである。次いで、学習プロセスが重み充填モジュール410を通して実施され、SMTLの
(外67)
Figure 0007408835000070

内の残りのフィックスされていない重みと、TSLの重み
(外68)
Figure 0007408835000071

を満たす(fill up)。この結果、一組の更新された重みパラメータ
(外69)
Figure 0007408835000072

が得られる。
次いで、マイクロ構造化プルーニングモジュール420は、1組の更新された重みパラメータ
(外70)
Figure 0007408835000073

と、マスク
(外71)
Figure 0007408835000074

と、
(外72)
Figure 0007408835000075

とに基づいて、マイクロ構造化プルーニングを実行して、プルーニングされたモデルインスタンス及びマスク、
(外73)
Figure 0007408835000076

を取得する。
図5は、実施形態に従った、トレーニング段階中の、図4の重み充填モジュール410のワークフローである。
図5に示されるように、重み充填モジュール410は、MTNN推論モジュール320、重み固定及び充填モジュール510、損失計算モジュール520、追加損失計算モジュール530及び、バックプロパゲーション(Back-Propagation)及び重み更新モジュール540を含む。
現在の重み
(外74)
Figure 0007408835000077

と、対応するマスク
(外75)
Figure 0007408835000078

が与えられると、
(外76)
Figure 0007408835000079

によってマスクされる
(外77)
Figure 0007408835000080

内の重みパラメータは、重み固定及び充填モジュール510においてフィックスされる。次いで、
(外78)
Figure 0007408835000081

内の残りの重みパラメータが再初期化(reinitialized)される。例えばこれは、それらをいくつかのランダムな初期値に設定すること又は重み
(外79)
Figure 0007408835000082

を有する第1の完全なモデルのような、以前に学習された完全なモデルの対応する重みを使用することによって行われてよい。これはSMTLの重みパラメータ
(外80)
Figure 0007408835000083

を与える。TSLの重みパラメータ
(外81)
Figure 0007408835000084

も初期化される(例えばそれらをいくつかのランダムな初期値に設定すること又は現在のQP値qpiについてトレーニングされた個々の完全なモデルのような、何らかの以前に学習された完全なモデルの対応する重みを使用することによって)。その後、トレーニング入力
(外82)
Figure 0007408835000085

はMTNNを通過して、STML推論のための重みパラメータ
(外83)
Figure 0007408835000086

及びTSL推論のための重みパラメータ
(外84)
Figure 0007408835000087

を使用して、MTNN推論モジュール320において、出力
(外85)
Figure 0007408835000088

を計算する。
トレーニングの目的のために、各トレーニング入力
(外86)
Figure 0007408835000089

は、QP値qpiに対して対応するグラウンドトゥルース(ground-truth)
(外87)
Figure 0007408835000090
を有する。例えばトレーニング入力
(外88)
Figure 0007408835000091
は、QP値qpiを使用するビデオ圧縮方法でグラウンドトゥルース
(外89)
Figure 0007408835000092
の圧縮されたバージョンから再構成される。トレーニングの一般的な目標は、グラウンドトゥルース
(外90)
Figure 0007408835000093
と推定される出力
(外91)
Figure 0007408835000094
との間の歪みを最小限にすることである。損失計算モジュール520は、MSEやSSIMのような、グラウンドトゥルース
(外92)
Figure 0007408835000095
と推定される出力
(外93)
Figure 0007408835000096
との間の歪みを測定するために、歪み損失
Figure 0007408835000097
を計算する。いくつかの例示的な実施形態では、追加損失計算モジュール530は、トレーニングプロセスを規則化するのを助けるために、他の損失を計算することができる。例えば知覚損失を使用することができ、この場合、VGGのような特徴抽出NNへの入力としてグラウンドトゥルース
(外94)
Figure 0007408835000098
又は推定される出力
(外95)
Figure 0007408835000099
のいずれかを渡すことによって、特徴マップを計算することができ、グラウンドトゥルース
(外96)
Figure 0007408835000100
及び推定される出力
(外97)
Figure 0007408835000101
によって計算された特徴マップの間の差異を測定し、重み付けし、歪み損失
Figure 0007408835000102
と組み合わせることができる。また、敵対的損失(adversarial loss)が使用されてもよく、この場合、弁別器(discriminator)が、
、グラウンドトゥルース
(外98)
Figure 0007408835000103

又は推定される出力
(外99)
Figure 0007408835000104

が、元(original)の入力であるか又はMTNNによる生成された入力であるかを分類しようと試みる。分類損失が、敵対的損失として使用され、重み付けされ、歪み損失
Figure 0007408835000105
と組み合わせることができる。バックプロパゲーション及び重み更新モジュール540は、この組み合わされた損失(又は他の損失が使用されない場合には、
Figure 0007408835000106
)の勾配を計算し、SMTLのフィックスされていない重みパラメータ
(外100)
Figure 0007408835000107
及びTSLの重みパラメータ
(外101)
Figure 0007408835000108

を更新する。このバックプロパゲーション及び重み更新モジュール540では、(例えば最大反復数に達するまで又は損失が収束するまで)複数の反復が行われてよい。
図6は、実施形態に従った、トレーニング段階中の、図4のマイクロ構造化プルーニングモジュール420の詳細なワークフローである。
図6に示されるように、マイクロ構造化プルーニングモジュール420は、MTNN推論モジュール320、損失計算モジュール520、追加損失計算モジュール530、バックプロパゲーション及び重み更新モジュール540及びプルーニングマスク計算モジュール610を含む。
まず、重み充填モジュール410からのSMTLの更新された重み
(外102)
Figure 0007408835000109

とTSLの重み
(外103)
Figure 0007408835000110

、並びに現在のマスク
(外104)
Figure 0007408835000111

が与えられると、プルーニングマスク計算モジュール610はプルーニングマスクを計算する。詳細には、
(外105)
Figure 0007408835000112

によってマスクされる更新された重みパラメータ
(外106)
Figure 0007408835000113

は、
(外107)
Figure 0007408835000114

内の残りのフィックスされていない重みパラメータについて、フィックスされ、前述のように、各マイクロ構造化ブロックbについて、プルーニング損失Lp(b)が計算される(例えばブロック内の重みのL1又はL2ノルム)。プルーニングマスク計算モジュール610は、マイクロ構造化ブロックを、それらの、プルーニング損失Lp(b)に基づいて昇順にランク付けし、ブロックは、停止基準に到達するまで、ランク付けされたリストからトップダウンにプルーニングされる(例えばプルーニングされたブロック内の対応する重みを0に設定することによって)。例えば検証データセットSvalが与えられると、重み
Figure 0007408835000115

を有するMTNNモデルは、次のように歪み損失Lvalを生成する:
Figure 0007408835000116
より多くのマイクロブロックがプルーニングされるにつれて、この歪み損失Lvalは徐々に増加する。停止基準は、歪み損失Lvalが増加することを可能にする相当なパーセンテージ閾値(tolerable percentage threshold)とすることができる。停止基準はまた、プルーニングされるマイクロ構造化ブロックの単純なパーセンテージ(例えば50%)とすることができる。1組のバイナリプルーニングマスク
(外108)
Figure 0007408835000117

を生成することができ、ここで、プルーニングマスク
(外109)
Figure 0007408835000118

内のエントリは1であり、これは、
(外110)
Figure 0007408835000119

内の対応する重みパラメータがプルーニングされることを意味する。次いで、バックプロパゲーション及び重み更新モジュール540において、プルーニングされているとしてマスク
(外111)
Figure 0007408835000120

によってマスクされる重み
(外112)
Figure 0007408835000121

内の追加のフィックスされていない重みがフィックスされ、プルーニングマスク
(外113)
Figure 0007408835000122

のいずれによってもマスクされない残りの重み
(外114)
Figure 0007408835000123

が更新され、重み
(外115)
Figure 0007408835000124

が定期的なバックプロパゲーションによって更新されて、トレーニングデータに対して、組み合わされた損失(他の損失が使用されない場合は、歪み損失
Figure 0007408835000125

)を最適化する。複数の反復が、例えば反復の最大数に達するまで又は損失が収束するまで行われ得る。
対応するマスク
(外116)
Figure 0007408835000126
を次のように計算することができる:
Figure 0007408835000127
すなわち、
(外117)
Figure 0007408835000128
においてマスクされていない
(外118)
Figure 0007408835000129
内のプルーニングされていないエントリは更に、
(外119)
Figure 0007408835000130
においてマスクされているとして1に設定される。また、上記のマイクロ構造化重みプルーニングプロセスは、更新された重み
(外120)
Figure 0007408835000131
を出力する。上記のマイクロ構造化プルーニングプロセスは任意に、モデルサイズ及び推論計算を更に低減するために、重み
(外121)
Figure 0007408835000132
に適用することもできることに留意されたい。すなわち、プルーニングマスク計算モジュール610はまた、TSLの重みをマイクロ構造に整形して区分化し、これらのマイクロ構造のプルーニング損失を計算し、プルーニング損失が小さい最上位にランク付けされたマイクロ構造をプルーニングすることができる。また、任意に、MTNN再構成品質と記憶及び計算のバランスを取るためにそうすることを選択することもできる。
最終的に、最後に更新された重み
(外122)
Figure 0007408835000133
は、MQLFのための学習されたMTNNモデルインスタンスのSMTLについての最終的な出力重み
(外123)
Figure 0007408835000134
である。
図7は、実施形態に従った、共有マルチタスク層、タスク固有層及びマイクロ構造化マスクを有するMTNNを使用するMQLFによるビデオ圧縮のための方法700のフローチャートである。
いくつかの実装では、図7の1つ以上のプロセスブロックは、プラットフォーム120によって実行されてもよい。いくつかの実装では、図7の1つ以上のプロセスブロックは、ユーザデバイス110のような、プラットフォーム120から分離された又はプラットフォーム120を含む、別のデバイス又はデバイスのグループによって実行されてもよい。
図7に示されるように、動作710において、方法700は、ニューラルネットワークの第1の層のセットについて、第1のマスクのセット及び第1の複数の重みパラメータを用いて入力と複数の量子化パラメータ値とに基づいて、第1のマスク化重みパラメータのセットを生成することを含む。第1のマスクのセット内の各マスクは、第1の複数の重みパラメータのうちの対応する1つが、推論出力を計算するために使用されるかどうかを示すバイナリ値であり得る。加えて、第1のマスク化重みパラメータのセットは、第1の複数の重みパラメータ及び第1のマスクのセットの畳み込みを実行することによって取得され得る。
動作720において、方法700は、複数の量子化パラメータ値に基づいて、第2の複数の重みパラメータを用いて、複数の量子化パラメータ値について、ニューラルネットワークの第2の層のセットを選択することを含む。第2の複数の重みパラメータに対応する第2のマスクのセットを選択することもできる。
動作730において、方法700は、第1のマスク化重みパラメータのセットと、第2の複数の重みパラメータとに基づいて推論出力を計算することを含む。
動作740において、方法700は、計算された推論出力を出力することを含む。
図7は方法の例示的なブロックを示しているが、いくつかの実装では、この方法は、図7に示されるものよりも、追加のブロック、より少ないブロック、異なるブロック又は異なる配置のブロックを含んでもよい。加えて又は代替的に、方法のブロックのうちの2つ以上が並行に実行されてよい。
例えば方法700の動作は、ニューラルネットワークを、ニューラルネットワークの第1の層のセットとニューラルネットワークの第2の層のセットに分裂させることを含んでもよい。ニューラルネットワークの第1の層のセットのモデルパラメータは、異なる量子化パラメータ値にわたって共有される共有層であってよく、共有層の各々について第1の複数の重みパラメータのうちの対応する1つを有する。ニューラルネットワークの第2の層のセットのモデルパラメータは、量子化パラメータ値の各々に対して異なるタスク固有層であり、該タスク固有層の各々について第2の複数の重みパラメータのうちの対応する1つを有する。
ニューラルネットワークは、入力、推論出力及びそれぞれの量子化パラメータ値に基づいて決定される歪み損失を最小化するために、第1のマスクのセットによってそれぞれマスクされていない第1の複数の重みパラメータの1つ以上を更新することによって、トレーニングされる。さらに、ニューラルネットワークは、第1のマスクのセットによってそれぞれマスクされていない第1の複数の重みパラメータのうちの更新された1つ以上をプルーニングして、第1の複数の重みパラメータのうちのどれがプルーニングされたかを示すバイナリプルーニングマスクを取得することと、歪み損失を最小化するために、第1のマスクのセットによってそれぞれマスクされていない第1の複数の重みパラメータと、取得されたバイナリプルーニングマスクのうちの少なくとも一方を更新することとによってトレーニングされる。
図8は、実施形態に従った、共有マルチタスク層、タスク固有層及びマイクロ構造化マスクを有するMTNNを使用するMQLFによるビデオ圧縮のための装置800のブロック図である。
図8に示されるように、装置800は、生成コード810、第1選択コード820及び計算コード830を含む。
生成コード810は、少なくとも1つのプロセッサに、ニューラルネットワークの第1の層のセットについて、第1のマスクのセット及び第1の複数の重みパラメータを用いて入力と複数の量子化パラメータ値とに基づいて、第1のマスク化重みパラメータのセットを生成させるよう構成される。第1のマスクのセット内の各マスクは、第1の複数の重みパラメータのうちの対応する1つが、推論出力を計算するために使用されるかどうかを示すバイナリ値であり得る。
第1選択コード820は、少なくとも1つのプロセッサに、複数の量子化パラメータ値に基づいて、第2の複数の重みパラメータを用いて、複数の量子化パラメータ値について、ニューラルネットワークの第2の層のセットを選択させるよう構成される。
計算コード830は、少なくとも1つのプロセッサに、第1のマスク化重みパラメータのセットと第2の複数の重みパラメータとに基づいて、推論出力を計算させるよう構成される。
出力コード840は、少なくとも1つのプロセッサに、計算された推論出力を出力させるよう構成される。
図8は装置の例示的なブロックを示しているが、いくつかの実装では、装置は、図8に示されたものよりも、追加のブロック、より少ないブロック、異なるブロック又は異なる配置のブロックを含んでもよい。加えて又は代替的に、装置のブロックのうちの2つ以上が組み合わされてもよい。
例えば装置800は、少なくとも1つのプロセッサに、ニューラルネットワークを、ニューラルネットワークの第1の層のセットとニューラルネットワークの第2の層のセットに分裂させるよう構成される分裂コードを含んでもよく、ニューラルネットワークの第1の層のセットのモデルパラメータは、異なる量子化パラメータ値にわたって共有される共有層であり、該共有層の各々について第1の複数の重みパラメータのうちの対応する1つを有し、ニューラルネットワークの第2の層のセットのモデルパラメータは、量子化パラメータ値の各々に対して異なるタスク固有層であり、該タスク固有層の各々について第2の複数の重みパラメータのうちの対応する1つを有する。
ニューラルネットワークは、入力、推論出力及びそれぞれの量子化パラメータ値に基づいて決定される歪み損失を最小化するために、第1のマスクのセットによってそれぞれマスクされていない第1の複数の重みパラメータのうちの1つ以上を更新すること、第1のマスクのセットによってそれぞれマスクされていない第1の複数の重みパラメータのうちの更新された1つ以上をプルーニングして、第1の複数の重みパラメータのうちのどれがプルーニングされたかを示すバイナリプルーニングマスクを取得することと、歪み損失を最小化するために、第1のマスクのセットによってそれぞれマスクされていない第1の複数の重みパラメータと、取得されたバイナリプルーニングマスクのうちの少なくとも一方を更新することと、によってトレーニングされ得る。
さらに、装置800は、少なくとも1つのプロセッサに、第2の複数の重みパラメータに対応する第2のマスクのセットを選択させるよう構成される第2選択コードと、少なくとも1つのプロセッサに、第1の複数の重みパラメータ及び第1のマスクのセットの畳み込みを実行して、第1のマスク化重みパラメータのセットを取得させるよう構成される実行コードとを更に含み得る。
従来のループフィルタリング又はNNベースのループフィルタリング方法と比較して、実施形態は、多数のバイナリマスクを使用することによって多数のQP値の圧縮に対応するために、1つのMTNNモデルインスタンスを使用することを説明する。ブロックごとのマイクロ構造化マスクは、個々のQP値の圧縮性能も保持し、推論計算を低減することができる。この方法は、多数のQP値を使用する圧縮のための展開記憶域を大幅に低減する。また、様々なタイプの基礎となるNNLF法及びモデルアーキテクチャ、並びに様々な形状のマイクロ構造を収容する、柔軟で一般的なフレームワークも提供する。
提案される方法は、別個に又は任意の順序で組み合わせて使用されてよい。さらに、方法(又は実施形態)の各々は、処理回路(例えば1つ以上のプロセッサ又は1つ以上の集積回路)によって実装されてもよい。一例では、1つ以上のプロセッサは、非一時的なコンピュータ読取可能媒体に記憶されるプログラムを実行する。
前述の開示は、例示及び説明を提供するが、網羅的であるように意図されておらず、また、実装を開示された正確な形態に限定するようにも意図されていない。修正及び変形が、上記の開示に照らして可能であり、あるいは実装の実践から取得され得る。
本明細書で使用されるとき、構成要素という用語は、ハードウェア、ファームウェア又はハードウェアとソフトウェアの組合せとして広く解釈されるように意図される。
本明細書で説明されるシステム及び/又は方法は、ハードウェア、ファームウェア又はハードウェアとソフトウェアの組合せの異なる形態で実装されてもよいことは明らかであろう。これらのシステム及び/又は方法を実装するために使用される実際の特殊化された制御ハードウェア又はソフトウェアコードは、実装を限定するものではない。したがって、システム及び/又は方法の動作及び挙動は、本明細書において、特定のソフトウェアコードを参照することなく記載されており、ソフトウェア及びハードウェアは、本明細書の記載に基づいてシステム及び/又は方法を実装するように設計され得ることが理解される。
特徴の組合せが特許請求の範囲に記載され、かつ/又は明細書に開示されているとしても、これらの組合せは、可能な実施の開示を限定するように意図されていない。実際、これらの特徴の多くは、特許請求の範囲に具体的に記載されていない及び/又は明細書に開示されていない方法で組み合わされてもよい。以下に列挙される各従属請求項は、1の請求項のみに直接従属することがあるが、可能な実装の開示は、クレームセット内のすべての他の請求項との組合せで各従属請求項を含む。
本明細書中で使用される要素、動作又は命令は、明示的に記述されない限り、重要又は必須と解釈され得ない。また、本明細書で使用されるとき、冠詞「a」及び「an」は、1つ以上のアイテムを含むように意図されており、「1つ以上」と互換的に使用されてよい。さらに、本明細書で使用されるとき、「セット」という用語は、1つ以上のアイテム(例えば関連するアイテム、関連しないアイテム、関連するアイテムと関連しないアイテムの組合せ等)を含むように意図されており、「1つ以上」と互換的に使用されてよい。1つのアイテムのみが意図されている場合、「1」という用語又は類似の言語が使用される。また、本明細書で使用されるとき、「有する(has、have、having)」等は、オープンエンドの用語であるように意図されている。さらに、「に基づいて」というフレーズは、明示的に別段の記載がない限り、「少なくとも部分的に基づいて」を意味するように意図されている。

Claims (15)

  1. マルチタスクニューラルネットワークを使用するマルチ品質ループフィルタでビデオを処理する方法であって、当該方法は、少なくとも1つのプロセッサによって実行され、当該方法は、
    ニューラルネットワークの第1の層のセットについて、第1のマスクのセット及び第1の複数の重みパラメータを用いて入力と複数の量子化パラメータ値とに基づいて、第1のマスク化重みパラメータのセットを生成するステップと、
    前記複数の量子化パラメータ値に基づいて、第2の複数の重みパラメータを用いて、前記複数の量子化パラメータ値について、前記ニューラルネットワークの第2の層のセットを選択するステップと、
    前記第1のマスク化重みパラメータのセットと前記第2の複数の重みパラメータとに基づいて、推論出力を計算するステップと、
    前記計算された推論出力を出力するステップと、
    を含む、方法。
  2. 前記ニューラルネットワークを、前記ニューラルネットワークの前記第1の層のセットと前記ニューラルネットワークの前記第2の層のセットとに分裂させるステップを更に含み、
    前記ニューラルネットワークの前記第1の層のセットのモデルパラメータは、異なる量子化パラメータ値にわたって共有される共有層であり、該共有層の各々について前記第1の複数の重みパラメータのうちの対応する1つを有し、
    前記ニューラルネットワークの前記第2の層のセットのモデルパラメータは、前記量子化パラメータ値の各々に対して異なるタスク固有層であり、該タスク固有層の各々について前記第2の複数の重みパラメータのうちの対応する1つを有する、
    請求項1に記載の方法。
  3. 前記第1のマスクのセット内の各マスクは、前記第1の複数の重みパラメータのうちの対応する1つが、前記推論出力を計算するために使用されるかどうかを示すバイナリ値である、
    請求項1に記載の方法。
  4. 前記ニューラルネットワークは、前記入力、前記推論出力及びそれぞれの量子化パラメータ値に基づいて決定される歪み損失を最小化するために、前記第1のマスクのセットによってそれぞれマスクされていない前記第1の複数の重みパラメータのうちの1つ以上を更新することによってトレーニングされる、
    請求項1に記載の方法。
  5. 前記ニューラルネットワークは、
    前記第1のマスクのセットによってそれぞれマスクされていない前記第1の複数の重みパラメータのうちの前記更新された1つ以上をプルーニングして、前記第1の複数の重みパラメータのうちのどれがプルーニングされたかを示すバイナリプルーニングマスクを取得することと、
    前記歪み損失を最小化するために、前記第1のマスクのセットによってそれぞれマスクされていない前記第1の複数の重みパラメータと、前記取得されたバイナリプルーニングマスクのうちの少なくとも一方を更新することと、
    によって更にトレーニングされる、請求項4に記載の方法。
  6. 前記第2の複数の重みパラメータに対応する第2のマスクのセットを選択するステップを更に含む、
    請求項1に記載の方法。
  7. 前記第1の複数の重みパラメータ及び前記第1のマスクのセットの畳み込みを実行して、前記第1のマスク化重みパラメータのセットを取得するステップを更に含む、
    請求項1に記載の方法。
  8. マルチタスクニューラルネットワークを使用するマルチ品質ループフィルタでビデオを処理するための装置であって、
    プログラムコードを記憶するよう構成される少なくとも1つのメモリと、
    前記プログラムコードを読み出し、前記プログラムコードによって指示されるように動作するよう構成される少なくとも1つのプロセッサと、
    を含み、前記プログラムコードは、
    前記少なくとも1つのプロセッサに、ニューラルネットワークの第1の層のセットについて、第1のマスクのセット及び第1の複数の重みパラメータを用いて入力と複数の量子化パラメータ値とに基づいて、第1のマスク化重みパラメータのセットを生成させるよう構成される生成コードと、
    前記少なくとも1つのプロセッサに、前記複数の量子化パラメータ値に基づいて、第2の複数の重みパラメータを用いて、前記複数の量子化パラメータ値について、前記ニューラルネットワークの第2の層のセットを選択させるよう構成される第1選択コードと、
    前記少なくとも1つのプロセッサに、前記第1のマスク化重みパラメータのセットと前記第2の複数の重みパラメータとに基づいて、推論出力を計算させるよう構成される計算コードと、
    前記少なくとも1つのプロセッサに、前記計算された推論出力を出力させるよう構成される出力コードと、
    を含む、装置。
  9. 前記プログラムコードは、前記少なくとも1つのプロセッサに、前記ニューラルネットワークを、前記ニューラルネットワークの前記第1の層のセットと前記ニューラルネットワークの前記第2の層のセットとに分裂させるよう構成される分裂コードを更に含み、
    前記ニューラルネットワークの前記第1の層のセットのモデルパラメータは、異なる量子化パラメータ値にわたって共有される共有層であり、該共有層の各々について前記第1の複数の重みパラメータのうちの対応する1つを有し、
    前記ニューラルネットワークの前記第2の層のセットのモデルパラメータは、前記量子化パラメータ値の各々に対して異なるタスク固有層であり、該タスク固有層の各々について前記第2の複数の重みパラメータのうちの対応する1つを有する、
    請求項8に記載の装置。
  10. 前記第1のマスクのセット内の各マスクは、前記第1の複数の重みパラメータのうちの対応する1つが、前記推論出力を計算するために使用されるかどうかを示すバイナリ値である、
    請求項8に記載の装置。
  11. 前記ニューラルネットワークは、前記入力、前記推論出力及びそれぞれの量子化パラメータ値に基づいて決定される歪み損失を最小化するために、前記第1のマスクのセットによってそれぞれマスクされていない前記第1の複数の重みパラメータのうちの1つ以上を更新することによってトレーニングされる、
    請求項8に記載の装置。
  12. 前記ニューラルネットワークは、
    前記第1のマスクのセットによってそれぞれマスクされていない前記第1の複数の重みパラメータのうちの前記更新された1つ以上をプルーニングして、前記第1の複数の重みパラメータのうちのどれがプルーニングされたかを示すバイナリプルーニングマスクを取得することと、
    前記歪み損失を最小化するために、前記第1のマスクのセットによってそれぞれマスクされていない前記第1の複数の重みパラメータと、前記取得されたバイナリプルーニングマスクのうちの少なくとも一方を更新することと、
    によって更にトレーニングされる、請求項11に記載の装置。
  13. 前記少なくとも1つのプロセッサに、前記第2の複数の重みパラメータに対応する第2のマスクのセットを選択させるよう構成される第2選択コードを更に含む、
    請求項8に記載の装置。
  14. 前記少なくとも1つのプロセッサに、前記第1の複数の重みパラメータ及び前記第1のマスクのセットの畳み込みを実行して、前記第1のマスク化重みパラメータのセットを取得させるよう構成される実行コードを更に含む、
    請求項8に記載の装置。
  15. 少なくとも1つのプロセッサによって実行されると、該少なくとも1つのプロセッサに、請求項1乃至7のいずれか一項に記載の方法を実行させるコンピュータプログラム。
JP2022561031A 2021-01-11 2021-10-14 マルチタスクニューラルネットワークを使用するマルチ品質ループフィルタによるビデオ処理の方法、装置及びコンピュータプログラム Active JP7408835B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202163135994P 2021-01-11 2021-01-11
US63/135,994 2021-01-11
US17/500,339 2021-10-13
US17/500,339 US20220222505A1 (en) 2021-01-11 2021-10-13 Multi-task neural network by micro-structured parameter sharing for multi-quality loop filter
PCT/US2021/055036 WO2022150082A1 (en) 2021-01-11 2021-10-14 Multi-task neural network by micro-structured parameter sharing for multi-quality loop filter

Publications (2)

Publication Number Publication Date
JP2023522163A JP2023522163A (ja) 2023-05-29
JP7408835B2 true JP7408835B2 (ja) 2024-01-05

Family

ID=82321908

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022561031A Active JP7408835B2 (ja) 2021-01-11 2021-10-14 マルチタスクニューラルネットワークを使用するマルチ品質ループフィルタによるビデオ処理の方法、装置及びコンピュータプログラム

Country Status (6)

Country Link
US (1) US20220222505A1 (ja)
EP (1) EP4101072A4 (ja)
JP (1) JP7408835B2 (ja)
KR (1) KR20220166844A (ja)
CN (1) CN115462002B (ja)
WO (1) WO2022150082A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019031410A1 (ja) 2017-08-10 2019-02-14 シャープ株式会社 画像フィルタ装置、画像復号装置、および画像符号化装置
US20200120340A1 (en) 2017-07-06 2020-04-16 Samsung Electronics Co., Ltd. Method and device for encoding or decoding image

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101998036B1 (ko) * 2017-12-06 2019-07-08 한국과학기술원 왜곡 제거 방법 및 장치
US11457244B2 (en) * 2018-04-09 2022-09-27 Nokia Technologies Oy Apparatus, a method and a computer program for video coding and decoding

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200120340A1 (en) 2017-07-06 2020-04-16 Samsung Electronics Co., Ltd. Method and device for encoding or decoding image
WO2019031410A1 (ja) 2017-08-10 2019-02-14 シャープ株式会社 画像フィルタ装置、画像復号装置、および画像符号化装置

Also Published As

Publication number Publication date
US20220222505A1 (en) 2022-07-14
CN115462002A (zh) 2022-12-09
CN115462002B (zh) 2024-07-12
KR20220166844A (ko) 2022-12-19
EP4101072A1 (en) 2022-12-14
WO2022150082A1 (en) 2022-07-14
JP2023522163A (ja) 2023-05-29
EP4101072A4 (en) 2023-06-21

Similar Documents

Publication Publication Date Title
JP7374340B2 (ja) ニューラル画像圧縮のためのタスク適応型前処理のための方法、装置およびコンピュータプログラム
JP7411113B2 (ja) 品質入力を有するループフィルタのためのマスクされたニューラルネットワークによるモデル共有
JP7551206B2 (ja) イントラ予測残差を用いたマルチスケールニューラル画像圧縮のための方法および装置、およびコンピュータプログラム
JP7408835B2 (ja) マルチタスクニューラルネットワークを使用するマルチ品質ループフィルタによるビデオ処理の方法、装置及びコンピュータプログラム
US20220335655A1 (en) Substitutional input optimization for adaptive neural image compression with smooth quality control
US11652994B2 (en) Neural image compression with adaptive intra-prediction
JP7471734B2 (ja) メタ学習による滑らかな品質管理を用いた品質適応型のニューラル・ネットワーク・ベースのループフィルタ
JP7438611B2 (ja) 品質適応型ニューラル・ネットワーク・ベースのループフィルタのための代替品質ファクター学習
JP7434605B2 (ja) メタ学習によるスムーズな品質制御を用いた適応ニューラル画像圧縮のための方法、装置、非一時的コンピュータ可読媒体、およびコンピュータプログラム
JP7425870B2 (ja) 積み重ね可能な入れ子モデル構造及びマイクロ構造化された重み統一によるマルチレートニューラル画像圧縮のための方法及び装置
US20230186081A1 (en) System, method, and computer program for iterative content adaptive online training in neural image compression
US20230186526A1 (en) System, method, and computer program for content adaptive online training for multiple blocks based on certain patterns

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221006

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20231115

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20231121

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231220

R150 Certificate of patent or registration of utility model

Ref document number: 7408835

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150