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
..
deprecated_builds.md Deprecate MIPS and MSA support. 2025-10-16 12:20:40 -07:00
environment_variables.md [libyuv] Pilot OpenMP support for row processing 2026-10-19 15:17:30 -07:00
feature_detection.md [docs] Add documentation on AArch64 SME for feature detection 2024-06-03 22:39:03 +00:00
filtering.md Add all wiki pages as MarkDown documents + README.md 2016-02-17 07:50:19 +01:00
formats.md convert, scale: Add P010/P210/P410 convert paths and NV16/NV24/Px10 scale 2026-09-23 20:43:22 -07:00
getting_started.md Enable RVV support in CMake and Bazel for RISC-V targets 2026-09-04 13:20:27 -07:00
rotation.md NV21 unittest and benchmark 2019-07-18 02:13:02 +00:00