一种基于视频流调帧率的桌面共享系统及其桌面共享方法与流程

文档序号:15848361发布日期:2018-11-07 09:26阅读:351来源:国知局
一种基于视频流调帧率的桌面共享系统及其桌面共享方法与流程

本发明涉及信息处理技术领域,具体涉及一种基于视频流调帧率的桌面共享系统及桌面共享方法。

背景技术

参考图1所示,当前桌面共享的实现模式:桌面抓取模块(1)获取桌面图像,视频编码模块(2)对桌面图像进行压缩后发送给远端桌面显示(3),远端桌面显示(3)对压缩数据解码显示。这里存在一个问题,桌面包如含类似视频监控摄像头的高帧率视频图像,视频监控摄像头的视频帧率较高(如每秒60帧图像),但桌面抓取模块(1)获取图像为低帧率,一般为每秒20帧图像,导致远端桌面显示(3)看到桌面中的摄像头图像也为低帧率(如每秒20帧图像),最终显示效果不佳。



技术实现要素:

本发明目的是提供一种基于视频流调帧率的桌面共享系统及桌面共享方法,解决并修正桌面共享帧率不高问题,按照桌面的高帧率视频图像内容来提高帧率,同时消除冗余数据控制码率,最终提升桌面共享的品质。

为实现上述目的,本发明提供如下技术方案:

一种基于视频流调帧率的桌面共享系统,包括视频解码模块(1)、桌面渲染模块(2)、桌面抓取模块(3)、拼接模块(4)、调帧模块(5)、视频编码模块(6),其中:

所述视频解码模块(1),用于负责来网络视频流(如网络监控摄像头)或本地视频文件解码进行解码得到高帧率(如每秒60帧图像),并把解码后视频yuv数据发送给桌面渲染模块(2)与拼接模块(4);

所述桌面渲染模块(2),用于负责把视频图像a渲染显示到电脑桌面上,并为桌面抓取模块(3)提供视频图像a的位置与大小;

所述桌面抓取模块(3),用于抓取电脑桌面获取低帧率(如每秒20帧图像)的桌面图像,并把桌面图像与视频图像a的位置与大小发给拼接模块(4);

所述拼接模块(4),用于把低帧率(如每秒20帧图像)桌面图像与高帧率(如每秒60帧图像)视频图像a拼接合并(方法参考步骤7);

所述调帧模块(5),用于控制(方法参考步骤8)视频编码gop与i帧生成时间,去除拼接模块(4)复制桌面图像而带来数据冗余,减低传输带宽;

所述视频编码模块(6),用于负责拼接模块(4)输出视频进行压缩编码,最终输出标准视频压缩数据流,并将帧率提高为高帧率(如每秒60帧图像)。

本发明还提供一种基于视频流调帧率的桌面共享方法,包括如下步骤:

步骤(1)、视频解码模块(1)解码网络视频流(如网络监控摄像头)或本地视频文件解码进行解码得到高帧率(如每秒60帧图像)的视频图像a的yuv视频数据;

步骤(2)、视频解码模块(1)并把解码视频图像a的yuv视频数据带上时间戳t1分别复制分发给桌面渲染模块(2)与拼接模块(4);

步骤(3)、桌面渲染模块(2)接收视频图像a的yuv视频数据,按照视频图像a的位置(图像左上角坐标)与大小(图像图像长与宽)在电脑桌面的渲染显示,桌面渲染模块(2)保存时间戳t1为当前渲染时间戳t1’;

步骤(4)、桌面抓取模块(3)通过抓取桌面获取低帧率(如每秒20帧图像)的桌面图像z的rgb视频数据;桌面抓取模块(3)从桌面渲染模块(2)获取视频图像a的位置(图像左上角坐标)与大小(图像图像长与宽)与当前渲染时间戳t1’;

步骤(5)、桌面抓取模块(3)把桌面图像z的yuv视频数据带上与视频图像a位置与大小与时间戳t’发送给拼接模块(4);

步骤(6)、拼接模块(4)接收到视频图像a的yuv视频数据与时间戳t’,保存到拼接模块(4)的缓存h1;

步骤(7)、拼接模块(4)拼接桌面图像z与视频图像a的方法

(7.1)、拼接模块(4)获取桌面图像z的yuv视频数据d1带上与视频图像a位置p1(图像左上角坐标)与大小s1(图像长与宽)与时间戳t1’;

(7.2)、拼接模块(4)按照时间戳小与视频图像a时间戳t1’条件从缓存h1获取视频图像a的视频数据队列;

(7.2)、拼接模块(4)视频图像a的视频数据队列去第一个yuv视频数据

(7.3)、拼接模块(4)根据视频图像a的大小s1(图像长与宽)对视频图像a的yuv视频数据进缩放,得到视频图像a的叠加yuv视频数据;

(7.4)、拼接模块(4)根据视频图像a的位置p1(图像左上角坐标)使用视频图像a的叠加yuv视频数据对桌面图像z的yuv视频数据进行替换,得到桌面图像z的yuv视频数据d1的编号为1(编号视频图像a的视频数据队列的顺序编号)合并图像的yuv视频数据;拼接模块(4)按照当前时间生成合并时间戳,拼接模块(4)把合并图像的yuv视频数据与合并时间戳发送给视频编码模块(6),拼接模块(4)把合并图像的合并时间戳与编号发送调帧模块(5);

(7.5)、拼接模块(4)获取桌面图像z的yuv视频数据d2带上与视频图像a位置p2(图像左上角坐标)与大小s2(图像长与宽)与时间戳t2’.

(7.6)、拼接模块(4)依次取视频图像a的视频数据队列的yuv视频数据,重复步骤(7.3)~步骤(7.5),生成以桌面图像z的yuv视频数据d1为底图的其他图像(合并图像的编号为2,3,4...);

(7.7)、拼接模块(4)获取桌面图像z的yuv视频数据d2带上与视频图像a位置p2(图像左上角坐标)与大小s2(图像长与宽)与时间戳t2’,则重复步骤(7.1)~步骤(7.6);生成以桌面图像z的yuv视频数据d2为底图的所有图像;

步骤(8)、调帧模块(5)的调帧方法

(8.1)、调帧模块(5)根据统计得到桌面图像z的帧率a(如每秒20帧图像)与视频图像a的帧率b(如每秒60帧图像),计算帧率a与帧率b的最小公约数c(如为60),最小公约数c为桌面图像z与视频图像a不同帧率拼接重复周期,设置最小公约数c为gop值(i帧出现周期);

(8.2)、调帧模块(5)设置视频编码模块(6)gop为最小公约数c,设置视频编码模块(6)起始时间戳;起始时间戳对应视频编码帧类型为i帧,起始时间戳取值合并图像的编号为1的时间戳;这样i帧为桌面图像z在步骤(7.4)生成第一张合并图像,桌面图像z复制而生成其他合并图像为p帧,p帧为两张画面差异点,所以桌面图像z复制而带来数据冗余也被消除,从而减少传输带宽;

(8.3)、调帧模块(5)发现桌面图像z的帧率或视频图像a的帧率发生变化,则重新进行步骤(8.1)~步骤(8.2);

步骤(9)、视频编码模块(6)接收到拼接模块(4)的合并图像的yuv视频数据与合并时间戳,保存本身缓存h2中;

步骤(10)、视频编码模块(6)接到调帧模块(5)的gop值与起始时间戳;视频编码模块(6)把gop值设置到视频编码中;视频编码模块(6)根据起始时间戳在缓存h2找到合并图像对应的yuv视频数据,开始视频编码;

步骤(11)、视频编码模块(6)最终编码输出标准视频压缩数据流,但帧率提高为高帧率(如每秒60帧图像)。

与现有技术相比,本发明的有益效果是:

采用本发明的技术方案,能够有效地修正桌面共享帧率不高问题,按照桌面的高帧率视频图像内容来提高帧率,同时消除冗余数据控制码率,最终提升桌面共享的品质。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为现有桌面共享的实现模式结构示意图;

图2为本发明的整体功能结构示意图;

图3为本发明中局部功能结构以及调帧模块的调帧时序结构示意图;

附图数字标注:视频解码模块(1),桌面渲染模块(2),桌面抓取模块(3),拼接模块(4),调帧模块(5),视频编码模块(6)。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图2~3所示:本发明提供一种基于视频流调帧率的桌面共享系统,包括视频解码模块(1)、桌面渲染模块(2)、桌面抓取模块(3)、拼接模块(4)、调帧模块(5)、视频编码模块(6),其中:

所述视频解码模块(1),用于负责来网络视频流(如网络监控摄像头)或本地视频文件解码进行解码得到高帧率(如每秒60帧图像),并把解码后视频yuv数据发送给桌面渲染模块(2)与拼接模块(4);

所述桌面渲染模块(2),用于负责把视频图像a渲染显示到电脑桌面上,并为桌面抓取模块(3)提供视频图像a的位置与大小;

所述桌面抓取模块(3),用于抓取电脑桌面获取低帧率(如每秒20帧图像)的桌面图像,并把桌面图像与视频图像a的位置与大小发给拼接模块(4);

所述拼接模块(4),用于把低帧率(如每秒20帧图像)桌面图像与高帧率(如每秒60帧图像)视频图像a拼接合并(方法参考步骤7);

所述调帧模块(5),用于控制(方法参考步骤8)视频编码gop与i帧生成时间,去除拼接模块(4)复制桌面图像而带来数据冗余,减低传输带宽;

所述视频编码模块(6),用于负责拼接模块(4)输出视频进行压缩编码,最终输出标准视频压缩数据流,并将帧率提高为高帧率(如每秒60帧图像)。

本发明还提供一种基于视频流调帧率的桌面共享方法,包括如下步骤:

步骤(1)、视频解码模块(1)解码网络视频流(如网络监控摄像头)或本地视频文件解码进行解码得到高帧率(如每秒60帧图像)的视频图像a的yuv视频数据;

步骤(2)、视频解码模块(1)并把解码视频图像a的yuv视频数据带上时间戳t1分别复制分发给桌面渲染模块(2)与拼接模块(4);

步骤(3)、桌面渲染模块(2)接收视频图像a的yuv视频数据,按照视频图像a的位置(图像左上角坐标)与大小(图像图像长与宽)在电脑桌面的渲染显示,桌面渲染模块(2)保存时间戳t1为当前渲染时间戳t1’;

步骤(4)、桌面抓取模块(3)通过抓取桌面获取低帧率(如每秒20帧图像)的桌面图像z的rgb视频数据;桌面抓取模块(3)从桌面渲染模块(2)获取视频图像a的位置(图像左上角坐标)与大小(图像图像长与宽)与当前渲染时间戳t1’;

步骤(5)、桌面抓取模块(3)把桌面图像z的yuv视频数据带上与视频图像a位置与大小与时间戳t’发送给拼接模块(4);

步骤(6)、拼接模块(4)接收到视频图像a的yuv视频数据与时间戳t’,保存到拼接模块(4)的缓存h1;

步骤(7)、拼接模块(4)拼接桌面图像z与视频图像a的方法

(7.1)、拼接模块(4)获取桌面图像z的yuv视频数据d1带上与视频图像a位置p1(图像左上角坐标)与大小s1(图像长与宽)与时间戳t1’;

(7.2)、拼接模块(4)按照时间戳小与视频图像a时间戳t1’条件从缓存h1获取视频图像a的视频数据队列;

(7.2)、拼接模块(4)视频图像a的视频数据队列去第一个yuv视频数据

(7.3)、拼接模块(4)根据视频图像a的大小s1(图像长与宽)对视频图像a的yuv视频数据进缩放,得到视频图像a的叠加yuv视频数据;

(7.4)、拼接模块(4)根据视频图像a的位置p1(图像左上角坐标)使用视频图像a的叠加yuv视频数据对桌面图像z的yuv视频数据进行替换,得到桌面图像z的yuv视频数据d1的编号为1(编号视频图像a的视频数据队列的顺序编号)合并图像的yuv视频数据;拼接模块(4)按照当前时间生成合并时间戳,拼接模块(4)把合并图像的yuv视频数据与合并时间戳发送给视频编码模块(6),拼接模块(4)把合并图像的合并时间戳与编号发送调帧模块(5);

(7.5)、拼接模块(4)获取桌面图像z的yuv视频数据d2带上与视频图像a位置p2(图像左上角坐标)与大小s2(图像长与宽)与时间戳t2’.

(7.6)、拼接模块(4)依次取视频图像a的视频数据队列的yuv视频数据,重复步骤(7.3)~步骤(7.5),生成以桌面图像z的yuv视频数据d1为底图的其他图像(合并图像的编号为2,3,4...);

(7.7)、拼接模块(4)获取桌面图像z的yuv视频数据d2带上与视频图像a位置p2(图像左上角坐标)与大小s2(图像长与宽)与时间戳t2’,则重复步骤(7.1)~步骤(7.6);生成以桌面图像z的yuv视频数据d2为底图的所有图像;

步骤(8)、调帧模块(5)的调帧方法

(8.1)、调帧模块(5)根据统计得到桌面图像z的帧率a(如每秒20帧图像)与视频图像a的帧率b(如每秒60帧图像),计算帧率a与帧率b的最小公约数c(如为60),最小公约数c为桌面图像z与视频图像a不同帧率拼接重复周期,设置最小公约数c为gop值(i帧出现周期);

(8.2)、调帧模块(5)设置视频编码模块(6)gop为最小公约数c,设置视频编码模块(6)起始时间戳;起始时间戳对应视频编码帧类型为i帧,起始时间戳取值合并图像的编号为1的时间戳;这样i帧为桌面图像z在步骤(7.4)生成第一张合并图像,桌面图像z复制而生成其他合并图像为p帧,p帧为两张画面差异点,所以桌面图像z复制而带来数据冗余也被消除,从而减少传输带宽;

(8.3)、调帧模块(5)发现桌面图像z的帧率或视频图像a的帧率发生变化,则重新进行步骤(8.1)~步骤(8.2);

步骤(9)、视频编码模块(6)接收到拼接模块(4)的合并图像的yuv视频数据与合并时间戳,保存本身缓存h2中;

步骤(10)、视频编码模块(6)接到调帧模块(5)的gop值与起始时间戳;视频编码模块(6)把gop值设置到视频编码中;视频编码模块(6)根据起始时间戳在缓存h2找到合并图像对应的yuv视频数据,开始视频编码;

步骤(11)、视频编码模块(6)最终编码输出标准视频压缩数据流,但帧率提高为高帧率(如每秒60帧图像)。

还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本实用

新型将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1