HISI_3516_vpss
我这里只是想自己做一个总结,是收到大牛博客的启发,按顺序自己总结一遍,具体的一些解释请看此文章:
海思3518E开发笔记2.6——海思VPSS(Video Process Sub-System)模块详解_Spark!的博客-CSDN博客_海思3518e目录海思Video Process Sub-System模块架构介绍海思Video Process Sub-System相关概念VI、VPSS的离、在线模式海思Video Process Sub-System模块功能介绍函数调用关系相关数据结构流程分析海思Video Process Sub-System模块架构介绍VPSS( Video Process Sub-System)支持对一幅输入图像进行统一预处理,如去噪、去隔行(隔行扫描转为逐行扫描,以前隔行扫描好做,现在为了兼容需要去隔行,一般不会碰到,看https://blog.csdn.net/qq_28258885/article/details/118757094
目录
初始化:
流程分析:
<1>
<2>GK_ADP_COMM_VPSS_Start
<3>GK_ADP_COMM_VI_Bind_VPSS
<4>enable chn
总图
初始化:
GK_S32 i;VPSS_CHN_ATTR_S astVpssChnAttr[VPSS_MAX_CHN_NUM];VPSS_GRP_ATTR_S stVpssGrpAttr;GK_BOOL abChnEnable[VPSS_MAX_CHN_NUM] = {GK_FALSE, GK_FALSE, GK_FALSE, GK_FALSE};VPSS_GRP VpssGrp = 0;stVpssGrpAttr.u32MaxW = 3840;stVpssGrpAttr.u32MaxH = 2160;stVpssGrpAttr.stFrameRate.s32SrcFrameRate = -1;stVpssGrpAttr.stFrameRate.s32DstFrameRate = -1;stVpssGrpAttr.enDynamicRange = DYNAMIC_RANGE_SDR8;stVpssGrpAttr.enPixelFormat = PIXEL_FORMAT_YVU_SEMIPLANAR_420;stVpssGrpAttr.bNrEn = GK_FALSE;for (i = 0; i < u32VpssChnNum; i++){abChnEnable[i] = GK_TRUE;}for(i = 0; i < VPSS_MAX_CHN_NUM; i++){astVpssChnAttr[i].u32Width = pastSize[i].u32Width;// pastSize[i].u32WidthastVpssChnAttr[i].u32Height = pastSize[i].u32Height;// pastSize[i].u32HeightastVpssChnAttr[i].enChnMode = VPSS_CHN_MODE_USER;astVpssChnAttr[i].enCompressMode = COMPRESS_MODE_NONE;astVpssChnAttr[i].enDynamicRange = DYNAMIC_RANGE_SDR8;astVpssChnAttr[i].enVideoFormat = VIDEO_FORMAT_LINEAR;astVpssChnAttr[i].enPixelFormat = PIXEL_FORMAT_YVU_SEMIPLANAR_420;astVpssChnAttr[i].stFrameRate.s32SrcFrameRate = -1;astVpssChnAttr[i].stFrameRate.s32DstFrameRate = -1;astVpssChnAttr[i].u32Depth = 1;astVpssChnAttr[i].bMirror = GK_FALSE;astVpssChnAttr[i].bFlip = GK_FALSE;astVpssChnAttr[i].stAspectRatio.enMode = ASPECT_RATIO_NONE;}
流程分析:
<1>
在vb缓冲区初始化部分GK_COMM_IVE_VbInit,用以下函数获取了图像尺寸。
s32Ret = GK_ADP_COMM_SYS_GetPicSize(paenSize[i], &pastSize[i]);
并将数据用以下将尺寸存入astsize。
s32Ret = GK_COMM_IVE_VbInit(aenSize,astSize,VPSS_CHN_NUM);
<2>GK_ADP_COMM_VPSS_Start
就是创建组后获取,并设置属性,再开启组。
GROUP
VPSS 对用户提供组( GROUP)的概念。最大可用数为 VPSS_MAX_GRP_NUM个,各芯片的最大组数目有所不同,各 GROUP 分时复用 VPSS 硬件。每个 VPSSGROUP 包含多个通道,通道数目视方案实现有所不同,具体描述请参见CHANNEL。
group实际上是对VPSS硬件功能的虚拟化,即若系统里只有一个group,那么这个group实际就是VPSS;若有多个group,那么就是一会给group0用一会给group1用,这就是分时复用。
CHANNEL
VPSS 组的通道。通道分为 2 种:物理通道和扩展通道。 VPSS 硬件提供多个物理通道,每个通道具有缩放、裁剪等功能。扩展通道具备缩放功能,它通过绑定物理通道,将物理通道输出作为自己的输入,把图像缩放成用户设置的目标分辨率输出。
chn是Grp里面的通道,这个通道有物理的有扩展的,物理通道有对应的硬件,扩展通道没有对应的硬件,扩展通道其实是对应了一些功能(缩放等)
<3>GK_ADP_COMM_VI_Bind_VPSS
<4>enable chn
s32Ret = GK_API_VI_GetChnAttr(ViPipe0, ViChn,&stViChnAttr);
s32Ret = GK_API_VI_SetChnAttr(ViPipe0, ViChn,&stViChnAttr);//设置通道属性
总图
HISI_3516_vpss相关推荐
最新文章
- c是编译语言吗,将语言编译为C是一个好主意吗?
- 【CURL】模拟登录网站并获取用户信息
- c# dataGridView 设置
- Android官方开发文档Training系列课程中文版:构建第一款安卓应用之创建用户界面
- ZJU期末考试记录(研究生)——数据挖掘
- IBM研究院计画5年改变人类生活创新预测
- rest-framework之版本控制
- 我们的电梯调度算法的独到之处
- app商城源码_海量的SpringBoot和SSM项目【附带源码+视频教程】快速成为全栈
- Java 字符串使用之性能优化实践
- 安川机器人原点丢失_安川机器人报错代码:原点位置校准和操作方法
- GMS地下水数值模拟
- 计算机地图制图 知识总结
- ccf csp 题目:工资计算
- 有道词典java下载电脑版下载不了_有道词典电脑版
- Pr效果:音频过渡效果
- 小米2s、2sc解激活锁和root
- beyond-长城-国语谐音歌词
- 在电商平台落地大数据应用的6个场景、2类服务、12个框架
- 什么软件测试苹果手机循环电池,如何检查iPhone电池的电池循环次数,看完你就明白了...
热门文章
- 252个前端与移动开发面试题汇总
- unix中的CUT命令全接触
- 在c语言中void是什么,C语言中void是什么意义?_后端开发
- [六点]Pygame零基础入门:极简开发框架
- C#使用ado.net打造多数据库通用操作类
- jquery 触发 dropdownlist SelectedIndexChanged
- 【论文阅读】吴恩达分享的论文阅读方法
- 攻防世界MISC新手区 give_you_flag
- C#与Oracle连接参数问题 OracleParameter中不能用@,用:代替@
- 【bzoj1533】[POI2005]Lot-A Journey to Mars【单调队列】