实验五 JPEG原理分析及JPEG解码器的调试

一、实验原理

这里写图片描述
1.零偏置:对于灰度级是2n的像素,通过减去2n-1,将无符号的整数值变成有符号数,对于n=8,即将0~255的值域,通过减去128,转换为值域在-128~127之间的值,使像素的绝对值出现3位10进制的概率大大减少。
2.分块:将图像分成(8*8)的块以便进行DCT变换,不够的要取边缘像素补齐。
3.DCT:经过DCT变换后,图像中的低频分量会集中在左上角,由于图像低频能量高,故而左上角数值大,右下角有较多的0值。
4.量化:人眼对低频敏感,对高频不敏感。所以低频细量化,高频粗量化;人眼对亮度信号敏感,对色度信号不敏感。所以亮度和色度分量分别采用不同的量化表。
5.之字形扫描:游程编码的扫描过程,由于DCT变换后,越往右下角的分量越小甚至为0,于是采用之字形扫描。将二维降到一维后会在高频部分出现连0,由此可以提高编码效率。
6.熵编码:直流分量采用差分编码;交流分量采用游程编码。这里写图片描述
在读入文件的相关信息之前需要了解jpeg的文件结构
以下是jpeg的文件中的一系列文件标记。
这里写图片描述
对应到用二进制读取的一个jpeg文件中
这里写图片描述
FFD8:SOI,图像开始;
FFE0:应用程序保留标记0;
FFDB:定义量化表,每个文件最多有四张量化表,此次实验所用图片中共有2个FFDB,因此共有2张量化表;
FFC0:SOF0,帧图像开始;
FFC4:定义霍夫曼表,本文件中共有4个FFC4,因此共有4张霍夫曼码表;
FFDA:SOS,扫描开始;
FFD9:图像结束。

二、程序分析

实验中涉及三个结构体:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值