Performance Indicator

This section provides you with VP performance test instructions and shows you the performance data result statistics for reference.

Test Platform

Test conditions (hardware and software platform requirements):

  • Test development board: J6 development board.
  • OS: Linux.
  • System software: LNX-PL4.0-DB-20240822 release 20240822-222755.
  • OpenCV version: 3.4.5.
  • OpenCV runtime environment: A78 single-threaded.

Test Method

  • Performance test method: Since the time consumed to run the operator will fluctuate, here we take the average performance data of 100 runs of the operator.
  • Test time with steady_clock.
std::chrono::duration_cast<std::chrono::microseconds>(std::chrono::steady_clock::now().time_since_epoch()).count();
  • Data description:
    • Task time: from the creation of the containing task (e.g. hbVPBilateralFilter) to the end of the releasing task (hbUCPReleaseTask).
    • Baseline Time: OpenCV execution time
    • Ratio: Baseline Avg / Task Avg
  • Error assessment: the error is mainly caused by the interpolation implementation in the algorithm, edge processing, and the type of computational data is different from some of the processes, the following metrics can be used to assess the error.
    • MaxAbsDev: absolute deviation of the maximum pixel value.
    • SumAbsDev: sum of absolute deviations of pixel values.
    • MSE: Mean square error of pixel value.

Performance Comparison

Note

The image size used for DSP GDC test is 1080P(1920x1080), Codec(3840x2160), Lkof(1080P), Stitch(Input 2 sheets 320x320, Output 640x640), Pyramid(Input 1080P, Output 960x540). The performance of pyramid core 2 is about 2/3 of core 0/1.

AlgorithmParametersVision processes(us)           OpenCV 3.4.5 A78(us)Ratio(default DSP)             
bilateralFilter1920x1080 Y, kernelSize=5, sigmaColor=15, sigmaSpace=242245471213.0
boxFilter1920x1080 Y, kernelHW=3x351019563.833
canny1920x1080 Y, kernelSize=3, threshold1=100, threshold2=400395660691.5
cornerHarris1920x1080 Y, blockSize=3, sensitivity=0.04, kernelSize=33748277546.442
cvtColor1920x1080 RGB, dst: y93920662.2
dilate1920x1080 Y, kernelHW=3x35376081.1
equalizeHist1920x1080 Y71526973.77
erode1920x1080 Y, kernelHW=3x35346101.1
filter2D1920x1080 Y, kernelHW=5x511442288720.0
flip1920x1080 Y, y-axis49511272.28
gaussianBlur1920x1080 Y, kernelSize=3, sigmaX=0, sigmaY=050824604.8
integral1920x1080 Y, y-axis120412881.07
laplacianFilter1920x1080 Y, kernelSize=3, normalize=083653346.37
lkof1920x1080 nv12, pyrLevel=5, winSize=7, criteriaEpsilon=0, maxIteration=5, minEigThreshold=1e-477874299.5
medianBlur1920x1080 Y, maskWidth=7243021001734.1
pyrDown1920x1080 nv12, DSP:interpolation=gaussian PYM:interpolation=HB_VP_INTER_LINEARDSP: 1211
PYM(normal): 1996
PYM(low): 2905
5243DSP: 4.3
PYM(normal): 2.6
PYM(low): 1.8
pyrUp1920x1080 Y117168355.8
remap1920x1080 nv12, interpolation=HB_VP_INTER_LINEARDSP: 10646
GDC: 3569
20287DSP: 1.9
GDC: 5.3
resize1920x1080 Y, xScale=1.5 yScale=1.5,
interpolation=HB_VP_INTER_LINEAR
96026922.8
rotate1920x1080 Y, rotateCode=HB_VP_ROTATE_90_CLOCKWISE55833826.06
sepFilter2D1920x1080 Y, kernelHW=1x55511283123.2
sobel1920x1080 Y, kernelSize=3, scale=1, delta=0, dx=1, dy=0118518401.55
transpose1920x1080 Y55723164.15
warpAffine1920x1080 nv12, scale=1.0, rotate=45, translate=0106454335.1
warpPerspective1920x1080 Y, interpolation=HB_VP_INTER_LINEAR, transformMatrix=[0.9, 0.05, 15.0, 0.05, 0.9, 15.0, 0.0001, 0.0001, 1.1]19232043510.6
stitch640x480 nv12, stitch num=4369969Stitch:2.6
jpegDecode3840x2160 src: jpg, dst: nv127398127983Codec: 17.3
jpegEncode3840x2160 src: nv12, dst: jpg9271212206Codec: 22.9
H265Decode3840x2160 src: h.265, dst: nv129390--
H265Encode3840x2160 src: nv12, dst: h.26510800--
H264Decode3840x2160 src: h.264, dst: nv1211104--
H264Encode3840x2160 src: nv12, dst: h.26410251--