(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-22
(45)【発行日】2024-01-05
(54)【発明の名称】ニューラルネットワークデータのコーディングのための方法およびシステム
(51)【国際特許分類】
G06N 3/04 20230101AFI20231225BHJP
【FI】
G06N3/04
(21)【出願番号】P 2022529284
(86)(22)【出願日】2021-06-10
(86)【国際出願番号】 US2021036818
(87)【国際公開番号】W WO2021262447
(87)【国際公開日】2021-12-30
【審査請求日】2022-06-21
(32)【優先日】2020-06-22
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-07-01
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-10-06
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-10-09
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-05-19
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】チョイ,ビョンドゥ
(72)【発明者】
【氏名】ワン,ウエイ
(72)【発明者】
【氏名】ジアン,ウエイ
(72)【発明者】
【氏名】ウェンジャー,ステファン
(72)【発明者】
【氏名】リィウ,シャン
【審査官】漆原 孝治
(56)【参考文献】
【文献】米国特許出願公開第2019/0122119(US,A1)
【文献】米国特許出願公開第2019/0394477(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/04
(57)【特許請求の範囲】
【請求項1】
少なくとも1つのプロセッサによって実行される方法であって、
トポロジを有する独立したニューラルネットワークを表すNNRユニットグループ(GON)を含むニューラルネットワーク表現(NNR)ビットストリームを受信し、前記GONには、
前記ニューラルネットワークのモデルパラメータセットを含むNNRモデルパラメータセットユニット、
前記ニューラルネットワークのモデルに含まれるレイヤのレイヤパラメータセットを含むNNRレイヤパラメータセットユニット、
前記ニューラルネットワークのトポロジ情報を含むNNRトポロジユニット、
前記ニューラルネットワークの量子化情報を含むNNR量子化ユニット、および
前記ニューラルネットワークの圧縮データを含むNNR圧縮データユニットが含まれるステップと、
前記GONを復号することにより、前記トポロジを有する前記独立したニューラルネットワークを再構築するステップと、
を含むことを特徴とする方法。
【請求項2】
前記GONは、前記NNRビットストリームの1つ以上の集約NNRユニットに含まれる、
ことを特徴とする請求項1に記載の方法。
【請求項3】
前記GONは、単一の集約NNRユニットに含まれる、
ことを特徴とする請求項2に記載の方法。
【請求項4】
前記単一の集約NNRユニットには、前記単一の集約NNRユニットのタイプを自己完結型NNR集約ユニットとして示す構文要素が含まれる、
ことを特徴とする請求項3に記載の方法。
【請求項5】
前記構文要素は、前記単一の集約NNRユニットのヘッダに含まれる、
ことを特徴とする請求項4に記載の方法。
【請求項6】
前記NNRモデルパラメータセットユニットには、前記NNRモデルパラメータセットユニットを参照する前記NNRユニットが独立して復号可能であることを示す構文要素が含まれる、
ことを特徴とする請求項1に記載の方法。
【請求項7】
前記構文要素は、前記NNRモデルパラメータセットユニットのヘッダに含まれる、ことを特徴とする請求項6に記載の方法。
【請求項8】
前記NNRレイヤパラメータセットユニットには、前記NNRレイヤパラメータセットユニットを参照する前記NNRユニットが独立して復号可能であることを示す構文要素が含まれる、
ことを特徴とする請求項1に記載の方法。
【請求項9】
前記構文要素は、前記NNRレイヤパラメータセットユニットのヘッダに含まれる、
ことを特徴とする請求項8に記載の方法。
【請求項10】
前記GONにおいて、前記NNRモデルパラメータセットユニットの後に、前記NNRレイヤパラメータセットユニットが続く、
ことを特徴とする請求項1に記載の方法。
【請求項11】
システムであって、
トポロジを有する独立したニューラルネットワークを表すNNRユニットグループ(GON)を含むニューラルネットワーク表現(NNR)ビットストリームを受信するように構成される少なくとも1つのプロセッサであって、前記GONには、
前記ニューラルネットワークのモデルパラメータセットを含むNNRモデルパラメータセットユニット、
前記ニューラルネットワークのモデルに含まれるレイヤのレイヤパラメータセットを含むNNRレイヤパラメータセットユニット、
前記ニューラルネットワークのトポロジ情報を含むNNRトポロジユニット、
前記ニューラルネットワークの量子化情報を含むNNR量子化ユニット、および
前記ニューラルネットワークの圧縮データを含むNNR圧縮データユニットが含まれる少なくとも1つのプロセッサと、
コンピュータコードが記されているメモリであって、前記コンピュータコードには、前記GONを復号することにより、前記トポロジを有する独立したニューラルネットワークを前記少なくとも1つのプロセッサに再構築させるように構成される再構築コードが含まれるメモリと、
を含むことを特徴とするシステム。
【請求項12】
前記GONは、前記NNRビットストリームの1つ以上の集約NNRユニットに含まれる、
ことを特徴とする請求項11に記載のシステム。
【請求項13】
前記GONは、単一の集約NNRユニットに含まれる、
ことを特徴とする請求項12に記載のシステム。
【請求項14】
前記単一の集約NNRユニットには、前記単一の集約NNRユニットのタイプを自己完結型NNR集約ユニットとして示す構文要素が含まれ、前記コンピュータコードには、前記単一の集約NNRユニットが、前記構文要素に基づいて自己完結型であることを決定するように構成される決定コードが含まれる、
ことを特徴とする請求項13に記載のシステム。
【請求項15】
前記構文要素は、前記単一の集約NNRユニットのヘッダに含まれる、
ことを特徴とする請求項14に記載のシステム。
【請求項16】
前記NNRモデルパラメータセットユニットには、前記NNRモデルパラメータセットユニットを参照する前記NNRユニットが独立して復号可能であることを示す構文要素が含まれ、前記コンピュータコードには、NNRモデルパラメータセットユニットを参照する前記NNRユニットが、前記構文要素に基づいて独立して復号可能であることを決定するように構成される決定コードが含まれる、
ことを特徴とする請求項11に記載のシステム。
【請求項17】
前記構文要素は、前記NNRモデルパラメータセットユニットのヘッダに含まれる、
ことを特徴とする請求項16に記載のシステム。
【請求項18】
前記NNRレイヤパラメータセットユニットには、前記NNRレイヤパラメータセットユニットを参照するNNRユニットが独立して復号可能であることを示す構文要素が含まれ、前記コンピュータコードには、前記NNRレイヤパラメータセットユニットを参照する前記NNRユニットが、前記構文要素に基づいて独立して復号可能であることを決定するように構成される決定コードが含まれる、
ことを特徴とする請求項11に記載のシステム。
【請求項19】
前記構文要素は、前記NNRレイヤパラメータセットユニットのヘッダに含まれる、
ことを特徴とする請求項18に記載のシステム。
【請求項20】
コンピュータプログラムであって、
前記コンピュータプログラムが、前記コンピュータプログラムが記憶されているメモリと、プロセッサとを含むコンピュータデバイスによって実行されるとき、前記請求項1~10のいずれか1項に記載の方法を実現させる、
ことを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願への相互参照]
本願は、2020年6月22日に出願された米国仮特許出願第63/042,298号、2020年7月1日に出願された米国仮特許出願第63/047,214号、2020年10月6日に出願された米国仮特許出願第63/088,304号、2020年10月9日に出願された米国仮特許出願第63/090,131号、2021年5月19日に出願された米国特許出願第17/324,623号からの優先権を主張しており、その開示は、参照によりその全体が本明細書に組み込まれる。
【0002】
[技術分野]
本開示の実施形態は、ニューラルネットワークデータの符号化および復号に関し、具体的には、圧縮ニューラルネットワーク表現用のパラメータセットおよびヘッダの設計に関する。
【背景技術】
【0003】
ニューラルネットワークデータの符号化と復号が提供されている。
【発明の概要】
【0004】
本開示の実施形態は、圧縮ニューラルネットワーク表現用のパラメータセットおよびヘッダの設計のための技術を含む。
【0005】
本開示の実施形態は、圧縮ニューラルネットワーク表現用の部分的かつ独立したユニットの設計のための技術を含む。
【0006】
本開示の実施形態は、圧縮ニューラルネットワーク表現用のパラメータセットおよび集約ユニットの設計のための技術を含む。
【0007】
1つ以上の実施形態は、少なくとも1つのプロセッサによって実行される方法を含む。この方法は、トポロジを有する独立したニューラルネットワークを表すNNRユニットグループ(GON)を含むニューラルネットワーク表現(NNR)ビットストリームを受信し、前記GONには、NNRモデルパラメータセットユニット、NNRレイヤパラメータセットユニット、NNRトポロジユニット、NNR量子化ユニット、およびNNR圧縮データユニットが含まれるステップと、前記GONを復号することにより、前記トポロジを有する前記独立したニューラルネットワークを再構築するステップと、を含む。
【0008】
一実施形態によれば、前記GONは、前記NNRビットストリームの1つ以上の集約NNRユニットに含まれる。
【0009】
一実施形態によれば、前記GONは、単一の集約NNRユニットに含まれる。
【0010】
一実施形態によれば、前記単一の集約NNRユニットには、前記単一の集約NNRユニットのタイプを自己完結型NNR集約ユニットとして示す構文要素が含まれる。
【0011】
一実施形態によれば、前記構文要素は、前記単一の集約NNRユニットのヘッダに含まれる。
【0012】
一実施形態によれば、前記NNRモデルパラメータセットユニットには、前記NNRモデルパラメータセットユニットを参照する前記NNRユニットが独立して復号可能であることを示す構文要素が含まれる。
【0013】
一実施形態によれば、前記構文要素は、前記NNRモデルパラメータセットユニットのヘッダに含まれる。
【0014】
一実施形態によれば、前記NNRレイヤパラメータセットユニットには、前記NNRレイヤパラメータセットユニットを参照する前記NNRユニットが独立して復号可能であることを示す構文要素が含まれる。
【0015】
一実施形態によれば、前記構文要素は、前記NNRレイヤパラメータセットユニットのヘッダに含まれる。
【0016】
一実施形態によれば、前記GONにおいて、前記NNRモデルパラメータセットユニットの後に、前記NNRレイヤパラメータセットユニットが続く。
【0017】
1つ以上の実施形態によれば、システムが提供される。このシステムは、トポロジを有する独立したニューラルネットワークを表すNNRユニットグループ(GON)を含むニューラルネットワーク表現(NNR)ビットストリームを受信するように構成される少なくとも1つのプロセッサであって、前記GONには、NNRモデルパラメータセットユニット、NNRレイヤパラメータセットユニット、NNRトポロジユニット、NNR量子化ユニット、およびNNR圧縮データユニットが含まれる少なくとも1つのプロセッサと、コンピュータコードが記されているメモリであって、前記コンピュータコードには、前記GONを復号することにより、前記トポロジを有する独立したニューラルネットワークを前記少なくとも1つのプロセッサに再構築させるように構成される再構築コードが含まれるメモリと、を含む。
【0018】
一実施形態によれば、前記GONは、前記NNRビットストリームの1つ以上の集約NNRユニットに含まれる。
【0019】
一実施形態によれば、前記GONは、単一の集約NNRユニットに含まれる。
【0020】
一実施形態によれば、前記単一の集約NNRユニットには、前記単一の集約NNRユニットのタイプを自己完結型NNR集約ユニットとして示す構文要素が含まれ、前記コンピュータコードには、前記単一の集約NNRユニットが、前記構文要素に基づいて自己完結型であることを決定するように構成される決定コードが含まれる。
【0021】
一実施形態によれば、前記構文要素は、前記単一の集約NNRユニットのヘッダに含まれる。
【0022】
一実施形態によれば、前記NNRモデルパラメータセットユニットには、前記NNRモデルパラメータセットユニットを参照する前記NNRユニットが独立して復号可能であることを示す構文要素が含まれ、前記コンピュータコードには、NNRモデルパラメータセットユニットを参照する前記NNRユニットが、前記構文要素に基づいて独立して復号可能であることを決定するように構成される決定コードが含まれる。
【0023】
一実施形態によれば、前記構文要素は、前記NNRモデルパラメータセットユニットのヘッダに含まれる。
【0024】
一実施形態によれば、前記NNRレイヤパラメータセットユニットには、前記NNRレイヤパラメータセットユニットを参照するNNRユニットが独立して復号可能であることを示す構文要素が含まれ、前記コンピュータコードには、前記NNRレイヤパラメータセットユニットを参照する前記NNRユニットが、前記構文要素に基づいて独立して復号可能であることを決定するように構成される決定コードが含まれる。
【0025】
一実施形態によれば、前記構文要素は、前記NNRレイヤパラメータセットユニットのヘッダに含まれる。
【0026】
一実施形態によれば、コンピュータ命令が記憶されている非一時的なコンピュータ読み取り可能な媒体が提供される。前記コンピュータ命令が、トポロジを有する独立したニューラルネットワークを表すNNRユニットグループ(GON)を含むニューラルネットワーク表現(NNR)ビットストリームを受信する少なくとも1つのプロセッサによって実行されると、前記少なくとも1つのプロセッサに、前記GONを復号することにより、前記トポロジを有する前記独立したニューラルネットワークを再構築させ、ここで、前記GONには、NNRモデルパラメータセットユニット、NNRレイヤパラメータセットユニット、NNRトポロジユニット、NNR量子化ユニット、およびNNR圧縮データユニットが含まれる。
【図面の簡単な説明】
【0027】
開示された主題の更なる特徴、性質、および様々な利点は、以下の詳細な説明および添付図面からより明らかになり、ここで、
【
図1】実施形態による、本明細書に記載の方法、装置、およびシステムが実装され得る環境の図である。
【
図2】
図1の1つ以上のデバイスの例示的なコンポーネントのブロック図である。
【
図3】実施形態によるNNRビットストリームの概略図である。
【
図4】実施形態によるNNRユニットの概略図である。
【
図5】実施形態による集約NNRユニットの概略図である。
【
図6】実施形態によるNNRユニットグループ(GON)の概略図である。
【
図7】実施形態によるコンピューティングシステムのブロック図である。
【発明を実施するための形態】
【0028】
図1は、本明細書に記載の方法、装置、およびシステムが実装される環境100の図である。
図1に示すように、環境100には、ユーザデバイス110、プラットフォーム120、およびネットワーク130が含まれ得る。環境100のデバイスは、有線接続、無線接続、または有線接続と無線接続の組み合わせを介して相互接続され得る。
【0029】
ユーザデバイス110には、プラットフォーム120に関連付けられている情報を受信、生成、記憶、処理、および/または提供することができる1つ以上のデバイスが含まれる。例えば、ユーザデバイス110には、コンピューティングデバイス(例えば、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ハンドヘルドコンピュータ、スマートスピーカー、サーバなど)、携帯電話(スマートフォン、無線電話機など)、ウェアラブルデバイス(スマート眼鏡またはスマートウォッチなど)、または類似のデバイスが含まれ得る。いくつかの実装形態では、ユーザデバイス110は、プラットフォーム120から情報を受信、および/またはプラットフォーム120に情報を送信することができる。
【0030】
プラットフォーム120には、本明細書の他の箇所に記載されているような、1つ以上のデバイスが含まれる。いくつかの実装形態では、プラットフォーム120には、クラウドサーバまたはクラウドサーバのグループが含まれ得る。いくつかの実装形態では、プラットフォーム120は、モジュール化されるように設計され得ており、これにより、ソフトウェアコンポーネントは、スワップインまたはスワップアウトされ得る。このようにして、プラットフォーム120は、異なる用途のために容易におよび/または迅速に再構成され得る。
【0031】
いくつかの実装形態では、図示されるように、プラットフォーム120は、クラウドコンピューティング環境122でホストされ得る。特に、本明細書に記載の実装形態では、プラットフォーム120は、クラウドコンピューティング環境122でホストされているものとして説明されいるが、いくつかの実装形態では、プラットフォーム120は、クラウドベースでなくてもよく(即ち、クラウドコンピューティング環境の外部で実装され得る)、または部分的にクラウドベースであってもよい。
【0032】
クラウドコンピューティング環境122には、プラットフォーム120をホストする環境が含まれる。クラウドコンピューティング環境122は、プラットフォーム120をホストするシステムおよび/またはデバイスの物理的位置および構成のエンドユーザ(例えば、ユーザデバイス110)の知識を必要としない計算、ソフトウェア、データアクセス、ストレージ、サービスなどを提供することができる。図示されるように、クラウドコンピューティング環境122には、コンピューティングリソース124のグループ(総合に「コンピューティングリソース124」と呼ばれ、個別に「コンピューティングリソース124」と呼ばれる)が含まれ得る。
【0033】
コンピューティングリソース124には、1つ以上のパーソナルコンピュータ、ワークステーションコンピュータ、サーバデバイス、または他のタイプの計算および/または通信デバイスが含まれる。いくつかの実装形態では、コンピューティングリソース124は、プラットフォーム120をホストすることができる。クラウドリソースには、コンピューティングリソース124で実行される計算インスタンス、コンピューティングリソース124によって提供されるストレージデバイス、コンピューティングリソース124によって提供されるデータ転送デバイスなどが含まれ得る。いくつかの実装形態では、コンピューティングリソース124は、有線接続、無線接続、または有線接続と無線接続の組み合わせを介して他のコンピューティングリソース124と通信することができる。
【0034】
さらに
図1に示すように、コンピューティングリソース124には、1つ以上のアプリケーション(「APP」)124-1、1つ以上の仮想マシン(「VM」)124-2、仮想化されたストレージ(「VS」)124-3、1つ以上のハイパーバイザ(「HYP」)124-4などのクラウドリソースのグループが含まれる。
【0035】
アプリケーション124-1には、ユーザデバイス110および/またはプラットフォーム120に提供され、またはユーザデバイス110および/またはプラットフォーム120によってアクセスされ得る1つ以上のソフトウェアアプリケーションが含まれる。アプリケーション124-1は、ユーザデバイス110上にソフトウェアアプリケーションをインストールして実行するニーズを排除することができる。例えば、アプリケーション124-1には、プラットフォーム120に関連付けられているソフトウェア、および/またはクラウドコンピューティング環境122を介して提供され得る任意の他のソフトウェアが含まれ得る。いくつかの実装形態では、1つのアプリケーション124-1は、仮想マシン124-2を介して、1つ以上の他のアプリケーション124-1に対して情報を送受信することができる。
【0036】
仮想マシン124-2には、物理マシンのようにプログラムを実行するマシン(例えば、コンピュータ)のソフトウェア実装が含まれる。仮想マシン124-2は、仮想マシン124-2の用途および仮想マシン124-2によるいかなる実際のマシンに対する対応程度に基づいて、システム仮想マシンまたはプロセス仮想マシンのいずれかであってもよい。システム仮想マシンは、完全なオペレーティングシステム(「OS」)の実行をサポートする完全なシステムプラットフォームを提供することができる。プロセス仮想マシンは、単一のプログラムを実行することができ、また、単一のプロセスをサポートすることができる。いくつかの実装形態では、仮想マシン124-2は、ユーザ(例えば、ユーザデバイス110)に代わって実行し、データ管理、同期、または長い期間のデータ転送などの、クラウドコンピューティング環境122のインフラストラクチャを管理することができる。
【0037】
仮想化ストレージ124-3には、1つ以上のストレージシステム、および/または、コンピューティングリソース124のストレージシステムまたはデバイス内で仮想化技術を使用する1つ以上のデバイスが含まれる。いくつかの実装形態では、ストレージシステムのコンテキスト内で、仮想化のタイプには、ブロック仮想化およびファイル仮想化が含まれ得る。ブロック仮想化とは、物理ストレージからの論理ストレージの抽象化(または分離)を指すことができ、それによって、ストレージシステムは、物理ストレージまたは異種構造に関係なくアクセスされ得る。この分離は、ストレージシステムの管理者が、エンドユーザのためのストレージをどのように管理する方面で柔軟になることを許可することができる。ファイルの仮想化は、ファイルレベルでアクセスされるデータと、ファイルが物理的に記憶されている場所との間の依存関係を排除することができる。これは、ストレージの使用、サーバの統合、および/または非破壊的なファイル移行のパフォーマンスの最適化を可能にすることができる。
【0038】
ハイパーバイザ124-4は、コンピューティングリソース124などのホストコンピュータ上で複数のオペレーティングシステム(例えば、「ゲストオペレーティングシステム」)が同時に実行されることを可能にするハードウェア仮想化技術を提供することができる。ハイパーバイザ124-4は、仮想オペレーティングプラットフォームをゲストオペレーティングシステムに提示することができ、ゲストオペレーティングシステムの実行を管理することができる。様々なオペレーティングシステムの複数のインスタンスは、仮想化されたハードウェアリソースを共有することができる。
【0039】
ネットワーク130には、1つ以上の有線および/または無線ネットワークが含まれる。例えば、ネットワーク130には、セルラーネットワーク(例えば、第5世代(5G)ネットワーク、長期進化(LTE:long-term evolution)ネットワーク、第3世代(3G)ネットワーク、コード分割多元接続(CDMA:code division multiple access)ネットワークなど)、公衆陸上移動体通信(PLMN:public land mobile network)、ローカルエリアネットワーク(LAN:local area network)、ワイドエリアネットワーク(WAN:wide area network)、メトロポリタンエリアネットワーク(MAN:Metropolitan Area Network)、電話ネットワーク(例えば、公衆交換電話網(PSTN:Public Switched Telephone Network))、プライベートネットワーク、アドホックネットワーク、イントラネット、インターネット、光ファイバベースのネットワークなど、および/またはこれらまたは他のタイプのネットワークの組み合わせなどが含まれ得る。
【0040】
図1に示されるデバイスおよびネットワークの数および配置は、例として提供される。実際には、
図1に示されるものよりも、追加のデバイスおよび/またはネットワーク、より少ないデバイスおよび/またはネットワーク、異なるデバイスおよび/またはネットワーク、あるいは異なって配置されたデバイスおよび/またはネットワークが存在し得る。さらに、
図1に示されている2つ以上のデバイスは、単一のデバイス内に実装されてもよく、あるいは、
図1に示されている単一のデバイスは、複数の分散デバイスとして実装されてもよい。追加的にまたは代替的には、環境100の一組のデバイス(例えば、1つ以上のデバイス)は、環境100の別組のデバイスによって実行されるものとして説明される1つ以上の機能を実行することができる。
【0041】
図2は、
図1の1つ以上のデバイスの例示的なコンポーネントのブロック図である。デバイス200は、ユーザデバイス110および/またはプラットフォーム120に対応することができる。
図2に示すように、デバイス200には、バス210、プロセッサ220、メモリ230、ストレージコンポーネント240、入力コンポーネント250、出力コンポーネント260、および通信インタフェース270が含まれ得る。
【0042】
バス210には、デバイス200のコンポーネント間の通信を可能にするコンポーネントが含まれる。プロセッサ220は、ハードウェア、ファームウェア、またはハードウェアとソフトウェアの組み合わせで実装される。プロセッサ220は、中央処理ユニット(CPU:central processing unit)、グラフィックス処理ユニット(GPU:graphics processing unit)、加速処理ユニット(APU:accelerated processing unit)、マイクロプロセッサ、マイクロコントローラ、デジタルシグナルプロセッサ(DSP:digital signal processor)、フィールドプログラマブルゲートアレイ(FPGA:field-programmable gate array)、特定用途向け集積回路(ASIC:application-specific integrated circuit)、または別のタイプの処理コンポーネンである。いくつかの実装形態では、プロセッサ220には、機能を実行するようにプログラミングされ得る1つ以上のプロセッサが含まれ得る。メモリ230には、ランダムアクセスメモリ(RAM:random access memory)、読み出し専用メモリ(ROM:read only memory)、および/またはプロセッサ220によって使用される情報および/または命令が記憶されている別のタイプの動的または静的ストレージデバイス(例えば、フラッシュメモリ、磁気メモリ、および/または光メモリ)が含まれ得る。
【0043】
ストレージコンポーネント240には、デバイス200の動作および使用に関連付けられている情報および/またはソフトウェアが記憶されている。例えば、ストレージコンポーネント240には、対応するドライブと共に、ハードディスク(例えば、磁気ディスク、光ディスク、光磁気ディスク、および/またはソリッドステートディスク)、コンパクトディスク(CD:compact disc)、デジタル多用途ディスク(DVD: digital versatile disc)、フロッピーディスク、カートリッジ、磁気テープ、および/または別のタイプの非一時的なコンピュータ読み取り可能な媒体)が含まれ得る。
【0044】
入力コンポーネント250には、デバイス200がユーザ入力(例えば、タッチスクリーンディスプレイ、キーボード、キーパッド、マウス、ボタン、スイッチ、および/またはマイクロフォンなど)を介して情報を受信することを可能にするコンポーネントが含まれる。追加的にまたは代替的には、入力コンポーネント250は、情報を感知するためのセンサ(例えば、全地球測位システム(GPS:global positioning system)コンポーネント、加速度計、ジャイロスコープ、および/またはアクチュエータ)が含まれ得る。出力コンポーネント260には、デバイス200からの出力情報を提供するコンポーネント(例えば、ディスプレイ、スピーカー、および/または1つ以上の発光ダイオード(LED:light-emitting diode))が含まれる。
【0045】
通信インタフェース270には、デバイス200が有線接続、無線接続、または有線接続と無線接続の組み合わせなどを介して他のデバイスと通信することを可能にするトランシーバのようなコンポーネント(例えば、トランシーバおよび/または別個の受信機と送信機)が含まれる。通信インタフェース270は、デバイス200が別のデバイスから情報を受信し、および/または別のデバイスに情報を提供することを可能にする。例えば、通信インタフェース270には、イーサネットインタフェース、光インタフェース、同軸インタフェース、赤外線インタフェース、無線周波数(RF:radio frequency)インタフェース、ユニバーサルシリアルバス(UBS: universal serial bus)インタフェース、Wi-Fiインタフェース、セルラーネットワークインタフェースなどが含まれ得る。
【0046】
デバイス200は、本明細書に記載の1つ以上のプロセスを実行することができる。デバイス200は、プロセッサ220がメモリ230および/またはストレージコンポーネント240などの非一時的なコンピュータ読み取り可能な媒体によって記憶されているソフトウェア命令を実行することに応答して、これらのプロセスを実行することができる。コンピュータ読み取り可能な媒体は、本明細書では、非一時的なメモリデバイスとして定義される。メモリデバイスには、単一の物理ストレージデバイス内のメモリスペース、または複数の物理ストレージデバイスにわたって分散されているメモリスペースが含まれる。
【0047】
コンピュータプログラム製品またはコンピュータプログラムに含まれるソフトウェア命令は、通信インタフェース270を介して、別のコンピュータ読み取り可能な媒体から、または別のデバイスから、メモリ230および/またはストレージコンポーネント240に読み込まれ得る。メモリ230および/またはストレージコンポーネント240に記憶されているソフトウェア命令は、実行されるとき、プロセッサ220に、本明細書に記載の1つ以上のプロセスを実行させることができる。追加的にまたは代替的には、本明細書に記載の1つ以上のプロセスを実行するために、ハードウェア回路は、ソフトウェア命令の代わりに、またはソフトウェア命令と組み合わせて、使用され得る。したがって、本明細書に記載の実装は、ハードウェア回路とソフトウェアの特定の組み合わせに限定されない。
【0048】
図2に示されるコンポーネントの数および配置は、例として提供される。実際には、デバイス200は、
図2に示されるものよりも、追加のコンポーネント、より少ないコンポーネント、異なるコンポーネント、または異なって配置されたコンポーネントを含み得る。追加的にまたは代替的には、デバイス200の一組のデバイス(例えば、1つ以上のコンポーネント)は、デバイス200の別組のコンポーネントによって実行されるものとして説明される1つ以上の機能を実行することができる。
【0049】
以下に説明する実施形態は、環境100の1つ以上のコンポーネントによって実装され得る。例えば、以下に説明する実施形態は、ユーザデバイス110またはプラットフォーム120によって実装され得る。以下に説明する実施形態は、コンピュータ命令が記憶されている少なくとも1つのプロセッサおよびメモリによって実現され得る。コンピュータ命令は、少なくとも1つのプロセッサによって実行されるとき、実施形態の機能を実行させるように構成され得る。例えば、コンピュータ命令は、NNRビットストリームの送信、受信、および復号を含む、以下に説明されるように少なくとも1つのNNRビットストリームを少なくとも1つのプロセッサに実現させるように構成され得る。
【0050】
本開示の実施形態には、NNR HLSにおけるパラメータセットおよびヘッダに対する以下の改善が含まれ得る。
【0051】
態様1について、実施形態は、トポロジを有する全体的または部分的なニューラルネットワークを含むNNRユニットのグループである「NNRユニットグループ(GON)」の定義を追加することができる。各GONは、自己完結型で独立して復号可能である。NNRビットストリームでは、1つ以上のGONが存在し得る。各GONは、NNRモデルパラメータセットユニットで始まり、その後に、NNRレイヤパラメータセット、NNRトポロジユニット、およびその他のNNRユニットが続く。GONの概念は、時系列の概念を除いて、VVC/HEVC/AVCにおける、コード化されたビデオシーケンス(CVS:coded video sequence)と同等であり得る。GONには、カウント情報を有するシーケンス順序を持たない場合がある。各GONは、1つ以上の集約NNRユニットに含まれ得る。集約NNRユニットがトポロジを有する部分的または全体的なニューラルネットワークを表す場合、各集約NNRユニットには、少なくとも1つの関連付けられているモデルパラメータセットおよび1つの関連付けられているレイヤパラメータセットが含まれ得る。そして、関連付けられているモデルパラメータセットおよび関連付けられているレイヤパラメータセットの範囲は、集約NNRユニットに含まれている(または、関連付けられている)NNRユニットに制限され得る。この場合、集約NNRユニットは、参照パラメータを示すための1つ以上の識別子を有することができる。
【0052】
態様2について、実施形態は、model_parameter_set_idおよびlayer_parameter_set_idという構文要素を含み、また、NNRモデルパラメータセットおよびレイヤパラメータセットの参照規則と、それらの範囲とを定義することができ、これにより、1つのモデルパラメータセットのみは、NNRユニットグループにおける全てのレイヤパラメータセットによって参照され、また、レイヤパラメータセットは、1つ以上のNNRユニットによって参照される。NNRモデルパラメータセットおよびレイヤパラメータセットの概念は、それぞれ、VVC/HEVC/AVCにおけるシーケンスパラメータセットおよび画像パラメータセットと同等であり得る。各集約NNRユニットは、どのパラメータセットが集約NNRユニットにおけるNNRユニットに関連付けられているかを指定するために、それ自身のパラメータセットIDを有することができる。
【0053】
態様3について、実施形態は、モデルパラメータセットおよびレイヤパラメータセットにおいて、構文要素sparsification_flagをそれぞれmodel_sparsification_present_flagおよびlayer_sparsification_present_flagとして含み、また、同じパラメータが両方のパラメータセットに存在することを回避するために、model_sparsification_present_flagが1に等しいとき、layer_sparsification_present_flagの値が0に等しくなるという制約を課すことができる。一実施形態では、疎化パラメータ(sparisification parameters)が、モデルパラメータセットとレイヤパラメータセットの両方に存在する場合、疎化パラメータの値は、レイヤパラメータセットにおける疎化パラメータの値をオーバーライドする。
【0054】
態様4について、実施形態は、モデルパラメータセットおよびレイヤパラメータセットにおいて、構文要素quantitation_method_flagsをそれぞれmodel_quantization_method_flagsおよびlayer_quantization_method_flagsとして含み、また、モデルパラメータセットとレイヤパラメータセットの両方における構文要素のシグナリングを回避するために、model_quantization_method_flagsとlayer_quantization_method_flagsが0に等しくなることが要求されるという制約を課すことができる。一実施形態では、量子化パラメータが、モデルパラメータセットとレイヤパラメータセットの両方に存在する場合、量子化パラメータの値は、レイヤパラメータセットにおける量子化パラメータの値をオーバーライドする。
【0055】
態様5について、実施形態は、NNR開始ユニット(ヘッダ)におけるプロファイルを指示するgeneral_profile_idcを含むことができる。NNR開始ユニット内のgeneral_profile_idcの範囲は、ビットストリーム全体であり得る。
【0056】
態様6について、パラメータセットと開始ユニットにヘッダがあるというユースケースがない場合があるため、実施形態は、nnr_model_parameter_set_unit_header()およびnnr_layer_parameter_set_unit_header()を含まない可能性がある。
【0057】
本開示の実施形態の上記の態様および他の態様は、以下の説明に基づいて理解され得る。
【0058】
[態様1]
本開示の実施形態には、トポロジを有する全体的または部分的なニューラルネットワークを含むNNRユニットのグループである「NNRユニットグループ(GON)」の定義が含まれる。各GONは、自己完結型で独立して復号可能である。NNRビットストリームでは、1つ以上のGONが存在し得る。これは、NNRビットストリームには、複数のトポロジを有する複数のニューラルネットワークが含まれる、ということを意味する。GONの概念は、時系列の概念を除いて、VVC/HEVC/AVCにおける、コード化されたビデオシーケンス(CVS)と同等であり得る。GONには、カウント情報を有するシーケンス順序を持たない場合がある。NNR開始ユニットが各NNRビットストリームに存在した後、各GONは、NNRモデルパラメータセットユニットで始まり、その後に、NNRレイヤパラメータセット、NNRトポロジユニット、およびその他のNNRユニットが続く。
【0059】
本開示の実施形態は、例えば、NNRビットストリームを送信、受信、および/または復号することができる。以下、本開示の実施形態によって実装され得る、NNRビットストリームおよびその構文要素は説明される。
【0060】
(A)NNRビットストリームおよび一般的なビットストリーム構文要素の説明
(1)NNRビットストリーム
図3を参照すると、NNRビットストリーム300は、一連のNNRユニット302で構成される。NNRビットストリーム300における1番目のNNRユニット302は、NNR開始ユニット(例えば、NNR_STRというタイプのNNRユニット)であることが要求され得る。
【0061】
(2)NNRユニット
図4を参照すると、1つ以上のNNRユニット302は、NNRユニット310であり得る。NNRユニット310は、本開示の実施形態に従って圧縮または表されるニューラルネットワークデータおよび関連付けられているメタデータを搬送するためのデータ構造である。
【0062】
NNRユニット310は、ニューラルネットワークメタデータ、トポロジ情報、全体的または部分的なレイヤデータ、フィルター、カーネル、バイアス、量子化重み、テンソルなどに関する圧縮された情報または非圧縮された情報を搬送する。
【0063】
NNRユニット310は、
(a)NNRユニットサイズが含まれ、NNRユニット310の総バイトサイズが信号で通知されるNNRユニットサイズ312、
(b)NNRユニットタイプおよび関連付けられているメタデータに関する情報が含まれるNNRユニットヘッダ314、および、
(c)ニューラルネットワークに関連付けられている圧縮されたデータまたは非圧縮されたデータが含まれるNNRユニットペイロード316、というデータ要素を含み得るか、またはそれらから構成され得る。
【0064】
(3)集約NNRユニット
図5を参照すると、1つ以上のNNRユニット302は、集約NNRユニット320であり得る。集約NNRユニット320は、そのペイロードに複数のNNRユニット310を搬送するNNRユニットである。集約NNRユニット320は、互いに関連しているいくつかのNNRユニット310のためにグループ化メカニズムを提供し、単一のNNRユニット302の下での集約から利益を得る。例えば、集約NNRユニット310は、
(a)NNRユニットサイズが含まれ、集約NNRユニット310の総バイトサイズが信号で通知される集約NNRユニットサイズ322、
(b)集約NNRユニットタイプおよび関連付けられているメタデータに関する情報が含まれる集約NNRユニットヘッダ324、および、
(c)複数のNNRユニット310が含まれる集約NNRユニットペイロード326、というデータ要素を含み得るか、またはそれらから構成され得る。
【0065】
(B)NNRユニットグループ(GON)
NNRユニットグループ(GON)330には、トポロジを有する独立したニューラルネットワークが含まれる。GON330は、NNRモデルパラメータセットユニット331、1つ以上のNNRレイヤパラメータセットユニット332、NNRトポロジユニット333、1つ以上のNNR量子化ユニット334、およびNNR圧縮データユニット335を含むか、またはそれらから構成される。NNR開始ユニットがNNRビットストリームに存在した後、GON330は、NNRモデルパラメータセットユニット331で始まり、その後に、NNRレイヤパラメータセットユニット332、NNRトポロジユニット333、および他のユニットが続く。
【0066】
NNRビットストリーム300は、1つ以上のGONで構成される。各GONは、独立して復号および抽出可能である。
【0067】
各GON330は、1つ以上の集合NNRユニット320に含まれ得る。例えば、GON330の各ユニットは、1つの集約NNRユニット320または複数の集約NNRユニット320のNNRユニット310のうち、それぞれのNNRユニット310であり得る。各集約NNRユニット320は、1つの集約NNRユニット320がトポロジを有する部分的または全体的なニューラルネットワークを表す場合、少なくとも1つの関連付けられているモデルパラメータセットおよび1つの関連付けられているレイヤパラメータセットを含み得る。そして、関連付けられているモデルパラメータセットおよび関連付けられているレイヤパラメータセットの範囲は、集約NNRユニット320に含まれている(または関連付けられている)NNRユニットに制限され得る。この場合、集約NNRユニット320は、参照パラメータを示すために、1つ以上の識別子を有することができる。
【0068】
(C)集約NNRユニットヘッダセマンティクス
集約NNRユニットヘッダ324は、nnr_aggregate_unit_type、entry_points_present_flag、num_of_nnr_units_minus2、nnr_unit_type[i]、nnr_unit_entry_point[i]、quant_bitdepth[i]、ctu_scan_order[i]などの構文要素を含むが、それらに限定されない。
【0069】
nnr_aggregate_unit_typeという構文要素は、集約NNRユニット320のタイプを指定する。
【0070】
例えば、NNR集約ユニットのタイプは、以下の表1に指定されているとおりである。
【0071】
表1:NNR集約ユニットタイプ
【0072】
【表1】
構文要素entry_points_present_flagは、個々のNNRユニットエントリポイントが存在するかどうかを指定する。
【0073】
構文要素num_of_nnr_units_minus2プラス2は、NNR集約ユニットのペイロードに存在しているNNRユニット310の数を指定する。
【0074】
構文要素nnr_unit_type[i]は、インデックスiを有するNNRユニット310のNNRユニットタイプを指定する。この値は、インデックスiでのNNRユニット310のNNRユニットタイプと同じであることが要求され得る。
【0075】
構文要素nnr_unit_entry_point[i]は、NNR集約ユニットのペイロードにおいて、かつインデックスiで、集約NNRユニット320の開始からNNRユニット310の開始までのバイトオフセットを指定する。この値は、集約NNRユニット320の総バイトサイズよりも小さいであることが要求され得る。構文要素nnr_unit_entry_pointの値は、NNR集約ユニットのペイロード内のNNRユニット310への高速かつランダムなアクセスのために使用される。
【0076】
構文要素quant_bitdepth[i]は、集約NNRユニット320における各テンソルのための量子化された係数の最大ビット深度を指定する。
【0077】
構文要素ctu_scan_order[i]は、集約NNRユニット320における各テンソルのためのCTU単位でのスキャン順序を指定する。値0は、CTU単位でのスキャン順序が水平方向でのラスタースキャン順序であることを示し、値1は、CTU単位でのスキャン順序が垂直方向でのラスタースキャン順序であることを示す。
【0078】
[態様2]
本開示の実施形態は、model_parameter_set_idおよびlayer_parameter_set_idを含み、また、NNRモデルパラメータセットおよびレイヤパラメータセットの参照規則と、それらの範囲とを定義することができ、これにより、1つのモデルパラメータセットのみは、GONにおける全てのレイヤパラメータセットによって参照され、また、レイヤパラメータセットは、1つ以上のNNR量子化および圧縮データユニットによって参照される。したがって、階層的参照のための構造は、各NNR量子化および圧縮データユニットが、NNRモデルパラメータセットユニットを参照するNNRレイヤパラメータセットユニットを参照することである。
【0079】
NNRモデルパラメータセットおよびレイヤパラメータセットの概念は、それぞれ、VVC/HEVC/AVCにおけるシーケンスパラメータセットおよび画像パラメータセットと同等であり得る。
【0080】
本開示の実施形態は、以下の制約を実現することができる。
【0081】
(1)NNRビットストリームは、NNR開始ユニット(NNR_STR)で始まり得る。
【0082】
(2)NNRビットストリーム300における任意のNNR_NDUの前にある、NNRビットストリーム300における単一のNNRモデルパラメータセット(NNR_MPS)があり得る。
【0083】
(3)NNRレイヤパラメータセットは、NNRビットストリーム300における次のNNRレイヤパラメータセットまで、または集合NNRユニット320の境界に達するまでアクティブにする。
【0084】
(4)構文要素ref_idの値は、NNRビットストリーム300で一意であることが要求されるものにする。
【0085】
(5)NNR_TPLまたはNNR_QNTユニットは、NNRビットストリーム300に存在している場合、それらのデータ構造を参照する任意のNNR_NDUに先行するものとする(例えば、ref_ids)。
【0086】
本開示の実施形態は、NNRビットストリーム300に存在し得るNNRモデルパラメータセットを実装することができる。NNRモデルパラメータセットの構文の例は、以下の表2に提供される。
【0087】
表2:NNRモデルパラメータセットペイロード構文
【0088】
【表2】
構文要素mps_model_parameter_set_idは、他の構文要素による参照のためにモデルパラメータセットの識別子を指定する。
【0089】
本開示の実施形態は、NNRビットストリーム300に存在し得る、NNRレイヤパラメータセットを実装することができる。NNRレイヤパラメータセットの構文の例は、以下の表3に提供される。
【0090】
表3:NNRレイヤパラメータセットユニットペイロード構文
【0091】
【表3】
構文要素lps_layer_parameter_set_idは、他の構文要素による参照のためにレイヤパラメータセットの識別子を指定する。
【0092】
構文要素lps_model_parameter_set_idは、レイヤパラメータセットによって参照されるモデルパラメータセットのためのmps_model_parameter_set_idの値を指定する。lps_model_parameter_set_idの値は、GONにおける全てのレイヤパラメータセットで同じであることが要求される。
【0093】
本開示の実施形態は、NNRビットストリーム300に存在し得る、NNR量子化ユニットのNNR量子化ユニットヘッダを実装することができる。NNR量子化ユニットヘッダの構文の例は、以下の表4に提供される。
【0094】
表4:NNR量子化ユニットヘッダ構文
【0095】
【表4】
構文要素qu_layer_parameter_set_idは、NNR量子化ユニットによって参照されるレイヤパラメータセットのためのlps_layer_parameter_set_idの値を指定する。
【0096】
本開示の実施形態は、NNRビットストリーム300に存在し得る、NNR圧縮データユニットのNNR圧縮データユニットヘッダを実装することができる。NNR圧縮データユニットヘッダの構文例は、以下の表5に提供される。
【0097】
表5:NNR圧縮データユニットヘッダ構文
【0098】
【表5】
構文要素cdu_layer_parameter_set_idは、NNR圧縮データユニットによって参照されるレイヤパラメータセットのためのlps_layer_parameter_set_idの値を指定する。
【0099】
[態様3]
本開示の実施形態は、NNRモデルパラメータセットユニットおよびNNRレイヤパラメータセットユニットにおいて、構文要素sparsifigy_flagをそれぞれmodel_sparsification_present_flagおよびlayer_sparsification_present_flagとして含み、または、同じパラメータが両方のパラメータセットに存在することを回避するために、model_sparsification_present_flagが1に等しいとき、layer_sparsification_present_flagの値が0に等しくなるという制約を課すことができる。実施形態では、model_sparsification_present_flagは、GONにおけるsparsification_performance_map()のグローバル指示のために、1に等しく設定することが要求される。それ以外の場合、ローカル指示のために、model_sparsification_present_flagは、0に設定され、layer_sparsification_present_flagは、1に設定される。NNRモデルパラメータセットユニットとレイヤパラメータセットユニットの両方でsparsification_performance_map()を信号で通知することは、効率が悪くなり、混乱が生じる可能性がある。
【0100】
一実施形態では、疎化パラメータがモデルパラメータセットとレイヤパラメータセットの両方に存在する場合、疎化パラメータの値は、レイヤパラメータセットにおける疎化パラメータの値をオーバーライドする。
【0101】
NNRモデルパラメータセットの構文の例は、以下の表6に提供される。
【0102】
表6:NNRモデルパラメータセットペイロード構文
【0103】
【表6】
NNRレイヤパラメータセットの構文の例は、以下の表7に提供される。
【0104】
表7:NNRレイヤパラメータセットユニットペイロード構文
【0105】
【表7】
model_sparsification_flagが1に等しい場合、layer_sparsification_flagの値は、0に等しくなることが要求される。
【0106】
[態様4]
実施形態は、モデルパラメータセットおよびレイヤパラメータセットにおいて、model_quantization_method_present_flagおよびlayer_quantization_method_present_flagをそれぞれ含み、同じパラメータが両方のパラメータセットに存在することを回避するために、model_quantization_method_present_flagが1に等しいとき、layer_quantization_method_present_flagの値が0に等しくなるという制約を課すことができる。
【0107】
NNRモデルパラメータセットの構文の例は、以下の表8に提供される。
【0108】
表8:NNRモデルパラメータセットペイロード構文
【0109】
【表8】
構文要素model_quantization_method_flagsは、モデル全体のために使用される量子化方法を指定する。複数のモデルが指定された場合、それらは、ORで結合される。一例として、表9に示す量子化方法は、指定され得る。
【0110】
表9:量子化方法
【0111】
【表9】
NNRレイヤパラメータセットの構文例を以下の表10に示す。
【0112】
表10:NNRレイヤパラメータセットユニットペイロード構文
【0113】
【表10】
構文要素layer_quantization_method_flagsは、このレイヤパラメータセットが参照するNNR圧縮データユニットに含まれるデータのために使用される量子化方法を指定する。複数のモデルが指定された場合、それらは、「OR」で結合される。一例として、以下の表11に示す量子化方法は、指定され得る。
【0114】
表11:量子化方法
【0115】
【表11】
構文要素model_quantization_method_flagsおよびquantization_method_flagsは、0に等しくなることが要求される。
【0116】
一実施形態では、量子化パラメータがモデルパラメータセットとレイヤパラメータセットの両方に存在する場合、量子化パラメータの値は、レイヤパラメータセットにおける量子化パラメータの値をオーバーライドする。以下、そのような実施形態は、表12~16を参照して以下に説明される。
【0117】
そのような実施形態による、NNRモデルパラメータセットの構文の例は、以下の表12に提供される。
【0118】
表12:NNRモデルパラメータセットペイロード構文
【0119】
【表12】
構文要素topology_carriage_flagは、NNRビットストリーム300がトポロジを内部または外部のどちらで搬送するかを指定する。1に設定する場合、トポロジが1つ以上のNNRユニットタイプ「NNR_TPL」内で搬送されることを指定する。0に設定する場合、トポロジが外部(即ち、NNRビットストリーム300に対する帯域外)で提供されることを指定する。
【0120】
構文要素mps_quantization_method_flagsは、このモデルパラメータセットを参照するNNR圧縮データユニットにおけるモデルのために使用される量子化方法を指定する。複数のモデルが指定された場合、それらは、「OR」で結合される。このような実施形態では、一例として、表13に示す量子化方法は、指定され得る。
【0121】
表13:量子化方法
【0122】
【表13】
構文要素mps_qp_densityは、このモデルパラメータセットを参照するNNR圧縮データユニットにおける構文要素mps_quantization_parameterの密度情報を指定する。
【0123】
構文要素mps_quantization_parameterは、このモデルパラメータセットを参照するNNR圧縮データユニットにおける算術符号化用のニューラルネットワークの各レイヤのパラメータのスカラー一様量子化のために量子化パラメータを指定する。
【0124】
構文要素mps_sparsification_flagは、このモデルパラメータセットを参照するNNR圧縮データユニットにおけるのモデルに疎化が適用されるかどうかを指定する。
【0125】
構文要素sparsification_performance_map()は、異なる疎化閾値と得られたNN推論精度との間のマッピングを指定する。得られた精度は、NNの出力の異なる態様または特性のために個別に提供され得る。分類器NNについて、各疎化閾値は、全てのクラスを考慮した全体的な精度に加えて、クラスごとに個別の精度にマッピングされ得る。クラスは、ニューラルネットワークの出力順序(トレーニング中に指定された順序など)に基づいて順序付けられる。
【0126】
構文要素count_thresholdsは、疎化閾値の数を指定する。
【0127】
構文要素sparsification_thresholdは、重みをゼロに設定する(例えば、値が閾値よりも小さい重みをゼロに設定する)ために、復号されたニューラルネットワークの重みに適用される閾値を指定する。
【0128】
構文要素non_zero_ratioは、sparsification_thresholdを適用して重みを疎化することによって達成される非ゼロ比率を指定する。
【0129】
構文要素nn_accuracyは、NNの全体的な精度(例えば、全てのクラスを考慮した分類精度)を指定する。
【0130】
構文要素count_classesは、各疎化閾値に対して個別の精度が提供されるクラスの数を指定する。
【0131】
構文要素nn_class_accuracyは、特定の疎化閾値が適用される際の特定のクラスの精度を指定する。
【0132】
構文要素ctu_partition_flagは、ブロック分割がニューラルネットワークの各レイヤの重みテンソルに対して有効になっているかどうかを指定する。値0は、ブロック分割が無効になっていることを示し、値1は、分割されたブロックがコーディングツリーユニット(CTU:coding tree unit)として定義されるブロック分割が有効になっていることを示す。
【0133】
構文要素max_ctu_dim_flagは、ニューラルネットワークの重みテンソルのためのモデル単位での最大CTU次元を指定し、即ち、gctu_dim=(64>>max_ctu_dim_flagである。テンソル単位での最大CTU幅は、各畳み込みテンソルのカーネルサイズでスケーリングされ、即ち、max_ctu_height=gctu_dim、max_ctu_width=gctu_dim*kernel_sizeである。右/下のCTUの高さ/幅は、max_ctu_height/max_ctu_widthよりも小さい場合がある。
【0134】
NNRレイヤパラメータセットの構文の例は、以下の表14に提供される。
【0135】
表14:NNRレイヤパラメータセットユニットペイロード構文
【0136】
【表14】
構文要素lps_quantization_method_flagsは、このレイヤパラメータセットを参照するNNR圧縮データユニットに含まれるデータのために使用される量子化方法を指定する。複数のモデルが指定された場合、それらは、「OR」で結合される。一例として、以下の表15に示す量子化方法は、指定され得る。
【0137】
表15:量子化方法
【0138】
【表15】
構文要素lps_quantization_step_sizeは、このレイヤパラメータセットを参照するNNR圧縮データユニットに含まれるデータのために使用されるスカラー一様量子化方法のステップ間隔を指定する。
【0139】
構文要素quantization_map()は、コードブックベースの量子化方法のためのコードブックを指定する。
【0140】
構文要素compressed_flagは、量子化マップデータがさらに圧縮されるかどうかを指定する。
【0141】
構文要素compression_formatは、以下の表16に示す値のいずれかをとる列挙リストであり、また、quantization_map_data()をさらに圧縮するために使用される圧縮方法を示す。
【0142】
表16:圧縮フォーマットおよび値
【0143】
【表16】
構文要素index_precisionは、quantization_map_data()のキー値で使用される整数型を指定する。値0は、8ビットの精度を示し、値1は、16ビットの精度を示し、値2は、32ビットの精度を示す。他の値は、予約されている。
【0144】
構文要素quantization_map_data()は、{[index<index_precision>:value<float(32)>]}という形式の配列またはディクショナリを指定し、ここで、indexは、量子化された値のインジケータであり、2番目のvalueは、その量子化された値のindexに対応する符号付き浮動小数点値である。
【0145】
構文要素lps_sparsification_flagは、疎化がこのレイヤパラメータセットを参照するNNR圧縮データユニットにおけるモデルに適用されるかどうかを指定する。
【0146】
構文要素sparsification_performance_map()は、異なる疎化閾値と得られたNN推論精度との間のマッピングを指定する。得られた精度は、NNの出力の異なる態様または特性のために個別に提供され得る。分類器NNについて、各疎化閾値は、全てのクラスを考慮した全体的な精度に加えて、クラスごとに個別の精度にマッピングされ得る。クラスは、ニューラルネットワークの出力順序、例えば、トレーニング中に指定された順序に基づいて順序付けられる。
【0147】
mps_sparsification_flagおよびlps_sparsification_flagが1に等しい場合、レイヤパラメータセットにおけるsparsification_performance_map内()の構文要素の値は、モデルパラメータセットにおけるsparsification_performance_map()内の構文要素の値をオーバーライドすることにより、このレイヤパラメータセットを参照するNNR圧縮データユニットで使用され得る。
【0148】
[態様5]
本開示の実施形態は、NNR開始ユニット(ヘッダ)におけるプロファイルを指示するgeneral_profile_idcを含み得る。プロファイル情報は、NNRビットストリーム300でどのコーディングアルゴリズムおよびトポロジが使用されているかについての情報を提供するために重要である。
【0149】
本開示の実施形態は、NNRビットストリーム300に存在し得るNNR開始ユニットヘッダを実装することができる。NNR開始ユニットヘッダの構文の例は、以下の表17に提供される。
【0150】
表17:NNR開始ユニットヘッダ構文
【0151】
【表17】
構文要素general_profile_idcは、NNRビットストリーム300が準拠するプロファイルを示す。ビットストリームは、仕様で指定されている値以外のgeneral_profile_idcの値を含まないようにすることが要求される。
【0152】
[態様6]
パラメータセットと開始ユニットにヘッダがあるというユースケースがない場合があるため、本開示の実施形態は、nnr_model_parameter_set_unit_header()およびnnr_layer_parameter_set_unit_header()を含まない可能性がある。
【0153】
[追加の態様]
本開示の実施形態の追加の態様は、以下に説明される。
【0154】
(A)NNRユニットヘッダにおけるpartial_data_counterの値が0に等しい場合、NNRユニットヘッダにおけるindependently_decodable_flagの値は0に等しくなり、これは、NNRユニットにはトポロジのデータ全体が含まれる場合、そのユニットが独立して復号可能であるべきためである。実施形態によれば、NNRユニットヘッダにおけるindependently_decodable_flagの値は、そのような場合に、デコーダによって0に等しいと決定され得る。
【0155】
NNRユニットの構文の例は、以下の表18に提供される。
【0156】
表18:NNRユニット構文
【0157】
【表18】
NNRユニットサイズの構文の例は、以下の表19に提供される。
【0158】
表19:NNRユニットサイズ構文
【0159】
【表19】
NNRユニットヘッダの構文の例は、以下の表20に提供される。
【0160】
表20:NNRユニットヘッダ構文
【0161】
【表20】
構文要素partial_data_counterは、特定のトポロジ要素のためのデータ全体に対して、このNNRデータユニットのペイロードで搬送される部分的なデータのインデックスを指定する。値0は、部分的な情報がないことを示し(つまり、このNNRユニットにおけるデータは、トポロジ要素に関連付けられている全てのデータであり、かつ完全である)、0よりも大きい値は、部分的な情報のインデックスを示す(つまり、このNNRユニットにおけるデータは、NNRユニットのpartial_data_counterが0に達するまで、付随NNRユニットにおけるデータと連結される必要がある)。このカウンタは、最初のパーティション総数を示すために逆方向にカウントすることができる。
【0162】
構文要素independently_decodable_flagは、この圧縮データユニットが独立して復号可能であるかどうかを指定する。値0は、独立して復号可能なNNRユニットを示す。値1は、このNNRユニットが独立して復号可能ではなく、かつ、そのペイロードが復号可能/解凍可能の成功を達成するために他のNNRユニットと組み合わされるべきであることを示す。partial_data_counterの値が0に等しい場合、independently_decodable_flagの値は0に等しくなることが要求される。
【0163】
(B)NNRユニットが独立して復号可能である場合、partial_data_counterは、nnr_unit_headerにおいて信号で通知され得ず、partial_data_counterの値が、(例えば、デコーダによって)0に等しいと推測され得る。
【0164】
NNRユニットヘッダの構文の例は、以下の表21に提供される。
【0165】
表21:NNRユニットヘッダ構文
【0166】
【表21】
構文要素independently_decodable_flagは、この圧縮データユニットが独立して復号可能であるかどうかを指定する。値0は、独立して復号可能なNNRユニットを示す。値1は、このNNRユニットが独立して復号可能ではなく、かつ、そのペイロードが復号可能/解凍可能の成功を達成するために他のNNRユニットと組み合わされるべきであることを示す。
【0167】
構文要素partial_data_counterは、特定のトポロジ要素のためのデータ全体に対して、このNNRデータユニットのペイロードで搬送される部分的なデータのインデックスを指定する。値0は、部分的な情報がないことを示し(つまり、このNNRユニットにおけるデータは、トポロジ要素に関連付けられている全てのデータであり、かつ完全である)、0よりも大きい値は、部分的な情報のインデックスを示す(つまり、このNNRユニットにおけるデータは、NNRユニットのpartial_data_counterが0に達するまで、付随NNRユニットにおけるデータと連結される必要がある)。このカウンタは、最初のパーティション総数を示すために逆方向にカウントすることができる。存在しない場合、partial_data_counterの値は、(例えばデコーダによって)0に等しいと推測され得る。
【0168】
(C)NNRユニットが独立して復号可能である場合、partial_data_counterの値は0に等しくなり得る。
【0169】
NNRユニットヘッダの構文の例は、以下の表22に提供される。
【0170】
表22:NNRユニットヘッダ構文
【0171】
【表22】
構文要素independently_decodable_flagは、この圧縮データユニットが独立して復号可能であるかどうかを指定する。値0は、独立して復号可能なNNRユニットを示す。値1は、このNNRユニットが独立して復号可能ではなく、かつ、そのペイロードが復号可能/解凍可能の成功を達成するために他のNNRユニットと組み合わされるべきであることを示す。
【0172】
構文要素partial_data_counterは、特定のトポロジ要素のためのデータ全体に対して、このNNRデータユニットのペイロードで搬送される部分的なデータのインデックスを指定する。値0は、部分的な情報がないことを示し(つまり、このNNRユニットにおけるデータは、トポロジ要素に関連付けられている全てのデータであり、かつ完全である)、0よりも大きい値は、部分的な情報のインデックスを示す(つまり、このNNRユニットにおけるデータは、NNRユニットのpartial_data_counterが0に達するまで、付随NNRユニットにおけるデータと連結される必要がある)。このカウンタは、最初のパーティション総数を示すために逆方向にカウントすることができる。independently_decodable_flagが1に等しい場合、partial_data_counterの値は、(例えばデコーダによって)0に等しいと推測され得る。
【0173】
(D)実施形態によれば、independently_decodable_flagのセマンティクスは、下のように変更され得る。
構文要素independently_decodable_flagは、この圧縮データユニットが独立して復号可能であるかどうかを指定する。値0は、独立して復号可能なNNRユニットであり、かつ、部分的な情報がないことを示す(つまり、このNNRユニットにおけるデータは、トポロジ要素に関連付けられている全てのデータであり、かつ完全である)。値1は、このNNRユニットが独立して復号可能ではなく、かつ、そのペイロードが復号可能/解凍可能の成功を達成するために他のNNRユニットと組み合わされるべきであることを示す。
【0174】
(E)実施形態によれば、partial_data_counterのセマンティクスは、以下のように変更され得る。
構文要素partial_data_counterは、特定のトポロジ要素のためのデータ全体に対して、このNNRデータユニットのペイロードで搬送される部分的なデータのインデックスを指定する。値0は、部分的な情報がないことを示し(つまり、このNNRユニットにおけるデータは、トポロジ要素に関連付けられている全てのデータであり、かつ完全である)、また、0に等しいpartial_data_counterを有するNNRユニットは、独立して復号可能である。0よりも大きい値は、部分的な情報のインデックスを示す(つまり、このNNRユニットにおけるデータは、NNRユニットのpartial_data_counterが0に達するまで、付随NNRユニットにおけるデータと連結される必要がある)。このカウンタは、最初のパーティション総数を示すために逆方向にカウントすることができる。independently_decodable_flagが1に等しい場合、partial_data_counterの値は、(例えばデコーダによって)0に等しいと推測され得る。
【0175】
(F)実施形態によれば、nnr_unit_typeがNNR_STRまたはNNR_MPSに等しい場合、independently_decodable_flagの値は、0に等しくなり得る。
【0176】
(G)実施形態によれば、nnr_unit_typeがNNR_STR、NNR_MPS、NNR_LPS、NNR_TPL、NNR_QNT、NNR_NDUまたはNNR_AGGに等しい場合、independently_decodable_flagの値は、0に等しくなり得る。
【0177】
(H)実施形態によれば、nnr_unit_typeがNNR_STRまたはNNR_AGGに等しい場合、partial_data_counterの値は、0に等しくなり得る。
【0178】
(I)実施形態によれば、nnr_unit_typeがNNR_AGGに等しく、かつ、nnr_aggregate_unit_typeがNNR_AGG_SLFに等しい場合、partial_data_counterの値は、0に等しくなり得る。
【0179】
(J)実施形態によれば、nnr_unit_typeがNNR_AGGに等しく、かつ、nnr_aggregate_unit_typeがNNR_AGG_SLFに等しい場合、independently_decodable_flagの値は、0に等しくなり得る。
【0180】
(K)実施形態によれば、lps_independently_decodable_flagは、レイヤパラメータセットにおいて信号で通知され、また、そのセマンティクスは、以下の表23に示すとおりである。
【0181】
表23:NNRレイヤパラメータセット構文
【0182】
【表23】
構文要素lps_independently_decodable_flagは、レイヤパラメータセットを参照するNNRユニットが独立して復号可能であるかどうかを指定する。値0は、独立して復号可能なNNRユニットを示す。値1は、レイヤパラメータセットを参照するNNRユニットが独立して復号可能ではなく、かつ、それらのペイロードが復号可能/解凍可能の成功を達成するために、他のレイヤパラメータセットを参照するNNRユニットと組み合わされるべきであることを示す。
【0183】
(L)実施形態によれば、lps_independently_decodable_flagの値は、NNRユニットヘッダにおけるindependently_decodable_flagの値と同じであり得る。
【0184】
(M)実施形態によれば、independently_decodable_flagは、以下の表24に示すように、予約ビットによって置き換えられる。
【0185】
表24:NNRレイヤパラメータセット構文
【0186】
【表24】
(N)実施形態によれば、構文およびセマンティクスは、以下のように、および表25に示すように、NNRモデルパラメータセットに示されている。
【0187】
表25:NNRモデルパラメータセットユニットヘッダ構文
【0188】
【表25】
0に等しい構文要素mps_independently_decodable_flagは、モデルパラメータセットを参照するNNRユニットが独立して復号可能であり、かつ、完全または部分的なNNモデルがNNRユニットを使用して成功に再構築可能であることを指定する。値1は、モデルパラメータセットを参照するNNRユニットが独立して復号可能ではなく、かつ、それらのペイロードが完全または部分的なNNモデルの構築を成功させるために、他のモデルパラメータセットを参照するNNRユニットと組み合わされるべきであることを示す。
【0189】
(O)実施形態によれば、以下の構文とセマンティクスは、以下のように、および表26に示すように、NNRレイヤパラメータセットに示されている。
【0190】
表26:NNRレイヤパラメータセットユニットヘッダ構文
【0191】
【表26】
0に等しい構文要素lps_independently_decodable_flagは、レイヤパラメータセットを参照するNNRユニットが独立して復号可能であり、かつ、完全または部分的なNNモデルがNNRユニットを使用して成功に再構築可能であることを指定する。値1は、レイヤパラメータセットを参照するNNRユニットが独立して復号可能ではなく、かつ、それらのペイロードが完全または部分的なNNモデルの構築を成功させるために、他のレイヤパラメータセットを参照するNNRユニットと組み合わされるべきであることを示す。
【0192】
(P)実施形態によれば、以下の表27に示される構文構造は、NNRユニットヘッダのために使用され得る。
【0193】
表27:NNRユニットヘッダ
【0194】
【表27】
構文要素nnr_unit_typeは、以下の表28で指定されるように、NNRユニットのタイプを指定する。
【0195】
表28:NNRユニットタイプ
【0196】
【表28】
1に等しい構文要素nnr_unit_header_extension_flagは、構文要素partial_data_counterおよびindependently_decodable_flagがNNRユニットヘッダに存在することを指定する。0に等しい構文要素nnr_unit_header_extension_flagは、構文要素partial_data_counterおよびindependently_decodable_flagがNNRユニットヘッダに存在しないことを指定する。
【0197】
構文要素partial_data_counterは、特定のトポロジ要素のためのデータ全体に対して、このNNRデータユニットのペイロードで搬送される部分的なデータのインデックスを指定する。値0は、部分的な情報がないことを示し(つまり、このNNRユニットにおけるデータは、トポロジ要素に関連付けられている全てのデータであり、かつ完全である)、0よりも大きい値は、部分的な情報のインデックスを示す(つまり、このNNRユニットにおけるデータは、NNRユニットのpartial_data_counterが0に達するまで、付随NNRユニットにおけるデータと連結される必要がある)。このカウンタは、最初のパーティションの総数を示すために逆方向にカウントすることができる。存在しない場合、partial_data_counterの値は、(例えばデコーダによって)0に等しいと推測され得る。partial_data_counterの値は、包括的に、0から127までの範囲であり得る。128個の値は、将来的な保証設計のために予約され得る。
【0198】
構文要素independently_decodable_flagは、この圧縮データユニットが独立して復号可能であるかどうかを指定する。値0は、独立して復号可能なNNRユニットを示す。値1は、このNNRユニットが独立して復号可能ではなく、かつ、そのペイロードが復号可能/解凍可能の成功を達成するために他のNNRユニットと組み合わされるべきであることを示す。存在しない場合、independently_decodable_fagの値は、(例えばデコーダによって)0に等しいと推測され得る。
【0199】
(Q)実施形態によれば、以下の表29に示される構文構造は、NNRユニットヘッダのために使用される。
【0200】
表29:NNRユニットヘッダ構文
【0201】
【表29】
構文要素nnr_unit_typeは、以下の表30で指定されるように、NNRユニットのタイプを指定する。
【0202】
表30:NNRユニットタイプ
【0203】
【表30】
1に等しい構文要素nnr_unit_header_extension_flagは、構文要素partial_data_counterおよびindependently_decodable_flagがNNRユニットヘッダに存在することを指定する。0に等しい構文要素nnr_unit_header_extension_flagは、構文要素partial_data_counterおよびindependently_decodable_flagがNNRユニットヘッダに存在しないことを指定する。
【0204】
構文要素partial_data_counterは、特定のトポロジ要素のためのデータ全体に対して、このNNRデータユニットのペイロードで搬送される部分的なデータのインデックスを指定する。値0は、部分的な情報がないことを示し(つまり、このNNRユニットにおけるデータは、トポロジ要素に関連付けられている全てのデータであり、かつ完全である)、0よりも大きい値は、部分的な情報のインデックスを示す(つまり、このNNRユニットにおけるデータは、NNRユニットのpartial_data_counterが0に達するまで、付随NNRユニットにおけるデータと連結される必要がある)。このカウンタは、最初のパーティション総数を示すために逆方向にカウントすることができる。存在しない場合、partial_data_counterの値は、(例えばデコーダによって)0に等しいと推測され得る。partial_data_counterの値は、包括的に、0から127までの範囲であり得る。
【0205】
構文要素independently_decodable_flagは、この圧縮データユニットが独立して復号可能であるかどうかを指定する。値0は、独立して復号可能なNNRユニットを示す。値1は、このNNRユニットが独立して復号可能ではなく、かつ、そのペイロードが復号可能/解凍可能の成功を達成するために他のNNRユニットと組み合わされるべきであることを示す。存在しない場合、independently_decodable_fagの値は、(例えばデコーダによって)0に等しいと推測され得る。
【0206】
構文要素reserved_bitは、将来的な保証設計のために使用され得る。
【0207】
(R)実施形態によれば、以下の表31に示される構文構造は、NNRユニットヘッダのために使用される。
【0208】
表31:NNRユニットヘッダ構文
【0209】
【表31】
構文要素nnr_unit_typeは、以下の表32で指定されるように、NNRユニットのタイプを指定する。
【0210】
表32:NNRユニットタイプ
【0211】
【表32】
1に等しい構文要素Independent_self_contained_flagは、NNRユニットが独立して復号可能で自己完結型であることを指定する(つまり、このNNRユニットにおけるデータは、トポロジ要素に関連付けられている全てのデータであり、かつ完全である)。Independent_self_contained_flagの値が1に等しい場合、構文要素partial_data_counterおよびindependently_decodable_flagは、NNRユニットヘッダに存在せず、また、partial_data_counterおよびindependently_decodable_flagの値は、(エンコーダなどによって)0に等しいと推測され得る。0に等しいIndependent_self_contained_flagは、構文要素partial_data_counterおよびindependently_decodable_flagがNNRユニットヘッダに存在することを指定する。Independent_self_contained_flagが0に等しい場合、partial_data_counterとindependently_decodable_flagのいずれかは、非ゼロの値を有することが要求される。
【0212】
構文要素partial_data_counterは、特定のトポロジ要素のためのデータ全体に対して、このNNRデータユニットのペイロードで搬送される部分的なデータのインデックスを指定する。値0は、部分的な情報がないことを示し(つまり、このNNRユニットにおけるデータは、トポロジ要素に関連付けられている全てのデータであり、かつ完全である)、0よりも大きい値は、部分的な情報のインデックスを示す(つまり、このNNRユニットにおけるデータは、NNRユニットのpartial_data_counterが0に達するまで、付随NNRユニットにおけるデータと連結される必要がある)。このカウンタは、最初のパーティション総数を示すために逆方向にカウントすることができる。存在しない場合、partial_data_counterの値は、(例えばデコーダによって)0に等しいと推測され得る。partial_data_counterの値は、包括的に、0から127までの範囲である。128個の値は、将来的な保証設計のために予約され得る。
【0213】
構文要素independently_decodable_flagは、この圧縮データユニットが独立して復号可能であるかどうかを指定する。値0は、独立して復号可能なNNRユニットを示す。値1は、このNNRユニットが独立して復号可能ではなく、かつ、そのペイロードが復号可能/解凍可能の成功を達成するために他のNNRユニットと組み合わされるべきであることを示す。存在しない場合、independently_decodable_fagの値は、(例えばデコーダによって)0に等しいと推測され得る。
【0214】
(S)実施形態によれば、以下に説明され、および以下の表33に示される構文とセマンティクスは、NNRモデルパラメータセットに示されている。
【0215】
表33:NNRモデルパラメータセットユニットヘッダ構文
【0216】
【表33】
0に等しい構文要素mps_independent_self_contained_flagは、モデルパラメータセットを参照するNNRユニットが独立して復号可能であり、かつ、完全または部分的なNNモデルがNNRユニットを使用して成功に再構築可能であることを指定する。値1は、モデルパラメータセットを参照するNNRユニットが独立して復号可能ではなく、かつ、それらのペイロードが完全または部分的なNNモデルの構築を成功させるために、他のモデルパラメータセットを参照するNNRユニットと組み合わされるべきであることを示す。
【0217】
(T)実施形態によれば、以下に説明され、および以下の表34に示される構文とセマンティクスは、NNRレイヤパラメータセットに示されている。
【0218】
表34:NNRレイヤパラメータセットユニットヘッダ構文
【0219】
【表34】
0に等しい構文要素lps_independent_self_contained_flagは、レイヤパラメータセットを参照するNNRユニットが独立して復号可能であり、かつ、完全または部分的なNNモデルがNNRユニットを使用して成功に再構築可能であることを指定する。値1は、レイヤパラメータセットを参照するNNRユニットが独立して復号可能ではなく、かつ、それらのペイロードが完全または部分的なNNモデルの構築を成功させるために、他のレイヤパラメータセットを参照するNNRユニットと組み合わされるべきであることを示す。
【0220】
(U)実施形態によれば、以下に説明され、および以下の表35に示される構文とセマンティクスは、NNRモデルパラメータセットに示されている。
【0221】
表35:NNRモデルパラメータセットユニットヘッダ構文
【0222】
【表35】
0に等しい構文要素mps_independently_decodable_flagは、モデルパラメータセットを参照するNNRユニットが独立して復号可能であることを指定する。値1は、モデルパラメータセットを参照するNNRユニットが独立して復号可能ではないことを示す。
【0223】
0に等しい構文要素mps_self_contained_flag equalは、モデルパラメータセットを参照するNNRユニットが、NNRユニットを使用して成功に再構築可能な完全または部分的なNNモデルであることを指定する。値1は、モデルパラメータセットを参照するNNRユニットが、完全または部分的なNNモデルの構築を成功させるために、他のモデルパラメータセットを参照するNNRユニットと組み合わされるべきであることを示す。
【0224】
(V)実施形態によれば、以下に説明され、および以下の表36に示される構文とセマンティクスは、NNRレイヤパラメータセットに示されている。
【0225】
表36:NNRレイヤパラメータセットユニットヘッダ
【0226】
【表36】
0に等しい構文要素lps_independently_decodable_flagは、レイヤパラメータセットを参照するNNRユニットが独立して復号可能であることを指定する。値1は、レイヤパラメータセットを参照するNNRユニットが独立して復号可能ではないことを示す。
【0227】
0に等しい構文要素lps_self_contained_flagは、レイヤパラメータセットを参照するNNRユニットが、NNRユニットを使用して成功に再構築可能な完全または部分的なNNモデルであることを指定する。値1は、レイヤパラメータセットを参照するNNRユニットが、完全または部分的なNNモデルの構築を成功させるために、他のレイヤパラメータセットを参照するNNRユニットと組み合わされるべきであることを示す。
【0228】
図6を参照すると、本開示の実施形態は、コンピューティングシステム400によって実現され得る。コンピューティングシステム400は、NNRビットストリーム300を受信するように構成され得、少なくとも1つのプロセッサと、コンピュータ命令が憶されているメモリとを含み得る。コンピュータ命令は、少なくとも1つのプロセッサによって実行されるとき、少なくとも1つのプロセッサに、本開示の態様を実行させるように構成され得る。
【0229】
例えば、コンピューティングシステム400は、デコーダを実装することができ、コンピュータ命令には、シグナリング/決定コード420、および復号/再構築コード430が含まれ得る。
【0230】
シグナリング/決定コード420は、少なくとも1つのプロセッサに、構文要素を信号で通知させ、および/または様々なNNRユニットの構文要素の値を推測させ、また、構文要素に基づいて、NNRユニット(および対応するニューラルネットワーク)の特性を決定させる。復号/再構築コード430は、少なくとも1つのプロセッサに、NNRビットストリーム300のコード化された要素を復号させ、また、復号に基づいて1つ以上のニューラルネットワークを再構築させるように構成され得る。
【0231】
前述の開示は、例示および説明を提供するが、網羅的であることを意図しない、または開示された正確な形式での実装を制限することを意図しない。上記の開示に鑑みて、修正および変形は可能であるか、または実際の実施から得られる。本開示の実施形態には、上記の態様および/または追加の態様のうちの任意のいずれかが含まれ得る。
【0232】
明らかに、本明細書に記載のシステムおよび/または方法は、異なる形式のハードウェア、ファームウェア、またはハードウェアとソフトウェアの組み合わせで実現され得る。これらのシステムおよび/または方法を実現するために使用される実際の特定化された制御ハードウェアまたはソフトウェアコードは、実装を限定するものではない。したがって、理解すべきものとして、ソフトウェアおよびハードウェアは、本明細書の説明に基づいてシステムおよび/または方法を実現するように設計され得る。
【0233】
特徴の組み合わせが特許請求の範囲に記載され、および/または明細書に記載されたが、これらの組み合わせは、可能な実現の開示を制限することを意図していない。実際には、これらの特徴の多くは、特許請求の範囲に具体的に記載されていない、および/または明細書に記載されていない方法で組み合わせることができる。以下に列挙された各従属請求項は、1つの請求項のみに直接に従属し得るが、可能な実現の開示には、請求項セットにおける他の各請求項と組み合わせた各従属請求項が含まれる。
【0234】
本明細書で使用される要素、行為または命令は、そのようなものとして明示的に記載されない限り、重要または本質的なものであると解釈され得る。また、本明細書で使用される用語「一」および「1」は、1つ以上の項目を含むことを意図しており、「1つ以上」と交換可能に使用され得る。さらに、本明細書で使用される用語「セット」は、1つ以上の項目(例えば、関連項目、非関連項目、関連項目と非関連項目の組み合わせなど)を含むことを意図しており、「1つ以上」と交換可能に使用され得る。1つの項目のみが意図される場合、用語「1つ」または類似の用語が使用される。また、本明細書で使用される用語「有する」、「ある」、「有している」などは、制限のない用語(Open Ended Terms)を意図している。さらに、明示的に記載されない限り、「に基づく」という語句は、「少なくとも部分的には、…に基づく」を意味することを意図している。