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