0. MPP平台处理架构介绍

参考网址:https://blog.csdn.net/qq_17308321/article/details/79741432
参考网址:https://blog.csdn.net/u011011827/article/details/54232434

1. Hi35xx视频解码缓存池分配问题

例如hi3536开发板的sample_vdec.c中

  • HI_MPI_VB_SetConf:设置MPP视频缓存池属性。
     这个函数是设公共的VB, 最常用到的模块是VI和VPSS, 对于NVR来说基本没有用,没有特殊情况可以不用开,函数还是要调用

  • HI_MPI_VB_SetModPoolConf:设置模块公共视频缓冲池属性。
      这个函数是设某个模块专用的VB, 最常用到的模块是VDEC,主要是moduleVB模式下用到
    参考网址:http://bbs.ebaina.com/thread-15181-1-1.html
    参考网址:http://bbs.ebaina.com/thread-38693-1-1.html

2. MPP内存优化介绍

参考网址:https://blog.csdn.net/superHubin/article/details/80751140

3. 视频处理单元各通道间的关系

  HI3518C的视频子系统包括:视频系统初始化模块(MPP_SYS_CONF_S)、视频输入模块(VI)、视频前处理模块(VPSS)、视频编码模块(VENC)和视频输出模块(VO)组成。
  HI3518C的VPSS是视频数据编码前的预处理单元,主要完成对一幅输入图像的统一预处理,如去噪、去隔行等,然后再对各通道分别进行缩放、锐化等处理(如:PreScale、De-ring/De-block、NR、IE、DIE、Sharpen 等,具体可参见VPSS_GRP_ATTR_S结构体),最后输出多种不同分辨率的图像。
  其中,HI3518C对用提供GROUP的概念来管理VPSS,最多支持128个GROUP(我目前只使用了一个组:GROUP0)。VPSS的GROUP又包含多个通道(CHANNEL),对于不同规格的芯片,每个组包含的通道数也不相同,规格文档上都有详细说明。
  HI3518C的各个GROUP包含8个CHANNEL,其中2个物理通道(PHY CHN)、一个直通通道(Bypass)和5个扩展通道(EXT CHN)。
  物理通道是由硬件提供的,各物理通道的功能和限制各不相同;直通通道具备CROP功能,可以把不需要作预处理的一幅幅图像直接透传给接收者;扩展通道具备缩放功能,当它绑定到物理通道后,可以把从物理通道获取到的图像缩小或放大成用户所需要的不同分辨率的图像。Hi3518C 提供 5 路扩展通道以提供更好的灵活性,扩展通道具备缩放和帧率控制功能,不经过其他硬件算法单元处理。
  用户在使用的时候,需要首先创建VPSS GROUP,然后设置好GROUP属性并启用VPSS GROUP之后,再把VI作为源通道,把VPSS作为目标通道,通过调用 HI_MPI_SYS_Bind 绑定VI到VPSS,就可以建立视频输入到视频预处理间的通路,使得前端采集到的视频数据经由此通路到达VPSS单元。注意,每个 GROUP 仅可与一个输入源绑定。
  然后,就是根据实际需要来创建多个VPSS CHANNEL,从CHANNEL中获得所需要的目标分辨率的图像输出了。
  HI3518C的物理通道0无缩放能力,支持锐化,不支持抽场,一般用于大码流编码和JPEG抓拍。
  HI3518C的物理通道1,水平、垂直均最大支持 8 倍缩小,水平、垂直均最大支持 8 倍放大,支持锐化, 不支持抽场,一般用于小码流编码和CVBS(复合视频广播信号)预览。
  因此,用户可以通过CHANNEL(0)来获取到前端图像采集模块所支持的最大像素分辨率的图像,也就是说,如果前端sensor支持的最大图像分辨率为19201080像素,那么经CHANNEL0所得到的图像就是19201080像素格式,并且不可以把该通道的数据再作为其它扩展通道的源来进行图像的放大或缩小处理。
  用户可以通过CHANNEL(1)来获取到的图像为用户任意指定的合法的像素大小,通过指定像素格式及宽高大小,进行预处理后可以作为视频编码模块(VENC)的输入。同时,用户可以把该通道作为后面所要建立的扩展通道的源,通过设置所要建立的扩展通道的属性(主要指:绑定的源通道号、图像帧率、图像宽高等,见VPSS_EXT_CHN_ATTR_S结构体),再经由各扩展通道来获取到的所需的目标分辨率。
  用户还可通过扩展通道CHANNEL(3、4、5、6、7)来获取除VI所支持的最大分辨率以外的各种符合标准的不同分辨率图像,比如前端sensor支持最大分辨率为19201080,那么结合扩展通道的使用,用户就可以获取到HD720(1280720)、VGA(640480)、QVGA(320240)、CIF(352288)、QCIF(176144)等分辨率的图像了。
  注意,当把通道 1 作为输入源的时候,要设置通道 1 为USER模式。因为HI3518C只有两个物理通道,通道0不具备缩放功能,所以只有通道1可以作为扩展通道的源,对图像进行缩放处理。
  其中,VPSS GROUP有两种工作模式:AUTO 和 USER,两种模式间可动态切换。默认的工作模式为 AUTO,此模式下各通道仅可与一个接收者绑定。若想使用 USER 模式,则需调用 MPI 接口进行设置,同时指定所需图像的大小和格式,此模式下各通道可与多个接收者绑定。需要特别注意的是,USER 模式主要用于对同一通道图像进行多路编码的场景,此模式下播放控制不生效,因此预览和回放场景下不建议使用。Bypass 通道只能工作在 AUTO 模式,可与多个接收者绑定。

摘抄网址:https://blog.csdn.net/zqj6893/article/details/25556827

【Hisi系列】之软件平台开发(MPP相关)相关推荐

  1. 【HISI系列】之开发板调试基本知识

    1. HISI 根文件系统简介  Linux 的目录结构的最顶层是一个被称为" / "的根目录.系统加载 Linux 内核之后,就会挂载一个设备到根目录上.存在于这个设备中的文件系 ...

  2. IOS开发系列--IOS程序开发概览

    IOS开发系列--IOS程序开发概览 2014-08-04 19:42 by KenshinCui, 9983 阅读, 51 评论, 收藏, 编辑 概览 终于到了真正接触IOS应用程序的时刻了,之前我 ...

  3. 游族网络:已获得《三体》系列小说游戏开发、改编等权利

    7月29日,游族网络在互动平台回答投资者提问时表示,公司已获得<三体>系列小说游戏开发.发行.改编以及衍生产品等权利,现相关项目处于立项前期. 6月17日,游族网络发布公告称,与三体宇宙( ...

  4. 【genius_platform软件平台开发】第七十九讲:Linux系统中可执行程序后台运行的几种方式

    [genius_platform软件平台开发]第七十九讲:Linux系统中可执行程序后台运行的几种方式 1. 问题描述 2. & 符号 3. nohup指令 4. ctrl + z.jobs. ...

  5. openGauss数据库源码解析系列文章——openGauss开发快速入门(二)

    在上一篇openGauss数据库源码解析系列文章--openGauss开发快速入门(上)中,我们介绍了openGauss的安装部署方法,本篇将具体介绍openGauss基本使用. 二. openGau ...

  6. Zynq-7000系列之linux开发学习笔记:编译Linux内核和制作设备树(六)

    开发板:Zynq7030数据采集板 PC平台:Ubuntu-18.04 + MobaXterm 开发环境:Xilinx Vivado + SDK -18.3 交叉编译工具:arm-linux-gnue ...

  7. DevOps系列之 —— 持续开发与集成(六)静态代码检查

    DevOps系列之 -- DevOps概览(一)软件产业和交付模式发展趋势 DevOps系列之 -- DevOps概览(二)新型软件技术及交付模式 DevOps系列之 -- DevOps概览(三)De ...

  8. iOS开发系列--IOS程序开发概览ios基础

    iOS开发系列--IOS程序开发概览 概览 终于到了真正接触IOS应用程序的时刻了,之前我们花了很多时间去讨论C语言.ObjC等知识,对于很多朋友而言开发IOS第一天就想直接看到成果,看到可以运行的I ...

  9. FPGA经验谈系列文章——FPGA开发方向以及算法开发模型

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 FPGA经验谈系列文章--FPGA开发方向以及算法开发模型 前言 接口方向 算法方向 总结 前言 FPGA开发笼统的说可以分为两个方向 ...

最新文章

  1. mysql 一周一月_mysql查询当天、本周,本月,上一个月的数据
  2. MaxCompute跨Region数据迁移指导手册
  3. PAT甲级1050 String Subtraction:[C++题解]字符串作差
  4. c++/cli中调用C#类库中的out参数
  5. 64.多态性实现机制—静态分派与动态分派(方法解析、静态分派、动态分派、单分派和多分派)
  6. android转web,Android 转 web app 笔记一:Touch事件
  7. 目标检测算法之Fast R-CNN算法详解
  8. 如何杀死一个已经detached的screen会话?
  9. JavaScript 简介第一课
  10. R与Python手牵手:数据科学导论系列(包的载入)
  11. telegtram的通信协议MTproto2.0学习3 之 (telethon代码分析与TL的实现1)
  12. 解决Win10磁盘占用100%
  13. linux安装/卸载microsoft edge
  14. 一文速学-最小二乘法曲线拟合算法详解+项目代码
  15. TI C64X+通用库函数使用手册
  16. 微信登录显示连接失败,请检查网络
  17. AI 边缘计算平台 - BeagleBone AI 64 简介
  18. 计算机的数学知识的手抄报图片大全,数学手抄报图片大全获奖作品
  19. [附源码]JAVA+ssm计算机毕业设计房屋租赁管理系统设计(程序+Lw)
  20. dnf服务器未响应怎么解决方法,win7系统dnf经常未响应的解决方法

热门文章

  1. 名片夹android布局代码,Android自定义布局实现仿qq侧滑部分代码
  2. 在java中创建线程有几种办法_Java中创建线程的几种主流方式
  3. Naive Operations
  4. poj(2406) kmp
  5. Python中使用xpath结合contains
  6. Linux中Redis的安装
  7. mysql ---- 约束
  8. 计算机原理 ---- 程序之下
  9. 计算机不能直接执行c语言编写的源程序,计算机不能直接执行用C语言编写的源程序。...
  10. h5select动态加载数据_HTML5+中动态构建列表并填充数据