Pipeline architecture for analyzing multiple video streams
First Claim
1. A method of processing video data that represents one or more video streams, the method comprising:
- at a first stage of a multiple stage pipeline, allowing one or more first analyzers to perform a first set of on-the-fly analysis operations on the video data;
based on the first set of on-the-fly analysis operations, filtering the video data to produce filtered video data, wherein the filtered video data contains a subset of the video data; and
at a second stage of the multiple stage pipeline, allowing one or more second analyzers to perform a second set of on-the-fly analysis operations on the filtered video data;
wherein the second set of analysis operations are more complex than the first set of analysis operations.
5 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
52 Claims
-
1. A method of processing video data that represents one or more video streams, the method comprising:
-
at a first stage of a multiple stage pipeline, allowing one or more first analyzers to perform a first set of on-the-fly analysis operations on the video data;
based on the first set of on-the-fly analysis operations, filtering the video data to produce filtered video data, wherein the filtered video data contains a subset of the video data; and
at a second stage of the multiple stage pipeline, allowing one or more second analyzers to perform a second set of on-the-fly analysis operations on the filtered video data;
wherein the second set of analysis operations are more complex than the first set of analysis operations. - View Dependent Claims (2, 3)
-
-
4. A system for processing video data that represents one or more video streams, the system comprising:
-
at a first stage of a multiple stage pipeline, means for allowing one or more first analyzers to perform a first set of on-the-fly analysis operations on the video data;
means for filtering the video data, based on the first set of on-the-fly analysis operations, to produce filtered video data, wherein the filtered video data contains fewer frames than the video data; and
at a second stage of the multiple stage pipeline, means for allowing one or more second analyzers to perform a second set of on-the-fly analysis operations on the filtered video data;
wherein the second set of analysis operations are more complex than the first set of analysis operations.
-
-
5. A method of processing video data that represents one or more video streams, the method comprising:
-
receiving video data that represents one or more video streams at a first stage of processing;
at the first stage of processing, providing an interface designed to allow (a) analysis of frames that correspond to each stream, and (b) reduction of the video data by removing a portion of the video data that, at the first stage, was determined to not contain content of interest; and
sending remaining video data to a second stage of processing for further analysis. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44)
-
-
45. A method for analyzing video data that represents one or more video streams, the method comprising computer-implemented steps of:
at a first stage of processing in a multiple stage pipeline, reading video data that represents one or more video streams;
analyzing frame data that corresponds to each of the streams; and
for one or more of the streams, annotating at least one corresponding frame with analytic information about the frame, wherein the analytic information is generated based on analyzing the corresponding frame; and
outputting the analytic information for providing to a second stage of processing for further analysis of the frame. - View Dependent Claims (46, 47, 48, 49, 50, 51, 52)
Specification