aoi学院

Aisaka's Blog, School of Aoi, Aisaka University

Android-音视频-音频开发-(一)音频原理

采样率(samplerate)

采样就是把模拟信号数字化的过程,采样频率越高,记录这一段音频信号所用的数据量越大,同时音频质量也就越高

数字图像处理课程中,根据奈奎斯特理论,采样频率只要不低于音频信号最高频率的两倍,就可以无损失地还原原始的声音。

通常人耳能听到频率范围大约在20Hz~20kHz之间的声音,为了保证声音不失真,采样频率应在40kHz以上。常用的音频采样频率有:8kHz、11.025kHz、22.05kHz、16kHz、37.8kHz、44.1kHz48kHz、96kHz、192kHz等。


比特率(bit per second)

表示经过编码(压缩)后的音频数据每秒钟需要用多少个比特来表示,单位常为kbps。


量化精度(位宽)

每一个采样点,都需要用一个数值来表示大小,这个数值的数据类型大小可以是:4bit、8bit、16bit、24bit、32bit等等,位数越多,表示得就越精细,声音质量自然就越好,数据量也会成倍增大。

常见的位宽是:8bit 、 16bit(一般测量量化精度,90dB动态范围,常见配合44.1kHz或48kHz,CD)、24bit(精密测量量化精度,144dB动态范围,常见配合48kHz或192kHz,DVD或蓝光)


声道数(channels)

音频的采集和播放是可以叠加的,因此可以同时从多个音频源采集声音,并分别输出到不同的扬声器,故声道数一般表示声音录制时的音源数量或回放时相应的扬声器数量。

常见:单声道(Mono)、双声道(Stereo)、2.1声道(在双声道基础上加入一个低音声道)、5.1声道(正面、左前、右前、左环绕、右环绕、低音,最早应用于早期的电影院)、7.1声道(在5.1声道的基础上,把左右环绕拆分为左右环绕以及左右后置,主要应用于BD以及现代的电影院)


音频帧(frame)

视频每一帧就是一张图像,而音频数据是流式的,本身没有明确的一帧帧的概念。在实际的应用中,为了音频算法处理/传输的方便,一般约定俗成取2.5ms~60ms为单位的数据量为一帧音频,这个时间被称之为“采样时间”。

假设某通道的音频信号是采样率为8kHz,位宽为16bit,20ms一帧,双通道,则一帧音频数据的大小为:int size = 8000 x 16bit x 0.02s x 2 = 5120 bit = 640 byte


音频编码

模拟的音频信号转换为数字信号需要经过采样和量化,量化的过程被称之为编码,根据不同的量化策略,产生了许多不同的编码方式,常见的编码方式有:波形编码(PCM等)、参数编码(LPC)、混合编码

编码技术算法编码标准码率(kbps)应用领域
波形编码PCMG.71164PSTN、ISDN
ADPCMG.72132-
SB-ADPCMG.72164/56/48-
参数编码LPC-2.4保密语音
混合编码CELPC-4.8-
VSELPCGIA8移动通信、语音信箱
RPE-LTPGSM13.2-
LD-CELPG.72816ISDN
MPEMPE128CD

音频压缩

音频压缩技术指的是对原始数字音频信号流(PCM编码)运用适当的数字信号处理技术,在不损失有用信息量,或所引入损失可忽略的条件下,降低(压缩)其码率,也称为压缩编码。

音频数据压缩最基本的原理:因为有冗余信息,所以可以压缩。

  1. 频谱掩蔽效应:人耳所能察觉的声音信号的频率范围为20Hz~20KHz,在这个频率范围以外的音频信号属于冗余信号

  2. 时域掩蔽效应:当强音信号和弱音信号同时出现时,弱信号会听不到,因此,弱音信号也属于冗余信号

个人理解:

压缩比:aac > ogg > mp3(wma) > ape > flac > wav (128kbps WMA = 192kbps MP3)

音质:wav = flac = ape > aac > ogg > mp3 > wma

综合:aac > ogg > flac > ape > mp3 > wav = wma

128kbps以下选AAC,128~192kbps选WMA,192kbps以上选MP3。

压缩方式压缩格式最高比特率压缩率描述
有损压缩AAC448kbps1:18在高比特率下音质仅次于MPC,在高比特率和低比特率下表象都很不错,目前最好的有损格式之一,编码速度慢。有多种编码,faac,nero为常见,比特率最高448kbps。硬件支持方面,高级mp3和现在手机普遍支持。
MPC--低比特率下表现一般,不及Mp3Pro编码的MP3和OGG,高比特率下音质最好,编码速度快。
OGG500kbps1:15低比特率下音质最好,支持多声道,编码速度稍慢。完全免费、开放和没有专利限制。目前最好的有损格式之一,手机装软件部分可以支持。
MP3320kbps1:10~12分为:固定码率(CBR)、平均码率(ABR)和动态码率(VBR)。在低比特率下音质次于OGG,高频部分一刀切是它的缺点。
MP3pro-1:18~20保持相同的音质下同样可以把声音文件的文件量压缩到原有MP3格式的一半大小。扩展名仍旧是.mp3,向前向后兼容,但专利费太高导致没有流行。
WMA192kbps1:18微软力推,减少数据流量但保持音质,可以通过DRM方案加入防止拷贝,或者加入限制播放时间和播放次数,甚至是播放机器的限制,可有力地防止盗版。128kbps为wma最优压缩比,小于128kbps时比mp3好。
VQF-1:18YAMAHA和NTT共同开发的一种音频压缩技术,减少数据流量但保持音质,相同情况下压缩后VQF的文件体积比MP3小30%~50%,音质极佳,接近CD音质(16位44.1kHz立体声)。但VQF未公开技术标准,宣传不力,这种格式难有用武之地,未能流行。
ASF--高级串流格式,Microsoft 为 Windows 98 所开发的串流多媒体文件格式。特别适合在IP网上传输。
AIF/AIFF--苹果公司开发的一种声音文件格式,和WAV非常相像,支持MAC平台,支持16位44.1kHz立体声。
AU--SUN为UNIX系统开发的AU压缩声音文件格式,和WAV非常相像,只支持8位的声音,是互连网上常用到的声音文件格式,多由SUN工作站创建。
无损压缩FLAC约1000kbps约58.70%编码速度快,压缩率在四个中最差,平台支持很好,兼容性好。解码速度快,只需进行整数运算即可完成整个解码过程,对CPU的运算能力要求很低,所以普通的随身听,都可以轻松实现实时解码。
PAC--稍慢的编码速度,压缩率排第三,平台支持良好。
APE约1000kbps约55.50%编码速度最快、最好的压缩率,平台支持一般。版权专用格式。
WAV--编码速度很快快,压缩率在四个中排第二,仅支持Windows平台。WAV格式是以RIFF格式为标准的,采用44.1kHz的采样频率,16位量化位数,因此WAV的音质与CD相差无几,体积非常大。
CDA1411.2kbps-CD音轨文件。标准CD格式为44.1K的采样,速率88K/秒,16位量化位数,可以说是近似无损的。

Android支持的音频格式和版本

格式/编解码器编码器解码器详细信息支持的文件类型/容器格式
AAC LC--支持单声道/立体声/5.0/5.1 内容,标准采样率为 8-48 kHz。• 3GPP (.3gp) • MPEG-4(.mp4、.m4a) • ADTS 原始 AAC(.aac、在 Android 3.1 及更高版本中解码、在 Android 4.0 及更高版本中编码、不支持 ADIF) • MPEG-TS(.ts、不可查找、Android 3.0 及更高版本)
HE-AACv1 (AAC+)Android 4.1 及更高版本-
HE-AACv2(增强型 AAC+)--支持立体声/5.0/5.1 内容,标准采样率为 8-48 kHz。
AAC ELD(增强型低延迟 AAC)Android 4.1 及更高版本Android 4.1 及更高版本支持单声道/立体声内容,标准采样率为 16-48 kHz
AMR-NB--4.75-12.2 kbps,采样率为 8 kHz3GPP (.3gp)
AMR-WB--有 9 个比特率(介于 6.60-23.85 kbit/s 之间)可供选择,采样率为 16 kHz3GPP (.3gp)
FLACAndroid 4.1 及更高版本Android 3.1 及更高版本单声道/立体声(非多声道)。采样率最高可达 48 kHz(但对于输出为 44.1 kHz 的设备,则建议最高不超过 44.1 kHz,因为 48-44.1 kHz 的降采样器不包含低通滤波器)。建议使用 16 位;对于 24 位,不会应用任何抖动。仅支持 FLAC (.flac)
GSM--Android 支持在电话设备上进行 GSM 解码GSM (.gsm)
MIDI--MIDI 类型 0 和 1。DLS 版本 1 和 2。XMF 和 Mobile XMF。支持铃声格式 RTTTL/RTX、OTA 和 iMelody• 类型 0 和 1(.mid、.xmf、.mxmf) • RTTTL/RTX(.rtttl、.rtx) • OTA (.ota) • iMelody (.imy)
MP3--单声道/立体声 8-320 Kbps 恒定 (CBR) 或可变比特率 (VBR)MP3 (.mp3)
Opus-Android 5.0 及更高版本-Matroska (.mkv)
PCM/WAVEAndroid 4.1 及更高版本-8 位和 16 位线性 PCM(比特率最高可达到硬件上限)。以 8000、16000 和 44100 Hz 录制原始 PCM 所需的采样率。WAVE (.wav)
Vorbis---• Ogg (.ogg) • Matroska(.mkv、Android 4.0 及更高版本)