www.pudn.com > wm2.5.zip > block_const.c


 
/* 
*********************************************************************** 
* COPYRIGHT AND WARRANTY INFORMATION 
* 
* Copyright 2004, Advanced Audio Video Coding Standard, Part II 
* 
* DISCLAIMER OF WARRANTY 
* 
* These software programs are available to the users without any 
* license fee or royalty on an "as is" basis. The AVS disclaims 
* any and all warranties, whether express, implied, or statutory, 
* including any implied warranties of merchantability or of fitness 
* for a particular purpose. In no event shall the contributors or  
* the AVS be liable for any incidental, punitive, or consequential 
* damages of any kind whatsoever arising from the use of this program. 
* 
* This disclaimer of warranty extends to the user of this program 
* and user's customers, employees, agents, transferees, successors, 
* and assigns. 
* 
* The AVS does not represent or warrant that the program furnished 
* hereunder are free of infringement of any third-party patents. 
* Commercial implementations of AVS, including shareware, may be 
* subject to royalty fees to patent holders. Information regarding 
* the AVS patent policy is available from the AVS Web site at 
* http://www.avs.org.cn 
* 
* THIS IS NOT A GRANT OF PATENT RIGHTS - SEE THE AVS PATENT POLICY. 
************************************************************************ 
*/ 
 
const int ZIGZAG_SCAN[16][2] = // [scan_pos][x/y] ATTENTION: the ScanPositions are (pix,lin)!    //qwang 2004-3-8 
{ 
  {0,0},{1,0},{0,1},{0,2}, 
  {1,1},{2,0},{3,0},{2,1}, 
  {1,2},{0,3},{1,3},{2,2}, 
  {3,1},{3,2},{2,3},{3,3} 
}; 
 
// dongjie 
const int NCBP[64][2]= 
{ 
  {4,0},{27,3},{30,4},{17,9},{29,1},{31,7},{44,17},{13,14}, 
  {26,2},{45,16},{22,8},{15,15},{11,6},{12,11},{10,12},{2,5}, 
  {18,10},{41,23},{50,25},{32,33},{51,22},{35,26},{58,59},{20,37}, 
  {47,24},{54,58},{38,31},{23,38},{25,34},{16,36},{19,39},{1,19}, 
  {24,13},{56,28},{61,30},{43,44},{55,27},{53,32},{62,60},{36,48}, 
  {60,29},{63,61},{52,35},{37,49},{42,40},{40,47},{34,42},{3,20}, 
  {28,21},{39,52},{48,55},{8,57},{46,54},{21,41},{59,63},{6,50}, 
  {49,56},{57,62},{33,45},{7,51},{14,53},{5,46},{9,43},{0,18} 
}; 
 
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} 
}; 
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} 
	}, 
	{ 
		//AVSM-1498 
		{  0/*2*/, 1 /*0*/,  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