基于阈值的全零块判决算法
全零TU所占总TU数的比例会随着QP增加而增加。然而,在TU尺寸大的情况下,如32x32,即使QP非常大,G-AZB所占TU总数的比例也很小。这也就是说,对于32x32的TU块,没有RDOQ,最后的量化结果就是NAZB,只有经过RDOQ才会量化为P-AZB。
HDQ全零块判决算法
为在HDQ之前实现全零块判决,首先需要设计针对G-AZB的判决算法。
当TU中最大DCT系数max(|ci|)满足下式时,经过floor函数便会被量化为0系数,从而该TU中所有量化系数都为0系数。
因此,TU中最大DCT/DST系数满足下式条件,该TU的HDQ量化结果就是AZB:
继续推导:得到基于DCT系数的阈值模型Γ1如下:
对于G-AZB类型的TU来说,它们都满足条件max(|ci|)/Γ1<1,而对于NAZB类型的TU,都满足max(|ci|)/Γ1>=1。
因此,可以根据上述阈值模型对HDQ量化结果是否为AZB进行预判决,从而可以在利用HDQ量化前进行AZB判决。
需要注意的是,该算法得出的是基于变换域的阈值判决条件,对比基于残差域的阈值判决条件,虽然在时间复杂度上略有提升,但是提高了该部分全零块检测精度,这部分的AZB检测精度是100%。
RDOQ全零块判决算法
对于量化结果为P-AZB的TU来说,该类型TU的检测任务就是预判决RDOQ量化结果是否为AZB。
通常,只有HDQ量化系数li为1或者2的时候,该系数在经过RDOQ量化算法后才有机会量化为零系数。也就是说,如果RDOQ量化结果是AZB,则HDQ量化系数li必须在2以内。无论QP处于什么系数水平,只要满足HDQ量化系数li的数值小于2时,则该TU块的RDOQ量化结果便是P-AZB。
根据HDQ公式,当TU中量化为非零系数的DCT/DST变换系数ci满足下面不等式时,当前TU块便会被量化为NAZB:
假设ξ是在一个TU中满足上式的DCT系数个数,Γ2是基于QP用于进行P-AZB预判决的自适应阈值。
通常,如果一个TU中ξ小于Γ2时,则经过RDOQ后会将所有的系数量化为零系数。Γ2如下:
基于机器学习的AZB判决
通过上述所述的AZB判决算法,可以实现大部分TU的全零块判决,但是还存在部分RDOQ量化为0的TU未进行预判决。对于剩余未进行全零快预判决的TU来说,由于在基于CABAC的RDOQ中存在复杂的上下文依赖和概率状态转换,因此采用传统意义上能够描述是否为AZB信息的SAD或者SATD,不能够有效提高这部分AZB的检测精度。
因此,把全零块判决转化为机器学习中的二元分类模型,即判为AZB或者NAZB。具体来说就是,选取能够描述是否为AZB信息的细颗粒度特征值;然后采用机器学习算法中训练二元分类模型的方法,训练出检测准确的二元分类模型,以进行准确的全零快判决;最后将离线获得的分类模型应用于编码器中,实现全零块判决。
神经网络框架
机器学习算法大多数是通过卷积层+池化层+全连接层的网络结构训练分类模型,由于在利用卷积层和池化层提取高级特征值的过程会消耗大量时间,因此本文通过先验知识和理论分析手动提取了可以描述是否为全零TU的高级特征信息,然后直接将其应用到全连接网络中,从而节省了卷积层和池化层提取高级特征信息的时间。采用的FCN如下图:
其中,输入层的8个节点可以描述是否为全零块信息的高级特征值。因为在RDOQ量化算法中,所采用的动态编码方案,充分考虑了相邻系数之间的上下文的相关性,因此有几个上下文相关因子会影响最终的量化结果,即全零块判决结果,所以为处理RDOQ中复杂的工作机制,就在不同的编码级别总共选取了8个特征值作为全连接层的输入信息,包括:TU级、系数级和上下文级。
通过从不同编码级别选取能够描述是否为全零块的高级特征信息,实现能够训练出精准二元分类模型的目标,从而提高全零块检测精度。
1.TU级特征
用φ表示一个TU中绝对变换系数之和,可以描述TU在变换域中能量分布特性:
为便于选取剩余特征信息,将TU分为高频和低频区域。低频区域中包含下图中的P1、P2、P3。
对于NAZB来说,量化后的非零系数基本集中在低频区域,因此用t表示位于低频区域的DCT系数总和,在AZB和NAZB中存在较大差异,即NAZB中的t>AZB中的t,t计算公式如下:
c(Pk)表示在位置Pk的DCT系数。为进一步评估低频区域的能量分布,将低频区域的能量总和相对于给定TU的总能量进行归一化,然后计算归一化能量比α(作为第二输入特征值):
根据实验收集不同QP下不同TU的均值α。因此在NAZB中,α的强度倾向于大于AZB的强度,所以α可以用作区分AZB和NAZB的有效特征。
综上来看,TU级别的特征值包含两个:φ和α。
2.系数级特征
首先将TU中经过HDQ的li为1或2的数量统计:
最终可以得到如下结论:
不同QP情况下,在AZB中的量化系数li等于1的概率极大,NAZB中的量化系数基本等于2。因此,当前TU中量化系数等于1或者2的数量是用于确定是否为AZB块信息的有效特征值。归一化处理:
综上所述,系数级别的特征值包含两个:β1和β2。
3.上下文级特征
上面提到的4个特征值是与失真相关的特征,它们能够反映编码失真,然而与码率相关的特征信息尚未得到充分利用。HEVC中CABAC是主要的熵编码方案。
HEVC中,将初始值V分配给每个上下文模型,并且通过V计算上下文模型的初始变量MPS(下一编码元素最大可能出现的符号)和概率状态转移б,与之相对应的就是LPS(下一编码元素极不可能出现的符号)。计算如下 :
获得初始概率模型变量后可以对符号进行二进制算术编码和概率模型参数更新,以实现上下文自适应编码,模型更新如下:
ρ表示下一待编码元素概率。