Loading lib_com/options.h +2 −0 Original line number Diff line number Diff line Loading @@ -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 ############################ */ Loading lib_enc/core_enc_init_fx.c +88 −1 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 ) { Loading Loading @@ -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 ) Loading Loading @@ -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 ) Loading Loading @@ -944,6 +955,7 @@ static void init_modes_fx( return; } #endif /*-----------------------------------------------------------------------* * init_coder_ace_plus() Loading Loading @@ -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 ) ) { Loading @@ -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 ) Loading Loading @@ -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 ) ) { Loading @@ -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 */ Loading Loading @@ -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 */ Loading @@ -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(); Loading Loading @@ -1830,6 +1862,7 @@ static void init_core_sig_ana_ivas_fx( Encoder_State *st ) return; } /*-----------------------------------------------------------------------* * init_acelp() * Loading Loading @@ -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 ) { Loading Loading @@ -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(); Loading @@ -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(); Loading Loading @@ -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; Loading Loading
lib_com/options.h +2 −0 Original line number Diff line number Diff line Loading @@ -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 ############################ */ Loading
lib_enc/core_enc_init_fx.c +88 −1 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 ) { Loading Loading @@ -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 ) Loading Loading @@ -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 ) Loading Loading @@ -944,6 +955,7 @@ static void init_modes_fx( return; } #endif /*-----------------------------------------------------------------------* * init_coder_ace_plus() Loading Loading @@ -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 ) ) { Loading @@ -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 ) Loading Loading @@ -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 ) ) { Loading @@ -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 */ Loading Loading @@ -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 */ Loading @@ -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(); Loading Loading @@ -1830,6 +1862,7 @@ static void init_core_sig_ana_ivas_fx( Encoder_State *st ) return; } /*-----------------------------------------------------------------------* * init_acelp() * Loading Loading @@ -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 ) { Loading Loading @@ -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(); Loading @@ -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(); Loading Loading @@ -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; Loading