Loading CMakeLists.txt 0 → 100644 +33 −0 Original line number Diff line number Diff line cmake_minimum_required(VERSION 3.5.0) project(EVS VERSION 0.1.0 LANGUAGES C) set(CMAKE_C_STANDARD 99) include(CTest) enable_testing() set(dirs lib_enc lib_dec lib_com basic_op basic_math lib_debug) include_directories(${dirs}) list(TRANSFORM dirs APPEND "/*.c" OUTPUT_VARIABLE globs) file(GLOB srcs ${globs}) add_library(lib_evs ${srcs}) if(UNIX) target_link_libraries(lib_evs PRIVATE m) endif() add_executable(EVS_cod lib_enc/encoder.c) target_link_libraries(EVS_cod lib_evs) # if(WIN32) # target_link_libraries(EVS_cod Ws2_32) # endif() add_executable(EVS_dec lib_dec/decoder.c) target_link_libraries(EVS_dec lib_evs) # if(WIN32) # target_link_libraries(EVS_dec Ws2_32) # endif() set(CPACK_PROJECT_NAME ${PROJECT_NAME}) set(CPACK_PROJECT_VERSION ${PROJECT_VERSION}) include(CPack) basic_math/oper_32b.c +6 −2 Original line number Diff line number Diff line Loading @@ -134,6 +134,7 @@ Word32 Mpy_32 (Word16 hi1, Word16 lo1, Word16 hi2, Word16 lo2) L_32 = L_mac (L_32, mult (hi1, lo2), 1); L_32 = L_mac (L_32, mult (lo1, hi2), 1); #endif return (L_32); } Loading Loading @@ -163,6 +164,7 @@ Word32 Mac_32 (Word32 L_num, Word16 hi1, Word16 lo1, Word16 hi2, Word16 lo2) Word32 L_32; #ifdef BASOP_NOGLOB Flag Overflow = 0; L_32 = L_mac_o (L_num, hi1, hi2, &Overflow); L_32 = L_mac_o(L_32, mult (hi1, lo2), 1, &Overflow); L_32 = L_mac_o(L_32, mult (lo1, hi2), 1, &Overflow); Loading @@ -171,6 +173,7 @@ Word32 Mac_32 (Word32 L_num, Word16 hi1, Word16 lo1, Word16 hi2, Word16 lo2) L_32 = L_mac (L_32, mult (hi1, lo2), 1); L_32 = L_mac (L_32, mult (lo1, hi2), 1); #endif return (L_32); } Loading Loading @@ -199,6 +202,7 @@ Word32 Sqr_32 (Word16 hi, Word16 lo) Word32 L_32; #ifdef BASOP_NOGLOB Flag Overflow = 0; L_32 = L_mult_o (hi, hi, &Overflow); L_32 = L_mac_o (L_32, mult (hi, lo), 2, &Overflow); #else Loading basic_op/basop32.c +6 −4 Original line number Diff line number Diff line Loading @@ -1882,7 +1882,7 @@ Word32 L_shr (Word32 L_var1, Word16 var2) { |___________________________________________________________________________| */ #ifdef BASOP_NOGLOB Word16 shr_r_o (Word16 var1, Word16 var2, Flag* Overflow) { Word16 shr_ro (Word16 var1, Word16 var2, Flag* Overflow) { #else Word16 shr_r (Word16 var1, Word16 var2) { #endif Loading @@ -1896,6 +1896,7 @@ Word16 shr_r (Word16 var1, Word16 var2) { #else var_out = shr (var1, var2); #endif #if (WMOPS) multiCounter[currCounter].shr--; #endif Loading @@ -1912,9 +1913,10 @@ Word16 shr_r (Word16 var1, Word16 var2) { #endif return (var_out); } #ifdef BASOP_NOGLOB Word16 shr_r(Word16 var1, Word16 var2) { return shr_r_o(var1, var2, NULL); return shr_ro(var1, var2, NULL); } #endif /* BASOP_NOGLOB */ Loading basic_op/basop32.h +1 −1 Original line number Diff line number Diff line Loading @@ -149,7 +149,7 @@ Word16 add_o (Word16 var1, Word16 var2, Flag * Overflow); Word16 sub_o (Word16 var1, Word16 var2, Flag * Overflow); Word16 shl_o (Word16 var1, Word16 var2, Flag * Overflow); Word16 shr_o (Word16 var1, Word16 var2, Flag * Overflow); Word16 shr_r_o(Word16 var1, Word16 var2, Flag* Overflow); Word16 shr_ro(Word16 var1, Word16 var2, Flag* Overflow); Word16 mult_o (Word16 var1, Word16 var2, Flag * Overflow); Word32 L_mult_o (Word16 var1, Word16 var2, Flag * Overflow); Word16 round_fx_o (Word32 L_var1, Flag * Overflow); Loading lib_com/basop_util.c +4 −0 Original line number Diff line number Diff line Loading @@ -228,6 +228,8 @@ void BASOP_Util_Divide_MantExp (Word16 a_m, /*!< Mantissa of dividend Flag Overflow = 0; #endif assert(b_m != 0); /* normalize b */ Loading Loading @@ -380,6 +382,7 @@ static Word32 ISqrt32_common(Word32 m, #ifdef BASOP_NOGLOB Flag Overflow = 0; #endif assert(m >= 0x40000000); #ifdef BASOP_NOGLOB Loading @@ -387,6 +390,7 @@ static Word32 ISqrt32_common(Word32 m, #else m16 = round_fx(m); #endif /* get table index (upper 6 bits minus 32) */ /* index = (m16 >> 25) - 32; */ index = mac_r(-32768 - (32 << 16), m16, 1 << 6); Loading Loading
CMakeLists.txt 0 → 100644 +33 −0 Original line number Diff line number Diff line cmake_minimum_required(VERSION 3.5.0) project(EVS VERSION 0.1.0 LANGUAGES C) set(CMAKE_C_STANDARD 99) include(CTest) enable_testing() set(dirs lib_enc lib_dec lib_com basic_op basic_math lib_debug) include_directories(${dirs}) list(TRANSFORM dirs APPEND "/*.c" OUTPUT_VARIABLE globs) file(GLOB srcs ${globs}) add_library(lib_evs ${srcs}) if(UNIX) target_link_libraries(lib_evs PRIVATE m) endif() add_executable(EVS_cod lib_enc/encoder.c) target_link_libraries(EVS_cod lib_evs) # if(WIN32) # target_link_libraries(EVS_cod Ws2_32) # endif() add_executable(EVS_dec lib_dec/decoder.c) target_link_libraries(EVS_dec lib_evs) # if(WIN32) # target_link_libraries(EVS_dec Ws2_32) # endif() set(CPACK_PROJECT_NAME ${PROJECT_NAME}) set(CPACK_PROJECT_VERSION ${PROJECT_VERSION}) include(CPack)
basic_math/oper_32b.c +6 −2 Original line number Diff line number Diff line Loading @@ -134,6 +134,7 @@ Word32 Mpy_32 (Word16 hi1, Word16 lo1, Word16 hi2, Word16 lo2) L_32 = L_mac (L_32, mult (hi1, lo2), 1); L_32 = L_mac (L_32, mult (lo1, hi2), 1); #endif return (L_32); } Loading Loading @@ -163,6 +164,7 @@ Word32 Mac_32 (Word32 L_num, Word16 hi1, Word16 lo1, Word16 hi2, Word16 lo2) Word32 L_32; #ifdef BASOP_NOGLOB Flag Overflow = 0; L_32 = L_mac_o (L_num, hi1, hi2, &Overflow); L_32 = L_mac_o(L_32, mult (hi1, lo2), 1, &Overflow); L_32 = L_mac_o(L_32, mult (lo1, hi2), 1, &Overflow); Loading @@ -171,6 +173,7 @@ Word32 Mac_32 (Word32 L_num, Word16 hi1, Word16 lo1, Word16 hi2, Word16 lo2) L_32 = L_mac (L_32, mult (hi1, lo2), 1); L_32 = L_mac (L_32, mult (lo1, hi2), 1); #endif return (L_32); } Loading Loading @@ -199,6 +202,7 @@ Word32 Sqr_32 (Word16 hi, Word16 lo) Word32 L_32; #ifdef BASOP_NOGLOB Flag Overflow = 0; L_32 = L_mult_o (hi, hi, &Overflow); L_32 = L_mac_o (L_32, mult (hi, lo), 2, &Overflow); #else Loading
basic_op/basop32.c +6 −4 Original line number Diff line number Diff line Loading @@ -1882,7 +1882,7 @@ Word32 L_shr (Word32 L_var1, Word16 var2) { |___________________________________________________________________________| */ #ifdef BASOP_NOGLOB Word16 shr_r_o (Word16 var1, Word16 var2, Flag* Overflow) { Word16 shr_ro (Word16 var1, Word16 var2, Flag* Overflow) { #else Word16 shr_r (Word16 var1, Word16 var2) { #endif Loading @@ -1896,6 +1896,7 @@ Word16 shr_r (Word16 var1, Word16 var2) { #else var_out = shr (var1, var2); #endif #if (WMOPS) multiCounter[currCounter].shr--; #endif Loading @@ -1912,9 +1913,10 @@ Word16 shr_r (Word16 var1, Word16 var2) { #endif return (var_out); } #ifdef BASOP_NOGLOB Word16 shr_r(Word16 var1, Word16 var2) { return shr_r_o(var1, var2, NULL); return shr_ro(var1, var2, NULL); } #endif /* BASOP_NOGLOB */ Loading
basic_op/basop32.h +1 −1 Original line number Diff line number Diff line Loading @@ -149,7 +149,7 @@ Word16 add_o (Word16 var1, Word16 var2, Flag * Overflow); Word16 sub_o (Word16 var1, Word16 var2, Flag * Overflow); Word16 shl_o (Word16 var1, Word16 var2, Flag * Overflow); Word16 shr_o (Word16 var1, Word16 var2, Flag * Overflow); Word16 shr_r_o(Word16 var1, Word16 var2, Flag* Overflow); Word16 shr_ro(Word16 var1, Word16 var2, Flag* Overflow); Word16 mult_o (Word16 var1, Word16 var2, Flag * Overflow); Word32 L_mult_o (Word16 var1, Word16 var2, Flag * Overflow); Word16 round_fx_o (Word32 L_var1, Flag * Overflow); Loading
lib_com/basop_util.c +4 −0 Original line number Diff line number Diff line Loading @@ -228,6 +228,8 @@ void BASOP_Util_Divide_MantExp (Word16 a_m, /*!< Mantissa of dividend Flag Overflow = 0; #endif assert(b_m != 0); /* normalize b */ Loading Loading @@ -380,6 +382,7 @@ static Word32 ISqrt32_common(Word32 m, #ifdef BASOP_NOGLOB Flag Overflow = 0; #endif assert(m >= 0x40000000); #ifdef BASOP_NOGLOB Loading @@ -387,6 +390,7 @@ static Word32 ISqrt32_common(Word32 m, #else m16 = round_fx(m); #endif /* get table index (upper 6 bits minus 32) */ /* index = (m16 >> 25) - 32; */ index = mac_r(-32768 - (32 << 16), m16, 1 << 6); Loading