1 pub const MAX_SUBBANDS: usize = 52;
2 pub const NUM_CATEGORIES: usize = 8;
3 pub const BAND_SIZE: usize = 20;
5 pub const COOK_VQ_GROUP_SIZE: [usize; 7] = [ 2, 2, 2, 4, 4, 5, 5 ];
6 pub const COOK_NUM_VQ_GROUPS: [usize; 7] = [ 10, 10, 10, 5, 5, 4, 4 ];
7 pub const COOK_VQ_INV_RADIX: [u32; 7] = [ 74899, 104858, 149797, 209716, 262144, 349526, 524288 ];
8 pub const COOK_VQ_MULT: [u32; 7] = [ 13, 9, 6, 4, 3, 2, 1 ];
10 pub const COOK_XOR_KEY: [u8; 4] = [ 0x37, 0xC5, 0x11, 0xF2 ];
12 pub const COOK_CPL_2BITS_BITS: &[u8; 3] = &[ 2, 1, 2 ];
13 pub const COOK_CPL_2BITS_CODES: &[u16; 3] = &[ 0x02, 0x00, 0x03 ];
14 pub const COOK_CPL_3BITS_BITS: &[u8; 7] = &[ 6, 5, 2, 1, 3, 4, 6 ];
15 pub const COOK_CPL_3BITS_CODES: &[u16; 7] = &[ 0x3e, 0x1e, 0x02, 0x00, 0x06, 0x0e, 0x3f ];
16 pub const COOK_CPL_4BITS_BITS: &[u8; 15] = &[ 8, 8, 7, 6, 5, 4, 3, 1, 3, 4, 5, 6, 7, 8, 8 ];
17 pub const COOK_CPL_4BITS_CODES: &[u16; 15] = &[
18 0xfc, 0xfd, 0x7c, 0x3c, 0x1c, 0x0c, 0x04, 0x00,
19 0x05, 0x0d, 0x1d, 0x3d, 0x7d, 0xfe, 0xff
21 pub const COOK_CPL_5BITS_BITS: &[u8; 31] = &[
22 10, 10, 10, 10, 9, 9, 8, 8, 7, 7, 6, 6, 5, 5, 3, 1,
23 3, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 10, 10
25 pub const COOK_CPL_5BITS_CODES: &[u16; 31] = &[
26 0x03F8, 0x03F9, 0x03FA, 0x03FB, 0x01F8, 0x01F9, 0x00F8, 0x00F9,
27 0x0078, 0x0079, 0x0038, 0x0039, 0x0018, 0x0019, 0x0004, 0x0000,
28 0x0005, 0x001A, 0x001B, 0x003A, 0x003B, 0x007A, 0x007B, 0x00FA,
29 0x00FB, 0x01FA, 0x01FB, 0x03FC, 0x03FD, 0x03FE, 0x03FF
31 pub const COOK_CPL_6BITS_BITS: &[u8; 63] = &[
32 16, 15, 14, 13, 12, 11, 11, 11, 11, 10, 10, 10, 10, 9, 9, 9,
33 9, 9, 8, 8, 8, 8, 7, 7, 7, 7, 6, 6, 5, 5, 3, 1,
34 4, 5, 5, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9,
35 9, 10, 10, 10, 10, 10, 11, 11, 11, 11, 12, 13, 14, 14, 16
37 pub const COOK_CPL_6BITS_CODES: &[u16; 63] = &[
38 0xFFFE, 0x7FFE, 0x3FFC, 0x1FFC, 0x0FFC, 0x07F6, 0x07F7, 0x07F8,
39 0x07F9, 0x03F2, 0x03F3, 0x03F4, 0x03F5, 0x01F0, 0x01F1, 0x01F2,
40 0x01F3, 0x01F4, 0x00F0, 0x00F1, 0x00F2, 0x00F3, 0x0070, 0x0071,
41 0x0072, 0x0073, 0x0034, 0x0035, 0x0016, 0x0017, 0x0004, 0x0000,
42 0x000A, 0x0018, 0x0019, 0x0036, 0x0037, 0x0074, 0x0075, 0x0076,
43 0x0077, 0x00F4, 0x00F5, 0x00F6, 0x00F7, 0x01F5, 0x01F6, 0x01F7,
44 0x01F8, 0x03F6, 0x03F7, 0x03F8, 0x03F9, 0x03FA, 0x07FA, 0x07FB,
45 0x07FC, 0x07FD, 0x0FFD, 0x1FFD, 0x3FFD, 0x3FFE, 0xFFFF
48 pub const COOK_QUANT_BITS: [&[u8; 24]; 13] = [
49 &[ 4, 6, 5, 5, 4, 4, 4, 4, 4, 4, 3, 3, 3, 4, 5, 7, 8, 9, 11, 11, 12, 12, 12, 12 ],
50 &[ 10, 8, 6, 5, 5, 4, 3, 3, 3, 3, 3, 3, 4, 5, 7, 9, 11, 12, 13, 15, 15, 15, 16, 16 ],
51 &[ 12, 10, 8, 6, 5, 4, 4, 4, 4, 4, 4, 3, 3, 3, 4, 4, 5, 5, 7, 9, 11, 13, 14, 14 ],
52 &[ 13, 10, 9, 9, 7, 7, 5, 5, 4, 3, 3, 3, 3, 3, 4, 4, 4, 5, 7, 9, 11, 13, 13, 13 ],
53 &[ 12, 13, 10, 8, 6, 6, 5, 5, 4, 4, 3, 3, 3, 3, 3, 4, 5, 5, 6, 7, 9, 11, 14, 14 ],
54 &[ 12, 11, 9, 8, 8, 7, 5, 4, 4, 3, 3, 3, 3, 3, 4, 4, 5, 5, 7, 8, 10, 13, 14, 14 ],
55 &[ 15, 16, 15, 12, 10, 8, 6, 5, 4, 3, 3, 3, 2, 3, 4, 5, 5, 7, 9, 11, 13, 16, 16, 16 ],
56 &[ 14, 14, 11, 10, 9, 7, 7, 5, 5, 4, 3, 3, 2, 3, 3, 4, 5, 7, 9, 9, 12, 14, 15, 15 ],
57 &[ 9, 9, 9, 8, 7, 6, 5, 4, 3, 3, 3, 3, 3, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 13 ],
58 &[ 14, 12, 10, 8, 6, 6, 5, 4, 3, 3, 3, 3, 3, 3, 4, 5, 6, 8, 8, 9, 11, 14, 14, 14 ],
59 &[ 13, 10, 9, 8, 6, 6, 5, 4, 4, 4, 3, 3, 2, 3, 4, 5, 6, 8, 9, 9, 11, 12, 14, 14 ],
60 &[ 16, 13, 12, 11, 9, 6, 5, 5, 4, 4, 4, 3, 2, 3, 3, 4, 5, 7, 8, 10, 14, 16, 16, 16 ],
61 &[ 13, 14, 14, 14, 10, 8, 7, 7, 5, 4, 3, 3, 2, 3, 3, 4, 5, 5, 7, 9, 11, 14, 14, 14 ],
63 pub const COOK_QUANT_CODES: [&[u16; 24]; 13] = [
64 &[ 0x0006, 0x003e, 0x001c, 0x001d, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x0000, 0x0001,
65 0x0002, 0x000d, 0x001e, 0x007e, 0x00fe, 0x01fe, 0x07fc, 0x07fd, 0x0ffc, 0x0ffd, 0x0ffe, 0x0fff ],
66 &[ 0x03fe, 0x00fe, 0x003e, 0x001c, 0x001d, 0x000c, 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005,
67 0x000d, 0x001e, 0x007e, 0x01fe, 0x07fe, 0x0ffe, 0x1ffe, 0x7ffc, 0x7ffd, 0x7ffe, 0xfffe, 0xffff ],
68 &[ 0x0ffe, 0x03fe, 0x00fe, 0x003e, 0x001c, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x0000,
69 0x0001, 0x0002, 0x000c, 0x000d, 0x001d, 0x001e, 0x007e, 0x01fe, 0x07fe, 0x1ffe, 0x3ffe, 0x3fff ],
70 &[ 0x1ffc, 0x03fe, 0x01fc, 0x01fd, 0x007c, 0x007d, 0x001c, 0x001d, 0x000a, 0x0000, 0x0001, 0x0002,
71 0x0003, 0x0004, 0x000b, 0x000c, 0x000d, 0x001e, 0x007e, 0x01fe, 0x07fe, 0x1ffd, 0x1ffe, 0x1fff ],
72 &[ 0x0ffe, 0x1ffe, 0x03fe, 0x00fe, 0x003c, 0x003d, 0x001a, 0x001b, 0x000a, 0x000b, 0x0000, 0x0001,
73 0x0002, 0x0003, 0x0004, 0x000c, 0x001c, 0x001d, 0x003e, 0x007e, 0x01fe, 0x07fe, 0x3ffe, 0x3fff ],
74 &[ 0x0ffe, 0x07fe, 0x01fe, 0x00fc, 0x00fd, 0x007c, 0x001c, 0x000a, 0x000b, 0x0000, 0x0001, 0x0002,
75 0x0003, 0x0004, 0x000c, 0x000d, 0x001d, 0x001e, 0x007d, 0x00fe, 0x03fe, 0x1ffe, 0x3ffe, 0x3fff ],
76 &[ 0x7ffc, 0xfffc, 0x7ffd, 0x0ffe, 0x03fe, 0x00fe, 0x003e, 0x001c, 0x000c, 0x0002, 0x0003, 0x0004,
77 0x0000, 0x0005, 0x000d, 0x001d, 0x001e, 0x007e, 0x01fe, 0x07fe, 0x1ffe, 0xfffd, 0xfffe, 0xffff ],
78 &[ 0x3ffc, 0x3ffd, 0x07fe, 0x03fe, 0x01fc, 0x007c, 0x007d, 0x001c, 0x001d, 0x000c, 0x0002, 0x0003,
79 0x0000, 0x0004, 0x0005, 0x000d, 0x001e, 0x007e, 0x01fd, 0x01fe, 0x0ffe, 0x3ffe, 0x7ffe, 0x7fff ],
80 &[ 0x01fc, 0x01fd, 0x01fe, 0x00fc, 0x007c, 0x003c, 0x001c, 0x000c, 0x0000, 0x0001, 0x0002, 0x0003,
81 0x0004, 0x0005, 0x000d, 0x001d, 0x003d, 0x007d, 0x00fd, 0x03fe, 0x07fe, 0x0ffe, 0x1ffe, 0x1fff ],
82 &[ 0x3ffc, 0x0ffe, 0x03fe, 0x00fc, 0x003c, 0x003d, 0x001c, 0x000c, 0x0000, 0x0001, 0x0002, 0x0003,
83 0x0004, 0x0005, 0x000d, 0x001d, 0x003e, 0x00fd, 0x00fe, 0x01fe, 0x07fe, 0x3ffd, 0x3ffe, 0x3fff ],
84 &[ 0x1ffe, 0x03fe, 0x01fc, 0x00fc, 0x003c, 0x003d, 0x001c, 0x000a, 0x000b, 0x000c, 0x0002, 0x0003,
85 0x0000, 0x0004, 0x000d, 0x001d, 0x003e, 0x00fd, 0x01fd, 0x01fe, 0x07fe, 0x0ffe, 0x3ffe, 0x3fff ],
86 &[ 0xfffc, 0x1ffe, 0x0ffe, 0x07fe, 0x01fe, 0x003e, 0x001c, 0x001d, 0x000a, 0x000b, 0x000c, 0x0002,
87 0x0000, 0x0003, 0x0004, 0x000d, 0x001e, 0x007e, 0x00fe, 0x03fe, 0x3ffe, 0xfffd, 0xfffe, 0xffff ],
88 &[ 0x1ffc, 0x3ffa, 0x3ffb, 0x3ffc, 0x03fe, 0x00fe, 0x007c, 0x007d, 0x001c, 0x000c, 0x0002, 0x0003,
89 0x0000, 0x0004, 0x0005, 0x000d, 0x001d, 0x001e, 0x007e, 0x01fe, 0x07fe, 0x3ffd, 0x3ffe, 0x3fff ],
92 pub const COOK_VQ0_BITS: &[u8; 191] = &[
93 1, 4, 6, 6, 7, 7, 8, 8, 8, 9, 9, 10,
94 11, 11, 4, 5, 6, 7, 7, 8, 8, 9, 9, 9,
95 9, 10, 11, 11, 5, 6, 7, 8, 8, 9, 9, 9,
96 9, 10, 10, 10, 11, 12, 6, 7, 8, 9, 9, 9,
97 9, 10, 10, 10, 10, 11, 12, 13, 7, 7, 8, 9,
98 9, 9, 10, 10, 10, 10, 11, 11, 12, 13, 8, 8,
99 9, 9, 9, 10, 10, 10, 10, 11, 11, 12, 13, 14,
100 8, 8, 9, 9, 10, 10, 11, 11, 11, 12, 12, 13,
101 13, 15, 8, 8, 9, 9, 10, 10, 11, 11, 11, 12,
102 12, 13, 14, 15, 9, 9, 9, 10, 10, 10, 11, 11,
103 12, 13, 12, 14, 15, 16, 9, 9, 10, 10, 10, 10,
104 11, 12, 12, 14, 14, 16, 16, 0, 9, 9, 10, 10,
105 11, 11, 12, 13, 13, 14, 14, 15, 0, 0, 10, 10,
106 10, 11, 11, 12, 12, 13, 15, 15, 16, 0, 0, 0,
107 11, 11, 11, 12, 13, 13, 13, 15, 16, 16, 0, 0,
108 0, 0, 11, 11, 12, 13, 13, 14, 15, 16, 16
110 pub const COOK_VQ0_CODES: &[u16; 191] = &[
111 0x0000, 0x0008, 0x002c, 0x002d, 0x0062, 0x0063, 0x00d4, 0x00d5,
112 0x00d6, 0x01c6, 0x01c7, 0x03ca, 0x07d6, 0x07d7, 0x0009, 0x0014,
113 0x002e, 0x0064, 0x0065, 0x00d7, 0x00d8, 0x01c8, 0x01c9, 0x01ca,
114 0x01cb, 0x03cb, 0x07d8, 0x07d9, 0x0015, 0x002f, 0x0066, 0x00d9,
115 0x00da, 0x01cc, 0x01cd, 0x01ce, 0x01cf, 0x03cc, 0x03cd, 0x03ce,
116 0x07da, 0x0fe4, 0x0030, 0x0067, 0x00db, 0x01d0, 0x01d1, 0x01d2,
117 0x01d3, 0x03cf, 0x03d0, 0x03d1, 0x03d2, 0x07db, 0x0fe5, 0x1fea,
118 0x0068, 0x0069, 0x00dc, 0x01d4, 0x01d5, 0x01d6, 0x03d3, 0x03d4,
119 0x03d5, 0x03d6, 0x07dc, 0x07dd, 0x0fe6, 0x1feb, 0x00dd, 0x00de,
120 0x01d7, 0x01d8, 0x01d9, 0x03d7, 0x03d8, 0x03d9, 0x03da, 0x07de,
121 0x07df, 0x0fe7, 0x1fec, 0x3ff2, 0x00df, 0x00e0, 0x01da, 0x01db,
122 0x03db, 0x03dc, 0x07e0, 0x07e1, 0x07e2, 0x0fe8, 0x0fe9, 0x1fed,
123 0x1fee, 0x7ff4, 0x00e1, 0x00e2, 0x01dc, 0x01dd, 0x03dd, 0x03de,
124 0x07e3, 0x07e4, 0x07e5, 0x0fea, 0x0feb, 0x1fef, 0x3ff3, 0x7ff5,
125 0x01de, 0x01df, 0x01e0, 0x03df, 0x03e0, 0x03e1, 0x07e6, 0x07e7,
126 0x0fec, 0x1ff0, 0x0fed, 0x3ff4, 0x7ff6, 0xfff8, 0x01e1, 0x01e2,
127 0x03e2, 0x03e3, 0x03e4, 0x03e5, 0x07e8, 0x0fee, 0x0fef, 0x3ff5,
128 0x3ff6, 0xfff9, 0xfffa, 0xfffa, 0x01e3, 0x01e4, 0x03e6, 0x03e7,
129 0x07e9, 0x07ea, 0x0ff0, 0x1ff1, 0x1ff2, 0x3ff7, 0x3ff8, 0x7ff7,
130 0x7ff7, 0xfffa, 0x03e8, 0x03e9, 0x03ea, 0x07eb, 0x07ec, 0x0ff1,
131 0x0ff2, 0x1ff3, 0x7ff8, 0x7ff9, 0xfffb, 0x3ff8, 0x7ff7, 0x7ff7,
132 0x07ed, 0x07ee, 0x07ef, 0x0ff3, 0x1ff4, 0x1ff5, 0x1ff6, 0x7ffa,
133 0xfffc, 0xfffd, 0xfffb, 0xfffb, 0x3ff8, 0x7ff7, 0x07f0, 0x07f1,
134 0x0ff4, 0x1ff7, 0x1ff8, 0x3ff9, 0x7ffb, 0xfffe, 0xffff
136 pub const COOK_VQ1_BITS: &[u8; 97] = &[
137 1, 4, 5, 6, 7, 8, 8, 9, 10, 10, 4, 5,
138 6, 7, 7, 8, 8, 9, 9, 11, 5, 5, 6, 7,
139 8, 8, 9, 9, 10, 11, 6, 6, 7, 8, 8, 9,
140 9, 10, 11, 12, 7, 7, 8, 8, 9, 9, 10, 11,
141 11, 13, 8, 8, 8, 9, 9, 10, 10, 11, 12, 14,
142 8, 8, 8, 9, 10, 11, 11, 12, 13, 15, 9, 9,
143 9, 10, 11, 12, 12, 14, 14, 0, 9, 9, 9, 10,
144 11, 12, 14, 16, 0, 0, 10, 10, 11, 12, 13, 14, 16
146 pub const COOK_VQ1_CODES: &[u16; 97] = &[
147 0x0000, 0x0008, 0x0014, 0x0030, 0x006a, 0x00e2, 0x00e3, 0x01e4,
148 0x03ec, 0x03ed, 0x0009, 0x0015, 0x0031, 0x006b, 0x006c, 0x00e4,
149 0x00e5, 0x01e5, 0x01e6, 0x07f0, 0x0016, 0x0017, 0x0032, 0x006d,
150 0x00e6, 0x00e7, 0x01e7, 0x01e8, 0x03ee, 0x07f1, 0x0033, 0x0034,
151 0x006e, 0x00e8, 0x00e9, 0x01e9, 0x01ea, 0x03ef, 0x07f2, 0x0ff6,
152 0x006f, 0x0070, 0x00ea, 0x00eb, 0x01eb, 0x01ec, 0x03f0, 0x07f3,
153 0x07f4, 0x1ffa, 0x00ec, 0x00ed, 0x00ee, 0x01ed, 0x01ee, 0x03f1,
154 0x03f2, 0x07f5, 0x0ff7, 0x3ffa, 0x00ef, 0x00f0, 0x00f1, 0x01ef,
155 0x03f3, 0x07f6, 0x07f7, 0x0ff8, 0x1ffb, 0x7ffe, 0x01f0, 0x01f1,
156 0x01f2, 0x03f4, 0x07f8, 0x0ff9, 0x0ffa, 0x3ffb, 0x3ffc, 0x0000,
157 0x01f3, 0x01f4, 0x01f5, 0x03f5, 0x07f9, 0x0ffb, 0x3ffd, 0xfffe,
158 0x0000, 0x0000, 0x03f6, 0x03f7, 0x07fa, 0x0ffc, 0x1ffc, 0x3ffe,
161 pub const COOK_VQ2_BITS: &[u8; 48] = &[
162 1, 4, 5, 7, 8, 9, 10, 3, 4, 5, 7, 8,
163 9, 10, 5, 5, 6, 7, 8, 10, 10, 7, 6, 7,
164 8, 9, 10, 12, 8, 8, 8, 9, 10, 12, 14, 8,
165 9, 9, 10, 11, 15, 16, 9, 10, 11, 12, 13, 16
167 pub const COOK_VQ2_CODES: &[u16; 48] = &[
168 0x0000, 0x000a, 0x0018, 0x0074, 0x00f2, 0x01f4, 0x03f6, 0x0004, 0x000b, 0x0019, 0x0075, 0x00f3,
169 0x01f5, 0x03f7, 0x001a, 0x001b, 0x0038, 0x0076, 0x00f4, 0x03f8, 0x03f9, 0x0077, 0x0039, 0x0078,
170 0x00f5, 0x01f6, 0x03fa, 0x0ffc, 0x00f6, 0x00f7, 0x00f8, 0x01f7, 0x03fb, 0x0ffd, 0x3ffe, 0x00f9,
171 0x01f8, 0x01f9, 0x03fc, 0x07fc, 0x7ffe, 0xfffe, 0x01fa, 0x03fd, 0x07fd, 0x0ffe, 0x1ffe, 0xffff
173 pub const COOK_VQ3_BITS: &[u8; 607] = &[
174 2, 4, 6, 8, 10, 5, 5, 6, 8, 10, 7, 8,
175 8, 10, 12, 9, 9, 10, 12, 15, 10, 11, 13, 16,
176 16, 5, 6, 8, 10, 11, 5, 6, 8, 10, 12, 7,
177 7, 8, 10, 13, 9, 9, 10, 12, 15, 12, 11, 13,
178 16, 16, 7, 9, 10, 12, 15, 7, 8, 10, 12, 13,
179 9, 9, 11, 13, 16, 11, 11, 12, 14, 16, 12, 12,
180 14, 16, 0, 9, 11, 12, 16, 16, 9, 10, 13, 15,
181 16, 10, 11, 12, 16, 16, 13, 13, 16, 16, 16, 16,
182 16, 15, 16, 0, 11, 13, 16, 16, 15, 11, 13, 15,
183 16, 16, 13, 13, 16, 16, 0, 14, 16, 16, 16, 0,
184 16, 16, 0, 0, 0, 4, 6, 8, 10, 13, 6, 6,
185 8, 10, 13, 9, 8, 10, 12, 16, 10, 10, 11, 15,
186 16, 13, 12, 14, 16, 16, 5, 6, 8, 11, 13, 6,
187 6, 8, 10, 13, 8, 8, 9, 11, 14, 10, 10, 12,
188 12, 16, 13, 12, 13, 15, 16, 7, 8, 9, 12, 16,
189 7, 8, 10, 12, 14, 9, 9, 10, 13, 16, 11, 10,
190 12, 15, 16, 13, 13, 16, 16, 0, 9, 11, 13, 16,
191 16, 9, 10, 12, 15, 16, 10, 11, 13, 16, 16, 13,
192 12, 16, 16, 16, 16, 16, 16, 16, 0, 11, 13, 16,
193 16, 16, 11, 13, 16, 16, 16, 12, 13, 15, 16, 0,
194 16, 16, 16, 16, 0, 16, 16, 0, 0, 0, 6, 8,
195 11, 13, 16, 8, 8, 10, 12, 16, 11, 10, 11, 13,
196 16, 12, 13, 13, 15, 16, 16, 16, 14, 16, 0, 6,
197 8, 10, 13, 16, 8, 8, 10, 12, 16, 10, 10, 11,
198 13, 16, 13, 12, 13, 16, 16, 14, 14, 14, 16, 0,
199 8, 9, 11, 13, 16, 8, 9, 11, 16, 14, 10, 10,
200 12, 15, 16, 12, 12, 13, 16, 16, 15, 16, 16, 16,
201 0, 10, 12, 15, 16, 16, 10, 12, 12, 14, 16, 12,
202 12, 13, 16, 16, 14, 15, 16, 16, 0, 16, 16, 16,
203 0, 0, 12, 15, 15, 16, 0, 13, 13, 16, 16, 0,
204 14, 16, 16, 16, 0, 16, 16, 16, 0, 0, 0, 0,
205 0, 0, 0, 8, 10, 13, 15, 16, 10, 11, 13, 16,
206 16, 13, 13, 14, 16, 16, 16, 16, 16, 16, 16, 16,
207 16, 16, 16, 0, 8, 10, 11, 15, 16, 9, 10, 12,
208 16, 16, 12, 12, 15, 16, 16, 16, 14, 16, 16, 16,
209 16, 16, 16, 16, 0, 9, 11, 14, 16, 16, 10, 11,
210 13, 16, 16, 14, 13, 14, 16, 16, 16, 15, 15, 16,
211 0, 16, 16, 16, 0, 0, 11, 13, 16, 16, 16, 11,
212 13, 15, 16, 16, 13, 16, 16, 16, 0, 16, 16, 16,
213 16, 0, 16, 16, 0, 0, 0, 15, 16, 16, 16, 0,
214 14, 16, 16, 16, 0, 16, 16, 16, 0, 0, 16, 16,
215 0, 0, 0, 0, 0, 0, 0, 0, 9, 13, 16, 16,
216 16, 11, 13, 16, 16, 16, 14, 15, 16, 16, 0, 15,
217 16, 16, 16, 0, 16, 16, 0, 0, 0, 9, 13, 15,
218 15, 16, 12, 13, 14, 16, 16, 16, 15, 16, 16, 0,
219 16, 16, 16, 16, 0, 16, 16, 0, 0, 0, 11, 13,
220 15, 16, 0, 12, 14, 16, 16, 0, 16, 16, 16, 16,
221 0, 16, 16, 16, 0, 0, 0, 0, 0, 0, 0, 16,
222 16, 16, 16, 0, 16, 16, 16, 16, 0, 16, 16, 16,
223 0, 0, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0,
224 16, 16, 0, 0, 0, 16, 16
226 pub const COOK_VQ3_CODES: &[u16; 607] = &[
227 0x0000, 0x0004, 0x0022, 0x00c6, 0x03b0, 0x000c, 0x000d, 0x0023, 0x00c7, 0x03b1, 0x005c, 0x00c8,
228 0x00c9, 0x03b2, 0x0fa4, 0x01c2, 0x01c3, 0x03b3, 0x0fa5, 0x7f72, 0x03b4, 0x07b2, 0x1f9a, 0xff24,
229 0xff25, 0x000e, 0x0024, 0x00ca, 0x03b5, 0x07b3, 0x000f, 0x0025, 0x00cb, 0x03b6, 0x0fa6, 0x005d,
230 0x005e, 0x00cc, 0x03b7, 0x1f9b, 0x01c4, 0x01c5, 0x03b8, 0x0fa7, 0x7f73, 0x0fa8, 0x07b4, 0x1f9c,
231 0xff26, 0xff27, 0x005f, 0x01c6, 0x03b9, 0x0fa9, 0x7f74, 0x0060, 0x00cd, 0x03ba, 0x0faa, 0x1f9d,
232 0x01c7, 0x01c8, 0x07b5, 0x1f9e, 0xff28, 0x07b6, 0x07b7, 0x0fab, 0x3fa2, 0xff29, 0x0fac, 0x0fad,
233 0x3fa3, 0xff2a, 0x3fa2, 0x01c9, 0x07b8, 0x0fae, 0xff2b, 0xff2c, 0x01ca, 0x03bb, 0x1f9f, 0x7f75,
234 0xff2d, 0x03bc, 0x07b9, 0x0faf, 0xff2e, 0xff2f, 0x1fa0, 0x1fa1, 0xff30, 0xff31, 0xff32, 0xff33,
235 0xff34, 0x7f76, 0xff35, 0xff31, 0x07ba, 0x1fa2, 0xff36, 0xff37, 0x7f77, 0x07bb, 0x1fa3, 0x7f78,
236 0xff38, 0xff39, 0x1fa4, 0x1fa5, 0xff3a, 0xff3b, 0xff2e, 0x3fa4, 0xff3c, 0xff3d, 0xff3e, 0xff31,
237 0xff3f, 0xff40, 0xff30, 0xff31, 0xff31, 0x0005, 0x0026, 0x00ce, 0x03bd, 0x1fa6, 0x0027, 0x0028,
238 0x00cf, 0x03be, 0x1fa7, 0x01cb, 0x00d0, 0x03bf, 0x0fb0, 0xff41, 0x03c0, 0x03c1, 0x07bc, 0x7f79,
239 0xff42, 0x1fa8, 0x0fb1, 0x3fa5, 0xff43, 0xff44, 0x0010, 0x0029, 0x00d1, 0x07bd, 0x1fa9, 0x002a,
240 0x002b, 0x00d2, 0x03c2, 0x1faa, 0x00d3, 0x00d4, 0x01cc, 0x07be, 0x3fa6, 0x03c3, 0x03c4, 0x0fb2,
241 0x0fb3, 0xff45, 0x1fab, 0x0fb4, 0x1fac, 0x7f7a, 0xff46, 0x0061, 0x00d5, 0x01cd, 0x0fb5, 0xff47,
242 0x0062, 0x00d6, 0x03c5, 0x0fb6, 0x3fa7, 0x01ce, 0x01cf, 0x03c6, 0x1fad, 0xff48, 0x07bf, 0x03c7,
243 0x0fb7, 0x7f7b, 0xff49, 0x1fae, 0x1faf, 0xff4a, 0xff4b, 0x7f7b, 0x01d0, 0x07c0, 0x1fb0, 0xff4c,
244 0xff4d, 0x01d1, 0x03c8, 0x0fb8, 0x7f7c, 0xff4e, 0x03c9, 0x07c1, 0x1fb1, 0xff4f, 0xff50, 0x1fb2,
245 0x0fb9, 0xff51, 0xff52, 0xff53, 0xff54, 0xff55, 0xff56, 0xff57, 0xff52, 0x07c2, 0x1fb3, 0xff58,
246 0xff59, 0xff5a, 0x07c3, 0x1fb4, 0xff5b, 0xff5c, 0xff5d, 0x0fba, 0x1fb5, 0x7f7d, 0xff5e, 0xff4f,
247 0xff5f, 0xff60, 0xff61, 0xff62, 0xff52, 0xff63, 0xff64, 0xff51, 0xff52, 0xff52, 0x002c, 0x00d7,
248 0x07c4, 0x1fb6, 0xff65, 0x00d8, 0x00d9, 0x03ca, 0x0fbb, 0xff66, 0x07c5, 0x03cb, 0x07c6, 0x1fb7,
249 0xff67, 0x0fbc, 0x1fb8, 0x1fb9, 0x7f7e, 0xff68, 0xff69, 0xff6a, 0x3fa8, 0xff6b, 0x7f7e, 0x002d,
250 0x00da, 0x03cc, 0x1fba, 0xff6c, 0x00db, 0x00dc, 0x03cd, 0x0fbd, 0xff6d, 0x03ce, 0x03cf, 0x07c7,
251 0x1fbb, 0xff6e, 0x1fbc, 0x0fbe, 0x1fbd, 0xff6f, 0xff70, 0x3fa9, 0x3faa, 0x3fab, 0xff71, 0xff6f,
252 0x00dd, 0x01d2, 0x07c8, 0x1fbe, 0xff72, 0x00de, 0x01d3, 0x07c9, 0xff73, 0x3fac, 0x03d0, 0x03d1,
253 0x0fbf, 0x7f7f, 0xff74, 0x0fc0, 0x0fc1, 0x1fbf, 0xff75, 0xff76, 0x7f80, 0xff77, 0xff78, 0xff79,
254 0xff75, 0x03d2, 0x0fc2, 0x7f81, 0xff7a, 0xff7b, 0x03d3, 0x0fc3, 0x0fc4, 0x3fad, 0xff7c, 0x0fc5,
255 0x0fc6, 0x1fc0, 0xff7d, 0xff7e, 0x3fae, 0x7f82, 0xff7f, 0xff80, 0xff80, 0xff81, 0xff82, 0xff83,
256 0xff80, 0xff80, 0x0fc7, 0x7f83, 0x7f84, 0xff84, 0xff7a, 0x1fc1, 0x1fc2, 0xff85, 0xff86, 0x3fad,
257 0x3faf, 0xff87, 0xff88, 0xff89, 0xff7d, 0xff8a, 0xff8b, 0xff8c, 0xff80, 0xff80, 0x3fae, 0x7f82,
258 0xff7f, 0xff80, 0xff80, 0x00df, 0x03d4, 0x1fc3, 0x7f85, 0xff8d, 0x03d5, 0x07ca, 0x1fc4, 0xff8e,
259 0xff8f, 0x1fc5, 0x1fc6, 0x3fb0, 0xff90, 0xff91, 0xff92, 0xff93, 0xff94, 0xff95, 0xff96, 0xff97,
260 0xff98, 0xff99, 0xff9a, 0xff95, 0x00e0, 0x03d6, 0x07cb, 0x7f86, 0xff9b, 0x01d4, 0x03d7, 0x0fc8,
261 0xff9c, 0xff9d, 0x0fc9, 0x0fca, 0x7f87, 0xff9e, 0xff9f, 0xffa0, 0x3fb1, 0xffa1, 0xffa2, 0xffa3,
262 0xffa4, 0xffa5, 0xffa6, 0xffa7, 0xffa2, 0x01d5, 0x07cc, 0x3fb2, 0xffa8, 0xffa9, 0x03d8, 0x07cd,
263 0x1fc7, 0xffaa, 0xffab, 0x3fb3, 0x1fc8, 0x3fb4, 0xffac, 0xffad, 0xffae, 0x7f88, 0x7f89, 0xffaf,
264 0xffaf, 0xffb0, 0xffb1, 0xffb2, 0xffaf, 0xffaf, 0x07ce, 0x1fc9, 0xffb3, 0xffb4, 0xffb5, 0x07cf,
265 0x1fca, 0x7f8a, 0xffb6, 0xffb7, 0x1fcb, 0xffb8, 0xffb9, 0xffba, 0xffba, 0xffbb, 0xffbc, 0xffbd,
266 0xffbe, 0xffbe, 0xffbf, 0xffc0, 0xffbd, 0xffbe, 0xffbe, 0x7f8b, 0xffc1, 0xffc2, 0xffc3, 0xffb4,
267 0x3fb5, 0xffc4, 0xffc5, 0xffc6, 0xffb6, 0xffc7, 0xffc8, 0xffc9, 0xffba, 0xffba, 0xffca, 0xffcb,
268 0xffbd, 0xffbe, 0xffbe, 0xffbb, 0xffbc, 0xffbd, 0xffbe, 0xffbe, 0x01d6, 0x1fcc, 0xffcc, 0xffcd,
269 0xffce, 0x07d0, 0x1fcd, 0xffcf, 0xffd0, 0xffd1, 0x3fb6, 0x7f8c, 0xffd2, 0xffd3, 0xff90, 0x7f8d,
270 0xffd4, 0xffd5, 0xffd6, 0xff95, 0xffd7, 0xffd8, 0xff94, 0xff95, 0xff95, 0x01d7, 0x1fce, 0x7f8e,
271 0x7f8f, 0xffd9, 0x0fcb, 0x1fcf, 0x3fb7, 0xffda, 0xffdb, 0xffdc, 0x7f90, 0xffdd, 0xffde, 0xff9e,
272 0xffdf, 0xffe0, 0xffe1, 0xffe2, 0xffa2, 0xffe3, 0xffe4, 0xffa1, 0xffa2, 0xffa2, 0x07d1, 0x1fd0,
273 0x7f91, 0xffe5, 0xffa8, 0x0fcc, 0x3fb8, 0xffe6, 0xffe7, 0xffaa, 0xffe8, 0xffe9, 0xffea, 0xffeb,
274 0xffac, 0xffec, 0xffed, 0xffee, 0xffaf, 0xffaf, 0xffae, 0x7f88, 0x7f89, 0xffaf, 0xffaf, 0xffef,
275 0xfff0, 0xfff1, 0xfff2, 0xffb4, 0xfff3, 0xfff4, 0xfff5, 0xfff6, 0xffb6, 0xfff7, 0xfff8, 0xfff9,
276 0xffba, 0xffba, 0xfffa, 0xfffb, 0xffbd, 0xffbe, 0xffbe, 0xffbb, 0xffbc, 0xffbd, 0xffbe, 0xffbe,
277 0xfffc, 0xfffd, 0xffb3, 0xffb4, 0xffb4, 0xfffe, 0xffff
279 pub const COOK_VQ4_BITS: &[u8; 246] = &[
280 2, 4, 7, 10, 4, 5, 7, 10, 7, 8, 10, 14,
281 11, 11, 15, 15, 4, 5, 9, 12, 5, 5, 8, 12,
282 8, 7, 10, 15, 11, 11, 15, 15, 7, 9, 12, 15,
283 8, 8, 12, 15, 10, 10, 13, 15, 14, 14, 15, 0,
284 11, 13, 15, 15, 11, 13, 15, 15, 14, 15, 15, 0,
285 15, 15, 0, 0, 4, 5, 9, 13, 5, 6, 9, 13,
286 9, 9, 11, 15, 14, 13, 15, 15, 4, 6, 9, 12,
287 5, 6, 9, 13, 9, 8, 11, 15, 13, 12, 15, 15,
288 7, 9, 12, 15, 7, 8, 11, 15, 10, 10, 14, 15,
289 14, 15, 15, 0, 10, 12, 15, 15, 11, 13, 15, 15,
290 15, 15, 15, 0, 15, 15, 0, 0, 6, 9, 13, 14,
291 8, 9, 12, 15, 12, 12, 15, 15, 15, 15, 15, 0,
292 7, 9, 13, 15, 8, 9, 12, 15, 11, 12, 15, 15,
293 15, 15, 15, 0, 9, 11, 15, 15, 9, 11, 15, 15,
294 14, 14, 15, 0, 15, 15, 0, 0, 14, 15, 15, 0,
295 14, 15, 15, 0, 15, 15, 0, 0, 0, 0, 0, 0,
296 9, 12, 15, 15, 12, 13, 15, 15, 15, 15, 15, 0,
297 15, 15, 0, 0, 10, 12, 15, 15, 12, 14, 15, 15,
298 15, 15, 15, 0, 15, 15, 0, 0, 14, 15, 15, 0,
299 15, 15, 15, 0, 15, 15, 0, 0, 0, 0, 0, 0,
302 pub const COOK_VQ4_CODES: &[u16; 246] = &[
303 0x0000, 0x0004, 0x006c, 0x03e6, 0x0005, 0x0012, 0x006d, 0x03e7, 0x006e, 0x00e8, 0x03e8, 0x3fc4,
304 0x07e0, 0x07e1, 0x7fa4, 0x7fa5, 0x0006, 0x0013, 0x01e2, 0x0fda, 0x0014, 0x0015, 0x00e9, 0x0fdb,
305 0x00ea, 0x006f, 0x03e9, 0x7fa6, 0x07e2, 0x07e3, 0x7fa7, 0x7fa8, 0x0070, 0x01e3, 0x0fdc, 0x7fa9,
306 0x00eb, 0x00ec, 0x0fdd, 0x7faa, 0x03ea, 0x03eb, 0x1fd6, 0x7fab, 0x3fc5, 0x3fc6, 0x7fac, 0x1fd6,
307 0x07e4, 0x1fd7, 0x7fad, 0x7fae, 0x07e5, 0x1fd8, 0x7faf, 0x7fb0, 0x3fc7, 0x7fb1, 0x7fb2, 0x1fd6,
308 0x7fb3, 0x7fb4, 0x1fd6, 0x1fd6, 0x0007, 0x0016, 0x01e4, 0x1fd9, 0x0017, 0x0032, 0x01e5, 0x1fda,
309 0x01e6, 0x01e7, 0x07e6, 0x7fb5, 0x3fc8, 0x1fdb, 0x7fb6, 0x7fb7, 0x0008, 0x0033, 0x01e8, 0x0fde,
310 0x0018, 0x0034, 0x01e9, 0x1fdc, 0x01ea, 0x00ed, 0x07e7, 0x7fb8, 0x1fdd, 0x0fdf, 0x7fb9, 0x7fba,
311 0x0071, 0x01eb, 0x0fe0, 0x7fbb, 0x0072, 0x00ee, 0x07e8, 0x7fbc, 0x03ec, 0x03ed, 0x3fc9, 0x7fbd,
312 0x3fca, 0x7fbe, 0x7fbf, 0x3fc9, 0x03ee, 0x0fe1, 0x7fc0, 0x7fc1, 0x07e9, 0x1fde, 0x7fc2, 0x7fc3,
313 0x7fc4, 0x7fc5, 0x7fc6, 0x3fc9, 0x7fc7, 0x7fc8, 0x3fc9, 0x3fc9, 0x0035, 0x01ec, 0x1fdf, 0x3fcb,
314 0x00ef, 0x01ed, 0x0fe2, 0x7fc9, 0x0fe3, 0x0fe4, 0x7fca, 0x7fcb, 0x7fcc, 0x7fcd, 0x7fce, 0x7fca,
315 0x0073, 0x01ee, 0x1fe0, 0x7fcf, 0x00f0, 0x01ef, 0x0fe5, 0x7fd0, 0x07ea, 0x0fe6, 0x7fd1, 0x7fd2,
316 0x7fd3, 0x7fd4, 0x7fd5, 0x7fd1, 0x01f0, 0x07eb, 0x7fd6, 0x7fd7, 0x01f1, 0x07ec, 0x7fd8, 0x7fd9,
317 0x3fcc, 0x3fcd, 0x7fda, 0x7fda, 0x7fdb, 0x7fdc, 0x7fda, 0x7fda, 0x3fce, 0x7fdd, 0x7fde, 0x7fd6,
318 0x3fcf, 0x7fdf, 0x7fe0, 0x7fd8, 0x7fe1, 0x7fe2, 0x7fda, 0x7fda, 0x3fcc, 0x3fcd, 0x7fda, 0x7fda,
319 0x01f2, 0x0fe7, 0x7fe3, 0x7fe4, 0x0fe8, 0x1fe1, 0x7fe5, 0x7fe6, 0x7fe7, 0x7fe8, 0x7fe9, 0x7fca,
320 0x7fea, 0x7feb, 0x7fca, 0x7fca, 0x03ef, 0x0fe9, 0x7fec, 0x7fed, 0x0fea, 0x3fd0, 0x7fee, 0x7fef,
321 0x7ff0, 0x7ff1, 0x7ff2, 0x7fd1, 0x7ff3, 0x7ff4, 0x7fd1, 0x7fd1, 0x3fd1, 0x7ff5, 0x7ff6, 0x7fd6,
322 0x7ff7, 0x7ff8, 0x7ff9, 0x7fd8, 0x7ffa, 0x7ffb, 0x7fda, 0x7fda, 0x3fcc, 0x3fcd, 0x7fda, 0x7fda,
323 0x7ffc, 0x7ffd, 0x7fd6, 0x7fd6, 0x7ffe, 0x7fff
325 pub const COOK_VQ5_BITS: &[u8; 230] = &[
326 2, 4, 8, 4, 5, 9, 9, 10, 14, 4, 6, 11,
327 5, 6, 12, 10, 11, 15, 9, 11, 15, 10, 13, 15,
328 14, 15, 0, 4, 6, 12, 6, 7, 12, 12, 12, 15,
329 5, 7, 13, 6, 7, 13, 12, 13, 15, 10, 12, 15,
330 11, 13, 15, 15, 15, 0, 8, 13, 15, 11, 12, 15,
331 15, 15, 0, 10, 13, 15, 12, 15, 15, 15, 15, 0,
332 15, 15, 0, 15, 15, 0, 0, 0, 0, 4, 5, 11,
333 5, 7, 12, 11, 12, 15, 6, 7, 13, 7, 8, 14,
334 12, 14, 15, 11, 13, 15, 12, 13, 15, 15, 15, 0,
335 5, 6, 13, 7, 8, 15, 12, 14, 15, 6, 8, 14,
336 7, 8, 15, 14, 15, 15, 12, 12, 15, 12, 13, 15,
337 15, 15, 0, 9, 13, 15, 12, 13, 15, 15, 15, 0,
338 11, 13, 15, 13, 13, 15, 15, 15, 0, 14, 15, 0,
339 15, 15, 0, 0, 0, 0, 8, 10, 15, 11, 12, 15,
340 15, 15, 0, 10, 12, 15, 12, 13, 15, 15, 15, 0,
341 14, 15, 0, 15, 15, 0, 0, 0, 0, 8, 12, 15,
342 12, 13, 15, 15, 15, 0, 11, 13, 15, 13, 15, 15,
343 15, 15, 0, 15, 15, 0, 15, 15, 0, 0, 0, 0,
344 14, 15, 0, 15, 15, 0, 0, 0, 0, 15, 15, 0,
347 pub const COOK_VQ5_CODES: &[u16; 230] = &[
348 0x0000, 0x0004, 0x00f0, 0x0005, 0x0012, 0x01f0, 0x01f1, 0x03e8, 0x3fce, 0x0006, 0x0030, 0x07de,
349 0x0013, 0x0031, 0x0fd2, 0x03e9, 0x07df, 0x7fb0, 0x01f2, 0x07e0, 0x7fb1, 0x03ea, 0x1fd2, 0x7fb2,
350 0x3fcf, 0x7fb3, 0x0031, 0x0007, 0x0032, 0x0fd3, 0x0033, 0x0070, 0x0fd4, 0x0fd5, 0x0fd6, 0x7fb4,
351 0x0014, 0x0071, 0x1fd3, 0x0034, 0x0072, 0x1fd4, 0x0fd7, 0x1fd5, 0x7fb5, 0x03eb, 0x0fd8, 0x7fb6,
352 0x07e1, 0x1fd6, 0x7fb7, 0x7fb8, 0x7fb9, 0x0072, 0x00f1, 0x1fd7, 0x7fba, 0x07e2, 0x0fd9, 0x7fbb,
353 0x7fbc, 0x7fbd, 0x0070, 0x03ec, 0x1fd8, 0x7fbe, 0x0fda, 0x7fbf, 0x7fc0, 0x7fc1, 0x7fc2, 0x0072,
354 0x7fc3, 0x7fc4, 0x0071, 0x7fc5, 0x7fc6, 0x0072, 0x0034, 0x0072, 0x0072, 0x0008, 0x0015, 0x07e3,
355 0x0016, 0x0073, 0x0fdb, 0x07e4, 0x0fdc, 0x7fc7, 0x0035, 0x0074, 0x1fd9, 0x0075, 0x00f2, 0x3fd0,
356 0x0fdd, 0x3fd1, 0x7fc8, 0x07e5, 0x1fda, 0x7fc9, 0x0fde, 0x1fdb, 0x7fca, 0x7fcb, 0x7fcc, 0x00f2,
357 0x0017, 0x0036, 0x1fdc, 0x0076, 0x00f3, 0x7fcd, 0x0fdf, 0x3fd2, 0x7fce, 0x0037, 0x00f4, 0x3fd3,
358 0x0077, 0x00f5, 0x7fcf, 0x3fd4, 0x7fd0, 0x7fd1, 0x0fe0, 0x0fe1, 0x7fd2, 0x0fe2, 0x1fdd, 0x7fd3,
359 0x7fd4, 0x7fd5, 0x00f5, 0x01f3, 0x1fde, 0x7fd6, 0x0fe3, 0x1fdf, 0x7fd7, 0x7fd8, 0x7fd9, 0x00f3,
360 0x07e6, 0x1fe0, 0x7fda, 0x1fe1, 0x1fe2, 0x7fdb, 0x7fdc, 0x7fdd, 0x00f5, 0x3fd5, 0x7fde, 0x00f4,
361 0x7fdf, 0x7fe0, 0x00f5, 0x0077, 0x00f5, 0x00f5, 0x00f6, 0x03ed, 0x7fe1, 0x07e7, 0x0fe4, 0x7fe2,
362 0x7fe3, 0x7fe4, 0x0073, 0x03ee, 0x0fe5, 0x7fe5, 0x0fe6, 0x1fe3, 0x7fe6, 0x7fe7, 0x7fe8, 0x00f2,
363 0x3fd6, 0x7fe9, 0x0074, 0x7fea, 0x7feb, 0x00f2, 0x0075, 0x00f2, 0x00f2, 0x00f7, 0x0fe7, 0x7fec,
364 0x0fe8, 0x1fe4, 0x7fed, 0x7fee, 0x7fef, 0x00f3, 0x07e8, 0x1fe5, 0x7ff0, 0x1fe6, 0x7ff1, 0x7ff2,
365 0x7ff3, 0x7ff4, 0x00f5, 0x7ff5, 0x7ff6, 0x00f4, 0x7ff7, 0x7ff8, 0x00f5, 0x0077, 0x00f5, 0x00f5,
366 0x3fd7, 0x7ff9, 0x0036, 0x7ffa, 0x7ffb, 0x00f3, 0x0076, 0x00f3, 0x00f3, 0x7ffc, 0x7ffd, 0x0000,
369 pub const COOK_VQ6_BITS: &[u8; 32] = &[
370 1, 4, 4, 6, 4, 6, 6, 8, 4, 6, 6, 8,
371 6, 9, 8, 10, 4, 6, 7, 8, 6, 9, 8, 11,
372 6, 9, 8, 10, 8, 10, 9, 11
374 pub const COOK_VQ6_CODES: &[u16; 32] = &[
375 0x0000, 0x0008, 0x0009, 0x0034, 0x000a, 0x0035, 0x0036, 0x00f6,
376 0x000b, 0x0037, 0x0038, 0x00f7, 0x0039, 0x01fa, 0x00f8, 0x03fc,
377 0x000c, 0x003a, 0x007a, 0x00f9, 0x003b, 0x01fb, 0x00fa, 0x07fe,
378 0x003c, 0x01fc, 0x00fb, 0x03fd, 0x00fc, 0x03fe, 0x01fd, 0x07ff
381 pub const COOK_CPL_SCALE2: &[f32; 5] = &[
382 1.0, 0.953020632266998, 0.70710676908493, 0.302905440330505, 0.0
384 pub const COOK_CPL_SCALE3: &[f32; 9] = &[
385 1.0, 0.981279790401459, 0.936997592449188, 0.875934481620789, 0.70710676908493,
386 0.482430040836334, 0.349335819482803, 0.192587479948997, 0.0
388 pub const COOK_CPL_SCALE4: &[f32; 17] = &[
389 1.0, 0.991486728191376, 0.973249018192291, 0.953020632266998, 0.930133521556854,
390 0.903453230857849, 0.870746195316315, 0.826180458068848, 0.70710676908493,
391 0.563405573368073, 0.491732746362686, 0.428686618804932, 0.367221474647522,
392 0.302905440330505, 0.229752898216248, 0.130207896232605, 0.0
394 pub const COOK_CPL_SCALE5: &[f32; 33] = &[
395 1.0, 0.995926380157471, 0.987517595291138, 0.978726446628571, 0.969505727291107,
396 0.95979779958725, 0.949531257152557, 0.938616216182709, 0.926936149597168,
397 0.914336204528809, 0.900602877140045, 0.885426938533783, 0.868331849575043,
398 0.84851086139679, 0.824381768703461, 0.791833400726318, 0.70710676908493,
399 0.610737144947052, 0.566034197807312, 0.529177963733673, 0.495983630418777,
400 0.464778542518616, 0.434642940759659, 0.404955863952637, 0.375219136476517,
401 0.344963222742081, 0.313672333955765, 0.280692428350449, 0.245068684220314,
402 0.205169528722763, 0.157508864998817, 0.0901700109243393, 0.0
404 pub const COOK_CPL_SCALE6: &[f32; 65] = &[
405 1.0, 0.998005926609039, 0.993956744670868, 0.989822506904602, 0.985598564147949,
406 0.981279790401459, 0.976860702037811, 0.972335040569305, 0.967696130275726,
407 0.962936460971832, 0.958047747612000, 0.953020632266998, 0.947844684123993,
408 0.942508161067963, 0.936997592449188, 0.931297719478607, 0.925390899181366,
409 0.919256627559662, 0.912870943546295, 0.906205296516418, 0.899225592613220,
410 0.891890347003937, 0.884148240089417, 0.875934481620789, 0.867165684700012,
411 0.857730865478516, 0.847477376461029, 0.836184680461884, 0.823513329029083,
412 0.808890223503113, 0.791194140911102, 0.767520070075989, 0.707106769084930,
413 0.641024887561798, 0.611565053462982, 0.587959706783295, 0.567296981811523,
414 0.548448026180267, 0.530831515789032, 0.514098942279816, 0.498019754886627,
415 0.482430040836334, 0.467206478118896, 0.452251672744751, 0.437485188245773,
416 0.422837972640991, 0.408248275518417, 0.393658757209778, 0.379014074802399,
417 0.364258885383606, 0.349335819482803, 0.334183186292648, 0.318732559680939,
418 0.302905440330505, 0.286608695983887, 0.269728302955627, 0.252119421958923,
419 0.233590632677078, 0.213876649737358, 0.192587479948997, 0.169101938605309,
420 0.142307326197624, 0.109772264957428, 0.0631198287010193, 0.0
422 pub const COOK_CPL_SCALES: [&[f32]; 5] = [
423 COOK_CPL_SCALE2, COOK_CPL_SCALE3, COOK_CPL_SCALE4, COOK_CPL_SCALE5, COOK_CPL_SCALE6
426 pub const COOK_CPL_BAND: [u8; MAX_SUBBANDS - 1] = [
427 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 11, 12, 12, 13,
428 13, 14, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 16, 17, 17, 17,
429 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19,
433 #[allow(clippy::approx_constant)]
434 pub const COOK_DITHER_TAB: [f32; 9] = [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.176777, 0.25, 0.707107, 1.0 ];
436 pub const COOK_QUANT_CENTROID: [[f32; 14]; 7] = [
437 [ 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 ],
438 [ 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 ],
439 [ 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 ],
440 [ 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 ],
441 [ 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 ],
442 [ 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 ],
443 [ 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 ]
446 pub const COOK_EXP_BITS: [i32; NUM_CATEGORIES] = [ 52, 47, 43, 37, 29, 22, 16, 0 ];