Reduction of latency in video distribution networks using adaptive bit rates
First Claim
1. A method of controlling playback latency associated with transmission of source audiovisual data through an unmanaged, buffered data network, the method comprising:
- at a server system coupled to a client device through the data network;
encoding a first portion of the source audiovisual data into a first portion of transmission audiovisual data at a first encoding bitrate;
buffering the first portion of transmission audiovisual data;
transmitting the first portion of transmission audiovisual data to the client device through the data network;
calculating a delay cost function based on a delay associated with the buffering and with network delay, raised to a power, scaled by a scaling factor, and added to a minimum cost to transmit data;
altering an encoding bitrate from the first encoding bitrate to a second encoding bitrate based on the calculated delay cost function;
encoding a second portion of the source audiovisual data into a second portion of transmission audiovisual data at the second encoding bitrate;
buffering the second portion of transmission audiovisual data; and
transmitting the second portion of transmission audiovisual data to the client device through the data network.
2 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods are provided for reducing and controlling playback latency in an unmanaged, buffered data network. A delay cost function is determined, the function representing the effect of playback latency on end user experience. An encoder transmits audiovisual data through the network to a client device. Network latency is measured, and the delay cost function is evaluated to establish an encoding bitrate for the encoder. The encoding of the audiovisual data is altered in response to dynamic network conditions, thereby controlling end-to-end playback latency of the system, which is represented by the playout length of data buffered between the encoder and the client device.
721 Citations
28 Claims
-
1. A method of controlling playback latency associated with transmission of source audiovisual data through an unmanaged, buffered data network, the method comprising:
- at a server system coupled to a client device through the data network;
encoding a first portion of the source audiovisual data into a first portion of transmission audiovisual data at a first encoding bitrate;
buffering the first portion of transmission audiovisual data;
transmitting the first portion of transmission audiovisual data to the client device through the data network;calculating a delay cost function based on a delay associated with the buffering and with network delay, raised to a power, scaled by a scaling factor, and added to a minimum cost to transmit data; altering an encoding bitrate from the first encoding bitrate to a second encoding bitrate based on the calculated delay cost function;
encoding a second portion of the source audiovisual data into a second portion of transmission audiovisual data at the second encoding bitrate;
buffering the second portion of transmission audiovisual data; and
transmitting the second portion of transmission audiovisual data to the client device through the data network. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
- at a server system coupled to a client device through the data network;
-
13. A non-transitory computer-usable data storage medium on which is stored computer program code for instructing a server system, that comprises at least one computing processor, to execute a method of controlling playback latency associated with transmission of source audiovisual data through an unmanaged, buffered data network to a client device, the program code comprising:
-
program code for encoding a first portion of the source audiovisual data into a first portion of transmission audiovisual data at a first encoding bitrate; program code for buffering the first portion of transmission audiovisual data;
program code for transmitting the first portion of transmission audiovisual data to the client device through the data network;program code for calculating a delay cost function based on a delay associated with the buffering and with network delay, raised to a power, scaled by a scaling factor, and added to a minimum cost to transmit data a network latency associated with the data; program code for altering an encoding bitrate from the first encoding bitrate to a second encoding bitrate based on the calculated delay cost function; program code for encoding a second portion of the source audiovisual data into a second portion of transmission audiovisual data at the second encoding bitrate; program code for buffering the second portion of transmission audiovisual data; and program code for transmitting the second portion of transmission audiovisual data to the client device through the data network. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. A server system for controlling playback latency associated with transmission of source audiovisual data through an unmanaged, buffered data network to a client device, the server system comprising:
- an interactive application, executing on one or more computing devices, the interactive application being controlled by commands received from the client device to generate source audiovisual data;
an encoder for encoding the source audiovisual data into transmission audiovisual data according to an encoding bitrate;
a transmission buffer for buffering the transmission audiovisual data;a transmitter for transmitting the transmission audio data through the data network; and a delay cost module for calculating a delay cost function based on a delay associated with the buffering and with network delay, raised to a power, scaled by a scaling factor, and added to a minimum cost to transmit data, the delay cost module calculating the encoding bitrate based on the delay cost function and providing the encoding bitrate to the encoder. - View Dependent Claims (26, 27, 28)
- an interactive application, executing on one or more computing devices, the interactive application being controlled by commands received from the client device to generate source audiovisual data;
Specification