首页> 中国专利> 一种视频传输流中节目时钟参考异常跳动校正的方法

一种视频传输流中节目时钟参考异常跳动校正的方法

摘要

本发明公开了一种视频传输流中节目时钟参考异常跳动校正的方法,通过利用传输流中PCR跳动发生之前统计分析出的PCR分布规律,在跳动发生时,用最新历史规律重建近期时钟,将修正之后的PCR与实际PCR值之间误差控制在±500ns以内,有效排除了PCR跳动导致解码、重封装等音视频录制处理过程中产生的异常。本方案适用于数字音视频处理播放领域。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-07-28

    授权

    授权

  • 2017-07-14

    著录事项变更 IPC(主分类):H04N21/242 变更前: 变更后: 申请日:20140702

    著录事项变更

  • 2015-02-25

    实质审查的生效 IPC(主分类):H04N21/242 申请日:20140702

    实质审查的生效

  • 2015-01-28

    公开

    公开

说明书

技术领域

本发明属于计算机设计与应用技术领域,涉及计算机软件、多媒体技术以及视音频处理技术,特别涉及一种数字视频广播传输流中节目时钟参考异常跳动校正的方法。 

背景技术

节目时钟参考简称PCR(英文全称:program clock reference ),是实时传输系统中,为了保证收发端的正常工作,接收端与发射端的频率和相位一致,建立收发端的同步时钟。PCR由33bit基值(Base)和9bit扩展值(Extension)组成,PCR值以系统参考时钟周期为单位记录了源端的时间信息。在发端, 将27MHz时钟进行计数,形成PCR值,然后每隔一段时间将PCR值注入码流中传送给收端;收端有一个正在工作的本地时钟,其额定频率与发端时钟相等,同样也有一个计数器对它计数形成一个本地时钟参考.这时发端会将PCR从传送流中提出来,与音频帧、视频帧的编码信息插入PES包中,接收端将音频帧、视频帧中的PCR值放在缓存器中,等待比较发端的音视频中的值出现,然后用比较的结果控制压控振荡器(VCXO),通过调整使收发端的频率锁相,从而实现收发端声音和图像完全同步。 

通常情况下,传输流经过复用和再复用后,PCR值并不能完全精确地反映信源编码端的时间信息,这种现象称为PCR抖动(PCR jitter)。 

数字视频广播系统中,传输的内容多为基于MPEG2的传输流(MPEG2-TS), 为此传送流中的节目时钟参考(PCR)对MPEG2-TS流的传输速率、对接收终端解码器、重封装的正确执行等起着至关重要的作用。 

在全台收录系统试运行过程中,由于传输链路中某些设备的不稳定性,导致从卫星或有线数字电视收入的多个传输流信源中,都存在节目时钟参考(PCR)会偶然发生意外的大距离无规则的离散跳动现象,如果不进行校正或者校正精度不能满足要求,解码后的图像会出现周期性的黑屏、马赛克现象,严重时解码器、流封包器等的直接崩溃,导致整个收录系统极不稳定。 

中华人民共和国国家知识产权局于2010年09月29日公开了申请公布号为CN101848396A的专利文献,名称是传输流音视频同步及防抖动方法,具体步骤为:将获取的第一次节目时钟参考设置为基准时间;判断网络是否发生抖动;如是,更新基准时间;否则,进行下一步骤;根据基准时间以及音频展现时间戳或者视频展现时间戳计算音频有效时间戳或者视频有效时间戳。此方案解决的是节目时钟参考小范围抖动的问题,而对于大距离无规则的跳动,则无法妥善处理。 

发明内容

本发明主要是解决现有技术所存在的不能处理节目时钟参考大距离无规则的离散跳动现象的技术问题,提供一种对大距离无规则的离散跳动进行校正,使解码后的图像能够正常播放的视频传输流中节目时钟参考异常跳动校正的方法。 

本发明针对上述技术问题主要是通过下述技术方案得以解决的:一种视频传输流中节目时钟参考异常跳动校正的方法,设本机时钟参考为f(t),传输流中的节目时钟参考为F(t);本机时钟参考和节目时钟参考在同一个时间点t的差值α(t)= f(t)- F(t),给定时间周期T内的最大差值为αmax,最小差值为αmin;两个连续的时间点t和t+1的节目时钟参考之间的差值为β(t+1,t)= F(t+1)- F(t),给定时间周期T内的最大差值为βmax,最小差值为βmin;节目时钟参考的两个时间点之间传输的数据量为B(t+1,t),可以得到两个时间点之间的码率为ζ(t+1,t)= B(t+1,t) /(F(t+1)- F(t)),给定时间周期T内的最大码率为ζmax,最小码率为ζmin;当两个相邻时间点F(m)和F(m+1)之间的差值的绝对值大于阈值时,认为发生异常跳动,设发生跳动的时候,本机时钟为f(m),αend= f(m)- F(m),βend= F(m)- F(m-1),ζend= B(m,m-1)/ βend,此时对F(m+1)采用以下方法修正: 

Fc1(m+1)=f(m+1)+ (αminmax+4×αend)/6;

Fc2(m+1)=F(m)+( βminmax+4×βend)/6;

Fc3(m+1)=F(m)+B(m+1,m)/(ζminmax+4×ζend)/6;

Fc(m+1)= (Fc1(m+1)+ 2×Fc2(m+1)+ 3×Fc3(m+1))/6;

式中,Fc3(m+1)、 Fc3(m+1)和 Fc3(m+1)为中间变量, Fc(m+1)为修正后的对应m+1时间点的节目时钟参考;

对于m+2时间点及后续时间点的节目时钟参考,按以下方法修正:

Fc(n)= Fc(n-1)+(F(n)-F(n-1))   n≥m+2。

认为发生异常跳动的阈值一般为100000,即PCR计数值差大于100000,每计数代表27M时钟的300分频。 

作为优选,对于m+2时间点及后续时间点的节目时钟参考,当出现 

βmin≤F(s)-Fc(s-1) ≤βmax,s≥m+2,并且s时间点和开始修正的m+1时间点之间的时间间隔s-(m+1)小于1秒,则对F(s)及后续的节目时钟参考不进行修正。

作为优选,出现权2所述的情形以后,对于s时间点及后续时间点的节目时钟参考,当出现F(k)和F(k-1)的差值的绝对值大于阈值,k-1>n,且Fc(k-1) -Fc(s-1)+βmin ≤F(k)-F(s-1) ≤Fc(k-1) -Fc(s-1)+βmax,且k时间点和s-1时间点之间的时间间隔k-(s-1)小于1秒,则对F(k)按以下方法修正: 

Fc1(k)=f(k)+ (αminmax+4×αend)/6;

Fc2(k)=F(k-1)+( βminmax+4×βend)/6;

Fc3(k)=F(k-1)+B(m+1,m)/(ζminmax+4×ζend)/6;

Fca(k)= (Fc1(k)+ 2×Fc2(k)+ 3×Fc3(k))/6;

Fcb(k)= Fc(s-1)+(F(k)-F(s-1));

如果Fcb(k)>Fc(k-1),则Fc(k)= Fcb(k),否则Fc(k)= Fca(k);

对于k时间点以后的节目时钟参考,按以下方法修正:

Fc(u)= Fc(u-1)+(F(u)-F(u-1))   u≥k+1。

k和k+1为连续的时间点。 

作为优选,所述给定时间周期T的取值范围是100毫秒至1000毫秒。 

修正之后的PCR与实际PCR值之间误差控制在±500ns以内,解码器按照修正后的PCR进行播放,可以得到正常的图像。 

本发明带来的实质性效果是,利用传输流中PCR跳动发生之前统计分析出的PCR分布规律,在跳动发生时,用最新历史规律重建近期时钟,解决了PCR偶然发生的大距离无规则的离散跳动问题,避免了解码后的图像出现周期性的黑屏、马赛克甚至是解码器、流封包器崩溃的现象,使整个收录系统稳定。 

附图说明

图1是本发明的一种小区段偏离跳动示意图; 

图2是本发明的一种前向跃动示意图;

图3是本发明的一种后向跃动示意图;

图4是本发明的一种小区间重复跳动示意图。

具体实施方式

下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。 

实施例:本机时钟与传输流中PCR关联规律,设本机时钟为f(t),传输流中时钟为F(t),可以得到两时钟同一个时间点的差值α(t)= f(t)- F(t),由于PCR的抖动,α值不同时刻不是同一个值,但通常情况下较短的一个周期T内,α值将在一个较为恒定的范围之内,设为α∈[αmin, αmax]。在跳动发生之前,持续分析给定时间周期T内的数据,得出α值近期的范围边界:αmin, αmax及最后一次αend。 

PCR间隔规律,传输流中时钟为F(t),可以得到该时钟两个连续的时间点之间的差值β(t2,t1)= F(t2)- F(t1),由于PCR的抖动及变码率,β值不同时刻可能不是同一个值,但通常情况下较短的一个周期T内,β值将在一个较为恒定的范围之内,设为β∈[βmin, βmax]。在跳动发生之前,持续分析给定时间周期T内的数据,得出β值近期的范围边界:βminmax及最新一次βend。 

码率规律,根据传输流中两个时钟间的数据量及PCR计数差值,设两个PCR计数区别的码率为B(t2,t1),可以得出两个PCR计数间的码率: 

ζ(t2,t1)= B(t2,t1) /(F(t2)- F(t1))

由于PCR的抖动及变码率,ζ值不同时刻可能不是同一个值,但通常情况下较短的一个周期T内,ζ值将在一个较为恒定的范围之内,设为ζ∈[ζmin, ζmax]。在跳动发生之前,持续分析给定时间周期T内的数据,得出ζ值近期的范围边界:ζmin, ζmax及最新一个数据ζend

PCR多种跳动类型的重建处理算法: 

1,小区段偏离跳动(t<1秒)

指传输流中连续PCR差值F(t2)- F(t1)>100000,但在很小的一个持续时间(<1秒)之后,又恢复保持原有PCR(F(t1))连续计数的情况。

设本机PCR时钟为f(t),传输流中实际的PCR值为F(t),错误的PCR值为Fe(t),正确或修正之后PCR值为Fc(t), t1到t2期间,接收数据量为B(t2,t1)。 

PCR发生跳动时间点为t10…t20,t1…t9、t21…保持连续性。如图1。 

对于该种情况,t10采用以下算法修正: 

Fc1(t10)=f(t10)+ (αminmax+4*αend)/6;

Fc2(t10)=F(t9)+( βminmax+4*βend)/6;

Fc3(t10)=F(t9)+B(t10,t9)/(ζminmax+4*ζend)/6;

Fc(t10)= (Fc1(t10)+ 2*Fc2(t10)+ 3*Fc3(t10))/6;

对于t11~t20,采用以下算法修正:

Fc(tn)= Fc(t(n-1))+(F(tn)-F(t(n-1)));

对于t21,采用以下算法识别:

F(t21)-Fc(t20)∈[βmin, βmax] ,并且t31-t20<1秒

识别确认之后,该值及后续值不做修正:Fc(t21)= F(t21)。

2,前向跃动 

指传输流中连续PCR差值F(t2)- F(t1)>100000,且在很小的一个持续时间(<1秒)之内没有恢复保持原有PCR(F(t1))连续计数的情况。

设本机PCR时钟为f(t),传输流中实际的PCR值为F(t),错误的PCR值为Fe(t),正确或修正之后PCR值为Fc(t), t1到t2期间,接收数据量为B(t2,t1)。 

PCR发生跳动时间点为t10…,t1…t9保持连续性。如图2。 

对于该种情况,t10采用以下算法修正: 

Fc1(t10)=f(t10)+ (αminmax+4*αend)/6;

Fc2(t10)=F(t9)+( βminmax+4*βend)/6;

Fc3(t10)=F(t9)+B(t10,t9)/(ζminmax+4*ζend)/6;

Fc(t10)= (Fc1(t10)+ 2*Fc2(t10)+ 3*Fc3(t10))/6;

对于t11之后的值,采用以下算法修正:

Fc(tn)= Fc(t(n-1))+(F(tn)-F(t(n-1)));

3,后向跃动

指传输流中连续PCR差值F(t2)- F(t1)<0,且在很小的一个持续时间(<1秒)之内没有恢复保持原有PCR(F(t1))连续计数的情况。

设本机PCR时钟为f(t),传输流中实际的PCR值为F(t),错误的PCR值为Fe(t),正确或修正之后PCR值为Fc(t), t1到t2期间,接收数据量为B(t2,t1)。 

PCR发生跳动时间点为t10…,t1…t9保持连续性。如图3。 

后向跃动判断及校正算法与前向跃动相同。 

4,小区间重复跳动 

指传输流中连续PCR差值F(t2)- F(t1)>100000,但在很小的一个持续时间(<1秒)之后,又恢复保持原有PCR(F(t1))连续计数,之后在很小的一个持续时间(<1秒)之后,又重复一次小区间跳动,一直反复。

设本机PCR时钟为f(t),传输流中实际的PCR值为F(t),错误的PCR值为Fe(t),正确或修正之后PCR值为Fc(t), t1到t2期间,接收数据量为B(t2,t1)。 

PCR发生跳动时间点为t10…t20,t1…t9、t21…t30,t31…t40保持连续性。如图4。 

对于该种情况,t10采用以下算法修正: 

Fc1(t10)=f(t10)+ (αminmax+4*αend)/6;

Fc2(t10)=F(t9)+( βminmax+4*βend)/6;

Fc3(t10)=F(t9)+B(t10,t9)/(ζminmax+4*ζend)/6;

Fc(t10)= (Fc1(t10)+ 2*Fc2(t10)+ 3*Fc3(t10))/6;

对于t11~t20,采用以下算法修正:

Fc(tn)= Fc(t(n-1))+(F(tn)-F(t(n-1)));

对于t21..t30,采用以下算法识别:

F(t21)-Fc(t20)∈[βmin, βmax]

识别确认之后,该值包括不做修正:Fc(t21)= F(t21)。

对于t31,采用以下算法识别: 

F(t31)-F(t20) ∈[Fc(t30)-Fc(t20)+βmin, Fc(t30) -Fc(t20)+βmax],并且t31-t20<1秒

识别之后,修正算法如下:

Fc1(t31)=f(t31)+ (αminmax+4*αend)/6;

Fc2(t31)=F(t30)+( βminmax+4*βend)/6;

Fc3(t31)=F(t30)+B(t10,t9)/(ζminmax+4*ζend)/6;

Fca(t31)= (Fc1(t31)+ 2*Fc2(t31)+ 3*Fc3(t31))/6;

Fcb(t31)= Fc(t20)+(F(t31)-F(t20));

如果Fcb(t31)>Fc(30),则Fc(t31)= Fcb(t31),否则Fc(t31)= Fca(t31);

对于t32…t40的校正,与t10…t20算法相同。

修复之后的效果: 

PCR跳动异常,经上述校正算法之后,可以将修正之后的PCR与实际PCR值之间误差控制在±500ns以内,有效排除了PCR跳动导致解码、重封装等音视频录制处理过程中产生的异常。

本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。 

尽管本文较多地使用了PCR、本机时钟等术语,但并不排除使用其它术语的可能性。使用这些术语仅仅是为了更方便地描述和解释本发明的本质;把它们解释成任何一种附加的限制都是与本发明精神相违背的。 

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号