一种鲁棒性的音频解码方法

文档序号:7511411阅读:283来源:国知局

专利名称::一种鲁棒性的音频解码方法
技术领域
:本发明涉及数字音频领域,尤其涉及一种具有鲁棒性的音频解码方法。
背景技术
:现代多媒体技术不仅要满足在存储器和播放机上进行存储和播放的要求,而且还要能够在各种网络上进行传输。如在AVS音频标准中,解码算法就规定了两种码流格式用于存储的AASF(Avs—Audio—Storage—Format)格式和用于传输的AATF(Avs_Audio_Transport_Format)格式。本发明下文所涉及的均为AATF格式的码流。在AVS音频传输码流语法中,每一帧音频码流都可以作为随机访问接入点,每一帧都有自己的同步字信息和其它解码所需要的边信息。为了保证码流中的同步字信息不与音频码流信息相混淆,即保证一帧码流中不出现与同步字相同的码字,编码器在编码时在该码字上加入了两个冗余位来l吏它与同步字不相同。在AVS参考音频解码器中,解码算法采用了串行队列流水的方法,即由緩冲区Buf从外部接口将比特流读入緩沖区中,码流在Buf緩沖区中采用了先进先出队列的方法将比特流送给参考音频解码器进行解码,该过程如图1所示。由于码流在网络上传输时经常发生网络的丢包现象,造成码流的丟失,如丢失同步字或其它码字。由此以上所述的参考解码器存在两个显著的缺点其一是,该解码器要求读入緩冲区Buf的第一个码字必须是同步字,如果同步字丢失,则緩冲区Buf就不能读入码流,解码器就会中止解码,后果是不能实现随机访问接入;其二是,码流从外部接口进入Buf緩冲区是串行读取方法,一帧中任何一个码字的丢失都会造成解码器的中止,导致解码器的可靠性较差。
发明内容本发明的目的在于提供一种鲁棒性的音频解码方法。该方法可以使解码器实现对码流的随才几访问4矣入,同时在码流局部丢失的情况下,还可以保i正解码器继续进行解码,前一帧码流丢失不会影响到后一帧的解码,提高了解码器的稳定性和可靠性。本发明的目的是这样实现的一种鲁棒性的音频解码方法,用于对外部接口输出的码流进行解码,所述码流由码字组成,且其中间隔插有同步字,所述方法包括以下步骤步骤l、从外部接口读入码字,判读所读码字是否为同步字;步骤2、将读到的同步字和下一个同步字之间的码流读入緩冲区;步骤3、在緩冲区中去除编码时加入的冗余信息;步骤4、将緩冲区的码流送入解码器中进行解码;步骤5、重复步骤l、2、3、4,直到码流完全结束。以上所述步骤1中同步字的判断还包括以下步骤步骤11、比较当前读入码字与同步字的值,当读入码字与同步字的值相等,则将读入码字送入緩冲区;当读入的码字与同步字的值不相等,则抛弃当前码字;步骤12、继续读入下个一码字,重复步骤ll,直到第二个同步字出现。以上所述步骤2中所述緩沖区的大小等于音频信号编码后所有帧中码流最长的帧的比特流的字节数。所述步骤2中两个相邻同步字间的码流长度应小于等于緩冲区的大小;当两个相邻同步字间的码流长度大于緩沖区的大小时,则存在同步字丢失现象,读入緩沖区时应将溢出码流抛弃。与参考算法中采用的串行队列流水的方法相比,本发明的鲁棒性音频解码方法不仅可以实现码流的随机访问接入;而且也提高了解码过程的可靠性。本发明的一种鲁棒性的音频解码方法由以下的实施例及附图给出。图1为AVS参考音频解码器中将码流读入緩沖区的方法;图2为本发明的一种鲁棒性的音频解码方法的流程图。具体实施例方式以下将结合图2示意的流程图对本发明的一种鲁棒性的音频解码方法作进一步的详细描述。本实施例中需要进行音频解码的码流如下Stream码流所示,其中码流中每一帧对应的同步字为0x001;Stream中加下划线部分表示由于网络丢包而丟失的码字;从开始的两个字节0xD2和0x94可以看出它们不是一帧的同步字,说明该帧同步字已丢失。Stream:0xD2,0x94,0x00,0x12,0x10,OxlF,OxFE,0x79,0xC2,0x05,<table>tableseeoriginaldocumentpage5</column></row><table>在准备阶段先进行参数的定义和初始化定义两个无符号字节变量并赋初值SynO-l,Synl=l;定义外部接口函数socket();该socket()函数依次从外部接口读入一个字节;定义緩冲区Buf,緩冲区的大小是SIZE,其中SIZE是经过统计得到编码最长的一帧音频信号的比特流字节数,将緩冲区Buf中的值初始化为0。Sl、通过外部接口函数socket()读入码字,判断所读码字是否为同步字;SI1、通过socket()读入一个字节0xD2赋值给Synl,此时SynO=l,Synl=0xD2,(SynO《4)+(Synl》4)不等于同步字0x001(其中符号"《"和"》"表示向左移位和向右移位),说明没有找到同步字;抛弃SynO的值,将Synl赋值给Syn0;S12、继续从socket()中读取下一个字节0x94赋值症会Synl,此时Syn0=0xD2Synl=0x94,重复步骤Sll的判断方法,即(Syn(X〈4)+(Syn^〉4)是否等于同步字0x001,找到第一个同步字后将Syn0的值赋值给Buf[O],直到找到了两个同步字后进入步骤S2。S2、将读到的同步字和下一个同步字之间的码流读入緩冲区;将Synl赋值给SynO,从socket()中读取下一个字节赋值给Synl,然后再判断(8丫1104)+(8丫1114)是否等于同步字0x001,如果是,则进入步骤S3,如果否,则将SynO的值赋值给Buftl],并将Synl的值赋值给SynO,依次类推将相邻两个同步字之间的码字赋值给Buf緩冲区。如果两个同步字之间码字的个数大于SIZE,说明存在中途网络丟包,同步字丢失的现象,应将两个同步字之间超过緩冲区SIZE字节的码字抛弃。经过该步骤后读入Buf緩沖区的码为[OxOO,0x12,0x10,OxlF,OxFE,0x79,0xC2,0x05,Oxll,0x91,OxA5,0x20,OxF5,0xE8,0xD8,0x34,OxCE,0x7B,Ox5D,,0x50,0x76,Ox8C,0x48,0x66,0x97,OxD5,OxCC,0x16,0x7B,OxCF,0xE9,OxFB,0x99,OxF8,0xF9,0x35,0x80,OxC8,OxlD,Ox5D,0x61,0x3F,0x31,0xD4,OxE3,0x88,OxDC,0x49,0x57,0x60,OxD5,0xA7,OxOB,0xC8,0x26,0xC4,OxCC,0x4B,0xA8,0x77,0x38,OxOD,0x84,0x38,0x67,OxFD,0x9B,0x16,0x28,0x60,0x97,0x22,0xA9,0x4D,0xC6,0x37,OxD3,0x84,OxEl,Ox3F,0x4F,OxEE,0x4C,0x50,0x45,0x35,0x6A,0x0A,OxEC,0xC6,0x35,OxD3,0xF2,OxE3,0x65,OxFF,OxE3,OxAD,Ox5C,0x50,0x3C,0x83,0x93,0x62,0x60,OxFD,0x86,0xF8,OxCC,0xD4,0x7A,OxEF,0xD7],进入步骤S3。53、根据AVS音频算法,在緩冲区中去除编码时加入的冗余信息;54、将緩沖区的码流送入解码器中进行解码;55、重复步骤l、2、3、4,直到码流完全结束。通过本实施例的鲁棒性解码的音频信号,虽然得不到不丟包时的音频信号,但是即使丟包存在,仍然可以实现解码,不至于解码中断;并且解码误差也不会扩散到下一帧中。本实施例验证了本发明所提供解码方法的随机访问接入;对下划线部分码流丟失的情况的解码过程也验证了本发明所提供解码方法的可靠性。权利要求1、一种鲁棒性的音频解码方法,用于对外部接口输出的码流进行解码,所述码流由码字组成,且其中间隔插有同步字,其特征在于,所述方法包括以下步骤步骤1、从外部接口读入码字,判读所读码字是否为同步字;步骤2、将读到的同步字和下一个同步字之间的码流读入一缓冲区;步骤3、在缓冲区中去除编码时加入的冗余信息;步骤4、将缓冲区的码流送入一解码器中进行解码;步骤5、重复步骤1、2、3、4,直到码流完全结束。2、如权利要求1所述的一种鲁棒性的音频解码方法,其特征在于,所述步骤l中同步字的判断包括以下步骤步骤ll、比较当前读入码字与同步字的值,当读入码字与同步字的值相等,则将读入码字送入緩冲区;当读入的码字与同步字的值不相等,则抛弃当前码字;步骤12继续读入下个一码字,重复步骤ll,直到第二个同步字出现。3、如权利要求1所述的一种鲁棒性的音频解码方法,其特征在于,所述步骤2中緩沖区的大小等于音频信号编码后所有帧中码流最长的帧的比特流的字节数。4、如权利要求1所述的一种鲁棒性的音频解码方法,其特征在于,所述步骤2中两个相邻同步字间的码流长度应小于等于緩冲区的大小;当两个相邻同步字间的码流长度大于緩冲区的大小时,则存在同步字丟失现象,读入緩冲区时应将溢出码流抛弃。全文摘要本发明提供了一种鲁棒性的音频解码方法。所述方法通过对读入的码字逐个判断是否为同步字,寻找相邻两个同步字;并将相邻同步字间的码流送入缓冲区;然后在缓冲区中将编码加入的冗余信息去除;接着将缓冲区的码流送入解码器实现解码,重复以上过程,直至所有码流结束。本发明提供的解码方法克服了参考算法中存在的丢包导致解码中断的现象,实现了解码过程的随机访问接入,并保证了解码过程的可靠性。文档编号H03M7/30GK101183874SQ20071017226公开日2008年5月21日申请日期2007年12月13日优先权日2007年12月13日发明者谭建国申请人:上海广电(集团)有限公司中央研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1