格科微内置 ISP 图像效果调试(格科微 YUV Sensor)—GC2145

一、寄存器 Page(页)机制 ------ 调任何寄存器前必读

GC2145 的寄存器按"页(page)"组织,同一个寄存器地址在不同页含义完全不同,改错页等于改错寄存器。

  • 切页寄存器为 0xfe :
    • 0xfe = 0x00P0(page 0)
    • 0xfe = 0x01P1(page 1)
    • 0xfe = 0x02P2(page 2)
  • 在初始化表中定位某寄存器所在页的方法:向上找离它最近的一条 0xfe 写入 ,其值即当前页。
    • 例:某条 0x17 写入的上方最近一条 0xfe 值为 0x00,则该寄存器记作 P0:0x17
  • 修改初始化表时务必确认页归属,不能改错页。

二、镜像 / 翻转(Mirror & Flip)

直接在初始化表内修改对应寄存器即可,单寄存器控制:

方向 寄存器
Normal(正常) P0:0x17 0x14
Horizontal Mirror(水平镜像) P0:0x17 0x15
Vertical Flip(垂直翻转) P0:0x17 0x16
HV(水平+垂直) P0:0x17 0x17

三、亮度(AEC 目标亮度 AEC_Target_Y)

项目 内容
寄存器 P1:0x13
方向 值越大,画面整体亮度越高
默认值 0x7b(MTK 平台参考)

注意事项:

  1. 如果初始化表(Init)和 EV 补偿函数 里都写了亮度寄存器 0x13,两处必须同步修改,否则 EV 切换时会把初始化的值覆盖回去。
  2. 以 MTK 平台为例:初始化表 AEC 段中有 0x13 = 0x7b;EV 函数(GC2145_set_param_exposure)中各档 EV(±30/±20/±10/0 等)分别写不同的 0x13 值。需要整体调亮时,init 里的 0x7b 加大,EV 各档的值也要一起顺移。

四、饱和度(Saturation)

寄存器值越大整体色彩越鲜艳。饱和度有 Cb/Cr 两个寄存器,两者的值必须设成一样。

寄存器 含义
P2:0xd1 saturation_cb
P2:0xd2 saturation_cr

五、对比度(Contrast / luma_contrast)

项目 内容
寄存器 P2:0xd3
方向 值越大,图像黑白层次越分明,肉眼感觉"清晰度"越高

过大会导致暗部死黑、亮部溢出,需适度。


六、边缘增强(Edge Enhancement / 锐化)

值越大边缘越锐、越"清晰",但噪点会同步放大,必须与去噪一起权衡调试

寄存器与位段 含义
P2:0x977:4 粗沿增强
P2:0x973:0 细沿增强

七、去噪(DNDD Denoise)

去噪能力越强,清晰度损失越大,需与清晰度(边缘增强)一起权衡调试

寄存器 含义 方向
P2:0x82 DN_signal_a,亮环境去噪 值越大去噪越强,最大可设 0x3f
P2:0x83 DN_signal_b,暗环境去噪 值越大去噪越强,最大可设 0x7f

八、帧率与防闪烁(Banding / Frame Rate)

8.1 核心概念与计算方法

国内市电 50Hz,防闪烁要求曝光按 10ms(半周期)的整数倍步进:

  • step :10ms 曝光对应的行数(基数),写在 step 寄存器 P1:0x25/0x26(高/低字节)。
  • level :各档允许的最大曝光行数,level = step × N(N = 1/2/3...)。
  • 帧率 = 100 / N (fps)
  • level0 ~ level3 表示从亮到暗的帧率过渡:
    • level0:最亮环境对应的帧率(最高帧率档);
    • level3:最暗环境对应的帧率(最低帧率档,曝光最长);
    • 普通亮度运行在 level0/1/2,暗处一般落到 level3。

计算示例:

  • step(0x25/0x26)= 0x00fa;
  • level0 = 0x04e2,则 N = 0x04e2 / 0x00fa = 5,帧率 = 100/5 = 20fps;
  • 想把 level3 设为约 7fps:100/7 ≈ 14,level3 = 14 × 0x00fa = 0x0dac,
    写入 0x2d = 0x0d,0x2e = 0xac。

8.2 帧率寄存器(banding 函数,50Hz 档)

初始化(init)和 banding 函数(GC2145_set_param_banding,AE_FLICKER_MODE_50HZ 分支)内的这些寄存器必须同步修改:

复制代码
P0: 0x05=0x01
    0x06=0x56        // HB(水平消隐)
    0x07=0x00
    0x08=0x32        // VB(垂直消隐)
P1: 0x25=0x00
    0x26=0xfa        // step(10ms 曝光行数,高低字节 0x25/0x26)
    0x27=0x04, 0x28=0xe2   // level0 → 20fps
    0x29=0x06, 0x2a=0xd6   // level1 → 14fps
    0x2b=0x07, 0x2c=0xd0   // level2 → 12fps
    0x2d=0x0b, 0x2e=0xb8   // level3 → 8fps

调整帧率时:改 HB/VB 会改变行时间(step 需重算),改 level 各档即按上面公式换算目标帧率后写入对应寄存器对。


九、通用调试注意事项(汇总)

  1. 页机制:任何寄存器修改前先确认所属 page(向上找最近的 0xfe),改错页 = 改错寄存器。GC2145 的效果寄存器分布在 P0(镜像/消隐)、P1(亮度/step/level)、P2(饱和度/对比度/锐化/去噪)三页,尤其容易混。
  2. 初始化表与运行时函数同步:亮度(init 与 EV 函数)、帧率(init 与 banding 函数)两处都存在的寄存器必须同步改,否则运行时被覆盖。
  3. 成对寄存器同值:饱和度 Cb(P2:0xd1)/Cr(P2:0xd2)必须设为相同值。
  4. 锐化与去噪联调:边缘增强(P2:0x97)放大噪点、去噪(P2:0x82/0x83)损失清晰度,两者是一对权衡,建议交替微调而不是单边拉满。
  5. 50Hz 防闪烁:step 对应 10ms 曝光行数,level 必须是 step 的整数倍,否则出现 banding(明暗横纹)。
相关推荐
FPGA开源工坊4 小时前
ISP图像处理--Bayer Raw格式
图像处理·人工智能·verilog·fpga·isp
江畔柳前堤1 天前
具身智能全景深度指南(2026年9月版):从“会聊天的AI“到“能干活的机器“
大数据·javascript·图像处理·人工智能·分布式·智慧城市·原型模式
安河桥。1 天前
Android视频流处理模块硬件加速器数据流转技术说明
android·图像处理·isp
牧羊人.3331 天前
计算机视觉基础 第13章 |背景建模与运动目标检测
图像处理·人工智能·目标检测·计算机视觉·目标跟踪
牧羊人.3331 天前
计算机视觉基础第15章|DNN实现图像风格迁移
图像处理·人工智能·深度学习·opencv·计算机视觉
拿我格子衫来2 天前
LaserWeb4:矢量图与位图如何变成 G-code
图像处理·图形渲染
Dfreedom.2 天前
目标检测后处理核心:NMS非极大值抑制详解
图像处理·人工智能·深度学习·目标检测·目标跟踪
牧羊人.3332 天前
动手学深度学习 02 | 手写数字识别
图像处理·人工智能·深度学习·算法
AndrewHZ2 天前
图像处理入门023 | 自适应直方图均衡化:CLAHE——把 HE 的“全局“变“局部“,治好光照不均与噪声放大
图像处理·双线性插值·自适应均衡化·clahe·对比度限制·分块处理·美颜pipeline