Loading lib_dec/igf_dec_fx.c +15 −7 Original line number Diff line number Diff line Loading @@ -2905,6 +2905,8 @@ static void IGF_getWhiteSpectralData_ivas( Word16 tmp_e; Word16 out_e_arr[IGF_START_MX + MAX_IGF_SFB_LEN]; Word16 max_out_e; Word64 window_sum; Word64 left_one; assert( LT_16( stop, IGF_START_MX + MAX_IGF_SFB_LEN ) ); /* inits */ Loading @@ -2930,15 +2932,21 @@ static void IGF_getWhiteSpectralData_ivas( ak_e = add( tmp_e, sub( shl( sub( in_e, s_l ), 1 ), 15 ) ); // tmp_e + 2 * (in_e - s_l) - 15 ak_e = sub( ak_e, 1 ); FOR( i = start; i < stop - level; i++ ) { Word64 temp = 0; window_sum = 0; left_one = 0; move64(); FOR( j = i - level; j < i + level + 1; j++ ) move64(); FOR( j = start - level; j < start + level ; j++ ) { temp = W_mac_32_32( temp, in[j], in[j] ); window_sum = W_mac_32_32( window_sum, in[j], in[j] ); } ak = Mult_32_16( W_shl_sat_l( temp, shift ), quo ); // add( shl( level, 1 ), 1 ), &tmp_e ) ); FOR( i = start; i < stop - level; i++ ) { window_sum = W_sub( window_sum, left_one ); /* subtract the left one */ window_sum = W_mac_32_32( window_sum, in[i + level], in[i + level] ); /* add the right one */ left_one = W_mult_32_32( in[i - level], in[i - level] ); ak = Mult_32_16( W_shl_sat_l( window_sum, shift ), quo ); // add( shl( level, 1 ), 1 ), &tmp_e ) ); n = sub( ak_e, norm_l( ak ) ); Loading Loading
lib_dec/igf_dec_fx.c +15 −7 Original line number Diff line number Diff line Loading @@ -2905,6 +2905,8 @@ static void IGF_getWhiteSpectralData_ivas( Word16 tmp_e; Word16 out_e_arr[IGF_START_MX + MAX_IGF_SFB_LEN]; Word16 max_out_e; Word64 window_sum; Word64 left_one; assert( LT_16( stop, IGF_START_MX + MAX_IGF_SFB_LEN ) ); /* inits */ Loading @@ -2930,15 +2932,21 @@ static void IGF_getWhiteSpectralData_ivas( ak_e = add( tmp_e, sub( shl( sub( in_e, s_l ), 1 ), 15 ) ); // tmp_e + 2 * (in_e - s_l) - 15 ak_e = sub( ak_e, 1 ); FOR( i = start; i < stop - level; i++ ) { Word64 temp = 0; window_sum = 0; left_one = 0; move64(); FOR( j = i - level; j < i + level + 1; j++ ) move64(); FOR( j = start - level; j < start + level ; j++ ) { temp = W_mac_32_32( temp, in[j], in[j] ); window_sum = W_mac_32_32( window_sum, in[j], in[j] ); } ak = Mult_32_16( W_shl_sat_l( temp, shift ), quo ); // add( shl( level, 1 ), 1 ), &tmp_e ) ); FOR( i = start; i < stop - level; i++ ) { window_sum = W_sub( window_sum, left_one ); /* subtract the left one */ window_sum = W_mac_32_32( window_sum, in[i + level], in[i + level] ); /* add the right one */ left_one = W_mult_32_32( in[i - level], in[i - level] ); ak = Mult_32_16( W_shl_sat_l( window_sum, shift ), quo ); // add( shl( level, 1 ), 1 ), &tmp_e ) ); n = sub( ak_e, norm_l( ak ) ); Loading