独立地处理显示数据的平面的制作方法

文档序号:6426865阅读:199来源:国知局
专利名称:独立地处理显示数据的平面的制作方法
技术领域
本发明涉及计算机技术,更具体地,涉及视频数据处理技术。
背景技术
一般认为,诸如视频游戏中呈现的图形之类的视频内容项目,当以比较高的分辨率并以比较高的刷新速率显示时,具有较高的质量。然而,当设备硬件费力地处理复杂化的呈现时,刷新速率可能会受到损失。尽管为了维护所需要的刷新速率可能会损失分辨率,但是,以较低的分辨率呈现可能会导致令人不快的视觉体验,如果内容看起来显著退化(例如,像素化)。相比之下,诸如文本覆盖和图形用户界面(⑶I)元件之类的其他视频内容项目,则已知在以较低的分辨率呈现时质量会退化。

发明内容
提供本发明内容是为了以精简的形式介绍将在以下具体实施方式
中进一步描述的一些概念。本概述并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于限定所要求保护的主题的范围。此外,所要求保护的主题不限于解决在本发明的任一部分中提及的任何或所有缺点的实现。根据本公开的一个方面,提供了输出视频流的方法。该方法包括从存储器中检索显示数据的具有第一组显示参数的第一平面,并对显示数据的第一平面进行后处理,以调整第一组显示参数。该方法还包括从存储器中检索显示数据的具有第二组显示参数的第二平面,并独立于显示数据的第一平面,对显示数据的第二平面进行后处理。该方法还包括将显示数据的第一平面与显示数据的第二平面混合,以形成混合的显示数据,并输出混合的显示数据。


图1概要地示出了根据本公开的实施例的视频输出。图2示出了输出视频流的方法的流程图。图3概要地示出了帧缓冲器的并排包装的示例。图4概要地示出了帧缓冲器的过/欠包装的示例。图5概要地示出了从左眼的角度和右眼的角度创建三维显示数据的示例。图6概要地示出了在帧缓冲存储器构建区域以支持显示不可知的呈现的示例。图7概要地示出了用于视频输出的示例显示管线。图8概要地示出了根据本公开的实施例的计算设备。详细描述如上面介绍的,在某些情况下,为了对于已呈现的内容维护所需要的更新速率可能会损失分辨率,同时维护高显示器刷新速率,以便避免闪烁。作为示例,可以以稍微低的分辨率呈现视频,以降低有效像素率,这可使设备的图形处理单元(GPU)以更快的刷新速
3率呈现。然而,当降低分辨率时,不同类型的内容与其他类型的内容相比可能受影响的程度显著地多或少。例如,显示快速移动的游戏内容(例如,战争场景)的视频游戏,当分辨率被降低以维护所希望的刷新速率时,可能不会产生显著的可视伪像,而具有诸如文本、聊天窗口等等之类的详细的和相对静态的内容的平视显示系统(HUD)在较低的分辨率时可能变得显著地像素化。传统上,可以使用硬件缩放器来允许开发人员呈现到所希望的分辨率,然后,系统软件可以将已呈现的数据提供到与正在向其输出视频的显示器相关联的分辨率。然而,这样的硬件缩放器不能隔离呈现分辨率,以便区分诸如例如主显示器的内容HUD的内容之类的内容。如此处所描述的独立地处理显示数据的平面提供了独立缩放内容的不同的部分的分辨率。例如,由于可以独立地缩放视频内容的某些部分,可以与HUD数据独立地缩放显示数据的主要集合。进一步,通过以显示器不可知的格式存储显示数据,然后,为显示器专用的呈现而打包帧缓冲器,支持将视频输出到具有各种规范的各种显示器,包括被配置成提供视频的三维显示(3D显示)的显示器。现在转向图1,图1示出了计算设备20,包括诸如提供应用程序24(例如,驾驶游戏)的操作系统之类的系统22。计算设备20可以是被配置成输出立体和/或非立体视频内容的任何合适的计算设备,包括,但不仅限于,游戏控制台、个人计算机、移动设备、等等。应用程序M可包括各种组件,如主显示器以及通常与主显示器的内容相关联的应用程序所生成的外围设备。在所描绘的示例中,应用程序M包括驾驶游戏,该游戏具有显示从驾驶员的角度来看的路的视图的主显示26。应用程序M还包括HUD元素,其中包括显示驾驶员沿着跑道的进度的地图28,以及驾驶员的竞争对手的进度。应用程序HUD还包括显示驾驶员的汽车的速度的速度计显示30。可以理解,此示例在插图中只是示意的,不应在限制性的意义上考虑。计算设备20进一步被配置成提供附加的系统生成的内容,如系统生成的主显示和/或系统生成的HUD。系统生成的内容的示例包括,但不仅限于,系统消息、通知、语音聊天、视频聊天、文本聊天等等。图1描绘了示例系统生成的主显示32,以及系统生成的HUD 34,包括与在驾驶员和竞争对手之间进行的文本聊天相关联的文本。图1进一步示出了输出到各种显示器36的计算设备20。显示器36的示例包括计算机监视器、电视机、3D显示器等等。如此,每一个显示器都可以具有关于内容如何显示在显示器上的不同规范。例如,显示器可以具有指出可以显示在每一个维度的不同的像素的数量的显示器分辨率。作为另一个示例,显示器可以具有指出显示器硬件每秒钟绘制数据的次数的刷新速率。作为另一个示例,显示器可以具有指出物理图像宽度与图像高度的比率的纵横比。此外,各种显示器还可以使用不同的接口来接收用于显示的内容。示例包括,但不仅限于,Composite/kparate视频(S-video)、分量视频、视频图形阵列(VGA)、VGA、数字视频接口(DVI)、高清晰度多媒体接口(HDMI)、DisplayPort等等。如通篇比较详细地描述的,计算设备20被配置成向每一个显示器输出视频内容, 其中,内容是为该显示器配置的。如此,内容开发人员不必知晓显示器规范,并可以开发呈现给被类似地配置的缓冲器的应用程序。例如,计算设备20可以被配置成获取显示数据
4(例如,由图形核和/或其他系统组件所产生的),并在帧缓冲存储器中以显示器不可知的格式构建数据。然后,计算设备20可以基于与该计算设备向其输出的显示器相关联的显示参数,来动态地将数据打包到帧缓冲器中,如参考图2比较详细地描述的。如此,如在图1中所描绘的,计算设备20可以将视频输出38a驱动到显示器40,将视频输出3 驱动到显示器42,并将视频输出38c驱动到显示器44。显示器40、42,以及 44中的一个到三个可以被同时驱动。视频输出具有相同帧率、分辨率,以及帧打包;然而, 应用程序M可以使用独立于由显示器预期的特定打包和格式化的选取的帧缓冲器打包和格式来呈现。此外,诸如由计算设备20所提供的视频输出38a、38b和/或38c之类的视频输出被配置成独立地减轻主显示和覆盖(例如,HUD)的存储器资源。如此,可以独立地并动态地调整每一个的呈现分辨率,以符合标准显示器刷新速率。如此,作为示例,游戏内容(例如,战争场景)可以被缩放到较低的分辨率而HUD可以维持在较高分辨率时。以此方式,可以维护刷新速率,观众的用户体验很少会被影响和/或中断。如上面介绍的,显示器36中的一个或多个可以进一步被配置成提供用于三维查看的内容。传统上,呈现给3D显示器具有挑战性,因为不同的3D显示器可以使用不同的技术来提供内容的3D视图。作为示例,显示器可以使用立体视觉技术,该技术呈现同一场景的两个视图,其中,其中一个视图是针对用户的左眼的(例如,左帧),另一个视图是针对用户的右眼的(例如,右帧)。如此,可以在平板显示器表面上模仿深度。如此,各种立体3D(S3D)显示器和非立体显示器可以指定用于接收两个视图(例如,左帧和右帧)的不同指令。作为示例,显示器可以被配置成接收帧缓冲器中并排打包的视图。在这样的情况下,对于每一个输出帧,一个视图被定位在帧的左半部,另一个视图被定位在帧的右半部。作为另一个示例,显示器可以被配置成接收帧缓冲器中的过/欠打包的视图。在这样的情况下,对于每一个输出帧,一个视图被定位在帧的上半部分,另一个视图被定位在帧的下半部分部。这样的指令可以被包括在提供给计算设备的规范内。然后,计算设备20被配置成转换应用程序前置缓冲器,并使用如此处所描述的视频输出体系结构, 通过公共的视频接口将数据输出到显示设备。计算设备20可以被配置成通过例如取得由图形核和/或其他系统组件所产生的帧缓冲器,并执行后处理和混合操作,以格式化用于显示的缓冲器,来向显示器36输出视频,如参考图2比较详细地描述的。此外,计算设备20的显示器输出管线可以被配置成获取与3D显示器相关联的并排和/或左右打包的缓冲器/平面,并应用单独地确定的像素和行偏移和填充/间隔,以便驱动显示器的所请求的输入。如此,如此处所描述的独立地处理显示数据的平面可以以一致的并排格式将3D 源数据呈现到存储器中的同一个缓冲器(例如,左/右或图像/深度),以便只维护一个缓冲器分配和指针。此外,计算设备20可以进一步被配置成通过向每一个眼睛呈现源的不同移位的版本来使用2D源用于3D输出,从而提供了节省存储器的能力,如参考图2-6比较详细地描述的。如此,2D源的显示分辨率(例如,4096x2160)和3D源对于每一个眼睛的显示分辨率 (例如,2048x2160)可以得到支持。以此方式,应用程序不必知道显示器的特定的接口格式。如此,使得内容与输出标准、3D标准等等中的变化无关。现在转向图2,图2示出了输出视频流的方法50。在52,方法50包括从存储器中检索具有第一组显示参数的显示数据的第一平面。可以理解,如此处所使用的“平面”是指 2D存储器缓冲器的平面(例如,层),因此不同于传统意义上关于2D图像的平面的平面。平面可以与应用程序生成的显示数据或系统生成的显示数据相对应(例如,由其提供源),例如,来自由图形核和/或其他系统组件所产生的帧缓冲器。此外,平面可以与诸如主源、HUD 源等等之类的各种源相关联,因此,第一平面可以是任何这样的合适的平面。例如,第一平面可以是应用程序主平面,包括用于显示主应用程序内容的应用程序所生成的主要应用程序显示表面(例如,驾驶游戏的主画面)。作为另一个示例,第一平面可以是系统主平面,包括计算系统的系统生成的主要系统显示器表面(例如,显示系统消息的窗口)。第一平面具有相关联的第一组显示参数。这样的显示参数指出平面的显示数据将如何显示。例如,显示参数可包括分辨率、颜色空间、伽马值,等等,如下面比较详细地描述的。此外,可以以任何合适的方式检索第一平面,诸如通过直接存储器访问(DMA)。作为示例,DMA可以从主存储器中检索前置缓冲器内容。如此,片上系统(SoC)可以被设计成能提供有利的延迟响应,以显示DMA读和写请求。存储器请求可以通过专用存储器管理单元(MMU)来发出,或者可通过与系统GPU块请求者共享的端口来交错它们。然后,可以在延迟计算中考虑GPU和SoC存储器控制器的开销,以便设计合适的DMA读取缓冲的量以及相关联的延迟隐藏机制。显示器DMA请求对主存储器来说可以是基于地址的。可以可任选地清空发往前置缓冲器的全部可缓存的写入,既可以通过使用流式写入,也可以通过显式的缓存清空指令。继续图2,在54,方法50包括后处理显示数据的第一平面,以调整第一组显示参数,其中,后处理包括缩放第一平面的显示数据,以调整分辨率参数,如在56所示出的。后处理可包括任意数量的可能的操作,以准备用于随后的合成的数据,如下面比较详细地描述的。在某些实施例中,后处理可包括应用输入颜色空间转换。如上面介绍的,显示数据可以具有颜色空间参数。作为示例,对于游戏和图形,像素可以使用RGB颜色空间。作为另一个示例,对于视频应用程序,像素可以使用YCbCr颜色空间。如此,应用输入颜色空间会话将把帧缓冲器格式匹配到公共的颜色空间以便以后进行混合。通过适当地处理视频格式的颜色空间转换,可以维护精确度和范围,以减轻卡箍和量化伪像。此外,在某些实施例中,后处理可包括应用逆向伽马校正。如上面介绍的,显示数据可以具有用于编码亮度值的伽马参数。应用逆向伽马校正会将经过伽马校正的内容转换为线性空间,可提供改善的缩放结果,因为在输出处理过程中,伽马参数通常容易受到带状伪像。以此方式,通过应用逆向颜色空间转换和/或逆向伽马校正,可以在线性RGB颜色空间中进行随后的缩放和合成。作为示例,可以通过颜色空间转换(CSC)将YCbCr颜色空间源材料(例如,DVD)转换为RGB,然后,可以通过逆向伽马块,将其转换为线性RGB。此外,可以以任何合适的方式缩放显示数据。因此,方法50的56可包括应用视频
6缩放器,以更改分辨率参数。这样的视频缩放器可以再采样全动式视频(FMV)和/或用于显示的覆盖。此外,在某些实施例中,视频缩放器可以执行帧到场的下采样以供隔行扫描的显示支持。当处理多个输出分辨率时,视频缩放器可以显示分辨率匹配。作为示例,应用程序可以被配置成支持PAL、NTSC、W& 720P。然而,并非让应用程序天然地支持这些不同的分辨率以及像素纵横比,可以向其呈现较小的分辨率子集,然后,可以在显示之前使用高质量过滤来缩放呈现目标。以此方式,可以支持与将具有一个显示纵横比(例如,40的内容呈现在具有不同的显示纵横比(例如,16x9)的显示器上相关的功能。这样的功能还可以包括4x3显示器上的16x9内容的信箱呈现等。视频缩放器还可以进一步提供对于填充有限的应用程序,基于系统负载来进行动态分辨率调整。如此,再采样器可以被配置成支持任意缩放因子,以便当动态地改变缩放因子时产生最小的伪像。此外,再采样还可以独立于平面的每一个源。在这样的情况下,对于主平面,可能需要诸如高质量、不可分的、在空间上自适应的2D过滤器之类的高质量2D过滤器,而非自适应的、可分离的过滤器可以用于HUD。应该理解,在不偏离本公开的范围的情况下,后处理可以另选地或另外地包括其他处理。此外,在后处理用于3D显示器的显示数据的情况下,后处理可包括缩放显示数据的第一平面的左眼视角和缩放右眼视角,分别如在方法50的58和60所示出的。这样的缩放可包括任何合适的处理以准备两个视角供输出。具体而言,可能不需要为每一个平面源分配全尺寸的帧缓冲器。如此,用于显示器的源区域的一部分可以是整个源,或者可以是源的一部分(例如,矩形区域)(例如,平移扫描、裁剪等等)。此外,源内容可以占据显示器的整个活动区,或者,它可以占据显示器的一部分(例如,信箱(Ietterboxing))。离开活动显示区域的源内容可以被剪切(例如,通过寄存器编程)。因此,为了节省存储器占用和带宽,可能需要为给定平面指定产生多个子矩形的多个不相重叠的源。作为示例,为提供3D支持和“相框"HUD,可以显示任何大小的多个(例如,八个)不同的源,并可以将它们放置在显示器上的任何地方(例如,桌面)。作为示例,图3示出了主应用程序的左眼版本90和主应用程序的右眼版本92的并排左/右输出的可能的配置。作为示例,主应用程序可以是具有通过HUD显示的多个外围设备的视频游戏。每一个项,即,项9 (例如,分数),项94b (例如,武器),项Mc (例如, 方向/地图)以及项94d(例如,消息)的左眼版本和右眼版本可以在它们自己的引用缓冲器中被并排地打包。例如,左眼版本90上的项9 和右眼版本92上的项9 可以使用从同一存储器缓冲器地址开始的,但是,具有不同的水平偏移的源数据。作为另一个示例,图4示出了帧打包格式的可能的配置。这里,每一个项的左眼版本和右眼版本可以在它们自己的引用缓冲器中被打包over/under。例如,左眼版本90上的项9 和右眼版本92上的项9 可以使用从同一存储器缓冲器地址开始的,但是,带有不同的垂直偏移的源数据。然后,可以将左眼和右眼角度组合起来,用于显示,来模仿3D图像。作为示例,图 5示出了将左眼视角96和右眼视角97组合起来,以产生视频输出98。由于不同的3D显示器使用不同的显示技术,因此,需要以显示器不可知的格式来存储显示数据,然后封装作为为显示器专用的呈现而格式化的视频输出。如此,缩放还可以包括为显示器专用的呈现而打包帧缓冲器。这可以以任何合适的方式进行。例如,与显示数据的第一平面相关联的帧缓冲存储器和与显示数据的第二平面相关联的帧缓冲存储器可以每一个都被构建为支持显示器不可知的呈现。如此,缩放第一平面或第二平面的左眼视角或右眼视角可包括引用与该平面相关联的帧缓冲存储器,并格式化该平面的左眼视角或右眼视角,用于显示器专用的呈现。在这样的情况下,引用帧缓冲器可包括获取该平面显示数据的与左眼或右眼相关联的区域。如此,缩放该平面的左眼角度或右眼角度可包括利用来自通过帧缓冲存储器获取的区域的数据打包帧缓冲器。图6示出了对于上文图3-4参考所描述的情况,用于在帧缓冲存储器中的构建区域以支持显示器不可知的呈现的这样的可能的方法。可以使用三个源矩形。以此方式,可以并排地放置每一个区域的独立的左右视图。GPU和显示器输出DMA两者都被配置成理解每一个眼睛的矩形的原点和维度(X,Y,W,H),然而,只有显示输出DMA被配置成理解在输出格式中分隔两个眼睛的(DX,DY)(像素,行)。在某些实施例中,缩放还可以包括将视差包括到逐像素呈现的左和右呈现中。在某些实施例中,这可以是具有单独的左右源平面的副效应。然而,在某些实施例中,视差可以被包括为基于存储在配置寄存器中的偏移参数而生成的每一个眼睛的最后的水平像素偏移。这也可以适用于在存储器中没有左和右源平面,,而只是单一平面(“角度”)加偏移的情况下。作为示例,偏移参数可以基于表示显示器输出宽度的DX加基于所希望的明显的深度(例如,图6中的表示为“Z”的Z-偏移)的偏移的总和。此外,每一个眼睛矩形的宽度可以被填充,以促进存储器平铺或输出过滤器对齐限制。通过逐平面地执行这样的后处理,可以逐帧地改变源的属性(例如,颜色空间、大小、位置等等),因此,可以适当地被缓冲,以防止渗色/ 一致性/撕裂问题。如此,全部显示平面都可以被连贯地更新。此外,这样的后处理允许每一个平面的源独立于显示器的分辨率。以此方式,所有源都可以逐帧地改变呈现维度,允许应用程序/系统在呈现目标维度变得接近于超过它们的GPU预算地运行时,无缝地缩减它们,如此,维护了一致的帧率。作为对于HDMI的可能的使用情况,接收器可以改变用于输出的显示器。在这样的情况下,显示器分辨率通过一步步地修改每一个源信道中的缩放器参数而改变,无需重新初始化视频输出管线。返回到图2,在62,方法50包括从存储器中检索具有第二组显示参数的第二平面的显示数据。应该理解,这样的检索可以基本上与检索第一平面同时。第二平面可以是被配置成定位在第一平面上方的任何合适的平面。例如,第二平面可以是系统主平面。作为另一个示例,第二平面可以是包括应用程序所生成的覆盖的应用程序HUD,所述覆盖被配置成在第一平面的已缩放的呈现顶上以恒定的分辨率绘制元件。 作为再一个示例,第二平面可以是系统生成的覆盖,其被配置成促进系统通信,并被配置成被定位在第一平面上方,或作为半透明层被混合在第一平面上方。在64,方法60包括独立于显示数据的第一平面,对显示数据的第二平面进行后处理。如此,对于每一个源,支持单独的控制,使得质量/资源利用率被增强。后处理第二平面可包括缩放第二平面,如在66所示出的,例如,通过应用第二视
8频缩放器。后处理还可以包括诸如应用第二输入颜色空间转换、应用第二逆向伽马校正等等之类的其它处理。对于后处理显示数据供3D显示的情况,后处理可包括独立于显示数据的第一平面的左眼视角,缩放显示数据的第二平面的左眼视角,类似地,独立于显示数据的第一平面的右眼视角,缩放显示数据的第二平面的右眼视角,如在方法50的68和70所分别示出的。在72,方法50包括将显示数据的第一平面与显示数据的第二平面混合,以形成混合的显示数据。这可以以任何合适的方式进行,如通过合成。对于混合平面供3D显示的情况,混合可包括将显示数据的第一平面的左眼视角与显示数据的第二平面的左眼视角混合,以形成混合的显示数据的左眼视角,如在72所示出的,并将显示数据的第一平面的右眼视角与显示数据的第二平面的右眼视角混合,以形成混合的显示数据的右眼版本,如在74所示出的。在76,方法50包括输出混合的显示数据。在某些实施例中,可以将混合的显示数据输出到视频编码器。然而,在某些实施例中,可以将被格式化和复合供输出的内容写回到存储器中,供随后使用,包括可能的视频压缩。可以从任何混合平台获取源,例如,以包括或排除系统平面。可另选地,为提供更大的灵活性,可以添加单独的混合器集合。这样的到存储器的输出还为显示器管线提供调试路径。对于输出视频输出供3D显示的情况,输出可包括输出混合的显示数据的左眼角度,以及混合的显示数据的右眼角度,供三维显示,如在78和80所分别示出的。应该理解,在不偏离本公开的范围的情况下,方法50还可以包括另外的处理。例如,在混合之后,可以应用输出伽马校正,以将线性空间内容可编程、可选择地转换为由显示设备预期的伽马(例如,sRGB伽马、BT. 601/709伽马等等)。作为另一个示例,方法50还可以包括应用输出颜色空间转换。以此方式,可以将复合的、经过伽马校正的结果匹配至显示所需的输出格式(例如,BT. 601、BT. 709、RGB、 xvYCC60UxvYCC709等等)。可以维护足够的精确度和范围,以减轻卡箍和量化伪像。除颜色空间转换之外,可编程的系数可以允许使用同一个块,在对比度、饱和度、色调、亮度等等方面进行调整。应该进一步理解,虽然输出处理步骤可以作为GPU/CPU核的存储器到存储器的操作来执行,或者在显示器栅格化过程中在运行时由专用显示器硬件来执行,可以进一步解决关于系统存储器占用的顾虑以及对以前的方法的附加的带宽要求。因此,可以理解,方法 50可包括附加的逻辑,以便最终分割在GPU进行视频处理的效率、GPU芯片大小、存储器带宽以及利用率之间实现平衡。应该理解,方法50还可以包括接收和后处理附加的平面,并将这些与其他经过后处理的平面混合,供输出。图7示出了四个单独的平面的显示管线100,即,包括主应用程序显示表面的应用程序主平面(App Main)、包括应用程序所生成的覆盖的应用程序HUD平面 (App HUD)、包括主要系统显示表面的系统主平面(Sys Main),以及包括系统生成的覆盖的系统HUD平面(SysHUD),如下面比较详细地描述的。App Main平面包括对于应用程序(前置缓冲器)要显示的主要表面。此平面的源在其它平面的下面/背后。在某些实施例中,可能不能在此平面上提供每像素字母 (alpha)。
然后,App HUD平面包括对App Main平面的覆盖。添加这样的源可能潜在地根除由GPU所引起的丢帧。换言之,App Main源可以逐帧地改变呈现维度,支持在已缩放的游戏呈现上以恒定分辨率绘制App HUD元件。以此方式,当呈现目标维度变得接近于超过它们的GPU预算地运行,开发人员可以无缝地缩减它们,以便它们可以维护一致的帧率。这是可以实现的,因为GPU呈现时间趋向于在帧与帧之间不显著变化。HUD元件保持一致的分辨率,因为当以不同的方式动态地缩放那些HUD元件时,在视觉上是明显的,会对用户造成困扰。应用程序可以对于任何输出分辨率使用App HUD覆盖,其进一步使用了如图所示的缩放器。Sys Main平面包括要对于系统软件显示的主要表面,包括操作系统以及程序和实用程序的任何核心集合。此平面可以被定位在应用程序平面上(例如,App Main和App HUD),而在Sys HUD平面下面。Sys HUD平面包括对系统软件可用的覆盖平面。此平面可以被定位在其它平面上方。它可以用于系统消息、通知、以及用于语音/视频聊天功能。在系统覆盖路径中具有缩放器可以简化系统资源分配和性能预留,而不依赖于标题源分辨率、刷新速率等等。如此,每一个平面都可以具有不同的显示参数集合。根据检索(例如,通过DMA), 各平面随后可被彼此独立地后处理。如所描绘的,这样的后处理可包括颜色空间转换 (CSC)、逆向伽马校正(G-I)、以及缩放。然后,可以混合(例如,复合)各平面,以形成混合显示数据。在所描绘的示例中, 将App Main平面与App HUD平面复合。然后,再将该结果与Sys Main平面复合,再将该结果与Sys HUD平面复合。可另选地,可以将App Main与App HUD复合,并可以将Sys Main 与Sys HUD复合,然后,可以将结果彼此复合。在所描绘的示例中,将输出伽马校正应用到混合的显示数据,然后,将结果输出到视频编码器。还缩放混合的显示数据,以便进行存储器输出、伽马校正,并写回存储器,以便进行随后的压缩。在某些实施例中,上文所描述的方法和进程可以与计算系统关联。作为示例,图8 示意性地示出了可以上文所描述的方法和进程中的一个或多个的计算系统110。计算系统 110包括逻辑子系统112和数据保持子系统114。计算系统110可以可任选地包括显示子系统116和/或在图8中未示出的其他组件。逻辑子系统112可包括被配置成执行一个或多个指令的一个或多个物理设备。例如,逻辑子系统可以被配置成执行一个或多个指令,这些指令是一个或多个程序、例程、对象、组件、数据结构,或其他逻辑构造的一部分。这样的指令可以被实现以执行任务、实现数据类型、转换一个或多个设备的状态,或以其他方式取得所希望的结果。逻辑子系统可包括被配置成执行软件指令的一个或多个处理器。另选地或另外地,逻辑子系统可包括被配置成执行硬件或固件指令的一个或多个硬件或固件逻辑机。逻辑子系统可以可任选地包括分布在两个或更多设备中的单个组件,在一些实施例中,可以位于远距离。数据保持子系统114可包括一个或多个物理、非瞬时的设备,这些设备被配置成保留数据和/或可由逻辑子系统执行的指令,以实现此处所描述的方法和进程。当实现这样的方法和进程时,数据保持子系统114的状态可以被转换(例如,保留不同的数据)。数据保持子系统114可包括可移动介质和/或内嵌的设备。数据保持子系统114可包括光存
10储器设备、半导体存储器设备,和/或磁存储器设备等等。数据保持子系统114可包括带有下列特征中的一个或多个的设备易失性、非易失性、动态、静态、读/写、只读、随机存取、 顺序存取、位置可寻址、文件可寻址,以及内容可寻址。在某些实施例中,可以将逻辑子系统 112和数据保持子系统114集成到诸如专用集成电路或系统芯片之类的一个或多个常见的设备中。图8还以计算机可读取的可移动介质118的形式示出了数据保持子系统的一个方面,其可以被用来存储和/或传输数据和/或可执行的指令以实现此处所描述的方法和进程。可以使用术语“模块”和“引擎”来描述被实现以执行一个或多个特定的功能的计算系统Iio的一个方面。在某些情况下,可以通过逻辑子系统112执行由数据保持子系统 114所保存的指令来实例化这样的模块或引擎。可以理解,可以从同一个应用程序、代码块、 对象、例程和/或函数来实例化不同的模块和/或引擎。同样,在某些情况下,可以由不同的应用程序、代码块、对象、例程和/或函数来实例化同一个模块和/或引擎。当被包括时,显示子系统116可以被用来呈现由数据保持子系统114所保存的数据的可视表示。由于此处所描述的方法和进程改变由数据保持子系统所保存的数据,如此转换数据保持子系统的状态,同样,可以转换显示子系统116的状态以可视地表示基础数据中的变化。显示子系统116可包括使用几乎任何类型的技术的一个或多个显示设备。可以将这样的显示设备与共享机壳中的逻辑子系统112和/或数据保持子系统114相结合, 或者,这样的显示设备也可以是外设显示设备。可以理解,此处所述的配置和/或方法在本质上示例性的,且这些具体实施例或示例不是限制性的,因为多个变体是可能。此处所描述的具体例程或方法可表示任何数量的处理策略中的一个或多个。由此,所示出的各个动作可以按所示顺序执行、并行地执行、 以其他顺序执行、或者在某些情况下省略。同样,上文所描述的过程的顺序也可以改变。本发明的主题包括各种过程、系统和配置的所有新颖和非显而易见的组合和子组合、和此处所公开的其它特征、功能、动作、和/或特性、以及其任何和全部等效物。
1权利要求
1.一种输出视频流的方法(50),所述方法包括从存储器中检索(5 显示数据的具有第一组显示参数的第一平面; 对显示数据的所述第一平面进行后处理(54),以调整所述第一组显示参数; 从存储器中检索(6 显示数据的具有第二组显示参数的第二平面; 独立于显示数据的所述第一平面,对显示数据的所述第二平面进行后处理(64); 将显示数据的所述第一平面与显示数据的所述第二平面混合(70),以形成混合的显示数据;以及输出(76)所述混合的显示数据。
2.如权利要求1所述的方法,其特征在于,后处理还包括将输入颜色空间转换独立地应用到显示数据的所述第一平面和显示数据的所述第二平面,以将帧缓冲器格式匹配到常见的颜色空间以便以后进行混合。
3.如权利要求1所述的方法,其特征在于,后处理还包括将逆向伽马校正独立地应用到显示数据的所述第一平面和显示数据的所述第二平面,以将经过伽马校正的内容转换为线性空间。
4.如权利要求1所述的方法,其特征在于,后处理包括分别使用第一视频缩放器和第二视频缩放器,来将显示数据的所述第一平面和显示数据的所述第二平面中的每一个的相应的分辨率更改为所期望的输出分辨率。
5.如权利要求1所述的方法,其特征在于,后处理还包括将输入颜色空间转换、逆向伽马校正、以及视频缩放器独立地应用到显示数据的所述第一平面和显示数据的所述第二平
6.如权利要求1所述的方法,其特征在于,所述第一平面包括应用程序生成的主要应用程序显示表面,并且所述第二平面包括用于定位在所述第一平面上方的计算系统的系统生成的主要系统显示器表面。
7.如权利要求1所述的方法,其特征在于,所述第一平面包括应用程序生成的主要应用程序显示表面,所述第二平面包括用于定位在所述第一平面上方的应用程序生成的覆盖。
8.如权利要求1所述的方法,其特征在于,所述第一平面包括计算系统的系统生成的主要系统显示器表面,其特征在于,所述第二平面包括用于定位在所述第一平面上方的系统生成的覆盖。
9.如权利要求1所述的方法,其特征在于,输出所述混合的显示数据包括向视频编码器输出所述混合的显示数据。
10.如权利要求1所述的方法,其特征在于,显示数据的所述第一平面包括左眼视角和右眼视角,其特征在于,显示数据的所述第二平面包括左眼视角和右眼视角,其特征在于, 将显示数据的所述第一平面与显示数据的所述第二平面混合包括将所述第一平面的所述左眼视角的缩放版本与所述第二平面的所述左眼视角的缩放版本混合,以及将所述第一平面的所述右眼视角的缩放版本与所述第二平面的所述右眼视角的缩放版本混合。
全文摘要
一种通过输出视频流的方法,提供了对显示数据的各平面的独立的处理。该方法包括从存储器中检索显示数据的具有第一组显示参数的第一平面,并对显示数据的第一平面进行后处理,以调整第一组显示参数。该方法还包括从存储器中检索显示数据的具有第二组显示参数的第二平面,并独立于显示数据的第一平面,对显示数据的第二平面进行后处理。该方法还包括将显示数据的第一平面与显示数据的第二平面混合,以形成混合的显示数据,并输出混合的显示数据。
文档编号G06F3/14GK102221984SQ201110170889
公开日2011年10月19日 申请日期2011年6月13日 优先权日2010年6月14日
发明者J·塔迪夫, M·S·格罗斯曼 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1