一种数字电视音视频同步方法
技术领域
本发明涉及数字电视领域,尤其是一种实现数字电视音视频同步的方法,该方法用于实现数字电视机接收数字电视信号时的音视频同步。
背景技术
目前数字电视技术迅猛发展,数字电视市场逐步扩大,数字电视用户不断增多,由于数字电视系统对视频、音频信号的处理比模拟电视复杂得多,在实际收看数字电视节目过程中,有时会出现音画不同步的现象。实验证明,即便是少量的声画不同步现象都会损害观众的观看体验,延迟量越大,观众越产生不满的心理。
以目前使用广泛的信源解码标准MPEG-2为例,其时间同步机制为:解码器从输入码流中解出节目参考时钟标签PCR,并据此进行本地系统时钟STC恢复和锁相,解码器从输入码流中解出视频数据帧显示时间标签PTS,视频数据流解码后,当系统时钟STC与时间标签PTS相等时开始显示。音频的处理与视频相似,只是相对简单。视频和音频的显示时间标签均以系统时钟STC为基准,实现信号音视频同步。在MPEG-2标准中,并非每一帧图像均有显示时间标签PTS,每两个PTS之间有一个较长的间隔(在MPEG-2标准中,PS码流中每两个相邻PST间隔是0.7s,在TS码流中每两个相邻PST间隔是0.1s),在没有PTS的一帧图像出现时,在前一显示时间标签PTS的基础上加一增量,又称为:帧PTS增量,得到对应该视频数据帧的显示时间标签PTS,同时,解码器在一定范围内,对时间标签PTS和系统时钟STC的关系进行同步实现和失步处理。
但在实际应用时,在编码器到解码器的传输过程中,由于存在着复用器、调制器等延时缓存的环节,以及传输网络的缓冲延时抖动等,可能导致节目参考时钟标签PCR包的传输延时不恒定,到达解码器时,其视频数据帧时间标签PTS值已经小于系统时钟STC值,超出解码器同步范围,则解码器丢弃该帧数据。这时,该帧显示时间标签PTS丢失,原有的时间同步机制被打乱,解码器不再严格按时间标签PTS解码显示,由于音视频编码的延时不一样,就会导致音画不同步,往往会累积到用户不能接受的程度。
发明内容
本发明的目的是针对上述缺陷提供一种实现数字电视音视频同步的方法,该方法包括以下步骤:
步骤101:对解复用分解出来的视频数据帧和音频数据帧的显示时间标签PTS1与系统时钟STC进行比较:若显示时间标签PTS1大于或者等于系统时钟STC,解码器进行正常解码;
步骤102:若显示时间标签PTS1小于系统时钟STC,则丢弃显示时间标签PTS1,并以当前系统时钟STC为基准对显示时间标签PTS1重新赋予大于当前系统时钟STC的值得到显示时间标签PTS2;
步骤103:当系统时钟STC与显示时间标签PTS2相等时,播放所述的视频数据帧和对应的音频数据帧;
步骤104:对丢弃显示时间标签PTS1之后到达的音视频数据帧进行解码显示。
优选地,所述步骤104包括:
步骤201:判断新接收的音视频数据帧中是否包含显示时间标签PTS3:若否,则以上一帧显示时间标签PTS加帧PTS增量为此新接收的音视频数据帧显示时间标签进行解码显示,之后重新执行步骤201;
步骤202:若包含新到的显示时间标签PTS3,则比较显示时间标签PTS3是否小于系统时钟STC值:若小于,则以上一音视频数据帧的显示时间标签PTS加帧PST增量作为当前音视频数据帧的显示时间标签,此时解码器仍然处于丢弃显示时间标签的解码状态,重复步骤201;
步骤203:若显示时间标签PTS3的值大于或者等于当前系统时钟STC,则进一步将显示时间标签PTS3和当前系统时钟STC差值与不影响连续观看的差值范围相比较:若所述差值未超过不影响连续观看的差值范围,则在当前系统时间STC等于显示时间标签PTS3时,对当前音视频数据帧进行解码显示,解码器回到正常解码状态;
步骤204:若显示时间标签PTS3和当前系统时钟STC差值在不影响连续观看的差值范围以外时,则将显示时间标签PTS3存入缓存模块,并以前一音视频数据帧的显示时间标签PTS加帧PTS增量对当前音视频数据帧进行解码显示;
步骤205:在缓存模块中对在显示时间标签PTS3进行逐帧修正,直到收到下一显示时间标签PTS:每收到一帧不含有显示时间标签PTS的视频数据帧时,显示时间标签PTS3加二分之一帧PTS增量,将修正后的显示时间标签PTS3与当前系统时钟STC比较,差值在不影响连续观看的差值范围以外时,以上一音视频数据帧的显示时间标签加帧PTS增量解码显示该音频数据帧及音频数据帧;所述修正后的显示时间标签PTS3与当前系统时钟STC的差值在不影响连续观看的差值范围以内时,则根据此修正后的显示时间标签PTS3对该音视频数据帧进行解码显示,之后解码器回到正常解码状态。
优选地,所述步骤102中所述显示时间标签PTS1重新赋值为当前系统时钟STC值加四分之一帧PTS增量。
优选地,所述不影响连续观看的差值范围为二分之一帧PTS增量。
综上所述,由于采用了上述技术方案,本发明的有益效果是:由于本发明采用了以上技术手段对丢弃原始显示时间标签PST后到达的视频数据帧的显示时间标签PTS进行修正,可在数字电视解码过程中实现音视频同步,同时保证播放的连续性。
附图说明
图1为本发明在未丢弃显示时间标签时实现音视频同步控制流程图。
图2为本发明在丢弃显示时间标签后实现音视频同步控制流程图。
具体实施方式
本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。
本说明书(包括任何附加权利要求、摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
如图1所示的在未丢弃原始显示时间标签时实现音视频同步控制流程图,该过程包括以下步骤:对解复用分解出来的最新到达的视频数据帧和对应的音频数据帧发送端的显示时间标签PTS1与系统时钟STC进行比较,检查时间标签PTS1值是否小于当前系统时钟STC值,如果是不小于,解码器正常解码:即在当前系统时间STC等于显示时间标签PTS1时,解码显示相应的视频数据帧及音频数据帧;如果是小于,将显示时间标签PTS1丢弃,而对此视频数据帧和对应音频数据帧显示时间标签PTS重新赋值,赋值只要在大于当前系统时钟STC值即可,优选地可以当前系统时钟STC加1/4帧PTS增量为显示时间标签,解码器对该视频、音频数据帧以新的显示时间标签PTS2进行解码显示,同时解码器以显示时间标签PTS2为基础继续后续的音视频解码显示,解码器进入丢弃发送端的显示时间标签后的解码状态。
如图2所示的在丢弃发送端的显示时间标签后解码时实现音视频同步控制流程图:判断新接收的音视频数据帧中是否包含显示时间标签PTS3:若否,则以上一帧显示时间标签PTS加帧PTS增量为此新接收的音视频数据帧显示时间标签进行解码显示,之后继续接受新的音视频数据帧,并以上一帧显示时间标签PTS加帧PTS增量为新音视频数据帧的显示时间标签,直到新的音视频数据帧包含新的PTS3;
则较显示时间标签PTS3是否小于系统时钟STC值:若小于,解码器继续丢弃发送端显示时间标签,而以上一显示时间标签(即显示时间标签PTS2)加帧PTS增量进行解码显示,此时解码器仍然处于丢弃显示时间标签的解码状态;如果不小于,则将显示时间标签PTS3进一步与当前系统时钟STC比较,检查显示时间标签PTS3与STC差值是否超出不影响连续观看的差值范围,所述不影响连续观看的差值范围是指避免新到的视频数据帧与正在显示的视频数据帧时间间隔过大造成观看上的不连续的最小时间间隔,优选地,此不影响连续观看的差值范围可设为1/2帧PTS增量,如果是未超出范围,即以显示时间标签PTS3为当前视频数据帧和音频数据帧的显示时间标签PTS,进行解码显示,此后解码器重新进入正常解码状态;如是超出范围,一方面该视频数据帧和音频数据帧的显示时间标签以前一帧显示时间标签PTS加帧PTS增量继续进行解码显示,另一方面将显示时间标签PTS3存入缓存模块,在缓存模块中对显示时间标签PTS3进行逐帧修正直到收到下一新的显示时间标签:每收到一帧不含有显示时间标签PTS的视频数据帧时,显示时间标签PTS3加1/2帧PTS增量,当修正后的显示时间标签PTS3与当前系统时钟STC比较:若二者差值在不影响连续观看的差值范围以外时,以上一视频数据帧及音频数据帧的显示时间标签加帧PTS增量解码显示该视频数据帧及音频数据帧;若修正后的显示时间标签PTS3与当前系统时钟STC的差值小于或等于在1/2帧PTS增量时,即以上述修正后的显示时间标签PTS3为当时视频数据帧和音频数据帧的显示时间标签,进行解码显示,之后解码器回到正常解码状态。
本发明并不局限于前述的具体实施方式。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。