来自视频源装置的流式数据的存储管理转让专利

申请号 : CN201480073356.6

文献号 : CN106104651A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 肖恩·P·马拉特奥伦·希尔

申请人 : 威智伦公司

摘要 :

公开一种用于管理从视频源装置接收的数据的计算机实现的方法。存储介质上的至少第一存储层和第二存储层被识别用于分别存储不同类数据。当数据流从视频源接收时,数据与至少第一存储层或第二存储层相关联并且来自接收的流的数据被存储在相关联的存储层中。当存储介质已满或满足一些其它特定的最大容量阈值时,开始其寿命超过一个或多个特定最大保留时间的数据,然后是最老寿命的数据的数据被从第一存储层和第二存储层中的一个或两个删除。

权利要求 :

1.一种用于管理数据的计算机实现的方法,其包括:计算系统识别用于存储第一类数据的至少第一存储区和用于存储第二类数据的第二存储区;

所述计算系统接收多个数据流;

所述计算系统将来自所接收的多个数据流的一个或多个数据流与所述第一存储区相关联并且将来自所接收的多个流的一个或多个数据流与所述第二存储区相关联;

所述计算系统将针对与所述第一存储区相关联的一个或多个数据流的数据存储在所述第一存储区中并且将针对与所述第二存储区相关联的一个或多个数据流的数据存储在所述第二存储区中;

所述计算系统确定在所述第一存储区和所述第二存储区中的至少一个中存储的数据超过阈值;以及删除超过所述阈值的数据。

2.根据权利要求1所述的计算机实现的方法,其中删除超过所述阈值的数据包括删除寿命超过一个或多个指定的最大保留时间的数据。

3.根据权利要求1所述的计算机实现的方法,其进一步包括:识别说明将在所述第一存储区和所述第二存储区中存储的数据的相对量的比例,其中删除超过所述阈值的数据包括将数据从所述第一存储区和所述第二存储区中的一个或两个删除使得所述比例被维持。

4.根据权利要求3所述的计算机实现的方法,

其中所述第一存储区是具有长期最大保留时间的长期存储区,所述第二存储区是具有比所述长期最大保留时间短的短期最大保留时间的短期存储区。

5.根据权利要求4所述的计算机实现的方法,

其中接收所述多个数据流包括接收捕获第一关注区域的第一虚拟流和接收捕获第二关注区域的第二虚拟流,其中将一个或多个数据流与所述第一存储区相关联并且将一个或多个数据流与所述第二存储区相关联包括将所述第一虚拟流与所述第一存储区相关联并且将所述第二虚拟流与所述第二存储区相关联。

6.根据权利要求5所述的计算机实现的方法,

其中接收捕获所述第一关注区域的第一虚拟流包括接收捕获第一视场的所述第一虚拟流,以及其中接收捕获所述第二关注区域的第二虚拟流包括接收捕获第二视场的所述第二虚拟流,所述第二视场不同于所述第一视场。

7.根据权利要求6所述的计算机实现的方法,

其中所述第一视场包括较大视场的中央部分,以及其中所述第二视场包括所述较大视场的非中央部分。

8.一种用于管理数据的系统,其包括:

计算处理器;

计算存储器,其与所述计算处理器通信联接,所述计算存储器具有在其中存储的计算机可执行指令,当指令被执行时使所述系统执行包括下列的操作:接收多个数据流;

识别所述多个数据流中的第一数据流和第二数据流用于记录;

将所述第一数据流与第一存储装置相关联,将所述第二数据流与第二存储装置相关联,所述第一存储装置和所述第二存储装置被分配用于存储不同类的数据;

将来自所述第一数据流的数据存储在所述第一存储装置中;以及将来自所述第二数据流的数据存储在所述第二存储装置中。

9.根据权利要求8所述的系统,其中识别所述多个数据流中的所述第一数据流和所述第二数据流用于记录包括检测触发事件。

10.根据权利要求9所述的系统,其中检测触发事件包括检测指示数据流将被记录的用户定义的进度表。

11.根据权利要求9所述的系统,其中检测所述触发事件包括检测分析标准已被满足。

12.根据权利要求11所述的系统,其中检测分析标准已被满足包括通过视频流的分析确定事件已经发生。

13.根据权利要求12所述的系统,其中通过视频流的分析确定事件已经发生包括通过所述视频流的分析确定运动在视场中已经发生。

14.根据权利要求11所述的系统,其中检测分析标准已被满足包括通过与所述视频流相关联的元数据的分析确定所述事件已经发生。

15.根据权利要求14所述的系统,其中通过与所述视频流相关联的元数据的分析确定所述事件已经发生包括从所述视频流的先前分析复查元数据记录结果。

16.根据权利要求9所述的系统,其中检测所述触发事件包括检测用户定义的规则已经被满足。

17.根据权利要求8所述的系统,其中将所述第一数据流与所述第一存储装置相关联,将所述第二数据流与所述第二存储装置相关联,所述第一存储装置和所述第二存储装置被分配用于存储不同类的数据包括将所述第一数据流分配至针对短期存储指定的所述第一存储装置并且将所述第二数据流分配至针对长期存储指定的所述第二存储装置。

18.根据权利要求8所述的系统,其中所述计算存储器具有在其中存储的计算机可执行指令,当指令被执行时使所述系统执行包括下列的另外操作:确定与所述第一存储装置和所述第二存储装置中的至少一个相关联的阈值已经被满足;

从所述第一存储装置和所述第二存储装置中的至少一个删除数据。

19.一种用于管理数据的计算机实现的方法,其包括:计算系统接收数据流,所述数据流包括源流的第一编码、源流的第二编码以及源流的第三编码;

所述计算系统检测指示记录所述数据流的触发事件;

所述计算系统从所述数据流识别所述第一编码、所述第二编码和所述第三编码;以及所述计算系统将所述第一编码、所述第二编码和所述第三编码中的每一个与至少第一存储装置和第二存储装置中的至少一个相关联,所述第一存储装置和所述第二存储装置被指定用于接收不同类数据。

20.根据权利要求19所述的计算机实现的方法,其中所述第一编码包括多个虚拟流,所述第二编码包括单个虚拟流,并且所述第三编码包括第二单个虚拟流;以及其中将所述第一编码、所述第二编码和所述第三编码中的每一个与至少所述第一存储装置和所述第二存储装置中的至少一个相关联包括:将在所述第一编码中包括的所述多个虚拟流的子集与所述第一存储装置相关联,将除所述子集之外的多个虚拟流与所述第二存储装置相关联,将在所述第二编码中包括的所述虚拟流与所述第二存储装置相关联,以及将在所述第三编码中包括的所述第二虚拟流与所述第三存储装置相关联。

21.根据权利要求20所述的计算机实现的方法,其中在所述第一编码中包括的所述多个虚拟流包括形成网格的多个虚拟流;

其中将所述多个虚拟流的子集与所述第一存储装置相关联包括将位于所述网格的中央的所述多个虚拟流中的一个或多个与所述第一存储装置相关联。

22.根据权利要求21所述的计算机实现的方法,其中与所述第二编码和所述第三编码的分辨率相比,所述第一编码是高分辨率编码,以及其中与所述第一编码和所述第三编码的分辨率相比,所述第二编码是低分辨率编码。

23.根据权利要求19所述的计算机实现的方法,其中将所述第一编码、所述第二编码和所述第三编码中的每一个与至少所述第一存储装置和所述第二存储装置中的至少一个相关联包括将所述第一编码与所述第一存储装置相关联,将所述第二编码与所述第二存储装置相关联,将所述第三编码与所述第三存储装置相关联。

24.根据权利要求23所述的计算机实现的方法,其中将所述第一编码与所述第一存储装置相关联包括将所述第一编码与长期存储相关联,其中将所述第二编码与所述第二存储装置相关联包括将所述第二编码与中期存储相关联,以及其中将所述第三编码与所述第三存储装置相关联包括将所述第三编码与短期存储相关联。

25.根据权利要求19所述的计算机实现的方法,其进一步包括:在所述第一存储装置中检测超过阈值的数据;

在所述第一存储装置中识别用于删除的数据,所识别的数据是在所述第一存储装置中已经存储大于限定的保留时间的数据。

26.一种管理数据的计算机实现的方法,其包括:计算系统接收数据流;

所述计算系统识别用于存储所述数据流的第一存储装置;

所述计算系统确定是否在所识别的第一存储装置中已经超过阈值;

一旦确定未超过所述阈值,所述计算系统将与所接收的数据流相关联的数据存储在所述第一存储装置中,一旦确定在所识别的第一存储装置中已经超过所述阈值,所述计算系统,从所述第一存储装置识别第一数据用于删除,删除用于删除的所识别的第一数据,

在删除所识别的第一数据后,识别是否超过所述阈值,在删除所识别的第一数据后,一旦确定未超过所述阈值,则将与所接收的数据流相关联的数据存储在所述第一存储装置中;以及在删除所识别的第一数据后,一旦确定超过所述阈值,则从所述第一存储装置识别用于删除的第二数据。

27.根据权利要求26所述的计算机实现的方法,其进一步包括:所述计算系统确定在所述第一存储装置和所述第二存储装置中存储的数据的目标比例是否满足;

一旦确定不满足目标比例,则所述计算系统从所述第二存储装置删除数据以足以满足所述目标比例。

28.根据权利要求27所述的计算机实现的方法,其中从所述第二存储装置删除数据以足以满足所述目标比例包括从所述第二存储装置删除在所述第二存储装置中已经存储最长时间段的数据。

29.根据权利要求28所述的计算机实现的方法,其中从所述第二存储装置删除已经存储较长时间段的数据包括继续删除已经存储最长时间段的数据直到满足所述目标比例。

30.根据权利要求28所述的计算机实现的方法,其中从所述第二存储装置删除数据以足以满足所述目标比例包括从所述第二存储装置删除在所述第二存储装置中已经存储超过限定的保留时间的时间段的数据。

31.一种控制系统,其包括:

接收器,其适于通过网络接收多个容器帧,每一个容器帧包括多个虚拟帧和适用于所述多个虚拟帧中的每一个的容器时间戳,所述多个虚拟帧中的每一个使用至少一个不同编码参数从源帧被编码;

处理器,其适于将每一个容器帧内的所接收的多个虚拟帧中的每一个与编码相关联并且根据所述容器时间戳重建所述相关联的虚拟帧的虚拟流;以及发送器,其适于通过所述网络发送虚拟流。

32.根据权利要求31所述的控制系统,其中:每一个容器帧包括描述所述多个虚拟帧的描述符;以及所述处理器进一步适于将所述描述符与所述虚拟流相关联。

33.根据权利要求32所述的控制系统,其中:所述描述符包括被编码的源视频的区域的指示。

34.根据权利要求33所述的控制系统,其中:当接收用于所述虚拟流的请求时,所述发送器进一步适于发送所述虚拟流,所述请求包括所述描述符。

说明书 :

来自视频源装置的流式数据的存储管理

[0001] 相关申请的交叉引用
[0002] 本申请要求于2014年12月11日提交的申请号为14/568077的美国非临时专利申请的根据美国法典第35条119(e)款的权益,申请号为14/568077的美国非临时专利申请要求于2014年1月15日提交的申请号为61/927923的美国临时专利申请的根据美国法典第35条119(e)款的权益,其全部公开内容通过引用并入本文。

技术领域

[0003] 本公开总体涉及管理来自视频源装置的流式数据的存储。

背景技术

[0004] 在典型的视频监控系统中,一个或多个摄像机可被通信地联接至服务器系统。当视频数据由摄像机记录时,它被转发至存储用于随后检索的服务器系统。客户端系统被通信地联接至服务器系统并且可用于请求和接收记录的视频数据流。
[0005] 视频监控系统经常要求每天工作24小时,每周工作7天。其结果是,这种系统可记录和存储大量的数据。常常存在对可用于存储记录的数据的计算存储器的量常常存在物理限制。可在监控系统中记录的大量数据提出如何管理数据使得所需数据可被快速访问,同时也在系统的存储容量的限制范围内操作的实际问题。

发明内容

[0006] 申请人在本文中公开实现从视频源装置接收的数据的管理方法的系统和计算机。在示例性实施例中,存储管理系统识别可被称为存储层、用于存储第一类数据的至少第一存储区和用于存储第二类数据的第二存储区或层。当编码的数据流在存储管理系统处被接收时,系统将一个或多个数据流与第一存储区相关联并且将一个或多个数据流与第二存储区相关联。数据流被存储在相关联的存储区中。数据管理系统监控存储的数据以确定存储区和/或存储介质是否充满或满足一些其它特定最大容量阈值。如果是这样,存储管理系统删除超过阈值的数据。在示例性实施例中,存储管理系统删除寿命超过一个或多个特定最大保留时间的数据。如果存储的数据仍然超过阈值,则来自第一存储层和第二存储层中的一个或两者的具有最老寿命的数据可被删除。
[0007] 根据公开的实施例的另一方面,存储管理系统可识别说明在第一和第二存储层中存储的数据的相对量的存储比。当需要维持该比例时,具有最老寿命的数据可从第一存储层和第二存储层中的一个或两者中删除使得特定的存储比被维持。在示例性实施例中,第一存储层可以是具有长期最大保留时间的长期存储层,第二存储层可以是具有比长期最大保留时间短的短期最大保留时间的短期存储层。
[0008] 根据公开的实施例的另一方面,数据流可包括分辨率不同的至少两个虚拟流。存储管理系统将较低分辨率虚拟流与短期存储层相关联,将较高分辨率虚拟流与长期存储层相关联。在示例性场景中,虚拟流可包括多个虚拟流,每一个虚拟流捕获视场中关注的不同区域。在这种场景中,存储管理系统可将关注的第一区域与短期存储区相关联,将关注的第二区域与长期存储区相关联。关注的不同区域可包括视场的不同部分,在这种情况下,视场的中央部分的虚拟流与长期存储层相关联,视场的非中央部分的虚拟流的与短期存储层相关联。
[0009] 本概述被提供以简化的形式引入在下面的说明性实施例的详细描述中进一步描述的概念的选择。本概述并不旨在识别所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。下面描述其它特征。

附图说明

[0010] 当结合附图阅读时,可更好地理解说明性实施例的前面概述和下面的附加描述。理解的是,公开的系统和方法的可能实施例不限于描绘的实施例。
[0011] 图1描绘适于产生和存储多分辨率编码的示例性监视系统。
[0012] 图2描绘适于显示多分辨率编码的示例性显示监视器。
[0013] 图3描绘适于产生和接收多分辨率编码的示例性视频源装置和控制服务器。
[0014] 图4描绘由视频源装置和控制服务器提供的示例性功能特征。
[0015] 图5描绘包括解复用容器帧(multiplexed container frame)的视频流的示例性处理。
[0016] 图6描绘描述在多分辨率编码中包括的个别虚拟流的示例性视频源装置响应。
[0017] 图7描绘在不同分辨率处关注区域的示例性编码的说明。
[0018] 图8描绘用于流送来自视频源装置的数据的示例性方法的流程图。
[0019] 图9描绘将从视频源装置接收的数据流存储在数据存储介质的不同位置中的示例性方法的流程图。
[0020] 图10描绘用于存储数据流的示例性方法的流程图。
[0021] 图11描绘用于将数据流存储在数据存储介质上的示例性过程的简图。
[0022] 图12描绘用于从数据存储介质删除数据的示例性方法的流程图。

具体实施方式

[0023] 综述
[0024] 一般来说,数字监视系统包括连接至监测站的多个摄像机。监测站存储从多个摄像机接收的视频。监测站允许接收的视频流送至用于监视的一个或多个连接客户。摄像机可以是被连接至编码器的模拟或数字摄像机,编码器将视频在具体分辨率下的编码流送至监测站。摄像机可进一步包括互联网协议(IP)摄像机,其包括用于将视频在具体分辨率下的编码通过IP网络流送至监测站的编码器。
[0025] 为了减小用于流送编码的视频所需的存储尺寸和的网络带宽,在编码视频时,是否并入摄像机或与摄像机分离的编码器可使用各种可能的编码/压缩格式。在监控行业常用的格式包括JPEG、MPEG-2、MPEG-4和H.264。在一些情况下,监测客户端将一次显示来自多个摄像机的视频。因此,监控客户端必须接收和解码多个视频编码。即使视频被编码以减小文件的大小,其也可能难以通过广域网(WAN)将多个全分辨率流流送至监测站。压缩技术可进一步减小编码的文件大小,而不会大大减少在特定分辨率下的编码质量。然而,这种压缩技术的解码技术更复杂。因此,监测客户端可能无法以及时的方式解码用于显示的多种编码。
[0026] 为了提供可在监测客户端处解码并且显示的多个编码,有可能使用对视频的重压缩以减小带宽。然而,允许多个视频编码在监测客户端处以及时的方式解码并且显示的压缩技术可显著降低视频质量。虽然视频质量可足以在显示器分辨率下观看,但是不能提供允许编码的视频的部分详细观看的足够质量。
[0027] 为了提供可被实时流送至监测位置的视频以及保留视频细节的实质部分的视频,视频可根据包括例如分辨率、帧速率的各种编码参数和各种其它质量设置被编码。在示例性场景中,低分辨率编码可用于将视频流送至监测客户端,而高分辨率编码可被存储在中央监测站并且当需要视频的部分的更详细检查时被提供至监测位置。然而,当观看全分辨率编码时,它仍必须被传输至监测客户端,考虑到大尺寸的全分辨率编码,其可缓慢。
[0028] 虽然诸如JPEG 2000等一些编码技术可在单个图像中编码多个分辨率,但是可期望将来自视频源装置的多个单独编码流送至监测站。多个单独编码可被存储用于随后检索。此外,当编码独立时,与针对JPEG 2000的情况是单一编码截然相反,为了提供附加存储,当不再相关时,高分辨率编码可从存储器中被删除。低分辨率编码可被保留更长的时间。
[0029] 本文描述的实施例总体上涉及用于管理来自视频源装置的数据流在具有有限存储容量的数据存储介质上的存储的系统和方法。公开的存储管理系统包括由处理器执行的程序代码,其确定由摄像机记录的数据流应该被存储的时间和数据流应被存储在数据存储介质上的地方。公开的系统进一步确定当存储介质满或已经满足诸如例如存储阈值等其它标准时应该删除哪个先前存储的数据。
[0030] 在本文描述的一个特定系列实施例中,视频源装置将包括多个单独分辨率编码、可被认为共同形成“镶嵌流”的数据流提供至控制服务器。多个编码中的一个可以是摄像机的整个视场的特定分辨率下记录的虚拟流。其它编码中的一个或多个可包括关注的不同区域的单独编码的虚拟流的镶嵌。关注的每一个不同区域中可以是在摄像机的视场中可被称为“影像块(tile)”的特定区域的虚拟流使得“影像块”的镶嵌可被组装以表示整个视场。例如,全分辨率编码可通过编码的视频的影像块的2×2镶嵌来提供。因此,当视频客户端希望观看全部帧的一部分的详细视图时,仅需要提供镶嵌影像块的子集,其减少所需的带宽和处理。
[0031] 因为不同数据流中的每一个被单独编码并且可被单独解码,所以数据存储管理程序可被执行以引导不同数据流存储在存储介质的不同存储区/位置或“层”中。在一些实施例中,数据存储管理系统可将分辨率编码中的一个的不同影像块存储在不同存储层中。例如,系统可将存储区或层识别为长程存储层并将全帧的较低分辨率编码的虚拟流存储在那个长程存储层中。系统可将另一层指定为专用于短程存储层并且将全分辨率编码的影像块中的一些或全部存储在那个短程存储层中。在示例性实施例中,诸如移动帧中的区域等全分辨率编码的或捕获门的特别相关的影像块可被存储在长程存储层中,不太相关的影像块可被存储在短期存储层中。
[0032] 数据存储管理程序可按照定义的标准从存储介质可选择地移除特定视频数据。例如,在存储在长期存储层上的编码被移除之前,较高分辨率编码可从短期存储层移除。用于移除或删除数据的定义的标准可包括例如包含存储容量限制和已经存储数据的时间长度的任何合适的参数。
[0033] 可采用本文公开的系统和方法用于包括多个单独可解码的虚拟流的镶嵌流的存储管理,其中全分辨率流由关注的区域的多个虚拟流构成,由影像块表示的关注的每一个区域覆盖摄像机的视场的独立区域。在这种实施例中,关注的所有区域可被组装成网格来表示整个视场。
[0034] 虽然在镶嵌流的上下文中描述公开的数据存储管理系统和方法的一些方面,但是将理解的是,公开的系统和方法可用于管理其它类型的数据流。例如,两个摄像机(或其它类型的视频源装置)可各发送协调的H.264实时传输协议(RTP)流,其中一个数据流是高分辨率流,其它数据是低分辨率流。在这种实施例中,高分辨率流可被存储在短期存储层,低分辨率流可被存储在长期存储层中。根据另一示例,摄像机可传输充当主视频流的一个JPEG流。在这种实施例中,一个存储介质层可存储流的偶数帧,其它存储介质层可存储流的奇数帧。在一个摄像机发送一个H.264RTP流的另一示例中,采用一个存储介质层以存储流的关键帧,使用另一存储介质层以存储流的P帧或预测的图象帧。
[0035] 示例性编码和存储管理系统
[0036] 图1描绘用于编码视频和存储编码的数据流的示例性系统。在示例性实施例中,系统可以是能够提供视频的多分辨率编码的监控系统。系统100包括提供各种功能的控制服务器102,各种功能包括从多个视频源装置接收视频、管理接收的视频的存储并且将视频流送至一个或多个客户端。控制服务器102可通过一个或多个物理计算机和/或一个或多个虚拟计算机来提供。在一个可选实施例(未示出)中,控制服务器102的功能可由一个或多个视频源装置110、114本身来实现,视频源装置可然后将多个编码直接发送至客户端。控制服务器可被连接至多个数字IP摄像机110a、110b、110c、110d(统称为IP摄像机110),以及多个流编码器114a、114b(统称为编码器114),其可被联接至一个或多个数字或模拟摄像机112a、112b、112C(统称为摄像机112)。IP摄像机110和编码器114可被统称为视频源装置。视频源装置可将视频通过网络116流送至控制服务器。网络116可包括任何合适的技术并且可由包括有线局域网(LAN)、无线局域网(WLAN)以及广域网(WAN)的一个或多个单独网络提供。
[0037] 控制服务器102提供虚拟流管理器的功能。在示例性实施例中,可被称为“服务器-装置虚拟流管理器”或“服务器-装置VS管理器”的驻存虚拟流管理器管理控制服务器102从记录装置接收的虚拟流。为了流送单独的多分辨率编码,服务器-装置VS管理器104提供用于配置视频源装置110、114的功能。服务器-装置VS管理器104也可包括从视频源装置110、114接收流并且将接收的流解复用成单独虚拟流的功能。解复用的虚拟流可以例如包括通过移除虚拟流中的一个或多个的不同方式被组合或重新复用。来自视频源装置110、114的流的单独虚拟流可被提供至用于存储的存储管理功能108。
[0038] 单独虚拟流中的一个或多个可被提供至附加虚拟流管理器功能。例如,在本文中可被称为“服务器-客户端虚拟流管理器”或“服务器-客户端VS管理器”106的虚拟流管理器管理控制服务器102发送至客户端142的虚拟流。单独虚拟流可从存储管理功能108或从服务器-装置VS管理器104被提供至服务器-客户端VS管理器106。服务器-客户端VS管理器106将一个或多个虚拟流通过网络144流送至监测客户端。
[0039] 视频源装置110、114中的每一个可被配置以根据各个视频源装置110、114的能力、诸如网络116的带宽、网络144的带宽、可用存储空间等其它组件的能力以及监控系统的要求提供各种虚拟流编码。视频源装置110、114可提供单分辨率编码或多个单独分辨率编码。此外,每一个分辨率编码可通过一些虚拟流来提供。在图1中,流118被描绘为通过网络116从IP摄像机110被流送至控制服务器102。
[0040] 如描绘的,流118包括一些单独分辨率编码120、122、124。单独分辨率编码120、122、124被描绘为编码源视频的相同部分,其被考虑为基本上所有的摄像机110a的传感器的关注区域。单独分辨率编码120、122、124中的每一个使用各自的压缩算法编码源视频并且可降低分辨率、帧速率和/或视频质量。例如,分辨率编码120可被编码至源的全分辨率,分辨率编码122可被编码到源分辨率的一半,分辨率编码124可被编码至源分辨率的四分之一。
[0041] 单独分辨率编码120、122、124中的每一个可通过流118内的一个或多个虚拟流126、128、130提供。每一个虚拟流126、128、130包括在各个分辨率编码120、122、124的压缩水平处编码的视频源的至少一部分。如描述的,全分辨率编码120由虚拟流的3×4影像块提供。12个虚拟流126中的每一个用相同的压缩技术编码,当12个虚拟流被组合时,它们提供全分辨率源视频。分辨率编码122被描绘为由单个虚拟流提供。因此,虚拟流128可具有视频源的1/2的分辨率。同样地,虚拟流130可具有视频源的1/4的分辨率。虽然被描述为提供大面积的影像块,但是虚拟流不需要形成影像块;相反,每一个虚拟流可编码可包括完整源视频或其部分的关注的特定区域。各种虚拟流可重叠关注的同一区域或编码源视频的非重叠部分。
[0042] 服务器-装置VS管理器104可从视频源装置110、114接收诸如流118等流。服务器-装置VS管理器104可从接收的流118解复用单独分辨率编码120、122、124的虚拟流,解复用的虚拟流可被传递至用于存储和存储管理的存储管理功能108。另外,虚拟流中的一个或多个可被传递至服务器-客户端VS管理器106用于流送至客户端。
[0043] 存储管理功能108包括数据管理程序,其由处理器在控制服务器102中执行并且适于如在本文中结合图10-图12描述的管理分辨率编码在数据存储介质132中的存储。数据管理程序可将每一个或选择数量的分辨率编码134传递至数据存储介质132。数据管理程序通过将不同视频数据存储在例如数据存储介质132中可被称为存储分区或存储层的不同存储区中组织存储的数据。在示例性实施例中,存储层可包括短期存储层136、中期存储层138和长期存储层140。短期存储层136可用于存储分辨率编码中的每个。数据管理程序适于基于一组标准从每一个存储层删除视频数据。作为控制服务器102的相同的计算系统可包括数据存储介质132。另外地或可选地,数据存储器132可通过单独计算装置(未示出)来提供。更进一步地,虽然被描绘为直接连接至控制服务器102,但是设想的是,数据存储器132可通过网络联接至控制服务器102。数据存储介质132可包括用于永久数据存储诸如一个或多个本地硬盘驱动器等一个或多个非易失性计算机可读介质。可选地,永久存储器可以是在云存储器或网络存储器中的远程硬盘驱动器。
[0044] 如上所述,服务器-客户端VS管理器106可从服务器-装置VS管理器104或存储管理功能108接收分辨率编码用于通过网络144流送至监测客户端142。分辨率编码可来自不同的视频源装置。如描绘,每一个分辨率编码146a、146b、146c和146d可被单独地流送或分辨率编码中的一个或多个可被一起组合成单个流。在图1描绘的示例场景下,与来自不同视频源装置的低分辨率编码相对应的一些虚拟流148a、148b、148c和148d被流送至监测装置142。监测装置142可接收并且解码虚拟流148a、148b、148c和148d并且显示解码的视频150。
[0045] 流多分辨率编码
[0046] 图2描绘显示视频的不同分辨率编码的监视器。图2描述三种不同的视图200、212和218。在示例性实施例中,监测客户端可最初显示包括最低分辨率编码202、204、206、208的四个虚拟流的视图200。例如,来自四个不同摄像机的虚拟流可被同时显示。低分辨率编码202中的一个可例如通过用鼠标或其它指示器210点击它被选择用于放大。当分辨率编码202被全屏显示时,编码的质量可能低于期望的质量。因此,来自选择的摄像机视图的中等分辨率编码214可如视图212中描绘被流送和显示。用户可希望进一步放大以便观看显示的分辨率编码214的部分216。此外,当被放大时,分辨率编码214的质量可能不足以提供期望的图像质量。因此,全分辨率编码可用于显示如视图218中描绘的放大部分220。如上所述,全分辨率编码可包括一些虚拟流。因此,只有覆盖选择的放大区域的全分辨率编码的虚拟流需要被流送至监测客户端。例如,如果全分辨率作为4×3网格虚拟流被提供时,则顶行和第三和第四列中的虚拟流可覆盖期望的区域。
[0047] 当将视频流送至监测位置而不管来自多个摄像机的视频是否被显示或只有当单个摄像机的小部分被放大用于显示时,提供多个虚拟流允许高效的带宽使用。图3描绘能够流送多分辨率编码的视频源装置316和功能以及控制服务器302和功能。如所示,控制服务器302包括用于处理指令的中央处理单元304。相应的指示可被存储在存储器306中。控制服务器302可进一步包括用于永久存储数据和指令的非易失性存储器308。控制服务器302可进一步包括一个或多个输入/输出(I/O)接口310。I/O接口允许输入和/或输出组件连接至控制服务器。例如,网络接口卡(NIC)可被连接至控制服务器302以便将控制服务器302连接至通信网络。CPU 304可执行在存储器中存储的指令。当被执行时,被描绘为312的指令可配置控制服务器302以与本文描述的其它功能一起提供服务器-装置VS管理器314。
[0048] 例如可以是摄像机装置或系统的视频源装置316包括用于处理指令的中央处理单元318。指令可被存储在存储器320中。视频源装置316可进一步包括用于永久存储数据和指令的非易失性存储器322。视频源装置316可进一步包括一个或多个输入/输出(I/O)接口324。I/O接口允许输入和/或输出组件连接至视频捕获器。例如,网络接口卡(NIC)可被连接至输入/输出接口324以便将视频源装置316连接至通信网络。此外,当视频源装置316是IP摄像机或模拟摄像机时,I/O接口可进一步将传感器连接至用于捕获图像数据的CPU。CPU 
318可执行在存储器中存储的指令。当被执行时,被描绘为326的指令可配置视频源装置316以提供装置虚拟流(VS)管理器328以及编码器功能330。
[0049] 控制服务器302的服务器-装置虚拟流(VS)管理器314和视频源装置316的装置VS管理器328配合以便配置332视频源装置316,例如,视频源装置316根据需要或必要时可包括摄像机。编码器功能330可被配置以便提供多个编码组件,每一个编码组件可编码可包括一些行和列单独编码的影像块的视频和特定设定。由编码组件提供的如由数据流334描绘的编码可被流送至控制服务器302。
[0050] 将理解的是,虽然本文中的附图和描述分别是指视频源装置316和服务器102,但是在一些实施例中,来自两个描述的系统的功能可在单个系统中存在。例如,视频源装置316可以是提供本文描述的与摄像机和图像采集有关的功能以及本文描述的与控制服务器
102相关的功能的全部的摄像机系统。在这种实施例中,摄像机系统可作为具有控制其它摄像机系统和与其它摄像机系统通信的能力的服务器操作。
[0051] 图4描绘能够流送多分辨率编码的另外视频源装置功能和控制服务器功能。例如,功能可通过在存储器中存储的指令被设置在上述的控制服务器302中。当通过控制服务器的CPU执行时,指令可提供网络层协议功能402、应用层协议功能404和配置功能408。将理解的是,其它功能可被设置在控制服务器中。
[0052] 类似地,视频源装置功能可通过由处理器执行指令被设置在诸如上述视频源装置316等视频源装置中。视频源装置功能可包括网络层协议功能410、编码器功能412和应用层协议功能414。视频源装置可提供在图4中未描绘的附加功能。
[0053] 控制服务器102和视频源装置316的网络层协议功能402、410配合以便以所需的方式配置视频源装置。网络层协议功能提供用于视频装置的标准化网络接口并且允许兼容装置的发现、配置、管理和控制。网络层协议功能提供控制服务器102和视频源装置316之间的通用接口,其允许视频源装置316的发现和它的功能以及装置的配置。如下面进一步描述,网络层协议功能可用于配置编码器功能416以便设置装置以将包括如上所述的影像块编码的多个独立分辨率编码流送。当根据需要被配置时,视频源装置可使用配置的编码器功能编码视频源以便提供配置的分辨率编码的数据流。来自编码器的数据流可使用应用层协议功能404/414从视频源装置被传输至控制服务器,其实时提供数据流418的控制和传输。
[0054] 当数据流在控制服务器102处被接收时,它可被处理以将属于相同分辨率编码的虚拟流集合在一起。如上所述,单分辨率编码可由一个或多个独立编码的影像块构成。然后,分辨率编码可根据需要被进一步处理用于存储或流送至监测客户端。
[0055] 控制服务器还可包括配置功能408。配置功能408可允许用户设置、观看和/或修改监控系统的组件的配置参数。例如,配置功能可允许用于视频源装置的期望的编码器配置。
[0056] 在图5中示出的视频流118的部分包括第一和第二容器帧506a-c(统称为“容器帧(container frame)506”),其在它们通过网络116传输至控制服务器102之前通过视频源装置准备。容器帧506a-c中的每一个分别包括为容器帧506a-c的全部虚拟帧508所公用的时间戳510a-c。虚拟帧标头中的每一个包括将虚拟帧508中的每一个彼此定界的帧定界符。在说明的示例性实施例中,帧定界符包括v流id。图5中的容器帧506每一个包括用于H.264编码视频的一个虚拟帧508a、c、e和用于JPEG编码视频的另一个虚拟帧508b、d、f。与通过具有其自身时间戳的单独流将H.264视频和JPEG视频发送至控制服务器相反,在描绘的实施例中,将H.264视频和JPEG视频放置在容器帧506中,然后将基本上时分多路复用H.264视频和JPEG视频的容器帧506传输至控制服务器102。
[0057] 因此,将一组虚拟帧508与单源帧时间戳相关联促进虚拟帧508和来自在客户端142上显示的来自不同虚拟流的视频时间的同步。同步的虚拟流也导致延迟的降低。当服务器-装置VS管理器314接收流118时,能够基于每个帧506的时间戳510解复用容器帧506中的每一个,随后能够解复用彼此之间的容器帧506以及来自容器帧506内的任何其它虚拟帧
508的虚拟帧504中的每一个。随后,控制服务器302可根据需要诸如通过将容器帧506存储在数据存储器132中处理容器帧506和虚拟帧504中的任何一个或多个。
[0058] 图6描绘来自描述提供多分辨率编码的单独虚拟流的视频源装置的响应。可被称为描述信息或描述文件的响应600描述将从视频源装置提供的流。响应600描述视频流中的虚拟流的每一个。视频流可具有多个单独虚拟流610a、610b、610c、612和614。每一个虚拟流的编码参数被设置在响应600中。例如,每一个虚拟流可包括虚拟流的唯一标识符602、由虚拟流编码的视频源的关注面积或区域604、编码的虚拟流的所得分辨率606以及编码虚拟流608的质量的指示。如示意性描绘,虚拟流可在相同的编码器设置下编码不同的关注区域。
例如,虚拟流610a、610b、610c在相同的编码器设置下编码源视频的不同关注区域。此外,虚拟流可在不同参数设置下编码相同的关注区域。例如,虚拟流612和614编码相同的关注区域,但是导致不同的分辨率。流的描述600可以各种格式提供并且提供足够的信息以便允许诸如控制服务器等接收流的组件以适当地解复用并且识别组件虚拟流。
[0059] 图7描绘在不同的分辨率下影像块的编码。虚拟流可将视频源的特定区域编码成特定尺寸。例如,源视频可具有4944×3280的区域702。第一虚拟流可编码位于x=0、y=0即源视频的左上角处并且具有1232×1080的尺寸的总区域的一个部分704。第一虚拟流可提供区域704的全分辨率编码,其将导致具有尺寸为1232×1080的第一虚拟流编码706。第二虚拟流可编码相同的区域704,但是编码可降采样分辨率以便提供四分之一的源分辨率。这样,编码相同源视频区域704的第二虚拟流708将具有308×270的尺寸。
[0060] 图8描绘将来自视频源装置316的数据流送至控制服务器302的方法800。在框802处,视频源装置的编码组件被配置。配置操作可包括将来自例如控制服务器302的一个或多个配置命令发送至可包括编码器114的一个或多个视频源装置316。视频源装置316的编码组件被配置以便将一些虚拟流设置在从视频源装置316发送的数据流内。编码组件可被配置以便提供视频源的至少一部分的单独分辨率编码。单独分辨率编码中的至少一个通过每一个包括分辨率编码的镶嵌的影响块的多个虚拟流提供。在视频源装置316中包括的编码组件可被配置以提供每一个虚拟流。
[0061] 一旦用于流的编码组件被配置,在框804处,诸如结合图6以上描述的流的描述从视频源装置316被传送至控制服务器302。在示例性实施例中,响应于由控制服务器302发送的描述请求,流描述可通过视频源装置316被提供至控制服务器302。接收的描述描述视频源装置被配置以提供的多个单独流。期望的分辨率编码中的每一个可通过在说明书描述的一个或多个虚拟流提供。每一个虚拟流的描述可包括虚拟流的标识符以及虚拟流的编码信息和通过虚拟流编码的源视频的区域的指示。
[0062] 在框806处,数据流本身从视频源装置316被传送并且在控制服务器302处接收。在框808处,控制服务器302将每一个虚拟流与各自分辨率编码相关联。可使用在流描述中的信息识别虚拟流中的哪一个与各自分辨率编码相关联。此外,如果多个虚拟流编码源视频的相同区域,则可有必要利用在虚拟流中编码的附加信息以便确定与虚拟流相关联的分辨率编码。当各自分辨率编码与每一个虚拟流相关联时,相同分辨率编码的虚拟流可被进一步处理。例如,在框810处,每一个分辨率编码的虚拟流可被提供用于存储。虚拟流和流描述509可相对于彼此被存储。另外地或可选地,在框812处,分辨率编码的虚拟流中的一个或多个可被流送至一个或多个监测客户端。将理解的是,虽然在上述描述中,暗示在单独虚拟流被存储和/或传输至客户端之前,一些虚拟流被处理,但是虚拟流中的每一个单独可解码并且可被立即存储和/或发送至客户端。
[0063] 流数据的数据存储管理
[0064] 如以上结合图1指出,存储管理功能108包括通过控制服务器102中的处理器可执行的数据存储管理程序。数据存储管理程序管理数据流118的存储,例如数据流118可包括在不同区域中的视频、音频和元数据、扇区或数据存储介质132的层。图9描绘由数据管理存储程序执行以确定数据流118何时将被存储以及数据流中的特定数据将被存储在数据存储介质132中的哪些地方的方法。参照图9,在控制服务器102中的处理器901执行数据存储管理程序以执行一种方法,方法包括当检测到触发源事件902发生时,检测一系列触发记录事件中的任何一个,触发记录事件使来自装置的数据流118被记录。触发事件可以是适合使流数据被记录的任何信息。例如,触发事件记录902可包括:
[0065] 1.预定记录904:基于用户定义的进度表触发来自视频源装置的数据流118的记录。进度表可针对每一个视频源装置定义。
[0066] 2.分析引擎906:当特定分析标准在视频源装置的视场中被检测时,触发记录。可检测的分析标准的示例是视场中的运动。在另一示例中,检测已经满足分析标准可包括通过与视频流相关联的元数据的分析确定事件是否已发生。例如,与视频流相关联的元数据可指示在视频流的过程期间在特定的时间发生的各种事件。在示例性场景中,元数据可指示运动已经发生或在记录期间在特定事件已经识别的面部或目标。在示例性实施例中,视频流可能先前已被分析并且分析结果被存储在与视频流相关联的元数据中。在示例性场景中,针对诸如运动或人或目标的存在的视频流可能在记录装置例如摄像机处已经被分析并且分析结果被存储在元数据中。
[0067] 3.手动记录908:用户手动地触发记录。例如,记录可通过在客户端上的用户接口装置由操作人员触发同时从视频源装置观看实况视频流。
[0068] 4.规则引擎910:当满足一个或多个用户定义的规则时,记录被触发。规则输入可以是诸如例如泛倾斜变焦(PTZ)命令视为检测、诸如例如特定许可牌照或人脸的存在等记录的流中事件的检测或从数字监视系统的另一部分接收的任何其它指定数字输入的检测等系统中的任何事件源。
[0069] 在示例性实施例中,数据存储管理程序可采用每次触发的最小记录时间,其确定记录前和记录后缓冲器的配置。换言之,在系统采用自动触发事件的地方,系统可在触发事件前的规定期间以及在触发事件后的规定期间存储相关视频流。例如,五(5)秒的默认值可被用作记录缓冲器。将理解的是,缓冲大小可以是任何适当的长度并可由用户自定义。
[0070] 在数据存储介质132中可被称为“仓”的单独存储空间和区域912可被分配给每一个视频源装置。在示例性实施例中,每一个仓912可被细分为层914,每一个存储区域或层与不同类的数据相关联。在图9的示例性实施例中,所示的存储介质132被分成两个仓912(仓A和仓B),一个用于两个视频存储装置A、B中的每一个,其中每一个仓912被细分成两层914(第0层、第1层)。一个层914可被命名为长期存储(例如第1层)和另一层914可被命名为短期存储(例如第0层)。
[0071] 数据存储管理程序还包括用于确定数据流118中的每一个数据段应该被存储在存储介质132的哪个地方。更特别地,规则引擎可确定特定视频段应被存储哪些存储区中。在示例性实施例中,规则引擎可使用作为用于规则引擎的输入的元数据,元数据是数据流118的一部分。在示例性场景中,元数据可包括针对数据流118中的视频的每一个帧的分辨率和时间戳。在这种情景中,规则引擎可包括将包括具有最小分辨率的虚拟流的数据段与长期存储层914相关联的规则。其它元数据可包括在全分辨率帧中的虚拟流影像块的位置。规则引擎可采用这个元数据以将在帧(例如中心)的特定部分中定位的虚拟流与长期存储层914相关联。其它元数据可指示虚拟流是否已记录在其中的运动。规则引擎可采用这种元数据以将含有运动的虚拟流与长期存储层914相关联。在另一示例性场景中,元数据可指示虚拟流是否被运动掩模覆盖。规则引擎可采用这种信息以将对应的虚拟流与长期存储层914相关联。
[0072] 图10描绘由数据管理程序执行以确定数据流118是否应当被记录,如果是,将数据流中的数据段与存储介质132中相对应的存储区或层914相关联的方法900。当通过控制服务器302中的处理器执行时,在框920处,数据管理程序监测用于诸如上述触发事件等触发事件的输入。在框922处,当数据管理程序确定输入指示触发事件902已经发生时,在框924处,程序分析数据流118并且将元数据输入至规则引擎中的数据流以将数据流118中的数据段与特定存储区域或层914相关联。当数据段已与特定存储区域相关联时,数据段被保存至相关联的存储层914。
[0073] 图11说明与示例性数据流相关联的处理。在图11的示例场景中,数据流118包括含有三个独立分辨率编码的镶嵌流。特别地,在图11中说明的示例中,数据流包括全分辨率编码“A”、中等分辨率的编码“B”和低分辨率编码“C”。全分辨率编码A包括3×4网格的12个虚拟流(影响块),其中每一个影像块表示全分辨率帧的1.3兆像素(MP)部分。流B和流C中每一个包括分别在2MP和四分之一视频图形阵列(QVGA)分辨率记录的全关注区域的单个虚拟流。当触发事件902已被检测时,数据存储管理程序使用镶嵌流118中的元数据来识别每一个虚拟流的分辨率(在全分辨率虚拟流的情况下,在全分辨率帧中那个虚拟流的位置)。在示例性场景下,程序将低分辨率虚拟流C和全分辨率流A的两个中央影像块与长期存储区域或层136相关联。程序将中等分辨率虚拟流B和全分辨率流A的除两个中央影像块之外的每一个影像块与短期存储层140相关联。
[0074] 虽然图11描绘两个层136、140与每一个视频源装置的镶嵌流118中的虚拟流相关联的场景,但是可采用任何数量的存储区。例如,如图1中示出的三个存储层136、138、140可被指定,其中中等分辨率虚拟流B可与中期存储层138(图11中未示出)而不是上述示例中描述的短期存储层138相关联。镶嵌流118可被存储在短期、中期和长期存储层136、138、140中的可选实施例可被提供。例如,全分辨率虚拟流可被存储在长期存储层中,低分辨率虚拟流可被存储在短期存储层中
[0075] 图12描绘当存储介质132已满或满足一些其它指定的最大容量阈值时由数据存储管理程序执行以释放数据存储介质132中的空间的处理950。参照图12,在框952处,数据存储管理程序确定数据存储介质132是否已满或达到一些其它指定的阈值。如果不是,则处理在框952处继续,其中数据流以上述的方式被保存在相关联的存储层中。然而,如果在框952处,数据存储管理程序确定已达到或超过用于在特定存储区中存储的数据的阈值,则在框954处,程序将超过指定最大保留时间的来自视频源装置的任何数据从存储介质132删除。
在框956处,程序再次确定存储介质132是否已满或满足一些其它指定的最大容量阈值。如果不是,则处理在框952处继续,其中数据流被保存在存储介质132上的相关联的存储层中。
如果在框956处,在存储区中的数据超过阈值,则处理在框958处继续,其中数据被删除。例如,删除的数据可以是例如在存储介质132上的层136、140中的一个中的下一个最早的数据。
[0076] 在示例性实施例中,存储管理程序可在两个层(或如果两个以上的层被指定时,在三个层或多个层之间)之间设有指定存储比(层比)。该比例限定将在两个或多个存储区中的每一个中存储的数据的相对量。在图12的框960处采用比例的实施例中,数据存储管理程序以维持指定比例的方式将数据从其它存储层136、140删除。例如,在示例性场景中,如果在删除超过最大保留时间的所有数据后,存储阈值继续被超过,则程序可删除恰好被存储在第1层中的下一个最早的数据。在删除数据导致层比变得不平衡的情景中,程序删除在第2层中存储的最早的数据中的一些直到指定层比被重新建立。
[0077] 根据公开的实施例的另一方面,最大保留时间可针对长期存储层136和短期存储层136中的每一个指定。在示例性场景中,长期存储层的最大保留时间可比短期存储层的最大保留时间长。数据存储管理程序可被配置以删除比每一层的各自最大保留时间更老的任何数据。如果所有剩余数据比最大保留时间年轻并且存储介质132已满(或超过一些其它最大容量阈值),则存储管理程序被配置以从短期存储层136和长期存储层140中的一个删除最早的内容并且从短期存储层136和长期存储层140中的另一个删除最早的数据直到层比被重新平衡。
[0078] 因此,申请人已公开用于管理来自视频源的流式数据的存储的系统和方法。在公开的实施例中,包括多个编码视频流的数据流被接收。响应于触发事件,公开的系统分析数据以确定单独编码的视频流应该被存储在一些存储区或存储层中哪一个。存储区中的每一个被指定以存储具有特定特征的数据。系统基于视频流的特性选择针对编码视频流中的每一个的特定存储区。当达到预定的阈值时,系统适于将数据从存储区或存储层删除。当已达到阈值时,数据通过使用包括例如已经被存储最长时间长度的数据的任何合适的度量被选择删除。
[0079] 虽然以上公开包括在其它组件中在硬件上执行的软件的示例性方法和系统,但是应注意的是,这种方法和系统仅仅是说明性的,并且不应当被认为是限制。例如,设想的是,这些硬件和软件组件中的任何一个或全部可不唯一地以硬件、不唯一地以软件、不唯一地以固件或以硬件、软件和/或固件的任何组合体现。例如,网络服务器组件可不唯一地被设置在视频源装置中。在这种情况下,客户端将与装置直接交互,视频源装置将以这种方式管理其机载存储。因此,虽然以下描述示例性方法和设备,但是本领域普通技术人员将容易理解的是,提供的示例不是实施这种方法和设备的唯一方式。例如,方法可以包括处理器和微处理器的计算机硬件、专用集成电路(ASIC)或其它硬件组件中的一个或多个部件来实现。
[0080] 本公开已描述关于一个或多个实施例的各种系统和方法。然而,将对本领域技术人员显而易见的是,在不脱离本公开的教导的情况下,可进行一些变化和变型。例如,虽然本文的附图和说明书单独是指摄像机118/视频源装置316和控制服务器102,但是在一些实施例中,来自两个描述系统的功能可存在于单个系统中。例如,视频源装置316可以是提供本文中与摄像机和图像采集相关的功能以及本文中描述的与控制服务器102相关的功能的全部的摄像机系统。在这种实施例中,摄像机系统可作为具有控制其它摄像机系统并且与其它摄像机系统通信的能力的服务器操作。
[0081] 虽然以针对结构特征和/或方法动作的语言已经描述本主题,但是将理解的是,在所附权利要求中限定的主题不必限于上述的具体特征或动作。相反,上述具体特征和动作作为实现权利要求的示例形式被公开。