/* ************************************************************************* ** INTEL Corporation Proprietary Information ** ** This listing is supplied under the terms of a license ** agreement with INTEL Corporation and may not be copied ** nor disclosed except in accordance with the terms of ** that agreement. ** ** Copyright (c) 1995 Intel Corporation. ** All Rights Reserved. ** ** ************************************************************************* */ ////////////////////////////////////////////////////////////////////////// // $Author: AGUPTA2 $ // $Date: 08 Mar 1996 16:46:30 $ // $Archive: S:\h26x\src\dec\d3tables.cpv $ // $Header: S:\h26x\src\dec\d3tables.cpv 1.10 08 Mar 1996 16:46:30 AGUPTA2 $ // $Log: S:\h26x\src\dec\d3tables.cpv $ // // Rev 1.10 08 Mar 1996 16:46:30 AGUPTA2 // Removed tables gTAB_MCBPC_INTRA, gTAB_MCBPC_INTER, gTAB_CBPY_INTRA, and // gTAB_CBPY_INTER. Added pragma data_seg to put all the tables in the Pass 1 // data segment. // // // Rev 1.9 27 Dec 1995 14:36:08 RMCKENZX // Added copyright notice // // Rev 1.8 08 Oct 1995 13:41:58 CZHU // // Fixed zz-run table with two wrong entries, // // Rev 1.7 18 Sep 1995 08:40:28 CZHU // Fixed bugs with table entries for negative val // // Rev 1.6 07 Sep 1995 09:46:40 CZHU // fixed one bug in TCOEFF minor table // // Rev 1.5 31 Aug 1995 16:42:48 CZHU // Changed the format of MVD variable length decoder tables: major and minor // // Rev 1.4 24 Aug 1995 15:34:28 CZHU // Fixed bugs in the inverse quant table, and TCOEFF minor tables // // Rev 1.3 22 Aug 1995 17:39:00 CZHU // // Modified the TCOEFF_MAJOR and MINOR tables for embedded run values. // // Rev 1.2 18 Aug 1995 15:01:00 CZHU // Added run length tables ready for joint opt IDCT and RLD+ZZ // // Rev 1.1 16 Aug 1995 14:25:10 CZHU // // Rebuild the tables for IQ, RLD for Transform coefficients // // Rev 1.0 11 Aug 1995 15:50:56 CZHU // Initial revision. ;// ;// Rev 1.1 02 Aug 1995 11:47:04 CZHU ;// ;// Added table for inverse quantization and RLD-ZZ ;// ;// Rev 1.0 31 Jul 1995 15:46:20 CZHU ;// Initial revision. //Initialize global tables shared by all decoder instances: //Huffman tables, etc //declare the global static tables here #include "precomp.h" /* U16 gTAB_MCBPC_INTRA[512]= { 0x0, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1004, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1206, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1004, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1106, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1004, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1306, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1004, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x0, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1004, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1206, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1004, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1106, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1004, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1306, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1004, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x0, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1004, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1206, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1004, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1106, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1004, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1306, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1004, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x0, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1004, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1206, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1004, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1106, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1004, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1306, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1004, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1409, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1004, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1206, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1004, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1106, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1004, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1306, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1004, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1409, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1004, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1206, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1004, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1106, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1004, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1306, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1004, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1409, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1004, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1206, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1004, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1106, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1004, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1306, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1004, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1409, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1004, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1206, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1004, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1106, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1004, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1306, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01, 0x1004, 0xc01, 0xd03, 0xc01, 0xe03, 0xc01, 0xf03, 0xc01 }; //total 1024 U16 gTAB_MCBPC_INTER[512]={ 0x0, 0x1,0x803,0x1,0x204,0x1,0x403,0x1,0x1006, 0x1,0x803,0x1,0x104,0x1,0x403,0x1,0xa07, 0x1,0x803,0x1,0x204,0x1,0x403,0x1,0xc05, 0x1,0x803,0x1,0x104,0x1,0x403,0x1,0xd08, 0x1,0x803,0x1,0x204,0x1,0x403,0x1,0x306, 0x1,0x803,0x1,0x104,0x1,0x403,0x1,0x607, 0x1,0x803,0x1,0x204,0x1,0x403,0x1,0xc05, 0x1,0x803,0x1,0x104,0x1,0x403,0x1,0x1109, 0x1,0x803,0x1,0x204,0x1,0x403,0x1,0x1006, 0x1,0x803,0x1,0x104,0x1,0x403,0x1,0x907, 0x1,0x803,0x1,0x204,0x1,0x403,0x1,0xc05, 0x1,0x803,0x1,0x104,0x1,0x403,0x1,0xf07, 0x1,0x803,0x1,0x204,0x1,0x403,0x1,0x306, 0x1,0x803,0x1,0x104,0x1,0x403,0x1,0x507, 0x1,0x803,0x1,0x204,0x1,0x403,0x1,0xc05, 0x1,0x803,0x1,0x104,0x1,0x403,0x1,0x1309, 0x1,0x803,0x1,0x204,0x1,0x403,0x1,0x1006, 0x1,0x803,0x1,0x104,0x1,0x403,0x1,0xa07, 0x1,0x803,0x1,0x204,0x1,0x403,0x1,0xc05, 0x1,0x803,0x1,0x104,0x1,0x403,0x1,0xb08, 0x1,0x803,0x1,0x204,0x1,0x403,0x1,0x306, 0x1,0x803,0x1,0x104,0x1,0x403,0x1,0x607, 0x1,0x803,0x1,0x204,0x1,0x403,0x1,0xc05, 0x1,0x803,0x1,0x104,0x1,0x403,0x1,0xe08, 0x1,0x803,0x1,0x204,0x1,0x403,0x1,0x1006, 0x1,0x803,0x1,0x104,0x1,0x403,0x1,0x907, 0x1,0x803,0x1,0x204,0x1,0x403,0x1,0xc05, 0x1,0x803,0x1,0x104,0x1,0x403,0x1,0xf07, 0x1,0x803,0x1,0x204,0x1,0x403,0x1,0x306, 0x1,0x803,0x1,0x104,0x1,0x403,0x1,0x507, 0x1,0x803,0x1,0x204,0x1,0x403,0x1,0xc05, 0x1,0x803,0x1,0x104,0x1,0x403,0x1,0x1409, 0x1,0x803,0x1,0x204,0x1,0x403,0x1,0x1006, 0x1,0x803,0x1,0x104,0x1,0x403,0x1,0xa07, 0x1,0x803,0x1,0x204,0x1,0x403,0x1,0xc05, 0x1,0x803,0x1,0x104,0x1,0x403,0x1,0xd08, 0x1,0x803,0x1,0x204,0x1,0x403,0x1,0x306, 0x1,0x803,0x1,0x104,0x1,0x403,0x1,0x607, 0x1,0x803,0x1,0x204,0x1,0x403,0x1,0xc05, 0x1,0x803,0x1,0x104,0x1,0x403,0x1,0x709, 0x1,0x803,0x1,0x204,0x1,0x403,0x1,0x1006, 0x1,0x803,0x1,0x104,0x1,0x403,0x1,0x907, 0x1,0x803,0x1,0x204,0x1,0x403,0x1,0xc05, 0x1,0x803,0x1,0x104,0x1,0x403,0x1,0xf07, 0x1,0x803,0x1,0x204,0x1,0x403,0x1,0x306, 0x1,0x803,0x1,0x104,0x1,0x403,0x1,0x507, 0x1,0x803,0x1,0x204,0x1,0x403,0x1,0xc05, 0x1,0x803,0x1,0x104,0x1,0x403,0x1,0x1209, 0x1,0x803,0x1,0x204,0x1,0x403,0x1,0x1006, 0x1,0x803,0x1,0x104,0x1,0x403,0x1,0xa07, 0x1,0x803,0x1,0x204,0x1,0x403,0x1,0xc05, 0x1,0x803,0x1,0x104,0x1,0x403,0x1,0xb08, 0x1,0x803,0x1,0x204,0x1,0x403,0x1,0x306, 0x1,0x803,0x1,0x104,0x1,0x403,0x1,0x607, 0x1,0x803,0x1,0x204,0x1,0x403,0x1,0xc05, 0x1,0x803,0x1,0x104,0x1,0x403,0x1,0xe08, 0x1,0x803,0x1,0x204,0x1,0x403,0x1,0x1006, 0x1,0x803,0x1,0x104,0x1,0x403,0x1,0x907, 0x1,0x803,0x1,0x204,0x1,0x403,0x1,0xc05, 0x1,0x803,0x1,0x104,0x1,0x403,0x1,0xf07, 0x1,0x803,0x1,0x204,0x1,0x403,0x1,0x306, 0x1,0x803,0x1,0x104,0x1,0x403,0x1,0x507, 0x1,0x803,0x1,0x204,0x1,0x403,0x1,0xc05, 0x1,0x803,0x1,0x104,0x1,0x403,0x1 }; //total 1024 U16 gTAB_CBPY_INTRA[64]={ 0x0, 0xd04,0xc04,0xf02,0x205,0xb04,0xe04,0xf02, 0x705,0x705,0x705,0xf02,0x705,0x705,0x705,0xf02, 0x606,0xd04,0xc04,0xf02,0x105,0xb04,0xe04,0xf02, 0x705,0x705,0x705,0xf02,0x705,0x705,0x705,0xf02, 0x0, 0xd04,0xc04,0xf02,0x205,0xb04,0xe04,0xf02, 0x705,0x705,0x705,0xf02,0x705,0x705,0x705,0xf02, 0x906,0xd04,0xc04,0xf02,0x105,0xb04,0xe04,0xf02, 0x705,0x705,0x705,0xf02,0x705,0x705,0x705,0xf02 }; //total 128 U16 gTAB_CBPY_INTER[64]={ 0x0, 0x204,0x304,0x2,0xd05,0x404,0x104,0x2, 0x805,0x805,0x805,0x2,0x805,0x805,0x805,0x2, 0x906,0x204,0x304,0x2,0xe05,0x404,0x104,0x2, 0x805,0x805,0x805,0x2,0x805,0x805,0x805,0x2, 0x0, 0x204,0x304,0x2,0xd05,0x404,0x104,0x2, 0x805,0x805,0x805,0x2,0x805,0x805,0x805,0x2, 0x606,0x204,0x304,0x2,0xe05,0x404,0x104,0x2, 0x805,0x805,0x805,0x2,0x805,0x805,0x805,0x2 }; //total 128 */ #pragma data_seg("IADATA1") U16 gTAB_MVD_MAJOR[256]={ 0x0, 0x0,0x0,0x0,0x0,0x0,0x708,0xf908,0x608, 0xfa08,0x508,0xfb08,0x407,0x407,0xfc07,0xfc07,0x305, 0x305,0x305,0x305,0x305,0x305,0x305,0x305,0xfd05, 0xfd05,0xfd05,0xfd05,0xfd05,0xfd05,0xfd05,0xfd05,0x204, 0x204,0x204,0x204,0x204,0x204,0x204,0x204,0x204, 0x204,0x204,0x204,0x204,0x204,0x204,0x204,0xfe04, 0xfe04,0xfe04,0xfe04,0xfe04,0xfe04,0xfe04,0xfe04,0xfe04, 0xfe04,0xfe04,0xfe04,0xfe04,0xfe04,0xfe04,0xfe04,0x103, 0x103,0x103,0x103,0x103,0x103,0x103,0x103,0x103, 0x103,0x103,0x103,0x103,0x103,0x103,0x103,0x103, 0x103,0x103,0x103,0x103,0x103,0x103,0x103,0x103, 0x103,0x103,0x103,0x103,0x103,0x103,0x103,0xff03, 0xff03,0xff03,0xff03,0xff03,0xff03,0xff03,0xff03,0xff03, 0xff03,0xff03,0xff03,0xff03,0xff03,0xff03,0xff03,0xff03, 0xff03,0xff03,0xff03,0xff03,0xff03,0xff03,0xff03,0xff03, 0xff03,0xff03,0xff03,0xff03,0xff03,0xff03,0xff03,0x1, 0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1, 0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1, 0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1, 0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1, 0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1, 0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1, 0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1, 0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1, 0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1, 0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1, 0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1, 0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1, 0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1, 0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1, 0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1, 0x1,0x1,0x1,0x1,0x1,0x1,0x1 }; //total 512 U16 gTAB_MVD_MINOR[256]={ 0x0, 0x0,0x0,0x0,0x0,0xe00d,0x1f0d,0xe10d,0x1e0c, 0x1e0c,0xe20c,0xe20c,0x1d0c,0x1d0c,0xe30c,0xe30c,0x1c0c, 0x1c0c,0xe40c,0xe40c,0x1b0c,0x1b0c,0xe50c,0xe50c,0x1a0c, 0x1a0c,0xe60c,0xe60c,0x190c,0x190c,0xe70c,0xe70c,0x180b, 0x180b,0x180b,0x180b,0xe80b,0xe80b,0xe80b,0xe80b,0x170b, 0x170b,0x170b,0x170b,0xe90b,0xe90b,0xe90b,0xe90b,0x160b, 0x160b,0x160b,0x160b,0xea0b,0xea0b,0xea0b,0xea0b,0x150b, 0x150b,0x150b,0x150b,0xeb0b,0xeb0b,0xeb0b,0xeb0b,0x140b, 0x140b,0x140b,0x140b,0xec0b,0xec0b,0xec0b,0xec0b,0x130b, 0x130b,0x130b,0x130b,0xed0b,0xed0b,0xed0b,0xed0b,0x120b, 0x120b,0x120b,0x120b,0xee0b,0xee0b,0xee0b,0xee0b,0x110b, 0x110b,0x110b,0x110b,0xef0b,0xef0b,0xef0b,0xef0b,0x100b, 0x100b,0x100b,0x100b,0xf00b,0xf00b,0xf00b,0xf00b,0xf0b, 0xf0b,0xf0b,0xf0b,0xf10b,0xf10b,0xf10b,0xf10b,0xe0b, 0xe0b,0xe0b,0xe0b,0xf20b,0xf20b,0xf20b,0xf20b,0xd0b, 0xd0b,0xd0b,0xd0b,0xf30b,0xf30b,0xf30b,0xf30b,0xc0b, 0xc0b,0xc0b,0xc0b,0xf40b,0xf40b,0xf40b,0xf40b,0xb0b, 0xb0b,0xb0b,0xb0b,0xf50b,0xf50b,0xf50b,0xf50b,0xa0a, 0xa0a,0xa0a,0xa0a,0xa0a,0xa0a,0xa0a,0xa0a,0xf60a, 0xf60a,0xf60a,0xf60a,0xf60a,0xf60a,0xf60a,0xf60a,0x90a, 0x90a,0x90a,0x90a,0x90a,0x90a,0x90a,0x90a,0xf70a, 0xf70a,0xf70a,0xf70a,0xf70a,0xf70a,0xf70a,0xf70a,0x80a, 0x80a,0x80a,0x80a,0x80a,0x80a,0x80a,0x80a,0xf80a, 0xf80a,0xf80a,0xf80a,0xf80a,0xf80a,0xf80a,0xf80a,0xc0b, 0xc0b,0xc0b,0xc0b,0xf40b,0xf40b,0xf40b,0xf40b,0xb0b, 0xb0b,0xb0b,0xb0b,0xf50b,0xf50b,0xf50b,0xf50b,0xa0a, 0xa0a,0xa0a,0xa0a,0xa0a,0xa0a,0xa0a,0xa0a,0xf60a, 0xf60a,0xf60a,0xf60a,0xf60a,0xf60a,0xf60a,0xf60a,0x90a, 0x90a,0x90a,0x90a,0x90a,0x90a,0x90a,0x90a,0xf70a, 0xf70a,0xf70a,0xf70a,0xf70a,0xf70a,0xf70a,0xf70a,0x80a, 0x80a,0x80a,0x80a,0x80a,0x80a,0x80a,0x80a,0xf80a, 0xf80a,0xf80a,0xf80a,0xf80a,0xf80a,0xf80a,0xf80a }; //total 512 U32 gTAB_TCOEFF_MAJOR[256]={ 0x3, 0x3,0x3,0x3,0x3,0x3,0x1,0x1,0x3, 0x3,0x3,0x3,0x3,0x3,0x203,0x203,0x3, 0x3,0x3,0x3,0x3,0x3,0x203,0x203,0x3, 0x3,0x3,0x3,0x3,0x3,0x203,0x203,0x221204, 0x221206,0x221004,0x221006,0x220e04,0x220e06,0x220c04,0x220c06,0x201a04, 0x201a06,0x201804,0x201806,0x201604,0x201606,0x200210,0x200212,0x1e0a04, 0x1e0a04,0x1e0a06,0x1e0a06,0x1e0804,0x1e0804,0x1e0806,0x1e0806,0x1e0604, 0x1e0604,0x1e0606,0x1e0606,0x1e0404,0x1e0404,0x1e0406,0x1e0406,0x1c1404, 0x1c1404,0x1c1406,0x1c1406,0x1c1204,0x1c1204,0x1c1206,0x1c1206,0x1c1004, 0x1c1004,0x1c1006,0x1c1006,0x1c0e04,0x1c0e04,0x1c0e06,0x1c0e06,0x1c0408, 0x1c0408,0x1c040a,0x1c040a,0x1c020c,0x1c020c,0x1c020e,0x1c020e,0x180c04, 0x180c04,0x180c04,0x180c04,0x180c06,0x180c06,0x180c06,0x180c06,0x180a04, 0x180a04,0x180a04,0x180a04,0x180a06,0x180a06,0x180a06,0x180a06,0x180804, 0x180804,0x180804,0x180804,0x180806,0x180806,0x180806,0x180806,0x160204, 0x160204,0x160204,0x160204,0x160204,0x160204,0x160204,0x160204,0x160206, 0x160206,0x160206,0x160206,0x160206,0x160206,0x160206,0x160206,0xc0204, 0xc0204,0xc0204,0xc0204,0xc0204,0xc0204,0xc0204,0xc0204,0xc0204, 0xc0204,0xc0204,0xc0204,0xc0204,0xc0204,0xc0204,0xc0204,0xc0204, 0xc0204,0xc0204,0xc0204,0xc0204,0xc0204,0xc0204,0xc0204,0xc0204, 0xc0204,0xc0204,0xc0204,0xc0204,0xc0204,0xc0204,0xc0204,0xc0206, 0xc0206,0xc0206,0xc0206,0xc0206,0xc0206,0xc0206,0xc0206,0xc0206, 0xc0206,0xc0206,0xc0206,0xc0206,0xc0206,0xc0206,0xc0206,0xc0206, 0xc0206,0xc0206,0xc0206,0xc0206,0xc0206,0xc0206,0xc0206,0xc0206, 0xc0206,0xc0206,0xc0206,0xc0206,0xc0206,0xc0206,0xc0206,0x100404, 0x100404,0x100404,0x100404,0x100404,0x100404,0x100404,0x100404,0x100404, 0x100404,0x100404,0x100404,0x100404,0x100404,0x100404,0x100404,0x100406, 0x100406,0x100406,0x100406,0x100406,0x100406,0x100406,0x100406,0x100406, 0x100406,0x100406,0x100406,0x100406,0x100406,0x100406,0x100406,0x140604, 0x140604,0x140604,0x140604,0x140604,0x140604,0x140604,0x140604,0x140606, 0x140606,0x140606,0x140606,0x140606,0x140606,0x140606,0x140606,0x140208, 0x140208,0x140208,0x140208,0x140208,0x140208,0x140208,0x140208,0x14020a, 0x14020a,0x14020a,0x14020a,0x14020a,0x14020a,0x14020a,0x14020a }; //total 1024 U32 gTAB_TCOEFF_MINOR[1024]={ 0x100, 0x100,0x100,0x100,0x100,0x100,0x100,0x100,0x100, 0x100,0x100,0x100,0x100,0x100,0x100,0x100,0x190204, 0x190204,0x190205,0x190205,0x190106,0x190106,0x190107,0x190107,0x180116, 0x180116,0x180117,0x180117,0x180114,0x180114,0x180115,0x180115,0x171d02, 0x171d02,0x171d02,0x171d02,0x171d03,0x171d03,0x171d03,0x171d03,0x171c02, 0x171c02,0x171c02,0x171c02,0x171c03,0x171c03,0x171c03,0x171c03,0x171b02, 0x171b02,0x171b02,0x171b02,0x171b03,0x171b03,0x171b03,0x171b03,0x171a02, 0x171a02,0x171a02,0x171a02,0x171a03,0x171a03,0x171a03,0x171a03,0x160a04, 0x160a04,0x160a04,0x160a04,0x160a05,0x160a05,0x160a05,0x160a05,0x160904, 0x160904,0x160904,0x160904,0x160905,0x160905,0x160905,0x160905,0x160804, 0x160804,0x160804,0x160804,0x160805,0x160805,0x160805,0x160805,0x160704, 0x160704,0x160704,0x160704,0x160705,0x160705,0x160705,0x160705,0x160604, 0x160604,0x160604,0x160604,0x160605,0x160605,0x160605,0x160605,0x160406, 0x160406,0x160406,0x160406,0x160407,0x160407,0x160407,0x160407,0x160306, 0x160306,0x160306,0x160306,0x160307,0x160307,0x160307,0x160307,0x160208, 0x160208,0x160208,0x160208,0x160209,0x160209,0x160209,0x160209,0x180118, 0x180118,0x180119,0x180119,0x18020a,0x18020a,0x18020b,0x18020b,0x181802, 0x181802,0x181803,0x181803,0x181902,0x181902,0x181903,0x181903,0x191e02, 0x191e02,0x191e03,0x191e03,0x191f02,0x191f02,0x191f03,0x191f03,0x192002, 0x192002,0x192003,0x192003,0x192102,0x192102,0x192103,0x192103,0x1a020c, 0x1a020d,0x1a0308,0x1a0309,0x1a0506,0x1a0507,0x1a0606,0x1a0607,0x1a0706, 0x1a0707,0x1a0b04,0x1a0b05,0x1a1a02,0x1a1a03,0x1a1b02,0x1a1b03,0x1b2202, 0x1b2203,0x1b2302,0x1b2303,0x1b2402,0x1b2403,0x1b2502,0x1b2503,0x1b2602, 0x1b2603,0x1b2702,0x1b2703,0x1b2802,0x1b2803,0x1b2902,0x1b2903,0x180118, 0x180118,0x180119,0x180119,0x18020a,0x18020a,0x18020b,0x18020b,0x181802, 0x181802,0x181803,0x181803,0x181902,0x181902,0x181903,0x181903,0x191e02, 0x191e02,0x191e03,0x191e03,0x191f02,0x191f02,0x191f03,0x191f03,0x192002, 0x192002,0x192003,0x192003,0x192102,0x192102,0x192103,0x192103,0x1a020c, 0x1a020d,0x1a0308,0x1a0309,0x1a0506,0x1a0507,0x1a0606,0x1a0607,0x1a0706, 0x1a0707,0x1a0b04,0x1a0b05,0x1a1a02,0x1a1a03,0x1a1b02,0x1a1b03,0x1b2202, 0x1b2203,0x1b2302,0x1b2303,0x1b2402,0x1b2403,0x1b2502,0x1b2503,0x1b2602, 0x1b2603,0x1b2702,0x1b2703,0x1b2802,0x1b2803,0x1b2902,0x1b2903,0x160112, 0x160112,0x160112,0x160112,0x160113,0x160113,0x160113,0x160113,0x160110, 0x160110,0x160110,0x160110,0x160111,0x160111,0x160111,0x160111,0x151902, 0x151902,0x151902,0x151902,0x151902,0x151902,0x151902,0x151902,0x151903, 0x151903,0x151903,0x151903,0x151903,0x151903,0x151903,0x151903,0x151802, 0x151802,0x151802,0x151802,0x151802,0x151802,0x151802,0x151802,0x151803, 0x151803,0x151803,0x151803,0x151803,0x151803,0x151803,0x151803,0x151702, 0x151702,0x151702,0x151702,0x151702,0x151702,0x151702,0x151702,0x151703, 0x151703,0x151703,0x151703,0x151703,0x151703,0x151703,0x151703,0x151602, 0x151602,0x151602,0x151602,0x151602,0x151602,0x151602,0x151602,0x151603, 0x151603,0x151603,0x151603,0x151603,0x151603,0x151603,0x151603,0x151502, 0x151502,0x151502,0x151502,0x151502,0x151502,0x151502,0x151502,0x151503, 0x151503,0x151503,0x151503,0x151503,0x151503,0x151503,0x151503,0x151402, 0x151402,0x151402,0x151402,0x151402,0x151402,0x151402,0x151402,0x151403, 0x151403,0x151403,0x151403,0x151403,0x151403,0x151403,0x151403,0x151302, 0x151302,0x151302,0x151302,0x151302,0x151302,0x151302,0x151302,0x151303, 0x151303,0x151303,0x151303,0x151303,0x151303,0x151303,0x151303,0x151202, 0x151202,0x151202,0x151202,0x151202,0x151202,0x151202,0x151202,0x151203, 0x151203,0x151203,0x151203,0x151203,0x151203,0x151203,0x151203,0x150104, 0x150104,0x150104,0x150104,0x150104,0x150104,0x150104,0x150104,0x150105, 0x150105,0x150105,0x150105,0x150105,0x150105,0x150105,0x150105,0x141702, 0x141702,0x141702,0x141702,0x141702,0x141702,0x141702,0x141702,0x141703, 0x141703,0x141703,0x141703,0x141703,0x141703,0x141703,0x141703,0x141602, 0x141602,0x141602,0x141602,0x141602,0x141602,0x141602,0x141602,0x141603, 0x141603,0x141603,0x141603,0x141603,0x141603,0x141603,0x141603,0x141502, 0x141502,0x141502,0x141502,0x141502,0x141502,0x141502,0x141502,0x141503, 0x141503,0x141503,0x141503,0x141503,0x141503,0x141503,0x141503,0x141402, 0x141402,0x141402,0x141402,0x141402,0x141402,0x141402,0x141402,0x141403, 0x141403,0x141403,0x141403,0x141403,0x141403,0x141403,0x141403,0x141302, 0x141302,0x141302,0x141302,0x141302,0x141302,0x141302,0x141302,0x141303, 0x141303,0x141303,0x141303,0x141303,0x141303,0x141303,0x141303,0x141202, 0x141202,0x141202,0x141202,0x141202,0x141202,0x141202,0x141202,0x141203, 0x141203,0x141203,0x141203,0x141203,0x141203,0x141203,0x141203,0x141102, 0x141102,0x141102,0x141102,0x141102,0x141102,0x141102,0x141102,0x141103, 0x141103,0x141103,0x141103,0x141103,0x141103,0x141103,0x141103,0x141002, 0x141002,0x141002,0x141002,0x141002,0x141002,0x141002,0x141002,0x141003, 0x141003,0x141003,0x141003,0x141003,0x141003,0x141003,0x141003,0x140504, 0x140504,0x140504,0x140504,0x140504,0x140504,0x140504,0x140504,0x140505, 0x140505,0x140505,0x140505,0x140505,0x140505,0x140505,0x140505,0x140404, 0x140404,0x140404,0x140404,0x140404,0x140404,0x140404,0x140404,0x140405, 0x140405,0x140405,0x140405,0x140405,0x140405,0x140405,0x140405,0x14010e, 0x14010e,0x14010e,0x14010e,0x14010e,0x14010e,0x14010e,0x14010e,0x14010f, 0x14010f,0x14010f,0x14010f,0x14010f,0x14010f,0x14010f,0x14010f,0x14010c, 0x14010c,0x14010c,0x14010c,0x14010c,0x14010c,0x14010c,0x14010c,0x14010d, 0x14010d,0x14010d,0x14010d,0x14010d,0x14010d,0x14010d,0x14010d,0x131102, 0x131102,0x131102,0x131102,0x131102,0x131102,0x131102,0x131102,0x131102, 0x131102,0x131102,0x131102,0x131102,0x131102,0x131102,0x131102,0x131103, 0x131103,0x131103,0x131103,0x131103,0x131103,0x131103,0x131103,0x131103, 0x131103,0x131103,0x131103,0x131103,0x131103,0x131103,0x131103,0x131002, 0x131002,0x131002,0x131002,0x131002,0x131002,0x131002,0x131002,0x131002, 0x131002,0x131002,0x131002,0x131002,0x131002,0x131002,0x131002,0x131003, 0x131003,0x131003,0x131003,0x131003,0x131003,0x131003,0x131003,0x131003, 0x131003,0x131003,0x131003,0x131003,0x131003,0x131003,0x131003,0x130f02, 0x130f02,0x130f02,0x130f02,0x130f02,0x130f02,0x130f02,0x130f02,0x130f02, 0x130f02,0x130f02,0x130f02,0x130f02,0x130f02,0x130f02,0x130f02,0x130f03, 0x130f03,0x130f03,0x130f03,0x130f03,0x130f03,0x130f03,0x130f03,0x130f03, 0x130f03,0x130f03,0x130f03,0x130f03,0x130f03,0x130f03,0x130f03,0x130e02, 0x130e02,0x130e02,0x130e02,0x130e02,0x130e02,0x130e02,0x130e02,0x130e02, 0x130e02,0x130e02,0x130e02,0x130e02,0x130e02,0x130e02,0x130e02,0x130e03, 0x130e03,0x130e03,0x130e03,0x130e03,0x130e03,0x130e03,0x130e03,0x130e03, 0x130e03,0x130e03,0x130e03,0x130e03,0x130e03,0x130e03,0x130e03,0x130d02, 0x130d02,0x130d02,0x130d02,0x130d02,0x130d02,0x130d02,0x130d02,0x130d02, 0x130d02,0x130d02,0x130d02,0x130d02,0x130d02,0x130d02,0x130d02,0x130d03, 0x130d03,0x130d03,0x130d03,0x130d03,0x130d03,0x130d03,0x130d03,0x130d03, 0x130d03,0x130d03,0x130d03,0x130d03,0x130d03,0x130d03,0x130d03,0x130c02, 0x130c02,0x130c02,0x130c02,0x130c02,0x130c02,0x130c02,0x130c02,0x130c02, 0x130c02,0x130c02,0x130c02,0x130c02,0x130c02,0x130c02,0x130c02,0x130c03, 0x130c03,0x130c03,0x130c03,0x130c03,0x130c03,0x130c03,0x130c03,0x130c03, 0x130c03,0x130c03,0x130c03,0x130c03,0x130c03,0x130c03,0x130c03,0x130b02, 0x130b02,0x130b02,0x130b02,0x130b02,0x130b02,0x130b02,0x130b02,0x130b02, 0x130b02,0x130b02,0x130b02,0x130b02,0x130b02,0x130b02,0x130b02,0x130b03, 0x130b03,0x130b03,0x130b03,0x130b03,0x130b03,0x130b03,0x130b03,0x130b03, 0x130b03,0x130b03,0x130b03,0x130b03,0x130b03,0x130b03,0x130b03,0x130a02, 0x130a02,0x130a02,0x130a02,0x130a02,0x130a02,0x130a02,0x130a02,0x130a02, 0x130a02,0x130a02,0x130a02,0x130a02,0x130a02,0x130a02,0x130a02,0x130a03, 0x130a03,0x130a03,0x130a03,0x130a03,0x130a03,0x130a03,0x130a03,0x130a03, 0x130a03,0x130a03,0x130a03,0x130a03,0x130a03,0x130a03,0x130a03,0x120f02, 0x120f02,0x120f02,0x120f02,0x120f02,0x120f02,0x120f02,0x120f02,0x120f02, 0x120f02,0x120f02,0x120f02,0x120f02,0x120f02,0x120f02,0x120f02,0x120f03, 0x120f03,0x120f03,0x120f03,0x120f03,0x120f03,0x120f03,0x120f03,0x120f03, 0x120f03,0x120f03,0x120f03,0x120f03,0x120f03,0x120f03,0x120f03,0x120e02, 0x120e02,0x120e02,0x120e02,0x120e02,0x120e02,0x120e02,0x120e02,0x120e02, 0x120e02,0x120e02,0x120e02,0x120e02,0x120e02,0x120e02,0x120e02,0x120e03, 0x120e03,0x120e03,0x120e03,0x120e03,0x120e03,0x120e03,0x120e03,0x120e03, 0x120e03,0x120e03,0x120e03,0x120e03,0x120e03,0x120e03,0x120e03,0x120304, 0x120304,0x120304,0x120304,0x120304,0x120304,0x120304,0x120304,0x120304, 0x120304,0x120304,0x120304,0x120304,0x120304,0x120304,0x120304,0x120305, 0x120305,0x120305,0x120305,0x120305,0x120305,0x120305,0x120305,0x120305, 0x120305,0x120305,0x120305,0x120305,0x120305,0x120305,0x120305,0x120206, 0x120206,0x120206,0x120206,0x120206,0x120206,0x120206,0x120206,0x120206, 0x120206,0x120206,0x120206,0x120206,0x120206,0x120206,0x120206,0x120207, 0x120207,0x120207,0x120207,0x120207,0x120207,0x120207,0x120207,0x120207, 0x120207,0x120207,0x120207,0x120207,0x120207,0x120207,0x120207,0x12010a, 0x12010a,0x12010a,0x12010a,0x12010a,0x12010a,0x12010a,0x12010a,0x12010a, 0x12010a,0x12010a,0x12010a,0x12010a,0x12010a,0x12010a,0x12010a,0x12010b, 0x12010b,0x12010b,0x12010b,0x12010b,0x12010b,0x12010b,0x12010b,0x12010b, 0x12010b,0x12010b,0x12010b,0x12010b,0x12010b,0x12010b,0x12010b }; //total 4096 I16 gTAB_INVERSE_Q[1024] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -3, 5, -5, 7, -7, 9, -9, 11, -11, 13, -13, 15, -15, 17, -17, 19, -19, 21, -21, 23, -23, 25, -25, 27, -27, 29, -29, 31, -31, 0, 0, 5, -5, 9, -9, 13, -13, 17, -17, 21, -21, 25, -25, 29, -29, 33, -33, 37, -37, 41, -41, 45, -45, 49, -49, 53, -53, 57, -57, 61, -61, 0, 0, 9, -9, 15, -15, 21, -21, 27, -27, 33, -33, 39, -39, 45, -45, 51, -51, 57, -57, 63, -63, 69, -69, 75, -75, 81, -81, 87, -87, 93, -93, 0, 0, 11, -11, 19, -19, 27, -27, 35, -35, 43, -43, 51, -51, 59, -59, 67, -67, 75, -75, 83, -83, 91, -91, 99, -99, 107, -107, 115, -115, 123, -123, 0, 0, 15, -15, 25, -25, 35, -35, 45, -45, 55, -55, 65, -65, 75, -75, 85, -85, 95, -95, 105, -105, 115, -115, 125, -125, 135, -135, 145, -145, 155, -155, 0, 0, 17, -17, 29, -29, 41, -41, 53, -53, 65, -65, 77, -77, 89, -89, 101, -101, 113, -113, 125, -125, 137, -137, 149, -149, 161, -161, 173, -173, 185, -185, 0, 0, 21, -21, 35, -35, 49, -49, 63, -63, 77, -77, 91, -91, 105, -105, 119, -119, 133, -133, 147, -147, 161, -161, 175, -175, 189, -189, 203, -203, 217, -217, 0, 0, 23, -23, 39, -39, 55, -55, 71, -71, 87, -87, 103, -103, 119, -119, 135, -135, 151, -151, 167, -167, 183, -183, 199, -199, 215, -215, 231, -231, 247, -247, 0, 0, 27, -27, 45, -45, 63, -63, 81, -81, 99, -99, 117, -117, 135, -135, 153, -153, 171, -171, 189, -189, 207, -207, 225, -225, 243, -243, 261, -261, 279, -279, 0, 0, 29, -29, 49, -49, 69, -69, 89, -89, 109, -109, 129, -129, 149, -149, 169, -169, 189, -189, 209, -209, 229, -229, 249, -249, 269, -269, 289, -289, 309, -309, 0, 0, 33, -33, 55, -55, 77, -77, 99, -99, 121, -121, 143, -143, 165, -165, 187, -187, 209, -209, 231, -231, 253, -253, 275, -275, 297, -297, 319, -319, 341, -341, 0, 0, 35, -35, 59, -59, 83, -83, 107, -107, 131, -131, 155, -155, 179, -179, 203, -203, 227, -227, 251, -251, 275, -275, 299, -299, 323, -323, 347, -347, 371, -371, 0, 0, 39, -39, 65, -65, 91, -91, 117, -117, 143, -143, 169, -169, 195, -195, 221, -221, 247, -247, 273, -273, 299, -299, 325, -325, 351, -351, 377, -377, 403, -403, 0, 0, 41, -41, 69, -69, 97, -97, 125, -125, 153, -153, 181, -181, 209, -209, 237, -237, 265, -265, 293, -293, 321, -321, 349, -349, 377, -377, 405, -405, 433, -433, 0, 0, 45, -45, 75, -75, 105, -105, 135, -135, 165, -165, 195, -195, 225, -225, 255, -255, 285, -285, 315, -315, 345, -345, 375, -375, 405, -405, 435, -435, 465, -465, 0, 0, 47, -47, 79, -79, 111, -111, 143, -143, 175, -175, 207, -207, 239, -239, 271, -271, 303, -303, 335, -335, 367, -367, 399, -399, 431, -431, 463, -463, 495, -495, 0, 0, 51, -51, 85, -85, 119, -119, 153, -153, 187, -187, 221, -221, 255, -255, 289, -289, 323, -323, 357, -357, 391, -391, 425, -425, 459, -459, 493, -493, 527, -527, 0, 0, 53, -53, 89, -89, 125, -125, 161, -161, 197, -197, 233, -233, 269, -269, 305, -305, 341, -341, 377, -377, 413, -413, 449, -449, 485, -485, 521, -521, 557, -557, 0, 0, 57, -57, 95, -95, 133, -133, 171, -171, 209, -209, 247, -247, 285, -285, 323, -323, 361, -361, 399, -399, 437, -437, 475, -475, 513, -513, 551, -551, 589, -589, 0, 0, 59, -59, 99, -99, 139, -139, 179, -179, 219, -219, 259, -259, 299, -299, 339, -339, 379, -379, 419, -419, 459, -459, 499, -499, 539, -539, 579, -579, 619, -619, 0, 0, 63, -63, 105, -105, 147, -147, 189, -189, 231, -231, 273, -273, 315, -315, 357, -357, 399, -399, 441, -441, 483, -483, 525, -525, 567, -567, 609, -609, 651, -651, 0, 0, 65, -65, 109, -109, 153, -153, 197, -197, 241, -241, 285, -285, 329, -329, 373, -373, 417, -417, 461, -461, 505, -505, 549, -549, 593, -593, 637, -637, 681, -681, 0, 0, 69, -69, 115, -115, 161, -161, 207, -207, 253, -253, 299, -299, 345, -345, 391, -391, 437, -437, 483, -483, 529, -529, 575, -575, 621, -621, 667, -667, 713, -713, 0, 0, 71, -71, 119, -119, 167, -167, 215, -215, 263, -263, 311, -311, 359, -359, 407, -407, 455, -455, 503, -503, 551, -551, 599, -599, 647, -647, 695, -695, 743, -743, 0, 0, 75, -75, 125, -125, 175, -175, 225, -225, 275, -275, 325, -325, 375, -375, 425, -425, 475, -475, 525, -525, 575, -575, 625, -625, 675, -675, 725, -725, 775, -775, 0, 0, 77, -77, 129, -129, 181, -181, 233, -233, 285, -285, 337, -337, 389, -389, 441, -441, 493, -493, 545, -545, 597, -597, 649, -649, 701, -701, 753, -753, 805, -805, 0, 0, 81, -81, 135, -135, 189, -189, 243, -243, 297, -297, 351, -351, 405, -405, 459, -459, 513, -513, 567, -567, 621, -621, 675, -675, 729, -729, 783, -783, 837, -837, 0, 0, 83, -83, 139, -139, 195, -195, 251, -251, 307, -307, 363, -363, 419, -419, 475, -475, 531, -531, 587, -587, 643, -643, 699, -699, 755, -755, 811, -811, 867, -867, 0, 0, 87, -87, 145, -145, 203, -203, 261, -261, 319, -319, 377, -377, 435, -435, 493, -493, 551, -551, 609, -609, 667, -667, 725, -725, 783, -783, 841, -841, 899, -899, 0, 0, 89, -89, 149, -149, 209, -209, 269, -269, 329, -329, 389, -389, 449, -449, 509, -509, 569, -569, 629, -629, 689, -689, 749, -749, 809, -809, 869, -869, 929, -929, 0, 0, 93, -93, 155, -155, 217, -217, 279, -279, 341, -341, 403, -403, 465, -465, 527, -527, 589, -589, 651, -651, 713, -713, 775, -775, 837, -837, 899, -899, 961, -961 }; U32 gTAB_ZZ_RUN[64]= { 0, 1, 8, 16, 9, 2, 3, 10, 17, 24, 32, 25, 18, 11, 4, 5, 12, 19, 26, 33, 40, 48, 41, 34, 27, 20, 13, 6, 7, 14, 21, 28, 35, 42, 49, 56, 57, 50, 43, 36, 29, 22, 15, 23, 30, 37, 44, 51, 58, 59, 52, 45, 38, 31, 39, 46, 53, 60, 61, 54, 47, 55, 62, 63 } ; //input is the cumulative run value