1. 前言
数字音频是把模拟的、连续的声音信号通过采样、量化和编码过程转变成数字信号,然后再进行记录、传输及其他加工处理。重放时再将这些记录的数字音频信号还原为模拟信号,获得连续的声音。采用数字音频技术可以避免模拟信号容易受噪声和干扰的影响,可以扩大音频的动态范围,可以利用计算机 进行数据处理,可以不失真地远距离传输,可以与图像、视频等其他媒体信息进行多路复用,以实现多媒体化和网络化。
在了解音频编解码原理之前我们需要了解以下几个基础概念。
1)比特率:表示经过编码(压缩)后的音频数据每秒钟需要用多少个比特来表示,单位常为kbps。
2)响度和强度:声音的主观属性响度表示的是一个声音听来有多响的程度。响度主要随声音的强度而变化,但也受频率的影响。总的说,中频纯音听来比低频和高频纯音响一些。
3)采样和采样率:采样是把连续的时间信号,变成离散的数字信号。采样率是指每秒钟采集多少个样本。
(a)连续的时间信号 (b)离散的数字信号
4)Nyquist采样定律:采样率大于或等于连续信号最高频率分量的2倍时,采样信号可以用来完美重构原始连续信号。
2. 音频编码
采样、量化后的数据还不是数字信号,需要把它转化成数字脉冲,这个过程称为编码,如图1所示。音频编码方法归纳起来有3类:波形编码 、参数编码 、混合编码器 。
波形编码,它尽量保持输入波形不变,即重建的语音信号基本与原始语音信号相同,压缩比较大,但音质还原较好。常见有 PCM(脉冲调制编码),DPCM,ADPCM。
参数编码,它要求重建的语音信号听起来与输入语音一样,但波形可以不同,它是以语音信号产生的数学模型为基础的一种编码方式,压缩比较高。常见有 LPC。
混合编码,是综合了波形编码的高音质和参数编码的高压缩率的优点的一种混合编码方式,它是目前低码率编码的方向。常见有MPLPC。
PCM格式的数据流怎么表示的呢?以8-bit有符号为例:
每个分割符”|”分割字节。因为是8-bit有符号表示的采样数据,所以采样的范围为-128~128。如果我们有一个PCM文件,在代码中,我们可以通过图3方式来加载读取这样的PCM数据流(Stream)。
PCM数据是最原始的音频数据完全无损,所以PCM数据虽然音质优秀但体积庞大。为了解决这个问题先后诞生了一系列的音频格式,这些音频格式运用不同的方法对音频数据进行压缩,其中有无损压缩(ALAC、APE、FLAC)和有损压缩(MP3、AAC、OGG、WMA)两种。下面我们了解一下现在一些常见的音频格式。
1)WAV:是微软公司开发的一种声音文件格式,也叫波形声音文件,是最早的数字音频格式,被Windows平台及其应用程序广泛支持,压缩率低。
2)MP3:全称是MPEG-1 Audio Layer 3,它在1992年合并至MPEG规范中。MP3能够以高音质、低采样率对数字音频文件进行压缩。应用最普遍。
3)WMA :(Windows Media Audio)是微软在互联网音频、视频领域的力作。WMA格式是以减少数据流量但保持音质的方法来达到更高的压缩率目的,其压缩率一般可以达到1:18。此外,WMA还可以通过DRM(Digital Rights Management)保护版权。
4)AAC:实际上是高级音频编码的缩写。AAC是由Fraunhofer IIS-A、杜比和AT&T共同开发的一种音频格式,它是MPEG-2规范的一部分。AAC所采用的运算法则与MP3的运算法则有所不同,AAC通过结合其他的功能 来提高编码效率。AAC的音频算法在压缩能力上远远超过了以前的一些压缩算法(比如MP3等)。它还同时支持多达48个音轨、15个低频音轨、更多种采样率和比特率、多种语言的兼容能力、更高的解码效率。总之,AAC可以在比MP3文件缩小30%的前提下提供更好的音质。
3. PCM转码AAC
那么如何实现把PCM编码成AAC呢。通过FFMPEG我们可以比较轻松的实现。整体流程图如图4所示。
参考文献:
[1]刘华平《即时通讯音视频开发》
[2]鲍长春《数字语音编码原理》
作者:徐涵
版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。