CN104618733A - 图像远程投射方法和相关装置 - Google Patents

图像远程投射方法和相关装置 Download PDF

Info

Publication number
CN104618733A
CN104618733A CN201410606094.7A CN201410606094A CN104618733A CN 104618733 A CN104618733 A CN 104618733A CN 201410606094 A CN201410606094 A CN 201410606094A CN 104618733 A CN104618733 A CN 104618733A
Authority
CN
China
Prior art keywords
render instruction
server
rendering
client
rendering resources
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.)
Pending
Application number
CN201410606094.7A
Other languages
English (en)
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 CN201410606094.7A priority Critical patent/CN104618733A/zh
Publication of CN104618733A publication Critical patent/CN104618733A/zh
Priority to PCT/CN2015/092613 priority patent/WO2016066056A1/zh
Priority to US15/391,318 priority patent/US20170109113A1/en
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23418Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • G06T15/205Image-based rendering
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44008Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics in the video stream
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1454Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/16Indexing scheme for image data processing or generation, in general involving adaptation to the client's capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/08Bandwidth reduction
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2350/00Solving problems of bandwidth in display systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Geometry (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本发明实施例公开了图像远程投射方法和相关装置。其中,一种图像远程投射方法包括:服务器获取所述服务器的本地应用所调用的N条渲染指令;所述服务器确定执行所述N条渲染指令所需使用的渲染资源;所述服务器根据所述本地应用执行所述N条渲染指令的执行顺序生成渲染序列,所述服务器向客户端发送所述渲染序列和用于确定所述渲染资源的渲染资源确定信息,所述N为正整数,所述渲染序列包括用于确定所述N条渲染指令的渲染指令确定信息。本发明实施例的方案有利于减小图像远程投射对网络带宽的占用,提高用户体验。

Description

图像远程投射方法和相关装置
技术领域
本发明涉及图像处理技术领域,具体涉及图像远程投射方法和相关装置。
背景技术
图像远程投射技术是利用位于远端的客户端显示服务器期望显示或正在显示的相关图像,以便于位于远端的用户能够通过该客户端来观看服务器期望显示或正在显示的相关图像。
例如云业务(例如云游戏或基于云的特效制作等)等场景,经常需要在位于远端的客户端上显示相关图像(如游戏图像或特效图像等),以便于位于远端的用户能够通过位于远端的客户端来观看相关图像。又例如某个用户利用手机中的某个特效制作应用制作了一段特效视频图像,但该用户希望在位于远端的电脑或智能电视上显示这段特效视频图像,以便于自己或者他人通过电脑或智能电视来更好检验这段特效视频图像的质量,在此场景下,上述手机亦可看成服务器(即远程投射端),上述电脑或智能电视亦可看成客户端(即被远程投射端)。
本发明的发明人在研究和实践过程中发现,现有图像远程投射技术中的服务器将生成的图像(例如游戏图像或特效图像)压缩得到压缩图像,将压缩图像发送给远端的客户端进行展示,然而图像画质越好则得到的压缩图像的体积通常也就越大,尤其一些三维特效图像,其体积可能更大。由此可见现有图像远程投射技术对网络带宽需求较大(例如现有技术将分辨率为1080P的视频图像进行远程投射一般至少需6兆/比特的带宽),并且当带宽波动时很可能使用户体验受到较大影响。
发明内容
本发明实施例提供图像远程投射方法和相关装置,以期减小图像远程投射对网络带宽的占用,提高用户体验。
本发明实施例的第一方面提供一种图像远程投射方法,包括:
服务器获取所述服务器的本地应用所调用的N条渲染指令;
所述服务器确定执行所述N条渲染指令所需使用的渲染资源;
所述服务器根据所述本地应用执行所述N条渲染指令的执行顺序生成渲染序列,所述服务器向客户端发送所述渲染序列和用于确定所述渲染资源的渲染资源确定信息,其中,所述N为正整数,所述渲染序列包括用于确定所述N条渲染指令的渲染指令确定信息。
本发明实施例第二方面提供另一种图像远程投射方法,可包括:
客户端接收服务器发送的渲染序列和渲染资源确定信息,其中,所述渲染序列包括用于确定所述服务器的本地应用所调用的N条渲染指令的渲染指令确定信息,所述渲染资源确定信息用于确定执行所述N条渲染指令所需使用的渲染资源,所述N为正整数;
所述客户端执行基于所述渲染序列而确定出的N条渲染指令并使用基于所述渲染资源确定信息而确定出的渲染资源以得到渲染图像。
本发明实施例第三方面提供一种服务器,包括:
获取单元,用于获取所述服务器的本地应用所调用的N条渲染指令;
确定单元,用于确定执行所述N条渲染指令所需使用的渲染资源;
生成单元,用于根据所述本地应用执行所述N条渲染指令的执行顺序生成渲染序列,
发送单元,用于向客户端发送所述渲染序列和用于确定所述渲染资源的渲染资源确定信息,其中,所述N为正整数,所述渲染序列包括用于确定所述N条渲染指令的渲染指令确定信息。
本发明实施例第四方面提供一种客户端,包括:
接收单元,用于接收服务器发送的渲染序列和渲染资源确定信息,所述渲染序列包括用于确定所述服务器的本地应用所调用的N条渲染指令的渲染指令确定信息,所述渲染资源确定信息用于确定执行所述N条渲染指令所需使用的渲染资源,所述N为正整数;
处理单元,用于执行基于所述渲染序列而确定出的N条渲染指令并使用基于所述渲染资源确定信息而确定出的渲染资源以得到渲染图像。
可以看出,本发明实施例提供的方案中,服务器获取所述服务器的本地应用所调用的N条渲染指令和执行所述N条渲染指令所需使用的渲染资源;向客户端发送包括用于确定所述N条渲染指令的渲染指令确定信息的渲染序列和用于确定所述渲染资源的渲染资源确定信息。其中,由于服务器并不是按照传统方式直接向客户端发送渲染图像,而是向客户端发送包括用于确定所述N条渲染指令的渲染指令确定信息的渲染序列和用于确定所述渲染资源的渲染资源确定信息,其中,渲染序列和渲染资源确定信息的体积通常远远小于渲染图像本身,因此上述图像远程投射方案对网络带宽的占用极小,进而使得抗网络抖动能力得到增强,进而有利于提高用户体验。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种图像远程投射方法的流程示意图;
图2是本发明实施例提供的另一种图像远程投射方法的流程示意图;
图3-a是本发明实施例提供的一种通信***的架构示意图;
图3-b是本发明实施例提供的另一种图像远程投射方法的流程示意图;
图4是本发明实施例提供的另一种图像远程投射方法的流程示意图;
图5是本发明实施例提供的一种服务器的示意图;
图6是本发明实施例提供的另一种服务器的示意图;
图7是本发明实施例提供的一种客户端的示意图;
图8是本发明实施例提供的另一种客户端的示意图。
具体实施方式
本发明实施例提供图像远程投射方法和相关装置,以期减少图像远程投射对网络带宽的占用,提高用户体验。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
以下分别进行详细说明。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、***、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
下面首先从服务器的角度进行方案描述。
本发明图像远程投射方法的一个实施例。其中,一种图像远程投射方法可包括:服务器获取所述服务器的本地应用所调用的N条渲染指令;所述服务器确定执行所述N条渲染指令所需使用的渲染资源;所述服务器根据所述本地应用执行所述N条渲染指令的执行顺序生成渲染序列,所述服务器向客户端发送所述渲染序列和用于确定所述渲染资源的渲染资源确定信息,其中,所述N为正整数,其中,所述渲染序列包括用于确定所述N条渲染指令的渲染指令确定信息。
参见图1,图1为本发明的一个实施例提供的一种图像远程投射方法的流程示意图。其中,如图1所示,本发明的一个实施例提供的一种图像远程投射方法可以包括:
101、服务器获取所述服务器的本地应用所调用的N条渲染指令。
其中,所述N为正整数,例如所述N等于1、2、3、4、6、21、55或其他值。其中,上述本地应用可以是运行于所述服务器中的任何可调用渲染指令的应用。
本发明实施例中的渲染指令例如可以使二维渲染指令、三维渲染指令或其他类型的渲染指令。
102、所述服务器确定执行所述N条渲染指令所需使用的渲染资源。
其中,所述渲染资源例如可包括纹理数据、顶点数据和/或着色器等渲染资源等。
103、所述服务器根据所述本地应用执行所述N条渲染指令的执行顺序生成渲染序列。其中,所述渲染序列包括用于确定所述N条渲染指令的渲染指令确定信息。
其中,由于所述服务器是根据所述本地应用(app)执行所述N条渲染指令的执行顺序生成渲染序列,因此,上述渲染序列能够指示出所述N条渲染指令的执行顺序,客户端亦可根据渲染序列确定所述N条渲染指令的执行顺序。
104、所述服务器向客户端发送所述渲染序列和用于确定所述渲染资源的渲染资源确定信息。
其中,所述服务器可向客户端发送经过压缩的所述渲染序列和/或经过压缩的用于确定所述渲染资源的渲染资源确定信息。或者,所述服务器可向客户端发送未经过压缩的所述渲染序列和/或未经过压缩的用于确定所述渲染资源的渲染资源确定信息。
可以看出,本实施例提供的技术方案中,服务器获取所述服务器的本地应用所调用的N条渲染指令和执行所述N条渲染指令所需使用的渲染资源;向客户端发送包括用于确定所述N条渲染指令的渲染指令确定信息的渲染序列和用于确定所述渲染资源的渲染资源确定信息。其中,由于服务器并不是按照传统方式直接向客户端发送渲染图像,而是向客户端发送包括用于确定所述N条渲染指令的渲染指令确定信息的渲染序列和用于确定所述渲染资源的渲染资源确定信息,其中,渲染序列和渲染资源确定信息的体积通常远远小于渲染图像本身,因此上述图像远程投射方案对网络带宽的占用极小,进而使得抗网络抖动能力得到增强,进而有利于提高用户体验。
进一步的,由于可将由服务器执行的图像渲染操作迁移到客户端,进而有利于更充分利用客户端的处理资源,降低服务器的处理负荷,进而有利于使得服务器同时支持更多客户端。
进一步,有利于实现服务器和客户端的多屏同步显示。例如可将手机运行的游戏投射到盒子电视(或其他屏幕),实现将***几乎无成本移植为电视游戏。
其中,上述服务器例如可为游戏服务器、云业务服务器或者其他类型的服务器。
可选的,在本发明的一些可能的实施方式中,所述获取所述服务器的本地应用所调用的N条渲染指令可包括:通过调用虚拟图像驱动获取所述服务器的本地应用所调用的N条渲染指令。其中,由于本地应用通常是利用虚拟图像驱动来调用渲染指令,因此,通过操作虚拟图像驱动,可以实现服务器内不实际执行渲染指令。
可选的,在本发明的一些可能的实施方式中,所述获取所述服务器的本地应用所调用的N条渲染指令包括:通过调用动态植入到所述服务器的本地应用中的指令获取所述服务器的本地应用所调用的N条渲染指令。
可选的,在本发明的一些可能的实施方式中,
所述方法还可包括:所述服务器接收所述客户端发送的所述客户端的硬件所支持的图像渲染特性。其中,所述获取所述服务器的本地应用所调用的N条渲染指令,可包括:获取所述服务器的本地应用基于所述客户端的硬件所支持的图像渲染特性所调用的N条渲染指令。
其中,当所述服务器的本地应用是基于所述客户端的硬件所支持的图像渲染特性(如Caps特性)所调用的N条渲染指令,这就在一定程度上实现了在服务器中模拟客户端的硬件环境,进而有利于使得所述服务器的本地应用调用的渲染指令可更好的匹配客户端,进而有利于使得客户端据此获得相对更好的渲染效果。
当然,如果所述服务器的硬件所支持的图像渲染特性与所述客户端的硬件所支持的图像渲染特性相同或类似,则所述客户端亦可不向服务器发送的所述客户端的硬件所支持的图像渲染特性,所述服务器亦可获取所述服务器的本地应用基于所述服务器的硬件所支持的图像渲染特性调用的N条渲染指令。
可选的,在本发明的一些可能的实施方式中,所述用于确定所述N条渲染指令的渲染指令确定信息可包括:所述N条渲染指令或者所述N条渲染指令的索引标识。可以理解,基于所述N条渲染指令的索引标识(例如渲染指令地址或渲染指令名称等)可确定所述N条渲染指令。
可选的,在本发明一些可能的实施方式中,所述用于确定所述渲染资源的渲染资源确定信息可包括:所述渲染资源或者所述渲染资源的索引标识。可以理解,基于所述渲染资源的索引标识(例如渲染资源地址或渲染资源名称等等)可确定所述渲染资源。
下面从客户端的角度进行方案描述。
本发明图像远程投射方法的一个实施例。其中,一种图像远程投射方法可包括:客户端接收服务器发送的渲染序列和渲染资源确定信息,其中,所述渲染序列包括用于确定所述服务器的本地应用所调用的N条渲染指令的渲染指令确定信息,所述渲染资源确定信息用于确定执行所述N条渲染指令所需使用的渲染资源,所述N为正整数;所述客户端执行基于所述渲染序列而确定出的N条渲染指令并使用基于所述渲染资源确定信息而确定出的渲染资源以得到渲染图像。
参见图2,图2为本发明的另一个实施例提供的另一种图像远程投射方法的流程示意图。如图2所示,本发明的另一个实施例提供的另一种图像远程投射方法可以包括:
201、客户端接收服务器发送的渲染序列和渲染资源确定信息。
其中,所述渲染序列包括用于确定所述服务器的本地应用所调用的N条渲染指令的渲染指令确定信息。所述渲染资源确定信息用于确定执行所述N条渲染指令所需使用的渲染资源。所述N为正整数。
其中,所述N为正整数,例如所述N等于1、2、3、4、6、21、55或其他值。其中,上述本地应用可以是运行于所述服务器中的任何可调用渲染指令的应用。
本发明实施例中的渲染指令例如可以使二维渲染指令、三维渲染指令或其他类型的渲染指令。
其中,所述渲染资源例如可包括纹理数据、顶点数据和/或着色器等渲染资源等。
其中,所述渲染序列例如可由所述服务器根据所述本地应用执行所述N条渲染指令的执行顺序生成。当所述服务器是根据所述本地应用执行所述N条渲染指令的执行顺序生成渲染序列的情况下,上述渲染序列能够指示出所述N条渲染指令的执行顺序,客户端亦可根据渲染序列确定所述N条渲染指令的执行顺序。
其中,所述服务器可向客户端发送经过压缩的所述渲染序列和/或经过压缩的用于确定所述渲染资源的渲染资源确定信息。或者,所述服务器可向客户端发送未经过压缩的所述渲染序列和/或未经过压缩的用于确定所述渲染资源的渲染资源确定信息。
相应的,客户端接收服务器发送的经过压缩或未经过压缩的渲染序列和经过压缩或未经过压缩的渲染资源确定信息。
202、所述客户端执行基于所述渲染序列而确定出的N条渲染指令并使用基于所述渲染资源确定信息而确定出的渲染资源以得到渲染图像。
所述客户端还可显示所述渲染图像。
可选的,在本发明的一些可能的实施方式中,服务器可通过调用虚拟图像驱动获取所述服务器的本地应用所调用的N条渲染指令。其中,由于本地应用通常是利用虚拟图像驱动来调用渲染指令,因此通过操作虚拟图像驱动可以实现服务器内不实际执行渲染指令。
可选的,在本发明的一些可能的实施方式中,服务器可通过调用动态植入到所述服务器的本地应用中的指令获取所述服务器的本地应用所调用的N条渲染指令。
可选的,在本发明的一些可能的实施方式中,
所述方法还包括:所述客户端向所述服务器发送所述客户端的硬件所支持的图像渲染特性。
相应的,所述服务器的本地应用可基于所述客户端的硬件所支持的图像渲染特性调用的N条渲染指令。所述服务器可获取所述服务器的本地应用基于所述客户端的硬件所支持的图像渲染特性所调用的N条渲染指令。
其中,当所述服务器的本地应用是基于所述客户端的硬件所支持的图像渲染特性(如Caps特性)所调用的N条渲染指令,这就在一定程度上实现了在服务器中模拟客户端的硬件环境,进而有利于使得所述服务器的本地应用调用的渲染指令可更好的匹配客户端,进而有利于使得客户端据此获得相对更好的渲染效果。
当然,如果所述服务器的硬件所支持的图像渲染特性与所述客户端的硬件所支持的图像渲染特性相同或类似,则所述客户端亦可不向服务器发送的所述客户端的硬件所支持的图像渲染特性,所述服务器亦可获取所述服务器的本地应用基于所述服务器的硬件所支持的图像渲染特性调用的N条渲染指令。
可选的,在本发明的一些可能的实施方式中,所述用于确定所述N条渲染指令的渲染指令确定信息可包括:所述N条渲染指令或者所述N条渲染指令的索引标识。可以理解,基于所述N条渲染指令的索引标识(例如渲染指令地址或渲染指令名称等)可确定所述N条渲染指令。
可选的,在本发明的一些可能的实施方式中,所述用于确定所述渲染资源的渲染资源确定信息可包括:所述渲染资源或者所述渲染资源的索引标识。可以理解,基于所述渲染资源的索引标识(例如渲染资源地址或渲染资源名称等)可确定所述渲染资源。
其中,上述服务器例如可为游戏服务器、云业务服务器或者其他类型的服务器。
可以看出,本实施例提供的技术方案中,客户端接收服务器发送的渲染序列和渲染资源确定信息,其中,所述渲染序列包括用于确定所述服务器的本地应用所调用的N条渲染指令的渲染指令确定信息,所述渲染资源确定信息用于确定执行所述N条渲染指令所需使用的渲染资源,所述客户端执行基于所述渲染序列而确定出的N条渲染指令并使用基于所述渲染资源确定信息而确定出的渲染资源以得到渲染图像。其中,由于服务器并不是按照传统方式直接向客户端发送渲染图像,而是向客户端发送包括用于确定所述N条渲染指令的渲染指令确定信息的渲染序列和用于确定所述渲染资源的渲染资源确定信息,渲染序列和渲染资源确定信息的体积通常远远小于渲染图像本身,因此上述图像远程投射方案对网络带宽的占用极小,进而使得抗网络抖动能力得到增强,进而有利于提高用户体验。
进一步的,由于可将由服务器执行的图像渲染操作迁移到客户端,进而有利于更充分利用客户端的处理资源,降低服务器的处理负荷,进而有利于使得服务器同时支持更多客户端。
进一步,有利于实现服务器和客户端的多屏同步显示。例如可将手机运行的游戏投射到盒子电视(或其他屏幕),实现将***几乎无成本移植为电视游戏。
为便于更好的理解和实施本发明实施例的上述技术方案,下面结合一些具体的应用场景进行进一步说明。
参见图3-a和图3-b,图3-b为本发明的另一个实施例提供的另一种图像远程投射方法的流程示意图。图3-b所示图像远程投射方法可基于图3-a所示网络架构具体实施。图3-b所示,本发明的另一个实施例提供的另一种图像远程投射方法可以包括:
301、客户端向服务器发送的所述客户端的硬件所支持的图像渲染特性。
其中,客户端可以主动向服务器发送的所述客户端的硬件所支持的图像渲染特性。或者,客户端也可基于服务器的请求向服务器发送的所述客户端的硬件所支持的图像渲染特性。
302、所述服务器接收所述客户端发送的所述客户端的硬件所支持的图像渲染特性。服务器获取所述服务器的本地应用基于所述客户端的硬件所支持的图像渲染特性所调用的N条渲染指令。
其中,所述N为正整数,例如所述N等于1、2、3、4、6、21、55或其他值。其中,上述本地应用可以是运行于所述服务器中的任何可调用渲染指令的应用。
本发明实施例中的渲染指令例如可以使二维渲染指令、三维渲染指令或其他类型的渲染指令。
其中,当所述服务器的本地应用是基于所述客户端的硬件所支持的图像渲染特性(如Caps特性)所调用的N条渲染指令,这就在一定程度上实现了在服务器中模拟客户端的硬件环境,进而有利于使得所述服务器的本地应用调用的渲染指令可更好的匹配客户端,进而有利于使得客户端据此获得相对更好的渲染效果。
可选的,在本发明的一些可能的实施方式中,服务器可通过调用虚拟图像驱动获取所述服务器的本地应用所调用的N条渲染指令。其中,由于本地应用通常是利用虚拟图像驱动来调用渲染指令,因此通过操作虚拟图像驱动可以实现服务器内不实际执行渲染指令。
可选的,在本发明的一些可能的实施方式中,服务器可通过调用动态植入到所述服务器的本地应用中的指令获取所述服务器的本地应用所调用的N条渲染指令。
303、所述服务器确定执行所述N条渲染指令所需使用的渲染资源。
其中,所述渲染资源例如可包括纹理数据、顶点数据和/或着色器等渲染资源等。
304、所述服务器根据所述本地应用执行所述N条渲染指令的执行顺序生成渲染序列。其中,所述渲染序列包括用于确定所述N条渲染指令的渲染指令确定信息。
其中,由于所述服务器是根据所述本地应用执行所述N条渲染指令的执行顺序生成渲染序列,因此,上述渲染序列能够指示出所述N条渲染指令的执行顺序,客户端亦可根据渲染序列确定所述N条渲染指令的执行顺序。
305、所述服务器向客户端发送所述渲染序列和用于确定所述渲染资源的渲染资源确定信息。
其中,所述服务器可向客户端发送经过压缩的所述渲染序列和/或经过压缩的用于确定所述渲染资源的渲染资源确定信息。或者,所述服务器可向客户端发送未经过压缩的所述渲染序列和/或未经过压缩的用于确定所述渲染资源的渲染资源确定信息。
306、客户端接收服务器发送的渲染序列和渲染资源确定信息,所述客户端执行基于所述渲染序列而确定出的N条渲染指令并使用基于所述渲染资源确定信息而确定出的渲染资源以得到渲染图像。
307、所述客户端显示所述渲染图像。
可以看出,本实施例提供的技术方案中,客户端接收服务器发送的渲染序列和渲染资源确定信息,其中,所述渲染序列包括用于确定所述服务器的本地应用所调用的N条渲染指令的渲染指令确定信息,所述渲染资源确定信息用于确定执行所述N条渲染指令所需使用的渲染资源,所述客户端执行基于所述渲染序列而确定出的N条渲染指令并使用基于所述渲染资源确定信息而确定出的渲染资源以得到渲染图像。其中,由于服务器并不是按照传统方式直接向客户端发送渲染图像,而是向客户端发送包括用于确定所述N条渲染指令的渲染指令确定信息的渲染序列和用于确定所述渲染资源的渲染资源确定信息,渲染序列和渲染资源确定信息的体积通常远远小于渲染图像本身,因此上述图像远程投射方案对网络带宽的占用极小,进而使得抗网络抖动能力得到增强,进而有利于提高用户体验。
进一步的,由于可将由服务器执行的图像渲染操作迁移到客户端,进而有利于更充分利用客户端的处理资源,降低服务器的处理负荷,进而有利于使得服务器同时支持更多客户端。
进一步,有利于实现服务器和客户端的多屏同步显示。例如可将手机运行的游戏投射到盒子电视(或其他屏幕),实现将***几乎无成本移植为电视游戏。
参见图4,图4为本发明的另一个实施例提供的另一种图像远程投射方法的流程示意图。如图4所示,本发明的另一个实施例提供的另一种图像远程投射方法可以包括:
401、服务器获取所述服务器的本地应用基于所述服务器的硬件所支持的图像渲染特性所调用的N条渲染指令。
其中,所述N为正整数,例如所述N等于1、2、3、4、6、21、55或其他值。其中,上述本地应用可以是运行于所述服务器中的任何可调用渲染指令的应用。
其中,所述服务器的硬件所支持的图像渲染特性与所述客户端的硬件所支持的图像渲染特性相同或类似。
本发明实施例中的渲染指令例如可以使二维渲染指令、三维渲染指令或其他类型的渲染指令。
可选的,在本发明的一些可能的实施方式中,服务器可通过调用虚拟图像驱动获取所述服务器的本地应用所调用的N条渲染指令。其中,由于本地应用通常是利用虚拟图像驱动来调用渲染指令,因此通过操作虚拟图像驱动可以实现服务器内不实际执行渲染指令。
可选的,在本发明的一些可能的实施方式中,服务器可通过调用动态植入到所述服务器的本地应用中的指令获取所述服务器的本地应用所调用的N条渲染指令。
402、所述服务器确定执行所述N条渲染指令所需使用的渲染资源。
其中,所述渲染资源例如可包括纹理数据、顶点数据和/或着色器等渲染资源等。
403、所述服务器根据所述本地应用执行所述N条渲染指令的执行顺序生成渲染序列。其中,所述渲染序列包括用于确定所述N条渲染指令的渲染指令确定信息。
其中,由于所述服务器是根据所述本地应用执行所述N条渲染指令的执行顺序生成渲染序列,因此,上述渲染序列能够指示出所述N条渲染指令的执行顺序,客户端亦可根据渲染序列确定所述N条渲染指令的执行顺序。
404、所述服务器向客户端发送所述渲染序列和用于确定所述渲染资源的渲染资源确定信息。
其中,所述服务器可向客户端发送经过压缩的所述渲染序列和/或经过压缩的用于确定所述渲染资源的渲染资源确定信息。或者,所述服务器可向客户端发送未经过压缩的所述渲染序列和/或未经过压缩的用于确定所述渲染资源的渲染资源确定信息。
405、客户端接收服务器发送的渲染序列和渲染资源确定信息,所述客户端执行基于所述渲染序列而确定出的N条渲染指令并使用基于所述渲染资源确定信息而确定出的渲染资源以得到渲染图像。
406、所述客户端显示所述渲染图像。
可以看出,本实施例提供的技术方案中,客户端接收服务器发送的渲染序列和渲染资源确定信息,其中,所述渲染序列包括用于确定所述服务器的本地应用所调用的N条渲染指令的渲染指令确定信息,所述渲染资源确定信息用于确定执行所述N条渲染指令所需使用的渲染资源,所述客户端执行基于所述渲染序列而确定出的N条渲染指令并使用基于所述渲染资源确定信息而确定出的渲染资源以得到渲染图像。其中,由于服务器并不是按照传统方式直接向客户端发送渲染图像,而是向客户端发送包括用于确定所述N条渲染指令的渲染指令确定信息的渲染序列和用于确定所述渲染资源的渲染资源确定信息,渲染序列和渲染资源确定信息的体积通常远远小于渲染图像本身,因此上述图像远程投射方案对网络带宽的占用极小,进而使得抗网络抖动能力得到增强,进而有利于提高用户体验。
测试发现,基于本发明方案服务器和客户端之间所需要带宽最大可为800K/b左右,平均300K/b左右,可满足目前绝大数用户带宽。
进一步的,由于可将由服务器执行的图像渲染操作迁移到客户端,进而有利于更充分利用客户端的处理资源,降低服务器的处理负荷,进而有利于使得服务器同时支持更多客户端。
进一步,有利于实现服务器和客户端的多屏同步显示。例如可将手机运行的游戏投射到盒子电视(或其他屏幕),实现将***几乎无成本移植为电视游戏。
下面还提供用于实施上述方案的相关装置。
参见图5,本发明实施例还提供一种服务器500,可包括:
获取单元510,用于获取所述服务器的本地应用所调用的N条渲染指令;
确定单元520,用于确定执行所述N条渲染指令所需使用的渲染资源;
生成单元530,用于根据所述本地应用执行所述N条渲染指令的执行顺序生成渲染序列。
发送单元540,用于向客户端发送所述渲染序列和用于确定所述渲染资源的渲染资源确定信息,其中,所述N为正整数,所述渲染序列包括用于确定所述N条渲染指令的渲染指令确定信息。
可选的,在本发明的一些可能的实施方式中,
所述获取单元510可具体用于:通过调用虚拟图像驱动获取所述服务器的本地应用所调用的N条渲染指令,或者,通过调用动态植入到所述服务器的本地应用中的指令获取所述服务器的本地应用所调用的N条渲染指令。
可选的,在本发明的一些可能的实施方式中,
所述服务器500还可包括:接收单元550,用于接收所述客户端发送的所述客户端的硬件所支持的图像渲染特性;
在所述获取所述服务器的本地应用所调用的N条渲染指令的方面,所述获取单元510可具体用于:获取所述服务器的本地应用基于所述客户端的硬件所支持的图像渲染特性所调用的N条渲染指令。
可选的,在本发明的一些可能的实施方式中,所述用于确定所述N条渲染指令的渲染指令确定信息包括:所述N条渲染指令或者所述N条渲染指令的索引标识。可以理解,基于所述N条渲染指令的索引标识(例如渲染指令地址或渲染指令名称等)可确定所述N条渲染指令。
可选的,在本发明的一些可能的实施方式中,所述用于确定所述渲染资源的渲染资源确定信息包括:所述渲染资源或者所述渲染资源的索引标识。可以理解,基于所述渲染资源的索引标识(例如渲染资源地址或渲染资源名称等等)可确定所述渲染资源。
其中,上述服务器500例如可为游戏服务器、云业务服务器或者其他类型的服务器。
可以理解的是,本实施例的服务器500的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
可以看出,本实施例提供的技术方案中,服务器500获取所述服务器的本地应用所调用的N条渲染指令和执行所述N条渲染指令所需使用的渲染资源;向客户端发送包括用于确定所述N条渲染指令的渲染指令确定信息的渲染序列和用于确定所述渲染资源的渲染资源确定信息。其中,由于服务器并不是按照传统方式直接向客户端发送渲染图像,而是向客户端发送包括用于确定所述N条渲染指令的渲染指令确定信息的渲染序列和用于确定所述渲染资源的渲染资源确定信息,其中,渲染序列和渲染资源确定信息的体积通常远远小于渲染图像本身,因此上述图像远程投射方案对网络带宽的占用极小,进而使得抗网络抖动能力得到增强,进而有利于提高用户体验。
进一步的,由于可将由服务器执行的图像渲染操作迁移到客户端,进而有利于更充分利用客户端的处理资源,降低服务器的处理负荷,进而有利于使得服务器同时支持更多客户端。
参见图6,图6是本发明另一实施例提供的服务器600的结构框图。服务器600可以包括:至少1个处理器601,存储器605和至少1个通信总线602。通信总线602用于实现这些组件之间的连接通信。其中,该服务器600可选的包含用户接口603,包括显示器(例如触摸屏、液晶显示器、全息成像(英文:Holographic)或者投影(英文:Projector)等)、点击设备(例如鼠标、轨迹球(英文:trackball)触感板或触摸屏等)、摄像头和/或拾音装置等。
其中,该服务器600还可包括至少1个网络接口604。
其中,存储器605可以包括只读存储器和随机存取存储器,并向处理器601提供指令和数据。其中,存储器605中的一部分还可以包括非易失性随机存取存储器。
在一些实施方式中,存储器605存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:
操作***6051,包含各种***程序,用于实现各种基础业务以及处理基于硬件的任务。
应用程序模块6052,包含各种应用程序,用于实现各种应用业务。
应用程序模块6052中包括但不限于发送单元550、获取单元510、确定单元520、生成单元530和/或发送单元540等。
在本发明实施例中,通过调用存储器605存储的程序或指令,处理器601获取所述服务器的本地应用所调用的N条渲染指令;确定执行所述N条渲染指令所需使用的渲染资源;根据所述本地应用执行所述N条渲染指令的执行顺序生成渲染序列,向客户端发送所述渲染序列和用于确定所述渲染资源的渲染资源确定信息,其中,所述N为正整数,其中,所述渲染序列包括用于确定所述N条渲染指令的渲染指令确定信息。
其中,所述N为正整数,例如所述N等于1、2、3、4、6、21、55或其他值。其中,上述本地应用可以是运行于所述服务器中的任何可调用渲染指令的应用。
本发明实施例中的渲染指令例如可以使二维渲染指令、三维渲染指令或其他类型的渲染指令。
其中,所述渲染资源例如可包括纹理数据、顶点数据和/或着色器等渲染资源等。
其中,处理器601可向客户端发送经过压缩的所述渲染序列和/或经过压缩的用于确定所述渲染资源的渲染资源确定信息。或者,处理器601可向客户端发送未经过压缩的所述渲染序列和/或未经过压缩的用于确定所述渲染资源的渲染资源确定信息。
可选的,在本发明的一些可能的实施方式中,处理器601可用于通过调用虚拟图像驱动获取所述服务器的本地应用所调用的N条渲染指令。其中,由于本地应用通常是利用虚拟图像驱动来调用渲染指令,因此,通过操作虚拟图像驱动,可以实现服务器内不实际执行渲染指令。
可选的,在本发明的一些可能的实施方式中,处理器601可用于通过调用动态植入到所述服务器的本地应用中的指令获取所述服务器的本地应用所调用的N条渲染指令。
可选的,在本发明的一些可能的实施方式中,处理器601可用于接收所述客户端发送的所述客户端的硬件所支持的图像渲染特性。其中,处理器601可用于获取所述服务器的本地应用基于所述客户端的硬件所支持的图像渲染特性所调用的N条渲染指令。
其中,当所述服务器的本地应用是基于所述客户端的硬件所支持的图像渲染特性(如Caps特性)所调用的N条渲染指令,这就在一定程度上实现了在服务器中模拟客户端的硬件环境,进而有利于使得所述服务器的本地应用调用的渲染指令可更好的匹配客户端,进而有利于使得客户端据此获得相对更好的渲染效果。
当然,如果所述服务器的硬件所支持的图像渲染特性与所述客户端的硬件所支持的图像渲染特性相同或类似,则所述客户端亦可不向服务器发送的所述客户端的硬件所支持的图像渲染特性,处理器601亦可获取所述服务器的本地应用基于所述服务器的硬件所支持的图像渲染特性调用的N条渲染指令。
可选的,在本发明的一些可能的实施方式中,所述用于确定所述N条渲染指令的渲染指令确定信息可包括:所述N条渲染指令或者所述N条渲染指令的索引标识。可以理解,基于所述N条渲染指令的索引标识(例如渲染指令地址或渲染指令名称等)可确定所述N条渲染指令。
可选的,在本发明一些可能的实施方式中,所述用于确定所述渲染资源的渲染资源确定信息可包括:所述渲染资源或者所述渲染资源的索引标识。可以理解,基于所述渲染资源的索引标识(例如渲染资源地址或渲染资源名称等等)可确定所述渲染资源。
其中,上述服务器600例如可为游戏服务器、云业务服务器或者其他类型的服务器。
可以理解的是,本实施例的服务器600的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
可以看出,本实施例的服务器600获取所述服务器的本地应用所调用的N条渲染指令和执行所述N条渲染指令所需使用的渲染资源;向客户端发送包括用于确定所述N条渲染指令的渲染指令确定信息的渲染序列和用于确定所述渲染资源的渲染资源确定信息。由于服务器并不是按照传统方式直接向客户端发送渲染图像,而是向客户端发送包括用于确定所述N条渲染指令的渲染指令确定信息的渲染序列和用于确定所述渲染资源的渲染资源确定信息,渲染序列和渲染资源确定信息的体积通常远远小于渲染图像本身,因此上述图像远程投射方案对网络带宽的占用极小,进而使得抗网络抖动能力得到增强,进而有利于提高用户体验。
进一步的,由于可将由服务器执行的图像渲染操作迁移到客户端,进而有利于更充分利用客户端的处理资源,降低服务器的处理负荷,进而有利于使得服务器同时支持更多客户端。
参见图7,本发明实施例提供一种客户端700,可包括:
接收单元710,用于接收服务器发送的渲染序列和渲染资源确定信息,所述渲染序列包括用于确定所述服务器的本地应用所调用的N条渲染指令的渲染指令确定信息,所述渲染资源确定信息用于确定执行所述N条渲染指令所需使用的渲染资源,所述N为正整数;
处理单元720,用于执行基于所述渲染序列而确定出的N条渲染指令并使用基于所述渲染资源确定信息而确定出的渲染资源以得到渲染图像。
可选的,在本发明的一些可能的实施方式中,
所述客户端700还包括:发送单元730,用于向所述服务器发送所述客户端的硬件所支持的图像渲染特性。
相应的,所述服务器的本地应用可基于所述客户端的硬件所支持的图像渲染特性调用的N条渲染指令。所述服务器可获取所述服务器的本地应用基于所述客户端的硬件所支持的图像渲染特性所调用的N条渲染指令。
其中,当所述服务器的本地应用是基于所述客户端的硬件所支持的图像渲染特性(如Caps特性)所调用的N条渲染指令,这就在一定程度上实现了在服务器中模拟客户端的硬件环境,进而有利于使得所述服务器的本地应用调用的渲染指令可更好的匹配客户端,进而有利于使得客户端据此获得相对更好的渲染效果。
其中,所述N为正整数,例如所述N等于1、2、3、4、6、21、55或其他值。其中,上述本地应用可以是运行于所述服务器中的任何可调用渲染指令的应用。
本发明实施例中的渲染指令例如可以使二维渲染指令、三维渲染指令或其他类型的渲染指令。
其中,所述渲染资源例如可包括纹理数据、顶点数据和/或着色器等渲染资源等。
其中,所述渲染序列例如可由所述服务器根据所述本地应用执行所述N条渲染指令的执行顺序生成。当所述服务器是根据所述本地应用执行所述N条渲染指令的执行顺序生成渲染序列的情况下,上述渲染序列能够指示出所述N条渲染指令的执行顺序,客户端亦可根据渲染序列确定所述N条渲染指令的执行顺序。
其中,所述服务器可向客户端发送经过压缩的所述渲染序列和/或经过压缩的用于确定所述渲染资源的渲染资源确定信息。或者,所述服务器可向客户端发送未经过压缩的所述渲染序列和/或未经过压缩的用于确定所述渲染资源的渲染资源确定信息。
相应的,接收单元710可接收服务器发送的经过压缩或未经过压缩的渲染序列和经过压缩或未经过压缩的渲染资源确定信息。
可选的,在本发明的一些可能的实施方式中,服务器可通过调用虚拟图像驱动获取所述服务器的本地应用所调用的N条渲染指令。其中,由于本地应用通常是利用虚拟图像驱动来调用渲染指令,因此通过操作虚拟图像驱动可以实现服务器内不实际执行渲染指令。
可选的,在本发明的一些可能的实施方式中,服务器可通过调用动态植入到所述服务器的本地应用中的指令获取所述服务器的本地应用所调用的N条渲染指令。
可选的,在本发明的一些可能的实施方式中,所述用于确定所述N条渲染指令的渲染指令确定信息可包括:所述N条渲染指令或者所述N条渲染指令的索引标识。可以理解,基于所述N条渲染指令的索引标识(例如渲染指令地址或渲染指令名称等)可确定所述N条渲染指令。
可选的,在本发明的一些可能的实施方式中,所述用于确定所述渲染资源的渲染资源确定信息可包括:所述渲染资源或者所述渲染资源的索引标识。可以理解,基于所述渲染资源的索引标识(例如渲染资源地址或渲染资源名称等)可确定所述渲染资源。
可选的,在本发明的一些可能的实施方式中,所述用于确定所述N条渲染指令的渲染指令确定信息可包括:所述N条渲染指令或者所述N条渲染指令的索引标识。可以理解,基于所述N条渲染指令的索引标识(例如渲染指令地址或渲染指令名称等)可确定所述N条渲染指令。
可选的,在本发明的一些可能的实施方式中,所述用于确定所述渲染资源的渲染资源确定信息可包括:所述渲染资源或者所述渲染资源的索引标识。可以理解,基于所述渲染资源的索引标识(例如渲染资源地址或渲染资源名称等)可确定所述渲染资源。
可以理解的是,本实施例的客户端700的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
可以看出,本实施例提供的技术方案中,客户端700接收服务器发送的渲染序列和渲染资源确定信息,其中,所述渲染序列包括用于确定所述服务器的本地应用所调用的N条渲染指令的渲染指令确定信息,所述渲染资源确定信息用于确定执行所述N条渲染指令所需使用的渲染资源,所述客户端执行基于所述渲染序列而确定出的N条渲染指令并使用基于所述渲染资源确定信息而确定出的渲染资源以得到渲染图像。其中,由于服务器并不是按照传统方式直接向客户端发送渲染图像,而是向客户端发送包括用于确定所述N条渲染指令的渲染指令确定信息的渲染序列和用于确定所述渲染资源的渲染资源确定信息,渲染序列和渲染资源确定信息的体积通常远远小于渲染图像本身,因此上述图像远程投射方案对网络带宽的占用极小,进而使得抗网络抖动能力得到增强,进而有利于提高用户体验。
进一步的,由于可将由服务器执行的图像渲染操作迁移到客户端,进而有利于更充分利用客户端的处理资源,降低服务器的处理负荷,进而有利于使得服务器同时支持更多客户端。
参见图8,图8是本发明另一实施例提供的客户端800的结构框图。客户端800可以包括:至少1个处理器801,存储器805和至少1个通信总线802。通信总线802用于实现这些组件之间的连接通信。其中,该客户端800可选的包含用户接口803,包括显示器(例如触摸屏、液晶显示器、全息成像(英文:Holographic)或者投影(英文:Projector)等)、点击设备(例如鼠标、轨迹球(英文:trackball)触感板或触摸屏等)、摄像头和/或拾音装置等。
其中,该客户端800还可包括至少1个网络接口804。
其中,存储器805可以包括只读存储器和随机存取存储器,并向处理器801提供指令和数据。其中,存储器805中的一部分还可以包括非易失性随机存取存储器。
在一些实施方式中,存储器805存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:
操作***8051,包含各种***程序,用于实现各种基础业务以及处理基于硬件的任务。
应用程序模块8052,包含各种应用程序,用于实现各种应用业务。
应用程序模块8052中包括但不限于发送单元730、接收单元710和/或处理单元720等。
在本发明实施例中,通过调用存储器805存储的程序或指令,处理器801接收服务器发送的渲染序列和渲染资源确定信息,所述渲染序列包括用于确定所述服务器的本地应用所调用的N条渲染指令的渲染指令确定信息,所述渲染资源确定信息用于确定执行所述N条渲染指令所需使用的渲染资源,所述N为正整数;执行基于所述渲染序列而确定出的N条渲染指令并使用基于所述渲染资源确定信息而确定出的渲染资源以得到渲染图像。
其中,所述N为正整数,例如所述N等于1、2、3、4、6、21、55或其他值。其中,上述本地应用可以是运行于所述服务器中的任何可调用渲染指令的应用。
本发明实施例中的渲染指令例如可以使二维渲染指令、三维渲染指令或其他类型的渲染指令。
其中,所述渲染资源例如可包括纹理数据、顶点数据和/或着色器等渲染资源等。
其中,所述渲染序列例如可由所述服务器根据所述本地应用执行所述N条渲染指令的执行顺序生成。当所述服务器是根据所述本地应用执行所述N条渲染指令的执行顺序生成渲染序列的情况下,上述渲染序列能够指示出所述N条渲染指令的执行顺序,客户端亦可根据渲染序列确定所述N条渲染指令的执行顺序。
其中,所述服务器可向客户端发送经过压缩的所述渲染序列和/或经过压缩的用于确定所述渲染资源的渲染资源确定信息。或者,所述服务器可向客户端发送未经过压缩的所述渲染序列和/或未经过压缩的用于确定所述渲染资源的渲染资源确定信息。
相应的,处理器801接收服务器发送的经过压缩或未经过压缩的渲染序列和经过压缩或未经过压缩的渲染资源确定信息。
可选的,在本发明的一些可能的实施方式中,服务器可通过调用虚拟图像驱动获取所述服务器的本地应用所调用的N条渲染指令。其中,由于本地应用通常是利用虚拟图像驱动来调用渲染指令,因此通过操作虚拟图像驱动可以实现服务器内不实际执行渲染指令。
可选的,在本发明的一些可能的实施方式中,服务器可通过调用动态植入到所述服务器的本地应用中的指令获取所述服务器的本地应用所调用的N条渲染指令。
可选的,在本发明的一些可能的实施方式中,
处理器801还用于向所述服务器发送所述客户端的硬件所支持的图像渲染特性。
相应的,所述服务器的本地应用可基于所述客户端的硬件所支持的图像渲染特性调用的N条渲染指令。所述服务器可获取所述服务器的本地应用基于所述客户端的硬件所支持的图像渲染特性所调用的N条渲染指令。
其中,当所述服务器的本地应用是基于所述客户端的硬件所支持的图像渲染特性(如Caps特性)所调用的N条渲染指令,这就在一定程度上实现了在服务器中模拟客户端的硬件环境,进而有利于使得所述服务器的本地应用调用的渲染指令可更好的匹配客户端,进而有利于使得客户端据此获得相对更好的渲染效果。
可选的,在本发明的一些可能的实施方式中,所述用于确定所述N条渲染指令的渲染指令确定信息可包括:所述N条渲染指令或者所述N条渲染指令的索引标识。可以理解,基于所述N条渲染指令的索引标识(例如渲染指令地址或渲染指令名称等)可确定所述N条渲染指令。
可选的,在本发明的一些可能的实施方式中,所述用于确定所述渲染资源的渲染资源确定信息可包括:所述渲染资源或者所述渲染资源的索引标识。可以理解,基于所述渲染资源的索引标识(例如渲染资源地址或渲染资源名称等)可确定所述渲染资源。
可以理解的是,本实施例的客户端800的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
可以看出,本实施例提供的技术方案中,客户端800接收服务器发送的渲染序列和渲染资源确定信息,其中,所述渲染序列包括用于确定所述服务器的本地应用所调用的N条渲染指令的渲染指令确定信息,所述渲染资源确定信息用于确定执行所述N条渲染指令所需使用的渲染资源,所述客户端执行基于所述渲染序列而确定出的N条渲染指令并使用基于所述渲染资源确定信息而确定出的渲染资源以得到渲染图像。其中,由于服务器并不是按照传统方式直接向客户端发送渲染图像,而是向客户端发送包括用于确定所述N条渲染指令的渲染指令确定信息的渲染序列和用于确定所述渲染资源的渲染资源确定信息,渲染序列和渲染资源确定信息的体积通常远远小于渲染图像本身,因此上述图像远程投射方案对网络带宽的占用极小,进而使得抗网络抖动能力得到增强,进而有利于提高用户体验。
进一步的,由于可将由服务器执行的图像渲染操作迁移到客户端,进而有利于更充分利用客户端的处理资源,降低服务器的处理负荷,进而有利于使得服务器同时支持更多客户端。
本发明实施例还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时包括上述方法实施例中记载的任何一种图像远程投射方法的部分或全部步骤。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (14)

1.一种图像远程投射方法,其特征在于,包括:
服务器获取所述服务器的本地应用所调用的N条渲染指令;
所述服务器确定执行所述N条渲染指令所需使用的渲染资源;
所述服务器根据所述本地应用执行所述N条渲染指令的执行顺序生成渲染序列,所述服务器向客户端发送所述渲染序列和用于确定所述渲染资源的渲染资源确定信息,其中,所述N为正整数,所述渲染序列包括用于确定所述N条渲染指令的渲染指令确定信息。
2.根据权利要求1所述的方法,其特征在于,所述获取所述服务器的本地应用所调用的N条渲染指令包括:通过调用虚拟图像驱动获取所述服务器的本地应用所调用的N条渲染指令。
3.根据权利要求1所述的方法,其特征在于,所述获取所述服务器的本地应用所调用的N条渲染指令包括:通过调用动态植入到所述服务器的本地应用中的指令获取所述服务器的本地应用所调用的N条渲染指令。
4.根据权利要求1至3任一项所述的方法,其特征在于,
所述方法还包括:
所述服务器接收所述客户端发送的所述客户端的硬件所支持的图像渲染特性;
所述获取所述服务器的本地应用所调用的N条渲染指令包括:获取所述服务器的本地应用基于所述客户端的硬件所支持的图像渲染特性所调用的N条渲染指令。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述用于确定所述N条渲染指令的渲染指令确定信息包括:所述N条渲染指令或者所述N条渲染指令的索引标识。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述用于确定所述渲染资源的渲染资源确定信息包括:所述渲染资源或者所述渲染资源的索引标识。
7.一种图像远程投射方法,其特征在于,包括:
客户端接收服务器发送的渲染序列和渲染资源确定信息,其中,所述渲染序列包括用于确定所述服务器的本地应用所调用的N条渲染指令的渲染指令确定信息,所述渲染资源确定信息用于确定执行所述N条渲染指令所需使用的渲染资源,所述N为正整数;
所述客户端执行基于所述渲染序列而确定出的N条渲染指令并使用基于所述渲染资源确定信息而确定出的渲染资源以得到渲染图像。
8.根据权利要求7所述的方法,其特征在于,
所述方法还包括:所述客户端向所述服务器发送所述客户端的硬件所支持的图像渲染特性。
9.一种服务器,其特征在于,包括:
获取单元,用于获取所述服务器的本地应用所调用的N条渲染指令;
确定单元,用于确定执行所述N条渲染指令所需使用的渲染资源;
生成单元,用于根据所述本地应用执行所述N条渲染指令的执行顺序生成渲染序列,
发送单元,用于向客户端发送所述渲染序列和用于确定所述渲染资源的渲染资源确定信息,其中,所述N为正整数,所述渲染序列包括用于确定所述N条渲染指令的渲染指令确定信息。
10.根据权利要求9所述的服务器,其特征在于,
所述获取单元具体用于:通过调用虚拟图像驱动获取所述服务器的本地应用所调用的N条渲染指令,或者,通过调用动态植入到所述服务器的本地应用中的指令获取所述服务器的本地应用所调用的N条渲染指令。
11.根据权利要求9至10任一项所述的服务器,其特征在于,
所述服务器还包括:接收单元,用于接收所述客户端发送的所述客户端的硬件所支持的图像渲染特性;
在所述获取所述服务器的本地应用所调用的N条渲染指令的方面,所述获取单元具体用于:获取所述服务器的本地应用基于所述客户端的硬件所支持的图像渲染特性所调用的N条渲染指令。
12.根据权利要求9至11任一项所述的服务器,其特征在于,所述用于确定所述N条渲染指令的渲染指令确定信息包括:所述N条渲染指令或者所述N条渲染指令的索引标识,和/或,所述用于确定所述渲染资源的渲染资源确定信息包括:所述渲染资源或者所述渲染资源的索引标识。
13.一种客户端,其特征在于,包括:
接收单元,用于接收服务器发送的渲染序列和渲染资源确定信息,所述渲染序列包括用于确定所述服务器的本地应用所调用的N条渲染指令的渲染指令确定信息,所述渲染资源确定信息用于确定执行所述N条渲染指令所需使用的渲染资源,所述N为正整数;
处理单元,用于执行基于所述渲染序列而确定出的N条渲染指令并使用基于所述渲染资源确定信息而确定出的渲染资源以得到渲染图像。
14.根据权利要求13所述的客户端,其特征在于,
所述客户端还包括:发送单元,用于向所述服务器发送所述客户端的硬件所支持的图像渲染特性。
CN201410606094.7A 2014-10-31 2014-10-31 图像远程投射方法和相关装置 Pending CN104618733A (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201410606094.7A CN104618733A (zh) 2014-10-31 2014-10-31 图像远程投射方法和相关装置
PCT/CN2015/092613 WO2016066056A1 (zh) 2014-10-31 2015-10-23 图像远程投射方法、服务器和客户端
US15/391,318 US20170109113A1 (en) 2014-10-31 2016-12-27 Remote Image Projection Method, Sever And Client Device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410606094.7A CN104618733A (zh) 2014-10-31 2014-10-31 图像远程投射方法和相关装置

Publications (1)

Publication Number Publication Date
CN104618733A true CN104618733A (zh) 2015-05-13

Family

ID=53152979

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410606094.7A Pending CN104618733A (zh) 2014-10-31 2014-10-31 图像远程投射方法和相关装置

Country Status (3)

Country Link
US (1) US20170109113A1 (zh)
CN (1) CN104618733A (zh)
WO (1) WO2016066056A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016066056A1 (zh) * 2014-10-31 2016-05-06 腾讯科技(深圳)有限公司 图像远程投射方法、服务器和客户端
CN110458748A (zh) * 2019-06-27 2019-11-15 西安万像电子科技有限公司 数据传输方法、服务器及客户端
WO2021169236A1 (zh) * 2020-02-25 2021-09-02 华为技术有限公司 渲染的方法、装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102254292A (zh) * 2010-05-20 2011-11-23 盛乐信息技术(上海)有限公司 远程3d指令渲染***及方法
CN103176804A (zh) * 2013-04-19 2013-06-26 中国海洋大学 一种用户界面实现方法
CN103294439A (zh) * 2013-06-28 2013-09-11 华为技术有限公司 一种图像更新方法、***及装置
WO2014099301A1 (en) * 2012-12-18 2014-06-26 Motorola Mobility Llc Methods and systems for overriding graphics commands

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060036756A1 (en) * 2000-04-28 2006-02-16 Thomas Driemeyer Scalable, multi-user server and method for rendering images from interactively customizable scene information
US8903916B2 (en) * 2006-07-05 2014-12-02 International Business Machines Corporation Method, system, and computer-readable medium to render repeatable data objects streamed over a network
AU2009206251B2 (en) * 2008-01-27 2014-03-27 Citrix Systems, Inc. Methods and systems for remoting three dimensional graphics
US20110107238A1 (en) * 2009-10-29 2011-05-05 Dong Liu Network-Based Collaborated Telestration on Video, Images or Other Shared Visual Content
US20120110067A1 (en) * 2010-10-29 2012-05-03 Luka Birsa Remote graphics rendering
US8799357B2 (en) * 2010-11-08 2014-08-05 Sony Corporation Methods and systems for use in providing a remote user interface
CN103399911A (zh) * 2013-07-30 2013-11-20 北京小米科技有限责任公司 基于浏览器客户端的访问处理方法、装置及终端设备
US9619857B2 (en) * 2013-10-23 2017-04-11 Empire Technology Development Llc Intermediary graphics rendition
CN104618733A (zh) * 2014-10-31 2015-05-13 腾讯科技(深圳)有限公司 图像远程投射方法和相关装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102254292A (zh) * 2010-05-20 2011-11-23 盛乐信息技术(上海)有限公司 远程3d指令渲染***及方法
WO2014099301A1 (en) * 2012-12-18 2014-06-26 Motorola Mobility Llc Methods and systems for overriding graphics commands
CN103176804A (zh) * 2013-04-19 2013-06-26 中国海洋大学 一种用户界面实现方法
CN103294439A (zh) * 2013-06-28 2013-09-11 华为技术有限公司 一种图像更新方法、***及装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016066056A1 (zh) * 2014-10-31 2016-05-06 腾讯科技(深圳)有限公司 图像远程投射方法、服务器和客户端
CN110458748A (zh) * 2019-06-27 2019-11-15 西安万像电子科技有限公司 数据传输方法、服务器及客户端
WO2021169236A1 (zh) * 2020-02-25 2021-09-02 华为技术有限公司 渲染的方法、装置
CN113368492A (zh) * 2020-02-25 2021-09-10 华为技术有限公司 渲染的方法、装置
CN113368492B (zh) * 2020-02-25 2023-06-27 华为技术有限公司 渲染的方法、装置

Also Published As

Publication number Publication date
WO2016066056A1 (zh) 2016-05-06
US20170109113A1 (en) 2017-04-20

Similar Documents

Publication Publication Date Title
US11303881B2 (en) Method and client for playing back panoramic video
US9686497B1 (en) Video annotation and dynamic video call display for multi-camera devices
US20220210512A1 (en) Content based stream splitting of video data
US20180063501A1 (en) Method and system of displaying a popping-screen
WO2017193576A1 (zh) 一种视频分辨率的适应方法、装置及虚拟现实终端
CN103283250B (zh) 一种视频重定向的方法、装置、***
CN111494936A (zh) 画面渲染方法、设备、***及存储介质
CN113242435B (zh) 一种投屏的方法、装置及***
CN107040808B (zh) 用于视频播放中弹幕图片的处理方法和装置
CN111683260A (zh) 基于虚拟主播的节目视频生成方法、***和存储介质
CN112437318A (zh) 一种内容显示方法、装置、***及存储介质
CN103313120A (zh) 显示画面的方法、移动终端、云端和***
CN103986965A (zh) 一种多媒体数据的处理装置、***和方法
CN104618733A (zh) 图像远程投射方法和相关装置
CN114422816A (zh) 一种直播视频处理方法、装置、电子设备及存储介质
US11936928B2 (en) Method, system and device for sharing contents
CN111213088B (zh) 网络控制的3d视频捕获
KR102223339B1 (ko) 증강 현실 비디오 게임을 제공하는 방법, 디바이스 및 시스템
CN112804551B (zh) 一种直播方法、装置、计算机设备及存储介质
CN113596583A (zh) 视频流子弹时间数据处理方法及装置
JP7004263B2 (ja) ビデオデータの表示方法及び装置
CN107707930B (zh) 视频处理方法、装置及***
CN115278278B (zh) 一种页面显示方法、装置、电子设备及存储介质
KR101844931B1 (ko) 분할 디스플레이를 위한 데이터 관리 장치, 시스템 및 방법과 그 기록 매체
CN108939539A (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20150513