[发明专利]基于重叠变换压缩编码的错误隐藏帧重建方法有效

专利信息
申请号: 200710065400.0 申请日: 2007-04-13
公开(公告)号: CN101046964A 公开(公告)日: 2007-10-03
发明(设计)人: 贾晓军;窦维蓓;张树华 申请(专利权)人: 清华大学
主分类号: G10L19/02 分类号: G10L19/02
代理公司: 暂无信息 代理人: 暂无信息
地址: 100084北京市100*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明属于音频信号处理领域,其特征在于,依次含有以下步骤:提取信号子带内的时域瞬态特征,并提取帧间谱相关特征,利用时域瞬态和帧间谱的相关值对错误帧按状态分成两级,共10类状态,根据不同的错误帧状态选择插值方法生成错误帧的频谱系数和频域相位,计算时域信号和前后缘平滑处理。该方法选择不同插值方法生成能代替错误帧的重建信号,以降低错误影响,提高音质。
搜索关键词: 基于 重叠 变换 压缩 编码 错误 隐藏 重建 方法
【主权项】:
1、基于重叠变换压缩编码的错误隐藏帧重建方法,其特征在于,所述方法是在解码端建有子带解码数据缓冲区的数字集成电路或PC机上依次按以下步骤实现的。步骤(1),解码器把输入的压缩音频信号解码为时域子带信号后,把每一个子带信号缓存量分别送入一个子带瞬态检测器进行瞬态检测,提取时域特征:在解码帧C中,为与发生错误的第一帧Er1和第二帧Er2相邻的两个正确帧C1、C4以及Er1帧各设一个用“1”或“0”表示的瞬态指示标志T,“1”表明被检测的帧存在瞬态,否则为“0”,所述时域特征依次按以下步骤实现:步骤(1.1),用一个移位器把序列长度为N的子带分割为L个子序列,子序列的长度为K,再把子序列成对组成(L-1)个子序列对;步骤(1.2),用一个乘累加器计算各子序列l的能量El,l=1,2,...,L: E l = Σ k = 1 K ( x l , k ) 2 , xl,k是第l个子序列中第k个样值的幅度;步骤(1.3),用一个乘法器按以下公式,按顺序计算各子序列对间的能量比Rtf,l′及其倒数Rft,l′: R tf , l = E l + E l + 1 E l + 1 + E l + 2 , R ft , l = E l + 1 + E l + 2 E l + E l + 1 , l′=1,2,...,L-2,l′是子序列对的序号;步骤(1.4),用一个运算器按以下公式计算步骤(1.3)得到的能量比序列的方差Vtf及能量比倒数序列的方差Vft: V tf = ( L - 2 ) · Σ l = 1 ( L - 2 ) R tf , l 2 - ( Σ l = 1 ( L - 2 ) R tf , l ) 2 ( L - 2 ) · ( ( L - 2 ) - 1 ) , V ft = ( L - 2 ) · Σ l = 1 ( L - 2 ) R ft , l 2 - ( Σ l = 1 ( L - 2 ) R ft , l ) 2 ( L - 2 ) · ( ( L - 2 ) - 1 ) ; 步骤(1.5)用一个比较器把步骤(1.4)得到的Vtf、Vft按以下条件与设定的门限值Gt,其取值范围为Gt∈(1,+∞)进行比较:当Vtf≥Gt或Vft≥Gt时,译码器输出“1”,置T=1,当Vtf≤Gt且Vft≤Gt时,译码器输出“0”,置T=0;步骤(2),用一个快速傅立叶变换FFT电路把步骤(1)所得的子带信号转换到频域,并把得到的频域信号送入一个帧间相关性检测器进行帧间谱相关特征的提取,其步骤依次如下:步骤(2.1),把解码帧C0、C1、Er1、C4帧的时域序列xC0,xC1,xEr1,xC4变换到频域,获得相应的频谱系数:幅度序列XC0,XC1,XEr1,XC4,相位序列PC0,PC1,PEr1,PC4;步骤(2.2)按下式计算之间,之间和之间的频谱相关系数:r0,r1,r2: r = r AB r AA * r BB , r取值范围为:[0,1],“0”表示两输入序列不相关,“1”表示两输入序列线性相关,其中,A、B是步骤(2.1)中所述的信号频谱幅度序列,序列长度均为N,An、Bn分别是序列A与B的第n个样值,n=1,2,...,N,rAB是序列A、B间的互协方差: r AB = N Σ n = 1 N A n B n - Σ n = 1 N A n Σ n = 1 N B n , rAA、rBB是A、B各自的自协方差: r AA = N Σ n = 1 N A n 2 - ( Σ n = 1 N A n ) 2 , r BB = N Σ n = 1 N B n 2 - ( Σ n = 1 N B n ) 2 , 步骤(2.3),用下式计算频谱能量E: E = Σ k = 1 K [ X ( k ) ] 2 , 其中,K是步骤(1.1)所述子序列信号转换到频域后的信号频谱幅度序列的长度,用频点数表示,X(k)是序列第k个频点上的幅度,k=1,2,...,K;步骤(3),按以下准则把步骤(1)得到的时域瞬态特征和步骤(2)得到的帧间频谱相关系数送入一个由比较器和译码器组成的具有状态译码功能的状态决策器对错误帧进行状态判断,共输出两大类共7个状态:以错误帧Er1的前一帧C1的瞬态指示标志是“0”或“1”把错误帧依次分成两大类:“0”为稳态,“1”为瞬态,当错误帧为稳态时,所述状态译码器根据设定的相关性判别门限roffo把稳态下错误帧Er1同相邻帧C1、C4和次相邻帧C0间的频谱相关性进行一级分解,分成四个状态: r 1 r off o r 2 r off o , 为状态一, r 1 < r off o r 2 r off o , 为状态二, r 0 r off o r 1 r off o r 2 < r off o , 为状态三,其他,为状态四;其中,roffo的取值范围为:(0.5,1];当错误帧为瞬态时所述状态译码器根据设定的相关性判别门限roff′把瞬态下错误帧Er1同相邻帧C1,C4间的频谱相关性进行一级分解,分成三个状态:r1≥roff′且r2≥roff′,为状态五,r1<roff′且r2≥roff′,为状态六,其他,为状态七;其中,roff′的取值范围为:(0.5,1];步骤(4),按以下步骤用一个运算器针对步骤(3)中的不同状态选用不同的插值算法求错误帧的频谱幅度XEr1r、XEr2r:对于状态一,采用下述双边线性插值算法求错误帧Er1的频谱幅度XEr1r(k)以及错误帧Er2的频谱幅度XEr2r(k): X Er 1 r ( k ) = X C 1 ( k ) + a 1 × ( X C 4 ( k ) - X C 1 ( k ) ) X Er 2 r ( k ) = X C 1 ( k ) + a 2 × ( X C 4 ( k ) - X C 1 ( k ) ) ,k=1,2,...,K是频点序号,a1,a2是线性插值系数,取值范围均为(0,1);对状态二,采用残留信息插值算法计算XEr1r(k)、XEr2r(k): X Er 1 r ( k ) = a d 1 * X Er 1 , X Er 2 r ( k ) = a d 1 * X Er 1 ( k ) + a d 2 * ( X C 4 ( k ) - a d 1 * X Er 1 ( k ) ) , k=1,2,...,K是频点序号,ad1、ad2取值范围依次为:[1,2)以及(0,1);对状态三,采用能量预测插值算法计算XEr1r(k)、XEr2r(k):首先,计算C0帧、C1帧的频谱幅度能量: E C 0 = Σ k = 1 K [ X C 0 ( k ) ] 2 , E C 1 = Σ k = 1 K [ X C 1 ( k ) ] 2 , 其次,计算XEr1r(k)、XEr2r(k): X Er 1 r ( k ) = fa e * X C 1 ( k ) , X Er 2 r ( k ) = fa e * X Er 1 f ( k ) , k=1,2,...,K是频点序号,fae为能量比的开平方: fa e = E C 1 E C 0 ; 对状态四,首先,用状态译码器判断C4的状态,再采取相关插值方法:C4帧、Er1帧皆为稳态时采用一个状态二中相同的残留插值方法,C4帧为稳态,Er1帧为瞬态时,按下式计算Er1帧和Er2帧的频谱幅度值: X Er 1 r ( k ) = X Er 1 ( k ) X Er 2 r ( k ) = fa de * X Er 1 ( k ) , k=1,2,...,K是频点序号,fade为衰减因子,取值范围为:(0,1),C4帧为瞬态,Er1帧为稳态时,采用以下步骤:首先,计算C1帧Er1帧的频谱幅度能量: E C 1 = Σ k = 1 K [ X C 1 ( k ) ] 2 , E Er 1 = Σ k = 1 K [ a b * X Er 1 ( k ) ] 2 , ab为比例修正因子,取值范围为:[1,2],其次,按下式计算Er1帧、Er2帧的频谱幅度值: X Er 1 r ( k ) = a b * X Er 1 ( k ) , X Er 2 r ( k ) = fa b * X Er 1 ( k ) , k=1,2,...,K是频点序号,fab为C1帧与Er1帧的能量比开平方: fa b = E C 1 E Er 1 , C4帧、Er1帧皆为瞬态时,按下式计算Er1帧和Er2帧的频谱幅度: X Er 1 r ( k ) = X Er 1 ( k ) , X Er 2 r ( k ) = fa de * X Er 1 ( k ) , k=1,2,...,K是频点序号,其中fade是衰减因子,取值范围是(0,1);对状态五:采用状态一所述的双边线性插值算法;对状态六:采用状态二所述的残留信息插值算法;对状态七:先用状态译码器判别状态,再分别处理:Er1、C4帧皆为稳态时,采用状态一的双边线性插值算法;Er1帧为稳态,C4帧为瞬态时按下式采用的衰减、淡出的方法: X Er 1 r ( k ) = X Er 1 ( k ) , X Er 2 r ( k ) = fa de * X Er 1 ( k ) , k=1,2,...,K是频点序号,其中fade′是衰减因子,取值范围是(0,1),Er1帧为瞬态,C4帧为稳态时,采用如下按帧间能量比的开平方进行插值的方法: fa b = E C 4 E Er 1 , E Er 1 = Σ k = 1 K [ X Er 1 ( k ) ] 2 , E C 4 = Σ k = 1 K [ X C 4 ( k ) ] 2 , X Er 1 r ( k ) = X Er 1 ( k ) , X Er 2 r ( k ) = a f * X Er 1 ( k ) , k=1,2,...,K是频点序号,af为插值因子,af=ab′*(fab′-1)+1,ab′为修正因子,范围为(0.5,1];Er1帧、C4帧皆为瞬态时,按下式利用能量衰减淡出插值求XEr1r(k),XEr2r(k), X Er 1 r ( k ) = X Er 1 ( k ) , X Er 2 r ( k ) = fa de * X Er 1 ( k ) , k=1,2,...,K是频点序号,其中fade′是衰减因子,取值范围是(0,1);步骤(5),按以下步骤计算在步骤(3)所述的各种不同状态下错误帧Er1、Er2的频谱相位PEr1r(k)、PEr2r(k):状态一及三,用寄存器复制C1帧相位PC1(k),且k=1,2,...,K,下同:则, P Er 1 r ( k ) = P C 1 ( k ) , P Er 2 r ( k ) = P C 1 ( k ) ; 状态二、六及七:用寄存器复制C4帧相位PC4(k):则, P Er 1 r ( k ) = P C 4 ( k ) , P Er 2 r ( k ) = P C 4 ( k ) ; 状态四:先用比较译码器比较帧间相关性,再用寄存器有选择地复制C1帧和C4帧的相位:当r2-r1≥roff_d′,则: P Er 1 r ( k ) = P C 4 ( k ) , P Er 2 r ( k ) = P C 4 ( k ) ; 当r2-r1<roff_d′,则: P Er 1 r ( k ) = P C 1 ( k ) , P Er 2 r ( k ) = P C 1 ( k ) ; 其中,roff_d′是设定的相关系数差值门限,取值范围是[0.1,0.4];状态五:根据瞬态指示标志值T,用寄存器复制相应帧的相位:当T4=0,复制C4帧相位,则: P Er 1 r ( k ) = P C 4 ( k ) , P Er 2 r ( k ) = P C 4 ( k ) ; 当T4=1,复制C1帧相位,则: P Er 1 r ( k ) = P C 1 ( k ) , P Er 2 r ( k ) = P C 1 ( k ) ; 步骤(6),按以下步骤把步骤(4)(5)取得的频域信号转换到时域,步骤(6.1),把步骤(4)求出的频谱幅度、步骤(5)求得的相应的频谱相位按下式用一个运算器求得频谱系数FX(k),再把把其通过逆快速傅立叶变换得到相位的时域信号样值xr:FX(k)=X(k)*(cos(P(k))+isin(P(k))),P(k)是所处理帧第k个频点上的频谱相位,X(k)是所处理帧第k个频点上的频谱幅度,FX(k)是相应于X(k)和P(k)的频谱系数;步骤(6.2),在稳态下,按以下步骤对得到的时域信号样值xr利用最大相似性进行时域相位匹配:步骤(6.2.1),用寄存器取出步骤(1)中缓存的错误帧Er1的时域序列xEr1前L个样值作参考序列xh,L取值范围为[int(0.2*K),int(0.3*K)],K是序列xEr1的长度,int是取整函数;步骤(6.2.2),用移位寄存器取出步骤(5)求得的错误帧Er1的时域序列xEr1r的连续L个样值作为测试序列xtestl,l=1,2,...,L,L的值与步骤(6.2.1)的相同,l是测试序列的序号,也是从xEr1r中取第l个测试序列的起点;步骤(6.2.3),在运算器上按下式计算L个测试序列与参考序列之间的相似性值C(l): C ( l ) = Σ k = 1 L x test l ( k + l ) * x h ( k ) , 步骤(6.2.4),用比较器比较步骤(6.2.3)中求得的L个相似性值,取最大值所对应的测试序列的序号,得到匹配值δ;步骤(7):按以下步骤重建错误帧Er1、Er2:步骤(7.1),用寄存器重建一个长为2K+M的序列y, M [ 1 2 L , L ] , 前2*(K-δ)个样值是xEr1r和xEr2r的第δ到K个样值组成的序列yo;步骤(7.2)取yo的前2δ+M个序列放在yo之后共同组成序列y;步骤(7.3)取序列y的前K个样值作为序列xEr1rm,次K个样值作为序列xEr2rm,最后M个样值作为可选项后面边缘平滑的数据yl;步骤(8),按以下步骤分稳态和瞬态两种情况进行前后边缘平滑处理,以减少时频变换带来的边缘突变;步骤(8.1):进行稳态下的前后边缘平滑处理:步骤(8.1.1),前边缘平滑处理,用寄存器取步骤(7)得到的xEr1rm的前M个样值, M [ 1 2 L , L ] , 同解码得到的Er1帧xEr1的前M个样值分别在运算器中与一个窗函数相乘后求和,得到平滑后的Er1帧的重建帧xEr1sr: x Er 1 sr ( m ) = x Er 1 rm ( m ) * wr ( m ) + x Er 1 ( m ) * wl ( m ) , 其中,wl(m)、wr(m)分别是M长的左、右窗函数的第m个样值,m=1,2,...,M,wl(m)=0.5(1-cos(2π*(M+m))/(2*M)),wr(m)=0.5(1-cos(2π*m)/(2*M));xEr1rm是插值处理生成的帧,xEr1(m)是缓冲保存的解码得到的帧;步骤(8.1.2),选项进行后边缘平滑处理,寄存器取解码得到的后帧xC4的前M个样值,在一个运算器中,与时域相位匹配中得到的序列yl利用步骤(8.1.1)中的窗函数wr(m),wl(m)先乘后加,得到后边缘平滑处理后的C4帧的重建帧xC4sr(m): x C 4 sr ( m ) = x C 4 ( m ) * wr ( m ) + y l ( m ) * wl ( m ) ; 步骤(8.2),在瞬态下只进行前边缘平滑,采用的方法与稳态时相同,但不进行时域相位匹配和后边缘平滑处理。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/200710065400.0/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top