|
|
|
@@ -722,67 +722,68 @@ static void fill_coding_method_array(sb_int8_array tone_level_idx, |
|
|
|
} |
|
|
|
tone_level_idx_temp[ch][sb][0] = tone_level_idx_temp[ch][sb][1]; |
|
|
|
} |
|
|
|
acc = 0; |
|
|
|
for (ch = 0; ch < nb_channels; ch++) |
|
|
|
for (sb = 0; sb < 30; sb++) |
|
|
|
for (j = 0; j < 64; j++) |
|
|
|
acc += tone_level_idx_temp[ch][sb][j]; |
|
|
|
|
|
|
|
multres = 0x66666667LL * (acc * 10); |
|
|
|
esp_40 = (multres >> 32) / 8 + ((multres & 0xffffffff) >> 31); |
|
|
|
for (ch = 0; ch < nb_channels; ch++) |
|
|
|
for (sb = 0; sb < 30; sb++) |
|
|
|
for (j = 0; j < 64; j++) { |
|
|
|
comp = tone_level_idx_temp[ch][sb][j]* esp_40 * 10; |
|
|
|
if (comp < 0) |
|
|
|
comp += 0xff; |
|
|
|
comp /= 256; // signed shift |
|
|
|
switch(sb) { |
|
|
|
case 0: |
|
|
|
if (comp < 30) |
|
|
|
comp = 30; |
|
|
|
comp += 15; |
|
|
|
break; |
|
|
|
case 1: |
|
|
|
if (comp < 24) |
|
|
|
comp = 24; |
|
|
|
comp += 10; |
|
|
|
break; |
|
|
|
case 2: |
|
|
|
case 3: |
|
|
|
case 4: |
|
|
|
if (comp < 16) |
|
|
|
comp = 16; |
|
|
|
} |
|
|
|
if (comp <= 5) |
|
|
|
tmp = 0; |
|
|
|
else if (comp <= 10) |
|
|
|
tmp = 10; |
|
|
|
else if (comp <= 16) |
|
|
|
tmp = 16; |
|
|
|
else if (comp <= 24) |
|
|
|
tmp = -1; |
|
|
|
else |
|
|
|
tmp = 0; |
|
|
|
coding_method[ch][sb][j] = ((tmp & 0xfffa) + 30 )& 0xff; |
|
|
|
|
|
|
|
acc = 0; |
|
|
|
for (ch = 0; ch < nb_channels; ch++) |
|
|
|
for (sb = 0; sb < 30; sb++) |
|
|
|
for (j = 0; j < 64; j++) |
|
|
|
acc += tone_level_idx_temp[ch][sb][j]; |
|
|
|
|
|
|
|
multres = 0x66666667LL * (acc * 10); |
|
|
|
esp_40 = (multres >> 32) / 8 + ((multres & 0xffffffff) >> 31); |
|
|
|
for (ch = 0; ch < nb_channels; ch++) |
|
|
|
for (sb = 0; sb < 30; sb++) |
|
|
|
for (j = 0; j < 64; j++) { |
|
|
|
comp = tone_level_idx_temp[ch][sb][j]* esp_40 * 10; |
|
|
|
if (comp < 0) |
|
|
|
comp += 0xff; |
|
|
|
comp /= 256; // signed shift |
|
|
|
switch(sb) { |
|
|
|
case 0: |
|
|
|
if (comp < 30) |
|
|
|
comp = 30; |
|
|
|
comp += 15; |
|
|
|
break; |
|
|
|
case 1: |
|
|
|
if (comp < 24) |
|
|
|
comp = 24; |
|
|
|
comp += 10; |
|
|
|
break; |
|
|
|
case 2: |
|
|
|
case 3: |
|
|
|
case 4: |
|
|
|
if (comp < 16) |
|
|
|
comp = 16; |
|
|
|
} |
|
|
|
if (comp <= 5) |
|
|
|
tmp = 0; |
|
|
|
else if (comp <= 10) |
|
|
|
tmp = 10; |
|
|
|
else if (comp <= 16) |
|
|
|
tmp = 16; |
|
|
|
else if (comp <= 24) |
|
|
|
tmp = -1; |
|
|
|
else |
|
|
|
tmp = 0; |
|
|
|
coding_method[ch][sb][j] = ((tmp & 0xfffa) + 30 )& 0xff; |
|
|
|
} |
|
|
|
for (sb = 0; sb < 30; sb++) |
|
|
|
fix_coding_method_array(sb, nb_channels, coding_method); |
|
|
|
for (ch = 0; ch < nb_channels; ch++) |
|
|
|
for (sb = 0; sb < 30; sb++) |
|
|
|
fix_coding_method_array(sb, nb_channels, coding_method); |
|
|
|
for (ch = 0; ch < nb_channels; ch++) |
|
|
|
for (sb = 0; sb < 30; sb++) |
|
|
|
for (j = 0; j < 64; j++) |
|
|
|
if (sb >= 10) { |
|
|
|
if (coding_method[ch][sb][j] < 10) |
|
|
|
coding_method[ch][sb][j] = 10; |
|
|
|
for (j = 0; j < 64; j++) |
|
|
|
if (sb >= 10) { |
|
|
|
if (coding_method[ch][sb][j] < 10) |
|
|
|
coding_method[ch][sb][j] = 10; |
|
|
|
} else { |
|
|
|
if (sb >= 2) { |
|
|
|
if (coding_method[ch][sb][j] < 16) |
|
|
|
coding_method[ch][sb][j] = 16; |
|
|
|
} else { |
|
|
|
if (sb >= 2) { |
|
|
|
if (coding_method[ch][sb][j] < 16) |
|
|
|
coding_method[ch][sb][j] = 16; |
|
|
|
} else { |
|
|
|
if (coding_method[ch][sb][j] < 30) |
|
|
|
coding_method[ch][sb][j] = 30; |
|
|
|
} |
|
|
|
if (coding_method[ch][sb][j] < 30) |
|
|
|
coding_method[ch][sb][j] = 30; |
|
|
|
} |
|
|
|
} |
|
|
|
} else { // superblocktype_2_3 != 0 |
|
|
|
for (ch = 0; ch < nb_channels; ch++) |
|
|
|
for (sb = 0; sb < 30; sb++) |
|
|
|
|