📜  JPEG数据压缩过程(1)

📅  最后修改于: 2023-12-03 14:43:07.801000             🧑  作者: Mango

JPEG数据压缩过程

JPEG是一种广泛使用的图像压缩格式,它利用离散余弦变换(DCT)和量化技术将图像压缩。以下是JPEG数据压缩过程的步骤:

步骤1:图像分块

首先,将图像分割成8x8的块。每个块包含64个像素值,即64个数字。

步骤2:离散余弦变换(DCT)

对于每个块,我们使用离散余弦变换(DCT)将其转换为频域表示形式。 DCT是将块从空域转换到频域的一种数学技术。在这里,我们使用DCT将每个块从64个像素值转换为64个频谱系数。

步骤3:量化

当图像块被转换为频域表示形式时,我们可以使用量化技术来进一步压缩数据。 量化是将数值除以一个特定的值并四舍五入为最接近的整数的过程。对于JPEG,我们使用的是一个特殊的量化矩阵,这个矩阵非常巧妙地平衡了保留图像质量和压缩数据量之间的关系。

步骤4:熵编码

经过量化处理,频域系数的取值范围大大降低,出现的取值也趋向于集中在零值与少数非零值之间。而一般图像如果进行非压缩存储,这些系数为了能够存储下来都需要进行编码,使用一个指定编码方案,将每个系数值转换为一系列二进制数,然后存储。因为在经过量化以后,很多系数值都变成了0,JPEG使用了一种称为“游程编码”的技术,它可以有效地编码0值的系数,在编码非零系数时可以使用哈夫曼编码。

步骤5:重组块

完成了步骤2到步骤4之后,我们将频谱系数拼成原来的块大小并将所有的块合并成一副完整的图像。这个过程称为“重组块”。

完整过程的示意图:

上图来自维基百科

在实际JPEG图像压缩的处理过程中,为了提高压缩效率和压缩比,还有很多相关的技术和处理细节,这些内容在此不再列举,有兴趣的读者可以参考相关的学术论文和技术资料进行深入了解。