IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ グーグル インコーポレイテッドの特許一覧

特表2024-529309オプティカルフローを使用したビデオ圧縮
<>
  • 特表-オプティカルフローを使用したビデオ圧縮 図1
  • 特表-オプティカルフローを使用したビデオ圧縮 図2
  • 特表-オプティカルフローを使用したビデオ圧縮 図3
  • 特表-オプティカルフローを使用したビデオ圧縮 図4
  • 特表-オプティカルフローを使用したビデオ圧縮 図5
  • 特表-オプティカルフローを使用したビデオ圧縮 図6
  • 特表-オプティカルフローを使用したビデオ圧縮 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-08-06
(54)【発明の名称】オプティカルフローを使用したビデオ圧縮
(51)【国際特許分類】
   H04N 19/103 20140101AFI20240730BHJP
   H04N 19/172 20140101ALI20240730BHJP
   H04N 19/52 20140101ALI20240730BHJP
   H04N 19/85 20140101ALI20240730BHJP
【FI】
H04N19/103
H04N19/172
H04N19/52
H04N19/85
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024500559
(86)(22)【出願日】2022-07-05
(85)【翻訳文提出日】2024-03-08
(86)【国際出願番号】 US2022036111
(87)【国際公開番号】W WO2023283184
(87)【国際公開日】2023-01-12
(31)【優先権主張番号】63/218,853
(32)【優先日】2021-07-06
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.TENSORFLOW
(71)【出願人】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】ジョージ・ダン・トデリッチ
(72)【発明者】
【氏名】エイリクール・トール・アグストソン
(72)【発明者】
【氏名】ファビアン・ユリウス・メンツァー
(72)【発明者】
【氏名】デイヴィッド・チャールズ・ミンネン
(72)【発明者】
【氏名】ヨハンネス・バレー
(72)【発明者】
【氏名】ニコラス・ジョンストン
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159MA04
5C159MA05
5C159MA12
5C159MC11
5C159ME01
5C159NN16
5C159NN21
5C159NN40
5C159PP04
5C159RC11
5C159TA01
5C159TA16
5C159TB04
5C159UA02
5C159UA05
(57)【要約】
ビデオデータを圧縮するための、コンピュータ記憶媒体上で符号化されたコンピュータプログラムを含む方法、システム、および装置。1つの態様では、方法は、フレームのビデオシーケンスを受信するステップと、フロー予測ネットワークを使用して、2つのシーケンシャルフレームの間のオプティカルフローを生成するステップであって、2つのシーケンシャルフレームが、第1のフレームと、第1のフレームに続く第2のフレームとを含む、ステップと、オプティカルフローから、第1のオートエンコーダニューラルネットワークを使用して、第1のフレームと第2のフレームとの間の予測されたオプティカルフローを生成するステップと、予測されたオプティカルフローに従って第1のフレームの再構成をワープし、続いて、第2のフレームの初期の予測された再構成を取得するためにぼかし動作を適用するステップとを含む。
【特許請求の範囲】
【請求項1】
データ処理装置によって実施されるビデオを圧縮する方法であって、
フレームのビデオシーケンスを受信するステップと、
フロー予測ネットワークを使用して、2つのシーケンシャルフレームの間のオプティカルフローを生成するステップであって、前記2つのシーケンシャルフレームが、第1のフレームと、前記第1のフレームに続く第2のフレームとを含む、ステップと、
前記オプティカルフローから、第1のオートエンコーダニューラルネットワークを使用して、
前記第1のフレームと前記第2のフレームとの間の予測されたオプティカルフローと、
信頼マスクと
を生成するステップと、
前記予測されたオプティカルフローに従って前記第1のフレームの再構成をワープし、続いて、前記第2のフレームの初期の予測された再構成を取得するために前記信頼マスクに従ってぼかし動作を適用するステップと、
第2のオートエンコーダニューラルネットワークを使用して、前記第2のフレームと前記第2のフレームの前記初期の予測された再構成との間の差である残差の予測を生成するステップと、
予測された第2のフレームを取得するために前記第2のフレームの前記初期の予測された再構成と前記残差の前記予測を合成するステップと
を含み、
前記第1のオートエンコーダニューラルネットワークおよび前記第2のオートエンコーダニューラルネットワークの各々が、それぞれ、エンコーダネットワークおよび生成器ネットワークを含み、
前記第2のオートエンコーダニューラルネットワークの前記生成器ネットワークが、敵対的生成ニューラルネットワーク(GANN)の構成要素である、
方法。
【請求項2】
前記第1のフレームおよび前記第2のフレームが、第3のフレームに続き、前記第3のフレームが、前記ビデオシーケンスの中の初期フレームであり、
前記第2のフレームおよび前記第3のフレームを処理する前に、
前記第3のフレームから、第3のオートエンコーダニューラルネットワークを使用して、前記第3のフレームの予測された再構成を生成するステップと、
前記フロー予測ネットワークを使用して、第3のフレームと前記第1のフレームとの間のオプティカルフローを生成するステップと、
前記オプティカルフローから、前記第1のオートエンコーダニューラルネットワークを使用して、
前記第3のフレームと前記第1のフレームとの間の予測されたオプティカルフローと、
信頼マスクと
を生成するステップと、
前記予測されたオプティカルフローに従って前記第3のフレームの前記再構成をワープし、続いて、前記第1のフレームの初期の予測された再構成を取得するために前記信頼マスクに従ってぼかし動作を適用するステップと、
前記第2のオートエンコーダニューラルネットワークを使用して、前記第1のフレームと前記第1のフレームの前記初期の予測された再構成との間の差である残差の予測を生成するステップと、
予測された第1のフレームを取得するために前記第1のフレームの前記初期の予測された再構成と前記残差の前記予測を合成するステップと
をさらに含み、
前記第3のオートエンコーダニューラルネットワークが、エンコーダネットワークおよび生成器ネットワークを含み、
前記第3のオートエンコーダニューラルネットワークの前記第3の生成器ネットワークが、敵対的生成ニューラルネットワーク(GANN)の構成要素である、
請求項1に記載の方法。
【請求項3】
前記第2のオートエンコーダニューラルネットワークを使用して、残差潜在を取得するために残差を符号化するステップと、
前記第3のエンコーダニューラルネットワークを使用して、前記第2のフレームの前記初期予測を符号化することによってフリー潜在を取得するステップと、
前記フリー潜在と前記残差潜在を連結するステップと
をさらに含み、
前記第2のオートエンコーダニューラルネットワークを使用して、前記残差の前記予測を生成するステップが、前記フリー潜在と前記残差潜在の前記連結を使用して、前記予測された残差を前記第2のオートエンコーダニューラルネットワークによって生成するステップを含む、
請求項1または2に記載の方法。
【請求項4】
前記残差潜在の量子化をエントロピー符号化するステップであって、前記残差潜在の前記エントロピー符号化された量子化が、前記ビデオを表す圧縮されたビデオデータに含まれる、ステップをさらに含む、請求項3に記載の方法。
【請求項5】
前記残差潜在を取得するために前記残差を符号化するステップが、
前記残差潜在を生成するために前記第2のオートエンコーダニューラルネットワークの前記エンコーダニューラルネットワークを使用して前記残差を処理するステップ
を含む、請求項3または4に記載の方法。
【請求項6】
前記第2のフレームの前記初期予測を符号化することによって前記フリー潜在を取得するステップが、
前記フリー潜在を生成するためにエンコーダニューラルネットワークを使用して前記第2のフレームの前記初期予測を処理するステップ
を含む、請求項3から5のいずれか一項に記載の方法。
【請求項7】
前記残差の前記予測を生成するステップが、
前記残差の前記予測を生成するために前記第2のオートエンコーダニューラルネットワークの前記生成器ニューラルネットワークを使用して前記フリー潜在と前記残差潜在の前記連結を処理するステップ
を含む、請求項3から6のいずれか一項に記載の方法。
【請求項8】
前記予測された第2のフレームを取得するために前記第2のフレームの前記初期の予測された再構成と前記残差の前記予測を合成するステップが、
前記第2のフレームの前記初期の予測された再構成と前記残差の前記予測を合計することによって前記予測された第2のフレームを生成するステップ
を含む、請求項1から7のいずれか一項に記載の方法。
【請求項9】
前記第1のフレームと前記第2のフレームとの間の前記予測されたオプティカルフローを生成するステップが、
前記オプティカルフローを表すフロー潜在を生成するために、前記第1のオートエンコーダネットワークの前記エンコーダネットワークを使用して前記フロー予測ネットワークによって生成された前記オプティカルフローを処理するステップと、
前記予測されたオプティカルフローを生成するために、前記第1のオートエンコーダニューラルネットワークの前記生成器ニューラルネットワークを使用して前記フロー潜在の量子化を処理するステップと
を含む、請求項1から8のいずれか一項に記載の方法。
【請求項10】
前記フロー潜在の前記量子化をエントロピー符号化するステップであって、前記フロー潜在の前記エントロピー符号化された量子化が、前記ビデオを表す圧縮されたビデオデータに含まれる、ステップをさらに含む、請求項9に記載の方法。
【請求項11】
前記第1のオートエンコーダニューラルネットワークおよび前記第2のオートエンコーダニューラルネットワークが、敵対的損失を含む目的関数を最適化するためにトレーニングビデオのセットに対してトレーニングされている、請求項1から10のいずれか一項に記載の方法。
【請求項12】
各トレーニングビデオの1つまたは複数のビデオフレームについて、前記敵対的損失が識別器スコアに基づき、識別器スコアが、
識別器ニューラルネットワークへの入力を生成することであって、前記入力が、前記第1のオートエンコーダニューラルネットワークおよび前記第2のオートエンコーダニューラルネットワークを使用して生成された前記ビデオフレームの再構成を含む、生成することと、
前記入力を前記識別器ニューラルネットワークに提供することであって、前記識別器ニューラルネットワークが、
入力ビデオフレームを含む入力を受信することと、
前記ビデオフレームが前記第1のオートエンコーダニューラルネットワークおよび前記第2のオートエンコーダニューラルネットワークを使用して生成された尤度を定義する出力識別器スコアを生成するために前記入力を処理することと
を行うように構成される、提供することと
を含む動作によって生成される、請求項11に記載の方法。
【請求項13】
ビデオを圧縮解除するための1つまたは複数のコンピュータによって実施される方法であって、
前記ビデオの圧縮された表現を受信するステップであって、前記ビデオの前記圧縮された表現が、前記ビデオの中の第1のビデオフレームの後の各ビデオフレームについて、先行するビデオフレームと前記ビデオフレームとの間のオプティカルフローを表す量子化されたフロー潜在を定義する、ステップと、
前記ビデオの中の各ビデオフレームの再構成を生成するステップであって、前記ビデオの中の前記第1のビデオフレームの後の各ビデオフレームについて、
前記ビデオの中の先行するビデオフレームの再構成を取得するステップと、
前記先行するビデオフレームと前記ビデオフレームとの間のオプティカルフローを生成するために、フロー生成器ニューラルネットワークを使用して前記ビデオフレームについての前記量子化されたフロー潜在を処理するステップと、
(i)前記先行するビデオフレームの前記再構成および(ii)前記先行するビデオフレームと前記ビデオフレームとの間の前記オプティカルフローを使用して前記ビデオフレームの前記再構成を生成するステップと
を含む、ステップと
を含む方法。
【請求項14】
(i)前記先行するビデオフレームの前記再構成および(ii)前記先行するビデオフレームと前記ビデオフレームとの間の前記オプティカルフローを使用して前記ビデオフレームの前記再構成を生成するステップが、
前記先行するビデオフレームと前記ビデオフレームとの間の前記オプティカルフローを使用して前記先行するビデオフレームの前記再構成をワープすることによって前記ビデオフレームの初期再構成を生成するステップと、
前記ビデオフレームの前記初期再構成を使用して前記ビデオフレームの前記再構成を生成するステップと
を含む、請求項13に記載の方法。
【請求項15】
前記ビデオフレームの前記初期再構成を使用して前記ビデオフレームの前記再構成を生成するステップが、
残差ビデオフレームの再構成を生成するステップであって、前記残差ビデオフレームが、(i)前記ビデオフレームと(ii)前記ビデオフレームの前記初期再構成との間の差によって定義される、ステップと、
前記残差ビデオフレームの再構成を前記ビデオフレームの前記初期再構成と合成することによって前記ビデオフレームの前記再構成を生成するステップと
を含む、請求項14に記載の方法。
【請求項16】
前記ビデオの前記圧縮された表現が、前記ビデオの中の前記第1のビデオフレームの後の各ビデオフレームについて、残差ビデオフレームを表す量子化された残差潜在をさらに含み、
前記残差ビデオフレームの前記再構成を生成するステップが、
前記残差ビデオフレームの前記再構成を生成するために、残差生成器ニューラルネットワークを使用して前記ビデオフレームについての前記量子化された残差潜在を処理するステップ
を含む、請求項15に記載の方法。
【請求項17】
前記ビデオの前記圧縮された表現が、前記ビデオの中の前記第1のビデオフレームを表す潜在を定義し、
前記第1のビデオフレームの前記再構成を生成するステップが、
前記第1のビデオフレームの前記再構成を生成するために、Iフレーム生成器ニューラルネットワークを使用して前記第1のビデオフレームを表す前記潜在を処理するステップ
を含む、請求項13から16のいずれか一項に記載の方法。
【請求項18】
前記ビデオの前記圧縮された表現が、請求項1から12のいずれか一項に記載の方法によって生成される、請求項13から17のいずれか一項に記載の方法。
【請求項19】
コンピュータプログラムで符号化されたコンピュータ記憶媒体であって、前記プログラムが、データ処理装置によって実行されると、前記データ処理装置に請求項1から18のいずれか一項に記載のそれぞれの方法の動作を実施させる命令を含む、コンピュータ記憶媒体。
【請求項20】
データ処理装置と、
コンピュータプログラムで符号化されたコンピュータ記憶媒体であって、前記プログラムが、前記データ処理装置によって実行されると、前記データ処理装置に請求項1から18のいずれか一項に記載のそれぞれの方法の動作を実施させる命令を含む、コンピュータ記憶媒体と
を含むシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書は、機械学習モデルを使用してデータを処理することに関する。
【背景技術】
【0002】
機械学習モデルは、入力を受信し、受信された入力に基づいて、出力、たとえば、予測された出力を生成する。いくつかの機械学習モデルは、パラメトリックモデルであり、受信された入力と、モデルのパラメータの値とに基づいて、出力を生成する。
【0003】
いくつかの機械学習モデルは、受信された入力に対する出力を生成するためにモデルの複数の層を用いる深層モデルである。たとえば、深層ニューラルネットワークは、出力層と、出力を生成するために各々が非線形変換を受信された入力に適用する1つまたは複数の隠れ層とを含む深層機械学習モデルである。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】Rico Jonschkowskiら、「What matters in unsupervised optical flow」、arXiv:2006.04902、1(2):3、2020年
【非特許文献2】E. Agustssonら、「Scale-space flow for end-to-end optimized video compression」、Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition、8503~8512頁、2020年
【非特許文献3】D. Minnenら、「Joint autoregressive and hierarchical priors for learned image compression」、Advances in Neural Information Processing Systems、10771~10780頁、2018年
【発明の概要】
【課題を解決するための手段】
【0005】
本明細書は、ビデオデータを圧縮することができる、1つまたは複数のロケーションにおける1つまたは複数のコンピュータ上のコンピュータプログラムとして実装される圧縮システムについて説明する。
【0006】
本明細書全体を通して、「潜在」は、1つまたは複数の数値の順序付けられた集合体、たとえば、数値のベクトル、行列、または他のテンソルを指すことができる。
【0007】
本明細書全体を通して、入力数値を「量子化する」ことは、入力数値を、考えられる数値の離散集合から引き出される出力数値にマッピングすることを指す。たとえば、入力数値は、考えられる数値の離散集合からの最も近い数値にマッピングされ得る。考えられる数値の離散集合は、たとえば、[0,255]の範囲内の整数値、または数値の別の適切な離散集合であり得る。
【0008】
本明細書全体を通して、第1のビデオフレームと第2のビデオフレームとの間のオプティカルフローは、第1のビデオフレームの中の各ピクセルについて、第1のビデオフレームと第2のビデオフレームとの間のピクセルの変位(動き)を表すフローベクトルを定義する。各フローベクトルは、たとえば、ビデオフレームの基準系における2次元(2D)ベクトルであり得る。
【0009】
本明細書で説明される各ニューラルネットワークは、ニューラルネットワークがその説明される機能を実施することを可能にする任意の適切なアーキテクチャを有することができる。たとえば、各ニューラルネットワークは、任意の適切な数(たとえば、5個の層、10個の層、または20個の層)で、任意の適切な構成で(たとえば、層の線形シーケンスとして)結合された、任意の適切なタイプのニューラルネットワーク層(たとえば、畳み込み層、全結合層、アテンション層など)を含むことができる。
【0010】
本明細書全体を通して、ビデオフレームのシーケンスの中の第1のビデオフレームは「Iフレーム」と呼ばれることがあり、第1のビデオフレームの後のビデオフレームは「Pフレーム」と呼ばれることがある。(いくつかの場合、単一のビデオは、ビデオフレームの複数のシーケンスに分割されることがあり、そのような単一のビデオは、Iフレームであるものとして指定された複数のフレームを有することができる。)
【0011】
1つの態様では、データ処理装置によって実施されるビデオを圧縮する方法であって、フレームのビデオシーケンスを受信するステップを含む、方法が説明される。本方法は、特にビデオシーケンスの2つのシーケンシャルフレームを連続的に処理することによって、前のフレームから後続の(P)フレームを予測するためにフレームのビデオシーケンスを処理するステップを伴い得る。2つのシーケンシャルフレームは、ビデオシーケンスの第1のフレームと、第1のフレームに続くビデオシーケンスの第2のフレームとを含む。
【0012】
したがって、本方法は、フロー予測ネットワークを使用して、2つのシーケンシャルフレームの間のオプティカルフロー(より正確には、オプティカルフローを表すオプティカルフローデータ)を生成するステップであって、2つのシーケンシャルフレームが、第1のフレームと、第1のフレームに続く第2のフレームとを含む、ステップを伴い得る。本方法はまた、オプティカルフローから、フロー符号化エンジンとして働く第1のオートエンコーダニューラルネットワークを使用して、第1のフレームと第2のフレームとの間の予測されたオプティカルフローと、信頼マスクとを生成するステップを伴い得る。実装形態では、信頼マスクは、予測されたオプティカルフローと同じ空間次元を有する信頼値のセットを定義し、たとえば、信頼マスクは、たとえば、[0,σ_maz]の範囲内の予測されたオプティカルフローの各ピクセルに対する信頼値(σ)を有してもよい。
【0013】
実装形態では、第1のオートエンコーダニューラルネットワークは、生成器ネットワークに結合された(その後に生成器ネットワークが続く)エンコーダネットワークを含む。実装形態では、エンコーダニューラルネットワークは、オプティカルフローを表すフロー潜在を生成するためにオプティカルフローを処理する。生成器ネットワークは、予測されたオプティカルフロー(オプティカルフローの再構成)を生成するためにフロー潜在を処理する。実装形態では、フロー潜在は、量子化され、エントロピーコーディングされてもよい。
【0014】
本方法は、たとえば、前の2つのシーケンシャルフレームを処理することから、予測されたオプティカルフローに従って第1のフレームの再構成をワープし、続いて、第2のフレームの初期の予測された再構成を取得するために信頼マスクに従ってぼかし動作を適用するステップを伴い得る。
【0015】
第1のフレームの再構成をワープするステップは、予測されたオプティカルフローを第1のフレームの再構成に適用するステップを含んでもよい。信頼マスクに従ってぼかし動作を適用するステップは、ぼかし動作を第1のフレームのワープされた再構成に適用するステップであって、空間ロケーションにおける信頼マスクによって定義された信頼値が、ぼかしのスケール(サイズ)を定義する、ステップを含んでもよい。たとえば、より大きい信頼値は、空間ロケーションにおけるピクセルのより多くのぼかしを定義してもよい。
【0016】
本方法はまた、残差符号化エンジンとして働く第2のオートエンコーダニューラルネットワークを使用して、第2のフレームと第2のフレームの初期の予測された再構成との間の差である残差(現在の残差フレーム)の予測を生成するステップを伴い得る。
【0017】
実装形態では、第2のオートエンコーダニューラルネットワークは、生成器ネットワークに結合された(その後に生成器ネットワークが続く)エンコーダネットワークを含む。
【0018】
実装形態では、エンコーダニューラルネットワークは、現在の残差フレームを表す残差潜在を生成するために現在の残差フレームを処理する。生成器ネットワークは、残差の、すなわち、現在の残差フレームの予測の再構成を生成するために残差潜在を処理する。実装形態では、残差潜在は、量子化され、エントロピーコーディングされてもよい。
【0019】
本方法は、予測された第2のフレーム(現在のフレームの予測された再構成)を取得するために第2のフレームの初期の予測された再構成と残差の予測を合成してもよい。これは、ビデオシーケンスの連続した2つのシーケンシャルフレームを処理するときに、第1のフレームの再構成として使用されてもよい。
【0020】
ビデオシーケンスの2つのシーケンシャルフレームに対する圧縮されたビデオは、任意選択で量子化および/またはエントロピーコーディングされたフロー潜在と、任意選択で量子化および/またはエントロピーコーディングされた残差潜在とを含んでもよい。したがって、フレームの圧縮されたビデオシーケンスは、ビデオシーケンスの2つのシーケンシャルフレームの連続したセットに対する一連のそのようなフロー潜在および残差潜在を含んでもよい。
【0021】
いくつかの実装形態では、必ずしもそうではないが、第2のオートエンコーダニューラルネットワークの生成器ネットワークは、敵対的生成ニューラルネットワーク(GANN)の構成要素である。すなわち、生成器ネットワークは、敵対的損失を使用して、特にビデオフレームが第2のオートエンコーダの生成器ネットワークを使用して生成された尤度を定義する(識別器ニューラルネットワークによって生成された)識別器スコアに依存する値を用いてトレーニングされていることがある。
【0022】
いくつかの実装形態では、必ずしもそうではないが、ビデオシーケンスの第1のフレームは、第3のオートエンコーダニューラルネットワークなどのIフレーム圧縮システムを使用して(別々に)符号化されてもよい。たとえば、第3のオートエンコーダニューラルネットワークのエンコーダネットワークは、第1のビデオフレームを表す1つまたは複数の潜在を生成してもよく、第3のオートエンコーダニューラルネットワークの生成器ネットワークは、第1のビデオフレームの再構成を生成してもよい。ここでも、第1のビデオフレームを表す1つまたは複数の潜在は、量子化され、エントロピーコーディングされてもよい。
【0023】
1つの態様によれば、データ処理装置によって実施されるビデオを圧縮する方法であって、フレームのビデオシーケンスを受信するステップと、フロー予測ネットワークを使用して、2つのシーケンシャルフレームの間のオプティカルフローを生成するステップであって、2つのシーケンシャルフレームが、第1のフレームと、第1のフレームに続く第2のフレームとを含む、ステップと、オプティカルフローから、第1のオートエンコーダニューラルネットワークを使用して、第1のフレームと第2のフレームとの間の予測されたオプティカルフローと、信頼マスクとを生成するステップと、予測されたオプティカルフローに従って第1のフレームの再構成をワープし、続いて、第2のフレームの初期の予測された再構成を取得するために信頼マスクに従ってぼかし動作を適用するステップと、第2のオートエンコーダニューラルネットワークを使用して、第2のフレームと第2のフレームの初期の予測された再構成との間の差である残差の予測を生成するステップと、予測された第2のフレームを取得するために第2のフレームの初期の予測された再構成と残差の予測を合成するステップとを含み、第1のオートエンコーダニューラルネットワークおよび第2のオートエンコーダニューラルネットワークの各々が、それぞれ、エンコーダネットワークおよび生成器ネットワークを含み、第2のオートエンコーダニューラルネットワークの生成器ネットワークが、敵対的生成ニューラルネットワーク(GANN)の構成要素である、方法が提供される。
【0024】
いくつかの実装形態では、第1のフレームおよび第2のフレームは、第3のフレームに続き、第3のフレームは、ビデオシーケンスの中の初期フレームであり、本方法は、第2のフレームおよび第3のフレームを処理する前に、第3のフレームから、第3のオートエンコーダニューラルネットワークを使用して、第3のフレームの予測された再構成を生成するステップと、フロー予測ネットワークを使用して、第3のフレームと第1のフレームとの間のオプティカルフローを生成するステップと、オプティカルフローから、第1のオートエンコーダニューラルネットワークを使用して、第3のフレームと第1のフレームとの間の予測されたオプティカルフローと、信頼マスクとを生成するステップと、予測されたオプティカルフローに従って第3のフレームの再構成をワープし、続いて、第1のフレームの初期の予測された再構成を取得するために信頼マスクに従ってぼかし動作を適用するステップと、第2のオートエンコーダニューラルネットワークを使用して、第1のフレームと第1のフレームの初期の予測された再構成との間の差である残差の予測を生成するステップと、予測された第1のフレームを取得するために第1のフレームの初期の予測された再構成と残差の予測を合成するステップとをさらに含み、第3のオートエンコーダニューラルネットワークは、エンコーダネットワークおよび生成器ネットワークを含み、第3のオートエンコーダニューラルネットワークの第3の生成器ネットワークは、敵対的生成ニューラルネットワーク(GANN)の構成要素である。
【0025】
いくつかの実装形態では、本方法は、第2のオートエンコーダニューラルネットワークを使用して、残差潜在を取得するために残差を符号化するステップと、第3のエンコーダニューラルネットワークを使用して、第2のフレームの初期予測を符号化することによってフリー潜在を取得するステップと、フリー潜在と残差潜在を連結するステップとをさらに含み、第2のオートエンコーダニューラルネットワークを使用して、残差の予測を生成するステップは、フリー潜在と残差潜在の連結を使用して、予測された残差を第2のオートエンコーダニューラルネットワークによって生成するステップを含む。
【0026】
いくつかの実装形態では、本方法は、残差潜在の量子化をエントロピー符号化するステップであって、残差潜在のエントロピー符号化された量子化が、ビデオを表す圧縮されたビデオデータに含まれる、ステップをさらに含む。
【0027】
いくつかの実装形態では、残差潜在を取得するために残差を符号化するステップは、残差潜在を生成するために第2のオートエンコーダニューラルネットワークのエンコーダニューラルネットワークを使用して残差を処理するステップを含む。
【0028】
いくつかの実装形態では、第2のフレームの初期予測を符号化することによってフリー潜在を取得するステップは、フリー潜在を生成するためにエンコーダニューラルネットワークを使用して第2のフレームの初期予測を処理するステップを含む。
【0029】
いくつかの実装形態では、残差の予測を生成するステップは、残差の予測を生成するために第2のオートエンコーダニューラルネットワークの生成器ニューラルネットワークを使用してフリー潜在と残差潜在の連結を処理するステップを含む。
【0030】
いくつかの実装形態では、予測された第2のフレームを取得するために第2のフレームの初期の予測された再構成と残差の予測を合成するステップは、第2のフレームの初期の予測された再構成と残差の予測を合計することによって予測された第2のフレームを生成するステップを含む。
【0031】
いくつかの実装形態では、第1のフレームと第2のフレームとの間の予測されたオプティカルフローを生成するステップは、オプティカルフローを表すフロー潜在を生成するために、第1のオートエンコーダネットワークのエンコーダネットワークを使用してフロー予測ネットワークによって生成されたオプティカルフローを処理するステップと、予測されたオプティカルフローを生成するために、第1のオートエンコーダニューラルネットワークの生成器ニューラルネットワークを使用してフロー潜在の量子化を処理するステップとを含む。
【0032】
いくつかの実装形態では、本方法は、フロー潜在の量子化をエントロピー符号化するステップであって、フロー潜在のエントロピー符号化された量子化が、ビデオを表す圧縮されたビデオデータに含まれる、ステップをさらに含む。
【0033】
いくつかの実装形態では、第1のオートエンコーダニューラルネットワークおよび第2のオートエンコーダニューラルネットワークは、敵対的損失を含む目的関数を最適化するためにトレーニングビデオのセットに対してトレーニングされている。
【0034】
いくつかの実装形態では、各トレーニングビデオの1つまたは複数のビデオフレームについて、敵対的損失は識別器スコアに基づき、識別器スコアは、識別器ニューラルネットワークへの入力を生成することであって、入力が、第1のオートエンコーダニューラルネットワークおよび第2のオートエンコーダニューラルネットワークを使用して生成されたビデオフレームの再構成を含む、生成することと、入力を識別器ニューラルネットワークに提供することであって、識別器ニューラルネットワークが、入力ビデオフレームを含む入力を受信することと、ビデオフレームが第1のオートエンコーダニューラルネットワークおよび第2のオートエンコーダニューラルネットワークを使用して生成された尤度を定義する出力識別器スコアを生成するために入力を処理することとを行うように構成される、提供することとを含む動作によって生成される。
【0035】
別の態様によれば、ビデオを圧縮解除するための1つまたは複数のコンピュータによって実施される方法であって、ビデオの圧縮された表現を受信するステップであって、ビデオの圧縮された表現が、ビデオの中の第1のビデオフレームの後の各ビデオフレームについて、先行するビデオフレームとビデオフレームとの間のオプティカルフローを表す量子化されたフロー潜在を定義する、ステップと、ビデオの中の各ビデオフレームの再構成を生成するステップであって、ビデオの中の第1のビデオフレームの後の各ビデオフレームについて、ビデオの中の先行するビデオフレームの再構成を取得するステップと、先行するビデオフレームとビデオフレームとの間のオプティカルフローを生成するために、フロー生成器ニューラルネットワークを使用してビデオフレームについての量子化されたフロー潜在を処理するステップと、(i)先行するビデオフレームの再構成および(ii)先行するビデオフレームとビデオフレームとの間のオプティカルフローを使用してビデオフレームの再構成を生成するステップとを含む、ステップとを含む、方法が提供される。
【0036】
いくつかの実装形態では、(i)先行するビデオフレームの再構成および(ii)先行するビデオフレームとビデオフレームとの間のオプティカルフローを使用してビデオフレームの再構成を生成するステップは、先行するビデオフレームとビデオフレームとの間のオプティカルフローを使用して先行するビデオフレームの再構成をワープすることによってビデオフレームの初期再構成を生成するステップと、ビデオフレームの初期再構成を使用してビデオフレームの再構成を生成するステップとを含む。
【0037】
いくつかの実装形態では、ビデオフレームの初期再構成を使用してビデオフレームの再構成を生成するステップは、残差ビデオフレームの再構成を生成するステップであって、残差ビデオフレームが、(i)ビデオフレームと(ii)ビデオフレームの初期再構成との間の差によって定義される、ステップと、残差ビデオフレームの再構成をビデオフレームの初期再構成と合成することによってビデオフレームの再構成を生成するステップとを含む。
【0038】
いくつかの実装形態では、ビデオの圧縮された表現は、ビデオの中の第1のビデオフレームの後の各ビデオフレームについて、残差ビデオフレームを表す量子化された残差潜在をさらに含み、残差ビデオフレームの再構成を生成するステップは、残差ビデオフレームの再構成を生成するために、残差生成器ニューラルネットワークを使用してビデオフレームについての量子化された残差潜在を処理するステップを含む。
【0039】
いくつかの実装形態では、ビデオの圧縮された表現は、ビデオの中の第1のビデオフレームを表す潜在を定義し、第1のビデオフレームの再構成を生成するステップは、第1のビデオフレームの再構成を生成するために、Iフレーム生成器ニューラルネットワークを使用して第1のビデオフレームを表す潜在を処理するステップを含む。
【0040】
別の態様によれば、コンピュータプログラムで符号化されたコンピュータ記憶媒体であって、プログラムが、データ処理装置によって実行されると、データ処理装置に本明細書で説明される方法の動作を実施させる命令を含む、コンピュータ記憶媒体が提供される。
【0041】
別の態様によれば、データ処理装置と、コンピュータプログラムで符号化されたコンピュータ記憶媒体であって、プログラムが、データ処理装置によって実行されると、データ処理装置に本明細書で説明される方法の動作を実施させる命令を含む、コンピュータ記憶媒体とを含むシステムが提供される。
【0042】
本明細書で説明される主題の特定の実施形態は、以下の利点のうちの1つまたは複数を実現するために実装され得る。
【0043】
本明細書で説明される圧縮システムは、ビデオの中のビデオフレーム間のオプティカルフローを定義するオプティカルフローデータを生成することによって、圧縮されたビデオデータを生成することができる。次いで、圧縮システムは、ビデオの圧縮された表現の中にオプティカルフローデータの圧縮された表現を含むオプティカルフローデータを圧縮する。たとえば、オプティカルフローデータのかなりの部分は、ビデオフレーム間の滑らかで予測可能な動きを反映する一定値を有し得るので、オプティカルフローデータは、いくつかの場合、元のビデオフレームよりも効率的に圧縮され得る。したがって、オプティカルフローを単位としてビデオフレームを表すことは、ビデオがより効率的に圧縮されることを可能にする。
【0044】
ビデオの中のビデオフレーム間のオプティカルフローを表すオプティカルフローデータを生成することに加えて、圧縮システムはさらに、ビデオの中のビデオフレームに対応する残差ビデオフレームを生成することができる。ビデオフレームに対応する残差ビデオフレーム(「残差」)は、オプティカルフローデータを使用して生成されたビデオフレームの再構成における誤差を表す。圧縮システムは、残差ビデオフレームを圧縮し、ビデオの圧縮された表現に残差ビデオフレームの圧縮された表現を含めることができる。たとえば、残差ビデオフレームは、ゼロに近い小さい値で実質的に構成され得るので、残差ビデオフレームは、いくつかの場合、元のビデオフレームよりも効率的に圧縮され得る。したがって、オプティカルフローおよび残差ビデオフレームを単位としてビデオフレームを表すことは、ビデオの高忠実度の再構成を可能にしながら、ビデオが効率的に圧縮されることを可能にすることができる。
【0045】
圧縮システムは、敵対的損失を使用してトレーニングされるニューラルネットワークを含むことができる。敵対的損失は、圧縮システムに圧縮されたビデオデータを生成するよう促し、圧縮されたビデオデータは、たとえば、従来のシステムを使用してビデオデータを圧縮解除することによって生じることが多い不自然なアーチファクトがない現実的なビデオデータを生成するために再構成され得る。
【0046】
本明細書の主題の1つまたは複数の実施形態の詳細は、添付の図面および以下の説明に記載されている。主題の他の特徴、態様、および利点は、明細書、図面、および特許請求の範囲から明らかとなろう。
【図面の簡単な説明】
【0047】
図1】例示的な圧縮システムを示す図である。
図2】例示的なPフレーム圧縮システムを示す図である。
図3】ビデオを圧縮するための例示的なプロセスの流れ図である。
図4】例示的な圧縮解除圧縮システムを示す図である。
図5】例示的なPフレーム圧縮解除システムを示す図である。
図6】ビデオを圧縮解除するための例示的なプロセスの流れ図である。
図7】例示的なトレーニングシステムを示す図である。
【発明を実施するための形態】
【0048】
様々な図面における同様の参照番号および名称は、同様の要素を示す。
【0049】
本明細書は、ビデオデータを圧縮するための圧縮システムと、ビデオデータを圧縮解除するための圧縮解除と、圧縮システムおよび圧縮解除システムに含まれるニューラルネットワークをトレーニングするためのトレーニングシステムとについて説明する。圧縮システムは、図1図3を参照してより詳細に説明され、圧縮解除システムは、図4図6を参照してより詳細に説明され、トレーニングシステムは、図7を参照してより詳細に説明される。
【0050】
図1は、例示的な圧縮システム100を示す。圧縮システム100は、以下で説明されるシステム、構成要素、および技法が実装される、1つまたは複数のロケーションにおける1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されるシステムの一例である。
【0051】
圧縮システム100は、ビデオフレーム106、たとえば、106-A、106-B、106-C、106-Dなどのシーケンスを含むビデオ104を受信するように構成される。圧縮システム100は、圧縮されたビデオデータ114、すなわち、メモリの中で元のビデオよりも(いくつかの場合、1つまたは複数の桁)少ない空間を占有し、元のビデオ104の(近似のまたは正確な)再構成を可能にするデータを生成するために、ビデオ104を処理する。(いくつかの場合、ビデオ104は、より大きいビデオの真部分集合であってもよく、たとえば、ビデオ104は、100,000個を超えるフレームを含むより大きいビデオの最初の1,000個のフレームであってもよい。)
【0052】
ビデオは、任意の適切な数のビデオフレーム、たとえば、10個のビデオフレーム、1,000個のビデオフレーム、または1,000,000個のビデオフレームを有することができる。ビデオの中の各ビデオフレームは、ピクセルのアレイ、たとえば、ピクセルの2次元(2D)アレイとして表される場合があり、ここで、各ピクセルは、1つまたは複数の数値、たとえば、赤-緑-青(RGB)値によって表される。ビデオは、任意の適切なソースから取得され得る。たとえば、ビデオは、ユーザによって、たとえば、圧縮システムによって利用可能になるアプリケーションプログラミングインターフェース(API)を経由して、圧縮システム100によって提供され得る。別の例として、ビデオはメモリから読み取られ得る。
【0053】
圧縮システム100によって生成された圧縮されたビデオデータ114は、図4を参照して以下でより詳細に説明されるように、元のビデオ104を再構成するために圧縮解除システムによって圧縮解除され得る。生成された後、圧縮されたビデオデータ114は、たとえば、メモリに記憶されるか、データ通信ネットワーク(たとえば、インターネット)を介して送信されるか、任意の他の適切な目的で使用される場合がある。
【0054】
圧縮システム100は、第1のビデオフレームから開始してビデオの中のビデオフレームを逐次的に圧縮することによって、圧縮されたビデオデータ114を生成する。
【0055】
圧縮システム100は、Iフレーム圧縮システム102、Pフレーム圧縮システム200、および符号化エンジン112を含み、これらは各々、次に説明される。
【0056】
Iフレーム圧縮システム102は、(i)第1のビデオフレームを表す1つまたは複数の潜在110および(ii)第1のビデオフレームの再構成108を生成するために、ビデオ104の中の第1のビデオフレームを処理する。Iフレーム圧縮システム102によって実施され得る例示的な動作は、図3のステップ302を参照して以下でより詳細に説明される。
【0057】
第1のビデオフレームの後の各ビデオフレームについて、Pフレーム圧縮システムは、(i)現在のビデオフレームを表す1つまたは複数の潜在110および(ii)現在のビデオフレームの再構成されたバージョン108を含む出力を生成する。Pフレーム圧縮システム200は、(i)現在のビデオフレーム、(ii)先行するビデオフレーム、および(iii)先行するビデオフレームの再構成を処理することによって出力を生成する。Pフレーム圧縮システム200の一例は、図2を参照して以下でより詳細に説明される。
【0058】
符号化エンジン112は、潜在110の符号化された表現を生成するために、(たとえば、ビデオの中の第1のフレームについて)Iフレーム圧縮システム102および各(後続の)ビデオフレーム106についてPフレーム圧縮システム200によって生成された、それぞれの潜在110を処理するように構成される。符号化エンジン112は、エントロピー符号化技法、たとえば、ハフマンコーディングまたは算術コーディングなどの符号化技法を使用して、潜在110の符号化された表現を生成することができる。潜在110の符号化された表現は、圧縮されたビデオデータ114の一部または全部を形成する。圧縮されたビデオデータ114は、任意の適切な数値フォーマットで、たとえば、ビットストリームとして、すなわち、ビットのシーケンスとして表され得る。
【0059】
図2は、例示的なPフレーム圧縮システム200を示す。Pフレーム圧縮システム200は、以下で説明されるシステム、構成要素、および技法が実装される、1つまたは複数のロケーションにおける1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されるシステムの一例である。
【0060】
ビデオの中の第1のビデオフレームの後の各ビデオフレームについて、Pフレーム圧縮システム200は、(i)現在のビデオフレーム220、(ii)先行するビデオフレーム218、および(iii)先行するビデオフレームの再構成212を含む入力を受信するように構成される。
【0061】
現在のビデオフレーム220および先行するビデオフレーム212は、元のビデオから抽出される。
【0062】
先行するビデオフレームの再構成212は、Pフレーム圧縮システム200のIフレーム圧縮システム102のいずれかの前の出力として取得される。より具体的には、現在のビデオフレーム220がビデオの中の第2のビデオフレームである場合、先行するビデオフレームの再構成212はIフレーム圧縮システムの前の出力として取得される。現在のビデオフレーム220がビデオの中の第2のビデオフレームの後である場合、先行するビデオフレームの再構成212はPフレーム圧縮システム200の前の出力として取得される。
【0063】
Pフレーム圧縮システム200は、(i)フロー潜在206と残差潜在208とを含む、現在のビデオフレーム220を表す潜在および(ii)現在のビデオフレームの再構成216を生成するために、入力を処理する。現在のビデオフレームを表す潜在は、図1を参照して説明されたように、符号化され(たとえば、エントロピー符号化され)、圧縮されたビデオデータの一部を形成する。現在のビデオフレームの再構成216は、続いて、次のビデオフレームを表す潜在および次のビデオフレームの再構成を生成する際に使用するための、Pフレーム圧縮システム200への入力として提供される。
【0064】
Pフレーム圧縮システムは、フロー符号化エンジン202および残差符号化エンジン112を含み、これらは各々、次に説明される。
【0065】
フロー符号化エンジン202は、先行するビデオフレーム218と現在のビデオフレーム220との間のオプティカルフローを定義するオプティカルフローデータを生成する。フロー符号化エンジン202は、オプティカルフローデータを表すフロー潜在206を生成するためにオプティカルフローデータを処理する。フロー符号化エンジン202はさらに、オプティカルフローデータの再構成(「予測されたオプティカルフロー」)を生成するためにフロー潜在206を処理し、現在のフレームの初期再構成210(「初期の予測された再構成」)を生成するために再構成されたオプティカルフローデータを使用して先行するビデオフレームの再構成212をワープする。
【0066】
たとえば、フロー潜在206および現在のフレームの初期再構成210を生成するためにフロー符号化エンジン202によって実施され得る例示的な動作は、図3を参照してより詳細に説明される。
【0067】
残差符号化エンジン112は、(i)現在のフレーム210の初期再構成と(ii)現在のフレーム220との間の差として現在の残差フレームを生成する。残差符号化エンジン112は、現在の残差フレーム214を表す残差潜在208を生成するために現在の残差フレーム214を処理する。残差符号化エンジン112はさらに、現在の残差フレーム214の再構成(「残差の予測」)を生成するために残差潜在を処理し、現在のフレームの再構成216(「予測された再構成」)を生成するために現在の残差フレーム214の再構成を現在のフレームの初期再構成210と合成し、これは、「予測された第2のフレーム」と呼ばれることがある。
【0068】
たとえば、残差潜在208および現在のフレームの再構成216を生成するために残差符号化エンジン112によって実施され得る例示的な動作は、図3を参照してより詳細に説明される。
【0069】
Pフレーム圧縮システム200は、符号化され、たとえば、エントロピー符号化され、ビデオを表す圧縮されたビデオデータに含まれるべき、フロー潜在206および残差潜在208を提供する。Pフレーム圧縮システム200は、次のビデオフレームを表す潜在を生成することの一部としての処理のために、現在のフレームの再構成216を提供する。
【0070】
図3は、ビデオを圧縮するための例示的なプロセス300の流れ図である。便宜上、プロセス300は、1つまたは複数のロケーションに位置する1つまたは複数のコンピュータのシステムによって実施されるものとして説明される。たとえば、圧縮システム、たとえば、本明細書に従って適切にプログラムされた図1の圧縮システム100は、プロセス300を実施することができる。
【0071】
システムは、ビデオの中の第1のビデオフレームを表す潜在およびビデオの中の第1のビデオフレームの再構成を生成する(302)。より具体的には、システムは、ビデオの中の第1のビデオフレームを表す潜在を生成するために、便宜上、Iフレームエンコーダニューラルネットワークと呼ばれるニューラルネットワークを使用してビデオの中の第1のビデオフレームを処理する。システムは、特に、第1のビデオフレームを表す潜在の中の各数値を量子化することによって、第1のビデオフレームを表す潜在を量子化する。次いで、システムは、ビデオの中の第1のビデオフレームの再構成を生成するために、便宜上、Iフレーム生成器ニューラルネットワークと呼ばれるニューラルネットワークを使用して第1のビデオフレームを表す(量子化された)潜在を処理する。(IフレームエンコーダニューラルネットワークおよびIフレーム生成器ニューラルネットワークは、オートエンコーダニューラルネットワークをまとめて定義するものと理解され得る。)
【0072】
システムは、第2のビデオフレームから開始してビデオの中の各ビデオフレームについてステップ304~312を逐次的に実施する。便宜上、ステップ304~312は、ビデオの中の「現在の」ビデオフレームに関して実施されるものとして説明される。
【0073】
システムは、現在のビデオフレームについてのフロー潜在を生成する(304)。より具体的には、フロー潜在を生成するために、システムは、ビデオの中の先行するビデオフレームと現在のビデオフレームとの間のオプティカルフローを定義するオプティカルフローデータを生成する。システムは、様々な技法のうちのいずれかを使用してオプティカルフローデータを生成することができる。たとえば、システムは、先行するビデオフレームと現在のビデオフレームとの間のオプティカルフローを定義する出力を生成するようにトレーニングを通じて構成された、便宜上、フロー予測ニューラルネットワークと呼ばれるニューラルネットワークを使用して、先行するビデオフレームおよび現在のビデオフレームを処理することができる。フロー予測ニューラルネットワークの一例は、Rico Jonschkowskiら、「What matters in unsupervised optical flow」、arXiv:2006.04902、1(2):3、2020年を参照して説明される。別の例として、システムは、Lucas-Kanade法を使用して、先行するビデオフレームと現在のビデオフレームとの間のオプティカルフローを生成することができる。
【0074】
先行するビデオフレームと現在のビデオフレームとの間のオプティカルフローを生成した後、システムは、現在のビデオフレームについてのフロー潜在を生成するために、便宜上、フローエンコーダニューラルネットワークと呼ばれるニューラルネットワークを使用してオプティカルフローを定義するデータを処理する。システムはまた、特に、フロー潜在の中の各数値を量子化することによって、オプティカルフローを表すフロー潜在を量子化する。
【0075】
システムは、(量子化された)フロー潜在を使用して現在のビデオフレームの初期再構成を生成する(306)。より具体的には、システムは、先行するビデオフレームと現在のビデオフレームとの間のオプティカルフローの再構成を生成するために、便宜上、フロー生成器ニューラルネットワークと呼ばれるニューラルネットワークを使用してフロー潜在を処理する。(フローエンコーダニューラルネットワークおよびフロー生成器ニューラルネットワークは、オートエンコーダニューラルネットワークをまとめて定義するものと理解され得る。)いくつかの実装形態では、再構成されたオプティカルフローを生成することに加えて、フロー生成器ニューラルネットワークはさらに、信頼マスクを生成する。信頼マスクは、先行するビデオフレームの中の各ピクセルについて、便宜上、信頼値と呼ばれる、それぞれの値を含む。直感的に、各ピクセルについて、ピクセルに対する信頼値は、そのピクセルの付近の再構成されたオプティカルフローの精度を特徴づけることができる。
【0076】
システムは、たとえば、システムによって以前に生成された、先行するビデオフレームの再構成を取得し、現在のビデオフレームの初期再構成を生成するために、再構成されたオプティカルフローに従って先行するビデオフレームの再構成をワープする。任意選択で、現在のビデオフレームの初期再構成を生成することの一部として、システムは、信頼マスクに従ってぼかし動作を適用することができる。現在のビデオフレームの初期再構成における各ピクセルに適用されるべきぼかしの量は、そのピクセルに対する信頼値によって定義される。
【0077】
システムは、任意の適切なワープ技法を使用して、再構成されたオプティカルフローに従って先行するビデオフレームの再構成をワープすることができる。たとえば、システムは、現在のビデオフレームの初期再構成を
【0078】
【数1】
【0079】
として生成することができ、ここで、x'は現在のビデオフレームの初期再構成であり、xは先行するビデオフレームの再構成であり、
【0080】
【数2】
【0081】
は再構成されたオプティカルフローであり、σは信頼マスクであり、Warp(・)は(たとえば、E. Agustssonら、「Scale-space flow for end-to-end optimized video compression」、Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition、8503~8512頁、2020年を参照して説明されるような)バイリニアまたはトライリニアワープ動作であり、AB(・,σ)は信頼マスクσに従ってスケール空間ぼかし動作(すなわち、ぼかし動作、ここで、σはぼかしスケールを定義する)を定義する。
【0082】
システムは、現在のビデオフレームについての残差潜在を生成する(308)。より具体的には、残差潜在を生成するために、システムは、(i)現在のビデオフレームと(ii)現在のビデオフレームの初期再構成との間の差(すなわち、誤差)として残差ビデオフレームを生成する。たとえば、システムは、現在のビデオフレームの初期再構成から現在のビデオフレームを差し引くことによって、残差ビデオフレームを生成することができる。次いで、システムは、残差潜在を生成するために、便宜上、残差エンコーダニューラルネットワークと呼ばれるニューラルネットワークを使用して残差ビデオフレームを処理する。システムは、特に、残差潜在の中の各数値を量子化することによって、残差潜在を量子化する。
【0083】
システムは、現在のビデオフレームの再構成を生成する(310)。より具体的には、現在のビデオフレームの再構成を生成するために、システムは、残差ビデオフレームの再構成を生成するために、便宜上、残差生成器ニューラルネットワークと呼ばれるニューラルネットワークを使用して現在のビデオフレームについての(量子化された)残差潜在を含む入力を処理する。(残差エンコーダニューラルネットワークおよび残差生成器ニューラルネットワークは、オートエンコーダニューラルネットワークをまとめて定義するものと理解され得る。)
【0084】
いくつかの実装形態では、システムは、便宜上、「フリー」潜在と呼ばれる、現在のビデオフレームの初期再構成を表す潜在を生成する。たとえば、システムは、フリー潜在を生成するために、エンコーダニューラルネットワーク(たとえば、Iフレームエンコーダニューラルネットワーク)を使用して現在のビデオフレームの初期再構成を処理することができる。次いで、システムは、残差ビデオフレームの再構成を生成するために、残差生成器ニューラルネットワークによって処理される入力に(i)量子化された残差潜在と(ii)フリー潜在の両方を含めることができる。たとえば、システムは、量子化された残差潜在とフリー潜在を連結し、次いで、その連結を残差生成器ニューラルネットワークへの入力として提供することができる。加えて、現在のビデオフレームの初期再構成から抽出されたフリー潜在をフィードインすることは、フリー潜在によって提供される追加の情報およびコンテキストのおかげで、残差ビデオフレームにおいて合成される詳細の量を大幅に増加させることができる。さらに、圧縮解除システムは現在のビデオフレームの初期再構成からフリー潜在を直接計算することができる(したがって、潜在は「フリー」である)ので、フリー潜在は圧縮されたビデオデータに符号化される必要がない。
【0085】
再構成された残差ビデオフレームを生成した後、システムは、(i)再構成された残差ビデオフレームと(ii)現在のビデオフレームの初期再構成を合成(たとえば、合計)することによって、現在のビデオフレームの再構成を生成することができる。したがって、再構成された残差ビデオフレームは、先行するビデオフレームの再構成をワープすることによって生成された現在のビデオフレームの初期再構成における任意の誤差を補正するものと理解され得る。現在のビデオフレームが最後のビデオフレームではない場合、システムは続いて、たとえば、ステップ306において説明されたように、次のビデオフレームの初期再構成を生成するために現在のビデオフレームの再構成を使用する。
【0086】
システムは、現在のビデオフレームがビデオの中の最終ビデオフレームであるかどうかを決定する(312)。
【0087】
現在のビデオフレームがビデオの中の最終ビデオフレームではないとの決定に応答して、システムは次のビデオフレームに進み、ステップ304に戻る。
【0088】
現在のビデオフレームが最終ビデオフレームであるとの決定に応答して、システムは、少なくともビデオフレームを表す量子化された潜在から、ビデオを表す圧縮されたビデオデータを生成する(316)。より具体的には、システムは、少なくとも(i)第1のビデオフレームを表す量子化された潜在ならびに(ii)ビデオの中の第1のビデオフレームの後の各ビデオフレームについてのそれぞれの量子化されたフロー潜在および量子化された残差潜在から、圧縮されたビデオデータを生成する。
【0089】
たとえば、システムは、エントロピー符号化技法、たとえば、ハフマンコーディングまたは算術コーディングを使用して、ビデオフレームを表す量子化された潜在を圧縮することができる。システムは、考えられる量子化された数値のセットにわたる事前定義された確率分布を使用して、または量子化された潜在に基づいて決定された適応確率分布を使用して、量子化された潜在を圧縮することができる。エントロピー符号化のための適応確率分布を決定するための例示的な技法は、D. Minnenら、「Joint autoregressive and hierarchical priors for learned image compression」、Advances in Neural Information Processing Systems、10771~10780頁、2018年を参照して説明される。ビデオフレームを表す量子化された潜在のエントロピー符号化された表現は、ビデオを表す圧縮されたビデオデータの一部または全部をまとめて形成する。
【0090】
図4は、例示的な圧縮解除システム400を示す。圧縮解除システム400は、以下で説明されるシステム、構成要素、および技法が実装される、1つまたは複数のロケーションにおける1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されるシステムの一例である。
【0091】
圧縮解除システム400は、圧縮されたビデオデータ114によって表される元のビデオ104を再構成するために、圧縮システム100によって生成された圧縮されたビデオデータ114を処理するように構成される。圧縮されたビデオデータ114は、図3を参照して上記で説明されたように、ビデオの中の各ビデオフレームについての符号化された(たとえば、エントロピー符号化された)量子化された潜在を含む。
【0092】
圧縮解除システム400は、復号エンジン410、Iフレーム圧縮解除システム402、およびPフレーム圧縮解除システム404を含み、これらは各々、次に説明される。
【0093】
復号エンジン410は、ビデオの中の各ビデオフレームについての量子化された潜在の復号された表現を生成するために、圧縮されたビデオデータ114をエントロピー復号するように構成される。特に、復号エンジン410は、ビデオの中の第1のフレームを表すIフレーム潜在408-Aおよびビデオの中の第1のビデオフレームの後の各ビデオフレームを表すそれぞれのPフレーム潜在408-B~Dを生成する。ビデオフレームについてのPフレーム潜在408-B~Dは、図3を参照して上記で説明されたように、フロー潜在および残差潜在を含む。
【0094】
Iフレーム圧縮解除システム400は、ビデオの中の第1のビデオフレームの再構成406を生成するために、Iフレーム潜在408-Aを処理するように構成される。第1のビデオフレームの再構成を生成するためにIフレーム圧縮解除システム400によって実施され得る例示的な動作は、図6でより詳細に説明される。
【0095】
ビデオの中の第1のビデオフレームの後の各ビデオフレームについて、Pフレーム圧縮解除システム400は、現在のビデオフレームの再構成406を生成するために、(i)先行するビデオフレームの再構成406および(ii)現在のビデオフレームについてのPフレーム潜在408-B~Dを処理するように構成される。Pフレーム圧縮解除システム400の一例は、図5を参照してより詳細に説明される。
【0096】
ビデオのビデオフレームの再構成406は、元のビデオ104をまとめて定義する。
【0097】
図5は、例示的なPフレーム圧縮解除システム400を示す。Pフレーム圧縮解除システム400は、以下で説明されるシステム、構成要素、および技法が実装される、1つまたは複数のロケーションにおける1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されるシステムの一例である。
【0098】
Pフレーム圧縮解除システムは、(i)先行するビデオフレームの再構成512ならびに(ii)現在のビデオフレームについてのフロー潜在514および残差潜在516を処理することによって、ビデオの中の現在のビデオフレームの再構成506を生成するように構成される。
【0099】
先行するビデオフレームの再構成は、Iフレーム圧縮解除システムまたはPフレーム圧縮解除システムの前の出力として取得される。より具体的には、現在のビデオフレームがビデオの中の第2のビデオフレームである場合、先行するビデオフレームの再構成512はIフレーム圧縮解除システムの出力として取得される。現在のビデオフレームがビデオの中の第2のビデオフレームの後である場合、先行するビデオフレームの再構成512はPフレーム圧縮解除システムの前の出力として取得される。
【0100】
Pフレーム圧縮解除システムは、フロー復号エンジン502および残差復号エンジン504を含み、これらは各々、次に説明される。
【0101】
フロー復号エンジン502は、現在のビデオフレームの初期再構成508を生成するために、先行するビデオフレームの再構成512およびフロー潜在514を処理するように構成される。より具体的には、フロー復号エンジン502は、先行するビデオフレームと現在のビデオフレームとの間のオプティカルフローの再構成を生成するために、フロー潜在を処理する。次いで、フロー復号エンジン502は、現在のビデオフレームの初期再構成508を生成するために、オプティカルフローに従って先行するビデオフレームの再構成をワープする。
【0102】
残差復号エンジン504は、残差ビデオフレームの再構成510を生成するために、残差潜在516を処理するように構成される。
【0103】
次いで、Pフレーム圧縮解除システムは、現在のビデオフレームの再構成506を生成するために、現在のビデオフレームの初期再構成508を残差ビデオフレームの再構成510と合成、たとえば、合計する。
【0104】
図6は、ビデオを圧縮解除するための例示的なプロセス600の流れ図である。便宜上、プロセス600は、1つまたは複数のロケーションに位置する1つまたは複数のコンピュータのシステムによって実施されるものとして説明される。たとえば、圧縮解除システム、たとえば、本明細書に従って適切にプログラムされた図4の圧縮解除システム400は、プロセス600を実施することができる。
【0105】
システムは、ビデオを表す圧縮されたビデオデータを受信する(602)。圧縮されたビデオデータは、たとえば、データ通信ネットワークを介して受信されるか、または、たとえば、メモリから取り出される場合がある。圧縮されたビデオデータは、たとえば、図3を参照して説明されたように、圧縮システムによって生成される。圧縮されたビデオデータは、ビデオの中の各ビデオフレームについて、ビデオフレームを表す1つまたは複数の符号化された(たとえば、エントロピー符号化された)量子化された潜在を含む。
【0106】
システムは、ビデオの中の各ビデオフレームについて、ビデオフレームを表す1つまたは複数の量子化された潜在を復元するために、圧縮されたビデオデータを復号する(604)。システムは、たとえば、任意の適切なエントロピー復号技法を使用して、ビデオフレームを表す量子化された潜在を復号することができる。第1のビデオフレームの後の各ビデオフレームについて、システムは、ビデオフレームについての(i)量子化されたフロー潜在および(ii)量子化された残差潜在を復号する。
【0107】
システムは、ビデオの中の第1のビデオフレームの再構成を生成する(606)。より具体的には、システムは、Iフレーム生成器ニューラルネットワークを使用して第1のビデオフレームを表す量子化された潜在を処理する。Iフレーム生成器ニューラルネットワークは、たとえば、図3のステップ302を参照して説明されたように、圧縮システムによって実装されるIフレーム生成器ニューラルネットワークと同じパラメータ値を共有する。
【0108】
システムは、ビデオの中の第1のビデオフレームの後の各ビデオフレームについてステップ608~612を実施する。便宜上、ステップ608~612は、「現在の」ビデオフレームに関して説明される。
【0109】
システムは、現在のビデオフレームについての量子化されたフロー潜在を使用して現在のビデオフレームの初期再構成を生成する(608)。より具体的には、システムは、先行するビデオフレームと現在のビデオフレームとの間のオプティカルフローの再構成を生成するために、フロー生成器ニューラルネットワークを使用して量子化されたフロー潜在を処理する。フロー生成器ニューラルネットワークは、たとえば、図3のステップ306を参照して説明されたように、圧縮システムによって実装されるフロー生成器ニューラルネットワークと同じパラメータ値を共有する。次いで、システムは、現在のビデオフレームの初期再構成を生成するために、再構成されたオプティカルフローを使用して先行するビデオフレームの再構成をワープする。
【0110】
システムは、現在のビデオフレームの初期再構成および現在のビデオフレームについての残差潜在を使用して現在のビデオフレームの再構成を生成する(610)。より具体的には、システムは、残差ビデオフレームの再構成を生成するために、残差生成器ニューラルネットワークを使用して現在のビデオフレームについての量子化された残差潜在を含む入力を処理する。残差生成器ニューラルネットワークは、たとえば、図3のステップ310を参照して説明されたように、圧縮システムによって実装される残差生成器ニューラルネットワークと同じパラメータ値を共有する。いくつかの実装形態では、残差生成器ニューラルネットワークへの入力は、現在のビデオフレームの初期再構成を表すフリー潜在をさらに含む。システムは、たとえば、エンコーダニューラルネットワーク、たとえば、図3のステップ302を参照して説明されたIフレームエンコーダニューラルネットワークを使用して現在のビデオフレームの初期再構成を処理することによって、フリー潜在を生成することができる。
【0111】
残差ビデオフレームの再構成を生成した後、システムは、(i)残差ビデオフレームおよび(ii)現在のビデオフレームの初期再構成を使用して現在のビデオフレームの再構成を生成する。たとえば、システムは、残差ビデオフレームと現在のビデオフレームの初期再構成との合計として現在のビデオフレームの再構成を生成することができる。
【0112】
システムは、現在のビデオフレームがビデオの中の最終ビデオフレームであるかどうかを決定する(612)。
【0113】
現在のビデオフレームがビデオの中の最終ビデオフレームではない場合、システムは次のビデオフレームに進み(614)、ステップ608に戻る。
【0114】
現在のビデオフレームがビデオの中の最終ビデオフレームである場合、システムは、再構成された、すなわち、ビデオの各ビデオフレームの再構成を含む、ビデオを出力する。
【0115】
図7は、例示的なトレーニングシステム700を示す。トレーニングシステム700は、以下で説明されるシステム、構成要素、および技法が実装される、1つまたは複数のロケーションにおける1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されるシステムの一例である。
【0116】
トレーニングシステムは、目的関数を最適化するために、トレーニングビデオのセットに対して圧縮システムおよび圧縮解除システムに含まれるニューラルネットワークをトレーニングするように構成される。
【0117】
より具体的には、トレーニングシステムは、IフレームエンコーダニューラルネットワークEI、Iフレーム生成器ニューラルネットワークGI、フローエンコーダニューラルネットワークEflow、フロー生成器ニューラルネットワークGflow、残差エンコーダニューラルネットワークEres、および残差生成器ニューラルネットワークGresをトレーニングする。EI、GI、Eflow、Gflow、Eres、およびGresによって実施される動作は、たとえば、図3および図6を参照して上記で説明されており、これらの動作は、たとえば、図中の相対的なサイズによって示されたキャパシティを有する畳み込みニューラルネットワークを使用して実装され得る。トレーニングシステムは、次により詳細に説明されるように、Iフレーム識別器ニューラルネットワークDIおよびPフレーム識別器ニューラルネットワークDPとともに、圧縮システムおよび圧縮解除システムに含まれるニューラルネットワークを一緒にトレーニングする。破線によって示された経路は復号中にはアクティブではなく、DIおよびDPはトレーニング中にのみアクティブであり、SGは勾配停止動作を示す。
【0118】
各トレーニングビデオについて、トレーニングシステムは、第1のビデオフレームを表す量子化された潜在yIを生成するために、Iフレームエンコーダニューラルネットワークを使用してトレーニングビデオの中の第1のビデオフレームを処理し、次いで、第1のビデオフレームの再構成
【0119】
【数3】
【0120】
を生成するために、Iフレーム生成器ニューラルネットワークを使用して第1のビデオフレームを表す量子化された潜在を処理することができる。次いで、トレーニングシステムは、Iフレーム識別器スコアを生成するために、Iフレーム識別器ニューラルネットワークを使用して第1のビデオフレームを表す潜在および第1のビデオフレームの再構成を処理する。Iフレーム識別器ニューラルネットワークは、入力ビデオフレームがIフレーム生成器ニューラルネットワークによって生成された尤度を定義するIフレーム識別器スコアを生成するために、ビデオフレームを表す潜在およびビデオフレームを処理するように構成される。
【0121】
トレーニングシステムは、たとえば、
【0122】
【数4】
【0123】
によって与えられる目的関数を最適化するために、IフレームエンコーダニューラルネットワークおよびIフレーム生成器ニューラルネットワークをトレーニングし、ここで、λおよびβは、ハイパーパラメータであり、
【0124】
【数5】
【0125】
は、第1のビデオフレームと第1のビデオフレームの再構成との間の距離(たとえば、L1またはL2距離)を測定し、
【0126】
【数6】
【0127】
は、第1のビデオフレームの再構成および第1のビデオフレームを表す潜在を処理することによってIフレーム識別器ニューラルネットワークによって生成されたIフレーム識別器スコアを示し、R(yI)は、第1のビデオフレームを表す潜在を記憶するために必要とされるビットの数(ビットレート)を表す。識別器スコアに依存する目的関数の中の項は、敵対的損失項と呼ばれる場合がある。(敵対的損失を含む目的関数を使用してトレーニングされる結果として、IフレームエンコーダニューラルネットワークおよびIフレーム生成器ニューラルネットワークは、敵対的生成ニューラルネットワークをまとめて定義するものと理解され得る。)
【0128】
トレーニングシステムは、たとえば、
【0129】
【数7】
【0130】
によって与えられる目的関数を最適化するために、Iフレーム識別器ニューラルネットワークをトレーニングし、ここで、
【0131】
【数8】
【0132】
は、第1のビデオフレームの再構成および第1のビデオフレームを表す潜在を処理することによってIフレーム識別器ニューラルネットワークによって生成されたIフレーム識別器スコアを示し、DI(xI,yI)は、第1のビデオフレームおよび第1のビデオフレームを表す潜在を処理することによってIフレーム識別器ニューラルネットワークによって生成されたIフレーム識別器スコアを示す。
【0133】
第1のビデオフレームの後の各ビデオフレームについて、トレーニングシステムは、(たとえば、フロー予測ニューラルネットワークUFlowを使用して)現在のビデオフレームと先行するビデオフレームとの間のオプティカルフローFtを生成し、オプティカルフローを表す量子化されたフロー潜在yt,fを生成するためにフローエンコーダニューラルネットワークを使用してオプティカルフローデータを処理し、再構成されたオプティカルフローデータ
【0134】
【数9】
【0135】
および信頼マスクσtを生成するためにフロー生成器ニューラルネットワークを使用して量子化されたオプティカルフロー潜在を処理する。次いで、トレーニングシステムは、現在のビデオフレームの初期再構成
【0136】
【数11】
【0137】
を生成するために、適応型ぼかしを伴うワープ動作を使用して先行するビデオフレームの再構成
【0138】
【数10】
【0139】
、再構成されたオプティカルフローデータ、および信頼マスクを処理する。
【0140】
トレーニングシステムは、現在のビデオフレームの初期再構成と現在のビデオフレームとの間の差として残差ビデオフレームrtを生成し、残差エンコーダニューラルネットワークを使用して残差ビデオフレームを処理することによって量子化された残差潜在を生成し、残差生成器ニューラルネットワークを使用して残差潜在を含む入力を処理することによって残差ビデオフレームの再構成
【0141】
【数12】
【0142】
を生成する。任意選択で、トレーニングシステムは、現在のビデオフレームの初期再構成を表すフリー潜在
【0143】
【数13】
【0144】
を生成するために、Iフレームエンコーダニューラルネットワークを使用して現在のビデオフレームの初期再構成を処理し、フリー潜在を残差生成器ニューラルネットワークへの入力に含めることができる。トレーニングシステムは、現在のビデオフレームの初期再構成と残差ビデオフレームの再構成を合計することによって現在のビデオフレームの再構成
【0145】
【数14】
【0146】
を生成することができる。
【0147】
次いで、トレーニングシステムは、Pフレーム識別器スコアを生成するために、Pフレーム識別器ニューラルネットワークDPを使用して現在のビデオフレームの再構成および残差生成器ニューラルネットワークへの入力を処理する。Pフレーム識別器ニューラルネットワークは、入力ビデオフレームがフロー生成器ニューラルネットワークおよび残差生成器ニューラルネットワークを使用して生成された尤度を定義するPフレーム識別器スコアを生成するために、ビデオフレームを含む入力を処理するように構成される。いくつかの実装形態では、Iフレーム識別器ニューラルネットワークとPフレーム識別器ニューラルネットワークの両方は、スペクトル正規化を使用してもよい。
【0148】
トレーニングシステムは、たとえば、
【0149】
【数15】
【0150】
によって与えられる目的関数を最適化するために、フローエンコーダニューラルネットワーク、フロー生成器ニューラルネットワーク、残差エンコーダニューラルネットワーク、および残差生成器ニューラルネットワークをトレーニングし、ここで、tは、第2のビデオフレームから最後のビデオフレームまでのビデオフレームをインデックス付けし、Tは、ビデオフレームの数であり、λ、β、kflow、およびkTVは、ハイパーパラメータであり、
【0151】
【数16】
【0152】
は、t-ビデオフレームxtと第tのビデオフレームの再構成
【0153】
【数17】
【0154】
との間の誤差を表し、
【0155】
【数18】
【0156】
は、第tのビデオフレームの再構成および第tのビデオフレームについての残差生成器ニューラルネットワークへの入力を処理することによってPフレーム識別器ニューラルネットワークによって生成されたPフレーム識別器スコアを表し、SG(σt)は、第tのビデオフレームに対する信頼マスクσtに作用する勾配停止動作を表し、
【0157】
【数19】
【0158】
は、第tのビデオフレームについてのオプティカルフローと第tのビデオフレームについての再構成されたオプティカルフローとの間のL2誤差を表し、TV(σt)は、σtの全変動を表し、R(yt,r)は、ビデオフレームxtを表す潜在を記憶するために必要とされるビットの数(ビットレート)を表す。識別器スコアに依存する目的関数の中の項は、敵対的損失項と呼ばれる場合がある。(敵対的損失を含む目的関数を使用してトレーニングされる結果として、残差エンコーダニューラルネットワークおよび残差生成器ニューラルネットワークは、敵対的生成ニューラルネットワークをまとめて定義するものと理解され得る。)
【0159】
トレーニングシステムは、たとえば、
【0160】
【数20】
【0161】
によって与えられる目的関数を最適化するために、Pフレーム識別器ニューラルネットワークをトレーニングし、ここで、tは、第2のビデオフレームから最後のビデオフレームまでのビデオフレームをインデックス付けし、Tは、ビデオフレームの数であり、
【0162】
【数21】
【0163】
は、Pフレーム識別器ニューラルネットワークを使用して第tのビデオフレームの再構成
【0164】
【数22】
【0165】
および残差生成器ニューラルネットワークへの入力yt,rを処理することによって生成されたPフレーム識別器スコアであり、DP(xt,yt,r)は、Pフレーム識別器ニューラルネットワークを使用して第tのビデオフレームxtおよび残差生成器ニューラルネットワークへの入力yt,rを処理することによって生成されたPフレーム識別器スコアである。
【0166】
トレーニングシステムは、オプティカルフロー予測を実施するためにフロー予測ニューラルネットワークUFlowを事前トレーニングすることができ、任意選択で、圧縮システムおよび圧縮解除システムに含まれるその他のニューラルネットワークのトレーニング中にフロー予測ニューラルネットワークのパラメータ値をフリーズすることができる。
【0167】
本明細書は、システムおよびコンピュータプログラム構成要素に関連して「構成された(configured)」という用語を使用する。1つまたは複数のコンピュータのシステムが特定の動作またはアクションを実施するように構成されるとは、システムが、動作時にシステムに動作またはアクションを実施させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをシステムにインストールしていることを意味する。1つまたは複数のコンピュータプログラムが特定の動作またはアクションを実施するように構成されるとは、1つまたは複数のプログラムが、データ処理装置によって実行されると装置に動作またはアクションを実施させる命令を含むことを意味する。
【0168】
本明細書で説明される主題の実施形態および機能的動作は、デジタル電子回路において、有形に具現化されたコンピュータソフトウェアもしくはファームウェアにおいて、本明細書で開示される構造およびその構造的等価物を含むコンピュータハードウェアにおいて、またはそれらのうちの1つもしくは複数の組合せにおいて実装され得る。本明細書で説明される主題の実施形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置による実行のためにまたはデータ処理装置の動作を制御するために有形の非一時的記憶媒体上で符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装され得る。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムもしくはシリアルアクセスメモリデバイス、またはそれらのうちの1つまたは複数の組合せであり得る。代替としてまたは追加として、プログラム命令は、データ処理装置による実行のために好適な受信機装置に送信するための情報を符号化するために生成された、人工的に生成された伝搬信号、たとえば、機械生成された電気信号、光信号、または電磁信号上で符号化され得る。
【0169】
「データ処理装置」という用語は、データ処理ハードウェアを指し、例としてプログラマブルプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのすべての種類の装置、デバイス、および機械を包含する。装置は、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)でもあり得るか、またはそれらをさらに含むことができる。装置は、任意選択で、ハードウェアに加えて、コンピュータプログラム用の実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つもしくは複数の組合せを構成するコードを含むことができる。
【0170】
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、スクリプト、またはコードと呼ばれることもあるかまたはそれらとして説明されることがあるコンピュータプログラムは、コンパイラ型言語もしくはインタープリタ型言語または宣言型言語もしくは手続き型言語を含む任意の形態のプログラミング言語で書かれる場合があり、スタンドアロンプログラムとしてまたはコンピューティング環境での使用に適したモジュール、構成要素、サブルーチン、もしくは他のユニットとして含む任意の形態で展開される場合がある。プログラムは、ファイルシステムの中のファイルに対応し得るが、そうである必要はない。プログラムは、他のプログラムまたはデータ、たとえば、マークアップ言語文書に記憶された1つまたは複数のスクリプトを保持するファイルの一部分に、当該のプログラム専用の単一のファイルに、または複数の協調ファイル、たとえば、1つもしくは複数のモジュール、サブプログラム、もしくはコードの部分を記憶するファイルに記憶される場合がある。コンピュータプログラムは、1つのコンピュータ上で、または1つのサイトに位置するかもしくは複数のサイトにわたって分散され、データ通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように展開される場合がある。
【0171】
本明細書では、「エンジン」という用語は、1つまたは複数の特定の機能を実施するようにプログラムされた、ソフトウェアベースのシステム、サブシステム、またはプロセスを指すために広く使用される。一般に、エンジンは、1つまたは複数のロケーションにおける1つまたは複数のコンピュータにインストールされた1つまたは複数のソフトウェアモジュールまたは構成要素として実装される。いくつかの場合、1つまたは複数のコンピュータは特定のエンジン専用であり、他の場合、複数のエンジンは同じ1つまたは複数のコンピュータにインストールされ、そのコンピュータ上で動作し得る。
【0172】
本明細書で説明されるプロセスおよび論理フローは、入力データを操作することおよび出力を生成することによって機能を実施するために1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラマブルコンピュータによって実施され得る。プロセスおよび論理フローはまた、専用論理回路、たとえば、FPGAもしくはASICによって、または専用論理回路と1つもしくは複数のプログラムされたコンピュータの組合せによって実施され得る。
【0173】
コンピュータプログラムの実行に適したコンピュータは、汎用マイクロプロセッサもしくは専用マイクロプロセッサまたはその両方、あるいは任意の他の種類の中央処理ユニットに基づき得る。一般に、中央処理ユニットは、読取り専用メモリもしくはランダムアクセスメモリまたはその両方から命令およびデータを受信する。コンピュータの必須要素は、命令を実施または実行するための中央処理ユニット、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。中央処理ユニットおよびメモリは、専用論理回路によって補完されるか、または専用論理回路に組み込まれる場合がある。一般に、コンピュータは、データを記憶するための1つまたは複数の大容量記憶デバイス、たとえば、磁気、光磁気ディスク、または光ディスクも含むか、あるいはそれらからデータを受信することもしくはそれらにデータを転送することまたはその両方を行うために動作可能に結合される。しかしながら、コンピュータはそのようなデバイスを有する必要はない。さらに、コンピュータは、別のデバイス、たとえば、ほんの数例を挙げると、モバイル電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブル記憶デバイス、たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブに埋め込まれる場合がある。
【0174】
コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、例として、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス;磁気ディスク、たとえば、内部ハードディスクまたはリムーバブルディスク;光磁気ディスク;ならびにCD-ROMおよびDVD-ROMディスクを含む、すべての形態の不揮発性メモリ、媒体およびメモリデバイスを含む。
【0175】
ユーザとの対話を提供するために、本明細書で説明される主題の実施形態は、情報をユーザに表示するためのディスプレイデバイス、たとえば、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニタと、キーボードおよびポインティングデバイス、たとえば、それによってユーザがコンピュータへの入力を提供することができるマウスまたはトラックボールとを有するコンピュータ上で実装され得る。ユーザとの対話を提供するために他の種類のデバイスも使用される場合があり、たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであることができ、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形態で受信され得る。加えて、コンピュータは、ユーザによって使用されるデバイスに文書を送り、そのデバイスから文書を受信することによって、たとえば、ユーザのデバイス上のウェブブラウザから受信された要求に応答して、そのウェブブラウザにウェブページを送ることによって、ユーザと対話することができる。また、コンピュータは、テキストメッセージまたは他の形態のメッセージをパーソナルデバイス、たとえば、メッセージングアプリケーションを実行しているスマートフォンに送り、返報としてユーザからの応答メッセージを受信することによって、ユーザと対話することができる。
【0176】
機械学習モデルを実装するためのデータ処理装置は、たとえば、機械学習のトレーニングまたは製作、すなわち、推論、作業負荷の共通部分および計算集約的部分を処理するための専用ハードウェアアクセラレータユニットも含むことができる。
【0177】
機械学習モデルは、機械学習フレームワーク、たとえば、TensorFlowフレームワークを使用して実装および展開され得る。
【0178】
本明細書で説明される主題の実施形態は、バックエンド構成要素を、たとえば、データサーバとして含むか、またはミドルウェア構成要素、たとえば、アプリケーションサーバを含むか、またはフロントエンド構成要素、たとえば、それを通じてユーザが本明細書で説明される主題の一実装形態と対話することができるグラフィカルユーザインターフェース、ウェブブラウザ、もしくはアプリを有するクライアントコンピュータを含むコンピューティングシステム、または1つもしくは複数のそのようなバックエンド構成要素、ミドルウェア構成要素、もしくはフロントエンド構成要素の任意の組合せにおいて実装され得る。システムの構成要素は、任意の形態またはデジタルデータ通信の媒体、たとえば、通信ネットワークによって相互接続され得る。通信ネットワークの例は、ローカルエリアネットワーク(LAN)およびワイドエリアネットワーク(WAN)、たとえば、インターネットを含む。
【0179】
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントおよびサーバは一般に互いから離れており、典型的には通信ネットワークを通じて対話する。クライアントとサーバの関係は、それぞれのコンピュータ上で動作し、互いとのクライアント-サーバ関係を有するコンピュータプログラムによって生じる。いくつかの実施形態では、サーバは、たとえば、クライアントとして働くデバイスと対話しているユーザにデータを表示し、そのユーザからユーザ入力を受信する目的で、データ、たとえば、HTMLページをユーザデバイスに送信する。ユーザデバイスにおいて生成されたデータ、たとえば、ユーザ対話の結果は、そのデバイスからサーバにおいて受信され得る。
【0180】
本明細書は多くの特定の実装形態の詳細を含むが、これらは任意の発明の範囲または特許請求され得るものの範囲に対する限定として解釈されるべきではなく、むしろ、特定の発明の特定の実施形態に固有であり得る特徴の説明として解釈されるべきである。別個の実施形態の文脈で本明細書で説明されるいくつかの特徴は、単一の実施形態において組み合わせて実装される場合もある。逆に、単一の実施形態の文脈で説明される様々な特徴は、複数の実施形態において別々にまたは任意の好適な副組合せで実装される場合もある。さらに、特徴は特定の組合せで働くものとして上記で説明され、そのようなものとして最初に特許請求されることさえあるが、特許請求される組合せからの1つまたは複数の特徴は、いくつかの場合、その組合せから削除される場合があり、特許請求される組合せは、副組合せまたは副組合せの変形形態を対象とすることがある。
【0181】
同様に、動作は特定の順序で図面に示され、特許請求の範囲において列挙されるが、これは、所望の結果を達成するために、そのような動作が示された特定の順序でもしくは逐次的な順序で実施されることまたはすべての図示された動作が実施されることを必要とするものと理解されるべきではない。特定の状況では、マルチタスキングおよび並列処理が有利であり得る。さらに、上記で説明された実施形態における様々なシステムモジュールおよび構成要素の分離は、すべての実施形態においてそのような分離を必要とするものと理解されるべきではなく、説明されるプログラム構成要素およびシステムは一般に、単一のソフトウェア製品に一緒に組み込まれるか、または複数のソフトウェア製品にパッケージングされることが可能であることが理解されるべきである。
【0182】
主題の特定の実施形態が説明されてきた。他の実施形態は以下の特許請求の範囲の範囲内にある。たとえば、特許請求の範囲において列挙されるアクションは、異なる順序で実施され、依然として所望の結果を達成することが可能である。一例として、添付の図に示される処理は、所望の結果を達成するために、必ずしも示された特定の順序または逐次的な順序を必要としない。いくつかの場合、マルチタスキングおよび並列処理が有利であり得る。
【符号の説明】
【0183】
100 圧縮システム
102 Iフレーム圧縮システム
104 ビデオ、元のビデオ
106、106-A、106-B、106-C、106-D ビデオフレーム
108 再構成、再構成されたバージョン
110 潜在
112 符号化エンジン、残差符号化エンジン
114 圧縮されたビデオデータ
200 Pフレーム圧縮システム
202 フロー符号化エンジン
206 フロー潜在
208 残差潜在
210 初期再構成
212 再構成
214 現在の残差フレーム
216 再構成
218 先行するビデオフレーム
220 現在のビデオフレーム
300 プロセス
400 圧縮解除システム
402 Iフレーム圧縮解除システム
404 Pフレーム圧縮解除システム
406 再構成
408-A Iフレーム潜在
408-B~D Pフレーム潜在
410 復号エンジン
502 フロー復号エンジン
504 残差復号エンジン
506 再構成
508 現在のビデオフレームの初期再構成
510 残差ビデオフレームの再構成
512 先行するビデオフレームの再構成
514 フロー潜在
516 残差潜在
600 プロセス
700 トレーニングシステム
図1
図2
図3
図4
図5
図6
図7
【手続補正書】
【提出日】2024-03-08
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
データ処理装置によって実施されるビデオを圧縮する方法であって、
フレームのビデオシーケンスを受信するステップと、
フロー予測ネットワークを使用して、2つのシーケンシャルフレームの間のオプティカルフローを生成するステップであって、前記2つのシーケンシャルフレームが、第1のフレームと、前記第1のフレームに続く第2のフレームとを含む、ステップと、
前記オプティカルフローから、第1のオートエンコーダニューラルネットワークを使用して、
前記第1のフレームと前記第2のフレームとの間の予測されたオプティカルフローと、
信頼マスクと
を生成するステップと、
前記予測されたオプティカルフローに従って前記第1のフレームの再構成をワープし、続いて、前記第2のフレームの初期の予測された再構成を取得するために前記信頼マスクに従ってぼかし動作を適用するステップと、
第2のオートエンコーダニューラルネットワークを使用して、前記第2のフレームと前記第2のフレームの前記初期の予測された再構成との間の差である残差の予測を生成するステップと、
予測された第2のフレームを取得するために前記第2のフレームの前記初期の予測された再構成と前記残差の前記予測を合成するステップと
を含み、
前記第1のオートエンコーダニューラルネットワークおよび前記第2のオートエンコーダニューラルネットワークの各々が、それぞれ、エンコーダネットワークおよび生成器ネットワークを含み、
前記第2のオートエンコーダニューラルネットワークの前記生成器ネットワークが、敵対的生成ニューラルネットワーク(GANN)の構成要素である、
方法。
【請求項2】
前記第1のフレームおよび前記第2のフレームが、第3のフレームに続き、前記第3のフレームが、前記ビデオシーケンスの中の初期フレームであり、
前記第2のフレームおよび前記第3のフレームを処理する前に、
前記第3のフレームから、第3のオートエンコーダニューラルネットワークを使用して、前記第3のフレームの予測された再構成を生成するステップと、
前記フロー予測ネットワークを使用して、第3のフレームと前記第1のフレームとの間のオプティカルフローを生成するステップと、
前記オプティカルフローから、前記第1のオートエンコーダニューラルネットワークを使用して、
前記第3のフレームと前記第1のフレームとの間の予測されたオプティカルフローと、
信頼マスクと
を生成するステップと、
前記予測されたオプティカルフローに従って前記第3のフレームの前記再構成をワープし、続いて、前記第1のフレームの初期の予測された再構成を取得するために前記信頼マスクに従ってぼかし動作を適用するステップと、
前記第2のオートエンコーダニューラルネットワークを使用して、前記第1のフレームと前記第1のフレームの前記初期の予測された再構成との間の差である残差の予測を生成するステップと、
予測された第1のフレームを取得するために前記第1のフレームの前記初期の予測された再構成と前記残差の前記予測を合成するステップと
をさらに含み、
前記第3のオートエンコーダニューラルネットワークが、エンコーダネットワークおよび生成器ネットワークを含み、
前記第3のオートエンコーダニューラルネットワークの第3の生成器ネットワークが、敵対的生成ニューラルネットワーク(GANN)の構成要素である、
請求項1に記載の方法。
【請求項3】
前記第2のオートエンコーダニューラルネットワークを使用して、残差潜在を取得するために残差を符号化するステップと、
前記第3のオートエンコーダニューラルネットワークを使用して、前記第2のフレームの初期予測を符号化することによってフリー潜在を取得するステップと、
前記フリー潜在と前記残差潜在を連結するステップと
をさらに含み、
前記第2のオートエンコーダニューラルネットワークを使用して、前記残差の前記予測を生成するステップが、前記フリー潜在と前記残差潜在の前記連結を使用して、前記予測された残差を前記第2のオートエンコーダニューラルネットワークによって生成するステップを含む、
請求項2に記載の方法。
【請求項4】
前記残差潜在の量子化をエントロピー符号化するステップであって、前記残差潜在の前記エントロピー符号化された量子化が、前記ビデオを表す圧縮されたビデオデータに含まれる、ステップをさらに含む、請求項3に記載の方法。
【請求項5】
前記残差潜在を取得するために前記残差を符号化するステップが、
前記残差潜在を生成するために前記第2のオートエンコーダニューラルネットワークのエンコーダニューラルネットワークを使用して前記残差を処理するステップ
を含む、請求項3に記載の方法。
【請求項6】
前記第2のフレームの前記初期予測を符号化することによって前記フリー潜在を取得するステップが、
前記フリー潜在を生成するためにエンコーダニューラルネットワークを使用して前記第2のフレームの前記初期予測を処理するステップ
を含む、請求項3に記載の方法。
【請求項7】
前記残差の前記予測を生成するステップが、
前記残差の前記予測を生成するために前記第2のオートエンコーダニューラルネットワークの生成器ニューラルネットワークを使用して前記フリー潜在と前記残差潜在の前記連結を処理するステップ
を含む、請求項3に記載の方法。
【請求項8】
前記予測された第2のフレームを取得するために前記第2のフレームの前記初期の予測された再構成と前記残差の前記予測を合成するステップが、
前記第2のフレームの前記初期の予測された再構成と前記残差の前記予測を合計することによって前記予測された第2のフレームを生成するステップ
を含む、請求項1に記載の方法。
【請求項9】
前記第1のフレームと前記第2のフレームとの間の前記予測されたオプティカルフローを生成するステップが、
前記オプティカルフローを表すフロー潜在を生成するために、前記第1のオートエンコーダニューラルネットワークの前記エンコーダネットワークを使用して前記フロー予測ネットワークによって生成された前記オプティカルフローを処理するステップと、
前記予測されたオプティカルフローを生成するために、前記第1のオートエンコーダニューラルネットワークの生成器ニューラルネットワークを使用して前記フロー潜在の量子化を処理するステップと
を含む、請求項1に記載の方法。
【請求項10】
前記フロー潜在の前記量子化をエントロピー符号化するステップであって、前記フロー潜在の前記エントロピー符号化された量子化が、前記ビデオを表す圧縮されたビデオデータに含まれる、ステップをさらに含む、請求項9に記載の方法。
【請求項11】
前記第1のオートエンコーダニューラルネットワークおよび前記第2のオートエンコーダニューラルネットワークが、敵対的損失を含む目的関数を最適化するためにトレーニングビデオのセットに対してトレーニングされている、請求項1に記載の方法。
【請求項12】
各トレーニングビデオの1つまたは複数のビデオフレームについて、前記敵対的損失が識別器スコアに基づき、識別器スコアが、
識別器ニューラルネットワークへの入力を生成することであって、前記入力が、前記第1のオートエンコーダニューラルネットワークおよび前記第2のオートエンコーダニューラルネットワークを使用して生成された前記ビデオフレームの再構成を含む、生成することと、
前記入力を前記識別器ニューラルネットワークに提供することであって、前記識別器ニューラルネットワークが、
入力ビデオフレームを含む入力を受信することと、
前記ビデオフレームが前記第1のオートエンコーダニューラルネットワークおよび前記第2のオートエンコーダニューラルネットワークを使用して生成された尤度を定義する出力識別器スコアを生成するために前記入力を処理することと
を行うように構成される、提供することと
を含む動作によって生成される、請求項11に記載の方法。
【請求項13】
ビデオを圧縮解除するための1つまたは複数のコンピュータによって実施される方法であって、
前記ビデオの圧縮された表現を受信するステップであって、前記ビデオの前記圧縮された表現が、前記ビデオの中の第1のビデオフレームの後の各ビデオフレームについて、先行するビデオフレームと前記ビデオフレームとの間のオプティカルフローを表す量子化されたフロー潜在を定義する、ステップと、
前記ビデオの中の各ビデオフレームの再構成を生成するステップであって、前記ビデオの中の前記第1のビデオフレームの後の各ビデオフレームについて、
前記ビデオの中の先行するビデオフレームの再構成を取得するステップと、
前記先行するビデオフレームと前記ビデオフレームとの間のオプティカルフローを生成するために、フロー生成器ニューラルネットワークを使用して前記ビデオフレームについての前記量子化されたフロー潜在を処理するステップと、
(i)前記先行するビデオフレームの前記再構成および(ii)前記先行するビデオフレームと前記ビデオフレームとの間の前記オプティカルフローを使用して前記ビデオフレームの前記再構成を生成するステップと
を含む、ステップと
を含む方法。
【請求項14】
(i)前記先行するビデオフレームの前記再構成および(ii)前記先行するビデオフレームと前記ビデオフレームとの間の前記オプティカルフローを使用して前記ビデオフレームの前記再構成を生成するステップが、
前記先行するビデオフレームと前記ビデオフレームとの間の前記オプティカルフローを使用して前記先行するビデオフレームの前記再構成をワープすることによって前記ビデオフレームの初期再構成を生成するステップと、
前記ビデオフレームの前記初期再構成を使用して前記ビデオフレームの前記再構成を生成するステップと
を含む、請求項13に記載の方法。
【請求項15】
前記ビデオフレームの前記初期再構成を使用して前記ビデオフレームの前記再構成を生成するステップが、
残差ビデオフレームの再構成を生成するステップであって、前記残差ビデオフレームが、(i)前記ビデオフレームと(ii)前記ビデオフレームの前記初期再構成との間の差によって定義される、ステップと、
前記残差ビデオフレームの再構成を前記ビデオフレームの前記初期再構成と合成することによって前記ビデオフレームの前記再構成を生成するステップと
を含む、請求項14に記載の方法。
【請求項16】
前記ビデオの前記圧縮された表現が、前記ビデオの中の前記第1のビデオフレームの後の各ビデオフレームについて、残差ビデオフレームを表す量子化された残差潜在をさらに含み、
前記残差ビデオフレームの前記再構成を生成するステップが、
前記残差ビデオフレームの前記再構成を生成するために、残差生成器ニューラルネットワークを使用して前記ビデオフレームについての前記量子化された残差潜在を処理するステップ
を含む、請求項15に記載の方法。
【請求項17】
前記ビデオの前記圧縮された表現が、前記ビデオの中の前記第1のビデオフレームを表す潜在を定義し、
前記第1のビデオフレームの前記再構成を生成するステップが、
前記第1のビデオフレームの前記再構成を生成するために、Iフレーム生成器ニューラルネットワークを使用して前記第1のビデオフレームを表す前記潜在を処理するステップ
を含む、請求項13に記載の方法。
【請求項18】
前記ビデオの前記圧縮された表現が、請求項1に記載の方法によって生成される、請求項13に記載の方法。
【請求項19】
コンピュータプログラムで符号化されたコンピュータ記憶媒体であって、前記プログラムが、データ処理装置によって実行されると、前記データ処理装置に請求項1から18のいずれか一項に記載の方法を実施させる命令を含む、コンピュータ記憶媒体。
【請求項20】
データ処理装置と、
コンピュータプログラムで符号化されたコンピュータ記憶媒体であって、前記プログラムが、前記データ処理装置によって実行されると、前記データ処理装置に請求項1から18のいずれか一項に記載の方法を実施させる命令を含む、コンピュータ記憶媒体と
を含むシステム。
【国際調査報告】