H.266中的扫描顺序总结


1.Raster扫描:即从左到右,从上到下


2.Z-扫描(不同于zigzag扫描):对于任何一个边长为偶数的正方形来说,都先扫描左上角,再是右上角,然后是左下角,最后是右下角,如下图的数字增大顺序所示。


3.垂直扫描:从变换块的最后一个系数开始扫描,终止于DC系数,在每个小块内从下到上,从右到左扫描;


4.水平扫描:从变换块的最后一个系数开始扫描,终止于DC系数,在每个小块内从右到左,从下到上扫描,块之间的扫描顺序为右下块,右上,左下,左上具体不画了;

5.对角扫描:从变换块的最后一个系数开始扫描,终止于DC系数,在每个小块内的扫描顺序如下所示,其他小块于此相同,块之间的扫描顺序为右下,右上,左下,左上(楼主太懒了,只画了1/4)。


 其中,Raste扫描和Z扫描的作用是定位CU,他们两之间可以相互转换;

g_auiZscanToRaster[]存放从Zscan索引到Raster索引的映射,g_auiRasteToZscan[]存放从Raster索引到Zscan索引的映射。


   如上图所示,以8*8块为例(在H.266中是32*32块,每个块表示4*4的基本单元)。我们可以写出

g_auiZscanToRaster[]的详细映射数组为:

g_auiZscanToRaster[]={0,1,8,9,2,3,10,11,16,17,24,25,18,19,26,27,......}----即把Raster的顺序索引按照Zscan的扫描顺序再扫描一遍;

g_auiRasteToZscan[]的详细映射数组为:

g_auiRasteToZscan[]={0,1,4,5,16,17,20,21,2,3,6,7,18,19,22,23,......}---即把Zscan的顺序索引按照Raste的扫描顺序重新扫描一遍;

    剩余三个扫描方式--水平,垂直和对角扫描用于变换系数在熵编码前的扫描,通过扫描将二维的变换系数变为一维变换系数序列。根据预测模式来选择扫描方式。水平预测模式一般采用垂直扫描,因为水平预测的帧内块,变换后的能量很大程度集中在前几列;垂直预测一般使用水平扫描,因为垂直预测的帧内块,变换后的能量很大程度集中在前几行

     在H.266中,扫描顺序的选择如下:

     A.如果是帧间模式,默认使用对角扫描;

     B.如果是帧内模式:a.亮度块时,宽或高大于8用对角扫描;色度块时,宽或高大于4用对角扫描;

                    b.否则,垂直模式及其附近的18个模式用水平扫描; 水平模式及其附近的18个模式用垂直扫描;剩余的模                        式用对角扫描。

                    

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值