没有合适的资源?快使用搜索试试~ 我知道了~
海思VENC编码操作流程.docx
需积分: 50 63 下载量 144 浏览量
2019-05-14
19:10:50
上传
评论 8
收藏 24KB DOCX 举报
温馨提示
试读
11页
参照Demo例程对海思MPP框架中的VENC功能进行了汇总,Word文档的格式会比较乱,需要结合代码来看,参考的是sample_venc.c的流程
资源推荐
资源详情
资源评论
一、启动 VENC 编码
step 1: init sys variable
根据《媒体处理软件开发参考》里面说的软件架构来讲,这一步主要是为
了创建视频缓冲池的 配置
配置变量为
结构体定义如下
!
"##$%&''缓冲池最大数量
(
!
"##&)*''每个缓冲池的大小
"##&)''每个缓冲池能分为几块
+,$-*$-.+/0+1(12''未用到
3$--&.+/(2
3
缓冲池最大数量和每个缓冲池能分几块问题不大,$-& 例程给的默认值是 45 和
每个缓冲池的大小需要调用函数 +(16$&&)* 通过返回值获取
函数原型如下
"#+(16$&&)*7
81,1-9''电视广播制式,有 (+ 或者 : 等等
011*9''长宽尺寸,不过这里是用宏定义的,想要自定义尺寸,需要在
011 枚举里面添加自定的宏定义,然后再 +(16;* 函数中返
回具体的长宽
/1(,+:1%-9''像素格式,比如 6"<,6"< 等等
"##+&=> ''系统中使用图像的字节对齐数,在初始化 系统的时候传
入
?
所以第一步就是为了填充定义的 变量
step 2: mpp system init.
这一步主要是做两个工作
4初始化视频缓冲池处理模块()
初始化 系统
调用的接口是 +(16,传入上一步中我们填充的配置 即可
step 3: start vi dev & chn to capture
这一步就是调用函数 +(1$ 来设置 和 并且开始捕获图像
这个函数需要传入一个 +(1;@A= 变量,结构体的原型如下
$-&BA=
!
+(1811''输入的格式,:CDC':44 或者是 8=$&$-$
等等
81,1-''电视广播制式,有 (+ 或者 : 等等
,:+:11,$''旋转角度,
+(11:1 ''通道设置,镜像或者翻转
>8,811>8,''宽动态范围模式
3+(1;
所以这一步就是填充定义的 A= 变量,然后调用 +(1$ 开始
捕获输入
step 4: start vpss and vi bind vpss
根据《媒体处理软件开发参考》里面说的软件架构来讲,数据接收者需要
绑定数据源
绑定后,数据源的数据将直接送给数据接收者,为了编码我们需要将 绑定 ,然后
将 1 绑定
这里的工作就是两个
1.创建一个 VPSS_GROUP(各 Group 分时复用)
2.将 VPSS 绑定到 VI
3.启动 VPSS(上一步我们已经启动了 VI)
<4创建一个 ;,"7各 ; 分时复用?
创建一个 ,需要调用 +(1$; 函数,函数原型如下 #
+(1$;7
;,;9'';, 编号,范围是 E+/;," 之间
;,+::,@;+F'' 属性变量
?
想要创建一个 ,就需要我们构建一个 ;,+::, 属性结构体,这个结构体
的定义如下
;,+::,
!
'@$GG$F@'
"##$%>'@+/H =@'''最大宽度,创建时设定,不可更改
"##$%'@+/ = =@'''最大高度,创建时设定,不可更改
/1(,+:1%-'@%&-$@'''像素格式,比如 6"<,6"< 等
等
(1'@-$= $$&@'''保留,必须设置为 +(1
(81'@8$-$-B$&@'''保留,必须设置为 +(1
(1'@$&@'''去噪
(1'@$&@'''保留,必须设置为 +(1
剩余10页未读,继续阅读
资源评论
mill_li
- 粉丝: 25
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功