Systems, methods, and computer program products for load adaptive streaming
AssigneeSonic IP, Inc.
InventorsAbhishek Shivadas, Auke S. Van Der Schaar
Life of this patent
Estimating the term…
Abstract
Methods, systems, and computer program products that allow for the load adaptive downloading, processing, and rendering of video by a video processing client, where the downloading is adaptive to the processing load of a computing system on which a video processing client operates.
Claims36
A playback device configured to perform load and rate adaptive streaming, comprising:
- a processor configured via a load and rate adaptive streaming application to request segments of video from among a plurality of bitstreams, where the plurality of bitstreams are encoded at different decode levels in which resolution and bitrate vary between different decode levels;
- wherein the load and rate adaptive streaming application further configures the processor to:
- download and buffer a segment of video from a first bitstream at an initial decode level, where the segment of video comprises at least a plurality of frames of encoded video that are buffered in a coded picture buffer within the playback device;
- perform video processing to decode the plurality of frames of encoded video in the coded picture buffer in order to generate a plurality of frames of decoded video;
- store the plurality of frames of decoded video in a frame queue for display;
- accumulate measurements in a sample collection buffer, wherein the accumulated measurements comprise (i) a frame delivery time for each frame of decoded video in the frame queue and (ii) a number of dropped frames over a predefined period;
- when the number of dropped frames over the predefined period exceeds a frame drop threshold, flush a portion of the frames of encoded video buffered in the coded picture buffer;
- and
- when the accumulated measurements of the frame delivery times for the frames of the decoded video in the frame queue exceed a first threshold, download another segment of video from a second bitstream having a lower decode level than the decode level of the first bitstream.
A non-transitory machine readable medium storing a load and rate adaptive streaming application, the load and rate adaptive streaming application comprising sets of instructions for:
- requesting segments of video from among a plurality of bitstreams, where the plurality of bitstreams are encoded at different decode levels in which resolution and bitrate vary between different decode levels;
- downloading and buffering a segment of video from a first bitstream at an initial decode level, where the segment of video comprises at least a plurality of frames of encoded video that are buffered in a coded picture buffer within the playback device;
- performing video processing to decode the plurality of frames of encoded video in the coded picture buffer in order to generate a plurality of frames of decoded video;
- storing the plurality of frames of decoded video in a frame queue for display;
- accumulating measurements in a sample collection buffer, wherein the accumulated measurements comprise (i) a frame delivery time for each frame of decoded video in the frame queue and (ii) a number of dropped frames over a predefined period;
- when the number of dropped frames over the predefined period exceeds a frame drop threshold, flushing a portion of the frames of encoded video buffered in the coded picture buffer;
- and
- when the accumulated measurements of the frame delivery times for the frames of the decoded video in the frame queue exceed a first threshold, downloading another segment of video from a second bitstream at a lower decode level having a lower resolution and bitrate than the resolution and bitrate of the initial decode level of the first bitstream.
A method for performing a load and rate adaptive streaming process, the method performed by a playback device, the method comprising:
- requesting segments of video from among a plurality of bitstreams using a playback device, where the plurality of bitstreams are encoded at different decode levels in which resolution and bitrate vary between different decode levels;
- downloading and buffering a segment of video from a first bitstream at an initial decode level using the playback device, where the segment of video comprises at least a plurality of frames of encoded video that are buffered in a coded picture buffer within the playback device;
- performing video processing using the playback device to decode the plurality of frames of encoded video in the coded picture buffer in order to generate a plurality of frames of decoded video;
- storing the plurality of frames of decoded video in a frame queue for display using the playback device;
- accumulating measurements in a sample collection buffer using the playback device, wherein the accumulated measurements comprise (i) a frame delivery time for each frame of decoded video in the frame queue and (ii) a number of dropped frames over a predefined period;
- when the number of dropped frames over the predefined period exceeds a frame drop threshold, flushing a portion of the frames of encoded video buffered in the coded picture buffer using the playback device;
- and
- when the accumulated measurements of the frame delivery times for the frames of the decoded video in the frame queue exceed a first threshold, downloading another segment of video from a second bitstream at a lower decode level than the decode level of the first bitstream using the playback device.
Dependencies are inferred from the claim text.