H.264 学习笔记(四)

变换与量化

1、   变换量化的过程如图3-1所示:

图3-1

2、 H.264 对4×4 的图像块(亮度块或Cr、Cb 色度块)进行操作,则相应的4×4DCT 变换矩阵A为:

,则:

H.264 对4×4DCT 中的A 进行了改造,采用整数DCT 技术,有效地减少计算量,同时不损失图像准确。上式可等效为:

其中,d=c/b(≈0.414)。符号“⊗”表示(CXCT)结果中的每个元素乘以矩阵E 中对应位置上的系数

值的运算。为了简化计算,取d 为0.5。同时又要保持变换的正交性,对b 进行修正,取b=√(2/5) 。对矩阵C 中的第2 行和第4 行,以及矩阵CT 中的第2 列和第4 列元素乘以2,相应地改造矩阵EEf,以保持原式成立,得到:

H.264 将DCT 中“⊗Ef”运算的乘法融合到后面的量化过程中,实际的DCT 输出为:

3、  量化:

 

     

4、 在H.264 中,量化步长Qstep 共有52 个值。如表3-1 所示。其中QP 是量化参数,是量化步长的序号。 QP 每增加6,Qstep 增加一倍。

表3-1

5、 量化步长是实际用来进行量化的值,量化参数只是量化步长的别名。

6、 亮度QP 的最大值是51,而色度QP 的最大值是39。

7、 H.264 量化过程还要同时完成DCT 变换中“⊗Ef”乘法运算,它可以表述为:

其中,Wij 是矩阵W 中的转换系数,PF 是矩阵Ef 中的元素,根据样本点在图像块中的位置(i, j)取值:

 

利用量化步长随量化参数每增加6 而增加一倍的性质,可以进一步简化计算。设:

qbits = 15 + floor(QP/6)。令

。于是:

这样,MF 可以取整数。表3-2 只列出对应QP 值为0 到5 的MF 值,对于QP 值大于5 的情况,只是qbits 值随QP 值每增加6 而增加1,而对应的MF 值不变。这样,量化过程则为整数运算,并且可以避免使用除法。

表3-2

具体量化过程的运算为:

 

其中sign()为符号函数;f 为偏移量,它的作用是改善恢复图像的视觉效果例如,对帧内预测图像块f 取2qbits/3,对帧间预测图像块f 取2qbits/6。

 

8、 如果当前处理的图像宏块是色度块或帧内16×16 预测模式的亮度块,则需要将其中各图像块的DCT 变换系数矩阵W 中的直流分量或直流系数W00 按对应图像块顺序排序,组成新的矩阵WD,再对WD 进行Hadamard 变换及量化。

9、 对亮度块WD 的Hadamard 变换为:

其中,YD 是Hadamard 变换结果。接着要对YD 再进行量化输出:

 

   10、对各色度块WD 的Hadamard 变换为:

       

       其中,YD 是Hadamard 变换结果。接着要对YD 再进行量化输出:

      

 

11、zig-zag扫描顺序如下图3-1:

         

 

         

帧模式                   

                                                                                                   场模式

                                                                                                   图3-1

 

12、cbp一共6bit,高2bit表示cbpc(2:cb、cr中至少一个4x4块的AC系不全为0;1:cb、cr中至少一个2x2的DC系数不全为0;0:所有色度系数全0)。低4bit分别表示4个8x8亮度块,其中从最低一位开始的4位分别对应00,10,01,11位置的8*8亮度块。如果某位为1,表示该对应8*8块的4个4*4块中至少有一个的系数不全为0。 

13、level:幅值;run: 每个非零系数前面 0 的个数。

转载于:https://www.cnblogs.com/willwang/archive/2012/03/04/2379706.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值