CN111868753A - 使用条件熵模型的数据压缩 - Google Patents
使用条件熵模型的数据压缩 Download PDFInfo
- Publication number
- CN111868753A CN111868753A CN201980020216.5A CN201980020216A CN111868753A CN 111868753 A CN111868753 A CN 111868753A CN 201980020216 A CN201980020216 A CN 201980020216A CN 111868753 A CN111868753 A CN 111868753A
- Authority
- CN
- China
- Prior art keywords
- data
- representation
- entropy
- potential representation
- neural network
- 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
Links
- 238000013144 data compression Methods 0.000 title description 5
- 238000013528 artificial neural network Methods 0.000 claims abstract description 173
- 238000000034 method Methods 0.000 claims abstract description 101
- 238000012545 processing Methods 0.000 claims abstract description 60
- 238000003860 storage Methods 0.000 claims abstract description 14
- 238000009826 distribution Methods 0.000 claims description 89
- 230000008569 process Effects 0.000 claims description 43
- 238000010801 machine learning Methods 0.000 claims description 12
- 238000013527 convolutional neural network Methods 0.000 claims description 9
- 238000012549 training Methods 0.000 claims description 9
- 238000013139 quantization Methods 0.000 claims description 6
- 238000010606 normalization Methods 0.000 claims description 4
- 238000009827 uniform distribution Methods 0.000 claims description 4
- 238000004590 computer program Methods 0.000 abstract description 15
- 238000007906 compression Methods 0.000 description 61
- 230000006835 compression Effects 0.000 description 61
- 230000006837 decompression Effects 0.000 description 48
- 238000004891 communication Methods 0.000 description 10
- 238000013500 data storage Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000001419 dependent effect Effects 0.000 description 4
- 230000026676 system process Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000001364 causal effect Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 241000009334 Singa Species 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000001149 cognitive effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/001—Model-based coding, e.g. wire frame
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/18—Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/002—Image coding using neural networks
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Mathematical Analysis (AREA)
- Multimedia (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Operations Research (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Abstract
用于对数据进行压缩和解压缩的方法、***和装置,包括在计算机存储介质上编码的计算机程序。在一个方面中,一种方法包括:使用编码器神经网络处理数据以生成数据的潜在表示;使用超编码器神经网络处理数据的潜在表示以生成熵模型的潜在表示;生成熵模型的潜在表示的熵编码表示;使用熵模型的潜在表示生成数据的潜在表示的熵编码表示;以及从以下各项的熵编码表示中确定数据的压缩表示:(i)数据的潜在表示和(ii)用于对数据的潜在表示进行熵编码的熵模型的潜在表示。
Description
背景技术
本说明书涉及数据压缩。
对数据进行压缩是指确定在存储器中占用较少空间和/或需要较少带宽以例如通过网络传输的数据的表示。压缩数据可以被存储(例如,在逻辑数据存储区域或物理数据存储设备中),通过通信网络(例如,因特网)发送到目的地,或者以任何其他方式使用。通常,能够(近似地或确切地)根据数据的压缩表示来重构数据。
发明内容
本说明书描述了作为计算机程序实现在一个或多个位置中的一个或多个计算机上的***,其执行数据压缩和数据解压缩。
根据第一方面,提供了一种由数据处理装置实现的方法,该方法包括使用编码器神经网络处理数据以生成数据的潜在表示。使用超编码器神经网络处理数据的潜在表示以生成熵模型的潜在表示,其中熵模型由表征一个或多个代码符号概率分布的一个或多个概率分布参数定义。生成熵模型的潜在表示的熵编码表示。使用熵模型的潜在表示生成数据的潜在表示的熵编码表示,包括使用熵模型的潜在表示确定定义熵模型的概率分布参数。数据的潜在表示的量化的代码符号由一个或多个神经网络层自回归地处理以生成上下文输出集。上下文输出和熵模型的潜在表示的量化由一个或多个神经网络层处理以生成定义熵模型的概率分布参数。使用熵模型生成数据的潜在表示的熵编码表示。从以下各项的熵编码表示中确定数据的压缩表示:(i)数据的潜在表示和(ii)用于对数据的潜在表示进行熵编码的熵模型的潜在表示。
在一些实现方式中,数据包括图像并且编码器神经网络是卷积神经网络。
在一些实现方式中,使用编码器神经网络处理数据以生成数据的潜在表示包括通过对数据的潜在表示进行量化来确定表示数据的代码符号的有序合集。
在一些实现方式中,生成熵模型的潜在表示的熵编码表示包括对熵模型的潜在表示进行量化。
在一些实现方式中,熵模型由表示数据的代码符号的有序合集中的每个代码符号的相应代码符号概率分布定义。
在一些实现方式中,每个代码符号概率分布是与均匀分布卷积的高斯分布,并且定义每个代码符号概率分布的相应概率分布参数包括高斯分布的相应均值和标准偏差参数。
在一些实现方式中,生成熵模型的潜在表示的熵编码表示包括使用一个或多个预先确定的概率分布来对熵模型的量化潜在表示进行熵编码。
在一些实现方式中,使用熵模型来生成数据的潜在表示的熵编码表示包括使用定义熵模型的代码符号概率分布来对表示数据的代码符号的有序合集进行算术编码。
在一些实现方式中,数据的量化潜在表示的代码符号与排序相关联。由一个或多个神经网络层自回归地处理数据的量化潜在表示的代码符号以生成多个上下文输出包括生成数据的量化潜在表示的每个代码符号的相应上下文输出。生成数据的量化潜在表示的给定代码符号的上下文输出包括使用一个或多个神经网络层处理包括在数据的量化的潜在表示的给定代码符号之前的数据的量化潜在表示的一个或多个代码符号的输入以生成数据的量化潜在表示的给定代码符号的上下文输出。
在一些实现方式中,输入不包括:(i)数据的量化潜在表示的给定代码符号,或(ii)紧跟数据的量化潜在表示的给定代码符号之后的数据的量化潜在表示的任何代码符号。
在一些实现方式中,一个或多个神经网络层是掩码卷积神经网络层。
在一些实现方式中,由一个或多个神经网络层处理上下文输出和熵模型的量化潜在表示以生成定义熵模型的概率分布参数包括生成表征数据的量化潜在表示的每个代码符号的相应代码符号概率分布的相应概率分布参数。对于数据的量化潜在表示的每个代码符号,使用一个或多个神经网络层处理包括以下各项的输入:(i)数据的量化潜在表示的代码符号的上下文输出,和(ii)熵模型的量化潜在表示,以生成表征数据的量化潜在表示的代码符号的代码符号概率分布的概率分布参数。
在一些实现方式中,用于:(i)生成数据的压缩表示,并且(ii)从数据的压缩表示生成数据的重构的神经网络层的参数使用机器学习训练技术来联合地训练以优化速率失真性能度量。
在一些实现方式中,(i)超编码器神经网络和(ii)用于自回归地处理数据的量化潜在表示的代码符号以生成上下文输出集的神经网络层的参数使用机器学习训练技术来联合地训练以优化速率失真性能度量。
在一些实现方式中,速率失真性能度量包括:(i)基于数据的潜在表示的熵编码表示的大小的第一速率项,(ii)基于熵模型的潜在表示的熵编码表示的大小的第二速率项,以及(iii)基于数据与数据的重构之间的差异的失真项。
在一些实现方式中,失真项通过确定速率失真权衡的超参数来缩放。
在一些实现方式中,编码器神经网络包括一个或多个广义除法归一化(GDN)非线性。
在一些实现方式中,数据的压缩表示包括比特流。
在一些实现方式中,该方法进一步包括发送或存储数据的压缩表示。
根据第二方面,提供了一种方法,该方法包括获得以下各项的熵编码表示:(i)数据集的潜在表示,和(ii)用于对数据的潜在表示进行熵编码的熵模型的潜在表示。熵模型的潜在表示通过使用超编码器神经网络处理数据的潜在表示来确定。熵模型由表征一个或多个代码符号概率分布的一个或多个概率分布参数定义。对数据的潜在表示进行熵解码,包括使用熵模型的潜在表示确定定义熵模型的概率分布参数。使用熵模型来对数据的潜在表示进行熵解码,包括,对于数据的潜在表示的量化的一个或多个代码符号,处理:(i)在数据的量化潜在表示的代码符号的排序中在代码符号之前的数据的量化潜在表示的一个或多个在前代码符号,和(ii)熵模型的潜在表示的量化,以生成与数据的量化潜在表示的代码符号相对应的代码符号概率分布。与数据的量化潜在表示的代码符号相对应的代码符号概率分布用于对数据的量化潜在表示的代码符号进行熵解码。从数据的潜在表示中确定数据的重构,包括使用使用解码器神经网络处理数据的潜在表示。
根据第三方面,提供了一种由数据处理装置实现的方法,包括使用编码器神经网络处理数据以生成数据的潜在表示。数据的潜在表示包括表示数据的代码符号的有序合集。使用超编码器神经网络处理数据的潜在表示以生成熵模型的潜在表示。熵模型由表征一个或多个代码符号概率分布的一个或多个概率分布参数定义。生成熵模型的潜在表示的熵编码表示。使用熵模型的潜在表示生成数据的潜在表示的熵编码表示,包括使用熵模型的潜在表示确定定义熵模型的概率分布参数。使用熵模型生成数据的潜在表示的熵编码表示。从以下各项的熵编码表示中确定数据的压缩表示:(i)数据的潜在表示和(ii)用于对数据的潜在表示进行熵编码的熵模型的潜在表示。
在一些实现方式中,使用编码器神经网络处理数据以生成数据的潜在表示包括通过对编码器神经网络的输出进行量化来确定表示数据的代码符号的有序合集。
在一些实现方式中,生成熵模型的潜在表示的熵编码表示包括对熵模型的潜在表示进行量化。
在一些实现方式中,熵模型由数据的潜在表示中的每个代码符号的相应代码符号概率分布定义。
在一些实现方式中,每个代码符号概率分布是与均匀分布卷积的高斯分布,并且定义每个代码符号概率分布的相应概率分布参数包括高斯分布的相应均值和标准偏差参数。
在一些实现方式中,生成熵模型的潜在表示的熵编码表示包括使用一个或多个预先确定的概率分布对熵模型的潜在表示进行熵编码。
在一些实现方式中,使用熵模型生成数据的潜在表示的熵编码表示包括使用定义熵模型的代码符号概率分布对数据的潜在表示进行算术编码。
在一些实现方式中,使用熵模型的潜在表示确定定义熵模型的概率分布参数包括由一个或多个神经网络层处理熵模型的潜在表示。
在一些实现方式中,该方法进一步包括由一个或多个神经网络层自回归地处理数据的潜在表示的代码符号以生成上下文输出集。上下文输出和熵模型的潜在表示由一个或多个神经网络层处理以生成定义熵模型的概率分布参数。
在一些实现方式中,用于:(i)生成数据的压缩表示并且(ii)从数据的压缩表示生成数据的重构的神经网络的参数使用机器学习训练技术来联合地训练以优化速率失真性能度量。
在一些实现方式中,速率失真性能度量包括:(i)基于数据的潜在表示的熵编码表示的大小的第一速率项,(ii)基于熵模型的潜在表示的熵编码表示的大小的第二速率项,以及(iii)基于数据与数据的重构之间的差异的失真项。
在一些实现方式中,失真项通过确定速率失真权衡的超参数来缩放。
在一些实现方式中,编码器神经网络包括一个或多个广义除法归一化(GDN)非线性。
在一些实现方式中,数据的压缩表示包括比特流。
在一些实现方式中,该方法进一步包括发送或存储数据的压缩表示。
根据第四方面,提供了一种由数据处理装置实现的方法,包括获得以下各项的熵编码表示:(i)包括表示数据的代码符号的有序合集的数据的潜在表示,和(ii)用于对数据的潜在表示进行熵编码的熵模型的潜在表示。熵模型的潜在表示通过使用超编码器神经网络处理数据的潜在表示来确定。熵模型由表征一个或多个代码符号概率分布的一个或多个概率分布参数定义。对数据的潜在表示进行熵解码,包括使用熵模型的潜在表示确定定义熵模型的概率分布参数。使用熵模型对数据的潜在表示进行熵解码。从数据的潜在表示中确定(重构)数据,包括使用使用解码器神经网络处理数据的潜在表示。
如上所述,压缩***对通过使用编码器神经网络处理数据而确定的数据的潜在表示进行熵编码。然而,在一些情况下,压缩***不包括编码器神经网络并且直接对输入数据的分量进行熵编码。例如,如果输入数据是图像,则压缩***可以直接对图像的像素强度/颜色值进行熵编码。当压缩***直接对输入数据的分量进行熵编码(即,而不使用编码器神经网络)时,解压缩***类似地直接对输入数据的分量进行熵解码(即,而不使用解码器神经网络)。这样的方法的示例可以包括一种由数据处理装置实现的方法,该方法包括:使用超编码器神经网络处理数据以生成熵模型的潜在表示,其中熵模型由表征一个或多个代码符号概率分布的一个或多个概率分布参数定义;生成熵模型的潜在表示的熵编码表示;使用熵模型的潜在表示生成数据的熵编码表示,包括:使用熵模型的潜在表示确定定义熵模型的概率分布参数;并且使用熵模型生成数据的熵编码表示;以及从以下各项的熵编码表示中确定数据的压缩表示:(i)数据和(ii)用于对数据进行熵编码的熵模型的潜在表示。
根据第五方面,提供了一种***,该***包括一个或多个计算机和存储指令的一个或多个存储设备,指令当由一个或多个计算机执行时,使该一个或多个计算机执行任何先前方面的相应方法的操作。
根据第六方面,提供了一种或多种计算机存储介质,所述一种或多种计算机存储介质存储指令,指令当由一个或多个计算机执行时,使该一个或多个计算机执行任何先前方面的相应方法的操作。
能够实现本说明书中描述的主题的特定实施例以便实现以下优点中的一个或多个。
本说明书中描述的压缩***使用基于输入数据(使用神经网络)确定的条件熵模型而不是使用例如静态预先确定的熵模型来对输入数据进行压缩。基于输入数据确定熵模型例如通过捕获输入数据中的空间依赖性使得熵模型变得更丰富且更准确,从而使得输入数据能够被以能够在一些常规***中实现的更高速率压缩。
本说明书中描述的***使用被联合地训练以优化速率失真目标函数的神经网络的合集来确定条件熵模型。为了确定条件熵模型,***能够使用“超编码器”神经网络处理数据的量化潜在表示以生成隐式表征条件熵模型的“超先验(hyper-prior)”。超先验随后被压缩并作为边信息包括在输入数据的压缩表示中。通常,更复杂的超先验能够指定使得输入数据能够被以更高速率压缩的更准确的条件熵模型。然而,增加超先验的复杂度可以使超先验它本身被以较低速率压缩。使用机器学习技术来训练本说明书中描述的***以针对每个输入数据集自适应地确定超先验的复杂度,以便优化整体压缩率。这允许本说明书中描述的***实现比一些常规***更高的压缩率。
本说明书中描述的***能够使用自回归“上下文”神经网络来确定用于对输入数据进行压缩的条件熵模型,该自回归“上下文”神经网络使得***能够在不增加数据的压缩表示的大小的情况下学习更丰富的熵模型。***能够联合地训练超编码器神经网络和自回归上下文神经网络,从而使得超先验能够存储减小上下文神经网络中的不确定性所需的信息,同时避免能够由自回归上下文神经网络准确地预测的信息。
通过比常规***更高效地对数据进行压缩和解压缩,本说明书中描述的***可以能够实现更高效的数据传输(例如,通过减少发送数据所需要的通信网络带宽)和更高效的数据存储(例如,通过减少存储数据所需要的存储器的量)。此外,通过所公开的方法,可以在不损害数据质量和/或真实性的情况下实现提高的效率。
本说明书的主题的一个或多个实施例的细节在附图和以下描述中阐述。根据说明书、附图和权利要求书,本主题的其他特征、方面和优点将变得显而易见。
附图说明
图1是示例压缩***的框图。
图2是示例解压缩***的框图。
图3示出描述由压缩/解压缩***使用的神经网络的示例架构的表。
图4图示由上下文神经网络生成的上下文输出对表示输入数据的代码符号的有序合集的依赖性的示例。
图5图示将本说明书中描述的压缩/解压缩***的性能与其他压缩/解压缩***的性能进行比较的速率失真曲线图。
图6图示能够通过使用本说明书中描述的压缩/解压缩***来实现的性能增益的定性示例。
图7是用于对数据进行压缩的示例过程的流程图。
图8是用于对数据进行解压缩的示例过程的流程图。
在各个附图中,相同的附图标记和名称指示相同的元件。
具体实施方式
本说明书描述了数据压缩***和数据解压缩***。压缩***被配置成处理输入数据(例如,图像数据、音频数据、视频数据、文本数据或任何其他适当种类的数据)以生成输入数据的压缩表示。解压缩***能够处理压缩数据以生成输入数据的(近似的或确切的)重构。
通常,压缩***和解压缩***可以被共定位或远程地定位,并且能够以各种方式中的任一种将由压缩***生成的压缩数据提供给解压缩***。例如,压缩数据可以被存储(例如,在物理数据存储设备或逻辑数据存储区域中),然后随后从存储中检索并提供给解压缩***。作为另一示例,可以通过通信网络(例如,因特网)将压缩数据发送到目的地,其中压缩数据随后被检索并提供给解压缩***。
为了对输入数据进行压缩,压缩***将输入数据映射到量化潜在表示作为“代码符号”的有序合集例如代码符号的向量或矩阵。每个代码符号是从可能的代码符号的离散集例如整数值集中得到的。压缩***通过使用条件熵模型即取决于输入数据的熵模型对代码符号进行熵编码来对代码符号进行压缩。条件熵模型定义与表示输入数据的代码符号的有序合集中的每个代码符号相对应的相应的代码符号概率分布(即,在可能代码符号集合上的概率分布)。压缩***然后基于以下各项生成输入数据的压缩表示:(i)压缩代码符号,和(ii)表征用于对代码符号进行压缩的条件熵模型的“边信息”。
解压缩***能够通过从压缩数据恢复条件熵模型并使用该条件熵模型来对压缩代码符号进行解压缩(即,熵解码)而对数据进行解压缩。解压缩***然后能够通过将代码符号映射回到输入数据的重构来重构原始输入数据。
使用自适应的且输入数据相关的条件熵模型(而不是例如静态预先确定的熵模型)能够使得输入数据能够被更有效地压缩。在下面更详细地描述这些特征和其他特征。
图1是示例压缩***100的框图。压缩***100是作为计算机程序实现在一个或多个位置中的一个或多个计算机上的示例***,在其中实现了下述***、组件和技术。
压缩***100使用以下各项来处理输入数据102以生成表示输入数据102的压缩数据104:(1)编码器神经网络106、(2)超编码器神经网络108、(3)超解码器神经网络110、(4)熵模型神经网络112和任选地(5)上下文神经网络114。如将参考图2更详细地描述的,使用速率失真目标函数来联合地训练由压缩***使用的神经网络(以及由解压缩***使用的神经网络)。通常,本文档中描述的每个神经网络能够具有使得它能够执行其描述的功能的任何适当的神经网络架构。参考图3更详细地描述由压缩***和解压缩***使用的神经网络的示例架构。
编码器神经网络106被配置成处理输入数据102(x)以生成输入数据102的潜在表示116(y)。如贯穿本文档所使用的,数据的“潜在表示”是指数据作为数值的有序合集例如数值的向量或矩阵的表示。在一个示例中,输入数据可以是图像,编码器神经网络106可以是卷积神经网络,并且输入数据的潜在表示116可以是由编码器神经网络106的最终层输出的多通道特征图。通常,输入数据的潜在表示116与输入数据它本身比可以是更可压缩的,并且在一些情况下,可以具有比输入数据低的维数。
为了方便使用熵编码技术对输入数据的潜在表示116进行压缩,压缩***100使用量化器Q118来量化输入数据的潜在表示116以生成代码符号120的有序合集量化值是指将该值映射到可能代码符号的离散集的成员。例如,可能代码符号的集合可以是整数值,并且压缩***100可以通过将实值数舍入为整数值来执行量化。
如将接下来更详细地描述的,压缩***100使用超编码器神经网络108、超解码器神经网络110和熵模型神经网络112来生成用于对表示输入数据的代码符号120进行熵编码的条件熵模型。
超编码器神经网络108被配置成处理输入数据的潜在表示116以生成“超先验”122(z)(有时称作“超参数”),即,条件熵模型的潜在表示。在一个示例中,超编码器神经网络108可以是卷积神经网络,并且超先验122可以是由超编码器神经网络108的最终层输出的多通道特征图。超先验隐式地表征将使得表示输入数据的代码符号120能够被高效地压缩的输入数据相关熵模型。
压缩数据104通常包括超先验122的压缩表示以使得解压缩***能够恢复条件熵模型。为此,压缩***100使用量化器Q136来量化超先验122以生成量化超先验并且生成量化超先验124的压缩表示126,例如作为比特串,即二进制数字串。在一个示例中,压缩***100依照指定一个或多个预先确定的代码符号概率分布的预先确定的熵模型使用熵编码引擎138来对量化超先验124进行压缩。
超解码器神经网络110被配置成处理量化超先验124以生成超解码器输出128(Ψ),并且熵模型神经网络112被配置成处理超解码器输出128以生成条件熵模型。也就是说,超解码器110和熵模型神经网络112联合地对量化超先验进行解码以生成显式地定义条件熵模型的输出。
条件熵模型指定与表示输入数据的每个代码符号116相对应的相应代码符号概率分布。通常,熵模型神经网络112的输出包括定义条件熵模型的每个代码符号概率分布的分布参数。在一个示例中,条件熵模型的每个代码符号概率分布可以是与单位均匀分布卷积的(通过均值和标准偏差参数来参数化的)高斯分布。在此示例中,熵模型神经网络112的输出可以为条件熵模型的每个代码符号概率分布指定高斯均值和标准偏差参数的相应值。
任选地,压缩***100能够在确定条件熵模型时附加地使用上下文神经网络114。上下文神经网络114被配置成(即,依照代码符号的排序)自回归地处理表示输入数据的代码符号120以生成每个代码符号的相应“上下文输出”130(Φ)。每个代码符号的上下文输出仅取决于在表示输入数据的代码符号的有序合集中在该代码符号之前的代码符号,而不取决于该代码符号它本身或者取决于紧跟该代码符号之后的代码符号。可以将代码符号的上下文输出130理解为因果上下文信息,该因果上下文信息可以由熵模型神经网络112使用来生成代码符号的更准确的代码符号概率分布。
熵模型神经网络112能够处理由上下文神经网络114生成的上下文输出130(即,除了超解码器输出128之外)以生成条件熵模型。通常,每个代码符号的代码符号概率分布取决于代码符号的上下文输出,并且任选地,取决于在该代码符号之前的代码符号的上下文输出,而不取决于紧跟该代码符号之后的代码符号的上下文输出。如将参考图2更详细地描述的,这导致条件熵模型对表示输入数据的代码符号的因果依赖性,这确保解压缩***能够从压缩数据恢复条件熵模型。
和必须作为边信息包括在压缩数据104中(从而增加总压缩文件大小)的超先验122对比,自回归上下文神经网络114提供“免费”信息源(折扣计算成本),因为它不要求添加任何边信息。联合地训练上下文神经网络114和超编码器108使得超先验122能够存储与上下文输出130互补的信息,同时避免能够使用上下文输出130来准确地预测的信息。
熵编码引擎132被配置成通过依照条件熵模型对表示输入数据的代码符号120进行熵编码来对该代码符号120进行压缩。熵编码引擎132能够实现任何适当的熵编码技术,例如,算术代码化技术、范围代码化技术或霍夫曼代码化技术。压缩代码符号134可以被以各种方式中的任一种表示,例如,被表示为比特串。
压缩***100基于以下各项生成压缩数据104:(i)压缩代码符号134和(ii)压缩超先验126。例如,压缩***可以通过级联表示压缩代码符号134和压缩超先验126的相应比特串来生成压缩数据。
在一些情况下,压缩***100使用上下文神经网络114而不是超先验122来确定用于对表示数据的代码符号进行熵编码的熵模型。在这些情况下,压缩***100不使用超编码器网络108或超解码器网络110。相反,***通过自回归地处理表示数据的代码符号120生成上下文输出130并且然后使用熵模型神经网络112处理上下文输出130而生成熵模型。
图2是示例解压缩***200的框图。解压缩***200是作为计算机程序实现在一个或多个位置中的一个或多个计算机上的示例***,在其中实现了下述***、组件和技术。
解压缩***200使用以下各项来处理由压缩***生成的压缩数据104以生成近似原始输入数据的重构202:(1)超解码器神经网络110、(2)熵模型神经网络112、(3)解码器神经网络204和任选地(4)上下文神经网络114。由解压缩***使用的超解码器神经网络110、熵模型神经网络112和上下文神经网络114共享与由压缩***使用的对应神经网络相同的参数值。
为了恢复条件熵模型,解压缩***200从压缩数据104获得量化超先验124。例如,解压缩***200可以通过使用熵解码引擎206来对被包括在压缩数据104中的量化超先验124的压缩表示126进行熵解码来获得量化超先验124。在此示例中,熵解码引擎206可以使用用于对量化超先验124的压缩表示126进行熵编码的同一(例如,预先确定的)熵模型来对量化超先验124的压缩表示126进行熵解码。
超解码器神经网络110被配置成处理量化超先验124以生成超解码器输出128(Ψ),并且熵模型神经网络112被配置成处理超解码器输出128以生成条件熵模型,即,以类似于压缩***的方式。熵解码引擎208被配置成依照条件熵模型对压缩数据104中包括的压缩代码符号134进行熵解码以恢复代码符号120。
在压缩***使用了上下文神经网络114来确定条件熵模型的情况下,解压缩***200也使用上下文神经网络114来恢复条件熵模型。如参考图1所描述的,上下文神经网络114被配置成自回归地处理表示输入数据的代码符号120以针对每个代码符号生成相应上下文输出130。在最初接收到压缩数据104之后,解压缩***200不能够访问被提供作为上下文神经网络114的输入的解压缩代码符号120的完整集。如将在下面更详细地描述的,解压缩***200通过依照代码符号的排序依次对代码符号120进行解压缩来说明这个。由上下文神经网络114生成的上下文输出130被提供给熵模型神经网络112,该熵模型神经网络将上下文输出130连同超解码器输出128一起处理以生成条件熵模型。
为了说明解压缩***200最初不能够访问被提供作为上下文神经网络114的输入的解压缩代码符号120的完整集,解压缩***200依照代码符号的排序依次对代码符号120进行解压缩。特别地,解压缩***可以使用例如预先确定的代码符号概率分布对第一代码符号进行解压缩。为了对每个后续代码符号进行解压缩,上下文神经网络114处理一个或多个在前代码符号(即,其已经被解压缩)以生成对应上下文输出130。熵模型神经网络112然后处理(i)上下文输出130、(ii)超解码器输出128和任选地(iii)一个或多个在前上下文输出130,以生成对应代码符号概率分布,其随后用于对代码符号进行解压缩。
解码器神经网络204被配置成处理代码符号120的有序合集以生成近似输入数据的重构202。也就是说,由解码器神经网络204执行的操作近似地使由参考图1描述的编码器神经网络执行的操作反转。
在一些情况下,解压缩***200确定用于使用上下文神经网络114而不是超先验来对表示数据的代码符号进行熵解码的熵模型。在这些情况下,解压缩***200不使用超解码器网络110。相反,***通过自回归地处理表示数据的代码符号120生成上下文输出130并且然后使用熵模型神经网络112处理上下文输出130而生成熵模型。
能够使用机器学习训练技术(例如,随机梯度下降)来联合地训练压缩***和解压缩***以优化速率失真目标函数。更具体地,能够联合地训练编码器神经网络、超编码器神经网络、超解码器神经网络、上下文神经网络、熵模型神经网络和解码器神经网络以优化速率失真目标函数。在一个示例中,速率失真目标函数(“性能度量”)可以由下式给出:
其中是指表示输入数据的代码符号在用于对这些代码符号进行熵编码的条件熵模型下的概率,是指量化超先验在用于对该量化超先验进行熵编码的熵模型下的概率,λ是确定速率失真权衡的参数,并且是指输入数据x与输入数据的重构之间的差异的范数。在参考等式(1)至(4)描述的速率失真目标函数中,Rlatent表征表示输入数据的压缩代码符号的大小(例如,以比特为单位),Rhyper-prior表征压缩超先验的大小(例如,以比特为单位),并且Ereconstruction表征输入数据与输入数据的重构之间的差异(“失真”)。
通常,更复杂的超先验能够指定使得表示输入数据的代码符号能够被以较高速率压缩的更准确的条件熵模型。然而,增加超先验的复杂度可以使超先验它本身被以较低速率压缩。通过联合地训练压缩***和解压缩***,能够从训练数据中直接学***衡:(i)压缩超先验的大小,和(ii)来自更准确的熵模型的增加的压缩率。
在一些实现方式中,压缩***和解压缩***不使用编码器神经网络或解码器神经网络。在这些实现方式中,如上所述,压缩***能够通过直接量化输入数据来生成表示输入数据的代码符号,并且解压缩***能够生成输入数据的重构作为对代码符号进行解压缩的结果。
图3示出描述了在输入数据由图像构成的特定情况下由压缩/解压缩***使用的神经网络的示例架构的表300。更具体地,表300描述了编码器神经网络302、解码器神经网络304、超编码器神经网络306、超解码器神经网络308、上下文神经网络310和熵模型神经网络312的示例架构。
表300的每一行对应于相应层。卷积层被指定“Conv(卷积)”前缀接着有核大小、通道数和下采样步幅。例如,编码器神经网络302的第一层使用具有192个通道且步幅为2的5×5核。“Deconv(解卷积)”前缀对应于上采样卷积,然而“Masked(掩码)”对应于掩码卷积。GDN代表广义除法归一化,而IGDN是GDN的逆。
在参考图3描述的示例架构中,熵模型神经网络使用1×1核。此架构使得熵模型神经网络能够生成具有如下性质的条件熵模型:与每个代码符号相对应的代码符号概率分布不取决于与后续代码符号相对应的上下文输出(如早前所述)。作为另一示例,能通过使用掩码卷积核实现相同效果。
图4图示由上下文神经网络生成的上下文输出对表示输入数据的代码符号402的有序合集的依赖性的示例。为了针对代码符号404生成上下文输出,上下文神经网络处理在代码符号404之前的一个或多个代码符号,其被图示为阴影的。
图5图示将本说明书中描述的压缩/解压缩***的性能与其他压缩/解压缩***的性能进行比较的速率失真曲线图500。对于每个压缩/解压缩***,速率失真曲线图500示出针对各种每像素比特(BPP)压缩率(在水平轴上)的由***实现的峰信噪比(PSNR)(在垂直轴上)。
曲线图500上的线502对应于本说明书中描述的压缩/解压缩***,线504对应于更好的可移植图像(Better Portable Graphics,BPG)***,线506对应于参考如下描述的***:J.Balle,D.Minnen,S.Singh,S.J.Hwang,N.Johnston,“Variational imagecompression with a scale hyperprior,”6th Int.Conf.on Learning Representations,2018,线508对应于参考如下描述的***:D.Minnen,G.Toderici,S.Singh,S.J.Hwang,M.Covell,“Image-dependent local entropy models for image compression withdeep networks,”Int.Conf.on Image Processing,2018,线510对应于JPEG2000***,并且线512对应于JPEG***。能够领会,本说明书中描述的压缩/解压缩***通常胜过其他压缩/解压缩***。
图6图示能够通过使用本说明书中描述的压缩/解压缩***来实现的性能增益的定性示例。图像602是在使用JPEG***以0.2309BPP压缩之后重构的,并且图像604是在使用本说明书中描述的压缩/解压缩***以0.2149BPP压缩之后重构的同一图像。能够领会,尽管与图像604比要使用更大的BPP来对图像602进行压缩,但是图像604(与本说明书中描述的***相对应)与图像602(与JPEG相对应)比具有基本上较高的质量(例如,具有更少的伪像)。
图7是用于对数据进行压缩的示例过程700的流程图。为了方便,将过程700描述为由位于一个或多个位置中的一个或多个计算机的***来执行。例如,依照本说明书适当地编程的压缩***,例如参考图1描述的压缩***,能够执行过程700。
***接收要压缩的数据(702)。数据可以是任何适当形式的数据,例如图像数据、音频数据或文本数据。
***使用编码器神经网络处理数据以生成数据的潜在表示(704)。在一个示例中,数据是图像数据,编码器神经网络是卷积神经网络,并且数据的潜在表示是由编码器神经网络的最终层输出的特征图的有序合集。
***使用超编码器神经网络处理数据的潜在表示以生成条件熵模型的潜在表示即“超先验”(706)。在一个示例中,超编码器神经网络是卷积神经网络并且超先验是由超编码器神经网络的最终层输出的多通道特征图。
***对超先验进行量化和熵编码(708)。***能够使用例如由一个或多个预先确定的代码符号概率分布所定义的预先确定的熵模型对量化超先验进行熵编码。在一个示例中,预先确定的熵模型可以为量化超先验的每个代码符号指定相应预先确定的代码符号概率分布。在此示例中,***可以使用对应预先确定的代码符号概率分布对量化超先验的每个代码符号进行熵编码。***能够使用任何适当的熵编码技术,例如霍夫曼编码技术或算术编码技术。
***使用超先验来确定条件熵模型(710)。特别地,***使用超解码器神经网络处理量化超先验,然后使用熵模型神经网络处理超解码器神经网络输出以生成定义条件熵模型的输出。例如,熵模型神经网络可以生成指定了定义条件熵模型的每个代码符号概率分布的相应分布参数的输出。
在一些实现方式中,为了确定熵模型,***附加地使用上下文神经网络来自回归地处理数据的量化潜在表示的代码符号以生成与每个代码符号相对应的相应上下文输出。在这些实现方式中,熵模型神经网络通过将上下文输出连同超解码器神经网络输出一起处理来生成条件熵模型。
上下文神经网络能够具有使得它能够自回归地处理数据的量化潜在表示的代码符号的任何合适的神经网络架构。在一个示例中,上下文神经网络是使用带5×5个卷积核的掩码卷积层的掩码卷积神经网络。在此示例中,上下文神经网络针对每个代码符号通过处理在前代码符号的适当子集即而不是对每一在前代码符号进行处理来生成上下文输出。在一些情况下,掩码卷积层能够针对当前代码符号通过将在(i)当前代码符号和(ii)紧跟当前代码符号之后的代码符号上操作的层的卷积核的组件动态地置零来生成上下文输出。
***使用条件熵模型来对数据的量化潜在表示进行熵编码(712)。例如,***能够使用由条件熵模型所定义的相应代码符号概率分布对数据的量化潜在表示的每个代码符号进行熵编码。***能够使用任何适当的熵编码技术,例如霍夫曼编码技术或算术编码技术。
***基于以下各项确定数据的压缩表示:(i)数据的压缩(即,熵编码)量化潜在表示和(ii)压缩(即,熵编码)量化超先验,例如,通过级联它们(714)。在确定数据的压缩表示之后,***可以(例如,在逻辑数据存储区域或物理数据存储设备中)存储数据的压缩表示,或者(例如,通过数据通信网络)发送数据的压缩表示。
图8是用于对使用示例过程700(如参考图7所描述的)压缩的数据进行解压缩的示例过程800的流程图。为了方便,将过程800描述为由位于一个或多个位置中的一个或多个计算机的***来执行。例如,依照本说明书适当地编程的解压缩***,例如参考图2描述的解压缩***,能够执行过程800。
***获得压缩数据(802)。如上所述,压缩数据包括(i)数据的压缩(即,熵编码)量化潜在表示和(ii)压缩(即,熵编码)量化超先验。***可以例如从数据存储(例如,逻辑数据存储区域或物理数据存储设备)或者作为通信网络(例如,因特网)上的传输获得压缩数据。
***对量化超先验进行熵解码(804)。例如,***可以使用由用于对量化超先验进行熵编码的预先确定的代码符号概率分布的集合所定义的预先确定的熵模型来对量化超先验进行熵解码。在此示例中,***可以使用由预先确定的熵模型所定义的对应预先确定的代码符号概率分布来对量化超先验的每个代码符号进行熵解码。
***确定用于对数据的量化潜在表示进行熵编码的条件熵模型(806)。为了确定条件熵模型,***使用超解码器神经网络处理量化超先验,然后使用熵模型神经网络处理超解码器神经网络输出以生成定义条件熵模型的分布参数。如将在下面更详细地描述的,在一些实现方式中,***使用自回归上下文神经网络确定条件熵模型。
***使用条件熵模型对数据的量化潜在表示进行熵解码(808)。特别地,***使用由条件熵模型所定义的对应代码符号概率分布对数据的量化潜在表示的每个代码符号进行熵解码。
在一些实现方式中,***使用上下文神经网络确定条件熵模型。如上所述,上下文神经网络被配置成自回归地处理数据的潜在表示的代码符号以针对每个代码符号生成相应上下文输出。熵模型神经网络通过处理除了超解码器神经网络输出之外的上下文输出来生成条件熵模型。
在这些实现方式中,***依次对数据的量化潜在表示的代码符号进行熵解码。例如,为了对第一代码符号进行熵解码,上下文神经网络可以处理占位符输入以生成对应上下文输出。熵模型神经网络可以将上下文输出连同超解码器神经网络输出一起处理以生成用于对第一代码符号进行熵解码的对应代码符号概率分布。对于每个后续代码符号,上下文神经网络可以处理包括一个或多个在前代码符号(即,其已经被熵解码)的输入以生成对应上下文输出。然后,如以前,熵模型神经网络可以将代码符号的上下文输出连同超解码器神经网络输出一起处理以生成用于对代码符号进行熵解码的对应代码符号概率分布。
***通过使用解码器神经网络处理数据的量化潜在表示而确定数据的重构(810)。在一个示例中,解码器神经网络可以是处理图像数据的量化潜在表示生成图像数据的(近似的或确切的)重构的解卷积神经网络。
本说明书连同***和计算机程序组件一起使用术语“被配置”。对于要被配置成执行特定操作或动作的一个或多个计算机的***意指***已在其上安装了在操作中使该***执行这些操作或动作的软件、固件、硬件或软件、固件、硬件的组合。对于要被配置成执行特定操作或动作的一个或多个计算机程序意指该一个或多个程序包括指令,所述指令当由数据处理装置执行时,使该装置执行操作或动作。
本说明书中描述的主题和功能操作的实施例可用数字电子电路、用有形地具体实现的计算机软件或固件、用包括本说明书中公开的结构及其结构等同物的计算机硬件或者用它们中的一个或多个的组合来实现。本说明书中描述的主题的实施例可作为一个或多个计算机程序被实现,所述一个或多个计算机程序即在有形非暂时性存储介质上编码以供由数据处理装置执行或者控制数据处理装置的操作的计算机程序指令的一个或多个模块。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行访问存储设备或它们中的一个或多个的组合。替换地或此外,可将程序指令编码在人工生成的传播信号上,所述传播信号例如是机器生成的电、光或电磁信号,该传播信号被生成来对信息进行编码以用于传输到适合的接收器装置以供由数据处理装置执行。
术语“数据处理装置”指代数据处理硬件并且包含用于处理数据的所有种类的装置、设备和机器,作为示例包括可编程处理器、计算机或多个处理器或计算机。装置还可以是或者进一步包括专用逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。装置除了包括硬件之外还可以可选地包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理***、操作***或它们中的一个或多个的组合的代码。
也可以被称为或者描述为程序、软件、软件应用、app、模块、软件模块、脚本或代码的计算机程序可用包括编译或解释语言或声明或过程语言的任何形式的编程语言编写;并且它可被以任何形式部署,包括作为独立程序或者作为模块、组件、子例行程序或适合于在计算环境中使用的其它单元。程序可以但是不必对应于文件***中的文件。程序可以被存储在保持其它程序或数据的文件的一部分中,例如存储在标记语言文档中的一个或多个脚本;在专用于所述程序的单个文件中或者在多个协调文件中,例如存储代码的一个或多个模块、子程序或部分的文件。可以将计算机程序部署为在位于一个站点上或跨多个站点分布并通过数据通信网络互连的一个计算机上或在多个计算机上执行。
类似地,在本说明书中术语“引擎”广泛地用于指代被编程来执行一个或多个具体功能的基于软件的***、子***或过程。通常,引擎将作为安装在一个或多个位置中的一个或多个计算机上的一个或多个软件模块或组件被实现。在一些情况下,一个或多个计算机将专用于特定引擎;在其它情况下,可在同一计算机或多个计算机上安装并运行多个引擎。
本说明书中描述的过程和逻辑流程可由执行一个或多个计算机程序的一个或多个可编程计算机执行以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程还可由例如是FPGA或ASIC的专用逻辑电路执行,或者通过专用逻辑电路和一个或多个编程计算机的组合来执行。
适合于执行计算机程序的计算机可基于通用微处理器或专用微处理器或两者,或任何其它种类的中央处理器。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的必要元件是用于执行或者实行指令的中央处理单元以及用于存储指令和数据的一个或多个存储设备。中央处理单元和存储器可由专用逻辑电路补充或者并入在专用逻辑电路中。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘,或者操作上被耦合以从所述一个或多个大容量存储设备接收数据或者将数据传送到所述一个或多个大容量存储设备,或者两者以用于存储数据。然而,计算机不必具有这样的设备。此外,计算机可被嵌入在另一设备中,所述另一设备例如是移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制器、全球定位***(GPS)接收器或便携式存储设备,例如通用串行总线(USB)闪存驱动器等。
适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储设备,作为示例包括半导体存储设备,例如EPROM、EEPROM和闪速存储器设备;磁盘,例如内部硬盘或可移动盘;磁光盘;以及CD ROM和DVD-ROM盘。
为了提供与用户的交互,可在计算机上实现本说明书中描述的主题的实施例,所述计算机具有用于向用户显示信息的显示设备以及用户可用来向该计算机提供输入的键盘和定点设备,所述显示设备例如是CRT(阴极射线管)或LCD(液晶显示器)监视器,所述定点设备例如是鼠标或轨迹球。其它种类的设备也可用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以任何形式接收来自用户的输入,包括声、语音或触觉输入。此外,计算机可通过向由用户使用的设备发送文档并从由用户使用的设备接收文档来与用户交互;例如,通过响应于从web浏览器接收到请求而向用户的设备上的web浏览器发送网页。另外,计算机可通过向个人设备发送文本消息或其它形式的消息并且继而从用户接收响应消息来与用户交互,所述个人设备例如是正在运行消息传送应用的智能电话。
用于实现机器学习模型的数据处理装置还可包括例如用于处理机器学习训练或生产,即推理、工作负载的公共和计算密集部分的专用硬件加速器单元。
可使用机器学习框架来实现和部署机器学习模型。所述机器学习框架例如是TensorFlow框架、Microsoft Cognitive Toolkit框架、Apache Singa框架或Apache MXNet框架。
本说明书中描述的主题的实施例可被实现在计算***中,所述计算***包括后端组件,例如作为数据服务器;或者包括中间件组件,例如应用服务器;或者包括前端组件,例如具有用户可用来与本说明书中描述的主题的实现方式交互的图形用户界面、web浏览器或app的客户端计算机;或者包括一个或多个这样的后端、中间件或前端组件的任何组合。***的组件可通过例如通信网络的任何形式或介质的数字数据通信来互连。通信网络的示例包括局域网(LAN)和广域网(WAN),例如互联网。
计算***可包括客户端和服务器。客户端和服务器一般地彼此远离并通常通过通信网络来交互。客户端和服务器的关系借助于在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。在一些实施例中,服务器向用户设备传输例如HTML页面的数据例如以用于向与作为客户端的设备交互的用户显示数据并从该用户接收用户输入的目的。可在服务器处从设备接收在用户设备处生成的数据,例如,用户交互的结果。
虽然本说明书包含许多具体实施方式细节,但是这些不应该被解释为对任何发明的或可能要求保护的范围的限制,而是相反地被解释为对可能特定于特定发明的特定实施例的特征的描述。也可在单个实施例中组合地实现在本说明书中在单独的实施例的上下文中描述的某些特征。相反地,也可单独地或者按照任何适合的子组合在多个实施例中实现在单个实施例的上下文中描述的各种特征。此外,尽管特征可能在上面被描述按照某些组合起作用并且甚至最初被如此要求保护,但是来自要求保护的组合的一个或多个特征可在一些情况下被从该组合中除去,并且所要求保护的组合可以针对子组合或子组合的变化。
类似地,虽然按照特定次序在附图中描绘并在权利要求书中记载操作,但是这不应该被理解为要求按照所示的特定次序或者以先后次序执行这样的操作,或者要求执行所有图示的操作以实现所预期的结果。在某些情况下,多任务处理和并行处理可以是有利的。此外,上述实施例中的各种***模块和组件的分离不应该被理解为在所有实施例中要求这样的分离,并且应该理解的是,所描述的程序组件和***一般地可被一起集成在单个软件产品中或者包装到多个软件产品中。
已描述了主题的特定实施例。其它实施例在所附权利要求的范围内。例如,权利要求中记载的动作可被以不同的次序执行并仍然实现所预期的结果。作为一个示例,附图中描绘的过程不一定要求所示的特定次序或顺序次序以实现所预期的结果。在一些情况下,多任务处理和并行处理可以是有利的。
Claims (22)
1.一种由数据处理装置实现的方法,所述方法包括:
使用编码器神经网络处理数据以生成所述数据的潜在表示;
使用超编码器神经网络处理所述数据的潜在表示以生成熵模型的潜在表示,其中,所述熵模型由表征一个或多个代码符号概率分布的一个或多个概率分布参数来定义;
生成所述熵模型的潜在表示的熵编码表示;
使用所述熵模型的潜在表示生成所述数据的潜在表示的熵编码表示,包括:
使用所述熵模型的潜在表示来确定定义所述熵模型的所述概率分布参数,包括:
由一个或多个神经网络层来自回归地处理所述数据的潜在表示的量化的代码符号,以生成多个上下文输出;并且
由一个或多个神经网络层来处理所述上下文输出和所述熵模型的潜在表示的量化,以生成定义所述熵模型的所述概率分布参数;以及
使用所述熵模型生成所述数据的潜在表示的熵编码表示;以及
从以下各项的熵编码表示中确定所述数据的压缩表示:(i)所述数据的潜在表示,和(ii)用于对所述数据的潜在表示进行熵编码的所述熵模型的潜在表示。
2.根据权利要求1所述的方法,其中,所述数据包括图像并且所述编码器神经网络是卷积神经网络。
3.根据权利要求1-2中的任一项所述的方法,其中,使用编码器神经网络处理所述数据以生成所述数据的潜在表示包括:
通过对所述数据的潜在表示进行量化来确定表示所述数据的代码符号的有序合集。
4.根据权利要求1-3中的任一项所述的方法,其中,生成所述熵模型的潜在表示的熵编码表示包括:
对所述熵模型的潜在表示进行量化。
5.根据权利要求3-4中的任一项所述的方法,其中,由表示所述数据的代码符号的所述有序合集中的每个代码符号的相应代码符号概率分布来定义所述熵模型。
6.根据权利要求1-5中的任一项所述的方法,其中,每个代码符号概率分布是与均匀分布进行卷积的高斯分布,并且定义每个代码符号概率分布的所述相应概率分布参数包括所述高斯分布的相应均值和标准偏差参数。
7.根据权利要求4-6中的任一项所述的方法,其中,生成所述熵模型的潜在表示的熵编码表示包括:
使用一个或多个预先确定的概率分布来对熵模型的量化潜在表示进行熵编码。
8.根据权利要求3-7中的任一项所述的方法,其中,使用所述熵模型来生成所述数据的潜在表示的熵编码表示包括:
使用定义所述熵模型的所述代码符号概率分布来对表示所述数据的代码符号的所述有序合集进行算术编码。
9.根据权利要求1-8中的任一项所述的方法,其中:
所述数据的量化潜在表示的代码符号与排序相关联;并且
由一个或多个神经网络层来自回归地处理所述数据的量化潜在表示的代码符号以生成所述多个上下文输出包括:
生成所述数据的量化潜在表示的每个代码符号的相应上下文输出,其中,生成所述数据的量化潜在表示的给定代码符号的所述上下文输出包括:
使用所述一个或多个神经网络层处理包括在所述数据的量化潜在表示的给定代码符号之前的所述数据的量化潜在表示的一个或多个代码符号的输入,以生成所述数据的量化潜在表示的所述给定代码符号的所述上下文输出。
10.根据权利要求9所述的方法,其中,所述输入不包括下述任何一个:(i)所述数据的量化潜在表示的给定代码符号,或(ii)跟随在所述数据的量化潜在表示的所述给定代码符号之后的所述数据的量化潜在表示的任何代码符号。
11.根据权利要求9-10中的任一项所述的方法,其中,所述一个或多个神经网络层是掩码卷积神经网络层。
12.根据权利要求1-11中的任一项所述的方法,其中,由一个或多个神经网络层处理所述上下文输出和所述熵模型的量化潜在表示以生成定义所述熵模型的所述概率分布参数包括:
生成表征所述数据的量化潜在表示的每个代码符号的相应代码符号概率分布的相应概率分布参数,包括,对于所述数据的量化潜在表示的每个代码符号:
使用所述一个或多个神经网络层来处理输入,所述输入包括:(i)所述数据的量化潜在表示的代码符号的上下文输出,和(ii)所述熵模型的量化潜在表示,以生成表征所述数据的量化潜在表示的代码符号的所述代码符号概率分布的所述概率分布参数。
13.根据权利要求1-12中的任一项所述的方法,其中,使用机器学习训练技术来联合地训练神经网络层的参数,以优化速率失真性能度量,所述神经网络层的参数用于:(i)生成所述数据的压缩表示,和(ii)从所述数据的压缩表示生成所述数据的重构。
14.根据权利要求1-13中的任一项所述的方法,其中,使用机器学习训练技术来联合地训练下述参数以优化速率失真性能度量,所述参数是:(i)所述超编码器神经网络的参数,和(ii)所述神经网络层的参数,所述神经网络层被用于自回归地处理所述数据的量化潜在表示的代码符号以生成所述多个上下文输出。
15.根据权利要求13-14中的任一项所述的方法,其中,所述速率失真性能度量包括:(i)基于所述数据的潜在表示的熵编码表示的大小的第一速率项,(ii)基于所述熵模型的潜在表示的熵编码表示的大小的第二速率项,以及(iii)基于所述数据与所述数据的重构之间的差异的失真项。
16.根据权利要求15所述的方法,其中,所述失真项通过确定速率失真权衡的超参数来缩放。
17.根据权利要求1-16中的任一项所述的方法,其中,所述编码器神经网络包括一个或多个广义除法归一化(GDN)非线性。
18.根据权利要求1-17中的任一项所述的方法,其中,所述数据的压缩表示包括比特流。
19.根据权利要求1-18中的任一项所述的方法,进一步包括:发送或存储所述数据的压缩表示。
20.一种由数据处理装置实现的方法,所述方法包括:
获得以下各项的熵编码表示:(i)数据集的潜在表示,和(ii)用于对所述数据的潜在表示进行熵编码的熵模型的潜在表示,
其中,通过使用超编码器神经网络处理所述数据的潜在表示来确定所述熵模型的潜在表示,并且
其中,所述熵模型由表征一个或多个代码符号概率分布的一个或多个概率分布参数来定义;
对所述数据的潜在表示进行熵解码,包括:
使用所述熵模型的潜在表示来确定定义所述熵模型的所述概率分布参数;并且
使用所述熵模型对所述数据的潜在表示进行熵解码,包括,对于所述数据的潜在表示的量化的一个或多个代码符号:
处理:(i)在所述数据的量化潜在表示的代码符号的排序中处于所述代码符号之前的所述数据的量化潜在表示的一个或多个在前代码符号,和(ii)所述熵模型的潜在表示的量化,以生成与所述数据的量化潜在表示的代码符号相对应的代码符号概率分布;并且
使用与所述数据的量化潜在表示的代码符号相对应的所述代码符号概率分布来对所述数据的量化潜在表示的代码符号进行熵解码;以及
从所述数据的潜在表示中确定所述数据的重构,包括使用使用解码器神经网络处理所述数据的潜在表示。
21.一种包括一个或多个计算机和存储指令的一个或多个存储设备的***,所述指令当由所述一个或多个计算机执行时,使所述一个或多个计算机执行根据权利要求1-20中的任一项所述的相应方法的操作。
22.一种或多种存储指令的计算机存储介质,所述指令当由一个或多个计算机执行时,使所述一个或多个计算机执行根据权利要求1-20中的任一项所述的相应方法的操作。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862701264P | 2018-07-20 | 2018-07-20 | |
US62/701,264 | 2018-07-20 | ||
PCT/US2019/042769 WO2020018985A1 (en) | 2018-07-20 | 2019-07-22 | Data compression using conditional entropy models |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111868753A true CN111868753A (zh) | 2020-10-30 |
Family
ID=67539618
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980020216.5A Pending CN111868753A (zh) | 2018-07-20 | 2019-07-22 | 使用条件熵模型的数据压缩 |
Country Status (4)
Country | Link |
---|---|
US (3) | US11257254B2 (zh) |
EP (1) | EP3756143A1 (zh) |
CN (1) | CN111868753A (zh) |
WO (1) | WO2020018985A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113747163A (zh) * | 2021-08-17 | 2021-12-03 | 上海交通大学 | 基于上下文重组建模的图像编码、解码方法及压缩方法 |
CN113810693A (zh) * | 2021-09-01 | 2021-12-17 | 上海交通大学 | 一种jpeg图像无损压缩和解压缩方法、***与装置 |
WO2023020320A1 (zh) * | 2021-08-17 | 2023-02-23 | 华为技术有限公司 | 熵编解码方法和装置 |
WO2023138687A1 (en) * | 2022-01-21 | 2023-07-27 | Beijing Bytedance Network Technology Co., Ltd. | Method, apparatus, and medium for data processing |
WO2023159883A1 (zh) * | 2022-02-25 | 2023-08-31 | 上海商汤智能科技有限公司 | 图像处理方法及装置、电子设备、存储介质、计算机程序和计算机程序产品 |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112771541A (zh) * | 2018-09-27 | 2021-05-07 | 谷歌有限责任公司 | 使用整数神经网络的数据压缩 |
US11729406B2 (en) * | 2019-03-21 | 2023-08-15 | Qualcomm Incorporated | Video compression using deep generative models |
US11388416B2 (en) * | 2019-03-21 | 2022-07-12 | Qualcomm Incorporated | Video compression using deep generative models |
US10984560B1 (en) * | 2019-03-29 | 2021-04-20 | Amazon Technologies, Inc. | Computer vision using learnt lossy image compression representations |
EP3742349A1 (en) * | 2019-05-24 | 2020-11-25 | Samsung Electronics Co., Ltd. | Decompression apparatus and control method thereof |
KR20210024865A (ko) * | 2019-08-26 | 2021-03-08 | 삼성전자주식회사 | 데이터를 처리하는 방법 및 장치 |
US11375194B2 (en) * | 2019-11-16 | 2022-06-28 | Uatc, Llc | Conditional entropy coding for efficient video compression |
CN113259665B (zh) * | 2020-02-07 | 2022-08-09 | 华为技术有限公司 | 一种图像处理方法以及相关设备 |
CN113259676B (zh) * | 2020-02-10 | 2023-01-17 | 北京大学 | 一种基于深度学习的图像压缩方法和装置 |
US11356305B2 (en) * | 2020-02-24 | 2022-06-07 | Qualcomm Incorporated | Method to convey the TX waveform distortion to the receiver |
CN113438481B (zh) * | 2020-03-23 | 2024-04-12 | 富士通株式会社 | 训练方法、图像编码方法、图像解码方法及装置 |
EP4144087A1 (en) * | 2020-04-29 | 2023-03-08 | Deep Render Ltd | Image compression and decoding, video compression and decoding: methods and systems |
US11538197B2 (en) * | 2020-09-15 | 2022-12-27 | Google Llc | Channel-wise autoregressive entropy models for image compression |
US11750848B2 (en) | 2020-11-30 | 2023-09-05 | Google Llc | High-fidelity generative image compression |
KR20210152992A (ko) * | 2020-12-04 | 2021-12-16 | 한국전자통신연구원 | 이진 마스크를 사용하는 영상 인코딩/디코딩을 위한 방법, 장치 및 기록 매체 |
US11803988B2 (en) * | 2021-03-15 | 2023-10-31 | Tencent America LLC | Method and apparatus for adaptive image compression with flexible hyperprior model by meta learning |
US20220405978A1 (en) * | 2021-06-18 | 2022-12-22 | Tencent America LLC | Non-linear quantization with substitution in neural image compression |
US11909975B2 (en) * | 2021-06-18 | 2024-02-20 | Tencent America LLC | Dependent scalar quantization with substitution in neural image compression |
FR3124671B1 (fr) | 2021-06-25 | 2023-07-07 | Fond B Com | Procédés de décodage et de codage d’une image, dispositifs et signal associés |
US11599972B1 (en) * | 2021-12-22 | 2023-03-07 | Deep Render Ltd. | Method and system for lossy image or video encoding, transmission and decoding |
CN114449276B (zh) * | 2022-01-06 | 2024-04-02 | 北京工业大学 | 一种基于学习的超先验边信息补偿图像压缩方法 |
CN114095728B (zh) * | 2022-01-21 | 2022-07-15 | 浙江大华技术股份有限公司 | 一种端到端的视频压缩方法、装置和计算机可读存储介质 |
US11876969B2 (en) * | 2022-02-11 | 2024-01-16 | Qualcomm Incorporated | Neural-network media compression using quantized entropy coding distribution parameters |
US20230262267A1 (en) * | 2022-02-11 | 2023-08-17 | Qualcomm Incorporated | Entropy coding for neural-based media compression |
WO2023155848A1 (en) * | 2022-02-17 | 2023-08-24 | Beijing Bytedance Network Technology Co., Ltd. | Method, apparatus, and medium for data processing |
WO2023165601A1 (en) * | 2022-03-03 | 2023-09-07 | Beijing Bytedance Network Technology Co., Ltd. | Method, apparatus, and medium for visual data processing |
WO2023208948A1 (en) * | 2022-04-25 | 2023-11-02 | Deep Render Ltd | Method and data processing system for lossy image or video encoding, transmission and decoding |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070016415A1 (en) * | 2005-07-15 | 2007-01-18 | Microsoft Corporation | Prediction of spectral coefficients in waveform coding and decoding |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7599840B2 (en) * | 2005-07-15 | 2009-10-06 | Microsoft Corporation | Selectively using multiple entropy models in adaptive coding and decoding |
US8898091B2 (en) * | 2011-05-11 | 2014-11-25 | Ari M. Frank | Computing situation-dependent affective response baseline levels utilizing a database storing affective responses |
CN114866770A (zh) * | 2015-08-07 | 2022-08-05 | Lg 电子株式会社 | 视频编译***中的帧间预测方法和装置 |
KR20180059444A (ko) * | 2015-09-24 | 2018-06-04 | 엘지전자 주식회사 | 영상 코딩 시스템에서 amvr 기반한 영상 코딩 방법 및 장치 |
CN108141588A (zh) * | 2015-09-24 | 2018-06-08 | Lg电子株式会社 | 图像编码***中的帧间预测方法和装置 |
KR20180058224A (ko) * | 2015-10-22 | 2018-05-31 | 엘지전자 주식회사 | 영상 코딩 시스템에서 모델링 기반 영상 디코딩 방법 및 장치 |
US10949748B2 (en) * | 2016-05-13 | 2021-03-16 | Microsoft Technology Licensing, Llc | Deep learning of bots through examples and experience |
US11403521B2 (en) * | 2018-06-22 | 2022-08-02 | Insilico Medicine Ip Limited | Mutual information adversarial autoencoder |
-
2019
- 2019-07-18 US US16/515,586 patent/US11257254B2/en active Active
- 2019-07-22 WO PCT/US2019/042769 patent/WO2020018985A1/en unknown
- 2019-07-22 CN CN201980020216.5A patent/CN111868753A/zh active Pending
- 2019-07-22 EP EP19749522.9A patent/EP3756143A1/en active Pending
-
2022
- 2022-01-19 US US17/578,794 patent/US11670010B2/en active Active
-
2023
- 2023-04-25 US US18/306,771 patent/US20240078712A1/en active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070016415A1 (en) * | 2005-07-15 | 2007-01-18 | Microsoft Corporation | Prediction of spectral coefficients in waveform coding and decoding |
Non-Patent Citations (2)
Title |
---|
BALLE等: "Variational Image Compression with a Scale Hyperprior", Retrieved from the Internet <URL:https://arxiv.org/pdf/1802.01436.pdf> * |
LUCAS 等: "Auxiliary Guided Autoregressive Variational Autoencoders", Retrieved from the Internet <URL:https://arxiv.org/pdf/1711.11479.pdf> * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113747163A (zh) * | 2021-08-17 | 2021-12-03 | 上海交通大学 | 基于上下文重组建模的图像编码、解码方法及压缩方法 |
WO2023020320A1 (zh) * | 2021-08-17 | 2023-02-23 | 华为技术有限公司 | 熵编解码方法和装置 |
CN113747163B (zh) * | 2021-08-17 | 2023-09-26 | 上海交通大学 | 基于上下文重组建模的图像编码、解码方法及压缩方法 |
CN113810693A (zh) * | 2021-09-01 | 2021-12-17 | 上海交通大学 | 一种jpeg图像无损压缩和解压缩方法、***与装置 |
WO2023138687A1 (en) * | 2022-01-21 | 2023-07-27 | Beijing Bytedance Network Technology Co., Ltd. | Method, apparatus, and medium for data processing |
WO2023159883A1 (zh) * | 2022-02-25 | 2023-08-31 | 上海商汤智能科技有限公司 | 图像处理方法及装置、电子设备、存储介质、计算机程序和计算机程序产品 |
Also Published As
Publication number | Publication date |
---|---|
EP3756143A1 (en) | 2020-12-30 |
US20220138991A1 (en) | 2022-05-05 |
WO2020018985A1 (en) | 2020-01-23 |
US20200027247A1 (en) | 2020-01-23 |
US11670010B2 (en) | 2023-06-06 |
US11257254B2 (en) | 2022-02-22 |
US20240078712A1 (en) | 2024-03-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11670010B2 (en) | Data compression using conditional entropy models | |
US11062211B2 (en) | Deep learning based adaptive arithmetic coding and codelength regularization | |
US11538197B2 (en) | Channel-wise autoregressive entropy models for image compression | |
JP7225333B2 (ja) | ニューラルネットワークを使用するタイル型画像圧縮 | |
EP3841528B1 (en) | Data compression using integer neural networks | |
US10909728B1 (en) | Learned lossy image compression codec | |
US11177823B2 (en) | Data compression by local entropy encoding | |
EP3683770A1 (en) | Systems and methods for image compression at multiple, different bitrates | |
US12008731B2 (en) | Progressive data compression using artificial neural networks | |
CN113038134B (zh) | 一种图片处理方法、智能终端及存储介质 | |
KR102312338B1 (ko) | Ai 부호화 장치 및 그 동작방법, 및 ai 복호화 장치 및 그 동작방법 | |
US20240223817A1 (en) | Video compression using optical flow | |
US20230229894A1 (en) | Method and apparatus for compression and training of neural network | |
US20240020884A1 (en) | Online meta learning for meta-controlled sr in image and video compression | |
EP4298605A1 (en) | Online training-based encoder tuning with multi model selection in neural image compression | |
CN116965030A (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 |