4. 海思Hi3519A MPP从入门到精通(四 视频输出)
VO(Video Output,视频输出)模块主动从内存相应位置读取视频和图形数据,并通过相应的显示设备输出视频和图形。
1. 基本概念
3519A芯片支持的显示/回写设备、视频层和图形层见下表。
注:缩写解释
- DHD0:Device HD0,超高清设备 0。
- DHD1:Device HD1,高清设备 1。
- VHD0:Video layer of HD0,超高清视频层 0,隶属于 DHD0。
- VHD1:Video layer of HD1,高清视频层 1,隶属于 DHD1。
- VHD2:Video layer of HD 2,高清视频层 2,Hi3559AV100 上隶属于 DHD0, Hi3519AV100/Hi3556AV100 上可以绑定至 DHD0 或者 DHD1,用作 PIP 层。
- WD:Write Back Channel Device,回写通道设备。
2. 模块划分
视频输出(VO)实现启用视频输出设备或通道、发送视频数据到输出通道等功能。
该功能模块提供以下 API(Application Programming Interface,应用程序编程接口),下面分别从设备、视频层、通道、回写、图形层等方面进行介绍。
3. 模块功能
3.1 视频回写
将回写设备称之为 WD(Write Back Channel Device)。
回写功能:捕获视频层和设备级的视频数据,可用于显示和编码。
回写设备的使用依赖于被回写的设备,既可以回写设备级(视频层与图形层叠加后)的视频数据,也可以回写视频层的数据。
3.2 通道
SDK 将通道归属于视频层管理,一个视频层上可显示多个视频,每一个视频显示区域称为一个通道,视频被限制通道内,通道被限制在视频层内。对于一个视频层,其上面的通道都是独立的。同时,不同的视频层上的通道也是独立的。对于通道的排号上面不存在跨层的连续。
对于系统绑定,应该使用视频层号和通道号来进行绑定配置;另外,对于回写的图像作为输出源时,需要使用回写内容所在的设备号和 0 通道号进行绑定配置。
3.3 缩放和显示
每个 VHD 超高清视频层 (Hi3559AV100ES/Hi3559AV100/Hi3519AV100/Hi3516CV500/Hi3516EV200: VHD0)只有 x 个通道(x 的取值请参见表 4-3),设备视频层内的通道不可重叠。 超高清视频层的通道具有缩放能力。VI 或 VDEC 的源图像经由缩放后,输出到 VO 的某一通道显示。如果输出给 VO 通道的图像超过 VO 的通道区域大小,则 VO 将会对图像进行缩放。
Hi3519AV100 超高清视频 层不支持视频层的缩放。视频层的通道通过 VGS 实现缩放,并叠加为一整幅图像,并将这一整幅图像的数据配给硬件显示。
视频层在显示视频图像上的策略为:对于支持缩放的视频层,则对视频进行缩放显示,对于不支持缩放的视频层,则对于视频进行裁剪显示。
3.4 通道优先级
超高清和高清显示设备软件上支持多个通道同时输出显示,按照优先级顺序对输出图像进行叠加,当各个通道的画面有重叠区域时,优先级高的图像显示在上层,如果各个通道优先级一致,则通道号越大的默认优先级越高。
3.5 分辨率
分辨率主要有以下 3 种概念:
设备分辨率指该设备的输出有效像素点数,由设备时序决定。
显示分辨率指画面在显示设备上的有效显示区域,由视频层属性中的 stDispRect 成员决定。
画布分辨率指 VGS 拼接时使用的一块输出视频数据的内存区域,由视频层属 性中的 stImageSize 决定。直通时无此定义。
图像分辨率指图像本身的有效像素点数,由实际的显示图像分辨率决定。
3.6 图形层绑定
图形层绑定是指芯片支持将特定的某个图形层绑定到某个设备上。
Hi3519AV100 支持 3 个图形层(G0,G1,G3),G0 固定绑定到 DHD0 上, G1 固定绑定到 DHD1 上,即 G0 只能与 VHD0 叠加显示,G1 只能与 VHD1 叠加显示;G3 可动态绑定到 DHD0 或 DHD1,即 G3 或者与 VHD0 叠加显示, 或者与 VHD1 叠加显示,G3 默认绑定在 DHD0 上。
3.7 单画面直通模式
单画面直通模式是指在 SINGLE 模式下,VO 通道中的图像不经过 VGS 模块处理而直接显示出来,节省一次 VGS 搬移过程,并且 VO 无需申请私有内存,但是需要满足以下条件才会选择走直通模式:
- VO 通道使能,且只有一个通道显示;
- VO 没有显示 OSD 和 COVER;
- VO 没有使能边框;
- VO 没有使能抗闪;
- VO 没有电子放大;
- VO 通道图像像素格式和设置的像素格式一致;
- VO 通道图像视频格式为 LINEAR(包括 LINEAR DISCRETE 格式)
- VO 通道图像大小(FrameSize)=通道大小(ChnRect)=画布大小(ImageSize)
- Hi3519AV100 上还需要满足不使能幅形比的条件;Hi3519AV100 的 VHD1 和 VHD2 视频层还需要满足输入图像为非压缩图像的条件。
如果不满足直通模式的条件,由于 VO 默认不分配内存,因此需要在使能视频层之前调用 HI_MPI_VO_SetDisplayBufLen 接口设置缓冲长度来确定分配内存,否则 VO 将不会输出视频显示,
3.8 低功耗策略
VO 模块使用低功耗策略,在模块加载后或者用例退出后 VO 时钟是关闭的,这时候手动读写 VO 模块的寄存器可能会有读写错误或者卡死的现象。
4. API功能
视频输出(VO)实现启用视频输出设备或通道、发送视频数据到输出通道等功能。
API从设备、视频层、通道、回写、图形层等方面进行划分。
4. 海思Hi3519A MPP从入门到精通(四 视频输出)的更多相关文章
- 海思Hi3519A MPP从入门到精通(一 系统概述)
1. 概述 海思提供的媒体处理软件平台(Media Process Platform,简称 MPP),可支持应用软件快速 开发.该平台对应用软件屏蔽了芯片相关的复杂的底层处理,并对应用软件直接提供 M ...
- 海思Hi3519A MPP从入门到精通(二 系统控制)
系统控制根据 Hi35xx 芯片特性,完成硬件各个部件的复位.基本初始化工作,同时负责完成 MPP(Media Process Platform 媒体处理平台)系统各个业务模块的初始化.去初始化以及管 ...
- 3. 海思Hi3519A MPP从入门到精通(三 视频输入)
视频输入(VI)模块实现的功能:通过 MIPI Rx(含 MIPI 接口.LVDS 接口和 HISPI 接 口),SLVS-EC,BT.1120,BT.656,BT.601,DC 等接口接收视频数据. ...
- Python基本语法[二],python入门到精通[四]
在上一篇博客Python基本语法,python入门到精通[二]已经为大家简单介绍了一下python的基本语法,上一篇博客的基本语法只是一个预览版的,目的是让大家对python的基本语法有个大概的了解. ...
- MyBatis从入门到精通(四):MyBatis XML方式的基本用法之增删改
最近在读刘增辉老师所著的<MyBatis从入门到精通>一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正,如帮助到你,不胜荣幸! 1. insert用法 1.1 简单的 ...
- Python基本语法[二],python入门到精通[四] (转)
写在前面 python你不去认识它,可能没什么,一旦你认识了它,你就会爱上它 回到顶部 v正文开始:Python基本语法 1.定义常量: 之所以上篇博客介绍了定义变量没有一起介绍定义常量,是因为Pyt ...
- iOS开发-UI 从入门到精通(四)
一.UITextField 1.UITextField是什么? (1)UITextField(输入框):是控制文本输入和显示的控件.在App中UITextField出现频率也比较高: (2)iOS系统 ...
- Atom编辑器入门到精通(四) Atom使用进阶
在本节中将介绍Atom提供的更高级的使用技巧,通过这些技巧将会进一步提高你的代码编写效率 代码片段(Snippets) Snippets是一种在代码中快捷插入代码块的方式,下面是维基百科中对Snipp ...
- PHP从入门到精通(四)
PHP数组中的常用函数汇总 为了更直观的讲解各函数的作用和用法,方便大家的理解,首先,我们来定义一个数组.下面各函数的操作将以本数组为例: $arr = array(1,2,3,4,5,6," ...
随机推荐
- html 初识 文档结构 常用标签
HTML初识 △HTML: 超文本标记语言,是一种用于创建网页的标记语言,不是编程语言,没有逻辑 本质上是浏览器可识别的规则 我们按照规则写网页,浏览器根据规则渲染我们的网页.对于不同的浏览器,对同一 ...
- 好用的性能检测工具-性能监控工具- Glances
平常我经常使用 htop 工具来进行对主机进行性能检测.但是它只能对 进行进行管理.并简要显示 进程和cpu和内存使用信息:性能监控工具: glances 是比较好的性能检测工具.相比较htop还能显 ...
- 初级模拟电路:3-8 BJT数据规格书(直流部分)
回到目录 本小节我们以2N4123通用型BJT硅基晶体管为例,来介绍如何阅读BJT的数据规格书,点此链接可以阅读和下载2N4123的数据规格书. 1. 总体性能 打开datasheet后,首先看标题: ...
- Windows 10 任务栏添加网易云音乐控制按钮
软件背景: 算是老帖新发,之前有朋友分享过一个很好用的工具,但可能是因为网易云软件更新后,导致控件失灵了,只剩下歌词控件有用了,所以今天用python重新写了一个小工具,发出来分享给大家,附上之前 ...
- [数组] Leetcode 189.旋转数组
- 在 VS 中查看所有线程
查看当前所有线程 在程序中打断点,然后启动调试(注意:线程窗口需要启动调试才可以看得到)点击 Debug > Windows > Threads 线程窗口如下:
- Log4j2之ThreadContext
简介 系统中使用log4j2作为日志系统,然而在高并发的情况下,多次请求的日志参杂在一起,要跟踪某个用户一次的请求操作所有日志是很麻烦的.幸运的是log4j中有相应的解决方案. NDC和MDC NDC ...
- 加速自己的hexo,使用GitHub+Coding实现国内外网站加速
在配置好hexo之后,我们发现访问网站很慢,但又不是我们使用的主题的问题,那么就是网络环境的影响,即使我们使用了CDN加速,但还是没有我们国内的网站访问起来快速,(听说去美国的服务器要经过太平洋下面的 ...
- php逻辑运算符 异或
- Centos7 下cobbler安装及配置
1.背景介绍 作为运维,在公司经常遇到一些机械性重复工作要做,例如:为新机器装系统,一台两台机器装系统,可以用光盘.U盘等介质安装,1小时也完成了,但是如果有成百台的服务器还要用光盘.U盘去安装,就显 ...