发明内容
本申请提供一种触发信号生成方法及装置,通过本申请可以降低云交互类应用的图像显示输出时延。
本申请第一方面提供了一种触发信号生成方法,该方法可以在云交互类应用的系统架构中实现,该系统包括云端服务器和至少一个终端设备,云端服务器和终端设备通过网络连接。
其中,云端服务器中部署有云服务系统,云服务系统可以承载云交互类应用的运行,一种实现方式中,云服务系统中可以部署有终端设备对应的虚拟环境,如容器、虚拟机等,云交互类应用可以运行在该虚拟环境中。云服务系统可以针对云交互类应用的图像帧进行图像处理,一种实现方式中,可以通过云服务系统中包含的图像渲染装置对云交互类应用的图像帧进行图像处理;云服务系统还可以对云交互类应用进行编码,以传输给终端设备,一种实现方式中,可以通过云服务系统中的图像编码装置对云交互类应用的图像帧进行编码。
其中,终端设备可以接收用户针对云交互类应用的操作指令,并传输给云端服务器,使云端服务器中的云交互类应用响应该操作指令,以及使云端服务器中的云交互类应用根据操作指令,控制生成对应的图像帧;终端设备还可以对云端服务器传输的图像帧进行解码和显示输出。
该方法中,云服务系统可以在不同的时间分别生成第一信号和第二信号,其中,第一信号用于触发云服务系统对第一应用中的图像帧进行图像处理,第二信号用于触发对处理后的第一应用的图像帧进行编码输出。在第一信号触发处理得到第一应用的图像帧之后,在检测到第二信号后即可对第一应用的图像帧进行编码输出,可以通过第二信号灵活地控制图像帧的编码输出,压缩了图像帧处理完成后到开始编码输出之间的时间,降低了第一应用的图像显示输出时延。
根据第一方面,在一种可能的实现方式中,第一信号和第二信号均为周期性生成的信号,第一信号可以是根据第一信号时序信息生成的,第一信号时序信息包含生成第一信号的时间信息。云服务系统可以根据第一应用的第一信号的时序信息,确定第二信号时序信息,第二信号时序信息中包含用于生成第二信号的时间信息,进而可以根据第二信号时序信息生成第二信号。通过第一信号时序信息来确定第二信号时序信息,保证第一应用的图像帧的图像处理和编码输出的时间顺序的合理性。
根据第一方面,在另一种可能的实现方式中,在确定第二信号时序信息的过程中,可以先确定第一信号在第一周期中的第一生成时间,进而根据第一生成时间和处理第一应用中的第一图像帧的时长,确定第二信号在第一周期内的第二生成时间,其中,第一周期是任意一个生成第一信号的周期,第一图像帧是云服务系统是在第一周期中处理的第一应用的图像帧。根据处理第一图像帧的时长,来确定触发对第一图像帧进行图像处理的第一信号与触发第一图像帧进行编码输出的第二信号之间的时间间隔,保证了对第一应用的多个图像帧按照云交互类应用触发的先后顺序,依次进行图像处理和编码输出,实现了第一应用的图像帧输出的有序性和可控性。
根据第一方面,在另一种可能的实现方式中,第一应用可以包含多个功能场景,第一图像帧是第一应用中的第一功能场景对应的图像帧,第二图像帧是云服务系统将要在第二周期处理的第一应用中的第二功能场景对应的图像帧。在确定第二信号时序信息的过程中,除了确定第一功能场景下的图像帧对应的第二信号的生成时间,还可以确定第二功能场景下的图像帧对应的第二信号的生成时间。云服务系统可以确定第一信号在第二周期中的第三生成时间,并确定处理第二图像帧的时长,进而根据第三生成时间和处理第二图像帧的时长,确定第二信号在第二周期内的第四生成时间。
通过对第一应用在功能场景粒度上设置对应的第二信号时序信息,使得针对渲染资源需求不同的功能场景,在得到其图像帧之后,都可以适应性地根据对应的第二信号时序信息,尽快将图像帧编码输出,在保证云服务系统中应用图像输出延迟的可控性的前提下,增强了应用图像输出延迟管理的多样性,满足了不同功能场景的低延迟需求。
根据第一方面,在另一种可能的实现方式中,可以获取第一应用的至少一个图像帧的第一处理时长记录,并根据第一处理时长记录,确定处理第一应用中的第一图像帧的时长。其中,第一处理时长记录可以是云服务系统对第一应用的至少一个图像帧进行图像处理测试时,得到的图像处理时长记录。通过预先记录的至少一个第一处理时长记录,可以快速确定处理第一应用中的第一图像帧的时长,进而提高第二信号时序信息的确定效率。
根据第一方面,在另一种可能的实现方式中,可以获取第一图像帧的图像处理需求参数,如图像格式、图像尺寸、光线投射参数、光线跟踪参数等,进而根据图像处理需求参数,评估第一处理时长记录。这种方式可以准确地确定处理第一应用中的第一图像帧的时长,进而提高第二信号时序信息的确定准确性。
根据第一方面,在另一种可能的实现方式中,云服务系统中还可以部署新增的云交互类应用,如第二应用,云服务系统可以根据第一应用的第二信号时序信息,确定第三信号时序信息,该第三信号时序信息包含生成第二应用的第三信号的时序信息,第二应用的第三信号是用于触发对第二应用的图像帧进行图像处理的信号。根据第一应用的第二信号时序信息确定第二应用的第三信号时序信息,提高了云服务系统中图像编码装置资源使用的合理性,同时保证了各个应用的图像帧渲染和输出的有序性和可控性。
根据第一方面,在又一种可能的实现方式中,新部署的第二应用可以从第三周期开始向云服务系统申请图像帧的图像处理,可以先确定第一应用的第二信号在第三周期中的第五生成时间,确定第五生成时间到目标信号的生成时间之间的第一时间间隔,在处理第二应用的图像帧的时长小于或等于第一时间间隔的情况下,根据第五生成时间和处理第二应用的图像帧的时长,确定第三周期中生成第三信号的第六生成时间。
其中,目标信号是在第五生成时间之后,最早生成的用于触发云服务系统对应用中的图像帧进行图像处理的信号;第三信号是用于出发云服务系统对第二应用中的图像帧进行图像处理的信号。若云服务系统在新增第二应用时,云服务系统当前承载运行的云交互类应用仅有第一应用,那么目标信号即为在第三周期的下一个周期中生成的第一应用的第一信号;若云服务系统在新增第二应用时,云服务系统当前承载运行的交互类应用有包含第一应用的多个应用,此时,第一应用可以是云服务系统承载运行的任一云交互类应用,第一应用确定之后,即可根据第一应用的第五生成时间和目标信号的生成时间,确定第一时间间隔,这里,目标信号是触发云服务系统对第一应用以外的其他云交互类应用的图像帧进行图像处理的信号。
第二应用的部署提高了云服务系统中图像编码装置资源使用的合理性,同时通过比较第一时间间隔与处理第二应用的图像帧的时长,避免了第二应用的图像渲染处理与云服务系统中已部署应用的图像渲染处理发生冲突,实现了云服务系统中部署的多个应用对图像渲染装置的合理有序占用。
本申请第二方面提供了一种触发信号生成装置,该装置可以应用于云交互类应用的系统架构中,该系统包括云端服务器和至少一个终端设备,云端服务器和终端设备通过网络连接。
其中,云端服务器中部署有云服务系统,云服务系统可以承载云交互类应用的运行,一种实现方式中,云服务系统中部署有终端设备对应的虚拟环境,如容器、虚拟机等,云交互类应用可以运行在该虚拟环境中。云服务系统可以针对云交互类应用的图像帧进行图像处理,如图像渲染处理,一种实现方式中,云服务系统中包含的图像渲染装置针对云交互类应用的图像帧进行图像处理;云服务系统还可以对云交互类应用进行编码,以传输给终端设备,一种实现方式中,云服务系统中的图像编码装置对云交互类应用进行编码。
其中,终端设备可以接收用户针对云交互类应用的操作指令,并传输给云端服务器,使云端服务器中的云交互类应用响应该操作指令,以及使云端服务器中的云交互类应用根据操作指令,控制生成对应的图像帧;终端设备还可以对云端服务器传输的图像帧进行解码和显示输出。
该装置至少包括生成模块,生成模块可以在不同的时间分别生成第一信号和第二信号,其中,第一信号用于触发云服务系统对第一应用中的图像帧进行图像处理,第二信号用于触发对处理后的第一应用的图像帧进行编码输出。在第一信号触发处理得到第一应用的图像帧之后,在检测到第二信号后即可对第一应用的图像帧进行编码输出,可以通过第二信号灵活地控制图像帧的编码输出,压缩了图像帧处理完成后到开始编码输出之间的时间,降低了第一应用的图像显示输出时延。
根据第二方面,在一种可能的实现方式中,该装置还包括确定模块,上述第一信号和第二信号可以均为周期性生成的信号,第一信号可以是根据第一信号时序信息生成的,第一信号时序信息包含生成第一信号的时间信息。确定模块可以根据第一应用的第一信号的时序信息,确定第二信号时序信息,第二信号时序信息中包含用于生成第二信号的时间信息,进而可以根据第二信号时序信息生成第二信号。通过第一信号时序信息来确定第二信号时序信息,保证第一应用的图像帧的图像处理和编码输出的时间顺序的合理性。
根据第二方面,在另一种可能的实现方式中,确定模块在确定第二信号时序信息的过程中,可以先确定第一信号在第一周期中的第一生成时间,进而根据第一生成时间和处理第一应用中的第一图像帧的时长,确定第二信号在第一周期内的第二生成时间,其中,第一周期是任意一个生成第一信号的周期,第一图像帧是云服务系统是在第一周期中处理的第一应用的图像帧。根据处理第一图像帧的时长,来确定触发对第一图像帧进行图像处理的第一信号,与触发第一图像帧进行编码输出的第二信号之间的时间间隔,保证了对第一应用的多个图像帧按照云交互类应用触发的先后顺序,依次进行图像处理和编码输出,实现了第一应用的图像帧输出的有序性和可控性。
根据第二方面,在另一种可能的实现方式中,第一应用可以包含多个功能场景,第一图像帧是第一应用中的第一功能场景对应的图像帧,第二图像帧是云服务系统将要在第二周期处理的第一应用中的第二功能场景对应的图像帧。确定模块在确定第二信号时序信息的过程中,除了确定第一功能场景下的图像帧对应的第二信号的生成时间,还可以确定第二功能场景下的图像帧对应的第二信号的生成时间。确定模块可以确定第一信号在第二周期中的第三生成时间,并确定处理第二图像帧的时长,进而根据第三生成时间和处理第二图像帧的时长,确定第二信号在第二周期内的第四生成时间。
通过对第一应用在功能场景粒度上设置对应的第二信号时序信息,使得针对渲染资源需求不同的功能场景,在得到其图像帧之后,都可以适应性地根据对应的第二信号时序信息,尽快将图像帧编码输出,在保证云服务系统中应用图像输出延迟的可控性的前提下,增强了应用图像输出延迟管理的多样性,满足了不同功能场景的低延迟需求。
根据第二方面,在另一种可能的实现方式中,确定模块可以获取第一应用的至少一个图像帧的第一处理时长记录,并根据第一处理时长记录,确定处理第一应用中的第一图像帧的时长。其中,第一处理时长记录可以是云服务系统对第一应用的至少一个图像帧进行图像处理测试时,得到的图像处理时长记录。通过预先记录的至少一个第一处理时长记录,确定模块可以快速确定处理第一应用中的第一图像帧的时长,进而提高第二信号时序信息的确定效率。
根据第二方面,在另一种可能的实现方式中,确定模块可以获取第一图像帧的图像处理需求参数,如图像格式、图像尺寸、光线投射参数、光线跟踪参数等,进而根据图像处理需求参数,评估第一处理时长记录。这种方式确定模块可以准确地确定处理第一应用中的第一图像帧的时长,进而提高第二信号时序信息的确定准确性。
根据第二方面,在另一种可能的实现方式中,云服务系统中还可以部署新增的云交互类应用,如第二应用,确定模块可以根据第一应用的第二信号时序信息,确定第三信号时序信息,该第三信号时序信息包含生成第二应用的第三信号的时间信息,第二应用的第三信号是用于触发对第二应用的图像帧进行图像处理的信号。确定模块根据第一应用的第二信号时序信息确定第二应用的第三信号时序信息,提高了云服务系统中图像编码装置资源使用的合理性,同时保证了各个应用的图像帧渲染和输出的有序性和可控性。
根据第二方面,在又一种可能的实现方式中,新部署的第二应用可以从第三周期开始向云服务系统申请图像帧的图像处理,确定模块可以先确定第一应用的第二信号在第三周期中的第五生成时间,确定第五生成时间到目标信号的生成时间之间的第一时间间隔,在处理第二应用的图像帧的时长小于或等于第一时间间隔的情况下,根据第五生成时间和处理第二应用的图像帧的时长,确定第三周期中生成第三信号的第六生成时间。
其中,目标信号是在第五生成时间之后,最早生成的用于触发云服务系统对应用中的图像帧进行图像处理的信号;第三信号是用于出发云服务系统对第二应用中的图像帧进行图像处理的信号。若云服务系统在新增第二应用时,云服务系统当前承载运行的云交互类应用仅有第一应用,那么目标信号即为在第三周期的下一个周期中生成的第一应用的第一信号;若云服务系统在新增第二应用时,云服务系统当前承载运行的交互类应用有包含第一应用的多个应用,此时,第一应用可以是云服务系统承载运行的任一云交互类应用,第一应用确定之后,即可根据第一应用的第五生成时间和目标信号的生成时间,确定第一时间间隔,这里,目标信号是触发云服务系统对第一应用以外的其他云交互类应用的图像帧进行图像处理的信号。
第二应用的部署提高了云服务系统中图像编码装置资源使用的合理性,同时通过比较第一时间间隔与处理第二应用的图像帧的时长,避免了第二应用的图像渲染处理与云服务系统中已部署应用的图像渲染处理发生冲突,实现了云服务系统中部署的多个应用对图像渲染装置的合理有序占用。
本申请第三方面提供了另一种触发信号生成装置,该触发信号生成装置可以是云端服务器或者用于云端服务器的部件(如电路或芯片),包括处理器和存储器,所述处理器和存储器通过总线耦合,其中,所述处理器用于调用存储器中存储的程序,所述程序当被计算机执行时使所述计算机执行上述第一方面及其任意一种可能的实现方式中的触发信号生成方法。所述存储器用于存储上述程序。上述的处理器与存储器可以是物理上相互独立的单元,或者,存储器也可以和处理器集成在一起。
本申请第四方面提供了一种计算机存储介质,计算机存储介质存储有指令,当该指令在计算机上运行时,使得计算机执行上述第一方面及其任意一种可能的实现方式中的方法。
本申请第五方面提供了一种计算机程序产品,计算机程序产品包括:计算机程序代码,当计算机程序代码在计算机上运行时,使得计算机执行上述第一方面及其任意一种可能的实现方式中的方法。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请提供的触发信号生成方法可以基于云交互类应用的系统架构实现,降低对云交互类应用的图像显示输出时延。在接收本申请提供的触发信号生成方法之前,首先介绍云交互类应用以及云交互类应用的系统架构。
本申请涉及的云交互类应用可以是云游戏、云桌面、云手机等应用,用户可以向云交互类应用输入一定的操作指令,云交互类应用可以根据该操作指令进行响应,并触发生成相应的用户交互图像。例如,用户在玩云游戏时,可以向云游戏输入一些操作指令,如针对游戏角色的攻击指令、防守指令等,云交互类应用可以响应该操作指令,构建游戏角色的攻击模型或防守模型,并触发渲染生成游戏角色进行攻击或防守的一帧或多帧图像等。
参阅图1,图1是本申请实施例提供的一种云交互类应用的系统架构示意图,如图所示,所述系统架构可以包括至少一个终端设备(图1中示例性地画出了终端设备001和终端设备002)和服务器003,终端设备和服务器003可以通过网络相连接。
其中,终端设备可以为个人电脑、智能手机(如Android手机、IOS手机等)、平板电脑、掌上电脑、智能穿戴设备(如智能手环、虚拟现实眼镜等)或移动物联设备等可以与用户进行基于图像的人机交互的设备,用户可以通过终端设备输入对云交互类应用的操作指令,云交互类应用的用户交互图像也可以基于终端设备进行解码并向用户显示输出。
服务器003中可以部署云服务系统,云服务系统可以承载云交互类应用的运行。一种实现方式中,云服务系统中部署有终端设备对应的虚拟环境,如容器、虚拟机等,可以使得终端设备上原生的交互类应用,无需修改,直接迁移至云服务系统中的虚拟环境运行。云服务系统可以在不同时间分别生成第一信号和第二信号,其中,第一信号用于触发云服务系统对云交互类应用中的图像帧进行图像处理,第二信号用于触发对处理后的云交互类应用的图像帧进行编码输出。
在云交互类应用运行的过程中,当云交互类应用接收到用户的操作指令,响应该操作指令,并在检测到第一触发信号后,向云服务系统请求生成用户交互图像,云服务系统可以对云交互类应用的图像帧进行图像处理,在检测到云交互类应用的第二信号后,对处理后的用户交互图像的图像帧进行编码输出。在第一信号触发的图像处理,得到云交互类应用的图像帧之后,在检测到第二信号时,即可对云交互类应用的图像帧进行编码输出,通过第二信号灵活地控制图像帧的编码输出,无需等待下一个第一信号触发图像帧的编码输出,压缩了图像帧处理完成后到开始编码输出之间的时间,降低了云交互类应用的图像显示输出时延。
进一步地,参阅图2,图2是本申请实施例提供的另一种云交互类应用的系统架构示意图,图2所示的云交互类应用的系统架构包括终端设备和服务器,服务器中部署有可以承载云交互类应用运行的云服务系统,云服务系统可以包括底层服务进程0031、图像渲染装置0032和图像编码装置0033。
其中,底层服务进程0031是云服务系统的底层进程,可以负责对承载云交互类应用的虚拟环境进行资源分配、对承载云交互类应用的虚拟环境的监控等,还可以负责针对云交互类应用分别生成第一信号和第二信号。图像渲染装置0032可以包括中央处理器(Central Processing Unit,CPU)和/或图形处理器(Graphics Processing Unit,GPU),图像渲染装置0032可以被云交互类应用调用,以针对云交互类应用的图像帧进行图像处理,如图像渲染处理。图像渲染装置0032针对云交互类应用的图像处理可以包括CPU执行的测量(measure)、布局(layout)、记录(record)、执行(execute)等计算操作,以及GPU执行的栅格化(rasterization)操作等。图像编码装置0033可以是编码器,可以实现对云交互类应用的图像帧进行封装、压缩、加密等编码后,通过网络传输给终端设备进行显示输出。图像编码装置0033可以采用霍夫曼编码(Huffman encoding)、预测编码(Predictive encoding)、变换编码(Transform encoding)或方块编码(Block encoding)等编码方式中的一种对图像帧进行编码,终端设备接收到图像帧后,通过相应的解码方式对图像帧解码并显示输出。
本申请提供的触发信号生成方法可以由云服务系统执行,更进一步地,可以由图2所示的云服务系统中的底层服务进程0031执行。底层服务进程0031可以生成用于触发图像渲染装置0032对云交互类应用中的图像帧进行图像处理的第一信号,并生成用于触发图像编码装置0033对处理后的云交互类应用的图像帧进行编码输出的第二信号。
其中,第二信号可以是由底层服务进程0031生成的软件触发信号,也可以是底层服务进程0031控制具有信号生成功能的硬件,而生成的硬件触发信号,例如,该硬件可以是显卡。云交互类应用的第一信号也可以是由底层服务进程0031生成的软件触发信号,或是具有信号生成功能的硬件生成的硬件触发信号。第一信号无论是软件触发信号或是硬件触发信号,底层服务进程0031均可获取到第一信号,并将其分发给承载云交互类应用的虚拟环境,进而虚拟环境可以按照第一信号在终端设备上的驱动图像处理的流程,对云交互类应用的图像帧的图像处理进行驱动。而第二信号无论是软件触发信号或是硬件触发信号,底层服务进程0031均可获取到第二信号,但底层服务进程0031将第二信号传输至图像编码装置0033,图像编码装置0033在第二信号的驱动下,对云交互类应用的图像帧进行编码输出,这一过程中,云交互类应用以及云交互类应用的虚拟环境没有感知第二信号,不会对用户对云交互类应用的操作带来干扰。
需要说明的是,图2中所示的进程、装置或应用之间的连接线表示连接关系,该连接关系可以是直接相连关系,也可以是间接相连关系,这里不做具体的限定。例如,图2中云交互类应用与底层服务进程0031之间存在连接线,一种实现方式中,底层服务进程0031可以不直接与云交互类应用进行数据交互,而是通过承载云交互类应用的虚拟环境,间接与云交互类应用进行数据交互,如分发第一信号等。
基于上述云服务系统,底层服务进程0031生成的第一信号可以驱动云交互类应用调用图像渲染装置0032生成云交互类应用的图像帧,底层服务进程0031生成的第二信号可以驱动图像编码装置0033对云交互类应用的图像帧进行编码输出,通过第二信号灵活地控制图像帧的编码输出,无需等待下一个第一信号驱动图像编码装置0033对云交互类应用的图像帧的编码输出,压缩了图像帧生成后到开始编码输出之间的时间,降低了云交互类应用的图像显示输出时延。
本申请提供的触发信号生成方法可以应用在云交互类应用的用于用户交互的图像帧渲染和传输场景中。例如,用户在体验云游戏时,通过本申请的触发信号生成方法,可以更快地接收到云端的服务器处理生成的游戏图像帧,比如用户在对游戏角色输入了角色行动操作指令后,云服务系统在第一信号生成后,处理针对该角色行动操作的游戏图像帧,在第二信号生成后,即可将该游戏图像帧编码输出至终端设备,使终端设备进行解码并显示给用户,降低用户对云游戏的操作延迟感。又如,用户在使用云桌面或云手机时,通过本申请的触发信号生成方法,用户在操作云桌面或云手机后,也可以更快地接收到云端的服务器生成的计算机图像帧或手机图像帧,降低用户对云桌面或云手机的操作延迟感。
本申请提供的触发信号生成方法可以应用于云服务系统中,例如,应用于图1或图2的系统架构中介绍的云服务系统,下面详细介绍本申请提供的触发信号生成方法的实现方式,参见图3,图3是本申请实施例提供的一种触发信号生成方法的流程示意图,如图所示,所述方法可以至少包括步骤S301和S303。
S301,生成第一信号,第一信号用于触发云服务系统对第一应用中的图像帧进行图像处理。
其中,第一应用是云服务系统承载运行的云交互类应用,云服务系统可以针对第一应用可以生成第一信号,第一应用的第一信号是用于触发云服务系统对第一应用中的图像帧进行图像处理的信号。可选的,第一信号可以是云服务系统周期性生成的信号。一种实现方式中,云服务系统中可以承载运行包含第一应用的多个云交互类应用,云服务系统可以为触发对其承载运行的各个云交互类应用的图像帧进行图像处理的信号,设置固定的统一的生成周期,避免了不同应用的用于触发图像处理的信号的周期互相冲突,保证了各个应用信号的可控性和可管理性,也使得云服务系统上各个应用的图像处理有序进行,避免了不同应用图像处理的冲突而导致的图像显示输出延迟增加。该固定的周期通常与终端设备的屏幕刷新频率一致,例如可以设置为16ms。
需要说明的是,在具体实现中,应用可以通过应用进程中的图像处理函数,实现对图像帧的图像处理以及图像输出的控制,其中,应用不感知图像帧的图像输出具体是显示输出或是编码输出(在终端应用的场景下,应用的图像输出是显示输出,在云交互类应用的场景下,应用的图像输出是编码输出),仅在针对应用当前图像帧编码输出完成后,该图像处理函数才能返回,执行对下一帧图像帧的图像处理。本申请实施例的触发信号生成方法,可以使用在对仅存在一个触发信号的云交互类应用的输出延时优化场景中,优化之前该场景中仅存的触发信号用于触发对云交互类应用的当前图像帧的图像输出,以及对下一帧图像帧的图像处理,具体的,当前图像帧的图像输出完成后,应用的图像处理函数返回,进而执行对下一帧图像帧的图像处理,逻辑上来说,相当于该触发信号间接地触发了对下一帧图像帧的图像处理。若本申请实施例的触发信号生成方法使用在该优化场景时,优化之后可以将原本存在的触发信号作为本申请实施例中的第一信号,通过该原本存在的触发信号间接地触发对下一帧图像帧的图像处理,并为该优化场景中的应用生成新增的第二信号,通过第二信号触发对处理后的下一帧的图像帧进行编码输出。
第一信号生成之后,可以驱动图像渲染装置对第一应用的一帧图像帧进行图像处理,通常情况下,在第一应用的下一个第一信号生成之前,这一帧图像帧可以被图像渲染装置完成图像处理。参阅图4,图4是本申请实施例提供的一种图像处理时序的示意图,第一应用的第一信号的周期为T,如图4所示,t0时刻和t0+T时刻是在两个周期内生成第一应用的第一信号的时刻,在t0时刻生成第一信号后,可以即刻驱动图像处理装置针对第一应用进行图像处理,如图4中所述,在t0+h时刻开始对第一应用进行图像处理,这里,h可以是允许云服务系统和第一应用内部进程运行,以驱动图像处理装置的较短的时长,在t0+h+k时刻,第一应用的这一图像帧可以被图像渲染装置处理完成,若这一图像帧在t0+T时刻之前被编码输出,则在t0+T时刻生成第一信号后,可以即刻驱动图像处理装置针对第一应用的下一帧图像帧进行图像处理,按照这种方式,针对第一应用进行图像处理。
一种实现方式中,第一信号可以是云交互类应用根据第一信号时序信息生成的,第一信号时序信息中包括生成第一信号的时间信息。在云服务系统承载运行第一应用后,云服务系统可以为第一应用的第一信号确定第一信号时序信息,并按照第一信号时序信息生成第一信号,进而通过第一信号触发针对第一应用的图像处理。第一应用的第一信号时序信息有不同形式,可以是第一应用的第一信号在各个周期内的生成时间的形式,也可以是第一应用的第一信号在第一个周期内的生成时间,和第一应用的第一信号的周期的形式。
可选的,本申请实施例还可以包括步骤S302:
S302,根据第一应用的第一信号时序信息,确定第二信号时序信息。
步骤S302可以在步骤S301之前执行,也可以在步骤S301之后、S303之前执行。
其中,第二信号时序信息可以包括用于生成第二信号的时间信息。云服务系统在第一应用的第一信号时序信息确定之后,可以根据第一信号时序信息,确定用于生成第二信号的第二信号时序信息。一种实现方式中,第二信号是周期性生成的信号。可选的,生成第一应用的第二信号的周期,与生成第一应用的第一信号的周期相同,使得云服务系统对第一应用对应的图像处理和编码输出同频进行,保证第一应用的图像帧显示的时域连续并且无抖动。
这里,第二信号时序信息可以通过步骤S3021-S3022确定:S3021,确定第一信号在第一周期中的第一生成时间;S3022,根据第一生成时间以及处理第一应用中的第一图像帧的时长,确定第二信号在第一周期内的第二生成时间。其中,第一周期是可以是生成第一信号的任意一个周期,第一图像帧是云服务系统在第一周期中处理得到的第一应用的图像帧。
处理第一应用中的第一图像帧的时长可以是在步骤S3021之前确定的,也可以是在步骤S3021之后,S3022之前确定的。一种确定处理第一图像帧的时长的方式中,云服务系统可以获取第一应用的至少一个图像帧的第一处理时长记录,根据该第一处理时长记录,确定处理所述第一应用中的第一图像帧的时长。第一应用的第一处理时长记录可以包含云服务系统对第一应用的至少一个图像帧进行图像处理测试时,得到的多个图像处理时长记录,进而可以将最长的图像处理时长记录确定为处理所述第一应用中的第一图像帧的时长,或者将第一处理时长记录的平均值确定为处理所述第一应用中的第一图像帧的时长,或者将最长的第一处理时长记录的一定百分比的时长,确定为处理所述第一应用中的第一图像帧的时长,等等,具体确定方式不限于上述几种。另一种确定处理第一图像帧的时长的方式中,云服务系统可以获取第一应用的图像处理需求参数,例如图像格式、图像尺寸、光线投射参数、光线跟踪参数等,根据该图像处理需求参数对第一应用的图像处理耗时进行评估,得到处理所述第一应用中的第一图像帧的时长。
具体的,在根据第一生成时间以及处理第一图像帧的时长,确定第二生成时间时,可以根据处理第一应用的第一图像帧的时长确定第一时长,进而,将从第一生成时间起,经过第一时长之后的时间确定为第二生成时间。其中,一种实现方式中,第一时长可以与处理第一应用的第一图像帧的时长相等;另一种实现方式中,第一时长可以大于处理第一应用的第一图像帧的时长,并且小于第一信号的周期。
也就是说,第一时长是第一应用的第一图像帧的图像处理开始时间到编码输出开始时间之间的间隔时长,若第一应用在某一个第一周期内的第一信号触发了针对第一应用的图像处理,得到了第一应用的第一图像帧,那么将在该第一周期中第一信号的第一生成时间之后,经过第一时长的时间,设置为生成用于触发对第一图像帧进行编码输出的第二信号的第二生成时间。从而保证了对第一应用的多个图像帧按照云交互类应用触发的先后顺序,依次进行图像处理和编码输出,实现了第一应用的图像帧输出的有序性和可控性。
参阅图5,图5是本申请实施例提供的一种第二生成时间的示意图,第一应用的第一信号的周期为T,第一时长为s,其中,T>s,如图5所示,t1时刻、t1+T时刻和t1+2T时刻是第一应用的第一信号在三个第一周期内的第一生成时间,以这三个周期为例,说明第一应用的第二信号时序信息的确定。
针对这三个周期,分别将从t1时刻、t1+T时刻和t1+2T时刻起,经过s时长之后的时刻,即,t1+s时刻、t1+T+s时刻和t1+2T+s时刻,确定为在这三个周期内生成第一应用的第二信号的第二生成时间。其中,第一时长s,是第一应用的图像帧的图像处理开始时刻到编码输出开始时刻之间的间隔时长,假如在t1时刻生成的第一信号,会触发对第一应用的第n帧图像帧的图像处理(正常情况下,在t1+s时刻已经得到图像处理完成的第n帧图像帧),那么在t1+s时刻生成的第二信号,将会触发对第n帧图像帧的编码输出。相应地,在t1+T时刻生成的第一应用的第一信号,会触发对第一应用的第n+1帧图像帧的图像处理,在t1+T+s时刻生成的第二信号,将会触发对第n+1帧图像帧的编码输出;在t1+2T时刻生成的第一应用的第一信号,会触发对第一应用的第n+2帧图像帧的图像处理,在t1+2T+s时刻生成的第二信号,将会触发对第n+2帧图像帧的编码输出。
关于第一时长的设置方式,另一种可选的方式中,第一时长可以是云服务系统为其承载运行的应用设置统一的固定的信号间隔时长,该信号间隔时长可以是根据处理云服务系统中各个云交互类应用的图像帧的时长(包括处理第一应用中的第一图像帧的时长)确定的。确定处理云服务系统中各个云交互类应用的图像帧的时长,与确定处理第一应用中的第一图像帧的时长方式类似,这里不再赘述。处理云服务系统中各个云交互类应用的图像帧的时长确定之后,一种实现方式中,为减少云计算系统的数据计算量和数据存储量,同时为确保云服务系统针对各个云交互类应用的图像帧,均进行有序的图像处理和编码输出,云服务系统可以将处理各个云交互类应用的图像帧的时长中最长的时长,确定为各个云交互类应用统一的、固定的第一时长。
在一种可选的方式中,第一应用可以包含多个功能场景,例如,若第一应用是云游戏,该云游戏中可以包含进行游戏参数设置场景,游戏角色的实时虚拟竞技场景,售卖装备、皮肤、坐骑等虚拟商品的购物商城场景,等等。不同的功能场景对应不同的场景图像处理耗时(也就是处理不同功能场景下的图像帧的时长不同),例如游戏参数设置场景对应的图像帧,通常仅需要在已有的参数设置框架下,根据用户的参数设置操作对控件进行简单的图像处理,其对应的场景图像处理耗时较小;购物商城场景对应的图像帧,通常需要对装备、皮肤、坐骑等商品的虚拟形象进行图像处理,其对应的场景图像处理耗时可以高于游戏参数设置场景对应的场景图像处理耗时;而实时虚拟竞技场景对应的图像帧,通常需要根据用户对游戏角色的操作,对游戏场景、游戏角色、游戏特效等进行较为复杂的图像处理,对应的场景图像处理耗时可以高于购物商城场景对应的场景图像处理耗时。
因此,在根据第二信号时序信息的过程中,针对第一应用不同的功能场景对应的图像帧,可以设置不同的第二信号的生成时间。具体的,上述第一图像帧可以是第一应用中的第一功能场景对应的图像帧,云服务系统在第二周期中,即将生成第一应用在第二功能场景对应的第二图像帧,那么,可以通过步骤S3023-S3025确定第二周期中生成第二信号的时间:S3023,确定第一信号在第二周期中的第三生成时间;S3024,确定处理第二图像帧的时长;S3025,根据第三生成时间以及处理第二图像帧的时长,确定第二信号在第二周期内的第四生成时间。
其中,一种确定处理第二图像帧的时长的方式中,处理第二图像帧的时长是第二功能场景对应的场景图像处理耗时,云服务系统可以获取处理第二功能场景下对应的至少一个图像帧的第二处理时长记录,根据第二处理时长记录,确定出第二功能场景对应的场景图像处理耗时(也就是处理第二图像帧的时长)。第二处理时长记录可以包含云服务系统对第一应用在第二功能场景下的图像帧进行图像处理测试时,得到的多个图像处理时长记录。另一种确定处理第二图像帧的时长的方式中,可以获取第二功能场景下的第二图像帧的图像处理需求参数,根据该图像处理需求参数对处理第二图像帧的时长进行评估。
这里,步骤S3024可以是在S3023之前执行的,例如S3024中可以实现预先为不同功能场景下的图像帧,配置对应的场景图像处理耗时,进而在S325中可以获取该预配置的场景图像处理耗时,进而快速确定第四生成时间。步骤S3024也可以是在S3023之后、S3025之前执行的,例如S3024中可以即时获取即将生成的第二图像帧的图像处理需求参数,进而评估对应的场景图像处理耗时,并准确地确定出第二功能场景下第二图像帧对应的第四生成时间。
通过对第一应用在功能场景粒度上设置对应的第二信号时序信息,使得针对渲染资源需求不同的功能场景,在得到其图像帧之后,都可以适应性地根据对应的第二信号时序信息,尽快将图像帧编码输出,在保证云服务系统中应用图像输出延迟的可控性的前提下,增强了应用图像输出延迟管理的多样性,满足了不同功能场景的低延迟需求。
S303,生成第二信号,第二信号用于触发对处理后的第一应用中的图像帧进行编码输出,其中,生成第一信号的时间与生成第二信号的时间不同。
一种实现方式中,云服务系统可以通过函数模拟出第一应用的第二信号,并通过该第二信号控制图像编码装置对第一应用的图像帧进行编码输出。另一种实现方式中,云服务系统可以控制硬件设备,如显卡,生成沿信号(包括上升沿信号或下降沿信号)作为第一应用的第二信号,云服务系统在检测到该沿信号后,指示图像编码装置对第一应用的图像帧进行编码输出。
这里,第二信号和第一信号是在不同时间生成的信号,一种实现方式中,第一信号和第二信号均是是周期性生成的信号,第一信号的生成周期与第二信号的生成周期可以相同,但生成时间不相同,即第一信号和第二信号是时间交错地生成的,并且二者的生成时间间隔固定。
可选的,步骤S303中云服务系统可以根据步骤S302中确定的第二信号时序信息,生成第二信号。第二信号时序信息中包含用于生成第二信号的第二生成时间,进而在对应的第二生成时间生成第二信号。
本申请实施例中,云服务系统可以在不同时间分别生成第一信号和第二信号,第一信号用于触发云服务系统对第一应用中的图像帧进行图像处理,第二应用用于触发对处理后的云交互类应用的图像帧进行编码输出。在第一信号触发处理得到第一应用的图像帧之后,在检测到第二信号后即可对第一应用的图像帧进行编码输出,可以通过第二信号灵活地控制图像帧的编码输出,压缩了图像帧处理完成后到开始编码输出之间的时间,降低了第一应用的图像显示输出时延。
参阅图6,图6是本申请实施例提供的另一种触发信号生成方法的流程示意图,如图6所示,所述方法可以包括以下步骤S601-S607。
S601,根据第一信号时序信息,生成第一应用的第一信号。
其中,第一应用是云服务系统承载运行的云交互类应用,第一信号时序信息中包含生成第一应用的第一信号的时间信息,第一应用的第一信号用于触发云服务系统对第一应用中的图像帧进行图像处理。
S602,根据第一应用的第一信号时序信息,确定第一应用的第二信号时序信息。
第二信号时序信息包含生成第二信号的时间信息,第一应用的第二信号用于触发对处理后的第一应用的图像帧进行编码输出。根据第一信号时序信息确定第二信号时序信息的具体方式,可以参阅图3对应的实施例中步骤S302的具体实现方式,此处不再赘述。
S603,根据第二信号时序信息,生成第一应用的第二信号。
S604,根据第二信号时序信息,确定第二应用的第三信号时序信息。
其中,第三信号时序信息中包含生成第二应用的第三信号的时间信息,第二应用是云服务系统新增部署的云交互类应用,第二应用的第三信号用于触发云服务系统对第二应用中的图像帧进行图像处理。
其中,云服务系统当前承载运行有包含第一应用的至少一个云交互类应用,各个云交互类应用有各自的用于触发云服务系统对自身的图像帧进行图像处理的信号,以及触发对处理后自身的图像帧进行编码输出的信号。也就是说,云服务系统在新增第二应用时,云服务系统中已经承载运行了包含第一应用的至少一个云交互类应用,那么为了避免各个云交互类应用对图像编码装置的占用冲突,云服务系统在确定第二应用的第三信号时序信息的过程中,需要考虑已经承载运行的云交互类应用的信号的生成时间。
可选的,第二应用的第三信号计划在第三周期中生成,参阅图7,图7是本申请实施例提供的一种确定第三信号时序信息的流程示意图,如图7所示,可以通过步骤S6041-S6043确定第三信号时序信息:
S6041,确定第一应用的第二信号在第三周期中的第五生成时间。
S6042,确定第五生成时间到目标信号的生成时间之间的第一时间间隔,目标信号是在第五生成时间之后,最早生成的用于触发云服务系统对应用中的图像帧进行图像处理的信号。
具体的,若云服务系统在新增第二应用时,云服务系统当前承载运行的云交互类应用仅有第一应用,那么在第五生成时间之后,最早生成的用于触发云服务系统对应用中的图像帧进行图像处理的信号,也就是目标信号,即为在第三周期的下一个周期中生成的第一应用的第一信号;若云服务系统在新增第二应用时,云服务系统当前承载运行的交互类应用有包含第一应用的多个应用,此时,第一应用可以是云服务系统承载运行的任一云交互类应用,第一应用确定之后,即可根据第一应用的第五生成时间和目标信号的生成时间,确定第一时间间隔,这里,目标信号是触发云服务系统对第一应用以外的其他云交互类应用的图像帧进行图像处理的信号。
参阅图5,以图5为例介绍云服务系统中当前承载运行的云交互类应用仅有第一应用时,第一时间间隔的确定。在图5的示意图中,若当前时刻是t1时刻,t1时刻、t1+T时刻和t1+2T时刻分别是在最近的三个周期内生成第一应用的第一信号的时刻,t1+s时刻、t1+T+s时刻和t1+2T+s时刻分别是这三个周期内将要生成第一应用的第二信号的时刻,此时,第一时间间隔可以是第一应用的第二信号到之后相邻的第一应用的第一信号的时间间隔,可以是t1+s时刻到t1+T之间的时刻,也可以是t1+T+s时刻到t1+2T时刻之间的时间间隔等,该时间间隔的时长均为T-s。
参阅图8,以图8为例介绍云服务系统中当前承载运行的云交互类应用有包含第一应用的多个云交互类应用时,第一时间间隔的确定。图8是本申请实施例提供的一种第一时间间隔的示意图,假设云服务系统当前运行的云交互类应用有应用1和应用2,用于触发云交互类应用对应用1中的图像帧进行图像处理的信号记为信号1,用于触发对处理后应用1的图像帧进行编码输出的信号记为信号2,用于触发云交互类应用对应用2中的图像帧进行图像处理的信号记为信号3,用于触发对处理后应用2的图像帧进行编码输出的信号记为信号4。
如图8所示,若当前时刻是t3,t3时刻、t3+T时刻和t3+2T时刻分别是在最近的三个周期内将要生成应用1的信号1的时刻,t3+s时刻、t3+T+s时刻和t3+2T+s时刻分别是这三个周期内将要生成应用1的信号2的时刻,t4时刻、t4++T时刻和t4+2T时刻分别是在最近的三个周期内将要生成应用2的信号3的时刻,t4+r时刻、t4+T+r时刻和t4+2T+r时刻分别是这三个周期内将要生成应用2的信号4的时刻。
此时,云服务系统中的应用1和应用2中任意一个应用均可以被确定为第一应用。若应用1是第一应用,那么,第一时间间隔是应用1的信号2的生成时间(第五生成时间)到之后的应用2的第一个信号3(目标信号)的生成时间之间的时间间隔,例如,可以是t3+s时刻到t4时刻之间的时间间隔,或是t3+T+s时刻到t4+T时刻之间的时间间隔,或是t3+2T+s时刻到t4+2T时刻之间的时间间隔等,该时间间隔的时长均为t4-3-s。若应用2是第一应用,那么,第一时间间隔是应用2的信号4的生成时间(第五生成时间)到之后的应用1的第一个信号1(目标信号)的生成时间之间的时间间隔,例如,可以是t4+r时刻到t3+T时刻之间的时间间隔,或是t4+T+r时刻到t3+2T时刻之间的时间间隔等,该时间间隔的时长均为t3+T-t4-r。
可以理解的是,当前时刻为t3时刻,在将应用1确定为第一应用的情况下,第二应用的第三信号的生成时间,会早于在将应用2确定为第一应用的情况下,第二应用的第三信号的生成时间,所以,将应用1确定为第一应用可以更快地生成第二应用的第三信号,进而更快地触发对第二应用的图像处理。
S6043,在处理第二应用的图像帧的时长小于或等于第一时间间隔的情况下,根据所述第五生成时间和所述处理所述第二应用的图像帧的时长,确定在所述第三周期中生成第三信号的第六生成时间。
若第二应用的图像帧的时长小于或等于第一时间间隔,也就是说,图像渲染装置在第一时间间隔内(即第一应用的第二信号到目标信号之间),图像渲染装置处于空闲状态,那么就可以生成第二应用的第三信号,并进而触发对第二应用的图像处理。
一种实现方式中,可以将第三周期中不早于第五生成时间,并且与目标信号的生成时间之间的时间间隔不小于处理第二应用的图像帧的时长的时间,确定为在所述第三周期中生成第三信号的第六生成时间。也就是说,在第六生成时间与目标信号的生成时间之间的时间间隔,大于处理第二应用的图像帧的时长的前提下,可以把第六生成时间确定为与第五生成时间相同的时间,也可以把第五生成时间之后的某一个时间,确定为第六生成时间。可以理解的是,为保证第二应用的第一信号的周期均匀,各个周期内第二应用的第六生成时间和第一应用的第五生成时间之间的时间间隔相同。
参阅图9,图9是本申请实施例提供的一种确定第二应用的第六生成时间的示意图,如图9所示,第一应用的第一信号的周期为T,第一应用的第一信号与之后相邻的第一应用的第二信号之间的第一时长为s,其中,T>s,处理第二应用的图像帧的时长为m,如图9所示,t2时刻、t2+T时刻和t2+2T时刻是第一应用的第一信号在三个周期内的生成时间,t2+s时刻、t2+T+s时刻和t2+2T+s时刻分别是第一应用的第二信号在对应的三个周期生成的时刻(即第五生成时间)。一种实现方式中,可以将t2+s时刻、t2+T+s时刻和t2+2T+s时刻确定为生成第二应用的第三信号的时刻(即第六生成时间),该种实现方式中,t2+s时刻到t2+T时刻之间的时间间隔,以及t2+T+s时刻到t2+2T时刻之间的时间间隔均不小于m;另一种实现方式中,也可以将第五生成时间之后的某一时间确定为第六生成时间,例如图9中所示的t2+s+l时刻、t2+T+s+l时刻和t2+2T+s+l时刻确定为生成第二应用的第三信号的时间,该种实现方式中,t2+s+l时刻到t2+T时刻之间的时间间隔,以及t2+T+s+l时刻到t2+2T时刻之间的时间间隔均不小于m。不难看出,第二应用的第三信号的周期,与第一应用的第一信号的周期T相同,云服务系统中各个应用的触发信号的同频性,保证了对各个应用分配图像渲染装置资源的可控性。
S605,根据第三信号时序信息,生成第二应用的第三信号。
S606,根据第三信号时序信息,确定第二应用的第四信号时序信息。
其中,第四信号时序信息包含生成第二应用的第四信号的时间信息,第二应用的第四信号是用于触发对处理后的第二应用的图像帧进行编码输出的信号。这里,根据第二应用的第三信号时序信息确定生成第二应用的第四信号时序信息,具体实现方式可以参阅图3对应的实施例中,根据第一应用的第一信号时序信息,确定第一应用的第二信号时序信息的实现方式,此处不再赘述。
S607,根据第四信号时序信息,生成第二应用的第四信号。
云服务系统通过第四信号灵活地控制第二应用的图像帧的编码输出,降低了第二应用的图像帧的显示延迟。
可以理解的是,在云服务系统中部署第一应用时,若第一应用是云服务系统中部署的第一个云交互类应用,第一应用的第一信号时序信息的设置不受约束,即第一应用的第一信号的生成时间可以按照预设的周期设置在任意时间;若第一应用不是云服务系统中部署的第一个云交互类应用,那么第一应用的第一信号时序信息,需要根据云服务系统中已完成部署运营的云交互类应用的用于触发图像处理的信号的时序信息,以及用于触发对图像帧编码输出的信号的时序信息进行确定,具体实现方式可以参阅第二应用的第三信号时序信息的确定,此处不再赘述。
在一种可选的实现方式中,若第一应用是云服务系统中部署的第一个应用,可以无约束地设置第一应用的第一信号时序信息,进而根据第一应用的第一信号时序信息确定第一应用的第二信号时序信息(包含第一应用的第二信号在各个周期的生成时间)。若第二应用是在部署第一应用之后在云服务系统中新增的应用,假设此时第一应用的第二信号到第一应用的下一个第一信号之间的时间间隔,不小于处理第二应用的图像帧的时长,那么在确定第二应用的第三信号时序信息时,可以将第一应用的第二时序信息确定为第二应用的第三信号时序信息,也就是将第二应用的第三信号的生成时间,确定在第一应用的第二信号的生成时间,即图像渲染装置在对第一应用完成图像处理之后,若第二应用有图像处理需求,可以即刻对第二应用进行图像处理,进而根据第二应用的第三信号时序信息确定第二应用的第四信号时序信息(包含第二应用的第四信号在各个周期的生成时间)。若在第二应用部署之后,云服务系统又新增其他云交互类应用,可以参照第二应用的时序信息的确定方式进行确定,直到出现用于触发对最后一个已部署的应用的图像帧的信号的生成时间,到下一个第一应用的第一信号的生成时间之间的时间间隔,小于处理新增应用的图像帧的时长的情况时,可以对图像渲染装置进行设备扩展、性能提升等处理,保证新增应用的图像处理不会与已部署应用的图像处理冲突。
参阅图10,图10为本申请实施例提供的一种云服务系统中应用的信号时序示意图,应用1、应用2和应用3分别是云服务系统中依次部署的云交互类应用,应用1是云服务系统中部署的第一个应用,图10中示出了这三个应用的用于触发云服务系统对自身的图像帧进行图像处理的信号(图10中较高的箭头表示,这里记为图像处理信号)的时序信息,以及用于触发对自身的处理后的图像帧进行编码输出的信号(图10中较矮的箭头表示,这里记为编码输出信号)的时序信息,其中,应用2的图像处理信号的时序信息与应用1的编码输出信号的时序信息相同,应用3的图像处理信号的时序信息与应用2的编码输出信号的时序信息相同。若继续在云服务系统中部署云交互类应用,应用3的编码输出信号的生成时间,到应用1的下一个图像处理信号的生成时间之间的时间间隔,为图像渲染装置的可用时间段,在该可用时间段的时长大于处理待部署云交互类应用的图像帧的时长的情况下,可以将应用3的编码输出信号的时序信息,确定为待部署云交互类应用的图像处理信号的时序信息。
通过将云服务系统中部署的应用,按照部署顺序依次进行新增应用图像处理信号的时序信息,与最后一个已部署应用的编码输出信号的时序信息的同步,不仅可以最早地生成新增应用的图像处理信号,进而最早地触发对新增应用的图像帧进行的图像处理,并且,可以实现对图像渲染装置最大化地利用,此外在新增应用时,图像处理装置的可用时间段也仅有一个,节约了云服务系统的计算处理资源。
本申请实施例中,云服务系统针对第一应用和第二应用均通过各自的两个不同的信号,分别触发对各自图像帧的图像处理和编码输出,压缩了第一应用和第二应用各自的图像帧处理完成后到开始编码输出之间的时间,降低了第一应用和第二应用的图像显示输出时延;同时,第二应用的第三信号时序信息是根据第一应用的第二信号时序信息确定的,实现了云服务系统中部署的多个应用对图像渲染装置的合理有序占用,避免了不合理利用带来的占用冲突,进而导致排队和延迟增加的问题。
上文主要从方法的角度对本申请实施例提供的方案进行了介绍。可以理解的是,云服务系统为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。结合本申请中所公开的实施例描述的各示例的组件及步骤,本申请实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同的方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的技术方案的范围。
下面介绍本申请实施例提供的触发信号生成方法的相关装置,参见图11,图11是本申请实施例提供的一种触发信号生成装置结构示意图。该触发信号生成装置通过其内置的组件可以执行如图3或图6对应的方法实施例。如图11所示,所述触发信号生成装置11可以至少包括生成模块111,其中:
生成模块111,用于生成第一信号,所述第一信号用于触发所述云服务系统对第一应用中的图像帧进行图像处理;
所述生成模块111,还用于生成第二信号,所述第二信号用于触发对处理后的所述第一应用中的图像帧进行编码输出,其中,生成所述第一信号的时间和与生成所述第二信号的时间不同。
可选的,所述第一信号和所述第二信号为周期性生成的信号,
所述装置11还包括:
确定模块112,用于根据所述第一应用的第一信号时序信息,确定第二信号时序信息,其中,所述第一信号时序信息包括生成所述第一信号的时间信息,所述第二信号时序信息包括生成所述第二信号的时间信息。
可选的,所述确定模块112,具体用于:
确定所述第一信号在第一周期中的第一生成时间;
根据所述第一生成时间以及处理所述第一应用中的第一图像帧的时长,确定所述第二信号在所述第一周期内的第二生成时间,其中,所述第一图像帧是所述云服务系统在所述第一周期中处理的图像帧。
可选的,所述第一图像帧为所述第一应用中的第一功能场景对应的图像帧,第二图像帧为所述第一应用中的第二功能场景对应的图像帧,
所述确定模块112,还具体用于:
确定所述第一信号在第二周期中的第三生成时间;
确定处理所述第二图像帧的时长,其中,所述第二图像帧是所述云服务系统在所述第二周期中处理的所述第一应用的图像帧;
根据所述第三生成时间以及处理所述第二图像帧的时长,确定所述第二信号在所述第二周期内的第四生成时间。
可选的,所述确定模块112,还用于:
获取所述第一应用的至少一个图像帧的第一处理时长记录;
根据所述第一处理时长记录,确定所述处理所述第一应用中的第一图像帧的时长。
可选的,所述确定模块112,还用于:
确定所述第一应用的第二信号在第三周期中的第五生成时间;
确定所述第五生成时间到目标信号的生成时间之间的第一时间间隔,所述目标信号是在所述第五生成时间之后,最早生成的用于触发所述云服务系统对应用中的图像帧进行图像处理的信号;
在处理第二应用中的图像帧的时长小于或等于所述第一时间间隔的情况下,根据所述第五生成时间和所述处理第二应用中的图像帧的时长,确定在所述第三周期中生成第三信号的第六生成时间,所述第三信号用于触发所述云服务系统对所述第二应用中的图像帧进行图像处理。
可以理解的,本申请实施例中的触发信号生成装置11可以实现图3和图6所示实施例中的步骤。关于图11的触发信号生成装置包括的功能组件的具体实现方式及相应的有益效果,可参考前述图3和图6的实施例的具体介绍。
参阅图12,图12是本申请实施例提供的另一种触发信号生成装置的结构示意图,如图12所示,所述触发信号生成装置12包括:处理器121和存储器123,处理器121和存储器123通过总线124耦合。
处理器121可以是一个或多个中央处理器(Central Processing Unit,CPU),在处理器121是一个CPU的情况下,该CPU可以是单核CPU,也可以是多核CPU。
处理器121用于读取存储器123中存储的程序以执行本申请上述实施例中由触发信号生成装置12执行的方法的部分或全部步骤。
存储器123可包括但不限于随机存储记忆体(Random Access Memory,RAM)、可擦除可编程只读存储器(Erasable Programmable ROM,EPROM)、只读存储器(Read-OnlyMemory ROM)或便携式只读存储器(Compact Disc Read-Only Memory,CD-ROM)等等,该存储器123用于存储程序,处理器121可以读取存储器123中存储的程序,执行本申请上述实施例中由触发信号生成装置12执行的方法的部分或全部步骤。
可选的,所述触发信号生成装置12还包括通信接口122,所述通信接口122用于接收和发送数据。
举例来说,所述通信接口122用于接收处理云交互类应用的图像帧的时长等;
所述处理器121,用于
生成第一信号,所述第一信号用于触发所述云服务系统对第一应用中的图像帧进行图像处理;
生成第二信号,所述第二信号用于触发对处理后的所述第一应用中的图像帧进行编码输出,其中,生成所述第一信号的时间和与生成所述第二信号的时间不同。
在一些可能的实现方式中,所述第一信号和所述第二信号为周期性生成的信号,
所述处理器121还用于:
根据所述第一应用的第一信号时序信息,确定第二信号时序信息,其中,所述第一信号时序信息包括生成所述第一信号的时间信息,所述第二信号时序信息包括用于生成所述第二信号的时间信息。
在一些可能的实现方式中,所述处理器121具体用于:
确定所述第一信号在第一周期中的第一生成时间;
根据所述第一生成时间以及处理所述第一应用中的第一图像帧的时长,确定所述第二信号在所述第一周期内的第二生成时间,其中,所述第一图像帧是所述云服务系统在所述第一周期中处理的图像帧。
在一些可能的实现方式中,所述第一图像帧为所述第一应用中的第一功能场景对应的图像帧,第二图像帧为所述第一应用中的第二功能场景对应的图像帧,
所述处理器121还具体用于:
确定所述第一信号在第二周期中的第三生成时间;
确定处理所述第二图像帧的时长,其中,所述第二图像帧是所述云服务系统在所述第二周期中处理的图像帧;
根据所述第三生成时间以及处理所述第二图像帧的时长,确定所述第二信号在所述第二周期内的第四生成时间。
在一些可能的实现方式中,所述处理器121还用于:
获取所述第一应用的至少一个图像帧的第一处理时长记录;
根据所述第一处理时长记录,确定所述处理所述第一应用中的第一图像帧的时长。
在一些可能的实现方式中,所述处理器121还用于:
确定所述第一应用的第二信号在第三周期中的第五生成时间;
确定所述第五生成时间到目标信号的生成时间之间的第一时间间隔,所述目标信号是在所述第五生成时间之后,最早生成的用于触发所述云服务系统对应用中的图像帧进行图像处理的信号;
在处理第二应用中的图像帧的时长小于或等于所述第一时间间隔的情况下,根据所述第五生成时间和所述处理第二应用的图像帧的时长,确定在所述第三周期中生成第三信号的第六生成时间,所述第三信号用于触发所述云服务系统对所述第二应用中的图像帧进行图像处理。
本申请实施例中还提供了一种计算机存储介质,可以用于存储图12所示实施例中触发信号生成装置12所用的计算机软件指令,其包含用于执行上述实施例中为触发信号生成装置所设计的程序。该存储介质包括但不限于快闪存储器、硬盘、固态硬盘。
在本申请实施例中还提供了一种计算机程序产品,该计算机产品被触发信号生成装置运行时,可以执行上述图12所示实施例中为触发信号生成装置所设计的触发信号生成方法。
本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序或特定数量。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
本领域普通技术人员可以理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。