具有索引编码和位安排的量化器的制作方法

文档序号:18706208发布日期:2019-09-17 23:44阅读:192来源:国知局
具有索引编码和位安排的量化器的制作方法

本申请要求2016年8月30日提交的美国临时申请no.62/381,479的权益,该美国临时申请通过引用整体并入本文。



背景技术:

高分辨率信号的传送通常包括经由用于对数据流在传送之前和之后进行编码和解码的编解码器设备的数据压缩和恢复。对更快速度和更高分辨率(例如,实时音频和视频)的要求已产生了一般对于数据信号的改进的编码和解码(特别对于高分辨率信号)的需求。传统的方法在许多实际应用中在它们适应这些要求的能力上已受限制,其中分辨率要求可以导致不可接受的慢速度。



技术实现要素:

某些实施例通过将有符号金字塔(pyramid)的矢量元素与包括第一部分和第二部分的编码值相关联使得能够实现系数的矢量的改进的编码和解码,其中第一部分标识无符号金字塔的对应矢量元素,并且第二部分表征有符号金字塔的矢量元素的非零分量的符号值。作为结果,诸如字大小的计算约束应用于无符号金字塔而不是有符号金字塔。无符号金字塔的较小的大小使得能够扩展在计算约束内可操作的有符号金字塔参数的范围。

一个实施例涉及对音频信号进行处理的方法。第一操作包括访问来自音频源的输入音频信号。第二操作包括通过确定多个编码值来对输入音频信号进行编码。多个编码值中的编码值包括第一部分和第二部分,第一部分包括对由矢量大小和量化参数定义的无符号金字塔的元素的索引,并且第二部分包括无符号金字塔的元素的每个非零分量的对应符号值。第三操作包括根据输入音频信号的编码对编码值进行解码以生成输出音频信号。第四操作包括将输出音频信号提供给音频播放器。与编码值的数据传送相关的附加操作可以包括在用于编码的第二操作和用于解码的第三操作之间。

另一个实施例涉及用于执行上述方法中的任何一个的装置,其中该装置包括用于执行与方法相关的指令的计算机。例如,计算机可以包括用于执行指令中的至少一些的处理器。附加地或替代地,计算机可以包括用于执行指令中的至少一些的电路系统或其它专用硬件。在一些操作设置中,该装置可以被配置为包括一个或多个单元的系统,每个单元被配置为以软件、硬件或其某种组合来执行方法的一些方面。方法的结果的至少一些值可以被保存以供稍后在计算机可读介质(包括存储器单元和存储设备)中使用。另一个实施例涉及计算机可读介质,该计算机可读介质存储(例如,有形地包含)用于利用计算机执行上述方法中的任何一个的计算机程序。以这些方式,所公开的实施例的方面使得能够在各种操作设置中实现信号的改进的编码和解码,并且响应于对更快速度和更高分辨率的不断增加的要求而提供计算机相关技术上的改进。

附图说明

在附图的图中通过示例而不是限制的方式例示某些实施例。

图1是示出对于矢量大小n=20以及量化参数k的各种值的有符号和无符号金字塔的大小的表格。

图2是示出对于矢量大小n和量化参数k的选择值的下整数限的示例值的表格。

图3是示出根据示例实施例的处理音频信号的方法的流程图。

图4是示出根据与图3的方法相关的示例实施例的通过确定编码值对输入音频信号进行编码的方法的流程图。

图5是示出根据与图3的方法相关的示例实施例的对编码值进行解码的方法的流程图。

图6是示出根据示例实施例的在图3的编码操作和解码操作之间包括与数据传送相关的可选操作的方法的流程图。

图7是示出根据与图3的实施例相关的示例实施例的用于处理音频信号的系统的图。

图8是示出根据与图3的实施例相关的示例实施例的用于处理音频信号的另一个系统的图。

图9是示出图8的编码器的实施例的进一步细节的图。

图10是示出图8的解码器的实施例的进一步细节的图。

图11是示出计算机处理系统的框图,在该计算机处理系统内可以执行用于使计算机执行本文所讨论的方法中的任何一个的指令集。

具体实施方式

以下的描述包括例示本公开的实施例的系统、方法、技术、指令序列和计算机程序产品。在以下描述中,出于解释的目的,阐述了许多具体细节以便提供对所公开主题的各种实施例的理解。然而,对于本领域技术人员将明白的是,可以在没有这些具体细节的情况下实践所公开主题的实施例。一般地,没有详细示出众所周知的指令实例、协议、结构和技术。

1.金字塔矢量量化器

对于正整数n;k,有符号金字塔s(n,k)表示来自的矢量(其l1范数等于k)的子集,其中表示整数的集合:

金字塔矢量量化器(pvq)将(其中表示实数的集合)中的矢量映射到s(n,k)中的矢量,对于某一正整数k,表征量化器分辨率的量化参数。在传统的编码应用中,矢量被量化为矢量y∈s(n,k),并且这个经量化的矢量然后被编码并传送到解码器,在该解码器中过程被反转。

对经量化的矢量y进行编码的一种方式是枚举(enumerate)集合s(n,k),即,对其元素进行排序,使得每个矢量y∈s(n,k)具有唯一的索引is(y),0≤is(y)<|s(n,k)|,其中|s|表示集合s的基数。然后,为了对y进行编码,传送其索引is(y)。在接收侧,解码器使用相同的枚举从其索引重构y。对于实际应用,枚举应当是高效可计算的,使得对于给定矢量y,可以高效地计算其索引is(y),并且反过来,对于给定索引is(y),可以高效地计算对应的矢量y。s(n,k)的这样高效的枚举对于针对pvq的编码领域的技术人员是已知的。索引本身的编码可以例如通过使用具有位(即,以2为底的对数的上整数限)的is(y)的二进制表示的固定长度码来实现。替代地,可以通过使用最佳二长度码来实现稍微更高效的编码,其中一些索引以位编码,而其余的索引以位(即,以2为底的对数的下整数限)编码,其中这种方法假定s(n,k)中的矢量上的均匀概率分布。

枚举算法涉及对大小粗略为log|s(n,k)|的整数的算术运算。在高效的计算机实现中,人们更愿意使这些整数适合所使用的处理器的自然字大小m(例如,m=32或m=64位)。这对pvq的可行参数n、k施加约束,使得log|s(n,k)|≤m。在实际应用中,情况常常是需要量化和编码相对长的矢量,对其具有给定的位预算b。如果b>m,那么这不能在一次编码中完成,因为大小为2b的金字塔对于单次编码来说太大了。常见的解决方案是将矢量划分成两半,并且在这两半之间分配预算(不一定按等份),如例如b=b1+b2-c那样,其中c表示描述预算分配或划分的其它特性对解码器的可能代价。然后可以尝试对每一半进行量化/编码,并且该过程可以递归地继续,直到要被编码的矢量的每个部分的预算bi满足bi≤m。

2.可变长度编码

如下面详细讨论的,某些实施例基于替代的编码过程,该替代的编码过程放松了对n和k的以上约束,从而允许大小可以大于2m的金字塔,使得在上述递归细分过程中分割的次数可以减少。对于正整数n、k,无符号金字塔p(n,k)表示s(n,k)中的矢量(其分量全部是非负的)的子集:

如下所述,矢量y∈s(n,k)的编码可以在两个步骤中执行,这两个步骤导致两个部分。

在第一步骤中,确定对应的矢量y′∈p(n,k),其被定义为y′i=|yi|,i≤i≤n。然后,在p(n,k)的枚举中找到并编码对应的索引ip(y′)。在假定p(n,k)中的矢量的均匀分布的情况下,这需要位,其中满足编码矢量的第一部分是索引ip(y′)。

在第二步骤中,y的每个非零分量(例如,条目)的符号可以由1位码表征。编码矢量的第二部分是这些符号的表征,可能简单的编码利用每个符号一位(例如,“0”表示“+”,“1”表示“-”)。

为了执行第一步骤,可以使用一般比s(n,k)小得多的p(n,k)的传统枚举。对操作的整数的大小的约束变为log|p(n,k)|≤m,其没有约束log|s(n,k)|≤m严格。

来自第二步骤的编码的第二部分相对小,不需要算术运算,并且不受任何特定限制。然而,这个部分的长度可以从1位直到min(n,k)位变化,这取决于假定为非零的y中的非零分量的数量。作为结果,与采用固定长度编码的传统方法相比,编码的这个部分可以具有可变长度。

图1中的表格示出了对于矢量大小n=20以及量化参数k的各种值的|p(n,k)|和|s(n,k)|的值。如表格的值所示,基于s(n,k)的枚举的传统方法在32位机器中被限制为k=10,而上述两步骤方法允许量化参数k的值对于32位机器高达16。通过比较,该表格示出传统方法对于k=16将需要对42位整数的操作,因此矢量将需要在那个量化等级作为编码过程的一部分进行分割。

除了上述在扩展pvq的可行参数的范围上的优点之外,还应当注意的是,与s(n,k)相比,p(n,k)是较简单的组合对象,所以对应的枚举算法因此也较简单。如下面所讨论的,p(n,k)的元素可以利用一次取(n-1)的(n+k-1)个元素的组合标识。

3.用于编码的量化等级

在具有m位机器的典型高分辨率编码应用中,给予位预算b和长度为n的矢量x,以利用对于高等级量化最大可用的量化参数k进行量化和编码。在上述利用固定长度编码的基于s(n,k)的枚举的传统方法的情况下,如果b≤m,那么找到满足|s(n,k)|≤2b的k的最大值。如果b>m,那么可以如上所述分割矢量。

对于基于如上所述的可变长度编码的实施例,码长度可以强烈地依赖于x,所以对于给定的位预算b和不同的x值,不同的量化等级是可能的。替代地,可以集中于找到与参数k对应的量化等级使得在平均上(例如,在从可能的矢量x均匀采样的许多编码操作上)实现界限。即,对于个别情况,实际的位消耗可以高于或低于设置的预算,只要长期平均满足预算即可。

对于某些实施例,可以通过以下方式来对于给定的矢量长度n确定量化参数k:评估预期的码长度,使得k的值产生相对地(或最佳地)接近位预算b的预期的码长度。在假定s(n,k)中的所有矢量可能性相等的情况下,预期的码长度由lk限定上界,该lk被定义为

其中z(n,k)是从p(n,k)随机选择的矢量中的零分量的预期数量。

为了评估lk的这个公式,p(n,k)中的矢量的数量是

例如,(n+k-1)个元素标记矢量元素之间的边界的位置加上对矢量元素的单式贡献的位置,其中一个矢量元素边界被固定为开始(例如,最左边或最右边)。然后,可以从(n+k-1)个可能的位置选择矢量元素的(n-1)个附加边界的位置。

z(n,k)的值是

在以上z(n,k)的公式中,因子是对于j个零分量的不同选择的数量,并且|p(n-j,k-n+j)|是维度为(n-j)的严格正整数矢量(其中分量总和为k)的数量。

上述公式可以用于导出对于给定的矢量大小n和位预算b确定最佳(或接近最佳)的量化参数k的表达式。对于大于1的整数n、b,函数k(n,b)被定义为k的值,使得最接近b,其中联系断开以有利于较大的k值。在一些操作设置中,可以存储对这个函数的预定估计以便于访问。例如,某些实施例包括用于近似于k的最佳值的以下函数形式:

其中系数c0(n)和ci(n)可以通过用于在相关值的范围上近似于k(n,b)的最小二乘拟合来获得。对于矢量长度n和位预算b的给定值,这个近似使得能够实现量化参数k的高效评估。图2示出了包括对于n和b的选择值的下整数限的示例值的表格。如以上关于图1的表格所讨论的,这使得能够在编码的平均上对于给定的位预算实现较高的量化等级。

4.方法实施例

尽管这里参考音频信号描述了某些实施例,但是数据处理领域的技术人员将意识到向替代数据集(例如,视频信号)的扩展。图3示出了根据示例实施例的处理音频信号的方法300。第一操作302包括访问来自音频源的输入音频信号(例如,经由麦克风)。

第二操作304包括对输入音频信号进行编码以确定编码值。编码值包括第一部分和第二部分,第一部分包括对由矢量大小和量化参数定义的无符号金字塔的元素的索引,并且第二部分包括无符号金字塔的元素的每个非零分量的对应符号值。

第三操作306包括根据输入音频信号的编码对编码值进行解码以生成输出音频信号。第四操作308包括将输出音频信号提供给音频播放器(例如,包括输出扬声器)。如下面所讨论的,通常在编码操作304和解码操作306之间执行与数据传送相关的可选操作310。

无符号金字塔通常如等式2中所定义。即,无符号金字塔包括矢量大小的多个矢量,并且无符号金字塔的多个矢量中的每一个具有非负整数矢量元素,其中非负整数矢量元素之和等于量化参数。如以上关于等式2所讨论的,编码值的第一部分可以包括位的第一序列,第一序列的长度基于无符号金字塔的大小从一个或多个值选择。如以上所讨论的,这个长度可以是基于无符号金字塔的大小的固定长度,或者稍微变化以最小化或减少位的数量,如在以上讨论的最佳二长度码中那样。另外,编码系数的第二部分可以包括位的第二序列,第二序列的可变长度基于在第一序列中编码的矢量的非零分量的数量。即,从第一部分识别的无符号金字塔元素包括多个非零分量,这多个非零分量的符号值(正或负)从第二部分识别,以便恢复对应的有符号金字塔元素。

相关的有符号金字塔通常如等式1中所定义。即,相关的有符号金字塔包括矢量大小的多个矢量,并且有符号金字塔的多个矢量中的每一个具有整数矢量元素,其中整数矢量元素的幅度之和等于量化参数。

如等式1和等式2所描述的,通过取矢量元素的绝对值(即,幅度),可以利用有符号金字塔的元素来标识无符号金字塔的每个元素。以这种方式,有符号金字塔的元素可以通过标识无符号金字塔的对应元素的第一部分和考虑矢量元素的省略的符号值的第二部分编码。应当注意的是,诸如第一和第二的词语在这里和其它地方仅用于标记目的,而不旨在表示任何具体的空间或时间顺序。此外,第一元素的标记并不暗含存在第二元素。

尽管图3的实施例公开了从输入音频信号到输出音频信号的操作,但是相关的实施例可以具体地集中在用于编码的操作304或用于解码的操作306上。

图4示出了根据示例实施例的通过确定编码值对输入音频信号进行编码的方法400(例如,如图3的操作304中那样)。第一操作402包括基于将输入音频信号应用于经修改的离散余弦变换(mdct)来计算频率变换系数。例如,无符号金字塔的矢量大小可以与mdct的频率维度或频率维度的一部分(例如,如果一些频率分量被忽略或与其它频率分量组合,或者如果完整的mdct谱被划分成较短的矢量)对应。

第二操作404包括利用量化参数对频率变换系数的矢量进行量化,以确定由矢量大小和量化参数定义的有符号金字塔(例如,等式1)的元素。即,频率分量可以被组合(例如,经由划分)、缩放、以及映射到整数值,使得整数矢量元素之和等于量化参数,该量化参数也是整数值。例如,基于实值矢量(例如,经缩放的频率分量的矢量),映射可以确定最佳地接近或充分地接近的整数值矢量。第三操作406包括从有符号金字塔的元素确定编码值的第一部分和第二部分,其中第一部分标识无符号金字塔(例如,等式2)的对应元素,并且第二部分表征有符号金字塔(例如,等式1)的元素的非零分量的符号值。可以执行类似的操作以确定编码操作304中的每个编码值,其中可以使用不同的金字塔,这取决于例如频率谱的划分和对于频率谱的部分的相关位预算。

图5示出了根据示例实施例的对编码值进行解码的方法500(例如,如图3的操作306中那样)。第一操作502包括从编码值确定经量化的频率变换系数。例如,对于以上关于图4讨论的编码值,通过使用编码值的第一和第二部分识别对于矢量大小和量化参数与无符号金字塔(例如,等式2)对应的有符号金字塔(例如,等式1)的元素(其中识别的有符号金字塔的元素包括从编码值的第二部分识别的符号值)来确定对应的经量化的频率变换系数。第二操作504包括从经量化的频率变换系数生成输出音频信号。这个第二操作504包括以上关于图4的操作404讨论的缩放操作的反转,使得相关的缩放因子(或编码矢量的范数)对于这个步骤一般可访问。

一般地,解码操作306与编码操作304一致,使得输出音频信号是输入音频信号的相对于量化参数和矢量大小的近似。即,与解码相关的操作包括根据矢量大小和量化参数反转与编码相关的操作。

如以上所提到的,在编码操作304和解码操作306之间通常执行与数据传送相关的操作310。图6示出了在编码操作304和解码操作306之间包括与数据传送相关的可选操作(例如,图3的操作310)的方法600。第一操作602包括在与编码相关联的第一位置处将编码值打包到位流中。第二操作604包括将位流从与编码相关联的第一位置传送到与解码相关联的第二位置。第三操作606包括在与解码相关联的第二位置处从位流解包编码值。

系统实施例

与上述方法实施例相关的系统实施例在复杂度上可以变化,其取决于操作设置的要求。图7示出了用于根据图3的方法300处理音频信号的系统。输入单元702被配置为访问来自音频源的输入音频信号。编码器704包括被配置为执行操作的一个或多个处理器,所述操作包括:对输入音频信号进行编码以确定编码值,编码值各自包括第一部分和第二部分,第一部分包括对由矢量大小和量化参数定义的无符号金字塔的元素的索引,并且第二部分表征无符号金字塔的元素的每个非零分量的符号值。解码器706包括被配置为执行操作的一个或多个处理器,所述操作包括:根据输入音频信号的编码对编码值进行解码以生成输出音频信号。输出单元708被配置为将输出音频信号提供给音频播放器。

与以上关于图6所讨论的类似,用于数据传送的附加的硬件单元710可以包括在编码器704和解码器706之间以用于与从与编码器704相关联的第一位置向与解码器706相关联的第二位置传送与编码值相关联的位流相关的操作。类似地,附加的硬件元件可以与由输入单元702访问的输入音频信号的音频源和由输出单元708提供输出音频信号的音频播放器相关联。

尽管图7的实施例公开了输入音频信号到输出音频信号之间的结构单元,但是相关的实施例可以具体地集中在编码器704或解码器706上。

图8示出了根据示例实施例的用于处理音频信号的更详细的系统800,其包括具有能量平滑的基于变换的编解码器。如下面所讨论的,图8的系统800可以被理解为图7的系统700的更具体的版本。

最初,在内容创建环境802(例如,与图7的输入单元702对应)中创建音频内容(诸如音乐或声乐轨道)。这个环境802可以包括多个麦克风804(或其它声音捕获设备)以记录音频源。替代地,音频源可以已经是数字信号,使得不需要使用麦克风来记录源。无论创建声音的方法如何,内容创建环境802的输出都是音频信号806(例如,以某种模拟格式表示)。

音频信号806然后经由具有能量平滑的基于变换的编码器808(例如,与图7的编码器704对应)进行编码。编码器808通常位于具有一个或多个处理设备的计算设备上。编码器808对音频信号806进行编码以生成经编码的位流810。

经编码的位流810通过递送环境812(例如,与图7的用于数据传送的硬件单元710对应)被递送以供收听者消费。若干递送选项是可用的,包括通过网络814进行流式递送。替代地,经编码的位流810存储在介质816(例如,光盘)上以供收听者消费。此外,存在这里没有枚举的、可以用于递送经编码的位流810的许多其它递送选项。

递送环境812的输出是传送的经编码的位流818,其被输入到具有能量平滑的基于变换的解码器820(例如,与图7的解码器706对应)。解码器820对传送的经编码的位流818进行解码以获得恢复的音频信号822。解码器820的实施例通常位于具有一个或多个处理设备的计算设备上。恢复的音频信号822在回放环境824中再现,该回放环境824包括回放扬声器(或声道)布局(例如,与图7的输出单元708对应)。回放扬声器布局与内容创建扬声器布局可以相同或可以不同。图8中所示的回放扬声器布局是11.2布局,并且环境824包括收听者826。在其它实施例中,回放扬声器布局可以包括耳机,使得扬声器仅仅是虚拟扬声器,声音似乎源自回放环境824中的该虚拟扬声器。例如,收听者826可以通过耳机收听恢复的音频信号822。在这种情况下,扬声器不是实际的物理扬声器(耳机除外),而是声音似乎源自例如与11.2环绕声扬声器配置对应的回放环境824中的不同空间位置。

图9示出了用于示例实施例的图8的具有能量平滑的基于变换的编码器808的进一步细节。(注意,对于一些实施例,能量平滑可以是可选的。)如图9中所示,从音频信号806(例如,经由频率变换电路)提取频率变换系数的块902。这些系数902被输入到正交变换和置换系统904,该正交变换和置换系统904生成经处理的频率变换系数906(例如,经由系数处理电路)。经处理的频率变换系数906然后由矢量量化器908(例如,量化器电路)处理。矢量量化器908的输出(例如,编码值)由生成经编码的位流810的位流打包系统910(例如,位流打包电路)处理。

频率变换系数的块902可以是经由如以上参考图4所描述的mdct处理从音频信号806提取的mdct系数。正交变换和置换系统904可以将来自单独的频率带的系数组合成经处理的频率变换系数906的矢量,以供矢量量化器908单独处理。正交变换和置换系统904还可以如在下面更详细地引用的美国申请no.15/253,646中所描述的那样在频率带内采用能量平滑。

在这个背景下,应当注意的是,将频率带划分为单独的频率段以供矢量量化器908单独处理通常对总体的计算开销具有显著影响,该总体的计算开销取决于表示音频信号所需的矢量量化的数量。如以上关于图1所讨论的,所公开的实施例使得较少的量化能够表示音频信号,因为表示较大频率段的较大大小的金字塔的元素可以在每个步骤被编码。即,可以在每次量化中编码较多信息,使得总体上需要较少的量化来表示音频信号。例如,在表示典型音频应用的计算实施例中,与传统方法相比,在表示音频信号所需的量化的数量中发现减少了5-25%。通常,划分和量化的数量随着可用于编码的总位数而增加,并且因此随着重构信号的质量而增加。在典型的嵌入应用(例如,音频解码器嵌入在数字电视机中)中,可用于解码音频的计算预算(每秒cpu周期数)受到严格限制。因此,所公开的实施例允许针对给定计算预算进行较高质量重构。即,所公开的实施例使得能够响应于音频处理的不断增加的要求而改进计算机相关的技术,使得可以在不损害对速度的要求的情况下处理较高分辨率的信号。

矢量量化器908然后可以根据图3的第二操作302确定经处理的频率变换系数906的编码值。位流打包系统910然后可以根据图6的第一操作602确定经编码的位流810。

图10示出了用于示例实施例的图8的具有能量平滑的基于变换的解码器820的进一步细节。(注意,对于一些实施例,能量平滑可以是可选的。)解码器820包括反转位流打包系统910的操作的位流解包1002(例如,经由位流解包电路),以及反转矢量量化器908的操作(类似于图3的第三操作306反转图3的第二操作304)的逆矢量量化器1004(例如,逆量化器电路)。逆矢量量化器1004输出接收的频率变换系数1006,其被输入到正交逆变换和置换系统1008,该正交逆变换和置换系统1008反转正交变换和置换系统904的操作并且生成恢复的频率变换系数的块1010(例如,经由逆系数处理电路)。解码器820的输出是恢复的音频信号822(例如,经由音频电路)。

与包括正交变换和置换系统904以及正交逆变换和置换系统1008的图8-10的元素相关的进一步细节在2016年8月31日提交的标题为“transform-basedaudiocodecandmethodwithsubbandenergysmoothing”的相关美国申请no.15/253,646中找到,该美国申请no.15/253,646全部内容通过引用并入本文。

5.附加的实施例

图11示出了计算机系统1100的示例形式的机器,在该计算机系统1100中可以执行用于使机器执行这里所讨论的方法中的任何一个或多个的指令。在替代实施例中,机器作为独立设备操作或者可以连接(例如,联网)到其它机器。在联网部署中,机器可以在服务器-客户端网络环境中以服务器或客户端机器的能力操作,或者在对等(或分布式)网络环境中作为对等机器操作。机器可以是个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、蜂窝电话、web装置、网络路由器、交换机或桥接器、或能够执行指定要由那个机器采取的动作的指令(顺序或其它方式)的任何机器。另外,虽然仅例示了单个机器,但是术语“机器”还应当被视为包括单独或联合执行指令的一个集合(或多个集合)以执行本文所讨论的方法中的任何一个或多个的任何机器的汇总。

示例计算机系统1100包括经由总线1108彼此通信的处理器1102(例如,中央处理单元(cpu)、图形处理单元(gpu)或两者)、主存储器1104和静态存储器1106。计算机系统1100还可以包括视频显示单元1110(例如,液晶显示器(lcd)或阴极射线管(crt))。计算机系统1100还包括字母数字输入设备1112(例如,键盘)、用户界面(ui)光标控制设备1114(例如,鼠标)、存储单元1116(例如,盘驱动器)、信号生成设备1118(例如,扬声器)和网络接口设备1120。

在一些背景下,计算机可读介质可以被描述为机器可读介质。存储单元1116包括机器可读介质1122,其上存储有实施或利用本文所描述的方法或功能中的任何一个或多个的数据结构和指令1124的一个或多个集合(例如,软件)。指令1124在其由计算机系统1100执行期间还可以完全或至少部分地驻留在静态存储器1106内、主存储器1104内、或者处理器1102内,其中静态存储器1106、主存储器1104和处理器1102也构成机器可读介质。例如,指令1124可以与上述方法中的任何一个或者实现那些方法中的任何一个的控制系统的元素对应。

虽然机器可读介质1122在示例实施例中被示为单个介质,但是术语“机器可读介质”和“计算机可读介质”均可以指存储数据结构和指令1124的一个或多个集合的单个存储介质或多个存储介质(例如,集中式或分布式数据库、和/或相关联的缓存和服务器)。这些术语还应当被视为包括任何有形或非瞬态介质,其能够存储、编码或携载供机器执行并且使机器执行本文所公开的方法中的任何一个或多个的指令,或者能够存储、编码或携载由这样的指令利用或与之相关联的数据结构。这些术语因此应当被视为包括但不限于固态存储器、光学介质和磁介质。机器可读或计算机可读介质的具体示例包括非易失性存储器,举例来说包括半导体存储器设备,例如可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)、以及闪存设备;磁盘,诸如内部硬盘和可移动盘;磁光盘;紧凑盘只读存储器(cd-rom)和数字多功能盘只读存储器(dvd-rom)。然而,术语“机器可读介质”和“计算机可读介质”旨在明确地排除非法定信号本身。

指令1124还可以使用传送介质通过通信网络1126传送或接收。指令1124可以使用网络接口设备1120和多个众所周知的传输协议(例如,超文本传输协议(http))中的任何一个传送。通信网络的示例包括局域网(lan)、广域网(wan)、互联网、移动电话网络、普通老式电话(pots)网络和无线数据网络(例如,wifi和wimax网络)。术语“传送介质”应当被视为包括任何无形介质,其能够存储、编码或携载供机器执行的指令,并且包括数字或模拟通信信号或便于这样的软件的通信的其它无形介质。

某些实施例在本文中被描述为包括逻辑或多个部件、模块或机制。模块可以构成软件模块或硬件实现的模块。硬件实现的模块是能够执行某些操作的有形单元,并且可以以某种方式配置或布置。在示例实施例中,一个或多个计算机系统(例如,独立的、客户端或服务器计算机系统)或一个或多个处理器可以通过软件(例如,应用或应用部分)配置为进行操作以执行如本文所描述的某些操作的硬件实现的模块。

在各种实施例中,硬件实现的模块(例如,计算机实现的模块)可以机械地或电子地实现。例如,硬件实现的模块可以包括持久地配置(例如,作为专用处理器,诸如现场可编程门阵列(fpga)或专用集成电路(asic))以执行某些操作的专用电路系统或逻辑。硬件实现的模块还可以包括可编程逻辑或电路系统(例如,包含在通用处理器或其它可编程处理器内),其通过软件临时地配置以执行某些操作。将意识到的是,在专用和持久地配置的电路系统中还是在临时地配置的电路系统中(例如,通过软件配置)机械地实现硬件实现的模块的决定可以通过成本和时间考虑来驱动。

因此,术语“硬件实现的模块”(例如,“计算机实现的模块”)应当被理解为包含有形实体,其是物理地构造、持久地配置(例如,硬连线)或者临时或瞬态地配置(例如,编程)为以某种方式操作和/或执行本文所描述的某些操作的实体。考虑其中硬件实现的模块被临时地配置(例如,编程)的实施例,硬件实现的模块中的每一个不需要在任何一个时刻被配置或实例化。例如,在硬件实现的模块包括使用软件配置的通用处理器的情况下,通用处理器在不同的时间可以被配置为相应不同的硬件实现的模块。软件可以相应地配置处理器,例如,以在一个时刻构成特定的硬件实现的模块,并且在不同的时刻构成不同的硬件实现的模块。

硬件实现的模块可以向其它硬件实现的模块提供信息并且从其它硬件实现的模块接收信息。因此,所描述的硬件实现的模块可以被视为通信地耦合。在同时存在多个这样的硬件实现的模块的情况下,可以通过连接硬件实现的模块的信号传送(例如,通过适当的电路和总线)来实现通信。在其中多个硬件实现的模块在不同的时间被配置或实例化的实施例中,可以例如通过在多个硬件实现的模块可访问的存储器结构中存储和检索信息来实现这样的硬件实现的模块之间的通信。例如,一个硬件实现的模块可以执行操作并将那个操作的输出存储在它通信地耦合的存储器设备中。另一个硬件实现的模块然后可以稍后访问存储器设备以检索和处理存储的输出。硬件实现的模块还可以发起与输入或输出设备的通信并且可以对资源(例如,信息的汇总)进行操作。

本文所描述的示例方法的各种操作可以至少部分地由临时地配置(例如,通过软件)或持久地配置为执行相关操作的一个或多个处理器来执行。不管是临时地配置还是持久地配置,这样的处理器都可以构成处理器实现的模块,其进行操作以执行一个或多个操作或功能。本文提到的模块在一些示例实施例中可以包括处理器实现的模块。

类似地,本文所描述的方法可以至少部分地是处理器实现的。例如,方法的操作的至少一些可以由一个或多个处理器或者处理器实现的模块执行。某些操作的执行可以在一个或多个处理器之间分配,不是仅驻留在单个机器内,而是跨多个机器部署。在一些示例实施例中,一个或多个处理器可以位于单个位置中(例如,家庭环境、办公室环境内或作为服务器群),而在其它实施例中,处理器可以跨多个位置分布。

一个或多个处理器还可以进行操作以支持“云计算”环境中的相关操作的执行或作为“软件即服务”(saas)。例如,操作中的至少一些可以由一组计算机(作为包括处理器的机器的示例)执行,这些操作可经由网络(例如,互联网)并且经由一个或多个适当的接口(例如,应用程序接口(api))访问。

6.结论

尽管以上仅详细地描述了某些实施例,但是本领域技术人员将容易意识到的是,在不实质脱离本公开的新颖教导的情况下,能够进行许多修改。例如,以上所公开的实施例的方面可以以其它组合进行组合以形成附加的实施例。因此,所有这样的修改旨在包括在本公开的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1