海思MPP功能模块、视频缓存池简介

一、MPP功能模块

1、MPP功能模块(MPP,media process platform,媒体处理平台)

(1)MPP手册:\01.software\board\document_cn目录下的《HiMPP IPC V2.0 媒体处理软件开发参考.pdf》

(2)详见MPP手册的系统概述1.3部分。

海思MPP功能模块、视频缓存池简介_第1张图片

海思MPP功能模块、视频缓存池简介_第2张图片

  • 以ko和api形式提供,和驱动处于同一层次。
  • 处理流程主要分为视频输入(VI)、视频处理(VPSS)、视频编码(VENC)、视频解码(VDEC)、视频输出(VO)、视频侦测分析(VDA)、音频输入(AI)、音频输出(AO)、音频编码(AENC)、音频解码(ADEC)、区域管理(REGION)等模块。
  • VI 模块捕获视频图像,可对其做剪切、缩放等处理,并输出多路不同分辨率的图像数据。
  • 解码模块对编码后的视频码流进行解码,并将解析后的图像数据送 VPSS 进行图像处理或直接送 VO 显示。可对H264/MPEG4/MPEG2 格式的视频码流进行解码。
  • VPSS 模块接收 VI 和解码模块发送过来的图像,可对图像进行去噪、图像增强、锐化等处理,并实现同源输出多路不同分辨率的图像数据用于编码、预览或抓拍。
  • 编码模块接收 VI 捕获并经 VPSS 处理后输出的图像数据,可叠加用户通过 Region模块设置的 OSD(水印信息)图像,然后按不同协议进行编码并输出相应码流。
  • VDA 模块接收 VI 的输出图像,并进行移动侦测和遮挡侦测,最后输出侦测分析结果。
  • VO 模块接收 VPSS 处理后的输出图像,可进行播放控制等处理,最后按用户配置的输出协议输出给外围视频设备。

2、使用SI软件,把MPP文件夹倒入,从例子sample_venc.c文件中的SAMPLE_VENC_1080P_CLASSIC函数开始看

海思MPP功能模块、视频缓存池简介_第3张图片

海思MPP功能模块、视频缓存池简介_第4张图片

PAYLOAD_TYPE_E(传输的格式类型是什么)

PIC_SIZE_E(图像分辨率大小)

VB_CONF_S(视频缓存池)

 

二、视频缓存池

1、概念

(1)视频缓存池(VB,video buffer),是一段用于暂存视频数据、进行运算的内存。

(2)视频的裁剪、缩放、修正处理等各种操作,本质上是对内存中的数据进行运算。

(2)视频缓存池的内存由MPP来维护

  • 系统启动时,把整个SDRAM分成2部分:系统部分(由linux kernel来维护管理)和mpp部分(由mpp系统来维护管理)

(4)缓存池的数量,缓存块的数目和大小,可以由用户程序设置好参数,调用MPP的相应API来向MPP申请分配。

 

2、相关的数据结构和API

VB_CONF_S  结构体

海思MPP功能模块、视频缓存池简介_第5张图片

HI_MPI_VB_SetConf API函数

HI_MPI_VB_Init         API函数

你可能感兴趣的:(海思方案图传)