帧补偿方法及系统的利记博彩app

文档序号:2837285阅读:302来源:国知局
专利名称:帧补偿方法及系统的利记博彩app
技术领域
本发明涉及音频编解码领域,尤其是一种采用变换编码激励(Transform Coding Excitation,简称TCX)编码的编解码器在数据传输过程中数据帧发 生丢包时,解码端进行丟包补偿方法及系统。
背景技术
增强自适应多速宽带(Extended Adaptive Multi-Rate Wideband,简称 AMR-WB+)编解码器是一种语音音频编解码器,可以根据信号的特性选择语音 编码方式,例如代Jt码本激励线性预测(ACELP, Algebraic Code Excited Linear Prediction)编码;或音频编码方式,例如TCX编码进行编码,在 AMR-WB+编解码器的闭环模式编码端中,对于输入的声音信号同时用TCX和 ACELP进^f亍编码,比^^这两种编码方式编码后的信号的信噪比,如果采用TCX 编码的信号信噪比高,则将采用TCX编码方式编码的数据作为码流发向接收 端;反之,则将采用ACELP编码方式编码的数据作为码流发向接收端。TCX编码方式分为TCX256 (以256样点为一个编码单位),TCX512 (以 512个样点为一个编码单位),TCX1024 (以1024个样点为一个编码单位) 三种模式。在AMR-WB+的闭环模式编码端,当采用TCX1024模式的数据帧(后 面简称TCX1024帧)出现部分帧丟失,且其前一超帧也为TCX1024帧时,则 可以前一正确帧作为补偿依据,对丟失帧进行补偿,而补偿方式有很多种, 包括频谱插值、线形预测等方法。其中频i普插值的补偿方式包括对幅值和相位分别进行的插值,其插值的 依据是数^^信号的幅度和相位均具有一定的连续性这一特性。其中幅值插值包4舌以下几个步骤计算先前帧的频谱的幅值,。/W[yfc] = oZ^(A:) , k=l,2,……计算当前帧的频谱的幅值,j[;t]=iW, k=l,2,……利用当前帧中没有丟失且幅值非零的频语幅值与对应位置的先前帧的频谱幅值计算出幅值增益gfl&= ^, k=l,2,……A,。M4[/t]*0利用上面算出g&",计算出丟失的频谱的幅值= g&". oW4司在介绍相位插值之前,先说明打包传输数据的方式,原始数据为
,其中
分别代表第一个、第二个、第三 个和第四个数据,依此类推,并分成四个子帧子帧1 {
, [16, 17, 18, 19], ......},子帧2 {[4, 5, 6, 7],[20, 21,22,23],……},子帧3 {[8,9,10, 11], [24,25,26,27],……},子帧4 {[12,13,14,15], [28, 29,30,31],……}。如果在接收数据时发生了某个子帧丟失,则需要通过先前接收的正确帧 进行补偿,补偿的方式与幅值插值的思想近似,也是通过先前接收的正确帧 的相位信息进行处理。例如接收过程中[K+1,…,K+N-l]的数据丟失,则可以 通过正确接收的K和K+N进行补偿。假设p(/Q与炉(《+ W)为已知,则它们之间的相位值可按下式插出糾)=糾—l) + AoW, + Apc," K + U + iV-1其中,AoWp()t) = oWp()t) — oW炉(A: — 1),—+ AQ - p( JQ]-[,《+ JV) - 。/ )]c — AT 。丢失的子帧中每一串数振都要重新计算,例如子帧2丢失,则[4, 5,6,7] 和[20, 21,22,23]都需要计算一次A^,以此类推)。对于正确接收的数据的^(iO和炉(〖+ A0 ,有几种不同情况下的取值方式 对于不考虑两端的情况,即在一串出错数据的两侧有正确接收的数据。举例 来说,当子帧l丢失时,其中的数据串[16,17,18,19]是丟失的,而数据[15] 和[20]是正确接收的,则^(《)和P(X + AO就取实际数据。如果在帧的前端发 生丢失,即丟失的数据前端没有正确数据的情况,这时取尺=0,并取 (3(幻=^(0) = 0,而p(K + iV)取实际值。对于丢失部分发生在帧的末端,即丢失 的数据后端没有正确数据的情况,这时取p(K + JV)-0, p(/Q取实际值。但在现有的AMMB+编解码器的补偿方案中,只能针对当前帧是 TCX1024,上一帧也是TCX1024的情况进行补偿,而补偿当前的丟失帧的依据 为前一个正确帧的数据。如图1所示,为现有技术中帧补偿方法的流程示意 图,包括以下步骤步骤101、判断是否接收到的数据帧是否发生数据丢失,即该数据帧是 否为丢失帧,如果没有发生丢失,则正常执行解码操作;步骤102、判断该丢失帧是否为TCX帧,是则执行步骤102,否则对该丟 失帧进^f亍丢帧处理,由于AMR-WB+编解码器中只釆用了 TCX和ACELP的编码 方式,因此在丟失帧不是TCX帧时,即丢失帧为ACELP帧,则执行ACELP编码方式下的丢帧处理;步骤103、判断该丢失帧是否为TCX1024帧,是则执行步骤104,否则填 充舒适噪音到丢失帧位置;步骤104、判断上一帧是否为TCX1024帧,是则执行步骤105,否则填充 舒适噪音到丢失帧位置;步骤105、对上一帧进行幅值插值,具体幅值插值方法参见前面描述;步骤106、对上一帧进行相位插值,获得补偿后的数据帧,具体相位插 值方法参见前面描述。现有技术中提供了 TCX1024帧的补偿方法,但只适用于这种单一格式帧 (TCX1024帧)的补偿,而除了 TCX1024帧之外的其他情况,例如正确帧或丟失帧为其它^"式帧时,只能采用填补舒适噪音进行处理的方式,这在一定 程度上影响了接收端的收听质量。

发明内容
本发明实施例的目的是提出一种帧补偿方法及系统,适用于采用TCX编 码的编解码器在数据接收过程中出现丟包时对各种情况的补偿处理。
为实现上述目的,本发明的实施例提供了一种帧补偿方法,包括以下步

获得接收的丟失帧的长度和接收的正确帧的长度;
判断所述正确帧的长度为所述丢失帧的长度的2的整数次幂倍,则根 据所述正确帧获得与所述丢失帧的长度相等的凄t据序列;
根据所述数据序列对所述丢失帧进行补偿,获得补偿后的数据帧。
为实现上述目的,本发明的实施例还提供了一种帧补偿系统,包括
第一长度获得模块,用于获得接收的丟失帧的长度;
第二长度获得模块,用于获得接收的正确帧的长度;
数据序列获得模块,与所述第一长度获得模块和第二长度获得模块相 连,用于在判断所述正确帧的长度为所述丢失帧的长度的2的整数次幂倍 时,根据所述正确帧获得与所述丢失帧的长度相等的数据序列;
补偿^t块,与所述数据序列获得模块相连,用于根据所述数据序列对 所述丟失帧进行补偿,获得补偿后的数据帧。
基于上述技术方案,本发明的实施例根据各种格式的正确帧对各种格式 的丢失帧进行补偿,克服了现有技术中只能根据单一格式的正确帧对采用相 同单一格式的丟失帧进行补偿的局限性,而且补偿后的数据帧的效果强于填 充舒适噪音。


图1为现有技术中帧补偿方法的流程示意图。
图2为本发明帧补偿方法的第一实施例的流程示意图。 图3为本发明帧补偿方法的第二实施例的流程示意图。 图4为本发明帧补偿方法的第三实施例的流程示意图。 图5为本发明帧补偿系统的第一实施例的结构示意图。 图6为本发明帧补偿系统的第二实施例的结构示意图。 图7为本发明帧补偿系统的第三实施例的结构示意图。
具体实施例方式
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。 如图2所示,为本发明帧补偿方法的第一实施例的流程示意图,包括 以下步骤
步骤201、编解码器的接收端在接收数据帧时,判断接收的数据帧中 是否发生了数据丢失,即是否为丢失帧,如果该数据帧为丟失帧,则获得 该丟失帧的长度Ll,并且获得丢失帧之前的完整接收的数据帧(即正确帧) 的长度L2,其中丢失帧的数据序列用XI表示,正确帧的数据序列用X2 表示,在这里数据帧的长度是指该数据帧的数据序列中的数据个数;
步骤202、编解码器判断正确帧的长度L2为丟失帧的长度Ll的2的 整数次幂倍时,即L2-2、L1,其中n取整数,根据正确帧获得与丢失帧的 长度Ll相等的数据序列,该数据序列用X2'表示;
步骤203、编解码器根据数据序列X2'对丢失帧进行补偿,获得补偿后 的数据帧。
本实施例在补偿时可根据丢失帧中数据的丟失情况选择补偿依据,判 断丟失帧整帧丢失时,只能使用与丟失帧相同长度的数据序列进行频谱插 值;判断丟失帧部分数据丢失时,则可以根据丟失帧中未丟失的数据部分 和获得的数据序列对丢失帧进行补偿。补偿方法可以采用现有技术中各种方式,例如频谱插值、线性预测等, 也可以直接将得到的数据序列作为丟失帧的补偿,但并不限于上述几种补 偿方式。
编解码器可以采用AMR-WB+编解码器,但不限于这种编解码器器,任何 采用TCX编码的编解码器都适用于本实施例。在本实施例中丟失帧和正确帧 适用于TCX编码的数据帧,但不仅限于TCX1024帧,对TCX512帧或TCX256 帧等其它TCX编码的数据帧都可以采用本实施例进行帧补偿。
-确甲贝' 值分别进行描述。
编解码器判断正确帧的长度L2为丢失帧的长度L1的正整数次幂倍 时,即倍数为正整数次幂,可以采用从正确帧的数据序列X2中选出合适 的序列来作为补偿的依据。因为对于暂稳态信号来说,相邻的两段信号的 频i普一般都具有较相似的形状,因此判断其中一段信号的某个频率点上的 数据丢失,则可以通过相邻的的 一段信号对应于该频率点上的数据作为补 偿依据。在频域里判断相邻两个数据序列的长度分别为L和2n L,那么 长度为L的数据帧中的数据出现在频率为n,;r/L时,则长度为2"'L的数据 帧中的数据对应出现在n^/(2"L),因此可以使用长度为2n L的数据帧中 的2n倍位置的数据构成数据序列来补偿长度为L的数据帧。
X2'(k) = X2(2n .k), k-l,2,…L,
其中X2为正确帧的数据序列,X2'为选取获得的数据序列,n为正整数, L为丢失帧的长度。
以丟失帧为TCX512帧,正确帧为TCX1024帧为例,这时正确帧的长 度为1024,丟失帧的长度为512,正确帧的长度为丢失帧的长度的两倍, 即2]倍,如图3所示,为本发明帧补偿方法的第二实施例的流程示意图, 其中步骤202a描述了在选取数据序列时,选择正确帧中偶数位置的数据获得512个数据,并将该512个数据构成数据序列,以此作为补偿丢失帧 的依据。具体的补偿方法就不在这里详述了。
编解码器判断正确帧的长度L2为丢失帧的长度L1的负整数次幂倍 时,即倍数为负整数次幂,可以通过在正确帧中插入数据来获得与丟失帧 的长度相等的数据序列,并以此作为补偿的依据。因为在对于暂稳态信号 来说, 一般在频域中变化不会很快,相邻的数据点会有一个渐变过程,因 此可以通过在相邻两个数据间插入渐变的数据来获得数据序列。
根据以下公式在正确帧中插入数据,可以获得与丢失帧的长度相等的 数据序列,
X2'(k):
X2(i), k = 2n,2n+V",2n+F
k k mod(;)k mod(^T) lc I
(1--2_).乂2([上])+-2X2([上]+1), k二l,…,L, ak*2n,2-2n,.",72"
2n 2n 2" 2n 22
其中X2为正确帧的数据序列,X2'为插入数据后获得的数据序列,n 为正整数,L为丟失帧的长度,[]为向下取整符号,mod为取余数符号。 插入的数据可以以两侧数据的幅值和相位分别计算。
以丟失帧为TCX1024帧,正确帧为TCX512帧为例,这时正确帧的长 度为512,丟失帧的长度为1024,正确帧的长度为丟失帧的长度的一半, 即2—倍,如图4所示,为本发明帧补偿方法的第三实施例的流程示意图, 其中步骤202b描述了在相邻数据xl和x2之间插入数据x,其中x的幅值 等于xl和x2的幅值之和的二分之一,x的相位等于xl和x2的相位之和 的二分之一 ,这样由正确帧中的数据和插入的数据共同构成新的数据序 列,并以此作为补偿丟失帧的依据。具体的补偿方法就不在这里详述了。
除了正确帧的长度是丢失帧的长度的2的正整数次幂和负整数次幂倍 数之外,倍数还可以为1,即2的0次幂,这时可以直接以该正确帧作为 补偿依据对丢失帧进行补偿。但这里的正确帧和丟失帧并不限于TCX1024帧这一种数据帧。
对于不仅包含TCX编码的数据流来说,在接收丢失帧时需要判断丟失 帧是否为TCX帧,判断丢失帧不是TCX帧,则执行丢帧操作。在接收正确 帧时,应判断正确帧是否为TCX帧,判断正确帧不是TCX帧,则将舒适噪

填充入丟失帧
格式的丟失帧的具体实例,克服了现有技术中对于TCX1024帧之外的其他 格式数据帧无法补偿的缺陷,补偿后的数据与舒适噪音比起来要有更好的 效果。
本4页域普通技术人员可以理解实现上述方法实施例的全部或部分步 骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机 可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤; 而前述的存储介质包括R0M、 RAM、磁碟或者光盘等各种可以存储程序代 码的介质。
如图5所示,为本发明帧补偿系统的第一实施例的结构示意图。在本 实施例中帧补偿系统包括第一长度获得模块1、第二长度获得模块2、数 据序列获得模块3和补偿模块4,其中第一长度获得模块1用于获得接收 的丢失帧的长度,第二长度获得模块2用于获得接收的正确帧的长度。
数据序列获得模块3与第一长度获得模块1和第二长度获得模块2相 连,用于在正确帧的长度为丟失帧的长度的2的整数次幂倍时,根据正确 帧获得与丟失帧的长度相等的数据序列。补偿模块4与数据序列获得模块 3相连,用于根据数据序列对丢失帧进行频谱插值,获得补偿后的数据帧。
如图6所示,为本发明帧补偿系统的第二实施例的结构示意图,与上 一实施例相比,本实施例的数据序列获得模块3进一步包括第一数据序列 获取单元31,该第一数据序列获取单元31与第一长度获得模块1和第二 长度获得;漢块2相连,可以在正确帧的长度为所述丢失帧的长度的2的正整数次幂倍时,根据以下公式从所述正确帧中选取与所述丢失帧的长度相 等的数据序列,
X2'(k)-X2(2',-k), k = l,2,-"L,
其中X2为所述正确帧的数据序列,X2'为选取获得的数据序列,n为正 整数,L为所述丟失帧的长度。
如图7所示,为本发明帧补偿系统的第三实施例的结构示意图,与第 一实施例相比,本实施例的数据序列获得模块3进一步包括第二数据序列 获取单元,与所述第一长度获得模块和第二长度获得模块相连,用于在所 述正确帧的长度为所述丢失帧的长度的2的负整数次幂倍时,根据以下公 式在所述正确帧中插入数据,获得与所述丟失帧的长度相等的数据序列,
X2'(k):
X2(上), k = 2n,2n+l,"-,2"+ r
、n
mod(i) k mod(i)k L
(一~^~)-X2([f])+j -X2([,l), k-l,…,L,且1^2。,2.2:..,^2"
其中X2为所述正确帧的数据序列,X2'为插入数据后获得的数据序列, n为正整数,L为所述丢失帧的长度,[]为向下取整符号,mod为取余数符 号。
以上的系统实施例提供了使用各种格式的正确帧来补偿各种格式的 丟失帧的具体实例,克服了现有技术中对于TCX1024帧之外的其他格式数 据帧无法补偿的缺陷,补偿后的数据与舒适噪音比起来要有更好的效果。
最后应当说明的是以上实施例仅用以说明本发明的技术方案而非对 其限制;尽管参照较佳实施例对本发明进行了详细的说明,所属领域的普 通技术人员应当理解依然可以对本发明的具体实施方式
进行修改或者对 部分技术特征进行等同替换;而不脱离本发明技术方案的精神,其均应涵 盖在本发明请求保护的技术方案范围当中。
权利要求
1、一种帧补偿方法,其特征在于,包括以下步骤获得接收的丢失帧的长度和接收的正确帧的长度;判断所述正确帧的长度为所述丢失帧的长度的2的整数次幂倍,则根据所述正确帧获得与所述丢失帧的长度相等的数据序列;根据所述数据序列对所述丢失帧进行补偿,获得补偿后的数据帧。
2、 根据权利要求1所述的帧补偿方法,其特征在于,判断所述正确 帧的长度为所述丟失帧的长度的2的正整数次幂倍,所述根据所述正确帧 获得与所述丟失帧的长度相等的数据序列的操作具体为根据以下公式从 所述正确帧中选取与所述丟失帧的长度相等的数据序列,X2'(k) = X2(2n -k), k = l,2,--L, 其中X2为所述正确帧的数据序列,X2'为选取获得的数据序列,n为正 整数,L为所述丟失帧的长度。
3、 才艮据权利要求1所述的帧补偿方法,其特征在于,判断所述正确 帧的长度为所述丢失帧的长度的2的负整数次幂倍,所述根据所述正确帧 获得与所述丢失帧的长度相等的数据序列的操作具体为根据以下公式在 所述正确帧中插入数据,获得与所述丢失帧的长度相等的数据序列,<formula>formula see original document page 2</formula>其中X2为所述正确帧的数据序列,X2'为插入数据后获得的数据序列, n为正整^L L为所述丟失帧的长度,[]为向下取整符号,mod为取余数符
4、根据权利要求2或3所述的帧补偿方法,其特征在于,所述丟失 帧和正确帧均为变换编码激励帧。在接收丢失帧 判断所述丢失在接收正确帧 判断所述正确
5、 4艮据权利要求4所述的帧补偿方法,其特征在于,所述正确帧为 接收的数据中所述丢失帧的上 一 正确接收的数据帧。
6、 根据权利要求1所述的帧补偿方法,其特征在于,所述2的整数 次幂具体为2-1, 2°或21。
7、 根据权利要求6所述的帧补偿方法,其特征在于,所述丢失帧的 长度为1024、 512或256。
8、 根据权利要求1所述的帧补偿方法,其特征在于, 时,还包括判断所述丟失帧是否为变换编码激励帧的操作 帧不是变换编码激励帧,则执行丢帧操作。
9、 根据权利要求1所述的帧补偿方法,其特征在于 时,还包括判断所述正确帧是否为变换编码激励帧的操作 帧不是变换编码激励帧,则将舒适噪音填充入所述丢失帧。
10、 根据权利要求1所述的帧补偿方法,其特征在于,所述根据所述 数据序列对所述丢失帧进行补偿的操作包括对所述数据序列进行频谱插 值。
11、 根据权利要求1所述的帧补偿方法,其特征在于,判断所述丢失 帧中数据部分丢失,则根据所述丢失帧中未丢失部分和所述数据序列对所 述丢失帧进行补偿。
12、 一种帧补偿系统,其特征在于,包括 第一长度获得模块,用于获得接收的丢失帧的长度; 第二长度获得模块,用于获得接收的正确帧的长度;数据序列获得模块,与所述第一长度获得模块和第二长度获得模块相 连,用于在判断所述正确帧的长度为所述丟失帧的长度的2的整数次幂倍 时,根据所述正确帧获得与所述丢失帧的长度相等的数据序列;补偿;溪块,与所述数据序列获得模块相连,用于根据所述数据序列对 所述丟失帧进行补偿,获得补偿后的数据帧。
13、 根据权利要求12所述的帧补偿系统,其特征在于,所述数据序列获得模块进一步包括第 一数据序列获取单元,与所述第 一长度获得模块和第二长度获得模 块相连,用于在判断所述正确帧的长度为所述丢失帧的长度的2的正整数数据序列,X2'(k) = X2(2n .k), k^l,2,…L, 其中X2为所述正确帧的数据序列,X2'为选取获得的数据序列,n为正 整数,L为所述丟失帧的长度。
14、 才艮据权利要求12所述的帧补偿系统,其特征在于,所述数据序 列获得模块进一步包括第二数据序列获取单元,与所述第一长度获得模块和第二长度获得模 块相连,用于在判断所述正确帧的长度为所述丢失帧的长度的2的负整数 次幂倍时,根据以下公式在所述正确帧中插入数据,获得与所述丢失帧的 长度相等的数据序列,X2'(k):X2(上), k = 2n,2n+l,-.-,2n、2nk、 .,kmod(—) k mod(—)k ,(1—~^^2([^])+2n2" .X2([f] + 1), kd,…,L,且"2。,2.2",...,7.2"其中X2为所述正确帧的数据序列,X2'为插入数据后获得的数据序列, n为正整数,L为所述丟失帧的长度,[]为向下取整符号,mod为取余数符 号。
全文摘要
本发明涉及一种帧补偿方法,包括以下步骤获得接收的丢失帧的长度和接收的正确帧的长度;判断所述正确帧的长度为所述丢失帧的长度的2的整数次幂倍,则根据所述正确帧获得与所述丢失帧的长度相等的数据序列;根据所述数据序列对丢失帧进行补偿,获得补偿后的数据帧。本发明还涉及一种帧补偿系统,包括第一长度获得模块、第二长度获得模块、数据序列获得模块和补偿模块。本发明根据各种格式的争取帧对各种格式的丢失帧进行补偿,克服了现有技术中只能根据单一格式的正确帧对单一格式的丢失帧进行补偿的局限性,而且补偿后的数据帧的效果强于填充舒适噪音。
文档编号G10L19/00GK101321033SQ20071011168
公开日2008年12月10日 申请日期2007年6月10日 优先权日2007年6月10日
发明者关耀铧, 清 张, 伟 李, 杜正中, 毅 杨, 凌 申, 晨 胡, 磊 苗, 许丽净, 许剑峰 申请人:华为技术有限公司;北京大学深圳研究生院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1