- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
mp3解码算法原理详解
MPEG1 Layer3 (MP3)解码算法原理详解
本文介绍了符合ISO/IEC 11172-3(MPEG 1 Audio codec Layer I, Layer II and Layer III audio specifications) 或 ISO/IEC 13818-3(BC Audio Codec)的音频编码原理。通过madlib解码库进行实现。
1、程序系统结构
?mp3解码流程图
其中同步及差错检查包括了头解码模块在主控模块开始运行后,主控模块将比特流的数据缓冲区交给同步及差错检查模块,此模块包含两个功能,即头信息解码及帧边信息解码,根据它们的信息进行尺度因子解码及哈夫曼解码,得出的结果经过逆量化,立体声解码,混淆缩减,IMDCT,频率反转,合成多相滤波这几个模块之后,得出左右声道的PCM码流,再由主控模块将其放入输出缓冲区输出到声音播放设备。
2、主控模块
主控模块的主要任务是操作输入输出缓冲区,调用其它各模块协同工作。其中,输入输出缓冲区均由DSP控制模块提供接口。输入缓冲区中放的数据为原始mp3压缩数据流,DSP控制模块每次给出大于最大可能帧长度的一块缓冲区,这块缓冲区与上次解帧完后的数据(必然小于一帧)连接在一起,构成新的缓冲区。输出缓冲区中将存放的数据为解码出来的PCM数据,代表了声音的振幅。它由一块固定长度的缓冲区构成,通过调用DSP控制模块的接口函数,得到头指针,在完成输出缓冲区的填充后,调用中断处理输出至I2S接口所连接的音频ADC芯片(立体声音频DAC和DirectDrive耳机放大器)输出模拟声音。
3、同步及差错检测
同步及差错检测模块主要用于找出数据帧在比特流中的位置,并对以此位置开始的帧头、CRC校验码及帧边信息进行解码,这些解码的结果用于后继的尺度因子解码模块和哈夫曼解码模块。Mpeg1 layer 3的流的主数据格式见下图:主数据的组织结构图
其中granule0和granule1表示在一帧里面的粒度组1和粒度组2,channel0和channel1表示在一个粒度组里面的两个通道,scalefactor为尺度因子quantized value为量化后的哈夫曼编码值,它分为big values大值区和count1 1值区CRC校验:表达式为X16+X15+X2+1
3.1 帧同步
帧同步目的在于找出帧头在比特流中的位置,ISO 1172-3规定,MPEG1 的帧头为12比特的“1111 1111 1111”,且相邻的两个帧头隔有等间距的字节数,这个字节数可由下式算出:N= 144 * 比特率 / 采样率如果这个式子的结果不是整数,那么就需要用到一个叫填充位的参数,表示间距为N +1。
3.2 头信息解码
头信息解码目的是找出这一帧的特征信息,如采样率,是否受保护,是否有填充位等。头信息见下图:帧头信息结构图
其长度为4 字节,数据结构如下:typedef struct? tagHeader {unsigned int sync : 11 ; / / 同步信息unsigned int version : 2 ; / / 版本unsigned int layer : 2 ; / / 层unsigned int error2protection : 1 ; / / CRC校正unsigned int bit2rate2index : 4 ; / / 位率索引unsigned int sample2rate2index : 2 ; / / 采样率索引unsigned int padding : 1 ; / / 空白字unsigned int extension : 1 ; / / 私有标志unsigned int channel2mode : 2 ; / / 立体声模式unsigned int mode extension : 2 ; / / 保留unsigned int copyright : 1 ; / / 版权标志unsigned int original : 1 ; / / 原始媒体unsigned int emphasis : 2 ; / / 强调方式} HEADER
3.3 帧边信息解码
帧边信息解码的主要目的在于找出解这帧的各个参数,包括主数据开始位置,尺度因子长度等。帧边信息如下图所示:帧边信息(side_infomation)表
3.4 main_data_begin
main_data_begin(主数据开始)是一个偏移值,指出主数据是在同步字之前多少个字节开始。需要注意的是,1.帧头不一定是一帧的开始,帧头CRC校验字和帧边信息在帧数据中是滑动的。2.这个数值忽略帧头和帧边信息的存在,如果main_dat
您可能关注的文档
- 2013继续教育.doc
- 下列不属于信息采集工具的是(.doc
- 计算机系统结构 第四章自考练习题答案.doc
- 会计工作中遇到的问题集锦.doc
- 2011年3月浙江省_信息技术高考试卷及答案word.doc
- 计算机复习题.doc
- 2014年6月电子商务师真题.doc
- (LTE)权威模拟题-(含答案).doc
- Medjmq管理会计综合习题及答案2.doc
- MapInfo插件MIPT使用说明和教程.doc
- 2025年网络剧精品化创作模式探讨及未来十年行业市场前景.docx
- 2025年细胞治疗产品冷链物流冷链物流成本效益分析报告.docx
- 2025-2026学年小学英语Starter Level剑桥国际少儿英语(第二版)教学设计合集.docx
- 2025-2026学年高中生物沪科版2020必修2 遗传与进化-沪科版2020教学设计合集.docx
- 跨境电商行业政策红利释放对2025年行业创新驱动的影响报告.docx
- 2025年跨境电商试验区跨境电商与跨境电商营销服务市场报告.docx
- 病人常见的心理问题与心理护理技巧.pptx
- 工业互联网平台设备预测性维护2025年技术革新与产业变革.docx
- 领导—成员交换关系差异对团队绩效的深度剖析与优化策略.docx
- 夜经济业态融合与创新空间规划研究报告2025.docx
最近下载
- 2025教资科目二教育知识与能力必背简答题汇总.pdf VIP
- 2025广东江门市江海区建设工程质量检测站合同制工作人员招聘5人笔试备考试题及答案解析.docx VIP
- 护理学科建设与发展 ppt.pptx
- 教资高中英语知识点总结.pdf VIP
- 智能供应链优化项目启动会PPT模板2025流程节点演示方案.pptx VIP
- 六年级数学《数与代数》教学设计.pdf VIP
- 居住空间设计(项目式)全套PPT课件.pptx
- 中联TC7530-16H塔吊使用说明书.pdf VIP
- 商务秘书实务案例.docx VIP
- 2025广东江门市江海区建设工程质量检测站合同制工作人员招聘5人笔试参考题库附答案解析.docx VIP
文档评论(0)