帧间编码的预测自适应量化系数扫描排序

      自适应扫描顺序算法的实现步骤分三步:

  1. 对于每帧之间的预测,初始化为一组二维数组{S1[n][n] ,S2[n][n],……, Sm[n][n]},其中m是多少帧间预测模式,n是转换的每个维度的大小。

        对于4*4的转换,n=4;8*8,n=8;S用来保存系数矩阵的总和。

   2.  对于每一个n*n大小的块

         (a)如果这是第一个P帧,用标准的zig-zag扫描顺序,否则就根据帧间预测模式产生自适应排序。

         (b)把这个块内的量化系数的绝对值进行加和存储到Si[n][n],i就是选择的这个块的帧间预测模式。

   3.  对于每一个帧间预测模式i(i=1,。。。。m)

         (a)按降序对Si[n][n]排序,排序的过程中保存好每一个值在顺序中的原坐标。

         (b)建立一个有原指数顺序的2维数组,这个将变成下一个帧间预测在这个模式的新的扫描顺序。

    具体的理解:

       首先把一帧分成m块,产生m个预测模式:{S1[n][n], S2[n][n], …, Sm[n][n]}

       对于每一个n*n的块,如果它是第一个p帧,则按照标准的zig-zag顺序扫描,否则就用帧内模式的自适应扫描。

       自适应扫描方法中:就会把每一个块的量化系数的绝对值加到Si[n][n]中。

       然后把Si[n][n]里面的数字按降序排列,并保存好每一个数字原来的位置,扫描的时候就按照降序进行。

原文地址:https://www.cnblogs.com/greenteaone/p/1762835.html