首页 / 专利库 / 无土农业 / 过滤器 / 保持稳定帧速率的系统和方法

保持稳定速率的系统和方法

阅读:1046发布:2020-07-26

专利汇可以提供保持稳定速率的系统和方法专利检索,专利查询,专利分析的服务。并且包括 图形处理单元 (GPU)的系统及其执行的方法可以保持稳定 帧 速率。该系统还包括存储由该GPU 渲染 的帧的 存储器 以及显示由该GPU渲染的帧的显示器。响应于该GPU在工作 频率 下保持 帧速率 的负指示,GPU可在保持工作频率的同时降低后续帧的帧 质量 。,下面是保持稳定速率的系统和方法专利的具体信息内容。

1.一种用于保持稳定速率的系统,其特征在于,包括:
图形处理单元
存储器,存储由该图形处理单元渲染的多个帧;以及
显示器,显示由该图形处理单元渲染的该多个帧,
其中,响应于关于该图形处理单元在工作频率下保持帧速率的负指示,该图形处理单元在保持该工作频率的同时降低多个后续帧的帧质量
2.如权利要求1所述的系统,其特征在于,当低于或等于预定数量的图形处理索引超过相应阈值时,该图形处理单元进一步减少图形处理单元负载,从而减少该多个后续帧中的低于或等于该预定数量的图形处理索引,其中不同图形处理索引指示该系统的不同部分上的负载量。
3.如权利要求1所述的系统,其特征在于,当超过预定数量的图形处理索引超过相应阈值时,该图形处理单元进一步降低该多个后续帧的分辨率,其中不同图形处理索引指示该系统的不同部分上的负载量。
4.如权利要求3所述的系统,其特征在于,该图形处理单元通过将至少一个后续帧的高密度内容渲染到具有不大于屏幕大小的可调节大小的渲染区域来降低该分辨率。
5.如权利要求3所述的系统,其特征在于,该分辨率沿帧内容移动方向降低。
6.如权利要求1所述的系统,其特征在于,通过降低纹理过滤器的复杂度和/或降低纹理过滤细节级别来降低该帧质量。
7.如权利要求1所述的系统,其特征在于,通过降低图形处理单元计算中的算数逻辑单元的精度来降低该帧质量。
8.如权利要求1所述的系统,其特征在于,通过减少由该图形处理单元执行的所有任务中最耗时任务的计算来降低该帧质量。
9.如权利要求1所述的系统,其特征在于,响应于检测到系统条件降低该帧质量,该系统条件至少包括以下之一:节能模式、热节流模式和持续性能模式。
10.如权利要求1所述的系统,其特征在于,响应于该帧速率稳定并且高于阈值,该系统将该多个后续帧的三重缓冲转换为用于该显示器的双重缓冲。
11.一种用于保持稳定帧速率的方法,可由一种系统执行,其特征在于,包括:
检测关于图形处理单元在工作频率下保持帧速率的负指示;以及
响应于该负指示,在保持该工作频率的同时降低多个后续帧的帧质量。
12.如权利要求11所述的用于保持稳定帧速率的方法,进一步包括:
当低于或等于预定数量的图形处理索引超过相应阈值时,减少图形处理单元负载,从而减少该多个后续帧中的低于或等于该预定数量的图形处理索引,其中不同图形处理索引指示该系统的不同部分上的负载量。
13.如权利要求11所述的用于保持稳定帧速率的方法,进一步包括:
当超过预定数量的图形处理索引超过相应阈值时,该图形处理单元进一步降低该多个后续帧的分辨率,其中不同图形处理索引指示该系统的不同部分上的负载量。
14.如权利要求13所述的用于保持稳定帧速率的方法,其特征在于,降低该分辨率进一步包括:
将至少一个后续帧的高密度内容渲染到具有不大于屏幕大小的可调节大小的渲染区域。
15.如权利要求13所述的用于保持稳定帧速率的方法,其特征在于,该分辨率沿帧内容移动方向降低。
16.如权利要求11所述的用于保持稳定帧速率的方法,其特征在于,降低该帧质量进一步包括:
降低纹理过滤器的复杂度和/或降低纹理过滤细节级别。
17.如权利要求11所述的用于保持稳定帧速率的方法,其特征在于,降低该帧质量进一步包括:
降低图形处理单元计算中的算数逻辑单元的精度。
18.如权利要求11所述的用于保持稳定帧速率的方法,其特征在于,降低该帧质量进一步包括:
减少由该图形处理单元执行的所有任务中最耗时任务的计算。
19.如权利要求11所述的用于保持稳定帧速率的方法,其特征在于,响应于检测到系统条件降低该帧质量,该系统条件至少包括以下之一:节能模式、热节流模式和持续性能模式。
20.如权利要求11所述的用于保持稳定帧速率的方法,进一步包括:
响应于该帧速率稳定并且高于阈值,将该多个后续帧的三重缓冲转换为用于显示的双重缓冲。

说明书全文

保持稳定速率的系统和方法

[0001] 交叉引用
[0002] 本发明要求:编号为62/737,221,申请日为2018年9月27日的美国临时专利申请以及编号为16/403,491,申请日为2019年5月3日的美国专利申请的优先权。上述美国专利申请在此一并作为参考。

技术领域

[0003] 本发明一般涉及由图形处理单元(Graphics Processing Unit,GPU)渲染的帧质量的控制。

背景技术

[0004] 在计算机图形学中,渲染(rendering)是通过对图形对象或模型的描述在显示装置上生成图像的过程。GPU将图形对象(通常由如点、线、多边形和高阶曲面的基元(primitive)的组合表示)渲染为图像元素(像素)。GPU通常包括执行渲染操作的渲染管线。渲染管线包括以下主要阶段:(1)顶点处理,处理顶点(其描述基元)并将其转换成投影空间,(2)光栅化,将每个基元转换成一组像素,这些像素与显示装置上具有如位置颜色和法线等属性的像素网格对齐,(3)片段处理,通过将像素的材质属性、纹理、光线和其他参数进行组合来处理每个单独的像素,以及(4)输出处理,将所有基元的像素组合到显示空间中。
[0005] GPU以给定帧速率(即,每秒帧数,也称(frames per second,FPS))输出一系列已渲染的图像(称为“帧”)。当GPU过载时,某些帧可能无法在帧时间预算内渲染,并可能在到达显示器之前丢失。帧丢失通常会导致图形内容在屏幕上断断续续并暂停,这在计算中称为“掉帧(jank)”。即使是少量的掉帧也会对用户体验产生负面影响。因此,需要对图形系统中的帧渲染设计进行改进。

发明内容

[0006] 在一个实施例中,提出了一种用于保持稳定帧速率的系统。该系统包括GPU、用于存储由GPU渲染的帧的存储器以及显示由GPU渲染的帧的显示器。响应于关于GPU在工作频率下保持帧速率的负指示,GPU在保持工作频率的同时降低后续帧的帧质量。
[0007] 在另一个实施例中,提出了一种保持稳定帧速率的方法。检测到关于GPU在工作频率下保持帧速率的负指示。响应于该负指示,在保持工作频率的同时降低后续帧的帧质量。
[0008] 本发明的用于保持稳定帧速率的系统和方法可以动态调节由GPU渲染的帧质量,保持稳定帧速率,从而增强用户体验。
[0009] 通过结合附图阅读以下特定实施例的描述后,本发明的其他方面和特征对于本领域技术人员将变得显而易见。

附图说明

[0010] 本发明通过示例的方式进行描述,但示例并非限制,在附图中,相同参考指示相似的组件。应当注意的是,对于本发明中的“一”或者“一个”实施例的不同参考对于同一实施例并不是必要的,并且该多个参考意味着至少一个。此外,当描述与实施例相关的特定特征、结构或者特性时,应当主张的是,无论是否明确描述,结合其他实施例实现这些特征、结构或者特性,是在本领域技术人员的认知范围内的。
[0011] 图1描述了本发明的实施例可在其中运行的系统。
[0012] 图2是根据实施例的用于管理帧质量的方法流程图
[0013] 图3是根据实施例描述的与GPU负载和工作频率相关的帧质量控制的示意图。
[0014] 图4A和4B描述了根据一些实施例的动态分辨率降低的示例。
[0015] 图5是根据实施例的保持稳定帧速率的方法流程图。

具体实施方式

[0016] 在下文描述中,阐述了许多具体细节。然而,应当理解的是,可以在没有这些具体细节的情况下实施本发明的实施例。在其他情况下,没有详细地示出公知电路、结构和技术,以免模糊对本说明书的理解。然而,本领域技术人员应当理解,可以在没有这些具体细节的情况下实施本发明。通过所包含的描述,本领域技术人员不需要过多实验就能够实施合适的功能。
[0017] 本发明的实施例提出了动态调节由GPU渲染的帧质量以保持稳定帧速率的系统和方法。该系统包括一个或更多个GPU、存储器和显示器。对每个GPU和由GPU生成的帧进行评估,以评估帧是否以稳定速率渲染还是将以稳定速率进行渲染。可以设置该系统为GPU提供用于渲染帧的帧时间预算。将无法满足帧时间预算的帧丢弃。如果检测到GPU未能保持帧速率(例如,丢失帧的数量超过阈值),GPU可以降低后续帧的帧质量。降低帧质量可减少GPU负载,因此允许每个后续帧满足帧时间预算,并将帧速率(即,FPS)保持在稳定速率,从而增强用户体验。
[0018] 图1描述了本发明的实施例可在其中运行的系统100。系统100包括GPU 110、存储器130和显示器180。此外,系统100包括中央处理单元(central processing unit,CPU)150,作为主机执行软件,将任务分配给GPU 110和系统100中的其他硬件组件。CPU 150可以向GPU 110发出命令以指示GPU 110执行图形计算。系统100的描述已经简化为仅示出一个GPU和一个CPU;应该理解的是,系统100可以包括多个CPU和多个GPU以及附加的硬件组件。
[0019] 在一个实施例中,GPU 110执行图形计算;例如,创建三维(three dimensional,3D)场景的二维(two dimensional,2D)光栅化表示,以及一般处理任务。GPU 110包括为加快图形计算定制的固定功能硬件114和用于可程序图形处理以及通用目的可程序计算的着色器(shader)硬件112的组合。在一些实施例中,着色器硬件112包括可执行并行计算的算术逻辑单元(arithmetic and logic unit,ALU)118。着色器硬件112和固定功能硬件114一起执行管线图形处理,如顶点着色器、光栅化、片段着色器和后处理(post-processing)。
[0020] 在一些实施例中,可将CPU 150和GPU 110集成到单芯片系统(system-on-chip,SoC)平台中。在一个实施例中,SoC平台可以是移动计算和/或通信装置(例如,智能手机、平板计算机、笔记本电脑、游戏装置、可穿戴装置等)、桌面计算系统、服务器计算系统或计算系统的一部分。
[0021] 渲染完帧之后,GPU 110向存储器130中的帧缓冲器135发送已渲染帧。存储器130可以是动态随机接入存储器(dynamic random access memory,DRAM)或其他易失性或非易失性存储器。显示器180以刷新速率显示帧缓冲器135中已渲染的帧。如果帧速率高于刷新速率,多余(excess)的帧可能排队等待显示,或者根本不显示。
[0022] 在一个实施例中,系统100包括性能监测器120和控制器140,以使FPS保持在稳定速率。性能监测器120包括CPU 150、GPU 110或系统100的其他地方中用于监测GPU负载、GPU图形处理索引和系统条件的一个或更多个软件和硬件组件。控制器140包括CPU 150、GPU 110或系统100的其他地方中的一个或更多个软件和硬件组件。在一个实施例中,当存在关于GPU 110在预定工作频率下保持帧速率的负指示时,系统100降低帧质量。术语“负指示”在此是指显示GPU 110无法或即将无法在预定工作频率下保持帧速率的信息。负指示包括GPU负载超过阈值或预期超过阈值(例如,由于高密度帧内容)。在监测GPU负载时,性能监测器120可以收集以下GPU信息或其子集,例如对丢失的帧进行计数、估计用于渲染帧的时间以及引起GPU过载和/或丢弃帧的条件。可向控制器140提供由性能监测器120收集的GPU信息。
[0023] 除GPU信息外,控制器140还在确定是否降低帧质量以保持稳定FPS时从系统软件或硬件接收如系统状态和/或统计量(statistic)的系统条件。例如,系统100可以经历热节流(thermal throttling),可以进入节能模式或以持续性能模式进行操作,并且减少这些场景中的GPU负载有助于电能和性能管理。可以通过降低帧质量来实现减少GPU负载。因此,在一个实施例中,GPU 110可以确定(或者控制器140指示GPU 110),不仅基于GPU信息还基于如上述系统状态和/或统计量的系统条件来降低帧质量。
[0024] 在一个实施例中,可以选择多个选项之一来降低帧质量。这些选项的示例包括,但不限于,降低分辨率、使用不同纹理过滤器、降低纹理过滤细节级别(level of detail,LOD)、降低ALU计算精度等。选择这些选项的任一个都可以减少GPU负载。在GPU运行期间,系统100(例如,性能监测器120)可以收集多个图形处理索引,例如存储器数据移动(指示存储器总线上的流量)、纹理过滤处理负载、着色器处理负载等。不同图形处理负载索引指示系统100不同部分上的负载量。如果任一图形处理索引超过其预定阈值,控制器140可以选择一个选项减少该索引。例如,如果纹理过滤处理负载超过阈值,GPU 110可以用需要较少GPU计算的不太复杂的过滤器(例如,双线性纹理过滤器)来代替其过滤器,或者降低纹理过滤器的LOD。降低纹理过滤器的复杂度和/或LOD不仅减少GPU计算,还减少了存储器总线流量,这是由于存储器总线上用于从存储器130检索纹理过滤数据的数据移动更少。如果着色器处理负载超过其阈值,GPU 110降低ALU 118的精度;例如,通过减少表示每个数字的位数。如果所有这些图形处理索引都超过其相应阈值,或者超过预定数量的图形处理索引超过了其相应阈值,GPU 110可以降低后续帧的分辨率。降低分辨率允许GPU 110在每个帧中处理更少的像素,因此可以立刻减少所有图形处理索引。
[0025] 在一个实施例中,分辨率、纹理过滤和ALU精度的改变可以是自适应的;如果帧质量降低后检测到每个帧中始终存在未使用的帧时间预算,GPU 110则可以恢复分辨率、纹理过滤和/或ALU精度,从而恢复帧质量。
[0026] 在一些实施例中,帧缓冲器135包括两个缓冲器(也称为双缓冲器),使得第一缓冲器被GPU 110填充时,第二缓冲器中的帧可以传输到显示器180。目前一些图形系统使用三重缓冲;即,三个缓冲器,使得GPU可以使用额外的帧时间(与双重缓冲相比)来绘制渲染帧。然而,当GPU以与显示器刷新速率基本匹配的稳定速率生成帧时,三重缓冲设计会给帧显示过程增加不必要的延迟。因此,在调节帧质量以保持稳定FPS的前述实施例中,系统100在帧缓冲器135中使用两个缓冲器,而不是三个缓冲器以减少延迟。在一个实施例中,当FPS已经达到稳定速率并且高于阈值(基本上匹配显示器刷新速率)时,控制器140可以禁用帧缓冲器135中三个缓冲器之一,以将三重缓冲转换为用于显示器180的渲染帧的双重缓冲。
[0027] 图2是根据实施例的用于管理帧质量的方法200的流程图。方法200可由图1的系统100执行。方法200从步骤210处开始,控制器140接收指示GPU负载的GPU信息和系统信息。
GPU信息包括无法满足帧时间预算的实际或估计帧数。系统信息包括热节流和系统状态(例如,处于节能模式或持续性能模式),其表明GPU 110需要减少其负载。在步骤220处,GPU 
110确定或受指示(例如,由控制器140)基于这些信息降低帧质量。在步骤230处,GPU 110识别哪些图形处理索引超过其相应阈值。在步骤240处如果超过预定数量(例如,全部)的图形处理索引超过其相应阈值,在步骤250处,GPU 110降低每个后续帧的分辨率。在步骤240处如果低于或等于预定数量的图形处理索引超过其相应阈值,在步骤260处,GPU 110减少GPU负载,从而减少后续帧的这些索引(在步骤240中超过了其阈值)。例如,如果着色器处理负载超过其预定阈值,GPU 110降低ALU精度;如果纹理过滤处理负载超过其预定阈值,GPU 
110将纹理过滤器改为双线性过滤器或降低过滤器LOD。
[0028] 在一个实施例中,GPU 110在渲染帧时执行多个任务。某些任务可能比其他任务消耗更多帧时间预算。例如,如果给定任务消耗80%的帧时间预算,而其余任务仅消耗20%,GPU 110可以减少给定任务(GPU 110所执行的所有任务中最耗时的任务)的计算以降低帧质量。GPU 110可以监测每个任务的处理时间,以确定要减少计算的任务。
[0029] 图3是根据实施例描述的与GPU负载和工作频率相关的帧质量控制的示意图。随着GPU负载增加,系统100可以执行动态电压频率调节(Dynamic Voltage Frequency Scaling,DVFS)以提升GPU 110的工作频率,从而满足工作负载的需求。在图3的示意图中,矩形条的高度表示GPU负载量,并且GPU负载受GPU DVFS工作频率(例如,图3所示的F1、F2、F3和F4)的限制。当达到预定工作频率时,系统100降低GPU 110生成的帧质量并且保持该预定工作频率。例如,当系统100运行在节能模式或持续性能模式(例如,用于长时间运行的应用)时,可能受到预定工作频率的限制,并且随着GPU负载增加在不超过预定工作频率的情况下降低帧质量。如图3的示例所示,受工作频率F4限制的GPU负载可能会在时间T超过其限制。为了避免丢失帧或其他负面性能影响,GPU 110在时间T降低帧质量以在保持相同工作频率F4的同时减少其负载。当GPU 110的负载减少到预定平使GPU负载保持在F4施加的限制内时,可以恢复帧质量。
[0030] 图4A和图4B描述了根据一些实施例的动态分辨率降低的示例。再次参考图1的GPU 110,运行中的GPU 110可以检测到要渲染的帧具有高密度内容,例如,具有大量对象和/或具有高度细节的内容。该检测可以从要渲染图形对象的输入描述、着色器硬件增加的处理负载和/或增加的存储器总线流量等方面进行。在一个实施例中,可以单独使用该检测或结合图形处理索引来确定是否降低后续帧的分辨率。在一个实施例中,GPU 110可以通过将帧渲染到存储器130中的可调节渲染区域410中来降低高密度帧内容的分辨率。例如,将可调节渲染区域410调节到占据整个屏幕420的80%。由于生成的像素更少,较小的可调节渲染区域410(与屏幕420的大小相比)占用GPU 110更少的处理工作。然后,显示器可以使用降低的分辨率(例如,初始分辨率的80%)将可调节渲染区域410中的内容缩放到完整显示大小(即,整个屏幕420)。在基于帧内容的GPU 110运行期间,分辨率的调节可以是动态的。
[0031] 在图4B的示例中,帧分辨率沿内容移动方向降低,例如,照相机可能跟随一个移动物体(例如,移动的人),并且帧分辨率沿移动方向降低。例如,第一人称射击游戏包括可以捕获一个人在给定方向上的移动的帧序列。如果给定方向在要渲染的帧中是水平的,则可以降低水平方向上的帧分辨率。如果给定方向在要渲染的帧中是垂直的,则可以降低垂直方向上的帧分辨率。如果给定方向(例如,图4B中的方向D)同时包括水平分量Dh和垂直分量Dv,则可以同时降低水平和垂直方向上的帧分辨率。可以根据水平分量和垂直分量的大小(或长度)对水平和垂直方向上的降低量进行加权;例如,如果Dh具有长度Lh,Dv具有长度Lv,沿Dh的分辨率降低量可以加权Lh,沿Dv的分辨率降低量可以加权Lv。
[0032] 图5是根据实施例描述的由系统执行用于保持稳定帧速率的方法500的流程图。该系统的示例是图1中的系统100,其包括GPU(例如,GPU 110)。在一个实施例中,方法500由GPU 110执行。方法500从步骤510处开始,系统检测关于GPU在工作频率下保持帧速率的负指示。在步骤520处,响应于该负指示,系统在保持GPU的工作频率的同时降低由GPU渲染的后续帧的帧质量。
[0033] 已经参照图1的示例实施例描述了图2和图5的流程图的操作。然而,应当理解的是,除参照图1讨论的实施例外,还可以通过本发明的实施例执行图2和图5的流程图的操作,并且参照图1讨论的实施例可以执行不同于参照流程图讨论的操作。虽然图2和图5的流程图示出了由本发明某些特定实施例执行的特定操作顺序,但应当理解,该顺序仅是示例(例如,可选实施例可以以不同顺序、组合某些操作、重叠某些操作等执行操作)。
[0034] 虽然已经根据一定数目示例描述了本发明,但是本领域技术人员将认识到,本发明不限于所述实施例,在不脱离所附权利要求书的精神和范围情况下,可以通过修改和变更来实践。因此,本说明书应当认为是说明性的而非限制性的。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈