JP2023506035A - ニューラルネットワークモデル圧縮のための統合ベースの符号化のための方法、装置およびコンピュータプログラム - Google Patents

ニューラルネットワークモデル圧縮のための統合ベースの符号化のための方法、装置およびコンピュータプログラム Download PDF

Info

Publication number
JP2023506035A
JP2023506035A JP2022535885A JP2022535885A JP2023506035A JP 2023506035 A JP2023506035 A JP 2023506035A JP 2022535885 A JP2022535885 A JP 2022535885A JP 2022535885 A JP2022535885 A JP 2022535885A JP 2023506035 A JP2023506035 A JP 2023506035A
Authority
JP
Japan
Prior art keywords
weights
encoding method
uniform
encoded
quantization
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.)
Granted
Application number
JP2022535885A
Other languages
English (en)
Other versions
JP7463012B2 (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 JP2023506035A publication Critical patent/JP2023506035A/ja
Application granted granted Critical
Publication of JP7463012B2 publication Critical patent/JP7463012B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • 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
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • 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
    • 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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/48Indexing scheme relating to groups G06F7/48 - G06F7/575
    • G06F2207/4802Special implementations
    • G06F2207/4818Threshold devices
    • G06F2207/4824Neural networks

Landscapes

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

Abstract

ニューラルネットワークモデル圧縮のための統合ベースの符号化の方法は、少なくとも1つのプロセッサによって実行されるとともに、入力ニューラルネットワークの量子化重みが均一符号化方法を使用して符号化されるかどうかを示す層均一フラグを受信するステップと、受信された層均一フラグに基づいて、量子化重みが均一符号化方法を使用して符号化されるかどうかを決定するステップとを含む。方法は、均一符号化方法を使用して量子化重みが符号化されると決定されることに基づき、均一符号化方法を使用して量子化重みを符号化するステップと、均一符号化方法を使用して量子化重みが符号化されないと決定されることに基づき、不均一符号化方法を使用して量子化重みを符号化するステップとを更に含む。

Description

関連出願の相互参照
本出願は、米国特許商標庁において、2020年10月8日に出願された米国仮特許出願第63/089,443号、及び、2021年7月1日に出願された米国特許出願第17/365,367号に基づくとともに、これらの出願の優先権を主張し、それらの出願の開示内容は参照によりその全体が本願に組み入れられる。
意味分類、ターゲット検出/認識、ターゲット追跡、ビデオ品質向上などの広範囲のビデオアプリケーションにおける深層ニューラルネットワーク(DNN)の成功は、DNNモデルを圧縮する必要性をもたらす場合がある。したがって、Motion Picture Experts Group(MPEG)は、記憶及び計算の両方を節約するためにDNNモデルを符号化するべく使用されるニューラルネットワーク規格(NNR)の符号化表示に積極的に取り組んでいる。
実施形態によれば、ニューラルネットワークモデル圧縮のための統合ベースの符号化の方法は、少なくとも1つのプロセッサによって実行されるとともに、均一符号化方法を使用して入力ニューラルネットワークの量子化重みが符号化されるかどうかを示す層均一フラグを受信するステップと、受信された層均一フラグに基づき、量子化重みが均一符号化方法を使用して符号化されるかどうかを決定するステップと、量子化重みが均一符号化方法を使用して符号化されると決定されることに基づき、均一符号化方法を使用して量子化重みを符号化するステップと、量子化重みが均一符号化方法を使用して符号化されないと決定されることに基づき、不均一符号化方法を使用して量子化重みを符号化するステップとを含む。
実施形態によれば、ニューラルネットワークモデル圧縮のための統合ベースの符号化のための装置は、プログラムコードを記憶するように構成される少なくとも1つのメモリと、プログラムコードを読み出してプログラムコードにより命令されるように動作するべく構成される少なくとも1つのプロセッサとを含む。プログラムコードは、入力ニューラルネットワークの量子化重みが均一符号化方法を使用して符号化されるかどうかを示す層均一フラグを少なくとも1つのプロセッサに受信させるように構成される受信コードと、受信された層均一フラグに基づいて、量子化重みが均一符号化方法を使用して符号化されるかどうかを少なくとも1つのプロセッサに決定させるように構成される決定コードとを含む。プログラムコードは、均一符号化方法を使用して量子化重みが符号化されると決定されることに基づき、均一符号化方法を使用して量子化重みを少なくとも1つのプロセッサに符号化させるように構成される第1の符号化コードと、均一符号化方法を使用して量子化重みが符号化されないと決定されることに基づき、不均一符号化方法を使用して量子化重みを少なくとも1つのプロセッサに符号化させるように構成される第2の符号化コードとを更に含む。
実施形態によれば、非一時的コンピュータ可読記憶媒体が命令を記憶し、命令は、ニューラルネットワークモデル圧縮のための統合ベースの符号化のために少なくとも1つのプロセッサによって実行されるときに、少なくとも1つのプロセッサに、均一符号化方法を使用して入力ニューラルネットワークの量子化重みが符号化されるかどうかを示す層均一フラグを受信させ、受信された層均一フラグに基づき、量子化重みが均一符号化方法を使用して符号化されるかどうかを決定させ、量子化重みが均一符号化方法を使用して符号化されると決定されることに基づき、均一符号化方法を使用して量子化重みを符号化させ、量子化重みが均一符号化方法を使用して符号化されないと決定されることに基づき、不均一符号化方法を使用して量子化重みを符号化させる。
本明細書中に記載される方法、装置、及び、システムが実現され得る、実施形態に係る環境の図である。 図1の1つ以上のデバイスのコンポーネント例のブロック図である。 実施形態に係るニューラルネットワークモデル圧縮のためのシステムの機能ブロック図である。 実施形態に係る垂直方向でのラスタースキャンを使用する適応的三次元(3D)符号化ツリーユニット(CTU3D)/ 3D符号化ツリーユニット(CU3D)パーティションの2つの例の図である。 実施形態に係る3つの深さを伴う3D-オクトツリー構造の一例の図である。 実施形態に係るニューラルネットワークモデル圧縮のための統合ベースの符号化の方法のフローチャートである。 図6Aに示されるような均一符号化方法を使用して量子化重みを符号化する動作のフローチャートである。 実施形態に係るニューラルネットワークモデル圧縮のための統合ベースの符号化のための装置のブロック図である。
本開示は、ニューラルネットワークモデル圧縮に関する。より具体的には、本明細書中に記載される方法及び装置は、ニューラルネットワークモデル圧縮のためのベースラインと統合符号化との間の調和に関する。
スキャン順序
マルチメディアコンテンツ記述及び分析のためのニューラルネットワーク圧縮において、符号化方法は、左から右に行優先方式でパラメータテンソルをスキャンし、上から下に行をスキャンする。
Figure 2023506035000001
2次元(2D)整数配列StateTransTab[][]は、以下のように従属スカラー量子化のための状態遷移表を定める。
StateTransTab[][]={{0,2},{7,5},{1,3},{6,4},{2,0},{5,7},{3,1},{4,6}}. (1)
量子化
マルチメディアコンテンツ記述及び分析のためのニューラルネットワーク圧縮では、3つのタイプの量子化方法が使用される。
ベースライン法:パラメータqpDensity及びqpによって表される固定ステップサイズと、0に等しいフラグdq_flagとを使用して、パラメータテンソルに均一量子化が適用される。復号されたテンソルにおける再構成された値は、ステップサイズの整数倍である。
コードブックベースの方法:パラメータテンソルは、コードブック及びインデックスのテンソルとして表わされ、後者は元のテンソルと同じ形状を有する。コードブックのサイズは、符号器で選択されて、メタデータパラメータとして送信される。インデックスは、整数値を有し、更にエントロピー符号化される。コードブックはfloat 32値から構成される。復号されたテンソルにおける再構成された値は、それらのインデックス値によって参照されるコードブック要素の値である。
従属スカラー量子化方法:従属スカラー量子化は、フラグdq_flagが1に等しいときはいつでも、パラメータqpDensity及びパラメータqpによって表わされる固定ステップサイズと、サイズ8の状態遷移表とを使用して、パラメータテンソルに適用される。復号されたテンソルにおける再構成された値は、ステップサイズの整数倍である。
エントロピー符号化
マルチメディアコンテンツ記述及び分析のためのニューラルネットワーク圧縮において、符号化方法は、左から右に行優先方式でパラメータテンソルをスキャンし、上から下に行をスキャンする。各量子化パラメータレベルは、整数パラメータmaxNumNoRemを用いる以下の手順にしたがって符号化される。
第1のステップでは、対応するレベルが0に等しいかどうかを定める量子化パラメータレベルに関してバイナリ構文要素sig_flagが符号化される。sig_flagが1に等しい場合、更なるバイナリ構文要素sign_flagが符号化される。ビンは、現在のパラメータレベルが正であるか負であるかどうかを示す。次に、ビンの単項シーケンスが符号化され、続いて以下のように固定長シーケンスが符号化される。
変数kは0で初期化され、Xは1<<kで初期化される。構文要素abs_level_greater_Xが符号化され、これは量子化パラメータレベルの絶対値がXより大きいことを示す。abs_level_greater_Xが1に等しい場合及びXがmaxNumNoRemよりも大きい場合、変数kは1だけ増加される。その後、1<<kがXに加えられ、更なるabs_level_greater_Xが符号化される。この手順は、abs_level_greater_Xが0に等しくなるまで継続される。ここで、Xが値(X,X-1,...,X-(1<<k)+1)のうちの1つであり得ることは明らかである。絶対量子化パラメータレベルであるリスト内の値を指し示す長さkのコードが符号化される。
コンテキストモデリングは、3つのタイプのフラグsig_flag、sign_flag、及び、abs_level_greater_Xをコンテキストモデルと関連付けることに対応する。このようにして、(コンテキストモデルの内部の)確率推定器が基礎となる統計に適合できるように、同様の統計的挙動を有するフラグを同じコンテキストモデルと関連付けることができる。
提示された手法のコンテキストモデリングは以下の通りである。
24個のコンテキストモデルは、状態値と、左に隣接する量子化パラメータレベルが0であるか、0より小さいか、又は、0より大きいかどうかとに応じて、sig_flagに関して区別される。
他の3つのコンテキストモデルは、左に隣接する量子化パラメータレベルが0であるか、0より小さいか、又は、0より大きいかどうかに応じてsign_flagに関して区別される。
abs_level_greater_Xフラグの場合、各Xは1つ又は2つの別々のコンテキストモデルを使用する。X<=maxNumNoRemの場合、sign_flagによって2つのコンテキストモデルが区別される。X>maxNumNoRemの場合、1つのコンテキストモデルのみが使用される。
Figure 2023506035000002
sig_flagは、量子化重みQuantParam[i]が非ゼロであるかどうかを定める。0に等しいsig_flagは、QuantParam[i]が0であることを示す。
sign_flagは、量子化重みQuantParam[i]が正であるか負であるかどうかを定める。1に等しいsign_flagは、QuantParam[i]が負であることを示す。
abs_level_greater_x[j]は、QuantParam[i]の絶対レベルがj+1よりも大きいかどうかを示す。
abs_level_greater_x2[j]は、指数ゴロム剰余の単項部分を含む。
abs_remainderは、固定長剰余を示す。
量子化重み係数に関して直接にエントロピー符号化が実行される。それにより、重みテンソルが重なり合わないCTU3Dブロックに分割された後の局所分布が考慮されない。殆どの重み係数は、再訓練動作後に局所構造を有する。3D-オクトツリー、3D-ユニツリー、3D-タグツリー、及び/又は、3D-ユニタグツリー構造を利用する方法は、CTU3Dブロックの局所的な分布を利用することによって、より効率的な表示を生成することができる。これらの方法は、前述のベースライン方法とまだ調和されていない。
図1は、実施形態による、本明細書に記載の方法、装置、及びシステムを実装可能な環境100の図である。
図1に示されるように、環境100は、ユーザデバイス110、プラットフォーム120、及びネットワーク130を含んでもよい。環境100のデバイスは、有線接続、無線接続、又は有線接続と無線接続との組み合わせを介して相互接続してもよい。
ユーザデバイス110は、プラットフォーム120に関連付けられた情報を受信、生成、記憶、処理、及び/又は提供することができる1つ以上のデバイスを含む。例えば、ユーザデバイス110は、コンピューティングデバイス(例えば、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ハンドヘルドコンピュータ、スマートスピーカ、サーバなど)、携帯電話(例えば、スマートフォン、無線電話など)、ウェアラブルデバイス(例えば、スマートグラス又はスマートウォッチ)、又は同様のデバイスなどであってもよい。幾つかの実施において、ユーザデバイス110は、プラットフォーム120から情報を受信し、及び/又は、プラットフォームに情報を送信してもよい。
プラットフォーム120は、本明細書の他の箇所に記載されるような1つ以上のデバイスを含む。幾つかの実施では、プラットフォーム120は、クラウドサーバ又はクラウドサーバ群を含んでもよい。幾つかの実施において、プラットフォーム120は、ソフトウェアコンポーネントがスワップイン又はスワップアウトされ得るようにモジュール式に設計されてもよい。したがって、プラットフォーム120は、異なる用途向けに、容易に及び/又は迅速に再構成されてもよい。
幾つかの実施では、図示のように、プラットフォーム120は、クラウドコンピューティング環境122下で動作してもよい。特に、本明細書に記載の実施は、プラットフォーム120がクラウドコンピューティング環境122下で動作するものとして説明されているが、幾つかの実施では、プラットフォーム120は、クラウドベースでなくてもよく(すなわち、クラウドコンピューティング環境の外部で実装されてもよい)、又は部分的にクラウドベースであってもよい。
クラウドコンピューティング環境122は、プラットフォーム120のホストとして機能する環境を含む。クラウドコンピューティング環境122は、プラットフォーム120のホストとして機能する1つ以上のシステム及び/又は1つ以上のデバイスの物理的位置及び構成に関するエンドユーザ(例えば、ユーザデバイス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に提供、又はユーザデバイス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は、1つ以上のストレージシステム及び/又は1つ以上のデバイスを含み、1つ以上のストレージシステム及び/又は1つ以上のデバイスは、コンピューティングリソース124のストレージシステム又はデバイス内で仮想化技術を使用する。幾つかの実施では、ストレージシステムのコンテキスト内で、仮想化のタイプは、ブロック仮想化及びファイル仮想化を含んでもよい。ブロック仮想化は、ストレージシステムが物理記憶又は異種構造に関係なくにアクセスされ得るような、物理記憶からの論理記憶の抽象化(又は分離)を指し得る。分離により、ストレージシステムの管理者がエンドユーザのためにストレージを管理する方法の柔軟性が可能になり得る。ファイル仮想化は、ファイルレベルでアクセスされるデータとファイルが物理的に格納される場所との間の依存関係を排除し得る。これにより、ストレージ使用の最適化、サーバ統合、及び/又は非中断的なファイル移行の性能が可能になり得る。
ハイパーバイザ124-4は、複数のオペレーティングシステム(例えば、「ゲストオペレーティングシステム」)をコンピューティングリソース124などのホストコンピュータ上で同時に実行できるハードウェア仮想化技術を提供してもよい。ハイパーバイザ124-4は、仮想オペレーティングプラットフォームをゲストオペレーティングシステムに提供してもよく、ゲストオペレーティングシステムの実行を管理してもよい。様々なオペレーティングシステムの複数のインスタンスが、仮想化されたハードウェアリソースを共用し得る。
ネットワーク130は、1つ以上の有線及び/又は無線ネットワークを含む。例えば、ネットワーク130は、セルラーネットワーク(例えば、第5世代(Fifth Generation:5G)ネットワーク、ロングタームエボリューション(Long-Term Evolution:LTE)ネットワーク、第3世代(Third Generation:3G)ネットワーク、符号分割多元接続(Code Division Multiple Access:CDMA)ネットワークなど)、公衆陸上移動体ネットワーク(Public Land Mobile Network:PLMN)、ローカルエリアネットワーク(Local Area Network:LAN)、ワイドエリアネットワーク(Wide Area Network:WAN)、メトロポリタンエリアネットワーク(Metropolitan Area Network:MAN)、電話ネットワーク(例えば、公衆交換電話網(Public Switched Telephone Network: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は、中央処理装置(Central Processing Unit:CPU)、グラフィック処理装置(Graphics Processing Unit:GPU)、加速処理装置(Accelerated Processing Unit:APU)、マイクロプロセッサ、マイクロコントローラ、デジタル・シグナル・プロセッサ(Digital Signal Processor:DSP)、フィールド・プログラマブル・ゲート・アレイ(Field-Programmable Gate Array:FPGA)、特定用途向け集積回路(Application-Specific Integrated Circuit:ASIC)、又は別のタイプの処理コンポーネントである。幾つかの実施では、プロセッサ220は、機能を実行するようにプログラム可能な1つ以上のプロセッサを含む。メモリ230は、ランダム・アクセス・メモリ(Random Access Memory:RAM)、リード・オンリー・メモリ(Read Only Memory:ROM)、及び/又はプロセッサ220が使用する情報及び/若しくは命令を記憶する別のタイプの動的若しくは静的記憶デバイス(例えば、フラッシュメモリ、磁気メモリ、及び/又は光メモリ)を含む。
記憶コンポーネント240は、デバイス200の動作及び使用に関連する情報及び/又はソフトウェアを記憶する。例えば、記憶コンポーネント240は、対応するドライブと共に、ハードディスク(例えば、磁気ディスク、光ディスク、光磁気ディスク、及び/又はソリッドステートディスク)、コンパクトディスク(Compact Disc:CD)、デジタル多用途ディスク(Digital Versatile Disc:DVD)、フロッピーディスク、カートリッジ、磁気テープ、及び/又は別のタイプの非一時的コンピュータ可読媒体を含んでもよい。
入力コンポーネント250は、デバイス200がユーザ入力(例えば、タッチスクリーンディスプレイ、キーボード、キーパッド、マウス、ボタン、スイッチ、及び/又はマイクロフォン)などを介して情報を受信することを可能にするコンポーネントを含む。これに加えて又は代えて、入力コンポーネント250は、情報を感知するためのセンサ(例えば、全地球測位システム(Global Positioning System:GPS)コンポーネント、加速度計、ジャイロスコープ、及び/又はアクチュエータ)を含んでもよい。出力コンポーネント260は、デバイス200(例えば、ディスプレイ、スピーカ、及び/又は1つ以上の発光ダイオード(Light-Emitting Diode:LED))からの出力情報を提供するコンポーネントを含む。
通信インターフェイス270は、デバイス200が有線接続、無線接続、又は有線接続と無線接続との組み合わせなどを介して他のデバイスと通信することを可能にするトランシーバのようなコンポーネント(例えば、トランシーバ及び/又は別個の受信機及び送信機)を含む。通信インターフェイス270は、デバイス200が別のデバイスから情報を受信すること、及び/又は別のデバイスに情報を提供することを可能にしてもよい。例えば、通信インターフェイス270は、イーサネット(登録商標)インターフェイス、光インターフェイス、同軸インターフェイス、赤外線インターフェイス、無線周波数(Radio Frequency:RF)インターフェイス、ユニバーサルシリアルバス(Universal Serial Bus:USB)インターフェイス、Wi-Fi(登録商標)インターフェイス、セルラーネットワークインターフェイスなどであってもよい。
デバイス200は、本明細書に記載された1つ以上の処理を実行してもよい。デバイス200は、メモリ230及び/又は記憶コンポーネント240などの非一時的コンピュータ可読媒体によって記憶されたソフトウェア命令を実行するプロセッサ220に応答して、これらの処理を実行してもよい。コンピュータ可読媒体は、本明細書では非一時的なメモリデバイスと定義される。メモリデバイスは、単一の物理記憶デバイス内のメモリ空間、又は複数の物理記憶デバイスにわたって散在するメモリ空間を含む。
ソフトウェア命令は、別のコンピュータ可読媒体から、又は通信インターフェイス270を介して別のデバイスから、メモリ230及び/又は記憶コンポーネント240に読み込まれてもよい。メモリ230及び/又は記憶コンポーネント240に記憶されたソフトウェア命令は、実行されると、本明細書に記載の1つ以上のプロセスをプロセッサ220に実行させてもよい。これに加えて又は代えて、ハードワイヤード回路をソフトウェア命令の代わりに、又はソフトウェア命令と組み合わせて使用して、本明細書に記載の1つ以上のプロセスを実行してもよい。よって、本明細書に記載される実施態様は、ハードウェア回路とソフトウェアとのどんな特定の組み合わせにも限定されない。
図2に示されるコンポーネントの数及び配置は、一例として示されている。実際には、デバイス200は、図2に示されたコンポーネントに対して、追加のコンポーネント、より少ないコンポーネント、異なるコンポーネント、又は異なる配置のコンポーネントを含んでもよい。これに加えて又は代えて、デバイス200のコンポーネントのセット(例えば、1つ以上のコンポーネント)は、デバイス200の別のコンポーネントのセットによって実行されるものとして説明される1つ以上の機能を実行してもよい。
図3は、実施形態に係るニューラルネットワークモデル圧縮のためのシステム300の機能ブロック図である。
図3に示されるように、システム300は、パラメータ低減モジュール310と、パラメータ近似モジュール320と、再構成モジュール330と、符号器340と、復号器350とを含む。
パラメータ低減モジュール310は、出力ニューラルネットワークを得るために、入力ニューラルネットワークのパラメータのセットを低減する。ニューラルネットワークは、ディープラーニングフレームワークによって定められるパラメータ及びアーキテクチャを含んでもよい。
例えば、パラメータ低減モジュール310は、ニューラルネットワークの接続をスパース化(重みをゼロに設定)及び/又は削除することができる。他の例において、パラメータ低減モジュール310は、ニューラルネットワークのパラメータテンソルに対して行列分解を実行して、より小さいパラメータテンソルのセットにすることができる。パラメータ低減モジュール310は、これらの方法をカスケードで実行することができ、例えば、最初に重みをスパース化し、その後に結果として得られる行列を分解することができる。
パラメータ近似モジュール320は、パラメータ低減モジュール310から得られる出力ニューラルネットワークから抽出されるパラメータテンソルに対してパラメータ近似技法を適用する。例えば、これらの技法は、量子化、変換、及び、予測のうちの任意の1つ又は任意の組み合わせを含むことができる。パラメータ近似モジュール320は、パラメータ近似モジュール320によって修正されない第1のパラメータテンソルと、パラメータ近似モジュール320によって修正又は近似される第2のパラメータテンソルと、修正された第2のパラメータテンソルから、パラメータ近似モジュール320によって修正されない元のパラメータテンソルを再構成するために使用されるべきそれぞれのメタデータとを出力する。
再構成モジュール330は、パラメータ近似モジュール320及び/又は復号器350から取得されるそれぞれのメタデータを使用して、パラメータ近似モジュール320及び/又は復号器350から取得される修正された第2のパラメータテンソルから元のパラメータテンソルを再構成する。再構成モジュール330は、再構成された元のパラメータテンソル及び第1のパラメータテンソルを使用して、出力ニューラルネットワークを再構成することができる。
符号器340は、パラメータ近似モジュール320から取得される第1のパラメータテンソル、第2のパラメータテンソル、及び、それぞれのメタデータに対してエントロピー符号化を実行することができる。この情報は、復号器350に対するビットストリームへと符号化されてもよい。
復号器350は、符号器340から取得されるビットストリームを復号して、第1のパラメータテンソル、第2のパラメータテンソル、及び、それぞれのメタデータを取得してもよい。
システム300は、プラットフォーム120に実装されてもよく、また、図3の1つ以上のモジュールは、ユーザデバイス110など、プラットフォーム120とは別個の又はプラットフォーム120を含むデバイス又はデバイスのグループによって実行されてもよい。
ここで、ニューラルネットワークモデル圧縮のための統合ベースの符号化のための方法及び装置について詳細に説明する。
CTU3D及び再帰的CU3Dブロック分割
重みテンソルの次元は、通常、[R][S][C][K]のレイアウトを有する畳み込み層に関しては4であり、[C][K]のレイアウトを有する完全接続層に関しては2であり、また、バイアス及びバッチ通常層については1であり、ここで、R/Sは畳み込みカーネルサイズであり、Cは入力特徴サイズであり、Kは出力特徴サイズである。
畳み込み層の場合、2D[R][S]次元は、4次元(4D)テンソル[R][S][C][K]が3Dテンソル[RS][C][K]に再形成されるように1次元(1D)[RS]次元に再形成される。完全接続層は、R=S=1の3Dテンソルの場合として扱われる。
[C][K]平面に沿う3Dテンソル[RS][C][K]は、重なり合わないより小さいブロック(CTU3D)に分割される。各CTU3Dは、[RS][ctu3d_height][ctu3d_width]の形状を有し、ここで、ctu3d_height=max_ctu3d_heightであり、ctu3d_width=max_ctu3d_widthである。
図4に示されるように、CTU3D 410の場合、テンソルの右及び/又は下において、所定の深さにある親CU3Dノード420は、4つの子ノード全てを有していなくてもよい。テンソルの右及び/又は下に位置される親CU3Dノード420の場合、そのctu3d_heightはC/max_ctu3d_heightの剰余であり、そのctu3d_widthはK/max_ctu3d_widthの剰余である。
max_ctu3d_height及びmax_ctu3d_widthの値は、明示的にビットストリームにシグナリングされ得る又は明示的ではなく推測され得る。max_ctu3d_height=C且つmax_ctu3d_width=Kの場合、ブロック分割は無効化される。
簡略化されたブロッキング構造が使用され、この場合、CTU3D/CU3Dは、最大再帰的深さに達するまでクアッドツリー構造を使用して再帰的により小さいCU3Dに分割される。CTU3Dノードから開始して、CU3Dのこのクアッドツリーは、深さ優先クアッドツリースキャン順序を使用してスキャン及び処理される。同じ親ノードの下にある子ノードは、水平方向又は垂直方向のいずれかでラスタスキャン順序を使用してスキャン及び処理される。
実施形態では、所定のクアッドツリー深さにおけるCU3Dに関し、これらのCU3Dのmax_cu3d_height/max_cu3d_widthは以下の式を使用して計算され、また、max_cu3d_height及びmax_cu3d_widthのそれぞれが所定の閾値以下であるときに最大再帰的深さに達する。この閾値は、明示的にビットストリームに含めることができる又は復号器によって非明示的に推測することができるように所定の数(8など)となり得る。この再帰的分割は、所定の閾値がCTU3Dのサイズである場合には無効にされる。
max_cu3d_height=max_ctu3d_height>>depth. (2)
max_cu3d_width=max_ctu3d_width>>depth. (3)
親CU3Dを複数のより小さい子CU3Dに分割すべきかどうかを決定するために、レート歪み(RD)ベースの符号化アルゴリズムが使用される。これらのより小さい子CU3Dの合成RDが親CU3DからのRDよりも小さい場合、親CU3Dは複数のより小さい子CU3Dに分割される。そうでなければ、この親CU3Dは分割されない。分割フラグが、分割決定を記録するために定義される。このフラグは、符号化ユニット(CU)分割の最後の深さでスキップすることができる。
実施形態では、再帰的なCU3Dブロック分割動作が実行され、分割フラグが分割決定を記録するように定義される。
実施形態では、再帰的なCU3Dブロック分割動作は実行されず、分割決定を記録するための分割フラグは定義されない。この場合、CU3Dブロックは、CTU3Dブロックと同一である。
3D-ピラミッド構造
3D-ピラミッド構造は、各内部ノードが正確に8つの子を有するツリーデータ構造である。3D-ピラミッドは、三次元テンソルをz、y、x軸に沿って8つのオクタントに再帰的に分割することによって三次元テンソルを分割するために使用される。
複数の方法を使用して、この3Dツリー構造を構成し、CU3D内の係数を表わすことができる。
CU3Dのための3D-オクトツリーは以下のように構成される。すなわち、最後の深さにおける3D-オクトツリー位置に関するノード値1は、対応するCU3Dにおけるコードブックインデックス(コードブック符号化方法が使用される場合)又は係数(直接量子化符号化方法が使用される場合)が非ゼロであることを示し、底の深さにおける3D-オクトツリー位置に関するノード値0は、対応するCU3Dにおけるコードブックインデックス又は係数が0であることを示す。他の深さにおける3D-オクトツリー位置に関するノード値は、その8つ子ノードの最大値として定義される。
図5に示されるように、オクトツリー500は、各内部ノード510が正確に8つの子ノード520を有するツリーデータ構造である。3D-オクトツリーは、三次元テンソル530をz、y、x軸に沿って8つのオクタント540に再帰的に分割することによって三次元テンソル530を分割するために使用される。
CU3Dのための3D-ユニツリーは以下のように構成される。すなわち、最後の深さ以外の深さにおける3D-ユニツリー位置に関するノード値1は、その子ノード(及び、最後の深さにおけるノードを含む、それらの子ノード)が非統合(異なる)値を有することを示し、最後の深さ以外の深さにおける3D-ユニツリー位置に関するノード値0は、その全ての子ノード(及び、最後の深さにおけるノードを含む、それらの子ノード)が統合された(同一の)絶対値を有することを示す。
CU3Dのための3D-タグツリーは以下のように構成される。すなわち、最後の深さにおける3D-タグツリー位置に関するノード値は、対応するCU3Dにおけるコードブックインデックスの絶対値(コードブック符号化方法が使用される場合)又は絶対係数(直接量子化符号化方法が使用される場合)が非ゼロであることを示す。他の深さにおける3D-タグツリー位置に関するノード値は、その8つの子ノードの最小値として定義される。
CU3Dのための3D-ユニタグツリーは、3D-タグツリーと3D-ユニツリーとを組み合わせることによって構成される。
異なる深さ/高さ/幅を伴う幾つかのCU3Dについては、各親ノードが利用可能な8つの全ての子ノードを有する完全な3D-ピラミッドを構成するのに十分な係数がない。親ノードが8つの全ての子ノードを有さない場合には、これらの存在しない子ノードのスキャニング及び符号化がスキップされる。
3D-ピラミッドスキャン順序
3D-ピラミッドが構成された後、全てのノードは、ノード値を符号化するために所定のスキャン順序を使用してウォークスルーされる。
実施形態では、トップノードから開始して、全てのノードをウォークスルーするために深さ優先探索スキャン順序が使用される。同じ親ノードを共有する子ノードに関するスキャン順序は、(0,0,0)→(0,0,1)→(0,1,0)→(0,1,1)→(1,0,0)→(1,0,1)→(1,1,0)→(1,1,1)など、任意に定義可能である。
実施形態では、トップノードから開始して、全てのノードをウォークスルーするために幅優先探索スキャン順序が使用される。各ピラミッド深さは3D形状であるため、各深さにおけるスキャン順序は任意に定義することができる。実施形態では、スキャン順序は、ピラミッド符号化方法と合わせるために以下の擬似コードを使用して定義される。
for(int d=start_depth;d < total_depth;++d)
for(int by=0;by < height[d];by+=2)
for(int bx=0;bx < width[d];bx+=2)
for(int bz=0;bz < length[d];bz+=2)
for(int y=by;y < by+min(2,height[d]-by);++y)
for(int x=bx;x < bx+min(2,width[d]-bx);++x)
for(int z=bz;z < bz+min(2,length[d]-bz);++z)
process node[d][z][y][x]
encoding_start_depth構文要素は、符号化プロセスに関与する第1の深さを示す。所定のスキャン順序を使用して全てのノードをウォークスルーするとき、現在のノード値の符号化は、このノードの深さがencoding_start_depthを上回る場合にはスキップされる。複数のCU3D、CTU3D、層又はモデルは、1つのencoding_start_depthを共有することができる。
実施形態では、encoding_start_depthが明示的にビットストリームにシグナリングされる。
実施形態では、encoding_start_depthが予め定義されて明示的ではなく推測される。
実施形態では、encoding_start_depthが3D-ピラミッド構造の最後の深さに設定されて明示的ではなく推測される。
3D-ピラミッド符号化方法
全てのノードをウォークスルーして異なる3Dツリーによって表わされる係数を符号化する異なる方法がある。
3D-オクトツリーの場合、実施形態では、親ノードの値が0である場合、その子ノード(及びそれらの子ノード)のスキャニング及び符号化は、それらの値が常に0であり得るためスキップされる。親ノードの値が1であり、最後以外の全ての子ノードの値が全て0である場合、最後の子ノードは依然としてスキャンされるが、その値の符号化は、それが常に1であり得るためスキップされる。現在の深さがピラミッドの最後の深さである場合、及び、現在のノード値が1である場合には、コードブック方法が使用されないときにマップ値の符号が符号化され、続いてマップ値自体が符号化される。
3D-ユニツリーの場合、実施形態では、所定のノードの値が符号化される。ノード値が0である場合には、その対応する統合値が符号化され、その子ノード(及びそれらの子ノード)の符号化は、それらの絶対値が常に統合値に等しくなり得るためスキップされる。その子ノードは、底の深さに達するまでスキャンされ続け、この場合、各子ノードの符号ビットは、ノード値が非ゼロである場合に符号化される。
3D-ユニツリーの場合、実施形態では、所定のノードの値が符号化される。ノード値が0である場合には、その対応する統合値が符号化され、また、その子ノード(及びそれらの子ノード)のスキャニング及び符号化は、それらの絶対値が常に統合値に等しくなり得るためスキップされる。そして、このCU3Dにおける全てのノードが処理された後、ピラミッドが再びスキャンされ、ノード値が非ゼロである場合、底の深さにおける各子ノードの符号ビットが符号化される。
3D-タグツリーの場合、実施形態では、ノードが親ノードを有さないトップノードであれば、値が符号化される。任意の子ノードの場合には、親ノードとこの子ノードとの間の差が符号化される。親ノードの値がXであり、最後以外の全ての子ノードの値がXより大きい場合には、最後の子ノードが依然としてスキャンされるが、それらの値の符号化は、それらが常にXであり得るためスキップされ得る。
3D-ユニタグツリーの場合、実施形態では、ユニツリーからの所定のノードの値が最初に符号化される。ノードが親ノードを有さないトップノードである場合のタグツリー値又は親ノードとこの子ノードとの間のタグツリー値の差のいずれかを符号化するために、タグツリー符号化方法が使用される。また、タグツリー符号化セクションで導入されるノードスキップ方法も採用される。ユニツリーノード値が0である場合、その子ノード(及びそれらの子ノード)のスキャニング及び符号化は、それらの値が常に統合値に等しくなり得るためスキップされる。
start_depthが最後の深さである事例が存在する。実施形態では、前述のこれらの係数スキップ方法が無効にされ、したがって、全ての係数が符号化される。実施形態では、前述のこれらの係数スキップ方法を巧みに利用するために、3D-ピラミッドツリーは、start_depthが2番目に最後の深さになるようにstart_depthを調整することによって符号化される。実施形態では、3D-ユニタグツリーの場合、3D-ピラミッドツリーのユニツリー部分は、start_depthが2番目に最後の深さになるようにstart_depthを調整することによって符号化され、3D-ピラミッドツリーのタグツリー部分はstart_depthを調整せずに符号化される。
均一符号化方法と呼ばれる場合がある3D-ピラミッド符号化方法を使用してこの層が符号化されるかどうかを示すために、畳み込み層及び完全接続層に対して層均一フラグ(例えば、layer_uniform_flag)が定義される。
layer_uniform_flagフラグが0に等しい場合、この層は、不均一符号化方法と呼ばれる場合がある現在の作業ドラフトに記載される方法を使用して符号化される。
layer_uniform_flagが1に等しい場合、この層はCTU3Dレイアウトに再形成される。CTU3Dごとに、CTU3D均一フラグ(例えば、ctu3d_uniform_flag)は、同じ親ノードを共有する底の深さにおける全ての子ノードが統合されるかどうかを示すように定義される(同じ親ノードを共有しないノードは異なる統合値を有し得る)。
CTU3D均一フラグ(例えば、ctu3d_uniform_flag)が1に等しければ、このCTU3Dに関し、同じ親ノードを共有する底の深さにおける全ての子ノードが統合される(同じ親ノードを共有しないノードは異なる統合値を有し得る)。実施形態では、このCTU3Dを符号化するために3D-ユニツリー符号化方法(均一符号化方法と呼ばれる場合がある)が使用される。encoding_start_depthは3D-ピラミッド構造の最後の深さに設定されて明示的ではなく推測される。ノードの統合値の符号化は、それが常に0であり得るため、スキップされ得る。実施形態では、同じ親ノードを共有する底の深さにおける全ての子ノードに関して1つの統合値を符号化することができ、ノード値が非ゼロ値である場合、これらの子ノードの符号ビットが続く。実施形態では、同じ親ノードを共有する底の深さにおける全ての子ノードに関して1つの統合値を符号化することができる。そして、このCU3Dにおける全てのノードが処理された後、ピラミッドが再びスキャンされ、ノード値が非ゼロである場合には、底の深さにおける各子ノードの符号ビットが符号化される。
ctu3d_uniform_flagフラグが0に等しい場合、実施形態では、このCTU3Dを符号化するために3D-タグツリー符号化方法(不均一符号化方法と呼ばれる場合がある)が使用される。encoding_start_depthは、3D-ピラミッド構造の最後の深さに設定されて明示的ではなく推測される。実施形態では、子ノードの値が所定のスキャン順序に基づいて符号化される。実施形態において、子ノードの絶対値は、所定のスキャン順序に基づいて符号化され、その後に符号ビットが続く。実施形態において、全ての子ノードの絶対値は、所定のスキャン順序に基づいて符号化される。このCU3Dにおける全てのノードが処理された後、ノード値が非ゼロである場合、全ての子ノードの符号ビットが符号化される。
従属量子化
従属量子化プロセスは、再構成された値間の依存性に起因して、パラメータがスキャン順序(パラメータがエントロピー復号されるのと同じ順序)で再構成されることを必要とする場合がある。その後、従属スカラー量子化の方法が、a)異なる再構成レベルを有する2つのスカラー量子化器を定義するとともに、b)2つのスカラー量子化器間を切り換えるためのプロセスを定義することによって実現される。
従来の均一再構成量子化器と同様に、両方の量子化器(図4におけるQ0及びQ1によって示される)の場合、利用可能な再構成レベルの位置は、量子化ステップサイズΔによって一意的に定められる。2つのスカラー量子化器Q0及びQ1は、以下のように特徴付けられる。
Q0:第1の量子化器Q0の再構成レベルは量子化ステップサイズΔの偶数倍で与えられる。この量子化器が使用される場合には、再構成されたニューラルネットワークパラメータt’がt’=2・k・Δにしたがって計算され、ここで、kは関連するパラメータレベル(送信された量子化インデックス)を表わす。
Q1:第2の量子化器Q1の再構成レベルは、量子化ステップサイズΔの奇数倍で与えられ、更に、再構成レベルが0に等しい。ニューラルネットワークパラメータレベルkの再構成パラメータt’へのマッピングは、t’=(2・k-sgn(k))・Δによって定められ、ここで、sgn(・)は、以下のように符号関数を表わす。
Figure 2023506035000003
現在の重みパラメータに関して使用される量子化器(Q0又はQ1)をビットストリーム内で明示的にシグナリングする代わりに、それは、符号化/再構成順序で現在の重みパラメータに先行する重みパラメータレベルのパリティによって決定される。量子化器間の切り換えは、表3によって表わされる状態機械を介して実現される。状態は、8つの想定し得る値(0,1,2,3,4,5,6,7)を有し、符号化/再構成順序で現在の重みパラメータに先行する重みパラメータレベルのパリティによって一意的に決定される。層ごとに、状態変数が最初に0に設定される。重みパラメータが再構成されるときはいつでも、状態が表3にしたがってその後に更新され、ここで、kは変換係数レベルの値を示す。次の状態は、現在の状態及び現在の重みパラメータレベルkのパリティ(k&1)のみに依存する。したがって、状態更新をstate=sttab[state][k&1]によって取得することができ、ここで、sttabは表3を表わす。
Figure 2023506035000004
状態は、使用されるスカラー量子化器を一意的に定める。現在の重みパラメータに関する状態値が偶数(0,2,4,6)である場合には、スカラー量子化器Q0が使用される。そうではなく、状態値が奇数(1,3,5,7)である場合には、スカラー量子化器Q1が使用される。
従属量子化プロセスは、パラメータがスキャン順序で(それらがエントロピー復号されるのと同じ順序で)再構成されることを必要とし得るため、ベースライン符号化方法における全ての係数がスキャンされてエントロピー符号化される。しかしながら、3D-ピラミッド符号化方法の性質に起因して、係数をエントロピー符号化プロセスからスキップすることができる。
実施形態では、3D-ピラミッド符号化方法が使用される場合、従属量子化プロセスが無効にされる。
実施形態では、3D-ピラミッド符号化方法が使用される場合、従属量子化プロセスが有効にされる。従属量子化構成プロセスは、これらの係数がエントロピー符号化プロセスからスキップされる場合に、これらの係数を従属量子化係数の構成から除外できるように変更される。係数の絶対値は、従属量子化を構成するために使用される。
エントロピー符号化のためのコンテキスト更新
ベースライン符号化方法が、4D重みテンソルを2D重みテンソルに再形成する。既に符号化された重み係数は、隣接重みとして保存され、現在の係数のコンテキストを更新するために使用される。保存された係数は、符号化された係数の数を入力チャネル×カーネルサイズで除算できる場合に0にリセットされる。
統合ベースの符号化方法が、4D重みテンソルを3D重みテンソルに再形成する。
実施形態では、隣接重みを更新する際、既に符号化された重み係数が、隣接重みとして保存されて、現在の係数のコンテキストを更新するために使用される。保存された係数は、符号化された係数の数を入力チャネル×カーネルサイズで除算できる場合に0にリセットされる。
実施形態では、隣接重みを更新する際、既に符号化された重み係数が、隣接重みとして保存されて、現在の係数のコンテキストを更新するために使用される。保存された係数は、符号化された係数の数をカーネルサイズで除算できる場合に0にリセットされる。
構文テーブル
対応する構文テーブルの例を以下に列挙する。太字フォントを伴う要素は構文要素である。
Ndim(arrayName[])は、arrayName[]の次元数を返す。
scan_orderは、以下の表にしたがって2つ以上の次元を伴うパラメータのブロックスキャニング順序を定める。
0:ブロックスキャニングなし
1:8×8ブロック
2:16×16ブロック
3:32×32ブロック
4:64×64ブロック
Figure 2023506035000005
layer_uniform_flagは、量子化重みQuantParam[]が均一法を用いて符号化されるかどうかを定める。1に等しいlayer_uniform_flagは、QuantParam[]が均一法を用いて符号化されることを示す。
Figure 2023506035000006
2D整数配列StateTransTab[][]は、従属スカラー量子化のための状態遷移表を定め、以下の通りである。
StateTransTab[][]={{0,2},{7,5},{1,3},{6,4},{2,0},{5,7},{3,1},{4,6}}
Figure 2023506035000007
Figure 2023506035000008
ctu3d_uniform_flagは、量子化CTU3D重みQuantParam[]が均一法を用いて符号化されるかどうかを定める。1に等しいctu3d_uniform_flagは、QuantParam[]が均一法を用いて符号化されることを示す。
sign_flagは、量子化重みQuantParam[i]が正であるか負であるかどうかを定める。1に等しいsign_flagは、QuantParam[i]が負であることを示す。
Figure 2023506035000009
sig_flagは、量子化重みQuantParam[i]が非ゼロであるかどうかを定める。0に等しいsig_flagは、QuantParam[i]が0であることを示す。
sign_flagは、量子化重みQuantParam[i]が正であるか負であるかどうかを定める。1に等しいsign_flagは、QuantParam[i]が負であることを示す。
abs_level_greater_x[j]は、QuantParam[i]の絶対レベルがj+1よりも大きいかどうかを示す。
abs_level_greater_x 2[j]は、指数ゴロム剰余の単項部分を含む。
abs_remainderは、固定長剰余を示す。
図6Aは、実施形態に係るニューラルネットワークモデル圧縮のための統合ベースの符号化の方法600のフローチャートである。
幾つかの実施では、図6の1つ以上プロセスブロックがプラットフォーム120によって実行されてもよい。幾つかの実施において、図6の1つ以上のプロセスブロックは、ユーザデバイス110などのプラットフォーム120とは別個の又はプラットフォーム120を含む他のデバイス又はデバイスのグループによって実行されてもよい。
図6Aに示されるように、工程610において、方法600は、入力ニューラルネットワークの量子化重みが均一符号化方法を使用して符号化されるかどうかを示す層均一フラグを受信することを含む。
工程620において、方法600は、受信された層均一フラグに基づいて、量子化重みが均一符号化方法を使用して符号化されるかどうかを決定することを含む。
量子化重みが均一符号化方法を使用して符号化されると決定されることに基づき(工程620-はい)、工程630において、方法600は、均一符号化方法を使用して量子化重みを符号化することを含む。
量子化重みが均一符号化方法を使用して符号化されないと決定されることに基づき(工程620-いいえ)、工程640において、方法600は、不均一符号化方法を使用して量子化重みを符号化することを含む。
図6Bは、図6Aに示されるように、均一符号化方法を使用して量子化重みを符号化する工程630のフローチャートである。
図6Bに示されるように、工程650において、工程630は、入力ニューラルネットワークの量子化重みを複数の三次元符号化ツリーユニット(CTU3D)に分割することを含む。
工程660において、工程630は、複数のCTU3Dのうちの1つの量子化重みが均一符号化方法を使用して符号化されるかどうかを示すCTU3D均一フラグを受信することを含む。
工程670において、工程630は、受信されたCTU3D均一フラグに基づき、複数のCTU3Dのうちの1つの量子化重みが均一符号化方法を使用して符号化されるかどうかを決定することを含む。
複数のCTU3Dのうちの1つの量子化重みが均一符号化方法を使用して符号化されると決定されることに基づき(動作670-はい)、工程680において、工程630は、均一符号化方法を使用して、複数のCTU3Dのうちの1つの量子化重みを符号化することを含む。
複数のCTU3Dのうちの1つの量子化重みが均一符号化方法を使用して符号化されないと決定されることに基づき(動作670-いいえ)、工程690において、工程630は、不均一符号化方法を使用して、複数のCTU3Dのうちの1つの量子化重みを符号化することを含む。
均一符号化方法を使用して複数のCTU3Dのうちの1つの量子化重みを符号化することは、3D-ユニツリー符号化方法を使用して、複数のCTU3Dのうちの1つの量子化重みを符号化することを含んでもよい。
方法600は、複数のCTU3Dのうちの1つの量子化重みが3D-ユニツリー符号化方法を使用して符号化されていることに基づき、複数のCTU3Dのうちの1つの量子化重みが正であるか負であるかどうかを示す符号フラグを符号化することを更に含んでもよい。
方法600は、複数のCTU3Dのそれぞれの量子化重みが3D-ユニツリー符号化方法を使用して符号化されていることに基づき、複数のCTU3Dのそれぞれの量子化重みが正であるか負であるかどうかを示す符号フラグを符号化することを更に含んでもよい。
不均一符号化方法を使用して複数のCTU3Dのうちの1つの量子化重みを符号化することは、3D-タグツリー符号化方法を使用して複数のCTU3Dのうちの1つの量子化重みを符号化することを含んでもよい。
方法600は、複数のCTU3Dのうちの1つの量子化重みが3D-タグツリー符号化方法を使用して符号化されることに基づき、複数のCTU3Dのうちの1つの量子化重みが正であるか負であるかどうかを示す符号フラグを符号化することを更に含んでもよい。
方法600は、複数のCTU3Dのそれぞれの量子化重みが3D-タグツリー符号化方法を使用して符号化されることに基づき、複数のCTU3Dのそれぞれの量子化重みが正であるか負であるかどうかを示す符号フラグを符号化することを更に含んでもよい。
図6は方法600のブロックの例を示すが、幾つかの実施において、方法600は、図6に示されるブロックに加えた更なるブロック、図6に示されるブロックよりも少ないブロック、図6に示されるブロックとは異なるブロック、又は、図6に示されるブロックとは異なって配置されるブロックを含んでもよい。これに加えて又は代えて、方法600のブロックのうちの2つ以上は、並行して実行されてよい。
図7は、実施形態に係るニューラルネットワークモデル圧縮のための統合ベースの符号化のための装置700の図である。
図7に示されるように、装置700は、受信コード710と、決定コード720と、第1の符号化コード730と、第2の符号化コード740と、分割コード750とを含む。
受信コード710は、入力ニューラルネットワークの量子化重みが均一符号化方法を使用して符号化されるかどうかを示す層均一フラグを少なくとも1つのプロセッサに受信させるように構成される。
決定コード720は、受信された層均一フラグに基づいて、量子化重みが均一符号化方法を使用して符号化されるかどうかを少なくとも1つのプロセッサに決定させるように構成される。
第1の符号化コード730は、均一符号化方法を使用して量子化重みが符号化されると決定されることに基づき、均一符号化方法を使用して量子化重みを少なくとも1つのプロセッサに符号化させるように構成される。
第2の符号化コード740は、均一符号化方法を使用して量子化重みが符号化されないと決定されることに基づき、不均一符号化方法を使用して量子化重みを少なくとも1つのプロセッサに符号化させるように構成される。
分割コード750は、少なくとも1つのプロセッサに、入力ニューラルネットワークの量子化重みを複数の三次元符号化ツリーユニット(CTU3D)に分割させるように構成される。
受信コード710は、複数のCTU3Dのうちの1つの量子化重みが均一符号化方法を使用して符号化されるかどうかを示すCTU3D均一フラグを少なくとも1つのプロセッサに受信させるように更に構成される。
決定コード720は、受信されたCTU3D均一フラグに基づき、複数のCTU3Dのうちの1つの量子化重みが均一符号化方法を使用して符号化されるかどうかを少なくとも1つのプロセッサに決定させるように更に構成される。
第1の符号化コード730は、均一符号化方法を使用して複数のCTU3Dのうちの1つの量子化重みが符号化されると決定されることに基づき、均一符号化方法を使用して複数のCTU3Dのうちの1つの量子化重みを少なくとも1つのプロセッサに符号化させるように更に構成される。
第2の符号化コード740は、均一符号化方法を使用して複数のCTU3Dのうちの1つの量子化重みが符号化されないと決定されることに基づき、不均一符号化方法を使用して、複数のCTU3Dのうちの1つの量子化重みを少なくとも1つのプロセッサに符号化させるように更に構成される。
第1の符号化コード730は、3D-ユニツリー符号化方法を使用して、複数のCTU3Dのうちの1つの量子化重みを少なくとも1つのプロセッサに符号化させるように更に構成されてもよい。
第1の符号化コード730は、3D-ユニツリー符号化方法を使用して複数のCTU3Dのうちの1つの量子化重みが符号化されることに基づき、複数のCTU3Dのうちの1つの量子化重みが正であるか負であるかどうかを示す符号フラグを少なくとも1つのプロセッサに符号化させるように更に構成されてもよい。
第1の符号化コード730は、3D-ユニツリー符号化方法を使用して複数のCTU3Dのそれぞれの量子化重みが符号化されることに基づき、複数のCTU3Dのそれぞれの量子化重みが正であるか負であるかどうかを示す符号フラグを少なくとも1つのプロセッサに符号化させるように更に構成されてもよい。
第2の符号化コード740は、3D-タグツリー符号化方法を使用して複数のCTU3Dのうちの1つの量子化重みを少なくとも1つのプロセッサに符号化させるように更に構成されてもよい。
第2の符号化コード740は、3D-タグツリー符号化方法を使用して複数のCTU3Dのうちの1つの量子化重みが符号化されることに基づき、複数のCTU3Dのうちの1つの量子化重みが正であるか負であるかどうかを示す符号フラグを少なくとも1つのプロセッサに符号化させるように更に構成されてもよい。
第2の符号化コード740は、3D-タグツリー符号化方法を使用して複数のCTU3Dのそれぞれの量子化重みが符号化されることに基づき、複数のCTU3Dのそれぞれの量子化重みが正であるか負であるかどうかを示す符号フラグを少なくとも1つのプロセッサに符号化させるように更に構成されてもよい。
前述の開示は、例示及び説明を提供しているが、網羅的であることも、実施態様を開示の正確な形態に限定することも意図されていない。改変形態及び変形形態が、上記の開示に照らして可能であり、又は実施態様の実施により取得され得る。
本明細書で使用される場合、コンポーネントという用語は、ハードウェア、ファームウェア、又はハードウェアとソフトウェアの組み合わせとして広く解釈されることを意図されている。
本明細書に記載のシステム及び/又は方法は、ハードウェア、ファームウェア、又はハードウェアとソフトウェアとの組み合わせの異なる形態で実装されてもよいことは明らかであろう。これらのシステム及び/又は方法を実装するために使用される実際の専用の制御ハードウェア又はソフトウェアコードは、実施態様を限定するものではない。したがって、システム及び/又は方法の動作及び挙動は、特定のソフトウェアコードを参照することなく本明細書に記載されており、ソフトウェア及びハードウェアは、本明細書の記載に基づいてシステム及び/又は方法を実装するように設計され得ることが理解される。
特徴の組み合わせが特許請求の範囲に記載され、及び/又は本明細書に開示されているが、これらの組み合わせは、可能な実施態様の開示を限定することを意図するものではない。実際、これらの特徴の多くは、特許請求の範囲に具体的に記載されていない、及び/又は明細書に開示されていない方法で組み合わされてもよい。以下に列挙される各従属請求項は1つの請求項のみに直接依存してもよいが、可能な実施態様の開示は、各従属請求項を請求項セット内の他の全ての請求項と組み合わせて含む。
本明細書中で使用される要素、動作、又は、命令は、そのように明示的に記載されていない限り、重要又は必須であると解釈され得る。また、本明細書で使用される場合、冠詞「a」及び「an」は、1つ以上の項目を含むことを意図しており、「1つ以上」と交換可能に使用され得る。更に、本明細書で使用される場合、「セット」という用語は、1つ以上の項目(例えば、関連項目、無関係な項目、関連項目と無関係な項目との組み合わせなど)を含むことを意図しており、「1つ以上」と互換的に使用され得る。1つの項目のみが意図される場合、「1つ」という用語又は同様の用語が使用される。また、本明細書で使用される場合、「有する(has)」、「有する(have)」、「有する(having)」などの用語は、オープンエンド用語であることを意図している。更に、「based on(に基づいて)」という語句は、特に明記されない限り、「based,at least in part,on(に少なくとも部分的に基づいて)」を意味することを意図している。
100 環境
110 ユーザデバイス
120 プラットフォーム
122 クラウドコンピューティング環境
124 コンピューティングリソース
124-1 アプリケーション
124-2 仮想マシン
124-3 仮想化ストレージ
124-4 ハイパーバイザ
130 ネットワーク
200 デバイス
210 バス
220 プロセッサ
230 メモリ
240 記憶コンポーネント
250 入力コンポーネント
260 出力コンポーネント
270 通信インターフェイス
300 システム
310 パラメータ低減モジュール
320 パラメータ近似モジュール
330 再構成モジュール
340 符号器
350 復号器
420 親CU3Dノード
500 オクトツリー
510 内部ノード
520 子ノード
530 三次元テンソル
540 オクタント
700 装置
710 受信コード
720 決定コード
730 第1の符号化コード
740 第2の符号化コード
750 分割コード

Claims (20)

  1. ニューラルネットワークモデル圧縮のための統合ベースの符号化の方法であって、前記方法が少なくとも1つのプロセッサによって実行され、前記方法は、
    均一符号化方法を使用して入力ニューラルネットワークの量子化重みが符号化されるかどうかを示す層均一フラグを受信するステップと、
    前記受信された層均一フラグに基づき、前記量子化重みが前記均一符号化方法を使用して符号化されるかどうかを決定するステップと、
    前記量子化重みが前記均一符号化方法を使用して符号化されると決定されることに基づき、前記均一符号化方法を使用して前記量子化重みを符号化するステップと、
    前記量子化重みが前記均一符号化方法を使用して符号化されないと決定されることに基づき、不均一符号化方法を使用して前記量子化重みを符号化するステップと、
    を含む、方法。
  2. 前記均一符号化方法を使用して前記量子化重みを符号化する前記ステップは、
    前記入力ニューラルネットワークの前記量子化重みを複数の三次元符号化ツリーユニット(CTU3D)に分割するステップと、
    前記複数のCTU3Dのうちの1つの量子化重みが前記均一符号化方法を使用して符号化されるかどうかを示すCTU3D均一フラグを受信するステップと、
    前記受信されたCTU3D均一フラグに基づき、前記複数のCTU3Dのうちの前記1つの前記量子化重みが前記均一符号化方法を使用して符号化されるかどうかを決定するステップと、
    前記複数のCTU3Dのうちの前記1つの前記量子化重みが前記均一符号化方法を使用して符号化されると決定されることに基づき、前記複数のCTU3Dのうちの前記1つの前記量子化重みを前記均一符号化方法を使用して符号化するステップと、
    前記複数のCTU3Dのうちの前記1つの前記量子化重みが前記均一符号化方法を使用して符号化されないと決定されることに基づき、前記複数のCTU3Dのうちの前記1つの前記量子化重みを前記不均一符号化方法を使用して符号化するステップと、
    を含む、請求項1に記載の方法。
  3. 前記複数のCTU3Dのうちの前記1つの前記量子化重みを前記均一符号化方法を使用して符号化する前記ステップは、3D-ユニツリー符号化方法を使用して、前記複数のCTU3Dのうちの前記1つの前記量子化重みを符号化するステップを含む、請求項2に記載の方法。
  4. 前記3D-ユニツリー符号化方法を使用して前記複数のCTU3Dのうちの前記1つの前記量子化重みが符号化されることに基づき、前記複数のCTU3Dのうちの前記1つの前記量子化重みが正であるか負であるかどうかを示す符号フラグを符号化するステップを更に含む、請求項3に記載の方法。
  5. 前記3D-ユニツリー符号化方法を使用して前記複数のCTU3Dのそれぞれの量子化重みが符号化されることに基づき、前記複数のCTU3Dのそれぞれの前記量子化重みが正であるか負であるかどうかを示す符号フラグを符号化するステップを更に含む、請求項3に記載の方法。
  6. 前記複数のCTU3Dのうちの前記1つの前記量子化重みを前記不均一符号化方法を使用して符号化する前記ステップは、3D-タグツリー符号化方法を使用して、前記複数のCTU3Dのうちの前記1つの前記量子化重みを符号化するステップを含む、請求項2に記載の方法。
  7. 前記3D-タグツリー符号化方法を使用して前記複数のCTU3Dのうちの前記1つの前記量子化重みが符号化されることに基づき、前記複数のCTU3Dのうちの前記1つの前記量子化重みが正であるか負であるかどうかを示す符号フラグを符号化するステップを更に含む、請求項6に記載の方法。
  8. 前記3D-タグツリー符号化方法を使用して前記複数のCTU3Dのそれぞれの量子化重みが符号化されることに基づき、前記複数のCTU3Dのそれぞれの前記量子化重みが正であるか負であるかどうかを示す符号フラグを符号化するステップを更に含む、請求項6に記載の方法。
  9. ニューラルネットワークモデル圧縮のための統合ベースの符号化のための装置であって、前記装置は、
    プログラムコードを記憶するように構成される少なくとも1つのメモリと、
    前記プログラムコードを読み取るとともに前記プログラムコードによって命令されるように動作するべく構成される少なくとも1つのプロセッサであって、前記プログラムコードは、
    入力ニューラルネットワークの量子化重みが均一符号化方法を使用して符号化されるかどうかを示す層均一フラグを前記少なくとも1つのプロセッサに受信させるように構成される受信コードと、
    前記受信された層均一フラグに基づいて前記量子化重みが前記均一符号化方法を使用して符号化されるかどうかを前記少なくとも1つのプロセッサに決定させるように構成される決定コードと、
    前記均一符号化方法を使用して前記量子化重みが符号化されると決定されることに基づき、前記均一符号化方法を使用して前記量子化重みを前記少なくとも1つのプロセッサに符号化させるように構成される第1の符号化コードと、
    前記均一符号化方法を使用して前記量子化重みが符号化されないと決定されることに基づき、不均一符号化方法を使用して前記量子化重みを前記少なくとも1つのプロセッサに符号化させるように構成される第2の符号化コードと、
    を備える、少なくとも1つのプロセッサと、
    を備える装置。
  10. 前記プログラムコードは、前記少なくとも1つのプロセッサに、前記入力ニューラルネットワークの前記量子化重みを複数の三次元符号化ツリーユニット(CTU3D)に分割させるように構成される分割コードを更に備え、
    前記受信コードは、前記複数のCTU3Dのうちの1つの量子化重みが前記均一符号化方法を使用して符号化されるかどうかを示すCTU3D均一フラグを前記少なくとも1つのプロセッサに受信させるように更に構成され、
    前記決定コードは、前記受信されたCTU3D均一フラグに基づき、前記複数のCTU3Dのうちの前記1つの前記量子化重みが前記均一符号化方法を使用して符号化されるかどうかを前記少なくとも1つのプロセッサに決定させるように更に構成され、
    前記第1の符号化コードは、前記均一符号化方法を使用して前記複数のCTU3Dのうちの前記1つの前記量子化重みが符号化されると決定されることに基づき、前記均一符号化方法を使用して、前記複数のCTU3Dのうちの前記1つの前記量子化重みを前記少なくとも1つのプロセッサに符号化させるように更に構成され、
    前記第2の符号化コードは、前記均一符号化方法を使用して前記複数のCTU3Dのうちの前記1つの前記量子化重みが符号化されないと決定されることに基づき、前記不均一符号化方法を使用して前記複数のCTU3Dのうちの前記1つの前記量子化重みを前記少なくとも1つのプロセッサに符号化させるように更に構成される、
    請求項9に記載の装置。
  11. 前記第1の符号化コードは、3D-ユニツリー符号化方法を使用して、前記複数のCTU3Dのうちの前記1つの前記量子化重みを前記少なくとも1つのプロセッサに符号化させるように更に構成される、請求項10に記載の装置。
  12. 前記第1の符号化コードは、前記3D-ユニツリー符号化方法を使用して前記複数のCTU3Dのうちの前記1つの前記量子化重みが符号化されることに基づき、前記複数のCTU3Dのうちの前記1つの前記量子化重みが正であるか負であるかどうかを示す符号フラグを前記少なくとも1つのプロセッサに符号化させるように更に構成される、請求項11に記載の装置。
  13. 前記第1の符号化コードは、前記3D-ユニツリー符号化方法を使用して前記複数のCTU3Dのそれぞれの量子化重みが符号化されることに基づき、前記複数のCTU3Dのそれぞれの前記量子化重みが正であるか負であるかどうかを示す符号フラグを前記少なくとも1つのプロセッサに符号化させるように更に構成される、請求項11に記載の装置。
  14. 前記第2の符号化コードは、3D-タグツリー符号化方法を使用して、前記複数のCTU3Dのうちの前記1つの前記量子化重みを前記少なくとも1つのプロセッサに符号化させるように更に構成される、請求項10に記載の装置。
  15. 前記第2の符号化コードは、前記3D-タグツリー符号化方法を使用して前記複数のCTU3Dのうちの前記1つの前記量子化重みが符号化されることに基づき、前記複数のCTU3Dのうちの前記1つの前記量子化重みが正であるか負であるかどうかを示す符号フラグを前記少なくとも1つのプロセッサに符号化させるように更に構成される、請求項14に記載の装置。
  16. 前記第2の符号化コードは、前記3D-タグツリー符号化方法を使用して前記複数のCTU3Dのそれぞれの量子化重みが符号化されることに基づき、前記複数のCTU3Dのそれぞれの前記量子化重みが正であるか負であるかどうかを示す符号フラグを前記少なくとも1つのプロセッサに符号化させるように更に構成される、請求項14に記載の装置。
  17. 命令を記憶する非一時的コンピュータ可読記憶媒体であって、前記命令は、ニューラルネットワークモデル圧縮のための統合ベースの符号化のために少なくとも1つのプロセッサによって実行されるときに、前記少なくとも1つのプロセッサに、
    均一符号化方法を使用して入力ニューラルネットワークの量子化重みが符号化されるかどうかを示す層均一フラグを受信させ、
    前記受信された層均一フラグに基づき、前記量子化重みが前記均一符号化方法を使用して符号化されるかどうかを決定させ、
    前記量子化重みが前記均一符号化方法を使用して符号化されると決定されることに基づき、前記均一符号化方法を使用して前記量子化重みを符号化させ、
    前記量子化重みが前記均一符号化方法を使用して符号化されないと決定されることに基づき、不均一符号化方法を使用して前記量子化重みを符号化させる、
    非一時的コンピュータ可読記憶媒体。
  18. 前記命令は、前記少なくとも1つのプロセッサにより実行されるときに、前記少なくとも1つのプロセッサに、更に、
    前記入力ニューラルネットワークの前記量子化重みを複数の三次元符号化ツリーユニット(CTU3D)に分割させ、
    前記複数のCTU3Dのうちの1つの量子化重みが前記均一符号化方法を使用して符号化されるかどうかを示すCTU3D均一フラグを受信させ、
    前記受信されたCTU3D均一フラグに基づき、前記複数のCTU3Dのうちの前記1つの前記量子化重みが前記均一符号化方法を使用して符号化されるかどうかを決定させ、
    前記複数のCTU3Dのうちの前記1つの前記量子化重みが前記均一符号化方法を使用して符号化されると決定されることに基づき、前記複数のCTU3Dのうちの前記1つの前記量子化重みを前記均一符号化方法を使用して符号化させ、
    前記複数のCTU3Dのうちの前記1つの前記量子化重みが前記均一符号化方法を使用して符号化されないと決定されることに基づき、前記複数のCTU3Dのうちの前記1つの前記量子化重みを前記不均一符号化方法を使用して符号化させる、
    請求項17に記載の非一時的コンピュータ可読記憶媒体。
  19. 前記命令は、前記少なくとも1つのプロセッサによって実行されるときに、前記少なくとも1つのプロセッサに、更に、3D-ユニツリー符号化方法を使用して、前記複数のCTU3Dのうちの前記1つの前記量子化重みを符号化させる、請求項18に記載の非一時的コンピュータ可読記憶媒体。
  20. 前記命令は、前記少なくとも1つのプロセッサによって実行されるときに、前記少なくとも1つのプロセッサに、更に、3D-タグツリー符号化方法を使用して、前記複数のCTU3Dのうちの前記1つの前記量子化重みを符号化させる、請求項18に記載の非一時的コンピュータ可読記憶媒体。
JP2022535885A 2020-10-08 2021-08-06 ニューラルネットワークモデル圧縮のための統合ベースの符号化のための方法、装置およびコンピュータプログラム Active JP7463012B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202063089443P 2020-10-08 2020-10-08
US63/089,443 2020-10-08
US17/365,367 US20220114414A1 (en) 2020-10-08 2021-07-01 Method and apparatus for unification based coding for neural network model compression
US17/365,367 2021-07-01
PCT/US2021/044905 WO2022076072A1 (en) 2020-10-08 2021-08-06 Method and apparatus for unification based coding for neural network model compression

Publications (2)

Publication Number Publication Date
JP2023506035A true JP2023506035A (ja) 2023-02-14
JP7463012B2 JP7463012B2 (ja) 2024-04-08

Family

ID=81077757

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022535885A Active JP7463012B2 (ja) 2020-10-08 2021-08-06 ニューラルネットワークモデル圧縮のための統合ベースの符号化のための方法、装置およびコンピュータプログラム

Country Status (6)

Country Link
US (1) US20220114414A1 (ja)
EP (1) EP4049128A4 (ja)
JP (1) JP7463012B2 (ja)
KR (1) KR20220106190A (ja)
CN (1) CN114787827A (ja)
WO (1) WO2022076072A1 (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200257966A1 (en) * 2019-02-13 2020-08-13 Mipsology SAS Quality monitoring and hidden quantization in artificial neural network computations

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6934677B2 (en) * 2001-12-14 2005-08-23 Microsoft Corporation Quantization matrices based on critical band pattern information for digital audio wherein quantization bands differ from critical bands
US8817882B2 (en) * 2010-07-30 2014-08-26 Qualcomm Incorporated Coding blocks of data using a generalized form of golomb codes
US9224089B2 (en) * 2012-08-07 2015-12-29 Qualcomm Incorporated Method and apparatus for adaptive bit-allocation in neural systems
US10831444B2 (en) * 2016-04-04 2020-11-10 Technion Research & Development Foundation Limited Quantized neural network training and inference

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200257966A1 (en) * 2019-02-13 2020-08-13 Mipsology SAS Quality monitoring and hidden quantization in artificial neural network computations

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JIANG, WEI ET AL.: "Structured Weight Unification and Encoding for Neural Network Compression and Acceleration", 2020 IEEE/CVF CONFERENCE ON COMPUTER VISION AND PATTERN RECOGNITION WORKSHOPS (CVPRW), JPN6023036130, 19 June 2020 (2020-06-19), US, pages 3068 - 3076, XP033799151, ISSN: 0005142907, DOI: 10.1109/CVPRW50498.2020.00365 *

Also Published As

Publication number Publication date
CN114787827A (zh) 2022-07-22
JP7463012B2 (ja) 2024-04-08
EP4049128A4 (en) 2022-12-21
WO2022076072A1 (en) 2022-04-14
KR20220106190A (ko) 2022-07-28
EP4049128A1 (en) 2022-08-31
US20220114414A1 (en) 2022-04-14

Similar Documents

Publication Publication Date Title
JP7379524B2 (ja) ニューラルネットワークモデルの圧縮/解凍のための方法および装置
US11871043B2 (en) Method and apparatus for three-dimensional (3D)-tree coding for neural network model compression
JP7157260B2 (ja) ポイントクラウドコーディング向けのジオメトリマージモードに関する方法、装置、及びコンピュータプログラム
CN113795869B (zh) 神经网络模型处理方法、装置和介质
US12010310B2 (en) Method and apparatus for quantization, adaptive block partitioning and codebook coding for neural network model compression
JP7323715B2 (ja) 微細構造化マスクを用いたマルチレートニューラル画像圧縮のための方法、装置およびコンピュータプログラム
US11488329B2 (en) Method and apparatus for multi-rate neural image compression with stackable nested model structures
US11234024B2 (en) Method and apparatus for three-dimensional (3D)-tree coding for neural network model compression
US20210248410A1 (en) Method and apparatus for escape reorder mode for neural network model compression
JP7463012B2 (ja) ニューラルネットワークモデル圧縮のための統合ベースの符号化のための方法、装置およびコンピュータプログラム
KR20230142788A (ko) 신경 이미지 압축에서의 반복적 콘텐츠 적응형 온라인 트레이닝을 위한 시스템, 방법, 및 컴퓨터 프로그램
JP7394980B2 (ja) ブロック分割を伴うニューラルネットワークを復号する方法、装置及びプログラム
KR20230067644A (ko) 기계들을 위한 비디오 코딩을 위한 특징 압축
CN112616058B (zh) 视频编码或解码方法、装置、计算机设备和存储介质
JP7342265B2 (ja) μ構造化ネストマスク及び重み単一化によるマルチレートニューラル画像圧縮モデルを圧縮及び加速するための方法及び装置
US20220051102A1 (en) Method and apparatus for multi-rate neural image compression with stackable nested model structures and micro-structured weight unification
JP2023525233A (ja) ニューラル画像圧縮における置換の多学習率のための方法および装置
JP2024512652A (ja) ニューラル画像圧縮における複数ブロック用のコンテンツ適応型オンライン訓練のためのシステム、方法、およびコンピュータプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220613

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220613

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230904

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231130

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: 20240226

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240322

R150 Certificate of patent or registration of utility model

Ref document number: 7463012

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150