Frank Barchard f310cb6ce1 [libyuv] Pilot OpenMP support for row processing
Add SetMaxThreads() and GetMaxThreads() APIs (with LIBYUV_NUM_THREADS
environment variable override, defaulting to half of logical cores
capped at 8 when built with -fopenmp).

Enable OpenMP parallel row processing for large frames (>= 1280x720)
in I420ToARGBMatrix and CopyPlane (including reshaping coalesced
contiguous planes across threads), and configure thread counts for
ComputeHammingDistance, ComputeSumSquareError, and CalcFrameSsim.

1280x720 Benchmarks (ms):
Benchmark          Reps    1T    2T    4T    8T  Speedup
--------------------------------------------------------
I420ToARGB_Opt     1000   272   162    88    60    4.53x
CopyPlane_Opt      1000    57    42    19    14    4.07x
BenchmarkPsnr_Opt  1000    92    76    56    34    2.71x
BenchmarkSsim_Opt   100   518   241   147    89    5.82x

R=rrwinterton@gmail.com

Bug: none
Test: libyuv_unittest --gtest_filter=*TestSetMaxThreads*:*I420ToARGB_Opt*:*CopyPlane_Opt*:*Ssim*
Change-Id: I5ca9a2b8c68eaac870da6353c51306930d015c3a
CONV=a7f09b98-93ab-4652-a8eb-8d9551361f61
TAG=agy
2026-10-19 15:17:30 -07:00
..
color.cc Rounding added to scaling upsampler 2021-02-10 18:51:02 +00:00
compare.cc [libyuv] Keep LIBYUV_API in basic_types.h and remove legacy types and bool macros 2026-08-28 08:32:19 -07:00
cpuid.c [libyuv] Pilot OpenMP support for row processing 2026-10-19 15:17:30 -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