49 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
50 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
51 25, 26, 27, 28, 28, 28, 29, 29, 29, 30, 30, 30,
52 31, 31, 31, 32, 32, 32, 33, 33, 33, 34, 34, 34,
53 35, 35, 35, 35, 35, 35, 36, 36, 36, 36, 36, 36,
54 37, 37, 37, 37, 37, 37, 38, 38, 38, 38, 38, 38,
55 39, 39, 39, 39, 39, 39, 40, 40, 40, 40, 40, 40,
56 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
57 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
58 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
59 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
60 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
61 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
62 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
63 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
64 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
65 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
66 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
67 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
68 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
69 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49
730x40,0x3f,0x3e,0x3d,0x3c,0x3b,0x3a,0x39,0x38,0x37,
740x36,0x35,0x34,0x34,0x33,0x32,0x31,0x30,0x2f,0x2f,
750x2e,0x2d,0x2c,0x2c,0x2b,0x2a,0x29,0x29,0x28,0x27,
760x26,0x26,0x25,0x24,0x24,0x23,0x23,0x22,0x21,0x21,
770x20,0x20,0x1f,0x1e,0x1e,0x1d,0x1d,0x1c,0x1c,0x1b,
780x1b,0x1a,0x1a,0x19,0x19,0x18,0x18,0x17,0x17,0x16,
790x16,0x15,0x15,0x15,0x14,0x14,0x13,0x13,0x13,0x12,
800x12,0x12,0x11,0x11,0x11,0x10,0x10,0x10,0x0f,0x0f,
810x0f,0x0e,0x0e,0x0e,0x0d,0x0d,0x0d,0x0d,0x0c,0x0c,
820x0c,0x0c,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a,0x0a,
830x0a,0x09,0x09,0x09,0x09,0x09,0x08,0x08,0x08,0x08,
840x08,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x06,0x06,
850x06,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x05,0x05,
860x05,0x05,0x05,0x05,0x04,0x04,0x04,0x04,0x04,0x04,
870x04,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,
880x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x02,
890x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
900x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x01,0x01,
910x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
920x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
930x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
940x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
950x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
960x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
970x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
980x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
102{ 0x04d0,0x04f0,0x0580 },
103{ 0x04d0,0x04f0,0x0580 },
104{ 0x0440,0x0460,0x04b0 },
105{ 0x0400,0x0410,0x0450 },
106{ 0x03e0,0x03e0,0x0420 },
107{ 0x03c0,0x03d0,0x03f0 },
108{ 0x03b0,0x03c0,0x03e0 },
109{ 0x03b0,0x03b0,0x03d0 },
110{ 0x03a0,0x03b0,0x03c0 },
111{ 0x03a0,0x03a0,0x03b0 },
112{ 0x03a0,0x03a0,0x03b0 },
113{ 0x03a0,0x03a0,0x03b0 },
114{ 0x03a0,0x03a0,0x03a0 },
115{ 0x0390,0x03a0,0x03a0 },
116{ 0x0390,0x0390,0x03a0 },
117{ 0x0390,0x0390,0x03a0 },
118{ 0x0380,0x0390,0x03a0 },
119{ 0x0380,0x0380,0x03a0 },
120{ 0x0370,0x0380,0x03a0 },
121{ 0x0370,0x0380,0x03a0 },
122{ 0x0360,0x0370,0x0390 },
123{ 0x0360,0x0370,0x0390 },
124{ 0x0350,0x0360,0x0390 },
125{ 0x0350,0x0360,0x0390 },
126{ 0x0340,0x0350,0x0380 },
127{ 0x0340,0x0350,0x0380 },
128{ 0x0330,0x0340,0x0380 },
129{ 0x0320,0x0340,0x0370 },
130{ 0x0310,0x0320,0x0360 },
131{ 0x0300,0x0310,0x0350 },
132{ 0x02f0,0x0300,0x0340 },
133{ 0x02f0,0x02f0,0x0330 },
134{ 0x02f0,0x02f0,0x0320 },
135{ 0x02f0,0x02f0,0x0310 },
136{ 0x0300,0x02f0,0x0300 },
137{ 0x0310,0x0300,0x02f0 },
138{ 0x0340,0x0320,0x02f0 },
139{ 0x0390,0x0350,0x02f0 },
140{ 0x03e0,0x0390,0x0300 },
141{ 0x0420,0x03e0,0x0310 },
142{ 0x0460,0x0420,0x0330 },
143{ 0x0490,0x0450,0x0350 },
144{ 0x04a0,0x04a0,0x03c0 },
145{ 0x0460,0x0490,0x0410 },
146{ 0x0440,0x0460,0x0470 },
147{ 0x0440,0x0440,0x04a0 },
148{ 0x0520,0x0480,0x0460 },
149{ 0x0800,0x0630,0x0440 },
150{ 0x0840,0x0840,0x0450 },
151{ 0x0840,0x0840,0x04e0 },
202 int start,
int end,
int fast_gain,
int is_lfe,
203 int dba_mode,
int dba_nsegs, uint8_t *dba_offsets,
204 uint8_t *dba_lengths, uint8_t *dba_values,
209 int band_start, band_end, begin, end1;
210 int lowcomp, fastleak, slowleak;
219 if (band_start == 0) {
221 lowcomp =
calc_lowcomp1(lowcomp, band_psd[0], band_psd[1], 384);
222 excite[0] = band_psd[0] - fast_gain - lowcomp;
223 lowcomp =
calc_lowcomp1(lowcomp, band_psd[1], band_psd[2], 384);
224 excite[1] = band_psd[1] - fast_gain - lowcomp;
226 for (band = 2; band < 7; band++) {
227 if (!(is_lfe && band == 6))
228 lowcomp =
calc_lowcomp1(lowcomp, band_psd[band], band_psd[band+1], 384);
229 fastleak = band_psd[band] - fast_gain;
230 slowleak = band_psd[band] -
s->slow_gain;
231 excite[band] = fastleak - lowcomp;
232 if (!(is_lfe && band == 6)) {
233 if (band_psd[band] <= band_psd[band+1]) {
240 end1 =
FFMIN(band_end, 22);
241 for (band = begin; band < end1; band++) {
242 if (!(is_lfe && band == 6))
243 lowcomp =
calc_lowcomp(lowcomp, band_psd[band], band_psd[band+1], band);
244 fastleak =
FFMAX(fastleak -
s->fast_decay, band_psd[band] - fast_gain);
245 slowleak =
FFMAX(slowleak -
s->slow_decay, band_psd[band] -
s->slow_gain);
246 excite[band] =
FFMAX(fastleak - lowcomp, slowleak);
252 fastleak = (
s->cpl_fast_leak << 8) + 768;
253 slowleak = (
s->cpl_slow_leak << 8) + 768;
256 for (band = begin; band < band_end; band++) {
257 fastleak =
FFMAX(fastleak -
s->fast_decay, band_psd[band] - fast_gain);
258 slowleak =
FFMAX(slowleak -
s->slow_decay, band_psd[band] -
s->slow_gain);
259 excite[band] =
FFMAX(fastleak, slowleak);
264 for (band = band_start; band < band_end; band++) {
265 int tmp =
s->db_per_bit - band_psd[band];
267 excite[band] +=
tmp >> 2;
279 for (seg = 0; seg < dba_nsegs; seg++) {
280 band += dba_offsets[seg];
283 if (dba_values[seg] >= 4) {
284 delta = (dba_values[seg] - 3) * 128;
286 delta = (dba_values[seg] - 4) * 128;
288 for (
i = 0;
i < dba_lengths[seg];
i++) {