基于mpeg-2视频流的音视频同步控制方法

文档序号:7898043阅读:382来源:国知局
专利名称:基于mpeg-2视频流的音视频同步控制方法
技术领域
本发明涉及音视频解码领域,尤其涉及一种基于MPEG-2视频流的音视频同步控制方法。
背景技术
中国发明专利申请号为“200610017021.X”,专利名称为“音视频信号同步方法”的专利申请文件中公开了一种音视频同步方法,利用MPEG-2、AVS等视频编码系统中经过量化后的系数块中具有最小距离的两个中低频系统的相关性,将压缩后的音频编码比特嵌入其中的一个系数,然后对嵌入压缩音频比特的系数块按原视频编码系统中的方案进行变长编码或算术编码得到混合信号的编码比特流,并能在解码器中根据提出的音频比特回复被嵌视频系数,为音视频信号同步系统提供关键的技术支持。MPEG-2中定义了两种复合信息流传送流(TS transition stream)和节目流 (PS =Program Mream),这两种复合流同样以基本打包流(PES :Packetized Elementary Stream)为基础。在传送流TS中,TS包头加入了 PCR(节目时钟参考),而在节目流PS包头中加入SCR(系统时钟参考),分别用于解码器在解码过程中的STC(系统时序时钟)恢复, 以此为基准达到音视频的同步。目前,市场上的嵌入式视频解码芯片方案,有部分只能支持TS流,对于PS流的视频,则需要做转码工作,而由于嵌入式系统性能的局限,要完美实现PCR包的构造十分困难,PCR的失准或缺失将会造成STC无法恢复,从而使音视频同步缺失基准无法达到同步。

发明内容
本发明主要解决的技术问题是提供一种基于MPEG-2嵌入式系统中视频流的音视频同步控制方法,该方法不依赖于TS流的PCR信息或PS流的SCR信息,在PCR信息或SCR 信息失准时也可以达到音视频同步控制效果。为解决上述技术问题,本发明采用的一个技术方案是提供一种基于MPEG-2视频流的音视频同步控制方法,包括以下步骤a.启动解码器;b.当获取到第一音频帧或第一视频帧数据时,利用当前的音频或视频PTS校正系统STC值;c.当获取到新的视频帧同时读取系统STC值,并计算系统STC值与视频帧的PTS 值的差值,如果视频帧的PTS值大于系统STC值的差值超过同步阈值,则重复显示当前显示帧,并检查等待系统STC值直到与视频帧的PTS值相等才显示新的帧;如果视频帧的PTS值小于系统STC值的差值超过同步阈值,则丢弃该帧,继续解码下一帧,直到获取到的新视频帧的PTS值与当前的系统STC值相等,显示该帧;d.在解码新的音频帧数据同时读取系统STC值,将新音频帧的PTS值与得到的系统STC值对比,如果系统STC值和音频帧的PTS值的差值超过同步阈值,则以当前音频帧的PTS值恢复系统STC值;e.重复步骤C、步骤d,直到解码完毕。其中,对于有自动同步机制的系统,在步骤a之前还包括禁止音频与视频的同步操作的步骤;对于没有自动同步机制的系统,使步骤c的同步操作在步骤b之前无效。其中,在步骤b中,PTS信息由解码器从节目源的PES流中提取。其中,在步骤b中,PTS信息值是编码器对一个27MHz的时钟进行300分频后得到的计数值记录,解码器使用相同的27MHz时钟进行300分频作为STC时钟。其中,在步骤c中,同步阈值为相邻两帧之间STC的计数值。其中,在步骤d中,同步阈值为IOOms内的STC时钟计数值。本发明的有益效果是区别于现有技术的以PS流和TS流中的节目时钟参考PCR 和系统时钟参考SCR来进行STC时钟校准的方法,产生在嵌入式系统中无法同步的缺陷,本发明绕开了 PS流和TS流中特有的信息依赖,直接以PES流中的PTS信息进行STC时钟校准,这样在PCR或SCR失准的情况下也可以达到同步效果。进一步地,本发明对于需要PS流转换为TS流或TS流装换为PS流的解决方案,转化处理程序不须重建TS流的PCR包或PS流的SCR包,降低了系统处理器的负荷,简化了程序实现难度。


图1是本发明的基于MPEG-2视频流的音视频同步控制方法实施例流程图;图2是本发明以音频流为基准码流同步控制方法的实现流程图。
具体实施例方式为详细说明本发明的技术内容、构造特征、所实现目的及效果,以下结合实施方式并配合附图详予说明。本发明中的英文缩写的定义为TS流,中文意思为传送流,英文全称为transition stream。PS流,中文意思为节目流,英文全称为Program Mream。PES流,中文意思为基本打包流,英文全称为Packetized ElementaryStream0PCR,中文意思为节目时钟参考,英文全称为Program ClockReference。SCR,中文意思为系统时钟参考;英文全称为System ClockReference。STC,中文意思为系统时序时钟;英文全称为System Time Clock。PTS,中文意思为显示时间戳;英文全称为Presentation Time Mamp。PCR是STC校正基准,用于STC的校正,SCR与PCR作用相似,区别在于PCR用于TS 流结构,SCR用于PS流结构;PTS值用于标识当前帧应当在STC为何值时被显示。本发明提供了在解码时钟恢复参考失准情况下实现音视频同步控制的方法,利用 MPEG-2PES (基本打包流)中携带的音视频PTS (显示时间戳)信息来进行显示帧校准。MPEG-2的系统结构分为三部分1)视频编码和音频编码,输出视频或音频基本码流ES ;2)经过打包,输出打包了的基本码流PES,该阶段在每帧数据中加入了 PTS信息,用于指示该视频或音频帧应当何时被显示,解码器在解码时进行PTS与STC对齐操作,以完成音视频同步控制;3)再经过两种不同的打包和复用形成节目流PS和传送流TS,该阶段在包序列中加入了 STC恢复参考,在PS流中为SCR,在TS流中为PCR,解码器在接收到这两种数据包后会根据解析到的SCR值或PCR值设置STC时钟计数器,以校准STC时钟。根据该原理,无论是PS流还是TS流,都是以相同PES流为基础。本发明利用了这个特征,绕开了 PS流和TS流中特有的信息依赖,直接以PES流中PTS信息进行STC时钟校准,这样在PCR或SCR失准的情况下也可以达到同步效果,其基本方案为首先,选取音视频流中的一个码流作为基础码流;其次,在解码过程中,解码器从该码流携带的帧数据中提取PTS信息,并判断该PTS值与STC的差值,当两者相差超过同步阈值时利用PTS值设置STC时钟计数器;而后,在解码过程中,相对于基准码流,非基准码流要根据携带的PTS信息与STC进行对齐操作。这样,通过STC作为音视频PTS值的中间传递,可以排除音视频帧非均勻交叉解码造成PTS跳变问题,相比直接使用音视频PTS进行同步控制的算法有更好的效果,且可以利用解码系统的自动同步功能,减少了软件操作工作量。请参阅图1,本发明的基于MPEG-2视频流的音视频同步控制方法,包括以下步骤a.启动解码器;b.当获取到第一音频帧或第一视频帧数据时,利用当前的音频或视频PTS校正系统STC值;c.当获取到新的视频帧同时读取系统STC值,并计算系统STC值与视频帧的PTS 值的差值,如果视频帧的PTS值大于系统STC值的差值超过同步阈值,则重复显示当前显示帧,并检查等待系统STC值直到与视频帧的PTS值相等才显示新的帧;如果视频帧的PTS值小于系统STC值的差值超过同步阈值,则丢弃该帧,继续解码下一帧,直到获取到的新视频帧的PTS值与当前的系统STC值相等,显示该帧;d.在解码新的音频帧数据同时读取系统STC值,将新音频帧的PTS值与得到的系统STC值对比,如果系统STC值和音频帧的PTS值的差值超过同步阈值,则以当前音频帧的 PTS值恢复系统STC值;e.重复步骤C、步骤d,直到解码完毕。对于有自动同步机制的系统,在步骤a之前还包括禁止音频与视频的同步操作的步骤;对于没有自动同步机制的系统,使步骤c的同步操作在步骤b前无效。在步骤b中,PTS信息由解码器从节目源的PES流中提取。在步骤b中,PTS信息值是编码器对一个27MHz的时钟进行300分频后得到的计数值记录,解码器使用相同的27MHz时钟进行300分频作为STC时钟。在步骤c中,同步阈值为相邻两帧之间STC的计数值。在步骤d中,同步阈值为IOOms内的STC时钟计数值。参见图2,以音频流为基准码流的音视频同步方法,包括以下步骤步骤一在解码器启动前禁止音频与视频的同步操作,启动解码器;在该步骤,禁止音视频同步操作是针对有自动同步机制的系统,对于没有自动同步机制的系统,只要保证步骤三的同步操作在步骤二之前无效即可;
步骤二 当获取到第一音频帧数据时,利用当前的音频PTS恢复STC。在STC恢复之后,若系统有硬件自动同步机制可开启视频自动同步,否则,根据步骤三提供的操作进行视频同步操作;在该步骤,PTS信息由解码器从节目源的PES流中提取,该信息由MPEG-2标准在编码时添加,该信息值是编码器对一个27MHz的时钟进行300分频后得到的计数值记录,解码器使用相同的27MHz时钟进行300分频作为STC时钟,因此,STC的恢复操作既将STC时钟的计数器设置为当前解码得到的PTS值。步骤三当获取到新的视频帧同时读取STC值,并计算STC与PTS的差值,如果PTS 值大于STC值超过同步阈值,则重复显示当前显示帧,并检查等待STC直到与PTS值相等才显示新的帧;如果PTS小于STC超过同步阈值,则丢弃该帧,继续解码下一帧并获取新的 STC值对比,直到获取到的新帧PTS与当前的STC值相等,显示该帧;在该步骤,STC值已经通过音频PTS进行校准,视频PTS与STC差值的逻辑是如果PTS值大于STC值则说明视频相对于音频靠前,因此需要重复显示当前显示帧以等待音频解码前进到当前点;如果PTS值小于STC值则说明视频相对于音频落后,因此需要丢弃当前帧,以达到跳帧快进的效果追赶音频解码当前点;在该步骤,同步阈值可根据实际情况设定,通常为相邻两帧之间STC的计数值,比如,对于 25fps 的视频,其阈值为(ls/25fps*27MHz/300 = 3600);步骤四在解码新的音频帧数据同时读取STC值,将新帧的PTS值与得到的STC值对比,如果STC和PTS差值超过同步阈值,则以当前PTS值恢复STC ;在该步骤,同步阈值可根据实际情况设定,根据标准,当音频超前视频80ms,或者音频落后视频120ms则认得感官能够有轻微觉察,而实际上该误差可接受范围甚至达到 200ms,因此,该阈值通常可设为IOOms内的STC时钟计数值,即(0. ls*27MHz/300 = 9000), 需要注意的是,过小的阈值可能引起音视频不断的调整,从而造成不能流畅播放的问题;步骤五重复步骤三、步骤四,直到解码完毕。另外,由于STC时钟在解码器暂停状态下不会暂停,在解码恢复后STC需要重新恢复,STC恢复前的视频帧会进行错误的同步操作,为解决该问题,可在解码器暂停前先禁止音视频同步操作,而在恢复播放后重新开启同步。本发明利用音频流或视频流作为基准码流恢复STC,并以此为基准进行同步控制, 开始解码时禁止同步操作,在获取到基准码流的第一帧PTS信息时恢复STC,并以此为基准进行音视频同步控制。本发明选择第一音频或者第一视频作为基准码流,并以基准码流PTS为标准时钟调整STC,另一路码流在获取新帧时与STC对齐。以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
权利要求
1.一种基于MPEG-2视频流的音视频同步控制方法,其特征在于包括以下步骤a.启动解码器;b.当获取到第一音频帧或第一视频帧数据时,利用当前的音频或视频PTS校正系统 STC 值;C.当获取到新的视频帧同时读取系统STC值,并计算系统STC值与视频帧的PTS值的差值,如果视频帧的PTS值大于系统STC值的差值超过同步阈值,则重复显示当前显示帧, 并检查等待系统STC值直到与视频帧的PTS值相等才显示新的帧;如果视频帧的PTS值小于系统STC值的差值超过同步阈值,则丢弃该帧,继续解码下一帧,直到获取到的新视频帧的PTS值与当前的系统STC值相等,显示该帧;d.在解码新的音频帧数据同时读取系统STC值,将新音频帧的PTS值与得到的系统 STC值对比,如果系统STC值和音频帧的PTS值的差值超过同步阈值,则以当前音频帧的 PTS值恢复系统STC值;e.重复步骤C、步骤d,直到解码完毕。
2.根据权利要求1所述的基于MPEG-2视频流的音视频同步控制方法,其特征在于对于有自动同步机制的系统,在步骤a之前还包括禁止音频与视频的同步操作的步骤;对于没有自动同步机制的系统,使步骤c的同步操作在步骤b之前无效。
3.根据权利要求2所述的基于MPEG-2视频流的音视频同步控制方法,其特征在于在步骤b中,PTS信息由解码器从节目源的PES流中提取。
4.根据权利要求3所述的基于MPEG-2视频流的音视频同步控制方法,其特征在于在步骤b中,PTS信息值是编码器对一个27MHz的时钟进行300分频后得到的计数值记录,解码器使用相同的27MHz时钟进行300分频作为STC时钟。
5.根据权利要求1 4任一项所述的基于MPEG-2视频流的音视频同步控制方法,其特征在于在步骤c中,同步阈值为相邻两帧之间STC的计数值。
6.根据权利要求5任一项所述的基于MPEG-2视频流的音视频同步控制方法,其特征在于在步骤d中,同步阈值为IOOms内的STC时钟计数值。
全文摘要
本发明公开了一种基于MPEG-2视频流的音视频同步控制方法,本发明绕开了PS流和TS流中特有的信息依赖,直接以PES流中的PTS信息进行STC时钟校准,这样在PCR或SCR失准的情况下也可以达到同步效果。本发明对于需要PS流转换为TS流或TS流装换为PS流的解决方案,转化处理程序不须重建TS流的PCR包或PS流的SCR包,降低了系统处理器的负荷,简化了程序实现难度。
文档编号H04N7/24GK102547299SQ201010614889
公开日2012年7月4日 申请日期2010年12月30日 优先权日2010年12月30日
发明者刘旺, 吴方方, 邹应双 申请人:福建星网视易信息系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1