1.基于帧图像合成的实时视频混屏的关键技术
1.1 并发解码
实时视频流混屏处理多路实时视频流输入,并输出实时视频流。解码处理的数据量大,实时性要求高,对服务器的解码能力提出很高要求。高度并发解码,充分利用多核CPU计算能力是实现实时视频流混屏的关键。为提高并发度,并发解码至少包括两级并发,一级是多个实时流解码器的并发解码,二级是解码器Frame级别的并发解码。
多个解码器分别对不同的视频源进行处理,并将分别独立输出数据帧,以队列的方式保存,供后续模块调用。解码器之间相互独立,不存在制约关系,可并发处理,提高CPU利用率。
解码器Frame级别的并发,解码器采用线程池方式进行解码。在解码器初始化时,根据服务器CPU核数,初始化相应数目的解码线程。解码线程接收输入数据,并对数据进行解码。外部程序通过解码器提供的调用入口decode(),进入解码器的主线程。解码器结构及主线程和解码线程的同步关系如图1所示。
1.2 图像合成
将多个视频混屏,可通过图像合成的方式,将多个实时流的数据帧图像合成新图像,将合成后的视频帧作为输入进行编码得到实时视频流输出。多个数据帧的图像合成必须采用统一的图像格式。
图像数据在存储中的存储格式主要包括RGB和YUV。YUV格式所需存储空间比RGB格式存储空间小,因此YUV格式主要用于多媒体数据传输。高清实时视频流多采用H.264编码方式,其采用的色彩空间是YUV。在合成过程中,如发现视频源的图像采用RGB方式,则需要将其转换成YUV才可合成。
RGB图像和YUV图像可相互转换,从RGB到YUV的转换公式见公式(1)。
Y=0.30R+0.59G+0.11
BU=0.493(B-Y)
V=0.877(R-Y) (1)
另外,YUV格式也存在多种不同的采样比。在实际应用中,为减少运算量,可选择使用视频源中最普遍使用的格式,而将其他格式的图像进行转换,形成统一格式。
将多个YUV图像合成一个YUV图像,可根据各个图像排列的位置,对图像的三个分量重新进行排列组合成新图像。以Planar格式为例,将多个YUV图像合成一个YUV图像,可将YUV三个通道各自分开处理,对每个通道的分量,按照每行分量的位置从左到右排列,各行从上到下排列。
1.3 视频同步
图像合成组成新的视频需解决多视频间的同步问题。由于多路高清视频流的来源不一致,解码后获得包含图像的数据帧的帧率不一致,为确保合成后视频的质量,必须将多路视频的输出图像进行同步处理。同步方法如下。
选取一个实时视频流的输出数据帧作为基准序列,在单位时间内,对其他实时视频流解码后获得的数据帧序列,通过插帧或丢弃的方式,将视频帧的个数与基准源保持一致,以基准序列的时间戳作为合成后数据帧序列的时间戳。为提高视频质量,在对数据帧进行插帧或丢弃时,可根据对视频对象做真实运动的估值结果进行处理。
1.4 编码输出
将合并后的数据帧序列作为原始数据,输入到编码器中。编码器根据目标输出设置的参数,生成实时流,将实时流发布到流媒体服务器中。客户端只需要访问流媒体服务器即可播放合成后的视频。图像合成只考虑视频处理。根据实际应用需要,选择某个视频源的音频或多个音频混音,作为目标输出流的音频,合并输出。
1.5 内存管理
数据帧的内存管理机制对数据帧提供创建、销毁、引用、撤销引用、引用迁移等操作,并增加数据区的引用计数器。在引用、撤销引用、引用迁移时,不重新申请数据区,而是建立、修改或撤销对数据区的引用关系,保持数据区指针在数据帧对象中,并修改数据区的引用计数器。当数据帧Buffer被创建时,计数初始化为1。当该Buffer被数据帧引用时,计数+1,当数据帧撤销引用时,计数-1。
每数据帧撤销引用时,检查计数器数值,只有当发现计数器被清零时,才释放该数据区。通过采用引用计数器的机制,有效防止内存泄露,并大大减少重复的内存申请和数据复制操作,提高处理性能。
2.基于帧图像合成的实时流混屏解决方案
基于上文的关键技术研究成果,提出基于视频帧合成的实时流混屏的解决方案。该方案采用高度并发解码方式,将实时视频流解码成为视频帧序列;并通过将多个视频帧中的YUV图像合成,生成新视频帧,再对新视频帧进行编码,输出目标格式的实时视频流。该解决方案的系统架构图如2所示。
解码模块包括多个解码器,一个解码器负责对一个实时视频流进行解码,获得数据帧后,由预处理模块对视频帧进行以下处理。
首先,根据目标输出视频的像素比例,计算该视频画面在目标画面所占的实际大小,对视频帧进行缩放操作,在此缩放视频帧,可以减少后续处理的数据量,而不影响转换后的视频质量。然后,检查图像的色彩空间格式,如果不是YUV格式,统一为YUV格式。最后,将处理好的视频帧从队列尾部加入到待处理的视频帧队列中。
视频合成模块,访问各个编码器输出的待处理的视频帧队列,从队列头部取出视频帧,进行合并。在合并过程中,为保证视频同步,以其中一个视频流为基准,对其他视频流的数据帧采用插帧或丢弃,保证所有数据帧的时间戳一致。解码模块和视频合成模块对视频帧队列分别进行处理,解码模块输出数据帧插入到队列尾,而视频合成模块从视频帧队列头开始处理,将解码和编码的耦合度降到最低,解码与编码可以同时进行。
编码器对视频合成模块输出的视频帧序列进行编码,转换生成混屏后的实时视频流。
基于该解决方案实现混屏,在服务器测试,单台服务器可以支持32路高清实时视频流的混屏。服务器型号HP BL460C G8,CPU型号Intel(R)Xeon(R) CPU E5-2620 0 @ 2.00GHz(6 Cores),双CPU超线程24核。测试使用的输入实时视频源1080p,码率是12Mbit/s;输出是720p,码率为2Mbit/s。
测试结果证明,服务器CPU的利用率随着输入源的数量线性增加。多路实时视频源输入下的混屏的CPU使用率如图3所示。
3.结束语
以上提出基于视频帧合成的实时流视频混屏的方法,多个解码器间互不干扰,为高度并发解码提供可能;并采用视频帧队列管理的方式,使得解码和编码的耦合降到最低,解码与编码可以同时进行。高度并发使服务器的多核CPU运算能力得到充分利用,仅依靠软件解码的方式就能实现多个高清视频的混屏,不依赖于高端定制的硬件服务器才能实现。混屏处理后,以实时视频流的方式输出,客户端只需接收视频流进行播放即可,对客户端的配置要求低。
参考文献:
[1] 黄东君,陈松乔.基于源根组播的多点视频会议系统模型及其实现.电子学报,2005(1).
[2] 刘峰.视频图像编码技术及国际标准.北京邮电大学出版社,2005(7).
[3] 肖永豪,余英林.基于视频对象的自适应去帧/插帧视频处理.华南理工大学学报(自然科学版),2003(8).
前言数字图像处理技术以当前数字化发展为基础,逐渐衍生出的一项网络处理技术,数字图像处理技术可实现对画面更加真实的展示。在医学中,随着数字图像处理技术的渗透,数字图像将相关的病症呈现出来,并通过处理技术对画面上相关数据进行处理,这种医...
0引言随着铁路运输的不断发展和我国铁路中长期发展规划和战略的实施,铁路运输在国民经济生活中的重要性逐渐凸显。于此背景下一些铁路相关技术亟需改进。相较于传统的火车识别,本文从机器视觉和图像处理等技术为出发点提出一种区别于以往的基于数字图像...
随着科学技术的进步,越来越多的高新技术被应用在了人们的生产生活当中,这在推动现代社会发展的同时,也让人们的生产,生活方式发生了很大的改变,特别是人脸识别技术以及视频处理技术的发展和应用,将会对现代社会的发展产生更为深远的影响。下面是搜索整理的图像...
随着时代的进步,人类的文明程度也在逐渐的提高,对很多事物有了新的要求和看法,这一看法体现在图像上就是对图像的美化。随着科学技术的不断发展,计算机技术也在不断的改变。基于人们思想的转变与技术的发展,人们对图像的要求越来越高,如何应用将图像与...
人类的视觉是有限的,人眼可见光谱范围是390nm-780nm,而数字图像处理设备可以覆盖全部的电磁波谱,所以需要通过这个载体来实现图像处理。但是基于考虑到图像的传输方式以及带宽的限制,存储方式以及所带来的图像失真问题,我们必须对采集来的原始图像进行加...
思维导图由着名教育学家托尼博赞于20世纪60年代首创而成。作为一种有效的创造性思维工具,它已经被广泛应用在个人的自我分析和问题解决,家庭和商业的各种计划,甚至企业的员工培训和经验管理等方面[1].特别的,教育界也通过研究和挖掘思维导图的潜在教...
不论在哪种通讯手段中,人们都更愿意选择直观的图像表达,因此,未来社会对图像传递信息的要求越来越高,及时性、直观性、客观性等发展条件都对现有的数字图像处理技术提出了挑战。1数字图像处理技术概述数字图像处理是论述数字图像处理的基本理论、方...
伴随多媒体行业的运行及发展,通过计算机软件以及图形图像处理技术的融入,可以丰富图像视觉传达的意识效果,并将信息进行全面的体现,充分满足行业的持续发展需求。...
近年来,数字射线成像检测技术发展迅速,它具有成像速度快、检测效率高的突出优点。通过有效的质量控制措施,可望实现无胶片射线检测,有效代替胶片的使用。数字射线成像技术已在国内多个行业领域内获得广泛应用,但面临的问题是缺少相应标准的支撑。国际标准化组...
数字图像在获...