aboutsummaryrefslogtreecommitdiff
path: root/decoder/ixheaacd_sbr_dec.c
diff options
context:
space:
mode:
authorSushanth Patil <sushanth.patil@ittiam.com>2019-08-09 13:38:16 +0530
committerSaketh Sathuvalli <100603@ittiam.com>2022-07-23 21:15:48 +0530
commit1b703a5eeafe755c59aaa8db2e76845571af1a56 (patch)
treeda3bb175c09a1f7b829bf2e66158c4593eb68c91 /decoder/ixheaacd_sbr_dec.c
parente73da2db7176583373d516f53796702ffd3dacef (diff)
downloadlibxaac-1b703a5eeafe755c59aaa8db2e76845571af1a56.tar.gz
Optimisation changes in mps apply function
Added changes to remove redundant computation loops in ixheaacd_mps_synt_calc,mps hybrid analysis & synthesis functions based on number of non-zero qmf bands.
Diffstat (limited to 'decoder/ixheaacd_sbr_dec.c')
-rw-r--r--decoder/ixheaacd_sbr_dec.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/decoder/ixheaacd_sbr_dec.c b/decoder/ixheaacd_sbr_dec.c
index 671f4d6..d0bac14 100644
--- a/decoder/ixheaacd_sbr_dec.c
+++ b/decoder/ixheaacd_sbr_dec.c
@@ -735,7 +735,6 @@ WORD32 ixheaacd_sbr_dec(ia_sbr_dec_struct *ptr_sbr_dec, WORD16 *ptr_time_data,
ptr_sbr_dec->p_hbe_txposer->max_stretch);
}
}
- ixheaacd_qmf_enrg_calc(ptr_sbr_dec, upsample_ratio_idx, low_pow_flag);
if (!mps_sbr_flag && apply_processing) {
WORD32 err_code = 0;
@@ -752,6 +751,7 @@ WORD32 ixheaacd_sbr_dec(ia_sbr_dec_struct *ptr_sbr_dec, WORD16 *ptr_time_data,
ptr_pvc_data->pvc_rate = ptr_header_data->upsamp_fac;
if (sbr_mode == PVC_SBR) {
+ ixheaacd_qmf_enrg_calc(ptr_sbr_dec, upsample_ratio_idx, low_pow_flag);
err_code = ixheaacd_pvc_process(
ptr_pvc_data, ptr_header_data->pstr_freq_band_data->sub_band_start,
ptr_frame_data->str_pvc_frame_info.border_vec[0],
@@ -788,6 +788,12 @@ WORD32 ixheaacd_sbr_dec(ia_sbr_dec_struct *ptr_sbr_dec, WORD16 *ptr_time_data,
}
}
+ if (!mps_sbr_flag) {
+ ptr_sbr_dec->band_count =
+ ptr_header_data->pstr_freq_band_data->sub_band_end;
+ } else
+ ptr_sbr_dec->band_count = ptr_sbr_dec->str_codec_qmf_bank.no_channels;
+
ixheaacd_esbr_synthesis_filt_block(
ptr_sbr_dec, ptr_header_data, ptr_frame_data, apply_processing,
pp_qmf_buf_real, pp_qmf_buf_imag, stereo_config_idx, sbr_tables_ptr,
@@ -1135,6 +1141,8 @@ WORD32 ixheaacd_esbr_dec(ia_sbr_dec_struct *ptr_sbr_dec,
memset(ptr_sbr_dec->sbr_qmf_out_imag[i], 0, 64 * sizeof(FLOAT32));
}
+ ptr_sbr_dec->band_count = ptr_sbr_dec->str_codec_qmf_bank.no_channels;
+
ixheaacd_esbr_synthesis_filt_block(
ptr_sbr_dec, ptr_header_data, ptr_frame_data, apply_processing,
pp_qmf_buf_real, pp_qmf_buf_imag, stereo_config_idx, ptr_sbr_tables,