简介

海思提供的媒体处理软件平台(Media Process Platform,简称 MPP),可支持应用软件快速
开发。该平台对应用软件屏蔽了芯片相关的复杂的底层处理,并对应用软件直接提供
MPI(MPP Program Interface)接口完成相应功能。该平台支持应用软件快速开发以下
功能:输入视频捕获H.265/H.264/JPEG 编码H.265/H.264/JPEG 解码视频输出显
视频图像前处理(包括去噪、增强、锐化)图像拼接图像几何矫正智能、音
频捕获及输出、音**频编解码等功能**。
MIPI Rx 通过低电压差分信号接收原始视频数据,将接收到的串行差分信号(serial differential signal)转化为 DC(Digital Camera)时序后传递给下一级模块 VICAP(Video Capture)MIPI Rx 支持 MIPI D-PHY、LVDS(Low-Voltage Differential Signal)、HiSPi(High- Speed Serial Pixel Interface)等串行视频信号输入,同时兼容 DC 视频接口。SLVS-EC 接口由 SONY 公司定义,用于高帧率和高分辨率图像采集,它可以将高速串行的数据转化为 DC(Digital Camera)时序后传递给下一级模块 VICAP(VideoCapture)。SLVS-EC 串行视频接口可以提供更高的传输带宽,更低的功耗,在组包方式上,数据的冗余度也更低。在应用中 SLVS-EC 接口提供了更加可靠和稳定的传输。

硬件重要概念

MIPI

MIPI 的全称是 Mobile Industry Processor Interface(移动行业处理器接口),本文描述
的 MIPI 接口特指物理层使用 D-PHY 传输规范,协议层使用 CSI-2 的通信接口。**

LVDS

LVDS 的全称是 Low Voltage differential Signaling(低压差分信号),通过同步码区分
消隐区和有效数据。

SLVS-EC

SLVS-EC 的全称是 Scalable Low Voltage Signaling Embedded Clock,是与 MIPI 并
列的接口,用于高帧率和高分辨率图像采集。

Lane

用于连接发送端和接收端的一对高速差分线,即可以是时钟 Lane,也可以是数据 Lane

Link

发送端和接收端之间的时钟 Lane 和至少一个数据 Lane 组成一个 Link,一般把link 是一个软件概念,每一个 link 包括两个数据 lane

同步码

MIPI 接口使用 CSI-2 里面的短包进行同步,LVDS 使用同步码区分有效数据和消隐区。LVDS 有两种同步方式:

DOL

DOL 的全称是 Digital Overlap,指 SONY 的 WDR 功能。

硬件功能描述

MIPI Rx 是一个支持多种差分视频输入接口的采集单元,通过 combo-PHY 接收MIPI/LVDS/sub-LVDS/HiSPi/DC 接口的数据,通过不同的功能模式配置,MIPI Rx 可以支持多种速度和分辨率的数据传输需求,支持多种外部输入设备。

软件架构

MPP 平台支持的典型的系统层次如下。

  • 硬件层

硬件层由 Hi35xx 芯片加上必要的外围器件构成。外围器件包括 Flash、DDR(Double Data-Rate)、视频 Sensor 或 AD、音频 AD 等。

  • 操作系统层

基于 Linux Huawei LiteOS 的 OS 系统。

  • 操作系统适配层

提供操作系统系统调用基础函数,屏蔽操作系统差异,支持媒体处理平台运行在
不同的操作系统上,或相同操作系统不同版本。

  • 媒体处理平台

基于操作系统适配层,控制芯片完成相应的媒体处理功能。它对应用层屏蔽了硬
件处理细节,并为应用层提供 API 接口完成相应功能。

  • 其他驱动

除媒体处理平台外,海思为 Hi35xx 芯片的其他相关硬件处理单元提供了相应的驱动,
包括 CIPHER、RTC 等驱动。

  • 应用层

基于海思媒体处理平台及其他驱动,由用户开发的应用软件系统。
image.png

软件处理平台框架

海思媒体处理平台主要有以下几种模块,主要分为视频输入(VI)视频处理(VPSS)视频编码(VENC)视频解码(VDEC)视频输出(VO)视频拼接(AVS)音频输入(AI)音频输出(AO)音频编码(AENC)音频解码(ADEC)区域管理(REGION)等模块。
image.png

VI 模块

VI模块捕获视频图像,可对其做剪切、去噪等处理,并输出多路不同分辨率的图像数据。

解码模块

解码模块对编码后的视频码流进行解码,并将解析后的图像数据送 VPSS 进行图像处理,再送 VO 显示。可对 H.265/H.264/JPEG 格式的视频码流进行解码。

VPSS 模块

VPSS 模块接收 VI 和解码模块发送过来的图像,可对图像进行图像增强、锐化等处理,并实现同源输出多路不同分辨率的图像数据用于编码、预览或抓拍。

编码模块

编码模块接收 VI 捕获并经 VPSS 处理后输出的图像数据,可叠加用户通过 Region模块设置的 OSD 图像,然后按不同协议进行编码并输出相应码流。

VO 模块

VO 模块接收 VPSS 处理后的输出图像,可进行播放控制等处理,最后按用户配置的输出协议输出给外围视频设备。

AVS

AVS 接收多路 VI 采集的图像,进行拼接合成全景图像。

AI 模块

AI 模块捕获音频数据,然后 AENC 模块支持按多种音频协议对其进行编码,最后输出音频码流。

AO 模块

用户从网络或外围存储设备获取的音频码流可直接送给 ADEC 模块,ADEC 支持解码多种不同的音频格式码流,解码后数据送给 AO 模块即可播放声音。

VI 和 VPSS 工作模式

这个是属于VI模块以及vpss模块所拥有的模式。一共有三种工作模式分别是

  • 在线模式
  • 离线模式
  • 并行模式

    在线模式

  • VI_CAP 与 VI_PROC

VI_CAP 与 VI_PROC 之间在线数据流传输,此模式下 VI_CAP不会写出 RAW 数据到 DDR,而是直接把数据流送给VI_PROC。

  • VI_PROC 与 VPSS

VI_PROC 与 VPSS 之间的在线数据流传输,在此模式下 VI_PROC不会写出 YUV 数据到 DDR,而是直接把数据流送给 VPSS。

离线模式

  • VI_CAP 与 VI_PROC

VI_CAP 写出 RAW 数据到DDR,然后 VI_PROC 从 DDR读取 RAW 数据进行后处理。

  • VI_PROC 与 VPSS

VI_PROC 写出 YUV 数据到DDR,然后 VPSS 从 DDR 读取YUV 数据进行后处理.

并行模式

  • VI_CAP 与 VI_PROC

当对接大数据量的时序,例如8K@30fps 时,需要 VI_CAP 与两个 VI_PROC 处于并行模式,VI_CAP 直接把一帧数据送给两个 VI_PROC 并行处理。

  • VI_PROC 与 VPSS

当对接大数据量的时序,例如8K@30fps 时,需要 VI_CAP 与两个 VI_PROC 处于并行模式,同时两个 VPSS 也分别与VI_PROC 处于并行模式,VI_CAP 直接把一帧数据送给两个 VI_PROC 并行处理,再给VPSS 并行处理。