您的位置:首页 > 移动开发 > IOS开发

IOS音频录制相关笔记

2014-09-09 16:45 387 查看
理论介绍:

pcm脉冲编码调制是pulse code modulation的缩写,(Linear Pulse Code Modulation)是一种不经过压缩的录音技术,以连续线性取样的方式将模拟音频信号转换成数字信号,以达到高保真重播之目的.目前市面上的音乐CD都是采用LPCM的编码技术,CD的采样规格为16bit/44.1KHz。

LPCM也很早就被定义在DVD播放机的标准内,为了和CD有所区别,DVD的的采样规格为16bit/48KHz,随着技术的发展,DVD的的采样规格更提升到24bit/96KHz,以达到更高的播放品质,用96KHz/24bit方式记录的音频信号所能达到的频率上限是96÷2=
48KHz,而它的最大动态范围将可以达到24×6=144dB。从指标上就可以看出:它的声音比CD要好得多。为什么是*6

pcm编码的最大的优点就是音质好,最大的缺点就是体数据量大,因此在记录容量日渐捉襟见肘的DVD上是很难安置下Linear PCM5.1音轨的,但凡事有例外,Panasonic出品的《名曲物语》第1~12集DVD均采用Linear
PCM音轨录制,它们的音质表现几乎被每一本DVD指南都评为最高的五星级,这套DVD只在日本国内发行,因此市面上很难买得到。

蓝光DVD有着记录容量大的先天优势,因此采用效果优异的Linear PCM音轨也就顺理成章了,据说PS3的软件最高可以支持到24bit/176.4KHz的多声道Linear
PCM音轨输出,这是一个什么样的概念呢?录音室麦克风的信噪比最高可达到150db左右,而24bit/176.4KHz的Linear
PCM动态范围已经达到了170db,这就意味着它已经超越了人类目前所能做到最高的录音动态范围!

audio File Stream Services关键数据结构 

struct AudioStreamBasicDescription {
Float64 mSampleRate;	//每秒播放的frame数目;
UInt32  mFormatID;	//audio file 数据标志非零
UInt32  mFormatFlags;//
UInt32  mBytesPerPacket;	//一个packet中的字节数目,如果时可变的packet则为0;(format.mBytesPerFrame * format.mFramesPerPacket)
UInt32  mFramesPerPacket;	//packet中包含的frame数目,无压缩时为1,可变比特率时,一个达点儿的固定值例如在ACC中1024。
UInt32  mBytesPerFrame;	//(format.mBitsPerChannel /  * format.mChannelsPerFrame);
UInt32  mChannelsPerFrame;	//frame中包含的channel数目// 1:单声道;2:立体声
UInt32  mBitsPerChannel;	//16,语音每采样点占用位数 
UInt32  mReserved;	//保留
};
一般如果不特意设置,字节序--LinerPCM就是小尾端的(C/C++都是采用小尾端的),JAVA和网络传输是采用大尾端的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: