专利名称:视频终端接收视频数据延时的处理方法
技术领域:
本发明涉及一种图像解码延时的处理方法,特别是涉及一种使用H.264视频解码器的显 示终端的图像解码延时的处理方法。
背景技术:
随着Internet和多媒体技术的快速发展,视频数据的实时传输成为网络应用的热点之 一。H.264标准以其高压縮率、高质量、低码率的优点,成为当前和下一代网络多媒体传输 的主要格式和标准。视频数据的实时传输,要求较小的传输时延和较低的丢包率。使用基于 H.264的视频服务器时,视频数据在前端硬件编码后,通过网络传送图像数据包到显示终端 解码显示。显示终端可以是基于客户端软件的计算机,或使用H. 264视频解码器的视频终端 (如电视机)。
采用视频终端作为输出的方案最广泛、最常用,具有成本低、效果直观、操作方便等特 点。使用视频终端作为显示终端和使用计算机作为显示终端,在图像刷新上是存在差异的。 计算机客户端软件接收解码后的视频数据时,是实时刷新。而视频终端接收经视频解码器解 码的视频数据时,是40ms刷新一帧。由于网络环境比较复杂,视频数据的网络实时传输面临 较多不确定性,网络传输质量起伏比较常见。所以,必须要考虑其40ms为一个周期的刷新特 性。
当视频解码器对多路通道CIF格式(352X288像素)视频数据解码后,如果视频编码器 和解码器的时钟不同步,网络延时问题产生数据包延时,或视频解码器解码时间过长,在第 一个40ms周期内,多路图像中的一路或者几路会因为延时未能完成图像解码。这样在第二个 40ms周期内,解码后又会产生新的延时。如果在一个周期内有延时产生,就会一直存在并影 响到后面的周期。如图1所示,是4路通道CIF视频数据的延时情况。经过一段时间的延时 积累,会导致视频图像和现场图像间存在很大的延时,且不可恢复。在应用中,例如视频监 控,对延时了的图像数据包的处理具有很迫切的要求。
发明内容
本发明所要解决的技术问题是提供一种视频终端接收视频数据延时的处理方法,特别
是针对使用H. 264视频解码器的视频终端在接收多路通道CIF视频数据解码延时的情况,使 得延时控制在可接受的范围之内。
本发明所采用的技术方案包括以下步骤
100)在视频终端的解码器处设置缓冲区,用于接收远端的图像数据包;
200)在缓冲区中设置高点标记和低点标记;当缓冲区中数据包数量大于高点时,转至
400);当缓冲区数据包数量在高点和低点之间时,进入下一步;当缓冲区数据包数量小于低
点时检查网络连接,暂停视频数据地接收;
3300)在从缓冲区中接收图像数据包时,根据上一个能组帧的一组图像数据包中第一个数 据包的时间戳和当前接收包的时间戳的差的绝对值来判断;当此绝对值小于或等于预定的正
常收包时间时,转至500);当此绝对值大于预定的正常收包时间时,出现异常,进入下一步; 400)组帧时,如果是P帧则采用前一P帧代替,或者进行跳帧处理;如果是I帧则继续
组帧,只解码不显示;当步骤200)的缓冲区数据包数量和步骤300)的时间戳差的绝对值恢
复到正常水平后,进入下一步;。 500)恢复普通组帧解码流程。
本发明的优点采用本发明的处理方法可以来修正图像延时,把所产生的延时控制在可 接受的范围之内,保证实时视频监控的正常和工作效率。
图1是解码器输出到视频终端上产生解码延时的示意图。 图2是缓冲区设置示意图。
图3是本发明实施例利用时间戳判断的工作流程。
具体实施例方式
采用本发明的处理方法可以来修正图像延时,把所产生的延时控制在可接受的范围之内。
针对以上情况,本发明采用以下具体实施方式
来解决以上问题 如图1 图3所示,本发明包括以下步骤
100)在视频终端的解码器处设置缓冲区,用于接收远端的图像数据包;
200)在缓冲区中设置高点标记和低点标记;当缓冲区中数据包数量大于高点时,转至 400);当缓冲区数据包数量在高点和低点之间时,进入下一步;当缓冲区数据包数量小于低 点时检査网络连接,暂停视频数据地接收;
300)在从缓冲区中接收图像数据包时,根据上一个能组帧的一组图像数据包中第一个数 据包的时间戳和当前接收包的时间戳的差的绝对值来判断;当此绝对值小于或等于预定的正 常收包时间时,转至500);当此绝对值大于预定的正常收包时间时,出现异常,进入下一步;
400)组帧时,如果是P帧则采用前一P帧代替,或者进行跳帧处理;如果是I帧则继续 组帧,只解码不显示,这样就不会影响正常的显示,也不会降低解码速度;当步骤200)的 缓冲区数据包数量和步骤300)的时间戳差的绝对值恢复到正常水平后,进入下一步;。 500)恢复普通组帧解码流程。
当进行多路通道CIF格式解码时,步骤100)的解码器采取依次循环方式接收多路图像 数据包。
所述步骤200)的高点(highwater)和低点标记(lowwater),是根据硬件缓冲大小和 解帧时间(每一帧的时间都是记录的,且动态变化)来决定的经验值。
所述步骤300)的正常收包时间包括上限和下限,正常收包时间可设为第一个收到的数 据包的时间戳和下一个收到的数据包的时间戳的差值加上一个时间差值。具体而言,步骤300) 的正常收包时间T^T参厂T参2l + AT,此处T参b T参2分别为第一个收到的数据包的时间戳、 下一个收到的数据包的时间戳,AT的范围为0.5 2s。所述400)在继续组帧I帧之后,还可以进行CRC校验,如果正常才继续解码,否则重 新对I帧进行组帧。
所述步骤400)中P帧的跳帧方法,以8个P帧为例,以时间顺序依次编号为1、 2……8。 则保留l、 3、 5、 7号P帧,跳2、 4、 6、 8号P帧。
步骤1中当进行多路通道CIF格式解码时,解码器接收图像数据包采用循环方式,先接 收第一路通道图像数据包,然后第二路、第三路、第四路,依次循环接收。
实例中,步骤300)可包含以下步骤-
310)设T1为上一个能组帧的一组图像数据包中第一个数据包的时间戳;
T2为当前接收包的时间戳;
T0为lT1-T2| (即Tl和T2的差的绝对值);
T为正常收包组帧时间,此值可以设定为固定经验值,也可以设定为动态变化值;
320)判断TO和T的大小关系,当TO〉T时,认为解码时间过长,进入400);当TO^T时,
认为解码正常,无论是I帧还是P帧均正常解码。
其中步骤310)发生在接收到图像数据包,放入缓冲区之前;步骤320)发生在从缓冲区
中取包组帧时,根据步骤310)的判断来决定是继续组帧还是转入400)的异常处理流程。
权利要求
1.视频终端接收视频数据延时的处理方法,其特征在于包括以下步骤100)在视频终端的解码器处设置缓冲区,用于接收远端的图像数据包;200)在缓冲区中设置高点标记和低点标记;当缓冲区中数据包数量大于高点时,转至400);当缓冲区数据包数量在高点和低点之间时,进入下一步;当缓冲区数据包数量小于低点时检查网络连接,暂停视频数据地接收;300)在从缓冲区中接收图像数据包时,根据上一个能组帧的一组图像数据包中第一个数据包的时间戳和当前接收包的时间戳的差的绝对值来判断;当此绝对值小于或等于预定的正常收包时间时,转至500);当此绝对值大于预定的正常收包时间时,出现异常,进入下一步;400)组帧时,如果是P帧则采用前一P帧代替,或者进行跳帧处理;如果是I帧则继续组帧,只解码不显示;当步骤200)的缓冲区数据包数量和步骤300)的时间戳差的绝对值恢复到正常水平后,进入下一步;。500)恢复普通组帧解码流程。
2. 如权利要求l所述的方法,其特征在于当进行多路通道CIF格式解码时,步骤100)的解码器采取依次循环方式接收多路图像 数据包。
3. 如权利要求l所述的方法,其特征在于步骤200)所述高点和低点标记是根据硬件缓冲大小和解帧时间来决定。
4. 如权利要求l所述的方法,其特征在于步骤300)的正常收包时间丁=|丁参广丁参2| + △ T,此处T参i、 T参2分别为第一个收到的数据包的时间戳、下一个收到的数据包的时间戳, AT的范围为0. 5 2s。
5. 如权利要求1 4中任一项所述的方法,其特征在于所述400)在继续组帧I帧之 后,还进行CRC校验,如果正常才继续解码,否则重新对I帧进行组帧。
全文摘要
本发明提供了图像解码合成输出的延时处理方法1)在视频终端的解码器处设置缓冲区;2)当缓冲区数据包数量大于高点时,转至4);其在高点和低点之间时,进入下一步;其小于低点时检查网络连接;3)计算上一个正常包和当前包的时间绝对差值,小于或等于预定的正常收包时间时,转至5);大于预定的正常收包时间时,进入下一步;4)组帧时,如果是P帧则采用前一P帧代替,或者进行跳帧处理;如果是I帧则继续组帧,只解码不显示;当步骤2)的缓冲区数据包数量和步骤3)的时间绝对差值恢复到正常水平后,进入下一步;5)恢复普通组帧解码流程。本发明能把所产生的延时控制在可接受的范围之内,保证实时视频监控的正常和工作效率。
文档编号H04N7/24GK101557512SQ20091006216
公开日2009年10月14日 申请日期2009年5月19日 优先权日2009年5月19日
发明者松 吴, 王季炜, 董明洲, 陈春汉, 伟 黄, 成 黄, 莹 黄 申请人:武汉长江通信产业集团股份有限公司