Darren Hsieh 873eaa3bbf [RVV] Enable Scale{ARGB,UV}RowDown{2,4,EVEN}_RVV
Run on SiFive internal FPGA:

Test case               RVV function				Speedup
I444ScaleDownBy3_Box	ScaleAddRow_RVV+ScaleAddCols(scalar)	2.8
ARGBScaleDownBy2_None	ScaleARGBRowDown2_RVV		        2.2
ARGBScaleDownBy2_Linear	ScaleARGBRowDown2Linear_RVV		5.0
ARGBScaleDownBy2_Box	ScaleARGBRowDown2Box_RVV		4.3
ARGBScaleDownBy4_None	ScaleARGBRowDownEven_RVV		1.2
ARGBScaleDownBy8_Box	ScaleARGBRowDownEvenBox_RVV		3.2
ARGBScaleDownBy4_Box	ScaleARGBRowDown2Box_RVV		4.5
I444ScaleDownBy2_None	ScaleRowDown2_RVV			5.8
I444ScaleDownBy2_Linear	ScaleRowDown2Linear_RVV			6.1
I444ScaleDownBy2_Box	ScaleRowDown2Box_RVV			5.0
I444ScaleDownBy4_None	ScaleRowDown4_RVV			3.6
I444ScaleDownBy4_Box	ScaleRowDown4Box_RVV			3.5
UVScaleDownBy2_None	ScaleUVRowDown2_RVV			5.8
UVScaleDownBy2_Linear	ScaleUVRowDown2Linear_RVV		5.6
UVScaleDownBy2_Box	ScaleUVRowDown2Box_RVV			4.1
UVScaleDownBy4_None	ScaleUVRowDown4_RVV			1.7
UVScaleDownBy4_Box	ScaleUVRowDown2Box_RVV			4.5
						avg-speedup:    4

Note: Specialize ScaleUVRowDown with step_size=4 by ScaleUVRowDown4_RVV.

Bug: libyuv:956
Change-Id: If9604a6aadf681193f282507602c57c726332202
Signed-off-by: Darren Hsieh <darren.hsieh@sifive.com>
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4601684
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2023-06-13 00:40:39 +00:00
..
compare_common.cc clang-tidy applied 2021-04-01 21:42:47 +00:00
compare_gcc.cc MT2T Warning fixes for fuchsia 2022-12-06 19:54:40 +00:00
compare_msa.cc use unix line endings 2018-06-20 23:19:59 +00:00
compare_neon64.cc Scale by even factor low level row function 2020-11-03 21:25:18 +00:00
compare_neon.cc Scale by even factor low level row function 2020-11-03 21:25:18 +00:00
compare_win.cc Switch win32 to row_gcc for clangcl. 2021-04-22 19:32:32 +00:00
compare.cc MT2T Warning fixes for fuchsia 2022-12-06 19:54:40 +00:00
convert_argb.cc Fix tidy warning that uint32_t dither4 should not be const 2023-06-02 00:42:02 +00:00
convert_from_argb.cc Fix tidy warning that uint32_t dither4 should not be const 2023-06-02 00:42:02 +00:00
convert_from.cc Optimize the following functions with LSX. 2023-05-10 00:25:48 +00:00
convert_jpeg.cc PlaneScale, UVScale and ARGBScale test 3x and 4x down sample. 2020-10-28 20:41:59 +00:00
convert_to_argb.cc Remove M420 and refactor NV12ToI420 2020-05-26 18:48:00 +00:00
convert_to_i420.cc Fix ConvertToI420 when using YUY2 or UYVY with odd crop_x. 2021-07-19 22:22:22 +00:00
convert.cc Fix tidy warning that uint32_t dither4 should not be const 2023-06-02 00:42:02 +00:00
cpu_id.cc Fix TestLinuxRVV test fail 2023-05-04 03:26:25 +00:00
mjpeg_decoder.cc MT2T Warning fixes for fuchsia 2022-12-06 19:54:40 +00:00
mjpeg_validate.cc Update to r1732 for more robust jpeg 2019-07-01 22:32:36 +00:00
planar_functions.cc [RVV] Enable CopyRow_RVV, InterpolateRow_RVV, {Merge,Split}UVRow_RVV 2023-05-30 09:10:35 +00:00
rotate_any.cc Remove MMI support 2022-01-26 08:41:33 +00:00
rotate_argb.cc [RVV] Enable Scale{ARGB,UV}RowDown{2,4,EVEN}_RVV 2023-06-13 00:40:39 +00:00
rotate_common.cc MergeUV_AVX512BW for I420ToNV12 2023-02-13 20:14:57 +00:00
rotate_gcc.cc Transpose 4x4 for SSE2 and AVX2 2023-03-03 17:46:23 +00:00
rotate_lsx.cc DetilePlane and unittest for NEON 2022-01-31 20:05:55 +00:00
rotate_msa.cc Switch to C99 types 2018-01-23 19:16:05 +00:00
rotate_neon64.cc MergeUV_AVX512BW for I420ToNV12 2023-02-13 20:14:57 +00:00
rotate_neon.cc GCC warning fix for MT2T 2023-03-16 06:57:20 +00:00
rotate_win.cc Switch win32 to row_gcc for clangcl. 2021-04-22 19:32:32 +00:00
rotate.cc [RVV] Enable CopyRow_RVV, InterpolateRow_RVV, {Merge,Split}UVRow_RVV 2023-05-30 09:10:35 +00:00
row_any.cc Optimize the following 19 functions with LSX in row_lsx.cc. 2023-05-19 18:55:58 +00:00
row_common.cc Fix tidy warning that uint32_t dither4 should not be const 2023-06-02 00:42:02 +00:00
row_gcc.cc Fix tidy warning that uint32_t dither4 should not be const 2023-06-02 00:42:02 +00:00
row_lasx.cc Fix tidy warning that uint32_t dither4 should not be const 2023-06-02 00:42:02 +00:00
row_lsx.cc Fix tidy warning that uint32_t dither4 should not be const 2023-06-02 00:42:02 +00:00
row_msa.cc Fix Bugs on mips platform V2. 2022-03-01 13:16:31 +00:00
row_neon64.cc FP16 to FP32 float conversion row function 2023-06-07 00:02:40 +00:00
row_neon.cc Fix tidy warning that uint32_t dither4 should not be const 2023-06-02 00:42:02 +00:00
row_rvv.cc [RVV] Use LMUL=2 for I4{44,22}To{ARGB,RGB24,RGBA} conversion 2023-05-30 09:42:10 +00:00
row_win.cc Fix tidy warning that uint32_t dither4 should not be const 2023-06-02 00:42:02 +00:00
scale_any.cc UVScale down by 2 fix for C and optimize for NEON 2023-04-12 22:49:20 +00:00
scale_argb.cc [RVV] Enable Scale{ARGB,UV}RowDown{2,4,EVEN}_RVV 2023-06-13 00:40:39 +00:00
scale_common.cc [RVV] Enable CopyRow_RVV, InterpolateRow_RVV, {Merge,Split}UVRow_RVV 2023-05-30 09:10:35 +00:00
scale_gcc.cc ScaleRowUp2_Bilinear_12_SSSE3 preserve xmm7 for Windows 2022-10-21 19:35:17 +00:00
scale_lsx.cc DetilePlane and unittest for NEON 2022-01-31 20:05:55 +00:00
scale_msa.cc Switch to C99 types 2018-01-23 19:16:05 +00:00
scale_neon64.cc UVScale down by 2 fix for C and optimize for NEON 2023-04-12 22:49:20 +00:00
scale_neon.cc UVScale down by 2 fix for C and optimize for NEON 2023-04-12 22:49:20 +00:00
scale_rgb.cc RGBScale function using 3 steps: RGB24ToARGB, ARGBScale, ARGBToRGB24 2022-03-19 01:44:06 +00:00
scale_rvv.cc [RVV] Enable Scale{ARGB,UV}RowDown{2,4,EVEN}_RVV 2023-06-13 00:40:39 +00:00
scale_uv.cc [RVV] Enable Scale{ARGB,UV}RowDown{2,4,EVEN}_RVV 2023-06-13 00:40:39 +00:00
scale_win.cc Switch win32 to row_gcc for clangcl. 2021-04-22 19:32:32 +00:00
scale.cc [RVV] Enable Scale{ARGB,UV}RowDown{2,4,EVEN}_RVV 2023-06-13 00:40:39 +00:00
test.sh Optimze ABGRToI420 for AVX2 2020-06-04 18:24:45 +00:00
video_common.cc Lint cleanup after C99 change CL 2018-01-24 19:16:03 +00:00