089、ISP 数据压缩与带宽优化:YUV 压缩、参考帧压缩与 DDR 带宽的平衡
089、ISP 数据压缩与带宽优化:YUV 压缩、参考帧压缩与 DDR 带宽的平衡一、一个让我熬夜三天的带宽问题去年做某款旗舰机的前置摄像头调试,Sensor 输出 32MP @ 30fps,ISP 管线里挂了三路 YUV 输出:一路给预览(1080p)、一路给录像(4K)、一路给算法做 HDR 融合。结果一开机,DDR 带宽直接飙到 12GB/s,系统功耗报表,手机背面烫得能煎鸡蛋。更诡异的是,预览偶尔出现“撕裂”——上半帧是正常的,下半帧全是马赛克。当时我第一反应是 ISP 的 DDR 仲裁优先级没配好,翻来覆去调了三天 AXI QoS 寄存器,屁用没有。最后用 trace32 抓了总线事务,才发现问题出在 ISP 输出模块:三路 YUV 都是未经压缩的 NV12 格式,每帧数据量 = 分辨率 × 1.5 bytes/pixel,32MP 单帧就接近 48MB,三路同时写 DDR,带宽直接爆炸。这个案例让我深刻意识到:ISP 的带宽优化,本质是在压缩率、图像质量、硬件开销之间走钢丝。下面我把这两年踩过的坑和总结的套路写下来,希望对你有用。二、YUV 压缩:别被“无损”两个字骗了2.1 为什么 YUV 需要压缩?ISP 内部处理的数据流通常是这样的:Sensor RAW → BLC/LSC → Demosaic → RGB → YUV → 各种后处理 → 输出。YU