Multicast distribution of incrementally enhanced content

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.

FIELD OF THE DISCLOSURE

The present disclosure generally relates to communications networks, and more particularly relates to multicast distribution of incrementally enhanced content.

BACKGROUND

A television service provider can transmit a television signal, such as through an Internet Protocol Television (IPTV) network or a cable network, to a user. The television service provider can offer the user a variety of different content and services. For example, the television service provider can supply users with real-time television programs that are typically available for the users to watch only at a specific date and time. The user may record the real-time television programs, such as with a digital video recorder (DVR), so that the programs can be viewed at a time of the user's choosing.

The television service provider can also offer the users on-demand content that is available for an extended amount of time. The on-demand content can allow a user to view a program at a time of their choosing and can be provided to the user upon request. On-demand content can be streamed from a server across the network for display on a TV in the home, or on-demand content can be downloaded to a storage device in the home and then displayed on a TV or streamed over the home network to a TV.

DETAILED DESCRIPTION OF THE DRAWINGS

FIG. 1shows an IPTV system100including a client facing tier102, an application tier104, an acquisition tier106, and an operations and management tier108. Each tier102,104,106, and108is coupled to one or both of a private network110and a public network112. For example, the client-facing tier102can be coupled to the private network110, while the application tier104can be coupled to the private network110and to the public network112such as the Internet. The acquisition tier106can also be coupled to the private network110and to the public network112. Moreover, the operations and management tier108can be coupled to the public network112.

The various tiers102,104,106, and108communicate with each other via the private network110and the public network112. For instance, the client-facing tier102can communicate with the application tier104and the acquisition tier106via the private network110. The application tier104can also communicate with the acquisition tier106via the private network110. Further, the application tier104can communicate with the acquisition tier106and the operations and management tier108via the public network112. Moreover, the acquisition tier106can communicate with the operations and management tier108via the public network112. In a particular embodiment, elements of the application tier104can communicate directly with the client-facing tier102.

The client-facing tier102can communicate with user equipment via a private access network166, such as an Internet Protocol Television (IPTV) network. In an illustrative embodiment, residential gateways (RGs) such as a first RG114and a second RG122can be coupled to the private access network166. The client-facing tier102can communicate with a first representative set-top box device116via the first RG114and with a second representative set-top box device124via the second RG122. The client-facing tier102can communicate with a large number of set-top boxes over a wide geographic area, such as a regional area, a metropolitan area, a viewing area, or any other suitable geographic area that can be supported by networking the client-facing tier102to numerous set-top box devices. In one embodiment, the client-facing tier102can be coupled to the RGs114and122via fiber optic cables. Alternatively, the RGs114and122can be digital subscriber line (DSL) RGs that are coupled to one or more network nodes via twisted pairs, and the client-facing tier102can be coupled to the network nodes via fiber-optic cables. Each set-top box device116and124can process data received from the private access network166via an IPTV software platform such as Microsoft® TV IPTV Edition.

The first set-top box device116can be coupled to a first display device118, such as a first television monitor, and the second set-top box device124can be coupled to a second display device126, such as a second television monitor. Moreover, the first set-top box device116can communicate with a first remote control120, and the second set-top box device124can communicate with a second remote control128. In an exemplary, non-limiting embodiment, each set-top box device116and124can receive data or video from the client-facing tier102via the private access network166and render or display the data or video at the display device118or126to which it is coupled. The set-top box devices116and124thus may include tuners that receive and decode television programming information for transmission to the display devices118and126. Further, the set-top box devices116and124can include a set-top box processor170and a set-top box memory device172that is accessible to the set-top box processor. In a particular embodiment, the set-top box devices116and124can also communicate commands received from the remote controls120and128back to the client-facing tier102via the private access network166.

In an illustrative embodiment, the client-facing tier102can include a client-facing tier (CFT) switch130that manages communication between the client-facing tier102and the private access network166and between the client-facing tier102and the private network110. As shown, the CFT switch130is coupled to one or more data servers132that store data transmitted in response to user requests, such as video-on-demand material. The CFT switch130can also be coupled to a terminal server134that provides terminal devices, such as a game application server and other devices with a common connection point to the private network110. In a particular embodiment, the CFT switch130can also be coupled to a video-on-demand (VOD) server136.

The application tier104can communicate with both the private network110and the public network112. In this embodiment, the application tier104can include a first application tier (APP) switch138and a second APP switch140. In a particular embodiment, the first APP switch138can be coupled to the second APP switch140. The first APP switch138can be coupled to an application server142and to an operation systems and support/billing systems and support (OSS/BSS) gateway144. The application server142provides applications to the set-top box devices116and124via the private access network166, so the set-top box devices116and124can provide functions such as display, messaging, processing of IPTV data and VOD material. In a particular embodiment, the OSS/BSS gateway144includes OSS data, as well as BSS data.

The second APP switch140can be coupled to a domain controller146that provides web access, for example, to users via the public network112. The second APP switch140can be coupled to a subscriber and system store148that includes account information, such as account information that is associated with users who access the system100via the private network110or the public network112. In a particular embodiment, the application tier104can also include a client gateway150that communicates data directly to the client-facing tier102. In this embodiment, the client gateway150can be coupled directly to the CFT switch130. The client gateway150can provide user access to the private network110and the tiers coupled thereto.

In a particular embodiment, the set-top box devices116and124can access the system via the private access network166using information received from the client gateway150. The private access network166provides security for the private network110. User devices can access the client gateway150via the private access network166, and the client gateway150can allow such devices to access the private network110once the devices are authenticated or verified. Similarly, the client gateway150can prevent unauthorized devices, such as hacker computers or stolen set-top box devices, from accessing the private network110by denying access to these devices beyond the private access network166.

For example, when the set-top box device116accesses the system100via the private access network166, the client gateway150can verify subscriber information by communicating with the subscriber and system store148via the private network110, the first APP switch138and the second APP switch140. Further, the client gateway150can verify billing information and status by communicating with the OSS/BSS gateway144via the private network110and the first APP switch138. The OSS/BSS gateway144can transmit a query across the first APP switch138, to the second APP switch140, and the second APP switch140can communicate the query across the public network112to the OSS/BSS server164. After the client gateway150confirms subscriber and/or billing information, the client gateway150can allow the first set-top box device116access to IPTV content and VOD content. If the client gateway150cannot verify subscriber information for the first set-top box device116, such as because it is connected to a different twisted pair, the client gateway150can deny transmissions to and from the first set-top box device116beyond the private access network166.

The acquisition tier106includes an acquisition tier (AQT) switch152that communicates with the private network110. The AQT switch152can also communicate with the operations and management tier108via the public network112. In a particular embodiment, the AQT switch152can be coupled to a live acquisition server154that receives television content, for example, from a broadcast service156. Further, the AQT switch can be coupled to a video-on-demand importer server158that stores television content received at the acquisition tier106and communicate the stored content to the client-facing tier102via the private network110.

The operations and management tier108can include an operations and management tier (OMT) switch160that conducts communication between the operations and management tier108and the public network112. In the illustrated embodiment, the OMT switch160is coupled to a TV2 server162. Additionally, the OMT switch160can be coupled to an OSS/BSS server164and to a simple network management protocol (SNMP) monitor170that monitors network devices. In a particular embodiment, the OMT switch160can communicate with the AQT switch152via the public network112.

In a particular embodiment during operation of the IPTV system, the live acquisition server154can acquire television content from the broadcast service156. The live acquisition server154in turn can transmit the television content to the AQT switch152and the AQT switch can transmit the television content to the CFT switch130via the private network110. Further, the television content can be encoded at the D-servers132, and the CFT switch130can communicate the television content to the RGs114and122via the private access network166. The set-top box devices116and124can receive the television content from the RGs114and122, decode the television content, and transmit the content to the display devices118and126according to commands from the remote control devices120and128.

Additionally, at the acquisition tier106, the VOD importer server158can receive content from one or more VOD sources outside the IPTV system100, such as movie studios and programmers of non-live content. The VOD importer server158can transmit the VOD content to the AQT switch152, and the AQT switch152in turn can communicate the material to the CFT switch130via the private network110. The VOD content can be stored at one or more servers, such as the VOD server136.

When a user issues a request for VOD content to the set-top box device116or124, the request can be transmitted over the private access network166to the VOD server136via the CFT switch130. Upon receiving such a request, the VOD server136can retrieve requested VOD content and transmit the content to the set-top box device116or124across the private access network166via the CFT switch130. In an illustrative embodiment, the live acquisition server154can transmit the television content to the AQT switch152, and the AQT switch152in turn can transmit the television content to the OMT switch160via the public network112. In this embodiment, the OMT switch160can transmit the television content to the TV2 server162for display to users accessing the user interface at the TV2 server. For example, a user can access the TV2 server162using a personal computer (PC)168coupled to the public network112.

The domain controller146communicates with the public network112via the second APP switch140. Additionally, the domain controller146can communicate via the public network112with the PC168. For example, the domain controller146can display a web portal via the public network112and allow users to access the web portal using the PC168. Further, in an illustrative embodiment, the domain controller146can communicate with at least one wireless network access point178over a data network176. In this embodiment, each wireless network access point178can communicate with user wireless devices such as a cellular telephone184.

In a particular embodiment, the set-top box devices can include a set-top box computer program174that is embedded within the set-top box memory device172. The set-top box computer program174can contain instructions to receive and execute at least one user television viewing preference that a user has entered by accessing an Internet user account via the domain controller146. For example, the user can use the PC168to access a web portal maintained by the domain controller146via the Internet. The domain controller146can query the subscriber and system store148via the private network110for account information associated with the user. In a particular embodiment, the account information can associate the user's Internet account with the second set-top box device124. For instance, in an illustrative embodiment, the account information can relate the user's account to the second set-top box device124by associating the user account with an IP address of the second set-top box device, with data relating to one or more twisted pairs connected with the second set-top box device, with data related to one or more fiber optic cables connected with the second set-top box device, with an alphanumeric identifier of the second set-top box device, with any other data that is suitable for associating second set-top box device with a user account, or with any combination of these.

FIG. 2shows a multicast tree200for distributing digital content through a geographically dispersed network, such as the Internet. Multicast tree200can include a server202and client devices204,206,208,210,212,214,216, and218. Server202and client devices204,206,208,210,212,214,216, and218can communicate through a network of distribution points220,224,226,228, and230. The distribution points220,224,226,228, and230may be routers. Alternatively, the distribution points220,224,226,228, and230may be nodes of an overlay network. For example, communications from server202can travel through distribution points220,224, and226to client device208while communications from server202can travel through distribution points220and230to client216. It will be appreciated that multicast tree200may be a logical overlay of a mesh network that, for example, may have a direct connection from distribution point230to228, and also, for example, may have a direct connection from distribution point226to230. These distribution points may be multicast-enabled routers. The distribution points may have the ability to cache content not only for immediate forwarding but also for later retransmission.

Server202can use Internet Protocol (IP) multicast or any other multicast protocol to substantially simultaneously distribute digital content to the client devices204,206,208,210,212,214,216, and218. The digital content can be divided into multiple segments or data packets that may be, but are not necessarily IP packets, Ethernet frames, or similar lower layer packets. Using a multicast protocol, each such segment or data packet can move over each link of the network only once. The distribution points220,224,226,228, and230can create copies, or otherwise forward incoming data on one port to multiple outbound ports, when the paths to the destinations split. For example, server202can send a multicast data packet to distribution point220. Distribution point220can send a copy of the data packet to each of client204, distribution point224, and distribution point230. Similarly, distribution point230can send, forward, or route a copy of the segment, data packet, or individual low layer packets to each of client devices216and218, and distribution point224can send a copy of the data packet to each of distribution points226and228. Further, distribution point226can send a copy of the data packet to each of client devices206and208, and distribution point228can send a copy of the data packet to each of client devices210,212, and214. In other embodiments, the network underlying multicast tree200may be a shared medium, such as a bus or ring, with multicast occurring at a low network layer via common physical components and a common media access structure.

Generally, the distribution points construct or join the multicast tree200when client devices join a multicast group, and the server202may not have information about each member of the multicast group. Specifically, client devices can notify the network that they are interested in receiving data packets sent to the multicast group, such as by Internet Group Management Protocol. The server202can send a message addressed to the multicast group and each distribution point can replicate the data packet for each system of the multicast group.

FIG. 3illustrates an exemplary system300for delivery of content302. The content302can be video content, audio content, or any combination thereof. The content can include broadcast content, on-demand content, or any combination thereof. The content can include a series of frames at a maximum resolution, represented by the bars306. The content can be encoded by an encoder304into content streams308,310,312, and314. The encoder can use an incremental layer encoding algorithm to generate multiple lower bandwidth streams that can be added together to obtain the content in various resolutions depending on the number of streams that are combined. Streams308,310,312, and314can include a base stream308and a plurality of incremental streams310,312, and314. The incremental streams310,312, and314can be added to the base stream308to provide a higher resolution stream, as illustrated by blocks B, 1, 2, and 3 of bars316.

Streams308,310,312, and314can be delivered to the network318in multicast sessions320,322,324, and326. Multicast session320can deliver the base stream, multicast session322can deliver the first incremental stream, multicast session324can deliver the second incremental stream, and multicast session326can deliver the third incremental stream.

Client devices328,330, and332can each receive one or more of the multicast streams to obtain the content. The number of multicast sessions received by each of client devices328,330, and332can depend on the available bandwidth for the client device, the maximum resolution displayable by the client device, the resolution that has been subscribed to or purchased, or any combination thereof.

For example, client device328may be restricted from receiving the third incremental stream based on the subscribed resolution. That is, client device328may be subscribed to a standard definition television package and may be restricted from receiving high-definition content. Moreover, client device328may have an initial available bandwidth sufficient for only two of the multicast sessions. As such, client device328can initially receive multicast sessions320and322. At time point334, additional bandwidth may become available for client device328to begin to receive multicast session324to obtain the content302at a higher resolution than was previously displayed.

In another example, client device330may be limited to displaying a resolution provided by the base stream, and therefore may be limited to receiving only the base stream. For example, client device330may be a mobile device with a limited resolution display.

In yet another example, client device332may be able to receive the content at the maximum resolution, and may initially join multicast sessions320,322,324, and326. However, at time point336, network conditions may limit the amount of available bandwidth for client device332. For example, a rate of dropped packets or a network latency may exceed a threshold, or other applications may require a portion of the network bandwidth available to client device332. As such, client device332may leave multicast session326and only receive the base stream and the first and second incremental streams. Thus, client device332may provide a lower resolution display of the content after time point336.

FIG. 4illustrates a method for multicast distribution of incrementally enhanced content. At402, the server receives content, such as audio content, video content, or any combination thereof. The content can be broadcast content, on-demand content, or any combination thereof. At404, the server can encode the content using an incremental layer encoding algorithm. The incremental layer encoding algorithm can generate a low resolution base stream and multiple incremental streams. The incremental streams can encode additionally information such that when combined with the base stream, the combination of the base stream and the incremental streams can provide higher resolution content that provided by the base stream alone.

For example, the base stream can provide a low resolution stream suitable for playback on a portable device, such as a resolution of 480×320 pixels. Additionally, a first incremental stream, when combined with the base stream, can provide a standard definition television stream, such as a resolution of 720 by 480 pixels, while a second incremental stream, when combined with the base stream and the first incremental stream, can provide a high definition television stream, such as a 720 p (approximately 1280×720 pixels) video stream. Further, a third incremental stream, when combined with the other streams can provide a 1080 p (approximately 1920×1080 pixels) video stream.

At406, the server can establish multiple concurrent multicast sessions to provide the content streams. Each multicast session can provide one of the base stream or incremental streams to client devices joined to the multicast session. The client devices may receive information about joining the multicast sessions and can select one or more of the multicast sessions based on network conditions and other factors.

At408, a client device can determine an initial available bandwidth for receiving the content. For example, the client device can track an average total bandwidth and determine the bandwidth currently in use by other network applications, such as other content streams, use of the Internet, voice-over-IP streams, and the like. The initial available bandwidth can be determined from the difference between the average total bandwidth and the currently used bandwidth.

At410, the client device can join a subset of the multicast sessions provided by the server to deliver the content. Specifically, the client device can send a request for the content and can receive information for joining the multicast sessions. Additionally, the client device can determine the number of streams that can be received within the initially available bandwidth. The client device can then join the multicast sessions to receive the base stream and, optionally, one or more incremental streams. If the initially available bandwidth is not sufficient to receive the base stream, the client device can notify the user that the content is unavailable.

In an embodiment, the client device may be limited to the number of available incremental streams. For example, a client device subscribed to standard definition content may be restricted from accessing incremental streams that can provide high definition content, but can have access to all incremental streams necessary to provide the maximum resolution standard definition content. Similarly, for purchases of standard definition content, client devices may be restricted from accessing the incremental streams necessary to provide the content in high definition. In another example, a client device may be a device with a limited resolution, such as a mobile device. The number of available incremental streams may be limited based on the screen resolution of the device. The restriction can be implemented by the server providing the client device with only the information necessary to receive the accessible streams and withholding information for joining the multicast sessions to receive the prohibited stream. Alternatively, the restriction can be implemented by the client device. For example, the client device may receive the information necessary to join all of the multicast sessions for the content, but may be configured to join only the multicast sessions for the allowable streams.

At412, the client device can combine and decode the base stream and the optional incremental streams to obtain the content at a first available resolution. In an embodiment, the first available resolution can be less than the resolution of the device or the maximum allowable resolution, such as based on the purchased or subscribed content, due to limitations in the available bandwidth.

At414, the client device can monitor a network condition, such as a network latency, a number of dropped packets, a currently used bandwidth, or any combination thereof. At416, the client device can determine if there is insufficient bandwidth. At418, when the client device determines there is insufficient bandwidth, such as when the number of dropped packets, network latency, or currently used bandwidth exceed a threshold, the client device can leave one of the multicast sessions. For example the client device can leave the multicast session providing the highest incremental stream.

Alternatively, at420, when there is not insufficient bandwidth, such as when the network latency or the number of dropped packets is below a threshold, the client device can determine if there is additional available bandwidth. At422, when there is additional available bandwidth, such as when the currently used bandwidth, the network latency, and the number of dropped packets are below a threshold, the client system can join an additional multicast session to receive an additional incremental stream. The additional incremental stream can be used by the client device to provide higher resolution content than was previously received. Thus, the client device can dynamically change the resolution of the content based on the current network conditions. In an embodiment, the client device can only join an additional multicast session when an additional multicast session is available such as when the client device is currently receiving content below an allowable resolution. Alternatively, returning to420, when additional bandwidth is not available, the client device can continue to monitor the network condition at414.

FIG. 5shows an illustrative embodiment of a general computer system500. The computer system500can include a set of instructions that can be executed to cause the computer system to perform any one or more of the methods or computer based functions disclosed herein. The computer system500may operate as a standalone device or may be connected, such as by using a network, to other computer systems or peripheral devices. Examples of the general computer system can include set-top box124, server202, distribution point220, client system210, and the like.

The computer system500may include a processor502, such as a central processing unit (CPU), a graphics processing unit (GPU), or both. Moreover, the computer system500can include a main memory504and a static memory506that can communicate with each other via a bus508. As shown, the computer system500may further include a video display unit510such as a liquid crystal display (LCD), an organic light emitting diode (OLED), a flat panel display, a solid-state display, or a cathode ray tube (CRT). Additionally, the computer system500may include an input device512such as a keyboard, and a cursor control device514such as a mouse. Alternatively, input device512and cursor control device514can be combined in a touchpad or touch sensitive screen. The computer system500can also include a disk drive unit516, a signal generation device518such as a speaker or remote control, and a network interface device520to communicate with a network526. In a particular embodiment, the disk drive unit516may include a computer-readable medium522in which one or more sets of instructions524, such as software, can be embedded. Further, the instructions524may embody one or more of the methods or logic as described herein. In a particular embodiment, the instructions524may reside completely, or at least partially, within the main memory504, the static memory506, and/or within the processor502during execution by the computer system500. The main memory504and the processor502also may include computer-readable media.

The above disclosed subject matter is to be considered illustrative, and not restrictive, and the appended claims are intended to cover all such modifications, enhancements, and other embodiments which fall within the true spirit and scope of the present disclosed subject matter. Thus, to the maximum extent allowed by law, the scope of the present disclosed subject matter is to be determined by the broadest permissible interpretation of the following claims and their equivalents, and shall not be restricted or limited by the foregoing detailed description.