部落冲突7最强布阵图:数字电视机顶盒的同步问题

来源:百度文库 编辑:九乡新闻网 时间:2024/05/04 05:36:40
2010-09-05 16:47
MPEG-2编码器中有单一的共同系统时钟STC (27MHz),此时钟用来产生指示音频/视频正确解码和显示时序的时间标签,同时,可用来指示在抽样瞬间系统时钟时间的瞬时值。该时钟由输入视频的行同步锁相,当输入是SDI信号时,由其时钟经10分频产生编码器的系统时钟。正是编码器中共同系统时钟的出现,以及解码器中时钟的重新生成和时间标签的正确使用,才为解码器中操作的正确同步提供了基准。为实现编解码器的时钟同步,在编码器中对STC系统时钟进行计数,每隔一定的传输时间,在经过选择的TS包的适应头中,传输该计数器的抽样值给接收机,作为解码器的节目时钟参考信号,既PCR。PCR有效位为42b,其中高33b为PCR_Base,是以27MHz时钟,经300分频后的时钟为单位的计数值,低9b为PCR_Extension,是以27MHz时钟为单位的计数值。除PCR外,解码时间标签DTS和显示时间标签PTS,也非常重要。它们与PCR_Base相似,也是以编码器27MHz的系统时钟,经300分频后为单位的计数值来创建的。其中,DTS用于指示解码器何时对接收的图像、音频帧进行解码,PTS用于通知何时显示已解码的图像帧。
PTS和DTS只是一个33b的数值,如果没有PCR所代表的时间轴做参考,这个数值是没有意义的。为了保持正确解码,必须使编码器和解码器(机顶盒)的系统时钟保持锁定,即它们的频率保持一致,以及它们各自的计数器的初始值一致。

解码器(机顶盒)中有一个频率为27MHz左右的压控振荡器(VCO),输出信号作为系统时钟送入计数器中产生当前的STC样值,它与PCR一样也是42b的一个数值。其中,高33b是以27MHz经过300粉频后的时钟为单位的计数值,低9b是以27MHz时钟为单位的计数值。当一个新节目到达解码器(机顶盒)时,解码器(机顶盒)从码流中获得PCR值,用其PCR_Extention值与当前STC的低9b位作比较,得到误差信号,再通过锁相环电路去调整压控振荡器,使解码器(机顶盒)的系统时钟频率,与编码器的系统时钟频率保持一致。从码流中依次获得各帧的PTS与DTS值,将其和当前STC值的高33b位作比较。如果DTS值大于STC值,则对码流进行缓存,同时监测STC值的变化,当STC值增大到与DTS值相等时,对该帧码流进行解码,当STC值与PTS值相等时,播放该帧。如果由于传输网络的缓冲延时抖动,当码流到达解码器(机顶盒)时,其PTS值已经小于STC值,则解码器(机顶盒)跳过这一帧,丢弃该帧数据。由于PTS和DTS是根据PCR值产生的,因此必须将获得的第一个PCR值,作为初始值去置位解码器(机顶盒)的STC计数器,使它们的值一样,否则,将导致时基不同,从而解码出错。音频与视频的处理相似,只是不存在时序重排的问题。图5所示是解码器(机顶盒)PCR工作原理图。

音画不同步产生原因
在实际应用中,有些编码器由于输入视频信号的时基不稳,导致其输出时钟发生抖动,帧同步的间隔不是40ms。这些编码器,在根据PCR和缓冲延时设定初始的DTS值后,每帧的DTS值,由上一个DTS加上一个固定值得到(该值可由如下计算而得:27MHz经300分频后为90kHz,PAL制电视每秒为25帧,由此,该值是90000/25=3600),并根据帧类型和GOP类型计算出PTS值。但这段时间PCR值并不是增加3600,导致DTS和PTS相对PCR变大或变小。有些解码器(机顶盒)没有采用压控震荡器,其系统时钟为固定的27MHz,只是用接收到的PCR值,初始化本地系统时钟计数器的值。编码器和解码器(机顶盒)之间不能保持严格的锁定,这样就可能导致解码器(机顶盒)丢帧。而有的解码器(机顶盒)在发生丢帧的情况后就不再严格按DTS和PTS解码显示,而是根据缓冲区的情况来解码,由于视音频编码的延时不一样,就可能导致音画不同步。
此外,在从编码器到解码器(机顶盒)的传输过程中,由于存在着复用器、调制器等变延时缓存的环节,可能导致PCR包的传输延时不恒定,有大有小。如果不对PCR进行修正,也可能导致以上问题的发生。