如果满足以下三个条件则将宏块按 Skip 类型进行编码:
(1)最佳模式选择为Inter16×16;
(2)MC得到的最终运动矢量等于预测运动矢量,即运动矢量的残差为0;
(3)变换系数均被量化为0。
---------------------
skip类型块(或宏块)没有运动矢量差,但是有残差,只是在编码的时候扔掉了 对于残差的处理 在rdo和非rdo下的处理是不一样的 在非rdo下,需要对残差进行变化量化,若16x16为最终模式且cbp为0(或者有少量的4x4block为非零),那么该宏块就是skip模式,简单的说,在非rdo情况下,skip模式是16x16模式的一个特殊情况 在rdo情况下,不需要对残差进行变化量化,直接对skip模式计算rdcost(skip的码率即编码所占的比特数,虽然不对残差和矢量差进行编码,但是编码比特数也是不为零的,比如模式所占的比特数、是宏块内第几个skip块等语法元素信息),通过判断rdcost是否最小,来判定宏块是否为skip模式,就是说,在rdo情况下,skip是独立的一种模式 B skip 与 B direct16x16 的差别就是前者无残差,后者有残差。 |