1cabdff1aSopenharmony_ci/*
2cabdff1aSopenharmony_ci * COOK compatible decoder data
3cabdff1aSopenharmony_ci * Copyright (c) 2003 Sascha Sommer
4cabdff1aSopenharmony_ci * Copyright (c) 2005 Benjamin Larsson
5cabdff1aSopenharmony_ci *
6cabdff1aSopenharmony_ci * This file is part of FFmpeg.
7cabdff1aSopenharmony_ci *
8cabdff1aSopenharmony_ci * FFmpeg is free software; you can redistribute it and/or
9cabdff1aSopenharmony_ci * modify it under the terms of the GNU Lesser General Public
10cabdff1aSopenharmony_ci * License as published by the Free Software Foundation; either
11cabdff1aSopenharmony_ci * version 2.1 of the License, or (at your option) any later version.
12cabdff1aSopenharmony_ci *
13cabdff1aSopenharmony_ci * FFmpeg is distributed in the hope that it will be useful,
14cabdff1aSopenharmony_ci * but WITHOUT ANY WARRANTY; without even the implied warranty of
15cabdff1aSopenharmony_ci * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16cabdff1aSopenharmony_ci * Lesser General Public License for more details.
17cabdff1aSopenharmony_ci *
18cabdff1aSopenharmony_ci * You should have received a copy of the GNU Lesser General Public
19cabdff1aSopenharmony_ci * License along with FFmpeg; if not, write to the Free Software
20cabdff1aSopenharmony_ci * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21cabdff1aSopenharmony_ci */
22cabdff1aSopenharmony_ci
23cabdff1aSopenharmony_ci/**
24cabdff1aSopenharmony_ci * @file
25cabdff1aSopenharmony_ci * Cook AKA RealAudio G2 compatible decoder data
26cabdff1aSopenharmony_ci */
27cabdff1aSopenharmony_ci
28cabdff1aSopenharmony_ci#ifndef AVCODEC_COOKDATA_H
29cabdff1aSopenharmony_ci#define AVCODEC_COOKDATA_H
30cabdff1aSopenharmony_ci
31cabdff1aSopenharmony_ci#include <stdint.h>
32cabdff1aSopenharmony_ci
33cabdff1aSopenharmony_ci/* various data tables */
34cabdff1aSopenharmony_ci
35cabdff1aSopenharmony_cistatic const int expbits_tab[8] = {
36cabdff1aSopenharmony_ci    52,47,43,37,29,22,16,0,
37cabdff1aSopenharmony_ci};
38cabdff1aSopenharmony_ci
39cabdff1aSopenharmony_cistatic const float dither_tab[9] = {
40cabdff1aSopenharmony_ci  0.0, 0.0, 0.0, 0.0, 0.0, 0.176777, 0.25, 0.707107, 1.0
41cabdff1aSopenharmony_ci};
42cabdff1aSopenharmony_ci
43cabdff1aSopenharmony_cistatic const float quant_centroid_tab[7][14] = {
44cabdff1aSopenharmony_ci  { 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 },
45cabdff1aSopenharmony_ci  { 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 },
46cabdff1aSopenharmony_ci  { 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 },
47cabdff1aSopenharmony_ci  { 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 },
48cabdff1aSopenharmony_ci  { 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 },
49cabdff1aSopenharmony_ci  { 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 },
50cabdff1aSopenharmony_ci  { 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 }
51cabdff1aSopenharmony_ci};
52cabdff1aSopenharmony_ci
53cabdff1aSopenharmony_cistatic const int invradix_tab[7] = {
54cabdff1aSopenharmony_ci    74899, 104858, 149797, 209716, 262144, 349526, 524288,
55cabdff1aSopenharmony_ci};
56cabdff1aSopenharmony_ci
57cabdff1aSopenharmony_cistatic const int kmax_tab[7] = {
58cabdff1aSopenharmony_ci    13, 9, 6, 4, 3, 2, 1,
59cabdff1aSopenharmony_ci};
60cabdff1aSopenharmony_ci
61cabdff1aSopenharmony_cistatic const int vd_tab[7] = {
62cabdff1aSopenharmony_ci    2, 2, 2, 4, 4, 5, 5,
63cabdff1aSopenharmony_ci};
64cabdff1aSopenharmony_ci
65cabdff1aSopenharmony_cistatic const int vpr_tab[7] = {
66cabdff1aSopenharmony_ci    10, 10, 10, 5, 5, 4, 4,
67cabdff1aSopenharmony_ci};
68cabdff1aSopenharmony_ci
69cabdff1aSopenharmony_ci
70cabdff1aSopenharmony_ci
71cabdff1aSopenharmony_ci/* VLC data */
72cabdff1aSopenharmony_ci
73cabdff1aSopenharmony_ci#define MAX_COOK_VLC_ENTRIES 520
74cabdff1aSopenharmony_ci
75cabdff1aSopenharmony_cistatic const int vhvlcsize_tab[7] = {
76cabdff1aSopenharmony_ci    8, 7, 7, 10, 9, 9, 6,
77cabdff1aSopenharmony_ci};
78cabdff1aSopenharmony_ci
79cabdff1aSopenharmony_cistatic const uint8_t envelope_quant_index_huffcounts[13][16] = {
80cabdff1aSopenharmony_ci    {  0,  0,  3,  8,  3,  1,  1,  1,  1,  0,  2,  4,  0,  0,  0,  0  },
81cabdff1aSopenharmony_ci    {  0,  0,  6,  2,  3,  1,  1,  1,  1,  1,  1,  1,  1,  0,  3,  2  },
82cabdff1aSopenharmony_ci    {  0,  0,  3,  8,  3,  1,  1,  1,  1,  1,  1,  1,  1,  2,  0,  0  },
83cabdff1aSopenharmony_ci    {  0,  0,  5,  4,  3,  0,  3,  0,  3,  1,  1,  0,  4,  0,  0,  0  },
84cabdff1aSopenharmony_ci    {  0,  0,  5,  3,  4,  3,  1,  1,  1,  1,  1,  1,  1,  2,  0,  0  },
85cabdff1aSopenharmony_ci    {  0,  0,  5,  4,  3,  0,  2,  3,  1,  1,  1,  1,  1,  2,  0,  0  },
86cabdff1aSopenharmony_ci    {  0,  1,  4,  2,  3,  1,  1,  1,  1,  1,  1,  1,  1,  0,  2,  4  },
87cabdff1aSopenharmony_ci    {  0,  1,  4,  2,  3,  0,  3,  0,  3,  1,  1,  1,  0,  3,  2,  0  },
88cabdff1aSopenharmony_ci    {  0,  0,  6,  2,  2,  2,  2,  2,  3,  1,  1,  1,  2,  0,  0,  0  },
89cabdff1aSopenharmony_ci    {  0,  0,  6,  2,  2,  3,  0,  3,  1,  1,  1,  1,  0,  4,  0,  0  },
90cabdff1aSopenharmony_ci    {  0,  1,  3,  4,  2,  3,  0,  2,  3,  1,  1,  1,  1,  2,  0,  0  },
91cabdff1aSopenharmony_ci    {  0,  1,  3,  4,  3,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,  4  },
92cabdff1aSopenharmony_ci    {  0,  1,  4,  2,  3,  0,  3,  1,  1,  1,  1,  0,  1,  6,  0,  0  },
93cabdff1aSopenharmony_ci};
94cabdff1aSopenharmony_ci
95cabdff1aSopenharmony_cistatic const uint8_t envelope_quant_index_huffsyms[13][24] = {
96cabdff1aSopenharmony_ci    { 10, 11, 12,  0,  4,  5,  6,  7,  8,  9, 13,  2,
97cabdff1aSopenharmony_ci       3, 14,  1, 15, 16, 17, 18, 19, 20, 21, 22, 23 },
98cabdff1aSopenharmony_ci    {  6,  7,  8,  9, 10, 11,  5, 12,  3,  4, 13,  2,
99cabdff1aSopenharmony_ci      14,  1, 15,  0, 16, 17, 18, 19, 20, 21, 22, 23 },
100cabdff1aSopenharmony_ci    { 11, 12, 13,  5,  6,  7,  8,  9, 10, 14, 15,  4,
101cabdff1aSopenharmony_ci      16, 17,  3, 18,  2, 19,  1, 20,  0, 21, 22, 23 },
102cabdff1aSopenharmony_ci    {  9, 10, 11, 12, 13,  8, 14, 15, 16,  6,  7, 17,
103cabdff1aSopenharmony_ci       4,  5, 18,  2,  3, 19,  1, 20,  0, 21, 22, 23 },
104cabdff1aSopenharmony_ci    { 10, 11, 12, 13, 14,  8,  9, 15,  6,  7, 16, 17,
105cabdff1aSopenharmony_ci       4,  5, 18, 19,  3, 20,  2, 21,  0,  1, 22, 23 },
106cabdff1aSopenharmony_ci    {  9, 10, 11, 12, 13,  7,  8, 14, 15,  6, 16, 17,
107cabdff1aSopenharmony_ci       5, 18,  3,  4, 19,  2, 20,  1,  0, 21, 22, 23 },
108cabdff1aSopenharmony_ci    { 12,  9, 10, 11, 13,  8, 14,  7, 15, 16,  6, 17,
109cabdff1aSopenharmony_ci       5, 18,  4, 19,  3, 20,  0,  2,  1, 21, 22, 23 },
110cabdff1aSopenharmony_ci    { 12, 10, 11, 13, 14,  9, 15,  7,  8, 16,  5,  6,
111cabdff1aSopenharmony_ci      17,  4, 18, 19,  3,  2, 20,  0,  1, 21, 22, 23 },
112cabdff1aSopenharmony_ci    {  8,  9, 10, 11, 12, 13,  7, 14,  6, 15,  5, 16,
113cabdff1aSopenharmony_ci       4, 17,  3, 18,  0,  1,  2, 19, 20, 21, 22, 23 },
114cabdff1aSopenharmony_ci    {  8,  9, 10, 11, 12, 13,  7, 14,  6, 15,  4,  5,
115cabdff1aSopenharmony_ci      16,  3, 17, 18, 19,  2, 20,  1,  0, 21, 22, 23 },
116cabdff1aSopenharmony_ci    { 12, 10, 11, 13,  7,  8,  9, 14,  6, 15,  4,  5,
117cabdff1aSopenharmony_ci      16,  3, 17,  2, 18, 19,  1, 20, 21,  0, 22, 23 },
118cabdff1aSopenharmony_ci    { 12, 11, 13, 14,  8,  9, 10, 15,  6,  7, 16,  5,
119cabdff1aSopenharmony_ci      17, 18,  4, 19,  3,  2,  1, 20,  0, 21, 22, 23 },
120cabdff1aSopenharmony_ci    { 12, 10, 11, 13, 14,  9, 15,  8, 16, 17,  6,  7,
121cabdff1aSopenharmony_ci      18,  5, 19,  4, 20,  0,  1,  2,  3, 21, 22, 23 },
122cabdff1aSopenharmony_ci};
123cabdff1aSopenharmony_ci
124cabdff1aSopenharmony_ci
125cabdff1aSopenharmony_cistatic const uint8_t cvh_huffcounts[7][16] = {
126cabdff1aSopenharmony_ci    {  1,  0,  0,  2,  2,  5,  8, 15, 31, 33, 28, 17, 15,  8,  8,   8  },
127cabdff1aSopenharmony_ci    {  1,  0,  0,  2,  4,  5,  7, 16, 18, 12, 11,  7,  3,  5,  1,   2  },
128cabdff1aSopenharmony_ci    {  1,  0,  1,  2,  4,  2,  5,  8,  7,  8,  2,  3,  1,  1,  1,   2  },
129cabdff1aSopenharmony_ci    {  0,  1,  0,  2,  5, 12,  7, 27, 22, 41, 32, 41, 55, 23, 32, 220  },
130cabdff1aSopenharmony_ci    {  0,  1,  0,  5,  7,  4,  8,  9, 17, 10, 13, 17, 12, 14, 92,   0  },
131cabdff1aSopenharmony_ci    {  0,  1,  0,  5,  6,  8,  8,  8,  4,  7, 11, 23, 21, 10, 80,   0  },
132cabdff1aSopenharmony_ci    {  1,  0,  0,  5,  0,  9,  1,  7,  4,  3,  2,  0,  0,  0,  0,   0  },
133cabdff1aSopenharmony_ci};
134cabdff1aSopenharmony_ci
135cabdff1aSopenharmony_cistatic const uint8_t cvh_huffsyms0[181] = {
136cabdff1aSopenharmony_ci      0,   1,  14,  15,  28,   2,   3,  16,  29,  42,   4,   5,  17,  18,  30,
137cabdff1aSopenharmony_ci     43,  56,  57,   6,   7,   8,  19,  20,  31,  32,  44,  58,  70,  71,  84,
138cabdff1aSopenharmony_ci     85,  98,  99,   9,  10,  21,  22,  23,  24,  33,  34,  35,  36,  45,  46,
139cabdff1aSopenharmony_ci     47,  48,  59,  60,  61,  72,  73,  74,  86,  87, 100, 101, 112, 113, 114,
140cabdff1aSopenharmony_ci    126, 127, 140, 141,  11,  25,  37,  38,  39,  49,  50,  51,  52,  62,  63,
141cabdff1aSopenharmony_ci     64,  65,  75,  76,  77,  78,  88,  89, 102, 103, 115, 116, 117, 128, 129,
142cabdff1aSopenharmony_ci    130, 131, 142, 143, 154, 155, 156,  12,  13,  26,  27,  40,  53,  66,  67,
143cabdff1aSopenharmony_ci     79,  80,  90,  91,  92, 104, 105, 106, 118, 119, 132, 144, 145, 157, 158,
144cabdff1aSopenharmony_ci    168, 169, 170, 182, 183,  41,  54,  68,  81,  93,  94, 107, 108, 120, 122,
145cabdff1aSopenharmony_ci    133, 134, 146, 159, 160, 171, 184,  55,  69,  82,  95,  96, 109, 121, 147,
146cabdff1aSopenharmony_ci    148, 161, 172, 173, 174, 185, 186,  83, 110, 123, 135, 136, 149, 150, 187,
147cabdff1aSopenharmony_ci     97, 111, 124, 151, 162, 163, 175, 188, 125, 137, 138, 164, 176, 177, 189,
148cabdff1aSopenharmony_ci    190,
149cabdff1aSopenharmony_ci};
150cabdff1aSopenharmony_ci
151cabdff1aSopenharmony_cistatic const uint8_t cvh_huffsyms1[94] = {
152cabdff1aSopenharmony_ci     0,  1, 10,  2, 11, 20, 21,  3, 12, 22, 30, 31,  4, 13, 14, 23, 32, 40, 41,
153cabdff1aSopenharmony_ci     5,  6, 15, 16, 24, 25, 33, 34, 42, 43, 50, 51, 52, 60, 61, 62,  7, 17, 18,
154cabdff1aSopenharmony_ci    26, 27, 35, 36, 44, 45, 53, 54, 63, 70, 71, 72, 80, 81, 82,  8,  9, 28, 37,
155cabdff1aSopenharmony_ci    46, 55, 56, 64, 73, 83, 90, 91, 19, 29, 38, 47, 48, 57, 65, 66, 74, 84, 92,
156cabdff1aSopenharmony_ci    39, 58, 67, 75, 76, 85, 93, 49, 68, 94, 59, 77, 78, 86, 95, 69, 87, 96,
157cabdff1aSopenharmony_ci};
158cabdff1aSopenharmony_ci
159cabdff1aSopenharmony_cistatic const uint8_t cvh_huffsyms2[48] = {
160cabdff1aSopenharmony_ci     0,  7,  1,  8,  2,  9, 14, 15, 16, 22,  3, 10, 17, 21, 23,  4, 11, 18, 24,
161cabdff1aSopenharmony_ci    28, 29, 30, 35,  5, 12, 25, 31, 36, 37, 42,  6, 13, 19, 20, 26, 32, 38, 43,
162cabdff1aSopenharmony_ci    39, 44, 27, 33, 45, 46, 34, 40, 41, 47,
163cabdff1aSopenharmony_ci};
164cabdff1aSopenharmony_ci
165cabdff1aSopenharmony_cistatic const uint16_t cvh_huffsyms3[520] = {
166cabdff1aSopenharmony_ci      0,   1, 125,   5,   6,  25,  30, 150,   2,   7,  26,  31, 126, 130, 131,
167cabdff1aSopenharmony_ci    151, 155, 156, 250, 275,  10,  35,  36,  50,  55, 175, 180,   3,   8,  11,
168cabdff1aSopenharmony_ci     12,  27,  32,  37,  56, 127, 132, 136, 152, 157, 160, 161, 176, 181, 251,
169cabdff1aSopenharmony_ci    255, 256, 276, 280, 281, 300, 305, 375, 400,  15,  16,  40,  41,  51,  60,
170cabdff1aSopenharmony_ci     61,  75,  80, 135, 162, 177, 185, 186, 200, 205, 301, 306, 405, 425, 500,
171cabdff1aSopenharmony_ci    525,   4,   9,  13,  17,  20,  28,  33,  38,  42,  52,  57,  81,  85, 128,
172cabdff1aSopenharmony_ci    133, 137, 140, 141, 158, 165, 166, 182, 187, 191, 206, 210, 257, 261, 277,
173cabdff1aSopenharmony_ci    282, 285, 286, 310, 311, 325, 330, 376, 380, 401, 406, 430,  21,  29,  46,
174cabdff1aSopenharmony_ci     62,  65,  66,  76,  86, 100, 105, 142, 153, 163, 190, 201, 211, 225, 230,
175cabdff1aSopenharmony_ci    252, 260, 262, 287, 302, 307, 381, 402, 426, 431, 450, 455, 505, 550,  14,
176cabdff1aSopenharmony_ci     18,  34,  43,  45,  53,  58,  67,  70,  71,  77,  87, 138, 146, 167, 168,
177cabdff1aSopenharmony_ci    171, 178, 183, 192, 207, 216, 235, 258, 265, 283, 291, 312, 315, 316, 326,
178cabdff1aSopenharmony_ci    331, 332, 335, 336, 350, 407, 410, 411, 530, 555,  22,  39,  47,  59,  63,
179cabdff1aSopenharmony_ci     82,  90,  91, 101, 106, 110, 111, 129, 134, 145, 154, 159, 170, 172, 188,
180cabdff1aSopenharmony_ci    195, 196, 202, 212, 215, 226, 231, 236, 253, 263, 266, 267, 278, 288, 290,
181cabdff1aSopenharmony_ci    292, 303, 317, 337, 355, 356, 377, 382, 385, 386, 432, 436, 451, 456, 460,
182cabdff1aSopenharmony_ci    501, 506, 526, 531, 551,  68,  72, 115, 147, 164, 184, 272, 295, 296, 297,
183cabdff1aSopenharmony_ci    309, 333, 340, 360, 387, 416, 427, 435, 437, 480, 510, 532, 556,  19,  44,
184cabdff1aSopenharmony_ci     54,  83,  97, 104, 107, 143, 173, 193, 208, 237, 268, 313, 320, 327, 341,
185cabdff1aSopenharmony_ci    351, 352, 378, 403, 412, 441, 442, 457, 475, 511, 515, 527, 528, 536, 552,
186cabdff1aSopenharmony_ci     23,  24,  48,  49,  64,  69,  73,  78,  79,  84,  88,  89,  92,  93,  94,
187cabdff1aSopenharmony_ci     95,  96,  98, 102, 103, 108, 109, 112, 113, 116, 117, 118, 120, 121, 139,
188cabdff1aSopenharmony_ci    144, 148, 149, 169, 174, 179, 189, 194, 197, 198, 203, 204, 209, 213, 214,
189cabdff1aSopenharmony_ci    217, 218, 219, 220, 221, 222, 223, 227, 228, 229, 232, 233, 234, 238, 240,
190cabdff1aSopenharmony_ci    241, 242, 243, 245, 246, 254, 259, 264, 269, 270, 271, 273, 279, 284, 289,
191cabdff1aSopenharmony_ci    293, 294, 298, 304, 308, 314, 318, 319, 321, 322, 323, 328, 329, 334, 338,
192cabdff1aSopenharmony_ci    339, 342, 343, 345, 346, 347, 353, 357, 358, 361, 362, 363, 365, 366, 367,
193cabdff1aSopenharmony_ci    379, 383, 384, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 404,
194cabdff1aSopenharmony_ci    408, 409, 413, 414, 415, 417, 418, 419, 420, 421, 422, 423, 428, 429, 433,
195cabdff1aSopenharmony_ci    434, 438, 439, 440, 443, 445, 446, 447, 452, 453, 454, 458, 459, 461, 462,
196cabdff1aSopenharmony_ci    463, 465, 466, 467, 468, 470, 471, 476, 477, 478, 481, 482, 483, 485, 486,
197cabdff1aSopenharmony_ci    487, 490, 491, 502, 503, 504, 507, 508, 509, 512, 513, 516, 517, 518, 520,
198cabdff1aSopenharmony_ci    521, 529, 533, 534, 535, 537, 538, 540, 541, 542, 543, 545, 546, 553, 557,
199cabdff1aSopenharmony_ci    558, 560, 561, 562, 563, 565, 566, 567, 575, 576, 577, 578, 580, 581, 582,
200cabdff1aSopenharmony_ci    583, 585, 586, 587, 590, 591, 600, 601, 605, 606,
201cabdff1aSopenharmony_ci};
202cabdff1aSopenharmony_ci
203cabdff1aSopenharmony_cistatic const uint8_t cvh_huffsyms4[209] = {
204cabdff1aSopenharmony_ci      0,   1,   4,  16,  64,  80,   5,  17,  20,  21,  65,  68,  84,  69,  81,
205cabdff1aSopenharmony_ci     85, 128,   2,   6,   8,  25,  32,  96, 100, 144,   9,  22,  24,  36,  37,
206cabdff1aSopenharmony_ci     89, 101, 132, 148,  18,  33,  66,  70,  72,  73,  82,  86,  88,  97, 129,
207cabdff1aSopenharmony_ci    133, 145, 149, 160, 164, 192,   3,   7,  10,  26,  40,  41, 104, 105, 112,
208cabdff1aSopenharmony_ci    208,  12,  13,  28,  29,  48,  52,  74,  90, 102, 116, 152, 161, 165,  19,
209cabdff1aSopenharmony_ci     23,  34,  38,  83,  93,  98, 113, 134, 136, 137, 150, 153, 193, 196, 209,
210cabdff1aSopenharmony_ci    212,  42,  49,  53,  67,  71,  77,  87,  92, 117, 130, 146, 197,  11,  44,
211cabdff1aSopenharmony_ci     45,  56,  76, 106, 108, 131, 168, 169, 176, 180, 213, 224,  14,  15,  27,
212cabdff1aSopenharmony_ci     30,  31,  35,  39,  43,  46,  50,  51,  54,  55,  57,  58,  60,  61,  75,
213cabdff1aSopenharmony_ci     78,  79,  91,  94,  95,  99, 103, 107, 109, 110, 114, 115, 118, 119, 120,
214cabdff1aSopenharmony_ci    121, 122, 124, 125, 135, 138, 139, 140, 141, 142, 147, 151, 154, 155, 156,
215cabdff1aSopenharmony_ci    157, 158, 162, 163, 166, 167, 170, 172, 173, 177, 178, 181, 182, 184, 185,
216cabdff1aSopenharmony_ci    194, 195, 198, 199, 200, 201, 202, 204, 205, 210, 211, 214, 215, 216, 217,
217cabdff1aSopenharmony_ci    218, 220, 221, 225, 226, 228, 229, 230, 232, 233, 240, 241, 244, 245,
218cabdff1aSopenharmony_ci};
219cabdff1aSopenharmony_ci
220cabdff1aSopenharmony_cistatic const uint8_t cvh_huffsyms5[192] = {
221cabdff1aSopenharmony_ci      0,   1,   3,   9,  27,  81,   4,  12,  36,  82,  84, 108,  10,  13,  28,
222cabdff1aSopenharmony_ci     30,  39,  90, 109, 117,  31,  37,  40,  85,  91,  93, 111, 120,   2,  54,
223cabdff1aSopenharmony_ci     94, 112, 118, 121, 162, 189,   5,   6,  18, 135,   7,  15,  21,  45,  63,
224cabdff1aSopenharmony_ci    163, 171,  11,  16,  19,  48,  57,  83,  87,  99, 144, 165, 198,  14,  29,
225cabdff1aSopenharmony_ci     32,  33,  34,  42,  46,  58,  66,  86,  88,  96, 102, 114, 126, 127, 129,
226cabdff1aSopenharmony_ci    138, 166, 172, 174, 190, 192,  22,  38,  41,  43,  49,  55,  64,  92, 100,
227cabdff1aSopenharmony_ci    103, 110, 130, 136, 139, 145, 147, 148, 175, 193, 199, 201,   8,  24,  95,
228cabdff1aSopenharmony_ci     97, 115, 119, 123, 153, 180, 216,  17,  20,  23,  25,  35,  44,  47,  50,
229cabdff1aSopenharmony_ci     51,  52,  56,  59,  60,  61,  65,  67,  68,  69,  70,  72,  73,  75,  76,
230cabdff1aSopenharmony_ci     89,  98, 101, 104, 105, 106, 113, 116, 122, 124, 125, 128, 131, 132, 133,
231cabdff1aSopenharmony_ci    137, 140, 141, 142, 146, 149, 150, 151, 154, 156, 157, 164, 167, 168, 169,
232cabdff1aSopenharmony_ci    173, 176, 177, 178, 181, 183, 184, 191, 194, 195, 196, 200, 202, 203, 204,
233cabdff1aSopenharmony_ci    205, 207, 208, 210, 211, 217, 219, 220, 225, 226, 228, 229,
234cabdff1aSopenharmony_ci};
235cabdff1aSopenharmony_ci
236cabdff1aSopenharmony_cistatic const uint8_t cvh_huffsyms6[32] = {
237cabdff1aSopenharmony_ci     0,  1,  2,  4,  8, 16,  3,  5,  6,  9, 10, 12, 17, 20, 24, 18,  7, 11, 14,
238cabdff1aSopenharmony_ci    19, 22, 26, 28, 13, 21, 25, 30, 15, 27, 29, 23, 31,
239cabdff1aSopenharmony_ci};
240cabdff1aSopenharmony_ci
241cabdff1aSopenharmony_cistatic const void* const cvh_huffsyms[7] = {
242cabdff1aSopenharmony_ci    cvh_huffsyms0, cvh_huffsyms1, cvh_huffsyms2, cvh_huffsyms3,
243cabdff1aSopenharmony_ci    cvh_huffsyms4, cvh_huffsyms5, cvh_huffsyms6,
244cabdff1aSopenharmony_ci};
245cabdff1aSopenharmony_ci
246cabdff1aSopenharmony_cistatic const uint8_t ccpl_huffsyms2[3] = {
247cabdff1aSopenharmony_ci     1,  0,  2,
248cabdff1aSopenharmony_ci};
249cabdff1aSopenharmony_ci
250cabdff1aSopenharmony_cistatic const uint8_t ccpl_huffsyms3[7] = {
251cabdff1aSopenharmony_ci     3,  2,  4,  5,  1,  0,  6,
252cabdff1aSopenharmony_ci};
253cabdff1aSopenharmony_ci
254cabdff1aSopenharmony_cistatic const uint8_t ccpl_huffsyms4[15] = {
255cabdff1aSopenharmony_ci     7,  6,  8,  5,  9,  4, 10,  3, 11,  2, 12,  0,  1, 13, 14,
256cabdff1aSopenharmony_ci};
257cabdff1aSopenharmony_ci
258cabdff1aSopenharmony_cistatic const uint8_t ccpl_huffsyms5[31] = {
259cabdff1aSopenharmony_ci    15, 14, 16, 12, 13, 17, 18, 10, 11, 19, 20,  8,  9, 21, 22,  6,  7, 23, 24,
260cabdff1aSopenharmony_ci     4,  5, 25, 26,  0,  1,  2,  3, 27, 28, 29, 30,
261cabdff1aSopenharmony_ci};
262cabdff1aSopenharmony_ci
263cabdff1aSopenharmony_cistatic const uint8_t ccpl_huffsyms6[63] = {
264cabdff1aSopenharmony_ci    31, 30, 32, 28, 29, 33, 34, 26, 27, 35, 36, 22, 23, 24, 25, 37, 38, 39, 40,
265cabdff1aSopenharmony_ci    18, 19, 20, 21, 41, 42, 43, 44, 13, 14, 15, 16, 17, 45, 46, 47, 48,  9, 10,
266cabdff1aSopenharmony_ci    11, 12, 49, 50, 51, 52, 53,  5,  6,  7,  8, 54, 55, 56, 57,  4, 58,  3, 59,
267cabdff1aSopenharmony_ci     2, 60, 61,  1,  0, 62,
268cabdff1aSopenharmony_ci};
269cabdff1aSopenharmony_ci
270cabdff1aSopenharmony_cistatic const uint8_t ccpl_huffcounts[5][16] = {
271cabdff1aSopenharmony_ci    {  1,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
272cabdff1aSopenharmony_ci    {  1,  1,  1,  1,  1,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
273cabdff1aSopenharmony_ci    {  1,  0,  2,  2,  2,  2,  2,  4,  0,  0,  0,  0,  0,  0,  0,  0  },
274cabdff1aSopenharmony_ci    {  1,  0,  2,  0,  4,  4,  4,  4,  4,  8,  0,  0,  0,  0,  0,  0  },
275cabdff1aSopenharmony_ci    {  1,  0,  1,  1,  4,  4,  8,  8,  9,  9,  8,  2,  2,  3,  1,  2  },
276cabdff1aSopenharmony_ci};
277cabdff1aSopenharmony_ci
278cabdff1aSopenharmony_cistatic const uint8_t *const ccpl_huffsyms[5] = {
279cabdff1aSopenharmony_ci    ccpl_huffsyms2, ccpl_huffsyms3,
280cabdff1aSopenharmony_ci    ccpl_huffsyms4, ccpl_huffsyms5, ccpl_huffsyms6
281cabdff1aSopenharmony_ci};
282cabdff1aSopenharmony_ci
283cabdff1aSopenharmony_ci//Coupling tables
284cabdff1aSopenharmony_ci
285cabdff1aSopenharmony_cistatic const int cplband[51] = {
286cabdff1aSopenharmony_ci    0,1,2,3,4,5,6,7,8,9,
287cabdff1aSopenharmony_ci    10,11,11,12,12,13,13,14,14,14,
288cabdff1aSopenharmony_ci    15,15,15,15,16,16,16,16,16,17,
289cabdff1aSopenharmony_ci    17,17,17,17,17,18,18,18,18,18,
290cabdff1aSopenharmony_ci    18,18,19,19,19,19,19,19,19,19,
291cabdff1aSopenharmony_ci    19,
292cabdff1aSopenharmony_ci};
293cabdff1aSopenharmony_ci
294cabdff1aSopenharmony_ci// The 1 and 0 at the beginning/end are to prevent overflows with
295cabdff1aSopenharmony_ci// bitstream-read indexes. E.g. if n_bits=5, we can access any
296cabdff1aSopenharmony_ci// index from [1, (1<<n_bits)] for the first decoupling coeff,
297cabdff1aSopenharmony_ci// and (1<<n_bits)-coeff1 as index for coeff2, i.e.:
298cabdff1aSopenharmony_ci// coeff1_idx = [1, 32], and coeff2_idx = [0, 31].
299cabdff1aSopenharmony_ci// These values aren't part of the tables in the original binary.
300cabdff1aSopenharmony_ci
301cabdff1aSopenharmony_cistatic const float cplscale2[5] = {
302cabdff1aSopenharmony_ci1,
303cabdff1aSopenharmony_ci0.953020632266998,0.70710676908493,0.302905440330505,
304cabdff1aSopenharmony_ci0,
305cabdff1aSopenharmony_ci};
306cabdff1aSopenharmony_ci
307cabdff1aSopenharmony_cistatic const float cplscale3[9] = {
308cabdff1aSopenharmony_ci1,
309cabdff1aSopenharmony_ci0.981279790401459,0.936997592449188,0.875934481620789,0.70710676908493,
310cabdff1aSopenharmony_ci0.482430040836334,0.349335819482803,0.192587479948997,
311cabdff1aSopenharmony_ci0,
312cabdff1aSopenharmony_ci};
313cabdff1aSopenharmony_ci
314cabdff1aSopenharmony_cistatic const float cplscale4[17] = {
315cabdff1aSopenharmony_ci1,
316cabdff1aSopenharmony_ci0.991486728191376,0.973249018192291,0.953020632266998,0.930133521556854,
317cabdff1aSopenharmony_ci0.903453230857849,0.870746195316315,0.826180458068848,0.70710676908493,
318cabdff1aSopenharmony_ci0.563405573368073,0.491732746362686,0.428686618804932,0.367221474647522,
319cabdff1aSopenharmony_ci0.302905440330505,0.229752898216248,0.130207896232605,
320cabdff1aSopenharmony_ci0,
321cabdff1aSopenharmony_ci};
322cabdff1aSopenharmony_ci
323cabdff1aSopenharmony_cistatic const float cplscale5[33] = {
324cabdff1aSopenharmony_ci1,
325cabdff1aSopenharmony_ci0.995926380157471,0.987517595291138,0.978726446628571,0.969505727291107,
326cabdff1aSopenharmony_ci0.95979779958725,0.949531257152557,0.938616216182709,0.926936149597168,
327cabdff1aSopenharmony_ci0.914336204528809,0.900602877140045,0.885426938533783,0.868331849575043,
328cabdff1aSopenharmony_ci0.84851086139679,0.824381768703461,0.791833400726318,0.70710676908493,
329cabdff1aSopenharmony_ci0.610737144947052,0.566034197807312,0.529177963733673,0.495983630418777,
330cabdff1aSopenharmony_ci0.464778542518616,0.434642940759659,0.404955863952637,0.375219136476517,
331cabdff1aSopenharmony_ci0.344963222742081,0.313672333955765,0.280692428350449,0.245068684220314,
332cabdff1aSopenharmony_ci0.205169528722763,0.157508864998817,0.0901700109243393,
333cabdff1aSopenharmony_ci0,
334cabdff1aSopenharmony_ci};
335cabdff1aSopenharmony_ci
336cabdff1aSopenharmony_cistatic const float cplscale6[65] = {
337cabdff1aSopenharmony_ci1,
338cabdff1aSopenharmony_ci0.998005926609039,0.993956744670868,0.989822506904602,0.985598564147949,
339cabdff1aSopenharmony_ci0.981279790401459,0.976860702037811,0.972335040569305,0.967696130275726,
340cabdff1aSopenharmony_ci0.962936460971832,0.958047747612000,0.953020632266998,0.947844684123993,
341cabdff1aSopenharmony_ci0.942508161067963,0.936997592449188,0.931297719478607,0.925390899181366,
342cabdff1aSopenharmony_ci0.919256627559662,0.912870943546295,0.906205296516418,0.899225592613220,
343cabdff1aSopenharmony_ci0.891890347003937,0.884148240089417,0.875934481620789,0.867165684700012,
344cabdff1aSopenharmony_ci0.857730865478516,0.847477376461029,0.836184680461884,0.823513329029083,
345cabdff1aSopenharmony_ci0.808890223503113,0.791194140911102,0.767520070075989,0.707106769084930,
346cabdff1aSopenharmony_ci0.641024887561798,0.611565053462982,0.587959706783295,0.567296981811523,
347cabdff1aSopenharmony_ci0.548448026180267,0.530831515789032,0.514098942279816,0.498019754886627,
348cabdff1aSopenharmony_ci0.482430040836334,0.467206478118896,0.452251672744751,0.437485188245773,
349cabdff1aSopenharmony_ci0.422837972640991,0.408248275518417,0.393658757209778,0.379014074802399,
350cabdff1aSopenharmony_ci0.364258885383606,0.349335819482803,0.334183186292648,0.318732559680939,
351cabdff1aSopenharmony_ci0.302905440330505,0.286608695983887,0.269728302955627,0.252119421958923,
352cabdff1aSopenharmony_ci0.233590632677078,0.213876649737358,0.192587479948997,0.169101938605309,
353cabdff1aSopenharmony_ci0.142307326197624,0.109772264957428,0.0631198287010193,
354cabdff1aSopenharmony_ci0,
355cabdff1aSopenharmony_ci};
356cabdff1aSopenharmony_ci
357cabdff1aSopenharmony_cistatic const float* const cplscales[5] = {
358cabdff1aSopenharmony_ci    cplscale2, cplscale3, cplscale4, cplscale5, cplscale6,
359cabdff1aSopenharmony_ci};
360cabdff1aSopenharmony_ci
361cabdff1aSopenharmony_ci#endif /* AVCODEC_COOKDATA_H */
362