知识卡片
整数化变换消除编解码端的浮点失配
内容
原始DCT含余弦函数,计算必须用浮点数,这带来两个问题:舍入误差,以及编码器和解码器若使用不同硬件/编译器可能出现浮点计算结果不完全一致,导致反变换后编解码两端的参考图像出现细微差异并逐帧累积放大(漂移)。H.264/AVC开始采用整数DCT,把变换矩阵元素近似成整数比例,配合移位和加法运算,从根本上消除了跨平台浮点误差问题。H.265/HEVC进一步改进:H.264把系数放大2~3.16倍来简化计算,H.265则放大128倍以保留更高精度,牺牲一点点计算量换来更接近浮点DCT的压缩性能。这说明”用整数近似浮点运算以保证跨平台确定性”不是一次性妥协,后续版本还会在可承受的复杂度范围内不断把这个近似做得更精确。
参考来源
《新一代高效视频编码H.265/HEVC:原理、标准与实现》第5章《变换编码》