Disabled some IPP calls of cvtColor since it breaks OCL accuracy tests
authorAlexander Karsakov <alexander.karsakov@itseez.com>
Mon, 11 Aug 2014 11:46:27 +0000 (15:46 +0400)
committerAlexander Karsakov <alexander.karsakov@itseez.com>
Mon, 11 Aug 2014 11:52:53 +0000 (15:52 +0400)
with test_loop_times=30

modules/imgproc/src/color.cpp

index db5bcd3..71f163b 100644 (file)
@@ -3381,18 +3381,16 @@ void cv::cvtColor( InputArray _src, OutputArray _dst, int code, int dcn )
             _dst.create(sz, CV_8UC2);
             dst = _dst.getMat();
 
-#ifdef HAVE_IPP
+#if defined(HAVE_IPP) && 0 // breaks OCL accuracy tests
             CV_SUPPRESS_DEPRECATED_START
-#if 0
+
             if (code == CV_BGR2BGR565 && scn == 3)
             {
                 if (CvtColorIPPLoop(src, dst, IPPGeneralFunctor((ippiGeneralFunc)ippiBGRToBGR565_8u16u_C3R)))
                     return;
                 setIppErrorStatus();
             }
-            else
-#endif
-            if (code == CV_BGRA2BGR565 && scn == 4)
+            else if (code == CV_BGRA2BGR565 && scn == 4)
             {
                 if (CvtColorIPPLoopCopy(src, dst,
                                         IPPReorderGeneralFunctor(ippiSwapChannelsC4C3RTab[depth],
@@ -3787,6 +3785,7 @@ void cv::cvtColor( InputArray _src, OutputArray _dst, int code, int dcn )
 #if defined (HAVE_IPP) && (IPP_VERSION_MAJOR >= 7)
             if( depth == CV_8U || depth == CV_16U )
             {
+#if 0 // breaks OCL accuracy tests
                 if( code == CV_BGR2HSV_FULL && scn == 3 )
                 {
                     if( CvtColorIPPLoopCopy(src, dst, IPPReorderGeneralFunctor(ippiSwapChannelsC3RTab[depth], ippiRGB2HSVTab[depth], 2, 1, 0, depth)) )
@@ -3799,15 +3798,16 @@ void cv::cvtColor( InputArray _src, OutputArray _dst, int code, int dcn )
                         return;
                     setIppErrorStatus();
                 }
-                else if( code == CV_RGB2HSV_FULL && scn == 3 && depth == CV_16U )
+                else if( code == CV_RGB2HSV_FULL && scn == 4 )
                 {
-                    if( CvtColorIPPLoopCopy(src, dst, IPPGeneralFunctor(ippiRGB2HSVTab[depth])) )
+                    if( CvtColorIPPLoop(src, dst, IPPReorderGeneralFunctor(ippiSwapChannelsC4C3RTab[depth], ippiRGB2HSVTab[depth], 0, 1, 2, depth)) )
                         return;
                     setIppErrorStatus();
-                }
-                else if( code == CV_RGB2HSV_FULL && scn == 4 )
+                } else
+#endif
+                if( code == CV_RGB2HSV_FULL && scn == 3 && depth == CV_16U )
                 {
-                    if( CvtColorIPPLoop(src, dst, IPPReorderGeneralFunctor(ippiSwapChannelsC4C3RTab[depth], ippiRGB2HSVTab[depth], 0, 1, 2, depth)) )
+                    if( CvtColorIPPLoopCopy(src, dst, IPPGeneralFunctor(ippiRGB2HSVTab[depth])) )
                         return;
                     setIppErrorStatus();
                 }