一种mp3智能检错方法

文档序号:6773040阅读:321来源:国知局
专利名称:一种mp3智能检错方法
技术领域
本发明涉及一种MP3智能检错方法。
背景技术
随着音频压缩技术的日益发展和网络的普及,MP3 (MPEG Audio Layer III)格式 的音频文件以其压缩比高、音频失真度低和开放性好而得到越来越多的广泛应用。MP3文件 的一般结构如图2所示,由MP3标示3 (ID3tag)和帧数据组成,其中ID3 tag数据是可选的, MP3文件的音频数据都是靠一连串的数据帧通过解码后输出的。MP3文件由MP3帧组成,每 个MP3帧的播放时间是固定的,但MP3帧的数据大小不一定固定。通常MP3文件分两种恒 定比特率(CBR)和可变比特率(VBR),其中CBR是恒定帧大小的MP3文件,组成CBR的每一 个MP3帧数据大小是相同;VBR是变帧数据大小的MP3文件,组成VBR的每一个MP3帧的数 据大小不一定相同。MP3文件在解码过程中,如果碰到误将ID3tag识别为MP3帧数据或将有数据损坏 的MP3帧进行解码播放的话,将会带来一些错误数据帧的噪声,因此正确识别MP3帧是否有 错误是非常有用的,可以跳过音频数据损坏的帧,播放正常的MP3帧数据。MP3文件的MP3 帧包含帧头信息及帧音频数据,其中帧头信息如图3所示,由32bit数据+16bit错误检查 数据组成,其中16bit错误检查数据是可选的,当保护位为0时,则没有16bit错误检查数 据。专利ZL03103557. 4提出一种通过16bit错误检查来判断MP3帧是否正确,如图1 的流程图所示,但对于一些没有16bit错误检查位的MP3文件,也就是没有CRC保护机制位 的MP3文件其并没有进行检查,而直接将送给解码器解码输出音频数据,这样潜在将错误 帧数据传送给MP3解码装置,解码输出噪音数据。因此对于没有16bit错误检查位的MP3文 件,同样需要对其帧数据进行检错才能完全避免解码错误的MP3帧数据带来的噪音问题。

发明内容
本发明所要解决的技术问题是克服现有技术的不足,提出一种在播放MP3文件时 的智能检查帧错误的方法,该方法不依赖于16bit的错误校验位检查数据,而是根据MP3文 件本身数据帧的帧头信息进行比较判断来识别当前MP3帧是否正确,完全避免解码错误的 MP3帧数据带来的噪音问题。本发明所采用的技术方案是本发明智能检查帧错误的方法包括以下步骤(1)查找帧同步头;(2)解析当前帧的帧头信息,根据帧头信息计算出下一帧数据的位置并解析出所 述下一帧数据的帧头信息;(3)比较当前帧与所述下一帧数据的识别信息是否一致,所述识别信息为每一帧 的帧头信息中的固定信息;(4)若当前帧与所述下一帧数据的识别信息相同,则对当前帧数据进行MP3解码
3输出音频数据;否则返回步骤(1)。如图3所示,上述方法中所述帧头信息按顺序解析依次为帧同步头、标识、音频 层、保护位、比特率索引、采样率索引、填充位、私有位、模式、模式扩展、版权、原始、加强,其 中如果保护位的数值为1时,则还包括错误校验位。进一步,所述帧头信息中的固定信息包括帧同步头、标识、音频层、保护位和采样率。进一步,所述步骤(2)中计算下一帧数据的位置的步骤包括首先计算当前帧 的长度,当前帧地址加上当前帧的长度即为下一帧数据的位置,所述当前帧的长度为对 (144 X比特率/采样率)+填充位值所得的值进行取整。本发明的有益效果是由于MP3文件数据帧的帧头信息中的错误校验位是可选 的,即当保护位为0时,则没有错误检查数据;如果根据CRC保护机制进行检错解码输出的 话,此种情况会直接送给解码器解码输出音频数据,形成噪音数据,而本发明完全克服了此 缺陷,利用数据帧本身帧头信息对两帧数据进行对比,来判断当前数据帧的正确性,进而送 给解码器解码输出音频数据或者跳过,避免对错误的MP3帧数据解码所带来的噪音问题。


图1是背景技术中专利ZL03103557. 4所涉及方法的流程图;图2是MP3文件的结构图;图3是MP3的帧头信息及所占的比特数结构图;图4是本发明的MP3智能检错方法的流程图。
具体实施例方式请参考图4,图4是本发明的具体流程图。步骤401,查找帧同步头;MP3的帧同步头是由12个比特组成,这12个比特又可以 分成11个连续为1的比特+1个比特(MPEG版本)。MP3的帧同步头是按字节进行对齐的, 因此在查找过程中先比较MP3数据流中的第一个字节是否为OxFF,相等则比较下一个字节 是否有连续3个为1的比特,如果有则认为当前帧同步头找到,否则取走MP3数据流一个字 节后,继续查找当前字节为OxFF,且下一字节包含3个连续的比特1的同步头信息,直至找 到同步头为止或MP3文件结束退出解码。步骤402,解析当前帧头信息,按照图2的帧头信息表进行数据解析,按顺序解析 32bit数据,其中12bit为帧同步头,Ibit为标识,2bit为音频层,Ibit为保护位,4bit为比 特率索引,2bit为采样率索引,Ibit为填充位,Ibit为私有位,2bit为模式,2bit为模式扩 展,Ibit为版权,Ibit为原始,Ibit为加强,其中如果保护位的数值为1时,则取16bit的错 误校验位,否则帧头信息解析结束。步骤403,计算下一帧头位置,计算下一帧头位置需要获取当前帧的比特率,采样 率和步骤402获取的填充位值。根据步骤402解析到的帧头信息后,通过查比特率索引表 得到比特率,MP3帧比特率索引与比特率的对应关系如下表
权利要求
一种MP3智能检错方法,判断MP3的数据帧是否出错并对正确的数据帧进行MP3解码输出音频数据,其特征在于,包括以下步骤(1)查找帧同步头;(2)解析当前帧的帧头信息,根据帧头信息计算出下一帧数据的位置并解析出所述下一帧数据的帧头信息;(3)比较当前帧与所述下一帧数据的识别信息是否一致,所述识别信息为每一帧的帧头信息中的固定信息;(4)若当前帧与所述下一帧数据的识别信息相同,则对当前帧数据进行MP3解码输出音频数据;否则返回步骤(1)。
2.根据权利要求1所述的一种MP3智能检错方法,其特征在于,所述帧头信息中的固定 信息包括帧同步头、标识、音频层、保护位和采样率。
3.根据权利要求1所述的一种MP3智能检错方法,其特征在于,所述步骤⑵中计算下 一帧数据的位置的步骤包括首先计算当前帧的长度,当前帧地址加上当前帧的长度即为 下一帧数据的位置,所述当前帧的长度为对(144X比特率/采样率)+填充位值所得的值 进行取整。
全文摘要
本发明是提供一种MP3智能检错方法及相对应的装置,通过比较前后两帧MP3数据的详细帧头信息,智能判断当前帧是否出错,出错则跳过此帧,帧数据正确则进行MP3解码并输出音频数据。解码MP3的某一帧时,首先对当前帧头数据进行解析,获取帧头信息,通过帧头信息计算出下一帧头数据的位置,读取下一帧头数据后并进行帧头信息解析,通过对比这两帧的帧头识别信息来判断当前帧数据是否可以进行MP3解码。本发明可以有效地检测出MP3文件中错误的帧并跳过,实现MP3正确播放。
文档编号G11B20/18GK101986388SQ201010274640
公开日2011年3月16日 申请日期2010年9月6日 优先权日2010年9月6日
发明者符运河, 郑灼荣 申请人:建荣集成电路科技(珠海)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1