Loading lib_dec/ivas_dirac_dec.c +3 −0 Original line number Diff line number Diff line Loading @@ -5840,6 +5840,9 @@ void ivas_dirac_dec_render_sf_fx( { hDirACRend->h_output_synthesis_psd_state.gains_dir_prev_q[l] = hDirACRend->h_output_synthesis_psd_state.q_cy_cross_dir_smooth_prev[l]; move16(); } FOR( Word16 l = 0; l < hDirACRend->h_output_synthesis_psd_params.max_band_decorr; l++) { hDirACRend->h_output_synthesis_psd_state.gains_diff_prev_q[l] = hDirACRend->h_output_synthesis_psd_state.q_cy_auto_diff_smooth_prev[l]; move16(); } Loading lib_rend/ivas_dirac_output_synthesis_dec.c +11 −2 Original line number Diff line number Diff line Loading @@ -957,12 +957,21 @@ void ivas_dirac_dec_output_synthesis_init_fx( IF( EQ_32( hDirACRend->synthesisConf, DIRAC_SYNTHESIS_GAIN_SHD ) ) { set32_fx( h_dirac_output_synthesis_state->gains_diff_prev_fx, 0, imult1616( h_dirac_output_synthesis_params->max_band_decorr, hDirACRend->num_outputs_diff ) ); #ifdef FIX_867 if (h_dirac_output_synthesis_state->gains_diff_prev_q) { set16_zero_fx(h_dirac_output_synthesis_state->gains_diff_prev_q, h_dirac_output_synthesis_params->max_band_decorr * hDirACRend->num_outputs_diff); } #endif } ELSE { set32_fx( h_dirac_output_synthesis_state->gains_diff_prev_fx, 0, imult1616( hSpatParamRendCom->num_freq_bands, hDirACRend->num_outputs_dir ) ); #ifdef FIX_867 if (h_dirac_output_synthesis_state->gains_diff_prev_q) { set16_zero_fx( h_dirac_output_synthesis_state->gains_diff_prev_q, h_dirac_output_synthesis_params->max_band_decorr * hDirACRend->num_outputs_diff ); } #endif } #ifndef FIX_867 Loading lib_rend/ivas_dirac_rend.c +12 −0 Original line number Diff line number Diff line Loading @@ -2519,10 +2519,15 @@ void protoSignalComputation_shd_fx( reference_power_fx[l] = L_add( reference_power_fx[l], L_shr( reference_power_fx[idx1], 1 ) ); /*2*Q(q_cldfb+min_q_shift)-31-1*/ move32(); #ifdef FIX_867 reference_power_q[l] = sub(add(*proto_direct_buffer_f_q, *proto_direct_buffer_f_q), 31); #endif } *proto_direct_buffer_f_q = add( q_cldfb, min_q_shift ); #ifndef FIX_867 *reference_power_q = sub( add( *proto_direct_buffer_f_q, *proto_direct_buffer_f_q ), 31 ); #endif FOR( k = 1; k < 4; k++ ) { Loading Loading @@ -2552,12 +2557,19 @@ void protoSignalComputation_shd_fx( move32(); reference_power_fx[l] = L_add( reference_power_fx[l], L_shr( reference_power_fx[l + ( k + 1 ) * num_freq_bands], 1 ) ); // 2*(q_cldfb+min_q_shift)-31-1 move32(); #ifdef FIX_867 reference_power_q[l] = sub(add(add(q_cldfb, min_q_shift), add(q_cldfb, min_q_shift)), 31); move16(); #endif } } *proto_direct_buffer_f_q = q_cldfb; move16(); #ifndef FIX_867 *reference_power_q = sub( add( add( q_cldfb, min_q_shift ), add( q_cldfb, min_q_shift ) ), 31 ); move16(); #endif } /* Additional transport channels = planar SBA components of degree higher than 1*/ Loading Loading
lib_dec/ivas_dirac_dec.c +3 −0 Original line number Diff line number Diff line Loading @@ -5840,6 +5840,9 @@ void ivas_dirac_dec_render_sf_fx( { hDirACRend->h_output_synthesis_psd_state.gains_dir_prev_q[l] = hDirACRend->h_output_synthesis_psd_state.q_cy_cross_dir_smooth_prev[l]; move16(); } FOR( Word16 l = 0; l < hDirACRend->h_output_synthesis_psd_params.max_band_decorr; l++) { hDirACRend->h_output_synthesis_psd_state.gains_diff_prev_q[l] = hDirACRend->h_output_synthesis_psd_state.q_cy_auto_diff_smooth_prev[l]; move16(); } Loading
lib_rend/ivas_dirac_output_synthesis_dec.c +11 −2 Original line number Diff line number Diff line Loading @@ -957,12 +957,21 @@ void ivas_dirac_dec_output_synthesis_init_fx( IF( EQ_32( hDirACRend->synthesisConf, DIRAC_SYNTHESIS_GAIN_SHD ) ) { set32_fx( h_dirac_output_synthesis_state->gains_diff_prev_fx, 0, imult1616( h_dirac_output_synthesis_params->max_band_decorr, hDirACRend->num_outputs_diff ) ); #ifdef FIX_867 if (h_dirac_output_synthesis_state->gains_diff_prev_q) { set16_zero_fx(h_dirac_output_synthesis_state->gains_diff_prev_q, h_dirac_output_synthesis_params->max_band_decorr * hDirACRend->num_outputs_diff); } #endif } ELSE { set32_fx( h_dirac_output_synthesis_state->gains_diff_prev_fx, 0, imult1616( hSpatParamRendCom->num_freq_bands, hDirACRend->num_outputs_dir ) ); #ifdef FIX_867 if (h_dirac_output_synthesis_state->gains_diff_prev_q) { set16_zero_fx( h_dirac_output_synthesis_state->gains_diff_prev_q, h_dirac_output_synthesis_params->max_band_decorr * hDirACRend->num_outputs_diff ); } #endif } #ifndef FIX_867 Loading
lib_rend/ivas_dirac_rend.c +12 −0 Original line number Diff line number Diff line Loading @@ -2519,10 +2519,15 @@ void protoSignalComputation_shd_fx( reference_power_fx[l] = L_add( reference_power_fx[l], L_shr( reference_power_fx[idx1], 1 ) ); /*2*Q(q_cldfb+min_q_shift)-31-1*/ move32(); #ifdef FIX_867 reference_power_q[l] = sub(add(*proto_direct_buffer_f_q, *proto_direct_buffer_f_q), 31); #endif } *proto_direct_buffer_f_q = add( q_cldfb, min_q_shift ); #ifndef FIX_867 *reference_power_q = sub( add( *proto_direct_buffer_f_q, *proto_direct_buffer_f_q ), 31 ); #endif FOR( k = 1; k < 4; k++ ) { Loading Loading @@ -2552,12 +2557,19 @@ void protoSignalComputation_shd_fx( move32(); reference_power_fx[l] = L_add( reference_power_fx[l], L_shr( reference_power_fx[l + ( k + 1 ) * num_freq_bands], 1 ) ); // 2*(q_cldfb+min_q_shift)-31-1 move32(); #ifdef FIX_867 reference_power_q[l] = sub(add(add(q_cldfb, min_q_shift), add(q_cldfb, min_q_shift)), 31); move16(); #endif } } *proto_direct_buffer_f_q = q_cldfb; move16(); #ifndef FIX_867 *reference_power_q = sub( add( add( q_cldfb, min_q_shift ), add( q_cldfb, min_q_shift ) ), 31 ); move16(); #endif } /* Additional transport channels = planar SBA components of degree higher than 1*/ Loading