JPEG编码算法

版权声明:本文为原创文章,未经博主允许不得用于商业用途。

基本步骤

对于JPEG编码共分五个步骤:

  • 色彩转换和重采样
  • 图像分割
  • FDCT
  • 量化
  • 系数编码
    接下来分别说明这五个步骤的原理。

色彩转换和重采样

    由于人眼对与亮度要比色彩敏感,因此可以将RGB图像做色彩转换后对灰度、色调和饱和度进行不同强度的压缩。
    对于重采样有两种编码:YIQ和YUV,原理类似。其实从数学的角度无论是RGB还是YIQ、YUV都只是在色彩的三维空间取三组基向量描述颜色信息,色彩转换可以看作从一组基向量映射到另一组基向量。

图像分割

    为了降低计算复杂度需要对图像进行88分割,并对色调(I或U)和饱和度(Q或V)分量进行初步压缩,常采用的是421系统,即对U分量每22矩阵求平均,对V分量每2*1求平均,可以分别将对应通道压缩1/4和1/2。

FDCT

    FDCT即离散余弦变换,和傅里叶变换类似为一种酉变换。通过FDCT可以类似傅里叶变换将图片从时域映射到频域。由于人眼对高频信息并不敏感,因此可以在频域上再一次压缩。
    为了降低计算复杂度针对分割后的8*8矩阵做FDCT。

量化

    经过FDCT变换后的图片在实数域上,为了映射到整数域需要做量化,常用方法为乘量化步长后四舍五入取整。由于FDCT为酉变换,因此实际操作时直接对酉矩阵进行量化。
    JPEG系统提供了通用的量化表。

系数编码

    JPEG对DC分量采用无失真的DPCM编码(一种预测编码技术,通过一个线性函数和之前像素预测下一个像素的值),对AC分量采用行程长度编码(记录连续0的个数)。这是由于DC分量比较接近,而AC分量中0比较多。为了增加连续0的长度,采用ZIG-ZAG排序将图像映射为一维向量后进行哈夫曼(Huffman)编码,这里同样提供通用码表。

解码

    解码即为编码的逆过程,且FDCT为酉变换因此可以直接使用相同变换解码。
完整JPEG编码\解码流程如下图:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值