1/* 2 * COOK compatible decoder data 3 * Copyright (c) 2003 Sascha Sommer 4 * Copyright (c) 2005 Benjamin Larsson 5 * 6 * This file is part of Libav. 7 * 8 * Libav is free software; you can redistribute it and/or 9 * modify it under the terms of the GNU Lesser General Public 10 * License as published by the Free Software Foundation; either 11 * version 2.1 of the License, or (at your option) any later version. 12 * 13 * Libav is distributed in the hope that it will be useful, 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 * Lesser General Public License for more details. 17 * 18 * You should have received a copy of the GNU Lesser General Public 19 * License along with Libav; if not, write to the Free Software 20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 21 */ 22 23/** 24 * @file 25 * Cook AKA RealAudio G2 compatible decoderdata 26 */ 27 28#ifndef AVCODEC_COOKDATA_H 29#define AVCODEC_COOKDATA_H 30 31#include <stdint.h> 32 33/* various data tables */ 34 35static const int expbits_tab[8] = { 36 52,47,43,37,29,22,16,0, 37}; 38 39static const float dither_tab[9] = { 40 0.0, 0.0, 0.0, 0.0, 0.0, 0.176777, 0.25, 0.707107, 1.0 41}; 42 43static const float quant_centroid_tab[7][14] = { 44 { 0.000, 0.392, 0.761, 1.120, 1.477, 1.832, 2.183, 2.541, 2.893, 3.245, 3.598, 3.942, 4.288, 4.724 }, 45 { 0.000, 0.544, 1.060, 1.563, 2.068, 2.571, 3.072, 3.562, 4.070, 4.620, 0.000, 0.000, 0.000, 0.000 }, 46 { 0.000, 0.746, 1.464, 2.180, 2.882, 3.584, 4.316, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000 }, 47 { 0.000, 1.006, 2.000, 2.993, 3.985, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000 }, 48 { 0.000, 1.321, 2.703, 3.983, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000 }, 49 { 0.000, 1.657, 3.491, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000 }, 50 { 0.000, 1.964, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000 } 51}; 52 53static const int invradix_tab[7] = { 54 74899, 104858, 149797, 209716, 262144, 349526, 524288, 55}; 56 57static const int kmax_tab[7] = { 58 13, 9, 6, 4, 3, 2, 1, 59}; 60 61static const int vd_tab[7] = { 62 2, 2, 2, 4, 4, 5, 5, 63}; 64 65static const int vpr_tab[7] = { 66 10, 10, 10, 5, 5, 4, 4, 67}; 68 69 70 71/* VLC data */ 72 73static const int vhsize_tab[7] = { 74 191, 97, 48, 607, 246, 230, 32, 75}; 76 77static const int vhvlcsize_tab[7] = { 78 8, 7, 7, 10, 9, 9, 6, 79}; 80 81static const uint8_t envelope_quant_index_huffbits[13][24] = { 82 { 4, 6, 5, 5, 4, 4, 4, 4, 4, 4, 3, 3, 3, 4, 5, 7, 8, 9, 11, 11, 12, 12, 12, 12 }, 83 { 10, 8, 6, 5, 5, 4, 3, 3, 3, 3, 3, 3, 4, 5, 7, 9, 11, 12, 13, 15, 15, 15, 16, 16 }, 84 { 12, 10, 8, 6, 5, 4, 4, 4, 4, 4, 4, 3, 3, 3, 4, 4, 5, 5, 7, 9, 11, 13, 14, 14 }, 85 { 13, 10, 9, 9, 7, 7, 5, 5, 4, 3, 3, 3, 3, 3, 4, 4, 4, 5, 7, 9, 11, 13, 13, 13 }, 86 { 12, 13, 10, 8, 6, 6, 5, 5, 4, 4, 3, 3, 3, 3, 3, 4, 5, 5, 6, 7, 9, 11, 14, 14 }, 87 { 12, 11, 9, 8, 8, 7, 5, 4, 4, 3, 3, 3, 3, 3, 4, 4, 5, 5, 7, 8, 10, 13, 14, 14 }, 88 { 15, 16, 15, 12, 10, 8, 6, 5, 4, 3, 3, 3, 2, 3, 4, 5, 5, 7, 9, 11, 13, 16, 16, 16 }, 89 { 14, 14, 11, 10, 9, 7, 7, 5, 5, 4, 3, 3, 2, 3, 3, 4, 5, 7, 9, 9, 12, 14, 15, 15 }, 90 { 9, 9, 9, 8, 7, 6, 5, 4, 3, 3, 3, 3, 3, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 13 }, 91 { 14, 12, 10, 8, 6, 6, 5, 4, 3, 3, 3, 3, 3, 3, 4, 5, 6, 8, 8, 9, 11, 14, 14, 14 }, 92 { 13, 10, 9, 8, 6, 6, 5, 4, 4, 4, 3, 3, 2, 3, 4, 5, 6, 8, 9, 9, 11, 12, 14, 14 }, 93 { 16, 13, 12, 11, 9, 6, 5, 5, 4, 4, 4, 3, 2, 3, 3, 4, 5, 7, 8, 10, 14, 16, 16, 16 }, 94 { 13, 14, 14, 14, 10, 8, 7, 7, 5, 4, 3, 3, 2, 3, 3, 4, 5, 5, 7, 9, 11, 14, 14, 14 }, 95}; 96 97static const uint16_t envelope_quant_index_huffcodes[13][24] = { 98 {0x0006, 0x003e, 0x001c, 0x001d, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x0000, 0x0001, 99 0x0002, 0x000d, 0x001e, 0x007e, 0x00fe, 0x01fe, 0x07fc, 0x07fd, 0x0ffc, 0x0ffd, 0x0ffe, 0x0fff}, 100 {0x03fe, 0x00fe, 0x003e, 0x001c, 0x001d, 0x000c, 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 101 0x000d, 0x001e, 0x007e, 0x01fe, 0x07fe, 0x0ffe, 0x1ffe, 0x7ffc, 0x7ffd, 0x7ffe, 0xfffe, 0xffff}, 102 {0x0ffe, 0x03fe, 0x00fe, 0x003e, 0x001c, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x0000, 103 0x0001, 0x0002, 0x000c, 0x000d, 0x001d, 0x001e, 0x007e, 0x01fe, 0x07fe, 0x1ffe, 0x3ffe, 0x3fff}, 104 {0x1ffc, 0x03fe, 0x01fc, 0x01fd, 0x007c, 0x007d, 0x001c, 0x001d, 0x000a, 0x0000, 0x0001, 0x0002, 105 0x0003, 0x0004, 0x000b, 0x000c, 0x000d, 0x001e, 0x007e, 0x01fe, 0x07fe, 0x1ffd, 0x1ffe, 0x1fff}, 106 {0x0ffe, 0x1ffe, 0x03fe, 0x00fe, 0x003c, 0x003d, 0x001a, 0x001b, 0x000a, 0x000b, 0x0000, 0x0001, 107 0x0002, 0x0003, 0x0004, 0x000c, 0x001c, 0x001d, 0x003e, 0x007e, 0x01fe, 0x07fe, 0x3ffe, 0x3fff}, 108 {0x0ffe, 0x07fe, 0x01fe, 0x00fc, 0x00fd, 0x007c, 0x001c, 0x000a, 0x000b, 0x0000, 0x0001, 0x0002, 109 0x0003, 0x0004, 0x000c, 0x000d, 0x001d, 0x001e, 0x007d, 0x00fe, 0x03fe, 0x1ffe, 0x3ffe, 0x3fff}, 110 {0x7ffc, 0xfffc, 0x7ffd, 0x0ffe, 0x03fe, 0x00fe, 0x003e, 0x001c, 0x000c, 0x0002, 0x0003, 0x0004, 111 0x0000, 0x0005, 0x000d, 0x001d, 0x001e, 0x007e, 0x01fe, 0x07fe, 0x1ffe, 0xfffd, 0xfffe, 0xffff}, 112 {0x3ffc, 0x3ffd, 0x07fe, 0x03fe, 0x01fc, 0x007c, 0x007d, 0x001c, 0x001d, 0x000c, 0x0002, 0x0003, 113 0x0000, 0x0004, 0x0005, 0x000d, 0x001e, 0x007e, 0x01fd, 0x01fe, 0x0ffe, 0x3ffe, 0x7ffe, 0x7fff}, 114 {0x01fc, 0x01fd, 0x01fe, 0x00fc, 0x007c, 0x003c, 0x001c, 0x000c, 0x0000, 0x0001, 0x0002, 0x0003, 115 0x0004, 0x0005, 0x000d, 0x001d, 0x003d, 0x007d, 0x00fd, 0x03fe, 0x07fe, 0x0ffe, 0x1ffe, 0x1fff}, 116 {0x3ffc, 0x0ffe, 0x03fe, 0x00fc, 0x003c, 0x003d, 0x001c, 0x000c, 0x0000, 0x0001, 0x0002, 0x0003, 117 0x0004, 0x0005, 0x000d, 0x001d, 0x003e, 0x00fd, 0x00fe, 0x01fe, 0x07fe, 0x3ffd, 0x3ffe, 0x3fff}, 118 {0x1ffe, 0x03fe, 0x01fc, 0x00fc, 0x003c, 0x003d, 0x001c, 0x000a, 0x000b, 0x000c, 0x0002, 0x0003, 119 0x0000, 0x0004, 0x000d, 0x001d, 0x003e, 0x00fd, 0x01fd, 0x01fe, 0x07fe, 0x0ffe, 0x3ffe, 0x3fff}, 120 {0xfffc, 0x1ffe, 0x0ffe, 0x07fe, 0x01fe, 0x003e, 0x001c, 0x001d, 0x000a, 0x000b, 0x000c, 0x0002, 121 0x0000, 0x0003, 0x0004, 0x000d, 0x001e, 0x007e, 0x00fe, 0x03fe, 0x3ffe, 0xfffd, 0xfffe, 0xffff}, 122 {0x1ffc, 0x3ffa, 0x3ffb, 0x3ffc, 0x03fe, 0x00fe, 0x007c, 0x007d, 0x001c, 0x000c, 0x0002, 0x0003, 123 0x0000, 0x0004, 0x0005, 0x000d, 0x001d, 0x001e, 0x007e, 0x01fe, 0x07fe, 0x3ffd, 0x3ffe, 0x3fff}, 124}; 125 126 127static const uint8_t cvh_huffbits0[191] = { 128 1, 4, 6, 6, 7, 7, 8, 8, 8, 9, 9, 10, 129 11, 11, 4, 5, 6, 7, 7, 8, 8, 9, 9, 9, 130 9, 10, 11, 11, 5, 6, 7, 8, 8, 9, 9, 9, 131 9, 10, 10, 10, 11, 12, 6, 7, 8, 9, 9, 9, 132 9, 10, 10, 10, 10, 11, 12, 13, 7, 7, 8, 9, 133 9, 9, 10, 10, 10, 10, 11, 11, 12, 13, 8, 8, 134 9, 9, 9, 10, 10, 10, 10, 11, 11, 12, 13, 14, 135 8, 8, 9, 9, 10, 10, 11, 11, 11, 12, 12, 13, 136 13, 15, 8, 8, 9, 9, 10, 10, 11, 11, 11, 12, 137 12, 13, 14, 15, 9, 9, 9, 10, 10, 10, 11, 11, 138 12, 13, 12, 14, 15, 16, 9, 9, 10, 10, 10, 10, 139 11, 12, 12, 14, 14, 16, 16, 0, 9, 9, 10, 10, 140 11, 11, 12, 13, 13, 14, 14, 15, 0, 0, 10, 10, 141 10, 11, 11, 12, 12, 13, 15, 15, 16, 0, 0, 0, 142 11, 11, 11, 12, 13, 13, 13, 15, 16, 16, 0, 0, 143 0, 0, 11, 11, 12, 13, 13, 14, 15, 16, 16, 144}; 145 146static const uint16_t cvh_huffcodes0[191] = { 147 0x0000,0x0008,0x002c,0x002d,0x0062,0x0063,0x00d4,0x00d5,0x00d6,0x01c6,0x01c7,0x03ca, 148 0x07d6,0x07d7,0x0009,0x0014,0x002e,0x0064,0x0065,0x00d7,0x00d8,0x01c8,0x01c9,0x01ca, 149 0x01cb,0x03cb,0x07d8,0x07d9,0x0015,0x002f,0x0066,0x00d9,0x00da,0x01cc,0x01cd,0x01ce, 150 0x01cf,0x03cc,0x03cd,0x03ce,0x07da,0x0fe4,0x0030,0x0067,0x00db,0x01d0,0x01d1,0x01d2, 151 0x01d3,0x03cf,0x03d0,0x03d1,0x03d2,0x07db,0x0fe5,0x1fea,0x0068,0x0069,0x00dc,0x01d4, 152 0x01d5,0x01d6,0x03d3,0x03d4,0x03d5,0x03d6,0x07dc,0x07dd,0x0fe6,0x1feb,0x00dd,0x00de, 153 0x01d7,0x01d8,0x01d9,0x03d7,0x03d8,0x03d9,0x03da,0x07de,0x07df,0x0fe7,0x1fec,0x3ff2, 154 0x00df,0x00e0,0x01da,0x01db,0x03db,0x03dc,0x07e0,0x07e1,0x07e2,0x0fe8,0x0fe9,0x1fed, 155 0x1fee,0x7ff4,0x00e1,0x00e2,0x01dc,0x01dd,0x03dd,0x03de,0x07e3,0x07e4,0x07e5,0x0fea, 156 0x0feb,0x1fef,0x3ff3,0x7ff5,0x01de,0x01df,0x01e0,0x03df,0x03e0,0x03e1,0x07e6,0x07e7, 157 0x0fec,0x1ff0,0x0fed,0x3ff4,0x7ff6,0xfff8,0x01e1,0x01e2,0x03e2,0x03e3,0x03e4,0x03e5, 158 0x07e8,0x0fee,0x0fef,0x3ff5,0x3ff6,0xfff9,0xfffa,0xfffa,0x01e3,0x01e4,0x03e6,0x03e7, 159 0x07e9,0x07ea,0x0ff0,0x1ff1,0x1ff2,0x3ff7,0x3ff8,0x7ff7,0x7ff7,0xfffa,0x03e8,0x03e9, 160 0x03ea,0x07eb,0x07ec,0x0ff1,0x0ff2,0x1ff3,0x7ff8,0x7ff9,0xfffb,0x3ff8,0x7ff7,0x7ff7, 161 0x07ed,0x07ee,0x07ef,0x0ff3,0x1ff4,0x1ff5,0x1ff6,0x7ffa,0xfffc,0xfffd,0xfffb,0xfffb, 162 0x3ff8,0x7ff7,0x07f0,0x07f1,0x0ff4,0x1ff7,0x1ff8,0x3ff9,0x7ffb,0xfffe,0xffff, 163}; 164 165 166static const uint8_t cvh_huffbits1[97] = { 167 1, 4, 5, 6, 7, 8, 8, 9, 10, 10, 4, 5, 168 6, 7, 7, 8, 8, 9, 9, 11, 5, 5, 6, 7, 169 8, 8, 9, 9, 10, 11, 6, 6, 7, 8, 8, 9, 170 9, 10, 11, 12, 7, 7, 8, 8, 9, 9, 10, 11, 171 11, 13, 8, 8, 8, 9, 9, 10, 10, 11, 12, 14, 172 8, 8, 8, 9, 10, 11, 11, 12, 13, 15, 9, 9, 173 9, 10, 11, 12, 12, 14, 14, 0, 9, 9, 9, 10, 174 11, 12, 14, 16, 0, 0, 10, 10, 11, 12, 13, 14, 175 16, 176}; 177 178 179static const uint16_t cvh_huffcodes1[97] = { 180 0x0000,0x0008,0x0014,0x0030,0x006a,0x00e2,0x00e3,0x01e4,0x03ec,0x03ed,0x0009,0x0015, 181 0x0031,0x006b,0x006c,0x00e4,0x00e5,0x01e5,0x01e6,0x07f0,0x0016,0x0017,0x0032,0x006d, 182 0x00e6,0x00e7,0x01e7,0x01e8,0x03ee,0x07f1,0x0033,0x0034,0x006e,0x00e8,0x00e9,0x01e9, 183 0x01ea,0x03ef,0x07f2,0x0ff6,0x006f,0x0070,0x00ea,0x00eb,0x01eb,0x01ec,0x03f0,0x07f3, 184 0x07f4,0x1ffa,0x00ec,0x00ed,0x00ee,0x01ed,0x01ee,0x03f1,0x03f2,0x07f5,0x0ff7,0x3ffa, 185 0x00ef,0x00f0,0x00f1,0x01ef,0x03f3,0x07f6,0x07f7,0x0ff8,0x1ffb,0x7ffe,0x01f0,0x01f1, 186 0x01f2,0x03f4,0x07f8,0x0ff9,0x0ffa,0x3ffb,0x3ffc,0x0000,0x01f3,0x01f4,0x01f5,0x03f5, 187 0x07f9,0x0ffb,0x3ffd,0xfffe,0x0000,0x0000,0x03f6,0x03f7,0x07fa,0x0ffc,0x1ffc,0x3ffe, 188 0xffff, 189}; 190 191static const uint8_t cvh_huffbits2[48] = { 192 1, 4, 5, 7, 8, 9, 10, 3, 4, 5, 7, 8, 193 9, 10, 5, 5, 6, 7, 8, 10, 10, 7, 6, 7, 194 8, 9, 10, 12, 8, 8, 8, 9, 10, 12, 14, 8, 195 9, 9, 10, 11, 15, 16, 9, 10, 11, 12, 13, 16, 196}; 197 198static const uint16_t cvh_huffcodes2[48] = { 199 0x0000,0x000a,0x0018,0x0074,0x00f2,0x01f4,0x03f6,0x0004,0x000b,0x0019,0x0075,0x00f3, 200 0x01f5,0x03f7,0x001a,0x001b,0x0038,0x0076,0x00f4,0x03f8,0x03f9,0x0077,0x0039,0x0078, 201 0x00f5,0x01f6,0x03fa,0x0ffc,0x00f6,0x00f7,0x00f8,0x01f7,0x03fb,0x0ffd,0x3ffe,0x00f9, 202 0x01f8,0x01f9,0x03fc,0x07fc,0x7ffe,0xfffe,0x01fa,0x03fd,0x07fd,0x0ffe,0x1ffe,0xffff, 203}; 204 205static const uint8_t cvh_huffbits3[607] = { 206 2, 4, 6, 8, 10, 5, 5, 6, 8, 10, 7, 8, 207 8, 10, 12, 9, 9, 10, 12, 15, 10, 11, 13, 16, 208 16, 5, 6, 8, 10, 11, 5, 6, 8, 10, 12, 7, 209 7, 8, 10, 13, 9, 9, 10, 12, 15, 12, 11, 13, 210 16, 16, 7, 9, 10, 12, 15, 7, 8, 10, 12, 13, 211 9, 9, 11, 13, 16, 11, 11, 12, 14, 16, 12, 12, 212 14, 16, 0, 9, 11, 12, 16, 16, 9, 10, 13, 15, 213 16, 10, 11, 12, 16, 16, 13, 13, 16, 16, 16, 16, 214 16, 15, 16, 0, 11, 13, 16, 16, 15, 11, 13, 15, 215 16, 16, 13, 13, 16, 16, 0, 14, 16, 16, 16, 0, 216 16, 16, 0, 0, 0, 4, 6, 8, 10, 13, 6, 6, 217 8, 10, 13, 9, 8, 10, 12, 16, 10, 10, 11, 15, 218 16, 13, 12, 14, 16, 16, 5, 6, 8, 11, 13, 6, 219 6, 8, 10, 13, 8, 8, 9, 11, 14, 10, 10, 12, 220 12, 16, 13, 12, 13, 15, 16, 7, 8, 9, 12, 16, 221 7, 8, 10, 12, 14, 9, 9, 10, 13, 16, 11, 10, 222 12, 15, 16, 13, 13, 16, 16, 0, 9, 11, 13, 16, 223 16, 9, 10, 12, 15, 16, 10, 11, 13, 16, 16, 13, 224 12, 16, 16, 16, 16, 16, 16, 16, 0, 11, 13, 16, 225 16, 16, 11, 13, 16, 16, 16, 12, 13, 15, 16, 0, 226 16, 16, 16, 16, 0, 16, 16, 0, 0, 0, 6, 8, 227 11, 13, 16, 8, 8, 10, 12, 16, 11, 10, 11, 13, 228 16, 12, 13, 13, 15, 16, 16, 16, 14, 16, 0, 6, 229 8, 10, 13, 16, 8, 8, 10, 12, 16, 10, 10, 11, 230 13, 16, 13, 12, 13, 16, 16, 14, 14, 14, 16, 0, 231 8, 9, 11, 13, 16, 8, 9, 11, 16, 14, 10, 10, 232 12, 15, 16, 12, 12, 13, 16, 16, 15, 16, 16, 16, 233 0, 10, 12, 15, 16, 16, 10, 12, 12, 14, 16, 12, 234 12, 13, 16, 16, 14, 15, 16, 16, 0, 16, 16, 16, 235 0, 0, 12, 15, 15, 16, 0, 13, 13, 16, 16, 0, 236 14, 16, 16, 16, 0, 16, 16, 16, 0, 0, 0, 0, 237 0, 0, 0, 8, 10, 13, 15, 16, 10, 11, 13, 16, 238 16, 13, 13, 14, 16, 16, 16, 16, 16, 16, 16, 16, 239 16, 16, 16, 0, 8, 10, 11, 15, 16, 9, 10, 12, 240 16, 16, 12, 12, 15, 16, 16, 16, 14, 16, 16, 16, 241 16, 16, 16, 16, 0, 9, 11, 14, 16, 16, 10, 11, 242 13, 16, 16, 14, 13, 14, 16, 16, 16, 15, 15, 16, 243 0, 16, 16, 16, 0, 0, 11, 13, 16, 16, 16, 11, 244 13, 15, 16, 16, 13, 16, 16, 16, 0, 16, 16, 16, 245 16, 0, 16, 16, 0, 0, 0, 15, 16, 16, 16, 0, 246 14, 16, 16, 16, 0, 16, 16, 16, 0, 0, 16, 16, 247 0, 0, 0, 0, 0, 0, 0, 0, 9, 13, 16, 16, 248 16, 11, 13, 16, 16, 16, 14, 15, 16, 16, 0, 15, 249 16, 16, 16, 0, 16, 16, 0, 0, 0, 9, 13, 15, 250 15, 16, 12, 13, 14, 16, 16, 16, 15, 16, 16, 0, 251 16, 16, 16, 16, 0, 16, 16, 0, 0, 0, 11, 13, 252 15, 16, 0, 12, 14, 16, 16, 0, 16, 16, 16, 16, 253 0, 16, 16, 16, 0, 0, 0, 0, 0, 0, 0, 16, 254 16, 16, 16, 0, 16, 16, 16, 16, 0, 16, 16, 16, 255 0, 0, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 256 16, 16, 0, 0, 0, 16, 16, 257}; 258 259 260static const uint16_t cvh_huffcodes3[607] = { 261 0x0000,0x0004,0x0022,0x00c6,0x03b0,0x000c,0x000d,0x0023,0x00c7,0x03b1,0x005c,0x00c8, 262 0x00c9,0x03b2,0x0fa4,0x01c2,0x01c3,0x03b3,0x0fa5,0x7f72,0x03b4,0x07b2,0x1f9a,0xff24, 263 0xff25,0x000e,0x0024,0x00ca,0x03b5,0x07b3,0x000f,0x0025,0x00cb,0x03b6,0x0fa6,0x005d, 264 0x005e,0x00cc,0x03b7,0x1f9b,0x01c4,0x01c5,0x03b8,0x0fa7,0x7f73,0x0fa8,0x07b4,0x1f9c, 265 0xff26,0xff27,0x005f,0x01c6,0x03b9,0x0fa9,0x7f74,0x0060,0x00cd,0x03ba,0x0faa,0x1f9d, 266 0x01c7,0x01c8,0x07b5,0x1f9e,0xff28,0x07b6,0x07b7,0x0fab,0x3fa2,0xff29,0x0fac,0x0fad, 267 0x3fa3,0xff2a,0x3fa2,0x01c9,0x07b8,0x0fae,0xff2b,0xff2c,0x01ca,0x03bb,0x1f9f,0x7f75, 268 0xff2d,0x03bc,0x07b9,0x0faf,0xff2e,0xff2f,0x1fa0,0x1fa1,0xff30,0xff31,0xff32,0xff33, 269 0xff34,0x7f76,0xff35,0xff31,0x07ba,0x1fa2,0xff36,0xff37,0x7f77,0x07bb,0x1fa3,0x7f78, 270 0xff38,0xff39,0x1fa4,0x1fa5,0xff3a,0xff3b,0xff2e,0x3fa4,0xff3c,0xff3d,0xff3e,0xff31, 271 0xff3f,0xff40,0xff30,0xff31,0xff31,0x0005,0x0026,0x00ce,0x03bd,0x1fa6,0x0027,0x0028, 272 0x00cf,0x03be,0x1fa7,0x01cb,0x00d0,0x03bf,0x0fb0,0xff41,0x03c0,0x03c1,0x07bc,0x7f79, 273 0xff42,0x1fa8,0x0fb1,0x3fa5,0xff43,0xff44,0x0010,0x0029,0x00d1,0x07bd,0x1fa9,0x002a, 274 0x002b,0x00d2,0x03c2,0x1faa,0x00d3,0x00d4,0x01cc,0x07be,0x3fa6,0x03c3,0x03c4,0x0fb2, 275 0x0fb3,0xff45,0x1fab,0x0fb4,0x1fac,0x7f7a,0xff46,0x0061,0x00d5,0x01cd,0x0fb5,0xff47, 276 0x0062,0x00d6,0x03c5,0x0fb6,0x3fa7,0x01ce,0x01cf,0x03c6,0x1fad,0xff48,0x07bf,0x03c7, 277 0x0fb7,0x7f7b,0xff49,0x1fae,0x1faf,0xff4a,0xff4b,0x7f7b,0x01d0,0x07c0,0x1fb0,0xff4c, 278 0xff4d,0x01d1,0x03c8,0x0fb8,0x7f7c,0xff4e,0x03c9,0x07c1,0x1fb1,0xff4f,0xff50,0x1fb2, 279 0x0fb9,0xff51,0xff52,0xff53,0xff54,0xff55,0xff56,0xff57,0xff52,0x07c2,0x1fb3,0xff58, 280 0xff59,0xff5a,0x07c3,0x1fb4,0xff5b,0xff5c,0xff5d,0x0fba,0x1fb5,0x7f7d,0xff5e,0xff4f, 281 0xff5f,0xff60,0xff61,0xff62,0xff52,0xff63,0xff64,0xff51,0xff52,0xff52,0x002c,0x00d7, 282 0x07c4,0x1fb6,0xff65,0x00d8,0x00d9,0x03ca,0x0fbb,0xff66,0x07c5,0x03cb,0x07c6,0x1fb7, 283 0xff67,0x0fbc,0x1fb8,0x1fb9,0x7f7e,0xff68,0xff69,0xff6a,0x3fa8,0xff6b,0x7f7e,0x002d, 284 0x00da,0x03cc,0x1fba,0xff6c,0x00db,0x00dc,0x03cd,0x0fbd,0xff6d,0x03ce,0x03cf,0x07c7, 285 0x1fbb,0xff6e,0x1fbc,0x0fbe,0x1fbd,0xff6f,0xff70,0x3fa9,0x3faa,0x3fab,0xff71,0xff6f, 286 0x00dd,0x01d2,0x07c8,0x1fbe,0xff72,0x00de,0x01d3,0x07c9,0xff73,0x3fac,0x03d0,0x03d1, 287 0x0fbf,0x7f7f,0xff74,0x0fc0,0x0fc1,0x1fbf,0xff75,0xff76,0x7f80,0xff77,0xff78,0xff79, 288 0xff75,0x03d2,0x0fc2,0x7f81,0xff7a,0xff7b,0x03d3,0x0fc3,0x0fc4,0x3fad,0xff7c,0x0fc5, 289 0x0fc6,0x1fc0,0xff7d,0xff7e,0x3fae,0x7f82,0xff7f,0xff80,0xff80,0xff81,0xff82,0xff83, 290 0xff80,0xff80,0x0fc7,0x7f83,0x7f84,0xff84,0xff7a,0x1fc1,0x1fc2,0xff85,0xff86,0x3fad, 291 0x3faf,0xff87,0xff88,0xff89,0xff7d,0xff8a,0xff8b,0xff8c,0xff80,0xff80,0x3fae,0x7f82, 292 0xff7f,0xff80,0xff80,0x00df,0x03d4,0x1fc3,0x7f85,0xff8d,0x03d5,0x07ca,0x1fc4,0xff8e, 293 0xff8f,0x1fc5,0x1fc6,0x3fb0,0xff90,0xff91,0xff92,0xff93,0xff94,0xff95,0xff96,0xff97, 294 0xff98,0xff99,0xff9a,0xff95,0x00e0,0x03d6,0x07cb,0x7f86,0xff9b,0x01d4,0x03d7,0x0fc8, 295 0xff9c,0xff9d,0x0fc9,0x0fca,0x7f87,0xff9e,0xff9f,0xffa0,0x3fb1,0xffa1,0xffa2,0xffa3, 296 0xffa4,0xffa5,0xffa6,0xffa7,0xffa2,0x01d5,0x07cc,0x3fb2,0xffa8,0xffa9,0x03d8,0x07cd, 297 0x1fc7,0xffaa,0xffab,0x3fb3,0x1fc8,0x3fb4,0xffac,0xffad,0xffae,0x7f88,0x7f89,0xffaf, 298 0xffaf,0xffb0,0xffb1,0xffb2,0xffaf,0xffaf,0x07ce,0x1fc9,0xffb3,0xffb4,0xffb5,0x07cf, 299 0x1fca,0x7f8a,0xffb6,0xffb7,0x1fcb,0xffb8,0xffb9,0xffba,0xffba,0xffbb,0xffbc,0xffbd, 300 0xffbe,0xffbe,0xffbf,0xffc0,0xffbd,0xffbe,0xffbe,0x7f8b,0xffc1,0xffc2,0xffc3,0xffb4, 301 0x3fb5,0xffc4,0xffc5,0xffc6,0xffb6,0xffc7,0xffc8,0xffc9,0xffba,0xffba,0xffca,0xffcb, 302 0xffbd,0xffbe,0xffbe,0xffbb,0xffbc,0xffbd,0xffbe,0xffbe,0x01d6,0x1fcc,0xffcc,0xffcd, 303 0xffce,0x07d0,0x1fcd,0xffcf,0xffd0,0xffd1,0x3fb6,0x7f8c,0xffd2,0xffd3,0xff90,0x7f8d, 304 0xffd4,0xffd5,0xffd6,0xff95,0xffd7,0xffd8,0xff94,0xff95,0xff95,0x01d7,0x1fce,0x7f8e, 305 0x7f8f,0xffd9,0x0fcb,0x1fcf,0x3fb7,0xffda,0xffdb,0xffdc,0x7f90,0xffdd,0xffde,0xff9e, 306 0xffdf,0xffe0,0xffe1,0xffe2,0xffa2,0xffe3,0xffe4,0xffa1,0xffa2,0xffa2,0x07d1,0x1fd0, 307 0x7f91,0xffe5,0xffa8,0x0fcc,0x3fb8,0xffe6,0xffe7,0xffaa,0xffe8,0xffe9,0xffea,0xffeb, 308 0xffac,0xffec,0xffed,0xffee,0xffaf,0xffaf,0xffae,0x7f88,0x7f89,0xffaf,0xffaf,0xffef, 309 0xfff0,0xfff1,0xfff2,0xffb4,0xfff3,0xfff4,0xfff5,0xfff6,0xffb6,0xfff7,0xfff8,0xfff9, 310 0xffba,0xffba,0xfffa,0xfffb,0xffbd,0xffbe,0xffbe,0xffbb,0xffbc,0xffbd,0xffbe,0xffbe, 311 0xfffc,0xfffd,0xffb3,0xffb4,0xffb4,0xfffe,0xffff, 312}; 313 314static const uint8_t cvh_huffbits4[246] = { 315 2, 4, 7, 10, 4, 5, 7, 10, 7, 8, 10, 14, 316 11, 11, 15, 15, 4, 5, 9, 12, 5, 5, 8, 12, 317 8, 7, 10, 15, 11, 11, 15, 15, 7, 9, 12, 15, 318 8, 8, 12, 15, 10, 10, 13, 15, 14, 14, 15, 0, 319 11, 13, 15, 15, 11, 13, 15, 15, 14, 15, 15, 0, 320 15, 15, 0, 0, 4, 5, 9, 13, 5, 6, 9, 13, 321 9, 9, 11, 15, 14, 13, 15, 15, 4, 6, 9, 12, 322 5, 6, 9, 13, 9, 8, 11, 15, 13, 12, 15, 15, 323 7, 9, 12, 15, 7, 8, 11, 15, 10, 10, 14, 15, 324 14, 15, 15, 0, 10, 12, 15, 15, 11, 13, 15, 15, 325 15, 15, 15, 0, 15, 15, 0, 0, 6, 9, 13, 14, 326 8, 9, 12, 15, 12, 12, 15, 15, 15, 15, 15, 0, 327 7, 9, 13, 15, 8, 9, 12, 15, 11, 12, 15, 15, 328 15, 15, 15, 0, 9, 11, 15, 15, 9, 11, 15, 15, 329 14, 14, 15, 0, 15, 15, 0, 0, 14, 15, 15, 0, 330 14, 15, 15, 0, 15, 15, 0, 0, 0, 0, 0, 0, 331 9, 12, 15, 15, 12, 13, 15, 15, 15, 15, 15, 0, 332 15, 15, 0, 0, 10, 12, 15, 15, 12, 14, 15, 15, 333 15, 15, 15, 0, 15, 15, 0, 0, 14, 15, 15, 0, 334 15, 15, 15, 0, 15, 15, 0, 0, 0, 0, 0, 0, 335 15, 15, 0, 0, 15, 15, 336}; 337 338 339static const uint16_t cvh_huffcodes4[246] = { 340 0x0000,0x0004,0x006c,0x03e6,0x0005,0x0012,0x006d,0x03e7,0x006e,0x00e8,0x03e8,0x3fc4, 341 0x07e0,0x07e1,0x7fa4,0x7fa5,0x0006,0x0013,0x01e2,0x0fda,0x0014,0x0015,0x00e9,0x0fdb, 342 0x00ea,0x006f,0x03e9,0x7fa6,0x07e2,0x07e3,0x7fa7,0x7fa8,0x0070,0x01e3,0x0fdc,0x7fa9, 343 0x00eb,0x00ec,0x0fdd,0x7faa,0x03ea,0x03eb,0x1fd6,0x7fab,0x3fc5,0x3fc6,0x7fac,0x1fd6, 344 0x07e4,0x1fd7,0x7fad,0x7fae,0x07e5,0x1fd8,0x7faf,0x7fb0,0x3fc7,0x7fb1,0x7fb2,0x1fd6, 345 0x7fb3,0x7fb4,0x1fd6,0x1fd6,0x0007,0x0016,0x01e4,0x1fd9,0x0017,0x0032,0x01e5,0x1fda, 346 0x01e6,0x01e7,0x07e6,0x7fb5,0x3fc8,0x1fdb,0x7fb6,0x7fb7,0x0008,0x0033,0x01e8,0x0fde, 347 0x0018,0x0034,0x01e9,0x1fdc,0x01ea,0x00ed,0x07e7,0x7fb8,0x1fdd,0x0fdf,0x7fb9,0x7fba, 348 0x0071,0x01eb,0x0fe0,0x7fbb,0x0072,0x00ee,0x07e8,0x7fbc,0x03ec,0x03ed,0x3fc9,0x7fbd, 349 0x3fca,0x7fbe,0x7fbf,0x3fc9,0x03ee,0x0fe1,0x7fc0,0x7fc1,0x07e9,0x1fde,0x7fc2,0x7fc3, 350 0x7fc4,0x7fc5,0x7fc6,0x3fc9,0x7fc7,0x7fc8,0x3fc9,0x3fc9,0x0035,0x01ec,0x1fdf,0x3fcb, 351 0x00ef,0x01ed,0x0fe2,0x7fc9,0x0fe3,0x0fe4,0x7fca,0x7fcb,0x7fcc,0x7fcd,0x7fce,0x7fca, 352 0x0073,0x01ee,0x1fe0,0x7fcf,0x00f0,0x01ef,0x0fe5,0x7fd0,0x07ea,0x0fe6,0x7fd1,0x7fd2, 353 0x7fd3,0x7fd4,0x7fd5,0x7fd1,0x01f0,0x07eb,0x7fd6,0x7fd7,0x01f1,0x07ec,0x7fd8,0x7fd9, 354 0x3fcc,0x3fcd,0x7fda,0x7fda,0x7fdb,0x7fdc,0x7fda,0x7fda,0x3fce,0x7fdd,0x7fde,0x7fd6, 355 0x3fcf,0x7fdf,0x7fe0,0x7fd8,0x7fe1,0x7fe2,0x7fda,0x7fda,0x3fcc,0x3fcd,0x7fda,0x7fda, 356 0x01f2,0x0fe7,0x7fe3,0x7fe4,0x0fe8,0x1fe1,0x7fe5,0x7fe6,0x7fe7,0x7fe8,0x7fe9,0x7fca, 357 0x7fea,0x7feb,0x7fca,0x7fca,0x03ef,0x0fe9,0x7fec,0x7fed,0x0fea,0x3fd0,0x7fee,0x7fef, 358 0x7ff0,0x7ff1,0x7ff2,0x7fd1,0x7ff3,0x7ff4,0x7fd1,0x7fd1,0x3fd1,0x7ff5,0x7ff6,0x7fd6, 359 0x7ff7,0x7ff8,0x7ff9,0x7fd8,0x7ffa,0x7ffb,0x7fda,0x7fda,0x3fcc,0x3fcd,0x7fda,0x7fda, 360 0x7ffc,0x7ffd,0x7fd6,0x7fd6,0x7ffe,0x7fff, 361}; 362 363 364static const uint8_t cvh_huffbits5[230] = { 365 2, 4, 8, 4, 5, 9, 9, 10, 14, 4, 6, 11, 366 5, 6, 12, 10, 11, 15, 9, 11, 15, 10, 13, 15, 367 14, 15, 0, 4, 6, 12, 6, 7, 12, 12, 12, 15, 368 5, 7, 13, 6, 7, 13, 12, 13, 15, 10, 12, 15, 369 11, 13, 15, 15, 15, 0, 8, 13, 15, 11, 12, 15, 370 15, 15, 0, 10, 13, 15, 12, 15, 15, 15, 15, 0, 371 15, 15, 0, 15, 15, 0, 0, 0, 0, 4, 5, 11, 372 5, 7, 12, 11, 12, 15, 6, 7, 13, 7, 8, 14, 373 12, 14, 15, 11, 13, 15, 12, 13, 15, 15, 15, 0, 374 5, 6, 13, 7, 8, 15, 12, 14, 15, 6, 8, 14, 375 7, 8, 15, 14, 15, 15, 12, 12, 15, 12, 13, 15, 376 15, 15, 0, 9, 13, 15, 12, 13, 15, 15, 15, 0, 377 11, 13, 15, 13, 13, 15, 15, 15, 0, 14, 15, 0, 378 15, 15, 0, 0, 0, 0, 8, 10, 15, 11, 12, 15, 379 15, 15, 0, 10, 12, 15, 12, 13, 15, 15, 15, 0, 380 14, 15, 0, 15, 15, 0, 0, 0, 0, 8, 12, 15, 381 12, 13, 15, 15, 15, 0, 11, 13, 15, 13, 15, 15, 382 15, 15, 0, 15, 15, 0, 15, 15, 0, 0, 0, 0, 383 14, 15, 0, 15, 15, 0, 0, 0, 0, 15, 15, 0, 384 15, 15, 385}; 386 387 388 389static const uint16_t cvh_huffcodes5[230] = { 390 0x0000,0x0004,0x00f0,0x0005,0x0012,0x01f0,0x01f1,0x03e8,0x3fce,0x0006,0x0030,0x07de, 391 0x0013,0x0031,0x0fd2,0x03e9,0x07df,0x7fb0,0x01f2,0x07e0,0x7fb1,0x03ea,0x1fd2,0x7fb2, 392 0x3fcf,0x7fb3,0x0031,0x0007,0x0032,0x0fd3,0x0033,0x0070,0x0fd4,0x0fd5,0x0fd6,0x7fb4, 393 0x0014,0x0071,0x1fd3,0x0034,0x0072,0x1fd4,0x0fd7,0x1fd5,0x7fb5,0x03eb,0x0fd8,0x7fb6, 394 0x07e1,0x1fd6,0x7fb7,0x7fb8,0x7fb9,0x0072,0x00f1,0x1fd7,0x7fba,0x07e2,0x0fd9,0x7fbb, 395 0x7fbc,0x7fbd,0x0070,0x03ec,0x1fd8,0x7fbe,0x0fda,0x7fbf,0x7fc0,0x7fc1,0x7fc2,0x0072, 396 0x7fc3,0x7fc4,0x0071,0x7fc5,0x7fc6,0x0072,0x0034,0x0072,0x0072,0x0008,0x0015,0x07e3, 397 0x0016,0x0073,0x0fdb,0x07e4,0x0fdc,0x7fc7,0x0035,0x0074,0x1fd9,0x0075,0x00f2,0x3fd0, 398 0x0fdd,0x3fd1,0x7fc8,0x07e5,0x1fda,0x7fc9,0x0fde,0x1fdb,0x7fca,0x7fcb,0x7fcc,0x00f2, 399 0x0017,0x0036,0x1fdc,0x0076,0x00f3,0x7fcd,0x0fdf,0x3fd2,0x7fce,0x0037,0x00f4,0x3fd3, 400 0x0077,0x00f5,0x7fcf,0x3fd4,0x7fd0,0x7fd1,0x0fe0,0x0fe1,0x7fd2,0x0fe2,0x1fdd,0x7fd3, 401 0x7fd4,0x7fd5,0x00f5,0x01f3,0x1fde,0x7fd6,0x0fe3,0x1fdf,0x7fd7,0x7fd8,0x7fd9,0x00f3, 402 0x07e6,0x1fe0,0x7fda,0x1fe1,0x1fe2,0x7fdb,0x7fdc,0x7fdd,0x00f5,0x3fd5,0x7fde,0x00f4, 403 0x7fdf,0x7fe0,0x00f5,0x0077,0x00f5,0x00f5,0x00f6,0x03ed,0x7fe1,0x07e7,0x0fe4,0x7fe2, 404 0x7fe3,0x7fe4,0x0073,0x03ee,0x0fe5,0x7fe5,0x0fe6,0x1fe3,0x7fe6,0x7fe7,0x7fe8,0x00f2, 405 0x3fd6,0x7fe9,0x0074,0x7fea,0x7feb,0x00f2,0x0075,0x00f2,0x00f2,0x00f7,0x0fe7,0x7fec, 406 0x0fe8,0x1fe4,0x7fed,0x7fee,0x7fef,0x00f3,0x07e8,0x1fe5,0x7ff0,0x1fe6,0x7ff1,0x7ff2, 407 0x7ff3,0x7ff4,0x00f5,0x7ff5,0x7ff6,0x00f4,0x7ff7,0x7ff8,0x00f5,0x0077,0x00f5,0x00f5, 408 0x3fd7,0x7ff9,0x0036,0x7ffa,0x7ffb,0x00f3,0x0076,0x00f3,0x00f3,0x7ffc,0x7ffd,0x0000, 409 0x7ffe,0x7fff, 410}; 411 412 413static const uint8_t cvh_huffbits6[32] = { 414 1, 4, 4, 6, 4, 6, 6, 8, 4, 6, 6, 8, 415 6, 9, 8, 10, 4, 6, 7, 8, 6, 9, 8, 11, 416 6, 9, 8, 10, 8, 10, 9, 11, 417}; 418 419static const uint16_t cvh_huffcodes6[32] = { 420 0x0000,0x0008,0x0009,0x0034,0x000a,0x0035,0x0036,0x00f6,0x000b,0x0037,0x0038,0x00f7, 421 0x0039,0x01fa,0x00f8,0x03fc,0x000c,0x003a,0x007a,0x00f9,0x003b,0x01fb,0x00fa,0x07fe, 422 0x003c,0x01fc,0x00fb,0x03fd,0x00fc,0x03fe,0x01fd,0x07ff, 423}; 424 425static const uint16_t* const cvh_huffcodes[7] = { 426 cvh_huffcodes0, cvh_huffcodes1, cvh_huffcodes2, cvh_huffcodes3, 427 cvh_huffcodes4, cvh_huffcodes5, cvh_huffcodes6, 428}; 429 430static const uint8_t* const cvh_huffbits[7] = { 431 cvh_huffbits0, cvh_huffbits1, cvh_huffbits2, cvh_huffbits3, 432 cvh_huffbits4, cvh_huffbits5, cvh_huffbits6, 433}; 434 435 436static const uint16_t ccpl_huffcodes2[3] = { 437 0x02,0x00,0x03, 438}; 439 440static const uint16_t ccpl_huffcodes3[7] = { 441 0x3e,0x1e,0x02,0x00,0x06,0x0e,0x3f, 442}; 443 444static const uint16_t ccpl_huffcodes4[15] = { 445 0xfc,0xfd,0x7c,0x3c,0x1c,0x0c,0x04,0x00,0x05,0x0d,0x1d,0x3d, 446 0x7d,0xfe,0xff, 447}; 448 449static const uint16_t ccpl_huffcodes5[31] = { 450 0x03f8,0x03f9,0x03fa,0x03fb,0x01f8,0x01f9,0x00f8,0x00f9,0x0078,0x0079,0x0038,0x0039, 451 0x0018,0x0019,0x0004,0x0000,0x0005,0x001a,0x001b,0x003a,0x003b,0x007a,0x007b,0x00fa, 452 0x00fb,0x01fa,0x01fb,0x03fc,0x03fd,0x03fe,0x03ff, 453}; 454 455static const uint16_t ccpl_huffcodes6[63] = { 456 0x0004,0x0005,0x0005,0x0006,0x0006,0x0007,0x0007,0x0007,0x0007,0x0008,0x0008,0x0008, 457 0x0008,0x0009,0x0009,0x0009,0x0009,0x000a,0x000a,0x000a,0x000a,0x000a,0x000b,0x000b, 458 0x000b,0x000b,0x000c,0x000d,0x000e,0x000e,0x0010,0x0000,0x000a,0x0018,0x0019,0x0036, 459 0x0037,0x0074,0x0075,0x0076,0x0077,0x00f4,0x00f5,0x00f6,0x00f7,0x01f5,0x01f6,0x01f7, 460 0x01f8,0x03f6,0x03f7,0x03f8,0x03f9,0x03fa,0x07fa,0x07fb,0x07fc,0x07fd,0x0ffd,0x1ffd, 461 0x3ffd,0x3ffe,0xffff, 462}; 463 464static const uint8_t ccpl_huffbits2[3] = { 465 2,1,2, 466}; 467 468static const uint8_t ccpl_huffbits3[7] = { 469 6,5,2,1,3,4,6, 470}; 471 472static const uint8_t ccpl_huffbits4[15] = { 473 8,8,7,6,5,4,3,1,3,4,5,6,7,8,8, 474}; 475 476static const uint8_t ccpl_huffbits5[31] = { 477 10,10,10,10,9,9,8,8,7,7,6,6, 478 5,5,3,1,3,5,5,6,6,7,7,8, 479 8,9,9,10,10,10,10, 480}; 481 482static const uint8_t ccpl_huffbits6[63] = { 483 16,15,14,13,12,11,11,11,11,10,10,10, 484 10,9,9,9,9,9,8,8,8,8,7,7, 485 7,7,6,6,5,5,3,1,4,5,5,6, 486 6,7,7,7,7,8,8,8,8,9,9,9, 487 9,10,10,10,10,10,11,11,11,11,12,13, 488 14,14,16, 489}; 490 491static const uint16_t* const ccpl_huffcodes[5] = { 492 ccpl_huffcodes2,ccpl_huffcodes3, 493 ccpl_huffcodes4,ccpl_huffcodes5,ccpl_huffcodes6 494}; 495 496static const uint8_t* const ccpl_huffbits[5] = { 497 ccpl_huffbits2,ccpl_huffbits3, 498 ccpl_huffbits4,ccpl_huffbits5,ccpl_huffbits6 499}; 500 501 502//Coupling tables 503 504static const int cplband[51] = { 505 0,1,2,3,4,5,6,7,8,9, 506 10,11,11,12,12,13,13,14,14,14, 507 15,15,15,15,16,16,16,16,16,17, 508 17,17,17,17,17,18,18,18,18,18, 509 18,18,19,19,19,19,19,19,19,19, 510 19, 511}; 512 513// The 1 and 0 at the beginning/end are to prevent overflows with 514// bitstream-read indexes. E.g. if n_bits=5, we can access any 515// index from [1, (1<<n_bits)] for the first decoupling coeff, 516// and (1<<n_bits)-coeff1 as index for coeff2, i.e.: 517// coeff1_idx = [1, 32], and coeff2_idx = [0, 31]. 518// These values aren't part of the tables in the original binary. 519 520static const float cplscale2[5] = { 5211, 5220.953020632266998,0.70710676908493,0.302905440330505, 5230, 524}; 525 526static const float cplscale3[9] = { 5271, 5280.981279790401459,0.936997592449188,0.875934481620789,0.70710676908493, 5290.482430040836334,0.349335819482803,0.192587479948997, 5300, 531}; 532 533static const float cplscale4[17] = { 5341, 5350.991486728191376,0.973249018192291,0.953020632266998,0.930133521556854, 5360.903453230857849,0.870746195316315,0.826180458068848,0.70710676908493, 5370.563405573368073,0.491732746362686,0.428686618804932,0.367221474647522, 5380.302905440330505,0.229752898216248,0.130207896232605, 5390, 540}; 541 542static const float cplscale5[33] = { 5431, 5440.995926380157471,0.987517595291138,0.978726446628571,0.969505727291107, 5450.95979779958725,0.949531257152557,0.938616216182709,0.926936149597168, 5460.914336204528809,0.900602877140045,0.885426938533783,0.868331849575043, 5470.84851086139679,0.824381768703461,0.791833400726318,0.70710676908493, 5480.610737144947052,0.566034197807312,0.529177963733673,0.495983630418777, 5490.464778542518616,0.434642940759659,0.404955863952637,0.375219136476517, 5500.344963222742081,0.313672333955765,0.280692428350449,0.245068684220314, 5510.205169528722763,0.157508864998817,0.0901700109243393, 5520, 553}; 554 555static const float cplscale6[65] = { 5561, 5570.998005926609039,0.993956744670868,0.989822506904602,0.985598564147949, 5580.981279790401459,0.976860702037811,0.972335040569305,0.967696130275726, 5590.962936460971832,0.958047747612000,0.953020632266998,0.947844684123993, 5600.942508161067963,0.936997592449188,0.931297719478607,0.925390899181366, 5610.919256627559662,0.912870943546295,0.906205296516418,0.899225592613220, 5620.891890347003937,0.884148240089417,0.875934481620789,0.867165684700012, 5630.857730865478516,0.847477376461029,0.836184680461884,0.823513329029083, 5640.808890223503113,0.791194140911102,0.767520070075989,0.707106769084930, 5650.641024887561798,0.611565053462982,0.587959706783295,0.567296981811523, 5660.548448026180267,0.530831515789032,0.514098942279816,0.498019754886627, 5670.482430040836334,0.467206478118896,0.452251672744751,0.437485188245773, 5680.422837972640991,0.408248275518417,0.393658757209778,0.379014074802399, 5690.364258885383606,0.349335819482803,0.334183186292648,0.318732559680939, 5700.302905440330505,0.286608695983887,0.269728302955627,0.252119421958923, 5710.233590632677078,0.213876649737358,0.192587479948997,0.169101938605309, 5720.142307326197624,0.109772264957428,0.0631198287010193, 5730, 574}; 575 576static const float* const cplscales[5] = { 577 cplscale2, cplscale3, cplscale4, cplscale5, cplscale6, 578}; 579 580#endif /* AVCODEC_COOKDATA_H */ 581