JP2024521612A - 強化学習を通してレート制御ニューラルネットワークを訓練すること - Google Patents

強化学習を通してレート制御ニューラルネットワークを訓練すること Download PDF

Info

Publication number
JP2024521612A
JP2024521612A JP2023560140A JP2023560140A JP2024521612A JP 2024521612 A JP2024521612 A JP 2024521612A JP 2023560140 A JP2023560140 A JP 2023560140A JP 2023560140 A JP2023560140 A JP 2023560140A JP 2024521612 A JP2024521612 A JP 2024521612A
Authority
JP
Japan
Prior art keywords
neural network
video
training
rate control
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2023560140A
Other languages
English (en)
Other versions
JP7498377B2 (ja
Inventor
アントン・ジェルノフ
チェンジエ・グ
ダニエル・ジェイ・マンコヴィッツ
ジュリアン・シュリットウィーザー
アモル・バルキシャン・マンダーン
メアリー・エリザベス・ラウ
ミャオセン・ワン
トーマス・ケイスケ・ヒューバート
Original Assignee
ディープマインド テクノロジーズ リミテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ディープマインド テクノロジーズ リミテッド filed Critical ディープマインド テクノロジーズ リミテッド
Publication of JP2024521612A publication Critical patent/JP2024521612A/ja
Application granted granted Critical
Publication of JP7498377B2 publication Critical patent/JP7498377B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

Figure 2024521612000001
強化学習を通してレート制御ニューラルネットワークを訓練するためのシステムおよび方法。訓練中に、訓練例におけるビデオをエンコードする際のレート制御ニューラルネットワークの現在の性能および訓練例におけるビデオをエンコードする際のレート制御ニューラルネットワークの履歴性能から訓練例に対する報酬値が生成される。

Description

本明細書は、ニューラルネットワークを使用してビデオコーデックに対するレート制御を行うことに関する。
ニューラルネットワークは、非線形ユニットの1つまたは複数の層を利用して、受信した入力に対する出力を予測する機械学習モデルである。一部のニューラルネットワークは、出力層に加えて1つまたは複数の隠れ層を含む。各隠れ層の出力は、ネットワーク内の次の層、すなわち次の隠れ層または出力層への入力として使用される。ネットワークの各層は、それぞれの一組のパラメータの現在値に従って、受信した入力から出力を生成する。
J.Schrittwieser、I.Antonoglou、T.Hubert、K.Simonyan、L.Sifre、S.Schmitt、A.Guez、E.Lockhart、430 D.Hassabis、T.Graepel、T.P.LillicrapおよびD.Silver.Mastering Atari, Go, Chess and Shogi by Planning with a Learned Model.Nature、588(7839):604~609、2020 H.Mao、C.Gu、M.Wang、A.Chen、N.Lazic、N.Levine、D.Pang、R.Claus、M.Hechtman、C.-H.Chiang、C.ChenおよびJ.Han.Neural rate control for video encoding using imitation learning、2020、arXiv:2012.05339
本明細書は、ビデオがエンコードされた後にビデオを表現するために使用されるデータ量を制御するために使用されるニューラルネットワークを訓練する、1つまたは複数の場所における1つまたは複数のコンピュータ上にコンピュータプログラムとして実装されるシステムを記載する。
本明細書に記載される主題の特定の実施形態は、以下の利点の1つまたは複数を実現するように実装できる。
可変レートビデオエンコーダは、エンコードビデオのビットレートが目標ビットレートを超えることができないという制約を条件として、エンコードビデオの品質を最大化するように、すなわち元のビデオに対してエンコードビデオから生成される再構築の品質を最大化するように、ビデオをエンコードしようと試みる。
特に、従来の可変レートビデオエンコーダは、各ビデオフレームをエンコードするために何ビット費やすべきかを定めるためにフレームにレート制御を適用する。これらのビデオエンコーダの多くでは、レート制御は、重要な構成要素であり、かつ稠密に設計されており、すなわち複雑な手動で設計されたヒューリスティックを適用する。
しかしながら、レート制御は、異なるビデオフレームに対する決定の間の複雑な依存関係、およびビットレート制約が満たされるかどうかがビデオの終了時に、すなわちビデオ全体がエンコードされた後に明らかなだけであるという事実のため、難しい制約計画問題である。
本明細書は、強化学習を通してレート制御ニューラルネットワークを訓練し、そしてビデオをエンコードするときにレート制御ニューラルネットワークを使用してレート制御を行うための技術を記載する。
本明細書に記載されるように訓練されるレート制御ニューラルネットワークを使用して、(ビデオをエンコードする際にビデオコーデックによって使用するための量子化パラメータ値を提案することによって)レート制御を行うことによって、結果的なエンコードビデオは、手動で設計されたレート制御モジュールに依存する、または種々のレート制御ニューラルネットワークを使用する従来の手法に対して、より良好なエンコード効率を達成する。追加的に、記載されるレート制御ニューラルネットワークを使用することによって、結果的なエンコードビデオは、制約違反を最小限しかまたは全く有しない。言い換えれば、ビデオに対する目標ビットレートが与えられると、記載されるレート制御ニューラルネットワークを使用してエンコードされるビデオは、目標を超えないビットレートを有する一方で、他のレート制御技術を使用してエンコードされるビデオよりも、例えばピーク信号対雑音比(PSNR)または他の品質尺度によって測定されると、一般により高品質を達成するであろう。
より詳細には、本明細書は、所与の訓練例に対する現在の性能を先行する訓練反復にわたる所与の訓練例に対する履歴性能に比較することによってレート制御ニューラルネットワークの訓練に対する報酬値を生成することを記載する。訓練例は、エンコードされるべきビデオシーケンス例-「訓練シーケンス」または「訓練ビデオ」と称される、およびエンコード訓練シーケンスの目標データ尺度、例えば目標データサイズに対する値を備える。レート制御ネットワークは反復的に訓練され、そして現在の性能は、その現在の状態の(すなわち現在の訓練反復においてニューラルネットワークのパラメータの現在値が与えられる)レート制御ネットワークを使用して訓練ビデオをエンコードする性能である。そのため、報酬値は、その現在の状態のレート制御ニューラルネットワークによって訓練ビデオがいかに良好にエンコードされるかを、現在の反復の前の対応する反復においてレート制御ニューラルネットワークによってそれがいかに良好にエンコードされるかに比較して示す。このように報酬値を生成することは、訓練の最初からレート制御ニューラルネットワークに高品質学習信号を与えて、訓練プロセスの効率を大いに改善し、すなわちレート制御ニューラルネットワークを訓練するために必要とされる壁時計時間量および計算資源を削減する。対照的に、現在の性能を所与の訓練例に対するベースラインポリシーに比較して報酬値を計算する結果、最近初期化されたレート制御ニューラルネットワークがベースラインを超えるのはめったになく、したがってまれに訓練の始めに非ゼロ報酬を受けることがあるだけであり、必要とされる訓練反復数を潜在的に著しく拡大し、または訓練を収束させなくさえする。本明細書に記載されるように報酬値を計算することは、他方で、現在の性能が訓練の最初でさえ履歴性能をしばしば超えるであろうから、この障壁を取り除く。
一部の手法は、ラグランジュ緩和を通して制約付き強化学習目標を解決することによってレート制御設定に強化学習を適用しようと試みてよい。レート制御設定に適用されると、しかしながら、ラグランジュ緩和手法は、ペナルティ係数がビデオの内容に基づいて異なるビデオに対して異なることがあるので、正しく調整するのが困難になる。本明細書に記載される報酬計算体系を使用して強化学習を適用することは、他方で、そのようなハイパーパラメータを調整する必要があることを回避し、すなわち異なるビデオに対してペナルティ係数を決定する必要があることを回避する。
本明細書に記載される主題の1つまたは複数の実施形態の詳細が添付の図面および以下の説明に定められる。その主題の他の特徴、態様および利点は、その説明、図面および特許請求の範囲から明らかになるであろう。
ビデオエンコードシステム例を図示する。 訓練システム例を図示する。 レート制御ニューラルネットワークのアーキテクチャ例を図示する。 レート制御ニューラルネットワークを訓練するためのプロセス例のフロー図である。 記載される技術によって達成されるオーバーシュートのヒストグラムを図示する。 libvpx技術に対する記載される技術のBDレート差のヒストグラムを図示する。 表現ニューラルネットワークのより詳細なアーキテクチャ例を図示する。 動的ニューラルネットワークのより詳細なアーキテクチャ例を図示する。 ポリシーヘッドおよび一組の補助タスクヘッドのより詳細なアーキテクチャ例を図示する。
様々な図面における同様の参照番号および記号は同様の要素を示す。
図1は、ビデオエンコードシステム例100を図示する。ビデオエンコードシステム100は、下記されるシステム、部品および技術が実装される、1つまたは複数の場所における1つまたは複数のコンピュータ上にコンピュータプログラムとして実装されるシステムの一例である。
ビデオエンコードシステム100は、ビデオ、すなわちビデオフレームのシーケンスをエンコードして、ビデオのエンコード表現、すなわち元のビデオよりも伝送または記憶するために必要とするデータが少ない表現を生成するシステムである。ビデオは、例えば、実世界の少なくとも1つの部分を表す、少なくとも1つのビデオカメラによって取得されたビデオでよい。
より詳細には、システム100は、入力ビデオ、すなわちビデオフレーム102A~Nのシーケンスを受信し、そしてビデオコーデック150を使用して入力ビデオをエンコードして、入力ビデオのエンコード表現、すなわちエンコードビデオフレーム160A~160Nのシーケンスを生成する。
エンコード表現は、それぞれのデータ量を使用して入力ビデオにおける各フレームを表現する。所与のビデオフレームを表現するために必要とされるデータ量は、任意の適切な測定単位で、例えばビット数として測定できる。
ビデオコーデック150は、ビデオの元のデータ形式よりも必要とするデータが少ない圧縮データ形式でビデオを表現することによってビデオを圧縮する(そして、後に、解凍する)ソフトウェアである。
より詳細には、ビデオコーデック150は、異なるデータ量を使用して、例えば異なるビット数を使用してビデオの異なるフレームをエンコードする可変レートコーデックである。
特に、ビデオコーデック150は、順次ビデオフレームに対してエンコード決定をし、すなわち次々と順次ビデオにおけるビデオフレームをエンコードする。各ビデオフレームをエンコードするのに先立ち、ビデオコーデック150は、ビデオフレームに対して量子化パラメータ(QP)値を割り当てる。QP値は、一組の可能なQP値からの整数、例えば[0; 255]の範囲の整数である。
ビデオフレームのエンコードの間、ビデオコーデック150は、QP値を量子化ステップサイズに単調にマッピングし、これがエントロピー符号化のための予測残差をデジタル化するために使用される。QP値から量子化ステップサイズへのマッピングは予め決定されてよく、例えば、ステップサイズは、既定の比例パラメータでQPに反比例してよい。量子化ステップサイズが小さいほど、小さい量子化誤差に至るが、ビデオフレームをエンコードするために使用される高いデータ量、例えば高いビット数にも至る。量子化誤差が小さいほど、一般にビデオフレームが同じビデオコーデックを使用して後にデコードされるときに結果として小さい再構築誤差になる。
そのため、所与のビデオフレームに対して選択されるQP値は、ビデオフレームがビデオコーデック150によってエンコードされた後にビデオフレームを表現するために必要とされるデータ量もビデオフレームの再構築の品質も決定する。
ビデオがエンコードされることになると、それは、最初に、例えば全体として、ビデオエンコーダシステム100によって処理されて、フレームの各々に対して統計量を作成し、任意選択でフレームの1つまたは複数を「キーフレーム」として指定し、そして任意選択で、「代替基準フレーム」などの追加フレームを追加してよい。
特定の例として、ビデオエンコーダシステム100は、例えばビデオにおけるあらゆるフレームをブロック、例えば非重複16×16ブロックへ分割し、続いて予測残留誤差のブロックごとのフレーム内およびフレーム間予測および計算を行うことによって、まずフレームに対して統計量(「第1パス統計量」)を計算することによって、ビデオをエンコードできる。これらの第1パス統計量は、平均動き予測誤差、平均フレーム内予測誤差、平均動きベクトル振幅、ゼロ動きブロックのパーセンテージ、ノイズエネルギー等などの情報を含む。
ビデオエンコーダシステム100は、次いで第1パス統計量を使用して、ビデオ内のキーフレーム位置を決定する、すなわちビデオフレーム102A~Nのうちからキーフレーム位置として指定する。これのために、キーフレームを選ぶための公知の技術が使用されてよい。一部の公知のビデオエンコーダは、隠れ代替基準フレームも挿入する。キーフレームおよび代替基準フレームは、他のフレームをエンコードするための基準として使用されるので、それらのエンコード品質は、ビデオにおける他のフレームにも影響する。代替基準フレームは、それらのエンコードバージョンが典型的にエンコードビデオに含まれるが、エンコードビデオがデコードされて再生されるときには代替基準フレームが表示されないという意味で「隠されて」いる。ビデオエンコーダシステム100が代替基準フレームを生成する場合には、これらは、ビデオエンコーダシステム100がQP値を生成する一組のビデオフレームに追加されてよい。言い換えれば、図1に図示される一組の入力フレーム102A~Nは、これらの代替ビデオフレームを追加することによって補足される。
それらの決定がなされると、ビデオエンコーダシステム100は、順次ビデオフレーム102A~Nをエンコードし始める。レートコントローラは、品質を最大化しかつビットを削減するために各フレームに(もしあれば、各隠れ代替基準フレームにを含む)QPを特定することによってレートと歪みとの間のトレードオフを調整する。QPは、エントロピー符号化のための予測残差の周波数変換を量子化するために使用される量子化ステップサイズに単調にマッピングできる範囲[0, 255]の整数である。量子化ステップサイズが小さいほど、小さい量子化誤差であるが、フレームのための高いビット使用にも至る。そのため、上に示したように、量子化誤差が小さいほど、例えば平均二乗誤差(MSE)によって測定できる小さい再構築誤差を意味する。
ビデオコーデック150は、ビデオにおける各ビデオフレームに対するそれぞれのQP値を入力として受け入れ、そしてそれぞれのQP値に従ってビデオフレームをエンコードできる任意の適切な可変レートビデオコーデックであることができる。そのようなビデオコーデックの例には、VP9およびオープンソースバージョンlibvpxを含む。そのようなビデオコーデックの別の例がAV1ビデオコーデックである。
一般に、システム100は、ビデオ品質とエンコードビデオを表現するために必要とされるデータ量との間の所望のトレードオフを満たすようにビデオをエンコードする。特に、任意の所与のビデオをエンコードするとき、システム100は、エンコードに対する目標データ尺度104を入力として受信する。
目標データ尺度104は、入力ビデオのエンコード表現を表現するために必要とされるべきである目標データ量、例えば入力ビデオのエンコード表現を表現するために必要とすることができる最大データ量を表現する。目標データ尺度104は、任意の適切な測定単位を使用して表すことができる。例えば、目標データ尺度104は、エンコードビデオに対する目標ビットレートであることができる。エンコードビデオのビットレートは、全てのエンコードフレームのビットの合計割るビデオの持続時間に等しい。
システム100は、次いで目標データ尺度104を超えることなくエンコード表現の品質を最大化するようにビデオをエンコードしようと試みる。エンコード表現の品質は、元のビデオに対してエンコード表現から生成される再構築の品質を測定する適切な品質尺度によって測定できる。そのような品質尺度の1つの例がピーク信号対雑音比(PSNR)であり、ビデオ品質(別名、歪み)を測定しかつ全ての表示フレーム(いかなる隠れ代替基準フレームも除く)の平均二乗誤差の対数合計に比例している。所与のフレームの平均二乗誤差は、フレームの再構築とエンコード前の生フレームとの間の平均二乗誤差である。使用できる他の品質尺度には、SSIMおよびVMAFなどの他の歪みメトリックを含む。
目標データ尺度104によって課される制約を条件としてエンコード品質を最大化するために、システム100は、レート制御ニューラルネットワーク110を使用する。
レート制御ニューラルネットワーク110は、所与のビデオフレームのエンコードに先立ち、例えば、所与のフレームに対する一組の入力特徴、例えば入力特徴106A~106Nを入力として受信し、そして所与のフレームに対するそれぞれの一組のスコア、例えばそれぞれのスコア112A~112Nを出力として生成するニューラルネットワークである。入力特徴106A~106Nのための可能な選択肢は、図3を参照しつつ以下に述べられる。各組のスコアは、可能なQP値の各々に対するそれぞれのスコア、例えば範囲[0; 255]または可能なQP値の異なる範囲の各整数に対するそれぞれのスコアを含む。
一旦レート制御ニューラルネットワーク110が所与のビデオフレームに対する一組のスコアを生成すると、システム100は、例えば最高スコアのQP値を選択することによってまたは一組のスコアによって定義される分布からサンプリングすることによって、一組のスコアを使用してQP値を選択し、次いでビデオコーデック150を使用して、選択されたQP値に従ってビデオフレームをエンコードする。
レート制御ニューラルネットワーク110のためのアーキテクチャ例およびレート制御ニューラルネットワーク110によって処理される入力特徴についての更なる詳細は、図3を参照しつつ下記される。
そのため、システム100は、レート制御ニューラルネットワーク110を使用して、エンコードの間に、すなわち、従来のビデオエンコーダによって行われるように手動で設計されたヒューリスティックベースの手法を使用する代わりに、ニューラルネットワーク110によって生成されるスコアを使用して各ビデオフレームに対してQP値を選択することによって、レート制御を行う。
QP値を選択するために、すなわち、品質とデータ効率との間の所望のトレードオフが結果として達成されるQP値を選択するためにレート制御ニューラルネットワーク110が効果的に使用されるのを可能にするために、訓練システム200が、レート制御ニューラルネットワーク110がシステム100によって使用される前に強化学習を通してレート制御ニューラルネットワーク110を訓練する。
レート制御ニューラルネットワーク110を訓練することは、図2~図4を参照しつつ下記されることになる。
一旦入力ビデオがエンコードされると、システム100は、各種の目的のいずれでもエンコード表現を使用できる。
1つの例として、システム100は、後の再構築および再生のためにエンコード表現を記憶でき、それによってビデオを記憶するために必要とされるメモリ量を削減する。
別の例として、システム100は、デコードおよび再生のためにエンコード表現をデータ通信ネットワーク、例えばインターネットを通じて別のシステムに伝送でき、それによってデータ通信ネットワークを通じて伝送される必要があるデータ量を削減する。
いずれの例でも、デコードシステムを、同じ一組の1つもしくは複数のコンピュータ上にまたはシステム100と異なる一組の1つもしくは複数のコンピュータ上に実装でき、例えばメモリからまたはデータ通信ネットワークを通じたエンコード表現の受領に応じて、後にエンコード表現にアクセスし、そしてビデオコーデック150の別のインスタンスを使用してビデオの再構築を生成できる。デコードシステムは、次いでユーザに再生のためにビデオの再構築を提供できる。
図2は、訓練システム例200を図示する。訓練システム200は、下記されるシステム、部品および技術が実装される、1つまたは複数の場所における1つまたは複数のコンピュータ上にコンピュータプログラムとして実装されるシステムの一例である。
上記したように、訓練システム200は、ビデオを効果的にエンコードするためにレート制御ニューラルネットワーク110を使用できるように、すなわちレート制御ニューラルネットワーク110を使用してエンコードされるビデオがデータ効率とビデオ品質との間の所望のトレードオフを達成するように、レート制御ニューラルネットワーク110を訓練する。
より詳細には、訓練システム200は、エンコードビデオを表現するために必要とされるデータ量が所与のビデオに対する目標データ尺度を超えないという制約を条件としてエンコードビデオの品質を最大化するように所与のビデオをエンコードするためにレート制御ニューラルネットワーク110を使用できるように、レート制御ニューラルネットワーク110を訓練できる。
特に、訓練システム200は、レート制御ニューラルネットワーク110のパラメータの値202を繰り返し更新することによって訓練データ210上でレート制御ニューラルネットワーク110を訓練する。
訓練データ210は、複数の訓練例220を含む。
各訓練例220は、訓練ビデオ222、すなわちビデオフレームのシーケンス、および訓練ビデオ220に対する目標データ尺度224を含む。目標データ尺度224は、訓練ビデオ222をエンコードすることによって生成されるエンコードビデオを表現するために必要とされるべきである最大データ量を表現する。例えば、目標データ尺度224は、訓練ビデオ222のエンコード表現に対する目標ビットレートであることができる。
訓練システム200は、各訓練例220に対して、訓練中の任意の所与の時点において、目標データ尺度224を条件として訓練ビデオ222を効果的にエンコードする際のレート制御ニューラルネットワーク110の性能を測定する、すなわちレート制御ニューラルネットワーク110を使用して生成された訓練ビデオ222のエンコード表現の品質も目標データ尺度224に対してエンコード表現を表現するために必要とされるデータ量も測定する、それぞれの履歴性能データ230も維持する。
レート制御ニューラルネットワーク110を訓練するために、訓練システム200は、訓練データ210から、例えばランダムにまたは優先サンプリングスキームに従って訓練例220を繰り返しサンプリングし、そしてサンプリングされた訓練例220を使用してパラメータ値202を更新する。
より詳細には、一旦訓練例220がサンプリングされると、訓練システム210は、訓練ビデオ222および目標データ尺度224を使用して訓練ビデオ222のエンコード表現、すなわちエンコード訓練ビデオ240を生成する。
一部の実装例において、システム200は、レート制御ニューラルネットワーク110によって生成されるスコアの組を直接使用して、訓練ビデオをエンコードするためのビデオコーデックに提供されるQP値を選択する、すなわち図1を参照しつつ上記したようにニューラルネットワーク110を使用してビデオをエンコードする。
一部の他の実装例では、システム200は、訓練ビデオをエンコードするためのビデオコーデックに提供されるQP値を選択するためにレート制御ニューラルネットワーク110を使用して先読み検索を行う。訓練中に先読み検索を行うことは、図3および図4を参照しつつ下記される。
一旦エンコード訓練ビデオ240が生成されると、訓練システム200は、訓練例220に対する現在の性能データ250を決定し、次いで現在の性能データ250および履歴性能データ230から訓練例220に対する報酬値260を決定する。
現在の性能データ250は、エンコード訓練ビデオ240の品質およびエンコード訓練ビデオ240を表現するために必要とされるデータ量を測定する。
そのため、報酬値260は、ニューラルネットワーク110が前に訓練中に訓練例220をエンコードする際にどのように機能したかに対してニューラルネットワーク110が現在のエンコード訓練ビデオ240を生成する際にいかに良好に機能したかを測定する。
性能および報酬値260を決定することは、図4を参照しつつ以下により詳細に記載される。
システム200は、次いで報酬値260を使用して強化学習を通してパラメータに対する更新270を決定できる。
特に、システムは、結果として期待報酬値を最大化するエンコードビデオになる出力を生成するようにレート制御ニューラルネットワーク110を促す任意の適切な強化学習技術を使用して更新を決定できる。
1つの例として、システムは、方策勾配技術、例えばREINFORCE、または近傍方策最適化(PPO)技術を使用して更新270を決定できる。
別の例として、システムが訓練中に先読み検索を行う場合、システムは、MuZero技術を使用して更新270を決定できる。
一般に、しかしながら、システムは、強化学習技術のための目的関数のレート制御ニューラルネットワーク110のパラメータに関して勾配を計算することによって更新270を決定する。
システムは、現在の品質および現在のデータ尺度を使用して訓練例220に対する履歴性能データ230も更新する。例えば、履歴性能データは、例えば範囲0~1の平滑化因数(または補間重み)αによって特徴付けられる、一連の反復に対する品質およびデータ尺度のそれぞれの指数移動平均(EMA)でよい。
図3は、レート制御ニューラルネットワーク110のアーキテクチャ例を図示する。すなわち、図3は、ビデオをエンコードするためにシステム、例えば図1のビデオエンコードシステム100または図2の訓練システム200によって使用できるニューラルネットワークのアーキテクチャ例を図示する。
特に、図3に図示されるように、レート制御ニューラルネットワーク110は、現在のビデオからの現在のビデオフレームに対する一組の入力特徴302を受信し、そして入力特徴302を処理して特徴表現312を生成する表現ニューラルネットワーク310を含む。
一組の入力特徴302は、一般に現在のビデオにおけるフレームの各々に対するそれぞれの一組のフレーム特徴を含む。
より詳細には、フレーム特徴は、現在のビデオにおける対応するフレームの各々に対する第1パス特徴および既にエンコードされたフレームの第2パス特徴を含む。第1パス特徴は、図1を参照しつつ上記したように、ビデオエンコーダによって生成される第1パス統計量の一部または全てを備えることができる。そのため、現在のフレームに対するフレーム特徴は、現在のフレームに対する平均動き予測誤差、平均フレーム内予測誤差、平均動きベクトル振幅、ゼロ動きブロックのパーセンテージ、ノイズエネルギー等の任意の1つまたは複数を含んでよい。
特に、各既にエンコードされたフレームに対する第2パス特徴は、エンコードフレームに対するデータ尺度、エンコードフレームに対して選択される量子化パラメータ値、エンコードフレームに対する品質尺度、フレーム型、例えば表示フレームまたは代替基準フレーム、等のいずれかを含むことができる。
既にエンコードされたフレームに対してそれぞれのフレーム特徴を生成するために、システムは、フレームに対する第1パス特徴およびフレームに対する第2パス特徴を連結できる。
まだエンコードされていないフレームに対してそれぞれのフレーム特徴を生成するために、システムは、フレームに対する第1パス特徴および所定のデフォルトの一組の第2パス特徴、例えば全てゼロまたは或る他の所定の数である一組の特徴を連結できる。
一組の入力特徴302は、現在のビデオ、現在のフレームまたは両方を特徴付けるメタデータ特徴も含むことができる。メタデータ特徴の例には、現在のフレーム型(例えば現在のフレームがキーフレーム、代替基準フレーム、またはキーフレームでも代替基準フレームでもないフレームであろうかなかろうと)、現在のフレームインデックス(すなわちビデオ内の位置)、ビデオにおけるフレームの総数、およびビデオに対する目標データ尺度を含むことができる。
表現ニューラルネットワーク310は、表現ニューラルネットワーク310が入力特徴302を特徴表現312にマッピングするのを可能にする任意の適切なアーキテクチャを有することができ、かつ任意の適切な構成に配置される任意の適切な数のニューラルネットワーク層、例えば畳込み層、全結合層、正規化層等を含むことができる。
特定の例として、表現ニューラルネットワーク310は、自己注意を各々適用する1つもしくは複数の自己注意ブロックまたはマルチヘッド自己注意機構を含むTransformerニューラルネットワークを使用してそれぞれのフレーム特徴を処理して、フレーム特徴の表現を生成できる。一部の場合には、表現ニューラルネットワーク310は、多層パーセプトロン(MLP)を使用してメタデータ特徴を処理して、メタデータ特徴の表現を生成できる。表現ニューラルネットワーク310は、次いでフレーム特徴の表現およびメタデータ特徴の表現を組み合わせ、例えば連結または平均して、特徴表現312を生成できる。一部の他の場合には、表現ニューラルネットワーク310は、メタデータ特徴をフレーム特徴の表現と直接連結し、そして連結を使用して特徴表現312を生成できる。例えば、ニューラルネットワーク310は、多層パーセプトロン(MLP)を通して連結を処理し、次いで1つまたは複数の畳込み層ブロック、例えばResNetまたはResNet-V2ブロックによってMLPの出力を処理して、特徴表現312を生成できる。
特徴表現312は、一組の入力特徴302の数値表現である。特に、特徴表現は、数値の順序付けられた集合、例えば浮動小数点値または他の数値のベクトルである。
レート制御ニューラルネットワーク110は、特徴表現310を処理して、量子化パラメータの各可能な値に対するそれぞれのスコアを含む一組のスコア322を生成するポリシーニューラルネットワークヘッド320も含む。
本明細書で使用される「ニューラルネットワークヘッド」は、1つまたは複数のニューラルネットワーク層の集合である。
特定の例として、ポリシーヘッド320は、非線形活性化関数層、例えば、正規化線形ユニット(ReLU)層、正規化層、例えばバッチ正規化層もしくはレイヤ正規化層、または両方によって分離される一連の線形ニューラルネットワーク層を含むことができる。
訓練後に、システムは、スコア322を使用して、現在のビデオフレームをエンコードするためにビデオコーデックによって使用される量子化パラメータの値を選択できる。すなわち、訓練後に、レート制御ニューラルネットワーク110は、表現ニューラルネットワーク310およびポリシーヘッド320だけを含む。
一部の実装例において、訓練中に、システムは、訓練プロセスの効果を改善するために1つまたは複数の追加部品も使用する。
特に、上記したように、一部の実装例において、システムは、ビデオをエンコードするために使用されるQP値をより効果的に選択するために訓練中に先読み検索を行う。
これらの実装例において、システムは、動的ニューラルネットワーク390を使用して先読み検索を行うことができる。
動的ニューラルネットワーク390は、特徴表現312およびQP値388を入力として受信するように、そして特徴表現312によって表現される現在のビデオフレームをエンコードするためにQP値388が使用されれば次のビデオフレームに対して表現ニューラルネットワーク310によって生成されるであろう予測特徴表現392を出力として生成するように構成される。
動的ニューラルネットワーク390は、ニューラルネットワークが特徴表現およびQP値を予測特徴表現にマッピングするのを可能にする任意の適切なアーキテクチャを有することができる。例えば、動的ニューラルネットワーク390は、多層パーセプトロン(MLP)であることができる。別の例として、動的ニューラルネットワーク390は、一連の線形層を通してQP値388を処理し、次いで結果的な表現を要素ごとに特徴表現312に追加できる。動的ニューラルネットワーク390は、次いで1つまたは複数の畳込み層ブロック、例えばResNetまたはResNet-V2ブロックによって要素ごとの追加の出力を処理して、予測特徴表現392を生成できる。
先読み検索を行うために訓練中に動的ニューラルネットワーク390が使用される場合、システムは、レート制御ニューラルネットワーク110と共同でニューラルネットワーク390を訓練する。
動的ニューラルネットワーク390を使用して先読み検索を行うこと、およびニューラルネットワーク390を訓練することは、図4を参照しつつ下記される。
一部の場合には、レート制御ニューラルネットワーク110を訓練するために使用されている強化学習技術は、ビデオフレームのエンコードプロセスの現在の状態の価値を、すなわち期待される将来の報酬の観点から、表現する各ビデオフレームに対する価値予測を必要としてよい。これらの場合には、システムは、特徴表現312を処理して、エンコードプロセスの現在の状態の価値の評価を表現する価値評価332を生成する価値ニューラルネットワークヘッド330を使用する。一部の場合には、価値ニューラルネットワークヘッド330は、単一の価値評価を直接出力するMLPであることができる。一部の他の場合には、価値ニューラルネットワークヘッド330は、価値評価の分布の近似を生成する黙示的分位ネットワーク(IQN)層が続くMLPを含むことができる。
追加的に、一部の実装例において、システムは、強化学習を通して主タスクに関するニューラルネットワーク110の訓練と共同で1つまたは複数の補助タスクに関してもレート制御ニューラルネットワーク110を訓練する。
各補助タスクは、対応する補助ニューラルネットワークヘッドを通して特徴表現312を処理して補助タスクに対する出力を生成することを要する。
補助タスクの1つの例は、ビデオにおける各フレームをエンコードするときに(例えば、エンコードビデオフレームから得られるデコードビデオフレームと元のビデオフレームとの間の差の尺度などの、既定の品質判定基準に従って)エンコードビデオの総合品質を予測することを必要とする総合品質予測タスクである。総合品質予測タスクが訓練の一部として含まれる場合、システムは、特徴表現312を処理して、エンコードビデオの総合品質の予測である総合品質評価342を生成するように構成される総合品質ニューラルネットワークヘッド340を使用する。一部の場合には、ヘッド340は、単一の品質評価を直接出力するMLPであることができる。一部の他の場合には、ヘッド340は、品質評価の分布の近似を、例えば分布の分位点を特定する出力を生成することによって、生成するMLPであることができる。
補助タスクの別の例は、エンコードビデオを表現するために必要とされる総データ量、例えばエンコード表現の総ビットレートを予測することを必要とする総合データ予測タスクである。総合データ予測タスクが訓練の一部として含まれる場合、システムは、特徴表現312を処理して、エンコードビデオを表現するために必要とされる総データ、例えばエンコード表現のビットレートの予測である総合データ評価352を生成するように構成される総合データニューラルネットワークヘッド350を使用する。一部の場合には、ヘッド350は、単一のデータ評価を直接出力するMLPであることができる。一部の他の場合には、ヘッド350は、データ評価の分布の近似を、例えば分布の分位点を特定する出力を生成することによって、生成するMLPであることができる。
補助タスクの別の例は、前にエンコードされたフレーム、すなわち現在のフレームの直前にエンコードされたフレームの品質を予測することを必要とする前品質予測タスクである。前フレーム品質予測タスクが訓練の一部として含まれる場合、システムは、特徴表現312を処理して、前にエンコードされたフレームの品質の予測である前フレーム品質評価362を生成するように構成される前フレーム品質ニューラルネットワークヘッド360を使用する。一部の場合には、ヘッド360は、単一の品質評価を直接出力するMLPであることができる。一部の他の場合には、ヘッド360は、品質評価の分布の近似を、例えば分布の分位点を特定する出力を生成することによって、生成するMLPであることができる。
補助タスクの別の例は、前にエンコードされたフレームを表現するために必要とされるデータ量、例えば前にエンコードされたフレームを表現するために必要とされるビット数またはビット数の対数を予測することを必要とする前データ予測タスクである。前データ予測タスクが訓練の一部として含まれる場合、システムは、特徴表現312を処理して、前にエンコードされたフレームを表現するために必要とされるデータ量の予測である前データ評価を生成するように構成される前データニューラルネットワークヘッド(図3に図示せず)を使用する。一部の場合には、ヘッドは、単一のデータ評価を直接出力するMLPであることができる。一部の他の場合には、ヘッドは、データ評価の分布の近似を、例えば分布の分位点を特定する出力を生成することによって、生成するMLPであることができる。
ニューラルネットワーク110の訓練中に使用される各補助タスクに関して、目的関数は、タスクに対する予測出力とタスクに対するグラウンドトゥルース出力との間の誤差を測定する補助タスクに対するそれぞれの項を含む。例えば、タスクに対する予測出力が単一値である場合、項は平均二乗誤差またはL2誤差項であることができる。タスクに対する予測出力が可能な値の分布を近似するとき、項は、分布誤差項、例えばIQN損失項または分位点回帰損失項であることができる。
各補助タスクが入力として特徴表現312をとるので、これらの項の勾配は、対応する補助ヘッドのパラメータを、および逆伝搬を通じて表現ニューラルネットワーク310のパラメータも更新するために使用できる。すなわち、所与の補助項の勾配が、対応する補助ヘッドを通して表現ニューラルネットワーク310へ逆伝搬されて、表現ニューラルネットワーク310のパラメータの値を更新できる。
図4は、レート制御ニューラルネットワークを訓練するためのプロセス例400のフロー図である。便宜上、プロセス400は、1つまたは複数の場所に位置する1つまたは複数のコンピュータのシステムによって行われると記載されることになる。例えば、適切にプログラムされた訓練システム、例えば図2の訓練システム200がプロセス400を行うことができる。
システムは、レート制御ニューラルネットワークのパラメータを繰り返し更新するために一組の訓練データからサンプリングされる訓練例に対してプロセス400を繰り返し行うことができる。
システムは、訓練ビデオ、すなわちビデオフレームのシーケンス、および訓練ビデオに対する目標データ尺度を含む訓練例を得る(ステップ402)。
システムは、訓練における現在の時点の、すなわちプロセス400の現在の反復の訓練ビデオをエンコードする際のレート制御ニューラルネットワークの効果を測定する訓練ビデオに対する履歴性能データも得る。
一般に、履歴性能は、(i)品質尺度、例えばPSNR、SSIM、VMAFまたはCoinVQによる履歴品質および(ii)目標データ尺度に対する履歴データ効率を測定する。
特定の例として、履歴性能データは、(i)訓練例に対して前に計算された品質尺度の指数移動平均および(ii)訓練例に対して前に計算されたデータ尺度のオーバーシュートの指数移動平均を含むことができる。特定のエンコードランに対するオーバーシュートは、エンコードランのためのデータ尺度と目標データ尺度との間の差である。
システムが訓練例をまだ訓練のために使用していなければ、一部の実装例において、システムは、訓練例に対する移動平均を所定のデフォルト値に初期化できる。例えば、システムは、品質尺度の指数移動平均を所定の正整数に設定する一方で、オーバーシュートの指数移動平均をゼロに設定できる。一部の他の実装例では、システムは、訓練ビデオ-目標データ尺度ペアまたは訓練ビデオ特徴-目標データ尺度ペアを処理して各ペアに対する予測ベースライン品質尺度およびベースラインオーバーシュート尺度を生成するように訓練されたニューラルネットワークを使用して訓練ビデオ(または訓練ビデオの特徴)および目標データ尺度を特定するデータを処理することによって初期移動平均を生成できる。システムは、次いでEMAをニューラルネットワークによって生成される対応するベースライン尺度に等しいように初期化できる。
システムは、レート制御ニューラルネットワークを使用してかつレート制御ニューラルネットワークのパラメータの現在値に従って訓練ビデオからエンコードビデオを生成する(ステップ404)。
特に、訓練ビデオにおける各ビデオフレームに対して、システムは、可能な量子化パラメータ値の各々に対するそれぞれのポリシースコアを含むポリシー出力を生成し、ポリシー出力を使用して量子化パラメータ値を選択し、次いでビデオコーデックを使用して量子化パラメータ値に従ってビデオフレームをエンコードする。例えば、システムは、最高ポリシースコアを有する量子化パラメータ値を選択でき、または訓練ビデオに対するそれぞれのポリシースコアによって定義される分布から量子化パラメータ値をサンプリングできる。
一部の実装例において、所与のフレームに対して、システムは、上記したようにレート制御ニューラルネットワークを使用して所与のビデオフレームに対する一組の特徴を処理して、それぞれの一組のスコアを生成し、次いでポリシースコアとしてレート制御ニューラルネットワークによって生成されるスコアを使用し、すなわちレート制御ニューラルネットワークの出力から直接に所与のビデオフレームに対して使用されるように量子化パラメータ値を選択する。
一部の他の実装例では、システムは、レート制御ニューラルネットワークによって導かれるかつ動的ニューラルネットワークを使用して先読み検索を行ってポリシー出力を生成する。
先読み検索を行うときに、システムは、現在のフレームのエンコードプロセスの現在の状態を表すルートノードを有するエンコードプロセスの状態を表現する木を初期化する。エンコードプロセスの「状態」は、状態に対する現在のフレームの前の全てのフレームがエンコードされており、システムが現在のフレームに対してQP値を決定する必要がある、エンコードプロセスにおける点に相当する。
システムは、次いで複数の計画反復を行ってポリシー出力を生成する。各計画反復は、一般に、先読み検索、例えばモンテカルロ木検索を行って、繰り返し(すなわち、各計画反復の複数の計画ステップの各々において)状態木における対応するノード-エッジペアに対して収集された統計量に従ってそれぞれのQP値を選択することを要する。これは、システムが現在の特徴表現によって特徴付けられる現在の状態から始まるエンコードプロセスの可能な将来の状態を横断するのを可能にする。
より詳細には、各計画反復において、システムは、状態木のルートノードから始まる先読み検索を開始し、そして状態木内のリーフノードによって表される可能な将来の状態が識別されるまで、動的ニューラルネットワーク390および木内のノードに対して収集された統計量を使用して先読み検索を継続する。システムは、次いでポリシーヘッド320、価値ヘッド330または両方を使用してリーフノードを展開し、そして木内のノードに対して収集された統計量を更新する。
最後の計画反復後に、システムは、木のルートノードに対する収集された統計量からポリシー出力を生成する。
木検索を行うことは、「MuZero」技術と称され、J.Schrittwieser、I.Antonoglou、T.Hubert、K.Simonyan、L.Sifre、S.Schmitt、A.Guez、E.Lockhart、430 D.Hassabis、T.Graepel、T.P.LillicrapおよびD.Silver.Mastering Atari, Go, Chess and Shogi by Planning with a Learned Model.Nature、588(7839):604~609、2020に更に詳細に記載されており、その内容全体が完全に本明細書に組み込まれる。
システムは、エンコードビデオに対して、品質尺度、例えばPSNRまたは他の適切な品質尺度、およびデータ尺度、例えばビットレートまたは他の適切なデータ尺度を計算する(ステップ406)。
システムは、エンコードビデオに対する現在の性能データを、すなわちデータ尺度および現在のオーバーシュート、すなわち現在のデータ尺度と目標データ尺度との間の差によって表現されるように決定する(ステップ408)。
システムは、次いで履歴データおよび現在の性能データから訓練例に対する報酬値を決定する(ステップ410)。
システムは、各種の仕方のいずれかで報酬値を計算できる。
1つの例として、現在のオーバーシュートか指数移動平均(EMA)オーバーシュートかがゼロよりも大きい場合、システムは、現在のオーバーシュートがEMAオーバーシュート以下であれば報酬値を正値、例えば1に設定し、そうでなければ、報酬値を負値、例えば-1に設定できる。現在のオーバーシュートもEMAオーバーシュートも0よりも大きくない場合、システムは、現在の品質尺度がEMA品質尺度と同じまたはよりよければ報酬を正値に等しく設定し、そうでなければ、報酬値を負値に設定できる。
別の例として、システムは、現在の品質尺度を品質尺度引くラムダおよびオーバーシュートの積に等しい用語(「現在の性能尺度」)と置き換え、ここでラムダは正値、例えば.005、または.01よりも小さい別の値であり、かつEMA品質尺度をEMA品質尺度引くラムダおよびEMAオーバーシュートの積に等しい用語(「履歴性能尺度」)と置き換えることによって、上の比較を修正できる。
更に別の例として、システムは、現在の性能尺度が第1の閾値量を超えるだけ履歴性能尺度よりも大きければ報酬値を正値、例えば1に設定でき、現在の性能尺度が第1の閾値量を超えるだけ履歴性能尺度よりも小さければ報酬値を負値、例えばマイナス1に設定できる。
これらの場合の一部において、現在の性能尺度が第1の閾値量以下だけ履歴性能尺度よりも大きいまたは小さければ、システムは、報酬値をゼロに設定する。
上の場合の他において、現在の性能尺度が第1の閾値量以下だけ履歴性能尺度よりも大きいまたは小さければ、システムは、現在のオーバーシュートおよびEMAオーバーシュートを使用して報酬を決定する。
特に、システムは、EMAオーバーシュートが第2の閾値量を超えるだけ現在のオーバーシュートを超えれば報酬値を正値に設定し、現在のオーバーシュートが第2の閾値量を超えるだけ現在のオーバーシュートよりも小さければ報酬値を負値に設定し、さもなければ報酬をゼロに設定できる。第1および第2の値は、例えば、システムに入力として提供されるまたは従来のハイパーパラメータ検索技術を使用してハイパーパラメータスイープを通じて決定できる。
システムは、エンコードビデオに対する品質尺度および現在のオーバーシュートを使用して履歴性能データも更新する。例えば、システムは、それぞれの指数移動平均を更新して、現在の品質尺度およびデータ尺度を、すなわち補間重み、例えば.9、.95または.85に従って履歴量と対応する現在量との間を補間することによって、組み込むことができる。
システムは、例えば強化学習技術に対応する1つまたは複数の項および、任意選択で、上記した補助タスクの各々に対応するそれぞれの項を含む目的関数の勾配を計算することによって、報酬値を使用してレート制御ニューラルネットワークのモデルパラメータ値への更新を決定する(ステップ412)。
上記したように、結果としてより高報酬値になるQP決定を生成するようにレート制御ニューラルネットワークを促すために任意の適切な強化学習アルゴリズムおよび対応する目的関数を使用できる。
例えば、上記したMuZero訓練スキームが使用される場合、訓練におけるあらゆるステップで、システムは、一定数の最近のビデオをエンコードした結果を記憶する経験再生バッファから状態のバッチ、すなわち対応するフレームがエンコードされている状態のバッチを一様にサンプリングできる。各状態に対して、システムは、特定数、例えば5つの以降の行為、すなわち特定数の以降のQP決定、ならびに必要なラベル(対応する報酬、先読み検索の結果および、使用される場合、対応するグラウンドトゥルース補助タスク出力)もサンプリングできる。システムは、次いで表現ネットワークを使用して状態の埋込みを生成し、そして動的ネットワークは、以降の埋込みを生成するために5回広げられる。ポリシー、価値および補助ネットワークヘッドは、次いで現在および以降の状態に対するポリシー、価値および補助メトリックに対する予測を出力する。以降の行為の一定数が5であり、かつ価値および補助ヘッドが各々分布を近似する出力を生成する場合、使用できる目的関数の1つの例は、各サンプリング状態に対して:
を満たすことができ、式中aは正定数、例えば6であり、bは別の正定数、例えば.5であり、cは別の正定数、例えば.1であり、tは、t=0、サンプリング状態からt=5、最後の以降の状態の範囲であり、
は、(i)状態が属するビデオのエンコード中に先読み検索によって生成されるポリシー出力πtと(ii)状態tに対する状態表現を処理することによってポリシーヘッドによって生成されるポリシー出力
との間のクロスエントロピー損失であり、
は、状態tが属するビデオに対する報酬vtと価値ヘッドによって生成される価値予測
との間のIQN損失であり、ΣAuxiliaryは、使用されている補助タスクにわたる合計であり、
は、状態tに対する対応する補助タスクに対するグラウンドトゥルース出力ytと状態tに対する対応する補助タスクに対する予測出力
との間の分位点回帰損失である。
任意選択で、目的関数は、目的関数におけるその他の項に追加される正則化項、例えばL2正則化項も含むことができる。例えば、L2正則化項は、
を満たすことができ、式中θは、訓練されているニューラルネットワークのパラメータである。
異なる強化技術、例えば訓練データを生成するときに先読み検索を使用しないものが使用されている場合、目的関数は、例えば、上記したように、ポリシー出力から導出されるポリシー勾配ベースの損失、報酬、および任意選択で、価値予測、および更に任意選択で、各補助タスクに対するそれぞれの項を含むことができる。
上記したように、本明細書に記載されるようにニューラルネットワークを訓練する結果、QP値を決定するための従来のスキームに対して改善された再構築品質になる。特定の例として、Table 1(表1)は、記載される技術の2つの変形例に関して、従来のlibvpx QP決定を使用することに対して3つの異なる品質メトリック(平均PSNR、平均SSIMおよび平均VMAF)に対するBDレート(Bjontegaardデルタレート)差を示す。2つのポリシーのビットレート対PSNR曲線が与えられ、BDレートは、重複するPSNR範囲にわたって同じPSNRに対する平均ビットレート差を計算し、したがって、同じ品質でビデオをエンコードするための平均ビットレート削減を測定する。ここでMuZero-RCは、5つの以降の行為のための先読みを使用し、かつ負のオーバーシュートがあるエンコードの場合、オーバーシュートを考慮に入れずにPSNRの値に基づいて報酬値が計算される、本開示に係るシステムを指す。「拡張MuZero-RC」は、これの変形例であり、負のオーバーシュートがあるエンコードの場合、報酬は、PSNRの値引く0.005およびオーバーシュートの積、すなわち報酬を計算するときにラムダを使用する上記した技術に基づいて計算され、その結果エージェントは、PSNRを改善することが可能でない場合でもオーバーシュートを低減させるように促される。
追加的に、以下のTable 2(表2)から分かるように、記載される技術を使用する結果、目標ビットレートをオーバーシュートするのは従来のlibvpx QP決定より著しくまれである。
そのため、記載される技術は、結果としてビデオをエンコードおよび再構築するときにより良好な再構築品質にもより良好なデータ効率にもなる。
これは、図5および図6に更に明示される。
図5は、libvpx技術に対して記載される技術によって達成されるオーバーシュートのヒストグラム502、504および506を図示する。ヒストグラム502、504および506から分かるように、記載される技術は、全体的にも個々の目標ビットレートに対しても、オーバーシュートするのはlibvpx技術よりも著しくまれである。図5に図示されないが、他の、より高い目標ビットレート、例えば384、448、512および576Kbpsに対しても同じ効果が見られた。
図6は、libvpx技術に対して記載される技術のBDレート差のヒストグラム602、604および606を図示する。ヒストグラム504、504および506から分かるように、記載される技術は、各種のビデオ品質尺度に対して同じ目標ビットレートが与えられるとより良好な性能を達成する。
図7は、表現ニューラルネットワークのより詳細なアーキテクチャ例を図示する。
このネットワークは、入力として環境によって提供される特徴をとり、そして出力として現在の状態の埋込みを生成する。これは、上の「特徴表現」とも呼ばれる。任意の状態に対して、エンコード環境は、以下の観測を生成する:
1.ビデオにおける全ての表示フレームに対する一連の第1パス統計量。例えば、システムは、H.Mao、C.Gu、M.Wang、A.Chen、N.Lazic、N.Levine、D.Pang、R.Claus、M.Hechtman、C.-H.Chiang、C.ChenおよびJ.Han.Neural rate control for video encoding using imitation learning、2020、arXiv:2012.05339によって使用される第1パス統計量および特徴正規化方法の一部または全てを使用できる。
2.これまでのビデオにおける全ての前にエンコードされたフレームに対する一連のPSNR、使用ビット数および適用QPと共に、それらのフレームのインデックス。
3.次にエンコードされるべきフレームのインデックスおよび型式。型式は、SimpleEncode APIからの5つのフレーム型の1つであることができる。
4.ビデオの持続時間。
5.エンコードに対する目標ビットレート。
追加的に、システムは、前にエンコードされたフレームによって使用されたビットおよびビデオ持続時間を使用してエンコードにこれまで使用された目標ビットレートの割合を生成できる。システムは、この割合を追加のスカラ特徴として使用できる。
表現ネットワークは、フレームのインデックスに沿って最初の2つの順次特徴を整列させ、そして特徴次元に沿って整列されたシーケンスを連結する。この連結されたシーケンスは、次いで一連の4つのTransformer-XLエンコーダブロックを使用して処理される[Daiら、2019]。このシーケンスから、次にエンコードされるべきフレームのインデックスにおけるエントリが抽出される。このエントリは、残りのスカラ特徴と連結され、そして中間層正規化を伴う2つのフィードフォワード層を使用して処理される[Baら、2016]。ネットワークは、一連の4層正規化ResNet-V2ブロックでこれらの層の出力を処理する[Heら、2016]。これらのブロックの出力は、状態の埋込み(「特徴表現」)である。システムは、例えば512ユニットの埋込みを使用できる。全ての層は、活性化関数としてReLUを使用する。
図8は、動的ニューラルネットワークのより詳細なアーキテクチャ例を図示する。
図8に図示されるように、ネットワークは、入力として状態の埋込みおよびその状態に適用されるべきQPをとる。それは、出力としてQPを適用した後に達する次の状態の埋込みを生成する。このネットワークは、中間層正規化を伴う2つのフィードフォワード層を使用してQPを処理して、前の状態の埋込みと同じ次元のベクトルを出力する。それは、このベクトルおよび前の状態の埋込みの要素ごとの加算を行い、そして結果を一連の4層正規化ResNet-V2ブロックで処理する。これらのブロックの出力は、QPを適用した後に達する次の状態の埋込みである。全ての層は、活性化関数としてReLUを使用する。
図9は、ポリシーヘッド、価値ヘッドおよび一組の補助タスクヘッドのより詳細なアーキテクチャ例を図示する。
図9に図示されるように、ニューラルネットワークは、状態の埋込みをとり、そして出力としてポリシー、価値および幾つかの補助予測を生成する。ポリシー予測のために、ネットワークは、256の隠れユニットおよび層正規化を伴う2つのフィードフォワード層で状態埋込みを処理し、続いて256ユニットの線形層が各QP値に対するロジットを表す。これらのロジットにsoftmax関数が適用されてポリシー出力を生成する。価値予測のために、ネットワークは、256の隠れユニットおよび層正規化を伴う2つのフィードフォワード層で状態埋込みを処理し、64ユニットの線形層が続く。この層の出力は、価値予測のサンプルを生成する545IQN層に対する埋込みとして使用される。ネットワークは、これらのサンプルにtanh関数を適用して、それらを範囲(-1, 1)に限定し546、自己競争ベースの報酬機構における値が[-1, 1]に限定される。訓練時に、システムは、IQN層から8つのサンプルを引き出して、自己競争報酬に適合させる。推論時に、先読み検索が使用される場合、システムは、サンプリングの代わりに期待値を使用できる。
補助予測の各々のために、ネットワークは、256の隠れユニットおよび層正規化を伴う2つのフィードフォワード層で状態埋込みを処理し、64ユニットの線形層が続く。この層の出力は、対応する補助予測の一様に離間した分位点を表す。図9の例では、システムは、補助予測として以下のメトリックを予測する:1.最後のエンコードフレームのPSNR(フレームがエンコードされないときは0)、2.最後のエンコードフレームによって使用されるビット数の対数(フレームがエンコードされないときは0)、エンコードされているビデオの期待PSNR、4.エンコードされているビデオの期待ビットレート。直観的に、これらの補助予測は、ニューラルネットワークがビデオエンコードプロセスの動力学を「理解する」のを援助しており、訓練されたネットワークの最終品質を改善できる。全ての層は、特に明記しない限り活性化関数としてReLUを使用する。
MuZero技術を使用してレート制御ニューラルネットワークを訓練するためのフレームワーク例の説明が続く。
システムは、経験再生を伴う、すなわち複数アクタおよび任意選択で複数ラーナーを伴う非同期分散アクタ-ラーナー設定のニューラルネットワーク(「エージェント」とも称される)を訓練できる。システムは、全てのアクタにわたって共有バッファを維持して、各[ビデオ、目標ビットレート]ペアに対するエージェントのEMAベースの履歴性能を追跡できる。各アクタプロセスは、訓練データセットからランダムに[ビデオ、目標ビットレート]ペアをサンプリングし、そして最新のネットワークパラメータを使用してそれらをエンコードするためのQPおよびMuZeroのMCTアルゴリズムの、例えば200のシミュレーションを生成する。エピソードに対する自己競争ベースの報酬は、上のように計算され、そしてエピソードは、経験再生バッファに追加される。ラーナープロセスは、経験再生バッファから遷移をサンプリングしてネットワークを訓練し、そして一定間隔でアクタプロセスに更新されたパラメータを送信する。
特定の例として、システムは、アクタプロセスによって生成される50,000の最新のエピソードのバッファを保ち、そして再生バッファからラーナーに提供されるようにバッチサイズが512のサンプルを引き出すことができる。
上の技術は、強化学習を適用して、レート制御を行うようにニューラルネットワークを訓練することを記載するが、同じ技術を、エンコードプロセスの異なる態様を行うようにニューラルネットワークを訓練するために使用できることが理解されるべきである。例えば、記載される技術は、ブロック分割、基準フレーム選択または両方を行うようにニューラルネットワークを訓練するために使用できる。
本明細書は、システムおよびコンピュータプログラム部品に関して用語「構成される」を使用する。1つまたは複数のコンピュータのシステムが特定の動作または行為を行うように構成されることは、動作に際してシステムに動作または行為を行わせるソフトウェア、ファームウェア、ハードウェアまたはそれらの組合せをシステムが自らにインストールしたことを意味する。1つまたは複数のコンピュータプログラムが特定の動作または行為を行うように構成されることは、データ処理装置によって実行されると、装置に動作または行為を行わせる命令を1つまたは複数のプログラムが含むことを意味する。
本明細書に記載される主題および機能動作の実施形態は、デジタル電子回路網で、有形に具現化されたコンピュータソフトウェアもしくはファームウェアで、本明細書に開示される構造およびそれらの構造等価物を含め、コンピュータハードウェアで、またはそれらの1つもしくは複数の組合せで実装できる。本明細書に記載される主題の実施形態は、1つまたは複数のコンピュータプログラム、すなわちデータ処理装置による実行のために、またはその動作を制御するために有形の非一時的記憶媒体にエンコードされたコンピュータプログラム命令の1つまたは複数のモジュールとして実装できる。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムもしくはシリアルアクセスメモリデバイス、またはそれらの1つもしくは複数の組合せであることができる。代替的に、または加えて、プログラム命令は、データ処理装置による実行のために適切な受信器装置に伝送するための情報をエンコードするために発生される人工発生伝搬信号、例えば機械発生電気、光または電磁信号上にエンコードできる。
用語「データ処理装置」は、データ処理ハードウェアを指し、例としてプログラマブルプロセッサ、コンピュータまたはマルチプロセッサもしくはコンピュータを含め、データを処理するための全ての種類の装置、デバイスおよび機械を包含する。装置は、専用論理回路網、例えばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)であることも、またはそれを更に含むことができる。装置は、ハードウェアに加えて、コンピュータプログラムのための実行環境を作成するコード、例えばプロセッサファームウェアを構成するコード、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらの1つもしくは複数の組合せを任意選択で含むことができる。
コンピュータプログラムは、プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、スクリプトまたはコードとも称されてまたは記載されてよく、コンパイラ型もしくはインタープリタ型言語、または宣言型もしくは手続き型言語を含め、任意の形式のプログラミング言語で書くことができ、そしてそれは、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境での使用に適切な他のユニットとしてを含め、任意の形式に展開できる。プログラムは、ファイルシステムにおけるファイルに相当してよいが、しなくてもよい。プログラムは、他のプログラムもしくはデータ、例えば、マークアップ言語文書に記憶される1つもしくは複数のスクリプトを保持するファイルの一部分に、当該プログラムに専用の単一のファイルに、または複数の連係ファイル、例えば、1つもしくは複数のモジュール、サブプログラムもしくはコードの一部分を記憶するファイルに記憶できる。コンピュータプログラムは、1つのコンピュータ上に、または1つのサイトに位置するもしくは複数サイトにわたって分散されてデータ通信ネットワークによって相互接続される複数コンピュータ上に展開されて実行できる。
本明細書において、用語「データベース」は、任意のデータの集合を指すために広く使用される:データは、任意の特定の方法で構造化される、または全く構造化される必要はなく、そしてそれは、1つまたは複数の場所における記憶デバイス上に記憶できる。そのため、例えば、索引データベースは、複数のデータの集合を含むことができ、その各々は異なって組織化およびアクセスされてよい。
同様に、本明細書において、用語「エンジン」は、1つまたは複数の特定の機能を行うようにプログラムされるソフトウェアベースのシステム、サブシステムまたはプロセスを指すために広く使用される。一般に、エンジンは、1つまたは複数の場所における1つまたは複数のコンピュータ上にインストールされる、1つまたは複数のソフトウェアモジュールまたは部品として実装されるであろう。一部の場合には、1つまたは複数のコンピュータが特定のエンジンに専用であろう;他の場合には、同じ1つまたは複数のコンピュータ上に複数のエンジンをインストールして走らせることができる。
本明細書に記載されるプロセスおよび論理フローは、1つまたは複数のコンピュータプログラムを実行して、入力データを演算して出力を生成することによって機能を行う1つまたは複数のプログラマブルコンピュータによって行うことができる。プロセスおよび論理フローは、専用論理回路網、例えばFPGAもしくはASICによって、または専用論理回路網および1つもしくは複数のプログラムされたコンピュータの組合せによっても行うことができる。
コンピュータプログラムの実行に適切なコンピュータは、汎用もしくは専用マイクロプロセッサもしくは両方、または任意の他の種類の中央処理ユニットに基づくことができる。一般に、中央処理ユニットは、リードオンリメモリまたはランダムアクセスメモリまたは両方から命令およびデータを受けることになる。コンピュータの要素は、命令を行うまたは実行するための中央処理ユニットならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。中央処理ユニットおよびメモリは、専用論理回路網によって補足、またはそれに統合できる。一般に、コンピュータは更に、データを記憶するための1つまたは複数の大容量記憶デバイス、例えば磁気、光磁気ディスクまたは光ディスクを含む、または動作的に結合されて、それからデータを受けるもしくはそれにデータを転送するもしくは両方行うことになる。しかしながら、コンピュータは、そのようなデバイスを有する必要はない。その上、コンピュータは、別のデバイス、例えば、いくつか挙げると、移動電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲーム機、全地球測位システム(GPS)受信器、またはポータブル記憶デバイス、例えばユニバーサルシリアルバス(USB)フラッシュドライブに組み込むことができる。
コンピュータプログラム命令およびデータを記憶するのに適切なコンピュータ可読媒体は、例として半導体メモリデバイス、例えばEPROM、EEPROMおよびフラッシュメモリデバイス、磁気ディスク、例えば内部ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD ROMおよびDVD-ROMディスクを含め、全ての形態の不揮発性メモリ、媒体およびメモリデバイスを含む。
ユーザとの対話を提供するために、本明細書に記載される主題の実施形態は、ユーザに情報を表示するためのディスプレイデバイス、例えばCRT(陰極線管)またはLCD(液晶ディスプレイ)モニタならびにユーザがコンピュータに入力を提供できるキーボードおよびポインティングデバイス、例えばマウスまたはトラックボールを有するコンピュータ上に実装できる。ユーザとの対話を提供するために他の種類のデバイスも使用でき、例えば、ユーザに提供されるフィードバックは任意の形態の感覚フィードバック、例えば視覚フィードバック、聴覚フィードバックまたは触覚フィードバックであることができ、そしてユーザからの入力は、音響、音声または触覚入力を含め、任意の形態で受け取ることができる。加えて、コンピュータは、ユーザによって使用されるデバイスに文書を送信し、それから文書を受信することによって、例えば、ユーザのデバイス上のウェブブラウザから受信される要求に応答してウェブブラウザにウェブページを送信することによって、ユーザと対話できる。また、コンピュータは、メッセージングアプリケーションを走らせているパーソナルデバイス、例えばスマートフォンにテキストメッセージまたは他の形式のメッセージを送信し、そして折り返しユーザから応答メッセージを受信することによって、ユーザと対話できる。
機械学習モデルを実装するためのデータ処理装置は、例えば、機械学習訓練または生産、すなわち推論、作業負荷の共通かつ計算集約部分を処理するための専用ハードウェアアクセラレータユニットも含むことができる。
機械学習モデルは、機械学習フレームワーク、例えばTensorFlowフレームワーク、Microsoft Cognitive Toolkitフレームワーク、Apache SingaフレームワークまたはApache MXNetフレームワークを使用して実装および展開できる。
本明細書に記載される主題の実施形態は、バックエンド部品を、例えばデータサーバとして含む、またはミドルウェア部品、例えばアプリケーションサーバを含む、またはフロントエンド部品、例えば、ユーザが本明細書に記載される主題の実装例と対話できるようなグラフィカルユーザインタフェース、ウェブブラウザもしくはアプリ有するクライアントコンピュータを含むコンピューティングシステム、あるいは1つまたは複数のそのようなバックエンド、ミドルウェアまたはフロントエンド部品の任意の組合せで実装できる。システムの部品は、デジタルデータ通信の任意の形態または媒体、例えば通信ネットワークによって相互接続できる。通信ネットワークの例には、ローカルエリアネットワーク(LAN)およびワイドエリアネットワーク(WAN)、例えばインターネットを含む。
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントおよびサーバは、一般に互いから離れており、典型的に通信ネットワークを通じて対話する。クライアントおよびサーバの関係は、それぞれのコンピュータ上で走っており、互いにクライアント-サーバ関係を有するコンピュータプログラムによって生じる。一部の実施形態において、サーバは、例えば、クライアントとして作用するユーザデバイスと対話するユーザにデータを表示し、ユーザからユーザ入力を受信する目的で、デバイスにデータ、例えばHTMLページを送信する。ユーザデバイスにおいて生成されるデータ、例えばユーザ対話の結果は、サーバにおいてデバイスから受信できる。
本明細書が多くの具体的な実装詳細を含むが、これらは、いかなる発明の範囲へもまたは特許請求され得るものの範囲へも限定としてでなく、むしろ特定の発明の特定の実施形態に固有であり得る特徴の記述として解釈されるべきである。別々の実施形態の文脈で本明細書に記載される或る特徴を、組み合わせて単一の実施形態でも実装できる。反対に、単一の実施形態の文脈で記載される様々な特徴を、別々に複数の実施形態でも、または任意の適切な下位組合せでも実装できる。その上、特徴が或る組合せで作用すると上記され、しかも当初そのように特許請求さえされ得るが、特許請求された組合せからの1つまたは複数の特徴が一部の場合に同組合せから削除でき、特許請求された組合せは下位組合せまたは下位組合せの変形とされ得る。
同様に、動作が特定の順に図面に描かれかつ請求項に列挙されるが、これは、望ましい結果を達成するために、そのような動作が図示される特定の順にもしくは順番に行われること、または全ての例示された動作が行われることを必要とすると理解されるべきでない。一定の状況では、マルチタスキングおよび並列処理が有利であり得る。その上、上記した実施形態における様々なシステムモジュールおよび部品の分離は、全ての実施形態においてそのような分離を必要とすると理解されるべきでなく、記載されたプログラム部品およびシステムが一般に単一のソフトウェア製品に共に統合できるまたは複数のソフトウェア製品へ実装できることが理解されるべきである。
主題の特定の実施形態が記載された。他の実施形態は以下の請求項の範囲内である。例えば、請求項に列挙される行為は異なる順に行え、それでも望ましい結果を達成できる。1つの例として、添付の図に描かれるプロセスは、望ましい結果を達成するために、必ずしも図示される特定の順または順番を必要とするわけではない。一部の場合には、マルチタスキングおよび並列処理が有利であり得る。
100 ビデオエンコードシステム
102A~102N ビデオフレーム
104 目標データ尺度
106A~106N 入力特徴
110 レート制御ニューラルネットワーク
112A~112N スコア
114A~114N QP値
150 ビデオコーデック
160A~160N エンコードビデオフレーム
200 訓練システム
202 パラメータ値
210 訓練データ
220 訓練例
222 訓練ビデオ
224 目標データ尺度
230 履歴性能データ
240 エンコード訓練ビデオ
250 現在の性能データ
260 報酬値
270 パラメータ更新
302 入力特徴
310 表現ニューラルネットワーク
312 特徴表現
320 ポリシーニューラルネットワークヘッド
322 スコア
330 価値ニューラルネットワークヘッド
332 価値評価
340 総合品質ニューラルネットワークヘッド
342 総合品質評価
350 総合データニューラルネットワークヘッド
352 総合データ評価
360 前フレーム品質ニューラルネットワークヘッド
362 前フレーム品質評価
388 QP値
390 動的ニューラルネットワーク
392 予測特徴表現

Claims (14)

  1. ビデオフレームのシーケンスをエンコードする際に使用するためのレート制御ニューラルネットワークを訓練する方法であって、前記レート制御ニューラルネットワークが、ビデオフレームの入力シーケンスのエンコード中に、前記シーケンスにおける各ビデオフレームに対して、前記ビデオフレームに対する入力特徴を受信し、前記入力特徴を処理して、複数の可能な量子化パラメータ値の各々に対するそれぞれのスコアを生成するように構成され、
    ビデオフレームの訓練シーケンスおよび前記訓練シーケンスに対する目標データ尺度を備える訓練例を得るステップと、
    前記訓練例に対する履歴性能を得るステップと、
    エンコードビデオフレームのシーケンスを備える前記訓練シーケンスのエンコード表現を生成するステップであり、前記訓練シーケンスにおける各ビデオフレームに対して、
    前記レート制御ニューラルネットワークを使用して、前記複数の可能な量子化パラメータ値の各々に対するそれぞれのポリシースコアを備える前記ビデオフレームに対するポリシー出力を生成するステップと、
    前記ポリシー出力を使用して、前記複数の可能な量子化パラメータ値から量子化パラメータ値を選択するステップと、
    前記選択された量子化パラメータ値に従ってビデオコーデックを使用して前記ビデオフレームをエンコードするステップとを含む、ステップと、
    前記訓練例に対する現在の性能を決定するステップであり、(i)前記エンコード表現の品質を測定する品質尺度および(ii)前記エンコード表現を表現するために必要とされるデータ量を測定するデータ尺度を決定するステップを含む、ステップと、
    前記現在の性能および前記履歴性能から報酬値を生成するステップと、
    強化学習を通して前記報酬値を使用して前記レート制御ニューラルネットワークを訓練するステップとを含む、方法。
  2. 前記レート制御ニューラルネットワークを使用して、前記複数の可能な量子化パラメータ値の各々に対するそれぞれのポリシースコアを備える前記ビデオフレームに対するポリシー出力を生成するステップが、
    前記レート制御ニューラルネットワークを使用して前記ビデオフレームに対する入力特徴を処理して、前記複数の可能な量子化パラメータ値の各々に対するそれぞれのスコアを生成するステップと、
    前記それぞれのスコアを前記それぞれのポリシースコアとして使用するステップとを含む、請求項1に記載の方法。
  3. 前記レート制御ニューラルネットワークを使用して、前記複数の可能な量子化パラメータ値の各々に対するそれぞれのポリシースコアを備える前記ビデオフレームに対するポリシー出力を生成するステップが、
    前記レート制御ニューラルネットワークによって導かれる前記エンコードの可能な将来の状態の先読み検索を行うステップを含む、請求項1に記載の方法。
  4. 前記訓練例に対する前記履歴性能が、(i)前記レート制御ニューラルネットワークの前記訓練中に前記訓練例に対して計算された前の品質尺度の指数移動平均および(ii)前記目標データ尺度と、前記レート制御ニューラルネットワークの前記訓練中に前記訓練例に対して計算された前のデータ尺度とから決定される前のオーバーシュートの指数移動平均から生成される、請求項1から3のいずれか一項に記載の方法。
  5. (i)前記エンコード表現の品質を測定する前記品質尺度および(ii)前記エンコード表現を表現するために必要とされるデータ量と前記目標データ尺度との間の差を測定する前記データ尺度に対するオーバーシュートを使用して前記履歴性能を更新するステップ
    を更に含む、請求項4の方法。
  6. 前記現在の性能および前記履歴性能から報酬値を生成するステップが、
    現在のオーバーシュートか前のオーバーシュートの前記指数移動平均かがゼロよりも大きいかどうかを判定するステップと、
    現在のオーバーシュートか前のオーバーシュートの前記指数移動平均かがゼロよりも大きい場合、
    前記現在のオーバーシュートが前のオーバーシュートの前記指数移動平均以下であれば前記報酬値を正値に設定するステップと、
    前記現在のオーバーシュートが前のオーバーシュートの前記指数移動平均よりも大きければ前記報酬値を負値に設定するステップとを含む、請求項4または5に記載の方法。
  7. 前記現在の性能および前記履歴性能から報酬値を生成するステップが、
    前記現在のオーバーシュートも前のオーバーシュートの指数移動平均もゼロよりも大きくない場合、
    前記エンコード表現の品質を測定する前記品質尺度が前の品質尺度の前記指数移動平均と同じまたはより良ければ前記正値に等しい前記報酬値を設定するステップと、
    前記エンコード表現の品質を測定する前記品質尺度が前の品質尺度の前記指数移動平均よりも悪ければ前記報酬値を前記負値に設定するステップとを含む、請求項6に記載の方法。
  8. 前記現在の性能および前記履歴性能から報酬値を生成するステップが、
    現在の性能尺度が第1の閾値量を超えるだけ履歴性能尺度よりも大きい場合、前記報酬値を正値に設定するステップを含む、請求項1に記載の方法。
  9. 前記現在の性能および前記履歴性能から報酬値を生成するステップが、
    前記現在の性能尺度が前記第1の閾値量を超えるだけ前記履歴性能尺度よりも小さい場合、前記報酬値を負値に設定するステップを含む、請求項8に記載の方法。
  10. 前記レート制御ニューラルネットワークが、
    前記入力特徴を処理して前記ビデオフレームに対する特徴表現を生成するように構成される表現ニューラルネットワークと、
    前記特徴表現を処理して前記複数の可能な量子化パラメータ値の各々に対する前記それぞれのスコアを生成するように構成されるポリシーニューラルネットワークヘッドとを備える、請求項1から9のいずれか一項に記載の方法。
  11. 1つまたは複数の補助タスクの各々に対して、
    対応する補助ニューラルネットワークヘッドを使用して前記ビデオフレームに対する前記特徴表現を処理して前記補助タスクに対する予測出力を生成するステップと、
    前記予測出力と前記補助タスクに対する対応するグラウンドトゥルース出力との間のそれぞれの誤差を決定するステップとを更に含み、
    強化学習を通して前記報酬値を使用して前記レート制御ニューラルネットワークを訓練するステップが、前記1つまたは複数の補助タスクに対する前記それぞれの誤差を使用して前記レート制御ニューラルネットワークを訓練するステップを含む、請求項10に記載の方法。
  12. ビデオフレームのシーケンスをエンコードする方法であって、
    各ビデオフレームに対する入力特徴を生成するステップと、
    各ビデオフレームに対して、請求項1から11のいずれか一項に記載の方法によって訓練され、前記入力特徴を処理して複数の可能な量子化パラメータ値の各々に対するそれぞれのスコアを生成するように構成されるレート制御ニューラルネットワークに、各ビデオフレームの前記入力特徴を連続して送信するステップと、
    前記スコアに基づいて前記ビデオフレームの各々に対するそれぞれの量子化パラメータ値を選択するステップと、
    前記選択された量子化パラメータに基づいて各ビデオフレームをエンコードするステップとを含む、方法。
  13. 1つまたは複数のコンピュータと、前記1つまたは複数のコンピュータによって実行されるとき前記1つまたは複数のコンピュータに請求項1から12のいずれか一項に記載のそれぞれの方法の動作を行わせる命令を記憶した1つまたは複数の記憶デバイスとを備える、システム。
  14. 1つまたは複数のコンピュータによって実行されるとき前記1つまたは複数のコンピュータに請求項1から12のいずれか一項に記載のそれぞれの方法の動作を行わせる命令を記憶した1つまたは複数のコンピュータ可読記憶媒体。
JP2023560140A 2021-05-28 2022-05-30 強化学習を通してレート制御ニューラルネットワークを訓練すること Active JP7498377B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US63/194,940 2021-05-28

Publications (2)

Publication Number Publication Date
JP2024521612A true JP2024521612A (ja) 2024-06-04
JP7498377B2 JP7498377B2 (ja) 2024-06-11

Family

ID=

Similar Documents

Publication Publication Date Title
Mentzer et al. Conditional probability models for deep image compression
US11606560B2 (en) Image encoding and decoding, video encoding and decoding: methods, systems and training methods
Mandhane et al. Muzero with self-competition for rate control in vp9 video compression
KR102398529B1 (ko) 이중 언어 말뭉치의 스크린 방법과 장치, 및 기록매체
US20230300354A1 (en) Method and System for Image Compressing and Coding with Deep Learning
US20230319292A1 (en) Reinforcement learning based rate control
JP7451591B2 (ja) 機械学習モデルベースのビデオ圧縮
Wu et al. Paas: A preference-aware deep reinforcement learning approach for 360 video streaming
JP2024519657A (ja) 精度が向上し、計算リソースの消費が減少した拡散モデル
CN108898221B (zh) 基于状态特征和后继特征的特征与策略的联合学习方法
US20230299788A1 (en) Systems and Methods for Improved Machine-Learned Compression
JP7498377B2 (ja) 強化学習を通してレート制御ニューラルネットワークを訓練すること
US20230336739A1 (en) Rate control machine learning models with feedback control for video encoding
JP2024521612A (ja) 強化学習を通してレート制御ニューラルネットワークを訓練すること
CN116469359A (zh) 音乐风格迁移方法、装置、计算机设备及存储介质
CN113660488B (zh) 对多媒体数据进行流控及流控模型训练方法、以及装置
AU2022279597A1 (en) Training rate control neural networks through reinforcement learning
Nguyen et al. Joint Communication and Computation Framework for Goal-Oriented Semantic Communication with Distortion Rate Resilience
CN113132757A (zh) 数据处理方法和装置
KR102650523B1 (ko) 심층 강화 학습에 의한 종단 간 신경 압축을 위한 방법 및 장치
CN114727109B (zh) 多媒体的量化处理方法、装置及编码、解码设备
US20230316588A1 (en) Online training-based encoder tuning with multi model selection in neural image compression
Balcilar et al. Vector Quantization and Shifting: Exploiting Latent Properties to Optimize Neural Codecs
Linck et al. SVG-CNN: A shallow CNN based on VGGNet applied to intra prediction partition block in HEVC
EP4305619A2 (en) Generating output signals using variable-rate discrete representations