• 【海思SS528 | VO】MPP媒体处理软件V5.0 | 视频输出模块——学习笔记


    😁博客主页😁:🚀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模式下,所有视频层支持的压缩模式或压缩模式组合如下。
    在这里插入图片描述

    在这里插入图片描述

    🎄四、VO通道

    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 》。

    在这里插入图片描述
    如果文章有帮助的话,点赞👍、收藏⭐,支持一波,谢谢 😁😁😁

  • 相关阅读:
    【SA8295P 源码分析】97 - QNX AIS Camera 框架介绍 及 Camera 工作流程分析
    paddlepaddle 29 搭建基于卷积的自动编码机
    Windows电脑安装Linux(Ubuntu 22.04)系统(图文并茂)
    七夕?程序员不存在的~
    python--requests接口测试
    Python基础入门篇【36】-python初识异常及常见的异常类型
    代码随想录 --- day22 -- 235. 二叉搜索树的最近公共祖先 、701.二叉搜索树中的插入操作、 450.删除二叉搜索树中的节点
    移植Nokia5110屏驱动 | 我是如何将51代码转为STM32驱动代码的
    【毕业设计】基于javaEE+原生Servlet+MySql的物流信息网站设计与实现(毕业论文+程序源码)——物流信息网站
    自动化操作读写Excel —— xlrd 和 xlwt 模块参数说明与代码实战【第95篇—自动化操作读写Excel 】
  • 原文地址:https://blog.csdn.net/wkd_007/article/details/134739714