静态JPEG图像压缩标准
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.
JPEG压缩流程
4. 量化后的系数要重新编排,目的是为了增加连续的“0”
系数的个数,就是“0”的游程长度,方法是按照Z字形 的式样编排。这样就把一个8×8的矩阵变成一个 1×64的矢量,频率较低的系数放在矢量的顶部。 5. 在第4步得到的数据的一个特点就是有大量连续的零。 因此对此数据采用了行程编码。 6. 对全部数据进行霍夫曼编码 。
22
JPEG背景
JPEG算法与颜色空间无关
对于单色图像,只有一个亮度分量 对于彩色图像,JPEG对每个分量进行单独编码
颜色空间转换不包含在JPEG算法中
对于YUV图像: 对于YUV采用不同的分辨率,
对每个不同分量的可以采用不同的量化参数和
熵编码表。
可压缩来自不同颜色空间的图像:RGB,CMKY等
信息量: 指从N个相等的可能事件中选出一个 事件所需要的信息度量和含量。
数据压缩技术的发展过程
20世纪40年代,人们开始系统地研究数据压缩技术;主要表现在 数据压缩算法方面: 首先是Claude Shannon与R.M.Fano的Shannon-Fano编码方法; 1952年,D.A.Huffman提出了Huffman编码方法; 1968年,P.Elias 发展了Shannon-Fano编码,构造出更为完美的 Shannon-Fano-Elias 编码。 1976年,J.Rissanen 提出了一种可以成功地逼近信息熵极限的编 码方法——算术编码。 1982年,Rissanen 和G.G.Langdon 一起改进了算术编码。 1977年,Jacob Ziv和Abraham Lempel提出了LZ77编码算法, 78年又作了改进,被称为LZ78编码算法。 1984年,Terry Welch提出了LZ78算法的变种算法——LZW。 LZ77、LZ78、LZW三种压缩技术就是目前无损压缩领域中最为 流行的、被称为“字典式编码”的压缩技术。
1. 正向离散余弦变换(Forward Discrete Cosine Transform, FDCT)
把空间域表示的图像变换成频率域表示的图像。 2. 加权函数对DCT系数进行量化,这个加权函数对于人的视觉系统是最佳的。 3. 霍夫曼可变字长编码器对量化系数进行编码。 译码或者叫做解压缩的过程与压缩编码过程正好相反。
分为信息熵编码、预测编码、变换编码、混合编码以及其 他编码等五种,每种类型包含了一些具体算法,如下图。
数据压缩的主要指标
衡量不同压缩方法优劣的技术指标是相同的,主要包括 以下几个方面。 1)压缩比:指压缩前后的数据量之比,它反映了施加某 压缩算法之后,数据量减少的比例; 2)恢复效果:指经解压缩算法对压缩数据进行处理后所 得到的数据与其表示的原信息的相似程度; 3)算法简单、速度快:主要指实现算法的复杂度。
JPEG(Joint Photographic Experts Group) 由 ISO和IEC两个组织机构联合组成的一个图像专家小 组 负责制定静态的数字图像数据 压缩编码标准 JPEG 标准 该专家组开发的算法称为JPEG算法 JPEG 已经成为国际上通用图像的标准 JPEG 标准适用范围 灰度图像,彩色图像 静止图像的压缩,视频序列帧内图像压缩 JPEG可以大范围地调节图像码率和质量
离散余弦变换(DCT)
X的离散余弦变换(DCT)为Y, X ,Y是N × N 块
正变换FDCT
Y = AXA
T
T
X = A YA
逆变换IDCT
30
基于DCT的顺序编码模式
离散余弦变换(DCT)
31
基于DCT的顺序编码模式
缺省的量化方式
Y Q ( x, y) = IntegerRound[Y ( x, y) / Q( x, y)]
JPEG压缩算法简介
JPEG专家组开发了两种基本的压缩算法,一种是采 用以离散余弦变换(Discrete Cosine Transform,DCT)为基础的有损压缩算法,另一种 是采用以预测技术为基础的无损压缩算法。 本系统是实现DCT编码与解码所需的最小功能集,是 必须保证的功能,大多数的应用系统只要用此标准, 就能基本上满足需求。扩展系统是为了满足更为广 阔领域的应用要求而设置的。
• 在DCT方式中,又分为基本系统和扩展系统两类。基
• 有损压缩利用人的视觉特性,25:1的压缩比可以得
到很好的质量。
JPEG压缩算法简介
• JPEG压缩是有损压缩,它利用了人的视觉系统的特
性,使用量化和无损压缩编码相结合来去掉视觉的 冗余信息和数据本身的冗余信息。压缩编码大致分 成以下3个步骤:
自适应算术编码
哈夫曼编码一般采用的是固定的哈夫曼表。 对亮度分量和色度分量采用了不同的哈夫曼表。
41
基于DCT的顺序编码模式
熵编码
哈夫曼编码包括两部分
中间格式表示:用两个字节 熵编码
可变长编 码VLC 可变长整数 编码VLI
对于DC系数 ,第一个字节的高4位为0000, 低4位为DC系数差值的比特数(size/category) 第二个字节为DC系数差值
通过多次扫描一幅图像分量的编码,提供了一个由粗到精的渐
进码流结构。
基于DCT的分层编码模式 提供多分辨率的码流结构
25
基于DCT的顺序编码模式
算法基本步骤
将原图像用亮度、色差表示(分量图像采样4:1:1)
分成8×8数据块, 数据[0~255]转换为[-128~127] 进行正向离散余弦变换(FDCT) 量化(quantization) Z字形排列量化结果(zigzag scan) 使用DPCM对直流系数(DC)进行编码 使用行程编码对交流系数(AC)进行编码 熵编码(entropy coding):哈夫曼或算术编码
26
基于DCT的顺序编码模式
系统框架
27
基于DCT的顺序编码模式
图像块的划分
480*640彩色图像,由亮度Y 色差 Cb, Cr 表示,可划 分为 4800亮度块和 两份1200色度块
28
基于DCT的顺序编码模式
离散余弦变换(DCT)
残差图像
残差图像的8×8块 DCT系数分布
29
基于DCT的顺序编码模式
如果要选择的数是63,则其过程如下: 1.大于/小于 2.大于/小于 3.大于/小于 4.大于/小于 5.大于/小于 6.大于/小于 32? 32+16=48? 48+8=56? 56+4=60? 60+2=62? 62+1=63 大 大 大 大 大 等
这是因为每提问一次都会得到1比特 的信息量。因此,在64个数中选定某一数 所需的信息量是 log264=6(bits)
看下面这两幅图片:
图片1 Bmp 格式(900K)
图片2 JPEG格式(40K)
你能分辨哪一幅是Bmp格式,哪一幅是JPEG格式吗?
为什么会有如此大的差距呢?
JPEG采用了图象压缩的技术
静态图像压缩标准JPEG
静态图像压缩标准(Joint
Photographic Experts Group, JPEG)是一个由ISO和 IEC两个组织机构联合组成的专家组,负责制 定静态的数字图像数据压缩编码标准,这个专 家组开发的算法称为JPEG算法,并且成为国 际上通用的标准(ISO/IEC 10918号标准 “多灰度连续色调静态图像压缩编码”),又 称为JPEG标准。 JPEG是一个适用范围很广的静态图像数据压 缩标准,既可用于灰度图像又可用于彩色图像。
感兴趣区域压缩
图像压缩程序实现思路
实例演示:
利用JPEG2000基本算法(小波变换)实现的 图像压缩与解压缩 思考:图像处理(压缩)程序实现的基本思路?
图像压缩程序实现思路
利用数组 处理数组 存放到数组 生成图像 (数据压缩) (seek、get) (seek、put) 原理
JPEG背景
源自文库
静态图像压缩标准 JPEG
任课老师:厉青
从64个数中选出某一个数。可先问“是否 大于32?”消除半数的可能,这样只要6次就可 选出某数。 如果要选择的数是35,则过程如下: 1.大于/小于 32? 大 2.大于/小于 32+16=48? 小 3.大于/小于 48-8=40? 小 4.大于/小于 40-4=36? 小 5.大于/小于 36-2=34? 大 6.大于/小于 34+1=35 等
23
JPEG背景
JPEG核心算法
DCT DPCM
24
JPEG背景
对于一个图像分量,JPEG规定了4 种运行模式
基于DCT的顺序编码模式 (baseline CODEC)
单遍扫描完成一个图像分量的编码,扫描次序从左到右,从上
到下。
基于DPCM(差分脉冲编码调制)无损编码模式 无损编码 压缩比可以达到2:1 基于DCT的渐进编码模式
• JPEG算法处理的彩色图像是单独的彩色分量,因此
它可以压缩来自不同颜色空间的数据,如RGB、HSB 和CMYK。
JPEG压缩流程
在实际的JPEG压缩过程中,具体进行了以下
的运算:
将图像从RGB空间变换到YUV空间。 2. 将图像矩阵分块,对每一块单独进行DCT变换。DCT变换矩阵 的大小为8×8。根据人眼对亮度信号比对色度信号更加敏感 的生理特性,对Y分量划分为8×8块,对U、V分量划分为 16×16的块。U、V分量的每一块舍弃1/2的信息后形成一个 8×8的矩阵。 3. 对变换后的DCT矩阵进行量化处理,即用JPEG标准所推荐的 亮度量化表和JPEG标准所推荐的色度量化表的量化矩阵分别 对Y分量和U、V分量量化。量化的原则是低频部分用小的值 量化,高频部分用大的值量化,量化的结果将会在高频部分 出现大量的0。
缺省的量化方式
35
基于DCT的顺序编码模式
缺省的量化方式
36
基于DCT的顺序编码模式
缺省的量化方式
37
基于DCT的顺序编码模式
DC系数和AC系数的编码方式
DCT变换后,能量集中在左上角。 由于两个相邻的8×8子块的DC系数相差很小,
采用DPCM对直流(DC)系数单独编码。
其它63个元素是交流(AC)系数,采用行程编码。 问题: 如何排列这63个系数?
为了保证低频分量先出现,高频分量后出现, 同时增加连续“0”的个数,采用Zig-Zag的排列
方法。
38
基于DCT的顺序编码模式
DC系数和AC系数的编码方式
39
基于DCT的顺序编码模式
DC系数和AC系数的编码方式
40
基于DCT的顺序编码模式
熵编码
JPEG标准规定了两种熵编码算法:
哈夫曼编码
主要内容
JPEG背景
基于DCT的顺序编码模式 基于DPCM的无损编码模式 基于DCT的渐进编码模式 基于DCT的分层编码模式
17
JPEG2000的优势
你认识吗?
请比较数据量
高压缩率,高出20%-40%
这是什么文件?
在photoshop中你试过这样吗?
为文件加上元数据
渐进传输
数据压缩技术的发展过程(续)
数据压缩标准逐渐形成,有损压缩算法快速出现。 1986年开始制定静态图像压缩标准, 1994 年后成为 国际标准,称为JPEG标准。 ITU制定的电视会议系列标准(H.261、H.262、 H.263 、H.264等)以及由ISO制定的视频系列标准(MPEG1、MPEG-2、MPEG-4)中,均采用了有损压缩原理作为其核 心压缩算法。其中的MPEG-4标准(相当于ITU的H.263和 H.263+标准)是为了适应网络视频的需求特点而制定的, 具有更高的压缩比、支持并发数据流编码、基于内容的交 互操作、增强的时间域随机存取、容错、基于内容的尺度 可变性等新特性。
32
基于DCT的顺序编码模式
缺省的量化方式
量化表: 根据心理视觉加权函数得到的 Y Q ( x, y) = IntegerRound[Y ( x, y) / Q( x, y)] 量化:DCT变换系数除以量化步长,四舍五入取整
33
基于DCT的顺序编码模式
缺省的量化方式
34
基于DCT的顺序编码模式
数据压缩的分类
1、按照压缩内容
分为音频数据压缩、静态图像数据压缩、视频数据压 缩和其他数据文件压缩等四种类型。 2、按照压缩方式 分为对称压缩和非对称压缩两种类型。 3、按照压缩效果 分为有损压缩与无损压缩两种类型。普通数据文件, 一般采用无损压缩,对于冗余度较小的图像,需要采用 有损压缩。
4、按照算法思想
JPEG压缩流程
4. 量化后的系数要重新编排,目的是为了增加连续的“0”
系数的个数,就是“0”的游程长度,方法是按照Z字形 的式样编排。这样就把一个8×8的矩阵变成一个 1×64的矢量,频率较低的系数放在矢量的顶部。 5. 在第4步得到的数据的一个特点就是有大量连续的零。 因此对此数据采用了行程编码。 6. 对全部数据进行霍夫曼编码 。
22
JPEG背景
JPEG算法与颜色空间无关
对于单色图像,只有一个亮度分量 对于彩色图像,JPEG对每个分量进行单独编码
颜色空间转换不包含在JPEG算法中
对于YUV图像: 对于YUV采用不同的分辨率,
对每个不同分量的可以采用不同的量化参数和
熵编码表。
可压缩来自不同颜色空间的图像:RGB,CMKY等
信息量: 指从N个相等的可能事件中选出一个 事件所需要的信息度量和含量。
数据压缩技术的发展过程
20世纪40年代,人们开始系统地研究数据压缩技术;主要表现在 数据压缩算法方面: 首先是Claude Shannon与R.M.Fano的Shannon-Fano编码方法; 1952年,D.A.Huffman提出了Huffman编码方法; 1968年,P.Elias 发展了Shannon-Fano编码,构造出更为完美的 Shannon-Fano-Elias 编码。 1976年,J.Rissanen 提出了一种可以成功地逼近信息熵极限的编 码方法——算术编码。 1982年,Rissanen 和G.G.Langdon 一起改进了算术编码。 1977年,Jacob Ziv和Abraham Lempel提出了LZ77编码算法, 78年又作了改进,被称为LZ78编码算法。 1984年,Terry Welch提出了LZ78算法的变种算法——LZW。 LZ77、LZ78、LZW三种压缩技术就是目前无损压缩领域中最为 流行的、被称为“字典式编码”的压缩技术。
1. 正向离散余弦变换(Forward Discrete Cosine Transform, FDCT)
把空间域表示的图像变换成频率域表示的图像。 2. 加权函数对DCT系数进行量化,这个加权函数对于人的视觉系统是最佳的。 3. 霍夫曼可变字长编码器对量化系数进行编码。 译码或者叫做解压缩的过程与压缩编码过程正好相反。
分为信息熵编码、预测编码、变换编码、混合编码以及其 他编码等五种,每种类型包含了一些具体算法,如下图。
数据压缩的主要指标
衡量不同压缩方法优劣的技术指标是相同的,主要包括 以下几个方面。 1)压缩比:指压缩前后的数据量之比,它反映了施加某 压缩算法之后,数据量减少的比例; 2)恢复效果:指经解压缩算法对压缩数据进行处理后所 得到的数据与其表示的原信息的相似程度; 3)算法简单、速度快:主要指实现算法的复杂度。
JPEG(Joint Photographic Experts Group) 由 ISO和IEC两个组织机构联合组成的一个图像专家小 组 负责制定静态的数字图像数据 压缩编码标准 JPEG 标准 该专家组开发的算法称为JPEG算法 JPEG 已经成为国际上通用图像的标准 JPEG 标准适用范围 灰度图像,彩色图像 静止图像的压缩,视频序列帧内图像压缩 JPEG可以大范围地调节图像码率和质量
离散余弦变换(DCT)
X的离散余弦变换(DCT)为Y, X ,Y是N × N 块
正变换FDCT
Y = AXA
T
T
X = A YA
逆变换IDCT
30
基于DCT的顺序编码模式
离散余弦变换(DCT)
31
基于DCT的顺序编码模式
缺省的量化方式
Y Q ( x, y) = IntegerRound[Y ( x, y) / Q( x, y)]
JPEG压缩算法简介
JPEG专家组开发了两种基本的压缩算法,一种是采 用以离散余弦变换(Discrete Cosine Transform,DCT)为基础的有损压缩算法,另一种 是采用以预测技术为基础的无损压缩算法。 本系统是实现DCT编码与解码所需的最小功能集,是 必须保证的功能,大多数的应用系统只要用此标准, 就能基本上满足需求。扩展系统是为了满足更为广 阔领域的应用要求而设置的。
• 在DCT方式中,又分为基本系统和扩展系统两类。基
• 有损压缩利用人的视觉特性,25:1的压缩比可以得
到很好的质量。
JPEG压缩算法简介
• JPEG压缩是有损压缩,它利用了人的视觉系统的特
性,使用量化和无损压缩编码相结合来去掉视觉的 冗余信息和数据本身的冗余信息。压缩编码大致分 成以下3个步骤:
自适应算术编码
哈夫曼编码一般采用的是固定的哈夫曼表。 对亮度分量和色度分量采用了不同的哈夫曼表。
41
基于DCT的顺序编码模式
熵编码
哈夫曼编码包括两部分
中间格式表示:用两个字节 熵编码
可变长编 码VLC 可变长整数 编码VLI
对于DC系数 ,第一个字节的高4位为0000, 低4位为DC系数差值的比特数(size/category) 第二个字节为DC系数差值
通过多次扫描一幅图像分量的编码,提供了一个由粗到精的渐
进码流结构。
基于DCT的分层编码模式 提供多分辨率的码流结构
25
基于DCT的顺序编码模式
算法基本步骤
将原图像用亮度、色差表示(分量图像采样4:1:1)
分成8×8数据块, 数据[0~255]转换为[-128~127] 进行正向离散余弦变换(FDCT) 量化(quantization) Z字形排列量化结果(zigzag scan) 使用DPCM对直流系数(DC)进行编码 使用行程编码对交流系数(AC)进行编码 熵编码(entropy coding):哈夫曼或算术编码
26
基于DCT的顺序编码模式
系统框架
27
基于DCT的顺序编码模式
图像块的划分
480*640彩色图像,由亮度Y 色差 Cb, Cr 表示,可划 分为 4800亮度块和 两份1200色度块
28
基于DCT的顺序编码模式
离散余弦变换(DCT)
残差图像
残差图像的8×8块 DCT系数分布
29
基于DCT的顺序编码模式
如果要选择的数是63,则其过程如下: 1.大于/小于 2.大于/小于 3.大于/小于 4.大于/小于 5.大于/小于 6.大于/小于 32? 32+16=48? 48+8=56? 56+4=60? 60+2=62? 62+1=63 大 大 大 大 大 等
这是因为每提问一次都会得到1比特 的信息量。因此,在64个数中选定某一数 所需的信息量是 log264=6(bits)
看下面这两幅图片:
图片1 Bmp 格式(900K)
图片2 JPEG格式(40K)
你能分辨哪一幅是Bmp格式,哪一幅是JPEG格式吗?
为什么会有如此大的差距呢?
JPEG采用了图象压缩的技术
静态图像压缩标准JPEG
静态图像压缩标准(Joint
Photographic Experts Group, JPEG)是一个由ISO和 IEC两个组织机构联合组成的专家组,负责制 定静态的数字图像数据压缩编码标准,这个专 家组开发的算法称为JPEG算法,并且成为国 际上通用的标准(ISO/IEC 10918号标准 “多灰度连续色调静态图像压缩编码”),又 称为JPEG标准。 JPEG是一个适用范围很广的静态图像数据压 缩标准,既可用于灰度图像又可用于彩色图像。
感兴趣区域压缩
图像压缩程序实现思路
实例演示:
利用JPEG2000基本算法(小波变换)实现的 图像压缩与解压缩 思考:图像处理(压缩)程序实现的基本思路?
图像压缩程序实现思路
利用数组 处理数组 存放到数组 生成图像 (数据压缩) (seek、get) (seek、put) 原理
JPEG背景
源自文库
静态图像压缩标准 JPEG
任课老师:厉青
从64个数中选出某一个数。可先问“是否 大于32?”消除半数的可能,这样只要6次就可 选出某数。 如果要选择的数是35,则过程如下: 1.大于/小于 32? 大 2.大于/小于 32+16=48? 小 3.大于/小于 48-8=40? 小 4.大于/小于 40-4=36? 小 5.大于/小于 36-2=34? 大 6.大于/小于 34+1=35 等
23
JPEG背景
JPEG核心算法
DCT DPCM
24
JPEG背景
对于一个图像分量,JPEG规定了4 种运行模式
基于DCT的顺序编码模式 (baseline CODEC)
单遍扫描完成一个图像分量的编码,扫描次序从左到右,从上
到下。
基于DPCM(差分脉冲编码调制)无损编码模式 无损编码 压缩比可以达到2:1 基于DCT的渐进编码模式
• JPEG算法处理的彩色图像是单独的彩色分量,因此
它可以压缩来自不同颜色空间的数据,如RGB、HSB 和CMYK。
JPEG压缩流程
在实际的JPEG压缩过程中,具体进行了以下
的运算:
将图像从RGB空间变换到YUV空间。 2. 将图像矩阵分块,对每一块单独进行DCT变换。DCT变换矩阵 的大小为8×8。根据人眼对亮度信号比对色度信号更加敏感 的生理特性,对Y分量划分为8×8块,对U、V分量划分为 16×16的块。U、V分量的每一块舍弃1/2的信息后形成一个 8×8的矩阵。 3. 对变换后的DCT矩阵进行量化处理,即用JPEG标准所推荐的 亮度量化表和JPEG标准所推荐的色度量化表的量化矩阵分别 对Y分量和U、V分量量化。量化的原则是低频部分用小的值 量化,高频部分用大的值量化,量化的结果将会在高频部分 出现大量的0。
缺省的量化方式
35
基于DCT的顺序编码模式
缺省的量化方式
36
基于DCT的顺序编码模式
缺省的量化方式
37
基于DCT的顺序编码模式
DC系数和AC系数的编码方式
DCT变换后,能量集中在左上角。 由于两个相邻的8×8子块的DC系数相差很小,
采用DPCM对直流(DC)系数单独编码。
其它63个元素是交流(AC)系数,采用行程编码。 问题: 如何排列这63个系数?
为了保证低频分量先出现,高频分量后出现, 同时增加连续“0”的个数,采用Zig-Zag的排列
方法。
38
基于DCT的顺序编码模式
DC系数和AC系数的编码方式
39
基于DCT的顺序编码模式
DC系数和AC系数的编码方式
40
基于DCT的顺序编码模式
熵编码
JPEG标准规定了两种熵编码算法:
哈夫曼编码
主要内容
JPEG背景
基于DCT的顺序编码模式 基于DPCM的无损编码模式 基于DCT的渐进编码模式 基于DCT的分层编码模式
17
JPEG2000的优势
你认识吗?
请比较数据量
高压缩率,高出20%-40%
这是什么文件?
在photoshop中你试过这样吗?
为文件加上元数据
渐进传输
数据压缩技术的发展过程(续)
数据压缩标准逐渐形成,有损压缩算法快速出现。 1986年开始制定静态图像压缩标准, 1994 年后成为 国际标准,称为JPEG标准。 ITU制定的电视会议系列标准(H.261、H.262、 H.263 、H.264等)以及由ISO制定的视频系列标准(MPEG1、MPEG-2、MPEG-4)中,均采用了有损压缩原理作为其核 心压缩算法。其中的MPEG-4标准(相当于ITU的H.263和 H.263+标准)是为了适应网络视频的需求特点而制定的, 具有更高的压缩比、支持并发数据流编码、基于内容的交 互操作、增强的时间域随机存取、容错、基于内容的尺度 可变性等新特性。
32
基于DCT的顺序编码模式
缺省的量化方式
量化表: 根据心理视觉加权函数得到的 Y Q ( x, y) = IntegerRound[Y ( x, y) / Q( x, y)] 量化:DCT变换系数除以量化步长,四舍五入取整
33
基于DCT的顺序编码模式
缺省的量化方式
34
基于DCT的顺序编码模式
数据压缩的分类
1、按照压缩内容
分为音频数据压缩、静态图像数据压缩、视频数据压 缩和其他数据文件压缩等四种类型。 2、按照压缩方式 分为对称压缩和非对称压缩两种类型。 3、按照压缩效果 分为有损压缩与无损压缩两种类型。普通数据文件, 一般采用无损压缩,对于冗余度较小的图像,需要采用 有损压缩。
4、按照算法思想