Correlation processing among multiple analyzers of video streams at stages of a pipeline architecture
First Claim
1. A volatile or non-volatile storage device storing instructions which, when executed by one or more processors, cause, at a stage of a multiple stage pipeline:
- receiving, from a first video analyzer application a first call to read first video data that corresponds to a first video stream;
in response to the first call, providing the first video data to the first video analyzer application to allow the first video analyzer application to perform a first set of one or more analysis operations on the first video data to examine the content of the first video data and to generate a first result;
receiving, from a second video analyzer application that is different than the first video analyzer application, a second call to read second video data that corresponds to a second video stream; and
in response to the second call, providing the second video data to the second video analyzer application to allow;
the second video analyzer application to perform a second set of one or more analysis operations on the second video data to examine the content of the second video data and to generate a second result, anda third video analyzer application to evaluate a condition that is based on both the first result and the second result.
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 analysis 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 analysis 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 analysis may be performed and associations with, and among, events may be made.
18 Citations
61 Claims
-
1. A volatile or non-volatile storage device storing instructions which, when executed by one or more processors, cause, at a stage of a multiple stage pipeline:
-
receiving, from a first video analyzer application a first call to read first video data that corresponds to a first video stream; in response to the first call, providing the first video data to the first video analyzer application to allow the first video analyzer application to perform a first set of one or more analysis operations on the first video data to examine the content of the first video data and to generate a first result; receiving, from a second video analyzer application that is different than the first video analyzer application, a second call to read second video data that corresponds to a second video stream; and in response to the second call, providing the second video data to the second video analyzer application to allow; the second video analyzer application to perform a second set of one or more analysis operations on the second video data to examine the content of the second video data and to generate a second result, and a third video analyzer application to evaluate a condition that is based on both the first result and the second result. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A system for analyzing video data that represents one or more video streams, the system comprising:
at a stage of a multiple stage pipeline, means for performing, by a first analyzer application, a first set of one or more analysis operations on first video data that corresponds to a first video stream, to examine the content of the first video data; means for performing, by a second analyzer application that is different than the first analyzer application, a second set of one or more analysis operations on second video data that corresponds to a second video stream, to examine the content of the second video data; and wherein performing the first set of one or more analysis operations generates a first result and performing the second set of one or more analysis operations generates a second result; means for evaluating a condition that is based on both the first result and the second result. - View Dependent Claims (21)
-
22. 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:
at a stage of a multiple stage pipeline, performing, by a first analyzer application, a first set of analysis operations on first video data that corresponds to a video stream, to examine the content of the first video data; performing, by a second analyzer application that is different than the first analyzer application, a second set of analysis operations on second video data that corresponds to a video stream, to examine the content of the second video data; and wherein performing the first set of analysis operations generates a first result and performing the second set of analysis operations generates a second result; evaluating a condition that is based on both the first result and the second result; wherein the steps are performed by the one or more processors. - View Dependent Claims (23, 24, 25, 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. 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:
at a stage of a multiple stage pipeline, in response to (a) performance of, by a first analyzer application, a first set of one or more analysis operations on first video data that corresponds to a first video stream, to examine the content of the first video data; and (b) performance of, by a second analyzer application that is different than the first analyzer application, a second set of one or more analysis operations on second video data that corresponds to a video stream, to examine the content of the second video data, evaluating a condition that is based on first results of the first set of one or more analysis operations and the second results of the second set of one or more analysis operations; wherein the steps are performed by the one or more computing devices processors. - View Dependent Claims (55, 56, 57, 58, 59, 60, 61)
Specification