AMR_WB Codec(一)

  • A+
所属分类:音频杂谈

  把AMR_NB 在 ARMv4, ARMv5 和ARMv7指令集优化做了一遍,现在开始做AMR_WB codec在ARMv4和ARMv5指令优化,等这个做好后,争取来一个CELP编码相关算法全集深度剖析,也好自己将学习总结一下。先把AMR_WB codec相关知识介绍一下。

     AMR-WB是由3GPP/ETSI在2001年制定用于WCDMA和GSM的宽带语音编码标准,ITU-T在2002年将其选为其16kbit/s编码速率的宽带语音编码标准G.722.2。这也标志无线与有线首次采用了同一语音编码器,意味着在3G与IP固定网络之间的互通更加容易,为宽带语音在更多的通信系统和设备的应用和服务打下了基础。AMR-WB有9种编码速率,并拥有话音激活检测(VAD)、信源控制速率(SCR)、舒适噪声生成(CNG)等变速率技术。

     AMR-WB语音编码系统主要由多码率语音编码器、信源控制速率(SRC:Source Controlled Rate)及丢帧/失帧错误隐藏机制三部分组成。SRC包括话音激活检测(VAD:VoiceActivity Detector)和舒适背景噪声(CAN:Comfort NoiseAspects)系统。丢帧/失帧错误隐藏机制用于避免或减少传输错误和包丢失对语音的影响。AMR-WB语音编码的编码算法采用代数码本激励线性预测(ACELP:AlgebraicCode Exitation Linear Prediction)技术。(实际上,AMR-WB还是跟AMR_NB, G.729一样,都是参数编码,利用声道模型)。

AMR-WB语音编码的多码率语音编码器是一个集成语音编码器,由9种编码模式组成,其编码速率分别为:6.6,8.85,12.65,14.25,15.85,18.25,19.85,23.05和23.85kbit/s。多码率语音编码器还有一个低码率背景噪声模式,主要用在GSM非连续传输(DTX)操作中,也可以在其它系统中作为一种低速率的信源独立传输模式,以便用来编码背景噪声,在GSM中这种模式编码速率为1.75kbit/s。12.65 kbit/s及以上码率模式都能够提供高质量的宽带语音,专门设计的两个低码率模式6.6 kbit/s和8.85kbit/s主要用在恶劣的无线信道环境或网络堵塞的场合。

    编码时分成两个频带,即50Hz~6400Hz的低频带和6400Hz~7000Hz的高频带。它们的编码是独立的,这样做主要是为了降低复杂度和让最重要的频带范围传递更多的参数信息。

     AMR-WB语音编码器输入语音的采样率为16kHz,编码每帧为20ms,320个样点。输入信号先经下采样使信号速率变成12.8kbit/s,每帧长度为256样点,再经过截止频率为50Hz的高通滤波器,滤掉异常的低频成分。为了防止定点运算产生溢出错误,在预加重之前,所有的样点都进行幅度除2处理。经过高通滤波和预加重后的信号开始进行ACELP编码。

    与AMR_NB比较一下,AMR_NB支持8种速率,采样率为8KHz, 编码每帧也为20ms,160samples,但没有做降采样处理,AMR-WB有将16KHz降到12.8KHz操作,这部分要好好学习一下,因为最新正在做一个"抽取和插值"的DLL,争取做到变速率不变音质。还就是不同速率下,对子帧的划分和处理也是不一样的。但基本原理还是一样。把speech codec学习一下,由三大知识点:一是filter,里面在很多种滤波器,好好研究一下,够我喝一壶的。但这些都是可以reuse的,所以值得去好好研究和学习:LP,BP 还有HP。二是、语音数据模型(激励加线性预测系数),主要码本的生成 和 LP--》LSP等。 三是、定点化,有很多代码已经定点化好了,但从读代码也能学到很多相关的知识。

   AMR-WB: 编码线性预测(LP)分析每帧(20ms)执行一次,每组LP系数被转换成ISP(Immittance Spectrum Pairs)参数,并进行分裂多级矢量量化(S-MSVQ)。每帧被分成4个子帧64个信号样点,自适应和固定码本参数是基于每个子帧传输的,量化和未量化的LP系数或者其插值也是基于每个子帧进行的,开环基音延迟每帧估计一次(6.6kbit/s模式)或者两次(非6.6kbit/s模式)。执行完上述操作后,基于不同的子帧,执行下列操作:计算目标信号(x( n))和感觉加权合成滤波器的冲激响应(h( n));由目标信号和冲激响应在开环基音估计的基础上再作更精细的搜索即闭环基音分析,得到最佳基音延迟和增益;目标信号减去自适应码本部分作为更新后的目标信号(x 2(n)),进行代数码本即固定码本搜索;自适应码本和固定码本增益采用6比特或7比特矢量量化;最后进行滤波器状态更新,用于下一子帧的分析。在23.85kbit/s模式,对经过带通滤波后的输入语音进行分析得到高频带增益。最后,每一帧信号编码后得到的比特流中包含有VAD索引、长时预测滤波器索引、ISP矢量索引、自适应码本索引(4组)、固定码本索引和码本增益(4组),在23.85kbit/s模式中还包含高频带增益索引(4组)。

    AMR-WB 解码: 在解码器输入端,从接收的比特流中获得VAD索引、长时预测滤波器索引、ISP矢量索引、自适应和固定码本参数(索引和增益)等。在23.85kbit/s模式下,还要获得高频带增益索引。ISP参数还需要转化为LP系数,再根据LP系数内插得到各个子帧的合成滤波器系数。在给定编码模式下,对每子帧64个样点作下列运算:由自适应码本和固定码本矢量经过各自的增益加权后获得重建的激励矢量;将激励矢量(或经过后置处理的激励矢量)输入合成滤波器得到采样率为12.8kbit/s的重建语音信号;重建的语音信号被去加重;最后,重建的语音信号还需要经过升采样处理(把采样率从12.8kbit/s转换到16kbit/s)。

      至此,简单介绍了一下AMR-WB codec,接下来将会是与AMR-NB对比性的进行分析和优化。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: