一种云桌面环境下的视频同步渲染的方法转让专利

申请号 : CN201510471699.4

文献号 : CN105025335B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 郭凯

申请人 : 合肥中科云巢科技有限公司

摘要 :

本发明提供了一种云桌面环境下的视频同步渲染的方法,该方法根据更新频率将图像绘制指令分为视频图像区域绘制指令和非视频区域图像绘制指令,去除非视频区域中与视频区域交叠的部分,并将对相邻或相交叠的视频区域进行合并,生成视频图像绘制指令发送至客户端,客户端接收到视频绘制指令后立即对图像进行渲染显示,完成了非视频区域和视频区域的同步渲染。该方法在服务器端检测到当前图像绘制指令为视频流时,能够保持视频渲染的同步,提高了用户体验。

权利要求 :

1.一种云桌面环境下的视频同步渲染的方法,包括以下步骤:

1)虚拟操作系统将桌面图像划分为多个矩形区域,并逐一向物理服务器发出所述矩形区域的图像绘制指令;

2)物理服务器接收虚拟操作系统发出的当前矩形区域的图像绘制指令后,按以下方法识别该图像绘制指令对应的矩形区域是否为视频区域:若收到图像绘制指令的频率低于或等于设定的图像接收频率阈值,则将其识别为一非视频区域的图像绘制指令,并以该区域的起始坐标及该区域的长度和宽度对该非视频区域进行位置标记;

反之,若高于设定的图像接收频率阈值,则将其识别为一视频区域的图像绘制指令,并以该区域的起始坐标及该区域的长度和宽度对该视频区域的进行位置标记,然后将该视频区域的图像绘制指令加入至视频处理队列中,

3)对于被识别为视频区域的图像绘制指令,根据位置标记判断该图像绘制指令所对应的视频区域与当前桌面中其他非视频区域之间是否存在位置交叠,若存在位置交叠,则将位置交叠部分从其他非视频区域中去除;若不存在交叠,则不予处理;

4)对于被识别为视频区域的图像绘制指令,根据位置标记判断该图像绘制指令所对应的视频区域与队列中其他图像绘制指令所对应的视频区域是否存在位置交叠或位置相邻,若存在,则将当前图像绘制指令所对应的视频区域与存在位置交叠或相邻的视频区域进行图像绘制合并;若不存在,则不予处理;

5)重复步骤2)~4)直至完成一帧整幅视频图像的处理,并由服务器重新生成一视频图像绘制指令;

6)服务器根据预设的每秒最大帧率和当前帧率决定是否丢帧,若当前帧率超过最大帧率则不发送重新生成的图像绘制指令,反之,则将重新生成的视频图像绘制指令和其他非视频区域的图像绘制指令发送至客户端;

7)客户端接收到绘制指令后立即对图像进行渲染,完成非视频区域和视频区域的同步渲染。

2.如权利要求1所述的一种云桌面环境下的视频同步渲染的方法,其特征在于,步骤3)中所述的将位置交叠部分从其他非视频区域中去除的方法如下:令被识别为视频区域的图像绘制指令所对应的位置标记为Areav(x1,y1,w1,h1),某一非视频区域的位置标记Areaw(x2,y2,w2,h2),其中x1,y1为视频区域的起始坐标,w1和h1分别为视频区域的宽度和高度,x2,y2为非视频区域的起始坐标,w2和h2分别为非视频区域的宽度和高度,当视频区域与非视频区域的位置标记同时满足如下条件时,则判断视频区域与该非视频区域存在位置交叠:x1+w1≥x2,

x2+w2≥x1,

y2+h2≥y1,

y1+h1≥y2;

然后,将位置交叠部分标记为Areao(x3,y3,w3,h3),其中,x3,y3为位置交叠区域的起始坐标,w3和h3分别为位置交叠区域的宽度和高度;

然后按下式:

Areaw(x2,y2,w2,h2)-Areao(x3,y3,w3,h3);

将该非视频区域中的位置交叠的部分去除;同理,按上述步骤完成该视频区域与其他非视频区域中位置交叠部分的去除。

3.如权利要求1所述的一种云桌面环境下的视频同步渲染的方法,其特征在于,步骤4)中所述的进行图像绘制合并的方法如下:A)令当前被识别为视频区域的图像绘制指令所对应的视频区域的位置标记为Areav(x4,y4,w4,h4),队列中一视频区域的位置标记为Areav(x5,y5,w5,h5),当两块视频区域的位置标记同时满足如下条件时则判定当前视频区域与队列中一视频区域存在重叠或相邻:x4+w4≥x5,

x5+w5≥x4,

y5+h5≥y4,

y4+h4≥y5;

然后,将两块视频区域合并成新的视频区域Areav(x6,y6,w6,h6),合并的计算公式如下:若x4>x5,则x6=x5,否则x6=x4;

若y4>y5,则y6=y5,否则y6=y4;

若x4+w4>x5+w5,则w6=x4+w4-x6,否则w6=x5+w5-x6;

若y4+h4>y5+h5,则h6=y4+h4-y6,否则h6=y5+h5-y6;

同理,按步骤A)所述方法完成当前视频区域与队列中所有其他视频区域的合并处理。

说明书 :

一种云桌面环境下的视频同步渲染的方法

技术领域

[0001] 本发明涉及图像处理技术领域,具体涉及一种云桌面环境下的图像处理方法。

背景技术

[0002] 基于云计算的应用方式越来越多,云桌面是其中之一,它通过云端建立的虚拟桌面,实现对操作系统的集中分配与管理。视频应用是云桌面的一种应用之一,但是在视频播放过程中,由于高码率和高分辨率的视频图像在传输过程中,非常占用网络带宽,目前的云桌面技术中,虚拟操作系统将桌面图像划分为多个矩形区域进行分块渲染,服务器端通过检测虚拟操作系统发出的某一矩形区域图像绘制指令来识别视频流,若收到图像绘制指令的频率高于阈值,则服务器端将其识别为某一绘制区域的视频图像,根据预设的每秒最大帧数决定是否发送绘制图像指令,若超出帧数,则丢弃该帧不发送绘制指令。当客户端接收到服务器端发送的绘制图像指令后,根据服务器端的时间戳确认该帧是否有效,有效则显示该帧图像,无效则丢弃。但是,当客户端窗口化播放视频时,由于存在视频区域和非视频区域,因此在丢帧时,导致视频播放窗口内经常出现画面不同步的现象;同时,由于视频分辨率较高,虚拟操作系统通常将视频图像分割成多块区域进行处理,并分别发送绘制指令,这样也会导致视频画面不同步的现象,严重影响用户体验。

发明内容

[0003] 鉴于现有技术之不足,本发明提供了一种云桌面环境下的视频同步渲染的方法,该方法在服务器端检测到当前图像绘制指令为视频流时,能够保持视频渲染的同步,提高了用户体验。
[0004] 解决上述问题的技术方案如下:
[0005] 一种云桌面环境下的视频同步渲染的方法,包括以下步骤:
[0006] 1)虚拟操作系统将桌面图像划分为多个矩形区域,并逐一向物理服务器发出所述矩形区域的图像绘制指令;
[0007] 2)物理服务器接收虚拟操作系统发出的当前矩形区域的图像绘制指令后,按以下方法识别该图像绘制指令对应的矩形区域是否为视频区域:
[0008] 若收到图像绘制指令的频率低于或等于设定的图像接收频率阈值,则将其识别为一非视频区域的图像绘制指令,并以该区域的起始坐标及该区域的长度和宽度对该非视频区域进行位置标记;
[0009] 反之,若高于设定的图像接收频率阈值,则将其识别为一视频区域的图像绘制指令,并以该区域的起始坐标及该区域的长度和宽度对该视频区域的进行位置标记,然后将该视频区域的图像绘制指令加入至视频处理队列中,
[0010] 3)对于被识别为视频区域的图像绘制指令,根据位置标记判断该图像绘制指令所对应的视频区域与当前桌面中其他非视频区域之间是否存在位置交叠,若存在位置交叠,则将位置交叠部分从其他非视频区域中去除;若不存在交叠,则不予处理;
[0011] 4)对于被识别为视频区域的图像绘制指令,根据位置标记判断该图像绘制指令所对应的视频区域与队列中其他图像绘制指令所对应的视频区域是否存在位置交叠或位置相邻,若存在,则将当前图像绘制指令所对应的视频区域与存在位置交叠或相邻的视频区域进行图像绘制合并;若不存在,则不予处理;
[0012] 5)重复步骤2)~4)直至完成一帧整幅视频图像的处理,并由服务器重新生成一视频图像绘制指令;
[0013] 6)服务器根据预设的每秒最大帧率和当前帧率决定是否丢帧,若当前帧率超过最大帧率则不发送重新生成的图像绘制指令,反之,则将重新生成的视频图像绘制指令和其他非视频区域的图像绘制指令发送至客户端;
[0014] 7)客户端接收到绘制指令后立即对图像进行渲染,完成非视频区域和视频区域的同步渲染。
[0015] 步骤3)中所述的将位置交叠部分从其他非视频区域中去除的方法如下:
[0016] 令被识别为视频区域的图像绘制指令所对应的位置标记为Areav(x1,y1,w1,h1),某一非视频区域的位置标记Areaw(x2,y2,w2,h2),其中x1,y1为视频区域的起始坐标,w1和h1分别为视频区域的宽度和高度,x2,y2为非视频区域的起始坐标,w2和h2分别为非视频区域的宽度和高度,当视频区域与非视频区域的位置标记同时满足如下条件时,则判断视频区域与该非视频区域存在位置交叠:
[0017] x1+w1≥x2
[0018] x2+w2≥x1
[0019] y2+h2≥y1
[0020] y1+h1≥y2
[0021] 然后,将位置交叠部分标记为Areao(x3,y3,w3,h3),其中,x3,y3为位置交叠区域的起始坐标,w3和h3分别为位置交叠区域的宽度和高度
[0022] 然后按下式:
[0023] Areaw(x2,y2,w2,h2)-Areao(x3,y3,w3,h3)
[0024] 将该非视频区域中的位置交叠的部分去除;同理,按上述步骤完成该视频区域与其他非视频区域中位置交叠部分的去除。
[0025] 其中,步骤4)中所述对队列中存在位置交叠或相邻的视频区域进行图像绘制合并的方法如下:
[0026] A)令当前被识别为视频区域的图像绘制指令所对应的视频区域的位置标记为Areav(x4,y4,w4,h4),队列中一视频区域的位置标记为Areav(x5,y5,w5,h5),当两块视频区域的位置标记同时满足如下条件时则判定当前视频区域与队列中一视频区域存在重叠或相邻:
[0027] x4+w4≥x5
[0028] x5+w5≥x4
[0029] y5+h5≥y4
[0030] y4+h4≥y5
[0031] 然后,将两块视频区域合并成新的视频区域Areav(x6,y6,w6,h6),合并的计算公式如下:
[0032] 若x4>x5,则x6=x5,否则x6=x4
[0033] 若y4>y5,则y6=y5,否则y6=x4
[0034] 若x4+w4>x5+w5,则w6=x4+w4-x6,否则w6=x5+w5-x6,
[0035] 若y4+h4>y5+h5,则h6=y4+h4-y6,否则h6=y5+h5-y6
[0036] 同理,按步骤A)所述方法完成当前视频区域与队列中所有其他视频区域的合并处理。
[0037] 相较于现有技术,本发明的有益效果如下:
[0038] 由于服务器端在视频播放时,对桌面区域进行视频区域和非视频区域划分,并且对视频区域进行合并,使得视频图像被合并成一整块图像进行处理,有效保证了视频播放时的画面同步渲染;同时,由于客户端在渲染视频时,不再根据服务器的时间戳控制视频图像的显示,大大降低了丢帧的可能,提高了用户体验;另外,对桌面区域进行视频区域和非视频区域划分,也避免客户端对同一区块的二次图像渲染,降低了客户端的硬件需求和网络带宽的需求。

附图说明

[0039] 图1为本发明所述视频同步渲染方法的流程图。
[0040] 图2为本发明所述一种云桌面环境下的视频同步渲染的方法的一个具体实施例的视频播放渲染示意图。

具体实施方式

[0041] 下面以云桌面环境下窗口化播放视频为例,结合附图详述本发明的视频同步渲染方法:
[0042] 参见图2,虚拟操作系统在接收到客户端的窗口化播放某视频的控制指令时即开始播放视频图像,将当前一帧桌面图像划分为9个区块,按图2所示1~9的数字顺序逐一发送至服务器,服务器端则按顺序对区块1~9进行处理,参见图1,处理流程如下:
[0043] 1)虚拟操作系统将桌面图像划分为多个矩形区域,并逐一向物理服务器发出所述矩形区域的图像绘制指令;
[0044] 2)物理服务器接收虚拟操作系统发出的当前矩形区域的图像绘制指令后,按以下方法识别该图像绘制指令对应的矩形区域是否为视频区域:
[0045] 若收到图像绘制指令的频率低于或等于设定的图像接收频率阈值,则将其识别为一非视频区域的图像绘制指令,并以该区域的起始坐标及该区域的长度和宽度对该非视频区域进行位置标记;
[0046] 反之,若高于设定的图像接收频率阈值,则将其识别为一视频区域的图像绘制指令,并以该区域的起始坐标及该区域的长度和宽度对该视频区域的进行位置标记,然后将该视频区域的图像绘制指令加入至视频处理队列中,
[0047] 由于一般视频播放高于14帧时,人眼就会感觉比较视频比较流畅,因此本例中图像接收频率阈值设为14Hz;
[0048] 3)对于被识别为视频区域的图像绘制指令,根据位置标记判断该图像绘制指令所对应的视频区域与当前桌面中其他非视频区域之间是否存在位置交叠,若存在位置交叠,则将位置交叠部分从其他非视频区域中去除;若不存在交叠,则不予处理,去除交叠部分的具体步骤如下:
[0049] 令被识别为视频区域的图像绘制指令所对应的位置标记为Areav(x1,y1,w1,h1),某一非视频区域的位置标记Areaw(x2,y2,w2,h2),其中x1,y1为视频区域的起始坐标,w1和h1分别为视频区域的宽度和高度,x2,y2为非视频区域的起始坐标,w2和h2分别为非视频区域的宽度和高度,当视频区域与非视频区域的位置标记同时满足如下条件时,则判断视频区域与该非视频区域存在位置交叠:
[0050] x1+w1≥x2
[0051] x2+w2≥x1
[0052] y2+h2≥y1
[0053] y1+h1≥y2
[0054] 然后,将位置交叠部分标记为Areao(x3,y3,w3,h3),其中,x3,y3为位置交叠区域的起始坐标,w3和h3分别为位置交叠区域的宽度和高度
[0055] 然后按下式:
[0056] Areaw(x2,y2,w2,h2)-Areao(x3,y3,w3,h3)
[0057] 将该非视频区域中的位置交叠的部分去除;同理,按上述步骤完成该视频区域与其他非视频区域中位置交叠部分的去除。
[0058] 4)对于被识别为视频区域的图像绘制指令,根据位置标记判断该图像绘制指令所对应的视频区域与队列中其他图像绘制指令所对应的视频区域是否存在位置交叠或位置相邻,若存在,则将当前图像绘制指令所对应的视频区域与存在位置交叠或相邻的视频区域进行图像绘制合并;若不存在,则不予处理,其中图像绘制合并的具体步骤如下:
[0059] 令当前被识别为视频区域的图像绘制指令所对应的视频区域的位置标记为Areav(x4,y4,w4,h4),队列中一视频区域的位置标记为Areav(x5,y5,w5,h5),当两块视频区域的位置标记同时满足如下条件时则判定当前视频区域与队列中一视频区域存在重叠或相邻:
[0060] x4+w4≥x5
[0061] x5+w5≥x4
[0062] y5+h5≥y4
[0063] y4+h4≥y5
[0064] 然后,将两块视频区域合并成新的视频区域Areav(x6,y6,w6,h6),合并的计算公式如下:
[0065] 若x4>x5,则x6=x5,否则x6=x4
[0066] 若y4>y5,则y6=y5,否则y6=x4
[0067] 若x4+w4>x5+w5,则w6=x4+w4-x6,否则w6=x5+w5-x6,
[0068] 若y4+h4>y5+h5,则h6=y4+h4-y6,否则h6=y5+h5-y6
[0069] 同理,按上述方法完成当前视频区域与队列中所有其他视频区域的合并处理。
[0070] 5)重复步骤2)~4)直至完成对桌面图像区块1~9的处理,由图2所示显见,桌面图像区块1~9均位于播放窗口内,属于视频区域,因此区块1~9均按顺序加入至视频处理队列中,同时,除桌面图像区块5以外,其他区块均存在非视频区域和视频区域的交叠,因此需逐一去除桌面图像区块1~4、6~9中非视频区域的交叠部分,并完成桌面图像区块1~9合并处理,并由服务器重新生成一视频图像绘制指令;
[0071] 6)服务器根据预设的每秒最大帧率和当前帧率决定是否丢帧,若当前帧率超过最大帧率则不发送重新生成的图像绘制指令,反之,则将重新生成的视频图像绘制指令和桌面图像区块1~4、6~9中非视频区域的图像绘制指令发送至客户端,根据视频质量和服务器性能,本例中最大帧率设置为30fps;
[0072] 7)客户端接收到绘制指令后立即对图像进行渲染,完成非视频区域和视频区域的同步渲染。