CN117616753A - 使用光流的视频压缩 - Google Patents

使用光流的视频压缩 Download PDF

Info

Publication number
CN117616753A
CN117616753A CN202280047971.4A CN202280047971A CN117616753A CN 117616753 A CN117616753 A CN 117616753A CN 202280047971 A CN202280047971 A CN 202280047971A CN 117616753 A CN117616753 A CN 117616753A
Authority
CN
China
Prior art keywords
frame
video
video frame
reconstruction
residual
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.)
Pending
Application number
CN202280047971.4A
Other languages
English (en)
Inventor
乔治·丹·托代里奇
埃里库尔·索尔·阿古斯特森
法比安·朱利叶斯·门策尔
戴维·查尔斯·米南
约翰内斯·巴勒
尼古拉斯·约翰斯通
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of CN117616753A publication Critical patent/CN117616753A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • G06N3/0455Auto-encoder networks; Encoder-decoder networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0475Generative networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0495Quantised networks; Sparse networks; Compressed networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/088Non-supervised learning, e.g. competitive learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/094Adversarial learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/18Image warping, e.g. rearranging pixels individually
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/60Image enhancement or restoration using machine learning, e.g. neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/70Denoising; Smoothing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/521Processing of motion vectors for estimating the reliability of the determined motion vectors or motion vector field, e.g. for smoothing the motion vector field or for correcting motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/537Motion estimation other than block-based
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

用于压缩视频数据的方法、系统和装置,包括在计算机存储介质上编码的计算机程序。在一个方面中,一种方法包括:接收视频帧序列;使用流预测网络生成两个顺序帧之间的光流,其中,所述两个顺序帧包括第一帧和在所述第一帧之后的第二帧;使用第一自动编码器神经网络从光流生成:所述第一帧和所述第二帧之间的预测光流;以及根据预测光流扭曲所述第一帧的重构,并且随后应用模糊操作以获得所述第二帧的初始预测重构。

Description

使用光流的视频压缩
背景技术
本说明书涉及使用机器学习模型处理数据。
机器学习模型接收输入并基于接收到的输入生成输出,例如预测的输出。一些机器学习模型是参数模型,并且基于接收到的输入和模型的参数的值来生成输出。
一些机器学习模型是深度模型,其采用多层模型来为接收到的输入生成输出。例如,深度神经网络是深度机器学习模型,其包括输出层和一个或多个隐藏层,每个隐藏层将非线性变换应用于接收到的输入以生成输出。
发明内容
本说明书描述了实现为能够压缩视频数据的在一个或多个位置中的一个或多个计算机上的计算机程序的压缩系统。
在整个说明书中,“潜量(latent)”能够指一个或多个数值的有序集合,例如数值的向量、矩阵或其他张量。
在整个说明书中,对输入数值进行“量化(quantize)”是指将输入数值映射到从可能数值的离散集合中提取的输出数值。例如,输入数值能够被映射到可能数值的离散集合中的最接近的数值。可能的数值的离散集合能够是例如范围[0,255]内的整数值,或数值的另一适当的离散集合。
在整个说明书中,第一视频帧与第二视频帧之间的光流针对第一视频帧中的每个像素定义表示第一视频帧与第二视频帧之间的像素的位移(运动)的流向量。每个流向量能够是例如视频帧的参考帧中的二维(2D)向量。
本说明书中所描述的每个神经网络能够具有使得神经网络能够执行其所描述的功能的任何适当的架构。例如,每个神经网络能够包括任何适当数量(例如,5层、10层或20层)并且以任何适当配置(例如,作为线性层序列)连接的任何适当类型的神经网络层(例如,卷积层、全连接层、注意力层等)。
在整个说明书中,视频帧序列中的第一视频帧可以被称为“I帧”,并且第一视频帧之后的视频帧可以被称为“P帧”(在一些情况下,单个视频可以被划分为多个视频帧序列,这样的单个视频能够有多个帧被指定作为I帧)。
在一个方面,描述了一种由数据处理装置执行的压缩视频的方法,其包括接收视频帧序列。该方法可以涉及处理视频帧序列以从先前帧预测后续(P)帧,特别是通过连续地处理视频序列的两个顺序帧。该两个顺序帧包括视频序列的第一帧和视频序列的第一帧之后的第二帧。
因此,该方法可以涉及使用流预测网络生成两个顺序帧之间的光流(更确切地说,表示光流的光流数据),其中,两个顺序帧包括第一帧和在第一帧之后的第二帧。该方法还可以涉及使用充当流编码引擎的第一自动编码器神经网络从光流生成第一帧与第二帧之间的预测光流;以及置信度掩码。在实施方式中,置信度掩码定义具有与预测光流相同的空间维度的置信度值的集合;例如,它可以针对的预测光流的每个像素具有置信度值(σ),例如范围为[0,σ_maz]。
在实施方式中,第一自动编码器神经网络包括耦合到生成器网络(之后是生成器网络)的编码器网络。在实施方式中,编码器神经网络处理光流以生成表示光流的流潜量。生成器网络处理流潜量以生成预测光流(光流的重构)。在实施方式中,流潜量可以被量化和熵代码化。
该方法可以涉及根据预测光流扭曲(warp)第一帧的重构(例如,根据处理先前的两个顺序帧),并且随后根据置信度掩码应用模糊操作以获得第二帧的初始预测重构。
扭曲第一帧的重构可以包括将预测光流应用于第一帧的重构。根据置信度掩码应用模糊操作可以包括将模糊操作应用于第一帧的扭曲重构,其中,由置信度掩码在空间位置处定义的置信度值定义了模糊的尺度(大小)。例如,更大的置信度值可以限定对空间位置处的像素更模糊化。
该方法还可以涉及使用充当残差编码引擎的第二自动编码器神经网络来生成残差(当前残差帧)的预测,该残差是第二帧与第二帧的初始预测重构之间的差。
在实施方式中,第二自动编码器神经网络包括耦合到生成器网络(之后是生成器网络)的编码器网络。
在实施方式中,编码器神经网络处理当前残差帧以生成表示当前残差帧的残差潜量。生成器网络处理残差潜量以生成(即当前残差帧的)残差的预测的重构,在实施方式中,残差潜量可以被量化和熵代码化。
该方法可以组合第二帧的初始预测重构和残差的预测以获得预测第二帧(当前帧的预测重构)。当处理视频序列的连续的两个顺序帧时,这可以被用作第一帧的重构。
视频序列的两个顺序帧的压缩视频可以包括流潜量——其可选地经量化和/或熵代码化以及残差潜量——其可选地经量化和/或熵代码化。因此,帧的压缩视频序列可以包括视频序列的两个顺序帧的连续集合的一系列这样的流潜量和残差潜量。
在一些实施方式中,但不是必要的,第二自动编码器神经网络的生成器网络是生成式对抗神经网络(GANN)的组件。也就是说,它可能已经使用对抗性损失进行训练,特别是利用取决于(由判别器神经网络生成的)判别器分数的值,该判别器分数定义视频帧是使用第二自动编码器的生成器网络来生成的可能性。
在一些实施方式中,但不是必要的,可以使用诸如第三自动编码器神经网络的I帧压缩系统(单独地)对视频序列的第一帧进行编码。例如,第三自动编码器神经网络的编码器网络可以生成表示第一视频帧的一个或多个潜量,并且第三自动编码器神经网络的生成器网络可以生成第一视频帧的重构。再次,表示第一视频帧的一个或多个潜量可以被量化和熵代码化。
根据一个方面,提供了一种由数据处理装置执行的压缩视频的方法,包括:接收视频帧序列;使用流预测网络生成两个顺序帧之间的光流,其中,该两个顺序帧包括第一帧和在第一帧之后的第二帧;使用第一自动编码器神经网络从光流生成:第一帧与第二帧之间的预测光流;以及置信度掩码;根据预测光流扭曲第一帧的重构,并且随后根据置信度掩码应用模糊操作,以获得第二帧的初始预测重构;使用第二自动编码器神经网络生成残差的预测,该残差是第二帧与第二帧的初始预测重构之间的差;组合第二帧的初始预测重构与残差的预测以获得预测第二帧;其中:第一自动编码器神经网络和第二自动编码器神经网络中的每一者分别包括编码器网络和生成器网络;以及第二自动编码器神经网络的生成器网络是生成式对抗神经网络(GANN)的组件。
在一些实施方式中:第一帧和第二帧在第三帧之后,并且其中,第三帧是视频序列中的初始帧;以及该方法进一步包括在处理第二帧和第三帧之前:使用第三自动编码器神经网络从第三帧生成第三帧的预测重构;使用流预测网络生成第三帧与第一帧之间的光流;使用第一自动编码器神经网络从光流生成:第三帧与第一帧之间的预测光流;以及置信度掩码;根据预测光流扭曲所述第三帧的重构,并且随后根据置信度掩码应用模糊操作,以获得第一帧的初始预测重构;使用第二自动编码器神经网络生成残差的预测,该残差是第一帧与第一帧的初始预测重构之间的差;以及组合第一帧的初始预测重构与残差的预测以获得预测第一帧;其中:第三自动编码器神经网络包括编码器网络和生成器网络;该第三自动编码器神经网络的第三生成器网络是生成式对抗神经网络(GANN)的组件。
在一些实施方式中,该方法进一步包括:使用第二自动编码器神经网络对残差进行编码以获得残差潜量;使用第三编码器神经网络通过对第二帧的初始预测进行编码来获得自由潜量;以及连结自由潜量和残差潜量;其中,使用第二自动编码器神经网络生成残差的预测包括:由第二自动编码器神经网络使用自由潜量和残差潜量的连结来生成预测残差。
在一些实施方式中,方法进一步包括对残差潜量的量化进行熵编码,其中,残差潜量的熵编码的量化被包括在表示视频的压缩视频数据中。
在一些实施方式中,对残差进行编码以获得残差潜量包括:使用第二自动编码器神经网络的编码器神经网络处理残差以生成残差潜量。
在一些实施方式中,通过对第二帧的初始预测进行编码来获得自由潜量包括:使用编码器神经网络处理第二帧的初始预测以生成自由潜量。
在一些实施方式中,生成残差的预测包括:使用第二自动编码器神经网络的生成器神经网络来处理自由潜量和残差潜量的连结,以生成残差的预测。
在一些实施方式中,组合第二帧的初始预测重构和残差的预测以获得预测的第二帧包括:通过对第二帧的初始预测重构和残差的预测进行求和来生成预测的第二帧。
在一些实施方式中,生成第一帧与第二帧之间的预测光流包括:使用第一自动编码器网络的编码器网络处理由所述流预测网络生成的所述光流,以生成表示所述光流的流潜量;以及使用第一自动编码器神经网络的生成器神经网络来处理流潜量的量化,以生成预测光流。
在一些实施方式中,该方法进一步包括对流潜量的量化进行熵编码,其中,流潜量的熵编码的量化被包括在表示视频的压缩视频数据中。
在一些实施方式中,已经在训练视频的集合上训练第一自动编码器神经网络和第二自动编码器神经网络,以优化包括对抗性损失的目标函数。
在一些实施方式中,针对每个训练视频的一个或多个视频帧,对抗性损失是基于判别器分数,其中,判别器分数是通过包括以下各项的操作生成的:生成对判别器神经网络的输入,其中,输入包括使用第一自动编码器神经网络和第二自动编码器神经网络生成的视频帧的重构;以及将输入提供给判别器神经网络,其中,判别器神经网络被配置为:接收包括输入视频帧的输入;以及处理输入以生成输出判别器分数,该输出判别器分数定义视频帧是使用第一自动编码器神经网络和第二自动编码器神经网络来生成的可能性。
根据另一方面,提供一种由一个或多个计算机执行的用于解压缩视频的方法,该方法包括:接收视频的压缩表示,其中,视频的压缩表示针对视频中的第一视频帧之后的每个视频帧定义量化的流潜量,该量化的流潜量表示前一视频帧与视频帧之间的光流;以及生成视频中的每个视频帧的重构,包括针对视频中的第一视频帧之后的每个视频帧进行以下操作:获得视频中的前一视频帧的重构;使用流生成器神经网络处理视频帧的量化的流潜量,以生成前一视频帧与视频帧之间的光流;以及使用以下各项来生成视频帧的重构:(i)前一视频帧的重构,以及(ii)前一视频帧与视频帧之间的光流。
在一些实施方式中,使用以下各项来生成视频帧的重构:(i)前一视频帧的重构,以及(ii)前一视频帧与视频帧之间的光流,包括:通过使用前一视频帧与视频帧之间的光流扭曲前一视频帧的重构来生成视频帧的初始重构;以及使用视频帧初始重构来生成视频帧的重构。
在一些实施方式中,使用视频帧的初始重构生成视频帧的重构包括:生成残差视频帧的重构,其中,残差视频帧是由(i)视频帧与(ii)视频帧的初始重构之间的差定义的;以及通过将残差视频帧的重构与视频帧的初始重构组合来生成视频帧的重构。
在一些实施方式中,视频的压缩表示针对视频中的第一视频帧之后的每个视频帧进一步包括表示残差视频帧的量化的残差潜量;以及其中,生成残差视频帧的重构包括:使用残差生成器神经网络处理视频帧的量化的残差潜量,以生成残差视频帧的重构。
在一些实施方式中,视频的压缩表示定义表示所述视频中的所述第一视频帧的潜量;以及生成所述第一视频帧的重构包括:使用I帧生成器神经网络处理表示第一视频帧的潜量,以生成第一视频帧的重构。
根据另一方面,提供一种编码有计算机程序的计算机存储介质,该程序包括指令,该指令在由数据处理装置执行时使数据处理装置执行本文中描述的方法的操作。
根据另一方面,提供了一种系统,包括:数据处理装置;以及一种编码有计算机程序的计算机存储介质,该程序包括指令,该指令在由数据处理装置执行时使数据处理装置执行本文中描述的方法的操作。
能够实现本说明书中描述的主题的具体实施例,以便实现以下优点中的一个或多个。
本说明书中描述的压缩系统能够通过生成定义视频中的视频帧之间的光流的光流数据来生成压缩视频数据。然后,压缩系统压缩光流数据,在视频的压缩表示中包括光流数据的压缩表示。在一些情况下,能够比原始视频帧更有效率地压缩光流数据,例如,因为光流数据的很大一部分可以具有反映视频帧之间的平滑和可预测运动的常量值。因此,通过光流来表示视频帧使得视频能够被更有效率地压缩。
除了生成表示视频中的视频帧之间的光流的光流数据之外,压缩系统还能够生成与视频中的视频帧相对应的残差视频帧。对应于视频帧的残差视频帧(“残差”)表示使用光流数据生成的视频帧的重构中的误差。压缩系统能够压缩残差视频帧,并且在视频的压缩表示中包括残差视频帧的压缩表示。在一些情况下,残差视频帧能够比原始视频帧被更有效率地被压缩,例如,因为它们可以基本上由接近零的小值组成。因此,通过光流和残差视频帧来表示视频帧能够使视频能够被有效率地压缩,同时实现视频的高保真重构。
压缩系统能够包括使用对抗性损失训练的神经网络。对抗性损失鼓励压缩系统生成压缩视频数据,该压缩视频数据能够被重构以生成逼真的视频数据,例如,该逼真的视频数据没有经常由使用常规系统解压缩视频数据而产生的不自然的伪像。
在附图和以下描述中阐述了本说明书的主题的一个或多个实施例的细节。根据说明书、附图和权利要求书,主题的其他特征、方面和优点将变得明显。
附图说明
图1示出了示例压缩系统。
图2示出了示例P帧压缩系统。
图3是用于压缩视频的示例过程的流程图。
图4示出了示例解压缩压缩系统。
图5示出了示例P帧解压缩系统。
图6是用于解压缩视频的示例过程的流程图。
图7示出了示例训练系统。
各个附图中相同的附图标记和名称指示相同的元件。
具体实施方式
本说明书描述了用于压缩视频数据的压缩系统、用于解压缩视频数据的解压缩以及用于训练包括在压缩系统和解压缩系统中的神经网络的训练系统。参考图1-3更详细地描述压缩系统,参考图4-6更详细地描述解压缩系统,以及参考图7更详细地描述训练系统。
图1示出了示例压缩系统100。压缩系统100是在一个或多个位置中的一个或多个计算机上实现为计算机程序的系统的示例,其中实现下面描述的系统、组件和技术。
压缩系统100被配置为接收包括视频帧106(例如,106-A、106-B、106-C、106-D等)序列的视频104。压缩系统100处理视频104以生成压缩视频数据114,即,在存储器中比原始视频占用更少的空间(在一些情况下,少一个或多个数量级)并且实现原始视频104的数据的(近似或精确的)重构。(在一些情况下,视频104可以是更大视频的真子集,例如,视频104可以是包括超过100,000帧的更大视频的前1,000帧)。
视频能够具有任何适当数量的视频帧,例如,10个视频帧、1,000个视频帧或1,000,000个视频帧。视频中的每个视频帧能够被表示为像素阵列,例如二维(2D)像素阵列,其中,每个像素由一个或多个数值(例如红-绿-蓝(RGB)值)表示。能够从任何适当的源获得视频。例如,视频能够由压缩系统100由用户例如,通过压缩系统可用的应用编程接口(API)提供。作为另一示例,能够从存储器读取视频。
由压缩系统100生成的压缩视频数据114能够由解压缩系统解压缩以重构原始视频104,如下面将参考图4更详细描述的。在生成之后,压缩视频数据114能够例如被存储在存储器中、通过数据通信网络(例如,互联网)发送,或者用于任何其他适当的目的。
压缩系统100通过从第一视频帧开始顺序地压缩视频中的视频帧来生成压缩视频数据114。
压缩系统100包括I帧压缩系统102、P帧压缩系统200和编码引擎112,接下来分别描述它们。
I帧压缩系统102处理视频104中的第一视频帧以生成:(i)表示第一视频帧的一个或多个潜量110,以及(ii)第一视频帧的重构版本108。下面参考图3的步骤302更详细地描述能够由I帧压缩系统102执行的示例操作。
针对第一视频帧之后的每个视频帧,P帧压缩系统生成输出,该输出包括:(i)表示当前视频帧的一个或多个潜量110,以及(ii)当前视频帧的重构版本108。P帧压缩系统200通过处理以下各项来生成输出:(i)当前视频帧,(ii)前一视频帧,以及(iii)前一视频帧的重构。下面参考图2更详细地描述P帧压缩系统200的示例。
编码引擎112被配置为处理由I帧压缩系统102(例如,针对视频中的第一帧)和由P帧压缩系统200针对每个(后续)视频帧106生成的相应潜量110,以生成潜量110的编码表示。编码引擎112能够使用诸如熵编码技术(例如霍夫曼编码或算术编码)的编码技术来生成潜量110的编码表示。潜量110的编码表示形成压缩视频数据114的一部分或全部。压缩视频数据114能够以任何适当的数字格式表示为例如比特流,即,表示为比特序列。
图2示出了示例P帧压缩系统200。P帧压缩系统200是在一个或多个位置中的(其中实现下面描述的系统、组件和技术的)一个或多个计算机上实现为计算机程序的系统的示例。
针对视频中的第一视频帧之后的每个视频帧,P帧压缩系统200被配置为接收输入,该输入包括:(i)当前视频帧220、(ii)前一视频帧218以及(iii)前一视频帧的重构212。
从原始视频中提取当前视频帧220和前一视频帧212。
获得前一视频帧的重构212作为I帧压缩系统102或P帧压缩系统200的先前输出。更具体地,如果当前视频帧220是视频中的第二视频帧,则获得作为I帧压缩系统的先前输出的前一视频帧的重构212。如果当前视频帧220在视频中的第二视频帧之后,则获得作为P帧压缩系统200的先前输出的前一视频帧的重构212。
P帧压缩系统200处理输入以生成:(i)表示当前视频帧220的潜量,包括流潜量206和残差潜量208,以及(ii)当前视频帧的重构216。表示当前视频帧的潜量被编码(例如,熵编码)并形成压缩视频数据的一部分,如参考图1描述的。当前视频帧的重构216随后作为输入被提供给P帧压缩系统200,以用于生成表示下一视频帧的潜量和下一视频帧的重构。
P帧压缩系统包括流编码引擎202和残差编码引擎112,接下来分别描述它们。
流编码引擎202生成定义前一视频帧218与当前视频帧220之间的光流的光流数据。流编码引擎202处理光流数据以生成表示光流数据的流潜量206。流编码引擎202进一步处理流潜量206以生成光流数据的重构(“预测光流”),并且使用重构的光流数据扭曲前一视频帧的重构212以生成当前帧的初始重构210(“初始预测重构”)。
参考图3更详细地描述能够由流编码引擎202执行以例如生成当前帧的流潜量206和初始重构210的示例操作。
残差编码引擎112生成当前残差帧,其是(i)当前帧210的初始重构与(ii)当前帧220之间的差。残差编码引擎112处理当前残差帧214以生成表示当前残差帧214的残差潜量208。残差编码引擎112进一步处理残差潜量以生成当前残差帧214的重构(“残差的预测”),并且将当前残差帧214的重构与当前帧的初始重构210组合以生成当前帧的重构216(“预测重构”);这可以被称为“预测第二帧”。
参考图3更详细地描述能够由残差编码引擎112执行以例如生成当前帧的残差潜量208和重构216的示例操作。
P帧压缩系统200提供要被编码(例如,熵编码)并且被包括在表示视频的压缩视频数据中的流潜量206和残差潜量208。P帧压缩系统200提供当前帧的重构216以作为生成表示下一视频帧的潜量的一部分进行处理。
图3是用于压缩视频的示例过程300的流程图。为方便起见,过程300将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,根据本说明书适当编程的压缩系统(例如,图1的压缩系统100)能够执行过程300。
系统生成表示视频中的第一视频帧的潜量和视频中的第一视频帧的重构(302)。更具体地,系统使用为方便起见被称为I帧编码器神经网络的神经网络来处理视频中的第一视频帧,以生成表示视频中的第一视频帧的潜量。该系统特别是通过量化表示第一视频帧的潜量中的每个数值来量化表示第一视频帧的潜量。然后,系统使用神经网络(为方便起见被称为I帧生成器神经网络)处理表示第一视频帧的(量化的)潜量,以生成视频中的第一视频帧的重构。(I帧编码器神经网络和I帧生成器神经网络能够被理解为共同定义自动编码器神经网络)。
系统从第二视频帧开始针对视频中的每个视频帧顺序地执行步骤304-312。为方便起见,步骤304-312将被描述为参考视频中的“当前”视频帧来执行。
系统生成当前视频帧的流潜量(304)。更具体地,为了生成流潜量,系统生成定义视频中的前一视频帧与当前视频帧之间的光流的光流数据。系统能够使用各种技术中的任何一种来生成光流数据。例如,系统能够使用为方便起见被称为流预测神经网络的神经网络来处理前一视频帧和当前视频帧,该神经网络被配置为通过训练来生成定义前一视频帧和当前视频帧之间的光流的输出。参考Rico Jonschkowski等人的“What matters inunsupervised optical flow(无监督光流中什么最重要)”,arXiv:2006.04902,1(2):3,2020描述了流预测神经网络的示例。作为另一示例,系统能够使用Lucas-Kanade方法生成前一视频帧与当前视频帧之间的光流。
在生成前一视频帧与当前视频帧之间的光流之后,系统使用神经网络(为方便起见被称为流编码器神经网络)来处理定义光流的数据,以生成当前视频帧的流潜量。该系统还特别是通过量化流潜量中的每个数值来量化表示光流的流潜量。
系统使用(量化的)流潜量生成当前视频帧的初始重构(306)。更具体地,系统使用神经网络(为方便起见被称为流生成器神经网络)来处理流潜量,以生成前一视频帧与当前视频帧之间的光流的重构。(流编码器神经网络和流生成器神经网络能够被理解为共同定义自动编码器神经网络)。在一些实施方式中,除了生成重构的光流之外,流生成器神经网络还生成置信度掩码。置信度掩码包括针对前一视频帧中的每个像素的相应值(为方便起见被称为置信度值)。直观地,针对每个像素,像素的置信度值能够表征像素附近的重构光流的准确度。
系统获得例如先前由系统生成的前一视频帧的重构,并且根据重构的光流扭曲前一视频帧的重构以生成当前视频帧的初始重构。可选地,作为生成当前视频帧的初始重构的一部分,系统能够根据置信度掩码应用模糊操作。在当前视频帧的初始重构中要应用于每个像素的模糊的量由像素的置信度值定义。
系统能够使用任何适当的扭曲技术根据重构的光流扭曲前一视频帧的重构。例如,系统能够将当前视频帧的初始重构生成为:
其中,x′是当前视频帧的初始重构,x是前一视频帧的重构,是重构的光流,σ是置信度掩码,Warp(·)是双线性或三线性扭曲操作(例如,如参考E.Agustsson等人的“Scale-space flow for end-to-end optimized video compression(用于端到端优化视频压缩的尺度空间流)”,Proceedings of the IEEE Conference on Computer Visionand Pattern Recognition(IEEE计算机视觉与模式识别会议论文集),第8503-8512页,2020所述),并且AB(·,σ)根据置信度掩码σ定义尺度空间模糊操作(即,其中σ定义模糊尺度的模糊操作)。
系统生成当前视频帧的残差潜量(308)。更具体地,为了生成残差潜量,系统生成残差视频帧,其是(i)当前视频帧与(ii)当前视频帧的初始重构之间的差(即,误差)。例如,系统能够通过从当前视频帧的初始重构中减去当前视频帧来生成残差视频帧。然后,系统使用神经网络(为方便起见被称为残差编码器神经网络)处理残差视频帧,以生成残差潜量。该系统特别是通过量化残差潜量中的每个数值来量化残差潜量。
系统生成当前视频帧的重构(310)。更具体地,为了生成当前视频帧的重构,系统使用神经网络(为方便起见被称为残差生成器神经网络)来处理包括当前视频帧的(量化的)残差潜量的输入,以生成残差视频帧的重构。(残差编码器神经网络和残差生成器神经网络能够被理解为共同定义自动编码器神经网络)。
在一些实施方式中,系统生成表示当前视频帧的初始重构的潜量(为方便起见被称为“自由”潜量)。例如,系统能够使用编码器神经网络(例如,I帧编码器神经网络)处理当前视频帧的初始重构以生成自由潜量。然后,系统能够在由残差生成器神经网络处理以生成残差视频帧的重构的输入中包括以下两者:(i)量化的残差潜量,以及(ii)自由潜量。例如,系统能够连结量化的残差潜量和自由潜量,然后将该连结作为输入提供给残差生成器神经网络。由于由自由潜量提供的附加信息和上下文,从当前视频帧的初始重构中提取的自由潜量的附加馈入能够显著增加在残差视频帧中合成的细节量。此外,不需要将自由潜量编码到压缩视频数据中,因为解压缩系统能够从当前视频帧的初始重构直接计算自由潜量(因此潜量是“自由的”)。
在生成重构的残差视频帧之后,系统能够通过组合(例如,求和)以下各项来生成当前视频帧的重构:(i)重构的残差视频帧,以及(ii)当前视频帧的初始重构。因此,重构的残差视频帧能够被理解为校正通过扭曲前一视频帧的重构而生成的当前视频帧的初始重构中的任何误差。如果当前视频帧不是最后一个视频帧,则系统随后使用当前视频帧的重构来生成下一视频帧的初始重构,例如,如步骤306描述的。
系统确定当前视频帧是否是视频中的最后一个视频帧(312)。
响应于确定当前视频帧不是视频中的最后一个视频帧,系统进行到下一视频帧并返回到步骤304。
响应于确定当前视频帧是最后一个视频帧,系统至少根据表示视频帧的量化潜量生成表示视频的压缩视频数据(316)。更具体地,系统至少根据以下各项来生成压缩视频数据:(i)表示第一视频帧的量化潜量,以及(ii)视频中的第一视频帧之后的每个视频帧的相应的量化的流潜量和量化的残差潜量。
例如,系统能够使用熵编码技术(例如霍夫曼编码或算术编码)来压缩表示视频帧的量化潜量。系统能够使用可能的量化数值集合上的预定义概率分布或者使用基于量化潜量确定的自适应概率分布来压缩量化潜量。参考D.Minnen等人的“Joint autoregressiveand hierarchical priors for learned image compression(用于经学习的图像压缩的联合自回归和分层先验)”,Advances in Neural Information Processing Systems(神经信息处理系统的进展),第10771-10780页,2018描述了用于确定熵编码的自适应概率分布的示例技术。表示视频帧的量化潜量的熵编码表示共同形成表示视频的压缩视频数据的部分或全部。
图4示出了示例解压缩系统400。解压缩系统400是实现为在一个或多个位置中的一个或多个计算机上的计算机程序的系统的示例,其中实现了下面描述的系统、组件和技术。
解压缩系统400被配置为处理由压缩系统100生成的压缩视频数据114,以重构由压缩视频数据114表示的原始视频104。压缩视频数据114包括视频中的每个视频帧的编码(例如,熵编码)的量化的潜量,如上面参考图3描述的。
解压缩系统400包括解码引擎410、I帧解压缩系统402和P帧解压缩系统404,接下来分别描述它们。
解码引擎410被配置为对压缩视频数据114进行熵解码,以生成视频中的每个视频帧的量化潜量的解码表示。具体地,解码引擎410生成表示视频中的第一帧的I帧潜量408-A和表示视频中的第一视频帧之后的每个视频帧的相应P帧潜量408-B-D。视频帧的P帧潜量408-B-D包括流潜量和残差潜量,如上文参考图3描述的。
I帧解压缩系统400被配置为处理I帧潜量408-A以生成视频中的第一视频帧的重构406。在图6中更详细地描述了能够由I帧解压缩系统400执行以生成第一视频帧的重构的示例操作。
针对视频中的第一视频帧之后的每个视频帧,P帧解压缩系统400被配置为处理:(i)前一视频帧的重构406,以及(ii)当前视频帧的P帧潜量408-B-D,以生成当前视频帧的重构406。参考图5更详细地描述了P帧解压缩系统400的示例。
视频的视频帧的重构406共同定义原始视频104。
图5示出了示例P帧解压缩系统400。P帧解压缩系统400是实现为在一个或多个位置中的一个或多个计算机上的计算机程序的系统的示例,其中实现了下面描述的系统、组件和技术。
P帧解压缩系统被配置为通过处理以下各项来生成视频中的当前视频帧的重构506:(i)前一视频帧的重构512,以及(ii)当前视频帧的流潜量514和残差潜量516。
获得前一视频帧的重构作为I帧解压缩系统或P帧解压缩系统的先前输出。更具体地,如果当前视频帧是视频中的第二视频帧,则获得前一视频帧的重构512作为I帧解压缩系统的输出。如果当前视频帧在视频中的第二视频帧之后,则获得前一视频帧的重构512作为P帧解压缩系统的先前输出。
P帧解压缩系统包括流解码引擎502和残差解码引擎504,接下来分别描述它们。
流解码引擎502被配置为处理前一视频帧的重构512和流潜量514,以生成当前视频帧的初始重构508。更具体地,流解码引擎502处理流潜量以生成前一视频帧与当前视频帧之间的光流的重构。然后流解码引擎502根据光流扭曲前一视频帧的重构,以生成当前视频帧的初始重构508。
残差解码引擎504被配置为处理残差潜量516以生成残差视频帧的重构510。
然后P帧解压缩系统将当前视频帧的初始重构508与残差视频帧的重构510组合(例如,求和),以生成当前视频帧的重构506。
图6是用于解压缩视频的示例过程600的流程图。为方便起见,过程600将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,根据本说明书适当编程的解压缩系统(例如,图4的解压缩系统400)能够执行过程600。
系统接收表示视频的压缩视频数据(602)。能够例如通过数据通信网络接收或例如从存储器检索压缩的视频数据。压缩的视频数据由(例如,如参考图3描述的)压缩系统生成。针对视频中的每个视频帧,压缩视频数据包括表示视频帧的一个或多个编码(例如,熵编码)的量化的潜量。
系统对压缩视频数据进行解码,以针对视频中的每个视频帧复原表示视频帧的一个或多个量化的潜量(604)。系统能够例如使用任何适当的熵解码技术来解码表示视频帧的量化的潜量。针对第一视频帧之后的每个视频帧,系统解码:视频帧的(i)量化的流潜量,以及(ii)量化的残差潜量。
系统生成视频中的第一视频帧的重构(606)。更具体地,系统使用I帧生成器神经网络来处理表示第一视频帧的量化潜量。I帧生成器神经网络与由压缩系统实现的I帧生成器神经网络共享相同的参数值,例如,如参考图3的步骤302描述的。
系统针对视频中的第一视频帧之后的每个视频帧执行步骤608-612。为方便起见,参考“当前”视频帧描述步骤608-612。
系统使用当前视频帧的量化流潜量来生成当前视频帧的初始重构(608)。更具体地,系统使用流生成器神经网络处理量化的流潜量,以生成前一视频帧与当前视频帧之间的光流的重构。流生成器神经网络与由压缩系统实现的流生成器神经网络共享相同的参数值,例如,如参考图3的步骤306描述的。然后,系统使用重构的光流扭曲前一视频帧的重构,以生成当前视频帧的初始重构。
系统使用当前视频帧的初始重构和当前视频帧的残差潜量生成当前视频帧的重构(610)。更具体地,系统使用残差生成器神经网络处理包括当前视频帧的量化残差潜量的输入,以生成残差视频帧的重构。残差生成器神经网络与由压缩系统实现的残差生成器神经网络共享相同的参数值,例如,如参考图3的步骤310描述的。在一些实施方式中,残差生成器神经网络的输入还包括表示当前视频帧的初始重构的自由潜量。系统能够例如通过使用编码器神经网络(例如,参考图3的步骤302描述的I帧编码器神经网络)处理当前视频帧的初始重构来生成自由潜量。
在生成残差视频帧的重构之后,系统使用以下各项来生成当前视频帧的重构:(i)残差视频帧,以及(ii)当前视频帧的初始重构。例如,系统能够生成当前视频帧的重构,其是残差视频帧和当前视频帧的初始重构的总和。
系统确定当前视频帧是否是视频中的最后一个视频帧(612)。
如果当前视频帧不是视频中的最后一个视频帧,则系统进行到下一个视频帧(614)并返回到步骤608。
如果当前视频帧是视频中的最后一个视频帧,则系统输出重构视频,即,包括视频的每个视频帧的重构。
图7示出了示例训练系统700。训练系统700是实现为在一个或多个位置中的一个或多个计算机上的计算机程序的系统的示例,其中实现下面描述的系统、组件和技术。
训练系统被配置为在训练视频集合上训练包括在压缩系统和解压缩系统中的神经网络,以优化目标函数。
更具体地,训练系统训练:I帧编码器神经网络EI、I帧生成器神经网络GI、流编码器神经网络Eflow、流生成器神经网络Gflow、残差编码器神经网络Eres和残差生成器神经网络Gres。上面例如参考图3和图6描述了由EI、GI、Eflow、Gflow、Eres和Gres执行的操作;它们可以使用卷积神经网络来实现,例如,这些卷积神经网络具有由图中它们的相对大小指示的容量。训练系统联合训练包括在压缩系统和解压缩系统中的神经网络以及I帧判别器神经网络DI和P帧判别器神经网络Dp,如下面将更详细描述的。由虚线指示的路径在解码期间不活动;并且DI和Dp仅在训练期间活动;SG表示停止梯度运算。
针对每个训练视频,训练系统能够使用I帧编码器神经网络来处理训练视频中的第一视频帧,以生成表示第一视频帧的量化的潜量yI,并且然后使用I帧生成器神经网络来处理表示第一视频帧的量化的潜量,以生成第一视频帧的重构然后,训练系统使用I帧判别器神经网络来处理表示第一视频帧的潜量和第一视频帧的重构,以生成I帧判别器分数。I帧判别器神经网络被配置为处理表示视频帧的潜量和视频帧以生成I帧判别器分数,该I帧判别器分数定义输入视频帧是由I帧生成器神经网络生成的可能性。
训练系统训练I帧编码器神经网络和I帧生成器神经网络以优化例如由下式给出的目标函数:
其中,λ和β是超参数,测量第一视频帧与第一视频帧的重构之间的距离(例如,L1或L2距离),并且/>表示由I帧判别器神经网络通过处理第一视频帧的重构和表示第一视频帧的潜量而生成的I帧判别器分数,并且R(yI)表示存储表示第一视频帧的潜量所需的比特数(比特率)。目标函数中的取决于判别器得分的项能够被称为对抗性损失项。(作为使用包括对抗性损失的目标函数进行训练的结果,I帧编码器神经网络和I帧生成器神经网络能够被理解为共同定义生成式对抗神经网络)。
训练系统训练I帧判别器神经网络以优化例如由下式给出的目标函数:
其中,表示由I帧判别器神经网络通过处理第一视频帧的重构和表示第一视频帧的潜量而生成的I帧判别器分数,并且DI(xI,yI)表示由I帧判别器神经网络通过处理第一视频帧和表示第一视频帧的潜量而生成的I帧判别器分数。
针对第一视频帧之后的每个视频帧,训练系统(例如,使用流预测神经网络UFlow)生成当前视频帧与前一视频帧之间的光流Ft、使用流编码器神经网络处理光流数据以生成表示光流的量化的流潜量yt,f并且使用流生成器神经网络处理量化的光流潜量以生成重构的光流数据和置信度掩码σt。然后,训练系统使用具有自适应模糊的扭曲操作来处理前一视频帧的重构/>重构的光流数据和置信度掩码,以生成当前视频帧的初始重构/>
训练系统生成作为当前视频帧的初始重构与当前视频帧之间的差的残差视频帧rt、通过使用残差编码器神经网络处理残差视频帧来生成量化的残差潜量并且通过使用残差生成器神经网络处理包括残差潜量的输入来生成残差视频帧的重构可选地,训练系统能够使用I帧编码器神经网络来处理当前视频帧的初始重构,以生成表示当前视频帧的初始重构的自由潜量/>并且将自由潜量包括在残差生成器神经网络的输入中。训练系统能够通过对当前视频帧的初始重构和残差视频帧的重构进行求和来生成当前视频帧的重构/>
然后,训练系统使用P帧判别器神经网络DP来处理当前视频帧的重构和对残差生成器神经网络的输入,以生成P帧判别器分数。P帧判别器神经网络被配置为处理包括视频帧的输入以生成P帧判别器分数,该P帧判别器分数定义输入视频帧是使用流生成器神经网络和残差生成器神经网络来生成的可能性。在一些实施方式中,I帧判别器神经网络和P帧判别器神经网络都可以使用频谱归一化。
训练系统训练流编码器神经网络、流生成器神经网络、残差编码器神经网络和残差生成器神经网络以优化例如由下式给出的目标函数:
其中,t对从第二视频帧到最后一个视频帧的视频帧进行索引,T是视频帧的数量,λ、β、kflow和kTV是超参数,表示第t视频帧xt与第t视频帧的重构/>之间的误差,表示由P帧判别器神经网络通过处理第t视频帧的重构和针对第t视频帧对残差生成器神经网络的输入而生成的P帧判别器分数,SG(σt)表示作用于第t视频帧的置信度掩码σt的停止梯度运算,/>表示第t视频帧的光流与第t视频帧的重构光流之间的L2误差,并且TV(σt)表示σt的全变分,并且R(yt,r)表示存储表示视频帧的潜量xt所需的比特数(比特率)。目标函数中的取决于判别器分数的项能够被称为对抗性损失项。(作为使用包括对抗性损失的目标函数进行训练的结果,残差编码器神经网络和残差生成器神经网络能够被理解为共同定义生成式对抗神经网络)。
训练系统训练P帧判别器神经网络以优化例如由下式给出的目标函数:
其中,t对从第二视频帧到最后一个视频帧的视频帧进行索引,T是视频帧的数量,是通过使用P帧判别器神经网络处理第t视频帧的重构/>和对残差生成器神经网络的输入yt,r而生成的P帧判别器分数,并且DP(xt,yt,r)是通过使用P帧判别器神经网络处理第t视频帧xt和对残差生成器神经网络的输入yt,r而生成的P帧判别器分数。
训练系统能够预训练流预测神经网络UFlow以执行光流预测,并且可选地,能够在压缩和解压缩系统中包括的其他神经网络的训练期间冻结流预测神经网络的参数值。
本说明书结合系统和计算机程序组件使用术语“被配置”。对于要被配置为执行特定操作或动作的一个或多个计算机的系统,意味着系统已经在其上安装了软件、固件、硬件或它们的组合,这些软件、固件、硬件或它们的组合在操作时使系统执行操作或动作。对于要被配置为执行特定操作或动作的一个或多个计算机程序,意味着一个或多个程序包括当由数据处理装置执行时使装置执行操作或动作的指令。
本说明书中描述的主题和功能操作的实施例能够在数字电子电路中、在有形体现的计算机软件或固件中、在计算机硬件中实现,包括本说明书中公开的结构及其结构等价物,或者它们中的一个或多个的组合。本说明书中描述的主题的实施例能够被实现为一个或多个计算机程序,即,在有形非暂时性存储介质上编码的计算机程序指令的一个或多个模块,以用于由数据处理装置执行或控制数据处理装置的操作。计算机存储介质能够是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备或它们中的一个或多个的组合。替代地或另外,程序指令能够被编码在人工生成的传播信号上,例如,机器生成的电、光或电磁信号,其被生成以对信息进行编码以传输到合适的接收器装置以供数据处理装置执行。
术语“数据处理装置”是指数据处理硬件,并且涵盖用于处理数据的所有类型的装置、设备和机器,包括例如可编程处理器、计算机或多个处理器或计算机。该装置还能够是或进一步包括专用逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,该装置还能够可选地包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。
计算机程序,其也可以被称为或描述为程序、软件、软件应用、app、模块、软件模块、脚本或代码,能够用任何形式的编程语言编写,包括编译或解释语言,或者声明或过程语言;并且它能够以任何形式部署,包括作为独立程序或作为模块、组件、子例程或适合在计算环境中使用的其他单元。程序可以但不必对应于文件系统中的文件。程序能够被存储在保存其他程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中、存储在专用于所讨论的程序的单个文件中,或者存储在多个协调文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。计算机程序能够被部署为在一个计算机上或在位于一个站点处或分布在多个站点上并通过数据通信网络互连的多个计算机上被执行。
在本说明书中,术语“引擎”广泛地用于指代被编程为执行一个或多个特定功能的基于软件的系统、子系统或过程。通常,引擎将被实现为安装在一个或多个位置中的一个或多个计算机上的一个或多个软件模块或组件。在一些情况下,一个或多个计算机将专用于特定引擎;在其他情况下,能够在相同的一个或多个计算机上安装和运行多个引擎。
本说明书中描述的过程和逻辑流程能够由执行一个或多个计算机程序的一个或多个可编程计算机执行,以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也能够由专用逻辑电路(例如FPGA或ASIC)执行,或由专用逻辑电路和一个或多个编程计算机的组合执行。
适合于执行计算机程序的计算机能够基于通用或专用微处理器或两者,或者任何其他类型的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行或运行指令的中央处理单元和用于存储指令和数据的一个或多个存储器设备。中央处理单元和存储器能够由专用逻辑电路补充或并入专用逻辑电路中。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备(例如,磁盘、磁光盘或光盘),或者可操作地耦合以从该一个或多个大容量设备接收数据或将数据传送到该一个或多个大容量设备或两者。然而,计算机不必须具有这样的设备。此外,计算机能够被嵌入在另一设备(例如,移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或便携式存储设备,例如,通用串行总线(USB)闪存驱动器,仅举几例)中。
适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如,EPROM、EEPROM和闪存设备;磁盘,例如,内部硬盘或可移动磁盘;磁光盘;以及CD ROM和DVD-ROM盘。
为了提供与用户的交互,能够在计算机上实现本说明书中描述的主题的实施例,该计算机具有用于向用户显示信息的显示设备(例如,CRT(阴极射线管)或LCD(液晶显示器)监视器),以及用户能够通过其向该计算机提供输入的键盘和定点设备,例如,鼠标或轨迹球。其它种类的设备也能够被用于提供与用户的交互;例如,提供给用户的反馈能够是任何形式的感觉反馈,例如,视觉反馈、听觉反馈或触觉反馈;并且能够以任何形式接收来自用户的输入,包括声、语音或触觉输入。另外,计算机能够通过向由用户使用的设备发送文档并从由用户使用的设备接收文档(例如,通过响应于从web浏览器接收到的请求而向用户的设备上的web浏览器发送网页)来与用户交互。此外,计算机能够通过向个人设备(例如,正在运行消息传送应用的智能电话)发送文本消息或其他形式的消息并且继而从用户接收响应消息来与用户交互。
用于实现机器学习模型的数据处理装置还能够包括,例如,专用硬件加速器单元,其用于处理机器学习训练或生产的公用和计算密集型部分,即推断、工作负载。
能够使用机器学习框架,例如,TensorFlow框架来实现和部署机器学习模型。
本说明书中描述的主题的实施例能够在计算系统中实现,该计算系统包括后端组件,例如,作为数据服务器;或者包括中间件组件,例如,应用服务器;或者包括前端组件,例如,具有用户能够通过其与本说明书中描述的主题的实施方式交互的图形用户界面、web浏览器或app的客户端计算机;或者包括一个或多个这样的后端、中间件或前端组件的任何组合。系统的组件能够通过任何形式或介质的数字数据通信(例如通信网络)互连。通信网络的示例包括局域网(LAN)和广域网(WAN),例如,互联网。
计算系统能够包括客户端和服务器。客户端和服务器通常彼此远离并通常通过通信网络交互。客户端和服务器的关系借助于在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。在一些实施例中,服务器将数据(例如,HTML页面)传输到用户设备,例如,用于向与充当客户端的设备交互的用户显示数据和从其接收用户输入的目的。能够在服务器处从设备接收在用户设备处生成的数据,例如,用户交互的结果。
虽然本说明书包含许多具体实施方式细节,但是这些不应当被解释为对任何发明的范围或可以要求保护的范围的限制,而是应当被解释为可以特定于特定发明的具体实施例的特征的描述。在本说明书中在分开实施例的上下文中描述的某些特征也能够在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也能够分开地或以任何合适的子组合在多个实施例中实现。此外,尽管特征在上文可以被描述为以某些组合起作用并且甚至最初如此要求保护,但是来自所要求保护的组合的一个或多个特征在一些情况下能够从组合中删除,并且所要求保护的组合可以涉及子组合或子组合的变型。
类似地,虽然以特定顺序在附图中描绘了并且在权利要求书中记载了操作,但是这不应当被理解为要求这些操作以所示的特定顺序或依次顺序被执行,或者所有图示的操作被执行,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分开不应当被理解为在所有实施例中都需要这种分开,并且应当理解,所描述的程序组件和系统通常能够被一起集成在单个软件产品中或封装到多个软件产品中。
已经描述了主题的特定实施例。其它实施例在所附权利要求书的范围内。例如,权利要求中记载的动作能够以不同的顺序执行,并且仍然实现期望的结果。作为一个示例,附图中描绘的过程不必然需要所示的特定顺序或依次顺序来实现期望的结果。在一些情况下,多任务和并行处理可能是有利的。

Claims (20)

1.一种由数据处理装置执行的压缩视频的方法,包括:
接收视频帧序列;
使用流预测网络生成两个顺序帧之间的光流,其中,所述两个顺序帧包括第一帧和在所述第一帧之后的第二帧;
使用第一自动编码器神经网络从所述光流来生成:
所述第一帧与所述第二帧之间的预测光流;以及
置信度掩码;
根据所述预测光流来扭曲所述第一帧的重构,并且随后根据所述置信度掩码来应用模糊操作以获得所述第二帧的初始预测重构;
使用第二自动编码器神经网络生成残差的预测,所述残差是所述第二帧与所述第二帧的初始预测重构之间的差;
将所述第二帧的初始预测重构与所述残差的预测进行组合以获得预测第二帧;
其中:
所述第一自动编码器神经网络和所述第二自动编码器神经网络中的每一者分别包括编码器网络和生成器网络;以及
所述第二自动编码器神经网络的生成器网络是生成式对抗神经网络(GANN)的组件。
2.根据权利要求1所述的方法,其中:
所述第一帧和所述第二帧在第三帧之后,并且其中,所述第三帧是所述视频序列中的初始帧;并且
所述方法进一步包括在处理所述第二帧和所述第三帧之前:
使用第三自动编码器神经网络从所述第三帧生成所述第三帧的预测重构;
使用所述流预测网络生成第三帧与所述第一帧之间的光流;
使用所述第一自动编码器神经网络从所述光流生成:
所述第三帧与所述第一帧之间的预测光流;以及
置信度掩码;
根据所述预测光流来扭曲所述第三帧的所述重构,并且随后根据所述置信度掩码来应用模糊操作以获得所述第一帧的初始预测重构;
使用所述第二自动编码器神经网络生成残差的预测,所述残差是所述第一帧与所述第一帧的初始预测重构之间的差;以及
将所述第一帧的初始预测重构与所述残差的预测进行组合以获得预测第一帧;
其中:
所述第三自动编码器神经网络包括编码器网络和生成器网络;
所述第三自动编码器神经网络的第三生成器网络是生成式对抗神经网络(GANN)的组件。
3.根据任一前述权利要求所述的方法,进一步包括:
使用所述第二自动编码器神经网络对残差进行编码以获得残差潜量;
使用所述第三编码器神经网络通过对所述第二帧的初始预测进行编码来获得自由潜量;以及
连结所述自由潜量和所述残差潜量;
其中,使用所述第二自动编码器神经网络生成所述残差的预测包括:由所述第二自动编码器神经网络使用所述自由潜量和所述残差潜量的连结来生成预测出的残差。
4.根据权利要求3所述的方法,进一步包括:对所述残差潜量的量化进行熵编码,其中,所述残差潜量的经熵编码的量化被包括在表示所述视频的压缩视频数据中。
5.根据权利要求3-4中的任一项所述的方法,其中,对所述残差进行编码以获得所述残差潜量包括:
使用所述第二自动编码器神经网络的编码器神经网络处理所述残差以生成所述残差潜量。
6.根据权利要求3-5中的任一项所述的方法,其中,通过对所述第二帧的初始预测进行编码来获得所述自由潜量包括:
使用编码器神经网络处理所述第二帧的初始预测以生成所述自由潜量。
7.根据权利要求3-6中的任一项所述的方法,其中,生成所述残差的预测包括:
使用所述第二自动编码器神经网络的生成器神经网络来处理所述自由潜量和所述残差潜量的连结以生成所述残差的预测。
8.根据任一前述权利要求所述的方法,其中,将所述第二帧的初始预测重构与所述残差的预测进行组合以获得所述预测第二帧包括:
通过对所述第二帧的初始预测重构与所述残差的预测进行求和来生成所述预测第二帧。
9.根据任一前述权利要求所述的方法,其中,生成所述第一帧与所述第二帧之间的预测光流包括:
使用所述第一自动编码器网络的编码器网络处理由所述流预测网络生成的所述光流,以生成表示所述光流的流潜量;以及
使用所述第一自动编码器神经网络的生成器神经网络来处理所述流潜量的量化以生成所述预测光流。
10.根据权利要求9所述的方法,进一步包括:对所述流潜量的量化进行熵编码,其中,所述流潜量的经熵编码的量化被包括在表示所述视频的压缩视频数据中。
11.根据任一前述权利要求所述的方法,其中,已经在训练视频的集合上训练所述第一自动编码器神经网络和所述第二自动编码器神经网络,以优化包括对抗性损失的目标函数。
12.根据权利要求11所述的方法,其中,针对每个训练视频的一个或多个视频帧,所述对抗性损失是基于判别器分数,其中,所述判别器分数是通过包括以下各项的操作来生成的:
生成对判别器神经网络的输入,其中,所述输入包括使用所述第一自动编码器神经网络和所述第二自动编码器神经网络生成的所述视频帧的重构;以及
将所述输入提供给所述判别器神经网络,其中,所述判别器神经网络被配置为:
接收包括输入视频帧的输入;以及
处理所述输入以生成输出判别器分数,所述输出判别器分数定义所述视频帧是使用所述第一自动编码器神经网络和所述第二自动编码器神经网络来生成的可能性。
13.一种由一个或多个计算机执行的用于解压缩视频的方法,所述方法包括:
接收所述视频的压缩表示,其中,所述视频的压缩表示针对所述视频中的第一视频帧之后的每个视频帧定义经量化的流潜量,所述经量化的流潜量表示前一视频帧与所述视频帧之间的光流;以及
生成所述视频中的每个视频帧的重构,包括针对所述视频中的所述第一视频帧之后的每个视频帧进行以下操作:
获得所述视频中的前一视频帧的重构;
使用流生成器神经网络处理所述视频帧的经量化的流潜量,以生成所述前一视频帧与所述视频帧之间的光流;以及
使用以下各项来生成所述视频帧的重构:(i)所述前一视频帧的重构以及(ii)所述前一视频帧与所述视频帧之间的光流。
14.根据权利要求13所述的方法,使用以下各项来生成所述视频帧的重构:(i)所述前一视频帧的重构以及(ii)所述前一视频帧与所述视频帧之间的光流包括:
通过使用所述前一视频帧与所述视频帧之间的光流扭曲所述前一视频帧的重构来生成所述视频帧的初始重构;以及
使用所述视频帧的初始重构来生成所述视频帧的重构。
15.根据权利要求14所述的方法,其中,使用所述视频帧的初始重构来生成所述视频帧的重构包括:
生成残差视频帧的重构,其中,所述残差视频帧是由(i)所述视频帧与(ii)所述视频帧的初始重构之间的差来定义的;以及
通过将所述残差视频帧的重构与所述视频帧的初始重构进行组合来生成所述视频帧的重构。
16.根据权利要求15所述的方法,其中,所述视频的压缩表示针对所述视频中的所述第一视频帧之后的每个视频帧进一步包括表示残差视频帧的经量化的残差潜量;以及
其中,生成所述残差视频帧的重构包括:
使用残差生成器神经网络处理所述视频帧的经量化的残差潜量,以生成所述残差视频帧的重构。
17.根据权利要求13至16中的任一项所述的方法,其中,所述视频的压缩表示定义表示所述视频中的所述第一视频帧的潜量;并且
其中,生成所述第一视频帧的重构包括:
使用I帧生成器神经网络处理表示所述第一视频帧的潜量以生成所述第一视频帧的重构。
18.根据权利要求13-17中的任一项所述的方法,其中,所述视频的压缩表示是通过根据权利要求1-12中的任一项所述的方法来生成的。
19.一种编码有计算机程序的计算机存储介质,所述程序包括指令,所述指令在由数据处理装置执行时使得所述数据处理装置执行根据权利要求1-18中的任一项所述的相应的方法的操作。
20.一种系统,包括:
数据处理装置;以及
编码有计算机程序的计算机存储介质,所述程序包括指令,所述指令在由所述数据处理装置执行时使得所述数据处理装置执行根据权利要求1-18中的任一项所述的相应的方法的操作。
CN202280047971.4A 2021-07-06 2022-07-05 使用光流的视频压缩 Pending CN117616753A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202163218853P 2021-07-06 2021-07-06
US63/218,853 2021-07-06
PCT/US2022/036111 WO2023283184A1 (en) 2021-07-06 2022-07-05 Video compression using optical flow

Publications (1)

Publication Number Publication Date
CN117616753A true CN117616753A (zh) 2024-02-27

Family

ID=82702969

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280047971.4A Pending CN117616753A (zh) 2021-07-06 2022-07-05 使用光流的视频压缩

Country Status (4)

Country Link
EP (1) EP4201064A1 (zh)
KR (1) KR20240025629A (zh)
CN (1) CN117616753A (zh)
WO (1) WO2023283184A1 (zh)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200053388A1 (en) * 2018-08-10 2020-02-13 Disney Enterprises, Inc. Machine learning based video compression

Also Published As

Publication number Publication date
EP4201064A1 (en) 2023-06-28
KR20240025629A (ko) 2024-02-27
WO2023283184A1 (en) 2023-01-12

Similar Documents

Publication Publication Date Title
US11670010B2 (en) Data compression using conditional entropy models
Akbari et al. DSSLIC: Deep semantic segmentation-based layered image compression
CN113259676B (zh) 一种基于深度学习的图像压缩方法和装置
TW202247650A (zh) 使用機器學習系統進行隱式圖像和視訊壓縮
US11869221B2 (en) Data compression using integer neural networks
CN111263161B (zh) 视频压缩处理方法、装置、存储介质和电子设备
Jamil et al. Learning-driven lossy image compression: A comprehensive survey
US11783511B2 (en) Channel-wise autoregressive entropy models for image compression
US11177823B2 (en) Data compression by local entropy encoding
Zebang et al. Densely connected AutoEncoders for image compression
Fraihat et al. A novel lossy image compression algorithm using multi-models stacked AutoEncoders
CN114501031B (zh) 一种压缩编码、解压缩方法以及装置
CN117616753A (zh) 使用光流的视频压缩
US20240223817A1 (en) Video compression using optical flow
US11936866B2 (en) Method and data processing system for lossy image or video encoding, transmission and decoding
US12026925B2 (en) Channel-wise autoregressive entropy models for image compression
CN117750021B (zh) 一种视频压缩方法、装置、计算机设备及存储介质
CN116965030A (zh) 使用稀疏表示来生成图像
Kong et al. Progressive image compression for Gaussian mixture model quartile intervals
Kong et al. FANs: fully attentional networks for image compression
WO2024076733A1 (en) Systems and methods for frame and region transformations with superresolution
Khoshkhahtinat et al. Neural-based Video Compression on Solar Dynamics Observatory Images
Wei et al. Semantic Map Based Image Compression via Conditional Generative Adversarial Network
CN117296080A (zh) 神经图像压缩中基于在线训练的编码器调整
CN117422779A (zh) 图像特征变换处理的方法、图像编码方法、图像解码方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination