opencv/modules
HAN Liutong 07bf9cb013
Merge pull request #24325 from hanliutong:rewrite
Rewrite Universal Intrinsic code: float related part #24325

The goal of this series of PRs is to modify the SIMD code blocks guarded by CV_SIMD macro: rewrite them by using the new Universal Intrinsic API.

The series of PRs is listed below:
#23885 First patch, an example
#23980 Core module
#24058 ImgProc module, part 1
#24132 ImgProc module, part 2
#24166 ImgProc module, part 3
#24301 Features2d and calib3d module
#24324 Gapi module

This patch (hopefully) is the last one in the series. 

This patch mainly involves 3 parts
1. Add some modifications related to float (CV_SIMD_64F)
2. Use `#if (CV_SIMD || CV_SIMD_SCALABLE)` instead of `#if CV_SIMD || CV_SIMD_SCALABLE`, 
    then we can get the `CV_SIMD` module that is not enabled for `CV_SIMD_SCALABLE` by looking for `if CV_SIMD`
3. Summary of `CV_SIMD` blocks that remains unmodified: Updated comments
    - Some blocks will cause test fail when enable for RVV, marked as `TODO: enable for CV_SIMD_SCALABLE, ....`
    - Some blocks can not be rewrited directly. (Not commented in the source code, just listed here)
      - ./modules/core/src/mathfuncs_core.simd.hpp (Vector type wrapped in class/struct)
      - ./modules/imgproc/src/color_lab.cpp (Array of vector type)
      - ./modules/imgproc/src/color_rgb.simd.hpp (Array of vector type)
      - ./modules/imgproc/src/sumpixels.simd.hpp (fixed length algorithm, strongly ralated with `CV_SIMD_WIDTH`)
      These algorithms will need to be redesigned to accommodate scalable backends.

### Pull Request Readiness Checklist

See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request

- [ ] I agree to contribute to the project under Apache 2 License.
- [ ] To the best of my knowledge, the proposed patch is not based on a code under GPL or another license that is incompatible with OpenCV
- [ ] The PR is proposed to the proper branch
- [ ] There is a reference to the original bug report and related work
- [ ] There is accuracy test, performance test and test data in opencv_extra repository, if applicable
      Patch to opencv_extra has the same branch name.
- [ ] The feature is well documented and sample code can be built with the project CMake
2023-10-05 17:57:25 +03:00
..
calib3d Merge pull request #24325 from hanliutong:rewrite 2023-10-05 17:57:25 +03:00
core Merge pull request #24325 from hanliutong:rewrite 2023-10-05 17:57:25 +03:00
dnn Merge pull request #24325 from hanliutong:rewrite 2023-10-05 17:57:25 +03:00
features2d Merge pull request #24323 from georgthegreat:akaze-variadic 2023-10-03 16:16:41 +03:00
flann Merge pull request #24028 from VadimLevin:dev/vlevin/fix-flann-python-bindings 2023-07-21 12:44:56 +03:00
gapi 3rdparty: update ade version 2023-09-28 12:45:34 +03:00
highgui style: remove extraneous std::cout 2023-08-14 19:11:14 -04:00
imgcodecs Merge pull request #24343 from mshabunin:fix-test-writes 2023-10-03 16:34:25 +03:00
imgproc Merge pull request #24325 from hanliutong:rewrite 2023-10-05 17:57:25 +03:00
java Fail Java test suite, execution, if one of test failed. 2023-10-01 18:31:04 +03:00
js Merge pull request #24288 from tailsu:sd/emscripten-3.1.45-fixes 2023-09-19 08:09:18 +03:00
ml Merge remote-tracking branch 'origin/3.4' into merge-3.4 2023-04-21 10:55:04 +03:00
objc Backport 5.x: Support for module names that start from digit in ObjC bindings generator. 2023-05-25 11:45:59 +03:00
objdetect Merge pull request #24354 from asmorkalov:as/charuco_ub 2023-10-03 17:45:42 +03:00
photo Deprecated convertTypeStr and made new variant that also takes the buffer size 2023-04-26 09:48:15 -04:00
python feat: re-export cv2.typing module as typing 2023-10-03 14:12:55 +03:00
stitching Merge pull request #23740 from Peekabooc:4.x 2023-06-09 13:40:02 +03:00
ts Skip test cases in case of SkipTestException in SetUp 2023-09-20 13:27:06 +03:00
video Warnings fix on Windows. 2023-09-20 16:53:40 +03:00
videoio Merge pull request #24239 from asmorkalov:as/msmf_returned_fourcc 2023-09-11 11:00:54 +03:00
world cmake: VERSION_GREATER_EQUAL is not supported in CMake 3.5.1 2022-12-26 17:41:53 +00:00