Resource allocation in multi-stream IP network for optimized quality of service
First Claim
1. A method for transmitting a mixed media data stream in packets, including audio and video objects, between a sender and a receiver through a connection over a network, the method comprising:
- monitoring, at the receiver, transmission characteristics of the connection between the server and the receiver;
estimating available bandwidth at the sender based upon the transmission characteristics of the connection monitored at the receiver;
allocating a global buffer for the mixed media data stream to be transmitted from the sender to the receiver as a function of the estimated available bandwidth at the sender;
pre-encoding a portion of each Video Object Plane (VOP) in the global buffer with respect to a quantization parameter (QP) of the VOP;
encoding the VOP in the global buffer based on the QP;
updating a rate distortion model based upon the QP and packet loss rate;
performing a frame skipping function after the VOP encoding; and
transmitting from the sender to the receiver the encoded video object plane in the global buffer at a regulated sender transmission rate from the sender as a function of the estimated available bandwidth at the sender.
2 Assignments
0 Petitions
Accused Products
Abstract
A resource allocation of multiple compressed AV streams delivered over the Internet is disclosed that achieves end-to-end optimal quality through a multimedia streaming TCP-friendly transport (MSTFP) protocol that adaptively estimates the network bandwidth while smoothing the sending rate. Resources allocated dynamically according to a media encoding distortion and network degradation algorithm. A scheme is also disclosed for dynamically estimating the available network bandwidth for streaming of objects, such as MPEG-4 multiple video objects, in conjunction with the MSTFP protocol. The scheme can account for packet-loss rates to minimize end-to-end distortion for media delivery.
171 Citations
34 Claims
-
1. A method for transmitting a mixed media data stream in packets, including audio and video objects, between a sender and a receiver through a connection over a network, the method comprising:
-
monitoring, at the receiver, transmission characteristics of the connection between the server and the receiver;
estimating available bandwidth at the sender based upon the transmission characteristics of the connection monitored at the receiver;
allocating a global buffer for the mixed media data stream to be transmitted from the sender to the receiver as a function of the estimated available bandwidth at the sender;
pre-encoding a portion of each Video Object Plane (VOP) in the global buffer with respect to a quantization parameter (QP) of the VOP;
encoding the VOP in the global buffer based on the QP;
updating a rate distortion model based upon the QP and packet loss rate;
performing a frame skipping function after the VOP encoding; and
transmitting from the sender to the receiver the encoded video object plane in the global buffer at a regulated sender transmission rate from the sender as a function of the estimated available bandwidth at the sender. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A method for transmitting a mixed media data stream in packets, including audio and multiple video objects (MVOs), between a sender and a receiver through a connection over a network, the method comprising:
-
monitoring transmission characteristics of one or more encoded video object planes through the connection between the sender and the receiver;
estimating, from the transmission characteristics, an available bandwidth (RT) at the sender;
allocating, as a function of the RT, a portion of the mixed media data stream to a global buffer;
encoding a video object plane from the global buffer based upon a rate distortion function that accounts for packet loss rate between sender and receiver;
updating the rate distortion function based upon results of the encoded video object plane and upon a memory containing results of one or more previously encoded video object planes;
after the encoding the MVOs in the video object plane, performing a frame skipping function; and
transmitting, at the estimated available bandwidth, the encoded video object plane from the sender to the receiver. - View Dependent Claims (15, 16, 17, 18)
-
-
19. A method for transmitting a mixed media data stream including multiple video objects (MVOs) between a sender and a receiver through a connection over a packet switched network, the method comprising:
- transmitting from the sender a sender packet of data to the receiver, the sender packet including a sender header that includes;
a packet sequence number;
a timestamp indicating the time when the sender packet was sent (ST1); and
the size of the sender packet (PacketSize);
transmitting from the receiver a receiver packet of data to the sender, the receiver packet including a receiver header that includes;
the time interval that the sender packet spent in the receiver side (Δ
RT);
the timestamp of the sender packet sent from the sender (ST1);
an estimate, calculated by the receiver, of a packet-loss rate; and
the rate at which data is received at the receiver;
estimating a round trip time of the sender packet from the sender to the receiver (RTT) based on ST1 and Δ
RT;
estimating a time out interval (TO) before which the sender should retransmit to the receiver a sender packet of data that has not been received by the receiver;
estimating a probability that a packet of data will be lost (PL);
estimating the present available network bandwidth at which the receiver can receive data from the sender (rcvrate) as a function of the PacketSize, the RTT, the PL, and the TO;
deriving the present sending rate of data from the sender to the receiver ({overscore (currate)});
setting an updated sending rate of data from the sender to the receiver (currate), wherein;
if rcvrate is greater than {overscore (currate)}, then deriving currate as a function currate, PacketSize, and RTT; and
if rcvrate is not greater than {overscore (currate)}, then setting currate to be less than rcvrate. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)
- transmitting from the sender a sender packet of data to the receiver, the sender packet including a sender header that includes;
-
33. One or more computer-readable media, comprising stored thereon:
-
a first set of elements to describe a server in communication through a connection of a packet switched network to a client;
a second set of elements to describe the transmission of a mixed media data stream, including audio and multiple video objects (MVOs), from the server to the client through a connection over a packet switched network; and
a code segment that, when executed;
monitors transmission characteristics of the connection between server and receiver;
estimates available bandwidth at the sender based upon the monitored transmission characteristics of the connection;
allocates a global buffer for the mixed media data stream to be transmitted stream from the sender to the receiver as a function of the estimated available bandwidth at the sender;
pre-encodes a portion of each Video Object Plane (VOP) in the global buffer with respect to a quantization parameter (QP) of the VOP;
encodes the VOP in the global buffer based on the QP;
updates a rate distortion model based upon the QP and packet loss rate;
performs a frame skipping function after the VOP encoding; and
transmits from the sender to the receiver the encoded video object plane in the global buffer at a regulated sender transmission rate from the sender as a function of the estimated available bandwidth at the sender.
-
-
34. One or more computer-readable media, comprising stored thereon:
-
a first set of elements to describe a server in communication through a connection of a packet switched network to a client;
a second set of elements to describe the transmission of a mixed media data stream, including audio and multiple video objects (MVOs), from the server to the client through a connection over a packet switched network; and
a code segment that, when executed;
monitors transmission characteristics of one or more encoded video object planes through the connection between the sender and the receiver;
estimates, from the transmission characteristics, an available bandwidth (RT) at the sender;
allocates, as a function of the RT, a portion of the mixed media data stream to a global buffer;
encodes a video object pane from the global buffer based upon a rate distortion function that accounts for packet loss rate between sender and receiver;
updates the rate distortion function based upon results of the encoded video object plane and upon a memory containing results of one or more previously encoded video object panes;
after the encoding the MVOs in the video object plane, performs a frame skipping function; and
transmits, at the estimated available bandwidth, the encoded video object plane from the sender to the receiver.
-
Specification