博客主页:https://blog.csdn.net/wkd_007
博客内容:嵌入式开发、Linux、C语言、C++、数据结构、音视频
本文内容:介绍
金句分享:你不能选择最好的,但最好的会来选择你——泰戈尔
本文未经允许,不得转发!!!
海思SS528的 VO( Video Output,视频输出)模块主动从内存相应位置读取视频和图形数据,并通过相应的显示设备输出视频和图形。
说明:本文介绍了主要的海思SS528平台的,如无特别说明,都是SS528平台的相关内容。
海思SS528的VO模块包含了三路显示设备:
- 超高清显示设备DHD0(Device HD0,高清设备0)
- 视频层VHD0(Video layer of DHD0)
- 视频层VHD2(Video PIP layer)
- 图形层G0(Graphic layer 0)
- 图形层G2(Graphic layer 2)
- 图形层G3(Graphic layer 3)
- 高清显示设备DHD1(Device HD1,高清设备1)
- 视频层VHD1(Video layer of DHD1)
- 视频层VHD2(Video PIP layer)
- 图形层G1(Graphic layer 1)
- 图形层G2(Graphic layer 2)
- 图形层G3(Graphic layer 3)
- 标清显示设备DSD0(Device SD0,标清设备0)
- 视频层VSD0(Video layer of DSD0)
- 图形层G2(Graphic layer 2)
- 图形层G3(Graphic layer 3)
分辨率主要有以下几种概念:
- 设备分辨率指该设备的输出有效像素点数,由设备时序决定。
- 显示分辨率指画面在显示设备上的有效显示区域,由视频层属性中的display_rect成员决定。
- 画布分辨率指VGS拼接时使用的一块输出视频数据的内存区域,由视频层属性中的img_size决定。直通时无此定义。
- 图像分辨率指图像本身的有效像素点数,由实际的显示图像分辨率决定。
SDK将高清和标清显示设备分别标示为 DHDx
( Device High Definition x)和 DSDx
( Device Standard Definition x),其中, x为索引号,从0开始取值,表示第几路高清/标清显示设备。例如第0路高清设备标示为DHD0
,第0路标清显示设备标示为DSD0
。所有高清和标清显示设备又可分别简称为HD和SD设备。由于DHD0能够支持到4K(3840x2160)的时序,因此DHD0也可以称之为超高清显示设备。
SS528V100各个显示设备支持的输出接口和最大输出时序如下图:
视频层就是用来显示视频的,当我们将视频解码、处理后,最后可以将视频数据显示在视频层的某个通道上。
对于固定在每个显示设备上面对应的视频层, SDK也对应采取 VHDx
( Video layer of HD x)和 VSDx
( Video layer of SD x)来标示。
SS528V100平台有4个视频层,VHD0、VHD1、VSD0分别固定绑定在DHD0、DHD1、DSD0上面。而VHD2,也就是PIP层,支持动态绑定在DHD0或DHD1上。
SINGLE模式和MULTI模式
SINGLE模式和MULTI模式是对支持多区域的视频层而言的,即硬件支持多区域,为区别于软件上的通道概念,此处称为多区域。
SINGLE模式表示在硬件上配置一个显示区域, MULTI模式是在硬件上配置多个显示区域(大于等于1个区域)。
注意将多区域与通道区别开来,SINGLE模式和MULTI模式下都可以实现多通道显示,前者其所有通道被组织成一幅图像显示在一个区域内,后者其每个通道独立并独占一个显示区域。
另外,一个视频层只能工作在其中一种模式下。
视频层放大
SS528的视频层VHD0是在SINGLE模式下是支持放大的,在MUTIL模式,所有视频层不支持放大。
视频层支持放大情况下:当视频层的
img_size
时, img_size放大(最大放大15倍)到display_rect显示; img_size>display_rect
时,显示为 img_size 与 display_rect 的交集。
视频层不支持放大情况下:显示为 img_size 与 display_rect 的交集。
解压和压缩
解压功能是视频层的功能,支持输入源图像是压缩数据(格式为行压缩), VO会进行解压显示。
SINGLE模式下,若VO支持解压缩能力,则由VO进行解压缩,否则将调用VGS进行解压缩;
在MULTI模式下,所有视频层支持的压缩模式或压缩模式组合如下。
SDK将通道归属于视频层管理,一个视频层上可显示多个视频,每一个视频显示区域称为一个通道,视频被限制通道内,通道被限制在视频层内。对于一个视频层,其上面的通道都是独立的。同时,不同的视频层上的通道也是独立的。对于通道的排号上面不存在跨层的连续。
对于系统绑定,应该使用视频层号和通道号来进行绑定配置;
SINGLE模式下:源图像缩放到通道区域大小。
MULTI模式下:显示为源图像与通道显示区域交集。
SS528各个视频层通道数:
- VHD0:支持64通道(SINGLE模式)、支持64通道(MULTI模式)
- VHD1:支持64通道(SINGLE模式)、支持64通道(MULTI模式)
- VHD2(PIP):支持64通道(SINGLE模式)、不支持通道(MULTI模式)
- VSD0:支持64通道(SINGLE模式)、不支持通道(MULTI模式)
通道优先级
VO软件上支持多个通道同时输出显示,按照优先级顺序对输出图像进行叠加,当各个通道的画面有重叠区域时,优先级高的图像显示在上层,如果各个通道优先级一致,则通道号越大的默认优先级越高。
本文记录了一些VO模块相关的知识点,供日后学习、复习。
学习VO模块,我主要记录了设备、视频层、VO通道的一些知识点,除此之外,还有视频回写
相关知识、通道图像局部放大
、视频层与图形层绑定
、单画面直通模式
、低功耗策略
、旋转
、输入和输出数据格式
、像素格式转换
、虚拟设备
、负载检测
、数据透传
、低延时
、角框功能
等知识概念。这些可以参考《MPP媒体处理软件V5.0 》。
如果文章有帮助的话,点赞、收藏⭐,支持一波,谢谢