音频播放中数据流断点续接的方法和系统、fifo控制器的制作方法

文档序号:6773134阅读:254来源:国知局
专利名称:音频播放中数据流断点续接的方法和系统、fifo控制器的制作方法
技术领域
本发明涉及音频数据传输控制技术领域,特别是涉及一种音频播放中数据流断点续接的方法和系统、以及一种FIFO控制器。
背景技术
在实际的音频播放中,通常对应有一个FIFO缓存单元来存储要播放的音频数据, FIFO控制器将缓存的音频数据通过的音频接口(一般是I2S接口)传输到音频设备的声卡上,实现音频数据流的播放。一般的,利用直接存储器访问(DMA,Direct Memory Access) 控制器或中央处理器(CPU),通过总线仲裁的方式访问主存,将主存中的音频数据写入到 FIFO缓存单元中。但是由于主存同时和多个总线主设备(bus master)相连,各个master 通过总线从主存获取相应的数据,通过总线仲裁竞争对主线的占用。因为访问优先级、传输带宽、DMA或者CPU的延时等原因,音频数据不一定能够及时读到FIFO中,因此就会出现 FIFO缓存为空的可能,一旦FIFO缓存为空,音频接口上输出的数据为空,音频流会被中断, 表现为声音播放中的卡音现象的出现。当再次有数据流输入至FIFO缓存中,后续的音频播放会将原本的播放时间拉长。通常的,现有技术的解决方法是增大FIFO缓存的容量,一次请求多个数据进行大量数据的缓存,保证有足够的数据量传输给音频设备。单纯的增大请求量和FIFO缓存空间,当访问主存等待较长的时间时,也会出现FIFO缓存数据量为空的情况,同样会产生数据流中断的现象。总之,需要本领域技术人员迫切解决的一个技术问题就是如何能够提供一种音频播放中数据流中断的处理方法,解决音频播放中的卡音现象,以提高音频播放的质量。

发明内容
本发明所要解决的技术问题是提供一种音频播放中数据流断点续接的方法和系统、以及一种FIFO控制器,解决音频播放中的卡音现象,以提高音频播放的质量。为了解决上述问题,本发明公开了一种音频播放中数据流断点续接的方法,包括将主存中存储的音频数据写入到FIFO缓存单元中;FIFO缓存单元对从主存中写入的音频数据进行缓存,并将音频数据以先入先出队列的形式输入至音频设备;当FIFO缓存单元中缓存的音频数据为空时,根据之前输出的音频数据进行二次曲线预测获得预测数据,并将预测数据输入至音频设备。优选的,所述方法还包括每输出一个预测数据,计数器的计数累加1。优选的,所述方法还包括当再次有音频数据写入FIFO缓存单元,判断计数器的计数是否为零;若是,则直接将FIFO缓存单元中的音频数据输入至音频设备;若否,则写入一个音频数据,相应删除该音频数据并将计数器的计数递减1,直到计数器的计数为零;当FIFO缓存单元不为空时,将FIFO缓存单元中后续的音频数据输入至音频设备。优选的,所述方法还包括写入一个音频数据,相应删除该音频数据并将计数器的计数递减1后,FIFO缓存单元为空时,根据之前输出的预测数据和/或写入的音频数据进行二次曲线预测获得预测数据,并将预测数据输入至音频设备。优选的,所述二次曲线预测为将预置数目的输出时刻作为各个X值,将与输出时刻对应的音频数据和/或预测数据作为各个Y值;通过对各个X、Y值进行最小二乘曲线拟合,获得下一输出时刻对应的Y值,作为预测数据。相应的,本发明还公开了一种音频播放中数据流断点续接的系统,包括主存、数据读取控制单元、FIFO控制器和音频设备;其中,所述主存,用于存储音频数据;所述数据读取控制单元,用于将主存中存储的音频数据写入到FIFO缓存单元中;所述FIFO控制器包括FIFO缓存单元,用于对从主存中写入的音频数据进行缓存;音频数据输出单元,用于当FIFO缓存单元中缓存的音频数据不为空时,将音频数据以先入先出队列的形式输入至音频设备;预测数据输出单元,用于当FIFO缓存单元中缓存的音频数据为空时,根据之前输出的音频数据进行二次曲线预测获得预测数据,并将预测数据输入至音频设备;所述音频设备,用于接收FIFO控制器输出的音频数据或预测数据,并进行音频播放。优选的,所述FIFO控制器还包括计数器,用于每当预测数据输出单元输出一个预测数据时,将计数累加1。优选的,所述FIFO控制器还包括判断单元,用于当再次有音频数据写入FIFO缓存单元时,判断计数器的计数是否为零;若是,则直接触发音频数据输出单元;若否,则触发数据删除单元;数据删除单元,用于写入一个音频数据,相应删除该音频数据,直到计数器的计数为零,并在FIFO缓存单元不为空时,触发音频数据输出单元;其中,数据删除单元每删除一个音频数据,计数器的计数递减1。优选的,数据删除单元写入一个音频数据,相应删除该音频数据并将计数器的计数递减1后,在FIFO缓存单元为空时,触发预测数据输出单元根据之前输出的预测数据和 /或写入的音频数据进行二次曲线预测获得预测数据,并将预测数据输入至音频设备。优选的,所述二次曲线预测为将预置数目的输出时刻作为各个X值,将与输出时刻对应的音频数据和/或预测数据作为各个Y值;通过对各个X、Y值进行最小二乘曲线拟合,获得下一输出时刻对应的Y值,作为预测数据。此外,本发明还公开了一种FIFO控制器,包括FIFO缓存单元,用于对从主存中写入的音频数据进行缓存;音频数据输出单元,用于当FIFO缓存单元中缓存的音频数据不为空时,将音频数据以先入先出队列的形式输入至音频设备;预测数据输出单元,用于当FIFO缓存单元中缓存的音频数据为空时,根据之前输出的音频数据进行二次曲线预测获得预测数据,并将预测数据输入至音频设备。
优选的,所述FIFO控制器还包括计数器,用于每当预测数据输出单元输出一个预测数据时,将计数累加1,以及每当数据删除单元删除一个音频数据时,将计数递减1 ;判断单元,用于当再次有音频数据写入FIFO缓存单元时,判断计数器的计数是否为零;若是,则直接触发音频数据输出单元;若否,则触发音频数据输出单元;数据删除单元,用于写入一个音频数据,相应删除该音频数据,直到计数器的计数为零,并在FIFO缓存单元不为空时,触发音频数据输出单元。优选的,数据删除单元写入一个音频数据,相应删除该音频数据并将计数器的计数递减1后,在FIFO缓存单元为空时,触发预测数据输出单元根据之前输出的预测数据和 /或写入的音频数据进行二次曲线预测获得预测数据,并将预测数据输入至音频设备。与现有技术相比,本发明具有以下优点本发明在FIFO缓存单元不为空的情况下直接将音频数据以先入先出队列的形式输入至音频设备;在FIFO缓存单元为空的情况下进行数据传输的有效补充,由于相邻音频数据之间具有曲线平滑规律,因此补充的数据根据之前输出的数据进行二次曲线预测获得。通过预测数据使得数据流在中断的情况能够衔接,解决了音频播放中的卡音现象,以提高音频播放的质量。并且,由于输出的预测数据符合音频的播放规律,在保证播放连续的情况下不影响用户的听觉需求。进一步,本发明通过计数器记录输出预测数据的个数,对新写入FIFO缓存单元中的音频数据按计数进行相应的删除,使得传输的数据量保持一致,保证了音乐播放中的连贯性。


图1是本发明一种音频播放中数据流断点续接的方法实施例一的流程图;图2是本发明一种二次曲线预测的原理示意图;图3是本发明一种音频播放中数据流断点续接的方法实施例二的流程图;图4是本发明一种音频播放中数据流断点续接的系统实施例一的结构示意图;图5是本发明一种音频播放中数据流断点续接的系统实施例二的结构示意图;图6是本发明一种FIFO控制器实施例的结构示意图。
具体实施例方式为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式
对本发明作进一步详细的说明。本发明的核心构思之一在于加入了 FIFO的容错机制,能够在FIFO缓存单元为空的情况下进行数据传输的有效补充,由于相邻音频数据之间具有曲线平滑规律,因此补充的数据根据之前输出的数据进行二次曲线预测获得,符合音频的播放规律,在保证播放连续的情况下满足用户的听觉需求。参照图1,示出了本发明一种音频播放中数据流断点续接的方法实施例一的流程图,包括步骤101,将主存中存储的音频数据写入到FIFO缓存单元中;
6
主存中存储有待播放的音频数据,当有播放需求时,先将主存中存储的音频数据写入到FIFO缓存单元。一般的,利用DMA或者CPU通过总线仲裁的方式访问主存,将其存储的音频数据写入到FIFO缓存单元中。步骤102,FIFO缓存单元对从主存中写入的音频数据进行缓存,并将音频数据以先入先出队列的形式输入至音频设备;FIFO缓存单元是一种先进先出的双口数据缓存器,第一个进入其内的数据第一个被移出,其中一个存储器的输入口,另一个口是存储器的输出口。它与普通存储器的区别是没有外部读写地址线,这样使用起来非常简单。它只能顺序写入数据,顺序的读出数据,其数据地址由内部读写指针自动加1完成,不能像普通存储器那样可以由地址线决定读取或写入某个指定的地址。步骤103,当FIFO缓存单元中缓存的音频数据为空时,根据之前输出的音频数据进行二次曲线预测获得预测数据,并将预测数据输入至音频设备。由于FIFO缓存单元中存储的数据是通过总线从主存内得到的,而其它总线设备的数据获取也来自于主存,它们之间通过总线仲裁竞争对主线的占用。因此,音频数据不一定能够以及写入到FIFO缓存单元中。在本发明实施例中,加入FIFO的容错机制,在FIFO 缓存单元为空的情况进行数据有效的补充,由于相邻音频数据之间具有曲线平滑规律,因此补充的数据是根据之前输出的数据进行二次曲线预测得出的。二次曲线法预测法是研究时间序列观察值数据随时间变动,呈现一种由高到低再到高(或者由低到高再到低)的趋势变化的曲线外推预测方法。由于时间序列观察值的散点图呈现抛物线形状,所以也称之为二次抛物线预测。具体的,所述二次曲线预测为将预置数目的输出时刻作为各个X值,将与输出时刻对应的音频数据和/或预测数据作为各个Y值;通过对各个X、Y值进行最小二乘曲线拟合,获得下一输出时刻对应的Y值,作为预测数据。假设曲线趋势外推预测模型为Yt = a+bXt+cXt2+dXt3+eXt4+......式中,Yt为t时刻音频数据的预测值(因变量),Xt为时间变量(自变量),t =
1. f 2 f · · · j η ο当c = d = . . . = 0时,Yt = a+bXt,为线性趋势外推预测法的模型;当d = e = . . . = 0时,Yt = a+bXt+cXt2,为二次曲线外推预测法的模型。如图2所示,为本发明一种二次曲线预测的原理示意图。图(a)和图(b)分别给出了两种预测趋势,一种递趋势,一种递减趋势。从图中可以看出,当需要有数据输出时,根据之前相邻输出时刻输出的音频数据值,依据二次曲线的变化趋势,即可预测到下一时刻输出值。在本发明实施例中,选取之前的三至四个数据进行预测,需要说明的是,预测的参考值的个数可以是多个,本发明对此不做限定。当预置数目多时,预测直较为准确。通过最小二乘曲线拟合确定预测值的具体计算方法是属于现有技术的内容,本发明在此不再赘述。需要说明的是,上述音频数据的计数是按照声音的类型来得到具体的单位的。如果是16bit的立体声,那么一个音频数据为32bit (对应一个word)的数据;如果是Sbit的立体声,则一个音频数据是16bit的数据;如果是Sbit的单声道,则一个音频数据为Sbit 的数据。通过本发明实施例,解决了传统方法中音频数据流在播放过程中传输中断的现象,使音频在中断的情况能够正常地输出数据,由于输出的数据经过了二次曲线预测获得, 能够符合音频的播放规律,能够满足听觉需求。参照图3,示出了本发明一种音频播放中数据流断点续接的方法实施例二的流程图,包括步骤301,将主存中存储的音频数据写入到FIFO缓存单元中;步骤302,FIFO缓存单元对从主存中写入的音频数据进行缓存,并将音频数据以先入先出队列的形式输入至音频设备;步骤303,当FIFO缓存单元中缓存的音频数据为空时,根据之前输出的音频数据进行二次曲线预测获得预测数据;步骤304,将预测数据输入至音频设备,且每输出一个预测数据,计数器的计数累加1 ;在本发明实施例二中,通过二次曲线预测将预测数据输入至音频设备后,为了保证主存再次有音频数据写入空的FIFO缓存单元后,FIFO控制器能够正常的输出数据,增加了计数器。计数器的主要目的是记录FIFO缓存数据为空后,FIFO控制器通过趋势预测补充输出给音频设备数据的个数,补充输出一个数据计数器加1。步骤305,当再次有音频数据写入FIFO缓存单元时,判断计数器的计数是否为零; 若否,则执行步骤306 ;若是,则执行步骤307 ;步骤306,写入一个音频数据,相应删除该音频数据并将计数器的计数递减1,直到计数器的计数为零,将FIFO缓存单元中后续的音频数据输入至音频设备;当计数器的计数不为0时,说明已有预测数据补充输出,补充输出的个数为计数器的计数个数η。如果此时通过DMA或者CPU返回给FIFO缓存单元断点传输的后续音频数据时,就会有多余的数据出现,多余的数据与已经输入至音频设备的预测数据一一对应,因此需要把返回的音频数据删除掉η个。则返回一个音频数据就删除一个,并且计数器的计数减1,直到计数器的计数为0为止。此时,如果计数器为0,再有数据写入FIFO缓存单元中就直接写如FIFO中。从主存中返回到FIFO缓存单元的数据,以burst进行计算,通常一个burst返回 1、2、4或8个word。可以理解的是,通常情况下,FIFO为空后,再次由主存写入FIFO缓存单元的音频数据的个数大于之前预测输出的数据个数时,则能够保证删除相应的音频数据后,FIFO缓存单元中还缓存有能够继续传输的音频数据,以供后续传输给音频设备进行播放。步骤307,直接将FIFO缓存单元中的音频数据输入至音频设备。当计数器为0时,表示没有通过二次曲线趋势预测输出数据,或者已经删除了与预测数据一一对应的新写入的音频数据,则当前FIFO缓存单元的状态是正常的,可以直接将FIFO缓存单元中的音频数据以先入先出队列的形式输入至音频设备。在本发明实施例中,依据计数器的计数,对新写入FIFO缓存单元中的音频数据进行相应的删除,使得传输的数据量保持一致,保证了音乐播放中的连贯性。需要说明的是,如果新写入FIFO缓存的音频数据的个数小于计数器的个数时,则通过删除FIFO缓存单元中的数据再次为空,按照写入音频数据的个数计数器的计数减少相应的数目,后续的传输还是通过预测进行输出。
则在本发明的另一个优选实施例中,写入一个音频数据,相应删除该音频数据并将计数器的计数递减1后,FIFO缓存单元为空时,根据之前输出的和/或写入的音频数据进行二次曲线预测获得预测数据,并将预测数据输入至音频设备。例如,当前计数器计数为3,从主存返回FIFO缓存单元两个数据,相应删除所述数据后,计数器为1,此时,没有后续数据再次写入FIFO缓存单元,FIFO再次为空。假设预置通过三个数据进行预测,则依据之前写入的两个音频数据和输出的倒数第三个预测数据进行二次曲线预测,得到下一时刻需要输出的预测数据。也就是说,由于之前输出的数据也为预测数据,为了保证预测的准确性,此时不再按照输出数据进行预测,而是将输出的预测数据结合新写入的音频数据进行预测。可以理解的是,当有足够的音频数据写入FIFO缓存单元中时,可以仅依据写入的音频数据进行预测。例如,计数器为4,从主存返回FIFO缓存单元4个数据,相应删除所述数据后,计数器为0。同样,此时没有后续数据再次写入FIFO缓存单元,FIFO再次为空,则直接依据新写入的最后三个音频数据进行预测。参照图4,示出了本发明一种音频播放中数据流断点续接的系统实施例一的结构示意图包括主存41、数据读取控制单元42、FIFO控制器43和音频设备44 ;其中,所述主存41,用于存储音频数据;所述数据读取控制单元42,用于将主存中存储的音频数据写入到FIFO缓存单元中;所述FIFO控制器43包括FIFO缓存单元431,用于对从主存中写入的音频数据进行缓存;音频数据输出单元432,用于当FIFO缓存单元中缓存的音频数据不为空时,将音频数据以先入先出队列的形式输入至音频设备;预测数据输出单元433,用于当FIFO缓存单元中缓存的音频数据为空时,根据之前输出的音频数据进行二次曲线预测获得预测数据,并将预测数据输入至音频设备;所述音频设备44,用于接收FIFO控制器输出的音频数据或预测数据,并进行音频播放。参照图5,示出了本发明一种音频播放中数据流断点续接的系统实施例二的结构示意图包括主存51、数据读取控制单元52、FIFO控制器53和音频设备M ;其中,所述主存51,用于存储音频数据;所述数据读取控制单元52,用于将主存中存储的音频数据写入到FIFO缓存单元中;所述FIFO控制器53包括FIFO缓存单元531,用于对从主存中写入的音频数据进行缓存;音频数据输出单元532,用于当FIFO缓存单元中缓存的音频数据不为空时,将音频数据以先入先出队列的形式输入至音频设备;预测数据输出单元533,用于当FIFO缓存单元中缓存的音频数据为空时,根据之前输出的音频数据进行二次曲线预测获得预测数据,并将预测数据输入至音频设备;所述音频设备M,用于接收FIFO控制器输出的音频数据或预测数据,并进行音频播放。通常的,所述数据读取控制单元为DMA控制器或者CPU。所述FIFO控制器通过音
9频接口阳将音频数据输入至音频设备的声卡上。在本发明的一个优选实施例中,参照图5,所述FIFO控制器53还包括计数器534,用于每当预测数据输出单元输出一个预测数据时,将计数累加1。计数器的主要目的是记录FIFO缓存数据为空后,FIFO控制器补充输出给音频设备数据的个数,即预测数据输出单元输出预测数据的个数。补充输出一个预测数据,计数器加1,当计数器为0时表示没有通过数据输出单元补充输出数据,也即当前FIFO缓存的状态是正常的。进一步,所述FIFO控制器53还包括判断单元535,用于当再次有音频数据写入FIFO缓存单元时,判断计数器的计数是否为零;若是,则直接触发音频数据输出单元532 ;若否,则触发数据删除单元536 ;数据删除单元536,用于写入一个音频数据,相应删除该音频数据,直到计数器的计数为零,并在FIFO缓存单元不为空时,触发音频数据输出单元;其中,数据删除单元每删除一个音频数据,计数器的计数递减1。在本发明的一个优选实施例中,数据删除单元536写入一个音频数据,相应删除该音频数据并将计数器的计数递减1后,在FIFO缓存单元为空时,触发预测数据输出单元 533根据之前输出的预测数据和/或写入的音频数据进行二次曲线预测获得预测数据,并将预测数据输入至音频设备。进一步,所述二次曲线预测为将预置数目的输出时刻作为各个X值,将与输出时刻对应的音频数据和/或预测数据作为各个Y值;通过对各个χ、γ值进行最小二乘曲线拟合,获得下一输出时刻对应的Y 值,作为预测数据。参照图6,示出了本发明一种FIFO控制器实施例的结构示意图,包括FIFO缓存单元61,用于对从主存中写入的音频数据进行缓存;音频数据输出单元62,用于当FIFO缓存单元中缓存的音频数据不为空时,将音频数据以先入先出队列的形式输入至音频设备;预测数据输出单元63,用于当FIFO缓存单元中缓存的音频数据为空时,根据之前输出的音频数据进行二次曲线预测获得预测数据,并将预测数据输入至音频设备。进一步,所述FIFO控制器还包括计数器64,用于每当预测数据输出单元输出一个预测数据时,将计数累加1,以及每当数据删除单元删除一个音频数据时,将计数递减1 ;判断单元65,用于当再次有音频数据写入FIFO缓存单元时,判断计数器的计数是否为零;若是,则直接触发音频数据输出单元;若否,则触发音频数据输出单元;数据删除单元66,用于写入一个音频数据,相应删除该音频数据,直到计数器的计数为零,并在FIFO缓存单元不为空时,触发音频数据输出单元。在本发明的一个优选是实施例中,数据删除单元写入一个音频数据,相应删除该音频数据并将计数器的计数递减1后,在FIFO缓存单元为空时,触发预测数据输出单元根据之前输出的预测数据和/或写入的音频数据进行二次曲线预测获得预测数据,并将预测数据输入至音频设备。本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于系统和装置
10实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。 以上对本发明所提供的一种音频播放中数据流断点续接的方法和系统、以及一种 FIFO控制器,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
权利要求
1.一种音频播放中数据流断点续接的方法,其特征在于,包括 将主存中存储的音频数据写入到FIFO缓存单元中;FIFO缓存单元对从主存中写入的音频数据进行缓存,并将音频数据以先入先出队列的形式输入至音频设备;当FIFO缓存单元中缓存的音频数据为空时,根据之前输出的音频数据进行二次曲线预测获得预测数据,并将预测数据输入至音频设备。
2.如权利要求1所述的方法,其特征在于,所述方法还包括 每输出一个预测数据,计数器的计数累加1。
3.如权利要求2所述的方法,其特征在于,所述方法还包括当再次有音频数据写入FIFO缓存单元,判断计数器的计数是否为零; 若是,则直接将FIFO缓存单元中的音频数据输入至音频设备; 若否,则写入一个音频数据,相应删除该音频数据并将计数器的计数递减1,直到计数器的计数为零;当FIFO缓存单元不为空时,将FIFO缓存单元中后续的音频数据输入至音频设备。
4.如权利要求3所述的方法,其特征在于,所述方法还包括写入一个音频数据,相应删除该音频数据并将计数器的计数递减1后,FIFO缓存单元为空时,根据之前输出的预测数据和/或写入的音频数据进行二次曲线预测获得预测数据,并将预测数据输入至音频设备。
5.如权利要求4所述的方法,其特征在于,所述二次曲线预测为将预置数目的输出时刻作为各个X值,将与输出时刻对应的音频数据和/或预测数据作为各个Y值;通过对各个X、Y值进行最小二乘曲线拟合,获得下一输出时刻对应的Y值,作为预测数据。
6.一种音频播放中数据流断点续接的系统,其特征在于,包括主存、数据读取控制单元、FIFO控制器和音频设备;其中,所述主存,用于存储音频数据;所述数据读取控制单元,用于将主存中存储的音频数据写入到FIFO缓存单元中; 所述FIFO控制器包括FIFO缓存单元,用于对从主存中写入的音频数据进行缓存;音频数据输出单元,用于当FIFO缓存单元中缓存的音频数据不为空时,将音频数据以先入先出队列的形式输入至音频设备;预测数据输出单元,用于当FIFO缓存单元中缓存的音频数据为空时,根据之前输出的音频数据进行二次曲线预测获得预测数据,并将预测数据输入至音频设备;所述音频设备,用于接收FIFO控制器输出的音频数据或预测数据,并进行音频播放。
7.如权利要求6所述的系统,其特征在于,所述FIFO控制器还包括计数器,用于每当预测数据输出单元输出一个预测数据时,将计数累加1。
8.如权利要求7所述的系统,其特征在于,所述FIFO控制器还包括判断单元,用于当再次有音频数据写入FIFO缓存单元时,判断计数器的计数是否为零;若是,则直接触发音频数据输出单元;若否,则触发数据删除单元;数据删除单元,用于写入一个音频数据,相应删除该音频数据,直到计数器的计数为零,并在FIFO缓存单元不为空时,触发音频数据输出单元;其中,数据删除单元每删除一个音频数据,计数器的计数递减1。
9.如权利要求8所述的系统,其特征在于,数据删除单元写入一个音频数据,相应删除该音频数据并将计数器的计数递减1后, 在FIFO缓存单元为空时,触发预测数据输出单元根据之前输出的预测数据和/或写入的音频数据进行二次曲线预测获得预测数据,并将预测数据输入至音频设备。
10.如权利要求9所述的系统,其特征在于,所述二次曲线预测为将预置数目的输出时刻作为各个X值,将与输出时刻对应的音频数据和/或预测数据作为各个Y值;通过对各个X、Y值进行最小二乘曲线拟合,获得下一输出时刻对应的Y值,作为预测数据。
11.一种FIFO控制器,其特征在于,包括FIFO缓存单元,用于对从主存中写入的音频数据进行缓存;音频数据输出单元,用于当FIFO缓存单元中缓存的音频数据不为空时,将音频数据以先入先出队列的形式输入至音频设备;预测数据输出单元,用于当FIFO缓存单元中缓存的音频数据为空时,根据之前输出的音频数据进行二次曲线预测获得预测数据,并将预测数据输入至音频设备。
12.如权利要求11所述的FIFO控制器,其特征在于,所述FIFO控制器还包括计数器,用于每当预测数据输出单元输出一个预测数据时,将计数累加1,以及每当数据删除单元删除一个音频数据时,将计数递减1 ;判断单元,用于当再次有音频数据写入FIFO缓存单元时,判断计数器的计数是否为零;若是,则直接触发音频数据输出单元;若否,则触发音频数据输出单元;数据删除单元,用于写入一个音频数据,相应删除该音频数据,直到计数器的计数为零,并在FIFO缓存单元不为空时,触发音频数据输出单元。
13.如权利要求12所述的FIFO控制器,其特征在于,数据删除单元写入一个音频数据,相应删除该音频数据并将计数器的计数递减1后, 在FIFO缓存单元为空时,触发预测数据输出单元根据之前输出的预测数据和/或写入的音频数据进行二次曲线预测获得预测数据,并将预测数据输入至音频设备。
全文摘要
本发明提供了一种音频播放中数据流断点续接的方法和系统、以及一种FIFO控制器,所述方法包括将主存中存储的音频数据写入到FIFO缓存单元中;FIFO缓存单元对从主存中写入的音频数据进行缓存,并将音频数据以先入先出队列的形式输入至音频设备;当FIFO缓存单元中缓存的音频数据为空时,根据之前输出的音频数据进行二次曲线预测获得预测数据,并将预测数据输入至音频设备。通过本发明,使得音频播放过程中数据流在中断的情况能够衔接,且输出的数据符合音频的播放规律,解决了卡音现象,提高了音频播放的质量,满足用户的听觉需求。
文档编号G11B20/12GK102403008SQ201010287038
公开日2012年4月4日 申请日期2010年9月17日 优先权日2010年9月17日
发明者艾国 申请人:北京中星微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1