




已阅读5页,还剩67页未读, 继续免费阅读
(计算机科学与技术专业论文)嵌入式linux环境下音频质量提高方法的研究和实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
西t i l t 业大学硕士论文 摘要 随着嵌入式音频系统的广泛应用,人们对语音质量的要求也越来越高。在 资源有限的嵌入式系统环境中,如何通过软件技术来提高音频系统的性能是当 前一个研究热点。 本文的研究重点是,在嵌入式l i n u x 环境下,如何应用软件技术提高音频 系统的性能。本文提出了一种全新的解决方案,即在核态空间模式下,重新设 计和实现嵌入式音频设备的驱动程序,着重分析和研究了音频重采样、多路混 音、d m a 引擎和内存管理三大关键技术。本文主要工作如下: 把重采样引入的噪音降到最低。为了提高音频质量,在驱动程序中利 用高效的k a i s e rw i n d o w 低通滤波算法对不同采样频率的音频流进行 重采样。不仅实现了k a i s e rw i n d o w 重采样算法,而且对算法进行了 有效优化,使采样效率提高了一倍以上。 加入了实时混音功能。为了支持多个通道音频流同步播放,使一个音 频输出设备上能同时听到多个声音,基于混音理论,本文实现了混音 算法。 引入了双缓存设计方法。由于声音实时性和连续性的特殊要求,驱动 程序中d m a 引擎和内存管理直接影响系统性能。为此,本文重新设 计和实现了d m a 引擎和内存管理以提高性能。 具体实现工作中对算法的关键部分用m m x 汇编指令进行了优化,从 而在整体上优化了系统性能。 通过严格的性能测试分析,重采样、混音算法效率和系统性能都有较大提 高,表明本文提出的解决方案是可行的,能有效地提高整个系统的处理能力和 性能。 关键词:嵌入式l i n u x :重采样;混音:音频设备驱动程序;m m x 指令;d m a 西北工业大学硕士论文 a b s t r a c t w i t ht h ef a s tp o p u l a r i z a t i o no ft h ee m b e d d e da u d i os y s t e m s ,p e o p l eh a v ea g r o w i n gd e m a n do nah i g h e rq u a l i t yo fa u d i o c u r r e n t l y , h o wt oi m p r o v et h e p e r f o r m a n c eo fa u d i o i ne m b e d d e ds y s t e m sw h o s er e s o u r c e sa r el i m i t e db y a p p l y i n gs o f t w a r et e c h n i q u e si sah o tr e s e a r c ht o p i c t h i st h e s i sf o c u s e so nh o wt oi m p r o v et h ep e r f o r m a n c eo fa u d i os y s t e mb y a p p l y i n g + s o f t w a r et e c h n i q u e su n d e re m b e d d e dl i n u x an e ws o f t w a r es o l u t i o ni s p r e s e n t e di nt h et h e s i sw h i c hr e d e s i g n sa n di m p l e m e n t st h ed r i v e ro ft h ee m b e d d e d a u d i os y s t e mi nk e r n e lc o n t e x t t h i ss o l u t i o np u t se m p h a s i so nt h et h r e ep a r t s : a u d i or e s a m p l i n g ,m i x i n ga n dd m a e n g i n ew i t hm e m o r ym a n a g e m e n t f i r s t l y , i n o r d e rt oi m p r o v ea u d i oq u a l i t y , k a i s e rw i n d o wl o w p a s sf i l t e ra l g o r i t h mi su s e dt o r e s a m p l i n ga u d i os i g n a l sw i t hd i f f e r e n tf r e q u e n c i e sw h i c hc a nr e d u c et h en o i s e f u r t h e s t a tt h es a m et i m e ,t h ea l g o r i t h mi s o p t i m i z e de f f e c t i v e l yt od o u b l et h e s a m p l i n ge f f i c i e n c y s e c o n d l y , m i x i n ga l g o r i t h mb a s e do nm i x i n gt h e o r yi sa p p l i e d f o rs u p p o r t i n gm u l t i - c h a n n e lo u t p u t so fa u d i of l o w ss y n c h r o n o u s l y f i n a l l y , d m a e n g i n ea n dm e m o r ym a n a g e m e n ta r er e d e s i g n e da n di m p l e m e n t e db yu s i n gd u a l b u f f e rd e s i g nt oi m p r o v et h es y s t e mp e r f o r m a n c ew h i c hm e e t st h er e q u i r e m e n to f r e a l t i m ea n d c o n t i n u i t y o f a u d i o d u r i n gi m p l e m e n t a t i o n ,m m xa s s e m b l e c o m m a n d sa r eu s e dt oo p t i m i z et h ek e yp a r t so ft h ea l g o r i t h mw h i c hc a na l s o i m p r o v et h es y s t e mp e r f o r m a n c e f r o mt h ee x p e r i m e n tr e s u l tw ec a nk n o wt h a tt h ee f f i c i e n c i e so fr e s a m p l i n g a n dm i x i n ga n dt h ep e r f o r m a n c eo ft h es y s t e ma r ei m p r o v e dg r e a t l yw h i c hm e a n s t h ep r o p o s e ds o l u t i o n sa r ef e a s i b l e k e y w o r d s :e m b e d d e dl i n u x ;r e s a m p l i n g ;m i x i n g ;a u d i od e v i c ed r i v e r ;m m x ;d m a 西北工业大学硕士论文第一章绪论 1 1 课题背景 第一章绪论 随着嵌入式系统应用日益广泛,越来越多的电子产品采用了嵌入式技术。嵌 入式系统在多媒体和网络应用方面逐步发展。p d a 、3 g 手机、嵌入式网络教学 计算机等产品都广泛应用了嵌入式技术。这类产品都涉及到音频、视频方面的 应用。如何提高产品的声音质量逐渐成为一个热点研究问题。因此,嵌入式音 频系统的研究变得越来越重要。 嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁减,从而能 够适应实际应用中对功能、可靠性、成本、体积、功耗等严格要求的专用计算机 系统。 嵌入式l i n u x ( e m b e d d e dl i n u x ) 是指对l i n u x 经过裁剪小型化后,可固 化在存储器或单片机中,应用于特定嵌入式场合的专用l i n u x 操作系统。嵌入 式l i n u x 的开发和研究已经成为目前操作系统领域的一个热点。概括说来,将 l i n u x 应用于嵌入式系统的开发有如下一些优点f l 】: 1 ) l i n u x 系统是层次结构且内核完全开放。l i n u x 是由很多体积小且性能 高的微内核系统组成。在内核代码完全开放的前提下,不同领域和不 同层次的用户可以根据自己的应用需要方便地对内核进行改造,低成 本地设计和开发出满足自己需要的嵌入式系统。 2 ) 强大的网络支持功能。l i n u x 诞生于因特网时代并具有u n i x 的特性, 保证了它支持所有标准因特网协议,并且可以利用l i n u x 的网络协议 栈将其开发成为嵌入式的t c p i p 网络协议栈。此外,l i n u x 还支持 e x t 2 、f a t l 6 、f a t 3 2 、r o t o r s 等文件系统,为开发嵌入式系统应用打下 了很好的基础。 3 ) l i n u x 具备一整套工具链,容易自行建立嵌入式系统的开发环境和交 叉运行环境,可以跨越嵌入式系统开发中仿真工具的障碍。l i n u x 也 西北j t 业大学硕士论文第一蕈绪论 符合i e e e p o s i x 1 标准,使应用程序具有较好的可移植性。嵌入式 l i n u x 为开发者提供了一套完整的工具链( t o o lc h a i n ) 。它利用g n u 的g c c 做编译器,用g d b 、昭d b 、x g d b 做调试工具,能够很方便地实 现从操作系统到应用软件各个级别的调试。 4 ) l i n u x 具有广泛的硬件支持特性。无论是r i s c 还是c i s c 、3 2 位还 是6 4 位等各种处理器,l i n u x 都能运行。l i n u x 通常使用的微处理器 是i n t e lx 8 6 芯片家族,但它同样能运行于m o t o r o l a 公司的6 8 k 系列 c p u 和i b m 、a p p l e 、m o t o r o l a 公司的p o w e r p cc p u 以及i n t e l 公司 的s t r o n g a r mc p u 等处理器。l i n u x 支持各种主流硬件设备和最新 硬件技术。这意味着嵌入式l i n u x 将具有更广泛的应用前景。 目前用户对于音频质量的要求越来越高,如何在尽量降低成本的条件下, 满足用户的音频质量需求是一个非常值得研究的问题。有两种方式可以提高音 频质量,一种是在音频处理的硬件电路设计上着手;另一种方式在系统处理能 力允许的条件下,通过软件设计方面利用合理、高效的算法及优化来达到目的。 很显然,通过第一种方式,选择处理能力强的芯片、元器件,必然会增加硬件 成本。通过软件方式提高音频质量是当前值得探讨和研究的内容。 1 2 当前的研究现状 嵌入式音频系统广泛应用于g p s 自动导航、p d a 、3 g 手机等嵌入式领域, 但目前国内在这方面的研究较少。 嵌入式音频系统设计包括软件设计和硬件设计两方面,在硬件上使用了基 于 i s 总线的音频系统体系结构。i i s ( i n t e r - i cs o u n d b u 曲又称1 2 s ,是菲利浦公 司提出的串行数字音频总线协议。目前很多音频芯片和m c u 都提供了对i i s 的支持。 在软件上,作为个功能复杂的嵌入式系统,需要有嵌入式操作系统支撑。 l i n u x 是一个源代码开放的类u n i x 系统,由于其具有内核可裁剪性,且提供 对包括a r m 、p p c 在内的多种嵌入式处理器的支持,所以广泛应用于嵌入式 高端产品中。虽然l i n u x 提供了众多a p i 来降低驱动程序制作的复杂度,但是 2 西北工业大学硕土论文第一章绪论 由于音频应用对实时性有很高的要求,且需要处理的数据量较大,所以必须合 理分配资源,使用合适的算法。 在本文中,将着力于软件方式来提高音频质量。软件方面对音频质量最关 键的部分就是音频驱动程序,它的性能效率直接关系到声音质量。由于声音对 于实时性、连续性要求非常高,因此高效的算法和处理方式显得非常重要。 传统的解决方案正是基于用户空间模式下以动态库方式来实现重采样、混 音功能,再把处理后的音频数据传送到普通音频驱动程序进行播放。普通的 a c 9 7 芯片的音频驱动程序重采样算法非常简单,效率也不高,对音质影响非 常大,会引入较大的噪声,并且它没有多路音频流的实时处理能力,不能同时 处理多个音频应用。这些方面限制了用户空间模式下的音频应用,用户必须在 用户空间完成音频流的重采样和混音工作,这样会增加整体系统开销,减低系 统性能,并且音频的实时性不能得到保证。还有一个非常关键的问题是驱动程 序的d m a 缓冲区管理算法不是非常高效。 正是由于用户空间模式下以动态库方式实现的解决方案有上述缺点,在本 文中提出一种核态空间模式下的设计方案,通过重新设计和实现一个嵌入式音 频驱动程序( 基于l i n u x 2 4 内核) ,在音频驱动程序中加入k a i s e rw i n d o w 低 通滤波算法、多路混音算法及d m a 缓冲区管理算法三大部分重新实现一个实 时、高效的音频驱动程序。设计上支持用户打开多个应用通道,并且允许特权 用户打开特权通道,屏蔽其它通道的声音,实现特殊功能需求。对每个通道中 的音频流可以独立调节其音量大小等功能。 1 3 课题来源及研究的意义 本课题来自于实习单位研发产品嵌入式网络教学计算机系统中嵌入式终 端音频系统部分的需求。嵌入式终端环境无硬盘、处理区能力不强、内存容量 小,基于嵌入式l i n u x 内核的操作系统,资源有限。嵌入式网络教学计算枧系 统采用c s 架构,终端通过网络与服务器进行交互。终端需要完成很多任务, 这时系统的性能和效率就成为设计与研究的关键,如何在保证系统设计功能的 前提下尽可能地减低系统的开销,提高系统的性能和效率是本课题研究的最重 3 西北工业大学硕上论文第一章绪论 要目标。 在现有的硬件条件下,通过软件技术方法来提高和优化嵌入式音频系统的 性能,一定程度上可以减低产品成本。这正是本课题研究的意义所在,减低硬 件成本的同时,最大化和最优化系统性能和效率。 1 4 论文的主要工作及章节安排 1 4 1 论文的主要工作 论文的主要工作概括如下: 1 ) 分析了音频流重采样理论,具体实现了重采样算法。基于数字信号处 理理论,k a i s c rw i n d o w 低通滤波算法和线性插值法都可以用来对音频 信号进行重采样。在不同重采样转换因子的情况下,对两种重采样方 法进行比较,总结出应该如何选择重采样算法。出于系统性能和效率 方面的考虑,对重采样算法的关键部分,用m m x 汇编指令进行优化。 2 ) 在分析了混音理论的基础上,具体实现了混音算法,主要包括缓冲区 管理、值箝位机制以及特殊情况处理几个部分。 3 ) 嵌入式音频设备驱动程序的设计与实现。在音频驱动程序中整合了重 采样功能、多路混音功能,支持特权通道机制以及软音量调节功能。 着重分析了d m a 引擎的缓存区设计和管理。 4 ) 对算法优化前后的性能进行比较,同时对传统解决方案和本文提出的 解决方案的整体性能和效率进行评测和分析。 1 4 2 论文的章节安排 第二章“音频重采样和混音的理论基础”,介绍了与本课题相关的重要概 念、技术和理论基础。主要包括数字音频、音频重采样及音频混音理论,并对 它们进行阐述分析。 第三章“嵌入式音频系统的总体设计”,在分析了系统需求的基础上,具 4 西北工业大学硕士论文第一章绪论 体设计了系统总体架构,描述了系统工作的流程,并且与传统解决方案进行比 较分析。 第四章“关键技术的研究和实现”,主要是音频重采样算法以及多路音频 混音算法这两大关键技术的研究和实现,同时对算法的关键部分用m m x 汇编 指令进行优化,最后给出具体的实验结果。 第五章“音频驱动程序设计与实现”,首先分析了l i n u x 下驱动程序的原 理,在此基础上重新设计和实现了音频驱动程序,并着重分析了d m a 缓冲区 的管理。 第六章“性能评测和分析”对系统中的关键算法进行测试,给出优化前后 的性能对比。最后对传统解决方案和本文提出的解决方案的性能进行对比,并 根据测试结果得出结论。 第七章“总结和展望”,首先总结了论文中完成的主要工作,给出本文的 结论,同时根据存在的问题提出下一步的研究方向。 5 西北工业夫学硕l 论文第二章音频重采样和混曹的理论弗础 第二章音频重采样和混音的理论基础 本章对数字音频重采样和混音的基本理论进行了分析,着重对k a i s e r w i n d o w 窗函数法进行了阐述。 2 1 数字音频 音频信号足一种连续变化的模拟信号,但计算机只能处理和记录二进制的 数字信号,由自然音源得到的音频信号必须经过一定的变换,成为数字音频信 号之后,才能送到计算机巾作进一步的处理。 数字音频系统通过将声波的波型转换成一系列二进制数据,来实现对原始 声音的重现,实现这一步骤的设备常被称为模数转换器( a i d ) 。a d 转换器 以每秒钟上万次的速率对声波进行采样,每个采样点都记录下了原始模拟声波 在某一时刻的状态,通常称之为样本( s a m p l e ) ,而每一秒钟所采样的数目则 称为采样频率,通过将一串连续的样本连接起来,就可以在计算机中描述一段 声音了【2 】。对于采样过程中的每一个样本来说,数字音频系统会分配一定存储 位来记录声波的振幅,一般称之为采样分辩率或者采样精度,采样精度越高, 声音还原时就会越细腻。 数字音频涉及到的概念非常多,最重要的是理解声音数字化的两个关键步 骤:采样和量化。采样就是每隔一定时间就读一次声音信号的幅度,而量化则 是将采样得到的声音信号幅度转换为数字值,从本质上讲,采样是时问上的数 字化,而量化则是幅度上的数字化。下面介绍几个在进行音频编程时经常需要 用到的技术指标: 1 ) 采样频率 采样频率是指将模拟声音波形进行数字化时,每秒钟抽取声波幅度样 本的次数。采样频率的选择应该遵循奈奎斯特( h a r r yn y q u i s t ) 采样 理论:如果对某一模拟信号进行采样,则采样后可还原的最高信号频 率只有采样频率的一半,或者说只要采样频率高于输入信号最高频率 的两倍,就能从采样信号序列重构原始信号。正常人听觉的频率范围 6 西北工业人学硕士沦文第二章音频重采样和混音的理论基础 大约在2 0 h z 2 0 k h z 之间,根据奈奎斯特采样理论,为了保证声音不 失真,采样频率应该在4 0 k h z 左右。常用的音频采样频率有8 k h z 、 1 1 0 2 5 k 王王z 、2 2 0 5 k h z 、1 6 k h z 、3 7 8 k h z 、4 4 1 k h z 、4 8 k h z 等,如果采 用更高的采样频率,还可以达到d v d 的音质。 2 ) 量化位数 量化位数是对模拟音频信号的幅度进行数字化,它决定了模拟信号数 字化以后的动态范围,常用的有8 位、1 2 位和1 6 位。量化位越高, 信号的动态范围越大,数字化后的音频信号就越可能接近原始信号, 但所需要的存储空问也越大。 3 ) 声道数 声道数是反映音频数字化质量的一个重要因素,它有单声道和双声道 之分。双声道又称为立体声,在硬件中有两条线路,音质和音色都要 优于单声道,但数字化后占据的存储空间的大小要比单声道多一倍【3 1 。 当然,数字音频还有其它的许多参数指标,上面描述的这些只是最基本的 参数,也是在本文中经常会提到的概念。 2 2 数字音频重采样 2 2 1 什么是有限带宽插值 离散时间信号的有限带宽插值是一种基本方法,在数字信号处理上有广泛 的应用。一般地,问题在于如何从一组离散时间信号样本值正确计算出任意连 续时间上的信号值。换句话说,我们必须能够在样本之间插入信号点。既然总 是假设信号源带宽是采样率的一半( 否则采样时会产生失真) ,那么香农采样 理论告诉我们通过有限带宽插值,从信号样本值能够完全正确并且唯一地重建 原始信号。有许多方法可以用来插入离散点。例如,拉格朗日插值法就是一种 经典的方法,它通过给定的n + 1 个点来获得一个n 次多项式。 下面描述了离散时间信号的有限带宽插值方法,这种方法支持任意时刻的 信号值估计,并且平滑地改变采样率时也表现的相当好。有限带宽插值法是一 种基于查找滤波系数表的内插值方法,因此在连续时间上能更有效地获得滤波 7 西北工业大学颀 论文 第二帝音频重采样和混音的理论基础 脉冲响应。用一个单独的预先计算的滤波系数表来处理所有的插入时间点以及 采样率变换的情况。对于给定的精度要求,需要多大的系数表有具体计算公式。 2 2 2 理想的有限带宽插值理论 我们简要地介绍基于当前方法的采样率变换的模拟插值法。假设我们有一 个连续的绝对完整的信号源x ( t ) 的样本x ( n t s ) ,其中t 是时间,n 是整数, t s 是采样周期。我们假设x ( t ) 的带宽是_ + f s 2 ,其中f s = 1 t s 是采样率。 b ) 表示x ( t ) 的傅立叶变换,有白) = j 二o e - j o t d l ;当f 倒i 绒时, 假设j 0 ) = 0 。因此,香农采样理论告诉我们,x ( t ) 能通过样本x ( n t s ) 唯 一的还原,公式为: x 一( 0 - 妻工( n l ) h ,( t ) 工( f ) ( 2 - 1 ) 其中: hs(f)a兰警(2-hssinc(fj) 2 ) f ) = = = = 半 2 ) 当用一个新的采样率只= 1 来重采样x ( t ) ,我们只需要按照上面公 式重新计算。若新的采样率小于原始采样率,低通滤波闽值必须低于新的采样 率的二分之一。 因此,假设一个理想低通滤波器,吃( 0 ;m i n 1 , f s i s i n c ( m i n f ,m , 在通频带上,它的增益因子保持不变,并且增益相同。如下图2 1 所示, s i n c ( f ) = s i n 印) ( 疵) 函数关于原点对称。从图2 一l 中可见它的峰值为1 ,并且在 非零整数点上函数值都为零。 a 图2 一l s i n c ( t ) - s i n ( n 0 ( m 、 8 西北工业人学硕j j 论文第二章音频重采样和混音的理论基础 用 代表数字信号的卷积运算符,这样公式( 2 1 ) 可以表示为 。 。) ( f ) 。公式( 2 - 1 ) 中的h s 就是一个s i n c 函数。可以注意到在所有的非 零整数点上,s i n c 函数的值都为零。这就是说,在t = n f 时刻,唯一对公式( 2 1 ) 求和起作用的就是单个样本行t ) ,也就是说,在f 一挖t 时刻,所有其它样本 对求和的贡献为零。换句话说内插法正好通过所有样本点。 图( 2 - 2 ) 展示了多个s i n c 函数叠加在一起如何重建有限带宽信号。图中 有5 个叠加的s i n c 函数,每个幅值相等,各相隔一个样本间距。这些s i n c 函 数用来恢复有限带宽离散信号x = 【,0 , 1 , 1 , 1 , 1 , 1 , 0 ,】,注意到在每个采样点 t = 胛t ,实线准确通过s i n c 函数的顶端,其对应的正好就是样本信号。这也 再一次说明插值法通过所有的信号样本点的事实。图2 2 中只有两种样本信号0 或者l ,我们期望在菲零点旁边插入的样本接近于l 。然两,事实上并非如此。 与样本一致性的背离,是由于低通滤波的过量引起,并在采样率的一半时截至, 这是一种有限带宽的吉布斯( g i b b s ) 现象。 图2 2 有限带宽信号重建( 实点为信号样本、虚线为s i n c 函数、 实线为重建的有限带宽信号) 公式( 2 1 ) 的第二种解释如f :为了获得t 时刻的插值,在s i n c 函数下 移动信号样本,使得t 时刻的信号正好移动到s i n c 函数的波峰位置,然后通 过信号的线性结合生成输出,每个信号样本的系数对应于s i n c 函数相应位置 的值。正是因为卷积是可交换的,上面第一种解释与第二种解释本质相同。在 第一种解释中,所有的样本点用来形成移动的s i n c 函数的线性结合。然而, 在第二种解释中,从一个s i n c 函数样本来生成一个移动的输入信号的线性化 样本。下面阐述的实际设计中采用的有限带宽插值法正基于第二种解释。 9 西北工业大学硕一l 论文 第二章音频藿采样和混旨的理论基础 2 2 3 从理论到实践 公式( 2 1 ) 的结论实际中不可能实现,因为它的理想低通滤波脉冲响应 垃( f ) 的定义域为负无穷到正无穷。在实际应用中我们必须使理想脉冲响应窗 的大小是有限的,这一点在窗函数法数字滤波设计上是最基本的。虽然有其 它的许多滤波设计方法,但是窗函数法不仅简单而且相当健壮的,特别是对长 脉冲响应。 o o o o 图2 - 3 理想低通滤波频率响应 在下面描述的算法中,由于样本很多,滤波脉冲响应是非常长的。 图2 3 是理想低通滤波的频率响应图,它正是吃( f ) 的傅立叶变换。 如果我们在原点向左右两边各取五个零点,我们得到的频率响应图如图 2 4 所示。从图中可看出它的截至带宽为一2 0 d b 。 蒯- 4 0 0 - 2 0 0 兰;篙 。 图2 4s i n c 函数的理想低通滤波频率响应 1 0 西北工业大学硕士论文第二章音频重采样和混音的理论耩础 如果我们用k a i s e r w i n d o w 窗函数,得到的频率响应如图2 5 ,从图中可以 看出它的截至频带接近一8 0 d b ,k a i s e r w i n d o w 窗函数中有一个参数能调节其阻 带的衰减度,可以用来改变通带和阻带的宽度。 。4 心 夕2 。j 。9 j 孵羔- 8 :0! 篙 图2 5k a i s e rw i n d o w 理想低通滤波频率响应 2 2 4k a i s e rw i n d o w 窗函数法 在理论上,k a i s e r w i n d o w 窗函数法能提供任意时刻的信号估算。在输入 采样周期单元( 假设采样周期为常量) ,时间表示为一个无符号二进制固定点 数。图2 6 表示了记录时间t 的表示格式。 l + 一pe i o n ) 一 i 输 样本索b l n溏渡泵数表初蛤 插值因子玎 索引t 图2 6 时间表示格式 时间记录有三部分组成,最左边部分给出输入缓冲区的样本索引n ,中 间部分是滤波系数表中的初始位置索引? ,最右边部分参数j 7 ,介于o 与l 之 间,用于样本z 与,+ 1 之间的滤波表的线性补偿。把f 和q 结合在起,就是 1 1 西北t 业大学颂 论_ c 【=第一二章音频重采样和混音的理论基础 所谓的p 【o j ) ,也就是输入样本n 和n + l 之间的当前时刻位置。 让这三部各自独立地分别有开。、n ,和n r 位。因此输入信号缓冲区包含 有n :2 “个样本,同时滤波系数表包含有l 一2 一个样本在每个零交叉之间。 ( 术语零交叉仅紧对于理想低通滤波是准确的。实际情况下,只有在时间 乞= 1 正的倍数点上产生零交叉,其中正是低通滤波的截至频率) 。使用理想 低通滤波,系数表将包含h ( 1 ) = s i n c ( 1 l ) 。 图2 7 展示了在给定时间的输入信号样本点及其低通滤波脉冲响应。 鲞蘑赣巷曲蠢馥赢鼙 矗i 酵嘲 鼍避蠢馥t 一成 l + , 图2 7 内插法波形和参数 在我们的实现上只存储对称的有限脉冲响应滤波( 基于k a i s e r w i n d o w 窗 函数法设计) 的右半部分。同时,也存储一张连续有限脉冲响应样本值差值表 i ( f ) t h ( 1 + 1 ) 一 ( f ) ,目的为了加速线性插值,表的长度为n 。一上( 札+ 1 ) 。 采样率转挟因子p 一一只。对于每一个输出样本,由基本插值公式( 2 1 ) 计算得到。滤波系数表在一次重采样中使用两次,一次是左翼的有限脉冲响应 滤波,另一次是右翼的有限脉冲响应滤波。在计算出每一个输出样本后,时制 西北工业大学硕l 论文 第二章音频重采样和混音的理论某础 值增加2 ”“p 。假设时间t 正好经过调整,内插法输出为_ ) ,( f ) ,对于p 1 , 输出计算方法为: v + 。磊z 。一州7 + 记) + 莉+ 也) 】 p 卜1 一p y ( f ) 。v + 荟工( 州+ 州7 + 也) + 柳+ 正) 】 ( 2 3 ) ( 2 4 ) ( 2 5 ) 其中,文功表示当前输入样本,刁【o 为是插值因子,当p l 时,初始p 被p = p e 所取代,1 一p 变成p p = p ( 1 一p ) ,并且滤波表中滤波系数取值 间隔减小为应,而不再是。这样可以降低滤波截至频率以避免混叠现象。 注意,当p 2 1 时,在整个计算过程中可是固定不变的,而当p 1 时,刁是可 变的。 当p 1 时,为了到达滤波系数表末端需要更多的输入样本,这样才能保 证滤波质量。每秒钟乘加法运算次数大约为( 2 n z + 1 ) m a x f , ,) 。因此,采样 率决定了运算量。我们知道,对于p 0 时,所需的额外样本量是无限的。因此,在算法实现中,应该设定一个 最小能支持的p 值。对于,) 1 ,左翼或右翼的重采样仅仅需要札个额外的输 入样本。当然,上面对于p 的限制仅仅对于固定点数运算方法,有几。= 2 1 ”7 。 正如图2 7 所示,如果再。表示存储脉冲响应样本的字长,那么可以选择 n f l + n 。2 ,h 。= 厅。2 ,这样可在插值脉冲响应中获得以。一1 有效位精度。 对于合理的转换因子形式= l m 。其中l 一2 “,m 是正整数,不必使用 线性插值特性( 因为r l ;0 ) 。这种情况下将是正常模式有限带宽插值。基于有 效的内插查找方法,无论如何,转换因子的范围受限于2 1 ”7 m 。对丁二 西北工业大学烦十论文 第一章音频重采样和混音的理论基础 p 一1 ,伪;9 , n 。;8 ,大约有5 1 个精确的十进制数,如果不是内插,那么同样 的p 值情况下只有2 7 个。 n :( 存储在表中的零交叉个数) 是一个独立的设计参数a 按照混叠消除 设计,对于一个给定质量要求,在,和带宽损失之间有一个平衡点。损失的 带宽是由于所谓的低通滤波的过渡带宽。对于一个给定的截至带宽要求( 例如 8 0 d b 衰减) ,低通滤波需要两倍的半通带内每个样本的乘加次数。 作为一个实际设计例子,在一个高音频质量的2 0 过采样的系统设计中, 我们采用,= 1 3 。因此,高效的有限脉冲响应滤波是2 7 个过零点。在这种情 况下的采样率将是5 0 k h z 。在大多数简单的滤波设计中,低通滤波通带将停 止,并且过渡带宽开始以2 0 k h z ,并且截至带宽开始于2 5 k h z 。更甚者,为 了降低滤波设计要求,过渡带实际上设计为从2 0 k h z 到3 0 k h z 延伸。因此, 2 5 k h z 到3 0 k h z 混叠在2 0 k h z 到2 5 k h z 的上面,从而大约只有滤波长度要 求的一半。由于整个过渡带位于人类听觉范围之外,这种混叠是听不到的。 在上面的例子中,在滤波表中每个过零点间用5 1 2 个样本,隐含设计一个 长度为2 7 x 5 1 2 = 1 3 8 2 4 的有限脉冲响应滤波,截至频率接近于n 5 1 2 。无论如 何必须用一个有限脉冲响应滤波设计方法在如此高阶条件下有效工作。上面所 述的窗函数设计法就是一种较好的方法【4 1 。 2 3 数字音频混音 2 3 1 混音的合理性和必要性 音频这种连续的、时问要求严格的流与传输别的数据不同。这涉及声波转 换为数字信号,数字信号恢复为声波。虽然a d d a 由硬件完成,但录音和播 放由用户设置。特别需要注意的是,不象典型的视频流在空间时间域占有唯 一的位置,在同一时间和位置的图象元素叠加是无任何意义的,但人耳可以感 知在同一空间时间播放多个音频流,这就是混音的合理性和必要性。混音就 1 4 西北工业人学硕j :论义第二章音频重采样和混音的理论摹础 是用一个输出设备播放多个音频流,提供一个单输出多输入 ( s i n g o u t p u t - m u l t i p l e i n p u t ) j a m 。 2 3 2 混音的理论依据 在时域l 语音是短时平稳信号,对语音信号进行处理的一个基本概念就是 对语音样本以缓冲区为单位处理,即对输入的语音样本分帧。语音处理的很多 概念都是基于语音帧的,比如有声无声,能量,自相关等等。语音帧的长度 一般是选1 0 2 0 m s 。 当多个音频源在一个房间播放时,人耳听到的声波是各个卢源声波的线性 叠加,这正是模拟混音的基础。该事实表明数字话音的混音也应线性相加。假 设有n 路输入音频流进行混音,x i ( t 1 是t 时刻的第i 路输入语音的线性样 本,则t 时刻的混音值为: m o ) = 蹦。o ) , i = 0 ,1 ,r l 一1 ;- ( 2 6 ) 数字音频的重要参数是采样率。显然,各路输入音频流的采样率相同是混 音的前提。但是,随着需要混合的语音信号路数的增加,在用户不采取任何附 加的预防措施的情况下,一些并不需要的信号( 例如回声和噪音) 就会累积起来 并终将导致让人无法接受的质量劣化。这样,每个终端的输入音频进行有声 无声检测就很有必要了。 当然混音时应注意求和样本的动态范围。这引出了归一化定标( s c a l i n g ) 问题。数字音频波形理论定义,定标就是检查某个选定的帧,找到振幅峰值, 并由此调整被选帧整体的音量,使允许的振幅值最大,且不会溢出。数字混音 是数字波形编辑的一种,尤其需要解决归一化定标问题。 最大的问题是如何防止溢出而导致失真? 如果输入样本是1 6 比特,求和 缓冲区也是1 6 比特,那么多路音频流就容易使求和区溢出。即使提供了高精 度的求和缓冲区,使得在求和过程中是不会溢出,但是这不能保证求和结果的 幅值适合输出硬件器件的要求范围( d a 器件范围通常是1 6 比特) ,简单的方 法是对超出范围的值筘位,更好的方法就是对求和结果分帧进行归一化定标, 两北1 _ = 业大学硕士论文第二章音频重采样和馒音的理论基础 具体办法就是:对某个求和语音帧中的所有样本进行分析,若样本s 的值超 过了器件所能表示的最大范围,那么s 之后的所有样本均乘以一个衰减因子f 。 其中f 是能够使s 满足输出器件范围的最大值,显然,f 的绝对值是小于1 的。 这样在箝位后的一段时间内,语音样本之间的大小是相对不变的。 2 3 3 有声无声检测算法 有声无声检测( s i l e n c e s p e e c hd e t e c t i o n ) 是需要的,也称静音检钡r ( s i l e n c e d e t e c t i o n ) ,在r r u t 协议中则一般是称语音激活检测w a d ,v o i c ea c t i v i t y d e t e c t i o n ) ,实际上都代表了同一件事,有声和无声本来是互斥的,检测任一 种情形都能达到有声无声判断的效果。有了有声无声检测,准确判断在某一 时段实际参与混音的终端数目,从而降低了混音的运算量 大部分语音通信系统采用的有声无声检测模块,是将信号电平,信号能 量,过零率或这些参数的组合,与预置的门限值进行比较判断。 基于短时平均能量的计算是利用一个固定宽度的滑动窗口,每输入一个最 新样本,计算该样本之前的窗口覆盖的所有样本的能量平均值,将其与一个门 限值比较来判断该新样本是静音还是有声,这里该样本有声的意思是指该样本 是一段有声脉冲( t a l k s p u r q 的一部分。上面提到的有声无声检测是基于样本 为单位( s a m p l e - b y - s a m p l e ) ,通常我们需要以帧为单位进行检测,方法是如 果某一帧内有任何一个样本是有声,则该帧就是有声。有时为了简化,将窗口 以帧为单位滑动,而不是以样本为单位,直接凭每帧的最后一个样本是有时 无声来确定该帧是有声无声,实验证明,这样的简化对判断基本上没有影响, 而且大大节省了运算量。 为了判断的准确,应该使用自适应变化的门限。自适应门限始终保持和短 时背景噪声能量是一个常量比值s o ,s o 的大小代表了静音检测的灵敏度。噪 声能量是样本短时能量的一阶线性低通滤波结果。长时间的连续讲话会升高背 景噪声的估计值,以及相应的门限,从而使得紧接着发生的低幅值的讲话未被 检测到。一个解决办法是当检测到话音时改变低通滤波器的截止频率,也就是 在有声无声时采用了不同的方法估计噪声能量。 1 6 西北工业大学砸j 二论文第一二章音频重采样和混音的理论基础 所有的静音压缩方案都要考虑如何保留微弱音索如摩擦音、辅音,它们的短 时能量都相对较低,但这些微弱音素的存在对语音语义的完整性是很重要的,所 以在短时平均能量判断之外还应该结合过零率或周期性检测的判别【5 1 。 2 4 本章小结 k a is e rw in d o w 低通滤波重采样方法对于任意时刻有限带宽插值及平稳改变 采样率是非常方便的,同时也是非常有吸引力的实现方式。对于栉,位的滤波系数, 存储在滤波查找表中的脉冲响应样本数,应当与脉冲响应的零值点的个数的 2 “胆倍相当,并且在脉冲响应样本之间插入的样本个数为,l ,2 。一个简单的按 照上述规则的重采样设计主要在于低通滤波设计而不是量化影响。 混音理论相对比较简单,但是随着需要混音的语言信号路数的增加,容易 出现溢出问题而导致失真。静音检测算法也是混音理论中的一个重要部分。 总而言之,以上所述的重采样、混音理论是本文解决方案中两大关键算法 实现的理论基础。 1 7 西北工业人学硕j :论文第三章嵌入式音频系统的总体设计 第三章嵌入式音频系统的总体设计 本章主要阐述系统的总体设计,包括系统框架、设计目标及其工作模式等。 与此同时对传统解决方案与现行解决方案进行比较分析。 3 1 传统方案 i服务进程 i j i 重采样 l l混音 j 播敞、控制 用户空闻 i 昔遇a c 9 7 音频3 e 动 j 音频_ i 曼备 棱态空间 3 1 传统的音频处理系统框架图 如图3 - 1 所示,传统解决方案音频处理工作在用户空间进行。首先启动一个 服务进程,该进程负责多路音频流的连接、管理,并且缓存各路音频流数据;接 着通过重采样动态库对音频流进行重采样,重采样为统一格式的音频流;然后把 重采样后的多路音频数据流进行混音工作;最后把混音后的音频流经播放、控制 模块送到音频设备驱动程序进行播放。 音频流的重采样、混音和播放控制都在用户空间运行,这样对用户屏蔽了核 态空阳j 的音频驱动,用户只需要关心服务进程接口以及与服务进程的交互控制。 1 8 西北t 业大学碗士论文 第三章嵌入式音频系统的总体设计 3 2 现行方案 幽3 - 2 现行方案系统框架图 如图3 2 所示,现行解决方案工作在核态空间,把音频处理中的重采样、 混音工作都整合到音频驱动程序内部实现,对传统音频驱动进行了扩展,并 且增加了一些功能,如特权通道、软音量调节等。这样来,就完全在核态 空问完成了重采样、混音处理,有利于与驱动程序d m a 引擎紧密结合协调工 作,有利于系统性能的优化。从用户角度来看,对用户屏蔽了复杂的音频数 据处理工作,方便了用户使用。 3 3 两种方案的比较 从以下几个方面进行比较分析: 1 ) 开发难度 用户态模式下有许多开发、调试工具可利用,开发速度快,而且调试方 便,并且二次开发和维护都比较方便。核态模式下调试程序相对较难, 内核空间资源有限,库支持少,许多方面限制较多。 2 ) 可扩展性 用户态模式下可扩展性好,有各种库资源可以选择,如有许多重采样库 可供比较选择,并且库的更新速度快。程序的模块性也更好。核态模式 下受本身内核空间的限制,可扩展性相对较差。 1 9 西北工业人学硕士论文第三章嵌入式音频系统的总体设计 3 ) 易用性 用户态模式下,用户需要关心音频流的处理,如重采样、混音等工作。 在核态模式下的驱动程序对用户的屏蔽性较好,用户只需按普通的设备 打开使用,用户不必关心内部细节,易用性好。 4 ) 性能效率 用户态模式下,结构上多了一层中问层,增加了系统的丌销。用户空间 运行程序容易受到系统环境和其它应用程序的影响,稳定性和实时性不 能得到保证。核态模式下,驱动程序的运行不易受外部的影响,中断响 应快速稳定,优化效率高。 基于以上对比分析,虽然传统的用户态模式下设计方案有开发简便、可扩展 性好及比较容易移植等优点,但是它的系统开销大,性能效率与核态模式下相比 逊色很多。本文研究的出发点就是,在嵌入式l i n u x 环境下如何通过软件技术 来提高音频质量。正因为如此,系统的性能和效率就成为了系统设计的关键点。 在本文实际设计方案中,通过核态模式下重新设计和实现音频驱动程序来达 到提高系统整体性能和效率的目标。 3 4 系统的设计目标 l i n u x 环境下嵌入式终端音频解决方案,是本文的研究内容。基于嵌入式系 统的自身特点,系统的设计目标是如何在耗费最少的系统资源条件下,最大化 系统整体性能和效率,实时、高质地实现音频的重采样、混音、同步播放工 作,能同时支持1 8 路网络音频流的同步播放。整个系统主要有三大功能模块
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中考化学试题分类汇编:科学探究题(第2期)解析版
- 1 丰富的数据世界教学设计-2025-2026学年初中数学北师大版2024七年级上册-北师大版2024
- 1秋天 教学设计-2024-2025学年语文一年级上册(统编版)
- 2025年天津市河西区中考一模物理试题(解析版)
- 小学语文一遍过单元测试卷(3篇)
- 第一章有理数-单元测试卷-2025-2026学年人教版数学
- 2025年全国汽车驾驶员(技师)职业技能考试题库(含答案)
- 本册综合教学设计-2025-2026学年中职语文拓展模块语文版
- 2025年高考数学二模试题分类汇编(辽宁专用)立体几何与空间向量(解析版)
- 2025年食品企业生产工安全生产知识考试试题及答案
- 婴儿游泳馆卫生管理制度
- 规划违建考试试题及答案
- TSG Q7015-2016起重机械定期检验规则
- 上门服务项目创业计划书
- 药品效期和近效期药品管理
- 《诊断学意识障碍》课件
- 培训主管技能展示
- 《环境设计工程计量与计价》课件-1.什么是装饰工程预算
- 2024年美团电商合作商户合同版
- 砒霜治疗白血病
- 艺术家品牌影响力构建-洞察分析
评论
0/150
提交评论