用深度学习进行图像压缩 by ch

论文连接:https://arxiv.org/abs/1703.10553

1.系统模型

 

       系统主要包括Encoder,Importantce mapDecoder三部分网络,encoder是对图片进行初步编码,以及得到图片的特征图,作为后续importantance map部分的输入,Decoder是解码部分,恢复原始图片。

 

 

2.proxy function

         Encoder网络的输出的编码都是在(0,1)区间内,但是要将编码转换为二进制,所以需要对得到的编码进行量化,量化用到的函数如下:

 

 

 

   但是由于量化函数在0.5以外任何地方的梯度都是0,0.5出为无穷大,如果采用这个函数,这种梯度导致网络训练过程中的难以通过反向传播进行优化,所以这里引入一个新的函数:

 

 

 

        引入新的函数后,可以看到梯度如下:

        在前向编码的过程中依旧使用原始的函数进行量化,但是梯度反向传播进行优化的过程中,通过新引入的函数进行计算。

3.Importance Map

  在对图像进行编码时,编码器会对图像的每一个像素进行编码,但是在实际图像中,图像中包含的内容会存在空间差异,有的部分细节比较多,比如边缘,纹理等,这些部分需要更多的bit进行编码以便保留细节,但是有些背景部分,图像比较平缓,没有太多的内容,这些部分并不需要保留太多信息,所以可以用少量的bit进行编码。因此不区分空间差异进行的编码不仅会浪费资源,还会导致细节部分失真。所以在该系统中引入Importance Map网络:

 

       这部分网络把编码网络得到的特征图作为输入,通过对图像内容的空间差异进行分析,对不同的部分按复杂度分配bit,指导后续编码。从图像可以看出,针对压缩率的不同,分配方式不同,当压缩率要求高时,背景部分得到的bit数极少,只有一些图像内部的边缘部分分得较多的bit。

4.熵编码

       由编码网络的和Importance Map网络得到的编码并没有进行熵约束,因此不是最优的,仍然存在压缩空间,于是引入熵编码,熵编码可以用算数编码如CABAC,该文章采用神经网络的方式进行编码,编码网络如下:

 

 

        在对某bit进行编码时,该网络将其余部分分为Available bit和Unavailable bit,区分的标准是是否可以用来对该bit进行预测以及Importance Map中是否为0。

5.损失函数

        由于图像压缩需要兼顾压缩率和失真情况,所以需要对压缩率和失真状况进行联合优化,优化函数如下:  

 

 

         第一部分代表原始图像和压缩后图像的失真,使用均方误差函数,后一部分是压缩比例。

 

转载于:https://www.cnblogs.com/bupt213/p/11497982.html

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值