Commit d4d9224d authored by Sandesh Venkatesh's avatar Sandesh Venkatesh
Browse files

Merge branch '3gpp_issue_1202_fix' into 'main'

Fix for 3GPP issue 1202: BASOP encoder ParamISM: strong timbre differences in the noise track

See merge request !1118
parents 6ccfabfa 1ed28515
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -307,7 +307,7 @@ void ivas_param_ism_stereo_dmx_fx(
            /* Smoothing */
            cardioid_left[i] = add( mult( 24576 /* 0.75f in Q15 */, cardioid_left[i] ), mult( 8192 /* 0.25f in Q15 */, last_cardioid_left ) ); // Q14
            move16();
            grad = mult( sub( cardioid_left[i], last_cardioid_left ), shl( one_by_input_frame, 1 ) /* 2.0f / (float) input_frame*/ ); /* Q14 */ /* for the right cardioid, multiply with -1 */
            Word32 grad_32 = L_mult( sub( cardioid_left[i], last_cardioid_left ), shl( one_by_input_frame, 1 ) /* 2.0f / (float) input_frame*/ ); /* Q14+Q16 = Q30 */ /* for the right cardioid, multiply with -1 */
            /* Cardioids sum up to 1 */
            cardioid_right[i] = sub( ONE_IN_Q14 /* 1.0f in Q14 */, cardioid_left[i] ); /* corresponds to: alpha + ( 1 - alpha ) * cosf( tmp + tmp_1 ); */
            move16();
@@ -316,12 +316,12 @@ void ivas_param_ism_stereo_dmx_fx(
            {
                tmp = data[i][j];
                move32();
                tmp = W_extract_l( W_shr( W_mult_32_16( tmp, add( last_cardioid_left, mult0( j, grad ) ) ), 15 ) ); /* Qx DMX Left */
                tmp = W_extract_l( W_shr( W_mult_32_32( tmp, L_add( last_cardioid_left, L_shr( Mpy_32_32( L_shl( j, 22 ), grad_32 ), 7 ) ) ), 15 ) ); /* Qx DMX Left */
                stereo_dmx[0][j] = L_add( stereo_dmx[0][j], tmp );                                                                                    /* Qx DMX Left */
                move32();
                tmp = data[i][j];
                move32();
                tmp = W_extract_l( W_shr( W_mult_32_16( tmp, add( last_cardioid_right, negate( mult0( j, grad ) ) ) ), 15 ) ); /* Qx DMX Right */
                tmp = W_extract_l( W_shr( W_mult_32_32( tmp, L_add( last_cardioid_right, L_shr( L_negate( Mpy_32_32( L_shl( j, 22 ), grad_32 ) ), 7 ) ) ), 15 ) ); /* Qx DMX Right */
                stereo_dmx[1][j] = L_add( stereo_dmx[1][j], tmp );                                                                                                 /* Qx DMX Right */
                move32();
                ene_data = W_add( ene_data, W_mult_32_32( data[i][j], data[i][j] ) ); /* 2 * Qx + 1 energy of all objects combined */