这里主要说的视频业务。
内存带宽指的是内存总线所能提供的数据传输能力,它决定了单位时间内存储器所存取的信息量,通常以位/秒(bps)或字节/秒(Bytes/s)为单位来表示。内存带宽是衡量内存性能的重要指标之一,直接影响着系统的整体性能,尤其是数据处理速度和响应时间。它决定了CPU从内存读取或写入数据的速率。
总线带宽指的是总线在单位时间内可以传输的数据总量,等于总线位宽与工作频率的乘积。例如:对于64位、800MHz的前端总线,它的数据传输率就等于64bit×800MHz÷8(Byte)=6.4GB/s
内存带宽指的是内存总线所能提供的数据传输能力。例如:DDR400内存的数据传输频率为400MHz,那么单条模组就拥有64bit×400MHz÷8(Byte)=3.2GB/s的带宽。
下图是某主流DDR4 2666内存的带宽。理论值大概是64bit×2666MHz÷8(Byte)≈21GB/s。
不过实际测试会略少,下面是测试结果,大概是20GB/s左右。也很接近了。
视频类业务所需带宽的公式是:带宽 = 分辨率宽度 × 分辨率高度 × 帧率 × 颜色深度 × 数据格式系数
如果需要处理多路视频流(例如双摄像头系统),则需要将所有视频流的带宽需求累加,确保总带宽在内存总线的承受范围内。
延迟容忍度:实时应用要求内存带宽必须满足或超过计算值,以防止延迟。对于延迟敏感的应用,通常需要预留20-30%的带宽裕度。
处理需求:考虑视频处理算法(如图像增强、编码等)对额外内存带宽的需求。
系统总线:还需考虑内存总线的带宽,如DDR、LPDDR的速率,确保系统总带宽足够支撑所需的所有操作。
假设我们有一个1080p的摄像头,帧率为30FPS,采用8位RGB格式:
- 分辨率:1920 × 1080
- 帧率:30 FPS
- 颜色深度:8位(即24位RGB)
- 数据格式系数:3字节/像素
带宽 = 1920×1080×30×24bits/8bits/byte = 149299200bytes/second ≈ 142.5MB/s
这意味着系统需要至少142.5 MB/s的内存带宽来处理和存储该视频流。
如果按照上面DDR4 2666的数据,算上30%冗余,理论上支持起码100路1080P的视频流。。。
算一下4K 120Hz 10bit真彩色呢。3840×2160×120×30bits/8bits/byte ≈ 3.73 GB/s。算上冗余大概就是4.5 GB/s左右。理论上就最多只支持4路。。。