Merge pull request #2854 from ilya-lavrenov:tapi_filter2d

This commit is contained in:
Alexander Alekhin 2014-06-17 16:59:00 +04:00 committed by OpenCV Buildbot
commit 1db9cc3f0d

View File

@ -3219,16 +3219,16 @@ static bool ocl_filter2D( InputArray _src, OutputArray _dst, int ddepth,
((ksize.width < 5 && ksize.height < 5) || ((ksize.width < 5 && ksize.height < 5) ||
(ksize.width == 5 && ksize.height == 5 && cn == 1))) (ksize.width == 5 && ksize.height == 5 && cn == 1)))
{ {
kernelMat.reshape(0, 1); kernelMat = kernelMat.reshape(0, 1);
String kerStr = ocl::kernelToStr(kernelMat, CV_32F); String kerStr = ocl::kernelToStr(kernelMat, CV_32F);
int h = isolated ? sz.height : wholeSize.height; int h = isolated ? sz.height : wholeSize.height;
int w = isolated ? sz.width : wholeSize.width; int w = isolated ? sz.width : wholeSize.width;
if ((w < ksize.width) || (h < ksize.height)) if (w < ksize.width || h < ksize.height)
return false; return false;
// Figure out what vector size to use for loading the pixels. // Figure out what vector size to use for loading the pixels.
int pxLoadNumPixels = ((cn != 1) || sz.width % 4) ? 1 : 4; int pxLoadNumPixels = cn != 1 || sz.width % 4 ? 1 : 4;
int pxLoadVecSize = cn * pxLoadNumPixels; int pxLoadVecSize = cn * pxLoadNumPixels;
// Figure out how many pixels per work item to compute in X and Y // Figure out how many pixels per work item to compute in X and Y
@ -3273,8 +3273,8 @@ static bool ocl_filter2D( InputArray _src, OutputArray _dst, int ddepth,
ocl::typeToStr(ddepth), ocl::typeToStr(wtype), ocl::typeToStr(wdepth), ocl::typeToStr(ddepth), ocl::typeToStr(wtype), ocl::typeToStr(wdepth),
ocl::convertTypeStr(sdepth, wdepth, cn, cvt[0]), ocl::convertTypeStr(sdepth, wdepth, cn, cvt[0]),
ocl::convertTypeStr(wdepth, ddepth, cn, cvt[1]), kerStr.c_str()); ocl::convertTypeStr(wdepth, ddepth, cn, cvt[1]), kerStr.c_str());
cv::String errmsg;
if (!k.create("filter2DSmall", cv::ocl::imgproc::filter2DSmall_oclsrc, build_options, &errmsg)) if (!k.create("filter2DSmall", cv::ocl::imgproc::filter2DSmall_oclsrc, build_options))
return false; return false;
} }
else else