mirror of
https://github.com/opencv/opencv.git
synced 2025-06-10 11:03:03 +08:00
Merge pull request #23443 from eplankin:3.4
* Update IPPICV binaries (20230330)
* Revert "core(IPP): disable some ippsMagnitude_32f calls"
This reverts commit 8069a6b4f8
.
* Reverted changes in norm() and count_non_zero()
This commit is contained in:
parent
4c2584d729
commit
fd8b346c3e
22
3rdparty/ippicv/ippicv.cmake
vendored
22
3rdparty/ippicv/ippicv.cmake
vendored
@ -2,32 +2,32 @@ function(download_ippicv root_var)
|
|||||||
set(${root_var} "" PARENT_SCOPE)
|
set(${root_var} "" PARENT_SCOPE)
|
||||||
|
|
||||||
# Commit SHA in the opencv_3rdparty repo
|
# Commit SHA in the opencv_3rdparty repo
|
||||||
set(IPPICV_COMMIT "a56b6ac6f030c312b2dce17430eef13aed9af274")
|
set(IPPICV_COMMIT "1224f78da6684df04397ac0f40c961ed37f79ccb")
|
||||||
# Define actual ICV versions
|
# Define actual ICV versions
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
set(OPENCV_ICV_PLATFORM "macosx")
|
set(OPENCV_ICV_PLATFORM "macosx")
|
||||||
set(OPENCV_ICV_PACKAGE_SUBDIR "ippicv_mac")
|
set(OPENCV_ICV_PACKAGE_SUBDIR "ippicv_mac")
|
||||||
set(OPENCV_ICV_NAME "ippicv_2020_mac_intel64_20191018_general.tgz")
|
set(OPENCV_ICV_NAME "ippicv_2021.8_mac_intel64_20230330_general.tgz")
|
||||||
set(OPENCV_ICV_HASH "1c3d675c2a2395d094d523024896e01b")
|
set(OPENCV_ICV_HASH "d2b234a86af1b616958619a4560356d9")
|
||||||
elseif((UNIX AND NOT ANDROID) OR (UNIX AND ANDROID_ABI MATCHES "x86"))
|
elseif((UNIX AND NOT ANDROID) OR (UNIX AND ANDROID_ABI MATCHES "x86"))
|
||||||
set(OPENCV_ICV_PLATFORM "linux")
|
set(OPENCV_ICV_PLATFORM "linux")
|
||||||
set(OPENCV_ICV_PACKAGE_SUBDIR "ippicv_lnx")
|
set(OPENCV_ICV_PACKAGE_SUBDIR "ippicv_lnx")
|
||||||
if(X86_64)
|
if(X86_64)
|
||||||
set(OPENCV_ICV_NAME "ippicv_2020_lnx_intel64_20191018_general.tgz")
|
set(OPENCV_ICV_NAME "ippicv_2021.8_lnx_intel64_20230330_general.tgz")
|
||||||
set(OPENCV_ICV_HASH "7421de0095c7a39162ae13a6098782f9")
|
set(OPENCV_ICV_HASH "43219bdc7e3805adcbe3a1e2f1f3ef3b")
|
||||||
else()
|
else()
|
||||||
set(OPENCV_ICV_NAME "ippicv_2020_lnx_ia32_20191018_general.tgz")
|
set(OPENCV_ICV_NAME "ippicv_2021.8_lnx_ia32_20230330_general.tgz")
|
||||||
set(OPENCV_ICV_HASH "ad189a940fb60eb71f291321322fe3e8")
|
set(OPENCV_ICV_HASH "165875443d72faa3fd2146869da90d07")
|
||||||
endif()
|
endif()
|
||||||
elseif(WIN32 AND NOT ARM)
|
elseif(WIN32 AND NOT ARM)
|
||||||
set(OPENCV_ICV_PLATFORM "windows")
|
set(OPENCV_ICV_PLATFORM "windows")
|
||||||
set(OPENCV_ICV_PACKAGE_SUBDIR "ippicv_win")
|
set(OPENCV_ICV_PACKAGE_SUBDIR "ippicv_win")
|
||||||
if(X86_64)
|
if(X86_64)
|
||||||
set(OPENCV_ICV_NAME "ippicv_2020_win_intel64_20191018_general.zip")
|
set(OPENCV_ICV_NAME "ippicv_2021.8_win_intel64_20230330_general.zip")
|
||||||
set(OPENCV_ICV_HASH "879741a7946b814455eee6c6ffde2984")
|
set(OPENCV_ICV_HASH "71e4f58de939f0348ec7fb58ffb17dbf")
|
||||||
else()
|
else()
|
||||||
set(OPENCV_ICV_NAME "ippicv_2020_win_ia32_20191018_general.zip")
|
set(OPENCV_ICV_NAME "ippicv_2021.8_win_ia32_20230330_general.zip")
|
||||||
set(OPENCV_ICV_HASH "cd39bdf0c2e1cac9a61101dad7a2413e")
|
set(OPENCV_ICV_HASH "57fd4648cfe64eae9e2ad9d50173a553")
|
||||||
endif()
|
endif()
|
||||||
else()
|
else()
|
||||||
return()
|
return()
|
||||||
|
@ -62,10 +62,6 @@ static bool ipp_countNonZero( Mat &src, int &res )
|
|||||||
{
|
{
|
||||||
CV_INSTRUMENT_REGION_IPP();
|
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
|
#if IPP_VERSION_X100 < 201801
|
||||||
// Poor performance of SSE42
|
// Poor performance of SSE42
|
||||||
if(cv::ipp::getIppTopFeatures() == ippCPUID_SSE42)
|
if(cv::ipp::getIppTopFeatures() == ippCPUID_SSE42)
|
||||||
|
@ -7,10 +7,6 @@
|
|||||||
#include "mathfuncs_core.simd.hpp"
|
#include "mathfuncs_core.simd.hpp"
|
||||||
#include "mathfuncs_core.simd_declarations.hpp" // defines CV_CPU_DISPATCH_MODES_ALL=AVX2,...,BASELINE based on CMakeLists.txt content
|
#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 {
|
namespace cv { namespace hal {
|
||||||
|
|
||||||
///////////////////////////////////// ATAN2 ////////////////////////////////////
|
///////////////////////////////////// ATAN2 ////////////////////////////////////
|
||||||
@ -48,25 +44,8 @@ void magnitude32f(const float* x, const float* y, float* mag, int len)
|
|||||||
CV_INSTRUMENT_REGION();
|
CV_INSTRUMENT_REGION();
|
||||||
|
|
||||||
CALL_HAL(magnitude32f, cv_hal_magnitude32f, x, y, mag, len);
|
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
|
// SSE42 performance issues
|
||||||
CV_IPP_RUN((IPP_VERSION_X100 > 201800 || cv::ipp::getIppTopFeatures() != ippCPUID_SSE42) && allowIPP,
|
CV_IPP_RUN(IPP_VERSION_X100 > 201800 || cv::ipp::getIppTopFeatures() != ippCPUID_SSE42, CV_INSTRUMENT_FUN_IPP(ippsMagnitude_32f, x, y, mag, len) >= 0);
|
||||||
CV_INSTRUMENT_FUN_IPP(ippsMagnitude_32f, x, y, mag, len) >= 0);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
CV_CPU_DISPATCH(magnitude32f, (x, y, mag, len),
|
CV_CPU_DISPATCH(magnitude32f, (x, y, mag, len),
|
||||||
CV_CPU_DISPATCH_MODES_ALL);
|
CV_CPU_DISPATCH_MODES_ALL);
|
||||||
|
@ -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_16UC3 ? (ippiMaskNormDiffFuncC3)ippiNormDiff_L2_16u_C3CMR :
|
||||||
type == CV_32FC3 ? (ippiMaskNormDiffFuncC3)ippiNormDiff_L2_32f_C3CMR :
|
type == CV_32FC3 ? (ippiMaskNormDiffFuncC3)ippiNormDiff_L2_32f_C3CMR :
|
||||||
0) : 0;
|
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 )
|
if( ippiNormDiff_C3CMR )
|
||||||
{
|
{
|
||||||
Ipp64f norm1, norm2, norm3;
|
Ipp64f norm1, norm2, norm3;
|
||||||
|
Loading…
Reference in New Issue
Block a user