Today, consumers can view video content on a large variety of display devices. These display devices typically support a small number of resolutions and formats. Accordingly, a content distribution network must be able to deliver the content in multiple formats for multiple devices and network bandwidths. Storing the content in every conceivable format is not efficient, neither is providing live transcoding resources to be able to transcode formats on the fly at all times.
Optimization of the transcoding process can be complex. Transcoders may be located in the network core or at the network edge. Transcoding may be performed each time content is viewed, or transcoding may be performed once (for each format) with the content cached in network or edge storage for use at a future time.
Deciding where and when to transcode typically involves an analysis of multiple factors. Considerations may include, for example, the cost and availability of network, edge and end user transcoders, the cost and availability of core, edge and access bandwidth, the viewing frequency of a particular content title and format, the cost and availability of caching storage, the end device capabilities (including display, processing, power, access bandwidth, etc.), and the predicted end user behavior (such as the likelihood that the user will watch this show to completion or change networks or devices soon, etc.)
Aspects of the present invention provide a system and method for optimizing delivery of a content item from a content distribution network to a display device. In one embodiment, the content distribution network includes transcoding resources, each transcoding resource converting the content item from a first format to a second format. The method receives a request at a computing device to deliver the content item to the display device. The method obtains metadata that describes the content item, a predicted behavior for a user when accessing the content item on the display device, and metadata that describes the display device. The method determines a preferred technique for transcoding the content item, and a state of the content distribution network. The method selects, from the transcoding resources, an optimized transcoding resource based on an evaluation of the metadata that describes the content item, the preferred technique for transcoding the content item, the state of the content distribution network, the predicted behavior for the user, and the metadata that describes the display device. The method reserves the selected transcoding resource, and delivers the content item to the display device on a media stream that utilizes the selected transcoding resource.
In another embodiment, the system uses distributed computing devices to optimize delivery of a content item from a content distribution network to a display device. The distributed computing devices in the system include request handlers, optimizers, and workflow engines. Each request handler receives a request to deliver the content item to the display device. Each optimizer obtains metadata that describes the content item, and metadata that describes the display device. Each optimizer also receives a preferred technique for transcoding the content item from a rules and policy engine in the distributed computers, a state of the content distribution network from a network admission control in the distributed computing devices, and a predicted behavior for a user when accessing the content item on the display device from a user behavior predictor in the distributed computers. Each optimizer selects, from the transcoding resources, an optimized transcoding resource based on an evaluation of the metadata that describes the content item, the preferred technique for transcoding the content item, the state of the content distribution network, the predicted behavior for the user, and the metadata that describes the display device. Each workflow engine reserves the selected transcoding resource, and delivers the content item to the display device on a media stream that utilizes the selected transcoding resource.
The content distribution network 120 shown in
In one embodiment shown in
In another embodiment shown in
In another embodiment shown in
In another embodiment shown in
The content distribution network 120 shown in
The processor 205 performs the disclosed methods by executing the sequences of operational instructions that comprise each computer program resident in, or operative on, the memory 220. The reader should understand that the memory 220 may include operating system, administrative, and database programs that support the programs disclosed in this application. In one embodiment, the configuration of the memory 220 of the content distribution network 120 includes a content request handler 222, optimizer 224, rules and policy engine 226, network admission control 228, media resource manager/broker 230, user behavior predictor 232, and workflow engine 234. The content request handler 222, optimizer 224, rules and policy engine 226, network admission control 228, media resource manager/broker 230, user behavior predictor 232, and workflow engine 234 perform the method of the present invention disclosed in detail in
The optimizer 224 obtains metadata that describes the content item 110 (step 310). In one embodiment, the optimizer 224 accesses a metadata repository to obtain current metadata for the content item 110 (i.e., information that describes the content item 110). The current metadata for the content item 110 includes a description of the content item 110 (e.g. running-time (i.e., duration or length), available formats or encodings, and display formats such as resolution and aspect ratios), policies that specify preferred and permitted transcoding techniques, and display device characteristics. The metadata repository also may return information about the popularity and topical nature of the content. In another embodiment, the content item 110 and the request for the content item 110 include tags that provide the current metadata for the content item 110 to the optimizer 224.
The optimizer 224 determines a preferred technique for transcoding the content item 110 (step 315). In one embodiment, the optimizer 224 accesses a rules and policy engine 226 to determine the preferred technique for transcoding the content item 110. This helps the optimizer 224 to determine whether the content item 110 should be cached because it is a top-rated show and will likely be viewed many times on all types of devices, or should not be cached because it is content of interest to only a small number of users; for example, that the content item 110 is not often viewed on devices with these display characteristics.
In addition, it is contemplated that in some embodiments, content owners may restrict the availability of content to a specific set of formats. For example, a content owner may elect not to allow content or advertising created in high-definition (HD) to be delivered to a mobile phone with a 2-inch screen, or the content owner may restrict viewing in certain locations.
The optimizer 224 determines a state of the content distribution network 120 (step 320). In one embodiment, the optimizer 224 accesses network admission control 228 and media resource manager/broker 230 to determine the state of the content distribution network 120. In one embodiment, to determine the state the optimizer 224 analyzes the content distribution network 120 to determine traffic congestion (i.e., whether certain nodes are congested and traffic should be routed around these locations) and bandwidth availability (i.e., whether certain nodes are available and available bandwidth for those nodes) for the content distribution network 120, and an estimated cost for using the transcoding resources (such as xcode A 111, xcode B 112, xcode C 113, xcode D 114, and xcode E 115) to transcoded the content item.
The optimizer 224 obtains a predicted behavior for a user of the content item 110 when accessing the content item 110 on the display device 130 (step 325). In one embodiment, the optimizer 224 access user behavior predictor 232 to obtain the predicted behavior for the user of the content item 110 when accessing the content item 110 on the display device 130. The user behavior predictor 232 receives input such as usage history, content type (sports, movie, etc), codec (MPEG—2, MPEG—4, 3GPP, etc), resolution (HD-1080p, SDTV, QCIF, etc.), available bandwidth, expected popularity, quality of service (QOS), etc. This will attempt to predict the user's behavior while viewing the content item 110. If the user is likely to watch only a segment of the content item 110, the entire content item 110 will not be made available to cache. If the user is likely to change devices while watching the content item 110, there may be a need to change the transcoding resource. The user behavior predictor 232 makes its predictions based on the user's profile (i.e., information the user has provided), the user's past behavior, and the past behavior of other users (such as typical behavior for all users, or typical behavior for similar users).
The optimizer 224 obtains metadata that describes the display device 130 (i.e., information that describes the display device 130) that will be used to display (or play) the content item 110. In one embodiment, the optimizer 224 accesses a metadata repository to obtain current metadata for the display device 130. In another embodiment, the optimizer 224 receives the current metadata from the display device 130. This information includes device capabilities such as screen resolution, available computing resources (such as the ability to process certain codecs, current location, battery life, power required to run different codecs), availability of access bandwidth including information about the access network being used and other networks that are available. In another embodiment, the content item 110 and the request for the content item 110 include tags that provide the information that describes the display device 130 to the optimizer 224.
The optimizer 224 selects from the transcoding resources an optimized transcoding resource based on an evaluation of the collected and determined information (step 335). In one embodiment, the collected and determined information includes the metadata that describes the content item, the preferred technique for transcoding the content item, the state of the content distribution network, the predicted behavior for the user, and the metadata that describes the display device. The optimizer 224 communicates an optimized transcoding technique and the selected resource to the workflow engine 234 that reserves the selected transcoding resource (using the network admission control 228 and the media server resource manager/broker 230) (step 340). The workflow engine 234 then delivers the content item 110 to the display device 130 on a media stream that utilizes the selected transcoding resource (step 345).
While the workflow engine 234 is delivering/playing the media stream, the optimizer 224 may continually or periodically reevaluate the selection of the optimized transcoding resource during delivery (step 350). If the reevaluating determines that a change to the selected optimized transcoding resource is not necessary (step 355, “N” branch), the optimizer 224 will continue to periodically reevaluate the selection of the selected optimized transcoding resource (step 350). If the reevaluating determines that a change to the selected optimized transcoding resource is necessary (step 355, “Y” branch), the optimizer 224 will invoke the workflow engine 234 to terminate the delivery of the content item 110 on the media stream that utilizes the previously optimized transcoding resource (step 360), reserves a new optimized transcoding resource (using the network admission control 228 and the media server resource manager/broker 230) (step 365), and delivers the content item 110 to the display device 130 on a new media stream that utilizes the new optimized transcoding resource (step 345). This will involve communicating with the display device 130 to initiate a seamless transition where the user has little awareness of the change. This can be performed as long as the jitter buffer in the device is already adequately large (or can be enlarged on instructions from the workflow engine). In one embodiment, the optimizer 224 may monitor messages communicated by the display device 130 to the media server 230 explicitly requesting an adjustment of the encoding scheme; the optimizer 224 subsequently accounts for these requests in its selection or reevaluation of the optimized transcoding resources. The optimizer 224 may receive such explicit requests in operating scenarios, such as the following: A client is downloading a 4 Mbps video over a link, and the bandwidth on this link drops to 3 Mbps. As a result, the decoder will run out of video frames, which would cause the video to stutter. Accordingly, the client issues a request for 2 Mbps video so that pausing playback is not required.
The following illustrative use cases refer to a network for a content distribution network 120 that involves the following types of entities, whose overall flow is from “Content Creators” to “Content Aggregators”, to “Regional Gateways” to “Home (Local) Gateways”, and to “Personal Devices”.
Illustrative Use Case 1
TV Show “XYZ Smiletime” is popular in Schaumburg. The broadcast version of “XYZ Smiletime” was a big hit in Chicagoland (a metropolitan area that includes Schaumburg). During or after the initial broadcast of this show, the Content Aggregator (e.g., cable network operator), tags the content with a popularity index. As this content is distributed/propagated throughout the network in this geographic area, the Regional Gateways automatically transcode and distribute to a wide variety of Personal Device formats used within the Home (Local) Gateways, and cache this content based on the anticipated demand. Alternatively, based on the observed (on anticipated) popularity of a given content item, content tags are inserted that instruct downstream entities to (a) transcode to a specific set of formats; (b) transcode to the N most popular formats; (c) transcode to the M most space-efficient formats; or (d) transcode to the P most bandwidth-efficient formats, if they can. Based on collected information about network configuration and resource loading, the tags target the transcoding to (a) a specific resource, if available; (b) the lowest-level entity, i.e., a Personal Device; (c) the highest-level entity; or combinations of these.
Illustrative Use Case 2
Content Best Viewed in MPEG-4. Content Producers can insert tags into content stating that it is best viewed in MPEG-4. Alternatively, actual viewer statistics and/or inventories provided by Home (Local) Gateways may indicate the greatest number of viewers prefer the MPEG-4 version of content. Subsequently, the content transcoding optimization directs the transcoding to the resource, along the distribution pathway, which has the best MPEG-4 encoder. The optimization also considers the transcoding workload assigned to the various resources, and prioritizes the transcoding according to the quality of the MPEG-4 result and the number of likely viewers beneath it in the content distribution network (tree).
Illustrative Use Case 3
Ready to Go When You Are. The Local (Home) Gateways collect statistics about the mobility and content usage patterns of users, and identify typical user profiles. Regional Gateways aggregate these statistics, and identify typical user profiles. For example: When Bob watches a show on cable TV, he typically wants to watch related content, and re-runs of the same content, on his Motorola Video Phone as he commutes to work by train. Content is transcoded in anticipation of using the content of Personal Devices in the future. The transcoding is done at the highest level in the distribution network at which there emerges a significant “typical user profile”. If the “user profile” is unique to a given Local (Home) Gateway, then the transcoding is done with the resources available within the home.
Although the disclosed embodiments describe a fully functioning method for optimizing delivery of a content item from a content distribution network to a display device, the reader should understand that other equivalent embodiments exist. Since numerous modifications and variations will occur to those reviewing this disclosure, the method for optimizing delivery of a content item from a content distribution network to a display device is not limited to the exact construction and operation illustrated and disclosed. Accordingly, this disclosure intends all suitable modifications and equivalents to fall within the scope of the claims.
This application for letters patent relates to and claims the benefit of U.S. Provisional Patent Application Ser. No. 61/081,207 (Attorney's docket number BCS04891), titled “SYSTEM AND METHOD FOR BALANCING STORAGE AND TRANSCODING RESOURCES”, and filed on Jul. 16, 2008; the disclosure of which this application hereby incorporates by reference. This application for letters patent also relates to and claims the benefit of U.S. Provisional Patent Application Ser. No. 61/081,282 (Attorney's docket number BCS04891), titled “DEMAND-DRIVEN OPTIMIZATION OF TRANSCODING POINT”, and filed on Jul. 16, 2008; the disclosure of which this application hereby incorporates by reference.
Number | Date | Country | |
---|---|---|---|
61081207 | Jul 2008 | US | |
61081282 | Jul 2008 | US |