简介
海思提供的媒体处理软件平台(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 等驱动。
- 应用层
软件处理平台框架
海思媒体处理平台主要有以下几种模块,主要分为视频输入(VI)、视频处理(VPSS)、视频编码(VENC)、视频解码(VDEC)、视频输出(VO)、视频拼接(AVS)、音频输入(AI)、音频输出(AO)、音频编码(AENC)、音频解码(ADEC)、区域管理(REGION)等模块。
VI 模块
VI模块捕获视频图像,可对其做剪切、去噪等处理,并输出多路不同分辨率的图像数据。
解码模块
解码模块对编码后的视频码流进行解码,并将解析后的图像数据送 VPSS 进行图像处理,再送 VO 显示。可对 H.265/H.264/JPEG 格式的视频码流进行解码。
VPSS 模块
VPSS 模块接收 VI 和解码模块发送过来的图像,可对图像进行图像增强、锐化等处理,并实现同源输出多路不同分辨率的图像数据用于编码、预览或抓拍。
编码模块
编码模块接收 VI 捕获并经 VPSS 处理后输出的图像数据,可叠加用户通过 Region模块设置的 OSD 图像,然后按不同协议进行编码并输出相应码流。
VO 模块
VO 模块接收 VPSS 处理后的输出图像,可进行播放控制等处理,最后按用户配置的输出协议输出给外围视频设备。
AVS
AI 模块
AI 模块捕获音频数据,然后 AENC 模块支持按多种音频协议对其进行编码,最后输出音频码流。
AO 模块
用户从网络或外围存储设备获取的音频码流可直接送给 ADEC 模块,ADEC 支持解码多种不同的音频格式码流,解码后数据送给 AO 模块即可播放声音。
VI 和 VPSS 工作模式
这个是属于VI模块以及vpss模块所拥有的模式。一共有三种工作模式分别是
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 并行处理。