Multicast distribution of incrementally enhanced content
First Claim
1. A client device comprising:
- a memory that stores instructions;
a processor that executes the instructions to perform operations comprising;
obtaining multicast information for a content item, the multicast information including information about joining a multicast session for a base stream and additional multicast sessions for available incremental streams;
determining a currently used bandwidth for the client device, wherein the currently used bandwidth is determined based on first bandwidth used by a voice-over-internet protocol stream being received by the client device and second bandwidth used by a network application utilized by the client device;
determining an available bandwidth, wherein the available bandwidth is determined based on a difference between an average total bandwidth and the currently used bandwidth;
determining a number of streams that can be received by the client device based on the available bandwidth, wherein the number of streams is selected from a set of streams including the base stream and the available incremental streams;
determining a number of multicast sessions including the multicast session and the additional multicast sessions that the client device is able to receive, wherein the number of multicast sessions is determined based on the available bandwidth and a maximum displayable resolution of a display of the client device;
receiving, at the client device, information necessary to join all of the multicast sessions even when the client device is configured only to join a subset of multicast sessions corresponding to a set of allowable streams;
joining a set of initial multicast sessions based on the available bandwidth, the number of multicast sessions, the information necessary to join all of the multicast sessions, and the number of streams, wherein the set of initial multicast sessions includes the multicast session for the base stream and at least one of the additional multicast sessions for the incremental streams, wherein the set of initial multicast sessions is further based on a set of allowable incremental streams;
determining the set of allowable incremental streams based on a service level of the client device, wherein the service level includes the maximum displayable resolution of the display of the client device, wherein the set of allowable incremental streams corresponds to a subset of incremental streams necessary for the maximum displayable resolution;
monitoring a network condition;
performing actions based on the network condition, the actions comprising joining another of the additional multicast sessions and leaving one of the initial multicast sessions, wherein the actions are performed if the currently used bandwidth exceeds a threshold; and
transmitting a notification that the content item is unavailable when the available bandwidth is not sufficient to receive the base stream.
1 Assignment
0 Petitions
Accused Products
Abstract
A system for providing multicast distribution of incrementally enhanced content is disclosed. The system may include encoding content by utilizing an incremental layer encoding algorithm to generate a low resolution base stream for content and one or more incremental streams for the content. The incremental streams may each have higher resolutions than the base stream. The system may provide the base streams and one or more of the incremental streams to a client device based on available bandwidth and based on the capabilities of the client device. Each of the streams of content may be provided to the client device by having the client device connect to one or more multicast sessions. As the streams are accessed by the client device, the client device may combine and decode the base streams, along with any accessed incremental streams, to obtain the content at an available resolution.
-
Citations
12 Claims
-
1. A client device comprising:
-
a memory that stores instructions; a processor that executes the instructions to perform operations comprising; obtaining multicast information for a content item, the multicast information including information about joining a multicast session for a base stream and additional multicast sessions for available incremental streams; determining a currently used bandwidth for the client device, wherein the currently used bandwidth is determined based on first bandwidth used by a voice-over-internet protocol stream being received by the client device and second bandwidth used by a network application utilized by the client device; determining an available bandwidth, wherein the available bandwidth is determined based on a difference between an average total bandwidth and the currently used bandwidth; determining a number of streams that can be received by the client device based on the available bandwidth, wherein the number of streams is selected from a set of streams including the base stream and the available incremental streams; determining a number of multicast sessions including the multicast session and the additional multicast sessions that the client device is able to receive, wherein the number of multicast sessions is determined based on the available bandwidth and a maximum displayable resolution of a display of the client device; receiving, at the client device, information necessary to join all of the multicast sessions even when the client device is configured only to join a subset of multicast sessions corresponding to a set of allowable streams; joining a set of initial multicast sessions based on the available bandwidth, the number of multicast sessions, the information necessary to join all of the multicast sessions, and the number of streams, wherein the set of initial multicast sessions includes the multicast session for the base stream and at least one of the additional multicast sessions for the incremental streams, wherein the set of initial multicast sessions is further based on a set of allowable incremental streams; determining the set of allowable incremental streams based on a service level of the client device, wherein the service level includes the maximum displayable resolution of the display of the client device, wherein the set of allowable incremental streams corresponds to a subset of incremental streams necessary for the maximum displayable resolution; monitoring a network condition; performing actions based on the network condition, the actions comprising joining another of the additional multicast sessions and leaving one of the initial multicast sessions, wherein the actions are performed if the currently used bandwidth exceeds a threshold; and transmitting a notification that the content item is unavailable when the available bandwidth is not sufficient to receive the base stream. - View Dependent Claims (2, 3, 4)
-
-
5. A computer readable device comprising a plurality of instructions, which when loaded and executed by a processor, cause the processor to perform operations comprising:
-
obtaining multicast information for a content item, the multicast information including information about joining a multicast session for a base stream and additional multicast sessions for available incremental streams; determining a currently used bandwidth for a client device, wherein the currently used bandwidth is determined based on first bandwidth used by a voice-over-internet protocol stream being received by the client device and second bandwidth used by a network application utilized by the client device; determining an available bandwidth, wherein the available bandwidth is determined based on a difference between an average total bandwidth and the currently used bandwidth; determining a number of streams that can be received by the client device based on the available bandwidth, wherein the number of streams is selected from a set of streams including the base stream and the available incremental streams; determining a number of multicast sessions including the multicast session and the additional multicast sessions that the client device is able to receive, wherein the number of multicast sessions is determined based on the available bandwidth and a maximum displayable resolution of a display of the client device; receiving, at the client device, information necessary to join all of the multicast sessions even when the client device is configured only to join a subset of multicast sessions corresponding to a set of allowable streams; joining a set of initial multicast sessions based on the available bandwidth, the number of multicast sessions, the information necessary to join all of the multicast sessions, and the number of streams, wherein the set of initial multicast sessions includes the multicast session for the base stream and at least one of the multicast sessions for the incremental streams, wherein the set of initial multicast sessions is further based on a set of allowable incremental streams; determining the set of allowable incremental streams based on a service level of the client device, wherein the service level includes the maximum displayable resolution of the display of the client device, wherein the set of allowable incremental streams corresponds to a subset of incremental streams necessary for the maximum displayable resolution; monitoring a network condition; performing actions based on a change in the network condition, the actions comprising joining another of the additional multicast sessions and leaving one of the initial multicast sessions, wherein the actions are performed if the currently used bandwidth exceeds a threshold; and transmitting a notification that the content item is unavailable when the available bandwidth is not sufficient to receive the base stream. - View Dependent Claims (6, 7, 8, 9)
-
-
10. A server comprising:
-
a memory that stores instructions; a processor that executes the instructions to perform operations comprising; receiving a request for content from a device; determining a service level for the device; determining available incremental streams based on the service level, the available incremental streams being a subset of incremental streams of an incremental layer encoded content, the incremental layer encoded content including a base stream and the incremental streams; and providing multicast information to the device, the multicast information including information about joining a multicast session for the base stream and additional multicast sessions for the available incremental streams, wherein a number of streams that can be received by the device are determined based on an available bandwidth associated with the device, wherein the number of streams is selected from a set of streams including the base stream and the available incremental streams, wherein a number of multicast sessions including the multicast session and the additional multicast sessions that the device is able to receive is determined, wherein the number of multicast sessions is determined based on the available bandwidth and a maximum displayable resolution of a display of the device, wherein information necessary to join all of the multicast sessions even when the device is configured only to join a subset of multicast sessions corresponding to a set of allowable streams is determined, wherein the device is joined to the multicast sessions based on the available bandwidth associated with the device, the number of multicast sessions, the information necessary to join all of the multicast sessions, and the number of streams, wherein a currently used bandwidth for the device is determined based on first bandwidth used by a voice-over-internet protocol stream being received by the device and second bandwidth used by a network application utilized by the device; wherein the available bandwidth is determined based on a difference between an average total bandwidth and the currently used bandwidth, wherein the set of initial multicast sessions is based on a set of allowable incremental streams, wherein the set of allowable incremental streams is based on the service level of the device, wherein the service level includes the maximum displayable resolution of the display of the device, wherein the set of allowable incremental streams corresponds to a subset of incremental streams necessary for the maximum displayable resolution, wherein actions are performed based on a network condition, wherein the actions comprise joining an additional multicast session and leaving one of the initial multicast sessions, wherein the actions are performed if the currently used bandwidth exceeds a threshold; and wherein a notification that the content is unavailable is transmitted when the available bandwidth is not sufficient for receiving the base stream. - View Dependent Claims (11, 12)
-
Specification