Frank Barchard 339feb40e7 [libyuv] Optimize SsimWindowRow with SIMD and use compare_win on x86-32
- Route 32-bit x86 (__i386__ / _M_IX86) to compare_win.cc (intrinsics)
  and restrict compare_gcc.cc to 64-bit x86 (__x86_64__), avoiding x87
  float discrepancies and enabling SSE2, AVX2, and AVX-512 on 32-bit
  and 64-bit MinGW, GCC, Clang, and MSan (LIBYUV_ENABLE_ROWWIN).
- Enable AVX-512BW on GCC >= 6 (GCC_HAS_AVX512) and add
  LIBYUV_TARGET_AVX512BW attributes to compare_gcc.cc and compare_win.cc.
- Refactor SsimWindowRow_C and Ssim8x8_C to use int32_t and float, and
  add SsimWindowRow_SSE2, SsimWindowRow_AVX2, and SsimWindowRow_AVX512BW
  in both compare_win.cc and compare_gcc.cc (~10x faster end-to-end SSIM).
- Update SSIM unit tests in compare_test.cc to use EXPECT_NEAR,
  deterministic test patterns (identical, different, similar), and
  benchmark_iterations_.
- Update util/compare.cc and linux.mk to compute I420Ssim / CalcFrameSsim.

R=rrwinterton@gmail.com

Bug: b/493910265
Test: out/Release/libyuv_unittest --gtest_filter=*Ssim*
Co-authored-by: Martin Storsjö <martin@martin.st>
2026-10-20 13:43:58 -07:00
..
color.cc Rounding added to scaling upsampler 2021-02-10 18:51:02 +00:00
compare.cc [libyuv] Optimize SsimWindowRow with SIMD and use compare_win on x86-32 2026-10-20 13:43:58 -07:00
cpuid.c [libyuv] Add Qualcomm Hexagon HVX SIMD support 2026-10-19 14:16:18 -07:00
i444tonv12_eg.cc i444tonv12_eg example program 2020-04-28 16:35:49 +00:00
Makefile Add comment in Makefile OpenMP for MacOS 2017-12-05 18:53:45 +00:00
psnr_main.cc Fix -Wmissing-prototypes warnings 2024-08-12 19:08:24 +00:00
psnr.cc Add AYUVToNV12 and NV21ToNV12 2019-04-12 17:48:45 +00:00
psnr.h tidy applied with readability-inconsistent-declaration-parameter-name 2018-02-07 00:24:25 +00:00
ssim.cc BGRAToI420 use BgraConstants for a direct conversion using AVX512BW 2026-06-08 12:21:47 -07:00
ssim.h Switch to C99 types 2018-01-23 19:16:05 +00:00
yuvconstants.c Add hybrid detect for Intel laptop cpus 2025-06-13 13:22:54 -07:00
yuvconvert.cc [libyuv] Fix RISC-V CMake/GN/Bazel builds and C compiler driver linking 2026-09-28 10:59:30 -07:00