US2006176832A1PendingUtilityA1

Adaptive bit-rate adjustment of multimedia communications channels using transport control protocol

45
Assignee: MICELI SEANPriority: Feb 4, 2005Filed: Feb 4, 2005Published: Aug 10, 2006
Est. expiryFeb 4, 2025(expired)· nominal 20-yr term from priority
Inventors:Sean Miceli
H04L 65/1101Y02D30/50H04N 21/6582H04N 21/44209H04L 65/403H04N 21/2343H04N 21/2402H04L 1/0002H04N 21/658H04N 21/6377
45
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A videoconferencing apparatus having a corresponding method and instruction program comprises a video codec to generate video data; a video packetizer to produce TCP packets of the video data; an audio codec to generate audio data; an audio packetizer to produce packets of the audio data; a transmit circuit to transmit the TCP packets; a receive circuit to receive a RTCP receiver report representing a number of the TCP packets of the video data received by a receiver; and a controller to generate an estimate of a number of the TCP packets of the video data transmitted but not yet received based on a difference between a number of the TCP packets of the video data transmitted by the transmit circuit and the number of the TCP packets of the video data received by the receiver, and control the video bit rate according to the estimate.

Claims

exact text as granted — not AI-modified
1 . A videoconferencing apparatus comprising: 
 a video codec to generate video data at a video bit rate;    a video packetizer to produce Transport Control Protocol (TCP) packets of the video data;    an audio codec to generate audio data at an audio bit rate;    an audio packetizer to produce packets of the audio data;    a transmit circuit to transmit the TCP packets of the video data and the packets of the audio data;    a receive circuit to receive a Real-time Transport Control Protocol (RTCP) receiver report representing a number of the TCP packets of the video data received by a receiver of the TCP packets of the video data; and    a controller to 
 generate an estimate of a number of the TCP packets of the video data transmitted by the transmit circuit but not yet received by the receiver based on a difference between a number of the TCP packets of the video data transmitted by the transmit circuit and the number of the TCP packets of the video data received by the receiver, and  
 control the video bit rate according to the estimate.  
   
   
   
       2 . An apparatus comprising: 
 a data generator to generate data at a bit rate;    a packetizer to produce Transport Control Protocol (TCP) packets of the data;    a transmit circuit to transmit the TCP packets of the data; and    a controller to control the bit rate according to an estimate of a number of the TCP packets of the data transmitted by the transmit circuit but not yet received by a receiver of the TCP packets of the data.    
   
   
       3 . The apparatus of  claim 2 , wherein: 
 the controller generates the estimate of the number of the TCP packets of the data transmitted by the transmit circuit but not yet received by the receiver based on 
 a number of the TCP packets of the data transmitted by the transmit circuit following an initialization event,  
 a number of the TCP packets of the data received by the receiver following the initialization event, and  
 a previous estimate of the number of the TCP packets of the data transmitted by the transmit circuit but not yet received by the receiver.  
   
   
   
       4 . The apparatus of  claim 3 , wherein, to generate the estimate of the number of the TCP packets of the data transmitted by the transmit circuit but not yet received by the receiver, the controller: 
 determines a plurality of differences, each at a different time, between a number of the TCP packets of the data transmitted by the transmit circuit following an initialization event and a number of the TCP packets of the data received by the receiver following the initialization event; and    generates the estimate according to at least one of the group consisting of 
 a median of the differences,  
 a mean of the differences, and  
 a mode of the differences.  
   
   
   
       5 . The apparatus of  claim 2 , wherein, to control the bit rate according to the estimate of the number of the TCP packets of the data transmitted by the transmit circuit but not yet received by the receiver, the controller: 
 decreases the bit rate when a first predetermined number of consecutive differences between the number of the TCP packets of the data transmitted by the transmit circuit following an initialization event and the number of the TCP packets of the data received by the receiver following the initialization event fall above a threshold that is a first function of the estimate of the number of the TCP packets of the data transmitted by the transmit circuit but not yet received by the receiver;    increases the bit rate when a second predetermined number of consecutive differences between the number of the TCP packets of the data transmitted by the transmit circuit following an initialization event and the number of the TCP packets of the data received by the receiver following the initialization event fall below a threshold that is a second function of the estimate of the number of the TCP packets of the data transmitted by the transmit circuit but not yet received by the receiver; and    increases the bit rate when the bit rate has not been increased for a predetermined interval.    
   
   
       6 . The apparatus of  claim 5 , wherein, to control the bit rate according to the estimate of the number of the TCP packets of the data transmitted by the transmit circuit but not yet received by the receiver, the controller further: 
 generates a new estimate of the number of the TCP packets of the data transmitted by the transmit circuit but not yet received by the receiver;    determines whether the new estimate falls outside an estimate window surrounding the estimate;    controls the bit rate based on the new estimate when the new estimate falls outside the estimate window surrounding the estimate; and    controls the bit rate based on the estimate when the new estimate falls inside the estimate window surrounding the estimate.    
   
   
       7 . The apparatus of  claim 2 , further comprising: 
 a receive circuit to receive a packet of data representing the number of the TCP packets of the data received by the receiver.    
   
   
       8 . The apparatus of  claim 7 , wherein the packet of data representing the number of the TCP packets of the data received by the receiver comprises: 
 a Real-time Transport Control Protocol (RTCP) receiver report packet.    
   
   
       9 . The apparatus of  claim 2 , wherein the data generator comprises at least one of the group consisting of: 
 a video codec to encode video data; and    an audio codec to encode audio data.    
   
   
       10 . A videoconferencing system comprising the apparatus of  claim 2 .  
   
   
       11 . A method comprising: 
 generating data at a bit rate;    producing Transport Control Protocol (TCP) packets of the data;    transmitting the TCP packets of the data; and    controlling the bit rate according to an estimate of a number of the TCP packets of the data transmitted by the transmit circuit but not yet received by a receiver of the TCP packets of the data.    
   
   
       12 . The method of  claim 11 , further comprising: 
 generating the estimate of the number of the TCP packets of the data transmitted by the transmit circuit but not yet received by the receiver based on 
 a number of the TCP packets of the data transmitted following an initialization event,  
 a number of the TCP packets of the data received by the receiver following the initialization event, and  
 a previous estimate of the number of the TCP packets of the data transmitted but not yet received by the receiver.  
   
   
   
       13 . The method of  claim 12 , wherein generating the estimate of the number of the TCP packets of the data transmitted but not yet received by the receiver comprises: 
 determining a plurality of differences, each at a different time, between a number of the TCP packets of the data transmitted following an initialization event and a number of the TCP packets of the data received by the receiver following the initialization event; and    generating the estimate according to at least one of the group consisting of 
 a median of the differences,  
 a mean of the differences, and  
 a mode of the differences.  
   
   
   
       14 . The method of  claim 11 , wherein controlling the bit rate according to the estimate of the number of the TCP packets of the data transmitted but not yet received by the receiver comprises: 
 decreasing the bit rate when a first predetermined number of consecutive differences between the number of the TCP packets of the data transmitted following an initialization event and the number of the TCP packets of the data received by the receiver following the initialization event fall above a threshold that is a first function of the estimate of the number of the TCP packets of the data transmitted but not yet received by the receiver;    increasing the bit rate when a second predetermined number of consecutive differences between the number of the TCP packets of the data transmitted following an initialization event and the number of the TCP packets of the data received by the receiver following the initialization event fall below a threshold that is a second function of the estimate of the number of the TCP packets of the data transmitted but not yet received by the receiver; and    increasing the bit rate when the bit rate has not been increased for a predetermined interval.    
   
   
       15 . The method of  claim 14 , wherein controlling the bit rate according to the estimate of the number of the TCP packets of the data transmitted but not yet received by the receiver of the TCP packets of the data further comprises: 
 generating a new estimate of the number of the TCP packets of the data transmitted but not yet received by the receiver;    determining whether the new estimate falls outside an estimate window surrounding the estimate;    controlling the bit rate based on the new estimate when the new estimate falls outside the estimate window surrounding the estimate; and    controlling the bit rate based on the estimate when the new estimate falls inside the estimate window surrounding the estimate.    
   
   
       16 . The method of  claim 11 , further comprising: 
 receiving a packet of data representing the number of the TCP packets of the data received by the receiver.    
   
   
       17 . The method of  claim 16 , wherein the packet of data representing the number of the TCP packets of the data received by the receiver comprises: 
 a Real-time Transport Control Protocol (RTCP) receiver report packet.    
   
   
       18 . The method of  claim 11 , wherein the data comprises at least one of video data or audio data.  
   
   
       19 . A device-readable medium or waveform containing a program of instructions executable by a device and adapted to perform the method of  claim 11 .  
   
   
       20 . A device-readable medium or waveform containing a program of instructions executable by a device adapted to perform the method of  claim 12.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.