图像处理之JPEG编码原理

合集下载

jpeg 编码原理

jpeg 编码原理

jpeg 编码原理
JPEG编码的原理主要涉及到三个关键步骤:色彩空间的转换、离散余弦变
换(DCT)和量化。

以下是这些步骤的详细解释:
1. 色彩空间的转换:JPEG编码首先将图像从RGB色彩空间转换为YCbCr
色彩空间。

RGB色彩空间由红色、绿色和蓝色三个分量组成,而YCbCr色彩空间由亮度(Y)分量和两个色度(Cb和Cr)分量组成。

这种转换是基
于人眼对亮度的敏感度高于对色彩敏感度的特性,因此对亮度的变化比对色彩的变化更为敏感。

2. 离散余弦变换(DCT):转换后的图像数据会进行离散余弦变换,这是一种将图像数据从空间域转换到频域的过程。

DCT变换的目的是将图像中的
数据集中到少数的几个系数上,这样可以去除图像中的空间冗余,便于后续的压缩。

变换后的图像能量集中在左上角,其中低频部分集中于左上角,高频部分集中于右下角。

3. 量化:这一步是为了去除数据中的冗余,并且减少表示图像所需的数据量。

JPEG采用基于人眼视觉特性的量化方法,对DCT变换后的系数进行量化。

量化过程会减少数据的精度,但不会丢失原始图像的信息。

经过上述三个步骤后,JPEG编码通过使用熵编码进一步压缩数据,最后生
成JPEG格式的图像文件。

以上是JPEG编码的基本原理,通过理解这些原
理,有助于更好地理解JPEG压缩的优缺点,以及如何优化JPEG图像的压缩效果。

yuv编码jpeg原理 -回复

yuv编码jpeg原理 -回复

yuv编码jpeg原理-回复标题:YUV编码JPEG原理详解一、引言在图像处理领域,JPEG(Joint Photographic Experts Group)是一种广泛使用的有损压缩标准。

而在JPEG的压缩过程中,涉及到一种颜色空间转换——从RGB到YUV。

那么,为什么需要进行这种转换?又是如何实现的呢?本文将围绕“YUV编码JPEG原理”这一主题,详细解答这些问题。

二、YUV色彩空间首先,我们需要了解什么是YUV色彩空间。

YUV是用于电视系统中的一种颜色编码方法,其中Y表示亮度(Luma),U和V表示色度(Chroma)。

与RGB色彩空间相比,YUV更符合人眼对颜色的感知方式。

人眼对亮度变化的敏感度远高于对色彩变化的敏感度,因此,YUV可以将亮度信息(Y)和色度信息(U、V)分开存储,有利于提高压缩效率。

三、RGB转YUV在JPEG压缩过程中,第一步就是将RGB图像转换为YUV图像。

具体的计算公式如下:Y = 0.299R + 0.587G + 0.114BU = -0.147R - 0.289G + 0.436BV = 0.615R - 0.515G - 0.100B通过上述公式,我们可以得到一个Y分量和两个色度分量,这三个分量组合起来就可以表示原来的RGB像素。

四、离散余弦变换(DCT)接下来,我们需要对每个8x8像素的小块进行离散余弦变换(Discrete Cosine Transform,DCT)。

DCT是一种线性变换,它可以将图像数据从空间域转换到频率域。

在频率域中,图像的能量主要集中在低频部分,而高频部分的能量较小。

因此,我们可以通过量化过程来降低高频部分的能量,从而达到压缩的目的。

五、量化量化的过程就是将DCT系数映射到一个预先定义好的量化表中。

这个量化表是根据人类视觉系统的特性设计的,对于高频系数,其量化步长较大,这样可以减少高频部分的精度,进一步降低图像的数据量。

而对于低频系数,其量化步长较小,以保留更多的细节信息。

JPEG编码原理

JPEG编码原理

• 骤如下: • 正向离散余弦变换(FDCT)。 • 量化(Quantization)。 • Z字形编码(Zigzag Scan)。 • 使用差分脉冲编码调制(Differential Pulse Code Modulation,DPCM)对直流系数(DC)进行编码。 • 使用行程长度编码(Run-Length Encoding,RLE)对 交流系数(AC)进行编码。 • 熵编码(Entropy Eoding)。1、正向离散余弦变换 下面对正向离散余弦变换(FDCT)变换作几点说明。(1) 对每个单独的彩色图像分量,把整个分量图像分成若干个 8×8的图像块,如图所示,并作为两维离散余弦变换DCT 的输入。通过DCT变换,把能量集中在少数几个系数上。 • (2)DCT变换使用下式计算:它的逆变换使用下式计算: 上面两式中,C(u),C(v) = (2)-1/2,当u, v = 0;C(u), C(v) = 1,其他。f(i, j)经DCT变换之后,F(0,0)是直 流系数,其他为交流系数。 • 在计算两维的DCT变换时,可使用下面的计算式把两
• 量化 • 为了达到压缩数据的目的,对DCT系数f (u,v)需作 量化处理。量化处理是一个多到一的映射它是造成DCT编/ 解码信息损失的根源。在JPEG标准中采用线性均匀量化器。 量化定义为,对64个DCT变换系数f (u,v)除以量化步长 q(u,v),然后四舍五入取整。即量化器步长是量化表的元 素,量化表元素随DCT变换系数的位置而改变。同一像素 的亮度量化表和色差量化表不同值,量化表的尺寸也是64, 与64个变换系数一一对应。量化表中的每一个元素值为1 至255之间的任意整数,其值规定了对应位置变换系数的 量化器步长。在接收端需要进行逆量化,逆量化的计算公 式为: • • 不同频率的余弦函数对视觉的影响不同,量化处理是 在一定的主观保真度图像质量的前提下,可据不同频率的 视觉阈值来选择量化表中元素值的大小。根据心理视觉加 权函数得到亮度量化表和色度量化表。DCT变换系数 f (u,v) 除以量化表中对应位置的量化步长,其幅值下降, 动态范围变窄,高频系数的零值数目增加。

jpeg编码原理

jpeg编码原理

jpeg编码原理JPEG编码原理JPEG是一种常用的图像压缩格式,它可以将图像压缩至原始大小的1/10或更小,而且不会影响图像的质量。

JPEG编码原理是基于离散余弦变换(DCT)和量化技术。

1. 离散余弦变换(DCT)在JPEG编码中,图像被分成8x8个像素块,每个块都被视为一个矩阵。

通过对这些矩阵进行离散余弦变换(DCT),可以将每个块转换为一组频率系数。

离散余弦变换是一种将时域信号转换为频域信号的方法。

在JPEG中,每个块都被视为一个时域信号,并通过离散余弦变换将其转换为频域信号。

这些频率系数表示了该块中各种不同频率的分量。

2. 量化在经过DCT后,得到了每个块的频率系数。

但是由于人眼对于高频细节的感知能力较差,因此在JPEG编码中采用了量化技术来减少高频分量化就是将每个频率系数除以一个固定值,并四舍五入取整。

由于高频分量较大,因此它们被量化后会变得更小,从而减少了数据量。

3. 压缩在经过DCT和量化后,每个块都被转换为一组频率系数,并且高频分量已经被减少。

这些频率系数可以被进一步压缩,从而减少文件大小。

JPEG编码使用了霍夫曼编码技术来压缩这些频率系数。

霍夫曼编码是一种无损压缩技术,它可以将出现频率较高的符号用较短的编码表示,从而减少数据量。

4. 解压在解压JPEG图像时,首先需要将霍夫曼编码还原为频率系数。

然后对这些频率系数进行逆量化和逆离散余弦变换(IDCT),从而恢复原始图像。

逆量化是将每个频率系数乘以一个固定值,并四舍五入取整。

逆离散余弦变换是将每个块的频率系数转换回时域信号,从而恢复原始图像。

JPEG编码原理是基于离散余弦变换和量化技术的。

通过DCT将图像分解为一组频率系数,并采用量化技术减少高频分量,然后使用霍夫曼编码压缩这些频率系数。

在解压时,需要将霍夫曼编码还原为频率系数,并进行逆量化和逆离散余弦变换来恢复原始图像。

jpeg编码标准

jpeg编码标准

jpeg编码标准JPEG,全称为Joint Photographic Experts Group,是一种广泛应用于图像压缩的标准。

其名称包含三个主要部分:“联合”,“图像”,“专家组”。

专家组是一个处理特殊问题的专家团队,而JPEG 就是这些专家的研究成果被采纳并应用于图像处理的结果。

JPEG编码是一种有损压缩方式,它通过去除图像中的冗余数据来减小文件大小,同时尽可能地保留图像的重要信息,使得图像在查看或打印时仍然具有良好的质量。

这种压缩方式被广泛用于数字图像和视频的传输,包括网络传输和存储等。

二、JPEG编码标准的主要组成部分1. 离散余弦变换(DCT):JPEG使用了一种特殊的变换方法,称为离散余弦变换。

这种方法将图像从空间域转换到频率域,从而实现了数据的压缩。

通过离散余弦变换,我们可以将高频率部分(也就是图像中的噪声和细节)移除,只保留低频率部分(也就是图像的主要信息)。

2. 量化:在离散余弦变换之后,我们需要对变换后的系数进行量化。

量化过程是将变换后的系数映射到一个有限的离散值集合中。

这个过程有助于进一步减小文件大小,同时尽可能保留图像的质量。

3. 熵编码:熵编码是一种用于减少文件大小的额外技术。

JPEG 使用了一种称为游程编码的技术来进行熵编码,它能够进一步减少文件中的冗余数据。

4. 霍夫曼编码:在JPEG标准中,霍夫曼编码被用于进一步优化文件大小。

它是一种无损的压缩技术,通过创建短的、重复的符号的平均值来减小文件大小。

三、JPEG编码的应用场景JPEG编码广泛应用于数字图像和视频处理领域,如网络传输、存储、打印和显示等。

它尤其适用于需要大量图像或视频数据的场景,如社交媒体、在线购物、视频会议等。

四、JPEG编码的优缺点优点:1. 高压缩率:JPEG编码能够有效地减小图像和视频的文件大小,而不会显著影响图像的质量。

这使得它成为了一种非常实用的技术,尤其是在需要大量数据传输和存储的场景中。

jepg和jepg2000编码方法 -回复

jepg和jepg2000编码方法 -回复

jepg和jepg2000编码方法-回复JPEG(Joint Photographic Experts Group)和JPEG2000编码方法是用于图像压缩和存储的两种常见技术。

JPEG是一种基于离散余弦变换(DCT)的有损压缩方法,而JPEG2000是一种基于小波变换的有损/无损混合压缩技术。

本文将详细介绍这两种编码方法的原理、步骤和特点。

第一部分:JPEG编码方法JPEG是一种广泛应用于图像压缩的方法。

它采用的离散余弦变换(DCT)的基本思想是将图像转换为频域表示,然后通过量化和编码过程来实现压缩。

下面是JPEG编码方法的详细步骤:1. 图像预处理:JPEG编码方法通常以8×8的图像块为单位进行处理。

首先,将图像分割成8×8的图像块,并对每个块进行预处理操作。

这包括颜色空间转换(如RGB到YUV),亮度调整(亮度分量即Y值)和色度调整(色度分量即U和V值)。

2. DCT变换:对预处理后的每个8×8图像块应用DCT变换。

DCT变换是一种将空域图像转换为频域表示的方法。

它将图像块分解成一系列的频率分量,其中低频分量代表图像的整体结构,高频分量代表图像的细节信息。

3. 量化:对DCT变换得到的频域系数进行量化。

量化是指将连续的频域系数转换为离散的符号表示,以减少数据量并实现压缩。

在JPEG中,使用的是一种均匀量化表,通过将频域系数除以对应的量化步长并取整,将系数进行量化。

量化步长越大,丢失的信息越多,压缩比也就越高。

4. 编码:对量化后的频域系数进行熵编码。

熵编码是一种无损压缩算法,可以进一步减小数据量。

在JPEG中,使用的是哈夫曼编码,其中频率较高的符号用较短的码字表示,频率较低的符号用较长的码字表示,从而实现数据的高效编码。

第二部分:JPEG2000编码方法JPEG2000是一种基于小波变换的新一代图像编码方法。

与JPEG不同的是,JPEG2000不仅可以实现有损压缩,还可以进行无损压缩。

jpeg的霍夫曼编码

jpeg的霍夫曼编码

jpeg的霍夫曼编码
霍夫曼编码是一种无损数据压缩算法,其基本原理是利用数据的概率分布来构建最优前缀码,并对数据进行编码。

JPEG图像的霍夫曼编码是图像压缩中的一种常见方法。

在JPEG图像的霍夫曼编码中,首先需要对图像进行分块处理,通常是将图像分成8x8的小块。

然后,对每个小块进行DCT(离散余弦变换)变换,将图像从空间域变换到频率域。

在频率域中,图像的能量主要集中在少数几个系数上,因此可以忽略一些低频系数,从而达到压缩的目的。

在霍夫曼编码中,对每个DCT系数赋予一个二进制码,码字的长度与该系数的概率成反比,即出现概率越高的系数对应的码字越短,而出现概率越低的系数对应的码字越长。

这样,在编码时可以有效地减少数据量,从而达到压缩的目的。

在JPEG图像的霍夫曼编码中,通常会将图像分成多个层次进行编码,每个层次对应不同的压缩比和图像质量。

用户可以根据需要选择不同的层次来获取不同的压缩效果和图像质量。

总的来说,JPEG图像的霍夫曼编码是一种有效的图像压缩方法,能够有效地减少数据量,同时保持较高的图像质量。

JPEG编码原理概述

JPEG编码原理概述

JPEG编码原理概述本⽂简要概述 JPEG 基本系统的编码流程。

编码需要经过 DCT、量化、Z 序列化、系数编码(DC 差分脉冲调制编码、DC 系数中间格式计算、AC 差分脉冲调制编码、AC 系数中间格式计算)、熵编码五个步骤,最后按指定格式进⾏封装,成为⼀张 JPEG 图⽚。

图⽚被分割为若⼲ 8×8 块后,每个块进⾏离散余弦变换(DCT),其⽬的是将图像块按频率分解,得到其频谱。

类似傅⾥叶变换,DCT 的⽬的是将图像分解为不同频率的基本分量的线性组合。

事实上,DCT 是 DFT 抹去虚(奇)部的特殊形式。

由于实偶函数的 DFT 仍然是实偶函数,我们将时域函数倍增延拓成偶函数,于是频域也成为实偶函数。

当然在存储时可以折半以消除冗余。

为何要求 DCT?对每⼀个图像块,如果⼀定要舍弃,我们会尽可能多保留其低频分量,⽽降低⾼频分量的分辨率。

同时,⾼频分量通常也的确是较少的,⽽直流分量,虽然数值⼤,但相邻块的直流分量差别较⼩。

因此我们对低频分量取较低的量化系数,⽽对⾼频分量取较⾼的量化系数。

所谓量化,就是将浮点(实现上可能只是以更⾼精度的整数表⽰形式存在)值 x 转化为阶跃的整数值 y 表⽰的过程,⽽ y=round(x/q) 中的 q 就是量化系数。

随后我们进⾏ Z 序列化,将⼆维矩阵按 Z 形拍扁成向量。

考虑到相邻块 DC 分量差异⼩,我们⾸先将 DC 分量与上⼀个块做差。

这个过程称为差分脉冲调制编码。

如今,向量中存在⼤量的 0,⽽绝对值⼩的数字出现的概率也远⼤于绝对值⼤者。

我们采⽤⾏程编码(RLE),将序列切成形如 0,0,…,0,x 的若⼲段,每段由 y(≥0) 个 0 和⼀个 x(>0) 组成,记作 (y,len(x),x),其中 len(x) 是 x 在反码⼆进制表⽰下的长度。

这种三元组表⽰形式称为中间格式。

(注:这⾥图上将 DC 分量也⼀把揉进去了,严格来说是分开的,RLE 只考虑 AC 分量)现在考虑 (y,l,x) 三元组的编码。

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

上式中,R、G、B 和 Y、Cr、Cb 都是 8bit 无符号整数,取值范围为 0-255。另从上式可 看到,计算过程会涉及到小数运算,也就是 浮点运算,所以有必要考虑算法优化,把浮点数 运算转换为移位与加法运算,从而可使计算机更快速的进行处理。 RGB 与 YCrCb 之间的逆变换式如下:
R 1 1.4020 G = 1 − 0.7141 0 1 B
DCT 变换本身并不降低图像质量,而是在丢弃图像细节的对极小幅度频率的忽略过程中降低 了图像质量。 从 DCT 变换式可以看出, 对于每一个 DCT 值 F(u,v)都需要进行 64 次乘法, 完成 8×8=64 个 DCT 系统则需要 64×64=4096 次乘法。对包含了大量 8×8 图像块的整幅图像来说,计算 量之大可想而知。由此可见,计算 DCT 是整个 JPEG 压缩过程中最耗时的操作,很多人研究 过快速算法,更为有效的方法是在 CPU 中增加新指令(专用 CPU),以便于 DCT 运算。 下面以一个 8×8 图像块的变换过程进行示例说明: 原始图像的像素矩阵为: 52 63 62 63 67 79 85 87 55 59 59 58 61 65 71 79 61 55 68 71 68 60 64 69 66 90 113 122 104 70 59 68 70 109 144 154 126 77 55 65 61 85 104 106 88 68 61 76 64 69 66 70 68 58 65 78 73 72 73 69 70 75 83 94
的图像时,要使用的记录容量为 1024×768×3=2359.296K 字节。需要补充说明的是,文件 作为数据记录载体,除数据内容外还应提供必要的有关存储格式的说明以方便以后读取(具 体可参考相关格式的标准化资料), 因此实际存储使用的文件要比上面计算的数据容量稍大, 如 1024×768 的 24 位位图文件(bmp 文件)为 2359.350K 字节。 2.1 色彩空间 (color space) 在图像处理中,可以把 RGB 空间表示的彩色图像变换到其他色彩空间。常用的色彩空 间有三种:YIQ,YUV 和 YCrCb。不同的色彩空间通常是对应于不同的物理设备特性,见下 表: 色彩空间 YIQ YUV YCrCb 适用范围 NTSC 制彩色电视 PAL 和 SECAM 制彩色电视 计算机显示器
上表中,Y 表示亮度,U 和 V 分别表示色差,是构成彩色的两个分量。 YUV 表示法的意 义在于其亮度信号(Y)和色度信号(U、V)相互独立,由 Y 信号分量构成的灰度图像与用 U、V 信号构成的另两幅单色图像之间没有关联。因此可以对这些单色图分别进行编码。仅使用亮 度信息时可以构成我们平时见到的黑白灰度图像。 由于所有的显示器最终都只能以像素方式显示图像, 所以无论任何色彩空间的图像信息 在进行显示时都必须转换到 RGB 空间,也就是还原 RGB 分量。 在显像管方式的电视机中,考虑了人眼的视觉特性和阴极射线管(CRT)的非线性特性之 后,RGB 和 YUV 的对应关系用下面关系式近似表示为:
2.2 存储空间压缩 1.7720 Cb
JPEG 可以处理连续色调的灰度图像或彩色图像。对于灰度图像, 每个像素可以是 8-bit 或者 12-bit 的灰度值。 baseline 模式只要求处理 8-bit 图像 (某些医学影像是 12-bit 的) 。 对于彩色图像, 原则上可以将每个色彩分量看作是一幅灰度图像来进行处理。 不过如前所述, 由于人眼对色彩不敏感,因此通常把彩色信息转换为亮度和色差信息,并对色差信息进行下 采样(downsamping),从而提高压缩率。 色彩变换基本不影响图像质量,最多是由于浮点数取整操作带来的微小差别。所以可认 为是无损变换。 所谓下采样实际上是把原始图像中每 4 个相邻像素构成的小方块进行平均, 然后作为一 个像素进行图像重构。因此通过下采样可以把原图像变换为 1/4 大小的新图像。 这种变换只 应用于色差图像,而亮度图像保持原始内容。 JPEG 进行图像处理时,首先要把输入图像按从左到右,从上到下的顺序分成 8×8 像素 的子图像块,编码过程本质上是对一连串的 8×8 灰度图像进行处理。如果原图像的高度或 者宽度不是 8 的整数倍,还需要对原图像进行扩大,保证图像的高和宽都是 8 的整数倍。当 然,在生成的 JPEG 图像文件中,要记录原始图像的大小,并在解压缩时复原。由于图像的 填补和分块是伴随着变换过程同时进行的,所以并不增加复杂度。 下面以一个 8×8 的图像块为例对存储空间的压缩加以说明。 对于位深为 8-bit,RGB 格式的 8×8 像素图像,其大小为: 8×8×3=192 字节 现在以 YCrCb 方式来表示同一图像。 亮度图像仍然保持原内容,因此大小为 8×8=64 字节。而对于 Cr 和 Cb 分量的图像,由于下采样都变成了 4×4 像素的图像,两幅图像的大 小为 4×4×2=32 像素。这样,变换得到的图像其大小为: 8×8+4×4×2=64+32=96 像素 可见,根据人眼的色彩不敏感特性进行处理, 新图像所占用的存储空间只有原图像的一 半,存储空间的压缩量达到了 50%。
图 2 一维 DFT(上)和 DCT(下)的固有周期 因此为了兼顾压缩效果和计算复杂度,JPEG 压缩选择了 8×8 的 2 维 DCT 算法。 3.2 2 维 DCT 算法 8×8 矩阵的 2 维 DCT 变换的定义是:
F (u , v ) =
7 7 1 (2i + 1)uπ (2 j + 1)vπ C (u )C (v) ∑∑ f (i, j ) cos cos 4 16 16 i= 0 j =0
3.信息数据压缩 3.1 数据压缩方法 要利用人眼视觉的细节不敏感性,需要选择一种变换算法,以帮助提取图像信息中的主 要能量,而丢弃那些影响很小或者没有影响的微小能量。适合图像压缩的变换有很多种,例 如 Karhunen-Loève 变换(KLT, 即主成分分析)、 离散傅立叶变换(DFT)、 离散余弦变换(DCT)、 Walsh-Hadamard 变换(WHT)等。 “变换”的基本思想是,找到一组基,让图像在这组基下能量集中(少量系数值较大, 其余系数接近 0)。变换必须是可逆的(否则无法解码),因此变换本身不能压缩信息。不 过通过随后的“量化”步骤将影响不大的系数略去,即可达到压缩的目的。 在数据压缩方面最佳的变换是 Karhunen-Loève 变换,但实际系统中一般不用它。 原因 有两点: 1) KLT 得到的基与输入数据相关,意味着除了需要把系数传给解码器,还需要把基传 给解码器。而且每个分块的基往往是不同的!这使得压缩效果大打折扣。 KLT 需要计算协方差矩阵的特征向量,计算量相当大。
其中,当 u=0,v=0 时,C(u)=C(v)=1/ 2
当 u 和 v 取其它值时,C(u)=C(v)=1 这里,f(i,j)为对应的像素数据,而 F(u,v)就是 DCT 值。在进行上式的计算前,首先 要把像素值减去一个 128,使数据取值范围从[0,255]移到[-128,127]。由上式计算得到的 F(u,v)就是 DCT 系数,每个 8×8 分块经过计算都将得到 64 个 DCT 系数, 其中,F(0,0)称为直流系数,其它 63 个系数称交流系统。在典型的连续色调图像中, 相邻像素之间往往差别不大, 这意味着空间频率的幅值主要集中分布在信号的低频部分。 对 典型的 8×8 图像块而言,大多数频率的幅值是 0 或者接近 0,因此在编码时可以被忽略。
0.114 R Y 0.299 0.587 U = − 0.147 − 0.289 0.436 G 0 . 615 0 . 515 0 . 100 V − − B
即: Y=0.3R+0.59G+0.11B U=B-Y V=R-Y 计算机所使用的数字域色彩空间与电视所使用的模拟色彩空间不同,它们的分量使用 Y、Cr 和 Cb 来表示,与 RGB 空间的转换关系如下:
0.5870 Y 0.2990 Cr = 0.5000 − 0.4187 Cb − 0.1687 − 0.3313
0.1140 − 0,0813 0.5000
R 0 G + 128 B 128
图 1 重构误差与分块大小之间的关系
可以看出,从重构误差来说, DCT 比 DFT 和 WHT 的效果要好。DCT 优于 DFT 的另一个原 因是由于 DFT 的边缘振铃( Gibbs 现象使相邻图像分块之间的边界变得可见)小,减少了边 缘效应。再者, DCT 的固有周期比 DFT 长一倍,边界不间断。如下图的比较。
2)
DFT、WHT、DCT 的基是固定的,与输入无关。在与输入无关的各种变换中,非正弦变换 (如 WHT)最容易实现,正弦变换(如 DFT 和 DCT)的信息压缩能力更接近最佳的 KLT 方 法。DFT 是复空间的正交变换(系数是复数),DCT 是欧式空间的正交变换(系数是实数), 因此 DFT 的系数比 DCT 多一倍。不过实数的 DFT 的系数是共扼对称的, 实际所需的存储空间 与 DCT 相同。 图像压缩的质量不但与所使用的变换方式有关,还和分块大小有关。最常采用的分块尺 寸为 8×8 和 16×16。下图显示了以不同分块方式进行变换所产生的图像重构误差。下图是 在首先计算分块变换后,截取 75%的系数,然后对得到的数组进行反变换来重构图像所得到 的数据。
JPEG 编码原理
1.JPEG 编码概述 JPEG 是 Joint Photographic Experts Group 的缩写,即 ISO 和 IEC 联合图像专家 组,负责静态图像压缩标准的制定,这个专家组开发的算法称为 JPEG 算法,并已成为当前 的通用标准,即 JPEG 标准。作为一个基本的图像压缩方式,JPEG 已经得到了广泛的运用。 遵照 JPEG 标准建立的图像文件使用的格式称为 JFIF 格式, 文件名称的后缀为“.jpg”或者 “.jpeg”。 需要说明的是,JPEG 是一种文件压缩处理的标准,而 JFIF 是一个文件格式的标准,它 们属于不同的概念范畴。JFIF 是 JPEG File Interchange Format 的缩写,也即 JPEG 文 件交换格式, 是一种使用 JPEG 图像压缩技术存储图像的方法, 这种方法给用户提供了在不 同的计算机和应用程序间传输 JPEG 图像的标准。 JPEG 压缩算法是一种有损压缩算法,它根据人眼视觉特性剔除图像信息中视觉不敏感 的成份,从而实现图像信息的高度压缩。所根据的视觉特性主要为:高频不敏感性和色彩不 敏感性。具体来说,人眼 不能察觉到图像中的细微部分,这称之为高频不敏感性。人眼所包 含的对亮度敏感的柱状细胞有 1.8 亿 个,而对色彩敏感的椎状细胞仅有 0.08 亿个,因而眼 睛对亮度的敏感程度要远大于对色彩的敏感程度,这就是色彩不敏感性。 具体来说,对原始图像信息(直接包含每个具体像素的数据的图像,如位图等)进行 JPEG 编码需要以下 3 个步骤: 1) 2) 3) 信息空间压缩。对信息所占用的空间进行优化,初步压缩图像信息。 信息数据压缩。对图像数据本身的冗余度进行解析处理,实现数据压缩。 数据编码压缩。对经前 2 步处理所得到的数据进行编码优化,从而进一步压缩数 据量,最终形成目标 JPEG 代码。 2.信息空间压缩 原始图像信息是直接包含了每个具体像素的数据信息, 对应于自然世界中的实际光色信 息。比如我们在电脑屏幕上看到的图像,它们都是由许多像素点组成的,一幅 1024×768 的图像所包含的像素量为 1024×768=786432 个。什么是像素呢?像素是我们在工程上表达 自然光色所设置的一个最小单元。 比如一张彩色照片中的像素大小取决于感光材料的粒度大 小,而对于电脑显示屏,其像素大小则取决于制造精度以及实际应用要求,高分辨率的显示 器能再现的像素要比普通显示器更加精细,因而可达到非常细腻的显示效果。 通常,为了准确地记录一个像素,要使用三个字节,分别用来表示自然光中的红、绿和 蓝这三种颜色,称为三基色,用 R、G 和 B 表示。由于每个颜色都使用一个 8 位的二进制字 节进行表示,因此每个颜色的取值范围都是 0-255,专业上我们说这是 8 位位深。以三基色 的不同配比,就能再现任意自然色。由于每个像素都由三基色进行表示,因此一个像素总的 位深就是 8×3=24 位,所以 24 位色被称为真彩色。以 RGB 方式记录如前所述的 1024×768
相关文档
最新文档