MPEG-4 编码涉及多个图像和视频处理的核心知识,主要包括以下几个方面:
变换编码(如 DCT)
量化(Quantization)
熵编码(Huffman, Arithmetic coding)
分析视频帧之间的运动(块匹配)
用运动向量进行帧间预测,减少冗余
I 帧(关键帧)
P 帧(前向预测)
B 帧(双向预测)
把空间域的图像块转换为频域
有利于压缩,因为高频部分可以丢弃更多信息
控制压缩程度和画质
不同区域、不同频率可使用不同量化步长
最后一步压缩,尽量用更少比特表示常见模式
Huffman 或 CABAC(H.264)
RGB → YCbCr
对色度通道做 4:2:0 子采样以减少数据量
如何打包视频、音频流,形成 .mp4 文件
时间戳、同步、多路复用
下面是 H.264(又叫 AVC) 和 MPEG-4 Part 2(常简称 MPEG-4) 在技术上的主要不同点,简单对比如下:
MPEG-4:整像素或半像素精度,支持简单块匹配。
H.264:更高精度(到四分之一像素),支持多参考帧,运动估计精度和灵活度更高。
MPEG-4:P 帧、B 帧支持较少预测模式。
H.264:支持多种块大小(16x16 到 4x4),多参考帧,预测更细致。
MPEG-4:使用整数近似的 8x8 DCT。
H.264:使用更简单快速的整数变换(4x4 或 8x8),有更多自适应量化技术。
MPEG-4:主要是 Huffman 编码。
H.264:支持更高级的 CABAC(上下文自适应二进制算术编码)和 CAVLC,压缩效率更高。
MPEG-4:基本无去块滤波。
H.264:内建去块滤波器,提升低码率下的画质。