ISP 节点 DDR 读写位置图

典型 ISP Pipeline DDR 读写位置图:

cpp 复制代码
Sensor → MIPI RX
    │
    └──→ [RAW 输入帧缓冲] ⚠️ DDR WRITE + READ (必备)
            │
            ├─ BLC / DPC (片上)
            ├─ LSC / DPC  (片上)
            │
            └──→ [Bayer 预处理后缓冲] 🟢 DDR WRITE + READ (常见)
                    │
                    ├─ Demosaic / HDR 融合 ⚠️ 多帧读写
                    │       │
                    │       └──→ [RGB 中间帧] 🟢 DDR WRITE + READ
                    │               │
                    │               ├─ WB / CCM / Gamma / CSC
                    │               │
                    │               └──→ [YUV 主帧] ⚠️ DDR WRITE + READ (必备)
                    │                       │
                    │                       ├─ YNR / CNR / TNR ⚠️ 多帧历史缓冲 DDR
                    │                       ├─ Edge / Sharpen / 3D LUT
                    │                       │
                    │                       ├───────────────────────────┬───────────────────┐
                    │                       │                           │                   │
                    │                       ▼                           ▼                   ▼
                    │               [Preview 路缓冲]            [Video 路缓冲]       [Snap 高分辨率缓冲]
                    │                    DDR WR                     DDR WR              DDR WR
                    │                       │                           │                   │
                    │                       └─ 缩放/Crop/旋转           └─ 编码输入          └─ JPEG 输入
                    │
                    └── 3A Stats 抽取 ← [Stats 网格缓冲] 🟢 DDR WRITE

各节点读写属性说明(按优先级)

🔴 强制 DDR 读写(几乎所有平台都必须)

  1. RAW 输入帧缓冲

    • MIPI 接收异步解耦,必须写 DDR
    • 读写并行,典型 2~3 帧乒乓
  2. YUV 主帧缓冲

    • 多路输出分支起点
    • 后续 Preview/Video/Snap 都从这里读
  3. TNR / 多帧 HDR 历史帧缓冲

    • 跨帧算法,必须多帧读写 DDR
    • 带宽主要贡献者

🟢 常见 DDR 读写(平台可选,影响带宽很大)

  1. Bayer 预处理后缓冲(BLC/LSC 之后)

    • 便于分块处理、回灌调试
    • 高性能链路可做片上直通不写
  2. RGB 中间帧缓冲

    • 便于算法分段迭代、质量调试
    • 压缩开启后带宽成本下降明显
  3. Stats 统计缓冲

    • AE/AWB/AF 网格统计结果
    • 只读给 CPU/MCU,带宽较小

🟡 片上 Line Buffer / Block Buffer(不占 DDR 带宽)

  • BLC、DPC、LSC、Demosaic 局部滤波
  • 3×3 / 5×5 卷积类算子
  • 只使用片上 SRAM,不产生 DDR 读写

简化版 "最小带宽链路"(优化目标)

如果你要做低带宽配置 ,目标是:尽量减少中间写回点 ,只保留强制节点

cpp 复制代码
Sensor → MIPI → RAW 输入缓冲 ⚠️
→ 全链路片上直通 → YUV 主帧 ⚠️
→ 多路输出

即:

  • 只保留:RAW 输入、YUV 主帧、多路输出、TNR/HDR 多帧
  • 关闭 Bayer/RGB 中间节点写回
  • 关闭调试 Dump

配套带宽速记

  • RAW 写读:2 × 单帧带宽
  • YUV 写读:2 × 单帧带宽
  • TNR 3 帧:+3 × 单帧读
  • Preview/Video/Snap 三路写:+3 × 单帧写
相关推荐
大熊背11 天前
APEX自动曝光调整逻辑
apex·自动曝光·isp pipeline
大熊背14 天前
工业级 ISP 常用压缩算法设计原理
压缩·isp pipeline·3dnr
大熊背14 天前
工业级 ISP 常用压缩算之二
压缩·isp pipeline·3dnr
大熊背14 天前
工业级 ISP 常用压缩算法设计原理之三
压缩·isp pipeline·3dnr
大熊背17 天前
子采样残差压缩(Subsampled Residual Compression)原理
压缩·isp pipeline·3dnr
Jia ming17 天前
SRAM与DDR地址为何不同?
ddr·sram
Jia ming18 天前
SRAM与DDR映射:MMU如何工作
mmu·ddr·sram
大熊背19 天前
ISP Pipeline 需要多次 DDR 读写以及一些行buffer缓冲原因
isp pipeline·行缓冲
s090713622 天前
Xilinx FPGA ISERDES 使用详细介绍
fpga开发·xilinx·ddr·iserdes