版本比较
标识
- 该行被添加。
- 该行被删除。
- 格式已经改变。
以JPEG算法为例,了解图像压缩与编码原理。
提示 |
---|
本篇仅仅是对以下视频的补充,关于JPEG算法原理这个视频已经讲解得很清楚了,建议以视频学习为主: |
图像压缩的生物学原理
人眼对图像中的高频部分相对不敏感,可以通过保留图像的低频部分,丢弃高频部分,实现对图像进行压缩。人眼对图像中的高频部分相对不敏感,可以通过保留图像的低频部分,丢弃高频部分,实现对图像进行压缩。(和音频HE AAC中的SBR技术原理类似)
所谓图像的高频部分,指的是画面变化复杂的部分,而低频部分,指的是画面比较连续的部分,比如颜色相近的大面积色块。以下面的图片为例:
人眼可以很好得识别完整的树干,石头的轮廓,但对于稀疏阴影的变化,落叶堆中的小草,叶片丛中的某几片叶子,人眼则不能很好地识别。树干、石头这些对应的就是低频信号,阴影、落叶堆、叶片丛对应的就是高频信号。将这些高频信号丢掉一部分,让其变模糊一点,对人眼识别画面并不会造成很大的影响,这就是JPEG算法压缩的生物学原理。
关于图像的高频、低频的更详细说明可参考以下链接:
提示 |
---|
|
JPEG算法处理流程
色彩空间转换
将RGB转换为YUV,形成亮度(Y)、蓝色色度(Cb)、红色色度(Cr)三个通道的分量。
色度缩减采样
Chrominance Downsampling,将YUV444转换成YUV422或YUV420,降低U通道和V通道的数据量。
离散余弦变换
对缩减采样后的YUV每个通道执行离散余弦变化(DCT/Discrete Cosine Transform),将其从空域转换成频域。
理解离散余弦变换的最好办法是从傅立叶变换开始,傅立叶变换可以将一个周期性的波形分解成一堆的不同周期的正弦函数的叠加,像下面这样。
Image Added
量化
对经过离散余弦变化后的系数表进行量化,也就是除以一组系数,得到量化后的值。量化系数决定了图像压缩的程度,系数越大,高频信号丢失得越多,压缩比越大,图像还原后就越模糊。对经过离散余弦变化后的系数表进行量化,也就是除以一组系数,得到量化后的值。量化系数决定了图像压缩的程度,系数越大,高频信号丢失得越多,压缩就比越大,图像还原后就越模糊。
游程编码与霍夫曼编码
使用zigzag的方式对量化后的8x8方格进行游程编码,以便于尽量压缩连续多0的,再对流程编码后的数据进行堆夫曼编码,进一步压缩数据的长度。使用zigzag的方式对量化后的8x8方格进行游程编码,以便于尽量压缩连续多0的,再对游程编码后的数据进行霍夫曼编码,进一步压缩数据的长度。
JPEG算法局限性
目录 |
---|