本章节将详细描述 HEVC 中的残差编码。变换宏块中重建残差信号,叠加上预测宏块中的预测信号,用于编码块的重构。从概念上讲,SPEC 规范提供了四种不同的方式来编码残差。
第一种也是最常用的一个选项,在编码端,原始块和预测块之间的差值会被变换,变换系数会被量化并编码成比特流。在解码端,通过反量化和反变换,量化系数被重构为解码后的残差块,会被叠加到预测块上。该方法通常提供了编码残差信号的最紧凑表示形式。 SPEC 规范仅仅规定了解码端反变换的定义。此处,我们给出编码端和解码端的讨论。
作为第二个选项,对于 4x4 TU 单元,SPEC 给出了不做转换,直接对未转换信号数据进行量化的选项。该方法允许残差表示而不带来振铃伪影,这可以通过量化变换系数的逆变换引入。因为残差信号没有通过变换来去相编码,该方法仅适用于高比特流并且预测误差比较小的块。
第三种情况是,既不做变换又不做量化。残差数据直接编码,而不进行变换或量化步骤。该方法考虑到帧内/帧间残差数据的完美重建,因此它是编码块的无损代表。
第四个也是最后一个选项是样本级别的 PCM 直接编码。这种情况下,没有预测,编码单元的样本数据直接编码到视频流中。因为这种表示考虑到了原始输入样本值得完美重建,相应的比特率代价可以看做编码对应编码单元的上限。
接下来,变换、量化和编码会在8.1-8.2节详细描述。无变换、无变化和无量化、PCM编码模式会在8.3-8.5节详细描述。
HEVC 的变换和量化被指定使用定点整数操作,该操作的中间值和输出值不会超过 16 位长度。该限定是通过多位移操作实现的,它被插入到主要步骤中。
变换矩阵的构造将在 8.1.1 和 8.1.2 节介绍;实现 16 位约束的定点实现将在 8.1.3 节描述。
HEVC SPEC 规范包括四个整数逆变换矩阵尺寸 4x4、8x8、16x16、32x32。这些变换矩阵与相同尺寸的 DCT-II 矩阵是整数相似的,目的是保留 DCT 系数结构。