分配执行具有可配置复杂度的多媒体数据处理组件的处理器的资源的制作方法_2

文档序号:9713539阅读:来源:国知局
资 源将被所有组件'看到因此,它们都同时增加复杂度。结果,所有这些增加的净效应可能 导致过负荷,使得它们都再次'让步'。此时,将再次存在自由的资源,使得它们都提高复杂 度而过负荷(等等)。
[0021] 具体的、非限制性的实施例将在下文中详细描述,但是其中采用的一些基础原理 可以列出如下:
[0022] 1、监控包含至少一个(第一)实时代码组件的第一组代码组件的实时性能;
[0023] 2、根据该监控的输出,确定由包含至少一个另一(第二)代码组件(其可以为实时 的或者不是实时的)的第二组代码组件实现的算法的算法复杂度能够增加、应当减小、还是 保持在当前水平;
[0024] 3、根据所述确定来配置所述第二组代码组件。
[0025] 在步骤1(第一组)中监控的一组组件和在步骤3(第二组)中配置的一组组件可以 是相同的(使得每个代码组件被监控且被配置)、是部分重叠的(使得仅一些代码组件被监 控且被配置)、或者是不相交的(使得不对任何代码组件进行监控和配置)。换言之,第一组 和第二组可以是相同的、它们可以是不同的但是具有至少一个共同代码组件、或者它们可 以是不同的并且不共享代码组件。对于至少一个实时代码组件进行的观测用于配置至少另 一(不同的)代码组件(其具有可配置复杂度并且可能是实时组件或者可能不是实时组件)。 第一组或第二组中的任一组或两组可以包含多个代码组件。第一组件和第二组件可以是 (相同)软件应用的组件,或者是不同软件应用的组件。
[0026]每个可配置代码组件是可独立配置的(即,第二组中的每个组件是可独立于第一 组中的每个代码组件而被配置的)。也就是说,具有可配置复杂度的第二代码组件是可独立 于针对其估计了实时性能的第一代码组件而被配置的(使得由第二代码组件实现的算法能 够在不修改由第一代码组件实现的算法的情况下被修改)。
[0027]本文公开的技术代表了高级资源管理的形式(在下面描述的实施例中,资源管理 由图4的资源管理器450来执行)。上述的步骤2相当于在给定第一组组件的性能的情况下确 定可用于第二组组件的处理资源,即,确定第二组组件实际上可以使用比当前使用的资源 更多的资源(并且因此达到更高的输出质量)而不折衷第一组组件中的任意组件的实时操 作,或者确定第二组组件过度使用资源达到了正在折衷第一组组件中的至少一个组件的实 时操作的程度,或者确定第二组组件正在使用'正确'量的资源从而第一组组件的实时操作 不折衷,不存在第二组组件对处理资源的欠使用(这表明第二组组件的输出质量大约如在 给定第一组要求的情况下能实时实现的那样高。步骤3相当于将第二组组件配置至所确定 的可用处理资源。
[0028]应当注意,在低水平处理器操作的角度看,本技术最终通过调节实现诸如音频或 视频处理等处理功能所需的数条低水平机器代码指令(按照使用较少的机器代码指令来实 现较不复杂的算法)来分配处理器资源。这与例如低水平线程调度器形成对比,低水平线程 调度器仅通过选择性地延迟线程指令相对于彼此的执行而将资源分配给不同的线程而对 于算法本身的本质没有影响一一尤其是对其复杂度没有影响一一即,对于为了处理输入而 需要执行的机器代码指令的本质尤其是数量没有影响,而是仅仅确定了何时执行所述指 令。
[0029]上述原理仅作为进一步辅助理解下面描述的具体实施例的引导而提供,并且不应 将其本身解释为是限制性的。
[0030] 现在,将参考所附附图在实时通信应用的上下文中描述实施例。
[0031] 图1示出了包括与第一用户设备104相关联的第一用户102("用户A")和与第二用 户设备110相关联的第二用户1〇8("用户B")的通信系统100。用户设备104和110能够在通信 系统100中通过网络106实时地通信,从而允许用户102和108通过网络106实时地彼此通信。
[0032] 图1所示的通信系统100是基于分组的通信系统,但是可以使用其它类型的通信系 统。网络106可以是例如互联网。用户设备104和110中的每一个可以是例如移动电话、平板 设备、膝上型计算机、个人计算机("PC'')(包括例如奢1_11(!£解8逸)、Mac 0S_?和Linux應PC)、 游戏设备、电视机、个人数字助理("PDA")或能够连接到网络106的其它嵌入式设备。用户设 备104布置成从用户设备104的用户102接收信息以及将信息输出到用户设备104的用户 102。用户设备104包括诸如显示器和扬声器等输出装置。用户设备104还包括输入装置,诸 如键盘、触摸屏、用于接收音频信号的话筒和/或用于捕获视频信号的图像的摄像机。用户 设备104连接到网络106。
[0033]用户设备104执行由与通信系统100相关联的软件提供商提供的通信客户端106的 实例。通信客户端是在用户设备104中的本地处理器上执行的软件程序。客户端执行用户设 备104处所要求的处理以便用户设备104通过通信系统100发送和接收数据。
[0034]用户设备110还在本地处理器上执行与用户设备104处执行的通信客户端相对应 的通信客户端106'。用户设备110处的客户端以与用户设备104处的客户端执行用于允许用 户102通过网络106进行通信所需的处理相同的方式来执行用于允许用户108通过网络106 进行通信所需的处理。用户设备104和110是通信系统100中的端点。
[0035]为了清楚起见,图1仅显示了两个用户(102和108)和两个用户设备(104和110),但 是在通信系统100中可以包括更多的用户和用户设备,并且可以使用在相应的用户设备上 执行的相应的通信客户端来通过通信系统100进行通信。
[0036] 图2示出了用户设备104的详细视图,在用户设备上执行通过通信系统100进行通 信的通信客户端实例206。用户设备104包括中央处理单元("CPU")202形式的处理器。当然, 将意识到的是,处理器可以呈现为可选的形式,诸如包括多个CPU的多核处理器。下面的组 件连接到CPU 202:输出设备,包括显示器208(实现为例如触摸屏),以及用于输出音频信号 的扬声器210;输入设备,包括用于捕获音频信号的话筒212、用于捕获图像的摄像机216以 及键盘218;存储器214,用于存储数据;以及网络接口220,诸如用于与网络106通信的调制 解调器。显示器208、扬声器210、话筒212、存储器214、摄像机216、键盘218和网络接口 220集 成到用户设备104中,但是将意识到的是,作为可选方案,显示器208、扬声器210、话筒212、 存储器214、摄像机216、键盘218和网络接口 22中的一个或多个可以不集成到用户设备104 中,并且可以经由相应的接口连接到CPU 202。
[0037] 以视频帧序列形式的原始视频数据(在基本未经处理且未经操纵的意义上的"原 始")(由例如摄像机216的电荷耦合装置(CCD)图像传感器捕获的数字图像)输入到CPU 202。由(例如)话筒212捕获作为时变电压的音频信号被采样并转换成原始数字音频数据 (再一次的,其也是基本上未经处理和未经操纵的),这些原始数字音频数据输入到CPU 202〇
[0038]图2还示出了在CPU 202上执行的操作系统("0S")204。在0S 204之上运行的是通 信系统100的客户端实例206的软件。操作系统204管理计算机的硬件资源并且处理经由网 络接口 220发送到网络106以及从网络106发送的数据。客户端206与操作系统204通信且通 过通信系统来管理连接。客户端206具有用于将信息呈现给用户102且从用户104接收信息 的客户端用户接口。以这种方式,客户端206执行允许用户102通过通信系统100通信所需的 处理。
[0039] 具体地,客户端206执行用于允许用户102通过网络106进行语音和视频电话(为简 化下文称为"视频电话")所需的处理。也就是说,用户设备104的客户端206可操作用于经由 网络106发送和接收分组音频数据和同步的分组视频数据。发送的音频和视频数据最终从 由话筒212和摄像机216分别捕获的对应原始数据取得,并且如下面所论述的进行处理。
[0040] 在相对于对对应的原始音频/视频数据的捕获基本固定的延迟之后将每个数据分 组发送到用户设备110的意义上,该发送"实时"发生。也就是说,使得在捕获和发送之间没 有对延迟的累积(这将导致例如用户102说话的时间与用户110听到和看到她的说话的时间 之间的增大的不一致)。
[0041] 为了产生这些分组数据,客户端106处理原始音频和视频数据(以减小其相应的尺 寸等等)。具体地,客户端206包括用于实现用于对原始音频数据进行编码的一个或多个音 频处理算法的音频代码组件304。类似地,客户端206包括用于实现用于对原始视频数据进 行编码的一个或多个视频处理算法的视频代码组件306。组件406和306在作为客户端206的 一部分的CPU 202上执行且形成客户端206的媒体处理系统300的一部分。
[0042]音频和视频数据是按帧(即,一次一帧)来处理的。每个音频和视频数据帧包括至 少一个捕获的样本(分别来自话筒212的音频和来自摄像机216的图像)。例如,由话筒212捕 获的音频可以按照(例如)44.1 kHz的标准速率以及(例如)1
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1