00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00028 #ifndef AVCODEC_ATRAC3DATA_H
00029 #define AVCODEC_ATRAC3DATA_H
00030 
00031 #include <stdint.h>
00032 
00033 
00034 
00035 static const uint8_t huffcode1[9] = {
00036   0x0,0x4,0x5,0xC,0xD,0x1C,0x1D,0x1E,0x1F,
00037 };
00038 
00039 static const uint8_t huffbits1[9] = {
00040   1,3,3,4,4,5,5,5,5,
00041 };
00042 
00043 static const uint8_t huffcode2[5] = {
00044   0x0,0x4,0x5,0x6,0x7,
00045 };
00046 
00047 static const uint8_t huffbits2[5] = {
00048   1,3,3,3,3,
00049 };
00050 
00051 static const uint8_t huffcode3[7] = {
00052 0x0,0x4,0x5,0xC,0xD,0xE,0xF,
00053 };
00054 
00055 static const uint8_t huffbits3[7] = {
00056   1,3,3,4,4,4,4,
00057 };
00058 
00059 static const uint8_t huffcode4[9] = {
00060   0x0,0x4,0x5,0xC,0xD,0x1C,0x1D,0x1E,0x1F,
00061 };
00062 
00063 static const uint8_t huffbits4[9] = {
00064   1,3,3,4,4,5,5,5,5,
00065 };
00066 
00067 static const uint8_t huffcode5[15] = {
00068   0x0,0x2,0x3,0x8,0x9,0xA,0xB,0x1C,0x1D,0x3C,0x3D,0x3E,0x3F,0xC,0xD,
00069 };
00070 
00071 static const uint8_t huffbits5[15] = {
00072   2,3,3,4,4,4,4,5,5,6,6,6,6,4,4
00073 };
00074 
00075 static const uint8_t huffcode6[31] = {
00076   0x0,0x2,0x3,0x4,0x5,0x6,0x7,0x14,0x15,0x16,0x17,0x18,0x19,0x34,0x35,
00077   0x36,0x37,0x38,0x39,0x3A,0x3B,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F,0x8,0x9,
00078 };
00079 
00080 static const uint8_t huffbits6[31] = {
00081   3,4,4,4,4,4,4,5,5,5,5,5,5,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,4,4
00082 };
00083 
00084 static const uint8_t huffcode7[63] = {
00085   0x0,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF,0x10,0x11,0x24,0x25,0x26,0x27,0x28,
00086   0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F,0x30,0x31,0x32,0x33,0x68,0x69,0x6A,0x6B,0x6C,
00087   0x6D,0x6E,0x6F,0x70,0x71,0x72,0x73,0x74,0x75,0xEC,0xED,0xEE,0xEF,0xF0,0xF1,0xF2,
00088   0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF,0x2,0x3,
00089 };
00090 
00091 static const uint8_t huffbits7[63] = {
00092   3,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,
00093   7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,4,4
00094 };
00095 
00096 static const uint8_t huff_tab_sizes[7] = {
00097   9, 5, 7, 9, 15, 31, 63,
00098 };
00099 
00100 static const uint8_t* const huff_codes[7] = {
00101   huffcode1,huffcode2,huffcode3,huffcode4,huffcode5,huffcode6,huffcode7,
00102 };
00103 
00104 static const uint8_t* const huff_bits[7] = {
00105   huffbits1,huffbits2,huffbits3,huffbits4,huffbits5,huffbits6,huffbits7,
00106 };
00107 
00108 static const uint16_t atrac3_vlc_offs[] = {
00109     0,512,1024,1536,2048,2560,3072,3584,4096
00110 };
00111 
00112 
00113 
00114 static const uint8_t CLCLengthTab[8] = {0, 4, 3, 3, 4, 4, 5, 6};
00115 static const int8_t seTab_0[4] = {0, 1, -2, -1};
00116 static const int8_t decTable1[18] = {0,0, 0,1, 0,-1, 1,0, -1,0, 1,1, 1,-1, -1,1, -1,-1};
00117 
00118 
00119 
00120 
00121 static const float iMaxQuant[8] = {
00122   0.0, 1.0/1.5, 1.0/2.5, 1.0/3.5, 1.0/4.5, 1.0/7.5, 1.0/15.5, 1.0/31.5
00123 };
00124 
00125 static const uint16_t subbandTab[33] = {
00126   0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, 176, 192, 224,
00127   256, 288, 320, 352, 384, 416, 448, 480, 512, 576, 640, 704, 768, 896, 1024
00128 };
00129 
00130 
00131 static const float matrixCoeffs[8] = {0.0, 2.0, 2.0, 2.0, 0.0, 0.0, 1.0, 1.0};
00132 
00133 #endif