aboutsummaryrefslogtreecommitdiff
path: root/decoder/ixheaacd_freq_sca.c
diff options
context:
space:
mode:
authorRamesh Katuri <ramesh.katuri@ittiam.com>2018-06-01 13:27:00 +0530
committerRay Essick <essick@google.com>2018-06-07 16:52:19 -0700
commitb3226ce6f80c78946aa3190cec158fb9852272ea (patch)
treef4e0df5cb15e791d60b23b54a710f3d4d608193a /decoder/ixheaacd_freq_sca.c
parent8eb646f89b94cf6d0aa26e5bca39ba083a554965 (diff)
downloadlibxaac-b3226ce6f80c78946aa3190cec158fb9852272ea.tar.gz
Formatting changespie-dr1-devpie-dev
Formatting .c and .h files using clang-format Formatting .s files Bug: 80493357 Test: compare object sizes Change-Id: I38296083c9d2d566a6a2564db2e391e4b2bd43a9
Diffstat (limited to 'decoder/ixheaacd_freq_sca.c')
-rw-r--r--decoder/ixheaacd_freq_sca.c352
1 files changed, 153 insertions, 199 deletions
diff --git a/decoder/ixheaacd_freq_sca.c b/decoder/ixheaacd_freq_sca.c
index a29dd8f..1694307 100644
--- a/decoder/ixheaacd_freq_sca.c
+++ b/decoder/ixheaacd_freq_sca.c
@@ -75,7 +75,6 @@ static WORD32 ixheaacd_int_div(WORD32 num, WORD32 den) {
}
}
-
VOID ixheaacd_aac_shellsort(WORD16 *in, WORD32 n) {
WORD32 i, j;
WORD32 inc;
@@ -105,218 +104,179 @@ VOID ixheaacd_aac_shellsort(WORD16 *in, WORD32 n) {
} while (inc > 1);
}
-
-
-
WORD32
-ixheaacd_calc_start_band(WORD32 fs, const WORD32 start_freq, FLOAT32 upsamp_fac)
-{
- WORD32 k0_min;
- WORD32 fs_mapped = 0;
+ixheaacd_calc_start_band(WORD32 fs, const WORD32 start_freq,
+ FLOAT32 upsamp_fac) {
+ WORD32 k0_min;
+ WORD32 fs_mapped = 0;
- if (upsamp_fac == 4) {
- fs = fs / 2;
- }
+ if (upsamp_fac == 4) {
+ fs = fs / 2;
+ }
- if (fs >= 0 && fs < 18783) {
- fs_mapped = 16000;
- }
- else if (fs >= 18783 && fs < 23004) {
- fs_mapped = 22050;
- }
- else if (fs >= 23004 && fs < 27713) {
- fs_mapped = 24000;
- }
- else if (fs >= 27713 && fs < 35777) {
- fs_mapped = 32000;
- }
- else if (fs >= 35777 && fs < 42000) {
- fs_mapped = 40000;
- }
- else if (fs >= 42000 && fs < 46009) {
- fs_mapped = 44100;
- }
- else if (fs >= 46009 && fs < 55426) {
- fs_mapped = 48000;
- }
- else if (fs >= 55426 && fs < 75132) {
- fs_mapped = 64000;
- }
- else if (fs >= 75132 && fs < 92017) {
- fs_mapped = 88200;
- }
- else if (fs >= 92017) {
- fs_mapped = 96000;
- }
- else {
- return -1;
- }
+ if (fs >= 0 && fs < 18783) {
+ fs_mapped = 16000;
+ } else if (fs >= 18783 && fs < 23004) {
+ fs_mapped = 22050;
+ } else if (fs >= 23004 && fs < 27713) {
+ fs_mapped = 24000;
+ } else if (fs >= 27713 && fs < 35777) {
+ fs_mapped = 32000;
+ } else if (fs >= 35777 && fs < 42000) {
+ fs_mapped = 40000;
+ } else if (fs >= 42000 && fs < 46009) {
+ fs_mapped = 44100;
+ } else if (fs >= 46009 && fs < 55426) {
+ fs_mapped = 48000;
+ } else if (fs >= 55426 && fs < 75132) {
+ fs_mapped = 64000;
+ } else if (fs >= 75132 && fs < 92017) {
+ fs_mapped = 88200;
+ } else if (fs >= 92017) {
+ fs_mapped = 96000;
+ } else {
+ return -1;
+ }
- if (upsamp_fac == 4) {
- if (fs_mapped < 32000) {
- k0_min = (WORD32)(((FLOAT32)(3000 * 2 * 32) / fs_mapped) + 0.5);
- }
- else {
- if (fs_mapped < 64000) {
- k0_min = (WORD32)(((FLOAT32)(4000 * 2 * 32) / fs_mapped) + 0.5);
- }
- else {
- k0_min = (WORD32)(((FLOAT32)(5000 * 2 * 32) / fs_mapped) + 0.5);
- }
- }
+ if (upsamp_fac == 4) {
+ if (fs_mapped < 32000) {
+ k0_min = (WORD32)(((FLOAT32)(3000 * 2 * 32) / fs_mapped) + 0.5);
+ } else {
+ if (fs_mapped < 64000) {
+ k0_min = (WORD32)(((FLOAT32)(4000 * 2 * 32) / fs_mapped) + 0.5);
+ } else {
+ k0_min = (WORD32)(((FLOAT32)(5000 * 2 * 32) / fs_mapped) + 0.5);
+ }
}
- else {
- if (fs_mapped < 32000) {
- k0_min = (WORD32)(((FLOAT32)(3000 * 2 * 64) / fs_mapped) + 0.5);
- }
- else {
- if (fs_mapped < 64000) {
- k0_min = (WORD32)(((FLOAT32)(4000 * 2 * 64) / fs_mapped) + 0.5);
- }
- else {
- k0_min = (WORD32)(((FLOAT32)(5000 * 2 * 64) / fs_mapped) + 0.5);
- }
- }
+ } else {
+ if (fs_mapped < 32000) {
+ k0_min = (WORD32)(((FLOAT32)(3000 * 2 * 64) / fs_mapped) + 0.5);
+ } else {
+ if (fs_mapped < 64000) {
+ k0_min = (WORD32)(((FLOAT32)(4000 * 2 * 64) / fs_mapped) + 0.5);
+ } else {
+ k0_min = (WORD32)(((FLOAT32)(5000 * 2 * 64) / fs_mapped) + 0.5);
+ }
}
+ }
- switch (fs_mapped) {
- case 16000:
- {
- WORD32 v_offset[] = { -8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7 };
- return (k0_min + v_offset[start_freq]);
- }
- break;
- case 22050:
- {
- WORD32 v_offset[] = { -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 13 };
- return (k0_min + v_offset[start_freq]);
- }
- break;
- case 24000:
- {
- WORD32 v_offset[] = { -5, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 13, 16 };
- return (k0_min + v_offset[start_freq]);
- }
- break;
- case 32000:
- {
- WORD32 v_offset[] = { -6, -4, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 13, 16 };
- return (k0_min + v_offset[start_freq]);
- }
- break;
- case 40000:
- {
- WORD32 v_offset[] = { -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 13, 15, 17, 19 };
- return (k0_min + v_offset[start_freq]);
- }
- break;
+ switch (fs_mapped) {
+ case 16000: {
+ WORD32 v_offset[] = {-8, -7, -6, -5, -4, -3, -2, -1,
+ 0, 1, 2, 3, 4, 5, 6, 7};
+ return (k0_min + v_offset[start_freq]);
+ } break;
+ case 22050: {
+ WORD32 v_offset[] = {-5, -4, -3, -2, -1, 0, 1, 2,
+ 3, 4, 5, 6, 7, 9, 11, 13};
+ return (k0_min + v_offset[start_freq]);
+ } break;
+ case 24000: {
+ WORD32 v_offset[] = {-5, -3, -2, -1, 0, 1, 2, 3,
+ 4, 5, 6, 7, 9, 11, 13, 16};
+ return (k0_min + v_offset[start_freq]);
+ } break;
+ case 32000: {
+ WORD32 v_offset[] = {-6, -4, -2, -1, 0, 1, 2, 3,
+ 4, 5, 6, 7, 9, 11, 13, 16};
+ return (k0_min + v_offset[start_freq]);
+ } break;
+ case 40000: {
+ WORD32 v_offset[] = {-1, 0, 1, 2, 3, 4, 5, 6,
+ 7, 8, 9, 11, 13, 15, 17, 19};
+ return (k0_min + v_offset[start_freq]);
+ } break;
case 44100:
case 48000:
- case 64000:
- {
- WORD32 v_offset[] = { -4, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 13, 16, 20 };
- return (k0_min + v_offset[start_freq]);
- }
- break;
+ case 64000: {
+ WORD32 v_offset[] = {-4, -2, -1, 0, 1, 2, 3, 4,
+ 5, 6, 7, 9, 11, 13, 16, 20};
+ return (k0_min + v_offset[start_freq]);
+ } break;
case 88200:
- case 96000:
- {
- WORD32 v_offset[] = { -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 13, 16, 20, 24 };
- return (k0_min + v_offset[start_freq]);
- }
- break;
+ case 96000: {
+ WORD32 v_offset[] = {-2, -1, 0, 1, 2, 3, 4, 5,
+ 6, 7, 9, 11, 13, 16, 20, 24};
+ return (k0_min + v_offset[start_freq]);
+ } break;
- default:
- {
- WORD32 v_offset[] = { 0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 13, 16, 20, 24, 28, 33 };
- return (k0_min + v_offset[start_freq]);
- }
+ default: {
+ WORD32 v_offset[] = {0, 1, 2, 3, 4, 5, 6, 7,
+ 9, 11, 13, 16, 20, 24, 28, 33};
+ return (k0_min + v_offset[start_freq]);
}
+ }
}
WORD32
-ixheaacd_calc_stop_band(WORD32 fs, const WORD32 stop_freq, FLOAT32 upsamp_fac)
-{
- WORD32 result, i;
- WORD16 arr_stop_freq[14];
- WORD32 k1_min;
- WORD16 arr_diff_stop_freq[13];
-
- if (upsamp_fac == 4) {
- fs = fs / 2;
- if (fs < 32000) {
- k1_min = (WORD32)(((FLOAT32)(6000 * 2 * 32) / fs) + 0.5);
- }
- else {
- if (fs < 64000) {
- k1_min = (WORD32)(((FLOAT32)(8000 * 2 * 32) / fs) + 0.5);
- }
- else {
- k1_min = (WORD32)(((FLOAT32)(10000 * 2 * 32) / fs) + 0.5);
- }
- }
- }
- else {
- if (fs < 32000) {
- k1_min = (WORD32)(((FLOAT32)(6000 * 2 * 64) / fs) + 0.5);
- }
- else {
- if (fs < 64000) {
- k1_min = (WORD32)(((FLOAT32)(8000 * 2 * 64) / fs) + 0.5);
- }
- else {
- k1_min = (WORD32)(((FLOAT32)(10000 * 2 * 64) / fs) + 0.5);
- }
- }
- }
+ixheaacd_calc_stop_band(WORD32 fs, const WORD32 stop_freq, FLOAT32 upsamp_fac) {
+ WORD32 result, i;
+ WORD16 arr_stop_freq[14];
+ WORD32 k1_min;
+ WORD16 arr_diff_stop_freq[13];
- /*Calculate stop frequency vector*/
- for (i = 0; i <= 13; i++) {
- arr_stop_freq[i] = (WORD32)(k1_min * pow(64.0 / k1_min, i / 13.0) + 0.5);
+ if (upsamp_fac == 4) {
+ fs = fs / 2;
+ if (fs < 32000) {
+ k1_min = (WORD32)(((FLOAT32)(6000 * 2 * 32) / fs) + 0.5);
+ } else {
+ if (fs < 64000) {
+ k1_min = (WORD32)(((FLOAT32)(8000 * 2 * 32) / fs) + 0.5);
+ } else {
+ k1_min = (WORD32)(((FLOAT32)(10000 * 2 * 32) / fs) + 0.5);
+ }
}
+ } else {
+ if (fs < 32000) {
+ k1_min = (WORD32)(((FLOAT32)(6000 * 2 * 64) / fs) + 0.5);
+ } else {
+ if (fs < 64000) {
+ k1_min = (WORD32)(((FLOAT32)(8000 * 2 * 64) / fs) + 0.5);
+ } else {
+ k1_min = (WORD32)(((FLOAT32)(10000 * 2 * 64) / fs) + 0.5);
+ }
+ }
+ }
+ /*Calculate stop frequency vector*/
+ for (i = 0; i <= 13; i++) {
+ arr_stop_freq[i] = (WORD32)(k1_min * pow(64.0 / k1_min, i / 13.0) + 0.5);
+ }
- /*Ensure increasing bandwidth */
- for (i = 0; i <= 12; i++) {
- arr_diff_stop_freq[i] = arr_stop_freq[i + 1] - arr_stop_freq[i];
- }
+ /*Ensure increasing bandwidth */
+ for (i = 0; i <= 12; i++) {
+ arr_diff_stop_freq[i] = arr_stop_freq[i + 1] - arr_stop_freq[i];
+ }
- ixheaacd_aac_shellsort(&arr_diff_stop_freq[0], 13); /*Sort bandwidth changes */
+ ixheaacd_aac_shellsort(&arr_diff_stop_freq[0],
+ 13); /*Sort bandwidth changes */
- result = k1_min;
- for (i = 0; i<stop_freq; i++) {
- result = result + arr_diff_stop_freq[i];
- }
+ result = k1_min;
+ for (i = 0; i < stop_freq; i++) {
+ result = result + arr_diff_stop_freq[i];
+ }
- return(result);
+ return (result);
}
-void
-ixheaacd_calc_k0_k2_bands(const WORD32 samp_freq,
- const WORD32 start_freq,
- const WORD32 stop_freq,
- FLOAT32 upsamp_fac,
- WORD16 *ptr_k0,
- WORD16 *ptr_k2)
-{
- /* Update start_freq struct */
- *ptr_k0 = ixheaacd_calc_start_band(samp_freq, start_freq, upsamp_fac);
-
-
- /*Update stop_freq struct */
- if (stop_freq < 14) {
- *ptr_k2 = ixheaacd_calc_stop_band(samp_freq, stop_freq, upsamp_fac);
- }
- else if (stop_freq == 14) {
- *ptr_k2 = 2 * (*ptr_k0);
- }
- else {
- *ptr_k2 = 3 * (*ptr_k0);
- }
+void ixheaacd_calc_k0_k2_bands(const WORD32 samp_freq, const WORD32 start_freq,
+ const WORD32 stop_freq, FLOAT32 upsamp_fac,
+ WORD16 *ptr_k0, WORD16 *ptr_k2) {
+ /* Update start_freq struct */
+ *ptr_k0 = ixheaacd_calc_start_band(samp_freq, start_freq, upsamp_fac);
+
+ /*Update stop_freq struct */
+ if (stop_freq < 14) {
+ *ptr_k2 = ixheaacd_calc_stop_band(samp_freq, stop_freq, upsamp_fac);
+ } else if (stop_freq == 14) {
+ *ptr_k2 = 2 * (*ptr_k0);
+ } else {
+ *ptr_k2 = 3 * (*ptr_k0);
+ }
- /* limit to Nyqvist */
- if (*ptr_k2 > 64) {
- *ptr_k2 = 64;
- }
+ /* limit to Nyqvist */
+ if (*ptr_k2 > 64) {
+ *ptr_k2 = 64;
+ }
}
WORD16 ixheaacd_calc_master_frq_bnd_tbl(
@@ -338,18 +298,12 @@ WORD16 ixheaacd_calc_master_frq_bnd_tbl(
WORD16 *f_master_tbl = pstr_freq_band_data->f_master_tbl;
WORD16 num_mf_bands;
-
k1 = 0;
incr = 0;
dk = 0;
-
- ixheaacd_calc_k0_k2_bands(fs,
- ptr_header_data->start_freq,
- ptr_header_data->stop_freq,
- upsamp_fac,
- &k0, &k2);
-
+ ixheaacd_calc_k0_k2_bands(fs, ptr_header_data->start_freq,
+ ptr_header_data->stop_freq, upsamp_fac, &k0, &k2);
if (k2 > NO_SYNTHESIS_CHANNELS) {
k2 = NO_SYNTHESIS_CHANNELS;
@@ -701,14 +655,14 @@ WORD32 ixheaacd_derive_noise_freq_bnd_tbl(
}
WORD32 ixheaacd_calc_frq_bnd_tbls(ia_sbr_header_data_struct *ptr_header_data,
- ixheaacd_misc_tables *pstr_common_tables) {
+ ixheaacd_misc_tables *pstr_common_tables) {
WORD32 err;
WORD16 num_lf_bands, num_hf_bands, lsb, usb;
ia_freq_band_data_struct *pstr_freq_band_data =
ptr_header_data->pstr_freq_band_data;
err = ixheaacd_calc_master_frq_bnd_tbl(pstr_freq_band_data, ptr_header_data,
- pstr_common_tables);
+ pstr_common_tables);
if (err ||
(ptr_header_data->xover_band > pstr_freq_band_data->num_mf_bands)) {