1. Field of the Invention
The present invention relates generally to a voice data processing system, and in particular, to a method for buffering the received voice data to eliminate the delay and jitter to support the natural processing of a vocoder.
2. Description of the Related Art
In general, an effective and high-speed data transmission is very important in a communication network. With regard to the bandwidth for data transmission, the voice data does not require a wide bandwidth because the voice data can be compressed from 64 Kbps to 16 Kbps by digital encoding (or compressing). However, for video data transmission, a data transfer rate of about 1.5-6 Mbps is required, and the video compression technique as set forth by MPEG (Moving Picture Experts Group) is used to compress the video data while maintaining high quality. In addition, for data communication, an additional bandwidth of over 10 Mbps is required.
However, for effective and high-speed data transmission, the network should be able to satisfy the communication quality required by the respective transmission media as well as the wide bandwidth requirement. The communication quality is referred to as a quality of service (QoS), which depends on the media and applications. For example, in an internet phone service, the quality of service depends on the ability to transmit the voice data in real time from the transmission side to the receiving side with a little delay as possible, and the ability to retrieve the voice data at the receiving side from the transmission side with as little jitter as possible.
Accordingly, many efforts have been made to improve the QoS in the data transmission system, especially to minimize the jitter problem. With regard to the operation of the data transmission system to improve the transmission of the voice data, a controlled transmission environment is created to enhance the transmission through a protocol prior to the transmission of the compressed voice data. The controlled transmission environment is set by determining the type of packets to be transmitted and the type of transmission method. For example, when the transmission line exhibits a good transmission quality, a transmission packet is assembled by adding a plurality of data cells to a given header prior to transmission. On the other hand, the transmission packet is assembled with a fewer number of data cells to a given header when a poor transmission quality exists. The purpose of such implementation is to improve the transmission efficiency by attaching a plurality of data cells to one header rather than attaching one data cell to one header to a data cell.
However, when using the above method, the initial setup is maintained until the call ends, thereby causing the following problems:
(1) when receiving the voice data through a LAN (Local Area Network) with an irregular bandwidth the voice data is not received at regular intervals, thus the low delay and jitter requirement cannot be satisfied;
(2) the voice data is reproduced intermittently, thus deteriorating the quality of a call; and,
(3) the writing DSP (Digital Signal Processor) has a longer waiting time, reducing, the system efficiency.
It is, therefore, an object of the present invention to provide a method for buffering a specific frame before the receiving side of a voice codec processes the frame, thus satisfying the low delay and jitter requirement and reducing the transmission delay.
It is another object of the present invention to provide a method for enabling the codec of a receiving side of the system to synchronously process the received voice data frames, thereby to improve the voice reception characteristic.
It is further object of the present invention to provide a method for continuously retrieving the voice data accumulated in a receiving buffer when a predetermined amount of voice data is written in the receiving buffer.
To achieve the above objects, a method is provided for processing the received voice data in a voice data processing system having a receiving buffer. The method comprising the steps of: (a) generating an interruption signal for processing the received voice data at a predetermined interval; (b) determining whether the receiving buffer has the received the voice data; (c) setting an approval bit of the receiving buffer to a voice data read prevention value when the received voice data does not exist; (d) setting the approval bit to a voice data read approval value when the voice data exists; (e) determining whether a predetermined amount of voice data is accumulated in the receiving buffer when the approval bit is set to the voice data read prevention value; (f) setting the approval bit to the voice data read approval value when the predetermined amount of voice data is accumulated in the writing buffer; and, (g) reading the voice data written in a read address of the receiving buffer, and writing the read voice data in a digital signal processor in an upper layer when the approval bit is set to the voice data read approval value.
Preferably, according to the embodiment of the present invention, the step (b) comprises the step of determining that there is no received voice data when a read address and a write address of the receiving buffer are identical to each other, otherwise determining that there is received voice data. Preferably, according to the embodiment of the present invention, the step (e) comprises the step of determining that the predetermined amount of the voice data is accumulated when the difference between the read address and the write address is larger than a predetermined value, otherwise determining that the predetermine amount of the voice data is not accumulated.