Feed-customized processing 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 the performance of, at a stage of a multiple stage pipeline;
- receiving, at a particular device, from a first analyzer application, a first call to read first video data, wherein the first video data is associated with a first video stream from a first camera;
in response to receiving the first call, providing the first video data to the first analyzer application to allow the first analyzer application to perform, as the first video data passes through the stage of the pipeline, a first set of one or more analysis operations on the first video data to examine the content of the first video data;
receiving, at the particular device, from a second video analyzer application, a second call to read second video data, wherein the second video data is associated with a second video stream from a second camera that is different than the first camera;
in response to receiving the second call, providing the second video data to the second analyzer application to allow the second analyzer application to perform, as the second video data passes through the stage of the pipeline, a second set of one or more analysis operations on the second video data to examine the content of the second video data, wherein the second set of one or more analysis operations are performed concurrently with the first set of one or more analysis operations, wherein the second set of one or more analysis operations differ from the first set of one or more analysis operations.
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.
-
Citations
66 Claims
-
1. A volatile or non-volatile storage device storing instructions which, when executed by one or more processors, cause the performance of, at a stage of a multiple stage pipeline;
-
receiving, at a particular device, from a first analyzer application, a first call to read first video data, wherein the first video data is associated with a first video stream from a first camera; in response to receiving the first call, providing the first video data to the first analyzer application to allow the first analyzer application to perform, as the first video data passes through the stage of the pipeline, a first set of one or more analysis operations on the first video data to examine the content of the first video data; receiving, at the particular device, from a second video analyzer application, a second call to read second video data, wherein the second video data is associated with a second video stream from a second camera that is different than the first camera; in response to receiving the second call, providing the second video data to the second analyzer application to allow the second analyzer application to perform, as the second video data passes through the stage of the pipeline, a second set of one or more analysis operations on the second video data to examine the content of the second video data, wherein the second set of one or more analysis operations are performed concurrently with the first set of one or more analysis operations, wherein the second set of one or more analysis operations differ from the first set of one or more analysis operations. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. 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 and as first video data passes through the stage of the pipeline, a first set of one or more analysis operations on the first video data to examine the content of the first video data, wherein the first video data is associated with a first video stream from a first camera; and means for performing, by a second analyzer application and as second video data passes through the stage of the pipeline, a second set of one or more analysis operations on the second video data to examine the content of the second video data, wherein the second video data is associated with a second video stream from a second camera that is different than the first camera; wherein the multiple stage pipeline includes a particular machine through which the first and second video passes and with which both the first and second analyzer applications interact to perform the respective first or second set of one or more analysis operations; wherein the second set of one or more analysis operations differ from the first set of one or more analysis operations.
-
-
23. A method performed by one or more processors for analyzing video data that represents one or more video streams, the method comprising:
-
at a stage of a multiple stage pipeline, performing, by a first analyzer application and as first video data passes through the stage of the pipeline, a first set of analysis operations on the first video data to examine the content of the first video data, wherein the first video data is associated with a first video stream from a first camera; and performing, by a second analyzer application and as a second video data passes through the stage of the pipeline, a second set of analysis operations on the second video data to examine the content of the second video data, wherein the second video data is associated with a second video stream from a second camera that is different than the first camera, wherein the second set of one or more analysis operation are performed concurrently with the first set of one or more analysis operations, wherein the second set of one or more analysis operations differ from the first set of one or more analysis operations; wherein the multiple stage pipeline includes a particular machine through which the first and second video passes and with which both the first and second analyzer applications interact to perform the respective first or second set of one or more analysis operations; wherein the method is performed by the one or more processors. - View Dependent Claims (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, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66)
-
Specification