用于错误校正数据的偏移选择的制作方法

文档序号:12143372阅读:280来源:国知局
用于错误校正数据的偏移选择的制作方法与工艺

本申请案主张2015年6月24日申请的美国专利申请案第14/749,474号、2014年7月22日申请的美国临时专利申请案第62/027,595号,以及2014年8月26日申请的美国临时专利申请案第62/042,013号的优先权,全部所述申请案的名称为“用于错误校正数据的偏移选择”,其内容全部并入本文中。

技术领域

本发明大体上涉及用于错误校正数据的偏移选择。



背景技术:

技术的进步已经带来更小且更强大的计算装置。例如,当前存在多种便携式个人计算装置,包含无线电话,例如移动和智能电话、平板计算机和膝上型计算机,其体积小、重量轻,且易于由用户携带。这些装置可经由无线网络传送话音和数据包。另外,许多此类装置并入有额外功能性,例如数字静态相机、数码摄像机、数字记录器和音频文件播放器。而且,此类装置可处理可执行指令,包含软件应用程序,例如可用以接入因特网的网络浏览器应用程序。由此,这些装置可包含大量计算能力。

源装置(例如,第一电子装置)可向目的地装置(例如,第二电子装置)发送包。由于网络条件,包可能会无次序地到达目的地装置。目的地装置可在去抖动缓冲器中存储接收到的包,并且如果接收到的包是无次序的,那么可重新布置接收到的包。目的地装置可基于接收到的包,重构建数据。由源装置发送的特定包可能不会被目的地装置接收到,或可能被目的地装置错误地接收到。目的地装置可能不能够恢复与所述特定包相关联的数据的全部或一部分。



技术实现要素:

根据一个实施方案,方法包含在第一装置的解码器处,确定对应于第一特定包和第二特定包之间的偏移的偏移值。第一装置包含去抖动缓冲器。在某些情形中,特定包可处于去抖动缓冲器中,并且可基于由去抖动缓冲器接收到的包的统计测量值,确定偏移值。所述方法还包含向第二装置的编码器发射偏移值,以使得第二装置能够基于所述偏移值而向第一装置发送包。

根据另一实施方案,装置包含去抖动缓冲器,其经配置以存储一或多个包。装置还包含解码器,其经配置以确定对应于第一特定包和第二特定包之间的偏移的偏移值。在某些情形中,特定包可处于去抖动缓冲器中,并且可基于由去抖动缓冲器接收到的包的统计测量值,确定偏移值。装置进一步包含发射器,其经配置以向第二装置发射偏移值,以使得第二装置能够基于所述偏移值而向所述装置发送包。

根据另一实施方案,非暂时性计算机可读媒体包含指令,所述指令在经第一装置执行时,使得第一装置确定对应于第一特定包和第二特定包之间的偏移的偏移值。第一装置包含去抖动缓冲器。在某些情形中,特定包可处于去抖动缓冲器中,并且可基于由去抖动缓冲器接收到的包的统计测量值,确定偏移值。指令还可执行以使第一装置向第二装置发射偏移值,以使得第二装置能够基于所述偏移值而向第一装置发送包。

根据另一实施方案,装置包含用于存储一或多个包的装置和用于确定对应于第一特定包和第二特定包之间的偏移的偏移值的装置。在某些情形中,特定包可处于用于存储一或多个包的装置中,并且基于由用于存储一或多个包的装置接收到的包的统计测量值,确定偏移值。装置还包含用于向第二装置发射偏移值,以使得第二装置能够基于所述偏移值而向所述装置发送包的装置。

附图说明

图1是经操作以确定偏移值从而检索包的部分冗余信息的系统;

图2是包含在早先时间发送的包的部分副本的包;

图3是经操作以确定偏移值从而改进丢失的包恢复的方法的过程图;

图4是用于确定偏移值以改进丢失的包恢复的状态图;

图5是具有经操作以承载偏移值的代码模式请求字段的实时传输协议有效负载标头;

图6是展示确定偏移值以检索丢失的包的部分冗余信息的方法的流程图;以及

图7是经操作以确定偏移值从而检索丢失的包的部分冗余信息的装置的框图。

具体实施方式

本文中所描述的原理可应用(例如)到耳机、手机,或经配置以基于包发射错误恢复,执行冗余的其它音频装置。除非通过其上下文明确限制,否则在本文中使用术语“信号”来指示其一般含义中的任一者,包含如在导线、总线或其它发射媒体上表达的存储器位置(或存储器位置集合)的状态。除非通过其上下文明确限制,否则在本文中使用术语“产生”来指示其一般含义中的任一者,例如计算或以其它方式生成。除非通过其上下文明确限制,否则在本文中使用术语“计算”来指示其一般含义中的任一者,例如计算、评估、估计,和/或从多个值中选择。除非通过其上下文明确限制,否则使用术语“获得”来指示其一般含义中的任一者,例如计算、导出、接收(例如,从另一组件、块或装置),和/或检索(例如,从存储寄存器或存储元件阵列)。

除非通过其上下文明确限制,否则使用术语“生成”来指示其一般含义中的任一者,例如计算、产生,和/或提供。除非通过其上下文明确限制,否则使用术语“提供”来指示其一般含义中的任一者,例如计算、产生,和/或生成。除非通过其上下文明确地限制,否则使用术语“耦合”来指示直接或间接电连接或物理连接。如果连接是间接的,那么所属领域的技术人员将充分理解,所“耦合”的结构之间可存在其它块或组件。

术语“配置”可参考如通过其特定上下文指示的方法、设备/装置,和/或系统来使用。在本发明的说明书和权利要求书中使用术语“包括”时,并不排除其它元件或操作。使用术语“基于”(如在“A基于B”中)来指示其一般含义中的任一者,包含情况(i)“至少基于”(例如“A至少基于B”),以及(如果在特定上下文中合适)(ii)“等于”(例如“A等于B”)。在其中A基于B包含至少基于的情况(i)下,此可包含其中A耦合到B的配置。类似地,使用术语“响应于”来指示其一般含义中的任一者,包含“至少响应于”。使用术语“至少一个”来指示其一般含义中的任一者,包含“一或多个”。使用术语“至少两个”来指示其一般含义中的任一者,包含“两个或两个以上”。

术语“设备”和“装置”通用地且可互换地使用,除非特定上下文另有指示。除非另有指示,否则对具有特定特征的设备的操作的任何揭示内容还明确地希望揭示具有类似特征的方法(且反之亦然),且对根据特定配置的设备的操作的任何揭示内容还明确地希望揭示根据类似配置的方法(且反之亦然)。术语“方法”、“过程”、“程序”和“技术”通用地且可互换地使用,除非特定上下文另有指示。术语“元件”和“模块”可用于指示较大配置的一部分。通过参考文档的一部分进行的任何并入也应理解为并入了在所述部分内参考的术语或变量的定义,其中此类定义出现在文档中的其它地方,以及并入了在所并入部分中参考的任何图。

如本文所使用,术语“通信装置”是指可用于经由无线通信网路进行话音和/或数据通信的电子装置。通信装置的实例包含蜂巢式电话、个人数字助理(PDA)、手持型装置、耳机、无线调制解调器、膝上型计算机、个人计算机等。本文中所描述的装置可与一或多个移动电信技术兼容。例如,本文中所描述的装置可与第三代(3G)移动电信技术、第四代(4G)移动电信技术和/或第五代(5G)移动电信技术兼容。另外地或在替代方案中,本文中所描述的装置可与不同标准(例如,长期演进(LTE)无线通信标准、LTE-A无线通信标准、全球微波接入互操作性(WiMAX)无线通信标准等)兼容。

参看图1,揭示了经操作以确定偏移值从而检索丢失的包的部分冗余信息的系统,所述系统总体上标示为100。系统100包含经由网络150与一或多个其它装置(例如,第二装置122)通信的第一装置102。第一装置102可经由网络150并使用第一路径152向第二装置122发送数据,第二装置122可经由网络150并使用第二路径154向第一装置102发送数据。

第一装置102可经由第一反向信道152a(例如,第一反向链路)和第一前向信道154b(例如,第一前向链路)与网络150通信。例如,第一装置102可使用第一反向信道152a向网络150发射数据,并且第一装置102可使用第一前向信道154b从网络150接收数据。第二装置122可经由第二反向信道154a(例如,第二反向链路)和第二前向信道152b(例如,第二前向链路)与网络150通信。例如,第二装置122可使用第二反向信道154a向网络150发射数据,并且第二装置122可使用第二前向信道152b从网络150接收数据。

网络150可包含一或多个基站或存取点,以在第一装置102和第二装置122之间传送数据。如本文所使用,经由第一路径152传送的数据(例如,包、帧、偏移值、应答等)对应于经由第一反向信道152a从第一装置102向网络150发射且在第二装置122处经由第二前向信道152b从网络150接收的数据。以类似方式,经由第二路径154传送的数据对应于从第二装置122经由第二反向信道154a向网络150发射且在第一装置102处经由第一前向信道154b从网络150接收的数据。

装置102、122可包含与图1中所说明的相比更少或更多的组件。例如,装置102、122可包含一或多个处理器、一或多个存储器单元或这两者。根据一个实施方案,第一装置102和/或第二装置122可为智能电话、蜂窝式电话、移动通信装置、膝上型计算机、计算机、平板计算机、PDA、机顶盒、视频播放器、娱乐单元、显示装置、电视、游戏控制台、音乐播放器、收音机、数字视频播放器、数字视频光盘(DVD)播放器、调谐器、相机、导航装置,或其组合。此类装置可包含用户接口(例如,触摸屏、话音识别能力或其它用户接口能力)。

第一装置102包含第一语音声码器104、接收器106和发射器108。第一语音声码器104包含编码器110、去抖动缓冲器112和解码器114。第二装置122包含第二语音声码器124、接收器126和发射器128。第二语音声码器124包含编码器130、去抖动缓冲器132和解码器134。如本文所描述,第一装置102将被描述为“接收端”,第二装置122将被描述为“发射端”。例如,第二装置122可发射由第一装置102接收的包。然而,在其它实施方案中,每一装置102、122可同时操作为接收端和发射端。例如,第一装置102可经由第一路径152向第二装置122发射包(例如,经由第一反向信道152a向网络150发射包),并同时经由第二路径154从第二装置122接收包(例如,经由第一前向信道154b从网络150接收包)。另外,第二装置122可经由第二路径154向第一装置102发射包(例如,经由第二反向信道154a向网络150发射包),并同时经由第一路径152从第一装置102接收包(例如,经由第二前向信道152b从网络150接收包)。

接收器106可经配置以经由第二路径154从第二装置122接收数据(例如,一或多个包)。为了说明,发射器128可经配置以经由第二反向信道154a向网络150发射第一包160、第二包162和第N包164。接收器106可经配置以经由第一前向信道154b从网络150接收第一包160、第二包162和第N包164。N可为大于零的任何整数值。例如,如果N等于十二,那么可经由第二路径154从第二装置122向第一装置102传送十二个包。

接收器106可向去抖动缓冲器112提供接收到的包160到164。去抖动缓冲器112可经配置以存储(例如,缓冲)由接收器106接收到的包160到164。为了说明,去抖动缓冲器112可具有存储数目为“D”的包的存储容量(例如,“深度”)。由于无线网络150的动态性质,包160到164可无次序的到达。例如,由于网络延迟、数据处理容量、无线信号条件、网络负载等,第二包162可在第一包160到达接收器106之前到达接收器106。通过缓冲由接收器106接收到的包160到164,并每隔一定间隔(例如,大约每20毫秒(ms)一次)向解码器114提供包,去抖动缓冲器112可经配置以“吸收”或减小包到达时间的抖动(例如,延迟)。

如果包160到164是无次序的,那么解码器114可在去抖动缓冲器112中对包160到164中的一或多个重排序。另外,由第二装置122发送的一或多个包160到164可能不会被第一装置102接收到,或可能被第一装置102错误地接收到。例如,由于丢包,包(例如,第一包160)可能不会被接收器106接收到,或者由于网络条件,包可能被接收器106部分地接收到。解码器114可确定特定包是否从去抖动缓冲器112中遗失。

为了规避由丢包(包被错误地接收到)导致的解码器114处的问题,随后的包可包含与丢失的包相关联的错误校正数据。根据一个实施方案,错误校正数据可包含丢失的包的部分副本。因此,响应于确定丢失的包从去抖动缓冲器112中遗失,解码器114可从去抖动缓冲器112中检索随后包(具有与丢失的包相关联的错误校正数据)。

例如,如果当解码器114尝试从去抖动缓冲器112中检索第一包160并对第一包160进行解码时,解码器114确定第一包160(例如,“当前帧”)从去抖动缓冲器112中遗失(或包含错误),那么解码器114可确定随后包(包含与第一包160相关联的错误校正数据或部分冗余)是否存储在去抖动缓冲器112中。

为了说明,第二包162可包含第一包160的部分副本。参看图2,第二包162可包含第二包数据和与第一包160相关联的第一包数据的部分冗余副本。因此,当前帧(例如,第一包160)的部分冗余副本可与随后帧(例如,第二包162)复用。如果当前帧的部分副本被添加到在当前帧之后不超过“D”时间单位发射的随后帧中,那么这存在相对较高的可能性:当解码器114尝试对当前帧进行解码时,随后帧将处于去抖动缓冲器112中。因此,参看图1到2,如果第一包数据的部分冗余副本被添加到第二包162中,那么这存在相对较高的可能性:如果在第一包160之后不超过“D”时间单位发射第二包162,那么第二包162将处于去抖动缓冲器112中(当解码器114尝试对第一包160进行解码时)。

解码器114可经配置以轮询去抖动缓冲器112,以确定随后包(包含与第一包160相关联的错误校正数据或部分冗余)是否存储在去抖动缓冲器112中。例如,解码器114可针对第二包162轮询去抖动缓冲器112。如果第二包162在去抖动缓冲器112中可用,那么解码器114可使用(第二包162中的)第一包数据的冗余副本来合成第一包160,这相对于擦除隐藏(例如,跳过与第一包160相关联的解码功能)可产生明显的质量改进。

基于随后包(例如,第二包162)中的第一包160的部分副本“恢复”丢失的包(例如,第一包160)的可能取决于随后包在去抖动缓冲器112中是否可用。基于由去抖动缓冲器112接收的包的统计测量值(例如,去抖动缓冲器112的轮询历史),解码器114可确定并动态地调整当前包和具有当前包的部分副本的随后包之间的偏移值(“X”)(例如,FEC偏移值),如相对于图3所描述。

例如,每一包160到164可包含对应于包160到164从第二装置122发射的次序的序号。作为非限制性实例,第一包160可包含序号“1”,第二包162可包含序号“2”,第N包164可包含序号“N”等。当前帧(例如,第一包160)和包含与当前帧相关联的错误校正数据的随后帧(例如,第二包162)之间的偏移值(“X”)对应于当前帧的序号和随后帧的序号之间的差。

根据一个实施方案,可在包中分配两个位以指示偏移值(“X”)。所述两个位可对应于四个可能偏移值(例如,2、3、5或7)中的一个。为了说明,如果分配在包中的两个位指示“00”,那么偏移值可等于2。如果分配在包中的两个位指示“01”,那么偏移值可等于3。如果分配在包中的两个位指示“10”,那么偏移值可等于5。如果分配在包中的两个位指示“11”,那么偏移值可等于7。

参看图3,过程图300展示了经操作以使用第一语音声码器104的组件确定偏移值从而改进丢失的包恢复的方法。过程图300描绘去抖动缓冲器112和多个处理步骤302到312。每一处理步骤302到312可由第一语音声码器104的解码器114执行。

接收器106可向去抖动缓冲器112提供第二包162、第三包360、第四包362和第N包164。在302处,解码器114可确定第一包160(例如,第一语音帧)在去抖动缓冲器112中是否可用。例如,解码器114可针对第一包160轮询去抖动缓冲器112。如果解码器114确定第一包160在去抖动缓冲器112中可用,那么在304处,解码器114可对第一包160进行解码。

如果解码器114确定第一包160在去抖动缓冲器112中不可用,那么解码器114可针对包含与第一包160相关联的错误校正数据的随后包轮询去抖动缓冲器112(例如,针对第二包162轮询去抖动缓冲器112),并在304处,对随后包进行解码。另外,响应于第一包160在去抖动缓冲器112中不可用的确定,解码器114可确定/更新偏移值以改进丢失的包恢复。

例如,在306处,解码器114可确定在过去的“M”个包中丢失(或包含错误)的包的数目,其中M是大于1的任何整数。例如,在306处,如果M等于20,那么解码器114可确定在过去的20个包中丢失的包的数目。在312处,可向实施去抖动缓冲器控制算法的处理器提供在过去的M个包中丢失的包的数目。

另外,在308处,解码器114可确定去抖动缓冲器112中的每一可用的随后包的序号。例如,解码器114可确定第二包162的序号、第三包360的序号、第四包362的序号、第N包164的序号等。

在310处,解码器114可基于当出现丢包时处于去抖动缓冲器112中的包的偏移值的历史,确定特定偏移值(例如,“最佳”FEC偏移值(Xopt))。在308处,确定可基于去抖动缓冲器112中的每一包的序号。根据一个实施方案,解码器114可使用概率质量函数P(x|L)来确定最佳FEC偏移值(Xopt)。概率质量函数P(x|L)可表达为:

其中,k对应于丢失的包(例如,第一包160),K对应于在特定时段内丢失的全部包,L对应于在特定时段内丢失的全部包和在所述特定时段内处于去抖动缓冲器112内的全部包,且Фk(x)对应于有关包是否处于去抖动缓冲器112中的指示函数。例如,Фk(x)可表达为:

因此,方程式1的分子可对在特定时段期间具有相对于每一丢失的包的偏移(x)的包处于去抖动缓冲器112中的例子进行跟踪(例如,求和)。参看方程式1的分母,D可对应于去抖动缓冲器112的深度。因此,方程式1的分母可提供归一化值(例如,特定时段内所有可能的偏移的值)。

通过确定最大偏移(x)(例如,在特定时段中出现最频繁的偏移),可计算最佳FEC偏移值(Xopt)。例如,最佳偏移值(Xopt)可表达为:

Xopt=argmax P(x|L) (方程式3)

在具有从丢失的包(k)(例如,第一包160)偏移最佳FEC偏移值(Xopt)的序号的随后包中存储丢失的包(k)的错误校正数据可增加丢失的包(k)的错误校正数据处于去抖动缓冲器112中的可能性。因此,可执行特定偏移值(例如,最佳FEC偏移值(Xopt))的计算,以使得可基于先前包擦除的有限历史的包擦除统计数据,使用包数据的冗余副本来恢复相对较大数目(例如,最大数目)的包擦除。

可向图1的发射器108提供最佳FEC偏移值(Xopt)以发射到第二装置122的编码器130,如下所述。在312处,还可向实施去抖动缓冲器控制算法的处理器提供最佳FEC偏移值(Xopt)。去抖动缓冲器控制算法可经配置以基于丢失的包的数目和最佳FEC偏移值(Xopt)而调整去抖动缓冲器112的深度(D),从而实现延迟和丢包之间的平衡。

返回参看图1,解码器114可向发射器108提供偏移值166(例如,最佳FEC偏移值(Xopt)),并且发射器108可向第二装置122的接收器126发射偏移值166。

根据另一实施方案,通过以迭代方式将偏移值166设置成若干试验值中的每一个,并向第二装置122(例如,编码器130)发射作为偏移值166的所述试验值,解码器114可确定“最佳”FEC偏移值(Xopt)。基于使用不同试验值的编码器130和解码器114之间的通信,解码器114可针对每一试验值,确定恢复丢失的包的部分冗余副本的概率。

作为非限制性实例,解码器114可将偏移值166设置成“1”(例如,最小偏移值),并向编码器130发射所述偏移值166。基于偏移值166,编码器130可在下一个随后包中提供用于特定包的部分冗余副本。每当解码器114尝试对丢失的包进行解码时,解码器114可轮询去抖动缓冲器112,以确定丢失的包的“冗余包”(例如,包含所述丢失的包的部分冗余副本的包)是否处于去抖动缓冲器112中(例如,针对具有从丢失的包的序号逐一偏移的序号的包轮询去抖动缓冲器112)。如果冗余包处于去抖动缓冲器112中,那么针对具有值“1”的偏移值166,成功解码丢失的包的概率增加。如果冗余包不处于去抖动缓冲器112中,那么针对具有值“1”的偏移值166,成功解码丢失的包的概率降低。例如,概率可等于当检测到丢失的包时冗余包处于去抖动缓冲器112中的次数除以检测到的丢失的包的数目。

在特定时间段之后(或在尝试对特定数目的丢失的包进行解码之后),解码器114可将偏移值166递增到“2”,并向编码器130发射所述偏移值166。基于递增的偏移值166,编码器130可在从特定包偏移2的随后包中提供用于所述特定包的部分冗余副本。以类似方式,当解码器114尝试对丢失的包进行解码时,解码器114可轮询去抖动缓冲器112,以确定所述丢失的包的冗余包是否处于去抖动缓冲器112中。在针对偏移值166为2,确定成功解码丢失的包之后,可针对另外的偏移值重复所述过程。最佳FEC偏移值(Xopt)可对应于产生成功解码丢失的包的最大概率的偏移值166。

尽管上述实例对应于递增偏移值166,但在其它实施方案中,解码器114可将初始值设置成“最大值”,并递减偏移值166。作为非限制性实例,解码器114可将偏移值166设置成“20”、确定当偏移值166是“20”时的成功解码丢失的包的概率、将偏移值166递减到“19”,并重复。另外,尽管上述实例描述逐一递增(或递减)偏移值166,但在其它实施方案中,偏移值166可以其它值递增(或递减)。作为非限制性实例,偏移值166可以2、3、4、5等递增(或递减)。

参看图4,绘示用于确定偏移值以改进丢失的包恢复的状态图400。状态图400可基于预测模型(例如,隐式马尔可夫模型或贝叶斯网络),以基于信道特性而抢先预测最佳FEC偏移值(Xopt)(例如,偏移值166)。

状态图400可包含第一模式(模式1)402、第二模式(模式2)404、第三模式(模式3)406和第四模式(模式4)408。每一模式402到408可对应于信道特性(例如,信号强度、信元位置、移动特性等)。作为非限制性实例,第一模式402可对应于具有“强”信号强度的信道,第二模式404可对应于具有“相对强”信号强度的信道,第三模式406可对应于具有“相对弱”信号强度的信道,以及第四模式408可对应于具有“弱”信号强度的信道。

作为另一实例,每一模式402到408可对应于第一装置102的环境。为了说明,第一模式402可对应于第一装置102处于具有强信号接收的室外区域中时,第四模式408可对应于具有适中信号强度和多个信号路径的区域(例如,地下室)。或者或另外,每一模式402到408可对应于第一装置102相对于一或多个信元塔的位置。例如,第一模式402可对应于第一装置102相对接近信元塔时,第四模式408可对应于第一装置102在信元塔覆盖范围之间转移时。

如果图1的第一装置102在第一模式402中操作,那么偏移值166(例如,最佳FEC偏移值(Xopt))可等于1。例如,第二装置122可对下一个随后包中的特定包的部分冗余副本进行编码,并且如果所述特定包丢失,那么下一个随后包存储在去抖动缓冲器112中的概率相对较高。

第一装置102可使用状态图400来预测(例如,确定)未来状态(例如,未来模式)和对应于所述未来状态的偏移值166。作为非限制性实例,如果第一装置102处于第一模式402中,那么第一装置102转移到第二模式404中可具有60%的概率。因此,第一装置102可向第二装置122发送值为2的偏移值166以向编码器130指示偏移的改变。

状态图400中的概率和模式是出于说明性目的,且并不意图为限制性的。根据一个实施方案,基于先前对丢失的包进行解码的尝试,概率可动态地改变。使用状态转移模型,如图4的状态图400所说明的那种,可使得第一装置102能够基于操作模式而抢先设置偏移值166,以增加解码丢失的包的概率。尽管状态被描述为不同的信道条件,但在其它实施方案中,状态可替代地就最佳偏移值而言进行定义。例如,各个不同的信道条件可各自对应于相同的最佳偏移值,并且因此将对应于状态图400中的单个状态。

返回参看图1,发射器108可经由第一路径152并使用带内信令或带外信令向第二装置122的接收器126发射偏移值166。为了说明,发射器108可经由第一反向信道152a向网络150发射偏移值166,并且接收器126可经由第二前向信道152b从网络150接收所述偏移值166。

带外信令可使用机制(例如,实时传输控制协议(RTCP)消息)执行。对于带内信令,发射器108可使用实时传输协议(RTP)有效负载标头的代码模式请求(CMR)字段来向接收器126发射偏移值166。参看图5,绘示具有指示偏移值的CMR字段的RTP有效负载标头500。例如,通过使用带内信令,RTP有效负载标头500可用于向第二装置122发射图1的偏移值166。RTP有效负载标头500可包含第一字段(“F”)、第二字段(“M”)、第三字段(“R”)、第四字段(“C”)、帧类型索引字段(“FT”)和请求字段(“REQ”)。

第一字段(“F”)可为1位字段。如果第一字段(“F”)被设置成“1”,那么第一字段(“F”)指示当前帧后跟着有效负载中的另一语音帧。因此,另一RTP头条目可在当前条目之后。如果第一字段(“F”)被设置成“0”,那么第一字段(“F”)指示当前帧是有效负载中的最后帧,且没有其它头条目在当前条目之后。

第二字段(“M”)可为1位字段。如果第二字段(“M”)被设置成“0”,那么第二字段(“M”)指示当前帧是具有增强话音服务(EVS)编解码器(CODEC)模式的语音帧。如果第二字段(“M”)被设置成“1”,那么第二字段(“M”)指示当前帧是具有自适应多速率宽带(AMR-WB)模式的语音帧。

第三字段(“R”)可为1位字段。如果第三字段(“R”)被设置成“0”,那么RTP有效负载标头500的大小是一个字节,且之后没有请求字段(“REQ”)。如果第三字段(“R”)被设置成“1”,那么RTP有效负载标头500的大小是两个字节,并且请求字段(“REQ”)可用于请求来自发送器的特定模式或特征。

第四字段(“C”)可为1位字段。如果第四字段(“C”)被设置成“0”,那么第四字段(“C”)指示使用单信道操作模式(例如,单操作模式)。如果第四字段(“C”)被设置成“1”,那么第四字段(“C”)指示使用双信道操作模式(例如,立体操作模式)。

帧类型索引字段(“FT”)可为4位字段。如果第二字段(“M”)被设置成“0”,并且第四字段(“C”)被设置成“0”,那么根据表1,帧类型索引字段(“FT”)可指示位速率。

表1:用于帧类型索引的位速率

请求字段(“REQ”)(当第三字段(“R”)被设置成“1”时)包含第五字段(“X”)、第六字段(“C”)和CMR字段。第五字段(“X”)可为1位字段。如果第五字段(“X”)被设置成“1”,那么第五字段(“X”)指示当前条目后紧跟着指示CMR的位。例如,第六字段(“C”)可保留,并且CMR字段可为6位字段,其根据表2,指示请求带宽、CODEC类型和位速率。

表2:当第五字段(“X”)被设置成“1”时的CMR的信息

如果第五字段(“X”)被设置成“0”,那么请求部分冗余,并且当前条目后紧跟着指示部分冗余模式的配置的位。例如,字段(“C”)可对应于CMR字段的第一位,且CMR字段可为7位字段。CMR字段的前两个位可用于请求宽带带宽或超宽带带宽中的低位速率信道模式或高位速率信道模式。CMR字段的其余5位可用于请求相对于当前帧(例如,第一包160)的图1的偏移值166(例如,最佳FEC偏移值(Xopt)),所述当前帧中存储了部分冗余(例如,所述第一包数据的部分副本)。

返回参看图1,第二装置122的接收器126可接收偏移值166,并向编码器130提供偏移值166。在接收偏移值166时(例如,在接收相对于图4所描述的部分冗余请求和最佳FEC偏移值(Xopt)时),第二装置122可经由第二路径154向第一装置102发送应答168。例如,当编码器130接收偏移值166时,编码器130(或另一处理器)可产生应答168,并且发射器128可经由第二反向信道154a向网络150发射应答168。根据一个实施方案,除了向信号应答发送专用消息之外,或代替向信号应答发送专用消息,包含从第二装置122向第一装置102发射的部分冗余的一或多个包可包含应答168。例如,可使用一或多个有效负载位指示应答168,可使用一或多个“水印”位指示应答168,或包可包含包括应答168的标头。当将早先发送的包的冗余数据添加到稍后发送的包中时,此类应答可提供为由编码器130使用的偏移值166的指示。解码器114可读取偏移值166,并比较偏移值166与请求值,以验证编码器130正在使用请求值。接收器106可经由第一前向信道154b从网络150接收应答168。

于在接收器106处接收到应答168之后,解码器114可使用应答168来寻找丢失的包的正确部分副本。例如,应答168可包含最佳FEC偏移值(Xopt)的指示。在接收到指示之后,解码器114可针对具有从丢失的包的序号偏移最佳FEC偏移值(Xopt)的序号的包轮询去抖动缓冲器112,以寻找丢失的包的正确部分副本。

通过在包含部分冗余的帧中包含偏移值166,第二装置122还可应答偏移值166的接收。因此,可在具有部分冗余的每一帧中指示偏移值166,以降低不能明确确定去抖动缓冲器112中的未来帧包含当前丢失帧的部分冗余副本的可能性。例如,在承载部分冗余的帧中可承载FEC偏移值作为排除位(exclusive bit)。作为另一实例,FEC偏移值可作为“水印”输入到位流中(例如,被水印化到承载部分冗余的包的有效负载中)。根据其中含有部分冗余的每一帧还指示偏移值166的实施方案,解码器114可读取用于去抖动缓冲器112中的每一帧的偏移值166的指示,以确定任何帧是否对应于丢失的包。

通过增加检索错误校正数据(例如,丢失的包的部分副本)的可能性,图1的系统100可改进语音解码操作。例如,解码器114可确定在尝试对丢失的包进行解码期间处于去抖动缓冲器112中的随后包的偏移值166(例如,最佳FEC偏移值(Xopt))。可向第二装置122发射偏移值166,以使得第二装置122在由偏移值166分离的随后包中提供用于每一发射包的错误校正数据。因此,在尝试对丢失的包进行解码期间随后包(具有用于丢失的包的错误校正数据)处于去抖动缓冲器112中的可能性增加,这可使得解码器114能够从去抖动缓冲器112检索错误校正数据(例如,丢失的包的部分副本)。

参看图6,绘示确定偏移值以检索丢失的包的部分冗余信息的方法600。方法600可由图1的第一装置102内的组件、图1的第二装置122或其任何组合执行。

方法600包含在602处,在第一装置的解码器处,确定对应于第一特定包和第二特定包之间的偏移的偏移值,所述特定包处于去抖动缓冲器中。例如,解码器114可基于由去抖动缓冲器112接收的包的统计测量值,确定偏移值166(例如,最佳偏移值(Xopt))。

作为非限制性实例,解码器114可确定存储在去抖动缓冲器112中的每一包和第一包160(例如,丢失的包)之间的偏移值。另外,解码器114可应用概率质量函数P(x|L),如方程式1中所表达,以确定与存储在去抖动缓冲器112中的包相关联的概率偏移值。解码器114可基于当出现丢包时处于去抖动缓冲器112中的包的偏移值的历史,确定特定偏移值。

作为另一非限制性实例,解码器114可将偏移值166设置成第一值,并确定当第一包160丢失时特定包(例如,包含所述第一包160的部分冗余副本的包)存储在去抖动缓冲器112中的第一概率。解码器114可将偏移值166调整(例如,递增或递减)到第二值,并确定当第一包160丢失时特定包存储在去抖动缓冲器112中的第二概率。偏移值166可基于多个试验偏移值而被设置成具有最大确定概率的值。例如,如果第一概率大于第二概率,那么偏移值166可等于第一值,以及如果第二概率大于第一概率,那么偏移值166可等于第二值。作为另一非限制性实例,解码器114可使用预测模型(例如,隐式马尔可夫模型或贝叶斯网络)以及第一装置102和第二装置122之间的信道特性来预测偏移值166,如相对于图4所描述。

在506处,可向第二装置发射偏移值,以使得第二装置能够基于所述偏移值而向第一装置发送包。例如,参看图1,发射器108可经由第一路径152向第二装置122的接收器126发射偏移值166,并且接收器126可向编码器130提供偏移值166。为了说明,发射器108可经由第一反向信道152a向网络150发射偏移值166,并且接收器126可经由第二前向信道152b从网络150接收偏移值166。偏移值166指示第二装置122的编码器130构建包,以使得基于偏移值166,稍后发送的包包含早先发送的包的错误校正数据。错误校正数据可包含早先发送的包的副本或早先发送的包的部分副本。

通过增加检索错误校正数据(例如,丢失的包的部分副本)的可能性,图6的方法600可改进语音解码操作。例如,解码器114可确定在尝试对丢失的包进行解码期间处于去抖动缓冲器112中的随后包的偏移值166(例如,最佳FEC偏移值(Xopt))。可向第二装置122发射偏移值166,以使得第二装置122在由偏移值166分离的随后包中提供用于每一发射包的错误校正数据。因此,随后包(具有用于丢失的包的错误校正数据)处于去抖动缓冲器112中的可能性增加,这可使得解码器114能够从去抖动缓冲器112中检索错误校正数据(例如,丢失的包的部分副本)。

图6的方法600可由现场可编程门阵列(FPGA)装置、专用集成电路(ASIC)、处理单元(例如,中央处理单元(CPU))、数字信号处理器(DSP)、控制器、另一硬件装置、固件装置或其任何组合实施。作为实例,图6的方法600可由执行指令的处理器执行,如相对于图7所描述。

参看图7,绘示经操作以确定偏移值从而检索丢失的包的部分冗余信息的装置700(例如,无线通信装置)。在其它实施方案中,装置700可具有与图7中所说明的相比更多或更少的组件。装置700可对应于图1的第一装置102、图1的第二装置122或这两者。装置700可根据图6的方法600操作。

装置700包含处理器706(例如,CPU)。装置700可包含一或多个额外处理器710(例如,一或多个DSP)。处理器710可包含第一语音声码器104。在替代实施方案中,第一语音声码器104可包含在不同类型的处理器中,例如CPU(例如,处理器706)。

装置700可包含存储器752和CODEC 734。存储器752可包含可由处理器710执行的指令756。装置700可包含经由收发器750耦合到天线742的无线控制器740。收发器750可包含图1的接收器106、发射器108或这两者。

装置700可包含耦合到显示控制器726的显示器728。装置700还可包含耦合到CODEC 734的麦克风746和扬声器748。CODEC 734可包含数/模转换器702和模/数转换器704。CODEC 734可从麦克风746接收模拟信号、使用模/数转换器704将模拟信号转换成数字信号,以及向第一语音声码器104提供数字信号。第一语音声码器104可处理数字信号。第一语音声码器104可向CODEC 734提供数字信号。CODEC 734可使用数/模转换器702将数字信号转换成模拟信号,并且可向扬声器748提供模拟信号。CODEC 734表示用于执行功能(例如,增益控制和参数调整)的音频处理的模拟前端。

第一语音声码器104可包含编码器110、去抖动缓冲器112和解码器114。解码器114和去抖动缓冲器112可用于实施执行本文所述的偏移确定技术的硬件。或者或另外,可使用软件实施方案(或组合软件/硬件实施方案)。例如,存储器752可包含可由装置700的处理器710或由执行图6的方法600的其它处理单元(例如,处理器706、CODEC 734或这两者)执行的指令756。

装置700可包含在系统级封装或芯片上系统装置722中。存储器752、处理器706、处理器710、显示控制器726、CODEC 734和无线控制器740可为包含在系统级封装或芯片上系统装置722中。输入装置730和电源744可耦合到芯片上系统装置722。此外,如图7中所示,显示器728、输入装置730、扬声器748、麦克风746、天线742和电源744可在芯片上系统装置722的外部。显示器728、输入装置730、扬声器748、麦克风746、天线742和电源744中的每一个可耦合到芯片上系统装置722的组件,例如接口或控制器。

装置700可包含移动通信装置、智能电话、蜂窝式电话、膝上型计算机、计算机、平板计算机、PDA、显示装置、电视、游戏控制台、音乐播放器、收音机、数字视频播放器、DVD播放器、调谐器、相机、导航装置或其任何组合。

结合所描述的实施方案,装置可包含用于确定对应于第一特定包和第二特定包之间的偏移的偏移值的装置,所述特定包处于去抖动缓冲器中。可基于由去抖动缓冲器接收的包的统计测量值,确定偏移值。例如,用于确定特定偏移的装置可包含图1和7的解码器114、图1的解码器134、图7的处理器706、图7的处理器710、图7的CODEC 734或其任何组合。

装置还可包含用于向第二装置传输偏移值,以使得第二装置能够基于所述偏移值而向所述装置发送包的装置。装置可经由前向信道接收包。例如,用于发射的装置可包含图1和7的发射器108、图1的发射器128、图7的收发器750或其任何组合。

所属领域的技术人员将进一步了解,结合本文揭示的实施例描述的各种说明性逻辑块、配置、模块、电路和算法步骤可实施为电子硬件、由处理器执行的计算机软件,或两者的组合。上文已大体上就各种说明性组件、块、配置、模块、电路和步骤的功能性对它们加以描述。所述功能性是实施为硬件还是处理器可执行指令取决于特定应用及强加于整个系统的设计约束。所属领域的技术人员可针对每一特定应用以不同方式来实施所描述的功能性,此些实施决策不应被解释为会导致脱离本发明的范畴。

结合本文中所揭示的方面描述的方法或算法的步骤可以硬件的形式、由处理器执行的软件模块的形式或以这两者的组合形式完全体现。软件模块可驻留在随机存取存储器(RAM)、快闪存储器、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、寄存器、硬盘、可移除式磁盘、压缩光盘只读存储器(CD-ROM)或此项技术中已知的任何其它形式的非暂时性储存媒体中。例示性存储媒体耦合到处理器,使得处理器可从存储媒体读取信息并将信息写入到存储媒体。在替代方案中,存储媒体可与处理器成一体式。处理器和存储媒体可驻留在ASIC中。ASIC可驻留在计算装置或用户终端中。在替代方案中,处理器和存储媒体可作为离散组件驻留在计算装置或用户终端中。

提供对所揭示方面的先前描述以使得所属领域的技术人员能够制造或使用所揭示的方面。所属领域的技术人员将容易明白对这些方面的各种修改,且在不脱离本发明的范畴的情况下,本文中所界定的原理可应用于其它方面。因此,本发明并不希望限于本文展示的方面,而应被赋予与如通过所附权利要求书界定的原理及新颖特征一致的可能的最广范围。

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