Systems, methods, and computer program products for load adaptive streaming
First Claim
Patent Images
1. 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.
6 Assignments
0 Petitions
Accused Products
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.
-
Citations
36 Claims
-
1. 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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. 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. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. 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. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36)
-
Specification