《一》HI3518E视频处理基础知识----- 系统控制mpp

2023-10-31

目录

一、MPP的概述

1.视频方面

2.音频方面

3.MPP所处层次框架图

二、mpp处理平台架构

三、视频缓存池

1.视频缓冲池(VB)

2、要点

3、相关的数据结构和API

(1)VB_CONF_S

(2)HI_MPI_VB_SetConf

(3)HI_MPI_VB_Init

4.使用举例子:(来自华为海思官方的mpp使用参考手册)

4.VI/VPSS 离/在线模式


一、MPP的概述

 

海思提供的媒体处理软件平台(Media Process Platform,简称 MPP),可支持应用软件快速开发。

该平台对应用软件屏蔽了芯片相关的复杂的底层处理,并对应用软件直接提供MPI接口完成相应功能。该平台支持应用软件快速开发以下功能:

1.视频方面

  • 输入视频捕获
  • 视频图像前处理(包括去噪、增强、锐化、 Deinterlace)
  • H.265/H.264/MJPEG/JPEG/MPEG4 编码
  • H.264/MPEG4/MPEG2解码
  • 视频输出显示
  • 编码码流叠加 OSD
  • 视频侦测分析
  • 智能分析

2.音频方面

  • 音频捕获及输出
  • 音频编解码等功能

3.MPP所处层次框架图

在这里插入图片描述

二、mpp处理平台架构

主要内部处理流程图:

在这里插入图片描述

  • VI 模块:捕获视频图像,可对其做剪切、缩放等处理,并输出多路不同分辨率的图像数据。
  • VDEC解码模块(video decoder):对编码后的视频码流进行解码,并将解析后的图像数据送VPSS进行图像处理或直接送 VO 显示。可对H264/MPEG4/MPEG2 格式的视频码流进行解
  • VPSS 模块:接收 VI 模块和VDEC解码模块发送过来的图像,可对图像进行去噪、图像增强、锐化等处理,并实现同源输出多路不同分辨率的图像数据用于编码、预览或抓拍。
  • VENC编码模块(Video Encode):接收 VI 捕获并经 VPSS 处理后输出的图像数据,可叠加用户通过 Region模块设置的 OSD 图像,然后按不同协议进行编码并输出相应码流。
  • VDA 模块:接收 VI 的输出图像,并进行移动侦测和遮挡侦测,最后输出侦测分析结果。
  • VO 模块:接收 VPSS 处理后的输出图像,可进行播放控制等处理,最后按用户配置的输出协议输出给外围视频设备。

三、视频缓存池

1.视频缓冲池(VB)

视频缓存池主要向媒体业务提供大块物理内存管理功能,负责内存的分配和回收,充分发挥内存缓存池的作用,让物理内存资源在各个媒体处理模块中合理使用。一组大小相同、物理地址连续的缓存块组成一个视频缓存池

  • 视频输入通道需要使用公共视频缓存池。所有的视频输入通道都可以从公共视频缓存池中获取视频缓存块用于保存采集的图像。(如图中所示从公共视频缓存池 A 中获取视频缓存块Bm)。
  • 视频输入通道不提供创建和销毁公共视频缓存池功能,因此,在系统初始化之前,必须为视频输入通道配置公共视频缓存池。据业务的不同,公共缓存池的数量、缓存块的大小和数量不同
  • 图中所示缓存块的生存期是指经过 VPSS 通道传给后续模块的情形( 图 2-1 实线路径)。
  • 如果该缓存块完全没有经过 VPSS 通道传给其他模块,则将在 VPSS 模块处理后被放回公共缓存池(图 2-1 虚线路径)

视频输入( VI)、视频处理( VPSS)、视频编码( VENC)、视频解码( VDEC)、视频输出(VO)、视频侦测分析(VDA)在这里插入图片描述

 

2、要点

(1)视频的本质是多帧图片,图片的本质是RGB或rawRGB数据,要占用一段连续内存
(2)视频的裁剪、缩放、修正处理等各种操作,本质上就是对内存中的数据进行运算
(3)视频缓存池(VB, video buffer)就是一段很大,又被合理划分和管理的内存,用来做视频数据的暂存和运算场地
(4)公共视频缓存池的公共2字,可以理解为全局变量,也就是各个模块都能访问的一段内存
(5)看似视频缓存块在各个模块之间流转,实际上并没有内存复制,而是指针在传递
(6)视频缓存池的内存由MPP来维护,我们在系统启动时就把整个SDRAM分成了2部分:系统部分(由linux kernel来维护管理)和mpp部分(由mpp系统来维护管理)
(7)缓存池需要几个,每个中包含几个缓存块,每个缓存块多大,都是可以由用户程序设置好参数,然后调用MPP的相应API来向MPP申请分配的。

3、相关的数据结构和API

(1)VB_CONF_S

在这里插入图片描述

(2)HI_MPI_VB_SetConf

设置 MPP 视频缓存池属性

(3)HI_MPI_VB_Init

初始化 MPP 视频缓存池

4.使用举例子:(来自华为海思官方的mpp使用参考手册)

HI_S32 s32ret;
VB_CONF_S struVbConf;
MPP_SYS_CONF_S struSysConf;
memset(&struVbConf,0,sizeof(VB_CONF_S));
struVbConf.u32MaxPoolCnt = 64;                    //填充结构体
struVbConf.astCommPool[0].u32BlkSize = 1920*1088*2;
struVbConf.astCommPool[0].u32BlkCnt = 15;
memset(struVbConf.astCommPool[0].acMmzName,0,sizeof(struVbConf.astCommPoo
l[0].acMmzName));
s32ret = HI_MPI_VB_SetConf(&struVbConf);      //设置 MPP 视频缓存池属性
if (HI_SUCCESS != s32ret)
{
return s32ret;
}
s32ret = HI_MPI_VB_Init();
if (HI_SUCCESS != s32ret)
{
return s32ret;
}
struSysConf.u32AlignWidth = 16;
/* set config of mpp system*/
s32ret = HI_MPI_SYS_SetConf(&struSysConf);
if (HI_SUCCESS != s32ret)
{
printf("Set mpp sys config failed!\n");
return s32ret;
}
/* init system*/
s32ret = HI_MPI_SYS_Init();     //初始化 MPP 视频缓存池
if (HI_SUCCESS != s32ret)
{
printf("Mpi init failed!\n");
return s32ret;
}

 

4.VI/VPSS 离/在线模式

【1】VI 和 VPSS 的协作模式分为以下 2 种(模式切换由 load 脚本参数控制,对应 sys 模块参数 vi_vpss_online):

在这里插入图片描述

  • VI/VPSS 离线模式:是指 VI 进行时序解析后将图像数据写出到 DDR, VPSS 从DDR 中载入 VI 采集的数据进行图像处理,是传统 Hi3518/Hi3520D 等芯片的VI/VPSS 的协作模式。

  • VI/VPSS 在线模式:是指 VI 进行时序解析后直接在芯片内部将数据传递到 VPSS,中间无 DDR 写出的过程。在线模式可以省一定的带宽和内存,降低端到端的延时。需要注意的是,在线模式时,因为 VI 不写出数据到 DDR,无法进行CoverEx、 OverlayEx、 Rotate、 LDC 等操作,需要在 VPSS 各通道写出后再进行Rotate/LDC 等处理,而且有些功能只在离线下能支持,比如 DIS。

     

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

《一》HI3518E视频处理基础知识----- 系统控制mpp 的相关文章

  • STM32学习:通过DMA读取ADC规则通道多通道转换数据

    1 STM32的DMA简介 直接存储器存取 DMA 用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输 无须CPU干预 数据可以通过DMA快速地移动 这就节省了CPU的资源来做其他操作 两个DMA控制器有12个通道 DMA1有7
  • MATLAB基本运算

    算术运算 1 基本运算符 加 减 乘 右除 左除 乘方 MATLAB的算术运算是在矩阵意义下进行的 单个数据的算术运算只是矩阵运算的一种特例 加减运算 若两矩阵同型 则运算时两矩阵的相应元素相加减 若两矩阵不同型 则MATLAB将给出错误信

随机推荐

  • 《科研伦理与学术规范》期末考试答案2023

    1 单选 2 分 关于科研伦理描述不正确的说法是 A 规范则未必均是在道德层面上具有调整性 B 伦理学已经从传统的以人为中心走向现代的以行为为中心 C 现代伦理学主要关注以行为 准则 规范 义务 D 所有的规范的评判都涉及到 善恶正邪 的价
  • C#实现QQ窗体功能

    C 实现QQ窗体功能 案例简述 预备知识导图 功能结构 知识点分析 C 基础知识 Windows系统知识 控件和组件 案例简述 通过C 使用类似QQ窗体的功能 当窗体放置到屏幕的边缘 可以将窗体隐藏 当鼠标再次放置到屏幕边缘时 窗体可再次显
  • centos安装docker详细步骤

    目录 一 前言 1 环境要求 2 官网中文安装参考手册 二 安装步骤 1 卸载旧版本 2 安装需要的软件包 3 设置docker镜像源 1 配置docker镜像源 方式1 官网地址 外国 方式2 阿里云源 2 查看配置是否成功 4 更新yu
  • 使用sklearn完成4种基本的分类算法:朴素贝叶斯算法、决策树算法、人工神经网络、支持向量机算法

    文章目录 实验目的 实验内容及步骤 实验数据说明 实验过程 朴素贝叶斯分类 决策树 决策树概念简介 神经网络 SVM 实验目的 巩固4种基本的分类算法的算法思想 朴素贝叶斯算法 决策树算法 人工神经网络 支持向量机算法 能够使用现有的分类器
  • iOS编程基础-Swift(四)-对象类型(续)

    Swift iOS9 Programming Fundamentals With swift 第四章 对象类型 第三章介绍了一些内建对象类型 不过还没有谈及对象类型本身 即 枚举 结构体 和 类 本章结构 1 介绍一下对象类型 2 详细介绍
  • 时空RBF-NN预测混沌时间序列

    时空RBF NN预测混沌时间序列 混沌理论是现代非线性动力学研究的重要分支之一 混沌现象不仅存在于物理系统中 还出现在金融 生物等领域中 混沌时间序列的预测一直是研究者关注的焦点 本文提出了一种基于时空RBF NN的混沌时间序列预测方法 并
  • OMA DM终端管理

    居然还有这个东西 今天才知道 好强大 OMA全称是Open Mobile Alliance 即开放移动联盟 成立于2002年7月 由近200家公司组成 它的目的是搜集市场需求 规范业务应用层和网络功能层之间的接口 定义一个公开的标准框架 从
  • web项目时Spring监听器配置

    问题 每次使用ClassPathXmlApplicationContext 和getBean 方法时 都会加载spring配置文件 影响性能 解决方案 1 在服务器启动的时候 创建对象加载配置文件 2 底层使用监听器 listener 和S
  • ISE中FIFO IP核的Standard FIFO和First-word-Fall-Through模式的仿真比较

    ISE下的FIFO IP核有Standard FIFO和First word Fall Through两种模式 相对于标准模式FWFT First word Fall Through 可以不需要读命令 自动的将最新数据放在dout上 接下来
  • Qt中的串口编程之一

    QtSerialPort 简介 QtSerialPort模块是Qt5库的附加部分 为硬件和虚拟的串口提供了统一的接口 注意 该模块也增加了对Qt4的支持 串口由于其简单和可靠 目前在像嵌入式系统 机器人等工业中依旧用得很多 使用QtSeri
  • QFrame类使用总结

    QFrame与QWidget的区别 QFrame是基本控件的基类 QWidget是QFrame基类 关系如下 QPushButton QLabel gt QFrame gt QWidget 我们经常会从QFrame或者QWidget继承然后
  • 手机把网页保存为html,怎么保存整个网页

    手机评站网今天精心准备的是 怎么保存整个网页 下面是详解 如何另存整个网页 如何另存整个网页 如何另存整个网页 1 在手机桌面中找到手机百度 点击打开手机百度 如下图所示 2 在手机百度中找到自己想要另存为的网页 点击进入该网页如下图所示
  • Visual Studio运行程序执行太快,看不到运行屏幕的结果,设置项目属性解决。

    一 右击项目 找到属性 二 找到链接器 三 链接器中找到子系统 子系统 选择控制台 SUBSYSTEM CONSOLE 应用 确定即可 四 也可以补充getchar 可以利用从键盘获取一个字符 来显示调试窗口
  • C++ 二叉树序列化与反序列化

    本人微信公众号 CPP进阶之旅 如果觉得这篇文章对您有帮助 欢迎关注 CPP进阶之旅 学习更多技术干货 C 二叉树序列化与反序列化 1 题目要求 2 题目说明 3 核心问题 4 解题思路 5 代码实现 6 问题扩展 7 重要说明 1 题目要
  • 从源码出发浅析 Android TV 的焦点移动原理(下篇)

    转自 https cloud tencent com developer article 1006297 2 2 findNextFocus 如果开发者没有指定nextFocusId 则用findNextFocus找指定方向上最近的视图看一
  • 方差、协方差、期望、相关系数等概念集合

    首先说明一下 本文是本人在复习方差等相关知识的过程中 通过网络上的相关讲解 进行个人总结后得到的 并非个人原创 在此发布只是为了作为一个学习记录与大家分享 1 期望 试验中可能出现的值及其概率的乘积 即是数学期望 1 离散型 离散型随机变量
  • git add 命令详解

    1 前言 2 git add 基本操作 3 git add 命令参数 4 git add 背后做了什么 1 前言 众所周知 git 中有工作区 暂存区 版本库三大组成部分 工作区 电脑中能看到的目录 也就是写代码的地方 暂存区 英文叫 st
  • vue3中通过自定义指令,实现点击空白处触发事件,点击非自身dom触发事件

    我们经常在开发过程中 会遇到这些问题 怎么实现点击空白处关闭指定盒子 怎么实现点击空白处收起下拉框 即 怎么触发点击空白处事件 怎么触发 点击非自身dom而触发的事件 在vue3当中 使用自定义指令解决这个问题 在utils directi
  • 开启network-manager.service

    ubuntu20 04 本身系统会默认开机自动连接网络服务 但是我之前自己设置关闭了 所以现在要手动打开使用一下命令 先进入root xxz sudo systemctl start network manager service 回车执行
  • 《一》HI3518E视频处理基础知识----- 系统控制mpp

    目录 一 MPP的概述 1 视频方面 2 音频方面 3 MPP所处层次框架图 二 mpp处理平台架构 三 视频缓存池 1 视频缓冲池 VB 2 要点 3 相关的数据结构和API 1 VB CONF S 2 HI MPI VB SetConf