software_isp: debayer_cpu: Add multi-threading support

Add CPU soft ISP multi-threading support.

Benchmark results for the Arduino Uno-Q with a weak CPU which is good for
performance testing, all numbers with an IMX219 running at
3280x2464 -> 3272x2464:

1 thread : 147ms / frame, ~6.5 fps
2 threads:  80ms / frame, ~12.5 fps
3 threads:  65ms / frame, ~15 fps

Adding a 4th thread does not improve performance.

Tested-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com> # ThinkPad X1 Yoga Gen 7 + ov2740
Reviewed-by: Milan Zamazal <mzamazal@redhat.com>
Signed-off-by: Hans de Goede <johannes.goede@oss.qualcomm.com>
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
Hans de Goede
2026-03-10 13:01:04 +01:00
committed by Kieran Bingham
parent 41d17f8211
commit e948ada380
3 changed files with 62 additions and 3 deletions
+8
View File
@@ -51,6 +51,7 @@ file structure:
measure:
skip: # non-negative integer, frames to skip initially
number: # non-negative integer, frames to measure
threads: # integer >= 1, number of render threads to use, default 2
Configuration file example
--------------------------
@@ -84,6 +85,7 @@ Configuration file example
measure:
skip: 50
number: 30
threads: 2
List of variables and configuration options
-------------------------------------------
@@ -167,6 +169,12 @@ software_isp.measure.skip, software_isp.measure.number
Example `number` value: ``30``
software_isp.threads
Number of render threads the software ISP uses when using the CPU.
This must be between 1 and 8 and the default is 2.
Example value: ``2``
Further details
---------------