(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-07-18
(54)【発明の名称】ディープニューラルネットワークを符号化/復号するためのシステム及び方法
(51)【国際特許分類】
H04N 19/124 20140101AFI20230710BHJP
H04N 19/154 20140101ALI20230710BHJP
H04N 19/70 20140101ALI20230710BHJP
H04N 19/90 20140101ALI20230710BHJP
【FI】
H04N19/124
H04N19/154
H04N19/70
H04N19/90
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022577699
(86)(22)【出願日】2021-06-09
(85)【翻訳文提出日】2023-01-13
(86)【国際出願番号】 EP2021065525
(87)【国際公開番号】W WO2021254856
(87)【国際公開日】2021-12-23
(32)【優先日】2020-06-18
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】521557230
【氏名又は名称】インターデジタル ヴイシー ホールディングス フランス,エスエーエス
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】ハミディ-ラッド、シャハブ
(72)【発明者】
【氏名】ジャイン、スワヤンブー
(72)【発明者】
【氏名】ラカペ、ファビアン
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159MA04
5C159MA05
5C159MA21
5C159MC11
5C159MD02
5C159MD07
5C159ME01
5C159RC12
5C159TA52
5C159TC08
5C159UA02
5C159UA05
5C159UA16
5C159UA33
(57)【要約】
本開示は、入力テンソルのパラメータを量子化することを含む方法に関し、当該量子化することは、少なくとも1つのテンソルと量子化されたバージョンの当該少なくとも1つのテンソルと間で判定された歪み値に従ってそのサイズが取得されるコードブックを使用する。本開示はまた、少なくとも1つの第1のpdf係数に従って境界されるpdfに基づく初期化を使用して、入力テンソルのパラメータを量子化するための方法に関し、当該第1のpdf係数は、結果としてのエントロピに従って、いくつかの候補境界pdf係数の中から選択される。本開示はまた、対応する信号;ビットストリーム、記憶媒体、並びにエンコーダデバイス及び/又はデコーダデバイスに関する。
【選択図】
図6
【特許請求の範囲】
【請求項1】
ビットストリーム中の少なくとも1つのディープニューラルネットワークの層に関連付けられる少なくとも1つのテンソルを符号化することを含む方法であって、
前記少なくとも1つのテンソルを符号化することが、
前記少なくとも1つのテンソルのパラメータを量子化するためのコードブックのサイズを取得することであって、前記サイズが前記少なくとも1つのテンソルと量子化されたバージョンの前記少なくとも1つのテンソルとの間で判定された歪み値に従って取得される、取得することと、
前記取得されたサイズを有するコードブックを使用して、前記パラメータを量子化することと、を含む、方法。
【請求項2】
前記コードブックの前記サイズが、コードブックサイズ範囲全体にわたる二分探索から取得される、請求項1に記載の方法。
【請求項3】
前記量子化することが、少なくとも1つの第1のpdf係数に従って境界されるpdfに基づく初期化を使用する、請求項1及び2に記載の方法。
【請求項4】
前記第1のpdf係数が、いくつかの候補境界pdf係数の各1つからの前記量子化されたパラメータに対して取得されたエントロピに基づいて、前記いくつかの候補境界pdf係数の中から選択される、請求項3に記載の方法。
【請求項5】
前記コードブックのタイプを表す情報を符号化することを更に含む、請求項1~4のいずれか一項に記載の方法。
【請求項6】
ビットストリーム中の少なくとも1つのディープニューラルネットワークの層に関連付けられる少なくとも1つのテンソルを符号化するためのデバイスであって、前記デバイスが、少なくとも1つのプロセッサを備え、前記少なくとも1つのプロセッサが、
-前記少なくとも1つのテンソルのパラメータを量子化するためのコードブックのサイズを取得することであって、前記サイズが、前記少なくとも1つのテンソルと量子化されたバージョンの前記少なくとも1つのテンソルとの間で判定された歪み値に従って取得される、取得することと、
-前記取得されたサイズを有するコードブックを使用して前記パラメータを量子化することと、を行うように構成されている、デバイス。
【請求項7】
前記コードブックの前記サイズがコードブックサイズ範囲全体にわたる二分探索から取得される、請求項6に記載の装置。
【請求項8】
前記量子化することが、少なくとも1つの第1のpdf係数に従って境界されるpdfに基づく初期化を使用する、請求項6及び7に記載の装置。
【請求項9】
前記第1のpdf係数が、いくつかの候補境界pdf係数の各1つからの前記量子化されたパラメータに対して取得されたエントロピに基づいて、前記いくつかの候補境界pdfl係数の中から選択される、請求項8に記載の装置。
【請求項10】
前記コードブックのタイプを表す情報を符号化することを更に含む、請求項6~9のいずれか一項に記載の装置。
【請求項11】
請求項1~5のいずれか一項に記載の方法に従って符号化された前記ディープニューラルネットワークの少なくとも1つの層の少なくとも1つの第1のテンソルを表すデータを含む、ビットストリームを含む、信号。
【請求項12】
前記データが、前記コードブックのタイプを表す情報を含む、請求項11に記載の信号。
【請求項13】
請求項11又は12に記載の信号を含む、コンピュータ可読媒体。
【請求項14】
ビットストリームからの少なくとも1つのディープニューラルネットワークの層に関連付けられる少なくとも1つのテンソルを復号することを含む方法であって、前記少なくとも1つのテンソルを復号することが、
-前記ビットストリームから、コードブックのタイプを表す情報を復号することと、
-前記コードブックを使用して、前記少なくとも1つのテンソルのパラメータを逆量子化することと、を含む、方法。
【請求項15】
ビットストリームからの少なくとも1つのディープニューラルネットワークの層に関連付けられる少なくとも1つのテンソルを復号するように構成された少なくとも1つのプロセッサを備える装置であって、前記少なくとも1つのテンソルを復号することが、
-前記ビットストリームから、コードブックのタイプを表す情報を復号することと、
-前記コードブックを使用して、前記少なくとも1つのテンソルのパラメータを逆量子化することと、を含む、装置。
【請求項16】
1つ以上のプロセッサに、請求項1~5又は14のいずれか一項に記載の方法を行わせるための命令を格納している、コンピュータ可読記憶媒体。
【請求項17】
1つ以上のプロセッサによって実行されるときに、前記1つ以上のプロセッサに、請求項1~5又は14のいずれか一項の方法を行わせる命令を含む、コンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
本開示の1つ以上の実施形態のドメイン技術分野は、データ圧縮及び/又はデータ解凍のような、データ処理技術ドメインに関するものである。例えば、少なくともいくつかの実施形態は、オーディオストリーム及び/又はビデオストリームの少なくとも一部の圧縮及び/又は解凍のような、或いはディープニューラルネットワーク(Deep Neural Network、DNN)の少なくともいくつかのパラメータのような、ディープラーニング技法と結び付いたデータの圧縮及び/又は解凍のような、大容量のデータに伴うデータ圧縮/解凍に関するものである。
【0002】
少なくともいくつかの実施形態は、HEVC(HEVCとは、「ITU-T H.265 Telecommunication standardization sector of ITU (10/2014),series H:audiovisual and multimedia systems,infrastructure of audiovisual services-coding of moving video,High efficiency video coding,Recommendation ITU-T H.265」に記載のH.265及びMPEG-H Part2としても既知である高効率ビデオコーディングのことである)などの開発中のビデオ圧縮システムと比較して、又はVVC(多用途ビデオコーディング、JVET統合ビデオ専門家チームにより進展している新規格)のような展開中のビデオ圧縮システムと比較して、圧縮効率を改善することに関する。
【0003】
高圧縮効率を得るために、画像及びビデオコーディング方式では、通常、空間ベクトル予測及び/又は動きベクトル予測を含む予測、及び変換を採用し、ビデオコンテンツにおける時空間冗長性を活かす。一般に、フレーム内又はフレーム間の相関を活かすのにイントラ予測又はインター予測が使用され、それにより、しばしば予測誤差又は予測残差と呼ばれる原画像と予測画像との差分が、変換され、量子化され、エントロピコーディングされる。ビデオを再構築するために、エントロピコーディング、量子化、変換、及び予測に対応する逆プロセスによって、圧縮データを復号する。
【0004】
少なくともいくつかの実施形態は、国際標準化機構により現在進展しているマルチメディアコンテンツ記述・分析用の近日発表のニューラルネットワーク規格ISO/MPEG7のようないくつかの圧縮規格又はドラフト規格など、ディープニューラルネットワーク(Deep Neural Network、DNN)の圧縮用の既存のシステムと比較して、圧縮効率を改善することに関するものである。
【0005】
大抵、符号化プロセスでは、DNNのパラメータを量子化し、エントロピコーディングし、圧縮データを取得する。データを再構築するために、圧縮データを復号し、復号プロセスは、エントロピ復号及び逆量子化を含む。
【発明の概要】
【0006】
本発明の原理により、少なくとも1つのビットストリーム中のデータを符号化することを含む方法を提案することによりいくつかの既知の圧縮及び/又は解凍方法の少なくとも1つの欠点を解消するのが可能になり、データとは、少なくとも1つのディープニューラルネットワークの少なくとも1つの層又は副層の少なくとも1つのテンソルの1つ以上のパラメータである。層に関連付けられるネットワークパラメータのテンソルは、重み及び/又はバイアスなどの類のネットワークパラメータ(例えば、「バッハ標準化」のテンソルに関しては)を含むことができるということに注目されたい。
【0007】
ある実施形態により、ビットストリーム中の少なくとも1つのディープニューラルネットワークの層に関連付けられる少なくとも1つのテンソルを符号化するための方法を提供する。少なくとも1つのテンソルを符号化することは、当該少なくとも1つのテンソルのパラメータを量子化するためのコードブックのサイズを取得することを含み、当該サイズは、少なくとも1つのテンソルと量子化されたバージョンの当該少なくとも1つのテンソルとの間で判定された歪み値に従って取得され、当該取得されたサイズを有するコードブックを使用して当該パラメータを量子化する。
【0008】
別の実施形態により、ビットストリーム中の少なくとも1つのディープニューラルネットワークの層に関連付けられる少なくとも1つのテンソルを符号化するためのデバイスを提供し、デバイスは、当該少なくとも1つのテンソルのパラメータを量子化するためのコードブックのサイズを取得するように構成された少なくとも1つのプロセッサを備え、当該サイズは、少なくとも1つのテンソルと量子化されたバージョンの当該少なくとも1つのテンソルとの間で判定された歪み値に従って取得され、当該取得されたサイズを有するコードブックを使用して当該パラメータを量子化する。
【0009】
別の実施形態により、ビットストリームからの少なくとも1つのディープニューラルネットワークの層に関連付けられる少なくとも1つのテンソルを復号するための方法を提供し、少なくとも1つのテンソルを復号することは、コードブックのタイプを表す情報をビットストリームから復号し、コードブックを使用して、当該少なくとも1つのテンソルのパラメータを逆量子化することを含む。
【0010】
別の実施形態により、ビットストリームから少なくとも1つのディープニューラルネットワークの層に関連付けられる少なくとも1つのテンソルを復号するための装置を提供し、この装置は、ビットストリームからコードブックのタイプを表す情報を復号し、コードブックを使用して当該この少なくとも1つのテンソルのパラメータを逆量子化するように構成された少なくとも1つのプロセッサを備える。
【0011】
本開示のある態様は、入力テンソルのパラメータを量子化するように適合された少なくとも1つのプロセッサを備えるデバイスに関し、当該量子化することは、少なくとも1つの第1のpdf係数に従って境界されるpdfに基づく初期化を使用して、当該第1のpdf係数は、結果としてのエントロピに従って、いくつかの候補境界pdf係数の中から選択される。
【0012】
本開示のある態様は、入力テンソルのパラメータを量子化することを含む方法に関し、当該量子化することは、少なくとも1つの第1のpdf係数に従って境界されるpdfに基づく初期化を使用して、当該第1のpdf係数は、結果としてのエントロピに従って、いくつかの候補境界pdf係数の中から選択される。
【0013】
本開示のいくつかの実施形態により、量子化することは、コードブックに基づく量子化を使用し、当該コードブックサイズが、当該候補コードブックサイズを使用して、当該入力テンソルから取得された量子化テンソルと当該入力テンソルとの間の誤差に従って、いくつかの候補コードブックサイズから取得される。
【0014】
別の態様により、装置を提供する。装置は、プロセッサを備える。少なくとも1つのビットストリーム中の少なくとも1つのディープニューラルネットワークの少なくとも1つの層の少なくとも1つのテンソルを符号化し、かつ/又はこれまで述べた方法のうちのいずれかを実行することにより、少なくとも1つのディープニューラルネットワークの少なくとも1つの層の少なくとも1つのテンソルを表すビットストリームを復号するようにプロセッサを構成することができる。
【0015】
少なくとも1つの実施形態の別の汎用態様により、復号する実施形態のいずれかによる装置と、(i)入力データを含むデータを受信するように構成されたアンテナ、(ii)入力データを含む周波帯域に受信信号を限るように構成された帯域リミッタ、又は(iii)ビデオブロックを表す出力を表示するように構成されたディスプレイのうちの少なくとも1つと、を備えるデバイスを提供する。
【0016】
少なくとも1つの実施形態のまた別の汎用態様により、記載される復号する実施形態又は変形形態のうちのいずれかに従って生成されるデータコンテンツを含む非一時的コンピュータ可読媒体を提供する。
【0017】
少なくとも1つの実施形態の更に別の汎用態様により、記載される復号する実施形態又は変形形態のうちのいずれかに従って生成される、少なくとも1つのディープニューラルネットワークの少なくとも1つの層又は副層の少なくとも1つのテンソルを表すデータを含む信号を提供する。
【0018】
少なくとも1つの実施形態の別の汎用態様によれば、記載される復号する実施形態又は変形形態のうちのいずれかに従って生成されるデータコンテンツを含むようにビットストリームをフォーマットする。
【0019】
少なくとも1つの実施形態の別の汎用形態によれば、コンピュータによって実行されるとき、記載される復号する実施形態又は変形形態のうちのいずれかをコンピュータに行わせる命令を含む、コンピュータプログラム製品を提供する。
【0020】
少なくとも1つの実施形態の別の汎用態様により、その実施形態のいずれかにおける本開示の方法のうちの少なくとも1つを実行するようにコンピュータによって実行可能な命令のプログラムを有形に具体化する、コンピュータによって読み取り可能な非一時的プログラム記憶デバイスを提供する。
【0021】
少なくとも1つの実施形態の別の汎用態様により、コンピュータにより実行されると、それらの実施形態のうちのいずれかにおける本開示の方法のうちの少なくとも1つをコンピュータに行わせる命令を含む、コンピュータ可読記憶媒体を提供する。
【0022】
明示的には記載されていないが、それらの実施形態のうちのいずれかにおける本開示の方法を行うように本開示のデバイスを適合させることができる。
【0023】
明示的には記載されていないが、方法又は対応する信号、デバイス、及びコンピュータ可読記憶媒体に関わる本実施形態を、どのような組み合わせでも下位組み合わせでも採用することができる。
【図面の簡単な説明】
【0024】
【
図3】記載される実施形態が実装され得る典型的なプロセッサ装置を示す。
【
図4】本開示の符号化方法の少なくともいくつかの実施形態を使用したDNN符号化号式を示す。
【
図5】本開示の復号方法の少なくともいくつかの実施形態を用いたDNN復号方式を示す。
【
図6】ある実施形態によるDNN層のテンソルのパラメータを量子化するための方法の一例を示す。
【
図7】別の実施形態によるDNN層のテンソルのパラメータを量子化するための方法の一例を示す。
【
図8】ある実施形態によるDNN層のテンソルのパラメータを符号化する方法の一例を示す。
【
図9】ある実施形態によるDNNを復号する方法の一例を示す。
【
図10】ある実施形態に従って生成されるディープニューラルネットワークの少なくとも1つの層のテンソルを表すデータを含むビットストリームの一部の一例を示す。
【0025】
図面が実施形態例を示すものであり、本開示の実施形態が図示の実施形態に限定されないということに留意されたい。
【発明を実施するための形態】
【0026】
多くの技術分野では、大容量のデータのコンピュータ手段による処理を伴うことがある。このような処理には、例えばこのようなデータの少なくとも一部の格納又は変換のためにデータ圧縮及び/又はデータ解凍を伴うことがある。大量のデータを含むストリームの圧縮及び/又は解凍の例は、ビデオ処理技術分野で又はディープラーニング技法を伴う技術分野で確認することができる。
【0027】
限定ではなく例示となるものを示す目的で、ディープニューラルネットワーク(DNN)と結び付けて本開示の実施形態について詳しく述べる。但し、明らかなのは、本開示が、ビデオ処理技術分野におけるような、他の大量のデータの圧縮/解凍にも適用できる、ということである。例えば、少なくとも1つの画像からディープラーニングアルゴリズムにより取得されたテンソルの圧縮/解凍に本開示を適用することができる。
【0028】
ディープニューラルネットワーク(DNN)は、マルチメディア処理、コンピュータビジョン、音声認識、自然言語処理などの多様な領域における技術パフォーマンス状態を呈している。このパフォーマンスはどう見ても、DNNがしばしば数百万、ときには数十憶にも上る大量のパラメータを持つ傾向にあることから、膨大な計算コストを費やす可能性がある。
【0029】
これにより、例えば、法外に高い推論複雑性につながる可能性がある。簡単に言えば、推論とは、例えばその分類の観点からは、入力データを処理するように訓練された時点のDNNの展開である。推論複雑性は、推論対象の入力データに訓練済みDNNを適用する計算コストと定義することができる。
【0030】
したがって、この高い推論複雑性は、ハードウェア及び/又はソフトウェアリソースが制限された電子デバイスを伴う環境において、例えば、バッテリサイズ、制限された計算能力、及びメモリ容量などのリソース制限があるモバイルデバイス又は組み込みデバイスを伴う環境においてDNNを使用する際の重要な課題であり得る。
【0031】
ディープニューラルネットワークは、いくつかの層で構成されている。層は、例えばDNNの訓練時に取得することができるパラメータ集合に関連付けられる。これらのパラメータ(重み及び/又はバイアスのような)は、多次元配列として格納される。以下では、簡単にするために、「行列」という用語は、パラメータ集合(例えば、所与の層のテンソルのパラメータ)を示すのに使用されることがある。但し、本開示の方法のいくつかの実施形態は、通常、4Dテンソルのパラメータを含む2D畳み込み層などの2次元を超える次元のテンソルのパラメータにも適用することができるということを理解されたい。DNNの膨大なパラメータでは、分散環境におけるDNN(又はDNNを含むソリューション)の展開に広い帯域を必要とする場合がある。
【0032】
本開示の少なくともいくつかの実施形態は、少なくとも1つのDNN(例えば、事前訓練済みDNN)の少なくともいくつかのパラメータの圧縮及び/又は解凍(復号)に当てはまる。確かに、圧縮により、少なくとも1つのDNNの送信及び/又は格納を容易にすることができる。より正確には、本開示の少なくともいくつかの実施形態は、少なくとも1つのディープニューラルネットワークの少なくとも1つの層に関連付けられる少なくとも1つのテンソルのパラメータの圧縮に当てはまる。ネットワークパラメータは、例えば、一度に圧縮された1つのテンソルとすることができる。
【0033】
本開示の実施形態によっては、層(又は副層)は、異なるタイプのものとすることができる。例えば、いくつかの実施形態では、少なくとも1つの層の全てが畳み込み層、若しくは完全コネクタ層であり得るか、又は少なくとも1つの層を少なくとも1つの畳み込み層及び/又は少なくとも1つの完全コネクタ層を備えることができる。
【0034】
図4及び
図5には、本開示の少なくともいくつかの実施形態で使用することができる少なくとも1つのDNNの少なくとも1つのテンソルのパラメータを符号化/復号する際の一般的プロセスをそれぞれ高水準で示す。
【0035】
図4の圧縮方法400の例示的な実施形態では、方法400は、圧縮されるテンソルのパラメータを取得する410(又は言い換えると、得る)ことを含むことができる。取得することは、例えば、ストレージユニットから少なくとも1つのテンソルのパラメータを取り出すことによって、又は通信インターフェース経由でデータソースからパラメータを受信することによって、行うことができる。
【0036】
図4によって示されるように、ニューラルネットワークの少なくともいくつかのパラメータの圧縮を行うことには、
ニューラルネットワークのパラメータ(重み及びバイアスのような)を量子化すること430、
すなわち、量子化された情報のロスレスエントロピコーディング440を含むことができる。
【0037】
このようなプロセスは、より少ないビット数でパラメータを表すことを可能にする。
【0038】
いくつかの実施形態では、圧縮400は、量子化430に先立ち、ニューラルネットワークに特有の冗長性を活かすことによって、ニューラルネットワークのパラメータ数を低減する420ステップを更に含むことができる。このため、低減すること420により、層に関連付けられるテンソルの次元と比較して、低減された次元の少なくとも1つのテンソルと、低減するステップへの入力と、を提供する。例えば、DNNの少なくとも1つの層のテンソルのパラメータは、分解するか、又は低減すること420において疎らにすることができる。
【0039】
通常、浮動小数点値を備える結果としてのテンソルを量子化し、エントロピコーディングし、受信器に送信される最終ビットストリームにする。
【0040】
この低減すること420は、任意選択的であり、そのため、いくつかの実施形態では省略することができる。
【0041】
テンソルの量子化は、入力テンソルよりも少ないビット数で済む整数のような値でテンソルの値を近似させることを伴うことができる(例えば、浮動小数点値)。
【0042】
DNN圧縮ソリューションに応じて、異なる種類の量子化を行うことができる。例えば、一様量子化を使用することによって、又はいくつかのDNN圧縮ソリューションに見られるように、とりわけ、これ以降より簡単にMPEG NNRと示されるマルチメディアコンテンツ記述・分析対象のニューラルネットワークに関するいくつかの来る規格ISO/MPEG7のようないくつかの圧縮規格に見られるように、コードブックに基づく量子化のような非一様量子化を使用することによって、量子化を行うことができる。
【0043】
一様量子化では、浮動小数点「刻み幅」を規定することができ、テンソルにおける全ての浮動小数点値を刻み幅の倍数として表すことができる。テンソルの近似値は、整数値に「刻み幅」を乗算するだけで、復号器において再構築することができる。
【0044】
コードブックとは、量子化後に層のパラメータが持つことのできる値集合(整数値又は浮動小数点値のような)である。指数は、量子化によって元のテンソルのパラメータに割り当てられたコードブック値から導出することができる。元のテンソルの近似値を再構築するために、復号デバイスは、インデックスを使用して、コードブックから対応する浮動小数点値をルックアップする。コードブックに基づく量子化については、これ以降、より招待に考察される。
【0045】
図4によって示されるように、量子化へのパラメータ入力は、小数点型であり得るが、量子化の出力は、整数型の指数の1つ以上のテンソルを含むことができる。任意選択的に、量子化は、指数が関わるコードブックを出力することもできる。確かに、いくつかの実施形態では、例えばコードブックが量子化によって予め固定される実施形態では、量子化の出力においてコードブックを省略することができる。
【0046】
図4によれば、量子化430の出力のうちの少なくともいくつかは、ロスレスエントロピコーディング440を行う際に入力として使用される。エントロピコーディングの際の情報入力(量子化されたテンソルでは、コードブック及び/又は整数型のテンソルに関する情報のような)は、いくつかの実施形態では、ヘッダ情報と、指数を含むペイロードと、に分けられ得る。
【0047】
それ以外の要素(元のテンソルの形すなわちシンボルカウントのような)もエントロピコ-ディング440に入力され得る。
【0048】
符号化方法400によっていくつかの層を符号化することができる場合、層に関連付けられるパラメータを符号化した後、符号化されるべき最後の層のパラメータの符号化の終了(450)まで、DNNに対して層ごとに方法を繰り返すことができる。
【0049】
図5には、すでに述べた符号化方法400によって取得されたビットストリームを復号するのに使用され得る復号方法500を表す。デコーダにおいて、
図5によって示されるように、符号化方法500は、いくつかの逆演算を含むことができる(エンコーダ側の演算と比較して)。例えば、復号方法500は、パラメータの量子化された形式を引き出す入力ビンの解析/エントロピ復号510を含むことができる。次に、逆量子化520を適用して、パラメータの最終値を導出することができる。エンコーダにおけるテンソルの行列分解/スパース化は、通常、デコーダにおける逆プロセスがなくても済む。例えば、パラメータ低減段階(低減420)においてゼロに設定されたパラメータは、デコーダにおける逆量子化の後にもゼロのままであり得る。
【0050】
図5によって示されるように、DNNの層に対応するビットストリームを解析し、復号する510出力は、メタデータ及び量子化されたパラメータで構成することができる。例えば、エンコーダ側でコードブックに基づく量子が行われるとき、出力は、コードブック及び対応する指数を含む。例えば、整数域[0...K-1]に属する値を持つことができる、指数のクラスタセンタ及びテンソルとして示すK値のコードブックを導出する、K平均法により、指数のコードブックもテンソルもコンピュータで求めることができる。
【0051】
復号方法は、復号済み情報(指数及びコードブックのような)を使用して逆量子化520を行うことを更に含むことができる。
【0052】
いくつかの層が復号方法500によって復号され得るとき、最後の層のパラメータが符号化される(550)まで繰り返し方法500を行うことができる。
【0053】
図4によって示されるように、量子化430によって出力された要素のうちの少なくともいくつかは、エントロピ符号化440を行う際に入力として使用され、量子化が実施される方法は、エントロピ符号化が行われる方法に準拠すべきであり、逆もまた同様である。これは、例えば、量子化が一様量子化であろうと、コードブックに基づく量子化(近日発表の規格MPEG-NNRのようないくつかの圧縮ソリューションに使用される量子化としての)であろうと当てはまるはずである。
【0054】
しかしながら、これは、必ずしもそうとは限らない。例えば、コードブックに基づく量子化にいくつかの欠点がある可能性がある。例えば、コードブック量子化は、多くの場合、より小さいテンソルよりも、より大きいテンソルでより効率的であり得る。この理由の1つは、テンソルが小さい場合、コードブックのオーバーヘッドがテンソルのサイズと比較して、重要になり得る、と言うことが挙げられる。
【0055】
本開示の少なくともいくつかの実施形態は、この問題に対処する助けとなる。
【0056】
より正確には、本開示の第1の態様により、少なくともいくつかの実施形態は、より小さなテンソルには一様量子化を使用し、より大きなテンソルにはコードブックを使用することを提案する。
【0057】
本開示ではまた、いくつかの類の量子化に使用されるように適合された例示的なフォーマット(これ以降「統合フォーマット」とも呼ばれる)、とりわけ、コードブックも一様量子化も対象とするフォーマットを提案する。
【0058】
エントロピコーディングとは、他のデータシンボルよりも起こる可能性が高いデータシンボルがある場合、いかなるデータも圧縮することができるという事実に基づき上手く行くロスレスデータ圧縮である。エントロピコーディング方法の例には、ハフマン符号化及び算術符号化が挙げられる。
【0059】
量子化された情報のエントロピは、算術符号化の効率に直に影響を及ぼす。量子化された情報が高いエントロピ(例えば、高いランダム性)を有する場合、算術符号化アルゴリズムでは、データを効率的に圧縮することができない。例えば、シンボルが同じ頻度(高いランダム性、高いエントロピ)でデータに現れる場合、圧縮は効率的ではない。しかし、他のシンボルよりも頻繁に現れるシンボルがある場合、圧縮は、より頻繁なシンボルに対してより少ないビットを使用することによってより効率的になる。
【0060】
本開示の第2の態様により、少なくともいくつかの実施形態は、量子化された情報のエントロピを最小限に抑えることにより、エントロピコーディング時に行われる算術符号化の効率を改善する(例えば、条件付き算術符号化及び/又は適応算術符号化)のを促進する方法を提案する。
【0061】
量子化された情報は、少なくとも1つの第1の平均二乗誤差(Mean Square Error、MSE)値(歪みを制御する)に基づいて、例えば、量子化された情報のエントロピを最小限に抑える(又は少なくとも低下)しようとしながら平均二乗誤差値を最小限に抑えることによって(例えば、K平均法アルゴリズムのpdf境界初期化を使用することによって)、最適化(又は少なくとも改善)され得る。
【0062】
本開示は、いくつかの態様に関するものである。上で紹介した第1の態様及び第2の態様のようないつくかの態様は、同じ実施形態で及び又は別々に実施され得る(いくつかの実施形態は、両方の態様を実施するが、いくつかの実施形態は、態様のうちの1つのみを実施する)。例えば、いくつかの実施形態では、MSEに従ってpdf係数を最適化せずに、シンボルカウント対象の二分探索を行うことができる。しかしながら、シンボルカウントのための二分探索とMSEに従ってpdfを最適化することとを組み合わせる実施形態は、多くの場合、量子化が量子化されたテンソルと元のテンソルとの誤差(MSE)を最小限に抑えようとするだけのときよりも良好なレート/歪み結果を取得する助けとなり得る。また、本開示のいくつかの実施形態では、本明細書に記載のような量子化、例えば、コードブック量子化(第2の態様と結び付くような)並びに条件付き符号化及び/又は適応算術符号化が組み合わされ得る。
【0063】
本明細書で詳しく述べる本開示の方法の実施形態が多くの圧縮ソリューションにおいて実施され得、特定の規格に限定されるものではなく、本開示のうちの少なくともいくつかでさえ、ISO/MPEG7により進展するいくつかのドラフト規格のようないくつかの圧縮規格の背景に当てはめることもできるということに注目されたい。
【0064】
「最良」シンボルカウントの二分探索
エントロピコーディング時に現れる可能性のある全シンボルの個数を全体として示すシンボルカウントという用語は、コードブック量子化の場合にはコードブックサイズのことである。
【0065】
いくつかの圧縮フレームワークによっては、量子化段階に入力されるパラメータには、コードブックの各シンボルの表現用のビット数を示す「qBitt」値を時折含むめることができ、したがって、コードブックサイズは、2qBitに等しい。
【0066】
但し、算術符号化(又は条件付き算術符号化及び/又は適応算術符号化)が量子化の後に使用される実施形態では、コードブックサイズが2の累乗でなくとも済む。本開示の少なくともいくつかの実施形態によれば、コードブックサイズ(必ずしも2の累乗ではない)は、第1の(指定の)精度で取得(又は判定)することができる。
【0067】
より正確には、本開示のいくつかの実施形態によれば、「qBit」値を指定する代わりに、元のテンソルと量子化されたテンソルとの間の第1の歪み値、例えば、所望の最大平均二乗誤差(MSE)値(以下、MaxMSEおと示す)のような所望の最大歪み値をエンコーダにおいて指定することができる。それにより、例えば二分探索を使用することによって、この第1のMSE値に従ってコードブックサイズを取得することができる。
【0068】
本開示のいくつかの実施形態では、コードブックサイズ範囲、例えばコードブックサイズの4~4096の範囲(「qBits」2~12に相当)全体にわたって二分探索を行うことができる。
【0069】
明らかに、実施形態に応じて、範囲の最小値及び最大値は、「qBit」の最小値及び最大値のように、実施形態に応じて変わることがあり、数値(例えば、コードブックサイズの場合で4又は4096)は、例示的な値にすぎない。例えば、いくつかの実施形態では、2~20のqBits値(また対応するコードブックサイズ)を使用することができる。
【0070】
実施形態に応じて、単調に増加又は減少する値に二分探索を適用することができる。実際、シンボルカウント(又はコードブックサイズ)が増加すると、MSEは単調に減少する。したがって、二分探索を使用して、所与のMSE値(maxMSE)に対して最良の(最小の)シンボルカウントを取得することができる。
【0071】
図6には、ある実施形態による、DNN層のテンソルのパラメータを量子化するための方法600の一例を示す。601において、DNNの少なくとも1つのテンソルのパラメータを量子化するためのコードブックのサイズが取得される。上に記載されるように、コードブックのサイズは、少なくとも1つのテンソルと量子化されたバージョンの当該少なくとも1つのテンソルとの間で判定された歪み値に従って取得される。変形形態では、コードブックのサイズは、コードブックサイズ範囲全体にわたって二分探索を使用して取得される。602において、テンソルのパラメータが、601において取得されたサイズを有するコードブックを使用して量子化される。
図6に絡めて説明する実施形態は、
図4に絡めて説明する、DNNを符号化するための方法において実装され得る。
【0072】
pdfに基づく初期化を用いたエントロピ量子化の低下
いくつかの量子化ソリューションは、K平均法クラスタのpdfに基づく初期化のようなpdfに基づく初期化に基づくことができる。例えば、pdf関数に境界を使用すると、初期K平均法クラスタ(より正確には、K平均法初期化に使用されるK平均法クラスタの中心の値)が互いにどのように一様に離間されるかを制御する助けとなることができる。初期化が完全にpdfに基づく場合、より多くの初期クラスタが、より頻度が高いシンボルに割り当てられる。これは、量子化の精度を改善する(すなわち、歪みを低減する)のを助けることができる一方、クラスタ母集団(すなわち、各クラスタにおけるシンボル数)を互いに近づける可能性もあり、これは、最終的にエントロピを損ない、したがって、ビットストリームのサイズを増加させる(すなわち、レート歪みの面から、MSE及びネットワーク推論誤り率を歪みとして、また圧縮モデルのサイズをレートとして考えると、レートを増加させる)。したがって、一定時間量でモデルを送信したい場合、サイズはビットレートに比例することになる。
【0073】
本開示の少なくともいくつかの実施形態によれば、PDFに基づく初期化が量子化(例えば、K平均法量子化)にどのように適用されるかを示す「pdf係数」が定義される。本開示の実施形態に応じて、pdf係数のフォーマットがばらつくことがある。
【0074】
例えば、いくつかの実施形態では、「pdf係数」が、0.0~1.0の範囲の数であることがある。したがって、このような実施形態では、「pdf係数」は、PDFに基づく初期化をどれほど適用したいかを表すものである。pdf係数の値が「0」である場合、PDFに基づく初期化を全く使用したくないことを意味する。この場合、K平均法アルゴリズムは一様に初期化される。pdf係数の値が1.0であることは、その効果が最大であるPDF特徴を使用したいことを意味する。(例えば、以下の式では、下限は0となり、上限は平均値の2倍となる)。
【0075】
いくつかの実施形態では、K平均法の初期化に使用される例示的な境界PDF関数は、以下のように定義することができる。
BoundedPDF=Clip(PDF、LowerBound、UpperBound)
ここで、
LowerBound=(1.0-pdfFactor)*Avg(PDF)
UpperBound=(1.0+pdfFactor)*Avg(PDF)
ここで、PDFは確率密度関数であり、これは、指定の値をとる確率変数の尤度を与えることができる。
【0076】
上で説明されるように、本開示の少なくともいくつかの実施形態によれば、量子化アルゴリズムへの入力のうちの1つは、第1の歪み値(所望の最大MSE値MaxMSEのような)とすることができる。量子化アルゴリズムでは、例えば、エンコーダ側で二分検索アルゴリズムを使用して、歪み(又は誤差)を指定の最大値未満に保ちながらテンソルを量子化するのに必要とされるシンボル最小数(すなわちコードブックサイズ)を見付けることができる。(MSE<maxMSE)
【0077】
本開示の少なくともいくつかの実施形態では、指定のシンボルカウント(又はコードブックサイズ)で量子化する間に、量子化された情報のエントロピを改善するようにpdf係数を変化させることができる。例えば、pdf係数の値が、第1のpdf係数値と第2のpdf値との間に含まれる範囲において定義され得る場合、一定刻み及び/又は可変刻みで、第1の値から第2の値にpdf係数の値を変化させることができ、pdf係数の各値に対して、最低エントロピの場合に対応するpdf係数を選択するように、量子化された情報のエントロピをコンピュータで求めることができる。
【0078】
第1の例によれば、pdf係数の値を、最小pdf係数値~最大pdf係数値(例えば、0~1)の範囲で漸増的(例えば、0.1刻み)に変化させ、pdf係数の各値に対して量子化された情報のエントロピを計算することができる。第2の例によれば、最大pdf係数値~最小pdf係数値(例えば、1~0)の範囲において、0.1刻みを用いてpdf係数を漸減的に変化させ、各pdf係数に対して量子化された情報のエントロピを計算することができる。それにより、第1の例及び/又は第2の例で最低エントロピに対応するpdf係数を決める。
【0079】
本開示の実施形態の少なくともいくつかにおいて、2つの入れ子型ループを行うことができ、第1のループは、MSE(maxMSE値が与えられた場合に最良のシンボルカウントを見付ける二分探索のような)に対して最適化を促し、第2のループは、エントロピに対して最適化を促す(最低エントロピをもたらすpdf係数の調査)。
【0080】
本開示の実施形態の少なくともいくつかでは、MSEを最適化するのを促す第1のループを実施することができるが、エントロピを最適化するのを促す第2のループを実施することはできず、又はその逆もある。
【0081】
例えば、MSEに対するコードブックサイズの最適化は、境界pdf量子化以外のコードブック量子化初期化方法が使用される実施形態において行うことができ、エントロピを下げるpdf係数を使用する境界pdf量子化は、上で説明されるように、入力qビットから判定されるコードブックサイズで行うことができる。
【0082】
図7には、上記の実施形態による、DNN層のテンソルのパラメータを量子化するための方法700の一例を示す。701において、上に記載されるように、pdf係数が、いくつかの候補境界pdf係数の各1つからの量子化されたパラメータに対して取得されたエントロピに基づいて、いくつかの候補境界pdf係数の中から選択される。702において、テンソルのパラメータは、選択されたpdf係数に従って境界されるpdfに基づく初期化を使用して量子化される。
図7との絡みで説明する実施形態は、
図4との絡みで説明した、DNNを符号化するための方法において実施され得る。
【0083】
ある実施形態では、上に示されるように、
図6、
図7にそれぞれ示した方法を組み合わせることができる。
【0084】
統合コードブック情報
本開示の実施形態のうちの少なくともいくつかではまた、いくつかの種の量子化に使用されるように適合され、とりわけ、コードブック量子化も一様量子化も対象とすることができる、例示的なコードブックフォーマット(「統合コードブック情報」)を提案する。
【0085】
本開示の少なくともいくつかの実施形態では、整数配列(以下、コードブック情報とする)に統合コードブック情報を対応させることができる。
【0086】
統合コードブック情報は、コードブックのタイプを表す第1の情報を含むことができる。例えば、統合コードブック情報が整数配列である例示的なフォーマットでは、配列における第1の整数により、コードブックのタイプを指定することができる。コードブックのタイプの例を以下に挙げる。
【0087】
統合コードブック情報におけるいくつかの成分は、コードブックタイプにより決めることができる。例えば、上記の例示的なフォーマットでは、統合コードブック情報において第1の整数に続く成分は、コードブックタイプにより決めることができる。
【0088】
いくつかのコードブックタイプ(以下のタイプ「1」及び「2」のような)では、コードブック情報がテンソルを再構築するのに必要とされる全ての情報を含むので、実際の量子化されたテンソルをビットストリームにおいて省略することができる(すなわち、ビットストリームにおいて符号化される指数はない)。
【0089】
コードブックタイプ及び関連する統合コードブック情報の例を以下に示す。当然ながら、タイプの表記及び/又は番号付けは、例示的なものにすぎず、本開示を限定するものとみなすことはできない。
【0090】
コードブックタイプ1:テンソル成分の整数値は必ず同じである。
これは、バイアステンソルにおいて時々起こる稀なケースである(例えば、MPEG-NNRにおいて研究された画像分類ニューラルネットワーク「ResNet50」のいくつかの畳み込み層に見られるように)。
コードブック情報:[1、intVal]
ここで、intValとは、テンソルの全ての成分に対する整数値である。
【0091】
コードブックタイプ2:テンソル成分の浮動小数点値は必ずほぼ同じである。
これは、テンソルの一様量子化が行われた場合、結果として得られる全ての整数値が同じになることを意味する。
これは、バイアステンソル(例えば、「ResNet50」)において時々起こる稀なケースである。
コードブック情報:[2、rangeInt、symCount、offset]
テンソルの成分に使用される浮動小数点値floatValは、以下のように計算することができる。
step=float(rangeInt)/(symCount-1)
floatVal=offset*step
「symCount」は、量子化アルゴリズム(maxMSEに基づく二分探索)によって取得される量子化の際のシンボルカウントである。「rangeInt」及び「offset」の値は、例えば算術関数ceil及びfloorを使用して、元のテンソルから以下のように計算される。
rangeInt=ceil(max(tensor)-floor(min(tensor))
step=float(rangeInt)/(symCount-1)
offset=round(min(tensor)/step
【0092】
Codebook Type3:テンソルの一様量子化。
Codebook Info:[3、rangeIntrangelnt、symCount、offset]
量子化されたテンソルにおける各整数成分「q」に対して、再構築されたテンソルにおける対応する浮動小数点成分「r」は、以下のように計算することができる。
step=float(rangeInt)/(symCount-1)
r=(q+offset)*step
ここで、rangeInt、symCount、offsetは、上と同様の意味を有する。
【0093】
Codebook Type0:コードブック量子化。
Codebook Info:[0、cbRangeInt、cbSymCount、cbOffset、cbInt0、cbInt1、...、cbIntN-1]
この場合、配列「Codebook info」のcbInt0~cbIntN-1の成分は、整数値に量子化されたコードブックのN個の成分である。まず、例えばデコーダ側で、浮動小数点コードブックを再構築し、それによりそれを使用してテンソル成分を再構築する(すなわち、ルックアップする)。rcbFloatiが、コードブック情報において整数cbIntiに対応する浮動小数点の再構築されたコードブック成分であると仮定すると、コードブックを以下のように再構築することができる。
cbStep=float(cbRangelnt)/(cbSymCount-1)
rcbFloati=(cbInti+Offset)*cbStep
recCodebook=[rcbFlat0、rcbFloat1、...、rcbFloatN-1]
ここで、recCodebookは、コードブック情報から再構築されたコードブックを表す。
量子化されたテンソルにおける(すなわち、「指数」における)各整数成分「q」に対して、再構築されたテンソルにおける対応する浮動小数点成分「r」は、以下の通りである。
r=recCodebook[q]
符号化側では、K平均法量子化後の元のコードブックは以下の通りである。
floatCodebook=[cbFloat0、cbFloat1、...、cbFloatN-1]
「cbRangeInt」、「cbSymCount」、及び「cbOffset」の値は、以下の通り、テンソルのコードブック量子化後に設定することができる。
cbRangeInt=ceil(max(floatCodebook))-floor(min(floatCodebook))
cbSymCount=max(MinCbSymCount,symCount2)
cbStep=float(cbRangeInt)/(cbSymCount-1)
cbOffset=round(min(floatCodebook)/step)
cbInti=round(cbFloati/cbStep)-cbOffset
ここで、cblntiは、元の浮動小数点コードブックcbFloatiにおける第iの成分に対応する量子化された整数値である。
ここで、MinCbSymCountは、コードブックサイズの最大値を表し、これは、実施形態に応じてばらつくことがあり、220又は212(=4096)に等しい。
【0094】
非限定的な例として、いくつかの実施形態は、非標準化技術に適用することができるが、いくつかの実施形態は、これ以降、より簡単にMPEG NNRと示す、マルチメディアコンテンツ記述・分析に対するニューラルネットワーク圧縮表現に関わる、来る規格ISO/MPEG7のような、DNN圧縮/解凍に対する規格の面において使用することができる。
【0095】
本開示のいくつかの実施形態は、エンコーダとデコーダとの間でシグナリング情報を送信/受信することを含むことができる。このシグナリング情報は、例示的な、非限定的なシンタックスに結び付けて本開示において提示する。この例示的なシンタックスは、説明の便宜上、例示的なMPEG NNRドラフト規格(N19225-Working Draft4 of Compression of neural networks for multimedia content description and analysis>>。国際標準化機構ISO/IEC JTC1/SC29/WG11、4月、2020において使用されるシンタックスに基づき、この例示的なMPEG NRRシンタックスとの違いがシンタックス表に下線が引いてある。
【0096】
以下のシンタックスは、本開示を限定しない単なる例示的なシンタックスである。例えば、シンタックス要素に使用されるビット数は、例示的な実施形態である。理解を容易にするために、例示的なシンタックスでは、本開示の実施形態による以下の識別子及び節には、MPEG-NNRの現在の例示的なワーキングドラフトとの整合が保たれているセクション及び表の番号が付いている。
【0097】
本明細書で詳しく述べる例示的なシンタックスによれば、ビットストリームを1つのテンソルを表す単位に分けることができる。各単位のヘッダ、すなわち、nnr_compressed_data_unit_headerに含まれるパラメータ。
【0098】
以下に示されるように、float32値として保存されるcodebook_sizeコードブック成分のパーシングを指定するMPEG NRR草案規格の現在のバージョンに結び付けて例示的なシンタックスが詳述される。
【0099】
【0100】
本開示の少なくともいくつかの実施形態によれば、上で導入された例示的なシンタックスを使用して、本原理により提案したコードブック機構(又はフォーマット)に対応するように適合されるように、nnr_compressed_data_unit_header(){の定義を改めることを提案する。新しい部分に下線を引いてある。
【0101】
【0102】
【0103】
上の例示的なシンタックスでは、このテーブルにおける全ての符号付き整数値及び符号なし整数値は、可変バイト数を使用する。いくつかの例示的な実装形態では、以下で定義される関数を使用して、これらの整数値をバイトストリームに直列化/バイトストリームから非直列化する。直列化/非直列化にこれ以外の可変長方法を使用することができる実施形態もある。
【0104】
これらの整数値をバイトストリームに/から直列化/非直列化する際の例示的な関数
以下の関数を使用して、符号付き整数/符号なし整数をバイトストリームに直列化することができる。バイトストリームに使用されるバイト数は、整数値によって決めることができる。
【0105】
【表4】
以下の関数は、ビットストリームを復号するときにバイトストリームから符号付き整数/符号なし整数を非直列化する。
【0106】
【0107】
図8には、ある実施形態によるDNNを符号化するための方法800の一例を示す。810において、DNN層のテンソルのパラメータが、コードブックを使用して量子化され、ビットストリームにおいて符号化される。
【0108】
パラメータを量子化する際、上で規定したタイプを有するコードブックが使用される。上に記載されるように、820において、使用されるコードブックタイプをデコーダにシグナリングするために、テンソルパラメータを量子化するのに使用されるコードブックのタイプを表す情報がビットストリームにおいて符号化される。
【0109】
図9には、ある実施形態によるDNNを復号するための方法900の一例を示す。910において、コードブックのタイプを表す情報が、DNNの層の少なくとも1つのテンソルを表すデータを含む入力ビットストリームから復号される。920において、上に記載されるように、テンソルのパラメータがビットストリームから復号され、復号済み情報によって示されるタイプのコードブックを使用して逆量子化される。
【0110】
それぞれ、
図8及び
図9との関係で説明した符号化方法800、復号方法」900の実施形態は、
図4との関係で説明したDNNを符号化するための方法、
図5との関係で説明したDNNを復号するための方法において実施することができる。
【0111】
いくつかの実施形態では、上で説明される、かつ
図6、
図7、及び
図8との関係で説明される態様を組み合わせることができる。
【0112】
図10には、ある実施形態に従って生成されるディープニューラルネットワークの少なくとも1つの層のテンソルを表すデータを含むビットストリームSTR_100の一部の一例を示す。ビットストリームは、例えば、上記の実施形態のいずれか1つに従って生成される。
図10に示す部分は、テンソル(STR_101)を表すデータと、テンソルのパラメータを量子化するのに使用されるコードブックのタイプを表す情報(STR_102)と、を含む。
【0113】
更なる実施形態及び情報
本出願では、ツール、特徴、実施形態、モデル、手法などを含む様々な態様を説明している。これらの態様のうちの多くを具体的に説明し、少なくとも個々の特性を示すために、しばしば、限定的に聞こえるように説明している。しかしながら、これは、説明を明確にするためであり、それらの態様の適用又は範囲を限定するものではない。実際に、異なる態様の全ては、更なる態様を提供するために、組み合わせ、かつ相互交換することができる。また、これらの態様は、以前の出願において説明されている態様と組み合わせ、かつ相互交換することもできる。
【0114】
本出願において説明し、その可能性が受け入れられる態様は、多くの異なる形態で実装することができる。以下の
図1、
図2、及び
図3は、いくつかの実施形態を提供するが、それ以外の実施形態もその可能性が受け入れられ、
図1、
図2、及び
図3の考察は、実装形態の広がりを限定するものではない。態様のうちの少なくとも1つは、概して、符号化及び復号(例えば、ビデオ符号化及びビデオ復号、並びに/又はDNNの少なくともいくつかの層の少なくともいくつかのパラメータの符号化及び復号)に関し、少なくとも1つのそれ以外の態様は、概して、生成又は符号化されたビットストリームを送信することに関する。これらなどの態様は、方法、装置、また説明した方法のいずれかに従って、データを符号化又は復号するよう求める命令をそれ自体に格納するコンピュータ可読記憶媒体、及び/又は説明した方法のいずれかに従って生成されるビットストリームを格納している、コンピュータ可読記憶媒体、として実装することができる。
【0115】
本出願では、「再構築された」及び「復号された」という用語は、言い換え可能に使用することができ、「画素」と「サンプル」という用語も、同義的に使用することができ、「画像」、「ピクチャ」、「フレーム」という用語も、言い換え可能に使用することができる。通常、必ずしもそうではないが、「再構築された」という用語は、エンコーダ側で使用され、一方「復号された」という用語はデコーダ側で使用される。
【0116】
本出願に記載の様々な方法などの態様を使用して、
図1及び
図2に示すようなエンコーダ100及びデコーダ200のモジュール、例えば、イントラ予測モジュール、エントロピコーディングモジュール、及び/又は復号モジュール(160、260、145、230)を修正することができる。また、本開示の態様は、VVC又はHEVCに限定されるものではなく、例えば、既存のもの、又は将来開発されるものにかかわらず、他の規格及び勧告、また任意のこのような規格及び勧告(VVC及びHEVCを含む)の拡張にも適用することができる。
【0117】
また、本態様は、VVC若しくはHEVCに、又はビデオデータにさえも限定されるものではなく、ビデオ以外の多くの技術分野において使用され得るニューラルネットワークの少なくとも1つの層の少なくとも1つのテンソルを、それぞれ、符号化するか、復号するように適合されたエンコーダ又はデコーダに適用され得る(当然ながら、このような実施形態では、イントラ予測モジュール160のようないくつかのモジュールは、任意選択的であり得る)。
【0118】
特に断りのない限り、又は技術上除外されない限り、本出願に記載の態様は、個別でも組み合わせてでも使用することができる。
【0119】
本出願では、様々な数値が使用される(例えば、pdf係数範囲、又はpdf係数を変更する際の刻み、又はいくつかのコンピューティングに使用される最大コードブックサイズ)。具体的な値は、例を挙げるためであり、記載される態様は、これらの具体的な値に限定されるものではない。
【0120】
図1は、エンコーダ100を示す。このエンコーダ100の変形形態が企図されるが、エンコーダ100は、明瞭にする目的で、必ずしも予想される全ての変形形態を説明せずに、以下で説明される。
【0121】
符号化される前に、シーケンスが、符号化前処理(101)、例えばビデオ変換の場合にはカラー変換を入力カラーピクチャに適用すること(例えば、RGB4:4:4からYCbCr4:2:0への変換)、又は圧縮に対してより弾力的な信号分布を得るために入力ピクチャ成分の再マッピングを行う(例えば、カラー成分のうちの1つのヒストグラム等化を使用して)ことを経ることがある。また、前符号化処理は、CABACに結び付けて上で詳しく述べた例示的な二値化として二値化を含むことができる。
【0122】
メタデータを前処理に関連付け、ビットストリームに付加することができる。
【0123】
エンコーダ100では、以下に記載されるように、ピクチャは、エンコーダ要素によって符号化される。符号化されるピクチャは、例えば、CUという単位に分けられ(102)、処理される。各単位は、例えば、イントラモードを使用してでもインターモードを使用してでも符号化される。単位がイントラモードで符号化される場合、それは、イントラ予測(160)を行う。インターモードでは、動き推定(175)及び動き補償(170)が行われる。エンコーダは、単位を符号化するのにイントラモード又はインターモードのうちのどちらを使用すべきかを決め(105)、例えば予測モードフラグによってイントラ/インター決定を示す。例えば、元の画像ブロックから予測ブロックを減算することによって、予測残差が計算される(110)。
【0124】
それにより、その予測残差が変換され(125)、量子化される(130)。
【0125】
量子化された変換係数とともに動きベクトルなどのシンタックス要素をエントロピコーディングして、ビットストリームを出力する(145)。
【0126】
エンコーダでは、変換を飛ばし、量子化を非変換残差信号に直に適用することができる。エンコーダでは、変換も量子化も無視することができ、すなわち、残差は、変換プロセスも量子化プロセスも適用せずとも直にコーディングされる。
【0127】
エンコーダでは、符号化済みブロックを復号して、更なる予測に基準を提供する。量子化された変換係数を逆量子化し(140)、逆変換し(150)、予測残差を復号する。例えば、ビデオシーケンスの場合、復号済み予測残差と予測ブロックとを組み合わせること(155)により、画像ブロックが再構築される。例えば、非ブロック化/SAO(Sample Adaptive Offset)(サンプル適応オフセット)フィルタリングを行って、符号化アーチファクトを低減するために、再構築されたピクチャにループ内フィルタ(165)を適用する。フィルタリングされた画像は、基準ピクチャバッファ(180)に格納される。
【0128】
図2には、デコーダ200のブロック図を示す。デコーダ200では、以下に記載されるように、ビットストリームが、デコーダ要素によって復号される。デコーダ200では、
図1に記載されるように、通常、符号化パスとはほとんど逆の復号パスを行う。エンコーダ100もまた、通常、データを符号化する一環として復号を行う。
【0129】
具体的には、デコーダ200の入力は、ビットストリームを含み、これは、エンコーダ100によって生成され得る。ビットストリームは、まず、変換係数、動きベクトルなどのコード化情報を取得するようにエントロピ復号される(230)。
【0130】
ビデオビットストリームの場合、ピクチャ分割情報が、ピクチャがどのように分割されるかを示す。それにより、デコーダは、復号済みピクチャ分割情報に従ってピクチャを分けることができる(235)。予測残差を復号するのに、変換係数が逆量子化され(240)、逆変換される(250)。復号済み予測残差と予測ブロックとを組み合わせて(255)、画像ブロックを再構築する。イントラ予測(260)又は動き補償予測(すなわち、インター予測)(275)から予測ブロックを取得することができる(270)。ループ内フィルタ(265)が、再構築された画像に適用される。フィルタリングされた画像は、基準ピクチャバッファ(280)に格納される。
【0131】
復号済み要素(ピクチャ又は層パラメータのような)は、復号後処理(285)、例えば、復号済み画像の場合、逆カラー変換(例えば、YCbCr4:2:0からRGB4:4:4への変換)、又は符号化前処理(101)において行われた再マッピングプロセスの逆を行う逆再マッピングを更に経ることがある。復号後処理では、符号化前処理において導出され、ビットストリームにおいてシグナリングされたメタデータを使用することができる。
【0132】
図3には、様々な態様及び実施形態が実装されているシステムの一例のブロック図を示す。システム1000は、以下に記載の様々な構成要素を含むデバイスとして具体化することができ、本明細書に記載の態様のうちの1つ以上を行うように構成されている。このようなデバイスの例としては、パーソナルコンピュータ、ラップトップコンピュータ、スマートフォン、タブレットコンピュータ、デジタルマルチメディアセットトップボックス、デジタルテレビ受信機、パーソナルビデオ録画システム、接続型家電、及びサーバなどの様々な電子デバイスが含まれるが、これらに限定されない。システム1000の要素は、単独で又は組み合わせて、1つの集積回路(Integrated Circuit、IC)、複数のIC、及び/又は別個の構成要素において具体化することができる。例えば、少なくとも1つの実施形態では、システム1000の処理要素及びエンコーダ要素/デコーダ要素は、複数のIC及び/又は個別の構成要素にわたって分散される。様々な実施形態では、システム1000は、例えば、通信バスを介して又は専用の入力ポート及び/若しくは出力ポートを通して、1つ以上のそれ以外のシステム又はそれ以外の電子デバイスに通信可能につなげられている。様々な実施形態では、システム1000は、本明細書に記載の態様のうちの1つ以上を実装するように構成されている。
【0133】
システム1000は、例えば、本明細書に記載の様々な態様を実装するように、それに読み込まれた命令を実行するように構成された少なくとも1つのプロセッサ1010を含む。プロセッサ1010は、当該技術分野において既知である、埋め込みメモリ、入出力インターフェース、及び様々なそれ以外の回路を含むことができる。システム1000は、少なくとも1つのメモリ1020(例えば、揮発性記憶デバイス及び/又は不揮発性記憶デバイス)を含む。システム1000は、記憶デバイス1040を含み、これには、不揮発性メモリ及び/又は揮発性メモリを含むことができ、これらのメモリとしては、電気的消去可能プログラマブル読み取り専用メモリ(Electrically Erasable Programmable Read-Only Memory、EEPROM)読み取り専用メモリ(Read Only Memory、ROM)、プログラマブル読み取り専用メモリ(Programmable Read-Only Memory、PROM)、ランダムアクセスメモリ(Random Access Memory、RAM)、ダイナミックランダムアクセスメモリ(Dynamic Random-Access Memory、DRAM)、スタティックランダムアクセスメモリ(Static Random Access Memory、SRAM)、フラッシュ、磁気ディスクドライブ、及び/又は光ディスクドライブが含まれるが、これらに限定されない記憶デバイス1040は、非限定的な例として、内部記憶デバイス、取り付け式記憶デバイス(取り外し可能記憶デバイス及び取り外し不可能記憶デバイスを含む)、並びに/又はネットワークアクセス可能記憶デバイスを含むことができる。
【0134】
システム1000は、例えば、符号化済みデータストリーム又は復号済みデータストリーム(少なくとも1つのDNNの少なくとも1つの層の少なくとも1つのテンソルの少なくとも1つのパラメータを表すビデオストリーム及び/又はストリームなど)を提供するようにデータを処理するように構成されたエンコーダ/デコーダモジュール1030を含み、エンコーダ/デコーダモジュール1030は、それ自体のプロセッサ及びメモリを含むことができる。エンコーダ/デコーダモジュール1030は、符号化機能及び/又は復号機能を果たすデバイスに含めることができるモジュールを表す。既知のように、デバイスは、符号化モジュール及び復号モジュールのうちの一方又は両方を含むことができる。追加的に、エンコーダ/デコーダモジュール1030は、システム1000の別個の要素として実装することができるか、又は当業者に既知であるように、ハードウェアとソフトウェアとの組み合わせとしてプロセッサ1010内に組み込むことができる。
【0135】
本明細書に記載の様々な態様を行うのにプロセッサ1010又はエンコーダ/デコーダ1030に読み込まれるプログラムコードは、記憶デバイス1040に格納することができ、続いて、プロセッサ1010による実行のためにメモリ1020に読み込むことができる。様々な実施形態によれば、プロセッサ1010、メモリ1020、記憶デバイス1040、及びエンコーダ/デコーダモジュール1030のうちの1つ以上は、本明細書に記載のプロセスの実施時の様々な項目のうちの1つ以上を格納することができる。このような格納される項目は、入力ビデオ、復号済みビデオ又は復号済みビデオの一部分、少なくとも1つのDNNの少なくとも1つの層の少なくとも1つのテンソルの少なくとも1つのパラメータを表すデータ、ビットストリーム、行列、変数、また方程式、式、演算、及び演算論理の処理からの中間結果又は最終結果を含むことができるが、これらに限定されない。
【0136】
いくつかの実施形態では、プロセッサ1010及び/又はエンコーダ/デコーダモジュール1030の内部のメモリは、命令を記憶し、また符号化又は復号時に必要とされる処理用のワーキングメモリを提供するのに使用される。しかしながら、他の実施形態では、処理デバイス(例えば、処理デバイスは、プロセッサ1010であってもエンコーダ/デコーダモジュール1030でもあり得る)の外部のメモリが、これらの機能のうちの1つ以上に使用される。外部メモリは、メモリ1020及び/又は記憶デバイス1040、例えば、ダイナミック揮発性メモリ及び/又は不揮発性フラッシュメモリとすることができる。いくつかの実施形態では、外部不揮発性フラッシュメモリを使用して、例えばテレビのオペレーティングシステムを格納する。少なくとも1つの実施形態では、RAMなどの高速外部ダイナミック揮発性メモリが、MPEG-2(MPEGとは、Moving Picture Experts Groupのことであり、MPEG-2は、ISO/IEC13818ともされ、13818-1はH.222としても既知であり、13818-2はH.262としても既知である)、HEVC(HEVCとは、高効率ビデオコーディングのことであり、H.265及びMPEG-H Part2としても既知である)、又はVVC(バーサタイルビデオコーディングは、JVETのJoint Video Experts Teamによって進展している新しい規格)などのコーディング演算及び復号演算用のワーキングメモリとして使用される。
【0137】
ブロック1130に示されるように、様々な入力デバイスを通じて、システム1000の要素への入力を与えることができる。このような入力デバイスには、(i)例えば、放送事業者による放送全体にわたり送信されるRF信号を受信する無線周波数(Radio Frequency、RF)部分、(ii)コンポーネント(Component、COMP)入力端子(又はCOMP入力端子セット)、(iii)ユニバーサルシリアルバス(Universal Serial Bus、USB)入力端子、及び/又は(iv)高解像度マルチメディアインターフェース(High Definition Multimedia Interface、HDMI)入力端子が含まれるが、これらに限定されない。それ以外の例には、
図3には示していないが、合成ビデオが含まれる。
【0138】
様々な実施形態では、ブロック1130の入力デバイスは、当技術分野で既知であるような関連するそれぞれの入力処理要素を有する。例えば、(i)所望の周波数を選択することと(また信号を選択するか、又は信号を周波数帯域に帯域制限する、としている)、(ii)選択された信号をダウンコンバートすること、(iii)再度より狭い周波数帯域に帯域制限して、特定の実施形態ではチャネルと言われることもある信号周波数帯域を選択すること(例えば)、(iv)ダウンコンバートし、帯域制限した信号を復調すること、(v)誤り訂正を行うこと、また(vi)逆多重化して、所望のデータパケットストリームを選択すること、に好適な要素にRF部分を関連付けることができる。様々な実施形態のRF部分は、これらの機能を果たす1つ以上の要素、例えば、周波数セレクタ、信号セレクタ、バンドリミッタ、チャネルセレクタ、フィルタ、ダウンコンバータ、復調装置、誤り訂正装置、及びデマルチプレクサを含む。RF部分は、例えば、受信信号をより低い周波数(例えば、中間周波数又は近ベースバンド周波数)又はベースバンドにダウンコンバートすることを含む、様々なこれらの機能を果たすチューナを含むことができる。セットトップボックスの一実施形態では、RF部分とその関連する入力処理要素は、有線(例えば、ケーブル)媒体上で送信されるRF信号を受信し、フィルタリングし、ダウンコンバートし、また所望の周波数帯域に再びフィルタリングすることによって、周波数選択を行う。様々な実施形態では、上記の(及びそれ以外の)要素の順序を並べ替え、これらの要素のうちのいくつかを取り除き、かつ/又は、同様の機能若しくは異なる機能を果たす他の要素を追加する。要素を追加することは、例えば、増幅器及びアナログ-デジタル変換器を挿入するなど、既存の要素間に要素を挿入することを含むことができる。様々な実施形態において、RF部分は、アンテナを含む。
【0139】
追加的に、USB端子及び/又はHDMI端子は、システム1000をUSB接続及び/又はHDMI接続にわたってそれ以外の電子デバイスに接続するためのそれぞれのインターフェースプロセッサを含むことができる。入力処理の様々な側面、例えば、リード-ソロモン誤り訂正が、例えば、必要に応じて、別個の入力処理IC内で実施されても、又はプロセッサ1010内で実施され得るということを理解されたい。同様に、USB又はHDMIインターフェース処理の側面が、必要に応じて、別個のインターフェースIC内で実施されても、又はプロセッサ1010内で実施され得る。例えば、メモリ及びストレージ要素との組み合わせで働くプロセッサ1010、及びエンコーダ/デコーダ1030を含む様々な処理要素に、復調され、誤り訂正され、逆多重化されたストリームを提供して、出力デバイス上の提示するように必要に応じてこのデータストリームを処理する。
【0140】
システム1000の様々な要素を統合ハウジング内に設けることができ、統合ハウジング内では、様々な要素は、好適な接続装置1140、例えば、Inter-IC(I2C)バス、配線、及びプリント回路基板を含む、当該技術分野で既知であるような内部バスを使用して相互接続され、互いの間でデータを送信することができる。
【0141】
システム1000は、通信チャネル1060を介してそれ以外のデバイスとの通信を可能にする通信インターフェース1050を含む。通信インターフェース1050は、通信チャネル1060上でデータを送信し、またデータを受信するように構成されたトランシーバを含むことができるが、これに限定されない。通信インターフェース1050は、モデム又はネットワークカードを含むことはできるが、これらに限定されず、通信チャネル1060は、例えば、有線媒体及び/又は無線媒体内に実装され得る。
【0142】
データは、様々な実施形態では、Wi-Fiネットワーク、例えば、IEEE802.11(IEEEとは、米国電気電子技術者協会のことである)などの無線ネットワークを使用して、システム1000にストリーミングされるか、又は別の方法で提供される。これらの実施形態のWi-Fi信号は、Wi-Fi通信に適合された通信チャネル1060及び通信インターフェース1050上で受信される。これらの実施形態の通信チャネル1060は、通常、ストリーミングアプリケーションなどのオーバザトップ通信を可能にするために、インターネットを含む外部ネットワークへのアクセスを提供するアクセスポイント又はルータに接続される。他の実施形態では、入力ブロック1130のHDMI接続上でデータを配信するセットトップボックスを使用して、システム1000にストリーミングデータを提供する。また他の実施形態では、入力ブロック1130のRF接続を使用して、システム1000にストリーミングデータを提供する。上で示されるように、様々な実施形態では、データを非ストリーミング様態で提供する。追加的に、様々な実施形態では、Wi-Fi以外の無線ネットワーク、例えば、セルラネットワーク又はBluetoothネットワークを使用する。
【0143】
システム1000は、ディスプレイ1100、スピーカ1110、及びそれ以外の周辺デバイス1120を含む様々な出力デバイスに出力信号を提供することができる。様々な実施形態のディスプレイ1100は、例えば、タッチスクリーンディスプレイ、有機発光ダイオード(Organic Light-Emitting Diode、OLED)ディスプレイ、湾曲ディスプレイ、及び/又は折り畳み式ディスプレイのうちの1つ以上を含む。ディスプレイ1100は、テレビ、タブレット、ラップトップ、携帯電話(移動電話)、又は別のデバイス用とすることができる。ディスプレイ1100はまた、他の構成要素と一体化され得るか(例えば、スマートフォンに見られるように)、又は別個のものであり得る(例えば、ラップトップ用の外部モニタ)。他の周辺デバイス1120は、実施形態の様々な例において、スタンドアロンデジタルビデオディスク(又はデジタル多用途ディスク)(両方の用語の略称として、DVR)、ディスクプレーヤ、ステレオシステム、及び/又は照明システムのうちの1つ以上を含む。様々な実施形態では、システム1000の出力に基づいて機能を提供する1つ以上の周辺デバイス1120を使用する。例えば、ディスクプレーヤは、システム1000の出力を再生する機能を果たす。
【0144】
様々な実施形態において、制御信号が、AVなどのシグナリングを使用して、システム1000と、ディスプレイ1100、スピーカ1110、又は他の周辺デバイス1120との間で通信される。ユーザの介入の有無に関わらずデバイス間制御を可能にする、(Consumer Electronics Control、CEC)などの通信プロトコルを結び付ける。出力デバイスは、それぞれのインターフェース1070、1080、及び1090を通した専用接続を介してシステム1000に通信可能につなげられ得る。代替的に、出力デバイスは、通信インターフェース1050を介して、通信チャネル1060を使用してシステム1000に接続され得る。ディスプレイ1100及びスピーカ1110は、例えば、テレビなどの電子デバイスにおいてシステム1000のそれ以外の構成要素と1つのユニットに一体化され得る。様々な実施形態において、ディスプレイインターフェース1070は、例えば、タイミングコントローラ(Timing Controller、T Con)チップなどのディスプレイドライバを含む。
【0145】
例えば、入力1130のRF部分が別個のセットトップボックスの一部である場合、代替として、ディスプレイ1100及びスピーカ1110は、それ以外の構成要素のうちの1つ以上とは別個とすることができる。ディスプレイ1100及びスピーカ1110が外部構成要素である様々な実施形態では、例えば、HDMIポート、USBポート、又はCOMP出力を含む専用の出力接続を介して出力信号を提供することができる。
【0146】
プロセッサ1010によって実装されるコンピュータソフトウェアによって、又はハードウェアによって、又はハードウェアとソフトウェアとの組み合わせによって、実施形態を実装することができる。非限定的な例として、1つ以上の集積回路によって実施形態を実装することができる。メモリ1020は、技術環境に相応しい任意のタイプのものであり得、非限定的な例として、光学メモリデバイス、磁気メモリデバイス、半導体ベースのメモリデバイス、固定メモリ、及びリブ-バブルメモリなどの任意の適切なデータ記憶技術を使用して実装することができる。プロセッサ1010は、技術環境に相応しい任意のタイプのものであり得、非限定的な例として、マイクロプロセッサ、汎用コンピュータ、特殊目的コンピュータ、及びマルチコアアーキテクチャに基づくプロセッサ、のうちの1つ以上を包含することができる。
【0147】
様々な実装形態では、復号することを伴う。本出願で使用する際、「復号」は、例えば、ディスプレイに好適な最終出力を生成するために、受信した符号化済みシーケンス上で実行される、プロセスの全て又は一部に包含することができる。様々な実施形態において、このようなプロセスは、例えば、エントロピ復号、逆量子化、逆変換、及び差動復号など、通常、デコーダによって行われるプロセスのうちの1つ以上を含む。様々な実施形態において、このようなプロセスはまた、又は代替として、本出願に記載の様々な実装形態のデコーダによって行われるプロセスも含む。
【0148】
更なる例として、ある実施形態では、「復号」は、エントロピ復号のみのことであり、別の実施形態では、「復号」は差動復号のみのことであり、また別の実施形態では、「復号」は、エントロピ復号と差動復号との組み合わせのことである。「復号プロセス」という句が、具体的に演算部分集合のことを言うこと目的とするものであるか、又は全体としてより広範な復号プロセスのことを言うことを目的とするものであるかは、具体的な説明の背景に基づいて明らかになり、当業者によって十分に理解されると考えられる。
【0149】
様々な実装形態では、符号化することを伴う。「復号」に関する上記の考察と同様に、本出願で使用する際の「符号化」は、例えば、符号化済みビットストリームを生成するために入力ビデオシーケンスに対して実行される、プロセスの全て又は一部に包含することができる。様々な実施形態において、このようなプロセスは、例えば、分割、差動符号化、変換、量子化、及びエントロピ符号化など、通常、エンコーダによって行われるプロセスのうちの1つ以上を含む。様々な実施形態において、このようなプロセスにはまた、又は代替的に、本出願に記載の様々な実装形態のエンコーダによって行われるプロセスを含む。
【0150】
更なる例として、ある実施形態では、「符号化」は、エントロピ符号化のみのことであり、別の実施形態では、「符号化」は差動符号化のみのことであり、また別の実施形態では、「符号化」は、差動符号化とエントロピ符号化の組み合わせのことである。「符号化プロセス」という句が、具体的に作業部分集合のことを言うこと目的とするものであるか、又は全体としてより広範な符号化プロセスのことを言うことを目的とするものであるかは、具体的な説明の背景に基づいて明らかになり、当業者にはよく分かると考えられる。
【0151】
本明細書で使用する際のシンタックス要素が、説明上の用語であることに留意されたい。したがって、シンタックス要素は、それ以外のインタックス要素名の使用を締め出すものではない。
【0152】
図が流れ図として提示されている場合、その図が対応する装置のブロック図も提供する、ということを理解すべきである。同様に、図がブロック図として提示されている場合、その図が対応する方法/プロセスの流れ図も提供する、ということを理解すべきである。
【0153】
様々な実施形態では、パラメトリックモデル又はレート歪み最適化に言及する。具体的には、符号化プロセス中、レートと歪みとの間のバランス又はトレードオフは、通常、多くの場合、計算複雑性の制約が与えられるものと考えられる。レート歪み最適化(Rate Distortion Optimization、RDO)メトリックを通して、或いは最小二乗平均(Least Mean Square、LMS)、絶対誤差平均(Mean of Absolute Errors、MAE)などのそのような測定を通して、これを測定することができる。レート歪み最適化は、通常、レートと歪みとの加重和であるレート歪み関数を最小化するように定式化される。レート歪み最適化問題を解くための異なる手法がある。例えば、これらの手法は、全ての考えられるモード又は符号化パラメータ値を含む全ての符号化選択肢の広範なテストに基づくことがあり、それらの符号化コストと、また符号化後及び復号後に再構築された信号の関連する歪みとの完全な評価を伴う。また、符号化複雑性を抑えるのに、特に、再構築された信号ではなく、予測又は予測残差信号に基づく近似歪みの計算とともに、より素早い手法が使用され得る。考えられる符号化選択肢の一部のみに対して近似歪みを使用し、それ以外の符号化選択肢に対しては完全な歪みを使用することなどによって、これらの2つの手法の混合を使用することもできる。他の手法では、考えられる符号化選択肢部分集合のみを評価する。より一般的には、多くの手法では、最適化を行うのに様々な技法のいずれでも採用するが、最適化は、必ずしもコーディングコストと関連する歪みの両方の完全な評価ではない。
【0154】
本明細書に記載の実装形態及び態様は、例えば、方法若しくはプロセス、装置、ソフトウェアプログラム、データストリーム、又は信号において実装することができる。たとえ形態の実装形態の背景でしか考察されない場合でも(例えば、方法としてしか考察されない)、考察された特徴の実装形態は、他の形態(例えば、装置又はプログラム)でも実装することができる。装置は、例えば、相応しいハードウェア、ソフトウェア、及びファームウェアにおいて実装することができる。方法は、例えば、プロセッサにおいて実装することができ、プロセッサとは、例えば、コンピュータ、マイクロプロセッサ、集積回路、又はプログラマブルロジックデバイスを含む一般的な処理デバイスのことである。プロセッサはまた、例えば、エンドユーザ間の情報の通信を容易にする、コンピュータ、携帯電話、ポータブル/携帯情報端末(「Personal Digital Assistant、PDA」)などのデバイスなどの通信デバイスを含む。
【0155】
「一実施形態」若しくは「ある実施形態」又は「一実装形態」若しくは「ある実装形態」、またそれらの他の変形形態と言うとき、その実施形態に関連して説明する特定の特徴、構造、特性などが、少なくともある実施形態に含まれることを意味する。したがって、本明細書全体を通して様々な場所に現れる「一実施形態では」若しくは「ある実施形態では」又は「一実装形態では」若しくは「一実装形態では」、並びに任意の他の変形計形態という句が現れるとき、必ずしも全てが同じ実施形態のことを指しているのではない。
【0156】
追加的に、本出願では、様々な情報を「判定すること」に言及し得る。情報を判定することは、例えば、情報を推定すること、情報を計算すること、情報を予測すること、又は情報をメモリから取り出すことのうちの1つ以上を含むことができる。
【0157】
また、本出願では、様々な情報に「アクセスすること」に言及し得る。情報にアクセスすることは、例えば、情報を受信すること、情報を取り出すこと(例えばメモリから)、情報を格納すること、情報を移動させること、情報をコピーすること、情報を計算すること、情報を判定すること、情報を予測すること、又は情報を推定することのうちの1つ以上を含むことができる。
【0158】
追加的に、本出願では、様々な情報を「受信する」に触れることがある。受信することは、「アクセスする」の場合と同様に、広義の用語であることを意図している。情報を受信することは、例えば、情報にアクセスすること、又は情報を取り出すこと(例えば、メモリから)のうちの1つ以上を含むことができる。更に、「受信する」は、通常、例えば、情報を格納する、情報を処理する、情報を送信する、情報を移動させる、情報をコピーする、情報を消去する、情報を計算する、情報を判定する、情報を予測する、又は情報を推定するなどの作業時、何らかの形で関与する。
【0159】
例えば、「A/B」、「A及び/又はB)」、及び「A及びBのうちの少なくとも1つ」の場合、次の「/」、「及び/又は」、及び「のうちの少なくとも1つ」のいずれかの使用が、第1のリストアップした選択肢(A)のみの選択、又は第2のリストアップした選択肢(B)のみの選択、又は両方の選択肢(A及びB)の選択に言い包含することを意図しているということを理解されたい。更なる例として、「A、B、及び/又はC」及び「A、B、及びCのうちの少なくとも1つ」の場合、このような表現は、第1のリストアップした選択肢(A)のみの選択、又は第2のリストアップした選択肢(B)のみの選択、又は第3のリストアップした選択肢(C)のみの選択、又は第1及び第2のリストアップした選択肢(A及びB)のみの選択、又は第1及び第3のリストアップした選択肢(A及びC)のみの選択、又は第2及び第3のリストアップした選択肢のみの選択(B及びC)のみ、又は3つ全ての選択肢(A、B及びC)の選択に包含することを意図している。このことは、当該技術分野及び関連技術分野の当業者には明らかであるように、記載された項目の数だけ拡張され得る。
【0160】
また、本明細書で使用する際、「シグナリングする」という語は、数ある中でも、対応するデコーダに対して何かを示すということである。例えば、特定の実施形態では、エンコーダは、複数の変換、符号化モード又は符号化フラグのうちの少なくとも1つをシグナリングする。このように、ある実施形態では、同じパラメータが、エンコーダ側とデコーダ側との両方で使用される。したがって、例えば、エンコーダは、デコーダが同じ特定のパラメータを使用することができるように、特定のパラメータをデコーダに送信する(明示的なシグナリング)ことができる。逆に、デコーダがすでにその特定のパラメータとともにそれ以外のパラメータもすでに有している場合、送信せずにシグナリングを使用して(暗黙的なシグナリング)、デコーダがその特定のパラメータが分かり、選択することを可能にすることができる。いかなる実際の機能の送信も回避することにより、様々な実施形態において、ビットの節約が実現される。シグナリングは、様々な方法で達成することができることを理解されたい。例えば、様々な実施形態において、1つ以上のシンタックス要素、フラグなどを使用して、デコーダに情報をシグナリングする。上記は、「信号」という語の動詞形に関するものであるが、「信号」という語は、本明細書では名詞としても使用され得る。
【0161】
当業者には分かることであるが、実装形態では、例えば、格納され得る、又は送信され得る情報を運ぶようにフォーマットされた様々な信号を生み出すことができる。情報は、例えば、方法を行うよう求める命令、又は記載される実装形態のうちの1つによって生み出されたデータを含むことができる。例えば、記載される実施形態のビットストリームを運ぶように、信号をフォーマットすることができる。このような信号を、例えば、電磁波として(例えば、スペクトルの無線周波数部分を使用して)、又はベースバンド信号としてフォーマットすることができる。フォーマットすることは、例えば、データストリームを符号化することと、符号化済みデータストリームで搬送波を変調することと、を含むことができる。信号が運ぶ情報は、例えば、アナログ情報又はデジタル情報とすることができる。既知であるように、信号は、様々な異なる有線リンク又は無線リンク上で送信することができる。信号は、プロセッサ可読媒体に信格納することができる。
【0162】
いくつかの実施形態を記載する。これらの実施形態の特徴は、様々な特許請求の範疇及びタイプにわたって、単独又は任意の組み合わせにおいて提供することができる。また、実施形態は、様々な特許請求の範疇及びタイプにわたって、以下の特徴、デバイス、又は態様のうちの1つ以上を、単独、又は任意の組み合わせで含むことができる。
・事前訓練済みディープニューラルネットワークのディープニューラルネットワーク圧縮を用いて符号化及び復号を行うプロセス又はデバイス。
・事前訓練済みディープニューラルネットワークの少なくとも1つの層の符号化及び復号を行って、ディープニューラルネットワーク圧縮を実施するプロセス又はデバイス。
・パラメータを表すビットストリームに挿入された情報を用いて符号化及び復号を行って、1つ以上の層を備える事前訓練済みディープニューラルネットワークのディープニューラルネットワーク圧縮を実施するプロセス又はデバイス。
・パラメータを表すビットストリームに挿入された情報を用いて符号化及び復号を行って、ディープニューラルネットワークのディープニューラルネットワーク圧縮を実施するプロセス又はデバイス。
・記載されるシンタックス要素、又はその変形形態のうちの1つ以上を含むビットストリーム又は信号。
・記載される実施形態のうちのいずれかに従って生成される情報を運ぶシンタックスを含むビットストリーム又は信号。
・記載される実施形態のいずれかにより、作り出しかつ/又は送信しかつ/又は受信しかつ/又は復号する。
・記載される実施形態のいずれかによる、方法、プロセス、装置、命令を格納する媒体、データを記憶する媒体、又は信号。
・エンコーダによって使用される方法に対応する様態で、デコーダが符号化モードを判定することを可能にするシンタックス要素をシグナリングに挿入する。
・記載されるシンタックス要素、又はその変形形態のうちの1つ以上を含むビットストリーム又は信号を作り出しかつ/又は送信しかつ/又受信しかつ/又は復号する。
・記載される実施形態のいずれかによる、変換方法を行う、テレビ、セットトップボックス、携帯電話、タブレットなどの電子デバイス。
・記載される実施形態のいずれかにより、変換方法判定を下し、結果としてもたらされた画像を表示する(例えば、モニタ、スクリーン、などのタイプのディスプレイを使用して)表示する、テレビ、セットトップボックス、携帯電話、タブレットなどの電子デバイス。
・符号化済み画像を含む信号を受信するように、チャネルを選択し、帯域制限し、又はチューニングし(例えば、チューナを使用して)、記載される実施形態のいずれかにより変換方法を行う、テレビ、セットトップボックス、携帯電話、タブレット、又は他の電子デバイス。
・符号化済み画像を含む信号を放送全体にわたって受信し、変換方法を行う、TV、セットトップボックス、携帯電話、タブレット、又はそれ以外の電子デバイス。
【手続補正書】
【提出日】2023-02-20
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
方法であって、
ディープニューラルネットワークの少なくとも1つの層に関連付けられるテンソルのパラメータを量子化するためのコードブックサイズを含むコードブックを取得することであって、前記コードブックサイズが、前記テンソルと量子化されたバージョンの前記テンソルとの間で判定された歪み値に従って取得される、取得することと、
前記パラメータを少なくとも判定されたサイズで表すように、前記取得されたコードブックを使用して前記テンソルの前記パラメータを量子化することと、を含む、方法。
【請求項2】
送信対象のビットストリーム中の前記量子化されたパラメータを符号化することと、
前記ビットストリーム中の前記符号化済みパラメータをデコーダに送信することと、を更に含む、請求項1に記載の方法。
【請求項3】
コードブックサイズ範囲全体にわたる二分探索から前記コードブックサイズを取得することを更に含む、請求項1に記載の方法。
【請求項4】
第1のpdf係数に従って境界されるpdfに基づく初期化に基づいて量子化することと、
候補境界pdf係数から選択することであって、前記候補境界pdf係数が候補量子化されたパラメータから取得されたエントロピに基づく、選択することと、を更に含む、請求項1に記載の方法。
【請求項5】
前記コードブックに対応するコードブックタイプを表す情報を符号化することを更に含む、請求項1に記載の方法。
【請求項6】
1つ以上のプロセッサを備える装置であって、前記1つ以上のプロセッサが、
ディープニューラルネットワークの少なくとも1つの層に関連付けられるテンソルのパラメータを量子化するためのコードブックサイズを含むコードブックを取得することであって、前記コードブックサイズが、前記テンソルと量子化されたバージョンの前記テンソルとの間で判定された歪み値に従って取得される、取得することと、
前記パラメータを少なくとも判定されたサイズで表すように、前記取得されたコードブックを使用して前記テンソルの前記パラメータを量子化することと、を行うように構成されている、装置。
【請求項7】
前記1つ以上のプロセッサが、
送信対象のビットストリーム中の前記量子化されたパラメータを符号化することと、
前記ビットストリーム中の前記符号化済みパラメータをデコーダに送信することと、を行うように更に構成されている、請求項6に記載の装置。
【請求項8】
前記1つ以上のプロセッサが、コードブックサイズ範囲全体にわたる二分探索から前記コードブックサイズを取得するように更に構成されている、請求項6に記載の装置。
【請求項9】
前記1つ以上のプロセッサが、
第1のpdf係数に従って境界されるpdfに基づく初期化に基づいて量子化することと、
候補境界pdf係数から、候補量子化されたパラメータから取得されたエントロピに基づいて、前記候補バウンディングpdf係数を選択することと、を行うように更に構成されている、請求項6に記載の装置。
【請求項10】
前記1つ以上のプロセッサが、前記コードブックに対応するコードブックタイプを表す情報を符号化するように更に構成されている、請求項6に記載の装置。
【請求項11】
符号化済みビットストリームを受信することであって、前記符号化済みビットストリームが、ディープニューラルネットワークの少なくとも1つの層に関連付けられるテンソルの量子化されたパラメータを含み、前記符号化済みビットストリームが、前記テンソルと量子化されたバージョンの前記テンソルとの間で判定された歪み値に従って取得されたコードブックサイズを含むコードブックを含む、受信することと、
前記ビットストリームから、前記コードブックを復号することと、
前記コードブックを使用して前記テンソルの前記パラメータの逆量子化を行うことと、を含む、方法。
【請求項12】
入力ビンを解析して、量子化されたパラメータを引き出すことと、
前記量子化されたパラメータを逆量子化して最終パラメータ値を導出することと、
前記最終パラメータ値を逆変換することと、を更に含む、請求項11に記載の方法。
【請求項13】
第1のpdf係数に従って境界されるpdfに基づく初期化に基づいて逆量子化することを更に含む、請求項11に記載の方法。
【請求項14】
1つ以上のプロセッサを備える装置であって、前記1つ以上のプロセッサが、
符号化済みビットストリームを受信することであって、前記符号化済みビットストリームが、ディープニューラルネットワークの少なくとも1つの層に関連付けられるテンソルの量子化されたパラメータを含み、前記符号化済みビットストリームが、前記テンソルと量子化されたバージョンの前記テンソルとの間で判定された歪み値に従って取得されたコードブックサイズを含むコードブックを含む、受信することと、
前記ビットストリームから、前記コードブックを復号することと、
前記コードブックを使用して、前記テンソルの前記パラメータの逆量子化を行うことと、を行うように構成されている、装置。
【請求項15】
前記1つ以上のプロセッサが、入力ビンを解析して、量子化されたパラメータを引き出すことと、前記量子化されたパラメータを逆量子化して最終パラメータ値を導出することと、前記最終パラメータを逆変換することと、を行うように更に構成されている、請求項14に記載の装置。
【国際調査報告】