www.pudn.com > avs-m3.rar > block_const.c


/*! 
 ************************************************************************************* 
 * \file  
 *      block_const.c 
 * \brief 
 *      Constant Arrays, Transforms etc to be used with Adaptive Block Transforms 
 ************************************************************************************* 
 */ 
#include "defines.h" 
 
/*! 
 ************************************************************************************* 
 * \brief  
 *     static tables 
 ************************************************************************************* 
 */ 
const char VLC_GC_Order_INTRA[7][2] =      //[tableindex][grad/maxlevel] 
{ 
	{1,22}, {0,22}, {1,22}, {1,22}, {0,22}, {1,22}, {0,22} 
}; 
 
const char VLC_GC_Order_INTER[7][2] =     //[tableindex][grad/maxlevel] 
{ 
	{1,22}, {0,22}, {0,22}, {0,22}, {0,22}, {0,22}, {0,22} 
}; 
 
const char VLC_GC_Order_CHROMA[4][2] =      //[grad/maxlevel] 
{ 
  {1,22}, {0,22}, {0,22}, {0,22} 
}; 
char VLC_INTRA_dec[7][40][2]={{{-1,-1}}}; 
char VLC_INTER_dec[7][40][2]={{{-1,-1}}}; 
char VLC_CHROMA_dec[4][40][2]={{-1,-1}}; 
 
const char VLC_INTRA[7][16][16]=  
{ 
	{ 
		{  0,  8, 16, 30, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{  2, 18, 36, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{  4, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{  6, 26, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ 12, 32, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ 10, 34, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ 22, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ 24, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ 28, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1} 
	}, 
	{ 
		{  0,  1,  5,  9, 15, 27, 31, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1,  3, 13, 23, 35, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1,  7, 19, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, 11, 25, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, 17, 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, 21, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, 29, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1} 
	}, 
	{ 
		{  0,  1,  3,  9, 15, 23, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1,  5, 11, 19, 31, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1,  7, 17, 27, 35, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, 13, 25, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, 21, 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, 29, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1} 
	}, 
	{ 
		{  0,  1,  3,  5,  9, 13, 23, 25, 31, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1,  7, 11, 17, 27, 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, 15, 19, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, 21, 35, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, 29, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1} 
	}, 
	{ 
		{  0,  1,  3,  5,  7, 11, 15, 17, 23, 31, 35, -1, -1, -1, -1, -1}, 
		{ -1,  9, 13, 19, 27, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, 21, 25, 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, 29, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1} 
	}, 
	{ 
		{  0,  1,  3,  5,  7,  9, 11, 13, 19, 21, 25, 31, 35, -1, -1, -1}, 
		{ -1, 15, 17, 23, 29, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, 27, 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1} 
	}, 
	{ 
		{  0,  3,  1,  5,  7,  9, 11, 13, 15, 17, 19, 21, 23, 31, 29, 33}, 
		{ -1, 25, 27, 35, 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1} 
	} 
}; 
 
 
const char VLC_INTER[7][16][14] =  
{ 
	{ 
		{  0, 10, 22, 36, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{  2, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{  4, 24, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{  6, 26, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{  8, 34, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ 12, 30, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ 16, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ 18, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ 32, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ 28, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1} 
	}, 
	{ 
		{  0,  1,  7, 15, 27, 37, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1,  3, 17, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1,  5, 21, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1,  9, 29, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, 11, 35, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, 19, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, 23, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, 25, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, 31, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1} 
	}, 
	{ 
		{  0,  1,  9, 17, 23, 37, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1,  3, 15, 27, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1,  5, 19, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1,  7, 21, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, 11, 31, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, 13, 35, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, 25, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, 29, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1} 
	}, 
	{ 
		{  0,  1,  7, 11, 21, 27, 35, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1,  3, 13, 25, 37, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1,  5, 17, 29, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1,  9, 19, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, 15, 31, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, 23, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1} 
	}, 
	{ 
		{  0,  1,  3,  7, 13, 21, 27, 35, -1, -1, -1, -1, -1, -1}, 
		{ -1,  5, 11, 19, 31, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1,  9, 17, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, 15, 29, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, 23, 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, 25, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1} 
	}, 
	{ 
		{  0,  1,  3,  5,  9, 11, 17, 21, 29, 33, -1, -1, -1, -1}, 
		{ -1,  7, 13, 19, 25, 35, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, 15, 23, 31, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, 27, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1} 
	}, 
	{ 
		{  0,  1,  3,  5,  7,  9, 11, 13, 17, 21, 23, 27, 33, 37}, 
		{ -1, 15, 19, 25, 29, 35, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, 31, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1} 
	} 
}; 
const char VLC_CHROMA[4][16][13] =  
{ 
	{ 
		{  0,  6, 14, 18, 24, 36, -1, -1, -1, -1, -1, -1, -1}, 
		{  2, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{  4, 28, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{  8, 26, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ 12, 34, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ 16, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ 22, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ 30, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ 32, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1} 
	}, 
	{ 
		{  0,  1,  7, 11, 19, 23, 29, 33, -1, -1, -1, -1, -1}, 
		{ -1,  3, 13, 25, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1,  5, 21, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1,  9, 27, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, 17, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, 31, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, 35, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1} 
	}, 
	{ 
		{  0,  1,  3,  7,  9, 15, 19, 25, 29, 35, -1, -1, -1}, 
		{ -1,  5, 11, 17, 27, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, 13, 21, 37, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, 23, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, 31, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1} 
	}, 
	{ 
		{  0,  1,  3,  5,  7, 11, 13, 17, 23, 25, 29, 31, 33}, 
		{ -1,  9, 15, 19, 27, 35, 37, -1, -1, -1, -1, -1, -1}, 
		{ -1, 21, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1} 
	} 
}; 
// end