# US 8,543,720 B2 · Dynamic bit rate scaling

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,543,720 B2
- Document ID: US8543720B2
- Status: Granted
- Kind: B2
- Application number: 12/328,139
- Filed: 2008-12-04
- Published: 2009-06-11
- Granted: 2013-09-24
- Earliest claimed: 2007-12-05
- Assignees: Google Inc.
- Applicants: Nicholas Wormley; Ryan Brase; Justin F. Chapweske
- Inventors: Nicholas Wormley; Ryan Brase; Justin F. Chapweske
- Web page: https://patentgrep.com/patent/US8543720B2

## CPC

- H04N 21/43072: {of multiple content streams on the same device}
- H04L 47/10: Flow control; Congestion control
- H04L 47/25: with rate being modified by the source upon detecting a change of network conditions
- H04N 21/23424: {involving splicing one content stream with another content stream, e.g. for inserting or substituting an advertisement}
- H04N 21/23439: {for generating different versions}
- H04N 21/44016: {involving splicing one content stream with another content stream, e.g. for substituting a video clip}
- H04N 21/6125: {involving transmission via Internet (transmission by internet of broadcast information H04H60/82)}
- H04L 2012/5682: {Threshold; Watermark}
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

The invention provides for a download agent executing on a computing device to dynamically select between media files with different media quality for delivery of media content provided by a media content provider. The download agent may select between different media files with similar content but different quality based on a playback rate of the media file, the resolution of the media file, or the encoding scheme of the media file. The download agent may seamlessly transition from one media file to another media file at key frames to avoid any motion artifacts and to avoid requiring a user to restart the media file.

## Claims

### Claim 1

A method comprising:
determining, by a device including a processor, a playback status of a first version of a media content being concurrently downloaded and played on a media player, wherein the playback status indicates whether an overall bandwidth utilization of a connection employed for the downloading meets a threshold associated with a desired overall bandwidth utilization indicated in a data transfer policy, wherein the desired overall bandwidth utilization is based upon a monetary rate for data transfer on the connection at a time period associated with the downloading of the first version of the media content, and wherein the connection has associated a plurality of time periods with respective monetary rates for data transfer;
in response to the overall bandwidth utilization not meeting the threshold associated with the desired overall bandwidth utilization, selecting a second version of the media content to download that is anticipated to cause the overall bandwidth utilization to meet the threshold associated with the desired overall bandwidth utilization; and
identifying a frame of the second version of the media content at which to transition playing from the first version of the media content to the second version of the media content .

### Claim 2 (depends on 1)

The method of claim 1, further comprising downloading the second version of the media content beginning at the identified frame.

### Claim 3 (depends on 1)

The method of claim 1, wherein the desired overall bandwidth utilization is further based upon a class associated with the media content from a plurality of classes based upon at least one factor of the media content.

### Claim 4 (depends on 3)

The method of claim 3, wherein the at least one factor includes at least one of subject matter, popularity, commercial significance, user rating, creation date, author, artist or playback length.

### Claim 5 (depends on 1)

The method of claim 1, wherein the desired overall bandwidth utilization is further based upon a class of user associated with the media player.

### Claim 6 (depends on 1)

The method of claim 1, wherein the first version of the media content is encoded for a first playback rate, wherein the second version of the media content is encoded for a second playback rate that is higher than the first playback rate.

### Claim 7 (depends on 1)

The method of claim 1, wherein the first version of the media content is encoded for a first playback rate, wherein the second version of the media content is encoded for a second playback rate that is lower than the first playback rate.

### Claim 8 (depends on 1)

The method of claim 1, wherein the identified frame is a key frame.

### Claim 9

A system, comprising:
a processor; and
a memory communicatively coupled to the processor, the memory having stored therein computer-executable instructions, comprising:
a playback controller configured to determine a playback status a first version of a media content being concurrently downloaded and played on a media player, wherein the playback status indicates whether an overall bandwidth utilization of a connection employed for the downloading meets a threshold associated with a desired overall bandwidth utilization indicated in a data transfer policy, wherein the desired overall bandwidth utilization is based upon a monetary rate for data transfer on the connection at a time period associated with the downloading of the first version of the media content, and wherein the connection has associated a plurality of time periods with respective monetary rates for data transfer;
a source manager configured to, in response to the overall bandwidth utilization not meeting the threshold associated with the desired overall bandwidth utilization, select a second version of the media content to download that is anticipated to cause the overall bandwidth utilization to meet the threshold associated with the desired overall bandwidth utilization; and
a stream agent configured to identify a frame of the second version of the media content at which to transition playing from the first version of the media content to the second version of the media content.

### Claim 10 (depends on 9)

The system of claim 9, wherein the stream agent is further configured to download the second version of the media content beginning at the identified frame.

### Claim 11 (depends on 9)

The system of claim 9, wherein the desired overall bandwidth utilization is further based upon a class associated with the media content from a plurality of classes based upon at least one factor of the media content.

### Claim 12 (depends on 11)

The system of claim 11, wherein the at least one factor includes at least one of subject matter, popularity, commercial significance, user rating, creation date, author, artist or playback length.

### Claim 13 (depends on 9)

The system of claim 9, wherein the first version of the media content is encoded for a first playback rate, wherein the second version of the media content is encoded for a second playback rate that is higher than the first playback rate.

### Claim 14 (depends on 9)

The system of claim 9, wherein the first version of the media content is encoded for a first playback rate, wherein the second version of the media content is encoded for a second playback rate that is lower than the first playback rate.

### Claim 15 (depends on 9)

The system of claim 9, wherein the desired overall bandwidth utilization is based upon a class of user associated with the media player.

### Claim 16

A non-transitory computer-readable medium having instructions stored thereon that, in response to execution, cause at least one device including a processor to perform operations comprising:
determining a playback status of a first version of a media content being concurrently downloaded and played on a media player, wherein the playback status indicates whether an overall bandwidth utilization of a connection employed for the downloading meets a threshold associated with a desired overall bandwidth utilization indicated in a data transfer policy, wherein the desired overall bandwidth utilization is based upon a monetary rate for data transfer on the connection at a time period associated with the downloading of the first version of the media content, and wherein the connection has associated a plurality of time periods with respective monetary rates for data transfer;
in response to overall bandwidth utilization not meeting the threshold associated with the desired overall bandwidth utilization, selecting a second version of the media content to download that is anticipated to cause the overall bandwidth utilization to meet the threshold associated with the desired overall bandwidth utilization; and
identifying a frame of the second version of the media content at which to transition playing from the first version of the media content to the second version of the media content.

### Claim 17 (depends on 16)

The non-transitory computer-readable medium of claim 16, the operations further comprising downloading the second version of the media content beginning at the identified frame.

### Claim 18 (depends on 16)

The non-transitory computer-readable medium of claim 16, wherein the desired overall bandwidth utilization is based upon a class associated with the media content from a plurality of classes based upon at least one factor of the media content.

### Claim 19 (depends on 18)

The non-transitory computer-readable medium of claim 18, wherein the at least one factor includes at least one of subject matter, popularity, commercial significance, user rating, creation date, author, artist or playback length.

### Claim 20 (depends on 16)

The non-transitory computer-readable medium of claim 16, wherein the desired overall bandwidth utilization is based upon a class of user associated with the media player.
