CN114570020A - 数据处理方法以及系统 - Google Patents

数据处理方法以及系统 Download PDF

Info

Publication number
CN114570020A
CN114570020A CN202210209755.7A CN202210209755A CN114570020A CN 114570020 A CN114570020 A CN 114570020A CN 202210209755 A CN202210209755 A CN 202210209755A CN 114570020 A CN114570020 A CN 114570020A
Authority
CN
China
Prior art keywords
data
image data
function
client
operation request
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
CN202210209755.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.)
Alibaba China Co Ltd
Original Assignee
Alibaba China 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 Alibaba China Co Ltd filed Critical Alibaba China Co Ltd
Priority to CN202210209755.7A priority Critical patent/CN114570020A/zh
Publication of CN114570020A publication Critical patent/CN114570020A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04845Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本说明书实施例提供数据处理方法以及系统,其中所述数据处理方法包括:接收目标应用提交的操作请求,其中,所述目标应用运行于客户端;响应于所述操作请求确定所述目标应用对应的图像数据,并将所述图像数据写入帧缓存;确定预设函数标识信息,并调用所述函数标识信息对应的数据拷贝函数;利用所述数据拷贝函数在所述帧缓存中拷贝所述图像数据,并将所述图像数据发送至所述客户端。

Description

数据处理方法以及系统
技术领域
本说明书实施例涉及计算机技术领域,特别涉及数据处理方法以及系统。
背景技术
随着云计算和网络技术的发展,远程应用已经成为了一种趋势,通过将应用的计算过程发生在云端,显示交互过程发生在本地,可以很大程度降低本地计算压力,同时能够保证应用运行环境更好。其中以渲染密集型的应用尤为突出,如AR、VR、3D游戏等。现有技术中,远程应用的传输方案大多数基于截屏传输完成,如采用VNC软件;但该方案开销较大,且会浪费过多的云端资源,致使资源利用率较低;因此亟需一种有效的方案以解决上述问题。
发明内容
有鉴于此,本说明书实施例提供了数据处理方法。本说明书一个或者多个实施例同时涉及数据处理系统,数据处理装置,一种计算设备,一种计算机可读存储介质以及一种计算机程序,以解决现有技术中存在的技术缺陷。
根据本说明书实施例的第一方面,提供了一种数据处理方法,应用于服务端,包括:
接收目标应用提交的操作请求,其中,所述目标应用运行于客户端;
响应于所述操作请求确定所述目标应用对应的图像数据,并将所述图像数据写入帧缓存;
确定预设函数标识信息,并调用所述函数标识信息对应的数据拷贝函数;
利用所述数据拷贝函数在所述帧缓存中拷贝所述图像数据,并将所述图像数据发送至所述客户端。
根据本说明书实施例的第二方面,提供了一种数据处理方法,应用于客户端,包括:
接收用户通过目标应用提交的操作指令;
根据所述操作指令创建操作请求并上传至服务端;
接收所述服务端针对所述操作请求反馈的图像数据;
根据所述图像数据渲染目标画面,并通过所述目标应用向所述用户进行展示。
根据本说明书实施例的第三方面,提供了一种数据处理系统,包括:
客户端,被配置为接收用户通过扩展现实应用提交的操作指令,根据所述操作指令创建操作请求并上传至服务端;
所述服务端,被配置为响应于所述操作请求确定关联所述扩展现实应用中虚拟场景的图像数据,并将所述图像数据写入帧缓存;确定预设函数标识信息,并调用所述函数标识信息对应的数据拷贝函数;利用所述数据拷贝函数在所述帧缓存中拷贝所述图像数据,并将所述图像数据发送至所述客户端;
所述客户端,被配置为根据所述图像数据对所述虚拟场景进行更新,获得更新后的虚拟场景对应的目标画面,并通过所述扩展现实应用向所述用户进行展示。
根据本说明书实施例的第四方面,提供了另一种数据处理系统,包括:
客户端,被配置为接收用户通过目标应用提交的操作指令,根据所述操作指令创建操作请求并上传至服务端;
所述服务端,被配置为响应于所述操作请求确定所述目标应用对应的图像数据,并将所述图像数据写入帧缓存;确定预设函数标识信息,并调用所述函数标识信息对应的数据拷贝函数;利用所述数据拷贝函数在所述帧缓存中拷贝所述图像数据,并将所述图像数据发送至所述客户端;
所述客户端,被配置为根据所述图像数据渲染目标画面,并通过所述目标应用向所述用户进行展示。
根据本说明书实施例的第五方面,提供了一种数据处理装置,应用于服务端,包括:
接收模块,被配置为接收目标应用提交的操作请求,其中,所述目标应用运行于客户端;
确定模块,被配置为响应于所述操作请求确定所述目标应用对应的图像数据,并将所述图像数据写入帧缓存;
调用模块,被配置为确定预设函数标识信息,并调用所述函数标识信息对应的数据拷贝函数;
发送模块,被配置为利用所述数据拷贝函数在所述帧缓存中拷贝所述图像数据,并将所述图像数据发送至所述客户端。
根据本说明书实施例的第六方面,提供了一种数据处理装置,应用于客户端,包括:
接收指令模块,被配置为接收用户通过目标应用提交的操作指令;
上传请求模块,被配置为根据所述操作指令创建操作请求并上传至服务端;
接收数据模块,被配置为接收所述服务端针对所述操作请求反馈的图像数据;
渲染画面模块,被配置为根据所述图像数据渲染目标画面,并通过所述目标应用向所述用户进行展示。
根据本说明书实施例的第七方面,提供了一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令时实现任上述数据处理方法的步骤。
根据本说明书实施例的第八方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现上述数据处理方法的步骤。
根据本说明书实施例的第九方面,提供了一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述数据处理方法的步骤。
本说明书提供的数据处理方法,在服务端接收到运行与客户端的目标应用提交的操作请求后,此时服务端可以响应于操作请求确定目标应用对应的图像数据,并将图像数据写入云端资源的帧缓存;之后为了能够达到节省云端资源的目的,可以先确定预设函数标识信息,之后按照函数标识信息调用数据拷贝函数,最后利用数据拷贝函数在帧缓存中拷贝图像数据,并发送至客户端;实现在通过云端资源运行目标应用时,可以直接通过数据拷贝函数在显存中读取图像数据,并将其发送至客户端进行渲染展示;该过程通过节省云端资源渲染的操作过程,可以有效的节省渲染开销成本,从而避免资源浪费,实现降低远端应用的部署成本。
附图说明
图1是本说明书一个实施例提供的一种数据处理方法的流程图;
图2是本说明书一个实施例提供的一种数据处理方法中架构示意图;
图3是本说明书一个实施例提供的一种数据处理方法中函数调用示意图;
图4是本说明书一个实施例提供的一种数据处理方法的处理过程流程图;
图5是本说明书一个实施例提供的另一种数据处理方法的流程图;
图6是本说明书一个实施例提供的一种数据处理系统的结构示意图;
图7是本说明书一个实施例提供的另一种数据处理系统的结构示意图;
图8是本说明书一个实施例提供的一种数据处理装置的结构示意图;
图9是本说明书一个实施例提供的另一种数据处理装置的结构示意图;
图10是本说明书一个实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
VNC:(Virtual Network Console,虚拟网络控制台)基本上是由两部分组成:一部分是客户端的应用程序(vncviewer);另外一部分是服务器端的应用程序(vncserver)。VNC的基本运行原理和一些Windows下的远程控制软件相似。
GPU:(graphics processing unit,图形处理器)又称显示核心、视觉处理器、显示芯片、显卡,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上做图像和图形相关运算工作的微处理器。
GPU显存:即GPU的内存,在显卡内部,GPU内存用以保存GPU渲染的结果。
OpenGL:OpenGL是一套跨平台、跨语言、设备无关的2D、3D图形绘制编程接口。在编写图形应用程序时,为了实现跨设备、跨平台运行,人们往往不会直接使用GPU的原生命令来编程,而是使用一套标准接口来操作,其中OpenGL是此类接口的事实标准。
远程应用:是指应用的主要服务逻辑、渲染等计算任务发生在远程服务器(如云服务器),本地仅实现显示和交互的应用。
XR:通过计算机技术和可穿戴设备产生的一个真实与虚拟组合的、可人机交互的环境。扩展现实包括增强现实(AR),虚拟现实(VR),混合现实(MR)等多种形式。也就是说XR其实是一个总称,包括了AR,VR,MR。XR可分为多个层次,从通过有限传感器输入的虚拟世界到完全沉浸式的虚拟世界。
渲染:在电脑绘图中是指用软件从模型生成图像的过程。模型是用严格定义的语言或者数据结构对于三维物体的描述,它包括几何、视点、纹理以及照明信息。将三维场景中的模型,按照设定好的环境、灯光、材质及渲染参数。二维投影成数字图像的过程。
AR:(Augmented Reality,增强现实)是一种将虚拟信息与真实世界巧妙融合的技术,广泛运用了多媒体、三维建模、实时跟踪及注册、智能交互、传感等多种技术手段,将计算机生成的文字、图像、三维模型、音乐、视频等虚拟信息模拟仿真后,应用到真实世界中,两种信息互为补充,从而实现对真实世界的“增强”。
VR:(Virtual Reality,虚拟现实)虚拟现实技术囊括计算机、电子信息、仿真技术,其基本实现方式是计算机模拟虚拟环境从而给人以环境沉浸感。
MR:(混合现实)它制造的虚拟景象可以进入现实的生活同时能够认识你,比如通过我们的设备,你在眼睛当中看到一个景象可以测量出现实生活中物体的尺度和方位,其最大的特点在于虚拟世界和现实世界可以互动。
Cloud XR:云化XR,是一种全新的模式:智终端、宽管道、云应用。受益于5G网络,Cloud XR将物理硬件迁移至云端/边缘端,使得“轻量级终端”(thin client)只保留呈现XR最基本的功能,提高其移动性和灵活性,大大降低终端成本,为AR/VR/MR打开更广阔的市场。
PaaS:PaaS实际上是指将软件研发的平台(服务基础平台)作为一种服务,以SaaS的模式提交给用户。因此,PaaS也是SaaS模式的一种应用。PAAS之所以能够推进SaaS的发展,主要在于它能够提供企业进行定制化研发的中间件平台,同时涵盖数据库和应用服务器等。PAAS可以提高在Web平台上利用的资源数量。例如,可通过远程Web服务使用数据即服务(Data-as-a-Service:数据即服务),还可以使用可视化的API。用户或者厂商基于PaaS平台可以快速开发自己所需要的应用和产品。同时,PaaS平台开发的应用能更好地搭建基于SOA架构的企业应用。
在本说明书中,提供了数据处理方法,本说明书同时涉及数据处理系统,数据处理装置,一种计算设备,一种计算机可读存储介质以及一种计算机程序,在下面的实施例中逐一进行详细说明。
图1示出了根据本说明书一个实施例提供的一种数据处理方法的流程图,应用于服务端,具体包括以下步骤。
本说明书提供的数据处理方法应用于Cloud XR的PaaS平台,通过在云端配置平台服务、应用服务以及媒体服务三个部分,支持远程应用的实现;其中,平台服务主要负责应用的管理和资源的管理调度。应明服务向应用一侧抽象云上的ECS和OSS等云端资源,为应用提供虚拟化的XR运行平台,向下游进行数据传输、处理视频流、音频流以及交互流等。媒体服务则负责处理视频流、音频流以及交互流的传输。而在此过程中,网络主要负责传输过程中的平台所需要的高带宽、低延迟以及高并发需求。
而对接云端资源的客户端主要负责对应云端的媒体传输,负责传输媒体服务涉及到的视频流、音频流以交互流。客户端数据处理部分主要负责处理端上传感器数据,比如摄像头、麦克风、手柄等。转化为对应的媒体服务则重点负责处理视频流、音频流以及交互流,同时负责播放来自云端的音频流和视频流。
也就是说,应用于上述平台的数据处理方法,其应用运行处理过程通过云端资源完成,不需要云端消耗额外的资源进行渲染或转码等操作;直接从显存或内存中读取需要渲染或转码的数据发送到客户端,由客户端利用本地资源进行渲染或转码,最后通过客户端向用户进行展示或播放,从而达到节省云端资源的目的,同时降低开销成本。
参见图2所示的示意图,客户端将通过适配的显示终端向用户提供XR服务,当用户使用摄像头、麦克风、IMU、手柄、手套等外界设备通过应用输入相应的指令时,此时将响应于用户的指令实现流数据处理(手势识别、语音识别、SLAM或音视频播放等),而为了能够快速且高效的完成流数据处理,且降低对本地资源的消耗。将通过具有带宽保障、时延保障、并发保障的网络上传至云端,云端运行应用管理和资源调度管理任务,以通过网络获取视频流、音频流、窗口模式适配、应用程序管理、指令响应的相关请求,之后利用云端的GPU资源响应于请求运行应用,并生成相应的运行结果,此时云端资源将进行音视频编码、流媒体路由、指令搁置转化、媒体传输等操作,以实现直接向客户端发送数据。实现客户端可以在接收到上述结果后,可以利用本地少量的资源完成最后的处理,以向用户提供相应的服务。
综上所述,在服务端接收到运行与客户端的目标应用提交的操作请求后,此时服务端可以响应于操作请求确定目标应用对应的图像数据,并将图像数据写入云端资源的帧缓存;之后为了能够达到节省云端资源的目的,可以先确定预设函数标识信息,之后按照函数标识信息调用数据拷贝函数,最后利用数据拷贝函数在帧缓存中拷贝图像数据,并发送至客户端;实现在通过云端资源运行目标应用时,可以直接通过数据拷贝函数在显存中读取图像数据,并将其发送至客户端进行渲染展示;该过程通过节省云端资源渲染的操作过程,可以有效的节省渲染开销成本,从而避免资源浪费,实现降低远端应用的部署成本。
步骤S102,接收目标应用提交的操作请求,其中,所述目标应用运行于客户端。
本实施例提供的数据处理方法应用于客户端与云端交互的场景,即目标应用通过客户端向用户提供相应的应用服务,该应用服务的实现需要依托云端资源完成,以实现客户端与云端交互的方式进行数据流传输,在充分利用云端资源的同时节省客户端资源,保证应用服务正常运行。
例如,在游戏场景下,用户在客户端使用游戏应用A,游戏应用A响应于用户的操作向云端发送操作请求,由云端利用云端资源响应于操作请求完成游戏应用A的运行,并向客户端反馈运行结果,最后由客户端基于运行结果渲染游戏画面向用户展示即可。或者在虚拟现实场景中,用户在客户端使用虚拟现实应用B,虚拟现实应用B响应于动作捕捉设备采集到的指令向云端发送操作请求,由云端利用云端资源响应于操作请求完成虚拟现实应用B的运行,并向客户端反馈运行结果,最后由客户端基于运行结果渲染虚拟现实画面向用户展示即可。
其中,服务端具体是指提供云端资源的服务器,其通过部署大量的计算机资源支持高并发、快响应的云端服务;相应的,客户端具体是指用户持有的终端设备,包括但不限于手机、电脑、智能穿戴设备等。相应的,目标应用具体是指运行在客户端上的应用程序,通过目标应用可以向用户提供游戏服务、虚拟现实服务、浏览服务等。且该应用程序实现应用服务时需要依托云端资源完成。相应的,操作请求具体是指持有客户端的用户操作目标应用提交的操作指令对应的请求,接下来需要响应于该请求向用户提供后续的应用服务。
基于此,当持有客户端的用户通过操作客户端上的目标应用时,客户端将根据用户的操作指令创建操作请求,并将操作请求发送到服务端。此时服务端将接收到运行在客户端上的目标应用提交的操作请求,为了支持目标应用可以向用户提供相应的服务,后续将响应于操作请求调用云端资源进行使用。
需要说明的是,考虑到服务端的云端资源将向大量的客户端提供服务,而不同的客户端上运行的目标应用可能不同,为了能够保证充分的利用云端资源,可以在接收到操作请求后,根据操作请求中携带的应用标识确定客户端此时运行的目标应用,之后再针对性选择资源运行目标应用,从而满足后续的数据处理操作。
本实施例为方便描述以数据处理方法在游戏场景中的应用为例进行说明,其他应用场景的描述均可参见本实施例相同或相应的描述内容,在此不作过多赘述。
步骤S104,响应于所述操作请求确定所述目标应用对应的图像数据,并将所述图像数据写入帧缓存。
具体的,在上述接收到运行于客户端的目标应用提交的操作请求后,进一步的,为了能够降低目标应用运行于客户端,对客户端计算资源的消耗,此时可以响应于操作请求确定目标应用对应的图像数据,之后将图像资源写入GPU的显存中,即帧缓存,以方便后续在进行展示时,直接从显存中读取数据发送到客户端使用。
其中,图像数据具体是指响应于操作请求对目标应用接下来需要展示的画面进行渲染后得到的数据,其包括但不限于像素点的RGB值、像素点数量、以及像素点顺序等数据。相应的,帧缓存是屏幕所显示画面的一个直接映象,又称为位映射图(Bit Map)或光栅。帧缓存的每一存储单元对应屏幕上的一个像素,整个帧缓存对应一帧图像。
也就是说,在服务端利用云端资源完成响应于操作请求渲染目标应用对应的下一画面的图像数据后,可以直接将图像数据写入显存中的帧缓存,以方便后续可以直接从显存中读取图像数据,并将其发送至客户端进行渲染和展示,从而可以节省云端资源渲染的操作。
进一步的,服务端在响应于操作请求确定图像数据过程中,考虑到图像数据需要展示在客户端,且待展示的画面需要与上一画面相连,因此需要确定属性数据和投影位置之后确定图像数据,本实施例中,具体实现方式如下:
读取所述目标应用对应的初始属性数据;按照所述操作请求对所述初始属性数据进行更新,获得目标属性数据,并确定投影位置;根据所述投影位置和所述目标属性数据创建所述图像数据。
具体的,初始属性数据具体是指目标应用已经展示的画面中包含的物体对应的属性数据,包括但不限于物体的位置、形状、颜色等。相应的,目标属性数据具体是指待展示画面中包含的物体对应的属性数据,且待展示画面为已经展示画面的下一帧画面;即二者属于连续帧。相应的,投影位置具体是指投影待展示画面的位置,即渲染过程中相机位置。
基于此,当服务端接收到目标应用对应的操作请求后,为了能够在GPU显存中写入待展示的画面对应的图像数据,可以读取目标应用对应的已经展示画面中物体的初始属性数据,之后按照用户在客户端中提交的操作指令对应的操作请求,对初始属性数据进行更新,以得到满足用户操作指令的目标属性数据,并根据操作请求确定待展示画面对应的投影位置;最后基于投影位置和目标属性数据确定图像数据即可,并将其写入帧缓存中,用于方便后续通过函数进行拷贝。
综上,为了能够向帧缓存中写入对应目标应用的图像数据,将结合投影位置和目标属性数据进行创建,可以保证最后反馈到客户端的图像数据更加满足操作请求。
更进一步的,在根据投影位置和目标属性数据创建图像数据时,实则是利用云端资源对待展示画面的图像数据进行渲染,并将其写入帧缓存中等待被拷贝展示;而在此过程中,则需要响应于操作请求进行渲染目标属性数据,本实施例中,具体实现方式如下:
响应于所述操作请求确定渲染单元对应的渲染指令;所述渲染单元根据所述渲染指令和所述投影位置对所述目标属性数据进行渲染处理,获得所述图像数据。
具体的,渲染指令具体是指对目标属性数据进行渲染的指令,用于渲染出满足客户端展示需求的图像数据。相应的,渲染单元具体是指OpenGL,用于执行渲染指令实现渲染处理操作。
基于此,得到目标属性数据和投影位置后,服务端可以响应于操作请求确定渲染单元对应的渲染指令,此时云端资源对应的渲染单元即可根据渲染指令和投影位置对目标属性数据进行渲染处理,从而根据渲染处理结果得到图像属性,并将其写入帧缓存中,用于方便后续通过函数进行拷贝。
也就是说,渲染单元在执行渲染指令的过程中,将以投影位置为视图位置,对目标属性数据进行渲染处理,从而使得得到的图像数据与上一帧的展示画面呈连续性,提高用户的参与体验。
举例说明,用户通过客户端使用游戏应用A,当用户控制游戏角色开启游戏中的宝箱时,当前客户端展示的画面为游戏角色位于宝箱前,并将钥匙插入宝箱的钥匙孔;用户通过键盘输入开启宝箱的操作指令,客户端将根据操作指令创建操作请求上传到服务端。服务端在接收到操作请求后,确定接下来需要渲染出宝箱钥匙孔被钥匙旋转的画面,则此时可以读取上一帧画面中宝箱和游戏角色分别对应的位置数据、形状数据、颜色数据等;之后按照操作请求对位置数据、形状数据、颜色数据分别进行更新,将得到对应宝箱的目标属性数据以及对应游戏角色的目标属性数据,并沿用上一帧画面对应的相机位置作为下一帧画面的相机位置。
进一步的,即可通过OpenGL的渲染指令在相机位置,对宝箱和游戏角色分别对应的目标属性数据分别进行渲染,将得到下一帧画面对应的图像数据,并将图像数据保存到GPU的显存中,即帧缓存(Frame Buffer)中,以方便后续在展示阶段可以直接从帧缓存中拷贝图像数据进行使用。
综上,通过触发渲染单元对应的渲染指令,以投影位置对目标属性数据进行渲染处理,可以保证渲染后得到的图像数据与上一帧画面呈连续性,从而提高用户的观看体验。
步骤S106,确定预设函数标识信息,并调用所述函数标识信息对应的数据拷贝函数。
具体的,在上述将目标应用对应的图像数据写入帧缓存后,进一步的,参见图3中(a)所示的示意图,考虑到实际应用场景中,图形渲染管线为了避免图像显示和绘制同步的问题,往往会采用双缓存的技术,即显示的图像和正在绘制的图像保存在不同的帧缓存中,待一帧图像完成绘制后,再交换显示和绘制的缓存区,从而实现缓冲交换。即显示的图像对应的帧缓存将与绘制完成的帧缓存交换,以将下一帧的图像呈显示状态,而上一帧的图像进行释放。
而在此过程中,由于缓冲交换技术会在完成后进行显示处理操作,而云端的显示处理操作并不会被观看,即显示处理完成后得到的图像在云端被展示会额外消耗计算资源。因此为了能够直接从GPU显存中进行图像数据的拷贝,节省显示资源的消耗,需要在图像数据写入帧缓存后,选择一个合适的插入点,从帧缓存中拷贝图像数据传输至客户端进行展示。
在选择插入点时,为了能够从帧缓存中读取到完整的图像数据,则需要在下一帧图像数据渲染完成并写入帧缓存后,但并未执行缓冲交换前完成。因此需要在图像数据写入帧缓存后,且未对帧缓存中的图像数据进行显示处理前设置插入点,以该插入点为节点在帧缓存中读取图像数据发送到客户端进行显示。
即,可以在图像数据写入完成帧缓存后,确定预设函数标识信息,以通过调用函数标识信息对应的数据拷贝函数执行后续的拷贝操作。也就是说,在实现缓冲交换前将执行数据拷贝函数拷贝图像数据,从而不需要再运行缓冲交换。
其中,预设函数标识信息具体是指待调用的数据拷贝函数对应的函数标识,该标识包括但不限于函数对应的函数名称、ID等。相应的,数据拷贝函数具体是指能够直接从帧缓存中拷贝图像数据的函数。
实际应用中,缓冲交换实则是在图形渲染管线中有一个专用处理函数,在OpenGL和Linux中,这个函数是glXSwapBuffers,其通过执行该函数实现对帧缓存对应的指针进行交换才能够支持后续的显示操作。而考虑到云化XR应用是存量的程序,即已经完成编译并且无法进行修改源代码。因此需要对原程序零侵入、零修改的情况下才能够支持后续的处理操作。因此参见图3中(b)所示的示意图,本实施例提供的方案是设置与函数glXSwapBuffers相同函数名称的数据拷贝函数,且将数据拷贝函数的函数地址设置在函数glXSwapBuffers之前,实现再被调用时,可以基于函数名称先调用地址在前的数据拷贝函数,用于执行后续图像数据拷贝处理操作。
进一步的,在调用数据拷贝函数拷贝图像数据前,则需要满足帧缓存中发生交换时刻才能够触发,因此需要先确定显示帧缓存和绘制帧缓存分别对应的标识,在标识发生变换的情况下,在执行步骤S106;本实施例中,具体实现方式如下:
确定显示帧缓存对应的显示标识,以及所述帧缓存对应的渲染标识;在所述显示标识和所述渲染标识进行标识变换的情况下,执行所述确定预设函数标识信息,并调用所述函数标识信息对应的数据拷贝函数的步骤。
具体的,显示帧缓存具体是指保存正在显示的画面对应的图像数据的帧缓存;相应的,显示标识具体是指显示帧缓存对应的指针;相应的,渲染标识具体是指保存正在绘制的画面对应的图像数据的帧缓存对应的指针。
基于此,由于插入点设置在图像数据渲染完成后,且缓冲交换前;因此云端资源在显示前,将确定显示帧缓存对应的显示标识,以及帧缓存对应的渲染标识,并在显示标识和渲染标识发生标识变换的情况下,再执行步骤S106,即确定预设函数标识信息,并调用所述函数标识信息对应的数据拷贝函数。
综上,通过将插入点设置在缓冲交换前,可以实现在显示前就可以及时触发执行数据拷贝函数的操作,以节省云端的显示资源消耗,从而达到降低开销成本的目的。
更进一步的,调用数据拷贝函数时,实则是调用与原函数名称相同的预设函数,而为了能够保证调用成功,参见图3中(b)所示的示意图,将通过Hook触发调用数据拷贝函数,本实施例中,具体实现方式如下:
通过执行预设应用函数确定所述函数标识信息;根据所述函数标识信息确定函数地址,并按照所述函数地址调用所述数据拷贝函数。
具体的,应用函数具体是指能够通过函数标识信息定位目标函数的函数;相应的,函数地址具体是指数据拷贝函数对应的入口地址。基于此,当帧缓存对应的图像数据保存完成后,可以通过执行预设应用函数确定能够直接从帧缓存中拷贝图像数据的函数标识信息,并根据函数标识信息确定优先级最高的函数地址,之后按照函数地址调用数据拷贝函数,用于后续处理即即可。
也就是说,由于函数glXSwapBuffers属于标准函数,不能够对其进行修改,但操作系统通常能够提供一个替换库函数的方法,其作用是一个Hook。即当应用程序视图调用函数glXSwapBuffers时,可以使用Hook调用预先嵌入与函数glXSwapBuffers名称相同的数据拷贝函数。而在调用过程中,Linux系统中可以利用常用的dlsym函数找到函数标识信息对应的入口地址,以通过保存原来的函数glXSwapBuffers,使得完成图像数据写入帧缓存后,仍能够利用原有的函数实现应用程序所需的功能,同时利用新的数据拷贝函数可以直接从GPU的显存中读取图像数据。
沿用上例,当图像数据写入帧缓存后,可以在检测到显示帧缓存的指针和绘制帧缓存的指针发生变换时,确定dlsym函数(Hook),之后利用dlsym函数调用函数名称为glXSwapBuffers,且函数地址优先级最高的数据拷贝函数来代替原有的函数,之后利用数据拷贝函数在显存中直接拷贝数据进行发送即可。
综上,通过采用预设函数标识相同的数据拷贝函数进行调用,可以在原有函数被调用前使用应用函数先调用数据拷贝函数,从而避免在发生显示处理前得到图像数据,以达到节省资源的目的。
步骤S108,利用所述数据拷贝函数在所述帧缓存中拷贝所述图像数据,并将所述图像数据发送至所述客户端。
具体的,在上述得到数据拷贝函数后,进一步的,即可利用数据拷贝函数直接从帧缓存中拷贝图像数据发送给客户端,以使得服务端可以节省基于图像数据显示待展示画面的操作,只需要使用部分客户端资源即可实现显示,以达到充分利用资源且节省云端资源的目的。
实际应用中,考虑到GPU的显存中存储图像数据的方式是以帧缓存方式实现,而帧缓存存储图像数据是以存储单元为单位,因此写入帧缓存时,将采用像素写入的方式完成,同理拷贝图像数据时,也将按照以像素拷贝的方式完成,本实施例中,具体实现方式如下:
在所述帧缓存中确定存储单元序列,将所述图像数据中的像素数据依次写入所述存储单元序列中的每个存储单元;在所述帧缓存中确定所述存储单元序列,并利用所述数据拷贝函数读取所述存储单元序列中的每个存储单元;根据读取结果获得所述像素数据,并根据所述像素数据生成所述图像数据。
具体的,存储单元序列具体是指帧缓存对应的全部存储单元组成的集合,每个存储单元用于存储一个像素点对应的数据,即像素数据;相应的,像素数据具体是指每个像素点对应的数据,用于表征该像素点对应的RGB值、位置等。
基于此,在得到图像数据后,可以先在GPU的显存中确定绘制帧缓存,之后并确定其对应的存储单元序列,之后对图像数据进行解析,得到各个像素点对应的像素数据,之后采用一一对应的关系,将每个像素数据依次写入每个存储单元。当调用到数据拷贝函数后,可以先确定帧缓存对应的存储单元序列,之后通过读取每个存储单元确定全部像素数据,最后根据像素数据生成图像数据,并将其发送至客户端进行显示处理即可。
综上,通过以像素为单位进行写入和拷贝,可以保证图像数据的全局性,避免出现图像坏点等问题。
更进一步的,在利用数据拷贝函数进行图像数据拷贝处理时,实则是先在帧缓存中确定图像数据,再进行拷贝。本实施例中,具体实现方式如下:
利用所述数据拷贝函数中的确定函数在所述帧缓存中确定所述图像数据;利用所述数据拷贝函数中的拷贝函数在所述帧缓存中拷贝所述图像数据。
其中,确定函数具体是指在显存的帧缓存中定位存储图像位置的函数;相应的,拷贝函数具体是指在帧缓存中拷贝图像数据的函数。基于此,当确定数据拷贝函数后,即可利用数据拷贝函数中的确定函数定位图像数据,之后再利用拷贝函数在所述帧缓存中拷贝所述图像数据。并将其发送至客户端即可。
客户端在接收到图像数据后,即可确定待展示画面对应的响应数据,最后通过显示模块渲染画面即可完成待展示画面的展示操作。
沿用上例,当确定数据拷贝函数后,可以利用数据拷贝函数先确定帧缓存中存储图像数据的存储单元序列,之后OpenGL中的glReadPixels函数读取每个存储单元中的像素数据,最后根据读取结果整合图像数据,并将其发送至客户端即可。客户端在得到图像数据后,即可通过渲染的方式,得到宝箱钥匙孔被钥匙旋转的画面。
本说明书提供的数据处理方法,在服务端接收到运行与客户端的目标应用提交的操作请求后,此时服务端可以响应于操作请求确定目标应用对应的图像数据,并将图像数据写入云端资源的帧缓存;之后为了能够达到节省云端资源的目的,可以先确定预设函数标识信息,之后按照函数标识信息调用数据拷贝函数,最后利用数据拷贝函数在帧缓存中拷贝图像数据,并发送至客户端;实现在通过云端资源运行目标应用时,可以直接通过数据拷贝函数在显存中读取图像数据,并将其发送至客户端进行渲染展示;该过程通过节省云端资源渲染的操作过程,可以有效的节省渲染开销成本,从而避免资源浪费,实现降低远端应用的部署成本。
下述结合附图4,以本说明书提供的数据处理方法在云化XR场景中的应用为例,对所述数据处理方法进行进一步说明。其中,图4示出了本说明书一个实施例提供的一种数据处理方法的处理过程流程图,具体包括以下步骤。
步骤S402:接收目标应用提交的操作请求,其中,目标应用运行于客户端。
步骤S404,读取目标应用对应的初始属性数据。
步骤S406,按照操作请求对初始属性数据进行更新,获得目标属性数据,并确定投影位置。
步骤S408,响应于操作请求确定渲染单元对应的渲染指令。
步骤S410,渲染单元根据渲染指令和投影位置对目标属性数据进行渲染处理,获得图像数据。
步骤S412,确定显示帧缓存对应的显示标识,以及帧缓存对应的渲染标识。
步骤S414,在显示标识和渲染标识进行标识变换的情况下,通过执行预设应用函数确定函数标识信息。
步骤S416,根据函数标识信息确定函数地址,并按照函数地址调用数据拷贝函数。
步骤S418,利用数据拷贝函数中的确定函数在帧缓存中确定图像数据,以及利用数据拷贝函数中的拷贝函数在帧缓存中拷贝图像数据。
步骤S420,将图像数据发送至客户端,客户端基于图像数据展示目标画面。
综上所述,在服务端接收到运行与客户端的目标应用提交的操作请求后,此时服务端可以响应于操作请求确定目标应用对应的图像数据,并将图像数据写入云端资源的帧缓存;之后为了能够达到节省云端资源的目的,可以先确定预设函数标识信息,之后按照函数标识信息调用数据拷贝函数,最后利用数据拷贝函数在帧缓存中拷贝图像数据,并发送至客户端;实现在通过云端资源运行目标应用时,可以直接通过数据拷贝函数在显存中读取图像数据,并将其发送至客户端进行渲染展示;该过程通过节省云端资源渲染的操作过程,可以有效的节省渲染开销成本,从而避免资源浪费,实现降低远端应用的部署成本。
与上述方法实施例相对应,本说明书还提供了另一种数据处理方法,图5示出了本说明书一个实施例提供的另一种数据处理方法的流程图,如图5所示,另一种数据处理方法应用于客户端,具体包括以下步骤:
步骤S502,接收用户通过目标应用提交的操作指令。
步骤S504,根据所述操作指令创建操作请求并上传至服务端。
步骤S506,接收所述服务端针对所述操作请求反馈的图像数据。
步骤S508,根据所述图像数据渲染目标画面,并通过所述目标应用向所述用户进行展示。
需要说明的是,本实施例中的客户端具体是指用户持有能够运行云化应用的移动终端,其相关描述内容均可参见上述实施例,本实施例在此不作过多赘述。
与上述方法实施例相对应,本说明书还提供了一种数据处理系统,图6示出了本说明书一个实施例提供的一种数据处理系统的结构示意图,如图6所示,数据处理系统600包括客户端610以及服务端620;其中,具体实现如下:
客户端610,被配置为接收用户通过扩展现实应用提交的操作指令,根据所述操作指令创建操作请求并上传至服务端;
所述服务端620,被配置为响应于所述操作请求确定关联所述扩展现实应用中虚拟场景的图像数据,并将所述图像数据写入帧缓存;确定预设函数标识信息,并调用所述函数标识信息对应的数据拷贝函数;利用所述数据拷贝函数在所述帧缓存中拷贝所述图像数据,并将所述图像数据发送至所述客户端;
所述客户端610,被配置为根据所述图像数据对所述虚拟场景进行更新,获得更新后的虚拟场景对应的目标画面,并通过所述扩展现实应用向所述用户进行展示。
本实施例提供的数据处理系统与上述数据处理方法中相同或相应的内容可以相互参见,在此不作过多赘述。
具体的,扩展现实应用具体是指向用户提供扩展现实服务的应用程序,其包括但不限于增强现实应用(AR)、虚拟现实应用(VR)或混合现实应用(MR)。且扩展现实应用为云化后的应用,即扩展现实应用的运行需要依托云端资源完成,客户端仅提供展示。相应的,虚拟场景具体是指扩展现实应用中需要绘制给用户观看的场景,且用户通过客户端在扩展现实应用中的操作均会在虚拟场景中完成;也就是说,扩展现实应用提供的虚拟场景为人机交互的环境。例如游戏场景下,用户控制增强现实后的角色释放技能,则此时释放技能的操作将在增强现实应用提供的虚拟场景中完成,该虚拟场景可以是增强现实应用预设的,也可以是增强现实应用通过采集实际环境构建的;或者,通过动作捕捉设备采集到用户的动作数据后,可以根据动作数据驱动虚拟现实应用中的虚拟角色进行运动,此时虚拟角色的动作展示可以在虚拟现实应用提供的虚拟场景中完成。实际应用中,虚拟场景可以根据扩展现实应用的设定构建,本实施例在此不作任何限定。
基于此,用户在使用终端设备中的扩展现实应用时,可以通过扩展现实应用(XR)提交操作指令,该操作指令可以是对增强现实场景中的角色进行控制的指令,也可以是通过动作捕捉设备采集到的动作数据确定虚拟现实场景中的虚拟角色进行驱动的指令;该指令将使得客户端的展示画面发生变化,此时可以根据该指令创建操作请求,以实现利用服务端提供的资源完成待展示画面的渲染,以达到节省客户端资源的目的。
进一步的,服务端在接收到操作请求后,可以响应于操作请求确定关联扩展现实应用中虚拟场景的图像数据,即确定了客户端将要进行展示的画面对应的数据。在此过程中,考虑到服务端在得到图像数据后,通常情况下会对图像数据进行显示处理,而显示处理后得到的画面在服务端并不会被观看,因此为了节省显示资源的消耗,可以在将图像数据写入帧缓存后,确定预设函数标识信息,以根据函数标识信息调用数据拷贝函数,实现利用数据拷贝函数可以在显示处理前,从帧缓存中读取图像数据,直接将图像数据发送到客户端,从而节省了服务端显示处理操作消耗的资源。
更进一步的,客户端在接收到服务端响应于操作请求反馈的图像数据后,确定图像数据是对当前展示的虚拟场景对应的画面进行更新的数据,因此可以根据图像数据对当前展示的虚拟场景进行更新,即重新渲染新的画面,以根据更新结果得到虚拟场景对应的目标画面,最后通过扩展现实应用向用户展示目标画面即可。
举例说明,用户通过穿戴动作捕捉设备和VR眼镜驱动虚拟现实应用中的虚拟角色进行跳舞,当动作捕捉设备采集到用户对应的运动数据后,将向虚拟现实应用发送携带有运动数据的运动指令,之后根据运动指令创建请求并发送至服务端。服务端此时可以响应于该请求确定虚拟角色运动的虚拟场景,之后根据运动数据确定虚拟角色在虚拟场景中运动后的画面,并通过显卡绘制完成该画面对应的图像数据后,将其写入显卡的帧缓存。当虚拟现实应用的当前画面需要转换为运动后的画面时,可以确定预设函数标识信息,利用函数标识信息调用数据拷贝函数,实现通过数据拷贝函数在帧缓存中拷贝图像数据,并将向其直接发送给VR眼镜。VR眼镜在接收到图像数据后,可以利用本地的渲染资源对其进行显示处理,以根据处理结果生成虚拟角色基于运动数据驱动后的画面,并向佩戴VR眼镜的用户展示即可。
进一步的,服务端在响应于操作请求确定图像数据过程中,考虑到图像数据需要展示在客户端,且待展示的画面需要与上一画面相连,因此需要确定属性数据和投影位置之后确定图像数据,本实施例中,具体实现方式如下:所述服务端,进一步被配置为读取所述扩展现实应用中所述虚拟场景对应的初始属性数据;按照所述操作请求对所述初始属性数据进行更新,获得目标属性数据,并确定投影位置;根据所述投影位置和所述目标属性数据创建所述虚拟场景的图像数据。本实施例提供的图像数据确定过程可参见上述实施例中相同或相应的描述内容,在此不作过多赘述。
综上所述,在服务端接收到运行与客户端的扩展现实应用提交的操作请求后,此时服务端可以响应于操作请求确定扩展现实应用对应的图像数据,并将图像数据写入云端资源的帧缓存;之后为了能够达到节省云端资源的目的,可以先确定预设函数标识信息,之后按照函数标识信息调用数据拷贝函数,最后利用数据拷贝函数在帧缓存中拷贝图像数据,并发送至客户端;实现在通过云端资源运行扩展现实应用时,可以直接通过数据拷贝函数在显存中读取图像数据,并将其发送至客户端进行渲染展示;该过程通过节省云端资源渲染的操作过程,可以有效的节省渲染开销成本,从而避免资源浪费,实现降低远端应用的部署成本。
与上述方法实施例相对应,本说明书还提供了数据处理系统实施例,图7示出了本说明书一个实施例提供的另一种数据处理系统的结构示意图。如图7所示,数据处理系统700包括客户端710和服务端720;
客户端710,被配置为接收用户通过目标应用提交的操作指令,根据所述操作指令创建操作请求并上传至服务端;
所述服务端720,被配置为响应于所述操作请求确定所述目标应用对应的图像数据,并将所述图像数据写入帧缓存;确定预设函数标识信息,并调用所述函数标识信息对应的数据拷贝函数;利用所述数据拷贝函数在所述帧缓存中拷贝所述图像数据,并将所述图像数据发送至所述客户端;
所述客户端710,被配置为根据所述图像数据渲染目标画面,并通过所述目标应用向所述用户进行展示。
一个可选的实施例中,所述客户端710进一步被配置为:
读取所述目标应用对应的初始属性数据;按照所述操作请求对所述初始属性数据进行更新,获得目标属性数据,并确定投影位置;根据所述投影位置和所述目标属性数据创建所述图像数据。
一个可选的实施例中,所述客户端710进一步被配置为:
响应于所述操作请求确定渲染单元对应的渲染指令;所述渲染单元根据所述渲染指令和所述投影位置对所述目标属性数据进行渲染处理,获得所述图像数据。
一个可选的实施例中,所述客户端710进一步被配置为:
确定显示帧缓存对应的显示标识,以及所述帧缓存对应的渲染标识;在所述显示标识和所述渲染标识进行标识变换的情况下,执行所述确定预设函数标识信息,并调用所述函数标识信息对应的数据拷贝函数的步骤。
一个可选的实施例中,所述客户端710进一步被配置为:
通过执行预设应用函数确定所述函数标识信息;根据所述函数标识信息确定函数地址,并按照所述函数地址调用所述数据拷贝函数。
一个可选的实施例中,所述客户端710进一步被配置为:
在所述帧缓存中确定存储单元序列,将所述图像数据中的像素数据依次写入所述存储单元序列中的每个存储单元;相应的,所述利用所述数据拷贝函数在所述帧缓存中拷贝所述图像数据,包括:在所述帧缓存中确定所述存储单元序列,并利用所述数据拷贝函数读取所述存储单元序列中的每个存储单元;根据读取结果获得所述像素数据,并根据所述像素数据生成所述图像数据。
一个可选的实施例中,所述客户端710进一步被配置为:
利用所述数据拷贝函数中的确定函数在所述帧缓存中确定所述图像数据;利用所述数据拷贝函数中的拷贝函数在所述帧缓存中拷贝所述图像数据。
上述为本实施例的另一种数据处理系统的示意性方案。需要说明的是,该数据处理系统的技术方案与上述的数据处理方法的技术方案属于同一构思,数据处理系统的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
与上述方法实施例相对应,本说明书还提供了数据处理装置实施例,图8示出了本说明书一个实施例提供的一种数据处理装置的结构示意图。如图8所示,应用于服务端,该装置包括:
接收模块802,被配置为接收目标应用提交的操作请求,其中,所述目标应用运行于客户端;
确定模块804,被配置为响应于所述操作请求确定所述目标应用对应的图像数据,并将所述图像数据写入帧缓存;
调用模块806,被配置为确定预设函数标识信息,并调用所述函数标识信息对应的数据拷贝函数;
发送模块808,被配置为利用所述数据拷贝函数在所述帧缓存中拷贝所述图像数据,并将所述图像数据发送至所述客户端。
一个可选的实施例中,所述确定模块804进一步被配置为:
读取所述目标应用对应的初始属性数据;按照所述操作请求对所述初始属性数据进行更新,获得目标属性数据,并确定投影位置;根据所述投影位置和所述目标属性数据创建所述图像数据。
一个可选的实施例中,所述确定模块804进一步被配置为:
响应于所述操作请求确定渲染单元对应的渲染指令;所述渲染单元根据所述渲染指令和所述投影位置对所述目标属性数据进行渲染处理,获得所述图像数据。
一个可选的实施例中,所述数据处理装置,还包括:
确定标识模块,被配置为确定显示帧缓存对应的显示标识,以及所述帧缓存对应的渲染标识;
在所述显示标识和所述渲染标识进行标识变换的情况下,运行所述确定模块804。
一个可选的实施例中,所述调用模块806进一步被配置为:
通过执行预设应用函数确定所述函数标识信息;根据所述函数标识信息确定函数地址,并按照所述函数地址调用所述数据拷贝函数。
一个可选的实施例中,所述调用模块806进一步被配置为:
在所述帧缓存中确定存储单元序列,将所述图像数据中的像素数据依次写入所述存储单元序列中的每个存储单元;
相应的,所述发送模块808进一步被配置为:
在所述帧缓存中确定所述存储单元序列,并利用所述数据拷贝函数读取所述存储单元序列中的每个存储单元;根据读取结果获得所述像素数据,并根据所述像素数据生成所述图像数据。
一个可选的实施例中,所述发送模块808进一步被配置为:
利用所述数据拷贝函数中的确定函数在所述帧缓存中确定所述图像数据;利用所述数据拷贝函数中的拷贝函数在所述帧缓存中拷贝所述图像数据。
综上所述,在服务端接收到运行与客户端的目标应用提交的操作请求后,此时服务端可以响应于操作请求确定目标应用对应的图像数据,并将图像数据写入云端资源的帧缓存;之后为了能够达到节省云端资源的目的,可以先确定预设函数标识信息,之后按照函数标识信息调用数据拷贝函数,最后利用数据拷贝函数在帧缓存中拷贝图像数据,并发送至客户端;实现在通过云端资源运行目标应用时,可以直接通过数据拷贝函数在显存中读取图像数据,并将其发送至客户端进行渲染展示;该过程通过节省云端资源渲染的操作过程,可以有效的节省渲染开销成本,从而避免资源浪费,实现降低远端应用的部署成本。
上述为本实施例的一种数据处理装置的示意性方案。需要说明的是,该数据处理装置的技术方案与上述的数据处理方法的技术方案属于同一构思,数据处理装置的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
与上述方法实施例相对应,本说明书还提供了另一种数据处理装置实施例,图9示出了本说明书一个实施例提供的另一种数据处理装置的结构示意图。如图9所示,应用于客户端,该装置包括:
接收指令模块902,被配置为接收用户通过目标应用提交的操作指令;
上传请求模块904,被配置为根据所述操作指令创建操作请求并上传至服务端;
接收数据模块906,被配置为接收所述服务端针对所述操作请求反馈的图像数据;
渲染画面模块908,被配置为根据所述图像数据渲染目标画面,并通过所述目标应用向所述用户进行展示。
上述为本实施例的另一种数据处理装置的示意性方案。需要说明的是,该数据处理装置的技术方案与上述的数据处理方法的技术方案属于同一构思,数据处理装置的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
图10示出了根据本说明书一个实施例提供的一种计算设备1000的结构框图。该计算设备1000的部件包括但不限于存储器1010和处理器1020。处理器1020与存储器1010通过总线1030相连接,数据库1050用于保存数据。
计算设备1000还包括接入设备1040,接入设备1040使得计算设备1000能够经由一个或多个网络1060通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备1040可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本说明书的一个实施例中,计算设备1000的上述部件以及图10中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图10所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备1000可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备1000还可以是移动式或静止式的服务器。
其中,处理器1020用于执行如下计算机可执行指令,该计算机可执行指令被处理器执行时实现上述数据处理方法的步骤。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的数据处理方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现上述数据处理方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的数据处理方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
本说明书一实施例还提供一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述数据处理方法的步骤。
上述为本实施例的一种计算机程序的示意性方案。需要说明的是,该计算机程序的技术方案与上述的数据处理方法的技术方案属于同一构思,计算机程序的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。

Claims (14)

1.一种数据处理方法,应用于服务端,包括:
接收目标应用提交的操作请求,其中,所述目标应用运行于客户端;
响应于所述操作请求确定所述目标应用对应的图像数据,并将所述图像数据写入帧缓存;
确定预设函数标识信息,并调用所述函数标识信息对应的数据拷贝函数;
利用所述数据拷贝函数在所述帧缓存中拷贝所述图像数据,并将所述图像数据发送至所述客户端。
2.根据权利要求1所述的数据处理方法,所述响应于所述操作请求确定所述目标应用对应的图像数据,包括:
读取所述目标应用对应的初始属性数据;
按照所述操作请求对所述初始属性数据进行更新,获得目标属性数据,并确定投影位置;
根据所述投影位置和所述目标属性数据创建所述图像数据。
3.根据权利要求2所述的数据处理方法,所述根据所述投影位置和所述目标属性数据创建所述图像数据,包括:
响应于所述操作请求确定渲染单元对应的渲染指令;
所述渲染单元根据所述渲染指令和所述投影位置对所述目标属性数据进行渲染处理,获得所述图像数据。
4.根据权利要求1所述的数据处理方法,所述确定预设函数标识信息,并调用所述函数标识信息对应的数据拷贝函数步骤执行之前,还包括:
确定显示帧缓存对应的显示标识,以及所述帧缓存对应的渲染标识;
在所述显示标识和所述渲染标识进行标识变换的情况下,执行所述确定预设函数标识信息,并调用所述函数标识信息对应的数据拷贝函数的步骤。
5.根据权利要求1-4任意一项所述的数据处理方法,所述确定预设函数标识信息,并调用所述函数标识信息对应的数据拷贝函数,包括:
通过执行预设应用函数确定所述函数标识信息;
根据所述函数标识信息确定函数地址,并按照所述函数地址调用所述数据拷贝函数。
6.根据权利要求1所述的数据处理方法,所述将所述图像数据写入帧缓存,包括:
在所述帧缓存中确定存储单元序列,将所述图像数据中的像素数据依次写入所述存储单元序列中的每个存储单元;
相应的,所述利用所述数据拷贝函数在所述帧缓存中拷贝所述图像数据,包括:
在所述帧缓存中确定所述存储单元序列,并利用所述数据拷贝函数读取所述存储单元序列中的每个存储单元;
根据读取结果获得所述像素数据,并根据所述像素数据生成所述图像数据。
7.根据权利要求1所述的数据处理方法,所述利用所述数据拷贝函数在所述帧缓存中拷贝所述图像数据,包括:
利用所述数据拷贝函数中的确定函数在所述帧缓存中确定所述图像数据;
利用所述数据拷贝函数中的拷贝函数在所述帧缓存中拷贝所述图像数据。
8.一种数据处理方法,应用于客户端,包括:
接收用户通过目标应用提交的操作指令;
根据所述操作指令创建操作请求并上传至服务端;
接收所述服务端针对所述操作请求反馈的图像数据;
根据所述图像数据渲染目标画面,并通过所述目标应用向所述用户进行展示。
9.一种数据处理系统,包括:
客户端,被配置为接收用户通过扩展现实应用提交的操作指令,根据所述操作指令创建操作请求并上传至服务端;
所述服务端,被配置为响应于所述操作请求确定关联所述扩展现实应用中虚拟场景的图像数据,并将所述图像数据写入帧缓存;确定预设函数标识信息,并调用所述函数标识信息对应的数据拷贝函数;利用所述数据拷贝函数在所述帧缓存中拷贝所述图像数据,并将所述图像数据发送至所述客户端;
所述客户端,被配置为根据所述图像数据对所述虚拟场景进行更新,获得更新后的虚拟场景对应的目标画面,并通过所述扩展现实应用向所述用户进行展示。
10.根据权利要求9所述的数据处理系统,所述客户端为运行所述扩展现实应用的终端设备,所述扩展现实应用包括增强现实应用、虚拟现实应用或混合现实应用。
11.根据权利要求9所述的数据处理系统,所述服务端,进一步被配置为读取所述扩展现实应用中所述虚拟场景对应的初始属性数据;按照所述操作请求对所述初始属性数据进行更新,获得目标属性数据,并确定投影位置;根据所述投影位置和所述目标属性数据创建所述虚拟场景的图像数据。
12.一种数据处理系统,包括:
客户端,被配置为接收用户通过目标应用提交的操作指令,根据所述操作指令创建操作请求并上传至服务端;
所述服务端,被配置为响应于所述操作请求确定所述目标应用对应的图像数据,并将所述图像数据写入帧缓存;确定预设函数标识信息,并调用所述函数标识信息对应的数据拷贝函数;利用所述数据拷贝函数在所述帧缓存中拷贝所述图像数据,并将所述图像数据发送至所述客户端;
所述客户端,被配置为根据所述图像数据渲染目标画面,并通过所述目标应用向所述用户进行展示。
13.一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1至8任意一项所述方法的步骤。
14.一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1至8任意一项所述方法的步骤。
CN202210209755.7A 2022-03-03 2022-03-03 数据处理方法以及系统 Pending CN114570020A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210209755.7A CN114570020A (zh) 2022-03-03 2022-03-03 数据处理方法以及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210209755.7A CN114570020A (zh) 2022-03-03 2022-03-03 数据处理方法以及系统

Publications (1)

Publication Number Publication Date
CN114570020A true CN114570020A (zh) 2022-06-03

Family

ID=81774485

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210209755.7A Pending CN114570020A (zh) 2022-03-03 2022-03-03 数据处理方法以及系统

Country Status (1)

Country Link
CN (1) CN114570020A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114972607A (zh) * 2022-07-29 2022-08-30 烟台芯瞳半导体科技有限公司 加速图像显示的数据传输方法、装置及介质
CN116578423A (zh) * 2023-07-07 2023-08-11 阿里巴巴(中国)有限公司 任务处理方法、自动问答方法以及图像生成方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114972607A (zh) * 2022-07-29 2022-08-30 烟台芯瞳半导体科技有限公司 加速图像显示的数据传输方法、装置及介质
CN114972607B (zh) * 2022-07-29 2022-10-21 烟台芯瞳半导体科技有限公司 加速图像显示的数据传输方法、装置及介质
CN116578423A (zh) * 2023-07-07 2023-08-11 阿里巴巴(中国)有限公司 任务处理方法、自动问答方法以及图像生成方法
CN116578423B (zh) * 2023-07-07 2023-11-28 阿里巴巴(中国)有限公司 任务处理方法、自动问答方法以及图像生成方法

Similar Documents

Publication Publication Date Title
WO2020221056A1 (zh) 图像绘制的方法、装置、电子设备及计算机存储介质
CN111433743B (zh) 一种app远程控制方法及相关设备
CN113244614B (zh) 图像画面展示方法、装置、设备及存储介质
JP2022528432A (ja) ハイブリッドレンダリング
JP2024505995A (ja) 特殊効果展示方法、装置、機器および媒体
CN111818120A (zh) 端云用户交互方法、系统及相应设备、存储介质
CN114518817B (zh) 一种显示方法、电子设备及存储介质
CN114570020A (zh) 数据处理方法以及系统
WO2021180183A1 (zh) 图像处理方法和图像显示设备、存储介质和电子设备
JP2013099511A (ja) 描画システム、描画サーバ、その制御方法、プログラム、及び記録媒体
US20220207811A1 (en) Augmented reality-based display method and device, and storage medium
CN116672702A (zh) 一种图像渲染方法和电子设备
CN112053449A (zh) 基于增强现实的显示方法、设备及存储介质
CN112316433A (zh) 游戏画面渲染方法、装置、服务器和存储介质
CN116136784A (zh) 数据处理方法、装置、存储介质及程序产品
CN115220906A (zh) 音频/视频合成应用的云执行
CN116758201B (zh) 三维场景的渲染处理方法、设备、系统及计算机存储介质
CN117390322A (zh) 虚拟空间构建方法、装置、电子设备及非易失性存储介质
CN112565883A (zh) 一种用于虚拟现实场景的视频渲染处理系统和计算机设备
WO2023093792A1 (zh) 一种图像帧的渲染方法及相关装置
CN114222185B (zh) 视频播放方法、终端设备及存储介质
CN116958344A (zh) 虚拟形象的动画生成方法、装置、计算机设备及存储介质
RU2810701C2 (ru) Гибридный рендеринг
US12005363B2 (en) Cloud execution of audio/video compositing applications
CN117437342B (zh) 一种三维场景渲染方法和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination