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. 
************************************************************************ 
*/   
 
/* 
************************************************************************************* 
* File name: block_const.c 
* Function: Constant Arrays, Transforms etc to be used with Adaptive Block Transforms 
* 
************************************************************************************* 
*/ 
 
#include "defines.h" 
#include "block.h" 
// dongjie 
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/*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