Linux_54:RV1126的VI模块讲解

一.本章节介绍

本章节主要是介绍rockx+rv1126人脸识别推流项目的VI模块的初始化,这个项目的VI模块需要初始化两个,一个是用于rockx的人脸检测、人脸识别的处理。另外一个则用于显示AI处理结果。设置VI模块的代码在rkmedia_module_function.cpp里面。

二.VI模块的思维导图

上面思维导图主要是描述VI模块设置的大致流程,这里要创建两个RV1126_VI_CONFIG结构体并进行参数设置,第一个是用于rockx人脸检测、识别,第二个是用于显示AI处理结果。设置完参数之后,则需要调用rkmedia_vi_init去初始化这两个VI模块并且使能,最后把这两个VI模块的ID号存放到数组里面(vi_containers)。

三、VI模块代码的截图

3.1. rockx VI 模块设置

id **:**VI模块的id号,用于初始化和使能VI模块

pcVideoNode: 摄像头的视频节点,这里默认是rkispp_scale0

u32BufCnt **:**缓冲区计数,默认是3

u32Width **:**VI模块分辨率宽度1920

u32Height **:**VI模块分辨率高度1080

enPixFmt **:**图像格式默认是NV12,这里填的是IMAGE_TYPE_NV12

enBufType **:**VI模块捕捉视频的类型,这里默认填写MMAP

enWorkMode **:**VI工作模式,这里写的是VI_WORK_MODE_NORMAL

设置完上述参数后,则需要调用set_vi_container把VI的模块号放到数组里面,这里数组的索引号是0。

3.2. 显示 AI 结果的 VI 模块设置

这部分的参数跟上面大部分是相同的,区别在于pcVideoNode rockx VI模块的pcVideoNode是rkispp_scale0 ,而显示VI模块的pcVideoNode是rkispp_scale1,下面我们来看具体的参数设置。

id **:**VI模块的id号,用于初始化和使能VI模块

pcVideoNode: 摄像头的视频节点,这里选择的是rkispp_scale1

u32BufCnt **:**缓冲区计数,默认是3

u32Width **:**VI模块分辨率宽度1920

u32Height **:**VI模块分辨率高度1080

enPixFmt **:**图像格式默认是NV12,这里填的是IMAGE_TYPE_NV12

enBufType **:**VI模块捕捉视频的类型,这里默认填写MMAP

enWorkMode **:**VI工作模式,这里写的是VI_WORK_MODE_NORMAL

设置完上述参数后,则需要调用set_vi_container把VI的模块号放到数组里面,这里数组的索引号是1。

3.3. 启动两个 VI 模块进行视频采集

设置完两个VI模块的参数之后,就需要启动模块进行视频数据的采集,这里直接调用RK_MPI_VI_StartStream去开启摄像头的两个视频模块进行采集。

3.4. rkmedia_vi_init 函数的实现

rkmedia_vi_init 这个自定义函数里面,关键是对VI进行初始化和使能,它分别调用了RK_MPI_VI_SetChnAttr的API对VI模块的属性进行初始化,然后再调用RK_MPI_VI_EnableChn对其使能。

3.5. set_vi_container 函数的实现

上面是set_vi_container 函数的实现,这里要把VI的模块号存放到RV1126_VI_CONTAINTER结构体容器里面。

相关推荐
程序员cxuan27 分钟前
幽默,一个 Github 名字叫“马尾辫”,但是他给你省了 80% 的 token
人工智能·后端·程序员
宋哥转AI42 分钟前
Agent记忆模块系列:03存储与检索链路实测验证
人工智能·agent
老金带你玩AI1 小时前
老金开源GoalPro,别让AI把目标越写越烂
人工智能
Bigfish_coding1 小时前
前端转agent-【python】-08 用 LangGraph 把 Agent 做成状态机:像写 Vue 3 状态管理一样编排 AI 流程
人工智能
刺猬的温驯2 小时前
语音克隆模型的难点之一:音素对齐及交叉注意力早期失效问题 (兼论旋转位置编码)——F5-TTS、SupertonicTTS、VoxFlash-TTS 对比
人工智能·语音合成·tts
道友可好2 小时前
AI 是最好的混乱放大器:代码熵管理实战
前端·人工智能·后端
不加辣椒4 小时前
第7章 边界与约束技术:确保输出的准确性与安全性
人工智能
AI悦创Python辅导4 小时前
Claude Code 越用越乱?Sub-Agents 才是上下文污染的解法
人工智能
Bigfish_coding4 小时前
前端转agent-【python】-07 长期记忆进阶:用 ChromaDB + 语义搜索给 Agent 装上真正的长期记忆
人工智能
阿黎梨梨4 小时前
AI Loop:告别“人肉写提示词”,让代码替你“鞭策”AI
javascript·人工智能