Loading lib_com/cldfb.c +1 −1 Original line number Diff line number Diff line Loading @@ -1504,7 +1504,7 @@ void resampleCldfb_ivas( /*low complexity-resampling only stored previous samples that are needed for next frame modulation */ lerp_flt( hs->cldfb_state, hs->cldfb_state, timeOffset, timeOffsetold ); #ifdef IVAS_FLOAT_FIXED L_lerp_fx( hs->cldfb_state_fx, hs->cldfb_state_fx, timeOffset, timeOffsetold ); L_lerp_fx_q11( hs->cldfb_state_fx, hs->cldfb_state_fx, timeOffset, timeOffsetold ); #endif return; Loading lib_com/ivas_prot_fx.h +1 −1 Original line number Diff line number Diff line Loading @@ -612,7 +612,7 @@ void updateBuffersForDmxMdctStereo_fx( void stereo_cng_compute_PScorr_fx( Word32 output_fx0[], /* i : Output signal */ Word32 output_fx1[], /* i : Output signal */ Word16 output_Q, Word16 *output_Q, Word32 *c_PS_LT_fx, /* i/o: Correlation */ Word16 Q_c_PS_LT_fx, const Word16 L_frame_0, /* i : L_frame channel 0 */ Loading lib_com/lerp.c +52 −1 Original line number Diff line number Diff line Loading @@ -392,7 +392,58 @@ static void L_lerp_proc_fx( const Word32 *f_fx, Word32 *f_out_fx, const Word16 b * * * * *-------------------------------------------------------------*/ void L_lerp_fx( Word32 *f, Word32 *f_out, Word16 bufferNewSize, Word16 bufferOldSize ) void L_lerp_fx( Word32 *f, Word32 *f_out, Word16 bufferNewSize, Word16 bufferOldSize, Word16 *q ) { Word16 tmpNewSize; Word16 guard_bits = s_max(find_guarded_bits_fx(bufferNewSize / bufferOldSize), find_guarded_bits_fx(bufferOldSize / bufferNewSize)) + 1; q -= guard_bits; FOR(Word16 ind = 0; ind < bufferNewSize; ind++) f[ind] = L_shr(f[ind], guard_bits); FOR(Word16 ind = 0; ind < bufferNewSize; ind++) f_out[ind] = L_shr(f_out[ind], guard_bits); IF ( 128 * bufferNewSize > bufferOldSize * 507 ) { tmpNewSize = bufferOldSize * 2; WHILE ( bufferNewSize > bufferOldSize ) { IF ( 128 * bufferNewSize <= 507 * bufferOldSize ) { tmpNewSize = bufferNewSize; } L_lerp_proc_fx( f, f_out, tmpNewSize, bufferOldSize ); f = f_out; bufferOldSize = tmpNewSize; tmpNewSize *= 2; } } ELSE IF ( 128 * bufferOldSize > bufferNewSize * 507 ) { tmpNewSize = bufferOldSize / 2; WHILE ( bufferNewSize < bufferOldSize ) { IF ( 128 * bufferOldSize <= 507 * bufferNewSize ) { tmpNewSize = bufferNewSize; } L_lerp_proc_fx( f, f_out, tmpNewSize, bufferOldSize ); f = f_out; bufferOldSize = tmpNewSize; tmpNewSize /= 2; } } ELSE { L_lerp_proc_fx( f, f_out, bufferNewSize, bufferOldSize ); } return; } void L_lerp_fx_q11( Word32 *f, Word32 *f_out, Word16 bufferNewSize, Word16 bufferOldSize ) { Word16 tmpNewSize; Loading lib_com/prot_fx2.h +3 −1 Original line number Diff line number Diff line Loading @@ -2100,7 +2100,9 @@ void synth_mem_updt2( //lerp.c void lerp(Word16 *f, Word16 *f_out, Word16 bufferNewSize, Word16 bufferOldSize); void L_lerp_fx( Word32 *f, Word32 *f_out, Word16 bufferNewSize, Word16 bufferOldSize ); void L_lerp_fx_q11( Word32 *f, Word32 *f_out, Word16 bufferNewSize, Word16 bufferOldSize ); void L_lerp_fx( Word32 *f, Word32 *f_out, Word16 bufferNewSize, Word16 bufferOldSize, Word16 *q ); //index_pvq_opt.c Loading lib_dec/ivas_core_dec.c +1 −1 Original line number Diff line number Diff line Loading @@ -601,7 +601,7 @@ ivas_error ivas_core_dec( } Word32 c_PS_LT_fx = float_to_fix(hCPE->hStereoCng->c_PS_LT, Q_c_PS_LT); stereo_cng_compute_PScorr_fx(output_fx[0], output_fx[1], Q_output, &c_PS_LT_fx, Q_c_PS_LT, sts[0]->L_frame, sts[1]->L_frame); stereo_cng_compute_PScorr_fx(output_fx[0], output_fx[1], &Q_output, &c_PS_LT_fx, Q_c_PS_LT, sts[0]->L_frame, sts[1]->L_frame); hCPE->hStereoCng->c_PS_LT = fix_to_float( c_PS_LT_fx, Q_c_PS_LT ); #ifdef DUMPS_ENABLED Loading Loading
lib_com/cldfb.c +1 −1 Original line number Diff line number Diff line Loading @@ -1504,7 +1504,7 @@ void resampleCldfb_ivas( /*low complexity-resampling only stored previous samples that are needed for next frame modulation */ lerp_flt( hs->cldfb_state, hs->cldfb_state, timeOffset, timeOffsetold ); #ifdef IVAS_FLOAT_FIXED L_lerp_fx( hs->cldfb_state_fx, hs->cldfb_state_fx, timeOffset, timeOffsetold ); L_lerp_fx_q11( hs->cldfb_state_fx, hs->cldfb_state_fx, timeOffset, timeOffsetold ); #endif return; Loading
lib_com/ivas_prot_fx.h +1 −1 Original line number Diff line number Diff line Loading @@ -612,7 +612,7 @@ void updateBuffersForDmxMdctStereo_fx( void stereo_cng_compute_PScorr_fx( Word32 output_fx0[], /* i : Output signal */ Word32 output_fx1[], /* i : Output signal */ Word16 output_Q, Word16 *output_Q, Word32 *c_PS_LT_fx, /* i/o: Correlation */ Word16 Q_c_PS_LT_fx, const Word16 L_frame_0, /* i : L_frame channel 0 */ Loading
lib_com/lerp.c +52 −1 Original line number Diff line number Diff line Loading @@ -392,7 +392,58 @@ static void L_lerp_proc_fx( const Word32 *f_fx, Word32 *f_out_fx, const Word16 b * * * * *-------------------------------------------------------------*/ void L_lerp_fx( Word32 *f, Word32 *f_out, Word16 bufferNewSize, Word16 bufferOldSize ) void L_lerp_fx( Word32 *f, Word32 *f_out, Word16 bufferNewSize, Word16 bufferOldSize, Word16 *q ) { Word16 tmpNewSize; Word16 guard_bits = s_max(find_guarded_bits_fx(bufferNewSize / bufferOldSize), find_guarded_bits_fx(bufferOldSize / bufferNewSize)) + 1; q -= guard_bits; FOR(Word16 ind = 0; ind < bufferNewSize; ind++) f[ind] = L_shr(f[ind], guard_bits); FOR(Word16 ind = 0; ind < bufferNewSize; ind++) f_out[ind] = L_shr(f_out[ind], guard_bits); IF ( 128 * bufferNewSize > bufferOldSize * 507 ) { tmpNewSize = bufferOldSize * 2; WHILE ( bufferNewSize > bufferOldSize ) { IF ( 128 * bufferNewSize <= 507 * bufferOldSize ) { tmpNewSize = bufferNewSize; } L_lerp_proc_fx( f, f_out, tmpNewSize, bufferOldSize ); f = f_out; bufferOldSize = tmpNewSize; tmpNewSize *= 2; } } ELSE IF ( 128 * bufferOldSize > bufferNewSize * 507 ) { tmpNewSize = bufferOldSize / 2; WHILE ( bufferNewSize < bufferOldSize ) { IF ( 128 * bufferOldSize <= 507 * bufferNewSize ) { tmpNewSize = bufferNewSize; } L_lerp_proc_fx( f, f_out, tmpNewSize, bufferOldSize ); f = f_out; bufferOldSize = tmpNewSize; tmpNewSize /= 2; } } ELSE { L_lerp_proc_fx( f, f_out, bufferNewSize, bufferOldSize ); } return; } void L_lerp_fx_q11( Word32 *f, Word32 *f_out, Word16 bufferNewSize, Word16 bufferOldSize ) { Word16 tmpNewSize; Loading
lib_com/prot_fx2.h +3 −1 Original line number Diff line number Diff line Loading @@ -2100,7 +2100,9 @@ void synth_mem_updt2( //lerp.c void lerp(Word16 *f, Word16 *f_out, Word16 bufferNewSize, Word16 bufferOldSize); void L_lerp_fx( Word32 *f, Word32 *f_out, Word16 bufferNewSize, Word16 bufferOldSize ); void L_lerp_fx_q11( Word32 *f, Word32 *f_out, Word16 bufferNewSize, Word16 bufferOldSize ); void L_lerp_fx( Word32 *f, Word32 *f_out, Word16 bufferNewSize, Word16 bufferOldSize, Word16 *q ); //index_pvq_opt.c Loading
lib_dec/ivas_core_dec.c +1 −1 Original line number Diff line number Diff line Loading @@ -601,7 +601,7 @@ ivas_error ivas_core_dec( } Word32 c_PS_LT_fx = float_to_fix(hCPE->hStereoCng->c_PS_LT, Q_c_PS_LT); stereo_cng_compute_PScorr_fx(output_fx[0], output_fx[1], Q_output, &c_PS_LT_fx, Q_c_PS_LT, sts[0]->L_frame, sts[1]->L_frame); stereo_cng_compute_PScorr_fx(output_fx[0], output_fx[1], &Q_output, &c_PS_LT_fx, Q_c_PS_LT, sts[0]->L_frame, sts[1]->L_frame); hCPE->hStereoCng->c_PS_LT = fix_to_float( c_PS_LT_fx, Q_c_PS_LT ); #ifdef DUMPS_ENABLED Loading