The quality of service of realtime voice and video communication data transmissions over packet-switched networks, such as the Internet, is typically compromised by packet transmission delay and jitter that are inherent to an IP network. Achieving high-quality transmissions between two or more ports of isochronous, asynchronous, and plesiosynchronous data is critical for voice, video, and data communications all over the world.
Network protocols permit data, voice, and video communications to be digitized and transmitted via packets in a network system. Voice over packet networks, or VoIP, requires that the voice or audio signal be packetized and then transmitted. The transmission path will typically take the packets through both packet switched and circuit switched networks between each termination of the transmission. The analog voice signal is first converted to a digital signal and compressed at a gateway connected between a terminal equipment and the packet network. The gateway produces a pulse code modulated (PCM) digital stream from the analog voice.
To transmit the digitized data within packets between communication ports, receiving and transmitting systems are needed. Typically, the receiving and transmitting systems are modems, telephones, or other communication ports. A receiving and transmitting system typically supports independent clocks which have matched frequencies in order to minimize loss of data and/or synchronization. Packets are routed through the packet network based upon the IP address information. The packet may pass through several switches and routers and the signal in digital and analog form and may pass through both packet switches and circuit switches respectively. The packets are likely to accumulate delay as they pass between the near and far end terminal equipment, through the near and far end gateways, through the packet and PSTN networks and through switches.
Because this accumulated delay is erratic and unpredictable and further because each packet may take a different path through the networks, delay can cause the packets to arrive out of sequence and/or with gaps or overlaps. Gapping and overlapping of packets is referred to as delay and the variance in delay from one packet to the next is called jitter. Delay and jitter are measured by comparison of the end time stamp of one packet with the start time stamp of the next packet. If the next packet is received before the end time stamp of the previous packet, there is overlapping delay. If the latest packet is received after the end time stamp of the current packet, the difference in the time is the delay gap. Conditions in the packet network can also cause the loss of packets, referred to as packet loss.
One method for removing timing jitter from incoming packets at a receiver is to use a playout buffer. To correct for out of sequence packets, the system may use time identification stamps that are placed into packets at the transmitter. U.S. Pat. No. 5,790,538 describes how the transmitter inserts the contents of a free running packet counter into each transmitted packet, allowing the receiver to detect lost packets and to properly reproduce silence intervals during playout. A last packet reply request is inserted into the buffer if it detects the loss of one or more packets. A receive sequence counter increments at the local packet rate to schedule playouts for multiple voice segments. Upon arrival of the first packet in the voice segment, the system sets the receiving sequence equal to the sequence number of the incoming packet and inserts a delay of several packets into the buffer before inserting the first codeword of the segment. The buffer has a storage device delay that has the effect of centering the buffer in order to smooth out jitter during playout, after which the entire voice segment is played out in a uniform rate.
Using time stamps to transmit packets is dependent upon both receiving and transmitting ends using the same timestamp identifiers and protocols. In addition, not all protocols use timestamps.