数字图像处理第一次作业——JPEG格式与压缩流程分析

本文详细分析JPEG格式的压缩流程,包括颜色模式转换为YCrCb,采样,分块,离散余弦变换(DCT),Zigzag扫描,量化,差分脉冲调制编码,行程长度编码,再到熵编码。博客中还探讨了JPEG压缩算法的各个步骤,如DCT、量化和熵编码的Huffman表。
摘要由CSDN通过智能技术生成

欢迎阅读

此篇博客是由曹老师数字图像处理课程布置的第一次作业(2018年9月16日)
作业内容:
分析JPEG格式、原理、压缩流程、下载实现代码并调通运行、计算压缩率。
此篇博客以分析原理为主,在每个算法之后会贴出对应的C语言代码。
本文代码使用的编译器是Visual Stdio,第一次作业要求深入了解压缩与解压缩过程,用C/C++实现,不允许使用OpenCv或者matlab直接调用库函数实现,以后将使用OpenCv为主

1.JPEG格式综述

JPEG是联合图象专家组(Joint Picture Expert Group)的英文缩写,是国际标准化组织(ISO)和CCITT联合制定的静态图象的压缩编码标准。JPEG比其它几种压缩比要高得多,而图象质量都差不多,JPEG处理的颜色只有真彩和灰度图。
JPEG有两种基本的压缩算法、两种熵编码方法、四种编码模式。
压缩算法:
(1)有损的离散余弦变换DCT(Discrete Cosine Transform)
(2)无损的预测压缩技术;
熵编码方法:
(1)Huffman编码;
(2)算术编码;
编码模式:
(1)基于DCT的顺序模式:编码、解码通过一次扫描完成;
(2)基于DCT的渐进模式:编码、解码需要多次扫描完成,扫描效果由粗到精,逐级递增;
(3)无损模式:基于DPCM,保证解码后完全精确恢复到原图像采样值;
(4)层次模式:图像在多个空间分辨率中进行编码,可以根据需要只对低分辨率数据做解码,放弃高分辨率信息;
在实际应用中,JPEG图像编码算法使用的大多是离散余弦变换、Huffman编码、顺序编码模式。这样的方式,被人们称为JPEG的基本系统。基本系统的JPEG压缩编码算法一共分为11个步骤:颜色模式转换、采样、分块、离散余弦变换(DCT)、Zigzag 扫描排序、量化、DC系数的差分脉冲调制编码、DC系数的中间格式计算、AC系数的游程长度编码、AC系数的中间格式计算、熵编码。
在这里插入图片描述

2.颜色模式转换

YCrCb即YUV,主要用于优化彩色视频信号的传输。其中“Y”表示明亮度(Luminance或Luma),也就是灰阶值;而“U”和“V” 表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。“亮度”是透过RGB输入信号来建立的,方法是将RGB信号的特定部分叠加到一起。“色度”则定义了颜色的两个方面─色调与饱和度,分别用Cr和Cb来表示。其中,Cr反映了RGB输入信号红色部分与RGB信号亮度值之间的差异。而Cb反映的是RGB输入信号蓝色部分与RGB信号亮度值之间的差异。
RGB->YCrCb的转换可以用如下公式:
Y = 0.299 R + 0.587 G + 0.114 B Y=0.299R+0.587G+0.114B Y=

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值