目录为什么需要标定一、DPC(Defect Pixel Correction,坏点校正)什么是坏点DPC 标定流程ISP 的 DPC 如何修复二、LSC(Lens Shading Correction,镜头暗角校正)什么是镜头暗角LSC 标定流程LSC 和镜头的关系三、OTP(One-Time Programmable,一次性可编程存储)什么是 OTP为什么用 OTPOTP的读写四、AWB 标定为什么需要 AWB 标定AWB 标定流程五、模组一致性(量产的核心问题)产线标定流程总结六、你代码中哪些参数来自标定一句话总结AWB标定详解第一步:为什么要统计不同光源下的 RGB第二步:统计的是什么第三步:统计完之后做什么画一条曲线(普朗克曲线/黑体辐射曲线)你代码里的 AWB 参数就是这条曲线第四步:运行时 ISP 怎么用第五步:为什么需要标定,不能直接用理论值一句话总结​​​​​​​为什么需要标定理论上:每个 pixel 都一样 实际上:每个 pixel 都不一样 原因: · 制造工艺不完美 → 有些像素是"坏点" · 镜头不完美 → 四角比中心暗 · 每颗 sensor 的 OB 值略有不同 · 每颗镜头的暗角程度不同 不标定 → 每台相机画面都不一样 标定后 → 每台相机画面一致一、DPC(Defect Pixel Correction,坏点校正)什么是坏点坏点类型: 亮点(Hot Pixel): 没有光也输出很大的值 → 画面上出现白色亮点 → 长曝光/高温时更明显 暗点(Dead Pixel): 有光也输出很小的值 → 画面上出现黑色点 温漂点(Warm Pixel): 常温下正常,高温下变亮点 → 只在特定条件下出现DPC 标定流程Step 1:暗场采集(检测亮点) · 盖上镜头盖(完全遮光) · 拍 10~100 帧 RAW · 对每帧的每个像素求平均 · 正常像素 ≈ Black Level(比如 1032) · 亮点 Black Level(比如 2000+) · 记录所有亮点坐标 Step 2:亮场采集(检测暗点) · 对着均匀光源(积分球) · 拍 10~100 帧 RAW · 正常像素 ≈ 某个均匀值 · 暗点 正常值 · 记录所有暗点坐标 Step 3:生成坏点表 ┌────────────────────────┐ │ Pixel (123, 456): 亮点 │ │ Pixel (789, 123): 暗点 │ │ Pixel (321, 654): 温漂 │ │ 共 15 个坏点 │ └────────────────────────┘ Step 4:写入 OTP 或文件 · ISP 的 DPC 模块读取坏点表 · 运行时用周围像素插值替代坏点的值ISP 的 DPC 如何修复坏点及其周围: ┌───┬───┬───┐ │120│118│122│ ← 正常像素 ≈ 120 ├───┼───┼───┤ │119│999│121│ ← (1,1) 是亮点 = 999 ├───┼───┼───┤ │121│117│120│ ← 正常像素 ≈ 120 └───┴───┴───┘ DPC 修复后: (1,1) = (120+118+122+119+121+121+117+120) / 8 = 119.75 ≈ 120 → 坏点被周围像素的平均值替代 → 肉眼看不出差别二、LSC(Lens Shading Correction,镜头暗角校正)什么是镜头暗角物理原因:· 镜头边缘的光线入射角大· 光线路径更长 → 被镜头筒遮挡更多· 边缘像素接收到的光比中心少效果:┌─────────────────┐│▓▓▓▒▒▒░░░▒▒▒▓▓▓│ ▓ = 正常亮度│▓▓▒▒░░░░░░░▒▒▓▓│ ▒ = 稍暗│▓▒░░░░░░░░░░░▒▓│ ░ = 明显暗│▓▒░░░░░░░░░░░▒▓││▓▒░░░░░░░░░░░▒▓││▓▓▒▒░░░░░░░▒▒▓▓││▓▓▓▒▒▒░░░▒▒▒▓▓│└─────────────────┘中心亮、四周暗 → "隧道效果"LSC 标定流程Step 1:拍均匀光源 · 对着积分球或均匀白墙 · 拍一帧 RAW Step 2:计算每个区域的增益补偿 · 把画面分成多个区域(比如 17×17 网格) · 中心区域值 = 1000(基准) · 四角区域值 = 700(暗了 30%) 补偿系数: · 中心增益 = 1.0(不需要补偿) · 四角增益 = 1000/700 ≈ 1.43(需要放大 43%) Step 3:生成 LSC 表 ┌──────────────────────────────────┐ │ 1.00 1.02 1.05 1.10 1.20 │ │ 1.02 1.03 1.06 1.12 1.25 │ │ 1.05 1.07 1.08 1.15 1.30 │ │ 1.10 1.12 1.15 1.20 1.35 │ │ 1.20 1.25 1.30 1.35 1.43 │ │ ... (17×17) │ └──────────────────────────────────┘ Step 4:ISP 运行时查表 · 每个像素根据自己的坐标,在 LSC 表中双线性插值 · 乘以对应的增益系数 · 四角变亮 → 整帧亮度均匀LSC 和镜头的关系同一个 sensor + 不同镜头 → LSC 不同!镜头 A(广角):暗角严重 → LSC 补偿大镜头 B(长焦):暗角轻微 → LSC 补偿小所以 LSC 标定是"sensor + 镜头"的组合标定换镜头就要重新标定三、OTP(One-Time Programmable,一次性可编程存储)什么是 OTPOTP = sen