发明内容
针对现有技术存在的技术问题,本申请实施例提供一种画面处理方法与装置、电子设备及存储介质。
第一方面,本申请实施例提供了一种画面处理方法,包括:
获取云端实例初始分辨率、终端的显示屏分辨率和终端的DPI,计算所述云端实例初始分辨率的宽与终端的显示屏分辨率的宽的比值记作第一比值,以及所述云端实例初始分辨率的高与终端的显示屏分辨率的高的比值记作第二比值,并根据所述第一比值和第二比值确定显示比率;
根据所述显示比率和终端的显示屏分辨率计算云端实例虚拟显示分辨率,并根据所述显示比率和终端的DPI计算云端实例虚拟显示DPI;
利用所述云端实例虚拟显示分辨率和云端实例虚拟显示DPI对云应用运行过程中产生的画面进行渲染以得到渲染画面,并将所述渲染画面发送给所述终端。
第二方面,本申请实施例还提供了一种画面处理装置,包括:
第一计算单元,用于获取云端实例初始分辨率、终端的显示屏分辨率和终端的DPI,计算所述云端实例初始分辨率的宽与终端的显示屏分辨率的宽的比值记作第一比值,以及所述云端实例初始分辨率的高与终端的显示屏分辨率的高的比值记作第二比值,并根据所述第一比值和第二比值确定显示比率;
第二计算单元,用于根据所述显示比率和终端的显示屏分辨率计算云端实例虚拟显示分辨率,并根据所述显示比率和终端的DPI计算云端实例虚拟显示DPI;
渲染单元,用于利用所述云端实例虚拟显示分辨率和云端实例虚拟显示DPI对云应用运行过程中产生的画面进行渲染以得到渲染画面,并将所述渲染画面发送给所述终端。
第三方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如第一方面所述的画面处理方法的步骤。
第四方面,本申请实施例还提供了一种电子设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如第一方面所述的画面处理方法的步骤。
综上,本申请实施例提供的画面处理方法与装置、电子设备及存储介质,由所述云端实例初始分辨率的宽与终端的显示屏分辨率的宽的比值,以及所述云端实例初始分辨率的高与终端的显示屏分辨率的高的比值确定显示比率;根据所述显示比率和终端的显示屏分辨率计算云端实例虚拟显示分辨率,根据所述显示比率和终端的DPI计算云端实例虚拟显示DPI;利用此种方式确定出的云端实例虚拟显示分辨率和云端实例虚拟显示DPI渲染出的画面能够与终端显示屏适配,不会出现宽或高方向上的变形现象,以及显示过小或溢出屏幕的情况。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
另外,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请实施例中将会用到术语“包括”,用于指出其后所声明的特征的存在,但并不排除增加其它的特征。
参照图1所示,为本申请实施例提供的一种画面处理方法的流程示意图,该方法应用于云端服务器,具体包括:
S10、获取云端实例初始分辨率、终端的显示屏分辨率和终端的DPI,计算所述云端实例初始分辨率的宽与终端的显示屏分辨率的宽的比值记作第一比值,以及所述云端实例初始分辨率的高与终端的显示屏分辨率的高的比值记作第二比值,并根据所述第一比值和第二比值确定显示比率;
本实施例中,云端实例初始分辨率可以从配置服务器获取,终端的显示屏分辨率和终端的DPI可以通过解析终端为请求登录云应用而向云端服务器发送的登录请求获得。云端服务器在获得云端实例初始分辨率、终端的显示屏分辨率和终端的DPI后,会根据云端实例初始分辨率和终端的显示屏分辨率计算第一比值和第二比值,并根据第一比值和第二比值的大小关系确定显示比率。其中,所述显示比率用于调整云端实例虚拟显示分辨率和DPI。
S11、根据所述显示比率和终端的显示屏分辨率计算云端实例虚拟显示分辨率,并根据所述显示比率和终端的DPI计算云端实例虚拟显示DPI;
本实施例中,在计算出显示比率后,需要根据所述显示比率调整云端实例虚拟显示分辨率和DPI。此调整过程是以终端的显示参数为基准,按同一调整比率(即显示比率)进行调整,具体来说,将终端的显示屏分辨率按照显示比率进行调整后的结果作为云端实例虚拟显示分辨率,将终端的DPI按照显示比率进行调整后的结果作为云端实例虚拟显示DPI。
S12、利用所述云端实例虚拟显示分辨率和云端实例虚拟显示DPI对云应用运行过程中产生的画面进行渲染以得到渲染画面,并将所述渲染画面发送给所述终端。
本实施例中,云端实例虚拟显示分辨率和云端实例虚拟显示DPI是渲染参数,在计算出渲染参数后,云端服务器即可利用渲染参数对云应用运行过程中产生的画面进行渲染来得到渲染画面,之后对渲染画面编码后发送给终端。
本申请实施例提供的画面处理方法,由所述云端实例初始分辨率的宽与终端的显示屏分辨率的宽的比值,以及所述云端实例初始分辨率的高与终端的显示屏分辨率的高的比值确定显示比率;根据所述显示比率和终端的显示屏分辨率计算云端实例虚拟显示分辨率,根据所述显示比率和终端的DPI计算云端实例虚拟显示DPI;利用此种方式确定出的云端实例虚拟显示分辨率和云端实例虚拟显示DPI渲染出的画面能够与终端显示屏适配,不会出现宽或高方向上的变形现象,以及显示过小或溢出屏幕的情况。
在前述方法实施例的基础上,所述显示比率可以为所述第一比值和第二比值中的较小值,其中,所述云端实例虚拟显示分辨率的宽可以为对第一数值向上取整为第一正整数的倍数的结果,所述云端实例虚拟显示分辨率的高可以为对第二数值向上取整为第一正整数的倍数的结果,所述云端实例虚拟显示DPI可以为对第三数值向上取整为第一正整数的倍数的结果,所述第一数值可以为所述终端的显示屏分辨率的宽与所述显示比率的乘积,所述第二数值可以为所述终端的显示屏分辨率的高与所述显示比率的乘积,所述第三数值可以为所述终端的DPI与所述显示比率的乘积。
本实施例中,所述显示比率可以为所述第一比值和第二比值中的较小值,第一正整数可以为2、4、6、7、8等正整数,具体可以根据需要设置,此处不再赘述。申请人在具体实施本方案的时候,发现当第一正整数为8,即当所述云端实例虚拟显示分辨率的宽和高分别设置为对所述第一数值向上取整为8的倍数的结果,以及对所述第二数值向上取整为8的倍数的结果,且所述云端实例虚拟显示DPI设置为对所述第三数值向上取整为8的倍数的结果时,云端服务器渲染出的画面与终端显示屏适配性较好。
本实施例中,云端实例虚拟显示分辨率的宽、云端实例虚拟显示分辨率的高、云端实例虚拟显示DPI设置为终端的对应参数与显示比率的乘积向上取整为第一正整数的倍数的结果,相较于前述实施例,云端服务器渲染出的画面与终端显示屏适配性能大幅提升。
在前述方法实施例的基础上,所述方法还可以包括:
获取终端的波流分辨率,计算所述终端的波流分辨率的宽与终端的显示屏分辨率的宽的比值记作第三比值,以及所述终端的波流分辨率的高与终端的显示屏分辨率的高的比值记作第四比值,并根据所述第三比值和第四比值确定波流比率;
根据所述波流比率和终端的显示屏分辨率计算编码分辨率;
其中,在所述将所述渲染画面发送给所述终端之前,还可以包括:
利用所述编码分辨率对所述渲染画面进行编码;
其中,所述将所述渲染画面发送给所述终端,可以包括:
将所述渲染画面的编码结果发送给所述终端。
本实施例中,可以理解的是,在将渲染画面发送给终端之前,需要对渲染画面进行编码,而编码使用的编码分辨率可以根据波流比率和终端的显示屏分辨率计算得到。其中,波流比率根据终端的波流分辨率的宽与终端的显示屏分辨率的宽的比值以及终端的波流分辨率的高与终端的显示屏分辨率的高的比值计算得到。
本实施例中,将对渲染画面编码使用的编码分辨率设置为按照波流比率对终端的显示屏分辨率调整后的结果,相较于前述实施例,能够进一步提升终端接收到的云应用画面与终端显示屏的适配性。
在前述方法实施例的基础上,所述波流比率可以为所述第三比值和第四比值中的较小值,其中,所述编码分辨率的宽可以为对第四数值向上取整为第二正整数的倍数的结果,所述编码分辨率的高可以为对第五数值向上取整为第二正整数的倍数的结果,所述第四数值可以为所述终端的显示屏分辨率的宽与所述波流比率的乘积,所述第五数值可以为所述终端的显示屏分辨率的高与所述波流比率的乘积。
本实施例中,所述波流比率可以为所述第三比值和第四比值中的较小值,第二正整数可以根据需要设置为2、4、6、7、8等正整数。申请人在实施本方案的过程中发现,当第二正整数和第一正整数相同,且均为8时,计算出的云端实例虚拟显示分辨率、云端实例虚拟显示DPI和编码分辨率为最优参数,即按这些参数渲染、编码后的云应用画面与终端显示屏适配性最好,且画面清晰度最高。
下面通过一具体实施例说明本申请的画面处理方案。
假设,云端实例初始分辨率为1920(宽)*1080(高),终端的显示屏分辨率为2160(宽)*1080(高),终端的DPI为480,终端的波流分辨率为1280(宽)*720(高),第一正整数和第二正整数均为8,f(a*b)表示对a和b的乘积向上取整为8的倍数的结果。
则显示比率=min(第一比值,第二比值)=min(云端实例初始分辨率的宽/终端的显示屏分辨率的宽,云端实例初始分辨率的高/终端的显示屏分辨率的高)= min(1920/2160,1080/1080)= 0.889;编码比率=min(第三比值,第四比值)=min(终端的波流分辨率的宽/终端的显示屏分辨率的宽,终端的波流分辨率的高/终端的显示屏分辨率的高)=min(1280/2160,720/1080)= 0.593。
云端实例虚拟显示分辨率的宽=f(终端的显示屏分辨率的宽*显示比率)= f(2160*0.889)=1920;
云端实例虚拟显示分辨率的高=f(终端的显示屏分辨率的高*显示比率)= f(1080*0.889)=960;
云端实例虚拟显示DPI=f(终端的DPI*显示比率)= f(480*0.889)=432;
编码分辨率的宽= f(终端的显示屏分辨率的宽*波流比率)= f(2160*0.593)=1280;
编码分辨率的高= f(终端的显示屏分辨率的高*波流比率)= f(1080*0.593)=640。
综上,云端实例虚拟显示分辨率为1920(宽)*960(高),云端实例虚拟显示DPI为432,编码分辨率为1280(宽)*640(高)。在云应用在云端服务器运行过程中,按照1920*960的云端实例虚拟显示分辨率和值为432的云端实例虚拟显示DPI对云应用运行过程中产生的画面进行渲染,并按照1280*640的编码分辨率对渲染结果进行编码,最后将编码结果发送给终端进行解码显示。
参照图2所示,为本申请实施例提供的一种画面处理装置的结构示意图,该装置具体包括:
第一计算单元20,用于获取云端实例初始分辨率、终端的显示屏分辨率和终端的DPI,计算所述云端实例初始分辨率的宽与终端的显示屏分辨率的宽的比值记作第一比值,以及所述云端实例初始分辨率的高与终端的显示屏分辨率的高的比值记作第二比值,并根据所述第一比值和第二比值确定显示比率;
第二计算单元21,用于根据所述显示比率和终端的显示屏分辨率计算云端实例虚拟显示分辨率,并根据所述显示比率和终端的DPI计算云端实例虚拟显示DPI;
渲染单元22,用于利用所述云端实例虚拟显示分辨率和云端实例虚拟显示DPI对云应用运行过程中产生的画面进行渲染以得到渲染画面,并将所述渲染画面发送给所述终端。
本申请实施例提供的画面处理装置,由所述云端实例初始分辨率的宽与终端的显示屏分辨率的宽的比值,以及所述云端实例初始分辨率的高与终端的显示屏分辨率的高的比值确定显示比率;根据所述显示比率和终端的显示屏分辨率计算云端实例虚拟显示分辨率,根据所述显示比率和终端的DPI计算云端实例虚拟显示DPI;利用此种方式确定出的云端实例虚拟显示分辨率和云端实例虚拟显示DPI渲染出的画面能够与终端显示屏适配,不会出现宽或高方向上的变形现象,以及显示过小或溢出屏幕的情况。
在前述装置实施例的基础上,所述显示比率可以为所述第一比值和第二比值中的较小值,其中,所述云端实例虚拟显示分辨率的宽可以为对第一数值向上取整为第一正整数的倍数的结果,所述云端实例虚拟显示分辨率的高可以为对第二数值向上取整为第一正整数的倍数的结果,所述云端实例虚拟显示DPI可以为对第三数值向上取整为第一正整数的倍数的结果,所述第一数值可以为所述终端的显示屏分辨率的宽与所述显示比率的乘积,所述第二数值可以为所述终端的显示屏分辨率的高与所述显示比率的乘积,所述第三数值可以为所述终端的DPI与所述显示比率的乘积。
在前述装置实施例的基础上,所述第一正整数可以为8。
在前述装置实施例的基础上,所述装置还可以包括:
第三计算单元,用于获取终端的波流分辨率,计算所述终端的波流分辨率的宽与终端的显示屏分辨率的宽的比值记作第三比值,以及所述终端的波流分辨率的高与终端的显示屏分辨率的高的比值记作第四比值,并根据所述第三比值和第四比值确定波流比率;
第四计算单元,用于根据所述波流比率和终端的显示屏分辨率计算编码分辨率;
编码单元,用于在所述渲染单元将所述渲染画面发送给所述终端之前,利用所述编码分辨率对所述渲染画面进行编码;
其中,所述渲染单元,具体可以用于:
将所述渲染画面的编码结果发送给所述终端。
在前述装置实施例的基础上,所述波流比率可以为所述第三比值和第四比值中的较小值,其中,所述编码分辨率的宽可以为对第四数值向上取整为第二正整数的倍数的结果,所述编码分辨率的高可以为对第五数值向上取整为第二正整数的倍数的结果,所述第四数值可以为所述终端的显示屏分辨率的宽与所述波流比率的乘积,所述第五数值可以为所述终端的显示屏分辨率的高与所述波流比率的乘积。
在前述装置实施例的基础上,所述第二正整数可以为8。
本申请实施例提供的画面处理装置,其实现过程与本申请实施例提供的画面处理方法一致,所能达到的效果也与本申请实施例提供的画面处理方法相同,在此不再赘述。
如图3所示,本申请实施例提供的一种电子设备,包括:处理器30、存储器31和总线32,所述存储器31存储有所述处理器30可执行的机器可读指令,当电子设备运行时,所述处理器30与所述存储器31之间通过总线32通信,所述处理器30执行所述机器可读指令,以执行如上述画面处理方法的步骤。
具体地,上述存储器31和处理器30能够为通用的存储器和处理器,这里不做具体限定,当处理器30运行存储器31存储的计算机程序时,能够执行上述画面处理方法。
对应于上述画面处理方法,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述画面处理方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考方法实施例中的对应过程,本申请中不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。