惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

量子位
Stack Overflow Blog
Stack Overflow Blog
人人都是产品经理
人人都是产品经理
The GitHub Blog
The GitHub Blog
Engineering at Meta
Engineering at Meta
Vercel News
Vercel News
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Y
Y Combinator Blog
The Cloudflare Blog
Last Week in AI
Last Week in AI
B
Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Tailwind CSS Blog
V
Visual Studio Blog
博客园 - 三生石上(FineUI控件)
小众软件
小众软件
Google DeepMind News
Google DeepMind News
D
DataBreaches.Net
博客园 - 司徒正美
B
Blog RSS Feed
Microsoft Azure Blog
Microsoft Azure Blog
罗磊的独立博客
Hugging Face - Blog
Hugging Face - Blog
L
LangChain Blog

博客园 - longyue

[BF学院_卷1] -- 第30讲:mixTable() 总结 —— Mixer 完整控制模型 [BF学院_卷1] -- 第29讲:applyMixToMotors() —— 最终 Motor Output 生成 [BF学院_卷1] -- 第28讲:applyMixerAdjustment() —— 为什么 Mixer 需要重新分配控制权限 [BF学院_卷1] -- 第27讲:PID Output 如何进入 Mixer —— 从控制需求到 motorMix [BF学院_卷1] -- 第26讲:calculateThrottleAndCurrentMotorEndpoints() —— Mixer 如何确定油门基础范围 [BF学院_卷1] -- 第25讲:mixTable() 总览 —— Mixer 在控制循环中的位置 [BF学院_卷1] -- 第24讲:mixer_init.c —— 飞控启动时如何准备 Mixer [BF学院_卷1] -- 第23讲:Mixer 数学模型 —— motorMixer_t 如何形成 Motor Output [BF学院_卷1] -- 第22讲:Betaflight 如何描述 Mixer —— mixer.h 数据结构 [BF学院_卷1] -- 第21讲:四旋翼为什么可以通过电机控制姿态 —— Mixer 背后的物理基础 [BF学院_卷1] -- 第20讲:从 PID Output 到 Motor Command(电机指令)——为什么飞控需要 Mixer [BF学院_卷1] -- 第19讲:PID Controller(PID控制器)——飞控到底如何理解误差并控制飞机? [BF学院_卷1] -- 第18讲:PID Controller 的最后一环——为什么飞控还需要 Feedforward(前馈控制)? [BF学院_卷1] -- 第17讲:D Term(微分控制项)——飞控如何提前感知运动变化? [BF学院_卷1] -- 第16讲:I Term(积分控制项)——飞机为什么总是差一点? [BF学院_卷1] -- 第14讲:Rate Error(角速度误差)——PID 真正控制的到底是什么? [BF学院_卷1] -- 第15讲:P Term(比例控制项)——飞控是如何利用误差开始控制飞机的? [BF学院_卷1] -- 第13讲:Outer Loop 的终点——为什么还要读取 Current Angular Rate(当前角速度)? [BF学院_卷1] -- 第十二讲:Yaw Compensation(偏航补偿) [BF学院_卷1] -- 第12讲脚本 [BF学院_卷1] -- 第十一讲:Current Angular Rate(当前角速度)——飞控怎样知道飞机现在转得有多快? [BF学院_卷1] -- 第十讲:Angle Error(姿态角误差)如何变成 Desired Angular Rate(目标角速度) [BF学院_卷1] -- 第九讲:Current Angle(当前姿态角)遇见 Target Angle(目标姿态角) [BF学院_卷1] -- 第八讲:飞手打杆以后,飞控首先得到什么? [BF学院_卷1] -- 第七讲:为什么 Pitch Flip 只在 180° 看起来正确 [BF学院_卷1] -- 第7讲脚本 [BF学院_卷1] -- 第6讲:为什么 Pitch Flip 会骗人 [BF学院_卷1] -- 第6讲脚本 [BF学院_卷1] -- 第五讲:第一次修正——Pitch Flip 为什么看起来有效 [BF学院_卷1] -- 第5讲脚本 - longyue
[音视频 - MIPI] MIPI 带宽的计算
longyue · 2026-04-07 · via 博客园 - longyue

一、带宽计算

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
  1. 原始带宽 = 1920×1080×30×24 = 1.49 Gbps
  2. 加协议开销 ×1.2 → 1.79 Gbps
  3. 2 Lane: 单 Lane = 1.79 / 2 ≈ 896 Mbps → 8:1 完全够用
  4. 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 时序跑不起来