海思的媒体处理平台(MPP)的各个模块,包括VI、VPSS、VENC、VB等。VI是视频输入模块,负责捕获视频数据,可能涉及到物理通道和扩展通道的概念。VPSS处理视频,比如去噪、缩放等,然后VENC进行编码。VB则是视频缓存池,管理内存分配。

VI的物理通道可能对应传感器输入,而扩展通道可能是通过软件配置的虚拟通道。比如,物理通道可能直接连接摄像头硬件,而扩展通道用于多路处理或不同分辨率的输出。

海思的处理流程通常是VI捕获数据,传给VPSS处理,再送到VENC编码。VB在这个过程中负责缓存管理,避免内存拷贝,提高效率。比如VI将数据存入VB的缓存块,VPSS和VENC通过指针传递处理,不需要复制数据,这样节省资源。

需要理清各个模块之间的关系。比如VI可能有多个物理通道,每个物理通道可以生成多个扩展通道,用于不同的处理需求。VPSS组和通道的关系是一对多,一个组处理输入,输出多个通道的数据。VENC则负责将处理后的数据编码成码流。

还要注意VB的作用,VI、VPSS、VENC共享缓存块,通过地址传递,减少内存拷贝,提高性能。这也是为什么流程中各个模块能高效协作的原因。pipeline例子,sensor→VI→VPSS→VENC,或者VI→VPSS→VO显示。同时,扩展通道的应用场景,如多路输出或不同分辨率处理。

‌海思方案中 VI、VPSS、VENC、VB 的模块关系与流程解析‌

‌一、核心模块定义与功能‌

‌模块‌

‌功能描述‌

‌关键特性‌

‌VI‌

视频输入模块,负责从传感器(Sensor)捕获原始视频数据,支持时序解析、剪切、缩放等预处理操作‌。

- 支持多路输入(物理通道)
- 通过视频缓存池(VB)管理内存‌。

‌VPSS‌

视频处理模块,接收 VI 或解码模块(VDEC)的输入数据,进行去噪、锐化、缩放等图像增强处理‌。

- 支持同源多路输出(扩展通道)
- 可绑定到不同后端模块(如 VENC、VO)‌。

‌VENC‌

视频编码模块,对 VPSS 处理后的图像进行编码(如 H.264/H.265),生成压缩码流‌。

- 支持叠加 OSD(区域管理模块 REGION)
- 可接收多路 VPSS 输出‌。

‌VB‌

视频缓存池,统一管理物理内存分配与回收,供 VI、VPSS、VENC 等模块共享使用‌。

- 通过地址传递避免内存拷贝
- 动态分配内存块,防止内存泄漏‌。

‌二、通道类型与逻辑关系‌

‌物理通道(Physical Channel)‌

‌VI 物理通道‌:直接连接传感器的硬件通道,负责原始视频输入(如摄像头)‌。

‌VPSS 组(Group)‌:作为输入源,接收 VI 或 VDEC 的数据,支持一对多扩展通道输出‌。

‌扩展通道(Extended Channel)‌

‌VI 扩展通道‌:基于物理通道通过软件配置生成,用于输出不同分辨率或格式的视频流(如主码流、子码流)‌。

‌VPSS 通道‌:每个组可输出多路通道,分别适配编码、显示等不同需求(如 1080P 编码 + 720P 预览)‌。

‌逻辑绑定关系‌

‌VI → VPSS‌:VI 物理通道绑定到 VPSS 组,输出图像数据‌。

‌VPSS → VENC‌:VPSS 扩展通道绑定到 VENC,传递处理后图像进行编码‌。

‌三、典型数据处理流程‌

‌基础流程(单路输入)‌

Sensor → VI(物理通道) → VB → VPSS(组) → VPSS(扩展通道) → VENC → 压缩码流  

‌关键步骤‌:

VI 捕获原始数据并存入 VB 缓存块,后续模块通过地址引用处理数据‌。

VPSS 对图像进行增强处理,并通过扩展通道分发到不同后端模块‌。

VENC 编码时可通过 REGION 模块叠加 OSD 信息(如时间戳)‌。

‌多路扩展场景(如多分辨率输出)‌

Sensor → VI(物理通道)  

         ├→ 扩展通道1(主码流) → VPSS(组) → VENC(H.265 编码)  

         └→ 扩展通道2(子码流) → VPSS(组) → VO(显示输出)

‌优势‌:单物理通道支持多路差异化处理,减少硬件资源占用‌。

‌复杂场景(解码+处理)‌

存储介质 → VDEC → VPSS(组) → VENC(转码) → 新压缩码流

‌说明‌:VDEC 解码后数据通过 VPSS 重处理,适用于视频转码或智能分析场景‌。

‌四、VB(视频缓存池)的核心作用‌

‌内存管理机制‌

VI、VPSS、VENC 等模块共享 VB 分配的缓存块,仅传递内存地址而非拷贝数据,提升性能并避免内存泄漏‌。

缓存块生命周期由系统自动管理(如编码完成后自动释放)‌。

‌配置示例‌

定义不同 VB 池(如 VI 池、VENC 池),按模块需求分配内存大小‌。

‌五、总结‌

‌模块协作‌:VI 负责输入,VPSS 负责处理,VENC 负责编码,VB 统一管理内存,形成高效流水线‌。

‌通道逻辑‌:物理通道连接硬件,扩展通道实现灵活分发,支持多场景应用‌。

‌典型流程‌:从数据采集到编码输出的链路中,VB 缓存机制是关键性能保障‌。

Logo

海思 HiSpark 开发者社区是上海海思为开发者搭建的内容和交流平台,依托完备芯片解决方案、专业开发环境、开源/开放的软件资源与社区技术内容,构建完整服务生态开发者的闭环体系。

更多推荐