通过调整垂直消隐进行视频帧速率补偿的制作方法

文档序号:9202896阅读:389来源:国知局
通过调整垂直消隐进行视频帧速率补偿的制作方法
【专利说明】通过调整垂直消隐进行视频帧速率补偿
[0001]优先权请求
[0002]本申请请求在2014年3月12日提交的题为“VIDEO FRAME RATE COMPENSAT1NTHROUGH ADJUSTMENT OF VERTICAL BLANKING”(代理人案卷号 SCEA13043US00)的在共同转让给Roelof Roderick Colenbrander之前、共同未决的美国临时申请号61/951,729的权益,所述美国临时申请的全部内容以引用之方式并入本文。
技术领域
[0003]本公开内容涉及图形处理和视频传输。本公开内容的某些方面涉及当压缩并通过网络流式传输渲染的图形时进行帧速率补偿的系统和方法。
【背景技术】
[0004]渲染图形以实时传输到显示设备是复杂的过程,其并入许多精心开发的技术以确保新产生的帧被以适当的定时从来源传输到显示器。通常,该过程开始于通常为具有定制用于渲染任务的高度并行结构的图形处理单元(GPU)的处理单元将源内容的每个新帧渲染到称为帧缓冲器的存储器的一部分。本文中被称为“源帧”的源内容的新产生帧每个都被按顺序暂时存储在帧缓冲器中作为具有限定所述特定帧中每个像素的视觉内容的值的数组的图像。当这种情况发生时,在顺序地将图像驱动到显示设备的过程中,这些图像被扫描输出帧缓冲器。同时,显示设备传统上使用被从帧缓冲器扫描输出的图像以固定频率(称为刷新速率)周期性地更新在屏幕上显示的图像。
[0005]为了将渲染的帧发送到显示器,帧缓冲器中的图像通常被逐行扫描输出并被通过某一视频接口连续地(按顺序)传输到显示设备。在扫描输出期间,产生某些“不可见的”信号以管理传输过程,使得从帧缓冲器输出的实际被传输到显示设备的每个帧(本文中被称为“输出帧”)不仅包括帧的图像的可见像素值,而且包括可被显示设备用以解决如何将接收到的帧显示在屏幕上的其它外部信号。这通常尤其包括在每个扫描输出帧图像之间脉冲的垂直同步信号。每个扫描输出帧图像之间(即,一个帧图像的最后一行或像素与后续帧图像的第一行或像素之间)的时间段被称为“垂直消隐间隔”。这个垂直消隐间隔被产生作为扫描输出过程的一部分,且这个垂直同步脉冲被用于进行图形源和显示器之间的同步。
[0006]在扫描输出期间垂直同步脉冲发生的频率及因此垂直消隐间隔发生的频率传统上相对于显示设备的刷新速率固定,使得从帧缓冲器扫描输出的每个图像与显示器的每个刷新周期一致。如果原始图形内容的帧速率(即,新源帧被GPU拉到帧缓冲器的速率)与显示器的刷新速率完全同步,那么被GPU拉到帧缓冲器的每个新源帧将1:1对应于在显示设备上呈现的每个图像。例如,如果显示设备的刷新速率为60Hz且GPU与显示器的刷新周期同相地以60FPS的帧速率将新图像渲染到帧缓冲器,那么被在显示器的屏幕上更新的每个图像将完全对应于GPU产生的源帧。
[0007]然而,在实践中,源内容的帧速率经常随时间变化且可能例如基于当前场景的复杂性或与帧的产生相关联的其它因素而向上和向下波动。例如,如果视频游戏的当前状态导致当前视野中有过多虚拟对象或太多细节,那么帧速率可能由于渲染帧所需的增加的计算负荷而暂时下降。因此,被渲染到帧缓冲器的源内容的帧速率可能与从这个缓冲器的帧的扫描输出和显示设备的相应的刷新周期不同步。换句话说,被拉到帧缓冲器的每个“源帧”可能不完全对应于被驱动到显示设备的每个“输出帧”。
[0008]源帧速率和显示器刷新之间的这个去同步所导致的不希望的后果是被称为“撕裂”的视觉假象(artifact),其恰如其名,因为看上去似乎对于特定帧显示图像中有水平撕裂。本质上,当帧被扫描输出帧缓冲器时发生撕裂,而存储器的所述部分被以新的后续源帧更新,例如,在被完全扫描输出之前,GPU用后续源帧覆盖缓冲器中的图像。因此,被传输到显示设备的输出帧实际含有来自两个或更多个连续源帧的图像。相应地,当显示设备在所述刷新周期期间更新其屏幕内容时,其同时含有来自源内容的不同连续帧的图像。
[0009]为了最小化或消除撕裂,帧缓冲器通常包括多个缓冲器,即,前帧缓冲器和一个或多个后帧缓冲器,帧图像被从前帧缓冲器直接扫描输出,当前一帧被扫描输出前帧缓冲器时,GPU可将新的帧拉入后帧缓冲器。当新的帧完成渲染时,后帧缓冲器例如通过将内容复制到前缓冲器或通过改变指定前缓冲器的存储器地址的指针值来与前帧缓冲器交换,使得前缓冲器的内容可被扫描输出到显示设备。为了完全消除撕裂假象,这往往结合防止GPU交换缓冲器的限制,直到刚好在显示设备的刷新周期之后。这通常仅通过迫使GPU在其交换缓冲器之前在垂直消隐间隔期间等待垂直同步脉冲发生来实现。由于这个垂直同步脉冲和垂直消隐间隔传统上相对于显示器的刷新周期以固定间隔产生,它确保了只有完整的源帧被扫描输出帧缓冲器,从而防止发生撕裂假象。
[0010]虽然这有效地防止撕裂,但是可能会产生被称为“磕巴(stuttering) ”的另一问题,当源帧速率下降且扫描输出单元被迫将相同的帧传输到显示器时,可能发生所述问题。尤其是当GPU被限制以仅在刷新周期之间交换缓冲器时,可断言磕巴,因为帧速率被有效地限制为仅为显示刷新速率的积分因子。由于GPU必须具有完全新的源帧来执行交换,所以如果GPU在同步脉冲的时间尚未完成渲染后续帧,那么它必须等待另外一个完整的周期才可交换缓冲器,即使新的源帧在不久之后以其它方式完成。当磕巴发生时,显示器上感知到的帧速率的突然下降可使观看者分心。
[0011]在一些情况下,与将帧扫描输出到显示设备不同,理想的是将帧发送到某个其它目的地。例如,云游戏和其它基于云的视频流式传输应用可能需要将渲染的帧压缩并通过网络发送以用于实时显示,而非从帧缓冲器直接传输到显示设备。在这些情况下,优选地,整个源帧被编码器压缩并以最小化等待时间发送到远程设备。为了实现这一任务,编码器必须对受限资源预算进行操作,以确保帧准时到达远程设备。如果源帧速率波动且磕巴发生,那么有价值的压缩资源将朝向压缩相同的帧被浪费。这可能导致编码帧的比起如果压缩资源被更有效地利用所可能达到的图像质量更差的图像质量。另外,如果相同的帧被通过网络流式传输,那么有限的网络带宽就被浪费在不必要的帧上。

【发明内容】

[0012]在这样的背景下,产生了本公开内容的方面。
[0013]本发明提供了一种方法,其包括:将多个源帧渲染到缓冲器中,每个所述源帧被以可变帧速率顺序地渲染到所述缓冲器中;使用扫描输出单元从所述缓冲器扫描输出多个输出帧,每个所述输出帧被顺序地扫描输出,在每个所述输出帧的末尾具有垂直消隐间隔;压缩在被扫描输出所述缓冲器的每个所述输出帧内的源帧;检测所述可变帧速率中的一个或多个波动;和响应于所述一个或多个波动而调整所述源帧中一个或多个的所述压缩的定时。
[0014]本发明提供了一种系统,其包括:至少一个处理器单元;至少一个存储器单元,其被耦合到所述处理器单元;和扫描输出单元,其被耦合到所述处理器单元,其中所述处理器单元被配置以执行方法,所述方法包括:将多个源帧渲染到缓冲器中,每个所述源帧被以可变帧速率顺序地渲染到所述缓冲器中;使用扫描输出单元从所述缓冲器扫描输出多个输出帧,每个所述输出帧被顺序地扫描输出,在每个所述输出帧的末尾具有垂直消隐间隔;压缩在被扫描输出所述缓冲器的每个所述输出帧内的源帧;检测所述可变帧速率中的一个或多个波动;和响应于所述一个或多个波动而调整所述源帧中一个或多个的所述压缩的定时。
[0015]本发明提供了一种非临时性计算机可读介质,具有实施在其中的处理器可执行指令,其中处理器执行所述指令使得所述处理器实施方法,所述方法包括:将多个源帧渲染到缓冲器中,每个所述源帧被以可变帧速率顺序地渲染到所述缓冲器中;使用扫描输出单元从所述缓冲器扫描输出多个输出帧,每个所述输出帧被顺序地扫描输出,在每个所述输出帧的末尾具有垂直消隐间隔;压缩在被扫描输出所述缓冲器的每个所述输出帧内的源帧;检测所述可变帧速率中的一个或多个波动;和响应于所述一个或多个波动而调整所述源帧中一个或多个的所述压缩的定时。
【附图说明】
[0016]本公开内容的教导可通过结合附图考虑以下详细描述来被容易地理解,其中:
[0017]图1是处理图形和将图形扫描输出到显示设备的实例的流程图。
[0018]图2是示范性输出帧的示意图。
[0019]图3是处理图形和将图形扫描输出到编码器以实时流式传输图形的实例的流程图。
[0020]图4是根据本公开内容的方面的帧速率补偿的示范性方法的流程图。
[0021]图5是根据本公开内容的方面的示范性系统的框图。
[0022]图6A是充当视频源的示范性终端系统架构的示意图。
[0023]图6B是可从视频源捕获并压缩视频帧的示范性主机系统和捕获卡架构。
[0024]图7是具有专门的处理单元的示范性视频捕获卡设计的示意图。
【具体实施方式】
[0025]
[0026]虽然以下详细描述为了说明的目的含有许多特定细节,但是本领域技术人员将认识到,以下细节的许多变型和改变都在本发明的范围内。因此,在不失请求保护的本发明的一般性的情况下且在不对请求保护的本发明施加限制的情况下,阐述了下文描述的本公开的示范性实施方案。
[0027]应注意,本公开内容的某些方面涉及视频传输,包括渲染和扫描输出视频帧以通过视频接口(有时在本文中被称为显示接口)传输,以及视频流式传输到远程设备,包括压缩并传输视频帧用于云游戏实施。这些方面的另外的说明性细节和实例可见于2013年12月 19 日提交的题为“VIDEO LATENCY REDUCT1N”(代理人案卷号 SCEA13037US00)的 RoelofRoderick Colenbrander的美国非临时专利申请号14/135,374中,所述专利申请的全部内容在此以引用的方式并入。应注意,本公开内容的某些实施可根据参考文档并入时描述的各种系统和方法来配置。
[0028]本公开内容的各种方面涉及被配置以调整压缩的定时以更好地匹配源内容由处理单元渲染的帧速率的系统和方法。在某些实施中,这可通过响应于检测到的源帧速率的波动而调整帧扫描输出的定时来实现。例如,在从帧缓冲器扫描输出帧期间产生的垂直消隐间隔可响应于产生源内容的帧速率的检测到的改变来调整。在某些实施中,其它技术可用以调整或避免压缩或流式传输重复帧,且渲染的图形可被通过网络流式传输以实时在远程设备上显示。
[0029]详细信息
[0030]为了更好地说明本公开内容的某些方面,图1示出用于处理图形并将图形实时传输到显示设备的技术的说明性实例。图1示出的实例可具有与将视频帧传输到利用定期或固定刷新速率的本地显示设备的传统技术的某些相似性。
[0031]在图1示出的实例中,图形可被处理单元渲染,如104所示,以按顺序产生多个源帧102。以举例的方式,源帧102可基于确定源帧102的内容的应用(例如视频游戏)的状态来渲染。限定新源帧102被渲染的速率的源帧速率106可能是可变的,且基于(例如)图形的复杂性或在特定时刻被渲染的源帧中的细节的量而随时间含有一个或多个波动。在某些实施中,渲染源帧的处理单元可为含有定制用于处理图形和渲染新源帧102的任务的专门架构的GPU。
[0032]如104所示,渲染源帧可取决于渲染管线的配置而包括许多不同的步骤,所述步骤可能以将完成的源帧102渲染到帧缓冲器108中告终,帧缓冲器108是按顺序暂时存储每个新源帧的存储器的一部分。每个源帧102可被存储在帧缓冲器108中作为由限定与所述特定帧相关联的视觉值的像素数据值的数组限定的图像。
[0033]在将源帧102渲染到帧缓冲器108中的过程中,帧缓冲器内容也可被扫描输出(如114所示)作为一系列的输出帧118并被通过例如HDM1、DV1、VGA或另一合适的接口标准的视频接口连接按顺序传输到显示设备116。在此过程中,扫描输出单元可在每个输出帧118的末尾产生垂直消隐间隔,以及各种其它外部信号以管理将图形帧从帧缓冲器108传输到显示设备116的过程。因此,每个输出帧118可被理解为不仅含有源帧102的可见像素值,还含有用以管理定时并将帧到显示设备116的传输同步的不可见的外部信号。
[0034]显示设备116可利用与每个输出帧118相关联的垂直消隐信号和/或各种外部信号来周期性地更新以固定刷新速率122呈现在其屏幕上的图像,以解析从帧缓冲器108接收到的像素数据并仅从帧缓冲器呈现与图像内容相关联的那些像素值。因此,在图1示出的实例中
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1