学习
实践
活动
工具
TVP
写文章
专栏首页AI科技评论干货 | 用深度学习设计图像视频压缩算法:更简洁、更强大

干货 | 用深度学习设计图像视频压缩算法:更简洁、更强大

说到图像压缩算法,最典型的就是 JPEG、JPEG2000 等。

图 1:典型图像压缩算法 JPEG、JPEG2000

其中 JPEG 采用的是以离散余弦转换(Discrete Cosine Transform)为主的区块编码方式(如图 2)。JPEG2000 则改用以小波转换(Wavelet Transform)为主的多解析编码方式,小波转换的主要目的是将图像的频率成分抽取出来。

图 2:JPEG 编码框图

在有损压缩下,JPEG2000 的明显优势在于其避免了 JPEG 压缩中的马赛克失真效果。JPEG2000 的失真主要是模糊失真,而模糊失真的主要原因在于高频量在编码过程中一定程度的衰减。在低压缩比情形下(比如压缩比小于 10:1),传统的 JPEG 图像质量有可能比 JPEG2000 好。JPEG2000 在高压缩比的情形下,优势才开始明显。

整体来说,JPEG2000 相比于传统 JPEG,仍有很大技术优势,通常压缩性能可提高 20% 以上。当压缩比达到 100:1 时,JPEG 压缩的图像已经严重失真并开始难以识别了,而 JPEG2000 的图像仍可识别。

深度学习技术设计压缩算法的目的

通过深度学习技术设计压缩算法的目的之一是学习一个比离散余弦变换或小波变换更优的变换,同时借助于深度学习技术还可以设计更简洁的端到端算法,因而能够设计出比 JPEG2000 等商用算法性能更优的算法。

在图片、视频压缩领域,使用最多的深度学习技术就是卷积神经网络(CNN),下面会就卷积神经网络进行简单介绍。如图 3 所显示,像搭积木一样,一个卷积神经网络由卷积、池化、非线性函数、归一化层等模块组成。最终的输出根据应用而定,如在人脸识别领域,我们可以用它来提取一串数字(专业术语称为特征)来表示一幅人脸图片。然后通过比较特征的异同进行人脸识别。

图 3 :卷积神经网络示意图(来源 http://blog.csdn.net/hjimce/article/details/47323463)

那如何利用卷积神经网络做压缩?如图 4 所示,完整的框架包括 CNN 编码网络、量化、反量化、CNN 解码、熵编码等几个模块。编码网络的作用是将图片转换为压缩特征,解码网络就是从压缩特征恢复出原始图片。其中编码网络和解码网络,可以用卷积、池化、非线性等模块进行设计和搭建。

图 4:用深度学习进行图片压缩示意图

如何评判压缩算法

在深入技术细节前,我们先来了解一下如何评判压缩算法。评判一个压缩算法好坏的重要指标有两个:一个是每个像素占据的比特位数(bit per pixel,BPP),一个是 PSNR。我们知道,数据在计算机中以比特形式存储,所需比特数越多则占据的存储空间越大。BPP 用于表示图像中每个像素所占据的比特数,如一张 RGB 三通道图,表示每个像素需要消耗 24 个比特。PSNR 用来评估解码后图像的恢复质量,简单理解就是 PSNR 越高,恢复质量越好。

我们举个例子,假设长宽为 768*512 的图片大小为 1M,利用深度学习技术对它编码,通过编码网络后产生包括 96*64*192 个数据单元的压缩特征数据,如果表示每个数据单元平均需要消耗 1 个比特,则编码整张图需要 96*64*192 个比特。经过压缩后,编码每个像素需要的比特数为(96*64*192)/(768*512)=3,所以 BPP 值为 3bit/pixel,压缩比为 24:3=8:1。这意味着一张 1M 的图,通过压缩后只需要消耗 0.125M 的空间,换句话说,之前只能放 1 张照片的空间,现在可以放 8 张。

如何用深度学习做压缩

谈到如何用深度学习做压缩,还是用刚才那个例子。将一张大小 768*512 的三通道图片送入编码网络,进行前向处理后,会得到占据 96*64*192 个数据单元的压缩特征。有计算机基础的读者可能会想到,这个数据单元中可放一个浮点数,整形数,或者是二进制数。那问题来了,到底应该放入什么类型的数据?从图像恢复角度和神经网络原理来讲,如果压缩特征数据都是浮点数,恢复图像质量是最高的。但一个浮点数占据 32 个比特位,那之前讲的比特数计算公式变为(96*64*192*32)/(768*512)=96,压缩后反而每个像素占据比特从 24 变到 96,非但没有压缩,反而增加了,这是一个糟糕的结果,很显然浮点数不是好的选择。

所以为了设计靠谱的算法,我们使用一种称为量化的技术,它的目的是将浮点数转换为整数或二进制数,最简单的操作是去掉浮点数后面的小数,浮点数变成整数后只占据 8 比特,则表示每个像素要占据 24 个比特位。与之对应,在解码端,可以使用反量化技术将变换后的特征数据恢复成浮点数,如给整数加上一个随机小数,这样可以一定程度上降低量化对神经网络精度的影响,从而提高恢复图像的质量。

即使压缩特征中每个数据占据 1 个比特位,可是 8:1 的压缩比在我们看来并不是一个很理想的结果。那如何进一步优化算法?再看下 BPP 的计算公式。假设每个压缩特征数据单元占据 1 个比特,则公式可写成:(96*64*192*1)/(768*512)=3,计算结果是 3 bit/pixel,从压缩的目的来看,BPP 越小越好。在这个公式中,分母由图像决定,可以调整的部分在分子,分子中 96、64、192 这三个数字与网络结构相关。很显然,当我们设计出更优的网络结构,这三个数字就会变小。

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

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

图 5:在 kodak24 标准数据集上测评结果,上图为 PSNR 结果,下图为 MS-SSIM 的结果

总结

总体而言,借助于深度学习设计视频和图像压缩算法是一项非常具有前景但也非常具有挑战性的技术。目前,其已经在人脸识别等领域证明了它的强大能力,有理由相信在不久的将来,深度学习技术将为图像视频压缩领域带来更大的突破。

图 6:在同等压缩率下压缩视觉效果对比。上图为图鸭所提出的算法,下图为 JPEG2000 算法。在纹理细节上,上图的效果更好。

图 7:在同等压缩率下,对复杂图像压缩视觉效果对比。上图为图鸭所提出的算法,下图为 JPEG2000 算法。在细节上,可以看到上图的效果更好。

图 8:图鸭科技,BPG,JPEG2000,JPEG,CNN-google 算法的图像亮度分量的 rate-distortion 曲线,上图为感知质量,由多尺度结构相似性度量(MS-SSIM)。下图为峰值信噪比。

(完)

文章分享自微信公众号:
AI科技评论

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!

作者:图鸭科技
原始发表时间:2018-01-11
如有侵权,请联系 cloudcommunity@tencent.com 删除。
登录 后参与评论
0 条评论

相关文章

  • 一场深度学习引发的图像压缩革命

    雷锋网 AI 研习社按,2012 年,AlexNet 横空出世,以 15.4% 的低失误率夺得当年 ILSVRC(ImageNet 大规模视觉识别挑战赛)冠军,...

    AI研习社
  • ICIP 2020正式召开:腾讯多媒体实验室分享最新研究成果与实践

    引言:本文回顾了腾讯多媒体实验室,在ICIP 2020多媒体行业研讨会的分享内容。 10月28日,第27届电气电子工程师学会图像处理国际会议 (IEEE In...

    腾讯多媒体实验室
  • MMFlow :帧与帧之间的追光者

    光流(Optical Flow),字面理解为“光的流动”,更准确的说法为:时变图像上的二维运动场,是视频数据的重要视觉线索,在动作识别、视频理解、视频分割、目标...

    OpenMMLab 官方账号
  • 入门大爆炸式发展的深度学习,你先要了解这6个著名框架

    Theano是在BSD许可证下发布的一个开源项目,是由LISA集团(现MILA)在加拿大魁北克的蒙特利尔大学开发的,其是以一位希腊数学家的名字命名的。

    华章科技
  • 音视频技术开发周刊 | 241

    每周一期,纵览音视频技术领域的干货。 新闻投稿:contribute@livevideostack.com。 ✦ 一周简讯 ✦ MPAI-MMC将被IEEE采纳...

    LiveVideoStack
  • MPEG4 MP4和AVC H264 MP4有什么不同

    H264    一、H.264与其他标准的比较   1.1 在画质上   H.264概述随着市场的需求,在尽可能低的存储情况下获得好的图像质量和低带宽...

    全栈程序员站长
  • CVPR 2022:字节跳动多项竞赛夺冠,发力无障碍技术创新

    ---- 新智元报道   编辑:好困 【新智元导读】在今年的CVPR上,字节跳动斩获了多项竞赛冠军。 作为一年一度AI计算机视觉领域的顶级盛会,CVPR ...

    新智元
  • 音视频技术开发周刊(第122期)

    该方案使用了 WebRTC 技术,能在检测到婴儿哭声的同时过滤掉周围所有其他噪音。

    LiveVideoStack
  • 音视频技术开发周刊 58期

    LiveVideoStack
  • CVPR 2020学术竞赛大盘点,中国团队揽获众多冠军

    CVPR 2020已经落下帷幕,除了为期三天的主会议,还穿插着同为期三天的Workshop,这些研讨会有一些是讨论性质的,还有一些是竞赛相关的。

    AI科技评论
  • 如何使用深度学习进行图片压缩?

    互联网时代,社交媒体分享、自动驾驶、增强显示、卫星通信、高清电视或视频监控等应用场景对图片和视频有很强的需求,压缩算法也因此备受关注,但是不同的应用场景对压缩算...

    顶级程序员
  • 音视频技术开发周刊 | 242

    每周一期,纵览音视频技术领域的干货。 新闻投稿:contribute@livevideostack.com。 ✦ 一周简讯 ✦ W3C发布WebAssembl...

    LiveVideoStack
  • 灵魂追问 | 教程那么多,你……看完了吗?

    机器之心
  • 音视频技术开发周刊 56期

    LiveVideoStack
  • 学界|盘点四大民间机器学习开源框架:Theano、Caffe、Torch 和 SciKit-learn

    在上期的《谷歌、微软、OpenAI等巨头七大机器学习开源项目 看这篇就够了》这篇文章里,我们盘点了 TensorFlow,CNTK,SystemML,DeepM...

    AI科技评论
  • 大话实时视频编码中的人工智能(上)

    在过去的十年中,已经出现了数千篇主张 AI 和 ML 有益处的文章。其中一些是现实的,而另一些则夸大了 ML 技术在大量应用中可能带来的好处。那么真正的好处在哪...

    用户1324186

扫码关注腾讯云开发者

领取腾讯云代金券