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],有可能超过码表范围。
jpg压缩算法 c语言

jpg压缩算法c语言JPG压缩算法是一种常用的图片压缩算法,它可以在保持相对较高的图像质量的同时大幅减小图像文件的大小。
本文将详细介绍JPG压缩算法的原理和实现,以及在C语言中如何实现该算法。
1. 什么是JPG?JPG(Joint Photographic Experts Group)是一种常见的图像文件格式,也是一种常用的图像压缩算法。
JPG文件通常以.jpg或.jpeg作为文件扩展名,因其压缩率高而且广泛支持而被广泛应用于互联网和数字影像领域。
2. JPG压缩算法的原理是什么?JPG压缩算法基于人眼对图像细节和颜色的感知特性,通过舍弃一些不重要的信息来减小文件大小。
具体而言,JPG算法主要包含两个步骤:离散余弦变换(Discrete Cosine Transform,DCT)和量化。
2.1 离散余弦变换(DCT)离散余弦变换是JPG算法的核心步骤之一,它将输入的图像数据转化为一组离散余弦变换系数。
离散余弦变换能够捕捉到图像的频域特征,分解出了原始图像中的低频和高频信息。
2.2 量化量化是JPG算法的另一个重要步骤,它通过将DCT系数分组并缩小它们的取值范围来降低图像数据的精度。
换句话说,量化可以舍弃一部分图像细节,从而减小文件大小。
3. 在C语言中如何实现JPG压缩算法?要在C语言中实现JPG压缩算法,我们可以按照以下步骤进行:3.1 读取图像文件首先,我们需要使用C语言的文件操作函数来读取原始的图像文件。
在内存中,图像通常以像素矩阵的形式存在,我们可以将其存储在一个二维数组中。
3.2 将图像数据进行色彩空间转换为了进行DCT变换,我们需要先将图像数据从RGB色彩空间转换到YUV 色彩空间。
这可以通过应用一个预定义的转换矩阵来实现。
3.3 进行离散余弦变换(DCT)接下来,我们将对每个图像块(通常是8x8像素)进行离散余弦变换。
该过程涉及到计算每个图像块中的DCT系数,并将其存储在一个新的矩阵中。
JPGPNGGIF压缩原理与成像方式

JPGPNGGIF压缩原理与成像方式1.JPG压缩原理与成像方式:JPG(也称为JPEG)是一种有损压缩的图像文件格式,适用于存储照片和其他真实场景的图像。
JPG使用了一种称为离散余弦变换(DCT)的算法进行压缩。
JPG压缩原理分为两个主要步骤:离散余弦变换和量化。
首先,图像被分割成一系列8x8像素的小块,然后对每个小块进行离散余弦变换,将空域信息转换为频域信息。
通过离散余弦变换,JPG可以将图像中的高频细节转换为低频信息,实现数据的冗余压缩。
接下来,对频域信息进行量化,即将频域系数按照一定的量化表进行近似表示。
这个量化表由JPEG标准规定,对于高频信息进行更强烈的量化压缩,以达到更高的压缩比。
通过量化,高频信息被舍弃,从而减少了图像的数据量。
JPG的成像方式是基于颜色空间,它使用的是RGB颜色模型。
RGB颜色模型是将红、绿、蓝三个颜色分量叠加形成的彩色图像。
JPG对每个颜色通道分别进行压缩和存储,然后在显示时将三个通道进行合成,重建出彩色图像。
2.PNG压缩原理与成像方式:PNG是一种无损压缩的图像文件格式,适用于存储图标、图形和其他需要保留细节的图像。
PNG使用了一种称为差分预测编码的压缩算法。
PNG压缩原理的主要步骤包括差分编码、图像预测和霍夫曼编码。
首先,对图像进行差分编码,将每个像素的数值减去其相邻像素的数值,以便找到图像内的重复模式。
然后,对差分编码结果进行图像预测,使用不同的预测方法去估计像素的数值。
最后,使用霍夫曼编码对差分编码和图像预测结果进行编码,以进一步减小数据量。
PNG的成像方式是基于alpha通道的颜色空间,它使用的是RGBA颜色模型。
与RGB颜色模型相比,RGBA颜色模型在每个像素上增加了一个alpha通道,用于控制像素的透明度。
PNG可以支持包含半透明和全透明像素的图像,并能够在保留图像细节的同时,具有较高的图像压缩比。
3.GIF压缩原理与成像方式:GIF是一种有损和无损压缩的图像文件格式,适用于存储动画图像和简单图形。
图像压缩算法原理:JPEG、PNG等压缩方式

图像压缩算法原理:JPEG、PNG等压缩方式图像压缩算法旨在减小图像文件的大小,同时保持尽可能多的图像质量。
JPEG(Joint Photographic Experts Group)和PNG(Portable Network Graphics)是两种常见的图像压缩方式,它们有不同的原理和适用场景。
JPEG 压缩算法原理:离散余弦变换(DCT): JPEG 使用离散余弦变换将图像从空间域变换到频域。
DCT将图像分解为一系列频率分量,允许更多的信息被聚焦在低频分量上,这些低频分量对人眼更敏感。
量化:在DCT之后,通过量化将每个频率分量的数值映射为一个较低的精度。
高频分量被更多地量化为零,从而进一步减小数据。
哈夫曼编码:使用哈夫曼编码对量化后的数据进行熵编码。
哈夫曼编码对常见的值使用较短的编码,对不常见的值使用较长的编码,以进一步减小文件大小。
色彩空间转换: JPEG通常将RGB颜色空间转换为YCbCr颜色空间,其中Y表示亮度(灰度),Cb和Cr表示色度(颜色信息)。
这样可以将图像的亮度和色度分离,使得在色度上的降采样更容易。
PNG 压缩算法原理:无损压缩:与JPEG不同,PNG是一种无损压缩算法,它保留了原始图像的每一个像素的精确信息。
这使得PNG适用于需要完整性的图像,如图标、图形等。
差分预测: PNG使用差分预测(Delta Predictive Coding)来减小冗余。
通过预测每个像素值与其周围像素值之间的差异,PNG可以用较小的数据表示图像。
LZ77压缩: PNG使用LZ77算法进行数据压缩。
该算法通过查找并用指向先前出现的相似数据的指针替换当前数据,从而减小文件大小。
无调色板和透明度支持: PNG支持真彩色图像,并且可以存储图像的透明度信息。
这使得PNG在需要保留图像质量的同时支持透明背景。
总体而言,JPEG适用于需要较小文件大小,且可以容忍一些信息损失的场景,而PNG适用于需要无损压缩和透明度支持的场景。
jpeg 压缩原理

jpeg 压缩原理JPEG(Joint Photographic Experts Group)是一种常见的图像压缩格式,广泛应用于数字摄影、网页设计、图像传输等领域。
JPEG 压缩原理是一种有损压缩方法,通过舍弃图像中的一些细节信息,以减少图像文件的大小,从而实现压缩的目的。
JPEG压缩原理主要包括离散余弦变换(DCT)、量化和熵编码三个步骤。
JPEG使用离散余弦变换(DCT)将图像从空域转换到频域。
DCT 将图像分解成一系列频率分量,这些频率分量代表了图像中不同频率的变化。
高频分量通常代表了图像中的细节信息,而低频分量则代表了图像的整体结构。
通过DCT变换,JPEG将图像转换为一系列频率分量的系数,从而为后续的压缩操作提供了基础。
接下来,JPEG使用量化操作对DCT系数进行处理。
量化是一种将连续数值转换为离散数值的过程,它通过将频率分量系数除以一个固定的量化矩阵中的对应元素,得到一个整数值。
量化过程中,高频分量的系数经过除以较大的量化值,从而减小了它们的数值,而低频分量的系数经过除以较小的量化值,保留了更多的信息。
这就导致了高频分量的细节信息丢失,从而实现了图像压缩。
JPEG使用熵编码对量化后的系数进行编码。
熵编码是一种根据数据出现的概率进行编码的方法,它将出现概率较高的数据用较短的编码表示,而将出现概率较低的数据用较长的编码表示。
JPEG使用基于哈夫曼编码的熵编码方法,根据不同系数的出现概率分配不同的编码,从而进一步减小了图像文件的大小。
总结起来,JPEG压缩原理通过离散余弦变换将图像转换到频域,然后通过量化和熵编码来减小图像文件的大小。
这种有损压缩方法能够在保持图像质量的前提下,显著减小图像文件的大小,从而实现更高效的图像传输和存储。
然而,需要注意的是,JPEG压缩是一种有损压缩方法,会引入一定的失真。
压缩比越高,图像质量损失越大。
因此,在实际应用中,需要根据具体要求和场景来选择合适的压缩比,以平衡图像质量和文件大小的关系。
基于JPEG图像压缩及其仿真实现

9 9 9 9 9 9 9 9 9 9
9 9
9 9 9 9 9 9 9 9 9 9
9 9
9 9 9 g 9 9 9 9 9 9
9 9
9 9 9 9 9 9 9 9 9 9
9 9
t 7
9 9 9 9
l 8
2 1
2 4
2 6
4 7
6 6
9 g
g g
9 9
9 9
9 9
9 9
9 9
9 9
2 4
,
2 6 6 6 9 9 9 9 g 9
9 9
5 6 9 9 9 9 9 9 9 g
9 9
9 9 9 9 9 9 9 9 9 9
如下 : 峰峰对 数信噪 比:
c o m p r e s s i o n wi t h M a t l a b ,c a n g r e a t l y i mp r o v e t h e
c o mp r e s s b n e f f i c i e n c y Байду номын сангаас a n d c o r mr e s  ̄ o n a c c u r a c y.
摘 要 静 止 图像 的压缩 在现 实 中有着 非 常重要 的意
义 。数据 中存在 着 冗余 为 图像压 缩提 供 了可 能性 。 ̄ ] M a t l a b 实现静 止 图像 压 缩 ,可 以很 大 的提 高压缩 效率 以及压缩的精度 。 关键 词 J P E G;图像 压缩 ;仿真
图1 J P E C  ̄ 码器 .
压 缩 后救 据 - 馏 I 蝙羁鼯
●
逆她化罄
JPEG图像压缩技术的实现与优化

1 2 1 3
1 7 22 3 5 6 4 9 2
1 4 1 6
2 2 3 7 5 5 7 8 9 5
1 9 2 4
2 9 5 6 6 4 8 7 9 8
2 6 4 0
5 1 68 8 1 13 o l2 1
JE P G推 荐 的高低 频亮 度量 化表 如 表 1 所示 。
表 1 亮 度 量化 表
、~ 型 、 、
0
0
1 6
1
1 1
2
1 0
3
1 6
4
2 4
5
4 0
6
51
7
61
1 2
3 4 5 6 7
1 2 1 4
h s a e ,a d i e l a i pi ai o n F G w sgv n i d ti ti p p r n srai t na d o t z t n f w o P A a ie eal .T e ts r s l i dc td ta ok d t z o n mi o l n s h e t e ut n i e t t r e a h iw
vr ห้องสมุดไป่ตู้l. ey we1
Ke o d I g o rsi J E Wa ee a s r yW r s maec mpes n P G o vltt f m r o n
1 引言
有损静态图像压缩当前有两种 比较流行 的标准 JE P G和 JE 20 。它们都是 由联合 图像专家组(o t P G 00 Ji n Po g piE prGop 开发的, ht r h xe r ) oa c t u 前者是基于离散余弦变换( i re o n T nfm,C ) Ds e s e r s r D T 变换 , c tC i a o 后者是基于 小波 变换 。二 者采用 的 编码方 式不 同… 但都 在数 字 图像 处理 领域 得 到 了广 泛 的应 用 。 由于 JE 20 1, P G 00编码
jpeg算法实验报告

jpeg算法实验报告JPEG算法实验报告摘要:本实验旨在研究和分析JPEG(Joint Photographic Experts Group)算法的原理和应用。
通过实验,我们对JPEG算法的压缩效果、图像质量和压缩比进行了评估,并对其优缺点进行了探讨。
实验结果表明,JPEG算法在图像压缩方面具有较高的效率和广泛的应用前景。
一、引言JPEG算法是一种广泛应用于图像压缩的算法,它通过对图像进行离散余弦变换(DCT)和量化处理来实现压缩。
JPEG算法以其高效的压缩率和较好的图像质量而在图像处理领域得到广泛应用。
本实验将通过实际操作和实验数据来验证JPEG算法的有效性和优势。
二、实验方法和步骤1. 实验环境和工具:使用MATLAB软件进行实验,选择合适的图像进行处理和压缩。
2. 实验步骤:a. 选择一幅高分辨率的彩色图像作为实验对象。
b. 将图像转换为YCbCr颜色空间,以便进行离散余弦变换。
c. 对图像进行离散余弦变换,得到频域图像。
d. 对频域图像进行量化处理,降低高频分量的精度。
e. 对量化后的图像进行反量化和反离散余弦变换,得到压缩后的图像。
f. 计算压缩后图像与原始图像之间的均方差(MSE)和峰值信噪比(PSNR),评估图像质量。
g. 计算压缩比,评估压缩效果。
三、实验结果和分析在实验中,我们选择了一张分辨率为1920x1080的彩色图像进行处理和压缩。
经过JPEG算法的处理,我们得到了压缩后的图像,并计算了MSE、PSNR和压缩比等指标。
1. 图像质量评估通过计算MSE和PSNR,我们可以评估压缩后图像的质量。
实验结果显示,经过JPEG算法压缩后的图像,MSE较小,PSNR较高,表明图像质量较好。
这是因为JPEG算法通过量化处理,减少了高频分量的细节信息,但保留了图像的主要特征,使得图像在视觉上仍然保持较高的质量。
2. 压缩效果评估通过计算压缩比,我们可以评估JPEG算法的压缩效果。
实验结果显示,JPEG 算法在保持较高图像质量的前提下,能够实现较高的压缩比。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
多媒体技术及应用JPEG图像压缩算法及其实现罗群书0411102班2011211684一、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压缩数据组成。
图1 JPEG压缩编码器结构框图JPEG压缩主要步骤如下:(1)图像压缩预处理;(2)正向离散余弦变换(FDCT);(3)DCT系数量化;(4)编码。
(三)图像压缩预处理图像压缩前进行预处理,主要包括对原图像颜色空间转换、大小的调整和采样、整理MCU 单元。
JPEG压缩的对象是基于YUV颜色空间,对于其他颜色空间的图像数据要先应用相应的转换公式转换到YUV颜色空间。
由于后续图像分块及整理MCU单元的需要,对于原图像宽度和长度应当扩展为8的整数倍,针对YUV411、YUV420等需要降采样处理的图像则要求扩展为16的整数倍,JPEG标准建议通过复制每有一个分量最右边的列和最下面的行来进行扩展。
通过对原图像的降采样,将可以减少部分图像数据,增加压缩比,由于人眼对亮度信号Y比较敏感,而对色差信号UV不敏感,因此可以对原图像色度信号进行降采样处理,而人眼却基本感觉不到图像的变化,JPEG压缩常用可处理降采样处理格式为YUV422、YUV411和YUV420,本文采用YUV411格式,该格式为每个像素都提取Y分量,而UV分量在水平方向上每4个像素采样一次。
JPEG压缩的最小单元为MCU,对于未降采样的图像数据(非交织数据),一个MCU就是一个数据单元,而对于降采样的图像数据(交织数据),一个MCU就是一系列在该扫描中由分量的采样因子定义的数据单元。
本文采用YUV411格式,则一个MCU将由Y分量水平4个8×8图像块、水平一个U分量和一个V分量8×8图像块组成。
基本系统将按照从上到下、从左到右的顺序将原图像整理为若干个MCU,后续JPEG压缩就是对每个MCU中各分量的图像块分别进行压缩,所有MCU的排列顺序就是最终图像压缩数据的排列顺序。
(四)正向离散余弦变换(FDCT)对每个8×8图像块进行FDCT之前,采样值应该先进行幅度值的位移,使之成为一个有符号的数,方法是将采样值减去,其中P为采样的精度,本文P取8位,幅度位移为128,即将每个采样点像素值减去128后再进行FDCT,FDCT的数学表达式为:8×8图像块经过FDCT变换后得到8×8的频率系数数组,该数组位置系数称为直流系数(DC),其他63个系数称为交流系数(AC)。
直接应用公式(3-1)进行计算其计算量较大,许多文献提出了该公式的优化计算方法,以提高运算效率,比较常见的是将该公式分解为两个一维的FDCT进行计算,分解后的公式为:(五)DCT系数的量化经过FDCT变换后的频率系数是一些浮点数,需进行均匀量化为JPEG可编码的整数系数,每一个FDCT变换后的频率系统使用一个量化器,每个量化器的步长Q(u,v)可由指定量化表给定,本文使用的量化表采用JPEG标准推荐的两个量化表,分别用于亮度和色差信号。
通过线性地改变量化表各元素数值可以控制图像压缩后的质量和压缩比。
可通过对量化表各元素乘一个调整因子fa来进行量化表元素数值调整,设所需图像质量系数为Q,则调整因子fa的计算表达式为:查看图片量化表各元素的新数值为:查看图片由于量化表为8位存储,计算的新数值应限制在1~255范围内。
量化后的DCT系数为:查看图片量化取整造成一定的数据精度损失,与原图像数据产生差异,这是造成JPEG图像压缩存在一定失真的主要原因。
通过改变Q的数值可以控制图像压缩比,一般而言,对中等复杂程度的彩色图像,对基本系统每8bit像素压缩到0.75~2bit时,解码恢复后的图像质量较好,可以满足大部分场合的应用。
(六)霍夫曼(Huffman)编码JPEG压缩最后一个步骤就是对量化后的频率系数进行编码处理,该编码的熵编码过程采用了Huffman编码,Huffman编码是一种基于概率统计的无损压缩技术,该算法首先统计信源出现的概率,再根据统计结果,出现概率高的符号使用短即时码表示,出现概率低的用长即时码表示,以达到压缩数据的目的。
应用标准霍夫曼编码对图像进行编码时效率很高,但需要对原始图像扫描两遍来统计每个像素值出现的概率和建立霍夫曼树并编码,数据压缩速度很慢。
实际应用中,为了提高处理速度,信源编码值通常根据信源查找相应的编码表得出。
Huffman码表以一个16字节的列表(BITS)规定,它包括长度从1到16的每一种码长的码字的数目,在列表后面紧跟着另外一个由8bit符号值组成的列表(HUFFVAL),该列表每一项被赋予一个Huffman码字,应用这两个列表可以获取可供信源查找Huffman编码值的码表。
在基本系统中,编码器最多在每个扫描中分别使用两个DC系数的Huffman码表和两个AC系数的Huffman码表(亮度分量和色度分量使用不同的Huffman码表),本文使用JPEG 推荐的4个Huffman码表,这4个表都来自对大量视频图像的统计平均,如果没有特别的要求,采用这4个码表就可以获得满意的压缩效果。
(七)DC编码在对量化后的系数进行熵编码之前,量化的直流系数被取出单独进行处理,对其进行差分预测编码(DPCM)。
DC系数为图像数据块的样本均值,包含了图像大部分的能量,数值也较大,通过差分预测编码可进一步去除数据块间平均值之间的相关性。
DPCM以同一个分量的前一个子块的量化直流系数DCi-1作为当前直流分量的预测值,然后再对预测误差DIFF 进行Huffman编码。
计算DIFF的表达式为:查看图片对DIFF的Huffman编码过程为:(1)根据DIFF值查幅度值分类表3-1取得差值幅度类别号SSSS和DIFF值实际保存的二进制码流CODE(DIFF);查看图片(2)根据标准DC系数Huffman码表计算得到的Huffman编码表查出SSSS值的Huffman 编码值HCODE(SSSS);(3)将SSSS的Huffman编码值和DIFF的实际保存值合并得到DC系数编码值HCODE(SSSS)CODE(DIFF),完成DC系数的编码。
(八)AC编码对量化后的63个AC系数可以观察到有许多系数值为零,首先通过对AC系数的之字形(Zig-Zag)扫描和0-RLE行程编码压缩掉这些0系数。
按照如图3-2所示的扫描次序将二维的AC系数按一维次序读出可将AC系数转换成Zig-Zag序列,该转换可以增加行程中连续的0系数值个数。
查看图片图2 Zig-Zag扫描次序0-RLE行程编码依次遍历Zig-Zag序列,当遍历到不为零的系数VAL(AC)时,计算该系数前面零的个数NUM(ZERO),然后用(NUM(ZERO),VAL(AC))进行表示,两部分刚好占用一个byte(分别占用4bit),对整个序列应用该方式进行表示。
如果最后一个非零的AC 系数不是序列的最后一个则在最后应加上结束标记EOB,EOB通常为(0,0)。
当序列中包含16个连续的零时则用(15,0)进行表示,可用多个(15,0)来表示多个16个连续的零。
最后再对0-RLE行程编码后的序列以(NUM(ZERO),VAL(AC))为单元进行Huffman编码,编码过程如下:(1)按序列顺序先后取出一个(NUM(ZERO),VAL(AC))单元,对VAL(AC)查幅度值分类表取得幅度类别号SSSS和VAL(AC)值实际保存的二进制码流CODE(VAL(AC));(2)再根据标准AC系数Huffman码表计算得到的Huffman编码表查出(NUM(ZERO),SSSS)的Huffman编码值HCODE((NUM(ZERO),SSSS));(3)组合HCODE((NUM(ZERO),SSSS))和CODE(VAL(AC))得到(NUM(ZERO),VAL (AC))单元的最后编码;(4)重复步骤(1)、(2)、(3)对其他(NUM(ZERO),VAL(AC))单元进行编码完成AC 系数的编码。
(九)压缩数据BIT码流整理将DC编码和AC编码的码流组合后便得到8×8图像块的JPEG压缩Bit码流,按照同样的步骤对每个MCU图像块进行编码,最后对压缩数据Bit码流以8位为单元进行存储,同时为了区别压缩数据与标记段(首字节为0xFF的段),当8位二进制码流值为0xFF时则在其后填充一个0x00字节。
此外,为了得到整数字节的熵编码字段,编码结束区域不完整字节通过填充“1”比特来实现完整化,如果这种填充中产生0xFF字节,则也在其后填充一个0x00字节。
整理完毕后将得到图像最终的JPEG压缩数据。