diff options
author | Sushanth Patil <sushanth.patil@ittiam.com> | 2019-08-09 13:38:16 +0530 |
---|---|---|
committer | Saketh Sathuvalli <100603@ittiam.com> | 2022-07-23 21:15:48 +0530 |
commit | 1b703a5eeafe755c59aaa8db2e76845571af1a56 (patch) | |
tree | da3bb175c09a1f7b829bf2e66158c4593eb68c91 /decoder/ixheaacd_sbr_dec.c | |
parent | e73da2db7176583373d516f53796702ffd3dacef (diff) | |
download | libxaac-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.c | 10 |
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, |