用于热功率预算编制的动态多媒体数据流控制的方法、设备和系统的制作方法_3

文档序号:9731855阅读:来源:国知局
器260,所述多媒体参数管理器和数据流跟踪器260可以被配置为管理多媒体参数(例如,分 辨率、帧速率、LoD或者其它参数),以及跟踪数据流路径。多媒体参数管理器和数据流跟踪 器260可以例如跟踪与多媒体数据流相关联的数据流路径,并且识别各自数据流中涉及的 全部硬件模块。多媒体参数管理器和数据流跟踪器260可以进一步识别通过网络连接(例 如,网络连接207)延伸到另一个设备或多个设备的数据流路径。
[0057] 设备205还可以包括硬件块270,所述硬件块270可以包括硬件子块或者子系统,其 例如可以是SoC的模块。硬件块270可以包括照相机模块262、照相机子系统263、中央处理单 元(CHJ)264、图形处理单元(GPU)265、视频编码器/译码器(C0DEC)266和移动开发平台 (MDP)模块267。硬件子块可以耦合到对应的设备驱动器258,所述设备驱动器258可以被具 体地配置用于每个硬件子系统。替代地,设备驱动器258可以是通用的,或者可以对于与子 系统相关联的硬件的类型是通用的。设备驱动器258可以作为操作系统内核或者操作系统 服务的一部分而被安装,所述一部分允许硬件子块与操作系统、应用软件以及设备部件、系 统和子系统的剩余部分一起运行。替代地,设备驱动器258可以是在运行时间期间由应用程 序链接到的库的一部分。硬件子系统可以能够根据各种多媒体参数(例如,分辨率、帧速率、 细节层次(LoD)和其它参数)生成多媒体数据,这可以由使用硬件子系统的软件模块通过与 各自的设备驱动器258交互来控制。设备驱动器258可以提供设备自身与软件之间的接口, 所述软件可能需要访问硬件子系统,或者可以向硬件子系统发送数据或者从硬件子系统接 收数据。
[0058]与硬件模块的交互可以通过库和多媒体框架256以及应用编程接口(API)257来完 成。库和多媒体框架256可以通过诸如即插即用机制、功率管理机制和其它机制之类的各种 操作系统内核级框架来提供对硬件子系统的访问。库和多媒体框架256还可以通过各种库 来提供对硬件子系统的访问。库可以包括动态链接库(DLL)、通用设备驱动器的库、设备专 用设备驱动器的库、设备驱动器的支持功能(例如,计时器和调试器)的库。API 257可以提 供较高层软件接口,例如,函数调用和提供对硬件子系统的访问的其它接口。访问可以通过 包括用户模式机制(例如,软件函数调用、操作系统服务、直接设备功能调用)的机制来提 供。访问机制可以允许通过设备驱动器、操作系统和支持服务进行的对硬件子系统的软件 控制。对硬件子系统的访问不仅可以被提供给多媒体应用,还可以被提供给包括多媒体参 数管理器和数据流跟踪器的其它应用和系统。在方面中,访问可以被用于覆盖硬件子系统 的多媒体参数。
[0059] 在各种方面中,并发应用块250和硬件块270可以耦合到库和多媒体框架256以及 API 257。并发应用块250、硬件块270、库和多媒体框架256以及API 257之间的耦合可以是 以通过操作系统服务、进程间消息和/或从并发的多媒体应用中的各种多媒体应用对各种 硬件子系统的功能调用,或者通过类似的机制的软件耦合为形式的。功能调用或者其它耦 合机制可以允许并发应用块250中的多媒体应用从各种硬件子系统和其它多媒体应用接收 数据,向各种硬件子系统和其它多媒体应用、并且在各种硬件子系统和其它多媒体应用之 间以及沿数据流路径传递数据。功能调用或者其它耦合机制可以进一步允许并发应用块 250中的多媒体应用对硬件块270中的各种硬件子系统进行配置。由并发应用块250中的应 用作出的功能调用或者其它耦合机制中的一些或者全部功能调用或者耦合机制,以及被建 立用于多媒体数据的流的对应的路径(包括硬件块270的硬件单元),可以形成本文所描述 的各种多媒体数据流的数据流路径。数据流路径可以进一步包括去往和来自实现通信的网 络模块的数据流,所述通信包括通过网络连接207与一个或多个其它设备进行的双向通信。
[0060] 设备205可以进一步包括传感器块206,所述传感器块206可以向多媒体参数管理 器和数据流跟踪器260提供传感器输入数据206a。尽管为了易于描述,传感器块206被示出 为单个块,但是传感器块206可以表示一个或多个诸如温度输入、功率输入或者如上文所描 述的其它输入之类的传感器输入。多媒体参数管理器和数据流跟踪器260可以为与并发应 用块250中的应用相关联的数据流中的各个数据流指定优先级。优先级可以被周期性地更 新或者调整。当传感器输入数据206a的值到达或者超过门限值时,多媒体参数管理器和数 据流跟踪器260可以基于所指定的优先级来调整与数据流相关联的多媒体参数(例如,分辨 率、帧速率、LoD)。例如,具有低优先级的数据流可以在具有较高优先级的数据流之前,或者 代替具有较高优先级的数据流,经历降低和多媒体参数(例如,分辨率、帧速率、LoD或者其 它参数)。
[0061] 在一个方面中,多媒体参数的降低、恢复或者调整可以通过连接261在设备驱动器 级完成,所述连接261可以是设备驱动器258中的各个设备驱动器与多媒体参数管理器和数 据流跟踪器260之间的软件或者逻辑连接。具体说来,多媒体参数管理器和数据流跟踪器 260可以被配置为监控硬件块270中的各种硬件子系统的多媒体参数值。多媒体参数管理器 和数据流跟踪器260可以进一步被配置具有逻辑单元,以当功率相关的水平(例如,温度和 功率输入)超过门限或者限制时,覆盖或者降低沿数据流路径的硬件设备或者子系统的特 定多媒体参数的值。多媒体参数管理器和数据流跟踪器260可以在功率相关的水平下降到 门限或者限制之下时恢复多媒体参数的值。
[0062] 例如,多媒体参数管理器和数据流跟踪器260可以确定与数据流路径相关联的优 先级,并且可以确定多媒体参数值是否已经针对沿数据流路径的硬件块被降低。当功率相 关的值下降到门限或者限制之下时,多媒体参数管理器和数据流跟踪器260可以恢复已经 经历了多媒体参数值的降低的最高优先级硬件块的多媒体参数的原始或者本机值。
[0063]在方面中,设备驱动器258可以通过连接(例如,软件连接、进程间通信机制或者到 多媒体应用中的各种多媒体应用的其它逻辑连接)262a至267a向并发应用块250中的对应 应用通知多媒体参数的值的降低或者恢复。例如,可以通过信号或者通过各自的设备驱动 器258提供的其它机制来通知多媒体应用。替代地,库和多媒体框架256以及API 257可以提 供一种机制,可以通过所述机制来控制硬件,并且可以通过所述机制向多媒体应用提供对 多媒体参数改变的通知。由于应用块250中的多媒体应用所断言和预期的设置与多媒体参 数管理器和数据流跟踪器260所断言的覆盖设置之间的差别,对应用块250中的多媒体应用 的通知可能变得必要或者可取。特别地,当应用可以响应于通知而降低多媒体参数的预期 值时,可以消除额外的处理,所述额外的处理对于补偿所预期的和所降低的多媒体参数的 值之间的差别可能是另外必需的。
[0064]为更好地理解根据方面的数据流路径跟踪,图3A中示出了包括跨越各种硬件子系 统的各种数据流和数据流路径的示例300。在方面中,照相机310可以根据给定的多媒体参 数(例如,1080p30 YUV 420)来生成未经处理的视频数据,以形成视频数据31Oa。可以以例 如照相机310能够生成的最大帧速率和分辨率来生成视频数据310a。替代地,可以以照相机 310当前在硬件级被配置为生成的任何分辨率和帧速率来生成视频数据310a。视频数据 310a可以耦合到照相机子系统311,所述照相机子系统311可以处理视频数据310a,以形成 在原始多媒体参数(例如,1080p30 YUV420)条件下的数据流1311a和数据流2311b。
[0065] 在各种方面中,数据流路径内的数据可以是分组数据,所述分组数据包括当所述 分组数据穿过各种硬件模块时的一系列经封装的报头。分组报头信息可以被用于识别该分 组已经穿过的各种硬件模块。进一步,可以利用诸如进程标识符、线程标识符、上下文标识 符之类的各种机制来识别应用和数据流。设备驱动器和操作系统服务可以被用于跟踪与硬 件模块相关联的上下文、进程和线程。使用上面的信息,多媒体参数管理器和数据流跟踪器 可以跟踪与每个应用和数据流相关联的各种硬件模块,以建立通过SoC中的硬件子系统的 数据流路径。
[0066] 数据流311a和数据流311b可以是具有诸如分辨率和帧速率之类的参数的视频数 据流,所述参数可以是如本文中所描述的通过与照相机子系统311的交互可配置的。数据流 1311a可以被逻辑地耦合到视频编码器a 312,所述视频编码器a 312可以生成经编码的数 据流312a,所述经编码的数据流312a可以进一步被逻辑地耦合到例如视频聊天或者视频会 议应用313。经编码的数据流312a可以根据一个或多个多媒体参数(例如,分辨率和帧速率) 例如通过无线链路305作为外部流313x被传送到另一个设备(例如,在视频会议应用313的 另一端的设备)。视频会议应用313还可以从外部流313x接收经编码的视频,所述经编码的 视频可以作为经编码的数据流313a被传送给视频译码器314,经译码的数据流314a可以在 所述视频译码器314处生成。可以在任意点处对数据流311a、311b、312a、313a、313x、314a或 者其它数据流的数据分组的报头信息进行检查以确定信息,例如,分组已经去过哪里、分组 去往哪里以及其它信息。每个设备或者硬件子系统可以在分组报头内附加识别其自身的信 息和诸如时间戳之类的其它信息。
[0067] 可以向图形处理单元(GPU)316传送经译码的数据流314a,所述图形处理单元 (GPU)316可以与针对外部设备生成次要图形合成相关联。GPU 316还可以接收从GPU游戏渲 染块315生成的图形数据流315a,所述GPU游戏渲染块315可以根据多媒体参数(例如,分辨 率、帧速率、LoD或者其它参数)结合游戏应用等而操作。GPU 316可以生成视频数据流316a, 所述视频数据流316a可以由图形数据流315a和经译码的数据流314组成,以使得可以根据 与外部显示设备兼容的多媒体参数(例如,1080p60YUV)-起显示并发的多媒体数据。视频 数据流316a可以进一步被逻辑地耦合和传送到视频编码器2317,所述视频编码器2317可以 对合成视频数据流316a进行编码,并且生成视频比特流。视频比特流可以包括与外部显示 设备兼容的Wro视频比特流(例如,Wro视频数据流317a) Jro视频数据流317可以被传送给 WLAN模块318 JLAN模块318可以将视频比特流作为无线视频数据流318a传送给次要无线显 示器319。数据流2311b可以根据一个或多个多媒体参数(例如,1080p30 YUV420)进行配置, 并且可以被逻辑地耦合到与为本地主要显示器生成主要图形合成相关联的GPU 320APU 320还可以从外部数据流311x、例如从通过网络连接而耦合的设备接收数据。外部设备可能 正在执行一个或多个多媒体应用(例如,游戏应用和电话会议应用),所述一个或多个多媒 体应用可以根据一个或多个多媒体参数值(例如,1080p30 ARGB)来为外部数据流31 Ix生成 多媒体数据。
[0068]当如本文中描述的数据流路径被跟踪并且优先级被评估时,存在于数据流路径中 的具体的硬件子系统可以被识别,并且基于优先级与具体的数据流相关联。如图3B中所示 的,具有硬件子系统的组的数据流路径可以被包括在数据流路径轨迹330中。如图中所强调 的,数据流路径轨迹330可以包括例如游戏渲染块315、图形流315a、GPU 316、视频数据流 316a、视频编码器2317、Wro视频数据流317a、WLAN模块318、无线视频数据流318a和次要无 线显示器319。出于调整硬件或者软件块(例如,图形渲染模块315、GPU 316、视频编码器 2317、WLAN模块318和次要显示器319的)的多媒体参数的目的,数据流路径轨迹330中的单 元可以被分配了特定的优先级,或者可以被另外地识别。通过调整这些块的多媒体参数,数 据流的多媒体参数可以被对应地调整。进一步,针对与并发的多媒体应用相关联的全部数 据流,数据流路径可以被跟踪并且按优先级排列,并且随着条件改变而被更新。当多媒体应 用新近被执行或者终止时,更新数据流路径和优先级可能特别有用。
[0069]在方面中,数据流路径轨迹330可以包括硬件模块(例如,GPU 316),所述硬件模块 具有到另一个数据流路径340或者其部分的耦合。数据流路径330和数据流路径340可以都 包括经译码的视频流314a。在方面中,经译码的视频流314a可以不是数据流路径轨迹330的 一部分,所述数据流路径轨迹330可以被指定为高优先级数据流。由此,数据流路径轨迹330 的多媒体参数应当仅在低优先级数据流路径被完全降低之后被降低。因为数据流路径轨迹 330是高优先级数据流,所以经译码的视频流314a尽管耦合到高优先级数据流路径轨迹330 内的硬件模块,但是可以从数据流路径轨迹330中被省略。作为代替,经译码的视频流314a 可以被指定为数据流路径340的一部分,所述数据流路径340可以被指定为具有低优先级。 根据本文所描述的方面,数据流路径340可以在较高优先级数据流路径330之前变得服从多 媒体参数降低。
[0070]在现在的示例中,视频流314a可以使其多媒体参数(例如,分辨率、帧速率、LoD或 者其它参数)降低。视频流314a可以带有被降低的多媒体参数被输入给GPU 316,尽管GPU 316的输出的当前多媒体参数可能未被降低。视频流314a (例如,带有被降低的多媒体参数) 将出现在GPU 316的输出中,所述输出可以以完全多媒体参数值被生成。然而,视频流314a 的有效输出将是具有被降低的参数的那个输出。替代地,在某些情况下,尽管视频流314a的 多媒体参数值被降低,但是GPU 316可以尝试对视频流314a进行重新缩放,以提供改进的输 出。可以利用本机或者原始多媒体参数值(例如,分辨率、帧速率、LoD或者其它参数)来显示 GPU 316的与数据流路径轨迹330相关联的部分,包括来自图形渲染模块315的图形流315a, 所述图形渲染模块315可以被指定为具有高优先级。
[0071]针对沿所跟踪的数据流路径的硬件子系统中的每个硬件子系统来建立设置可以 根据如图3C中所示的逻辑单元来完成。所示的逻辑单元本质上是示例性的,并且可以通过 多种方式来实现,所述多种方式包括硬件逻辑单元、处理逻辑单元、用软件模块来实现的逻 辑单元或者其它方式。所述逻辑单元可以被多媒体参数管理器和数据流跟踪器用于作出关 于数据流路径中的硬件子系统中的每个硬件子系统的当前的或者现在的多媒体参数设置 的决策。逻辑块340可以被配置为接收输入,并且提供针对当前的硬件子系统的当前多媒体 参数设置的输出。逻辑块340可以接收输入341,所述输入341对应于硬件子系统的本机或者 原始多媒体参数值。原始多媒体参数值可以包括由对应的应用关于数据流而最初指定的、 或者可能由数据流来最初指定的值。逻辑块340可以进一步接收输入342,所述输入342对应 于多媒体参数的覆盖值。覆盖值可以是多媒体参数的经调整的值。经调整的多媒体参数可 以是由多媒体参数管理器和数据流跟踪器在温度和/或功率水平指示需要调整或者覆盖以 维持在所建立的热或者功率预算内的操作时建立的。替代地,可以由于其它原因而产生经 调整的多媒体参数或者覆盖值。逻辑块340可以进一步接收输入343,所述输入343表示逻辑 块344的结果或者输出。
[0072]逻辑块344可以接收输入345,所述输入345对应于数据流路径中的下一个下游硬 件子系统的当前多媒体参数设置。逻辑块344可以进一步接收输入346,所述输入346对应于 数据流路径中在下一个下游硬件子系统之后的第二个下游硬件子系统的当前多媒体参数 设置。逻辑块344可以接收诸如来自沿数据流路径的第N个下游子系统的输入347之类的额 外的输入,所述输入347对应于第N个下游块的当前多媒体参数设置。逻辑块344可以将多媒 体参数设置输入345、346和347中的最大值作为输入343提供给逻辑块340。相应地,逻辑块 344可以允许考虑下游块的最高多媒体参数值,以试图维持最高的可能的用户体验质量。 [0073]当逻辑块340正在接收多媒体参数输入341、342和
当前第3页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1