076、ISP Pipeline架构设计:从RAW到YUV的模块化流水线
076、ISP Pipeline架构设计:从RAW到YUV的模块化流水线去年在调试一款车规级环视摄像头时,遇到一个让人头疼的问题:夜间泊车场景下,画面边缘出现明显的彩色条纹,像彩虹一样从四周向中心蔓延。产线测试时没发现,因为测试环境是均匀光照的暗室。客户反馈后,我们花了整整两周才定位到——问题出在ISP Pipeline中Demosaic和LSC(镜头阴影校正)的模块顺序上。默认的流水线是先做LSC再做Demosaic,但这款传感器的微透镜阵列对边缘入射角敏感,LSC校正后的残留误差被Demosaic的插值算法放大,最终在边缘区域形成了伪色。这个教训让我深刻意识到:ISP Pipeline的模块化设计不只是功能堆叠,模块间的数据依赖、精度传递、时序约束才是真正的架构难点。RAW域:传感器原始数据的“第一道关”ISP Pipeline的起点是RAW图,也就是传感器每个像素点输出的原始电压值,经过ADC量化后通常为10bit、12bit或14bit。RAW图的特点是每个像素只记录一种颜色——R、G或B,按照Bayer模式排列。这个阶段的数据最“纯净”,也最脆弱,任何噪声都会在后续处理中被放大。黑电平校正(BLC)是第一个模块。传感器在完全无光条件下仍然有暗电流输出,这个偏移量必须减去。别小看这一步,不同传感器的BLC值可能随温度、增益变化,甚至同一颗芯片不同区域的暗电流都不一致。我见过一个案例:某安防摄像头在低温环境下画面偏紫,查了两天才发现是BLC参数表只覆盖了-10°C到50°C,而客户在哈尔滨冬天室外使用,温度降到-30°C,BLC偏移了8个LS