112、AI降噪的芯片平台部署——从BM3D到深度学习降噪在安霸CVflow上的实现上个月在调试一个车载夜视项目,客户反馈雨天高架桥上,车灯眩光区域的拖影和噪点简直没法看。我们用的安霸CV22,传统3DNR已经压到极限,再往上调就会把路灯的轮廓抹成光晕。我盯着示波器上的ISP管线时序图,突然意识到一个事儿——我们一直在用2010年的算法,去解决2024年的问题。BM3D在PC上跑得欢,但到了嵌入式平台,那个块匹配的搜索窗口一开,DDR带宽直接爆掉。这不是算法选型的问题,是架构思维的问题。先说说BM3D在芯片上的真实处境。BM3D的核心是分组+协同滤波,第一步块匹配就要在整帧范围内搜索相似块,这个搜索窗在PC上开个39x39没问题,但到了CVflow上,你得把搜索窗砍到17x17,否则L2 cache根本装不下。更坑的是,BM3D的第三步——聚合加权,需要把重叠的块结果写回原图位置,这个随机写模式对DDR的page hit率是灾难。我见过有同事硬上BM3D,结果帧率从30fps掉到12fps,温度直接飙到85度,最后项目砍掉重来。所以当深度学习降噪开始流行时,很多人以为找到了银弹。但真正在安霸CVflow上部署过就知道,DNN降噪的坑比BM3D更深。CVflow的NPU架构是分层的——有专门的卷积加速单元,但它的数据流是固定的:输入要经过DMA搬到SRAM,卷积核要预加载到片上buffer,激活函数有硬件查表。这意味着你不能像在GPU上那样随意改网络结构。我们第一次尝试把U-Net搬上去,编码器部分还好,但解码器的跳层连接在CVflow上是个大问题——跳层意味着要把中间特征图存回DDR,再在解码阶段读回来,这个来回搬运的带宽开销直接吃掉了NPU省下来的算