Frank Barchard eac1ea9744 I410ToI420 use 1 step HalfWidthRow function for UV
On Icelake
Was C+AVX512
I410ToI420_Opt (593 ms)
I412ToI420_Opt (581 ms)
Now AVX512
I410ToI420_Opt (241 ms)
I412ToI420_Opt (227 ms)
 60.28% HalfWidthRow_16To8_AVX512BW
 32.34% Convert16To8Row_AVX512BW

Samsung S25 Oryon
Was C+NEON
I410ToI420_Opt (141 ms)
I412ToI420_Opt (127 ms)
Now NEON
I410ToI420_Opt (89 ms)
I412ToI420_Opt (88 ms)

Vivo X300 lunix c1
Was C+NEON
I410ToI420_Opt (682 ms)
I412ToI420_Opt (679 ms)
With SVE2 (slow)
I410ToI420_Opt (622 ms)
I412ToI420_Opt (584 ms)
 65.59% HalfWidthRow_16To8_SVE2
 26.74% Convert16To8Row_SVE2
Now NEON
I410ToI420_Opt (412 ms)
I412ToI420_Opt (406 ms)

Bug: chromium:531172025
Change-Id: I1732157f6be660d2a01086f21daf85fe7f7d166f
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/8230200
Commit-Queue: Frank Barchard <fbarchard@google.com>
Reviewed-by: Wan-Teh Chang <wtc@google.com>
2026-08-10 18:19:25 -07:00
..
basic_types.h Disable old int types by default. 2018-07-09 21:16:47 +00:00
compare_row.h Deprecate MIPS and MSA support. 2025-10-16 12:20:40 -07:00
compare.h Lint cleanup after C99 change CL 2018-01-24 19:16:03 +00:00
convert_argb.h Add ABGR versions of the ArgbConstants structures 2026-03-17 17:28:51 -07:00
convert_from_argb.h Export the ARGBToNV21Matrix() function 2026-08-05 19:19:46 -07:00
convert_from.h Add 10/12 bit YUV To YUV functions 2021-02-25 23:16:54 +00:00
convert.h Unittests use ASSERT instead of EXPECT 2026-05-11 19:10:47 -07:00
cpu_id.h add bmm detect and vdpphps in util/cpuid 2026-06-09 14:52:48 -07:00
cpu_support.h Make RGBToY a 1 pass avx512bw 2026-08-03 17:53:19 -07:00
loongson_intrinsics.h RAWToJ400 faster version for ARM 2022-03-18 07:22:36 +00:00
mjpeg_decoder.h add YUV24 and AYUV formats 2019-03-05 02:53:56 +00:00
planar_functions.h Replace RAWToY/RGB24ToY with RGBToYMatrix 2026-04-21 17:11:14 -07:00
rotate_argb.h Switch to C99 types 2018-01-23 19:16:05 +00:00
rotate_row.h Deprecate MIPS and MSA support. 2025-10-16 12:20:40 -07:00
rotate.h Add 10 bit rotate methods. 2023-01-04 21:10:01 +00:00
row_sve.h SVE2 row functions needed for multipass image functions 2026-08-06 12:40:26 -07:00
row.h I410ToI420 use 1 step HalfWidthRow function for UV 2026-08-10 18:19:25 -07:00
scale_argb.h Switch to C99 types 2018-01-23 19:16:05 +00:00
scale_rgb.h RGBScale function using 3 steps: RGB24ToARGB, ARGBScale, ARGBToRGB24 2022-03-19 01:44:06 +00:00
scale_row.h I410ToI420 use 1 step HalfWidthRow function for UV 2026-08-10 18:19:25 -07:00
scale_uv.h add yuvconvstants util 2021-02-12 19:45:16 +00:00
scale.h Add NV24 scaling support to libyuv 2024-12-12 02:46:11 -08:00
version.h I410ToI420 use 1 step HalfWidthRow function for UV 2026-08-10 18:19:25 -07:00
video_common.h Add support for AR64 format 2021-03-13 20:55:21 +00:00