Patent ID: 7574726

Claim:
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 transmission characteristics of the connection between the sender and the receiver, wherein monitoring transmission characteristics comprises: estimating a round trip time of a sender packet from the sender to the receiver (RTT) based on a timestamp indicating the time when the sender packet was sent (ST 1 ) and a time interval that the sender packet spent in the receiver side (Δ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 (P L ); estimating the present available network bandwidth at which the receiver can receive data from the sender (rvcrate); deriving the present sending rate of data from the sender to the receiver ( currate ); and setting an updated sending rate of data from the sender to the receiver (currate), wherein: if rcvrate is greater than currate , then deriving currate as a function currate , PacketSize, and RTT; and if rcvrate is not greater than currate , then setting currate to be less than rcvrate; 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; transmitting the encoded VOP to the receiver in a sender packet over a packet switched network at a regulated sender transmission rate as a function of the estimated available bandwidth at the sender, wherein a header of the sender packet includes: (1) a packet sequence number, (2) the timestamp indicating the time when the sender packet was sent (ST 1 ), and (3) the size of the sender packet (PacketSize); and receiving a receiver packet from the receiver over the packet switched network, wherein a header of the receiver packet includes: (1) the time interval that the sender packet spent in the receiver side (ΔRT), (2) the timestamp of the sender packet sent from the sender (ST 1 ), (3) an estimate, calculated by the receiver, of a packet-loss rate, and (4) the rate at which data is received at the receiver.