JPEG及JPEG2000剖析

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。


“行程”用一个字节的高4 位表示。当两个非零AC系数之 间连续零的个数超过15时,用增加扩展符号“(15,0)” 的个数来扩充, “(15,0)” 表示16个零。当一串连续为 零的系数包含最后的AC系数 。这时以标记(0,0)表示后 面的系数全为零,此块(Block)的数据结束,(0,0)一 般称为EOB(End of block)。 b. 可变长度熵编码 熵编码的下一步工作就是将中间符号编码,对DC系数和 AC系数中的符号1采用huffman表中的可变长度码 (Variable-length Code,VLC)进行编码。符号2用变长整 数(Variable-Length Integer,VLI)表示。


2.4 编码阶段
(1)DC系数编码:量化后,坐标u=v=0时的取值。它 是整个块能量的主要部分,它有两个特点: – 该值比较大 – 相邻的两个图像块之间的DC值变化不大
DCi-1
DCi

根据这个特点,JPEG算法使用了差分脉冲调制编码 (DPCM)技术,对相邻图像块之间量化DC系数的差 值进行编码 。ΔDCi=DCi -DCi-1
码长 4
码字 1010
0/1
0/2 0/3 0/4 0/5 0/6 0/7 0/8 0/9 0/A
2
2 3 4 5 7 8 10 16 16
00
01 100 1011 11010 1111000 11111000 1111110110 1111111110000010 1111111110000011

2. JPEG压缩的基本原理
基于DCT编码的JPEG压缩算法可由如下的几个步骤实 现: 颜色模式转换及采样; 正向离散余弦变换(FDCT); 量化(Quantization); 编码: (1)Z字形编码(Zigzag Scan); (2)使用差分脉冲编码调制(DPCM)对直流系数 (DC)进行编码; (3)使用行程长度编码(RLE)对交流系数(AC)进 行编码; (4)熵编码 译码或者叫做解压缩的过程与压缩编码过程正好相反。


尺寸分类(符号1 ) 0 1 2 3 4 5 6 7 8 9 10 11
码长 2 3 3 3 3 3 4 5 6 7 8 9 00 010 011 100 101 110 1110 11110 111110 1111110 11111110 111111110
码字
亮度DC系数表

行程/尺寸(符号1) 0/0(EOB)
静态图像压缩标准JPEG


1. JPEG概述
JPEG(Joint Photographic Experts Group)是联合图 像专家小组的英文缩写,这个专家组开发的算法称 为JPEG算法,并且成为国际上的彩色、灰度、静止 图像的第一个国际标准,因此又称为JPEG标准。 JPEG是一个适用范围很广的静态图像数据压缩标准, 不仅适用于静止图像的压缩,也常常被用于电视图 像序列的帧内图像压缩编码。目前JPEG专家组开发 了两种基本的压缩算法: 一种是采用以离散余弦变换DCT为基础的有损压缩 算法;另一种是采用以预测技术为基础的无损压缩 算法。
3)假设前一Block的DC系数为12,将系数转为
中间符号的 序列为:
(2)(3)(1,2)(-2)(0,1)(-1)(0,1)(-1)(0,1)(-1) (2,1)(-1)(0,0) 4)进行熵编码:

对于(2)(3):2查DC亮度Huffman表得到011,3经过VLI编码为11; 对于(1,2)(-2):(1,2)查AC亮度Huffman表得到11011,-2是2的反 码,为01; 对于(0,1)(-1):(0,1)查AC亮度Huffman表得到00,-1是1 的反码, 为0;

在计算二维的DCT变换时,也可使用下面的两个计算式进行 简化,把二维的DCT变换变成一维的DCT变换,如图3所示 为二维DCT变换方法。
7 1 (2i 1)u F(u, v)= C(u )[ G(i, v) cos ] 2 16 i 0 7 1 (2 j 1)v G(i, v)= C(v)[ f (i, j ) cos ] 2 16 i 0




使用有损压缩算法时,在压缩比为25:1的情况下,压缩后还原 得到的图像和原始图像相比较,非图像专家难以找到它们之 间的区别,因此得到了广泛的应用。例如在V-CD和DVDVideo电视图像压缩技术中,就使用JPEG的有损压缩算法来取 消空间方向上的冗余数据。 基于DCT的JPEG压缩算法是有损压缩,它利用了人的视角系 统的特性,使用量化和无损压缩编码相结合来去掉视角的冗 余信息和数据本身的冗余信息。JPEG算法框图如图1所示,压 缩编码大致分成三个步骤:
注意:JPEG文件中量化表中的64个值是按z字形顺序排列的

量化的计算公式: 量化值(i,j)=[T(i,j)/量化矩阵(i,j)] 在解码过程中,逆量化公式为: T(i,j)=量化值(i,j)量化矩阵(i,j) 效果图
图5 经量化后,源图像(左)与IDCT运算后得到的图像 (右)会产生一定的失真,失真程度视量化等级而定。



RGB YCbCr
RGB
YCbCr


2.2正向离散余弦变换(FDCT)
DCT要求输入数据是一个8×8的矩阵,且每个矩阵元素具有 8bit精度。
图1 JPEG将源图像划分为若干个子块,每个子块包含8×8个像素
图2 一个8×8个像素的子块的DCT变换
如上图所示,对每个图像块做离散余弦变换。通过DCT变 换可以把能量集中在矩阵左上角少数几个系数上。 P(i,j)经DCT变换之后得到T(i,j),其中T(0,0)是直流系数, 称为DC系数,其他为交流系数,称为AC系数。
7 7 1 (2i 1)u (2 j 1)v F(u, v) c(u )c(v) f (i, j ) cos cos 4 16 16 i 0 j 0

上式DCT变换的基本运算是将信号从一种表达形式(空间域, 即图像的像素值)变成另一种等同的表达形式(频率域,即 频率系数),并且这种变换过程是可逆的。
( 1 ) 使 用 正 向 离 散 余 弦 变 换 ( Forward Discrete Cosine (2)使用加权函数对DCT系数进行量化,这个加权函数对于 人的视觉系统是最佳的。

Transform,FDCT)把空间域表示的图变换成频率域表示的图。


(3)使用哈夫曼可变字长编码器对量化系数进行编码。
1 (2i 1)u (2 j 1)v 7 7 f(i, j) c(u )c(v) F(u, v) cos cos 4 16 16 u 0 v 0 c(u ), c(v) 1 / 2 , c(u ), c(v) 1,

当u, v 0 其他
逆离散余弦变换(IDCT)公式能够将频率域的数据重新转换为 像素值。


2.1颜色模式转换及采样
JPEG 的图片使用的是 YCrCb 颜色模型, 而不是计算机 上最常用的 RGB. YCrCb 模型更适合图形压缩. 因为人 眼对图片上的亮度 Y 的变化远比色度 C 的变化敏感. 从RGB转换成YCrCb: Y=0.299R+0.587G+0.114B Cr=(0.500R-0.4187G-0.0813B)+128 Cb=(-0.1687R-0.3313G+0.500B)+128 常用的采样格式有4:1:1和1:1:1 1:1:1采样就是保留所有的YCrCb值,相当于每个 像素点用1个Y样本、1个Cr样本、1个Cb样本表示。而 4:1:1采样是指对于一个2×2像素的数据块,取4个 亮度Y样本、1个红色差Cr样本、1个蓝色差Cb样本 。


依次类推,可以得到这个8*8的子块经压缩后最后的数据流为01111, 1101101,000,000,000,111000,1010 (31位)
新一代静态图像压缩标准---JPEG2000
1. JPEG2000概述


虽然JPEG 标准是一个非常成功的标准,但在一些新的 应用如高清图像、数字图书馆、高精确彩色图像、多 媒体和因特网的应用、无线、医学图像等方面,JPEG 表现出不足,因此弥补JPEG对连续色调静止图像的无 损压缩和近无损压缩效率不高的缺陷,最终提出了 JPEG2000标准。 该标准采用了先进的压缩技术并在可伸缩压缩图像及 灵活性方面有许多先进的特征,其系统功能比JPEG 标 准优越,尤其JPEG2000 采用的是离散小波变换 (DWT)替代了JPEG 中采用的离散余弦变换DCT), 并采用了最新的编码算法来支持灵活性,这样许多应 用只需用单一码流提供。JPEG2000 可广泛应用于通信、 图像处理、信号处理、信息理论和多媒体等领域中。
1/1
1/2 …
4
5 …
1100
11011 …
亮度AC系数表(部分)
2.5组成位数据流
JPEG编码的最后一个步骤是把各种标记代码和编码后 的图像数据组成一帧一帧的数据,这样做的目的是为 了便于传输、存储和译码器进行译码,这样组织的数 据通常称为JPEG位数据流。
举例:
1)假设量化后得到Q数组: 2) Z字形扫描后得1*64的数组 15,0,-2,-1,-1,-1,0,0,-1, 55个0

图4 均匀量化器

因为人眼对亮度信号比对色差信号更敏感,因此使用了两 种量化表:如表1所示的色度量化值(针对Cr,Cb)和表2 所示的亮度量化值(针对Y)。此外,由于人眼对低频分 量的图像比对高频分量的图像更敏感,因此图中左上角的 量化步距要比右下角的量化步距小。
表1 色度量化值 表2 亮度量化值
图3 两维DCT变换方法


2.3 量化
为了达到压缩数据的目的,DCT系数需做量化。量化 是对经过FDCT变换后的频率系数进行量化,这是一个 多到一映射的过程。量化的目的是减小非0系数的幅度 以及增加0值系数的数目,将信号幅值由连续量变成离 散量,在一定的主观保真的前提下,丢掉那些对视觉效 果影响不大的信息。量化是图像质量下降的最主要原 因。 对于有损压缩算法,JPEG算法使用如图4所示的均匀 量化器进行量化,量化步距是量化表的元素,它由系 数所在的位置和每种颜色分量的色调值来确定。

2.性能特点
● 高压缩率 JPEG2000压缩性能比JPEG提高了30~50%,同时,使用 JPEG2000的系统稳定性好,运行平稳,抗干扰性好,易于操 作。 ● 同时支持有损和无损压缩 JPEG只支持有损压缩,而JPEG2000能支持无损压缩。在实际 应用中,诸如卫星遥感图像、医学图像、文物照片等重要的 图像都非常适合于采用JPEG2000压缩。 ● 实现了渐进传输 这是JPEG2000一个极其重要的特征,它可以先传输图像的轮 廓,然后逐步传输数据,不断提高图像质量,让图像由朦胧 到清晰显示,而不必像现在的 JPEG 那样,由上到下慢慢显 示,这在网络传输中有重大意义。
Байду номын сангаас
(2)AC交流系数的编码 Z字形编排。对于量化后的二维数组,我们还要对其进行线 性化,然后再进行压缩加以传输。为保证低频分量先出现, 高频分量后出现,以增加行程中连续“0”的个数,63个AC系 数采用z字形排列。
AC系数开始
图6
AC系数结束 量化DCT系数编排
(3)熵编码
为了进一步达到压缩数据的目的,需对量化后的DC系数,和 行程编码后的AC系数进行基于统计特性的熵编码。JPEG建议 两种熵编码方法:哈夫曼(Huffman)编码和自适应二进制算 术编码。熵编码可分成两步进行,首先把DC和AC系数转换成 一个中间格式的符号序列,第二步是给这些符号赋以变长码字。 a .熵编码的中间符号表示 DC系数: 符号1 符号2 (尺寸)(幅值) “尺寸”表示DC差值的幅值编码所需的比特数,由于计算 机中将负数存为反码或补码的形式,当幅值DIFF为负数时, DIFF的有效位数为(-DIFF)的有效位数。 AC系数: 符号1 符号2 (行程,尺寸)(幅值) “行程”表示“Z”形扫描时所遇到前后两个非零AC系数之 间连续0 的个数;“尺寸”是后一个非零AC系数的幅值表示所 需要的比特数。
相关文档
最新文档