Loading lib_com/ivas_qspherical_com.c +9 −1 Original line number Diff line number Diff line Loading @@ -668,7 +668,15 @@ Word16 quantize_phi_chan_compand_fx( delta_phi = L_shr( delta_phi, sub( 9, tmp_e ) ); // Q22 // id_phi = (int16_t) round_f( ( phi / (float) delta_phi ) ); id_phi = BASOP_Util_Divide3232_Scale( phi, delta_phi, &tmp_e ); // Q15 IF( GE_16( abs_s( id_phi ), shl_sat( 1, sub( 15, tmp_e ) ) ) ) { id_phi = shr( id_phi, sub( 15, tmp_e ) ); // Q0 } ELSE { id_phi = 0; move16(); } IF( add( id_phi, shr( n, 1 ) ) < 0 ) { Loading lib_dec/ivas_range_uni_dec.c +1 −1 Original line number Diff line number Diff line Loading @@ -397,7 +397,7 @@ UWord16 rc_uni_dec_read_bits( FOR( tmp = range; tmp <= low; tmp += range ) { val = add( val, 1 ); val = UL_addNsD( val, 1 ); } /* in case of bitstream errors it is possible that val >= (1 << bits) */ Loading lib_enc/cod4t64_fast.c +1 −1 Original line number Diff line number Diff line Loading @@ -791,7 +791,7 @@ void acelp_fast_fx( FOR( i = 0; i < L_subfr; i++ ) { y_tmp[i] = add( y_tmp[i], *p_hn++ ); // q_H y_tmp[i] = add_sat( y_tmp[i], *p_hn++ ); // q_H move16(); } Loading lib_enc/ext_sig_ana_fx.c +3 −1 Original line number Diff line number Diff line Loading @@ -764,7 +764,9 @@ void core_signal_analysis_high_bitrate_ivas_fx( Q_exp = sub( *Q_new, st->prev_Q_new ); move16(); Scale_sig( st->old_inp_16k_fx, L_INP_MEM, sub( *Q_new, st->Q_old ) ); // *Q_new Scale_sig( st->old_inp_16k_fx, L_INP_MEM, sub( *Q_new, sub( Q15, st->exp_old_inp_16k ) ) ); // *Q_new st->exp_old_inp_16k = sub( Q15, *Q_new ); move16(); IF( Q_exp != 0 ) { Scale_sig( st->buf_speech_enc_pe, st->encoderPastSamples_enc + st->encoderLookahead_enc, Q_exp ); // *Q_new Loading lib_enc/ivas_core_pre_proc.c +21 −7 Original line number Diff line number Diff line Loading @@ -533,24 +533,29 @@ ivas_error pre_proc_ivas( inp_16k_fx = old_inp_16k_fx + L_INP_MEM - L_look; #ifdef IVAS_FLOAT_FIXED_CONVERSIONS Word16 Q_old_inp_16k = -1; move16(); Word16 Q_r[2] = { 0 }; move16(); move16(); inp_16k_fx = old_inp_16k_fx + L_INP_MEM - L_look; Word16 shift = getScaleFactor16( st->old_inp_12k8_fx, 240 ); Scale_sig( st->old_inp_12k8_fx, 240, shift ); Word16 shift = getScaleFactor16( st->old_inp_12k8_fx, L_INP_MEM ); Scale_sig( st->old_inp_12k8_fx, L_INP_MEM, shift ); st->exp_old_inp_12k8 = sub( st->exp_old_inp_12k8, shift ); move16(); Scale_sig( st->old_inp_16k_fx, L_INP_MEM, sub( Q_old_inp_16k, sub( Q15, Q_old_inp_16k ) ) ); Scale_sig( st->old_inp_16k_fx, L_INP_MEM, sub( Q_old_inp_16k, sub( Q15, st->exp_old_inp_16k ) ) ); st->exp_old_inp_16k = sub( Q15, Q_old_inp_16k ); if ( st->hBWE_FD != NULL ) move16(); IF( st->hBWE_FD != NULL ) { Scale_sig( st->hBWE_FD->L_old_wtda_swb_fx, L_FRAME48k, sub( -1, st->Q_old_wtda ) ); st->Q_old_wtda = -1; // This reset needs to be looked into move16(); } #endif st->mem_preemph_enc = shl( st->mem_preemph_enc, sub( Q_old_inp_16k, sub( Q15, st->exp_mem_preemph_enc ) ) ); move16(); st->exp_mem_preemph_enc = sub( Q15, Q_old_inp_16k ); Loading Loading @@ -1215,15 +1220,24 @@ ivas_error ivas_compute_core_buffers_fx( IF( ( EQ_16( element_mode, IVAS_CPE_TD ) && EQ_16( st->idchan, 1 ) ) || EQ_16( element_mode, IVAS_CPE_MDCT ) ) { set16_fx( st->old_inp_16k_fx, 0, L_INP_MEM ); st->exp_old_inp_16k = 0; move16(); } ELSE IF( GT_32( input_Fs, 8000 ) && EQ_32( sr_core, INT_FS_16k ) ) { Copy( &old_inp_16k_fx[L_frame_tmp], st->old_inp_16k_fx, L_INP_MEM ); IF( Q_new ) { st->exp_old_inp_16k = sub( Q16, *Q_new ); //(*Q_new - 1) move16(); } } ELSE IF( GT_32( input_Fs, 8000 ) ) { lerp( st->old_inp_12k8_fx + L_INP_MEM - L_INP_MEM * 4 / 5, st->old_inp_16k_fx, L_INP_MEM, L_INP_MEM * 4 / 5 ); Scale_sig( st->old_inp_16k_fx, L_INP_MEM, sub( -1 /* Q st->old_inp_16k_fx = -1 */, sub( 15, st->exp_old_inp_12k8 ) ) ); Scale_sig( st->old_inp_16k_fx, L_INP_MEM, sub( -1 /* Q st->old_inp_16k_fx = -1 */, sub( 15, st->exp_old_inp_16k ) ) ); st->exp_old_inp_16k = Q16; // Q-1 move16(); } IF( inp16k_out_fx != NULL ) Loading Loading
lib_com/ivas_qspherical_com.c +9 −1 Original line number Diff line number Diff line Loading @@ -668,7 +668,15 @@ Word16 quantize_phi_chan_compand_fx( delta_phi = L_shr( delta_phi, sub( 9, tmp_e ) ); // Q22 // id_phi = (int16_t) round_f( ( phi / (float) delta_phi ) ); id_phi = BASOP_Util_Divide3232_Scale( phi, delta_phi, &tmp_e ); // Q15 IF( GE_16( abs_s( id_phi ), shl_sat( 1, sub( 15, tmp_e ) ) ) ) { id_phi = shr( id_phi, sub( 15, tmp_e ) ); // Q0 } ELSE { id_phi = 0; move16(); } IF( add( id_phi, shr( n, 1 ) ) < 0 ) { Loading
lib_dec/ivas_range_uni_dec.c +1 −1 Original line number Diff line number Diff line Loading @@ -397,7 +397,7 @@ UWord16 rc_uni_dec_read_bits( FOR( tmp = range; tmp <= low; tmp += range ) { val = add( val, 1 ); val = UL_addNsD( val, 1 ); } /* in case of bitstream errors it is possible that val >= (1 << bits) */ Loading
lib_enc/cod4t64_fast.c +1 −1 Original line number Diff line number Diff line Loading @@ -791,7 +791,7 @@ void acelp_fast_fx( FOR( i = 0; i < L_subfr; i++ ) { y_tmp[i] = add( y_tmp[i], *p_hn++ ); // q_H y_tmp[i] = add_sat( y_tmp[i], *p_hn++ ); // q_H move16(); } Loading
lib_enc/ext_sig_ana_fx.c +3 −1 Original line number Diff line number Diff line Loading @@ -764,7 +764,9 @@ void core_signal_analysis_high_bitrate_ivas_fx( Q_exp = sub( *Q_new, st->prev_Q_new ); move16(); Scale_sig( st->old_inp_16k_fx, L_INP_MEM, sub( *Q_new, st->Q_old ) ); // *Q_new Scale_sig( st->old_inp_16k_fx, L_INP_MEM, sub( *Q_new, sub( Q15, st->exp_old_inp_16k ) ) ); // *Q_new st->exp_old_inp_16k = sub( Q15, *Q_new ); move16(); IF( Q_exp != 0 ) { Scale_sig( st->buf_speech_enc_pe, st->encoderPastSamples_enc + st->encoderLookahead_enc, Q_exp ); // *Q_new Loading
lib_enc/ivas_core_pre_proc.c +21 −7 Original line number Diff line number Diff line Loading @@ -533,24 +533,29 @@ ivas_error pre_proc_ivas( inp_16k_fx = old_inp_16k_fx + L_INP_MEM - L_look; #ifdef IVAS_FLOAT_FIXED_CONVERSIONS Word16 Q_old_inp_16k = -1; move16(); Word16 Q_r[2] = { 0 }; move16(); move16(); inp_16k_fx = old_inp_16k_fx + L_INP_MEM - L_look; Word16 shift = getScaleFactor16( st->old_inp_12k8_fx, 240 ); Scale_sig( st->old_inp_12k8_fx, 240, shift ); Word16 shift = getScaleFactor16( st->old_inp_12k8_fx, L_INP_MEM ); Scale_sig( st->old_inp_12k8_fx, L_INP_MEM, shift ); st->exp_old_inp_12k8 = sub( st->exp_old_inp_12k8, shift ); move16(); Scale_sig( st->old_inp_16k_fx, L_INP_MEM, sub( Q_old_inp_16k, sub( Q15, Q_old_inp_16k ) ) ); Scale_sig( st->old_inp_16k_fx, L_INP_MEM, sub( Q_old_inp_16k, sub( Q15, st->exp_old_inp_16k ) ) ); st->exp_old_inp_16k = sub( Q15, Q_old_inp_16k ); if ( st->hBWE_FD != NULL ) move16(); IF( st->hBWE_FD != NULL ) { Scale_sig( st->hBWE_FD->L_old_wtda_swb_fx, L_FRAME48k, sub( -1, st->Q_old_wtda ) ); st->Q_old_wtda = -1; // This reset needs to be looked into move16(); } #endif st->mem_preemph_enc = shl( st->mem_preemph_enc, sub( Q_old_inp_16k, sub( Q15, st->exp_mem_preemph_enc ) ) ); move16(); st->exp_mem_preemph_enc = sub( Q15, Q_old_inp_16k ); Loading Loading @@ -1215,15 +1220,24 @@ ivas_error ivas_compute_core_buffers_fx( IF( ( EQ_16( element_mode, IVAS_CPE_TD ) && EQ_16( st->idchan, 1 ) ) || EQ_16( element_mode, IVAS_CPE_MDCT ) ) { set16_fx( st->old_inp_16k_fx, 0, L_INP_MEM ); st->exp_old_inp_16k = 0; move16(); } ELSE IF( GT_32( input_Fs, 8000 ) && EQ_32( sr_core, INT_FS_16k ) ) { Copy( &old_inp_16k_fx[L_frame_tmp], st->old_inp_16k_fx, L_INP_MEM ); IF( Q_new ) { st->exp_old_inp_16k = sub( Q16, *Q_new ); //(*Q_new - 1) move16(); } } ELSE IF( GT_32( input_Fs, 8000 ) ) { lerp( st->old_inp_12k8_fx + L_INP_MEM - L_INP_MEM * 4 / 5, st->old_inp_16k_fx, L_INP_MEM, L_INP_MEM * 4 / 5 ); Scale_sig( st->old_inp_16k_fx, L_INP_MEM, sub( -1 /* Q st->old_inp_16k_fx = -1 */, sub( 15, st->exp_old_inp_12k8 ) ) ); Scale_sig( st->old_inp_16k_fx, L_INP_MEM, sub( -1 /* Q st->old_inp_16k_fx = -1 */, sub( 15, st->exp_old_inp_16k ) ) ); st->exp_old_inp_16k = Q16; // Q-1 move16(); } IF( inp16k_out_fx != NULL ) Loading