Deep frame analysis of multiple video streams in a pipeline architecture
First Claim
1. A volatile or non-volatile storage device storing instructions which, when executed by one or more processors, cause:
- receiving, from a second video analysis application, a call to read, from a memory, first analytic information that is associated with video data;
wherein the video data includes (a) a frame that corresponds to a video stream and (b) the first analytic information;
wherein the first analytic information is (i) generated by a first video analysis application that is different than the second video analysis application about the content of the frame (ii) based on a prior analysis of the frame by the first video analysis application, and (iii) different than the frame; and
providing the first analytic information to the second video analysis application to allow the second video analysis application to examine the first analytic information to determine whether or not the second video analysis application is to perform a particular set of one or more on-the-fly analysis operations on the frame.
4 Assignments
0 Petitions
Accused Products
Abstract
A pipeline architecture for analyzing multiple streams of video is embodied, in part, in a layer of application program interfaces (APIs) to each stage of processing. Buffer queuing is used between some stages, which helps moderate the load on the CPU(s). Through the layer of APIs, innumerable video analysis applications can access and analyze video data flowing through the pipeline, and can annotate portions of the video data (e.g., frames and groups of frames), based on the analyses performed, with information that describes the frame or group. These annotated frames and groups flow through the pipeline to subsequent stages of processing, at which increasingly complex analyses can be performed. At each stage, portions of the video data that are of little or no interest are removed from the video data. Ultimately, “events” are constructed and stored in a database, from which cross-event and historical analyses may be performed and associations with, and among, events may be made.
17 Citations
58 Claims
-
1. A volatile or non-volatile storage device storing instructions which, when executed by one or more processors, cause:
-
receiving, from a second video analysis application, a call to read, from a memory, first analytic information that is associated with video data; wherein the video data includes (a) a frame that corresponds to a video stream and (b) the first analytic information; wherein the first analytic information is (i) generated by a first video analysis application that is different than the second video analysis application about the content of the frame (ii) based on a prior analysis of the frame by the first video analysis application, and (iii) different than the frame; and providing the first analytic information to the second video analysis application to allow the second video analysis application to examine the first analytic information to determine whether or not the second video analysis application is to perform a particular set of one or more on-the-fly analysis operations on the frame. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. A system for analyzing video data that represents one or more video streams, the system comprising:
-
means for reading, from a memory, first analytic information that is associated with the video data, wherein the video data includes (a) a frame that corresponds to a stream and (b) the first analytic information; wherein the first analytic information is (i) generated by a first video analysis application about the content of the frame (ii) based on a prior analysis of the frame by the first video analysis application, and (iii) different than the frame; and means for examining, by a second video analysis application that is different than the first video analysis application, the first analytic information to determine whether or not the second video analysis application is to perform a particular set of one or more on-the-fly analysis operations on the frame. - View Dependent Claims (24)
-
-
25. A method performed by one or more processors for analyzing video data that represents one or more video streams, the method comprising the steps of:
-
reading, from a memory, first analytic information that is associated with the video data; wherein the video data includes (a) a frame that corresponds to a stream and (b) first analytic information; wherein the first analytic information is (i) generated by a first video analysis application about the content of the frame, (ii) based on a prior analysis of the frame by the first video analysis application, and (iii) different than the frame; and examining, by a second video analysis application that is different than the first video analysis application, the first analytic information to determine whether or not the second video analysis application is to perform a particular set of one or more on-the-fly analysis operations on the frame; wherein the steps of reading and examining are performed by the one or more processors. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58)
-
Specification