CN105760238B - 图形指令数据的处理方法和装置及系统 - Google Patents

图形指令数据的处理方法和装置及系统 Download PDF

Info

Publication number
CN105760238B
CN105760238B CN201610067797.6A CN201610067797A CN105760238B CN 105760238 B CN105760238 B CN 105760238B CN 201610067797 A CN201610067797 A CN 201610067797A CN 105760238 B CN105760238 B CN 105760238B
Authority
CN
China
Prior art keywords
data
frame
present frame
key frame
graphics instructional
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201610067797.6A
Other languages
English (en)
Other versions
CN105760238A (zh
Inventor
杜幸阁
聂志明
李从兵
艾风
顾煜
王杨军
曹文升
叶劲峰
王伟光
韩祥
程东哲
陈国乐
周贺楠
庄志伟
沈超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201610067797.6A priority Critical patent/CN105760238B/zh
Publication of CN105760238A publication Critical patent/CN105760238A/zh
Priority to PCT/CN2017/072538 priority patent/WO2017129118A1/zh
Priority to EP17743733.2A priority patent/EP3410302B1/en
Priority to US15/926,547 priority patent/US10645391B2/en
Application granted granted Critical
Publication of CN105760238B publication Critical patent/CN105760238B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/543User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/355Performing operations on behalf of clients with restricted processing capabilities, e.g. servers transform changing game scene into an encoded video stream for transmitting to a mobile phone or a thin client
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/48Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using compressed domain processing techniques other than decoding, e.g. modification of transform coefficients, variable length coding [VLC] data or run-length data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/541Client-server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L5/00Arrangements affording multiple use of the transmission path
    • H04L5/003Arrangements for allocating sub-channels of the transmission path
    • H04L5/0058Allocation criteria
    • H04L5/0064Rate requirement of the data, e.g. scalable bandwidth, data priority

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)
  • Computer And Data Communications (AREA)

Abstract

一种图形指令数据的处理方法和装置及系统,以有助于减少图形指令数据的传输量,降低对带宽的要求。在本发明一些可行的实施方式中,所述方法应用于云交互系统,所述云交互系统包括服务器和用户设备,所述方法包括:所述服务器获取当前帧的图形指令数据;判断所述当前帧是否符合关键帧设定条件;若不符合,将所述当前帧与已记录的关键帧的图形指令数据进行对比,获得差异数据;对所述差异数据进行压缩,将压缩后的差异数据发送给所述用户设备,以便所述用户设备根据记录的关键帧和所述差异数据还原所述当前帧的图形指令数据,生成当前帧的图形界面。

Description

图形指令数据的处理方法和装置及系统
技术领域
本发明涉及云技术领域,具体涉及一种图形指令数据的处理方法和装置及系统。
背景技术
随着近年来终端技术和网络带宽的高速发展,云计算技术的日趋成熟催生了云交互系统,现有的云交互系统通常包括服务器和多个用户设备,服务器可以是集群服务器,多种交互式应用都可以运行在云交互系统中。
在运行云游戏等交互式应用时,服务器和用户设备可能需要交互图形界面。其中,图形界面的图形指令数据是按帧传输的。
实践发现,图形指令数据传输量比较大,其网络传送对带宽要求很高,容易导致用户设备端出现画面卡顿不流畅等现象。
发明内容
本发明实施例提供一种图形指令数据的处理方法和装置及系统,以有助于减少图形指令数据的传输量,降低对带宽的要求。
本发明第一方面提供一种图形指令数据的处理方法,所述方法应用于云交互系统,所述云交互系统包括服务器和用户设备,所述方法包括:所述服务器获取当前帧的图形指令数据;判断所述当前帧是否符合关键帧设定条件;若不符合,将所述当前帧与已记录的关键帧的图形指令数据进行对比,获得差异数据;对所述差异数据进行压缩,将压缩后的差异数据发送给所述用户设备,以便所述用户设备根据记录的关键帧和所述差异数据还原所述当前帧的图形指令数据,生成当前帧的图形界面。
本发明第二方面提供一种图形指令数据的处理方法,所述方法应用于云交互系统,所述云交互系统包括服务器和用户设备,所述方法包括:所述用户设备接收所述服务器发送的当前帧的压缩数据并解压缩;识别所述当前帧是否为关键帧;若否,则获取已记录的关键帧,确定所述当前帧的解压缩数据是与所述关键帧的差异数据;根据所述当前帧的解压缩数据和所述关键帧,还原所述当前帧的图形指令数据。
本发明第三方面提供一种图形指令数据的处理方法,所述方法应用于云交互系统,所述云交互系统包括服务器和用户设备,所述方法包括:所述服务器获取当前帧的图形指令数据,判断所述当前帧是否符合关键帧设定条件,若不符合,将所述当前帧与已记录的关键帧的图形指令数据进行对比,获得差异数据,对所述差异数据进行压缩,将压缩后的差异数据发送给所述用户设备;所述用户设备接收所述服务器发送的所述当前帧的压缩数据并解压缩,识别所述当前帧是否为关键帧;若否,则获取已记录的关键帧,确定所述当前帧的解压缩数据是与所述关键帧的差异数据,根据所述当前帧的解压缩数据和所述关键帧,还原所述当前帧的图形指令数据,根据所述当前帧的图形指令数据生成当前帧的图形界面。
本发明第四方面提供图形指令数据的处理方法,所述方法应用于云交互系统,所述云交互系统包括服务器和用户设备,所述方法包括:所述服务器获取当前帧的图形指令数据,判断所述当前帧是否符合关键帧设定条件,若不符合,将所述当前帧与已记录的关键帧的图形指令数据进行对比,获得差异数据,对所述差异数据进行压缩,将压缩后的差异数据发送给所述用户设备;所述用户设备接收所述服务器发送的所述当前帧的压缩数据并解压缩,识别所述当前帧是否为关键帧;若否,则获取已记录的关键帧,确定所述当前帧的解压缩数据是与所述关键帧的差异数据,根据所述当前帧的解压缩数据和所述关键帧,还原所述当前帧的图形指令数据,根据所述当前帧的图形指令数据生成当前帧的图形界面。
本发明第五方面提供一种图形指令数据的处理装置,所述装置应用于云交互系统的用户设备,所述云交互系统包括服务器和所述用户设备;所述装置包括:接收模块,用于接收所述服务器发送的当前帧的压缩数据并解压缩;识别模块,用于识别所述当前帧是否为关键帧;确定模块,用于若所述识别模块识别结果为否,则获取已记录的关键帧,确定所述当前帧的解压缩数据是与所述关键帧的差异数据;还原模块,用于根据所述当前帧的解压缩数据和所述关键帧,还原所述当前帧的图形指令数据。
本发明第六方面提供一种云交互系统,所述云交互系统包括服务器和用户设备,其中,所述服务器,用于获取当前帧的图形指令数据,判断所述当前帧是否符合关键帧设定条件,若不符合,将所述当前帧与已记录的关键帧的图形指令数据进行对比,获得差异数据,对所述差异数据进行压缩,将压缩后的差异数据发送给所述用户设备;所述用户设备,用于接收所述服务器发送的所述当前帧的压缩数据并解压缩,识别所述当前帧是否为关键帧;若否,则获取已记录的关键帧,确定所述当前帧的解压缩数据是与所述关键帧的差异数据,根据所述当前帧的解压缩数据和所述关键帧,还原所述当前帧的图形指令数据,根据所述当前帧的图形指令数据生成当前帧的图形界面。
由上可见,在本发明的一些可行的实施方式中,获取当前帧与关键帧的图形指令数据的差异数据,并进行压缩,将压缩数据作为当前帧的待发送数据,由于差异数据的大小远小于原始的图形指令数据,因此,可以有效减少数据传输量,降低对带宽的要求,有助于实现高效流畅通信,保障图像图面的流畅度。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例和现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是一种Trace端和Retrace端交互的流程图;
图2是一款游戏的每帧指令数据量分布示意图;
图3是云交互系统的架构示意图;
图4是本发明实施例提供的图形指令数据的处理方法的流程示意图;
图5是Trace端建立关键帧策略的流程示意图;
图6是Trace端和Retrace端图形指令数据的处理流程示意图;
图7是本发明实施例的图形指令处理时序的示意图;
图8是一款游戏的每帧指令数据量分布对比示意图;
图9是本发明一个实施例提供的图形指令数据的处理装置的结构示意图;
图10是本发明另一实施例提供的图形指令数据的处理装置的结构示意图;
图11是本发明实施例提供的服务器的结构示意图;
图12是本发明实施例提供的用户设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
如图3所示,云交互系统的架构示意图,云交互系统包括服务器和用户设备,用于运行交互式应用例如云游戏。交互式应用分别运行在服务器和用户设备的客户端通常被称为Trace端和Retrace端。其中,云游戏是指:游戏的真实客户端在云服务器上运行,同时将游戏的画面在玩家机器上进行显示,通过将玩家本地的键盘和鼠标控制远程重定向到云服务器来实现对游戏的控制。以云游戏为例,Trace端是指:运行在云游戏服务器上的游戏客户端,即云游戏的云端,执行游戏的主要逻辑运行,把与用户交互有关的图形界面,经网络传送给Retrace端。Retrace端是指:运行在用户设备上的客户端,即云游戏的用户端,用于表现Trace端的游戏图形界面,把用户的鼠标、键盘等设备输入,经网络传送给Trace端。在运行云游戏等交互式应用时,服务器和用户设备可能需要交互图形界面。
请参考图1,是一种Trace端和Retrace端交互的流程图。如图1所示,云游戏运行在Trace端,Trace端可以捕获每次绘制图形画面的操作,并录制其渲染指令,产生图形指令数据,将图形指令数据通过网络发送到Retrace端;Retrace端接收到指令数据并解析回放渲染指令,调用执行相关的图形绘制API(Application Programming Interface,应用程序编程接口)绘制图像,播放云游戏的画面。其中,图形指令数据是按帧传输的。
在游戏运行过程中,每帧画面调用图形渲染API的频率是极高的,渲染指令的参数繁多,录制时除了需要记录这些指令和参数外,还需要记录所有的纹理数据、顶点数据、索引数据等。如图2所示的一款游戏的每帧指令数据量分布图,可以看出一帧的均值数据量超过500K Byte,峰值数据量达到3400K Byte。流畅游戏每秒60帧的渲染速度,那么其对网络传送流量达到均值30MB/s,峰值达到200多M/s。
当云游戏运行时,服务器上的Trace端需要把每一帧图形界面的图形指令数据发送给用户设备上的Retrace端,以便Retrace端根据收到的图形指令数据生成和播放云游戏的图形界面。可见,图形指令数据传输量比较大,其网络传送对带宽要求很高,容易导致Retrace端出现画面卡顿不流畅等现象。为了降低图形指令数据的传输量,降低对带宽的要求,本发明实施例提供一种图形指令数据的处理方法和装置及系统。
下面通过具体实施例,分别进行详细的说明。
(实施例一、)
请参考图4,本发明实施例提供一种图形指令数据的处理方法,应用于如图3所示的云交互系统,所述云交互系统包括服务器和用户设备。云交互系统用于运行云游戏等交互式应用,本文以云游戏为例进行说明。云交互式系统可以理解为是云游戏系统,
在服务器侧,所述方法可以包括:
110、所述服务器获取当前帧的图形指令数据。
云游戏运行时,通常由服务器负责图像绘制,绘制完成后,将绘制好的图像帧发送给用户设备,用户设备接收到绘制好的图像帧后,解码图像帧,然后显示图像画面。其中,Trace端可以捕获每一帧图形界面的绘制操作,并录制图形绘制渲染指令,产生图形指令数据,并将所述图形指令数据放入处理队列中;需要发送帧数据时,可以从所述处理队列中获取当前帧的图形指令数据。
120、判断所述当前帧是否符合关键帧设定条件。
本发明实施例中,预先建立关键帧策略,根据该关键帧策略判断当前帧是否符合关键帧设定条件,以决定是否更新关键帧。可选的,如果当前帧是第一帧是第一帧,则可以直接记录为关键帧;如果当前帧不是第一帧,则可以计算当前帧与已记录的关键帧的差异度,根据所述差异度是否超出阈值范围判断所述当前帧是否符合关键帧设定条件。
其中,所说的差异度可以是指当前帧与已记录的关键帧的图形指令数据的大小的比值。具体的,当差异度超出阈值范围时,则认为两帧差异较大,则判断为符合关键帧设定条件;当差异度落入阈值范围时,则认为两帧差异较小,判断为不符合关键帧设定条件。举例来说,阈值范围可以设定为(0.3,2.0)。
130、若不符合,将所述当前帧与已记录的关键帧的图形指令数据进行对比,获得差异数据;对所述差异数据进行压缩,将压缩后的差异数据发送给用户设备。
当步骤120判断结果为不符合时,不更新关键帧,使用已记录的关键帧,获取当前帧与已记录的关键帧的差异数据,仅将该差异数据进行压缩后发送给用户设备,而不必发送当前帧的全部数据。
进一步的,所述方法还可以包括:
若步骤120判断结果为符合,则进行关键帧更新,将所述当前帧记录为关键帧;对所述当前帧的图形指令数据进行压缩,将压缩后的图形指令数据发送给所述用户设备,以便所述用户设备生成当前帧的图形界面。
当步骤120判断结果为符合时,说明两帧差异较大,如果继续使用原来已记录的关键帧,得到的差异数据也较大,不能较好的起到减少传输流量的效果,于是,需要进行关键帧更新,使用当前帧替换已记录的关键帧。并且,对于该当前帧,不再计算差异数据,而是直接将当前帧的图形指令数据进行压缩后发送给用户设备。可选的,服务器可以在当前帧的数据中插入特殊的标识,用来表示该当前帧为关键帧,以便用户设备识别。
需要说明的是,进行数据压缩时,可以采用zlib的DEFLATE压缩算法,当然,也可以采用其它压缩算法,本文对此不予限定。
在用户设备侧,所述方法可以包括:
210、所述用户设备接收所述服务器发送的当前帧的压缩数据并解压缩。
服务器按帧发送压缩数据给用户设备,用户设备按帧接收压缩数据,对于接收到的当前帧的压缩数据,用户设备首先进行解压缩。
220、识别所述当前帧是否为关键帧。
用户设备首先需要对当前帧的解压缩数据进行识别,以判断当前帧是否为关键帧。一些实施例中,可以通过识别当前帧的解压缩数据中特殊的标识,来判断当前帧是否为关键帧。
230、若否,则获取已记录的关键帧,确定所述当前帧的解压缩数据是与所述关键帧的差异数据。可选的,若步骤220的识别结果为是,则确定所述当前帧的解压缩数据是所述当前帧的图形指令数据;进行关键帧更新,将所述当前帧记录为关键帧。
用户设备接收到的当前帧的解压缩数据,可能是原始的图形指令数据,也可能是原始的图形指令数据与已记录的关键帧的差异数据。在当前帧为关键帧时,结果为前者,则用户设备需要进行关键帧更新,将本地记录的关键帧更新为当前帧;在当前帧不是关键帧时,接收到的差异数据。
240、根据所述当前帧的解压缩数据和所述关键帧,还原所述当前帧的图形指令数据。
如果当前帧接收到的是差异数据,用户设备可以利用关键帧和该差异数据还原出当前帧原始的图形指令数据。
得到当前帧的图形指令数据后,进一步的,所述方法还可以包括:回放所述当前帧的图形指令数据,生成所述当前帧的图形界面。
由上可见,在本发明的一些可行的实施方式中,可以在云游戏运行时,获取当前帧与关键帧的图形指令数据的差异数据,并进行压缩,将压缩数据作为当前帧的待发送数据,由于差异数据的大小远小于原始的图形指令数据,因此,可以有效减少当前帧的数据传输量,降低对带宽的要求,有助于实现Trace端和Retrace端的高效流畅通信,保障图像图面的流畅度。
为便于更好的理解本发明实施例提供的技术方案,下面通过一个具体场景下的实施方式为例进行介绍。
请参考图5和图6,本发明实施例的一种图形指令数据的处理方法,包括压缩流程及解压缩流程,分别应用于服务器侧的Trace端,以及用户设备侧的Retrace端,具体可以包括:
一、预先建立关键帧策略。
本步骤中建立关键帧策略,以确定关键帧。服务器向用户设备发送云游戏的图像帧数据时,确定把哪一帧数据设定为关键帧是重要的,由于后面的每帧数据是根据关键帧数据来求差异数据,希望得到的差异数据尽可能小,那么关键帧就必须具有更好的代表性,关键帧策略用于找到最有代表性的一帧作为关键帧。
请参考图5,Trace端建立关键帧策略的具体过程可包括:
关键帧策略可以包括:
501、判断当前帧NewFrameData是否为第一帧(或者说起始帧);
502、如果是第一帧,则认为符合关键帧设定条件,可直接设定为关键帧,记录为KeyFrameData,并且,可以在当前帧数据中添加特殊的标识进行标记,记录关键帧KeyFrameData的大小keyFrameSize;
503、如果不是第一帧,计算当前帧原始的图形指令数据NewFrameData的大小newFrameSize;
504、计算newFrameSize与关键帧的图形指令数据的大小keyFrameSize的比值,将该比值记为差异比率DiffScale,该比值表示两帧的差异度;
505、设定差异度区间(ScaleMin,ScaleMax),判断差异比率DiffScale值是否在此区间;如果差异比率DiffScale值在此区间,则认为不符合关键帧设定条件,不需要更新关键帧;如果差异比率DiffScale值没在此区间,则认为当前帧符合关键帧设定条件,需要进行更新关键帧,于是可以将当前帧NewFrameData记录为新的关键帧,替换原来的关键帧。可选的,差异度区间(ScaleMin,ScaleMax)设定在(0.3,2.0)可取得较好的效果。
二、图形指令数据的压缩流程。
如图6所示,Trace端图形指令数据的处理方法,具体流程可以包括:
S1、获取当前帧的图形指令数据。
云游戏运行时,Trace端捕获每帧图形画面的绘制操作,并录制图形绘制渲染指令,产生该帧的图形指令数据。
S2、根据上文所述的关键帧策略,判断当前帧是否符合关键帧设定条件;若不符合,说明不需要更新关键帧,则进入步骤S3;若符合,说明需要使用当前帧更新关键帧,则进入步骤S4。
S3、计算当前帧与关键帧的差异数据。
将当前帧的图形指令数据与关键帧的图形指令数据进行对比,找出其中的差异数据,并记录差异数据。由于相近几帧的数据差异一般较小,所以差异数据比起原始的图形指令数据将会小很多,可以极大的降低网络传送的数据量。
计算数据帧与关键帧的差异数据,可以简单的帧数据块差值或者异或值;但是,因为图形指令数据的每帧都在变化,相同的一个图形指令数据也经常发生在帧数据块中的前移或后移,为了取得更好的效果,本发明一些实例中,提供一种数据差异对比算法,能够找出帧数据中前移或后移的指令数据。
采用该数据差异对比算法计算帧间差异数据的流程可以包括:
a、将关键帧的图形指令数据(简称关键帧数据)看作一个长度m的字符数组KeyFrameData[m],当前帧的图形指令数据(简称当前帧数据)看作一个长度n的字符串数组NewFrameData[n];
b、对NewFrameData[n],设定k取值从0到n-1,对每一个k值,取出NewFrameData[k到n-1]的这段数据,在KeyFrameData[m]中遍历查找此段数据,则必存在前t个字符完全相同,即NewFrameData[k到k+t]段数据能在KeyFrameData[m]中找到;找出最大的一个t为最佳匹配长度,记录最佳匹配长度在KeyFrameData中的位置;
c、设定一个相同长度的阀值T,只有当t大于该阀值T时,才寻找最佳匹配长度,并将所有最佳匹配长度的数据和偏移位置记录下来,作为与关键帧的差异数据;小于阀值t的数据可直接拷贝到差异数据尾部;
至此,计算得到当前帧与关键帧的差异数据。
需要说明的是,在接收端,可以根据差异数据中的最佳匹配长度的数据和其在KeyFrameData中的偏移位置,还原出原始的关键帧数据NewFrameData。
S4、更新关键帧。
在当前帧符合关键帧设定条件时,本步骤中使用当前帧更新关键帧,将已记录的关键帧替换为当前帧,即,将当前帧记录为新的关键帧。进一步的,Trace端可以为关键帧数据加入特殊信号(Flag)标识,以表示该帧为关键帧。
S5、确定待压缩数据。
在当前帧不是关键帧时,确定计算得到的差异数据为待压缩数据。
在当前帧被记录为新的关键帧时,确定当前帧为待压缩数据。
S6、对待压缩数据进行压缩并发送。
本步骤中,对当前帧与关键帧的差异数据或当前帧本身,进行压缩,将得到的压缩数据作为当前帧的待发送数据,并向Retrace端发送该压缩数据。一些实施例中,可以使用zlib的DEFLATE压缩算法或其它算法对待压缩数据进行压缩,尽可能减少需要传送的数据量。
三、图形指令数据的解压缩流程。
请继续参考图6,Retrace端图形指令数据的处理方法,具体过程可包括:
S7、接收Trace端发来的当前帧的压缩数据,并解压缩;
S8、判断解压缩得到的数据,是否是关键帧数据,抑或是当前帧和关键帧的差异数据。Trace端的关键帧策略决定哪一帧作为关键帧,我们可以通过解析解压后的数据寻找其中是否包括特殊Flag标识,通过判断该标识位可以识别是否为关键帧。
S9、如果确定当前帧是关键帧,则记录或更新关键帧,如果已记录有关键帧,则进行关键帧替换,将当前帧数据记录为新的关键帧。
S10、如果确定当前帧不是关键帧,解压缩得到的数据是与关键帧的差异数据,则,获取已记录的关键帧。
S11、则根据当前帧的差异数据和所述关键帧,还原当前帧的原始数据,原始数据是指原始的图形指令数据。
通过回放指令数据,得到绘制的云游戏的图形界面。
结束。
四、建立图形指令数据的处理队列。
云游戏对实时性要求较高,需要此过程保证足够的流畅度,才能有更好的云游戏体验;对执行图形指令数据进行帧间差异数据分析和压缩是相对耗时的过程,因此可以建立图形指令数据的处理队列,当捕获到原始的图形指令数据后先放入处理队列中,等待差异分析和压缩发送,以避免出现图形界面卡顿等影响游戏效果的问题。
Trace端的主线程,用于捕获每帧图形画面的绘制操作,并录制图形绘制渲染指令,产生该帧的图形指令数据,并将图形指令数据处理队列。由于差异数据分析和压缩是耗时的一个过程,在主线程执行将影响录制图形指令时游戏的流畅度,优选的,可以创建差异数据分析和压缩线程,将数据差异分析计算和压缩放入此线程单独处理。通过独立线程处理差异数据分析和压缩,将不会影响主线程的运行速度。此线程可将差异分析和压缩的结果直接传递给后台网络发送线程来发送,也可以放入待发送队列中等待后台网络发送线程发送,以获得更好的流畅度。
由上可见,在主线程中,录制原始渲染指令得到图形指令数据并放入图形指令数据的处理队列中;差异分析和压缩线程从处理队列中取出图形指令数据,进行差异数据分析和应用压缩算法,结果直接发送或放入待发送队列等待后台网络发送线程发送。
请参考图7,是本发明实施例技术方案的图形指令处理时序。应用本发明技术方案后,云游戏系统运行周期的活动时序,将在云游戏、图形指令帧数据、帧间差异数据和压缩/解压数据之间按照次序进行。
由上可见,本发明实施例提供了一种图形指令数据的处理方法,通过采用关键帧策略,可以取得以下有益效果:
1、极大压缩数据大小,并显著减少网络传输流量,降低对带宽的要求;
如图8所示,以某款游戏为例,对比原始的图形指令数据、关键帧和差异数据、压缩后数据大小分布。可以看出,差异数据比起原始的图形指令数据已经极大的减少了,压缩数据后进一步减少。压缩后一帧的均值数据为12kbyte左右,比起原始数据的500kbyte以上已经有极大的减少效果了。
2、显著降低数据流量峰值,减少网络数据收发时间,使得游戏运行更平稳,流畅度更佳。
3、本发明技术方案除了应用于云游戏外,还可用于其他将图形渲染放在服务器端,客户端接收渲染指令形式的应用,如从服务器端接收渲染数据的场景漫游类程序、从云端服务器接收画面的虚拟现实(VR)设备等。
为了更好的实施本发明实施例的上述方案,下面还提供用于配合实施上述方案的相关装置。
请参考图9,本发明实施例提供一种图形指令数据的处理装置300,应用于云交互系统的服务器,所述云交互系统包括所述服务器和用户设备;所述装置300可包括:
获取模块310,用于获取当前帧的图形指令数据;
判断模块320,用于判断所述当前帧是否符合关键帧设定条件;
比较模块330,用于若所述判断模块判断不符合,将所述当前帧与已记录的关键帧的图形指令数据进行对比,获得差异数据;
压缩模块340,用于对所述差异数据进行压缩;
发送模块350,用于将压缩后的差异数据发送给所述用户设备,以便所述用户设备根据记录的关键帧和所述差异数据还原所述当前帧的图形指令数据,生成当前帧的图形界面。
在一些实施例中,所述装置300还包括:
更新模块360,用于若所述判断模块判断符合,则进行关键帧更新,将所述当前帧记录为关键帧;
所述压缩模块340,还用于对所述当前帧的图形指令数据进行压缩;
所述发送模块350,还用于将压缩后的图形指令数据发送给所述用户设备,以便所述用户设备生成当前帧的图形界面。
在一些实施例中,所述判断模块320包括:
计算单元,用于计算所述当前帧与已记录的关键帧的差异度;
判断单元,用于根据所述差异度是否超出阈值范围判断所述当前帧是否符合关键帧设定条件。
在一些实施例中,所述装置300还包括:
数据处理模块370,用于捕获每一帧图形界面的绘制操作,产生图形指令数据,并将所述图形指令数据放入处理队列中;
所述获取模块310,具体用于从所述处理队列中获取当前帧的图形指令数据。
可以理解,本发明实施例装置的各个功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可参照上述方法实施例中的相关描述,此处不再赘述。本发明实施例装置可以是服务器。
由上可见,在本发明的一些可行的实施方式中,获取当前帧与关键帧的图形指令数据的差异数据,并进行压缩,将压缩数据作为当前帧的待发送数据,由于差异数据的大小远小于原始的图形指令数据,因此,可以有效减少数据传输量,降低对带宽的要求,有助于实现服务器和用户设备的高效流畅通信,保障图像图面的流畅度。
请参考图10,本发明实施例还提供一种图形指令数据的处理装置400,应用于云交互系统的用户设备,所述云交互系统包括服务器和所述用户设备;所述装置400可包括:
接收模块410,用于接收所述服务器发送的当前帧的压缩数据并解压缩;
识别模块420,用于识别所述当前帧是否为关键帧;
确定模块430,用于若所述识别模块识别结果为否,则获取已记录的关键帧,确定所述当前帧的解压缩数据是与所述关键帧的差异数据;
还原模块440,用于根据所述当前帧的解压缩数据和所述关键帧,还原所述当前帧的图形指令数据。
在一些实施例中,所述装置400还包括:
更新模块450,用于若所述识别模块识别为是,则确定所述当前帧的解压缩数据是所述当前帧的图形指令数据;进行关键帧更新,将所述当前帧记录为关键帧。
在一些实施例中,所述装置400还包括:
回放模块460,用于回放所述当前帧的图形指令数据,生成所述当前帧的图形界面。
可以理解,本发明实施例装置的各个功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可参照上述方法实施例中的相关描述,此处不再赘述。本发明实施例装置可以是用户设备。
由上可见,在本发明的一些可行的实施方式中,获取当前帧与关键帧的图形指令数据的差异数据,并进行压缩,将压缩数据作为当前帧的待发送数据,由于差异数据的大小远小于原始的图形指令数据,因此,可以有效减少数据传输量,降低对带宽的要求,有助于实现服务器和用户设备的高效流畅通信,保障图像图面的流畅度。
本发明实施例还提供一种云交互系统,如图3所示,所述云交互系统包括服务器和用户设备,其中,
所述服务器,用于获取当前帧的图形指令数据,判断所述当前帧是否符合关键帧设定条件,若不符合,将所述当前帧与已记录的关键帧的图形指令数据进行对比,获得差异数据,对所述差异数据进行压缩,将压缩后的差异数据发送给所述用户设备;
所述用户设备,用于接收所述服务器发送的所述当前帧的压缩数据并解压缩,识别所述当前帧是否为关键帧;若否,则获取已记录的关键帧,确定所述当前帧的解压缩数据是与所述关键帧的差异数据,根据所述当前帧的解压缩数据和所述关键帧,还原所述当前帧的图形指令数据,根据所述当前帧的图形指令数据生成当前帧的图形界面。
在一些实施例中,
所述服务器,还用于判断所述当前帧不符合关键帧设定条件时,进行关键帧更新,将所述当前帧记录为关键帧,对所述当前帧的图形指令数据进行压缩,将压缩后的图形指令数据发送给所述用户设备;
所述用户设备,还用于识别所述当前帧为关键帧时,进行关键帧更新,将所述当前帧记录为关键帧。
由上可见,在本发明的一些可行的实施方式中,服务器和用户设备之间传输的数据可以不再全部是原始的图形指令数据,而是利用与关键帧的差异数据代替,因此,可以有效减少数据传输量,降低对带宽的要求,有助于实现服务器和用户设备的高效流畅通信,保障图像图面的流畅度。
本发明实施例还提供一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序当被包括一个或多个处理器的服务器执行时使所述服务器执行如上文方法实施所述的图形指令数据的处理方法的步骤110~130。
本发明实施例还提供另一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序当被包括一个或多个处理器的用户设备执行时使所述服务器执行如上文方法实施所述的图形指令数据的处理方法的步骤210~240。
请参考图11,本发明实施例还提供一种服务器500,可包括:
处理器510,存储器520,通信接口530,总线540;所述处理器510,存储器520,通信接口530通过所述总线540相互的通信;所述通信接口530,用于接收和发送数据;所述存储器520用于存储程序550;所述处理器510用于执行所述存储器中的所述程序。当所述服务器500运行时,所述处理器510执行所述存储器520存储的所述程序550,以使所述服务器500执行如上文方法实施例所述的图形指令数据的处理方法的步骤110~130。
请参考图12,本发明实施例还提供一种用户设备600,可包括:
处理器610,存储器620,通信接口630,总线640;所述处理器610,存储器620,通信接口630通过所述总线640相互的通信;所述通信接口630,用于接收和发送数据;所述存储器620用于存储程序650;所述处理器610用于执行所述存储器中的所述程序650。当所述用户设备600运行时,所述处理器610执行所述存储器620存储的所述程序650,以使所述用户设备600执行如上文方法实施例所述的图形指令数据的处理方法的步骤210~240。
其中,处理器610可用于获取当前帧的图形指令数据;判断所述当前帧是否符合关键帧设定条件;若不符合,将所述当前帧与已记录的关键帧的图形指令数据进行对比,获得差异数据;对所述差异数据进行压缩;
通信接口630可用于将压缩后的差异数据发送给所述用户设备,以便所述用户设备根据记录的关键帧和所述差异数据还原所述当前帧的图形指令数据,生成当前帧的图形界面。
其中,所述总线可以是工业标准体系结构(Industry Standard Architecture,简称为ISA)总线或外部设备互连(Peripheral Component,简称为PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,简称为EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线中的一种或多种。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
所述存储器可以包含高速RAM(Ramdom Access Memory)存储器。可选地,所述存储器还可以还包括非易失性存储器(non-volatile memory)。例如所述存储器可以包括磁盘存储器。
所述处理器可以是一个中央处理器(Central Processing Unit,简称为CPU),或者所述处理器可以是特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者所述处理器可以是被配置成实施本发明实施例的一个或多个集成电路。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其它实施例的相关描述。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
以上对本发明实施例所提供的图形指令数据的处理方法和装置及系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (12)

1.一种图形指令数据的处理方法,其特征在于,所述方法应用于云交互系统,所述云交互系统包括服务器和用户设备,所述方法包括:
所述服务器获取当前帧的图形指令数据;
判断所述当前帧是否符合关键帧设定条件;
若不符合,将所述当前帧与已记录的关键帧的图形指令数据进行对比,获得差异数据;
对所述差异数据进行压缩,将压缩后的差异数据发送给所述用户设备,以便所述用户设备根据记录的关键帧和所述差异数据还原所述当前帧的图形指令数据,生成当前帧的图形界面;
所述判断所述当前帧是否符合关键帧设定条件之后,还包括:
若符合,则进行关键帧更新,将所述当前帧记录为关键帧;
对所述当前帧的图形指令数据进行压缩,将压缩后的图形指令数据发送给所述用户设备,以便所述用户设备生成当前帧的图形界面;
关键帧的图形指令数据为长度m的字符数组,当前帧的图形指令数据为长度n的字符串数组,所述将所述当前帧与已记录的关键帧的图形指令数据进行对比,获得差异数据,包括:
从所述当前帧的图形指令数据中取出[k到n-1]的第一段数据,在所述关键帧的图形指令数据中遍历查找所述第一段数据,直至所述当前帧中[k到k+t]段数据在所述关键帧中找到,k取值从0到n-1;
当t大于阀值T时,找出最大的t为最佳匹配长度,记录所述当前帧中最佳匹配长度的数据在所述关键帧中的偏移位置,将所有最佳匹配长度的数据和偏移位置作为与关键帧的差异数据;将当前帧中小于阀值T的数据拷贝到所述差异数据尾部,以得到所述当前帧与所述关键帧的差异数据。
2.根据权利要求1所述的方法,其特征在于,所述判断所述当前帧是否符合关键帧设定条件包括:
计算所述当前帧与已记录的关键帧的差异度,根据所述差异度是否超出阈值范围判断所述当前帧是否符合关键帧设定条件。
3.根据权利要求1或2所述的方法,其特征在于,还包括:
捕获每一帧图形界面的绘制操作,产生图形指令数据,并将所述图形指令数据放入处理队列中;
所述获取当前帧的图形指令数据包括:
从所述处理队列中获取当前帧的图形指令数据。
4.一种图形指令数据的处理方法,其特征在于,所述方法应用于云交互系统,所述云交互系统包括服务器和用户设备,所述方法包括:
所述用户设备接收所述服务器发送的当前帧的压缩数据并解压缩;
识别所述当前帧是否为关键帧;
若否,则获取已记录的关键帧,确定所述当前帧的解压缩数据是与所述关键帧的差异数据;
根据所述当前帧的解压缩数据和所述关键帧,还原所述当前帧的图形指令数据;
所述识别所述当前帧是否为关键帧之后,还包括:
若是,则确定所述当前帧的解压缩数据是所述当前帧的图形指令数据;
进行关键帧更新,将所述当前帧记录为关键帧;
若否,则根据差异数据中的最佳匹配长度的数据和其在所述关键帧中的偏移位置,还原出原始的关键帧数据。
5.根据权利要求4所述的方法,其特征在于,还包括:
回放所述当前帧的图形指令数据,生成所述当前帧的图形界面。
6.一种图形指令数据的处理方法,其特征在于,所述方法应用于云交互系统,所述云交互系统包括服务器和用户设备,所述方法包括:
所述服务器获取当前帧的图形指令数据,判断所述当前帧是否符合关键帧设定条件,若不符合,将所述当前帧与已记录的关键帧的图形指令数据进行对比,获得差异数据,对所述差异数据进行压缩,将压缩后的差异数据发送给所述用户设备;
所述用户设备接收所述服务器发送的所述当前帧的压缩数据并解压缩,识别所述当前帧是否为关键帧;若否,则获取已记录的关键帧,确定所述当前帧的解压缩数据是与所述关键帧的差异数据,根据所述当前帧的解压缩数据和所述关键帧,还原所述当前帧的图形指令数据,根据所述当前帧的图形指令数据生成当前帧的图形界面;
还包括:
所述服务器判断所述当前帧符合关键帧设定条件时,进行关键帧更新,将所述当前帧记录为关键帧,对所述当前帧的图形指令数据进行压缩,将压缩后的图形指令数据发送给所述用户设备;
所述用户设备识别所述当前帧为关键帧时,进行关键帧更新,将所述当前帧记录为关键帧;
关键帧的图形指令数据为长度m的字符数组,当前帧的图形指令数据为长度n的字符串数组,所述将所述当前帧与已记录的关键帧的图形指令数据进行对比,获得差异数据,包括:
所述服务器从所述当前帧的图形指令数据中取出[k到n-1]的第一段数据,在所述关键帧的图形指令数据中遍历查找所述第一段数据,直至所述当前帧中[k到k+t]段数据在所述关键帧中找到,k取值从0到n-1;当t大于阀值T时,找出最大的t为最佳匹配长度,记录所述当前帧中最佳匹配长度的数据在所述关键帧中的偏移位置,将所有最佳匹配长度的数据和偏移位置作为与关键帧的差异数据;将所述当前帧中小于阀值T的数据拷贝到所述差异数据尾部,以得到所述当前帧与所述关键帧的差异数据;
所述用户设备根据差异数据中的最佳匹配长度的数据和其在所述关键帧中的偏移位置,还原出原始的关键帧数据。
7.一种图形指令数据的处理装置,其特征在于,所述装置应用于云交互系统的服务器,所述云交互系统包括所述服务器和用户设备;
所述装置包括:
获取模块,用于获取当前帧的图形指令数据;
判断模块,用于判断所述当前帧是否符合关键帧设定条件;
比较模块,用于若所述判断模块判断不符合,将所述当前帧与已记录的关键帧的图形指令数据进行对比,获得差异数据;
压缩模块,用于对所述差异数据进行压缩;
发送模块,用于将压缩后的差异数据发送给所述用户设备,以便所述用户设备根据记录的关键帧和所述差异数据还原所述当前帧的图形指令数据,生成当前帧的图形界面;
还包括:
更新模块,用于若所述判断模块判断符合,则进行关键帧更新,将所述当前帧记录为关键帧;
所述压缩模块,还用于对所述当前帧的图形指令数据进行压缩;
所述发送模块,还用于将压缩后的图形指令数据发送给所述用户设备,以便所述用户设备生成当前帧的图形界面;
关键帧的图形指令数据为长度m的字符数组,当前帧的图形指令数据为长度n的字符串数组,所述处理装置用于:
从所述当前帧的图形指令数据中取出[k到n-1]的第一段数据,在所述关键帧的图形指令数据中遍历查找所述第一段数据,直至所述当前帧中[k到k+t]段数据在所述关键帧中找到,k取值从0到n-1;
当t大于阀值T时,找出最大的t为最佳匹配长度,记录所述当前帧中最佳匹配长度的数据在所述关键帧中的偏移位置,将所有最佳匹配长度的数据和偏移位置作为与关键帧的差异数据;将所述当前帧中小于阀值T的数据拷贝到所述差异数据尾部,以得到所述当前帧与所述关键帧的差异数据。
8.根据权利要求7所述的装置,其特征在于,所述判断模块包括:
计算单元,用于计算所述当前帧与已记录的关键帧的差异度;
判断单元,用于根据所述差异度是否超出阈值范围判断所述当前帧是否符合关键帧设定条件。
9.根据权利要求7或8所述的装置,其特征在于,还包括:
数据处理模块,用于捕获每一帧图形界面的绘制操作,产生图形指令数据,并将所述图形指令数据放入处理队列中;
所述获取模块,具体用于从所述处理队列中获取当前帧的图形指令数据。
10.一种图形指令数据的处理装置,其特征在于,所述装置应用于云交互系统的用户设备,所述云交互系统包括服务器和所述用户设备;
所述装置包括:
接收模块,用于接收所述服务器发送的当前帧的压缩数据并解压缩;
识别模块,用于识别所述当前帧是否为关键帧;
确定模块,用于若所述识别模块识别结果为否,则获取已记录的关键帧,确定所述当前帧的解压缩数据是与所述关键帧的差异数据;
还原模块,用于根据所述当前帧的解压缩数据和所述关键帧,还原所述当前帧的图形指令数据;
还包括:
更新模块,用于若所述识别模块识别为是,则确定所述当前帧的解压缩数据是所述当前帧的图形指令数据;进行关键帧更新,将所述当前帧记录为关键帧;
所述处理装置还用于根据差异数据中的最佳匹配长度的数据和其在所述关键帧中的偏移位置,还原出原始的关键帧数据。
11.根据权利要求10所述的装置,其特征在于,还包括:
回放模块,用于回放所述当前帧的图形指令数据,生成所述当前帧的图形界面。
12.一种云交互系统,其特征在于,所述云交互系统包括服务器和用户设备,其中,
所述服务器,用于获取当前帧的图形指令数据,判断所述当前帧是否符合关键帧设定条件,若不符合,将所述当前帧与已记录的关键帧的图形指令数据进行对比,获得差异数据,对所述差异数据进行压缩,将压缩后的差异数据发送给所述用户设备;
所述用户设备,用于接收所述服务器发送的所述当前帧的压缩数据并解压缩,识别所述当前帧是否为关键帧;若否,则获取已记录的关键帧,确定所述当前帧的解压缩数据是与所述关键帧的差异数据,根据所述当前帧的解压缩数据和所述关键帧,还原所述当前帧的图形指令数据,根据所述当前帧的图形指令数据生成当前帧的图形界面;
所述服务器,还用于判断所述当前帧符合关键帧设定条件时,进行关键帧更新,将所述当前帧记录为关键帧,对所述当前帧的图形指令数据进行压缩,将压缩后的图形指令数据发送给所述用户设备;
所述用户设备,还用于识别所述当前帧为关键帧时,进行关键帧更新,将所述当前帧记录为关键帧;
关键帧的图形指令数据为长度m的字符数组,当前帧的图形指令数据为长度n的字符串数组,所述服务器具体用于:
从所述当前帧的图形指令数据中取出[k到n-1]的第一段数据,在所述关键帧的图形指令数据中遍历查找所述第一段数据,直至所述当前帧中[k到k+t]段数据在所述关键帧中找到,k取值从0到n-1;当t大于阀值T时,找出最大的t为最佳匹配长度,记录所述当前帧中最佳匹配长度的数据在所述关键帧中的偏移位置,将所有最佳匹配长度的数据和偏移位置作为与关键帧的差异数据;将所述当前帧中小于阀值T的数据拷贝到所述差异数据尾部,以得到所述当前帧与所述关键帧的差异数据;
所述用户设备具体用于:
根据差异数据中的最佳匹配长度的数据和其在所述关键帧中的偏移位置,还原出原始的关键帧数据。
CN201610067797.6A 2016-01-29 2016-01-29 图形指令数据的处理方法和装置及系统 Active CN105760238B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201610067797.6A CN105760238B (zh) 2016-01-29 2016-01-29 图形指令数据的处理方法和装置及系统
PCT/CN2017/072538 WO2017129118A1 (zh) 2016-01-29 2017-01-25 图形指令数据的处理方法和装置及系统
EP17743733.2A EP3410302B1 (en) 2016-01-29 2017-01-25 Graphic instruction data processing method, apparatus
US15/926,547 US10645391B2 (en) 2016-01-29 2018-03-20 Graphical instruction data processing method and apparatus, and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610067797.6A CN105760238B (zh) 2016-01-29 2016-01-29 图形指令数据的处理方法和装置及系统

Publications (2)

Publication Number Publication Date
CN105760238A CN105760238A (zh) 2016-07-13
CN105760238B true CN105760238B (zh) 2018-10-19

Family

ID=56342844

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610067797.6A Active CN105760238B (zh) 2016-01-29 2016-01-29 图形指令数据的处理方法和装置及系统

Country Status (4)

Country Link
US (1) US10645391B2 (zh)
EP (1) EP3410302B1 (zh)
CN (1) CN105760238B (zh)
WO (1) WO2017129118A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105760238B (zh) 2016-01-29 2018-10-19 腾讯科技(深圳)有限公司 图形指令数据的处理方法和装置及系统
CN107977272A (zh) * 2016-10-25 2018-05-01 腾讯科技(深圳)有限公司 应用运行的方法及装置
US11100041B2 (en) * 2018-03-09 2021-08-24 Microsoft Technology Licensing, Llc Techniques for tracking independent hardware graphics processing unit (GPU) performance
CN108769715B (zh) * 2018-05-22 2022-05-13 深圳市腾讯网络信息技术有限公司 图形指令数据的处理方法及装置
CN110737669A (zh) * 2019-10-18 2020-01-31 北京百度网讯科技有限公司 数据存储方法、装置、设备及存储介质
CN113055729B (zh) * 2019-12-27 2024-05-28 中兴通讯股份有限公司 一种云化机顶盒图像差分处理方法及装置
CN113559506B (zh) * 2021-09-24 2022-01-25 深圳易帆互动科技有限公司 一种帧同步的自动化测试方法、装置及可读存储介质

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5828370A (en) * 1996-07-01 1998-10-27 Thompson Consumer Electronics Inc. Video delivery system and method for displaying indexing slider bar on the subscriber video screen
JP3788677B2 (ja) * 1997-11-14 2006-06-21 富士通株式会社 連続録画システム及び方法並びに長時間録画プログラムを記録したコンピュータ読み取り可能な記録媒体
JPH11298890A (ja) * 1998-04-13 1999-10-29 Hitachi Ltd 画像データの圧縮又は伸張方法とその装置、並びに、それを用いた画像伝送システム及び監視システム
US7158681B2 (en) * 1998-10-01 2007-01-02 Cirrus Logic, Inc. Feedback scheme for video compression system
US7571244B2 (en) * 2000-07-15 2009-08-04 Filippo Costanzo Audio-video data switching and viewing system
US20020104094A1 (en) * 2000-12-01 2002-08-01 Bruce Alexander System and method for processing video data utilizing motion detection and subdivided video fields
AU2003208477A1 (en) * 2002-03-01 2003-09-16 T5 Labs Ltd Centralised interactive graphical application server
US7039247B2 (en) * 2003-01-31 2006-05-02 Sony Corporation Graphic codec for network transmission
US7539393B2 (en) * 2003-12-05 2009-05-26 Microsoft Corporation Method and system for reverse playback of compressed data
US20110157196A1 (en) * 2005-08-16 2011-06-30 Exent Technologies, Ltd. Remote gaming features
US8948260B2 (en) * 2005-10-17 2015-02-03 Qualcomm Incorporated Adaptive GOP structure in video streaming
US8692837B1 (en) * 2006-09-21 2014-04-08 Nvidia Corporation Screen compression for mobile applications
CN100514992C (zh) * 2007-03-30 2009-07-15 中国联合网络通信集团有限公司 一种移动终端帧动画的处理方法
US8106909B2 (en) * 2007-10-13 2012-01-31 Microsoft Corporation Common key frame caching for a remote user interface
JP4978575B2 (ja) * 2008-06-25 2012-07-18 富士通株式会社 シンクライアントシステムにおける画像符号化方法及び画像符号化プログラム
US8473628B2 (en) * 2008-08-29 2013-06-25 Adobe Systems Incorporated Dynamically altering playlists
US8639086B2 (en) * 2009-01-06 2014-01-28 Adobe Systems Incorporated Rendering of video based on overlaying of bitmapped images
US8619198B1 (en) * 2009-04-28 2013-12-31 Lucasfilm Entertainment Company Ltd. Adjusting frame rates for video applications
US9049271B1 (en) * 2009-07-16 2015-06-02 Teradici Corporation Switch-initiated congestion management method
US8321905B1 (en) * 2009-10-02 2012-11-27 Adobe Systems Incorporated Fast switching of media streams
US8451906B1 (en) * 2011-02-25 2013-05-28 Adobe Systems Incorporated Reconstructing efficiently encoded video frames in a distributed video coding environment
US8908775B1 (en) * 2011-03-30 2014-12-09 Amazon Technologies, Inc. Techniques for video data encoding
CN103688240B (zh) * 2011-05-20 2016-11-09 梦芯片技术股份有限公司 用于发送数字场景描述数据的方法以及发送器和接收器场景处理设备
US8872895B2 (en) * 2011-09-30 2014-10-28 Deutsche Telekom Ag Real-time video coding using graphics rendering contexts
CN102566910B (zh) * 2011-12-14 2015-02-04 广州杰赛科技股份有限公司 刷新虚拟桌面客户端屏显的方法及虚拟桌面系统
KR101335711B1 (ko) * 2012-01-20 2013-12-04 연세대학교 산학협력단 서버, 연산 처리 방법 및 연산 처리 시스템
KR20140013652A (ko) * 2012-07-26 2014-02-05 삼성전자주식회사 시스템 온 칩 및 이를 포함하는 전자 기기
WO2014065844A1 (en) * 2012-10-26 2014-05-01 Sheng Yang A cloud-based system for flash content streaming
JP5411385B1 (ja) * 2013-08-12 2014-02-12 株式会社 ディー・エヌ・エー ゲームを提供するサーバ及び方法
CN103440612B (zh) * 2013-08-27 2016-12-28 华为技术有限公司 一种gpu虚拟化中图像处理方法和装置
US10491916B2 (en) * 2013-10-01 2019-11-26 Advanced Micro Devices, Inc. Exploiting camera depth information for video encoding
US9271048B2 (en) * 2013-12-13 2016-02-23 The Directv Group, Inc. Systems and methods for immersive viewing experience
US9679348B2 (en) * 2014-05-15 2017-06-13 Disney Enterprises, Inc. Storage and compression methods for animated images
JP2017529716A (ja) * 2014-07-30 2017-10-05 エントリクス カンパニー、リミテッド クラウドストリーミングサービスシステム、スチールイメージ圧縮技法を利用したクラウドストリーミングサービス方法及びそのための装置
US9436876B1 (en) * 2014-12-19 2016-09-06 Amazon Technologies, Inc. Video segmentation techniques
US9583144B2 (en) * 2015-02-24 2017-02-28 Plaay, Llc System and method for creating a sports video
US10244234B2 (en) * 2015-11-20 2019-03-26 Ellation, Inc. Adaptive compression rate control
CN105760238B (zh) * 2016-01-29 2018-10-19 腾讯科技(深圳)有限公司 图形指令数据的处理方法和装置及系统

Also Published As

Publication number Publication date
WO2017129118A1 (zh) 2017-08-03
EP3410302B1 (en) 2023-08-09
US20180213232A1 (en) 2018-07-26
EP3410302A4 (en) 2020-03-25
EP3410302C0 (en) 2023-08-09
US10645391B2 (en) 2020-05-05
EP3410302A1 (en) 2018-12-05
CN105760238A (zh) 2016-07-13

Similar Documents

Publication Publication Date Title
CN105760238B (zh) 图形指令数据的处理方法和装置及系统
CN103650001B (zh) 动画分发服务器、动画播放装置、及控制方法
CN103329526B (zh) 运动图像分配服务器和控制方法
CN109847366B (zh) 用于游戏的数据处理方法和装置
JP6379107B2 (ja) 情報処理装置並びにその制御方法、及びプログラム
CN111346378B (zh) 游戏画面传输方法、装置、存储介质和设备
CN103383644A (zh) 基于服务器的图形处理技术
CN115100334B (zh) 一种图像描边、图像动漫化方法、设备及存储介质
CN113069761B (zh) 游戏场景中虚拟角色的显示方法、装置及电子设备
WO2024124670A1 (zh) 视频播放方法、装置、计算机设备及计算机可读存储介质
CN110719415B (zh) 一种视频图像处理方法、装置、电子设备及计算机可读介质
CN116866661A (zh) 一种视频预渲染方法、装置、设备及存储介质
JP2016527576A (ja) 情報処理装置、制御方法、プログラム及び記録媒体
CN108345492A (zh) 一种虚拟化环境中的数据通信的方法、装置及处理器
Sun Research on latency problems and solutions in cloud game
CN115829824A (zh) 用于优化机器学习推断的图形处理的系统和方法
CN106492460B (zh) 一种数据的压缩方法和设备
US12039670B2 (en) Strand simulation in multiple levels
CN114897709A (zh) 视频处理方法、装置以及计算机可读存储介质
WO2014123127A1 (en) Image processing apparatus, method of controlling the same, program and storage medium
Depasquale et al. An analytical method of assessment of RemoteFX as a cloud gaming platform
CN114205668B (zh) 视频播放方法、装置、电子设备及计算机可读介质
CN106250077A (zh) 一种应用关联的内容界面呈现方法、装置及其电子设备
CN113542620B (zh) 一种特效处理方法、装置及电子设备
WO2024124664A1 (zh) 视频处理方法、装置、计算机设备及计算机可读存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant