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

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

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

【背景技术】
[0002]节目时钟参考简称?(?(英文全称:即081^111 0100^: 1~6?61~61106 ),是实时传输系统中,为了保证收发端的正常工作,接收端与发射端的频率和相位一致,建立收发端的同步时钟。?⑶由336“基值(8386)和沘“扩展值(£061181011)组成,?⑶值以系统参考时钟周期为单位记录了源端的时间信息。在发端,将271取时钟进行计数,形成?(?值,然后每隔一段时间将?⑶值注入码流中传送给收端;收端有一个正在工作的本地时钟,其额定频率与发端时钟相等,同样也有一个计数器对它计数形成一个本地时钟参考.这时发端会将?(?从传送流中提出来,与音频帧、视频帧的编码信息插入?£3包中,接收端将音频帧、视频帧中的?⑶值放在缓存器中,等待比较发端的音视频中的值出现,然后用比较的结果控制压控振荡器00(0),通过调整使收发端的频率锁相,从而实现收发端声音和图像完全同步。
[0003]通常情况下,传输流经过复用和再复用后,?⑶值并不能完全精确地反映信源编码端的时间信息,这种现象称为抖动$(?
[0004]数字视频广播系统中,传输的内容多为基于1?%2的传输流为此传送流中的节目时钟参考对流的传输速率、对接收终端解码器、重封装的正确执行等起着至关重要的作用。
[0005]在全台收录系统试运行过程中,由于传输链路中某些设备的不稳定性,导致从卫星或有线数字电视收入的多个传输流信源中,都存在节目时钟参考$(?)会偶然发生意外的大距离无规则的离散跳动现象,如果不进行校正或者校正精度不能满足要求,解码后的图像会出现周期性的黑屏、马赛克现象,严重时解码器、流封包器等的直接崩溃,导致整个收录系统极不稳定。
[0006]中华人民共和国国家知识产权局于2010年09月29日公开了申请公布号为(^101848396八的专利文献,名称是传输流音视频同步及防抖动方法,具体步骤为:将获取的第一次节目时钟参考设置为基准时间;判断网络是否发生抖动;如是,更新基准时间;否贝0,进行下一步骤;根据基准时间以及音频展现时间戳或者视频展现时间戳计算音频有效时间戮或者视频有效时间戮。此方案解决的是节目时钟参考小范围抖动的问题,而对于大距离无规则的跳动,则无法妥善处理。


【发明内容】

[0007]本发明主要是解决现有技术所存在的不能处理节目时钟参考大距离无规则的离散跳动现象的技术问题,提供一种对大距离无规则的离散跳动进行校正,使解码后的图像能够正常播放的视频传输流中节目时钟参考异常跳动校正的方法。
[0008]本发明针对上述技术问题主要是通过下述技术方案得以解决的:一种视频传输流中节目时钟参考异常跳动校正的方法,设本机时钟参考为? (^),传输流中的节目时钟参考为? (0 ;本机时钟参考和节目时钟参考在同一个时间点〖的差值0 (0=给定时间周期I内的最大差值为最小差值为两个连续的时间点七和七+1的节目时钟参考之间的差值为13 (七+13)= ?(^+1)-[⑴,给定时间周期I'内的最大差值为¢-,最小差值为;节目时钟参考的两个时间点之间传输的数据量为8(1+1,0,可以得到两个时间点之间的码率为;(七+1,0= 8(^+1,0 /(^(^+1)- 5(0),给定时间周期I'内的最大码率为最小码率为;当两个相邻时间点?化)和?(111+1)之间的差值的绝对值大于阈值时,认为发生异常跳动,设发生跳动的时候,本机时钟为?化),0-= £011)- ? (111),¢-=? (0)- ? (0-1),^ 8 (111, 111-1) / ^ ―,此时对? (111+1)采用以下方法修正:
(111+1) (111+1) + ( 0 -+ 0 0』/6 ;
(111+1) 二? (111) + ( 3 -+ 3.+4 X 3 —) /6 ;
(111+1) 二?(111) +8 (111+1,111)/( 2, -+ 2,咖X 2,』/6 ;
(111+1)= (^01(111+1)+ 2^^2(111+1)+ 3^^3(111+1))/6 ;
式中,1^3(111+1^ ?03 (111+1)和 1^3 (111+1)为中间变量,为修正后的对应 111+1时间点的节目时钟参考;
对于!11+2时间点及后续时间点的节目时钟参考,按以下方法修正:
(11) = (11-1) + (卩(11)-? (11-1) ) II ? 111+2。
[0009]认为发生异常跳动的阈值一般为100000,即计数值差大于100000,每计数代表271时钟的300分频。
[0010]作为优选,对于!11+2时间点及后续时间点的节目时钟参考,当出现
¢-彡? (8)-1? (8-1)彡¢., 8彡111+2,并且8时间点和开始修正的111+1时间点之间的时间间隔8-(111+1)小于1秒,则对?(8)及后续的节目时钟参考不进行修正。
[0011]作为优选,出现权2所述的情形以后,对于8时间点及后续时间点的节目时钟参考,当出现?00和?0^-1)的差值的绝对值大于阈值,卜+
彡?⑵(8-1)彡(8-1) +13 且&时间点和8-1时间点之间的时间间隔卜(8-1)小于1秒,则对?00按以下方法修正:
⑵(10+ -+ 0 眶+4 X 0』/6 ;
⑵ 二? (1^-1) + ( 3 -+ 3 腕X 3』/6 ;
⑵ 二? (1^-1) +8 (111+1,111)/( -+ 2, X 2, -)/6 ;
(1^) = (^01(1^)+ 2^^02(^)+ 3^^03(^))/6 ;
^0)3 (1^) = (8-1) + (17 (^) (8-1));
如果(匕-0,则 1^(10= ^0)3 (1^),否则(10=;
对于&时间点以后的节目时钟参考,按以下方法修正:
(11) = (11-1) + (卩⑷-? (11-1) ) 11 ^ 1^+1。
[0012]&和匕1为连续的时间点。
[0013]作为优选,所述给定时间周期了的取值范围是100毫秒至1000毫秒。
[0014]修正之后的?⑶与实际?⑶值之间误差控制在±500!18以内,解码器按照修正后的进行播放,可以得到正常的图像。
[0015]本发明带来的实质性效果是,利用传输流中跳动发生之前统计分析出的分布规律,在跳动发生时,用最新历史规律重建近期时钟,解决了?⑶偶然发生的大距离无规则的离散跳动问题,避免了解码后的图像出现周期性的黑屏、马赛克甚至是解码器、流封包器崩溃的现象,使整个收录系统稳定。

【专利附图】

【附图说明】
[0016]图1是本发明的一种小区段偏离跳动示意图;
图2是本发明的一种前向跃动示意图;
图3是本发明的一种后向跃动示意图;
图4是本发明的一种小区间重复跳动示意图。

【具体实施方式】
[0017]下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。
[0018]实施例:本机时钟与传输流中关联规律,设本机时钟为? (0,传输流中时钟为?⑴,可以得到两时钟同一个时间点的差值^⑴=亡⑴-?⑴,由于?⑶的抖动,^值不同时刻不是同一个值,但通常情况下较短的一个周期I内,0值将在一个较为恒定的范围之内,设为0已[0-, ^!.]。在跳动发生之前,持续分析给定时间周期I内的数据,得出^值近期的范围边界:0 ―,0.及最后一次0 ―。
[0019]间隔规律,传输流中时钟为?“),可以得到该时钟两个连续的时间点之间的差值0 (^2,^1)=5(0),由于?(?的抖动及变码率,13值不同时刻可能不是同一个值,但通常情况下较短的一个周期I内,13值将在一个较为恒定的范围之内,设为
13.〕。在跳动发生之前,持续分析给定时间周期I内的数据,得出13值近期的范围边界:@ ―,^ —及最新一次@ ―。
[0020]码率规律,根据传输流中两个时钟间的数据量及计数差值,设两个计数区别的码率为8“2,^,可以得出两个?⑶计数间的码率:
^ (12, ^1)= 8(七2,0 /(卩(⑵-口⑶)
由于?(?的抖动及变码率,(值不同时刻可能不是同一个值,但通常情况下较短的一个周期I内,4值将在一个较为恒定的范围之内,设为4日“咖4 0在跳动发生之前,持续分析给定时间周期I内的数据,得出(值近期的范围边界:(-,(.及最新一个数据匕。
[0021]??:!?多种跳动类型的重建处理算法:
1,小区段偏离跳动“〈1秒)
指传输流中连续差值5(12)-5(0 ? 100000,但在很小的一个持续时间(〈1秒)之后,又恢复保持原有?(? (^(^1))连续计数的情况。
[0022]设本机时钟为?⑴,传输流中实际的值为?⑴,错误的值为?6⑴,正确或修正之后?⑶值为斤“),丨1到丨2期间,接收数据量为8 “2,^。
[0023]?邙发生跳动时间点为七10…乜0,衍421…保持连续性。如图1。
[0024]对于该种情况,^10采用以下算法修正:
(七 10) (七 10) + ( 0 -+ 0 眶十4氺 0』/6 ;
(七 10) 二?(七9) + ( 3 -+ 3 匪十4氺 3 ―) /6 ;
?03 (110)邙(^9) +8 “10,^9)/(^ -+ ^ 眶+钿 ^ -) /6 ;
(七 10)= (1^1(^10)+ 2^02(^10)+ 3^3(^10))/6:
对于01120,采用以下算法修正:
?0 (七]!) = ?0 (七(11-1) ) + (17 (七]!) -?(七(11-1)));
对于121,采用以下算法识别:
?(七21)-? (七20) ^ [¢-, |3 ,并且七31-七20〈1 秒识别确认之后,该值及后续值不做修正$(3(01)= ?“21〉。
[0025]2,前向跃动
指传输流中连续差值?(12)- )100000,且在很小的一个持续时间〔?1秒)之内没有恢复保持原有(^(^1))连续计数的情况。
[0026]设本机时钟为?⑴,传输流中实际的值为?⑴,错误的值为?6⑴,正确或修正之后?⑶值为斤“),丨1到丨2期间,接收数据量为8 “2,^。
[0027]发生跳动时间点为七10…,七1保持连续性。如图2。
[0028]对于该种情况,^10采用以下算法修正:
(七 10) (七 10) + ( 0 -+ 0 眶十4氺 0』/6 ;
(七 10) 二?(七9) + ( 3 -+ 3 匪十4氺 3 ―) /6 ;
?03 (110)邙(^9) +8 “10,^9)/(^ -+ ^ 眶+钿 ^ -) /6 ;
(七 10)= (1^1(^10)+ 2^02(^10)+ 3^3(^10))/6:
对于〖11之后的值,采用以下算法修正:
?0 (七]!) = ?0 (七(11-1) ) + (17 (七]!) -?(七(11-1)));
3,后向跃动
指传输流中连续?⑶差值? “2) - “ 1)〈0,且在很小的一个持续时间(〈1秒)之内没有恢复保持原有(^(^1))连续计数的情况。
[0029]设本机时钟为?⑴,传输流中实际的值为?⑴,错误的值为?6⑴,正确或修正之后?⑶值为斤“),丨1到丨2期间,接收数据量为8 “2,^。
[0030]发生跳动时间点为七10…,七1保持连续性。如图3。
[0031]后向跃动判断及校正算法与前向跃动相同。
[0032]4,小区间重复跳动
指传输流中连续差值5(12)-5(0 ? 100000,但在很小的一个持续时间(〈1秒)之后,又恢复保持原有?(? (5(0))连续计数,之后在很小的一个持续时间〔?1秒)之后,又重复一次小区间跳动,一直反复。
[0033]设本机时钟为?⑴,传输流中实际的值为?⑴,错误的值为?6⑴,正确或修正之后?⑶值为斤“),丨1到丨2期间,接收数据量为8 “2,^。
[0034]?邙发生跳动时间点为七10…七20,七1…七9、七21…七30,七31…七40保持连续性。如图4。
[0035]对于该种情况,^10采用以下算法修正:
(七 10) (七 10) + ( 0 -+ 0 眶十4氺 0』/6 ;
(七 10) 二?(七9) + ( 3 -+ 3 匪十4氺 3 ―) /6 ;
?03 (110) (^9) +8 “10,19)/(^ -+ ^ 眶+钿 ^ -) /6 ;
(七 10)= (1^1(^10)+ 2^02(^10)+ 3^3(^10))/6:
对于01120,采用以下算法修正:
?0 (七]!) = ?0 (七(11-1) ) + (17 (1:11) -?(七(11-1)));
对于121..^30,采用以下算法识别:
冲21)-1^20)已[¢-, 13」
识别确认之后,该值包括不做修正$(3(01)= 1^(^21) 0
[0036]对于七31,采用以下算法识别:
1^(^31)-^(^20) ^ [^0 (^30)-^0(^20) + 13^, (^30) -^0(^20) + 13^1,并且七31-七20〈1秒
识别之后,修正算法如下:
(^31) (^31) + ( 0 -+ 0 腕,+扭 0 —) /6 ;
?02 (^31)邙(^30) + ( 13 -+13 眶十扭 |3 -) /6 ;
?03 (131)邙(^30) +8 “10,^9)/(^ -+ ^ 眶十4氺 ^ -) /6 ;
^08(^31)= (1^1(^31)+ 2^02(^31)+ 3^03(^31))/6:
1^(七31)= ^0(^20) + (^(^31)-^(^20));
如果?4(131))1? (30),则 1^(131)= 1^(七31),否则?(^31)= 1^(七31);
对于七32…七40的校正,与七10…七20算法相同。
[0037]修复之后的效果:
跳动异常,经上述校正算法之后,可以将修正之后的与实际值之间误差控制在±500!18以内,有效排除了跳动导致解码、重封装等音视频录制处理过程中产生的异常。
[0038]本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属【技术领域】的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
[0039]尽管本文较多地使用了 、本机时钟等术语,但并不排除使用其它术语的可能性。使用这些术语仅仅是为了更方便地描述和解释本发明的本质;把它们解释成任何一种附加的限制都是与本发明精神相违背的。
【权利要求】
1.一种视频传输流中节目时钟参考异常跳动校正的方法,其特征在于,设本机时钟参考为f (t),传输流中的节目时钟参考为F(t);本机时钟参考和节目时钟参考在同一个时间点t的差值a (t)= f(t)- F(t),给定时间周期T内的最大差值为Cimax,最小差值为Cimin ;两个连续的时间点t和t+Ι的节目时钟参考之间的差值为β (t+l,t)= F(t+1)- F(t),给定时间周期T内的最大差值为,最小差值为节目时钟参考的两个时间点之间传输的数据量为B(t+l,t),可以得到两个时间点之间的码率为ζ (t+l,t)= B(t+l,t) /(F(t+1)-F(t)),给定时间周期T内的最大码率为,最小码率为Cmin;当两个相邻时间点F(m)和F(m+1)之间的差值的绝对值大于阈值时,认为发生异常跳动,设发生跳动的时候,本机时钟为 f(m), aend= f (m)- F(m), β end= F(m)_ F(m_l), ζ end= B(m,m_l)/ β end,此时对 F (m+1)采用以下方法修正:
Fcl (m+1) =f (m+1) + ( a min+ a max+4X a end) /6 ;
Fc2 (m+1) =F (m) + ( β min+ β max+4 X β end) /6 ;
Fc3 (m+1) =F(m) +B(m+1, m)/( ζ min+ ζ max+4X ζ end)/6 ;
Fe (m+1)= (FeI (m+1)+ 2XFc2(m+l)+ 3XFc3 (m+1))/6 ; 式中,Fc3(m+1)、Fc3 (m+1)和Fc3(m+1)为中间变量,Fe (m+1)为修正后的对应m+1时间点的节目时钟参考; 对于m+2时间点及后续时间点的节目时钟参考,按以下方法修正:
Fe (n)= Fe (n-1) + (F (n) -F (η-1)) η > m+2。
2.根据权利要求1所述的一种视频传输流中节目时钟参考异常跳动校正的方法,其特征在于,对于m+2时间点及后续时间点的节目时钟参考,当出现 β min ( F(s)-Fc(s-1) ( β max, s彡m+2,并且s时间点和开始修正的m+1时间点之间的时间间隔s-(m+l)小于I秒,则对F(S)及后续的节目时钟参考不进行修正。
3.根据权利要求2所述的一种视频传输流中节目时钟参考异常跳动校正的方法,其特征在于,对于s时间点及后续时间点的节目时钟参考,当出现F(k)和F(k-l)的差值的绝对值大于阈值,k-l>n,且 Fe (k-1) -Fe (s_l) + ^min 彡 F (k) -F (s_l) ( Fe (k_l)-Fe (s-1)+ β_,且k时间点和s-1时间点之间的时间间隔k-(s-Ι)小于I秒,则对F(k)按以下方法修正:
Fcl(k) =f (k) + (a min+ a max+4X α end)/6 ;
Fc2 (k) =F (k-1) + ( β min+ β max+4 X β end) /6 ;
Fc3 (k) =F(k-1) +B(m+1, m)/( ζ min+ ζ max+4X ζ end)/6 ;
Fca(k) = (Fcl(k)+ 2XFc2(k)+ 3XFc3(k))/6 ;
Fcb (k) = Fe (s_l) + (F (k)-F (s_l));
如果 Fcb(k)>Fc (k_l),则 Fe (k)= Fcb (k),否则 Fc(k)= Fca (k); 对于k时间点以后的节目时钟参考,按以下方法修正:
Fe(u)= Fe(u-1)+(F(u)-F(u_l)) u ^ k+1。
4.根据权利要求1或2或3所述的一种视频传输流中节目时钟参考异常跳动校正的方法,其特征在于,所述给定时间周期T的取值范围是100毫秒至1000毫秒。
【文档编号】H04N21/242GK104320676SQ201410308603
【公开日】2015年1月28日 申请日期:2014年7月2日 优先权日:2014年7月2日
【发明者】郑红哲, 仇玉萍, 吴宇超, 赵凡, 吕连新 申请人:浙江广播电视集团, 杭州联汇数字科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1