第8章:ISP降噪技术全景
本章深入探讨ISP中的降噪技术,从噪声建模的理论基础到各种降噪算法的硬件实现策略。我们将系统性地分析空域、时域、频域以及联合域的降噪方法,重点关注它们在自动驾驶和具身智能场景下的应用与优化。通过本章学习,读者将掌握ISP降噪模块的设计原理、实现权衡以及性能优化技术。
8.1 噪声建模与分析
8.1.1 泊松-高斯噪声模型
图像传感器的噪声主要来源于光子散粒噪声(Shot Noise)和读出噪声(Read Noise)。在ISP设计中,我们通常采用泊松-高斯混合模型来描述总体噪声特性:
$$\sigma^2_{total}(I) = \alpha \cdot I + \beta$$ 其中:
- $I$ 是像素强度值
- $\alpha$ 是与光子散粒噪声相关的系数(信号依赖项)
- $\beta$ 是与读出噪声相关的常数项(信号无关项)
这个模型在不同ISO设置下具有不同的参数: $$\alpha = g \cdot QE \cdot t_{exp}$$ $$\beta = \sigma^2_{read} + \sigma^2_{dark} \cdot t_{exp}$$ 其中:
- $g$ 是系统增益
- $QE$ 是量子效率
- $t_{exp}$ 是曝光时间
- $\sigma^2_{read}$ 是读出噪声方差
- $\sigma^2_{dark}$ 是暗电流噪声系数
8.1.2 噪声传播特性
在ISP流水线中,噪声会随着各个处理模块而传播和变换。以去马赛克(Demosaicing)为例,插值操作会改变噪声的空间相关性:
原始Bayer噪声分布:
R G R G
G B G B
↓
去马赛克后RGB通道噪声相关性增加
噪声传播的数学描述: $$\sigma^2_{out} = \sum_{i,j} w_{i,j}^2 \cdot \sigma^2_{in}(i,j)$$ 其中 $w_{i,j}$ 是插值权重系数。
8.1.3 场景相关的噪声特性
在自动驾驶场景中,噪声特性会因环境条件而变化:
-
低照度场景(夜间、隧道): - 高ISO导致增益噪声显著增加 - 信噪比急剧下降:$SNR = 20\log_{10}(\frac{\mu_I}{\sigma_I})$
-
高动态范围场景(隧道出入口): - 暗区噪声明显,亮区接近饱和 - 需要分区域噪声建模
-
恶劣天气(雨雾): - 散射导致的额外噪声源 - 时域相关性降低
8.2 空域降噪技术
8.2.1 双边滤波器(Bilateral Filter)
双边滤波器是ISP中最常用的边缘保持滤波器,其核心思想是同时考虑空间距离和像素值相似度: $$BF[I]_p = \frac{1}{W_p} \sum_{q \in \Omega} G_{\sigma_s}(|p-q|) \cdot G_{\sigma_r}(|I_p - I_q|) \cdot I_q$$ 其中:
- $G_{\sigma_s}$ 是空间高斯核:$G_{\sigma_s}(x) = \exp(-\frac{x^2}{2\sigma_s^2})$
- $G_{\sigma_r}$ 是值域高斯核:$G_{\sigma_r}(x) = \exp(-\frac{x^2}{2\sigma_r^2})$
- $W_p$ 是归一化系数
硬件实现优化策略:
- 查找表(LUT)优化: 预计算高斯权重,将指数运算转换为查表操作:
空间权重LUT: weight_s[d] = exp(-d²/2σ_s²)
值域权重LUT: weight_r[Δ] = exp(-Δ²/2σ_r²)
-
分离式实现: 将2D滤波分解为两个1D滤波,减少计算复杂度从 $O(N^2)$ 到 $O(2N)$
-
固定点量化:
权重量化: Q8.8格式 (8位整数,8位小数)
累加器: Q16.16格式防止溢出
8.2.2 非局部均值(NLM)算法概述
NLM算法通过在更大范围内寻找相似块来实现降噪,其基本公式为: $$NLM[I]_p = \sum_{q \in \Omega} w(p,q) \cdot I_q$$ 其中权重 $w(p,q)$ 基于块相似度计算: $$w(p,q) = \frac{1}{Z(p)} \exp\left(-\frac{|N_p - N_q|^2}{h^2}\right)$$ 这里 $N_p$ 和 $N_q$ 分别是以 $p$ 和 $q$ 为中心的图像块。
硬件实现挑战:
- 搜索窗口大(典型21×21)
- 块匹配计算量大(典型7×7块)
- 内存访问模式复杂
(注:NLM的详细硬件实现将在第9章专门讨论)
8.2.3 导向滤波器(Guided Filter)
导向滤波器使用引导图像来保持边缘,特别适合硬件实现: $$q_i = a_k I_i + b_k, \forall i \in \omega_k$$ 其中局部线性系数通过最小化重构误差获得: $$a_k = \frac{\frac{1}{|\omega|}\sum_{i \in \omega_k} I_i p_i - \mu_k \bar{p}_k}{\sigma_k^2 + \epsilon}$$
$$b_k = \bar{p}_k - a_k \mu_k$$ 硬件友好特性:
- 固定滤波窗口大小
- 规则的内存访问模式
- 可以使用滑动窗口优化
8.2.4 自适应中值滤波
自适应中值滤波在保持细节的同时有效去除脉冲噪声:
算法流程:
1. 初始窗口 W_min (如3×3)
2. 计算 Z_med, Z_min, Z_max
3. 阶段A:
if (Z_min < Z_med < Z_max):
进入阶段B
else:
扩大窗口至 W_max
4. 阶段B:
if (Z_min < Z_xy < Z_max):
输出 Z_xy
else:
输出 Z_med
硬件实现考虑:
- 使用比较器网络实现快速中值查找
- 多级流水线处理不同窗口大小
- 使用状态机控制自适应逻辑
8.3 时域降噪技术
8.3.1 运动补偿时域滤波(MCTF)
MCTF是视频ISP中的核心降噪技术,通过多帧融合提升信噪比: $$I_{denoised}^t = \alpha \cdot I_{current}^t + (1-\alpha) \cdot I_{ref}^{t-1}$$ 其中混合系数 $\alpha$ 基于运动检测: $$\alpha = f(|I_{current}^t - MC(I_{ref}^{t-1})|)$$ 运动估计策略:
-
块匹配: $$MV = \arg\min_{(dx,dy)} \sum_{(i,j) \in Block} |I^t(i,j) - I^{t-1}(i+dx, j+dy)|$$
-
光流法: 基于亮度恒定假设:$I(x,y,t) = I(x+dx, y+dy, t+dt)$
-
特征点跟踪: 使用Harris角点或FAST特征进行稀疏匹配
8.3.2 运动检测与自适应混合
精确的运动检测对时域降噪至关重要:
运动检测流水线:
输入帧对 → 全局运动估计 → 局部运动细化 → 运动掩码生成
↓ ↓ ↓ ↓
对齐帧 相机抖动补偿 物体边界检测 混合权重图
运动自适应混合策略: $$\alpha(x,y) = \begin{cases} 0.8-0.9 & \text{静止区域(强时域滤波)} \\ 0.5-0.7 & \text{慢速运动(中等滤波)} \\ 0.9-1.0 & \text{快速运动(弱滤波或跳过)} \end{cases}$$
8.3.3 鬼影消除技术
多帧融合中的鬼影问题及解决方案:
-
运动物体鬼影: - 检测:SAD(绝对差值和)阈值判断 - 处理:降低时域权重,增加空域滤波
-
遮挡区域处理: - 前向/后向一致性检查 - 遮挡掩码生成与区域排除
-
场景切换检测:
if (全局运动 > 阈值 || 直方图差异 > 阈值):
重置时域滤波器状态
使用纯空域降噪
8.3.4 递归时域滤波器设计
递归滤波器通过反馈实现无限脉冲响应(IIR): $$Y^t = \alpha \cdot X^t + (1-\alpha) \cdot Y^{t-1}$$ 硬件实现架构:
X_t ──→ [×α] ──→ [+] ──→ Y_t
↑ ↓
[×(1-α)] ←─ [Z^-1] ←─
稳定性考虑:
- 系数量化导致的极点偏移
- 使用饱和算术防止溢出
- 错误传播的限制机制
8.4 频域降噪技术
8.4.1 小波变换降噪
小波降噪利用信号和噪声在不同尺度上的特性差异:
离散小波变换(DWT)分解: $$W_{j,k} = \sum_n x[n] \psi_{j,k}[n]$$ 其中 $\psi_{j,k}$ 是尺度 $j$ 位置 $k$ 的小波基函数。
阈值处理策略:
-
软阈值: $$\hat{W}_{j,k} = \text{sign}(W_{j,k}) \cdot \max(|W_{j,k}| - T, 0)$$
-
硬阈值: $$\hat{W}_{j,k} = \begin{cases} W_{j,k} & |W_{j,k}| > T \\ 0 & |W_{j,k}| \leq T \end{cases}$$ 阈值选择(VisuShrink): $$T = \sigma \sqrt{2\log N}$$ 硬件实现的提升方案(Lifting Scheme):
分解步骤:
1. 分裂: 将信号分为奇偶样本
2. 预测: P(even) → odd_detail
3. 更新: U(odd_detail) → even_approx
8.4.2 DCT域降噪
DCT变换后能量集中特性适合降噪:
2D DCT变换: $$F(u,v) = C(u)C(v)\sum_{x=0}^{N-1}\sum_{y=0}^{N-1} f(x,y)\cos\frac{(2x+1)u\pi}{2N}\cos\frac{(2y+1)v\pi}{2N}$$ 频域滤波策略:
-
维纳滤波: $$\hat{F}(u,v) = \frac{|S(u,v)|^2}{|S(u,v)|^2 + |N(u,v)|^2} F(u,v)$$
-
频率自适应阈值: 低频保留,高频衰减的非线性处理
8.4.3 傅里叶域滤波实现
快速傅里叶变换(FFT)在ISP中的应用:
降噪流程:
图像块 → FFT → 频谱滤波 → IFFT → 重构图像
↓ ↓ ↓ ↓ ↓
8×8块 复数域 噪声抑制 实数域 块拼接
硬件优化的FFT实现:
-
基2 FFT蝶形运算: $$X[k] = X_{even}[k] + W_N^k X_{odd}[k]$$ $$X[k+N/2] = X_{even}[k] - W_N^k X_{odd}[k]$$
-
流水线架构: - 多级蝶形单元并行处理 - 旋转因子ROM存储 - 位反序地址生成器
8.5 3D降噪:空时联合滤波
8.5.1 3D双边滤波
将双边滤波扩展到时间维度: $$BF3D[I]_{p,t} = \frac{1}{W} \sum_{q,\tau} G_s(|p-q|) \cdot G_t(|t-\tau|) \cdot G_r(|I_{p,t} - I_{q,\tau}|) \cdot I_{q,\tau}$$ 时间核设计考虑:
- 运动区域使用较小的时间窗口
- 静止区域扩大时间支持域
8.5.2 3D小波变换降噪
时空联合小波分解:
3D-DWT分解结构:
原始视频
↓
┌───────┴───────┐
LLL HLL (水平高频)
↓ ↓
┌───┴───┐ ┌───┴───┐
LLLL LLLH HLLL HLLH
(低频) (时间) (空间) (时空高频)
各子带处理策略:
- LLLL:保留(包含主要信息)
- LLLH:轻度滤波(时间细节)
- HLLL/LHLL:中度滤波(空间细节)
- HHHH:强滤波或置零(噪声为主)
8.5.3 运动自适应3D滤波
根据运动矢量调整滤波核:
运动自适应核形状:
静止区域: 运动区域:
t-1 t t+1 t-1 t t+1
███████ ░░███░░
███████ ░█████░
███████ ░░███░░
(强时域) (强空域)
自适应参数计算: $$\sigma_{temporal} = \sigma_0 \cdot \exp(-\alpha \cdot MV_{magnitude})$$ $$\sigma_{spatial} = \sigma_0 \cdot (1 + \beta \cdot MV_{magnitude})$$
8.6 自适应降噪技术
8.6.1 噪声水平估计
准确的噪声估计是自适应降噪的基础:
-
基于MAD的估计器: $$\hat{\sigma} = 1.4826 \cdot MAD(W_{HH})$$ 其中 $W_{HH}$ 是小波高频子带
-
基于块的估计: - 选择平坦区域块 - 计算块内方差 - 取最小方差作为噪声估计
-
基于传感器模型: 根据ISO、增益、温度查表获得噪声参数
8.6.2 场景自适应策略
不同场景的降噪参数优化:
场景分类与参数映射:
├── 低照度场景
│ ├── 噪声估计: 高
│ ├── 空域权重: 0.7
│ └── 时域权重: 0.3
├── 高速运动场景
│ ├── 噪声估计: 中
│ ├── 空域权重: 0.9
│ └── 时域权重: 0.1
└── HDR场景
├── 分区处理
├── 暗区强降噪
└── 亮区保细节
8.6.3 内容感知降噪
基于图像内容的自适应处理:
-
纹理区域检测: $$Texture_{measure} = \frac{\sigma_{local}}{\mu_{local} + \epsilon}$$
-
边缘保护机制:
if (gradient > edge_threshold):
减小滤波强度
使用方向性滤波
- 人脸/文字区域特殊处理: - 降低降噪强度保持细节 - 避免过度平滑
8.6.4 多尺度自适应框架
金字塔分解的自适应降噪:
多尺度处理流程:
原始图像
↓
┌──┴──┐
L0 H0 → 细节降噪
↓
┌──┴──┐
L1 H1 → 中频降噪
↓
┌──┴──┐
L2 H2 → 低频降噪
↓
L3 (基础层)
尺度相关的降噪强度: $$\sigma_{scale}(s) = \sigma_0 \cdot 2^{-s/2}$$
8.6.5 硬件实现的强度控制
降噪强度的实时调节机制:
强度控制流水线:
统计收集 → 噪声估计 → 场景分析 → 参数计算 → LUT更新
↓ ↓ ↓ ↓ ↓
3A统计 方差计算 运动/纹理 查表插值 系数加载
参数平滑过渡: $$Param_{t} = \alpha \cdot Param_{new} + (1-\alpha) \cdot Param_{t-1}$$ 其中 $\alpha$ 控制参数更新速度,避免突变。
本章小结
本章系统介绍了ISP降噪技术的理论基础和实现方法:
- 噪声建模:泊松-高斯模型准确描述传感器噪声特性,为降噪算法设计提供理论依据
- 空域降噪:双边滤波、NLM、导向滤波等算法在保持边缘的同时有效抑制噪声
- 时域降噪:运动补偿时域滤波通过多帧融合显著提升信噪比,需要精确的运动估计和鬼影消除
- 频域降噪:小波、DCT、FFT等变换域方法利用信号的频率特性实现高效降噪
- 3D降噪:空时联合滤波充分利用视频序列的时空相关性
- 自适应技术:基于噪声估计和场景分析的自适应处理优化不同条件下的降噪效果
关键设计权衡:
- 质量 vs 复杂度:高质量算法(如NLM)计算复杂度高
- 延迟 vs 性能:时域滤波需要帧缓存,增加系统延迟
- 通用性 vs 专用性:场景特定优化提升效果但降低适应性
练习题
基础题
练习8.1:泊松-高斯噪声模型参数估计 给定一组不同亮度下的噪声测量数据:
- 亮度100:噪声标准差5.2
- 亮度400:噪声标准差8.5
- 亮度900:噪声标准差11.8
- 亮度1600:噪声标准差15.1
请估计噪声模型 $\sigma^2(I) = \alpha I + \beta$ 的参数。
提示:使用最小二乘法拟合
答案
将测量数据转换为方差:
- $\sigma^2(100) = 27.04$
- $\sigma^2(400) = 72.25$
- $\sigma^2(900) = 139.24$
- $\sigma^2(1600) = 228.01$
使用最小二乘法: $$\alpha = \frac{n\sum(I_i \sigma_i^2) - \sum I_i \sum \sigma_i^2}{n\sum I_i^2 - (\sum I_i)^2} \approx 0.13$$
$$\beta = \frac{\sum \sigma_i^2 - \alpha \sum I_i}{n} \approx 14.5$$
因此噪声模型为:$\sigma^2(I) = 0.13I + 14.5$
练习8.2:双边滤波权重计算 对于5×5双边滤波器,中心像素值为128,设 $\sigma_s = 2.0$,$\sigma_r = 20$。计算以下邻域像素的组合权重:
- 位置(1,1),像素值130
- 位置(2,0),像素值145
- 位置(2,2),像素值125
提示:权重 = 空间权重 × 值域权重
答案
空间权重计算:
- $(1,1)$: 距离$\sqrt{2}$,$w_s = \exp(-2/8) = 0.779$
- $(2,0)$: 距离$2$,$w_s = \exp(-4/8) = 0.607$
- $(2,2)$: 距离$2\sqrt{2}$,$w_s = \exp(-8/8) = 0.368$
值域权重计算:
- 像素130: $\Delta = 2$,$w_r = \exp(-4/800) = 0.995$
- 像素145: $\Delta = 17$,$w_r = \exp(-289/800) = 0.697$
- 像素125: $\Delta = 3$,$w_r = \exp(-9/800) = 0.989$
组合权重:
- $(1,1)$: $0.779 \times 0.995 = 0.775$
- $(2,0)$: $0.607 \times 0.697 = 0.423$
- $(2,2)$: $0.368 \times 0.989 = 0.364$
练习8.3:时域滤波的信噪比提升 假设单帧图像的信噪比为20dB,通过运动补偿融合N帧图像,理想情况下信噪比提升为多少?计算N=4和N=9的情况。
提示:独立噪声叠加,信号相干叠加
答案
理想情况下,N帧融合:
- 信号增强N倍
- 噪声增强$\sqrt{N}$倍
- SNR提升$\sqrt{N}$倍,即$10\log_{10}(N)/2$ dB
对于初始SNR = 20dB:
- N=4:SNR提升 $10\log_{10}(4)/2 = 3$ dB,最终SNR = 23dB
- N=9:SNR提升 $10\log_{10}(9)/2 = 4.77$ dB,最终SNR = 24.77dB
实际应用中由于运动估计误差,提升效果会降低。
挑战题
练习8.4:NLM算法复杂度分析 对于M×N图像,搜索窗口大小为(2R+1)×(2R+1),块大小为(2r+1)×(2r+1),分析NLM算法的计算复杂度。如果要将复杂度降低一个数量级,可以采用哪些优化策略?
提示:考虑预筛选、快速块匹配、降采样等方法
答案
基础NLM复杂度:
- 每个像素需要搜索$(2R+1)^2$个位置
- 每次块匹配需要$(2r+1)^2$次运算
- 总复杂度:$O(MN \cdot (2R+1)^2 \cdot (2r+1)^2)$
对于典型参数R=10, r=3:
- 复杂度为$O(MN \cdot 441 \cdot 49) = O(21609 \cdot MN)$
优化策略:
- 预筛选:使用单点或小块快速排除不相似区域,减少70-80%计算
- 积分图像:块差值计算从$O(r^2)$降至$O(1)$
- 降采样搜索:在低分辨率找候选,高分辨率细化
- PCA降维:将块投影到主成分空间,降低匹配维度
- GPU并行化:虽不降低复杂度,但显著提升吞吐量
组合优化可实现10倍以上加速。
练习8.5:多尺度降噪的内存需求分析 设计一个3级小波降噪系统,输入图像1920×1080,每像素12位。计算:
- 各级分解的内存需求
- 使用原位(in-place)计算的最小内存
- 流水线处理的line buffer需求
提示:考虑小波系数的数据范围扩展
答案
-
各级分解内存需求: - Level 0: 1920×1080×12bit = 3.0MB - Level 1: 960×540×16bit = 1.0MB (系数扩展到16bit) - Level 2: 480×270×16bit = 0.25MB - Level 3: 240×135×16bit = 0.063MB - 总计:约4.3MB
-
原位计算最小内存: - 重用输入缓冲区存储LL子带 - 需要额外存储:HL, LH, HH子带 - 最小内存:3.0MB + 0.75MB(高频) = 3.75MB
-
Line buffer需求(5-tap滤波器): - 水平滤波:5行×1920×12bit = 14.4KB - 垂直滤波:5行×960×16bit = 9.6KB - 总计:约24KB line buffer
流水线实现可将内存需求从MB级降至KB级。
练习8.6:自适应降噪的参数调度设计 设计一个自适应降噪系统,需要根据以下输入动态调整参数:
- ISO范围:100-12800
- 运动程度:0-255
- 场景亮度:0-255
设计参数映射函数和切换策略,避免视觉抖动。
提示:考虑参数量化、平滑过渡、迟滞控制
答案
参数映射设计:
- ISO到噪声强度映射:
noise_level = min(255, 10 + 2.0 * log2(ISO/100))
量化到32级,每级对应不同滤波强度
- 三维查找表:
LUT[iso_idx][motion_idx][brightness_idx] = {
spatial_weight, // 0.0-1.0
temporal_weight, // 0.0-1.0
filter_strength // 0-255
}
- 平滑过渡策略:
// IIR滤波防止突变
param_smooth = 0.9 * param_old + 0.1 * param_new
// 迟滞控制防止抖动
if (abs(param_new - param_current) < threshold)
保持当前参数
- 场景切换检测:
if (场景切换检测):
立即更新参数(不平滑)
重置时域滤波器状态
- 参数调度时序: - 每帧统计:3A信息、运动检测 - 每8帧更新:查表获得新参数 - 每帧应用:平滑后的参数
这种设计确保参数调整平滑且响应及时。
练习8.7:降噪算法的硬件资源估算 为1080p@60fps视频ISP设计降噪模块,要求:
- 空域:5×5双边滤波
- 时域:3帧MCTF
- 像素时钟:150MHz
估算所需的:乘法器数量、片上SRAM大小、DDR带宽。
提示:考虑并行度、流水线深度、数据重用
答案
时序分析:
- 像素吞吐:1920×1080×60 = 124.4M pixels/s
- 时钟频率:150MHz
- 每时钟处理:1像素(全流水线)
空域滤波资源:
- 5×5窗口:25个像素并行访问
- 双边权重:25个乘法器(权重计算)
- 加权求和:25个乘法器 + 24个加法器
- 总计:约50个乘法器
时域滤波资源:
- 运动估计:16×16块匹配,需要256个减法器和累加器
- 运动补偿:双线性插值,4个乘法器
- 帧混合:2个乘法器
- 总计:约6个乘法器(运动估计可复用空域资源)
SRAM需求:
- Line buffer:5行×1920×12bit = 14.4KB
- 块匹配缓存:32×32×12bit×2 = 3KB
- 参数/LUT:约4KB
- 总计:约22KB SRAM
DDR带宽:
- 读取当前帧:124.4M × 1.5B = 186.6MB/s
- 读取参考帧:124.4M × 1.5B × 2 = 373.2MB/s
- 写入结果:124.4M × 1.5B = 186.6MB/s
- 总计:约750MB/s(考虑突发效率,实际需要约1GB/s)
常见陷阱与错误(Gotchas)
1. 噪声建模错误
- 陷阱:假设噪声是纯高斯白噪声
- 后果:降噪算法对信号相关噪声效果差
- 解决:使用泊松-高斯模型,考虑信号依赖性
2. 过度降噪
- 陷阱:一味追求低噪声,忽视细节保持
- 后果:图像过度平滑,丢失纹理细节
- 解决:使用客观指标(PSNR)和主观评价结合
3. 边界处理不当
- 陷阱:滤波窗口越界时简单填充
- 后果:图像边缘出现伪影
- 解决:使用镜像、复制或自适应边界处理
4. 定点量化溢出
- 陷阱:中间计算结果超出数据范围
- 后果:出现截断噪声或环绕错误
- 解决:仔细分析数据范围,使用饱和算术
5. 时域滤波鬼影
- 陷阱:盲目进行多帧融合
- 后果:运动物体出现鬼影、拖尾
- 解决:精确运动检测,自适应混合权重
6. 参数突变
- 陷阱:降噪参数随场景快速切换
- 后果:视觉闪烁、呼吸效应
- 解决:参数平滑过渡,迟滞控制
7. 色度噪声忽视
- 陷阱:只处理亮度噪声
- 后果:彩色噪点明显,特别是暗部
- 解决:YUV空间分别处理,色度通道强降噪
最佳实践检查清单
算法选择
- [ ] 根据噪声特性选择合适的降噪算法
- [ ] 评估算法复杂度与硬件资源匹配度
- [ ] 考虑实时性要求(延迟、吞吐量)
- [ ] 平衡降噪效果与细节保持
参数优化
- [ ] 建立噪声模型,准确估计噪声水平
- [ ] 设计自适应参数调整策略
- [ ] 实现参数平滑过渡机制
- [ ] 针对典型场景优化参数集
硬件实现
- [ ] 优化内存访问模式,提高数据重用率
- [ ] 合理设计流水线深度和并行度
- [ ] 采用定点算术,注意动态范围
- [ ] 实现资源共享和复用
质量保证
- [ ] 建立完整的测试场景库
- [ ] 使用客观指标(PSNR、SSIM)评估
- [ ] 进行主观质量评价
- [ ] 验证极端条件(高ISO、快速运动)
系统集成
- [ ] 与其他ISP模块协调(去马赛克、锐化)
- [ ] 考虑3A算法的交互影响
- [ ] 优化整体流水线延迟
- [ ] 实现优雅的降级策略
调试验证
- [ ] 添加调试模式,可单独启用/禁用模块
- [ ] 实现中间结果输出接口
- [ ] 记录关键统计信息
- [ ] 支持A/B对比测试