[libcamera-devel] [PATCH v2 10/11] ipa: rkisp1: af: Skip few frames after changing lens position
Daniel Semkowicz
dse at thaumatec.com
Wed Jul 13 10:43:16 CEST 2022
With 30fps stream, lens movement takes more time than one frame. Skip
few frames to allow lens to stabilize before calculating next contrast
value.
Signed-off-by: Daniel Semkowicz <dse at thaumatec.com>
---
src/ipa/rkisp1/algorithms/af.cpp | 5 ++++-
src/ipa/rkisp1/algorithms/af.h | 2 ++
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/src/ipa/rkisp1/algorithms/af.cpp b/src/ipa/rkisp1/algorithms/af.cpp
index cd4f0e08..a0d914e0 100644
--- a/src/ipa/rkisp1/algorithms/af.cpp
+++ b/src/ipa/rkisp1/algorithms/af.cpp
@@ -86,7 +86,10 @@ void Af::process(IPAContext &context,
uint32_t lensPosition = processAutofocus(sharpness);
- context.frameContext.af.focus = lensPosition;
+ if (lensPosition != context.frameContext.af.focus) {
+ context.frameContext.af.focus = lensPosition;
+ setFramesToSkip(kFLensWaitFrames);
+ }
}
void Af::setMetering(controls::AfMeteringEnum metering)
diff --git a/src/ipa/rkisp1/algorithms/af.h b/src/ipa/rkisp1/algorithms/af.h
index eeb806c0..36d0c9b0 100644
--- a/src/ipa/rkisp1/algorithms/af.h
+++ b/src/ipa/rkisp1/algorithms/af.h
@@ -36,6 +36,8 @@ private:
Rectangle defaultWindow_;
Rectangle userWindow_;
bool updateAfwindow_ = false;
+
+ static constexpr uint32_t kFLensWaitFrames = 2;
};
} /* namespace libcamera::ipa::rkisp1::algorithms */
--
2.34.1
More information about the libcamera-devel
mailing list