{ "version": 2.0, "target": "bcm2835", "algorithms": [ { "rpi.black_level": { "black_level": 4096 } }, { "rpi.dpc": { } }, { "rpi.lux": { "reference_shutter_speed": 27242, "reference_gain": 1.0, "reference_aperture": 1.0, "reference_lux": 830, "reference_Y": 17755 } }, { "rpi.noise": { "reference_constant": 0, "reference_slope": 2.767 } }, { "rpi.geq": { "offset": 204, "slope": 0.01078 } }, { "rpi.sdn": { } }, { "rpi.awb": { "bayes": 0 } }, { "rpi.agc": { "metering_modes": { "centre-weighted": { "weights": [ 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0 ] }, "spot": { "weights": [ 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] }, "matrix": { "weights": [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ] } }, "exposure_modes": { "normal": { "shutter": [ 100, 10000, 30000, 60000, 66666 ], "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] }, "short": { "shutter": [ 100, 5000, 10000, 20000, 33333 ], "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] }, "long": { "shutter": [ 100, 10000, 30000, 60000, 120000 ], "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] } }, "constraint_modes": { "normal": [ { "bound": "LOWER", "q_lo": 0.98, "q_hi": 1.0, "y_target": [ 0, 0.3, 1000, 0.3 ] } ], "highlight": [ { "bound": "LOWER", "q_lo": 0.98, "q_hi": 1.0, "y_target": [ 0, 0.3, 1000, 0.3 ] }, { "bound": "UPPER", "q_lo": 0.98, "q_hi": 1.0, "y_target": [ 0, 0.8, 1000, 0.8 ] } ], "shadows": [ { "bound": "LOWER", "q_lo": 0.0, "q_hi": 0.5, "y_target": [ 0, 0.17, 1000, 0.17 ] } ] }, "y_target": [ 0, 0.16, 1000, 0.165, 10000, 0.17 ] } }, { "rpi.alsc": { "omega": 1.3, "n_iter": 100, "luminance_strength": 0.5, "calibrations_Cr": [ { "ct": 2960, "table": [ 2.088, 2.086, 2.082, 2.081, 2.077, 2.071, 2.068, 2.068, 2.072, 2.073, 2.075, 2.078, 2.084, 2.092, 2.095, 2.098, 2.086, 2.084, 2.079, 2.078, 2.075, 2.068, 2.064, 2.063, 2.068, 2.071, 2.072, 2.075, 2.081, 2.089, 2.092, 2.094, 2.083, 2.081, 2.077, 2.072, 2.069, 2.062, 2.059, 2.059, 2.063, 2.067, 2.069, 2.072, 2.079, 2.088, 2.089, 2.089, 2.081, 2./* SPDX-License-Identifier: BSD-2-Clause */ /* * Copyright (C) 2019, Raspberry Pi (Trading) Limited * * agc_status.h - AGC/AEC control algorithm status */ #pragma once #include <libcamera/base/utils.h> // The AGC algorithm should post the following structure into the image's // "agc.status" metadata. #ifdef __cplusplus extern "C" { #endif // Note: total_exposure_value will be reported as zero until the algorithm has // seen statistics and calculated meaningful values. The contents should be // ignored until then. struct AgcStatus { libcamera::utils::Duration total_exposure_value; // value for all exposure and gain for this image libcamera::utils::Duration target_exposure_value; // (unfiltered) target total exposure AGC is aiming for libcamera::utils::Duration shutter_time; double analogue_gain; char exposure_mode[32]; char constraint_mode[32]; char metering_mode[32]; double ev; libcamera::utils::Duration flicker_period; int floating_region_enable; libcamera::utils::Duration fixed_shutter; double fixed_analogue_gain; double digital_gain; int locked; }; #ifdef __cplusplus } #endif