IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インターデジタル ヴイシー ホールディングス フランス,エスエーエスの特許一覧

特表2023-530470ディープニューラルネットワークを符号化/復号するためのシステム及び方法
<>
  • 特表-ディープニューラルネットワークを符号化/復号するためのシステム及び方法 図1
  • 特表-ディープニューラルネットワークを符号化/復号するためのシステム及び方法 図2
  • 特表-ディープニューラルネットワークを符号化/復号するためのシステム及び方法 図3
  • 特表-ディープニューラルネットワークを符号化/復号するためのシステム及び方法 図4
  • 特表-ディープニューラルネットワークを符号化/復号するためのシステム及び方法 図5
  • 特表-ディープニューラルネットワークを符号化/復号するためのシステム及び方法 図6
  • 特表-ディープニューラルネットワークを符号化/復号するためのシステム及び方法 図7
  • 特表-ディープニューラルネットワークを符号化/復号するためのシステム及び方法 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-07-18
(54)【発明の名称】ディープニューラルネットワークを符号化/復号するためのシステム及び方法
(51)【国際特許分類】
   H04N 19/90 20140101AFI20230710BHJP
   H04N 19/70 20140101ALI20230710BHJP
【FI】
H04N19/90
H04N19/70
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022577696
(86)(22)【出願日】2021-06-09
(85)【翻訳文提出日】2023-01-20
(86)【国際出願番号】 EP2021065522
(87)【国際公開番号】W WO2021254855
(87)【国際公開日】2021-12-23
(31)【優先権主張番号】63/040,048
(32)【優先日】2020-06-17
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】63/050,052
(32)【優先日】2020-07-09
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.HDMI
2.BLUETOOTH
(71)【出願人】
【識別番号】521557230
【氏名又は名称】インターデジタル ヴイシー ホールディングス フランス,エスエーエス
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】ラカペ、ファビアン
(72)【発明者】
【氏名】ハミディ-ラッド、シャハブ
(72)【発明者】
【氏名】ジャイン、スワヤンブー
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159MA04
5C159MA05
5C159MA21
5C159MC11
5C159ME01
5C159PP15
5C159PP16
5C159UA02
5C159UA05
5C159UA16
5C159UA33
(57)【要約】
本開示は、少なくとも1つのディープニューラルネットワークの少なくとも1つの層の少なくとも1つの第1のテンソルが、ビットストリームにおいてそのパラメータが符号化されている第2のテンソル及び第3のテンソルに分解されているとの判定に応えて、第2のテンソル及び第3のテンソルのうちの少なくとも1つのテンソルのサイズをビットストリームから復号することと、復号されたサイズに基づいて、ビットストリームから、第2のテンソル及び第3のテンソルのうちの少なくとも1つを復号することと、を含む、方法に関する。対応する装置、符号化方法、信号:ビットストリーム、記憶媒体、並びにエンコーダデバイス及び/又はデコーダデバイスも提供される。
【選択図】図6

【特許請求の範囲】
【請求項1】
方法であって、
-少なくとも1つのディープニューラルネットワークの少なくとも1つの層の少なくとも1つの第1のテンソルが、ビットストリームにおいて、そのパラメータが符号化されている第2のテンソル及び第3のテンソルに分解されているとの判定に応えて、前記ビットストリームから、前記第2のテンソル及び前記第3のテンソルのうちの少なくとも1つのテンソルのサイズを復号することと、
-前記復号されたサイズに基づいて、前記第2のテンソル及び前記第3のテンソルのうちの少なくとも1つを復号することと、を含む、方法。
【請求項2】
1つ以上のプロセッサを備える装置であって、前記1つ以上のプロセッサが、
-少なくとも1つのディープニューラルネットワークの少なくとも1つの層の少なくとも1つの第1のテンソルが、ビットストリームにおいて、そのパラメータが符号化されている第2のテンソル及び第3のテンソルに分解されていると判定することと、
-前記ビットストリームから、前記第2のテンソル及び前記第3のテンソルのうちの少なくとも1つのテンソルのサイズを復号することと、
-前記復号されたサイズに基づいて、前記第2のテンソル及び前記第3のテンソルのうちの少なくとも1つを復号することと、を行うように構成されている、装置。
【請求項3】
前記1つ以上のプロセッサが、前記第2のテンソル及び前記第3のテンソルに分解された前記少なくとも1つの第1のテンソルのテンソル分解の分解ランクを、前記ビットストリームから復号するように更に構成されている、更に含む、請求項1に記載の方法、又は請求項2に記載の装置。
【請求項4】
前記1つ以上のプロセッサが、前記第2のテンソル及び前記第3のテンソルのうちの一方のテンソルのサイズを、前記復号されたサイズから導出するように更に構成されている、更に含む、請求項1若しくは3に記載の方法、又は請求項2若しくは3に記載の装置。
【請求項5】
前記1つ以上のプロセッサが、前記導出されたサイズに基づいて、前記第2のテンソル及び前記第3のテンソルのうちの一方のテンソルを復号するように更に構成されている、更に含む、請求項4に記載の方法、又は請求項4に記載の装置。
【請求項6】
前記1つ以上のプロセッサが、前記復号された第2のテンソル及び前記復号された第3のテンソルから、前記少なくとも1つの第1のテンソルを復元するように更に構成されている、更に含む、請求項1若しくは3~5のいずれか一項に記載の方法、又は請求項2若しくは3~5のいずれか一項に記載の装置。
【請求項7】
前記少なくとも1つの第1のテンソルの復元中に、前記少なくとも1つの第2のテンソル及び前記少なくとも1つの第3のテンソルのうちの第1の復号されたテンソルが、復号されたテンソルバッファに格納される、請求項6に記載の方法又は装置。
【請求項8】
前記1つ以上のプロセッサが、
前記復号された第2のテンソル及び前記復号された第3のテンソルから、前記第1のテンソルをその元の形状で復元するために使用されるモードを表す情報をビットストリームから復号するように更に構成されている、更に含む、請求項6若しくは7に記載の方法、又は請求項6若しくは7に記載の装置。
【請求項9】
前記第2のテンソル又は前記第3のテンソルのうちの1つを復号することが、
-前記少なくとも1つの第2のテンソル及び前記少なくとも1つの第3のテンソルのうちの一方のテンソルが前記復号されたテンソルバッファにないという判定に応えて、
前記1つの復号されたテンソルを前記復号されたテンソルバッファに格納することを含む、請求項7又は8に記載の方法又は装置。
【請求項10】
前記少なくとも1つの第2のテンソル及び前記少なくとも1つの第3のテンソルのうちの一方のテンソルが前記復号されたテンソルバッファにないと判定することが、前記復号されたテンソルのタイプに応えてのことである、請求項9に記載の方法又は装置。
【請求項11】
前記少なくとも1つの第2のテンソル及び前記少なくとも1つの第3のテンソルのうちの一方のテンソルが前記復号されたテンソルバッファにないと判定することが、前記復号されたテンソルと同じ層を指定する識別子に関連付けられたテンソルを探すことを含む、請求項9又は10に記載の方法又は装置。
【請求項12】
前記復号されたテンソルバッファが、1つより多い復号されたテンソルを格納するように構成されている、請求項7~11のいずれか一項に記載の方法又は装置。
【請求項13】
ビットストリーム中の前記ディープニューラルネットワークの少なくとも1つの層の少なくとも1つの第1のテンソルを表すデータを符号化することを含む方法であって、データを符号化することが、
-前記少なくとも1つの第1のテンソルが、第2のテンソル及び第3のテンソルに分解されているとの判定に応えて、前記第2のテンソル及び前記第3のテンソルのうちの少なくとも1つのテンソルのサイズを符号化することと、
-前記第2のテンソル及び前記第3のテンソルのうちの前記少なくとも1つを表すパラメータを符号化することと、を含む、方法。
【請求項14】
ビットストリーム中の前記ディープニューラルネットワークの少なくとも1つの層の少なくとも1つの第1のテンソルを表すデータを符号化するための装置であって、前記装置が、1つ以上のプロセッサを備え、前記1つ以上のプロセッサが、
-前記少なくとも1つの第1のテンソルが、第2のテンソル及び第3のテンソルに分解されていると判定することと、
-前記判定に応えて、前記第2のテンソル及び前記第3のテンソルのうちの少なくとも1つのテンソルのサイズを符号化することと、
-前記第2のテンソル及び前記第3のテンソルのうちの前記少なくとも1つを符号化することと、を行うように構成されている、装置。
【請求項15】
前記ディープニューラルネットワークの少なくとも1つの層の少なくとも1つの第1のテンソルを表すデータを含むビットストリームを含む信号であって、前記データが、
-前記少なくとも1つの第1のテンソルが、第2のテンソル及び第3のテンソルに分解されていることを示す情報と、
-前記第2のテンソル及び前記第3のテンソルのうちの少なくとも1つのテンソルのサイズと
-前記第2のテンソル及び前記第3のテンソルのうちの前記少なくとも1つのテンソルのパラメータと、を含む、信号。
【請求項16】
前記データが、前記第2のテンソル及び前記第3のテンソルに分解された前記少なくとも1つの第1のテンソルのテンソル分解の分解ランクを更に含む、請求項13に記載の方法、又は請求項14に記載の装置、又は請求項15に記載の信号。
【請求項17】
前記データが、前記第2のテンソル及び前記第3のテンソルのうちの前記少なくとも1つの一方のテンソルのパラメータを含む、請求項13若しくは16に記載の方法、又は請求項14若しくは16に記載の装置、又は請求項15若しくは16に記載の信号。
【請求項18】
前記データが、前記少なくとも1つの第2のテンソル又は前記少なくとも1つの第3のテンソルのテンソルタイプを表す情報を更に含む、請求項17に記載の方法、又は請求項17に記載の装置、又は請求項17に記載の信号。
【請求項19】
前記データが、前記第2のテンソル及び前記第3のテンソルから、前記第1のテンソルをその元の形状で復元するために使用されるモードを表す情報を更に含む、請求項17若しくは18に記載の方法、又は請求項17若しくは18に記載の装置、又は請求項17若しくは18に記載の信号。
【請求項20】
前記第2のテンソル及び前記第3のテンソルが、前記少なくとも1つの第1のテンソルの下位分解又は下位置換分解から生じる、請求項1若しくは3~13若しくは16~19のうちのいずれか一項に記載の方法、又は請求項2~12若しくは14若しくは16~19のいずれか一項に記載の装置、又は請求項15~19のいずれか一項に記載の信号。
【請求項21】
前記第2のテンソルが、Gテンソルであり、前記第3のテンソルが、Hテンソルである、請求項20に記載の方法又は装置又は信号。
【請求項22】
前記第2のテンソル及び前記第3のテンソルのうちの少なくとも1つのテンソルのサイズが、前記第2のテンソル及び前記第3のテンソルのうちの少なくとも1つのテンソルの行数又は列数である、請求項1若しくは3~13若しくは16~21のいずれか一項に記載の方法、又は請求項2~12若しくは14若しくは16~21のいずれか一項に記載の装置、又は請求項15~21のいずれか一項に記載の信号。
【請求項23】
請求項15~22のいずれか一項による信号を含む、コンピュータ可読媒体。
【請求項24】
1つ以上のプロセッサに、請求項1又は3~13又は16~22のいずれか一項に記載の方法を行わせる、命令を格納しているコンピュータ可読記憶媒体。
【請求項25】
プログラムが1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサに、請求項1又は3~13又は16~22のいずれか一項に記載の方法を行わせる、命令を含むコンピュータプログラム製品。

【発明の詳細な説明】
【技術分野】
【0001】
本開示の1つ以上の実施形態のドメイン技術分野は、データ圧縮及び/又はデータ解凍のような、データ処理技術ドメインに関する。例えば、少なくともいくつかの実施形態は、オーディオストリーム及び/又はビデオストリームの少なくとも一部の圧縮及び/又は解凍のような、あるいはディープニューラルネットワーク(DNN:Deep Neural Network)の少なくともいくつかのパラメータのような、ディープラーニング技法に結び付いたデータの圧縮及び/又は解凍のような、大容量のデータを巻き込むデータ圧縮/解凍に関する。
【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のようないくつかの圧縮規格又はドラフト規格など、ディープニューラルネットワーク(DNN)の圧縮用の既存のシステムと比較して、圧縮効率を改善することに関する。
【0005】
大抵、符号化プロセスでは、DNNのパラメータを量子化し、エントロピコード化し、圧縮データを得る。データを復元するには、圧縮データを復号し、復号プロセスには、エントロピ復号及び逆量子化が含まれる。
【発明の概要】
【0006】
本発明の原理により、少なくとも1つのディープニューラルネットワークの少なくとの1つの層又は副層の少なくとも1つのテンソルの1つ以上のパラメータである、少なくとも1つのビットストリーム中のデータを符号化又は復号するための方法及び装置を提案することにより、いくつかの分かっている圧縮方法及び/又は解凍方法の欠点のうちの少なくとも1つを解消するのが可能になる。注目すべきは、層に関連付けられたパラメータのテンソルとしては、簡潔にするために以下で単に「重み」と呼ばれることがあるにしろ、重み及び/又はバイアスを挙げることができる、ということである。
【0007】
ある実施形態により、少なくとも1つのディープニューラルネットワークの少なくとも1つの層の少なくとも1つの第1のテンソルを復号するための方法を提供する。このような方法は、ビットストリームにおいてそのパラメータが符号化されている第2のテンソルと第3のテンソルとに少なくとも1つの第1のテンソルが分解されているとの判定に応えて、第2のテンソル及び第3のテンソルのうちの少なくとも1つのテンソルのサイズをビットストリームから復号し、復号されたサイズに基づいて、ビットストリームから第2のテンソル及び第3のテンソルのうちの少なくとも1つを復号することを含む。
【0008】
別の実施形態により、少なくとも1つのディープニューラルネットワークの少なくとも1つの層の少なくとも1つの第1のテンソルを復号するための装置を提供する。装置は、ビットストリームにおいてそのパラメータが符号化されている第2のテンソルと第3のテンソルとに、少なくとも1つのディープニューラルネットワークの少なくとも1つの層の少なくとも1つの第1のテンソルが分解されていると判定し、第2のテンソル及び第3のテンソルのうちの少なくとも1つのテンソルのサイズをビットストリームから復号し、復号されたサイズに基づいて、ビットストリームから、第2のテンソル及び第3のテンソルのうちの少なくとも1つを復号するように構成された1つ以上のプロセッサを備える。
【0009】
別の実施形態により、ビットストリーム中のディープニューラルネットワークの少なくとも1つの層の少なくとも1つの第1のテンソルを表すデータを符号化することを含む方法を提供する。方法は、少なくとも1つの第1のテンソルが第2のテンソル及び第3のテンソルに分解されているとの判定に応えて、第2のテンソル及び第3のテンソルのうちの少なくとも1つのテンソルのサイズを符号化し、第2のテンソル及び第3のテンソルのうちの少なくとも1つを表すパラメータを符号化することを含む。
【0010】
また別の態様により、ビットストリーム中のディープニューラルネットワークの少なくとも1つの層の少なくとも1つの第1のテンソルを表すデータを符号化するための装置を提供し、装置が1つ以上のプロセッサを備え、1つ以上のプロセッサが、少なくとも1つの第1のテンソルが第2のテンソル及び第3のテンソルに分解されていると判定し、この判定に応えて、第2のテンソル及び第3のテンソルのうちの少なくとも1つのテンソルのサイズを符号化し、第2のテンソル及び第3のテンソルのうちの少なくとも1つを符号化するように構成されている。
【0011】
1つ以上の実施形態によりまた、1つ以上のプロセッサによって実行されるとき、1つ以上のプロセッサに、これまで述べた実施形態のいずれかによる符号化方法又は復号方法を行わせる命令を含む、コンピュータプログラムを提供する。また、本実施形態のうちの1つ以上により、これまで述べた方法により、データを符号化するか又は復号するよう求める命令を格納しているコンピュータ可読記憶媒体を提供する。1つ以上の実施形態はまた、これまで述べた方法により起こされたビットストリームを格納しているコンピュータ可読記憶媒体を提供する。1つ以上の実施形態によりまた、上で説明された方法に従って生成されたビットストリームを送信又は受信するための方法及び装置を提供する。
【0012】
少なくとも1つの実施形態の別の汎用態様により、復号する実施形態のいずれか1つによる装置と、(i)入力データを含む信号を受信するように構成されたアンテナ、(ii)入力データを含む受信信号を、ある周波帯域に限定するように構成された帯域リミッタ、又は(iii)ビデオブロックを表す出力を表示するように構成されたディスプレイのうちの少なくとも1つと、を備えるデバイスを提供する。
【0013】
明示的には説明されていないが、それらの実施形態のいずれかにおいて本開示の方法を行うように本開示のデバイスを適合させることができる。
【0014】
明示的には説明されていないが、方法又は対応する信号、デバイス、及びコンピュータ可読記憶媒体に関する本実施形態は、いかなる組み合わせにおいても下部組み合わせにおいても採用することができる。
【図面の簡単な説明】
【0015】
図1】一般的な標準符号化方式を示す。
図2】一般的な標準復号方式を示す。
図3】記載の実施形態を実装することのできる典型的なプロセッサ配置を示す。
図4】本開示の符号化方法の少なくともいくつかの実施形態を使用するDNN全体の符号化アーキテクチャを示す。
図5】本開示の符号化方法の少なくともいくつかの実施形態を使用するDNN全体の復号アーキテクチャを示す。
図6】本開示のある実施形態による、ビットストリーム中の符号化されたDNNのテンソルを復号するための方法の一例を示す。
図7】本開示のある実施形態による、ビットストリーム中のDNNのテンソルを符号化するための方法の一例を示す。
図8】ある実施形態による、ディープニューラルネットワークの少なくとも1つの層の第1のテンソルを表すデータを含むビットストリームの一部の一例を示す。
【0016】
図面が実施形態例を示すものであり、本開示の実施形態が図示の実施形態に限定されないということに留意されたい。
【発明を実施するための形態】
【0017】
多くの技術分野は、大容量のデータのコンピュータ手段による処理を伴い得る。このような処理は、例えばこのようなデータの少なくとも一部の格納又は変換のためにデータ圧縮及び/又はデータ解凍を伴い得る。大量のデータを含むストリームの圧縮及び/又は解凍の例は、ビデオ処理技術分野で又はディープラーニング技法を伴う技術分野で確認することができる。
【0018】
以下では、限定ではなく例示となるものを示す目的で、ディープニューラルネットワーク(DNN)に結び付けて本開示の実施形態について詳述する。しかしながら本開示が、ビデオ処理技術分野におけるような、他の大量のデータの圧縮/解凍にも適用することができるということは明らかである。例えば、少なくとも1つの画像からディープラーニングアルゴリズムにより得られたテンソルの圧縮/解凍に本開示を適用することができる。
【0019】
ディープニューラルネットワーク(DNN)は、マルチメディア処理、コンピュータビジョン、音声認識、自然言語処理などの多様な領域における技術パフォーマンス状態を呈している。このパフォーマンスはどう見ても、DNNがしばしば数百万、ときには数十憶にも上る大量のパラメータを持つ傾向にあることから、膨大な計算コストを費やす可能性がある。
【0020】
これにより、例えば、法外に高い推論複雑性につながる可能性がある。簡単に言えば、推論とは、例えばその分類の観点からは、入力データを処理するように訓練された時点のDNNの展開である。推論複雑性は、推論対象の入力データに訓練されたDNNを適用する計算コストと定義される場合がある。推論複雑性は、推論対象のテストデータに訓練されたDNNを適用する計算コストと定義あれる場合がある。
【0021】
したがって、この高い推論複雑性は、ハードウェアリソース及び/又はソフトウェアリソースが限られた電子デバイスを伴う環境において、例えば、バッテリサイズ、限られた計算能力、及びメモリ容量のようなリソース制限があるモバイルデバイス又は組み込みデバイスを伴う環境においてDNNを使用する際の重大な課題となることがある。
【0022】
ディープニューラルネットワークは、いくつかの層で構成されている。層は、例えばDNNの訓練中に得ることができるパラメータ集合に関連付けられる。これらのパラメータ(重み及び/又はバイアスのような)は、多次元配列(本明細書では「テンソル」とも称される)として格納される。以下では、簡略化する目的で、「行列」という用語は、パラメータ集合(例えば、所与の層のパラメータ)を示すために使用されることがある。しかしながら、本開示の方法のいくつかの実施形態は、通常、4Dテンソルのパラメータを含む2D畳み込み層などの2次元を超える次元のテンソルのパラメータにも適用することができる、ということを理解すべきである。DNNの膨大なパラメータでは、分散環境におけるDNN(又はDNNを含むソリューション)の展開に広い帯域を必要とする場合がある。
【0023】
本開示の少なくともいくつかの実施形態は、少なくとも1つのDNN(例えば、事前訓練されたDNN)の少なくともいくつかのパラメータの圧縮及び/又は解凍(復号)に当てはまる。実際には、圧縮により、少なくとも1つのDNNのパラメータの送信及び/又は格納を容易にすることができる。より正確には、本開示の少なくともいくつかの実施形態は、少なくとも1つのディープニューラルネットワークの少なくとも1つの層に関連付けられる少なくとも1つのテンソルのパラメータの圧縮に当てはまる。
【0024】
本開示の実施形態に依存して、層(又は副層)は、異なるタイプのものとすることができる。例えば、いくつかの実施形態では、少なくとも1つの層の全ては、畳み込み層、若しくは完全コネクタ層であり得るか、又は少なくとも1つの層は、少なくとも1つの畳み込み層及び/若しくは少なくとも1つの完全コネクタ層で構成され得る。
【0025】
本開示のいくつかの実施形態は、より具体的には、例えば圧縮の効率を改善するように、少なくとも1つのテンソルの解凍を含むか又は少なくとも含み得る圧縮ソリューションに関し、かつ/又は、少なくとも1つのテンソルの復元を含むか又は少なくとも含み得る復号ソリューションに関する。分解された少なくとも1つのテンソルは、例えば、1つ以上のDNNの圧縮される1つ以上の層の少なくとも1つのテンソルである場合がある。復元された少なくとも1つのテンソルは、例えば、1つ以上のDNNの圧縮される1つ以上の層の分解されている少なくとも1つのテンソルと同じ形の少なくとも1つのテンソルである場合がある。
【0026】
本開示のいくつかの実施形態により、テンソルの分解が、下位(LR:Low Rank)の技法及び/又は下位置換(LDR:Low Displacement Rank)技法を使用して得ることができる。
【0027】
テンソル分解を使用して、大きなテンソル重みを圧縮すると、少なくとも2つのより小さなテンソルが作り出され、更に圧縮され、量子化され、エントロピコード化され、ビットストリーム内に格納されるか又は送信される。
【0028】
非限定的な例として、非標準化技術において適用できる実施形態もあれば、以下では、より簡単にMPEG NNRと示されるマルチメディアコンテンツ記述・分析の際のニューラルネットワークの圧縮表現に関係する、次に来るISO/MPEG7規格のような、DNN圧縮/解凍に対する規格の面において使用できる実施形態もある。
【0029】
本開示の少なくともいくつかの実施形態では、テンソルを分解し、複数の復号されたテンソルからテンソルを復元するために、シンタックス構造とともにシンタックス機構も提案する。
【0030】
より正確には、いくつかの実施形態により、テンソル分解を使用して、大きなテンソル重みを圧縮すると、少なくとも2つのより小さなテンソルを作り出すことができる(また、量子化に入力することができ、量子化の出力のうちの少なくともいくつかが例えば符号化である)。
【0031】
例えば、分解が下位(LR)に基づく例示的な実施形態では、下位近似は、重みの元の行列を積として表すことができる。
【0032】
【数1】
ここで、Gは、m×r行列であり、Hは、n×r行列であり、これは特異値分解(Single Value Decomposition、SVD)から導出することができる。
【0033】
デコーダにおいて、この圧縮技法を使用する際、2つの選択肢を可能性として受け入れることができ、
-復号されたモデルの推論のデバイス/実装形態のいずれかがこのような分解に対応する。その場合、テンソルG及びテンソルHをそのまま出力することができる。
-又は、元のテンソル形の元のグラフが推論エンジンにより必要とされる。その場合、復元を行う必要がある(例えば、デコーダによって)。
【0034】
本開示の少なくともいくつかの実施形態では、その元の形状でテンソルを復元する際の条件とともに機構も可能にするためのシンタックスを提供する。実際には、発明者は、例えばモデルの復元の時点でデコーダにおいて、テンソルの分解によって得られるそのテンソルからのテンソルの元の形状を復元するためのソリューションをまだ何も提案していないことに賢明にも気付いている。
【0035】
例えば、MPEG NNRの現在の使用ドラフトでは、現在の仮定が、元のテンソルを分解することから生ずるテンソルがデコーダによって出力される、というものである。
【0036】
これは、上で説明したような推論エンジンによって元のテンソル形が必要とされる際に問題となる可能性がある。
【0037】
本開示の発明の少なくともいくつかの実施形態は、この問題に対処する助けとなる。注目すべきは、本明細書に記載の本開示の方法の実施形態が多くの圧縮ソリューションにおいて実施することができ、実施形態のうちの少なくともいくつかが、例えばISO/MPEG7によって進展しているいくつかのドラフト規格のような、いくつかの圧縮規格の面で適用することができるとしても、具体的な規格に限定されないということである。
【0038】
上の式(1)で分かるように、テンソルWが2D行列である例示的な実施形態では、G及びHを復号した後、元の行列形を得るために、2つの行列の行列乗算を行う必要がある。
【0039】
これまでの例示的な実施形態では、元のテンソルにLR分解を使用することができる。しかし、実施形態によって、又は1つ以上のDNNのテンソルによって、行われる分解が異なることがある。例えば、畳み込み層又は深さ方向の畳み込み層のテンソルの場合、LR/LDR方法を可能にする、2次元行列にテンソルを作り直すことができる。
【0040】
この開示では、テンソルを復元するのを可能にするために必要なシンタックス及びプロセスについて述べる。
【0041】
特に、例えば、1つ以上のテンソル単位から元のテンソルを復元するように適合された本開示のいくつかの実施形態では、復元を行うために、例えば、Wの復元を行うために予め復号したG行列及び/又はH行列(例示的な使用事例では、式(1)に結び付けて上に紹介した)のような予め復元したテンソルを保つテンソルバッファを伴う機構を提案する。
【0042】
以下では、複数のすでに復号したテンソルをメモリに含むことができる復号されたテンソルバッファ(Decoded Tensor Buffer、DTB)を紹介する。例えば、これまでの例示的な実施形態では、復号されたテンソルG及びHがバッファに加えられ、それらは、所与の層に対して復号される2つのテンソル(G及びH)の最初のものになる。より正確には、所与の層に対して、テンソルH(それぞれテンソルG)がまだ復号されていないとき、復号されたテンソルG(それぞれ復号されたテンソルH)が、バッファに加えられる。
【0043】
それにより、同じ層において対応するテンソルが復号されると、元のテンソルの形を有するテンソルの復元を引き起こすことができ、DTBに保存されたテンソルによって占められたメモリを解放することができる。
【0044】
本開示の少なくともいくつかの実施形態において、元のテンソルがいくつかのテンソルに分解されると、いくつかの結果としてのテンソルは、別々に符号化され、復号され得る(言い換えれば、他と無関係に)。
【0045】
図4図5には、本開示の少なくともいくつかの実施形態で使用することができる少なくとも1つのDNNの少なくとも1つの層の少なくとも1つのテンソルのパラメータを符号化/復号する際の一般的なプロセスをそれぞれ高水準で示す。図4の方法は、例えば、符号化デバイス(すなわちエンコーダ)において行うことができ、図5の方法は、例えば復号デバイス(すなわちデコーダ)において行うことができる。
【0046】
図4によって示されるように、エンコーダにおいて、方法は、圧縮されることになる層に関連付けられたテンソル(本明細書では「元のテンソル」ともしている)のパラメータを得る401(又は獲得する)ことを含むことができる。この得ることは、例えば、ストレージユニットから少なくとも1つのテンソルのパラメータを取り出すことによっても、通信インターフェースを介してデータソースからパラメータを受信することによっても行うことができる。
【0047】
いくつかの実施形態では、それぞれの得られたテンソルを分解することができる。
【0048】
他の実施形態では、図4の実施形態に見られるように、分解は、条件付きで行うことができる。実際には、一例として、分解は、適用可能ではない場合がある。テンソル分解は、例えば1D配列であるバイアスに対して行うことはできない。また、いくつかの実施形態では、分解がテンソルに適用されるかどうかを判定するために、他の要因(元のテンソルの符号化コストのような)も考慮することができる。例えば、テンソルに、かつ/又はテンソルの層に、又はテンソルの層を含む1つ以上の層に、モードを関連付けることができる(403)。モードの少なくとも1つの第1の値によって、適用可能な場合、テンソルに対して行われる分解を表すことができ、かつ/又はモードの少なくとも1つの第2の値によって、分解が適用されずに処理されるテンソルを表すことができる。
【0049】
図4の例示的な実施形態では、方法は、分解が入力テンソルに適用可能であるかどうかをテストすること(402)と、テンソルが分解され得る場合(402)、分解モード(例えば、モードの第1の値)が選択されるかどうかをテストすること(403)と、を含むことができる。
【0050】
分解モードがエンコーダによって選択される場合(404)、方法は、テンソルを分解し、結果として生じるテンソルを符号化すること(例えば、テンソルGを符号化し(405)、テンソルHを符号化すること(407))を含むことができる。
【0051】
図4の例示的な使用事例では、分解が選ばれない(分解モードが選択されない)又は適用可能でない場合、入力テンソルを直に符号化することができる(406)。
【0052】
符号化の出力を使用して、ビットストリームを構成する。
【0053】
いくつかの入力テンソルに対して、例えば、量子化するかつ/又は符号化するモデル内の全てのテンソルに対して、このプロセスを繰り返すことができる(408)。
【0054】
いくつかの実施形態では、この方法は、符号化に先立ち、ニューラルネットワークに特有の冗長性を活かすことによって、ニューラルネットワークのパラメータ(すなわち重み又はバイアス)数を低減することを更に含むことができる。例えば、DNNの少なくとも1つの層のパラメータの元のテンソルの分解から生じたDNN又はテンソルの少なくとも1つの層のパラメータの元のテンソルを疎らにすることができる。この低減することは、任意選択的であり、いくつかの実施形態では、かつ/又はいくつかの層のいくつかのテンソルに対して、この低減することを省略することができる。
【0055】
符号化は、少なくとも1つのテンソル(例えば、ニューラルネットワークの層のテンソルの分解によって出力されるテンソル、又は分解が行われない場合のテンソルそのもの)のパラメータ(重みやバイアスのような)を量子化することと、量子化された情報のロスレスエントロピーコーディングにより、量子化情報をより小さなビット数で表すことと、を含むことができる。
【0056】
いくつかの実施形態では、DNNのいくつかの層が符号化されることになると、符号化される最後の層のパラメータの符号化の終了まで、層ごとにこの方法を繰り返し行うことができる。
【0057】
いくつかの実施形態では、図4に示す実施形態に見られるように、同じ層のテンソルを順次符号化する必要なく、このテンソルを並行して符号化するか、又他の層の他のテンソル間に挿入することができる。実際には、符号化は、同じ層の重みとバイアスとが、同じテンソル単位又は異なるテンソル単位に含まれる、テンソルレベルの単位に基づくことがある(例えば、次に来るMPEG NRRドラフトに見られるように)。
【0058】
図5には、ビットストリームから、例えば、図4に沿ってすでに説明した符号化方法によって得られたビットストリームから復号されたテンソルに対して復号側で行われる対応する処理を示す。図5の例示的な実施形態において、テンソルは、例えば、その単位ヘッダ及び/又は層パラメータ集合を使用して、まず解析され、特定される(501)。例えば、以下でより詳細に提示する例示的なシンタックスでは、正しい層パラメータ集合を指す、単位ヘッダにおける_lps_layer_parameter_set_idによって参照される関連付けられた高水準シンタックスを使用することができる。図5によれば、テンソルペイロードを復号することができる(502)。分解がLRタイプ又はLDRタイプである図5の例示的な実施形態では、復号されたテンソルがタイプTENSOR_G又はTENSOR_H(503)(図ではそれぞれ、G、Hと示される)である場合、ステップ505~508を行うことができる(以下を参照)。そうではなく、最後に復号されたテンソルでない場合(509)、ビットストリームから次のテンソルにアクセスすることができる。そのときのテンソルがタイプTENSOR_G又はTENSOR_Hである場合、同じ層に属する対応するテンソルが復号されたテンソルバッファにおいて調べられる。これは、そのときのテンソルと同じ層を指定する識別子(基準識別子「ref_id」のような)に関連付けられたテンソルを探すことによって行うことができる。以下に紹介する例示的なシンタックスでは、このような基準識別子(例えば、「ref_id」)は、トポロジストレージフォーマット、例えば、ONNX又はNNEFによって決まる一意に識別可能なデータ構造にテンソル単位を写像する、テンソル単位ヘッダからのシンタックス要素である場合がある。
【0059】
対応するテンソルがある場合、それはDTBからフェッチされ(505)、そのときのテンソルとフェッチされた(507)テンソルの両方を使用して、元のテンソル(すなわち、ステップ401で得られたテンソル)の形(508)でテンソルを復元する。注目すべきは、多くの実施形態において、元のテンソルと同じ次元を有する一方、復元されたテンソルが元のテンソルとは異なる、ということである。
【0060】
対応するテンソルがDTBにない場合、方法500は、それ以降の使用にそのときのテンソルをDTBに格納することを含むことができる(506)。
【0061】
いずれの場合にも(言い換えれば、そのときのテンソル単位を復号した後に)((ステップ509)、この方法は、そのときのテンソルがビットストリームにおける最後であるかどうかを確認すること(509)を更に含むことができ、この方法では、最後である場合にはモデルを出力し、そうでなければ、次のテンソル単位にアクセスする。
【0062】
デコーダにおいて、図5に示す通り、復号には、いくつかの逆演算が含まれる場合がある(エンコーダ側の演算に対し)。例えば、復号方法には、パラメータのメタデータ及び/又は量子化された形式を引き出す入力ビンの解析/エントロピ復号510が含まれることがある。それにより、逆量子化520を適用して、テンソルのパラメータの最終値を導出することができる。
【0063】
いくつかのテンソル(例えば、いくつかの層の)復号されることになるとき、いくつかのテンソルの全てが復号されるまで、方法500を行うことができる。
【0064】
本開示のいくつかの実施形態には、エンコーダとデコーダとの間でシグナリング情報を送信/受信することが含まれる場合がある。このシグナリング情報は、本開示では、例示的、非限定的なシンタックスに結び付けて提示する。この例示的なシンタックスは、説明の便宜上、例示的なMPEG NNRドラフト規格(N19225-Working Draft4 of Compression of neural networks for multimedia content description and analysisのような>>に使用されるシンタックスに主に基づく。国際標準化機構ISO/IEC JTC1/SC29/WG11,apr.2020。
【0065】
以下のシンタックスは、本開示を限定するものではない単なる例示的なシンタックスである。例えば、シンタックス要素に使用されるビット数は、例示的な実施形態である。理解しやすいように、例示的なシンタックスでは、本開示の実施形態による以下の識別子及び節には、MPEG-NNRの現在の例示的なワーキングドラフトとの整合が保たれているセクション及び表の番号が付いている。
【0066】
この例示的なシンタックスでは、以下のテンソル演算を加えることができる:
array_name_1 とarray_name_2との行列積を返す、MatrixProd(array_name_1,array_name_2[])。
【0067】
そのデータを変えることなく、指定されたtensor_dimension[]で作り直したtensor array_name[]を返す、TensorReshape(array_name[],tensor_dimension[])。
【0068】
また、以下の用語の定義を提供する。
【0069】
ビン:1ビットのビン列。
【0070】
二値化:シンタックス要素の全ての考えられる値に対するビン列集合。
【0071】
二値化プロセス:ビン列集合へのシンタックス要素の全ての考えられる値一意の写像プロセス。
【0072】
ビン列:シンタックス要素の二値化からのシンタックス要素の値の中間二値表現。
【0073】
ビットストリーム:1つ以上のコード化されたニューラルネットワークモデルを形成するコード化されたユニット及び関連データの表現を成すビットシーケンス
復号されたテンソルバッファ(Decoded Tensor Buffer、DTB):基準として復号されたテンソル/単位を保持するバッファ。
【0074】
ビットストリームの少なくとも一部を復号するとき(単に「復号プロセス」と言われる)、例示的な詳細なシンタックスを用いて以下の条件を適用することができる。
・NNRビットストリームのNNR単位を復号するために必要とされる情報は、NNRビットストリームの一部としてシグナリングすることができる。このような情報がNNRビットストリームの一部でない場合、それは、他の手段(例えば、復号に必要とされるが、NNRビットストリームにおいてシグナリング又は搬送されない、帯域外トポロジ情報又はパラメータ)によって、復号プロセスに提供され得る。
・復号プロセスは、タイプNNR_STRのNNR単位で開始することができる(以下の表を参照)。NNR_STR単位の受信により、デコーダは、その内部状態をリセットし、NNRビットストリームを受信する準備をすることができる。先行するNNR単位の存在及び濃度は、いくつかの従属節及び/又は付属書類において指定することができる。
・バッファDTBは、復号処理の開始時に空に設定される(DTBフルネスが0に等しく設定される)。
【0075】
本明細書で詳述される例示的なシンタックスでは、以下の表では、異なる単位タイプを参照する。上述のNNR_STRは、NNRビットストリームの開始単位を指定する。
【0076】
【表1】
【0077】
本開示のいくつかの実施形態により、テンソル分解の場合にNNRテンソルタイプを指定することを提案する。例えば、例示的なMPEG NNRドラフト規格に結び付けて、以下の例示的なシンタックスを使用することができる。
【0078】
6.2 NNR分解識別子
本明細書で詳述される例示的なシンタックスを用いて、表では、テンソル分解の場合のNNRテンソルタイプを指定することができる。
【0079】
【表2】
【0080】
テンソル出力
デコーダ側では、単位ヘッダ(例えば、例示的なシンタックスを有するnnr_compressed_data_unit_header)及び圧縮ペイロードを復号した後、NNR圧縮ペイロードごとにテンソル処理を1回行うことができる。
【0081】
詳述される例示的な実施形態では、そのときのテンソルの処理の出力は、以下のように指定することができる。
-output_original_graphが0に等しい場合、又はlps_tensor_decomposition_flagが0に場合、又はnnr_decomposition_tensor_typeが「TENSOR_OTHER」に等しい場合、そのときのテンソルが出力される。
-そうではなく、DTBにおける同じ層を指定する識別子(例えば、ref_id)を有するテンソルがない場合、そのときのテンソルをDTBに加える。出力されるテンソルがない。
-そうでない場合(そのときのnnr_decomposition_tensor_typeが、タイプ「TENSOR_G」又は「TENSOR_H」のテンソルを指定し、DTBにおける同じ層を指定する識別子(例えば、ref_id)を有するテンソルが存在する)、それぞれ、タイプ「TENSOR_G」又は「TENSOR_H」のそのときのテンソルも、それぞれ、タイプ「TENSOR_H」又は「TENSOR_G」のDTBにおけるその対応するテンソルとも渡して、上で指定されるように、その元の形状でテンソルの復元を呼び出す。後者は、DTBから削除される。戻されたテンソルが出力される。
【0082】
「元の」形でテンソルの復元
元のテンソルの分解からもたらされテンソルの全てを復号した後、元のテンソルの形を有するテンソルの復元を行うことができる。
【0083】
例えば、元のテンソルがテンソルG及びテンソルHに分解されている実施形態では、上に説明したように、対応するテンソル(例えば、同じ層を指定する識別子(例えば、ref_id)を有するテンソル)がDTBにある場合、テンソル(例えば、タイプ「TENSOR_G」又は「TENSOR_H」のテンソル)を復号した後に、復元を行うことができる。
【0084】
本明細書で説明する例示的なシンタックスでは、この復元への入力としては、以下を挙げることができる。
-タイプ「TENSOR_H」のテンソルtensor_h[]
-対応するnnr_compressed_data_unit_headerからのその復号されたシンタックスtensor_dimensionsによって定義される、tensor_h[]の次元に対応する配列tensor_dimensions_h[]
-タイプ「TENSOR_G」のテンソルtensor_g[]。
-その復号されたシンタックスtensor_dimensionsよって定義される、tensor_g[]の次元に対応する配列tensor_dimensions_g[]
-復号されたばかりのテンソルヘッダの層パラメータ集合からの値tensor_reconstruction_mode及びtensor_reconstruction_additional_info。
【0085】
説明される例示的な実施形態では、この復元の出力は、元のテンソルと同じ形(本明細書では元の形状とも呼ばれる)を有するそのときのテンソルarray_wである。本開示のいくつかの実施形態によれば、そのときのテンソルarray_wは、テンソルの復元モードを考慮することによってコンピュータで計算することができる。本明細書で詳述される例示的なシンタックスでは、ビットストリームにおけるテンソルの復元モードを指定するために、以下の表を使用することができる。
【0086】
【表3】
【0087】
そのときのテンソルarray_wは、以下のようにコンピュータで計算することができる。
【0088】
【表4】
【0089】
上位シンタックスに関し、例示的なドラフト規格MPEG-NNRでは、以下のように、例示的なドラフト規格のいくつかの表にいくつかの要素を加えることができる。
【0090】
【表5】
ここで、
・使用中の圧縮単位に対し、nnr_layer_parameter_set_id により、例えばlps_layer_parameter_set_id の値を指定する。unit_layer_parameter_set_idの値は、例えば両端を含む0~63の範囲であることがある。
・テンソル分解の場合、nnr_decomposition_tensor_typeにより、例えば上で定義したテンソルタイプを指定する。
【0091】
【表6】
ここで、
・mps_model_parameter_set_idにより、他のシンタックス要素による基準に対してMPSに識別子を提供する。mps_model_parameter_set_idの値は、0~15の両端を含む範囲に設定される場合がある。
・1に等しいdecomposition_flagにより、テンソル分解がモデルの少なくとも少なくとも1つの層の少なくとも1つのテンソルに適用されたことを指定する。
・1に等しいoutput_original_graphにより、テンソル分解が使用されるとき、デコーダがその元の形状にテンソルの重みを出力することを指定する。
・mps_max_dec_tensor_buffering_minus1+1により、NNRモデルに対し復号されたテンソルバッファの最大限必要サイズを、テンソルストレージバッファ単位で指定する。mps_max_dec_tensor_buffering_minus1の値は、0~63の範囲に設定することができる。
【0092】
【表7】
ここで、
・lps_model_parameter_set_idにより、アクティブLPSのmps_model_parameter_set_id を指定する。。lps_model_parameter_set_idの値は、0~15の両端を含む範囲に設定することができる。
・lps_layer_parameter_set_idにより、他のシンタックス要素による基準に対してLPSの識別子を提供する。lps_layer_parameter_set_idの値は、両端を含む0~63の範囲に設定することができる。
・1に等しいlps_tensor_decomposition_flagにより、テンソル分解がこの層に使用される、ということを指定する。
・tensor_reconstruction_modeにより、上で定義した通り、分解され、復号されたテンソルから、そのときのテンソルをその元の形状で復元するために使用されるモードを指定する。
・tensor_reconstruction_additional_info_countsにより、分解されたテンソルの復元を行うために必要とされ得るパラメータ数を指定する。
・tensor_reconstruction_additional_info[i]により、分解されたテンソルを復元するために必要とされ得るパラメータ配列を指定する。(例えば、深さ方向の畳み込み層の場合、tensor_reconstruction_additional_info_countsを1に設定することができ、tensor_reconstruction__additional_info[0]により、畳み込みのカーネルサイズを指定する)。
【0093】
変形形態:
いくつかの例示的な実施形態を、上記で詳述してきた。本開示はまた、上に述べた実施形態の多くの変形形態を包含する。
例えば、本開示のいくつかの実施形態は、以下の変形形態に関係することができる。
【0094】
第1の変形形態:output_original_graphのないバージョン
第1の変形形態により、変数output_original_graph(上で紹介した)を省略することができる。この変形形態では、復元は、topology_storage_format変数に左右される。それにより、上で紹介した例示的なNNR表に関して、表「NNRモデルパラメータセットペイロードシンタックス」を修正することができる(変数output_original_graphは、必要とされないため)。
【0095】
MPEG NNR規格に結び付けて、本明細書に詳述される例示的なシンタックスでは、これは、以下の表に導く。
【0096】
【表8】
【0097】
復元方法に対して、以下が適用される。
テンソル出力
単位ヘッダnnr_compressed_data_unit_header及び圧縮ペイロードの復号後に、NNR圧縮ペイロードごとに、このプロセスを1回呼び出すことができる。
【0098】
そのときのテンソルの出力は、以下のように指定することができる。
-If lps_tensor_decomposition_flagが0に等しいか、又はnnr_decomposition_tensor_typeが「TENSOR_OTHER」に等しいか、又はtopology_storage_formatにより、分解行列を使用して推論に対応するトポロジを指定する場合、そのときのテンソルが出力される。
-そうではなく、DTBに同じ「ref_id」を有するテンソルがない場合、そのときのテンソルをその「ref_id」を有するDTBに加える。出力されるテンソルは何もない。
-そうでなければ(そのときのnnr_decomposition_tensor_typeにより、タイプ「TENSOR_G」又は「TENSOR_H」のテンソルを指定し、DTBに同じ「ref_id」を有するテンソルが存在する)、それぞれ、タイプ「TENSOR_G」又は「TENSOR_H」のそのときのテンソルも、それぞれ、タイプ「TENSOR_H」又は「TENSOR_G」のDTBにおけるその対応するテンソルも渡して、上で指定されるように、その元の形状でテンソルの復元を呼び出す。後者は、DTBから削除される。戻されたテンソルが出力される。
【0099】
本明細書で詳述される例示的なシンタックスを用いると、topology_storage_format変数が、以下に示すように定義され得る(例えばセクション8.3.2.3.4において)。
【0100】
8.3.2.3.4NNRトポロジ単位ヘッダセマンティクス
topology_storage_formatにより、以下に指定されるように、格納されたニューラルネットワークトポロジ情報のフォーマットを指定する。
【0101】
【表9】
【0102】
第2の変形形態:分解実施マップ
第2の変形形態では、分解プロセスの実施に関する情報をシグナリングにおいて提供することができる。例えば、このような情報は、分解されたテンソルとそれらの元のバージョンとの間の異なる平均二乗誤差(MSE)値と、結果としてのニューラルネットワーク(NN:Neural Network)推論精度との写像を表すことができる。
【0103】
結果としての精度は、NNの出力の異なる態様又は特性に対して別個に提供することができる。分類子NNの場合、全てのクラスを考慮する全体的な精度に加えて、各クラスに対して別々の精度に各MSE値(例えば、閾値)を写像することができる。いくつかの実施形態では、ニューラルネットワーク出力順序、すなわち、訓練中に指定された順序に基づいて、クラスを順序付けることができる。
【0104】
MPEG NNR規格に結び付けて、本明細書で詳述される例示的なシンタックスでは、以下の表を使用することができる。
【0105】
【表10】
ここで、Decomposition_performance_map()は、例えば、以下のように定義され得る。
【0106】
【表11】
ここで、
・decomposition_performance_map()により、分解されたテンソルとその元のバージョンとの間の異なる平均二乗誤差(MSE)閾値と、結果としてのNN推論精度との写像を指定する。結果としての精度は、NNの出力の異なる態様又は特性に対して別々に与えられる。分類子NNの場合、全てのクラスを考慮する全体的な精度に加えて、クラスごとに別々の精度に各MSE閾値が写像される。クラスは、ニューラルネットワーク出力順序、すなわち、訓練中に指定された順序に基づいて順序付けられる。
・count_thresholdsは、分解MSE閾値の数を指定する。
・Decomposition_thresholdは、重みの異なるテンソルのランクを導出するために適用されるMSE閾値配列を指定する。
・nn_accuracyは、NNの全体的な精度(例えば、全てのクラスを考慮することによる分類精度)を指定する。
・nn_reduction_ratio[i]は、モデル全体のテンソル分解後のパラメータ総数と、元のモデルにおけるパラメータ数との比を指定する。
・count_classesは、各分解閾値に対して別々の精度が与えられるクラス数を指定する。
・nn_class_accuracyは、特定の分解閾値が適用されるときの特定のクラスに対し精度配列を指定する。
【0107】
第3の変形形態:例:タイプNNR_PT_BLOCKの単位の場合の復元
説明を容易にするために、例示的なMPEG NNRドラフト規格(N19225-Working Draft4 of Compression of neural networks for multimedia content description and analysis)。国際標準化機構ISO/IEC JTC1/SC29/WG11,apr.2020のような)を使用して、この第3の変形形態について詳述する。このような例示的なシンタックスでは、単位内に複数のパラメータ、例えば、任意選択的に分解され得る重みテンソルパラメータ、バイアスパラメータ、バッチノームパラメータなどの複数のパラメータがあることがある。NNR_PT_BLOCK単位の面では、重みの出力テンソルは、例えば外部トポロジ情報を通して送信され得るか、又はデコーダが知ることができる元の形状に準拠しなければならない。テンソル分解がエンコーダにおいて適用された場合、テンソルの復元は、デコーダにおいて行われる。
【0108】
この変形形態では、復元のプロセスと、それぞれ、デコーダRecWeightG、RecWeightHとすることもある、分解されたテンソルG、Hのサイズを指定するための必要なシンタックスとを簡略化することを提案する。
【0109】
デコーダは、例えば、層が畳み込み(CONV)又は深さ方向畳み込み(DWCONV)のタイプであるとき、Gテンソル及びHテンソルのサイズを導出する必要がある。したがって、本開示のいくつかの実施形態では、Gテンソル及び/又はHテンソルのサイズに関する情報を送信することを提案する。Gテンソル及び/又はHテンソルのサイズとは、テンソルの行数又は列数など、Gテンソル及び/又はHテンソルの次元のサイズを指す。
【0110】
例示的なシンタックスによれば、このような情報は、高レベルシンタックス(HLS)に、例えば圧縮データ単位ヘッダに加えることができる。例えば、例示的なシンタックス(MPEG NNRの一部のドラフトと互換性のある例示的なシンタックスのような)では、G及び/又はHのテンソルサイズ、並びにランクdecomposition_rankに関する情報は、以下のように、NNR圧縮データ単位ヘッダにおいてデコーダに送信され得る。
【0111】
【表12】
【0112】
ここで、g_number_of_rowsは、NNR単位のタイプNNR_PT_BLOCKに分解されたテンソルに対して復元が行われる場合の行列gの行数を指定する。
【0113】
この情報により、デコーダが、NNR_PT_BLOCKの場合に以下のように復元を行うことが可能になる(下位分解された重みが存在することを指定する(block_parameter_types&0x01)!=0により)。
【0114】
(block_parameter_types&0x01)!=0である場合、以下が適用される。
【0115】
[g_number_of_rows,decomposition_rank]に設定された入力変数TensorDimsを用いて整数重みテンソルの復号プロセスを呼び出すことができる。変数RecWeightGを出力変数RecParamに設定することができる。
【0116】
NNR単位のタイプNNR_PT_BLOCKに分解されたテンソルに対して復元が行われる場合の行列hの列の数h_number_of_columnsは、以下によって得ることができる。
【0117】
【数2】
【0118】
それにより、入力変数TensorDimsを[decomposition_rank,h_number_of_columns]に設定して、整数重みテンソルの復号プロセスを呼び出すことができる。変数RecWeightHは、出力変数RecPatamに設定することができる。
【0119】
変数RecWeightHは、以下のように導出することができる。
RecWeight=TensorReshape(RecWeightGRecWeightH,tensor_dimensions)
【0120】
上の例示的なシンタックスでは、変数g_number_of_rowが、ここで単位ヘッダから利用可能である。それにより、出力テンソル次元(tensor_dimensions)の次元が分かっているので、変数h_number_of_columnsを導出することができる。したがって、このような実施形態により、例えば、デコーダは、テンソルGとテンソルHとを別々に復号することにより、それらの積を作り直して、復元されたテンソルRecWeightを得ることができる。
【0121】
他の変形形態では、変数h_number_of_columnsを送信することができ(例えば、単位ヘッダから利用可能とするように、上で詳述される第3の変形形態におけるg_number_of_rowsと同様に)、g_number_of_rowsは、デコーダ側で導出される。
【0122】
更に他の変形形態では、変数g_number_of_rowsもh_number_of_columnsも送信することができ(例えば、単位ヘッダから両方が利用可能であるように、上で詳述される第3の変形形態におけるg_number_of_rowsと同様に)、これにより、例えばデコーダ側での対応する計算を回避する。
【0123】
図6では、上記のような実施形態による、テンソル分解の結果として生じるテンソルを復号するための方法600の一例を示す。ニューラルネットワークを表すコード化されたデータを含むビットストリームがデコーダに入力される。601において、元のテンソルが第1のテンソル及び第2のテンソルに分解されたかどうかが判定され、例えば、第1及び第2のテンソルは、それぞれ、下位分解から生じるGテンソル、Hテンソルである。602において、復号すべきそのときの単位が、テンソル分解から生じるテンソルを重み付けすることを含む場合、第1のテンソルのサイズがビットストリームから復号される。例えば、Gテンソルの場合、第1のテンソルのサイズは、Gテンソルの行数である。
【0124】
603において、第1のテンソルが、復号されたサイズに基づいて復号される。604において、第2のテンソルのサイズが、復号されたサイズから導出される。例えば、第2のテンソルがHテンソルである場合、第2のテンソルのサイズは、Hテンソルの列数である。605において、第2のテンソルが、導出されたサイズに基づいて復号される。606において、デコーダが、復号された第1及び第2のテンソルから分解されたテンソルを復元することができる。
【0125】
いくつかの実施形態では、ビットストリームが、第1のテンソルのサイズの代わりに第2のテンソルのサイズ、又は両方のサイズを含む。
【0126】
図7には、上記のある実施形態による、ビットストリーム中のDNNのテンソルを符号化するための方法700の一例を示す。701において、第1のテンソルが、第2のテンソル及び第3のテンソルに分解される。702において、第2のテンソルのサイズがビットストリームにおいて符号化される。703において、第2のテンソルのパラメータがビットストリームにおいて符号化される。704において、第3のテンソルのパラメータがビットストリームにおいて符号化される。変形形態では、第3のテンソルのサイズはまた、ビットストリームにおいて符号化することができる。
【0127】
図8には、上記の方法のうちのいずれか1つに従って起こされるディープニューラルネットワークの少なくとも1つの層の第1のテンソルを表すデータを含むビットストリーム800の一部の一例を示す。いくつかの実施形態では、データには、第1のテンソルが第2のテンソル及び第3のテンソルに分解されることを示す情報801と、第2のテンソル及び第3のテンソルのうちの少なくとも1つのテンソルのサイズ802と、第2のテンソル及び第3のテンソルのうちの少なくとも1つのテンソルのパラメータ803と、が含まれる。変形形態では、データには、第2のテンソル及び第3のテンソルのうちの少なくとも1つの他のテンソルのパラメータ804も含まれる。
【0128】
更なる実施形態及び情報
本出願では、ツール、特徴、実施形態、モデル、手法などを含む様々な態様について説明している。これらの態様のうちの多くは、具体的に説明され、少なくとも個々の特性を示すために、しばしば限定的に聞こえ得るように説明される。しかしながら、これは、説明を明確にするためであり、それらの態様の適用又は範囲を限定するものではない。実際には、異なる態様の全てを組み合わせ、かつ置き換えて、更なる態様を提供することができる。更に、これらの態様はまた同様に、以前の出願に記載の態様と組み合わせ、かつ置き換えすることができる。
【0129】
本出願において説明し、その可能性が受け入れられる態様は、多くの異なる形態で実装することができる。以下の図1図2、及び図3には、いくつかの実施形態を提供するが、他の実施形態が企図され、図1図2、及び図3の考察は、実装形態の広がりを限定するものではない。態様のうちの少なくとも1つは、概して、符号化及び復号(例えば、ビデオ符号化及びビデオ復号、並びに/又はDNNの少なくともいくつかの層の少なくともいくつかの重みの符号化及び復号)に関し、少なくとも1つの他の態様は、概して、起こされるか符号化されたビットストリームを送信することに関する。これらなどの態様は、方法、装置、記載の方法のいずれかに従って、データを符号化又は復号するよう求める命令を自らに格納するコンピュータ可読記憶媒体、及び/又は記載の方法のいずれかに従って起こされたビットストリームを自らに格納するコンピュータ可読記憶媒体、として実装することができる。
【0130】
本出願では、「復元された」と「復号された」という用語は、言い換え可能に使用することができ、「画素」と「サンプル」という用語も、言い換え可能に使用することができ、「画像」、「ピクチャ」、「フレーム」という用語も、言い換え可能に使用することができる。通常、必ずしもそうではないが、「復元された」という用語は、エンコーダ側で使用され、一方、「復号された」という用語は、デコーダ側で使用される。
【0131】
本出願に記載の様々な方法などの態様を使用して、図1及び図2に示すようなエンコーダ100及びデコーダ200のモジュール、例えば、イントラ予測モジュール、エントロピコーディングモジュール、及び/又は復号モジュール(160、260、145、230)を修正することができる。更に、本開示の態様は、VVC又はHEVCに限定されず、例えば、既存のものであれ将来進展するものであれ、他の規格及び勧告、またこのようないかなる規格及び勧告(VVC及びHEVCを含む)の拡張にも適用することができる。
【0132】
また、本態様は、VVC若しくはHEVC、又はビデオデータにさえも限定されず、ビデオ以外の多くの技術分野において使用され得るニューラルネットワークの少なくとも1つの層の少なくとも1つのテンソルを、それぞれ、符号化するか、復号するように適合されたエンコーダ又はデコーダに適用され得る(当然ながら、このような実施形態では、イントラ予測モジュール160のようないくつかのモジュールは、任意選択的であり得る)。
【0133】
特に断りのない限り、又は技術上除外されない限り、本出願に記載の態様は、個々に、又は組み合わせて使用することができる。
【0134】
様々な数値が、本出願において使用される(例えば、テンソル復元モード)。具体的な値は、例示目的のためであり、記載の態様は、これらの具体的な値に限定されない。
【0135】
図1には、エンコーダ100を示す。このエンコーダ100の変形形態もその可能性が受け入れられるが、以下では、分かりやすいように、必ずしも予想される全ての変形形態を説明せずに、エンコーダ100について述べる。
【0136】
符号化される前に、シーケンスが、符号化前処理(101)、例えばビデオシーケンスの場合にはカラー変換を入力カラーピクチャに適用すること(例えば、RGB4:4:4からYCbCr4:2:0への変換)、又は圧縮に対してより弾力的な信号分布を得るために入力ピクチャ成分の再写像を行う(例えば、カラー成分のうちの1つのヒストグラム等化を使用して)ことを経ることがある。また、符号化前処理は、CABACに結び付けて上で詳述される例示的な二値化として二値化を含むことができる。
【0137】
メタデータを前処理に関連付け、ビットストリームに付加することができる。
【0138】
エンコーダ100では、ビデオシーケンスの場合、以下に記載の通り、ピクチャは、エンコーダ要素によって符号化される。符号化されるピクチャは、例えば、CUという単位に分けられ(102)、処理される。各単位は、例えば、イントラモード又はインターモードのいずれを使用しても符号化される。単位がイントラモードで符号化される場合、それは、イントラ予測(160)を行う。インターモードでは、動き推定(175)及び動き補償(170)が行われる。エンコーダは、単位を符号化するために、イントラモード又はインターモードのうちの1つのどちらを使用すべきかを決定し(105)、例えば、予測モードフラグによってイントラ/インターの決定を示す。予測残差は、例えば、元の画像ブロックから予測ブロックを減算する(110)ことによって計算される。
【0139】
それにより、その予測残差が変換され(125)、量子化される(130)。
【0140】
量子化された変換係数とともに動きベクトルなどのシンタックス要素をエントロピコード化して、ビットストリームを出力する(145)。
【0141】
エンコーダでは、変換を飛ばし、量子化を非変換残差信号に直に適用することができる。エンコーダは、変換も量子化も無視することができ、すなわち、残差は、変換プロセスも量子化プロセスも適用することなく直にコード化される。
【0142】
エンコーダは、符号化されたブロックを復号化して、更なる予測に基準を提供する。量子化された変換係数を逆量子化し(140)、逆変換し(150)、予測残差を復号する。例えば、ビデオシーケンスの場合、復号された予測残差と予測ブロックとを組み合わせること(155)により、画像ブロックが復元される。例えば、非ブロック化/SAO(Sample Adaptive Offset)(サンプル適応オフセット)フィルタリングを行って、符号化アーチファクトを低減するために、復元されたピクチャにループ内フィルタ(165)を適用する。フィルタ処理された画像は、基準ピクチャバッファ(180)に格納される。
【0143】
図2には、デコーダ200のブロック図を示す。デコーダ200では、以下に説明する通り、ビットストリームが、デコーダ要素によって復号される。デコーダ200では、図1に記載の通り、通常、符号化パスとはほとんど逆の復号パスを行う。エンコーダ100もまた、通常、データを符号化する一環として復号を行う。
【0144】
具体的には、デコーダ200の入力としては、ビットストリームが挙げられ、これは、エンコーダ100によって起こされ得る。ビットストリームは、まず、変換係数、動きベクトルなどのコード化された情報を得るようにエントロピ復号される(230)。
【0145】
ビデオビットストリームの場合、ピクチャ分割情報が、ピクチャがどのように分割されるかを示す。それにより、デコーダは、復号されたピクチャ分割情報に従ってピクチャを分けることができる(235)。予測残差を復号するために、変換係数が逆量子化され(240)、逆変換される(250)。復号された予測残差と予測ブロックとを組み合わせて(255)、画像ブロックを復元する。イントラ予測(260)又は動き補償予測(すなわち、インター予測)(275)から、予測ブロックを得ることができる(270)。復元された画像にループ内フィルタ(265)が適用される。フィルタ処理された画像は、基準ピクチャバッファ(280)に格納される。
【0146】
復号された要素(ピクチャ重み又は層重みのような)は、復号後処理(285)を更に経ることがあり、例えば、復号された画像の場合、逆カラー変換(例えば、YCbCr4:2:0からRGB4:4:4への変換)、又は符号化前処理(101)において行われた再写像プロセスの逆を行う逆再写像を更に経ることがある。復号後処理では、符号化前処理において導出され、ビットストリームにおいてシグナリングされたメタデータを使用することができる。
【0147】
図3には、様々な態様及び実施形態が実装されているシステムの一例のブロック図を示す。システム1000は、以下に記載の様々な構成要素を含むデバイスとして具体化することができ、本明細書に記載の態様のうちの1つ以上を行うように構成されている。このようなデバイスの例としては、パーソナルコンピュータ、ラップトップコンピュータ、スマートフォン、タブレットコンピュータ、デジタルマルチメディアセットトップボックス、デジタルテレビ受信機、パーソナルビデオ録画システム、接続型家電、及びサーバなどの様々な電子デバイスが挙げられるが、これらに限定されない。システム1000の要素は、単独で又は組み合わせて、1つの集積回路(Integrated Circui、IC)、複数のIC、及び/又は別個の構成要素において具体化することができる。例えば、少なくとも1つの実施形態において、システム1000の処理要素及びエンコーダ要素/デコーダ要素は、複数のIC及び/又は個別の構成要素にわたって分散している。様々な実施形態において、システム1000は、例えば、通信バスを介して又は専用の入力ポート及び/若しくは出力ポートを通して、1つ以上の他のシステム又は他の電子デバイスに通信可能に結合されている。様々な実施形態において、システム1000は、本明細書に記載の態様のうちの1つ以上を実施するように構成されている。
【0148】
システム1000は、例えば、本明細書に記載の様々な態様を実施するように求める、それに読み込まれた命令を実行するように構成された少なくとも1つのプロセッサ1010を含む。プロセッサ1010は、当該技術分野において既知である、埋め込みメモリ、入出力インターフェース、及び様々な他の回路を含むことができる。システム1000は、少なくとも1つのメモリ1020(例えば、揮発性メモリデバイス及び/又は不揮発性メモリデバイス)を含む。システム1000は、記憶デバイス1040を含み、これには、不揮発性メモリ及び/又は揮発性メモリを挙げることができ、これらのメモリとしては、電気的消去可能プログラマブル読み取り専用メモリ(EEPROM:Electrically Erasable Programmable Read-Only Memory)、読み取り専用メモリ(ROM:Read Only Memory)、プログラマブル読み取り専用メモリ(PROM:Programmable Read-Only Memory)、ランダムアクセスメモリ(RAM:Random Access Memory)、ダイナミックランダムアクセスメモリ(DRAM:Dynamic Random-Access Memory)、スタティックランダムアクセスメモリ(SRAM:Static Random Access Memory)、フラッシュ、磁気ディスクドライブ、及び/又は光ディスクドライブが挙げられるが、これらに限定されない。記憶デバイス1040としては、非限定的な例として、内部記憶デバイス、取り付け式記憶デバイス(取り外し可能記憶デバイス及び取り外し不可能記憶デバイスを含む)、及び/又はネットワークアクセス可能記憶デバイスを挙げることができる。
【0149】
システム1000は、例えば、符号化されたデータストリーム又は復号されたデータストリーム(少なくとも1つのDNNの少なくとも1つの層の少なくとも1つの重みを表すビデオストリーム及び/又はストリームなど)を提供するようにデータを処理するように構成されたエンコーダ/デコーダモジュール1030を含み、エンコーダ/デコーダモジュール1030は、それ自体のプロセッサ及びメモリを含むことができる。エンコーダ/デコーダモジュール1030は、符号化機能及び/又は復号機能を果たすデバイスに含めることができるモジュールに相当する。既知であるように、デバイスは、符号化モジュール及び復号モジュールのうちの一方又は両方を含むことができる。更に、エンコーダ/デコーダモジュール1030は、システム1000の別個の要素として実装することができるか、又は当業者には既知であるように、ハードウェアとソフトウェアとの組み合わせとしてプロセッサ1010内に組み込むことができる。
【0150】
本明細書に記載の様々な態様を行うためにプロセッサ1010又はエンコーダ/デコーダ1030に読み込まれるプログラムコードは、記憶デバイス1040に格納することができ、続いて、プロセッサ1010による実行のためにメモリ1020に読み込むことができる。様々な実施形態によれば、プロセッサ1010、メモリ1020、記憶デバイス1040、及びエンコーダ/デコーダモジュール1030のうちの1つ以上は、本明細書に記載のプロセスの実施中の様々な項目のうちの1つ以上を格納することができる。このような格納される項目には、入力ビデオ、復号されたビデオ又は復号されたビデオの一部分、少なくとも1つのDNNの少なくとも1つの層の少なくとも1つのテンソルの少なくとも1つの重みを表すデータ、ビットストリーム、行列、変数、また方程式、式、演算、及び演算論理の処理からの中間結果又は最終結果を挙げることができるが、これらに限定されない。
【0151】
いくつかの実施形態では、プロセッサ1010及び/又はエンコーダ/デコーダモジュール1030の内部のメモリは、命令を格納するために、かつ符号化又は復号中に必要とされる処理用のワーキングメモリを提供するために使用される。しかし、他の実施形態では、処理デバイス(例えば、処理デバイスは、プロセッサ1010又はエンコーダ/デコーダモジュール1030であり得る)の外部のメモリが、これらの機能のうちの1つ以上に使用される。外部メモリは、メモリ1020及び/又は記憶デバイス1040、例えば、ダイナミック揮発性メモリ及び/又は不揮発性フラッシュメモリとすることができる。いくつかの実施形態では、外部不揮発性フラッシュメモリを使用して、例えばテレビのオペレーティングシステムを格納する。少なくとも1つの実施形態において、RAMなどの高速外部ダイナミック揮発性メモリが、MPEG-2(MPEGとは、Moving Picture Experts Group(動画専門家集団)を指し、MPEG-2は、ISO/IEC 13818とも称され、13818-1はH.222としても既知であり、13818-2はH.262としても既知である)、HEVC(HEVCとは、H.265及びMPEG-H Part2としても既知である、高効率ビデオコーティングを指す)、又はVVC(JVET、統合ビデオ専門家チームによって進展している新規格である多用途ビデオコーディング)など、コーディング作業及び復号作業の際のワーキングメモリとして使用される。
【0152】
システム1000の要素への入力は、ブロック1130に示される様々な入力デバイスを通して、提供することができる。このような入力デバイスには、(i)例えば、放送事業者による放送全体にわたり送信されるRF信号を受信する無線周波数(Radio Frequency、RF)部分、(ii)コンポーネント(COMP)入力端子(又はCOMP入力端子セット)、(iii)ユニバーサルシリアルバス(USB:Universal Serial Bus)入力端子、及び/又は(iv)高解像度マルチメディアインターフェース(HDMI:High Definition Multimedia Interface)入力端子が含まれるが、これらに限定されない。他の例としては、図3には示していないが、合成ビデオが挙げられる。
【0153】
様々な実施形態において、ブロック1130の入力デバイスは、当該技術分野で既知である関連するそれぞれの入力処理要素を有する。例えば、(i)所望の周波数を選択すること(信号を選択する、又は信号をある周波数帯域に帯域制限することとも称される)、(ii)選択信号をダウンコンバートすること、(iii)再度より狭い周波数帯域に帯域制限して、特定の実施形態ではチャネルとも称され得る信号周波数帯域(例えば)を選択すること、(iv)ダウンコンバートし、帯域制限した信号を復調すること、(v)誤り訂正を行うこと、並びに(vi)逆多重化して、所望のデータパケットストリームを選択すること、に好適な要素にRF部を関連付けることができる。様々な実施形態のRF部には、これらの機能を果たす1つ以上の要素、例えば、周波数セレクタ、信号セレクタ、帯域リミッタ、チャネルセレクタ、フィルタ、ダウンコンバータ、復調装置、誤り訂正装置、及びデマルチプレクサが含まれる。RF部には、例えば、受信信号をより低い周波数(例えば、中間周波数又は近ベースバンド周波数)又はベースバンドにダウンコンバートすることを含む、様々なこれらの機能を果たすチューナが含まれることがある。セットトップボックスの一実施形態では、RF部とその関連する入力処理要素は、有線(例えば、ケーブル)媒体上で送信されたRF信号を受信し、フィルタ処理し、ダウンコンバートし、また所望の周波数帯域に再びフィルタ処理することによって、周波数選択を行う。様々な実施形態では、上記の(及び他の)要素の順序を並べ替え、これらの要素のうちのいくつかを取り除き、かつ/又は、同様の機能若しくは異なる機能を果たす他の要素を加える。要素を加えることは、例えば、増幅器及びアナログ-デジタル変換器を挿入するなど、既存の要素間に要素を挿入することを含むことができる。様々な実施形態において、RF部は、アンテナを含む。
【0154】
また、USB端子及び/又はHDMI端子は、システム1000をUSB接続及び/又はHDMI接続にわたって他の電子デバイスに接続するためのそれぞれのインターフェースプロセッサを含むことができる。入力処理の様々な態様、例えば、リード-ソロモン誤り訂正が、例えば、必要に応じて、別個の入力処理IC内で、又はプロセッサ1010内で実装することができるということを理解すべきである。同様に、USB又はHDMIインターフェース処理の態様は、必要に応じて、別個のインターフェースIC内、又はプロセッサ1010内で実装することができる。例えば、メモリ及びストレージ要素との組み合わせで働くプロセッサ1010、及びエンコーダ/デコーダ1030を含む様々な処理要素に、復調され、誤り訂正され、逆多重化されたストリームを提供して、出力デバイスに提示するように必要に応じてこのデータストリームを処理する。
【0155】
システム1000の様々な要素を統合ハウジング内に設けることができ、統合ハウジング内では、様々な要素は、好適な接続装置1140、例えば、Inter-IC(I2C)バス、配線、及びプリント回路基板を含む、当該技術分野で既知である内部バスを使用して相互接続され、それらの間でデータを送信することができる。
【0156】
システム1000は、通信チャネル1060を介して他のデバイスとの通信を可能にする通信インターフェース1050を含む。通信インターフェース1050は、通信チャネル1060上でデータを送信し、またデータを受信するように構成されたトランシーバを含むことができるが、これに限定されない。通信インターフェース1050は、モデム又はネットワークカードを含むことができるが、これらに限定されず、通信チャネル1060は、例えば、有線媒体及び/又は無線媒体内で実装することができる。
【0157】
データは、様々な実施形態では、Wi-Fiネットワーク、例えば、IEEE802.11(IEEEとは、米国電気電子技術者協会を指す)などの無線ネットワークを使用して、システム1000にストリーミングされるか、又は別の方法で提供される。これらの実施形態のWi-Fi信号は、Wi-Fi通信に適合されている通信チャネル1060及び通信インターフェース1050上で受信される。これらの実施形態の通信チャネル1060は、通常、ストリーミングアプリケーションなどのオーバザトップ通信を可能にするように、インターネットを含む外部ネットワークへのアクセスを提供するアクセスポイント又はルータに接続される。他の実施形態では、入力ブロック1130のHDMI接続上でデータを配信するセットトップボックスを使用して、システム1000にストリーミングデータを提供する。また他の実施形態では、入力ブロック1130のRF接続を使用して、システム1000にストリーミングデータを提供する。上で示した通り、様々な実施形態では、データを非ストリーミング様式で提供する。更に、様々な実施形態では、Wi-Fi以外の無線ネットワーク、例えば、セルラネットワーク又はBluetoothネットワークを使用する。
【0158】
システム1000は、ディスプレイ1100、スピーカ1110、及び他の周辺デバイス1120を含む様々な出力デバイスに出力信号を提供することができる。様々な実施形態のディスプレイ1100には、例えば、タッチスクリーンディスプレイ、有機発光ダイオード(Organic Light-Emitting Diode、OLED)ディスプレイ、湾曲ディスプレイ、及び/又は折り畳み式ディスプレイのうちの1つ以上が含まれる。ディスプレイ1100は、テレビ、タブレット、ラップトップ、携帯電話(移動電話)、又は別のデバイス用とすることができる。ディスプレイ1100はまた、他の構成要素と一体化することができる(例えば、スマートフォンに見られるように)か、又は別個のものとすることができる(例えば、ラップトップ用の外部モニタ)。他の周辺デバイス1120としては、実施形態の様々な例において、スタンドアロンデジタルビデオディスク(又はデジタル多用途ディスク)(DVR:Digital Versatile Disc、両方の用語の略称として)、ディスクプレーヤ、ステレオシステム、及び/又は照明システムのうちの1つ以上が含まれる。様々な実施形態では、システム1000の出力に基づいて機能を提供する1つ以上の周辺デバイス1120を使用する。例えば、ディスクプレーヤは、システム1000の出力を再生する機能を果たす。
【0159】
様々な実施形態において、制御信号が、ユーザの介入の有無に関わらず、デバイス間制御を可能にする、AV.Link、Consumer Electronics Control(CEC)、又は他の通信プロトコルなどのシグナリングを使用して、システム1000と、ディスプレイ1100、スピーカ1110、又は他の周辺デバイス1120との間で通信される。出力デバイスは、それぞれのインターフェース1070、1080、及び1090を通した専用接続を介してシステム1000に通信可能に結合することができる。代替的に、出力デバイスは、通信インターフェース1050を介して、通信チャネル1060を使用してシステム1000に接続することができる。ディスプレイ1100及びスピーカ1110は、例えば、テレビなどの電子デバイスにおいてシステム1000の他の構成要素と1つの単位に一体化され得る。様々な実施形態において、ディスプレイインターフェース1070は、例えば、タイミングコントローラ(Timing Controller、T Con)チップなどのディスプレイドライバを含む。
【0160】
例えば、入力1130のRF部が別個のセットトップボックスの一部である場合、ディスプレイ1100及びスピーカ1110は、代替的に、他の構成要素のうちの1つ以上とは別個とすることができる。ディスプレイ1100及びスピーカ1110が外部構成要素である様々な実施形態では、例えば、HDMIポート、USBポート、又はCOMP出力を含む専用の出力接続を介して出力信号を提供することができる。
【0161】
実施形態は、プロセッサ1010によって、又はハードウェアによって、又はハードウェアとソフトウェアとの組み合わせによって、実装されるコンピュータソフトウェアによって行うことができる。非限定的な例として、1つ以上の集積回路によって実施形態を実装することができる。メモリ1020は、技術環境に適切な任意のタイプのものとすることができ、非限定的な例として、光メモリデバイス、磁気メモリデバイス、半導体ベースのメモリデバイス、固定メモリ、及びリブ-バブルメモリなどの相応しいいかなるデータストレージ技術を使用しても実装することができる。プロセッサ1010は、技術環境に適切な任意のタイプのものとすることができ、非限定的な例として、マイクロプロセッサ、汎用コンピュータ、特殊目的コンピュータ、及びマルチコアアーキテクチャに基づくプロセッサのうちの1つ以上を包含することができる。
【0162】
様々な実装形態は、復号を伴う。本出願で使用する際、「復号」は、例えば、ディスプレイに好適な最終出力をもたらすために、受信した符号化されたシーケンスに対して行われるプロセスの全て又は一部を包含することができる。様々な実施形態において、このようなプロセスには、例えば、エントロピ復号、逆量子化、逆変換、及び差動復号など、通常、デコーダによって行われるプロセスのうちの1つ以上が含まれる。様々な実施形態において、このようなプロセスには、更に又は代替として、本出願に記載の様々な実装形態のデコーダによって行われるプロセスも含まれる。
【0163】
更なる例として、一実施形態では、「復号」とは、エントロピ復号のみを指し、別の実施形態では、「復号」とは、差動復号のみを指し、別の実施形態では、「復号」とは、エントロピ復号と差動復号との組み合わせを指す。「符号化プロセス」という句が、具体的に作業部分集合を指すことを目的とするものであるか、又は全体としてより広範な符号化プロセスを指すことを目的とするものであるかは、具体的な説明の背景に基づいて明らかになり、当業者によって十分に理解されると考えられる。
【0164】
様々な実装形態は、符号化を伴う。「復号」に関する上記の考察と同様に、本出願で使用する「符号化」は、例えば、符号化されたビットストリームを作り出すために入力シーケンスに対して行われるプロセスの全て又は一部を包含することができる。様々な実施形態において、このようなプロセスには、例えば、分割、差動符号化、変換、量子化、及びエントロピ符号化など、通常、エンコーダによって行われるプロセスのうちの1つ以上が含まれる。様々な実施形態において、このようなプロセスには、更に又は代替的に、本出願に記載の様々な実装形態のエンコーダによって行われるプロセスが含まれる。
【0165】
更なる例として、ある実施形態では、「符号化」とは、エントロピ符号化のみを指し、別の実施形態では、「符号化」とは、差動符号化のみを指し、別の実施形態では、「符号化」とは、差動符号化とエントロピ符号化との組み合わせを指す。「符号化プロセス」という句が、具体的に作業部分集合を指すこと目的とするものであるか、又は全体としてより広範な符号化プロセスを指すことを目的とするものであるかは、具体的な説明の背景に基づいて明らかになり、当業者によって十分に理解されると考えられる。
【0166】
本明細書で使用する際のシンタックス要素が、説明上の用語であることに留意されたい。したがって、シンタックス要素は、他のシンタックス要素名の使用を締め出すものではない。
【0167】
図が流れ図として提示されている場合、その図が対応する装置のブロック図も提供する、ということを理解すべきである。同様に、図がブロック図として提示されている場合、その図が対応する方法/プロセスの流れ図も提供する、ということを理解すべきである。
【0168】
様々な実施形態では、パラメトリックモデル又はレート歪み最適化に触れる。具体的には、符号化プロセス中に、レートと歪みとの間のバランス又はトレードオフは、通常、多くの場合、計算複雑性の制約を与えるものと考えられる。レート歪み最適化(Rate Distortion Optimization、RDO)メトリックを通して、あるいは最小二乗平均(Least Mean Square、LMS)、絶対誤差平均(Mean of Absolute Errors、MAE)、又は他のこのような測定を通して、これを測定することができる。レート歪み最適化は、通常、レートと歪みとの加重和であるレート歪み関数を最小化するように定式化される。レート歪み最適化問題を解くための異なる手法がある。例えば、これらの手法は、全ての考えられるモード又は符号化パラメータ値を含む全ての符号化選択肢の広範なテストに基づくことがあり、それらの符号化コストと、また符号化後、復号後に復元された信号の関連する歪みとの完全な評価を伴う。また、符号化複雑性を抑えるために、特に、復元された信号ではなく、予測又は予測残差信号に基づく近似歪みのコンピュータによる計算とともに、より素早い手法もまた使用され得る。考えられる符号化選択肢の一部のみに対して近似歪みを使用し、他の符号化選択肢に対しては完全な歪みを使用することなどによって、これらの2つの手法の混合を使用することもできる。他の手法では、考えられる符号化選択肢部分集合のみを評価する。より一般的には、多くの手法は、最適化を行うために様々な技法のうちのいずれも採用するが、最適化は、必ずしもコーディングコスト及び関連する歪みの両方の完全な評価ではない。
【0169】
本明細書に記載の実装形態及び態様は、例えば、方法若しくはプロセス、装置、ソフトウェアプログラム、データストリーム、又は信号において実装することができる。たとえ1つの形態の実装形態の背景でしか考察されない場合でも(例えば、方法としてしか考察されない)、考察された特徴の実装形態は、他の形態(例えば、装置又はプログラム)でも実装することができる。例えば、適切なハードウェア、ソフトウェア、及びファームウェアにおいて装置を実装することができる。方法は、例えば、プロセッサにおいて実施することができ、プロセッサとは、例えば、コンピュータ、マイクロプロセッサ、集積回路、又はプログラマブルロジックデバイスを含む一般的な処理デバイスを指す。プロセッサには、例えば、エンドユーザ間の情報の通信を容易にする、コンピュータ、携帯電話、ポータブル/携帯情報端末(「Personal Digital Assistant、PDA」)などのデバイスなどの通信デバイスも含まれる。
【0170】
「一実施形態」若しくは「ある実施形態」又は「一実装形態」若しくは「ある実装形態」、またそれらの他の変形形態への言及は、その実施形態に関連して説明する特定の特徴、構造、特性などが、少なくとも1つの実施形態に含まれることを意味する。したがって、本出願全体を通して様々な場所に現れる「一実施形態では」若しくは「ある実施形態では」又は「一実装形態では」若しくは「ある実装形態では」、また他の変形形態という句が現れるとき、必ずしも全てが同じ実施形態を指しているのではない。
【0171】
また、本出願では、様々な情報を「判定する」ことに言及し得る。情報を判定することは、例えば、情報を推定すること、情報を計算すること、情報を予測すること、又は情報をメモリから取り出すことのうちの1つ以上を含むことができる。
【0172】
また、本出願では、様々な情報に「アクセスする」ことに言及し得る。情報にアクセスすることは、例えば、情報を受信すること、情報を取り出すこと(例えばメモリから)、情報を格納すること、情報を移動させること、情報をコピーすること、情報を計算すること、情報を判定すること、情報を予測すること、又は情報を推定することのうちの1つ以上を含むことができる。
【0173】
更に、本出願では、様々な情報を「受信する」ことに言及し得る。受信するとは、「アクセスする」の場合と同様に、広義の用語であることを意図している。情報を受信することは、例えば、情報にアクセスすること、又は情報を取り出すこと(例えばメモリから)のうちの1つ以上を含むことができる。また更に、「受信する」は、典型的に、例えば、情報を格納する、情報を処理する、情報を送信する、情報を移動させる、情報をコピーする、情報を消去する、情報を計算する、情報を判定する、情報を予測する、又は情報を推定するなどの作業中に、何らかの形で関与する。
【0174】
例えば、「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)の選択を包含することを意図している。このことは、当該技術分野及び関連技術分野の当業者には明らかであるように、挙げられた項目の数だけ拡張され得る。
【0175】
また、本明細書で使用する際、「信号」という語は、数ある中でも、対応するデコーダに対して何かを示すということである。例えば、特定の実施形態では、エンコーダは、複数の変換、符号化モード又は符号化フラグのうちの少なくとも1つをシグナリングする。このように、ある実施形態では、同じパラメータが、エンコーダ側でもデコーダ側でも使用される。したがって、例えば、エンコーダは、デコーダが同じ特定のパラメータを使用することができるように、特定のパラメータをデコーダに送信することができる(明確なシグナリング)。これに対し、デコーダがすでにその特定のパラメータとともに他のパラメータも有する場合は、単にデコーダがその特定のパラメータを知ること、及びそれを選択することを可能にするように、送信を行わないシグナリング(暗黙的なシグナリング)を使用することができる。いかなる実際の機能の送信も回避することにより、様々な実施形態において、ビットの節約が実現される。シグナリングは、様々な方法で達成することができることが理解されよう。例えば、様々な実施形態において、1つ以上のシンタックス要素、フラグなどが、対応するデコーダに情報をシグナリングするために使用される。上記は、「信号」という語の動詞形に関連し、「信号」という語は、本明細書では名詞としても使用されることがある。
【0176】
当業者には明白であるように、実装形態は、例えば、格納され得る、又は送信され得る情報を搬送するようにフォーマットされた様々な信号をもたらすことができる。情報は、例えば、方法を行うよう求める命令、又は記載の実装形態のうちの1つによってもたらされたデータを含むことができる。例えば、記載の実施形態のビットストリームを搬送するように、信号をフォーマットすることができる。例えば、電磁波として(例えば、スペクトルの無線周波数部分を使用して)、又はベースバンド信号として、このような信号をフォーマットすることができる。フォーマットすることは、例えば、データストリームを符号化することと、符号化されたデータストリームで搬送波を変調することと、を含むことができる。信号が搬送する情報は、例えば、アナログ情報又はデジタル情報とすることができる。既知であるように、様々な異なる有線リンク又は無線リンク上で信号を送信することができる。信号は、プロセッサ可読媒体に格納することができる。
【0177】
いくつかの実施形態について述べる。これらの実施形態の特徴は、様々な特許請求の範疇及びタイプにわたって単独でも、いかなる組み合わせでも提供され得る。更に、実施形態は、様々な特許請求の範疇及びタイプにわたって、以下の特徴、デバイス、又は態様のうちの1つ以上を、単独で、又は任意の組み合わせにおいて、含むことができる。
・事前訓練されたディープニューラルネットワークのディープニューラルネットワーク圧縮を用いて符号化及び復号を行うプロセス又はデバイス。
・事前訓練されたディープニューラルネットワークの少なくとも1つの層の符号化及び復号を行って、ディープニューラルネットワーク圧縮を実施するプロセス又はデバイス。
・パラメータを表すビットストリームに挿入された情報を用いて符号化及び復号を行って、1つ以上の層を備える事前訓練されたディープニューラルネットワークのディープニューラルネットワーク圧縮を実施するプロセス又はデバイス。
・パラメータを表すビットストリームに挿入された情報を用いて符号化及び復号を行って、ディープニューラルネットワークのディープニューラルネットワーク圧縮を実施するプロセス又はデバイス。
・記載のシンタックス要素、又はその変形形態のうちの1つ以上を含むビットストリーム又は信号。
・記載の実施形態のうちのいずれかにより起こされた情報を伝達するシンタックスを含むビットストリーム又は信号。
・記載の実施形態のいずれかにより、作り出しかつ/又は送信しかつ/又は受信しかつ/又は復号する。
・記載の実施形態のいずれかによる、方法、プロセス、装置、命令を格納する媒体、データを格納する媒体、又は信号。
・エンコーダによって使用される方法に対応する様態で、デコーダが符号化モードを判定することを可能にするシンタックス要素をシグナリングに挿入する。
・記載のシンタックス要素、又はその変形形態のうちの1つ以上を含むビットストリーム又は信号を作り出しかつ/又は送信しかつ/又受信しかつ/又は復号する。
・記載の実施形態のいずれかによる、変換方法を行う、テレビ、セットトップボックス、携帯電話、タブレット、又はそれ以外の電子デバイス。
・記載の実施形態のいずれかにより、変換方法判定を下し、結果としてもたらされた画像を表示する(例えば、モニタ、スクリーン、などのタイプのディスプレイを使用して)、テレビ、セットトップボックス、携帯電話、タブレット、又はそれ以外の電子デバイス。
・符号化された画像を含む信号を受信するように、チャネルを選択し、帯域制限し、又はチューニングし(例えば、チューナを使用して)、記載の実施形態のいずれかにより変換方法を行う、テレビ、セットトップボックス、携帯電話、タブレット、又はそれ以外の電子デバイス。
・符号化された画像を含む信号を放送全体にわたって受信し、変換方法を行う、TV、セットトップボックス、携帯電話、タブレット、又はそれ以外の電子デバイス。
図1
図2
図3
図4
図5
図6
図7
図8
【手続補正書】
【提出日】2023-02-20
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
方法であって、
ディープニューラルネットワークの層の第1のテンソルが、ビットストリームにおいて、そのパラメータが符号化されている第2のテンソル及び第3のテンソルに分解されているとの判定に応えて、前記ビットストリームから、前記第2のテンソル及び前記第3のテンソルのうちの少なくとも1つ以上に対応する1つ以上のサイズを復号することと、
前記1つ以上の復号されたサイズに基づいて、前記第2のテンソル及び前記第3のテンソルを復号して、前記復号された第2のテンソル及び復号された第3のテンソルを得ることと、を含む、方法。
【請求項2】
前記ビットストリームから、前記第2のテンソル及び前記第3のテンソルに分解された前記第1のテンソルのテンソル分解の分解ランクを復号することを更に含む、請求項1に記載の方法。
【請求項3】
前記1つ以上の復号されたサイズに基づいて、前記第2のテンソル又は前記第3のテンソルのうちの1つ以上のテンソルの1つ以上のサイズを導出することと、
前記1つ以上の導出されたサイズに基づいて、前記第2のテンソル及び前記第3のテンソルのうちの1つ以上を復号することと、を更に含む、請求項1に記載の方法。
【請求項4】
前記復号された第2のテンソル及び前記復号された第3のテンソルに基づいて、前記第1のテンソルを復元することを更に含む、請求項1に記載の方法。
【請求項5】
前記復号された第2のテンソル及び前記復号された第3のテンソルのうちの1つ以上を復号されたテンソルバッファに格納することと、
識別子に関連付けられたテンソルを探すことによって、前記復号された第2のテンソル及び前記復号された第3のテンソルのうちの1つ以上が、前記復号されたテンソルバッファにあるかどうかを判定することであって、前記識別子が、前記復号された第2のテンソル及び前記復号された第3のテンソルのうちの前記1つ以上と同じ層を含む、判定することと、を更に含む、請求項1に記載の方法。
【請求項6】
1つ以上のプロセッサを備える装置であって、前記1つ以上のプロセッサが、
ディープニューラルネットワークの層の第1のテンソルが、ビットストリームにおいて、そのパラメータが符号化されている第2のテンソル及び第3のテンソルに分解されているという判定に応えて、前記第2のテンソル及び前記第3のテンソルのうちの少なくとも1つ以上に対応する1つ以上のサイズを前記ビットストリームから復号することと、
前記1つ以上の復号されたサイズに基づいて、前記第2のテンソル及び前記第3のテンソルを復号して、前記復号された第2のテンソル及び復号された第3のテンソルを得ることと、を行うように構成されている、装置。
【請求項7】
前記1つ以上のプロセッサが、
前記1つ以上の復号されたサイズに基づいて、前記第2のテンソル又は前記第3のテンソルのうちの1つ以上のテンソルの1つ以上のサイズを導出することと、
1つ以上の導出されたサイズに基づいて、前記第2のテンソル及び前記第3のテンソルのうちの1つ以上を復号することと、を行うように構成されている、請求項6に記載の装置。
【請求項8】
前記1つ以上のプロセッサが、前記復号された第2のテンソル及び前記復号された第3のテンソルに基づいて、前記第1のテンソルを復元するように更に構成されている、請求項6に記載の装置。
【請求項9】
前記1つ以上のプロセッサが、
前記復号された第2のテンソル及び前記復号された第3のテンソルのうちの1つ以上を復号されたテンソルバッファに格納することと、
識別子に関連付けられたテンソルを探すことによって、前記復号された第2のテンソル及び前記復号された第3のテンソルのうちの1つ以上が前記復号されたテンソルバッファにあるかどうかを判定することであって、前記識別子が、前記復号された第2のテンソル及び前記復号された第3のテンソルのうちの前記1つ以上と同じ層を含む、判定することと、を行うように更に構成されている、請求項6に記載の装置。
【請求項10】
方法であって、
ディープニューラルネットワークの層の第1のテンソルを第2のテンソル及び第3のテンソルに分解することと、
前記第2のテンソル及び前記第3のテンソルのうちの少なくとも1つ以上に対応する1つ以上のサイズを導出することと、
判定した1つ以上のサイズに基づいて、ビットストリームにおいて前記第2のテンソル及び前記第3のテンソルを符号化することであって、前記第2のテンソル及び前記第3のテンソルのうちの少なくとも1つ以上に対応する前記1つ以上のサイズが、前記ビットストリームにおいて符号化される、符号化することと、を含む、方法。
【請求項11】
前記第2のテンソル及び前記第3のテンソルに分解された前記第1のテンソルのテンソル分解の分解ランクを前記ビットストリームに符号化することを更に含む、請求項10に記載の方法。
【請求項12】
前記第2のテンソル及び分解された第3のテンソルのうちの1つ以上をテンソルバッファに格納することを更に含む、請求項10に記載の方法。
【請求項13】
1つ以上のプロセッサを備える装置であって、前記1つ以上のプロセッサが、
ディープニューラルネットワークの層の第1のテンソルを第2のテンソル及び第3のテンソルに分解することと、
前記第2のテンソル及び前記第3のテンソルのうちの少なくとも1つ以上に対応する1つ以上のサイズを導出することと、
判定した1つ以上のサイズに基づいて、ビットストリームにおいて前記第2のテンソル及び前記第3のテンソルを符号化することであって、前記第2のテンソル及び前記第3のテンソルのうちの少なくとも1つ以上に対応する前記1つ以上のサイズが前記ビットストリームにおいて符号化される、符号化することと、を行うように構成されている、装置。
【請求項14】
前記1つ以上のプロセッサが、前記第2のテンソ及び前記第3のテンソルに分解された前記第1のテンソルのテンソル分解の分解ランクを前記ビットストリームに符号化するように更に構成されている、請求項13に記載の装置。
【請求項15】
前記1つ以上のプロセッサが、前記第2のテンソル及び分解された第3のテンソルのうちの1つ以上をテンソルバッファに格納するように更に構成されている、請求項13に記載の装置。

【国際調査報告】