2.3 改变标度(逆量化) 逆量化操作如下: Y’ij = Zij.Qstep Equation 2-8 逆变换中的预缩放因子(矩阵Ei,对应于系数位置值分别为a^2,ab和b^2)也是这个操作的一部分,同时增加了一个为64的常量比例系数来避免舍入错误。 W’ij = Zij.Qstep.PF.64 Equation 2-9 比例系数W’ij随后使用“核心”逆变换(Ci’WCi: 如Equation 2-4)进行变换。逆变换的输出值被除以64来除去比例因子(这可以通过一次加法和一次右移来实现)。 H.264标准没有直接指明Qstep或PF,而0<=QP<=5时每个系数位置的参数V=(Qstep.PF.64)被定义。逆量化操作为: W’ij = Zij.Vij.2^floor(QP/6) Equation 2-10 例: 设QP=3,则Qstep=0.875,2^floor(Qp/6)=1 (i,j)=(1,2),则PF=ab=0.3162 V=(Qstep.PF.64)=0.875X0.3162X65 =18(近似值) W’ij=Zij X 18 X 1 0<=QP<=5时V的值在标准中的定义如下表: Table 2-3 Rescaling factor V
Equation 2-10中的因子2^floor(QP/6)使得重缩放输出以2为因子递增,QP每增加6,输出增加一倍。 3. 4X4亮度DC系数变换和量化(只在16X16 帧内模式中使用) 如果宏块以16X16帧内预测模式编码(全部的16X16亮度分量根据邻近像素预测),每个4X4残留块首先经过上述的核心变换(CfXCf^T).然后每个4X4块的直流系数使用4X4 Hadamard变换进行再一次变换。 WD是4X4直流系数块,YD是变换后的块。输出系数YD(i,j)被除以2(四舍五入)。 然后对输出系数YD(i,j)进行量化,产生一个量化的直流系数块: |ZD(i,j)| = (|YD(i,j)|.MF(0,0) + 2f) >> (qbits+1) sign(ZD(i,j)) = sign(YD(i,j)) Equation 3-2 其中,MF,f和qbits在之前定义,并且MF值和之前一样取决于它在4X4DC块中的位置(i,j) 在解码器中,首先使用逆Hadamard变换,随后进行逆量化(注意顺序并没有像想像中那样进行反转)。 如果QP大于等于12,则逆量化过程如下: W’D(i,j) = WQD(i,j).V(0,0).2floor(QP/6)-2 如果QP小于12,则逆量化过程如下: W’D(i,j) = [WQD(i,j).V(0,0) + 21-floor(QP/6)]>>(2-floor(QP/6) V定义同前。之后重建的直流系数W’D被分别插入到它们对应的4X4块中,并且每个4X4系数块使用核心DCT-based逆变换(Ci’W’Ci)。 在一个帧内编码宏块中,大部分能量集中在直流系数上,这个补充的变换起到对4X4亮度直流系数去相关的作用(即利用系数间的相关性)。 |
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/24790158/viewspace-1040968/ ,如需转载,请注明出处,否则将追究法律责任。