(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-07
(45)【発行日】2023-09-15
(54)【発明の名称】代替エンドツーエンドビデオコーディング
(51)【国際特許分類】
H04N 19/90 20140101AFI20230908BHJP
【FI】
H04N19/90
(21)【出願番号】P 2022527226
(86)(22)【出願日】2021-04-19
(86)【国際出願番号】 US2021027939
(87)【国際公開番号】W WO2021231036
(87)【国際公開日】2021-11-18
【審査請求日】2022-05-11
(32)【優先日】2020-05-12
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-05-18
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-04-15
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】シャオ・ワン
(72)【発明者】
【氏名】ウェイ・ジアン
(72)【発明者】
【氏名】ウェイ・ワン
(72)【発明者】
【氏名】シャン・リュウ
【審査官】岩井 健二
(56)【参考文献】
【文献】国際公開第2020/035684(WO,A1)
【文献】米国特許出願公開第2020/0145661(US,A1)
【文献】Changqing Zhang, Yeqing Liu, and Huazhu Fu,AE2-Nets: Autoencoder in Autoencoder Networks,2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR),IEEE,2019年,pp.2572-2580
【文献】Ching-Chun Huang, Thanh-Phat Nguyen, and Chen-Tung Lai,MULTI-CHANNEL MULTI-LOSS DEEP LEARNING BASED COMPRESSION MODEL FOR COLOR IMAGES,ICIP 2019 Authorized licensed,IEEE,2019年,pp.4524-4528
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
コンピュータデバイスでのビデオコーディング方法であって、
画像を受信するステップと、
エンドツーエンド(E2E)最適化されたフレームワークに基づいて前記画像の代替
画像をコーディングするレート歪み性能を最適化するために、前記画像の代替
画像の要素をチューニングするための最適化プロセスを実行することにより、前記画像の代替
画像を決定するステップであって、前記E2E最適化されたフレームワークは、予め訓練された、人工ニューラルネットワーク(ANN)に基づくビデオコーディングフレームワークであ
り、前記最適化プロセスは、前記画像の前記代替画像の前記要素に関する損失関数を最適化するために前記E2E最適化されたフレームワークに基づいて反復して実行され、前記損失関数は、前記E2E最適化されたフレームワークに基づいて前記画像の前記代替画像をコーディングする前記レート歪み性能を示し、前記反復して実行される前記最適化プロセスにおいて、前記画像の前記代替画像の前記要素の値がチューニングされる、ステップと、
前記画像の代替
画像をコーディングすることでビットストリームを生成するステップと、
を含む
ことを特徴とする方法。
【請求項2】
前記最適化プロセスを実行するステップは、さらに、
前記コンピュータデバイスに入力される画像ごとに予め固定されたステップサイズおよび反復回数を含むハイパーパラメータに基づいて、前記最適化プロセスを実行するステップを、含む、
ことを特徴とする請求項
1に記載の方法。
【請求項3】
前記最適化プロセスを実行するステップは、さらに、
前記コンピュータデバイスに入力される画像ごとに調整されたステップサイズおよび反復回数を含むハイパーパラメータに基づいて、前記最適化プロセスを実行するステップ、を含む、
ことを特徴とする請求項
1に記載の方法。
【請求項4】
前記最適化プロセスの現在の反復は、
前記損失関数を最小化するために、前記画像の代替
画像の要素の現在値を調整するための勾配降下を実行するステップと、
前記画像の代替
画像の要素の調整された現在値を、前記最適化プロセスの次の反復の入力として使用するステップと、を含む、
ことを特徴とする請求項
1に記載の方法。
【請求項5】
前記損失関数は、前記E2E最適化されたフレームワークに基づいて前記画像の代替
画像をコーディングするためのビットレート測度と歪み測度との加重和を含む、
ことを特徴とする請求項
1に記載の方法。
【請求項6】
前記歪み測度は、前記画像と、前記E2E最適化されたフレームワークに基づいてコード化されたときの前記画像の代替
画像の再構成された画像との間の差を含む、
ことを特徴とする請求項
5に記載の方法。
【請求項7】
前記方法は、さらに、
前記E2E最適化されたフレームワークに基づいて前記画像をコーディングするためのビットレートを調整するために、前記加重和におけるトレードオフ係数を調整するステップを、含む、
ことを特徴とする請求項
5に記載の方法。
【請求項8】
前記ビットレート測度は、ターゲットビットレートと、前記E2E最適化されたフレームワークに基づいて前記画像の代替
画像をコーディングするためのビットレートとの間の差を含み、また、前記方法は、
前記E2E最適化されたフレームワークを使用して前記画像をコーディングするためのビットレートを調整するために、前記加重和におけるターゲットビットレートを調整するステップ、をさらに含む、
ことを特徴とする請求項
5に記載の方法。
【請求項9】
前記歪み測度は、前記E2E最適化されたフレームワークを最適化するために使用される歪みメトリックタイプとは異なるターゲット歪みメトリックタイプに基づくものである、
ことを特徴とする請求項
5に記載の方法。
【請求項10】
前記歪み測度は、前記E2E最適化されたフレームワークを最適化するために使用される歪みメトリックタイプと同じターゲット歪みメトリックタイプに基づくものである、
ことを特徴とする請求項
5に記載の方法。
【請求項11】
前記歪み測度は、前記E2E最適化されたフレームワークを最適化するために使用される同じ歪みメトリックタイプの歪みレベルとは異なる歪みメトリックタイプのターゲット歪みレベルに基づくものである、
ことを特徴とする請求項
5に記載の方法。
【請求項12】
前記歪み測度は、前記E2E最適化されたフレームワークを最適化するために使用される同じ歪みメトリックタイプの歪みレベルと同じ歪みメトリックタイプのターゲット歪みレベルに基づくものである、
ことを特徴とする請求項
5に記載の方法。
【請求項13】
回路を含むビデオコーディング装置であって、前記回路は、
画像を受信することと、
エンドツーエンド(E2E)最適化されたフレームワークに基づいて前記画像の代替
画像をコーディングするレート歪み性能を最適化するために、前記画像の代替
画像の要素をチューニングするための最適化プロセスを実行することにより、前記画像の代替
画像を決定することであって、前記E2E最適化されたフレームワークは、予め訓練された、人工ニューラルネットワーク(ANN)に基づくビデオコーディングフレームワークであ
り、前記最適化プロセスは、前記画像の前記代替画像の前記要素に関する損失関数を最適化するために前記E2E最適化されたフレームワークに基づいて反復して実行され、前記損失関数は、前記E2E最適化されたフレームワークに基づいて前記画像の前記代替画像をコーディングする前記レート歪み性能を示し、前記反復して実行される前記最適化プロセスにおいて前記画像の前記代替画像の前記要素の値がチューニングされる、ことと、
前記画像の代替
画像をコーディングすることでビットストリームを生成することと、
を行うように構成される、
ことを特徴とする装置。
【請求項14】
前記最適化プロセスの現在の反復は、
前記損失関数を最小化するために、前記画像の代替
画像の要素の現在値を調整するための勾配降下を実行することと、
前記画像の代替
画像の要素の調整された現在値を、前記最適化プロセスの次の反復の入力として使用することと、を含む、
ことを特徴とする請求項
13に記載の装置。
【請求項15】
前記損失関数は、前記E2E最適化されたフレームワークに基づいて前記画像の代替
画像をコーディングするためのビットレート測度と歪み測度との加重和を含む、
ことを特徴とする請求項
13に記載の装置。
【請求項16】
前記歪み測度は、前記画像と、前記E2E最適化されたフレームワークに基づいてコード化されたときの前記画像の代替
画像の再構成された画像との間の差を含む、
ことを特徴とする請求項
15に記載の装置。
【請求項17】
前記回路は、さらに、
前記E2E最適化されたフレームワークに基づいて前記画像をコーディングするためのビットレートを調整するために、前記加重和におけるトレードオフ係数を調整すること、を行うように構成される、
ことを特徴とする請求項
15に記載の装置。
【請求項18】
コンピュータプログラムであって、
前記請求項1~
12のいずれか1項に記載の方法を電子デバイスに実行させる、
ことを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願への相互参照]
本開示は、2021年4月15日に提出された米国特許出願第17/231,537号「代替エンドツーエンドビデオコーディング」の優先権を主張しており、この米国特許出願第17/231,537号は、2020年5月12日に提出された米国仮出願第63/023,687号「代替エンドツーエンド画像圧縮(Substitutional End-to-End Image Compression)」、および2020年5月18日に提出された米国仮出願第63/026,397号「ビットレート制約を用いた代替エンドツーエンド画像圧縮(Substitutional End-to-End Image Compression with Bitrate Constraint)」の優先権を主張している。先の出願の開示は、参照によりそれらの全体が本明細書に組み込まれる。
【0002】
[技術分野]
本開示は、一般に人工ニューラルネットワークに基づくビデオコーディングに関する実施形態を説明する。
【背景技術】
【0003】
本明細書で提供される背景技術の説明は、本開示のコンテキストを全体的に示すことを目的とする。この背景技術部分および本明細書の各態様において説明された、現在署名されている発明者の作業の程度は、本開示の提出時に先行技術として示されておらず、また、本開示の先行技術として認められていることを明示または暗示していない。
【0004】
従来のハイブリッドビデオコーデックが全体として最適化されることは困難である。単一のモジュールの改善は、全体的なパフォーマンス上のゲインが得られない可能性がある。対照的に、人工ニューラルネットワークに基づくビデオコーディングフレームワークでは、機械学習プロセスを実行することにより、異なるモジュールが、最終的な目標(例えば、レート歪み性能)を向上させるために、入力から出力まで共同で最適化され得て、その結果、エンドツーエンド(E2E)最適化されたビデオコーディングフレームワークが得られる。
【発明の概要】
【課題を解決するための手段】
【0005】
本開示の態様は、コンピュータデバイスでのビデオコーディング方法を提供する。この方法は、画像を受信するステップと、エンドツーエンド(E2E)最適化されたフレームワークに基づいて前記画像の代替表現をコーディングするレート歪み性能を最適化するために、前記画像の代替表現の要素をチューニングするための最適化プロセスを実行することにより、前記画像の代替表現を決定するステップとを含む。前記E2E最適化されたフレームワークは、予め訓練された、人工ニューラルネットワーク(ANN)に基づくビデオコーディングフレームワークであり得る。前記画像の代替表現は、ビットストリームを生成するためにコーディングされ得る。
【0006】
一実施形態では、前記画像の代替表現の要素の値に関する損失関数を最適化するために、前記画像の代替表現の要素をコーディングするための前記最適化プロセスが実行される。一実施形態では、ステップサイズおよび反復回数を含むハイパーパラメータに基づいて、前記最適化プロセスが実行される。前記ステップサイズおよび反復回数は、前記コンピュータデバイスに入力される画像ごとに予め固定または調整された。一実施形態では、前記最適化プロセスの現在の反復は、前記損失関数を最小化するために、前記画像の代替表現の要素の現在値を調整するための勾配降下を実行するステップと、前記画像の代替表現の要素の調整された現在値を、前記最適化プロセスの次の反復の入力として使用するステップと、を含む。
【0007】
一実施形態では、前記損失関数は、前記E2E最適化されたフレームワークに基づいて前記画像の代替表現をコーディングするためのビットレート測度と歪み測度との加重和を含む。一実施形態では、前記歪み測度は、前記画像と、前記E2E最適化されたフレームワークに基づいてコード化されたときの前記画像の代替表現の再構成された画像との間の差を含む。一実施形態では、前記E2E最適化されたフレームワークに基づいて前記画像をコーディングするためのビットレートを調整するために、前記加重和におけるトレードオフ係数は調整され得る。
【0008】
一実施形態では、前記ビットレート測度は、ターゲットビットレートと、前記E2E最適化されたフレームワークに基づいて前記画像の代替表現をコーディングするためのビットレートとの間の差を含む。前記E2E最適化されたフレームワークを使用して前記画像をコーディングするためのビットレートを調整するために、前記加重和におけるターゲットビットレートは調整され得る。
【0009】
一実施形態では、前記歪み測度は、前記E2E最適化されたフレームワークを最適化するために使用される歪みメトリックタイプとは異なるまたは同じターゲット歪みメトリックタイプに基づくものである。一実施形態では、前記歪み測度は、前記E2E最適化されたフレームワークを最適化するために使用される同じ歪みメトリックタイプの歪みレベルとは異なるまたは同じ歪みメトリックタイプのターゲット歪みレベルに基づくものである。
【0010】
本開示の態様は、ビデオコーディング装置を提供する。前記装置は、回路を含み、前記回路は、画像を受信することと、エンドツーエンド(E2E)最適化されたフレームワークに基づいて前記画像の代替表現をコーディングするレート歪み性能を最適化するために、前記画像の代替表現の要素をチューニングするための最適化プロセスを実行することにより、前記画像の代替表現を決定することと、を行うように構成される。前記E2E最適化されたフレームワークは、予め訓練された、ANNに基づくビデオコーディングフレームワークであり得る。前記回路は、さらに、前記画像の代替表現をコーディングすることでビットストリームを生成すること、を行うように構成される。
【0011】
本開示の態様は、命令が記憶されている非一時的なコンピュータ読み取り可能な媒体を提供し、前記命令がプロセッサによって実行されるとき、上記のビデオコーディング方法を前記プロセッサに実行させる。
【0012】
開示された主題の更なる特徴、性質、および様々な利点は、以下の詳細な説明および添付図面からより明らかになる。
【図面の簡単な説明】
【0013】
【
図1】本開示の一実施形態による代替エンドツーエンド(E2E)ビデオコーディングシステム(100)を示す図である。
【
図2】E2Eフレームワーク(101)をどのように訓練するかの例を示す図である。
【
図3】本開示の一実施形態による機械学習プロセス(300)を示す図である。
【
図4】本開示の一実施形態による試験システム(400)を示す図である。
【
図5】レート損失と歪み損失との間のトレードオフ係数を調整することに基づく第1ビットレート制御メカニズム(500)を示す図である。
【
図6】レート歪み損失関数におけるビットレート制約(ターゲットビットレート)を設定することに基づく第2ビットレート制御メカニズム(600)を示す図である。
【
図7】予め訓練されたE2Eフレームワーク(101)を使用して画像を
コーディングするための歪みメトリックタイプを調整するためのメカニズム(700)を示す図である。
【
図8】予め訓練されたE2Eフレームワーク(101)を使用して画像を
コーディングするためのターゲット歪みレベルを調整するためのメカニズム(800)を示す図である。
【
図9】本開示の一実施形態による、代替画像に基づくE2Eビデオコーディングプロセス(900)を示す図である。
【
図10】一実施形態によるコンピュータシステムの概略図である。
【発明を実施するための形態】
【0014】
図1は、本開示の一実施形態による代替エンドツーエンド(E2E)ビデオコーディングシステム(100)を示す。このシステム(100)は、エンコーダ110と、デコーダ120とを含み得る。エンコーダ110は、代替画像生成器(112)と、人工ニューラルネットワーク(ANN)に基づくエンコーダ(ANNエンコーダ)(114)と、量子化器(116)と、エントロピーエンコーダ(118)とを含み得る。これらの要素(112、114、116、および118)は、
図1に示すように接続される。デコーダ(120)は、エントロピーデコーダ(128)と、ANNに基づくデコーダ(ANNデコーダ)(124)とを含み得る。これらの要素(128および124)は、
図1に示すように互いに接続される。これらの要素(114、116、118、128、および124)は、E2E最適化されたビデオコーディングフレームワーク(E2E最適化されたフレームワークまたはE2Eフレームワーク)(101)を形成する。
【0015】
代替画像生成器(112)は、例えば、一連の画像を含むビデオから入力画像X(またはイメージX)を受信し、入力画像Xに対応する代替画像Xsを生成するように構成される。代替画像Xsは、E2Eフレーム(101)に供給される。本開示によれば、代替画像Xsは、E2Eフレームワーク(101)に基づいて学習され得る。学習された代替画像Xsは、元の入力画像Xと視覚的に類似しているが、元の入力画像Xよりも優れた変更を有することができる。例えば、いくつかの実施形態では、元の入力画像XをE2Eフレーム(101)に直接に供給するよりも、E2Eフレーム(101)を介して代替画像Xsを処理する方は、より良いレート歪み性能を達成することができる。
【0016】
E2Eフレームワーク(101)は、代替画像Xsを処理することで再構成された画像X’を生成する。具体的には、ANNエンコーダ(114)は、代替画像Xsをよりコンパクトな潜在表現Yに変換する。代替画像Xsの画素間の空間相関性は除去され得て、また、重要な特徴情報は、潜在表現Yにおいて保持され得る。様々な例では、代替画像Xsの次元数は低減または維持され得る。量子化器(116)は、損失のある量子化動作を応用することによって、潜在表現Yをさらに圧縮することができる。量子化器(116)から出力された量子化表現Y’は、ビットストリーム(131)を生成するために、エントロピーエンコーダ(118)によってエントロピーコード化され得る。様々な実施形態では、このエントロピー符号化動作は、損失のあるまたは損失のないであってもよい。エントロピーコーディング方法の例には、ハフマンコーディング、算術コーディング、コンテキスト適応バイナリ算術演算などが含まれ得る。ビットストリーム(131)は、デコーダ(120)に伝送されてもよく、またはデコーダ(120)によって記憶され、後で処理されてもよい。
【0017】
デコーダ(120)では、エントロピーデコーダ(128)は、ビットストリーム(131)から代替画像Xsのコード化ビットを受信し、コード化ビットを復号して量子化表現Y’を復元する。復元された量子化表現Y’は、ANNに基づく変換を行って再構成された画像X’を生成することができるANNデコーダ(124)に供給され得る。
【0018】
様々な実施形態では、ANNエンコーダ(114)またはANNデコーダ(124)は、様々なタイプのANNを採用することができ、様々なアーキテクチャを有することができ、また、様々な機械学習方法を使用して訓練され得る。例えば、ANNは、様々なタイプの深いニューラルネットワーク(DNN)であり得る。E2Eフレームワーク(101)は、ワンタイムフィードフォワードフレームワーク(例えば、一般化された分割正規化(GDN)変換、超優先モデル、残差自動エンコーダ、深い残差自動エンコーダ、またはマルチスケールモデル)、マルチステージ再発フレームワーク(multistage recurrent frameworks)(例えば、バニラ(vanilla)、ステートフル(stateful)、増分(incremental)、スキップ接続、またはステートフル伝播)など、様々なアーキテクチャを有してもよい。
【0019】
図2は、E2Eフレームワーク(101)をどのように訓練するかの例を示す。E2Eフレームワーク(101)を訓練するために、
図2に示すE2E訓練フレームワーク(201)が適用される。この特定の例では、E2E訓練フレームワーク(201)は、エントロピーエンコーダ(118)およびエントロピーデコーダ(128)を持たなくて、ANNエンコーダ(114)およびANNデコーダ(124)を含む。さらに、訓練の目的のために、量子化器(116)は、微分不可能な量子化動作(non-differentiable quantization operation)のためのノイズ加算動作を代替するために、ノイズインジェクタ(noise injector)(216)に置き換えられる。
【0020】
E2E訓練フレームワーク(201)のレート歪み性能を示す損失関数は、以下のように確立され得る。
図2において、入力画像Xは、ANNエンコーダ(114)において受信され得る。ANNエンコーダ(114)は、最適化される変数であるニューラルネットワーク(NN)パラメータ(Peとして表記された)を有するANNを含み得る。NNパラメータPeに基づいて、潜在表現Yを得ることができる。ノイズインジェクタ(216)は、潜在表現Yの要素に均一なノイズを付加することで、量子化表現Y’を生成することができる。付加の均一なノイズは、E2E訓練フレームワーク(201)のエンドツーエンド訓練を可能にするために、
図2の例における真の量子化を置き換えるために使用されるが、他の技術は、微分可能なプロセスにより微分不可能な量子化を近似するために、様々な実施形態において使用されてもよい。例えば、直接四捨五入は、勾配の前方向および後方向の伝播に使用されてもよく、ソフトからハードへのベクトル量子化は、直接スカラー量子化を置き換えるために使用されてもよいし、または量子化パラメータは、訓練プロセスによって学習されてもよい。
【0021】
ANNデコーダ(124)は、また、最適化される変数であるNNパラメータ(Pdとして表記された)を有するANNネットワークを含み得る。ANNデコーダ(124)は、量子化表現Y’を受信し、またNNパラメータPdに基づいて、量子化表現Y’を再構成された画像X’に変換することができる。歪み損失生成器(212)は、入力画像Xと再構成された画像X’との間の差に基づいて、歪み損失D(X,X’)を決定することができる。歪み損失D(X,X’)は、パラメータPeおよびPdの関数であり得る。様々な実施形態では、様々な歪みメトリック(または品質メトリック)は、歪み損失を決定するために使用されてもよい。歪みメトリックの例は、ピーク信号対雑音比(PSNR:peak signal-to-noise ratio)、ハイダイナミックレンジ視覚差予測子(HDR-VDP:high-dynamic range visual difference predictor)、構造インデックス類似度(SSIM:structural index similarity)、マルチスケール構造類似度(MS-SSIM:multiscale structural similarity)などを含み得る。
【0022】
さらに、レート損失推定器(218)は、量子化表現Y’の各要素に対するエントロピーをエントロピーモデルに従って推定することができる。レート損失推定器(218)によって使用されるエントロピーモデルは、最適化される変数であるエントロピーモデルパラメータ(Prとして表記された)を含み得る。推定されたエントロピーに基づいて、量子化表現Y’をコーディングするために使用されるビット数は、それに応じてレート損失推定器(218)によって決定され得る。これにより、ビットレート(例えば、1画素当たりビット(BPP)または1秒当たりビット(BPS))は決定されて、入力画像Xをコーディングするためのレート損失R(X)の推定値として使用され得る。レート損失R(X)は、NNパラメータPeおよびエントロピーモデルパラメータPrの関数であり得る。
【0023】
エントロピーおよびレート損失を推定するための様々な技術は、様々な実施形態において適用され得る。エントロピー推定の例は、要素ごと独立エントロピーモデルを使用して潜在表現の確率分布を推定すること、超優先モデル、予測モデルまたは他の学習されたパラメトリックモデルを使用したエントロピーを明示的に推定することなどを含んでもよい。レート損失推定方法の例は、J.Balleらによって、2017年の表現学習国際学会(ICLR:International Conference on Learning Representations)で、「エンドツーエンド最適化された画像圧縮」によって説明され、その全体が参照により組み込まれる。
【0024】
損失関数は、NNパラメータPeおよびPdと、エントロピーモデルパラメータPrとに関して、レート損失R(X)と歪み損失D(X,X’)との加重和として設定されてもよい。
[式1]
L(Pe,Pd,Pr)=R(X)+λD(X,X’)
ここで、λは、トレードオフ係数である。
【0025】
訓練プロセス中に、E2E訓練フレームワーク(201)およびレート損失推定器(218)は、全体として、Xの入力エンドからX’の出力エンドまで最適化され得る。パラメータPe、PdおよびPrは、NNパラメータPeおよびPdと、エントロピーモデルパラメータPrとを介した損失関数L(Pe、Pd、Pr)を最小化するために、ターゲットによってガイドされて更新(または最適化)され得る。例えば、特定の数の画像を訓練サンプルとして使用すると、勾配降下は、損失関数L(Pe,Pd,Pr)に基づいて実行され得て、これにより、NNパラメータPdおよびPeと、エントロピーモデルパラメータPrとは、特定のレート歪み性能が達成されるまでに、段階的に調整されている。勾配降下のアルゴリズムの例は、バッチ勾配降下(batch Gradient Descent)、確率的勾配降下(Stochastic Gradient Descent)、ミニバッチ勾配降下などを含み得る。
【0026】
訓練プロセスから生じる最適化されたパラメータPe、PdおよびPrは、ビデオコーディングシステム(100)を実現するために、E2Eフレームワーク(101)において使用され得る。エントロピーコーディングのために、
図1の例において、訓練プロセスから得られた最適化されたエントロピーモデルパラメータPrを使用したエントロピーモデルは、量子化表現Y’をエントロピー符号化またはエントロピー復号するために、エントロピーエンコーダ(118)およびエントロピーデコーダ(128)において使用され得ること。
【0027】
図3は、本開示の一実施形態による機械学習プロセス(または最適化プロセスと呼ばれる)(300)を示す。学習プロセス(300)は、
図1の例における代替画像生成器(112)で実行されて、代替画像Xsを、入力として元の
入力画像Xを有する出力として決定することができる。
【0028】
上記のように、いくつかの実施形態では、E2E最適化されたフレームワーク(101)は、特定の数の画像を訓練サンプルとして使用することで訓練され得る。結果として得られるフレームワーク(101)は、大量の入力画像に対して平均的に最適化された性能を有することができる。しかしながら、E2E最適化されたフレームワーク(101)は、訓練された後に、可変確率特性を有する画像を処理するための適応性を欠いている可能性がある。例えば、訓練サンプルの平均的な特徴から特定の偏差を有する画像に対して、それらのレート歪み性能は、予想される閾値を下回る可能性がある。元の入力画像を置き換えるために代替表現を見つけることは、E2Eビデオコーディングシステム(100)の適応性を改善するための方法と考えられ、ここで、E2E最適化されたフレームワーク(101)が入力画像に適応される代わりに、入力画像がE2E最適化されたフレームワーク(101)に適応される。
【0029】
図1における代替画像Xsは、
図3に示すE2E訓練されたフレームワーク(301)に基づいて学習され得る。E2E訓練されたフレームワーク(301)は、E2E最適化されたフレームワーク(101)からのANNエンコーダ(114)およびANNデコーダ(124)を含み得る。ANNエンコーダ(114)およびANNデコーダ(124)は、それぞれ、最適化されたパラメータPeおよびPdを使用して既に訓練および構成された。E2E訓練されたフレームワーク(301)は、また、E2Eフレームワーク(101)を訓練するために使用される量子化器(例えば、ノイズインジェクタ)(216)を含み得る。さらに、学習プロセス(300)は、E2Eフレームワーク(101)を訓練するために使用されるレート損失推定器(218)および歪み損失生成器(212)を使用することができる。レート損失推定器(218)は、最適化されたパラメータPrを使用して既に訓練および構成された。
【0030】
学習プロセス(300)は、複数の反復を含み得る。学習プロセス(300)の期間では、代替画像Xsは徐々にチューニングされている。各反復では、代替画像Xs(Psとして表記された)の現在の要素値(画素値)は、更新される変数である。したがって、学習プロセス(300)をガイドするための損失関数は、L(Ps)として表記され得る。
図2の例と同様の方式で、損失関数L(Ps)は確立され得て、以下の形式が採用され得る。
[式2]
L(Ps)=R(Xs)+λD(X,Xs’)
【0031】
損失関数L(Pe,Pd,Pr)(式1)と比較して、損失関数L(Ps)において、R(Xs)は、レート損失を表し、このレート損失は、要素値Psの関数であり、一方、最適化されたパラメータPeおよびPrは定数とするものである。また、D(X,Xs’)は、歪み損失を表し、この歪み損失も、要素値Psの関数であり、一方、最適化されたパラメータPeおよびPdは定数とするものである。さらに、
図3における歪み損失生成器(212)での動作については、差は、再構成された画像Xs’と入力画像Xsとの間ではなく、再構成された画像Xs’と入力画像Xとの間では決定される。
【0032】
例として、
図3における学習プロセス(300)は、以下のように実行され得る。t回目の反復の場合、代替画像Xsは、Xtとして表記され、ANNエンコーダ(114)に入力される。上記学習プロセス(300)の開始時に、代替画像Xsは、X
0として初期化され得る。一実施形態では、
図1における入力画像Xは、X
0として使用される。一実施形態では、
図1における入力画像Xの以外の画像は、X
0として使用される。一実施形態では、ランダムな要素値を有する画像は、X
0として使用される。
【0033】
t回目の反復の期間では、
図3に示すように、入力Xs=Xtに対応して、また、前向き推論計算を介して、潜在表現Ys、量子化表現Ys’、再構成された表現Xs’は決定され得る。歪み損失D(X,Xs’)およびレート損失R(Xs)は決定され得る。訓練損失R(Xs)+λD(X,Xs’)は、例えば逆伝播(backpropagation)およびデータ更新モジュール(310)において、これに応じて決定され得る。一例では、訓練損失がレート歪み閾値よりも小さいかどうかが検証される。訓練損失がレート歪み損失以上である場合、モジュール(310)は、損失関数L(Xs)に基づいて逆伝播を行うことで、入力Xtの要素値に対応する勾配を計算することができる。これらの勾配に基づいて、入力Xtの要素値は調整され、結果として、次の入力Xt+1が生成され得る。T回の反復の後、訓練損失がレート歪み損失より小さい場合、最適なXTは、学習プロセス(300)の出力として使用され得る。
【0034】
他の実施形態では、他の終了条件は、単独で、またはレート歪み閾値条件と組み合わせて使用されてもよい。例えば、一実施形態では、学習プロセス(300)の反復は、その反復の回数が閾値に達したときに終了されてもよい。このようにして、代替画像Xsを生成するための時間予算は制御され得てし、また、E2Eビデオコーディングシステム(100)はリアルタイムで動作することができる。
【0035】
いくつかの実施形態では、学習プロセス(300)は、ステップサイズ(または学習率)および反復回数という2つのハイパーパラメータに基づくことができる。これらのハイパーパラメータは、ターゲット損失関数と共に、学習プロセス(300)のために使用される。例えば、ステップサイズは、勾配降下アルゴリズム、または学習プロセスにおいて実行される逆伝播計算で使用され得る。反復回数は、学習プロセス(300)をいつ終了させることができるかを制御するために、最大反復回数の閾値として使用され得る。
【0036】
いくつかの実施形態では、ステップサイズおよび/または反復回数は、学習プロセス(300)またはエンコーダ(110)に入力される画像ごとに予め固定された。例えば、ステップサイズおよび反復回数を含むハイパーパラメータのセットは、エンコーダ(110)に対応して予め定義または予め構成されていてもよい。例えば、エンコーダ(110)がより高い計算能力を有する場合反復回数のより高い値は配置され得て、結果として、より高い品質を有する代替画像が得られる。代替的に、ステップサイズおよび反復回数を含むハイパーパラメータのセットは、ビデオシーケンスに対応して予め定義または予め構成されていてもよい。例えば、ビデオシーケンスごとに、異なるビデオシーケンスの異なる統計的特徴に対応して、異なるスーパーパラメータの異なるセットは定義/構成されてもよい。
【0037】
いくつかの実施形態では、ステップサイズおよび/または反復回数は、各画像の統計的特徴に基づいて、学習プロセス(300)またはエンコーダ(110)に入力される画像ごとに調整されてもよい。例えば、非常にダイナミックなコンテンツを含む画像の場合、より少ないステップサイズは、不要な振動を避けて収束をスピードアップするために使用され得る。いくつかの実施形態では、学習プロセスで使用されるハイパーパラメータは、エンコーダ側からデコーダ側に信号で送信される。
【0038】
図3の例では、
図2の例と同じ要素(114、216、124、212および218)は、代替画像Xsをチューニングするために使用される。しかしながら、他の実施形態では、代替画像Xsをチューニングするために学習プロセス(300)において使用されるそれらの要素の一部または全部は、
図2または
図3の例のものと異なり得る。これらの変化の原因には、様々な要因が考えられる。
【0039】
例えば、それらの要素の異なる構成は、より速い学習プロセス、より低い計算コスト、より良いレート歪み結果、または他の利点に関してより良い性能を達成するのに有用であり得る。例えば、それらの要素は、レート歪み性能の同じレベルまたは許容可能なレベルを達成するために、しかし計算コストを低減するために簡略化され得る。代替的に、いくつかの実施形態では、それらの要素の変形は、特定のレベルのレート歪み性能を維持しながら、以前に訓練されたE2Eフレームワーク上で、特定のビデオコーディングパラメータを制御または操縦するためのツールを提供することができる。ビデオコーディングパラメータの例は、ターゲットビットレート、ターゲット歪み、画質メトリックなどを含み得る。
【0040】
一方、いくつかの実施形態では、レート歪みに基づく損失関数(例えば、式1および式2など)は、E2Eフレームワークを訓練するために使用され、または代替画像を検索するために使用され、代替画像に基づくE2Eビデオコーディングの他の実施形態では、他のタイプの損失関数は使用されてもよい。例えば、損失関数は、異なる最適化目標のために、ビットレート損失および歪み損失の以外の1つまたは複数の損失項を含んでもよい。代替的に、損失関数は、ビットレート損失および/または歪み損失に加えて、1つまたは複数の損失項を含んでもよい。
【0041】
いくつかの実施形態では、既存のE2E最適化されたコーディングシステム(例えば、
図1におけるフレームワーク(101))が与えられた場合、代替画像を決定するためのE2E訓練されたフレームワークは、既存のシステムに基づいて決定または導出され、その後、既存のシステムに追加され得る。このようにして、本明細書で開示された代替E2Eビデオコーディング技術は、既存のE2E最適化されたコーディングシステムと組み合わせることができる。
【0042】
図4は、本開示の一実施形態によるテストシステム(400)を示す。テストシステム(400)は、代替画像に基づくE2E最適化されたフレームワークのビデオコーディング性能を検証するために使用され得る。図示するように、システム(400)は、代替画像生成器(112)と、ANNエンコーダ(114)と、量子化器(116または216)と、ANNデコーダ(124)とを含み得る。代替画像生成器(112)は、学習プロセス(300)を実行するように構成され得る。ANNエンコーダ(114)およびANNデコーダ(124)には、学習されたパラメータPeおよびPdが配置され得る。量子化器(116)は、一実施形態において、一般的な均一量子化方法を取ることができる。量子化器(216)は、量子化器(116)の効果に近似している均一サンプラーであり得、それは、学習プロセス(300)において離散的な数を使用する勾配逆伝播の難さを回避する。
【0043】
テストの期間では、入力画像Xは、テストシステム(400)を介して供給され得る。入力画像Xに対応して、入力画像Xの代替画像Xsは学習され得る。続いて、変換された表現Y、圧縮された表現Y’、および再構成された表現X’は、前向き推論計算によって決定され得る。レート測度(例えば、BPP)および歪み測度(例えば、PSNRまたはSSIM)は、再構成された画像について計算され得る。この結果は、テストシステム(400)において要素(112)をスキップしながら要素(114、116または216、124)によって入力画像Xを供給することの結果と比較され得る。様々なデータセットにおける異なるサンプルは、テストシステム(400)上でテストを行うために使用され得る。
【0044】
通常、E2E最適化されたビデオコーディングフレームワーク(例えば、フレームワーク(101)および(201))には、2つ大きな問題がある可能性がある。第一に、ビットレート制御を実現することは困難である。例えば、E2E最適化されたフレームワークにおけるANNモデルは、ターゲットビットレートで訓練され得る。訓練後に、ANNモデルは、他のビットレートで画像を圧縮するために適用される場合、通常にはうまく機能することができない。第二に、ANNモデルは、例えばPSNRまたはSSIMなどのような、特定のタイプの歪みメトリックで定式化された歪み損失を最適化(連合)するか、または特定のタイプの歪みメトリックが与えられた特定レベルの歪みをターゲットとするように訓練され得る。訓練されたANNモデルは、他のタイプの歪みメトリックや他のレベルの歪みに対して、通常にはうまく機能することができない。
【0045】
これらの問題のため、異なるビットレート、異なるタイプの歪みメトリック、または特定の歪みメトリックの異なるレベルの歪みを有する入力画像を圧縮するための柔軟性を提供するために、ANNモデルの複数のインスタンスは、訓練、記憶、展開される必要がある。さらに、E2Eビデオコーディングシステムにおけるエンコーダ側とデコーダ側は、ビットレートや歪みメトリックの変更を実現するために、異なるANNエンコーダおよびデコーダの間に切り替える必要がある。さらに、これらの変化の制御精度は、ANNモデルインスタンスの数に依存する。上記のアプローチは、E2Eビデオコーディングシステムに対して過度に高価であるため実用されない。
【0046】
柔軟なビットレート制御または歪みメトリック/レベル制御は、ANに基づくビデオコーディングシステムにとって非常に望ましい特性である。例えば、使用可能なストレージおよび特定のアプリケーションシナリオに応じて、同じ入力画像を異なるターゲットビットレートで圧縮することが好ましい。本明細書で開示される代替E2Eビデオコーディング方法は、上記の問題を効果的に解決するためのメカニズムを提供する。
【0047】
図5は、レート損失と歪み損失との間のトレードオフ係数を調整することに基づく第1ビットレート制御メカニズム(500)を示す。例えば、ターゲットトレードオフパラメータλtargetは、代替画像学習プロセス(300)において使用されるレート歪み損失関数(式2)を調整するために、E2Eビデオコーディングシステム(100)における代替画像生成器(112)に提供され得る。調整されたレート歪み
損失関数は、以下のように示される。
[式3]
L(Ps)=R(Xs)+λ目標D(X,Xs’)
【0048】
ターゲットトレードオフパラメータλtargetは、ターゲットビットレート(これは実験的試験により知られる)に対応する。トレードオフパラメータλtargetを設定することにより、ターゲットビットレートは実現され得る。例えば、トレードオフパラメータλtargetをより高い値に設定することによって、より高いビットレートおよびより低い歪みが達成され得る。
【0049】
例えば、レート歪み損失関数(式3)によってガイドされた代替画像学習プロセス(300)では、代替画像Xsは、ターゲットトレードオフパラメータλtargetに対応するターゲットビットレート(コード化された後)を有するようにチューニングされ得る。次に、代替画像Xsは、E2Eビデオコーディングシステム(100)に入力され得て、このE2Eビデオコーディングシステムは、現在のターゲットビットレートとは異なるビットレートをターゲッティングするように予め訓練され得る。ターゲットビットレートに対応するビットストリーム(131)は取得され得る。これにより、ビットレート制御は、異なるANNモデルインスタンス間でE2Eフレームワーク(101)を切り替えることなく実現され得る。
【0050】
他の実施形態では、レート損失と歪み損失との加重和であるレート歪み損失は、(式2)または(式3)以外の他の形式を取り得る。したがって、λ以外のパラメータは、それぞれのレート損失とそれぞれの歪み損失との間のトレードオフを調整するために使用され得る。
【0051】
図6は、レート歪み損失関数におけるビットレート制約(ターゲットビットレート)を設定することに基づく第2ビットレート制御メカニズム(600)を示す。例えば、ターゲットビットレートRtargetは、代替画像学習プロセス(300)において使用されるレート歪み損失関数(式2)を変更するために、E2Eビデオコーディングシステム(100)における代替画像生成器(112)に提供され得る。変更されたレート歪み
損失関数は、以下のように示される。
[式4]
L(Ps)=ηL(R(Xs),R目標)+D(X,Xs’)
ここで、L(R(Xs),Rtarget)は、R(Xs)とRtargetとの間の差の損失を測定するものであり、ηは、異なる損失項L(R(Xs),Rtarget)とD(X,Xs’)の寄与をバランスさせるハイパーパラメータ(トレードオフパラメータ)である。一実施形態において、ηは、結果として生成されるビットレートができるだけターゲットビットレートRtargetに近づくことを確保するために、大きな値として設定され得る。
レート歪み損失関数(式4)によってガイドされた代替学習プロセス(300)の期間では、代替画像Xsは、コード化された後にターゲットビットレートを有するように決定され得る。次いで、代替画像Xsは、異なるANNモデルインスタンス間で切り替えることなくターゲットビットレートを実現するために、E2Eビデオコーディングシステム(100)によって処理され得る(現在のターゲットビットレートとは異なるビットレートをターゲッティングするように予め訓練され得る)。
【0052】
一実施形態では、R(Xs)とRtargetとの間の差を測定するための損失L(R(Xs),Rtarget)は、以下のように設定される。
[式5]
L(R(Xs),Rtarget)=max(R(Xs)-Rtarget,ε)
ここで、εは、ハイパーパラメータである。一実施形態は、εは、R(Xs)とRtargetとの間の差が、εによって指示された特定の範囲内にあることを確保するために、小さい値に設定され得る。
【0053】
図7は、予め訓練されたE2Eフレームワーク(101)を使用して画像を
コーディングするための歪みメトリックタイプを調整するためのメカニズム(700)を示す。例えば、E2Eビデオコーディングシステム(100)におけるE2Eフレームワーク(101)は、第1歪みメトリック(例えばPSNR)をターゲットとするように訓練され得る。これは、PSNRメトリックを使用することで以下に再現されるレート歪み損失関数における歪み損失D(X,X’)を定式化(formulate)することによって実現され得る。
[式1]
L(Pe,Pd,Pr)=R(X)+λD(X,X’)
【0054】
予め訓練されたE2Eフレームワーク(101)を使用することで、第1歪みメトリックとは異なる第2歪みメトリック(例えば、SSIM)をターゲッティングする画像をコーディングするために、この調整は、以下のように実行され得る。
【0055】
ターゲット歪みメトリック(SSIM)は、代替画像学習プロセス(300)において使用されるレート歪み損失関数(式2)における歪み損失D(X,Xs’)を定式化するために、E2Eビデオコーディングシステム(100)における代替画像生成器(112)に提供され得る。レート歪み損失関数(式2)は、以下に再現される。
[式2]
L(Ps)=R(Xs)+λD(X,Xs’)
【0056】
ターゲット歪みメトリックタイプで定式化された損失関数(式2)によってガイドされて、代替画像は決定され得る。代替画像をE2Eフレームワーク(101)に入力することは、再構成された画像X’を結果として得ることができ、この再構成された画像X’は、ANNモデルインスタンスを切り替えることなく、ターゲット歪みメトリックの期待されるレート歪み性能を満足する。
【0057】
図8は、予め訓練されたE2Eフレームワーク(101)を使用して画像を
コーディングするためのターゲット歪みレベルを調整するためのメカニズム(800)を示す。例えば、E2Eビデオコーディングシステム(100)におけるE2Eフレーム(101)は、レート歪み損失関数(式1)に基づいて所定の歪みメトリック(例えば、PSNR)をターゲットとするように訓練され得る。
【0058】
所定の歪みのための第2歪みレベルをターゲッティングする画像をコーディングするために、ターゲット歪みレベルDtargetは、代替画像学習プロセス(300)において使用されるレート歪み損失関数(式2)を変更するために、E2Eビデオコーディングシステム(100)における代替画像生成器(112)に提供され得る。変更されたレート歪み損失関数は、以下に示される。
[式6]
L(Ps)=R(Xs)+ηL(D(X,Xs’),Dtarget)
ここで、L(D(X,Xs’),Dtarget)は、D(X,Xs’)とDtargetとの差の損失を測定するものであり、ηは、異なる損失項R(Xs)とL(D(X,Xs’),Dtarget)の寄与をバランスさせるハイパーパラメータ(トレードオフパラメータ)である。一実施形態において、ηは、結果として生成される歪みレベルができるだけターゲット歪みレベルDtargetに近づくことを確保するために、大きな値として設定され得る。損失関数(式6)によってガイドされた代替学習プロセス(300)の期間では、代替画像Xsは、コード化された後にターゲット歪みレベルを有するように決定され得る。次いで、代替画像Xsは、異なるANNモデルのインスタンス間で切り替えることなくターゲット歪みレベルを実現するために、E2Eビデオコーディングシステム(100)によって処理され得る。
【0059】
一実施形態では、D(X,Xs’)とDtargetとの間の差を測定するための損失L(D(X,Xs’),Dtarget)は、以下のように設定される。
[式7]
L(D(X,Xs’),Dtarget)
=max(D(X,Xs’)-Dtarget,ε)
ここで、εは、ハイパーパラメータである。一実施形態では、εは、D(X,Xs’)とDtargetとの間の差が、εによって指示された特定の範囲内にあることを確保するために、小さい値に設定され得る。
【0060】
ビットレート制御および歪みメトリック/レベル制御メカニズムは、以上の説明において別々に説明されたが、以上のビットレート制御および歪みメトリック/レベル制御メカニズムのうちのいくつかが、ビットレートおよび歪みメトリックを一緒に調整するように、他の実施形態において組み合わせられる。例えば、トレードオフパラメータλの調整およびターゲット歪みメトリックタイプの変更は、損失関数(式2)を調整することによって一緒に実行され得る。ターゲットビットレートRtargetの調整とターゲット歪みメトリックタイプの変更は、損失関数(式2)を調整することによって一緒に実行され得る。
【0061】
さらに、本明細書で開示されたビットレートまたは歪みメトリック/レベル制御メカニズムは、上記のレート歪みに基づく損失関数の以外の形式を有する損失関数と組み合わせて使用され得る。例えば、ビットレート損失および/または歪み損失に加えて、1つまたは複数の項を含む損失関数の場合、ビットレートまたは歪みメトリック/レベル制御メカニズムは、依然として適用され得る。
【0062】
図9は、本開示の一実施形態による、代替画像に基づくE2Eビデオコーディング処理(900)を示す。プロセス(900)は、(S901)から開始し、(S910)に進むことができる。
【0063】
(S910)において、例えばビデオシーケンスから画像を受信することができる。上記の画像は、色の強さを示す要素(画素)を含んでもよい。
(S920)において、画像の代替表現を決定することができる。例えば、機械学習プロセス(最適化プロセスとも呼ばれる)は、画像の代替表現の要素の値をチューニングするために実行され得て、これにより、エンドツーエンド(E2E)最適化されたフレームワークに基づいて画像の代替表現をコーディングするレート歪み性能が最適化される。一例では、画像の代替表現の要素の値をチューニングするための機械学習プロセスは、画像の代替表現の要素の値に対する損失関数を最適化するために実行され得る。E2E最適化されたフレームワークの例は、
図3の例におけるE2E訓練されたフレームワーク(301)を含み得る。
【0064】
機械学習プロセスは、複数の反復を含み得る。機械学習プロセスの現在の反復の期間では、勾配降下は、画像の代替表現の要素の現在値を調整するために実行され得て、これにより、レート歪みに基づく損失関数が最小化される。その後、画像の代替表現の要素の調整された現在値は、機械学習プロセスの次の反復の入力として使用され得る。
【0065】
一例では、損失関数は、E2E最適化されたフレームワークに基づいて画像の代替表現をコーディングするためのビットレート測度と歪み測度との加重和を含む。損失関数の例は、式1~4および6によって示される損失関数を含む。一例では、歪み測度は、画像と、E2E最適化されたフレームワークに基づいてコード化されたときの画像の代替表現の再構成された画像との間の差を含む。
【0066】
(S930)において、画像の代替表現は、ビットストリームを生成するために
コーディングされ得る。例えば、
図1の例におけるエンコーダ(110)で、代替画像生成器(112)から生成された後に、画像の代替表現は、ANNエンコーダ(114)に入力され、またビットストリーム(131)に
コーディングされており、それが、続いて記憶媒体に記憶されるかまたはデコーダ(120)に送信され得る。その後、プロセス(900)は、(S999)に進み、(S999)で終了することができる。
【0067】
本明細書で開示された技術(例えば、様々な実施形態または例における機能、モジュール、要素、方法、プロセス、動作)は、処理回路(例えば、1つまたは複数のプロセッサ、あるいは、1つまたは複数の集積回路)によって実現され得る。いくつかの例では、この技術は、コンピュータ読み取り可能な命令を使用してコンピュータソフトウェアとして実現され、また1つまたは複数のコンピュータ読み取り可能な媒体に物理的に記憶され得る。
【0068】
コンピュータソフトウェアは、任意の適切なマシンコードまたはコンピュータ言語を使用してコーディングされることができ、アセンブリ、コンパイル、リンク、または同様のメカニズムを受けて命令を含むコードを作成することができ、命令は、1つ以上のコンピュータ中央処理ユニット(CPU)、グラフィック処理ユニット(GPU)などによって、直接的に実行されてもよく、またはコード解釈、マイクロコード実行などによって実行されてもよい。
【0069】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、オブジェクトネットワークデバイス(internet of things devices)などを含む、様々なタイプのコンピュータまたはそのコンポーネントで実行されてもよい。
【0070】
例えば、
図10は、開示された主題の特定の実施形態を実現するのに適したコンピュータシステム(1000)を示す。
図10に示されるコンピュータシステム(1000)のコンポーネントは、本質的に例示的なものであり、本開示の実施形態を実現するコンピュータソフトウェアの使用範囲または機能に関するいかなる制限も示唆することが意図されていない。コンポーネントの構成は、コンピュータシステム(1000)の例示的な実施形態に示されているコンポーネントのいずれかまたは組み合わせに関連する任意の依存性または要件を有すると解釈されるべきではない。
【0071】
コンピュータシステム(1000)は、いくつかのヒューマンインターフェース入力デバイスを含むことができる。このようなヒューマンインターフェース入力デバイスは、触覚入力(例えば、キーストローク、スワイプ、データグローブの動きなど)、オーディオ入力(例えば、音声、拍手など)、視覚入力(例えば、ジェスチャーなど)、嗅覚入力(図示せず)によって、1人以上のユーザによる入力に応答することができる。ヒューマンインターフェースデバイスはまた、例えばオーディオ(例えば、音声、音楽、環境音など)、画像(例えば、スキャンされた画像、静止画像カメラから得られた写真画像など)、ビデオ(例えば、2次元ビデオ、立体映像を含む3次元ビデオなど)などの、人間による意識的な入力に必ずしも直接関連されているとは限らない、特定のメディアを捕捉するために使用されることもできる。
【0072】
ヒューマンインターフェース入力デバイスは、キーボード(1001)、マウス(1002)、トラックパッド(1003)、タッチスクリーン(1010)、データグローブ(図示せず)、ジョイスティック(1005)、マイクロホン(1006)、スキャナ(1007)、カメラ(1008)(それぞれの1つだけが図示された)のうちの1つまたは複数を含むことができる。
【0073】
コンピューターシステム(1000)はまた、いくつかのヒューマンインターフェース出力デバイスを含むことができる。そのようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、および嗅覚/味覚によって、1人以上のユーザの感覚を刺激することができる。このようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(1010)、データグローブ(図示せず)またはジョイスティック(1005)による触覚フィードバックであるが、入力デバイスとして作用しない触覚フィードバックデバイスであってもよい)、オーディオ出力デバイス(例えば、スピーカ(1009)、ヘッドホン(図示せず))、視覚出力デバイス(例えば、CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むタッチスクリーン(1010)であり、各々は、タッチスクリーン入力機能を備えてもよく、あるいは備えていなくてもよいし、各々は、触覚フィードバック機能を備えてもよく、あるいは備えていなくてもよいし、これらのいくつかは、例えば、ステレオグラフィック出力、仮想現実メガネ(図示せず)、ホログラフィックディスプレイとスモークタンク(図示せず)、およびプリンタ(図示せず)などによって、2次元の視覚出力または3次元以上の視覚出力を出力することができる。
【0074】
コンピューターシステム(1000)は、CD/DVDを有するCD/DVD ROM/RW(1020)を含む光学媒体または類似の媒体(1021)、サムドライブ(1022)、リムーバブルハードドライブまたはソリッドステートドライブ(1023)、テープおよびフロッピーディスク(図示せず)などのようなレガシー磁気媒体、セキュリティドングル(図示せず)などのような特殊なROM/ASIC/PLDベースのデバイスなどのような、人間がアクセス可能な記憶デバイスおよびそれらに関連する媒体を含むことができる。
【0075】
当業者はまた、ここで開示されている主題に関連して使用される「コンピュータ読み取り可能な媒体」という用語は、伝送媒体、搬送波、または他の一時的な信号を包含しないことを理解すべきである。
【0076】
コンピューターシステム(1000)はまた、一つ以上の通信ネットワーク(1055)へのインターフェース(1054)を含むことができる。1つまたは複数のネットワーク(1055)は、例えば、無線、有線、光学的であってもよい。1つまたは複数のネットワーク(1055)はさらに、ローカルネットワーク、広域ネットワーク、大都市圏ネットワーク、車両用ネットワークおよび産業用ネットワーク、リアルタイムネットワーク、遅延耐性ネットワークなどであってもよい。1つまたは複数のネットワーク(1055)の例は、イーサネット(登録商標)、無線LAN、セルラーネットワーク(GSM(登録商標)、3G、4G、5G、LTEなど)などのLAN、テレビケーブルまたは無線広域デジタルネットワーク(有線テレビ、衛星テレビ、地上放送テレビを含む)、車両用および産業用ネットワーク(CANBusを含む)などを含む。いくつかのネットワークは、一般に、いくつかの汎用データポートまたは周辺バス(1049)(例えば、コンピュータシステム(1000)のUSBポート)に接続された外部ネットワークインターフェースアダプタが必要であり、他のシステムは、通常、以下に説明するようにシステムバスに接続することによって、コンピュータシステムシステム(1000)のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインターフェース、またはスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム(1000)は、他のエンティティと通信することができる。このような通信は、単方向の受信のみ(例えば、放送TV)、単方向の送信のみ(例えば、Canbusから特定のCanbusデバイスへ)、あるいは、双方向の、例えばローカルまたは広域デジタルネットワークを使用して他のコンピュータシステムへの通信であってもよい。上述のように、特定のプロトコルおよびプロトコルスタックは、それらのネットワークおよびネットワークインターフェースのそれぞれで使用されることができる。
【0077】
上記のヒューマンインターフェースデバイス、ヒューマンアクセス可能な記憶デバイス、およびネットワークインターフェースは、コンピューターシステム(1000)のコア(1040)に接続されることができる。
【0078】
コア(1040)は、1つ以上の中央処理ユニット(CPU)(1041)、グラフィック処理ユニット(GPU)(1042)、フィールドプログラマブルゲートアレイ(FPGA)(1043)の形式の専用プログラマブル処理ユニット、特定のタスクのためのハードウェア加速器(1044)、グラフィックアダプタ(1050)などを含むことができる。これらのデバイスは、リードオンリーメモリ(ROM)(1045)、ランダムアクセスメモリ(1046)、例えば内部の非ユーザアクセスハードディスクドライブ、SSDなどの内部大容量ストレージ(1047)などとともに、システムバス(1048)を介して接続されてもよい。いくつかのコンピュータシステムでは、付加的なCPU、GPUなどによって拡張を可能にするために、システムバス(1048)に1つ以上の物理的プラグの形でアクセスすることができる。周辺デバイスは、コアのシステムバス(1048)に直接的に接続されてもよく、または周辺バス(1049)を介して接続されてもよい。一例では、タッチスクリーン(1010)は、グラフィックスアダプタ(1050)に接続され得る。周辺バスのアーキテクチャは、外部コントローラインターフェース(PCI)、汎用シリアルバス(USB)などを含む。
【0079】
CPU(1041)、GPU(1042)、FPGA(1043)、および加速器(1044)は、いくつかの命令を実行することができ、これらの命令を組み合わせて上述のコンピュータコードを構成することができる。そのコンピュータコードは、ROM(1045)またはRAM(1046)に記憶されることができる。また、一時的なデータは、RAM(1046)に記憶されることができる一方、永久的なデータは、例えば内部大容量ストレージ(1047)に記憶されることができる。1つ以上のCPU(1041)、GPU(1042)、大容量ストレージ(1047)、ROM(1045)、RAM(1046)などと密接に関連することができる、キャッシュメモリを使用することにより、任意のメモリデバイスに対する高速記憶および検索が可能になる。
【0080】
コンピュータ読み取り可能な媒体は、様々なコンピュータ実行された動作を実行するためのコンピュータコードを有することができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構成されたものであってもよく、またはコンピュータソフトウェア分野の技術者によって知られ、利用可能な媒体およびコードであってもよい。
【0081】
限定ではなく例として、アーキテクチャ(1000)、特にコア(1040)を有するコンピュータシステムは、1つ以上の有形な、コンピュータ読み取り可能な媒体に具体化されたソフトウェアを実行する、(CPU、GPU、FPGA、加速器などを含む)プロセッサとして機能を提供することができる。このようなコンピュータ読み取り可能な媒体は、上記のユーザがアクセス可能な大容量ストレージに関連する媒体であり、コア内部大容量ストレージ(1047)またはROM(1045)などの、不揮発性コア(1040)を有する特定のストレージであってもよい。本開示の様々な実施形態を実現するソフトウェアは、そのようなデバイスに記憶され、コア(1040)によって実行されてもよい。コンピュータ読み取り可能な媒体は、特定のニーズに応じて、1つ以上のメモリデバイスまたはチップを含むことができる。このソフトウェアは、コア(1040)、具体的にはその中のプロセッサ(CPU、GPU、FPGAなどを含む)に、RAM(1046)に記憶されているデータ構造を定義することと、ソフトウェアによって定義されたプロセスに従ってこのようなデータ構造を変更することとを含む、本明細書に説明された特定のプロセスまたは特定のプロセスの特定の部分を実行させることができる。加えてまたは代替として、コンピュータシステムは、ロジックハードワイヤードされているか、または別の方法で回路(例えば、加速器(1044))に組み込まれているため、機能を提供することができ、この回路は、ソフトウェアの代わりに動作し、またはソフトウェアと一緒に動作して、本明細書に説明された特定のプロセスの特定のプロセスまたは特定の部分を実行することができる。適切な場合には、ソフトウェアへの参照はロジックを含むことができ、逆もまた然りである。適切な場合には、コンピュータ読み取り可能な媒体への参照は、実行されるソフトウェアを記憶する回路(集積回路(IC)など)を含み、実行されるロジックを具体化する回路、またはその両方を兼ね備えることができる。本開示は、ハードウェアおよびソフトウェアの任意の適切な組み合わせを包含する。
【0082】
本開示は、いくつかの例示的な実施形態について説明したが、本開示の範囲内にある変更、配置、および様々な均等置換が存在している。したがって、当業者は、本明細書では明確に示されていないかまたは説明されていないが、本開示の原則を具現しているので、本開示の精神および範囲内にある、様々なシステムおよび方法を設計することができる、ということを理解されたい。
【符号の説明】
【0083】
100 代替エンドツーエンド(E2E)ビデオコーディングシステム
101 E2Eフレームワーク
110 エンコーダ
112 代替画像生成器
114 ANNエンコーダ
116 量子化器
118 エントロピーエンコーダ
120 デコーダ
124 ANNデコーダ
128 エントロピーデコーダ
131 ビットストリーム
212 歪み損失生成器
216 量子化器
201 E2E訓練フレームワーク
218 レート損失推定器
300 機械学習プロセス
301 E2E訓練されたフレームワーク
400 テストシステム
500 第1ビットレート制御メカニズム
600 第2ビットレート制御メカニズム
700 歪みメトリックタイプを調整するためのメカニズム
800 ターゲット歪みレベルを調整するためのメカニズム
1000 コンピュータシステム
1001 キーボード
1002 マウス
1003 トラックパッド
1005 ジョイスティック
1006 マイクロホン
1007 スキャナ
1008 カメラ
1009 スピーカ
1010 視覚出力デバイス
1020 CD/DVDを有するCD/DVD ROM/RW
1021 光学媒体または類似の媒体
1022 サムドライブ
1023 リムーバブルハードドライブ
1040 コア
1041 中央処理ユニット(CPU)
1042 グラフィック処理ユニット(GPU)
1043 フィールドプログラマブルゲートアレイ(FPGA)
1044 ハードウェア加速器
1045 リードオンリーメモリ(ROM)
1046 ランダムアクセスメモリ
1047 内部大容量ストレージ
1048 システムバス
1049 周辺デバイス
1050 グラフィックアダプタ
1054 インターフェース
1055 1つまたは複数のネットワーク