最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

Hi3516开发学习心得

来源:动视网 责编:小OO 时间:2025-10-02 07:33:10
文档

Hi3516开发学习心得

Hi3516开发学习心得1.开发环境1.1>概述嵌入式系统通常是一个资源受限的系统,因此直接在嵌入式系统的硬件平台上编写软件比较困难,有时候甚至是不可能的。目前的解决方法是采用宿主机、目标机的开发模式。在宿主机上编写程序,通过交叉编译器生成目标板上可以执行的二进制代码。然后通过文件系统,将二进制代码放在特定目录下,在目标板上运行。宿主机:VMWARE\\ubuntu(服务器:192.168.1.101)环境:交叉开发工具包,nfs目标机:linuxhi35161.2>安装过程参见卖方附赠视频教
推荐度:
导读Hi3516开发学习心得1.开发环境1.1>概述嵌入式系统通常是一个资源受限的系统,因此直接在嵌入式系统的硬件平台上编写软件比较困难,有时候甚至是不可能的。目前的解决方法是采用宿主机、目标机的开发模式。在宿主机上编写程序,通过交叉编译器生成目标板上可以执行的二进制代码。然后通过文件系统,将二进制代码放在特定目录下,在目标板上运行。宿主机:VMWARE\\ubuntu(服务器:192.168.1.101)环境:交叉开发工具包,nfs目标机:linuxhi35161.2>安装过程参见卖方附赠视频教
                            Hi3516开发学习心得

1.开发环境

1.1>概述

嵌入式系统通常是一个资源受限的系统,因此直接在嵌入式系统的硬件平台上编写软件比较困难,有时候甚至是不可能的。

目前的解决方法是采用宿主机、目标机的开发模式。在宿主机上编写程序,通过交叉编译器生成目标板上可以执行的二进制代码。然后通过文件系统,将二进制代码放在特定目录下,在目标板上运行。

宿主机:VMWARE \\ ubuntu(服务器:192.168.1.101)

环境:交叉开发工具包,nfs

目标机:linux hi3516

1.2>安装过程

参见卖方附赠视频教程“SDK安装及编译视频.avi”。

nfs文件系统挂载:

挂载点改变修改/etc/exports文件,具体方法自行谷歌。

2.开发流程

首先要有这样一个意识,即对开发板进行的配置,是以我们的需求为基础的。我们所做的工作在系统层次图的应用层部分:

所需的函数统一由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(后者绑定前者)

2.4.1启动VPSS

主要根据制式和分辨率获得图像宽和高的具体数据。再由此确定通道属性,进行配置。然后使能VPSS通道。

2.4.2VPSS绑定VI

函数由MPP提供,直接调用。

2.5启动视频流编码

首先创建编码组,再创建编码通道。(编码通道组是指芯片启动一次,能够同时处理的编码通道的集合。通道组模块接收外部原始图像数据,而不关心图像数据是来自哪个

外部模块。我的理解是主通道为物理通道,所有绑定与同一物理通道的扩展通道,其数据源是一样的。关于他们的具体关系,参见开发参考文档的“6 视频编码模块------ 6.2.2 编码通道与通道组”。)然后将编码通道注册到通道组。接着开启编码通道接收输入图像。

2.6获取编码码流

在这里新开了一个线程专门用于接收码流。

具体思路为:

把编码通道映射为一个文件句柄(函数HI_MPI_VENC_GetFd完成此操作)。接着的所有操作都是对文件句柄进行的。这完全类似于端口通信中将端口打开视作文件句柄,然后进行读写操作。

流程图如下:

>1.获取通道的文件句柄。

>2. 从各通道获取码流。(这里一共有3<0\\1\\2>个通道,分别产生分辨率为1080p,VGA,QVGA的h2编码码流。--------------我们的工程中只需要编码通道0的1080p码流)

>2.1 查询编码码流的一帧中有多少的包。

>2.2 根据包的数目分配内存。

>2.3获取一帧数据。

>2.4 根据编码类型存数据。

>2.5 释放流。(不及时释放,当视频缓冲池满时即停止编码)

>2.6 释放分配的内存。

>2.7 关闭文件句柄。

>2.8 循环执行以上7步。

3.附录

3.1 名词解释

视频输入(VI)、

视频处理(VPSS)、

视频编码(VENC)、

视频解码(VDEC)、

视频输出(VO)、

视频侦测分析(VDA)、

音频输入(AI)、

音频输出(AO)、

音频编码(AENC)、

音频解码(ADEC)、

编码通道组子模块(GROUP)

区域管理(REGION)

视频编码层(VCL, VideoCoding Layer)

网络提取层(NAL, NetworkAbstraction Layer)

SDK           Software Developer’s Kit        软件开发工具包

MPP          Media Processing Platform        媒体处理平台

AI          Auto Iris Control       自动光圈控制

VEDU        Video Encode Unit        视频编码单元

IVE           Intelligent Video Engineering      智能加速引擎

PTS           Presentation Time Stamp       时间戳

DDRC        Double-Data Rate Controller       DDR 控制器

MMZ         Media Memory Zone        媒体内存区域

ROI           Region Of Interest       感兴趣区域

3.2 其他要点

1.当输入图像大小与编码通道宽高完全匹配时,才能启动编码通道进行编码。

2. 未尽事宜,参阅开发完档。

文档

Hi3516开发学习心得

Hi3516开发学习心得1.开发环境1.1>概述嵌入式系统通常是一个资源受限的系统,因此直接在嵌入式系统的硬件平台上编写软件比较困难,有时候甚至是不可能的。目前的解决方法是采用宿主机、目标机的开发模式。在宿主机上编写程序,通过交叉编译器生成目标板上可以执行的二进制代码。然后通过文件系统,将二进制代码放在特定目录下,在目标板上运行。宿主机:VMWARE\\ubuntu(服务器:192.168.1.101)环境:交叉开发工具包,nfs目标机:linuxhi35161.2>安装过程参见卖方附赠视频教
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top