一种视频数据的定位方法与流程

文档序号:11931665阅读:466来源:国知局
本发明涉及视频监控
技术领域
,具体涉及一种视频数据的定位方法。
背景技术
:当前视频监控领域一般使用H264/H265编码标准对视频图像进行压缩编码,达到在相同的网络带宽下传输更高质量的视频图像.所谓视频就是在1秒钟内按固定时间均匀地依次显示图像.H264/H265标准编码的图像类型(也叫帧类型)主要分两种:关键帧(简称I帧),参考帧(简称P帧).I帧的特征是包括编码时刻的所有图像信息,可以依此完整的还原出当时的场景.P帧的特征是以前一时刻图像为基础,提取出与当前时刻场景图像不同的部分并对此进行编码,因此对参考帧的还原必须完全依靠其参考的帧(I帧或P帧).在实际应用过程中通常选择在一个固定周期内(比如1秒)编出一个I帧和N个P帧,由于I帧包含图像信息完整独立,因此图像数据量较大.而P帧只是保存了与上一帧场景图像中变化的部分,因此数据量较小.正是因为这个特征重复利用了已有数据,从而能够节省带宽.同时正是因为这个特征导致了一个问题:即在网络传输或存储过程中,一旦I帧被破坏或者丢弃,那么接下的到下一个I帧之前的所有帧将不能被正确还原为原始场景图像.一旦P帧被破坏或者丢弃也会存在同样的问题。由于H264/H265编码标准只是对图像数据进行编码,而对于每一帧图像在何时开始显示,显示多长时间这些控制信息(通常我们将这信息称之为时间戳)并没有具体规定.在实际过程中,各厂商采取的办法是在图像数据之前添加一个固定长度的数据来保存这一类信息(通常我们将此称之为帧头).现有帧头内容里至少应该包括帧类型(I帧或者P帧),时间戳,帧数据实际长度等.在实际应用过程中,时间戳的设计上有两种方法:绝对时间戳和相对时间戳.绝对时间戳的优势很明显,通过此信息我们可以正确无误的知道这一帧图像产生的详细时间,精确到毫秒级别.那么如果要表达一个时刻如2016年12月23日12时0分0秒500毫秒,在计算机我们选择一个32位整数来表达1970年以来毫秒数,那么此值就是1450656000000(46年)以上,而一个32位无符号整数所能表达的最大值为4294967295,那么必须得用64位整数也就是8个字节来表示.由此又展现出至少三个劣势:一,是使用了8个字节,相对于相对时间戳多用1个字节.二,是在计算两帧时间戳差值是64位数运算比32位运算计算量要大,另外在由64位整数换算成具体时间时也将耗费大量的计算资源,降低了整体性能.三,视频监控领域视频都具备时间OSD功能,是采取硬编码的方式融合到图像数据中,因此也就没有必要性.综合考虑我们采取了相对时间戳的设计方法.相对时间戳采取一个32位整数表示毫秒数,从0开始计数,第1帧为0,下一帧时间戳在上一帧时间戳的基础上累加时间间隔(毫秒数)为40毫秒,依次类推,第3帧,第4帧,第N帧的时间戳即为80,120,(N-1)*40.那么某一帧图像要显示多长时间即计算两帧时间戳的差值即可.相比较而言,此方法规避了绝对时间戳方法的劣势。表1为现有技术帧头数据结构:表1帧类型相对时间戳实际图像数据长度在本发明中为了方便直观地说明,这里我们简化一下应用的复杂度。即只考虑1秒钟内只编码1个关键帧,2个参考帧.而我们要播放的视频只有4秒钟,那整个视频内容可以描述为如下表2所示;表2帧编号123456789101112帧类型IPPIPPIPPIPP在下面方案描述过程为了简洁将采用帧型加编号组成对具体某帧的指代.比如P5,I7,P11表示第5,7,11帧,其类型为P帧,I帧,P帧.现有技术视频发送过程描述定位细节.1,定时后播放内容与预期不符的过程示意如表3所示表32,定位后播放花屏现象过程示意如表4所示表4技术实现要素:为了解决上述不足的缺陷,本发明提供了一种视频数据的定位方法,在对H264/H265视频帧图像数据进行封装过程中即设计帧头数据时使用相对时间戳的情况下,通过添加了一个sTag来标记定位前后来的视频数据,以方便地友好地精准地控制远程回放定位的效果,不至于导致花屏,播放与预期不符等问题。本发明提供了一种视频数据的定位方法,包括以下步骤:将内容标识sTag添加在帧头中;视频监控设备对客户端操作上述内容标识进行自动累加;客户端接收定位之后的视频数据时以内容标识sTag是否变化为依据。上述的方法,其中,所述将内容标识sTag添加在帧头中的步骤中:内容标识sTag用于表明定位前后的图像数据。上述的方法,其中,所述视频监控设备对客户端操作上述内容标识进行自动累加的步骤中:若定位前每一帧的sTag为0值,则定位之后sTag值为1。上述的方法,其中,所述客户端接收下一个视频数据时以最后标记的内容标识为依据的步骤包括:对客户端对定位前的数据进行丢弃。上述的方法,其中,具体包括以下步骤:客户端发送第一次请求到网络层;网络层将接收的第一次请求发送到监控制备并将内容标识sTag添加在帧头中,其中sTag的初始化值为0;监控设备将定位的图像数据发送到客户端并进行播放,完成一次定位播放。上述的方法,其中,所述监控设备将定位的图像数据发送到客户端并进行播放,完成一次定位播放的步骤还包括:客户端重新发送第二次定位请求到监控设备;监控设备将第二次定位内容标识标记为sTag值为1;客户端接收第二次定位的内容标识,然后客户端对之前标记的数据进行丢弃,从而完成一次内容标识的累加。上述的方法,其中,所述客户端接收新的内容标识,然后客户端对之前标记的数据进行丢弃,从而完成一次内容标识的累加的步骤还包括:客户端发送第三次定位请求到监控设备;监控设备将第三次定位内容标识标记为sTag值为2;网络层将第二次定位的数据和第三次定位的数据发送到客户端;客户端对接收的数据进行识别并将内容标识为sTag值为1的数据进行丢弃,将内容标识标记为sTag值为2的数据进行播放。本发明具有以下优点:在对H264/H265视频帧图像数据进行封装过程中即设计帧头数据时使用相对时间戳的情况下,通过添加了一个sTag来标记定位前后来的视频数据,以方便地友好地精准地控制远程回放定位的效果,不至于导致花屏,播放与预期不符等问题。附图说明通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明及其特征、外形和优点将会变得更明显。在全部附图中相同的标记指示相同的部分。并未刻意按照比例绘制附图,重点在于示出本发明的主旨。图1为本发明的一种视频数据的定位方法的流程示意图。具体实施方式在下文的描述中,给出了大量具体的细节以便提供对本发明更为彻底的理解。然而,对于本领域技术人员而言显而易见的是,本发明可以无需一个或多个这些细节而得以实施。在其他的例子中,为了避免与本发明发生混淆,对于本领域公知的一些技术特征未进行描述。为了彻底理解本发明,将在下列的描述中提出详细的步骤以及详细的结构,以便阐释本发明的技术方案。本发明的较佳实施例详细描述如下,然而除了这些详细描述外,本发明还可以具有其他实施方式。针对现有技术中存在的问题,通过分析出现花屏和播放与预期不符是因为客户端无法区分定位前后的视频数据.如果能够区分,只需要将定位之前的数据包括在网络层缓存的图像数据全部丢弃清空,即能精准播放图像内容,换言之必须实现一个可靠的丢帧策略才能达到这一目标。在本发明中要说明的是,涉及到第一次、第二次等只是表示为了便于区分定位请求的先后顺序,并不具有特别的限定意义。参照图1所示,本发明提供了一种视频数据的定位方法,包括以下步骤:步骤S1:将内容标识sTag添加在帧头中,此标识能明确表明定位之前后的图像数据。步骤S2:视频监控设备对客户端操作上述内容标识进行自动累加,具体包括,客户端每作一次定位操作此标识将由视频监控设备自动累加,从而客户端再收到视频数据就能以此作为辨别依据.比如定位前每一帧的sTag为0值,定位之后sTag值为1,即便定位前的帧数据缓存在网络层,但这些帧的sTag值依然是定位之前的值即0,从而客户端能够从容将之丢弃,因为定位后的帧数据之sTag值必定与当前值不同为1。监控设备一定是在客户端作了定位操作之后才会将sTag进行累加。步骤S3:客户端接收定位后的视频数据时以最后标记的内容标识为依据,由于定位之后的帧数据必然从I帧开始,因此一定不会产生花屏问题.也因此丢帧策略,一定不会出现播放与预期不符的问题。客户端接收定位后的视频数据时以sTag是否变化为依据,其未变化就丢弃,变化了就是符合预期的视频数据。其中相对于现有技术中的帧头数据,本发明的关键在于帧头数据结构中有一个标识sTag用于区分定位前后的帧图像数据.利用本发明专利的方法改进之后的帧头数据结构示意图如表5所示;表5帧类型相对时间戳sTag实际图像数据长度本发明一优选而非限制性的实施例中,视频数据的定位方法,具体包括以下步骤:客户端发送第一次请求到网络层;网络层将接收的第一次请求发送到监控制备并将内容标识sTag添加在帧头中,其中sTag的初始化值为0;监控设备将定位的图像数据发送到客户端并进行播放,完成一次定位播放。本发明一优选而非限制性的实施例中,其中监控设备将定位的图像数据发送到客户端并进行播放,完成一次定位播放的步骤还包括:客户端重新发送第二次定位请求到监控设备;监控设备将第二次定位内容标识标记为sTag值为1;客户端接收第二次定位的内容标识,然后客户端对之前标记的数据进行丢弃,从而完成一次内容标识的累加。本发明一优选而非限制性的实施例中,其中客户端接收新的内容标识,然后客户端对之前标记的数据进行丢弃,从而完成一次内容标识的累加的步骤还包括:客户端发送第三次定位请求到监控设备;监控设备将第三次定位内容标识标记为sTag值为2;网络层将的第二次定位的数据和第三次定位的数据发送到客户端;客户端对接收的数据进行识别并将内容标识为sTag值为1的数据进行丢弃,将内容标识标记为sTag值为2的数据进行播放。以下提供一具体的实施例来进一步阐述本发明,参照表6所示。表6从表6中可以看出,本发明的具体实现的过程为:在T0时刻客户端发送回放请求(C->V)到网络层,网络层转发回放请求到监控设备,监控设备收到回放请求并作好准备.初始化sTag为0;监控设备完成6帧图像的发送,其中网络层转发4帧数据,缓存2帧即P5,P6,其中这6帧数据的帧头结构中sTag=0;客户端接收4帧,播放了2帧图像,接下来应该播放P3,其中这4帧数据的帧头结构中sTag=0;在T2时刻,客户端发起请求定位到I7,网络层转发定位请求到监控设备,监控设备收到请求作好准备,此时客户端立即清空未播放的2帧即P3,I4。T3时刻,网络层转发P5(V-C)缓存1帧即P6,包括已经发送的帧和当前缓存帧仍然sTag=0,客户端由于I4是I帧但在T2时刻被丢弃,而新收到的P5却依赖I4,根据既定丢帧策略且检测其sTag=0即属于定位之前数据已经失效作丢弃处理.从而避免了直接播放就会花屏问题。T4时刻,监控设备完成I7发送,由于是新定位的数据sTag累加一次即值为1,网路层完成P6发送到客户端,缓存I7,P6的sTag=0;新收到I7的sTag为1,客户端收到P6,处理办法与T3时一样不再赘述。T5时刻,网路层转发I7,此时I7的sTag=1,客户端收到I7并检测到sTag=1(定位前sTag=0)即sTag发生了变化,即可以确定这帧数据已经是定位后的数据,应该进行正常的播放,至此定位过程正常完成。T6时刻,监控设备发送P8,P9,I10,sTag=1,因为未定位,sTag此值一直保持不变,网络层转发P8,P9.缓存I10,P8,P9,I10的sTag=1,客户端收到P8,P9,sTag仍然为1,没有发生变化,正常播放。T7时刻,客户端发起请求定位到I4,然后网络层转发定位请求,监控设备收到请求作好准备。T8时刻,监控设备发送I4,此时内容标识sTag=2,网络层转发I10,stag=1,缓存I4,sTag=2,客户端收到I10,由于I10是I帧,直接播放不会花屏.但由于I10的sTag值为1,表示是定位之前的数据,既定策略是丢弃,从而避免了播放与预期不符的问题。T9时刻,网络层转发I4到客户端,此时内容标识为stag=2,客户端收到I4检测到sTag值为2,发生了变化,表示现在收到的数据已经是定位后的,因此能够正常播放,至此成功完成一次定位过程。以上对本发明的较佳实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,其中未尽详细描述的设备和结构应该理解为用本领域中的普通方式予以实施;任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例,这并不影响本发明的实质内容。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1