Added code optimization for OpenCV compilation

- Changed -DCV_DISABLE_OPTIMIZATION to OFF
- This re-enable code optimization (dispatched code/intrinsics/loop unrolling/etc)
This commit is contained in:
Joachim
2020-03-26 09:16:22 +01:00
parent 66f9ed9bad
commit 50b4e6fc53
21 changed files with 193 additions and 13 deletions

View File

@ -0,0 +1,87 @@
I (12398) SYSTEM: task stack left: 29028 Bytes
I (12408) SYSTEM: heap left: 4379580 Bytes
I (12678) opencv_tests: Image read of 399x473x3, with 0 pixel depth
I (12678) opencv_tests: ==================== Thresholding tests ====================
Time taken by Binary threshold: 26 [ms]
Time taken by Triangle threshold: 40 [ms]
Time taken by OTSU threshold: 43 [ms]
Time taken by To zero threshold: 26 [ms]
I (13138) SYSTEM: task stack left: 26124 Bytes
I (13138) SYSTEM: heap left: 3813264 Bytes
I (13138) opencv_tests: ==================== Blurring tests ====================
Time taken by GaussianBlur: 1068 [ms]
Time taken by medianBlur: 1592 [ms]
Time taken by bilateralFilter: 2774 [ms]
I (29458) SYSTEM: task stack left: 26124 Bytes
I (29458) SYSTEM: heap left: 3812992 Bytes
I (29458) opencv_tests: =========== Morphology transformations tests ===========
Time taken by erode: 279 [ms]
Time taken by dilate: 278 [ms]
Time taken by open: 533 [ms]
I (32748) SYSTEM: task stack left: 26124 Bytes
I (32748) SYSTEM: heap left: 3812992 Bytes
I (32748) opencv_tests: ==================== Resizing tests ====================
Time taken by linear resize: 105 [ms]
Time taken by cubic resize: 340 [ms]
Time taken by pyrUp: 498 [ms]
Time taken by pyrDown: 77 [ms]
I (35828) SYSTEM: task stack left: 936 Bytes
I (35828) SYSTEM: heap left: 3812992 Bytes
I (35828) opencv_tests: ================= Edge detection tests =================
Time taken by Sobel: 121 [ms]
Time taken by Canny: 317 [ms]
I (36568) SYSTEM: task stack left: 936 Bytes
I (36568) SYSTEM: heap left: 3812992 Bytes
OpenCV compiled with:
cmake \
-DCMAKE_BUILD_TYPE=Release \
-DESP32=ON \
-DBUILD_SHARED_LIBS=OFF \
-DCV_DISABLE_OPTIMIZATION=OFF \
-DWITH_IPP=OFF \
-DWITH_TBB=OFF \
-DWITH_OPENMP=OFF \
-DWITH_PTHREADS_PF=OFF \
-DWITH_QUIRC=OFF \
-DWITH_1394=OFF \
-DWITH_CUDA=OFF \
-DWITH_OPENCL=OFF \
-DWITH_OPENCLAMDFFT=OFF \
-DWITH_OPENCLAMDBLAS=OFF \
-DWITH_VA_INTEL=OFF \
-DWITH_EIGEN=OFF \
\
-DWITH_GSTREAMER=OFF \
-DWITH_GTK=OFF \
-DWITH_JASPER=OFF \
-DWITH_JPEG=OFF \
-DWITH_WEBP=OFF \
-DBUILD_ZLIB=ON \
-DBUILD_PNG=ON \
-DWITH_TIFF=OFF \
-DWITH_V4L=OFF \
-DWITH_LAPACK=OFF \
-DWITH_ITT=OFF \
-DWITH_PROTOBUF=OFF \
-DWITH_IMGCODEC_HDR=OFF \
-DWITH_IMGCODEC_SUNRASTER=OFF \
-DWITH_IMGCODEC_PXM=OFF \
-DWITH_IMGCODEC_PFM=OFF \
\
-DBUILD_LIST=core,imgproc,imgcodecs \
-DBUILD_JAVA=OFF \
-DBUILD_opencv_python=OFF \
-DBUILD_opencv_java=OFF \
\
-DBUILD_opencv_apps=OFF \
-DBUILD_PACKAGE=OFF \
-DBUILD_PERF_TESTS=OFF \
-DBUILD_TESTS=OFF \
-DCV_ENABLE_INTRINSICS=OFF \
-DCV_TRACE=OFF \
-DOPENCV_ENABLE_MEMALIGN=OFF \
\
-DCMAKE_TOOLCHAIN_FILE=~/esp/esp-idf/tools/cmake/toolchain-esp32.cmake \
..

View File

@ -0,0 +1,85 @@
I (12395) SYSTEM: task stack left: 29028 Bytes
I (12395) SYSTEM: heap left: 4379580 Bytes
I (12695) opencv_tests: Image read of 399x473x3, with 0 pixel depth
I (12695) opencv_tests: ==================== Thresholding tests ====================
Time taken by Binary threshold: 30 [ms]
Time taken by Triangle threshold: 49 [ms]
Time taken by OTSU threshold: 52 [ms]
Time taken by To zero threshold: 30 [ms]
I (13235) SYSTEM: task stack left: 29028 Bytes
I (13235) SYSTEM: heap left: 3813264 Bytes
I (13235) opencv_tests: ==================== Blurring tests ====================
Time taken by GaussianBlur: 1102 [ms]
Time taken by medianBlur: 1596 [ms]
Time taken by bilateralFilter: 2773 [ms]
I (29665) SYSTEM: task stack left: 27340 Bytes
I (29665) SYSTEM: heap left: 3812992 Bytes
I (29665) opencv_tests: =========== Morphology transformations tests ===========
Time taken by erode: 355 [ms]
Time taken by dilate: 355 [ms]
Time taken by open: 686 [ms]
I (33875) SYSTEM: task stack left: 27340 Bytes
I (33875) SYSTEM: heap left: 3812992 Bytes
I (33875) opencv_tests: ==================== Resizing tests ====================
Time taken by linear resize: 109 [ms]
Time taken by cubic resize: 337 [ms]
Time taken by pyrUp: 499 [ms]
Time taken by pyrDown: 77 [ms]
I (36955) SYSTEM: task stack left: 936 Bytes
I (36955) SYSTEM: heap left: 3812992 Bytes
I (36955) opencv_tests: ================= Edge detection tests =================
Time taken by Sobel: 153 [ms]
Time taken by Canny: 324 [ms]
I (37805) SYSTEM: task stack left: 936 Bytes
I (37805) SYSTEM: heap left: 3812992 Bytes
OpenCV compiled with :
cmake \
-DCMAKE_BUILD_TYPE=Release \
-DESP32=ON \
-DBUILD_SHARED_LIBS=OFF \
-DCV_DISABLE_OPTIMIZATION=ON \
-DWITH_IPP=OFF \
-DWITH_TBB=OFF \
-DWITH_OPENMP=OFF \
-DWITH_PTHREADS_PF=OFF \
-DWITH_QUIRC=OFF \
-DWITH_1394=OFF \
-DWITH_CUDA=OFF \
-DWITH_OPENCL=OFF \
-DWITH_OPENCLAMDFFT=OFF \
-DWITH_OPENCLAMDBLAS=OFF \
-DWITH_VA_INTEL=OFF \
\
-DWITH_GSTREAMER=OFF \
-DWITH_GTK=OFF \
-DWITH_JASPER=OFF \
-DWITH_JPEG=OFF \
-DWITH_WEBP=OFF \
-DBUILD_ZLIB=ON \
-DBUILD_PNG=ON \
-DWITH_TIFF=OFF \
-DWITH_V4L=OFF \
-DWITH_ITT=OFF \
-DWITH_PROTOBUF=OFF \
-DWITH_IMGCODEC_HDR=OFF \
-DWITH_IMGCODEC_SUNRASTER=OFF \
-DWITH_IMGCODEC_PXM=OFF \
-DWITH_IMGCODEC_PFM=OFF \
\
-DBUILD_LIST=core,imgproc,imgcodecs \
-DBUILD_JAVA=OFF \
-DBUILD_opencv_python=OFF \
-DBUILD_opencv_java=OFF \
\
-DBUILD_opencv_apps=OFF \
-DBUILD_PACKAGE=OFF \
-DBUILD_PERF_TESTS=OFF \
-DBUILD_TESTS=OFF \
-DCV_ENABLE_INTRINSICS=OFF \
-DCV_TRACE=OFF \
-DOPENCV_ENABLE_MEMALIGN=OFF \
\
-DCMAKE_TOOLCHAIN_FILE=~/esp/esp-idf/tools/cmake/toolchain-esp32.cmake \
..

View File

@ -81,7 +81,7 @@ void test_spiffs()
fgets(line, sizeof(line), f);
fclose(f);
printf("Read from file: '%s'", line);
printf("Read from file: '%s'\n", line);
/* Images reading/writing tests */
Mat src;
@ -203,7 +203,7 @@ void app_main(void)
ESP_LOGI(TAG, "Image read of %dx%dx%d, with %d pixel depth", src.rows, src.cols, src.channels(), src.depth());
/* Conversions and thresholds tests */
//test_thresholds(src);
test_thresholds(src);
disp_mem_infos();
/* Blurring tests */

View File

@ -21,7 +21,8 @@ class AllocatorStatistics : public AllocatorStatisticsInterface
{
protected:
#ifdef CV_CXX11
std::atomic<long> curr, total, total_allocs, peak; // ESP32 modification (from <long long> to <long>)
// std::atomic<long long> curr, total, total_allocs, peak;
std::atomic<long> curr, total, total_allocs, peak; // esp32 doesn't support hardware 64bit atomic. FIXME: add software support
#else
volatile long long curr, total, total_allocs, peak; // overflow is possible, CV_XADD operates with 'int' only
#endif

View File

@ -8,7 +8,7 @@
/* #undef CV_ENABLE_INTRINSICS */
/* OpenCV additional optimized code */
#define CV_DISABLE_OPTIMIZATION
/* #undef CV_DISABLE_OPTIMIZATION */
/* Compile for 'real' NVIDIA GPU architectures */
#define CUDA_ARCH_BIN ""

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -21,7 +21,8 @@ class AllocatorStatistics : public AllocatorStatisticsInterface
{
protected:
#ifdef CV_CXX11
std::atomic<long> curr, total, total_allocs, peak; // ESP32 modification (from <long long> to <long>)
// std::atomic<long long> curr, total, total_allocs, peak;
std::atomic<long> curr, total, total_allocs, peak; // esp32 doesn't support hardware 64bit atomic. FIXME: add software support
#else
volatile long long curr, total, total_allocs, peak; // overflow is possible, CV_XADD operates with 'int' only
#endif

View File

@ -8,7 +8,7 @@
/* #undef CV_ENABLE_INTRINSICS */
/* OpenCV additional optimized code */
#define CV_DISABLE_OPTIMIZATION
/* #undef CV_DISABLE_OPTIMIZATION */
/* Compile for 'real' NVIDIA GPU architectures */
#define CUDA_ARCH_BIN ""

View File

@ -40,7 +40,7 @@ else
fi
CMAKE_ARGS="-DCMAKE_BUILD_TYPE=Release -DESP32=ON -DBUILD_SHARED_LIBS=OFF -DCV_DISABLE_OPTIMIZATION=ON -DWITH_IPP=OFF -DWITH_TBB=OFF -DWITH_OPENMP=OFF -DWITH_PTHREADS_PF=OFF -DWITH_QUIRC=OFF -DWITH_1394=OFF -DWITH_CUDA=OFF -DWITH_OPENCL=OFF -DWITH_OPENCLAMDFFT=OFF -DWITH_OPENCLAMDBLAS=OFF -DWITH_VA_INTEL=OFF -DWITH_GSTREAMER=OFF -DWITH_GTK=OFF -DWITH_JASPER=OFF -DWITH_JPEG=OFF -DWITH_WEBP=OFF -DBUILD_ZLIB=ON -DBUILD_PNG=ON -DWITH_TIFF=OFF -DWITH_V4L=OFF -DWITH_ITT=OFF -DWITH_PROTOBUF=OFF -DWITH_IMGCODEC_HDR=OFF -DWITH_IMGCODEC_SUNRASTER=OFF -DWITH_IMGCODEC_PXM=OFF -DWITH_IMGCODEC_PFM=OFF -DBUILD_LIST=${OPENCV_MODULES_LIST} -DBUILD_JAVA=OFF -DBUILD_opencv_python=OFF -DBUILD_opencv_java=OFF -DBUILD_opencv_apps=OFF -DBUILD_PACKAGE=OFF -DBUILD_PERF_TESTS=OFF -DBUILD_TESTS=OFF -DCV_ENABLE_INTRINSICS=OFF -DCV_TRACE=OFF -DOPENCV_ENABLE_MEMALIGN=OFF -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_CMAKE_PATH}"
CMAKE_ARGS="-DCMAKE_BUILD_TYPE=Release -DESP32=ON -DBUILD_SHARED_LIBS=OFF -DCV_DISABLE_OPTIMIZATION=OFF -DWITH_IPP=OFF -DWITH_TBB=OFF -DWITH_OPENMP=OFF -DWITH_PTHREADS_PF=OFF -DWITH_QUIRC=OFF -DWITH_1394=OFF -DWITH_CUDA=OFF -DWITH_OPENCL=OFF -DWITH_OPENCLAMDFFT=OFF -DWITH_OPENCLAMDBLAS=OFF -DWITH_VA_INTEL=OFF -DWITH_EIGEN=OFF -DWITH_GSTREAMER=OFF -DWITH_GTK=OFF -DWITH_JASPER=OFF -DWITH_JPEG=OFF -DWITH_WEBP=OFF -DBUILD_ZLIB=ON -DBUILD_PNG=ON -DWITH_TIFF=OFF -DWITH_V4L=OFF -DWITH_LAPACK=OFF -DWITH_ITT=OFF -DWITH_PROTOBUF=OFF -DWITH_IMGCODEC_HDR=OFF -DWITH_IMGCODEC_SUNRASTER=OFF -DWITH_IMGCODEC_PXM=OFF -DWITH_IMGCODEC_PFM=OFF -DBUILD_LIST=${OPENCV_MODULES_LIST} -DBUILD_JAVA=OFF -DBUILD_opencv_python=OFF -DBUILD_opencv_java=OFF -DBUILD_opencv_apps=OFF -DBUILD_PACKAGE=OFF -DBUILD_PERF_TESTS=OFF -DBUILD_TESTS=OFF -DCV_ENABLE_INTRINSICS=OFF -DCV_TRACE=OFF -DOPENCV_ENABLE_MEMALIGN=OFF -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_CMAKE_PATH}"
### configure and build opencv ###