首页 / 专利库 / 多媒体工具与应用 / 流式传输 / 通过调整垂直消隐进行视频帧速率补偿

通过调整垂直消隐进行视频速率补偿

阅读:1030发布:2020-06-06

专利汇可以提供通过调整垂直消隐进行视频速率补偿专利检索,专利查询,专利分析的服务。并且本公开内容的方面涉及被配置以响应于由处理单元 渲染 的图形内容的源 帧 速率的 波动 而调整帧扫描输出的定时的系统和方法。在某些实施中,在从帧 缓冲器 扫描输出帧期间产生的垂直消隐间隔可响应于检测到的产生所述源内容的所述 帧速率 的改变来调整。在某些实施中,渲染的图形可通过网络 流式传输 以实时在远程设备上显示,且可调整帧的所述扫描输出,以更好地使压缩和流式传输的所述速率与所述源内容的可变帧速率匹配。,下面是通过调整垂直消隐进行视频速率补偿专利的具体信息内容。

1.一种用于速率补偿的图形处理方法,其包括:
将多个源帧渲染缓冲器中,每个所述源帧被以可变帧速率顺序地渲染到所述缓冲器中;
使用扫描输出单元从所述缓冲器扫描输出多个输出帧,每个所述输出帧被顺序地扫描输出,在每个所述输出帧的末尾具有垂直消隐间隔;
压缩在被扫描输出所述缓冲器的每个所述输出帧内的源帧;
检测所述可变帧速率中的一个或多个波动;和
响应于所述一个或多个波动而调整所述源帧中一个或多个的所述压缩的定时。
2.如权利要求1所述的图形处理方法,
其中所述调整所述压缩的所述定时包括通过响应于所述一个或多个波动而修改所述垂直消隐间隔来调整所述扫描输出的所述输出帧中一个或多个的定时。
3.如权利要求1所述的图形处理方法,其还包括:
在所述压缩所述源帧之前,捕获在被扫描输出所述缓冲器的每个所述输出帧内的所述源帧。
4.如权利要求1所述的图形处理方法,其还包括:
在所述压缩所述源帧之前,捕获在被扫描输出所述缓冲器的每个所述输出帧内的所述源帧;和
通过网络将每个所述压缩帧发送到一个或多个远程设备。
5.如权利要求1所述的图形处理方法,
其中所述缓冲器包括前帧缓冲器和至少一个后帧缓冲器,
其中每个所述输出帧被扫描输出所述前帧缓冲器,
其中在从所述前帧缓冲器扫描输出每个所述输出帧之后,所述后帧缓冲器与所述前帧缓冲器交换。
6.如权利要求1所述的图形处理方法,
其中所述一个或多个波动包括所述可变帧速率降低的一个或多个向下波动,其中所述调整所述压缩的所述定时包括响应于所述向下波动而延迟扫描输出所述输出帧中的一个或多个。
7.如权利要求1所述的图形处理方法,
其中所述一个或多个波动包括所述可变帧速率降低的一个或多个向下波动,其中所述调整所述压缩的所述定时包括响应于所述向下波动而延迟扫描输出所述输出帧中的一个或多个,
其中所述延迟所述扫描输出包括通过延伸两个后续帧之间的所述垂直消隐间隔的长度来调整所述垂直消隐间隔。
8.如权利要求1所述的图形处理方法,
其中所述一个或多个波动包括所述可变帧速率降低的一个或多个向下波动,其中所述调整所述压缩的所述定时包括响应于所述向下波动而延迟扫描输出所述输出帧中的一个或多个,
其中所述延迟所述扫描输出包括通过延伸两个后续帧之间的所述垂直消隐间隔的长度来调整所述垂直消隐间隔,
其中所述延伸所述垂直消隐间隔的所述长度包括使所述扫描输出单元休眠达一时间段。
9.如权利要求1所述的图形处理方法,其还包括:
在每个所述帧被渲染到所述帧缓冲器中之后,将标记放入存储器单元中,其中所述检测所述一个或多个波动包括跟踪每个所述帧的所述标记被放入所述缓冲器的时间。
10.如权利要求1所述的图形处理方法,
其中所述调整所述压缩的所述定时包括通过使所述扫描输出单元休眠达一时间段来延伸所述垂直消隐间隔的长度。
11.如权利要求1所述的图形处理方法,
其中所述调整所述压缩的所述定时包括通过将寄存器值改成延迟扫描输出的值来延迟扫描输出所述输出帧中的至少一个。
12.如权利要求1所述的图形处理方法,
其中所述一个或多个波动包括所述可变帧速率降低的一个或多个向下波动,其中所述调整所述压缩的所述定时包括响应于所述一个或多个向下波动而禁用显示接口,以防止传递所述输出帧中的一个或多个。
13.一种用于帧速率补偿的图形处理系统,其包括:
至少一个处理器单元;
至少一个存储器单元,其被耦合到所述处理器单元;和
扫描输出单元,其被耦合到所述处理器单元,其中所述处理器单元被配置以执行方法,所述方法包括:
将多个源帧渲染到缓冲器中,每个所述源帧被以可变帧速率顺序地渲染到所述缓冲器中;
使用扫描输出单元从所述缓冲器扫描输出多个输出帧,每个所述输出帧被顺序地扫描输出,在每个所述输出帧的末尾具有垂直消隐间隔;
压缩在被扫描输出所述缓冲器的每个所述输出帧内的源帧;
检测所述可变帧速率中的一个或多个波动;和
响应于所述一个或多个波动而调整所述源帧中一个或多个的所述压缩的定时。
14.如权利要求13所述的图形处理系统,
其中所述调整所述压缩的所述定时包括通过响应于所述一个或多个波动而修改所述垂直消隐间隔来调整所述扫描输出的所述输出帧中一个或多个的定时。
15.如权利要求13所述的图形处理系统,其中所述方法还包括:
在所述压缩所述源帧之前,捕获在被扫描输出所述缓冲器的每个所述输出帧内的所述源帧。
16.如权利要求13所述的图形处理系统,其中所述方法还包括:
在所述压缩所述源帧之前,捕获在被扫描输出所述缓冲器的每个所述输出帧内的所述源帧;和
通过网络将每个所述压缩帧发送到一个或多个远程设备。
17.如权利要求13所述的图形处理系统,
其中所述缓冲器包括前帧缓冲器和至少一个后帧缓冲器,
其中每个所述输出帧被扫描输出所述前帧缓冲器,
其中在从所述前帧缓冲器扫描输出每个所述输出帧之后,所述后帧缓冲器与所述前帧缓冲器交换。
18.如权利要求13所述的图形处理系统,
其中所述一个或多个波动包括所述可变帧速率降低的一个或多个向下波动,其中所述调整所述压缩的所述定时包括响应于所述向下波动而延迟扫描输出所述输出帧中的一个或多个。
19.如权利要求13所述的图形处理系统,
其中所述一个或多个波动包括所述可变帧速率降低的一个或多个向下波动,其中所述调整所述压缩的所述定时包括响应于所述向下波动而延迟扫描输出所述输出帧中的一个或多个,
其中所述延迟所述扫描输出包括通过延伸两个后续帧之间的所述垂直消隐间隔的长度来调整所述垂直消隐间隔。
20.如权利要求13所述的图形处理系统,
其中所述一个或多个波动包括所述可变帧速率降低的一个或多个向下波动,其中所述调整所述压缩的所述定时包括响应于所述向下波动而延迟扫描输出所述输出帧中的一个或多个,
其中所述延迟所述扫描输出包括通过延伸两个后续帧之间的所述垂直消隐间隔的长度来调整所述垂直消隐间隔,
其中所述延伸所述垂直消隐间隔的所述长度包括使所述扫描输出单元休眠达一时间段。
21.如权利要求13所述的图形处理系统,其中所述方法还包括:
在每个所述帧被渲染到所述帧缓冲器中之后,将标记放入存储器单元中,其中所述检测所述一个或多个波动包括跟踪每个所述帧的所述标记被放入所述缓冲器的时间。
22.如权利要求13所述的图形处理系统,
其中所述调整所述压缩的所述定时包括通过使所述扫描输出单元休眠达一时间段来延伸所述垂直消隐间隔的长度。
23.如权利要求13所述的图形处理系统,
其中所述调整所述压缩的所述定时包括通过将寄存器值改成延迟扫描输出的值来延迟扫描输出所述输出帧中的至少一个。
24.如权利要求13所述的图形处理系统,
其中所述一个或多个波动包括所述可变帧速率降低的一个或多个向下波动,其中所述调整所述压缩的所述定时包括响应于所述一个或多个向下波动而禁用显示接口,以防止传递所述输出帧中的一个或多个。
25.一种非临时性计算机可读介质,具有实施在其中的处理器可执行指令,其中处理器执行所述指令使得所述处理器实施方法,所述方法包括
将多个源帧渲染到缓冲器中,每个所述源帧被以可变帧速率顺序地渲染到所述缓冲器中;
使用扫描输出单元从所述缓冲器扫描输出多个输出帧,每个所述输出帧被顺序地扫描输出,在每个所述输出帧的末尾具有垂直消隐间隔;
压缩在被扫描输出所述缓冲器的每个所述输出帧内的源帧;
检测所述可变帧速率中的一个或多个波动;和
响应于所述一个或多个波动而调整所述源帧中一个或多个的所述压缩的定时。
26.如权利要求25所述的非临时性计算机可读介质,
其中所述调整所述压缩的所述定时包括通过响应于所述一个或多个波动而修改所述消隐间隔来调整所述扫描输出的所述输出帧中一个或多个的定时。
27.如权利要求25所述的非临时性计算机可读介质,
其中所述一个或多个波动包括所述可变帧速率降低的一个或多个向下波动,其中所述调整所述压缩的所述定时包括响应于所述向下波动而延迟扫描输出所述输出帧中的一个或多个。
28.如权利要求25所述的非临时性计算机可读介质,
其中所述一个或多个波动包括所述可变帧速率降低的一个或多个向下波动,其中所述调整所述压缩的所述定时包括响应于所述向下波动而延迟扫描输出所述输出帧中的一个或多个,
其中所述延迟所述扫描输出包括通过延伸两个后续帧之间的所述垂直消隐间隔的长度来调整所述垂直消隐间隔。
29.如权利要求25所述的非临时性计算机可读介质,
其中所述一个或多个波动包括所述可变帧速率降低的一个或多个向下波动,其中所述调整所述压缩的所述定时包括响应于所述向下波动而延迟扫描输出所述输出帧中的一个或多个,
其中所述延迟所述扫描输出包括通过延伸两个后续帧之间的所述垂直消隐间隔的长度来调整所述垂直消隐间隔,
其中所述延伸所述垂直消隐间隔的所述长度包括使所述扫描输出单元休眠达一时间段。

说明书全文

通过调整垂直消隐进行视频速率补偿

[0001] 优先权请求
[0002] 本申请请求在2014年3月12日提交的题为“VIDEO FRAME RATE COMPENSATION THROUGH 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 REDUCTION”(代理人案卷号SCEA13037US00)的Roelof Roderick 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并被通过例如HDMI、DVI、VGA或另一合适的接口标准的视频接口连接按顺序传输到显示设备116。在此过程中,扫描输出单元可在每个输出帧118的末尾产生垂直消隐间隔,以及各种其它外部信号以管理将图形帧从帧缓冲器108传输到显示设备116的过程。因此,每个输出帧118可被理解为不仅含有源帧102的可见像素值,还含有用以管理定时并将帧到显示设备116的传输同步的不可见的外部信号。
[0034] 显示设备116可利用与每个输出帧118相关联的垂直消隐信号和/或各种外部信号来周期性地更新以固定刷新速率122呈现在其屏幕上的图像,以解析从帧缓冲器108接收到的像素数据并仅从帧缓冲器呈现与图像内容相关联的那些像素值。因此,在图1示出的实例中,被限定在每个输出帧之间的边界的垂直消隐间隔可能以与显示器的刷新速率122一致的固定频率来定时。
[0035] 在图1示出的实例中,为了最小化或防止被传输到显示器的输出帧118的每个图像中的撕裂假象,帧缓冲器108可包括多个缓冲器,包括前缓冲器110和至少一个后缓冲器112。可执行将源帧渲染104到帧缓冲器中,使得当前缓冲器110含有尚未被扫描输出到显示设备116的源帧102时,新源帧102被渲染到后缓冲器112中。前缓冲器110和后缓冲器112只有在新源帧完成被渲染到后缓冲器112中之后才可交换。
[0036] 缓冲器110、112的交换的定时可取决于系统的当前配置。在示出的实例中,交换被定时以与垂直消隐间隔(VBI)120内的脉冲的定时一致,由此限制交换在从前缓冲器110扫描输出任何特定图像的中间过程中发生。然而,应注意,系统可替代性地被配置以一旦新源帧准备就绪(例如,一旦新源帧完成渲染到后缓冲器112中)就交换前缓冲器和后缓冲器。在这些情况下,仍然可以减少撕裂假象,但可能无法完全消除,因为缓冲器仍有可能在从帧缓冲器108扫描输出特定源图像的中间过程中交换。
[0037] 应注意,在图1示出的实例中,垂直消隐间隔120可被限制以有规律的等时间隔发生,以确保与显示器硬件的固定刷新速率122同步的帧的适当传输。
[0038] 参考图2,示出输出帧216的说明性实例。为了更好地理解本公开内容的各种方面,更详细地讨论如何通过例如HDMI、DVI、VGA、显示端口等的视频接口/显示接口来从帧缓冲器传输帧是有利的。图2示出的输出帧216是例如如图1示出的被扫描输出帧缓冲器的每个输出帧的内容的视觉描绘,其被扫描输出以传输到显示设备或其它目的地。示范性输出帧216可为共同构成视频流的一系列类似格式的帧中的一个帧。视频帧序列可由例如视频游戏应用、视频文件、实况视频流等的某一视频内容源来产生。
[0039] 如图2所示,输出帧216可由像素的数组组成,所述像素的数组可由像素数据值的相应数组表示。如下文所述,输出帧216也可与像素数据值外部的额外信号一起被发射。
[0040] 数组中的每个像素数据值可取决于所使用的特定颜色模型而包括多个颜色空间分量。例如,如果使用YCrCb(数字视频)或YPbPr(模拟视频),那么数组中的每个像素数据值可包括相应的像素的两个色度(颜色)值和亮度(强度)值。或者,RGB颜色空间或颜色空间分量的某个其它集合可用于每个像素的像素数据。此外,每个像素的每个颜色空间分量的像素数据值可由多个比特来数字地表示。例如,24位颜色深度可每像素每颜色空间分量利用8位。术语“像素”在本文中有时用作当提及对应于像素时钟的单个滴答(tick)的输出帧的所述部分时的简写。
[0041] 除了像素数据值之外,输出帧也可包括除了像素数据值之外的外部信号。外部信号可包括具有指示像素是否可见的信息的信号,例如,指示像素是否意欲被显示且因此具有所述像素的像素数据值中含有的可见像素的数据使能信号。如图2的示范性输出帧216中可见,数组中像素的总数包括可见像素201(在图中示为网格),和不可见像素203(在图中示为空白和具线纹区域)。在图2的示范性帧中,可见像素201组成可由高数据使能值来指示的输出帧的活动图像区域,而在这个实例中,不可见像素203组成可由低数据值来指示的输出帧的消隐区域(例如,包括水平消隐区域和垂直消隐区域)。活动图像区域中的可见像素201可共同构成意欲被显示的帧的可见图像。特别是,在这个实例中,具有可见像素201的活动区域由在扫描输出帧期间从帧缓冲器检索到的源内容及其相应的像素值构成。
[0042] 应注意,在图2的示范性输出帧216中,视频帧图像的可见像素与帧的格式的活动区域一致。然而,应注意,本公开内容并不限于这种情况,且本公开内容的某些实施可实际包括不仅在消隐区域中而且也在从帧缓冲器检索的输出帧的活动图像区域中的不可见像素。例如,如题为“VIDEO LATENCY REDUCTION”且以引用方式完全并入本文的美国申请号14/135,374中所描述,例如根据参照所述申请14/135,374的图7A-8所述的技术,如果GPU被配置以用含有比实际源内容多的像素的较大的格式来将源帧渲染到帧缓冲器,那么输出帧的活动图像区域可包括不可见像素。
[0043] 例如游戏机、PC、电话和其它视频源的大多数设备将视频帧渲染到以RGB像素组织的帧缓冲器,其中通常每颜色分量至少8比特/1字节。可为渲染视频帧的GPU的一部分或可在GPU外部的视频发射机产生的视频信号可能以RGB输送像素,但如果某物(例如,发射机)必须从RGB转换为另一种格式,那么在例如YCrCb(数字视频)或YPbPr(模拟视频)的其它颜色空间模型中也可这样做。
[0044] 一旦GPU已完成渲染,GPU就可将帧扫描输出,这是通过某个串行连接(例如,HDMI、DVI等)逐个像素地发送帧的过程。扫描输出过程可能涉及产生每个输出帧216的外部信号,且扫描输出过程可部分取决于视频连接的类型以及视频发射机在GPU内部还是外部。通常,当将帧扫描输出时,GPU可产生多个信号,包括像素数据值外部的信号。一般来说,这些信号可被理解为在扫描输出和传输帧期间彼此同时发生的分开的信号。当将帧扫描输出时,信号可包括:
[0045] ●像素时钟信号
[0046] ●数据使能信号
[0047] ●水平同步(hsync)信号
[0048] ●垂直同步(vsync)信号
[0049] ●承载活动像素的颜色空间分量的数据总线信号(例如,RGB,24位宽,其中每个颜色空间分量8位)
[0050] 在扫描输出渲染帧期间,GPU可从持有已完成源帧的帧缓冲器检索像素(例如,帧缓冲器)。作为一个实例,假定,GPU目前在一行的第一个像素。对于给定行,其在像素时钟信号的每个“滴答”将新像素数据值放置于数据总线信号上。又,它将在对应于所述像素的数据使能信号上输出高电平。
[0051] 该行的末尾有水平消隐期(持续时间HTOTAL-HDISPLAY像素,或像素时钟脉冲)。在消隐期期间,若干信号改变。首先,脉冲可在hsync信号中产生,以向下一行通知过渡。数据使能信号很低,这意味着当前在通常承载颜色空间分量的数据总线信号上的任何数据不应被理解为像素(这些是在行末尾的不可见像素)。
[0052] 这个过程可逐行继续,直到帧图像的结尾。在输出帧的末尾,在已检索了完整源帧图像之后,例如,在已从帧缓冲器检索了所有可见像素数据值之后,脉冲可在vsync信号中在输出帧的垂直消隐区域中产生。特别是,扫描输出过程期间、在输出帧的末尾且在已从帧缓冲器检索完整源帧图像之后的这个时间间隔被称为垂直消隐间隔209。对于在输出帧216的末尾的垂直消隐间隔期间任何不可见的行,数据使能行也低。
[0053] 通常,每当数据使能信号低时,像素就为不可见的,且数据总线信号的像素数据值不含对应于图像的显示区域的期望的颜色空间值。因为总有活动像素时钟,所以不可见像素本质上在数据总线信号上产生。应注意,水平和垂直同步信号与数据总线信号的像素数据分开。
[0054] 通过串行接口发射例如由输出帧216组成的视频信号的过程可取决于视频技术。对于经典的VGA,所述信号实际直接由显示器消耗,包括与输出帧相关联的像素数据信号和外部信号。外部信号可包括直接用于VGA的定时信号。像素数据信号可为模拟信号,其中每个颜色分量具有其自己的通道,例如,红色信号通道、绿色信号通道和蓝色信号通道。数字模拟转换器(DAC)可从数字数据总线信号(从所述24位,其中每个通道8位)产生模拟像素信号。对于如DVI、HDMI或显示端口的其它技术,发射机可接受上述信号并将其转换成适用于所述技术的信号。在HDMI的情况下,HDMI发射机具有3个TMDS数据通道(TX0到TX2)和TMDS时钟,其中视频源处的HDMI发射机嵌入所有信号(hsync信号、vsync信号、像素数据总线信号)且TMDS时钟以某种方式含有像素时钟信号。视频接收设备(sink)内HDMI连接器(例如,HDMI电缆)的另一端上的HDMI接收器(例如,显示设备、视频捕获卡或其它视频接收设备内的HDMI接收器)具有这些信号作为输入,但恢复hsync、vsync、数据和其它信号。这也适用于如DVI或显示端口的其它视频标准。
[0055] 如果视频发射机在GPU内部,那么扫描输出逻辑可在所述信号上操作,但扫描输出逻辑也可直接输出(例如)HDMI,从而绕过这些其它信号的中间步骤。
[0056] 与输出帧的每个像素相关联的像素数据值和其它信号通常被逐行输出,其中每行含有多个像素且每帧含有多个行。通常,这些行被相对于所显示的图像水平定向,且水平行中的像素可被通过视频通信接口在行中从左到右按顺序从视频源传输到显示设备或其它视频接收设备(例如,串行传输)。类似地,水平行可被按顺序从上到下输出,直到达到帧的末尾。因此,包括可见像素201和不可见像素203的输出帧216中的所有像素可具有限定的传输序列,且在垂直消隐间隔209期间,对于每个输出帧216,行可位于这个序列的末尾。
[0057] 在图2的示范性输出帧216中,帧的每行是具有像素总数为HTOTAL的水平行,HTOTAL可限定输出帧的总水平分辨率。类似地,示范性输出帧216具有总行数VTOTAL,VTOTAL可限定帧的总垂直分辨率。因此,总水平和垂直分辨率包括可见像素和不可见像素。
[0058] 帧的活动显示区域201(例如,从帧缓冲器检索的区域)可包括限定帧的垂直显示分辨率的多个活动行VDISPLAY,且每个活动行可包括多个活动像素HDISPLAY,HDISPLAY限定帧的水平显示分辨率。活动显示区域201可对应于如上所述由GPU渲染到帧缓冲器中的所述源帧。
[0059] 由上文可知,输出帧216的总分辨率(例如,HTOTALxVTOTAL)可能大于输出帧的显示分辨率(例如,HDISPLAYxVDISPLAY),这是由于帧中存在消隐区域和不可见像素203,所述消隐区域和不可见像素203可在(例如)如上所述的扫描输出源帧期间产生。具体而言,活动显示区域对应于从帧缓冲器检索的那些像素,而消隐区域代表由于添加外部信号和在扫描输出期间产生的像素时钟的额外滴答而产生的那些像素。消隐区域可包括对应于水平消隐间隔的在每行末尾的多个不可见像素,和对应于垂直消隐间隔209的在每个帧末尾的多个不可见的行。一般来说,可提供消隐区域中的同步脉冲,以同步视频源和显示器之间的视频流传输,其中hsync信号中的水平同步脉冲205通常指示帧中每行之间的过渡,且垂直同步脉冲207通常指示构成视频流的一系列输出帧中每个帧之间的过渡。虽然hsync和vsync信号是外部信号,不是像素数据(例如,RGB值等)的一部分,但是由于GPU总是在像素时钟上输出像素数据和同步信号,所以在hsync或vsync行上的脉冲活动时的时期期间,像素数据总线信号中碰巧有不可见像素。同样,在对应于像素数据总线信号上的那些可见像素值的时期期间,hsync和vsync信号可能为不活动的。在HDMI的情况下,hsync和vsync实际上在像素数据中传送。然后,在通过HDMI电缆传送之后,HDMI接收器将会使信号再次分离。
[0060] 如在图2的实例中可见,按顺序(例如,逐个像素)传输帧216的像素将导致对应于水平消隐间隔211的像素被在每行的末尾传输,且对应于垂直消隐间隔209的像素被在帧216的末尾传输。水平同步信号可包括水平消隐间隔211期间的水平同步脉冲205,其具有相应的水平前沿和水平后沿(图中分别示出为水平同步脉冲205之前和之后的空白区域),且垂直同步信号可包括具有相应的垂直前沿和垂直后沿(图中分别示出为垂直同步脉冲207之前和之后的空白区域)的垂直同步脉冲207,且这些像素可共同构成示范性输出帧216中的不可见像素203。
[0061] 参考图2的实例,视频信号可由类似于图2示出的实例的多个输出帧构成,且输出帧可被通过例如HDMI、DVI、VGA等的视频接口从视频源传输到显示设备、视频捕获设备或其它视频接收设备。一般来说,显示硬件的刷新速率(例如,VRrefresh)应对应于输出视频流中帧被扫描输出帧缓冲器的速率。结果,通过视频源和显示设备之间的接口传输像素的定时应被同步,以确保视频流中像素的传输速率与显示器同步并跟上显示刷新速率。
[0062] 通常,可为在视频传输硬件中实施的电子或其它部件产生的外部信号且可结合如上所述的扫描输出帧产生的像素时钟管理视频源和视频接收设备之间每个像素的传输的定时。一般来说,像素时钟将控制像素的传输的定时,使得每个帧中像素总数被以与显示设备的刷新速率同步的速率从视频源传输。对于顺序地、一个接一个地传输像素的串行接口,像素时钟可在数学上被表示为如下每行中像素总数、每个帧中总行数和垂直刷新速率的乘积:
[0063] 像素时钟=HTOTAL*VTOTAL*VRefresh
[0064] 标准视频接口通常支持不同的显示分辨率(例如,HDISPLAYxVDISPLAY),例如720p(1280x720)、1080p(1920x1080)等,每个显示分辨率具有每个帧的不同总数的像素。可被实施在视频传输硬件中的像素时钟生成器可被配置以基于类似于上文示出的数学表达式的公式(例如,基于每个帧的刷新速率和分辨率)来产生给定视频分辨率和/或帧速率的像素时钟。应注意,像素时钟的上限可由于所涉及的电子设备和组件的实践考虑和技术要求以及可精确维持的像素时钟的频率的实践限制而受限。例如,显示器制造商通常希望保持像素时钟尽可能低,因为像素时钟越高,电子设备的设计就越复杂,且组件的成本就越高。因此,参考图2,帧中活动行的数量(VDISPLAY)和总行数(VTOTAL)通常是接近的值,因为垂直同步信号只需要少量行,且传统观念通常指示利用超过必要的行是不可取的。
[0065] 本公开内容的各种实施可并入用于通过人为增加帧中像素的总数(即,像素时钟的滴答)超过涵盖每个输出帧中可见像素数据和/或同步信号所需要的来减少传输输出视频帧的时间的技术。因此,可增加像素时钟速率以输出更大数目的总像素,从而使得在输出帧的活动区域内实施可见视频帧图像的期望的可见像素被在较短的时间进行传输。在一些实施中,这可通过增加在每个帧的序列的末尾的行数或另外将输出帧放入总像素数目比源帧图像多的某一帧格式来实现。
[0066] 以举例的方式,而非限制的方式,对于图2示出的示范性输出视频帧216,假设60Hz的刷新速率(VRefresh),(例如)基于帧中活动显示行与总行数的比,每VDISPLAY/VTOTAL*1/60Hz将已经输出输出帧的所有可见图像行。在VDISPLAY和VTOTAL是接近的值时,在帧中输出图像201的时间将大致为~1/60Hz,其对应于16.7ms。根据本公开内容的各种方面,输出帧的可见图像行的这个时间可通过使得VTOTAL显著大于VDISPLAY来减少。因此,对于上述相同的60Hz垂直刷新速率,如果VTOTAL是VDISPLAY的大小的两倍,即,帧中的总行数是帧中可见/活动行的数量的双倍,那么传输时间减少到8.3ms,因为在VDISPLAY/VTOTAL=0.5*
16.7之后,将传输帧中期望的图像。例如,通过以某种方式向帧添加行,可使VDISPLAY/VTOTAL更小。题为“VIDEO LATENCY REDUCTION”且以引用的方式全部并入本文的美国申请号14/135,374中描述了用于减少视频传输等待时间并形成具有人为增加的像素数量的输出帧的技术的另外的实例。应注意,本公开内容的实施可利用本文件中所描述的用于形成输出帧的任何技术。
[0067] 现参考图3,示出用于实时处理并传输图形的技术的说明性实例。与图1示出的实例不同,图3示出的实例涉及将渲染帧扫描输出到视频捕获单元,而非直接扫描输出到以固定间隔刷新的显示设备。在图3示出的实例中,捕获的帧可使用视频编码器来进一步压缩,使得(例如)渲染的图形可被通过网络发射到远程设备以进行实时显示。
[0068] 更详细地参考图3示出的实例,如304所示,图形可被处理单元渲染,以按顺序产生多个源帧302。以举例的方式,而非限制的方式,源帧302可基于确定源帧302的内容的应用(例如视频游戏)的状态来渲染。
[0069] 限定渲染新源帧302的速率的源内容的帧速率306可能是可变的且含有基于各种因素随时间变化的一个或多个波动,所述因素例如目前被渲染的场景的复杂性。在某些实施中,渲染源帧的处理单元可为含有定制用于处理图形并渲染新源帧302的任务的专门的架构的GPU。
[0070] 如304所示,渲染源帧可取决于渲染管线的配置包括若干不同步骤,所述步骤可能以将完成的源帧302渲染到帧缓冲器308中告终。每个源帧302可被按顺序存储在帧缓冲器308中作为由限定与所述特定源帧相关联的视觉值的像素数据值的数组限定的图像(例如,位图图像(bmp))。
[0071] 在将源帧302渲染到帧缓冲器308中的过程中,如314所示,帧缓冲器内容也可被扫描输出作为一系列输出帧318并被通过例如HDMI、DVI、VGA或另一适当的显示接口标准的视频接口连接按顺序传输到视频捕获单元324。在某些实施中,视频捕获卡或其它设备可用于帧捕获324,且视频捕获单元可为可被配置以仅捕获对应于由处理单元渲染的源帧的每个输出帧中的可见像素集的单元。
[0072] 在此过程中,扫描输出单元可产生若干外部信号,包括垂直同步信号。产生垂直同步信号也可涉及在被扫描输出帧缓冲器308的每个源帧302之后产生一个或多个活动vsync脉冲,且因此,在每个扫描输出帧之间产生垂直消隐间隔320。这可导致(例如,如上参考图2示出的实例所述)在每个输出帧318的末尾产生不可见的行。垂直消隐间隔的至少一部分可对应于每个扫描输出源帧302之间的那些不可见的行。
[0073] 帧捕获单元可捕获每个按顺序接收到的输出帧318中含有的源帧,且可利用与每个输出帧318相关联的垂直消隐间隔和/或各种外部信号来解析从帧缓冲器308接收到的像素数据并捕获对应于那些可见像素的渲染源帧。每个捕获的源帧302然后可使用合适的视频编码器(例如编码解码器)来压缩,如326所示。压缩帧330然后可被可选地通过网络发送以在远程定位显示设备上显示。
[0074] 在图3示出的实例中,为了最小化或防止被扫描输出的输出帧318的每个图像中的撕裂假象,帧缓冲器308可包括多个缓冲器,包括前缓冲器310和至少一个后缓冲器312。可执行将源帧渲染304到帧缓冲器中,使得当前缓冲器310含有尚未被扫描输出的源帧302时,新源帧302被渲染到后缓冲器312中。一般来说,前缓冲器310和后缓冲器312只有在新源帧完成被渲染到后缓冲器312中之后才可交换。
[0075] 缓冲器310、312的交换的定时可取决于系统的配置。在示出的实例中,交换被定时以与垂直消隐间隔(VBI)320的定时一致,由此限制交换在从前缓冲器310扫描输出任何特定图像的中间过程中发生。更具体而言,在示出的实例中,在帧的扫描输出314期间,后帧缓冲器312可被配置以仅响应于在垂直消隐间隔期间产生的垂直同步脉冲而与前帧缓冲器310交换,且向处理单元指示可交换缓冲器的vsync脉冲可在垂直消隐间隔的开始时或接近垂直消隐间隔的开始时发生。因此,每个输出帧318可仅含有整个源帧302。如果替代性地,系统被配置以一旦新源帧准备就绪(例如,一旦新源帧完成渲染到后缓冲器312中)就交换前缓冲器和后缓冲器,撕裂可能并不完全消除,因为缓冲器仍有可能在从帧缓冲器308扫描输出特定源图像过程中交换。在这些情况下,被扫描输出的输出帧318中的源帧可实际含有连续渲染源帧的部分。
[0076] 根据本公开内容的某些方面,源内容306的帧速率可被检测,且垂直消隐间隔320可被响应于帧速率的波动而调整,由此使压缩速率和定时328更好地与源内容匹配。例如,如果检测到源帧速率306(例如)由于场景的复杂性而瞬间下降,那么垂直消隐间隔320可被调整以作为响应而延迟一个或多个帧的扫描输出。这可能有益于避免磕巴或与低于正常值的瞬时帧速率相关联的其它缺点,从而将压缩和流式传输的速率和定时与源内容更好地匹配。相反,如果检测到源帧速率306高,那么垂直消隐间隔320可被调整以更快地将帧扫描输出帧缓冲器308。(例如)当编码器以每帧固定预算操作时,这可能是有益的。如果编码器更快地接收帧,那么可能能够以更高的分辨率来压缩帧,由此提高了远程观看者的图像质量。
[0077] 现参考图4,示出响应于源内容的帧速率的检测到的波动而调整垂直消隐间隔的方法400的说明性实例。图4的说明性方法可涉及类似于图3示出的实例的图形处理和传输技术。
[0078] 如图4所示,方法400可包括用处理单元将多个源帧按顺序渲染到帧缓冲器中,如431所示。每个新源帧可响应于基于应用433输出接收到的一个或多个相应的绘制调用而渲染。以举例的方式,而非限制的方式,用于渲染源帧的处理单元可为具有处理应用的图形的专门作用的GPU,而应用本身可由CPU执行。图形应用编程接口(API)可协调从CPU到GPU的绘制调用,以协调处理任务并开始根据应用的状态产生新源帧。
[0079] 如432所示,方法可包括从帧缓冲器按顺序扫描输出多个输出帧。在某些实施中,帧缓冲器可包括前缓冲器和一个或多个后缓冲器,且帧可被直接从前缓冲器扫描输出,同时新源帧被渲染到后缓冲器中。如432所示,帧的扫描输出可涉及产生除了被扫描输出帧缓冲器的像素数据之外的各种外部信号,包括垂直同步信号,以及(例如)如上所述的水平同步信号、像素时钟信号和数据使能信号。帧可使用可包括各种部件的扫描输出单元来扫描输出,所述部件被配置以产生上文所述与帧的传输相关联的信号。
[0080] 被扫描输出帧缓冲器的每个输出帧可包括对应于由处理单元渲染的源帧的图像。如434所示,方法可包括捕获被扫描输出帧缓冲器的源帧。在某些实施中,帧可被扫描输出帧缓冲器并通过视频接口连接发送到视频捕获单元,所述视频捕获单元可在步骤434捕获源内容。
[0081] 方法400也可包括使用编码器(例如,视频编码解码器)来压缩捕获的帧。帧可能以各种已知的视频压缩格式(例如,h.264或用于通过具有有限带宽的网络传输的另一合适的格式)中的任何格式来压缩。在某些实施中,帧可使用低等待时间编码器来编码,以实时传输到远程设备。压缩帧然后可被通过网络(例如,互联网)发射到一个或多个远程设备,如438所示。
[0082] 根据本公开内容的某些方面,图4示出的说明性方法400也可补偿渲染源内容时的帧速率波动。这可包括检测源内容的帧速率的一个或多个改变或波动,如440所示。响应于源内容的帧速率的一个或多个波动,被产生作为扫描输出过程432的一部分的垂直消隐间隔可被调整以补偿帧速率波动,如442所示。
[0083] 应注意,通过响应于帧速率的检测到的改变而调整垂直消隐间隔,压缩436和流式传输438的定时和速率可更好地匹配在431产生源内容的速率。在某些实施中,方法可涉及响应于帧速率的一个或多个向下波动而延迟扫描输出一个或多个帧,其中源内容的速度瞬间降低。在其它实施中,方法可涉及响应于帧速率的一个或多个向上波动而加快帧被扫描输出帧缓冲器的速率,其中源内容的速度增加。在进一步的实施中,方法可涉及在渲染过程中在不同时间段取决于源帧速率的波动的性质。
[0084] 应注意,在440检测帧速率和在442调整垂直消隐间隔的方式可根据本公开内容的方面以各种方式执行。
[0085] 在某些实施中,如440所示,可通过在每个新源帧被完成渲染之后将标记放入存储器中并跟踪每个标记之间的定时来检测帧速率。例如,扫描输出单元和处理单元(例如GPU)可由渲染源图形的系统的图形驱动器(有时称为“显示驱动器”或“GPU驱动器”)来控制。可能可选地由独立的处理单元(例如CPU)实施的应用可将绘制命令(例如,绘制调用)发送到图形驱动器,且GPU可将源帧渲染到帧缓冲器作为响应。当帧准备就绪时,应用可将标记放入存储器缓冲器(例如后帧缓冲器)中,所述存储器缓冲器通知GPU:帧准备就绪。图形驱动器可跟踪自最近的“帧准备就绪”标记的时间,且标记之间的时间可指示源内容的帧速率。如果到某个期限尚未接收到帧准备就绪标记,(例如)连续标记之间的时间超过标记之间的某个预定义时间阈值,那么图形驱动器可延迟下一帧的扫描输出。因此,图形驱动器可被配置以跟踪完成渲染到帧缓冲器中的每个源帧之间的时间,且每当时间超过某个预定义阈值时,就可延迟后续帧的扫描输出达有限的时间段。
[0086] 根据本公开内容的某些方面,图形驱动器可修改GPU上的寄存器(例如通过PCI-express总线)以调整GPU状态。另外,图形驱动器也可将命令发送到GPU,这通常是通过使用命令缓冲器将一个或多个命令发送到GPU来进行的。主要区别在于,寄存器的访问是同步(阻塞)的,而通过缓冲器发送命令是异步的。以前,每件事情是通过使用通常缓慢的寄存器来进行的,所以目前的寄存器主要用于配置目的。
[0087] 在本公开内容的某些实施中,为了调整垂直消隐间隔,如442所示,图形驱动器可调整GPU寄存器或通过命令缓冲器将延迟扫描输出的命令发送到GPU。在某些实施中,驱动器可发送命令以使扫描输出单元休眠达有限的时间段,例如,使扫描输出单元电源中断以延迟扫描输出达有限的时间段。在某些实施中,垂直消隐间隔可通过响应于较低帧速率(例如,检测的帧速率的向下波动)而在扫描输出之间维持活动vsync信号达较长时间段来调整。例如,图形驱动器可(例如)通过维持活动垂直同步信号来在每个帧的末尾产生空行直到接收到帧准备就绪标记。如果垂直消隐间隔的定时被与帧准备就绪标记的时间同步,那么帧被扫描输出到视频捕获单元和/或编码器的速率可被与源内容的帧速率更好地同步。这可导致由扫描输出单元产生的动态垂直消隐间隔具有随帧速率变化的长度。净效应可导致扫描输出帧之间的垂直消隐间隔响应于源内容的帧速率的改变而变长或变短。
[0088] 应注意,在一些情况下,可能有一个阈值,其中可能需要再生帧以维持一定的活动。这个阈值时间可在0.5T和2T之间,其中T=1/F,其中F为标准帧速率,例如,60帧/秒。
[0089] 应注意,图4示出的实施仅是为说明的目的而提供,且本公开内容的实施包括除了如图4所示调整垂直消隐间隔之外的其它补偿帧速率的技术。
[0090] 在某些实施中,压缩和流式传输的速率可响应于源帧速率的波动而在扫描输出阶段之后调整。例如,帧可被扫描输出帧缓冲器并使用显示接口来传输,所述显示接口可为视频发射机和接收器。当帧速率向下波动时,显示接口的一个或多个部件可被瞬间禁用,以防止编码器接收到重复帧,由此保持压缩资源。例如,视频发射机可被瞬间禁用,以防止将一个或多个帧传递到编码器。应注意,与上述的一些实施相反,这种技术将只工作以降低压缩和/或流式传输速率,而不增大压缩和/或流式传输速率。
[0091] 应注意,许多上述技术可特别适用于涉及实时流式传输的实施,其中图形内容由第一设备产生并由单独的设备流式传输。例如,云游戏实施可涉及由游戏控制台或其它视频游戏系统产生的源图形内容,且图形帧可被扫描输出到单独的流式传输服务器系统,所述流式传输服务器系统然后可捕获、压缩帧并将帧流式传输到远程客户端设备。在这些情况下,编码器可能没有办法调整到源内容的帧速率,因为它是在独立的系统上且接收在扫描输出之后捕获的帧。因此,响应于图形源的帧速率的检测到的改变而调整在扫描输出期间产生的扫描输出和垂直消隐间隔可更好地匹配单独的系统接收到的帧的定时。
[0092] 然而,某些实施可涉及在与图形源相同的设备上操作的编码器和流式传输单元,例如流式传输软件。在这些实例中,有可能以传统方式执行扫描输出,并配置编码器和/或流式传输单元以响应于源内容的帧速率的检测到的改变而省略某些帧。以举例的方式,而非限制的方式,如果系统检测到源帧速率已瞬间下降,那么系统可被配置以放弃对扫描输出期间接收到的一个或多个帧的编码作为响应,例如,以保持压缩资源。以进一步举例的方式,如果系统检测到源帧速率已瞬间下降,那么系统可被配置以仍编码帧,但流式传输单元可放弃发送一个或多个重复帧作为响应,例如,以保持网络带宽。如果这些单元都是与图形源相同的设备的部分,那么图形驱动器可被配置以通知编码器和/或流式传输软件,使得其可能以此方式响应于帧速率的波动,这在编码和流式传输设备与图形源设备分开时可能是不可能的。
[0093] 现参考图5,示出示范性系统500以说明本公开内容的各种方面。图5提供根据本公开内容的各种实施的用于产生、捕获、压缩并流式传输视频帧的系统的示范性硬件/软件架构的概述。系统500可被配置以根据本公开内容的各种方面补偿渲染的图形内容的帧速率波动。例如,系统500可被配置以执行与图4的方法具有共同特征的方法。
[0094] 更详细地参考图5,系统500可包括由显示接口554(本文中有时也被称为“视频接口”)连接的第一计算设备550和第二计算设备552。第一计算设备550可为被配置以产生并渲染图形的图形源,且第二计算设备552可为被配置以压缩帧并通过网络556将帧发送到远程客户端设备558的流式传输设备。图形源550可为被配置以通过例如HDMI、VGA、DVI等的显示接口连接554将渲染帧扫描输出到主机系统552的流式传输服务器552的终端。
[0095] 图形源设备550可包括根据本公开内容被配置以实施图形处理、传输和帧速率补偿的各种方面的一个或多个处理单元560、562和一个或多个存储器单元564。在示出的实例中,一个或多个处理单元包括至少两个不同的处理单元、中央处理单元(CPU)560和图形处理单元(GPU)562。CPU 560可被配置以实施例如视频游戏的应用,所述应用的状态可确定将要输出的图形内容。CPU 560可被配置以实施一个或多个图形驱动器566以将绘制命令发给GPU 562,以及控制帧的扫描输出。响应于图形驱动器566发出的绘制命令,GPU 562可被配置以将新源帧渲染到帧缓冲器568中,帧缓冲器568可为按顺序暂时保存每个渲染源帧的一个或多个存储器单元的一部分。在某些实施中,帧缓冲器568可包括多个缓冲器,包括前缓冲器和一个或多个后缓冲器,且GPU 562可被配置以当在后缓冲器中完成渲染新源帧时交换缓冲器。
[0096] 图形源也可包括扫描输出单元570,扫描输出单元570可被配置以根据上述各种方面将渲染帧扫描输出帧缓冲器568。扫描输出单元可被配置以直接将输出帧逐行扫描输出帧缓冲器568的前缓冲器,以及在(例如)如上所述的扫描输出过程中产生垂直同步信号和其它外部信号,且可产生垂直同步信号以在从帧缓冲器568检索的每个源帧之间产生垂直消隐间隔。
[0097] 扫描输出单元570和GPU 562的各种方面可由CPU 560通过一个或多个图形驱动器566控制,图形驱动器566可被实施为与图形源550的操作系统协作的一个或多个软件程序,且图形驱动器566可被实施在非临时性计算机可读介质中以由CPU或其它处理单元执行。图形源设备550可被配置以检测由GPU 562渲染的源内容的帧速率的一个或多个波动,且设备可被配置以响应于一个或多个波动而扫描输出。这可例如通过参考图4描述的任何技术来实现。
[0098] 在某些实施中,为了检测帧速率,一个或多个处理单元560、562可被配置以当渲染每个新源帧时将标记放入一个或多个存储器单元564中。例如,一个或多个存储器单元564可含有帧缓冲器568,GPU562将新帧渲染到帧缓冲器568中,且GPU 562可被配置以当完成渲染每个新的帧时将标记放入帧缓冲器568中。图形驱动器566可跟踪缓冲器568中每个新标记的定时,且可响应于(例如)如上参考图4所述的检测到的改变而进行调整。
[0099] 在某些实施中,驱动器可被配置以对扫描输出定时进行调整,以补偿由GPU 562渲染的帧速率的检测到的波动。例如,其可被配置以响应于一个或多个波动而调整垂直消隐间隔,从而增大或减小帧的扫描输出的瞬时速率。这可(例如)通过图形驱动器566暂时延伸在帧之间产生的vsync信号的一部分或通过使扫描输出单元570休眠达有限时间段来实现。这也可通过暂时禁用显示接口554以瞬间防止传输一个或多个帧来实现。
[0100] 扫描输出单元570扫描输出帧可通过显示接口554将新帧驱动到流式传输设备552,如图5所示。流式传输服务器552可包括被配置以捕获通过显示接口554传输的每个输出帧中含有的源帧图像的帧捕获单元576,例如视频捕获卡。在某些实施中,帧捕获单元576可特别适于与可由GPU 562渲染并由扫描输出单元570发送的唯一定制的帧协调。例如,在某些实施中,帧捕获单元可被配置以对接收到的行和/或像素计数,以仅捕获含有期望的源内容的那些可见像素。
[0101] 流式传输计算设备552也可包括被配置以压缩帧捕获单元576捕获的源帧的编码器,例如,视频编码解码器。流式传输计算设备552也可包括被配置以通过网络566将压缩帧发送到一个或多个客户端设备558的流式传输单元580。在某些实施中,客户端558也可为具有耦合到至少一个存储器单元588的至少一个处理器单元586的计算设备,且系统500可被配置以实施实时视频流式传输,使得客户端设备558可用解码器582来解压缩接收到的帧并用显示设备584来实时显示帧,而与其由图形源550的GPU 562渲染时的等待时间最小。
[0102] 虽然为说明的目的分开示出图5的各种部件,但是应注意,许多示出的部件可物理上实施为共用或整体单元。
[0103] 例如,在某些实施中,扫描输出单元570可物理上实施为GPU 562的一部分,或扫描输出单元570可为单独的单元。类似地,在某些实施中,扫描输出单元可物理上实施为单独的部件或可为物理上集成单元。扫描输出单元570可产生多个信号,包括垂直同步信号、水平同步信号、像素时钟等。扫描输出单元可为含有用于产生所有这些信号的部件的单一整体单元,或扫描输出单元570可由用于这些部件的不同信号生成器构成。例如,扫描输出单元的像素时钟生成器和扫描输出的垂直同步信号生成器不必是相同物理芯片的一部分。
[0104] 以进一步举例的方式,一个或多个存储器单元564可包括用于不同目的的多个不同的存储器单元。例如,存储器单元564可能可选地包括与主存储器单元分开的专用图形存储器单元。图形存储器可被配置以保持帧缓冲器,而主存储器可被配置以保持CPU 560实施的数据和程序。
[0105] 以进一步举例的方式,视频编码器578和/或流式传输单元580可能可选地被实施为一个或多个软件程序,所述软件程序被配置以存储在一个或多个存储器单元574上并由流式传输计算设备552的一个或多个处理器单元572来执行。根据本公开内容的实施,编码器578和流式传输单元580可为单独的代码集或可为相同程序的一部分。
[0106] 应注意,图5示出的实例是为解释的目的而提供的简化示意图,但是系统500可包括支持图形渲染、压缩、流式传输的许多额外的方面,和支持云计算的其它特征。此外,示出的示范性系统500的配置可尤其有利于涉及控制平台的云游戏的实施,且应注意,系统500可根据题为“VIDEO LATENCY REDUCTION”且以引用方式完全并入本文的美国申请号14/135,374中所描述的系统来配置,以进一步支持所述应用。
[0107] 例如,本申请的图形源系统550可与所述文件的图4A示出的终端系统具有共同特征,其对应于本文的图6A。以进一步举例的方式,流式传输服务器552可与所述文件的图4B示出的流式传输服务器具有共同特征(对应于本文的图6B),且帧捕获单元576可与所述文件的图5示出的视频捕获卡具有共同特征(对应于本文的图7)。
[0108] 图6A和图6B提供根据本公开内容的各种实施用于产生并捕获视频帧的示范性硬件/软件架构的概述。特别是,图6A和图6B的示范性系统可为用于使用流式传输服务器和终端系统来流式传输视频游戏和其它应用的系统。图6A示出根据本公开内容的各种方面的示范性视频源的架构,且图6B示出根据本公开内容的各种实施的用于从视频源捕获视频的示范性视频捕获系统的架构。在一些实施中,视频源612可为被配置以运行用于云流式传输的应用的终端,且可为现有的嵌入式系统、视频游戏控制台或具有专门架构的其它计算设备。在一些实施中,视频捕获系统602(视频接收设备)可为被配置以从终端系统捕获视频输出并将视频输出流式传输到客户端设备的流式传输服务器。然而,应强调,示出的图6A和图6B的架构仅以举例的方式提供,且本公开内容的各种实施可涉及使用其它架构且在其它情况下除了云游戏和云计算应用之外的架构来减少视频传输时间。
[0109] 参考图6A,示范性视频源可为被配置以运行应用608的终端系统612,应用608可涉及将由视频捕获系统602捕获的视频输出。以举例的方式,而非限制的方式,应用可为具有渲染的图形作为视频输出的视频游戏,所述视频输出可被传输到流式传输服务器602以通过网络进行发送。特别是,终端系统可包括图形处理单元(GPU)650,其与图形存储器649一起可被配置以将应用输出608渲染为视频帧的一系列图像。图像可被输出为具有可见像素的一系列视频帧,所述可见像素含有每个帧的图像的像素数据以在显示设备上进行显示,且视频帧图像可被通过例如HDMI的视频接口发送到视频捕获系统602作为具有可见像素和不可见像素的输出帧。然而,为了减少视频捕获过程所产生的延迟,视频源可被配置以添加额外的像素,使得放大的输出帧被通过视频接口发送。下文描述了可如何将额外的像素添加到输出帧的进一步的实例。
[0110] 为了支持视频信号的输出,视频源612可包括图形驱动器652,其被配置以与GPU 650相连接,用于将应用视频信号渲染为一系列视频帧图像。特别是,GPU 650可根据应用
608产生视频信号输出的视频帧图像,且图形驱动器652可与GPU 650协调以将视频帧图像渲染成具有支持特定显示图像分辨率(例如720p)的源视频帧格式。GPU 650与图形驱动器
652一起可用具有多个可见图像行的格式来渲染视频帧图像,其中每个可见图像行具有多个可见图像像素。在某些实施中,图形驱动器652可被配置以(例如)通过将帧渲染到具有比视频帧图像中像素数量大的分辨率的放大帧中来添加除了由GPU渲染的帧图像像素之外的额外的像素。下文描述通过以放大帧格式渲染帧来放大帧的进一步的实例。
[0111] 更具体而言,视频源612可包括帧缓冲器651和扫描输出单元653,其可能可操作地耦合到GPU 650,且在某些实施中,可被实施在GPU 650中。GPU 650可被配置以(例如)基于应用608的输出来将视频图像渲染到帧缓冲器651,且扫描输出单元653可被配置以从帧缓冲器651检索帧图像并产生额外外部信号以通过(例如)如上所述的接口来发送图像作为输出帧。
[0112] 特别是,扫描输出单元653可包括用于产生扫描输出帧的像素时钟信号的像素时钟生成器641,和/或用于产生与每个输出帧的同步信号(例如hsync和vsync信号)的sync信号生成器631。例如,sync信号生成器631可添加hsync信号,hsync信号在帧的每个行的末尾具有水平消隐区域,并在帧的每个行的末尾对应于多个不可见像素。信号生成器631也可添加vsync信号,vsync信号在每个帧的末尾具有垂直消隐区域并在帧的末尾对应于多个不可见的行。像素时钟生成器641可产生具有与用于通过视频接口传输的所产生的输出帧中的每个像素相关联的脉冲的时钟信号,包括从帧缓冲器651检索的活动像素的总数和对应于插入活动像素之间的同步区域的像素的总数。应注意,像素时钟生成器641和/或sync信号生成器631可被包含作为扫描输出单元653的一部分,且扫描输出单元653可被包含作为GPU650的一部分。然而,应强调,这仅是说明性实例,且一个或多个部件可被实施为单独的部件。
[0113] 视频源可包括被耦合到视频通信接口的视频发射机656,且发射机可通过串行通信接口(例如)按顺序逐个像素将视频信号传输到视频捕获系统602,其中sync信号因此指示序列中行和帧之间的过渡。像素时钟生成器641可(例如)基于如上所述像素的总数和视频内容的帧速率来产生时钟信号以同步每个像素的定时。在某些实施中,像素时钟生成器641可基于每个图像中活动显示区域中含有的额外像素、同步区域中含有的额外像素或两者来产生像素时钟,其中每个像素中传输频率增大。可选地,视频接口也可例如使用HDMI接口来支持音频传输,且从应用输出的音频信号也可通过视频接口来提交。在替代性实施中,可使用单独的音频接口。
[0114] 视频源可被配置以将输出视频信号发送到耦合到计算系统602的视频捕获设备620。捕获设备可接收传输的视频信号中含有的视频像素数据,使得所述视频像素数据可能以数字形式捕获并由流式传输服务器602压缩。流式传输服务器602可包括视频捕获过程
634和/或可被配置以压缩从视频捕获设备接收到的每个视频帧的编码器。流式传输服务器过程646可被配置以将压缩视频流发射到远程定位的设备,使得压缩视频流可被解压缩并在远程显示设备上显示。
[0115] 在某些实施中,根据本公开内容的各种方面,视频捕获设备可含有视频捕获逻辑628,视频捕获逻辑628特别被配置以仅捕获放大帧中含有的视频帧图像的可见像素。例如,在某些实施中,视频源的图形渲染部件可被配置以仅将视频帧图像的可见图像像素插入特定格式的活动显示区域的一部分,且视频捕获设备620可被配置以对接收到的每个帧中的行和/或像素进行计数,以知道显示图像的捕获何时完成。这可基于视频源如何渲染帧的预定配置。或者,在帧通过添加同步行来放大的实施中,视频捕获设备620可基于存在同步信号(例如VSYNC信号)来确定捕获完成。流式传输服务器602或其它计算设备可被配置以一旦每个帧中可见显示图像的捕获完成就开始压缩视频帧。
[0116] 捕获设备可通过与来自视频源612的视频信号输出兼容的通信接口来接收视频信号,且视频接口可被耦合到视频接收器630。以举例的方式,而非限制的方式,视频捕获设备可包括一个或多个端口作为音频和/或视频通信接口的一部分,例如HDMI端口或如下文参考图7所述的其它端口。
[0117] 接口设备602可包括专门的处理单元,所述处理单元含有可操作地耦合到视频信号接口的逻辑628,其中对于通过连接器从终端系统602接收到的信号,专门的处理单元具有专用于执行与A/V捕获相关联的功能且可选地执行与云流式传输相关联的其它功能的逻辑628。逻辑628也可支持通过额外通信接口与主机系统602通信,所述额外通信接口可与主机系统602的外围总线通信,以与主机系统中实施的A/V过程相连接。以举例的方式,而非限制的方式,接口设备620可为通过扩展接口与主机系统602存储器/CPU通信的附加卡,所述扩展接口例如外围部件互连(PCI)、)、PCI-eXtended(PCI-X)、PCI-Express(PCIe)或例如通过外围总线促进与主机系统602通信的另一接口。主机系统可包括捕获设备驱动器626,以通过接口设备620支持信号交换。
[0118] 在某些实施中,专门的处理单元可为现场可编程门阵列(FPGA)、专用集成电路(ASIC)或具有被根据本文描述的原理配置的专用逻辑单元的另一专门的处理单元。专门的处理单元的逻辑单元628也可包括支持除了音频/视频捕获来自在终端系统602上运行的应用608的输出之外的用于云流式传输的各种功能的专用逻辑,例如与存储过程632协调的存储虚拟化。
[0119] 在图6A-图6B示出的实例中,实施在专门的处理单元的逻辑628中的A/V捕获单元可与主机系统602中的捕获设备驱动器626和在主机系统602中实施的A/V过程632通信,A/V过程632例如在中央处理单元604上运行的软件应用。例如,如果终端系统612将视频像素发送到视频捕获设备,那么这个视频数据可使其通过图形驱动器652、逻辑628中含有的视频捕获单元、捕获设备驱动器626,到达在主机系统中实施的A/V过程632。A/V过程632然后可压缩捕获到的视频帧,且压缩可根据额外像素导致的像素时钟的增加而更快地开始。在某些实施中,视频接收设备602可能可选地为适于通过网络发射来自在终端系统612上运行的应用608的视频输出流的流式传输服务器。例如,流式传输服务器602可包括以太网适配器或其它网络适配器636,和用于主机602的操作系统的相应的以太网驱动器或其它网络驱动器638,其中兼容网络库639提供协议支持以进行网络通信。主机系统也可包括由相应的存储器驱动器642(例如,tmpfs)控制并由文件系统库644支持的系统存储器640。流式传输服务器过程646可在主机系统602上运行,以执行与向通过网络(图6A-图6B中未示出)连接的客户端设备提供实时流相关联的功能。
[0120] 终端系统612可包括支持应用608的各种其它部件,应用608例如可为被设计用于现有嵌入式平台的视频游戏软件。终端系统612可包括访问存储的文件系统层627,以及支持图形存储访问的各种部件。在一些实施中,系统和捕获设备620可被配置以实施存储虚拟化技术。在2013年12月19日提交的题为“MASS STORAGE VIRTUALIZATION FOR CLOUD COMPUTING”的共同转让给Roelof Roderick Colenbrander的、共同未决的美国申请号13/135,213中描述了这种技术的实例,所述美国申请的全部内容以引用之方式并入本文。
[0121] 现参考图7,示出根据本公开内容的各种实施的示范性捕获设备720的示意图,捕获设备720可被实施在接口卡620上、接口卡620上的一些部件上和示范性专门的处理单元760的内部。以举例的方式,而非限制的方式,捕获设备720可被配置为具有附接到印刷电路板(PCB)的部件的附加卡,且捕获卡720可通过主机硬件接口762与主机系统的外围总线连接,主机硬件接口762例如外围扩展端口或当连接时允许主机系统的外围总线的通信的其它扩展通信接口。应注意,图7的示范性捕获设备720包括对于视频捕获不是必要的但可提供云计算和其它实施的额外功能的各种可选部件。
[0122] 示范性专门的处理单元760可包括根据本公开内容的各种方面的专用于专门功能的各种逻辑。专门的处理单元可例如被实施为FPGA、ASIC或类似专门的处理单元。专门的处理单元760可包括主机接口块764,其实施接口卡720和捕获设备760的主机系统(图7未示出)的外围总线之间的通信接口的协议栈的一部分。
[0123] 如PCI-Express的通信总线可被看作是具有若干层的协议栈。不同的通信协议具有不同的层。通常,有个‘应用层’位于顶部,然后有一些运输相关层在中间部分和一些物理层在底部。主机接口块764不需要实施所述协议栈的所有层。相反,主机接口块可负责物理层,所述物理层负责(例如)通过电或光信号将数字信息放到通信链路上。主机接口块也可负责部分或可能所有的协议栈中的“传输层”,但不需要负责应用层。
[0124] 以举例的方式,而非限制的方式,主机接口块764可为通过PCI-Express连接进行通信的硬PCIe块,且硬PCIe块嵌入PCIe接口或用于访问主机系统的本地总线的其它接口的协议栈。主机接口块764可被集成到存储器访问接口单元766中,存储器访问接口单元766与专门的处理单元760的其它逻辑单元一起可(例如)使用对主机系统的请求的中断通过主机硬件接口762直接访问主机系统的系统存储器。
[0125] 在一些实施中,存储器访问接口766可包括提供存储器访问和中断功能的部件。特别是,主机接口块764可被配置以提供片上互连772和主机硬件接口762之间的连接,使得可使用存储器映射的输入/输出(I/O)从主机系统访问任何片上设备。这个功能将允许主机系统编程被连接到片上互连772的任何设备,例如大容量存储控制器770、存储器控制器776或GPIO 782。
[0126] 存储器访问接口766也可包括允许任何连接设备(例如A/V捕获单元778)在事件(例如,捕获的视频帧图像完成)之后产生中断的中断连接765。如果只能有一个设备与主机硬件接口硬件762连接,那么期望存储器访问接口提供这个功能。
[0127] 存储器访问接口766也可(可选地)包括直接存储器存取(DMA)引擎767。如本文所使用且如本领域技术人员通常所理解,术语直接存储器存取(DMA)代表允许计算机内的某些硬件子系统独立于计算机的中央处理单元(CPU)访问系统存储器的特征。DMA引擎767可实施主机接口块764和主机硬件接口762之间的数据移动操作。在一些实施中,存储器访问接口单元766可实施未由主机接口块764提供的协议栈(例如,PCI Express)的一部分,例如将主机接口块764连接到片上互连772。
[0128] 为了视频捕获的功能,捕获设备720可包括一个或多个视频和可选的音频/视频通信接口780,其可用一个或多个HDMI端口771和/或连接器或其它视频信号通信接口的形式来实施,且可被附接到捕获设备720的电路板。以举例的方式,而非限制的方式,接口卡720可含有两个HDMI端口,以促进到两个不同的视频源/终端系统的连接,但是应注意,捕获设备可替代性地含有不同数量的视频连接器,使得单个捕获设备720可服务于不同数量的视频源或终端系统。对于视频信号连接器780中的每一个,可能有实施在与特定视频通信接口(例如,HDMI、DVI、VGA等)兼容的专门的处理单元760中的相应的视频捕获单元778。
[0129] 专门的处理单元的一个或多个视频捕获单元778可通过片上互连772连接到专门的处理单元760的其它逻辑单元,片上互连772可向视频捕获单元778中的每一个提供到主机系统接口部件(例如,PCI-Express)的访问。片上互连可被配置为标准片上总线架构,所述架构被配置以连接专门的处理单元(例如,FPGA或ASIC)上的功能块。例如,如果专门的处理单元760是FPGA,那么专门的处理单元的部件可使用主从架构来互连,所述主从架构例如高级微控制器总线架构(AMBA),例如AXI4或AXI4-Lite,或另一合适的片上总线架构。AXI4可用于大型数据传输,而AXI-Lite可用于低性能连接或用于配置目的。专门的处理单元逻辑块的片上互连可根据如图7所示的主从式配置来配置。在示出的示意图中,“M”和相应的粗线代表主连接,“S”和相应的虚线代表从连接,且“Ctrl”代表控制。
[0130] 接口设备720可包括一个或多个存储器单元774,所述存储器单元774可由被提供在专门的处理单元760的逻辑中的存储器控制器776控制。根据终端系统发出(例如)用于大容量存储虚拟化的数据请求,存储器单元可支持通过大容量存储接口768连接的终端系统和通过主机硬件接口762连接的主机系统之间的数据传输。例如,根据本文描述的原理,存储器单元774可为例如DDR3RAM的暂时RAM单元,或被配置以暂时存储由终端系统发出的读取请求所请求的数据的另一易失性存储器单元。存储器控制器776可被连接到片上总线架构772,以根据从专门的处理单元760的其它逻辑单元接收到的信号来执行存储器读/写操作。
[0131] 在操作过程中,通过视频接口780连接的视频源(图7未示出)的图形驱动器和/或扫描输出单元可产生具有将由捕获卡720捕获的额外像素的放大输出视频帧。在接收到视频输出帧之后,视频捕获单元778可被配置以确定每个帧的可见显示图像像素何时已被捕获并省略来自捕获的每个帧中的额外像素,从而丢弃这些额外的像素,因为它们含有不需要的数据。每个帧的捕获到的视频数据可被通过主机硬件接口762使用中断发射到主机系统中的视频捕获过程,以进一步进行处理、压缩和/或通过网络传输。对于给定帧速率,压缩可更快地开始,因为需要发射每个帧中较低比例的像素以传输帧中的所有可见图像像素。
[0132] 应注意,一个或多个A/V捕获逻辑单元778中的每一个可被可操作地耦合到相应的A/V接收器730,每个A/V接收器730又可被连接到合适的A/V硬件接口780,例如,如图7所示的HDMI端口771或其它A/V连接端口。来自终端系统的A/V输出可被使用兼容A/V连接器通过A/V接口780连接到A/V接收器730。A/V捕获单元778可通过可被连接到主机系统总线(例如,外围总线)的主机硬件接口762与主机系统上的接口设备驱动器和A/V过程通信,且主机系统然后可通过网络将A/V流传递到客户端设备。
[0133] 接口设备可能可选地包括向在终端系统上运行的流式传输应用(例如,云游戏流式传输)提供额外功能的各种其它部件。例如,专门的处理单元760也可包括用于仿真一个或多个终端系统的存储设备的一个或多个大容量存储设备控制器770。接口设备782也可包括支持额外功能的一个或多个通用输入/输出(GPIO)块。以举例的方式,而非限制的方式,GPIO块中的每一个可被连接到相应的终端系统,以提供额外功能,例如终端系统的功率控制和其它功能。
[0134] 如上所述,根据本公开内容的各种方面,专门的处理单元760可例如被实施为FPGA、ASIC或具有专用于例如A/V捕获、大容量存储设备控制器、存储器控制器、DMA引擎等的某些功能的块的其它集成电路。在本公开内容的某些实施中,这些单元中的一个或多个可被提供为在本领域中通常被称为IP块或IP内核的可重复使用的逻辑单元或其它芯片设计。
[0135] 结论
[0136] 虽然以上是本发明的优选实施方案的完整描述,但是也可使用各种替换、修改和等同物。因此,本发明的范围不应当参照以上描述确定,而是应该参考所附的权利要求书以及等同物的全部范围来确定。本文所述的任何特征(无论优选与否)都可与本文所述的任何其它特征(无论优选与否)相结合。在随后的权利要求中,不定冠词“一(a或an)”代表以下文章中一定量的一个或多个物品,除非另有明确说明。所附权利要求不应被解释为包括构件或步骤加功能的限制,除非这种限制在给定权利要求中使用短语“用于……的构件”来明确表示。
高效检索全球专利

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

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

申请试用

分析报告

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

申请试用

QQ群二维码
意见反馈