>
首页 » 业界动态 » 数字音频压缩编码及其播放器的实现

数字音频压缩编码及其播放器的实现

作者:吴丽娜  时间:2006-09-25 00:36  来源:www.edires.net
摘 要:在讨论语音编码技术的基础上,分析了几类语音编码技术的优缺点;重点研究了基于感知的数字音频压缩编码方法;介绍了MPEG标准。并在此基础上设计制作了一个主流格式的音频播放器,测试结果表明其实用、有效。

关键词:语音编码;感知编码;音频播放器

引 言

任何人(whoever)在任何时间(whenever) 、任何地点(wherever)与任何人(whomever)进行任何方式(whatever)的通信,即个人通信,是人类通信的最高理想。在未来高度发达的通信系统中,语音压缩编码技术的应用具有重要意义。它能在保证高质量语音的前提下,大幅度降低语音信号的数据传输率。这对于提高信道利用率,降低设备成本都有重要作用。

语音编码的基础包括信息论,而从信息论的角度看,语音编码属于信源编码的范畴,信源编码的目标是高质量、低码率和解码后语音的高清晰度。语音压缩编码技术也由此引入。虽然对语音信号的模拟传输持续了近一个世纪,但它仍然不可避免地逐渐被数字系统所取代。数字传输方式使得语音的传输变得多样化、追求低成本变得可能、保密的要求得到满足,同时频率利用更加有效。

语音编码的基础

自20世纪30 年代提出的脉冲编码调制(PCM)原理和声码器(Vocoder)概念开始,到目前已有很多种编码方法被提出,归纳起来可以分为如下3类:

(1) 基于语音数据的统计特性进行编码,其典型技术是波形编码。它常常利用语音信号的统计特性和听觉特性对语音信号进行量化,以达到压缩编码的目的,其目标是使重建语音波形保持原波形的形状。波形编码适应性强、音频质量好,但压缩比不大,因而数据率较高。

(2) 基于语音的声学参数,进行参数编码,可进一步降低数据率。它是对语音特征的参数进行编码,其目标是使重建音频保持原音频的特性,优点是数据率低,但还原信号的质量较差、清晰度低、容易受噪声干扰。

(3) 基于人的听觉特性进行编码:从人的听觉系统出发,利用掩蔽效应,设计心理声学模型,从而实现更高效率的数字音频压缩。其中以MPEG音频编码和DolbyAC-3最有影响。

基于感知的数字音频压缩编码

感知编码原理
在过去10年中,数字音频已经基本代替了模拟音频,并在互联网、无线通信、多媒体计算机上得到广泛应用。但这些应用都面临如下3个问题:传输带宽资源紧缺、传输代价昂贵及存储容量有限。低码率高质量的数字音频压缩成为迫切需要解决的问题,而这一问题的解决要归功于基于感知的CD音质数字音频的透明编码。数字音频编码是一种为了高效传输和存储数字化宽带音频而对它们进行紧缩数字表示的处理方法。它的主要目标是用尽可能低的编码速率压缩音频信号的同时,又能保证重建的音频信号质量几乎和原始信号相同。实践也证明,基于感知的音频编码解决了人们对数字音频的传输需求和有限的网络传输带宽的矛盾。图1所示的是感知编码器框图。可以看出,感知编码具有如下几个特点:

图1 感知编码器框图

(1) 无损编码和有损编码的有机结合。有损编码去除音频信号中的感知相关度和统计冗余度。
(2) 多个信号处理模型的有机结合。大多数数字音频编码系统采用感知编码原理。所谓感知,就是指利用人耳的听觉特性,保留音频信号中人耳能够听到的,去掉听不到的成分。一般的感知编码要用到5个基本原理:绝对听觉门限、临界带宽、同时掩蔽、非同时掩蔽和感知熵。

数字音频编码技术
感知编码根据压缩技术的不同又可分为子带压缩技术和变换压缩技术。子带压缩技术是以子带编码理论为基础的编码方法。其基本思想是将信号分解为若干子频带内的分量之和,然后对各子带分量根据其分布特性采取不同的压缩策略以降低码率。一般来讲,子带编码的复杂度要略低于变换编码,编码延时也相对较短。典型代表有著名的MPEG-1层Ⅰ和层Ⅱ等。变换压缩技术则是对一段音频数据进行线性变换,对所获得的变换域参数进行量化、传输,通常使用的变换有DFT、DCT和MDCT等。根据信号的短时功率谱对变换域参数进行合理的动态比特分配,可以使音频质量获得显著改善,而相应付出的代价则是计算复杂度的提高。具有代表性的变换压缩编码技术有DolbyAC-2、AT&T的ASPEC (Audio Spectral Percep tual Entropy Coding)、PAC(Perceptual Audio Coder)等。

MPEG音频编码技术
经过10多年的发展,国际标准化组织、国际电工委员会所属WG11工作组制定推进了MPEG标准。MPEG定义了低比特率视频流和音频流的描述语法,并规范了解码器的操作。MPEG系列中的每个标准都是建立在前面标准的基础之上的。MPEG-1和MPEG-2是目前成熟的广泛应用的标准,而MPEG-4 是作为一个开放的多媒体标准出现在市场上的。后继标准MPEG-7及以后的MPEG-21标准重点已经不在压缩方面,MPEG-7注重于多媒体数据基于内容的描述,用来帮助运营者管理日益丰富的多媒体信息,而MPEG-21则更侧重于与多媒体信息内容的使用相关的诸多方面。MPEG系列标准对多媒体以及相关产业产生重大的影响,并将极大的推动多媒体通信领域的发展。总体来说,MPEG在3方面优于其他压缩/解压缩方案。首先,MPEG具有很好的兼容性; 其次,MPEG比其他算法提供更高的压缩比,最高可达200∶1。更重要的是MPEG在提供高压缩比的同时,对数据的损失很小。

数字音频播放器的设计与实现

基本功能
基于前文中所了解到的语音编码技术的原理,通过VisualC++ 6.0的可视化编程,制作了一个音频播放器,可以播放WAVE、AVI、MIDI、CD和MP3 5种格式的音频文件,如图2所示。

图2 播放器简图

底排的5个按钮可以对所播放的音频格式进行限制,当选中时可以播放不同格式的音频文件。此外,对本播放器进行一些特色处理:
(1) 制作radio按钮,以对各种音频格式进行选择性播放,达到区分和比较效果的目的。
(2) 增添AVI按钮,AVI和WAVE在文件结构上是非常相似的,不过AVI多了1个视频流。
(3) 添加1个基于Button类的按钮类CFXButton,制作出特殊的按钮。
(4) 用Photoshop做1个播放器的界面。

程序设计
本程序调用了一个控件MicrosoftMultimediaControl,version 6. 0,由此引入了2个已封装好的类, MCI( The Media Control Interface ) 和PICTURE;通过MCI来播放各种音频文件。MCI类是通过GetDeviceType函数来控制所播放的文件的类型,其函数原型如下。

CString Cmci:: GetDeviceType ( )
{CString result;
InvokeHelper ( 0x15, D ISPATCH _ PROPERTY2
GET,VT_BSTR, ( void3 ) &result,NULL) ;
return result;
}

在对话框类中通过OnOpen( )函数来设定所打开文件的类型,代码如下。
播放WAVE文件:
this - >m _Multimedia. SetDeviceType ( "WaveAudio" ) ;
播放AV I文件:
this - >m_Multimedia. SetDeviceType ( "AviVideo" ) ;
播放MIDI文件:
this - > m _Multimedia. SetDeviceType ( " Sequencer" );
播放CD文件:
this - > m _Multimedia1. SetDeviceType ( "CDAudio" );

MCI类通过mciSendCommand( )或mciSendString( )来实现控制MIDI文件播放的功能,其中mciSendCommand( )函数原型如下:
DWORD mciSendCommand (UN IT wDevice ID,UN IT wMessage, DWORD dwParam1, DWORD dwParam2) ;

各个参数说明如下:
wDevice ID:接受消息的设备ID;
wMessage:MCI命令消息;
dwParam1:命令的标志位;
dwParam2:所使用参数块的指针;

测试与分析
按照上述功能,进行实际的播放,对于不同格式的文件分别试听,比较不同格式的音频文件听觉上的效果。

CD
CDA格式就是唱片采用的格式,又叫“红皮书”格式,记录的是波形流,绝对的纯正、HIFI。音乐CD的回放采样字节都是16位,它采用了PCM编码,而PCM编码的最大优点就是音质好。但其缺点是,无法编辑,文件太大。一张光盘的容量只能容纳72 min的音乐信息。

MIDI
MIDI技术本来不是为电脑发明的,该技术最初应用在电子乐器上用来记录乐手的弹奏,以便以后重播。随着在电脑里面引入了支持MIDI合成的声音卡之后,MIDI才正式地成为了一种音频格式。MIDI的内容除了乐谱之外还记录了每个音符的弹奏方法,所以MIDI文件播放起来效果参差不齐。作为音乐工业的数据通信标准,MIDI可谓是一种非常专业的语言,它能指挥各音乐设备的运转,而且具有统一的标准格式。由于标准化,MIDI文件的长度非常小,一首歌一般就几十k字节,但MIDI必须依赖于回放设备,此外,MIDI另一个缺点就是不能记录人声等声音。它只能将人声作为一种乐器储存在音色库中,总之不能令乐器唱歌、说话。

WAVE
该格式记录了声音的波形,故只要采样率高、采样字节长、机器速度快、利用该格式记录的声音文件能够和原声基本一致。从理论上说,采样率达44 kHz,采样字节长度达16位的音质已经能与CD唱片相当。它可以不对数据进行压缩,制作出来的声音质量却可以达到专业级水平。WAVE是一种文件格式,符合PIFF(ResourceInterchange File Format)规范。所有的WAVE都有一个文件头,这个文件头包含音频流的编码参数。WAVE对音频流的编码没有硬性规定,几乎所有支持ACM (Audio Comp ressionManager)规范的编码都可以为WAVE的音频流进行编码。在Windows平台下,基于PCM编码的WAVE是被支持得最好的音频格式,所有音频软件都能完美支持。由于它本身可以达到较高的音质的要求,因而WAVE也是音乐编辑创作的首选格式,适合保存音乐素材。同时它也被作为一种中介的格式,常常使用在其他编码的相互转换之中,例如MP3 转换成WMAE。WAVE的唯一缺点就是文件太大。因此,虽然WAVE文件可以存放压缩音频甚至MP3,但由于它本身的结构注定了它的用途是存放音频数据并用作进一步的处理,而不是像MP3那样用于聆听。目前所有的音频播放软件和编辑软件都支持这一格式,并将该格式作为默认文件保存格式之一。

MP3
MP3就是应用于MPEG-1的一项音频压缩技术标准,英文全称是MPEG-1 Audio LayerⅢ。它采用MPEG中的第3 层音频压缩模式,MPEG音频文件是MPEG-1 标准中的声音部分,它根据压缩质量和编码复杂程度划分为3层,即LayerⅠ、LayerⅡ和LayerⅢ, 且分别对应MP1、MP2、MP3这3种声音文件,并根据不同的用途,使用不同层次的编码。MPEG音频编码的层次越高,编码器越复杂,压缩率也越高,MP1和MP2的压缩率分别为4 ∶1和(6 ∶1) ~ (8 ∶1) ,而MP3的压缩率则高达(10 ∶1) ~ (12 ∶1) 。因此,MP3是第一个实用的有损音频压缩编码,MP3之所以能够达到如此高的压缩比例,同时又能保持相当不错的音质是因为利用了知觉音频编码技术,即编码时先对音频文件进行频谱分析,然后用过滤器滤掉噪音电平,接着通过量化的方式将剩下的每一位打散排列,最后形成具有较高压缩比的MP3文件,并使压缩后的文件在回放时能够达到比较接近原音源的声音效果,也就是利用了人耳的特性,削减音乐中人耳听不到的成分,同时尝试尽可能地维持原来的声音质量。

小结与展望

当研究活动的前沿转向2.4 kb/s速率以下,语音编码领域也不断引入新的技术,预计这些技术将进一步挖掘人耳听觉掩蔽等感知机理,以更类似于人耳的特性作语音的分析与合成,使语音编码系统更适应于人类听觉器官的处理方式,从而进一步提高合成语音的主观质量,在低速率语音编码的研究上取得突破,当然这一切还决定于人的听觉机理的生理学基础研究以及自动的客观测试技术发展上的突破。

总之,今后的研究将会进一步提高语音编码器的语音质量、降低比特率;此外实时性的提高也有利于理论算法在实际中的应用。可见,未来语音编码技术的研究必然会创造出更加逼真、便捷的语音通信环境。

相关推荐

M5673D:Ali汽车音频播放器解决方案

M5673D  汽车  音频播放器  2009-10-14

新型声码器CMX638及其应用设计

CMX638  语音编码  CODEC  2009-07-06

基于TMS320C5416的G.729语音编解码算法的优化和实现

TMS320C5416  G.729  语音编码  2009-04-07

GSM系统语音编码器综述

GSM  语音编码  信号处理  2008-08-14

数字音频压缩编码及其播放器的实现

日立为汽车应用推出容量达50GB的专用硬盘

在线研讨会
焦点