基于动态分块的自适应切窗算法

时间:2022-09-21 09:26:25

基于动态分块的自适应切窗算法

【摘要】窗口切换算法是一种常用的解决预回声方法。如何有效地判断信号中是否存在瞬变信号以及如何合理地进行长短窗口的切换是判断窗口切换算法优劣的关键。本文充分利用时域掩蔽效应,采用动态分块、自适应切窗思想提出了基于动态分块的自适应切窗算法,避免了短窗的过多切换,减小了算法延时。

【关键词】掩蔽效应;心理声学;预回声;动态分块;窗口切换

1.引言

基于心理声学模型的感知音频编码算法是目前数字音频技术的主要研究方向,其主要思想是利用信号的感知不相干性和统计冗余进行有损压缩,达到在无明显听觉失真的前提下使用于表达信号的比特率最小化。在感知音频编码中,预回声失真是一个比较严重的问题。

预回声是在处理瞬态信号时,其分辨率不足造成的量化噪声在时域扩展的结果。自适应切窗算法是一种有效的处理预回声问题技术。本文基于时域峰值变化率的窗口切换算法,采用心理声学模型中时域掩蔽技术对采样帧动态分块,以减小算法延时。

2.预回声产生机理及抑制技术

2.1 心理声学中的掩蔽效应

人耳对声音的感知存在一种特性,即人类只会对在一定频率范围内具有一定振幅大小的音频信号产生反应并且频率和振幅之间还存在一定的关联性。这就引出了一个重要概念:掩蔽效应。心理声学研究将掩蔽效应分为两种频域掩蔽和时域掩蔽[1]。当掩蔽音和被掩蔽音同时进入听觉系统时发生的掩蔽称为频域掩蔽或称作同时掩蔽(图1);时域掩蔽指的是掩蔽音超前于被掩蔽音或落后于被掩蔽音,前者称为后向掩蔽,后者称为前向掩蔽(图2)。

2.2 预回声产生机理

预回声的本质是时域分辨率不足造成的量化噪声在时域扩展的结果。当输入信号中存在一个瞬变信号或者类似的时域冲击响应时会使得量化编码后的量化噪声较大并且量化噪声在信号重建时会在时域进行扩展如图3(b)。

控制预回声的有效方法就是把整个数据块分成2个小块,并分别做MDCT变换[6],这样量化噪音就会被限制在1块数据中如图3(c)所示。MPEG就是运用长短块切换来控制预回声效应,对于变化剧烈的信号使用短块,而变化缓慢的使用长块。一般短块的长度为8 ms左右,而前掩蔽效应时间为20 ms,因而短块产生的预回音很容易被掩蔽。

3.基于动态分块的自适应切窗算法

3.1 基于时域的窗口切换算法

目前,一种普遍用于解决预回声问题的方法是进行窗口切换,即采用不同的帧长度来进行编码,当音频信号平稳不存在瞬变信号分量的时候采用较长的帧来进行编码;反之则采用短的数据帧来进行编码。窗口切换算法实现好坏的关键就在于如何有效地判断信号中是否存在瞬变信号以及如何合理地进行长短窗口的切换[4]。

为了解决以上问题一种简单且高效的方法就是将窗口切换的判断提前到时域中进行。付轩等人提出了一种基于时域分块峰值变化率来实现瞬变信号检测和窗口切换判断的算法[5]。

但该算法存在两个问题:

(1)该算法只是固定的将数据帧分成8个子块没有很好的考虑信号本身的特性和包含信息的差别造成处理中时域分辨率差别较大。比如:对采样率分别为8kHz和44kHz的信号采用相同的量化比特大小以及码率进行编码,由于从AAC每帧采样点均为1024,因此采样率为8kHz的信号每帧对应的时间长度是128ms而采样率为44kHz的信号每帧对应的时间长度约为23ms,如果同样分成8个子块则8kHz的信号每个子块对应的时间为16ms而44kHz的信号约为2.8ms,很明显这两种采样率下的子块对应的时域分辨率存在很大的差别。

(2)由于该算法将瞬变信号分量的判断和窗口切换的判定放在一个阶段完成,也就是说一旦算法确定信号中存在瞬变信号分量就立即进行短窗的切换,没有充分利用时域掩蔽效应进行进一步的分析从而有可能导致过度的短窗切换。

3.2 基于动态分块的自适应切窗算法

3.2.1 数据帧的动态分块

AAC标准数据帧分为1024个采样点,提供8kHz到96kHz的不同采样率。如根据原有的算法将数据块的划分固定为8块,那么其时域分辨率从16ms到1.3ms,时域分辨率差别很大。根据心理声学模型中的时域掩蔽效应(图2),我们可知时域掩蔽的前掩蔽时间为5ms到20ms。

由以上两点本文提出一种采用时域掩蔽效应的动态分块方法。该方法将时域掩蔽效应的有效前掩蔽时间设定阈值P(根据实验结果P的选值为8ms效果较好),将子块长度设定为阈值P(刚好是一个前掩蔽的有效时间)。

采用公式1:分块个数=AAC每帧采样点/(采样率*设定阈值);对数据帧的动态分块。

BlockSize=Int[FrameLenght/(SamplingRate*P) ]公式1

在完成数据帧的动态分块后,还要对字块进行合并以消除边界效应问题。边界效应问题指的是当一个瞬变信号出现在相邻的两个数据帧边界时,引起的漏判问题。

3.2.2 自适应切窗

设子块为BN(N为子块索引),峰值变化率阈值为α,子块的长度为阈值P(一个前向掩蔽时间),子块峰值为FN,子块峰值间的变化率为D,子块峰值之间距离Dis,前掩蔽应时间设为8ms,后掩蔽时间设置为16ms。

根据BN的峰值FN与B N-1的峰值FN-1之间的差D分为两种情况判断:

a)D小于α时,如图4,此时将子块的索引变为N-1,继续下一个子块的分析。

b)D大于α时,则认为存在瞬变信号,继续取得子块B N-2的峰值FN-2 与子块BN-3的峰值FN-3。

1)如图5,FN与FN-2、FN-3之间的D都大于α时,说明无论是BN子块的前掩蔽,还是BN-2、BN-3子块的后掩蔽都无法覆盖掉BN-1子块的峰值F N-1。此时为了避免预回声,设定窗口类型为短窗;

2)FN与FN-2、FN-3之间的D存在小于α时分情况讨论:

①峰值变化率存在小于α且存在一个有效的后掩蔽,如图6,此时BN-2子块的峰值产生的后掩蔽效应有效的掩蔽了BN-1,故无需短窗切换。

②峰值变化率存在小于α且不存在一个有效的后掩蔽,如图7,此时BN-3子块的峰值产生的后掩蔽效应无法有效的掩蔽BN-1,故设定窗口类型为短窗。

3.2.3 算法步骤

根据以上数据帧动态分块及自适应切窗技术结合心理声学模型的时域掩蔽效应,本文提出了一种基于动态分块的自适应切窗算法,其具体步骤如下:

1)高通滤波。由于瞬变信号产生时候都具有高频率和高幅度的特点,高通滤波器滤去了其中的低频部分,更加有利于瞬变信号的识别。

2)动态分块。根据采样率将输入的数据帧动态分块,确保子块的大小为8ms。

3)计算取得各个子块峰值。

4)判断瞬变信号。根据前向比较的方式,计算相邻子块直接的峰值变化率,并且跟设定阈值比较,是否为瞬变信号,如不是令N=N-1,重复这一步。如果是瞬变信号,则自适应切窗。

5)自适应切窗。自适应切窗结束后,如是短窗则结束;如是长窗则继续第4步。

6)所有的子块判断完毕后,根据输出的长、短窗类型对数据帧编码。

3.3 实验结果

我们采用一段带明显瞬变信号的波形(如图8)在Matlab平台上进行实验。信号采样率为44.1kHz,16bit,单声道。分别用基于时域峰值变化率算法及本文算法对其进行测试及重构。

由图9可以看出,本文算法在4、6、10、13、14、17、18帧出现短窗切换,相比较而言,原算法在3、7、15、19帧也出现短窗切换,但根据图10的重建结果发现这些是没必要的切换。本文算法充分利用时域掩蔽效应,避免了短窗的过多切换,减小了算法延时。

4.结论

本文基于付轩等人的时域峰值变化率切窗算法充分利用时域掩蔽效应,采用动态分块、自适应切窗思想提出了基于动态分块的自适应切窗算法,避免了短窗的过多切换,减小了算法延时。但对于文中提出的前掩蔽阈值P及峰值变化率α,本文是基于实验得来的,并没有确定的构建模型来确定之。

参考文献

[1]唐骏.变换音频编码预回声产生机理与抑制方法[J].厦门理工学院学报,2009,17(2):

36-39.

[2]Grecos Christos,Yang Mingyuan.Fast Mode Prediction for the Baseline and Main Profiles in the H.264 Video Coding Standard[J].IEEE Transactions on Multimedia,2006,8(6):1125-1134.

[3]Platzer,A.Verification of Cyberphysical Transportation Systems[J].IEEE intelligent systems,2009,24(4):10-11.

[4]姜晔,吴镇扬.感知音频编码中预回声的产生机理与抑制方法[J].电声技术,2000,11,

15-18.

[5]付轩.MPEG-2/4 AAC低复杂度层次编码器设计和算法改进[硕士论文].上海交通大学,2005.1.

[6]张力光,王让定.心理声学模型及其在MP3编码中的应用[J].宁波大学学报,2010,

7,23(3):27-31.

作者简介:

余绍军(1963—),湖南人,大学本科,教授,研究方向:图形图像。

方贞(1987—),安徽人,硕士研究生,研究方向:图形图像。

上一篇:新一代数字电视发射机功率放大器分析及损坏处... 下一篇:虚拟网技术在校园网中的应用