HEVC中的变换编码

一、变换编码的意义:绝对大部分图像都含有较多的平坦区域内容变化缓慢的区域,变换可以使图像能量在空间域的分散分布转为在变换域的相对集中分布,就可以达到去除空间冗余的目的

二、HEVC使用了DCT和DST(只用于4x4的小块)两种变换,为了加快速度,还会使用Hadamard算法(HEVC标准中没有使用,但是自己的具体实现可以使用)。二维DCT可以分成两个一维的DCT变换。

三、HEVC中的整数DCT
1、整数DCT支持:4x4、8x8、16x16、32x32
2、利用DCT的规律可以使用具有统一形式的整数DCT蝶形算法(具体细节不展开讲)

四、HEVC的整数DST
1、只有帧内4x4模式亮度分量的残差才使用DST
2、除此之外,都是用DCT

五、CU、PU、TU的关系
1、PU和TU都是从CU划分而来的
2、TU和PU之间并无确定的关系,在预测的时候把CU划分成PU,在变换、量化、熵编码的时候则把CU划分为TU
3、一个PU可以包含多个TU、一个TU也可以跨越多个PU。但是,对于帧内来说,一定是一个PU包含若干TU,TU只能存在一个PU内

六、Hadamard变换(H.264使用了,HEVC没有使用)
1、它是广义傅立叶变换的一种,和DCT相似
2、它的变换矩阵是一个2^m x 2^m的矩阵
3、最重要的一点,和DCT变换相比,Hadamard变换值包含加减运算,而且可以使用递归的形式快速实现;而且他的正向变换和反向变换具有相同的形式,所以算法复杂度低、容易实现

七、其他更多的细节就是DCT的公式是怎么样的了,建议看一下傅立叶变换,不细讲。

你可能感兴趣的:(专业基础)