解码系统中实现视频与音频同步的方法

文档序号:7676218阅读:323来源:国知局
专利名称:解码系统中实现视频与音频同步的方法
技术领域
本发明涉及一种MPEG-2(动态图像专家组)解码系统,特别涉及在MPEG-2软件解码系统中实现视频信号输出和音频信号输出同步的方法。
在MPEG-2硬件解码系统中,视频信号输出和音频信号输出的同步很容易实现。这是因为在硬件MPEG-2解码系统中,视频流音频流的解码以及视频帧音频帧信号的播放都由硬件解码芯片来实现。硬件MPEG-2解码系统可利用定时器根据每帧信号的DTS准时触发对应的解码器,并根据每帧信号的显示时间标签PTS准时触发对应的播放器,使得每帧解码后的信号被准时的送到播放器进行播放,实现视频信号与音频信号的同步。
但是,硬件方式的解码器具有不够灵活的缺点,例如,当解码系统升级,需要增加新的功能时,需要将解码器整体进行更新,因而硬件方式的解码器不能适应数字技术的快速发展,而且成本较高,因此,软件形式的解码器是未来发展的趋势。然而对于MPEG-2软件解码系统来说,视频的解码和音频的解码是以任务方式运行在实时操作系统中,由于软件解码系统的任务切换、软件解码的效率、码流的多样性等原因,解码模块被启动的时刻,以及解码后的每帧信号到达播放模块的时刻都不可能预先确定,很难依据已有的方法来实现视频与音频信号的同步。
本发明是通过以下技术方案来实现的。本发明提供一种软件MPEG-2解码系统中实现视频信号和音频信号同步的方法,所述软件MPEG-2解码系统包括传送流解码器、音频解码器、视频解码器、音频播放器、视频播放器,其特征在于,包括以下步骤(a)设置一个以传送流解码器接收的TS流中的程序参考时钟PCR为基准,按照预定的频率进行计数的本地参考时钟LCR;(b)通过音频解码器和视频解码器分别接收音频信号和视频信号的显示时间标签PTS;将上述本地参考时钟LCR与上述接收到的音频信号和视频信号的显示时间标签PTS进行比较,当本地参考时钟LCR与显示时间标签PTS的差的绝对值小于预定的阈值时,所述音频播放器模块和所述视频播放器模块将接收到的信号正常播放来实现同步。
所述本地参考时钟是一个记数器,每当发现TS流中有PCR时,所述记数器按照新的PCR进行重置。
所述进行计算的预定的频率是90kHZ。
当本地参考时钟LCR与显示时间标签PTS的差的绝对值小于预定的阈值时,根据下述处理流程判断实现同步1)如果显示时间标签PTS+固定的延时>本地参考时钟LCR,则该帧信号属于超前状态,需保留一段时间,下次再判断该帧信号是否应该播放;2)如果显示时间标签PTS+固定的延时<本地参考时钟LCR,则该帧信号属于落后状态,应该放弃该帧信号并继续去接受新的信号帧,直到锁住为止;3)如果接收到的最后一帧信号还属于落后状态,则将最后一帧信号播放。
如果接收到的信号帧出现不同步状态,则放大阈值至最大,下次用此放大后的阈值判断新接收到的信号帧的状态。如果接收到的信号帧属于同步状态,则逐渐缩小阈值,直到缩为最小的阈值。
从上面介绍的设计原则可以看出,该方法既可以很好的实现本机音视频同步输出,还可实现不同机顶盒的同步输出;对于各种码流错误,包括误码和码流不稳定,都有适当的处理,系统的纠错能力较强。


图1是本发明的软件MPEG-2解码系统的数据流的结构的示意图。
图2是本发明的利用本地参考时钟LCR进行视频音频信号同步输出的示意图。
具体实施例方式
图1是本发明的软件解码系统的数据流的结构的示意图。在图1中,软件解码系统包括传送流解码器、音频解码器、视频解码器、音频播放器、视频播放器。传送流进入传送流解码器后,分成音频流和视频流两路数据流,分别进入音频解码器和视频解码器,变成音频帧和视频帧,然后分别进入音频播放器和视频播放器。同步的要求即是从音频播放器和视频播放器播放的音频信号和视频信号同步。此外,由于本发明是关于软件方式的解码系统,因此上述各解码器或播放器可以认为是通过调用相应的软件程序来实现。
本发明的方法利用指示系统时钟值的程序参考时钟PCR设计了一个本地参考时钟LCR(Local Reference Clock)。在播放器中,本发明根据接收到的信号帧的显示时间标签PTS与当前本地参考时钟LCR的关系,对信号帧作不同的处理以播放最适当的信号帧,实现视频信号与音频信号的同步。
本发明的本地参考时钟LCR是利用传送流解码器接收的TS流中的程序参考时钟PCR实现的。本地参考时钟LCR是一个记数器,记数频率是90k,也可以是其它播放的频率。如图2所示,每当发现TS流中有程序参考时钟PCR时,该记数器用此新的程序参考时钟PCR重置,然后在该程序参考时钟PCR基础上以90k的频率递增记数。
MPEG-2软件解码系统根据接收到的码流情况,启动相应的音频或视频软件解码器。在音频播放器和视频播放器中,可以收到音频帧和视频帧及各自的显示时间标签PTS。当收到新的音频帧或视频帧时,从上述的参考时钟记数器中读取出当前的本地参考时钟LCR,将其与刚收到的音频帧或视频帧的显示时间标签PTS进行比较,判断是否满足下面的公式abs(PTS+Delay-LCR)<Threshold (1)上式中,abs()表示对括号内的结果取绝对值;Threshold是判断的门限,通常取播放两帧信号所用的时间;Delay是一段固定的延时,Delay的确定需考虑到TS流中一帧数据经过传输层缓存、解码器缓存等所需的固定的延时。
公式(1)就是要求接收到的显示时间标签PTS加上一段固定的延时后,与当前读到的参考时钟LCR之间的误差不应超出门限范围。
在音频播放器和视频播放器中,如果接收到的信号的显示时间标签PTS满足上面的公式,该帧信号属于同步状态,可以将接收到的信号正常播放。由于程序参考时钟PCR和音频帧和视频帧的显示时间标签PTS,是在音视频信号编码时利用编码器系统时钟采样得到的。在解码器的音视频输出时,如果音频帧和视频帧信号的显示时间标签PTS与编码器系统时钟(通过本地参考时钟LCR得到)的关系满足公式(1),说明信号是在应该播放的时刻接收到的,此时播放可实现音频输出和视频输出的同步。
如果接收到信号的显示时间标签PTS不满足上面的公式(1),则需要判断接收到信号帧的时刻是超前于正常播放时间还是落后于正常播放时间。如果显示时间标签PTS+Delay>LCR,该帧信号属于超前状态,需保留一段时间,下次再判断该帧信号是否应该播放;如果显示时间标签PTS+Delay<LCR,该帧信号属于落后状态,应该放弃该帧信号并继续去接受新的信号帧,直到锁住为止。如果接收到的最后一帧信号还属于落后状态,则将最后一帧信号播放。
此外,如果TS流中的PCR出现误码时,或者节目发生变化时,当前读取到的本地参考时钟LCR与上次读取的本地参考时钟LCR将有较大的差异,则需要做误码保护处理。此时将上次读取的本地参考时钟LCR外推出一个值作为当前的本地参考时钟LCR,当前读取到的本地参考时钟LCR暂时保留。下一次再读取出本地参考时钟LCR时,先将此最新读取的本地参考时钟LCR与上次外推出的本地参考时钟LCR比较,判断最新的本地参考时钟LCR是否与上次外推出的本地参考时钟LCR连续,是则说明上次本地参考时钟LCR出现误码,可以正常使用本次读取的本地参考时钟LCR;否则再将最新读取的本地参考时钟LCR与上次保留的本地参考时钟LCR比较,判断最新的本地参考时钟LCR是否与上次保留本地参考时钟LCR连续,是则说明最新的本地参考时钟LCR已经可以正常使用,否则继续外推出一个本地参考时钟LCR作为正确值使用,并且保留最新读取的本地参考时钟LCR。
通过调整判断门限Threshold,该方法可实现系统迅速而平稳的进入同步状态。如果接收到的信号帧出现不同步状态,则放大Threshold至最大,下次用此放大后的Threshold判断新接收到的信号帧的状态。如果接收到的信号帧属于同步状态,则逐渐缩小Threshold,直到缩为最小的门限。
本发明的方法还可以实现多个解码器的同步输出。
可以理解,只要不同的解码器所用的参考时钟是相同的,则相同的一帧音频或视频信号,在满足公式(1)的条件下向外播放时,就可实现多个解码器的同步输出。此时相同的一帧音频或视频信号在不同的解码器上的播放时间的误差在2*Threshold之内。在本发明的方法中,由于同一个TS流中相同的PCR,在误差允许范围内(与Threshold相比),到达不同解码器的参考时钟计数器的时刻是相同的;另外,不同解码器的参考时钟计数器的90K记数频率,在误差允许范围内也可以认为是相同的。因此,本发明的方法保证了不同的解码器所用的参考时钟是近似相同的,实现了多个解码器的同步输出。
综合上述本发明,在MPEG-2软件解码系统的音频播放器中,采用下面的方法来控制音频信号的输出(1)如果视频播放器还从未接收到解码后的信号,音频播放器接收到的信号需先做保留处理,直到此音频解码器无空间存储解码后的信号时,再放弃该帧信号并接收新的信号。
(2)当音频播放器接收到音频信号时,根据公式(1)判断该帧音频信号的状态。如果满足公式(1),则该帧信号为同步状态,音频播放器将该帧信号正常播放。否则,判断该帧信号属于超前状态还是滞后状态,并作相应的处理。
(3)根据接收到的信号帧的状态,动态调整判断门限Threshold。
(4)当音频播放器接收到音频信号时,如果该帧音频信号的显示时间标签PTS等于零,则用当前播放的音频帧的显示时间标签PTS来外推新收到音频帧的显示时间标签PTS,然后用此外推得到的显示时间标签PTS判断该音频帧的状态。
(5)当音频播放器读取出的本地参考时钟LCR,与上次读取的本地参考时钟LCR将有较大的差异,则需要做误码保护处理后再使用。
在视频播放器中,采用类似的设计原则控制视频信号的输出,则可实现音视频信号的同步。
可见,本发明的方法具有以下优点(1)该方法可以很好的实现音视频输出同步。当系统出现不稳定状态时,该方法可使系统迅速而平稳的进入同步状态。
(2)该方法可以实现多个解码器的同步输出。即相同的一套节目,在不同的解码器上,可以实现同步输出。
该方法有很强的容错功能,对于传送流中的显示时间标签(显示时间标签PTS)和指示系统时钟值的程序参考时钟(PCR)出现的误码,有较好的纠错能力。
权利要求
1.一种软件MPEG-2解码系统中实现视频信号和音频信号同步的方法,所述软件MPEG-2解码系统包括传送流解码器、音频解码器、视频解码器、音频播放器、视频播放器,其特征在于,包括以下步骤(a)设置一个以传送流解码器接收的TS流中的程序参考时钟PCR为基准,按照预定的频率进行计数的本地参考时钟LCR;(b)通过音频解码器和视频解码器分别接收音频信号和视频信号的显示时间标签PTS;将上述本地参考时钟LCR与上述接收到的音频信号和视频信号的显示时间标签PTS进行比较,当本地参考时钟LCR与显示时间标签PTS的差的绝对值小于预定的阈值时,所述音频播放器模块和所述视频播放器模块将接收到的信号正常播放来实现同步。
2.根据权利要求1所述的方法,其特征在于,所述本地参考时钟是一个记数器,每当发现TS流中有PCR时,所述记数器按照新的PCR进行重置。
3.根据权利要求1所述的方法,其特征在于,所述进行计算的预定的频率是90kHZ。
4.根据权利要求1所述的方法,其特征在于,当本地参考时钟LCR与显示时间标签PTS的差的绝对值小于预定的阈值时,根据下述处理流程判断实现同步(a)如果显示时间标签PTS+固定的延时>本地参考时钟LCR,则该帧信号属于超前状态,需保留一段时间,下次再判断该帧信号是否应该播放;(b)如果显示时间标签PTS+固定的延时<本地参考时钟LCR,则该帧信号属于落后状态,应该放弃该帧信号并继续去接受新的信号帧,直到锁住为止;(c)如果接收到的最后一帧信号还属于落后状态,则将最后一帧信号播放。
5.根据权利要求1至3的任一项所述的方法,其特征在于,如果接收到的信号帧出现不同步状态,则放大阈值至最大,下次用此放大后的阈值判断新接收到的信号帧的状态。如果接收到的信号帧属于同步状态,则逐渐缩小阈值,直到缩为最小的阈值。
全文摘要
本发明提供一种用软件解码的系统中,实现视频信号输出和音频信号输出同步的一种方法,将当前接收到的音频信号和视频信号的显示时间标签PTS和根据程序参考时钟PCR得到的本地参考时钟LCR进行比较,当(显示时间标签PTS-本地参考时钟LCR)的绝对值小于预定的阈值时,所述音频播放器模块和所述视频播放器模块将接收到的信号正常播放来实现同步。对于MPEG-2传送流,采用本发明可以很好的实现音视频信号输出的同步。
文档编号H04N7/24GK1436001SQ0210256
公开日2003年8月13日 申请日期2002年1月28日 优先权日2002年1月28日
发明者张小喜 申请人:北京华诺信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1