基于JPEG标准的静态图像压缩算法概述
JPEG静图像压缩实验
JPEG静图像压缩实验
一.实验目的
1.了解数字图像压缩的一类方法
2.掌握2D快速DCT变换的算法
二.实验原理
JPEG标准是面向连续色调静止图像的图像压缩标准。
它定义了多种类型的工作模式,其中最基本的是基于8*8块的DCT变换的顺序编码。
就是将一帧图像分为8*8的数据块单元,按照从左到右,自上到下的顺序对”块流”编码,其编码解码框图如下:
三.实验内容
按照如上框图实现一帧图像的压缩编码和解码
四.代码理解
1.编码主程序
五、实验结果
六.思考题
1.计算图像压缩比,并比较原图像的效果
使用lady.dat做实验的图像压缩比为:63/5.436=11.8:1
左图为压缩前的lady.bmp,右图为压缩后的lady.jpg
两图没有明显的区别,但比较细节,右图稍微模糊,并且局部区域有一些块化现象。
2.改变g-scale和量化矩阵的元素,比较压缩比和恢复图像的效果
Gscale141625
压缩比 3.197.5418.122.91
G_scale=1G_scale=4
G_scale=16G_scale=25
量化矩阵Q1Q2
压缩比7.3418.44
Q1=0.5*Q0,Q2=2*Q0,Q0为原始的量化矩阵
Q1Q2
3.对于8bit的像素值,在经过DCT变换后,值域为[-2048,2047],有可能超过码表范围。
JPEG-静止图像压缩标准
JPEG-静止图像压缩标准国际标准化组织(ID)和国际电报电话咨询委员会(CCITT)联合成立的专家组JPEG(Joint Photographic Experts Group)经过五年艰苦细致地工作后,于1991年3月提出了ISO CDIO918号建议草案:多灰度静止图像的数字压缩编码(通常简称为JPEG标准)。
这是一个适用于彩色和单色多灰度或连续色调静止数字图像的压缩标准。
它包括基于DPCM(差分脉冲编码调制、DCT(离散余弦变换)和Huffman编码的两个部分。
JPEG标准实际上有三个范畴:1)基本顺序过程Baseline Sequential processes) 实现有损图像压缩,重建图像质量达到人眼难以观察出来的要求。
采用的是8x8像素自适应DCT算法、量化及Huffman型的墒编码器。
2)基于DCT的扩展过程(Extended DCT Based Process) 使用累进工作方式,采用自适应算术编码过程。
3)无失真过程(Losslesss Process)采用预测编码及Huffman编码(或算术编码),可保证重建图像数据与原始图像数据完全相同。
其中的基本顺序过程是JPEG最基本的压缩过程:符合JPEG标准的硬软件编码/解码器都必须支持和实现这个过程。
另两个过程是可选扩展,对一些特定的应用项目有很大实用价值。
(l)JPEG算法基本JPEG算法操作可分成以下三个步骤:通过离散余弦变换(DCT)去除数据冗余;使用量化表对以DCT系数进行量化,量化表是根据人类视觉系统和压缩图像类型的特点进行优化的量化系数矩阵;对量化后的DCT系数进行编码使其熵达到最小,熵编码采用Huffman 可变字长编码。
(2)离散余弦变换JPEG采用8x8子块的二维离散余弦变换算法。
在编码器的输入端,把原始图像(对彩色图像是每个颜色成分)顺序地分割成一系列8x8的子块。
在8x8图像块中,像素值一般变化较平缓,因此具有较低的空间频率。
静态图像压缩JPEG2000标准
4) JPEG2000能方便的实现对码流的随机存取与处理,保证位错误的鲁棒性。
5) JPEG2000支持所谓的感兴趣区域特性,你可以任意指定图像上你感兴趣区域的压缩质量,还可以选择指定的部份先解压缩,这样我们就可以很方便的突出图片中的重点进行浏览。
(3)JPEG2000图片的压缩
目前有很多公司、机构提供了JPEG2000的压缩工具及编解码器。主要有LuraWave SmartCompress Freeware for Windows、Elecard Wavelet Image Compressor等。其中以LuraTech的LuraWave SmartCompress 及相应编码器生成的LuraWave(lwf)格式最有名。
2. JPEG2000标准
随着多媒体应用领域的激增,传统JPEG压缩技术已无法满足人们对多媒体图像资料的要求。因此,更高压缩率以及更多新功能的新一代静态图像压缩技术 JPEG 2000 随之诞生。
JPEG2000标准同样由JPEG 组织负责制定。自1997年3月开始筹划,于2000年3月出台。其标准号为ISO 15444。
(1)JPEG标准的组成部分
JPEG标准包括基于DPCM(差分脉冲编码调制)的无损压缩编码,基于DCT(离散余弦变换)和Fuffman编码的有损压缩算法两个部分。前者不会产生失真,但压缩比很小;后一种算法进行图像压缩信息虽有损失,但压缩比可以很大,例如压缩20倍左右时,人眼基本上看不出失真。目前我们对JPEG标准的应用主要是步骤
JPEG算法操作可分成以下三个基本步骤:
1) 通过离散余弦变换(DCT)去除数据冗余。
2) 使用量化表对DCT系数进行量化,量化表是根据人类视觉系统和压缩图像类型的特点进行优化的量化系数矩阵。
静态JPEG图像压缩标准
基于DCT的顺序编码模式
缺省的量化方式
36
基于DCT的顺序编码模式
缺省的量化方式
37
基于DCT的顺序编码模式
DC系数和AC系数的编码方式
DCT变换后,能量集中在左上角。 由于两个相邻的8×8子块的DC系数相差很小,
采用DPCM对直流(DC)系数单独编码。 其它63个元素是交流(AC)系数,采用行程编码。 问题: 如何排列这63个系数?
数据压缩的分类
1、按照压缩内容 分为音频数据压缩、静态图像数据压缩、视频数据压
缩和其他数据文件压缩等四种类型。 2、按照压缩方式
分为对称压缩和非对称压缩两种类型。
3、按照压缩效果 分为有损压缩与无损压缩两种类型。普通数据文件,
一般采用无损压缩,对于冗余度较小的图像,需要采用 有损压缩。
4、按照算法思想
• JPEG压缩是有损压缩,它利用了人的视觉系统的特 性,使用量化和无损压缩编码相结合来去掉视觉的 冗余信息和数据本身的冗余信息。压缩编码大致分 成以下3个步骤:
1. 正向离散余弦变换(Forward Discrete Cosine Transform, FDCT) 把空间域表示的图像变换成频率域表示的图像。
处理数组 (数据压缩)
存放到数组 (seek、get)
原理
JPEG背景
JPEG(Joint Photographic Experts Group) 由 ISO和IEC两个组织机构联合组成的一个图像专家小 组 负责制定静态的数字图像数据 压缩编码标准
JPEG 标准 该专家组开发的算法称为JPEG算法 JPEG 已经成为国际上通用图像的标准
对于YUV图像: 对于YUV采用不同的分辨率, 对每个不同分量的可以采用不同的量化参数和 熵编码表。
静态图像压缩标准
静态图像压缩标准静态图像压缩是指通过某种算法或技术对图像文件进行处理,以减小文件的体积,同时尽量保持图像质量的技术。
在数字图像处理领域,静态图像压缩是一项非常重要的技术,它涉及到图像文件的存储、传输和显示等方面。
本文将介绍静态图像压缩的标准,包括常见的压缩算法、压缩标准以及其应用。
一、静态图像压缩的基本原理。
静态图像压缩的基本原理是利用图像中的冗余信息和人眼对图像的感知特性,通过一定的算法将图像文件的体积减小,同时尽量保持图像质量。
常见的静态图像压缩算法包括JPEG、PNG、GIF等,它们都采用了不同的压缩原理和方法。
二、静态图像压缩的标准。
1. JPEG压缩标准。
JPEG(Joint Photographic Experts Group)是一种广泛应用的图像压缩标准,它采用了基于DCT(Discrete Cosine Transform)的压缩算法。
JPEG压缩标准在保持图像质量的同时,能够将图像文件的体积减小到较小的程度,适合用于存储和传输静态图像文件。
2. PNG压缩标准。
PNG(Portable Network Graphics)是一种无损压缩的图像格式,它采用了DEFLATE压缩算法。
相比于JPEG,PNG能够更好地保持图像的质量,但文件体积通常会更大一些。
PNG格式适合用于对图像质量要求较高的场景,如图像编辑和网页设计等领域。
3. GIF压缩标准。
GIF(Graphics Interchange Format)是一种支持动画的图像格式,它采用了LZW压缩算法。
GIF格式在保持图像质量的同时,能够实现较高的压缩比,适合用于制作简单的动画和图标等场景。
三、静态图像压缩标准的应用。
静态图像压缩标准在各个领域都有着广泛的应用。
在数字摄影、图像编辑和网页设计等领域,人们经常会用到JPEG和PNG格式的图像文件。
而在制作简单动画和图标时,GIF格式也是一种常见的选择。
总结。
静态图像压缩标准是数字图像处理领域中的重要技术,它通过一定的算法和方法,能够将图像文件的体积减小,同时尽量保持图像质量。
基于JPEG标准的静态图像压缩算法概述
2.2 离散余弦变换(DCT)
离散余弦变换(discrete cosine transform)简称 DCT,是指将一组光强数据转化为频率 数据,以便得知强度变换的情形。
2.2.1 对 YCbCr 各分量分成 8×8 的图像块 对 Y,Cb,Cr 分别做 DCT 变换,把整个分量图像分成 8×8 的图像块,如果原始图片的
cos16代表dct变换后矩阵内某个数值的坐标位置位置上dct变换后的频率系数经过dct变换后的矩阵数据自然数为频率系数这些系数以dc其余的63个频率系数则多半是一些接近于的正负浮点数一概称之为ac23量化quantization量化的作用是在保持一定图像质量的前提下丢弃图像中对视觉效果影响不大的信息就是减少非值系数的数目
JPEG 算法流程如图 1 所示。
JPEG 压缩算法基本过程可分为如下几个步骤实现。 ● 颜色模式转化及取样。 ● 离散余弦变换(DCT)。
-1-
中国科技论文在线
● 量化(quantization)。 ● Z 字形编码(zigzag scan)。 ● 使用差分脉冲编码调制(DPCM)对直流系数(DC)进行编码。 ● 使用行程长度编码(RLE)对交流系数(AC)进行编码。 ● 熵编码(entropy coding)。
经过 DCT 变换后的矩阵数据自然数为频率系数,这些系数以 F (0,0) 的值最大,称为
DC,其余的 63 个频率系数则多半是一些接近于 0 的正负浮点数,一概称之为 AC。
2.3 量化(quantization)
量化的作用是在保持一定图像质量的前提下,丢弃图像中对视觉效果影响不大的信息, 就是减少非“0”系数的幅度以及增加“0”值系数的数目。量化是图像下降的最主要原因[3]。
2.1 颜色模式转化及取样
静态图像的国际压缩标准JPEG.
数组T中每个元素称为变换系数,这些系数都有明确 的物理意义:
- i=0,j=0的值称为DC系数,它与数组的平均值有关。 - 其余的值称为AC系数。随着i和j值的增加,相应系数分别 代表逐步增加的水平空间频率分量和垂直空间频率分量的 大小。
Hale Waihona Puke 离散余弦变换方法研究较早,技术成熟,图像压缩实践证明 DCT是许多图像的最佳变换,将88图像的空间表达式转换为 频率域,只需要少量的数据点来表示图像。 DCT算法的性能很好,可以进行高效的运算,在硬件和软件中 都容易实现。它的快速算法已可由专用芯片来实现,因而被 广泛采用。
量化
DCT变换的作用是使空间域的能量重新分布, 降低图像的相关性。DCT变换本身并不能达到 数据压缩的作用。 要实现图像压缩,需要选择适当的比特分配方 案和量化方法。 量化的作用是在保证主观图像质量的前提下, 丢掉那些对视觉效果影响不大的信息。 量化是一种降低精度的过程,所以是有损的。
JPEG标准中采用线性均匀量化器,量化过程为 对64个DCT系数除以量化步长并取整,量化步 长由量化表(量化矩阵)决定。 量化的计算公式: 量化值(i,j)=T(i,j)/量化矩阵(i,j) 由公式可见,当量化值较大时,可以保证所有 较高频率的分量实际上都将被四舍五入为0。 仅在高频系数很大时才将其编码为非0值,但 这种情况很少出现。
N 1 N 1
T (i, j )
C (i ), C ( j )
1 2
, 当i, j 0
C (i), C ( j ) 1 否则
The pixel values are shifted into the zero-centered interval (–128, 127). 在逆向离散余弦变换后,对重 构图像中的每个样本值数据要加上128。 This transformation must be carried out 64 times per data unit. The result is 64 coefficients. DCT对一 个8×8的矩阵P进行处理,得到一个8×8的频率系 数矩阵。 物理意义:将信号从一种表达形式(空间域,即图 像的像素值)变成另一种等同的表达形式(频率域, 即频率系数),并且这种变换过程是可逆的。
JPEG算法概要
一、JPEG算法概要JPEG(Joint Photographic Experts Group)是一个由ISO和IEC两个组织机构联合组成的一个专家组,负责制定静态的数字图像数据压缩编码标准,这个专家组开发的算法称为JPEG 算法,并且成为国际上通用的标准,因此又称为JPEG标准。
JPEG是一个适用范围很广的静态图像数据压缩标准,既可用于灰度图像又可用于彩色图像。
JPEG专家组开发了两种基本的压缩算法,一种是采用以离散余弦变换(Discrete Cosine Transform,DCT)为基础的有损压缩算法,另一种是采用以预测技术为基础的无损压缩算法。
使用有损压缩算法时,在压缩比为25:1的情况下,压缩后还原得到的图像与原始图像相比较,非图像专家难于找出它们之间的区别,因此得到了广泛的应用。
例如,在VCD和DVD-Video电视图像压缩技术中,就使用JPEG的有损压缩算法来取消空间方向上的冗余数据。
为了在保证图像质量的前提下进一步提高压缩比,近年来JPEG专家组正在制定JPEG2000标准,这个标准中将采用小波变换(Wavelet)算法。
JPEG压缩是有损压缩,它利用了人的视角系统的特性,使用量化和无损压缩编码相结合来去掉视角的冗余信息和数据本身的冗余信息。
JPEG算法框图如图:压缩编码大致分成三个步骤:1、使用正向离散余弦变换(Forward Discrete Cosine Transform,FDCT)把空间域表示的图变换成频率域表示的图。
2、使用加权函数对DCT系数进行量化,这个加权函数对于人的视觉系统是最佳的。
3、使用霍夫曼可变字长编码器对量化系数进行编码。
译码或者叫做解压缩的过程与压缩编码过程正好相反。
JPEG算法与彩色空间无关,因此“RGB到YUV变换”和“YUV到RGB变换”不包含在JPEG 算法中。
JPEG算法处理的彩色图像是单独的彩色分量图像,因此它可以压缩来自不同彩色空间的数据,如RGB, YCbCr和CMYK。
JPEG图像数据格式简明分析
总结
总的来说,JPEG图像数据格式凭借其高压缩比、兼容性强和适用范围广等优 点,成为图像处理、数字摄影、网络传输和科学数据可视化等领域的首选格式。 然而,我们也应意识到其存在的损失细节和速度较慢等缺点。未来,随着技术的 不断发展和新的图像格式的出现,JPEG可能会面临挑战。但就目前而言,JPEG仍 然是图像处理和存储领域的重要支柱。
3、离散余弦变换:接下来,图像数据将经过离散余弦变换(DCT)。DCT将 图像的像素值从空间域转换到频域,使得图像的能量集中在一些低频区域。
4、量化和编码:在完成DCT后,JPEG算法对DCT系数进行量化,将它们转换 为更小的值。然后对这些值进行编码,以产生最终的压缩数据。编码过程中使用 的哈夫曼编码(Huffman Coding)是一种无损压缩技术,它可以根据数据的统计 特性来生成更短的编码。
%读取原始图像
%将原始图像转换为灰度图像
%对灰度图像进行DCT变换
%设定量化表
quantization_table = [16 11 10 16 24 40 51 61;
12 12 14 19 26 58 60 55;
14 13 16 24 40 57 69 56;
14 17 22 29 51 87 80 62;
参考内容
JPEG静态图像压缩算法是一种重要的数字图像处理技术,它通过去除图像中 的冗余信息来减小图像的文件大小,从而方便了图像的存储和传输。JPEG算法采 用了一种基于离散余弦变换(DCT)的压缩方法,将图像数据转化为一种更有效 的表示形式,从而实现了图像的压缩。
JPEG算法主要由以下几个步骤构成:
组成结构
JPEG图像数据格式的组成结构包括三个主要部分:头部、图像部分和尾部。 头部包含关于图像的一些基本信息,如文件号、量化表、色彩空间等。图像部分 是实际的图像数据,包括经DCT变换和量化的像素值。尾部包含一些附加信息, 如压缩方法、图像大小等。
静态图像压缩标准JPEG
02
JPEG压缩算法原理
离散余弦变换(DCT)
离散余弦变换(DCT)是一种将图像从空间域变换到频域的算法,通过将图像分解 为余弦函数的和,实现图像数据的压缩。
DCT将图像分为8x8的块,对每个块进行DCT变换,将每个像素点的灰度值转换 为一系列余弦函数的系数,保留主要的低频分量,去除次要的细节分量,达到压 缩的目的。
2
JPEG压缩算法能够有效地去除图像中的冗余信息, 减小图像文件大小,同时保持较高的图像质量。
3
在数字相机中,JPEG压缩技术广泛应用于各种型 号和品牌的相机中,成为存储图像的默认格式之 一。
网络传输中的JPEG图像压缩
01
在网络传输中,由于带宽限制 和传输效率的需求,需要对图 像进行压缩以减小传输时间和 数据量。
逐行采样(Progressive mode)
图像从粗糙到精细的顺序进行采样,先输出低分辨率的图像,然后逐渐增加分辨率。
顺序采样(Sequential mode)
图像按照像素的顺序逐行进行采样,每一行都采样一次。
分层采样(Tiled mode)
将图像分成若干个小的区域,每个区域独立进行采样。
量化表(Quantization Table)
静态图像压缩标准JPEG
• JPEG标准概述 • JPEG压缩算法原理 • JPEG标准的主要技术参数 • JPEG标准与其他图像压缩标准的比较 • JPEG标准的应用案例
01
JPEG标准概述
JPEG标准的发展历程
01
02
03
1986年
JPEG标准第一版发布,支 持基本压缩算法。
jpeg静态图像压缩编码原理及实现技术
jpeg静态图像压缩编码原理及实现技术jpeg静态图像压缩编码原理及实现技术2011-03-09 21:29 MPEG视频压缩技术是针对运动图象的数据压缩技术。
为了提高压缩比,帧内图象数据和帧间图象数据压缩技术必须同时使用。
MPEG通过帧运动补偿有效地压缩了数据的比特数,它采用了三种图象,帧内图、预测图和双向预测图。
有效地减少了冗余信息。
对于MPEG来说,帧间数据压缩、运动补偿和双向预测,这是和JPEG主要不同的地方。
而JPEG和MPEG相同的地方均采用了DCT帧内图象数据压缩编码。
在JPEG压缩算法中,针对静态图象对DCT系数采用等宽量化,而是MPEG 中视频信号包含有静止画面(帧内图)和运动信息(帧间预测图)等不同的内容,量化器的设计不能采用等宽量化需要作特殊考虑。
从两方面设计,一是量化器综合行程编码能使大部分数据得到压缩;另一方面是通过量化器、编码器使之输出一个与信道传输速率匹配的比特流。
图象压缩的目的和方法图象的数字化表示使得图象信号可以高质量地传输,并便于图像的检索、分析、处理和存储。
但是数字图像的表示需要大量的数据,必须进行数据的压缩。
即使采用多种方法对数据进行了压缩,其数据量仍然巨大,对传输介质、传输方法和存储介质的要求较高。
因此图象压缩编码技术的研究显得特别有意义,也正是由于图象压缩编码技术及传输技术的不断发展、更新,推动了现代多媒体技术应用的迅速发展。
《1》图象压缩的目的图象采样后,如果对之进行简单的8bit量化和PCM编码,其数据量是巨大的。
以CIF(Common Intermediate Format)格式的彩色视频信号为例,若采样速率为25帧/秒,采样样点的Y、U、V分量均为8bit量化,则一秒钟的数据量为:要传输或存储这样大的数据量是非常困难的,必需对其进行压缩编码,在满足实际需要的前提下,尽量减少要传输或存储的数据量。
虽然数字图象的数据量巨大,但图象数据是高度相关的。
浅谈JPEG图像压缩演算法概要
淺談JPEG圖像壓縮演算法餘科亮本文僅討論靜止圖像的壓縮基本演算法,圖像壓縮的目的在於以較少的資料來表示圖像以節約存儲費用,或者傳輸時間和費用。
JPEG壓縮演算法可以用失真的壓縮方式來處理圖像,但失真的程度卻是肉眼所無法辯認的。
這也就是爲什麽JPEG會有如此滿意的壓縮比例的原因。
下面主要討論,JPEG基本壓縮法。
一.JPEG壓縮過程JPEG壓縮分四個步驟實現:1.顔色模式轉換及採樣;2.DCT變換;3.量化;4.編碼。
二.1.顔色模式轉換及採樣RGB色彩系統是我們最常用的表示顔色的方式。
JPEG採用的是YCbCr色彩系統。
想要用JPEG基本壓縮法處理全彩色圖像,得先把RGB顔色模式圖像資料,轉換爲YCbCr顔色模式的資料。
Y代表亮度,Cb和Cr則代表色度、飽和度。
通過下列計算公式可完成資料轉換。
Y=0.2990R+0.5870G+0.1140BCb=-0.1687R-0.3313G+0.5000B+128Cr=0.5000R-0.4187G-0.0813B+128人類的眼晴對低頻的資料比對高頻的資料具有更高的敏感度,事實上,人類的眼睛對亮度的改變也比對色彩的改變要敏感得多,也就是說Y成份的資料是比較重要的。
既然Cb成份和Cr成份的資料比較相對不重要,就可以只取部分資料來處理。
以增加壓縮的比例。
JPEG通常有兩種採樣方式:YUV411和YUV422,它們所代表的意義是Y、Cb和Cr三個成份的資料取樣比例。
2.DCT變換DCT變換的全稱是離散余弦變換(Discrete Cosine Transform),是指將一組光強資料轉換成頻率資料,以便得知強度變化的情形。
若對高頻的資料做些修飾,再轉回原來形式的資料時,顯然與原始資料有些差異,但是人類的眼睛卻是不容易辨認出來。
壓縮時,將原始圖像資料分成8*8資料單元矩陣,例如亮度值的第一個矩陣內容如下:JPEG將整個亮度矩陣與色度Cb矩陣,飽和度Cr矩陣,視爲一個基本單元稱作MCU。
JPEG图像压缩算法及其实现
JPEG图像压缩算法及其实现⼀、JEPG压缩算法(标准)(⼀)JPEG压缩标准JPEG(Joint Photographic Experts Group)是⼀个由ISO/IEC JTC1/SC2/WG8和CCITT VIII/NIC于1986年底联合组成的⼀个专家组,负责制定静态的数字图像数据压缩编码标准。
迄今为⽌,该组织已经指定了3个静⽌图像编码标准,分别为JPEG、JPEG-LS和JPEG2000。
这个专家组于1991年前后指定完毕第⼀个静⽌图像压缩标准JPEG标准,并且成为国际上通⽤的标准。
JPEG标准是⼀个适⽤范围很⼴的静态图像数据压缩标准,既可⽤于灰度图像⼜可⽤于彩⾊图像。
JPEG专家组开发了两种基本的静⽌图像压缩算法,⼀种是采⽤以离散余弦变换(Discrete Cosine Transform, DCT)为基础的有损压缩算法,另⼀种是采⽤以预测技术为基础的⽆损压缩算法。
使⽤⽆损压缩算法时,其压缩⽐⽐较低,但可保证图像不失真。
使⽤有损压缩算法时,其算法实现较为复杂,但其压缩⽐⼤,按25:1压缩后还原得到的图像与原始图像相⽐较,⾮图像专家难于找出它们之间的区别,因此得到了⼴泛的应⽤。
JPEG有4种⼯作模式,分别为顺序编码,渐近编码,⽆失真编码和分层编码,他们有各⾃的应⽤场合,其中基于顺序编码⼯作模式的JPEG压缩系统也称为基本系统,该系统采⽤单遍扫描完成⼀个图像分量的编码,扫描次序从左到右、从上到下,基本系统要求图像像素的各个⾊彩分量都是8bit,并可通过量化线性地改变DCT系统的量化结果来调整图像质量和压缩⽐。
下⾯介绍图像压缩采⽤基于DCT的顺序模式有损压缩算法,该算法下的JPEG压缩为基本系统。
(⼆)JPEG压缩基本系统编码器JPEG压缩是有损压缩,它利⽤了⼈的视觉系统的特性,将量化和⽆损压缩编码相结合来去掉视觉的冗余信息和数据本⾝的冗余信息。
基于基本系统的JPEG压缩编码器框图如图1所⽰,该编码器是对单个图像分量的处理,对于多个分量的图像,则⾸先应将图像多分量按照⼀定顺序和⽐例组成若⼲个最⼩压缩单元(MCU),然后同样按该编码器对每个MCU各个分量进⾏独⽴编码处理,最终图像压缩数据将由多个MCU压缩数据组成。
基于JPEG标准的静态图像压缩算法研究
随 着 多 媒 体 技 术 的发 展 , 态 图像 的应 用 更 广 泛 , 静 但存 在 数 据量 过 于 庞大 的问 题 。例 如 , 张 A ( 1 mx 9 m) 一 4 20m 2 7m 幅 面 的 照 片 , 用 中 等分 辨 率 (0 p) 若 3 0d i的扫 描 仪 按 真 彩 色 扫 描 , 数 据 量共 有 (0 x 1/ .) (0 x9 /5 ) 像 素 , 其 30 202 4 x 30 2 72 . 个 5 4 每
h v r i e p e d a p iai n i h ii l a r n h ewo k a e amoe w d s ra p l t n t e dg t me a a d t e n t r . c o ac
Ke r s J E sa d r ywo d : P G tn ad;smpig; iceec sn a s r ; u nic t n;e t p o ig a l n dsrt oiet nf m q a t ai r o i f o nr ycdn o
里…… 一H 8 … 1 8 图像区 域
Y c j 用 田珊 r
化
【! 竺 ! H兰 !
有损
。
-
个像 素 占 3个 字 节 , 数 据 量为 2 字 节 。 样 大 容 量 的 图 其 6M 这
像信 息 会 给存 储器 的存 储 容 量 、 信 干线 信 道 的 带 宽 以及 计 通 算 机 的处理 速 度 增加 极 大 压 力 。 因此 , 必须 压 缩 图 像 。 文 提 本
JPEG图像压缩算法流程详解(转)
JPEG图像压缩算法流程详解(转)JPEG是Joint Photographic Exports Group的英⽂缩写,中⽂称之为联合图像专家⼩组。
该⼩组⾪属于ISO国际标准化组织,主要负责定制静态数字图像的编码⽅法,即所谓的JPEG算法。
JPEG专家组开发了两种基本的压缩算法、两种熵编码⽅法、四种编码模式。
如下所⽰:压缩算法:(1)有损的离散余弦变换DCT(Discrete Cosine Transform)(2)⽆损的预测压缩技术;熵编码⽅法:(1)Huffman编码;(2)算术编码;编码模式:(1)基于DCT的顺序模式:编码、解码通过⼀次扫描完成;(2)基于DCT的渐进模式:编码、解码需要多次扫描完成,扫描效果由粗到精,逐级递增;(3)⽆损模式:基于DPCM,保证解码后完全精确恢复到原图像采样值;(4)层次模式:图像在多个空间分辨率中进⾏编码,可以根据需要只对低分辨率数据做解码,放弃⾼分辨率信息;在实际应⽤中,JPEG图像编码算法使⽤的⼤多是离散余弦变换、Huffman编码、顺序编码模式。
这样的⽅式,被⼈们称为JPEG的基本系统。
这⾥介绍的JPEG编码算法的流程,也是针对基本系统⽽⾔。
基本系统的JPEG压缩编码算法⼀共分为11个步骤:颜⾊模式转换、采样、分块、离散余弦变换(DCT)、Zigzag 扫描排序、量化、DC系数的差分脉冲调制编码、DC系数的中间格式计算、AC系数的游程长度编码、AC系数的中间格式计算、熵编码。
下⾯,将⼀⼀介绍这11个步骤的详细原理和计算过程。
(1)颜⾊模式转换JPEG采⽤的是YCrCb颜⾊空间,⽽BMP采⽤的是RGB颜⾊空间,要想对BMP图⽚进⾏压缩,⾸先需要进⾏颜⾊空间的转换。
YCrCb 颜⾊空间中,Y代表亮度,Cr,Cb则代表⾊度和饱和度(也有⼈将Cb,Cr两者统称为⾊度),三者通常以Y,U,V来表⽰,即⽤U代表Cb,⽤V代表Cr。
RGB和YCrCb之间的转换关系如下所⽰:Y = 0.299R+0.587G+0.114BCb = -0.1687R-0.3313G+0.5B+128Cr = 0.5R=0.418G-0.0813B+128⼀般来说,C 值 (包括 Cb Cr) 应该是⼀个有符号的数字, 但这⾥通过加上128,使其变为8位的⽆符号整数,从⽽⽅便数据的存储和计算。
简述jpeg压缩的流程和原理
简述jpeg压缩的流程和原理JPEG(Joint Photographic Experts Group)是一种常用的图像压缩格式。
它通过减少图像数据中的冗余信息来实现压缩,从而减小图像的文件大小,同时尽量保持图像的质量。
JPEG压缩的原理主要涉及离散余弦变换(Discrete Cosine Transform,DCT)和量化两个步骤。
下面将详细说明JPEG压缩的流程和原理。
压缩流程:1. 分块:将图像分为8x8大小的块,每个块包含64个像素。
2. 颜色空间转换:对于彩色图像,首先将其转换为亮度(Y)和色度(Cb和Cr)三个通道。
色度通道的分辨率比较低,因为人眼对亮度的敏感度要高于对颜色信息的敏感度。
3. DCT变换:对每个8x8的块进行DCT变换。
DCT变换将图像从像素域转换到频率域,提取图像中的频率信息。
4. 量化:对于DCT变换的系数,使用量化表对其进行量化。
量化表中由于包含了不同频率信息的权重,对高频信号的量化较为严格,对低频信号的量化较为宽松。
这样可以减少高频信号的细节信息,从而减少存储空间。
量化后的DCT系数除以相应的量化表值,然后四舍五入,并取整数部分。
5. 编码:将量化后的DCT系数进行熵编码,以进一步减小文件大小。
JPEG中使用的熵编码算法是基于哈夫曼编码的算法。
通过根据系数的出现概率来分配变长编码,出现概率较高的系数使用较短的编码,出现概率较低的系数使用较长的编码。
这样可以保证较常见的系数使用较短的编码,从而进一步减小文件大小。
6. 存储:将编码后的数据存储为JPEG文件。
解压缩流程:1. 读取:读取JPEG文件。
2. 解码:将文件中的编码数据还原为量化后的DCT系数。
3. 逆量化:对量化后的DCT系数进行逆量化操作,恢复DCT系数的值。
4. 逆DCT变换:对逆量化后的DCT系数进行逆DCT变换,从频率域恢复到像素域。
5. 颜色空间还原:对于彩色图像,将亮度(Y)和色度(Cb和Cr)三个通道合并,恢复为原始的RGB颜色空间。
静态图像压缩标准JPEG
其余63个交流系数采用行程编码,使用Z字
形扫描方式可以增加连续零系数的个数,也就是
增加零值的游程长度。图1-9为Z字形扫描轨迹图。 从左上方AC01开始,沿对角线方向,直到AC77 扫描结束。63个AC系数行程编码的码字,可用2 个字节来表示,如图1-10所示。
1.2 JPEG压缩基本处理算法
图1-9 Z字形扫描
经过DCT变换后,DCT系数间的相关性
已经显现出来,即左上角的系数值大,而右下
角的系数值小,为数据压缩创造了必要条件。
但这种相关性还不是十分明显,要最终实现数
据压缩,还需要进一步降低非零系数的幅值,
增加零值系数的数量,从而进一步提高F矩阵的 相关性。为此还要对变换后的DCT系数进行量 化,来减少表示每个DCT系数所使用的位数, 另外可以增加零值系数,提高压缩比。
1.2 JPEG压缩基本处理算法
表1-1 亮度量化表
表1-2 色度量化表
1.2 JPEG压缩基本处理算法
对DCT系数的量化是基于限失真编码理
论进行的,量化是造成图像质量下降的最主要
的原因。其作用是在一定的主观保真度图像质
量的前提下,丢掉那些对视觉效果影响不大的
信息,失真度在人的视觉所能接受的容限之内。
专家组开发的算法称为JPEG算法,并于1991年
正式成为国际标准,编号为ISO/IEC10918,现
常称为JPEG标准。JPEG是一个使用范围很广
的静态图像数据压缩标准,既可用于灰度图像
又可用于彩色图像。
1.1 JPEG压缩算法简介
JPEG的目的是为了给出一个连续色调图像的压
缩方法使之满足以下要求:
1.2 JPEG压缩基本处理算法
4.DC系数差值编码和AC系数的行程编码
静态图像压缩标准JPEG
跨学科工作坊
基于DCT的渐进编码模式
与顺序模式编码步骤基本一致
图像分量编码经过多次扫描完成 按频段渐进
一次扫描中,只对DCT变换中的某些频段的系数进行编码传送,然后累进
的方式对其他频段进行编码与传送,直至将全部系数传递完毕
按位渐进
对DCT系数按照其数位由高至低分成若干段,依次对各段进行压缩编码, 先对最有效位的N位进行编码传送,直至将全部系数传递完毕
跨学科工作坊
编码方式
跨学科工作坊
熵编码
为了进一步压缩数据,需对DC码和AC行程编码的码字再做基于统计特性的
熵编码
JPEG建议的熵编码是Huffman编码和自适应二进制编码 Huffman编码:依据字符出现概率来构造异字头的平均长度最短的码字 自适应二进制编码:把整个输入的消息编码为一个数,一个满足(0.0 ≤ n < 1.0)的小数,自适应算术编码中,信源符号的概率根据编码时符号出现 的频繁程度动态地进行修改
把整个输入的消息编码为一个数一个满足0010的小数自适应算术编码中信源符号的概率根据编码时符号出现的频繁程度动态地进行修改学科工作坊基于dct的渐进编码模式按频段渐进一次扫描中只对dct变换中的某些频段的系数进行编码传送然后累进的方式对其他频段进行编码与传送直至将全部系数传递完毕按位渐进对dct系数按照其数位由高至低分成若干段依次对各段进行压缩编码先对最有效位的n位进行编码传送直至将全部系数传递完毕跨学科工作坊基于dct的渐进编码模式跨学科工作坊基于dct的分层编码模式1降低原始图像的空间分辨率
源图像 数据
预测器
熵编码器
压缩的图 像数据
跨学科工作坊
基于DPCM的无损编码模式
二维预测编码
静态图象压缩标准JPEG
1.基于DPCM的无失真编码 1.基于DPCM的无失真编码
为了满足无失真压缩的需要, JPEG 选择的一种简单的预测编码方式。 优点:硬件容易实现,图象重建质量好 缺点:压缩比太低(2:1)
2.基于DCT的有失真压缩编码 2.基于DCT的有失真压缩编码 (重点)
包括两种不同的系统,基本系统和增强 系统,增强系统是基本系统的扩充。 基于DCT编码器的工作原理框图见图2.9 。
为什么会有如此大的差距呢?
JPEG采用了图象压缩的技术 采用了图象压缩的技术 采用了图象压缩
本节重点内容
JPEG标准的基本系统中压缩过程有哪几 步,以及各步的工作原理是什么?
2.3.1 JPEG标准的主要内容 JPEG标准的主要内容
JPEG标准选定ADCT作为静态图象压缩 的标准化算法 本标准有两大分类。
(3).量化处理 (3).量化处理
输入: 输入:对FDCT输出的DCT系数进行量化处 理 关键:找最小量化失真(误差)的量化器。 关键 作用:在一定主观保真度图象质量前提下, 作用 丢掉那些对视觉影响不大的信息,通过量化 可调节数据压缩比。 输出:DC系数(直流)和AC系数(交流)
JPEG采用线性均匀量化器,定义 为对64个DCT系数除以量化步长,再四舍 五入取整。 F (u,v) = Integer Round [F(u,v) / Q(u,v)] Q(u,v):量化器步长,是量化表的元素。
直流分量DC (1).64个变换系数经量化后,坐标 u=v=0 的 F(0,0) 称 DC 系数,即直流分 量。是64个空域图象采样值的平均值。 (2).JPEG的量化后的DC系数采用 DPCM编码,即对DIFF=DC i –DC i-1编码。 如图:教材29页,图2.11。 (3).采用这种编码方式的原因:相 邻8*8块之间DC系数有较强相关性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.4 Z 字形编码(zigzag scan)
量化后的 AC 系数通常会有许多零值,以 Z 字形路径编排,增加了连续“0”系数的个 数,这为下一步编码提供了很大方便,节省 了码率。如图 2 所示。
中国科技论文在线
基于 JPEG 标准的静态图像压缩算法概述
张元伟 1 ,刘彦隆 2
太原理工大学信息学院,太原(030024)
E-mail: zyw7457@
摘 要:本文主要论述了基本 JPEG 标准的编码方法。其中包括采样、离散余弦变换、量化 和熵编码等几个主要步骤,最后,用 Visual C++编程实现把一幅 BMP 格式的图像转换为 JPEG 格式图像,进一步显示 JPEG 标准在图像压缩中的优越性。 关键词:JPEG 标准;采样;离散余弦变换;量化;熵编码 中图分类号:TN919
Abstract This paper mainly introduce coding method of the baseline JPEG standard. It includes several steps, which is sampling、discrete cosine transform、quantification and entropy coding etc. Finally, BMP image is translated into JPEG image with Visual C++, and demonstrate the superiority of JPEG standard in image compression. Key words: standard of JPEG; sampling; discrete cosine transform; quantification; Entropy coding
格式为(符号 1)(符号 2) 符号 1 表示了两条信息,称为“行程”和“长度”。“行程”是在 Z 字形矩阵中位于非零 AC 系数前的连续零值 AC 系数的个数,“长度”是对 AC 系数的幅度进行编码所用的位数。 符号 2 表示了 AC 系数幅度值。
2.7 熵编码(entropy coding)
JPEG 标准具体规定了 Huffman 编码[4]和算术编码两种熵编码方式。JPEG 基本顺序编码 解码器具体规定用 Huffman 编码,但 JPEG 并没有限制对任何 JPEG 算法用 Huffman 编码方 式或算术编码方式。熵编码可以分成两步进行,首先把 DC 码和行程码转换成中间序列(2.5 和 2.6 已做),然后给这些符号赋以变长码字。
1.引言
随着多媒体技术的快速发展,静态图像的应用越来越广泛,但存在一个主要问题就是数 据量过于庞大。例如,一张 A4(210mm×297mm)幅面的照片,若用中等分辨率(300dpi)的扫 描仪按真彩色扫描,其数据量共有(300×210/25.4)×(300×297/25.4)个像素,每个像素占 3 个字节,其数据量为 26M 字节。这样大容量的图像信息会给存储器的存储容量、通信干线 信道的带宽以及计算机的处理速度增加了极大的压力。因此,图像必须进行压缩。
霍夫曼编码器可以使用很简单的查表方法进行编码。编码时,每个矩阵数据的 DC 值与 63 个 AC 值,将分别使用不同的 Huffman 编码表,而亮度与色度也需要不同的 Huffman 编 码表,所以一共需要 4 个编码表,才能顺利地完成 JPEG 编码工作。
实现上述几个步骤,即完成一幅图像的 JPEG 压缩。
2.1 颜色模式转化及取样
2.1.1 颜色模式转化
RGB 色彩系统是我们最常用的表示颜色的方式,JPEG 采用的是 YCbCr 色彩系统,想要 用 JPEG 基本压缩法处理全彩色图像,得先把 RGB 颜色模式图像数据转化为 YCbCr 颜色模 式数据。其中 Y 代表明视度,Cb 和 Cr 则代表色度和饱和度。其转化公式如下:
图5 对JPEG文件压缩编码的过程图
本文通过实验,如果选择 75%的图像质量,可得到 20:1 的压缩率;选择 55%的图像质 量,可得到 30:1 的压缩率;选择 35%的图像质量,可得到 40:1 的压缩率,只要压缩率不大 于 40 倍,图像压缩后的效果质量用肉眼无法区别。可见 JPEG 标准的优越性(限于篇幅, 这里就不给出压缩后的效果图)。
经过 DCT 变换后的矩阵数据自然数为频率系数,这些系数以 F (0,0) 的值最大,称为
DC,其余的 63 个频率系数则多半是一些接近于 0 的正负浮点数,一概称之为 AC。
2.3 量化(quantization)
量化的作用是在保持一定图像质量的前提下,丢弃图像中对视觉效果影响不大的信息, 就是减少非“0”系数的幅度以及增加“0”值系数的数目。量化是图像下降的最主要原因[3]。
从以上测试结果看,设计实现的 JPEG 压缩算法较好地实现了对于 24 位 bmp 图像的压 缩,压缩比较高,且压缩图像与原始图像相比差异几乎无法察觉。
4.结束语
本文系统的对 JPEG 编码的基本原理进行了阐述,并给出了 BMP 格式图像与 JPEG 格 式图像之间转换的软件实现,使读者对 JPEG 的压缩效果有了一个更直观的了解。虽然图像 压缩了很多,但图像视觉效果没有什么差异。JPEG 标准的优点是在自然景观与再现图片方 面表现很出色,且其图像文件比较小,目前 WEB 上 80%的图像都是 JPEG 格式。缺点是只 能处理静态图像,不能处理活动景物。 随着技术的进步,JPEG 标准将会得到更进一步的发 展和应用。
经过 Z 字形编排后,就把一个 8×8 的矩 阵变成一个 1×64 的矢量,频率较低的系数 放在矢量的顶部。
2.5 使用差分脉冲编码调制(DPCM)对直流系数(DC)进行编码
在同一个图像分量中取得每一个 DC 值与前一个 DC 值的差值来编码。如图 3 所示。
原因是由于在连续色调的图像中,其差值多半比原值小,对差值进行编码所需的位数, 会比对原值进行编码所需的位数少许多。
3.1 程序实现的主要代码
CRWJpegExpDoc∷OnOpenDocument(LPCTSTR lpszPathName)//显示要打开的文件; CRWJpegExpDoc∷OnSaveDocument(LPCTSTR lpszPathName)//保存变换后的图像; CFormatJpeg JpegDlg//创建 Dialog 对话框; CJpeg jpeg//创建 CJpeg 类,实现 JPEG 文件转换;
Overview of Static Image Compression Algorithm Base on the JPEG Standard
ZHANG Yuan Wei1, LIU Yan Long2
Department of Information and Communication engineering,Taiyuan University of Technology, Taiyuan (030024)
-4-
中国科技论文在线
Jpeg.Save(lpszPathName.m_pDib,JpegDlg.m_bColor,JpegDlg.m_nQuality)// 将 文 件 存 储 为 JPEG 格式。
3.2 程序结果及分析
RWJpegExp 程序实现对 JPEG 文件压缩编码的过程如图 5 所示
-3-
中国科技论文在线
2.6 使用行程长度编码(RLE)对交流系数(AC)进行编码
量化 AC 系数的特点是 1×64 矢量中包含有许多“0”系数,并且许多“0”是连续的,因此 使用非常简单和直观的游程长度编码(RLE)对它们进行编码。
JPEG 使用一个字节的高 4 位来表示连续“0”的个数,而使用它的低 4 位来表示编码下一 个非“0”系数所需要的位数,跟在它后面的是量化 AC 系数的数值。如下图 4 所示
长宽不是 8 的倍数,都需要先补成 8 的倍数。
2.2.2 DCT 变换
DCT 变换使用下式计算:
F (u, v)
=
1
77
C(u)C(v)[∑ ∑
f (i, j) cos (2i + 1)uπ cos (2i + 1)vπ ]
4
i=0 j=0
16
16
其中: u, v 代表 DCT 变换后矩阵内某个数值的坐标位置
JPEG 算法流程如图 1 所示。
JPEG 压缩算法基本过程可分为如下几个步骤实现。 ● 颜色模式转化及取样。 ● 离散余弦变换(DCT)。
-1-
中国科技论文在线
● 量化(quantization)。 ● Z 字形编码(zigzag scan)。 ● 使用差分脉冲编码调制(DPCM)对直流系数(DC)进行编码。 ● 使用行程长度编码(RLE)对交流系数(AC)进行编码。 ● 熵编码(entropy coding)。
因为 JPEG 里的数据都是无符号 8 比特数据,因此 C 值在这里都加上了 128。
2.1.2 取样
因为人眼对图片上亮度 Y 的变化远比色彩 C 的变化敏感,所以采用部分取样可达到图 像压缩但几乎不影响图像质量。
目前在市面上支持 JPEG 的应用软件,通常提供两种部分取样的方法:YUV411 和 YUV422(YCbCr 是从 YUV[2]衍生来的),它们代表的意义是 Y,Cb,Cr 3 个数据取样比例。 比如:YUV411 取样,原来用 RGB 模型,4 个点需要 4×3=12 字节,而现在仅需要 4+2=6 字节,具有 50%的压缩比例。
2.图像编码压缩算法
JPEG[1]是“联合图像专家小组”(Joint Photographic Experts Group)的简称,是由 ISO 和 CCITT 于 1986 年底联合制定的连续色调的静止图像压缩标准。它是一个适用范围广泛的通 用标准,不仅适用于静止图像的压缩,也适用于电视图像序列的帧内图像的压缩。1992 年 正式成为国际标准(ISO10918)。