MPI框架以及PIPE数据流向细节

news2024/11/15 1:46:22

一、海思MPP内部处理流程图

在这里插入图片描述
各模块功能介绍:
(1)VI:捕获视频图像,可对其做剪切、缩放、镜像等处理,并输出多路不同分辨率的图像数据.
(2)AI:捕获⾳频数据,然后AENC 模块⽀持按多种⾳频协议对其进⾏编码,最后输出⾳频码流.
(3)VPSS:接收VI 和解码模块发送过来的图像,可对图像进⾏裁剪、缩放、旋转、镜像、贴图等处理,并实现同源输出多路不同分辨率的图像数据⽤于编码、预览、智能分析或抓拍。
(4)VENC:接收VI 捕获并经VPSS 处理后输出的图像数据,可叠加⽤⼾通过Region模块设置的OSD 图像,然后按不同协议进⾏编码并输出相应码流.
当然,这些最基础的概念也不是本文的重点,相信各位读者也可以很轻松就理解上述概念。本文主要对实际项目中更深入的视频数据流向做详细介绍。

二、项目中PIPE的数据流向

(1)相关模块组件

很多初学者在学习MPP项目源码时,经常会碰到dev、vi、chn、venc、iva、pipe的相关名词,尤其是dev与vi会被绕的云里雾里,我们从软硬件层面来详细解释一下这些名词。
以RV1106的单目摄像头为例。因为只有一个摄像头,因此摄像头作为唯一的dev;对于这个dev设备,瑞芯微官网说明RV1106最大支持3个sensor 输入,即该设备最多支持三个VI硬件组件;对于一个VI组件,内部有多个视频输入通道chn,chn也是作为硬件组件存在与VI内部;venc同样是硬件组价,因此这里解码属于硬件解码,VENC内部并没有独立通道这一说法,因此VENC编号为VENC[0]、VENC[1]。
以上所述组件都属于硬件层面,接下来介绍软件层面的相关组件。IVA 是一种智能视频分析功能,位于软件层面,用于异常事件检测。而PIPELINE/PIPE既不属于软件也不属于硬件,而是我们人为规定的数据流向通道,可能读者觉得有些抽象,接下来通过一个实际的项目需求来更加深刻的了解一下相关概念。

(2)项目PIPE流向图

在这里插入图片描述

(3)PIPE流向解读

我们先来了解一下项目需求,数据流向也是基于项目需求而言。

本项目是实际项目,camer端的整体需求如下:
(1)有两路直播流供客户观看,主码流2k分辨率,子码流720p分辨率,两路直播流上均要显示事件以及相机编号。
(2)第三路码流用于事件侦测
(3)检测到事件发生时(画面有物体,人、宠物、车牌),将主码流发给服务器,事件结束时停止;
同时事件发生时,捕获一张图片,编码为JPEG格式发给服务器作为视频缩略图。
(4)服务端将H264码流保存为MP4格式进行观看。

整个项目中只用到VI0,第0号输入设备。对于第一路直播流,使用VI0中第0号独立通道,在编码前设置好OSD内容,将VI[0,0]与OSD一同送入VENC0进行编码,我们所说的2K分辨率实际是在这里完成的,设置编码视频的宽高1920*1080,编码后的H264码流写到RTSP服务端即完成PIPE0的管道搭建。PIPE1也同样类似。
对于IVA事件侦测,从VI[0,3]捕获视频帧送到IVS进行检测,完成PIPE3的搭建。
当检测到有事件发生时,要将2K分辨率的高清码流传给服务端,这里是直接从VENC0获取编码帧然后发给服务端。要将事件缩略图发给服务器,因为图片编码格式是JPEG,与VENC0、VENC1编码格式不同不能直接获取,因此从VI[0,0]捕获视频帧送给独立的VENC_JPEG编码器,将编码后的图片发给服务端。

总结

本文的作用更多是帮助初学者更好的理解MPP框架整个流程以及相关概念,对于实际业务开发的代码细节不做过多介绍。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1945143.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2024:Qt--编译配置Protobuf(windows10) 配图详解

这里写自定义目录标题 一、准备1、Window10系统2、Qt Creator 5.0.2 Based on Qt 5.15.2 (MSVC 2019, 64 bit)3、protobuf-3.15.0(本示例使用版本)4、cmake-3.21.3-windows-x86_64(本示例使用,下载的zip直接解压使用) …

代码随想录——零钱兑换Ⅱ(Leetcode518)

题目链接 完全背包 class Solution {public int change(int amount, int[] coins) {int[] dp new int[amount 1];dp[0] 1;for(int i 0; i < coins.length; i){for(int j coins[i]; j < amount; j){dp[j] dp[j - coins[i]];}}return dp[amount];} }本题为组合问题…

MySQL 约束 (constraint)

文章目录 约束&#xff08;constraint)列级约束和表级约束给约束起名字&#xff08;constraint)非空约束&#xff08;no null)检查约束&#xff08;check)唯一性约束 (unique)主键约束 (primary key)主键分类单一主键复合主键主键自增 &#xff08;auto_increment) 外键约束外什…

【IEEE出版 | 广东省高校联合主办】第六届物联网、自动化和人工智能国际学术会议(IoTAAI 2024,7月26-28)

第六届物联网、自动化和人工智能国际会议&#xff08;IoTAAI 2024&#xff09;将于2024年07月26-28日在中国广州召开。 会议旨在拓展国际科技学术交流渠道&#xff0c;搭建学术资源共享平台&#xff0c;促进全球范围内的科技创新&#xff0c;提升中外学术合作。会议还鼓励不同领…

BGP选路之Preferred value

原理概述 当一台BGP路由器中存在多条去往同一目标网络的BGP路由时&#xff0c;BGP协议会对这些BGP路由的属性进行比较&#xff0c;以确定去往该目标网络的最优BGP路由&#xff0c;然后将该最优BGP路由与去往同一目标网络的其他协议路由进行比较&#xff0c;从而决定是否将该最优…

FliFlik KleanOut for Photo 的妙用

FliFlik KleanOut for Photo 是一款专业的图像水印去除软件&#xff0c;旨在帮助用户快速高效地去除照片中的水印标识。无论是文本水印还是图像水印&#xff0c;该软件都能有效识别并删除&#xff0c;保持图像原始清晰度和质量。它采用 AI 算法引擎&#xff0c;可以精准识别和删…

MongoDB教程(十六):MongoDB高级索引

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; 文章目录 引言一、全文索…

最简单的typora+gitee+picgo配置图床

typoragiteepicgo图床 你是否因为管理图片而感到头大&#xff1f;是时候了解一下 Typora、Gitee 和 PicGo 这个超级三剑客了&#xff0c;它们可以帮你轻松打造自己的图床&#xff0c;让你的博客图片管理变得简单又有趣。让我们开始这场神奇的图床之旅吧&#xff01; Typora …

大型语言模型的生物医学知识图优化提示生成

大型语言模型的生物医学知识图优化提示生成 https://arxiv.org/abs/2311.17330 https://github.com/BaranziniLab/KG_RAG 大型语言模型的生物医学知识图优化提示生成 摘要 KG-RAG框架&#xff0c;较好的结合了生物医学知识图谱SPOKE和LLM的优势。SPOKE是一个开放知识图谱&…

聚焦保险行业客户经营现状,概述神策数据 CJO 解决方案

触点红利时代&#xff0c;企业的经营需求从「深度的用户行为分析」转变为「个性化、全渠道一致的客户体验」。客户旅程编排&#xff08;Customer Journey Orchestration&#xff0c;简称 CJO&#xff09;从体验出发&#xff0c;关注客户需求、感受和满意度&#xff0c;能够帮助…

04 HTML CSS JavaScript

文章目录 HTML1、HTML介绍2、快速入门3、基础标签4、图片、音频、视频标签5、超链接标签6、列表标签7、表格标签8、布局标签9、 表单标签 CSS1、 概述2、 css 导入方式3、 css 选择器4、 css 属性 JavaScript1、JavaScript简介2、JavaScript引入方式3、JavaScript基础语法4、Ja…

Adobe Audition(AU)安装包软件下载

目录 一、下载 二、AU软件介绍 三、使用技巧 四、快捷键操作 常用快捷键&#xff1a; 一、下载 链接https://pan.baidu.com/s/1Ax9pro_Q75YgLYaKDzZg8w?pwd3mi1 二、AU软件介绍 Adobe Audition是一个专业级的音频工作站&#xff0c;适用于音乐制作、广播、播客、视频后…

C#数组复习

一、一维数组 using System.Collections; using System.Collections.Generic; using UnityEngine;public class ShuZu : MonoBehaviour {#region 知识点一 基本概念//数组是存储一组相同类型数据的集合//数组分为 一维、二维、交错数组//一般情况 一维数组 就简称为数组#en…

Onenet模拟Mqtt调试物联网设备

本章节目录 一.调试器模拟设备登录 二.调试器模拟上传数据 三.调试器接受下发控制消息 一.调试器模拟设备登录(让设备处于在线状态) 1.打开文档中心(open.iot.10086.cn) 2,Onenet物联网开放平台 3.产品开发,设备接入->设备开发 4.mqtt协议接入->最佳实践 5.物模型数据交…

样式迁移及代码

一、定义 1、使用卷积神经网络&#xff0c;自动将一个图像中的风格应用在另一图像之上&#xff0c;即风格迁移&#xff1b;两张输入图像&#xff1a;一张是内容图像&#xff0c;另一张是风格图像。 2、训练一些样本使得样本在一些cnn的特征上跟样式图片很相近&#xff0c;在一…

PHP教程002:PHP变量介绍

文章目录 一、PHP程序1、PHP标记2、PHP代码3、语句结束符;4、注释 二、PHP变量2.1 声明变量2.2 赋值运算符3、变量命名规则 一、PHP程序 PHP文件的默认扩展名是".php"PHP文件可以包含html、css、js 序号组成描述1<?php ... ?>PHP标记2PHP代码函数、数组、流…

二、原型模式

文章目录 1 基本介绍2 实现方式深浅拷贝目标2.1 使用 Object 的 clone() 方法2.1.1 代码2.1.2 特性2.1.3 实现深拷贝 2.2 在 clone() 方法中使用序列化2.2.1 代码 2.2.2 特性 3 实现的要点4 Spring 中的原型模式5 原型模式的类图及角色5.1 类图5.1.1 不限制语言5.1.2 在 Java 中…

Java之集合底层-数据结构

Java集合之数据结构 1 概述 数据结构是计算机科学中研究数据组织、存储和操作的一门学科。它涉及了如何组织和存储数据以及如何设计和实现不同的数据操作算法和技术。常见的据结构有线性数据结构&#xff08;含数组、链表、栈和队列等&#xff09;&#xff0c;非线性数据结构…

四、GD32 MCU 常见外设介绍(1)RCU 时钟介绍

系统架构 1.RCU 时钟介绍 众所周知&#xff0c;时钟是MCU能正常运行的基本条件&#xff0c;就好比心跳或脉搏&#xff0c;为所有的工作单元提供时间 基数。时钟控制单元提供了一系列频率的时钟功能&#xff0c;包括多个内部RC振荡器时钟(IRC)、一个外部 高速晶体振荡器时钟(H…

Meta发布最强AI模型,扎克伯格公开信解释为何支持开源?

凤凰网科技讯 北京时间7月24日&#xff0c;脸书母公司Meta周二发布了最新大语言模型Llama 3.1&#xff0c;这是该公司目前为止推出的最强大开源模型&#xff0c;号称能够比肩OpenAI等公司的私有大模型。与此同时&#xff0c;Meta CEO马克扎克伯格(Mark Zuckerberg)发表公开信&a…