CN105207955A - 数据帧的处理方法和装置 - Google Patents
数据帧的处理方法和装置 Download PDFInfo
- Publication number
- CN105207955A CN105207955A CN201410309383.0A CN201410309383A CN105207955A CN 105207955 A CN105207955 A CN 105207955A CN 201410309383 A CN201410309383 A CN 201410309383A CN 105207955 A CN105207955 A CN 105207955A
- Authority
- CN
- China
- Prior art keywords
- length
- frame
- duration
- data
- duration adjustment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/24—Accounting or billing
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明实施例提供一种数据帧的处理方法和装置。本发明数据帧的处理方法,包括:获得待输出的数据帧以及所述数据帧对应的预期时长调整长度,若判断获知需要对所述数据帧进行时长缩减处理,则结合缓存器中当前缓存数据的数据长度和所述预期时长调整长度,确定所述数据帧对应的实际时长调整长度;根据所述实际时长调整长度对所述数据帧进行时长缩减处理,并将经过时长缩减处理的数据帧缓存到所述缓存器中,以供所述缓存器输出时长达到所述数据帧帧长的缓存数据。本发明实施例实现控制缓存器输出一帧长的数据帧时接收端解码一帧长的数据,从而有效降低接收端的最大复杂度。
Description
技术领域
本发明实施例涉及通信技术,尤其涉及一种数据帧的处理方法和装置。
背景技术
在VoIP(VoiceoverInternetProtocol)通信系统中,分组包在传输过程中会产生时延抖动(delayjitter),严重时会产生数据包丢失,造成语音频失真,VoIP质量下降。接收端可以通过高效的抖动缓存处理(JitterBufferManagement,简称JBM)来补偿网络的延迟抖动,以解决音频失真、VoIP质量下降的问题。
在JBM处理过程中,如果短时间内接收到大量的数据包,接收端在解码当前语音频帧后将进一步进行缩减(shrink)处理,从而避免数据丢失;如果较长时间内才能接收到数据包,接收端在解码当前语音频帧后将进一步进行拉伸(extend)处理,从而避免数据不连续。其中,缩减和拉伸处理需要结合时长调整(TimeScaleModification,简称TSM)技术。
在通过TSM技术进行缩减处理过程中,为了保持输出语音频的连贯性,当前语音频帧通常会进行缓存处理。具体地,如果缓存器中数据长度达到帧长,则输出一帧语音频信号;否则继续解码下一语音频帧并进行缓存处理,直至缓存器中数据长度达到帧长为止。当缓存器中的数据长度未达到帧长,则需要解码下一语音频帧,此时接收端算法复杂度较高。
发明内容
本发明实施例提供一种数据帧的处理方法和装置,以克服现有TSM技术进行缩减处理过程中,接收端算法复杂度较高的缺陷。
第一方面,本发明实施例提供一种数据帧的处理方法,包括:
获得待输出的数据帧以及所述数据帧对应的预期时长调整长度,若判断获知需要对所述数据帧进行时长缩减处理,则结合缓存器中当前缓存数据的数据长度和所述预期时长调整长度,确定所述数据帧对应的实际时长调整长度;
根据所述实际时长调整长度对所述数据帧进行时长缩减处理。
结合第一方面,在第一方面的第一种可能的实现方式中,所述结合缓存器中当前缓存数据的数据长度和所述预期时长调整长度,确定所述数据帧对应的实际时长调整长度包括:
对于包括的重复数据的周期个数小于阈值的所述待输出的数据帧,判断所述预期时长调整长度是否超过所述缓存器中当前缓存数据的数据长度,若所述预期时长调整长度超过所述缓存器中当前缓存数据的数据长度,则将所述缓存器中当前缓存数据的数据长度作为所述实际时长调整长度;若所述预期时长调整长度不超过所述缓存器中当前缓存数据的数据长度,则将所述预期时长调整长度作为所述实际时长调整长度;其中,所述预期时长调整长度为中间时长调整长度与最大时长调整长度中较小的,所述中间时长调整长度是根据所述帧长获得的,所述最大时长调整长度是所述帧长对应的最大时长调整长度。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述根据所述实际时长调整长度对所述数据帧进行时长缩减处理包括:
根据所述实际时长调整长度,采用直接去掉样点的方法进行所述数据帧的时长缩减处理;
结合第一方面,在第一方面的第三种可能的实现方式中,所述结合缓存器中当前缓存数据的数据长度和所述预期时长调整长度,确定所述数据帧对应的实际时长调整长度包括:
对于包括的重复数据的周期个数大于或等于阈值的所述待输出的数据帧,判断所述预期时长调整长度是否超过所述缓存器中当前缓存数据的数据长度,若所述预期时长调整长度超过所述缓存器中当前缓存数据的数据长度,则将所述实际时长调整长度设置为0;若所述预期时长调整长度不超过所述缓存器中当前缓存数据的数据长度,则将所述预期时长调整长度作为所述实际时长调整长度;其中,所述预期时长调整长度为所述重复数据的长度。
结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述根据所述实际时长调整长度对所述数据帧进行时长缩减处理包括:
根据所述实际时长调整长度,采用对所述重复数据进行加窗并叠接的方法进行所述数据帧的时长缩减处理。
结合第一方面、第一方面的第一种至第一方面的第四种任一种可能的实现方式,在第一方面的第五种可能的实现方式中,所述方法还包括:
根据预设的采样率,对所述待输出的数据帧进行降采样处理,并获取所述重复数据的长度。
结合第一方面、第一方面的第一种至第五种任一种可能的实现方式,在第一方面的第六种可能的实现方式中,所述方法还包括:
若判断获知需要对所述数据帧进行时长拉伸处理,对于包括的重复数据的周期个数小于阈值的所述待输出的数据帧,则采用零值填充或噪声填充的方法进行所述数据帧的时长拉伸处理。
第二方面,本发明实施例提供一种数据帧的处理装置,包括:
获取模块,用于获得待输出的数据帧以及所述数据帧对应的预期时长调整长度,若判断获知需要对所述数据帧进行时长缩减处理,则结合缓存器中当前缓存数据的数据长度和所述预期时长调整长度,确定所述数据帧对应的实际时长调整长度;
时长缩减处理模块,用于根据所述实际时长调整长度对所述数据帧进行时长缩减处理。
结合第二方面,在第二方面的第一种可能的实现方式中,所述获取模块具体用于:
对于包括的重复数据的周期个数小于阈值的所述待输出的数据帧,判断所述预期时长调整长度是否超过所述缓存器中当前缓存数据的数据长度,若所述预期时长调整长度超过所述缓存器中当前缓存数据的数据长度,则将所述缓存器中当前缓存数据的数据长度作为所述实际时长调整长度;若所述预期时长调整长度不超过所述缓存器中当前缓存数据的数据长度,则将所述预期时长调整长度作为所述实际时长调整长度;其中,所述预期时长调整长度为中间时长调整长度与最大时长调整长度中较小的,所述中间时长调整长度是根据所述帧长获得的,所述最大时长调整长度是所述帧长对应的最大时长调整长度。
结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述时长缩减处理模块具体用于:
根据所述实际时长调整长度,采用直接去掉样点的方法进行所述数据帧的时长缩减处理。
结合第二方面,在第二方面的第三种可能的实现方式中,所述获取模块具体用于:
对于包括的重复数据的周期个数大于或等于阈值的所述待输出的数据帧,判断所述预期时长调整长度是否超过所述缓存器中当前缓存数据的数据长度,若所述预期时长调整长度超过所述缓存器中当前缓存数据的数据长度,则将所述实际时长调整长度设置为0;若所述预期时长调整长度不超过所述缓存器中当前缓存数据的数据长度,则将所述预期时长调整长度作为所述实际时长调整长度;其中,所述预期时长调整时长为所述重复数据的长度。
结合第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述时长缩减处理模块具体用于:
采用对所述重复数据进行加窗并叠接的方法进行所述数据帧的时长缩减处理。
结合第二方面、第二方面的第一种至第四种任一种可能的实现方式,在第二方面的第五种可能的实现方式中,所述装置还包括:
采样模块,用于根据预设的采样率,对所述待输出的数据帧进行降采样处理,并获取所述重复数据的长度。
结合第二方面、第二方面的第一种至第五种任一种可能的实现方式,在第二方面的第六种可能的实现方式中,所述装置还包括:
时长拉伸处理模块,用于若判断获知需要对所述数据帧进行时长拉伸处理,对于包括的重复数据的周期个数小于阈值的所述待输出的数据帧,则采用零值填充或噪声填充的方法进行所述数据帧的时长拉伸处理。
本发明实施例提供的数据帧的处理方法和装置,当判断获知需要对数据帧进行时长缩减处理时,通过结合缓存器中当前缓存数据的数据长度和数据帧对应的预期时长调整长度,确定数据帧对应的实际时长调整长度,使得数据帧进行时长缩减处理的实际时长调整长度与缓存器中当前缓存数据的数据长度相互关联,在根据该实际时长调整长度对数据帧进行时长缩减处理后,将该经过时长缩减处理的数据帧缓存到缓存器中,使得缓存器在接收端对解码获得的待输出的数据帧进行时长缩减处理后输出一数据帧帧长的缓存数据,从而实现控制缓存器输出一帧长的数据帧时接收端解码一帧长的数据,以降低接收端的最大复杂度,从而解决现有TSM技术进行缩减处理过程中,会出现接收端解码一帧长的数据,而缓存器中的数据长度未达到一帧长,需要接收端解码下一帧长数据的情况,造成接收端算法复杂度高的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明数据帧的处理方法实施例一的流程图;
图2为本发明数据帧的处理方法实施例二的流程图;
图3为本发明数据帧的处理方法实施例三的流程图;
图4为本发明数据帧的处理装置实施例一的结构示意图;
图5为本发明数据帧的处理装置实施例二的结构示意图;
图6为本发明数据帧的处理装置实施例三的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明数据帧的处理方法实施例一的流程图,如图1所示,本实施例的方法可以包括:
步骤101、获得待输出的数据帧以及所述数据帧对应的预期时长调整长度,若判断获知需要对数据帧进行时长缩减处理,则结合缓存器中当前缓存数据的数据长度和预期时长调整长度,确定数据帧对应的实际时长调整长度。
其中,获得待输出的数据帧后,根据现有的语音激活检测(VoiceActiveDetector,简称VAD)技术,判断该数据帧是否为有效(ACTIVE)帧,若该数据帧为有效帧,则进一步判断是否对该数据帧进行时长调整处理,时长调整处理包括时长缩减处理和时长拉伸处理,具体地,接收端接收发送端发送的数据包,对数据包进行解析,获取数据包的时间戳等信息,根据该时间戳等信息判断是否需要对待输出的数据帧进行时长调整处理,时间戳记录了接收端接收到数据包的时间,如果接收端连续接收到的各数据包的时间戳间隔相同且等于预设阀值,则不做时长调整处理,如果接收端连续接收到的各数据包的时间戳间隔小于预设阀值,则需要进行时长缩减处理,可以理解的,如果接收端连续接收到的各数据包的时间戳间隔大于预设阀值,则需要进行时长拉伸处理,其中待输出的数据帧是对接收端接收到的数据包进行解析并进行解码获得的。举例而言,当接收端在短时间内接收到大量的数据包,则在解析并解码数据包后,需要对待输出的数据帧进行时长缩减处理。
可选地,在结合缓存器中当前缓存数据的数据长度和预期时长调整长度,确定数据帧对应的实际时长调整长度,具体针对不同的待输出的数据帧可以采用不同的方式,具体可以为:
(1)对于包括的重复数据的周期个数小于阈值的待输出的数据帧,判断预期时长调整长度是否超过缓存器中当前缓存数据的数据长度,若预期时长调整长度超过缓存器中当前缓存数据的数据长度,则将缓存器中当前缓存数据的数据长度作为实际时长调整长度;若预期时长调整长度不超过缓存器中当前缓存数据的数据长度,则将预期时长调整长度作为实际时长调整长度;其中,预期时长调整长度为中间时长调整长度与最大时长调整长度中较小的,中间时长调整长度是根据帧长获得的,最大时长调整长度是帧长对应的最大时长调整长度;即,当需要对数据帧进行时长缩减处理时,根据帧长获得中间时长调整长度,将中间时长调整长度与帧长对应的最大时长调整长度进行比较,选择两者中较小的作为预期时长调整长度。上述方式获取预期时长调整长度是一种优选的方式,还可以设置预期时长调整长度为根据帧长获得的中间时长调整长度,也可以设置预期时长调整长度为帧长对应的最大时长调整长度。
其中,包括的重复数据的周期个数小于阈值的待输出的数据帧,该阈值可以为一固定值,将重复数据的周期个数与该阈值进行比较,用以确定该待输出的数据帧的周期性,当重复数据的周期个数小于阈值,则可以获知该待输出的数据帧周期性弱。
对于周期性弱的数据帧采用上述方式获得实际时长调整长度,即当预期时长调整长度超过缓存器中当前缓存数据的数据长度,则将缓存器中当前缓存数据的数据长度作为实际时长调整长度,缓存器可以在接收端解码一帧数据后,使用该实际时长调整长度对解码后获得的待输出的数据帧进行时长缩减处理,由于实际时长调整长度与缓存器中当前缓存数据的数据长度相同,缓存器存储该经过时长缩减处理后的待输出的数据帧,此时缓存器中缓存数据的数据长度为一帧长,从而可以使得缓存器输出一帧长的数据;当预期时长调整长度不超过缓存器中当前缓存数据的数据长度,则将预期时长调整长度作为实际时长调整长度,这样设置是由于预期时长调整长度不超过当前缓存数据的数据长度,则将使用该预期时长调整长度进行时长缩减处理的待输出的数据帧,存储于缓存器时,此时缓存器的缓存数据的数据长度超过一帧,从而可以使得缓存器输出一帧长的数据,这样便可以实现接收端解码一帧长的数据缓存器输出一帧长的数据。
(2)对于包括的重复数据的周期个数大于或等于阈值的待输出的数据帧,判断预期时长调整长度是否超过缓存器中当前缓存数据的数据长度,若预期时长调整长度超过缓存器中当前缓存数据的数据长度,则将实际时长调整长度设置为0;若预期时长调整长度不超过缓存器中当前缓存数据的数据长度,则将预期时长调整作为实际时长调整长度;
其中,预期时长调整长度为数据帧的重复数据的长度。该数据帧的重复数据的长度即为该数据帧的基因周期。
对于周期性强的待输出的数据帧,与周期性弱的待输出的数据帧相同,其进行时长缩减处理的实际时长调整长度的设置是为了实现接收端解码一帧长的数据缓存器输出一帧长的数据,但是,由于考虑周期性强的待输出的数据帧的固有周期性,为其找到合适的拼接点以获取高质量待输出的数据帧的时长调整,当待输出的数据帧的重复数据的长度超过当前缓存数据的数据长度时,设置实际时长调整长度为0,这样设置仍可以满足接收端解码一帧长的数据缓存器输出一帧长的数据。
步骤102、根据实际时长调整长度对数据帧进行时长缩减处理。
可选地,在结合缓存器中当前缓存数据的数据长度和预期时长调整长度,确定数据帧对应的实际时长调整长度后,需要根据该实际时长调整长度对数据帧进行时长缩减处理,其具体处理方式可以为:
(1)对于包括的重复数据的周期个数小于阈值的待输出的数据帧(周期性弱),根据实际时长调整长度,采用直接去掉样点的方法进行数据帧的时长缩减处理。这里由于待输出的数据帧周期性弱,则可以采用直接去掉样点的方法进行时长缩减处理,当然,可以理解的,也可以使用加窗并叠接的方法进行时长缩减处理,然而为减小算法复杂度,对于周期弱的待输出的数据帧本实施例采用直接去掉样点的方式,既可以保证进行时长缩减处理后的数据帧质量还可以有效降低接收端算法复杂度。
(2)对于包括的重复数据的周期个数大于或等于阈值的待输出的数据帧(周期性强),采用对重复数据进行加窗并叠接的方法进行数据帧的时长缩减处理。
将经过步骤102处理后的数据帧缓存到缓存器中,以供缓存器输出时长达到数据帧帧长的缓存数据,可以实现接收端解码一帧长的数据缓存器输出一帧长的数据。
本实施例的数据帧的处理方法在上述步骤之前,还可以根据预设的采样率,对待输出的数据帧进行降采样处理,并获取重复数据的长度,对待输出的数据帧进行时长缩减处理,这样可以进一步降低该数据帧的处理方法的算法复杂度。
可选地,在本实施例的数据帧的处理方法中还可以,在判断是否对数据帧进行时长调整后,若判断获知需要对数据帧进行时长拉伸处理,对于包括的重复数据的周期个数小于阈值的待输出的数据帧(即周期性弱的数据帧),则采用零值填充或噪声填充的方法进行数据帧的时长拉伸处理。可选的,也可以采用相似段加窗并叠接的方法进行数据帧的时长拉伸处理。
本实施例,当判断获知需要对数据帧进行时长缩减处理时,通过结合缓存器中当前缓存数据的数据长度和数据帧对应的预期时长调整长度,确定数据帧对应的实际时长调整长度,使得数据帧进行时长缩减处理的实际时长调整长度与缓存器中当前缓存数据的数据长度相互关联,在根据该实际时长调整长度对数据帧进行时长缩减处理后,将该经过时长缩减处理的数据帧缓存到缓存器中,使得缓存器在接收端对解码获得的待输出的数据帧进行时长缩减处理后输出一数据帧帧长的缓存数据,从而实现控制缓存器输出一帧长的数据帧时接收端解码一帧长的数据,以降低接收端的最大复杂度,从而解决现有TSM技术进行缩减处理过程中,会出现接收端解码一帧长的数据,而缓存器中的数据长度未达到一帧长,需要接收端解码下一帧长数据的情况,造成接收端算法复杂度高的问题。
下面采用两个具体的实施例,对图1所示方法实施例的技术方案进行详细说明。以下两个实施例具体应用于DTXon编码模式下的数据帧处理方法。
图2为本发明数据帧的处理方法实施例二的流程图,如图2所示,本实施例的方法可以包括:
步骤201、接收RTP包,将接收到的RTP包放入抖动缓存器(jitterbuffer)中。
RTP(Real-timeTransportProtocol,实时传输协议)是用于流媒体业务的标准传输协议,在所有流媒体相关业务中,几乎所有的媒体内容在IP网络上进行传输之前都需要封装为RTP数据包(RTP包)的形式,RTP用来为IP网上的语音、图像、传真等多种需要实时传输的多媒体数据提供端到端的实时传输服务,VoIP也是利用IP网络完成传送语音、传真、视频和数据等业务。
步骤202、解析RTP包获得比特流,解码比特流获得待输出的数据帧,并获取缓存器中当前缓存数据的数据长度。
接收端对接收到的RTP包进行解包,获得比特流,然后进行解码操作,解码该比特流获得待输出的数据帧。其中,接收端对RTP包进行解析,可以获取RTP包的序列号和时间戳等信息,根据该序列号和时间戳等信息判断是否需要对待输出的数据帧进行时长调整处理。当接收端在短时间内接收到大量的RTP包,则在解析并解码RTP包后,需要对待输出的数据帧进行时长缩减处理,以避免数据丢失。当在较长时间内才能接收到RTP包,则在解析并解码RTP包后,需要对待输出的数据帧进行时长拉伸处理,以避免数据不连续。
步骤203、判断待输出的数据帧是否为ACTIVE帧且需要调整时长,若是,则执行步骤204,若否,则执行步骤206。
步骤204、结合缓存器中当前缓存数据的数据长度,获得数据帧对应的实际时长调整长度。
具体地,步骤204可以包括:(1)分析待输出的数据帧的能量信息。(2)对于待输出的数据帧能量小(周期性弱)的情况,使用方式一获得待输出的数据帧对应的实际时长调整长度。对于待输出的数据帧能量大(周期性强)的情况,使用方式二获得待输出的数据帧对应的实际时长调整长度。
其中,方式一,具体为,利用已有算法根据数据帧帧长获得中间时长调整长度,将该时长调整长度与该帧长对应的最大时长调整长度进行比较,选取较小的作为预期时长调整长度。进一步判断该预期时长调整长度是否超过缓存器中当前数据的数据长度,若超过,则将缓存器中当前缓存数据的数据长度作为实际时长调整长度;若不超过,则将该预期时长调整长度作为实际时长调整长度。
方式二,具体为,对待输出的数据帧进行基于相似段搜索处理,获取该待输出的数据帧的基因周期,即获得该待输出的数据帧的预期时长调整长度。进一步判断该预期时长调整长度是否超过缓存器中当前缓存数据的数据长度,若超过,则将实际时长调整长度设置为0;若不超过,则将该预期时长调整长度作为实际时长调整长度。
需要说明的是,一般接收端算法最大复杂度的出现情况通常在对待输出的数据帧进行时长缩减处理时,因此,为避免出现上述最大复杂度的情况,上述步骤204的具体实现方式适用于时长调整中的时长缩减处理。对于需要进行时长拉伸处理的情况,可以使用已有算法获取时长调整长度,直接使用该时长调整长度作为实际时长调整长度。
步骤205、根据实际时长调整长度对待输出的数据帧进行时长调整处理。
其中,对于根据实际时长调整长度对待输出的数据帧进行时长缩减处理,具体可以为,对于能量小(周期性弱)的待输出的数据帧,根据实际时长调整长度,采用直接去掉样点的方法进行时长缩减处理;对于能量大(周期性强)的待输出的数据帧,采用对待输出的数据帧中的相似段进行加窗并叠接的方法进行时长缩减处理。
对于根据实际时长调整长度对待输出的数据帧进行时长拉伸处理,具体可以为,对于能量小(周期性弱)的待输出的数据帧,根据实际时长调整长度,采用零值填充或噪声填充的方法进行时长拉伸处理;对于能量大(周期性强)的待输出的数据帧,采用对待输出的数据帧中的相似段进行加窗并叠接的方法进行时长拉伸处理。
对待输出的数据帧进行时长缩减或者时长拉伸处理均可以采用对相似段进行加窗并叠接的方法,不同之处在于,对于时长缩减处理,具体是根据待输出的数据帧搜索相似段,而对于时长拉伸处理,具体是结合待输出的数据帧和前一数据帧搜索相似段。
步骤206、对待输出的数据帧进行缓存处理,并更新缓存器中当前缓存数据的数据长度。
具体地,接收经过步骤205或者步骤203处理后的待输出的数据帧,即对经过时长调整处理或者未经过时长调整处理后的待输出的数据帧进行缓存。
步骤207、判断缓存器中当前缓存数据的数据长度是否达到一帧长,若是,则执行步骤208。
需要说明的是,由于经过步骤207之前的步骤处理后的待输出的数据帧,将该待输出的数据帧存储于缓存器中,其当前缓存数据的数据长度一定等于或者大于一帧长,所以不存在否的情况。
步骤208、输出一帧的待输出的数据帧,并更新缓存器中当前缓存数据的数据长度。
本实施例,接收端在接收到RTP包后,对RTP包进行解析并解码,判断是否需要进行时长调整,在需要进行时长调整并进行时长缩减处理时,通过将缓存器中当前缓存数据的数据长度与进行时长缩减处理的实际时长调整长度进行关联,即结合缓存器中当前缓存数据的数据长度和数据帧对应的预期时长调整长度确定实际时长调整长度,根据该实际时长调整长度对待输出的数据帧进行时长调整处理,并将需要进行时长调整处理的待输出的数据帧,经过时长调整处理后缓存到缓存器中进行输出,使得缓存器在接收端对解码获得的待输出的数据帧进行时长缩减处理后输出一数据帧帧长的缓存数据,从而实现控制缓存器输出一帧长的数据帧时接收端解码一帧长的数据,以降低接收端的最大复杂度。
图3为本发明数据帧的处理方法实施例三的流程图,如图3所示,本实施例的方法可以包括:
步骤301、接收RTP包,将接收到的RTP包放入抖动缓存器(jitterbuffer)中。
步骤302、解析RTP包获得比特流和该比特流对应的采样率,解码比特流获得待输出的数据帧,并获取缓存器中当前缓存数据的数据长度。
接收端对接收到的RTP包进行解包,获得比特流,然后进行解码操作,解码该比特流获得待输出的数据帧。其中,接收端对RTP包进行解析,可以获取RTP包的序列号、时间戳以及采样率等信息,根据该序列号和时间戳等信息判断是否需要对待输出的数据帧进行时长调整处理。当接收端在短时间内接收到大量的RTP包,则在解析并解码RTP包后,需要对待输出的数据帧进行时长缩减处理,以避免数据丢失。当在较长时间内才能接收到RTP包,则在解析并解码RTP包后,需要对待输出的数据帧进行时长拉伸处理,以避免数据不连续。
步骤303、判断待输出的数据帧是否为ACTIVE帧且需要调整时长,若是,则执行步骤304,若否,则执行步骤306。
步骤304、结合缓存器中当前缓存数据的数据长度和预设采样率,获得数据帧对应的实际时长调整长度。
具体地,步骤304可以包括:(1)结合预设采样率对待输出的数据帧进行降采样处理。(2)分析经过降采样处理后的待输出的数据帧的能量信息。(3)对于能量小(周期性弱)的情况,使用方式一获得实际时长调整长度。对于能量大(周期性强)的情况,使用方式二获得实际时长调整长度。
其中,在步骤302中可以获取待输出的数据帧的采样率,若该采样率较高,例如采样率大于16kHz,则可以对该待输出的数据帧根据预设采样率进行降采样处理,以进一步降低算法复杂度。
对于经过降采样处理后的待输出的数据帧进行能量分析后,使用相应方式获取实际时长调整长度。具体地,方式一可以参见图2所示实施例二中步骤204中的方式一,此处不再赘述。
方式二,具体为,对降采样处理后的待输出的数据帧进行基于相似段搜索处理,获取该降采样处理后的待输出的数据帧的基因周期。对该降采样处理后的待输出的数据帧的基因周期进行加倍,获取未经过降采样处理的待输出的数据帧的基因周期,进一步判断该待输出的数据帧的基因周期是否超过缓存器中当前缓存数据的数据长度,若超过,则将实际时长调整长度设置为0;若不超过,则将该待输出的数据帧的基因周期作为实际时长调整长度。
需要说明的是,一般接收端算法出现最大复杂度的情况通常出现在对待输出的数据帧进行时长缩减处理时,因此,为避免出现上述最大复杂度的情况,上述步骤304的具体实现方式适用于时长调整中的时长缩减处理。对于需要进行时长拉伸处理的情况,可以使用已有算法获取时长调整长度,直接使用该时长调整长度作为实际时长调整长度。
步骤305、根据实际时长调整长度对待输出的数据帧进行时长调整处理。
步骤306、对待输出的数据帧进行缓存处理,并更新缓存器中当前缓存数据的数据长度。
步骤307、判断缓存器中当前缓存数据的数据长度是否达到一帧长,若是,则执行步骤308。
步骤308、输出一帧的待输出的数据帧,并更新缓存器中当前缓存数据的数据长度。
其中,步骤305-步骤308的具体实施方式可以参见图2所示实施例中步骤205-步骤208,此处不再赘述。
本实施例,在图2所示实施例的基础上,根据预设采样率,对待输出的数据帧进行降采样处理,可以在实现控制缓存器输出一帧长的数据帧时接收端解码一帧长的数据,以降低接收端的最大复杂度的基础上,进一步降低算法复杂度。可以理解的,无论是对于时长缩减处理还是时长拉伸处理,本实施通过对待输出的数据帧进行降采样处理,都可以实现降低现有时长调整算法的算法复杂度。本实施例的方法对于高采样率的数据,其降低算法复杂度的效果更为明显。
图4为本发明数据帧的处理装置实施例一的结构示意图,如图4所示,本实施例的装置可以包括:获取模块11和时长缩减处理模块12,其中,接收模块11用于获得待输出的数据帧以及所述数据帧对应的预期时长调整长度,若判断获知需要对所述数据帧进行时长缩减处理,则结合缓存器中当前缓存数据的数据长度和所述预期时长调整长度,确定所述数据帧对应的实际时长调整长度,时长缩减处理模块12用于根据所述实际时长调整长度对所述数据帧进行时长缩减处理。
其中,获取模块11获得待输出的数据帧,当判断获知需要对数据帧进行时长缩减处理时,通过根据缓存器中当前缓存数据的数据长度获得数据帧对应的实际时长调整长度,使得数据帧进行时长缩减处理的实际时长调整长度与缓存器中当前缓存数据的数据长度相互关联,时长缩减处理模块12在根据该实际时长调整长度对数据帧进行时长缩减处理后,将该经过时长缩减处理的数据帧缓存到缓存器中,使得缓存器在接收端对解码获得的待输出的数据帧进行时长缩减处理后输出一数据帧帧长的缓存数据,从而实现控制缓存器输出一帧长的数据帧时接收端解码一帧长的数据。
进一步地,获取模块11具体可以用于,对于包括的重复数据的周期个数小于阈值的所述待输出的数据帧,判断所述预期时长调整长度是否超过所述缓存器中当前缓存数据的数据长度,若所述预期时长调整长度超过所述缓存器中当前缓存数据的数据长度,则将所述缓存器中当前缓存数据的数据长度作为所述实际时长调整长度;若所述预期时长调整长度不超过所述缓存器中当前缓存数据的数据长度,则将所述预期时长调整长度作为所述实际时长调整长度;其中,所述预期时长调整长度为中间时长调整长度与最大时长调整长度中较小的,所述中间时长调整长度是根据所述帧长获得的,所述最大时长调整长度是所述帧长对应的最大时长调整长度。
相应地,时长缩减处理模块12具体用于,根据所述实际时长调整长度,采用直接去掉样点的方法进行所述数据帧的时长缩减处理。
可选地,获取模块11具体还可以用于,对于包括的重复数据的周期个数大于或等于阈值的所述待输出的数据帧,判断所述预期时长调整长度是否超过所述缓存器中当前缓存数据的数据长度,若所述预期时长调整长度超过所述缓存器中当前缓存数据的数据长度,则将所述实际时长调整长度设置为0;若所述预期时长调整长度不超过所述缓存器中当前缓存数据的数据长度,则将所述预期时长调整长度作为所述实际时长调整长度;其中所述预期时长调整长度为所述重复数据的长度。
相应地,时长缩减处理模块12具体用于,根据所述实际时长调整长度,采用对所述重复数据进行加窗并叠接的方法进行所述数据帧的时长缩减处理。
具体地,获取单元11,具体针对周期性弱的待输出的数据帧,当预期时长调整长度超过缓存器中当前缓存数据的数据长度,则将缓存器中当前缓存数据的数据长度作为实际时长调整长度,这样缓存器可以在接收端解码一帧数据后,使用该实际时长调整长度对解码后获得的待输出的数据帧进行时长缩减处理,这样缓存器存储该经过时长缩减处理后的待输出的数据帧,其当前缓存数据的数据长度可以满足一帧长,当预期时长调整长度不超过缓存器中当前缓存数据的数据长度,则将预期时长调整长度作为实际时长调整长度,这样设置是由于预期时长调整长度不超过当前缓存数据的数据长度,则将使用该预期时长调整长度进行时长缩减处理的待输出的数据帧,存储于缓存器时,此时缓存器当前缓存数据的数据长度超过一帧,从而可以使得缓存器输出一帧长的数据,这样便可以实现接收端解码一帧长的数据缓存器输出一帧长的数据。而获取单元11,具体针对周期性强的待输出的数据帧,与周期性弱的待输出的数据帧相同,其进行时长缩减处理的实际时长调整长度的设置是为了实现接收端解码一帧长的数据缓存器输出一帧长的数据,但是,由于考虑周期性强的待输出的数据帧的固有周期性,为其找到合适的拼接点以获取高质量待输出的数据帧的时长调整,当待输出的数据帧预期时长调整长度超过当前缓存数据的数据长度时,设置实际时长调整长度为0,这样设置仍可以满足接收端解码一帧长的数据缓存器输出一帧长的数据。
时长缩减处理模块12在通过获取单元11获取到实际时长调整长度后,根据该实际时长调整长度对待输出的数据帧进行时长缩减处理。
本实施例的装置,可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图5为本发明数据帧的处理装置实施例二的结构示意图,如图5所示,本实施例的装置在图4所示装置结构的基础上,进一步地,还可以包括:采样模块13,用于根据预设的采样率,对所述待输出的数据帧进行降采样处理,并获取所述重复数据的长度。
在图4所示装置结构的基础上,增加采样模块13,这样可以在进行时长缩减处理之前,对待输出的数据帧进行降采样处理,从而可以实现进一步降低算法复杂度的效果。即在获取单元11对待输出的数据帧进行处理之前,先将该待输出的数据帧经过采样模块13处理。
本实施例的装置,可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图6为本发明数据帧的处理装置实施例三的结构示意图,如图6所示,本实施例的装置在上述装置结构的基础上,进一步地,还可以包括:时长拉伸处理模块14,用于若判断获知需要对所述数据帧进行时长拉伸处理,对于包括的重复数据的周期个数小于阈值的所述待输出的数据帧,则采用零值填充或噪声填充的方法进行所述数据帧的时长拉伸处理。
其中,在待输出的数据帧经过获取模块11处理后,若判断获知需要进行时长拉伸处理,对于包括的重复数据的周期个数小于阈值的所述待输出的所述数据帧,则由时长拉伸处理模块14对待输出的数据帧进行处理。
本实施例的装置,可以用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (14)
1.一种数据帧的处理方法,其特征在于,包括:
获得待输出的数据帧以及所述数据帧对应的预期时长调整长度,若判断获知需要对所述数据帧进行时长缩减处理,则结合缓存器中当前缓存数据的数据长度和所述预期时长调整长度,确定所述数据帧对应的实际时长调整长度;
根据所述实际时长调整长度对所述数据帧进行时长缩减处理。
2.根据权利要求1所述的方法,其特征在于,所述结合缓存器中当前缓存数据的数据长度和所述预期时长调整长度,确定所述数据帧对应的实际时长调整长度包括:
对于包括的重复数据的周期个数小于阈值的所述待输出的数据帧,判断所述预期时长调整长度是否超过所述缓存器中当前缓存数据的数据长度,若所述预期时长调整长度超过所述缓存器中当前缓存数据的数据长度,则将所述缓存器中当前缓存数据的数据长度作为所述实际时长调整长度;若所述预期时长调整长度不超过所述缓存器中当前缓存数据的数据长度,则将所述预期时长调整长度作为所述实际时长调整长度;其中,所述预期时长调整长度为中间时长调整长度与最大时长调整长度中较小的,所述中间时长调整长度是根据所述帧长获得的,所述最大时长调整长度是所述帧长对应的最大时长调整长度。
3.根据权利要求2所述的方法,其特征在于,所述根据所述实际时长调整长度对所述数据帧进行时长缩减处理包括:
根据所述实际时长调整长度,采用直接去掉样点的方法进行所述数据帧的时长缩减处理。
4.根据权利要求1所述的方法,其特征在于,所述结合缓存器中当前缓存数据的数据长度和所述预期时长调整长度,确定所述数据帧对应的实际时长调整长度包括:
对于包括的重复数据的周期个数大于或等于阈值的所述待输出的数据帧,判断所述预期时长调整长度是否超过所述缓存器中当前缓存数据的数据长度,若所述预期时长调整长度超过所述缓存器中当前缓存数据的数据长度,则将所述实际时长调整长度设置为0;若所述预期时长调整长度不超过所述缓存器中当前缓存数据的数据长度,则将所述预期时长调整长度作为所述实际时长调整长度;其中,所述预期时长调整长度为所述重复数据的长度。
5.根据权利要求4所述的方法,其特征在于,所述根据所述实际时长调整长度对所述数据帧进行时长缩减处理包括:
根据所述实际时长调整长度,采用对所述重复数据进行加窗并叠接的方法进行所述数据帧的时长缩减处理。
6.根据权利要求1至5任一项所述的方法,其特征在于,在所述结合缓存器中当前缓存数据的数据长度和所述预期时长调整长度,确定所述数据帧对应的实际时长调整长度之前,还包括:
根据预设的采样率,对所述待输出的数据帧进行降采样处理,并获取所述重复数据的长度。
7.根据权利要求1至6任一所述的方法,其特征在于,所述方法还包括:
若判断获知需要对所述数据帧进行时长拉伸处理,对于包括的重复数据的周期个数小于阈值的所述待输出的数据帧,则采用零值填充或噪声填充的方法进行所述数据帧的时长拉伸处理。
8.一种数据帧的处理装置,其特征在于,包括:
获取模块,用于获得待输出的数据帧以及所述数据帧对应的预期时长调整长度,若判断获知需要对所述数据帧进行时长缩减处理,则结合缓存器中当前缓存数据的数据长度和所述预期时长调整长度,确定所述数据帧对应的实际时长调整长度;
时长缩减处理模块,用于根据所述实际时长调整长度对所述数据帧进行时长缩减处理。
9.根据权利要求8所述的装置,其特征在于,所述获取模块具体用于:
对于包括的重复数据的周期个数小于阈值的所述待输出的数据帧,判断所述预期时长调整长度是否超过所述缓存器中当前缓存数据的数据长度,若所述预期时长调整长度超过所述缓存器中当前缓存数据的数据长度,则将所述缓存器中当前缓存数据的数据长度作为所述实际时长调整长度;若所述预期时长调整长度不超过所述缓存器中当前缓存数据的数据长度,则将所述预期时长调整长度作为所述实际时长调整长度;其中,所述预期时长调整长度为中间时长调整长度与最大时长调整长度中较小的,所述中间时长调整长度是根据所述帧长获得的,所述最大时长调整长度是所述帧长对应的最大时长调整长度。
10.根据权利要求9所述的装置,其特征在于,所述时长缩减处理模块具体用于:
根据所述实际时长调整长度,采用直接去掉样点的方法进行所述数据帧的时长缩减处理。
11.根据权利要求8所述的装置,其特征在于,所述获取模块具体用于:
对于包括的重复数据的周期个数大于或等于阈值的所述待输出的数据帧,判断所述预期时长调整长度是否超过所述缓存器中当前缓存数据的数据长度,若所述预期时长调整长度超过所述缓存器中当前缓存数据的数据长度,则将所述实际时长调整长度设置为0;若所述预期时长调整长度不超过所述缓存器中当前缓存数据的数据长度,则将所述预期时长调整长度作为所述实际时长调整长度;其中所述预期时长调整长度为所述重复数据的长度。
12.根据权利要求11所述的装置,其特征在于,所述时长缩减处理模块具体用于:
根据所述实际时长调整长度,采用对所述重复数据进行加窗并叠接的方法进行所述数据帧的时长缩减处理。
13.根据权利要求8至12任一项所述的装置,其特征在于,所述装置还包括:
采样模块,用于根据预设的采样率,对所述待输出的数据帧进行降采样处理,并获取所述重复数据的长度。
14.根据权利要求8至13任一所述的装置,其特征在于,所述装置还包括:
时长拉伸处理模块,用于若判断获知需要对所述数据帧进行时长拉伸处理,对于包括的重复数据的周期个数小于阈值的所述待输出的数据帧,则采用零值填充或噪声填充的方法进行所述数据帧的时长拉伸处理。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410309383.0A CN105207955B (zh) | 2014-06-30 | 2014-06-30 | 数据帧的处理方法和装置 |
PCT/CN2015/071635 WO2016000448A1 (zh) | 2014-06-30 | 2015-01-27 | 数据帧的处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410309383.0A CN105207955B (zh) | 2014-06-30 | 2014-06-30 | 数据帧的处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105207955A true CN105207955A (zh) | 2015-12-30 |
CN105207955B CN105207955B (zh) | 2019-02-05 |
Family
ID=54955396
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410309383.0A Active CN105207955B (zh) | 2014-06-30 | 2014-06-30 | 数据帧的处理方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN105207955B (zh) |
WO (1) | WO2016000448A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107666375A (zh) * | 2016-07-28 | 2018-02-06 | 北京数码视讯科技股份有限公司 | 一种数据传输方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070211704A1 (en) * | 2006-03-10 | 2007-09-13 | Zhe-Hong Lin | Method And Apparatus For Dynamically Adjusting The Playout Delay Of Audio Signals |
CN101335796A (zh) * | 2008-07-25 | 2008-12-31 | 华为技术有限公司 | 解码调度方法和装置 |
CN102104775A (zh) * | 2009-12-18 | 2011-06-22 | 华为技术有限公司 | 一种帧率调整方法和装置 |
CN102779517A (zh) * | 2004-08-30 | 2012-11-14 | 高通股份有限公司 | 用于语音ip传输的自适应去抖动缓冲器 |
CN103167320A (zh) * | 2011-12-15 | 2013-06-19 | 中国电信股份有限公司 | 音视频同步方法、系统及手机直播客户端 |
CN103404053A (zh) * | 2011-08-24 | 2013-11-20 | 华为技术有限公司 | 音频或语音信号处理器 |
-
2014
- 2014-06-30 CN CN201410309383.0A patent/CN105207955B/zh active Active
-
2015
- 2015-01-27 WO PCT/CN2015/071635 patent/WO2016000448A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102779517A (zh) * | 2004-08-30 | 2012-11-14 | 高通股份有限公司 | 用于语音ip传输的自适应去抖动缓冲器 |
US20070211704A1 (en) * | 2006-03-10 | 2007-09-13 | Zhe-Hong Lin | Method And Apparatus For Dynamically Adjusting The Playout Delay Of Audio Signals |
CN101335796A (zh) * | 2008-07-25 | 2008-12-31 | 华为技术有限公司 | 解码调度方法和装置 |
CN102104775A (zh) * | 2009-12-18 | 2011-06-22 | 华为技术有限公司 | 一种帧率调整方法和装置 |
CN103404053A (zh) * | 2011-08-24 | 2013-11-20 | 华为技术有限公司 | 音频或语音信号处理器 |
CN103167320A (zh) * | 2011-12-15 | 2013-06-19 | 中国电信股份有限公司 | 音视频同步方法、系统及手机直播客户端 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107666375A (zh) * | 2016-07-28 | 2018-02-06 | 北京数码视讯科技股份有限公司 | 一种数据传输方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2016000448A1 (zh) | 2016-01-07 |
CN105207955B (zh) | 2019-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4504429B2 (ja) | 端末間のボイスオーバインターネットプロトコルのメディアの待ち時間を管理する方法および装置 | |
US7450601B2 (en) | Method and communication apparatus for controlling a jitter buffer | |
US7920492B1 (en) | Devices, softwares and methods for redundantly encoding a data stream for network transmission with adjustable redundant-coding delay | |
US9762355B2 (en) | System and method of redundancy based packet transmission error recovery | |
US20070263672A1 (en) | Adaptive jitter management control in decoder | |
CN105989844B (zh) | 一种音频传输的自适应方法及装置 | |
US10803877B2 (en) | Signal processing methods and apparatuses for enhancing sound quality | |
CN104917671A (zh) | 基于移动终端的音频处理方法和装置 | |
US20170187635A1 (en) | System and method of jitter buffer management | |
CN108696491B (zh) | 音频数据的发送处理方法与装置、接收处理方法与装置 | |
CN105187167A (zh) | 一种语音数据通信方法及装置 | |
US9025504B2 (en) | Bandwidth efficiency in a wireless communications network | |
EP1344036B1 (en) | Method and a communication apparatus in a communication system | |
US9401150B1 (en) | Systems and methods to detect lost audio frames from a continuous audio signal | |
KR101516113B1 (ko) | 음성 복호 장치 | |
CN105207955A (zh) | 数据帧的处理方法和装置 | |
CN100505714C (zh) | 基于自适应差分脉冲编码调制的丢帧处理设备及方法 | |
CN104934040A (zh) | 音频信号的时长调整方法和装置 | |
CN107733833B (zh) | 一种CDMA与VoLTE终端的语音互通方法与系统 | |
US7929520B2 (en) | Method, system and apparatus for providing signal based packet loss concealment for memoryless codecs | |
CN101378512A (zh) | 一种音视频数据同步的方法、装置 | |
CN113035226A (zh) | 语音通话方法、通信终端和计算机可读介质 | |
CN104348577A (zh) | 改善云会议中的视频质量的重复包策略 | |
US20070186146A1 (en) | Time-scaling an audio signal | |
Pang et al. | Analysis of the latency of SIP phone based on the embedded system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210423 Address after: Unit 3401, unit a, building 6, Shenye Zhongcheng, No. 8089, Hongli West Road, Donghai community, Xiangmihu street, Futian District, Shenzhen, Guangdong 518040 Patentee after: Honor Device Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |