# US 11,909,800 B2 · Method, system and computer program product for initiating downspeeding in a videoconferencing session

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

- Number: US 11,909,800 B2
- Document ID: US11909800B2
- Status: Granted
- Kind: B2
- Application number: 17/989,101
- Filed: 2022-11-17
- Published: 2023-05-18
- Granted: 2024-02-20
- Earliest claimed: 2021-11-18
- Assignees: Pexip AS
- Applicants: Pexip AS
- Inventors: Håvard Graff; Tulio Beloqui; Knut Inge Hvidsten
- Web page: https://patentgrep.com/patent/US11909800B2

## CPC

- H04L 47/19: at layers above the network layer (network arrangements for networked applications for scheduling or organising the servicing of application requests H04L67/60)
- H04L 65/762: {at the source (reformatting of additional data in video distribution servers H04N21/2355)}
- H04L 1/1678: {where the control information is for timing, e.g. time stamps}
- H04L 47/263: Rate modification at the source after receiving feedback
- H04L 47/27: Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
- H04L 47/283: in response to processing delays, e.g. caused by jitter or round trip time [RTT]
- H04L 47/35: by embedding flow control information in regular packets, e.g. piggybacking
- H04L 47/36: by determining packet size, e.g. maximum transfer unit [MTU]
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A system and method of downspeeding a media stream transmitted over a communication link from a sender device to a receiving device.

## Claims

### Claim 1

A method of downspeeding a media stream transmitted over a communication link from a sender device to a receiving device, the method comprising the steps of:
mapping for each packet in the media stream a packet identifier, a transmission timestamp and a packet size;
receiving for each packet received at the receiving device a feedback message, the feedback message comprising the packet identifier and an arrival timestamp;
determining a transmission rate for a first sliding window of N transmitted packets by dividing a packet size sum of the N transmitted packets with a time difference between the transmission time stamp of the last of the N transmitted packets and the transmission time stamp of the first of the N transmitted packets;
determining a received rate for the first sliding winding of the N transmitted packets by dividing the packet size sum of the N transmitted packets with a time difference between the arrival time stamp of the last of the N transmitted packets and the arrival time stamp of the first of the N transmitted packets; and
initiating downspeeding of the media stream when for the first sliding window of the N transmitted packets the difference between the transmission rate and the received rate divided by the transmission rate is above a first downspeeding threshold.

### Claim 2 (depends on 1)

The method of claim 1, wherein the method further comprising the steps of
transmitting recovery packets into the media stream, each recovery packet adapted to replace a missing packet of the media stream;
mapping for each recovery packet the packet identifier of the recovery packet and the packet identifier of the packet the recovery packet is adapted to replace;
determining a packet as missing when none of the feedback messages comprises the packet identifier of the packet;
determining a packet as recovered when a feedback message comprises the packet identifier of a recovery packet corresponding to the missing packet; and
determining a packet recovery success rate by dividing a total number of packets determined as recovered within a second sliding window with a total number of packets determined as missing within the second sliding window; and
initiating downspeeding of the media stream when the packet recovery success rate is below a second downspeeding threshold.

### Claim 3 (depends on 2)

The method of claim 2, wherein the method further comprising the step of:
measuring a round trip delay from the receiving device, requesting a recovery packet to the feedback message comprising the packet identifier of the recovery packet, and waiting the at least one round trip delay before determining the packet recovery rate.

### Claim 4 (depends on 2)

The method of claim 2, wherein the second downspeeding threshold is in the range 0.6-1.0, preferably 0.8.

### Claim 5 (depends on 1)

The method of claim 1, wherein the first downspeeding threshold is in the range 0.1-0.4, preferably 0.25.

### Claim 6 (depends on 1)

The method of claim 1, wherein the step of initiating downspeeding of the media stream comprises instructing an encoder to reduce the transmission rate of the media stream.

### Claim 7 (depends on 1)

The method of claim 1, wherein the step of initiating downspeeding of the media stream comprises selecting a media stream having a lower transmission rate than another media stream from an encoder providing a plurality of media streams at different transmission rates.

### Claim 8 (depends on 1)

A computer-readable non-transitory storage medium storing instructions that when executed on a processor performs the method of claim 1.

### Claim 9

A system for downspeeding of a media stream transmitted over a communication link from a sender device to a receiving device, the system comprising:
a sender device comprising a processor configured to:
map, for each packet in the media stream, a packet identifier, a transmission timestamp and a packet size;
receive, for each packet received at the receiving device, a feedback message, the feedback message comprising the packet identifier and an arrival timestamp;
determine a transmission rate for a first sliding window of N transmitted packets by dividing a packet size sum of the N transmitted packets with a time difference between the transmission time stamp of the last of the N transmitted packets and the transmission time stamp of the first of the N transmitted packets;
determine a received rate for the first sliding winding of the N transmitted packets by dividing the packet size sum of the N transmitted packets with a time difference between the arrival time stamp of the last of the N transmitted packets and the arrival time stamp of the first of the N transmitted packets; and
initiate downspeeding of the media stream when for the first sliding window of the N transmitted packets the difference between the transmission rate and the received rate divided by the transmission rate is above a first downspeeding threshold.

### Claim 10 (depends on 9)

The system of claim 9, wherein sender device is further adapted to:
transmitting recovery packets into the media stream, each recovery packet adapted to replace a missing packet of the media stream;
mapping for each recovery packet the packet identifier of the recovery packet and the packet identifier of the packet the recovery packet is adapted to replace;
determining a packet as missing when none of the feedback messages comprises the packet identifier of the packet;
determining a packet as recovered when a feedback message comprises the packet identifier of a recovery packet corresponding to the missing packet; and
determining a packet recovery success rate by dividing a total number of packets determined as recovered within a second sliding window with a total number of packets determined as missing within the second sliding window; and
initiating downspeeding of the media stream when the packet recovery success rate is below a second downspeeding threshold.

### Claim 11 (depends on 10)

The system of claim 10, wherein the sender device is further adapted to: measure a round trip delay from the receiving device, request a recovery packet to the feedback message comprising the packet identifier of the recovery packet, and waiting the at least one round trip delay before determining the packet recovery rate.

### Claim 12 (depends on 10)

The system of claim 10, wherein the second downspeeding threshold is in the range 0.6-1.0, preferably 0.8.

### Claim 13 (depends on 9)

The system of claim 9, wherein the first downspeeding threshold is in the range 0.1-0.4, preferably 0.25.

### Claim 14 (depends on 9)

The system of claim 9, wherein the sender device is further adapted to instruct an encoder to reduce the transmission rate of the media stream.

### Claim 15 (depends on 9)

The system of claim 9, wherein the sender device is further adapted to select a media stream having a lower transmission rate than another media stream from an encoder providing a plurality of media streams at different transmission rates.
