feat(isp): allow to bypass shadow register

This commit is contained in:
armando
2026-01-05 14:47:21 +08:00
parent 129f58d90d
commit 34da2bdb78
11 changed files with 114 additions and 64 deletions

View File

@@ -24,6 +24,9 @@ typedef struct {
uint8_t denoising_level; ///< BF denoising level, from 2 to 20, the bigger the better denoising performance, but the worse detailed
uint8_t padding_line_tail_valid_start_pixel; ///< BF edge padding line tail valid start pixel, padding data will only be valid between the valid start pixel and the valid end pixel. Set both the start and end pixel to 0 to make all padding pixel valid
uint8_t padding_line_tail_valid_end_pixel; ///< BF edge padding line tail valid end pixel, padding data will only be valid between the valid start pixel and the valid end pixel. Set both the start and end pixel to 0 to make all padding pixel valid
struct {
uint32_t update_once_configured : 1; ///< If set, apply configuration to hardware immediately; otherwise defer to frame boundary
} flags; ///< Driver behaviour flags
} esp_isp_bf_config_t;
/**

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2025-2026 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -43,10 +43,13 @@ typedef struct {
* @brief ISP BLC configurations
*/
typedef struct {
isp_window_t window; ///< The sampling windows of BLC, only pixels within the window will be sampled
esp_isp_blc_thresh_t filter_threshold; ///< Black level threshold for each channel of the raw Bayer image
bool filter_enable; ///< Enable filter for BLC, if enabled, only pixels within the threshold will be sampled
esp_isp_blc_stretch_t stretch; ///< Stretch configurations for each channel of the raw Bayer image
isp_window_t window; ///< The sampling windows of BLC, only pixels within the window will be sampled
esp_isp_blc_thresh_t filter_threshold; ///< Black level threshold for each channel of the raw Bayer image
bool filter_enable; ///< Enable filter for BLC, if enabled, only pixels within the threshold will be sampled
esp_isp_blc_stretch_t stretch; ///< Stretch configurations for each channel of the raw Bayer image
struct {
uint32_t update_once_configured : 1; ///< If set, apply configuration to hardware immediately; otherwise defer to frame boundary
} flags; ///< Driver behaviour flags
} esp_isp_blc_config_t;
/**

View File

@@ -36,6 +36,9 @@ typedef struct {
* Zero (0): Maintains the original brightness, without adjusting the image's brightness.
* Positive range (1 to 127): Increases brightness, the larger the value, the brighter the image.
*/
struct {
uint32_t update_once_configured : 1; ///< If set, apply configuration to hardware immediately; otherwise defer to frame boundary
} flags; ///< Driver behaviour flags
} esp_isp_color_config_t;
/**

View File

@@ -27,6 +27,9 @@ typedef struct {
uint8_t sharpen_template[ISP_SHARPEN_TEMPLATE_X_NUMS][ISP_SHARPEN_TEMPLATE_Y_NUMS]; ///< Sharpen template data
uint8_t padding_line_tail_valid_start_pixel; ///< Sharpen edge padding line tail valid start pixel, padding data will only be valid between the valid start pixel and the valid end pixel. Set both the start and end pixel to 0 to make all padding pixel valid
uint8_t padding_line_tail_valid_end_pixel; ///< Sharpen edge padding line tail valid end pixel, padding data will only be valid between the valid start pixel and the valid end pixel. Set both the start and end pixel to 0 to make all padding pixel valid
struct {
uint32_t update_once_configured : 1; ///< If set, apply configuration to hardware immediately; otherwise defer to frame boundary
} flags; ///< Driver behaviour flags
} esp_isp_sharpen_config_t;
/**

View File

@@ -21,7 +21,9 @@ extern "C" {
* @brief ISP BLC configurations
*/
typedef struct {
//for future proof
struct {
uint32_t update_once_configured : 1; ///< If set, apply configuration to hardware immediately; otherwise defer to frame boundary
} flags; ///< Driver behaviour flags
} esp_isp_wbg_config_t;
/**