《Mp3编码解码原理和程序》.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE 37 第2章 Mp3解码算法流程 MP3的全称为MPEG1 Layer-3音频文件, MPEG音频文件是MPEG1标准中的声音部分,也叫MPEG音频层,它根据压缩质量和编码复杂程度划分为三层,即Layer1、Layer2、Layer3,且分别对应MP1、MP2、MP3这三种声音文件,并根据不同的用途,使用不同层次的编码。MPEG音频编码的层次越高,编码器越复杂,压缩率也越高,MP1和MP2的压缩率分别为4:1和6:1-8:1,而MP3的压缩率则高达10:1-12:1。一分钟CD音质的音乐,未经压缩需要10MB的存储空间,而经过MP3压缩编码后只有1MB左右。不过MP3对音频信号采用的是有损压缩方式,为了降低声音失真度,MP3采取了“心理声学模型”,即编码时先对音频文件进行频谱分析,然后再根据心理声学模型把谱线分成若干个阈值分区,并计算每个阈值分区的阈值,接着通过量化和熵编码对每个谱线进行编码,最后形成具有较高压缩比的MP3文件,并使压缩后的文件在回放时能够达到比较接近原音源的声音效果。 2.1. Mp3文件格式 MP3文件以一帧为一个编码单元,各帧编码数据是独立的。为了清晰而准确地描述mp3文件格式,下面采用位流语法描述,这种语法格式与c语言近似,易于理解,且描述清晰。其中粗体表示码流中的数据项,bslbf代表位串,即“Bit string, left bit first ”,uimsbf代表无符号整数,即”unsinged integer, most significant bit first”,数字表示该数据项所占的比特数。 2.1.1. Audio Sequence audio sequence() { while (true) { frame() } } 2.1.2. Audio Frame frame() { header() error_check() audio_data() ancillary_data() } 2.1.3. Header header() { syncword 12 bslbf ID 1 bslbf layer 2 bslbf protection_bit 1 bslbf bitrate_index 4 bslbf sampling_frequency 2 bslbf padding_bit 1 bslbf private_bit 1 bslbf mode 2 bslbf mode_extension 2 bslbf copyright 1 bslbf original/home 1 bslbf emphasis 2 bslbf } 2.1.4. Error Check error_check() { if (protection_bit==0) crc_check 16 rpchof } 2.1.5. Audio data , Layer III audio_data() { main_data_begin 9 uimsbf if(mode==single_channel) private_bits 5 bslbf else private_bits 3 bslbf for(ch=0;chnch;ch++) for(scfsi_band=0;scfsi_band4;scfsi_band++) scfsi[ch][scfsi_band] 1 bslbf for(gr=0;gr2;gr++) for(ch=0;chnch;ch++){ part2_3_length[gr][ch] 12 uimsbf big_values[gr][ch] 9 uimsbf global_gain[gr][ch] 8 uimsbf scalefac_compress[gr][ch] 4 bslbf window_switching_flag[gr][ch] 1 bslbf if(window_switching_flag[gr][ch]){ block_type[gr][ch] 2 bslbf mixed_block_flag[gr][ch] 1 uimsbf for(r

文档评论(0)

ghfa + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档