Loading .gitlab-ci.yml +6 −0 Original line number Diff line number Diff line Loading @@ -2163,13 +2163,19 @@ ivas-interop-on-merge-request: - *update-scripts-repo - *update-ltv-repo - *complexity-measurements-setup # delete previous jobs logfiles if present (-f flag ensures return calue of 0 even in first run where this folder is not present) - rm -rf COMPLEXITY/logs - which coan allow_failure: exit_codes: - 123 artifacts: name: "$CI_JOB_NAME--$CI_COMMIT_REF_NAME--sha-$CI_COMMIT_SHA" when: always expire_in: 2 week paths: - $CI_JOB_NAME-public - COMPLEXITY/logs complexity-stereo-in-stereo-out: extends: Loading apps/encoder.c +2 −28 Original line number Diff line number Diff line Loading @@ -384,13 +384,11 @@ int main( goto cleanup; } #ifdef SUPPORT_FORCE_TCX10_TCX20 #ifdef DEBUGGING if ( arg.forcedMode == IVAS_ENC_FORCE_TCX10 && totalBitrate < 48000 ) { fprintf( stderr, "Warning: Enforcing the TCX10 mode is only supported for bitrates higher or equal than 48 kbps!\n\n" ); } #endif #endif /*------------------------------------------------------------------------------------------* Loading Loading @@ -1111,7 +1109,6 @@ static bool parseCmdlIVAS_enc( } else { #ifdef SUPPORT_FORCE_TCX10_TCX20 if ( arg->forcedMode == IVAS_ENC_FORCE_TCX10 ) { strcpy( stmp, "TCX10" ); Loading @@ -1126,9 +1123,6 @@ static bool parseCmdlIVAS_enc( } fprintf( stdout, "Forcing codec to: %s\n", stmp ); #else fprintf( stdout, "Forcing codec to: %s\n", argv[i + 1] ); #endif } #endif Loading Loading @@ -2114,24 +2108,14 @@ static IVAS_ENC_FORCED_MODE parseForcedMode( { return IVAS_ENC_FORCE_GSC; } if ( ( strcmp( forcedModeChar, "TCX" ) == 0 ) || ( strcmp( forcedModeChar, "'TCX'" ) == 0 ) #ifdef SUPPORT_FORCE_TCX10_TCX20 || ( strcmp( forcedModeChar, "TCX20" ) == 0 ) || ( strcmp( forcedModeChar, "'TCX20'" ) == 0 ) #endif ) if ( ( strcmp( forcedModeChar, "TCX" ) == 0 ) || ( strcmp( forcedModeChar, "'TCX'" ) == 0 ) || ( strcmp( forcedModeChar, "TCX20" ) == 0 ) || ( strcmp( forcedModeChar, "'TCX20'" ) == 0 ) ) { #ifdef SUPPORT_FORCE_TCX10_TCX20 return IVAS_ENC_FORCE_TCX20; #else return IVAS_ENC_FORCE_TCX; #endif } #ifdef SUPPORT_FORCE_TCX10_TCX20 if ( ( strcmp( forcedModeChar, "TCX10" ) == 0 ) || ( strcmp( forcedModeChar, "'TCX10'" ) == 0 ) ) { return IVAS_ENC_FORCE_TCX10; } #endif else if ( ( strcmp( forcedModeChar, "HQ" ) == 0 ) || ( strcmp( forcedModeChar, "'HQ'" ) == 0 ) ) { return IVAS_ENC_FORCE_HQ; Loading Loading @@ -2174,24 +2158,14 @@ static IVAS_ENC_FORCED_MODE parseForcedMode( { return IVAS_ENC_FORCE_GSC; } if ( ( strcmp( forcedModeChar, "TCX" ) == 0 ) || ( strcmp( forcedModeChar, "'TCX'" ) == 0 ) #ifdef SUPPORT_FORCE_TCX10_TCX20 || ( strcmp( forcedModeChar, "TCX20" ) == 0 ) || ( strcmp( forcedModeChar, "'TCX20'" ) == 0 ) #endif ) if ( ( strcmp( forcedModeChar, "TCX" ) == 0 ) || ( strcmp( forcedModeChar, "'TCX'" ) == 0 ) || ( strcmp( forcedModeChar, "TCX20" ) == 0 ) || ( strcmp( forcedModeChar, "'TCX20'" ) == 0 ) ) { #ifdef SUPPORT_FORCE_TCX10_TCX20 return IVAS_ENC_FORCE_TCX20; #else return IVAS_ENC_FORCE_TCX; #endif } #ifdef SUPPORT_FORCE_TCX10_TCX20 if ( ( strcmp( forcedModeChar, "TCX10" ) == 0 ) || ( strcmp( forcedModeChar, "'TCX10'" ) == 0 ) ) { return IVAS_ENC_FORCE_TCX10; } #endif if ( ( strcmp( forcedModeChar, "HQ" ) == 0 ) || ( strcmp( forcedModeChar, "'HQ'" ) == 0 ) ) { return IVAS_ENC_FORCE_HQ; Loading lib_com/arith_coder.c +0 −23 Original line number Diff line number Diff line Loading @@ -243,10 +243,7 @@ void tcx_arith_scale_envelope( Word16 statesi, bits; Word32 mean, a, s, L_tmp; Word16 mean_e, tmp, tmp2; #ifdef BASOP_NOGLOB Flag Overflow; #endif /* BASOP_NOGLOB */ lob_bits = 0; move16(); Loading @@ -271,11 +268,7 @@ void tcx_arith_scale_envelope( tmp = norm_l( env[k] ); tmp2 = sub( 15, tmp ); #ifndef BASOP_NOGLOB tmp = Inv16( round_fx( L_shl( env[k], tmp ) ), &tmp2 ); #else /* BASOP_NOGLOB */ tmp = Inv16( round_fx_o( L_shl( env[k], tmp ), &Overflow ), &tmp2 ); #endif /* BASOP_NOGLOB */ ienv[k] = L_shl( L_deposit_h( tmp ), sub( tmp2, 15 ) ); /* Q16 */ move32(); mean = L_add( mean, ienv[k] ); Loading Loading @@ -309,11 +302,7 @@ void tcx_arith_scale_envelope( b_e = add( b_e, mean_e ); /* scale = (-b + sqrtf(b*b - 4.0f*a*0.035f)) / (2.0f * a); */ #ifndef BASOP_NOGLOB tmp = round_fx( BASOP_Util_Add_Mant32Exp( L_mult( b, b ), shl( b_e, 1 ), Mpy_32_16( a, FL2WORD16( -4.0f * 0.035f ) ), a_e, &tmp2 ) ); #else tmp = round_fx_o( BASOP_Util_Add_Mant32Exp( L_mult( b, b ), shl( b_e, 1 ), Mpy_32_16( a, FL2WORD16( -4.0f * 0.035f ) ), a_e, &tmp2 ), &Overflow ); #endif IF( tmp <= 0 ) { Loading @@ -332,11 +321,7 @@ void tcx_arith_scale_envelope( tmp2 = BASOP_Util_Add_MantExp( negate( b ), b_e, tmp, tmp2, &scale ); scale = BASOP_Util_Divide1616_Scale( scale, round_fx( a ), &tmp ); #ifndef BASOP_NOGLOB scale = shl( scale, sub( sub( add( tmp, tmp2 ), a_e ), 1 ) ); /* Q15 */ #else scale = shl_o( scale, sub( sub( add( tmp, tmp2 ), a_e ), 1 ), &Overflow ); /* Q15 */ #endif /* iscale = 1.0f / scale; */ iscale_e = 0; Loading Loading @@ -385,11 +370,7 @@ void tcx_arith_scale_envelope( L_tmp = L_add( L_tmp, L_shl( Mpy_32_16( env[k], mult_r( FL2WORD16( 0.035f ), iscale ) ), iscale_e ) ); tmp = norm_l( L_tmp ); #ifndef BASOP_NOGLOB statesi = mult_r( statesi, round_fx( L_shl( L_tmp, tmp ) ) ); #else /* BASOP_NOGLOB */ statesi = mult_r( statesi, round_fx_o( L_shl( L_tmp, tmp ), &Overflow ) ); #endif /* BASOP_NOGLOB */ bits = add( bits, sub( 15, tmp ) ); tmp = norm_s( statesi ); Loading Loading @@ -489,11 +470,7 @@ void tcx_arith_scale_envelope( *s_env_e = sub( add( 15, iscale_e ), tmp ); move16(); BASOP_SATURATE_WARNING_OFF; #ifndef BASOP_NOGLOB a = L_shl( 1265000, sub( 15, *s_env_e ) ); #else /* BASOP_NOGLOB */ a = L_shl_o( 1265000, sub( 15, *s_env_e ), &Overflow ); #endif /* BASOP_NOGLOB */ BASOP_SATURATE_WARNING_ON; FOR( k = 0; k < L_frame; k++ ) Loading lib_com/basop32.c +0 −239 File changed.Preview size limit exceeded, changes collapsed. Show changes lib_com/basop32.h +31 −107 Original line number Diff line number Diff line Loading @@ -86,17 +86,12 @@ | Constants and Globals | |___________________________________________________________________________| */ #ifndef BASOP_NOGLOB extern Flag Overflow, Overflow2; extern Flag Carry; #else /* BASOP_NOGLOB */ /* DISABLED TO AVOID GLOBAL VARIABLES */ /* extern Flag BASOP_Overflow, BASOP_Overflow2; extern Flag BASOP_Carry; */ #endif /* BASOP_NOGLOB */ #define BASOP_SATURATE_WARNING_ON #define BASOP_SATURATE_WARNING_OFF #define BASOP_SATURATE_ERROR_ON Loading @@ -116,23 +111,7 @@ extern Flag BASOP_Carry; |___________________________________________________________________________| */ #ifndef BASOP_NOGLOB Word16 add( Word16 var1, Word16 var2 ); /* Short add, 1 */ Word16 sub( Word16 var1, Word16 var2 ); /* Short sub, 1 */ Word16 abs_s( Word16 var1 ); /* Short abs, 1 */ Word16 shl( Word16 var1, Word16 var2 ); /* Short shift left, 1 */ Word16 shr( Word16 var1, Word16 var2 ); /* Short shift right, 1 */ Word16 mult( Word16 var1, Word16 var2 ); /* Short mult, 1 */ Word32 L_mult( Word16 var1, Word16 var2 ); /* Long mult, 1 */ Word16 negate( Word16 var1 ); /* Short negate, 1 */ Word16 extract_h( Word32 L_var1 ); /* Extract high, 1 */ Word16 extract_l( Word32 L_var1 ); /* Extract low, 1 */ Word16 round_fx( Word32 L_var1 ); /* Round, 1 */ Word32 L_mac( Word32 L_var3, Word16 var1, Word16 var2 ); /* Mac, 1 */ Word32 L_msu( Word32 L_var3, Word16 var1, Word16 var2 ); /* Msu, 1 */ Word32 L_macNs( Word32 L_var3, Word16 var1, Word16 var2 ); /* Mac without sat, 1 */ #else /* BASOP_NOGLOB */ Word16 add( Word16 var1, Word16 var2 ); /* Short add, 1 */ Word16 sub( Word16 var1, Word16 var2 ); /* Short sub, 1 */ Word16 abs_s( Word16 var1 ); /* Short abs, 1 */ Loading @@ -146,29 +125,10 @@ Word16 extract_l( Word32 L_var1 ); /* Word16 round_fx( Word32 L_var1 ); /* Round, 1 */ Word32 L_mac( Word32 L_var3, Word16 var1, Word16 var2 ); /* Mac, 1 */ Word32 L_msu( Word32 L_var3, Word16 var1, Word16 var2 ); /* Msu, 1 */ Word32 DEPR_L_macNs( Word32 L_var3, Word16 var1, Word16 var2, Flag *Carry ); /* Mac without sat, 1 */ #endif /* BASOP_NOGLOB */ #ifndef BASOP_NOGLOB Word32 L_msuNs( Word32 L_var3, Word16 var1, Word16 var2 ); /* Msu without sat, 1 */ #else /* BASOP_NOGLOB */ Word32 DEPR_L_msuNs( Word32 L_var3, Word16 var1, Word16 var2, Flag *Carry ); /* Msu without sat, 1 */ #endif /* BASOP_NOGLOB */ #ifndef BASOP_NOGLOB Word32 L_add( Word32 L_var1, Word32 L_var2 ); /* Long add, 1 */ Word32 L_sub( Word32 L_var1, Word32 L_var2 ); /* Long sub, 1 */ Word32 L_add_c( Word32 L_var1, Word32 L_var2 ); /* Long add with c, 2 */ Word32 L_sub_c( Word32 L_var1, Word32 L_var2 ); /* Long sub with c, 2 */ Word32 L_negate( Word32 L_var1 ); /* Long negate, 1 */ Word16 mult_r( Word16 var1, Word16 var2 ); /* Mult with round, 1 */ Word32 L_shl( Word32 L_var1, Word16 var2 ); /* Long shift left, 1 */ Word32 L_shr( Word32 L_var1, Word16 var2 ); /* Long shift right, 1 */ Word16 shr_r( Word16 var1, Word16 var2 ); /* Shift right with round, 2 */ #else /* BASOP_NOGLOB */ Word32 DEPR_L_macNs( Word32 L_var3, Word16 var1, Word16 var2, Flag *Carry ); /* Mac without sat, 1 */ Word32 DEPR_L_msuNs( Word32 L_var3, Word16 var1, Word16 var2, Flag *Carry ); /* Msu without sat, 1 */ Word32 L_add( Word32 L_var1, Word32 L_var2 ); /* Long add, 1 */ Word32 L_sub( Word32 L_var1, Word32 L_var2 ); /* Long sub, 1 */ Word32 DEPR_L_add_c( Word32 L_var1, Word32 L_var2, Flag *Carry ); /* Long add with c, 2 */ Loading @@ -179,64 +139,30 @@ Word32 L_shl( Word32 L_var1, Word16 var2 ); /* Word32 L_shr( Word32 L_var1, Word16 var2 ); /* Long shift right, 1 */ Word16 shr_r( Word16 var1, Word16 var2 ); /* Shift right with round, 2 */ #endif /* BASOP_NOGLOB */ #ifndef BASOP_NOGLOB Word16 mac_r( Word32 L_var3, Word16 var1, Word16 var2 ); /* Mac with rounding, 1 */ #else /* BASOP_NOGLOB */ Word16 mac_r( Word32 L_var3, Word16 var1, Word16 var2 ); /* Mac with rounding, 1 */ #endif /* BASOP_NOGLOB */ #ifndef BASOP_NOGLOB Word16 msu_r( Word32 L_var3, Word16 var1, Word16 var2 ); /* Msu with rounding, 1 */ #else /* BASOP_NOGLOB */ Word16 msu_r( Word32 L_var3, Word16 var1, Word16 var2 ); /* Msu with rounding, 1 */ #endif /* BASOP_NOGLOB */ #ifndef BASOP_NOGLOB Word32 L_deposit_h( Word16 var1 ); /* 16 bit var1 -> MSB, 1 */ Word32 L_deposit_l( Word16 var1 ); /* 16 bit var1 -> LSB, 1 */ #else /* BASOP_NOGLOB */ Word32 L_deposit_h( Word16 var1 ); /* 16 bit var1 -> MSB, 1 */ Word32 L_deposit_l( Word16 var1 ); /* 16 bit var1 -> LSB, 1 */ #endif /* BASOP_NOGLOB */ #ifndef BASOP_NOGLOB Word32 L_shr_r( Word32 L_var1, Word16 var2 ); /* Long shift right with round, 3 */ #else /* BASOP_NOGLOB */ Word32 L_shr_r( Word32 L_var1, Word16 var2 ); /* Long shift right with round, 3 */ #endif /* BASOP_NOGLOB */ #ifndef BASOP_NOGLOB Word32 L_abs( Word32 L_var1 ); /* Long abs, 1 */ Word32 L_sat( Word32 L_var1 ); /* Long saturation, 4 */ Word16 norm_s( Word16 var1 ); /* Short norm, 1 */ Word16 div_s( Word16 var1, Word16 var2 ); /* Short division, 18 */ Word16 norm_l( Word32 L_var1 ); /* Long norm, 1 */ #else /* BASOP_NOGLOB */ Word32 L_abs( Word32 L_var1 ); /* Long abs, 1 */ Word32 DEPR_L_sat_co( Word32 L_var1, Flag Overflow, Flag Carry ); /* Long saturation, 4 */ Word16 norm_s( Word16 var1 ); /* Short norm, 1 */ Word16 div_s( Word16 var1, Word16 var2 ); /* Short division, 18 */ Word16 norm_l( Word32 L_var1 ); /* Long norm, 1 */ #endif /* BASOP_NOGLOB */ /* * Additional G.723.1 operators */ #ifndef BASOP_NOGLOB Word32 L_mls( Word32, Word16 ); /* Weight FFS; currently assigned 5 */ Word16 div_l( Word32, Word16 ); /* Weight FFS; currently assigned 32 */ Word16 i_mult( Word16 a, Word16 b ); /* Weight FFS; currently assigned 3 */ #else /* BASOP_NOGLOB */ Word32 L_mls( Word32, Word16 ); /* Weight FFS; currently assigned 5 */ Word16 div_l( Word32, Word16 ); /* Weight FFS; currently assigned 32 */ Word16 DEPR_i_mult( Word16 a, Word16 b ); /* Weight FFS; currently assigned 3 */ #endif /* BASOP_NOGLOB */ /* * New shiftless operators, not used in G.729/G.723.1 Loading @@ -244,7 +170,6 @@ Word16 DEPR_i_mult( Word16 a, Word16 b ); /* Word32 L_mult0( Word16 v1, Word16 v2 ); /* 32-bit Multiply w/o shift 1 */ Word32 L_mac0( Word32 L_v3, Word16 v1, Word16 v2 ); /* 32-bit Mac w/o shift 1 */ Word32 L_msu0( Word32 L_v3, Word16 v1, Word16 v2 ); /* 32-bit Msu w/o shift 1 */ #ifdef BASOP_NOGLOB /* * Overflowing operators Loading @@ -267,7 +192,6 @@ Word32 L_msu0_o( Word32 L_var3, Word16 var1, Word16 var2, Flag *Overflow ); Word16 mult_ro( Word16 var1, Word16 var2, Flag *Overflow ); Word16 mac_ro( Word32 L_var3, Word16 var1, Word16 var2, Flag *Overflow ); Word16 msu_ro( Word32 L_var3, Word16 var1, Word16 var2, Flag *Overflow ); #endif /* BASOP_NOGLOB */ #endif /* ifndef _BASIC_OP_H */ Loading Loading
.gitlab-ci.yml +6 −0 Original line number Diff line number Diff line Loading @@ -2163,13 +2163,19 @@ ivas-interop-on-merge-request: - *update-scripts-repo - *update-ltv-repo - *complexity-measurements-setup # delete previous jobs logfiles if present (-f flag ensures return calue of 0 even in first run where this folder is not present) - rm -rf COMPLEXITY/logs - which coan allow_failure: exit_codes: - 123 artifacts: name: "$CI_JOB_NAME--$CI_COMMIT_REF_NAME--sha-$CI_COMMIT_SHA" when: always expire_in: 2 week paths: - $CI_JOB_NAME-public - COMPLEXITY/logs complexity-stereo-in-stereo-out: extends: Loading
apps/encoder.c +2 −28 Original line number Diff line number Diff line Loading @@ -384,13 +384,11 @@ int main( goto cleanup; } #ifdef SUPPORT_FORCE_TCX10_TCX20 #ifdef DEBUGGING if ( arg.forcedMode == IVAS_ENC_FORCE_TCX10 && totalBitrate < 48000 ) { fprintf( stderr, "Warning: Enforcing the TCX10 mode is only supported for bitrates higher or equal than 48 kbps!\n\n" ); } #endif #endif /*------------------------------------------------------------------------------------------* Loading Loading @@ -1111,7 +1109,6 @@ static bool parseCmdlIVAS_enc( } else { #ifdef SUPPORT_FORCE_TCX10_TCX20 if ( arg->forcedMode == IVAS_ENC_FORCE_TCX10 ) { strcpy( stmp, "TCX10" ); Loading @@ -1126,9 +1123,6 @@ static bool parseCmdlIVAS_enc( } fprintf( stdout, "Forcing codec to: %s\n", stmp ); #else fprintf( stdout, "Forcing codec to: %s\n", argv[i + 1] ); #endif } #endif Loading Loading @@ -2114,24 +2108,14 @@ static IVAS_ENC_FORCED_MODE parseForcedMode( { return IVAS_ENC_FORCE_GSC; } if ( ( strcmp( forcedModeChar, "TCX" ) == 0 ) || ( strcmp( forcedModeChar, "'TCX'" ) == 0 ) #ifdef SUPPORT_FORCE_TCX10_TCX20 || ( strcmp( forcedModeChar, "TCX20" ) == 0 ) || ( strcmp( forcedModeChar, "'TCX20'" ) == 0 ) #endif ) if ( ( strcmp( forcedModeChar, "TCX" ) == 0 ) || ( strcmp( forcedModeChar, "'TCX'" ) == 0 ) || ( strcmp( forcedModeChar, "TCX20" ) == 0 ) || ( strcmp( forcedModeChar, "'TCX20'" ) == 0 ) ) { #ifdef SUPPORT_FORCE_TCX10_TCX20 return IVAS_ENC_FORCE_TCX20; #else return IVAS_ENC_FORCE_TCX; #endif } #ifdef SUPPORT_FORCE_TCX10_TCX20 if ( ( strcmp( forcedModeChar, "TCX10" ) == 0 ) || ( strcmp( forcedModeChar, "'TCX10'" ) == 0 ) ) { return IVAS_ENC_FORCE_TCX10; } #endif else if ( ( strcmp( forcedModeChar, "HQ" ) == 0 ) || ( strcmp( forcedModeChar, "'HQ'" ) == 0 ) ) { return IVAS_ENC_FORCE_HQ; Loading Loading @@ -2174,24 +2158,14 @@ static IVAS_ENC_FORCED_MODE parseForcedMode( { return IVAS_ENC_FORCE_GSC; } if ( ( strcmp( forcedModeChar, "TCX" ) == 0 ) || ( strcmp( forcedModeChar, "'TCX'" ) == 0 ) #ifdef SUPPORT_FORCE_TCX10_TCX20 || ( strcmp( forcedModeChar, "TCX20" ) == 0 ) || ( strcmp( forcedModeChar, "'TCX20'" ) == 0 ) #endif ) if ( ( strcmp( forcedModeChar, "TCX" ) == 0 ) || ( strcmp( forcedModeChar, "'TCX'" ) == 0 ) || ( strcmp( forcedModeChar, "TCX20" ) == 0 ) || ( strcmp( forcedModeChar, "'TCX20'" ) == 0 ) ) { #ifdef SUPPORT_FORCE_TCX10_TCX20 return IVAS_ENC_FORCE_TCX20; #else return IVAS_ENC_FORCE_TCX; #endif } #ifdef SUPPORT_FORCE_TCX10_TCX20 if ( ( strcmp( forcedModeChar, "TCX10" ) == 0 ) || ( strcmp( forcedModeChar, "'TCX10'" ) == 0 ) ) { return IVAS_ENC_FORCE_TCX10; } #endif if ( ( strcmp( forcedModeChar, "HQ" ) == 0 ) || ( strcmp( forcedModeChar, "'HQ'" ) == 0 ) ) { return IVAS_ENC_FORCE_HQ; Loading
lib_com/arith_coder.c +0 −23 Original line number Diff line number Diff line Loading @@ -243,10 +243,7 @@ void tcx_arith_scale_envelope( Word16 statesi, bits; Word32 mean, a, s, L_tmp; Word16 mean_e, tmp, tmp2; #ifdef BASOP_NOGLOB Flag Overflow; #endif /* BASOP_NOGLOB */ lob_bits = 0; move16(); Loading @@ -271,11 +268,7 @@ void tcx_arith_scale_envelope( tmp = norm_l( env[k] ); tmp2 = sub( 15, tmp ); #ifndef BASOP_NOGLOB tmp = Inv16( round_fx( L_shl( env[k], tmp ) ), &tmp2 ); #else /* BASOP_NOGLOB */ tmp = Inv16( round_fx_o( L_shl( env[k], tmp ), &Overflow ), &tmp2 ); #endif /* BASOP_NOGLOB */ ienv[k] = L_shl( L_deposit_h( tmp ), sub( tmp2, 15 ) ); /* Q16 */ move32(); mean = L_add( mean, ienv[k] ); Loading Loading @@ -309,11 +302,7 @@ void tcx_arith_scale_envelope( b_e = add( b_e, mean_e ); /* scale = (-b + sqrtf(b*b - 4.0f*a*0.035f)) / (2.0f * a); */ #ifndef BASOP_NOGLOB tmp = round_fx( BASOP_Util_Add_Mant32Exp( L_mult( b, b ), shl( b_e, 1 ), Mpy_32_16( a, FL2WORD16( -4.0f * 0.035f ) ), a_e, &tmp2 ) ); #else tmp = round_fx_o( BASOP_Util_Add_Mant32Exp( L_mult( b, b ), shl( b_e, 1 ), Mpy_32_16( a, FL2WORD16( -4.0f * 0.035f ) ), a_e, &tmp2 ), &Overflow ); #endif IF( tmp <= 0 ) { Loading @@ -332,11 +321,7 @@ void tcx_arith_scale_envelope( tmp2 = BASOP_Util_Add_MantExp( negate( b ), b_e, tmp, tmp2, &scale ); scale = BASOP_Util_Divide1616_Scale( scale, round_fx( a ), &tmp ); #ifndef BASOP_NOGLOB scale = shl( scale, sub( sub( add( tmp, tmp2 ), a_e ), 1 ) ); /* Q15 */ #else scale = shl_o( scale, sub( sub( add( tmp, tmp2 ), a_e ), 1 ), &Overflow ); /* Q15 */ #endif /* iscale = 1.0f / scale; */ iscale_e = 0; Loading Loading @@ -385,11 +370,7 @@ void tcx_arith_scale_envelope( L_tmp = L_add( L_tmp, L_shl( Mpy_32_16( env[k], mult_r( FL2WORD16( 0.035f ), iscale ) ), iscale_e ) ); tmp = norm_l( L_tmp ); #ifndef BASOP_NOGLOB statesi = mult_r( statesi, round_fx( L_shl( L_tmp, tmp ) ) ); #else /* BASOP_NOGLOB */ statesi = mult_r( statesi, round_fx_o( L_shl( L_tmp, tmp ), &Overflow ) ); #endif /* BASOP_NOGLOB */ bits = add( bits, sub( 15, tmp ) ); tmp = norm_s( statesi ); Loading Loading @@ -489,11 +470,7 @@ void tcx_arith_scale_envelope( *s_env_e = sub( add( 15, iscale_e ), tmp ); move16(); BASOP_SATURATE_WARNING_OFF; #ifndef BASOP_NOGLOB a = L_shl( 1265000, sub( 15, *s_env_e ) ); #else /* BASOP_NOGLOB */ a = L_shl_o( 1265000, sub( 15, *s_env_e ), &Overflow ); #endif /* BASOP_NOGLOB */ BASOP_SATURATE_WARNING_ON; FOR( k = 0; k < L_frame; k++ ) Loading
lib_com/basop32.h +31 −107 Original line number Diff line number Diff line Loading @@ -86,17 +86,12 @@ | Constants and Globals | |___________________________________________________________________________| */ #ifndef BASOP_NOGLOB extern Flag Overflow, Overflow2; extern Flag Carry; #else /* BASOP_NOGLOB */ /* DISABLED TO AVOID GLOBAL VARIABLES */ /* extern Flag BASOP_Overflow, BASOP_Overflow2; extern Flag BASOP_Carry; */ #endif /* BASOP_NOGLOB */ #define BASOP_SATURATE_WARNING_ON #define BASOP_SATURATE_WARNING_OFF #define BASOP_SATURATE_ERROR_ON Loading @@ -116,23 +111,7 @@ extern Flag BASOP_Carry; |___________________________________________________________________________| */ #ifndef BASOP_NOGLOB Word16 add( Word16 var1, Word16 var2 ); /* Short add, 1 */ Word16 sub( Word16 var1, Word16 var2 ); /* Short sub, 1 */ Word16 abs_s( Word16 var1 ); /* Short abs, 1 */ Word16 shl( Word16 var1, Word16 var2 ); /* Short shift left, 1 */ Word16 shr( Word16 var1, Word16 var2 ); /* Short shift right, 1 */ Word16 mult( Word16 var1, Word16 var2 ); /* Short mult, 1 */ Word32 L_mult( Word16 var1, Word16 var2 ); /* Long mult, 1 */ Word16 negate( Word16 var1 ); /* Short negate, 1 */ Word16 extract_h( Word32 L_var1 ); /* Extract high, 1 */ Word16 extract_l( Word32 L_var1 ); /* Extract low, 1 */ Word16 round_fx( Word32 L_var1 ); /* Round, 1 */ Word32 L_mac( Word32 L_var3, Word16 var1, Word16 var2 ); /* Mac, 1 */ Word32 L_msu( Word32 L_var3, Word16 var1, Word16 var2 ); /* Msu, 1 */ Word32 L_macNs( Word32 L_var3, Word16 var1, Word16 var2 ); /* Mac without sat, 1 */ #else /* BASOP_NOGLOB */ Word16 add( Word16 var1, Word16 var2 ); /* Short add, 1 */ Word16 sub( Word16 var1, Word16 var2 ); /* Short sub, 1 */ Word16 abs_s( Word16 var1 ); /* Short abs, 1 */ Loading @@ -146,29 +125,10 @@ Word16 extract_l( Word32 L_var1 ); /* Word16 round_fx( Word32 L_var1 ); /* Round, 1 */ Word32 L_mac( Word32 L_var3, Word16 var1, Word16 var2 ); /* Mac, 1 */ Word32 L_msu( Word32 L_var3, Word16 var1, Word16 var2 ); /* Msu, 1 */ Word32 DEPR_L_macNs( Word32 L_var3, Word16 var1, Word16 var2, Flag *Carry ); /* Mac without sat, 1 */ #endif /* BASOP_NOGLOB */ #ifndef BASOP_NOGLOB Word32 L_msuNs( Word32 L_var3, Word16 var1, Word16 var2 ); /* Msu without sat, 1 */ #else /* BASOP_NOGLOB */ Word32 DEPR_L_msuNs( Word32 L_var3, Word16 var1, Word16 var2, Flag *Carry ); /* Msu without sat, 1 */ #endif /* BASOP_NOGLOB */ #ifndef BASOP_NOGLOB Word32 L_add( Word32 L_var1, Word32 L_var2 ); /* Long add, 1 */ Word32 L_sub( Word32 L_var1, Word32 L_var2 ); /* Long sub, 1 */ Word32 L_add_c( Word32 L_var1, Word32 L_var2 ); /* Long add with c, 2 */ Word32 L_sub_c( Word32 L_var1, Word32 L_var2 ); /* Long sub with c, 2 */ Word32 L_negate( Word32 L_var1 ); /* Long negate, 1 */ Word16 mult_r( Word16 var1, Word16 var2 ); /* Mult with round, 1 */ Word32 L_shl( Word32 L_var1, Word16 var2 ); /* Long shift left, 1 */ Word32 L_shr( Word32 L_var1, Word16 var2 ); /* Long shift right, 1 */ Word16 shr_r( Word16 var1, Word16 var2 ); /* Shift right with round, 2 */ #else /* BASOP_NOGLOB */ Word32 DEPR_L_macNs( Word32 L_var3, Word16 var1, Word16 var2, Flag *Carry ); /* Mac without sat, 1 */ Word32 DEPR_L_msuNs( Word32 L_var3, Word16 var1, Word16 var2, Flag *Carry ); /* Msu without sat, 1 */ Word32 L_add( Word32 L_var1, Word32 L_var2 ); /* Long add, 1 */ Word32 L_sub( Word32 L_var1, Word32 L_var2 ); /* Long sub, 1 */ Word32 DEPR_L_add_c( Word32 L_var1, Word32 L_var2, Flag *Carry ); /* Long add with c, 2 */ Loading @@ -179,64 +139,30 @@ Word32 L_shl( Word32 L_var1, Word16 var2 ); /* Word32 L_shr( Word32 L_var1, Word16 var2 ); /* Long shift right, 1 */ Word16 shr_r( Word16 var1, Word16 var2 ); /* Shift right with round, 2 */ #endif /* BASOP_NOGLOB */ #ifndef BASOP_NOGLOB Word16 mac_r( Word32 L_var3, Word16 var1, Word16 var2 ); /* Mac with rounding, 1 */ #else /* BASOP_NOGLOB */ Word16 mac_r( Word32 L_var3, Word16 var1, Word16 var2 ); /* Mac with rounding, 1 */ #endif /* BASOP_NOGLOB */ #ifndef BASOP_NOGLOB Word16 msu_r( Word32 L_var3, Word16 var1, Word16 var2 ); /* Msu with rounding, 1 */ #else /* BASOP_NOGLOB */ Word16 msu_r( Word32 L_var3, Word16 var1, Word16 var2 ); /* Msu with rounding, 1 */ #endif /* BASOP_NOGLOB */ #ifndef BASOP_NOGLOB Word32 L_deposit_h( Word16 var1 ); /* 16 bit var1 -> MSB, 1 */ Word32 L_deposit_l( Word16 var1 ); /* 16 bit var1 -> LSB, 1 */ #else /* BASOP_NOGLOB */ Word32 L_deposit_h( Word16 var1 ); /* 16 bit var1 -> MSB, 1 */ Word32 L_deposit_l( Word16 var1 ); /* 16 bit var1 -> LSB, 1 */ #endif /* BASOP_NOGLOB */ #ifndef BASOP_NOGLOB Word32 L_shr_r( Word32 L_var1, Word16 var2 ); /* Long shift right with round, 3 */ #else /* BASOP_NOGLOB */ Word32 L_shr_r( Word32 L_var1, Word16 var2 ); /* Long shift right with round, 3 */ #endif /* BASOP_NOGLOB */ #ifndef BASOP_NOGLOB Word32 L_abs( Word32 L_var1 ); /* Long abs, 1 */ Word32 L_sat( Word32 L_var1 ); /* Long saturation, 4 */ Word16 norm_s( Word16 var1 ); /* Short norm, 1 */ Word16 div_s( Word16 var1, Word16 var2 ); /* Short division, 18 */ Word16 norm_l( Word32 L_var1 ); /* Long norm, 1 */ #else /* BASOP_NOGLOB */ Word32 L_abs( Word32 L_var1 ); /* Long abs, 1 */ Word32 DEPR_L_sat_co( Word32 L_var1, Flag Overflow, Flag Carry ); /* Long saturation, 4 */ Word16 norm_s( Word16 var1 ); /* Short norm, 1 */ Word16 div_s( Word16 var1, Word16 var2 ); /* Short division, 18 */ Word16 norm_l( Word32 L_var1 ); /* Long norm, 1 */ #endif /* BASOP_NOGLOB */ /* * Additional G.723.1 operators */ #ifndef BASOP_NOGLOB Word32 L_mls( Word32, Word16 ); /* Weight FFS; currently assigned 5 */ Word16 div_l( Word32, Word16 ); /* Weight FFS; currently assigned 32 */ Word16 i_mult( Word16 a, Word16 b ); /* Weight FFS; currently assigned 3 */ #else /* BASOP_NOGLOB */ Word32 L_mls( Word32, Word16 ); /* Weight FFS; currently assigned 5 */ Word16 div_l( Word32, Word16 ); /* Weight FFS; currently assigned 32 */ Word16 DEPR_i_mult( Word16 a, Word16 b ); /* Weight FFS; currently assigned 3 */ #endif /* BASOP_NOGLOB */ /* * New shiftless operators, not used in G.729/G.723.1 Loading @@ -244,7 +170,6 @@ Word16 DEPR_i_mult( Word16 a, Word16 b ); /* Word32 L_mult0( Word16 v1, Word16 v2 ); /* 32-bit Multiply w/o shift 1 */ Word32 L_mac0( Word32 L_v3, Word16 v1, Word16 v2 ); /* 32-bit Mac w/o shift 1 */ Word32 L_msu0( Word32 L_v3, Word16 v1, Word16 v2 ); /* 32-bit Msu w/o shift 1 */ #ifdef BASOP_NOGLOB /* * Overflowing operators Loading @@ -267,7 +192,6 @@ Word32 L_msu0_o( Word32 L_var3, Word16 var1, Word16 var2, Flag *Overflow ); Word16 mult_ro( Word16 var1, Word16 var2, Flag *Overflow ); Word16 mac_ro( Word32 L_var3, Word16 var1, Word16 var2, Flag *Overflow ); Word16 msu_ro( Word32 L_var3, Word16 var1, Word16 var2, Flag *Overflow ); #endif /* BASOP_NOGLOB */ #endif /* ifndef _BASIC_OP_H */ Loading