@@ -274,6 +274,54 @@ bool Dpf::loadReductionConfig(int32_t mode)
return true;
}
+void Dpf::logConfigIfChanged(const IPAFrameContext &frameContext)
+{
+ if (!frameContext.dpf.update) {
+ return;
+ }
+
+ std::ostringstream ss;
+
+ ss << "DPF config update: ";
+ ss << " control mode=" << static_cast<int>(runningMode_);
+ ss << ", denoise=" << (frameContext.dpf.denoise ? "enabled" : "disabled, ");
+
+ ss << "rb_fltsize="
+ << (config_.rb_flt.fltsize == RKISP1_CIF_ISP_DPF_RB_FILTERSIZE_13x9 ? "13x9" : "9x9");
+ ss << ", nll_scale="
+ << (config_.nll.scale_mode == RKISP1_CIF_ISP_NLL_SCALE_LOGARITHMIC ? "log" : "linear");
+ ss << ", gain_mode=" << config_.gain.mode;
+ ss << ", strength=" << int(strengthConfig_.r) << ',' << int(strengthConfig_.g) << ',' << int(strengthConfig_.b);
+
+ ss << ", g=[";
+ for (size_t i = 0; i < RKISP1_CIF_ISP_DPF_MAX_SPATIAL_COEFFS; ++i) {
+ if (i) {
+ ss << ',';
+ }
+ ss << int(config_.g_flt.spatial_coeff[i]);
+ }
+ ss << "]";
+
+ ss << ", rb=[";
+ for (size_t i = 0; i < RKISP1_CIF_ISP_DPF_MAX_SPATIAL_COEFFS; ++i) {
+ if (i) {
+ ss << ',';
+ }
+ ss << int(config_.rb_flt.spatial_coeff[i]);
+ }
+ ss << "]";
+
+ ss << ", nll=[";
+ for (size_t i = 0; i < RKISP1_CIF_ISP_DPF_MAX_NLF_COEFFS; ++i) {
+ if (i) {
+ ss << ',';
+ }
+ ss << int(config_.nll.coeff[i]);
+ }
+ ss << "]";
+ LOG(RkISP1Dpf, Info) << ss.str();
+}
+
/**
* \copydoc libcamera::ipa::Algorithm::queueRequest
*/
@@ -386,6 +434,7 @@ void Dpf::prepareEnabledMode(IPAContext &context,
strengthConfig.setEnabled(true);
*strengthConfig = strengthConfig_;
+ logConfigIfChanged(frameContext);
}
REGISTER_IPA_ALGORITHM(Dpf, "Dpf")
@@ -43,6 +43,7 @@ private:
rkisp1_cif_isp_dpf_strength_config &strengthConfig);
bool loadReductionConfig(int32_t mode);
+ void logConfigIfChanged(const IPAFrameContext &frameContext);
void prepareDisabledMode(IPAContext &context,
const uint32_t frame,
Add logConfigIfChanged() helper function to log DPF configuration updates when they occur. This provides visibility into the active DPF parameters including: - Control mode and denoise enable state - Filter sizes (9x9 vs 13x9 for rb) - NLL scale mode (linear vs logarithmic) - Gain mode - Strength values (r, g, b) - Spatial filter coefficients (g and rb arrays) - Noise level lookup table coefficients The logging is triggered in prepareEnabledMode() whenever the configuration is updated, helping with debugging and tuning. Signed-off-by: Rui Wang <rui.wang@ideasonboard.com> --- changelog: -Move log information into a seperate patch in series src/ipa/rkisp1/algorithms/dpf.cpp | 49 +++++++++++++++++++++++++++++++ src/ipa/rkisp1/algorithms/dpf.h | 1 + 2 files changed, 50 insertions(+)