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

addd macros and code for HARMONIZE_2567_init_modes and HARMONIZE_2567_init_core_sig_ana

parent cca0308e
Loading
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -112,6 +112,8 @@
#define HARMONIZE_2567_init_tcx                         /* FhG: harmonize init_tcx derivates for evs/ivas  */
#define HARMONIZE_2567_init_coder_ace_plus              /* FhG: harmonize init_coder_ace_plus derivates for evs/ivas  */
#define HARMONIZE_2567_init_core_sig_ana                /* FhG: harmonize init_core_sig_ana derivates for evs/ivas  */
#define HARMONIZE_2567_init_modes                       /* FhG: harmonize init_modes derivates for evs/ivas  */

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

/* #################### Start NON-BE switches ############################ */
+88 −1
Original line number Diff line number Diff line
@@ -28,15 +28,23 @@ static void init_acelp_fx( Encoder_State *st, Word16 L_frame_old, const Word16 s
#else
static void init_acelp_fx( Encoder_State *st, Word16 L_frame_old, const Word16 shift );
#endif
#ifndef HARMONIZE_2567_init_modes
static void init_modes_fx( Encoder_State *st, const Word32 Last_total_brate );
#endif
static void init_sig_buffers_fx( Encoder_State *st, const Word16 L_frame_old, const Word16 L_subfr );
#ifdef HARMONIZE_2567_init_tcx
static void init_tcx_fx( Encoder_State *st, const Word16 L_frame_old, const Word32 total_brate, const Word32 last_total_brate, const Word16 MCT_flag );
#else
static void init_tcx_ivas_fx( Encoder_State *st, const Word16 L_frame_old, const Word32 total_brate, const Word32 last_total_brate, const Word16 MCT_flag );
#endif
#ifndef HARMONIZE_2567_init_core_sig_ana
static void init_core_sig_ana_ivas_fx( Encoder_State *st );
#endif
#ifdef HARMONIZE_2567_init_modes
static void init_modes_fx( Encoder_State *st, const Word32 last_total_brate );
#else
static void init_modes_ivas_fx( Encoder_State *st, const Word32 last_total_brate );
#endif
static void init_sig_buffers_ivas_fx( Encoder_State *st, const Word16 L_frame_old, const Word16 L_subfr, const Word32 last_total_brate );
#ifndef HARMONIZE_2567_init_acelp
#ifdef NONBE_FIX_ISSUE_2518
@@ -558,6 +566,7 @@ void init_sig_buffers_fx( Encoder_State *st, const Word16 L_frame_old, const Wor
    return;
}

#ifndef HARMONIZE_2567_init_core_sig_ana
static void init_core_sig_ana_fx( Encoder_State *st )
{

@@ -608,6 +617,7 @@ static void init_core_sig_ana_fx( Encoder_State *st )

    return;
}
#endif

#ifndef HARMONIZE_2567_init_acelp
static void init_acelp_fx( Encoder_State *st, Word16 L_frame_old, const Word16 shift )
@@ -856,6 +866,7 @@ static void init_acelp_fx( Encoder_State *st, Word16 L_frame_old, const Word16 s
}
#endif

#ifndef HARMONIZE_2567_init_modes
static void init_modes_fx(
    Encoder_State *st,
    const Word32 last_total_brate )
@@ -944,6 +955,7 @@ static void init_modes_fx(

    return;
}
#endif

/*-----------------------------------------------------------------------*
 * init_coder_ace_plus()
@@ -1150,6 +1162,10 @@ void init_coder_ace_plus_ivas_fx(
#endif
    }

#ifdef HARMONIZE_2567_init_core_sig_ana
    /* Initialize Core Signal Analysis Module */
    init_core_sig_ana_fx( st );
#else
#ifdef HARMONIZE_2567_init_coder_ace_plus
    IF( EQ_16( st->element_mode, EVS_MONO ) )
    {
@@ -1165,6 +1181,7 @@ void init_coder_ace_plus_ivas_fx(
    init_core_sig_ana_ivas_fx( st );

#endif
#endif /*HARMONIZE_2567_init_core_sig_ana*/

    /* Initialize TCX */
    IF( hTcxEnc != NULL )
@@ -1282,6 +1299,9 @@ void init_coder_ace_plus_ivas_fx(
    move16();

    /* Initialize ACELP/TCX Modes */
#ifdef HARMONIZE_2567_init_modes
    init_modes_fx( st, last_total_brate );
#else
#ifdef HARMONIZE_2567_init_coder_ace_plus
    IF( EQ_16( st->element_mode, EVS_MONO ) )
    {
@@ -1294,6 +1314,7 @@ void init_coder_ace_plus_ivas_fx(
#ifdef HARMONIZE_2567_init_coder_ace_plus
    }
#endif
#endif /*HARMONIZE_2567_init_modes*/


    /* Adaptive BPF */
@@ -1783,7 +1804,11 @@ static void init_sig_buffers_ivas_fx( Encoder_State *st, const Word16 L_frame_ol
 *
 *
 *-----------------------------------------------------------------------*/
#ifdef HARMONIZE_2567_init_core_sig_ana
static void init_core_sig_ana_fx( Encoder_State *st )
#else
static void init_core_sig_ana_ivas_fx( Encoder_State *st )
#endif
{

    /* Pre-emphasis factor and memory */
@@ -1800,6 +1825,13 @@ static void init_core_sig_ana_ivas_fx( Encoder_State *st )
        st->preemph_fac = PREEMPH_FAC_16k; /*WB*/
        move16();
    }
#ifdef HARMONIZE_2567_init_core_sig_ana
    if ( EQ_16( st->element_mode, EVS_MONO ) )
    {
        st->hTcxCfg->preemph_fac = st->preemph_fac;
        move16();
    }
#endif

    st->gamma = GAMMA1;
    move16();
@@ -1830,6 +1862,7 @@ static void init_core_sig_ana_ivas_fx( Encoder_State *st )

    return;
}

/*-----------------------------------------------------------------------*
 * init_acelp()
 *
@@ -2234,7 +2267,11 @@ static void init_acelp_ivas_fx( Encoder_State *st, Word16 L_frame_old, Word16 sh
 *
 *-----------------------------------------------------------------------*/

#ifdef HARMONIZE_2567_init_modes
static void init_modes_fx(
#else
static void init_modes_ivas_fx(
#endif
    Encoder_State *st,
    const Word32 last_total_brate )
{
@@ -2282,6 +2319,13 @@ static void init_modes_ivas_fx(
    /* st->bits_frame_nominal = extract_h(L_add(L_mult(div_l(L_mult(shl(st->L_frame,2),st->bitrate),st->fscale),328),16056)); */

    /* st->bits_frame_nominal = (int)( (float)st->L_frame/(float)st->fscale * (float)FSCALE_DENOM/128.0f * (float)st->bitrate/100.0f + 0.49f ); */
#ifdef HARMONIZE_2567_init_modes
    if ( EQ_16( st->element_mode, EVS_MONO ) )
    {
        assert( FSCALE_DENOM == 512 );
        assert( st->fscale == 2 * st->L_frame ); /* this assumption is true if operated in 20ms frames with FSCALE_DENOM == 512, which is the current default */
    }
#endif
    tmp32 = L_shl( st->total_brate, 1 );                                           /* (float)st->L_frame/(float)st->fscale * (float)FSCALE_DENOM/128.0f * (float)st->bitrate */
    st->bits_frame_nominal = extract_l( L_shr( Mpy_32_16_1( tmp32, 20972 ), 6 ) ); /* 20972 = 0.01 * 64 * 32768 */
    move16();
@@ -2299,6 +2343,30 @@ static void init_modes_ivas_fx(
    {
        FOR( n = 0; n < FRAME_SIZE_NB; n++ )
        {
#ifdef HARMONIZE_2567_init_modes
            test();
            test();
            IF( EQ_16( st->element_mode, EVS_MONO ) && EQ_16( FrameSizeConfig[n].frame_bits, st->bits_frame_nominal ) )
            {
                st->frame_size_index = n;
                move16();
                st->bits_frame = FrameSizeConfig[n].frame_bits;
                move16();
                st->bits_frame_core = FrameSizeConfig[n].frame_net_bits;
                move16();
                BREAK;
            }
            ELSE IF( GT_16( st->element_mode, EVS_MONO ) && ( ( LE_16( FrameSizeConfig[n].frame_bits, st->bits_frame_nominal ) ) ) )
            {
                st->frame_size_index = n;
                move16();
                st->bits_frame = st->bits_frame_nominal;
                move16();
                st->bits_frame_core = sub( sub( sub( st->bits_frame_nominal, FrameSizeConfig[n].transmission_bits ), FrameSizeConfig[n].bandwidth_bits ), FrameSizeConfig[n].reserved_bits );
                move16();
                BREAK;
            }
#else
            IF( LT_32( n, FRAME_SIZE_NB - 1 ) )
            {
                test();
@@ -2326,11 +2394,30 @@ static void init_modes_ivas_fx(
                    BREAK;
                }
            }
#endif
        }
#ifdef HARMONIZE_2567_init_modes
        test();
        if ( EQ_16( (Word16) n, FRAME_SIZE_NB ) && ( EQ_16( st->element_mode, EVS_MONO ) ) )
        {
            assert( !"Bitrate not supported: not part of EVS" );
        }
#endif
    }

    /* Reconfigure core */
#ifdef HARMONIZE_2567_init_modes
    if ( EQ_16( st->element_mode, EVS_MONO ) )
    {
        core_coder_reconfig_fx( st, last_total_brate );
    }
    ELSE
    {
#endif
        core_coder_reconfig_ivas_fx( st, last_total_brate );
#ifdef HARMONIZE_2567_init_modes
    }
#endif


    return;