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

推荐订阅源

J
Java Code Geeks
Jina AI
Jina AI
小众软件
小众软件
WordPress大学
WordPress大学
Last Week in AI
Last Week in AI
美团技术团队
V
V2EX
酷 壳 – CoolShell
酷 壳 – CoolShell
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 聂微东
博客园 - 【当耐特】
人人都是产品经理
人人都是产品经理
雷峰网
雷峰网
博客园 - 司徒正美
量子位
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
宝玉的分享
宝玉的分享
月光博客
月光博客
IT之家
IT之家
博客园 - 三生石上(FineUI控件)
大猫的无限游戏
大猫的无限游戏
T
Tailwind CSS Blog
博客园 - Franky

博客园 - 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 时序跑不起来