没有合适的资源?快使用搜索试试~ 我知道了~
3739PILCPNGWebPL3cFLIF传统自回归AE/VAE流PILC比特交换IDFIDF++PixelCNN++DistAugLBB×PILC:基于端到端GPU的实用图像无损压缩宁康1* 邱善照2* 张世峰1李振国1 <$夏树涛2<$1华为诺亚huawei.com,qiusz20@mails.tsinghua.edu.cn摘要基于生成模型的图像无损压缩算法在提高压缩比方面取得了很大的成功.然而,即使使用最先进的AI加速芯片,它们中的大多数的吞吐量也在本文中,我们提出了PILC,一个端到端的图像无损压缩框架,实现200MB/s的压缩和解压缩与一个NVIDIA Tesla V100 GPU,10比以前最有效的一个。为了得到这个结果,我们首先开发了一个结合自回归模型和VQ-VAE的AI编解码器,它在轻量级设置中表现良好,然后我们设计了一个低复杂度的熵编码器,1031021011001011021.251.50 1.75 2.00 2.25 2.50 2.75 3.00压缩比与我们的编解码器配合良好。实验表明,在多个数据集上,我们的框架比PNG压缩效果好我们相信这是将AI压缩推向商业用途的重要一步。1. 介绍有损压缩在最近的研究中已经显示出巨大的成功[3,6,22,25在本文中,我们专注于无损压缩。无损压缩算法的基本思想是用较短的码字表示较可能出现的数据,而用较长的码字表示较不频繁的数据,使得码字比期望的原始数据短例如,随机生成的每个像素的图像在现实世界中很少看到,而由相机拍摄的根据Shannon另一方面,如果数据的分布是已知的,*同等贡献。† 通 讯 : 李 振 国 ( li.huawei.com ) 和 夏 树 涛(xiast@sz.tsinghua.edu.cn)。图1. CIFAR10上压缩吞吐量和压缩比的比较。我们的框架实现了高压缩吞吐量具有竞争力的压缩比。Vance,可以应用熵编码器,使得代码长度将非常接近其熵,从而获得最佳压缩比。不幸的是,在大多数情况下,数据分布是未知的.传统的算法利用一些先验信息来推断这种分布。例如,大多数存档格式使用的LZ77 [47]和LZ78 [48]假设具有大量重复段的数据比没有重复段的数据更经常出现。对于图像压缩算法,PNG [4]假设大多数相邻像素彼此相似,并且JPEG类算法应用较低频率分量比较高频率分量更重要的事实。最近,深度生成模型在概率建模和无损压缩方面表现出了巨大的然而,低吞吐量使得它们难以在实际场景中使用。最终用户不希望等待太长时间来压缩/解压缩文件,并且文件服务器每天需要操作大量文件。在许多情况下,需要100+ MB/s的吞吐量例如,以30 fps流式传输1080 p视频需要187 MB/s的decom,压缩吞吐量(MB/s)3740Σ压力然而,由于以下瓶颈,学习算法难以达到该速度:网络推理几乎没有任何AI压缩算法的推理速度超过100 MB/s,因为:• 通常需要一个大型网络来进行良好的密度估计[5]。表1. 一些基于生成模型的算法的局限性,其中列表示:是否支持单个图像解压缩;是否支持不同大小的图像;推理时间、编码器、传输时间是否分别快于100 MB/s。算法单一大小推理代码反式• 需要多个网络推理来decom-按自回归模型[32,41]• 比特回退方案[12]防止算法应用大批量[37]。编码员生成模型只能与动态熵编码器很好地合作,这比传统算法中使用的静态变量慢得多对于大多数AI算法,编码器仅以约1 MB/s的单线程速度解码。数据传输。CPU存储器和GPU内存也可能是AI算法的瓶颈。• 使用自回归或分层AE/VAE模型进行解压缩需要太多的传输• 对于包含大量参数的复杂分布(如10个Logistic分布的混合分布)的模型预测,转移量太大此外,目前的人工智能算法还存在其他问题。一种是单幅图像解压缩。人们期望仅对该图像进行解码,而不是必须同时对许多不相关的图像进行解码,但是对于使用位回退的一些VAE [37]和Flow算法[13],情况并非如此[12]。另一种是不同图像尺寸的压缩。一种只能压缩固定大小的图像的算法很难在实际应用中得到应用,然而,那些在网络中具有全连接层或Transformer层的算法表1简要地显示了当前算法的局限性。1.1. 我们的贡献本文主要研究实用的图像无损压缩。为解决上述问题,我们做出以下贡献:• 我们构建了一个端到端的框架,在一个Tesla V100中压缩/解压缩吞吐量约为200 MB/s,压缩比PNG高30%,这也支持单张图像解压缩和不同大小的图像。• 我们开发了一个非常精简的自回归+矢量量化变分自动编码器(VQ-VAE)[42]模型,其推理速度约为300 MB/s,但对数似然类似于L3 C [23],其推理速度仅约为30 MB/s。• 我们设计了一个AI兼容的半动态熵编码器,它在GPU上是有效的,除了CPU。因此,CPU内存和GPU内存之间只需要一次最小量的数据传输。据我们所知,这是第一个GPU编码器应用在AI压缩算法• 我们用纯Python和PyTorch实现了端到端版本,使未来的工作更容易测试和改进我们的实现。2. 相关工作基于生成模型的无损压缩。虽然人类设计的算法有时非常强大,但深度学习模型通常可以做得更好(见图1)。例如,为了压缩肖像,许多传统的出租车可以利用肤色在任何地方都是相似的这一事实,但很少有人知道人有两只眼睛,一个鼻子等,其通常可以由生成模型捕获将x的真实概率表示为p(x),将x的预测概率表示为q(x),并且将预期码字长度表示为L。然后L(X)=−p(x)log2q(x)=H(X)+KL(P||Q)(1)x∈X因此,对于深度学习算法,压缩比取决于预测的准确程度。基于生成模型的图像无损压缩算法可分为3类。• 自回归(AR)算法根据先前的上下文预测每个符号。其中一些是Pixel-CNN[41],PixelCNN++[32],DistAug [16]等。他们有很大的压缩比与准确的建模。然而,在解压缩期间,由于只有当所有先前的像素都已知时才能预测一个像素,因此网络的一个推理只能解码一个符号,导致解压缩速度非常慢。• 自动编码器(AE)和变分自动编码器(VAE)算法利用潜变量来帮助预测。由于整个图像只能用一个网络推理来预测,因此L3 C [23]等自动编码器al-tax m可以比PixelCNN++[32]快数千倍,但要比PixelCNN++ [33]快得多。[41]第四十一话✗✗✗[16]第十六话✓✗✗✗✗L3C [23]✓✓✗✗✓BB-ANS [37]✗✗✗✗✗[17]第十七话✗✗✗✗✗以色列国防军[14]✓✓✗✗✓LBB [13]✗✓✗✗✗PILC(我们✓✓✓✓✓3741−||||RBG压缩比更差。在VAE算法[37]中引入比特回退[12]方案后,压缩比显著提高。因此,后来的作品,如BB-ANS [37],Bit-Swap [17]和HiLLoC [38]都应用了这个方案。NVAE [39]和VDVAE [5]等算法甚至可以获得与自回归算法相当的然而,位回引入了不同图像之间的依赖性,使得不可能再现单个图像。此外,随机初始位的成本只能通过顺序压缩/解压缩大量图像来利用,这极大地影响了批量大小和传输速度。• 流算法应用可学习的可逆变换,使数据更容易压缩。只有整数变换的IDF [14]和IDF++ [40]被命名为整数流。另一方面,LBB [13]和iFlow [45]等一般流使用实数变换。还有一种类型介于两者之间,称为体积保持流,其在iVPF中被发现[46]。解码流是唯一不需要比特回退的类型,因此是唯一支持单图像解码的类型但由于单层模型的表达能力较弱,需要建立较大的模型,从而影响推理时间。此外,一般的流模型需要一个编码步骤的每一层,使数据传输的另一个瓶颈。熵编码器静态熵编码器对来自固定分布的数据进行编码。它被大多数商业算法所使用。另一方面,动态熵编码器可以对许多分布进行编码。它通常用于编码一种以参数为输入的分布,例如具有可变均值和方差的正态分布。最广泛使用的熵编码器,如霍夫曼编码[15],算术编码器(AC)[24,31]和非对称数字系统(ANS)[10]都有静态和动态变体。动态熵编码器比静态熵编码器慢得多,因为密度质量需要在运行中计算,不像后者,后者可以预先计算所有这些。例如,在单线程设置中,名为FSE [8]的ANS静态变体的解码速度超过300 MB/s,而另一个名为rANS [10]的变体的解码速度仅为1 MB/s,其分布混合了10个逻辑分布。尽管如此,AI算法需要动态编码器来进行细粒度的密度估计,这也是使AI优于传统方法的关键点。3. 方法回归模型和VQ-VAE模型。我们演示了如何与编码器的模型进行交互,以实现高吞吐量。3.1. 模型架构整体模型。在现有的所有算法中,AE算法的吞吐量最高,但压缩比最低正如许多以前的工作所建议的,AE模型不能很好地捕捉局部特征,而局部AR模型可以做到这一点[33,44]。因此,一个直观的想法是使用一个小的AR来捕获局部特征,并使用AE来捕获更多的全局特征。由于AR模型损害并行性并严重影响吞吐量,因此它必须非常小。在这项工作中,三向自回归(TWAR)模型的设计,其中每个像素预测只有3个其他的,保留并行解压缩的能力。对于AE模型,我们将其替换为VQ-VAE [42],这在图像生成中被证明是成功的[9,11,29,42],而推理时间仍然与AE相似。如图2a所示,TWAR预测原始图像和输出图像残差,然后VQ-VAE估计残差的分布。残差中的值的分布比原始图像中的值的分布简单得多,这使得它更容易被VQ-VAE预测和用我们的熵编码器编码Compress:给定一幅图像x,我们使用三向自回归模块对图像进行预测,得到重建图像x∈ R,图像残差r=xx. 然后我们采用VQ-VAE估计残差分布p(rx),我们将其建模为一个简单的逻辑分布。有了r和p(rx),我们就可以用我们提出的动态熵编码器把r我们还使用编码器将矢量索引压缩解压缩:在解压缩时,我们从比特流中提取索引。然后,我们从码本Z中选择相应的向量来公式化潜在特征zq。该特征被馈送到解码器并输出残差分布p(rx)。编码器随后使用p(r x)对残差r进行解码。AR模块然后从残差r解码原始图像X。使用三向自回归学习残差。受传统无损压缩方法PNG [4]中用于变换图像以使其更有效地可压缩的Paeth滤波器的启发,我们采用了类似的规则,即利用三个预测点来预测当前点,如图2b所示。我们的AR模块由以下公式表示:xruv=WT· ( xr ( u−1 ) ( v−1 ) , xr ( u−1 ) v , xru(v−1))+br(2)在本节中,我们介绍PILC,一个实用的图像无损压缩框架。所提出的框架包括一个生成模型和一个半动态引擎,x射线衍射紫外线=WT·(x gu(v −1),xru(v−1),xruv)+bg(三)熵编码器 该模型由三路自动xbuv=WT·(xbu(v−1),xgu(v−1),xguv)+bb(4)3742∈|i=1∈|联系我们RGB(a) 我们提出的无损算法的总体框架(b)三向自回归图2.左:我们的框架由三向自回归,VQ-VAE和编码器组成。AR模块预测输入图像并获得残差。VQ-VAE利用码本对残差的概率分布进行建模。编码器将图像残差和矢量索引压缩成比特流。 当解码时,首先解压缩向量索引并将其推入VQ-VAE解码器以获得剩余分布。随后采用该分布来解压缩残差,然后恢复原始图像(蓝色实线箭头指示压缩过程,红色虚线箭头指示解压缩,以彩色观看最佳)。右:三向自回归采用三个预测点来预测当前点。其中r、g、b表示图像通道,u、v表示空间位置。我们用顶部的一行和左侧的一列填充输入图像以启动预测。对于红色通道,当前点由其上、左、左上角点预测,如Paeth滤波器。受YCoCg-R颜色空间的启发,该颜色空间在FLIF [35]格式中显示出成功,并利用不同的通道来计算颜色空间,对于绿色和蓝色通道,我们还使用其先前的通道来进行预测。与[19]不同的是,我们的AR模块按通道对图片进行建模,仅预测均值,并且只有12个参数(每个通道都有偏差),但它仍然可以生成高质量的预测。 如图所示。2a,x与x非常接近,这表明了自然图像的局部性。正如在第二节中所解释的。1,自回归模型如Pix-elCNN [41]由于其依赖性性质而在解压缩速度方面失败,因为难以并行化推理过程。幸运的是,我们的AR模块可以在推理过程中并行化。图3建议解码中的一个步骤。对于红色通道,当前点取决于其上、左、左上角点,因此可以并行计算反对角线点。一旦红色通道被恢复,对于绿色通道,我们可以逐列计算以重新覆盖这个通道,蓝色通道也是一样。因此,可以一次计算更多的点,这加快了AR模块的推理过程。因为填充规则是固定的,我们最终可以使用残差r无损地恢复原始图像x。使用VQ-VAE进行学习分布。矢量量化已被证明是有效的有损压缩[1,20]。我们没有设计更复杂的自动编码器(AE)模型,而是利用VQ-VAE [42]来学习残差分布。直观地,给定固定的存储空间,对于VQ-VAE,我们可以仅存储向量索引,并且当解码时,利用码本,我们可以利用更多的分集特征。但是对于vanilla AE,我们只有固定大小的特征。实验在SEC。4.2表明VQ-VAE优于vanilla AE。由于原始图像将包含更多的空间信息,我们选择对给定原始图像的残差分布建模,即,p(r x)。如图2a所示,给定图像x,RH×W×3,我们通过以下方式获得其潜在特征z≠E(x)∈Rh×w×D(5)其中,E是基于残差块的编码器,D是特征深度维度。然后,利用码本Z=ziKRD,我们可以对z i进行矢量量化:zq=q(z):=.argmin∈Rh×w×D(六)其中,q是每个zuv的逐元素量化RD到其最近的代码zi,并且u,v是空间位置。最后,我们输出残差分布p(r x),我们将其建模为logistic分布,并由下式表示:(μ,s)=D(zq)∈RH×W×3×2(7)三通的ve自回归-译码器^R比特流5434 296923 18612 414552 66压缩解压缩编码器解码器( |)NLLVQ矢量量化������������������ziGZ���−���i译码器…0123 K-2 K-1代码本向量索引比特流VQ-VAE五四三四二九六z∈Zi3743|ΣΣ←≥∗← ⌊÷ ⌋∈←−←×←−图3.所提出的AR模型的红色通道(左)和绿色/蓝色通道(右)的解码过程。对于红色通道,可以并行解压缩反对角线像素,而对于G和B,可以并行解码一列像素其中μ是位置参数,s是尺度参数,并且D是基于残差块的解码器。在压缩时,编码器将量化的矢量索引同时,我们可以解码索引,选择相应的向量,并解对分布p(r x)进行编码。通过这种方式,我们利用码本Z来记忆更多的信息。由于没有为方程定义真实梯度,(6),梯度反向传播通过直通估计器实现,其仅将梯度从解码器复制到编码器。VQ损失由下式表示:这个想法。然而,tANS只能编码一个固定的分布,这是不合适的人工智能算法。另一方面,我们提出的编码器更类似于动态的,因为它支持可变参数的分布。唯一的区别是参数需要量化,并且需要计算所有参数的概率质量。因此,我们称之为半动态熵编码器。为了使用rANS编码,首先需要选择常数M,然后对于每个符号x,计算其概率质量函数(表示为Px),使得xPx=2M。 设Cx是x的累积分布函数。它满足了Cx=i xPx。要对范围[0,255]内的像素进行编码,M通常在[10,15]中选择。在这项工作中,我们稍微修改了rANS,并提出了Al-出租m1和算法2作为背后的逻辑。算法1修改的rANS:编码x输入:M,Px,Cx,状态S,流1:SS+2M第二章: 而SPx2do第三章:push stream(Smod 2)将S的最后一位推送到流第四章:SS2第五章: end while6:S←S−Px+Cx2 2LVQ=sg[z]−zq+β<$z<$−sg[zq]<$(八)算法2修改的rANS:解码一个符号其中sg表示停止梯度算子。第一项优化了码本Z,第二项是提交损失,以确保z向码本提交并且不会任意增长[42]。β是平衡两项的权重参数损失函数。在训练过程中,我们可以通过最大化残差r的负对数似然来联合优化AR模块和VQ-VAE模块:LNLL= Exp(x)[−log p(r|(九)其中p(x)表示训练数据集的分布。负对数似然越低,我们需要压缩残差r的比特就越少。参见第3.3更多实施细节。因此,优化我们的神经压缩模型的总目标函数可以用公式表示:Ltotal=LNLL+αLV Q(10)其中α平衡两项。我们的轻量级模型与三向自回归和VQ-VAE实现了很高的推理速度,这在我们的整体框架中起着重要的作用。3.2. 编码器设计我们基于rANS [10]设计熵编码器,并通过预先计算中间结果来节省计算时间。以前的作品,如tANS [10]已经采用输入:M,Px,Cx,所有x,状态S,流1:x←二分查找(S):Cx≤S Cx+Px2:S S Cx+Px3:而S2M做<4:S S 2+pop stream()表示流的最后一位第五章: end while6:S S 2M7:返回x循环和二进制搜索形成了这些算法的耗时步骤,因此构建表来缓存这些结果。对于编码,一种解决方案是创建一个表来存储要为S和Px的每个可能值推送的位数。每个值都可以表示为一个16位无符号整数,因此所需的内存为22M+1字节。在这项工作中,我们假设不同分布的数量符号很小。将分布的总数表示为D,并且可以通过网络计算每个符号的分布指数d [0,D),并且令X为颜色的数量。 由于在步骤1之后S总是在[2M,2M+1)中,因此对于固定的d,循环的数量可以仅不同1. 所以我们建立一个维度为D×X的表δ,S2<$(δ[d,x]+S)/2M<$∈[Px,Px<$2)(11)3744为了进一步简化算法,本文将第6步与下一个符号的第1步合并,并建立了表3745−××× ×⌊⌋×←←∼-∼−× × ×× × ××证明了[d,x]=2MPx+Cx。S需要在[2M,2M+1)中初始化。编码过程现在在算法3中示出。 δ和Σ都使用无符号的16位整数,因此表所需的内存为4DX字节。由于所有Px和C x所需的总内存4D X字节,不再需要,算法3不需要任何额外的内存。算法3ANS-AI:编码x输入:M、δ、δ、x、d、状态S、流1:b=(δ[d,x]+S)/2M2:推送流(S,b)将S的最后b个比特推送到流2.52.01.51.00.50.0S=32s=64s=1280 50 100 150 200 2503:S←S/2b<$+ <$[d,x]在解码方面,对于每个分布索引d和状态S,我们维护用于存储要被解码的符号的表0、用于要弹出的比特数的表B以及用于合并步骤2至6的表N。由于Θ和B使用8位无符号整数,而N使用16位无符号整数,因此这些表消耗的总存储量为D2M+2字节。一种替代方案是用N和δ代替N和B,将存储器减少到D2M+4D X,但这将使计算更加复杂,并且从我们的实验来看,将解码速度降低约50%。算法4ANS-AI:解码一个符号输入: M,Θ,B,N,d,状态S,流1:xΘ[d,S]2:S N[d,S] +弹出流(B[d,S])比特3:返回x我们提出的编码器不仅简化了计算,而且还可以通过 删 除 所 有 逻 辑 单 元 来 实 现 机 器 学 习 框 架 , 如PyTorch。3.3. 模型与编码器为了保证编码器的有效性,分布的总数D需要很小。在我们的模型中,r的每个像素都是用位置参数μ和尺度参数s的截断逻辑分布预测的,截断范围在0到255之间。 将分布表示为RL(µ,s,0,255)。由于平均数需要被量化为至少256个值,因此D将超过一千。在这项工作中,我们在uint8空间内预测r μ +128,即 , r 的 预 测L ( μ , s , 0 , 255 ) 近 似 为 ( rµ+128)mod 256L(128,s,0,255)。 为了使其尽可能准确,µ需要尽可能接近128我们为此应用以下两种技术1. 在VQ-VAE模型中,直接地,我们预测(r+128)mod 256。2. 我们添加一个sigmoid层来预测µ在VQ-VAE模块中,以确保它接近128。图4.实际截尾Logistic分布与近似分布之间的KL散度,表明近似的BPD损失。该图显示当μ∈[96,160]时,近似分布非常接近真实分布。图4和图6表明,这种技术几乎没有处理BPD损失。4. 实验在本节中,我们通过大量的实验来评估模型和编码器的有效性,我们对低分辨率和高分辨率图像进行了实验,结果表明我们的框架以具有竞争力的压缩比获得了最快的压缩速度。4.1. 实验设置实施详情。 AR和VQ-VAE模块被联合训练。AR模块包含12个参数。在VQ-VAE中,码本大小K被设置为256,码本维度D被设置为32。编码器和解码器都具有4个残余块,全部具有32个通道。编码器下采样比为2,并且当在解码器中进行上采样时使用像素混洗因此,具有形状32 32 3的图像x将被量化为16 16 1矢量。β在方程中25.如在[42]中那样,将(8)设为0.25,并且在等式(10)中α为0。(10)设置为125。我们在一个Linux Docker中进行所有实验,该LinuxDocker采用英特尔(R)至强(R)Gold 6151 CPU(3.0 GHz,72个线程)和一个NVIDIA Tesla V100 32GB。对于速度测试,我们忽略磁盘I/O的时间,因为它与压缩算法无关。但为了公平地比较人工智能和传统方法,我们确实计算了CPU内存和GPU内存之间的数据传输时间。这意味着对于所有AI算法,计时器在数据加载到RAM时开始,在压缩数据存储到RAM时结束。与以往人工智能压缩主要集中在密度估计上不同因此,对于本文中报告的BPD值,对恢复原始图像所需的所有存储进行计数,包括Meta数据、霍夫曼表、辅助位等。对于人工智能算法,报告的是真实的BPD,而不是理论。KL散度3746(MB/秒)× ×× ×× ×表2.模型结构的烧蚀研究。报告了CIFAR 10上的理论BPD模型BPDVanilla自动编码器(AE)5.53VQ-VAE5.13三向自回归(AR)4.92AR + AE4.35AR + VQ-VAE4.17表3. AR模型感受野的消融研究及其并联机制。报告了CIFAR10(红色通道)上的理论BPD和双稳态感受场是指当前点是由先前点的多少来预测的。感受野BPD植入3(并行)5.7714382.535.771448.545.773747.555.770846.065.770144.875.744944.0120010008006004004.2. 模型有效性模型架构的有效性 我们分析了每个组件的单个和组合,以评估模型架构的有效性。在选项卡中。2,vanilla自动编码器(AE)包含与VQ-VAE相同的编码器和解码器架构,具有潜在特征形状16 16 1。在AE和VQ-VAE中,我们直接使用模型来预测原始图像的分布。在单个AR中,我们使用静态熵编码器压缩残差以获得BPD。AR+AE遵循与AR+VQ- VAE相同的过程。如Tab.所示2,VQ-VAE优于AE,证明了学习码本Z的有效性。我们可以直观地解释16 16 1矢量指数比16 161数在声发射潜伏期中包含更多的多样性特征。我们提出的AR+VQ-VAE模型在CIFAR 10上实现了最佳的理论BPD,这表明预测残差的有效性。三向AR和并行机制的有效性。我们比较了AR模型和并行机制的不同感受野。在CIFAR10图像的红色通道上进行了实验。AR模型的感受野是指当前点是由之前的多少个点预测出来的。在我们的模型中,感受野是3。如Tab.所示3、随着感受野的增大,BPD确实有所下降,但下降幅度非常有限。利用我们在第二节中设计的并联机构,3.1,三路AR实现了382.5 MB/s的吞吐量时,恢复原始图像从残留在解压缩,并优于其他设置,无法恢复。4.3. 编码器有效性20002142 162 182 202 22线程我们实现了基于算法3和算法4的GPU编码器。我们测试编码器上随机生成的数据(1000000件,每个长度为1000,范围0- 255)。信号具有与每个值相同的维度图5. GPU编码器的编码/解码速度。当线程数量(批量大小)较小时,GPU编码器的吞吐量较低,但它可以从大量线程中受益ical一除非另有说明,这意味着对于每个图像,我们计算每个图像所需的字节数(而不是位),然后取平均值。数据集。对于低分辨率实验,我们在CIFAR 10,ImageNet 32/64上进行训练和评估。对于高分辨率实验,我们在来自Open Image Train Dataset [18]的50000张图像上训练我们的模型,这些图像是随机选择的,并按照[23]进行预处理,以防止JPEG伪影的过拟合。然后 ,我 们在 自然 高分 辨率 数据 集 CLIC.mobile ,CLIC.pro [7]和DIV2K [2]上进行评估,以测试模型的泛化能力。对于高分辨率设置,我们裁剪32 ×32块用于评估。在0-7。对于每个设置,我们运行10次并取平均速度。从图5中,我们看到GPU编码器对于少量线程来说是缓慢的。幸运的是,使用V100 32G,线程数可以轻松达到100万。因此,我们可以对百万批次进行推理,并将结果保存在GPU中。然后我们可以一次编码所有批次。这对于GPU编码器是有益的,因为对于压缩和解压缩两者,数据传输时间和量都较小。4.4. 配置效果我们计算第12节中规定的偏差的预测位置参数μ三点三它可以在图中显示对于所有三个数据集,预测值几乎总是落在[96,160]中。如第二节所述。3.3,这几乎没有造成BPD的损失。GPU编码GPU解码吞吐量(MB/s)3747表4. BPD中的压缩性能以及压缩和解压缩中的吞吐量,与工程编解码器PNG [4],WebP [43],FLIF [35],JPEG 2000 [36]和学习的L3C [23]相比。BPDCIFAR10ImageNet32ImageNet64DIV2KCLIC.proCLIC.mobile吞吐量(MB/s)压缩解压缩PNG [4](最快)6.446.786.094.644.234.3955.9118.2[4]第四季第14集5.916.415.774.233.903.803.083.5WebP [43](-z 0)4.775.444.923.433.223.0329.899.1[35]第4.275.064.703.243.032.826.24.2JPEG2000标准[36]6.757.506.084.113.793.947.69.1L3C [23]4.555.194.573.132.962.6512.36.3PILC(我们的)4.235.104.763.413.233.00180.3217.20.200.150.100.050.00CIFAR10ImageNet32ImageNet640 50 100 150 200 250预测表5. 将整个压缩/解压过程的时间分解吞吐量是相对于原始数据的大小计算的。时间以µs/图像计。图6.多个数据集上预测的µ的概率质量。它们大致遵循位置参数为128的双指数分布。4.5. 压缩性能与现有方法比较 我们在Tab中重现了所有方法。4在同一平台上解释SEC。4.1公平比较我们使用PythonCV2库来处理PNG和JPEG 2000。我们采用FLIF版本1.0.1,并使用命令对于WebP,我们使用版本1.2.1和命令对于L3C,我们使用官方模型[21]重现结果,并将L3C中的原始编码器替换为我们的编码器以测试速度,因为原始编码器非常慢。吞吐量结果基于高分辨率设置报告。表4显示我们的框架实现了最快的压缩和吞吐量。此外,该框架在低分辨率图像上实现了具有竞争力的压缩比,并且在高分辨率图像上仍然优于PNG,WebP和JPEG2000端到端吞吐量。为了充分利用GPU编码器并使测量的速度更准确,我们将CIFAR10验证集复制100次(100万张图像)。表5显示了每个步骤的吞吐量和所需时间的详细信息。4.6. 局限性分析我们的框架虽然非常轻量级,但需要像Tesla V100这样的AI芯片才能有效地工作,这对于大多数最终用户来说是无法访问的。例如,一个2K分辨率的图像在我们的服务器计算机的CPU中仅压缩约1.3 MB/s。因此,我们的框架仅适用于文件/云服务器。5. 结论在这项工作中,我们开发了第一个有效的端到端的生成模型为基础的图像无损压缩框架-工作的吞吐量约为200 MB/s,压缩比30%优于PNG。为了达到这个效果,我们设计了一个结合AR模型和VQ-VAE的模型,以及一个计算效率高的半动态编码器。为了进一步改进PILC,未来的工作可能会集中在日常设备(如PC或手机)中更友好的这需要一个比当前VQ-VAE网络具有更少FLOPS的网络。概率相位延迟时间(MB/秒)(µs)RAM→ GPU 92460.33模型推断27611.11压缩编码器编码6754.55GPU→ RAM 29851.03总计18017.02RAM→ GPU 111010.28编码器解码器110910.28VQ-VAE解码7214.26解压缩代码解码6724.57AR解码8693.53GPU→ RAM 25211.20共计21714.123748引用[1] EirikurAgustsson,FabianMentzer,MichaelTschannen , Lukas Cavigelli , Radu Pastefte , LucaBenini,and Luc Van Gool.用于端到端学习可压缩表示的软到硬矢量量化。在NIPS,第1141- 1151页4[2] Eirikur Agustsson和Radu Timofte。Ntire 2017单图像超分辨率挑战:数据集和研究。在IEEE计算机视觉和模式识别研讨会会议上,第126-135页7[3] 约柴·布劳和托莫·麦克利。重新思考有损压缩:率失真感 知 权 衡 。 在 ICML 中 , Proceedings of MachineLearning Research的第97卷,第675-685页。PMLR,2019年。1[4] 托马斯·布泰尔。PNG(便携式网络图形)规范版本1.0。RFC,2083:1-102,1997。一、三、八[5] 再生孩子。非常深的vae推广自回归模型,可以在图像上胜过它们。在ICLR。OpenRe-view.net,2021年。二、三[6] Yoojin Choi,Mostafa El-Khamy,and Jungwon Lee.使用条件自动编码器的可变速率深度图像压缩见ICCV,第3146-3154页。IEEE,2019。1[7] 学习图像压缩的工作坊和挑战https://www.compression.cc/challenge/网站。7[8] 扬 · 科 莱 有 限 态 熵 https : //github.com/Cyan4973/CyberStateEntropy. 3[9] Ming Ding , Zhuoyi Yang , Wenyi Hong , WendiZheng,Chang Zhou,Da Yin,Junyang Lin,Xu Zou,Zhou Shao,Hongxia Yang,and Jie Tang. Cogview:通过 转 换 器 掌 握 文 本 到 图 像 的 生 成 。 CoRR ,abs/2105.13290,2021。3[10] 杰瑞克·杜达不对称数字系统。CoRR,abs/0902.0271,2009年。三、五[11] Patr i ckEsse r,RobinRombach,andB joürnOmme r. 用于高分辨率图像合成的驯服变压器。在CVPR中,第12873-12883页。计算机视觉基金会/ IEEE,2021。3[12] 作者:Brendan J. Frey,Geoffrey E.辛顿有效随机信源编码及其在贝叶斯网络信源模型中的应用。Comput.J. ,40(2/3):157-165,1997. 二、三[13] Jonathan Ho,Evan Lohn,and Pieter Abbeel.通过局部位回编码的流压缩。在NeurIPS,第3874-3883页,2019年。二、三[14] 作者:Jorn W.T. 作者声明:by J.离散流和无损耗压缩。在NeurIPS,第12134-12144页,2019年。二、三[15] David A. 霍 夫 曼 一 种 构 造 最 小 冗 余 码 的 方 法 。Proceedings of the IRE,40(9):1098-1101,1952. 3[16] Heewoo Jun , Rewon Child , Mark Chen , JohnSchulman , Aditya Ramesh , Alec Radford , and IlyaSutskever.用于生成式建模的分布式增强。在ICML中,Proceedings of Machine Learning Research的第119卷,第5006-5019页。PMLR,2020年。2[17] 弗 里 索 ·HKingma , Pieter Abbeel , Jonathan Ho.Bit-swap:递归位回编码,用于无损压缩,隐变量。在ICML中,机器学习研究进展的第97卷,第3408PMLR,2019年。二、三[18] Alina Kuznetsova 、 Hassan Rom、 Neil Alldrin 、 JasperUijlings 、 Ivan Krasin 、 Jordi Pont-Tuset 、 ShahabKamali 、 Stefan Popov 、 Matteo Malloci 、 AlexanderKolesnikov、Tom Duerig和Vittorio Ferrari。开放图像数据集v4:统一的图像分类,对象检测和视觉关系检测。IJCV,2020年。7[19] Mu Li , Kode Ma , Jane You , David Zhang , andWangmeng Zuo.用于图像压缩的高效和有效的基于上下文的卷积IEEE传输图像处理。,29:5900-5911,2020.4[20] 慕丽、左望梦、古书航、尤简、张大卫。学习内容加权深度图像压缩。IEEE Trans.模式分析马赫内特尔,43(10):34464[21] 法比安·门策L3C-PyTorch。https://github.com/fab-jul/L3C-PyTorch. 8[22] FabianMentzer,EirikurAgustsson,MichaelTschannen,Radu Timofte,and Luc Van Gool.深度图像压缩的条件概率模型。在CVPR中,第4394计算机视觉基金会/ IEEE计算机协会,2018年。1[23] FabianMentzer,EirikurAgustsson,MichaelTschannen,Radu Timofte,and Luc Van Gool.实用的全分辨率学习无损图像压缩。在CVPR中,第10629计算机视觉基金会/ IEEE,2019年。二七八[24] Richard C.帕斯科快速数据压缩的源编码算法(博士学位)论文摘要)。IEEE Trans.Inf.Theory,23(4):548,1977. 3[25] Yash Patel、Srikar Appalaraju和R.曼玛塔深度知觉压缩。CoRR,abs/1907.08310,2019。1[26] Yash Patel、Srikar Appalaraju和R. 曼玛塔 图像压缩的人类感知评价。CoRR,abs/1908.04187,2019。1[27] Yash Patel、Srikar Appalaraju和R.曼玛塔分层自回归模型用于图像压缩,包
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- RTL8188FU-Linux-v5.7.4.2-36687.20200602.tar(20765).gz
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功