cook: split data into a separate module
[nihav.git] / nihav-realmedia / src / codecs / cookdata.rs
CommitLineData
38c78f36
KS
1pub const MAX_SUBBANDS: usize = 52;
2pub const NUM_CATEGORIES: usize = 8;
3pub const BAND_SIZE: usize = 20;
4
5pub const COOK_VQ_GROUP_SIZE: [usize; 7] = [ 2, 2, 2, 4, 4, 5, 5 ];
6pub const COOK_NUM_VQ_GROUPS: [usize; 7] = [ 10, 10, 10, 5, 5, 4, 4 ];
7pub const COOK_VQ_INV_RADIX: [u32; 7] = [ 74899, 104858, 149797, 209716, 262144, 349526, 524288 ];
8pub const COOK_VQ_MULT: [u32; 7] = [ 13, 9, 6, 4, 3, 2, 1 ];
9
10pub const COOK_XOR_KEY: [u8; 4] = [ 0x37, 0xC5, 0x11, 0xF2 ];
11
12pub const COOK_CPL_2BITS_BITS: &[u8; 3] = &[ 2, 1, 2 ];
13pub const COOK_CPL_2BITS_CODES: &[u16; 3] = &[ 0x02, 0x00, 0x03 ];
14pub const COOK_CPL_3BITS_BITS: &[u8; 7] = &[ 6, 5, 2, 1, 3, 4, 6 ];
15pub const COOK_CPL_3BITS_CODES: &[u16; 7] = &[ 0x3e, 0x1e, 0x02, 0x00, 0x06, 0x0e, 0x3f ];
16pub const COOK_CPL_4BITS_BITS: &[u8; 15] = &[ 8, 8, 7, 6, 5, 4, 3, 1, 3, 4, 5, 6, 7, 8, 8 ];
17pub const COOK_CPL_4BITS_CODES: &[u16; 15] = &[
18 0xfc, 0xfd, 0x7c, 0x3c, 0x1c, 0x0c, 0x04, 0x00,
19 0x05, 0x0d, 0x1d, 0x3d, 0x7d, 0xfe, 0xff
20];
21pub 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
24];
25pub 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
30];
31pub 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
36];
37pub 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
46];
47
48pub 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 ],
62];
63pub 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 ],
90];
91
92pub 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
109];
110pub 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
135];
136pub 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
145];
146pub 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,
159 0xffff
160];
161pub 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
166];
167pub 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
172];
173pub 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
225];
226pub 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
278];
279pub 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,
300 15, 15, 0, 0, 15, 15
301];
302pub 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
324];
325pub 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,
345 15, 15
346];
347pub 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,
367 0x7ffe, 0x7fff
368];
369pub 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
373];
374pub 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
379];
380
381pub const COOK_CPL_SCALE2: &[f32; 5] = &[
382 1.0, 0.953020632266998, 0.70710676908493, 0.302905440330505, 0.0
383];
384pub 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
387];
388pub 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
393];
394pub 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
403];
404pub 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
421];
422pub const COOK_CPL_SCALES: [&[f32]; 5] = [
423 COOK_CPL_SCALE2, COOK_CPL_SCALE3, COOK_CPL_SCALE4, COOK_CPL_SCALE5, COOK_CPL_SCALE6
424];
425
426pub 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,
430 19, 19, 19
431];
432
433#[allow(clippy::approx_constant)]
434pub const COOK_DITHER_TAB: [f32; 9] = [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.176777, 0.25, 0.707107, 1.0 ];
435
436pub 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 ]
444];
445
446pub const COOK_EXP_BITS: [i32; NUM_CATEGORIES] = [ 52, 47, 43, 37, 29, 22, 16, 0 ];