实验报告5_JPEG编解码原理及程序调试

这篇实验报告详细介绍了JPEG编码流程,包括零偏置、8x8DCT变换、量化、编码等步骤,并讨论了JPEG数据格式的标记结构。实验过程中,解码器程序被调试以将JPG文件解码为YUV格式,同时量化矩阵和Huffman表被保存到txt文件中。关键代码分析部分涉及将输出文件保存为YUV格式和输出码表。
摘要由CSDN通过智能技术生成

一.实验原理

JPEG是一种有损压缩格式,能够将图像压缩在很小的储存空间,图像中重复或不重要的资料会被丢失,因此容易造成图像数据的损伤。JPEG图像压缩算法能够在提供良好的压缩性能的同时,具有比较好的重建质量,被广泛应用于图像、视频处理领域。

JPEG编码流程:

JPEG编解码流程:


1.编码过程详解:

(1)零偏置:

对于灰度级是2n的像素,通过减去2n-1,将无符号的整数值变成有符号数。
eg.对于n=8,即将0~255的值域,通过减去128,转换为值域在-128~127之间的值
目的:使像素的绝对值出现3位10进制的概率大大减少

(2)8x8DCT变换

将图像分为8x8的子块,边缘不满足8x8的部分则用边缘像素填充,然后对每一个子块进行DCT变换。

DCT变换公式:


(3)对DCT系数进行量化

量化采用中平型均匀量化器,量化步距是按照系数所在位置颜色分量来确定。

因为人眼对亮度信号比对色差信号更敏感,因此使用了两种量化表:亮度量化值和色差量化值
根据人眼的视觉特性(对低频敏感,对高频不太敏感)对低频分量采取较细的量化,对高频分量采取较粗的量化


(4)编码

DC编码:

8×8图像块经过DCT变换之后得到的DC直流系数有两个特点
-系数的数值比较大
-相邻8×8图像块的DC系数值变化不大:冗余
根据这个特点,JPEG算法使用了差分脉冲调制编码(DPCM)技术,对相邻图像块之间量化DC系数的差值DIFF进行编码:

对DIFF用Huffman编码:分成类别

-类别ID:一元码编码
-类内索引:采用定长码

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值