理论介绍:
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和网络传输是采用大尾端的。