CN101183874A - 一种鲁棒性的音频解码方法 - Google Patents
一种鲁棒性的音频解码方法 Download PDFInfo
- Publication number
- CN101183874A CN101183874A CNA2007101722645A CN200710172264A CN101183874A CN 101183874 A CN101183874 A CN 101183874A CN A2007101722645 A CNA2007101722645 A CN A2007101722645A CN 200710172264 A CN200710172264 A CN 200710172264A CN 101183874 A CN101183874 A CN 101183874A
- Authority
- CN
- China
- Prior art keywords
- synchronization character
- code stream
- buffering area
- code word
- code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
本发明提供了一种鲁棒性的音频解码方法。所述方法通过对读入的码字逐个判断是否为同步字,寻找相邻两个同步字;并将相邻同步字间的码流送入缓冲区;然后在缓冲区中将编码加入的冗余信息去除;接着将缓冲区的码流送入解码器实现解码,重复以上过程,直至所有码流结束。本发明提供的解码方法克服了参考算法中存在的丢包导致解码中断的现象,实现了解码过程的随机访问接入,并保证了解码过程的可靠性。
Description
技术领域
本发明涉及数字音频领域,尤其涉及一种具有鲁棒性的音频解码方法。
背景技术
现代多媒体技术不仅要满足在存储器和播放机上进行存储和播放的要求,而且还要能够在各种网络上进行传输。如在AVS音频标准中,解码算法就规定了两种码流格式:用于存储的AASF(Avs_Audio_Storage_Format)格式和用于传输的AATF(Avs_Audio_Transport_Format)格式。本发明下文所涉及的均为AATF格式的码流。在AVS音频传输码流语法中,每一帧音频码流都可以作为随机访问接入点,每一帧都有自己的同步字信息和其它解码所需要的边信息。为了保证码流中的同步字信息不与音频码流信息相混淆,即保证一帧码流中不出现与同步字相同的码字,编码器在编码时在该码字上加入了两个冗余位来使它与同步字不相同。在AVS参考音频解码器中,解码算法采用了串行队列流水的方法,即由缓冲区Buf从外部接口将比特流读入缓冲区中,码流在Buf缓冲区中采用了先进先出队列的方法将比特流送给参考音频解码器进行解码,该过程如图1所示。
由于码流在网络上传输时经常发生网络的丢包现象,造成码流的丢失,如丢失同步字或其它码字。由此以上所述的参考解码器存在两个显著的缺点:其一是,该解码器要求读入缓冲区Buf的第一个码字必须是同步字,如果同步字丢失,则缓冲区Buf就不能读入码流,解码器就会中止解码,后果是不能实现随机访问接入;其二是,码流从外部接口进入Buf缓冲区是串行读取方法,一帧中任何一个码字的丢失都会造成解码器的中止,导致解码器的可靠性较差。
发明内容
本发明的目的在于提供一种鲁棒性的音频解码方法。该方法可以使解码器实现对码流的随机访问接入,同时在码流局部丢失的情况下,还可以保证解码器继续进行解码,前一帧码流丢失不会影响到后一帧的解码,提高了解码器的稳定性和可靠性。
本发明的目的是这样实现的:一种鲁棒性的音频解码方法,用于对外部接口输出的码流进行解码,所述码流由码字组成,且其中间隔插有同步字,所述方法包括以下步骤:步骤1、从外部接口读入码字,判读所读码字是否为同步字;步骤2、将读到的同步字和下一个同步字之间的码流读入缓冲区;步骤3、在缓冲区中去除编码时加入的冗余信息;步骤4、将缓冲区的码流送入解码器中进行解码;步骤5、重复步骤1、2、3、4,直到码流完全结束。
以上所述步骤1中同步字的判断还包括以下步骤:步骤11、比较当前读入码字与同步字的值,当读入码字与同步字的值相等,则将读入码字送入缓冲区;当读入的码字与同步字的值不相等,则抛弃当前码字;步骤12、继续读入下个一码字,重复步骤11,直到第二个同步字出现。
以上所述步骤2中所述缓冲区的大小等于音频信号编码后所有帧中码流最长的帧的比特流的字节数。所述步骤2中两个相邻同步字间的码流长度应小于等于缓冲区的大小;当两个相邻同步字间的码流长度大于缓冲区的大小时,则存在同步字丢失现象,读入缓冲区时应将溢出码流抛弃。
与参考算法中采用的串行队列流水的方法相比,本发明的鲁棒性音频解码方法不仅可以实现码流的随机访问接入;而且也提高了解码过程的可靠性。
附图说明
本发明的一种鲁棒性的音频解码方法由以下的实施例及附图给出。
图1为AVS参考音频解码器中将码流读入缓冲区的方法;
图2为本发明的一种鲁棒性的音频解码方法的流程图。
具体实施方式
以下将结合图2示意的流程图对本发明的一种鲁棒性的音频解码方法作进一步的详细描述。
本实施例中需要进行音频解码的码流如下Stream码流所示,其中码流中每一帧对应的同步字为0x001;Stream中加下划线部分表示由于网络丢包而丢失的码字;从开始的两个字节0xD2和0x94可以看出它们不是一帧的同步字,说明该帧同步字已丢失。
Stream:0xD2,0x94,0x00,0x12,0x10,0x1F,0xFE,0x79,0xC2,0x05,0x11,0x91,0xA5,0x20,0xF5,0xE8,0xD8,0x34,0xCE,0x7B,0x5D,0x50,0x76,0x8C,0x48,0x66,0x97,0xD5,0xCC,0x16,0x7B,0xCF,0xE9,0xFB,0x99,0xF8,0xF9,0x35,0x80,0xC8,0x1D,0x5D,0x61,0x3F,0x31,0xD4,0xE3,0x88,0xDC,0x49,0x57,0x60,0xD5,0xA7,0x0B,0xC8,0x26,0xC4,0xCC,0x4B,0xA8,0x77,0x38,0x0D,0x84,0x38,0x67,0xFD,0x9B,0x16,0x28,0x60,0x97,0x22,0xA9,0x4D,0xC6,0x37,0xD3,0x84,0xE1,0x3F,0x4F,0xEE,0x4C,0x50,0x45,0x35,0x6A,0x0A,0xEC,0xC6,0x35,0xD3,0xF2,0xE3,0x65,0xFF,0xE3,0xAD,0x5C,0x50,0x3C,0x83,0x93,0x62,0x60,0xFD,0x86,0xF8,0xCC,0xD4,0x7A,0xEF,0xD7,0xDD,0x30,0x43,0x37,0x04,0x7B,0xB3, 0x0E,0x38,0x7F,0x08,0x0E,0x82,0x8B,0xEC,0xD9,0x3F,0xC0, 0x85,0xAB,0x7B,0x4D,0x83,0xC3,0x9B,0xF6,0x3E,0x66,0xC2, 0x31,0xFF,0x15,0x47,0xFD,0xD9,0xF6,0x5C,0x52,0xA6,0x66, 0x7A,0x56,0x8E,0x94,0x64,0x51,0xC8,0x00,0xA8,0x0C,0xFF, 0xCB,0xFD,0x5B,0xD6,0xED,0x31,0x69,0x7D,0xD3,0x60,0xEA, 0x0B,0xEF,0xE3,0xDB,0xC8,0x71,0x52,0x99,0x7F,0x67,0x1E, 0xCC,0x7B,0x85,0x9D,0xFC,0x79,0x00,0x12,......
在准备阶段先进行参数的定义和初始化:定义两个无符号字节变量并赋初值Syn0=1,Syn1=1;定义外部接口函数socket();该socket()函数依次从外部接口读入一个字节;定义缓冲区Buf,缓冲区的大小是SIZE,其中SIZE是经过统计得到编码最长的一帧音频信号的比特流字节数,将缓冲区Buf中的值初始化为0。
S1、通过外部接口函数socket()读入码字,判断所读码字是否为同步字;
S11、通过socket()读入一个字节0xD2赋值给Syn1,此时Syn0=1,Syn1=0xD2,(Syn0<<4)+(Syn1>>4)不等于同步字0x001(其中符号“<<”和“>>”表示向左移位和向右移位),说明没有找到同步字;抛弃Syn0的值,将Syn1赋值给Syn0;
S12、继续从socket()中读取下一个字节0x94赋值给Syn1,此时Syn0=0xD2,Syn1=0x94,重复步骤S11的判断方法,即(Syn0<<4)+(Syn1>>4)是否等于同步字0x001,找到第一个同步字后将Syn0的值赋值给Buf[0],直到找到了两个同步字后进入步骤S2。
S2、将读到的同步字和下一个同步字之间的码流读入缓冲区;
将Syn1赋值给Syn0,从socket()中读取下一个字节赋值给Syn1,然后再判断(Syn0<<4)+(Syn1>>4)是否等于同步字0x001,如果是,则进入步骤S3,如果否,则将Syn0的值赋值给Buf[1],并将Syn1的值赋值给Syn0,依次类推将相邻两个同步字之间的码字赋值给Buf缓冲区。如果两个同步字之间码字的个数大于SIZE,说明存在中途网络丢包,同步字丢失的现象,应将两个同步字之间超过缓冲区SIZE字节的码字抛弃。经过该步骤后读入Buf缓冲区的码为[0x00,0x12,0x10,0x1F,0xFE,0x79,0xC2,0x05,0x11,0x91,0xA5,0x20,0xF5,0xE8,0xD8,0x34,0xCE,0x7B,0x5D,0x50,0x76,0x8C,0x48,0x66,0x97,0xD5,0xCC,0x16,0x7B,0xCF,0xE9,0xFB,0x99,0xF8,0xF9,0x35,0x80,0xC8,0x1D,0x5D,0x61,0x3F,0x31,0xD4,0xE3,0x88,0xDC,0x49,0x57,0x60,0xD5,0xA7,0x0B,0xC8,0x26,0xC4,0xCC,0x4B,0xA8,0x77,0x38,0x0D,0x84,0x38,0x67,0xFD,0x9B,0x16,0x28,0x60,0x97,0x22,0xA9,0x4D,0xC6,0x37,0xD3,0x84,0xE1,0x3F,0x4F,0xEE,0x4C,0x50,0x45,0x35,0x6A,0x0A,0xEC,0xC6,0x35,0xD3,0xF2,0xE3,0x65,0xFF,0xE3,0xAD,0x5C,0x50,0x3C,0x83,0x93,0x62,0x60,0xFD,0x86,0xF8,0xCC,0xD4,0x7A,0xEF,0xD7],进入步骤S3。
S3、根据AVS音频算法,在缓冲区中去除编码时加入的冗余信息;
S4、将缓冲区的码流送入解码器中进行解码;
S5、重复步骤1、2、3、4,直到码流完全结束。
通过本实施例的鲁棒性解码的音频信号,虽然得不到不丢包时的音频信号,但是即使丢包存在,仍然可以实现解码,不至于解码中断;并且解码误差也不会扩散到下一帧中。本实施例验证了本发明所提供解码方法的随机访问接入;对下划线部分码流丢失的情况的解码过程也验证了本发明所提供解码方法的可靠性。
Claims (4)
1.一种鲁棒性的音频解码方法,用于对外部接口输出的码流进行解码,所述码流由码字组成,且其中间隔插有同步字,其特征在于,所述方法包括以下步骤:
步骤1、从外部接口读入码字,判读所读码字是否为同步字;
步骤2、将读到的同步字和下一个同步字之间的码流读入一缓冲区;
步骤3、在缓冲区中去除编码时加入的冗余信息;
步骤4、将缓冲区的码流送入一解码器中进行解码;
步骤5、重复步骤1、2、3、4,直到码流完全结束。
2.如权利要求1所述的一种鲁棒性的音频解码方法,其特征在于,所述步骤1中同步字的判断包括以下步骤:
步骤11、比较当前读入码字与同步字的值,当读入码字与同步字的值相等,则将读入码字送入缓冲区;当读入的码字与同步字的值不相等,则抛弃当前码字;
步骤12继续读入下个一码字,重复步骤11,直到第二个同步字出现。
3.如权利要求1所述的一种鲁棒性的音频解码方法,其特征在于,所述步骤2中缓冲区的大小等于音频信号编码后所有帧中码流最长的帧的比特流的字节数。
4.如权利要求1所述的一种鲁棒性的音频解码方法,其特征在于,所述步骤2中两个相邻同步字间的码流长度应小于等于缓冲区的大小;当两个相邻同步字间的码流长度大于缓冲区的大小时,则存在同步字丢失现象,读入缓冲区时应将溢出码流抛弃。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2007101722645A CN101183874A (zh) | 2007-12-13 | 2007-12-13 | 一种鲁棒性的音频解码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2007101722645A CN101183874A (zh) | 2007-12-13 | 2007-12-13 | 一种鲁棒性的音频解码方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101183874A true CN101183874A (zh) | 2008-05-21 |
Family
ID=39448977
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007101722645A Pending CN101183874A (zh) | 2007-12-13 | 2007-12-13 | 一种鲁棒性的音频解码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101183874A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101944363A (zh) * | 2010-09-21 | 2011-01-12 | 北京航空航天大学 | 一种ambe-2000声码器编码数据码流控制方法 |
CN102522088A (zh) * | 2011-11-25 | 2012-06-27 | 展讯通信(上海)有限公司 | 音频的解码方法及装置 |
CN102768834A (zh) * | 2012-03-21 | 2012-11-07 | 新奥特(北京)视频技术有限公司 | 一种实现音频帧解码的方法 |
-
2007
- 2007-12-13 CN CNA2007101722645A patent/CN101183874A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101944363A (zh) * | 2010-09-21 | 2011-01-12 | 北京航空航天大学 | 一种ambe-2000声码器编码数据码流控制方法 |
CN102522088A (zh) * | 2011-11-25 | 2012-06-27 | 展讯通信(上海)有限公司 | 音频的解码方法及装置 |
CN102522088B (zh) * | 2011-11-25 | 2013-10-23 | 展讯通信(上海)有限公司 | 音频的解码方法及装置 |
CN102768834A (zh) * | 2012-03-21 | 2012-11-07 | 新奥特(北京)视频技术有限公司 | 一种实现音频帧解码的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100517151C (zh) | Dv元数据提取 | |
CN101364946B (zh) | 避免丢失分组恢复中的拥塞的系统和方法 | |
US8249110B2 (en) | Apparatus and method for coding an information signal into a data stream, converting the data stream and decoding the data stream | |
CN101183874A (zh) | 一种鲁棒性的音频解码方法 | |
US6052812A (en) | Messaging communication protocol | |
US8582437B2 (en) | System and method for increasing input/output speeds in a network switch | |
EP2442482B1 (en) | Method and device for implementing stream cipher | |
BR122018071050B1 (pt) | Técnica de simulação de granulação de filme para uso nos dispositivos de reprodução de mídia | |
WO2012106898A1 (zh) | 多路音视频传输和处理方法、装置及系统 | |
BRPI0707662A2 (pt) | sistema de transmissço e recpÇço de difusço digital | |
CN107079028A (zh) | 发送装置和接收装置及其信号处理方法 | |
CN102970109B (zh) | 一种高速多通道的数据传输方法、相关装置和系统 | |
US9197368B2 (en) | Inband management of ethernet links | |
CN101625653A (zh) | 一种多媒体产品本地数据处理校验方法 | |
US9485199B2 (en) | System and method for data flow identification and alignment in a 40/100 gigabit ethernet gearbox | |
US20230336354A1 (en) | Data transmission method and data transmission device | |
CN2912169Y (zh) | 一种于数字电视终端实现ts流复用的装置 | |
WO2024078048A1 (zh) | 一种数据处理方法和数据处理装置 | |
US20100166014A1 (en) | Apparatus and method for recombining multi-protocol encapsulation (mpe) packets | |
CN114189324B (zh) | 一种消息安全签名方法、系统、设备及存储介质 | |
CN100421449C (zh) | 网络数字电视系统时钟同步保持的控制方法 | |
CN111726124B (zh) | 用于纠错的电路及其方法 | |
CN113724138A (zh) | 一种图像分辨率扩充处理方法、装置和控制终端 | |
JP2001052448A (ja) | データ記録媒体およびデータ記録装置 | |
US20050084097A1 (en) | Apparatus and method for calculatingtkip sbox value |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20080521 |