用于硬件加速媒体回放的独立分层内容的制作方法

文档序号:6365501阅读:180来源:国知局
专利名称:用于硬件加速媒体回放的独立分层内容的制作方法
技术领域
本公开总体上涉及媒体回放,并且更加具体地涉及高性能媒体回放。
背景技术
媒体回放引擎提供在ー个表示(presentation)中将诸如图像,音频,视频,ニ维(2D)和三维(3D)向量艺术 的富媒体要素与印刷工艺相组合的方式。一些播放器允许媒体类型的相互混合(例如重叠,处理以及混合的要素等等)。相互混合的要素的合成典型地通过在平台CPU上的软件中实现的算法来实现。然而,CPU合成会极其缓慢并且要求大量功率。

发明内容
本公开描述了促进对内容进行分层以用于高性能媒体回放的技术和结构。在一个实施例中,跨平台多媒体内容的表示可以通过媒体播放器控制。跨平台内容可以包括ニ维(2D)图形分量,三维(3D)图形分量,以及视频分量。可以将每ー个分量呈现为分离层,并且可以将每ー个分量彼此独立地呈现。所述多媒体播放器可以同步分离的呈现以用于表示。在一个实施例中,可以通过与执行所述多媒体播放器的硬件资源分离的硬件资源,执行所述分离层中的至少ー个分离层的呈现。可以合成每ー个分离层以用于显示。在一个实施例中,可以通过与执行所述多媒体播放器的硬件资源分离的硬件资源执行所述合成。


图I是根据ー些实施例对内容进行分层以用于高性能媒体回放的流程图。图2说明了对内容进行分层以用于高性能媒体回放的一个实施例的方框图。图3是根据一些实施例的多媒体播放器的事件模型的图。图4说明了可以在实施例中使用的示例计算机系统。尽管在这里以几个实施例的示例和说明性附图的方式描述了本公开,但是本领域的普通技术人员将意识到,本公开并不局限于所描述的实施例或者附图。应该理解,附图及对其的详细描述并非g在将本公开局限于所公开的特定形式,而是相反,本发明g在覆盖落入当前公开的精神和范围内的全部变型,等同物和替代物。这里使用的标题仅用于组织目的而并非意味着用于限制本描述的范围。如在整个该申请中使用的,在允许意义上(即意味着具有潜在可能)而非强制意义上(即意味着必须)使用“可以”ー词。类似地,词语“包括”、“包含”和“囊括”意味着包括但不局限干。
具体实施例方式在下面的详细描述中,阐述了各种具体细节以提供对请求保护的主题的全面理解。然而,本领域的普通技术人员将理解,可以在没有这些具体细节的情况下实践请求保护的主题。在其它实例中,没有详细描述本领域的普通技术人员将熟知的方法,装置或者系统,以不混淆请求保护的主題。按照对存储在特定装置或者专用计算设备或者平台的存储器内的ニ进制数字信号进行的算法或者操作的符号表示的形式表示下面详细描述的ー些部分。在该具体说明书的上下文中,术语“特定装置等等”包括通用计算机,一旦对其进行编程,该通用计算机可以执行遵照来自程序软件的指令的具体功能。算法描述或者符号表示是信号处理或者相关领域中的普通技术人员用于向该领域的其它技术人员传达其工作的本质的技术示例。这里认为算法通常为导致期望结果的操作或者类似信号处理的自治序列。在该上下文中,操作或者处理涉及物理量的物理操控。典型地,尽管不是必要的,这样的量可以采取能够被存储, 传输,组合,比较或者以其它方式操控的电或者磁信号的形式。已经证明,理论上出于公共用途的原因,将这样的信号指代为比特,数据,值,要素,符号,字符,项,数量,数字等等有时是方便的。然而,应该理解,要将这些或者类似项的全部与适当的物理量相关联并且只是方便的标签。除非以其它方式专门表述,通过下面的讨论显然的是,将意识到,在整个说明书中,使用诸如“处理”,“计算”,“算术计算(calculate) ”,“确定”等等的术语的讨论指代诸如专用计算机或者类似专用电子计算设备的特定装置的动作或者过程。因此,在该说明书的上下文中,专用计算机或者类似专用电子计算设备能够操控或者转换在专用计算机或者类似专用电子计算设备的存储器,寄存器,或者其它信息存储设备,传输设备,或者显示设备内典型地表示为物理上的电或者磁量的信号。如这里所使用的,“第一”,“第二”等等这些术语用作跟随其后的名词的标签,并且并不暗含任何类型的排序(例如空间,时间,逻辑等等)。例如,在具有八个处理元件或者核的处理器中,术语“第一”和“第二”处理元件可以用于指代八个处理元件中的任意两个。换句话说,“第一”和“第二”处理元件并不局限于逻辑处理元件O和I。如这里所使用的,术语“以......为基础”用于描述影响确定的一个或者多个因
素。该术语不排除会影响确定的附加因素。即,确定可以仅以那些因素或者至少部分地以那些因素为基础。考虑短语“以B为基础确定A”。尽管B可以是影响A的确定的因素,但是这样的短语不排除A的确定也以C为基础。在其它实例中,A可以仅以B为基础进行确定。在计算设备上执行的数字图像编辑应用可以用于操控,增强,变换,创建和呈现诸如向量图形,3D图形和视频的图像,图形和视频。根据这里描述的各种实施例,数字图像编辑应用可以用于呈现,修改和编辑这样的对象,并且可以使用诸如OpenGL,DirectX或者Direct3D的应用编程接ロ(API)。在一些实施例中,API可以为GPU可编程并且是基于着色器(shader-based)的。描述了用于呈现和合成分层内容以用于高性能的富媒体回放的方法和装置的各种实施例。一些实施例可以包括用于呈现和合成分层内容的装置。例如,一个或者多个呈现模块可以接收各种内容作为输入,并且在分离层中呈现内容中与其它类型独立的每ー个类型。合成模块可以在显示时将所述层合成到一起。在一些实施例中,呈现和合成模块可以通过存储在计算机可读存储介质中的并且可由计算装置的一个或者多个处理器(例如ー个或者多个CPU或者GPU)执行的程序指令来实现。如这里所描述的,计算机可读存储介质可以存储可由一个或者多个处理器执行的程序指令,以使计算装置执行接收各种内容,在分离层中呈现内容中与其它类型独立的每ー个类型,并且在显示时将所述层合成到一起。呈现和合成模块的其它实施例可以至少部分地通过硬件电路和/或例如存储在非易失性存储器中的固件来实现。现在转到图1,示出了用于对内容进行分层以利用硬件加速表示媒体的一个实施例。尽管出于容易理解的目的,按照特定顺序示出了方框,但是可以使用其它顺序。在ー些实施例中,图I的方法可以包括比所示出的更多(或者更少)方框。方框100-120可以自动执行或者可以接收用户输入。如在100处表明的,可以执行跨 平台多媒体内容的表示。在一个实施例中,可以驻留在计算设备上的多媒体播放器可以控制该表示。多媒体播放器可以例如在计算设备的中央处理単元(CPU)上执行。由于多媒体内容可以是平台独立的并且可以不需要任何专用硬件或者协议以表示该内容,因此该内容可以是跨平台的。跨平台多媒体内容可以包括ー个或者多个ニ维(2D)图形分量,一个或者多个三维(3D)图形分量,以及ー个或者多个视频分量。2D图形分量可以包括向量图形或者位形(例如,RGB像素数据)。如在110处表示的,可以将所述分量中的至少ー些独立呈现为分离的各个层。例如,可以将2D图形分量,3D图形分量,以及视频分量分别呈现为分离层。在该示例中,内容层可以包括视频层,3D向量图形层,以及2D图形层。可以彼此独立地呈现每ー个分量。在该上下文中,独立呈现意味着对于每ー个分量的呈现可以来自分离的源,诸如分离的硬件资源,并且不在对于内容的不同类型的层之间执行软件合成操作。例如,多媒体播放器可以在诸如中央处理单元(CPU)的ー个硬件资源上执行。也可以将该表示的ー个或者多个2D图形分量在CPU上呈现。可以将相同表示的ー个或者多个3D图形分量在诸如图形处理单元(GPU)的分离硬件资源上呈现。该表示的一个或者多个视频分量可以由诸如一个或者多个硬件视频解码器的其它分离的硬件资源呈现。可以将所呈现的2D图形分量,所呈现的3D图形分量,以及所呈现的视频分量分别作为分离层提供到将所述层合成到一起以用于显示的硬件资源。将所述层合成到一起以用于显示的硬件资源可以是分离的硬件资源而不是执行该多媒体播放器的CPU。例如,可以合成所述层以用于在GPU上显示,所述GPU可以是与呈现3D图形分量的GPU相同或者不同的GPU。可以在诸如执行多媒体播放器的CPU之类的CPU上的软件中对2D图形分量执行诸如混合,过滤,旋转等等的软件合成操作。然而,可以将对于3D和视频分量的独立呈现的层排除在这样的操作之外。该排除允许独立干与CPU分离的硬件资源来呈现3D和视频层,并且避免将所呈现的3D和视频分量拷贝到CPU存储器中以执行软件合成操作。通过独立地呈现3D和视频层以使得将其从CPU上的软件合成操作中排除,能够确保多媒体内容的表示利用对于3D和/或视频分量的硬件加速。可以从分离的硬件呈现资源向将所述层合成到一起以用于显示的硬件资源直接发送这些独立呈现的层。然而,在多媒体播放器的控制下,仍然发生每ー个层的呈现。换句话说,在一些实施例中,所呈现的3D和视频层本身不通过执行多媒体播放器的CPU进行操作,但是其呈现仍然由多媒体播放器指导以使得通过多媒体播放器同步多媒体内容的整体表示。例如,在CPU上执行的多媒体播放器可以使指令发送到诸如视频解码器和GPU的其它硬件资源,以触发或者以其它方式控制各自视频,3D或者2D分量的呈现。按照这种方式,可以仍然与其自身的定时器独立地,即异步,更新每ー个层。然而,可以通过多媒体播放器同步各种分量的呈现以用于表示。例如,可以在执行用于表示的脚本的多媒体播放器的控制下显示包括2D图形,3D图形和视频的多媒体表示。可以在脚本中指定每ー个分量在该表示的显示中表示的整体时序和位置,并且通过多媒体播放器控制。换句话说,可以在脚本中指定对于每ー个分量的“时间”和“地点”并且由多媒体播放器控制。然而,可以独立更新所述分量中的一个或者多个。例如,可以在分离的视频解码器硬件资源的控制下,以独立的帧速率更新视频分量。类似地,可以在各自硬件资源的控制下,以不同的速率在相同的表示中分别彼此独立地更新2D和3D图形分量。尽管可以将多媒体内容中分量的不同类型中的至少ー些排除在软件合成操作之夕卜,但是所述分量的全部仍然可以參与多媒体播放器的事件模型。在一个实施例中,可以通过与执行多媒体播放器的硬件资源(例如CPU)分离的硬件资源(例如处理器,GPU,视频解码器等等)执行分离层中的至少ー个分离层的呈现。进而,分层模型可以允许对于给定层、在没有交互的情况下,独立使用不同的硬件部件。在一个实施例中,可以对于所述层限定如何对其进行合成的固定深度。例如,视频层可以是底部 深度层,3D图形层可以是中间/中级深度层,并且2D图形层可以是顶部深度层。在ー个实施例中,可以利用针对透明度的阿尔法值呈现ー个或者多个层。在一个实施例中,视频层可以包括硬件加速或者硬件解码的视频。可以将视频层呈现为底部层以用于表示。在一些实施例中,可以通过专用视频解码器硬件资源呈现视频层。例如,可以使用会完全驱动视频层的专用硬件视频解码芯片或者GPU来呈现视频。这可以允许视频从解码到表示的完全GPU加速。在一个实施例中,可以使用加速编码解码器(例如H. 264)对视频内容进行编码。使用加速编码解码器对视频进行编码可以促进从视频解码到呈现的完全GPU加速。结果,如下面在方框120处讨论的,回读(即,从GPU向中央处理単元(CPU)发送数据)对于合成视频帧可以不是必要的。在一些实施例中,硬件解码器可以不解码矩形到矩形(rectangular to rectangular)视频或者需要缩放或者旋转的视频。例如,多媒体播放器可以对于2D图形分量应用软件控制的混合,过滤或者旋转功能。可以将视频分量排除在这样的操作之外。而且,硬件解码器可以进ー步跳过否则将要求在CPU中使用软件的操作。在一个实施例中,可以在运行时间或者显示时间之前预呈现视频分量。此外,视频层可以包括多个视频子层。然而,在一些实施例中,一次仅可以合成多个视频中的一个视频(例如在移动设备上)。多媒体内容可以包括多于ー个视频分量,每一个视频分量可以呈现至其自身的视频层中。因而,可以呈现多个视频层。进而,实际视频会占据或者不会占据完全视频层。在一个实施例中,由多媒体播放器支持的API不会表示显示列表内的视频帧,而是会表示位于通过GPU染色的级后面的纹理内的视频帧。这会允许API直接在屏幕上对在图形卡存储器上可获得的内容进行染色。在一个实施例中,3D向量图形层可以包括加速或者未加速的3D图形。可以将3D图形层呈现为中间层以用于表示,位于视频层上面以及2D图形层下面。在一些实施例中,硬件可以允许3D图形层位于视频层后面。在这样的实施例中,由多媒体播放器支持的API可以支持将3D图形层放置在视频层后面。对于多媒体内容层的不同类型要求固定的层深度顺序可以促进利用用于这样的层的呈现和合成的分离硬件资源的优点。可以不在执行播放器的CPU上的软件中而是在根据对于所述层的限定的固定深度顺序的分离硬件资源中执行对所述层进行合成。然而,对于层合成具有更先进硬件资源的其它实施例可以支持各种层深度排序。
与视频层类似,可以使用诸如3D图形卡或者GPU的专用硬件代替CPU上的软件来呈现3D图形层。这样,就算真的有,回读在合成之前也可能不是必需的。在一个实施例中,可以使用相同的基础设施而不将视频呈现为3D图形或2D图形。与视频的情况相同,3D图形可以占据或者不占据完全3D图形层。在一些实施例中,可以在运行时通过CPU数据动态地驱动3D图形层,即,可以不预呈现3D图形层。在可获得吋,3D图形层和视频层二者都可以使用硬件加速的位块传送(blitting)。与视频巾贞的情况相同,API可以表示位于经过GPU染色的级后面的纹理内的3D缓冲器。因而,视频帧和3D分量可以不是实际的显示对象以使得可以不在API中应用旋转,混合模式,过滤器和其它效果。在一个实施例中,可以将ー个或者多个3D图形分量呈现为ー个或者多个3D图形层。在一个实施例中,如果没有充足的分离硬件资源可获得,可能会不能够使用非常快的CPU光栅器(rasterizer)在CPU上呈现视频层和/或3D图形层。因此,多媒体播放器可以检测特定计算设备上的可获得硬件,并且根据可获得硬件呈现各种内容分量。在一个实施例中,2D图形层可以包括规则的向量图形或者位形,例如RGB数据等等。在一些实施例中,可以将ー个或者多个2D图形分量呈现为一个或者多个分离的2D 图形层。在其它实施例中,可以将全部2D图形分量发送到位于相同呈现层中的合成硬件资源。在一个实施例中,2D图形层可以是顶部层,位于3D图形和视频层上面。进而,2D图形层可以包括针对透明度的阿尔法值。在一些实施例中,2D图形层可以是从CPU软件光栅器呈现的软件层。在一些实施例中,2D图形层可以在运行时由CPU数据动态地驱动,但是在不同的硬件资源(例如GPU)上呈现。在一个实施例中,多媒体播放器可以对2D图形分量应用一个或者多个软件控制的混合,过滤或者旋转功能。在一个实施例中,各种内容层可以异步地更新。例如,视频内容可以以20帧每秒(fps)更新,而向量层(例如小标题层)可以每2秒钟进行更新。通过允许视频以其自身的帧速率进行播放,通过硬件进行解码并且以合适的帧速率进行表示,同时诸如3D要素的其它要素可以被独立更新并且以较高速率表示,异步更新可以避免同步问题。然而,仍然在多媒体播放器的指导下表示全部分量以使得在给定时刻t,全部层表示正确或者合适的状态(例如,如在用于多媒体表示的脚本中限定)。因而,可以以合适的独立速率进行呈现,而多媒体播放器可以提供全局时间控制以提供多媒体表示的正确的整体显示。在图I中的120处,可以对每一个分离层进行合成以用于显示。可以通过与执行多媒体播放器的硬件资源分离的硬件资源执行合成。例如,在一个实施例中,中央处理单元(CPU)可以执行多媒体播放器而图形处理单元(GPU)可以执行合成。可以在显示时将多个独立呈现的层合成到一起。为此,可以向显示器提供该合成。在一些实施例中,合成每ー个分离层以用于显示可以包括以固定顺序合成所述层。例如,在一个实施例中,可以按照从底部到顶部的顺序合成视频层,3D图形层和2D图形层。在一个实施例中,可以通过GPU执行合成。GPU可以是用于执行内容层的合成的硬件的专用片段或者可以将合成构建到呈现例如3D图形层的内容层之ー的GPU。可以利用从底部到顶部层的阿尔法混合来执行合成以使得先前的独立层可以交互。对于所述层具有固定深度顺序可以促进在诸如GPU的分离硬件资源中合成,而不必在CPU中对全部层进行操作。在一个实施例中,在显示时,呈现视频的硬件可以将视频逐帧地馈送到GPU以与其它层合成。按照这种方式,通过帧速率或者通过在流之间切换,视频可以是灵活的。在一些实施例中,GPU可以包括一个或者多个缓冲器以及执行混合的硬件的其它片段。在一些实施例中,可以经由多媒体播放器的API按照指定来执行混合。如上所述,可以按照呈现来异步或者独立更新所述层。这可以允许正确地显示全部层而与更新哪ー个层无关。在一些实施例中,在将3D内容移动到最终显示器时,该3D内容可以利用GPU抗锯齿(anti-aliasing)。多媒体播放器可以支持来自用户的交互以及用于表示的其它事件。在一个实施例中,集成执行环境可以用于控 制内容层。该环境可以是接收输入并且执行脚本(例如ActionScript脚本)的脚本环境,以对所述层中的ー个层执行动作。因此,各种内容分量可以分别參与播放器的事件模型。可以将事件附接到创建可以在编程环境的动作脚本中具有要素或者相对应对象的对象的内容层之一。可以通过集成执行环境接收输入以修改3D图形层或者视频层的对象的要素(例如尺寸,位置等等)。在一个实施例中,视频和3D图形对象可以不參加脚本中的合成操作(例如过滤器,与其它层混合,旋转等等)。然而,2D图形对象可以具有应用到其的全部修改和合成操作。在一些实施例中,可以将事件附接到3D图形,可以向其分配集成执行环境以对事件做出响应。修改事件会影响整体媒体回放的流。通过创建不同的层,可以以执行呈现的硬件的接近本地性能来呈现每一个层。进而,与其它层独立地呈现所述层促进跨平台能力。高性能呈现可以利用例如位于GPU或者其它专用硬件中的硬件加速。在这样做时,呈现和合成可以不严重依赖于软件,这会产生更大的速度和降低的功率使用。因而,具有不太强劲的CPU但是具有充分视频解码能力的设备(例如电视,机顶盒,移动设备等等)可以以较高帧速率呈现包括3D的视频。图2说明了用于对内容进行分层以用于高性能媒体回放的系统的ー个实施例的方框图。在所说明的实施例中,可以通过诸如ー个或者多个视频源202,ー个或者多个3D图形源204,以及ー个或者多个向量或者位形源(2D) 206的不同硬件资源独立呈现不同的内容分量。一个或者多个视频源202可以将用于呈现视频分量的硬件解码器分离为ー个或者多个分离的视频层。ー个或者多个3D图形源204可以是用于将3D图形分量呈现为一个或者多个分离层的诸如ー个或者多个GPU的ー个或者多个硬件资源。可以通过一个或者多个分离的图形呈现源206呈现2D图形分量。可以将每ー个独立呈现的层供应到包括合成模块210的硬件资源以合成所述层用于显示。在一些实施例中,包括合成模块210的硬件资源可以是包括视频源202,3D图形源204和/或2D图形源206中的一个或者多个的相同硬件资源。例如,可以在也呈现ー个或者多个3D或者2D图形分量的GPU中合成所述层。类似地,一个或者多个向量或者位形源206包括也可以执行播放器208的CPU 212。可以在诸如GPU或者分离图形卡的不同硬件资源中呈现ー个或者多个2D图形分量。CPU 212可以执行多媒体播放器208,这可以包括用于控制多媒体表示的流的脚本引擎。播放器208也可以支持与多媒体表示的各种分量的事件模型交互以及多媒体表示的各种分量之间的事件模型交互。多媒体播放器208可以检测多媒体播放器208和CPU 212驻留其中的设备的硬件能力。例如,多媒体播放器208可以检测3D图形卡,视频解码器,GPU和CPU。在这样的示例中,可以通过CPU呈现2D图形分量,通过3D图形卡呈现3D图形分量,通过视频解码器呈现视频分量,并且通过GPU合成所呈现的层。在另ー示例中,多媒体播放器208可以检测GPU和CPU。GPU可以执行合成而CPU可以呈现所述层中的一些或者全部。或者GPU可以执行合成,并且此外,可以呈现视频分量或者3D图形分量。通常,设计播放器208以检测和利用可获得的硬件资源以尽可能多地呈现所述独立合成的层,以利用在给定设备中支持的硬件加速(例如卸载呈现以及来自CPU的合成)。图3是使用支持用于包括表示中的多媒体内容的不同类型的API的脚本302限定的多媒体表示300的图,所述不同类型包括2D图形,3D图形和视频。根据ー些实施例,脚本也利用多媒体播放器的事件模型以考虑与不同内容对象的交互以及不同内容对象之间的交互。图3说明了可以包括脚本302的表示300。脚本302可以包括一个或者多个视频层对象304,ー个或者多个3D层对象306,以及ー个或者多个2D层对象308。如在图I-图2中描述的,可以独立呈现的每ー个内容对象可以參与多媒体播放器的事件模型。因此,可以利用对象304-308在脚本302中表示每ー个层。在一些实施例中,视频层对象304和3D层对象306可以參与事件模型,然而,它们不会參加脚本302中的操作,例如过滤,与其它层混合,或者旋转。视频层对象304和3D层对象306可以參加尺寸调整和定位操作以及分配以对事件做出响应。2D层对象308可以參加任何脚本302操作。因此,脚本302可以将事件附接到各种内容对象,这会便于对于系统的整体交互事件模型。事件可以影响表示的整个回放的流。 示例系统图4说明了根据这里描述的各种呈现和合成技术的多媒体播放器通过其可以表示多媒体表示的设备。该设备可以与各种其它设备交互。一种这样的设备是诸如图4说明的计算机系统500。在不同实施例中,所述设备可以是各种类型设备中的任意ー个,包括但不局限干,个人计算机系统,桌面计算机,便携式电脑,笔记本,或者上网本计算机,主机计算机系统,手持计算机,工作站,网络计算机,照相机,机顶盒,移动设备,个人数字助理,智能电话,客户端设备,视频游戏控制台,手持视频游戏设备,应用服务器,存储设备,诸如开关,调制解调器,路由器之类的外围设备,或者总体来说是任何类型的计算或者电子设备。在所说明的实施例中,计算机系统500包括一个或者多个硬件资源510和550,它们中的至少ー些可以经由输入/输出(I/o)接ロ 530耦合到系统存储器520。硬件资源510和550可以包括诸如CPU和/或GPU的一个或者多个处理器,一个或者多个视频解码器,和/或其它呈现或者合成硬件。计算机系统500进ー步包括耦合到I/O接ロ 530的网络接ロ540,以及诸如光标控制设备560,键盘570和显不器580的一个或者多个输入/输出设备。在一些实施例中,预期可以使用计算机系统500的单个实例来实现实施例,而在其它实施例中,可以配置多个这样的系统,或者构成计算机系统500的多个节点以主控实施例的不同部分或者实例。例如,在一个实施例中,可以经由与计算机系统500中实现其它元件的那些节点不同的一个或者多个节点实现ー些元件。在各种实施例中,计算机系统500可以是包括一个处理器的单处理器系统,或者是包括几个处理器(例如两个,四个,八个或者另ー适合数量)的多处理器系统。处理器可以是能够执行指令的任何适合的处理器。例如,在各种实施例中,处理器可以是实现诸如x86, PowerPC, SPARC或者MIPS指令集架构(ISA)的各种ISA中的任意一个或者任何其它适合的ISA的通用处理器或者嵌入式处理器。在多处理器系统中,每ー个处理器可以共同地,但是不是必需地,实现相同的ISA。在一些实施例中,至少ー个处理器可以是GPU。可以认为GPU是用于个人计算机,工作站,游戏控制台或者其它计算或电子设备的专用图形呈现设备。现代GPU可以在操控和显示计算机图形方面非常有效,并且其高度并行的结构可以使其比用于大量复杂图形算法的典型CPU更加有效。例如,图形处理器可以按照ー种方式实现多个图形图元操作,这种方式使得执行它们比使用主机中央处理单元(CPU)向屏幕直接画图更加快速。在各种实施例中,这里公开的图形处理方法可以至少部分地通过配置用于在这样的GPU中的ー个GPU上执行,或者在这样的GTO中的两个或者更多GPU上并行执行,的程序指令来实现。GPU可以实现允许编程人员激活GPU的功能性的ー个或者多个API。合适的GPU可以从诸如NVIDIA公司,ATI技术(AMD)以及其它供应商在商业上获得。可以按照多种不同的物理形式实现诸如硬件资源550中的一个或者多个的GPU。例如,GPU可以采取专用图形卡,集成图形方案和/或混合方案的形式。专用图形卡可以是3D图形卡。GPU可以利用诸如PCI Express Graphics或者加速图形端ロ(AGP)的扩展插槽与母板对接,并且因而可以相对容易地更换或者升级,假设母板能够支持升级。然而,专用GPU不必是可移除的,也不必以标准形式与母板对接。术语“专用”指代硬件图形方案可以具有专用于图形使用的RAM的事实,而不指代该图形方案是否为可移除或者可更换。由于尺寸和重量局限,用于便携式计算机的专用GPU可以经过非标准并且通常是私有的插槽进行对接。仍然可以将这样的端ロ认为是AGP或者PCI express,即使它们在物理上不能彼此互換。 集成图形方案或者共享图形方案是利用计算机系统RAM的一部分而不是专用图形存储器的图形处理器。例如,现代桌面母板通常包括集成图形方案并且具有可获得的扩展插槽以随后添加专用图形卡。由于GPU会是存储器极度密集的,因此集成方案由于其不具有专用视频存储器而发现其自身竞争优于具有CPU的已经很慢的系统RAM。例如,系统RAM会经历2GB/s和8GB/s之间的带宽,而大多数专用GPU享受从15GB/s到30GB/s的带宽。混合方案也可以与系统存储器共享存储器,但是会具有比离散或者专用图形卡更小数量的板上存储器以补偿系统RAM的高等待时间。在图像处理单元和计算机系统500的剰余部分之间通信的数据可以经过图形卡插槽或者诸如图5的I/O接ロ 530的其它接ロ行迸。注意到,在各种实施例中,可以配置程序指令525以将图形应用(例如这里描述的多媒体播放器)实现为单机应用,或者实现为另ー图形应用或者图形库的模块。例如,在一个实施例中,可以配置程序指令525以实现诸如染色,编辑,发布,拍照,游戏,动画和/或其它应用的图形应用,并且可以配置程序指令525以提供这里描述的功能性。在另ー实施例中,可以配置程序指令525以在由在GPU和/或其它硬件资源510或者550上执行的另ー图形应用提供的一个或者多个功能或者模块(例如呈现模块或者合成模块)中实现这里描述的技术。这些模块可以在CPU和/或GPU中的一个或者多个上执行以使计算机系统500提供这里描述的功能性。可以使用任何期望的编程语言,脚本语言,或者编程语言和/或脚本语言的组合,例如C,C++,C#,Java , Perl等等,在各种实施例中实现多媒体播放器。例如,在一个实施例中,多媒体播放器可以是基于JAVA的,而在另一实施例中,可以使用C或者C++编程语言实现该多媒体播放器。在其它实施例中,可以使用专门用于开发通过诸如GPU的特定图形硬件执行的程序的专用图形语言实现多媒体播放器。此外,多媒体播放器利用专门分配用于由图形处理器使用的存储器,例如位于包括图形处理器的图形板上的存储器。在各种实施例中,也可以配置程序指令525以呈现图像,并且在一个或者多个显示器上将其表示为操作的输出和/或以在存储器520和/或外部存储设备中存储数据。可以配置系统存储器520以存储可由处理器510访问的程序指令和/或数据。在各种实施例中,可以使用诸如静态随机访问存储器(SRAM),同步动态RAM(SDRAM),非易失性/闪存类型存储器,或者存储器的任意其它类型的适合存储器技术实现系统存储器520。在所说明的实施例中,将实现诸如在上面对于多媒体播放器的实施例中描述的期望功能,呈现模块和/或合成模块的程序指令和数据表示为分别存储在系统存储器520内作为程序指令525以及数据存储535内。在其它实施例中,可以在计算机可访问介质的不同类型上或者在与系统存储器520或者计算机系统500分离的类似介质上接收,发送或者存储程序指令和/或数据。通常来说,计算机可访问介质可以包括诸如磁或者光介质的存储介质或者存储器介质,例如经由I/O接ロ 530耦合到计算机系统500的磁盘或者⑶/DVD-ROM。可以通过传输介质或者诸如电,电磁或者数字信号的信号传输经由计算机可访问介质存储的程序指令和数据,该传输介质或者信号可以经由诸如网络和/或无线链路的通信介质传送,例如可以经由网络接ロ 540实现。在一个实施例中,可以配置I/O接ロ 530以协调处理器510,系统存储器520以及包括网络接ロ 540或者其它外围接ロ的设备中的任意外围设备之间的I/O流量。在ー些实 施例中,I/O接ロ 530可以执行任意必需的协议,时序或者其它数据变换以将来自一个部件(例如系统存储器520)的数据信号转换为适合于另一部件(例如处理器510)使用的格式。在一些实施例中,I/O接ロ 530可以包括对于经过各种类型的外围总线附接的设备的支持,例如以外围部件互连(PCI)总线标准或者通用串行总线(USB)标准的变体为例。在ー些实施例中,可以将I/O接ロ 530的功能划分为两个或者更多分离的部件,例如以北桥和南桥为例。此外,在一些实施例中,可以将诸如到系统存储器520的接ロ的I/O接ロ 530的功能中的一些或者全部直接结合到处理器510中。可以配置网络接ロ 540以允许数据在计算机系统500以及诸如其它计算机系统的附接到网络的其它设备之间交换,或者在计算机系统500的节点之间交換。在各种实施例中,网络接ロ 540可以支持经由例如以以太网网络的任何适合类型为例的有线或者无线通用数据网络;经由诸如模拟语音网络或者数字光纤通信网络的电信/电话网络;经由诸如Fibre Channel SAN的存储区域网络,或者经由网络和/或协议的任何其它类型,的通信。在一些实施例中,硬件资源550可以支持一个或者多个显示終端,键盘,键区,触摸板,扫描设备,语音或者光学识别设备,或者适于通过ー个或者多个计算机系统500输入或者获取数据的任何其它设备。多个输入/输出设备可以存在于计算机系统500中或者可以分布在计算机系统500的各种节点上。在一些实施例中,类似的输入/输出设备可以与计算机系统500分离并且可以经过有线或者无线连接,诸如通过网络接ロ 540,与计算机系统500的一个或者多个节点交互。如图4所示,存储器520可以包括配置以实现这里描述的实施例的程序指令525,以及包括可由程序指令525访问的各种数据的数据存储535。在一个实施例中,程序指令525可以包括如在上面的附图中说明的实施例的软件要素。数据存储535可以包括可以在实施例中使用的数据。在其它实施例中,可以包括其它或者不同的软件要素和数据。本领域的普通技术人员将意识到,计算机系统500只是说明性的并且并不g在限制这里描述的呈现模块和合成模块的范围。具体地说,计算机系统和设备可以包括能够执行所表明的功能的硬件或者软件的任意組合,包括计算机,个人计算机系统,桌面计算机,便携式电脑,笔记本,或者上网本计算机,主机计算机系统,手持计算机,工作站,网络计算机,照相机,机顶盒,移动设备,智能电话,平板计算设备,网络设备,互联网仪器,PDA,无线电话,寻呼机,客户端设备,视频游戏控制台,手持视频游戏设备,应用服务器,存储设备,诸如开关,调制解调器,路由器的外围设备,或者通常为计算或者电子设备的任意类型。计算机系统500也可以连接到没有说明的其它设备,或者代替地可以作为单机系统操作。此外,由所说明的部件提供的功能性在一些实施例中可以组合在更少的部件中或者分布在附加的部件中。类似地,在一些实施例中,可以不提供所说明的部件中的一些的功能性和/或可获得其它附加的功能性。本领域的普通技术人员也将意识到,尽管将各种项目说明为在被使用的同时存储在存储器中或者存储设备上,但是出于存储器管理和数据一致性目的,可以在存储器和其它存储设备之间传输这些项目或者其一部分。可选地,在其它实施例中,软件分量中的ー些或者全部可以在另一设备上的存储器中执行并且经由计算机间通信与所说明的计算机系统通信。所述系统分量或者数据结构中的一些或者全部也可以存储(例如作为指令或者结构化数据)在计算机可访问介质或者便携式制品上,以由其各种示例在上面已经描述的合适的驱动读取。在一些实施例中,可以经由传输介质或者经由诸如网络和/或无线链路的通信介质传送的诸如电,电磁,或者数字信号的信号将存储在与计算机系统500分离的计 算机可访问介质上的指令传输到计算机系统500。各种实施例可以进一歩包括在计算机可访问介质上接收,发送或者存储根据前面描述所实现的指令和/或数据。因此,本公开可以利用其它计算机系统配置实践。各种实施例可以进一歩包括在计算机可访问介质上接收,发送或者存储根据前面的描述实现的指令和/或数据。通常来说,计算机可访问介质可以包括诸如以磁盘或者DVD/CD-R0M为例的磁或者光介质的存储介质或者存储器介质,诸如RAM(例如SDRAM,DDR,RDRAM,SRAM等等),ROM等等的易失性或者非易失性介质,以及诸如经由例如网络和/或无线链路的通信介质传送的电,电磁,或者数字信号的传输介质或者信号。附图中说明的以及这里描述的各种方法代表方法的示例实施例。所述方法可以在软件,硬件或者其组合中实现。可以改变方法的顺序,并且可以对各种元素进行添加,重新排序,组合,省略,修改等等。对于得益于本公开的本领域的普通技术人员来说显见的是,可以进行各种变型和改变。本公开g在覆盖全部这样的变型和改变,并且因此,g在以说明性意义而非限制性意义来考虑上面的描述。
权利要求
1.一种方法,包括 通过多媒体播放器控制跨平台多媒体内容的表示,其中所述多媒体内容包括二维(2D)图形分量,三维(3D)图形分量,以及视频分量; 将所述2D图形分量,所述3D图形分量,以及所述视频分量分别呈现为分离层; 其中分别彼此独立地呈现所述2D图形分量,所述3D图形分量,以及所述视频分量; 其中通过所述多媒体播放器同步所述呈现以用于所述表示;并且其中通过与执行所述多媒体播放器的硬件资源分离的硬件资源执行对于所述分离层中的至少一个分离层的所述呈现;以及 合成每一个分离层以用于显示,其中通过与执行所述多媒体播放器的所述硬件资源分离的硬件资源执行所述合成。
2.如权利要求I的方法,其中在计算机上执行所述控制,所述呈现以及所述合成,其中所述多媒体播放器在所述计算机的中央处理单元(CPU)上执行,并且所述合成在所述计算机的图形处理单元(GPU)上执行。
3.如权利要求2的方法,其中所述呈现所述2D图形分量层在所述CPU上执行。
4.如权利要求2的方法,其中所述呈现所述3D图形分量层在所述GPU上执行。
5.如权利要求I的方法,其中所述呈现所述视频分量层通过专用视频解码器硬件资源执行。
6.如权利要求I的方法,其中所述多媒体内容包括多于一个2D图形分量,3D图形分量,或者视频分量,并且其中将多于一个分量分别独立呈现为另一分离层。
7.如权利要求I的方法,其中所述合成每一个分离层以用于显示包括按照固定顺序合成所述层。
8.如权利要求I的方法,进一步包括所述多媒体播放器对于所述2D图形分量应用一个或者多个软件控制的混合,过滤或者旋转功能,其中所述3D图形和视频分量被排除在这样的操作之外。
9.如权利要求I的方法,进一步包括每一个分量参与所述多媒体播放器的事件模型。
10.如权利要求I的方法,其中所述2D图形分量包括向量或者位形。
11.一种存储程序指令的非暂态计算机可读存储介质,其中所述程序指令为计算机可执行以实现用于下面的多媒体播放器 控制跨平台多媒体内容的表示,其中所述多媒体内容包括二维(2D)图形分量,三维(3D)图形分量,以及视频分量; 指导将所述2D图形分量,所述3D图形分量,以及所述视频分量分别呈现为分离层; 其中分别彼此独立地呈现所述2D图形分量,所述3D图形分量,以及所述视频分量;并且 其中通过与执行所述多媒体播放器的硬件资源分离的硬件资源执行对于所述分离层中的至少一个分离层的所述呈现;以及 指导每一个分离层的合成以用于显示,其中通过与执行所述多媒体播放器的所述硬件资源分离的硬件资源执行所述合成。
12.如权利要求11的非暂态计算机可读存储介质,其中所述多媒体播放器在计算机的中央处理单元(CPU)上执行,并且所述合成在所述计算机的图形处理单元(GPU)上执行。
13.如权利要求12的非暂态计算机可读存储介质,其中呈现所述2D图形分量层在所述CPU上执行。
14.如权利要求12的非暂态计算机可读存储介质,其中呈现所述3D图形分量层在所述GPU上执行。
15.如权利要求11的非暂态计算机可读存储介质,其中呈现所述视频分量层通过专用视频解码器硬件资源执行。
16.如权利要求11的非暂态计算机可读存储介质,其中所述多媒体内容包括多于一个2D图形分量,3D图形分量,或者视频分量,并且其中将多于一个分量分别独立呈现为另一分离层。
17.如权利要求11的非暂态计算机可读存储介质,其中所述合成每一个分离层以用于显示包括按照固定顺序合成所述层。
18.如权利要求11的非暂态计算机可读存储介质,其中所述程序指令进一步为计算机可执行以对于所述2D图形分量应用一个或者多个软件控制的混合,过滤或者旋转功能,其中所述3D图形和视频分量被排除在这样的操作之外。
19.如权利要求11的非暂态计算机可读存储介质,其中所述程序指令进一步为计算机可执行以实现所述多媒体播放器的事件模型; 其中所述2D图形分量,3D图形分量,以及所述视频分量全部参与所述事件模型。
20.如权利要求11的非暂态计算机可读存储介质,其中所述2D图形分量包括向量或者位形。
21.—种系统,包括 配置以进行下面操作的多个硬件资源 实现用于控制跨平台多媒体内容的表示的多媒体播放器,其中所述多媒体内容包括二维(2D)图形分量,三维(3D)图形分量,以及视频分量; 将所述2D图形分量,所述3D图形分量,以及所述视频分量分别呈现为分离层; 其中分别彼此独立地呈现所述2D图形分量,所述3D图形分量,以及所述视频分量; 其中通过所述多媒体播放器同步所述呈现以用于所述表示;并且 其中对于所述分离层中的至少一个分离层的所述呈现通过所述多个硬件资源中与执行所述多媒体播放器的一个硬件资源不同的一个硬件资源执行;以及 合成每一个分离层以用于显示,其中所述合成通过所述多个硬件资源中与执行所述多媒体播放器的一个硬件资源不同的一个硬件资源执行。
22.如权利要求21的系统,其中所述多个硬件资源中的一个硬件资源为被配置以执行程序指令以实现所述多媒体播放器的中央处理单元(CPU),并且所述多个硬件资源中的另一个硬件资源为被配置以合成每一个分离层以用于显示的图形处理单元(GPU)。
23.如权利要求22的系统,其中所述CPU被进一步配置以执行程序指令以呈现所述2D图形分量层。
24.如权利要求22的系统,其中所述GPU被配置以呈现所述3D图形分量层。
25.如权利要求21的系统,其中所述多个硬件资源中的一个硬件资源为专用视频解码器,其中所述专用视频解码器被配置以呈现所述视频分量层。
26.如权利要求21的系统,其中所述多媒体内容包括多于一个2D图形分量,3D图形分量,或者视频分量,并且其中所述多个硬件资源中的一个或者多个被配置以将多于一个分量分别独立呈现为另一分离层。
27.如权利要求21的系统,其中合成每一个分离层以用于显示包括按照固定顺序合成所述层。
28.如权利要求21的系统,其中所述多媒体播放器被配置以对于所述2D图形分量应用一个或者多个软件控制的混合,过滤或者旋转功能,其中所述3D图形和视频分量被排除在这样的操作之外。
29.如权利要求21的系统,其中每一个分量被配置以参与所述多媒体播放器的事件模型。
30.如权利要求21的系统,其中所述2D图形分量包括向量或者位形。
全文摘要
本发明涉及用于硬件加速媒体回放的独立分层内容。具体地,可以通过媒体播放器控制跨平台多媒体内容的表示。跨平台内容可以包括二维(2D)图形分量,三维(3D)图形分量,以及视频分量。可以将每一个分量呈现为分离层,并且可以彼此独立地呈现每一个分量。所述多媒体播放器可以同步所述分离的呈现以用于表示。在一个实施例中,可以通过与执行所述多媒体播放器的硬件资源分离的硬件资源执行所述分离层中的至少一个分离层的呈现。可以合成每一个分离层用于显示。在一个实施例中,可以通过与执行所述多媒体播放器的硬件资源分离的硬件资源执行所述合成。
文档编号G06T1/00GK102737358SQ20121004870
公开日2012年10月17日 申请日期2012年2月27日 优先权日2011年2月25日
发明者B·G·阿姆布里, D·A·特里斯特拉姆, L·B·托马森, S·马克特慕伊勒, T·宇罗 申请人:奥多比公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1