CN1997162B - Pcr校正方法及装置 - Google Patents
Pcr校正方法及装置 Download PDFInfo
- Publication number
- CN1997162B CN1997162B CN2006101577435A CN200610157743A CN1997162B CN 1997162 B CN1997162 B CN 1997162B CN 2006101577435 A CN2006101577435 A CN 2006101577435A CN 200610157743 A CN200610157743 A CN 200610157743A CN 1997162 B CN1997162 B CN 1997162B
- Authority
- CN
- China
- Prior art keywords
- pcr
- lpcr
- bag
- dpcr
- local
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明公开了PCR校正方法及装置,以解决现有技术中PCR校正复杂的问题。该方法中根据TS包时钟脉冲触发产生当前包脉冲的本地PCR值LPCR;若当前TS包含有PCR信息时,则用LPCR校正当前包的PCR信息。本发明还同时公开了PCR校正装置,多节目PCR校正方法及装置。
Description
技术领域
本发明涉及数字电视领域,特别涉及一种PCR校正的方法及装置。
背景技术
电视运动图像和伴音在数字化后数据量巨大,直接传输需要非常大的传输带宽和费用。为此出现了种种压缩图像和声音的标准和方法。目前最流行的图像及声音压缩标准是MPEG II(Motion Pictures Expert Group:运动图像和声音压缩标准),压缩后的数据通常用TS流(Transport Stream:传送数据流)的格式传送。TS包固定长度为188字节,其头部结构如图1所示,其中,PID为包标识号,是组成一个数据流的所有包进行标识;节目参考时钟(PCR:ProgramClock Reference),是编码端时钟记数器的采样值,用于在解码端恢复出同步时钟;显示时间标签(PTS:Program Time Stamp),表示含有PTS的这一帧数据的显示时间。TS流的发送端和接收端有时钟同步的要求,为此发送端通常每隔10ms~100ms会在某一个TS包中插入节目参考时钟PCR。在5个标志字段包含有PCR_FLAG标志位用于指示该包中是否包含有PCR。如果某个TS包中包含有PCR信息,PCR信息固定占据第7到第12字节,如下表所示:
如图2所示的是发送和接收系统定时部分框图,其中略去了传输通道部分如编码解码、调制解调等。现有技术中,发送端部分的PCR一般是由参考时钟27Mhz产生的,首先对27Mhz时钟进行模300计数分频(计数器从0累加到299,再回到0),获得9位二进制计数值(0-299),称为PCR扩展值(PCR_EXT)。 PCR_EXT每计到299时,进行模233计数,获得33位计数值(0~233),称为PCR基本值(PCR_BASE)。PCR_BASE和PCR_EXT两部分构成了分级定时系统。
它提供给MPEG II节目流数据编码器,所述MPEG II节目流数据编码器在对每包数据压缩编码时都要插入当前PCR作为时间标签PTS(Program TimeStamp),表示“该包数据是在X点X分X秒打包”,或者要求接收端的MPEGII解码器说“该包数据应在X点X分X秒播出”。有了这个时间,所述接收端的MPEG II解码器才能恢复出各包数据间相对时间关系,正确地解出码流。通常每隔10ms~100ms所述MPEG II节目流数据编码器把PCR数据插入TS数据流中一次,TS包中有本包是否包含有PCR的指示标志。
接收端也有一个和发送端一样结构的PCR时钟计数系统,称为本地PCR。每接收到一个数据包,就可以根据数据包中的时间标签PTS,把数据放在正确的时间播出。接收端的27Mhz参考时钟如果自由振荡会和发送端的27Mhz参考时钟有一定的偏差,如果放任不管就会造成数据播出速度和编码输入速度不同,造成数据脱节或积压。因此发送端在复接时会定期将PCR数据插入TS帧结构的固定位置,表示“现在是在X点X分X秒”,起到报时作用,要接收端对表。接收端收到PCR,与本地的PCR比较,如果有偏差就要调整27M的振荡频率,使收发的PCR同步,整个调整过程是锁相环原理。接收端对PCR输入抖动有一定的要求,就是不大于500ns,否则会影响时钟平稳和节目的正常播放。
MPEG II标准设计的TS流的传输环节是恒定速率的传输信道,即只产生数据时延,而不会造成数据包的顺序错乱或相对时间变化。目前,随着Internet的普及,开始出现把压缩后的TS包数据经Internet网传输,到达社区后用IP-QAM设备把数据调制成DVB-C格式发到有线电视同轴网络上,供多个用户收看。这种方法非常有吸引力,因为成本低廉,随时可用。但这会造成两个问题,一个是Internet网采用的是TCP/IP协议,实时性很差。均匀的TS包数据经过Internet网络后变得断断续续。同时Internet网上有成千上万个TS流数据节目源,多个用户共用一个有线电视信道收看不同节目源来的节目,IP-QAM设备需要将这些不同节目源来的节目TS流数据合成一路TS流数据,必然造成包含PCR信息的TS包偏离原来的位置,其结果就像报时信号发生了比较大的随机延迟一样,通常的接收设备无法通过图2中的锁相环路恢复出参考时钟。另外,每个节目源的TS流数据中的PCR都不同步(不同的数据源由TS包中的ID号区分)。因此要求作为中介的IP-QAM设备,要求对TS流中所有的节目流都分别进行跟踪,各自恢复出和发送端同步的本地PCR时钟,然后用本地PCR时钟校正TS流中的PCR数值,也就是再生报时信号。
所有IP-QAM设备或类似的设备都必须解决PCR抖动的校正问题,现有技术中,IP-QAM设备中解决PCR抖动的一种方法是采用锁相环跟踪,和接收解码端的处理类似,根据本地参考时钟产生的PCR和输入TS数据流中的PCR之差,对参考时钟的频率和相位进行修正,使两者之差最小,输出的TS数据中的PCR用本地参考时钟产生的PCR值进行改写。该环路的带宽要非常窄,使得对于大的PCR抖动不敏感。接收解码系统的本地PCR锁相环路的振荡源是27M的振荡器,通过对振荡器的输出计数产生PCR_BASE和PCR_EXT,每个27M脉冲加1到PCR_EXT上,与输入码流PCR的偏差通过改变27M振荡器的频率调整。但是在IP-QAM设备中,复合的TS数据流中同时包含多达上千路不同源的节目流。按照传统的锁相环实现方法,就需要采用上千锁相环电路,代价相当昂贵。现有技术中的另一种校正PCR的方案是采用最小二乘法,根据接收到的多个包含PCR的TS包的位置和PCR数值,采用最小二乘法估计出PCR的参数(参考时钟的频率和PCR计数器相位),恢复出本地的PCR,对输入TS流中的PCR进行改写。此方法需要用大量存储器存储一段时间的包含PCR的TS包的位置和PCR数值,还要用多个乘法器进行最小二乘法的运算。
发明内容
本发明提供了PCR校正方法及装置,解决现有技术对TS流中的PCR校正复杂的问题。
本发明提供了一种节目参考时钟PCR校正方法,包括以下步骤:
接收输入的TS流,识别TS流中的TS包结构及包信息,输出包脉冲;
根据输出的包脉冲触发产生当前包脉冲的本地PCR值LPCR;
若当前TS包含有PCR信息时,用所述LPCR校正当前包的PCR信息。
一种多节目的PCR校正方法,当TS包时钟脉冲到来时,读取每一个节目对应地址上已存储的LPCR和DPCR,将DPCR累加到LPCR上,将累加后的LPCR再存储到同一地址上。当当前TS包中含有PCR信息,则用所述当前TS包对应节目的LPCR改写所述当前TS包中的PCR信息。
一种PCR校正的装置,包括TS流输入同步及PCR提取模块、本地PCR累加器和PCR改写模块,其中,TS流输入同步及PCR提取模块用于从输入的TS流中识别出TS包结构,提取TS包信息并输出包脉冲给所述本地PCR累加器,并将当前包输出给PCR改写模块;本地PCR累加器在接收到包脉冲后触发产生当前包脉冲的本地PCR值LPCR,并将所述LPCR传给所述PCR改写模块;当当前包中含有PCR信息时,PCR改写模块用于根据所接收到的LPCR值改写当前包中的PCR信息。
一种多节目PCR校正装置,包括TS流输入同步及PCR提取模块、本地PCR累加器、PCR改写模块和PCR存储器;PCR存储器用于存储每个节目对应的LPCR、DPCR;TS流输入同步及PCR提取模块用于从输入的TS流中识别出TS包结构,提取TS包信息输出TS包时钟脉冲;本地PCR累加器在接收到TS包时钟脉冲后产生每个节目的的本地PCR值LPCR,并将所述LPCR存储到PCR存储器;当前包中含有PCR信息时,PCR改写模块用于从PCR存储器中读取当前包对应节目的LPCR值改写当前包中的PCR信息。
本发明具有以下有益效果:
本发明提供的方法中LPCR是由每个TS包时钟脉冲到来时产生的,而不是对每个27Mhz参考时钟进行计数累加得到的,大大降低运算次数,简化了PCR的校正。而且因为LPCR产生的时间间隔较长,故而可以时分地对多个TS流进行PCR跟踪、校正。
附图说明
图1为现有技术中的TS包头部结构PCR校正;
图2为MPEG II流的发送和接收系统的结构图;
图3为依照本发明的PCR校正方法实施例流程图;
图4a为依照本发明的单节目TS流PCR校正方法第一实施例流程图;
图4b为依照本发明的单节目TS流PCR校正方法第二实施例流程图;
图5为依照本发明的单节目TS流PCR校正装置实施例结构图;
图6为依照本发明的多节目TS流PCR校正方法实施例流程图;
图7为依照本发明的多节目TS流PCR校正装置实施例结构图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举较佳实施例,对本发明进一步详细说明。
图3是本发明方法实施例的流程图,当接收端首次接收到TS包流的时候,识别出TS包流中的TS包结构,提取TS包信息,根据PCR_FLAG标识判断TS包是否含有PCR信息,当检测出第一个含有PCR信息的TS包时,提取所述PCR信息的各个字节的内容,将其作为IPCR_1。当接收端接到后续的TS包时,具体步骤如图3所示,包括:
步骤300:提取输入的TS流中TS包信息。
识别出TS包流中的TS包结构,输出TS包时钟脉冲,提取TS包信息,根据PCR_FLAG标识判断所述TS包是否含有PCR信息,当所述TS包中含有PCR信息时,输出所述PCR信息作为IPCR。
步骤301:产生本地的PCR数值LPCR。
当TS包时钟脉冲到来时,产生当前TS包脉冲的本地PCR值LPCR,该LPCR为上一TS包脉冲的LPCR值和参考频率数值之和,其公式为:
LPCR(n)=LPCR(n-1)+DPCR
其中,n>=1,LPCR(n)为当前TS包脉冲的本地PCR值LPCR,LPCR(n-1)为上一TS包脉冲的LPCR值,本地LPCR的初始值LPCR(0)为当接收到第一个含有PCR信息的TS包中的IPCR值IPCR_1;DPCR为参考频率数值,其中,DPCR为系统振荡频率Fref和TS包的传输速率之商,即:
DPCR=系统振荡频率Fref/TS包速率Ftsp
其中,系统振荡频率Fref一般采用27MHz,TS包速率Ftsp为TS流字节速率Fbyte和每个TS包的字节数的商;DPCR的数值相当于系统参考频率的时钟信号在一个TS包的时间间隔内的脉冲个数,这个数值不一定是整数。
对应于TS包中PCR信息的格式,LPCR需要转换成LPCR_BASE和LPCR_EXT两部分。将LPCR(n)做模300处理后得到本地PCR的基本值LPCR_BASE(n)和本地PCR的扩展值LPCR_EXT(n):
LPCR_BASE(n)=[LPCR(n)/300]
LPCR_EXT(n)=[LPCR(n)-LPCR_BASE(n)*300]
式中,[]表示取整数处理,丢弃小数部分。
累加时需要处理模300格式和通常的二进制补码的转换问题。
一种方案是将LPCR直接分为LPCR_BASE和LPCR_EXT两部分,将需要累加的数值等分为多个部分,每一部分都小于300,原来的一次累加操作分为多次,每次累加的数值都在300以下,只需要加到LPCR_EXT部分。一旦LPCR_EXT大于或等于300,就将LPCR_EXT减去300,同时把LPCR_BASE加1。
另一种方案也是将LPCR直接分为LPCR_BASE和LPCR_EXT两部分,但将需要累加的数值加到LPCR_EXT上,结果除以300,其商加到LPCR_BASE上,余数作为LPCR_EXT的数值。
步骤302~步骤303:当所述当前的TS包中不含PCR信息的时候,返回步骤300,若所述当前TS包中含有PCR信息,则用步骤301中所产生的LPCR改写所述当前TS包中的PCR信息,即是将所述当前TS包中的PCR信息用所述LPCR进行置换,此后转到步骤300。
将所述当前TS包中的PCR信息用所述LPCR进行置换具体为:用LPCR_BASE置换所述PCR信息中的PCR_BASE,用LPCR_EXT置换所述PCR信息中的PCR_EXT。
上述实施例中,LPCR是在TS包时钟脉冲到来时累加DPCR得到的,而现有技术却是对27Mhz的脉冲信号进行技术累加得到PCR改写值,相比之下,本发明的技术方案能大大降低了运算次数,简化PCR的校正。
为了使PCR校正更加准确,则需要每个包脉冲到来时所产生的LPCR能够跟踪输入TS流中的PCR的变化,具体实现步骤通过本发明单节目TS流的PCR校正实施例说明。
当接收端首次接收到TS包流的时候,识别出TS包流中的TS包结构,提取TS包信息,根据PCR_FLAG标识判断TS包是否含有PCR信息,当检测出第一个含有PCR信息的TS包时,提取所述PCR信息的各个字节的内容,将其作为IPCR_1输出。当接收端接到后续的TS包时,如图4a所示,具体步骤包括:
步骤400:提取输入的TS流中TS包信息。
该步骤包括识别出TS流中的TS包结构,提取TS包信息,输出TS包时钟脉冲;根据PCR_FLAG标识判断TS包是否含有PCR信息,当PCR_FLAG指示所述TS包含有PCR信息时,提取PCR信息的各个字节的内容,将其作为IPCR输出。
步骤401:产生本地的PCR数值LPCR。
与上述步骤301相同,此处不再赘述。
步骤402:判断当前的TS包中有无PCR信息,有就转到步骤403,没有就转到步骤400。
步骤403:用步骤401中所产生的LPCR值改写输入TS包中的PCR信息,即将所述当前TS包中的PCR信息用所述LPCR进行置换,具体为:用LPCR_BASE置换所述PCR信息中的PCR_BASE,用LPCR_EXT置换所述PCR信息中的PCR_EXT。
步骤404:根据步骤401中所产生的LPCR和步骤400中输出的IPCR获取DIF_PCR,即DIF_PCR为所述IPCR和LPCR之差,DIF_PCR=IPCR-LPCR。此步骤是为了对所述LPCR进行校正,尽量使所述LPCR跟踪所述IPCR,使两者之差缩小。
当DIF_PCR大于0时,表明所述LPCR滞后于所述IPCR,反之,若DIF_PCR小于0,则LPCR超前于IPCR。
在进行DIF_PCR=IPCR-LPCR操作时涉及需要处理模300格式和通常的二进制补码的转换问题。
一种方案是用下式计算:
DIF_PCR=300×(IPCR_BASE-LPCR_BASE)+IPCR_EXT-LPCR_EXT。
还有一种简化方式是略去IPCR_EXT-LPCR_EXT,直接以DIF_PCR=(IPCR_BASE-LPCR_BASE)进行滤波。因为PCR_EXT部分仅表示300/27M=1/90ms的时间精度,而要处理的PCR抖动一般都远大于此值,略去PCR_EXT部分造成的误差可忽略不计。
步骤405:对所述DIF_PCR进行低通滤波,输出相位校正和频率校正。此步骤是为了降低输入TS流中PCR随机抖动的影响,低通滤波在输入TS包中包含PCR信息时才运算一次,滤波的实现方式多样,在此不再赘述;不同的滤波带宽会产生不同的跟踪性能,为了滤除较大的输入PCR抖动,使输出的PCR平稳,环路带宽应比较小。
步骤406:进行LPCR和DPCR的校正。步骤405输出的相位校正直接对所述步骤401中所产生的LPCR的数值进行校正,频率校正校正所述DPCR。返回步骤400。
现有技术中接收系统的本地PCR锁相环路产生的数值是连续变化的,每次加1,而由上述实施例可以看出本发明中的LPCR是离散的、跳跃性的,每个TS包周期输出一次,之间保持上一次的PCR数值,因而实现PCR校正步骤简单。
上述实施例中,当DIF_PCR数值过大(例如超过了10ms对应的系统振荡频率对应得脉冲数)时认为输入IPCR数据异常,此时若还将DIF_PCR进行滤波处理,将会降低LPCR跟踪输入TS流中PCR的速度,所以这种情况下不再进行滤波处理。如图4b所示,为提高跟踪速度,在上述实施例的步骤405之前进行
步骤404’:判断所述DIF_PCR是否超过DIF_PCR预设范围。
预先设定DIF_PCR的取值范围,所述的取值范围可以是系统初始启动时就设置固定值,也可以根据系统运行的实际状态动态调整,当DIF_PCR数值过大超过了所述的取值范围时,认为输入IPCR数据异常,每一个TS包脉冲到来时,都判断该脉冲所计算出的DIF_PCR是否超过所述取值范围;预先设置一门限值,并对所述DIF_PCR连续超过所述取值范围的次数进行计数,看其是否超过所述门限值;每一个TS包脉冲到来时,若判断出所述DIF_PCR在所述预设取值范围之内,就将DIF_PCR连续超过所述预设取值范围的次数复位为0,并转入步骤405处理。若所述DIF_PCR数值超过所述预设取值范围(例如超过了10ms对应的27M脉冲数)时认为此次输入IPCR数据异常,不进行滤波、相位校正和频率校正,转到407处理。
步骤405:对所述DIF_PCR进行低通滤波,输出相位校正和频率校正。此步骤是为了降低输入TS流中PCR随机抖动的影响,滤波的实现方式多样,在此不再赘述。
步骤406:进行LPCR和DPCR的校正。步骤405输出的相位校正直接对所述LPCR的数值进行校正,频率校正校正所述DPCR。返回步骤400。
步骤407:对DIF_PCR连续超过DIF_PCR预设取值范围的次数加1。
步骤408:判断DIF_PCR连续超过所述预设取值范围的次数是否超过步骤404’中所述的预先设定的门限值,例如,所述门限值为8,则若在系统运行过程中,连续8个TS包脉冲中所计算出的DIF_PCR值都超过了所述预先设置的取值范围,则表明IPCR严重失常,则进行步骤409,若DIF_PCR连续超过所述预设取值范围的次数不超过所述门限值,则返回步骤400。
所述门限值可以时系统初始固定设置,也可以根据TS流传输情况进行动态设定。
步骤409:数值初始化。
当DIF PCR连续超过所述预设取值范围的次数超过了步骤404,中所述的预先设定的门限值后,在接收到下一含有PCR信息的TS包后,将所述TS包中的PCR值作为IPCR输出,并将下次TS包脉冲的LPCR值初始为所述IPCR,DPCR值初始为系统振荡频率/TS包速率,转到步骤400。
有上述说明可以看出,当IPCR数据异常时,DIF_PCR将不进行滤波,LPCR及DPCR不进行改写,因此提高LPCR跟踪输入TS流中PCR信息的速度。
相应的给出单个节目TS流的PCR校正装置实施例。如图5所示,
该装置包括TS流输入同步及PCR提取模块501、环路滤波模块502、PCR改写模块503、本地PCR累加器504、参考频率模块505,所述的环路滤波模块502包括减法器502a、环路低通滤波器502b。
当接收端接收到TS包流的时候,TS流输入同步及PCR提取模块501识别出输入TS流中的TS包结构,提取TS包信息,根据PCR_FLAG判断TS包是否含有PCR信息,当检测出第一个含有PCR信息的TS包时,提取所述PCR信息的各个字节的内容,将其作为IPCR_1。当接收端接到后续的TS包时,TS流输入同步及PCR提取模块501从输入的TS包流中识别出TS包结构,输出TS包时钟脉冲给所述本地PCR累加器504,并提取TS包信息,根据PCR_FLAG判断TS包是否含有PCR信息,当检测出含有PCR信息的TS包时,提取PCR信息的各个字节的内容,将其作为IPCR传给所述环路滤波模块502中的减法器502a,并将所述TS包流传给所述PCR改写模块503;当所述本地PCR累加器504收到所述TS包时钟脉冲后,所述本地PCR累加器504产生当前TS包脉冲的本地PCR值LPCR,其过程为将参考频率模块505产生的DPCR累加到上一TS包脉冲的LPCR上,即LPCR(n)=LPCR(n-1)+DPCR,并将累加后的LPCR发送给PCR改写模块503,此时所述的LPCR转换成与PCR相对应的格式,即由LPCR_BASE和LPCR_EXT组成,LPCR的初始值LPCR(0)为第一次检测到含PCR信息的TS包中PCR信息IPCR_1;所述PCR改写模块503收到所述LPCR后用LPCR对相应的TS包的PCR信息进行改写,即用LPCR_BASE置换所述PCR信息中的PCR_BASE,用LPCR_EXT置换所述PCR信息中的PCR_EXT;所述本地PCR累加器504将累加后的LPCR发送给所述环路滤波模块502中的减法器502a,此时,所述减法器502a将收到的所述IPCR和LPCR作减法,将所得到的差值DIF_PCR发送给所述的环路低通滤波器502b;所述环路低通滤波器502b在收到DIF_PCR后对其进行低通滤波,输出的结果用于对所述参考频率模块505产生的DPCR进行频率校正,对本地PCR累加器504得到的所述LPCR进行相位校正;通过校正使得LPCR与IPCR之间的差距减小。
为了减少不必要的滤波处理,提高LPCR跟踪输入TS流中PCR信息的速度,预先在所述减法器502a中设置一个DIF_PCR的取值范围,当所述减法器502a得到的DIF_PCR没有超过DIF_PCR预设范围,将其发送给环路低通滤波器502b进行低通滤波,输出相位校正和频率校正,其中相位校正直接对所述本地PCR累加器504获得的所述LPCR的数值进行校正,频率校正校正LPCR每次累加的数值DPCR;如果所述DIF_PCR超过DIF_PCR预设范围,且DIF_PCR连续超过DIF_PCR预设范围的次数超过预先设定的阈值时,将处理数据进行初始化,即将LPCR置为下一个含有PCR信息的TS包中PCR的值,DPCR=系统振荡频率/TS包速率。
结合单节目TS流的PCR校正实施例及对应得装置实施例可以看出,本发明装置实施例的本地PCR累加器504在TS包时钟脉冲到来时进行累加,相对比于现有技术每27Mhz脉冲累加一次,处理次数要少很多。相应的减法器502a和502b环路低通滤波器,对每次LPCR变化都要与IPCR进行作差、滤波,因此本发明的装置实施例进行作差、滤波的次数要少于现有技术提供的装置。
正是由于本发明实施例提供的单节目TS流的PCR校正方法步骤简单,装置运作次数少,因此可以将该方法和装置时分地进行多节目TS流的PCR校正。下面给出本发明多节目TS流的PCR校正方法的实施例,处理过程中把每个节目的中间运算数据保存起来,如DPCR,LPCR等。初始存储的DPCR为DPCR=系统振荡频率Fref/TS包速率Ftsp。
如图6所示,包括以下步骤:
步骤600:提取输入的TS流中TS包信息。
该步骤包括识别出TS流中的TS包结构,然后提取相应的信息,如当前包是否包含PCR,PCR的各个字节的内容,节目流编号等,PCR的数值即IPCR,同时输出TS包时钟脉冲。
节目流编号是预先编好的,可以是标准TS包结构中的PID号,但该PID号过长,一般需要根据TS流中最大节目流的数量转换成较短的编号,例如如果最大节目流的数量在256以下,采用8位二进制数作编号就可以了。关于节目流编号的方法不属于本发明讨论的范围,就不在此详述了。
步骤601:PCR刷新。具体为:依次产生所有节目流编号的地址索引,根据每个节目流编号的地址索引读取已存储的相应节目流的LPCR和DPCR,将所述的DPCR累加到所述LPCR上,将所述累加后的LPCR再存储到同一地址索引上,直到所有的节目流编号的地址索引上都完成同样的操作。
步骤602:判断当前的TS包中有无PCR,有就转到步骤603,没有就转到步骤600。
步骤603:用LPCR改写TS流中的PCR数值,即将所述当前TS包中的PCR信息用所述LPCR进行置换,具体为:用LPCR_BASE置换所述PCR信息中的PCR_BASE,用LPCR_EXT置换所述PCR信息中的PCR_EXT。。
步骤604:进行PCR跟踪。PCR跟踪具体为:将节目流编号将对应节目流的LPCR、DPCR及中间运算数据取出,对所述LPCR和IPCR作差,得到DIF_PCR,将所述DIF_PCR进行低通滤波处理,得到相位校正和频率校正,相位校正直接校正所述LPCR值,频率校正校正所述DPCR值,再把校正过的LPCR和DPCR等中间运算数据存回该节目流编号的地址索引上。
步骤600至步骤604的处理细节,比如,对DIF_PCR是否超过DIF_PCR预设范围的相应处理,与单节目TS流的处理相类似,在此就不赘述。
因为单节目TS流的PCR校正方法是以TS包的周期进行处理的,数据处理间隔较长,所以上述实施里对一个TS流中成百上千个不同节目源来的TS包中PCR可以时分地分别进行校正处理,消除抖动,提高了对多节目TS流中PCR进行校正的效率。
如图7所示,是本发明多节目TS流的PCR校正装置的实施例的结构图。
该装置包括TS流输入同步及PCR提取模块701、环路滤波模块702、PCR改写模块703、本地PCR累加器704、地址扫描模块705、PCR存储器706,所述的环路滤波模块702包括减法器702a、环路低通滤波器702b。
TS流输入同步及PCR提取模块701提取输入的TS流中TS包信息及TS包中的PCR信息,即识别出TS流中的TS包结构,然后提取相应的信息,如当前包是否包含PCR,PCR的各个字节的内容,节目流编号等,PCR的数值即IPCR,同时输出TS包时钟脉冲。地址扫描模块705产生所有节目流编号的地址索引,依次从PCR存储器706将一个节目流编号的地址索引上的数据LPCR、DPCR读取后发送到本地PCR累加器704上;本地PCR累加器704接受到地址扫描模块705的发送的数据,产生本地的PCR数值LPCR,并将LPCR、DPCR发送给PCR存储器706的该地址上;TS流输入同步及PCR提取模块701识别出当前的TS包中有PCR,PCR改写模块703用LPCR改写输入TS包中的PCR值;环路滤波模块702将当前节目流编号对应的节目流的LPCR、DPCR以及相关的中间运算数据从PCR存储器706中取出,减法器702a将LPCR和IPCR作差,得到DIF_PCR,如果DIF_PCR没有超过DIF_PCR预设范围,环路低通滤波器702b对DIF_PCR进行低通滤波,输出相位校正和频率校正,其中相位校正直接对LPCR进行校正,频率校正校正LPCR每次累加的数值DPCR。如果DIF_PCR超过DIF_PCR预设范围,且DIF_PCR连续超过DIF_PCR预设范围的次数超过预先设定的阈值,将PCR存储器706中的数据初始化。
现有技术实现多节目TS流的PCR校正装置需要采用上千锁相环电路或者多个乘法器,代价相当昂贵,而由上述多节目TS流的PCR校正装置实施例可以看出,本发明的PCR校正装置实施例实现简单。
显然,本领域的技术人员可以对本发明进行一些改动和变形而不脱离本发明的精神和范围。这样,倘若对本发明的这些修改和变形属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变形在内。
Claims (15)
1.一种节目参考时钟PCR校正方法,其特征在于,包括以下步骤:
接收输入的TS流,识别TS流中的TS包结构及包信息,输出包脉冲;
根据输出的TS包时钟脉冲触发产生当前包脉冲的本地PCR值LPCR;
若当前TS包含有PCR信息时,用所述LPCR校正当前包的PCR信息;
所述根据输出的包脉冲触发产生当前包脉冲的本地PCR值LPCR具体为:
LPCR(n)=LPCR(n-1)+DPCR,
LPCR(n)为本次包脉冲的本地PCR值,LPCR(n-1)为上一包脉冲的本地PCR值,DPCR为系统振荡频率Fref和TS包的传输速率之商。
2.如权利要求1所述的节目参考时钟PCR校正方法,其特征在于,若当前TS包含有PCR信息时,将所述当前包的PCR信息作为IPCR输出;
计算所述IPCR和所述本次包脉冲的LPCR之差DIF_PCR,并对所述DIF_PCR进行低通滤波,输出相位校正和频率校正;
所述相位校正直接对所述本次包脉冲的LPCR进行校正,所述频率校正对所述DPCR进行校正。
3.如权利要求2所述的节目参考时钟PCR校正方法,其特征在于,预先设定DIF_PCR的取值范围,则
当某一包脉冲时的LPCR与IPCR的差值DIF_PCR超出所述的预设的取值范围,本次包脉冲不进行低通滤波及校正。
4.如权利要求3所述的节目参考时钟PCR校正方法,其特征在于,预先设定阈值,当所述DIF_PCR连续超过所述DIF_PCR取值范围的次数大于所述阈值时,将LPCR值设置为下一个含有PCR的TS包的PCR信息,DPCR置为系统振荡频率和TS包速率之商。
5.一种多节目的PCR校正方法,其特征在于,当TS包时钟脉冲到来时,读取每一个节目对应地址上已存储的LPCR和DPCR,将DPCR累加到LPCR上,将累加后的LPCR再存储到同一地址上,当当前TS包中含有PCR信息,则用所述当前TS包对应节目的LPCR改写所述当前TS包中的PCR信息,所述DPCR为系统振荡频率Fref和TS包的传输速率之商。
6.如权利要求5所述的多节目的PCR校正方法,其特征在于,当TS包中包含PCR时,读取和TS包对应的节目地址上的LPCR和DPCR,对LPCR和DPCR进行校正,再把数据存回这个地址上。
7.如权利要求6所述的多节目的PCR校正方法,其特征在于,为每个节目预设节目流编号,以节目流编号为地址索引存储对应节目的LPCR和DPCR。
8.一种PCR校正的装置,其特征在于,包括TS流输入同步及PCR提取模块、本地PCR累加器和PCR改写模块,其中,
TS流输入同步及PCR提取模块用于从输入的TS流中识别出TS包结构,提取TS包信息并输出包脉冲给所述本地PCR累加器,并将当前包输出给PCR改写模块;
本地PCR累加器在接收到包脉冲后触发产生当前包脉冲的本地PCR值LPCR,并将所述LPCR传给所述PCR改写模块,所述触发产生当前包脉冲的本地PCR值LPCR具体为LPCR(n)=LPCR(n-1)+DPCR,LPCR(n)为本次包脉冲的本地PCR值,LPCR(n-1)为上一包脉冲的本地PCR值,DPCR为系统振荡频率Fref和TS包的传输速率之商;
当当前包中含有PCR信息时,PCR改写模块用于根据所接收到的LPCR值改写当前包中的PCR信息;
所述装置还包括参考频率模块,用于产生本地PCR累加器产生LPCR所需的DPCR。
9.如权利要求8所述的PCR校正的装置,其特征在于,还包括环路滤波模块,所述TS流输入同步及PCR提取模块还用于当TS包中含有PCR信息时,提取PCR信息IPCR输出给所述环路滤波模块,所述本地PCR累加器还用于将LPCR输出给所述环路滤波模块,所述环路滤波模块用于将IPCR与LPCR之差滤波,输出的结果用于对参考频率模块产生的DPCR进行频率校正,对本地PCR累加器得到的LPCR进行相位校正。
10.如权利要求9所述的PCR校正的装置,其特征在于,所述环路滤波模块,包括减法器和环路低通滤波器;其中减法器用于IPCR与LPCR做差,获得差值DIF_PCR;环路低通滤波器用于将DIF_PCR进行低通滤波。
11.如权利要求10所述的PCR校正的装置,其特征在于,预先在所述减法器中设置一个DIF_PCR的取值范围,当所述减法器得到的DIF_PCR没有超过DIF_PCR预设范围,将其发送给环路低通滤波器(502b)进行低通滤波。
12.如权利要求11所述的PCR校正的装置,其特征在于,预先在所述的减法器中设定的一个阈值,当所述DIF_PCR超过DIF_PCR预设范围,且DIF_PCR连续超过DIF_PCR预设范围的次数超过预先设定的阈值时,将LPCR置为下一个含有PCR信息的TS包中PCR的值,DPCR置为系统振荡频率和TS包速率之商。
13.一种多节目PCR校正装置,其特征在于,包括TS流输入同步及PCR提取模块、本地PCR累加器、PCR改写模块和PCR存储器;
PCR存储器用于存储每个节目对应的LPCR、DPCR;
TS流输入同步及PCR提取模块用于从输入的TS流中识别出TS包结构,提取TS包信息输出TS包时钟脉冲;
本地PCR累加器在接收到TS包时钟脉冲后产生每个节目的本地PCR值LPCR,并将所述LPCR存储到PCR存储器,所述触发产生当前包脉冲的本地PCR值LPCR具体为LPCR(n)=LPCR(n-1)+DPCR,LPCR(n)为本次包脉冲的本地PCR值,LPCR(n-1)为上一包脉冲的本地PCR值,DPCR为系统振荡频率Fref和TS包的传输速率之商;
当当前包中含有PCR信息时,PCR改写模块用于从PCR存储器中读取当前包对应节目的LPCR值改写当前包中的PCR信息。
14.如权利要求13所述的多节目PCR校正装置,其特征在于,还包括地址扫描模块,用于产生所有节目的地址索引,依次将PCR存储器每个节目地址索引上的数据读取后发送到本地PCR累加器上。
15.如权利要求14所述的多节目PCR校正装置,其特征在于,还包括环路滤波模块和参考频率模块,所述参考频率模块用于产生本地PCR累加器产生LPCR所需的DPCR,当TS包中含有PCR信息时,TS流输入同步及PCR提取模块提取所述TS包的PCR信息IPCR发送给环路滤波模块,环路滤波模块读取PCR存储器中所述TS包对应的LPCR和DPCR,将IPCR与LPCR之差滤波,输出的结果用于对参考频率模块产生的DPCR进行频率校正,对本地PCR累加器得到的LPCR进行相位校正。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2006101577435A CN1997162B (zh) | 2006-12-25 | 2006-12-25 | Pcr校正方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2006101577435A CN1997162B (zh) | 2006-12-25 | 2006-12-25 | Pcr校正方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1997162A CN1997162A (zh) | 2007-07-11 |
CN1997162B true CN1997162B (zh) | 2010-10-27 |
Family
ID=38252056
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006101577435A Active CN1997162B (zh) | 2006-12-25 | 2006-12-25 | Pcr校正方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1997162B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103391453A (zh) * | 2013-07-16 | 2013-11-13 | 四川省迪特尔电子有限公司 | 网络机顶盒pcr校正处理系统及方法 |
CN103442259B (zh) * | 2013-08-21 | 2017-02-22 | 杭州浦禾通信技术有限公司 | 媒体数据的重组方法和装置 |
CN105306971B (zh) * | 2014-06-30 | 2019-07-12 | 惠州市伟乐科技股份有限公司 | 一种多节目pcr校正系统及方法 |
CN105681864B (zh) * | 2015-12-31 | 2020-09-15 | 惠州市伟乐科技股份有限公司 | 一种基于ip的传输流抖动去除方法及装置 |
CN113079395A (zh) * | 2021-04-07 | 2021-07-06 | 四川航天神坤科技有限公司 | 一种dvb-s系统ts流的pcr校正算法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1338862A (zh) * | 2000-08-22 | 2002-03-06 | 华为技术有限公司 | 多路复用中节目时钟基准的校正方法 |
CN1835597A (zh) * | 2005-03-17 | 2006-09-20 | 华为技术有限公司 | 一种节目参考时钟调整的方法及装置 |
-
2006
- 2006-12-25 CN CN2006101577435A patent/CN1997162B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1338862A (zh) * | 2000-08-22 | 2002-03-06 | 华为技术有限公司 | 多路复用中节目时钟基准的校正方法 |
CN1835597A (zh) * | 2005-03-17 | 2006-09-20 | 华为技术有限公司 | 一种节目参考时钟调整的方法及装置 |
Non-Patent Citations (1)
Title |
---|
JP特开2003-283996A 2003.10.03 |
Also Published As
Publication number | Publication date |
---|---|
CN1997162A (zh) | 2007-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5366342B2 (ja) | ビデオ・エンコーダおよびエンコーダからデコーダへのタイミングを同期させる方法 | |
CN1060003C (zh) | 用于提供压缩的视频信号的方法和装置 | |
US7545794B2 (en) | Timestamping network controller for streaming media applications | |
CN101888541B (zh) | 重建数字视讯数据流的方法与装置 | |
CN1997162B (zh) | Pcr校正方法及装置 | |
CN101478683B (zh) | 同步音频帧与视频帧 | |
CN101102496A (zh) | 恢复系统时钟的装置和方法 | |
CN100473171C (zh) | 一种广播网络中时钟同步的方法 | |
Xingdong et al. | Implementation of MPEG-2 transport stream remultiplexer for DTV broadcasting | |
JP2005530376A (ja) | ディジタルストリームの動的多重化方法 | |
RU2226044C2 (ru) | Устройство для выдачи сжатого видеосигнала и способ его передачи |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |