# Evaluate FastCV acceleration

## How to measure FastCV HAL vs OpenCV performance

Compile the build with either of the following options

- To enable FastCV acceleration, use the `-DWITH_FASTCV=ON` option
- To enable default OpenCV on CPU, use the `-DWITH_FASTCV=OFF` option

Note

By default OpenCV acceleration with FastCV is enabled.

Once compilation is done, flash the build and boot the device.
All libraries are present in the `/usr/lib/` directory.

1. Copy the test bins to `/usr/bin` to run the tests.

scp -r opencv_perf_core root@[IP-address]:/usr/bin/
        Copy to clipboard
2. Copy the test data to the device if not previously copied.

    To obtain the test data, clone the projects at [https://github.com/opencv/opencv_extra/tree/4.11.0](https://github.com/opencv/opencv_extra/tree/4.11.0).

    Use the `scp` command to push the test data to the desired location on the host. For example:

scp -r [file] root@[IP-ADDR]:/tmp
        Copy to clipboard
3. To start the test on the target device, run the following commands.

cd /usr/bin/
        chmod 777 opencv_perf*
        export OPENCV_OPENCL_RUNTIME=disabled && export OPENCV_TEST_DATA_PATH=/tmp && /usr/bin/opencv_perf_core --gtest_filter=ArithmMixedTest.subtract/2 --perf_min_samples=100 --perf_force_samples=100 >> results_Arithm.txt
        Copy to clipboard

The above commands run different test cases for the subtract API, with each test case looped over 100 times.

The results are collected in a `results_Arithm.txt` text file.

`results_Arithm.txt` includes details for different test cases including the test name, number of samples, resolution, mean time,
pass/fail status. For the following test case with FastCV acceleration enabled, the total time taken was **16 ms**.

![../_images/testing-fastcv-results.png](data:image/png;base64,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)

**FastCV performance results**

With the default OpenCV, for the same test case, the total time taken was 23 ms.

![../_images/testing-opencv-results.png](data:image/png;base64,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)

**OpenCV performance results**

Run other test cases and compare the latency numbers between default OpenCV and FastCV accelerated OpenCV.

## Supported OpenCV APIs and corresponding FastCV APIs

| OpenCV module | OpenCV API | Underlying FastCV API for OpenCV acceleration |
| --- | --- | --- |
| IMGPROC | medianBlur | fcvFilterMedian3x3u8\_v3 |
| IMGPROC | sobel | fcvFilterSobel3x3u8s16 |
| IMGPROC | sobel | fcvFilterSobel5x5u8s16 |
| IMGPROC | sobel | fcvFilterSobel7x7u8s16 |
| IMGPROC | boxFilter | fcvBoxFilter3x3u8\_v3 |
| IMGPROC | boxFilter | fcvBoxFilter5x5u8\_v2 |
| IMGPROC | adaptiveThreshold | fcvAdaptiveThresholdGaussian3x3u8\_v2 |
| IMGPROC | adaptiveThreshold | fcvAdaptiveThresholdGaussian5x5u8\_v2 |
| IMGPROC | adaptiveThreshold | fcvAdaptiveThresholdMean3x3u8\_v2 |
| IMGPROC | adaptiveThreshold | fcvAdaptiveThresholdMean5x5u8\_v2 |
| IMGPROC | subtract | fcvImageDiffu8f32\_v2 |
| IMGPROC | pyrDown | fcvPyramidCreateu8\_v4 |
| IMGPROC | cvtColor | fcvColorRGB888toYCrCbu8\_v3 |
| IMGPROC | cvtColor | fcvColorRGB888ToHSV888u8 |
| IMGPROC | GaussianBlur | fcvFilterGaussian5x5u8\_v3 |
| IMGPROC | GaussianBlur | fcvFilterGaussian3x3u8\_v4 |
| IMGPROC | cvWarpPerspective | fcvWarpPerspectiveu8\_v5 |
| IMGPROC | Canny | fcvFilterCannyu8 |
| IMGPROC | boxFilter | fcvBoxFilterNxNf32 |
| CORE | lut | fcvTableLookupu8 |
| CORE | norm | fcvHammingDistanceu8 |
| CORE | multiply | fcvElementMultiplyu8u16\_v2 |
| CORE | multiply | fcvElementMultiplyu8 |
| CORE | multiply | fcvElementMultiplys16 |
| CORE | multiply | fcvElementMultiplyf32 |
| CORE | transpose | fcvTransposeu8\_v2 |
| CORE | transpose | fcvTransposeu16\_v2 |
| CORE | transpose | fcvTransposef32\_v2 |
| CORE | meanStdDev | fcvImageIntensityStats\_v2 |
| CORE | flip | fcvFlipu8 |
| CORE | flip | fcvFlipu16 |
| CORE | flip | fcvFlipRGB888u8 |
| CORE | rotate | fcvRotateImageu8 |
| CORE | rotate | fcvRotateImageInterleavedu8 |
| CORE | addWeighted | fcvAddWeightedu8\_v2 |
| CORE | SVD | fcvSVDf32\_v2 |
| CORE | Gemm | fcvMatrixMultiplyf32\_v2 |
| CORE | Gemm | fcvMultiplyScalarf32 |
| CORE | Gemm | fcvAddf32\_v2 |
|  |  |  |
|  |  |  |
|  |  |  |
|  |  |  |
|  |  |  |
|  |  |  |
|  |  |  |
|  |  |  |
|  |  |  |
|  |  |  |
|  |  |  |
|  |  |  |
|  |  |  |
|  |  |  |
|  |  |  |
|  |  |  |
|  |  |  |
|  |  |  |
|  |  |  |

| OpenCV extension APIs | FastCV APIs used | Description |
| --- | --- | --- |
| matmuls8s32 | fcvMatrixMultiplys8s32 | Matrix multiplication of two int8\_t type matrices |
| clusterEuclidean | fcvClusterEuclideanu8 | General function for computing cluster centers and cluster bindings |
| FAST10 | fcvCornerFast10InMaskScoreu8 | Extracts FAST corners and scores from the image based on the mask.<br><br><br>Source msut be 8-bit grayscale image where keypoints are detected |
| FAST10 | fcvCornerFast10InMasku8 | Extracts FAST corners from the image. |
| FAST10 | fcvCornerFast10Scoreu8 | Extracts FAST corners and scores from the image |
| FAST10 | fcvCornerFast10u8 | Extracts FAST corners from the image. |
| FFT | fcvFFTu8 | Computes the 1D or 2D Fast Fourier Transform of a real valued matrix. |
| IFFT | fcvIFFTf32 | Computes the 1D or 2D Inverse Fast Fourier Transform of a complex valued matrix. |
| fillConvexPoly | fcvFillConvexPolyu8 | This function fills the interior of a convex polygon with the specified color. |
| houghLines | fcvHoughLineu8 | Performs Hough Line detection |
| moments | fcvImageMomentsu8 | Computes weighted average (moment) of the image pixels’ intensities<br><br><br>Source pointer to the original Input must be of data 8-bit image. |
| moments | fcvImageMomentss32 | Computes weighted average (moment) of the image pixels’ intensities<br><br><br>Source Pointer to the original input must be of data type int32\_t. |
| moments | fcvImageMomentsf32 | Computes weighted average (moment) of the image pixels’ intensities<br><br><br>Source pointer to the original Input must be of data type float32\_t. |
| runMSER | fcvMserInit | Function to initialize MSER. |
| runMSER | fcvMserNN8Init | Function to initialize 8-neighbor MSER |
| runMSER | fcvMserExtu8\_v3 | Function to invoke MSER with a smaller memory footprint, the (optional) output of contour bound boxes, and additional information. |
| runMSER | fcvMserExtNN8u8 | Function to invoke 8-neighbor MSER, , with additional outputs for each contour. |
| runMSER | fcvMserNN8u8 | Function to invoke 8-neighbor MSER. |
| runMSER | fcvMserRelease | Function to release  MSER resources. |
| remap | fcvRemapu8\_v2 | Applies a generic geometrical transformation to a greyscale CV\_8UC1 image. |
| remapRGBA | fcvRemapRGBA8888BLu8 | Applies a generic geometrical transformation to a 4-channel CV\_8UC4 image with bilinear interpolation |
| remapRGBA | fcvRemapRGBA8888NNu8 | Applies a generic geometrical transformation to a 4-channel CV\_8UC4 image with  nearest neighbor interpolation |
| resizeDownBy2 | fcvScaleDownBy2u8\_v2 | Down-scale the image by averaging each 2x2 pixel block |
| resizeDownBy4 | fcvScaleDownBy4u8\_v2 | Down-scale the image by averaging each 4x4 pixel block |
| meanShift | fcvMeanShiftu8 | Applies the meanshift procedure and obtains the final converged position.<br><br><br>Source image  must be 8 bit grayscale image. |
| meanShift | fcvMeanShifts32 | Applies the meanshift procedure and obtains the final converged position.<br><br><br>Source image  must be int 32bit grayscale image. |
| meanShift | fcvMeanShiftf32 | Applies the meanshift procedure and obtains the final converged position.<br><br><br>Source image must be  float 32bit grayscale image. |
| bilateralRecursive | fcvBilateralFilterRecursiveu8 | Here the smoothing is actually performed in gradient domain. |
| thresholdRange | fcvFilterThresholdRangeu8\_v2 | Binarizes a grayscale image based on a pair of threshold values. |
| bilateralFilter | fcvBilateralFilter5x5u8\_v3 | Bilateral smoothing with 5x5 bilateral kernel |
| bilateralFilter | fcvBilateralFilter7x7u8\_v3 | Bilateral smoothing with 7x7 bilateral kernel |
| bilateralFilter | fcvBilateralFilter9x9u8\_v3 | Bilateral smoothing with 9x9 bilateral kernel |
| calcHist | fcvImageIntensityHistogram | Creates a histogram of intensities for a rectangular region of a grayscale image. |
| gaussianBlur | fcvFilterGaussian3x3u8\_v4 | Blurs an image with 3x3 Gaussian filter with border handling scheme specified by user |
| gaussianBlur | fcvFilterGaussian5x5u8\_v3 | Blurs an image with 5x5 Gaussian filter |
| gaussianBlur | fcvFilterGaussian5x5s16\_v3 | Blurs an image with 5x5 Gaussian filter |
| gaussianBlur | fcvFilterGaussian5x5s32\_v3 | Blurs an image with 5x5 Gaussian filter |
| gaussianBlur | fcvFilterGaussian11x11u8\_v2 | Blurs an image with 11x11 Gaussian filter |
| filter2D | fcvFilterCorrNxNu8 | NxN correlation with non-separable kernel. Border values are ignored in this function. |
| filter2D | fcvFilterCorrNxNu8s16 | NxN correlation with non-separable kernel. Border values are ignored in this function. |
| filter2D | fcvFilterCorrNxNu8f32 | NxN correlation with non-separable kernel. Border values are ignored in this function. |
| sepFilter2D | fcvFilterCorrSepMxNu8 | MxN correlation with separable kernel. |
| sepFilter2D | fcvFilterCorrSep9x9s16\_v2 | 9x9 FIR filter (convolution) with seperable kernel. |
| sepFilter2D | fcvFilterCorrSep11x11s16\_v2 | 11x11 FIR filter (convolution) with seperable kernel. |
| sepFilter2D | fcvFilterCorrSep13x13s16\_v2 | 13x13 correlation with separable kernel. |
| sepFilter2D | fcvFilterCorrSep15x15s16\_v2 | 15x15 correlation with separable kernel. |
| sepFilter2D | fcvFilterCorrSep17x17s16\_v2 | 17x17 correlation with separable kernel. |
| sepFilter2D | fcvFilterCorrSepNxNs16 | NxN correlation with separable kernel. |
| sobel3x3u8 | fcvImageGradientSobelPlanars8\_v2 | Creates a 2D gradient image from source luminance data. This function computes central differences on 3x3 neighborhood and then convolves the result with Sobel kernel |
| sobel3x3u9 | fcvImageGradientSobelPlanars16\_v2 | Creates a 2D gradient image from source luminance data. This function computes central differences on 3x3 neighborhood and then convolves the result with Sobel  kernel |
| sobel3x3u10 | fcvImageGradientSobelPlanars16\_v3 | Creates a 2D gradient image from source luminance data. This function computes central differences on 3x3 neighborhood and then convolves the result with Sobel kernel |
| sobel3x3u11 | fcvImageGradientSobelPlanarf32\_v2 | Creates a 2D gradient image from source luminance data.This function computes central differences on 3x3 neighborhood and then convolves the result with Sobel kernel |
| sobel3x3u12 | fcvImageGradientSobelPlanarf32\_v3 | Creates a 2D gradient image from source luminance data. This function computes central differences on 3x3 neighborhood and then convolves the result with Sobel kernel |
| sobel | fcvFilterSobel3x3u8\_v2 | 3x3 Sobel edge filter |
| sobel | fcvFilterSobel3x3u8s16 | Creates a 2D gradient image from source luminance data without normalization.This function computes the gradient of the input image by convolution with the  3x3 Sobel kernel. |
| sobel | fcvFilterSobel5x5u8s16 | Creates a 2D gradient image from source luminance data without normalization.This function computes the gradient of the input image by convolution with the  5x5 Sobel kernel. |
| sobel | fcvFilterSobel7x7u8s16 | Creates a 2D gradient image from source luminance data without normalization.This function computes the gradient of the input image by convolution with the 7x7 Sobel kernel |
| DCT | fcvDCTu8 | Performs forward discrete Cosine transform on uint8\_t pixels |
| iDCT | fcvIDCTs16 | Performs inverse discrete cosine transform on int16\_t coefficients |
| sobelPyramid | fcvPyramidAllocate | Allocates memory for Pyramid |
| sobelPyramid | fcvPyramidAllocate\_v2 | Allocates memory for Pyramid |
| sobelPyramid | fcvPyramidAllocate\_v3 | Allocates memory for Pyramid |
| sobelPyramid | fcvPyramidSobelGradientCreatei8 | Creates a gradient pyramid of integer8 from an image pyramid of uint8\_t |
| sobelPyramid | fcvPyramidSobelGradientCreatei16 | Creates a gradient pyramid of int16\_t from an image pyramid of uint8\_t |
| sobelPyramid | fcvPyramidSobelGradientCreatef32 | Creates a gradient pyramid of float32 from an image pyramid of uint8\_t |
| sobelPyramid | fcvPyramidDelete | Deallocates an array of fcvPyramidLevel. Can be used for any type(f32/s8/u8). |
| sobelPyramid | fcvPyramidDelete\_v2 | Deallocates an array of fcvPyramidLevel. Can be used for any type(f32/s8/u8). |
| sobelPyramid | fcvPyramidCreatef32\_v2 | Builds an image pyramid (with stride). Memory should be deallocated using fcvPyramidDelete\_v2 |
| sobelPyramid | fcvPyramidCreateu8\_v4 | Builds a Gaussian image pyramid. |
| trackOpticalFlowLK | fcvTrackLKOpticalFlowu8\_v3 | Optical flow (with stride so ROI can be supported) |
| trackOpticalFlowLK | fcvTrackLKOpticalFlowu8 | Optical flow. Bitwidth optimized implementation |
| warpPerspective2Plane | fcv2PlaneWarpPerspectiveu8 | Perspective warp two images using the same transformation. |
| ResizeDown | FcvScaleDownMNu8 | Image downscaling using MN method |
| ResizeDown | fcvScaleDownMNInterleaveu8 | Interleaved image downscaling using MN method |
| integrateImageYUV | fcvIntegrateImageYCbCr420PseudoPlanaru8 | This function calculates the integral images of a YCbCr420 image,<br>where the input YCbCr420 has UV interleaved. |
| NormalizeLocalBox | fcvNormalizeLocalBoxu8 | Calculate the local subtractive and contrastive normalization of the image. |
| NormalizeLocalBox | fcvNormalizeLocalBoxf32 | Calculate the local subtractive and contrastive normalization of the image. |
| Merge | fcvChannelCombine2Planesu8 | Combine two channels in an interleaved fashion |
| Merge | fcvChannelCombine3Planesu8 | Combine three channels in an interleaved fashion |
| Merge | fcvChannelCombine4Planesu8 | Combine four channels in an interleaved fashion |
| split | fcvDeinterleaveu8 | Performe image deinterleave for unsigned byte data. |
| split | fcvChannelExtractu8 | Extract channel as a single uint8\_t type plane from<br>an interleaved or multi-planar image format |
| warpAffine | fcvTransformAffineClippedu8\_v3 | Applies an affine transformation on a grayscale image using a 2x3 matrix. |
| warpAffine3Plane | fcv3ChannelTransformAffineClippedBCu8 | Applies an affine transformation on a 3-color channel image<br>using a 2x3 matrix using bicubic interpolation. |
| warpPatchAffine | fcvTransformAffineu8\_v2 | Warps the patch centered at nPos in the input image using the affine  transform in nAffine |
| warpPerspective | fcvWarpPerspectiveu8\_v5 | Warps a grayscale image using the a perspective projection transformation<br>matrix (also known as a homography). |
| arithmetic\_op | fcvAddu8 | Matrix addition of two uint8\_t type matrixes to one uint8\_t matrix |
| arithmetic\_op | fcvAddf32\_v2 | Matrix addition of two float32\_t type matrixes. |
| arithmetic\_op | fcvAdds16\_v2 | Matrix addition of two int16\_t type matrixes which allows in-place operation |
| arithmetic\_op | fcvSubtracts16 | Matrix substration of two uint16\_t type matrixes |
| arithmetic\_op | fcvSubtractu8 | Matrix substration of two uint8\_t type matrixes |
|  |  |  |
|  |  |  |
|  |  |  |
|  |  |  |
|  |  |  |
|  |  |  |
|  |  |  |
|  |  |  |
|  |  |  |

For FastCV Extension details, see [the extension’s documentation](https://docs.opencv.org/4.x/dc/db8/group__fastcv.html)

## Enable or disable FastCV acceleration

Enable

Enable FastCV HAL acceleration by including **-DWITH\_FASTCV=ON** in the OpenCV BitBake file in the
**EXTRA\_OECMAKE** options as shown below.

This flag allows compilation of OpenCV APIs with the FastCV HAL.

DEPENDS:qcom-custom-bsp += "qcom-fastcv-binaries"
    
    EXTRA_OECMAKE += "-DOPENCV_ALLOW_DOWNLOADS=ON"
    EXTRA_OECMAKE:append:qcom-custom-bsp = " -DWITH_FASTCV=ON "
    #python () {
    Copy to clipboard

Disable

Disable FastCV HAL acceleration by including **-DWITH\_FASTCV=OFF** in the OpenCV BitBake file in the
`EXTRA_OECMAKE` options as shown below and then recompile the OpenCV recipe using the devtool method.

DEPENDS:qcom-custom-bsp += "qcom-fastcv-binaries"
    
    EXTRA_OECMAKE:append:qcom-custom-bsp = " -DWITH_FASTCV=OFF "
    #python () {
    #    bsp_type = d.getVar('BSP_TYPE')
    Copy to clipboard

The following shows how this flag is included in the CMakeLists files (`opencv/3rdparty/fastcv/CMakeLists.txt`):

if(NOT WITH_FASTCV OR NOT FASTCV_DIR)
       message(STATUS "FastCV is not available, disabling related HAL and stuff")
       return()
    endif()
    
    if(NOT ANDROID AND NOT UNIX)
       message(FATAL_ERROR "FastCV HAL supports Android and UNIX only!")
    endif()
    
    set(OPENCV_3P_FASTCV_DIR ${CMAKE_CURRENT_SOURCE_DIR})
    add_subdirectory(hal)
    Copy to clipboard

The following sample is one of the FastCV HAL API implementations with FastCV APIs.

`opencv/3rdparty/fastcv/src/fastcv_hal_core.cpp`

int fastcv_hal_sub8u32f(
        const uchar*    src1_data,
        size_t          src1_step,
        const uchar*    src2_data,
        size_t          src2_step,
        float*          dst_data,
        size_t          dst_step,
        int             width,
        int             height)
    {
        INITIALIZATION_CHECK;
    
        fcvStatus status = FASTCV_SUCCESS;
    
        if (src1_step < width && src2_step < width)
        {
           src1_step = width*sizeof(uchar);
           src2_step = width*sizeof(uchar);
           dst_step  = width*sizeof(float);
        }
    
        status = fcvImageDiffu8f32_v2(src1_data, src2_data, width, height, src1_step,
                                      src2_step, dst_data, dst_step);
    
        CV_HAL_RETURN(status,hal_subtract);
    }
    Copy to clipboard

Last Published: Dec 16, 2025

[Previous Topic
Implement new sample app](https://docs.qualcomm.com/bundle/publicresource/80-70023-21/topics/sample-applications.md) [Next Topic
References](https://docs.qualcomm.com/bundle/publicresource/80-70023-21/topics/references.md)

Source: [https://docs.qualcomm.com/doc/80-70023-21/topic/fastcv-acceleration.html](https://docs.qualcomm.com/doc/80-70023-21/topic/fastcv-acceleration.html)