实现离屏视频帧合成与分解的可移植可扩展解决方案
用于处理离屏页面的视频帧合成与分解模块是视频通信、视频网络、视频安防等多媒体应用中最重要的软件组件之一。离屏页面是指没有在屏幕上显示的那些视频帧。
视频帧合成模块能够接入多个视频输入通道,每个通道可以有各自不同的属性,如像素格式、像素分辨率等。然后将来自这些通道的帧合成到单个或多个视频输出通道(同样可以有不同的属性)的输出帧上。当这种合成帧经编码并从一台设备发送出去时,接收设备中的帧分解模块将会完成相反的功能,即提取输入通道的视频帧中的合成帧。图1和图2显示了这些组件的功能描述。
本文将讨论需要使用这些模块的各种用例,在嵌入式平台上实现帧合成器/分解器的不同方法以及这些方法各自的优缺点,并推荐一种使用OpenGL ES构架和图形处理单元(GPU)的具有高度可移植性和可扩展性的设计解决方案。
2.0 用例
多媒体系统有许多不同的应用场合需要使用帧合成器/分解器功能性组件。下面的解释讨论了其中的一些使用案例。
2.1 视频通信系统
在涉及到双方进行高清视频呼叫的IP视频通信系统中(即在点到点视频呼叫中),要求每台设备与另外一台设备交换从各自摄像机捕获到的视频帧。每台设备上可能会使用不同的视频压缩技术(如MPEG、H.264等)对捕获到的摄像机图像帧进行压缩/编码。压缩后的比特流再使用各种网络协议(如RTP、UDP)在网络上传送。
在接收端,首先要接收来自发送端的编过码的数据流,然后使用MPEG、H.264等视频解压缩算法进行解码/解压缩。最终在接收端显示解码后的帧。这样,呼叫双方都至少需要具有同时解码从网络上收到的帧和编码自己的摄像机捕获到的帧的功能。
在智能手机、平板电脑等典型的嵌入式系统中,实现点到点视频呼叫所需的这些编码/解码算法因所用的处理器架构而成为可能。这些算法要么在多内核CPU或低功耗数字信号处理器(DSP)上实现,要么使用硬件视频加速器实现。
但在视频会议情况下,会有多台设备进行视频呼叫。因此如果一台设备想要参与视频会议呼叫,它需要支持一个以上的解码实例来解码从多方收到的视频,还需要一个编码实例来编码自己摄像机的内容。
由于设备存在最多一路高清帧的编码和解码电路限制,低端平板电脑和智能手机不可能支持涉及多路高清帧解码和单路高清帧编码的会议呼叫。为了让这种系统支持高清视频会议,它们需要采用所有设备能够拨入的高端视频通信桥。图3显示了这种视频桥的功能。
评论