发明内容
针对上述现有技术都是针对视频流讨论流媒体内同步,很少涉及音频流媒体内同步和音视频流媒体间同步的问题,本发明提出一种无线环境中的音视频流媒体同步播放方法,该方法根据无线通信系统的特点,提出适用于无线环境的音频流和视频流的媒体内同步,并在此基础上实现音视频流媒体间同步。
一种无线环境中的音视频流媒体同步播放方法,包括以下步骤:
A.确定音频帧的大小实现音频流媒体内同步;
B.确定视频帧的播放持续时间实现视频流媒体内同步;
C.以音频流为主媒体流,视频流为从媒体流,调整视频媒体单元的播放持续时间来实现音视频流媒体间同步。
步骤A具体通过如下算法来实现:
A1.探知音频播放缓冲区中有i个音频帧;
A2.确定即将播放帧的目标大小LL(i)为:
这里Lmax和Lmin的选取根据帧可扩展程度或可压缩程度和流媒体内同步的要求即时延抖动要求来确定;对于音频,要求时延抖动不超过10ms,那么Lmax=min{2L0,L0+10ms},Lmin=max{0.5L0,L0-10ms};
A3.若该帧包含静音期,则延长或缩短静音期使该帧的大小等于LL(i);若该帧处在突发期内而不包含静音期,则改变该帧的大小,当LL(i)=L
max时,扩展该帧,扩展后的帧大小为
当LL(i)=L
min时,压缩该帧,压缩后的帧大小为
这里T为该帧的基音周期;
A4.按照调整后的大小进行播放音频帧。
步骤B具体通过如下算法来实现:
B1.探知视频播放缓冲区中有i个视频帧;
B2.确定即将播放视频帧的播放持续时间d(i)为:
其中rv是正常播放帧率,rmax和rmin根据具体的服务质量要求来确定,即考虑流媒体内同步的要求即时延抖动要求;对于TV品质的视频,要求时延抖动不超过10ms,则
B3.按照调整后的播放持续时间播放视频帧;
音频和视频播放期间,每播放Na个音频帧时,进行一次流媒体间同步调整。
步骤C具体通过如下算法来实现:
C1.令最近播放的音频帧q的播放时间标签ta(q)和最近播放的视频帧l的播放时间标签tv(l),并进行比较,二者之间的关系有三种情况:
C21.若|ta(q)-tv(l)|≤80ms,音视频播放处于同步状态,不需要进行调整;
C22.若80ms<|ta(q)-tv(l)|≤160ms,音视频播放处于临界同步状态,需进行流媒体间同步调整;
C23.若|ta(q)-tv(l)|>160ms,音视频播放处于失步状态,需进行流媒体间同步调整;
C31.进行流媒体间同步调整时,若ta(q)>tv(l),表明视频落后于音频播放,从P-QoS考虑,不主动丢弃视频帧,以免引起图像播放跳跃的感觉,因此应提高视频的播放帧率即减小视频帧的播放持续时间,则视频帧l其后n个视频帧的播放持续时间都为1000/rmax,其中:
n=[|ta(q)-tv(l)|]/10
这里n是整数;
C32.进行流媒体间同步调整时,若ta(q)<tv(l),表明视频超前于音频播放,从P-QoS考虑,不暂停播放视频帧,以免引起图像播放停顿的感觉,因此要降低视频的播放帧率即增大视频帧的播放持续时间,则视频帧l其后n个视频帧的播放持续时间都为1000/rmin;
在进行媒体间同步调整期间,不进行视频流媒体内同步调整。
本发明提出了一种无线环境中的音视频流媒体同步播放方法,包括在不影响音频和视频播放效果情况下,根据缓冲区占用水平分别调整音频帧大小和视频播放帧率来达到音频流媒体内和视频流媒体内同步,在此基础上通过比较音频单元和视频单元的时间标签来调整视频播放帧率达到音视频流媒体间同步。
与现有技术相比,本发明的优点是不仅给出视频流媒体内同步方法,还提出了无线环境中音频流媒体内同步方法和音视频流媒体间同步方法,这样就可以实现无线环境中的音视频流媒体的同步播放。
以下通过附图和具体实施方式对该发明进一步说明。
具体实施方式
图1为无线流媒体应用示意图。图中,内容提供商10将音视频流媒体数据传输给流服务器11,流服务器11通过互联网12、分组数据交换机13和基站控制器14连接到基站15,基站15和无线终端17之间为无线信道16,采用的是无线传输方式。
音视频流媒体数据分为音频分组和视频分组,该两个分组从内容提供商10到无线终端17之间需要经过互联网12和无线信道16,每个分组的传输时延不同且较大,这样分组不可能按照发送顺序到达无线终端17,造成不能及时解码和播放,导致播放失步。在无线环境中,本发明是在无线终端17使用音视频流媒体同步播放方法来保证音视频同步播放。
图2为本发明提供的音视频流媒体同步播放模块示意图。图中,该模块20包括流媒体内同步模块21和音视频媒体间同步模块22,流媒体内同步模块21包括音频流媒体内同步模块211和视频流媒体内同步模块。其中:
音频流媒体内同步模块211,用于维持音频帧的时间关系,保证音频流媒体内同步;
视频流媒体内同步模块212,用于维持视频帧的时间关系,保证视频流媒体内同步;
音视频媒体间同步模块22,是在音频流和视频流媒体内同步基础上,以音频流为主媒体流,视频流为从媒体流,根据音频帧的播放时间标签,调整视频帧的播放持续时间,保证媒体间同步播放。
图3为本发明提供的音频流媒体内同步的流程图。包括:
步骤S301,探知音频播放缓冲区的占用水平;
步骤S302,根据音频播放缓冲区占用水平,确定音频帧的大小;
步骤S303,根据音频帧的大小进行播放。
图4为本发明提供的视频流媒体内同步的流程图。包括:
步骤S401,探知视频播放缓冲区的占用水平;
步骤S402,根据视频播放缓冲区占用水平,确定视频帧的播放持续时间;
步骤S403,根据视频帧的播放持续时间进行播放。
图5为本发明提供的音视频媒体间同步的流程图。包括:
步骤S501,探知最近播放的音频帧的播放时间标签;
步骤S502,探知最近播放的视频帧的播放时间标签;
步骤S503,,以音频流为主媒体流,视频流为从媒体流,比较两个播放时间标签,并进行比较结果调整视频帧的播放持续时间;
步骤S504,根据调整结果播放视频帧。
图6为本发明提供的终端媒体同步模型示意图。包括:
步骤S601,播放缓冲区存储经网络传输的媒体单元;
步骤S602,分别根据音频缓冲区和视频缓冲区的占用水平调整音频帧大小和视频帧播放持续时间;
步骤S603,根据调整后的音频帧大小或视频帧播放持续时间进行播放。
图7为本发明提供的播放缓冲区设置的流程图。包括:
步骤S701,探知媒体流的最大时延抖动;
步骤S702,设置播放缓冲区中的下门限LL和上门限HL,两个门限间可以存储2倍的最大时延抖动与媒体播放帧率乘积的媒体单元;
步骤S703,LL与缓冲区底端间或者HL与缓冲区顶端间的大小为两个门限间大小的0.2倍;
音频帧大小可以通过波形相似叠接相加算法来进行改变的。该算法是一种时域内插法,它具有保持基音周期不变和没有降低质量的优点。当该算法用于单个帧时,可以对音频帧进行扩展或压缩,而扩展或压缩是以基音周期为单元的。扩展后帧的大小比原来帧多了一个基音周期,而压缩后帧的大小比原来帧少了一个基音周期。则成功地压缩一个音频帧需要这个帧至少包含一个基音周期,由于基音频率最低可达80Hz,最高可达500Hz,但基音频率处在100~200Hz的情况占大多数,则基音周期一般为5~10ms,而通常一个20ms的音频帧是满足要求的。上面所述的扩展或压缩一个基音周期的过程称为一次迭代,当扩展多个基音周期,或压缩多个基音周期且帧包含多个基音周期时,就需要多次迭代。一般来说,一个大小为L0的帧最大可以扩展成大小为2L0的帧,而最小可以压缩成大小为0.5L0的帧。
每播放完一个音频帧,控制函数根据音频播放缓冲区的占用水平来调整帧的大小。调整完后,按该帧调整后的大小播放。图8为本发明提供的调整音频帧大小的流程图。包括:
步骤S801,探知音频播放缓冲区中有i个音频帧;
步骤S802,确定即将播放帧的目标大小LL(i)为:
这里Lmax和Lmin的选取根据帧可扩展程度或可压缩程度和媒体内同步的要求即时延抖动要求来确定;对于音频,要求时延抖动不超过10ms,那么Lmax=min{2L0,L0+10ms},Lmin=max{0.5L0,L0-10ms};
步骤S803,若该帧包含静音期,则延长或缩短静音期使该帧的大小等于LL(i)。若该帧处在突发期内而不包含静音期,则改变该帧的大小,当LL(i)=L
max时,扩展该帧,扩展后的帧大小为
当LL(i)=L
min时,压缩该帧,压缩后的帧大小为
这里T为该帧的基音周期;
步骤S804,按照调整后的大小进行播放音频帧。
对于视频流,本发明采取根据视频播放缓冲区的占用水平改变视频播放持续时间的方法。图9是本发明提供的调整视频帧播放持续时间的流程图。包括:
步骤S901,探知视频播放缓冲区中有i个视频帧;
步骤S902,确定即将播放视频帧的播放持续时间d(i)为:
其中rv是正常播放帧率,rmax和rmin根据具体的服务质量要求来确定,即考虑流媒体内同步的要求即时延抖动要求;对于TV品质的视频,要求时延抖动不超过10ms,则
步骤S903,按照调整后的播放持续时间播放视频帧。
音频和视频播放期间,每播放Na个音频帧时,进行一次流媒体间同步调整。图10是本发明提供的音视频流媒体间同步调整的流程图。包括:
步骤S1001,令最近播放的音频帧q的播放时间标签ta(q)和最近播放的视频帧l的播放时间标签tv(l)。并进行比较,二者之间的关系有三种情况;
步骤S10021,若|ta(q)-tv(l)|≤80ms,音视频播放处于同步状态,不需要进行调整;
步骤S10022,若80ms<|ta(q)-tv(l)|≤160ms,音视频播放处于临界同步状态,需进行媒体间同步调整;
步骤S10023,若|ta(q)-tv(l)|>160ms,音视频播放处于失步状态,需进行媒体间同步调整;
步骤S10031,进行媒体间同步调整时,若ta(q)>tv(l),表明视频落后于音频播放,从P-QoS考虑,不主动丢弃视频帧,以免引起图像播放跳跃的感觉,因此应提高视频的播放帧率即减小视频帧的播放持续时间,则视频帧l其后n个视频帧的播放持续时间都为1000/rmax,其中:
n=[|ta(q)-tv(l)|]/10
这里n是整数;
步骤S10032,进行媒体间同步调整时,若ta(q)<tv(l),表明视频超前于音频播放,从P-QoS考虑,不暂停播放视频帧,以免引起图像播放停顿的感觉,因此要降低视频的播放帧率即增大视频帧的播放持续时间,则视频帧l其后n个视频帧的播放持续时间都为1000/rmin;
在进行流媒体间同步调整期间,不进行视频流媒体内同步调整。