diff --git a/3rdparty/ippicv/ippicv.cmake b/3rdparty/ippicv/ippicv.cmake index 257af6fcc6..08cf091db3 100644 --- a/3rdparty/ippicv/ippicv.cmake +++ b/3rdparty/ippicv/ippicv.cmake @@ -2,32 +2,32 @@ function(download_ippicv root_var) set(${root_var} "" PARENT_SCOPE) # Commit SHA in the opencv_3rdparty repo - set(IPPICV_COMMIT "a56b6ac6f030c312b2dce17430eef13aed9af274") + set(IPPICV_COMMIT "1224f78da6684df04397ac0f40c961ed37f79ccb") # Define actual ICV versions if(APPLE) set(OPENCV_ICV_PLATFORM "macosx") set(OPENCV_ICV_PACKAGE_SUBDIR "ippicv_mac") - set(OPENCV_ICV_NAME "ippicv_2020_mac_intel64_20191018_general.tgz") - set(OPENCV_ICV_HASH "1c3d675c2a2395d094d523024896e01b") + set(OPENCV_ICV_NAME "ippicv_2021.8_mac_intel64_20230330_general.tgz") + set(OPENCV_ICV_HASH "d2b234a86af1b616958619a4560356d9") elseif((UNIX AND NOT ANDROID) OR (UNIX AND ANDROID_ABI MATCHES "x86")) set(OPENCV_ICV_PLATFORM "linux") set(OPENCV_ICV_PACKAGE_SUBDIR "ippicv_lnx") if(X86_64) - set(OPENCV_ICV_NAME "ippicv_2020_lnx_intel64_20191018_general.tgz") - set(OPENCV_ICV_HASH "7421de0095c7a39162ae13a6098782f9") + set(OPENCV_ICV_NAME "ippicv_2021.8_lnx_intel64_20230330_general.tgz") + set(OPENCV_ICV_HASH "43219bdc7e3805adcbe3a1e2f1f3ef3b") else() - set(OPENCV_ICV_NAME "ippicv_2020_lnx_ia32_20191018_general.tgz") - set(OPENCV_ICV_HASH "ad189a940fb60eb71f291321322fe3e8") + set(OPENCV_ICV_NAME "ippicv_2021.8_lnx_ia32_20230330_general.tgz") + set(OPENCV_ICV_HASH "165875443d72faa3fd2146869da90d07") endif() elseif(WIN32 AND NOT ARM) set(OPENCV_ICV_PLATFORM "windows") set(OPENCV_ICV_PACKAGE_SUBDIR "ippicv_win") if(X86_64) - set(OPENCV_ICV_NAME "ippicv_2020_win_intel64_20191018_general.zip") - set(OPENCV_ICV_HASH "879741a7946b814455eee6c6ffde2984") + set(OPENCV_ICV_NAME "ippicv_2021.8_win_intel64_20230330_general.zip") + set(OPENCV_ICV_HASH "71e4f58de939f0348ec7fb58ffb17dbf") else() - set(OPENCV_ICV_NAME "ippicv_2020_win_ia32_20191018_general.zip") - set(OPENCV_ICV_HASH "cd39bdf0c2e1cac9a61101dad7a2413e") + set(OPENCV_ICV_NAME "ippicv_2021.8_win_ia32_20230330_general.zip") + set(OPENCV_ICV_HASH "57fd4648cfe64eae9e2ad9d50173a553") endif() else() return() diff --git a/modules/core/src/count_non_zero.dispatch.cpp b/modules/core/src/count_non_zero.dispatch.cpp index cd3ed84350..d0ce1ef989 100644 --- a/modules/core/src/count_non_zero.dispatch.cpp +++ b/modules/core/src/count_non_zero.dispatch.cpp @@ -62,10 +62,6 @@ static bool ipp_countNonZero( Mat &src, int &res ) { CV_INSTRUMENT_REGION_IPP(); - // see https://github.com/opencv/opencv/issues/17453 - if (src.dims <= 2 && src.step > 520000 && cv::ipp::getIppTopFeatures() == ippCPUID_SSE42) - return false; - #if IPP_VERSION_X100 < 201801 // Poor performance of SSE42 if(cv::ipp::getIppTopFeatures() == ippCPUID_SSE42) diff --git a/modules/core/src/mathfuncs_core.dispatch.cpp b/modules/core/src/mathfuncs_core.dispatch.cpp index 3c53ab1c38..e48f84ebbe 100644 --- a/modules/core/src/mathfuncs_core.dispatch.cpp +++ b/modules/core/src/mathfuncs_core.dispatch.cpp @@ -7,10 +7,6 @@ #include "mathfuncs_core.simd.hpp" #include "mathfuncs_core.simd_declarations.hpp" // defines CV_CPU_DISPATCH_MODES_ALL=AVX2,...,BASELINE based on CMakeLists.txt content - -#define IPP_DISABLE_MAGNITUDE_32F 1 // accuracy: https://github.com/opencv/opencv/issues/19506 - - namespace cv { namespace hal { ///////////////////////////////////// ATAN2 //////////////////////////////////// @@ -48,25 +44,8 @@ void magnitude32f(const float* x, const float* y, float* mag, int len) CV_INSTRUMENT_REGION(); CALL_HAL(magnitude32f, cv_hal_magnitude32f, x, y, mag, len); - -#ifdef HAVE_IPP - bool allowIPP = true; -#ifdef IPP_DISABLE_MAGNITUDE_32F - if (cv::ipp::getIppTopFeatures() & ( -#if IPP_VERSION_X100 >= 201700 - ippCPUID_AVX512F | -#endif - ippCPUID_AVX2) - ) - { - allowIPP = (len & 7) == 0; - } -#endif - // SSE42 performance issues - CV_IPP_RUN((IPP_VERSION_X100 > 201800 || cv::ipp::getIppTopFeatures() != ippCPUID_SSE42) && allowIPP, - CV_INSTRUMENT_FUN_IPP(ippsMagnitude_32f, x, y, mag, len) >= 0); -#endif + CV_IPP_RUN(IPP_VERSION_X100 > 201800 || cv::ipp::getIppTopFeatures() != ippCPUID_SSE42, CV_INSTRUMENT_FUN_IPP(ippsMagnitude_32f, x, y, mag, len) >= 0); CV_CPU_DISPATCH(magnitude32f, (x, y, mag, len), CV_CPU_DISPATCH_MODES_ALL); diff --git a/modules/core/src/norm.cpp b/modules/core/src/norm.cpp index fad641554d..cab720bd3f 100644 --- a/modules/core/src/norm.cpp +++ b/modules/core/src/norm.cpp @@ -972,16 +972,6 @@ static bool ipp_norm(InputArray _src1, InputArray _src2, int normType, InputArra type == CV_16UC3 ? (ippiMaskNormDiffFuncC3)ippiNormDiff_L2_16u_C3CMR : type == CV_32FC3 ? (ippiMaskNormDiffFuncC3)ippiNormDiff_L2_32f_C3CMR : 0) : 0; - if (cv::ipp::getIppTopFeatures() & ( -#if IPP_VERSION_X100 >= 201700 - ippCPUID_AVX512F | -#endif - ippCPUID_AVX2) - ) // IPP_DISABLE_NORM_16UC3_mask_small (#11399) - { - if (normType == NORM_L1 && type == CV_16UC3 && sz.width < 16) - return false; - } if( ippiNormDiff_C3CMR ) { Ipp64f norm1, norm2, norm3;