压缩与视频编码

无损压缩的特征:

信息保留:所有的原始数据在压缩后都会被保留,解压缩后与压缩前完全一致。
使用场景:无损压缩通常用于文本文件、程序代码、图像(如 PNG 格式)、音频等需要保持原始质量的文件类型。
技术实现:ZIP压缩结合了霍夫曼编码和LZ77等算法,确保在压缩过程中不丢失任何数据。

有损压缩:

数据丢失:编码过程会舍弃一些原始数据(通常是人眼或人耳不易察觉的细节),以换取更高的压缩率。
不可逆:压缩后的数据在解码时不能完全恢复到原始的未压缩状态,尤其是在高压缩率下,细节丢失会更为明显。
压缩效率高:相比无损压缩,有损压缩能够显著减小文件大小,适用于带宽和存储空间有限的场景,如在线视频、图片分享等。
感知质量优化:有损压缩会根据人类视觉或听觉系统的特性,优先保留对人类感知更重要的信息(如低频部分),舍弃不容易察觉的高频细节和噪声。

视频编码过程

1.颜色空间转换(RGB → YUV/YCbCr)
2.分块处理(通常为 8×8 或 16×16)
3.预测编码(帧内/帧间)
4.变换(DCT 频域变换)
5.量化(压缩高频系数)
6.熵编码(进一步压缩)
7.输出码流(用于存储或传输)

1. 颜色空间转换

将原始视频/图像的 RGB 颜色空间转换为 YUV 或 YCbCr 颜色空间。这样做是因为人眼对亮度(Y)信息更敏感,而对色度(U 和 V)信息不敏感。因此,色度信息可以被适当压缩而不明显影响感知质量。将 RGB 转换为 YUV/YCbCr 颜色空间后,色度分量(U 和 V)的数据量可以被压缩,但这个步骤的压缩程度有限。

2. 分块处理

将图像分成小块(如 8×8 或 16×16 像素的块)。编码器对每个块分别进行处理。本身并不压缩数据,而是将图像分为更小的块,便于后续处理。

3. 预测编码

根据相邻块或前后帧的图像信息,预测当前块的内容,通过帧内预测和帧间预测减少冗余信息,能压缩一部分数据。分为两种主要类型:
帧内预测(Intra Prediction):在同一帧内,通过相邻块预测当前块。
帧间预测(Inter Prediction):通过参考前后帧的相似块,预测当前块。

4. 变换(DCT)

将每个块的像素值通过离散余弦变换(DCT)转换到频域,得到一组频域系数。DCT 能集中图像的能量到低频部分,从而使高频部分(细节和噪声)可以进行压缩。将图像从空间域转换到频域,便于后续压缩,但这个过程本身并不直接压缩数据,为量化做数据准备

5. 量化

对变换后的频域系数进行量化。通过舍弃或简化高频系数,实现数据压缩。量化过程中,低频部分被精确保留,而高频部分被大幅度压缩或丢弃。通过舍弃或简化高频细节信息(尤其是人眼不易察觉的细节)大幅减少了需要存储和传输的数据量。它将变换后的频域系数除以量化步长并四舍五入成整数,导致高频分量(通常是图像中的细节和噪声)被大量压缩甚至完全舍弃。
量化过程中丢失的高频信息无法恢复,导致不可逆的有损压缩。这也是压缩率提高的主要来源。量化步骤也是压缩数据量最多的环节

6. 熵编码

量化后的数据进行熵编码,如霍夫曼编码或算术编码。熵编码进一步减少数据冗余,通过对数据的统计特性进行编码,以更少的比特数表示高频出现的数据。压缩幅度相对较小。

DCT 的基本原理

DCT 的核心思想是将图像数据从 空间域(像素的明暗值)转换到 频域(频率成分)。在频域中,大多数自然图像的数据能量集中在低频部分,而高频部分则包含细节和噪声。通过这种转换,图像可以通过量化低频成分而保留主要信息,而高频成分可以被去除或减少,达到压缩的目的。

空间域与频域

空间域:图像的空间域就是我们看到的像素点阵,每个像素的值代表图像中该位置的亮度(灰度图)或颜色(彩色图)。
频域:在频域中,图像信息被表示为不同频率的组合。低频部分代表了图像中的平滑变化(如大面积的背景颜色),高频部分则包含了图像中的细节和边缘。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容