35 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
36 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
37 20, 21, 22, 23, 24, 25, 26, 27, 28, 31,
38 34, 37, 40, 43, 46, 49, 55, 61, 67, 73,
39 79, 85, 97, 109, 121, 133, 157, 181, 205, 229, 253
42 #if CONFIG_HARDCODED_TABLES
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
78 if ((b0 + 256) == b1) {
90 }
else if (bin < 20) {
93 return FFMAX(a - 128, 0);
103 for (bin = start; bin <
end; bin++) {
104 psd[bin]=(3072 - (exp[bin] << 7));
113 for (; bin < band_end; bin++) {
114 int max =
FFMAX(v, psd[bin]);
116 int adr =
FFMIN(max - ((v + psd[bin] + 1) >> 1), 255);
119 band_psd[band++] =
v;
124 int start,
int end,
int fast_gain,
int is_lfe,
125 int dba_mode,
int dba_nsegs,
uint8_t *dba_offsets,
131 int band_start, band_end, begin, end1;
132 int lowcomp, fastleak, slowleak;
141 if (band_start == 0) {
143 lowcomp =
calc_lowcomp1(lowcomp, band_psd[0], band_psd[1], 384);
144 excite[0] = band_psd[0] - fast_gain - lowcomp;
145 lowcomp =
calc_lowcomp1(lowcomp, band_psd[1], band_psd[2], 384);
146 excite[1] = band_psd[1] - fast_gain - lowcomp;
148 for (band = 2; band < 7; band++) {
149 if (!(is_lfe && band == 6))
150 lowcomp =
calc_lowcomp1(lowcomp, band_psd[band], band_psd[band+1], 384);
151 fastleak = band_psd[
band] - fast_gain;
153 excite[
band] = fastleak - lowcomp;
154 if (!(is_lfe && band == 6)) {
155 if (band_psd[band] <= band_psd[band+1]) {
162 end1 =
FFMIN(band_end, 22);
163 for (band = begin; band < end1; band++) {
164 if (!(is_lfe && band == 6))
165 lowcomp =
calc_lowcomp(lowcomp, band_psd[band], band_psd[band+1], band);
166 fastleak =
FFMAX(fastleak - s->
fast_decay, band_psd[band] - fast_gain);
168 excite[
band] =
FFMAX(fastleak - lowcomp, slowleak);
178 for (band = begin; band < band_end; band++) {
179 fastleak =
FFMAX(fastleak - s->
fast_decay, band_psd[band] - fast_gain);
181 excite[
band] =
FFMAX(fastleak, slowleak);
186 for (band = band_start; band < band_end; band++) {
189 excite[
band] += tmp >> 2;
201 for (seg = 0; seg < dba_nsegs; seg++) {
202 band += dba_offsets[seg];
205 if (dba_values[seg] >= 4) {
206 delta = (dba_values[seg] - 3) << 7;
208 delta = (dba_values[seg] - 4) << 7;
210 for (i = 0; i < dba_lengths[seg]; i++) {
211 mask[band++] +=
delta;
225 #if !CONFIG_HARDCODED_TABLES
230 while (bin < band_end)