(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-10
(45)【発行日】2024-07-19
(54)【発明の名称】ニューラル画像圧縮における置換の動的学習率のための方法、装置、非一時的コンピュータ可読媒体およびコンピュータプログラム
(51)【国際特許分類】
G06N 3/0455 20230101AFI20240711BHJP
G06N 3/088 20230101ALI20240711BHJP
G06T 9/00 20060101ALI20240711BHJP
H04N 19/85 20140101ALI20240711BHJP
【FI】
G06N3/0455
G06N3/088
G06T9/00 200
H04N19/85
(21)【出願番号】P 2022562517
(86)(22)【出願日】2021-10-14
(86)【国際出願番号】 US2021055040
(87)【国際公開番号】W WO2022220869
(87)【国際公開日】2022-10-20
【審査請求日】2022-10-13
(32)【優先日】2021-04-16
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-10-13
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】リン,シェン
(72)【発明者】
【氏名】ディン,ディン
(72)【発明者】
【氏名】ジャン,ウェイ
(72)【発明者】
【氏名】ワン,ウェイ
(72)【発明者】
【氏名】シュウ,シャオジョン
(72)【発明者】
【氏名】リウ,シャン
【審査官】多賀 実
(56)【参考文献】
【文献】特許第7345650(JP,B2)
【文献】米国特許出願公開第2020/0226797(US,A1)
【文献】特表2020-522153(JP,A)
【文献】国際公開第2020/107877(WO,A1)
【文献】国際公開第2021/058466(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
G06T 1/40
G06T 7/00
G06T 9/00-9/40
H04N 19/00-19/98
(57)【特許請求の範囲】
【請求項1】
少なくとも1つのプロセッサによって実行されるニューラルネットワークを使用する置換エンドツーエンド(E2E)ニューラル画像圧縮(NIC)の方法であって、前記方法は:
E2E NICフレームワークへの入力画像を受信すること;
前記ニューラルネットワークのトレーニングモデルの学習率を示
すステップサイズを
前記入力画像に対して決定すること;
前記トレーニングモデル
及び前記ステップサイズに基づいて、置換画像を決定すること;
および
前記置換画像の圧縮表現を生成するように前記入力画像の代わりに前記置換画像をエンコーディングすること
;を含
み、
前記トレーニングモデルは、決定された前記ステップサイズ、前記入力画像に対する更新の数、および歪み損失に基づいてトレーニングされ;
前記ステップサイズは、前記トレーニングモデルの1つまたは複数の反復に対して、増加、減少、または同じままにすることができる、
方法。
【請求項2】
前記置換画像は、前記トレーニングモデルの最適化プロセスを実行することによって決定され:
置換表現を生成するために前記入力画像の要素を調整すること;および
前記置換画像として使用するために前記入力画像と前記置換表現との間で最小の歪み損失を持つ前記要素を選択すること;を含む、
請求項1に記載の方法。
【請求項3】
前記置換画像は前記入力画像にマッピング
され;
前記置換画像
の再構成画像から前記入力画像までの距離は、距離測定または損失関数によって測定された
前記入力画像の再構成画像から前記入力画像までの距離よりも短い、
請求項1に記載の方法。
【請求項4】
複数の置換画像が複数のステップサイズに基づいて決定され、
前記複数のステップサイズに対応するステップサイズ値は、複数のスケジューラに基づいて決定され、
最高の圧縮性能を持つ置換画像がエンコーディングのために選択される、
請求項1に記載の方法。
【請求項5】
前記入力画像を1つまたは複数のパッチに分割することをさらに含み、
前記1つまたは複数のパッチの各々は、前記複数のスケジューラの中から1つのスケジューラを割り当てられる、
請求項
4に記載の方法。
【請求項6】
前記E2E NICフレームワークは、事前にトレーニングされ
た人工ニューラルネットワーク
に基づく画像またはビデオコーディングフ
レームワークであり、
前記人工ニューラルネットワークは前記ニューラルネットワークであり、
前記人工ニューラルネットワークのパラメータは固定されており、勾配が前記入力画像を更新するために使用される、
請求項1に記載の方法。
【請求項7】
ニューラルネットワークを使用する置換エンドツーエンド(E2E)ニューラル画像圧縮(NIC)のための装置であって、前記装置は:
プログラムコードを格納するように構成された少なくとも1つのメモリ;および
前記プログラムコードを読み取り、前記プログラムコードによって指示されるように動作するように構成された少なくとも1つのプロセッサ;を有し、
前記プログラムコードは、前記少なくとも1つのプロセッサに、請求項1乃至
6のいずれか1項に記載の方法を実行させる、
装置。
【請求項8】
命令を格納する非一時的コンピュータ可読媒体であって、前記命令は、置換エンドツーエンド(E2E)ニューラル画像圧縮(NIC)のために少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサに、請求項1乃至
6のいずれか1項に記載の方法を実行させる、
非一時的コンピュータ可読媒体。
【請求項9】
置換エンドツーエンド(E2E)ニューラル画像圧縮(NIC)のためのコンピュータプログラムであって、少なくとも1つのプロセッサに、請求項1乃至
6のいずれか1項に記載の方法を実行させる、
コンピュータプログラム。
【発明の詳細な説明】
【背景技術】
【0001】
従来のハイブリッドビデオコーデックは、全体として最適化することが難しい。単一のモジュールの改良は、全体的なパフォーマンスのコーディングゲイン(coding gain)符号化利得が得られない場合がある。最近、標準化団体および企業は、将来のビデオコーディング技術の標準化に対する潜在的なニーズを積極的に探している。これらの標準グループおよび企業は、ディープニューラルネットワーク(DNN)を使用するAIベースのエンドツーエンドのニューラル画像圧縮に焦点を当てたJPEG-AIグループを確立した。中国のAVS標準もまた、ニューラル画像およびビデオ圧縮技術に取り組むためにAVS-AI特別グループを結成した。最近のアプローチの成功により、高度なニューラル画像およびビデオ圧縮方法論に対する産業界の関心がますます高まっている。
【発明の概要】
【0002】
例示的な実施形態によれば、少なくとも1つのプロセッサによって実行される、ニューラルネットワークを使用する置換(substitutional)エンドツーエンド(E2E)ニューラル画像圧縮(NIC)の方法は、E2E NICフレームワークへの入力画像を受信すること、トレーニングモデルの学習率(learning rate)を示す入力画像のステップサイズを決定すること、トレーニングモデルに基づいて置換画像(substitute image)を決定すること、ビットストリームを生成するように入力画像の代わりに置換画像をエンコーディングすること、および圧縮表現を生成するように置換画像をビットストリームにマッピングすること、を含む。
【0003】
例示的な実施形態によれば、ニューラルネットワークを使用する置換エンドツーエンド(E2E)ニューラル画像圧縮(NIC)のための装置であって、この装置は、プログラムコードを格納するように構成された少なくとも1つのメモリと、プログラムコードを読み取り、プログラムコードによって指示されるように動作するように構成された少なくとも1つのプロセッサとを含む。プログラムコードは、少なくとも1つのプロセッサにE2E NICフレームワークへの入力画像を受信させるように構成された受信コード、少なくとも1つのプロセッサにトレーニングモデルの学習率を示す入力画像のステップサイズを決定させるように構成されたステップサイズ決定コード、少なくとも1つのプロセッサに、トレーニングモデルに基づいて、置換画像を決定させるように構成された第1の決定コード、1つのプロセッサにビットストリームを生成するように入力画像の代わりに置換画像をエンコーディングさせるように構成された第1のエンコーディングコードと、少なくとも1つのプロセッサに、圧縮表現を生成するように置換画像をビットストリームにマッピングさせるように構成されたマッピングコードとを含む。
【0004】
例示的な実施形態によれば、命令を格納する非一時的コンピュータ可読媒体であって、命令は、置換エンドツーエンド(E2E)ニューラル画像圧縮(NIC)のために少なくとも1つのプロセッサによって実行されるとき、少なくとも1つのプロセッサにE2E NICフレームワークへの入力画像を受信させ、トレーニングモデルの学習率を示す入力画像のステップサイズを決定させ、トレーニングモデルに基づいて置換画像を決定させ、ビットストリームを生成するように入力画像の代わりに置換画像をエンコードさせ、圧縮表現を生成するように置換画像をビットストリームにマッピングさせる。
【図面の簡単な説明】
【0005】
【
図1】実施形態による、本明細書に記載される方法、装置およびシステムが実装され得る環境の図である。
【0006】
【
図2】
図1の1つまたは複数のデバイスの例示的なコンポーネントのブロック図である。
【0007】
【
図3】実施形態による一般的な置換NICフレームワーク300の例示的なブロック図である。
【0008】
【
図4】置換学習ベースの画像コーディング前処理モデル(substitutional learning-based image coding preprocessing model)を示す例示的な図である。
【0009】
【
図5】実施形態による、置換エンドツーエンド(E2E)ニューラル画像圧縮(NIC)の方法のフローチャートである。
【0010】
【
図6】実施形態による、置換エンドツーエンド(E2E)ニューラル画像圧縮(NIC)のための装置のブロック図である。
【発明を実施するための形態】
【0011】
実施形態は、ピクチャを受信することと、エンドツーエンド(E2E)最適化フレームワークに基づいてピクチャの置換表現をコーディングするレート歪み性能(rate-distortion performance)を最適化するようにピクチャの置換表現の要素を調整する最適化プロセスを実行することによって、ピクチャの置換表現を決定することと、を含む。E2E最適化フレームワークは、事前にトレーニングされた人工ニューラルネットワーク(ANN)ベースの画像またはビデオコーディングフレームワークであることができる。ピクチャの置換表現は、ビットストリームを生成するようにエンコーディングされることができる。人工ニューラルネットワークベースのビデオコーディングフレームワークでは、機械学習プロセスを実行することによって、異なるモジュールが、最終的な目的(例えばレート歪み性能)を改善するように入力から出力へと共同で最適化されることができ、その結果、エンドツーエンド(E2E)最適化ニューラル画像圧縮(NIC)が得られる。
【0012】
図1は、実施形態による、ここに記載される方法、装置およびシステムが実装され得る環境100の図である。
【0013】
図1に示すように、環境100は、ユーザデバイス110、プラットフォーム120、およびネットワーク130を含み得る。環境100のデバイスは、有線接続、無線接続、または有線接続と無線接続の組み合わせを介して相互接続し得る。
【0014】
ユーザデバイス110は、プラットフォーム120に関連する情報を受信、生成、格納、処理、および/または提供することができる1つまたは複数のデバイスを含む。例えば、ユーザデバイス110は、コンピューティングデバイス(例えば、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ハンドヘルドコンピュータ、スマートスピーカ、サーバなど)、携帯電話(例えば、スマートフォン、無線電話など)、ウェアラブルデバイス(例えば、スマートグラスまたはスマート腕時計)、または同様のデバイスを含み得る。いくつかの実装では、ユーザデバイス110はプラットフォームから情報を受信し得るおよび/またはプラットフォーム120に情報を送信し得る。
【0015】
プラットフォーム120は、本明細書のいずれかに記載されているように、1つまたは複数のデバイスを含む。いくつかの実装では、プラットフォーム120は、クラウドサーバーまたはクラウドサーバーのグループを含み得る。いくつかの実装では、プラットフォーム120は、ソフトウェアコンポーネントがスワップインまたはスワップアウトされるようにモジュール化されるように設計され得る。そのため、プラットフォーム120は、異なる用途のために簡単にかつ/または迅速に再構成され得る。
【0016】
いくつかの実装では、示されているように、プラットフォーム120はクラウドコンピューティング環境122でホストされ得る。特に、ここに記載されている実装は、プラットフォーム120はクラウドコンピューティング環境122でホストされていると説明されているが、いくつかの実装では、プラットフォーム120は、クラウドベースでなくてもよく(すなわち、クラウドコンピューティング環境の外部に実装されてもよく)、または部分的にクラウドベースであってもよい。
【0017】
クラウドコンピューティング環境122は、プラットフォーム120をホストする環境を含む。クラウドコンピューティング環境122は、プラットフォーム120をホストするシステム(複数可)および/またはデバイス(複数可)の物理的な場所および構成のエンドユーザ(例えば、ユーザデバイス110)の知識を必要としない計算、ソフトウェア、データアクセス、ストレージなどのサービスを提供し得る。示されているように、クラウドコンピューティング環境122は、コンピューティングリソース124のグループ(総称して「コンピューティングリソース124」と称され、個別に「コンピューティングリソース124」と称される)を含み得る。
【0018】
コンピューティングリソース124は、1つまたは複数のパーソナルコンピュータ、ワークステーションコンピュータ、サーバデバイス、または他のタイプの計算および/または通信デバイスを含む。いくつかの実装では、コンピューティングリソース124はプラットフォーム120をホストし得る。クラウドリソースは、コンピューティングリソース124で実行されるコンピューティングインスタンス、コンピューティングリソース124で提供されるストレージデバイス、コンピューティングリソース124によって提供されるデータ転送デバイスなどを含み得る。いくつかの実装では、コンピューティングリソース124は、有線接続、無線接続、または有線接続と無線接続の組み合わせを介して他のコンピューティングリソース124と通信し得る。
【0019】
図1にさらに示すように、コンピューティングリソース124は、1つまたは複数のアプリケーション(「APP」)124-1、1つまたは複数の仮想マシン(「VM」)124-2、仮想化ストレージ(「VS」)124-3、1つまたは複数のハイパーバイザ(「HYP」)124-4などのクラウドリソースのグループを含む。
【0020】
アプリケーション124-1は、ユーザデバイス110および/またはプラットフォーム120に提供され得るまたはそれらによってアクセスされ得る、1つまたは複数のソフトウェアアプリケーションを含む。アプリケーション124-1は、ユーザデバイス110にソフトウェアアプリケーションをインストールして実行する必要を排除し得る。例えば、アプリケーション124-1は、プラットフォーム120に関連するソフトウェアおよび/またはクラウドコンピューティング環境122を介して提供可能なその他のソフトウェアを含み得る。いくつかの実装では、1つのアプリケーション124-1が仮想マシン124-2を介して1つまたは複数の他のアプリケーション124-1と情報を送受信し得る。
【0021】
仮想マシン124-2は、物理マシンのようにプログラムを実行するマシン(例えばコンピュータ)のソフトウェア実装を含む。仮想マシン124-2は、仮想マシン124-2による任意のリアルマシンへの使用と対応の程度に応じて、システム仮想マシンまたはプロセス仮想マシンのいずれかであり得る。システム仮想マシンは、完全なオペレーティングシステム(「OS」)の実行をサポートする完全なシステムプラットフォームを提供し得る。プロセス仮想マシンは単一のプログラムを実行し得、単一のプロセスをサポートし得る。いくつかの実装では、仮想マシン124-2はユーザ(例えば、ユーザデバイス110)の代わりに実行され得、データ管理、同期、長時間のデータ転送など、クラウドコンピューティング環境122のインフラストラクチャを管理し得る。
【0022】
仮想化ストレージ124-3は、コンピューティングリソース124のストレージシステムまたはデバイス内で仮想化技術を使用する1つ以上のストレージシステムおよび/または1つ以上のデバイスを含む。いくつかの実装では、ストレージシステムのコンテキスト内で、仮想化の種類は、ブロック仮想化およびファイル仮想化を含み得る。ブロック仮想化は、物理ストレージまたは異種構造に関係なくストレージシステムがアクセスされ得るように、物理ストレージからの論理ストレージを抽象化(または分離)を指し得る。この分離は、ストレージシステムの管理者に、管理者がエンドユーザのストレージを管理する方法に柔軟性を許容し得る。ファイル仮想化は、ファイルレベルでアクセスされるデータとファイルが物理的に格納される場所との依存性を排除し得る。これは、ストレージの使用の最適化、サーバの統合、および/または無停止でのファイル移行のパフォーマンスを可能にし得る。
【0023】
ハイパーバイザ124-4は、複数のオペレーティングシステム(例:「ゲストオペレーティングシステム」)がコンピューティングリソース124などのホストコンピュータ上で同時に実行することを可能にするハードウェア仮想化技術を提供し得る。ハイパーバイザ124-4は、ゲストオペレーティングシステムに仮想オペレーティングプラットフォームを提示し得、ゲストオペレーティングシステムの実行を管理し得る。さまざまなオペレーティングシステムの複数のインスタンスが、仮想化されたハードウェアリソースを共有し得る。
【0024】
ネットワーク130は、1つまたは複数の有線および/または無線ネットワークを含む。例えば、ネットワーク130は、セルラーネットワーク(例えば、第5世代(5G)ネットワーク、ロングタームエボリューション(LTE)ネットワーク、第3世代(3G)ネットワーク、符号分割多重アクセス(CDMA)ネットワークなどで)、パブリックランドモバイルネットワーク(PLMN)、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、電話ネットワーク(例えば、公衆交換電話網(PSTN))、プライベートネットワーク、アドホックネットワーク、イントラネット、インターネット、光ファイバーベースのネットワークなど、および/またはこれらまたは他のタイプのネットワークの組み合わせを含み得る。
【0025】
図1に示すデバイスおよびネットワークの数および配置は例として提供されている。実際には、
図1に示されているものよりも、追加のデバイスおよび/またはネットワーク、より少ないデバイスおよび/またはネットワーク、異なるデバイスおよび/またはネットワーク、または異なる配置のデバイスおよび/またはネットワークがあり得る。さらに、
図1に示す2つ以上のデバイスは、単一のデバイス内に実装され得る、または、
図1に示す単一のデバイスは複数の分散デバイスとして実装され得る。追加的に、または代替的に、環境100のデバイス(例えば、1つまたは複数のデバイス)のセットは、環境100の別のデバイスのセットによって実行されると記述された1つまたは複数の機能を実行し得る。
【0026】
図2は、
図1の1つまたは複数のデバイスの例示的なコンポーネントのブロック図である。
【0027】
デバイス200は、ユーザデバイス110および/またはプラットフォーム120に対応し得る。
図2に示すように、デバイス200は、バス210、プロセッサ220、メモリ230、ストレージコンポーネント240、入力コンポーネント250、出力コンポーネント260、および通信インターフェイス270を含み得る。
【0028】
バス210は、デバイス200のコンポーネント間の通信を可能にするコンポーネントを含む。プロセッサ220は、ハードウェア、ファームウェア、またはハードウェアとソフトウェアの組み合わせで実装される。プロセッサ220は、中央処理装置(CPU)、グラフィックス処理装置(GPU)、加速処理装置(APU)、マイクロプロセッサ、マイクロコントローラ、デジタルシグナルプロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、または別のタイプの処理コンポーネントである。いくつかの実装では、プロセッサ220は、機能を実行するようにプログラムされることができる1つまたは複数のプロセッサを含む。メモリ230は、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、および/またはプロセッサ220による使用のための情報および/または命令を格納する別のタイプの動的または静的ストレージデバイス(例えば、フラッシュメモリ、磁気メモリおよび/または光学メモリ)を含む。
【0029】
ストレージコンポーネント240は、デバイス200の動作および使用に関する情報および/またはソフトウェアを格納する。例えば、ストレージコンポーネント240は、対応するドライブとともに、ハードディスク(例えば、磁気ディスク、光ディスク、光磁気ディスク、および/またはソリッドステートディスク)、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、フロッピー(登録商標)ディスク、カートリッジ、磁気テープ、および/または別の種類の非一時的コンピュータ可読媒体を含み得る。
【0030】
入力コンポーネント250は、ユーザ入力(例えば、タッチスクリーンディスプレイ、キーボード、キーパッド、マウス、ボタン、スイッチ、および/またはマイク)などを介してデバイス200が情報を受信することを可能にするコンポーネントを含む。追加的に、または代替的に、入力コンポーネント250は、情報を感知するためのセンサ(例えば、全地球測位システム(GPS)コンポーネント、加速度計、ジャイロスコープ、および/またはアクチュエータ)を含み得る。出力コンポーネント260は、デバイス200からの出力情報を提供するコンポーネントを含み得る((例えば、ディスプレイ、スピーカー、および/または1つ以上の発光ダイオード(LED)))。
【0031】
通信インターフェイス270は、デバイス200が、有線接続、無線接続、または有線接続と無線接続の組み合わせを介してなど、他のデバイスと通信できるようにするトランシーバ様コンポーネント(例えば、トランシーバおよび/または個別のレシーバおよびトランスミッタ)を含む。通信インターフェイス270は、デバイス200が別のデバイスから情報を受信するおよび/または別のデバイスに情報を提供することを可能にし得る。例えば、通信インターフェイス270は、イーサネット(登録商標)インターフェイス、光インターフェイス、同軸インターフェイス、赤外線インターフェイス、無線周波数(RF)インターフェイス、ユニバーサルシリアルバス(USB)インターフェイス、Wi-Fi(登録商標)インターフェイス、セルラーネットワークインターフェイス等を含み得る。
【0032】
デバイス200は、ここで説明する1つまたは複数のプロセスを実行し得る。デバイス200は、プロセッサ220がメモリ230および/またはストレージコンポーネント240などの非一時的なコンピュータ可読媒体によって格納されたソフトウェア命令を実行することに応答して、これらのプロセスを実行し得る。コンピュータ可読媒体は、ここでは非一時的メモリデバイスと定義される。メモリデバイスは、単一の物理ストレージデバイス内のメモリ空間、または複数の物理ストレージデバイスにわたって分散したメモリ空間を含む。
【0033】
ソフトウェア命令は、別のコンピュータ可読媒体から、または通信インターフェイス270を介して別のデバイスから、メモリ230および/またはストレージコンポーネント240に読み込まれ得る。実行されると、メモリ230および/またはストレージコンポーネント240に格納されたソフトウェア命令は、プロセッサ220にここで説明する1つまたは複数のプロセスを実行させ得る。追加的に、または代替的に、ここに記載されている1つまたは複数のプロセスを実行するために、ソフトウェア命令の代わりにまたはソフトウェア命令と組み合わせて、ハードワイヤード回路が使用され得る。したがって、ここで説明する実装は、ハードウェア回路とソフトウェアの特定の組み合わせに限定されない。
【0034】
図2に示すコンポーネントの数および配置を一例として提供されている。実際には、デバイス200は、
図2に示されているものよりも、追加のコンポーネント、より少ないコンポーネント、異なるコンポーネント、または異なる配置のコンポーネントを含み得る。追加的に、または代替的に、デバイス200のコンポーネントのセット(例えば、1つまたは複数のコンポーネント)は、デバイス200の別のコンポーネントのセットによって実行されると記述された1つまたは複数の機能を実行し得る。
【0035】
入力画像xが与えられた場合、NICのターゲットは、ストレージおよび伝送の目的でコンパクトな圧縮表現
(外1)
を計算するために画像xをDNNエンコーダへの入力として
使用することである。次に、圧縮表現
(外1)
をDNNデコーダへの入力として使用して、
画像
(外2)
を再構成する。いくつかのNIC方法では、変分オートエンコーダ(VAE)構造を採用し得、DNNエンコーダは画像x全体をその入力として直接使用し、これは出力表現(すなわち圧縮表現
(外1)
を計算するためにブラックボックスのように機能するネットワーク層のセットを通過
する。これに対応して、DNNデコーダは圧縮表現
(外1)
全体を入力として受け取り、これは再構成画像
(外2)
を計算するために別のブラックボックスのように機能する別のネットワーク層のセットを通過する。レート歪み(Rate-Distortion)(R-D)損失が、次の目標損失関数
(外4)
を使用して再構成画像
(外2)
の歪み損失
(外3)
とトレードオフのハイパーパラメータλを持つ圧縮表現
(外1)
のビット消費
(外5)
との間のトレードオフを実現するために最適化される:
【0036】
【0037】
前処理に関連する実施形態は、圧縮されることになる各入力画像について、オンライントレーニングが最適な置換(substitute)を見つけ、元の画像の代わりにこの置換を圧縮するために使用され得ることを提案する。
図3は、実施形態による一般的な置換NICフレームワーク300の例示的なブロック図である。
図3に示すように、一般的な置換NICフレームワーク300は、置換モジュール310、エンコーディングモジュール320、デコーディングモジュール330を含む。
【0038】
入力画像xは置換モジュール310を通過して、式(1)に従って最小の目標損失を持つ置換画像を生成する。この置換を使用することによって、エンコーディングモジュール320はより優れた圧縮性能を実現することができる。圧縮画像は、再構成出力
(外6)
を生成するために、デコーディングモジュール330を使用してデコーディングされ得る。この方法は、任意のE2E NICフレームワークの圧縮性能を高めるための前処理ステップとして使用される。事前トレーニングされた圧縮モデル自体または任意のトレーニングデータに対するトレーニングまたは微調整は必要ない。次に、1つまたは複数の実施形態による前処理モデルのための詳細な方法および装置が説明される。
【0039】
図4は、置換学習ベースの画像コーディング前処理モデルを示す例示的な図である。
【0040】
学習ベースの画像圧縮は、2段階のマッピングプロセスとして見ることができる。
図4に示すように、高次元空間内の元の画像x
0は長さR(x
0)を持つビットストリームにマッピングされ(エンコーディングマッピング400)、次に歪み損失
(外7)
を伴って
(外8)
で元の空間に戻ってマッピングされる(デコーディングマッピング410)。
【0041】
1つの例示の実施形態では、
図4に示すように、置換画像
(外9)
が存在する場合、それは長さ
(外10)
を持つビットストリームにマップされ、これは次に、歪み損失
(外11)
を伴って元の画像x
0に近い空間
(外12)
にマッピングされる。距離測定または損失関数が与えられると、置換画像を使用してより良い圧縮を実現できる。最良の圧縮性能は、式(1)による目標損失関数のグローバル最小値(global minimum)で達成される。別の例示の実施形態では、デコーディングされた画像x
1と元の画像x
0との間の違いを減らすために、ANNの任意の中間ステップで置換が見つけられ得る。
【0042】
モデルのパラメータを更新するために勾配が使用されるモデルトレーニングフェーズとは異なり、前処理モデルでは、モデルのパラメータは固定されており、勾配は、入力画像自体を更新するために使用され得る。微分不可能な部分を微分可能な部分に置き換えること(例えば量子化をノイズ注入に置き換えること)によって、モデル全体は微分可能にされる(その結果、勾配は逆伝搬される(backpropagated)ことができる)。したがって、上記の最適化は勾配降下によって反復的に解くことができる。
【0043】
この前処理モデルには、2つの重要なハイパーパラメータ:ステップサイズおよびステップの数がある。ステップサイズは、オンライントレーニングの「学習率」を示す。さまざまなコンテンツのタイプを含む画像は、最良の最適化結果を得るために、さまざまなステップサイズに対応し得る。ステップの数は、操作された更新の数を示す。目標損失関数(外13)
とともに、ハイパーパラメータは学習プロセスのために使用される。例えば、ステップサイズは、勾配降下アルゴリズムや、学習プロセスで実行される逆伝播計算で使用され得る。反復の数は、学習プロセスをいつ終了できるかを制御する反復の最大数のしきい値として使用され得る。
【0044】
1つの例示の実施形態では、反復オンライントレーニングの間、学習率(すなわちステップサイズ)をスケジューラによって各ステップにおいて変更することができる。スケジューラは学習率の値を決定し、これは、増加又は減少し得る。学習率はまた、オンライントレーニングの1回以上の反復に対して同じに保たれ得る。
【0045】
実施形態によれば、それは異なる入力画像に対して学習率を決定する単一のスケジューラまたは複数の異なるスケジューラであり得る。つまり、複数のスケジューラに基づいて複数の置換が生成される。置換ごとに最良の圧縮性能を持つスケジューラが選択される。さらに、実施形態によれば、画像は、パッチに分割されることによって圧縮され得る。この目的のために、複数の学習率スケジュールが、より良い圧縮結果を達成するために、画像に割り当てられ得る。
【0046】
図5は、実施形態による、置換エンドツーエンド(E2E)ニューラル画像圧縮(NIC)の方法500のフローチャートである。
【0047】
いくつかの実装では、
図5の1つまたは複数のプロセスブロックは、プラットフォーム120によって実行され得る。いくつかの実装では、
図5の1つまたは複数のプロセスブロックは、ユーザデバイス110などの、プラットフォーム120とは別の、またはプラットフォーム120を含む別のデバイスまたはデバイスのグループによって実行され得る。
【0048】
図5に示すように、動作510において、方法500はE2E NICフレームワークへの入力画像を受信することを含む。
【0049】
動作520において、方法500は、トレーニングモデルの学習率を示す入力画像のステップサイズを決定することを含む。
【0050】
動作530において、方法500は、トレーニングモデルに基づいて、置換画像を決定することを含む。置換画像は、トレーニングモデルの最適化プロセスによって決定され得る。これは、置換表現を生成するために入力画像の要素を調整し、置換画像として使用するために入力画像と置換表現の間で最小の歪み損失を持つ要素を選択することによって行われる。さらに、トレーニングモデルは、決定されたステップサイズ、入力画像に対する更新の数、および歪み損失に基づいてトレーニングされ得る。ステップサイズは、トレーニングモデルの1つまたは複数の反復に対して増加、減少、または同じままにされ得る。1つまたは複数の置換画像が異なるステップサイズに基づいて生成され得る。異なるステップサイズに対応するステップサイズ値は、スケジューラに基づいて決定され得る。より良い圧縮性能をもたらすステップサイズに基づく置換画像が選択される。代替的には、入力画像は、パッチに分割され得、パッチの各々は異なるスケジューラが割り当てられ得る。
【0051】
置換画像は、入力画像にマッピングされるように存在し、置換画像から入力画像の再構成画像までの距離は、距離測定または損失関数によって測定される置換画像から入力画像までの距離よりも短い。
【0052】
動作540において、方法500は、ビットストリームを生成するために入力画像の代わりに置換画像をエンコーディングすることを含む。
【0053】
動作550において、方法500は、圧縮表現を生成するために置換画像をビットストリームにマッピングすることを含む。実施形態では、ビットストリームまたは圧縮表現の1つまたは複数は、例えばデコーダおよび/または受信装置に送信され得る。
【0054】
入力画像がパッチに分割されている場合は、置換パッチが各パッチに対して決定され、各置換パッチは、動作530-550に従ってエンコーディングされて圧縮される。
【0055】
方法500は、事前訓練された画像コーディングモデルに基づく人工ニューラルネットワークを使用し得、人工ニューラルネットワークのパラメータは固定され、勾配が入力画像を更新するために使用される。
【0056】
図5は本方法の例示のブロックを示しているが、いくつかの実装では、本方法は、
図5に示されているものよりも、追加のブロック、より少ないブロック、異なるブロック、または異なる配置のブロックを含み得る。追加的に、または代替的に、方法のブロックの2つ以上が並行に実行され得る。
【0057】
図6は、実施形態による、置換エンドツーエンド(E2E)ニューラル画像圧縮(NIC)の装置600のブロック図である。
【0058】
図6に示すように、装置600は、受信コード610、ステップサイズ決定コード620、決定コード630、エンコーディングコード640、マッピングコード650を含む。
【0059】
受信コード610は、少なくとも1つのプロセッサにE2E NICフレームワークへの入力画像を受信させるように構成される。
【0060】
ステップサイズ決定コード620は、少なくとも1つのプロセッサに、トレーニングモデルの学習率を示す入力画像のステップサイズを決定させるように構成される。
【0061】
決定コード630は、少なくとも1つのプロセッサに、トレーニングモデルに基づいて、置換画像を決定させるように構成される。
【0062】
エンコーディングコード640は、少なくとも1つのプロセッサに、ビットストリームを生成するために、入力画像の代わりに置換画像をエンコーディングさせるように構成される。
【0063】
マッピングコード650は、少なくとも1つのプロセッサに、圧縮表現を生成するために、置換画像をビットストリームにマッピングさせるように構成される。
【0064】
決定コード620によって決定される置換画像は、トレーニングモデルの最適化プロセスによって決定され得る。これは、少なくとも1つのプロセッサに置換表現を生成するために入力画像の要素を調整させるように構成された調整コードと、少なくとも1つのプロセッサに入力画像と置換表現との間で最小の歪み損失を持つ要素を置換画像として選択させるように構成された選択コードによって行われる。さらに、トレーニングモデルは、決定されたステップサイズ、入力画像に対する更新の数、および歪み損失に基づいてトレーニングされ得る。ステップサイズは、トレーニングモデルの1つまたは複数の反復に対して増加、減少、または同じままにされ得る。1つまたは複数の置換画像は、異なるステップサイズに基づいて生成され得る。複数のステップサイズに対応するステップサイズ値が、複数のスケジューラに基づいて決定される。追加的に、入力画像はパッチに分割され得、パッチの各々に異なるスケジューラが割り当てられてエンコーディングされ得る。
【0065】
置換画像は、入力画像にマッピングするように存在し、置換画像から入力画像の再構成画像までの距離は、距離測定または損失関数によって測定される置換画像から入力画像までの距離よりも短い。
【0066】
追加的に、装置600は、事前訓練された画像コーディングモデルに基づく人工ニューラルネットワークを使用し得、人工ニューラルネットワークのパラメータは固定され、勾配が入力画像を更新するために使用される。
【0067】
図6は装置の例示のブロックを示しているが、いくつかの実装では、装置は
図6に示されているものよりも、追加のブロック、より少ないブロック、異なるブロック、または異なる配置のブロックを含み得る。追加的に、または代替的に、装置のブロックの2つ以上が組み合わされ得る。
【0068】
ここでの実施形態は、E2E画像圧縮方法を説明する。方法は、置換メカニズムを利用して、さまざまな種類の品質メトリックに対応する柔軟で一般的なフレームワークを使用することによって、NICのコーディング効率を向上させる。
【0069】
1つまたは複数の実施形態による、E2E画像圧縮方法は、個別に使用され得る、または、任意の順序で組み合わされ得る。さらに、方法(または実施形態)、エンコーダ、デコーダのそれぞれは、処理回路(例えば、1つ以上のプロセッサまたは1つ以上の集積回路)によって実装され得る。1つの例では、1つ以上のプロセッサは、非一時的コンピュータ可読媒体に格納されているプログラムを実行する。
【0070】
上記の開示は、図示と説明を提供するが、網羅的であることまたは開示された正確な形態に実装を限定することを意図していない。修正および変形が、上記の開示に照らして可能である、または実装の実施から取得され得る。
【0071】
ここで使用されるとき、コンポーネントという用語は、ハードウェア、ファームウェア、またはハードウェアとソフトウェアの組み合わせとして広く解釈されることが意図される。
【0072】
ここに記載されているシステムおよび/または方法は、ハードウェア、ファームウェア、またはハードウェアとソフトウェアの組み合わせの異なる形態で実装され得ることは明らかである。これらのシステムおよび/または方法を実装するために使用される実際の特殊な制御ハードウェアまたはソフトウェアコードは、実装を限定するものではない。したがって、システムおよび/または方法の動作および挙動は、特定のソフトウェアコードを参照することなくここに記述されていた-ソフトウェアおよびハードウェアは、ここでの記述に基づいてシステムおよび/または方法を実装するように設計され得ることが理解される。
【0073】
機能の組み合わせが請求項に記載されているおよび/または明細書に開示されているが、これらの組み合わせは可能な実装の開示を限定することを意図していない。実際、これらの特徴の多くは、請求項に具体的に記載されていない方法および/または明細書に開示されていない方法で組み合わされ得る。以下に列挙されている各従属請求項は、1つの請求項のみに直接従属する場合があるが、可能な実装の開示は、請求項のセット内の他のすべての請求項と組み合わせた各従属請求項を含む。
【0074】
ここで使用される要素、動作、または指示は、明示的にそのように記述されていない限り、重要または不可欠であると解釈することはできない。また、ここで使用されるとき、冠詞「1つの(aおよびan)」は1つまたは複数のアイテムを含むことを意図しており、「1つまたは複数(1つ以上)」と同じ意味で使用され得る。さらに、ここで使用されるとき、「セット」という用語は、1つまたは複数のアイテム(例えば、関連するアイテム、無関係なアイテム、関連するアイテムと無関係なアイテムの組み合わせなど)を含むことを意図しており、「1つまたは複数」と同じ意味で使用され得る。1つのアイテムのみが意図される場合、用語「1つ」または類似の言語が使用される。また、ここで使用されるとき、「有する(has)」、「有する(have)」、「有している(having)」などの用語は、オープンエンドの用語であることが意図される。さらに、「に基づく」という表現は、特に明示されていない限り、「少なくとも部分的に、基づく」を意味することが意図される。