- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Hi3516开发学习心得
开发环境
1.1概述
嵌入式系统通常是一个资源受限的系统,因此直接在嵌入式系统的硬件平台上编写软件比较困难,有时候甚至是不可能的。
目前的解决方法是采用宿主机、目标机的开发模式。在宿主机上编写程序,通过交叉编译器生成目标板上可以执行的二进制代码。然后通过文件系统,将二进制代码放在特定目录下,在目标板上运行。
宿主机:VMWARE \ ubuntu(服务器:192.168.1.101)
环境:交叉开发工具包,nfs
目标机:linux hi3516
1.2安装过程
参见卖方附赠视频教程“SDK安装及编译视频.avi”。
nfs文件系统挂载:
挂载点改变修改/etc/exports文件,具体方法自行谷歌。
开发流程
首先要有这样一个意识,即对开发板进行的配置,是以我们的需求为基础的。我们所做的工作在系统层次图的 应用层 部分:
所需的函数统一由MPP(媒体处理平台)提供接口。MPP封装实现了基本功能函数,屏蔽掉了对底层的操作。
sample_venc.c为完成视频采集编码一系列操作的代码。观察其代码风格如下:
1.函数返回值作为状态码,用以判断函数是否执行成功。
2.函数需要传出的值通过全局变量或地址传出。
现在以函数先后顺序(也即视频采集编码处理流程)对各步骤做以说明。
2.1配置视频缓存池:
视频缓存池作用:视频缓存池主要向媒体业务提供大块物理内存管理功能,负责内存的分配和回收,充分发挥内存缓存池的作用,让物理内存资源在各个媒体处理模块中合理使用。
由于视频输入通道不提供创建和销毁公共视频缓存池功能,因此,在系统初始化之前,必须为视频输入通道配置公共视频缓存池。根据业务的不同,公共缓存池的数量、缓存块的大小和数量会有所不同。
enPayLoad---------------决定编码格式。
enSize--------------------决定图像分辨率。(利用不同的编码通道,可以对同一rowdata编码出不同的分辨率。)
缓存块的大小根据 图像制式(PAL/NTSC)、图像分辨率、像素格式、图像跨距(字节对齐)共同决定。函数SAMPLE_COMM_SYS_CalcPicVbBlkSize计算缓存块大小。
2.2初始化MPP系统
由于 MPP系统的正常运行依赖于缓存池,因此必须先调用 HI_MPI_VB_Init 初始
化缓存池,再初始化 MPP系统。
如果多次初始化,仍会返回成功,但实际上系统不会对 MPP的运行状态有任何影
响。函数SAMPLE_COMM_SYS_Init完成MPP系统初始化。
2.3启动VI设备
分为4步:
Tips: isp run must at this step -- after vi dev enable, before vi chn enable
2.3.1 sensor初始化
2.3.2 启动VI设备
2.3.3 启动ISP
2.3.4 使能VI通道
(函数皆由MPP提供接口)
2.4启动视频处理模块
根据 制式和分辨率 获得图像宽和高的具体数据。再由此确定通道属性,进行配置。
每一个通道 对应一系列的 硬件和软件功能模块 ,通道可以进行“串联”,以完成一系列处理。通道的“串联”在开发文档中成为 通道绑定。在整个处理流程中,要先后经过如下的通道绑定:
VI----VPSS VPSS----VENC(后者绑定前者)
启动VPSS
主要根据制式和分辨率 获得图像宽和高的具体数据。再由此确定通道属性,进行配置。然后使能VPSS通道。
VPSS绑定VI
函数由MPP提供,直接调用。
启动视频流编码
首先创建编码组,再创建编码通道。(编码通道组是指芯片启动一次,能够同时处理的编码通道的集合。通道组模块接收外部原始图像数据,而不关心图像数据是来自哪个
外部模块。我的理解是主通道为物理通道,所有绑定与同一物理通道的扩展通道,其数据源是一样的。关于他们的具体关系,参见开发参考文档的“6 视频编码模块------ 6.2.2 编码通道与通道组”。)然后将编码通道注册到通道组。接着开启编码通道接收输入图像。
获取编码码流
在这里新开了一个线程专门用于接收码流。
具体思路为:
把编码通道映射为一个文件句柄(函数HI_MPI_VENC_GetFd完成此操作)。接着的所有操作都是对文件句柄进行的。这完全类似于端口通信中将端口打开视作文件句柄,然后进行读写操作。
流程图如下:
1. 获取通道的文件句柄。
2. 从各通道获取码流。(这里一共有30\1\2个通道,分别产生分辨率为1080p,VGA,QVGA的h264编码码流。--------------我们的工程中只需要编码通道0的1080p码流)
2.1 查询编码码流的一帧中有多少的包。
2.2 根据包的数目分配内存。
您可能关注的文档
- 上海徐家汇公园.doc
- GRE2012_3月份机经.pdf
- Group310初始化指引.doc
- GST-XQ6305密码键盘安装使用说明书.pdf
- GWAS细节文章.pdf
- GY260T金属表面涂镀层测厚仪【说明书】.pdf
- G蛋白偶联的受体介导的信号的特点.doc
- Hammer软件在输水管道水锤分析中的应用.pdf
- have got 句型练习.doc
- HEIDENHAIN直线光栅尺.pdf
- 新的一年工作展望.docx
- 医生年终个人工作的述职报告(3篇).docx
- 2023年消防设施操作员之消防设备中级技能考前冲刺练习题附答案详解.docx
- 2022-2023年环境影响评价工程师之环评技术导则与标准通关练习题包括详细解答.docx
- 2023年中级注册安全工程师之安全生产管理考前冲刺检测卷和答案.docx
- 2023年中级银行从业资格之中级银行管理考前冲刺测试卷提供答案解析.docx
- 2023年公共营养师之二级营养师通关模拟考试试卷附带答案.docx
- 证券分析师之发布证券研究报告业务考前冲刺模拟题库.docx
- 2022-2023年二级建造师之二建建设工程法规及相关知识综合提升测试卷附答案.docx
- 2023年二级建造师之二建机电工程实务通关模拟考试试卷提供答案解析.docx
文档评论(0)