(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-05-21
(54)【発明の名称】圧縮領域におけるマルチレートのコンピュータビジョンタスクニューラルネットワーク
(51)【国際特許分類】
H04N 19/40 20140101AFI20240514BHJP
G06N 3/0455 20230101ALI20240514BHJP
G06N 3/0464 20230101ALI20240514BHJP
G06T 9/00 20060101ALI20240514BHJP
G06T 7/00 20170101ALI20240514BHJP
G06V 10/82 20220101ALI20240514BHJP
G06T 5/60 20240101ALI20240514BHJP
G06T 3/4046 20240101ALI20240514BHJP
G06T 5/70 20240101ALI20240514BHJP
G06T 3/4053 20240101ALI20240514BHJP
H04N 19/30 20140101ALI20240514BHJP
H04N 19/46 20140101ALI20240514BHJP
【FI】
H04N19/40
G06N3/0455
G06N3/0464
G06T9/00 200
G06T7/00 350C
G06V10/82
G06T5/60
G06T3/4046
G06T5/70
G06T3/4053
H04N19/30
H04N19/46
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023564403
(86)(22)【出願日】2023-03-23
(85)【翻訳文提出日】2023-10-20
(86)【国際出願番号】 US2023016068
(87)【国際公開番号】W WO2023200571
(87)【国際公開日】2023-10-19
(32)【優先日】2022-04-14
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2023-03-22
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ディン,ディン
(72)【発明者】
【氏名】シュー,シャオジョン
(72)【発明者】
【氏名】リウ,シャン
【テーマコード(参考)】
5B057
5C159
5L096
【Fターム(参考)】
5B057BA02
5B057CA08
5B057CA12
5B057CA16
5B057CB08
5B057CB18
5B057CC01
5B057CD05
5B057CE02
5B057CG01
5B057DA08
5B057DB02
5B057DB09
5B057DC40
5C159KK53
5C159MA31
5C159RB09
5C159RC11
5C159UA02
5C159UA05
5L096AA06
5L096CA01
5L096DA01
5L096EA03
5L096EA05
5L096GA10
5L096HA08
5L096HA11
5L096KA04
5L096KA07
(57)【要約】
いくつかの例では、処理回路は、圧縮画像を搬送するコーディングしたビットストリームから、パラメータの値のセット内の値を指すインデックスを復号化する。パラメータの値を変更することにより、圧縮画像の圧縮レートが調整される。圧縮画像は、パラメータに基づいてニューラルネットワークベースのエンコーダによって生成される。処理回路は、パラメータの値を、マルチレート圧縮領域コンピュータビジョンタスクデコーダに入力する。マルチレート圧縮領域コンピュータビジョンタスクデコーダは、圧縮画像を生成するために使用されるパラメータの対応する値に従って、圧縮画像からコンピュータビジョンタスクを実行するための1つ又は複数のニューラルネットワークを含む。マルチレート圧縮領域コンピュータビジョンタスクデコーダは、コーディングしたビットストリーム内の圧縮画像とパラメータの値とに従って、コンピュータビジョンタスク結果を生成する。
【特許請求の範囲】
【請求項1】
画像処理のための方法であって、当該方法は、
圧縮画像を搬送するコーディングしたビットストリームから、パラメータの値のセット内の値を指すインデックスを復号化するステップであって、前記パラメータの値を変更することにより前記圧縮画像の圧縮レートが調整され、前記圧縮画像は、前記パラメータに基いてニューラルネットワークベースのエンコーダによって生成される、ステップと、
前記パラメータの前記値を、圧縮領域コンピュータビジョンタスクフレームワーク(CDCVTF)内のマルチレート圧縮領域コンピュータビジョンタスクデコーダに入力するステップであって、前記マルチレート圧縮領域コンピュータビジョンタスクデコーダには、複数の異なる圧縮レートで前記圧縮画像を生成するために使用される前記パラメータの対応する値に従って、圧縮画像からコンピュータビジョンタスクを実行するための1つ又は複数のニューラルネットワークが含まれる、ステップと、
前記マルチレート圧縮領域コンピュータビジョンタスクデコーダが、前記パラメータの前記値に基づいて、前記複数の異なる圧縮レートから対応する圧縮レートで圧縮した前記コーディングしたビットストリーム内の前記圧縮画像に従ってコンピュータビジョンタスク結果を生成するステップと、を含む、
方法。
【請求項2】
前記コンピュータビジョンタスク結果を生成するステップは、
前記マルチレート圧縮領域コンピュータビジョンタスクデコーダ内の第1のニューラルネットワークが、前記パラメータの前記値をテンソルに変換するステップと、
前記マルチレート圧縮領域コンピュータビジョンタスクデコーダ内の第2のニューラルネットワークの1つ又は複数の層に前記テンソルを入力するステップと、
前記第2のニューラルネットワークが、前記圧縮画像及び前記テンソルに従って前記コンピュータビジョンタスク結果を生成するステップと、を含む、
請求項1に記載の方法。
【請求項3】
前記第1のニューラルネットワークには、1つ又は複数の畳み込み層が含まれる、請求項2に記載の方法。
【請求項4】
前記第1のニューラルネットワークには、活性化関数を有する畳み込み層が含まれる、請求項2に記載の方法。
【請求項5】
前記第2のニューラルネットワークは、前記圧縮画像から再構成画像を生成することなく、前記コンピュータビジョンタスク結果を生成するように構成される、請求項2に記載の方法。
【請求項6】
前記第2のニューラルネットワークは、前記圧縮画像から再構成画像を生成し、該再構成画像から前記コンピュータビジョンタスク結果を生成するように構成される、請求項2に記載の方法。
【請求項7】
前記ニューラルネットワークベースのエンコーダは、ニューラル画像圧縮(NIC)フレームワークにおけるエンコーダモデルに基づいており、前記マルチレート圧縮領域コンピュータビジョンタスクデコーダは、前記NICフレームワークにおけるデコーダモデルに基づいており、前記NICフレームワークはエンドツーエンドでトレーニングされる、請求項1に記載の方法。
【請求項8】
前記マルチレート圧縮領域コンピュータビジョンタスクデコーダのデコーダモデルは、前記ニューラルネットワークベースのエンコーダのエンコーダモデルとは別にトレーニングされる、請求項1に記載の方法。
【請求項9】
前記パラメータは、レート歪み損失の計算において歪みに重み付けするためのハイパーパラメータである、請求項1に記載の方法。
【請求項10】
前記コンピュータビジョンタスクには、画像分類、画像ノイズ除去、オブジェクト検出、及び超解像のうちの少なくとも1つが含まれる、請求項1に記載の方法。
【請求項11】
画像処理のための機器であって、当該機器は処理回路を含み、該処理回路は、
請求項1乃至10のいずれか一項に記載の方法を行うように構成される、
機器。
【請求項12】
画像処理のためのプログラムを記憶する非一時的なコンピュータ可読記憶媒体であって、前記プログラムが処理回路によって実行されると、該処理回路に、請求項1乃至10のいずれか一項に記載の方法を実行させる、
非一時的なコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
参照による組込み
本願は、2023年3月22日に出願した、“MULTI-RATE OF COMPUTER VISON TASK NEURAL NETWORKS IN COMPRESSION
DOMAIN”という表題の米国特許出願第18/124,828号に対する優先権の利益を主張するものであり、この出願は、2022年4月14日に出願した、“Multi-rate of Computer Vison Task Neural Networks in Compression
Domain”という表題の仮出願第63/331,168号に対する優先権の利益を主張する。これら先行出願の開示は、その全体が参照により本明細書に組み込まれる。
【0002】
本開示は、概して画像/ビデオ処理に関連する実施形態について説明する。
【背景技術】
【0003】
本明細書で提供する背景技術の説明は、本開示の内容を概ね提示することを目的としている。現在名前が記載されている発明者の成果(work)は、この背景技術の段落に記載している成果の範囲に限り、出願時に先行技術として認定され得ない記載の態様と同様に、明示的にも黙示的にも、本開示に対して先行技術として認められるものではない。
【0004】
画像/ビデオ圧縮は、品質劣化を最小限に抑えながら、異なる装置、ストレージ、及びネットワーク間で画像/ビデオファイルを送信するのに役立つことができる。画像/ビデオ圧縮ツールを改善するには、多くの専門知識、努力、時間が必要になり得る。機械学習技術を画像/ビデオ圧縮に適用すると、圧縮ツールの改善を簡易且つ迅速に行うことができる。
【発明の概要】
【0005】
本開示の態様は、画像/ビデオ処理(例えば、符号化及び復号化)のための方法及び機器を提供する。いくつかの例では、画像/ビデオ処理のための機器は処理回路を含む。処理回路は、圧縮画像を搬送するコーディングしたビットストリームから、パラメータの値のセット内の値を指すインデックスを復号化する。パラメータの値を変更することにより、圧縮画像の圧縮レートが調整される。圧縮画像は、パラメータに基づいてニューラルネットワークベースのエンコーダによって生成される。処理回路は、パラメータの値を、圧縮領域コンピュータビジョンタスクフレームワーク(CDCVTF)内のマルチレート圧縮領域コンピュータビジョンタスクデコーダに入力する。マルチレート圧縮領域コンピュータビジョンタスクデコーダは、複数の異なる圧縮レートで圧縮画像を生成するために使用されるパラメータの対応する値に従って、圧縮画像からコンピュータビジョンタスクを実行するための1つ又は複数のニューラルネットワークを含む。マルチレート圧縮領域コンピュータビジョンタスクデコーダは、パラメータの値に基づいて、複数の異なる圧縮レートから対応する圧縮レートで圧縮したコーディングしたビットストリーム内の圧縮画像に従ってコンピュータビジョンタスク結果を生成する。
【0006】
いくつかの例では、マルチレート圧縮領域コンピュータビジョンタスクデコーダ内の第1のニューラルネットワークが、パラメータの値をテンソルに変換する。テンソルは、マルチレート圧縮領域コンピュータビジョンタスクデコーダ内の第2のニューラルネットワークの1つ又は複数の層に入力される。第2のニューラルネットワークは、圧縮画像及びテンソルに従ってコンピュータビジョンタスク結果を生成する。
【0007】
いくつかの例では、第1のニューラルネットワークには、1つ又は複数の畳み込み層が含まれる。
【0008】
いくつかの例では、第1のニューラルネットワークには、活性化関数を有する畳み込み層が含まれる。
【0009】
いくつかの例では、第2のニューラルネットワークは、圧縮画像から再構成画像を生成することなく、コンピュータビジョンタスク結果を生成するように構成される。
【0010】
いくつかの例では、第2のニューラルネットワークは、圧縮画像から再構成画像を生成し、再構成画像からコンピュータビジョンタスク結果を生成するように構成される。
【0011】
いくつかの例では、ニューラルネットワークベースのエンコーダは、ニューラル画像圧縮(NIC)フレームワークにおけるエンコーダモデルに基づいており、マルチレート圧縮領域コンピュータビジョンタスクデコーダは、NICフレームワークにおけるデコーダモデルに基づいており、NICフレームワークはエンドツーエンドでトレーニングされる。
【0012】
いくつかの例では、マルチレート圧縮領域コンピュータビジョンタスクデコーダのデコーダモデルは、ニューラルネットワークベースのエンコーダのエンコーダモデルとは別にトレーニングされる。
【0013】
いくつかの例では、パラメータは、レート歪み損失の計算において歪みに重み付けするためのハイパーパラメータである。
【0014】
いくつかの例では、コンピュータビジョンタスクには、画像分類、画像ノイズ除去、オブジェクト検出、及び超解像のうちの少なくとも1つが含まれる。
【0015】
本開示の態様は、画像/ビデオの符号化及び/又は復号化のための方法を実行するために少なくとも1つのプロセッサによって実行可能なプログラムを記憶する非一時的なコンピュータ可読記憶媒体も提供する。
【図面の簡単な説明】
【0016】
開示する主題の更なる特徴、性質、及び様々な利点は、以下の詳細な説明及び添付の図面からより明らかになろう。
【
図1】いくつかの例におけるニューラル画像圧縮(NIC)フレームワークを示す図である。
【
図2】いくつかの例におけるメインエンコーダネットワークの例を示す図である。
【
図3】いくつかの例におけるメインデコーダネットワークの例を示す図である。
【
図4】いくつかの例におけるハイパーエンコーダネットワークの例を示す図である。
【
図5】いくつかの例におけるハイパーデコーダネットワークの例を示す図である。
【
図6】いくつかの例におけるコンテキストモデル・ニューラルネットワークの例を示す図である。
【
図7】いくつかの例におけるエントロピーパラメータ・ニューラルネットワークの例を示す図である。
【
図8】いくつかの例における画像エンコーダを示す図である。
【
図9】いくつかの例における画像デコーダを示す図である。
【
図10】いくつかの例における画像エンコーダ及び対応する画像デコーダを示す図である。
【
図11】いくつかの例における画像エンコーダ及び対応する画像デコーダを示す図である。
【
図12】いくつかの例における、コンピュータビジョン(CV)タスクを圧縮領域で実行するシステムを示す図である。
【
図13】いくつかの例における、CVタスクを圧縮領域で実行するためのシステムを示す図である。
【
図14】いくつかの例において、CVタスクをマルチレート圧縮領域において実行するためのシステムを示す図である。
【
図15】いくつかの例において、CVタスクをマルチレート圧縮領域において実行するためのシステムを示す図である。
【
図16】いくつかの例におけるプロセスの概要を示すフローチャートである。
【
図17】いくつかの例におけるプロセスの概要を示すフローチャートである。
【
図18】いくつかの例におけるコンピュータシステムの概略図である。
【発明を実施するための形態】
【0017】
本開示の一態様によれば、一部のビデオコーデックは、全体として最適化することが困難である可能性がある。例えば、ビデオコーデックの単一モジュール(例えば、エンコーダ)を改良しても、全体的なパフォーマンスのコーディングゲインが向上しない可能性がある。対照的に、人工ニューラルネットワーク(ANN)ベースのビデオ/画像コーディングフレームワークでは、機械学習プロセスを実行し、次にANNベースのビデオ/画像コーディングフレームワークの様々なモジュールを入力から出力まで共同で最適化して、最終的な目標(例えば、本開示で説明するレート歪み損失L等のレート歪み性能)を向上させることができる。例えば、学習プロセス又はトレーニングプロセス(例えば、機械学習プロセス)は、ANNベースのビデオ/画像コーディングフレームワーク上で実行され、ANNベースのビデオ/画像コーディングフレームワークのモジュールを共同で最適化し、全体的に最適化したレート歪み性能を達成することができる。こうして、最適化の結果は、エンドツーエンド(E2E)で最適化したニューラル画像圧縮(NIC)になり得る。
【0018】
以下の説明では、ANNベースのビデオ/画像コーディングフレームワークは、ニューラル画像圧縮(NIC)フレームワークによって示される。以下の説明では画像圧縮(例えば、符号化及び復号化)について説明するが、画像圧縮の技術はビデオ圧縮にも適切に適用できることに留意されたい。
【0019】
本開示のいくつかの態様によれば、NICフレームワークは、オフライン・トレーニングプロセス及び/又はオンライン・トレーニングプロセスでトレーニングすることができる。オフライン・トレーニングプロセスでは、以前に収集したトレーニング画像のセットを使用して、NICフレームワークをトレーニングし、NICフレームワークを最適化することができる。いくつかの例では、オフライン・トレーニングプロセスによって決定したNICフレームワークのパラメータは、事前トレーニング済みパラメータと呼ばれ得、事前トレーニング済みパラメータを含むNICフレームワークは、事前トレーニング済みNICフレームワークと呼ばれ得る。事前トレーニング済みNICフレームワークは、画像圧縮操作に使用することができる。
【0020】
いくつかの例では、1つ又は複数の画像(1つ又は複数のターゲット画像とも呼ばれる)が画像圧縮操作に利用できる場合に、事前トレーニング済みNICフレームワークは、オンライン・トレーニングプロセスで1つ又は複数のターゲット画像に基づいてさらにトレーニングされ、NICフレームワークのパラメータを調整する。オンライン・トレーニングプロセスによって調整したNICフレームワークのパラメータは、オンライン・トレーニング済みパラメータと呼ばれ得、オンライン・トレーニング済みパラメータを含むNICフレームワークは、オンライン・トレーニング済みNICフレームワークと呼ばれ得る。オンライン・トレーニング済みNICフレームワークは、次に1つ又は複数のターゲット画像に対して画像圧縮操作を実行することができる。本開示のいくつかの態様は、ニューラル画像圧縮におけるオンライン・トレーニングベースのエンコーダ調整のための技術を提供する。
【0021】
ニューラルネットワークとは、生物学的な脳をモデル化する計算アーキテクチャを指す。ニューラルネットワークは、接続線を介して接続された多数の人工ニューロンを使用して生物学的システムの計算能力をエミュレートする、ソフトウェア又はハードウェアで実現されたモデルである。ノードと呼ばれる人工ニューロンは互いに接続され、集合的に動作して入力データを処理する。ニューラルネットワーク(NN)は、人工ニューラルネットワーク(ANN)としても知られている。
【0022】
ANN内のノードは、任意の適切なアーキテクチャで編成することができる。いくつかの実施形態では、ANN内のノードは、ANNへの入力信号を受信する入力層と、ANNから出力信号を出力する出力層とを含む層(layer:レイヤ)で編成される。一実施形態では、ANNは、入力層と出力層との間に隠れ層と呼ばれる層をさらに含む。異なる層は、異なる層のそれぞれの入力に対して異なる種類の変換を実行することができる。信号は入力層から出力層に伝えることができる。
【0023】
入力層と出力層との間に複数の層を含むANNは、ディープニューラルネットワーク(DNN)と呼ばれ得る。DNNは任意の適切な構造を有し得る。いくつかの例では、DNNは、データがループバックせずに入力層から出力層に流れるフィードフォワードネットワーク構造で構成される。いくつかの例では、DNNは、ある層の各ノードが次の層の全てのノードに接続される完全接続ネットワーク構造で構成される。いくつかの例では、DNNは、データが任意の方向に流れることができるリカレントニューラルネットワーク(RNN)構造で構成される。
【0024】
畳み込み演算を行う少なくとも畳み込み層を含むANNは、畳み込みニューラルネットワーク(CNN)と呼ばれ得る。CNNには、入力層、出力層、及び入力層と出力層との間の隠れ層を含めることができる。隠れ層は、2次元(2D)畳み込み等の畳み込みを行う畳み込み層(例えば、エンコーダで使用される)を含むことができる。一実施形態では、畳み込み層で行われる2D畳み込みは、畳み込み層に対して畳み込みカーネル(5×5行列等のフィルタ又はチャネルとも呼ばれる)と入力信号(例えば、2Dブロック(256×256行列)等の2D行列)との間で行われる。畳み込みカーネルの次元(例えば、5×5)は、入力信号の次元(例えば、256×256)よりも小さい。畳み込み演算中に、畳み込みカーネルと、畳み込みカーネルと同じサイズの入力信号(例えば、256×256行列)内のパッチ(例えば、5×5領域)に対してドット積演算を行い、次の層に入力するための出力信号が生成される。畳み込みカーネルのサイズである入力信号(例えば、256×256行列)内のパッチ(例えば、5×5領域)は、次の層のそれぞれのノードの受容野と呼ばれ得る。
【0025】
畳み込み中に、畳み込みカーネルと入力信号内の対応する受容野とのドット積が計算される。畳み込みカーネルには要素として重みが含まれており、畳み込みカーネルの各要素は、受容野内の対応するサンプルに適用される重みである。例えば、5×5行列で表される畳み込みカーネルには25の重みがある。いくつかの例では、畳み込み層の出力信号にバイアスが適用され、出力信号はドット積とバイアスとの和に基づく。
【0026】
いくつかの例では、畳み込みカーネルは、ストライド(stride)と呼ばれるサイズだけ入力信号(例えば、2D行列)に沿ってシフトすることができ、こうして、畳み込み演算は、特徴マップ又は活性化マップ(例えば、別の2D行列)を生成し、次にこれがCNNの次の層の入力に寄与する。例えば、入力信号は256×256サンプルを有する2Dブロックであり、ストライドは2サンプル(例えば、ストライド2)である。ストライドが2の場合に、畳み込みカーネルは、X方向(例えば、水平方向)及び/又はY方向(例えば、垂直方向)に沿って2サンプルずつシフトする。
【0027】
いくつかの例では、複数の畳み込みカーネルを同じ畳み込み層において入力信号に適用して複数の特徴マップをそれぞれ生成することができ、各特徴マップは入力信号の特定の特徴を表すことができる。いくつかの例では、畳み込みカーネルは特徴マップに対応することができる。N個の畳み込みカーネル(又はNチャネル)を含み、(各畳み込みカーネルにはM×Mサンプルがあり、)ストライドSの畳み込み層は、Conv:M×M cN sSとして指定できる。例えば、192個の畳み込みカーネル(又は192チャネル)を含み、(各畳み込みカーネルには5×5サンプルがあり、)ストライドが2である畳み込み層は、Conv:5×5 c192 s2として指定される。隠れ層は、2D逆畳み込み等の逆畳み込みを行う逆畳み込み層(例えば、デコーダで使用される)を含むことができる。逆畳み込みは畳み込みの逆である。192個の逆畳み込みカーネル(又は192チャネル)を含み、(各逆畳み込みカーネルには5×5サンプルがあり)、ストライドが2である逆畳み込み層は、DeConv:5×5 c192 s2として指定される。
【0028】
CNNでは、比較的多数のノードが同じフィルタ(例えば、同じ重み)及び同じバイアス(バイアスが使用される場合)を共有することができ、こうして、単一のバイアス及び単一の重みベクトルを、同じフィルタを共有する全ての受容野に亘って使用することができるため、メモリ設置面積を減らすことができる。例えば、100×100サンプルを有する入力信号の場合に、畳み込みカーネルが5×5サンプルを有する畳み込み層は、25個の学習可能なパラメータ(例えば、重み)を有する。バイアスが使用される場合に、次に、1つのチャネルは26個の学習可能なパラメータ(例えば、25個の重み及び1つのバイアス)を使用する。畳み込み層にN個の畳み込みカーネルがある場合に、学習可能なパラメータの合計は26×Nである。学習可能なパラメータの数は、完全に接続されたフィードフォワードニューラルネットワーク層と比較して比較的少数である。例えば、完全に接続されたフィードフォワード層の場合に、100×100(つまり、10000)個の重みを使用して、次の層の各ノードに入力するための結果信号を生成する。次の層に L個のノードがある場合に、次に、学習可能なパラメータの合計は10000×Lになる。
【0029】
CNNは、プーリング層、ある層の全てのノードを別の層の全てのノードに接続できる全結合層(fully connected layer(s))、及び/又は正規化層等の1つ又は複数の他の層をさらに含むことができる。CNNの層は、任意の適切な順序及び適切なアーキテクチャ(フィードフォワード・アーキテクチャ、リカレント・アーキテクチャ等)で配置することができる。一例では、畳み込み層の後には、プーリング層、全結合層、及び/又は正規化層等の他の層が続く。
【0030】
プーリング層を使用して、ある層の複数のノードからの出力を次の層の単一のノードに結合することによってデータの次元を縮減することができる。入力として特徴マップを有するプーリング層に対するプーリング動作を以下に説明する。この説明は他の入力信号にも適切に適用できる。特徴マップはサブ領域(例えば、長方形のサブ領域)に分割することができ、それぞれのサブ領域内の特徴は、例えば平均プーリングの場合に平均値、又は最大プーリングの場合に最大値を取ることによって、単一の値に独立してダウンサンプリング(又はプール)することができる。
【0031】
プーリング層は、ローカルプーリング、グローバルプーリング、最大プーリング、及び/又は平均プーリング等のプーリングを実行することができる。プーリングは、非線形ダウンサンプリングの形式である。ローカルプーリングは、特徴マップ内の少数のノード(例えば、2×2ノード等のノードのローカルクラスタ)を結合する。グローバルプーリングでは、例えば特徴マップの全てのノードを結合することができる。
【0032】
プーリング層は、表現のサイズを削減することができ、こうして、CNNにおけるパラメータの数、メモリ設置面積、及び計算量を削減することができる。一例では、CNNの連続する畳み込み層の間にプーリング層が挿入される。一例では、プーリング層の後には、整流線形ユニット(ReLU)層等の活性化関数が続く。一例では、CNNの連続する畳み込み層の間でプーリング層が省略される。
【0033】
正規化層は、ReLU、leaky ReLU、一般化分割正規化(GDN)、又は逆GDN(IGDN)等であり得る。ReLUは、非飽和活性化関数を適用して、負の値をゼロに設定することで、特徴マップ等の入力信号から負の値を除去することができる。leaky ReLUは、負の値に対して平坦な傾き(例えば、0)の代わりに小さな傾き(例えば、0.01)を有することができる。従って、値xが0より大きい場合に、次に、leaky ReLUからの出力はxになる。それ以外の場合に、leaky ReLUからの出力は、値xに小さな傾き(例えば、0.01)を乗算したものになる。一例では、傾きはトレーニング前に決定されるため、トレーニング中には学習されない。
【0034】
NICフレームワークは、画像圧縮の圧縮モデルに対応することができる。NICフレームワークは入力画像xを受け取り、入力画像xに対応する再構成画像x-を出力する(ここで、x-は、
【数1】
を表す)。NICフレームワークは、ニューラルネットワーク・エンコーダ(例えば、DNN等のニューラルネットワークに基づくエンコーダ)及びニューラルネットワーク・デコーダ(例えば、DNN等のニューラルネットワークに基づくデコーダ)を含むことができる。入力画像xは、ニューラルネットワーク・エンコーダへの入力として提供され、圧縮表現(例えば、コンパクトな表現)x^が計算され(ここで、x^は、
【数2】
を表し)、この圧縮表現は例えば保存や送信の目的でコンパクトにすることができる。圧縮表現x^はニューラルネットワーク・デコーダへの入力として提供され、再構成画像x-が生成される。様々な実施形態において、入力画像x及び再構成画像x-は空間領域内にあり、圧縮表現x^は空間領域とは異なる領域内にある。いくつかの例では、圧縮表現x^が量子化され、エントロピーコーディングされる。
【0035】
いくつかの例では、NICフレームワークは変分オートエンコーダ(VAE)構造を使用することができる。VAE構造では、入力画像x全体をニューラルネットワーク・エンコーダに入力することができる。入力画像x全体は、ブラックボックスとして機能する(ニューラルネットワーク・エンコーダの)あるセットのニューラルネットワーク層を通過して、圧縮表現x^を計算することができる。圧縮表現x^は、ニューラルネットワーク・エンコーダの出力である。ニューラルネットワーク・デコーダは、圧縮表現x^全体を入力として受け取ることができる。圧縮表現x^は、別のブラックボックスとして機能する(ニューラルネットワーク・デコーダの)の別のセットのニューラルネットワーク層を通過して、再構成画像x-を計算することができる。レート歪み(R-D)損失
【数3】
を最適化して、式1に従うように、再構成画像x-の歪み損失
【数4】
と、コンパクトな表現x^のビット消費Rとの間のトレードオフを、トレードオフ・ハイパーパラメータλを用いて達成することができる。
【数5】
【0036】
ニューラルネットワーク(例えば、ANN)は、タスク固有のプログラミングを行わなくても、例からタスクの実行方法を学習することができる。ANNは、接続されたノード又は人工ニューロンで構成することができる。ノード同士の間の接続によって、第1のノードから第2のノード(例えば、受信ノード)に信号を送信することができ、信号は、接続の重み係数によって示され得る重みによって修正することができる。受信ノードは、ノードからの信号(つまり、受信ノードの入力信号)を処理し、この信号を受信ノードに送信し、次に関数を入力信号適用することで出力信号を生成することができる。関数は線形関数であってよい。一例では、出力信号は入力信号の重み付けされた合計である。一例では、出力信号は、バイアス項によって示されるバイアスによってさらに修正され、こうして、出力信号は、バイアスと入力信号の重み付けされた合計との和となる。この関数には、例えば、重み付けされた合計、又はバイアスと入力信号の重み付けされた合計の和に対する非線形演算が含まれ得る。出力信号は、ノード(受信ノードに接続される下流ノード)に送信することができる。ANNは、パラメータ(例えば、接続の重み及び/又はバイアス)によって表現又は構成することができる。重み及び/又はバイアスは、重み及び/又はバイアスを反復的に調整することができる例を用いてANNをトレーニング(例えば、オフライン・トレーニング、及びオンライン・トレーニング等)することによって取得することができる。決定した重み及び/又は決定したバイアスを用いて構成されたトレーニングされたANNを使用して、タスクを実行することができる。
【0037】
図1は、いくつかの例におけるNICフレームワーク(100)(例えば、NICシステム)を示す。NICフレームワーク(100)は、DNN及び/又はCNN等のニューラルネットワークに基づくことができる。NICフレームワーク(100)を使用して、画像を圧縮(例えば、符号化)し、圧縮画像(例えば、符号化画像)を解凍(例えば、復号化又は再構成)することができる。
【0038】
具体的には、
図1の例では、NICフレームワーク(100)内の圧縮モデルは、圧縮モデルのメインレベル及び圧縮モデルのハイパーレベルと呼ばれる2つのレベルを含む。圧縮モデルのメインレベルと圧縮モデルのハイパーレベルとは、ニューラルネットワークを使用して実現することができる。
図1において、圧縮モデルのメインレベルのニューラルネットワークは第1のサブNN(151)として示され、圧縮モデルのハイパーレベルは第2のサブNN(152)として示される。
【0039】
第1のサブNN(151)は、オートエンコーダに類似することができ、入力画像xの圧縮画像x^を生成し、その圧縮画像(すなわち、符号化画像)x^を解凍して再構成画像x-を取得するようにトレーニングすることができる。第1のサブNN(151)は、メインエンコーダ・ニューラルネットワーク(又はメインエンコーダネットワーク)(111)、量子化器(112)、エントロピーエンコーダ(113)、エントロピーデコーダ(114)、及びメインデコーダ・ニューラルネットワーク(又はメインエンコーダネットワーク)(115)等の複数のコンポーネント(又はモジュール)を含むことができる。
【0040】
図1を参照すると、メインエンコーダネットワーク(111)は、入力画像x(例えば、圧縮又は符号化すべき画像)から潜在(latent)又は潜在表現yを生成することができる。一例では、メインエンコーダネットワーク(111)は、CNNを使用して実装される。潜在表現yと入力画像xとの間の関係は、式2を使用して記述することができる。
【数6】
ここで、パラメータθ
1は、メインエンコーダネットワーク(111)の畳み込みカーネルで使用される重み及びバイアス(バイアスがメインエンコーダネットワーク(111)で使用される場合)等のパラメータを表す。
【0041】
潜在表現yは、量子化器(112)を使用して量子化され、量子化した潜在y^を生成することができる(ここで、y^は、
【数7】
を表す)。量子化した潜在y^は、例えば、エントロピーエンコーダ(113)による可逆圧縮を使用して圧縮され、入力画像の圧縮表現x^である圧縮画像(例えば、符号化画像)x^(131)を生成することができる。エントロピーエンコーダ(113)は、ハフマンコーディング、又は算術コーディング等のエントロピーコーディング技術を使用することができる。一例では、エントロピーエンコーダ(113)は算術符号化を使用し、算術エンコーダである。一例では、符号化画像(131)は、コーディングしたビットストリームで送信される。
【0042】
符号化画像(131)は、エントロピーデコーダ(114)によって解凍(例えば、エントロピー復号化)されて、出力を生成することができる。エントロピーデコーダ(114)は、エントロピーエンコーダ(113)で使用されるエントロピー符号化技術に対応する、ハフマンコーディング、又は算術コーディング等のエントロピーコーディング技術を使用することができる。一例では、エントロピーデコーダ(114)は算術復号化を使用し、算術デコーダである。一例では、エントロピーエンコーダ(113)で可逆圧縮が使用され、エントロピーデコーダ(114)で可逆解凍が使用され、符号化画像(131)の送信によるノイズ等は省略可能であり、エントロピーデコーダ(114)からの出力は、量子化した潜在y^である。
【0043】
メインデコーダネットワーク(115)は、量子化した潜在y^を復号化して再構成画像x-を生成することができる。一例では、メインデコーダネットワーク(115)は、CNNを使用して実装される。再構成画像x-(すなわち、メインデコーダネットワーク(115)の出力)と量子化した潜在y^(すなわち、メインデコーダネットワーク(115)の入力)との間の関係は、式3を使用して記述することができる。
【数8】
ここで、パラメータθ
2は、メインデコーダネットワーク(115)の畳み込みカーネルで使用される重み及びバイアス(バイアスがメインデコーダネットワーク(115)で使用される場合)等のパラメータを表す。こうして、第1のサブNN(151)は、入力画像xを圧縮(例えば、符号化)して符号化画像(131)を取得し、符号化画像(131)を解凍(例えば、復号化)して再構成画像x-を取得することができる。再構成画像x-は、量子化器(112)によって導入された量子化損失により、入力画像xとは異なる可能性がある。
【0044】
いくつかの例では、第2のサブNN(152)は、エントロピー符号化に使用される量子化した潜在y^に対してエントロピーモデル(例えば、以前の確率モデル)を学習することができる。こうして、エントロピーモデルは、入力画像xに依存する条件付きエントロピーモデル、例えば混合ガウスモデル(GMM)、ガウススケールモデル(GSM)にすることができる。
【0045】
いくつかの例では、第2のサブNN(152)は、コンテキストモデルNN(116)、エントロピーパラメータNN(117)、ハイパーエンコーダネットワーク(121)、量子化器(122)、エントロピーエンコーダ(123)、エントロピーデコーダ(124)、及びハイパーデコーダネットワーク(125)を含むことができる。コンテキストモデルNN(116)で使用されるエントロピーモデルは、潜在的な自己回帰モデル(例えば、量子化した潜在y^)であり得る。一例では、ハイパーエンコーダネットワーク(121)、量子化器(122)、エントロピーエンコーダ(123)、エントロピーデコーダ(124)、及びハイパーデコーダネットワーク(125)は、ハイパーレベルのニューラルネットワーク(例えば、ハイパー事前NN)を使用して実装できるハイパー事前(hyperprior)モデルを形成する。ハイパー事前モデルは、コンテキストベースの予測を修正するために役立つ情報を表すことができる。コンテキストモデルNN(116)及びハイパー事前モデルからのデータは、エントロピーパラメータNN(117)によって結合することができる。エントロピーパラメータNN(117)は、条件付きガウスエントロピーモデル(例えば、GMM)等のエントロピーモデルの平均パラメータ及びスケールパラメータ等のパラメータを生成することができる。
【0046】
図1を参照すると、エンコーダ側では、量子化器(112)からの量子化した潜在y^がコンテキストモデルNN(116)に供給される。デコーダ側では、エントロピーデコーダ(114)からの量子化した潜在y^がコンテキストモデルNN(116)に供給される。コンテキストモデルNN(116)は、CNN等のニューラルネットワークを使用して実装することができる。コンテキストモデルNN(116)は、コンテキストモデルNN(116)に利用可能な量子化した潜在y^であるコンテキストy^
<iに基づいて出力o
cm,iを生成することができる。コンテキストy^
<iは、エンコーダ側で以前に量子化した潜在、又はデコーダ側で以前にエントロピー復号化した量子化した潜在を含むことができる。コンテキストモデルNN(116)の出力o
cm,iと入力(例えば、y^
<i)との間の関係は、式4を使用して記述することができる。
【数9】
ここで、パラメータθ
3は、コンテキストモデルNN(116)の畳み込みカーネルで使用される重み及びバイアス(バイアスがコンテキストモデルNN(116)で使用される場合)等のパラメータを表す。
【0047】
コンテキストモデルNN(116)からの出力o
cm,i及びハイパーデコーダネットワーク(125)からの出力o
hcは、エントロピーパラメータNN(117)に供給されて、出力o
epを生成する。エントロピーパラメータNN(117)は、CNN等のニューラルネットワークを使用して実装することができる。エントロピーパラメータNN(117)の出力o
epと入力(例えば、o
cm,i及びo
hc)との間の関係は、式5を使用して記述することができる。
【数10】
ここで、パラメータθ
4は、エントロピーパラメータNN(117)の畳み込みカーネルで使用される重み及びバイアス(バイアスがエントロピーパラメータNN(117)で使用される場合)等のパラメータを表す。エントロピーパラメータNN(117)の出力o
epは、エントロピーモデルを決定する(例えば、条件付けする)際に使用することができ、こうして、条件付きエントロピーモデルは、例えば、ハイパーデコーダネットワーク(125)からの出力o
hcを介して、入力画像xに依存し得る。一例では、出力o
epには、エントロピーモデル(GMM等)を条件付けするために使用される平均パラメータ及びスケールパラメータ等のパラメータが含まれる。
図1を参照すると、エントロピーモデル(例えば、条件付きエントロピーモデル)は、エントロピーコーディング及びエントロピー復号化それぞれにおいて、エントロピーエンコーダ(113)及びエントロピーデコーダ(114)によって使用され得る。
【0048】
第2のサブNN(152)は以下のように説明できる。潜在yをハイパーエンコーダネットワーク(121)に供給して、ハイパー潜在zを生成することができる。一例では、ハイパーエンコーダネットワーク(121)は、CNN等のニューラルネットワークを使用して実装される。ハイパー潜在zと潜在yとの間の関係は、式6を使用して記述することができる。
【数11】
ここで、パラメータθ
5は、ハイパーエンコーダネットワーク(121)の畳み込みカーネルで使用される重み及びバイアス(バイアスがハイパーエンコーダネットワーク(121)で使用される場合)等のパラメータを表す。
【0049】
ハイパー潜在zは量子化器(122)によって量子化され、量子化した潜在z^が生成される(ここで、z^は、
【数12】
を表す)。量子化した潜在z^は、例えば、エントロピーエンコーダ(123)による可逆圧縮を使用して圧縮され、ハイパーニューラルネットワークからの符号化ビット(132)等のサイド情報を生成することができる。エントロピーエンコーダ(123)は、ハフマンコーディング、又は算術コーディング等のエントロピーコーディング技術を使用することができる。一例では、エントロピーエンコーダ(123)は算術符号化を使用し、算術エンコーダである。一例では、符号化ビット(132)等のサイド情報は、例えば符号化画像(131)とともにコーディングしたビットストリームで送信することができる。
【0050】
符号化ビット(132)等のサイド情報は、エントロピーデコーダ(124)によって解凍(例えば、エントロピー復号化)されて、出力を生成することができる。エントロピーデコーダ(124)は、ハフマンコーディング、算術コーディング等のエントロピーコーディング技術を使用することができる。一例では、エントロピーデコーダ(124)は、算術復号化を使用し、算術デコーダである。一例では、可逆圧縮がエントロピーエンコーダ(123)で使用され、可逆解凍がエントロピーデコーダ(124)で使用され、サイド情報の送信等によるノイズが省かれ、エントロピーデコーダ(124)からの出力は、量子化した潜在z^とすることができる。ハイパーデコーダネットワーク(125)は、量子化した潜在z^を復号化して、出力o
hcを生成することができる。出力o
hcと量子化した潜在z^との間の関係は、式7を使用して記述することができる。
【数13】
ここで、パラメータθ
6は、ハイパーデコーダネットワーク(125)の畳み込みカーネルで使用される重み及びバイアス(バイアスがハイパーデコーダネットワーク(125)で使用される場合)等のパラメータを表す。
【0051】
上述したように、圧縮ビット又は符号化ビット(132)をサイド情報としてコーディングしたビットストリームに追加することができ、これによりエントロピーデコーダ(114)が条件付きエントロピーモデルを使用できるようになる。こうして、エントロピーモデルは画像に依存し、空間的に適応できるため、固定エントロピーモデルよりも正確になり得る。
【0052】
NICフレームワーク(100)は、例えば、
図1に示される1つ又は複数のコンポーネントを省略する、
図1に示される1つ又は複数の構成要素を修正する、及び/又は
図1に示されていない1つ又は複数のコンポーネントを含むように適切に適合させることができる。一例では、固定エントロピーモデルを使用するNICフレームワークは、第1のサブNN(151)を含み、第2のサブNN(152)を含まない。一例では、NICフレームワークは、エントロピーエンコーダ(123)及びエントロピーデコーダ(124)を除く、NICフレームワーク(100)内のコンポーネントを含む。
【0053】
一実施形態では、
図1に示されるNICフレームワーク(100)内の1つ又は複数のコンポーネントは、CNN等のニューラルネットワークを使用して実装される。各NNベースのコンポーネント(NICフレームワーク(例えば、NICフレームワーク(100))内の、例えばメインエンコーダネットワーク(111)、メインデコーダネットワーク(115)、コンテキストモデルNN(116)、エントロピーパラメータNN(117)、ハイパーエンコーダネットワーク(121)、又はハイパーデコーダネットワーク(125))は、任意の適切なアーキテクチャ(例えば、任意の適切な層の組合せを有する)を含むことができ、任意の適切なタイプのパラメータ(例えば、重み、バイアス、及び/又は重み及びバイアスの組合せ等)を含むことができ、及び任意の適切な数のパラメータを含むことができる。
【0054】
一実施形態では、メインエンコーダネットワーク(111)、メインデコーダネットワーク(115)、コンテキストモデルNN(116)、エントロピーパラメータNN(117)、ハイパーエンコーダネットワーク(121)、及びハイパーデコーダネットワーク(125)は、それぞれのCNNを使用して実装される。
【0055】
図2は、本開示の一実施形態によるメインエンコーダネットワーク(111)の例示的なCNNを示す。例えば、メインエンコーダネットワーク(111)は、4セットのレイヤ(layers:層)を含み、各レイヤセットは、畳み込みレイヤ5×5 c192 s2と、その後に続くGDNレイヤとを含む。
図2に示される1つ又は複数の層は変更及び/又は省略してもよい。追加の層をメインエンコーダネットワーク(111)に加えることができる。
【0056】
図3は、本開示の一実施形態によるメインデコーダネットワーク(115)の例示的なCNNを示す。例えば、メインデコーダネットワーク(115)は、3セットのレイヤを含み、各レイヤセットは、逆畳み込みレイヤ5×5 c192 s2と、その後に続くIGDNレイヤとを含む。さらに、3セットのレイヤの後には逆畳み込みレイヤ5×5 c3 s2が続き、その後にIGDNレイヤが続く。
図3に示される1つ又は複数の層は変更及び/又は省略してもよい。追加の層をメインデコーダネットワーク(115)に加えることができる。
【0057】
図4は、本開示の一実施形態によるハイパーエンコーダネットワーク(121)の例示的なCNNを示す。例えば、ハイパーエンコーダネットワーク(121)は、畳み込み層3×3 c192 s1とその後に続くleaky ReLU、畳み込み層5×5 c192 s2とその後に続くleaky ReLU、及び畳み込み層5×5 c192 s2を含む。
図4に示される1つ又は複数の層は変更及び/又は省略してもよい。追加の層をハイパーエンコーダネットワーク(121)に加えることができる。
【0058】
図5は、本開示の一実施形態によるハイパーデコーダネットワーク(125)の例示的なCNNを示す。例えば、ハイパーデコーダネットワーク(125)は、逆畳み込み層5×5 c192 s2とその後に続くleaky ReLU、逆畳み込み層5×5 c288 s2とその後に続くleaky ReLU、及び逆畳み込み層3×3 c384 s1を含む。
図5に示される1つ又は複数の層5は変更及び/又は省略してもよい。追加の層をハイパーデコーダネットワーク(125)に加えることができる。
【0059】
図6は、本開示の一実施形態によるコンテキストモデルNN(116)の例示的なCNNを示す。例えば、コンテキストモデルNN(116)は、コンテキスト予測のためのマスクした畳み込み5×5 c384 s1を含み、こうして、式4のコンテキストy^
<iは、制限したコンテキスト(例えば、5×5畳み込みカーネル)を含む。
図6の畳み込み層は修正可能である。追加の層をコンテキストモデルNN(1016)に加えることができる。
【0060】
図7は、本開示の一実施形態によるエントロピーパラメータNN(117)の例示的なCNNを示す。例えば、エントロピーパラメータNN(117)は、畳み込み層1×1 c640 s1とその後に続くleaky ReLU、畳み込み層1×1 c512 s1とその後に続くleaky ReLU、及び畳み込み層1×1 c384 s1を含む。
図7に示される1つ又は複数の層は変更及び/又は省略してもよい。追加の層をエントロピーパラメータNN(117)に加えることができる。
【0061】
NICフレームワーク(100)は、
図2~
図7を参照して説明したように、CNNを使用して実装することができる。NICフレームワーク(100)は、NICフレームワーク(100)内の1つ又は複数のコンポーネント(例えば、(111)、(115)、(116)、(117)、(121)、及び/又は(125))が任意の適切なタイプのニューラルネットワーク(例えば、CNN又は非CNNベースのニューラルネットワーク)を使用して実装されるように適切に適合させることができる。NICフレームワーク(100)の1つ又は複数の他のコンポーネントは、ニューラルネットワークを使用して実装することができる。
【0062】
ニューラルネットワーク(例えば、CNN)を含むNICフレームワーク(100)は、ニューラルネットワークで使用されるパラメータを学習するようにトレーニングすることができる。例えば、CNNが使用される場合に、メインエンコーダネットワーク(111)の畳み込みカーネルで使用される重み及びバイアス(バイアスがメインエンコーダネットワーク(111)で使用される場合)、メインデコーダネットワーク(115)の畳み込みカーネルで使用される重み及びバイアス(バイアスがメインデコーダネットワーク(115)で使用される場合)、ハイパーエンコーダネットワーク(121)の畳み込みカーネルで使用される重み及びバイアス(バイアスがハイパーエンコーダネットワーク(121)で使用される場合)、ハイパーデコーダネットワーク(125)の畳み込みカーネルで使用される重み及びバイアス(バイアスがハイパーデコーダネットワーク(125)で使用される場合)、コンテキストモデルNN(116)の畳み込みカーネルで使用される重み及びバイアス(バイアスがコンテキストモデルNN(116)で使用される場合)、及びエントロピーパラメータNN(117)の畳み込みカーネルで使用される重み及びバイアス(バイアスがエントロピーパラメータNN(117)で使用される場合)等の、θ1~θ6で表されるパラメータは、それぞれトレーニングプロセス(例えば、オフライン・トレーニングプロセス、及びオンライン・トレーニングプロセス等)で学習することができる。
【0063】
一例として、
図2を参照すると、メインエンコーダネットワーク(111)は4つの畳み込み層を含み、各畳み込み層は5×5の畳み込みカーネル及び192チャネルを有する。こうして、メインエンコーダネットワーク(111)の畳み込みカーネルで使用される重みの数は19200(すなわち、4×5×5×192)である。メインエンコーダネットワーク(111)で使用されるパラメータには、19200の重みとオプションのバイアスとが含まれる。バイアス及び/又は追加のNNがメインエンコーダネットワーク(111)で使用される場合に、追加のパラメータを含めることができる。
【0064】
図1を参照すると、NICフレームワーク(100)は、ニューラルネットワーク上に構築された少なくとも1つのコンポーネント又はモジュールを含む。少なくとも1つのコンポーネントは、メインエンコーダネットワーク(111)、メインデコーダネットワーク(115)、ハイパーエンコーダネットワーク(121)、ハイパーデコーダネットワーク(125)、コンテキストモデルNN(116)、及びエントロピーパラメータNN(117)のうちの1つ又は複数を含むことができる。少なくとも1つのコンポーネントは個別にトレーニングすることができる。一例では、トレーニングプロセスは、各コンポーネントのパラメータを個別に学習するために使用される。少なくとも1つのコンポーネントは、グループとして共同してトレーニングすることができる。一例では、トレーニングプロセスは、少なくとも1つのコンポーネントのサブセットのパラメータを共同で学習するために使用される。一例では、トレーニングプロセスは、少なくとも1つのコンポーネントの全てのパラメータを学習するために使用され、こうして、E2E最適化と呼ばれる。
【0065】
NICフレームワーク(100)における1つ又は複数のコンポーネントのトレーニングプロセスにおいて、1つ又は複数のコンポーネントの重み(又は重み係数)を初期化することができる。一例では、重みは、対応する事前トレーニング済みニューラルネットワークモデル(例えば、DNNモデル、CNNモデル)に基づいて初期化される。一例では、重みを乱数に設定することによって、重みが初期化される。
【0066】
例えば、重みを初期化した後に、トレーニング画像のセットを使用して、1つ又は複数のコンポーネントをトレーニングすることができる。トレーニング画像のセットには、任意の適切なサイズを有する任意の適切な画像を含めることができる。いくつかの例では、トレーニング画像のセットには、空間領域内にある生の画像、自然画像、及び/又はコンピュータ生成画像等からの画像が含まれる。いくつかの例では、トレーニング画像のセットには、残差画像からの画像、又は空間領域に残差データを有する残差画像が含まれる。残差データは残差計算機によって計算することができる。いくつかの例では、生の画像及び/又は残差データを含む残差画像は、NICフレームワーク(100)等のNICフレームワークにおいてニューラルネットワークをトレーニングするために直接使用され得る。こうして、生の画像、残差画像、生の画像からの画像、及び/又は残差画像からの画像を使用して、NICフレームワークでニューラルネットワークをトレーニングすることができる。
【0067】
簡潔にするために、以下のトレーニングプロセス(例えば、オフライン・トレーニングプロセス、及びオンライン・トレーニングプロセス等)について、トレーニング画像を例として使用して説明する。この説明はトレーニングブロックに適切に適合させることができる。トレーニング画像のセットのうちのトレーニング画像tは、
図1の符号化プロセスを通して、圧縮表現(例えば、ビットストリームへの符号化情報)を生成することができる。符号化情報は、
図1で説明した復号化プロセスを通して、再構成画像t-を計算して再構成するすることができる(ここで、再構成画像t-は、
【数14】
を表す)。
【0068】
NICフレームワーク(100)では、2つの競合するターゲット、例えば、再構成品質及びビット消費量のバランスが取られる。品質損失関数(例えば、歪み又は歪み損失)
【数15】
を使用して、再構成(例えば、再構成画像t-)と元の画像(例えば、トレーニング画像t)との間の差等の再構成品質を示すことができる。レート(又はレート損失)Rを使用して、圧縮表現のビット消費を示すことができる。一例では、レート損失Rは、例えばコンテキストモデルを決定する際に使用されるサイド情報をさらに含む。
【0069】
ニューラル画像圧縮の場合に、量子化の微分可能な近似をE2E最適化で使用することができる。様々な例において、ニューラルネットワークベースの画像圧縮のトレーニングプロセスにおいて、量子化をシミュレートするためにノイズ注入が使用され、こうして、量子化は、量子化器(例えば、量子化器(112))によって実行される代わりに、ノイズ注入によってシミュレートされる。こうして、ノイズ注入を使用したトレーニングにより、量子化エラーを変分的に(variationally)近似することができる。ピクセル当たりのビット数(BPP)推定器を使用してエントロピーコーダをシミュレートすることができるため、エントロピーコーディングは、エントロピーエンコーダ(例えば、(113))及びエントロピーデコーダ(例えば、(114))によって実行される代わりにBPP推定器によってシミュレートされる。従って、トレーニングプロセス中に式1に示される損失関数Lにおけるレート損失Rは、例えばノイズ注入及びBPP推定器に基づいて推定することができる。一般に、レートRを高くすると歪みDを低くすることができ、レートRを低くすると歪みDが大きくなり得る。こうして、式1のトレードオフ・ハイパーパラメータλを使用して、結合R-D損失Lを最適化することができ、ここで、Lは、λD及びRの和として最適化することができる。トレーニングプロセスは、結合R-D損失Lが最小化又は最適化されるように、NICフレームワーク(100)内の1つ又は複数のコンポーネント(例えば、(111)(115))のパラメータを調整するために使用され得る。いくつかの例では、トレードオフ・ハイパーパラメータλを使用して、結合レート歪み(R-D)損失を次のように最適化することができる。
【数16】
ここで、Eは、符号化前の元の画像残差と比較した、復号化した画像残差の歪みを測定し、これは、残差符号化/復号化DNN及び符号化/復号化DNNの正則化損失として機能する。βは、正則化損失の重要性のバランスをとるためのハイパーパラメータである。
【0070】
様々なモデルを使用して、歪み損失D及びレート損失Rを決定し、こうして式1の結合R-D損失Lを決定することができる。一例では、歪み損失
【数17】
は、平均二乗誤差、マルチスケール構造類似性(MS-SSIM)品質インデックス、又はPSNR及びMS-SSIMの重み付けされた組合せ等に基づくメトリックであるピーク信号対雑音比(PSNR)として表される。
【0071】
一例では、トレーニングプロセスのターゲットは、エンコーダ側で使用されるビデオエンコーダ等の符号化ニューラルネットワーク(例えば、符号化DNN)、及びデコーダ側で使用されるビデオデコーダ等の復号化ニューラルネットワーク(例えば、復号DNN)をトレーニングすることである。一例として、
図1を参照すると、符号化ニューラルネットワークは、メインエンコーダネットワーク(111)、ハイパーエンコーダネットワーク(121)、ハイパーデコーダネットワーク(125)、コンテキストモデルNN(116)、及びエントロピーパラメータNN(117)を含むことができる。復号化ニューラルネットワークは、メインデコーダネットワーク(115)、ハイパーデコーダネットワーク(125)、コンテキストモデルNN(116)、及びエントロピーパラメータNN(117)を含むことができる。ビデオエンコーダ及び/又はビデオデコーダは、NNに基づく及び/又はNNに基づかない、他のコンポーネントを含むことができる。
【0072】
NICフレームワーク(例えば、NICフレームワーク(100))は、E2E方式でトレーニングすることができる。一例では、符号化ニューラルネットワーク及び復号化ニューラルネットワークは、例えば勾配降下法アルゴリズムを使用して、E2E方式で逆伝播された勾配に基づいてトレーニングプロセスにおいて一緒に更新される。勾配降下法アルゴリズムは、NICフレームワークの微分可能関数の極小値(例えば、レート歪み損失の極小値)を見つけるために、NICフレームワークのパラメータを繰り返し最適化することができる。例えば、勾配降下法アルゴリズムは、現在の点における微分可能関数の勾配(又は近似勾配)の反対方向にステップを繰り返すことができる。
【0073】
NICフレームワーク(100)内のニューラルネットワークのパラメータをトレーニングした後に、NICフレームワーク(100)内の1つ又は複数のコンポーネントを使用して画像を符号化及び/又は復号化することができる。一実施形態では、エンコーダ側で、画像エンコーダは、入力画像xをビットストリームで送信される符号化画像(131)に符号化するように構成される。画像エンコーダは、NICフレームワーク(100)内に複数のコンポーネントを含むことができる。一実施形態では、デコーダ側で、対応する画像デコーダは、ビットストリームで搬送される符号化画像(131)を再構成画像x-に復号化するように構成される。画像デコーダは、NICフレームワーク(100)内に複数のコンポーネントを含むことができる。
【0074】
NICフレームワークによる画像エンコーダ及び画像デコーダは、対応する構造を有することができることに留意されたい。
【0075】
図8は、本開示の一実施形態による例示的な画像エンコーダ(800)を示す。画像エンコーダ(800)は、メインエンコーダネットワーク(811)、量子化器(812)、エントロピーエンコーダ(813)、及び第2のサブNN(852)を含む。メインエンコーダネットワーク(811)はメインエンコーダネットワーク(111)と同様に構成され、量子化器(812)は量子化器(112)と同様に構成され、エントロピーエンコーダ(813)はエントロピーエンコーダ(113)と同様に構成され、第2のサブNN(852)は第2のサブNN(152)と同様に構成される。これは、
図1を参照して上で説明しており、明確にするためにここでは省略する。
【0076】
図9は、本開示の一実施形態による例示的な画像デコーダ(900)を示す。画像デコーダ(900)は画像エンコーダ(800)に対応することができる。画像デコーダ(900)は、メインデコーダネットワーク(915)、エントロピーデコーダ(914)、コンテキストモデルNN(916)、エントロピーパラメータNN(917)、エントロピーデコーダ(924)、及びハイパーデコーダネットワーク(925)を含むことができる。メインデコーダネットワーク(915)はメインデコーダネットワーク(115)と同様に構成され、エントロピーデコーダ(914)はエントロピーデコーダ(114)と同様に構成され、コンテキストモデルNN(916)はコンテキストモデルNN(116)と同様に構成され、エントロピーパラメータNN(917)はエントロピーパラメータNN(117)と同様に構成され、エントロピーデコーダ(924)はエントロピーデコーダ(124)と同様に構成され、ハイパーデコーダネットワーク(925)はハイパーデコーダネットワーク(125)と同様に構成される。これは、
図1を参照して上で説明しており、明確にするためにここでは省略する。
【0077】
図8~
図9を参照すると、エンコーダ側では、画像エンコーダ(800)は、ビットストリームで送信される符号化画像(831)及び符号化ビット(832)を生成することができる。デコーダ側では、画像デコーダ(900)は、符号化画像(931)及び符号化ビット(932)を受信して復号化することができる。符号化画像(931)及び符号化ビット(932)は、受信したビットストリームから解析することができる。
【0078】
図10~
図11は、本開示の実施形態による例示的な画像エンコーダ(1000)及び対応する画像デコーダ(1100)をそれぞれ示す。
図10を参照すると、画像エンコーダ(1000)は、メインエンコーダネットワーク(1011)、量子化器(1012)、及びエントロピーエンコーダ(1013)を含む。メインエンコーダネットワーク(1011)はメインエンコーダネットワーク(111)と同様に構成され、量子化器(1012)は量子化器(112)と同様に構成され、エントロピーエンコーダ(1013)はエントロピーエンコーダ(113)と同様に構成される。これは、
図1を参照して上で説明しており、明確にするためにここでは省略する。
【0079】
図11を参照すると、画像デコーダ(1100)は、メインデコーダネットワーク(1115)及びエントロピーデコーダ(1114)を含む。メインデコーダネットワーク(1115)はメインデコーダネットワーク(115)と同様に構成され、エントロピーデコーダ(1114)はエントロピーデコーダ(114)と同様に構成される。これは、
図1を参照して上で説明しており、明確にするためにここでは省略する。
【0080】
図10及び
図11を参照すると、画像エンコーダ(1000)は、ビットストリームに含められる符号化画像(1031)を生成することができる。画像デコーダ(1100)は、ビットストリームを受信し、ビットストリームで搬送される符号化画像(1131)を復号化することができる。
【0081】
本開示のいくつかの態様によれば、画像圧縮は画像の冗長性を除去することができ、こうして、圧縮画像を表すために使用することができるビット数を大幅に減らすことができる。画像圧縮は、画像の送信及び保存に利点をもたらす。圧縮画像は、圧縮領域の画像と呼ばれ得る。圧縮画像に対する画像処理は、圧縮領域における画像処理と呼ばれ得る。いくつかの例では、画像圧縮は異なる圧縮レートで実行することができ、いくつかの例では、圧縮領域はマルチレート圧縮領域と呼ばれ得る。
【0082】
コンピュータビジョン(CV)は、ニューラルネットワークを備えたコンピュータを使用して画像の内容を検出、理解、及び処理する人工知能(AI)の分野である。CVタスクには、画像分類、オブジェクト検出、超解像度(1つ又は複数の低解像度画像から高解像度画像を生成する)、及び画像ノイズ除去等が含まれ得るが、これらに限定されない。いくつかの関連する例では、CVタスクは、圧縮していない元の画像、及び圧縮画像からの再構成画像等の解凍画像に対して実行される。いくつかの例では、圧縮画像を解凍して再構成画像が生成され、再構成画像に対してCVタスクが実行される。再構成には大量の計算が必要になる場合がある。画像を再構成せずに圧縮領域でCVタスクを実行すると、計算の複雑さが軽減され、CVタスクの待ち時間が短縮される。
【0083】
本開示のいくつかの態様は、圧縮領域におけるマルチレート・コンピュータビジョンタスク・ニューラルネットワークのための技術を提供する。いくつかの例では、この技術は、マルチレート圧縮領域CVタスクフレームワーク(CDCVTF)のモデルを含むエンドツーエンド(E2E)最適化フレームワークで使用することができる。E2E最適化フレームワークには、エンコーダ及びデコーダが含まれる。エンコーダは入力画像のコーディングしたビットストリームを生成することができ、デコーダはコーディングしたビットストリームを復号化して、CVタスクベースの結果を生成する。エンコーダとデコーダとは両方とも画像圧縮のマルチレートをサポートしている。エンドツーエンド(E2E)最適化フレームワークは、事前トレーニング済みの人工ニューラルネットワーク(ANN)ベースのフレームワークにすることができる。
【0084】
いくつかの例では、圧縮画像に対するCVタスクは、ニューラルネットワークの2つの部分によって実行され得る。いくつかの例では、ニューラルネットワークの2つの部分は、エンドツーエンドでトレーニングすることができるE2Eフレームワークを形成する。ニューラルネットワークの2つの部分には、画像コーディング・ニューラルネットワークの第1の部分と、CVタスク・ニューラルネットワークの第2の部分とが含まれる。画像コーディング・ニューラルネットワークは、画像圧縮エンコーダとも呼ばれる。CVタスク・ニューラルネットワークは、CVタスクデコーダとも呼ばれる。画像圧縮エンコーダは、画像をコーディングされるビットストリームに符号化することができる。CVタスクデコーダは、コーディングしたビットストリームを復号化して、圧縮領域においてCVタスクの結果を生成することができる。CVタスクデコーダは、圧縮画像に基づいてCVタスクを実行する。
【0085】
いくつかの例では、NICフレームワークのエンコーダによって画像を圧縮して、圧縮画像又は圧縮特徴マップを搬送するコーディングしたビットストリームを生成する。さらに、圧縮画像又は圧縮特徴マップをCVタスク・ニューラルネットワークに提供して、CVタスクの結果を生成することができる。
【0086】
図12は、いくつかの例において、圧縮領域でCVタスクを実行するためのシステム(1200)を示す。システム(1200)は、画像圧縮エンコーダ(1220)、画像圧縮デコーダ(1250)、及びCVタスクデコーダ(1270)を含む。画像圧縮デコーダ(1250)は、画像圧縮エンコーダ(1220)に対応することができる。例えば、画像圧縮エンコーダ(1220)は画像エンコーダ(800)と同様に構成することができ、画像圧縮デコーダ(1250)は画像デコーダ(900)と同様に構成することができる。別の例では、画像圧縮エンコーダ(1220)は画像エンコーダ(1000)と同様に構成することができ、画像圧縮デコーダ(1250)は画像デコーダ(1100)と同様に構成することができる。いくつかの例では、画像圧縮エンコーダ(1220)は、NICフレームワークの(エンコーダモデルを有する)符号化部分として構成され、画像圧縮デコーダ(1250)は、NICフレームワークの(デコーダモデルを有する)復号化部分として構成される。NICフレームワークをエンドツーエンドでトレーニングして、E2E最適化フレームワークのエンコーダモデル及びデコーダモデルの事前トレーニング済みパラメータを決定することができる。画像圧縮エンコーダ(1220)及び画像圧縮デコーダ(1250)は、事前トレーニング済みパラメータを有するエンコーダモデル及びデコーダモデルに従って構成される。画像圧縮エンコーダ(1220)は、入力画像を受け取り、入力画像を圧縮し、入力画像に対応する圧縮画像を搬送するコーディングしたビットストリームを生成することができる。画像圧縮デコーダ(1250)は、コーディングしたビットストリームを受信し、圧縮画像を解凍し、再構成画像を生成することができる。
【0087】
CVタスクデコーダ(1270)は、圧縮画像を搬送するコーディングしたビットストリームを復号化し、入力画像に対応するCVタスク結果を生成するように構成される。CVタスクデコーダ(1270)は、シングル・タスクデコーダであってもよく、又はマルチ・タスクデコーダであってもよい。CVタスクには、超解像、オブジェクト検出、画像ノイズ除去、及び画像分類等が含まれるが、これらに限定されない。
【0088】
CVタスクデコーダ(1270)は、トレーニングデータに基づいてトレーニングされるニューラルネットワーク(例えば、CVタスクデコーダモデル)を含む。例えば、トレーニングデータは、トレーニング画像、(例えば、画像圧縮エンコーダ(1220)による)圧縮したトレーニング画像、トレーニング画像のガイドラインCVタスク結果を含むことができる。例えば、CVタスクデコーダ(1270)は、圧縮したトレーニング画像を入力として受け取り、トレーニングCVタスクの結果を生成することができる。次に、(例えば、調整可能なニューラルネットワーク構造及び調整可能なパラメータを有する)CVタスクデコーダ(1270)は、ガイドラインCVタスク結果とトレーニングCVタスクの結果との間の損失を最小限に抑えるようにトレーニングされる。トレーニングにより、CVタスクデコーダ(1270)の構造及び事前トレーニング済みパラメータが決定される。
【0089】
CVタスクデコーダ(1270)は、CVタスク結果を生成するために任意の適切なニューラルネットワーク構造を有することができることに留意されたい。いくつかの実施形態では、CVタスクデコーダ(1270)は、コーディングしたビットストリームを復号化して、画像再構成を行わずにCVタスク結果を直接生成する。いくつかの実施形態では、CVタスクデコーダ(1270)は、まず、コーディングしたビットストリームを復号化し、解凍画像(再構成画像とも呼ばれる)を生成し、次に、CVタスクモデルを解凍画像に適用して、CVタスク結果を生成する。
【0090】
いくつかの例では、画像圧縮エンコーダ(1220)、画像圧縮デコーダ(1250)、及びCVタスクデコーダ(1270)は、異なる電子装置内にある。例えば、画像圧縮エンコーダ(1220)は第1の装置(1210)内にあり、画像圧縮デコーダ(1250)は第2の装置(1240)内にあり、CVタスクデコーダ(1270)は第3の装置(1260)内にある。いくつかの例では、画像圧縮デコーダ(1250)及びCVタスクデコーダ(1270)は、同じ装置内にあってもよい。いくつかの例では、画像圧縮エンコーダ(1220)と画像圧縮デコーダ(1250)は同じ装置内にあってもよい。いくつかの例では、画像圧縮エンコーダ(1220)、CVタスクデコーダ(1270)は、同じ装置内にあってもよい。いくつかの例では、画像圧縮エンコーダ(1220)、画像圧縮デコーダ(1250)、及びCVタスクデコーダ(1270)は、同じ装置内にあってもよい。
【0091】
図13は、いくつかの例において、圧縮領域でCVタスクを実行するためのシステム(1300)を示す。システム(1300)は、画像圧縮エンコーダ(1320)及びCVタスクデコーダ(1370)を含む。いくつかの例では、画像圧縮エンコーダ(1320)は、NICフレームワークの(エンコーダモデルを有する)符号化部分として構成され、CVタスクデコーダ(1370)は、NICフレームワークの(デコーダモデルを有する)復号化部分として構成される。NICフレームワークは、トレーニングデータに基づいてエンドツーエンドでトレーニングして、E2E最適化フレームワークのエンコーダモデルとデコーダモデルの事前トレーニング済みパラメータを決定することができる。例えば、トレーニングデータには、トレーニング画像(解凍)、トレーニング画像のガイドラインCVタスク結果が含まれる場合がある。例えば、NICフレームワークはトレーニング画像を入力として受け取り、トレーニングCVタスクの結果を生成することができる。次に、NICフレームワークが(調整可能なニューラルネットワーク構造と調整可能なパラメータとを使用して)トレーニングされ、ガイドラインCVタスク結果とトレーニングCVタスクの結果との間の損失が最小限に抑えられる。画像圧縮エンコーダ(1320)及びCVタスクデコーダ(1370)は、事前トレーニング済みパラメータに従って構成される。
【0092】
次に、画像圧縮エンコーダ(1320)は、入力画像を受信し、圧縮画像又は圧縮特徴マップを搬送するコーディングしたビットストリームを生成することができる。CVタスクデコーダ(1370)は、コーディングしたビットストリームを受信し、圧縮画像又は圧縮特徴マップを解凍し、CVタスク結果を生成することができる。
【0093】
CVタスクデコーダ(1370)は、シングル・タスクデコーダであってもよく、又はマルチ・タスクデコーダであってもよい。CVタスクには、超解像、オブジェクト検出、画像ノイズ除去、画像分類等が含まれ得るが、これらに限定されない。
【0094】
CVタスクデコーダ(1370)は、任意の適切なニューラルネットワーク構造を使用することができることに留意されたい。いくつかの実施形態では、CVタスクデコーダ(1370)は、コーディングしたビットストリームを復号化して、画像再構成を行わずにCVタスク結果を直接生成する。いくつかの実施形態では、CVタスクデコーダ(1370)は、まず、コーディングしたビットストリームを復号化し、解凍した画像(再構成画像とも呼ばれる)を生成し、次に、CVタスクモデルを解凍した画像に適用して、CVタスク結果を生成する。
【0095】
いくつかの例では、画像圧縮エンコーダ(1320)及びCVタスクデコーダ(1370)は、異なる電子装置内にある。例えば、画像圧縮エンコーダ(1320)は第1の装置(1310)内にあり、CVタスクデコーダ(1370)は第2の装置(1360)内にある。いくつかの例では、画像圧縮エンコーダ(1320)及びCVタスクデコーダ(1370)は、同じ装置内にあってもよい。
【0096】
本開示のいくつかの態様によれば、システム(1200)及びシステム(1300)における圧縮領域は、マルチレート圧縮のために適切に調整され得る。いくつかの例では、ハイパーパラメータλを使用して圧縮レートを調整する。いくつかの例では、圧縮レートはピクセル当たりのビット数として規定され、式9に従って計算することができる。
圧縮レート=R/(W×H) 式9
ここで、Rは、圧縮画像のビット消費量であり、式1でも使用され、Wは入力画像の幅であり、Hは入力画像の高さである。式1及び式9によると、ハイパーパラメータλが増加すると、圧縮レートも増加する。
【0097】
本開示のいくつかの態様は、圧縮領域CVタスクフレームワーク(CDCVTF)におけるマルチレートのニューラルネットワークモデルを提供する。いくつかの例では、ハイパーパラメータλはCDCVTFへの入力であるため、CDCVTFは圧縮レートを理解するようにトレーニングされ、次に、ハイパーパラメータλの値を使用して、CDCVTFモデルの圧縮レートを調整することができる。ハイパーパラメータλは、CDCVTFにおけるマルチレートの技術を説明するために以下の説明で使用され、圧縮レートを調整することができる他の適切なパラメータを使用するように技術を適切に調整することができることに留意されたい。
【0098】
図14は、いくつかの例において、CVタスクをマルチレート圧縮領域において実行するためのシステム(1400)を示す。システム(1400)は、マルチレート画像圧縮エンコーダ(1411)、マルチレート画像圧縮デコーダ(1441)、及びマルチレートCVタスクデコーダ(1461)を含む。いくつかの例では、マルチレート画像圧縮デコーダ(1441)は、マルチレート画像圧縮エンコーダ(1411)に対応することができる。いくつかの例では、マルチレート画像圧縮エンコーダ(1411)は、マルチレートNICフレームワークの(エンコーダモデルを有する)符号化部分として構成され、マルチレート画像圧縮デコーダ(1441)は、マルチレートNICフレームワークの(デコーダモデルを有する)復号化部分として構成される。マルチレートNICフレームワークは、エンドツーエンド(例えば、E2EマルチレートNICトレーニング)でトレーニングされて、マルチレート画像圧縮のためのE2E最適化フレームワークのエンコーダモデル及びデコーダモデルの事前トレーニング済みパラメータを決定することができる。
【0099】
図14の例では、マルチレート画像圧縮エンコーダ(1411)は、変換モジュール(1430)及び画像圧縮エンコーダ(1420)を含む。変換モジュール(1430)は、ハイパーパラメータλをテンソル(1431)に変換するニューラルネットワークを含む。画像圧縮エンコーダ(1420)は、テンソル(1431)に基づいて入力画像を圧縮して、入力画像に対応する圧縮画像を搬送するコーディングしたビットストリームを生成することができる。いくつかの例では、変換モジュール(1430)内のニューラルネットワークは、E2EマルチレートNICトレーニング中に調整して事前トレーニング済みパラメータを決定することができる調整可能な構造又は調整可能なパラメータを含む。
【0100】
図14の例では、マルチレート画像圧縮デコーダ(1441)は、変換モジュール(1445)及び画像圧縮デコーダ(1450)を含む。変換モジュール(1445)は、ハイパーパラメータλをテンソル(1446)に変換するニューラルネットワークを含む。画像圧縮デコーダ(1450)は、テンソル(1446)に基づいて圧縮画像を解凍して、再構成画像を生成することができる。いくつかの例では、変換モジュール(1445)内のニューラルネットワークは、E2EマルチレートNICトレーニング中に調整して事前トレーニング済みパラメータを決定することができる調整可能な構造又は調整可能なパラメータを含む。
【0101】
図14の例では、マルチレートCVタスクデコーダ(1461)は、変換モジュール(1480)及びCVタスクデコーダ(1470)を含む。変換モジュール(1480)は、ハイパーパラメータλをテンソル(1481)に変換するニューラルネットワークを含む。CVタスクデコーダ(1470)は、テンソル(1481)に基づいて圧縮画像を復号化して、CVタスク結果を生成することができる。いくつかの例では、変換モジュール(1480)内のニューラルネットワークは、トレーニング(CVタスクトレーニングと呼ばれる)中に調整して事前トレーニング済みパラメータを決定することができる調整可能な構造又は調整可能なパラメータを含む。
【0102】
マルチレートCVタスクデコーダ(1461)は、シングル・タスクデコーダであってもよく、又はマルチ・タスクデコーダであってもよい。CVタスクには、超解像、オブジェクト検出、画像ノイズ除去、画像分類等が含まれ得るが、これらに限定されない。
【0103】
マルチレートCVタスクデコーダ(1461)は、トレーニングデータに基づいてCVタスクトレーニングでトレーニングすることができる。例えば、トレーニングデータには、トレーニング画像、(例えば、マルチレート画像圧縮デコーダ(1441)に基づく)対応するレートを有する圧縮トレーニング画像、トレーニング画像のガイドラインCVタスク結果が含まれ得る。例えば、マルチレートCVタスクデコーダ(1461)は、対応するレートを有する圧縮トレーニング画像を入力として受け取り、トレーニングCVタスクの結果を生成することができる。次に、マルチレートCVタスクデコーダ(1461)は、ガイドラインCVタスク結果とトレーニングCVタスクの結果との間の損失を最小限に抑えるために(調整可能なニューラルネットワーク構造及び調整可能なパラメータを用いて)トレーニングされる。
【0104】
いくつかの実施形態では、マルチレートCVタスクデコーダ(1461)は、コーディングしたビットストリームを復号化して、画像再構成を行わずにCVタスク結果を直接生成する。いくつかの実施形態では、マルチレートCVタスクデコーダ(1461)は、最初にコーディングしたビットストリームを復号化し、解凍した画像を生成し、次に、CVタスクモデルを解凍した画像に適用して、CVタスク結果を生成する。
【0105】
いくつかの例では、マルチレート画像圧縮エンコーダ(1411)、マルチレート画像圧縮デコーダ(1441)、及びマルチレートCVタスクデコーダ(1461)は、異なる電子装置内にある。例えば、マルチレート画像圧縮エンコーダ(1411)は第1の装置内にあり、マルチレート画像圧縮デコーダ(1441)は第2の装置内にあり、マルチレートCVタスクデコーダ(1461)は第3の装置内にある。いくつかの例では、マルチレート画像圧縮デコーダ(1441)及びマルチレートCVタスクデコーダ(1461)は、同じ装置内にあってもよい。いくつかの例では、マルチレート画像圧縮エンコーダ(1411)及びマルチレート画像圧縮デコーダ(1441)は、同じ装置内にあってもよい。いくつかの例では、マルチレート画像圧縮エンコーダ(1411)、マルチレートCVタスクデコーダ(1461)は、同じ装置内にあってもよい。いくつかの例では、マルチレート画像圧縮エンコーダ(1411)、マルチレート画像圧縮デコーダ(1441)、及びマルチレートCVタスクデコーダ(1461)は、同じ装置内にあってもよい。
【0106】
いくつかの例では、変換モジュール(1430)、変換モジュール(1445)、及び変換モジュール(1480)は、同じニューラルネットワーク構造及び同じ事前トレーニング済みパラメータを有することができる。いくつかの例では、変換モジュール(1430)、変換モジュール(1445)、及び変換モジュール(1480)は、同じニューラルネットワーク構造を有するが、異なる事前トレーニング済みパラメータを有することができる。いくつかの例では、変換モジュール(1430)、変換モジュール(1445)、及び変換モジュール(1480)は、異なるニューラルネットワーク構造を有することができる。
【0107】
ハイパーパラメータλの値に従って生成されたテンソルは、ニューラルネットワーク内の任意の適切な層に提供できることに留意されたい。例えば、ハイパーパラメータλの値に従って生成されるテンソル(1481)は、CVタスクデコーダ(1470)のニューラルネットワーク内の1つ又は複数の層に提供され得る。
【0108】
図15は、いくつかの例において、CVタスクをマルチレート圧縮領域において実行するためのシステム(1500)を示す。システム(1500)は、マルチレート画像圧縮エンコーダ(1511)及びマルチレートCVタスクデコーダ(1561)を含む。いくつかの例では、マルチレート画像圧縮エンコーダ(1611)は、マルチレートNICフレームワークの(エンコーダモデルを有する)符号化部分として構成され、マルチレートCVタスクデコーダ(1561)は、マルチレートNICフレームワークの(デコーダモデルを有する)復号化部分として構成される。マルチレートNICフレームワークは、エンドツーエンド(例えば、E2EマルチレートNICトレーニング)でトレーニングして、マルチレートCVタスクのためのE2E最適化フレームワークのエンコーダモデル及びデコーダモデルの事前トレーニング済みパラメータを決定することができる。
【0109】
図15の例では、マルチレート画像圧縮エンコーダ(1511)は、変換モジュール(1530)及び画像圧縮エンコーダ(1520)を含む。変換モジュール(1530)は、ハイパーパラメータλをテンソル(1531)に変換するニューラルネットワークを含む。画像圧縮エンコーダ(1520)は、テンソル(1531)に基づいて入力画像を圧縮して、入力画像に対応する圧縮画像又は圧縮特徴マップを搬送するコーディングしたビットストリームを生成することができる。いくつかの例では、変換モジュール(1530)内のニューラルネットワークは、E2EマルチレートNICトレーニング中に調整して事前トレーニング済みパラメータを決定することができる調整可能な構造又は調整可能なパラメータを含む。
【0110】
図15の例では、マルチレートCVタスクデコーダ(1561)は、変換モジュール(1580)及びCVタスクデコーダ(1570)を含む。変換モジュール(1580)は、ハイパーパラメータλをテンソル(1581)に変換するニューラルネットワークを含む。CVタスクデコーダ(1570)は、テンソル(1581)に基づいて圧縮画像又は圧縮特徴マップを復号化して、CVタスク結果を生成することができる。いくつかの例では、変換モジュール(1580)内のニューラルネットワークは、E2EマルチレートNICトレーニング中に調整して事前トレーニング済みパラメータを決定することができる調整可能な構造又は調整可能なパラメータを含む。
【0111】
マルチレートCVタスクデコーダ(1561)は、シングル・タスクデコーダであってもよく、又はマルチ・タスクデコーダであってもよい。CVタスクには、超解像、オブジェクト検出、画像ノイズ除去、画像分類等が含まれるが、これらに限定されない。
【0112】
マルチレートCVタスクデコーダ(1561)は、トレーニングデータに基づいて、E2EマルチレートNICトレーニングにおいてマルチレート画像圧縮エンコーダ(1511)を用いてトレーニングすることができる。例えば、トレーニングデータには、トレーニング画像、ハイパーパラメータλの値、トレーニング画像のガイドラインCVタスク結果を含めることができる。例えば、マルチレート画像圧縮エンコーダ(1511)は、入力としてハイパーパラメータλの値を有するトレーニング画像を受け取って、圧縮した特徴マップを生成することができ、圧縮した特徴マップ及びハイパーパラメータλの値は、マルチレートCVタスクデコーダ(1561)に入力され、トレーニング画像及びハイパーパラメータλの値に対応するトレーニングCVタスクの結果を生成する。マルチレートCVタスクデコーダ(1561)及びマルチレート画像圧縮エンコーダ(1511)は、ガイドラインCVタスク結果とトレーニングCVタスクの結果との間の損失を最小限に抑えるように(調整可能なニューラルネットワーク構造及び調整可能なパラメータを用いて)トレーニングされる。
【0113】
いくつかの実施形態では、マルチレートCVタスクデコーダ(1561)は、コーディングしたビットストリームを復号化して、画像再構成を行わずにCVタスク結果を直接生成する。いくつかの実施形態では、マルチレートCVタスクデコーダ(1561)は、最初にコーディングしたビットストリームを復号化し、解凍した画像を生成し、次に、CVタスクモデルを解凍した画像に適用して、CVタスク結果を生成する。
【0114】
いくつかの例では、マルチレート画像圧縮エンコーダ(1511)及びマルチレートCVタスクデコーダ(1561)は、異なる電子装置内にある。いくつかの例では、マルチレート画像圧縮エンコーダ(1511)及びマルチレートCVタスクデコーダ(1561)は、同じ電子装置内にある。
【0115】
いくつかの例では、変換モジュール(1530)及び変換モジュール(1580)は、同じニューラルネットワーク構造及び同じ事前トレーニング済みパラメータを有することができる。いくつかの例では、変換モジュール(1530)及び変換モジュール(1580)は、同じニューラルネットワーク構造を有するが、異なる事前トレーニング済みパラメータを有することがある。いくつかの例では、変換モジュール(1530)及び変換モジュール(1580)は、異なるニューラルネットワーク構造を有することができる。
【0116】
ハイパーパラメータλの値に従って変換モジュールによって生成されたテンソルは、ニューラルネットワーク内の任意の適切な層に提供できることに留意されたい。例えば、ハイパーパラメータλの値に従って生成されるテンソル(1581)は、CVタスクデコーダ(1570)のニューラルネットワーク内の1つ又は複数の層に提供され得る。
【0117】
いくつかの例では、圧縮レートを制御するパラメータの値は、圧縮画像又は圧縮特徴マップを搬送するコーディングしたビットストリーム内でシグナリングされる。例えば、ハイパーパラメータλの値は、マルチレート画像圧縮エンコーダ(1411)、及びマルチレート画像圧縮エンコーダ(1511)等のエンコーダ側からコーディングしたビットストリーム内でシグナリングされる。次に、マルチレートCVタスクデコーダ(1461)、及びマルチレートCVタスクデコーダ(1561)等のCVタスクデコーダは、ハイパーパラメータλ情報を受信することができる。
【0118】
画像圧縮エンコーダ、CVタスクデコーダ、及び変換モジュールのニューラルネットワーク構造等のネットワークアーキテクチャは、任意の適切な構造を有することができることに留意されたい。一実施形態では、変換モジュールは、畳み込み層のセットを含む。別の実施形態では、変換モジュールは、活性化関数を有する畳み込み層を含む。
【0119】
いくつかの実施形態では、ハイパーパラメータλは、エンコーダ側とデコーダ側との両方に知られている事前に規定した値のセットから選択される。エンコーダ側で選択されたλ値について、セット内の値のインデックスがコーディングしたビットストリームでシグナリングされる。インデックスに従って、デコーダは、符号化に使用されるハイパーパラメータλの値を決定し、同じハイパーパラメータλの値をデコーダネットワークへの入力として使用することができる。
【0120】
一例では、ハイパーパラメータλの8つの値が事前に規定され、セット内に配置される。エンコーダ側とデコーダ側との両方が、8つの値とセット内の8つの値の位置等のセットの情報を有する。次に、エンコーダ側でハイパーパラメータλの選択した値を送信する代わりに、セット内の選択した値を示すインデックスをエンコーダ側からデコーダセットに送信することができる。例えば、インデックスは0~7とすることができる。インデックスに従って、デコーダは、エンコーダ側で選択されたハイパーパラメータλの値を決定することができる。
【0121】
本開示の一態様によれば、通常のCDCVTFと比較して、マルチレートCDCVTFはマルチレート機能を含み、ハイパーパラメータλ等のパラメータがマルチレートCDCVTFの入力である。ハイパーパラメータλの値等のパラメータの値を変更して、画像圧縮レートを調整することができる。
【0122】
図16は、本開示の一実施形態による処理(1600)の概要を示すフローチャートを示す。処理(1600)は、符号化処理である。処理(1600)は電子装置で実行することができる。いくつかの実施形態では、処理(1600)はソフトウェア命令で実装され、こうして、処理回路がソフトウェア命令を実行するときに、処理回路は処理(1600)を実行する。処理は(S1601)で開始され、(S1610)へ進む。
【0123】
(S1610)において、圧縮レートを調整するためのパラメータの値が、マルチレート画像圧縮エンコーダ(1411)、及びマルチレート画像圧縮エンコーダ(1511)等のマルチレート画像圧縮エンコーダに入力される。マルチレート画像圧縮エンコーダは、パラメータのそれぞれの値を用いて画像を符号化するための1つ又は複数のニューラルネットワークを含む。
【0124】
(S1620)において、マルチレート画像圧縮エンコーダは、パラメータの値に従って、入力画像を圧縮画像に符号化して、コーディングしたビットストリームで搬送する。パラメータの値は、入力画像を圧縮画像に符号化するための圧縮レートを調整する。
【0125】
(S1630)において、インデックスがコーディングしたビットストリームに符号化され、インデックスは、パラメータの値(例えば、事前に規定した値)のセット内の値を指す。
【0126】
次に、処理(1600)は(S1699)に進み、終了する。
【0127】
処理(1600)は、様々なシナリオに適切に適合させることができ、処理(1600)のステップは、それに応じて調整することができる。処理(1600)における1つ又は複数のステップは、適応、省略、反復、及び/又は組み合わせることができる。処理(1600)を実施するために任意の適切な順序を使用してもよい。追加のステップを加えることができる。
【0128】
図17は、本開示の一実施形態による処理(1700)の概要を示すフローチャートを示す。処理(1700)は復号化処理である。処理(1700)は電子装置で実行することができる。いくつかの実施形態では、処理(1700)はソフトウェア命令で実装され、こうして、処理回路がソフトウェア命令を実行するときに、処理回路は処理(1700)を実行する。処理は(S1701)で開始され、(S1710)へ進む。
【0129】
(S1710)において、圧縮画像を搬送するコーディングしたビットストリームから、パラメータの値のセット内の値を指すインデックスが復号化される。パラメータの値を変更することにより、圧縮画像の圧縮レートが調整される。圧縮画像は、パラメータの値に従って、マルチレート画像圧縮エンコーダ(1411)、及びマルチレート画像圧縮エンコーダ(1511)等のニューラルネットワークベースのエンコーダによって生成される。
【0130】
(S1720)において、パラメータの値は、マルチレートCVタスクデコーダ(1461)、及びマルチレートCVタスクデコーダ(1561)等のマルチレート圧縮領域コンピュータビジョンタスクデコーダに入力される。マルチレート圧縮領域コンピュータビジョンタスクデコーダは、圧縮画像の生成に使用されるパラメータの対応する値に従って圧縮画像からコンピュータビジョンタスクを実行するための1つ又は複数のニューラルネットワークを含む。
【0131】
(S1730)において、マルチレート圧縮領域コンピュータビジョンタスクデコーダは、コーディングしたビットストリーム内の圧縮画像及びパラメータの値に従ってコンピュータビジョンタスク結果を生成する。
【0132】
いくつかの例では、マルチレート圧縮領域コンピュータビジョンタスクデコーダ内の第1のニューラルネットワーク(例えば、変換モデル(1480)、変換モデル(1580))は、パラメータの値をテンソルに変換する。テンソルは、マルチレート圧縮領域コンピュータビジョンタスクデコーダ内の第2のニューラルネットワーク(例えば、CVタスクデコーダ(1470)、CVタスクデコーダ(1570))の1つ又は複数の層に入力される。第2のニューラルネットワークは、圧縮画像及びテンソルに従ってコンピュータビジョンタスク結果を生成する。
【0133】
いくつかの例では、第1のニューラルネットワークは、1つ又は複数の畳み込み層を含む。いくつかの例では、第1のニューラルネットワークは、活性化関数を有する畳み込み層を含む。
【0134】
いくつかの例では、第2のニューラルネットワークは、圧縮画像から再構成画像を生成することなく、コンピュータビジョンタスク結果を生成するように構成される。
【0135】
いくつかの例では、第2のニューラルネットワークは、圧縮画像から再構成画像を生成し、再構成画像からコンピュータビジョンタスク結果を生成するように構成される。
【0136】
いくつかの例では、ニューラルネットワークベースのエンコーダは、ニューラル画像圧縮(NIC)フレームワークのエンコーダモデルに基づいており、マルチレート圧縮領域コンピュータビジョンタスクデコーダは、NICフレームワークのデコーダモデルに基づいており、NICフレームワークは、
図15を参照して説明したように、エンドツーエンドでトレーニングされる。
【0137】
いくつかの例では、マルチレート圧縮領域コンピュータビジョンタスクデコーダのデコーダモデルは、
図14を参照して説明したように、ニューラルネットワークベースのエンコーダのエンコーダモデルとは別にトレーニングされる。
【0138】
いくつかの例では、パラメータは、式1のハイパーパラメータλ等、レート歪み損失の計算において歪みに重み付けするためのハイパーパラメータである。
【0139】
コンピュータビジョンタスクは、画像分類、画像ノイズ除去、オブジェクト検出、及び超解像等の任意の適切なコンピュータビジョンタスクであり得ることに留意されたい。
【0140】
次に、処理(1700)は(S1799)に進み、終了する。
【0141】
処理(1700)は、様々なシナリオに適切に適合させることができ、処理(1700)のステップは、それに応じて調整することができる。処理(1700)における1つ又は複数のステップは、適応、省略、繰り返し、及び/又は組み合わせることができる。処理(1700)を実行するために、任意の適切な順序を使用してもよい。追加のステップを加えることができる。
【0142】
上述の技術は、コンピュータ可読命令を使用するコンピュータソフトウェアとして実装することができ、1つ又は複数のコンピュータ可読媒体に物理的に記憶することができる。例えば、
図18は、開示する主題の特定の実施形態を実装するのに適したコンピュータシステム(1800)を示す。
【0143】
コンピュータソフトウェアは、任意の適切な機械コード又はコンピュータ言語を使用してコーディングすることができ、アセンブリ、コンパイル、リンク、又は同様のメカニズムを受けて、1つ又は複数のコンピュータ中央処理装置(CPU)、及びグラフィックス処理装置(GPU)等によって直接実行できる、或いは解釈、及びマイクロコードの実行等を通じて実行できる命令を含むコードを作成することができる。
【0144】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲーム装置、モノのインターネット装置等を含む、様々な種類のコンピュータ又はそのコンポーネント上で実行することができる。
【0145】
図18に示されるコンピュータシステム(1800)に関するコンポーネントは、本質的に例示であり、本開示の実施形態を実装するコンピュータソフトウェアの使用又は機能の範囲に関していかなる制限を示唆することを意図するものではない。また、コンポーネントの構成は、コンピュータシステム(1800)の例示的な実施形態に示されるコンポーネントのいずれか1つ又は組合せに関連する依存性又は要件を有するものとして解釈すべきではない。
【0146】
コンピュータシステム(1800)は、特定のヒューマンインターフェイス入力装置を含むことができる。このようなヒューマンインターフェイス入力装置は、例えば、触覚入力(キーストローク、スワイプ、データグローブの動き等)、音声入力(音声、拍手等)、視覚入力(ジェスチャ等)、嗅覚入力(図示せず)等を介した1人又は複数の人間ユーザによる入力に応答することができる。ヒューマンインターフェイス装置は、音声(音声、音楽、環境音等)、画像(スキャン画像、静止画カメラから取得した写真画像等)、動画(2次元動画、立体視動画を含む3次元動画等)等、人間による意識的な入力に必ずしも直接関係しない特定のメディアをキャプチャするために使用することもできる。
【0147】
入力ヒューマンインターフェイス装置は、キーボード(1801)、マウス(1802)、トラックパッド(1803)、タッチスクリーン(1810)、データグローブ(図示せず)、ジョイスティック(1805)、マイク(1806)、スキャナ(1807)、カメラ(1808)のうちの1つ又は複数を含むことができる(各1つのみが示される)。
【0148】
コンピュータシステム(1800)は、特定のヒューマンインターフェイス出力装置も含むこともできる。このようなヒューマンインターフェイス出力装置は、例えば、触覚出力、音、光、及び匂い/味を通じて、1人又は複数の人間のユーザの感覚を刺激することができる。このようなヒューマンインターフェイス出力装置には、触覚出力装置(例えば、タッチスクリーン(1810)、データグローブ(図示せず)、又はジョイスティック(1805)による触覚フィードバックであるが、入力装置として機能しない触覚フィードバック装置もあり得る)、音声出力装置(スピーカ(1809)、ヘッドフォン(図示せず)等)、視覚出力装置(CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン(1810)等、それぞれのタッチスクリーン入力機能の有無にかかわらず、それぞれの触覚フィードバック機能の有無にかかわらず、そのいつくかは、ステレオグラフィック出力、仮想現実メガネ(図示せず)、ホログラフィックディスプレイ及びスモークタンク(図示せず)等の手段を通じて、2次元の視覚出力又は3次元以上の出力を出力できるものもある)、及びプリンタ(図示せず)が含まれ得る。
【0149】
コンピュータシステム(1800)は、人間がアクセス可能な記憶装置と、CD/DVD、CD/DVDを備えたROM/RW(1820)を含む光媒体、又は同様の媒体(1821)等の関連媒体、サムドライブ(1822)、リムーバブルハードドライブ又はソリッドステートドライブ(1823)、テープ及びフロッピーディスク(図示せず)等の従来の磁気媒体、セキュリティドングル(図示せず)等の特殊なROM/ASIC/PLDベースの装置等を含むこともできる。
【0150】
当業者は、現在開示する主題に関連して使用される「コンピュータ可読媒体」という用語が、伝送媒体、搬送波、又は他の一時的な信号を包含しないことも理解すべきである。
【0151】
コンピュータシステム(1800)は、1つ又は複数の通信ネットワーク(1855)へのインターフェイス(1854)を含むこともできる。ネットワークは、例えば、無線、有線、光等であってもよい。さらに、ネットワークは、ローカル、広域、大都市、車両及び産業用、リアルタイム、遅延耐性等のネットワークにすることができる。ネットワークの例には、イーサネット、無線LAN等のローカルエリアネットワーク、GSM、3G、4G、5G、LTE等を含むセルラーネットワーク、ケーブルTV、衛星TV、及び地上波放送TVを含むTV有線又は無線広域デジタルネットワーク、及びCANBus等を含む車両及び産業用が含まれる。特定のネットワークは、一般に、特定の汎用データポート又は周辺バス(1849)(例えば、コンピュータシステム(1800)のUSBポート等)に接続される外部ネットワークインターフェイスアダプタを必要とする。他のものは一般に、後述するようにシステムバス(例えば、PCコンピュータシステムへのイーサネットインターフェイス、又はスマートフォンコンピュータシステムへのセルラーネットワークインターフェイス)に接続することによってコンピュータシステム(1800)のコアに統合される。これらのネットワークのいずれかを使用して、コンピュータシステム(1800)は他のエンティティと通信することができる。このような通信は、一方向、受信専用(テレビ放送等)、一方向送信専用(CANBusから特定のCANBus装置等)、又は双方向(ローカル又はワイドエリアデジタルネットワークを使用する他のコンピュータシステム等)にすることができる。特定のプロトコル及びプロトコルスタックは、上で説明したように、これらのネットワーク及びネットワークインターフェイスのそれぞれで使用することができる。
【0152】
前述のヒューマンインターフェイス装置、人間がアクセス可能な記憶装置、及びネットワークインターフェイスは、コンピュータシステム(1800)のコア(1840)に取り付けることができる。
【0153】
コア(1840)は、1つ又は複数の中央処理装置(CPU)(1841)、グラフィックス処理装置(GPU)(1842)、フィールドプログラマブルゲートエリア(FPGA)(1843)の形態の特殊なプログラマブル処理装置、特定のタスクのためのハードウェアアクセラレータ(1844)、及びグラフィックスアダプタ(1850)等を含むことができる。これらの装置は、読み取り専用メモリ(ROM)(1845)、ランダムアクセスメモリ(1846)、ユーザがアクセスできない内部ハードドライブ等の内部大容量記憶装置、SSD等(1847)とともに、システムバス(1848)を介して接続され得る。一部のコンピュータシステムでは、システムバス(1848)は、追加のCPU、及びGPU等による拡張を可能にするために、1つ又は複数の物理プラグの形態でアクセス可能にすることができる。周辺装置は、コアのシステムバス(1848)に直接接続することも、又は周辺バス(1849)経由で接続することもできる。一例では、スクリーン(1810)はグラフィックアダプタ(1850)に接続することができる。周辺バスのアーキテクチャには、PCI、及びUSB等が含まれる。
【0154】
CPU(1841)、GPU(1842)、FPGA(1843)、及びアクセラレータ(1844)は、組み合わせて前述のコンピュータコードを構成できる特定の命令を実行することができる。そのコンピュータコードは、ROM(1845)又はRAM(1846)に記憶され得る。移行データはRAM(1846)に格納することもできるが、永続データは例えば内部大容量記憶装置(1847)に格納することができる。任意のメモリ装置への高速ストレージ及び取得は、1つ又は複数のCPU(1841)、GPU(1842)、大容量ストレージ(1847)、ROM(1845)、及びRAM(1846)等に密接に関連し得るキャッシュメモリの使用によって可能になる。
【0155】
コンピュータ可読媒体は、コンピュータによって実現される様々な動作を実行するためのコンピュータコードをその上に有することができる。媒体及びコンピュータコードは、本開示の目的のために特別に設計及び構築されたものであってもよく、又はコンピュータソフトウェア技術の当業者によく知られ利用可能な種類のものであってもよい。
【0156】
限定ではなく一例として、アーキテクチャ(1800)、特にコア(1840)を有するコンピュータシステムは、プロセッサ(CPU、GPU、FPGA、及びアクセラレータ等を含む)が1つ又は複数の有形のコンピュータ可読媒体に組み込まれたソフトウェアを実行する結果として機能を提供することができる。このようなコンピュータ可読媒体は、上で紹介したようなユーザがアクセス可能な大容量記憶装置に関連付けられた媒体であってもよく、コア内部大容量記憶装置(1847)又はROM(1845)等の非一時的な性質を有するコア(1840)の特定の記憶装置であってもよい。本開示の様々な実施形態を実装するソフトウェアは、そのような装置に格納され、コア(1840)によって実行され得る。コンピュータ可読媒体には、特定のニーズに応じて、1つ又は複数のメモリ装置又はチップを含めることができる。ソフトウェアは、コア(1840)、特にその中のプロセッサ(CPU、GPU、及びFPGA等を含む)に、RAM(1846)に格納されたデータ構造の規定を含み且つソフトウェアによって規定されたプロセスに従ってそのようなデータ構造を変更する、本明細書で説明した特定のプロセス又は特定のプロセスの特定の部分を実行させることができる。加えて又は代わりに、コンピュータシステムは、回路(例えば、アクセラレータ(1844))にハードワイヤード又は他の方法で組み込まれたロジックの結果として機能を提供することができ、これは、本明細書で説明した特定のプロセス又は特定のプロセスの特定の部分を実行するためにソフトウェアの代わりに、又はソフトウェアと一緒に動作することができる。ソフトウェアへの参照には、必要に応じてロジックが含まれる場合もあり、その逆も同様である。コンピュータ可読媒体への言及は、必要に応じて、実行用のソフトウェアを格納する回路(集積回路(IC)等)、実行用のロジックを具体化した回路、又はその両方を包含することができる。本開示は、ハードウェア及びソフトウェアの任意の適切な組合せを包含する。
【0157】
本開示はいくつかの例示的な実施形態を説明したが、本開示の範囲内に含まれる変更、置換、及び様々な代替均等物が存在する。こうして、当業者であれば、本明細書では明示的に図示又は説明していないが、本開示の原理を具体化し、こうして本開示の精神及び範囲内にある多くのシステム及び方法を想起することができることが理解されよう。
【国際調査報告】