互联网时代,社交媒体分享、自动驾驶、加强显示、卫星通讯、高清电视或视频监控等应用场景对图片和视频有很强的需求,压缩算法也所以备受关注,可是不一样的应用场景对压缩算法的性能要求也不同,有的需求是保持高清的画质是第一位,有的需求是体积小是第一位,能够损害一些画质。算法
那么如何用深度学习技术来设计压缩算法呢?这篇文章将简单的来和你们说一说。网络
深度学习图片压缩框架和基本概念介绍架构
如图1 所示,一个典型的自编码图片压缩框架包括编码器、量化、反量化、解码器、码字估计、熵编码和率-失真优化等几个模块。框架
以图1的例子来解释自编码图像压缩网络中各个模块的做用:假定输入图片大小为,经过编码器和量化处理后获得的编码特征的维度为,假定熵编码后平均每一个编码特征单元所占据的比特数为R,则编码码率的计算公式为:函数
(1)性能
对公式(1)进行分析,其中与输入图片有关,由网络结构来决定,而R是由量化、编码特征分布和熵编码决定。学习
压缩特征通过反熵编码、反量化和解码器后就能获得解码图片。在解码图片质量不变的条件下,若是R越低则表示压缩效率越高。优化
编码和解码结构是自编码网络的基础,目的是对非线性变换进行学习。编码
量化的做用是将浮点数转换为整数或二进制,反量化做用与之相反。spa
量化是下降码字的重要途径,但也是致使信息损失的首要缘由。理论上讲量化越精细信息损失越小,但可能致使码字增长和增长训练的难度,所以设计高效的量化算法很是重要。
为了达到提高压缩效率的目的,须要用码字估计模块在训练中对R进行约束。
码字估计首先要利用先验几率模型对编码特征分布进行准确估计,保证估计的编码特征分布与实际分布尽量接近,而后经过计算熵对熵编码后码字进行估算。
通常能够用带参数几率模型对先验进行建模,如用高斯混合模型对数据分布进行拟合:
(2)
以特征分布估计为基础,熵编码模块首先计算特征的上下文几率,并对编码特征进行进一步的压缩,这样可进一步下降R值。码字估计是估算通过算术编码后,消耗比特数是多少在算术编码高效执行前提下,码字大小的下限,可表示为熵:
(3)
码字估计主要用于训练,在实际使用中先验模型可用于自适应的算术编码,生成码流。
从信息论的角度来讲,当编码特征越集中时熵会进一步下降,从而熵编码后码字会下降,但网络的表示能力会受影响,并会下降重建图像的质量而致使失真。
因此在熵编码码字与图像重建质量之间须要作权衡,这种权衡称率-失真优化。率对应编码码率,失真对应重建质量。
通常经过率-失真优化构建的损失函数对自编码压缩网络进行训练。
实现压缩算法的要素
咱们如今的思路:从优化自编码网络结构、设计新的量化方式、设计新的压缩特征先验建模方法和率-失真优化等几个方面进行研发,提高如今图像压缩算法的性能,特别是低码率下的压缩性能。
技术难点与壁垒:在于如何以变分自编码网络为基础,解决如何优化自编码网络结构、如何对量化和先验建模进行联合优化的问题,提升图像压缩的性能和下降复杂度,提高实用性是难点。
一些经验分享:准确先验几率估计利于自适应算术编码,准确先验几率估计利于训练中对码字分布进行约束,在实践中用带参数的几率模型,如高斯混合模型等对先验进行建模。
准确估计先验的基础上,会存在一个权衡:编码特征越集中熵越小,但网络的表示能力受影响,下降重建质量。要作好两个问题:
1)准确先验估计;
2)码率和重建质量权衡。
为何选择深度学习
现阶段压缩算法在诸如社交媒体分享、加强现实、自动驾驶、医学影像、高清电视等应用场景下均有很强的需求。
现有的算法如要根据不一样的应用需求对现有压缩算法进行优化并不容易,而且如今图像和视频压缩算法性能的提高已遇到瓶颈。
从图片压缩角度来说,基于深度学习的技术最大的优势是能够根据不一样的应用进行针对性的设计和训练,可针对性的对主观或客观指标进行训练。
从视频压缩角度来说,深度学习压缩采用与H.26四、H.265和H.266不一样的架构,使用卷积神经网络为主题进行设计,可更灵活地将现阶段机器视觉领域中的光流估计等算法应用帧间关系建模中,设计高效视频压缩算法。
此外,咱们会结合超分辨等技术,对传统算法进行进一步优化,下降通讯带宽。
自编码的压缩算法,现阶段最大的优点能针对特定的指标进行优化,可对重建图的主观效果有显著提高。
GAN(对抗生成)网络对主观性能、视觉效果提高有好处,但客观质量并很差,通常用GAN网络设计的算法,会生成些与原始数据不一致的细节。现阶段咱们将客观质量(PSNR)的提高放在首位,同时主观质量也取得不错的效果。
将来咱们会根据不一样应用需求,考虑是否采用GAN网络。虽然咱们现阶段的重点在客观性能的提高上,实验中也发现客观质量越好,与原始图片差别越小,主观质量也会有相应的提高,同时发现结合MSE和MS-SSIM能获取很是好的MS-SSIM性能。
如图2所示,使用MS-SSIM为损失函数训练出的模型(TNG subjective),获得的MS-SSIM指标明显优于使用MSE做为损失函数训练的模型(TNG objective)。
TNG subjective 在相同的主观MS-SSIM指标下,所消耗的码字是BPG的一半,流量节省了50%;相比JPEG,TNG仅消耗原来流量的25%-30%。
总结