图鸭发布图片压缩TNG ,将节省55%带宽

在社交网络上,用户天天都要使用、分享和下载图片,可是不少高清图片因为存储和带宽的压力被人为下降了画质。web

伴随着2K手机和4K显示屏逐渐成熟并走向市场,用户对高清画质的要求也在逐渐增长。可是高清显示一直缺少内容,成为行业发展的痛点。因此将低分辨图片转化为高清版本,并在各大设备上进行查看和分享,已成为市场的巨大需求。算法

今天,图鸭发布黑科技——Tiny Network Graphics(TNG),将解决这一痛点。网络

何为TNG?

TNG是图鸭科技在2018年推出的一款图像压缩技术,旨在在保持图片的质量下,尽量下降图片的大小,使用户在带宽受限的网络状况下,仍然能够看到高清的图像;同时帮助图片类企业节约大量的带宽成本。框架

相比目前市面上的图像压缩技术,图鸭TNG采用了深度学习卷积网络(CNN)的编码方式,与JPEG相比,压缩率提高了122%;与WebP相比,压缩率提升了30% 。并且相比BPG/HEIF等图片格式,TNG采用了CNN技术而非HEVC编解码器,在保证图片质量的同时,避免了高昂的专利费用。函数

TNG采用了何种方式

TNG采用的算法是深度学习技术中的卷积神经网络(CNN)。卷积神经网络是一种前馈神经网络,它的人工神经元能够响应一部分覆盖范围内的周围,适合大型图像处理。学习

图片描述

上图是卷积神经网络的示意图,咱们看图能够发现,它就像搭积木同样,一个卷积神经网络由卷积、池化、非线性函数、归一化层等模块组成。最终的输出根据应用而定,如在人脸识别领域,咱们能够用它来提取一串特征来表示一幅人脸图片。而后经过比较特征的异同进行人脸识别。测试

如图2所示,完整的深度学习图片压缩框架包括CNN编码器、量化、反量化、CNN解码器、熵编码、码字估计和码率-失真优化等几个模块。编码器的做用是将图片转换为压缩特征,解码器就是从压缩特征恢复出原始图片。其中编码网络和解码器,能够用卷积、池化、非线性等模块进行设计和搭建。优化

图片描述
(图2:用深度学习进行图片压缩示意图)编码

如何评判压缩算法?

目前评判一个压缩算法的重要指标有三个:PSNR(Peak Signal to Noise Ratio)、BPP(bit per pixel)和MS-SSIM(multi-scaleSSIM index)spa

咱们知道,任何数据在计算机内都是以比特形式存储,所需比特数越多则占据的存储空间越大。PSNR用来评估解码后图像恢复质量,BPP用于表示图像中每一个像素所占据的比特数MS-SSIM值用来衡量图片的主观质量,简单来讲在同等的Rate/BPP下PSNR更高,压缩效果更好,MSSIM更高,主观感觉更好

如何用深度学习作压缩?

 谈到如何用深度学习作压缩,咱们以图片来举例。将一张大小 768 512 的三通道图片送入编码网络,进行前向处理后,会获得占据 96 64 * 192 个数据单元的压缩特征。有计算机基础的读者可能会想到,这个数据单元中可放一个浮点数,整形数,或者是二进制数。那到底应该放入什么类型的数据呢?

从图像恢复角度和神经网络原理来说,若是压缩特征数据都是浮点数,恢复图像质量是最高的。但一个浮点数占据32个比特位,图片的计算公式为( 96 64 192 32)/(768512)=96,压缩后反而每一个像素占据比特从24变到96!图片大小非但没有压缩,反而增长了,这是一个糟糕的结果,很显然浮点数不是好的选择。
 
因此为了设计靠谱的算法,可使用一种称为量化的技术,它的目的是将浮点数转换为整数或二进制数,最简单的操做是去掉浮点数后面的小数,浮点数变成整数后只占据8比特,则表示每一个像素要占据24个比特位。与之对应,在解码端,可使用反量化技术将变换后的特征数据恢复成浮点数,如给整数加上一个随机小数,这样能够必定程度上下降量化对神经网络精度的影响,从而提升恢复图像的质量。

即便压缩特征中每一个数据占据1个比特位,但是压缩仍是有可进步的空间。那如何进一步优化算法?再看下BPP的计算公式。

假设每一个压缩特征数据单元占据1个比特,则公式可写成:(96641921)/(768512)=3,计算结果是3 bit/pixel,从压缩的目的来看,BPP越小越好。在这个公式中,分母由图像决定,咱们进行调整的只有分子:9六、6四、192,这三个数字与网络结构相关。因此,若是咱们设计出更优的网络结构,这三个数字也会变小。

那1与哪些模块相关?1表示每一个压缩特征数据单元平均占据1个比特位,量化会影响这个数字,但它不是惟一的影响因素,它还与码率控制和熵编码有关。码率控制的目的是在保证图像恢复质量的前提下,让压缩特征数据单元中的数据分布尽量集中、出现数值范围尽量小,这样咱们就能够经过熵编码技术来进一步下降1这个数值,图像压缩率会进一步提高。

用深度学习作视频压缩,能够看做是在深度学习图片压缩基础上的扩展,可结合视频序列帧间的光流等时空信息,在单张压缩的基础上,进一步下降码率。

深度学习图片压缩的优点

图鸭科技经过深度学习技术研发的图片压缩TNG在内部的测试上已经超过webp与BPG,下图是在kodak24标准数据集上测评结果,分别是PSNR值与MS-SSIM值。
图片描述

图片描述
图 3 图4在kodak24标准数据集上测评结果,上图为PSNR结果,下图为MS-SSIM的结果

熟悉图像压缩的朋友能够直接经过PSNR和MS-SSIM值看出:TNG的PSNR值与MS-SSIM值明显高于WebP、jpeg2000和jpeg;且TNG在高码字的状况下PSNR值高于BPG,且其MS-SSIM值基本一致高于BPG

在低码字状况下TNG与WebP压缩效果对比

图片描述

图片描述
图5图6 低码字状况下TNG与WebP压缩效果对比。上图TNG,下图Webp

相比TNG,WebP尽管保留了更多的细节,可是其失真更多,不利于后期恢复。而TNG采用了保边滤波的方法,让其失真更少,总体图像效果优于WebP。

在高码字状况下TNG与BPG对比

图片描述

图片描述
图7图8 高码字状况下TNG与BPG压缩效果对比,上图TNG下图BPG

上面两幅图是高码字的状况,在实际的测试中,BPG会出现上图所示的颜色失真状况;而反观TNG其基本不会出现这类的失真情况。

这是由于BPG在编码压缩时尽管图片时,其YUV通道是分开进行编解码,产生了一些色差。
而TNG在编码时考虑到了总体图片的状况,采用了同一编码,也就避免了上述的状况。

在低码字的状况下TNG与BPG的对比

图片描述

图片描述
图9图10低码字状况下TNG与BPG压缩效果对比,上图TNG下图BPG

在低码字的状况下,BPG压缩图片中出现了伪轮廓和块效应等问题,整个图片的连续性比较差;而TNG的图片连续性和物体的轮廓保持的更好。

总结

 
整体而言,借助于深度学习设计图像压缩算法是一项很是具备前景但也很是具备挑战性的技术。目前,其已经在人脸识别等领域证实了它的强大能力,将来图像压缩领域的深度学习技术介入可使你们在全面高清屏的时代有更优质的视觉体验同时在游戏、空间图像传感等领域,深度学习图像压缩算法的应用也将带来更高分辨率,更小存储空间,更少带宽成本

这里附上TNG的测试连接,你们能够自行进行测试:http://www.tucodec.com/pictur...