音频解码方法、音频解码器及其中的平滑滤波方法

文档序号:7625501阅读:387来源:国知局
专利名称:音频解码方法、音频解码器及其中的平滑滤波方法
技术领域
本发明涉及音频解码方法和音频解码器,尤其涉及一种可进行平滑滤波处理的音频解码器及音频解码器中的平滑滤波方法。
背景技术
数字音视频压缩技术是多媒体领域中一个非常重要的研究课题,MPEG标准所定义的音视频压缩技术在多媒体产品中得到广泛应用。MPEG标准由国际标准组织ISO的运动图像专家组(Moving Pictures Experts Group)建立,其音频标准包括三种不同的编码算法,即MPEG第一层,MPEG第二层和MPEG第三层,三种编码算法复杂度不同,因而压缩率也不相同。音频信号通常可以根据其中的一种算法来进行采样和编码。音频解码器用来对接收到的已编码的采样值进行解码,通常包括缓冲器,解析器,重构单元以及滤波器等。缓冲器将数据库流从内存搬运到音频解码器,解析器对基本数据流型的数据流进行解析,并把解析得到的数据送入重构单元,由重构单元解码而得到采样值。此时的采样值为编码时离散余弦变换(DCT)后的S域采样值,解码时需要对其进行离散余弦反变换(IDCT),来获得数字脉冲编码调制(PCM)样点,最后把PCM样点转换为模拟信号,即能够为人类所接受的声音。一般利用滤波器进行IDCT处理,完成数据流从频域到时域的转换。
有时可能在数据传输中产生了某些错误,或者是在音频解码器的解码过程中出了错误等等,这时,往往需要采取一些措施来掩蔽错误的信号。通常是在IDCT变换后得到的PCM样点中插入静音信号。但静音信号会使输出的信号不连续,如图1中的圆圈11所示,在时域插入的静音信号会在边界处产生波形的跃变,引入高频冲击,使输出的声音变得尖锐刺耳,对人耳造成损伤。也有的音频解码器是在IDCT变换后得到的PCM采样值出错时,重复播放出错前最后的信号。如图2中的圆圈21处所指出的,这种方法同样会在波形的边界处产生跃变,并使输出的声音变得尖锐刺耳,令人不悦。
为了滤除这种高频干扰,有的音频解码器在IDCT变换后进行输出播放前加入一系列的后处理,其中包含插入静音信号或重放信号,并滤除这种高频干扰的操作。采用这种处理方式通常需要在后处理模块中额外增加一级低通滤波器来专门处理这种平滑滤除,并需要额外配置相应的缓冲器。如图3所示,后处理模块中包含一个与门31,平滑滤波器33和平滑滤波缓冲器35。解码器30解析并进行IDCT变换,得到PCM采样值。当系统发现出错时,解码器把静音信号36或重放信号37设成低电平,静音信号或重放信号通过与门取代出错情况下的PCM样点38。PCM样点暂时存放在平滑滤波缓冲器中,经平滑滤波器滤波后输出。
图3所示的音频解码器在时域对出错情况下的采样值进行平滑滤波,虽然在一定程度上滤除了高频干扰,但由于增加了额外的滤波器和相应的缓冲器,增加了硬件,使成本无法降低。

发明内容
本发明的目的在于克服现有技术中存在的缺陷,提供一种音频解码方法和音频解码器,它可以进行平滑滤波处理,滤除静音信号或重放信号带来的高频干扰,同时不需要为平滑滤波而增加额外的硬件。
根据本发明的一个方面,提供一种音频解码器,包括用以接收外部基本码流ES的输入缓冲器;对所述基本码流ES进行解码,获得S域采样值的解码单元;对所述S域采样值进行离散余弦变换和加窗(window)处理,获得PCM采样值的滤波器;以及用以输出所述PCM采样值的输出缓冲器,其中,所述解码单元还接收输出缓冲器反馈的下溢信号向所述滤波器输入插值,所述滤波器对所述插值和所述S域采样值进行频域到时域的转换。
在本发明的一个实施例中,解码单元设置了插值计数器和插值单元。输出缓冲器检查到下溢状态,则反馈一个插值信号给解码单元。解码单元在插值计数器的控制下通过插值单元向滤波器输入插值,滤波器对插值进行频域到时域的转换,完成平滑滤波。
插值单元例如包括多路复用器,至少具有两个输入值,一个输入值为S域采样值,一个输入值为插值。多路复用器在插值计数器的控制下,对两个输入值进行选通。插值计数器一般处于复位状态,当接收到输出缓冲器送来的插值信号时,选通插值作为输入,并同时开始计数;在计数值等于滤波器通道数时,重新复位。复位后,多路复用器重新选通解码器的S域采样值作为输入。
在本发明的一个实施例中,滤波器例如为32个通道的子带合成滤波器,在总线、处理器等资源的响应速度出现问题时,可对解码器输出的S域采样值和插值一起,进行IDCT变换和加窗处理,完成S域采样值和插值从频域到时域的转换,得到PCM采样值。插值计数器例如由一个5位的寄存器和一个5位的加法器构成,可进行32位计数。
根据本发明的另一方面,提供一种音频解码方法,包括对接收到的外部基本码流ES进行解码,获得S域采样值;对所述S域采样值进行离散余弦变换和加窗处理,输出PCM采样值;当检测到输出的PCM采样值的数据量达到下溢状态时,提供插值;所述插值与所述S域采样值一起进行离散余弦变换和加窗处理。
根据本发明的另一方面,提供一种音频解码器中的平滑滤波方法,所述音频解码器包括对接收到的外部基本码流ES进行解码获得S域采样值的解码单元,对所述S域采样值进行离散余弦变换和加窗处理,获得PCM采样值的滤波器,以及用以输出所述PCM采样值的输出缓冲器,所述方法包括1.当输出缓冲器的数据量减少到下溢状态时,发出下溢信号给解码单元;2.解码单元在下溢信号的触发下,送插值给滤波器。
3.滤波器对解码单元送入的S域采样值和插值一起进行IDCT变换和加窗处理。
本发明在音频解码器的IDCT转换之前进行平滑滤波,对采样值在频域时插入静音或重放信号,复用合成滤波器进行平滑滤波。因而不但滤除了高频干扰,并且免除了对额外的平滑滤波器和缓冲器的需求,节约了电路面积,降低了成本。


以下参照附图对本发明的示例性实施例的进行说明,结合以下附图对本发明实施例的阐述,是为进一步揭示本发明的特征所在,但并不限制本发明,图中相同符号代表实施例中相应元件或步骤,其中图1为现有技术中音频解码器在出错情况下插入静音信号的波形图。
图2为现有技术中音频解码器在出错情况下插入重放信号的波形图。
图3为现有技术中可进行平滑滤波的音频解码器结构示意图。
图4A为本发明可进行平滑滤波的音频解码器的结构示意图。
图4B为图4A所示音频解码器中一个解码单元的结构示意图。
图5为本发明音频解码器的输出缓冲器的原理示意图。
图6为本发明一个实施例中的解码单元的插值单元结构示意图。
图7为本发明的音频解码器插入插值后的波形图。
图8为本发明的音频解码方法的流程图。
图9为本发明的音频解码器中平滑滤波方法的流程图。
具体实施例方式
参见图4A和图4B,本发明的音频解码器包括输入缓冲器41、解码单元43、滤波器45和输出缓冲器47。
输入缓冲器作为音频解码器与外部的接口,接收解复用模块(未图示)送来的ES流(基本码流),并送入解码单元。解码单元包括解析模块431和重构模块(reconstruction)433。解析模块解析ES流,解码头部信息,确定头部参数,为其他的解码模块提供控制字信息。重构模块分析MPEG AudioLayer1/Layer2的帧结构,对一帧数据的比特分配信息进行解码;然后进行比例因子(scale factor)的解码、重新取采样点、将样点进行反量化运算;最后进行反规格化(de-normalize)操作。重构模块输出的信号输入到合成子带滤波器。输出缓冲器匀速送出PCM采样值数据给后处理模块或直接经过模数转换后送给播放设备,播放设备以48K/S的稳定速度进行播放。为保持播放设备的稳定匀速的输出,需使输出缓冲器中的数据信号保持一定的数据量大小。
参见图5,输出缓冲器47中设置了上溢指针51和下溢指针52,相对应地配置了almost_full(上溢)与almost_empty(下溢)指针信号。发错信号、影音不同步、解码错误等可能出现的问题由CPU来控制,当CPU发出控制信号中止了出错单元的操作,可能会引起CPU的响应速度出现问题。也有其他情况可能引起CPU的响应速度出现问题。当总线、处理器等资源的响应速度出现问题时,输出缓冲器中的数据可能出现下溢状态,此时,输出缓冲器会把这almost_empty指针信号反馈给解码单元43。解码单元接收到almost_empty指针信号后,送插值给滤波器45。输入缓冲器和输出缓冲器可以是先进先出缓冲器(FIFO)。
本发明的滤波器45例如采用一种子带合成滤波器。子带编码是利用多相正交子带分析滤波器组把信号频带分割成若干子带,然后对各子带分别采用单独的编码方法编码并输出取样。编码时,每个子带内的一个对应样点作为一个采样组,当子带合成滤波器包含32个通道,一个采样组包含32个样点。多相正交子带合成滤波器对子带编码进行逆运算,以采样组为单位进行IDCT变换和加窗处理。在本发明的一个实施例中,子带合成滤波器为32个通道的子带合成滤波器,以32个子带样点作为一个采样组。子带合成滤波器共512级,包含32组正交子带滤波器,进行IDCT变换和加窗处理。IDCT变换将解码单元送出的S域采样值从频域(S域)转换到时域(T域),得到PCM样点。
如图4B所示,解码单元43中设置了插值计数器437和插值单元435。输出缓冲器检查到下溢状态,则反馈一个下溢信号almost_empty给解码单元。解码单元在插值计数器的控制下通过插值单元向滤波器输入插值,滤波器对插值与解码单元送入的S域采样值进行频域到时域的转换,从而完成平滑滤波。
参见图6,按照本发明的一个实施例,插值单元435例如包括多路复用器61,后者至少接收两个输入值,一个输入值为S域采样值,另一个输入值为插值。多路复用器在插值计数器的控制下,对两个输入值进行选通。插值计数器一般处于复位状态,选通S域采样值作为输入。当接收到输出缓冲器送来的下溢信号almost_empty时,插值计数器选通插值作为输入,并同时开始计数;在计数值等于滤波器宽度值时,插值计数器重新复位,多路复用器从而重新选通S域采样值作为输入。
插值单元送给滤波器的插值例如是一般的常数值或零值。在一种较好的实施方式中,当解码单元收到下溢信号almost_empty的情况下,插值单元送给滤波器的插值为零值。根据子带滤波器的特点,一次插入与滤波器通道数相同数量的零值,在此即32个零值。相应地,插值计数器由一个5位的寄存器和一个5位的加法器构成(未图示),可进行32位计数。
在本发明的另一个实施例中,子带合成滤波器例如为1024级,包含32个通道,以32个子带样点作为一个采样组,每个子带包括32个点。在解码单元收到下溢信号almost_empty的情况下,同样也是插入与滤波器通道数相同宽度的零值,即32个零值。插入的零值个数和插值计数器的计数位数与滤波器通道数一致,在改变滤波器级数与宽度的情况下,均可作相应变化。
图7为本发明的音频解码器在收到下溢信号almost_empty情况下插入插值的波形图。总线、处理器等资源的响应速度出现问题时,可能引起输出缓冲器出现下溢。解码单元根据输出缓冲器的almost_empty下溢信号送插值给滤波器。插值产生的波形如图中两条虚线之间的部分71。经插值后的滤波器滤波后的波形使信号得以连续,并消除了高频边界处产生的波形跃变。
这里的滤波器为进行IDCT变换的子带合成滤波器,为音频解码中必须要求的元件。在总线、处理器等资源的响应速度出现问题时,在IDCT变换前插入零值,滤波器对解码单元送入的S域采样值和零值一起进行IDCT变换和加窗处理,使之从频域转换到时域。这样,插入的零值不会产生波形的跃变,也就不需要额外的低通滤波器进行平滑滤波。
在本发明的其他实施例中,在总线、处理器等资源的响应速度出现问题时,解码单元例如根据前面的信号预测得到插值,并把预测得到的插值送给滤波器。
在本发明的其他实施例中,如果上一帧正确解码,解码单元可以将上一帧的解码结果作为插值,重复输出送给滤波器。
图8是根据本发明的一个实施例的一种音频解码方法的流程图。参见图8并结合前面的描述,步骤S81,对接收到的外部基本码流ES进行解码,获得S域采样值。步骤S82,对所述S域采样值或插值进行离散余弦变换和加窗处理,输出PCM采样值(在未提供插值的情况下,该步骤仅对S域采样值进行离散余弦变换和加窗处理)。步骤S83,检测并判断输出的PCM采样值的数据量是否达到下溢状态,如否,程序返回步骤S82继续对S域采样值进行离散余弦变换和加窗处理,输出PCM采样值;如是,则提供插值,程序返回步骤S83,此时对所述插值进行离散余弦变换和加窗处理并输出PCM采样值。
图9是根据本发明一个实施例的一种音频解码器中的平滑滤波方法的流程图。结合图4和图9,所述音频解码器包括对接收到的外部基本码流ES进行解码获得S域采样值的解码单元43,对所述S域采样值进行离散余弦变换和加窗处理,获得PCM采样值的滤波器45,以及用以输出所述PCM采样值的输出缓冲器47。所述平滑滤波方法包括步骤S91,当总线、处理器等资源的响应速度出现问题,检测到输出缓冲器的数据量减少到下溢状态时,发出下溢信号almost_empty给解码单元。步骤S93,解码单元在下溢信号almost_empty的触发下,送插值给滤波器。步骤S95,滤波器对解码单元送入的S域采样值和插值进行离散余弦变换和加窗处理。
本实施例只是为了进一步更清楚地描述本发明,而非对本发明的限制。应该可以理解,本发明并不限于实施例所做的阐述,任何基于本发明的修改和本发明的等同物都应涵盖在本发明的权利要求的精神和范围之内。
权利要求
1.一种音频解码器,包括用以接收外部基本码流ES的输入缓冲器;对所述基本码流ES进行解码,获得S域采样值的解码单元;对所述S域采样值进行离散余弦变换和加窗处理,获得PCM采样值的滤波器;以及用以输出所述PCM采样值的输出缓冲器,其中,所述解码单元还接收输出缓冲器反馈的下溢信号向所述滤波器输入插值,所述滤波器对所述插值和所述S域采样值进行频域到时域的转换。
2.如权利要求1所述的音频解码器,其特征在于,所述解码单元包括用以对所述基本码流ES进行解析的解析模块,以及用以对解析得到的数据进行解码获得S域采样值的重构模块。
3.如权利要求2所述的音频解码器,其特征在于,所述解码单元包括用以向所述滤波器输入插值的插值单元,以及用以根据输出缓冲器反馈的下溢信号控制所述插值单元进行插值的插值计数器。
4.如权利要求3所述的音频解码器,其特征在于,所述插值单元包括根据插值计数器的控制对输入的S域采样值和插值进行选通的多路复用器。
5.如权利要求1至4任一所述的音频解码器,其特征在于,所述滤波器为子带合成滤波器。
6.一种音频解码方法,包括对接收到的外部基本码流ES进行解码,获得S域采样值;对所述S域采样值进行离散余弦变换和加窗处理,输出PCM采样值;当检测到输出的PCM采样值的数据量达到下溢状态时,提供插值;所述插值与所述S域采样值一起进行离散余弦变换和加窗处理。
7.如权利要求6所述的方法,其特征在于,所述提供插值的步骤由一个插值计数器控制。
8.如权利要求7所述的方法,其特征在于,所述插值与所述S域采样值一起进行离散余弦变换和加窗处理的步骤包括根据所述插值计数器的控制,选通所述S域采样值或选通所述插值进行所述处理的步骤。
9.一种音频解码器中的平滑滤波方法,所述音频解码器包括对接收到的外部基本码流ES进行解码获得S域采样值的解码单元,对所述S域采样值进行离散余弦变换和加窗处理,获得PCM采样值的滤波器,以及用以输出所述PCM采样值的输出缓冲器,所述方法包括当输出缓冲器的数据量减少到下溢状态时,发出下溢信号给解码单元;解码单元在下溢信号的触发下,送插值给滤波器;滤波器对解码单元送入的S域采样值和插值进行离散余弦变换和加窗处理。
10.如权利要求6或9所述的方法,其特征在于,所述插值为零值,或为解码过程中根据前面的信号预测得到的值,或为上一帧正确解码的情况下重复将上一帧的解码结果作为插值。
全文摘要
音频解码方法、音频解码器及其中的平滑滤波方法。其中的音频解码器包括用以接收外部基本码流ES的输入缓冲器;对所述基本码流ES进行解码获得S域采样值的解码单元;对所述S域采样值进行离散余弦变换和加窗处理获得PCM采样值的滤波器;以及用以输出所述PCM采样值的输出缓冲器。其中,所述解码单元还接收输出缓冲器反馈的下溢信号向所述滤波器输入插值,所述滤波器对所述插值和所述S域采样值进行频域到时域的转换。本发明在音频解码器的IDCT转换之前进行平滑滤波,对采样值在频域时插入静音或重放信号,复用合成滤波器进行平滑滤波,故不但滤除了高频干扰并且免除了对额外的平滑滤波器和缓冲器的需求,节约了电路面积,降低了成本。
文档编号H04N7/52GK1980397SQ20051011108
公开日2007年6月13日 申请日期2005年12月2日 优先权日2005年12月2日
发明者周振亚, 刘彦, 宋东海 申请人:上海奇码数字信息有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1