媒体工作负荷调度器的制造方法

文档序号:8003541阅读:320来源:国知局
媒体工作负荷调度器的制造方法
【专利摘要】本发明涉及媒体工作负荷调度器,公开了用于调度媒体工作负荷的方法与系统。该方法包括建模媒体工作负荷的特征。可确定媒体工作负荷的GPU利用率和存储器带宽。此外,通过修改媒体工作负荷的特征,从而调节GPU利用率和存储器带宽,可调度媒体工作负荷。
【专利说明】媒体工作负荷调度器
【技术领域】
[0001]本发明一般地涉及调节工作负荷。更特定地,本发明涉及在图形处理单元(GPU)上调节媒体工作负荷。
【背景技术】
[0002]媒体工作负荷可相对较大且可完全使用GPU时间和存储器带宽。媒体工作负荷包括由来自电子设备的媒体组件(诸如摄像头或视频播放器)的媒体应用所获得的一个或多个数据流。如此处所使用的,媒体是指由GPU处理的任何数据。例如,平板和智能电话可包含两个或更多的摄像头从而支持视频捕捉,其中有至少一个前向和一个后向摄像头。可同时使用这些摄像头。每一个摄像头具有其自身的数据流,而每一个数据流的处理包括编码和解码这些数据流。在各示例中,计算设备可被用于有多个参与方参加的视频会议,每一个参与方具有被编码和解码的自己的数据流。
【专利附图】

【附图说明】
[0003]图1是根据各实施例的,可被用于调度工作负荷的计算设备的框图;
[0004]图2是根据各实施例的,可被用于调度媒体工作负荷的系统的示意图;
[0005]图3是示出根据各实施例的,用于调度媒体工作负荷的方法的过程流程图;
[0006]图4A是示出根据各实施例的,用于调度媒体工作负荷的方法的过程流程图;
[0007]图4B是示出根据各实施例的,用于调节特征的方法的过程流程图;
[0008]图5是示出根据各实施例的,存储了用于调度媒体工作负荷的代码的有形的、非瞬态、计算机可读介质的框图;
[0009]图6是用于实现共享的物理存储器的示例性系统的框图;和
[0010]图7是其中可实现图6的系统的小形状系数设备700的示意图。
[0011]在整个公开和附图中使用相同的标号来指示相似的组件和特征。100系列的标号涉及在图1中最初可见的特征,200系列的标号涉及在图2中最初可见的特征,以此类推。
【具体实施方式】
[0012]GPU可被用于各种媒体功能,诸如媒体回放和3D应用。GPU的很多用途包括编码和解码多个数据流。如此处所使用地,媒体是指包括各数据流的任何图形化内容,包括在线视频广播或视频会议图像。如上所述,GPU的媒体工作负荷可相对较大。当媒体工作负荷超过特定阈值时,可发生瓶颈。该阈值可包括GPU的最大吞吐量。瓶颈可引起GPU数据处理的中断、导致劣化的媒体功能。例如,视频的回放可被累及,且包括在视频回放中的延迟、或者回放中的数次开始和停止。因此,此处描述的各实施例涉及媒体工作负荷的调度。可基于GPU利用率和存储器带宽来自动调节媒体工作负荷。
[0013]诸如由运动图像专家组(MPEG)发布的那些视频标准和H.264,通过逐帧处理流来压缩视频流。帧是视频的静态图像,类似于图片。每一帧可被细分为宏块,且宏块可进一步被分为片。宏块一般是像素块。例如,在H.264标准中,宏块是大小为十六乘以十六的像素。片是帧中可被独立地编码或解码的数据单元。因此,如果丢失了帧中的一片,帧的其他片仍可解码。在各实施例中,可使用片来并行编码和解码,因为它们独立于图片中的其他片。片报头可包括帧中至少一部分片的寻址信息。寻址信息能标识片的开始位置。片报头中可包括其他信息,包括与片关联的任何过滤器信息,以及片的编码类型,诸如MPEG或H.264。
[0014]在以下描述和权利要求书中,可使用术语“耦合”和“连接”及其衍生词。应当理解,这些术语并不旨在作为彼此的同义词。相反,在特定实施例中,可使用“连接的”来指示两个或更多元件彼此直接物理或电气接触。“耦合”可表示两个或多个元件直接物理或电气接触。然而,“耦合”也可意味着两个或更多个元件并未彼此直接接触,但是仍然彼此协作、彼此相互作用。
[0015]一些实施例可在硬件、固件和软件中的一者或组合中实现。一些实施例还可被实现为存储在机器可读介质上的指令,其可由计算平台读取和执行以执行本文所述的操作。机器可读介质可包括用于存储或传送机器(例如,计算机)可读形式的信息的任何机制。例如,机器可读介质可包括只读存储器(ROM);随机存取存储器(RAM);磁盘存储介质;光存储介质;闪存设备;或电、光、声或其它形式的传播信号(例如,载波、红外信号、数字信号、或发送和/或接收信号的接口等)等等。
[0016]实施例是实现或示例。说明书中对“实施例”、“一个实施例”、“一些实施例”、“各种实施例”或“其它实施例”的引用表示结合这些实施例而描述的特定特征、结构、或特性被包括在本发明的至少一些实施例中,而不一定在所有的实施例中。“实施例”、“ 一个实施例”、“一些实施例”的各自出现不一定都指代相同的实施例。一个实施例的元件或方面可与另一个实施例的元件或方面组合。
[0017]并非本文中描述和示出的所有组件、特征、结构、特性等等都需要被包括在特定实施例或多个实施例中。例如,如果说明书陈述“可”、“可能”、“能”、或“能够”包括组件、特征、结构、或特性,则不一定包括该特定组件、特征、结构、或特性。如果说明书或权利要求书提到“一”或“一个”元件,则这并不意味着仅有一个该元件。如果说明书或权利要求书提及“附加”元件,这不排除有一个以上的附加元件。
[0018]要注意的是,虽然参考特定实现方式描述了一些实施例,但根据一些实施例,其他实现方式也是可能的。另外,附图中所示的和/或本文描述的电路元件或其它特征的配置和/或顺序不需要以所示和所描述的特定方式安排。根据某些实施例很多其它配置也是可能的。
[0019]在附图中示出的每个系统中,在一些情况下的元件可分别具有相同附图标记或不同的附图标记,以暗示所表示的元件可能不同和/或相似。然而,元件是足够灵活的以具有不同的实现并与本文所示或所描述的系统中的部分或全部一起操作。附图中所示的各元件可以相同或不同。将哪个称为第一元件以及将哪个称为第二元件是任意的。
[0020]图1是根据各实施例,可被用于调度工作负荷的计算设备100的框图。该计算设备100可以是,例如,膝上型计算机、台式计算机、平板计算机、移动设备、服务器、或手机,等等。计算设备100可包括中央处理单元(CPU) 102,被配置为执行所存储的指令,还有存储器设备104,存储可由CPU102执行的指令。CPU102可以是单核处理器、多核处理器、计算簇、或者任意数量的其他配置。进一步,计算设备100可包括多于一个的CPU102。可使用由CPU102执行的指令来调度媒体工作负荷。
[0021]计算设备100还可包括图形处理单元(GPU)104。如图所示,CPU102可通过总线106连接至GPU104。然而,在一些实施例中,CPU102和GPU104位于同一管芯(die)上。GPU104可被配置为执行计算设备100中的任意数量的图形操作。例如,GPU104可被配置为呈现或操作图形化图像、图形帧、视频等,使其向计算设备100的用户显示。
[0022]GPU104还可包括采样引擎108、3D引擎110、和媒体引擎112。引擎是GPU104组件,可被用于并行处理发送至GPU104的数据。尽管示出了三个GPU引擎,该GPU可包含任意数量的引擎。例如,该GPU104可包含着色引擎和多格式CODEC(MFX)弓丨擎。如图所示,在计算设备100中,3D引擎110可与处理其他类型媒体的媒体引擎114并行地来处理3D图像数据。采样引擎118可从GPU计数器114中收集数据。此外,在各实施例中,着色引擎可处理3D图像数据,同时MFX引擎解码被发送至GPU104的数据。GPU计数器114可收集与GPU104相关的性能数据。特定地,GPU计数器114可测量GPU104的负荷与吞吐量。采样引擎108可将GPU性能数据从GPU计数器114发送到内核模式驱动器(KMD) 116。基于来自GPU计数器114的数据,KMDl 16可计算GPU利用率和存储器带宽。
[0023]计算设备100包括一个或多个摄像头118。如上所述,手机可具有两个前向摄像头和一个后向摄像头。可使用这多个摄像头来捕捉视频。此外,计算设备100包括存储器设备120。存储器设备120可包括随机存取存储器(RAM)、只读存储器(ROM)、闪存、或任何其他合适的存储系统。例如,存储器设备120可包括动态随机存取存储器(DRAM)。
[0024]存储器设备120包括媒体特征建模数据库122。根据各实施例,该媒体特征建模数据库122包括可被修改从而调节GPU利用率和媒体工作负荷存储器带宽的一组特征。该媒体特征建模数据库122可离线或实时地建模。
[0025]在该媒体特征建模数据库122中可包括数个特征。每一个特征可修改媒体工作负荷的某个方面,诸如解码、视频处理、编码、或存储器存取。在各实施例中,可使用CODEC来解码或编码媒体工作负荷。因此,可通过修改对应的CODEC来修改解码特征或编码特征。
[0026]在各示例中,可通过禁用使用片报头的内循环去马赛克(in-loop de-blocking)、或者通过在解码过程中跳过双向预测帧(B-帧)或预测帧(P-帧),来修改媒体工作负荷的解码方面。内循环去马赛克是当解码媒体回放时施加至每一片的视频过滤器,从而通过平滑当使用块编码技术时在片之间可形成的尖锐边缘,来改进视频的视觉质量和预测性能。如上所述,片是每一帧内被编码或解码的数据单元。每一片可包含报头,具有与该片有关的信息,诸如片的编码或解码格式,等等。可通过移除包含在每一片的报头内的去马赛克过滤器信息来禁用内循环去马赛克。通过禁用这个特征,可减少被用于编码的媒体工作负荷的部分。
[0027]通过在解码媒体工作负荷的视频的同时跳过B-帧或P-帧也可减少被用于解码的媒体工作负荷的部分。如上所述,每一帧是与其他帧一起连续地播放来呈现整个视频的静态图片。可使用各种帧类型从而压缩整个视频,包括预测图片帧(P-帧)、和双向预测图片帧(B-帧)。P-帧对当与前一帧相比时发生的图像中的变换进行编码。因此,当视频是弹起越过静态背景的球时,编码球的移动,而不编码静态背景。当与编码整个帧,包括静态背景,相t匕,藉此减少了经编码的文件的大小。B-帧将当前帧与前一帧进行比较,并且编码两个帧之间的变化从而对于视频信息编码。因此,当视频是弹起越过静态背景的球时,编码球的经改变的位置,而不编码静态背景。当使用P-帧或B-帧来编码视频时,当解码视频时可跳过一些P-帧或B-帧从而减少媒体工作负荷。在解码视频时跳过数个、非连续的P-帧或B-帧,可减少媒体工作负荷的GPU利用,且人眼一般检测不到。
[0028]可在各种使用中发生解码,包括但不限于高清晰度回放、WiDi回放、或在视频会议过程中。进一步,在各示例中,在解码过程中跳过P-帧或B-帧之前就禁用内循环去马赛克。与解码过程中当跳过P-帧或B-帧时发生的视频质量的减少相比较而言,当禁用内循环去马赛克时视频质量的减少时非常小的。因此,由于与解码过程中当跳过P-帧或B-帧时发生的视频质量的减少相比较而言,禁用内循环去马赛克对于视频质量影响更小,期望首先禁用内循环去马赛克。
[0029]还可修改诸如图像稳定、帧速率转换、伽马修正增强、皮肤色调增强、帧速率减少、和帧大小之类的一个或多个视频处理特征来调节媒体工作负荷。例如,通过减少数据的帧速率或帧尺寸,可减少GPU利用率,藉此能使GPU处理数据流而没有用户所感知的媒体回放劣化。视频处理发生在各种使用过程中,包括但不限于高清晰度回放、WiDi回放、或在视频会议过程中。在各示例中,当视频处理特征被修改时,可在禁用其他视频处理特征之前就禁用帧速率转换。这是由于帧速率转换一般是GPU管路中冗长的步骤。在已经禁用帧速率转换后,可禁用图像稳定来进一步减少媒体工作负荷。图像稳定也可占据大部分的GPU时间。在已经禁用图像稳定后,可禁用伽马修正增强和皮肤色调增强。最后,在各示例中,可禁用其他特征,诸如帧速率减少和帧大小。通过以如上所述的顺序来禁用视频处理特征,可以对图像质量具有最小影响、同时减少GPU利用率的方式来禁用这些特征。
[0030]可修改诸如比特率、动作估算、和宏块形状之类的编码特征从而调节用于编码视频信号的媒体工作负荷的部分。特定地,可减少由编码所处理的数据的诸如比特率之类的特征,同时响应于由于编码引起的较高的GPU利用,来打开或关闭诸如flash媒体编码(FME)和分层运动估算(HME)之类的运动估算技术。还可修改宏块形状。例如,宏块可具有不同大小,诸如十六乘十六像素或八乘八像素。
[0031]在各示例中,在编码过程中,在调节媒体工作负荷的其他特征前,可减少比特率。比特率可消耗大量GPU时间,且减少比特率可减少被用于编码的GPU时间。在各示例中,在已经减少比特率后,可降低运动估算复杂度,藉此减少被用于运动估算的GPU时间。最后,在各示例中,在已经降低了运动估算复杂度后,可改变宏块形状从而修改媒体工作负荷。类似于视频处理特征,通过以如上所述的顺序来禁用编码特征,可以对图像质量具有最小影响、同时减少GPU利用率的方式来禁用这些特征。
[0032]通过修改媒体工作负荷的各特征还可减少存储器带宽。例如,一些工作负荷可使用大部分存储器,而其他工作负荷使用较少的存储器。通过数据从存储器中检索出时的可用存储器带宽,可限制工作负荷。因此,通过减少GPU上的执行单元线程的数量,作为受限的存储器带宽的结果,可减少媒体工作负荷来避免GPU性能中的任何抖动、延迟、或停滞。也可修改影响存储器带宽的其他特征。在各示例中,可以其中在其他特征前禁用使用最多的存储器带宽的特征的顺序来修改影响存储器带宽的特征。
[0033]存储器设备120还包括基于GPU和存储器输入来调节工作负荷的工作负荷调度器124。在各实施例中,工作负荷调度器124可与采样引擎108和媒体特征建模数据库122通信,从而确定实时修改媒体工作负荷的哪个特征。以此方式,获得能在不累及用户所感知的GPU性能的情况下实现GPU最大化使用的GPU利用率和存储器带宽。然后,工作负荷可从工作负荷调度器124发送出,以供如图2中所示地处理,且然后发送至GPU104。
[0034]计算设备100可包括存储器126。存储器126是诸如硬盘驱动器、光盘驱动器、拇指驱动器、驱动器阵列、或其中任意组合之类的物理存储器。存储器126还可包括远程存储驱动器。存储器还可包括一个或多个媒体应用128。
[0035]CPU102还可通过总线106连接至输入/输出(I/O)设备接口 130,该接口 130被配置为将计算设备100连接至一个或多个I/O设备132。I/O设备132可包括,例如,键盘和指向设备,其中指向设备可包括触摸板或触摸屏,等等。I/O设备132可以是计算设备100的内置组件,或可以是从外部连接至计算设备100的设备。
[0036]CPU102还可通过总线106链接至显示接口 134,该接口 134被配置为将计算设备100连接至显示设备136。显示设备136可包括显示屏,其为计算设备100的内置组件。显示设备136还可包括从外部连接至计算设备100的计算机监视器、电视机、或投影仪等等。网络接口控制器(NIC) 138可被配置为通过总线106将计算设备100连接至网络140。网络140可以是有线网络、无线网络、或蜂窝网络。网络140可以是任何广域网(WAN)、任何局域网(LAN)、或因特网,等等。例如,网络140可以是3GPP LTE网络或WiFi网络。
[0037]图1的框图并不意在表示,计算设备100必须包括图1中所示的全部组件。进一步,取决于特定实现的细节,计算设备100可包括图1中未示出的任意数量的附加组件。
[0038]图2是根据各实施例的,可被用于调度媒体工作负荷的系统200的示意图。类似标记的项如根据图1所描述。系统200可包括媒体应用126。该媒体应用126可包括播放电影的应用、视频会议软件、或照相机软件,等等。来自媒体应用126的工作负荷可被发送至调度组件202。调度组件202包括媒体特征建模数据库122、采样引擎108、工作负荷调度器124、和比较器204。如相对图1所述地,工作负荷调度器124可与采样引擎108和媒体特征建模数据库122通信从而确定实时修改媒体工作负荷的哪个特征,从而调节GPU利用率和存储器带宽。如果GPU利用率或存储器带宽低于阈值,比较器204将发送消息给工作负荷调度器124,表示不需发生对于来自应用128的媒体工作负荷的任何修改。当GPU利用率或存储器带宽高于阈值时,比较器204将发送消息给工作负荷调度器124,表示需修改该媒体工作负荷。例如,如果GPU利用率高于95%的阈值,则可修改媒体工作负荷。类似地,当超过存储器带宽的百分比时,可使用带宽作为阈值。因此,当每秒五吉比特(gigabite)的阈值被超过时,可修改媒体工作负荷。
[0039]可将工作负荷从调度组件202发送到C0DEC206。CODEC是计算设备的软件或硬件组件,可将媒体工作负荷转换为可由GPU处理的格式。然后经转换的工作负荷被发送到媒体驱动器208。在各实施例中,媒体驱动器208将经转换的工作负荷放在缓存中。AKMD116可被用于计算经转换的工作负荷的GPU利用率210和存储器带宽212。此外,硬件,诸如GPU104,可处理来自缓存的经转换的工作负荷。
[0040]KMDl 16还将经计算的GPU利用率210和存储器带宽212作为反馈214发送到调度组件202。比较器204使用该反馈214来确定GPU利用率210或存储器带宽212是大于还是小于特定阈值。如上所述,工作负荷调度器可基于来自比较器204的结果来修改媒体工作负荷。
[0041]图3是根据各实施例的,示出用于调度媒体工作负荷的方法300的过程流程图。在各实施例中,可在诸如计算设备100之类的计算设备上执行该方法300。在其他实施例中,可使用诸如上述相对图2讨论的系统200之类的系统来执行该方法300。
[0042]通过建模媒体工作负荷的特征,在框302处,开始该方法。在各实施例中,该特征是由GPU或任意的GPU引擎所处理的工作负荷的任意方面,其可被调节从而防止或解决GPU的数据处理瓶颈。当GPU利用率高于阈值、或存储器带宽高于阈值时,可发生数据处理瓶颈。进一步,在各实施例中,特征可被存储在媒体特征建模数据库内。
[0043]在框304处,可确定媒体工作负荷的GPU利用率和存储器带宽。如上所述,可使用内核模式驱动器来确定GPU利用率和存储器带宽。在框306,通过修改媒体工作负荷的特征来调度媒体工作负荷,从而调节GPU利用率和存储器带宽。在各实施例中,调节GPU利用率和存储器带宽包括提供对于媒体工作负荷的动态控制、调节媒体的编码和解码、调节视频回放、以及调节视频会议、照相机功能、或无线播放功能的参数。此外,在各实施例中,可从媒体工作负荷中移除特征。
[0044]图4A是示出根据各实施例的,用于调度媒体工作负荷的方法400的过程流程图。在框402,媒体调度器将基于每一类型的使用模型的默认设置来调度工作负荷。使用模型代表了工作负荷执行的操作的类型。使用模型的默认设置包括能进行使用模型的操作的设置。例如,视频回放操作是使用模型的一个类型。视频回放操作的默认设置可包括,但不限于,启用视频处理特征、执行图像稳定、和提供帧速率转换。在框404,获得来自GPU计数器的信息。在各实施例中,在一些工作负荷被发送到GPU之后,调度组件可收集来自GPU计数器的反馈,从而可计算GPU利用率和存储器带宽。进一步,在各实施例中,可对于每一个GPU引擎而计算GPU利用率。在框406,该方法确定GPU或GPU引擎是否过载。如果任何GPU或GPU引擎过载,过程流程继续到框408。如果没有任何GPU或GPU引擎过载,过程流程继续到框410。
[0045]在框408,修改媒体工作负荷的特征从而减少GPU利用率。例如,如果GPU的3D引擎过载,从而3D引擎的利用率高于预定阈值,则可修改减少3D引擎的利用率的特征。过程流程可然后返回至框402并调度工作负荷。图4B进一步示出根据各实施例的用于调节特征的方法。
[0046]在框412,确定存储器是否带宽受限。如果存储器带宽受限,过程流程继续到框414。如果存储器带宽没有受限,过程流程则可返回到框402并调度工作负荷。在框414,可修改特征从而减少存储器带宽。在各示例中,如果媒体弓I擎过载,从而超过最大存储器带宽,可修改减少存储器带宽的特征。然后过程流程返回框402来调度工作负荷。
[0047]图4B是示出根据各实施例的,用于修改媒体工作负荷的特征的方法420的过程流程图。在框422,确定着色引擎是否过载。在各示例中,着色引擎可以是GPU的渲染3D图像的引擎。如果GPU的着色引擎过载,以致着色引擎的利用率大于预定阈值,则过程流程继续到框424。
[0048]在框424,修改减少着色引擎的利用率的特征。在框426,确定MFX引擎是否过载。在各示例中,MFX引擎是GPU的解码各种数据流的引擎。如果MFX引擎过载,过程流程可继续到框428。
[0049]在框428,修改减少MFX引擎的利用率的CODEC特征。如上所述,CODEC是计算设备的软件或硬件组件,可将媒体工作负荷转换为可由GPU处理的格式。在各实施例中,CODEC可以是C0DEC206 (图2)。此外,在各实施例中,CODEC可以是CPU引擎的组件,诸如MFX引擎或媒体引擎114 (图1)。CODEC的各方面可被修改从而减少MFX引擎的利用率。过程流程可然后返回至框402并调度工作负荷。
[0050]图3、4A、和4B的过程流程图并不意在表示方法300和400的框要以任何特定顺序执行,或者在每一情况下都要包括所有框。进一步,取决于特定实现的细节,可在方法300和400中包括任何数量的附加框。
[0051]图5是示出根据各实施例的,存储了用于调度媒体工作负荷的代码的一个或多个有形的、非瞬态、计算机可读介质500的框图。因此,根据各实施例,一个或多个计算机可读介质可存储用于调度媒体工作负荷的代码。一个或多个有形、非瞬态、计算机可读介质500可由处理器502在计算机总线504上访问。进一步,该一个或多个有形、非瞬态计算机可读介质500可包括配置为引导处理器502执行此处所述的方法的代码。
[0052]此处讨论的各软件组件可被存储在如图5中所示的有形、非瞬态计算机可读介质500上。例如,建模模块506可被配置为建模媒体工作负荷的特征。利用模块508可被配置为确定媒体工作负荷的GPU利用率和存储器带宽。进一步,调度模块510可被配置为通过修改媒体工作负荷的特征来调度媒体工作负荷,从而调节GPU利用率和存储器带宽。
[0053]图5的框图并不意在表示,有形、非瞬态计算机可读介质500必须包括图5中所示的全部组件。进一步,取决于特定实现的细节,有形、非瞬态计算机可读介质500可包括图5中未示出的任意数量的附加组件。
[0054]图6是用于实现共享的物理存储器的示例性系统600的框图。类似标记的项如根据图1和2所描述。在一些实施例中,系统600是媒体系统。此外,系统600可被结合在个人计算机(PC)、膝上型计算机、超膝上型计算机、平板、触摸垫、便携式计算机、手持式计算机、掌上型计算机、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、电视机、智能设备(例如,智能电话、智能平板、或智能电视机)、移动因特网设备(MID)、消息收发设备、数据通信设备等等中。
[0055]在各种实施例中,系统600包括耦合至显示器604的平台602。平台602可以从诸如内容服务设备(多个)606、或内容分发设备608 (多个)之类的内容设备或其他类似的内容源接收内容。包括一个或多个导航特征的导航控制器610可以被用来与,例如,平台602和/或显示器604进行交互。下文将更详细地描述这些组件中的每一个。
[0056]平台602可包括芯片组612、中央处理单元(CPU) 102、存储器设备102、存储设备126、图形子系统614、应用128、和无线电616的任意组合。芯片组612可以在CPU102、存储器设备120、存储设备126、图形子系统614、应用128、和无线电616之间提供相互通信。例如,芯片组612可包括能够提供与存储设备126的相互通信的存储适配器(未示出)。
[0057]处理器102可以实现为复杂指令集计算机(CISC)或精简指令集计算机(RISC)处理器、x86指令集兼容处理器、多核,或任何其他微处理器或中央处理单元(CPU)。在一些实施例中,处理器102包括双核处理器(多个)、双核移动处理器(多个)等等。
[0058]存储器120可以实现为易失性存储器设备,诸如,但不限于,随机存取存储器(RAM)、动态随机存取存储器(DRAM)或静态RAM (SRAM)0存储设备126可以实现为非易失性存储设备,诸如,但不仅限于,磁盘驱动器、光盘驱动器、磁带驱动器、内部存储设备、附连的存储设备、闪存、电池备份的SDRAM (同步DRAM),和/或网络可访问的存储设备。在各实施例中,存储设备126包括例如当包括多个硬盘驱动器时,用于提高存储器性能或对有价值的数字媒体的增强保护的技术。
[0059]图形子系统614可以对诸如静止图像或视频之类的图像执行处理,供显示。图形子系统614可以包括例如图形处理单元(GPU),诸如GPU104(图1)、或视觉处理单元(VPU)。模拟或数字接口可以被用来通信地耦合图形子系统614和显示器604。例如,接口可以是高清晰度多媒体接口、DisplayPort、无线HDMIjP /或符合无线HD的技术中的任何一个。图形子系统614可以被集成到CPU102或芯片组612中。可选地,图形子系统614可以是通信耦合到芯片组612的独立卡。
[0060]此处所描述的图形和/或视频处理技术可以以各种硬件体系结构来实现。例如,图形和/或视频功能可以集成在芯片组612内。可选地,可以使用分立的图形和/或视频处理器。作为再一个实施例,图形和/或视频功能可以通过通用处理器(包括多核处理器)来实现。在又一实施例中,功能可以在消费电子设备中实现。
[0061]无线电616可以包括能够使用各种合适的无线通信技术传输和接收信号的一个或多个无线电。这样的技术可以涉及跨一个或多个无线网络的通信。示例性无线网络包括无线局域网(WLAN)、无线个域网(WPAN)、无线城域网(WMAN)、蜂窝网络,以及卫星网络。在跨这样的网络的通信中,无线电616可以根据任何版本的一个或多个适用的标准来操作。
[0062]显示器604可包括任何电视机类型的监视器或显示器。例如,显示器604可包括计算机显示屏幕、触摸屏幕显示器、视频监视器、电视机等。显示器604可以是数字和/或模拟的。在一些实施例中,显示器604是全息显示器。同样,显示器604可以是可以接收可视投影的透明表面。这样的投影可以传达各种形式的信息、图像、和/或对象等。例如,这样的投影可以是对于移动增强的现实(MAR)应用的可视覆盖。在一个或多个应用128的控制下,平台602可以在显示器604上显示用户界面618。
[0063]内容服务设备(多个)606可以由任何国家的、国际的、和/或独立的服务托管,且如此,可以由平台602经由例如因特网访问。内容服务设备(多个)606可以耦合到平台602和/或显示器604。平台602和/或内容服务设备606可以耦合到网络140以往返于网络140进行通信(例如,发送和/或接收)媒体信息。内容分发设备608还可以耦合到平台602和/或显不器604。
[0064]内容服务设备(多个)606可包括有线电视盒、个人计算机、网络、电话、或能传递数字信息的启用因特网的设备。此外,内容服务设备(多个)606可包括能在内容提供者和平台602或显示器604之间经由网络140或直接单向或双向地通信内容的任何其他类似设备。可以理解,内容可以通过网络140往返于系统600中的组件中的任何一个和内容提供商单向地和/或双向地传递。内容的示例可包括任何媒体信息,包括例如视频、音乐、医疗和游戏信息等等。
[0065]内容服务设备(多个)606可接收内容,诸如有线电视节目,包括媒体信息、数字信息和/或其他内容。内容提供商的示例可包括任何有线或卫星电视或无线电或因特网内容提供商等等。
[0066]在一些实施例中,平台602从包括一个或多个导航特征的导航控制器610接收控制信号。导航控制器610的导航特征可以被用来,例如,与用户界面618进行交互。导航控制器610可以是指向设备,该指向设备可以是允许用户向计算机输入空间数据(例如,连续和多维)的计算机硬件组件(具体而言,人类接口设备)。许多系统,如图形用户界面(GUI)以及电视机和监视器,允许用户使用身体姿势来控制计算机或电视机并向计算机或电视机提供数据。物理姿势包括但不限于脸部表情、面部动作、各肢体的动作、身体动作、身体语言、或其中任意组合。这样的物理姿势可被识别并转换为命令或指令。
[0067]导航控制器610的导航特征的移动可以通过指针、光标、焦点环,或显示在显示器604上的其他可视指示器,反映在显示器604上。例如,在应用128的控制下,位于导航控制器610上的导航特征可以被映射为用户界面618上显示的虚拟导航特征。在一些实施例中,导航控制器610可以不是单独的组件,而是被集成到平台602和/或显示器604中。
[0068]系统600可包括驱动(未示出),其包括允许用户在初始引导之后,按下按钮来立即打开和关闭平台602的技术。程序逻辑可以允许平台602当平台被“关闭”时向媒体适配器或其他内容服务设备(多个)606或内容分发设备(多个)608流式传送内容。另外,芯片集612可包括,例如,对于5.1环绕声音频和/或高清晰度7.1环绕声音频的硬件和/或软件支持。驱动可以包括集成的图形平台的图形驱动程序。在一些实施例中,图形驱动器包括外设组件互连高速(PCIe)图形卡。
[0069]在各种实施例中,可以集成系统600中所示出的组件的任何一个或更多。例如,可集成平台602和内容服务设备(多个)606 ;可集成平台602和内容分发设备(多个)608 ;或者,例如,可集成平台602、内容服务设备(多个)606,以及内容分发设备(多个)608。在一些实施例中,平台602和显示器604是集成的单元。例如,可以集成显示器604和内容服务设备(多个)606,或者可集成显示器604和内容分发设备(多个)608。
[0070]系统600可被实现为无线系统或有线系统。当实现为无线系统时,系统600可以包括适用于通过无线共享介质进行通信的组件和接口,诸如一个或多个天线、发射器、接收器、收发器、放大器、滤波器、控制逻辑等等。无线共享介质的示例可以包括诸如RF频谱之类的无线频谱的某些部分。当被实现为有线系统时,系统600可包括适合于在有线通信介质上通信的组件和接口,诸如输入/输出(I/O)适配器、将I/O适配器与相应的有线通信介质连接的物理连接器、网络接口卡(NIC)、盘控制器、视频控制器、音频控制器等等。有线通信介质的示例可包括,线路、电缆、金属导线、印刷电路板(PCB)、后面板、交换架构、半导体材料、双绞线、同轴电缆、光纤等等。
[0071]平台602可以建立一个或多个逻辑或物理信道以传递信息。信息可以包括媒体信息和控制信息。媒体信息可指表示给用户的内容的任何数据。内容的示例可以包括,例如,来自语音谈话、视频会议、流式视频、电子邮件(email)消息、语音邮件消息、字母数字符号、图形、图像、视频、文本等等的数据。来自语音谈话的数据可以是,例如,语音信息、静默时间长度、背景噪声、舒适噪声、音调等等。控制信息可指表示用于自动化系统的命令、指令或控制字的任何数据。例如,控制信息可以用来通过系统路由媒体信息,或指示节点以预先确定的方式处理媒体信息。然而,这些实施例并不限于这些元件或图6中示出或描述的上下文。
[0072]图7示出了其中可以实现图6的系统600的小形状系数设备900的示意图。类似标记的项如根据图6所描述。在一些实施例中,例如,设备700可被实现为具有无线功能的移动计算设备。移动计算设备可指具有处理系统和移动电源(诸如,例如,一个或多个电池)的任何设备。
[0073]如上文所描述的,移动计算设备的示例可以包括个人计算机(PC)、膝上型计算机、超膝上型计算机、平板电脑、触摸板、便携式计算机、手持式计算机、掌上电脑、个人数字助理(PDA)、蜂窝电话、蜂窝电话/PDA的组合、电视机、智能设备(例如,智能电话、智能平板电脑或智能电视机)、移动因特网设备(MID)、消息传送设备、数据通信设备等等。
[0074]移动计算设备的示例还可以包括被配置为由人佩戴的计算机,诸如腕计算机、手指计算机、环计算机、眼镜计算机、皮带计算机、臂带计算机、鞋计算机、衣服计算机,及任何其他类型的可佩戴计算机。例如,移动计算设备可被实现为能够执行计算机应用以及语音通信、和/或数据通信的智能电话。虽然可以利用作为示例实现为智能电话的移动计算设备描述一些实施例,但是,可以理解,其他实施例也可以使用其他无线移动计算设备来实现。
[0075]如图7所示,设备700可包括外壳702、显示器704、输入/输出(I/O)设备706、以及天线708。设备700还可包括导航特征710。显示器704可以包括用于显示适合于移动计算设备的信息的任何合适的显示单元。I/O设备706可以包括用于向移动计算设备中输入信息的任何合适的I/O设备。例如,I/O设备706可包括字母数字键盘、数字小键盘、触摸板、输入键、按钮、开关、往复式开关、麦克风、扬声器、语音识别设备、以及软件等等。信息还可以通过麦克风的方式输入到设备700中。这样的信息可以通过语音识别设备来数字化。
[0076]示例 I
[0077]此处描述了用于调度计算设备的媒体工作负荷的方法。该方法包括建模媒体工作负荷的特征。可确定媒体工作负荷的GPU利用率和存储器带宽。该方法还包括通过修改媒体工作负荷的特征来调度媒体工作负荷,从而调节GPU利用率和存储器带宽。
[0078]可在媒体特征建模数据库中建模媒体工作负荷的特征。使用CODEC,媒体工作负荷可被转换为另一个格式。此外,可使用内核模式驱动器、GPU、和存储器计数器来确定GPU利用率和存储器带宽。可对于GPU的每一个引擎确定GPU利用率。当GPU利用率或存储器带宽高于阈值时,可调度媒体工作负荷。调节GPU利用率和存储器带宽提供了媒体工作负荷的动态控制、调节媒体的编码和解码、和调节视频回放。
[0079]示例 2
[0080]此处描述了 一种计算设备。该计算设备包括被配置为执行所存储的指令的中央处理单元(CPU)和存储这些指令的存储设备。该存储设备包括处理器可执行代码,当由CPU执行这些代码时,被配置为使用媒体特征建模数据库来建模媒体工作负荷的特征。可使用图形处理单元(GPU)计数器来确定媒体工作负荷的GPU利用率和存储器带宽。通过修改媒体工作负荷的特征来调度媒体工作负荷,从而调节GPU利用率和存储器带宽。
[0081]该计算设备可包括摄像头、视频聊天应用、或视频会议应用。该处理器可执行代码可被配置为使用确定GPU利用率和存储器带宽是大于还是小于阈值的比较器来调度媒体工作负荷。可对于GPU的每一个GPU引擎确定利用率。此外,可使用CODEC来将媒体工作负荷转换为另一个格式,用于由CPU处理。此外,内核模式驱动器和具有GPU计数器的GPU可被用于确定GPU利用率和存储器带宽。调节GPU利用率和存储器带宽可包括从媒体工作负荷中移除特征。媒体工作负荷的特征可被建模到计算设备的媒体特征建模数据库中。权利要求9的计算设备还可包括无线电和显示器,且该无线电和显示器可被通信地至少耦合至中央处理单元。
[0082]示例 3[0083]此处描述了其中存储有指令的至少一个有形的机器可读介质。响应于在计算设备上被执行,该指令使得计算机设备建模媒体工作负荷的特征。可确定媒体工作负荷的GPU利用率和存储器带宽。通过修改媒体工作负荷的特征,从而调节GPU利用率和存储器带宽,可调度媒体工作负荷。
[0084]当GPU利用率或存储器带宽高于阈值时,可调度媒体工作负荷。进一步,使用CODEC,媒体工作负荷可被转换为另一个格式。可在媒体特征建模数据库中建模媒体工作负荷的特征。此外,可对于GPU的每一个引擎确定GPU利用率。
[0085]要理解的是,上述示例中的特定细节可被用在一个或多个实施例中的任何地方。例如,上述计算设备的所有任选特征也可相对于此处描述的方法或计算机可读介质而被实现。进一步,尽管已经在此处使用过程流程图和/或状态图来描述各实施例,但本发明不限于此处的那些图或相应的描述。例如,流程不必经过每个所示的框或状态或以此处所示和所述的完全相同的顺序进行。
[0086]本发明不限于此处列出的特定细节。实际上,受益于本公开的本领域的技术人员将理解,可在本发明的范围内进行来自上述描述和附图的很多其它变型。因此,由所附权利要求书(包括对其进行的任何修改)定义本发明的范围。
【权利要求】
1.一种用于调度媒体工作负荷的方法,包括: 建模所述媒体工作负荷的特征; 确定所述媒体工作负荷的GPU利用率和存储器带宽;和 通过修改所述媒体工作负荷的特征从而调节所述GPU利用率和所述存储器带宽,来调度所述媒体工作负荷。
2.如权利要求1所述的方法,其特征在于,当所述GPU利用率或所述存储器带宽大于阈值时,调度所述媒体工作负荷。
3.如权利要求1所述的方法,其特征在于,调节所述GPU利用率和所述存储器带宽包括提供对于所述媒体工作负荷的动态控制、调节所述媒体的编码和解码、调节视频回放、以及调节视频会议、照相机功能、或无线播放功能的参数。
4.如权利要求1所述的方法,其特征在于,在媒体特征建模数据库中建模所述媒体工作负荷的特征。
5.如权利要求1所述的方法,其特征在于,包括使用内核控制驱动器、GPU、和存储器计数器来确定所述GPU利用率和所述存储器带宽。
6.如权利要求1所述的方法,其特征在于,包括确定所述GPU的每一个引擎的所述GPU利用率。
7.如权利要求1所述的方法,其特征在于,包括使用CODEC将所述媒体工作负荷转换为另一个格式。
8.一种计算设备,包括: 被配置为执行所存储的指令的中央处理单元(CPU)和存储指令的存储设备,其中所述存储设备包括当由所述CPU执行时被配置为进行如下动作的处理器可执行指令: 通过使用媒体特征建模数据库来建模所述媒体工作负荷的特征; 通过使用图形处理单元(GPU)计数器来确定所述媒体工作负荷的GPU利用率和存储器带宽;和 通过修改所述媒体工作负荷的特征从而调节所述GPU利用率和所述存储器带宽,来调度所述媒体工作负荷。
9.如权利要求8所述的计算设备,其特征在于,使用确定所述GPU利用率和所述存储器带宽大于还是小于阈值的比较器来调度所述媒体工作负荷。
10.如权利要求8所述的计算设备,其特征在于,为了调节所述GPU利用率和所述存储器带宽,所述CPU将特征从所述媒体工作负荷移除。
11.如权利要求8所述的计算设备,其特征在于,所述CPU将在媒体特征建模数据库中建模所述媒体工作负荷的特征。
12.如权利要求8所述的计算设备,其特征在于,包括内核模式驱动器和具有GPU计数器的GPU,所述GPU计数器来确定所述GPU利用率和所述存储器带宽。
13.如权利要求8所述的计算设备,其特征在于,所述CPU将确定GPU的每一个GPU引擎的利用率。
14.如权利要求8所述的计算设备,其特征在于,包括CODEC,所述CODEC用于将所述媒体工作负荷转换为另一个格式以供GPU处理。
15.如权利要求8所述的计算设备,其特征在于,所述计算设备包括摄像头、视频聊天应用、或视频会议应用。
16.如权利要求8所述的计算设备,其特征在于,还包括无线电和显示器,所述无线电和显示器通信地至少耦合至所述CPU。
17.至少一个机器可读介质,具有存储在其中的指令,所述指令响应于在计算设备上被执行而使得所述计算设备: 通过使用媒体特征建模数据库来建模所述媒体工作负荷的特征; 确定所述媒体工作负荷的GPU利用率和存储器带宽;和 通过修改所述媒体工作负荷的特征从而调节所述GPU利用率和所述存储器带宽,来调度所述媒体工作负荷。
18.如权利要求17所述的至少一个机器可读介质,其特征在于,当所述GPU利用率或所述存储器带宽大于阈值时调度所述媒体工作负荷。
19.如权利要求17所述的至少一个机器可读介质,其特征在于,在媒体特征建模数据库中建模所述媒体工作负荷的特征。
20.如权利要求17所述的至少一个机器可读介质,其特征在于,包括确定所述GPU的每一个引擎的所述GPU利用率。`
【文档编号】H04N19/61GK103577269SQ201310335743
【公开日】2014年2月12日 申请日期:2013年8月2日 优先权日:2012年8月2日
【发明者】C·C·王, R·文卡塔拉曼 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1