Q0:H264采用整数DCT变换的原因?
A0:传统视频编码标准中变换过程采用8*8的快速DCT变换,该变换存在的缺陷是:需要进行浮点数操作,给系统设计与计算带来复杂度;此外变换核是无理数,有限的浮点数不能精确的表示无理数,而且浮点数运算可能会引入舍入误差,使得具体实现时导致编解码不匹配。因此H264采用4*4的整数DCT变换,变换过程只需进行整数的加减移位操作即可。
Q1:H264对于16*16帧内亮度块与8*8的色度块在整数DCT变换之后还要将直流系数进行hadamard变换的原因是?
A1:DCT变换后能量集中在直流分量,为了进一步去除直流分量的相关性,对其进行hadamard变换。
Q2:变换量化公式: |Zij|=(|Wij|.MF+f)>>qbits 中的f是什么?
A2: f是一个修正参数,对于帧内编码宏块f=(2^qbits)/3,对于帧间编码宏块f=(2^qbits)/6。
Q3:蝶形运算的优势?
A3:4*4DCT矩阵常规运算需要进行64次乘法和48次加法。蝶形运算利用构造矩阵的整数性质和对称性,可以完全将乘法运算转换成加法运算,大大减少运算量。
Q4::block的类型包括几种?
A4:在变换编码的阶段,根据block的类型有三种变换编码,block的类型包括1、亮度的4*4直流系数组成的块;2、色度的2*2的直流系数组成的块;3、其它类型的块(包括亮度的4*4交流系数组成的块(在DC系数的位置设为0