2026-01-30 05:06:31
JPEG是一种广泛使用的图像压缩格式,其核心原理是通过一系列步骤将图像数据转换为更紧凑的形式,同时尽量保持图像质量。以下是JPEG格式的原理:
色彩空间转换:JPEG首先将图像从RGB色彩空间转换到YCbCr色彩空间。Y代表亮度(Luma),Cb和Cr代表色度(Chrominance)。这种转换是基于人眼对亮度变化比对色彩变化更敏感的特性。
降采样:在YCbCr色彩空间中,色度通道(Cb和Cr)通常会被降采样,这意味着它们的分辨率会被降低。常见的降采样比例是2:1水平降采样和2:1垂直降采样,或者1:1:1(不降采样)。
分块:图像被分割成8x8像素的小块,这些小块将独立进行后续处理。
离散余弦变换(DCT):每个8x8的块都会经过DCT变换,将空间域的像素值转换为频率域的系数。DCT能够将图像中的能量集中到少数低频系数上,而高频系数则接近于零。
量化:DCT系数会被量化,即除以一个量化矩阵中的对应值并四舍五入到最接近的整数。量化是有损压缩的关键步骤,它减少了数据的精度,尤其是高频部分,因为人眼对这些细节不太敏感。
熵编码:量化后的系数会经过熵编码,如霍夫曼编码,以进一步减少数据量。这一步是无损的,它利用了系数中存在的统计冗余。
直流系数编码:每个8x8块的左上角第一个系数(直流系数,DC)表示该块的平均亮度。相邻块的直流系数通常相差不大,因此会采用差分编码。
交流系数编码:其余63个系数(交流系数,AC)按照特定的扫描顺序(通常是锯齿形顺序)排列,并进行行程编码(Run-Length Encoding, RLE),以利用连续零值的冗余。
比特流组织:编码后的数据会被组织成一系列标记(markers),这些标记包含了图像的尺寸、色彩空间、量化表、霍夫曼表等信息,以及实际的图像数据。
文件格式:最终的数据会被写入到JPEG文件中,通常以.jpg或.jpeg为扩展名。
JPEG的压缩率可以通过调整量化矩阵来控制,较高的量化值会导致更高的压缩率和更多的图像质量损失。由于JPEG是有损压缩格式,每次保存图像都会导致质量的进一步下降,因此它不适合用于需要多次编辑和保存的图像。