@ -52,18 +52,20 @@ static const uint8_t golomb_to_inter_cbp[48] = {
17 , 18 , 20 , 24 , 19 , 21 , 26 , 28 , 23 , 27 , 29 , 30 , 22 , 25 , 38 , 41
} ;
static const uint8_t zigzag_scan [ 16 ] = {
static const uint8_t zigzag_scan [ 16 + 1 ] = {
0 + 0 * 4 , 1 + 0 * 4 , 0 + 1 * 4 , 0 + 2 * 4 ,
1 + 1 * 4 , 2 + 0 * 4 , 3 + 0 * 4 , 2 + 1 * 4 ,
1 + 2 * 4 , 0 + 3 * 4 , 1 + 3 * 4 , 2 + 2 * 4 ,
3 + 1 * 4 , 3 + 2 * 4 , 2 + 3 * 4 , 3 + 3 * 4 ,
0 ,
} ;
static const uint8_t field_scan [ 16 ] = {
static const uint8_t field_scan [ 16 + 1 ] = {
0 + 0 * 4 , 0 + 1 * 4 , 1 + 0 * 4 , 0 + 2 * 4 ,
0 + 3 * 4 , 1 + 1 * 4 , 1 + 2 * 4 , 1 + 3 * 4 ,
2 + 0 * 4 , 2 + 1 * 4 , 2 + 2 * 4 , 2 + 3 * 4 ,
3 + 0 * 4 , 3 + 1 * 4 , 3 + 2 * 4 , 3 + 3 * 4 ,
0 ,
} ;
static const uint8_t luma_dc_zigzag_scan [ 16 ] = {
@ -93,7 +95,7 @@ static const uint8_t chroma422_dc_scan[8] = {
} ;
// zigzag_scan8x8_cavlc[i] = zigzag_scan8x8[(i/4) + 16*(i%4)]
static const uint8_t zigzag_scan8x8_cavlc [ 64 ] = {
static const uint8_t zigzag_scan8x8_cavlc [ 64 + 1 ] = {
0 + 0 * 8 , 1 + 1 * 8 , 1 + 2 * 8 , 2 + 2 * 8 ,
4 + 1 * 8 , 0 + 5 * 8 , 3 + 3 * 8 , 7 + 0 * 8 ,
3 + 4 * 8 , 1 + 7 * 8 , 5 + 3 * 8 , 6 + 3 * 8 ,
@ -110,9 +112,10 @@ static const uint8_t zigzag_scan8x8_cavlc[64] = {
1 + 4 * 8 , 2 + 4 * 8 , 6 + 0 * 8 , 4 + 3 * 8 ,
0 + 7 * 8 , 4 + 4 * 8 , 7 + 2 * 8 , 3 + 6 * 8 ,
5 + 5 * 8 , 6 + 5 * 8 , 6 + 6 * 8 , 7 + 7 * 8 ,
0 ,
} ;
static const uint8_t field_scan8x8 [ 64 ] = {
static const uint8_t field_scan8x8 [ 64 + 1 ] = {
0 + 0 * 8 , 0 + 1 * 8 , 0 + 2 * 8 , 1 + 0 * 8 ,
1 + 1 * 8 , 0 + 3 * 8 , 0 + 4 * 8 , 1 + 2 * 8 ,
2 + 0 * 8 , 1 + 3 * 8 , 0 + 5 * 8 , 0 + 6 * 8 ,
@ -129,9 +132,10 @@ static const uint8_t field_scan8x8[64] = {
7 + 0 * 8 , 7 + 1 * 8 , 6 + 4 * 8 , 6 + 5 * 8 ,
6 + 6 * 8 , 6 + 7 * 8 , 7 + 2 * 8 , 7 + 3 * 8 ,
7 + 4 * 8 , 7 + 5 * 8 , 7 + 6 * 8 , 7 + 7 * 8 ,
0 ,
} ;
static const uint8_t field_scan8x8_cavlc [ 64 ] = {
static const uint8_t field_scan8x8_cavlc [ 64 + 1 ] = {
0 + 0 * 8 , 1 + 1 * 8 , 2 + 0 * 8 , 0 + 7 * 8 ,
2 + 2 * 8 , 2 + 3 * 8 , 2 + 4 * 8 , 3 + 3 * 8 ,
3 + 4 * 8 , 4 + 3 * 8 , 4 + 4 * 8 , 5 + 3 * 8 ,
@ -148,6 +152,7 @@ static const uint8_t field_scan8x8_cavlc[64] = {
1 + 7 * 8 , 3 + 2 * 8 , 2 + 7 * 8 , 4 + 2 * 8 ,
3 + 7 * 8 , 5 + 2 * 8 , 4 + 7 * 8 , 5 + 4 * 8 ,
6 + 3 * 8 , 6 + 5 * 8 , 7 + 3 * 8 , 7 + 7 * 8 ,
0 ,
} ;
typedef struct IMbInfo {