System and method for efficiently streaming digital video
AssigneenComputing Inc.
InventorsSergey Kipnis, Mariusz Legowski, Hubert Gburzynski, William Platt, Krzysztof Weiss
Life of this patent
Estimating the term…
Abstract
In a system and method for streaming video information, a video device driver is configured to analyze video frames stored in a frame buffer to identify a video stream. Video frames identified as containing a video stream are excluded from rendering. An encoding format-independent media transport is configured to encode a copy of a video frame containing the video stream according to an encoding format supported by a client device requesting the video stream. The media transport further is configured to transmit the encoded video frame copy to the client device.
Claims19
A method of streaming video information, the method comprising:
- analyzing, using a video device driver, video frames stored in a frame buffer to identify a video stream, wherein said analyzing comprises:
- identifying a region of the video frames being updated;
- identifying a duration of the updating of the video frames;
- determining a size of the region of the video frames,
- wherein the video stream is identified if:
- the region of the video frames is being updated greater than a predetermined number of times per second;
- the duration of updating of the video frames is greater than a predetermined duration;
- the region of the video frames is not a scroll area;
- the region of the video frames is not part of an application determined to not stream video;
- and
- the size of the region of the video frames is greater than a predetermined pixel resolution size;
- excluding a video frame containing the video stream from being rendered by the video device driver;
- encoding a copy of the excluded video frame containing the video stream according to an encoding format supported by a client device requesting the video stream;
- and
- transmitting the encoded video frame in an encoding format-independent transmission channel to the client device.
A system for streaming video information, comprising:
- at least one processor;
- a first memory configured to store video frames;
- a video device driver implemented by the at least one processor and configured to analyze the video frames to identify a video stream and to exclude a video frame having a region containing the video stream, the video device driver comprising:
- a fast updated regions registrator configured to register a second subset of the video frames containing updated regions;
- a fast updated region database configured to store the second subset of the video frames;
- and
- a fast updated region analyzer configured to analyze the stored second subset of the video frames to identify the video frame containing the video stream and configured to analyze the stored second subset of the video frames by determining a region of a predetermined size of the stored second subset of the video frames being updated at a predetermined rate and duration, by determining that the region of the video frames is not a scroll area, and by determining that the region of the video frames is not part of an application determined to not stream video;
- and
- a first encoding format-independent media transport configured to:
- encode a copy of the excluded video frame having the region containing the video stream, the encoding corresponding to an encoding format supported by a client device requesting the video stream;
- and
- transmit the encoded video frame copy to the client device.
A non-transitory computer-readable storage medium storing a set of instructions, that when executed by at least one processor, causes the at least one processor to perform operations comprising:
- analyzing, using a video device driver, video frames stored in a frame buffer to identify a video stream, wherein said analyzing comprises:
- identifying a region of the video frames being updated;
- identifying a duration of the updating of the video frames;
- determining a size of the region of the video frames,
- wherein the video stream is identified if:
- the region of the video frames is being updated greater than a predetermined number of times per second;
- the duration of updating of the video frames is greater than a predetermined duration;
- the region of the video frames is not a scroll area;
- the region of the video frames is not part of an application determined to not stream video;
- and
- the size of the region of the video frames is greater than a predetermined pixel resolution size;
- excluding a video frame containing the video stream from being rendered by the video device driver;
- encoding a copy of the video frame containing the video stream according to an encoding format supported by a client device requesting the video stream;
- and
- transmitting the encoded each video frame in an encoding format-independent transmission channel to the client device.
Dependencies are inferred from the claim text.