音频帧识别方法

文档序号:7962076阅读:547来源:国知局
专利名称:音频帧识别方法
技术领域
本发明涉及音频帧(audio frame)识别方法,尤其涉及当在以 AAC(Advanced Audio Coding:高级音频编码)为基础的音频数据中发生 比特流误差(bit-stream error)时,通过查找下个帧的开始部分,能够继 续进行解码的音频帧识别方法。
背景技术
MPEG的音频编码方法之一 AAC是以界面格式进行的编码方式, 包括如图1所示的ADIF(Audio Data Interchange Format:音频数据交换 格式)和ADTS(Audio Data Transport Stream:音频数据传输流)。
对于AAC音频内容格式, 一个音频内容由显示按照事先规定的时 间单位抽样的数据和音频信息的报头构成,我们将这样的一个块称为 帧。在分别具有多个块的原始数据块(raw一data一block)中存在音频数据, 与各个原始数据块对应,在报头部域中包括音频内容的全部信息。
如图1所示,ADIF报头包括报头标识(adif一id)、相关著作权信息 (copyright—id_present, copyrighted)、是否是原件/复印件的信息 (original/copy)、网页关联信息(home)、比特流类型信息(bit stream type), 比特率信息(bit rate)、构成信息(num_program—config—element)、緩冲器 信息(adifjDuffer一fiillness)、 节目构成信息(program一config-element)等。 在附图各个域内并列的数值代表相应信息对应的比特数。
另一方面,ADTS报头可以划分为每个帧值不变化的不变报头 (ADTS—fixed—header)和存储各个帧固有数值的可变报头 (ADTS—varialbe—header)两种。在不变报头中包括同步信息(sync word)、 标识信息(ID)、层信息(layer)、保护信息(protection—absent)、轮廓信息 (profile)、抽样频率信息(sampling—freq.—index)、私人比特信息 (private—bit)、频道构成信息(channe1—config.)、是否是原件/复印件信息 (original/copy)、网页信息(home)等。在可变^^头上包括相关著作权信 息(copyright—id—bit, copyright—id—start)、帧长度信息(frame一length)、緩 沖器信息(adts一bufferJWlness)、帧内的原始数据块相关信息 (num._of_raw—data_blocks_in—frame)等。在ADTS报头的终端还具有误 差核实域(ADTS—error—check),上面还包括进行误差核实的信息 (crc—chek)。
在AAC界面格式中,由于ADTS每个帧都具有报头,虽然辅助操 作(overhead)多,其存在即使在流中间发生误差时,利用相应帧报头也 可以继续对下个帧进行解码的优点。而,由于ADIF只在文件的前头具 有报头,虽然辅助操作少,其存在当在流中间发生误差时,很难查找 到下个帧的开始位置的缺点。
由于电波的接收状态或网络的状态等多种通讯环境的原因,通过 AOD(Audio On Demand:收听广播的软件)或广播等传输形式传送的数 据很可能在接收的过程中出现数据流损失的现象。
因此,也可能发生解码所需的音频帧数据部分损失或甚至损失几 个帧的情况。因此,现在急需要一种可以应对这种音频数据流损失问 题,并进行处理的技术。 如上所述,当发生误差时,由于ADTS格式可以查找到下个帧的 开始部分,所以能够继续进行解码。但,对于不具有ADIF格式或ADTS 及ADIF格式的原始流,当发生误差时,由于不能找到下个帧的开始部 分,需要结束解码过程。
即,现有4支术存在下面问题在现有的以AAC为基础的音频解码 系统中,当在解码过程中,音频数据流损失时,中断解码,由此导致 音频播放品质降低,相关解码系统的性能P条低。

发明内容
为了解决上述问题,本发明旨在提供一种在以AAC为基础的音频 解码过程中,即,当在传送或播放音频帧的过程中发生误差时,利用 相关比特流的数据特性,查找下个帧的开始位置,持续进行音频数据 的比特流解码的音频帧识别方法。
本发明的另一个目的在于提供一种在以AAC为基础的音频解码过 程中,当在ADIF或原始AAC流中间发生误差时,不停止解码,通过 查找下个帧的开始位置,能够继续进行解码的音频帧识别方法。
为了实现上述目的,本发明的音频帧识别方法就是以ACC为基础 的音频数据解码方法,其特征在于包括如下步骤
判断音频帧解码时是否出现误差帧的步骤;
当发生误差时,对下一个音频帧,检索与单元标识符(ele一id)及单 元情况标记符(element—instance—tag)值一致的流位置,将这一位置识别 为下个帧的开始位置的步骤。
而且,本发明的音频帧识别方法还包括当发生误差时,利用从 正常解码的以前帧获得的频道信息选定预测的下个音频帧的单元标识 符及单元情况标记符值的步骤。
本发明的重点在于,当发生误差时,利用从正常解码的以前帧中 获得的频道信息选定预测的下个音频帧的单元标识符及单元情况标记 符值。如果从正常解码的以前帧中获得的频道信息是ID一SCE,将下个 音频帧看作是单声道频道帧,^r索与ID一SCE[OOO],单元情况标记符 [OOOO]值 一致的位置;如果从正常解码的以前帧中获得的频道信息是 ID一CPE,将下个音频帧看作是立体声频道帧,检索与ID一CPE
,单 元情况标记符
值一致的位置。
另外,本发明的重点在于,为了验证上述检索的下个帧开始位置 是否是真正开始位置,确认上述帧开始位置前面的数据比特是否是 ID一END[lll]。
并且,本发明的重点在于,为了验证上述检索的下个帧的开始位 置是否是真正开始位置,从上述帧开始位置以前字节到LSB最初出现 [l]的位置为止,1比特1比特地移动,比较检索[l]是否连续3比特以 上,确认是否是ID一END[lll〗。
而且,本发明的重点在于,进行ID—END[111]检索的最多比较次 数限制为8次。
另外,本发明的重点在于,为了验证上述冲企索的下个帧的开始位 置是否是真正开始位置,检索从查找到上述开始位置的部分到波谱数 据(spectral一data)以前的比特流,确认是否发生误差,当没有发生误差 时,将上述^r索的位置识别为下个帧的真正开始位置。
并且,本发明的重点在于,为了验证上述检索的下个帧的开始位 置是否是真正开始位置,比较从查找到上述开始位置的部分以后数据 与原始数据的语法,确认是否发生误差,如果没有发生误差,看作是 准确地找到帧界限。
本发明提供了一种当在ADIF或原始格式的AAC流中发生误差 时,通过查找下个帧的开始位置,能够继续进行解码的方法。通过本 发明,当播放具有相应格式的文件或在AOD过程中发生误差时,能够 构成有效的AAC解码器。
而且,在通过AAC解码器完成的解码过程中,当在文件播放或传 送时发生误差时,可以有效应对。由于即使发生误差,也可以继续解 码,可以防止由于帧损失导致的解码不能继续进行的状态,由于即使 出现部分帧损失,音频帧解码也可以继续进行,给播放音频、收听的 用户提供更加高品质的音频,提高产品的可信度。


图1为ADIF报头及ADTS报头结构的示意图。
图2为具有ADIF报头及ADTS报头的比特流结构的示意图。
图3为AAC比特流数据段结构的示意图。
图4为本发明的音频帧识别方法的流程图。
图5为本发明的ID一END[111]检索方法的概略示意图。
图6为本发明的ID一END[111]检索过程的流程图。
具体实施方式
下面将参照附图对具有以上特征的本发明的音频帧识别方法的实 施例进行详细说明。
在本发明中,尽管与ADTS格式中发生误差时一样需要查找流, 但是,由于进行比较的对象并不像ADTS报头那样具有固定值,本发 明将原始数据块的开始和末端的部分数据规定为比较对象,进行查找。 以怎样的先决信息(掌握的信息)为基础选定(选定过程)这个比较对象 (看做是音频帧开始位置的基准)及以怎样的方法对选定的比较对象进 行比较(比较过程)是本发明实施例的具体特征。
并且,本发明为了提高识别音频帧开始位置的准确性,当查找到 错误的开始位置时,进行对比,核实从查找到帧开始位置的部分到波 谙数据以前的流是否发生误差。当发生误差时,反复运行上面的查找 过程,直到查找到准确的位置,这是本发明实施例的具体特征。
对于ADIF或原始格式的AAC流,由于不存在用于区分每个帧的 报头,如果数据流出现误差,不存在对其进行补正的基准。本发明以
某种方法查找到这个基准,并提出验证方法。为了下面说明的方便, 在[]内部用二进位数据表示。
图2为具有ADIF报头及ADTS报头的比特流结构的示意图。如 图2所示,ADIF或原始格式的每个帧是以被称为单元标识符的3比 特的数据开始。这个单元标识符作为显示每个帧中可以使用的单元的 标识,在移动AOD环境下,主要使用ID—SCE[OOO]、 ID—CPE
、 ID—FIL[llO]、 ID—END[111]4种。其中,ID—SCE
具有1频道(mono) 的数据,ID—CPE
具有2频道(stereo)的数据。ID—FIL[110]包括与比
特率(bitrate)对应的数据(null data)或者AAC+等扩大功能的数据。 ID—END[l 1 l]是识别帧末端的单元。
图3为构成帧的单元的多种形态示意图。
通常,单声道频道的帧以ID—SCE
开始,以ID一FIL[110]结束; 立体声频道的帧以ID—CPE
开始,以ID—FIL[110]结束。
因此,如果在解码过程中出现发生误差的帧,查找下个帧开始位 置时,如果参照以前正常解码帧的频道信息,即,参照上述罗列的单 元标识符,可以预测到下个帧开始位置的单元标识符。举例来说,如 果从正常解码的以前帧中获得的频道信息是ID一SCE[OOO],下个帧可以 看作是单声道频道帧;如果从正常解码的以前帧中获得的频道信息是 ID一CPE
,下个帧可以看作是立体声频道帧。前者的情况下,如果 查找到ID一SCE
出现的位置,可以将这个位置看作是下个帧的开始 位置;后者的情况下,如果查找到ID一CPE
出现的位置,可以将这 个位置看作是下个帧的开始位置。但,由于可能出现相似的比特排列 的情况,为了进行可靠性高的帧检索和识别,需要多种验证和确认过 程。
为了进行验证和确认,在本发明中,使用单元情况标记符和 ID一END[lll]。
如上所述,如果从正常解码的以前帧中获得的频道信息是 ID—SCE
和ID—CPE
,都具有4比特的单元情况标记符数据。 这是在相同的帧内同时使用多个单元时,为了对其进行区分使用的。 通常,帧最前面出现单元的单元情况标记符值是[OOOO]。
另外,结束每个帧的ID一END单元[lll]出现字节排列后,帧的开 始部分(显示ID—SCE或ID—CPE的ele—id)出现。与ADTS才艮头一样, 使用这个部分的帧开始数据和末尾数据为一个指标,如上所述,当误 差发生时,可以查找到帧界限。
图4显示了利用上述数据,追加克服误差程序的整个解码过程。
第1步骤(S10)是判断是否是文件末端的步骤,如果这个步骤的判 断结果是,是文件的末端,结束解码过程;如果不是末端,运行第2 步骤(S20)。第2步骤(S20)是解码过程,运行现有的以AAC为基础的 音频帧解码程序。第3步骤(S30)是判断在解码时是否发生误差的步骤。 如果不是发生误差的帧,运行第1步骤(S10);如果是发生误差的帧, 运行下面要^L明的音频帧识别和验证过程。
即,当播放没有误差的帧时,反复图4中的正常帧解码过程 (S10-S30),如果在中间发生误差,从正常帧解码过程中出来,运行前 面提到的界限部分数据的查找过程(S40-S70)。
第4步骤(S40)利用从正常解码的以前帧中获得的频道信息,查找 与预测的单元标识符、单元情况标记符值一致的流的位置。
如果从正常解码的以前帧中获得的频道信息是ID一SCE[OOO],预测 的下个音频帧可以看作是单声道频道帧;如果从正常解码的以前帧中 获得的频道信息是ID一CPE
,预测的下个音频帧可以看作是立体声
频道帧。
另外,如果预测的下个帧是单声道频道帧,预测的比较对象值 ID一SCE[OOO]、单元情况标记符
是7比特;如果预测的下个帧是立 体声频道帧,预测的比4交对象值ID—CPE[OOl],单元情况标记符[OOO] 是7比特。
因此,以从正常解码的以前帧中获得的频道信息为基础,预测误 差发生以后的下个帧开始位置的单元标识符值和单元情况标记符值, 如果查找到出现这个值位置的比特流,可以将这个位置看作是下个帧 的开始位置。
此时,由于使用的7比特(单元标识符3比特,单元情况标记符4 比特)以相应的比特模式反复的数据很多,在第5步骤(S50)中需要确认 是否是从以前帧末端推定的ID_END[111]。
像这样查找数据,查找与单元标识符及单元情况标记符一致的流 的步骤与确认ID一END的步骤区分开来的原因是,由于每个帧的开始 数据在存在字节排列以后开始,比较起来很容易;而不知道末尾数据 ID—END[111]位于最后字节哪个位置,因此,比较起来相对困难。
如上所述,通过在第4步骤(S40)中查找的比特流位置之前字节的 最后1是否连续3比特以上来确认ID—END[111](第5步骤S50),如果 确认完毕,第4步骤(S40)中查找的位置可以看作是帧开始位置。
尽管如此,如果只查找到ID_END[111],也不能够就看作是帧开 始位置,因为可能出现相似比特排列的情况,比较以后数据与原始数 据的语法,当不发生误差时,通过重新验证是否准确地查找到帧界限, 实现帧界限检索误差最少化,提高准确性,继续完成解码。
即,在第6步骤(S60)中,正如前面提到的那样,核实从查找到的 帧开始位置到波谙数据以前的流,第7步骤(S70)判断在前个步骤的核 实结果是否发生语法错误,如果没有发生语法错误,将相应帧位置识
别为真正开始位置,运行第1步骤(S10);如果发生语法错误,从第5 步骤(S50)开始反复运行验证过程。
图5是上述第5步骤(S50)中查找ID一END[111]方法的示意图。如 图所式,从通过帧的界限部分推定的位置1比特1比特向左移动,直 到[l]出现时为止,进行比较,如果[l]出现,追加2比特进行比较,检 索[l]是否连续3比特。
图6是上述第5步骤(S50)中查找ID—END[111]方法的流程图。从 最初界限点之前字节的LSB开始比较,直到最初[l]出现的位置为止, 一边1比特1比特地向左移动, 一边进行比较。由于在最后字节中至 少应该存在[lll]中的一比特以上,所以,最多比较次数限定为8。当上 述比较结果[l]出现时,追加比较前面的2比特,如果全部是[l],看作 是查找到ID一END[lll](Border—OK=l)。除此以外的情况下,看作是没 有查找到ID一END[lll](Border—OK=0),重新查找帧的开始部分。
下面对这个过程进行详细说明。
在第1步骤(S501),将寄存器(A)的值初始化为[l],计数值(cnt)初 始化为[O],切实保证通过帧界限部分推定的位置前的2字节值 (pre—byte 1 :pre—byte0)。
在第2步骤(S502),判断上述2字节的LSB值是否为[1]。这里, 如果比较的结果不是[l],运行第3步骤(S503), 1比特1比特地向左移 动,将计数值+1。并且,在第4步骤(S504),将上述计数值(cnf)与基准 比较次数8进行比较,如果没有超过8次,运行第2步骤(S502)。完成 8次比较,运行第10步骤(S510),标记没有查找到准确位置 (Border—OK=0),结束过程。
如果上述第2步骤(S502)的比较结果[1]出现,运行第5步骤(S505)。 1比特1比特地向左移动,运行第6步骤(S506),对上述移动数据的1 比特进行比较。如果笫6步骤(S506)的比较结果是下个数据不是[1], 由于[l]是不连续2次的情况,运行第10步骤(S510);如果确认比较结 果是[l],进入第7步骤(S507)。
在第7步骤(S507)中重新1比特1比特地向左移动,进入第8步骤 (S508),对上述移动数据的1比特进行比较。如杲第8步骤(S508)的比 较结果是下个数据不是[l],由于[l]不是连续3次的情况,进入第10 步骤(S510);如果确认比较结果是[l],连续出现1时,即,由于与 ID一END[111]对应,设置寄存器(Border—OK=l),结束查找ID一END[lll] 的过程。
通过上述内容的说明,本领域的相关技术人员完全可以在不偏离 本项发明技术思想的范围内,进行多样的变更以及修改。
因此,本项发明的技术性范围并不局限于说明书上的内容,必须 要根据权利范围来确定其技术性范围。
权利要求
1、一种音频帧识别方法,其特征是,包括如下步骤判断音频帧解码时是否出现误差帧的步骤;当发生误差时,对下一个音频帧,检索与单元标识符及单元情况标记符值一致的流位置,将这一位置识别为下个帧的开始位置的步骤。
2、 如权利要求1所述的音频帧识别方法,其特征是,当发生误差 时,利用从正常解码的以前帧中获得的频道信息,选定预测的下个音 频帧单元的标识符及单元情况标记符值。
3、 如权利要求1所述的音频帧识别方法,其特征是,当发生误差 时,利用从正常解码的以前帧中获得的频道信息,选定预测的下个音 频帧的单元标识符及单元情况标记符值,如果从正常解码的以前帧中 获得的频道信息是ID—SCE,将下个音频帧看作是单声道频道帧,检索 与ID—SCE[OOO],单元情况标记符
值一致的位置;如果从正常解 码的以前帧中获得的频道信息是ID—CPE,将下个音频帧看作是立体声 频道帧,检索与ID一CPE
,单元情况标记符
值一致的位置。
4、 如权利要求1所述的音频帧识别方法,其特征是,为了验证所 述检索的下个帧的开始位置是否是真正开始位置,确认所述帧开始位 置前面的数据比特是否是ID一END[lll]。
5、 如权利要求1所述的音频帧识别方法,其特征是,为了验证所 述检索的下个帧的开始位置是否是真正开始位置,从所述帧开始位置 以前字节到从LSB最初出现[1]的位置为止,1比特1比特地移动,比 较检索[l]是否能够连续3比特以上,确认是否是ID—END[lll]。2
6、 如4又利要求5所述的音频帧识别方法,其特征是,进行 ID一END[111]检索的最多比较次数限制为8次。
7、 如权利要求1所述的音频帧识别方法,其特征是,为了验证所 述检索的下个帧的开始位置是否真正开始位置,;险索从查找到的开始 位置的部分到波谦数据以前的比特流,确认是否发生误差,当没有发 生误差时,将上述^^索的位置识别为下个帧的真正开始位置。
8、 如权利要求1所述的音频帧识别方法,其特征是,为了验证所 述检索的下个帧的开始位置是否是真正开始位置,比较从查找到的开 始位置的部分以后数据与原始数据的语法,确认是否发生误差,如果 没有发生误差,看作是准确地找到帧界限。
9、 一种音频帧识别方法,其特征是,包括如下步骤当发生音频帧解码误差时,从以前正常解码的帧中识别频道信息, 利用所述的频道信息,选定预测的下个流的单元标识符及单元情况标 记符值的步骤;检索与所述预测的单元标识符及单元情况标记符值一致的流位 置,将这一位置推定为下个帧的开始位置的步骤;确认推定的帧开始位置之前的数据比特是否是通过以前帧末端推 定的H^END[111]的步骤;当确认为是所述ID一END[111]时,比较以后数据与原始数据的语 法,通过下个帧的开始位置最终决定不发生误差的情况的步骤。
全文摘要
本发明涉及一种音频帧识别方法,当在以AAC为基础的音频解码过程中出现误差帧时,通过识别下个帧,能够继续进行解码的音频帧识别方法。该方法包括当音频帧解码发生误差时,从以前正常解码的帧中识别频道信息,利用上述频道信息,选定预测的下个流的单元标识符及单元情况标记符值的步骤;检索与上述预测的单元标识符及单元情况标记符值一致的流位置,将这一位置推定为下个帧的开始位置的步骤;确认上述推定的帧开始位置之前的数据比特是否是通过以前帧末端推定的ID_END[111]的步骤;当确认上述推定的帧开始位置之前的数据比特是上述ID_END[111]时,比较以后数据与原始数据的语法,通过下个帧的开始位置最终决定不发生误差情况的步骤。
文档编号H04N7/08GK101101753SQ20061008631
公开日2008年1月9日 申请日期2006年7月7日 优先权日2006年7月7日
发明者金延定 申请人:乐金电子(昆山)电脑有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1