@@ -393,8 +393,11 @@ int DebayerEGL::configure(const StreamConfiguration &inputCfg,
window_.width = outputCfg.size.width;
window_.height = outputCfg.size.height;
- /* Don't pass x,y since process() already adjusts src before passing it */
- stats_->setWindow(Rectangle(window_.size()));
+ /*
+ * Don't pass x,y since process() already adjusts src before passing it.
+ * But reduce the width and height by 2/3 for speedup.
+ */
+ stats_->setWindow(Rectangle(window_.size()).croppedBy(2, 3));
LOG(Debayer, Debug) << "Input width " << inputCfg.size.width << " height " << inputCfg.size.height;
LOG(Debayer, Debug) << "Output width " << outputCfg.size.width << " height " << outputCfg.size.height;
The statistics in software ISP is computed basically over the whole image area, although only on part of the pixels. It is not necessary to cover the whole image area, it's sufficient to compute the statistics let's say over the central area of 2/3 of the image width and height, which should be both sufficient and faster. The speedup is not that important with the CPU implementation but it may save CPU work more noticeably with GPU debayering implementation. Signed-off-by: Milan Zamazal <mzamazal@redhat.com> --- src/libcamera/software_isp/debayer_egl.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)