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;
138 if (band_start == 0) {
140 lowcomp =
calc_lowcomp1(lowcomp, band_psd[0], band_psd[1], 384);
141 excite[0] = band_psd[0] - fast_gain - lowcomp;
142 lowcomp =
calc_lowcomp1(lowcomp, band_psd[1], band_psd[2], 384);
143 excite[1] = band_psd[1] - fast_gain - lowcomp;
145 for (band = 2; band < 7; band++) {
146 if (!(is_lfe && band == 6))
147 lowcomp =
calc_lowcomp1(lowcomp, band_psd[band], band_psd[band+1], 384);
148 fastleak = band_psd[
band] - fast_gain;
150 excite[
band] = fastleak - lowcomp;
151 if (!(is_lfe && band == 6)) {
152 if (band_psd[band] <= band_psd[band+1]) {
159 end1 =
FFMIN(band_end, 22);
160 for (band = begin; band < end1; band++) {
161 if (!(is_lfe && band == 6))
162 lowcomp =
calc_lowcomp(lowcomp, band_psd[band], band_psd[band+1], band);
163 fastleak =
FFMAX(fastleak - s->
fast_decay, band_psd[band] - fast_gain);
165 excite[
band] =
FFMAX(fastleak - lowcomp, slowleak);
175 for (band = begin; band < band_end; band++) {
176 fastleak =
FFMAX(fastleak - s->
fast_decay, band_psd[band] - fast_gain);
178 excite[
band] =
FFMAX(fastleak, slowleak);
183 for (band = band_start; band < band_end; band++) {
186 excite[
band] += tmp >> 2;
198 for (seg = 0; seg < dba_nsegs; seg++) {
199 band += dba_offsets[seg];
202 if (dba_values[seg] >= 4) {
203 delta = (dba_values[seg] - 3) << 7;
205 delta = (dba_values[seg] - 4) << 7;
207 for (i = 0; i < dba_lengths[seg]; i++) {
208 mask[band++] +=
delta;
222 #if !CONFIG_HARDCODED_TABLES
227 while (bin < band_end)