JPEG实验五

该实验旨在掌握JPEG编解码系统的基本原理,包括零偏置、DCT变换、DC与AC系数编码解码,以及JPEG文件格式。实验步骤涉及解码JPG为YUV文件,存储霍夫曼码表,处理DCT值和量化表,同时输出DC图像的概率分布。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、实验目的

掌握JPEG编解码系统的基本原理。初步掌握复杂的数据压缩算法实现,并能根据理论分析需要实现所对应数据的输出。

二、实验原理

1、JPEG编解码原理

(1)编码原理

零偏置(Level Offset):对于灰度级是的像素,通过减去,将无符号的整数值变成有符号数;对于n=8,即将0~255的值域,通过减去128,转换为值域在-128~127之间的值

DCT变换:对每个单独的彩色图像分量,把整个分量图像分成8×8的图像块,不足8×8的图像块,取边缘像素补齐,对每个块做DCT变换,直流系数在每个块的左上角,右下角的分量频率高。

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

AC系数的Z字扫描:经DCT变换后,系数大多数集中在左上角,即低频分量区,因此采用Z字形按频率的高低顺序读出,可以出现很多连零的机会,使用游程编码。

(2)解码原理

解码Huffman数据→解码DC差值→重构量化后的系数→DCT逆变换→丢弃填充的行/列→反0偏置→对丢失的CbCr分量差值(下采样的逆过程)→YCbCr →RGB

2、JPEG文件格式

SOI,Start of Image,图像开始
APP0,Application,应用程序保留标记0
DQT,Define Quantization Table,定义量化表
SOF0,Start of Frame,帧图像开始
DHT,Define Huffman Table,定义哈夫曼表
SOS,Start of Scan,扫描开始 12字节
EOI , End of Image,图像结束 2字节

三、实验步骤

1、将输入的JPG文件进行解码,输出文件保存为YUV文件

dc4dd45c608d4a72b18aa575813469ee.png

2、用于存储霍夫曼码表

1f04981085b54001a98b13141387607c.png

 

 

3、 存储当前有关解码的信息、DCT变换后的值;并指向量化表和DC、AC的Huffman表

fdf44aaf2c2649aa950cbdce74a13012.png

 

4、用于存储JPEG图像的宽高、码流长度、数据流指针、量化表、Huffman码表,色彩空间转换等。

f536c1d23b7d491ca7e424525a4b3690.png

5、输出DC图像并统计其概率分布

71c600c818264f28a6f233429e31919e.png 

e052986d83ed46e69dadd482c09f00f6.png 

22a28ee707e64887bb4a7db223ce908f.png 

9238f50a34f74e39a36a791f1fb61c74.png 

概率分布图像

 a727e922de4f4e11aae95c888667b8ab.png

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值