1、广西工学院信息论与编码 课程设计说 明 书设计题目 JPEG 静态图像压缩编码原理及实现技术系 别 电控系 专业班级 电子 081 学生姓名 彭超 学 号 200800303038 手机号码 15077226290 JPEG 静态图像压缩编码原理及实现技术电子 081 200800303038 彭超 15077226290摘要:本文主要介绍了 JPEG 静态图像压缩编码的原理和实现技术。编码原理有离散预先变换,量化,编码,组成数据流。实现的技术有离散余弦正变换(FDCT)和离散余弦逆变换(IDCT) ,量化和熵编码。关键词:JPEG 图像压缩编码JEEG 是联合图像专家小组的英文缩写,联合图像
2、专家小组,多年来一直致力于标准化工作,他们开发研制出连续色调、多级灰度、静止图 像的数字图像压缩编码方法。这个压缩编码方法称为 JPEG 算法。JPEG 算法被确定为 JPEG 国际标准,它是国际上彩色、灰度、静止图像的第一个国际标准。JPEG 标准是一个适用范围广泛的通用标准。它不仅适于静图像的压缩,电视图像序列的帧内图像压缩编码也常采用 JPEG 压缩标准,1992 年正式成为国际标准。一、PEG 静态图像压缩编码原理:1.离散余弦变换(1)通过离散余弦变换(DCT 变换,下略),可以将能量集中在矩阵左上角的少数几个系数上。简单地说,我们可以将 DCT 看作用一个 8 行 8 列的二维数组
3、产生另一个 8 行 8 列的二维数组的函数。也就是说,把一个数组通过某种变换,变成另一个数组。2)用 f 表示像素值的数组,f(i,j)表示第 i 行第 j 列的值,则 DCT 变换之后定义一个新的数组 F(u,v)表示第 u 行 v 列的值。DCT 变换通过下面公式完成:逆 DCT 变换公式:在上面两公式中,当 u,v=0 时, ,其他情况下,C(u),C(v)=1。2.量化为了达到压缩的目的,我们需要对经过 DCT 变换的 DCT 系数进行量化,目的是减小非 0 系数的幅度以增加 0 值系数的数目。在一定的主观保真的前提下,丢掉那些对视觉效果影响不大的数据。量化是压缩过程中造成质量下降的最
4、主要原因。3.编码z 形排列:对图像块进行 DCT 变换后,能量集中在矩阵左上角的少数几个系数上。所以一般左上角的数值比较大,而 0 则主要集中在矩阵右下角。为了增加连续的 0 的个数,我们采用 z 形排列(zigzag),以便更好地压缩数据。这样,我们就能把一个 8*8 的矩阵转换成一个 1*64 的矢量。DC 系数编码:8*8 图块经过 DCT 变换后得到的 DC 系数有两个特点,一个是数值很大,另一个是相邻两个图块之间的 DC 系数很相近。因此,JPEG 采用取 DPCM编码对 DC 系数差进行编码。公式如下:其中 Delta 为差值,即差值为当前图块 DC 系数减去上一个图块的 DC
5、系数。AC 系数的编码:经过量化的 AC 系数的特点是有很多连续的 0。所以可以使用非常简单和直观的 RLE 编码对其进行编码。霍夫曼编码(size=-1*注 1 注 2):在 JPEG 有损压缩中,使用霍夫曼编码来减少熵(读 Shang,1 声)。压缩数据符号的时候,霍夫曼编码器对出现频率较高的符号使用较短的代码,对于出现频率较低的符号使用较长的代码,最终使得编码的平均码字最短。4.组成数据位流JPEG 编码的最后一步为把各种标记代码和编码后的图像组成数据,这样做的目的是为了便于传输、存储和译码器进行译码。二、PEG 静态图像压缩编码实现技术:(1)首先把一幅图象分 8*8 的子块进行离散余
6、弦正变换(FDCT)和离散余弦逆变换(IDCT)。 (2)量化 (3)熵编码 具体的实现技术如下:(1)首先把一幅图象分 8*8 的子块进行离散余弦正变换(FDCT)和离散余弦逆变换(IDCT) 。在编码器的输入端,原始图象被分成一系列 8*8 的块,作为离散余弦正变换(FDCT)的输入。在解码器的输出端,离散余弦逆变换(IDCT)输出许多8*8 的数据块,用以重构图象。8*8 FDCT 和 8*8 IDCT 数学定义表达式如下:离散余弦正变换(FDCT )可看作为一个谐波分析仪,把离散余弦逆变换(IDCT )看作一个谐波合成器。每个 8*8 二维原图象采样数据块,实际上是 64点离散信号,该
7、信号是空间二维参数 x 和 y 的函数。FDCT 把这些信号作为输入,然后把它分解成 64 个正交基信号,每个正交信号对应于 64 个二维(2D )空间频率中的一个,这些空间频率是由输入信号的频谱组成。FDCT 的输出是64 个基信号的幅值(即 DCT 系数) ,每个系数值由 64 点输入信号唯一地确定,即离散余弦变换的变换系数。在频域平面上变换系数二维频域变量 u 和 v 的函数。对应于 u=0,v=0 的系数,称做直流分量( DC 系数) ,其余 63 个系数称做交流分量(AC 系数) 。因为在一幅图象中像素之间的灰度或色差信号变化缓慢,在 8*8 子块中像素之间相关性很强,所以通过离散余
8、弦正变换处理后,在空间频率低频范围内集中了数值大的系数,这样为数据压缩提供了可能。远离直流系数的高频交流系数大多为零或趋于零。如果 FDCT 和 IDCT 变换计算中计算精度足够高,并且 DCT 系数没有被量化,那么原始的 64 点信号就能精确地恢复。(2)量化为了达到压缩数据的目的,对 DCT 系数 F(u,v)需作量化处理。量化处理是一个多到一的映射它是造成 DCT 编解码信息损失的根源。在 JPEG 标准中采用线性均匀量化器。量化定义为,对 64 个 DCT 变换系数 F(u,v)除以量化步长Q(u,v)后四舍五入取整。即量化器步长是量化表的元素,量化表元素随 DCT 变换系数的位置而改
9、变,同一像素的亮度量化表和色差量化表不同值,量化表的尺寸也是 64,与 64 个变换系数一一对应。量化表中的每一个元素值为 1 至 255之间的任意整数,其值规定了对应位置变换系数的量化器步长。在接收端要进行逆量化,逆量化的计算公式为:不同频率的余弦函数对视觉的影响不同,量化处理是在一定的主观保真度图像质量的前提下,可据不同频率的视觉阈值来选择量化表中的元素值的大小。根据心理视觉加权函数得到亮度化表和色度量化表。DCT 变换系数 F(u,v)除以量化表中对应位置的量化步长,其幅值下降,动态范围变窄,高频系数的零值数目增加。(3)熵编码为进一步达到压缩数据的目的,需对量化后的 DC 系数和行程编
10、码后的 AC 系数进行基于统计特性的熵编码。64 个变换系数经量化后,坐标 u=v=0 的值是直流分量(即 DC 系数) 。DC 系数是 64 个图像采样平均值。因为相邻的 88 块之间有强的相关性,所以相邻块的 DC 系数值很接近,对量化后前后两块之间的DC 系数差值进行编码,可以用较少的比特数。DC 系数包含了整个图像能量的主要部分。经量化后的 63 个 AC 系数编码时从左上方 AC(u=7,v=7)开始,沿箭头方向,以“Z”字形行程扫描,直到 AC(u=7,v=7 )扫描结束。量化后特编码的AC 系数通常有许多零值,沿“Z”字形路径行进,可使零 AC 系数集中,便于使用行程编码方法。63 个 AC 系数行程编码和码字,可用两个字节表示。 JPEG建议使用两种熵编码方法:Huffman 编码和自适应二进制算术编码。熵编码可分成两步进行,首先把 DC 和 AC 系数转换成一个中间格式的符号序列,第二步是给这些符号赋以变长码。参考文献:1邓家先 康耀红 信息论与编码 西安电子科技大学出版社2 吴乐南 数据压缩 电子工业出版社3黄贤武,王加俊,李家华数字图像处理与压缩编码技预测编码法 成都电子科技大学出版社4崔屹图像处理与分析数学形态学方法及应用 科学出版社5张春田,苏育挺,张静 图象压缩编码 清华大学出版社6贾永红数字图象处理 武汉大学出版社