ISP、VPU、MPP的关系梳理
·
ISP、VPU、MPP 关系梳理
先看它们各自是什么
ISP(Image Signal Processor)图像信号处理器 专门处理从摄像头传感器出来的原始RAW数据,把它变成人眼能看的正常图像。
VPU(Video Processing Unit)视频处理单元 专门做视频的编码(压缩)和解码(解压),比如把YUV原始视频压成H.264码流。
MPP(Media Process Platform) Rockchip官方提供的软件库,是操控VPU的编程接口,本身不是硬件。
三者的层次关系
┌─────────────────────────────────────────┐
│ RV1126B SoC 内部 │
│ │
│ ┌──────────┐ ┌──────────────┐ │
│ │ ISP │ │ VPU │ │
│ │ 硬件单元 │ │ 硬件单元 │ │
│ │ │ │ │ │
│ │ RAW→YUV │ │ YUV→H.264 │ │
│ └──────────┘ └──────────────┘ │
│ ↑ │
│ MPP库调用 │
└─────────────────────────────────────────┘
ISP和VPU都是芯片上独立的硬件模块,MPP是访问VPU的软件接口。
完整的数据流
从摄像头拍到最终生成H.264码流,经历了这几个阶段:
IMX415传感器
│
│ RAW10/RAW12 裸数据(拜耳格式)
│ 通过 MIPI CSI 接口传输
↓
┌─────────────────────────────┐
│ ISP │ ← 硬件
│ │
│ 降噪 → 白平衡 → 色彩矫正 │
│ → 去马赛克 → HDR合成 │
│ │
│ 输出:YUV420 格式图像 │
└─────────────────────────────┘
│
│ YUV420 原始图像(未压缩,数据量很大)
↓
┌─────────────────────────────┐
│ MPP库(软件) │ ← 软件接口
│ │
│ mpp_create() │
│ mpp_init() │
│ mpp_encode(yuv_frame) ────┼──→ 驱动VPU工作
│ mpp_get_packet(h264) │
└─────────────────────────────┘
│
↓
┌─────────────────────────────┐
│ VPU │ ← 硬件
│ │
│ 运动估计 → DCT变换 │
│ → 量化 → 熵编码 │
│ │
│ 输出:H.264码流 │
└─────────────────────────────┘
│
│ H.264码流
↓
GStreamer → RTSP推流 / MP4录像
三者分工对比
| ISP | VPU | MPP | |
|---|---|---|---|
| 本质 | 硬件 | 硬件 | 软件库 |
| 位置 | 芯片内部 | 芯片内部 | 用户空间 |
| 输入 | RAW裸数据 | YUV图像 | 开发者的API调用 |
| 输出 | YUV图像 | H.264/H.265码流 | 驱动VPU产生码流 |
| 处理阶段 | 采集阶段 | 编码阶段 | 编码阶段(控制层) |
| 类比 | 洗胶卷的暗房 | 压缩打包机 | 打包机的操作说明书 |
关键理解
ISP和VPU没有直接关系,它们处理的是流水线上的不同阶段,ISP在前,VPU在后,中间的纽带是YUV图像数据。
MPP只管VPU,不管ISP。ISP有自己独立的控制接口,在RV1126B上通过Rockchip的RKisp驱动和媒体框架来控制,和MPP是两套体系。
为什么要把RAW转成YUV再编码? RAW数据是传感器的原始电信号,颜色信息不完整、噪点多、格式不标准,VPU无法直接处理,必须先经过ISP"整理成正常图像"再交给VPU压缩。
openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。
更多推荐

所有评论(0)