本申请要求2003年10月14日提交的名为“具有任意重放采样率的声学回波消除(ACOUSTIC ECHO CANCELLATION WITH ARBITRARY PLAYBACKSAMPLING RATE)”的美国临时专利申请序列号60/514,442的优先权,其整体通过引用结合于此。
具体实施方式
本发明提供了一种用于具有任意重放采样率的自适应子带声学回波消除(AEC)的系统和方法。一般而言,该系统和方法将重放信号变换到频域并将其采样率转换到与频域变换的接收信号关联的采样率。该转换可通过精确变换或通过在频域中内插重放信号来实现,以匹配用于适当数量的频率接收器(frequency bin)的接收信号的变换尺寸。合适的变换包括,例如,快速傅立叶变换(FFT)、加窗FFT和已调制复重叠变换(MCLT)。上述方法可在AEC体系结构内部执行,从而提供了对采用计算量浩大的采样率转换器的常规技术的改进。
参考附图描述本发明,贯穿附图,相同的标号用于标识相同的元件。在以下描述中,为解释之目的,陈述了多个具体细节以提供对本发明的完整理解。然而,很明显,本发明可以不采用这些具体细节来实践。在其它实例中,以框图形式示出了公知的结构和设备来方便描述本发明。
如本申请中所使用的,术语“组件”指计算机相关的实体,可以是硬件、硬件和软件的组合、软件或执行中的软件。例如,组件可以是,但不限于,运行在处理器上的进程、处理器、对象、可执行码、执行线程、程序和/或计算机。作为说明,运行在服务器上的应用程序和服务器都可以是计算机组件。另外,一个或多个组件可驻留在进程和/或执行线程中,并且组件可停留在一个计算机上和/或在两个或多个计算机之间分布。此外,组件可以是操作系统内核为执行而调度的实体(如,在进程中)。而且,组件可与上下文(如,系统注册表内的内容)相关联,它可以是与线程的执行关联的易失和/或非易失数据。
图1示出了一种回波消除系统100。回波消除系统100包括接收至少一个信号的输入组件110,以及从该信号中移除回波的信号处理组件120。如图所示,输入组件接收如130处描述的信号X,并将X传送到信号处理组件120。通常,X包括期望信号、噪声和与发送信号关联的回波。如下文指出的,可在信号传送的任一阶段(在由输入组件110接收之前、当由输入组件110接收时、在传送到信号处理组件120的过程中、当由信号处理组件120接收时、和/或当从信号处理组件120输出时)至少被部分地滤波。另一方面,回波通常由信号处理组件120移除。
回波移除可通过任一已知的回波移除算法来实现,如声学回波消除(AEC)和信号减法技术。例如,X可被适当地调节,然后可从X中减去与回波关联的信号。在另一示例中,将X的分量与同可从X中移除的回波关联的信号相关,其中,可定义一相关阈值(如,对能量标准化信号为0到1)来确定是否移除了相关分量。
可以理解,调节X可包括修改采样率、频率、周期、波长、振幅、极性、相位等。另外,这一修改可基于与回波关联的信号的类似特征来确定。可向信号处理组件120提供该信息,和/或信号处理组件120可例如通过信息提取、分析、推论、蕴含、历史等确定该信息。
从信号处理组件120输出140处的结果信号X′,它是移除了至少一部分回波的X。X′可被进一步处理、储存、传送到另一组件等。上述系统可用于从与实时或非实时应用关联的信号中移除回波,其中,期望信号可连同来自发送信号的回波一起接收。这类系统的示例包括但不限于,如,音频系统、语音识别系统和因特网游戏。
图2示出了回波消除系统200。回波消除系统200包括接收信号和/或关联的信息的输入组件210,以及使用该数据以从至少一个信号中移除回波的信号处理组件220。如图所示,输入组件210接收230处的信号X、240处的信号Y,并可任选地接收250处的信息I。可任选信息I可与接受信号的之一或两者相关联,并包括信号相关特征,如采样率、频率、周期、波长、振幅、极性、相位等。当未向输入组件210提供可任选信息I时,上述以及其它信号特征可通过诸如提取、分析、推论、蕴含、历史等技术来确定。
在接受信号X和Y,和/或可任选信息I之后,相应的数据可被传送到信号处理组件220。如上文简要描述的,信号处理组件220使用该数据以从信号X或Y的至少一个中移除回波。为解释目的,假定信号X是要回波移除的信号。通常,信号X包括期望信号、噪声和与信号Y关联的回波。如上所述,噪声可在信号传送的任一阶段至少部分地过滤,回波通常由信号处理组件220移除。可以理解,本质上可使用任一已知的算法来移除回波,如声学回波消除(AEC)和各种其它减法技术。例如,信号X和信号Y可被适当地调节,然后从信号X中减去信号Y以从信号X中移除与信号Y有关的回波。在另一示例中,可从信号X中移除与信号Y相关的信号X的分量,其中,可定义一相关阈值(如,对能量归一化信号为0-1)来确定是否移除了相关分量。
从信号处理组件220输出260处的结果信号X′,它是至少移除了与信号Y关联的回波的信号X。输出信号可被进一步处理、储存、传送到另一组件等。上述系统可用于从实时和非实时应用中移除回波,其中,期望信号可连同发送信号的回波一起接收。这类系统的示例包括但不限于,例如,音频系统、语音识别系统和因特网游戏。
可以理解,在任一阶段-由输入组件210接收之前、当由输入组件210接收时、在传送到信号处理组件220的过程中、当由信号处理组件220接收时、和/或当从信号处理组件220输出时-可调节或处理信号X和/或信号Y。例如,信号X和/或信号Y可被放大、过滤(如,移除噪声)、加密/解密、转换(如,模转数且反之亦然)、调制/解调、从载波中提取、移频、变换等。
图3示出了可用于从信号中移除回波的示例性信号处理系统300。系统300包括从信号中移除回波的滤波器310,以及向滤波器310提供方便回波移除的信息的转换器320。一般而言,滤波器310可接收包括期望信号和回波的第一信号,以及作为回波的来源的第二信号。滤波器310利用第二信号以从第一信号中移除回波。在从第一信号中移除回波之后,可从滤波器310输出结果信号。
转换器320可用于适当地修改第二信号。例如,转换器可重采样第二信号以匹配第一信号的采样率。当转换器320接收的第二信号的采样率小于或大于第一信号的采样率时,这是有益的。在第二信号的采样率小于或大于第一信号的情况下,可以确定第一信号的采样率(如,提供给转换器320并由转换器320确定),并用于方便第二信号的重采样以匹配第一信号的采样率。
作为示例,在本发明的一个方面,第一和第二信号可以是具有不同长度变换的频率变换信号。例如,第二信号的变换可由转换器320通过用于任意数量的频率接收器的内插(如,最近邻域、样条、其它多边形、非线性)来重采样。当第二信号变换的长度小于第一信号变换的长度时,内插可包括零填充(zero padding)来延伸变换长度,并且当第二信号变换的长度大于第一信号变换的长度时,内插可包括丢弃值来缩短变换。第二信号的内插变换然后可被传送到滤波器310,其可使用该变换以从第一信号的变换中移除回波。
为使用第一信号的采样率重采样第二信号,可向转换器320提供第一信号的采样率和/或第一信号,其中,转换器320确定第一信号的采样率。由于重采样第二信号以匹配第一信号的采样率,上述系统可提供具有任意重放采样率的自适应子带声学回波消除(AEC),它可以是对需要计算量浩大的采样率转换器的常规系统的改进。
图4示出了示例性基于子带的自适应AEC系统400,其组合了频域变换和采样率转换。要由发射器410(如,扬声器)以Fx415的采样率播放的405处的信号X被传送到数-模(D/A)转换器420。将425处的结果模拟信号提供给收发器410,其中,将该信号转换(如,通过变换传感器)成430处的音频信号。音频信号可被收听者听见、由环境结构吸收、和/或被环境435(如,墙)反射。这一反射可呈现为440处的回波,它可由接收器445(如,麦克风)在接收期望信号和/或噪声时并发接收。接收的信号以Fy450的采样率通过模-数(A/D)转换器455转换成数字信号。数字信号被传送到频域变换460,其中,将信号从时域变换到频域。
经变换的信号被传送到AEC系统465。音频信号X可通过频域变换470从时域变换到频域。如果音频信号X的采样率Fx415匹配采样率Fy450,则AEC算法可以Fy450的采样率运行频域变换(如,快速傅立叶变换(FFT)、加窗FFT或已调制复重叠变换(MCLT))。然而,当采样率Fx415和采样率Fy450不匹配时,通过采样率转换器475将音频信号X重采样到采样率Fy450。本质上可使用任一已知的转换方法来转换音频信号X的采样率以匹配Fy450。AEC算法然后可操作频域信号以生成480处本质上无回波的频域信号Z。系统400可用于在不使用常规系统通常采用的计算量浩大的采样率转换器的情况下移除回波。可从该新方法获益的应用的示例包括实时应用、语音识别和因特网游戏。
图5示出了描述可用于重采样信号的示例性内插(interpolation)的曲线图。如上所述,当重放采样率Fx415不匹配接收的采样率Fy450时,重采样重放信号的变换以匹配采样率Fy450。重采样变换尺寸可由方程式1定义。
方程式1:M=2^(「log2(N)」),
其中,N是精确的变换尺寸,M是2的幂的变换尺寸,「log2(N)」是log2(N)的天棚函数。
作为示例,为解释目的假定CD品质的音乐(如,具有20毫秒的缓冲器的44.1kHz采样率),本情况下精确MCLT变换的尺寸是N(如,882),内插MCLT的尺寸是M(如,1024)。与精确频域变换所需要的N点MCLT不同,M点MCLT可使用2M点(为减轻混叠,为2048)快速傅立叶变换(FFT)来实现。作为结果,可以远快于N点MCLT来实现M点MCLT。FFT的2M个样值通常大于常规系统中的2N(如,1764)个样值。以下四种方法(M大于N,且M和N是整数)可用于处理这一差异:
·以2M点窗和在时间上回叠的2M个数据样值内插;
·以2M点窗和在始端零填充的2N个数据样值内插;
·以2M点窗和在两端相等地零填充的2N个数据样值内插;或者
·以2M点窗和在末端零填充的2N个数据样值内插。
在运行更长的MCLT之后,可转换频域子带的采样率以匹配接收的采样数据的适当的频率接收器位置。该采样率转换可通过在所有频域接收器进行内插来完成。这在图5中描述,它示出了信号的频域系数的实部的线性内插。可以理解,可选和/或另外可使用其它类型的内插(如,更高阶、非线性、……)。在说明中,频域系数X
r(i)和X
r(i+1)的实部可分别在510和520处描述的频率接收器i和i+1上内插。这两个频域系数分别位于频率530(iΔX)和540((i+1)ΔX)处。线性内插
在550处以频率
描述。类似地,线性内插可用于频域系数的虚部。以下示出了用于从原始数据X(i)计算复数线性内插数据
的示例性伪代码:
i=0;j=0;
while(j<DesiredNumberFrequencyBins)
ic=iΔX
ic2=(i+1)ΔX
i=i+1;j=j+1;
i=i+1;
end
end,
其中,DesiredNumberFrequencyBins是用于重放信号的频域接收器的最小数量,必须计算它以匹配捕捉信号中的频域接收器的数量。
在本发明的另一方面,可采用方程式2中描述的形式扩展:
方程式2:
其中,
是线性内插变换的第m个频率接收器,αX(n)是变换信号x的系数α和第n个频率接收器的乘积,βX(n+1)是变换信号x的系数β和第n加1个频率接收器的乘积,λX(n+j)是变换信号x的系数λ和第n加j个频率接收器的乘积。
在一个具体的示例中,方程式2可缩减成方程式3:
方程式3:
其中,
方程式3可被表示成方程式4:
方程式4:
其中,ΔX是变换信号的频率接收器的宽度,
是期望信号的频率接收器的宽度。
图6示出了采用精确频域变换和采样率转换器来呈现有效的实时AEC算法的示例性基于子带的自适应AEC系统600。系统600类似于系统400,除系统600可选地采用使用精确长度的频域变换610来代替原始频域变换470之外。在该示例性实施例中,采样率转换器不需要执行频域内插;它仅丢弃系数(如果输出采样率较高),或执行零填充(如果输出采样率较低)。转换的信号和数字化的接收信号可被传送到AEC 465以生成620处本质上无回波的频域信号Z。
在本发明的一个方面,继续早先对CD品质重放的假定(具有20毫秒帧的44.1kHz采样率),N(如,882)点MCLT可通过2N(如,1764)点离散傅立叶变换(DFT)来实现。例如,值2N可由乘积2*2*3*3*7*7来确定,由此,MCLT可通过一般化的Cooley-Tukey DFT来实现。以下是示例性精确加窗方法,其中N是整数。
·2N点(如,1764)窗和2N(如,1764)个数据样值。
图7-8依照本发明示出了方法700和800。为简化解释,将方法描述为一系列行动。可以理解,本发明不被所示的行动和/或行动的顺序所局限,例如,行动可以各种顺序和/或并发出现,并且可与此处未呈现和描述的其它行动一起出现。此外,并非需要所有所示的行动来实现依照本发明的方法。另外,本领域的技术人员可以理解,方法可选地可通过状态图或事件被表示为一系列相关的状态。
图7示出了可用于本发明描述的系统的示例性回波消除方法700。在标号710,接收第一信号。第一信号可包括期望信号、回波和噪声。回波可同与第一信号的捕捉并发地发送的第二信号相关联,其中,第二信号可被结构反射并可由捕捉期望信号的同一接收器捕捉。噪声和/或回波可在处理的类似和/或不同阶段从第一信号中过滤。可使用各种技术来从第一信号中移除回波。例如,依照本发明的各方面,可采用声学回波消除(AEC)和信号减法技术。
在标号720,可获取第二信号。可以理解,可合适地调节第一和第二信号来方便回波消除。这一调节可包括修改采样率、频率、周期、波长、振幅、极性、相位、滤波、加密、解密、D/A、A/D、调制、解调、载波提取、变换等。另外,这一修改可基于与回波关联的信号的类似特征来确定。这一信息可提供给信号处理组件,和/或例如通过信息提取、分析、推论、蕴含、历史等来确定。
另外,例如,可重采样第二信号,使得第二信号采样率匹配第一信号的采样率。当接收的第二信号的采样率小于或大于第一信号的采样率时,这是有利的。在第二信号的采样率小于或大于第一信号的情况下,可确定第一信号的采样率,并用于方便第二信号的重采样,以匹配第一信号的采样率。作为示例,第一和第二信号可以是具有不同变换长度的频率变换信号。为匹配变换长度,可通过用于适当数量的频率接收器的内插(如,线性和非线性)来重采样第二信号的变换。当第二信号变换的长度小于第一信号变换的长度时,内插可包括零填充来延伸变换长度,当第二信号变换的长度大于第一信号变换的长度时,内插可包括丢弃值来减小变换尺寸。当第二信号变换的长度等于第一信号的变换长度时,可跳过内插,或使用具有变化函数1的算法。
在730,可结合回波消除技术使用第一和第二信号来呈现结果信号,即没有回波的第一信号。可传送结果信号用于进一步的信号处理或使用。上述方法可用于从与实时或非实时应用关联的信号中移除回波,其中,期望信号可连同来自发送信号的回波一起接收。这类系统的示例包括但不限于,例如,音频系统、语音识别系统、宽带通信和因特网游戏。上述方法提供了具有任意重放采样率的自适应子带声学回波消除(AEC),它可以是对需要计算量浩大的采样率转换器来处理捕捉和重放信号采样率差异或将重放采样率限制在接收信号的采样率上的常规系统的改进。
图8示出了示例性AEC方法800。在标号810,使用接收器(如,麦克风)来捕捉期望信号。接收器并发地捕捉背景噪声和与重放信号关联的回波。重放信号可以是转换(如,通过D/A转换器)到模拟音频并随后转换(如,通过扬声器)成声音的数字音频。声音可被收听者听见、由环境结构吸收、和/或被环境(如,墙)反射。这类反射可呈现为接收器捕捉的回波。
接收信号(期望信号、回波和噪声)可通过模-数(A/D)转换器转换成具有第一采样率的数字信号。在标号820,可将捕捉信号传送到频域变换,它可将数字信号从时域变换到频域。类似地,具有第二采样率(如,小于、等于或大于捕捉信号的采样率)的重放信号可被传送到频域变换,它可将重放信号从时域变换到频域。
在830,如果重放信号的采样率不匹配捕捉信号的采样率,则可对其重采样。这一重采样可通过内插或其它已知的采样技术来实现。在840,可将重采样重放信号变换和捕捉信号变换传送到AEC用于回波消除。AEC可采用任一已知的算法,如快速傅立叶变换(FFT)、加窗FFT或已调制复重叠变换(MCLT)来生成信号,它包括至少部分地移除了回波的期望信号。
方法800可用于在不使用常规系统通常采用的计算量浩大的采样率转换器的情况下移除回波。可从该新方法获益的应用的示例包括实时应用、语音识别、线回波消除、调制解调器(尤其是基于多音调制的调制解调器)、通信和因特网游戏。对于实时应用,可在没有明显的信号失真的情况下实现上述方法,这与需要高阶滤波器来避免明显的混叠因素的常规基于时域的采样率转换器不同。语音识别引擎通常以低于音乐重放的采样率(通常为16kHz或22.05kHz)从麦克风捕捉语音数据。由此,本发明可提供正常计算操作过程中的全带宽重放,以消除较高采样率的声音,如系统声音、音乐或DVD音频。同样,因特网游戏通常在互联网上发送用户的话音数据。该数据通常以较低的速率采样,如8kHz、11.025kHz或16kHz。然而,通常以较高的采样率播放游戏声音,如22.05kHz或44.1kHz。因此,可采用本发明来提供要播放的全带宽游戏声音。此外,本发明可在捕捉采样率高于重放采样率的情况下使用。例如,某些计算机游戏使用11.025kHz声音用于重放,但是话音可以16kHz在因特网上发送。
图9-12示出了使用本发明描述的频域内插和精确变换的AEC体系结构的示例性性能曲线图。对于这些结果,使用具有约16kHz(典型的宽带会议)的采样率的接收单声道信号,并使用具有约44.1kHz(典型的系统音频或CD品质音乐重放)的采样率的单声道重放信号。使用在尺寸约为10′×10′×8′的标准企业办公室中测得的转移函数来模拟接收的回波信号。用约44.1kHz的重放和接收采样率来估算办公室的转移函数。将音乐信号与办公室的转移函数卷积能够以约44.1kHz模拟回波。模拟的回波信号通过高质量多相滤波器向下采样到16kHz的期望接收采样率。
使用具有自适应子带滤波和基于MCLT的子带分解的子带AEC。然而,可以理解,可使用其它子带变换,如基于过采样FFT滤波器组的变换。使用320点MCLT来处理接收信号,并使用用于结合系统400所描述的以下三种内插方法的1024点MCLT来处理重放信号:
·以2048点窗和在时间上回叠的2048个数据样值的内插;
·以2048点窗和在始端零填充的1764个数据样值内插;以及
·以2048点窗和在两端相等地零填充的1764个数据样值内插,并使用用于结合系统600描述的以下内插方法的882点MCLT来处理重放信号:
·以1764点窗和1764个数据样值精确变换。
使用标准化最小均方(NLMS)技术处理相应的子带内的复合自适应滤波器。基于方程式5定义的以dB计算的回波损耗增强(ERLE)来比较结果:
方程式5:
其中,E{}是时间样值n处的期望值。非重叠N长度块的期望值由方程式6定义:
方程式6:
对于第k个数据块,其中,n是数据块的开始的时间索引,var{}是数据块的方差,d表示由于AEC处理而引起的延迟。对于使用MCLT的AEC处理,d等于两个数据帧(如,16kHZ的640个样值)。
开始参考图9,在910、920、930和940分别描述了精确、时间上反向重叠、始端零填充和两端零填充技术的ERLE曲线图。对于相应的曲线图,N等于帧尺寸的5倍,即对于20毫秒帧为100毫秒。图10示出了ERLE差异曲线图。曲线图1020、1030和1010分别示出了时间上回叠、始端零填充和两端零填充技术的ERLE与精确频域变换之间的差异。
图11和12示出了类似的数据、ERLE曲线图和差异曲线图,但是N等于2秒块的帧尺寸的100倍。图11在1110、1120、1130和1140分别示出了精确、时间上回叠、始端零填充和两端0填充技术的ERLE曲线图。图12示出了分别描述时间上回叠、始端零填充和两端零填充技术的ERLE和精确频域变换之间的差异的曲线图1210、1220和1230。
为向本发明的各方面提供环境,图13和14以及以下讨论旨在提供可在其中实现本发明的各方面的合适的计算环境的简要、一般描述。尽管上文在运行在计算机和/或多个计算机上的计算机程序的计算机可执行指令的上下文中描述了本发明,然而本领域的技术人员将认识到,本发明也可组合其它程序模块来实现。一般而言,程序模块包括例程、程序、对象、组件、数据结构等等,执行特定的任务或实现特定的抽象数据类型。
此外,本领域的技术人员可以理解,本发明的方法可以在其它计算机系统配置中实践,包括单处理器或多处理器计算机系统、小型计算设备、大型机、以及个人计算机、手持式计算设备、基于微处理器或可编程消费者电子设备等等。本发明所示的方面也可以在分布式计算环境中实践,其中,任务由通过通信网络连接的远程处理设备来执行。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。
参考图13,用于实现本发明的各方面示例性环境1310包括1312。计算机1312包括处理单元1314、系统存储器1316以及系统总线1318。系统总线1318将包括但不限于系统存储器1316的各类系统组件耦合至处理单元1314。处理单元1314可以是各种可用的处理器的任一个。双微处理器和其它多处理器体系结构也可用作处理单元1314。
系统总线1318可以是若干种总线结构类型的任一种,包括存储器总线或存储器控制器、外围总线以及使用各类总线结构的局部总线,包括但不限于,工业标准体系结构(ISA)、微通道体系结构(MCA)、增强ISA(EISA)、只能驱动器电子设备(IDE)、VESA局部总线(VLB)、外围部件互连(PCI)总线、通用串行总线(USB)、高级图形端口(AGP)、个人计算机存储卡国际协会总线(PCMCIA)以及小型计算机系统接口(SCSI)。
系统存储器1316包括易失存储器1320和非易失存储器1322。基本输入/输出系统(BIOS),包含如在启动时协助在计算机1312内的元件之间传输信息的基本例程,储存在非易失存储器1322中。作为说明而非局限,非易失存储器1322可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除ROM(EEPROM)或闪存。易失存储器1320包括随机存取存储器(RAM),它担当外部高速缓存存储器。作为说明而非局限,RAM以多种形式可用,如同步RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDR SDRAM)、增强SDRAM(ESDRAM)、同步链路DRAM(SLDRAM)和直接存储器总线RAM(DRRAM)。
计算机1312也包括可移动/不可移动、易失/非易失计算机存储媒质。作为示例,图13示出了磁盘存储1324。磁盘存储1324包括但不限于,诸如磁盘驱动器、软盘驱动器、磁带驱动器、Jaz驱动器、Zip驱动器、LS-100驱动器、闪存卡或记忆棒等设备。另外,磁盘存储1324可包括与其它存储媒质分离或组合的存储媒质,包括但不限于,诸如光盘ROM设备(CD-ROM)等光盘驱动器、CD可记录驱动器(CD-R驱动器)、CD可重写驱动器(CD-RW驱动器)或数字多功能盘ROM驱动器(DVD-ROM)。为方便将磁盘存储设备1324连接到系统总线1318,通常使用诸如接口1326等可移动或不可移动接口。
可以理解,图13描述了担当用户和合适操作环境1310中描述的基本计算机资源的中间人的软件。这类软件包括操作系统1328。操作系统1328可储存在磁盘存储1324上,行动来控制并分配计算机系统1312的资源。系统应用程序1330利用操作系统1328通过程序模块1332对资源的控制,以及储存在系统存储器1316或磁盘存储1324上的程序数据1334。可以理解,本发明可使用各种操作系统或操作系统的组合来实现。
用户通过输入设备1336向计算机1312输入命令或信息。输入设备1336包括但不限于,诸如鼠标、跟踪球等定位设备、输入笔、触摸板、键盘、麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪、TV调谐卡、数码相机、数码摄像机、web相机等等。这些和其它输入设备通过系统总线1318经接口端口1338连接到处理单元1314。接口端口1338包括,例如,串行端口、并行端口、游戏端口、通用串行总线(USB)。输出设备1340使用某些与输入设备1336同一类型的端口。由此,例如,USB端口可用于向计算机1312提供输入,并从计算机1312向输出设备1340输出信息。提供输出适配器1342来说明有某些输出设备1340,如监视器、扬声器和打印机以及需要特殊适配器的其它输出设备1340。输出适配器包括,作为说明而非局限,提供输出设备1340和系统总线1318之间的连接手段的视频和声音卡。应当注意,其它设备和/或设备的系统提供了输入和输出能力,如远程计算机1344。
计算机1312可以在使用到一个或多个远程计算机,如远程计算机1344的逻辑连接的网络化环境中操作。远程计算机1344可以是个人计算机、服务器、路由器、网络PC、工作站、基于微处理器的器件、对等设备或其它公用网络节点,并通常包括许多或所有上述与计算机1312相关的元件。为简明目的,仅示出了存储器存储设备1346用于远程计算机1312。远程计算机1344通过网络接口1348逻辑地连接到计算机1312,然后通过通信连接1350物理地连接。网络接口1348包括通信网络,如局域网(LAN)和广域网(WAN)。LAN技术包括光纤分布式数据接口(FDDI)、铜缆分布式数据接口(CDDI)、以太网、令牌环等等。WAN技术包括但不限于,点对点链路、诸如综合服务数字网络(ISDN)及其变异的电路交换网络、分组交换网络和数字用户线(DSL)。
通信连接1350涉及用于将网络接口1348连接到总线1318的硬件/软件。尽管示出通信连接1350在计算机1312内,它也可以对计算机1312是外部的。连接到网络接口1348所必需的硬件/软件包括,仅为示例目的,外部和内部技术,如包括常规电话级调制解调器、电缆调制解调器和DSL调制解调器等调制解调器、ISDN适配器和以太网卡。
图14是本发明可与其交互的示例计算环境1400的示意性框图。系统1400包括一个或多个客户机1410。客户机1410可以是硬件和/或软件(如,线程、进程、计算设备)。系统1400也包括一个或多个服务器1420。服务器1420也可以是硬件和/或软件(如,线程、进程、计算设备)。例如,服务器1420可容纳线程以通过采用本发明执行变换。客户机1410和服务器1420之间的一种可能的通信可以适用于在两个或多个计算机进程之间传输的数据分组的形式。系统1400包括可用于方便客户机1410和服务器1420之间的通信的通信框架1440。客户机1410可操作地连接至可用于储存对客户机1410本地的信息的一个或多个客户机数据存储1450。类似地,服务器1420可操作地连接至可用于储存对服务器1420本地的信息的一个或多个服务器数据存储1430。
上文所描述的包括本发明的示例。当然,为描述本发明的目的,不可能描述组件或方法的每一可想到的组合,但是本领域的普通技术人员可认识到,可以有本发明的许多其它的组合和改变。因此,本发明旨在包含处于所附权利要求书的精神和范围之内的所有这样的变更、修改和变化。
特别地并关于上文描述的组件、设备、电路、系统等执行的各种功能,术语(包括对“装置”的参考)用于描述对应于执行所描述的组件(如,功能等效物)的指定功能的任一组件的这类组件,除非另外指明,即使它们与所揭示的结构在结构上不等效,这些组件执行此处示出的本发明的示例性各方面的功能。在这一点上,可以认识到,本发明包括用于执行本发明的各种方法的行动和/或事件的系统以及具有这些计算机可执行指令的计算机可读媒质。
另外,尽管就若干实现的仅其中一个揭示了本发明的具体特征,然而这一特征可与给定或特定应用所期望并对其有利的其它实现的一个或多个其它特征相组合。此外,在详细描述或权利要求书中使用了术语“包括”及其变异的意义上,这些术语意味着以与术语“包含”类似的方式是包含性的。