专利名称:控制音频流缓冲的方法和装置的制作方法
技术领域:
本发明涉及一种控制数字音频缓冲的系统,特别涉及一种控制音频流缓冲以便用最少的缓冲连续无中断地播放音频的方法和装置。
背景技术:
一般说来,人类的耳朵对音频录音重现时的音频流中断很敏感。为防止音频流的中断,音频播放器在缓冲终端执行缓冲。
传统音频播放器在复合缓冲器控制音频数据缓冲以存储已还原的音频数据。
然而,由于控制由传统复合缓冲器执行的缓冲的方法涉及已解码的音频数据,需要大量的内存,从而大量内存引起的信号延迟时间增加。
发明内容
为解决上述及其它问题,本发明的一个方面是提供一种控制音频流缓冲的方法和装置,该方法和装置能够使用最少的内存减少音频的中断,其中,由传统复合缓冲器控制的、用于存储已还原的音频数据的缓冲,为存储压缩音频数据的解码缓冲器所控制。
因此,为实现上述方面,根据本发明的一个方面,提供了一种控制数据缓冲的方法。该方法包括(a)考虑到网络的状态,基于对应于数据包划分单元的时间标记,确定压缩音频数据的缓冲时长;(b)基于步骤(a)中确定的缓冲时间,计算压缩音频数据在缓冲器中存储的时长;(c)在解码缓冲器中将输入的压缩音频数据缓冲步骤(b)中计算出的时长;以及(d)当步骤(c)中的缓冲时长结束时,将解码缓冲器中存储的压缩音频数据解码,并将已解码的音频数据存储在复合缓冲器中,以与视频数据同步。
为实现上述方面,根据本发明的另一个方面,提供了一种控制数据缓冲的装置。改装置包括分析单元,用于从网络接收音频流,并将接收到的音频流划分为首标和压缩音频数据;解码缓冲器,用于存储已在分析单元中分离出来的压缩音频数据;解码器,用于还原存储在解码缓冲器的音频数据;复合缓冲器,用于存储已由解码器解码的音频数据;声卡缓冲器,用于存储原来存储在复合缓冲器中的音频数据,以播放该音频数据;以及控制器,用于以基于时间标记确定的缓冲时长为基础,计算存储在解码缓冲器中的时长,将解码缓冲器中的音频数据缓冲该时长,当解码缓冲器的缓冲时长结束时,将音频数据解码并存储到在复合缓冲器中,并且参考分析单元分离出的首标信息中的时间标记,将存储在复合缓冲器中的音频数据输出到声卡缓冲器。
通过结合附图对本发明的优选实施例进行详细描述,本发明的上述目的和优点将会变得更加清楚,其中图1给出根据本发明的控制音频流缓冲的装置的方框图;而图2给出图解根据本发明的控制音频流缓冲的方法的流程图。
具体实施例方式
下面将参考附图详细描述本发明的结构和操作。
图1给出根据本发明的控制音频流缓冲的装置的方框图。参考图1,控制音频流缓冲的装置包括分析单元110、解码缓冲器120、解码器130、复合缓冲器140、控制器150、声卡缓冲器160、扬声器170。
下面参考附图1描述控制音频流缓冲的装置。
首先,程序提供者通过网络或文件提供AC3或MP3格式的压缩包单元作为音频流。音频流由首标和音频数据组成。而首标中包含同步信息如时间标记。所有音频包都是具有相同时间单位的存取单元,并被划分成复合时间标记。
分析单元110从网络接收音频流,并将接收到的音频流划分为首标和压缩音频数据。
解码缓冲器120将已在分析单元110中分离出来的压缩音频数据缓冲预定的时长。该预定的时长通过从缓冲时长中减去解码器的解码时间和声卡缓冲器的延迟时间得到。
解码器130将存储在解码缓冲器120中的压缩音频数据解码。
复合缓冲器140存储从解码器130接收的已解码的音频数据,以与视频数据和其它源数据同步。
基于控制器150产生的时间标记信息,声卡缓冲器160存储原来存储在复合缓冲器140中的音频数据。
控制器150以基于分析单元110检测到的时间标记确定的缓冲时长为基础,计算存储在解码缓冲器120中的时长;将解码缓冲器120中的音频数据缓冲该时长;当解码缓冲器120的数据存储时间结束时,将音频数据输出到解码器130;执行解码;将已解码的音频数据缓冲在复合缓冲器140中;并且参考分析单元110检测到的时间标记,将存储在复合缓冲器140中的音频数据输出到声卡缓冲器160最后,存储在声卡缓冲器160中的音频数据被传送到声卡,并通过扬声器170播放。
图2给出图解根据本发明的控制音频流缓冲的方法的流程图。
假设复合时间标记为Tcts,缓冲时长为Tdelay,声卡缓冲器160中延迟的时间为Tdelta,而最大解码时间为Tdecoding。在所有数字音频压缩方法中,抽样数据以预定的时长压缩。因此,重放时间可以通过存取单元数乘以它们的持续时间计算。另外,因为解码缓冲器120存储压缩音频数据,所以就同样的时长而言,解码缓冲器120的长度远比复合缓冲器140的长度小。
在步骤210中,考虑到网络的状态,基于对应于复合时间标记Tcts的时间中的一点,确定缓冲时长Tdelay。结果,确定了将由解码缓冲器120缓冲的存取单元数。
随后,在步骤220中,基于已确定的缓冲时长Tdelay,计算在解码缓冲器120中存储音频数据的时长。更确切的说,通过从缓冲时长中减去解码器130的解码时间和声卡缓冲器160的延迟时间,得到在解码缓冲器120中存储的时长。
随后,在步骤225和230中,解码缓冲器120缓冲通过网络输入的压缩音频数据,直到该计算出的时长结束。
随后,当由解码缓冲器120缓冲的压缩音频数据的缓冲时间超过上述计算出的时长时,将压缩音频数据输出到解码器130。
随后,在步骤240中,解码器130将从解码缓冲器120输入的压缩音频数据解码。
随后,在步骤250中,在复合缓冲器140中存储已解码的音频数据,以与其它数据如视频数据同步。在这种情况下,在复合缓冲器140中存储的时间是实际时间之和,所述实际时间对应于复合时间标记和((Tdecoding-actualdecoding time)+Tdelta)。
随后,在步骤260中,检查复合缓冲器140的音频数据存储时间是否超过了复合时间标记Tcts减去声卡缓冲器160的延迟时间Tdelta得到的时间。
在这种情况下,当复合缓冲器140的音频数据存储时间超过了复合时间标记Tcts减去声卡缓冲器160的延迟时间Tdelta得到的时间时,将音频数据传送到声卡缓冲器160。
随后,在步骤280中,根据抽样率重现存储在声卡缓冲器160中音频数据。在这种情况下,一旦有一个存取单元处于备用状态,而且当前正在播放的存取单元结束,就可播放存储在声卡缓冲器160中音频数据,因此,需要至少能够容纳两个存取单元的缓冲器。
如上所述,在这种根据本发明的控制音频流缓冲的方法和装置中,由传统复合缓冲器控制的、用于存储已还原的音频数据的缓冲,为存储压缩音频数据的解码缓冲器所控制,由此使用最少的内存减少了音频的中断。
本发明不只限于上述实施例,但是本领域的技术人员应该理解,在不脱离本发明的精神和范围的情况下,可以对其进行形式和细节的各种修改。换句话说,本发明可以被用于控制视频流的缓冲。
权利要求
1.一种控制数据缓冲的方法,该方法包括(a)考虑到网络的状态,基于对应于数据包划分单元的时间标记,确定压缩音频数据的缓冲时长;(b)基于步骤(a)中确定的缓冲时间,计算压缩音频数据在缓冲器中存储的时长;(c)在解码缓冲器中将输入的压缩音频数据缓冲步骤(b)中计算出的时长;以及(d)当步骤(c)中的缓冲时长结束时,将解码缓冲器中存储的压缩音频数据解码,并将已解码的音频数据存储在复合缓冲器中,以与视频数据同步。
2.如权利要求1中的方法,其中在步骤(b)中的缓冲器中存储的时长,通过从缓冲时长中减去解码器的解码时间和声卡缓冲器的延迟时间得到。
3.如权利要求1中的方法,其中在步骤(d)中的解码数据存储时间是对应于时间标记的时间与((最大解码时间-实际解码时间)+缓冲时长)之和。
4.如权利要求1中的方法,进一步包括通过参考时间标记信息,将步骤(d)中存储的音频数据存储到声卡缓冲器中。
5.如权利要求4中的方法,其中存储到声卡缓冲器中的时间是时间标记减去声卡缓冲器的延迟时间得到的时间。
6.一种控制数据缓冲的装置,改装置包括分析单元,用于从网络接收音频流,并将接收到的音频流划分为首标和压缩音频数据;解码缓冲器,用于存储已在分析单元中分离出来的压缩音频数据;解码器,用于还原存储在解码缓冲器中的音频数据;复合缓冲器,用于存储已由解码器还原的音频数据;声卡缓冲器,用于存储原来存储在复合缓冲器中的音频数据,以播放该音频数据;以及控制器,用于以基于时间标记确定的缓冲时长为基础,计算存储在解码缓冲器中的时长,将解码缓冲器中的音频数据缓冲该时长,当解码缓冲器的缓冲时长结束时,将音频数据解码并存储到在复合缓冲器中,并且参考分析单元分离出的首标信息中的时间标记,将存储在复合缓冲器中的音频数据输出到声卡缓冲器。
全文摘要
一种控制音频流缓冲以便用最少的缓冲连续无中断地播放音频的方法和装置。该控制数据缓冲的方法包括步骤(a)考虑到网络的状态,基于对应于数据包划分单元的时间标记,确定压缩音频数据的缓冲时长;(b)基于步骤(a)中确定的缓冲时间,计算压缩音频数据在缓冲器中存储的时长;(c)在解码缓冲器中将输入的压缩音频数据缓冲步骤(b)中计算出的时长;以及(d)当步骤(c)中的缓冲时长结束时,将解码缓冲器中存储的压缩音频数据解码,并将已解码的音频数据存储在复合缓冲器中,以与视频数据同步。
文档编号H04L12/56GK1455408SQ02160888
公开日2003年11月12日 申请日期2002年12月31日 优先权日2002年5月4日
发明者姜相旭, 裵大奎 申请人:三星电子株式会社