只以亮度块为例
static const int x264_scan8[16] =
{
4+1*8, 5+1*8, 4+2*8, 5+2*8,
6+1*8, 7+1*8, 6+2*8, 7+2*8,
4+3*8, 5+3*8, 4+4*8, 5+4*8,
6+3*8, 7+3*8, 6+4*8, 7+4*8,
};
由于程序运行时,数组依次相加是从左向右,从上到下的顺序,而对于图像编码使用zig的方式,对此造成的不变我们利用scan8数组来进行区分,scan8数组一个存放着宏块扫描顺序的数组,这样当程序依次从左向右读取scan8中的数值时,它代表的正确的宏块编码顺序,我们从第一行开始,12,13,20,21,正好对应宏块中的第一列。