Commit 31823244 authored by Fabian Bauer's avatar Fabian Bauer
Browse files

add macro HARMONIZE_2539_cng_energy and some code to test

parent 26ae1a66
Loading
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -97,7 +97,7 @@
#define FIX_BASOP_2509_EVS_CONCEAL_UNINIT_MEM           /* FhG: BASOP 2509: st->hTcxCfg->psychParamsCurrent is not initialized */
#define HARMONIZE_2499_CONFIGUREFDCNGDEC                /* FhG: basop issue 2499: harmonoize configureFdCngDec */
#define FIX_BASOP_2530_IVAS_DECISION_MAT                /* VA: Fix ambiguous usage of extract_l() */

#define HARMONIZE_2539_cng_energy                       /* FhG: basop issue 2499: harmonoize cng_energy */

/* #################### End BE switches ################################## */

+22 −2
Original line number Diff line number Diff line
@@ -1205,7 +1205,11 @@ Word16 cng_energy_fx(
            tmp16 = shl( *pt_res, scale );
            L_tmp = L_mac0_sat( L_tmp, tmp16, tmp16 ); /* 2*(Q_new+scale) */
            pt_res++;
#ifdef HARMONIZE_2539_cng_energy
            L_ener = L_msu( L_ener, L_tmp, L_shr( 0x8000000, 7 ) ); /* 2*(Q_new+scale)+1, divide by L_frame done here */
#else
            L_ener = L_add( L_ener, L_shr( L_tmp, 7 ) ); /* 2*(Q_new+scale)+1, divide by L_frame done here */
#endif
        }
    }
    ELSE /* L_FRAME16k */
@@ -1218,10 +1222,16 @@ Word16 cng_energy_fx(
            tmp16 = shl( *pt_res, scale );
            L_tmp = L_mac0_sat( L_tmp, tmp16, tmp16 ); /* 2*(Q_new+scale) */
            pt_res++;
#ifdef HARMONIZE_2539_cng_energy
            L_ener = L_msu( L_ener, Mult_32_16( L_tmp, 26214 /* 256/320, Q15 */ ), L_shr( 0x80000000, 7 ) ); /* 2*(Q_new+scale)+15+1-16+1, divide by L_frame done here */
#else
            L_ener = L_add( L_ener, L_shr( Mult_32_16( L_tmp, 26214 /* 256/320, Q15 */ ), 7 ) ); /* 2*(Q_new+scale)+15+1-16+1, divide by L_frame done here */
#endif
        }
    }

#ifdef HARMONIZE_2539_cng_energy
    L_ener = L_negate( L_ener );
#endif
    hi = norm_l( L_ener );
    lo = Log2_norm_lc( L_shl( L_ener, hi ) );
    hi = sub( 30, add( hi, shl( add( Q_new, scale ), 1 ) ) ); /* log2 exp in Q2*(Q_new+scale) */
@@ -1301,7 +1311,11 @@ Word16 cng_energy_ivas_fx(
            tmp16 = shl( *pt_res, sub( scale, 4 ) ); // Q_new + scale - 4
            L_tmp = L_mac0( L_tmp, tmp16, tmp16 );   /* 2*(Q_new+scale) + 7 */
            pt_res++;
#ifdef HARMONIZE_2539_cng_energy
            L_ener = L_msu( L_ener, L_tmp, 0x80000000 ); /* 2*(Q_new+scale)+1, divide by L_frame done here */
#else
            L_ener = L_add( L_ener, L_tmp ); /* 2*(Q_new+scale)+1, divide by L_frame done here */
#endif
        }
    }
    ELSE /* L_FRAME16k */
@@ -1314,10 +1328,16 @@ Word16 cng_energy_ivas_fx(
            tmp16 = shl( *pt_res, sub( scale, 4 ) ); // Q_new + scale - 4
            L_tmp = L_mac( L_tmp, tmp16, tmp16 );    /* 2*(Q_new+scale) - 7 */
            pt_res++;
#ifdef HARMONIZE_2539_cng_energy
            L_ener = L_msu( L_ener, Mult_32_16( L_tmp, 26214 /* 256/320, Q15 */ ), 0x80000000 ); /* 2*(Q_new+scale)+15+1-16+1, divide by L_frame done here */
#else
            L_ener = L_add( L_ener, Mult_32_16( L_tmp, 26214 /* 256/320, Q15 */ ) ); /* 2*(Q_new+scale)+15+1-16+1, divide by L_frame done here */
#endif
        }
    }

#ifdef HARMONIZE_2539_cng_energy
    L_ener = L_negate( L_ener );
#endif
    hi = norm_l( L_ener );
    lo = Log2_norm_lc( L_shl( L_ener, hi ) );
    hi = sub( 30, add( hi, shl( add( Q_new, scale ), 1 ) ) ); /* log2 exp in Q2*(Q_new+scale) */