WO2009000821A1 - Procédé et récepteur pour déterminer un niveau de tampon de gigue - Google Patents

Procédé et récepteur pour déterminer un niveau de tampon de gigue Download PDF

Info

Publication number
WO2009000821A1
WO2009000821A1 PCT/EP2008/057991 EP2008057991W WO2009000821A1 WO 2009000821 A1 WO2009000821 A1 WO 2009000821A1 EP 2008057991 W EP2008057991 W EP 2008057991W WO 2009000821 A1 WO2009000821 A1 WO 2009000821A1
Authority
WO
WIPO (PCT)
Prior art keywords
buffer
jitter
packet
buffer level
level
Prior art date
Application number
PCT/EP2008/057991
Other languages
English (en)
Inventor
Henrik Fahlberg Lundin
Original Assignee
Global Ip Solutions (Gips) Ab
Global Ip Solutions Inc.
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
Priority claimed from EP07111282A external-priority patent/EP2009820B1/fr
Priority claimed from US11/822,025 external-priority patent/US7733893B2/en
Application filed by Global Ip Solutions (Gips) Ab, Global Ip Solutions Inc. filed Critical Global Ip Solutions (Gips) Ab
Priority to CN200880022334.1A priority Critical patent/CN101689946B/zh
Publication of WO2009000821A1 publication Critical patent/WO2009000821A1/fr

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/062Synchronisation of signals having the same nominal but fluctuating bit rates, e.g. using buffers
    • H04J3/0632Synchronisation of packets and cells, e.g. transmission of voice via a packet network, circuit emulation service [CES]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes

Definitions

  • the present invention generally relates to reception of data packets with digitized signal samples from a packet data network, and more specifically to determining a target packet level of a jitter buffer adapted to receive packets with delay jitter from the network.
  • data packets transferred by the network are subject to varying delays due to network load when transferring a packet, network path for a transferred packet, and other network conditions.
  • data packets that are produced by a transmitter at a constant rate arrive at a receiver with variable delays.
  • the varying delay of a data packet is mainly due to the delay inflicted by the packet network and is often referred to as jitter.
  • the severity of the jitter can vary significantly depending on network type and current conditions; the variance of the packet delay can change with several orders of magnitude from one network type to another.
  • a decoder In order to reproduce an audio stream that is true to the original, a decoder must be provided with data packets at the same constant rate with which they were sent. Therefore, a device called a jitter buffer is commonly introduced in the receiver.
  • the jitter buffer must de-jitter the incoming stream of packets and provide a constant flow of data to the decoder. This is done by holding the packets in a buffer, thus introducing a delay at the receiver, so that future packets that are subject to larger delays will have arrived before their respective time-of-use. In other words, packets are needed in the jitter buffer to prevent the buffer from underflowing, or at least minimizing the time during which the buffer is in a state of underflow.
  • a long delay of a packet may not only result in that the buffer becomes empty, but also that the buffer may be empty for an unacceptable long time. If the buffer becomes empty, continued playback of the received signal is no longer possible and the delayed packet will be treated as a lost packet.
  • a high buffer level will introduce a long delay at the receiver which is detrimental in itself for two- way human communication.
  • the present invention addresses the problem of how to determine a jitter buffer level which provides a suitable trade-off between buffer delay and packet losses.
  • An object of the present invention is to determine a jitter buffer level which provides a suitable trade-off between buffer delay and packet losses. This object is achieved by a method as defined in independent claim 1 and a receiver as defined in independent claim 14.
  • the basic idea of the invention is to make a jitter buffer adaptive to current network conditions, i.e., the nature and magnitude of the jitter observed by the receiver, by collecting statistical measures that describe these conditions.
  • a probability mass function is continuously updated with inter-arrival times between received packets.
  • an expected duration of an empty jitter buffer is defined.
  • a desired buffer level is not determined with regard to the probability of packet losses as such, but with regard to the effect of packet losses in terms of duration of the discontinued playback of the true signal.
  • This effect is derived from statistical measures of the current and recent network conditions as perceived by the receiving side. The current and recent network conditions are reflected by the updated probability mass function.
  • the probability mass function the risk of "underflowing" the buffer can be derived, i.e. the probability that all packets at a certain buffer level will be decoded before the next packet arrives in the buffer.
  • an advantage of the invention is that a suitable buffer level is determined based on continuous statistical measures of the network conditions.
  • the invention minimizes a cost function, which function includes a jitter buffer delay and an expected duration of an empty buffer.
  • a weighting factor to the cost function so as to weight the jitter buffer delay in relation to the expected duration of an empty buffer, the invention may consider the type of traffic carried by the data packets when determining the desired buffer level. This is advantageous since different kind of data traffic may have different requirements with regard to the trade-off between delay caused by the buffer and duration of any discontinued playback of data.
  • the actual current buffer level is compared with the determined suitable, or target, buffer level. If there is a difference, signaling is made that the length of the decoded signal sample information should be modified, i.e. lengthened or shortened.
  • the current buffer level is indirectly controlled in the direction of the determined target buffer level.
  • Fig. 1 schematically shows an exemplified system in which an embodiment of the inventive receiver is included and configured to operate;
  • Fig. 2 is a flow chart with the operation of the control logic means of the receiver shown in Fig. 1 in accordance with an embodiment of the invention.
  • Fig. 3 shows a filter for filtering a current buffer level of the jitter buffer in Fig. 1 in accordance with an embodiment of the invention.
  • the transmitting end includes an audio source 110 and an encoder 120 for encoding and packetizing the audio for transmission as packet data over a packet data network 130, here indicated as an Internet Protocol network.
  • the receiving end includes a receiver 135 and an audio destination 140.
  • the receiver 135 includes a jitter buffer 150, a decoder 160, an audio buffer 170 and control logic means 180.
  • the control logic means 180 exchange signaling information with the jitter buffer and is also responsible for signaling to the decoder 160 and the audio buffer 170.
  • the present invention is concerned with the jitter buffer 150 and the control logic means 180 of the receiver 135.
  • the decoder 160 is at least in part controlled by the control logic means, as will be described below. However, the decoder 160 itself and its operations does not form part of the present invention, but is described in EP 1 243 090.
  • the control logic means 180 are implemented by suitable state of the art hardware circuitry, including processing circuitry and interfacing circuitry, adapted to execute program instructions stored in a memory of the receiver 135 for causing the control logic means to operate in accordance with the present invention. The design of these program instructions will be appreciated by a person skilled in the art of programming after having studied the present invention disclosure.
  • step 200 the receiver 135 at the receiving end receives data packets with digitized signal samples from the packet data network 130. Received packets are inserted in the jitter buffer 150.
  • the control logic means 180 logs the arrival time of a received packet in order to also log, in step 220, a packet inter-arrival time defined as the time between receipt of the current packet and the previously packet. Alternatively, not every packet's arrival time is logged, but the inter-arrival time between two consecutive packets are logged with a predetermined regular interval with regard to two occurring consecutive packets.
  • the packet arrival statistics are updated by the control logic means 180. In accordance with above, the statistics may be updated for each received packet or at regular intervals.
  • the time elapsed between two packet arrivals is of key interest and will be used in the forthcoming derivations.
  • ⁇ k is a stochastic variable with some PDF f ⁇ (t), for all k. All times are here normalized, so that a packet carries speech information with duration 1 , and the nominal packet inter- arrival time is also 1.
  • p ⁇ (m) as the probability of a packet inter- arrival time in the interval m ⁇ m+1 , i.e.,
  • the function p ⁇ (m) represents the probability mass function (PMF) for the inter-arrival time rounded down.
  • This PMF is continuously updated by the control logic means 180 in order to reflect packet inter-arrival times.
  • the first element p(0) represents the probability of observing a packet inter-arrival time larger than or equal to 0 but smaller than 1
  • p(1 ) represents inter-arrival times between 1 and 2, and so on.
  • the last element, p ⁇ M) represents the probability of observing an inter-arrival time larger than or equal to M. All times are given as packet times.
  • the corresponding element in the vector p is increased towards 1 , while the remaining elements are decreased.
  • the increasing and decreasing is governed by a forgetting factor ⁇ , which is a design variable.
  • the following steps constitute the statistics update method:
  • the vector p will be a constantly evolving estimate of the packet inter-arrival time probability density function (PDF), and should by construction sum up to 1.
  • PDF packet inter-arrival time probability density function
  • the PDF estimate indicates what the network conditions are.
  • the purpose of estimating the inter-arrival time statistics is to calculate a buffer level suitable for the current network conditions. If the network conditions are fair, the probability of observing very long periods between arriving packets is small, and a low buffer level is appropriate. If, on the contrary, the same probability is high, the number of packets in the buffer should be kept higher in order to be prepared for long periods without incoming packets.
  • Determining a suitable buffer level is a trade-off between low internal delay at the receiver and robustness against network jitter, as these two requirements are contradictory.
  • the internal delay is simply the buffer level B.
  • a measure of the robustness against network jitter is the duration of a buffer underflow, i.e., the expected duration of an empty jitter buffer given buffer level B.
  • B is any arbitrary buffer level.
  • an expected duration of an empty jitter buffer is defined by the control logic means 180.
  • an underflow occurs if we have decoded and used all B packets before the next packet arrives.
  • T fmme is the length of the audio data carried in each packet.
  • the probability of an underflow given that we have B packets in the buffer, can be expressed in the PDF f ⁇ (t) as
  • the above equation defines the expected duration of an empty jitter buffer given a buffer level B.
  • determining a suitable buffer level is a trade-off between low internal delay at the receiver and robustness against network jitter in terms of a low expected duration of an empty jitter buffer.
  • the combination of these two quantities forms the basis of an optimization problem that needs to be solved. Therefore, in step 250, the control logic means 180 is configured to define and make use of a cost function in which these two quantities are weighted and combined.
  • the cost function corresponds to a function, e.g., a sum, of the expected duration of an empty jitter buffer and a jitter buffer delay at buffer level B.
  • the parameter C is a weighting factor which sets the relative importance of the two quantities. A large C will punish a large internal buffer delay harder while a small C will punish severe buffer underflows. The goal is to find the B that minimizes the cost function.
  • step 260 the control logic means 180 minimizes the cost function with regard to buffer level B to thereby derive a target buffer level. Analytically this is performed in accordance with the following. Deriving the target buffer level starts with differentiating ⁇ ( ⁇ ) with respect to B and equating the result to zero:
  • the value ⁇ * for which the integral of f ⁇ (t) from ⁇ * to infinity is equal to C is an extreme value of the cost function ⁇ ( ⁇ ).
  • the optimum is unique and well defined for all 0 ⁇ C ⁇ 1 , since f ⁇ (t) ⁇ O and integrates to 1. Furthermore, differentiating ⁇ ( ⁇ ) a second time yields a positive result, indicating that ⁇ ( ⁇ ) is a convex function with one unique minimum.
  • the above result is given using the continuous function f ⁇ (t), while the available statistics in the implemented method is the discretized version p ⁇ (m). Hence, we must re-write the above optimality criterion in terms of the discretized statistics.
  • the target buffer level is the smallest S such that 1 minus the sum of p ⁇ (0), p ⁇ (1 ),..., p ⁇ ( ⁇ ) is smaller than or equal to C. This can be expressed as
  • step 260 in Fig. 2 concerns solving the above last expression to derive B*.
  • One way to implement step 260 is by the following calculation steps 5 - 8 (being subsequent to steps 1 - 4 of the statistics update method described above).
  • C denotes the weighting factor.
  • control logic means in step 270 compare the target buffer level with a current buffer level of the jitter buffer 150.
  • the target buffer level B * is compared with a filtered version S f of the current buffer level, rather than with the instantaneous buffer level B. This is done because the instantaneous buffer level has an intrinsic variation that it is preferred not to respond to immediately.
  • the current buffer level is influenced by three processes:
  • Buffer level modifications because of active decisions to reduce or increase the buffer level (these decisions are further discussed below).
  • the first two processes are considered to be of a stochastic nature, and should preferably be smoothed.
  • the last process consists of deliberate and known buffer level modifications, and these should preferably influence the filtered buffer level immediately, without filtering.
  • the smoothing is performed by a buffer level low pass filter implemented by the control logic means 180, e.g. a filter as depicted in the Fig. 3.
  • a buffer level low pass filter implemented by the control logic means 180, e.g. a filter as depicted in the Fig. 3.
  • use is made of an exponential window in the form of an NR (infinite impulse response) filter with exponentially decaying impulse response.
  • B(n) is the current buffer level at time n as reported by the jitter buffer 150
  • ⁇ f (n) is the filtered buffer level at time n
  • D is a one-step delay block
  • ⁇ 6(n-1 ) is the active buffer level modifications done since the last filter update (positive for level increase and negative for level decrease).
  • the factor v is the filter coefficient, determining the response of the filter.
  • the filter coefficient v is made adaptive in this exemplary implementation, motivated by the following argument.
  • the natural fluctuations in the instantaneous buffer level are larger, and a larger v is desired in order to increase noise resistance.
  • a smaller v can be applied to improve response time.
  • the optimal buffer level B * is an indicator of the current network conditions: a larger B* implies larger variance in inter-arrival times, and should result in a larger filter coefficient v, and vice versa.
  • the filter process is performed by the control logic means 180 each time audio is played out and is summarized in the following steps 9 - 14 (being subsequent to the calculation steps 5 - 8 described above):
  • control logic means 180 compare the target buffer level and the current, or current filtered, buffer level to make a decision regarding any signaling that the current buffer level should be modified in the direction of the target buffer level.
  • the comparison and resulting signaling is quite straightforward and is described with the subsequent steps 15 and 16:
  • signal that data in the buffer should be reduced.
  • signaling that data in the buffer should be reduced is made if ⁇ f >a- ⁇ * where a is a parameter larger than or equal to 1. 16. If the (filtered) current buffer level is sufficiently smaller than the target buffer level, then signal that data in the buffer should be increased.
  • signaling that data in the buffer should be increased is made if Bi ⁇ b-B * , where b is a parameter smaller than or equal to 1.
  • the parameters a and b define a tolerance window around the target buffer level B*. If the current level is within this window, no buffer level adjustment, i.e. no signaling, is necessary.
  • the signaling that data in the buffer should be reduced or increased is made from the control logic means 180 to the decoder 160 or to the audio buffer 170.
  • the decoder 160 or the audio buffer 170 will modify the length of decoded signal sample information. This will result in a change of packet demand by the decoder 160 from the jitter buffer 150, i.e. it will increase or reduce the frequency with which packets are read from the jitter buffer 150, thereby reducing or increasing the buffer level.
  • the actual implementation of how to reduce or increase the buffer level is, however, beyond the scope of this invention. For a detailed description of such an implementation, reference is made to EP 1 243 090.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

L'invention concerne un procédé et un récepteur ayant des moyens logiques de commande pour déterminer un niveau de paquets cible d'un tampon de gigue apte à recevoir des paquets avec des échantillons de signal numérisés, lesquels paquets sont sujets à une gigue de temps de propagation, en provenance d'un réseau de données par paquets. Selon l'invention, le tampon de gigue est rendu adaptatif aux conditions actuelles du réseau, c'est-à-dire à la nature et à l'amplitude de la gigue observée par le récepteur, par collecte de mesures statistiques qui décrivent ces conditions. Le niveau de tampon cible est déterminé en considération de l'effet de pertes de paquets en terme de durée de la reproduction discontinue du signal réel. Cet effet est obtenu à partir de mesures statistiques des conditions du réseau telles qu'elles sont perçues par le côté récepteur et telles qu'elles sont reflétées par une fonction de masse de probabilité qui est continuellement mise à jour avec des temps entre les arrivées de paquets. Le niveau de tampon cible est le résultat d'une minimisation d'une fonction de coût qui pondère le retard de tampon interne et la longueur attendue de sous-dépassement du tampon.
PCT/EP2008/057991 2007-06-28 2008-06-24 Procédé et récepteur pour déterminer un niveau de tampon de gigue WO2009000821A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200880022334.1A CN101689946B (zh) 2007-06-28 2008-06-24 用于确定抖动缓冲器级别的方法和接收器

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
EP07111282A EP2009820B1 (fr) 2007-06-28 2007-06-28 Procédé et récepteur pour déterminer le niveau d'un tampon de gigue
EP07111282.5 2007-06-28
US11/822,025 2007-06-29
US11/822,025 US7733893B2 (en) 2007-06-29 2007-06-29 Method and receiver for determining a jitter buffer level

Publications (1)

Publication Number Publication Date
WO2009000821A1 true WO2009000821A1 (fr) 2008-12-31

Family

ID=39791637

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2008/057991 WO2009000821A1 (fr) 2007-06-28 2008-06-24 Procédé et récepteur pour déterminer un niveau de tampon de gigue

Country Status (2)

Country Link
CN (1) CN101689946B (fr)
WO (1) WO2009000821A1 (fr)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2408165A1 (fr) 2010-07-14 2012-01-18 Global IP Solutions, Inc. Procédé et récepteur pour détection fiable de l'état d'un paquet de flux rtp
WO2016014211A1 (fr) * 2014-07-22 2016-01-28 Qualcomm Incorporated Sélection de décalage pour des données de correction d'erreur

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105939289B (zh) 2015-12-21 2019-03-12 小米科技有限责任公司 网络抖动处理方法、装置和终端设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5623483A (en) * 1995-05-11 1997-04-22 Lucent Technologies Inc. Synchronization system for networked multimedia streams
US6072809A (en) * 1997-08-14 2000-06-06 Lucent Technologies, Inc. Statistical method for dynamically controlling the playback delay of network multimedia streams
US6259677B1 (en) * 1998-09-30 2001-07-10 Cisco Technology, Inc. Clock synchronization and dynamic jitter management for voice over IP and real-time data
US20010019537A1 (en) * 2000-03-03 2001-09-06 Nec Corporation Delay variation buffer control technique
WO2001088763A1 (fr) * 2000-05-18 2001-11-22 Brix Networks, Inc. Procede d'identification de paquets de donnees ip et systeme permettant la connexion tcp et flot de donnees udp
US20040008628A1 (en) * 2002-07-09 2004-01-15 Sujata Banerjee System, method and computer readable medium for flow control of data traffic
US7110422B1 (en) * 2002-01-29 2006-09-19 At&T Corporation Method and apparatus for managing voice call quality over packet networks

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5623483A (en) * 1995-05-11 1997-04-22 Lucent Technologies Inc. Synchronization system for networked multimedia streams
US6072809A (en) * 1997-08-14 2000-06-06 Lucent Technologies, Inc. Statistical method for dynamically controlling the playback delay of network multimedia streams
US6259677B1 (en) * 1998-09-30 2001-07-10 Cisco Technology, Inc. Clock synchronization and dynamic jitter management for voice over IP and real-time data
US20010019537A1 (en) * 2000-03-03 2001-09-06 Nec Corporation Delay variation buffer control technique
WO2001088763A1 (fr) * 2000-05-18 2001-11-22 Brix Networks, Inc. Procede d'identification de paquets de donnees ip et systeme permettant la connexion tcp et flot de donnees udp
US7110422B1 (en) * 2002-01-29 2006-09-19 At&T Corporation Method and apparatus for managing voice call quality over packet networks
US20040008628A1 (en) * 2002-07-09 2004-01-15 Sujata Banerjee System, method and computer readable medium for flow control of data traffic

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2408165A1 (fr) 2010-07-14 2012-01-18 Global IP Solutions, Inc. Procédé et récepteur pour détection fiable de l'état d'un paquet de flux rtp
EP2538632A1 (fr) 2010-07-14 2012-12-26 Google Inc. Procédé et récepteur pour détection fiable de l'état d'un paquet de flux rtp
WO2016014211A1 (fr) * 2014-07-22 2016-01-28 Qualcomm Incorporated Sélection de décalage pour des données de correction d'erreur
KR20170034387A (ko) * 2014-07-22 2017-03-28 퀄컴 인코포레이티드 에러 정정 데이터를 위한 오프셋 선택
US9680507B2 (en) 2014-07-22 2017-06-13 Qualcomm Incorporated Offset selection for error correction data
KR101868759B1 (ko) * 2014-07-22 2018-06-18 퀄컴 인코포레이티드 에러 정정 데이터를 위한 오프셋 선택

Also Published As

Publication number Publication date
CN101689946A (zh) 2010-03-31
CN101689946B (zh) 2013-10-02

Similar Documents

Publication Publication Date Title
US7733893B2 (en) Method and receiver for determining a jitter buffer level
US7881284B2 (en) Method and apparatus for dynamically adjusting the playout delay of audio signals
US10680657B2 (en) Media controller with jitter buffer
US7079486B2 (en) Adaptive threshold based jitter buffer management for packetized data
KR100964437B1 (ko) V o I P 용 적응성 디-지터 버퍼
US7957426B1 (en) Method and apparatus for managing voice call quality over packet networks
US7450601B2 (en) Method and communication apparatus for controlling a jitter buffer
US7324444B1 (en) Adaptive playout scheduling for multimedia communication
US20100290454A1 (en) Play-Out Delay Estimation
US7787500B2 (en) Packet receiving method and device
WO2003079620A1 (fr) Compensation d'obliquite d'horloge pour un tampon d'instabilite
EP2250775A1 (fr) Module tampon, récepteur, dispositif et procédé de mise en tampon utilisant des fenêtres
WO2009000821A1 (fr) Procédé et récepteur pour déterminer un niveau de tampon de gigue
EP2009820B1 (fr) Procédé et récepteur pour déterminer le niveau d'un tampon de gigue
Oklander et al. Jitter buffer analysis
EP1408636A2 (fr) Procédé de reproduction adaptative et prédictive pour applications à base de paquets de voix
Narbutt et al. Adaptive playout buffering for audio/video transmission over the internet
CA2326211A1 (fr) Methode d'adaptation dynamique permettant de commander la gigue audio de la voix
Narbutt et al. Adaptive Playout Buffering for H. 323 Voice over IP applications
JPH02288441A (ja) 音声パケット受信回路
Miranda-Campos ON NLMS ESTIMATION FOR VOIP PLAYOUT DELAY ALGORITHMS-Improving Delay Spike Detection

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200880022334.1

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 08761317

Country of ref document: EP

Kind code of ref document: A1

DPE1 Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101)
DPE1 Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101)
NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 08761317

Country of ref document: EP

Kind code of ref document: A1