From b00f79ac5f8e8e876d9e1969b2e5f5d04c828090 Mon Sep 17 00:00:00 2001 From: Alexander Alekhin Date: Fri, 27 Sep 2013 16:41:25 +0400 Subject: [PATCH] ocl: move program names into opencl_kernels.hpp --- cmake/OpenCVModule.cmake | 8 +- cmake/cl2cpp.cmake | 25 ++- modules/nonfree/src/surf.ocl.cpp | 167 ++++++++++----------- modules/ocl/src/bgfg_mog.cpp | 5 +- modules/ocl/src/blend.cpp | 12 +- modules/ocl/src/brute_force_matcher.cpp | 14 +- modules/ocl/src/build_warps.cpp | 11 +- modules/ocl/src/canny.cpp | 11 +- modules/ocl/src/color.cpp | 9 +- modules/ocl/src/columnsum.cpp | 11 +- modules/ocl/src/fft.cpp | 2 - modules/ocl/src/filtering.cpp | 17 +-- modules/ocl/src/gemm.cpp | 1 - modules/ocl/src/gftt.cpp | 11 +- modules/ocl/src/haar.cpp | 16 +- modules/ocl/src/hog.cpp | 12 +- modules/ocl/src/imgproc.cpp | 21 +-- modules/ocl/src/interpolate_frames.cpp | 5 +- modules/ocl/src/kalman.cpp | 3 +- modules/ocl/src/kmeans.cpp | 13 +- modules/ocl/src/match_template.cpp | 13 +- modules/ocl/src/matrix_operations.cpp | 17 +-- modules/ocl/src/moments.cpp | 5 +- modules/ocl/src/mssegmentation.cpp | 4 +- modules/ocl/src/optical_flow_farneback.cpp | 11 +- modules/ocl/src/pyrdown.cpp | 15 +- modules/ocl/src/pyrlk.cpp | 11 +- modules/ocl/src/pyrup.cpp | 10 +- modules/ocl/src/sort_by_key.cpp | 10 +- modules/ocl/src/split_merge.cpp | 20 +-- modules/ocl/src/stereo_csbp.cpp | 44 +----- modules/ocl/src/stereobm.cpp | 14 +- modules/ocl/src/stereobp.cpp | 18 +-- modules/ocl/src/tvl1flow.cpp | 13 +- modules/superres/src/btv_l1_ocl.cpp | 3 +- 35 files changed, 154 insertions(+), 428 deletions(-) diff --git a/cmake/OpenCVModule.cmake b/cmake/OpenCVModule.cmake index 1d87bc1b88..4ed8cf0c0f 100644 --- a/cmake/OpenCVModule.cmake +++ b/cmake/OpenCVModule.cmake @@ -450,11 +450,11 @@ macro(ocv_glob_module_sources) if(HAVE_OPENCL AND cl_kernels) ocv_include_directories(${OPENCL_INCLUDE_DIRS}) add_custom_command( - OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/kernels.cpp" - COMMAND ${CMAKE_COMMAND} -DCL_DIR="${CMAKE_CURRENT_SOURCE_DIR}/src/opencl" -DOUTPUT="${CMAKE_CURRENT_BINARY_DIR}/kernels.cpp" -P "${OpenCV_SOURCE_DIR}/cmake/cl2cpp.cmake" + OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/opencl_kernels.cpp" "${CMAKE_CURRENT_BINARY_DIR}/opencl_kernels.hpp" + COMMAND ${CMAKE_COMMAND} -DCL_DIR="${CMAKE_CURRENT_SOURCE_DIR}/src/opencl" -DOUTPUT="${CMAKE_CURRENT_BINARY_DIR}/opencl_kernels.cpp" -P "${OpenCV_SOURCE_DIR}/cmake/cl2cpp.cmake" DEPENDS ${cl_kernels} "${OpenCV_SOURCE_DIR}/cmake/cl2cpp.cmake") - source_group("Src\\OpenCL" FILES ${cl_kernels} "${CMAKE_CURRENT_BINARY_DIR}/kernels.cpp") - list(APPEND lib_srcs ${cl_kernels} "${CMAKE_CURRENT_BINARY_DIR}/kernels.cpp") + source_group("OpenCL" FILES ${cl_kernels} "${CMAKE_CURRENT_BINARY_DIR}/opencl_kernels.cpp" "${CMAKE_CURRENT_BINARY_DIR}/opencl_kernels.hpp") + list(APPEND lib_srcs ${cl_kernels} "${CMAKE_CURRENT_BINARY_DIR}/opencl_kernels.cpp" "${CMAKE_CURRENT_BINARY_DIR}/opencl_kernels.hpp") endif() source_group("Src" FILES ${lib_srcs} ${lib_int_hdrs}) diff --git a/cmake/cl2cpp.cmake b/cmake/cl2cpp.cmake index 1e932eabdb..0733a42441 100644 --- a/cmake/cl2cpp.cmake +++ b/cmake/cl2cpp.cmake @@ -1,6 +1,20 @@ file(GLOB cl_list "${CL_DIR}/*.cl" ) +list(SORT cl_list) -file(WRITE ${OUTPUT} "// This file is auto-generated. Do not edit! +string(REPLACE ".cpp" ".hpp" OUTPUT_HPP "${OUTPUT}") +get_filename_component(OUTPUT_HPP_NAME "${OUTPUT_HPP}" NAME) + +set(STR_CPP "// This file is auto-generated. Do not edit! + +#include \"${OUTPUT_HPP_NAME}\" + +namespace cv +{ +namespace ocl +{ +") + +set(STR_HPP "// This file is auto-generated. Do not edit! namespace cv { @@ -29,7 +43,12 @@ foreach(cl ${cl_list}) string(REGEX REPLACE "\"$" "" lines "${lines}") # unneeded " at the eof - file(APPEND ${OUTPUT} "const char* ${cl_filename}=\"${lines};\n") + set(STR_CPP "${STR_CPP}const char* ${cl_filename}=\"${lines};\n") + set(STR_HPP "${STR_HPP}extern const char* ${cl_filename};\n") endforeach() -file(APPEND ${OUTPUT} "}\n}\n") +set(STR_CPP "${STR_CPP}}\n}\n") +set(STR_HPP "${STR_HPP}}\n}\n") + +file(WRITE ${OUTPUT} "${STR_CPP}") +file(WRITE ${OUTPUT_HPP} "${STR_HPP}") diff --git a/modules/nonfree/src/surf.ocl.cpp b/modules/nonfree/src/surf.ocl.cpp index 59eab705d6..d6f72bc7ad 100644 --- a/modules/nonfree/src/surf.ocl.cpp +++ b/modules/nonfree/src/surf.ocl.cpp @@ -43,27 +43,24 @@ // //M*/ #include "precomp.hpp" -#include #ifdef HAVE_OPENCV_OCL +#include +#include "opencl_kernels.hpp" using namespace cv; using namespace cv::ocl; -using namespace std; namespace cv { namespace ocl { - ///////////////////////////OpenCL kernel strings/////////////////////////// - extern const char *surf; - const char noImage2dOption [] = "-D DISABLE_IMAGE2D"; static bool use_image2d = false; static void openCLExecuteKernelSURF(Context *clCxt , const char **source, string kernelName, size_t globalThreads[3], - size_t localThreads[3], vector< pair > &args, int channels, int depth) + size_t localThreads[3], std::vector< std::pair > &args, int channels, int depth) { char optBuf [100] = {0}; char * optBufPtr = optBuf; @@ -486,26 +483,26 @@ void SURF_OCL_Invoker::icvCalcLayerDetAndTrace_gpu(oclMat &det, oclMat &trace, i Context *clCxt = det.clCxt; string kernelName = "icvCalcLayerDetAndTrace"; - vector< pair > args; + std::vector< std::pair > args; if(sumTex) { - args.push_back( make_pair( sizeof(cl_mem), (void *)&sumTex)); + args.push_back( std::make_pair( sizeof(cl_mem), (void *)&sumTex)); } else { - args.push_back( make_pair( sizeof(cl_mem), (void *)&surf_.sum.data)); // if image2d is not supported + args.push_back( std::make_pair( sizeof(cl_mem), (void *)&surf_.sum.data)); // if image2d is not supported } - args.push_back( make_pair( sizeof(cl_mem), (void *)&det.data)); - args.push_back( make_pair( sizeof(cl_mem), (void *)&trace.data)); - args.push_back( make_pair( sizeof(cl_int), (void *)&det.step)); - args.push_back( make_pair( sizeof(cl_int), (void *)&trace.step)); - args.push_back( make_pair( sizeof(cl_int), (void *)&img_rows)); - args.push_back( make_pair( sizeof(cl_int), (void *)&img_cols)); - args.push_back( make_pair( sizeof(cl_int), (void *)&nOctaveLayers)); - args.push_back( make_pair( sizeof(cl_int), (void *)&octave)); - args.push_back( make_pair( sizeof(cl_int), (void *)&c_layer_rows)); - args.push_back( make_pair( sizeof(cl_int), (void *)&surf_.sum.step)); + args.push_back( std::make_pair( sizeof(cl_mem), (void *)&det.data)); + args.push_back( std::make_pair( sizeof(cl_mem), (void *)&trace.data)); + args.push_back( std::make_pair( sizeof(cl_int), (void *)&det.step)); + args.push_back( std::make_pair( sizeof(cl_int), (void *)&trace.step)); + args.push_back( std::make_pair( sizeof(cl_int), (void *)&img_rows)); + args.push_back( std::make_pair( sizeof(cl_int), (void *)&img_cols)); + args.push_back( std::make_pair( sizeof(cl_int), (void *)&nOctaveLayers)); + args.push_back( std::make_pair( sizeof(cl_int), (void *)&octave)); + args.push_back( std::make_pair( sizeof(cl_int), (void *)&c_layer_rows)); + args.push_back( std::make_pair( sizeof(cl_int), (void *)&surf_.sum.step)); size_t localThreads[3] = {16, 16, 1}; size_t globalThreads[3] = @@ -524,35 +521,35 @@ void SURF_OCL_Invoker::icvFindMaximaInLayer_gpu(const oclMat &det, const oclMat Context *clCxt = det.clCxt; string kernelName = useMask ? "icvFindMaximaInLayer_withmask" : "icvFindMaximaInLayer"; - vector< pair > args; + std::vector< std::pair > args; - args.push_back( make_pair( sizeof(cl_mem), (void *)&det.data)); - args.push_back( make_pair( sizeof(cl_mem), (void *)&trace.data)); - args.push_back( make_pair( sizeof(cl_mem), (void *)&maxPosBuffer.data)); - args.push_back( make_pair( sizeof(cl_mem), (void *)&maxCounter.data)); - args.push_back( make_pair( sizeof(cl_int), (void *)&counterOffset)); - args.push_back( make_pair( sizeof(cl_int), (void *)&det.step)); - args.push_back( make_pair( sizeof(cl_int), (void *)&trace.step)); - args.push_back( make_pair( sizeof(cl_int), (void *)&img_rows)); - args.push_back( make_pair( sizeof(cl_int), (void *)&img_cols)); - args.push_back( make_pair( sizeof(cl_int), (void *)&nLayers)); - args.push_back( make_pair( sizeof(cl_int), (void *)&octave)); - args.push_back( make_pair( sizeof(cl_int), (void *)&layer_rows)); - args.push_back( make_pair( sizeof(cl_int), (void *)&layer_cols)); - args.push_back( make_pair( sizeof(cl_int), (void *)&maxCandidates)); - args.push_back( make_pair( sizeof(cl_float), (void *)&surf_.hessianThreshold)); + args.push_back( std::make_pair( sizeof(cl_mem), (void *)&det.data)); + args.push_back( std::make_pair( sizeof(cl_mem), (void *)&trace.data)); + args.push_back( std::make_pair( sizeof(cl_mem), (void *)&maxPosBuffer.data)); + args.push_back( std::make_pair( sizeof(cl_mem), (void *)&maxCounter.data)); + args.push_back( std::make_pair( sizeof(cl_int), (void *)&counterOffset)); + args.push_back( std::make_pair( sizeof(cl_int), (void *)&det.step)); + args.push_back( std::make_pair( sizeof(cl_int), (void *)&trace.step)); + args.push_back( std::make_pair( sizeof(cl_int), (void *)&img_rows)); + args.push_back( std::make_pair( sizeof(cl_int), (void *)&img_cols)); + args.push_back( std::make_pair( sizeof(cl_int), (void *)&nLayers)); + args.push_back( std::make_pair( sizeof(cl_int), (void *)&octave)); + args.push_back( std::make_pair( sizeof(cl_int), (void *)&layer_rows)); + args.push_back( std::make_pair( sizeof(cl_int), (void *)&layer_cols)); + args.push_back( std::make_pair( sizeof(cl_int), (void *)&maxCandidates)); + args.push_back( std::make_pair( sizeof(cl_float), (void *)&surf_.hessianThreshold)); if(useMask) { if(maskSumTex) { - args.push_back( make_pair( sizeof(cl_mem), (void *)&maskSumTex)); + args.push_back( std::make_pair( sizeof(cl_mem), (void *)&maskSumTex)); } else { - args.push_back( make_pair( sizeof(cl_mem), (void *)&surf_.maskSum.data)); + args.push_back( std::make_pair( sizeof(cl_mem), (void *)&surf_.maskSum.data)); } - args.push_back( make_pair( sizeof(cl_mem), (void *)&surf_.maskSum.step)); + args.push_back( std::make_pair( sizeof(cl_mem), (void *)&surf_.maskSum.step)); } size_t localThreads[3] = {16, 16, 1}; size_t globalThreads[3] = {divUp(layer_cols - 2 * min_margin, localThreads[0] - 2) *localThreads[0], @@ -568,19 +565,19 @@ void SURF_OCL_Invoker::icvInterpolateKeypoint_gpu(const oclMat &det, const oclMa { Context *clCxt = det.clCxt; string kernelName = "icvInterpolateKeypoint"; - vector< pair > args; + std::vector< std::pair > args; - args.push_back( make_pair( sizeof(cl_mem), (void *)&det.data)); - args.push_back( make_pair( sizeof(cl_mem), (void *)&maxPosBuffer.data)); - args.push_back( make_pair( sizeof(cl_mem), (void *)&keypoints.data)); - args.push_back( make_pair( sizeof(cl_mem), (void *)&counters_.data)); - args.push_back( make_pair( sizeof(cl_int), (void *)&det.step)); - args.push_back( make_pair( sizeof(cl_int), (void *)&keypoints.step)); - args.push_back( make_pair( sizeof(cl_int), (void *)&img_rows)); - args.push_back( make_pair( sizeof(cl_int), (void *)&img_cols)); - args.push_back( make_pair( sizeof(cl_int), (void *)&octave)); - args.push_back( make_pair( sizeof(cl_int), (void *)&layer_rows)); - args.push_back( make_pair( sizeof(cl_int), (void *)&max_features)); + args.push_back( std::make_pair( sizeof(cl_mem), (void *)&det.data)); + args.push_back( std::make_pair( sizeof(cl_mem), (void *)&maxPosBuffer.data)); + args.push_back( std::make_pair( sizeof(cl_mem), (void *)&keypoints.data)); + args.push_back( std::make_pair( sizeof(cl_mem), (void *)&counters_.data)); + args.push_back( std::make_pair( sizeof(cl_int), (void *)&det.step)); + args.push_back( std::make_pair( sizeof(cl_int), (void *)&keypoints.step)); + args.push_back( std::make_pair( sizeof(cl_int), (void *)&img_rows)); + args.push_back( std::make_pair( sizeof(cl_int), (void *)&img_cols)); + args.push_back( std::make_pair( sizeof(cl_int), (void *)&octave)); + args.push_back( std::make_pair( sizeof(cl_int), (void *)&layer_rows)); + args.push_back( std::make_pair( sizeof(cl_int), (void *)&max_features)); size_t localThreads[3] = {3, 3, 3}; size_t globalThreads[3] = {maxCounter *localThreads[0], localThreads[1], 1}; @@ -593,21 +590,21 @@ void SURF_OCL_Invoker::icvCalcOrientation_gpu(const oclMat &keypoints, int nFeat Context *clCxt = counters.clCxt; string kernelName = "icvCalcOrientation"; - vector< pair > args; + std::vector< std::pair > args; if(sumTex) { - args.push_back( make_pair( sizeof(cl_mem), (void *)&sumTex)); + args.push_back( std::make_pair( sizeof(cl_mem), (void *)&sumTex)); } else { - args.push_back( make_pair( sizeof(cl_mem), (void *)&surf_.sum.data)); // if image2d is not supported + args.push_back( std::make_pair( sizeof(cl_mem), (void *)&surf_.sum.data)); // if image2d is not supported } - args.push_back( make_pair( sizeof(cl_mem), (void *)&keypoints.data)); - args.push_back( make_pair( sizeof(cl_int), (void *)&keypoints.step)); - args.push_back( make_pair( sizeof(cl_int), (void *)&img_rows)); - args.push_back( make_pair( sizeof(cl_int), (void *)&img_cols)); - args.push_back( make_pair( sizeof(cl_int), (void *)&surf_.sum.step)); + args.push_back( std::make_pair( sizeof(cl_mem), (void *)&keypoints.data)); + args.push_back( std::make_pair( sizeof(cl_int), (void *)&keypoints.step)); + args.push_back( std::make_pair( sizeof(cl_int), (void *)&img_rows)); + args.push_back( std::make_pair( sizeof(cl_int), (void *)&img_cols)); + args.push_back( std::make_pair( sizeof(cl_int), (void *)&surf_.sum.step)); size_t localThreads[3] = {32, 4, 1}; size_t globalThreads[3] = {nFeatures *localThreads[0], localThreads[1], 1}; @@ -620,11 +617,11 @@ void SURF_OCL_Invoker::icvSetUpright_gpu(const oclMat &keypoints, int nFeatures) Context *clCxt = counters.clCxt; string kernelName = "icvSetUpright"; - vector< pair > args; + std::vector< std::pair > args; - args.push_back( make_pair( sizeof(cl_mem), (void *)&keypoints.data)); - args.push_back( make_pair( sizeof(cl_int), (void *)&keypoints.step)); - args.push_back( make_pair( sizeof(cl_int), (void *)&nFeatures)); + args.push_back( std::make_pair( sizeof(cl_mem), (void *)&keypoints.data)); + args.push_back( std::make_pair( sizeof(cl_int), (void *)&keypoints.step)); + args.push_back( std::make_pair( sizeof(cl_int), (void *)&nFeatures)); size_t localThreads[3] = {256, 1, 1}; size_t globalThreads[3] = {saturate_cast(nFeatures), 1, 1}; @@ -638,7 +635,7 @@ void SURF_OCL_Invoker::compute_descriptors_gpu(const oclMat &descriptors, const // compute unnormalized descriptors, then normalize them - odd indexing since grid must be 2D Context *clCxt = descriptors.clCxt; string kernelName; - vector< pair > args; + std::vector< std::pair > args; size_t localThreads[3] = {1, 1, 1}; size_t globalThreads[3] = {1, 1, 1}; @@ -655,19 +652,19 @@ void SURF_OCL_Invoker::compute_descriptors_gpu(const oclMat &descriptors, const args.clear(); if(imgTex) { - args.push_back( make_pair( sizeof(cl_mem), (void *)&imgTex)); + args.push_back( std::make_pair( sizeof(cl_mem), (void *)&imgTex)); } else { - args.push_back( make_pair( sizeof(cl_mem), (void *)&_img.data)); + args.push_back( std::make_pair( sizeof(cl_mem), (void *)&_img.data)); } - args.push_back( make_pair( sizeof(cl_mem), (void *)&descriptors.data)); - args.push_back( make_pair( sizeof(cl_mem), (void *)&keypoints.data)); - args.push_back( make_pair( sizeof(cl_int), (void *)&descriptors.step)); - args.push_back( make_pair( sizeof(cl_int), (void *)&keypoints.step)); - args.push_back( make_pair( sizeof(cl_int), (void *)&_img.rows)); - args.push_back( make_pair( sizeof(cl_int), (void *)&_img.cols)); - args.push_back( make_pair( sizeof(cl_int), (void *)&_img.step)); + args.push_back( std::make_pair( sizeof(cl_mem), (void *)&descriptors.data)); + args.push_back( std::make_pair( sizeof(cl_mem), (void *)&keypoints.data)); + args.push_back( std::make_pair( sizeof(cl_int), (void *)&descriptors.step)); + args.push_back( std::make_pair( sizeof(cl_int), (void *)&keypoints.step)); + args.push_back( std::make_pair( sizeof(cl_int), (void *)&_img.rows)); + args.push_back( std::make_pair( sizeof(cl_int), (void *)&_img.cols)); + args.push_back( std::make_pair( sizeof(cl_int), (void *)&_img.step)); openCLExecuteKernelSURF(clCxt, &surf, kernelName, globalThreads, localThreads, args, -1, -1); @@ -680,8 +677,8 @@ void SURF_OCL_Invoker::compute_descriptors_gpu(const oclMat &descriptors, const globalThreads[1] = localThreads[1]; args.clear(); - args.push_back( make_pair( sizeof(cl_mem), (void *)&descriptors.data)); - args.push_back( make_pair( sizeof(cl_int), (void *)&descriptors.step)); + args.push_back( std::make_pair( sizeof(cl_mem), (void *)&descriptors.data)); + args.push_back( std::make_pair( sizeof(cl_int), (void *)&descriptors.step)); openCLExecuteKernelSURF(clCxt, &surf, kernelName, globalThreads, localThreads, args, -1, -1); } @@ -698,19 +695,19 @@ void SURF_OCL_Invoker::compute_descriptors_gpu(const oclMat &descriptors, const args.clear(); if(imgTex) { - args.push_back( make_pair( sizeof(cl_mem), (void *)&imgTex)); + args.push_back( std::make_pair( sizeof(cl_mem), (void *)&imgTex)); } else { - args.push_back( make_pair( sizeof(cl_mem), (void *)&_img.data)); + args.push_back( std::make_pair( sizeof(cl_mem), (void *)&_img.data)); } - args.push_back( make_pair( sizeof(cl_mem), (void *)&descriptors.data)); - args.push_back( make_pair( sizeof(cl_mem), (void *)&keypoints.data)); - args.push_back( make_pair( sizeof(cl_int), (void *)&descriptors.step)); - args.push_back( make_pair( sizeof(cl_int), (void *)&keypoints.step)); - args.push_back( make_pair( sizeof(cl_int), (void *)&_img.rows)); - args.push_back( make_pair( sizeof(cl_int), (void *)&_img.cols)); - args.push_back( make_pair( sizeof(cl_int), (void *)&_img.step)); + args.push_back( std::make_pair( sizeof(cl_mem), (void *)&descriptors.data)); + args.push_back( std::make_pair( sizeof(cl_mem), (void *)&keypoints.data)); + args.push_back( std::make_pair( sizeof(cl_int), (void *)&descriptors.step)); + args.push_back( std::make_pair( sizeof(cl_int), (void *)&keypoints.step)); + args.push_back( std::make_pair( sizeof(cl_int), (void *)&_img.rows)); + args.push_back( std::make_pair( sizeof(cl_int), (void *)&_img.cols)); + args.push_back( std::make_pair( sizeof(cl_int), (void *)&_img.step)); openCLExecuteKernelSURF(clCxt, &surf, kernelName, globalThreads, localThreads, args, -1, -1); @@ -723,8 +720,8 @@ void SURF_OCL_Invoker::compute_descriptors_gpu(const oclMat &descriptors, const globalThreads[1] = localThreads[1]; args.clear(); - args.push_back( make_pair( sizeof(cl_mem), (void *)&descriptors.data)); - args.push_back( make_pair( sizeof(cl_int), (void *)&descriptors.step)); + args.push_back( std::make_pair( sizeof(cl_mem), (void *)&descriptors.data)); + args.push_back( std::make_pair( sizeof(cl_int), (void *)&descriptors.step)); openCLExecuteKernelSURF(clCxt, &surf, kernelName, globalThreads, localThreads, args, -1, -1); } diff --git a/modules/ocl/src/bgfg_mog.cpp b/modules/ocl/src/bgfg_mog.cpp index cb0dee80f8..064fef8d30 100644 --- a/modules/ocl/src/bgfg_mog.cpp +++ b/modules/ocl/src/bgfg_mog.cpp @@ -44,14 +44,15 @@ //M*/ #include "precomp.hpp" +#include "opencl_kernels.hpp" + using namespace cv; using namespace cv::ocl; + namespace cv { namespace ocl { - extern const char* bgfg_mog; - typedef struct _contant_struct { cl_float c_Tb; diff --git a/modules/ocl/src/blend.cpp b/modules/ocl/src/blend.cpp index ec73c8662c..58b91d8c3f 100644 --- a/modules/ocl/src/blend.cpp +++ b/modules/ocl/src/blend.cpp @@ -44,20 +44,10 @@ //M*/ #include "precomp.hpp" -#include +#include "opencl_kernels.hpp" using namespace cv; using namespace cv::ocl; -using namespace std; - -namespace cv -{ - namespace ocl - { - ////////////////////////////////////OpenCL kernel strings////////////////////////// - extern const char *blend_linear; - } -} void cv::ocl::blendLinear(const oclMat &img1, const oclMat &img2, const oclMat &weights1, const oclMat &weights2, oclMat &result) diff --git a/modules/ocl/src/brute_force_matcher.cpp b/modules/ocl/src/brute_force_matcher.cpp index 0273ed5891..c348db8f30 100644 --- a/modules/ocl/src/brute_force_matcher.cpp +++ b/modules/ocl/src/brute_force_matcher.cpp @@ -45,22 +45,10 @@ //M*/ #include "precomp.hpp" +#include "opencl_kernels.hpp" -#include -#include -#include using namespace cv; using namespace cv::ocl; -using namespace std; - -namespace cv -{ - namespace ocl - { - ////////////////////////////////////OpenCL kernel strings////////////////////////// - extern const char *brute_force_match; - } -} static const int OPT_SIZE = 100; diff --git a/modules/ocl/src/build_warps.cpp b/modules/ocl/src/build_warps.cpp index c4a092993a..4c400a2b68 100644 --- a/modules/ocl/src/build_warps.cpp +++ b/modules/ocl/src/build_warps.cpp @@ -44,19 +44,10 @@ //M*/ #include "precomp.hpp" +#include "opencl_kernels.hpp" using namespace cv; using namespace cv::ocl; -using namespace std; - -namespace cv -{ - namespace ocl - { - ///////////////////////////OpenCL kernel strings/////////////////////////// - extern const char *build_warps; - } -} ////////////////////////////////////////////////////////////////////////////// // buildWarpPlaneMaps diff --git a/modules/ocl/src/canny.cpp b/modules/ocl/src/canny.cpp index a25c1973ef..9fc6f65b44 100644 --- a/modules/ocl/src/canny.cpp +++ b/modules/ocl/src/canny.cpp @@ -44,19 +44,10 @@ //M*/ #include "precomp.hpp" +#include "opencl_kernels.hpp" using namespace cv; using namespace cv::ocl; -using namespace std; - -namespace cv -{ - namespace ocl - { - ///////////////////////////OpenCL kernel strings/////////////////////////// - extern const char *imgproc_canny; - } -} cv::ocl::CannyBuf::CannyBuf(const oclMat &dx_, const oclMat &dy_) : dx(dx_), dy(dy_), counter(NULL) { diff --git a/modules/ocl/src/color.cpp b/modules/ocl/src/color.cpp index 493dbc33c4..443065077c 100644 --- a/modules/ocl/src/color.cpp +++ b/modules/ocl/src/color.cpp @@ -45,6 +45,7 @@ //M*/ #include "precomp.hpp" +#include "opencl_kernels.hpp" using namespace cv; using namespace cv::ocl; @@ -57,14 +58,6 @@ using namespace cv::ocl; #define FLT_EPSILON 1.192092896e-07F #endif -namespace cv -{ -namespace ocl -{ -extern const char *cvt_color; -} -} - namespace { void RGB2Gray_caller(const oclMat &src, oclMat &dst, int bidx) diff --git a/modules/ocl/src/columnsum.cpp b/modules/ocl/src/columnsum.cpp index 1d6939f4e1..46ff73d224 100644 --- a/modules/ocl/src/columnsum.cpp +++ b/modules/ocl/src/columnsum.cpp @@ -43,20 +43,11 @@ // //M*/ -#include #include "precomp.hpp" +#include "opencl_kernels.hpp" using namespace cv; using namespace cv::ocl; -using namespace std; - -namespace cv -{ - namespace ocl - { - extern const char *imgproc_columnsum; - } -} void cv::ocl::columnSum(const oclMat &src, oclMat &dst) { diff --git a/modules/ocl/src/fft.cpp b/modules/ocl/src/fft.cpp index c0785ac9d8..e39a4443c4 100644 --- a/modules/ocl/src/fft.cpp +++ b/modules/ocl/src/fft.cpp @@ -42,12 +42,10 @@ // the use of this software, even if advised of the possibility of such damage. // //M*/ -#include #include "precomp.hpp" using namespace cv; using namespace cv::ocl; -using namespace std; #if !defined HAVE_CLAMDFFT void cv::ocl::dft(const oclMat&, oclMat&, Size, int) diff --git a/modules/ocl/src/filtering.cpp b/modules/ocl/src/filtering.cpp index caaf53d849..758923f55c 100644 --- a/modules/ocl/src/filtering.cpp +++ b/modules/ocl/src/filtering.cpp @@ -48,26 +48,11 @@ //M*/ #include "precomp.hpp" +#include "opencl_kernels.hpp" -using namespace std; using namespace cv; using namespace cv::ocl; -//helper routines -namespace cv -{ -namespace ocl -{ -///////////////////////////OpenCL kernel strings/////////////////////////// -extern const char *filtering_boxFilter; -extern const char *filter_sep_row; -extern const char *filter_sep_col; -extern const char *filtering_laplacian; -extern const char *filtering_morph; -extern const char *filtering_adaptive_bilateral; -} -} - namespace { inline void normalizeAnchor(int &anchor, int ksize) diff --git a/modules/ocl/src/gemm.cpp b/modules/ocl/src/gemm.cpp index 687f26f632..837fd1fa30 100644 --- a/modules/ocl/src/gemm.cpp +++ b/modules/ocl/src/gemm.cpp @@ -43,7 +43,6 @@ // //M*/ -#include #include "precomp.hpp" namespace cv { namespace ocl { diff --git a/modules/ocl/src/gftt.cpp b/modules/ocl/src/gftt.cpp index 29a96ae658..e24c0a5856 100644 --- a/modules/ocl/src/gftt.cpp +++ b/modules/ocl/src/gftt.cpp @@ -42,23 +42,14 @@ // the use of this software, even if advised of the possibility of such damage. // //M*/ -#include #include "precomp.hpp" +#include "opencl_kernels.hpp" using namespace cv; using namespace cv::ocl; static bool use_cpu_sorter = true; -namespace cv -{ - namespace ocl - { - ///////////////////////////OpenCL kernel strings/////////////////////////// - extern const char *imgproc_gftt; - } -} - namespace { enum SortMethod diff --git a/modules/ocl/src/haar.cpp b/modules/ocl/src/haar.cpp index e3e73b3c3d..aac3785e79 100644 --- a/modules/ocl/src/haar.cpp +++ b/modules/ocl/src/haar.cpp @@ -49,24 +49,10 @@ //M*/ #include "precomp.hpp" -#include -#include +#include "opencl_kernels.hpp" using namespace cv; using namespace cv::ocl; -using namespace std; - - -namespace cv -{ -namespace ocl -{ -///////////////////////////OpenCL kernel strings/////////////////////////// -extern const char *haarobjectdetect; -extern const char *haarobjectdetectbackup; -extern const char *haarobjectdetect_scaled2; -} -} /* these settings affect the quality of detection: change with care */ #define CV_ADJUST_FEATURES 1 diff --git a/modules/ocl/src/hog.cpp b/modules/ocl/src/hog.cpp index 563172bc13..2d2de9a2be 100644 --- a/modules/ocl/src/hog.cpp +++ b/modules/ocl/src/hog.cpp @@ -44,9 +44,10 @@ //M*/ #include "precomp.hpp" +#include "opencl_kernels.hpp" + using namespace cv; using namespace cv::ocl; -using namespace std; #define CELL_WIDTH 8 #define CELL_HEIGHT 8 @@ -57,15 +58,6 @@ using namespace std; static oclMat gauss_w_lut; static bool hog_device_cpu; -namespace cv -{ - namespace ocl - { - ///////////////////////////OpenCL kernel strings/////////////////////////// - extern const char *objdetect_hog; - } -} - namespace cv { namespace ocl diff --git a/modules/ocl/src/imgproc.cpp b/modules/ocl/src/imgproc.cpp index 0949605e15..b4d2b70a0d 100644 --- a/modules/ocl/src/imgproc.cpp +++ b/modules/ocl/src/imgproc.cpp @@ -54,34 +54,15 @@ //M*/ #include "precomp.hpp" -#include +#include "opencl_kernels.hpp" using namespace cv; using namespace cv::ocl; -using namespace std; namespace cv { namespace ocl { - - ////////////////////////////////////OpenCL kernel strings////////////////////////// - extern const char *meanShift; - extern const char *imgproc_copymakeboder; - extern const char *imgproc_median; - extern const char *imgproc_threshold; - extern const char *imgproc_resize; - extern const char *imgproc_remap; - extern const char *imgproc_warpAffine; - extern const char *imgproc_warpPerspective; - extern const char *imgproc_integral_sum; - extern const char *imgproc_integral; - extern const char *imgproc_histogram; - extern const char *imgproc_bilateral; - extern const char *imgproc_calcHarris; - extern const char *imgproc_calcMinEigenVal; - extern const char *imgproc_convolve; - extern const char *imgproc_clahe; ////////////////////////////////////OpenCL call wrappers//////////////////////////// template struct index_and_sizeof; diff --git a/modules/ocl/src/interpolate_frames.cpp b/modules/ocl/src/interpolate_frames.cpp index 43b766054f..54063cd7f7 100644 --- a/modules/ocl/src/interpolate_frames.cpp +++ b/modules/ocl/src/interpolate_frames.cpp @@ -44,8 +44,8 @@ //M*/ #include "precomp.hpp" +#include "opencl_kernels.hpp" -using namespace std; using namespace cv; using namespace cv::ocl; @@ -53,9 +53,6 @@ namespace cv { namespace ocl { - ///////////////////////////OpenCL kernel strings/////////////////////////// - extern const char *interpolate_frames; - namespace interpolate { //The following are ported from NPP_staging.cu diff --git a/modules/ocl/src/kalman.cpp b/modules/ocl/src/kalman.cpp index 8a5b0d4c2c..6f8243457c 100644 --- a/modules/ocl/src/kalman.cpp +++ b/modules/ocl/src/kalman.cpp @@ -44,7 +44,6 @@ //M*/ #include "precomp.hpp" -using namespace std; using namespace cv; using namespace cv::ocl; @@ -132,4 +131,4 @@ CV_EXPORTS const oclMat& KalmanFilter::correct(const oclMat& measurement) gemm(gain, temp5, 1, statePre, 1, statePost); gemm(gain, temp2, -1, errorCovPre, 1, errorCovPost); return statePost; -} \ No newline at end of file +} diff --git a/modules/ocl/src/kmeans.cpp b/modules/ocl/src/kmeans.cpp index 4de42fce55..06ed8b36ab 100644 --- a/modules/ocl/src/kmeans.cpp +++ b/modules/ocl/src/kmeans.cpp @@ -43,20 +43,11 @@ // //M*/ -#include #include "precomp.hpp" +#include "opencl_kernels.hpp" using namespace cv; -using namespace ocl; - -namespace cv -{ -namespace ocl -{ -////////////////////////////////////OpenCL kernel strings////////////////////////// -extern const char *kmeans_kernel; -} -} +using namespace cv::ocl; static void generateRandomCenter(const vector& box, float* center, RNG& rng) { diff --git a/modules/ocl/src/match_template.cpp b/modules/ocl/src/match_template.cpp index 7c0a7ac5db..ba84043fc7 100644 --- a/modules/ocl/src/match_template.cpp +++ b/modules/ocl/src/match_template.cpp @@ -44,22 +44,11 @@ //M*/ -#include #include "precomp.hpp" +#include "opencl_kernels.hpp" using namespace cv; using namespace cv::ocl; -using namespace std; - -//helper routines -namespace cv -{ - namespace ocl - { - ///////////////////////////OpenCL kernel strings/////////////////////////// - extern const char *match_template; - } -} namespace cv { diff --git a/modules/ocl/src/matrix_operations.cpp b/modules/ocl/src/matrix_operations.cpp index d247a14794..80b2f7d81c 100644 --- a/modules/ocl/src/matrix_operations.cpp +++ b/modules/ocl/src/matrix_operations.cpp @@ -46,30 +46,19 @@ //M*/ #include "precomp.hpp" - -#define ALIGN 32 -#define GPU_MATRIX_MALLOC_STEP(step) (((step) + ALIGN - 1) / ALIGN) * ALIGN +#include "opencl_kernels.hpp" using namespace cv; using namespace cv::ocl; -using namespace std; -//////////////////////////////////////////////////////////////////////// -//////////////////////////////// oclMat //////////////////////////////// -//////////////////////////////////////////////////////////////////////// +#define ALIGN 32 +#define GPU_MATRIX_MALLOC_STEP(step) (((step) + ALIGN - 1) / ALIGN) * ALIGN // helper routines namespace cv { namespace ocl { - /////////////////////////// OpenCL kernel strings /////////////////////////// - - extern const char *operator_copyToM; - extern const char *operator_convertTo; - extern const char *operator_setTo; - extern const char *operator_setToM; - extern const char *convertC3C4; extern DevMemType gDeviceMemType; extern DevMemRW gDeviceMemRW; } diff --git a/modules/ocl/src/moments.cpp b/modules/ocl/src/moments.cpp index 24e8b3e0f6..377af28634 100644 --- a/modules/ocl/src/moments.cpp +++ b/modules/ocl/src/moments.cpp @@ -44,13 +44,12 @@ // //M*/ #include "precomp.hpp" -#include +#include "opencl_kernels.hpp" + namespace cv { namespace ocl { -extern const char *moments; - // The function calculates center of gravity and the central second order moments static void icvCompleteMomentState( CvMoments* moments ) { diff --git a/modules/ocl/src/mssegmentation.cpp b/modules/ocl/src/mssegmentation.cpp index 300265bc2e..248f134705 100644 --- a/modules/ocl/src/mssegmentation.cpp +++ b/modules/ocl/src/mssegmentation.cpp @@ -43,8 +43,10 @@ //M*/ #include "precomp.hpp" +#include "opencl_kernels.hpp" -using namespace std; +using namespace cv; +using namespace cv::ocl; // Auxiliray stuff namespace diff --git a/modules/ocl/src/optical_flow_farneback.cpp b/modules/ocl/src/optical_flow_farneback.cpp index 618a637f09..05a850bd17 100644 --- a/modules/ocl/src/optical_flow_farneback.cpp +++ b/modules/ocl/src/optical_flow_farneback.cpp @@ -45,23 +45,14 @@ #include "precomp.hpp" +#include "opencl_kernels.hpp" #include "opencv2/video/tracking.hpp" -using namespace std; using namespace cv; using namespace cv::ocl; #define MIN_SIZE 32 -namespace cv -{ -namespace ocl -{ -///////////////////////////OpenCL kernel strings/////////////////////////// -extern const char *optical_flow_farneback; -} -} - namespace cv { namespace ocl { namespace optflow_farneback diff --git a/modules/ocl/src/pyrdown.cpp b/modules/ocl/src/pyrdown.cpp index 89df73e9a8..6071fc5987 100644 --- a/modules/ocl/src/pyrdown.cpp +++ b/modules/ocl/src/pyrdown.cpp @@ -45,23 +45,10 @@ // //M*/ #include "precomp.hpp" +#include "opencl_kernels.hpp" using namespace cv; using namespace cv::ocl; -using namespace std; - -using std::cout; -using std::endl; - -namespace cv -{ - namespace ocl - { - ///////////////////////////OpenCL kernel strings/////////////////////////// - extern const char *pyr_down; - - } -} ////////////////////////////////////////////////////////////////////////////// /////////////////////// add subtract multiply divide ///////////////////////// diff --git a/modules/ocl/src/pyrlk.cpp b/modules/ocl/src/pyrlk.cpp index a69015d190..8e8692e77f 100644 --- a/modules/ocl/src/pyrlk.cpp +++ b/modules/ocl/src/pyrlk.cpp @@ -45,21 +45,12 @@ // //M*/ - #include "precomp.hpp" +#include "opencl_kernels.hpp" -using namespace std; using namespace cv; using namespace cv::ocl; -namespace cv -{ -namespace ocl -{ -extern const char *pyrlk; -extern const char *pyrlk_no_image; -} -} struct dim3 { unsigned int x, y, z; diff --git a/modules/ocl/src/pyrup.cpp b/modules/ocl/src/pyrup.cpp index 01df30c518..025348194d 100644 --- a/modules/ocl/src/pyrup.cpp +++ b/modules/ocl/src/pyrup.cpp @@ -45,21 +45,19 @@ // //M*/ -/* Haar features calculation */ -//#define EMU - #include "precomp.hpp" +#include "opencl_kernels.hpp" using namespace cv; using namespace cv::ocl; -using namespace std; + +/* Haar features calculation */ +//#define EMU namespace cv { namespace ocl { - extern const char *pyr_up; - void pyrUp(const cv::ocl::oclMat &src, cv::ocl::oclMat &dst) { int depth = src.depth(), channels = src.channels(), oclChannels = src.oclchannels(); diff --git a/modules/ocl/src/sort_by_key.cpp b/modules/ocl/src/sort_by_key.cpp index 0025f0d911..c2ab00452c 100644 --- a/modules/ocl/src/sort_by_key.cpp +++ b/modules/ocl/src/sort_by_key.cpp @@ -43,18 +43,16 @@ // //M*/ -#include #include "precomp.hpp" +#include "opencl_kernels.hpp" + +using namespace cv; +using namespace cv::ocl; namespace cv { namespace ocl { - -extern const char * kernel_sort_by_key; -extern const char * kernel_stablesort_by_key; -extern const char * kernel_radix_sort_by_key; - void sortByKey(oclMat& keys, oclMat& vals, size_t vecSize, int method, bool isGreaterThan); //TODO(pengx17): change this value depending on device other than a constant diff --git a/modules/ocl/src/split_merge.cpp b/modules/ocl/src/split_merge.cpp index fb8d05aaa7..9c9639fd42 100644 --- a/modules/ocl/src/split_merge.cpp +++ b/modules/ocl/src/split_merge.cpp @@ -44,29 +44,11 @@ //M*/ #include "precomp.hpp" -#include +#include "opencl_kernels.hpp" using namespace cv; using namespace cv::ocl; -using namespace std; - -using std::cout; -using std::endl; - -//////////////////////////////////////////////////////////////////////// -///////////////// oclMat merge and split /////////////////////////////// -//////////////////////////////////////////////////////////////////////// - -namespace cv -{ - namespace ocl - { - ///////////////////////////OpenCL kernel strings/////////////////////////// - extern const char *merge_mat; - extern const char *split_mat; - } -} namespace cv { namespace ocl diff --git a/modules/ocl/src/stereo_csbp.cpp b/modules/ocl/src/stereo_csbp.cpp index c8334cca42..f9e86442bb 100644 --- a/modules/ocl/src/stereo_csbp.cpp +++ b/modules/ocl/src/stereo_csbp.cpp @@ -45,51 +45,11 @@ //M*/ #include "precomp.hpp" +#include "opencl_kernels.hpp" using namespace cv; using namespace cv::ocl; -using namespace std; -#if !defined (HAVE_OPENCL) - -namespace cv -{ - namespace ocl - { - - void cv::ocl::StereoConstantSpaceBP::estimateRecommendedParams(int, int, int &, int &, int &, int &) - { - throw_nogpu(); - } - cv::ocl::StereoConstantSpaceBP::StereoConstantSpaceBP(int, int, int, int, int) - { - throw_nogpu(); - } - cv::ocl::StereoConstantSpaceBP::StereoConstantSpaceBP(int, int, int, int, float, float, - float, float, int, int) - { - throw_nogpu(); - } - - void cv::ocl::StereoConstantSpaceBP::operator()(const oclMat &, const oclMat &, oclMat &) - { - throw_nogpu(); - } - } -} - -#else /* !defined (HAVE_OPENCL) */ - -namespace cv -{ - namespace ocl - { - - ///////////////////////////OpenCL kernel strings/////////////////////////// - extern const char *stereocsbp; - } - -} namespace cv { namespace ocl @@ -755,5 +715,3 @@ void cv::ocl::StereoConstantSpaceBP::operator()(const oclMat &left, const oclMat operators[msg_type](*this, u, d, l, r, disp_selected_pyr, data_cost, data_cost_selected, temp, out, left, right, disp); } - -#endif /* !defined (HAVE_OPENCL) */ diff --git a/modules/ocl/src/stereobm.cpp b/modules/ocl/src/stereobm.cpp index 8195346c00..716a2f1613 100644 --- a/modules/ocl/src/stereobm.cpp +++ b/modules/ocl/src/stereobm.cpp @@ -46,23 +46,11 @@ //M*/ #include "precomp.hpp" -#include +#include "opencl_kernels.hpp" using namespace cv; using namespace cv::ocl; -using namespace std; - -namespace cv -{ -namespace ocl -{ - -///////////////////////////OpenCL kernel strings/////////////////////////// -extern const char *stereobm; - -} -} namespace cv { namespace ocl diff --git a/modules/ocl/src/stereobp.cpp b/modules/ocl/src/stereobp.cpp index 5bc93aa3f5..ef7fff4359 100644 --- a/modules/ocl/src/stereobp.cpp +++ b/modules/ocl/src/stereobp.cpp @@ -45,27 +45,11 @@ //M*/ #include "precomp.hpp" -#include -#include +#include "opencl_kernels.hpp" using namespace cv; using namespace cv::ocl; -using namespace std; -//////////////////////////////////////////////////////////////////////// -///////////////// stereoBP ///////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////// - -namespace cv -{ - namespace ocl - { - - ///////////////////////////OpenCL kernel strings/////////////////////////// - extern const char *stereobp; - } - -} namespace cv { namespace ocl diff --git a/modules/ocl/src/tvl1flow.cpp b/modules/ocl/src/tvl1flow.cpp index c9a3f7abc1..bbeecb4748 100644 --- a/modules/ocl/src/tvl1flow.cpp +++ b/modules/ocl/src/tvl1flow.cpp @@ -42,21 +42,12 @@ // //M*/ - #include "precomp.hpp" -using namespace std; +#include "opencl_kernels.hpp" + using namespace cv; using namespace cv::ocl; -namespace cv -{ - namespace ocl - { - ///////////////////////////OpenCL kernel strings/////////////////////////// - extern const char* tvl1flow; - } -} - cv::ocl::OpticalFlowDual_TVL1_OCL::OpticalFlowDual_TVL1_OCL() { tau = 0.25; diff --git a/modules/superres/src/btv_l1_ocl.cpp b/modules/superres/src/btv_l1_ocl.cpp index 5aecca0630..432d2368a3 100644 --- a/modules/superres/src/btv_l1_ocl.cpp +++ b/modules/superres/src/btv_l1_ocl.cpp @@ -56,6 +56,7 @@ cv::Ptr cv::superres::createSuperResolution_BTVL1 } #else +#include "opencl_kernels.hpp" using namespace std; using namespace cv; @@ -67,8 +68,6 @@ namespace cv { namespace ocl { - extern const char* superres_btvl1; - float* btvWeights_ = NULL; size_t btvWeights_size = 0; }