066、Demosaic 去马赛克算法:双线性、VNG、边缘自适应插值的画质与算力对比
066、Demosaic 去马赛克算法:双线性、VNG、边缘自适应插值的画质与算力对比
从一次“绿色条纹”调试说起
去年Q2,我接手一个MTK平台的中端项目,Sensor是IMX586,输出RAW10。客户反馈夜景模式下,暗部区域出现大量“绿色条纹”,像被泼了颜料。我第一反应是Bayer去马赛克算法选错了——默认用的双线性插值,在低信噪比场景下,绿色通道的插值误差会被放大,形成伪色。后来换成边缘自适应插值,条纹消失,但帧率掉了15%。这就是典型的“画质与算力”博弈。今天这篇笔记,就把我踩过的坑、对比过的三种算法,掰开揉碎讲清楚。
双线性插值:简单但“天真”
双线性插值的核心逻辑:每个像素缺失的两个颜色通道,直接用相邻像素的平均值填充。比如G通道在R像素位置,取上下左右四个G像素的均值。代码实现极其简单,一个3x3窗口就能搞定。
// 双线性插值:G通道在R像素位置uint16_tg_at_r=(g_up+g_down