Loading lib_com/cnst.h +2 −1 Original line number Diff line number Diff line Loading @@ -575,7 +575,7 @@ enum #define FRAMES_PER_SEC 50 #ifdef IVAS_FLOAT_FIXED #define MAX_PARAM_SPATIAL_SUB_FRAMES_PER_SEC 200 //(FRAMES_PER_SEC * MAX_PARAM_SPATIAL_SUBFRAMES) #define ONE_BY_FRAMES_PER_SEC_Q31 ((Word32)(0x028F5C29)) #define ONE_BY_FRAMES_PER_SEC_Q31 ( 42949673 ) #define FRAMES_PER_SEC_BY_2 (FRAMES_PER_SEC >> 1) #endif #define INV_FRAME_PER_SEC_Q15 656 Loading Loading @@ -607,6 +607,7 @@ enum #define N_WS2N_FRAMES 40 /* number of frames for attenuation during the band-width switching */ #define N_NS2W_FRAMES 20 /* number of frames for attenuation during the band-width switching */ #define ONE_BY_N_NS2W_FRAMES_Q15 ( 1638 ) /*----------------------------------------------------------------------------------* * Coder types (only for ACELP core when not running in AMR-WB IO mode) Loading lib_com/ivas_cnst.h +2 −0 Original line number Diff line number Diff line Loading @@ -1681,6 +1681,8 @@ typedef enum #define DEG_360_IN_Q22 (360 << Q22) #define DEG_180_IN_Q22 (180 << Q22) #define DEG_90_IN_Q22 (90 << Q22) #define ONE_BY_360_Q31 ( 5965232 ) #define ONE_BY_180_Q31 ( 11930465 ) /* ----- Enums - TD Renderer ----- */ Loading lib_com/ivas_dirac_com.c +3 −4 Original line number Diff line number Diff line Loading @@ -639,10 +639,9 @@ void ivas_get_dirac_sba_max_md_bits_fx( } ELSE { //*bits_frame_nominal = (int16_t) ( sba_total_brate / FRAMES_PER_SEC ); Word16 tmp_exp = 0, tmp; tmp = BASOP_Util_Divide3232_Scale( sba_total_brate, FRAMES_PER_SEC, &tmp_exp ); *bits_frame_nominal = shr( tmp, 15 - tmp_exp ); /* *bits_frame_nominal = (int16_t) ( sba_total_brate / FRAMES_PER_SEC ); */ *bits_frame_nominal = extract_l( Mpy_32_32( sba_total_brate, ONE_BY_FRAMES_PER_SEC_Q31 ) ); move16(); *metadata_max_bits = MAX16B; /* no limit */ } Word32 var1 = L_mult0( *metadata_max_bits, nbands ); Loading lib_com/ivas_ism_com.c +7 −6 Original line number Diff line number Diff line Loading @@ -53,7 +53,10 @@ #define BITS_ISM_INACTIVE ( BRATE_ISM_INACTIVE / FRAMES_PER_SEC ) #define BETA_ISM_LOW_IMP 0.6f #define BETA_ISM_LOW_IMP_Q31 ( 1288490189 ) #define BETA_ISM_MEDIUM_IMP 0.8f #define BETA_ISM_MEDIUM_IMP_Q31 ( 1717986918 ) #define BETA_ISM_MEDIUM_IMP_BY_8_Q31 ( 214748365 ) #define MAX_BRATE_TCX_32k 48000 #define BITS_IVAS_512k ( IVAS_512k / FRAMES_PER_SEC ) Loading Loading @@ -585,15 +588,13 @@ ivas_error ivas_ism_config_fx( ELSE IF( EQ_16( ism_imp[ch], ISM_LOW_IMP ) ) { // tmp = (Word16) ( BETA_ISM_LOW_IMP * bits_CoreCoder[ch] ); tmp1 = BASOP_Util_Divide1616_Scale( bits_CoreCoder[ch], 5, &exp ); tmp = shr( mult( tmp1, 24576 ), ( 15 - exp + 13 ) - 15 ); tmp = extract_l( Mpy_32_32( BETA_ISM_LOW_IMP_Q31, bits_CoreCoder[ch] ) ); tmp = s_max( limit, tmp ); } ELSE IF( EQ_16( ism_imp[ch], ISM_MEDIUM_IMP ) ) { // tmp = (Word16) ( BETA_ISM_MEDIUM_IMP * bits_CoreCoder[ch] ); tmp1 = BASOP_Util_Divide1616_Scale( bits_CoreCoder[ch], 5, &exp ); tmp = shr( mult( tmp1, 16384 ), ( 15 - exp + 12 ) - 15 ); tmp = extract_l( Mpy_32_32( BETA_ISM_MEDIUM_IMP_BY_8_Q31, L_shl( bits_CoreCoder[ch], Q3 ) ) ); tmp = s_max( limit, tmp ); } ELSE /* ism_imp[ch] == ISM_HIGH_IMP */ Loading lib_com/ivas_masa_com.c +5 −5 Original line number Diff line number Diff line Loading @@ -179,7 +179,7 @@ void ivas_masa_set_elements_fx( const Word32 ism_total_brate /* i : initial ISM total bitrate */ ) { Word16 tmp, tmp_e; Word16 tmp; IF( EQ_16( nchan_transport, 2 ) ) { Loading Loading @@ -232,12 +232,12 @@ void ivas_masa_set_elements_fx( move16(); } } tmp = BASOP_Util_Divide3216_Scale( ivas_total_brate, FRAMES_PER_SEC, &tmp_e ); hQMetaData->bits_frame_nominal = shr( tmp, negate( add( 1, tmp_e ) ) ); // Q0 /* hQMetaData->bits_frame_nominal = (int16_t) ( ivas_total_brate / FRAMES_PER_SEC ); */ hQMetaData->bits_frame_nominal = extract_l( Mpy_32_32( ivas_total_brate, ONE_BY_FRAMES_PER_SEC_Q31 ) ); IF( EQ_16( ivas_format, MASA_ISM_FORMAT ) && ( EQ_16( ism_mode, ISM_MASA_MODE_MASA_ONE_OBJ ) || EQ_16( ism_mode, ISM_MASA_MODE_PARAM_ONE_OBJ ) || EQ_16( ism_mode, ISM_MASA_MODE_DISC ) ) ) { tmp = BASOP_Util_Divide3216_Scale( ism_total_brate, FRAMES_PER_SEC, &tmp_e ); tmp = shr( tmp, negate( add( 1, tmp_e ) ) ); // Q0 /* hQMetaData->bits_frame_nominal -= (int16_t) ( ism_total_brate / FRAMES_PER_SEC ); */ tmp = extract_l( Mpy_32_32( ism_total_brate, ONE_BY_FRAMES_PER_SEC_Q31 ) ); hQMetaData->bits_frame_nominal = sub( hQMetaData->bits_frame_nominal, tmp ); } } Loading Loading
lib_com/cnst.h +2 −1 Original line number Diff line number Diff line Loading @@ -575,7 +575,7 @@ enum #define FRAMES_PER_SEC 50 #ifdef IVAS_FLOAT_FIXED #define MAX_PARAM_SPATIAL_SUB_FRAMES_PER_SEC 200 //(FRAMES_PER_SEC * MAX_PARAM_SPATIAL_SUBFRAMES) #define ONE_BY_FRAMES_PER_SEC_Q31 ((Word32)(0x028F5C29)) #define ONE_BY_FRAMES_PER_SEC_Q31 ( 42949673 ) #define FRAMES_PER_SEC_BY_2 (FRAMES_PER_SEC >> 1) #endif #define INV_FRAME_PER_SEC_Q15 656 Loading Loading @@ -607,6 +607,7 @@ enum #define N_WS2N_FRAMES 40 /* number of frames for attenuation during the band-width switching */ #define N_NS2W_FRAMES 20 /* number of frames for attenuation during the band-width switching */ #define ONE_BY_N_NS2W_FRAMES_Q15 ( 1638 ) /*----------------------------------------------------------------------------------* * Coder types (only for ACELP core when not running in AMR-WB IO mode) Loading
lib_com/ivas_cnst.h +2 −0 Original line number Diff line number Diff line Loading @@ -1681,6 +1681,8 @@ typedef enum #define DEG_360_IN_Q22 (360 << Q22) #define DEG_180_IN_Q22 (180 << Q22) #define DEG_90_IN_Q22 (90 << Q22) #define ONE_BY_360_Q31 ( 5965232 ) #define ONE_BY_180_Q31 ( 11930465 ) /* ----- Enums - TD Renderer ----- */ Loading
lib_com/ivas_dirac_com.c +3 −4 Original line number Diff line number Diff line Loading @@ -639,10 +639,9 @@ void ivas_get_dirac_sba_max_md_bits_fx( } ELSE { //*bits_frame_nominal = (int16_t) ( sba_total_brate / FRAMES_PER_SEC ); Word16 tmp_exp = 0, tmp; tmp = BASOP_Util_Divide3232_Scale( sba_total_brate, FRAMES_PER_SEC, &tmp_exp ); *bits_frame_nominal = shr( tmp, 15 - tmp_exp ); /* *bits_frame_nominal = (int16_t) ( sba_total_brate / FRAMES_PER_SEC ); */ *bits_frame_nominal = extract_l( Mpy_32_32( sba_total_brate, ONE_BY_FRAMES_PER_SEC_Q31 ) ); move16(); *metadata_max_bits = MAX16B; /* no limit */ } Word32 var1 = L_mult0( *metadata_max_bits, nbands ); Loading
lib_com/ivas_ism_com.c +7 −6 Original line number Diff line number Diff line Loading @@ -53,7 +53,10 @@ #define BITS_ISM_INACTIVE ( BRATE_ISM_INACTIVE / FRAMES_PER_SEC ) #define BETA_ISM_LOW_IMP 0.6f #define BETA_ISM_LOW_IMP_Q31 ( 1288490189 ) #define BETA_ISM_MEDIUM_IMP 0.8f #define BETA_ISM_MEDIUM_IMP_Q31 ( 1717986918 ) #define BETA_ISM_MEDIUM_IMP_BY_8_Q31 ( 214748365 ) #define MAX_BRATE_TCX_32k 48000 #define BITS_IVAS_512k ( IVAS_512k / FRAMES_PER_SEC ) Loading Loading @@ -585,15 +588,13 @@ ivas_error ivas_ism_config_fx( ELSE IF( EQ_16( ism_imp[ch], ISM_LOW_IMP ) ) { // tmp = (Word16) ( BETA_ISM_LOW_IMP * bits_CoreCoder[ch] ); tmp1 = BASOP_Util_Divide1616_Scale( bits_CoreCoder[ch], 5, &exp ); tmp = shr( mult( tmp1, 24576 ), ( 15 - exp + 13 ) - 15 ); tmp = extract_l( Mpy_32_32( BETA_ISM_LOW_IMP_Q31, bits_CoreCoder[ch] ) ); tmp = s_max( limit, tmp ); } ELSE IF( EQ_16( ism_imp[ch], ISM_MEDIUM_IMP ) ) { // tmp = (Word16) ( BETA_ISM_MEDIUM_IMP * bits_CoreCoder[ch] ); tmp1 = BASOP_Util_Divide1616_Scale( bits_CoreCoder[ch], 5, &exp ); tmp = shr( mult( tmp1, 16384 ), ( 15 - exp + 12 ) - 15 ); tmp = extract_l( Mpy_32_32( BETA_ISM_MEDIUM_IMP_BY_8_Q31, L_shl( bits_CoreCoder[ch], Q3 ) ) ); tmp = s_max( limit, tmp ); } ELSE /* ism_imp[ch] == ISM_HIGH_IMP */ Loading
lib_com/ivas_masa_com.c +5 −5 Original line number Diff line number Diff line Loading @@ -179,7 +179,7 @@ void ivas_masa_set_elements_fx( const Word32 ism_total_brate /* i : initial ISM total bitrate */ ) { Word16 tmp, tmp_e; Word16 tmp; IF( EQ_16( nchan_transport, 2 ) ) { Loading Loading @@ -232,12 +232,12 @@ void ivas_masa_set_elements_fx( move16(); } } tmp = BASOP_Util_Divide3216_Scale( ivas_total_brate, FRAMES_PER_SEC, &tmp_e ); hQMetaData->bits_frame_nominal = shr( tmp, negate( add( 1, tmp_e ) ) ); // Q0 /* hQMetaData->bits_frame_nominal = (int16_t) ( ivas_total_brate / FRAMES_PER_SEC ); */ hQMetaData->bits_frame_nominal = extract_l( Mpy_32_32( ivas_total_brate, ONE_BY_FRAMES_PER_SEC_Q31 ) ); IF( EQ_16( ivas_format, MASA_ISM_FORMAT ) && ( EQ_16( ism_mode, ISM_MASA_MODE_MASA_ONE_OBJ ) || EQ_16( ism_mode, ISM_MASA_MODE_PARAM_ONE_OBJ ) || EQ_16( ism_mode, ISM_MASA_MODE_DISC ) ) ) { tmp = BASOP_Util_Divide3216_Scale( ism_total_brate, FRAMES_PER_SEC, &tmp_e ); tmp = shr( tmp, negate( add( 1, tmp_e ) ) ); // Q0 /* hQMetaData->bits_frame_nominal -= (int16_t) ( ism_total_brate / FRAMES_PER_SEC ); */ tmp = extract_l( Mpy_32_32( ism_total_brate, ONE_BY_FRAMES_PER_SEC_Q31 ) ); hQMetaData->bits_frame_nominal = sub( hQMetaData->bits_frame_nominal, tmp ); } } Loading