Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@MaximMilashchenko
Copy link
Contributor

  1. created hal for rvv 0.7.1 optimizations
  2. added efficient implementation of cvtBGRtoBGR for cases scn = dcn

@MaximMilashchenko MaximMilashchenko changed the title HAL RVV 0.7.1 HAL RVV 0.7.1 [WIP] Apr 2, 2024
@asmorkalov asmorkalov added this to the 4.10.0 milestone Apr 2, 2024
@MaximMilashchenko
Copy link
Contributor Author

Name of Test imgproc rvv071 imgproc rvv071 hal imgproc rvv071 hal vs imgproc rvv071
cvtColor8u::Size_CvtMode::(127x61, COLOR_BGR2BGRA) 0.140 0.022 6.38
cvtColor8u::Size_CvtMode::(127x61, COLOR_BGR2RGB) 0.105 0.010 10.40
cvtColor8u::Size_CvtMode::(127x61, COLOR_BGR2RGBA) 0.104 0.022 4.77
cvtColor8u::Size_CvtMode::(127x61, COLOR_BGRA2BGR) 0.157 0.021 7.46
cvtColor8u::Size_CvtMode::(127x61, COLOR_BGRA2RGBA) 0.122 0.012 10.01
cvtColor8u::Size_CvtMode::(127x61, COLOR_RGBA2BGR) 0.122 0.023 5.43
cvtColor8u::Size_CvtMode::(640x480, COLOR_BGR2BGRA) 6.599 0.805 8.20
cvtColor8u::Size_CvtMode::(640x480, COLOR_BGR2RGB) 5.554 0.310 17.90
cvtColor8u::Size_CvtMode::(640x480, COLOR_BGR2RGBA) 4.950 0.802 6.17
cvtColor8u::Size_CvtMode::(640x480, COLOR_BGRA2BGR) 9.383 1.920 4.89
cvtColor8u::Size_CvtMode::(640x480, COLOR_BGRA2RGBA) 7.535 0.366 20.60
cvtColor8u::Size_CvtMode::(640x480, COLOR_RGBA2BGR) 7.563 1.134 6.67
cvtColor8u::Size_CvtMode::(1920x1080, COLOR_BGR2BGRA) 52.921 5.478 9.66
cvtColor8u::Size_CvtMode::(1920x1080, COLOR_BGR2RGB) 42.730 2.104 20.31
cvtColor8u::Size_CvtMode::(1920x1080, COLOR_BGR2RGBA) 42.172 5.471 7.71
cvtColor8u::Size_CvtMode::(1920x1080, COLOR_BGRA2BGR) 63.203 14.091 4.49
cvtColor8u::Size_CvtMode::(1920x1080, COLOR_BGRA2RGBA) 50.810 2.339 21.73
cvtColor8u::Size_CvtMode::(1920x1080, COLOR_RGBA2BGR) 50.958 7.693 6.62

@opencv-alalek opencv-alalek marked this pull request as draft April 22, 2024 09:58
@MaximMilashchenko MaximMilashchenko changed the title HAL RVV 0.7.1 [WIP] HAL RVV 0.7.1 Apr 22, 2024
@MaximMilashchenko MaximMilashchenko marked this pull request as ready for review April 24, 2024 13:01
@mshabunin
Copy link
Contributor

Hmm... I'm observing test failures now (xuantie gcc 10.4.0, build with -DCORE=C910V, test with -cpu c910v):

[ RUN      ] Imgproc_ColorRGB.accuracy
/work/opencv/modules/ts/src/ts.cpp:618: Failure
Failed

	failure reason: Bad accuracy
	test case #11
	seed: 00000000000c5a67
-----------------------------------
	LOG:
output: Too big difference (=1.74293e+19 > 0) at (0, 0)
input array 0 type=32fC3, size=(191, 154)
ref output array 0 type=32fC3, size=(191, 154)
ref output array 1 type=32fC3, size=(191, 154)
test_case_idx = 11

-----------------------------------
	CONSOLE: .
-----------------------------------

[  FAILED  ] Imgproc_ColorRGB.accuracy (65 ms)

and

[ RUN      ] ImgProc_BGR2RGBA.regression_8696
/work/opencv/modules/imgproc/test/test_color.cpp:3140: Failure
Expected equality of these values:
  cvtest::norm(dst - src, NORM_INF)
    Which is: 55
  0.
    Which is: 0
[  FAILED  ] ImgProc_BGR2RGBA.regression_8696 (6 ms)

@asmorkalov asmorkalov modified the milestones: 4.10.0, 4.11.0 May 16, 2024
@MaximMilashchenko
Copy link
Contributor Author

MaximMilashchenko commented May 23, 2024

Hmm... I'm observing test failures now (xuantie gcc 10.4.0, build with -DCORE=C910V, test with -cpu c910v):
[ FAILED ] Imgproc_ColorRGB.accuracy (65 ms)
[ FAILED ] ImgProc_BGR2RGBA.regression_8696 (6 ms)

@mshabunin
Fixed failed tests. All tests pass successfully

@opencv-alalek
Copy link
Contributor

@MaximMilashchenko
resolved branch conflicts

git rebase should be done instead of merge.
Internal merges should be avoided.

#undef cv_hal_cvtBGRtoBGR
#define cv_hal_cvtBGRtoBGR cv::cv_hal_rvv::cvtBGRtoBGR

static const unsigned char index_array_32_no_shuffle [32]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just copying should be faster.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

excluded shuffle, data is copied

@MaximMilashchenko
Copy link
Contributor Author

Name of Test imgproc rvv071 imgproc rvv071 hal imgproc rvv071 hal vs imgproc rvv071
cvtColor8u::Size_CvtMode::(127x61, COLOR_BGR2BGRA) 0.121 0.022 5.54
cvtColor8u::Size_CvtMode::(127x61, COLOR_BGR2RGB) 0.482 0.010 50.24
cvtColor8u::Size_CvtMode::(127x61, COLOR_BGR2RGBA) 0.121 0.022 5.53
cvtColor8u::Size_CvtMode::(127x61, COLOR_BGRA2BGR) 0.102 0.019 5.23
cvtColor8u::Size_CvtMode::(127x61, COLOR_BGRA2RGBA) 0.396 0.011 36.86
cvtColor8u::Size_CvtMode::(127x61, COLOR_RGBA2BGR) 0.102 0.020 5.15
cvtColor8u::Size_CvtMode::(640x480, COLOR_BGR2BGRA) 4.782 0.811 5.90
cvtColor8u::Size_CvtMode::(640x480, COLOR_BGR2RGB) 21.559 0.303 71.05
cvtColor8u::Size_CvtMode::(640x480, COLOR_BGR2RGBA) 4.758 0.804 5.91
cvtColor8u::Size_CvtMode::(640x480, COLOR_BGRA2BGR) 4.882 1.524 3.20
cvtColor8u::Size_CvtMode::(640x480, COLOR_BGRA2RGBA) 18.136 0.366 49.60
cvtColor8u::Size_CvtMode::(640x480, COLOR_RGBA2BGR) 4.817 1.138 4.23
cvtColor8u::Size_CvtMode::(1920x1080, COLOR_BGR2BGRA) 35.403 5.493 6.45
cvtColor8u::Size_CvtMode::(1920x1080, COLOR_BGR2RGB) 146.970 2.025 72.57
cvtColor8u::Size_CvtMode::(1920x1080, COLOR_BGR2RGBA) 35.137 5.482 6.41
cvtColor8u::Size_CvtMode::(1920x1080, COLOR_BGRA2BGR) 35.017 7.508 4.66
cvtColor8u::Size_CvtMode::(1920x1080, COLOR_BGRA2RGBA) 124.247 2.295 54.14
cvtColor8u::Size_CvtMode::(1920x1080, COLOR_RGBA2BGR) 34.101 7.698 4.43

@opencv-alalek opencv-alalek merged commit adcb070 into opencv:4.x Jun 6, 2024
kozinove pushed a commit to itlab-vision/opencv_framebuffer that referenced this pull request Jun 10, 2024
* added hal for cv_hal_cvtBGRtoBGR rvv 0.7.1
@mshabunin mshabunin mentioned this pull request Jun 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants