0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用OpenGL ES构架和GPU的离屏帧合成器/分解器功能实现

电子设计 来源:电子技术设计 作者:Sharath Bhat 2021-03-19 09:34 次阅读

1.0 引言

用于处理离屏页面的视频帧合成与分解模块是视频通信、视频网络、视频安防等多媒体应用中最重要的软件组件之一。离屏页面是指没有在屏幕上显示的那些视频帧。

视频帧合成模块能够接入多个视频输入通道,每个通道可以有各自不同的属性,如像素格式、像素分辨率等。然后将来自这些通道的帧合成到单个或多个视频输出通道(同样可以有不同的属性)的输出帧上。当这种合成帧经编码并从一台设备发送出去时,接收设备中的帧分解模块将会完成相反的功能,即提取输入通道的视频帧中的合成帧。图1和图2显示了这些组件的功能描述。

本文将讨论需要使用这些模块的各种用例,在嵌入式平台上实现帧合成器/分解器的不同方法以及这些方法各自的优缺点,并推荐一种使用OpenGL ES构架和图形处理单元(GPU)的具有高度可移植性和可扩展性的设计解决方案。

2.0 用例

多媒体系统有许多不同的应用场合需要使用帧合成器/分解器功能性组件。下面的解释讨论了其中的一些使用案例。

2.1 视频通信系统

在涉及到双方进行高清视频呼叫的IP视频通信系统中(即在点到点视频呼叫中),要求每台设备与另外一台设备交换从各自摄像机捕获到的视频帧。每台设备上可能会使用不同的视频压缩技术(如MPEG、H.264等)对捕获到的摄像机图像帧进行压缩/编码。压缩后的比特流再使用各种网络协议(如RTP、UDP)在网络上传送。

在接收端,首先要接收来自发送端的编过码的数据流,然后使用MPEG、H.264等视频解压缩算法进行解码/解压缩。最终在接收端显示解码后的帧。这样,呼叫双方都至少需要具有同时解码从网络上收到的帧和编码自己的摄像机捕获到的帧的功能。

智能手机、平板电脑等典型的嵌入式系统中,实现点到点视频呼叫所需的这些编码/解码算法因所用的处理器架构而成为可能。这些算法要么在多内核CPU或低功耗数字信号处理器(DSP)上实现,要么使用硬件视频加速器实现。

但在视频会议情况下,会有多台设备进行视频呼叫。因此如果一台设备想要参与视频会议呼叫,它需要支持一个以上的解码实例来解码从多方收到的视频,还需要一个编码实例来编码自己摄像机的内容。

由于设备存在最多一路高清帧的编码和解码电路限制,低端平板电脑和智能手机不可能支持涉及多路高清帧解码和单路高清帧编码的会议呼叫。为了让这种系统支持高清视频会议,它们需要采用所有设备能够拨入的高端视频通信桥。图3显示了这种视频桥的功能。

视频桥接收来自所有设备的多路编码过的输入视频流,然后将它们解码为帧。来自多方的解码帧再合成为单个帧。这种视频桥将为每个连接的用户设备生成合成帧。

视频桥为某个用户设备产生的合成帧包含有除该台设备自己产生的帧以外的所有其它用户设备产生的视频帧。因此为了在所有设备之间建立视频会议,必须至少有一个桥。这种桥可以是一个高端视频卡,也可以是具有更强编码和解码功能的这些设备之一。

正如我们在上述例子中看到的那样,扮演视频桥角色的嵌入式设备需要具有离屏视频帧合成组件。

2.2 外部显示器

对上述视频会议用例中与视频桥连接的每台设备来说,可能要求从输入的单路视频通道中提取/分解合成视频帧,并将它们显示到各台显示设备,或者出于演示等目的在接收终端的屏幕各窗口上显示。下面的图4就展示了这样的一个用例,其中来自用户A、C和D的帧被显示在用户A的LCD屏幕的各个独立窗口上,而来自用户B的帧显示在诸如HDMI电视机等外部显示器上。

2.3 3D视频会议

在如图5所示的3D视频会议应用案例中,要求将来自两个摄像传感器的输入帧合成在一起,经编码后在网络上以数据流的形式传输。接收端则要求提取/分解出来自每个摄像传感器的帧,以便将各个通道的帧渲染到显示器的不同通道上,实现立体观看体验。

3.0 实现

离屏帧合成器/分解器功能可以有多种实现方式:

3.1 使用独立于平台的算法

这种方法采用可以在CPU上运行的通用算法。虽然这种实现具有很好的可移植性,但会导致CPU负担过重。这是因为帧的合成/分解过程通常包含以下一些操作:

●缩放或重新调整视频帧尺寸(放大或缩小)

●输入视频帧在输出帧中的定位

●输入帧的剪切

●输出帧的剪切

●输入通道的Alpha混合

●输入/输出帧的旋转

在帧速率为30fps的视频流情况下,这些操作必须以1/30s即33.33ms的帧周期执行。如果帧的像素分辨率更高,比如720p、1080p,那么处理这些帧将成为CPU很重的负担。CPU负担的加重将导致不良的用户界面,因为I/O互动少了。如果处理器不能在如此短的帧周期内处理完一帧,那么在帧合成过程中有可能发生丢帧现象。

3.2 使用特殊平台缩放器

一些嵌入式处理器提供特殊平台缩放器的硬件实现,它们实际上是用硬件方式实现的多相过滤器,可以针对不同缩放比例提供可编程的过滤系数。

为了在应用程序中发挥这种特殊平台功能,CPU芯片供应商将提供定制的设备驱动程序。我们可以通过缩放器设备驱动程序使用这种缩放器来实现合成功能。应用程序可以利用不同的输入/输出剪切参数一次调整一个输入帧并合成到输出帧中。一旦缩放器调整好了一个输入帧的大小并将它放到输入帧中,它就会向CPU内核发出中断信号

针对将N个输入帧合成到一个输出帧的应用而言,它必须在一个帧周期内完成N次尺寸调整操作。这些缩放器非常高效,可以在可接受的时间限制内完成缩放处理。合成帧的输出帧速率取决于单次缩放操作所占用的时间。

如果是N到1的合成、并且输入/输出帧具有相同的像素分辨率,那么

N代表输入数量

T代表一次缩放操作所花的时间

如果合成中的输入/输出帧具有不同的像素分辨率,那么:

Tn代表将第n个输入通道的帧缩放后放到输出通道所花的时间。其中n:0-》N

上述公式同样可以应用于具有一个输入和N个输出通道的分解器。

虽然使用这种方法可以提供高效的解决方案,但它不具有可移植性。这些硬件功能对嵌入式处理器来说是特定的。要么不同的嵌入式处理器不一定有这些功能,要么是以不同的方式实现,具有不同的功能清单。

控制这些定制硬件的设备驱动程序提供的接口和功能在每种嵌入式处理器上是不同的。而且一般来说,像旋转、Alpha混合等功能无法用这种缩放器硬件来实现。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • gpu
    gpu
    +关注

    关注

    27

    文章

    4413

    浏览量

    126640
  • 分辨率
    +关注

    关注

    2

    文章

    989

    浏览量

    41558
  • 多媒体
    +关注

    关注

    0

    文章

    481

    浏览量

    36676
  • OpenGL
    +关注

    关注

    1

    文章

    84

    浏览量

    29022
  • 安防
    +关注

    关注

    9

    文章

    2223

    浏览量

    61600
收藏 人收藏

    评论

    相关推荐

    求指点  简易波形分解合成器

       简易波形分解合成器输入为2路模拟信号,输出为满足下面要求的模拟信号,输出带200Ω电阻负载。当输入只有1路输入信号时,另一路无信号即为0。1.基本要求(1) 输入1路正弦交流信号:电压峰峰
    发表于 04-25 16:54

    合成器

    1、使用反馈有一种设备与振荡有关,.称为合成器。在一些情况下,从普通振荡出来的正弦波不够完美。射频工程师发现如果振荡与其它电路结合起来,利用反馈,可以使正弦波更完美,这就适
    发表于 12-06 14:06

    详解频率合成器高性能架构的实现

    )可以极大地促进高性能架构的实现。大部分高频系统都使用传统的基于整数分频的设计(图1)或基于分数N分频的设计。不管是使用哪种设计,联合使用单个通用频率合成器IC和一个外部压控振荡
    发表于 07-08 06:10

    基于DDS的频率合成器设计介绍

    合成器有显著的优势。这些优势包括亚赫兹频率控制分辨率,相位失调和输出幅度控制,以及无需基于PLL频率合成器设计所需要的外部元件。另外,作为一个基于数字的波形发生,其频率、相位和幅度的改变可以通过一个简单
    发表于 07-08 07:26

    如何利用FPGA设计PLL频率合成器

    电子技术应用频率合成技术是现代通信的重要组成部分,它是将一个高稳定度和高准确度的基准频率经过四则运算,产生同样稳定度和准确度的任意频率。频率合成器是电子系统的心脏,是影响电子系统性能的关键因素之一
    发表于 07-30 07:55

    什么是频率合成器

    和相位来生成被调制信号,因此对于数字通信系统来说可以产生任意的波形。软件无线电系统中的数字上下变频、本地载波的产生以及压控震荡等重要环节都可以用DDS技术实现。  采用DDS技术的直接数字频率合成器
    发表于 08-19 19:18

    什么是PLL频率合成器?

    问:什么是PLL频率合成器?
    发表于 09-17 19:00

    如何采用DDS实现频率合成器的设计?

    本文将介绍DDS和PLL的工作原理,并结合一电台(工作频率2 MHz~500 MHz)的设计,给出DDS做参考的PLL频率合成器的设计方案。
    发表于 04-20 06:42

    锁相环频率合成器是什么原理?

    频率合成器的主要性能指标锁相环频率合成器原理锁相环频率合成器捕捉过程的分析与仿真
    发表于 04-22 06:27

    怎么设计出吉他合成器

    怎么设计出吉他合成器
    发表于 06-02 06:43

    分享一个不错的使用OpenGL ES实现视频合成分解的可移植可扩展解决方案

    本文将讨论需要使用这些模块的各种用例,在嵌入式平台上实现合成器/分解器的不同方法以及这些方法各自的优缺点,并推荐一种使用OpenGL
    发表于 06-02 07:10

    基于555定时合成器

    描述带有 LFO 的 Atari Punk 控制台这个简单的合成器使用 3 555 个定时,两个作为步进声音驱动,一个作为低频振荡。再加上一些用于控制的定时电容和电位
    发表于 07-20 06:40

    频率合成器,频率合成器原理及作用是什么?

    频率合成器,频率合成器原理及作用是什么? 所谓的频率合成器,就是以一个精确度、稳定度极好的石英晶体振荡器作为基准频率,并利用加、减
    发表于 03-23 11:04 1.5w次阅读

    单环锁相频率合成器,单环锁相频率合成器是什么意思

    单环锁相频率合成器,单环锁相频率合成器是什么意思 频率合成的历史 频率合成器被人们喻为众多电子系统的“心脏”。现代战争是
    发表于 03-23 11:36 907次阅读

    集成锁相环频率合成器,什么是集成锁相环频率合成器

    集成锁相环频率合成器,什么是集成锁相环频率合成器 频率合成的历史 频率合成器被人们喻为众多电子系统
    发表于 03-23 11:45 777次阅读