其中: 是残差块第 行第 列的元素值, 是变换系数矩阵 中的第 行第 列的DCT系数。而系数 定义如下:
(2.2)
对于4x4残差块,其DCT变换可表示为 (薛,2004):
(2.3)
其中, 是输入的残差块矩阵, 、 、 分别取值为 、 和 。
由于上述变换存在实数运算,在解码接受端,对应的反变换同样存在算法精度下降的弱点。因此,H.264给出了一种新的方案,尽量避免浮点运算,引入整数余弦变换方法,降低解码后图像的失真。
矩阵 可转化为下列表达式(毕, 2005; Transform, PDF):
(2.4)
式中, 。算符 的含义是左右两个矩阵中具有相同行号和列号的元素直接进行相乘。
为进一步降低运算量,对(2.4)式进行适当调整,调整后的 、 、 值分别为 、 、 。同时,对(2.4)式进行变形。得到(毕, 2005; Transform, PDF):
(2.5)
在上式中, 、…、 依次被设置为1、-1、2和-2。通常,称(2.5)式为整数余弦变换ICT。由于整数余弦变换中 部分的功能实现是放在量化步骤中完成的。因此,实际意义下的整数余弦变换的结果是(毕, 2005):
(2.6)
式(2.6)所确定的变换也可称为核心变换。
2.2 量化
在视频编码中,为了节约传输带宽,降低编码码率,H.264引进了量化方案[8]。根据不同的量化参数 确定量化步长,从而根据网络带宽和用户的需求决定生成的码率和解码后的图像质量。H.264的量化过程可描述如下(Transform, PDF):
(2.7)
其中, 是式(2.6)中矩阵 的第 行 列元素, 为 经量化所得到的结
果。 函数表示 的正负号。 用于降低除法过程中的截断误差。在按帧间模式编码情况下, 通常设置为 。在帧内模式情况下, 通常设置为 。
和 通过下列方式求得(Transform, PDF)。
(2.8)
是由位置 和 决定的。 取(2.5)式中 矩阵的第 行 列的元素。例如, 时, 。 是由量化参数 决定的。
3 .全零块检测算法的研究
3.1 全零块检测的研究背景
在H.264编码标准中,P帧中的宏块可按帧间或帧内方式编码。通常在7种帧间模式(Inter16x16、…、Inter4x4)和两种帧内模式(Intra16x16和Intra4x4)中选择出最佳的编码模式。对于帧间方式中的每种预测模式,将运动预测后的残差信号以4x4块为单位进行整数余弦变换和量化等一系列的操作。反变换后的残差信号再与预测信号相加,得到重建的宏块信息。最后,计算原始宏块与重建宏块的像素差的平方和,作为模式选择的重要依据。因此,在每种帧间模式下,每个亮度4x4块都需执行一次变换和量化等操作。可见,变换和量化的巨大运算量严重影响了编码的速度和性能。
由于视频序列具有运动缓慢、帧间内容相关性强等特点,大量的图像块在相邻帧中都可找到内容接近的匹配块。因此,很多亮度残差4x4块经变换和量化处理后,块内的所有元素都变成了零。通常该类型的残差块被定义为全零块(AZB)。假如在整数变换之前预先将这些块识别出来,即可省去变换和量化等一系列的运算处理,极大地减轻了编码过程的运行负荷,从而,可提高编码的速度。因此,全零块检测技术一直是编码器优化的重要研究课题。 H.264全零块检测技术研究与实现(4):http://www.youerw.com/zidonghua/lunwen_7954.html