# US 8,752,102 B2 · Intelligent retransmission of data stream segments

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

- Number: US 8,752,102 B2
- Document ID: US8752102B2
- Status: Granted
- Kind: B2
- Application number: 11/969,216
- Filed: 2008-01-03
- Published: 2009-07-09
- Granted: 2014-06-10
- Earliest claimed: 2008-01-03
- Assignees: Microsoft Corporation
- Applicants: Valerian Menn; Nicholas Fang; Gurpratap Virdi; Todd Bowra
- Inventors: Valerian Menn; Nicholas Fang; Gurpratap Virdi; Todd Bowra
- Web page: https://patentgrep.com/patent/US8752102B2

## CPC

- H04N 21/4147: PVR [Personal Video Recorder] (H04N5/76 takes precedence {; arrangements for broadcast with accumulation-type receivers H04H20/40})
- H04L 1/1838: {for semi-reliable protocols, e.g. for less sensitive applications such as streaming video (buffer level management for video bitstream receiver H04N21/44004)}
- H04N 7/163: {by receiver means only}
- H04N 7/173: with two-way working, e.g. subscriber sending a programme selection signal
- H04N 21/4325: {by playing back content from the storage medium (reproduction of recorded television signals H04N5/76; reproduction of recorded television signals H04N9/79)}
- H04N 21/4334: {Recording operations (recording of a television signal H04N5/76; arrangements for recording or accumulating broadcast information or broadcast-related information H04H60/27)}
- H04N 21/43615: {Interfacing a Home Network, e.g. for connecting the client to a plurality of peripherals (home Audio Video Interoperability [HAVI] data switching networks H04L12/2805)}
- H04N 21/43637: {involving a wireless protocol, e.g. Bluetooth®, RF or wireless LAN [IEEE 802.11] (arrangements for wireless networking or broadcasting of information in indoor or near-field type systems H04B10/114)}
- H04N 21/443: OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
- H04N 21/6375: for requesting retransmission {, e.g. of data packets lost or corrupted during transmission from server}(ARQ protocols H04L1/18; implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP] H04L69/16)
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

An intelligent retransmission of data stream segments is disclosed. One embodiment comprises detecting a missing media data segment at a media receiver, assigning a value to the missing media data segment based upon media playback consequences of not utilizing the missing media data segment, comparing the value with a threshold, and requesting retransmission of the missing media data segment from a media server if the value meets a predetermined condition relative to the threshold. In this manner, retransmission is requested when it is determined that retransmission will improve playback performance relative to non-retransmission.

## Claims

### Claim 1

In a computing device, a method of intelligently requesting retransmission of a media data segment in a data stream, the method comprising:
receiving at the computing device a user input setting a user preference that defines a propensity for retransmission of data;
detecting via the computing device a missing media data segment;
assigning a value to the missing media data segment based upon the user preference;
comparing the value with a threshold; and
requesting retransmission of the missing media data segment from a media server if the value meets a predetermined condition relative to the threshold.

### Claim 2 (depends on 1)

The method of claim 1, further comprising detecting a proximity of the missing media data segment in the data stream to a current playback position in the data stream, and not requesting retransmission if the missing media data segment cannot be retrieved before playback.

### Claim 3 (depends on 1)

The method of claim 1, wherein assigning a value to the missing media data segment further comprises determining a type of frame comprising the missing media data segment, wherein the frame is assigned a higher value if it is a key frame than if it is a predictive frame.

### Claim 4 (depends on 1)

The method of claim 1, wherein assigning a value to the missing media data segment further comprises determining how much buffer space is available on a media receiver, and assigning a value based upon the available buffer space.

### Claim 5 (depends on 1)

The method of claim 1, wherein assigning a value to the missing media data segment further comprises determining a network bandwidth and assigning a value based upon the network bandwidth.

### Claim 6 (depends on 1)

The method of claim 1, wherein assigning a value to the missing media data segment further comprises assigning a value based upon whether the missing media data segment is audio data or video data.

### Claim 7 (depends on 1)

The method of claim 1, wherein assigning a value to the missing media data segment further comprises assigning a first value if the missing data segment comprises a low number of data packets compared to a relative importance of the missing data segment in playback quality, and assigning a second value if the missing data segment comprises a high number of data packets compared to the relative importance of the missing data segment in playback quality.

### Claim 8

A computer-readable memory comprising instructions executable by a computing device to enable intelligent retransmission of a media data segment in a data stream of media content, the instructions being executable to perform a method comprising:
receiving at the computing device a user input setting a user preference that defines a propensity for retransmission of data;
detecting at the computing device a missing media data segment at a media receiver, wherein the media data segment comprises key frame data or predictive frame data, and the media data segment was sent over a network from a media server;
assigning a value to the missing media data segment based upon media playback consequences of not utilizing the missing media data segment, wherein the value is based upon a plurality of parameters including a user set the user preference for the data stream and whether the data segment comprises key frame data or predictive frame data;
comparing the value with a threshold; and
requesting retransmission of the missing media data segment from the media server if the value meets a predetermined condition relative to the threshold.

### Claim 9 (depends on 8)

The computer-readable storage medium of claim 8, further comprising instructions for detecting a proximity of the missing media data segment in the data stream to a current playback position in the data stream, and not requesting retransmission if the missing media data segment cannot be retrieved before playback.

### Claim 10 (depends on 8)

The computer-readable storage medium of claim 8, wherein assigning a value to the missing media data segment based upon media playback consequences further comprises determining available buffer space on the media receiver, and assigning a higher value for more available buffer space and a lower value for less available buffer space.

### Claim 11 (depends on 8)

The computer-readable storage medium of claim 8, wherein assigning a value to the missing media data segment based upon media playback consequences further comprises determining a network bandwidth and assigning a value based upon the network bandwidth.

### Claim 12 (depends on 8)

The computer-readable storage medium of claim 8, wherein assigning a value to the missing media data segment based upon media playback consequences further comprises assigning a value based upon whether the missing media data segment is audio data or video data.

### Claim 13 (depends on 8)

The computer-readable storage medium of claim 8, wherein assigning a value to the missing media data segment based upon media playback consequences further comprises assigning a first value if the missing data segment comprises a low number of data packets compared to a relative importance of the missing data segment in playback quality, and assigning a second value if the missing data segment comprises a high number of data packets compared to the relative importance of the missing data segment in playback quality.

### Claim 14

A computing device comprising:
a computer-readable storage medium; and
instructions stored on the computer-readable storage medium, the instructions being executable by the computing device to run a network media receiver that receives media content, the network media receiver comprising:
a network buffer to receive and buffer an encoded media data segment from a media server;
a decoder coupled with the network buffer, the decoder to decode the media data segment for playback; and
a retransmission request module coupled with the network buffer, the retransmission request module being configured to:
receive a user input setting a user preference that defines a propensity for retransmission of data;
detect a missing media data segment;
assign a value to the missing media data segment based upon media playback consequences of not utilizing the missing media data segment, said value based upon a plurality of parameters including the user preference;
compare the value with a threshold;
request retransmission of the missing media data segment from the media server if the value meets a predetermined condition relative to the threshold.

### Claim 15 (depends on 14)

The computing device of claim 14, wherein the retransmission request module is configured to detect a proximity of the missing media data segment in a data stream to a current playback position in the data stream, and to not request retransmission if the missing media data segment cannot be retrieved without degrading media playback.

### Claim 16 (depends on 14)

The computing device of claim 14, wherein the retransmission request module is configured to assign a higher value to a key frame than to a predictive frame.

### Claim 17 (depends on 14)

The computing device of claim 14, wherein the retransmission request module is configured to assign a higher value to the missing media data segment if there is more buffer space available in the network buffer.

### Claim 18 (depends on 14)

The computing device of claim 14, further comprising a network statistics module coupled with the retransmission request module, wherein the retransmission request module receives network performance statistics from the network statistics module and the retransmission request module is configured to assign a higher value to the missing media data segment as network performance improves.

### Claim 19 (depends on 14)

The computing device of claim 14, wherein the retransmission request module is configured to assign a first value for audio data and a second value for video data.

### Claim 20 (depends on 14)

The computing device of claim 14, wherein assigning a value to the missing media data segment based upon media playback consequences further comprises assigning a first value if the missing data segment comprises a low number of data packets compared to a relative importance of the missing data segment in playback quality, and assigning a second value if the missing data segment comprises a high number of data packets compared to the relative importance of the missing data segment in playback quality.
