mirror of
https://chromium.googlesource.com/libyuv/libyuv
synced 2026-10-28 18:07:12 +08:00
Add SwapUVRow_AVX2 implementation in row_win.cc for MSVC and enable HAS_SWAPUVROW_AVX2 under USE_ROW_WIN. Share kShuffleUVToVU shuffle table between SSSE3 and AVX2 in row_gcc.cc. Make NV12ToNV21 the primary implementation and alias NV21ToNV12 to it. Add NV12ToNV21 test in convert_test.cc and benchmark dispatch for SSSE3 and AVX2 in planar_test.cc. CPU Before After Speedup ---------------------------------------------------------------- Intel Granite Rapids 282 ms 125 ms 2.26x Intel Emerald Rapids 264 ms 108 ms 2.44x Intel Sapphire Rapids 276 ms 122 ms 2.26x Intel Ice Lake 310 ms 122 ms 2.54x Intel Skylake-X 573 ms 157 ms 3.65x Intel Haswell 620 ms 162 ms 3.83x AMD Zen 4 (Genoa) 266 ms 52 ms 5.12x AMD Zen 6 (Venice) 229 ms 43 ms 5.33x ARM Neoverse-N1 140 ms 71 ms 1.97x NVIDIA Grace (Neoverse-V2) 62 ms 69 ms 0.90x R=wtc@google.com Test: libyuv_unittest --gtest_filter=*SwapUV*:*NV12ToNV21*:*NV21ToNV12* Bug: 406251841 Change-Id: I9bed5522aedadea13cdf69c27e3cbe633e31dd5b TAG=agy CONV=bb50ac62-0c55-4969-8fff-c71ab3d9a79f Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/8356968 Reviewed-by: richard winterton <rrwinterton@gmail.com> Commit-Queue: Frank Barchard <fbarchard@google.com> |
||
|---|---|---|
| .. | ||
| libyuv | ||
| libyuv.h | ||