下行语音帧的接收处理方法及装置、基带的制作方法

文档序号:2823694阅读:193来源:国知局
专利名称:下行语音帧的接收处理方法及装置、基带的制作方法
技术领域
本发明涉及通信领域,具体而言,涉及一种下行语音帧的接收处理方法及装置、基
市O
背景技术
在第三代宽带码分多址接入(Wideband Code Division Multiple Access,简称为 WCDMA)/时分同步码分多址接入(Time Division-Synchronous Code Division Multiple Access,简称为TD-SCDMA)移动通信系统中使用了自适应多速率(Adaptive Multi Rate,简 称为AMR)语音编码技术进行语音编码。在WCDMA/TD-SCDMA移动通信系统中,AMR语音编解 码器位于核心网(Core Network,简称为CN)和用户设备(User Equipment,简称为UE)中。图1是协议栈内部语音数据处理流程的示意图。其中,射频模块(Radio Frequency,简称为RF)用于接收和发射语音帧,语音前端(Audio)用于输入和输出语音。在 图1中,AMR语音编解码器(AMR Codec)用于实现语音的编解码功能。其中AMR Codec与 基带间通过一个共享Buffer进行数据和命令的交互。在通用移动通信系统(Universal Mobile Telecommunications System,简称为 UMTS)模式下,AMR Codec与基带间主要通过共享缓冲区(Buffer)中上行数据区(UL_DATA) 和下行数据区(DL_DATA)进行上下行语音帧的交互。对于语音通话的正常流程,如图1所示,上行AMR Codec编码器会每隔20ms向 UL_DATA中写一帧数据,基带每20ms从UL_DATA读一帧数据经过处理并通过空口传送出去; 下行基带从空口接收到下行语音帧后,将数据写入DL_DATA中,AMR Codec解码器会每隔 20ms从DL_DATA中读取待解码语音帧,进行解码放音。由于无线信道的误码率比较高,语音在传输中很容易出现丢帧现象,造成UE在某 个或连续几个20ms间隔内接收不到下行语音帧。同时由于基带侧协议栈实现中,下行是异 步的,基带被动接收物理层(PHY)的数据上报,无法判定当前是否出现丢帧现象,造成基带 不能固定每20ms间隔向DL_DATA下行数据区写下行语音帧。而AMR Codec解码器对DL_ DATA中下行语音帧的读取是固定每20ms读取一次,不会考虑空口中语音帧的丢失,同时 AMR Codec解码器从DL_DATA中读取完数据后,不会对该数据区进行清除。这样当出现丢帧 时,AMR Codec解码器会连续读取到同样的语音帧,造成解码放音异常,会使用户产生不适。

发明内容
本发明的主要目的在于提供一种下行语音帧的接收处理方法、装置及基带,以至 少解决上述由于丢帧而导致用户产生不适的问题。根据本发明的一个方面,提供了一种下行语音帧的接收处理方法,包括基带周期 性地判断有没有接收到下行语音帧;基带如果确定在当前周期没有接收到下行语音帧,则 在其与自适应多速率语音编解码器共享的缓冲区的下行数据区中写入不包含有效语音信 息的语音帧。
根据本发明的另一方面,提供了一种下行语音帧的接收处理装置,包括基带,用 于周期性地判断有没接收到下行语音帧,在确定当前周期没有接收到下行语音帧时,在其 与AMR语音编解码器共享的缓冲区的下行数据区中写入不包含有效语音信息的语音帧; AMR语音编解码器,用于读取上述不包含有效语音信息的语音帧,采用错误隐藏机制对不包 含有效语音信息的语音帧进行平滑和弱化处理。根据本发明的再一个方面,提供了一种基带,包括判断模块,用于周期性地判断 基带有没有接收到下行语音帧,如果确定当前周期没有接收到下行语音帧,则触发写入模 块;写入模块,用于在基带与AMR语音编解码器共享的缓冲区的下行数据区中写入不包含 有效语音信息的语音帧。通过本发明,基带在判断当前周期没有接收到下行语音帧时,在其与AMR语音编 解码器共享的缓冲区的下行数据区中写入不包含有效语音信息的语音帧,从而使得在出现 丢帧时,AMR语音编解码器不会连续读取到同样语音信息的语音帧,进而避免了解码放音异 常,提高了用户体验。


此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发 明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中图1是根据相关技术的协议栈内部语音处理流程的示意图;图2是根据本发明实施例一的下行语音帧的接收处理装置的结构示意图;图3是本发明实施例一中基带写入缓冲区的不包含有效语音信息的语音帧的结 构示意图;图4是根据本发明实施例二的基带的结构示意图;图5是根据本发明实施例二的优选基带的结构示意图;图6是根据本发明实施例二的另一优选基带的结构示意图;图7是根据本发明实施例三的下行语音帧的接收处理方法流程图;图8是根据本发明实施例四的正常下行语音帧接收处理流程图;图9是根据本发明实施例五的针对下行语音帧丢帧的处理流程图。
具体实施例方式下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的 情况下,本申请中的实施例及实施例中的特征可以相互组合。实施例一图2为根据本发明实施例一的下行语音帧的接收处理装置的结构示意图,该装置 包括基带2和AMR语音编解码器4。其中,基带2,用于周期性地判断有没接收到下行语音 帧,在确定当前周期没有接收到下行语音帧时,在其与AMR语音编解码器4共享的缓冲区的 下行数据区(即DL_DATA)中写入不包含有效语音信息的语音帧;AMR语音编解码器4,用 于读取该不包含有效语音信息的语音帧,采用错误隐藏机制对该语音帧进行平滑和弱化处 理。在实际应用中,AMR语音编解码器4从DL_DATA数据区中读取语音帧,如果读取的语音帧为不包含有效语音信息的语音帧,则AMR语音编解码器4可以利用AMR的错误隐藏 机制(ECU)对写入的不包含有效语音信息的进行平滑和弱化等处理,可以使听者感觉不到 丢帧等原因造成的不适。优选地,基带2写入缓冲区的不包含有效语音信息的语音帧可以采用如图3所示 的结构,其中,该语音帧仅包含帧类型,没有任何有效语音信息,其中,P表示填充位。在实际应用中,如图1所示,物理层(PHY)在接收到射频模块接收到的下行语音帧 时,主动将接收到下行语音帧上报到基带2,基带2通过监听与物理层的接口,可以获取是 否接收到下行语音帧上,从而判断当前周期是否有接收到下行语音帧。在WCDMA/TD-SCDMA移动通信系统中,AMR语音编解码器4每隔20ms从DL_DATA中 读取待解码语音帧,因此,基带2判断的周期为20ms。相关技术中由于AMR语音编解码器4从DL_DATA中读取完数据后,不会对该数据 区进行清除,当出现丢帧时,当前缓存在DL_DATA数据区的语音帧为上一次缓存在该数据 区的语音时,从而使得在丢帧时AMR语音编解码器4会连续读取到相同语音信息的语音帧, 从而导致解码放音异常。而本发明实施例提供的上述装置中,基带2在判断出当前周期没 有接收到下行语音帧时,向缓冲区内写入不包含有效语音信息的语音帧,从而避免了 AMR 语音编解码器4连续读取到相同语音信息的语音帧,进而避免了解码放音异常,提高了用 户体验。实施例二图4为根据本发明实施例二的基带的结构示意图,该基带可以作为上述实施例一 中的基带2。该基带2主要包括判断模块10和写入模块20。其中,判断模块10用于周期 性地判断该基带有没有接收到下行语音帧,如果确定当前周期没有接收到下行语音帧,则 触发写入模块20 ;写入模块20,用于在基带与AMR语音编解码器共享的缓冲区的下行数据 区中写入不包含有效语音信息的语音帧(例如,图3所示结构的语音帧)。在实际应用中,判断模块10的功能可以由图1所示的媒体接入控制层(MAC)、无线 链路控制层(RLC)或语音编解码器接口模块(SCI)中实现,而写入模块20的功能可以通过 调用图1中的语音编解码器接口模块(SCI)的写函数完成。通过本发明实施例二的基带,在检测到当前周期没有接收到下行语音帧时,在与 AMR语音编解码器共享的Buffer中的DL_DATA中写入不包含有效语音信息的语音帧,从而 避免了在丢帧时AMR语音编解码器连续读取相同语音信息的语音帧而导致解码放音异常 的问题。图5为根据本发明实施例二的优选基带的结构示意图,在本优选实施例中,通过 设置两个计数器第一计数器(PreCnt)和第二计数器(CurCnt),分别用于记录当前周期开 始前基带已接收到的下行语音帧的数量和当前周期结束时基带已接收到下行语音帧的数 量,判断模块10在当前周期结束时通过比较PreCnt和CurCnt的值是否相同,从而判断当 前周期是否接收到下行语音帧。具体地,如果PreCnt与CurCnt的值相同,则说明当前周 期内没有接收到下行语音帧;否则,说明当前周期内接收到有下行语音帧,并令PreCnt = CurCnt, CurCnt继续计算基带接收到的下行语音帧的数量。在实际应用中,第一计数器(PreCnt)和第二计数器(CurCnt)可以设置在图1所 示的语音编解码器接口模块(SCI)中,语音编解码器接口模块(SCI)每接收到一个下行语音帧,CurCnt加1,并在一个周期结束后,PreCnt = CurCnt。通过该优选实施例,可以通过两个计数器判断当前周期是否接收到下行语音帧, 其实现简单易行。图6为根据本发明实施例二的另一优选基带的结构示意图,在本优选实施例中, 通过设置一个用于指示当前周期是否接收到下行语音帧的标识来判断当前周期是否接收 到有下行语音帧。如图6所示,该基带还可以包括设置模块30,用于在基带接收到下行语音 帧时,将该标识的值设置为指示当前周期接收到下行语音帧对应的值,在当前周期结束时, 判断模块10判断结束后,设置模块30将该标识的值设置为指示当前周期没接收到下行语 音帧对应的值。例如,该标识可以占用1个比特位,当基带接收到下行语音帧时,设置模块 30将该标识的值设置为1,而在一个周期结束时,判断模块10作出判断后,设置模块30将 该标识的值设置为0。在实际应用中,上述标识可以设置在图1所示的SCI中,而设置模块30可以在SCI 中实现,也可以在RLC或MAC中实现。通过图6所示的基带,可以通过设置一个标识判断当前周期是否有接收到下行语 音帧,从而可以减少占用的空间。优选地,在上述图4至图6所示的基带中,上述判断模块10进行判断采用的周期 与基带读取上行语音帧的周期相同,即判断模块10在基带每次读取并发送上行语音帧之 后判断基带有没有接收到下行语音帧。这样可以避免另外设置定时器来触发判断模块10。在实际应用中,自研协议栈实现中,上行数据的发送是由媒体接入控制层(MAC) 的帧中断控制的,当传输语音时,MAC会根据帧中断每预定时间间隔(例如,20ms)读取并发 送语音帧一次。因为上行优先级高于下行,因此在MAC可以保证上行的读取可以严格每预 定时间间隔(20ms)执行一次,因此,在帧中断处理函数中,当MAC(即判断模块10)处理完 上行语音帧数据后,可以增加对下行语音计数PreCnt和CurCnt的比较,或读取指示当前周 期是否接收到下行语音帧的标识,判定当前时间间隔内是否接收到有下行语音数据。实施例三图7为根据本发明实施例三的下行语音帧的接收处理方法的流程图,该方法主要 包括以下步骤步骤S702,当前周期结束,基带判断当前周期是否接收到有下行语音帧,如果是, 执行步骤S706,否则,执行步骤S704 ;例如,可以设置两个计数器第一计数器和第二计数器,其中,第一计数器用于记 录当前周期开始时基带已接收到的下行语音帧的数量,第二计数器用于记录当前周期结束 时基带已接收到的下行语音帧的数量,在当前周期结束时,通过判断第一计数器的值与第 二计数器的值是否相等,可以判断当前周期是否接收到下行语音帧。或者,也可以设置一个标识,通过该标识来指示当前周期是否接收到下行语音帧, 初始时,该标识的取值指示当前周期没有接收到下行语音帧,当基带接收到下行语音帧时, 将该标识的值设置为指示当前周期接收到下行语音帧对应的值,在当前周期结束时,根据 该标识的值进行判断,判断结束后,将该标识的值再置为初始值(即指示当前周期没有接 收到下行语音帧对应的值),在下一个周期开始后,当接收到下行语音帧时再将该标识的值 设置为指示当前周期接收到下行语音帧对应的值,如此周期性的执行。例如,如果在当前周期结束时,该标识的值为1,则指示当前周期接收到有下行语音帧,如果该标识的值为0,则 指示当前周期没有接收到下行语音帧;在下一个周期开始时,将该标识的值重新置为0,在 接收到下行语音帧时,再将该标识的值设置为1,如此反复。步骤S704,基带在其与AMR语音编解码器共享的缓冲区的DL_DATA中写入不包含 有效语音信息的语音帧;例如,该不包含有效语音信息的语音帧(即N0_DATA语音帧)可以采用如图3所 示的帧结构。步骤S706,AMR语音编解码器读取DL_DATA中缓存的语音帧。如果AMR语音编解码器读取的语音帧为不包含有效语音信息的语音帧,则AMR语 音编解码器可以采用错误隐藏机制对的语音帧进行平滑和弱化等处理,从而可以使听者感 觉不到丢帧待原因造成的不适。在实际应用中,AMR除了具有自适应多速率编码功能外,根据3GPP TS 26系列协 议描述,AMR还具有错误隐藏(Error Concealment Unit,简称为EOT)技术。E⑶技术的目 的就是为了避免丢帧和坏帧对接收端解码质量带来的负面效应,即当出现语音帧丢失和损 坏的情况时,为了不使听的人感觉到丢帧和坏帧,应该通知AMR语音编解码器在解码时进 行差错隐藏,并用预测的参数进行语音合成,如果出现连续丢帧和坏帧,则采用声音弱化的 技术让听者知道传输被中断。通过本发明实施例三提供的上述技术方案,当下行出现丢帧时,向DL_DATA数据 区中填写N0_DATA语音帧,从而清除该数据区中先前的帧残留,并利用AMR的机制进行解码 并放音,从而降低因传输中出现丢帧影响解码质量的现象。实施例四图8为根据本发明实施例四的流程图,在本实施例中,采用两个计数器分别记录 前次检测时已接收到的下行语音帧的数量(PreCnt)和当前已接收到的下行语音帧的数量 (CurCnt)o如图8所示,在本发明实施例中,正常下行语音帧的接收处理流程主要包括以下 步骤步骤S801,物理层(PHY)接收到下行语音数据,流程开始,进入步骤S802 ;步骤S802,PHY对接收到的下行语音数据进行CRC校验,进入步骤S803 ;步骤S803,PHY将下行语音数据和CRC校验结果通过基带的MAC投递给基带的无 线链路控制层(RLC),进入步骤S804 ;步骤S804,RLC调基带的SCI提供的写函数,准备将接收的下行语音数据写入共享 Buffer的DL_DATA数据区中,进入步骤S805 ;步骤S805,SCI完成语音帧子流和RBid之间的映射,并根据各子流大小及CRC校 验结果构造带帧头的完整语音帧,同时,将CurCnt加1,进入步骤S806 ;步骤S806,SCI将构造的语音帧写入DL_DATA数据区中,供AMR Codec进行解码放 音,则进入步骤S807 ;步骤S807,下行语音帧接收处理流程结束,等待下一个下行语音帧的接收。实施例五在本发明实施例五中,以判断的周期为20ms为例,对采用本发明实施例提供的技术方案针对下行语音帧丢帧的处理流程进行描述。图9为根据本发明实施例五的针对下行 语音帧丢帧的处理流程图,主要包括以下步骤步骤S901,传输语音的20ms的帧中断到来,进入步骤S902 ;该步骤可以在图8所示的步骤S807之后执行。步骤S902,MAC调中断处理函数(ISR)进行语音帧的上行传输处理,进入步骤
5903;步骤S903,MAC获取语音业务对应逻辑信道上待传输语音数据块大小,进入步骤
5904;步骤S904,RLC调SCI的读函数读取UL_DATA数据区中上行语音帧,进入步骤
5905;步骤S905,SCI在读函数中完成语音帧子流和无线承载标识(Radio Bearer Identify,简称为RBid)间映射,并将各子流bit数据及长度返回给RLC,进而通知MAC,进 入步骤S906 ;步骤S906,MAC根据获取到的各逻辑信道语音数据块大小,进行传输格式组合 (Transport Format Combination,简称为TFC)选择,若选择成功,进入步骤S908 ;否则直 接执行S907。步骤S907,RLC释放通过SCI读取到上行语音帧数据;进入步骤S909 ;步骤S908,RLC根据MAC的TFC选取结果,将上行语音帧写到协议栈和PHY间交互 的共享Buffer中,供PHY作进一步处理并通过空口发送出去;进入步骤S909 ;步骤S909,在MAC中断处理函数ISR中,当处理完上行流程后,调SCI的检验函数 判定当前20ms间隔内是否有下行语音帧被接收,即通过比较计数器PreCnt和CurCnt获 知;若有数据被接收到,进入步骤S910 ;否则,进入步骤S911 ;步骤S910,更新CurCnt取值,进入步骤S912 ;步骤S911,MAC调SCI的写函数向DL_DATA数据区中写N0_DATA语音帧,进入步骤 S912 ;步骤S912,下行丢帧的处理流程结束,等待下一次帧中断的到来。从以上的描述中,在本发明实施例中,通过自研协议栈中具有严格时间概念的上 行帧中断,来判定当前时间间隔内是否有接收到下行语音帧,当下行出现丢帧时,向DL_ DATA数据区中填写N0_DATA语音巾贞,清除该数据区中先前的帧残留,并利用AMR的机制进行 解码并放音,从而降低因传输中出现丢帧影响解码质量的现象。显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用 的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成 的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储 在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示 出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或 步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技 术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修 改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
一种下行语音帧的接收处理方法,其特征在于,包括基带周期性地判断有没有接收到下行语音帧;所述基带如果确定在当前周期没有接收到所述下行语音帧,则在其与自适应多速率AMR语音编解码器共享的缓冲区的下行数据区中写入不包含有效语音信息的语音帧。
2.根据权利要求1所述的方法,其特征在于,所述基带周期性地判断有没有接收到下 行语音帧包括设置第一计数器和第二计数器,其中,所述第一计数器用于记录所述当前周期开始时 所述基带已接收到的所述下行语音帧的数量,所述第二计数器用于记录所述当前周期结束 时所述基带已接收到的所述下行语音帧的数量;所述基带在所述当前周期结束时判断所述第一计数器的值与所述第二计数器的值是 否相等,如果是,则确定所述当前周期没有接收到所述下行语音帧,否则,确定所述当前周 期有接收到所述下行语音帧。
3.根据权利要求1所述的方法,其特征在于,所述基带周期性地判断有没有接收到下 行语音帧包括设置指示所述当前周期是否接收到所述下行语音帧的标识,在接收到所述下行语音帧 时,将所述标识的值设置为指示所述当前周期接收到所述下行语音帧对应的值;所述基带在所述当前周期结束时根据所述标识的值判断所述当前周期是否接收到所 述下行语音帧,在判断结束后,将所述标识的值设置为指示所述当前周期没有接收到所述 下行语音帧对应的值。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述基带周期性地判断有没 有接收到下行语音帧包括所述基带在每次读取并发送上行语音帧之后,判断有没有接收到所述下行语音帧。
5.根据权利要求1至3中任一项所述的方法,其特征在于,在所述基带在所述下行数据 区中写入不包含有效语音信息的语音帧之后,所述方法还包括所述AMR语音编解码器读取所述不包含有效语音信息的语音帧,确定当前没有接收到 所述下行语音帧;所述AMR语音编解码器采用错误隐藏机制对所述不包含有效语音信息的语音帧进行 平滑和弱化处理。
6.一种基带,其特征在于,包括判断模块,用于周期性地判断所述基带有没有接收到下行语音帧,如果确定当前周期 没有接收到所述下行语音帧,则触发写入模块;所述写入模块,用于在所述基带与AMR语音编解码器共享的缓冲区的下行数据区中写 入不包含有效语音信息的语音帧。
7.根据权利要求6所述的基带,其特征在于,所述判断模块用于在所述当前周期结束 时判断第一计数器与所述第二计数器的值是否相等,如果是,则确定所述当前周期没有接 收到所述下行语音帧,其中,所述第一计数器用于记录所述当前周期开始时所述基带已接 收到所述下行语音帧的数量,所述第二计数器用于记录所述当前周期结束时所述基带已接 收到所述下行语音帧的数量。
8.根据权利要求6所述的基带,其特征在于,所述基带还包括设置模块,用于在接收到所述下行语音帧时,将预先设置的标识的值设置为指示所述当前周期接收到所述下行语 音帧对应的值,在所述判断模块判断结束后,将所述标识的值设置为指示所述当前周期没 有接收到所述下行语音帧对应的值;所述判断模块用于根据所述标识的值判断所述当前周期是否接收到所述下行语音帧。
9.根据权利要求6至8中任一项所述的基带,其特征在于,所述判断模块在所述基带每 次读取并发送上行语音帧之后判断所述基带有没有接收到所述下行语音帧。
10.一种下行语音帧的接收处理装置,其特征在于,包括基带,用于周期性地判断有没接收到下行语音帧,在确定当前周期没有接收到所述下 行语音帧时,在其与AMR语音编解码器共享的缓冲区的下行数据区中写入不包含有效语音 信息的语音帧;所述AMR语音编解码器,用于读取所述不包含有效语音信息的语音帧,采用错误隐藏 机制对所述不包含有效语音信息的语音帧进行平滑和弱化处理。
全文摘要
本发明公开了一种下行语音帧的接收处理方法及装置、基带。其中,该方法包括基带周期性地判断有没有接收到下行语音帧;基带如果确定在当前周期没有接收到下行语音帧,则在其与自适应多速率语音编解码器共享的缓冲区的下行数据区中写入不包含有效语音信息的语音帧。通过本发明,可以避免由于丢帧而导致的解码放音异常。
文档编号G10L19/00GK101877625SQ20101022038
公开日2010年11月3日 申请日期2010年6月29日 优先权日2010年6月29日
发明者孙后山 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1