CN103516469B - 语音帧的发送、接收装置及方法 - Google Patents
语音帧的发送、接收装置及方法 Download PDFInfo
- Publication number
- CN103516469B CN103516469B CN201210210328.7A CN201210210328A CN103516469B CN 103516469 B CN103516469 B CN 103516469B CN 201210210328 A CN201210210328 A CN 201210210328A CN 103516469 B CN103516469 B CN 103516469B
- Authority
- CN
- China
- Prior art keywords
- speech frame
- time delay
- encoding time
- arranged code
- frame
- 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.)
- Active
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种语音帧的发送、接收装置及方法,上述装置包括:计算模块,用于根据第一预设编码算法的第一编码延时和第二预设编码算法的第二编码延时分别计算出第一预设编码算法和第二预设编码算法的编码同步的起始位置;编码模块,用于按照计算出的起始位置分别采用第一预设编码算法和第二预设编码算法对采集到的语音帧进行编码处理;发送模块,用于将采用第一预设编码算法编码处理后的采集到的语音帧中当前语音帧和采用第二预设编码算法编码处理后的采集到的语音帧中上一个语音帧进行整合处理并发送。根据本发明提供的技术方案,使得主次编码技术更好地适应于不同的编解码算法,以低时延低带宽开销的代价增强了语音传输的抗丢包能力。
Description
技术领域
本发明涉及通信领域,具体而言,涉及一种语音帧的发送、接收装置及方法。
背景技术
全互联网协议(Internet Protocol,简称为IP)化传输是目前多媒体通信发展的趋势,而基于分组传输的IP网络只能提供尽力而为的服务,丢包、延时及抖动等问题会一直伴随着语音、图像等多媒体在分组网络的应用。目前,相关技术中解决网络丢包的技术方案主要可以包括:交织、重传和前向纠错。
1、交织技术是将若干个数据包划分为一组,按照一定的规则将数据包进行重排序发送,主要用于抵御突发性连续丢包,其优点在于不会增加带宽开销,而缺点在于需要将数据包进行分组,编码数据不能立即发送和解码,引入延时大,不适合实时性较高的交互式通信业务。
2、重传技术是当接收端检测到丢包后,发送反馈请求重传,发送端可以根据反馈信息重传丢失的数据包。重传的缺点在于,只适应具有反馈信道的业务,且延时较高,其时延大小主要取决于发送端和接收端之间的网络往返时间(Round Trip Time,简称为RTT)大小和抖动,以及两端对相关信息的处理时间。此外,重传数据包和反馈消息均引入了额外的带宽开销。
3、前向纠错技术按照和媒体内容的关系,可以分为与媒体无关和与媒体相关的前向纠错技术。与媒体无关的前向纠错技术是将若干个媒体包划分为一组,利用前向纠错算法,例如:里德-所罗门码、卷积码等,生成冗余数据包。当分组中某个或几个媒体包丢失时,接收端可以利用组内未丢失的媒体包及冗余包,还原丢失的媒体包。该技术的优点在于与具体的媒体内容无关,计算量小,易于实施;而缺点之一和交织技术一样,要将媒体包进行分组编码数据不能立即发送和解码,引入延时大。此外,还需要增加带宽开销。与媒体相关的前向纠错技术,又称为主次编码技术,是将同一媒体单元以两种不同的编码算法或同一编码算法的不同级部分,构造两个副本,分别传输。第一个传输副本叫做主编码,第二传输副本叫做次编码。当网络上主编码丢失时,接收端可以从对应的且未丢失的次编码还原出媒体单元。媒体相关的前向纠错的优点在于延时小,通常主编码数据和前一帧的媒体单元的次编码一起传输,延时只有一帧就能补偿主编码的丢失。然而,相关技术中的主次编码的缺点主要体现在当主次编码采用不同的编码算法的时候,由于不同算法的编码延时可能不一样,同一媒体单元不同算法编出的数据还原的媒体可能不是时间上对齐的。此外,即使是时间上对齐的由不同编解码还原出来的媒体信号也会在相位或幅度上差别较大,因此,将同一帧的次编码数据还原的结果去替换丢失的主编码,就存在前后媒体单元衔接不上的问题,可能会导致媒体重放时出现“卡”的现象。此外,通常的编码算法均具有帧间参考的特性,当主编码丢失时,即使从次编码恢复了丢失的媒体单元,但后续一段时间内主编码数据解码的效果也会受到丢包的影响。
发明内容
本发明提供了一种语音帧的发送、接收装置及方法,以至少解决相关技术中的主次编码的方法无法将主编码数据解码的媒体单元与通过次编码还原的媒体单元无缝衔接的问题。
根据本发明的一个方面,提供了一种语音帧的发送装置。
根据本发明的语音帧的发送装置包括:计算模块,用于根据第一预设编码算法的第一编码延时和第二预设编码算法的第二编码延时分别计算出第一预设编码算法和第二预设编码算法的编码同步的起始位置;编码模块,用于按照计算出的起始位置分别采用第一预设编码算法和第二预设编码算法对采集到的语音帧进行编码处理;发送模块,用于将采用第一预设编码算法编码处理后的采集到的语音帧中当前语音帧和采用第二预设编码算法编码处理后的采集到的语音帧中上一个语音帧进行整合处理并发送。
优选地,上述计算模块包括:获取单元,用于分别获取第一编码延时和第二编码延时;计算单元,用于根据第一编码延时和第二编码延时计算延时差;填充单元,用于将第一编码延时和第二编码延时进行比较,在采用编码延时较小的预设编码算法对采集到语音帧进行编码处理之前,在采集到语音帧前填充长度为延时差的静音数据。
根据本发明的另一方面,提供了一种语音帧的接收装置。
根据本发明的语音帧的接收装置包括:接收模块,用于接收整合处理后的语音帧,其中,整合处理后的语音帧包括:从第一预设编码算法的编码同步的起始位置采用第一预设编码算法编码处理后的第一语音帧和从第二预设编码算法的编码同步的起始位置采用第二预设编码算法编码处理后的第二语音帧,第二语音帧为第一语音帧的前一个语音帧;解析模块,用于对整合处理后的语音帧进行解析处理,将第一语音帧和第二语音帧进行分离;输出模块,用于对分离后的第一语音帧和第二语音帧分别进行解码处理,并将经过解码处理后的第一语音帧输出;或者,在上一次接收的整合处理后的语音帧发生丢包时,将第二语音帧输出。
优选地,上述输出模块包括:第一解码单元,用于对第一语音帧进行解码处理;第二解码单元,用于对第二语音帧进行解码处理;检测单元,用于检测经过当前解码处理后的第一语音帧与经过上一次解码处理后的第一语音帧是否连续;切换单元,用于在检测单元输出为是时,将经过当前解码处理后的第一语音帧输出;或者,在检测单元输出为否时,切换至将经过当前解码处理后的第二语音帧输出。
优选地,上述切换单元,还用于在输出的第二语音帧为一个或多个静音帧时,切换至将经过当前解码处理后的第一语音帧输出。
优选地,输出模块还包括:平滑处理单元,用于将经过解码处理后的第二语音帧与上一次输出的语音帧进行平滑处理。
根据本发明的又一方面,提供了一种语音帧的发送方法。
根据本发明的语音帧的发送方法包括:根据第一预设编码算法的第一编码延时和第二预设编码算法的第二编码延时分别计算出第一预设编码算法和第二预设编码算法的编码同步的起始位置;按照计算出的起始位置分别采用第一预设编码算法和第二预设编码算法对采集到的语音帧进行编码处理;将采用第一预设编码算法编码处理后的采集到的语音帧中当前语音帧和采用第二预设编码算法编码处理后的采集到的语音帧中上一个语音帧进行整合处理并发送。
优选地,根据所述第一预设编码算法的第一编码延时和所述第二预设编码算法的第二编码延时分别计算出所述第一预设编码算法和第二预设编码算法的所述编码同步的起始位置包括:分别获取所述第一编码延时和所述第二编码延时;根据所述第一编码延时和所述第二编码延时计算延时差;将所述第一编码延时和所述第二编码延时进行比较,在采用编码延时较小的预设编码算法对所述采集到语音帧进行编码处理之前,在所述采集到语音帧前填充长度为所述延时差的静音数据。
根据本发明的再一方面,提供了一种语音帧的接收方法。
根据本发明的语音帧的接收方法包括:接收整合处理后的语音帧,其中,整合处理后的语音帧包括:从第一预设编码算法的编码同步的起始位置采用第一预设编码算法编码处理后的第一语音帧和从第二预设编码算法的编码同步的起始位置采用第二预设编码算法编码处理后的第二语音帧,第二语音帧为第一语音帧的前一个语音帧;对整合处理后的语音帧进行解析处理,将第一语音帧和第二语音帧进行分离;对分离后的第一语音帧和第二语音帧分别进行解码处理,并将经过解码处理后的第一语音帧输出;或者,在上一次接收的整合处理后的语音帧发生丢包时,将第二语音帧输出。
优选地,对分离后的第一语音帧和第二语音帧分别进行解码处理,并将经过解码处理后的第一语音帧输出;或者,在上一次接收的整合处理后的语音帧发生丢包时,将第二语音帧输出包括:对第一语音帧进行解码处理;对第二语音帧进行解码处理;检测经过当前解码处理后的第一语音帧与经过上一次解码处理后的第一语音帧是否连续;在检测单元输出为是时,将经过当前解码处理后的第一语音帧输出;或者,在检测单元输出为否时,切换至将经过当前解码处理后的第二语音帧输出。
优选地,在切换至将经过当前解码处理后的第二语音帧输出之后,还包括:在输出的第二语音帧为一个或多个静音帧时,切换至将经过当前解码处理后的第一语音帧输出。
优选地,对分离后的第一语音帧和第二语音帧分别进行解码处理,并将经过解码处理后的第一语音帧输出;或者,在上一次接收的整合处理后的语音帧发生丢包时,将第二语音帧输出还包括:将经过解码处理后的第二语音帧与上一次输出的语音帧进行平滑处理。
通过本发明,采用根据不同编码算法的编码延时分别计算出各个编码算法的编码同步的起始位置,按照计算出的起始位置分别采用不同的编码算法对采集到的语音帧进行编码处理,将采用一种编码算法编码处理后的采集到的语音帧中当前语音帧和采用另外一种的预设编码算法编码处理后的采集到的语音帧中上一个语音帧进行整合处理并发送,解决了相关技术中的主次编码的方法无法将主编码数据解码的媒体单元与通过次编码还原的媒体单元无缝衔接的问题,进而使得主次编码技术更好地适应于不同的编解码算法,以低时延低带宽开销的代价增强了语音传输的抗丢包能力。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的语音帧的发送装置的结构框图;
图2是根据本发明优选实施例的语音帧的发送装置的结构框图;
图3是根据本发明优选实施例的获取主次编码同步起始点以及整合主次编码数据的示意图;
图4是根据本发明优选实施例的语音帧的发送装置的结构示意图;
图5是根据本发明实施例的语音帧的接收装置的结构框图;
图6是根据本发明优选实施例的语音帧的接收装置的结构框图;
图7是根据本发明优选实施例的语音帧拼接和平滑处理的示意图;
图8是根据本发明优选实施例的语音帧的接收装置的结构示意图;
图9是根据本发明实施例的语音帧的发送方法的流程图;
图10是根据本发明优选实施例的语音帧的发送方法的流程图;
图11是根据本发明实施例的语音帧的接收方法的流程图;以及
图12是根据本发明优选实施例的语音帧的接收方法的流程图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
图1是根据本发明实施例的语音帧的发送装置的结构框图。如图1所示,该语音帧的发送装置包括:计算模块10,用于根据第一预设编码算法的第一编码延时和第二预设编码算法的第二编码延时分别计算出第一预设编码算法和第二预设编码算法的编码同步的起始位置;编码模块20,用于按照计算出的起始位置分别采用第一预设编码算法和第二预设编码算法对采集到的语音帧进行编码处理;发送模块30,用于将采用第一预设编码算法编码处理后的采集到的语音帧中当前语音帧和采用第二预设编码算法编码处理后的采集到的语音帧中上一个语音帧进行整合处理并发送。
相关技术中,主次编码的方法无法将主编码数据解码的媒体单元与通过次编码还原的媒体单元无缝衔接。采用如图1所示的装置,采用根据不同编码算法的编码延时分别计算出各个编码算法的编码同步的起始位置,按照计算出的起始位置分别采用不同的编码算法对采集到的语音帧进行编码处理,将采用一种编码算法编码处理后的采集到的语音帧中当前语音帧和采用另外一种的预设编码算法编码处理后的采集到的语音帧中上一个语音帧进行整合处理并发送,解决了相关技术中的主次编码的方法无法将主编码数据解码的媒体单元与通过次编码还原的媒体单元无缝衔接的问题,进而使得主次编码技术更好地适应于不同的编解码算法,以低时延低带宽开销的代价增强了语音传输的抗丢包能力。
在优选实施过程中,主次编码技术可以更好地适应于不同的编解码算法,例如:主编码可以采用宽带、高码率、语音质量好、抗丢包能力弱的算法,而次编码可以采用窄带、低码率、抗丢包能力强的算法。
在优选实施例中,发送端首先可以根据主次两种编码算法各自的编解码延时计算编码同步的起始点;然后按照各自的编码同步的起始点对采集到的媒体数据依次进行编码并进行缓存;最后将当前采集到的语音帧的主编码数据和历史帧的次编码数据进行打包并发送。
优选地,如图2所示,计算模块10可以包括:获取单元100,用于分别获取第一编码延时和第二编码延时;计算单元102,用于根据第一编码延时和第二编码延时计算延时差;填充单元104,用于将第一编码延时和第二编码延时进行比较,在采用编码延时较小的预设编码算法对采集到语音帧进行编码处理之前,在采集到语音帧前填充长度为延时差的静音数据。
在优选实施例中,图3是根据本发明优选实施例的获取主次编码同步起始点以及整合主次编码数据的示意图。如图3所示,假设主编码算法延时为L主,次编码算法延时为L次,L=|L主-L次|。将L作为主次编码起点之差。当L次>L主时,在向主编码器输入采集数据之前需要填充长度为L的静音数据,后续每帧编码的同步点为n*F-L,其中,如果n*F-L<0表示需要填充n-1个完整的静音帧,而次编码的同步点为n*F;当L次<L主时,具体过程与上述相反,此处不再赘述。
下面结合图4所示的优选实施例对上述优选实施过程做进一步的描述。
图4是根据本发明优选实施例的语音帧的发送装置的结构示意图。如图4所示,可以包括:采集器、主次编码器、整合器以及数据包发送器,其中,网络可以指代IP分组网络。采集器,用于采集语音帧;主次编码器,用于按照计算出的各自编码同步的起始点对采集的语音数据依次进行编码;整合器,用于将主次编码数据整合成实时传送协议(Real-timeTransport Protocol,简称为RTP)包的负载,并构造RTP包的包头信息;发送器,用于将整合后的语音数据包发送到IP分组网络中。
图5是根据本发明实施例的语音帧的接收装置的结构框图。如图5所示,该语音帧的接收装置可以包括:接收模块40,用于接收整合处理后的语音帧,其中,整合处理后的语音帧包括:从第一预设编码算法的编码同步的起始位置采用第一预设编码算法编码处理后的第一语音帧和从第二预设编码算法的编码同步的起始位置采用第二预设编码算法编码处理后的第二语音帧,第二语音帧为第一语音帧的前一个语音帧;解析模块50,用于对整合处理后的语音帧进行解析处理,将第一语音帧和第二语音帧进行分离;输出模块60,用于对分离后的第一语音帧和第二语音帧分别进行解码处理,并将经过解码处理后的第一语音帧输出;或者,在上一次接收的整合处理后的语音帧发生丢包时,将第二语音帧输出。
采用如图5所述的装置,解决了相关技术中的主次编码的方法无法将主编码数据解码的媒体单元与通过次编码还原的媒体单元无缝衔接的问题,进而使得主次编码技术更好地适应于不同的编解码算法,以低时延低带宽开销的代价增强了语音传输的抗丢包能力。
在优选实施例中,接收端在接收到发送端发送的语音帧之后,可以先放置在抗抖动缓冲器中;其次从抗抖动缓冲器获取数据包,同时检测是否发生丢包现象;如果发生主编码数据丢包,则在抗抖动缓冲器中查找次编码与丢失的主编码相同步的数据包;如果未发生主编码数据丢包,则从语音数据包中解析出主次编码数据;然后主次解码器各自解码编码数据。
优选地,如图6所示,输出模块60可以包括:第一解码单元600,用于对第一语音帧进行解码处理;第二解码单元602,用于对第二语音帧进行解码处理;检测单元604,用于检测经过当前解码处理后的第一语音帧与经过上一次解码处理后的第一语音帧是否连续;切换单元606,用于在检测单元输出为是时,将经过当前解码处理后的第一语音帧输出;或者,在检测单元输出为否时,切换至将经过当前解码处理后的第二语音帧输出。
在优选实施例中,如果检测到丢包或根据策略由于丢包且主解码器无法补偿丢失的数据,则切换至播放次解码器输出数据的状态;否则将当前主解码器输出数据输入到播放缓存。
优选地,上述切换单元606,还用于在输出的第二语音帧为一个或多个静音帧时,切换至将经过当前解码处理后的第一语音帧输出。
在优选实施例中,可以对次解码器解码出的第二语音帧进行VAD检测,如果检测结果为静音帧或连续静音帧,则切换至播放主解码器输出数据的状态;否则,将当前次解码器输出的数据输入到播放缓存。
优选地,如图6所示,输出模块60还可以包括:平滑处理单元608,用于将经过解码处理后的第二语音帧与上一次输出的语音帧进行平滑处理。
在优选实施例中,如果检测到丢包或根据策略由于丢包且主解码器无法补偿丢失的数据,则将次解码器解码后的语音帧与前一次输出到播放缓存语音帧于衔接处进行平滑处理,并将处理后的帧输出到播放缓存;否则,将当前主解码器输出数据输入到播放缓存。
在优选实施例中,图7是根据本发明优选实施例的语音帧拼接和平滑处理的示意图。如图7所示,将次解码数据和前一次输入到播放缓存的数据进行平滑处理。虽然在发送端主次编码数据在时间上是同步的,但各自还原出的语音帧在相位及幅度上都可能会有所差别,因此,需要进行平滑处理。
下面结合图8所示的优选实施例对上述优选实施方式做进一步的描述。
图8是根据本发明优选实施例的语音帧的接收装置的结构示意图。如图8所示,可以包括:抗抖动缓冲器、解析器、主次解码器、切换控制器及播放缓冲器,其中,抗抖动缓冲器,用于将接收到的语音帧缓存并且消除干扰;解析器,用于解析RTP负载并分离主次编码数据;主次解码器,用于分别对主次编码数据进行解码;切换控制器,用于在主次解码器之间进行切换并输出至播放缓冲器。
图9是根据本发明实施例的语音帧的发送方法的流程图。如图9所示,该方法可以包括以下处理步骤:
步骤S902:根据第一预设编码算法的第一编码延时和第二预设编码算法的第二编码延时分别计算出第一预设编码算法和第二预设编码算法的编码同步的起始位置;
步骤S904:按照计算出的起始位置分别采用第一预设编码算法和第二预设编码算法对采集到的语音帧进行编码处理;
步骤S906:将采用第一预设编码算法编码处理后的采集到的语音帧中当前语音帧和采用第二预设编码算法编码处理后的采集到的语音帧中上一个语音帧进行整合处理并发送。
优选地,在步骤S902中,根据第一预设编码算法的第一编码延时和第二预设编码算法的第二编码延时分别计算出第一预设编码算法和第二预设编码算法的编码同步的起始位置可以包括以下操作:
步骤S1:分别获取第一编码延时和第二编码延时;
步骤S2:根据第一编码延时和第二编码延时计算延时差;
步骤S3:将第一编码延时和第二编码延时进行比较,在采用编码延时较小的预设编码算法对采集到语音帧进行编码处理之前,在采集到语音帧前填充长度为延时差的静音数据。
下面结合图10所示的优选实施例对上述优选实施过程做进一步的描述。
图10是根据本发明优选实施例的语音帧的发送方法的流程图。如图10所示,该方法可以包括以下步骤:
步骤S1002:采集器采集到一帧语音数据,采集数据的采样率和主编码算法一致,假设帧长为F;
步骤S1004:获取主编码同步点,假设主编码算法延时为L主,次编码算法延时为L次,L=|L主-L次|。将L作为主次编码起点之差。当L次>L主时,在向主编码器输入采集数据之前需要填充长度为L的静音数据,后续每帧编码的同步点为n*F-L,其中,如果n*F-L<0表示需要填充n-1个完整的静音帧,而次编码的同步点为n*F;当L次<L主时,具体过程与上述相反,此处不再赘述;
步骤S1006:采用主编码算法编长度为F的数据;
步骤S1008:缓存主编码数据;
步骤S1010:获取次编码同步点;
步骤S1012:判断主编码采样率和次编码是否一致,如果是,转到步骤S1016;否则,继续执行步骤S1014;
步骤S1014:将采集数据的转换成次编码采样率的数据;
步骤S1016:采用次编码算法编长度为F的数据;
步骤S1018:缓存次编码数据;
步骤S1020:将主次编码数据整合,整合的策略可依据网络丢包模型而定,优选地,可以将当前主编码数据和前一帧的次编码数据复合成一个RTP负载;
步骤S1022:发送RTP包到网络。
图11是根据本发明实施例的语音帧的接收方法的流程图。如图11所示,该方法可以包括以下处理步骤:
步骤S1102:接收整合处理后的语音帧,其中,整合处理后的语音帧包括:从第一预设编码算法的编码同步的起始位置采用第一预设编码算法编码处理后的第一语音帧和从第二预设编码算法的编码同步的起始位置采用第二预设编码算法编码处理后的第二语音帧,第二语音帧为第一语音帧的前一个语音帧;
步骤S1104:对整合处理后的语音帧进行解析处理,将第一语音帧和第二语音帧进行分离;
步骤S1106:对分离后的第一语音帧和第二语音帧分别进行解码处理,并将经过解码处理后的第一语音帧输出;或者,在上一次接收的整合处理后的语音帧发生丢包时,将第二语音帧输出。
优选地,在步骤S1106中,对分离后的第一语音帧和第二语音帧分别进行解码处理,并将经过解码处理后的第一语音帧输出;或者,在上一次接收的整合处理后的语音帧发生丢包时,将第二语音帧输出可以包括以下步骤:
步骤S4:对第一语音帧进行解码处理;
步骤S5:对第二语音帧进行解码处理;
步骤S6:检测经过当前解码处理后的第一语音帧与经过上一次解码处理后的第一语音帧是否连续;
步骤S7:在检测单元输出为是时,将经过当前解码处理后的第一语音帧输出;或者,在检测单元输出为否时,切换至将经过当前解码处理后的第二语音帧输出。
优选地,在步骤S7,切换至将经过当前解码处理后的第二语音帧输出之后,还可以包括以下处理:在输出的第二语音帧为一个或多个静音帧时,切换至将经过当前解码处理后的第一语音帧输出。
优选地,在步骤S1106中,对分离后的第一语音帧和第二语音帧分别进行解码处理,并将经过解码处理后的第一语音帧输出;或者,在上一次接收的整合处理后的语音帧发生丢包时,将第二语音帧输出还可以包括以下操作:将经过解码处理后的第二语音帧与上一次输出的语音帧进行平滑处理。
下面结合图12所示的优选实施例对上述优选实施过程做进一步的描述。
图12是根据本发明优选实施例的语音帧的接收方法的流程图。如图12所示,该方法可以包括以下步骤:
步骤S1202:从抗抖动缓冲器获取一个RTP包;
步骤S1204:根据前一次获取的RTP序号检查是否有丢包,如果有丢包,则继续执行步骤S1206;否则,转到步骤S1208;
步骤S1206:通知主次解码器有丢包,进行丢包补偿处理;
步骤S1208:进行RTP包负载解析,并分离出主次编码数据;
步骤S1210:对主编码数据进行解码;
步骤S1212:缓存主解码数据;
步骤S1214:对次编码数据进行解码;
步骤S1216:判断主解码数据采样率和次解码是否一致,如果是,则继续执行步骤S1218;否则,转到步骤S1220;
步骤S1218:将次解码数据采样率转化为主解码数据的采样率;
步骤S1220:缓存次解码数据;
步骤S1222:判断当前播放状态是否为播放主解码数据,如果是,则继续执行步骤S1224;否则,转到步骤S1232;
步骤S1224:判断当前是否有丢包,如果是,则继续执行步骤S1226;否则,转到步骤S1240;
步骤S1226:将次解码数据和前一次输入到播放缓存的数据进行平滑处理。虽然在发送端主次编码数据在时间上是同步的,但各自还原出的语音帧在相位及幅度上都可能会有差别,因此需要平滑处理;
步骤S1228:将播放状态切换至播放次解码数据;
步骤S1230:将次解码数据输入至播放缓存播放,流程结束;
步骤S1232:将次解码数据进行静音检测;
步骤S1234:判断次解码数据为静音帧或连续静音帧,如果是,则继续执行步骤S1236;否则,转到步骤S1230;
步骤S1236:将主解码数据和前一次输入到播放缓存的数据进行平滑处理;
步骤S1238:将播放状态切换至播放主解码数据;
步骤S1240:将主解码数据输入至播放缓存播放,流程结束,退出。
从以上的描述中,可以看出,上述实施例实现了如下技术效果(需要说明的是这些效果是某些优选实施例可以达到的效果):本发明充分考虑了主次编码算法延时,结合平滑拼接,以及算法切换的综合技术,达到了超强抗丢包能力,从而提升实时多媒体通信业务的用户体验。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种语音帧的发送装置,其特征在于,包括:
计算模块,用于根据第一预设编码算法的第一编码延时和第二预设编码算法的第二编码延时分别计算出所述第一预设编码算法和所述第二预设编码算法的编码同步的起始位置;
编码模块,用于按照计算出的所述起始位置分别采用所述第一预设编码算法和第二预设编码算法对采集到的语音帧进行编码处理;
发送模块,用于将采用所述第一预设编码算法编码处理后的所述采集到的语音帧中当前语音帧和采用所述第二预设编码算法编码处理后的所述采集到的语音帧中上一个语音帧进行整合处理并发送;
其中,所述计算模块包括:
获取单元,用于分别获取所述第一编码延时和所述第二编码延时;
计算单元,用于根据所述第一编码延时和所述第二编码延时计算延时差;
填充单元,用于将所述第一编码延时和所述第二编码延时进行比较,在采用编码延时较小的预设编码算法对所述采集到语音帧进行编码处理之前,在所述采集到语音帧前填充长度为所述延时差的静音数据;
其中,通过以下方式获取所述第一编码延时和所述第二编码延时的同步起始点:
当所述第一编码延时大于所述第二编码延时,在向主编码器输入采集数据之前需要填充长度为L的静音数据,后续每帧编码的同步点为n*F–L,L为所述延时差,F为帧长,n为后续帧的数量。
2.一种语音帧的接收装置,其特征在于,包括:
接收模块,用于接收整合处理后的语音帧,其中,所述整合处理后的语音帧包括:从第一预设编码算法的编码同步的起始位置采用所述第一预设编码算法编码处理后的第一语音帧和从第二预设编码算法的编码同步的起始位置采用所述第二预设编码算法编码处理后的第二语音帧,所述第二语音帧为所述第一语音帧的前一个语音帧;
解析模块,用于对所述整合处理后的语音帧进行解析处理,将所述第一语音帧和所述第二语音帧进行分离;
输出模块,用于对分离后的所述第一语音帧和所述第二语音帧分别进行解码处理,并将经过解码处理后的所述第一语音帧输出;或者,在上一次接收的所述整合处理后的语音帧发生丢包时,将所述第二语音帧输出;
其中,获取起始位置包括:
分别获取所述第一预设编码算法的第一编码延时和所述第二预设编码算法的第二编码延时;
根据所述第一编码延时和所述第二编码延时计算延时差;
将所述第一编码延时和所述第二编码延时进行比较,在采用编码延时较小的预设编码算法对采集到语音帧进行编码处理之前,在所述采集到语音帧前填充长度为所述延时差的静音数据;
其中,通过以下方式获取所述第一编码延时和所述第二编码延时的同步起始点:
当所述第一编码延时大于所述第二编码延时,在向主编码器输入采集数据之前需要填充长度为L的静音数据,后续每帧编码的同步点为n*F–L,L为所述延时差,F为帧长,n为后续帧的数量。
3.根据权利要求2所述的装置,其特征在于,所述输出模块包括:
第一解码单元,用于对所述第一语音帧进行解码处理;
第二解码单元,用于对所述第二语音帧进行解码处理;
检测单元,用于检测经过当前解码处理后的所述第一语音帧与经过上一次解码处理后的第一语音帧是否连续;
切换单元,用于在所述检测单元输出为是时,将经过所述当前解码处理后的所述第一语音帧输出;或者,在所述检测单元输出为否时,切换至将经过所述当前解码处理后的所述第二语音帧输出。
4.根据权利要求3所述的装置,其特征在于,所述切换单元,还用于在输出的所述第二语音帧为一个或多个静音帧时,切换至将经过所述当前解码处理后的所述第一语音帧输出。
5.根据权利要求2至4中任一项所述的装置,其特征在于,所述输出模块还包括:
平滑处理单元,用于将经过解码处理后的所述第二语音帧与上一次输出的语音帧进行平滑处理。
6.一种语音帧的发送方法,其特征在于,包括:
根据第一预设编码算法的第一编码延时和第二预设编码算法的第二编码延时分别计算出所述第一预设编码算法和所述第二预设编码算法的编码同步的起始位置;
按照计算出的所述起始位置分别采用所述第一预设编码算法和第二预设编码算法对采集到的语音帧进行编码处理;
将采用所述第一预设编码算法编码处理后的所述采集到的语音帧中当前语音帧和采用所述第二预设编码算法编码处理后的所述采集到的语音帧中上一个语音帧进行整合处理并发送;
其中,根据所述第一预设编码算法的第一编码延时和所述第二预设编码算法的第二编码延时分别计算出所述第一预设编码算法和第二预设编码算法的所述编码同步的起始位置包括:
分别获取所述第一编码延时和所述第二编码延时;
根据所述第一编码延时和所述第二编码延时计算延时差;
将所述第一编码延时和所述第二编码延时进行比较,在采用编码延时较小的预设编码算法对所述采集到语音帧进行编码处理之前,在所述采集到语音帧前填充长度为所述延时差的静音数据;
其中,通过以下方式获取所述第一编码延时和所述第二编码延时的同步起始点:
当所述第一编码延时大于所述第二编码延时,在向主编码器输入采集数据之前需要填充长度为L的静音数据,后续每帧编码的同步点为n*F–L,L为所述延时差,F为帧长,n为后续帧的数量。
7.一种语音帧的接收方法,其特征在于,包括:
接收整合处理后的语音帧,其中,所述整合处理后的语音帧包括:从第一预设编码算法的编码同步的起始位置采用所述第一预设编码算法编码处理后的第一语音帧和从第二预设编码算法的编码同步的起始位置采用所述第二预设编码算法编码处理后的第二语音帧,所述第二语音帧为所述第一语音帧的前一个语音帧;
对所述整合处理后的语音帧进行解析处理,将所述第一语音帧和所述第二语音帧进行分离;
对分离后的所述第一语音帧和所述第二语音帧分别进行解码处理,并将经过解码处理后的所述第一语音帧输出;或者,在上一次接收的所述整合处理后的语音帧发生丢包时,将所述第二语音帧输出;
其中,获取起始位置包括:
分别获取所述第一预设编码算法的第一编码延时和所述第二预设编码算法的第二编码延时;
根据所述第一编码延时和所述第二编码延时计算延时差;
将所述第一编码延时和所述第二编码延时进行比较,在采用编码延时较小的预设编码算法对采集到语音帧进行编码处理之前,在所述采集到语音帧前填充长度为所述延时差的静音数据;
其中,通过以下方式获取所述第一编码延时和所述第二编码延时的同步起始点:
当所述第一编码延时大于所述第二编码延时,在向主编码器输入采集数据之前需要填充长度为L的静音数据,后续每帧编码的同步点为n*F–L,L为所述延时差,F为帧长,n为后续帧的数量。
8.根据权利要求7所述的方法,其特征在于,对分离后的所述第一语音帧和所述第二语音帧分别进行解码处理,并将经过解码处理后的所述第一语音帧输出;或者,在上一次接收的所述整合处理后的语音帧发生丢包时,将所述第二语音帧输出包括:
对所述第一语音帧进行解码处理;
对所述第二语音帧进行解码处理;
检测经过当前解码处理后的所述第一语音帧与经过上一次解码处理后的第一语音帧是否连续;
在检测经过当前解码处理后的所述第一语音帧与经过上一次解码处理后的第一语音帧连续时,将经过所述当前解码处理后的所述第一语音帧输出;或者,在检测经过当前解码处理后的所述第一语音帧与经过上一次解码处理后的第一语音帧不连续时,切换至将经过所述当前解码处理后的所述第二语音帧输出。
9.根据权利要求8所述的方法,其特征在于,在切换至将经过所述当前解码处理后的所述第二语音帧输出之后,还包括:
在输出的所述第二语音帧为一个或多个静音帧时,切换至将经过所述当前解码处理后的所述第一语音帧输出。
10.根据权利要求7至9中任一项所述的方法,其特征在于,对分离后的所述第一语音帧和所述第二语音帧分别进行解码处理,并将经过解码处理后的所述第一语音帧输出;或者,在上一次接收的所述整合处理后的语音帧发生丢包时,将所述第二语音帧输出还包括:
将经过解码处理后的所述第二语音帧与上一次输出的语音帧进行平滑处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210210328.7A CN103516469B (zh) | 2012-06-25 | 2012-06-25 | 语音帧的发送、接收装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210210328.7A CN103516469B (zh) | 2012-06-25 | 2012-06-25 | 语音帧的发送、接收装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103516469A CN103516469A (zh) | 2014-01-15 |
CN103516469B true CN103516469B (zh) | 2019-04-23 |
Family
ID=49898574
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210210328.7A Active CN103516469B (zh) | 2012-06-25 | 2012-06-25 | 语音帧的发送、接收装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103516469B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106373581A (zh) * | 2016-09-28 | 2017-02-01 | 成都奥克特科技有限公司 | 语音信号的数据编码处理方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1441949A (zh) * | 2000-05-11 | 2003-09-10 | 艾利森电话股份有限公司 | 语音编码中的前向纠错 |
CN101048964A (zh) * | 2004-10-26 | 2007-10-03 | 诺基亚公司 | 分组丢失补偿 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7584495B2 (en) * | 2006-06-30 | 2009-09-01 | Nokia Corporation | Redundant stream alignment in IP datacasting over DVB-H |
-
2012
- 2012-06-25 CN CN201210210328.7A patent/CN103516469B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1441949A (zh) * | 2000-05-11 | 2003-09-10 | 艾利森电话股份有限公司 | 语音编码中的前向纠错 |
CN101048964A (zh) * | 2004-10-26 | 2007-10-03 | 诺基亚公司 | 分组丢失补偿 |
Non-Patent Citations (1)
Title |
---|
"适应于网络语音流的服务质量关键管理机制";陈秀忠,;《中国博士学位论文全文数据库-信息科技辑》;20070215;全文 |
Also Published As
Publication number | Publication date |
---|---|
CN103516469A (zh) | 2014-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Perkins et al. | A survey of packet loss recovery techniques for streaming audio | |
JP4016709B2 (ja) | オーディオデータの符号変換伝送方法と符号変換受信方法及び装置とシステムならびにプログラム | |
US7920492B1 (en) | Devices, softwares and methods for redundantly encoding a data stream for network transmission with adjustable redundant-coding delay | |
CN102984090B (zh) | 一种用于发送实时通信事件数据到接收器的抖动缓冲器的发送器及其方法 | |
CN108174234A (zh) | 一种流媒体传输方法及系统 | |
CN103023813B (zh) | 抖动缓冲器 | |
CN108183774A (zh) | 一种流媒体传输的前向纠错方法和系统 | |
CN102984091B (zh) | 抖动缓冲器 | |
EP1303917A1 (en) | Coding of data stream | |
JPH10262245A (ja) | 動画像伝送システム及びそれに用いる動画像送受信装置 | |
WO2013098811A1 (en) | Packets recovery system and method | |
JP2011130065A5 (zh) | ||
TW201001967A (en) | Communication transmitter, communication receiver, packet redundancy method and packet recovery method | |
CN106488243A (zh) | 一种多描述屏幕内容视频编码方法 | |
CN114124909A (zh) | 基于激光雷达的点云实时采集压缩传输系统及方法 | |
CN108696491B (zh) | 音频数据的发送处理方法与装置、接收处理方法与装置 | |
JP2006510301A (ja) | Mdc/スケーラブル符号化の切り換え方法 | |
Singh et al. | Comparison of multiple-description coding and layered coding based on network simulations | |
CN108183771A (zh) | 光网络系统中的数据处理方法、设备及系统 | |
JP2003318864A (ja) | 符号化パケット伝送受信方法およびその装置ならびにプログラム | |
KR20040071765A (ko) | Rs 코드들을 기초로 하여 포워드 에러 정정을 이용하는 비동등 에러 보호 | |
KR100341391B1 (ko) | 대화형 오디오 서비스를 위한 적응형 부가 전송 방법 및 패킷 손실 복구 방법과 이를 위한 멀티미디어 컴퓨터의 오디오 입출력 제어 장치 | |
CN103516469B (zh) | 语音帧的发送、接收装置及方法 | |
CN106571893A (zh) | 一种语音数据的编解码方法 | |
JPH11177623A (ja) | データ送出装置、データ受信装置及びデータ伝送装置 |
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 |