File: common/common.h
#define X264_SCAN8_LUMA_SIZE (5*8)
#define X264_SCAN8_SIZE (X264_SCAN8_LUMA_SIZE*3)
#define X264_SCAN8_0 (4+1*8)
/* Scan8 organization:
* 0 1 2 3 4 5 6 7
* 0 DY y y y y y // y -- luma x-coordination, Y -- luma value, locate in x4, x5, x6, x7
* 1 y Y Y Y Y // y -- luma y-coodination, Y -- luma value, locate in y1, y2, y3, y4
* 2 y Y Y Y Y // DY in x0, y0
* 3 y Y Y Y Y
* 4 y Y Y Y Y
* 5 DU u u u u u // same to luma, U in x4, x5, x6, x7, y6, y7, y8, y8; DU in x0, y5
* 6 u U U U U
* 7 u U U U U
* 8 u U U U U
* 9 u U U U U
* 10 DV v v v v v // same to luma, V in x4, x5, x6, x7, y11, y12, y13, y14; DV in x0, y10
* 11 v V V V V
* 12 v V V V V
* 13 v V V V V
* 14 v V V V V
* DY/DU/DV are for luma/chroma DC.
*/
#define LUMA_DC 48
#define CHROMA_DC 49
static const uint8_t x264_scan8[16*3 + 3] = // yuv coordination index, in a 8x15 array
{
// Y
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,
// U
4+ 6*8, 5+ 6*8, 4+ 7*8, 5+ 7*8,
6+ 6*8, 7+ 6*8, 6+ 7*8, 7+ 7*8,
4+ 8*8, 5+ 8*8, 4+ 9*8, 5+ 9*8,
6+ 8*8, 7+ 8*8, 6+ 9*8, 7+ 9*8,
// V
4+11*8, 5+11*8, 4+12*8, 5+12*8,
6+11*8, 7+11*8, 6+12*8, 7+12*8,
4+13*8, 5+13*8, 4+14*8, 5+14*8,
6+13*8, 7+13*8, 6+14*8, 7+14*8,
// [y0, x0]=DY, [y5, x0]=DU, [y10, x0]=DV (DY/DU/DV are for luma/chroma DC)
0+ 0*8, 0+ 5*8, 0+10*8
};