CN116173496A - 一种图像帧的渲染方法及相关装置 - Google Patents
一种图像帧的渲染方法及相关装置 Download PDFInfo
- Publication number
- CN116173496A CN116173496A CN202111424170.9A CN202111424170A CN116173496A CN 116173496 A CN116173496 A CN 116173496A CN 202111424170 A CN202111424170 A CN 202111424170A CN 116173496 A CN116173496 A CN 116173496A
- Authority
- CN
- China
- Prior art keywords
- image frame
- image
- rendering
- similarity
- frame
- 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
Links
- 238000009877 rendering Methods 0.000 title claims abstract description 273
- 238000000034 method Methods 0.000 title claims abstract description 99
- 238000012545 processing Methods 0.000 claims description 39
- 238000004364 calculation method Methods 0.000 claims description 28
- 238000003860 storage Methods 0.000 claims description 11
- 230000009467 reduction Effects 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 6
- 239000000872 buffer Substances 0.000 description 42
- 230000008569 process Effects 0.000 description 28
- 238000004891 communication Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 18
- 230000008859 change Effects 0.000 description 10
- 230000000694 effects Effects 0.000 description 10
- 230000033001 locomotion Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 7
- 230000000903 blocking effect Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000005457 optimization Methods 0.000 description 5
- 230000006798 recombination Effects 0.000 description 5
- 238000005215 recombination Methods 0.000 description 5
- VJTAZCKMHINUKO-UHFFFAOYSA-M chloro(2-methoxyethyl)mercury Chemical compound [Cl-].COCC[Hg+] VJTAZCKMHINUKO-UHFFFAOYSA-M 0.000 description 4
- 230000008521 reorganization Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000011022 operating instruction Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 208000002173 dizziness Diseases 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013021 overheating Methods 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011946 reduction process Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 238000001356 surgical procedure Methods 0.000 description 1
- 230000016776 visual perception Effects 0.000 description 1
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/50—Controlling the output signals based on the game progress
- A63F13/52—Controlling the output signals based on the game progress involving aspects of the displayed game scene
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- General Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Television Systems (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请公开了一种图像帧的渲染方法,应用于执行图像帧渲染的电子设备。本申请方法包括:获取第一渲染指令,所述第一渲染指令用于指示渲染第一目标图像帧;根据所述第一渲染指令获取第一图像帧和第二图像帧,所述第一图像帧为所述第二图像帧的前一帧,所述第二图像帧为所述第一目标图像帧的前一帧;基于所述第一图像帧和所述第二图像帧之间的相似度大于或等于第一阈值,根据所述第二图像帧得到所述第一目标图像帧,其中所述第一目标图像帧的内容与所述第二图像帧的内容相同。基于本方案,能够在保证渲染得到的图像帧的帧率的同时,降低电子设备的渲染功耗。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种图像帧的渲染方法及相关装置。
背景技术
移动终端和移动互联网的快速发展给人们的生活带来了极大的便利,其中手机游戏的出现更是丰富了人们的娱乐生活。人们可以随时随地打开手机,进入虚拟的游戏世界,畅玩游戏。随着时代的发展,玩家对游戏高画质、高帧率的呼声越来越强。而手机产商为了满足玩家的诉求,也在不断努力地提升硬件性能,使得具有高刷新率屏幕的手机层出不穷。
目前,高刷新率屏幕手机的普及,使得游戏厂商提高游戏帧率以适应高刷新率。在提高游戏帧率后,虽然能够很好地提升游戏流畅性,但也带来了大量渲染帧的浪费以及过高的手机功耗,进而导致手机发热严重以及影响手机的续航能力。
因此,目前亟需一种能够在保证游戏帧率的同时,降低手机渲染功耗的方法。
发明内容
本申请提供了一种图像帧的渲染方法,能够在保证渲染得到的图像帧的帧率的同时,降低电子设备的渲染功耗。
本申请第一方面提供一种图像帧的渲染方法,应用于执行图像帧渲染的电子设备。该方法包括:获取第一渲染指令,所述第一渲染指令用于指示渲染第一目标图像帧。其中,第一渲染指令可以是由电子设备中的指令重组层截获得到的。在电子设备运行应用程序的过程中,应用程序发起所述第一渲染指令,以指示电子设备中的硬件执行渲染操作;电子设备中的指令重组层则可以在该第一渲染指令在到达电子设备中执行渲染操作的硬件之前截获该第一渲染指令。
根据所述第一渲染指令获取第一图像帧和第二图像帧,所述第一图像帧为所述第二图像帧的前一帧,所述第二图像帧为所述第一目标图像帧的前一帧。其中,所述第一图像帧和所述第二图像帧为已渲染的图像帧,且所述第一图像帧和所述第二图像帧是在获取到所述第一渲染指令之前就已经渲染好的图像帧。并且,所述第一图像帧、所述第二图像帧以及所述第一渲染指令所指示的第一目标图像帧是连续的三个图像帧。
基于所述第一图像帧和所述第二图像帧之间的相似度大于或等于第一阈值,根据所述第二图像帧得到所述第一目标图像帧,其中所述第一目标图像帧的内容与所述第二图像帧的内容相同。即电子设备可以拷贝已经渲染得到的第二图像帧,并将拷贝得到的第二图像帧作为第一目标图像帧,从而使得电子设备上连续显示的第二图像帧和第一目标图像帧为内容相同的两帧。
本方案中,通过在已渲染的两帧相邻图像帧的相似度较高的情况下,复用该两帧图像帧中的后一帧图像帧,以代替渲染新的图像帧,减少电子设备所需渲染的图像帧,从而降低电子设备渲染图像帧的功耗。由于图像相似度具有连续性,即前两帧图像帧的相似度与后两帧图像帧的相似度大概率非常接近,因此本方案中通过判断前两帧图像帧相似度的方式来决定是否复用后一帧图像帧,能够保证画面的连续性,从而不影响最终的渲染效果。
在一种可能的实现方式中,所述第一渲染指令中包括待渲染的三维模型中的第一观察点位置,即所述第一渲染指令用于指示基于所述第一观察点位置对所述三维模型进行渲染以得到第一目标图像帧。
该方法还包括:获取所述第二图像帧对应的第二观察点位置,所述第二图像帧是基于所述第二观察点位置对所述三维模型进行渲染得到的。
在所述第一观察点位置和所述第二观察点位置之间的距离小于或等于第二阈值的情况下,电子设备再进一步确定第一图像帧与第二图像帧之间的相似度;在所述第一观察点位置和所述第二观察点位置之间的距离大于第二阈值的情况下,电子设备则不再确定第一图像帧与第二图像帧之间的相似度,而是转为执行第一渲染指令。
本方案中,通过在计算图像帧的相似度之前,先判断两个图像帧对应的观察点位置之间的距离,来初步确定两个图像帧之间的相似度,从而尽量避免通过计算相似度的方式来确定图像帧之间的相似度,降低计算相似度的开销。
在一种可能的实现方式中,所述方法还包括:获取第二渲染指令,所述第二渲染指令用于指示渲染第二目标图像帧,所述第二渲染指令中包括待渲染的三维模型中的第三观察点位置;根据所述第二渲染指令获取第三图像帧、第四图像帧以及所述第四图像帧对应的第四观察点位置,所述第三图像帧为所述第四图像帧的前一帧,所述第四图像帧为所述第二目标图像帧的前一帧,所述第四图像帧是基于所述第四观察点位置对所述三维模型进行渲染得到的;基于所述第三观察点位置与所述第四观察点位置之间的距离大于第二阈值,执行所述第二渲染指令,以渲染得到所述第二目标图像帧;或,基于所述第三观察点位置与所述第四观察点位置之间的距离小于或等于所述第二阈值且所述第三图像帧和所述第四图像帧之间的相似度小于所述第一阈值,执行所述第二渲染指令,以渲染得到所述第二目标图像帧。
本方案中,先通过计算图像帧之间的观察点位置的距离来初步判断图像帧的相似度,然后再在图像帧之间的观察点位置的距离满足要求的情况下,进一步计算图像帧之间的相似度,从而能够降低计算图像帧相似度的频率,进而降低相似度的计算开销,减少电子设备的功耗。
在一种可能的实现方式中,所述方法还包括:
将所述第一图像帧和所述第二图像帧分别划分为多个图像块,得到所述第一图像帧对应的多个第一图像块和所述第二图像帧对应的多个第二图像块,其中所述多个第一图像块与所述多个第二图像块具有一一对应的关系。由于第一图像帧和第二图像帧是相同大小的图像,因此可以基于相同的图像分块方式对第一图像帧和第二图像帧执行图像分块处理。
分别计算所述多个第一图像块与所述多个第二图像块中具有对应关系的图像块之间的相似度,得到多组相似度。例如,具有对应关系的第一图像块和第二图像块可以被划分为一组,那么六个第一图像块和六个第二图像块则可以划分为六组,每组包括一个第一图像块和一个第二图像块。
将所述多组相似度中的目标相似度确定为所述第一图像帧和所述第二图像帧之间的相似度,所述目标相似度为所述多组相似度中值最小的相似度。
本方案中通过将图像帧划分为多个图像块,并且分别计算两个图像帧中各组图像块的相似度,并取多组图像块中相似度最低的一组图像块对应的相似度为最终的相似度,从而能够重点凸显图像帧中所发生的动态物体的变化,进而使得两个图像帧的相似度中能够体现图像帧所发生的微小但重要的变化。这样一来,电子设备最终确定执行渲染指令,而渲染得到新的图像帧,保证了画面的连续性。
在一种可能的实现方式中,所述第一阈值是基于第三阈值确定的,所述第三阈值为预先设定的固定值;其中,若第三目标图像帧是通过渲染得到的,则所述第一阈值与所述第三阈值相同,所述第三目标图像帧为位于所述第一目标图像帧之前且所述第三目标图像帧的渲染方式是基于图像帧之间的相似度确定的;若第三目标图像帧是通过复用图像帧得到的,则所述第一阈值为所述第三阈值与第四阈值之间的差值,所述第四阈值为预先设定的固定值。
本方案中,由于图像帧的相似度具有连续性,因此执行过一次帧复用之后,下一次判断是否需要执行帧复用时也有很大的可能确定需要执行帧复用。因此通过基于上一次是否帧复用的决策信息来调整上述的第一阈值,可以使得判断是否帧复用的过程更为合理。
在一种可能的实现方式中,在基于第二图像帧得到第一目标图像帧后,电子设备可以确定目标时长,所述目标时长为两帧图像帧的显示时长与计算得到所述第一目标图像帧的时长之间的差值。然后,电子设备停止运行渲染线程,其中所述渲染线程停止运行的时长为所述目标时间,所述渲染线程用于基于渲染指令渲染得到图像帧。也就是说,在得到第一目标图像帧之后的目标时长内,电子设备都将渲染线程挂起,不再执行图像帧的渲染。
在一种可能的实现方式中,在执行相似度计算的过程中,电子设备可以对所述第一图像帧和所述第二图像帧执行缩小处理,得到缩小后的第一图像帧和缩小后的第二图像帧;计算所述缩小后的第一图像帧和所述缩小后的第二图像帧之间的相似度,得到所述第一图像帧和所述第二图像帧之间的相似度。
本方案中,通过将待计算相似度的两个图像帧缩小处理后,再计算缩小后的两个图像帧之间的相似度,能够提高计算相似度的速度以及节省计算相似度的功耗。
本申请第二方面提供一种渲染装置,包括:获取单元,用于获取第一渲染指令,所述第一渲染指令用于指示渲染第一目标图像帧;所述获取单元还用于根据所述第一渲染指令获取第一图像帧和第二图像帧,所述第一图像帧为所述第二图像帧的前一帧,所述第二图像帧为所述第一目标图像帧的前一帧;处理单元,用于基于所述第一图像帧和所述第二图像帧之间的相似度大于或等于第一阈值,根据所述第二图像帧得到所述第一目标图像帧,其中所述第一目标图像帧的内容与所述第二图像帧的内容相同。
在一种可能的实现方式中,所述第一渲染指令中包括待渲染的三维模型中的第一观察点位置;所述处理单元还用于:获取所述第二图像帧对应的第二观察点位置,所述第二图像帧是基于所述第二观察点位置对所述三维模型进行渲染得到的;基于所述第一观察点位置与所述第二观察点位置之间的距离小于或等于第二阈值,确定所述第一图像帧和所述第二图像帧之间的相似度。
在一种可能的实现方式中,所述获取单元,还用于获取第二渲染指令,所述第二渲染指令用于指示渲染第二目标图像帧,所述第二渲染指令中包括待渲染的三维模型中的第三观察点位置;所述获取单元,还用于根据所述第二渲染指令获取第三图像帧、第四图像帧以及所述第四图像帧对应的第四观察点位置,所述第三图像帧为所述第四图像帧的前一帧,所述第四图像帧为所述第二目标图像帧的前一帧,所述第四图像帧是基于所述第四观察点位置对所述三维模型进行渲染得到的;所述处理单元,还用于:基于所述第三观察点位置与所述第四观察点位置之间的距离大于第二阈值,执行所述第二渲染指令,以渲染得到所述第二目标图像帧;或,基于所述第三观察点位置与所述第四观察点位置之间的距离小于或等于所述第二阈值且所述第三图像帧和所述第四图像帧之间的相似度小于所述第一阈值,执行所述第二渲染指令,以渲染得到所述第二目标图像帧。
在一种可能的实现方式中,所述处理单元,具体用于:将所述第一图像帧和所述第二图像帧分别划分为多个图像块,得到所述第一图像帧对应的多个第一图像块和所述第二图像帧对应的多个第二图像块,其中所述多个第一图像块与所述多个第二图像块具有一一对应的关系;分别计算所述多个第一图像块与所述多个第二图像块中具有对应关系的图像块之间的相似度,得到多组相似度;将所述多组相似度中的目标相似度确定为所述第一图像帧和所述第二图像帧之间的相似度,所述目标相似度为所述多组相似度中值最小的相似度。
在一种可能的实现方式中,所述第一阈值是基于第三阈值确定的,所述第三阈值为预先设定的固定值;其中,若第三目标图像帧是通过渲染得到的,则所述第一阈值与所述第三阈值相同,所述第三目标图像帧为位于所述第一目标图像帧之前且所述第三目标图像帧的渲染方式是基于图像帧之间的相似度确定的;若第三目标图像帧是通过复用图像帧得到的,则所述第一阈值为所述第三阈值与第四阈值之间的差值,所述第四阈值为预先设定的固定值。
在一种可能的实现方式中,所述处理单元,还用于:确定目标时长,所述目标时长为两帧图像帧的显示时长与计算得到所述第一目标图像帧的时长之间的差值;停止运行渲染线程,其中所述渲染线程停止运行的时长为所述目标时间,所述渲染线程用于基于渲染指令渲染得到图像帧。
在一种可能的实现方式中,所述处理单元,具体用于:对所述第一图像帧和所述第二图像帧执行缩小处理,得到缩小后的第一图像帧和缩小后的第二图像帧;计算所述缩小后的第一图像帧和所述缩小后的第二图像帧之间的相似度,得到所述第一图像帧和所述第二图像帧之间的相似度。
本申请第三方面提供一种电子设备,该电子设备包括:存储器和处理器;所述存储器存储有代码,所述处理器被配置为执行所述代码,当所述代码被执行时,所述电子设备执行如第一方面中的任意一种实现方式的方法。
本申请第四方面提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行如第一方面中的任意一种实现方式的方法。
本申请第五方面提供一种计算机程序产品,当其在计算机上运行时,使得计算机执行如第一方面中的任意一种实现方式的方法。
本申请第六方面提供一种芯片,包括一个或多个处理器。处理器中的部分或全部用于读取并执行存储器中存储的计算机程序,以执行上述任一方面任意可能的实现方式中的方法。
可选地,该芯片该包括存储器,该存储器与该处理器通过电路或电线与存储器连接。可选地,该芯片还包括通信接口,处理器与该通信接口连接。通信接口用于接收需要处理的数据和/或信息,处理器从该通信接口获取该数据和/或信息,并对该数据和/或信息进行处理,并通过该通信接口输出处理结果。该通信接口可以是输入输出接口。本申请提供的方法可以由一个芯片实现,也可以由多个芯片协同实现。
附图说明
图1是相关技术中的一种帧复用方法流程图;
图2为本申请实施例提供的一种电子设备101的结构示意图;
图3为本申请实施例提供的一种图像帧的渲染方法300的流程示意图;
图4为本申请实施例提供的一种图像帧相似度的示意图;
图5为本申请实施例提供的一种图像块的划分示意图;
图6为本申请实施例提供的一种系统架构示意图;
图7为本申请实施例提供的一种系统组件的架构示意图;
图8为本申请实施例提供的一种图像帧的渲染方法800的流程示意图;
图9为本申请实施例提供的一种截获图形指令数据流的流程示意图;
图10为本申请实施例提供的一种拦截并缓存渲染帧的流程示意图;
图11为本申请实施例提供的一种计算相机位置距离的流程示意图;
图12为本申请实施例提供的一种计算图像帧相似度的流程示意图;
图13为本申请实施例提供的一种SAT表的示意图;
图14为本申请实施例提供的一种判断相似度的流程示意图;
图15为本申请实施例提供的一种使能帧复用的流程示意图;
图16为本申请实施例提供的一种装置1600的结构示意图;
图17为本申请实施例提供的电子设备的一种结构示意图;
图18为本申请实施例提供的计算机可读存储介质的一种结构示意图。
具体实施方式
下面结合附图,对本申请的实施例进行描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。本领域普通技术人员可知,随着技术的发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。
此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块。在本申请中出现的对步骤进行的命名或者编号,并不意味着必须按照命名或者编号所指示的时间/逻辑先后顺序执行方法流程中的步骤,已经命名或者编号的流程步骤可以根据要实现的技术目的变更执行次序,只要能达到相同或者相类似的技术效果即可。
为便于理解,以下先对本实施例所提出的技术术语进行介绍。
图形处理器(graphics processing unit,GPU):是计算机中专门用来处理图形的一类专用硬件。GPU的优势在于可以并行处理相似的多个任务,例如在渲染一张图时会同时渲染多个像素点,GPU则可以加速此过程。
通用计算管线(Compute Shader,CS):是利用GPU的并行计算特性,让GPU处理渲染像素点之外的工作,例如模拟空间中所有粒子的运动轨迹、将图形分成几百个块并同时处理几百个块。通用计算管线可以在图形渲染过程中执行,支持实时计算。
实时渲染:指的是通过实时运算来渲染出所需要的图像。例如,对于所看到的游戏画面,本质是由多个连续渲染帧不间断地显示出来的结果。每一个渲染帧都是通过计算机处理器和图形处理器经过复杂计算得到的。通常来说,每一个渲染帧耗时<100ms的渲染叫做实时渲染,每一个渲染帧耗时>500ms的渲染过程被称为非实时渲染,或离线渲染。
渲染帧:是一张由图形处理器渲染出来的图像,也可以称为图像帧。多个渲染帧连续播放可以形成动态的效果。
帧率:在实时渲染中,每一秒生产渲染帧的数量叫做帧率,单位是帧每秒。例如,“帧率60”指的是当前在一秒的时间内产生60个渲染帧。帧率越高,显示的效果越流畅。
屏幕刷新率:在实时渲染中,渲染产生的渲染帧最终要由图形处理器发送给显示缓冲区,最终屏幕从显示缓冲区取渲染帧显示,屏幕每刷新一次,就从渲染缓冲区取一个最新的渲染帧。屏幕每秒刷新的次数称为屏幕刷新率。屏幕刷新率越高,屏幕支持的帧率越高。最终的显示效果取决于屏幕刷新率和帧率的最低值。
相机:渲染的过程是模拟现实世界中相机录像的过程。其中,相机是一种渲染术语,渲染中的相机和现实世界中的相机类似,指的是查看场景的眼睛。简单来说,相机是一种来记录场景信息的物体,渲染帧是通过相机的观察,将看到的场景投影到相机上形成的。
功耗:用来衡量计算过程消耗电量的效率,单位是毫安(mA)。在移动终端的电池电量一定的前提下,移动终端的运行功耗越高,耗电量越快,使用时间越短。
插帧:在两个连续渲染帧之间插入一个新帧的动作。在应用于视频的情况下,插帧动作可以依据前后帧信息插值生成中间的视频帧;在应用于游戏的情况下,插帧动作可以依据前两帧画面的图像信息生成第三帧的图像信息。
帧复用:连续传两个相同的渲染帧给显示缓冲区的操作。此方法通常会降低渲染的频率,从而降低渲染产生的功耗。
运动估计及运动补偿(Motion Estimation Motion Compensation,MEMC):是一种插帧技术,其原理是硬件快速计算两帧之间的光流,从而生成第三帧。
结构相似度算法(Structural Similarity,SSIM):是一种计算两个图像之间相似度的算法。
加和汇总表(Summed Area Table,SAT):加和汇总表,是一种快速计算图像中一个块里面所有像素和的算法,本申请实施例中用来加速SSIM的计算。
像素缓冲对象(Pixel Buffer Object,PBO):用来保存渲染帧的一种技术。本申请实施例中用来保存两个连续渲染帧,从而方便计算渲染帧之间的相似度。
驱动:是一种可以使计算机操作系统和底层硬件相互通信的一类程序。能够让操作系统或开发者利用硬件的特性。
游戏引擎:是一种游戏制作工具,其充分集成并利用底层的驱动程序,让游戏开发者快速的做出游戏。
卷积核:图像处理时,给定输入图像,输入图像中一个小区域中像素加权平均后成为输出图像中的每个对应像素,其中权值由一个函数定义,这个函数称为卷积核。
限频限帧:为了防止手机在游戏过程中过热,采取的限制芯片运行频率和游戏运行帧率的一种强制方式。
指令重组层:是一种介于应用层和驱动层之间的组件,能够拦截应用程序调用的驱动指令流,并对其进行优化。
YUV颜色空间:是一种颜色的数字编码方式,Y代表亮度,U代表色度,V代表浓度,三个值可以一起表示一种颜色。
目前,高刷新率屏幕手机的普及,使得游戏厂商提高游戏帧率以适应高刷新率。在提高游戏帧率后,虽然能够很好地提升游戏流畅性,但也带来了大量渲染帧的浪费以及过高的手机功耗,进而导致手机发热严重以及影响手机的续航能力。为了保证用户的安全,避免用户被过高的温度烫伤,手机芯片和操作系统会对手机做限频限帧操作,降低芯片和手机运行功耗。对手机做该操作限频限帧会使得游戏帧率减半或更多,从而影响玩家的游戏体验。此外,为了降低游戏在高刷新率屏幕下的功耗,游戏厂商通常会在特定场景下限制游戏帧率。例如,某一个三维(3Dimensions,3D)游戏会在玩家一分钟没有操作后将游戏帧率限制到10帧。手机厂商则会使用插帧等技术方案降低渲染频率,例如某一个型号下的手机中加入了MEMC芯片,使用MEMC芯片来加速游戏插帧,这种插帧技术可以将60帧的渲染帧率提升到120帧的显示帧率。
然而,MEMC等插帧方案会使插帧产生的图像发生扭曲,进而导致玩家产生眩晕的感觉,而基于场景的帧率限制则缺乏通用性,厂商没有办法识别所有需要限制帧率的场景。
可以参阅图1,图1是相关技术中的一种帧复用方法流程图。如图1所示,图1所示的方案是一种基于场景的帧复用方案。该帧复用方案主要是在游戏引擎端提供了一种基于场景识别的帧复用方法,该方法通过识别对帧率需求较低的低变化场景进行帧复用,以达到降低手机游戏功耗的目的。
该帧复用方法有两个主要模块,分别是场景识别模块和帧复用使能模块。场景识别模块会提取需要使能帧复用的场景特征,例如特定绘制指令、长时间用户无反馈等特征,并根据这些特征判断是否进行帧复用。帧复用使能模块则会在场景识别模块确认需要使能帧复用时,复制上一帧的画面信息并交给显示缓冲区,同时发消息给渲染模块,暂停一帧或多帧时间的渲染计算,从而实现帧率减半或更多。
然而,相关技术中的场景识别模块需要人工干预并一一列举其特征,想要达到比较好的优化效果则需要在场景识别和特征提取上耗费大量的人工成本。并且,该帧复用方法通用性和可扩展性较差,无法做到跨游戏通用,移植到新游戏时需要重做场景识别模块。此外,该帧复用方法的优化效果有限,因为人工无法遍历识别所有可帧复用的场景,所以仍然有大量被浪费的渲染帧。
有鉴于此,本申请实施例提供了一种图像帧的渲染方法,通过在已渲染的两帧相邻图像帧的相似度较高的情况下,复用该两帧图像帧中的后一帧图像帧,以代替渲染新的图像帧,减少电子设备所需渲染的图像帧,从而降低电子设备渲染图像帧的功耗。由于图像相似度具有连续性,即前两帧图像帧的相似度与后两帧图像帧的相似度大概率非常接近,因此本方案中通过判断前两帧图像帧相似度的方式来决定是否复用后一帧图像帧,能够保证画面的连续性,从而不影响最终的渲染效果。
示例性地,本申请实施例中的电子设备可以是智能手机(mobile phone)、个人电脑(personal computer,PC)、笔记本电脑、平板电脑、智慧电视、移动互联网设备(mobileinternet device,MID)、可穿戴设备(如智能手表、智能眼镜或者智能头盔等),虚拟现实(virtual reality,VR)设备、增强现实(augmented reality,AR)设备、工业控制(industrial control)中的无线电子设备、无人驾驶(self driving)中的无线电子设备、远程手术(remote medical surgery)中的无线电子设备、智能电网(smart grid)中的无线电子设备、运输安全(transportation safety)中的无线电子设备、智慧城市(smart city)中的无线电子设备、智慧家庭(smart home)中的无线电子设备等。以下实施例对该电子设备的具体形式不做特殊限制。
可以参阅图2,图2为本申请实施例提供的一种电子设备101的结构示意图。如图2所示,电子设备101包括处理器103,处理器103和系统总线105耦合。处理器103可以是一个或者多个处理器,其中每个处理器都可以包括一个或多个处理器核。显示适配器(videoadapter)107,显示适配器可以驱动显示器109,显示器109和系统总线105耦合。系统总线105通过总线桥111和输入输出(I/O)总线耦合。I/O接口115和I/O总线耦合。I/O接口115和多种I/O设备进行通信,比如输入设备117(如:触摸屏等),外存储器121,(例如,硬盘、软盘、光盘或优盘),多媒体接口等)。收发器123(可以发送和/或接收无线电通信信号),摄像头155(可以捕捉静态和动态数字视频图像)和外部USB端口125。其中,可选地,和I/O接口115相连接的接口可以是USB接口。
其中,处理器103可以是任何传统处理器,包括精简指令集计算(reducedinstruction set Computing,RISC)处理器、复杂指令集计算(complex instruction setcomputing,CISC)处理器或上述的组合。可选地,处理器可以是诸如ASIC的专用装置。
电子设备101可以通过网络接口129和软件部署服务器149通信。示例性的,网络接口129是硬件网络接口,比如,网卡。网络127可以是外部网络,比如因特网,也可以是内部网络,比如以太网或者虚拟私人网络(virtual private network,VPN)。可选地,网络127还可以是无线网络,比如WiFi网络,蜂窝网络等。
硬盘驱动器接口131和系统总线105耦合。硬件驱动接口和硬盘驱动器133相连接。内存储器135和系统总线105耦合。运行在内存储器135的数据可以包括电子设备101的操作系统(OS)137、应用程序143和调度表。
处理器103可以通过系统总线105与内存储器135通信,从内存储器135中取出应用程序143中的指令和数据,从而实现程序的执行。
操作系统包括Shell 139和内核(kernel)141。Shell 139是介于使用者和操作系统的内核间的一个接口。Shell 139是操作系统最外面的一层。Shell 139管理使用者与操作系统之间的交互:等待使用者的输入,向操作系统解释使用者的输入,并且处理各种各样的操作系统的输出结果。
内核141由操作系统中用于管理存储器、文件、外设和系统资源的那些部分组成。内核141直接与硬件交互,操作系统内核通常运行进程,并提供进程间的通信,提供CPU时间片管理、中断、内存管理和IO管理等等。
示例性地,在电子设备101为智能手机的情况下,应用程序143包括即时通讯相关的程序。在一个实施例中,在需要执行应用程序143时,电子设备101可以从软件部署服务器149下载应用程序143。
可以参阅图3,图3为本申请实施例提供的一种图像帧的渲染方法300的流程示意图。如图3所示,该方法300包括以下的步骤301-303。
步骤301,获取第一渲染指令,所述第一渲染指令用于指示渲染第一目标图像帧。
在电子设备运行需要持续渲染图像帧的应用程序的过程中,电子设备可以获取到应用程序所发起的第一渲染指令,该第一渲染指令用于指示渲染第一目标图像帧。示例性地,该应用程序例如可以为游戏应用程序、导航应用程序、工业应用程序或医疗应用程序等需要对三维模型进行渲染以得到图像帧的应用程序。该第一渲染指令所指示渲染的第一目标图像帧用于在所述电子设备的显示屏幕上显示,以与其他的图像帧共同构成连续的画面。
可选的,第一渲染指令可以是由电子设备中的指令重组层截获得到的。在电子设备运行应用程序的过程中,应用程序发起所述第一渲染指令,以指示电子设备中的硬件执行渲染操作;电子设备中的指令重组层则可以在该第一渲染指令在到达电子设备中执行渲染操作的硬件之前截获该第一渲染指令。
步骤302,根据所述第一渲染指令获取第一图像帧和第二图像帧,所述第一图像帧为所述第二图像帧的前一帧,所述第二图像帧为所述第一目标图像帧的前一帧。
其中,所述第一图像帧和所述第二图像帧为已渲染的图像帧,且所述第一图像帧和所述第二图像帧是在获取到所述第一渲染指令之前就已经渲染好的图像帧。并且,所述第一图像帧、所述第二图像帧以及所述第一渲染指令所指示的第一目标图像帧是连续的三个图像帧,即所述第一图像帧和所述第二图像帧为所述第一目标图像帧的前两帧。
示例性地,在电子设备运行游戏应用的过程中,所述第一图像帧为游戏应用运行过程中的第5帧图像帧,所述第二图像帧为第6帧图像帧,所述第一目标图像帧则为第7帧图像帧。并且,第一图像帧和第二图像帧是已渲染好的图像帧,而第一目标图像帧则是待渲染的图像帧。
可选的,为了便于电子设备能够快速获取到第一图像帧和第二图像帧,电子设备中可以预先设置图像帧的缓冲区,该缓冲区用于保存已经渲染得到的图像帧。这样一来,电子设备在获取到用于指示渲染第一目标图像帧的所述第一渲染指令的情况下,可以根据所述第一渲染指令从缓冲区获取所述第一目标图像帧的前两帧图像帧,即所述第一图像帧和所述第二图像帧。
进一步地,由于后续计算图像帧之间的相似度时只需要用到两帧图像帧,因此电子设备可以是设置两个缓冲区,每个缓冲区分别用于存储一帧图像帧。其中,通过交替地往电子设备的两个缓冲区中存储最新渲染得到的图像帧,可以使得该两个缓冲区能够存储电子设备所渲染得到的最新的两个图像帧。简单来说,在电子设备渲染得到新的图像帧之后,电子设备可以确定两个缓冲区中保存较早的图像帧的缓冲区,并将该新的图像帧保存在所确定的缓冲区中,从而使得两个缓冲区能够存储最新的两个图像帧。
示例性地,假设电子设备中有A缓冲区和B缓冲区,在电子设备渲染得到第N帧图像帧之后,将第N帧图像帧保存到A缓冲区;在渲染得到第N+1帧图像帧之后,将第N+1帧图像帧保存到B缓冲区。然后,在渲染得到第N+2帧图像帧之后,由于A缓冲区中的第N帧图像帧相对于B缓冲区中的第N+1帧图像帧为较早的图像帧,因此电子设备将第N+2帧图像帧保存到A缓冲区,以代替原来的第N帧图像帧。类似地,在渲染得到第N+3帧图像帧之后,由于此时B缓冲区中的第N+1帧图像帧相对于A缓冲区中的第N+2帧图像帧为较早的图像帧,因此电子设备将第N+3帧图像帧保存到B缓冲区,以代替原来的第N+1帧图像帧。
步骤303,基于所述第一图像帧和所述第二图像帧之间的相似度大于或等于第一阈值,根据所述第二图像帧得到所述第一目标图像帧,其中所述第一目标图像帧的内容与所述第二图像帧的内容相同。
在基于第一渲染指令获取到第一图像帧和第二图像帧之后,电子设备可以计算所述第一图像帧和所述第二图像帧之间的相似度。
在第一图像帧和第二图像帧之间的相似度大于或等于第一阈值的情况下,电子设备可以基于所述第二图像帧直接得到所述第一目标图像帧,即对所述第二图像帧进行帧复用,使得第一目标图像帧的内容与第二图像帧的内容相同。简单来说,电子设备可以拷贝已经渲染得到的第二图像帧,并将拷贝得到的第二图像帧作为第一目标图像帧,从而使得电子设备上连续显示的第二图像帧和第一目标图像帧为内容相同的两帧。这样,电子设备可以不再执行第一渲染指令,即避免渲染第一目标图像帧。
在第一图像帧和第二图像帧之间的相似度小于第一阈值的情况下,电子设备则可以执行所述第一渲染指令,从而渲染得到所述第一目标图像帧。其中,第一阈值可以是根据实际情况而定的一个阈值,例如第一阈值可以为0.99或0.98。例如,在对画面要求较高的情况下,第一阈值的取值可以为较高的值;在对画面要求不高且对电子设备的功耗要求较高的情况下,第一阈值的取值可以为较低的值。
也就是说,在前两帧图像帧相似度较高的情况下,电子设备可以将前两帧图像帧中的后一帧图像帧作为新的图像帧,即复用前两帧图像帧中的后一帧图像帧;在前两帧图像帧相似度不高的情况下,电子设备则执行渲染指令,以渲染得到新的图像帧。
经申请人研究发现,在大部分需要渲染图像帧的应用中,图像帧的相似度具有连续性,即前两帧图像帧的相似度与后两帧图像帧的相似度大概率非常接近。示例性地,可以参阅图4,图4为本申请实施例提供的一种图像帧相似度的示意图。如图4所示,图4中展示了三个游戏应用中的图像帧相似度的连续性。具体地,图4中的横坐标表示图像帧的帧号,图4中的纵坐标表示相邻的两个图像帧的相似度,因此图4中的曲线则用于连续表示相邻的两个图像帧的相似度。例如,图4中的曲线依次表示第1个图像帧和第2个图像帧的相似度、第2个图像帧和第3个图像帧的相似度...第N个图像帧和第N+1个图像帧的相似度等等。由图4可以看出,在游戏应用1、游戏应用2和游戏应用3中,图像的相似度是具有连续性的,即前两帧图像帧的相似度与后两帧图像帧的相似度并不会出现突变。因此,在前两帧图像帧的相似度较高的情况下,可以认为后两帧图像帧的相似度通常也是较高的。
基于此,本实施例中在前两帧图像帧的相似度较高的情况下,将前两帧图像帧中的后一帧图像帧复用,以代替渲染新的图像帧。由于后两帧图像帧的相似度也是较高的,因此通过复用前两帧图像帧中的后一帧图像帧而得到的图像帧与实际的图像帧之间的相似度也是较高的,从而不会出现画面突变的情况。
也就是说,本实施例中通过判断前两帧图像帧相似度的方式来决定是否复用后一帧图像帧,能够保证画面的连续性,从而不影响最终的渲染效果。并且,通过在已渲染的两帧相邻图像帧的相似度较高的情况下,复用该两帧图像帧中的后一帧图像帧,以代替渲染新的图像帧,能够减少电子设备所需渲染的图像帧,从而降低电子设备渲染图像帧的功耗。
在电子设备确定通过复用所述第二图像帧来得到所述第一目标图像帧的情况下,电子设备需要停止执行上述的第一渲染指令,以降低渲染图像帧所带来的功耗。
由于图像帧的相似度具有连续性,因此执行过一次帧复用之后,下一次判断是否需要执行帧复用时也有很大的可能确定需要执行帧复用,因此可以基于上一次是否帧复用的决策信息来调整上述的第一阈值,以使得判断是否帧复用的过程更为合理。
示例性地,所述第一阈值可以是基于第三阈值确定的,所述第三阈值为预先设定的固定值,例如第三阈值可以为0.99。
其中,若第三目标图像帧是通过渲染得到的,则所述第一阈值与所述第三阈值相同,所述第三目标图像帧为位于所述第一目标图像帧之前且所述第三目标图像帧的渲染方式是基于图像帧之间的相似度确定的。简单来说,第三目标图像帧是第一目标图像帧的前一个需要判断图像帧之间的相似度来确定渲染方式的图像帧,该渲染方式则是指通过执行渲染指令渲染得到图像帧的方式或者通过帧复用得到图像帧的方式。
若第三目标图像帧是通过复用图像帧得到的,则所述第一阈值为所述第三阈值与第四阈值之间的差值,所述第四阈值为预先设定的固定值。其中,所述第四阈值例如可以为0.005。
例如,假设电子设备每隔两帧判断一次图像帧的渲染方式,则电子设备可以是基于第1帧图像帧、第2帧图像判断第3帧图像帧的渲染方式,以及基于第4帧图像帧、第5帧图像判断第6帧图像帧的渲染方式。如果第3帧图像帧是通过执行渲染指令而渲染得到的(即第3帧图像帧不是通过复用第2帧图像帧得到的),则第6帧图像帧对应的第一阈值则可以是与上述的第三阈值相同;如果第3帧图像帧是通过复用第2帧图像帧得到的,则第6帧图像帧对应的第一阈值则可以是上述的第三阈值与第四阈值之间的差值。
本实施例中,电子设备可以是每隔多个图像帧计算一次相似度,也可以是计算一次相似度则复用多个图像帧,计算相似度的频率可以根据游戏应用的类别来确定。例如,电子设备可以计算第1个图像帧和第2个图像帧之间的相似度,以确定第3个图像帧的渲染方式;然后,电子设备渲染得到第4个图像帧和第5个图像帧,并计算这两个图像帧之间的相似度,以确定第6个图像帧的渲染方式,以此类推,电子设备每隔2个图像帧计算一次相似度。又例如,在电子设备渲染一些2D游戏的情况下,电子设备可以是计算第1个图像帧和第2个图像帧之间的相似度,以确定第3个图像帧、第4个图像帧和第5个图像帧的渲染方式;然后,电子设备可以继续计算第6个图像帧和第7个图像帧之间的相似度,以确定第8个图像帧、第9个图像帧和第10个图像帧的渲染方式,以此类推,电子设备每隔计算一次相似度则可以确定3个图像帧的渲染方式。
可选的,在基于第二图像帧得到第一目标图像帧后,电子设备可以确定目标时长,所述目标时长为两帧图像帧的显示时长与计算得到所述第一目标图像帧的时长之间的差值。例如,在电子设备当前的帧率为60的情况下,即一秒显示60个图像帧,两帧图像帧的显示时长则为2/60秒;计算得到所述第一目标图像帧的时长则为执行上述的步骤301-303的时长。
通常来说,电子设备在渲染得到一个图像帧之后,往往需要等待一个图像帧的显示时长再渲染下一个图像帧;而本实施例中在渲染得到第二图像帧之后,则执行上述的步骤301-303而得到第一目标图像帧,而第一目标图像帧是不再需要渲染的,电子设备所需渲染的图像帧为第一目标图像帧的下一个图像帧。因此,电子设备则可以是通过将两帧图像帧的显示时长与计算得到第一目标图像帧的时长作差,得到目标时长。
然后,电子设备停止运行渲染线程,其中所述渲染线程停止运行的时长为所述目标时间,所述渲染线程用于基于渲染指令渲染得到图像帧。也就是说,在得到第一目标图像帧之后的目标时长内,电子设备都将渲染线程挂起,不再执行图像帧的渲染。
可以理解的是,对于一些通过渲染三维模型而得到图像帧的应用程序而言,图像帧的渲染过程实际上就是基于某一个位置观察立体的三维模型,并将观察到的景物以二维图像的形式进行展示,从而得到图像帧。简单来说,三维模型的渲染可以理解为通过一个相机在某一个位置上对三维模型进行拍摄得到的二维图像。因此,在确定了三维模型中的观察点位置之后,即可确定三维模型中需要渲染的物体,从而能够确定二维图像中的内容。
也就是说,对于同一个三维模型而言,渲染得到的图像帧中的内容是由三维模型中的观察点位置所决定的。基于距离较近的两个观察点位置渲染得到的两个图像帧中的内容大概率是相似的;基于距离较远的两个观察点位置渲染得到的两个图像帧中的内容大概率是不相似的。
基于此,本实施例中可以在计算图像帧的相似度之前,先判断两个图像帧对应的观察点位置之间的距离,来确定两个图像帧之间的相似度,从而尽量避免通过计算相似度的方式来确定图像帧之间的相似度,降低计算相似度的开销。
示例性地,所述第一渲染指令中可以包括待渲染的三维模型中的第一观察点位置,即所述第一渲染指令用于指示基于所述第一观察点位置对所述三维模型进行渲染以得到第一目标图像帧。
由于所述第二图像帧为已渲染得到的图像帧,因此电子设备可以获取所述第二图像帧对应的第二观察点位置,所述第二图像帧是基于所述第二观察点位置对所述三维模型进行渲染得到的。
然后,电子设备可以确定所述第一观察点位置和所述第二观察点位置之间的距离,并且判断所述第一观察点位置和所述第二观察点位置之间的距离与第二阈值之间的大小关系。在所述第一观察点位置和所述第二观察点位置之间的距离小于或等于第二阈值的情况下,电子设备再进一步确定第一图像帧与第二图像帧之间的相似度;在所述第一观察点位置和所述第二观察点位置之间的距离大于第二阈值的情况下,电子设备则不再确定第一图像帧与第二图像帧之间的相似度,而是转为执行第一渲染指令。
具体地,在电子设备确定第一观察点位置和第二观察点位置之间的距离后,可以基于所述第一观察点位置与所述第二观察点位置之间的距离小于或等于第二阈值,确定所述第一图像帧和所述第二图像帧之间的相似度。其中,第二阈值可以是根据实际情况而定的一个阈值,例如第二阈值可以为0.3米或0.4米。例如,在对画面要求较高的情况下,第二阈值的取值可以为较低的值;在对画面要求不高且对电子设备的功耗要求较高的情况下,第二阈值的取值可以为较高的值。
第一观察点位置和第二观察点位置之间的距离可以通过以下的公式1计算得到。
Distance=Sqrt((X1-X2)2+(Y1-Y2)2+(Z1-Z2)2) 公式1
其中,Distance表示第一观察点位置和第二观察点位置之间的距离;Sqrt表示开方;X1,Y1,Z1为第一观察点位置的坐标;X2,Y2,Z2为第二观察点位置的坐标。
也就是说,电子设备可以先确定待渲染图像帧的观察点位置与前一帧图像帧的观察点位置之间的距离,以初步确定两个图像帧之间的相似度;在两个图像帧的观察点位置距离较远的情况下,可以认为两个图像帧大概率并不相似,因此执行渲染指令以得到待渲染图像帧;在两个图像帧的观察点位置距离较近的情况下,可以认为两个图像帧大概率相似,因此继续通过计算待渲染图像帧的前两帧图像帧之间的相似度,来确定待渲染图像帧是否与其前一帧图像帧相似。
示例性地,上述的方法300还可以包括以下的步骤。
首先,电子设备可以获取第二渲染指令,所述第二渲染指令用于指示渲染第二目标图像帧,所述第二渲染指令中包括待渲染的三维模型中的第三观察点位置。
然后,电子设备根据所述第二渲染指令获取第三图像帧、第四图像帧以及所述第四图像帧对应的第四观察点位置,所述第三图像帧为所述第四图像帧的前一帧,所述第四图像帧为所述第二目标图像帧的前一帧,所述第四图像帧是基于所述第四观察点位置对所述三维模型进行渲染得到的。
其次,电子设备可以判断第三观察点位置与第四观察点位置之间的距离是否大于第二阈值,并且基于所述第三观察点位置与所述第四观察点位置之间的距离大于第二阈值,执行所述第二渲染指令,以渲染得到所述第二目标图像帧。
或者,电子设备可以基于所述第三观察点位置与所述第四观察点位置之间的距离小于或等于所述第二阈值,触发计算第三图像帧和第四图像帧之间的相似度。并且,电子设备基于所述第三图像帧和所述第四图像帧之间的相似度小于所述第一阈值,执行所述第二渲染指令,以渲染得到所述第二目标图像帧。
本实施例中,先通过计算图像帧之间的观察点位置的距离来初步判断图像帧的相似度,然后再在图像帧之间的观察点位置的距离满足要求的情况下,进一步计算图像帧之间的相似度,从而能够降低计算图像帧相似度的频率,进而降低相似度的计算开销,减少电子设备的功耗。
在一些可能的实施例中,电子设备可以是将待计算相似度的两个图像帧缩小处理后,再计算缩小后的两个图像帧之间的相似度,以提高计算相似度的速度以及节省计算相似度的功耗。
示例性地,电子设备可以对所述第一图像帧和所述第二图像帧执行缩小处理,得到缩小后的第一图像帧和缩小后的第二图像帧。例如,电子设备可以将第一图像帧和第二图像帧的长和宽均缩小为原来的1/9,即第一图像帧和第二图像帧的面积均缩小为原来的1/81。其中,第一图像帧和第二图像帧的缩小比例可以根据实际情况来确定,在电子设备的功耗要求较高的情况下,第一图像帧和第二图像帧的缩小比例可以为较高的值。
然后,电子设备计算所述缩小后的第一图像帧和所述缩小后的第二图像帧之间的相似度,并将计算得到的相似度作为所述第一图像帧和所述第二图像帧之间的相似度。
本方案中,通过以牺牲计算相似度的少量精度为代价,大大地减少了待计算相似度的图像帧的面积,从而降低了相似度的计算开销,有效地降低了电子设备的功耗。
为了便于理解,以下将详细介绍计算图像帧之间的相似度的过程。
具体地,上述的方法300中还包括以下计算第一图像帧和第二图像帧之间的相似度的多个步骤。
首先,将所述第一图像帧和所述第二图像帧分别划分为多个图像块,得到所述第一图像帧对应的多个第一图像块和所述第二图像帧对应的多个第二图像块,其中所述多个第一图像块与所述多个第二图像块具有一一对应的关系。
本实施例中,电子设备可以是对第一图像帧和第二图像帧进行图像块的划分,也可以是对执行缩小处理后的所述第一图像帧和第二图像帧进行图像块的划分,本实施例并不做具体限定。
由于第一图像帧和第二图像帧是相同大小的图像,因此可以基于相同的图像分块方式对第一图像帧和第二图像帧执行图像分块处理。例如,电子设备可以将第一图像帧划分为6个第一图像块,其中每个图像块的长为第一图像帧的长的1/3,每个图像块的宽为第一图像帧的宽的1/2,即将第一图像帧的长划分为3份以及将第一图像帧的宽划分为2份。类似的,电子设备可以基于相同的方式对第二图像帧进行划分,得到第二图像帧对应的6个第二图像块。并且,第一图像帧对应的多个第一图像块与第二图像帧对应的多个第二图像块具有一一对应的关系,即多个第一图像块中的任意一个图像块均与第二图像帧中位于相同位置的一个第二图像块对应。
示例性地,可以参阅图5,图5为本申请实施例提供的一种图像块的划分示意图。如图5所示,第一图像帧被划分为6个图像块,分别包括:位于左上位置的图像块A1,位于中上位置的图像块A2,位于右上位置的图像块A3,位于左下位置的图像块A4,位于中下位置的图像块A5,位于右下位置的图像块A6;第二图像帧被划分为6个图像块,分别包括:位于左上位置的图像块B1,位于中上位置的图像块B2,位于右上位置的图像块B3,位于左下位置的图像块B4,位于中下位置的图像块B5,位于右下位置的图像块B6。其中,图像块A1与图像块B1对应,图像块A2与图像块B2对应,图像块A3与图像块B3对应,图像块A4与图像块B4对应,图像块A5与图像块B5对应,图像块A6与图像块B6对应。
然后,分别计算所述多个第一图像块与所述多个第二图像块中具有对应关系的图像块之间的相似度,得到多组相似度。
本实施例中,具有对应关系的第一图像块和第二图像块可以被划分为一组,那么六个第一图像块和六个第二图像块则可以划分为六组,每组包括一个第一图像块和一个第二图像块。
具体地,对于具有对应关系的第一图像块与第二图像块,可以分别使用7x7卷积核在GPU上并行计算两个图像块的SSIM值,每一个卷积核输出一个SSIM值,然后将所有卷积核输出的SSIM值取平均,输出一个平均后的SSIM值。这样,对于六组具有对应关系的第一图像块和第二图像块,一共可以输出六个平均后的SSIM值,即得到六组相似度。
其中,计算各组图像块的相似度的过程可以是通过以下的公式2-公式6来表示。
其中,X表示第一图像帧,公式中以Xi的形式出现;Y表示第二图像帧,公式中以Yi的形式出现;xijk表示第一图像帧中第j个图像块第k个卷积核中的第i个像素点YUV空间的Y值;yijk表示第二图像帧第j个图像块第k个卷积核中的第i个像素点YUV空间的Y值;Njk表示第j图像块第k个卷积核中拥有像素点的数量,在7x7卷积核中,Njk等于49;μxjk表示第一图像帧第j个图像块第k个卷积核中,像素点YUV空间Y的平均值;σxjk表示第一图像帧第j个渲染小块第k个卷积核中,像素点YUV空间Y的标准差;σxyjk表示第一图像帧和第二图像帧的第j个图像块第k个卷积核之间,像素点YUV空间Y的协方差;μyjk:表示第二图像帧第j个渲染小块第k个卷积核中,像素点YUV空间Y的平均值;σyjk表示第二图像帧第j个渲染小块第k个卷积核中,像素点YUV空间Y的标准差;Mj表示第j个图像块使用卷积核的数量,这个数量取决于图像块的大小和卷积核的大小;SSIMjk表示第一图像帧和第二图像帧第j个图像块第k个卷积核的SSIM值;SSIMj表示第一图像帧和第二图像帧第j个图像块所有卷积核的SSIM的平均值,也是第j个图像块的SSIM值。
最后,将所述多组相似度中的目标相似度确定为所述第一图像帧和所述第二图像帧之间的相似度,所述目标相似度为所述多组相似度中值最小的相似度。
在得到多组图像块所对应的多组相似度之后,可以确定多组相似度中相似度值最小的一组相似度(即目标相似度),并将该组相似度确定为所述第一图像帧和所述第二图像帧之间的相似度。
具体地,确定目标相似度的过程可以基于以下的公式7来表示。
SSIM=min(SSIM1,SSIM2,SSIM3,SSIM4,SSIM5,SSIM6) 公式7
其中,SSIMj表示第一图像帧和第二图像帧第j个图像块所有卷积核的SSIM的平均值,也是第j个图像块的SSIM值;SSIM表示第一图像帧和第二图像帧之间的SSIM值。
可以理解的是,在一些渲染场景下,尽管第一图像帧对应的观察点位置和第二图像帧对应的观察点位置相同,但是由于三维模型中的动态物体发生移动,也会使得第一图像帧和第二图像帧的画面内容不相同。例如,在第一图像帧对应的画面内容为近处的建筑和远处的天空的情况下,可能会由于三维模型中的小鸟发生移动,使得第二图像帧的画面内容中为近处的建筑、远处的天空以及在天空上的小鸟,即第二图像帧中的画面内容中多了小脑。一般来说,第二图像帧中的小鸟在第二图像帧中占较少面积的情况下,在计算整个第一图像帧和整个第二图像帧之间的相似度时,会得到较高的相似度值,即第一图像帧和第二图像帧整体上还是非常相似的。然而,出现动态变化的新物体的图像帧(及第二图像帧)往往是较为重要的图像帧,通常是需要在连续显示的画面中体现的。因此,在这种情况下,如果直接计算第一图像帧和第二图像帧的相似度,可能会导致最终计算得到的相似度较高,而复用第二图像帧,从而无法在显示画面中体现物体动态变化的过程,例如无法体现小鸟在天空中飞翔的过程。
基于此,本方案中通过将图像帧划分为多个图像块,并且分别计算两个图像帧中各组图像块的相似度,并取多组图像块中相似度最低的一组图像块对应的相似度为最终的相似度,从而能够重点凸显图像帧中所发生的动态物体的变化,进而使得两个图像帧的相似度中能够体现图像帧所发生的微小但重要的变化。这样一来,电子设备最终确定执行渲染指令,而渲染得到新的图像帧,保证了画面的连续性。
为便于理解,以下将结合具体例子详细介绍本申请实施例所提供的图像帧的渲染方法。
可以参阅图6,图6为本申请实施例提供的一种系统架构示意图。如图6所示,在应用层可以运行有游戏应用1、游戏应用2和游戏应用3等多个应用;图形应用程序接口(Application Programming Interface,API)层则可以运行有opengl、vulkan等能够绘制图形的驱动程序;指令重组层(即本发明实施层)则用于执行上述的图像帧的渲染方法;操作系统(operating system,OS)内核层包括系统内核以及用于驱动硬件芯片的相关驱动;芯片层则包括CPU和GPU等硬件芯片。
其中,指令重组层包括指令截获模块、帧间图像部分区域(Range of Image,ROI)相似度计算模块和使能帧复用模块。指令截获模块用于截获图形API调用指令,并缓存渲染指令流以及关联数据。帧间ROI相似度计算模块用于根据指令流中的相机位置变化情况进行预筛选,确定需要计算相似度的图像帧;以及对图像帧进行缩放和分块,并且触发GPU并行计算各个图像块的SSIM值,输出帧间ROI的相似度。使能帧复用模块则用于结合立式相似度值,决策是否使能帧复用,并且基于决策结果对渲染指令数据流进行优化重构。
可以参阅图7,图7为本申请实施例提供的一种系统组件的架构示意图。如图7所示,本实施例所提供的图像帧的渲染方法可以是以软件的形式嵌入到OS的指令重组层组件中。在整个OS框架中,本实施例涉及到的模块包括系统内核及驱动模块(1007)、指令重组层模块(1008)、图形API模块(1009)、显示缓冲区模块(1010)、屏幕显示模块(1011)。在指令重组层模块(1008)中,本实施例中修改了图形API拦截模块(1001),新增了摄像机运动模块(1002)、渲染帧缓存管理模块(1003)、相似度计算模块(1004)、决策模块(1005)以及帧复用使能模块(1006)。
以下将结合具体的流程图详细介绍本实施例中所修改以及新增的模块的工作原理。
可以参阅图8,图8为本申请实施例提供的一种图像帧的渲染方法800的流程示意图。如图8所示,该图像帧的渲染方法800包括以下的步骤801-808。
步骤801,截获并缓存图形指令数据流。
可以参阅图9,图9为本申请实施例提供的一种截获图形指令数据流的流程示意图。如图9所示,在游戏引擎通过下发图形指令来调用驱动层指令之前,图形API拦截模块(1001)判断下发图形指令的主体是否为目标优化游戏;如果下发驱动指令的主体不是目标优化游戏,则不执行本方法流程;如果下发驱动指令的主体是目标优化游戏,则拦截所有图形指令,并缓存成指令流。其中,该图形指令用于调用驱动层指令来触发GPU渲染图像帧。部分图形指令中包含了绘制过程中相机的位置信息,电子设备可以分析指令流,获取相机的位置信息,并缓存相机的位置信息,以备后续使用。
步骤802,缓存游戏中已渲染的图像帧。
可以参阅图10,图10为本申请实施例提供的一种拦截并缓存渲染帧的流程示意图。如图10所示,在系统内核及驱动(1007)下发渲染指令至GPU以完成渲染并生成渲染帧(例如上述的第一图像帧和第二图像帧)后,渲染帧缓存管理模块(1003)在渲染帧放到显示缓冲区前将其拦截并缩小拷贝保存一份,其中缩小渲染帧的目的是为了节省后续计算相似度的功耗。在渲染帧缓存管理模块中,有两个用于缓存渲染帧的缓冲区。每当有一个缓冲区保存完成渲染帧后,会更换下一次保存的缓冲区。这样,通过两个缓冲区交替保存渲染帧,以达到节省存储空间的目的。此外,在保存完成渲染帧后,将拦截的原始渲染帧交给显示缓冲区,即完成整个过程。
步骤803,缓存已渲染的图像帧的相机位置。
此外,对于缓存在缓冲区中的渲染帧,可以进一步缓存这些渲染帧对应的相机位置。
步骤804,相机位置是否变化较快?
可以参阅图11,图11为本申请实施例提供的一种计算相机位置距离的流程示意图。如图11所示,摄像机运动模块(1002)获取到上述步骤所缓存的相机位置,即已渲染得到的渲染帧对应的相机位置以及渲染指令中的相机位置,然后通过计算所缓存的相机位置之间的距离,并将该距离和第二阈值作比较,来判断相机位置是否变化较快。如果该距离大于第二阈值,则代表相机位置变化较快;如果该距离小于或等于第二阈值,则代表相机位置变化不快。
如果相机位置变化较快,则代表当前处于运动变化较快的场景,这些场景下相邻的两个图像帧之间的相似度一般不高,因此这些场景跳过相似度计算,以节省开销。即,如果相机位置变化较快,则转至执行步骤806,下发渲染指令,实现图像帧的渲染。
如果相机位置变化不快,则代表当前不处于运动变化较快的场景,因此可以进一步对图像帧进行相似度计算。
步骤805,GPU并行计算帧间ROI相似度。
可以参阅图12,图12为本申请实施例提供的一种计算图像帧相似度的流程示意图。如图12所示,计算图像帧相似度的过程在相似度计算模块(1004)中执行。首先,从缓冲区中取出已经缩小缓存的两个渲染帧,并且将两个缩小后的渲染帧穿入GPU中。然后,将两个缩小后的渲染帧均切分为2*3的图像块,构成六组图像块,每组图像块分别包括两个缩小后的渲染帧中的一个图像块。此外,将六组图像块的颜色空间从RGB颜色空间转换到YUV颜色空间,以便于后续计算SSIM值。其次,计算这两个缩小后的渲染帧的SAT表,以用于后续加速SSIM的计算。最后,使用卷积核计算每组图像块的SSIM值,并且将每组图像块对应的所有卷积核计算得到的SSIM值取平均值,得到每组图像块对应的SSIM值,取每组图像块对应的SSIM值中最小的SSIM值作为两个渲染帧的相似度。在得到两个渲染帧的相似度之后,则将两个渲染帧的相似度发送给决策模块,以确定后续的渲染方式。
为便于理解,以下将结合附图解释用于加速SSIM计算的SAT表。
可以参阅图13,图13为本申请实施例提供的一种SAT表的示意图。图像实际上是由很多像素点组成,每一个像素点都可以抽象成一个值,在本方案中,每个像素点抽象得到的值就是YUV空间中的Y值。如图13所示,图13中上方的图表示了图像中各个像素点的值,图13中下方的图则为图像对应的SAT表。其中,SAT表就是从左上角的像素点开始,到当前像素点结束,组成的矩形中所有像素值累加起来形成的一张图。例如,SAT表中的101就是该位置左上角所有像素点的值累加得到的,即31+2+12+26+13+17=101。
SAT的好处在于:如果要计算图13中上方的图的方框内的15+16+14+28+27+11的值,只需要基于四个角的值进行计算即可得到相同的值,即15+16+14+28+27+11=101+450-254-186=111。如果图13中上方的图的方框再大一些,则可以节省较大的计算量。比如,卷积核是7x7的情况下,通常需要累加49次的值,此时就可以节省49-4=45次的计算开销。当然,实际使用中同样需要考虑生成SAT表的开销,但整体而言,生成SAT表还是能够节省相似度的计算量。
步骤806,下发渲染指令。
本步骤中,在决策模块(1005)确定不执行帧复用的情况下,则向GPU下发渲染指令,从而使得GPU基于渲染指令实现目标图像帧的渲染。
步骤807,判断帧间ROI相似度是否较高?
可以参阅图14,图14为本申请实施例提供的一种判断相似度的流程示意图。如图14所示,在步骤805中输出两个渲染帧的SSIM值后,决策模块(1005)需要判断该SSIM值是否大于相似度阈值。若SSIM值大于或等于相似度阈值,则表示两个渲染帧的相似度较高,则决策使能帧复用;若SSIM值小于相似度阈值,则表示两个渲染帧的相似度不高,则决策不使能帧复用。
在高帧率(例如帧率大于30FPS)的情况下,人的手工操作无法快速改变帧间相似度,因此帧间相似度在时域上具有连续性,如上述的图4所示。因此,在决策时需要根据这一特性确定相似度阈值。若上一次使能帧复用,相似度阈值应为基准阈值与0.005的差值,即本次更有可能使能帧复用。若上一次未使能帧复用,则本帧使能帧复用的可能性小,阈值为基准阈值不变,其中基准阈值可以为0.99。初始时的决策默认为不使能帧复用。
步骤808,使能帧复用。
可以参阅图15,图15为本申请实施例提供的一种使能帧复用的流程示意图。本步骤在帧复用使能模块(1006)中实施。首先,从显示缓冲区中拷贝一份当前的渲染帧,输送到下一个显示器从显示缓冲区中取值的位置,从而实现帧复用;然后挂起渲染线程,计算从上一帧结束后开始,到目前为止消耗的时间,用两帧图像帧的显示时长减掉计算得到的消耗时间,得到需要挂起渲染线程的时间,进而延迟下一帧的渲染指令流下发。
由上述的方法可以看出,相较于现有的相关技术,本方案只需要通过两个连续的渲染帧就可以决策是否需要使能帧复用,不需要人工成本,节省了大量的人工成本。另外基于两帧图像帧相似度的决策,符合人类视觉感知习惯,场景识别率可以得到很好的保障。
其次,本方案只依赖于两个渲染帧,意味着不依赖于平台也不依赖于游戏,从而保证本方案可以移植到任意一个平台,任意一个游戏应用上,具有较高的可移植性和通用性。
此外,本方案可以根据不同场景下的用户体验,动态的调整阈值,从而扩大收益,增加帧复用使能的比例。同时选择帧复用这种画面不会出错的技术,解决了插帧技术方案易致眩晕的问题。
在图1至图15所对应的实施例的基础上,为了更好的实施本申请实施例的上述方案,下面还提供用于实施上述方案的相关设备。
具体可以参阅图16,图16为本申请实施例提供的一种装置1600的结构示意图,该数据处理装置1600包括:获取单元1601和处理单元1602;所述获取单元1601,用于获取第一渲染指令,所述第一渲染指令用于指示渲染第一目标图像帧;所述获取单元1601还用于根据所述第一渲染指令获取第一图像帧和第二图像帧,所述第一图像帧为所述第二图像帧的前一帧,所述第二图像帧为所述第一目标图像帧的前一帧;所述处理单元1602,用于基于所述第一图像帧和所述第二图像帧之间的相似度大于或等于第一阈值,根据所述第二图像帧得到所述第一目标图像帧,其中所述第一目标图像帧的内容与所述第二图像帧的内容相同。
在一种可能的实现方式中,所述第一渲染指令中包括待渲染的三维模型中的第一观察点位置;所述处理单元1602还用于:获取所述第二图像帧对应的第二观察点位置,所述第二图像帧是基于所述第二观察点位置对所述三维模型进行渲染得到的;基于所述第一观察点位置与所述第二观察点位置之间的距离小于或等于第二阈值,确定所述第一图像帧和所述第二图像帧之间的相似度。
在一种可能的实现方式中,所述获取单元1601,还用于获取第二渲染指令,所述第二渲染指令用于指示渲染第二目标图像帧,所述第二渲染指令中包括待渲染的三维模型中的第三观察点位置;所述获取单元1601,还用于根据所述第二渲染指令获取第三图像帧、第四图像帧以及所述第四图像帧对应的第四观察点位置,所述第三图像帧为所述第四图像帧的前一帧,所述第四图像帧为所述第二目标图像帧的前一帧,所述第四图像帧是基于所述第四观察点位置对所述三维模型进行渲染得到的;所述处理单元1602,还用于:基于所述第三观察点位置与所述第四观察点位置之间的距离大于第二阈值,执行所述第二渲染指令,以渲染得到所述第二目标图像帧;或,基于所述第三观察点位置与所述第四观察点位置之间的距离小于或等于所述第二阈值且所述第三图像帧和所述第四图像帧之间的相似度小于所述第一阈值,执行所述第二渲染指令,以渲染得到所述第二目标图像帧。
在一种可能的实现方式中,所述处理单元1602,具体用于:将所述第一图像帧和所述第二图像帧分别划分为多个图像块,得到所述第一图像帧对应的多个第一图像块和所述第二图像帧对应的多个第二图像块,其中所述多个第一图像块与所述多个第二图像块具有一一对应的关系;分别计算所述多个第一图像块与所述多个第二图像块中具有对应关系的图像块之间的相似度,得到多组相似度;将所述多组相似度中的目标相似度确定为所述第一图像帧和所述第二图像帧之间的相似度,所述目标相似度为所述多组相似度中值最小的相似度。
在一种可能的实现方式中,所述第一阈值是基于第三阈值确定的,所述第三阈值为预先设定的固定值;其中,若第三目标图像帧是通过渲染得到的,则所述第一阈值与所述第三阈值相同,所述第三目标图像帧为位于所述第一目标图像帧之前且所述第三目标图像帧的渲染方式是基于图像帧之间的相似度确定的;若第三目标图像帧是通过复用图像帧得到的,则所述第一阈值为所述第三阈值与第四阈值之间的差值,所述第四阈值为预先设定的固定值。
在一种可能的实现方式中,所述处理单元1602,还用于:确定目标时长,所述目标时长为两帧图像帧的显示时长与计算得到所述第一目标图像帧的时长之间的差值;停止运行渲染线程,其中所述渲染线程停止运行的时长为所述目标时间,所述渲染线程用于基于渲染指令渲染得到图像帧。
在一种可能的实现方式中,所述处理单元1602,具体用于:对所述第一图像帧和所述第二图像帧执行缩小处理,得到缩小后的第一图像帧和缩小后的第二图像帧;计算所述缩小后的第一图像帧和所述缩小后的第二图像帧之间的相似度,得到所述第一图像帧和所述第二图像帧之间的相似度。
接下来介绍本申请实施例提供的一种电子设备,请参阅图17,图17为本申请实施例提供的电子设备的一种结构示意图,电子设备1700具体可以表现为手机、平板、笔记本电脑、智能穿戴设备、服务器等,此处不做限定。其中,电子设备1700上可以部署有图11对应实施例中所描述的声音处理装置,用于实现图11对应实施例中声音处理的功能。具体的,电子设备1700包括:接收器1701、发射器1702、处理器1703和存储器1704(其中电子设备1700中的处理器1703的数量可以一个或多个,图17中以一个处理器为例),其中,处理器1703可以包括应用处理器17031和通信处理器17032。在本申请的一些实施例中,接收器1701、发射器1702、处理器1703和存储器1704可通过总线或其它方式连接。
存储器1704可以包括只读存储器和随机存取存储器,并向处理器1703提供指令和数据。存储器1704的一部分还可以包括非易失性随机存取存储器(non-volatile randomaccess memory,NVRAM)。存储器1704存储有处理器和操作指令、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,操作指令可包括各种操作指令,用于实现各种操作。
处理器1703控制电子设备的操作。具体的应用中,电子设备的各个组件通过总线系统耦合在一起,其中总线系统除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都称为总线系统。
上述本申请实施例揭示的方法可以应用于处理器1703中,或者由处理器1703实现。处理器1703可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1703中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1703可以是通用处理器、数字信号处理器(digital signal processing,DSP)、微处理器或微控制器,还可进一步包括专用集成电路(application specific integratedcircuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。该处理器1703可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1704,处理器1703读取存储器1704中的信息,结合其硬件完成上述方法的步骤。
接收器1701可用于接收输入的数字或字符信息,以及产生与电子设备的相关设置以及功能控制有关的信号输入。发射器1702可用于通过第一接口输出数字或字符信息;发射器1702还可用于通过第一接口向磁盘组发送指令,以修改磁盘组中的数据;发射器1702还可以包括显示屏等显示设备。
可以参阅图18,本申请还提供了一种计算机可读存储介质,在一些实施例中,上述图3所公开的方法可以实施为以机器可读格式被编码在计算机可读存储介质上或者被编码在其它非瞬时性介质或者制品上的计算机程序指令。
图18示意性地示出根据这里展示的至少一些实施例而布置的示例计算机可读存储介质的概念性局部视图,示例计算机可读存储介质包括用于在计算设备上执行计算机进程的计算机程序。
在一个实施例中,计算机可读存储介质1800是使用信号承载介质1801来提供的。信号承载介质1801可以包括一个或多个程序指令1802,其当被一个或多个处理器运行时可以提供以上针对图5描述的功能或者部分功能。此外,图18中的程序指令1802也描述示例指令。
在一些示例中,信号承载介质1801可以包含计算机可读介质1803,诸如但不限于,硬盘驱动器、紧密盘(CD)、数字视频光盘(DVD)、数字磁带、存储器、ROM或RAM等等。
在一些实施方式中,信号承载介质1801可以包含计算机可记录介质1804,诸如但不限于,存储器、读/写(R/W)CD、R/W DVD、等等。在一些实施方式中,信号承载介质1801可以包含通信介质1805,诸如但不限于,数字和/或模拟通信介质(例如,光纤电缆、波导、有线通信链路、无线通信链路、等等)。因此,例如,信号承载介质1801可以由无线形式的通信介质1805(例如,遵守IEEE 802标准或者其它传输协议的无线通信介质)来传达。
一个或多个程序指令1802可以是,例如,计算机可执行指令或者逻辑实施指令。在一些示例中,计算设备的计算设备可以被配置为,响应于通过计算机可读介质1803、计算机可记录介质1804、和/或通信介质1805中的一个或多个传达到计算设备的程序指令1802,提供各种操作、功能、或者动作。
应该理解,这里描述的布置仅仅是用于示例的目的。因而,本领域技术人员将理解,其它布置和其它元素(例如,机器、接口、功能、顺序、和功能组等等)能够被取而代之地使用,并且一些元素可以根据所期望的结果而一并省略。另外,所描述的元素中的许多是可以被实现为离散的或者分布式的组件的、或者以任何适当的组合和位置来结合其它组件实施的功能实体。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (17)
1.一种图像帧的渲染方法,其特征在于,包括:
获取第一渲染指令,所述第一渲染指令用于指示渲染第一目标图像帧;
根据所述第一渲染指令获取第一图像帧和第二图像帧,所述第一图像帧为所述第二图像帧的前一帧,所述第二图像帧为所述第一目标图像帧的前一帧;
基于所述第一图像帧和所述第二图像帧之间的相似度大于或等于第一阈值,根据所述第二图像帧得到所述第一目标图像帧,其中所述第一目标图像帧的内容与所述第二图像帧的内容相同。
2.根据权利要求1所述的方法,其特征在于,所述第一渲染指令中包括待渲染的三维模型中的第一观察点位置;
所述方法还包括:
获取所述第二图像帧对应的第二观察点位置,所述第二图像帧是基于所述第二观察点位置对所述三维模型进行渲染得到的;
基于所述第一观察点位置与所述第二观察点位置之间的距离小于或等于第二阈值,确定所述第一图像帧和所述第二图像帧之间的相似度。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
获取第二渲染指令,所述第二渲染指令用于指示渲染第二目标图像帧,所述第二渲染指令中包括待渲染的三维模型中的第三观察点位置;
根据所述第二渲染指令获取第三图像帧、第四图像帧以及所述第四图像帧对应的第四观察点位置,所述第三图像帧为所述第四图像帧的前一帧,所述第四图像帧为所述第二目标图像帧的前一帧,所述第四图像帧是基于所述第四观察点位置对所述三维模型进行渲染得到的;
基于所述第三观察点位置与所述第四观察点位置之间的距离大于第二阈值,执行所述第二渲染指令,以渲染得到所述第二目标图像帧;
或,基于所述第三观察点位置与所述第四观察点位置之间的距离小于或等于所述第二阈值且所述第三图像帧和所述第四图像帧之间的相似度小于所述第一阈值,执行所述第二渲染指令,以渲染得到所述第二目标图像帧。
4.根据权利要求1-3任意一项所述的方法,其特征在于,所述方法还包括:
将所述第一图像帧和所述第二图像帧分别划分为多个图像块,得到所述第一图像帧对应的多个第一图像块和所述第二图像帧对应的多个第二图像块,其中所述多个第一图像块与所述多个第二图像块具有一一对应的关系;
分别计算所述多个第一图像块与所述多个第二图像块中具有对应关系的图像块之间的相似度,得到多组相似度;
将所述多组相似度中的目标相似度确定为所述第一图像帧和所述第二图像帧之间的相似度,所述目标相似度为所述多组相似度中值最小的相似度。
5.根据权利要求1-4任意一项所述的方法,其特征在于,所述第一阈值是基于第三阈值确定的,所述第三阈值为预先设定的固定值;
其中,若第三目标图像帧是通过渲染得到的,则所述第一阈值与所述第三阈值相同,所述第三目标图像帧为位于所述第一目标图像帧之前且所述第三目标图像帧的渲染方式是基于图像帧之间的相似度确定的;
若第三目标图像帧是通过复用图像帧得到的,则所述第一阈值为所述第三阈值与第四阈值之间的差值,所述第四阈值为预先设定的固定值。
6.根据权利要求1-5任意一项所述的方法,其特征在于,所述方法还包括:
确定目标时长,所述目标时长为两帧图像帧的显示时长与计算得到所述第一目标图像帧的时长之间的差值;
停止运行渲染线程,其中所述渲染线程停止运行的时长为所述目标时间,所述渲染线程用于基于渲染指令渲染得到图像帧。
7.根据权利要求1-6任意一项所述的方法,其特征在于,所述方法还包括:
对所述第一图像帧和所述第二图像帧执行缩小处理,得到缩小后的第一图像帧和缩小后的第二图像帧;
计算所述缩小后的第一图像帧和所述缩小后的第二图像帧之间的相似度,得到所述第一图像帧和所述第二图像帧之间的相似度。
8.一种渲染装置,其特征在于,包括:
获取单元,用于获取第一渲染指令,所述第一渲染指令用于指示渲染第一目标图像帧;
所述获取单元还用于根据所述第一渲染指令获取第一图像帧和第二图像帧,所述第一图像帧为所述第二图像帧的前一帧,所述第二图像帧为所述第一目标图像帧的前一帧;
处理单元,用于基于所述第一图像帧和所述第二图像帧之间的相似度大于或等于第一阈值,根据所述第二图像帧得到所述第一目标图像帧,其中所述第一目标图像帧的内容与所述第二图像帧的内容相同。
9.根据权利要求8所述的装置,其特征在于,所述第一渲染指令中包括待渲染的三维模型中的第一观察点位置;
所述处理单元还用于:
获取所述第二图像帧对应的第二观察点位置,所述第二图像帧是基于所述第二观察点位置对所述三维模型进行渲染得到的;
基于所述第一观察点位置与所述第二观察点位置之间的距离小于或等于第二阈值,确定所述第一图像帧和所述第二图像帧之间的相似度。
10.根据权利要求8或9所述的装置,其特征在于,
所述获取单元,还用于获取第二渲染指令,所述第二渲染指令用于指示渲染第二目标图像帧,所述第二渲染指令中包括待渲染的三维模型中的第三观察点位置;
所述获取单元,还用于根据所述第二渲染指令获取第三图像帧、第四图像帧以及所述第四图像帧对应的第四观察点位置,所述第三图像帧为所述第四图像帧的前一帧,所述第四图像帧为所述第二目标图像帧的前一帧,所述第四图像帧是基于所述第四观察点位置对所述三维模型进行渲染得到的;
所述处理单元,还用于:基于所述第三观察点位置与所述第四观察点位置之间的距离大于第二阈值,执行所述第二渲染指令,以渲染得到所述第二目标图像帧;
或,基于所述第三观察点位置与所述第四观察点位置之间的距离小于或等于所述第二阈值且所述第三图像帧和所述第四图像帧之间的相似度小于所述第一阈值,执行所述第二渲染指令,以渲染得到所述第二目标图像帧。
11.根据权利要求8-10任意一项所述的装置,其特征在于,所述处理单元,具体用于:
将所述第一图像帧和所述第二图像帧分别划分为多个图像块,得到所述第一图像帧对应的多个第一图像块和所述第二图像帧对应的多个第二图像块,其中所述多个第一图像块与所述多个第二图像块具有一一对应的关系;
分别计算所述多个第一图像块与所述多个第二图像块中具有对应关系的图像块之间的相似度,得到多组相似度;
将所述多组相似度中的目标相似度确定为所述第一图像帧和所述第二图像帧之间的相似度,所述目标相似度为所述多组相似度中值最小的相似度。
12.根据权利要求8-11任意一项所述的装置,其特征在于,所述第一阈值是基于第三阈值确定的,所述第三阈值为预先设定的固定值;
其中,若第三目标图像帧是通过渲染得到的,则所述第一阈值与所述第三阈值相同,所述第三目标图像帧为位于所述第一目标图像帧之前且所述第三目标图像帧的渲染方式是基于图像帧之间的相似度确定的;
若第三目标图像帧是通过复用图像帧得到的,则所述第一阈值为所述第三阈值与第四阈值之间的差值,所述第四阈值为预先设定的固定值。
13.根据权利要求8-12任意一项所述的装置,其特征在于,所述处理单元,还用于:
确定目标时长,所述目标时长为两帧图像帧的显示时长与计算得到所述第一目标图像帧的时长之间的差值;
停止运行渲染线程,其中所述渲染线程停止运行的时长为所述目标时间,所述渲染线程用于基于渲染指令渲染得到图像帧。
14.根据权利要求8-13任意一项所述的装置,其特征在于,所述处理单元,具体用于:
对所述第一图像帧和所述第二图像帧执行缩小处理,得到缩小后的第一图像帧和缩小后的第二图像帧;
计算所述缩小后的第一图像帧和所述缩小后的第二图像帧之间的相似度,得到所述第一图像帧和所述第二图像帧之间的相似度。
15.一种电子设备,其特征在于,包括存储器和处理器;所述存储器存储有代码,所述处理器被配置为执行所述代码,当所述代码被执行时,所述电子设备执行如权利要求1至7任意一项所述的方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有指令,所述指令在由计算机执行时使得所述计算机实施如权利要求1至7任意一项所述的方法。
17.一种计算机程序产品,其特征在于,所述计算机程序产品存储有指令,所述指令在由计算机执行时使得所述计算机实施如权利要求1至7任意一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111424170.9A CN116173496A (zh) | 2021-11-26 | 2021-11-26 | 一种图像帧的渲染方法及相关装置 |
PCT/CN2022/133959 WO2023093792A1 (zh) | 2021-11-26 | 2022-11-24 | 一种图像帧的渲染方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111424170.9A CN116173496A (zh) | 2021-11-26 | 2021-11-26 | 一种图像帧的渲染方法及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116173496A true CN116173496A (zh) | 2023-05-30 |
Family
ID=86435049
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111424170.9A Pending CN116173496A (zh) | 2021-11-26 | 2021-11-26 | 一种图像帧的渲染方法及相关装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116173496A (zh) |
WO (1) | WO2023093792A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117687495A (zh) * | 2024-02-04 | 2024-03-12 | 荣耀终端有限公司 | 一种数据获取方法、训练方法及电子设备 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9940858B2 (en) * | 2016-05-16 | 2018-04-10 | Unity IPR ApS | System and method for assymetric rendering to eyes in augmented reality and virtual reality devices |
US10537799B1 (en) * | 2018-03-23 | 2020-01-21 | Electronic Arts Inc. | User interface rendering and post processing during video game streaming |
CN111724293B (zh) * | 2019-03-22 | 2023-07-28 | 华为技术有限公司 | 图像渲染方法及装置、电子设备 |
CN110062176B (zh) * | 2019-04-12 | 2020-10-30 | 北京字节跳动网络技术有限公司 | 生成视频的方法、装置、电子设备和计算机可读存储介质 |
CN112422873B (zh) * | 2020-11-30 | 2022-09-16 | Oppo(重庆)智能科技有限公司 | 插帧方法、装置、电子设备及存储介质 |
CN113473181B (zh) * | 2021-09-03 | 2021-12-31 | 北京市商汤科技开发有限公司 | 视频处理方法和装置、计算机可读存储介质及计算机设备 |
-
2021
- 2021-11-26 CN CN202111424170.9A patent/CN116173496A/zh active Pending
-
2022
- 2022-11-24 WO PCT/CN2022/133959 patent/WO2023093792A1/zh active Application Filing
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117687495A (zh) * | 2024-02-04 | 2024-03-12 | 荣耀终端有限公司 | 一种数据获取方法、训练方法及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2023093792A1 (zh) | 2023-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109413480B (zh) | 画面处理方法、装置、终端及存储介质 | |
EP4192015A1 (en) | Video encoding method, video decoding method, apparatus, electronic device, storage medium, and computer program product | |
CN112004086B (zh) | 视频数据处理方法及装置 | |
US20220312063A1 (en) | Methods and Systems for Graphics Rendering Assistance by a Multi-Access Server | |
CN109829964B (zh) | Web增强现实的渲染方法和装置 | |
CN111491208B (zh) | 视频处理方法、装置、电子设备及计算机可读介质 | |
CN112053449A (zh) | 基于增强现实的显示方法、设备及存储介质 | |
US11810223B2 (en) | Controlling multi-GPU execution of kernels by kernel portion and resource region based dependencies | |
US8581924B2 (en) | Method and mobile terminal for enabling animation during screen-switching | |
CN112053370A (zh) | 基于增强现实的显示方法、设备及存储介质 | |
US10237563B2 (en) | System and method for controlling video encoding using content information | |
WO2021196917A9 (zh) | 游戏应用程序中的帧显示方法、装置、终端和存储介质 | |
US20240127528A1 (en) | Special effect generation method, electronic device and storage medium | |
CN112884908A (zh) | 基于增强现实的显示方法、设备、存储介质及程序产品 | |
CN111464828A (zh) | 虚拟特效显示方法、装置、终端及存储介质 | |
CN113206993A (zh) | 一种调整显示屏幕的方法及显示设备 | |
WO2022218042A1 (zh) | 视频处理方法、装置、视频播放器、电子设备及可读介质 | |
WO2023093792A1 (zh) | 一种图像帧的渲染方法及相关装置 | |
CN115082609A (zh) | 图像渲染方法、装置、存储介质及电子设备 | |
US11810524B2 (en) | Virtual reality display device and control method thereof | |
CN113411537A (zh) | 视频通话方法、装置、终端及存储介质 | |
CN116958344A (zh) | 虚拟形象的动画生成方法、装置、计算机设备及存储介质 | |
CN116091292A (zh) | 数据处理方法和相关装置 | |
CN118159341A (zh) | 一种图像帧的渲染方法及相关装置 | |
CN115861510A (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 |