Merge pull request #27612 from eplankin:icv_update_2022.2

Update IPP integration (v2022.2.0) #27612

Please merge together with https://github.com/opencv/opencv_3rdparty/pull/102
Supported IPP version was updated to IPP 2022.2.0 for Linux and Windows.

Previous update: https://github.com/opencv/opencv/pull/27354
This commit is contained in:
eplankin 2025-08-25 17:14:03 +02:00 committed by GitHub
parent 7a4bd85299
commit 3e404004e0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 14 additions and 6 deletions

View File

@ -2,7 +2,7 @@ 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 "767426b2a40a011eb2fa7f44c677c13e60e205ad") set(IPPICV_COMMIT "c934a2a15a6df020446ac3dfa07e3acf72b63a8f")
# Define actual ICV versions # Define actual ICV versions
if(APPLE) if(APPLE)
set(IPPICV_COMMIT "0cc4aa06bf2bef4b05d237c69a5a96b9cd0cb85a") set(IPPICV_COMMIT "0cc4aa06bf2bef4b05d237c69a5a96b9cd0cb85a")
@ -14,8 +14,8 @@ function(download_ippicv root_var)
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_2022.1.0_lnx_intel64_20250130_general.tgz") set(OPENCV_ICV_NAME "ippicv_2022.2.0_lnx_intel64_20250730_general.tgz")
set(OPENCV_ICV_HASH "98ff71fc242d52db9cc538388e502f57") set(OPENCV_ICV_HASH "55d18247d8ef707f009b94f69d77b948")
else() else()
if(ANDROID) if(ANDROID)
set(IPPICV_COMMIT "c7c6d527dde5fee7cb914ee9e4e20f7436aab3a1") set(IPPICV_COMMIT "c7c6d527dde5fee7cb914ee9e4e20f7436aab3a1")
@ -31,8 +31,8 @@ function(download_ippicv root_var)
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_2022.1.0_win_intel64_20250130_general.zip") set(OPENCV_ICV_NAME "ippicv_2022.2.0_win_intel64_20250730_general.zip")
set(OPENCV_ICV_HASH "67a611ab22410f392239bddff6f91df7") set(OPENCV_ICV_HASH "7c0973976ab0716bc33f03a76a50017f")
else() else()
set(IPPICV_COMMIT "7f55c0c26be418d494615afca15218566775c725") set(IPPICV_COMMIT "7f55c0c26be418d494615afca15218566775c725")
set(OPENCV_ICV_NAME "ippicv_2021.12.0_win_ia32_20240425_general.zip") set(OPENCV_ICV_NAME "ippicv_2021.12.0_win_ia32_20240425_general.zip")

View File

@ -60,6 +60,14 @@ namespace cv
#undef USE_IPP_DFT #undef USE_IPP_DFT
#endif #endif
#if defined USE_IPP_DFT
#if IPP_VERSION_X100 >= 202220
#define IPP_DISABLE_DFT32F ((depth == CV_32F) && (ippCPUID_AVX512F&cv::ipp::getIppFeatures()))
#else
#define IPP_DISABLE_DFT32F false
#endif
#endif
/****************************************************************************************\ /****************************************************************************************\
Discrete Fourier Transform Discrete Fourier Transform
\****************************************************************************************/ \****************************************************************************************/
@ -3258,7 +3266,7 @@ public:
opt.ipp_spec = 0; opt.ipp_spec = 0;
opt.ipp_work = 0; opt.ipp_work = 0;
if( CV_IPP_CHECK_COND && (opt.n*count >= 64) ) // use IPP DFT if available if( CV_IPP_CHECK_COND && (opt.n*count >= 64) && !IPP_DISABLE_DFT32F) // use IPP DFT if available
{ {
int ipp_norm_flag = (flags & CV_HAL_DFT_SCALE) == 0 ? 8 : opt.isInverse ? 2 : 1; int ipp_norm_flag = (flags & CV_HAL_DFT_SCALE) == 0 ? 8 : opt.isInverse ? 2 : 1;
int specsize=0, initsize=0, worksize=0; int specsize=0, initsize=0, worksize=0;