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从入门到精通(四 视频输出)的更多相关文章

  1. 海思Hi3519A MPP从入门到精通(一 系统概述)

    1. 概述 海思提供的媒体处理软件平台(Media Process Platform,简称 MPP),可支持应用软件快速 开发.该平台对应用软件屏蔽了芯片相关的复杂的底层处理,并对应用软件直接提供 M ...

  2. 海思Hi3519A MPP从入门到精通(二 系统控制)

    系统控制根据 Hi35xx 芯片特性,完成硬件各个部件的复位.基本初始化工作,同时负责完成 MPP(Media Process Platform 媒体处理平台)系统各个业务模块的初始化.去初始化以及管 ...

  3. 3. 海思Hi3519A MPP从入门到精通(三 视频输入)

    视频输入(VI)模块实现的功能:通过 MIPI Rx(含 MIPI 接口.LVDS 接口和 HISPI 接 口),SLVS-EC,BT.1120,BT.656,BT.601,DC 等接口接收视频数据. ...

  4. Python基本语法[二],python入门到精通[四]

    在上一篇博客Python基本语法,python入门到精通[二]已经为大家简单介绍了一下python的基本语法,上一篇博客的基本语法只是一个预览版的,目的是让大家对python的基本语法有个大概的了解. ...

  5. MyBatis从入门到精通(四):MyBatis XML方式的基本用法之增删改

    最近在读刘增辉老师所著的<MyBatis从入门到精通>一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正,如帮助到你,不胜荣幸! 1. insert用法 1.1 简单的 ...

  6. Python基本语法[二],python入门到精通[四] (转)

    写在前面 python你不去认识它,可能没什么,一旦你认识了它,你就会爱上它 回到顶部 v正文开始:Python基本语法 1.定义常量: 之所以上篇博客介绍了定义变量没有一起介绍定义常量,是因为Pyt ...

  7. iOS开发-UI 从入门到精通(四)

    一.UITextField 1.UITextField是什么? (1)UITextField(输入框):是控制文本输入和显示的控件.在App中UITextField出现频率也比较高: (2)iOS系统 ...

  8. Atom编辑器入门到精通(四) Atom使用进阶

    在本节中将介绍Atom提供的更高级的使用技巧,通过这些技巧将会进一步提高你的代码编写效率 代码片段(Snippets) Snippets是一种在代码中快捷插入代码块的方式,下面是维基百科中对Snipp ...

  9. PHP从入门到精通(四)

    PHP数组中的常用函数汇总 为了更直观的讲解各函数的作用和用法,方便大家的理解,首先,我们来定义一个数组.下面各函数的操作将以本数组为例: $arr = array(1,2,3,4,5,6," ...

随机推荐

  1. Object-C里的类目,延展,协议

    1.类目 类目就是为已存在的类添加新的方法.但是不能添加实例变量.比如系统的类,我们看不到他的.m文件,所以没有办法用直接添加方法的方式去实现. @interface NSMutableArray ( ...

  2. PyCharm多行同时输入

    按住ALT,用鼠标在需要的位置点击添加光标,然后输入内容即可

  3. Linux第一章-目录初识

    一.Linux基本介绍: Linux 是一种自由和开放源码的类 UNIX 操作系统,使用 Linux 内核.目前存在着许多不同的 Linux 发行版,可安装在各种各样的电脑硬件设备,从手机.平板电脑. ...

  4. Python爬虫(学习准备)

    编码格式的认识: 字符:各种文字和符号的统称 字符集:多个字符的集合 字符集包括:ASCII字符集,GB2312字符集,GB18030,Unicode字符集等 1个字符ASCII编码占1个字节,用Un ...

  5. python使用beautifulsoup4爬取酷狗音乐

    声明:本文仅为技术交流,请勿用于它处. 小编经常在网上听一些音乐但是有一些网站好多音乐都是付费下载的正好我会点爬虫技术,空闲时间写了一份,截止4月底没有问题的,会下载到当前目录,只要按照bs4库就好, ...

  6. Java哲学家进餐问题|多线程

    Java实验三 多线程 哲学家进餐问题: 5个哲学家共用一张圆桌,分别坐在周围的5张椅子上, 在圆桌上有5个碗和5只筷子(注意是5只筷子,不是5双), 碗和筷子交替排列.他们的生活方式是交替地进行思考 ...

  7. 0day2安全——笔记3

    第二章 函数调用约定 不同的操作系统,语言和编译器调用函数的原理差不多,但是具体的调用约定有差异. C语言VC++编译的函数传参顺序如下图所示(默认使用__stdcall调用约定) 函数调用步骤(__ ...

  8. 4.P1产品经理该如何学习提升

    0经验.想转型 对于想转型或者没有经验的人,这部分同学你肯定对产品本身有一定的了解了,但是在这个时候转型最痛苦的是你要从原来的工作转到一个新的工作中的时候,要回到一个原点.比如你是原来是做开发的,那么 ...

  9. neo4j 初级使用笔记

    linux下载: curl -O https://neo4j.com/artifact.php?name=neo4j-community-3.5.6-unix.tar.gz 配置端口: baidu h ...

  10. Paper | Attention Is All You Need

    目录 1. 动机详述 2. 相关工作 3. 转换器结构 3.1 注意力机制详解 3.1.1 放缩的点积注意力机制 3.1.2 多头注意力机制 3.2 全连接网络 3.3 编码位置信息 [这是一篇400 ...