尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

023、君正T41/T40 ISP超低功耗平台:消费类影像产品的调优与量产适配

023、君正T41/T40 ISP超低功耗平台:消费类影像产品的调优与量产适配 023、君正T41/T40 ISP超低功耗平台消费类影像产品的调优与量产适配半夜两点产线那边打来电话说T41的机器在老化测试时画面突然发绿而且不是偶发是批量性的。我第一反应是sensor的坏点校正没生效但查了寄存器ISP的DPC模块明明是开着的。后来把log拉出来一看发现是AE收敛到了低照度区间但ISP的增益分配策略没跟上——T41这颗芯片的ISP管线里数字增益和模拟增益的切换点跟高通、海思完全不是一个逻辑它在低照度下默认把数字增益拉满结果绿色通道的噪声被放大到肉眼可见的程度画面自然就偏绿了。这个坑后来在T40上也踩了一遍因为两颗芯片的ISP寄存器地址虽然不同但AE策略的默认参数几乎一样。君正T41/T40这两颗芯片在消费类影像产品里定位很特殊。它们不是用来跟高通Spectra或者海思ISP拼画质的拼的是“能干活”和“省电”之间的平衡。T41主打的是双摄或者单摄的低功耗IPC、门铃、猫眼T40则是更极致的低功耗常用于电池供电的卡片机或者穿戴设备。它们的ISP算力有限但胜在功耗极低一颗T41跑1080P30的H.264编码加ISP处理整机功耗能做到1瓦以内这在海思或者安霸平台上想都不敢想。所以调优的思路必须跟着这颗芯片的脾气走不能拿高通那套“堆算力、堆tuning”的玩法硬套。先说AE自动曝光的适配。君正ISP的AE策略跟主流平台最大的差异在于它的曝光收敛速度默认调得比较保守而且对场景切换的响应有滞后。这在固定场景的IPC上问题不大但用在门铃或者猫眼这种“有人靠近才触发”的场景就会出问题——人已经走到门口了画面还是暗的等AE反应过来人已经走了。解决办法不是去改AE的收敛步长那个改了容易在光照变化频繁的场景里来回震荡而是要在sensor驱动里做“预曝光”处理。具体做法是在触发事件比如PIR检测到人到来时直接给sensor写一组预设的曝光和增益值让画面先亮起来同时把ISP的AE目标亮度临时调高等AE自己收敛到稳定值后再恢复。这个逻辑听起来简单但实现时要注意君正的sensor驱动接口里曝光和增益的写入是有时序要求的必须在VSYNC的消隐区写否则会闪帧。这里踩过坑我一开始图省事直接在中断回调里写寄存器结果画面每隔几秒就跳一下亮度后来查了datasheet才发现君正的I2C写sensor寄存器如果不在消隐区sensor内部的行缓存会冲突导致曝光值被截断。再说白平衡AWB。T41/T40的AWB算法在混合光源下的表现说实话不如海思的。尤其是室内暖光灯加窗外自然光的场景它经常会把画面调得偏黄或者偏蓝而且收敛速度慢。我试过调整AWB的增益上限效果有限因为君正的AWB统计窗口是固定的不像高通那样可以自定义多个统计区域。后来我换了个思路在应用层做“场景预设”——通过光敏传感器或者简单的亮度直方图判断当前是室内还是室外然后强制覆盖AWB的色温区间。比如检测到室内暖光就把色温锁定在3000K到3500K之间让AWB在这个范围内微调而不是让它自己去猜。这个方法在量产项目里很实用因为消费类产品的使用场景相对固定不需要AWB有太强的自适应能力反而需要它“稳定”。但要注意强制覆盖色温区间后如果用户拿着设备从室内走到室外AWB的恢复速度会变慢所以要在驱动里加一个“场景切换检测”当亮度突变超过一定阈值时重置AWB的收敛状态。3A之外最影响量产良率的是ISP的坏点校正和降噪参数。君正ISP的DPC坏点校正模块默认的检测阈值比较激进容易把正常的暗部细节当成坏点抹掉导致画面出现“水渍感”。我建议把DPC的检测阈值调高让它在高ISO下才生效低ISO下只做静态坏点校正用OTP里烧录的坏点表。这里有个细节君正的OTP烧录格式跟海思不一样它把坏点坐标存在sensor的OTP里但ISP读取OTP的接口是私有的需要跟君正的FAE要驱动补丁否则你烧了OTPISP也不认。降噪方面T41/T40的2D降噪强度不能开太大否则运动物体的拖影会非常明显尤其是门铃场景里人走动的时候。我一般把2D降噪的强度控制在中等偏下然后靠编码器的码率控制来压制噪声——反正消费类产品最终是看压缩后的画面不是看ISP输出的RAW只要编码器那边码率给够噪点不会太明显。但要注意君正编码器的码率控制有个毛病在画面静止时它会降码率降得很低导致静止画面的噪声反而比运动画面更明显这个需要在编码器配置里把“最小码率”设为一个非零值别让它降到零。还有一个容易被忽略的点是T41/T40的ISP时钟频率。这两颗芯片的ISP时钟是可以通过寄存器动态调整的但默认配置下ISP时钟是跟着编码器负载走的——编码器忙的时候ISP时钟会被拉低导致帧率波动。这在纯视频监控场景里问题不大但在需要“抓拍”的场景比如门铃的抓拍功能就会出问题因为抓拍瞬间编码器要处理I帧ISP时钟一降画面就会卡顿。解决办法是在抓拍触发时先把ISP时钟锁定到最高频率等抓拍完成后再恢复动态调整。这个操作在君正的SDK里有现成的接口但很多人不知道因为它的文档藏在“power_management”目录下不显眼。最后说量产适配。T41/T40的ISP tuning君正官方提供了一套PC端工具叫“Ingenic ISP Tuning Tool”但说实话那工具的用户体验很差而且很多参数是“黑盒”——你改了值不知道它内部怎么映射到寄存器。我的经验是不要依赖工具的“自动优化”功能那玩意儿调出来的参数在实验室环境看着不错一上产线就露馅。正确的做法是先用工具导出一份默认参数然后针对你的sensor型号和镜头模组手动改关键参数AE的目标亮度、AWB的色温范围、DPC的阈值、降噪的强度、Gamma曲线。改完一轮后用产线的标准测试图灰阶卡、色卡、照度计做验证记录每个照度下的画质表现再回头微调。这个过程很枯燥但必须做因为君正的ISP参数不像高通那样有“场景自适应”能力它更像一个“死参数”系统你给它什么它就输出什么所以参数必须针对你的具体硬件来定。还有一个量产的大坑是sensor的初始化时序。T41/T40的MIPI接口对sensor的上电时序要求很严格尤其是reset脚的时序早了晚了都会导致sensor输出异常而且异常的表现很隐蔽——不是完全黑屏而是画面有横条纹或者颜色错乱。我遇到过一批货sensor初始化偶尔失败重启就好了但产线测试时偶尔会误判。后来查了逻辑分析仪发现是reset脚的高电平时间不够君正的ISP在sensor reset后有个固定的等待时间如果sensor的驱动里reset脚拉高后立刻去读sensor ID就会读到错误值。解决办法是在sensor驱动里reset脚拉高后加一个至少10ms的延时再去读ID。这个延时不能省别问我怎么知道的。总结一下君正T41/T40的调优核心思路是“接受它的局限发挥它的功耗优势”。不要试图把它调成高通或者海思的画质那是缘木求鱼。你要做的是在它的算力范围内把画面调到“够用且稳定”然后把精力放在场景适配和量产一致性上。具体建议第一AE和AWB的策略一定要结合你的产品使用场景来定制别用默认参数第二DPC和降噪的参数要保守宁可让画面有点噪点也别让画面出现涂抹感或水渍感第三量产前一定要做sensor上电时序的验证用逻辑分析仪抓波形别省这一步第四君正的FAE水平参差不齐遇到问题别死磕直接去翻它的SDK源码很多答案都在代码注释里虽然注释写得像天书但总比没有强。最后如果你做的是电池供电的产品记得把ISP的时钟策略调成“按需分配”别让它一直跑满频那点功耗省下来能多好几个小时的待机时间。
返回列表