opencv/modules/imgproc/perf
Paul Murphy a011035ed6 Merge pull request #15257 from pmur:resize
* resize: HResizeLinear reduce duplicate work

There appears to be a 2x unroll of the HResizeLinear against k,
however the k value is only incremented by 1 during the unroll. This
results in k - 1 duplicate passes when k > 1.

Likewise, the final pass may not respect the work done by the vector
loop. Start it with the offset returned by the vector op if
implemented. Note, no vector ops are implemented today.

The performance is most noticable on a linear downscale. A set of
performance tests are added to characterize this.  The performance
improvement is 10-50% depending on the scaling.

* imgproc: vectorize HResizeLinear

Performance is mostly gated by the gather operations
for x inputs.

Likewise, provide a 2x unroll against k, this reduces the
number of alpha gathers by 1/2 for larger k.

While not a 4x improvement, it still performs substantially
better under P9 for a 1.4x improvement. P8 baseline is
1.05-1.10x due to reduced VSX instruction set.

For float types, this results in a more modest
1.2x improvement.

* Update U8 processing for non-bitexact linear resize

* core: hal: vsx: improve v_load_expand_q

With a little help, we can do this quickly without gprs on
all VSX enabled targets.

* resize: Fix cn == 3 step per feedback

Per feedback, ensure we don't overrun. This was caught via the
failure observed in Test_TensorFlow.inception_accuracy.
2019-12-09 14:54:06 +03:00
..
opencl Rewite polar transforms (#11323) 2018-04-17 15:50:52 +03:00
perf_accumulate.cpp imgproc:simd Enable VSX and wide universal intrinsics for accumulate operations 2018-10-11 04:37:12 +02:00
perf_bilateral.cpp ts: refactor OpenCV tests 2018-02-03 19:39:47 +00:00
perf_blur.cpp Added performance test for blendLinear 2019-01-25 14:16:19 +03:00
perf_canny.cpp ts: refactor OpenCV tests 2018-02-03 19:39:47 +00:00
perf_contours.cpp Performance test for bounding rect estimation 2019-01-18 15:50:21 +03:00
perf_corners.cpp ts: refactor OpenCV tests 2018-02-03 19:39:47 +00:00
perf_cvt_color.cpp Bayer VNG Demosaicing Fix #2 (Merge pull request #15086) 2019-07-30 23:49:46 +03:00
perf_distanceTransform.cpp ts: refactor OpenCV tests 2018-02-03 19:39:47 +00:00
perf_filter2d.cpp perf: ignore _ovx tests 2019-03-06 15:52:23 +03:00
perf_floodfill.cpp ts: refactor OpenCV tests 2018-02-03 19:39:47 +00:00
perf_goodFeaturesToTrack.cpp ts: refactor OpenCV tests 2018-02-03 19:39:47 +00:00
perf_histogram.cpp Add CV_16UC1 support for cuda::CLAHE 2019-02-06 17:21:55 +00:00
perf_houghcircles.cpp Merge pull request #11108 from take1014:hough_4303 2018-05-23 20:42:12 +00:00
perf_houghlines.cpp Fix modules/ typos 2019-08-16 17:34:29 +03:00
perf_integral.cpp Merge pull request #15440 from everton1984:new_integral_tests 2019-09-04 19:14:00 +03:00
perf_main.cpp ts: refactor OpenCV tests 2018-02-03 19:39:47 +00:00
perf_matchTemplate.cpp ts: refactor OpenCV tests 2018-02-03 19:39:47 +00:00
perf_moments.cpp ts: refactor OpenCV tests 2018-02-03 19:39:47 +00:00
perf_morph.cpp ts: refactor OpenCV tests 2018-02-03 19:39:47 +00:00
perf_phasecorr.cpp ts: refactor OpenCV tests 2018-02-03 19:39:47 +00:00
perf_precomp.hpp ts: refactor OpenCV tests 2018-02-03 19:39:47 +00:00
perf_pyramids.cpp perf: ignore _ovx tests 2019-03-06 15:52:23 +03:00
perf_remap.cpp ts: refactor OpenCV tests 2018-02-03 19:39:47 +00:00
perf_resize.cpp Merge pull request #15257 from pmur:resize 2019-12-09 14:54:06 +03:00
perf_sepfilters.cpp ts: refactor OpenCV tests 2018-02-03 19:39:47 +00:00
perf_spatialgradient.cpp ts: refactor OpenCV tests 2018-02-03 19:39:47 +00:00
perf_threshold.cpp ts: refactor OpenCV tests 2018-02-03 19:39:47 +00:00
perf_warp.cpp 3.4: backported changes from 'master' branch 2019-08-14 16:36:08 +03:00