一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

视频帧管理方法、视频录像机和计算机可读存储介质与流程

2022-02-20 02:28:03 来源:中国专利 TAG:


1.本技术涉及视频处理技术领域,特别是涉及一种视频帧管理方法、视频录像机和计算机可读存储介质。


背景技术:

2.随着视频监控系统的覆盖率不断提高,用户可以通过客户端查看实时和/或已经存储的视频流,但是,现有技术中当用户在客户端发出提取视频流的请求后,网络视频录像机(network video recorder,nvr)在接收到客户端的请求后,会向摄像装置发送强制关键帧(i帧)指令,然后等待关键帧到来,将此关键帧转发给客户端后客户端开始解码。因此,客户端只有收到此关键帧后才能开始解码,整个交互过程的耗时较长导致客户端进行视频帧解码的速度慢,用户等待时间较长,体验较差。有鉴于此,如何提高视频帧解码的速度,减少用户等待时间成为亟待解决的问题。


技术实现要素:

3.本技术主要解决的技术问题是提供一种视频帧管理方法、视频录像机和计算机可读存储介质,能够提高视频帧解码的速度,减少用户等待时间。
4.为解决上述技术问题,本技术第一方面提供一种视频帧管理方法,该方法包括:获得实时视频流,将所述实时视频流中的视频帧存储至第一队列;当所述第一队列队首的视频帧被移除前,响应于所述第一队列队首的视频帧为关键帧,将第二队列清空并将所述关键帧添加至所述第二队列;或者,响应于所述第一队列队首的视频帧为差别帧,基于所述第二队列中视频帧的数量,确定所述差别帧是否添加至所述第二队列中所述关键帧之后;其中,所述关键帧和所述差别帧属于同一画面组数据;响应于获得客户端提取视频流的请求,将所述第一队列或所述第二队列中的关键帧反馈给所述客户端,并在所述关键帧之后还对应有所述差别帧时,将所述关键帧对应的差别帧反馈给所述客户端。
5.为解决上述技术问题,本技术第二方面提供一种视频录像机,该视频录像机包括:相互耦接的存储器和处理器,其中,所述存储器存储有程序数据,所述处理器调用所述程序数据以执行上述第一方面所述的方法。
6.为解决上述技术问题,本技术第三方面提供一种计算机可读存储介质,其上存储有程序数据,所述程序数据被处理器执行时实现上述第一方面所述的方法。
7.上述方案,将实时视频流中的视频帧存储在第一队列中,当第一队列队首的视频帧需要被移除前,若第一队列队首的视频帧为关键帧,则将第二队列清空并将该关键帧添加至第二队列中,若第一队列队首的视频帧为差别帧,则根据第二队列中已经存储的视频帧的数量,来确定是否将该差别帧添加至第二队列中的关键帧之后,且第二队列中的关键帧和差别帧属于同一画面组数据。故此,第一队列中实时存储有视频帧,进而第一队列可能存储有关键帧,第二队列中至少存储有一组画面组数据中的关键帧,因此,第一队列和第二队列中确保有无需解码的关键帧,当获得客户端提取视频流的请求时,将第一队列或第二
队列中的关键帧反馈给客户端,以使客户端能尽快响应请求从而显示关键帧对应的画面,并且在关键帧之后还对应有差别帧时,将差别帧反馈给客户端基于同一组画面组数据中的关键帧进行解码,从而提高了客户端进行视频帧解码的速度,减少用户等待时间。
附图说明
8.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:
9.图1是本技术视频帧管理方法一实施方式的流程示意图;
10.图2是本技术视频帧管理方法另一实施方式的流程示意图;
11.图3是本技术视频录像机一实施方式的结构示意图;
12.图4是本技术计算机可读存储介质一实施方式的结构示意图。
具体实施方式
13.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性的劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
14.本文中术语“系统”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。此外,本文中的“多”表示两个或者多于两个。
15.请参阅图1,图1是本技术视频帧管理方法一实施方式的流程示意图,该方法包括:
16.s101:获得实时视频流,将实时视频流中的视频帧存储至第一队列。
17.具体地,网络视频录像机在接收到实时视频流后,将视频流中的视频帧按照时序,从队首向队尾进行存储。
18.在一应用方式中,网络视频录像机对应有多个摄像装置,每个摄像装置对应有各自的第一队列,每个摄像装置之间视频流在进行存储时相互独立。
19.在一应用场景中,当网络录像机经过初始化或格式化后,第一队列中未填充有视频帧,将摄像装置实时采集的视频帧中的第一个关键帧添加至第一队列的队首,进而将关键帧之后的差别帧添加在关键帧之后,差别帧按照时序从队首向队尾的方向进行排列,当第一队列完整填充后,第一队列接收到新的视频帧时,则需要将队首的视频帧移除,进而在队尾添加新的视频帧。
20.在另一应用场景中,当第一队列中填充有视频帧,则将新获取到的视频帧添加在第一队列中已存在的视频帧之后,直至第一队列被完整填充,进而第一队列接收到新的视频帧时,则将队首的视频帧移除,并在队尾添加新的视频帧。
21.s102:当第一队列队首的视频帧被移除前,判断第一队列队首的视频帧是否为关键帧。
22.具体地,当第一队列队首的视频帧需要被移除前,判断第一队列队首的视频帧是否为关键帧,若是,则进入步骤s103,若否,则进入步骤s104。
23.s103:响应于第一队列队首的视频帧为关键帧,将第二队列清空并将关键帧添加至第二队列。
24.具体地,一组画面组数据包括一个关键帧和多个差别帧,差别帧表示的是这一帧跟之前一个关键帧或差别帧的差别,当第一队列队首的视频帧为关键帧时,则表示一组画面组数据中的关键帧需要被移除,则关键帧之后的差别帧后续也将从第一队列中被移除。因此,当第一队列队首的视频帧为关键帧时,将第二队列清空并将关键帧添加至第二队列中,其中,当第二队列清空后,能够便于后续与关键帧属于同一画面组数据的差别帧添加至第二队列,且确保第二队列中的视频帧始终属于同一画面组数据。
25.在一应用方式中,当第一队列队首的视频帧为关键帧时,将第二队列清空,将关键帧从第一队列的队首移动至第二队列的队首,从而将第一队列队首的关键帧移除的同时,实现将关键帧添加至第二队列的队首。
26.在另一应用方式中,当第一队列队首的视频帧为关键帧时,将第二队列清空,将第一队列队首的关键帧拷贝至第二队列的队首,进而将第一队列队首的关键帧从第一队列中移除。
27.优选地,将关键帧添加至第二队列的队首以使第二队列能够按照一组画面组数据中的视频帧的时序,从队首向队尾存储至少部分画面组数据中的关键帧和差别帧。
28.s104:响应于第一队列队首的视频帧为差别帧,基于第二队列中视频帧的数量,确定差别帧是否添加至第二队列中关键帧之后。
29.具体地,当第一队列队首的视频帧为差别帧时,在第二队列还未填充满时将第一队列队首的差别帧添加至第二队列中关键帧之后,在第二队列已填充满时选择部分差别帧保留在第二队列中关键帧之后。
30.可以理解的是,一组画面组数据对应有一个关键帧和多个差别帧,每当第一队列队首的关键帧需要移除前,第二队列将被清空,因此,第二队列中存储的视频帧属于同一画面组数据,也就是说第二队列中的关键帧和差别帧属于同一画面组数据,第二队列用于存储从第一队列中移除的视频帧,每当第一队列中有关键帧从队首被移除前,第二队列便清空从而确保第二队列中存储的关键帧和差别帧属于同一画面组数据。
31.在一应用方式中,当第二队列无法存储整个画面组数据中的视频帧且第二队列已完整填充时,将第一队列中新移除的差别帧直接丢弃。
32.在另一应用方式中,当第二队列无法存储整个画面组数据中的视频帧且第二队列已完整填充时,将第二队列中部分差别帧移除,并将第一队列中新移除的差别帧添加至第二队列中,以避免在视频帧需要解码时丢弃过多差别帧导致用户观看视频时存在画面突变。
33.s105:响应于获得客户端提取视频流的请求,将第一队列或第二队列中的关键帧反馈给客户端,并在关键帧之后还对应有差别帧时,将关键帧对应的差别帧反馈给客户端。
34.具体地,当获得用户在客户端下发的提取视频流的请求,且第一队列的队首为关键帧时,则将第一队列队首的关键帧反馈给客户端,并将第一队列队首的关键帧之后的差别帧也反馈给客户端进行解码,当第一队列的队首为差别帧时,则将第二队列队首的关键
帧反馈给客户端,并在第二队列中还包括差别帧时,将差别帧也反馈给客户端进行解码。
35.可以理解的是,第一队列的队首为差别帧的概率是极高的,当第一队列的队首为差别帧时,则在第二队列中一定存在一个与第一队列队首的差别帧属于同一画面组数据的关键帧,并且,第二队列中的关键帧与下一组画面组数据的关键帧在时序上是最接近的两个关键帧,如果等待下一组画面组数据的关键帧到达第一队列后才将关键帧反馈给客户端,需要客户端等待关键帧到来的过程,但是,如果将第二队列中的关键帧反馈给客户端,可以将时序上与请求对应的时间接近的关键帧直接反馈给客户端进行显示,从而尽快响应客户端的请求使客户端显示关键帧的画面,并对关键帧之后的差别帧进行解码,从而提高客户端进行视频帧解码的速度,大大减少用户等待的时间。
36.进一步地,当第一队列的队首为关键帧时,则对于提取视频流的请求,将第一队列队首的关键帧反馈给客户端可以提高视频流的实时性。
37.上述方案,将实时视频流中的视频帧存储在第一队列中,当第一队列队首的视频帧需要被移除前,若第一队列队首的视频帧为关键帧,则将第二队列清空并将该关键帧添加至第二队列中,若第一队列队首的视频帧为差别帧,则根据第二队列中已经存储的视频帧的数量,来确定是否将该差别帧添加至第二队列中的关键帧之后,且第二队列中的关键帧和差别帧属于同一画面组数据。故此,第一队列中实时存储有视频帧,进而第一队列可能存储有关键帧,第二队列中至少存储有一组画面组数据中的关键帧,因此,第一队列和第二队列中确保有无需解码的关键帧,当获得客户端提取视频流的请求时,将第一队列或第二队列中的关键帧反馈给客户端,以使客户端能尽快响应请求从而显示关键帧对应的画面,并且在关键帧之后还对应有差别帧时,将差别帧反馈给客户端基于同一组画面组数据中的关键帧进行解码,从而提高了客户端进行视频帧解码的速度,减少用户等待时间。
38.请参阅图2,图2是本技术视频帧管理方法另一实施方式的流程示意图,该方法包括:
39.s201:获得实时视频流,将实时视频流中的视频帧存储至第一队列。
40.具体地,获得实时视频流,并对实时视频流进行编码,以获得实时视频流对应的视频帧存储至第一队列。
41.在一应用方式中,将实时视频流中的视频帧编码后存储至第一队列中,直至第一队列从队首至队尾完整填充或者第一队列队首的视频帧不再对应有待处理业务,进入当第一队列队首的视频帧被移除前的步骤;其中,待处理业务包括解码、转发和存储中的至少一种。
42.具体地,对实时视频流中的视频帧进行编码,以压缩实时视频流中的视频帧获得每个画面组数据中对应的关键帧和差别帧,将编码后的视频帧存储至第一队列中,并按照时序将视频帧从第一队列的队首向队尾的方向存储在第一队列中,以使第一队列中的视频帧在存储时按照时序从队首向队尾排列,进而在将第一队列队首的视频帧移除时确保移除的是时序上更早的视频帧。
43.进一步地,视频帧对应有待处理业务,待处理业务包括解码、转发和存储中的至少一种,当第一队列中已填充满视频帧时,则需要将第一队列队首的视频帧移除,当第一队列队首的视频帧已经不再对应有任何待处理业务时,第一队列队首的视频帧也可以移除,从而减少第一队列的负荷。
44.在一具体应用场景中,对实时视频流中的视频帧进行编码,每组画面组数据中对应有一个关键帧数据,且画面组数据中的差别帧为相对关键帧的差别信息。
45.在另一具体应用场景中,对实时视频流中的视频帧进行编码,每组画面组数据中对应有一个关键帧数据,且画面组数据中的差别帧为相对上一视频帧的差别信息。
46.进一步地,将编码后的视频帧按时序从第一队列的队首向队尾存储,并判断第一队列队首的视频帧是否还对应有未完成的待处理业务。当第一队列已完整填充视频帧,或者第一队列队首的视频帧未对应有待处理业务,则进入步骤s202。
47.s202:当第一队列队首的视频帧被移除前,判断第一队列队首的视频帧是否为关键帧。
48.具体地,当第一队列队首的视频帧需要被移除前,判断第一队列队首的视频帧是否为关键帧,若是,则进入步骤s203,若否,则进入步骤s204。
49.s203:响应于第一队列队首的视频帧为关键帧,将第二队列中的所有视频帧清空。
50.具体地,当第一队列队首的视频帧为关键帧,则将第二队列中已添加的视频帧全部清除,从而便于存储后续从第一队列中持续移除的视频帧。
51.s204:将关键帧添加至第二队列队首,并固定关键帧在第二队列中的位置。
52.具体地,将关键帧添加至第二队列的队首,并将关键帧在第二队列中的位置固定,也就是说,在第一队列的队首再次移除关键帧之前,第二队列中的关键帧始终保持在第二队列队首的位置,以便于在后续需要提取第二队列中的关键帧时,能够快速定位到关键帧的位置,同时也便于对关键帧之后的差别帧进行存储,以充分利用第二队列的存储空间。
53.s205:响应于第一队列队首的视频帧为差别帧,基于第二队列中视频帧的数量,确定差别帧是否添加至第二队列中关键帧之后。
54.具体地,第二队列能够存储视频帧的上限值小于或等于一组画面组数据中所包含的视频帧的数量。若第二队列中足够存储整个画面组数据中的视频帧,则将第一队列队首的差别帧添加至第二队列中关键帧之后即可,若第二队列中无法存储整个画面组数据中的视频帧,则在第二队列还未完整填充视频帧时将第一队列队首的差别帧添加至第二队列中关键帧之后,在第二队列已完整填充视频帧后选择部分差别帧保留在第二队列中。
55.其中,当第二队列能够存储视频帧的上限值等于一组画面组数据中所包含的视频帧的数量时,能够便于存储一组完整的画面组数据,当第二队列能够存储视频帧的上限值小于一组画面组数据中所包含的视频帧的数量时,能够对差别帧进行筛选,以减少第二队列的负荷,减轻网络视频录像机的负担。
56.在一具体应用场景中,基于所述第二队列中视频帧的数量,确定所述差别帧是否添加至所述第二队列中所述关键帧之后的步骤,包括:响应于第二队列从队首至队尾已完整填充,则将差别帧丢弃;或者,响应于第二队列未完整填充,则将差别帧按照时序添加至第二队列中关键帧之后。
57.具体地,当差别帧为相对上一视频帧的差别信息时,第二队列的队首存储关键帧,关键帧之后按时序存储关键帧之后的差别帧,当第二队列已完整填充,则将后续同一画面组数据后续从第一队列中移除出来的视频帧直接丢弃,以确保第二队列中的差别帧能够基于前一视频帧解码出完整的图像。
58.在另一具体应用场景中,差别帧为相对关键帧的差别信息,确定所述差别帧是否
添加至所述第二队列中所述关键帧之后的步骤,包括:响应于第二队列从队首至队尾已完整填充,则将第二队列中部分差别帧丢弃,并将第一队列队首新移除的差别帧添加至第二队列中;或者,响应于第二队列未完整填充,则将差别帧按照时序添加至第二队列中关键帧之后。
59.具体地,当差别帧为相对关键帧的差别信息时,第二队列的队首存储关键帧,关键帧之后按时序存储关键帧之后的差别帧,当第二队列已完整填充,则将第二队列中至少队尾的差别帧丢弃,并将从第一队列队首新移除的差别帧添加至第二队列中,从而降低在后续对差别帧解码时视频流的画面出现突变的概率。
60.s206:响应于获得客户端提取视频流的请求,当第一队列队首是关键帧,则将第一队列中的关键帧反馈给客户端,当第一队列队首是差别帧,则将第二队列中的关键帧反馈给客户端。
61.具体地,当获得客户端提取视频流的请求后,判断第一队列队首是否是关键帧,若是,则将第一队列中的关键帧反馈给客户端,以提高视频流的实时性,若否,则第一队列队首为差别帧,那么第二队列的队首则必然是关键帧,进而将第二队列队首的关键帧反馈给客户端,以使客户端显示关键帧对应的图像,提高客户端进行视频帧解码的效率。
62.进一步地,在关键帧之后还对应有差别帧时,将关键帧对应的差别帧反馈给客户端的步骤,包括:将第一队列中关键帧之后的差别帧反馈给客户端;或者,将第二队列中关键帧之后的差别帧反馈给客户端。
63.其中,当第一队列队首是关键帧时,则将第一队列中关键帧之后的差别帧反馈给客户端,以使客户端能够基于关键帧对差别帧进行解码,当第一队列队首是差别帧时,则将第二队列队首的关键帧反馈给客户端后,将第二队列中关键帧之后的差别帧反馈给客户端,以使客户端能够基于关键帧对差别帧进行解码,从而客户端能够在极短的时间内获得关键帧,并基于关键帧对关键帧之后的差别帧进行解码,以响应客户端的请求,反馈实时视频流给用户,减少用户等待时间。
64.需要说明的是,将第二队列中关键帧之后的差别帧反馈给客户端的步骤之后,还包括:响应于第二队列中的所有差别帧已反馈给客户端,在第一队列中,提取与第二队列中的关键帧属于同一画面组数据的差别帧反馈给客户端;响应于解码至第一队列中下一组画面组数据对应的关键帧,基于第一队列中的视频帧向客户端反馈视频帧直至提取视频流的请求取消。
65.具体地,当第二队列中的所有差别帧都已反馈给客户端进行解码,若此时第一队列的队首还是差别帧,则该差别帧与第二队列队首的关键帧属于同一画面组数据,在第一队列中提取与第二队列中的关键帧属于同一画面组数据的差别帧反馈给客户端,以使画面组数据能够尽可能完整,当第一队列中的视频帧向客户端反馈至下一组画面组数据对应的关键帧时,则基于第一队列中后续的视频帧向客户端反馈视频帧,以使客户端对视频帧进行解码,直至提取视频流的请求取消。
66.在一具体应用场景中,当差别帧为相对上一视频帧的差别信息时,当第二队列中的所有差别帧都已反馈给客户端进行解码,若此时第一队列的队首还是差别帧,若该差别帧与第二队列队尾的差别帧时序相邻,则将第一队列中与第二队列中的关键帧属于同一画面组数据的差别帧反馈给客户端,以使画面组数据完整解码,若该差别帧与第二队列队尾
的差别帧时序不相邻,那么第一队列中的差别帧没有对应的上一帧图像,因此不能解码,则将第二队列队尾的差别帧解码后的图像多次显示,直至解码至第一队列中下一组画面组数据对应的关键帧,以使在下一组画面组数据出现前,保持客户端始终有图像显示。
67.在另一具体应用场景中,当差别帧为相对上一关键帧的差别信息时,当第二队列中的所有差别帧都已反馈给客户端进行解码,若此时第一队列的队首还是差别帧,则将第一队列中与第二队列中的关键帧属于同一画面组数据的差别帧反馈给客户端,以使客户端基于关键帧进行解码,尽可能保证视频流的完整性。
68.在本实施例中,当第一队列队首的视频帧需要被移除前,若第一队列队首的视频帧为关键帧,则将第二队列清空并将该关键帧添加至第二队列的队首并保持位置不变,若第一队列队首的视频帧为差别帧,则根据第二队列中已经存储的视频帧的数量,来确定是否将该差别帧添加至第二队列中的关键帧之后,以使第一队列和第二队列中必然存在关键帧,在获得客户端提取视频流的请求时,能够尽快响应请求从而显示关键帧对应的画面,并且将差别帧反馈给客户端基于同一组画面组数据中的关键帧进行解码,从而提高了客户端进行视频帧解码的速度,减少用户等待时间。
69.请参阅图3,图3是本技术视频录像机一实施方式的结构示意图,该视频录像机30包括相互耦接的存储器301和处理器302,其中,存储器301存储有程序数据(图未示),处理器302调用程序数据以实现上述任一实施例中的基于视频帧的属性分类方法,相关内容的说明请参见上述方法实施例的详细描述,在此不再赘叙。
70.请参阅图4,图4是本技术计算机可读存储介质一实施方式的结构示意图,该计算机可读存储介质40存储有程序数据400,该程序数据400被处理器执行时实现上述任一实施例中的基于视频帧的属性分类方法,相关内容的说明请参见上述方法实施例的详细描述,在此不再赘叙。
71.需要说明的是,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
72.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
73.集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本技术各个实施方式方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
74.以上所述仅为本技术的实施方式,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的
技术领域,均同理包括在本技术的专利保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献