Streaming Methods and Systems
First Claim
1. A video streaming system comprising:
- a processor;
a memory; and
a rate controller maintained in the memory and executed on the processor, the rate controller comprising;
a state machine for implementing perceptual rate adaptation based on mode transitions from a first mode to a second mode, and state transitions from a first state to a second state;
a virtual buffer module communicatively coupled with, andproviding feedback to, the state machine for describing dynamic buffer filling and draining processes; and
a bandwidth allocation module communicatively coupled with the state machine for allocating bandwidth to frames based on a current state and a current mode of the state machine.
2 Assignments
0 Petitions
Accused Products
Abstract
Various embodiments provide methods and systems for streaming data that can facilitate streaming during bandwidth fluctuations in a manner that can enhance the user experience. In one aspect, a forward-shifting technique is utilized to buffer data that is to be streamed, e.g. an enhancement layer in a FGS stream. Various techniques can drop layers actively when bandwidth is constant. The saved bandwidth can then be used to pre-stream enhancement layer portions. In another aspect, a content-aware decision can be made as to how to drop enhancement layers when bandwidth decreases. During periods of decreasing bandwidth, if a video segment does not contain important content, the enhancement layers will be dropped to keep the forward-shifting of the enhancement layer unchanged. If the enhancement layer does contain important content, it will be transmitted later when bandwidth increases.
-
Citations
20 Claims
-
1. A video streaming system comprising:
-
a processor; a memory; and a rate controller maintained in the memory and executed on the processor, the rate controller comprising; a state machine for implementing perceptual rate adaptation based on mode transitions from a first mode to a second mode, and state transitions from a first state to a second state; a virtual buffer module communicatively coupled with, and providing feedback to, the state machine for describing dynamic buffer filling and draining processes; and a bandwidth allocation module communicatively coupled with the state machine for allocating bandwidth to frames based on a current state and a current mode of the state machine. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A method for providing a state machine for implementing perceptual video stream rate adaptation through mode and state transitions, wherein state machine modes define protected priority levels associated with frames of the video stream that are to be protected, the method comprising:
- Transitioning the state machine from one mode to another mode when bandwidth changes to a second non-fluctuating level,
the state machine maintaining a first state wherein the available bandwidth is non-fluctuating and in which an attempt is made to maintain a window size associated with a sending frame rate, the state machine maintaining a second state wherein the available bandwidth is insufficient and in which the window size is decreased and a client buffer is used to compensate for lack of additional bandwidth, and the state machine maintaining a third state wherein bandwidth recovers from the second state and in which the window size is increased by actively dropping unprotected frames; providing feedback the to the state machine for describing dynamical buffer filling and draining processes from a virtual buffer module communicatively coupled with the state machine; the virtual buffer module facilitating; an input interface facilitating receiving the sending frame rate associated with the window size, an output interface facilitating providing constant frame consumption rate data, and a feedback interface providing data associated with a number of buffered frames after a given time slot; and providing a bandwidth allocation module communicatively coupled with the state machine for allocating bandwidth to frames given the state and mode of the state machine. - View Dependent Claims (18)
- Transitioning the state machine from one mode to another mode when bandwidth changes to a second non-fluctuating level,
-
19. A computer readable storage media encoded with instructions that when executed by a processor execute a method, the method comprising:
-
a state machine maintaining a first state wherein the available bandwidth is non-fluctuating and in which an attempt is made to maintain a window size associated with a sending frame rate, the state machine maintaining a second state wherein the available bandwidth is insufficient and in which the window size is decreased and a client buffer is used to compensate for lack of additional bandwidth, and the state machine maintaining a third state wherein bandwidth recovers from the second state and in which the window size is increased by actively dropping unprotected frames; and providing a bandwidth allocation module communicatively coupled with the state machine for allocating bandwidth to frames given the state and mode of the state machine. - View Dependent Claims (20)
-
Specification