Progressive compressed domain computer vision and deep learning systems

Methods and systems for compressed domain progressive application of computer vision techniques. A method for decoding video data includes receiving a video stream that is encoded for multi-stage decoding. The method includes partially decoding the video stream by performing one or more stages of the multi-stage decoding. The method includes determining whether a decision for a computer vision system can be identified based on the partially decoded video stream. Additionally, the method includes generating the decision for the computer vision system based on decoding of the video stream. A system for encoding video data includes a processor configured to receive the video data from a camera, encode the video data received from the camera into a video stream for consumption by a computer vision system, and include metadata with the encoded video stream to indicate whether a decision for the computer vision system can be identified from the metadata.

TECHNICAL FIELD

This disclosure relates generally to computer vision and deep learning systems. More specifically, this disclosure relates to compressed domain progressive application of computer vision techniques.

BACKGROUND

Processing camera video streams using computer vision and deep learning (CV/DL) techniques is an upcoming and explosive area of artificial intelligence (AI) and machine learning (ML). The application level goal is to automatically perform various tasks by observing a video stream, such as user aware applications, e-commerce, social media, visual awareness, surveillance and security, navigation, etc. These applications use a variety of underlying CV techniques such as object detection and recognition, object tracking, human detection and tracking, etc. DL and convolutional neural networks (CNNs) are a set of highly valuable techniques that has been shown to provide significant improvements in detection rates over traditional CV techniques.

SUMMARY

Embodiments of the present disclosure provide for progressive compressed domain CV and DL systems.

In one embodiment, a method for decoding video data is provided. The method includes receiving a video stream that is encoded for multi-stage decoding. The method includes partially decoding the video stream by performing one or more stages of the multi-stage decoding. The method includes determining whether a decision for a CV system can be identified based on the partially decoded video stream. Additionally, the method includes generating the decision for the CV system based on decoding of the video stream.

In another embodiment, a system for decoding video data is provided. The system includes a communication interface and a processor operably connected to the communication interface. The communication interface is configured to receive a video stream that is encoded for multi-stage decoding. The processor is configured to partially decode the video stream by performing one or more stages of the multi-stage decoding, determine whether a decision for a CV system can be identified based on the partially decoded video stream, and generate the decision for the CV system based on decoding of the video stream.

In another embodiment, a system for encoding video data is provided. The system includes a processor configured to receive the video data from a camera, encode the video data received from the camera into a video stream for consumption by a CV system, and include metadata with the encoded video stream to indicate whether a decision for the CV system can be identified from the metadata. The system also includes a communication interface operably connected to the processor. The communication interface is configured to transmit the encoded video stream and the metadata to a decoder for the CV system.

DETAILED DESCRIPTION

Embodiments of the present disclosure further recognize and take into consideration that one difficulty with DL and CNN techniques is that these techniques are computationally challenging. This is especially true for continuous application of CV techniques to an incoming video stream. Moreover, in order to embed these techniques into power-optimized applications, the video streams to be analyzed have to be prepared for such techniques to be used. At a minimum, a typical compression based video stream (e.g., such as high efficiency video coding (HEVC) or H.265 encoded video stream) has to be completely decoded before any DL/CNN techniques can be applied. This can add a lot of computational cost especially in scenarios of a continuous video recording where most of the video stream is not expected to contain meaningful information. In such a scenario, even the detection of whether the video stream contains meaningful information would require full decoding of the incoming video stream. Additionally, embodiments of the present disclosure recognize that current codecs are designed to be optimized for compression performance and not for optimized downstream consumption by CV/DL based AI systems.

Embodiments of the present disclosure further recognize and take into consideration that such most video encoding is optimized for human consumption and compression. This is, most video encoding techniques for video streams attempt to convey the most information, for example, in the form of image clarity, color, and contrast, to the human eye in the least amount of data to reduce bandwidth and storage requirements. Such video encoding techniques (and the decoding techniques therefore) are not optimized or designed for consumption utilizing CV. As a result, using these techniques, unnecessary video processing occurs resulting in unnecessary power usage.

Accordingly, embodiments of the present disclosure provide for progressive compressed domain application of CV and DL systems. In so doing, various embodiments significantly reduce the complexity and power consumption for video consumption in CV applications. Embodiments of the progressive compressed domain decoding system disclosed herein may be implemented in or utilized by any number of different systems or applications. For example, without limitation, such systems or applications may include CV, DL, and AI. In the interests of brevity, certain descriptions of the present disclosure may discuss implemented in or utilized by a CV system or decoding system. However, such descriptions are equally applicable to other systems or applications of implementing or utilizing the progressive compressed domain decoding system of the present disclosure including both DL and AI and the terms CV, DL, and AI may be used interchangeably in this disclosure.

FIG. 1illustrates an example networked system100in which various embodiments of the present disclosure may be implemented. The embodiment of the networked system100shown inFIG. 1is for illustration only. Other embodiments of the networked system100could be used without departing from the scope of this disclosure.

As shown inFIG. 1, the system100includes a network102, which facilitates communication link(s) between various components in the system100. For example, the network102may communicate Internet Protocol (IP) packets or other information between network addresses. The network102may include one or more local area networks (LANs); metropolitan area networks (MANs); wide area networks (WANs); all or a portion of a global network, such as the Internet; or any other communication system or systems at one or more locations.

The network102facilitates communications between at least one server104and various other electronic devices106-115. Each server104includes any suitable electronic, computing, and/or processing device that can provide computing services for one or more client devices. Each server104could, for example, include one or more processing devices, one or more memories storing instructions and data, and one or more network interfaces facilitating communication over the network102. For example, server104may operate one or more applications to encode and/or decode video data for progressive compressed domain application of CV and DL systems.

Each electronic device106-115represents any suitable electronic computing or processing device that interacts with the server104or other electronic device(s) over the network102. In this example, the electronic devices106-115include a desktop computer106, a mobile telephone or smartphone108, a personal digital assistant (PDA)110, a laptop computer112, a tablet computer114, a camera system115, etc. However, any other or additional electronic devices could be used in the networked system100. In various embodiments, electronic devices106-115implement techniques for the encoding and/or decoding video data for progressive compressed domain application of CV and DL systems as discussed in greater detail below. For example, the camera system115may include one or more video camera(s) that output an encoded video stream for decoding by any one of the server104or one or more of the electronic devices106-114.

In this example, some electronic devices108-114use communication link(s) to communicate indirectly with the network102. For example, the electronic devices108-110communicate via one or more base stations116, such as cellular base stations or eNodeBs. Also, the electronic devices112-115use communication link(s) to communicate via one or more wireless access points118, such as IEEE 802.11 wireless access points. Note that these are for illustration only and that each electronic device could communicate using direct communication link(s) to the network102or indirectly with the network102via any suitable intermediate device(s) or network(s).

FIG. 2illustrates an example processing system200in a networked system according to various embodiments of the present disclosure in which various embodiments of the present disclosure may be implemented. For example, in various embodiments, the processing system200inFIG. 2is a processing device that performs video stream encoding or decoding to implement progressive compressed domain application of CV and DL systems. In this illustrative example, the processing system200represents any one of the server104or one or more of the electronic devices106-115inFIG. 1. For example, the processing system200may be an encoding device that is connected to or includes the camera system115to encode a video stream according to one or more embodiments of the present disclosure. In another example, the processing system200may be an decoding device that is connected to or is included within the server104or one or more of the electronic devices106-114to decode a video stream and/or implement progressive compressed domain application of CV and DL systems according to one or more embodiments of the present disclosure.

As shown inFIG. 2, the processing system200includes a bus system205, which supports communication between processor(s)210, storage devices215, communication interface220, and input/output (I/O) unit225. The processor(s)210executes instructions that may be loaded into a memory230. The processor(s)210may include any suitable number(s) and type(s) of processors or other devices in any suitable arrangement. Example types of processor(s)210include microprocessors, microcontrollers, digital signal processors, field programmable gate arrays, application specific integrated circuits, and discreet circuitry. In some embodiments, the processor(s)210may be implemented as a decoder or encoder to implement the progressive compressed domain application of CV and DL systems as discussed in greater detail below.

The memory230and a persistent storage235are examples of storage devices215, which represent any structure(s) capable of storing and facilitating retrieval of information (such as for buffering of a video stream, program code, and/or other suitable information on a temporary or permanent basis). The memory230may represent a random access memory or any other suitable volatile or non-volatile storage device(s). For example, as discussed below, the memory230contains instructions for a CV or AI application that performs tasks based on decoded or partially decoded video streams. In another example, the memory230contains instructions for implementing a hierarchical/progressive decoder for CV and DL systems. The persistent storage235may contain one or more components or devices supporting longer-term storage of data, such as a read-only memory, hard drive, Flash memory, or optical disc.

The communication interface220supports communications with other systems or devices. For example, the communication interface220could include a network interface card or a wireless transceiver facilitating communications over the network101. The communication interface220may support communications through any suitable physical or wireless communication link(s), for example, to or from an encoder device or decoder device. The I/O unit225allows for input and output of data. For example, the I/O unit225may provide a connection for user input through a keyboard, mouse, keypad, touchscreen, or other suitable input device. The I/O unit225may also send output to a display, printer, or other suitable output device.

AlthoughFIG. 2illustrates one example of a processing system200, various changes may be made toFIG. 2. For example, various components inFIG. 2could be combined, further subdivided, or omitted and additional components could be added according to particular needs.

As will be discussed in greater detail below, embodiments of the present disclosure provide for progressive compressed domain application of CV and DL systems. Embodiments of the present disclosure can significantly reduce the complexity of continuous low power video vision by utilizing the compressed domain progressive application of CV techniques. In particular, various embodiments use DL techniques on partially decoded video streams, in other words, compressed-domain DL. Various embodiments provide the progressive decoding of additional parts of the encoded video stream based on decisions in previous detection stages, including region of interest (ROI) extraction.

Further embodiments provide for a video encoding scheme where additional information is encoded into the bitstream to allow for improved CV/DL performance. Various embodiments provide an encoding scheme that pre-determines regions of interests and encodes the pre-determined regions to be decoded without requiring the decoding of the entire frame for downstream CV/DL systems. Further embodiments provide an encoding scheme where the encoder is configured by downstream CV/DL system to optimize or improve the encoding of side information or ROI selection to preferred CV/DL tasks such as, for example, human detection or hand detection. Various embodiments further provide for an encoder that utilizes a spatial transform that is designed or optimized for CNN/DL tasks.

FIG. 3Aillustrates an example of a block diagram for a video decoder system300. For example, such a video decoder system300may be used to decode video for human consumption that has encoded using a coding standard such as advanced video coding (AVC or H.264) or HEVC/H.265. The video decoder system300includes multiple stages implemented by different blocks to fully decode an encoded video stream.

To decode an incoming bitstream, the arithmetic decoding and demultiplexing (demux) block305performs arithmetic decoding and demultiplexing and provides the output to the inverse scan and dequantization block310. The inverse scan and dequantization block310performs an inverse scan on and de-quantizes the received input. The spatial compensation block315performs spatial compensation according to spatial prediction modes received from block305. The motion compensation block320receives motion vectors from block305and performs motion compensation between frames that are buffered in block330from block315as well as the output video from the system300. The inverse transform block325performs an inverse transform on the output of block310, which is summed with the output from the spatial and motion compensation blocks315and320to produce decoded frame differences or intra frames. These are de-blocked by the deblocking filter block355to produce the resultant output video.

As discussed above, video decoding is very complex and requires a lot of computational resources. This is even more true of the later stages of the decoder system300such as motion compensation block320and deblocking filter block335, while the early stages, such as the arithmetic decoding and demuxing done by block305, of the decoder system300are relatively less complex from a computational standpoint.

For many CV or AI tasks, embodiments of the present disclosure recognize full pixel domain information is not needed, and systems performing CV or AI processes or tasks can obtain useful information from a partially decoded video stream. For example, the decoded motion vectors from a video stream can be used to identify areas of moving objects and their relative motion. This occurs relatively early in the decoding process and can result in enough information for a CV or AI application to perform a required task. Similarly, transform coefficients can be used (before or after dequantization) to identify areas of important spatial information such as highly textured regions etc. Additionally, according to embodiments of the present disclosure, CV techniques (such as CNNs) are retrained to process such partially decoded information to operate on motion vectors, transform coefficients, and/or decode frame differences/intra predicted frames to extract relevant information to perform a required task without needing to decode the entire video stream.

FIG. 3Billustrates an example of a block diagram for a system350for hierarchical/progressive video decoding for a CV system in accordance with various embodiments of the present disclosure. For example, the decoding system350depicted inFIG. 3Bmay be one embodiment of the processing system200inFIG. 2or any one of the server104or one or more of the electronic devices106-114inFIG. 1. The embodiment of the decoding system350shown inFIG. 3Bis for illustration only. Other embodiments of the decoding system350could be used without departing from the scope of this disclosure.

The decoding system350implements hierarchical/progressive video decoding technique by making CV decisions at one or more stages of the video decoding process. As used herein, a decision, when used with reference to a video stream being decoded for a CV system, means a determination of whether the useful information for the CV system can be identified from the partially decoded video stream at the current stage of the decoding. For example, the partially decoded video stream is decoded enough for the CV system to use for the desired or required task being performed by the CV application or system. In other words, the decoding system350implements a hierarchical/progressive “wake up” methodology to “wake up” the CV system during the decoding process. This can save significant power by relying where earlier parts of the decoding process and analyzing partially decoded stream to determine if the full CV system needs to be engaged for a CV decision. This system is further useful for applications where the CV system is operating for long periods of time but a meaningful decision is expected only in fraction of a time (e.g., premises monitoring using a surveillance camera).

As illustrated, after arithmetic decoding and demux by block305, the MV based CV decision block355makes a determination of whether the CV decision can be made using the motion vectors. If so, the MV based CV decision block355provides the decision to the CV system for the CV system to perform the CV task based on the partially decoded video stream, for example, without any further decoding of the video stream being required. For example, the MV based CV decision block355can use motion vectors to determine whether there is human activity detected in a scene without full decoding of the video stream.

FIG. 4illustrates an example of progressive, compressed-domain video decoding using a motion vector CNN in accordance with various embodiments of the present disclosure. For example, the motion vector based object detection for the CNN may be implemented by the MV based CV decision block355inFIG. 3B. The example of the progressive, compressed-domain video decoding using a motion vector CNN shown inFIG. 4is for illustration only. Other applications of the progressive, compressed-domain video decoding could be used without departing from the scope of this disclosure.

FIG. 4shows an example of motion vector based object detection for a CNN. The input to the CNN is the motion vector of the inter frame and the object bounding box that is detected from the previous intra frame. The CNN is trained to perform regression on the bounding box coordinates in the inter frame and generate a confidence score for the regressed box coordinates. If the confidence score is greater than or equal a predefined threshold, the CV decision block355provides the CV decision to the CV system to perform the CV task based on the partially decoded video stream. For example, the CV system may be monitoring a scene to detect object movement. Using just the motion vector, the CNN can detect the object movement and provide the results to the CV system for the CV system to perform the associated task. If the confidence score is less than the predefined threshold, the transform domain CNN will be woken up, for example, as discussed below with regard to the transform domain CV decision block360.

Returning to the discussion ofFIG. 3B, if the CV decision cannot be made at block355, the transform domain based CV decision block360makes a determination of whether the CV decision can be made using the output from the inverse scan and dequantization block310. For example, the transform domain based CV decision block360can use discrete cosine transform (DCT) coefficients output by block310to determine whether the CV decision can be made. If so, the transform domain based CV decision block360provides the decision to the CV system for the CV system to perform the CV task based on the partially decoded video stream, for example, without any further decoding of the video stream being required. For example, the transform domain CV decision block360can use transform coefficients to perform facial detection in a scene without full decoding of the video stream.

FIG. 5illustrates an example of progressive, compressed-domain video decoding using a transform domain CNN in accordance with various embodiments of the present disclosure. For example, the transform domain object detection for the CNN may be implemented by the transform domain based CV decision block360inFIG. 3B. The example of the progressive, compressed-domain video decoding using a transform domain CNN shown inFIG. 5is for illustration only. Other applications of the progressive, compressed-domain video decoding could be used without departing from the scope of this disclosure.

FIG. 5shows an example of the transform domain CNN for object detection. The input to the CNN is the transform coefficients blocks. The CNN is trained to predict the object bounding boxes and generate a confidence score for its prediction. If the confidence score is greater than or equal a predefined threshold, the transform domain based CV decision block360provides the CV decision to the CV system to perform the CV task based on the partially decoded video stream. For example, the CV system may be monitoring a scene to identify the presence of a particular object within the scene. If the confidence score is less than the predefined threshold, the fully decoded image based CNN will be woken up, for example, as discussed below with regard to the transform domain CV decision block360. If the confidence score is greater than or equal a predefined threshold, the transform domain based CV decision block360provides the CV decision to the CV system to perform the CV task based on the partially decoded video stream. For example, the CV system may be monitoring a scene to detect object movement. Using transform coefficients, the CNN can detect the object movement and provide the results to the CV system for the CV system to perform the associated task. If the confidence score is less than a predefined threshold, the difference domain CNN will be woken up, for example, as discussed below with regard to the difference domain CV decision block365.

Returning to the discussion ofFIG. 3B, if the CV decision cannot be made at block360, the difference domain based CV decision block365makes a determination of whether the CV decision can be made using the output from the inverse transform block325. For example, the difference domain based CV decision block365can use frame differences or intra frames to determine whether the CV decision can be made. If so, the difference domain based CV decision block365provides the decision to the CV system for the CV system to perform the CV task based on the partially decoded video stream, for example, without any further decoding of the video stream being required. On the other hand, if the decoding system350cannot make the CV decision at any of the earlier stages of the decoding process, the decoding system350performs full decoding of the video stream and wakes up the CV system to perform the CV task based on the fully decoded video stream.

While certain decoding decision examples are discussed in the context of CNNs, the present disclosure is not limited thereto. For example, any neural network architectures can be used including recurrent neural networks (RNN), attention models, and/or memory networks. Additionally, human movement and face detection are discussed above are examples and other applications of the progressive compressed domain application of CV and DL systems may be utilized including, for example, without limitation, event/outbreak detection, action recognition, object recognition, object tracking, pixel-level scene depth estimation, pixel-level semantic object segmentation, pixel-level Saliency detection, and simultaneous localization and mapping (SLAM) for robotics.

In some embodiments, the decoder350may process the incoming bitstream dynamically based on a type of application of the CV system for which the decoding is performed. For example, for some applications, useful information may not be obtainable from the partially decoded video stream. In these instances, the decoder350may fully decode the video data without performing progressive decoding on the video stream.

FIG. 6illustrates an example of a block diagram for a system600for hierarchical/progressive video decoding with metadata processing for a CV system in accordance with various embodiments of the present disclosure. For example, the system600depicted inFIG. 6may be one embodiment of the processing system200inFIG. 2or any one of the server104or one or more of the electronic devices106-116inFIG. 1. The embodiment of the system600shown inFIG. 6is for illustration only. Other embodiments of the system600could be used without departing from the scope of this disclosure.

In this embodiment, the decoding system600includes an additional metadata layer to the hierarchical/progressive video decoding system. In this example, the incoming bitstream has additionally encoded metadata which is extracted at block605for the metadata based CV decision block610to make a CV decision based on the metadata. For example, the video streams is augmented to provide different “side information” to aid downstream CV/DL tasks. Such information may include feature points location and descriptions (such as speed up robust features (SURF), scale-invariant feature transform (SIFT), oriented features from accelerated segment test (FAST) and rotated binary robust independent elementary features (BRIEF) (ORB), etc.); localized histograms of gradients; and/or custom CV features such as gradients, corners, lines, object locations or coordinates (such as face, human, hands, etc.).

If the metadata based CV decision block610can make the CV decision, the system600provides the decision to the decision to the CV system for the CV system to perform the CV task based on the partially decoded video stream, for example, without any further decoding of the video stream being required. On the other hand, if the metadata based CV decision block610cannot make the CV decision, the decoding system600continues to perform hierarchical bitstream decoding and CV inference as discussed above with regard to decoding system350.

FIG. 7illustrates an example of a block diagram for a system700for video encoding and decoding for a CV system in accordance with various embodiments of the present disclosure. The embodiment of the system700shown inFIG. 7is for illustration only. Other embodiments of the system700could be used without departing from the scope of this disclosure.

In this embodiment, the system700includes a camera system705which includes a camera715and CV encoder720. For example, the camera system705may be an embodiment of the camera system115inFIG. 1and the CV encoder720may be implemented by the processing system200inFIG. 2. The camera715captures video data for encoding by the CV encoder720. The CV encoder720is an encoder that encodes video data to reduce power by encoding the video data for CV consumption. For example, in some embodiments, the CV720encoder can use transforms that are more suitable for CV/DL tasks that optimize or improve both compression efficiency as well as a DL/CNN detection and recognition efficiency. In another example, the encoder720can include any or all of the metadata in the video stream for CV decoding as discussed above with regard toFIG. 6. In some embodiments, the encoder720can generate a bitstream using markers to denote regions of interest ROIs around possible objects of interests that can enable the downstream CV system710to decode only the relevant part of the video image. The encoded video is sent over a communications link722such as a network connection to the CV system710.

The CV system710is a system for processing video data to perform a CV task or for a CV application. The CV system710includes a hierarchical CV decoder725that decodes the video stream and provides a CV decision for the CV system710as discussed above with regard to decoder systems350or600. Additionally, the CV system710includes an application level control/configuration block730that provides control and configuration for the CV application being performed by the CV system710. For example, the application level control/configuration block730can request the CV encoder720to prioritize encoding of or include a certain type of metadata depending on the need of the CV task (e.g., such as ROI selection for human detection and recognition, selection of CV/DL features, etc.) for the CV system710.

In various embodiments, the CV encoder720performs adaptive video encoding for CV consumption versus human consumption. For example, the CV encoder720can code frames on key events only (e.g., human detected) to reduce bandwidth. In another example, the CV encoder720may encode the video using a customized codec for progressive decoding/CV consumption as disclosed herein. In one example thereof, the CV encoder720can assign more bits to key objects to aid detection (e.g., of a person, car, etc.). In another example, the CV encoder720can add additional resolution for key ROIs, such as by adding a layer with enhanced resolution.

In one example of video surveillance encoding and decoding, most surveillance videos are only reviewed by a human retrospectively when an outbreak or significant event has happened (a “positive”). The majority of the video recordings are never reviewed by a human (“negatives”). In this example, the CV system710is used an object detection or event/outbreak detection with approximately 100% recall rate (recall rate means among the positives, how many of them are detected) and a moderate precision rate (precision rate means among the predicted positives, how many are truly positives). In this example, the CV encoder720encodes each frame with different bitrate depending on a detection score. When the score is high, then a higher bitrate is used (so that the frames can be consumed/reviewed by a human); when the score is low, the scene is most likely a negative and therefore will not need to be reviewed. As the majority of frames in a surveillance video are negatives, such an adaptive encoding scheme can not only reduce communication bandwidth, but also make decoding more efficient.

FIG. 8illustrates a flowchart of a process for decoding video data for a CV system in accordance with various embodiments of the present disclosure. For example, the process depicted inFIG. 8may be performed by the processing system200inFIG. 2; the process may also be implemented by any one of the server104or one or more of the electronic devices106-114inFIG. 1collectively or individually referred to as the system.

The process begins with the system receiving a video stream (step805). For example, in step805, the video to be decoded is encoded for multi-stage decoding and used in an application for a CV system. As part of this step or prior thereto, the system may request from an encoder of the video stream (e.g., encoder720) the inclusion of the metadata for the video stream based on the application for the CV system to try to simplify the decoding.

The system then partially decodes the video stream (step810). For example, in step810, the system partially decodes the video stream by performing a stage of the multi-stage decoding such as discussed above with regard to decoder systems350and600. This step may also include extracting metadata included or encoded with the video stream. For example, in some embodiments, the system may identify one or more markers in the metadata indicating a ROI in one or more frames of the video stream and partially decoding the video stream by identifying the one or more markers for decoding of just the ROI based on the identified markers. In another example, the metadata may indicate that the current portion of the video stream does not contain relevant information for the CV system and does not need to be decoded.

Thereafter, the system determines whether a decision for a CV system can be identified (step815). For example, in step815, the system determines whether the decision can be made based on the partially decoded video stream at the current stage of decoding. In embodiments where CV specific metadata is included with the video stream, the system may determine whether the decision for the CV system can be identified based on the extracted metadata prior to partially decoding the actual video in the video stream. As part of this step, the system may progressively decode the video stream in stages while determining whether the decision for the CV application can be identified after one or more of the decoding stages until identifying that the decision can be made or the video is completely decoded in step825, discussed below, for the determination of whether the decision can be made based on the fully decoded video stream.

If the decision can be identified, the system then generates the decision for the CV system (step820). For example, in step820, the system provides the decision and partially decoded video stream for the CV system to perform desired or needed tasks and stops the decoding of the video stream without needing to fully decode the video stream.

However, if at step815, the decision cannot be identified based on the partially decoded video stream, the system fully decodes the video stream (step825). Thereafter, the system determines whether a decision for a CV system can be identified based on the fully decoded video stream (step830). If the decision can be identified, the system then generates the decision for the CV system (step820). For example, in step820, the system provides the decision and decoded video stream for the CV system to perform desired or needed tasks.

However, if at step830, the decision cannot be identified based on the fully decoded video stream, the system returns to step805to continue to receive and decode the video steam.

FIG. 9illustrates a flowchart of a process for decoding video data for a CV system in accordance with various embodiments of the present disclosure. For example, the process depicted inFIG. 9may be performed by the processing system200inFIG. 2; the process may also be implemented by the camera system115inFIG. 1collectively or individually referred to as the system.

The process begins with the system receiving configuration information from a CV system (step902). For example, in step902, the system may receive configuration information about how to encode the video, what metadata to include with the video, or criteria on whether to encode certain frames of the video at all. Thereafter, the system receives video data from a camera (step905). For example, in step905, the system include a camera such as camera715that generates video for use by a CV system.

The system then encodes a video stream for consumption by a CV system (step905). For example, in step905, the system may receive, from a decoder of the video stream, a request for inclusion of metadata for the video stream based on an application for the CV system prior to encoding of the video stream and include the requested metadata with the encoded video stream. In another example, the system may include metadata with the encoded video stream to indicate whether a decision for the CV system can be identified from the metadata. In another example, the system may detect an event for the CV system and then only encode the video frames that are associated with the detected event as the video stream to reduce bandwidth. In another example, the system may identify objects of interest to the CV system and encode frames including the identified objects to have additional bits encoded for the identified objects. In other examples, the system may include one or more markers indicating a ROI in one or more frames of the video stream.

The system then transmits the encoded video stream (step910). For example, in step910, the system transmits the encoded video stream to a decoder for decoding for the CV system.

AlthoughFIGS. 8 and 9illustrate examples of processes for decoding and encoding video data, respectively, various changes could be made toFIGS. 8 and 9. For example, while shown as a series of steps, various steps in each figure could overlap, occur in parallel, occur in a different order, or occur multiple times. In another example, steps may be omitted or replaced by other steps.

Embodiments of the present disclosure provide for progressive compressed domain application of CV and DL systems. In so doing, various embodiments reduce the complexity and power consumption for video consumption in CV applications.