JPEG压缩

JPEG定义了两种算法:
1.基于DCT的有失真压缩算法
包括基本系统(Baseline)和扩展系统
2.基于DPCM的无失真压缩算法
在这里插入图片描述
1.色彩空间转换(RGB->YUV)
2.离散余弦变换(DCT)
3.量化
4.Z字型编码
5.差分脉冲编码(DPCM)
6.游程长度编码(RLE)
7.熵编码
第一步:色彩空间转换
.RGB是最常见的色彩空间,R、G、B三原色合成其他的颜色
.YUV是一种基本色彩空间,被PAL,NSTC和SECAM用于复合色彩视频标准。
. Y表示亮度(灰度值),U、V表示色调,描述图像色彩及饱和度的属性。
.YCbCr其实是YUV经过缩放和偏移的改动版,应用于JPEG、MPEG。
. Y表示亮度,Cr、Cb表示色彩,和UV表示不同。
亮度Y和色彩UV
人眼对亮度改变的敏感性远比对色彩变化大很多,因此Y分量要比UV分量重要得多
YUV通常的格式:
YUV4:4:4 4:2:2 4:2:0 4:1:1
RGB和YUV色彩空间的转换:在这里插入图片描述
第二步:DCT
DCT把图像数据从空间域的波形数据转换成频率域的一组系数,为频域对图像做处理做好准备
变换的基本单位是8x8系数组成的方块
DCT是无损变换,只要变化的计算精度足够高,那么原始像素经过IDCT精确恢复
二维DCT变换的数学公式:
在这里插入图片描述
公式中:
在这里插入图片描述
8x8原始数据:
在这里插入图片描述
DCT变换后:
在这里插入图片描述
二维DCT变换的逆变换公式:
在这里插入图片描述
公式中:
在这里插入图片描述
DCT反变换后:
在这里插入图片描述
第三步:量化
量化是指在不引起明显视觉效果失真的前提下,对图像数据实行部分抛弃(主要是AC部分),实现数据的大幅减少所以,量化是图像质量下降的最重要原因
JPEG标准采用线性均匀量化器:
对64个DCT变换系数,除以对应的量化步长,然后四舍五入取整。公式如下:
在这里插入图片描述
其中,Y(u,v)表示DCT变换系数
S(u,v)表示量化步长
由于人眼对亮度的敏感度比对色差信号更高,所以采用两种量化表。
标准亮度量化表
在这里插入图片描述
在这里插入图片描述
第四步: Z字型编码
量化后的系数含有大量的零值系数,位增加连续零值的个数,需按Z字型编码
在这里插入图片描述
第五步:差分脉冲编码
经过DCT变换之后,DC系数的特点:
1.数值比较大,
2.相邻的8x8系数值相差不大
所以采用差分脉冲编码调制(DPCM)对量化DC系数进行编码
第六步:游程长度编码
经过Z字型编码后,AC系数的特点
1.含有很多0值系数
2.很多0值都是连续的
采用游程长度编码(RLE)对AC系数进行编码
方法:使用1个字节的高4位表示连续0的个数,
使用低4位表示下一个非0系数所需要的位数
第七步:熵编码
对DC和AC系数分别采用不同的编码后,进一步采用Huffman编码减少熵,进一步压缩
优点:对出现频率比较高的符号分配短的码字,对出现频率比较低的符号分配比较长的码字。码表可以事先定义。
Huffman编码步骤:
1.统计每个符号出现的频率
2.按从小到大的规律把上述频率进行排序
3.对出现频率最小的两个值分别制定为0和1然后将这两个频率相加,再次排序
4.得到Huffman树,就可以得到Huffman表。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值