本发明涉及通信,具体地说,涉及一种云游戏交互方法、装置及电子设备。
背景技术:
1、云游戏将原来由用户端进行数据处理和渲染的工作放到云端处理,然后将云端渲染的结果通过音视频流推送给用户端,用户端只用发送控制指令和接受音视频流解码播放,降低了用户端的性能要求。
2、但是现有的云游戏方法下,信号处理、传输、编码和解码过程将导致云端和用户的用户端间存在时延,用户通过鼠标光标或瞄准准星等关键区域输入控制指令时产生的时延,将导致用户操控精度下降,严重影响用户的游戏体验。
技术实现思路
1、为了解决上述问题,本发明提出一种云游戏交互方法、装置及电子设备,能够修正云端和客户端的焦点移动的时延,提升用户的操控精度和游戏体验。
2、本发明实施例提供一种云游戏交互方法,所述方法包括:
3、云端接收用户通过客户端输入的操控指令,确定云端视频流当前时刻的时间戳和当前时延;
4、对所述操控指令中焦点移动后的客户端坐标进行转换,得到云端坐标;
5、获取所述时间戳时刻的视频帧中所述云端坐标对应的运动矢量;
6、根据所述运动矢量和所述当前时延对所述云端坐标进行时空补偿计算,得到目标焦点;
7、根据所述时间戳和所述目标焦点进行游戏控制。
8、优选地,所述获取所述时间戳时刻的视频帧中所述云端坐标对应的运动矢量,包括:
9、识别云端视频流在所述时间戳时刻的视频帧的帧类型;
10、根据所述帧类型在预设的匹配规则库中查询对应的匹配规则,根据查询得到的匹配规则获取视频帧对应的运动矢量结构体,根据所述运动矢量结构体计算所述云端坐标对应的运动矢量。
11、作为一种优选方案,所述根据所述帧类型在预设的匹配规则库中查询对应的匹配规则,根据查询得到的匹配规则获取视频帧对应的运动矢量结构体,包括:
12、当所述视频帧的帧类型为i帧时,获取所述视频帧前一帧p帧或者前一帧b帧的运动矢量结构体;
13、当所述视频帧的帧类型为p帧时,获取所述视频帧的运动矢量结构体;
14、当所述视频帧的帧类型为b帧时,获取所述视频帧过去帧的运动矢量结构体。
15、优选地,所述对所述操控指令中焦点移动后的客户端坐标进行转换,得到云端坐标,包括:
16、根据云端的视频流分辨率和客户端的视频流分辨率对所述客户端坐标进行仿射变换计算,得到所述云端坐标。
17、进一步地,所述仿射变换计算为:
18、其中,(xt1,yt1)为所述云端坐标,(x2,y2)为所述客户端坐标,(w2,h2)为客户端的视频流分辨率,(w1,h1)为云端的视频流分辨率。
19、作为一种优选方案,所述时空补偿计算具体为:
20、其中,(x,y)为所述目标焦点,(xt1,yt1)为所述云端坐标,为时空补偿系数,t为所述当前时延,μ和σ分别为当前时刻前t周期内的时延方差和均值,为所述云端坐标对应的运动矢量,motionscale为运动矢量的像素精度,motionx和motiony分别表示在x轴方向和y轴方向运动的矢量。
21、优选地,所述当前时延计算过程包括:
22、获取所述操控指令中包含的用户在客户端上操控时视频流的实时时间戳;
23、计算当前时刻的时间戳和所述实时时间戳的差值,得到所述当前时延。
24、作为一种优选方案,所述根据所述时间戳和所述目标焦点进行游戏控制,具体包括:
25、将所述时间戳和所述目标焦点上传至端游服务端,并根据所述端游服务端反馈的渲染指令渲染画面;
26、将渲染的画面的音频和视频进行编码,转化成视频流,将编码的视频流通过webrtc协议发送至所述客户端。
27、优选地,所述云端接收到用户在客户端上的操控指令,包括:
28、接收客户端通过udp协议与quic拥塞纠错算法传输的操控指令;
29、获取操控指令中包含用户对焦点移动产生的轨迹,提取轨迹中的关键焦点作为待修正的客户端坐标,所述关键焦点包括移动轨迹中的终点以及曲率超过预设值的拐点;
30、根据所述操控指令中点击控制动作、所述时间戳和所述当前时延进行游戏控制。
31、优选地,所述操控指令输入过程包括:
32、根据所述客户端的陀螺仪数据中两个维度的角度变化值,匹配焦点上下移动值及左右移动值,计算焦点移动后的客户端坐标。
33、作为一种优选方案,所述操控指令输入过程具体还包括:
34、客户端识别到用户预设按键的触发时间超过预设阈值时,放大以焦点为中心的预设范围区域的画面,将放大后的画面以焦点为中心叠加半透明显示。
35、本发明实施例还提供一种云游戏交互装置,所述装置包括:
36、指令获取模块,用于云端接收用户通过客户端输入的操控指令,确定云端视频流当前时刻的时间戳和当前时延;
37、坐标修正模块,用于对所述操控指令中焦点移动后的客户端坐标进行转换,得到云端坐标;
38、运动矢量获取模块,用于获取所述时间戳时刻的视频帧中所述云端坐标对应的运动矢量;
39、目标焦点计算模块,用于根据所述运动矢量和所述当前时延对所述云端坐标进行时空补偿计算,得到目标焦点;
40、控制模块,用于根据所述时间戳和所述目标焦点进行游戏控制。
41、优选地,所述运动矢量获取模块具体用于:
42、识别云端视频流在所述时间戳时刻的视频帧的帧类型;
43、根据所述帧类型在预设的匹配规则库中查询对应的匹配规则,根据查询得到的匹配规则获取视频帧对应的运动矢量结构体,根据所述运动矢量结构体计算所述云端坐标对应的运动矢量。
44、进一步地,所述运动矢量获取模块具体还用于:
45、当所述视频帧的帧类型为i帧时,获取所述视频帧前一帧p帧或者前一帧b帧的运动矢量结构体;
46、当所述视频帧的帧类型为p帧时,获取所述视频帧的运动矢量结构体;
47、当所述视频帧的帧类型为b帧时,获取所述视频帧过去帧的运动矢量结构体。
48、优选地,所述坐标修正模块具体用于:
49、根据云端的视频流分辨率和客户端的视频流分辨率对所述客户端坐标进行仿射变换计算,得到所述云端坐标。
50、作为上述方案的改进,所述仿射变换计算公式具体为:
51、其中,(xt1,yt1)为所述云端坐标,(x2,y2)为所述客户端坐标,(w2,h2)为客户端的视频流分辨率,(w1,h1)为云端的视频流分辨率。
52、作为一种优选方案,所述时空补偿计算公式具体为:
53、其中,(x,y)为所述目标焦点,(xt1,yt1)为所述云端坐标,为时空补偿系数,t为所述当前时延,μ和σ分别为当前时刻前t周期内的时延方差和均值,为所述云端坐标对应的运动矢量,motionscale为运动矢量的像素精度,motionx和motiony分别表示在x轴方向和y轴方向运动的矢量。
54、优选地,所述指令获取模块具体用于:
55、获取所述操控指令中包含的用户在客户端上操控时视频流的实时时间戳;
56、计算当前时刻的时间戳和所述实时时间戳的差值,得到所述当前时延。
57、优选地,所述根据所述时间戳和所述目标焦点进行游戏控制,具体包括:
58、将所述时间戳和所述目标焦点上传至端游服务端,并根据所述端游服务端反馈的渲染指令渲染画面;
59、将渲染的画面的音频和视频进行编码,转化成视频流,将编码的视频流通过webrtc协议发送至所述客户端。
60、作为一种优选方案,所述指令获取模块具体用于:
61、接收客户端通过udp协议与quic拥塞纠错算法传输的操控指令;
62、获取操控指令中包含用户对焦点移动产生的轨迹,提取轨迹中的关键焦点作为待修正的客户端坐标,所述关键焦点包括移动轨迹中的终点以及曲率超过预设值的拐点;
63、根据所述操控指令中点击控制动作、所述时间戳和所述当前时延进行游戏控制。
64、优选地,所述操控指令输入过程具体包括:
65、根据所述客户端的陀螺仪数据中两个维度的角度变化值,匹配焦点上下移动值及左右移动值,计算焦点移动后的客户端坐标。
66、优选地,所述操控指令输入过程具体还包括:
67、客户端识别到用户预设按键的触发时间超过预设阈值时,放大以焦点为中心的预设范围区域的画面,将放大后的画面以焦点为中心叠加半透明显示。
68、本发明实施例还提供一种电子设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上述任一项实施例所述的一种云游戏交互方法。
69、本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如上述任一项实施例所述的一种云游戏交互方法。
70、本发明提供一种云游戏交互方法、装置及电子设备,云端接收用户通过客户端输入的操控指令,确定云端视频流当前时刻的时间戳和当前时延;对所述操控指令中焦点移动后的客户端坐标进行转换,得到云端坐标;获取所述时间戳时刻的视频帧中所述云端坐标对应的运动矢量;根据所述运动矢量和所述当前时延对所述云端坐标进行时空补偿计算,得到目标焦点;根据所述时间戳和所述目标焦点进行游戏控制。能够修正云端和客户端的焦点移动的时延,提升用户的操控精度和游戏体验。