一、带宽计算
1、核心公式
原始总带宽 = 分辨率 × 帧率 × 像素位深
单位统一用 bps(bit/s)
Btotal=W×H×FPS×BPP
- W:水平像素
- H:垂直像素
- FPS:帧率
- BPP:每像素比特数(bit per pixel)
2、常见 BPP 取值(直接查表)
- RAW8:8 bpp
- RAW10:10 bpp
- RAW12:12 bpp
- RGB565:16 bpp
- RGB888 / RGB24:24 bpp
- RGB101010 / RGB30:30 bpp
- YUV422(8bit):16 bpp
- YUV420(8bit):12 bpp
3、加上 MIPI 协议开销(关键!)
MIPI CSI-2 / DSI 有包头、纠错、填充位,实际带宽要 ×1.1~1.25
工程上直接用:Bmipi = Btotal×1.2
保守设计用 ×1.25,最稳妥。
4. 分配到每条 Lane
Blane = Bmipi / Lane_num
- Blane:单 Lane 速率(bps)
- Lane_num:1/2/4 Lane
5. 对照 D-PHY 速率上限判断是否够用
- D-PHY 1.2:最高 2.5 Gbps/Lane
- 实际工程一般不超过 2.0 Gbps/Lane 更稳定
6. 举个例子(最常用)
1080p30 RGB888 屏幕
- W=1920, H=1080, FPS=30, BPP=24
- 原始带宽 = 1920×1080×30×24 = 1.49 Gbps
- 加协议开销 ×1.2 → 1.79 Gbps
- 2 Lane: 单 Lane = 1.79 / 2 ≈ 896 Mbps → 8:1 完全够用
- 4 Lane: 单 Lane ≈ 448 Mbps → 非常轻松
再举一个摄像头例子
4K@30fps,RAW10,4 Lane
- 原始带宽 = 3840×2160×30×10 = 2.49 Gbps
- ×1.2 → 2.99 Gbps
- 4 Lane → 单 Lane ≈ 746 Mbp
→ 8:1 完全足够
8. 什么时候必须用 16:1?
满足任意一条:
- 单 Lane 速率 > 1.2 Gbps
- 你想少用 Lane,但带宽又高
- 并行时钟太高,FPGA 时序跑不起来