一种多媒体文件音视频同步播放的系统及方法

文档序号:7690486阅读:280来源:国知局

专利名称::一种多媒体文件音视频同步播放的系统及方法
技术领域
:本发明涉及一种多媒体文件音视频同步播放的方法及系统,尤其涉及一种以音频数据的播放进度为参考,来同步视频播放的方法及系统。
背景技术
:随着半导体工业的发展,多媒体技术一直是IT(InformationTechnology,信息技术)研发人员的重要研发对象。在目前的个人计算机上,已经有多种功能强大的多々某体解决方案,包含多媒体的播放、捕获和编辑等方面。然而个人计算机的体积相对庞大,开关机时间长,无法满足消费者随时随地享受多媒体娱乐的要求。因此,近年来消费性电子得到飞速发展,手机、PMP(PortableMediaPlayer,便携式媒体播放器)、数码相框等产品层出不穷。在这些产品中,人们最关心的多媒体方面的技术,就是如何实现音视频数据的同步播放。对于不同的多媒体数据格式和不同能力的CPU,同步播放的方法也不相同。目前,4艮多现有同步技术都是针对MPEG(MovingPicturesExpertsGroup)格式的,这些方法比较通用。但MPEG算法具有复杂度较高,相邻帧相互不独立,码流中须包含专为影音同步而设立的时间戳信息等特点。而针对其它的数据格式,尤其是各视频帧相互独立的数据格式(如motionjpeg,此格式在数码相机及监控产品中大量使用),使用这些通用的同步方法会有如下缺点1.很多数据格式中没有时间戳,因为时间戳会使编码器和解码器的负担同时增加;2.对于运算能力较差的平台,如果其解码过程不实时,则无法同步;3.这些方法中,音频和视频的播放控制都需要定时器,还可能有其他硬件资源,成本较高,复杂度也大。在公开号为CN1791207,7>开日为2006年6月21日,发明名称为"一种播放装置及其方法"的中国发明专利申请中公开了一种播放装置及方法,该专装置或方法是依据音频信号部分所产生的时间戳记来同步影像与音频的。其通过时间戳记来预先得知图框的播放时序,因此便可于影像与音讯不同步之前即完成校正,有效改善影音播放的品质。但是该专利也是仅仅针对包含时间戳的影音数据,并不适用于不包含时间戳的影音数据的同步处理。
发明内容本发明要解决的技术问题是提供一种多媒体文件音视频同步播放的方法及系统,该方法或系统不需要时间戳,在解码不实时的情况下,也能实现同步,且自动适应不同运算能力的平台;另外,对硬件资源的占用小,软件复杂度也很低;可有效的降低成本。为了解决上述问题,本发明提供了一种多媒体文件音视频同步播放的系统,包括影音信号分流单元,用于将多媒体数据分成音频数据和视频数据并输出;音频处理单元,用于对所述影音信号分流单元输出的音频数据进行解码和播放;视频处理单元,用于对所述影音信号分流单元输出的视频数据进行解码和播放;还包括影音同步控制单元,用于检测所述音频处理单元的播放进度,并将其与一预定值进行比较,当播放进度大于该预定值时,向所述影音信号分流单元发送同步控制指令,指示影音信号分流单元读取相应帧的视频数据进行输出播放。进一步地,所述影音同步控制单元包括音频播放侦测模块和命令发送模块,其中,所述音频播放侦测模块用于检测所述音频处理单元中音频播放模块的播放进度并进行记录,所述音频播放侦测模块将播放进度与所述预定值进行比较,当播放进度大于该预定值时,发送控制信息给所述命令发送模块,将所记录的播放进度减去所述预定值并在该差值基础上继续记录播放进度;所述命令发送模块用于在接到所述控制信息后发送所述同步控制指令给所述影音信号分流单元中的视频数据读取;漠块;所述视频数据读取模块,用于在接收到所述同步控制指令后将是否响应同步控制指令的反馈信息发送给所述命令发送模块;所述命令发送模块还用于根据该反馈信息确定下一条同步控制指令需要读取视频数据的帧数。进一步地,所述音频播放侦测模块包括同步计数器和第一比较器,所述同步计数器用于当音频播放模块从一音频緩冲模块中读取一个播放单位的音频数据时,计数一次;所述第一比较器用于比较同步计数器的计数值和所述预定值,在同步计数值大于预定值时,发送控制信息给所述命令发送模块,并将计数值减去所述预定值。进一步地,所述同步计数器的计数步长step由以下公式获得step=rate*Length;所述预定值gate通过以下公式获得gate:scale承Fs^式中,Length为音频播放緩沖器的大小,Fs为音频数据采样率,scale为视频流的时间尺度,rate为视频流的时间尺度与每帧视频数据播放时间的比值。进一步地,所述命令发送模块包括一命令计数器,该命令计数器用于当接收到音频播放侦测模块发送的控制信息后,发送同步控制指令给视频数据读取模块,并将其计数加l;所述视频数据读取模块接收到所述同步控制指令后根据命令计数器的计数值N+l,读取当前帧的下N+l频的视频数据并输出播放;并且所述命令计数器接收到视频数据读取模块发送的反馈信息为响应同步控制指令时,清零其计数。进一步地,所述命令发送模块包括第二命令计数器、响应计数器和第二比较器,其中,所述第二命令计数器用于接收到音频播放侦测模块发送的控制信息后将其计数值加1;所述响应计数器用于接收到视频数据读取模块发送的反馈信息为响应同步控制指令后将其计数值加1;所述第二比较器用于比较所述第二命令计数器和响应计数器的值,所述响应计数器无计数值时,发送读取下一帧视频数据的同步控制指令给视频数据读取模块;当所述第二命令计数器比响应计数器的值大M时,发送读取当前帧的下M帧视频数据的同步控制指令给视频数据读取模块;在视频数据读取模块向所述第二比较器发送响应同步控制指令的反馈信息后,第二比较器清零第二命令计数器和响应计数器。进一步地,该系统还包括一定时器,用于当所述多^某体数据中没有音频数据时,根据所述多媒体数据中的每巾贞视频数据的播放时间进行定时,每到达定时时,通知视频数据处理单元解码并播;故一帧视频数据。本发明还提供了一种多媒体文件音视频同步播放的方法,包括以下步骤根据播放的多媒体数据计算音频数据的播放进度参数和预定值;将多媒体数据分成音频数据和视频数据,解码并显示第一帧视频数据,同时进入音频处理流程,解码并播放音频数据;检测音频数据的播放进度并判断音频数据的播放进度是否达到所述预定值,如果达到,控制视频处理单元进入视频处理流程,解码并显示相应帧的视频数据。进一步地,所述判断音频数据的播放进度是否达到所述预定值的方法为每播放一个播放单位的音频数据时,计数一次,将计数值与所述预定值进行比较,如果计数值大于预定值,则播放进度达到预定值,将所记录的播放进度减去所述预定值,并在该差值基础上继续记录播放进度。进一步地,所述控制视频处理单元进入视频处理流程的步骤由一命令发送模块来完成,在播放进度达到预定值时,命令发送模块将一命令计数器的计数加l,并发送同步控制指令给视频数据读取模块,所述视频数据读取模块接收到所述同步控制指令后根据命令计数器的计数值N+l,读取当前帧的下N+l频的视频数据并输出播放;并且所述命令计数器接收到视频数据读取模块发送的反馈信息为响应同步控制指令时,清零其计数。进一步地,所述控制纟见频处理单元进入纟见频处理流程的方法为在播放进度达到预定值时,将一第二命令计数器加l;在接收到的视频数据读取模块发送的反馈信息为响应同步控制指令后,将一响应计数器加l,用一第二比较器比较第二命令计数器和响应计数器的值,所述响应计数器无计数值时,发送读取下一帧视频数据的同步控制指令给视频数据读取才莫块;当所述第二命令计数器比响应计数器的值大M时,发送读取当前帧的下M帧视频数据的同步控制指令给视频数据读取模块;所述第二比较器在接收到的视频数据读取模块发送的反馈信息为响应同步控制指令后,将所述命令计数器和响应计数器的计数值清零。本发明所产生的有益效果是,通过检测音频的播放进度来控制视频播放的同步,不需要多媒体数据中包含时间戳,可以有效减轻编码器及解码器的负担;同步控制过程运算量小,适用于运算能力较差的平台,因此可广泛应用于便携式移动设备播放多媒体数据时的音视频同步;本发明对硬件平台的要求很低,硬件平台结构简单,成本低。图l是本发明的多媒体文件音视频同步播放的系统的整体结构框图;图2是本发明的系统中影音同步控制单元的结构框图;图3是影音同步控制单元中命令发送模块的一实施例的结构框图;图4是本发明的多媒体文件音视频同步播放的方法的流程图;图5是本发明的方法中音频处理流程的一实施例的示意图;图6是本发明的方法中视步处理流程的一实施例的示意图;图7是本发明的方法中影音同步控制的流程图;图8是本发明的方法中进行音频侦测的流程图;图9是本发明的方法中命令发送模块发送视频播放同步控制指令的一实施例的流程图;图10是本发明的方法中命令发送模块发送视频播放同步控制指令的另一实施例的流程图。具体实施方式下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好的理解本发明并能予以实施,但所举实施例不作为对本发明的限定。本发明的多媒体音视频同步播放的系统如图1所示,包括影音信号分流单元11,用于将存储于文件中的多媒体数据分成独立的音频数据和视频数据,影音信号分流单元11又包括音频数据读耳又^t块111和视频数据读取模块112;音频数据处理单元12,用于对音频数据进行处理,又包括音频解码模块121、音频緩冲模块122和音频播放模块123,其中,音频解码模块121,用于对音频数据读取模块111的输出进行解码,结果存放在音频緩沖模块122中;音频播放模块123,负责播放音频緩冲模块122中的数据;视频数据处理单元13,用于对视频数据进行处理,又包括视频解码模块131、视频緩冲模块132和视频播放模块133,其中,视频解码模块131,用于对视频数据读取模块112的输出进行解码,结果存放在^L频緩沖模块132中;视频播放模块133,用于对视频緩冲模块132中的数据进行播放。上述功能单元模块的内部结构均同现有音视频同步处理技术中所采用的相应功能单元的内部结构相同,在此不再对各功能单元及才莫块的处理过程以及内部构造进一步阐述,并且上述功能模块的划分仅为描述本发明,仍可以采用具备上述功能的其它模块划分方法来构成本发明,如音频缓沖模块122和视频緩沖模块132均可以采用同一个緩沖模块。本发明在现有技术的基础上还包括影音同步控制单元14,其包括一音频播放侦测模块141和一命令发送模块142,音频播放侦测模块141检测音频播放模块123的播放进度并对播放进度进行记录,音频播放侦测模块141将记录的音频播放进度与一预定值进行比较,当播放进度大于预定值时,音频播放侦测模块141发送控制信息给命令发送模块142,并令存储的播放进度值减去预定值后继续计数;命令发送模块142接收到控制信息后,发送视频播放同步控制指令给视频数据读取模块112读取相应帧的视频数据,视频数据读取模块112将是否响应同步控制指令的反馈信息发送给命令发送模块142,命令发送模块142根据反馈信息确定下一条视频播放同步控制指令需要读取视频数据的帧数。其中,如图2所示,音频播放侦测模块141包括一同步计数器1411和第一比较器1412,当音频播放模块123从音频緩冲模块122中读取一个播放单位的数据时,同步计数器1411就计一次,步长为step;第一比较器1412比较同步计数器1411的值和门限值gate(即预定值),当同步计数值大于门限值gate时,就发送控制信息给命令发送模块142,同步计数器1411计数值减去门限值gate并继续计数。音频播放侦测模块141根据同步计数器1411中计数的音频数据播放情况与门限值的比较来判断是否发送控制信息给命令发送模块142,从而控制视频数据的播放,这样便可以实现通过音频播放进度来同步视频播放进度的目的。其中,如图2所示,命令发送模块142包括一命令计数器1421,当接收到音频播放侦测模块141发送的控制信息后,便发送视频播放同步控制指令给视频数据读取模块112,同时命令计数器1421的计数值加1,如果接收到的视频数据读取模块112发送的反馈信息为响应同步控制指令,则清零命令计数器1421,否则不进行清零操作。如果纟见频数据读取模块112接收到N次同步控制指令均未响应,则再次接收到同步控制指令响应后,视频数据读取模块112根据命令计数器1421的计数值N+l从当前帧跳过N帧读取下N+l帧的视频数据。命令发送模块142中的命令计数器1421根据接收到的控制信息和响应反馈信息来计数,从而获得下次同步控制指令需要读取的视频数据的帧数(当前帧的下N+l帧)。进而在音视频数据发生不同步时,根据音频数据的播放进度直接读取相应帧的视频数据。另外,如图3所示,命令发送模块142还可以采用下列方式构成包括一个第二命令计数器1422和一个响应计数器1423,以及一个第二比较器1424,第二命令计数器1422接收音频播放侦测模块141发送的控制信息后其计数值便加1,响应计数器1423接收到的视频数据读取模块112发送的反馈信息为响应同步控制指令后其计数值便加1,第二比较器1424比较第二命令计数器1422和响应计数器1423的计凄t值,当响应计数器1423无计数值时,便发送读取下一帧视频图像的视频播放同步控制指令给视频数据读取模块112。如果第二命令计数器1422的计^t值比响应计数器1423的计数值大M,便发送读取当前帧的下M帧视频图像的同步控制指令给视频数据读取模块112。视频数据读取模块112反馈给第二比较器1424响应同步控制指令信息后,第二比较器1424清零两个计数器。其中,音频数据读取模块111从源文件中以块(Block)为单位连续地读取音频压缩数据。其中,音频緩冲模块122与音频播放模块123间以较小的播放单位(例如32个采样点)进行数据传输。假设播放一个单位数据的播放时间为Ta,设允许的最大同步误差为Emax,则Ta〈Emax即可。其中,视频数据读取模块112根据影音同步控制单元14提供的控制命令及参数,对源文件中的视频压缩数据以.帧(Frame)为单位进行读取。令音频播放模块123播放一个播放单位音频数据的时间Ta,远小于牙见频数据一帧的显示时间Tv。由于每帧视频数据的显示时间Tv是固定的,而播放一个播放单位音频数据的时间Ta则是播放音频数据时人为设定的。由于本方法,会令同步计数器的计数大于门限值gate时,就发送控制信息给命令发送模块142,同步计数器1411计数值减去gate。而同步计数器1411计数值减去gate后的计数值再次计数,因此再次计数是在差值的基础上的,因此会产生误差。由于这个误差,理论上本方法的视频帧间隔误差是正负交替的,所以同步误差不会累积,始终小于Ta。测试表明,当音频数据的播放单位较小时(例如32个采样点),人眼察觉不到小于Ta的误差。为了进一步减少误差,人为设定音频播放模块123播放一个播放单位音频数据的时间Ta,远小于^L频彰:才居一帧的显示时间Tv。在具体计算时,Ta=Length/Fs(1),式中,Length为播放緩冲器的大小,Fs为音频数据采样率。Tv对不同的多媒体数据格式会有不同的表达式,例如对AVI(AudioVideoInterleaved)文件,Tv=scale/rate-(2),式中,scale为视频流的时间尺度,rate这个参数没有明确的意义。举例说明一个档案的帧频是29.96fiDS,那么Tv=l/29.96,这是个小数,由于计算机字长的限制,在计算时会损失精度。如果写成1>=100/2996,在计算时就不会有小数出现,此例中scale=100,rate=2996。当然,也可以写成scale=200,rate=5992,其意义是一样的。这仅仅是AVI这种格式的约定。根据上述公式(1)和公式(2)可以得出Tv/Ta=(scale*Fs)/(rate*Length)(3);式中的参数最好都是整数,以便于计算。令step=rate*Length,gate=scale*Fs,即可得到同步计数器的步长值step,以及门限值(预定值)gate。对于没有音频数据,只有视频数据的文件,可以由音频处理单元按默认设置播放静音数据,来控制视频数据的播放;对于音频播放总时间小于视频播放总时间的文件,在音频播放结束后,也可播放静音,直到视频播放结束。另外,也可以设置一个定时器,当音频数据读取模块判断出所接收到的影音信号没有音频数据时,不启动音频处理流程,而启动该定时器,该定时器连接视频数据读取模块,按照视频的帧间隔进行定时,对视频的播放进行控制。如图4所示,本发明的多媒体文件音视频同步播放的方法包括如下步骤步骤41,系统初始化,根据显示和播放的音视频数据参数计算音频播放进度参数和一预定值;步骤42,进入视频处理流程,解码和显示第一帧视频数据,进入音频处理流程,解码并插-放第一个播放单位的音频数据;步骤43,进入影音同步控制流程,根据音频播放进度情况判断是否发出视频播放同步控制指令,如果发出视频播放同步控制指令,执行步骤44;如果没有发出视频播放同步控制指令,执行步骤47;步骤44,判断视频处理流程是否响应该视频播放同步控制指令,如果视频处理流程响应该视频播放同步控制指令,执行步骤45;如果视频处理流程没有响应该视频播放同步控制指令,执行步骤46;步骤45,进入视频处理流程,解码和显示相应帧的视频数据;步骤46,仍播放当前帧的视频数据;步骤47,挂起视频处理流程,不再进行下一帧的^L频处理。在步骤42中,音频处理流程的步骤如图5所示音频数据读取^f莫块111从多媒体源文件中以块(Block)为单位连续地读取音频压缩数据(步骤4211),送到音频解码模块121进行解码(步骤4212),解码后的数据存于音频緩冲模块122,音频播放模块123对音频緩沖模块122中的数据进行播放(步骤4213)。播放时,音频缓冲模块122与音频播放模块123间以较小的播放单位(例如32个采样点)进行数据传输。在步骤42中,视频处理流程的步骤如图6所示-现频数据读取模块112根据影音同步控制单元14提供的视频播放同步控制指令及参数,对多媒体数据源文件中的视频压缩数据以帧(Frame)为单位进行读取(步骤4221),送到视频解码模块131进行解码(步骤4222),结果存储在视频緩沖模块132中(步骤4223),视频播放模块133对视频緩沖模块132中的数据进行播放(步骤4224)。在步骤43中,影音同步控制流程如图7所示检测音频播放模块123的播放进度并对播放进度进行记录(步骤431),将记录的音频播放进度与一预定值进行比较(步骤432),当播放进度大于预定值时,令存储的播放进度值减去预定值,并发送视频播放同步控制指令给视频数据读取模块112读取相应帧的视频数据(步骤433),视频数据读取^^莫块112将是否响应同步控制指令的反馈信息发送回来,根据该反馈信息确定下一条同步控制指令需要读取视频数据的帧数(步骤434)。上述步骤43中,音频侦测可由一音频播放侦测4莫块141来完成。如图8所示,音频播放侦测模块141进行音频侦测包括如下步骤当音频播放模块123从音频緩冲模块122中读取一个播放单位的音频数据时,一同步计数器1411就计一次,步长为播放进度参数step(步骤81),第一比较器Ml2比较同步计数器1411的计数值和门限值(即上述预定值)(步骤82),当同步计数器1411的计数值大于门限值gate时,就发送控制信息给一命令发送模块142,同步计数器1411计数值减去gate(步骤83)并继续计数。音频播放侦测模块141根据同步计数器1411中计数的音频数据播放情况与门限值的比较来判断是否发送控制信息给命令发送模块,从而控制视频数据的播放。这样便可以实现通过音频播放进度来同步视频播放进度的目的。如图9所示,命令发送模块142发送视频播放同步控制指令的步骤包括步骤91:判断命令发送模块142是否接收到音频播放侦测模块141发送的控制信息,如果接到,执行步骤92;如果未接到,等待音频播放侦测模块141发送控制信息;步骤92:发送视频播放同步控制指令给视频数据读取模块112,同时命令计数器1421加1;步骤93:判断收到的视频数据读取模块112发送的反馈信息是否为响应同步控制指令,如果是,执行步骤94;如果不是,执行步骤95;步骤94:视频数据读取模块112根据命令计数器1421的计数值N+l,从当前帧跳过N帧读取下N+1帧的视频数据,清零命令计数器1421;步骤95:不对命令计数器1421进行清零操作并返回步骤91。步骤94中,如果视频数据读取模块112接收到N次同步控制指令均未响应,则再次接收到同步控制指令响应后,此时命令计数器的计数值为N+l,视频数据读取模块112根据命令计数器1421的计数从当前帧跳过N帧读取下N+l帧的视频数据。命令发送模块142中的命令计数器1421根据接收到的控制信息和响应反馈信息来计数,从而获得下次同步控制指令需要读取的视频数据的帧数(当前帧的下N+1帧)。进而在音视频数据发生不同步时,根据音频数据的播放进度直接读取相应帧的视频数据。如图IO所示,命令发送模块142发送控制命令还可以采用另一种方案,该方案包括如下步骤步骤101:第二命令计数器1422判断是否接收音频播放侦测模块141发送的控制信息,如果接到,执行步骤102;如果没接到,继续等待音频播放侦测模块141发送控制信息;步骤102:第二命令计数器1422的值加1;步骤103:响应计数器1423判断接收到的视频数据读取模块112发送的反馈信息是否为响应同步控制指令,如果是,执行步骤104;如果不是,继续等待视频数据读取模块112发送的响应同步控制指令的反馈信息;步骤104:响应计数器1423的值加1;步骤105:第二比较器1424比较第二命令计数器1422和响应计数器1423的计数值,当响应计数器1423无计数值时,便发送读取下一帧视频数据的视频播放同步控制指令给视频数据读取模块112;如果第二命令计数器1422的计数比响应计数器1423的计数大M,便发送读取当前帧的下M帧视频数据的视频播放同步控制指令给视频数据读取模块112;步骤106:第二比较器1424判断接收到的视频数据读取^t块112发送的反馈信息是否为响应同步控制指令,如果是,执行下步骤107;如果不是,继续等待视频数据读取模块112发送的响应同步控制指令的反馈信息;步骤107:第二比较器1424清零第二命令计数器1422和响应计数器1423。本发明在播放多媒体文件时,将音视频数据同步播放的原理如下音频播放模块123播放一个播放单位音频数据的时间Ta,远小于视频数据一帧的显示时间Tv。由于本方法,会令同步计数器的计数大于门卩艮值gate时,就发送控制信息给命令发送模块142,同步计数器1411计数值减去gate。而同步计数器1411计数值减去gate后的计数值再次计数,因此再次计数是在差值的基础上的,因此会产生误差。由于这个误差,理论上本方法的视频帧间隔误差是正负交替的,所以同步误差不会累积,始终小于Ta,测试表明,当音频数据的播放单位较小时(例如32个采样点),人眼察觉不到小于Ta的误差。具体计算时,Ta=Length/Fs,Length为播放緩沖器的大小,Fs为音频数据采样率;Tv对不同的多媒体数据格式会有不同的表达式,例如对AVI文件,Tv=scale/rate,scale为视频流的时间尺度,Tv/Ta=(scale*Fs)/(rate*Length)。式中的参数最好都是整数,^更于计算。令step=rate*Length;gate=scale*Fs。本发明中,在视频解码实时的情况下,第二命令计数器1422只有0、1两种值。在视频解码不实时的情况下,视频处理流程还没有响应上一个同步命令,新的命令又产生了,第二命令计数器1422就会不断计数,直到视频处理流程响应为止,如果这时第二命令计数器1422的值为N,则会把N传给视频数据读取模块112,视频数据读取模块在从源文件中读去视频数据时,会直接读取当前帧的下N帧,送入视频解码器进行解码,从而实现音视频同步。对于没有音频数据,只有视频数据的文件,音频处理流程会按默认设置播放静音数据,来控制视频数据的播放;对于音频播放总时间小于视频播放总时间的文件,在音频播放结束后,也会播放静音,直到视频播放结束。另外,也可以通过一定时器设定一时间,每达到设定时间时,就发送同步控制指令给视频数据读取模块,命令视频数据读取模块读取一帧视频数据进行解码播放。该设定的时间一般为视频数据中每帧视频数据的显示时间。以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本
技术领域
的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。权利要求1、一种多媒体文件音视频同步播放的系统,包括影音信号分流单元,用于将多媒体数据分成音频数据和视频数据并输出;音频处理单元,用于对所述影音信号分流单元输出的音频数据进行解码和播放;视频处理单元,用于对所述影音信号分流单元输出的视频数据进行解码和播放;其特征在于,还包括影音同步控制单元,用于检测所述音频处理单元的播放进度,并将其与一预定值进行比较,当播放进度大于该预定值时,向所述影音信号分流单元发送同步控制指令,指示影音信号分流单元读取相应帧的视频数据进行输出播放。2、如权利要求l所述的系统,其特征在于,所述影音同步控制单元包括音频播放侦测模块和命令发送模块,其中,所述音频播放侦测模块用于检测所述音频处理单元中音频播放模块的播放进度并进行记录,所述音频播放侦测模块将播放进度与所述预定值进行比较,当播放进度大于该预定值时,发送控制信息给所述命令发送模块,将所记录的播放进度减去所述预定值并在该差值基础上继续记录播放进度;所述命令发送模块用于在接到所述控制信息后发送所述同步控制指令给所述影音信号分流单元中的视频数据读取模块;所述视频数据读取^t块,用于在接收到所述同步控制指令后将是否响应同步控制指令的反馈信息发送给所述命令发送模块;所述命令发送模块还用于根据该反馈信息确定下一条同步控制指令需要读取视频数据的帧数。3、如权利要求2所述的系统,其特征在于,所述音频播放侦测模块包括同步计数器和第一比较器,所述同步计数器用于当音频播放模块从一音频緩冲模块中读取一个播放单位的音频数据时,计数一次;所述第一比较器用于比较同步计数器的计数值和所述预定值,在同步计数值大于预定值时,发送控制信息给所述命令发送模块,并将计数值减去所述预定值,同步计数器在差值基础上继续进行计数。4、如权利要求3所述的系统,其特征在于,所述同步计数器的计数步长step由以下公式获得step=rate*Length;所述预定值gate通过以下公式获得式中,Length为音频播放緩冲器的大小,Fs为音频数据采样率,scale为视频流的时间尺度,rate为视频流的时间尺度与每帧视频数据播放时间的比值。5、如权利要求3或4所述的系统,其特征在于,所述命令发送模块包括一命令计数器,该命令计数器用于当接收到音频播放侦测模块发送的控制信息后,发送同步控制指令给视频数据读取模块,并将其计数加l;所述视频数据读取模块接收到所述同步控制指令后根据命令计数器的计数值N+l,读取当前帧的下N+l频的视频数据并输出播放;并且所述命令计数器接收到视频数据读取模块发送的反馈信息为响应同步控制指令时,清零其计数。6、如权利要求3或4所述的系统,其特征在于,所述命令发送模块包括第二命令计数器、响应计数器和第二比较器,其中,所述第二命令计数器用于接收到音频播放侦测^:莫块发送的控制信息后将其计数值加1;所述响应计数器用于接收到视频数据读取模块发送的反馈信息为响应同步控制指令后将其计数值加1;所述第二比较器用于比较所述第二命令计数器和响应计数器的值,所述响应计数器无计数值时,发送读取下一帧视频数据的同步控制指令给视频数据读取模块;当所述第二命令计数器比响应计数器的值大M时,发送读取当前帧的下M帧视频数据的同步控制指令给视频数据读取模块;在视频数据读取模块向所述第二比较器发送响应同步控制指令的反馈信息后,第二比较器清零第二命令计数器和响应计数器。7、如权利要求l所述的系统,其特征在于,该系统还包括一定时器,用于当所述多媒体数据中没有音频数据时,根据所述多媒体数据中的每帧视频数据的播放时间进行定时,每到达定时时,通知视频数据处理单元解码并播放一帧视频数据。8、一种多媒体文件音视频同步播放的方法,其特征在于,包括以下步骤根据播放的多媒体数据计算音频数据的播放进度参数和预定值;将多媒体数据分成音频数据和视频数据,解码并显示第一帧视频数据,同时进入音频处理流程,解码并播放音频数据;;险测音频数据的播放进度并判断音频数据的播放进度是否达到所述预定值,如果达到,控制视频处理单元进入视频处理流程,解码并显示相应帧的视频数据。9、如权利要求8所述的方法,其特征在于,所述判断音频数据的播放进度是否达到所述预定值的方法为每播放一个播放单位的音频数据时,计数一次,将计数值与所述预定值进行比较,如果计数值大于预定值,则播放进度达到预定值,将所记录的播放进度减去所述预定值,并在该差值基础上继续记录播放进度。10、如权利要求9所述的方法,其特征在于,所述控制视频处理单元进入视频处理流程的步骤由一命令发送模块来完成,在播放进度达到预定值时,命令发送模块将一命令计数器的计数加1,并发送同步控制指令给视频数据读取模块,所述视频数据读取模块接收到所述同步控制指令后根据命令计数器的计数值N+1,读取当前帧的下N+l频的视频数据并输出播放;并且所述命令计数器接收到视频数据读取模块发送的反馈信息为响应同步控制指令时,清零其计数。11、如权利要求9所述的方法,其特征在于,所述控制视频处理单元进入视频处理流程的方法为在播放进度达到预定值时,将一第二命令计数器加1;在接收到的视频数据读取模块发送的反馈信息为响应同步控制指令后,将一响应计数器加1,用一第二比较器比较第二命令计数器和响应计数器的值,所述响应计数器无计数值时,发送读取下一帧视频数据的同步控制指令给视频数据读取模块;当所述第二命令计数器比响应计数器的值大M时,发送读取当前帧的下M帧视频数据的同步控制指令给视频数据读取模块;所述第二比较器在接收到的视频数据读取模块发送的反馈信息为响应同步控制指令后,将所述命令计数器和响应计数器的计数值清零。全文摘要本发明提供了一种多媒体文件音视频同步播放的系统及方法。本发明通过一影音同步控制单元,检测音频处理单元的音频播放进度,并将其与一预定值进行比较,当播放进度大于该预定值时,向影音信号分流单元发送同步控制指令,指示影音信号分流单元读取相应帧的视频数据进行输出播放,来实现音视频同步播放。本发明不需要多媒体数据中包含时间戳,可以有效减轻编码器及解码器的负担;同步控制过程运算量小,适用于运算能力较差的平台,因此可广泛应用于便携式移动设备播放多媒体数据时的音视频同步;本发明对硬件平台的要求很低,硬件平台结构简单,成本低。文档编号H04N7/62GK101262612SQ200810088019公开日2008年9月10日申请日期2008年3月27日优先权日2008年3月27日发明者莉温,欣高,鲁弘茂申请人:凌阳科技股份有限公司;凌通科技股份有限公司;北京北阳电子技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1