(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-05-28
(54)【発明の名称】画像処理方法
(51)【国際特許分類】
G06T 9/00 20060101AFI20240521BHJP
G06N 3/0455 20230101ALI20240521BHJP
G06N 3/0495 20230101ALI20240521BHJP
【FI】
G06T9/00 200
G06N3/0455
G06N3/0495
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023566983
(86)(22)【出願日】2023-03-24
(85)【翻訳文提出日】2023-10-31
(86)【国際出願番号】 US2023016233
(87)【国際公開番号】W WO2023200576
(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)【発明者】
【氏名】リウ,シャン
(57)【要約】
処理回路は、入力画像と入力画像に対する画像ベースのコンピュータ・ビジョン・タスクの結果によるガイドライン画像とに基づいて、圧縮ドメイン・コンピュータ・ビジョン・タスク・フレームワーク(CDCVTF)のオンライン訓練を実行する。CDCVTFは符号化部分と復号化部分を含む。符号化部分は入力画像を圧縮ドメインへ圧縮し、復号化部分は、圧縮ドメインにおける画像ベースのコンピュータ・ビジョン・タスクを実行する。オンライン訓練は、復号化部分におけるニューラル・ネットワークに対するアップデートであって、圧縮ドメインにおける画像ベースのコンピュータ・ビジョン・タスクの結果とガイドライン画像との間の損失を減らすものを少なくとも決定する。処理回路は、入力画像を符号化された画像に符号化し、符号化された画像と追加ビットを運ぶビットストリームを形成する。追加ビットは、復号化部分におけるニューラル・ネットワークに対するアップデートを示す。
【特許請求の範囲】
【請求項1】
画像処理方法であって:
入力画像と前記入力画像に対する画像ベースのコンピュータ・ビジョン・タスクの結果によるガイドライン画像とに基づいて、圧縮ドメイン・コンピュータ・ビジョン・タスク・フレームワーク(CDCVTF)のオンライン訓練を実行するステップであって、前記CDCVTFは符号化部分と復号化部分を含み、前記符号化部分は前記入力画像を圧縮ドメインへ圧縮し、前記復号化部分は、前記圧縮ドメインにおける前記画像ベースのコンピュータ・ビジョン・タスクを実行し、前記オンライン訓練は、前記復号化部分におけるニューラル・ネットワークに対するアップデートであって、前記圧縮ドメインにおける前記画像ベースのコンピュータ・ビジョン・タスクの結果と前記ガイドライン画像との間の損失を減らすものを少なくとも決定する、ステップ;
前記入力画像を符号化された画像に符号化するステップ;及び
前記符号化された画像と追加ビットを運ぶビットストリームを形成するステップであって、前記追加ビットは、前記復号化部分におけるニューラル・ネットワークに対するアップデートであって、前記圧縮ドメインにおける前記画像ベースのコンピュータ・ビジョン・タスクの結果と前記ガイドライン画像との間の損失を減らすものを示す、ステップ;
を含む方法。
【請求項2】
請求項1に記載の方法において、更に:
非圧縮ドメインにおいて前記入力画像に対する画像ベースのコンピュータ・ビジョン・タスクを実行して、前記入力画像に対応する前記ガイドライン画像を生成するステップ;
を含む方法。
【請求項3】
請求項1に記載の方法において、前記追加ビットは、前記復号化部分の1つ以上の調整可能なパラメータそれぞれに対する1つ以上の更新された値を示す、方法。
【請求項4】
請求項1に記載の方法において、前記追加ビットは、前記復号化部分のニューラル・ネットワークにおける追加層を示す、方法。
【請求項5】
請求項4に記載の方法において、前記追加ビットは、前記追加層のパラメータ値を示す、方法。
【請求項6】
請求項4に記載の方法において、前記追加層は畳み込み層である、方法。
【請求項7】
請求項1に記載の方法において、前記符号化部分は前記入力画像を前記符号化された画像に圧縮するように構成されており、前記復号化部分は、前記符号化された画像に対して画像ベースのコンピュータ・ビジョン・タスクを実行して、再構成された画像を生成するように構成されており、前記オンライン訓練は、前記再構成された画像と前記ガイドライン画像に基づいて前記アップデートを決定する、方法。
【請求項8】
請求項1に記載の方法において、前記オンライン訓練は、前記復号化部分に対する前記アップデートと、前記符号化部分におけるニューラル・ネットワークに対するエンコーダ・アップデートとを決定する、方法。
【請求項9】
請求項1に記載の方法において、前記画像ベースのコンピュータ・ビジョン・タスクは、画像ノイズ除去、画像デブロッキング、及び超解像度のうちの少なくとも1つを含む、方法。
【請求項10】
画像処理方法であって:
画像に対応する符号化された画像を運ぶ第1のビットと、圧縮ドメインにおける画像ベースのコンピュータ・ビジョン・タスクのためのデコーダにおけるニューラル・ネットワークのアップデートを示す第2のビットとを含むビットストリームを受信するステップであって、前記デコーダは圧縮ドメイン・コンピュータ・ビジョン・タスク・フレームワーク(CDCVTF)における復号化部分に対応し、前記アップデートは、前記画像と前記画像に対する画像ベースのコンピュータ・ビジョン・タスクの結果によるガイドライン画像とに従う前記CDCVTFのオンライン訓練により決定され、前記オンライン訓練は、前記圧縮ドメインにおける前記画像ベースのコンピュータ・ビジョン・タスクの結果と前記ガイドライン画像との間の損失を減らす前記アップデートを少なくとも決定するものである、ステップ;
前記第2のビットに従って前記デコーダのニューラル・ネットワークを更新するステップ;及び
前記ニューラル・ネットワークにおけるアップデートとともに前記デコーダを利用して、前記ビットストリームの第1のビットに従って再構成された画像を生成するステップ;
を含む方法。
【請求項11】
請求項10に記載の方法において、前記第2のビットは、前記ニューラル・ネットワークにおける1つ以上のパラメータそれぞれに対する1つ以上の更新された値を示す、方法。
【請求項12】
請求項10に記載の方法において、前記第2のビットは、前記ニューラル・ネットワークにおける追加層を示す、方法。
【請求項13】
請求項12に記載の方法において、前記第2のビットは、前記追加層のパラメータ値を示す、方法。
【請求項14】
請求項13に記載の方法において、前記追加層は畳み込み層である、方法。
【請求項15】
請求項10に記載の方法において、前記画像ベースのコンピュータ・ビジョン・タスクは、画像ノイズ除去、画像デブロッキング、及び超解像度のうちの少なくとも1つを含む、方法。
【請求項16】
画像処理方法であって:
圧縮ドメイン・コンピュータ・ビジョン・タスク・フレームワーク(CDCVTF)のオンライン訓練に従って、入力画像に対する代替画像を決定するステップであって、前記CDCVTFは符号化部分と復号化部分を含み、前記符号化部分は前記入力画像を現在の反復アップデートを用いて圧縮ドメインへ圧縮し、前記復号化部分は、前記圧縮ドメインにおける画像ベースのコンピュータ・ビジョン・タスクを実行し、前記オンライン訓練は、前記圧縮ドメインにおける前記画像ベースのコンピュータ・ビジョン・タスクの結果と、前記入力画像に対する画像ベースのコンピュータ・ビジョン・タスクから生じるガイドライン画像との間の損失を減らす代替画像を決定する、ステップ;及び
前記符号化部分が、前記代替画像をビットストリームに符号化するステップ;
を含む方法。
【請求項17】
請求項16に記載の方法において、更に:
非圧縮ドメインにおいて前記画像ベースのコンピュータ・ビジョン・タスクを実行して、前記ガイドライン画像を生成するステップ;
を含む方法。
【請求項18】
請求項17に記載の方法において、前記オンライン訓練の間に、前記符号化部分は、前記入力画像を前記現在の反復アップデートを用いて現在の符号化された更新画像に圧縮するように構成されており、前記復号化部分は、前記現在の符号化された更新画像に対して前記画像ベースのコンピュータ・ビジョン・タスクを実行して、現在の再構成された画像を生成するように構成されており、前記現在の再構成された画像と前記ガイドライン画像とに基づいて次の反復アップデートが決定される、方法。
【請求項19】
請求項16に記載の方法において、前記画像ベースのコンピュータ・ビジョン・タスクは、画像ノイズ除去、画像デブロッキング、及び超解像度のうちの少なくとも1つを含む、方法。
【請求項20】
請求項16に記載の方法において、前記符号化部分と前記復号化部分におけるニューラル・ネットワークのパラメータは、予め訓練された値に固定されている、方法。
【請求項21】
請求項1ないし20のうち何れか一項に記載の方法をコンピュータに実行させるコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
[0001] 参照による援用
本件出願は、2023年3月22日付で出願された米国特許出願第18/125,008号「圧縮ドメインにおけるコンピュータ・ビジョン・タスク・モデルのオンライン・トレーニング」に対する優先権の利益を主張しており、同出願は2022年4月14日付で出願された米国仮出願第63/331,162号「圧縮ドメインにおけるコンピュータ・ビジョン・タスク・モデルのオンライン・トレーニング」に対する優先権の利益を主張している。先行する出願の開示全体は参照により本件に組み込まれる。
【0002】
[0002] 技術分野
本開示は、一般に画像/ビデオ処理に関する実施形態を説明している。
【背景技術】
【0003】
[0003] 本件で行われる背景の説明は、本開示の状況を一般的に提示するためのものである。目下の発明者の名の下になされる仕事は、その仕事がこの背景のセクションだけでなく、別の方法で本件の出願時点における先行技術としての適格性を有しない可能性のある記述の態様で説明される範囲において、本開示に対する先行技術として、明示的にも暗示的にも認められていない。
【0004】
[0004] 画像/ビデオ圧縮は、様々なデバイス、ストレージ、及びネットワークにわたって、最小限の品質劣化とともに画像/ビデオ・ファイルを伝送することを支援することができる。画像/ビデオ圧縮ツールを改善することは、多くの専門知識、努力、及び時間を必要とする可能性がある。機械学習技術を画像/ビデオ圧縮に適用して、圧縮ツールの改善を単純化し且つ加速することが可能である。
【発明の概要】
【0005】
[0005] 開示の態様は、画像/ビデオ処理(例えば、符号化及び復号化)のための方法及び装置を提供する。幾つかの例において、画像/ビデオ処理のための装置は、処理回路を含む。本開示の一部の態様によれば、処理回路は、入力画像と入力画像に対する画像ベースのコンピュータ・ビジョン・タスクの結果によるガイドライン画像(guideline image)とに基づいて、圧縮ドメイン・コンピュータ・ビジョン・タスク・フレームワーク(compression domain computer vision task framework,CDCVTF)のオンライン訓練を実行する。CDCVTFは符号化部分と復号化部分を含む。符号化部分は入力画像を圧縮ドメインへ圧縮し、復号化部分は、圧縮ドメインにおける画像ベースのコンピュータ・ビジョン・タスクを実行する。オンライン訓練は、復号化部分におけるニューラル・ネットワークに対するアップデートであって、圧縮ドメインにおける画像ベースのコンピュータ・ビジョン・タスクの結果とガイドライン画像との間の損失を減らすものを少なくとも決定する。処理回路は、入力画像を符号化された画像に符号化し、符号化された画像と追加ビットを運ぶビットストリームを形成する。追加ビットは、復号化部分におけるニューラル・ネットワークに対するアップデートであって、圧縮ドメインにおける画像ベースのコンピュータ・ビジョン・タスクの結果とガイドライン画像との間の損失を減らすものを示す。
【0006】
[0006] 一部の例において、処理回路は、非圧縮ドメインにおいて入力画像に対する画像ベースのコンピュータ・ビジョン・タスクを実行して、入力画像に対応するガイドライン画像を生成する。
【0007】
[0007] 一部の例において、追加ビットは、復号化部分の1つ以上の調整可能なパラメータそれぞれに対する1つ以上の更新された値を示す。
【0008】
[0008] 一部の例において、追加ビットは復号化部分のニューラル・ネットワークにおける追加層を示し、追加ビットは追加層のパラメータ値を示す。一例において、追加層は畳み込み層である。
【0009】
[0009] 一部の例において、符号化部分は入力画像を符号化された画像に圧縮するように構成されており、復号化部分は、符号化された画像に対して画像ベースのコンピュータ・ビジョン・タスクを実行して、再構成された画像を生成するように構成されており、オンライン訓練は、再構成された画像とガイドライン画像に基づいてアップデートを決定する。
【0010】
[0010] 一部の例において、オンライン訓練は、復号化部分に対するアップデートと、符号化部分におけるニューラル・ネットワークに対するエンコーダ・アップデートとを決定する。
【0011】
[0011] 画像ベースのコンピュータ・ビジョン・タスクは、画像ノイズ除去、画像デブロッキング、及び超解像度のうちの少なくとも1つを含むことに留意を要する。
【0012】
[0012] 開示の一部の態様によれば、装置の処理回路は、画像に対応する符号化された画像を運ぶ第1のビットと、圧縮ドメインにおける画像ベースのコンピュータ・ビジョン・タスクのためのデコーダにおけるニューラル・ネットワークのアップデートを示す第2のビットとを含むビットストリームを受信することが可能である。デコーダは圧縮ドメイン・コンピュータ・ビジョン・タスク・フレームワーク(CDCVTF)における復号化部分に対応する。アップデートは、画像と画像に対する画像ベースのコンピュータ・ビジョン・タスクの結果によるガイドライン画像とに従うCDCVTFのオンライン訓練により決定される。オンライン訓練は、圧縮ドメインにおける画像ベースのコンピュータ・ビジョン・タスクの結果とガイドライン画像との間の損失を減らすアップデートを少なくとも決定する。処理回路は、第2のビットに従ってデコーダのニューラル・ネットワークを更新し、ニューラル・ネットワークにおけるアップデートとともにデコーダを利用して、ビットストリームの第1のビットに従って再構成された画像を生成する。
【0013】
[0013] 一部の例において、第2のビットは、ニューラル・ネットワークにおける1つ以上のパラメータそれぞれに対する1つ以上の更新された値を示す。
【0014】
[0014] 一部の例において、第2のビットはニューラル・ネットワークにおける追加層を示し、また、第2のビットは追加層のパラメータ値を示す。一例において、追加層は畳み込み層である。
【0015】
[0015] 画像ベースのコンピュータ・ビジョン・タスクは、画像ノイズ除去、画像デブロッキング、及び超解像度のうちの少なくとも1つを含むことに留意を要する。
【0016】
[0016] 開示の一部の態様によれば、装置の処理回路は、圧縮ドメイン・コンピュータ・ビジョン・タスク・フレームワーク(CDCVTF)のオンライン訓練に従って、入力画像に対する代替画像(substitute image)を決定する。CDCVTFは符号化部分と復号化部分を含む。符号化部分は入力画像を現在の反復アップデートを用いて圧縮ドメインへ圧縮し、復号化部分は、圧縮ドメインにおける画像ベースのコンピュータ・ビジョン・タスクを実行する。オンライン訓練は、圧縮ドメインにおける画像ベースのコンピュータ・ビジョン・タスクの結果と、(非圧縮ドメインにおける)入力画像に対する画像ベースのコンピュータ・ビジョン・タスクから生じるガイドライン画像との間の損失を減らす代替画像を決定する。処理回路は、符号化部分により、代替画像をビットストリームに符号化する。
【0017】
[0017] 一部の例において、処理回路は、非圧縮ドメインにおいて入力画像に対して画像ベースのコンピュータ・ビジョン・タスクを実行して、入力画像に対応するガイドライン画像を生成する。
【0018】
[0018] 一部の例において、オンライン訓練の間に、符号化部分は、入力画像を現在の反復アップデートを用いて現在の符号化された更新画像に圧縮するように構成されており、復号化部分は、現在の符号化された更新画像に対して画像ベースのコンピュータ・ビジョン・タスクを実行して、現在の再構成された画像を生成するように構成されており、現在の再構成された画像とガイドライン画像に基づいて次の反復アップデートが決定される。
【0019】
[0019] 画像ベースのコンピュータ・ビジョン・タスクは、画像ノイズ除去、画像デブロッキング、及び超解像度のうちの少なくとも1つを含むことに留意を要する。符号化部分と復号化部分におけるニューラル・ネットワークのパラメータは、予め訓練された値に固定されている。
【0020】
[0020] 本開示の態様はまた、画像/ビデオのエンコード及び/又はデコードのための方法を実行するために少なくとも1つのプロセッサによって実行可能なプログラムを記憶する非一時的なコンピュータ読み取り可能な記憶媒体を提供する。
【図面の簡単な説明】
【0021】
[0021] 開示される対象事項の更なる特徴、性質、及び様々な利点は、以下の詳細な説明及び添付の図面から更に明らかになるであろう。
【
図1】[0022]
図1は、一部の例におけるニューラル画像圧縮(NIC)フレームワークを示す。
【
図2】[0023]
図2は、一部の例におけるメイン・エンコーダ・ネットワークの例を示す。
【
図3】[0024]
図3は、一部の例におけるメイン・デコーダ・ネットワークの一例を示す。
【
図4】[0025]
図4は、一部の例におけるハイパー・エンコーダ・ネットワークの一例を示す。
【
図5】[0026]
図5は、一部の例におけるハイパー・デコーダ・ネットワークの一例を示す。
【
図6】[0027]
図6は、一部の例におけるコンテキスト・モデル・ニューラル・ネットワークの一例を示す。
【
図7】[0028]
図7は、一部の例におけるエントロピー・パラメータ・ニューラル・ネットワークの一例を示す。
【
図8】[0029]
図8は、一部の例における画像エンコーダを示す。
【
図9】[0030]
図9は、一部の例における画像デコーダを示す。
【
図10】[0031]
図10-11は、一部の例における画像エンコーダ及び対応する画像デコーダを示す。
【
図11】[0031]
図10-11は、一部の例における画像エンコーダ及び対応する画像デコーダを示す。
【
図12】[0032]
図12は、一部の例において圧縮ドメインにおいてコンピュータ・ビジョン(CV)タスクを実行するためのシステムを示す。
【
図13】[0033]
図13は、一部の例において圧縮ドメインにおいてCVタスクを実行するためのシステムを示す。
【
図14】[0034]
図14は、本開示の一部の実施形態によるオンライン訓練ベースの圧縮ドメイン・コンピュータ・ビジョン・タスク・フレームワーク(CDCVTF)を示す。
【
図15】[0035]
図15は、一部の例においてCDCVTFにおけるオンライン訓練ベースの後処理を実行するシステムを示す。
【
図16】[0036]
図16は、一部の例においてCDCVTFにおけるオンライン訓練ベースの前処理を実行するシステムを示す。
【
図17】[0037]
図17は、一部の例におけるプロセスの概要を示すフローチャートを示す。
【
図18】[0038]
図18は、一部の例におけるプロセスの概要を示すフローチャートを示す。
【
図19】[0039]
図19は、一部の例におけるプロセスの概要を示すフローチャートを示す。
【
図20】[0040]
図20は、一部の例におけるコンピュータ・システムの概略図である。
【発明を実施するための形態】
【0022】
[0041] 開示の態様によれば、一部のビデオ・コーデックは、全体として最適化されるには困難である可能性がある。例えば、ビデオ・コーデックにおける単一のモジュール(例えば、エンコーダ)の改善が、全体的なパフォーマンスにおけるコーディング・ゲインを生じる結果とならない可能性がある。対照的に、人工ニューラル・ネットワーク(artificial neural network,ANN)ベースのビデオ/画像コーディング・フレームワークでは、機械学習プロセスを実行することが可能であり、従って、ANNベースのビデオ/画像コーディング・フレームワークの様々なモジュールが、入力から出力まで一緒に最適化されて、最終目的(例えば、本開示で説明されるレート歪損失Lのようなレート歪パフォーマンス)を改善することができる。例えば、学習プロセス又は訓練プロセス(例えば、機械学習プロセス)は、ANNベースのビデオ/画像コーディング・フレームワークで実行され、ANNベースのビデオ/画像コーディング・フレームワークのモジュールを一緒に最適化して、全体的に最適化されたレート歪パフォーマンスを達成することができ、従って、最適化の結果は、エンド・ツー・エンド(end to end,E2E)の最適化されたニューラル画像圧縮(neural image compression,NIC)となる可能性がある。
【0023】
[0042] 以下の説明では、ANNベースのビデオ/画像コーディング・フレームワークは、ニューラル画像圧縮(NIC)フレームワークによって示される。以下の説明では画像圧縮(例えば、エンコーディング及びデコーディング)が例示されているが、その画像圧縮のための技法はビデオ圧縮にも適切に適用できることに留意すべきである。
【0024】
[0043] 本開示の一部の態様によれば、NICフレームワークは、オフライン訓練プロセス及び/又はオンライン訓練プロセスにおいて訓練されことが可能である。オフライン訓練プロセスでは、以前に収集された訓練画像のセットを使用して、NICフレームワークを訓練し、NICフレームワークを最適化することが可能である。一部の例では、オフライン訓練プロセスによって決定されたNICフレームワークのパラメータは、事前に訓練されたパラメータと呼ぶことが可能であり、事前に訓練されたパラメータを用いるNICフレームワークは、事前に訓練されたNICフレームワークと呼ばれる可能性がある。事前に訓練されたNICフレームワークは、画像圧縮処理のために使用されることが可能である。
【0025】
[0044] 一部の例では、1つ以上の画像(1つ以上のターゲット画像とも呼ばれる)が画像圧縮処理に利用可能である場合に、事前に訓練されたNICフレームワークが、オンライン訓練プロセスにおいて1つ以上のターゲット画像に基づいて更に訓練され、NICフレームワークのパラメータを調整する。オンライン訓練プロセスによって調整されたNICフレームワークのパラメータは、オンライン訓練済みパラメータと呼ぶことが可能であり、オンライン訓練済みパラメータを用いるNICフレームワークは、オンライン訓練済みNICフレームワークと呼ぶことが可能である。オンライン訓練済みNICフレームワークは、次いで、1つ以上のターゲット画像に対して画像圧縮処理を実行することができる。開示の一部の態様は、ニューラル画像圧縮におけるオンライン訓練ベースのエンコーダ・チューニングのための技法を提供する。
【0026】
[0045] ニューラル・ネットワークは、生物学的な脳をモデル化する演算アーキテクチャを指す。ニューラル・ネットワークは、接続線を介して接続された多数の人工ニューロンを使用することによって、生物学的なシステムの演算能力をエミュレートするソフトウェア又はハードウェアで実現されたモデルであるとすることが可能である。ノードと呼ばれる人工ニューロンは、互いに接続され、入力データを処理するためにまとまって動作する。ニューラル・ネットワーク(NN)は、人工ニューラルネットワーク(ANN)としても知られている。
【0027】
[0046] ANN中のノードは、任意の好適なアーキテクチャにおいて組織されることが可能である。一部の実施形態では、ANN内のノードは、ANNへの入力信号を受信する入力層と、ANNからの出力信号を出力する出力層とを含む層において組織される。実施形態では、ANNは、入力層と出力層との間に隠れ層と呼ばれてもよい層を更に含む。異なる層は、異なる層のそれぞれの入力に対して異なる種類の変換を実行することが可能である。信号は、入力層から出力層へ移動することが可能である。
【0028】
[0047] 入力層と出力層との間に複数の層を有するANNは、ディープ・ニューラル・ネットワーク(deep neural network,DNN)と呼ばれる可能性がある。DNNは、任意の適切な構造を有する可能性がある。一部の例では、DNNはフィードフォワード・ネットワーク構造で構成され、その場合に、データはループ・バックせずに入力層から出力層へ流れる。一部の例では、DNNは全結合ネットワーク構造で構成され、その場合に、1つの層における各ノードは次の層における全てのノードに接続される。一部の例では、DNNはリカレント・ニューラル・ネットワーク(recurrent neural network,RNN)構造で構成され、その場合に、データはどの方向に流れることが可能である。
【0029】
[0048] 畳み込み演算を実行する少なくとも1つの畳み込み層を有するANNは、畳み込みニューラル・ネットワーク(convolution neural network,CNN)と呼ばれることが可能である。CNNは、入力層と、出力層と、入力層及び出力層の間の隠れ層とを含むことが可能である。隠れ層は、2次元(two-dimensional,2D)畳み込みのような畳み込みを実行する畳み込み層(例えば、エンコーダにおいて使用される)を含むことが可能である。実施形態では、畳み込み層において実行される2D畳み込みは、畳み込みカーネル(5x5行列のような、フィルタ又はチャネルとも呼ばれる)と、畳み込み層への入力信号(2Dブロック、256x256行列のような2D行列)との間にある。畳み込みカーネルの次元(例えば、5x5)は、入力信号の次元(例えば、256x256)よりも小さい。畳み込み演算中に、ドット積演算が、畳み込みカーネルと、入力信号(例えば、256x256行列)内で畳み込みカーネルと同じサイズのパッチ(例えば、5x5エリア)とに対して実行されて、次の層に入力するための出力信号を生成する。入力信号(例えば、256x256行列)内で畳み込みカーネルのサイズであるパッチ(例えば、5x5領域)は、次の層におけるそれぞれのノードに対する受容野(receptive field)と呼ぶことができる。
【0030】
[0049] 畳み込みの間に、畳み込みカーネルと入力信号内の対応する受容野とのドット積が計算される。畳み込みカーネルは、要素としてウェイトを含み、畳み込みカーネルの各要素は、受容野における対応するサンプルに適用されるウェイトである。例えば、5x5行列によって表される畳み込みカーネルは、25個のウェイトを有する。一部の例では、畳み込み層の出力信号にバイアスが適用され、出力信号は、ドット積とバイアスとの和に基づいている。
【0031】
[0050] 一部の例では、畳み込みカーネルは、ストライドと呼ばれるサイズの分だけ、入力信号(例えば、2D行列)に沿ってシフトすることができ、従って、畳み込み演算は、特徴マップ又は活性化マップ(例えば、別の2D行列)を生成し、その特徴マップ又は活性化マップは、CNNにおける次の層の入力に寄与する。例えば、入力信号は256x256サンプルを有する2Dブロックであり、ストライドは2サンプル(例えば、2というストライド)である。2のストライドの場合、畳み込みカーネルは、X方向(例えば、水平方向)及び/又はY方向(例えば、垂直方向)に沿って2サンプルだけシフトする。
【0032】
[0051] 一部の例では、複数の畳み込みカーネルが、同じ畳み込み層において入力信号に適用されて、複数の特徴マップをそれぞれ生成することができ、それぞれの特徴マップは入力信号の特定の特徴を表すことが可能である。一部の例では、畳み込みカーネルは特徴マップに対応する可能性がある。N個の畳み込みカーネル(又はN個のチャネル)を有する畳み込み層であって、各々の畳み込みカーネルがMxM個のサンプルを有し、ストライドがSである畳み込み層は、Conv:MxM cN sSとして指定されることが可能である。例えば、192個の畳み込みカーネル(又は192個のチャネル)を有する畳み込み層であって、各々の畳み込みカーネルが5x5サンプルを有し、ストライドが2である畳み込み層は、Conv:5x5 c192 s2として指定される。隠れ層は、2Dデコンボリューションのようなデコンボリューション(deconvolutions)を実行するデコンボリューション層(例えば、デコーダにおいて使用される)を含むことが可能である。デコンボリューションは、畳み込み(convolution)の逆である。192個のデコンボリューション・カーネル(又は192個のチャネル)を有するデコンボリューション層であって、各デコンボリューション・カーネルが5x5個のサンプルを有し、ストライドが2であるデコンボリューション層は、DeConv:5x5 c192 s2として指定される。
【0033】
[0052] CNNでは、比較的多数のノードが同じフィルタ(例えば、同じウェイト)及び同じバイアス(バイアスが使用される場合)を共有することが可能であり、そして、メモリ・フットプリントを削減することが可能であり、なぜなら単一のバイアスと単一のウェイト・ベクトルが、同じフィルタを共有する全ての受容野にわたって使用できるからである。例えば、100x100個のサンプルを有する入力信号の場合、5x5個のサンプルを有する畳み込みカーネルを用いる畳み込み層は、25個の学習可能パラメータ(例えば、ウェイト)を有する。バイアスが使用される場合、1つのチャネルは、26個の学習可能なパラメータ(例えば、25個のウェイト及び1つのバイアス)を使用する。畳み込み層がN個の畳み込みカーネルを有する場合、学習可能なパラメータの合計は26xNである。学習可能なパラメータの数は、全結合のフィードフォワード・ニューラル・ネットワーク層と比較して相対的に少ない。例えば、全結合のフィードフォワード層の場合、100x100(即ち、10000)個のウェイトが、次の層内の各ノードに入力するための結果信号を生成するために使用される。次の層がL個のノードを有する場合、学習可能なパラメータの合計は10000xLである。
【0034】
[0053] CNNは、プーリング層、1つの層内の全てのノードを別の層内の全てのノードに接続することが可能な全結合層、正規化層、及び/又はそれに類するもののような1つ以上の他の層を更に含むことが可能である。CNN内の層は、任意の適切な順序で、かつ任意の適切なアーキテクチャ(例えば、フィード・フォワード・アーキテクチャ、リカレント・アーキテクチャ)で配置されることが可能である。一例では、畳み込み層の後に、プーリング層、全結合層、正規化層、及び/又はこれに類するもののような他の層が続く。
【0035】
[0054] プーリング層は、1つの層における複数のノードからの出力を、次の層における単一のノードに結び付けることによって、データの次元を低減するために使用することが可能である。以下、特徴マップを入力として有するプーリング層に関するプーリング演算を説明する。説明は、他の入力信号にも適切に適用することが可能である。特徴マップは、サブ領域(例えば、矩形サブ領域)に分割することが可能であり、それぞれのサブ領域内の特徴は、例えば、平均プーリングにおける平均値、又は最大プーリングにおける最大値をとることによって、単一の値に独立にダウン・サンプリング(又はプーリング)することが可能である。
【0036】
[0055] プーリング層は、ローカル・プーリング、グローバル・プーリング、最大プーリング、平均プーリング、及び/又はこれに類するもののようなプーリングを実行することができる。プーリングは、非線形ダウン・サンプリングの一形態である。ローカル・プーリングは、特徴マップ内の少数のノード(例えば、2x2ノードのようなノードのローカル・クラスタ)を組み合わせる。グローバル・プーリングは、例えば特徴マップの全てのノードを組み合わせることができる。
【0037】
[0056] プーリング層は、その表現のサイズを低減することが可能であり、従って、パラメータの数、メモリ・フットプリント、及びCNNにおける演算の量を低減することができる。一例では、プーリング層が、CNN内の連続する畳み込み層の間に挿入される。一例では、プーリング層の後に、正規化線型ユニット(rectified linear unit,ReLU)層のような活性化関数が続く。一例では、プーリング層は、CNNにおける連続する畳み込み層の間で省略される。
【0038】
[0057] 正規化層は、ReLU、リーキーReLU(leaky ReLU)、一般化分割正規化(generalized divisive normalization,GDN)、インバースGDN(IGDN)などであるとすることが可能である。ReLUは、負の値を0に設定することによって、特徴マップのような入力信号から負の値を除去するために、非飽和活性化関数を適用することができる。リーキーReLUは、平坦な傾き(例えば、0)の代わりに、負の値に対して小さな傾き(例えば、0.01)を有することが可能である。従って、値xが0より大きい場合、リーキーReLUからの出力はxである。そうではない場合、リーキーReLUからの出力は、値xに小さな傾き(例えば、0.01)を乗じたものである。一例では、傾きは訓練前に決定され、従って訓練中には学習されない。
【0039】
[0058] NICフレームワークは、画像圧縮のための圧縮モデルに対応することが可能である。NICフレームワークは、入力画像xを受信し、入力画像xに対応する再構成された画像
【0040】
【数1】
を出力する(便宜上、x- と記載する場合がある。以下同様)。NICフレームワークは、ニューラル・ネットワーク・エンコーダ(例えば、DNNのようなニューラル・ネットワークに基づくエンコーダ)と、ニューラル・ネットワーク・デコーダ(例えば、DNNのようなニューラル・ネットワークに基づくデコーダ)とを含むことが可能である。入力画像xは、例えば、記憶及び伝送の目的のために、コンパクトであることが可能な圧縮された表現(例えば、コンパクト表現)
【0041】
【数2】
(便宜上、x^ と記載する場合がある。以下同様)を計算するためにニューラル・ネットワーク・エンコーダへの入力として提供される。圧縮された表現x^は、再構成された画像x-を生成するためにニューラル・ネットワーク・デコーダへの入力として提供される。様々な実施形態において、入力画像x及び再構成された画像x-は、空間ドメインにおけるものであり、圧縮された表現x^は空間ドメインとは異なるドメインにおけるものである。一部の例では、圧縮された表現x^は量子化され、エントロピー・コーディングされる。
【0042】
[0059] 一部の例では、NICフレームワークは、変分オートエンコーダ(variational autoencoder,VAE)構造を使用することが可能である。VAE構造では、入力画像x全体がニューラル・ネットワーク・エンコーダに入力されることが可能である。入力画像x全体は、圧縮された表現x^を計算するブラック・ボックスとして機能する(ニューラル・ネットワーク・エンコーダの)ニューラル・ネットワーク層のセットを通過することが可能である。圧縮された表現x^は、ニューラル・ネットワーク・エンコーダの出力である。ニューラル・ネットワーク・デコーダは、圧縮された表現全体x^を入力として取ることが可能である。圧縮された表現x^は、再構成された画像x-を計算する別のブラック・ボックスとして機能する(ニューラル・ネットワーク・デコーダの)ニューラル・ネットワーク層の別のセットを通過することが可能である。レート歪(rate-distortion,R-D)損失L(x,x-,x^)は、再構成された画像x-の歪損失D(x,x-)とコンパクト表現x^のビット消費Rとの間のトレード・オフを、次式Eq.1のようにトレード・オフ・ハイパーパラメータλを用いて最適に達成することが可能である:
【0043】
【数3】
[0060] ニューラル・ネットワーク(例えば、ANN)は、タスク固有のプログラミングによらず、事例(examples)からタスクを実行することを学習することができる。ANNは、接続されたノード又は人工ニューロンを用いて構成されることが可能である。ノード間の接続は、第1のノードから第2のノード(例えば、受信ノード)へ信号を送信することが可能であり、信号は、接続に関するウェイト係数によって指定されることが可能なウェイトによって修正されることが可能である。受信ノードは、信号を受信ノードへ伝送するノードからの信号(即ち、受信ノードに対する入力信号)を処理し、次いで、入力信号に関数を適用することによって出力信号を生成することが可能である。関数は線型関数であるとすることが可能である。一例では、出力信号は、入力信号の加重和である。一例では、出力信号は、バイアス項によって示されることが可能なバイアスによって更に修正され、従って、出力信号は、バイアスと入力信号の加重和との総和である。関数は、例えば、重み付けされた和、又はバイアスと入力信号の重み付けされた和との総和に関する非線形演算を含むことが可能である。出力信号は、受信ノードに接続されたノード(下流ノード)へ送信されることが可能である。ANNは、パラメータ(例えば、接続及び/又はバイアスのウェイト)によって表現されるか又は構成されることが可能である。ウェイト及び/又はバイアスは、ANNを事例を用いて訓練すること(例えば、オフライン訓練、オンライン訓練など)によって取得されることが可能であり、ここで、ウェイト及び/又はバイアスは反復的に調整されることが可能である。決定されたウェイト及び/又は決定されたバイアスを用いて構成される訓練済みANNは、タスクを実行するために使用されることが可能である。
【0044】
[0061]
図1は、一部の例におけるNICフレームワーク(100)例えば、NICシステム)を示す。NICフレームワーク(100)は、DNN及び/又はCNNのようなニューラル・ネットワークに基づくことが可能である。NICフレームワーク(100)は、画像を圧縮(例えば、符号化)し、圧縮された画像(例えば符号化された画像)を解凍(例えば、圧縮解除、復号化、又は再構成)するために使用することが可能である。
【0045】
[0062] 具体的には、
図1において、NICフレームワーク(100)内の圧縮モデルは、圧縮モデルのメイン・レベル、及び圧縮モデルのハイパー・レベルと呼ばれる2つのレベルを含む。圧縮モデルのメイン・レベル及び圧縮モデルのハイパー・レベルは、ニューラル・ネットワークを使用して実装されることが可能である。
図1において、圧縮モデルのメイン・レベルに関するニューラル・ネットワークは第1のサブNN(151)として示され、圧縮モデルのハイパー・レベルは第2のサブNN(152)として示されている。
【0046】
[0063] 第1のサブNN(151)は、オートエンコーダに類似している可能性があり、入力画像xの圧縮された画像x^を生成し、圧縮された画像(例えば、符号化された画像)x^を非圧縮化して、再構成された画像x-を取得するように訓練されることが可能である。第1のサブNN(151)は、メイン・エンコーダ・ニューラル・ネットワーク(又はメイン・エンコーダ・ネットワーク)(111)、量子化器(112)、エントロピー・エンコーダ(113)、エントロピー・デコーダ(114)、及び、メイン・デコーダ・ニューラル・ネットワーク(又はメイン・エンコーダ・ネットワーク)(115)のような複数の構成要素(又はモジュール)を含むことが可能である。
【0047】
[0064]
図1を参照すると、メイン・エンコーダ・ネットワーク(111)は、入力画像x(例えば、圧縮又は符号化されるべき画像)から、潜在性又は潜在表現(latent representation)yを生成することが可能である。一例では、メイン・エンコーダ・ネットワーク(111)は、CNNを使用して実施される。潜在表現yと入力画像xとの間の関係は、Eq.2を用いて記述することが可能である:
【0048】
【数4】
ここで、パラメータθ1は、メイン・エンコーダ・ネットワーク(111)内の畳み込みカーネルで使用されるウェイト及びバイアス(メイン・エンコーダ・ネットワーク(111)内でバイアスが使用される場合)のようなパラメータを表す。
【0049】
[0065] 潜在表現yは、量子化器(112)を使用して量子化されて、量子化された潜在表現y^を生成することが可能である。量子化された潜在性y^は、入力画像xの圧縮された表現x^である圧縮された画像(例えば、符号化された画像)x^(131)を生成するために、エントロピー・エンコーダ(113)によって、例えばロスレス圧縮を利用して圧縮されることが可能である。エントロピー・エンコーダ(113)は、ハフマン・コーディング、算術コーディングなどのようなエントロピー・コーディング技法を使用することが可能である。一例では、エントロピー・エンコーダ(113)は、算術符号化を使用しており、また、算術エンコーダである。一例では、符号化された画像(131)はコーディングされたビットストリームで伝送される。
【0050】
[0066] 符号化された画像(131)は、出力を生成するために、エントロピー・デコーダ(114)によって解凍(例えば、エントロピー復号化)されることが可能である。エントロピー・デコーダ(114)は、エントロピー・エンコーダ(113)で使用されるエントロピー符号化技法に対応するハフマン・コーディング、算術コーディングなどのようなエントロピー・コーディング技法を使用することが可能である。一例では、エントロピー・デコーダ(114)は算術復号化を使用しており、また、算術デコーダである。一例では、エントロピー・エンコーダ(113)においてロスレス圧縮が使用され、エントロピー・デコーダ(114)においてロスレス解凍が使用され、符号化された画像(131)の伝送などに起因するノイズは省略可能であり、エントロピー・デコーダ(114)からの出力は、量子化された潜在性y^である。
【0051】
[0067] メイン・デコーダ・ネットワーク(115)は、量子化された潜在性y^を復号化して、再構成された画像x-を生成することが可能である。一例では、メイン・デコーダ・ネットワーク(115)は、CNNを使用して実施される。再構成された画像x-(即ち、メイン・デコーダ・ネットワーク(115)の出力)と量子化された潜在性y^(即ち、メイン・デコーダ・ネットワーク(115)の入力)は、Eq.3を使用して記述することが可能である:
【0052】
【数5】
ここで、パラメータθ2は、メイン・デコーダ・ネットワーク(115)内の畳み込みカーネルで使用されるウェイト及びバイアス(メイン・デコーダ・ネットワーク(115)内でバイアスが使用される場合)のようなパラメータを表す。従って、第1のサブNN(151)は、入力画像xを圧縮(例えば、符号化)して符号化された画像(131)を取得し、符号化された画像(131)を解凍(例えば、復号化)して、再構成された画像x-を取得することが可能である。再構成された画像x-は、量子化器(112)によって導入される量子化損失に起因して、入力画像xとは相違する可能性がある。
【0053】
[0068] 一部の例では、第2のサブNN(152)は、エントロピー・コーディングのために使用される量子化された潜在性y^におけるエントロピー・モデル(例えば、事前確率モデル(prior probabilistic model))を学習することが可能である。従って、エントロピー・モデルは、条件付けられたエントロピー・モデル、例えば、入力画像xに依存するガウス混合モデル(Gaussian mixture model,GMM)、ガウス・スケール・モデル(Gaussian scale model,GSM)であるとすることが可能である。
【0054】
[0069] 一部の例では、第2のサブNN(152)は、コンテキスト・モデルNN(116)、エントロピー・パラメータNN(117)、ハイパー・エンコーダ・ネットワーク(121)、量子化器(122)、エントロピー・エンコーダ(123)、エントロピー・デコーダ(124)、及びハイパー・デコーダ・ネットワーク(125)を含むことが可能である。コンテキスト・モデルNN(116)において使用されるエントロピー・モデルは、潜在性(例えば、量子化された潜在性y^)に対する自己回帰モデルであるとすることが可能である。一例では、ハイパー・エンコーダ・ネットワーク(121)、量子化器(122)、エントロピー・エンコーダ(123)、エントロピー・デコーダ(124)、及びハイパー・デコーダ・ネットワーク(125)は、ハイパー・レベルにおいてニューラル・ネットワーク(例えば、ハイパー事前分布NN(hyperprior NN))を使用して実施されることが可能なハイパー事前分布モデル(hyperprior model)を形成する。事前分布モデルは、コンテキスト・ベース予測を補正するのに有用な情報を表すことができる。コンテキスト・モデルNN(116)及びハイパー事前分布モデルからのデータは、エントロピー・パラメータNN(117)によって組み合わせることが可能である。エントロピー・パラメータNN(117)は、条件付きガウス・エントロピー・モデル(例えば、GMM)のようなエントロピー・モデルの平均及びスケール・パラメータのようなパラメータを生成することが可能である。
【0055】
[0070]
図1を参照すると、エンコーダ側において、量子化器(112)からの量子化された潜在性y^は、コンテキスト・モデルNN(116)に供給される。デコーダ側では、エントロピー・デコーダ(114)からの量子化された潜在性y^は、コンテキスト・モデルNN(116)に供給される。コンテキスト・モデルNN(116)は、CNNのようなニューラル・ネットワークを使用して実施することが可能である。コンテキスト・モデルNN(116)は、コンテキスト・モデルNN(116)にとって利用可能な量子化された潜在性y^であるコンテキストy^<iに基づいて、出力ocm,iを生成することが可能である。コンテキストy^<iは、エンコーダ側で以前に量子化された潜在性、又は、エンコーダ側で以前にエントロピー復号化された量子化された潜在性を含むことが可能である。コンテキスト・モデルNN(116)の出力ocm,iと入力(e.g., y^<i)の間の関係は、Eq.4を用いて記述することが可能である:
【0056】
【数6】
ここで、パラメータθ3は、コンテキスト・モデルNN(116)内の畳み込みカーネルで使用されるウェイト及びバイアス(コンテキスト・モデルNN(116)内でバイアスが使用される場合)のようなパラメータを表す。
【0057】
[0071] コンテキスト・モデルNN(116)からの出力ocm,iとハイパー・デコーダ・ネットワーク(125)からの出力ohcは、出力oepを生成するために、エントロピー・パラメータNN(117)に供給される。エントロピー・パラメータNN(117)は、CNNのようなニューラル・ネットワークを使用して実施されることが可能である。エントロピー・パラメータNN(117)の出力oepと入力(e.g.,ocm,i及びohc)の間の関係は、Eq.5を用いて記述することが可能である:
【0058】
【数7】
ここで、パラメータθ4は、エントロピー・パラメータNN(117)内の畳み込みカーネルで使用されるウェイト及びバイアス(エントロピー・パラメータNN(117)内でバイアスが使用される場合)のようなパラメータを表す。エントロピー・パラメータNN(117)の出力oepは、エントロピー・モデルを決定する(例えば、条件付ける)際に使用することが可能であり、従って、条件付けられたエントロピー・モデルは、例えば、ハイパー・デコーダ・ネットワーク(125)からの出力ohcを介して、入力画像xに依存していることが可能である。一例では、出力oepは、エントロピー・モデル(例えば、GMM)を条件付けるために使用される、平均及びスケール・パラメータのようなパラメータを含む。
図1を参照すると、エントロピー・モデル(例えば、条件付きエントロピー・モデル)は、エントロピー・コーディング及びエントロピー・デコーディングにおいてそれぞれエントロピー・エンコーダ(113)及びエントロピー・デコーダ(114)によって使用されることが可能である。
【0059】
[0072] 第2のサブNN(152)は以下のように説明することが可能である。潜在性yは、ハイパー潜在性zを生成するために、ハイパー・エンコーダ・ネットワーク(121)に供給されることが可能である。一例では、ハイパー・エンコーダ・ネットワーク(121)は、CNNのようなニューラル・ネットワークを使用して実施されることが可能である。ハイパー潜在性zと潜在性yとの間の関係は、Eq.6を用いて記述することが可能である:
【0060】
【数8】
ここで、パラメータθ5は、ハイパー・エンコーダ・ネットワーク(121)内の畳み込みカーネルで使用されるウェイト及びバイアス(ハイパー・エンコーダ・ネットワーク(121)内でバイアスが使用される場合)のようなパラメータを表す。
【0061】
[0073] ハイパー潜在性zは、量子化器(122)によって量子化されて、量子化された潜在z^を生成する。量子化された潜在性z^は、例えばエントロピー・エンコーダ(123)によるロスレス圧縮を使用して、ハイパー・ニューラル・ネットワークからの符号化されたビット(132)のようなサイド情報を生成することが可能である。エントロピー・エンコーダ(123)は、ハフマン・コーディング、算術コーディングなどのようなエントロピー・コーディング技法を使用することが可能である。一例では、エントロピー・エンコーダ(123)は、算術符号化を使用しており、また、算術エンコーダである。一例では、符号化されたビット(132)のようなサイド情報は、例えば、符号化された画像(131)とともに、コーディングされたビットストリームで伝送されることが可能である。
【0062】
[0074] 符号化されたビット(132)のようなサイド情報は、出力を生成するためにエントロピー・デコーダ(124)によって解凍(例えば、エントロピー復号化)されることが可能である。エントロピー・デコーダ(124)は、ハフマン・コーディング、算術コーディング等のようなエントロピー・コーディング技法を使用することが可能である。一例では、エントロピー・デコーダ(124)は算術復号化を使用しており、また、算術デコーダである。一例では、エントロピー・エンコーダ(123)においてロスレス圧縮が使用され、エントロピー・デコーダ(124)においてロスレス解凍が使用され、サイド情報の伝送などに起因するノイズは省略可能であり、エントロピー・デコーダ(124)からの出力は、量子化された潜在性z^であるとすることが可能である。ハイパー・デコーダ・ネットワーク(125)は、量子化された潜在性z^を復号化して出力ohcを生成することが可能である。出力ohcと量子化された潜在性z^との間の関係は、Eq.7を用いて記述することが可能である:
【0063】
【数9】
ここで、パラメータθ6は、ハイパー・エンコーダ・ネットワーク(125)内の畳み込みカーネルで使用されるウェイト及びバイアス(ハイパー・エンコーダ・ネットワーク(125)内でバイアスが使用される場合)のようなパラメータを表す。
【0064】
[0075] 上記で説明したように、圧縮又は符号化されたビット(132)は、エントロピー・デコーダ(114)が条件付きエントロピー・モデルを使用できるようするサイド情報として、コーディングされたビットストリームに追加されることが可能である。従って、エントロピー・モデルは、画像依存性であり且つ空間的に適応的であることが可能であり、従って、固定されたエントロピー・モデルよりも正確である可能性がある。
【0065】
[0076] NICフレームワーク(100)は、例えば、
図1に示される1つ以上の構成要素を省略するように、
図1に示される1つ以上の構成要素を変更するように、及び/又は
図1に示されていない1つ以上の構成要素を含むように適切に適合されることが可能である。一例では、固定されたエントロピー・モデルを使用するNICフレームワークは、第1のサブNN(151)を含み、第2のサブNN(152)を含まない。一例では、NICフレームワークは、エントロピー・エンコーダ(123)及びエントロピー・デコーダ(124)を除いて、NICフレームワーク(100)内の構成要素を包含する。
【0066】
[0077] 実施形態では、
図1に示されるNICフレームワーク(100)内の1つ以上の構成要素は、CNNのようなニューラル・ネットワークを使用して実施される。NICフレームワーク(例えば、NICフレームワーク(100))内の各NNベースの構成要素(例えば、メイン・エンコーダ・ネットワーク(111)、メイン・デコーダ・ネットワーク(115)、コンテキスト・モデルNN(116)、エントロピー・パラメータNN(117)、ハイパー・エンコーダ・ネットワーク(121)、又はハイパー・デコーダ・ネットワーク(125))は、任意の適切なアーキテクチャを含み(例えば、任意の適切な層の組み合わせを有し)、任意の適切なタイプのパラメータ(例えば、ウェイト、バイアス、ウェイト及びバイアスの組み合わせなど)を含み、任意の適切な数のパラメータを含むことが可能である。
【0067】
[0078] 実施形態では、メイン・エンコーダ・ネットワーク(111)、メイン・デコーダ・ネットワーク(115)、コンテキスト・モデルNN(116)、エントロピー・パラメータNN(117)、ハイパー・エンコーダ・ネットワーク(121)、及びハイパー・デコーダ・ネットワーク(125)は、それぞれのCNNを使用して実施される。
【0068】
[0079]
図2は、本開示の実施形態によるメイン・エンコーダ・ネットワーク(111)の例示的なCNNを示す。例えば、メイン・エンコーダ・ネットワーク(111)は、4セットの層を含み、ここで、層の各セットは、畳み込み層5x5 c192 s2と、それに続くGDN層とを含む。
図2に示される1つ以上の層は、修正及び/又は省略されることが可能である。追加の層を、メイン・エンコーダ・ネットワーク(111)に追加することが可能である。
【0069】
[0080]
図3は、本開示の実施形態によるメイン・デコーダ・ネットワーク(115)の例示的なCNNを示す。例えば、メイン・デコーダ・ネットワーク(115)は、3セットの層を含み、ここで、層の各セットは、デコンボリューション層5x5 c192 s2と、それに続くIGDN層とを含む。更に、3セットの層の後にデコンボリューション層5x5 c3 s2が続き、その後にIGDN層が続く。
図3に示される1つ以上の層は、修正及び/又は省略されることが可能である。追加の層を、メイン・デコーダ・ネットワーク(115)に追加することが可能である。
【0070】
[0081]
図4は、本開示の実施形態によるハイパー・エンコーダ・ネットワーク(121)の例示的なCNNを示す。例えば、ハイパー・エンコーダ・ネットワーク(121)は、畳み込み層3x3 c192 s1と、それに続くリーキーReLUと、畳み込み層5x5 c192 s2と、それに続くリーキーReLUと、畳み込み層5x5 c192 s2とを含む。
図4に示される1つ以上の層は、修正及び/又は省略することが可能である。追加の層を、ハイパー・エンコーダ・ネットワーク(121)に追加することが可能である。
【0071】
[0082]
図5は、本開示の実施形態によるハイパー・デコーダ・ネットワーク(125)の例示的なCNNを示す。例えば、ハイパー・デコーダ・ネットワーク(125)は、デコンボリューション層5x5 c192 s2と、それに後続するリーキーReLUと、デコンボリューション層5x5 c288 s2と、それに後続するリーキーReLUと、デコンボリューション層3x3 c384 s1とを含む。
図5に示される1つ以上の層は、修正及び/又は省略されることが可能である。追加の層を、ハイパー・デコーダ・ネットワーク(125)に追加することが可能である。
【0072】
[0083]
図6は、本開示の実施形態によるコンテキスト・モデルNN(116)の例示的なCNNを示す。例えば、コンテキスト・モデルNN(116)は、コンテキスト予測のためのマスクされた畳み込み5x5 c384 s1を含み、従って、Eq.4におけるコンテキストy^<iは、限定されたコンテキスト(例えば、5x5畳み込みカーネル)を含む。
図6の畳み込み層は修正されることが可能である。追加の層を、コンテキスト・モデルNNに追加することが可能である(1016)。
【0073】
[0084]
図7は、本開示の実施形態によるエントロピー・パラメータNN(117)の例示的なCNNを示す。例えば、エントロピー・パラメータNN(117)は、畳み込み層1x1 c640 s1と、それに後続するリーキーReLUと、畳み込み層1x1 c512 s1と、それに後続するリーキーReLUと、畳み込み層1x1 c384 s1とを含む。
図7に示される1つ以上の層は、修正及び/又は省略されることが可能である。追加の層を、エントロピー・パラメータNN(117)に追加することが可能である。
【0074】
[0085] NICフレームワーク(100)は、
図2-7に関連して説明されているように、CNNを使用して実施されることが可能である。NICフレームワーク(100)は、NICフレームワーク(100)内の1つ以上の構成要素(例えば、(111),(115),(116),(117),(121),及び/又は(125))が、任意の適切なタイプのニューラル・ネットワーク(例えば、CNN又は非CNNベースのニューラル・ネットワーク)を使用して実施されるように、適切に適合されることが可能である。NICフレームワーク(100)の1つ以上の他の構成要素は、ニューラル・ネットワークを使用して実施することが可能である。
【0075】
[0086] ニューラル・ネットワーク(例えば、CNN)を含むNICフレームワーク(100)は、ニューラル・ネットワークにおいて使用されるパラメータを学習するように訓練されることが可能である。例えば、CNNが使用される場合に、θ1-θ6により表現されるパラメータ、例えば、
メイン・エンコーダ・ネットワーク(111)内の畳み込みカーネルで使用されるウェイト及びバイアス(メイン・エンコーダ・ネットワーク(111)内でバイアスが使用される場合)、
メイン・デコーダ・ネットワーク(115)内の畳み込みカーネルで使用されるウェイト及びバイアス(メイン・デコーダ・ネットワーク(115)内でバイアスが使用される場合)、
ハイパー・エンコーダ・ネットワーク(121)内の畳み込みカーネルで使用されるウェイト及びバイアス(ハイパー・エンコーダ・ネットワーク(121)内でバイアスが使用される場合)、
ハイパー・デコーダ・ネットワーク(125)内の畳み込みカーネルで使用されるウェイト及びバイアス(ハイパー・デコーダ・ネットワーク(125)内でバイアスが使用される場合)、
コンテキスト・モデルNN(116)内の畳み込みカーネルで使用されるウェイト及びバイアス(コンテキスト・モデルNN(116)内でバイアスが使用される場合)、及び
エントロピー・パラメータNN(117)内の畳み込みカーネルで使用されるウェイト及びバイアス(エントロピー・パラメータNN(117)内でバイアスが使用される場合)は、それぞれ訓練プロセス(例えば、オフライン訓練プロセス、オンライン訓練プロセスなど)において学習することが可能である。
【0076】
[0087] 一例では、
図2を参照すると、メイン・エンコーダ・ネットワーク(111)は4つの畳み込み層を含み、ここで、各々の畳み込み層は5x5及び192チャネルの畳み込みカーネルを有する。従って、メイン・エンコーダ・ネットワーク(111)内の畳み込みカーネルで使用されるウェイトの数は、19200(即ち、4x5x5x192)である。メイン・エンコーダ・ネットワーク(111)で使用されるパラメータは、19200個のウェイト及びオプションのバイアスを含む。メイン・エンコーダ・ネットワーク(111)においてバイアス及び/又は追加のNNが使用される場合、追加のパラメータを含めることが可能である。
【0077】
[0088]
図1を参照すると、NICフレームワーク(100)は、ニューラル・ネットワーク上に構築された少なくとも1つの構成要素又はモジュールを含む。少なくとも1つの構成要素は、メイン・エンコーダ・ネットワーク(111)、メイン・デコーダ・ネットワーク(115)、ハイパー・エンコーダ・ネットワーク(121)、ハイパー・デコーダ・ネットワーク(125)、コンテキスト・モデルNN(116)、及びエントロピー・パラメータNN(117)のうちの1つ以上を含むことが可能である。少なくとも1つの構成要素を個別に訓練することが可能である。一例では、訓練プロセスは、各々の構成要素のパラメータを別々に学習するために使用される。少なくとも1つの構成要素は、グループとして一緒に訓練されることが可能である。一例において、訓練プロセスは、少なくとも1つの構成要素のサブセットのパラメータを、一緒に学習するために使用される。一例では、訓練プロセスは、少なくとも1つの構成要素の全てについてのパラメータを学習するために使用され、従って、E2E最適化と呼ばれる。
【0078】
[0089] NICフレームワーク(100)内の1つ以上の構成要素のための訓練プロセスにおいて、1つ以上の構成要素のウェイト(又は重み係数)は初期化されることが可能である。一例では、ウェイトは、事前に訓練された対応するニューラル・ネットワーク・モデル(例えば、DNNモデル、CNNモデル)に基づいて初期化される。一例では、ウェイトは、ウェイトを乱数に設定することによって初期化される。
【0079】
[0090] 訓練画像のセットは、例えばウェイトが初期化された後に、1つ以上の構成要素を訓練するために使用されることが可能である。訓練画像のセットは、任意の適切なサイズを有する任意の適切な画像を含むことが可能である。一部の例では、訓練画像のセットは、生画像(raw images)、自然画像、コンピュータ生成画像及び/又はこれに類するものであって空間領域ドメインにおけるものを含む。一部の例では、訓練画像のセットは、残差画像からの画像、又は空間ドメインにおける残差データを有する残差画像を含む。残差データは、残差演算器によって計算することが可能である。一部の例では、NICフレームワーク(100)のようなNICフレームワークにおいてニューラル・ネットワークを訓練するために、生画像及び/又は残差データを含む残差画像が直接的に使用されることが可能である。従って、NICフレームワークにおいてニューラル・ネットワークを訓練するために、生画像、残差画像、生画像からの画像、及び/又は残差画像からの画像を使用することが可能である。
【0080】
[0091] 簡明性のために、以下における訓練プロセス(例えば、オフライン訓練プロセス、オンライン訓練プロセスなど)は、一例として訓練画像を使用して説明される。この説明は、訓練ブロックに適切に適合させることが可能である。訓練画像のセットのうちの訓練画像 tは、圧縮された表現(例えば、符号化された情報、例えば、ビットストリームに対するもの)を生成するために、
図1の符号化プロセスを通過することが可能である。符号化された情報は、再構成された画像t-を算出して再構成するために、
図1に記載される復号化プロセスを通過することが可能である。
【0081】
[0092] NICフレームワーク(100)の場合、2つの競合するターゲット、例えば再構成品質とビット消費とのバランスがとられる。品質損失関数(例えば、歪又は歪損失)D(t,t-)を使用して、再構成(例えば、再構成された画像t-)と、元の画像(例えば、訓練画像t)との間の相違のような再構成品質を示すことが可能である。レート(又はレート損失)Rは、圧縮された表現のビット消費を示すために使用されることが可能である。一例では、レート損失Rは、例えば、コンテキスト・モデルを決定する際に使用されるサイド情報を更に含む。
【0082】
[0093] ニューラル画像圧縮の場合、量子化の微分可能近似(differentiable approximations)がE2E最適化において使用される可能性がある。様々な例において、ニューラル・ネットワーク・ベースの画像圧縮の訓練プロセスにおいて、量子化をシミュレートするためにノイズ注入(noise injection)が使用され、従って、量子化は、量子化器(例えば、量子化器(112))によって実行される代わりに、ノイズ注入によってシミュレートされる。従って、ノイズ注入を用いる訓練は、量子化誤差を変分的に近似することができる。ビット・パー・ピクセル(bits per pixel,BPP)推定器は、エントロピー・コーダをシミュレートするために使用されることが可能であり、従って、エントロピー・コーディングは、エントロピー・エンコーダ(例えば、(113))及びエントロピー・デコーダ(例えば、(114))によって実行される代わりに、BPP推定器によってシミュレートされる。従って、訓練プロセス中のEq.1に示される損失関数Lにおけるレート損失Rは、例えば、雑音注入及びBPP推定器に基づいて推定されることが可能である。一般に、より高いレートRは、より低い歪Dを許容する可能性があり、より低いレートRは、より高い歪Dを招く可能性がある。従って、Eq.1におけるトレード・オフ・ハイパーパラメータλを使用して、結合R-D損失(joint R-D loss)Lを最適化することが可能であり、ここで、λDとRの和としてのLを最適化することが可能である。訓練プロセスは、結合R-D損失Lが最小化又は最適化されるように、NICフレームワーク(100)における1つ以上の構成要素(例えば、(111)(115))のパラメータを調整するために使用される。一部の例では、トレード・オフ・ハイパーパラメータλは、以下のようにして、結合レート歪(R-D)損失を最適化するために使用されることが可能である:
【0083】
【数10】
ここで、Eは、符号化前の元の画像残差と比較した復号化画像残差の歪を測るものであり、これは、残差符号化/復号化DNN及び符号化/復号化DNNに対する正則化損失として作用する。βは、正則化損失の重要性のバランスをとるためのハイパーパラメータである。
【0084】
[0094] 様々なモデルを使用して、歪損失D及びレート損失Rを決定することができ、従って、Eq.1における結合R-D損失Lを決定することができる。一例では、歪損失D(t,t-)は、平均二乗誤差に基づくメトリックであるPSNR(Peak Signal-to-Noise Ratio)、MS-SSIM(Multiscale Structural Similarity)品質インデックス、PSNRとMS-SSIMの重み付けされた組み合せ等として表現される。
【0085】
[0095] 一例では、訓練プロセスのターゲットは、エンコーダ側で使用されるべきビデオ・エンコーダのような符号化ニューラル・ネットワーク(例えば、符号化DNN)と、デコーダ側で使用されるべきビデオ・デコーダのような復号化ニューラル・ネットワーク(例えば、復号化DNN)とを訓練することである。一例では、
図1を参照すると、符号化ニューラル・ネットワークは、メイン・エンコーダ・ネットワーク(111)、ハイパー・エンコーダ・ネットワーク(121)、ハイパー・デコーダ・ネットワーク(125)、コンテキスト・モデルNN(116)、及びエントロピー・パラメータNN(117)を含むことが可能である。復号化ニューラル・ネットワークは、メイン・デコーダ・ネットワーク(115)、ハイパー・デコーダ・ネットワーク(125)、コンテキスト・モデルNN(116)、及びエントロピー・パラメータNN(117)を含むことが可能である。ビデオ・エンコーダ及び/又はビデオ・デコーダは、NNに基づく及び/又はNNに基づかない他の構成要素を含むことが可能である。
【0086】
[0096] NICフレームワーク(例えば、NICフレームワーク(100))は、E2E方式で訓練されることが可能である。一例では、符号化ニューラル・ネットワーク及び復号化ニューラル・ネットワークは、例えば勾配降下アルゴリズムを使用して、E2E方式で逆伝搬される勾配に基づく訓練プロセスにおいて一緒に更新される。勾配降下アルゴリズムは、NICフレームワークの微分可能な関数の極小値(例えば、レート歪損失の極小値)を見つけるために、NICフレームワークのパラメータを反復的に最適化することが可能である。例えば、勾配降下アルゴリズムは、微分可能な関数の現在の地点における勾配(又は近似的な勾配)の反対方向に反復されるステップを採用することが可能である。
【0087】
[0097] NICフレームワーク(100)内のニューラル・ネットワークのパラメータが訓練された後に、NICフレームワーク(100)内の1つ以上の構成要素は、画像を符号化及び/又は復号化するために使用されることが可能である。実施形態では、エンコーダ側において、画像エンコーダは、入力画像xを、ビットストリームで伝送される符号化された画像(131)に符号化するように構成されている。画像エンコーダは、NICフレームワーク(100)内に複数の構成要素を含む可能性がある。実施形態において、デコーダ側では、対応する画像デコーダは、ビットストリームで搬送された符号化された画像(131)を、再構成された画像x-に復号化するように構成されている。画像デコーダは、NICフレームワーク(100)内に複数の構成要素を含むことが可能である。
【0088】
[0098] NICフレームワークによる画像エンコーダ及び画像デコーダは、対応する構造を有する可能性があることに留意されたい。
【0089】
[0099]
図8は、本開示の実施形態による例示的な画像エンコーダ(800)を示す。画像エンコーダ(800)は、メイン・エンコーダ・ネットワーク(811)、量子化器(812)、エントロピー・エンコーダ(813)、及び第2のサブNN(852)を含む。メイン・エンコーダ・ネットワーク(811)はメイン・エンコーダ・ネットワーク(111)と同様に構成され、量子化器(812)は量子化器(112)と同様に構成され、エントロピー・エンコーダ(813)はエントロピー・エンコーダ(113)と同様に構成され、第2のサブNN(852)は第2のサブNN(152)と同様に構成される。説明は、
図1に関連して上記で与えられており、明瞭性のためにここでは省略される。
【0090】
[0100]
図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に関連して上記で与えられており、明瞭性のためにここでは省略される。
【0091】
[0101]
図8-9を参照すると、エンコーダ側において、画像エンコーダ(800)は、ビットストリームで伝送されるべき符号化された画像(831)と符号化されたビット(832)とを生成することが可能である。デコーダ側において、画像デコーダ(900)は、符号化された画像(931)及び符号化されたビット(932)を受信し、復号化することが可能である。符号化された画像(931)及び符号化されたビット(932)は、受信されたビットストリームから解析されることが可能である。
【0092】
[0102]
図10-11は、本開示の実施形態による例示的な画像エンコーダ(1000)及び対応する画像デコーダ(1100)をそれぞれ示す。
図10を参照すると、画像エンコーダ(1000)は、メイン・エンコーダ・ネットワーク(1011)、量子化器(1012)、及びエントロピー・エンコーダ(1013)を含む。メイン・エンコーダ・ネットワーク(1011)はメイン・エンコーダ・ネットワーク(111)と同様に構成され、量子化器(1012)は量子化器(112)と同様に構成され、エントロピー・エンコーダ(1013)はエントロピー・エンコーダ(113)と同様に構成される。説明は、
図1に関連して上記で与えられており、明瞭性のためにここでは省略される。
【0093】
[0103]
図11を参照すると、画像デコーダ(1100)は、メイン・デコーダ・ネットワーク(1115)、及びエントロピー・デコーダ(1114)を含む。メイン・デコーダ・ネットワーク(1115)は、メイン・デコーダ・ネットワーク(115)と同様に構成され、エントロピー・デコーダ(1114)は、エントロピー・デコーダ(114)と同様に構成される。説明は、
図1に関連して上記で与えられており、明瞭性のためにここでは省略される。
【0094】
[0104]
図10及び11を参照すると、画像エンコーダ(1000)は、ビットストリームに含まれるべき符号化された画像(1031)を生成することが可能である。画像デコーダ(1100)は、ビットストリームを受信し、ビットストリームで搬送される符号化された画像(1131)を復号化することが可能である。
【0095】
[0105] 本開示の一部の態様によれば、画像圧縮は、画像内の冗長性を除去することが可能であり、従って、はるかに少ない数のビットを用いて、圧縮された画像を表現することが可能である。画像圧縮は、画像の伝送及び記憶に役立つ可能性がある。圧縮された画像は、圧縮ドメインにおける画像と言及される可能性がある。圧縮された画像に対する画像処理は、圧縮ドメインにおける画像処理と言及される可能性がある。一部の例では、画像圧縮は、異なる圧縮レートで実行されることが可能であり、圧縮ドメインは、一部の例ではマルチ・レート圧縮ドメインと言及されることが可能である。
【0096】
[0106] コンピュータ・ビジョン(CV)は、画像の内容を検出し、理解し、処理するためにニューラル・ネットワークとともにコンピュータを使用する人工知能(AI)の分野である。CVタスクは、(限定ではないが)画像分類、物体検出、超解像度(1つ以上の低解像度画像から高解像度画像を生成すること)、画像ノイズ除去などを含む可能性がある。幾つかの関連する例では、CVタスクは、圧縮を伴わない元の画像、圧縮された画像から再構成された画像のような、(例えば、圧縮されていないドメインにおける)圧縮されていない画像に対して実行される。一部の例では、再構成された画像を生成するために、圧縮された画像が解凍され、CVタスクが、再構成された画像に対して実行される。再構成は、演算負担が大きい可能性がある。画像再構成なしに圧縮ドメインでCVタスクを実行することは、演算の複雑性を低減し、CVタスクのレイテンシを低減することができる。
【0097】
[0107] 本開示の一部の態様は、圧縮ドメインにおけるコンピュータ・ビジョン・タスク・ニューラル・ネットワークのための技法を提供する。一部の例では、本技法は、圧縮ドメインCVタスク・フレームワーク(CDCVTF)のモデルを含むエンド・ツー・エンド(E2E)最適化フレームワークにおいて使用されることが可能である。E2E最適化フレームワークは、エンコーダ(符号化部分とも呼ばれる)及びデコーダ(復号化部分とも呼ばれる)を含む。エンコーダは、入力画像のコーディングされたビットストリームを生成することができ、デコーダは、CVタスク・ベースの結果を生成するためにコーディングされたビットストリームを復号化する。エンド・ツー・エンド(E2E)最適化フレームワークは、事前に訓練された人工ニューラル・ネットワーク(ANN)ベースのフレームワークであるとすることが可能である。
【0098】
[0108] 一部の例では、圧縮された画像に対するCVタスクは、ニューラル・ネットワークの2つの部分によって実行されることが可能である。一部の例では、ニューラル・ネットワークの2つの部分は、エンド・ツー・エンドで訓練されることが可能なE2Eフレームワークを形成する。ニューラル・ネットワークの2つの部分は、画像コーディング・ニューラル・ネットワークの第1の部分と、CVタスク・ニューラル・ネットワークの第2の部分とを含む。一部の例では、画像コーディング・ニューラル・ネットワークは画像圧縮エンコーダとも呼ばれ、CVタスク・ニューラル・ネットワークはCVタスク・デコーダとも呼ばれる。画像圧縮エンコーダは、画像を、コーディングされたビットストリームに符号化することが可能である。CVタスク・デコーダは、コーディングされたビットストリームを復号化して、圧縮ドメインにおけるCVタスク結果を生成することが可能である。CVタスク・デコーダは、(例えば、圧縮ドメインにおいて)圧縮された画像に基づいてCVタスクを実行する。
【0099】
[0109] 一部の例では、画像は、圧縮された画像又は圧縮された特徴マップを搬送するコーディングされたビットストリームを生成するために、NICフレームワークのエンコーダによって圧縮される。更に、圧縮された画像又は圧縮された特徴マップを、CVタスク・ニューラル・ネットワークに提供して、CVタスク結果を生成することができる。
【0100】
[0110]
図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)及び画像圧縮デコーダ(1220)は、予め訓練されたパラメータを有するエンコーダ・モデル及びデコーダ・モデルに従って構成される。画像圧縮エンコーダ(1220)は、入力画像を受信し、入力画像を圧縮し、コーディングされたビットストリームであって入力画像に対応する圧縮された画像を搬送するものを生成することが可能である。画像圧縮デコーダ(1250)は、コーディングされたビットストリームを受信し、圧縮された画像を解凍し、再構成された画像を生成することが可能である。
【0101】
[0111] CVタスク・デコーダ(1270)は、圧縮された画像を搬送するコーディングされたビットストリームを復号化し、入力画像に対応するCVタスク結果を生成するように構成される。CVタスク・デコーダ(1270)は、シングル・タスク・デコーダである可能性があり、或いはマルチ・タスク・デコーダである可能性がある。CVタスクは、超解像度、物体検出、画像ノイズ除去、画像分類などを含むことが可能であるが、これらに限定されない。
【0102】
[0112] CVタスク・デコーダ(1270)は、訓練データに基づいて訓練されるニューラル・ネットワーク(例えば、CVタスク・デコーダ・モデル)を含む。例えば、訓練データは、訓練画像と、圧縮された訓練画像(例えば、画像圧縮エンコーダ(1220)によるもの)と、訓練画像のガイドラインCVタスク結果とを含むことが可能である。例えば、CVタスク・デコーダ(1270)は、圧縮された訓練画像を入力として取り、訓練CVタスク結果を生成することが可能である。CVタスク・デコーダ(1270)(例えば、調整可能なニューラル・ネットワーク構造、及び調整可能なパラメータを有する)は、次いで、ガイドラインCVタスク結果と訓練CVタスク結果との間の損失を最小化するように訓練される。訓練は、CVタスク・デコーダ(1270)の構造及び事前訓練されたパラメータを決定する。
【0103】
[0113] CVタスク・デコーダ(1270)は、CVタスク結果を生成するために、任意の適切なニューラル・ネットワーク構造を有することが可能であることに留意されたい。一部の実施形態では、CVタスク・デコーダ(1270)は、コーディングされたビットストリームを復号化して、画像再構成なしにCVタスク結果を直接的に生成する。一部の実施形態では、CVタスク・デコーダ(1270)は、先ず、コーディングされたビットストリームを復号化し、解凍された画像(再構成された画像とも呼ばれる)を生成し、次いで、解凍された画像に対してCVタスクモデルを適用して、CVタスク結果を生成する。
【0104】
[0114] 一部の例では、画像圧縮エンコーダ(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)は、同じデバイスの中にあることが可能である。
【0105】
[0115]
図13は、一部の例において圧縮ドメインにおいてCVタスクを実行するためのシステム(1300)を示す。システム(1300)は、画像圧縮エンコーダ(1320)及びCVタスク・デコーダ(1370)を含む。一部の例では、画像圧縮エンコーダ(1320)は、NICフレームワークの符号化部分(エンコーダ・モデルを有するもの)として構成され、CVタスク・デコーダ(1370)は、NICフレームワークの復号化部分(デコーダ・モデルを有するもの)として構成される。NICフレームワークは、E2E最適化フレームワークのエンコーダ・及びデコーダ・モデルの事前に訓練されたパラメータを決定するために、訓練データに基づいてエンド・ツー・エンドで訓練されることが可能である。例えば、訓練データは、訓練画像(圧縮されていないもの)、訓練画像のガイドラインCVタスク結果を含むことが可能である。例えば、NICフレームワークは、訓練画像を入力として取り、訓練CVタスク結果を生成することが可能である。NICフレームワークは、次いで、ガイドラインCVタスク結果と訓練CVタスク結果との間の損失を最小化するように(調整可能なニューラル・ネットワーク構造及び調整可能なパラメータを用いて)訓練される。画像圧縮エンコーダ(1320)及びCVタスク・デコーダ(1370)は、事前に訓練されたパラメータに従って構成される。
【0106】
[0116] 次いで、画像圧縮エンコーダ(1320)は、入力画像を受信し、圧縮された画像又は圧縮された特徴マップを搬送するコーディングされたビットストリームを生成することが可能である。CVタスク・デコーダ(1370)は、コーディングされたビットストリームを受信し、圧縮された画像又は圧縮された特徴マップを解凍し、CVタスク結果を生成することが可能である。
【0107】
[0117] CVタスク・デコーダ(1370)は、シングル・タスク・デコーダである可能性があり、或いはマルチ・タスク・デコーダである可能性がある。CVタスクは、超解像度、物体検出、画像ノイズ除去、画像分類などを含むことが可能であるが、これらに限定されない。
【0108】
[0118] CVタスク・デコーダ(1370)は、任意の適切なニューラル・ネットワーク構造とすることが可能であることに留意されたい。一部の実施形態では、CVタスク・デコーダ(1370)は、コーディングされたビットストリームを復号化して、画像再構成なしにCVタスク結果を直接的に生成する。一部の実施形態では、CVタスク・デコーダ(1370)は、先ず、コーディングされたビットストリームを復号化し、解凍された画像(再構成された画像とも呼ばれる)を生成し、次いで、解凍された画像に対してCVタスクモデルを適用して、CVタスク結果を生成する。
【0109】
[0119] 一部の例では、画像圧縮エンコーダ(1320)及びCVタスク・デコーダ(1370)は、異なる電子デバイスの中にある。例えば、画像圧縮エンコーダ(1320)は第1のデバイス(1310)内にあり、CVタスク・デコーダ(1370)は第2のデバイス(1360)内にある。一部の例では、画像圧縮エンコーダ(1320)及びCVタスク・デコーダ(1370)は、同じデバイスの中にあることが可能である。
【0110】
[0120] 一部の例では、オンライン訓練は、人工知能(AI)ベースのニューラル画像圧縮(NIC)等のようなニューラル・ネットワークを用いた画像処理において使用されることが可能である。一部の例では、オンライン訓練ベースの画像圧縮のための技法は、エンド・ツー・エンド(E2E)最適化フレームワークの圧縮モデルに適用されることが可能である。E2E最適化フレームワークは、符号化部分(エンコーダとも呼ばれる)及び復号化部分(デコーダとも呼ばれる)を含む。一部の例では、符号化部分は、1つ以上の画像をビットストリームに符号化することが可能な1つ以上の事前に訓練されたニューラル・ネットワーク(1つ以上の第1の事前に訓練されたニューラル・ネットワークと呼ばれる)を含む。復号化部分は、ビットストリームを復号化して1つ以上の再構成された画像を生成することが可能な1つ以上の事前に訓練されたニューラル・ネットワーク(1つ以上の第2の事前に訓練されたニューラル・ネットワークと呼ばれる)を含む。
【0111】
[0121] 一部の例では、オンライン訓練は、エンコーダ側(NICエンコーダ・オンライン訓練と呼ばれる)とデコーダ側(NICデコーダ・オンライン訓練と呼ばれる)の両方において適用されることが可能である。一部の例では、NICエンコーダ・オンライン訓練の関し、入力画像、エンコーダ・パラメータ、及び/又はエンコーダ・ネットワーク構造は、より良好な圧縮レートを達成するように調整されることが可能である。一部の例では、NICデコーダ・オンライン訓練に関し、デコーダ・パラメータは、より良好なパフォーマンスを達成するように、調整及び更新されることが可能である。一部の例では、NICデコーダ・オンライン訓練に関し、より良いパフォーマンスを達成するために、追加のネットワーク層/モジュールがオンライン訓練中にNICデコーダ側で追加される可能性がある。一例では、追加されたモジュール・パラメータは、デコーダ側の使用のために圧縮画像とともにビットストリームに符号化されることに留意されたい。例えば、3x3畳み込み層が追加層としてデコーダ部分に追加されることが可能であり、畳み込み層のパラメータは、より良いパフォーマンスを達成するためにオンライン訓練中に調整される。パラメータはビットストリームにおいてシグナリングされるので、デコーダ側は畳み込み層をセットアップし、畳み込み層を再構成された画像に適用することができる。
【0112】
[0122] 本開示の一部の態様によれば、コンピュータ・ビジョン・タスクが、ノイズ除去や超解像度のような再構成された画像ベースのタスクである場合(例えば、コンピュータ・ビジョン・タスクの出力が画像である場合)に、オンライン訓練ベースの処理が、圧縮ドメイン・コンピュータ・ビジョン・タスク・フレームワーク(CDCVTF)において使用され、CDCVTFのパフォーマンスを高めることが可能である。一部の例では、オンライン訓練処理は、入力画像、エンコーダ・パラメータ、及び/又はエンコーダ・ネットワーク構造のような、エンコーダ側におけるCDCVTFを調整することが可能である。一例では、オンライン訓練処理は、CDCVTFへの入力画像として元の入力画像と置き換えるための最適な代替画像を決定することができ、そのようなオンライン訓練処理は、オンライン訓練ベースの前処理(preprocessing)と呼ばれることが可能である。
【0113】
[0123] 一部の例では、オンライン訓練処理は、デコーダ・パラメータ、及び/又はデコーダ・ネットワーク構造のようなデコーダ側におけるCDCVTFを調整することが可能であり、そのようなオンライン訓練処理は、オンライン訓練ベースの後処理(postprocessing)と呼ばれることが可能である。CDCVTFは、事前に訓練された人工ニューラル・ネットワーク(ANN)ベースのフレームワークであるエンド・ツー・エンド(E2E)最適化フレームワークである。
【0114】
[0124]
図14は、本開示の一部の実施形態によるオンライン訓練ベースのCDCVTF(1400)を示す。オンライン訓練ベースのCDCVTF(1400)は、ノイズ除去、デブロッキング、超解像度などのような画像ベースのCVタスクのために使用されることが可能である。画像ベースのCVタスクの出力は画像であることに留意されたい。
【0115】
[0125]
図14の例では、オンライン訓練ベースのCDCVTF(1400)は、画像圧縮エンコーダ(1420)、CVタスク・デコーダ(1440)、CVタスク・モジュール(1430)、及びオンライン訓練コントローラ(1450)を共に結合して含んでいる。画像圧縮エンコーダ(1420)、CVタスク・デコーダ(1440)、CVタスク・モジュール(1430)、及びオンライン訓練コントローラ(1450)はそれぞれソフトウェア・モジュール、ハードウェア・モジュール、又はそれらの組み合せとして実施されることが可能であることに留意されたい。ソフトウェア・モジュール(例えば、コンピュータ・プログラム)は、コンピュータ・プログラミング言語を使用して開発されることが可能である。ハードウェア・モジュールは、処理回路及び/又はメモリを使用して実施されることが可能である。各々のモジュールは、1つ以上のプロセッサ(又はプロセッサ及びメモリ)を使用して実施されることが可能である。同様に、プロセッサ(又はプロセッサ及びメモリ)を使用して、1つ以上のモジュールを実施することが可能である。更に、各モジュールは、モジュールの機能を含むモジュール全体の一部であるとすることが可能である。
【0116】
[0126] 一部の例では、画像圧縮エンコーダ(1420)は、NICフレームワークの符号化部分(エンコーダ・モデルを有するもの)として構成され、CVタスク・デコーダ(1440)は、NICフレームワークの復号化部分(デコーダ・モデルを有するもの)として構成される。NICフレームワークは、E2E最適化フレームワークのエンコーダ・モデル及びデコーダ・モデルのための事前に訓練されたパラメータを決定するために、訓練データに基づいてエンド・ツー・エンドで訓練することが可能である。例えば、訓練データは、訓練画像(圧縮されていないもの)、訓練画像のガイドラインCVタスク結果を含むことが可能である。例えば、NICフレームワークは、訓練画像を入力として取り、訓練CVタスク結果を生成することが可能である。NICフレームワークは、次いで、ガイドラインCVタスク結果と訓練CVタスク結果との間の損失を最小化するように(調整可能なニューラル・ネットワーク構造及び調整可能なパラメータを用いて)訓練される。画像圧縮エンコーダ(1420)及びCVタスク・デコーダ(1440)は、事前に訓練されたパラメータに従って構成される。
【0117】
[0127] CVタスク・デコーダ(1440)は、シングル・タスク・デコーダである可能性があり、或いはマルチ・タスク・デコーダである可能性がある。CVタスク・デコーダ(1440)は、出力が画像である1つ以上の画像ベースのCVタスクを実行するように構成される。CVタスク・デコーダ(1440)により実行される画像ベースのCVタスクは、超解像度、物体検出、画像ノイズ除去、画像デブロッキング(image deblocking)などを含むことが可能であるが、これらに限定されない。CVタスク・コーダ(1440)は、任意の適切なニューラル・ネットワーク構造を有することが可能であることに留意されたい。
【0118】
[0128] 一部の例では、CVタスク・モジュール(1430)は、非圧縮ドメインにおいて1つ以上の画像ベースのCVタスクを実行するように構成されたニューラル・ネットワークを含む。ニューラル・ネットワークは、事前に訓練されたパラメータを決定するために、訓練データに基づいて訓練される(例えば、事前に訓練される)。例えば、訓練データは、訓練画像(圧縮されていない)及び対応するガイドラインCVタスク画像(例えば、超解像画像、低ノイズ画像など)を含むことが可能である。例えば、ニューラル・ネットワークは、訓練画像を入力として取り、訓練CVタスク画像を生成することが可能である。次いで、ニューラル・ネットワークは、訓練CVタスク画像と対応するガイドラインCVタスク画像との間の損失を最小化するように(調整可能なニューラル・ネットワーク構造及び調整可能なパラメータを用いて)訓練される。一部の例では、CVタスク・モジュール(1430)は、他の適切な技法を使用して、非圧縮ドメインにおける1つ以上の画像ベースのCVタスクを実行することが可能であることに留意されたい。
【0119】
[0129] 一部の例では、画像圧縮エンコーダ(1420)は、入力画像を受信し、符号化された画像(例えば、圧縮された画像又は圧縮された特徴マップ)を生成することが可能である。CVタスク・デコーダ(1440)は、符号化された画像を受信し、圧縮された画像又は圧縮された特徴マップを解凍し、CVタスク・ベースの再構成された画像を生成することが可能である。
【0120】
[0130] 更に、入力画像は、入力画像に対応するCVタスク・ベースの処理された画像を生成するために、非圧縮ドメインにおいてCVタスクを実行するCVタスク・モジュール(1430)に入力される。
【0121】
[0131] オンライン訓練コントローラ(1450)は、CVタスク・ベースの再構成画像とCVタスク・ベースの処理画像とを受信し、オンライン訓練ベースのCDCVTF(1400)における入力画像チューニング、エンコーダ・パラメータ・チューニング、エンコーダ構造チューニング、デコーダ・パラメータ・チューニング、デコーダ構造チューニングなどのようなチューニングを決定する。
【0122】
[0132] 一部の例では、オンライン訓練コントローラ(1450)は、CVタスク・デコーダ(1440)に対するチューニング・アップデートを決定し、そのようなオンライン訓練処理は、オンライン訓練後処理と呼ばれる場合がある。一部の例では、オンライン訓練コントローラ(1450)は、入力画像を置き換えるための最適な代替画像を決定し、そのようなオンライン訓練処理は、オンライン訓練前処理と呼ばれる場合がある。
【0123】
[0133]
図15は、一部の例におけるオンライン訓練ベースの後処理を実行するシステム(1500)を示す。システム(1500)は、任意の適切な通信チャネルを介して互いに結合された第1の電子デバイス(1501)と第2の電子デバイス(1502)とを含む。
【0124】
[0134] 第1の電子デバイス(1501)は、オンライン訓練ベースのCDCVTF(1510)を含む。具体的には、オンライン訓練ベースのCDCVTF(1510)は、画像圧縮エンコーダ(1520)、CVタスク・デコーダ(1540)、CVタスク・モジュール(1530)、及びオンライン訓練コントローラ(1550)を互いに結合して含んでいる。画像圧縮エンコーダ(1520)は画像圧縮エンコーダ(1420)と同様に構成されており;CVタスク・デコーダ(1540)はCVタスク・デコーダ(1440)と同様に構成されており;CVタスク・モジュール(1530)はCVタスク・モジュール(1430)と同様に構成されており;オンライン訓練コントローラ(1550)はオンライン訓練コントローラ(1450)と同様に構成されている。説明は、
図14に関連して上述しており、明瞭性のためここでは省略する。
【0125】
[0135]
図15の例では、オンライン訓練中に、画像圧縮エンコーダ(1520)は、入力画像を受信し、符号化された画像(例えば、圧縮された画像又は圧縮された特徴マップ)を生成する。CVタスク・デコーダ(1540)は、符号化された画像を受信し、圧縮された画像又は圧縮された特徴マップを解凍し、CVタスク・ベースの再構成された画像を生成する。更に、入力画像は、入力画像に対応するCVタスク・ベースの処理された画像を生成するために、非圧縮ドメインにおいてCVタスクを実行するCVタスク・モジュール(1530)に入力される。
【0126】
[0136] 更に、
図15の例では、オンライン訓練コントローラ(1550)は、CVタスク・ベースの処理された画像とCVタスク・ベースの再構成された画像とに基づいて、CVタスク・デコーダ(1540)に対するアップデートを決定するように構成される。例えば、オンライン訓練コントローラ(1550)は、再構成されたCV画像と処理されたCV画像とに対するレート歪パフォーマンスを最適化する、CVタスク・デコーダ(1540)に対するアップデートを決定することができる。一例では、オンライン訓練中に、オンライン訓練コントローラ(1550)は、例えば勾配降下アルゴリズムを使用して、E2E方式で逆伝搬される勾配に基づいて、CVタスク・デコーダ(1540)に対するアップデートを決定することができる。勾配降下アルゴリズムは、オンライン訓練ベースのCDCVTF(1510)の微分可能な関数の極小値(例えば、レート歪損失の極小値)を見つけるために、CVタスク・デコーダ(1540)のパラメータを反復的に最適化することが可能である。例えば、勾配降下アルゴリズムは、微分可能な関数の勾配(又は近似的な勾配)の反対方向に反復ステップを取ることが可能である。
【0127】
[0137] 一部の例では、CVタスク・デコーダ(1540)におけるパラメータの一部が調整可能であり、更新することが可能である。一部の例では、CVタスク・デコーダ(1540)のパラメータ全体が調整可能であり、更新することが可能である。一部の例では、CVタスク・デコーダ(1540)のニューラル・ネットワーク構造を更新することが可能である。一例では、追加の層/モジュールがCVタスク・デコーダ(1540)に追加される。オンライン訓練コントローラ(1550)は、追加の層/モジュールのパラメータを調整することが可能である。
【0128】
[0138]
図15の例では、オンライン訓練ベースのCDCVTF(1510)は、画像圧縮エンコーダ(1520)によって符号化された画像と、CVタスク・デコーダ(1540)に対するアップデートとを搬送するビットストリームを生成することが可能である。一例では、CVタスク・デコーダ(1540)のパラメータの一部が更新され、ビットストリームは、CVタスク・デコーダ(1540)内のパラメータの一部のアップデートを示す追加のビットを含むことが可能である。別の例では、CVタスク・デコーダ(1540)のパラメータ全体が更新され、ビットストリームは、CVタスク・デコーダ(1540)内のパラメータ全体のアップデートを示す追加のビットを含むことが可能である。一例では、追加の畳み込み層(例えば、3x3畳み込み層)が、例えば、CVタスク・デコーダ(1540)のニューラル・ネットワークの最後の層として、CVタスク・デコーダ(1540)内に追加される。ビットストリームは、追加の畳み込み層を示す追加のビットを含むことが可能である。
【0129】
[0139] 一部の例では、オンライン訓練は、CVタスク・デコーダ(1540)に対するアップデートを決定するために、複数の入力画像に基づいて実行される可能性があることに留意されたい。
【0130】
[0140] 第2の電子デバイス(1502)は、パーサー(1560)とCVタスク・デコーダ(1570)とを含む。パーサー(1560)は、ビットストリームを受信し、符号化された画像を示す第1のビットと、アップデートを示す第2のビットとを抽出することが可能である。
【0131】
[0141] 一部の例では、CVタスク・デコーダ(1570)は、オンライン訓練の前のCVタスク・デコーダ(1540)に対応する。例えば、CVタスク・デコーダ(1570)は、オンライン訓練の前のCVタスク・デコーダ(1540)と同じニューラル・ネットワーク構造及び同じパラメータ値のニューラル・ネットワークを有する。アップデートを示す第2のビットに基づいて、CVタスク・デコーダ(1570)は、オンライン訓練の後のCVタスク・デコーダ(1540)に対応するように、更新されることが可能である。アップデートをCVタスク・デコーダ(1570)に適用した後、CVタスク・デコーダ(1570)は、符号化された画像を復号化し、(アップデートがない場合と比較して)より良いパフォーマンスを有するCVタスク・ベースの再構成された画像を生成する。
【0132】
[0142]
図16は、一部の例におけるオンライン訓練ベースの前処理を実行するシステム(1600)を示す。システム(1600)は、任意の適切な通信チャネルを介して互いに結合された第1の電子デバイス(1601)と第2の電子デバイス(1602)とを含む。
【0133】
[0143] 第1の電子デバイス(1601)は、オンライン訓練ベースのCDCVTF(1610)を含む。具体的には、オンライン訓練ベースのCDCVTF(1610)は、画像圧縮エンコーダ(1620)、CVタスク・デコーダ(1640)、CVタスク・モジュール(1630)、オンライン訓練コントローラ(1650)、及び画像更新モジュール(1660)を互いに結合して含んでいる。画像圧縮エンコーダ(1620)は画像圧縮エンコーダ(1420)と同様に構成されており;CVタスク・デコーダ(1640)はCVタスク・デコーダ(1440)と同様に構成されており;CVタスク・モジュール(1630)はCVタスク・モジュール(1430)と同様に構成されており;オンライン訓練コントローラ(1650)はオンライン訓練コントローラ(1450)と同様に構成されている。説明は、
図14に関連して上述されており、明瞭性のためここでは説明を省略する。画像更新モジュール(1660)は、ソフトウェア・モジュール、ハードウェア・モジュール、又はそれらの組み合わせとして実施することが可能である。
【0134】
[0144]
図16の例では、画像更新モジュール(1660)は、入力画像を受信し、入力画像に対してアップデートを適用して、更新された入力画像を生成するように構成されている。オンライン訓練中に、先ず、画像更新モジュール(1660)は、初期アップデート(例えば、アップデートなし)を入力画像に適用して、更新された入力画像を生成する。画像圧縮エンコーダ(1620)は、更新された入力画像を受信し、符号化された更新された画像(例えば、圧縮された画像又は圧縮された特徴マップ)を生成する。CVタスク・デコーダ(1640)は、符号化された更新された画像を受信し、圧縮された画像又は圧縮された特徴マップを解凍し、CVタスク・ベースの再構成された画像を生成する。更に、CVタスク・モジュール(1630)は、非圧縮ドメイン内の入力画像に対してCVタスクを実行して、入力画像に対応するCVタスク・ベースの処理された画像(ガイドライン画像とも呼ばれる)を生成する。
【0135】
[0145] 更に、
図16の例では、オンライン訓練コントローラ(1650)は、CVタスク・ベースの処理された画像及びCVタスク・ベースの再構成された画像に基づいて、入力画像に対するアップデート(反復アップデート(iterative updates)とも呼ばれる)を決定するように構成されている。例えば、オンライン訓練コントローラ(1650)は、入力画像に対する変更(反復アップデート)を用いて(入力画像に対する)最適な代替画像を決定し、入力画像を、画像圧縮のために最適な代替画像で置き換えることができる。
【0136】
[0146] 一例では、オンライン訓練中に、オンライン訓練コントローラ(1650)は、例えば勾配降下アルゴリズムを使用して、E2E方式で逆伝搬される勾配に基づいて、入力画像に対するアップデートを決定することが可能である。例えば、画像圧縮エンコーダ(1620)のパラメータ、CVタスク・モジュール(1630)のパラメータのようなモデル・パラメータは、オンライン訓練中では、固定されたパラメータ(例えば、調整可能でないパラメータ)である。オンライン訓練コントローラ(1650)は、CVタスク・ベースの処理された画像、及びCVタスク・ベースの再構成された画像に基づいて、損失(例えば、レート歪損失)を計算することが可能である。損失(loss)は微分可能な関数であるとすることが可能であり、オンライン訓練コントローラ(1650)は、損失に基づいて勾配を計算することが可能である。オンライン訓練コントローラ(1650)は、オンライン訓練ベースのCDCVTF(1610)の微分可能な関数の極小値(例えば、レート歪損失の極小値)を見つけるために、入力画像を反復的に最適化することが可能な勾配降下アルゴリズムを使用することが可能である。例えば、勾配降下アルゴリズムは、微分可能な関数の勾配(又は近似的な勾配)の反対方向に反復ステップを取り、入力画像に対するアップデート(反復アップデートとも呼ばれる)を決定することが可能である。
【0137】
[0147] オンライン訓練ベースのCDCVTF(1610)のモデル全体は、微分不可能な部分を微分可能なもので置き換える(例えば、量子化をノイズ注入に置き換える)ことによって、(勾配を逆伝播させることができるように)微分可能であるとすることが可能であることに留意されたい。従って、上記の最適化は、勾配降下法によって反復的に解くことが可能である。
【0138】
[0148]
図16の例では、オンライン訓練の後に、画像圧縮エンコーダ(1620)は、オンライン訓練によって決定された最適な代替画像のような更新された画像を圧縮し、符号化された更新された画像を生成することが可能である。次いで、オンライン訓練ベースのCDCVTF(1610)は、符号化された更新された画像を搬送するビットストリームを生成する。
【0139】
[0149] 第2の電子デバイス(1602)はCVタスク・デコーダ(1670)を含む。一部の例では、CVタスク・デコーダ(1670)はCVタスク・デコーダ(1640)に対応する。例えば、CVタスク・デコーダ(1670)は、事前に訓練されたニューラル・ネットワークのようなCVタスク・デコーダ(1640)と同じニューラル・ネットワーク構造及び同じパラメータ値のニューラル・ネットワークを有する。CVタスク・デコーダ(1670)は、符号化された更新された画像を復号化し、(元の入力画像に対応する符号化された画像と比較して)より良いパフォーマンスを有するCVタスク・ベースの再構成された画像を生成する。
【0140】
[0150]
図17は、本開示の実施形態によるプロセス(1700)の概要を表すフローチャートを示す。プロセス(1700)は符号化プロセスである。プロセス(1700)は、電子デバイス(1501)のような電子デバイスにおいて実行されることが可能である。一部の実施形態では、プロセス(1700)はソフトウェア命令で実施され、従って、処理回路がソフトウェア命令を実行すると、処理回路はプロセス(1700)を実行する。プロセスは(S1701)で始まり、(S1710)に進む。
【0141】
[0151] (S1710)において、入力画像と、入力画像に対する画像ベースのコンピュータ・ビジョン・タスクの結果によるガイドライン画像とに基づいて、圧縮ドメイン・コンピュータ・ビジョン・タスク・フレームワーク(CDCVTF)のオンライン訓練が実行される。CDCVTFは符号化部分と復号化部分を含み、符号化部分は入力画像を圧縮ドメインへ圧縮し、復号化部分は、圧縮ドメインにおける画像ベースのコンピュータ・ビジョン・タスクを実行する。オンライン訓練は、復号化部分におけるニューラル・ネットワークに対するアップデートであって、圧縮ドメインにおける画像ベースのコンピュータ・ビジョン・タスクの結果とガイドライン画像との間の損失を減らすものを少なくとも決定する。
【0142】
[0152] (1720)において、入力画像は、CDCVTFの符号化部分により、符号化された画像に符号化される。一部の例では、オンライン訓練が符号化部分に対するアップデートを決定しない場合(非更新を決定した場合)、入力画像は、オンライン訓練中に、符号化部分によって符号化された画像に符号化される。一部の例では、オンライン訓練が符号化部分に対するエンコーダ・アップデートを決定する場合、入力画像は、エンコーダ・アップデートを用いて符号化部分によって、符号化された画像に符号化される。
【0143】
[0153] (1730)において、ビットストリームが形成される。ビットストリームは符号化された画像と追加ビットとを運び、追加ビットは、復号化部分におけるニューラル・ネットワークに対するアップデートを示す。
【0144】
[0154] 一部の例において、画像ベースのコンピュータ・ビジョン・タスクは、非圧縮ドメインにおいて入力画像に対して実行されて、入力画像に対応するガイドライン画像を生成する。
【0145】
[0155] 一部の例において、追加ビットは、復号化部分の1つ以上の調整可能なパラメータそれぞれに対する1つ以上の更新された値を示す。一例において、追加ビットは、復号化部分におけるパラメータの全てに対するアップデートを示す。
【0146】
[0156] 一部の例において、追加ビットは復号化部分のニューラル・ネットワークにおける追加層を示す。追加ビットは追加層のパラメータ値を示す。一例において、追加層は畳み込み層である。
【0147】
[0157] 一部の例において、符号化部分は入力画像を符号化された画像に圧縮するように構成されており、復号化部分は、符号化された画像に対して画像ベースのコンピュータ・ビジョン・タスクを実行して、再構成された画像を生成するように構成されており、オンライン訓練は、再構成された画像とガイドライン画像に基づいてアップデートを決定する。
【0148】
[0158] 一部の例において、オンライン訓練は、復号化部分に対するアップデートと、符号化部分におけるニューラル・ネットワークに対するエンコーダ・アップデートとを決定する。
【0149】
[0159] 画像ベースのコンピュータ・ビジョン・タスクの出力は画像であることに留意されたい。画像ベースのコンピュータ・ビジョン・タスクは、画像ノイズ除去、画像デブロッキング、及び超解像度のうちの少なくとも1つを含むことが可能である。
【0150】
[0160] 次いで、プロセス(1700)は(S1799)に進み、終了する。
【0151】
[0161] プロセス(1700)は、様々なシナリオに適切に適合させることが可能であり、プロセス(1700)におけるステップは相応に調整されることが可能である。プロセス(1700)におけるステップのうちの1つ以上は、適合され、省略され、繰り返され、及び/又は組み合わされることが可能である。プロセス(1700)を実施するために、任意の適切な順序を使用することが可能である。追加ステップを追加することが可能である。
【0152】
[0162]
図18は、本開示の実施形態によるプロセス(1800)の概要を表すフローチャートを示す。プロセス(1800)は復号化プロセスである。プロセス(1800)は、電子デバイス(1502)のような電子デバイスにおいて実行されることが可能である。一部の実施形態では、プロセス(1800)はソフトウェア命令で実施され、従って、処理回路がソフトウェア命令を実行すると、処理回路はプロセス(1800)を実行する。プロセスは(S1801)で始まり、(S1810)に進む。
【0153】
[0163] (1810)において、ビットストリームが受信される。ビットストリームは、 画像に対応する符号化された画像を運ぶ第1のビットと、圧縮ドメインにおける画像ベースのコンピュータ・ビジョン・タスクのためのデコーダにおけるニューラル・ネットワークのアップデートを示す第2のビットとを含む。デコーダは圧縮ドメイン・コンピュータ・ビジョン・タスク・フレームワーク(CDCVTF)における復号化部分に対応する。アップデートは、画像と(非圧縮のドメインにおける)画像に対する画像ベースのコンピュータ・ビジョン・タスクの結果によるガイドライン画像とに従うCDCVTFのオンライン訓練により決定される。オンライン訓練は、圧縮ドメインにおける画像ベースのコンピュータ・ビジョン・タスクの結果とガイドライン画像との間の損失を減らすアップデートを決定する。
【0154】
[0164] (1820)において、デコーダのニューラル・ネットワークは、第2のビットに従って更新される。
【0155】
[0165] (1830)において、ニューラル・ネットワークにおけるアップデートとともにデコーダを利用して、ビットストリームの第1のビットに従って、再構成された画像が生成される。
【0156】
[0166] 一部の例において、第2のビットは、ニューラル・ネットワークにおける1つ以上のパラメータそれぞれに対する1つ以上の更新された値を示す。一例において、第2のビットは、ニューラル・ネットワークにおける全てのパラメータの値変化を示す。
【0157】
[0167] 一部の例において、第2のビットは、ニューラル・ネットワークにおける追加層を示し、また、追加層のパラメータ値を示す。一例において、追加層は畳み込み層である。
【0158】
[0168] 画像ベースのコンピュータ・ビジョン・タスクの出力は画像であることに留意されたい。画像ベースのコンピュータ・ビジョン・タスクは、画像ノイズ除去、画像デブロッキング、及び超解像度のうちの少なくとも1つを含むことが可能である。
【0159】
[0169] 次いで、プロセス(1800)は(S1899)に進み、終了する。
【0160】
[0170] プロセス(1800)は、様々なシナリオに適切に適合させることが可能であり、プロセス(1800)におけるステップは相応に調整されることが可能である。プロセス(1800)におけるステップのうちの1つ以上は、適合され、省略され、繰り返され、及び/又は組み合わされることが可能である。プロセス(1800)を実施するために、任意の適切な順序を使用することが可能である。追加ステップを追加することが可能である。
【0161】
[0171]
図19は、本開示の実施形態によるプロセス(1900)の概要を表すフローチャートを示す。プロセス(1900)は符号化プロセスである。プロセス(1900)は、電子デバイス(1601)のような電子デバイスにおいて実行されることが可能である。一部の実施形態では、プロセス(1900)はソフトウェア命令で実施され、従って、処理回路がソフトウェア命令を実行すると、処理回路はプロセス(1900)を実行する。プロセスは(S1901)で始まり、(S1910)に進む。
【0162】
[0172] (1910)において、圧縮ドメイン・コンピュータ・ビジョン・タスク・フレームワーク(CDCVTF)のオンライン訓練に従って、入力画像に対する代替画像が決定される。CDCVTFは符号化部分と復号化部分を含む。符号化部分は入力画像を現在の反復アップデートを用いて圧縮ドメインへ圧縮し、復号化部分は、圧縮ドメインにおける画像ベースのコンピュータ・ビジョン・タスクを実行する。オンライン訓練は、圧縮ドメインにおける画像ベースのコンピュータ・ビジョン・タスクの結果と、入力画像に対する画像ベースのコンピュータ・ビジョン・タスクから生じるガイドライン画像との間の損失を減らす代替画像を決定する。
【0163】
[0173] (1920)において、代替画像が、符号化部分によってビットストリームに符号化される。
【0164】
[0174] 一部の例において、画像ベースのコンピュータ・ビジョン・タスクが非圧縮ドメインにおいて実行されて、ガイドライン画像を生成する。
【0165】
[0175] 更に、一部の例において、符号化部分は、入力画像を現在の反復アップデートを用いて現在の符号化された更新された画像に圧縮するように構成されており、復号化部分は、現在の符号化された更新された画像に対して画像ベースのコンピュータ・ビジョン・タスクを実行して、現在の再構成された画像を生成するように構成されており、現在の再構成された画像とガイドライン画像とに基づいて次の反復アップデートが決定される。
【0166】
[0176] 画像ベースのコンピュータ・ビジョン・タスクの出力は画像であることに留意されたい。画像ベースのコンピュータ・ビジョン・タスクは、画像ノイズ除去、画像デブロッキング、及び超解像度のうちの少なくとも1つを含むことが可能である。
【0167】
[0177] 一部の例では、符号化部分及び復号化部分におけるニューラル・ネットワークのパラメータは、事前に訓練された値に固定されることに留意されたい。
【0168】
[0178] 次いで、プロセス(1900)は(S1999)に進み、終了する。
【0169】
[0179] プロセス(1900)は、様々なシナリオに適切に適合させることが可能であり、プロセス(1900)におけるステップは相応に調整されることが可能である。プロセス(1900)におけるステップのうちの1つ以上は、適合され、省略され、繰り返され、及び/又は組み合わされることが可能である。プロセス(1900)を実施するために、任意の適切な順序を使用することが可能である。追加ステップを追加することが可能である。
【0170】
[0180] 上述した技術は、コンピュータ読み取り可能な命令を用いてコンピュータ・ソフトウェアとして実装することが可能であり、1つ以上のコンピュータ読み取り可能な媒体に物理的に記憶することが可能である。例えば、
図20は、開示される対象事項の特定の実施形態を実現するのに適したコンピュータ・システム(2000)を示す。
【0171】
[0181] コンピュータ・ソフトウェアは、アセンブリ、コンパイル、リンク、又は類似の仕組みの対象となり得る任意の適切なマシン・コード又はコンピュータ言語を使用してコーディングされて、1つ以上のコンピュータ中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)等によって、直接的に実行されることが可能な命令、又は解釈やマイクロコード実行などを経由する命令、を含むコードを作成することが可能である。
【0172】
[0182] 命令は、例えば、パーソナル・コンピュータ、タブレット・コンピュータ、サーバー、スマートフォン、ゲーミング・デバイス、モノのインターネット・デバイス等を含む、種々のタイプのコンピュータ又はそれらの構成要素において実行されることが可能である。
【0173】
[0183] コンピュータ・システム(2000)に関して
図20に示される構成要素は、本質的に例示的なものであり、本開示の実施形態を実現するコンピュータ・ソフトウェアの使用範囲又は機能性に関する如何なる制限も示唆するようには意図されていない。また、構成要素の構成は、コンピュータ・システム(2000)の例示的な実施形態に示される構成要素の任意の1つ又は組み合わせに関する何らかの従属性や要件を有するものとして解釈されてはならない。
【0174】
[0184] コンピュータ・システム(2000)は、特定のヒューマン・インターフェース入力デバイスを含むことが可能である。このようなヒューマン・インターフェース入力デバイスは、例えば、触覚入力(例えば、キーストローク、スワイプ、データ・グローブの動き)、聴覚的な入力(例えば、声、拍手)、視覚的な入力(例えば、ジェスチャ)、嗅覚的な入力(図示されていない)を介して、1人以上の人間ユーザーによる入力に応答することが可能である。また、ヒューマン・インターフェース・デバイスは、オーディオ(例えば、会話、音楽、周囲音)、画像(例えば、スキャンされた画像、静止画像カメラから得られる写真画像)、ビデオ(例えば、2次元ビデオ、ステレオスコピック・ピクチャを含む3次元ビデオ)のような、人間による意識的な入力に必ずしも直接的に関係しない特定のメディアを捕捉するために使用することも可能である。
【0175】
[0185] 入力ヒューマン・インターフェース・デバイスは、キーボード(2001)、マウス(2002)、トラックパッド(2003)、タッチ・スクリーン(2010)、データ・グローブ(不図示)、ジョイスティック(2005)、マイクロホン(2006)、スキャナ(2007)、カメラ(2008)のうちの(描かれているものはそれぞれ唯1つであるが)1つ以上を含む可能性がある。
【0176】
[0186] コンピュータ・システム(2000)は、特定のヒューマン・インターフェース出力デバイスを含むことも可能である。このようなヒューマン・インターフェース出力デバイスは、例えば、触覚出力、音、光、及び嗅覚/味覚を通じて、1人以上の人間ユーザーの感覚を刺激することが可能である。このようなヒューマン・インターフェース出力デバイスは、触覚出力デバイス(例えば、タッチ・スクリーン(2010)、データ・グローブ(不図示)、ジョイスティック(2005)による触覚フィードバックであるが、入力デバイスとして機能しない触覚フィードバック・デバイスが存在する可能性もある)、聴覚的な出力デバイス(例えば、スピーカー(2009)、ヘッドフォン(不図示せず))、視覚的な出力デバイス(例えば、CRTスクリーン、LCDスクリーン、プラズマ・スクリーン、OLEDスクリーンを含むスクリーン(2010)であり、各々はタッチ・スクリーン入力機能を備えるか又は備えておらず、各々は触覚フィードバック機能を備えるか又は備えておらず、それらのうちの幾つかは、二次元的な視覚的な出力、立体出力のような手段による三次元以上の出力を出力することが可能であってもよい;仮想現実メガネ(図示せず)、ホログラフィック・ディスプレイ、及びスモーク・タンク(図示せず))、及びプリンタ(図示せず)を含むことが可能である。
【0177】
[0187] コンピュータ・システム(2000)はまた、CD/DVD等の媒体(2021)を使うCD/DVD ROM/RW(2020)を含む光媒体、サム・ドライブ(2022)、リムーバブル・ハード・ドライブ又はソリッド・ステート・ドライブ(2023)、テープ及びフロッピー・ディスク(図示せず)等のレガシー磁気媒体(不図示)、セキュリティ・ドングル(不図示)等の特殊化されたROM/ASIC/PLDベースのデバイスのような、人間のアクセスが可能な記憶デバイス及びそれらに関連する媒体を含むことも可能である。
【0178】
[0188] 当業者は、ここに開示される対象事項に関連して使用される用語「コンピュータ読み取り可能な媒体」は、伝送媒体、搬送波、又はその他の過渡的な信号を包含しない、ということも理解するはずである。
【0179】
[0189] コンピュータ・システム(2000)は、1つ以上の通信ネットワーク(2055)へのインターフェース(2054)を含むことも可能である。ネットワークは、例えば、無線、有線、光であるとすることが可能である。ネットワークは、更に、ローカル、ワイド・エリア、メトロポリタン、車両及びインダストリアル、リアルタイム、遅延耐性などであるとすることが可能である。ネットワークの例は、イーサーネット、無線LAN、セルラー・ネットワーク(GSM、3G、4G、5G、LTE等を含む)、TVの有線又は無線ワイド・エリア・デジタル・ネットワーク(ケーブルTV、衛星TV、及び地上放送TVを含む)、CANBusを含む車両及びインダストリアルなどを含む。特定のネットワークは、一般に、特定の汎用データ・ポート又は周辺バス(2049)に取り付けられる外部ネットワーク・インターフェース・アダプタを必要とする(例えば、コンピュータ・システム(2000)のUSBポート);その他は、一般に、以下に説明するようなシステム・バスに取り付けることによって、コンピュータ・システム(2000)のコアに共通に統合される(例えば、イーサーネット・インターフェースはPCコンピュータ・システム内に、セルラー・ネットワーク・インターフェースはスマートフォン・コンピュータ・システム内に統合される)。これらのうちの任意のネットワークを使用して、コンピュータ・システム(2000)は、他のエンティティと通信することが可能である。このような通信は、片-方向受信専用(例えば、放送テレビ)、片-方向送信専用(例えば、特定のCANbusデバイスに対するCANbus)、又は、双-方向の、例えばローカル又はワイド・エリア・デジタル・ネットワークを使用する他のコンピュータ・システムに対するものであるとすることが可能である。特定のプロトコル及びプロトコル・スタックは、上述のように、それらのネットワーク及びネットワーク・インターフェースの各々で使用されることが可能である。
【0180】
[0190] 前述のヒューマン・インターフェース・デバイス、ヒューマン・アクセシブル・ストレージ・デバイス、及びネットワーク・インターフェースは、コンピュータ・システム(2000)のコア(2040)に取り付けられることが可能である。
【0181】
[0191] コア(2040)は、1つ以上の中央処理ユニット(CPU)(2041)、グラフィックス処理ユニット(GPU)(2042)、フィールド・プログラマブル・ゲート・アレイ(FPGA)(2043)の形式における特殊プログラマブル処理デバイス、特定のタスク用のハードウェア・アクセラレータ(2044)、グラフィックス・アダプタ(2050)等を含むことが可能である。これらのデバイスは、リード・オンリー・メモリ(ROM)(2045)、ランダム・アクセス・メモリ(2046)、内部大容量ストレージ・デバイス(例えば、内的な非ユーザー・アクセシブル・ハード・ドライブ、SSD等)(2047)と共に、システム・バス(2048)を介して接続されることが可能である。一部のコンピュータ・システムでは、システム・バス(2048)は、追加のCPU、GPU等による拡張を可能にするために、1つ以上の物理的プラグの形態でアクセス可能である可能性がある。周辺デバイスは、コアのシステム・バス(2048)に直接取り付けられるか、又は周辺バス(2049)を介して取り付けられることが可能である。一例では、スクリーン(2010)はグラフィックス・アダプタ(2050)に接続されることが可能である。周辺バスのアーキテクチャは、PCI、USB等を含む。
【0182】
[0192] CPU(2041),GPU(2042),FPGA(2043),及びアクセラレータ(2044)は、組み合わされて、前述のコンピュータ・コードを構成することが可能な特定の命令を実行することが可能である。コンピュータ・コードは、ROM(2045)又はRAM(2046)に格納されることが可能である。一時的なデータはRAM(2046)に格納されることが可能である一方、永続的なデータは例えば内的な大容量ストレージ(2047)に格納されることが可能である。任意のメモリ・デバイスに対する高速な記憶及び検索は、キャッシュ・メモリを利用することで動作することが可能になり、キャッシュ・メモリは、1つ以上のCPU(2041)、GPU(2042)、大容量ストレージ(2047)、ROM(2045)、RAM(2046)等と密接に関連付けることが可能である。
【0183】
[0193] コンピュータ読み取り可能な媒体は、様々なコンピュータ実装動作を実行するためのコンピュータ・コードをそこに有することが可能である。媒体及びコンピュータ・コードは、本開示の目的のために特別に設計及び構築されたものであるとすることが可能であり、又はそれらは、コンピュータ・ソフトウェアの分野における当業者にとって周知であり且つ入手可能な種類のものであるとすることが可能である。
【0184】
[0194] 非限定的な例として、アーキテクチャ(2000)、具体的にはコア(2040)を有するコンピュータ・システムは、プロセッサ(CPU、GPU、FPGA、アクセラレータ等を含む)の結果として、1つ以上の有形のコンピュータ読み取り可能な媒体に具現化されたソフトウェアを実行する機能を提供することが可能である。そのようなコンピュータ読み取り可能な媒体は、コア内部の大容量ストレージ(2047)又はROM(2045)のような非一時的な性質のコア(2040)の特定のストレージと同様に、上述したようなユーザー・アクセシブル大容量ストレージに関連する媒体であるとすることが可能である。本開示の様々な実施形態を実現するソフトウェアは、そのようなデバイスに記憶され、コア(2040)によって実行されることが可能である。コンピュータ読み取り可能な媒体は、特定のニーズに応じて、1つ以上のメモリ・デバイス又はチップを含むことが可能である。ソフトウェアは、RAM(2046)に記憶されたデータ構造を定めること、及びソフトウェアによって定められたプロセスに従ってそのようなデータ構造を修正することを含む、本願で説明された特定のプロセス又は特定のプロセスの特定の部分を、コア(2040)、具体的にはその中のプロセッサ(CPU、GPU、FPGA等を含む)に実行させることが可能である。更に又は代替として、コンピュータ・システムは、回路(例えば、アクセラレータ(2044))内に配線された又はその他の方法で具現化されたロジックの結果として機能を提供することが可能であり、その回路は、本件で説明された特定のプロセス又は特定のプロセスの特定の部分を実行することを、ソフトウェアの代わりに又はソフトウェアと共に実行することが可能である。ソフトウェアに対する言及はロジックを含み、必要に応じて、その逆もあり得る。コンピュータ読み取り可能な媒体に対する言及は、実行のためのソフトウェアを記憶する(集積回路(IC)のような)回路、実行のためのロジックを具体化する回路、又は適切な場合にはその両方を包含することが可能である。本開示はハードウェア及びソフトウェアの適切な任意の組み合わせを包含する。
【0185】
[0195] 本開示は、幾つかの例示的な実施形態を説明してきたが、本開示の範囲内に該当する代用、置換、及び様々な代替の均等物が存在する。従って、当業者は、本件で明示的には図示も説明もされていないが、本開示の原理を具現化し、従って本開示の精神及び範囲内にある多数のシステム及び方法を案出することが可能である、ということは理解されるであろう。
【国際調査報告】