CN100359887C - Method for ordering to eliminate its jitter time delay by time stamp of RTP data pocket - Google Patents

Method for ordering to eliminate its jitter time delay by time stamp of RTP data pocket Download PDF

Info

Publication number
CN100359887C
CN100359887C CNB031251080A CN03125108A CN100359887C CN 100359887 C CN100359887 C CN 100359887C CN B031251080 A CNB031251080 A CN B031251080A CN 03125108 A CN03125108 A CN 03125108A CN 100359887 C CN100359887 C CN 100359887C
Authority
CN
China
Prior art keywords
packet
time stamp
time
buffer queue
depth
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB031251080A
Other languages
Chinese (zh)
Other versions
CN1549536A (en
Inventor
叶锦华
白文翔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CNB031251080A priority Critical patent/CN100359887C/en
Publication of CN1549536A publication Critical patent/CN1549536A/en
Application granted granted Critical
Publication of CN100359887C publication Critical patent/CN100359887C/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

The present invention relates to a method for eliminating shake delays by sorting by service life stamps of RTP data packets, which comprises: a buffer storage queue is used for receiving RTP data packets; when data enters the queue, the data packet which firstly arrives is stored in the initial address of the buffer queue, and the time stamp of the data packet which firstly arrives is used as the reference time stamp; the storage addresses of the data packets received afterwards in the buffer queue are determined according to the time stamps, and the data packets received afterwards are stored in the corresponding addresses; when the data dequeues, after the buffer storage scheduled time, the reference time stamp is used as the transmitting time stamp, and the data packet which correspondingly firstly arrives normally is output to the next interface; the total of the transmitting time stamp and the intervals of the time stamps is used as a new transmitting time stamp; whether the corresponding storage address of the new transmitting time stamp has a data packet is checked; if the corresponding storage address of the new transmitting time stamp has a data packet, then the data packet is output to the next interface. The present invention also carries out dynamic regulation on delay depth of the buffer queue according to the shake delay of the data packet so as to greatly enhance transmission quality of RTP speech data packets finally.

Description

Time stamp with the RTP packet sorts to eliminate the method for its shake time-delay
Technical field
The present invention relates to the IP technology, more particularly, relate to a kind of time stamp and sort to eliminate the method for its shake time-delay with the RTP packet.
Background technology
VoIP (Voice Over IP, being the ip voice technology) appearance of technology brought huge impact for traditional voice service, it makes speech to transmit on packet-based data network, has not only reduced the expense of communicating pair effectively but also can provide new application and service for the user.But packet-based data network is different from traditional PSTN network after all, in IP network, the real time data of voice is all transmitted by the RTP (Realtime Transport Protocol, RTP) that is encapsulated in UDP (User Datagram Protoco (UDP)) packet.Use UDP transmission data, just may produce out of order with receive duplicate packages.In order to make voice can on data network, transmit and guarantee its speech quality effectively, just must consider factor adverse effects such as network delay, network delay shake, packet loss, out of order, duplicate packages.
Except speech data, when real time datas such as image are transmitted, need to remove the shake that network side brings equally on packet network.According to the test of analog network environment, under the bigger or out of order situation of shake, the quality of voice and image all has very significantly and descends, even makes voice or the quality of image can not put up with.
In order to solve the network jitter problem, adopt jitter buffer (jitter buffer memory) usually, and cooperate suitable method to eliminate network jitter.The essential idea of jitter buffer is to increase the shake that time-delay is a cost elimination network side at receiving terminal, to introduce the ability that the size of delaying time has determined to remove network jitter.But be not that the time-delay of introducing is the bigger the better, this is because time-delay greatly can reduce the comfort level that telephone receiving.As shown in Figure 1, wherein laterally represent time shaft, be uneven the time of advent that the first half illustrates the network side data bag, and the time of advent of packet 2 is slightly more Zao than normal value, and the time of advent of packet 3 is slightly more late than normal value; After the latter half then illustrated and handles through jitter buffer, all packets all sent to the outside with fixing interval, introducing correspondingly one section time-delay.As seen, after introducing jitter buffer,, still can normally send to next processing module even packet postpones.If can be used as the packet loss processing equally but the shake of packet has surpassed certain hour, otherwise taking place under the Network Packet Loss or the situation of big delay jitter, the real-time of data can not guarantee that this is to voice or the transmission of image is fatal.
In the jitter buffer memory, use first-in first-out (FIFO) formation or sequence number sequencing queue to handle at present usually.
Wherein, when adopting the First Input First Output mode, the packet of being received is not resequenced, just be allowed to condition at by buffer memory in the buffer queue after a period of time, issue by the first-in first-out mode again, it is longer to shake the little data pack buffer time, and it is less to shake the big data pack buffer time, realizes eliminating the influence of network jitter with this.Shake the influence that brings to system though this mode can reduce network side to a certain extent, but can't eliminate out of order and duplicate packages.
The method of sequence number ordering is complicated, whenever receive that a packet all will determine its memory location in buffer queue according to the sequence number of RTP bag, again with regular time at interval, according to the packet in the sequencing output buffer queue of position, this method can be eliminated out of order situation.When making in this way, may bigger jump may take place because of the sequence number of remote data bag and cause program to be made mistakes.On the other hand, when voice transfer has been opened voice activity detection (VAD detection), can't accurately obtain quiet duration, thereby can influence voice quality.
On the other hand, what present jitter buffer adopted is constant time lag, just belongs to static jitterbuffer.But the jitter conditions of network differs greatly, and how to choose to take into account simultaneously and eliminates very difficulty of network jitter and little time-delay.When network condition is better,, then can influence the comfort level of speech or image if the time-delay of introducing is bigger; When network condition is relatively poor, if the time-delay of introducing is less, then can not eliminate the delay jitter of network side, be difficult to obtain the delay value of classics.
Summary of the invention
Above-mentioned defective at prior art, the present invention will solve simultaneously in the IP technology because factor adverse effects such as network delay shake, packet loss, out of order, duplicate packages, real-time RTP packet is passed to the voice or the visual codec of next stage with correct order and even velocity, to improve the transmission quality of RTP VoP.
The technical solution adopted for the present invention to solve the technical problems is: a kind of method of the RTP of elimination data package jitter is provided, it is characterized in that, adopt the buffer-stored formation to receive the RTP packet from IP network, and repeat following steps by the predetermined clock cycle:
(1) data are joined the team: the time stamp according to each packet is determined its memory address in buffer queue successively, and deposits this packet in its memory address;
(2) dequeuing data: the time stamp of determining the packet that should be output in the current buffer queue, it is current transmission time stamp, and check in the pairing buffer queue memory address of described transmission time stamp whether packet is arranged, if having then packet that will be wherein outputs to next interface.
In the data of the method for the invention are joined the team step (1), specifically may further comprise the steps:
(1-1) after receiving first packet that normally reaches, deposit it initial address of buffer queue in, and with the time stamp of this packet as the benchmark time stamp, execution in step (1-2) when next clock cycle arrives then;
(1-2) check the count initialized device whether count full of first predetermined value, if counted full then remained unchanged, if meter is full then counter is added 1;
(1-3) check whether to receive a packet again, be execution in step (1-4) then, otherwise when the next clock cycle arrives, get back to step (1-2);
(1-4) check whether this packet is legal, if not then abandoning this packet, if then the difference that deducts described benchmark time stamp gained with the time stamp of this packet divided by time stamp at interval, again with the quotient of gained buffer memory number divided by buffer queue, to count after the gained as the memory address of this packet in buffer queue, check then whether this packet is duplicate packages, if then abandon this packet, if not then depositing this packet in this memory address, when arriving, gets back to next clock cycle step (1-2) then.
In method of the present invention, in described data are joined the team step (1-1), after depositing packet in its memory address, comprise that also the sign position of this memory address is set to effective step, then execution in step (1-2) when next arrives clock cycle; In described data are joined the team step (1-4), before depositing packet in its memory address, also comprise the step of the sign position state of checking this memory address, when sign position when being invalid, just deposit this packet in this memory address; After depositing packet in its memory address, comprise that also the sign position of this memory address is set to effective step, just when arriving, gets back to next clock cycle step (1-2) then; Correspondingly, in described dequeuing data step (2), after packet is outputed to next interface, comprise that also the sign position of its memory address is set to invalid step.
In method of the present invention, described data are joined the team in the step (1-4), check this packet whether legal specifically comprise the time stamp of checking this packet deduct buffer queue current transmission time stamp gained difference again divided by time stamp at interval the gained quotient whether less than the step of the buffer memory number of buffer queue.
In method of the present invention, in described dequeuing data step (2), when not having packet in the buffer queue memory address of correspondence, further comprising the steps of: as to check whether sent the packet loss indication of second predetermined value continuously, be then to send non-transmission frame indication, otherwise send a packet loss indication again.
In the dequeuing data step (2) of the method for the invention, specifically may further comprise the steps:
(2-1) check whether the count initialized device is counted full, if counted full with the benchmark time stamp as sending time stamp, first packet that normally reaches in the pairing buffer queue initial address of this transmission time stamp is outputed to next interface, simultaneously the sign position of this memory address be set to invalid, execution in step (2-2) when next arrives clock cycle then;
(2-2) with described transmission time stamp add time stamp at interval sum reexamine in the pairing buffer queue memory address of new transmission time stamp as new transmission time stamp whether packet is arranged, be execution in step (2-3) then, otherwise jump to step (2-4);
(2-3) packet that will newly send in the pairing buffer queue memory address of time stamp outputs to next interface, and it is invalid that the sign position of its memory address is set to, and simultaneously with the packet loss counter O reset, gets back to step (2-2) then when next clock cycle arrives;
(2-4) check that whether the packet loss counter is counted fullly of second predetermined value, is execution in step (2-5) then, otherwise jumps to step (2-6);
(2-5) this moment, packet loss counter meter was full, needed to send non-transmission frame indication, got back to step (2-2) then when next clock cycle arrives;
(2-6) this moment, the packet loss counter was not counted fullly, needs to send a packet loss indication, and the packet loss counter is added 1, got back to step (2-2) then when next clock cycle arrives.
In method of the present invention, also comprise following dynamic adjustment step:
Join the team after step (1) finishes in described data, the time stamp ts of each packet of receiving according to buffer queue and the time of advent time, and the time stamp base_ts of first packet that normally reaches and the time of advent base_time, calculate the shake time-delay jitter=abs ((time-base_time)-(ts-base_ts)) of this packet;
According to the current delay depth d epth of buffer queue and the shake time-delay jitter of this packet, calculate the interim time-delay degree of depth tem_depth=depth* first coefficient A+jitter* second coefficient B of buffer queue;
Check that whether the described interim time-delay degree of depth is greater than the current delay degree of depth, be then to add the new time-delay degree of depth of the packaging time length sum of a packet as buffer queue with the described current delay degree of depth, correspondingly, the buffer memory number of buffer queue will add 1, and send a packet loss indication;
Check that whether the described interim time-delay degree of depth is less than the current delay degree of depth, be then to deduct the difference of packaging time length of a packet as the new time-delay degree of depth of buffer queue with the described current delay degree of depth, correspondingly, the buffer memory number of buffer queue will subtract 1, and carry out a step (2-2) again to the corresponding steps between (2-6).
In method of the present invention, the span of the described first coefficient A is: 1/2<=A<1; The span of described second coefficient B is: 0<B<=1/2.
In method of the present invention, in described dynamic adjustment step, when being checked through continuous predetermined number according to the interim time-delay degree of depth of bag during all greater than the current delay degree of depth, just add the new time-delay degree of depth of the packaging time length sum of a packet as buffer queue with the described current delay degree of depth, correspondingly the buffer memory number with buffer queue adds 1, and sends a packet loss indication; When being checked through continuous predetermined number according to the interim time-delay degree of depth of bag during all less than the current delay degree of depth, just deduct the difference of packaging time length of a packet as the new time-delay degree of depth of buffer queue with the described current delay degree of depth, correspondingly the buffer memory number with buffer queue subtracts 1, and carries out a step (2-2) again to the corresponding steps between (2-6).
Compared with prior art, use the time stamp of packet to sort in the method for the present invention, by above-mentioned join the team and go out team handle, can effectively solve two problems of out of order and duplicate packages of network side; And can be according to the quality of network condition, self adaptation is adjusted the time-delay degree of depth of buffer queue, and the degree of depth of will delaying time is rationalized, and can take into account the requirement of eliminating network jitter and the little time-delay degree of depth two aspects, has finally improved the transmission quality of RTP VoP.
Description of drawings
The invention will be further described below in conjunction with drawings and Examples, in the accompanying drawing:
Fig. 1 is the schematic diagram of the buffer queue packet that receives and send;
Fig. 2 is the flow chart when packet is joined the team in a preferred embodiment of the invention;
Fig. 3 is the data that cooperate with Fig. 2 among the present invention flow charts when contracting out group;
Fig. 4 is the dynamic flow chart of adjusting of the time-delay degree of depth that cooperates with Fig. 2 and Fig. 3 among the present invention;
Fig. 5 is the flow chart when data contract out group in another embodiment of the present invention.
Embodiment
A preferred embodiment of the present invention such as Fig. 2, Fig. 3 and shown in Figure 4 comprise that mainly packet is joined the team, data contract out team, dynamically adjust three parts.Wherein, data are joined the team and are gone out team and cooperatively interact, to finish the function of buffer-stored; Dynamically adjustment then is an additional part, can further optimize the solution of the present invention, for the buffer-stored function, is not necessary.In the IP technology, the packaging time length of speech data is more, and 10ms, 20ms, 30ms even longer are arranged, and the packet that with the packaging time length is 10ms below is that example is introduced.Because the unit of RTP packet time stamp is 1/8ms, the time stamp of the packet of 10ms packing is exactly 80 at interval so, and the time stamp of 20ms packing data is 160 at interval.
One, data are joined the team
Its flow process after passage is opened, deposits first packet that normally reaches the initial address (address 0) of buffer queue in as shown in Figure 2,, and initial address sign position is made as effectively as benchmark time stamp (base_ts) with the time stamp of this packet.Repeat following steps by the predetermined clock cycle then, the predetermined clock cycle here is the packaging time length of a packet just, is 10ms in the present embodiment, promptly carries out the flow process among Fig. 2 one time every 10ms.
Finish after the above-mentioned steps, check the count initialized device whether count full of first predetermined value, if counted full then remained unchanged, if meter is full then every circulation primary adds 1 with counter.First predetermined value here, just buffer queue can the cached data packet number when initial condition, for example can be made as n=6.After receiving first normal packet that arrives, because each clock can receive a packet under the normal condition, and count initialized device each clock before meter is full can add 1 automatically, so when its meter is full, just represent to be filled with packet in the buffer queue under the normal condition, this moment, first normally reached the cache-time of all need to the packet that reaches, and it need be exported.As seen this counter is set in order to determine when the dequeuing data step that starts the back.
Check whether to receive a packet again, if do not receive then to get back to previous step when next clock cycle arrives rapid.
If receive a packet again, then check earlier its legitimacy, concrete grammar be the difference of the current transmission time stamp gained that deducts buffer queue of the time stamp with this packet again divided by the time stamp interval, see that the gained quotient is whether less than the buffer memory number (n) of buffer queue; If the time stamp that this packet is described is legal, otherwise represent that this packet for illegal, should abandon it.Change a kind of wording, the time stamp difference in the buffer queue between the packet of cacheable time stamp maximum and the minimal data bag should equal its buffer memory number and multiply by time stamp at interval, be i.e. n*80; As can be seen, current transmission time stamp is the current minimum data bag time stamp that should store in the buffer queue just in the description from behind, so if the difference between a certain packet and the current transmission time stamp greater than n*80, then this packet will be judged to illegally.The buffer memory number (being current cacheable packet number) of supposing buffer queue is 6, and the transmission time stamp of storing in the current queue is trans_ts, if next received a packet that time stamp is ts, calculates by following formula:
(ts-trans_ts)/80
If its result has produced bigger out of order or packet loss phenomenon, this time stamp is that the packet of ts will be judged to illegally and be dropped.
For legal packet, determine its memory address in buffer queue according to its time stamp, specific practice be the time stamp with this packet deduct benchmark time stamp gained difference divided by time stamp at interval, again with the merchant of gained buffer memory number divided by buffer queue, with number after the gained as the memory address of this packet in buffer queue.Suppose buffer memory number n=6 of buffer queue, the benchmark time stamp is base_ts, receives that now a time stamp is the packet of ts, calculates by following formula:
(ts-base_ts)/80/n
If the remainder of gained is 0, then this packet is put into address 0; If the remainder of gained is 2, then this packet should be put into address 2.
Determined after the memory address to judge also whether this packet is duplicate packages, and specific practice is to represent wherein whether to have packet with the sign position of memory address, when sign position represents that packet is arranged when effective, then represented wherein free of data bag when invalid; So before depositing in, check earlier the state of the sign position of its memory address, when sign position when being invalid, just deposit this packet in this memory address, after depositing in, the sign position of this memory address is set to effectively again; When sign position when being effective, wherein data with existing bag is described, this packet of then just having received will be judged to duplicate packages and abandon.In the dequeuing data step of back, after packet was outputed to next interface, the corresponding sign position that is provided with this memory address was set to invalid step.
Packet is being deposited in its memory address, and identifying after the position is set to effectively, also will carry out following operation, to calculate the interim time-delay degree of depth of each packet, prepare for the dynamic adjustment step of carrying out the back,, then needn't carry out following calculation procedure if dynamically do not adjust.
Earlier time stamp (ts) and the time of advent (time) of each packet of receiving according to buffer queue, and the time stamp of first packet that normally reaches (base_ts) and the time of advent (base_time), the shake that calculates this packet is delayed time:
jitter=abs((time-base_time)-(ts-base_ts))
According to the current delay degree of depth (depth) of buffer queue and the shake time-delay (jitter) of this packet, calculate the interim time-delay degree of depth of buffer queue again:
tem_depth=depth*A+jitter*B。
Wherein, 1/2<=A<1; 0<B<=1/2.Desirable A=0.8 in the present embodiment, B=0.4.That is to say, whenever receive a packet, all calculate its interim time-delay degree of depth, to be used for the dynamic adjustment step of back.
As can be seen from Figure 2, after this a circulation execution in step 101 and 102 for the first time then is the corresponding steps that repeats step 103 and back thereof each clock cycle.
Two, dequeuing data
Its flow process as shown in Figure 3, check earlier above-mentioned count initialized device whether count full, if full continuation of meter waited for; If counted full, then with the said reference time stamp as sending time stamp, and the packet that first normally reaches is outputed to next interface.The count initialized device meter is here expired, if each packet of expression all normally arrives, should all store packet in the memory address of the n in the buffer queue, in fact may, packet loss whole store upward packets out of order because of taking place.What the count initialized device was embodied is only a kind of perfect condition, and its purpose is introduced an initial time delay degree of depth, allows packet buffer memory a period of time in buffer queue, to eliminate the shake of networking side.
Then, add that with current transmission time stamp time stamp interval sum (trans_ts+80) is as new transmission time stamp.As seen, send time stamp and be according to before the time stamp of the packet from the buffering formation, exported determine that the pairing packet of this transmission time stamp may be stored in the buffer queue, also may be out of order, packet loss is not stored in the buffer queue because of taking place.Suppose just to send a time stamp packet that is trans_ts, and the time stamp minimal data bag time stamp of actual storage is (trans_ts+160) in the formation, not having time stamp is the packet of (trans_ts+80), still can be with (trans_ts+80) as new transmission time stamp.
Reexamine whether the sign position that sends the pairing memory address of time stamp (trans_ts+80) is effective, if be effective, then expression wherein has a packet, and output to next interface with packet wherein this moment, and the sign position of this memory address be set to invalid.
If the sign position of memory address is invalid, then expression does not wherein have packet, need to check whether the packet loss counter is counted full of second predetermined value (this value is relevant with concrete coding and decoding algorithm, the buffer memory number of buffer queue etc., and those skilled in the art can draw empirical value as the case may be) this moment.The packet loss counter here is used for the packet loss indication of sending is continuously counted, and whenever sends a packet loss indication, and counter adds 1, and in the present embodiment, described second predetermined value is 4.If this counter is not counted full, then packet loss or out of order takes place in expression, needs to send a packet loss indication this moment, and this counter is added 1.If this counter meter is full of 4, four packet loss indications have been sent out in expression continuously, and what will think network side transmitted this moment is non-transmission frame, so send non-transmission frame indication.By above-mentioned steps, before can arriving at the packet of back, it is that Network Packet Loss has taken place that right area is told, normal non-transmission frame in going back.
As can be seen from Figure 3, packet is being outputed to next interface, and the sign position of this memory address be set to invalid after, also with the packet loss counter O reset.Thereby match with above-mentioned steps, assurance packet loss counter is only counted the continuous packet loss that sends indication.
As can be seen from Figure 3, after this a circulation execution in step 201 and 202 for the first time then is the corresponding steps that repeats step 203 and back thereof each clock cycle.
Three, dynamically adjust
As can be seen from Figure 4, the specific practice of dynamically adjusting among the present invention is, check earlier whether have continuous predetermined number according to the interim time-delay degree of depth of bag (for example 5) all greater than the current delay degree of depth, if, then add the new time-delay degree of depth of packaging time length (being 10ms in the present embodiment) sum (depth+10ms) of a packet as buffer queue with the current delay degree of depth, promptly replace its current delay degree of depth with the new time-delay degree of depth after transferring greatly, correspondingly, the buffer memory number of buffer queue will add 1, send a packet loss indication then.As seen, among the present invention, when the shake of packet time-delay may cause buffer queue time-delay change in depth, be not to adjust immediately, but will wait a period of time, when continuing to have this variation tendency, just adjust.Wherein adopted corresponding the 3rd counter to count, these counter meter to the three predetermined values are full for meter, the 3rd predetermined value is relevant with concrete coding and decoding algorithm, the buffer memory number of buffer queue etc., and those skilled in the art can draw empirical value as the case may be.
If do not satisfy above-mentioned condition, then reexamine whether have continuous predetermined number according to the bag (for example 5) the interim time-delay degree of depth all less than the current delay degree of depth, if, then deduct poor (depth-10ms) of packaging time length of a packet as the new time-delay degree of depth of buffer queue with the current delay degree of depth, promptly replace its current delay degree of depth with the new time-delay degree of depth after turning down, correspondingly, the buffer memory number of buffer queue will subtract 1, also need to return the step 203 among Fig. 3 this moment, carries out the corresponding subsequent step after a time 203 more.As can be seen from Figure 4, wherein adopted corresponding four-counter to come the interim time-delay degree of depth is all carried out continuous counter less than the packet of the current delay degree of depth, these counter meter to the four predetermined values are full for meter, the 4th predetermined value is relevant with concrete coding and decoding algorithm, the buffer memory number of buffer queue etc., and those skilled in the art can draw empirical value as the case may be.
The foregoing description is to be that the packet of 10ms is that example describes with the packaging time length, is 20ms, 30ms or longer packet for packaging time length, can adopt said method to handle equally.For example be the packet of 20ms for packaging time length, then clock cycle and time stamp will correspondingly become 20ms, 160 at interval; For packaging time length is the packet of 30ms, and then clock cycle and time stamp will correspondingly become 30ms, 240 at interval.
Certainly, also can unify to adopt 10ms is the clock cycle, 80 is the time stamp interval, at this moment, for packaging time length is the packet of 20ms, because of its time stamp is spaced apart 160, so discharging at interval when data are joined the team, the total length of supposing buffer queue is 32 packets, and then reality can only cushion 16 packets at most in the formation; Simultaneously, in the dequeuing data step, as shown in Figure 5, need introduce a counter again, send when not having packet in the position, judge again whether the packet loss counter is counted full when being checked through for continuous 2 times.For packaging time length is the packet of 30ms, and then the rest may be inferred.

Claims (9)

1, a kind of method of eliminating the RTP data package jitter is characterized in that, adopts the buffer-stored formation to receive the RTP packet from IP network, and repeats following steps by the predetermined clock cycle:
(1) data are joined the team: the time stamp according to each packet is determined its memory address in buffer queue successively, and deposits this packet in its memory address;
(2) dequeuing data: the time stamp of determining the packet that should be output in the current buffer queue, it is current transmission time stamp, and check in the pairing buffer queue memory address of described transmission time stamp whether packet is arranged, if having then packet that will be wherein outputs to next interface.
2, method according to claim 1 is characterized in that, in described data are joined the team step (1), specifically may further comprise the steps:
(1-1) after receiving first packet that normally reaches, deposit it initial address of buffer queue in, and with the time stamp of this packet as the benchmark time stamp, execution in step (1-2) when next clock cycle arrives then;
(1-2) check the count initialized device whether count full of first predetermined value, if counted full then remained unchanged, if meter is full then counter is added 1;
(1-3) check whether to receive a packet again, be execution in step (1-4) then, otherwise when the next clock cycle arrives, get back to step (1-2);
(1-4) check whether this packet is legal, if not then abandoning this packet, if then the difference that deducts described benchmark time stamp gained with the time stamp of this packet divided by time stamp at interval, again with the quotient of gained buffer memory number divided by buffer queue, to count after the gained as the memory address of this packet in buffer queue, check then whether this packet is duplicate packages, if then abandon this packet, if not then depositing this packet in this memory address, when arriving, gets back to next clock cycle step (1-2) then.
3, method according to claim 2 is characterized in that,
In described data are joined the team step (1-1), after depositing packet in its memory address, comprise that also the sign position of this memory address is set to effective step, then execution in step (1-2) when next arrives clock cycle;
In described data are joined the team step (1-4), before depositing packet in its memory address, also comprise the step of the sign position state of checking this memory address, when sign position when being invalid, just deposit this packet in this memory address; After depositing packet in its memory address, comprise that also the sign position of this memory address is set to effective step, just when arriving, gets back to next clock cycle step (1-2) then;
Correspondingly, in described dequeuing data step (2), after packet is outputed to next interface, comprise that also the sign position of its memory address is set to invalid step.
4, method according to claim 3, it is characterized in that, described data are joined the team in the step (1-4), check this packet whether legal specifically comprise the time stamp of checking this packet deduct buffer queue current transmission time stamp gained difference again divided by time stamp at interval the gained quotient whether less than the step of the buffer memory number of buffer queue.
5, method according to claim 1 is characterized in that, in described dequeuing data step (2),
When not having packet in the buffer queue memory address of correspondence, further comprising the steps of: checking whether sent the packet loss indication of second predetermined value continuously, is then to send non-transmission frame indication, otherwise sends a packet loss indication again.
6, method according to claim 3 is characterized in that, in described dequeuing data step (2), specifically may further comprise the steps:
(2-1) check whether described count initialized device is counted full, if counted full with described benchmark time stamp as sending time stamp, first packet that normally reaches in the pairing buffer queue initial address of this transmission time stamp is outputed to next interface, simultaneously the sign position of this memory address be set to invalid, execution in step (2-2) when next arrives clock cycle then;
(2-2) with described transmission time stamp add time stamp at interval sum reexamine in the pairing buffer queue memory address of new transmission time stamp as new transmission time stamp whether packet is arranged, be execution in step (2-3) then, otherwise jump to step (2-4);
(2-3) packet that will newly send in the pairing buffer queue memory address of time stamp outputs to next interface, and it is invalid that the sign position of its memory address is set to, and simultaneously with the packet loss counter O reset, gets back to step (2-2) then when next clock cycle arrives;
(2-4) check that whether the packet loss counter is counted fullly of second predetermined value, is execution in step (2-5) then, otherwise jumps to step (2-6);
(2-5) this moment, packet loss counter meter was full, needed to send non-transmission frame indication, got back to step (2-2) then when next clock cycle arrives;
(2-6) this moment, the packet loss counter was not counted fullly, needs to send a packet loss indication, and the packet loss counter is added 1, got back to step (2-2) then when next clock cycle arrives.
7, method according to claim 6 is characterized in that, also comprises following dynamic adjustment step:
Join the team after step (1) finishes in described data, the time stamp ts of each packet of receiving according to buffer queue and the time of advent time, and the time stamp base_ts of first packet that normally reaches and the time of advent base_time, calculate the shake time-delay jitter=abs ((time-base_time)-(ts-base_ts)) of this packet;
According to the current delay depth d epth of buffer queue and the shake time-delay jitter of this packet, calculate the interim time-delay degree of depth tem_depth=depth* first coefficient A+jitter* second coefficient B of buffer queue;
Check that whether the described interim time-delay degree of depth is greater than the current delay degree of depth, be then to add the new time-delay degree of depth of the packaging time length sum of a packet as buffer queue with the described current delay degree of depth, correspondingly, the buffer memory number of buffer queue will add 1, and send a packet loss indication;
Check that whether the described interim time-delay degree of depth is less than the current delay degree of depth, be then to deduct the difference of packaging time length of a packet as the new time-delay degree of depth of buffer queue with the described current delay degree of depth, correspondingly, the buffer memory number of buffer queue will subtract 1, and carry out a step (2-2) again to the corresponding steps between (2-6).
8, method according to claim 7 is characterized in that, the span of the described first coefficient A is: 1/2<=A<1; The span of described second coefficient B is: 0<B<=1/2.
9, method according to claim 7 is characterized in that, in described dynamic adjustment step,
When being checked through continuous predetermined number according to the interim time-delay degree of depth of bag during all greater than the current delay degree of depth, just add the new time-delay degree of depth of the packaging time length sum of a packet as buffer queue with the described current delay degree of depth, correspondingly the buffer memory number with buffer queue adds 1, and sends a packet loss indication;
When being checked through continuous predetermined number according to the interim time-delay degree of depth of bag during all less than the current delay degree of depth, just deduct the difference of packaging time length of a packet as the new time-delay degree of depth of buffer queue with the described current delay degree of depth, correspondingly the buffer memory number with buffer queue subtracts 1, and carries out a step (2-2) again to the corresponding steps between (2-6).
CNB031251080A 2003-05-09 2003-05-09 Method for ordering to eliminate its jitter time delay by time stamp of RTP data pocket Expired - Fee Related CN100359887C (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB031251080A CN100359887C (en) 2003-05-09 2003-05-09 Method for ordering to eliminate its jitter time delay by time stamp of RTP data pocket

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB031251080A CN100359887C (en) 2003-05-09 2003-05-09 Method for ordering to eliminate its jitter time delay by time stamp of RTP data pocket

Publications (2)

Publication Number Publication Date
CN1549536A CN1549536A (en) 2004-11-24
CN100359887C true CN100359887C (en) 2008-01-02

Family

ID=34321830

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB031251080A Expired - Fee Related CN100359887C (en) 2003-05-09 2003-05-09 Method for ordering to eliminate its jitter time delay by time stamp of RTP data pocket

Country Status (1)

Country Link
CN (1) CN100359887C (en)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100479425C (en) * 2005-07-12 2009-04-15 中兴通讯股份有限公司 Method for protecting VOIP digital signal processing channel
CN100499578C (en) * 2005-08-05 2009-06-10 中兴通讯股份有限公司 Method for guaranteeing service quality of media receiving end
US7701981B2 (en) * 2005-10-27 2010-04-20 Qualcomm Incorporated System and method for improving robust header compression (ROHC) efficiency
CN101901193B (en) * 2009-05-27 2012-07-18 北京启明星辰信息技术股份有限公司 Data buffer method and device
CN101719808B (en) * 2009-11-23 2013-02-13 中兴通讯股份有限公司 Output processing method and output processing device of data packets
CN102123073B (en) * 2010-01-07 2014-10-08 华为技术有限公司 Packet reordering method and device
CN102916938B (en) * 2012-09-08 2015-11-25 佳都新太科技股份有限公司 A kind of method based on the synthesis of Real-time Transport Protocol multi-path voice
CN103905444B (en) * 2014-03-31 2018-02-23 邦彦技术股份有限公司 Integrated service communication command system
CN105848011A (en) * 2016-03-31 2016-08-10 乐视控股(北京)有限公司 Video living broadcast method and device
US10678216B2 (en) 2017-02-28 2020-06-09 Sap Se Manufacturing process data collection and analytics
CN108989138A (en) * 2017-05-31 2018-12-11 中兴通讯股份有限公司 Data transmission method, device, system and gateway
CN108933786B (en) * 2018-07-03 2021-04-09 公安部第一研究所 Method for improving cipher text voice quality of receiver of wireless digital communication system
CN111327386B (en) * 2018-12-14 2023-08-08 深圳市中兴微电子技术有限公司 Delay jitter compensation method and device and computer storage medium
CN111025068B (en) * 2019-12-24 2022-05-20 宁波三星医疗电气股份有限公司 Ammeter load curve data reading method and device and electronic equipment
CN113141239B (en) * 2021-04-26 2022-02-22 广州市百果园网络科技有限公司 Data retransmission method, device, equipment and storage medium
CN114866859B (en) * 2022-05-10 2023-06-09 福州大学 Real-time video transmission dynamic delay control system based on time stamp and packet loss detection
CN114866524A (en) * 2022-05-10 2022-08-05 中国电子科技集团公司第十研究所 Method and device for improving transmission quality of uplink voice data packet

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5127000A (en) * 1989-08-09 1992-06-30 Alcatel N.V. Resequencing system for a switching node
WO1999007181A2 (en) * 1997-07-14 1999-02-11 Nokia Networks Oy Switching fabric arrangement with time stamp function
US5999515A (en) * 1996-12-06 1999-12-07 Nec Corporation Method and apparatus for shaping processing in which discard of ATM cell effectively performed
EP1047282A1 (en) * 1999-04-16 2000-10-25 Alcatel Resequencing method
CN1352846A (en) * 1999-01-14 2002-06-05 艾利森电话股份有限公司 Adaptive jitter buffering

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5127000A (en) * 1989-08-09 1992-06-30 Alcatel N.V. Resequencing system for a switching node
US5999515A (en) * 1996-12-06 1999-12-07 Nec Corporation Method and apparatus for shaping processing in which discard of ATM cell effectively performed
WO1999007181A2 (en) * 1997-07-14 1999-02-11 Nokia Networks Oy Switching fabric arrangement with time stamp function
CN1352846A (en) * 1999-01-14 2002-06-05 艾利森电话股份有限公司 Adaptive jitter buffering
EP1047282A1 (en) * 1999-04-16 2000-10-25 Alcatel Resequencing method

Also Published As

Publication number Publication date
CN1549536A (en) 2004-11-24

Similar Documents

Publication Publication Date Title
CN100359887C (en) Method for ordering to eliminate its jitter time delay by time stamp of RTP data pocket
CN1277390C (en) Method for ordering to eliminate its jitter time delay by rank of RTP data packet
US20200266839A1 (en) Media Controller with Buffer Interface
CN100525281C (en) Method of realizing dynamic adjusting dithered buffer in procedure of voice transmission
US7447164B2 (en) Communication apparatus, transmission apparatus and reception apparatus
US7881284B2 (en) Method and apparatus for dynamically adjusting the playout delay of audio signals
JP3636348B2 (en) Voice packet delay fluctuation absorbing apparatus and absorbing method
KR101590972B1 (en) A method of scheduling transmission in a communication network, corresponding communication node and computer program product
US20100290454A1 (en) Play-Out Delay Estimation
US20030112758A1 (en) Methods and systems for managing variable delays in packet transmission
EP2250775B1 (en) Buffer module, receiver, device and buffering method using windows
US5450410A (en) Method and apparatus for constant bit rate traffic in fast packet networks
EP1256200B1 (en) Emulating of information flow
CN102057596A (en) Methods and apparatus for providing modified timestamps in a communication system
CN101175104B (en) Dithering caching device and its management method
CN100555982C (en) Speculative prefetching from the protocol control block of external memory unit
US7715404B2 (en) Method and apparatus for controlling a voice over internet protocol (VoIP) decoder with an adaptive jitter buffer
CN101719808B (en) Output processing method and output processing device of data packets
US7904931B2 (en) Efficient software bitstream rate generator for video server
CN102932568B (en) Embedded VoIP telephone system and method for realizing voice quality management of VoIP telephone
Zic A comparison of two real-time description techniques

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080102

Termination date: 20180509

CF01 Termination of patent right due to non-payment of annual fee