From: Kirill Kornyakov Date: Mon, 21 Nov 2011 05:59:49 +0000 (+0000) Subject: Optimized version of Norm and NormDiff functions with f32 type added X-Git-Tag: accepted/2.0/20130307.220821~1614 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=9fb9d99bb96d2fd18cc50c0435cbd49ff68bb0d2;p=profile%2Fivi%2Fopencv.git Optimized version of Norm and NormDiff functions with f32 type added --- diff --git a/modules/core/src/stat.cpp b/modules/core/src/stat.cpp index 4bd1fc6..67b48d5 100644 --- a/modules/core/src/stat.cpp +++ b/modules/core/src/stat.cpp @@ -1175,7 +1175,7 @@ static NormFunc normTab[3][8] = }, { (NormFunc)GET_OPTIMIZED(normL2_8u), (NormFunc)normL2_8s, (NormFunc)normL2_16u, (NormFunc)normL2_16s, - (NormFunc)normL2_32s, (NormFunc)normL2_32f, (NormFunc)normL2_64f, 0 + (NormFunc)normL2_32s, (NormFunc)GET_OPTIMIZED(normL2_32f), (NormFunc)normL2_64f, 0 } }; @@ -1184,19 +1184,19 @@ static NormDiffFunc normDiffTab[3][8] = { (NormDiffFunc)GET_OPTIMIZED(normDiffInf_8u), (NormDiffFunc)normDiffInf_8s, (NormDiffFunc)normDiffInf_16u, (NormDiffFunc)normDiffInf_16s, - (NormDiffFunc)normDiffInf_32s, (NormDiffFunc)normDiffInf_32f, + (NormDiffFunc)normDiffInf_32s, (NormDiffFunc)GET_OPTIMIZED(normDiffInf_32f), (NormDiffFunc)normDiffInf_64f, 0 }, { (NormDiffFunc)GET_OPTIMIZED(normDiffL1_8u), (NormDiffFunc)normDiffL1_8s, (NormDiffFunc)normDiffL1_16u, (NormDiffFunc)normDiffL1_16s, - (NormDiffFunc)normDiffL1_32s, (NormDiffFunc)normDiffL1_32f, + (NormDiffFunc)normDiffL1_32s, (NormDiffFunc)GET_OPTIMIZED(normDiffL1_32f), (NormDiffFunc)normDiffL1_64f, 0 }, { (NormDiffFunc)GET_OPTIMIZED(normDiffL2_8u), (NormDiffFunc)normDiffL2_8s, (NormDiffFunc)normDiffL2_16u, (NormDiffFunc)normDiffL2_16s, - (NormDiffFunc)normDiffL2_32s, (NormDiffFunc)normDiffL2_32f, + (NormDiffFunc)normDiffL2_32s, (NormDiffFunc)GET_OPTIMIZED(normDiffL2_32f), (NormDiffFunc)normDiffL2_64f, 0 } }; @@ -1221,19 +1221,20 @@ double cv::norm( InputArray _src, int normType, InputArray _mask ) if( normType == NORM_L2 ) { double result = 0; - normL2_32f(data, 0, &result, (int)len, 1); + GET_OPTIMIZED(normL2_32f)(data, 0, &result, (int)len, 1); return std::sqrt(result); } if( normType == NORM_L1 ) { double result = 0; - normL1_32f(data, 0, &result, (int)len, 1); + GET_OPTIMIZED(normL1_32f)(data, 0, &result, (int)len, 1); return result; } { float result = 0; - normInf_32f(data, 0, &result, (int)len, 1); + GET_OPTIMIZED(normInf_32f)(data, 0, &result, (int)len, 1); return result; + } } } @@ -1274,8 +1275,8 @@ double cv::norm( InputArray _src, int normType, InputArray _mask ) for( j = 0; j < total; j += blockSize ) { int bsz = std::min(total - j, blockSize); - func( ptrs[0], ptrs[1], (uchar*)ibuf, bsz, cn ); - count += bsz; + func( ptrs[0], ptrs[1], (uchar*)ibuf, bsz, cn ); + count += bsz; if( blockSum && (count + blockSize >= intSumBlockSize || (i+1 >= it.nplanes && j+bsz >= total)) ) { result.d += isum; @@ -1328,18 +1329,18 @@ double cv::norm( InputArray _src1, InputArray _src2, int normType, InputArray _m if( normType == NORM_L2 ) { double result = 0; - normDiffL2_32f(data1, data2, 0, &result, (int)len, 1); + GET_OPTIMIZED(normDiffL2_32f)(data1, data2, 0, &result, (int)len, 1); return std::sqrt(result); } if( normType == NORM_L1 ) { double result = 0; - normDiffL1_32f(data1, data2, 0, &result, (int)len, 1); + GET_OPTIMIZED(normDiffL1_32f)(data1, data2, 0, &result, (int)len, 1); return result; } { float result = 0; - normDiffInf_32f(data1, data2, 0, &result, (int)len, 1); + GET_OPTIMIZED(normDiffInf_32f)(data1, data2, 0, &result, (int)len, 1); return result; } }