Packet audio playout delay adjustment Performance bounds and algorithms Moon, Kurose, Towsley.

Slides:



Advertisements
Similar presentations
Ch. 12 Routing in Switched Networks
Advertisements

Dead Reckoning Objectives – –Understand what is meant by the term dead reckoning. –Realize the two major components of a dead reckoning protocol. –Be capable.
1 CONGESTION CONTROL. 2 Congestion Control When one part of the subnet (e.g. one or more routers in an area) becomes overloaded, congestion results. Because.
CS4550: Computer Networks II network layer basics 3 routing & congestion control.
Congestion Control Algorithms
Engineering Internet QoS
Optimal Jamming Attacks and Network Defense Policies in Wireless Sensor Networks Mingyan Li, Iordanis Koutsopoulos, Radha Poovendran (InfoComm ’07) Presented.
Comp Spring 2003 Delay Jitter Ketan Mayer-Patel.
NUS.SOC.CS5248 Ooi Wei Tsang 1 Adaptive Playout. NUS.SOC.CS5248 Ooi Wei Tsang 2 You are Here Network Encoder Sender Middlebox Receiver Decoder.
RTP: A Transport Protocol for Real-Time Applications Provides end-to-end delivery services for data with real-time characteristics, such as interactive.
1 NUS.SOC.CS5248 OOI WEI TSANG Playout Buffer Management.
NUS.SOC.CS Roger Zimmermann (based in part on slides by Ooi Wei Tsang) 1 Adaptive Playout.
Voice Over Internet- Issues Dr. Abhay Karandikar Department of Electrical Engineering Indian Institute of Technology, Bombay. Dr. Abhay Karandikar Department.
Speech codecs and DCCP with TFRC VoIP mode Magnus Westerlund
Measurements of Congestion Responsiveness of Windows Streaming Media (WSM) Presented By:- Ashish Gupta.
Receiver-driven Layered Multicast S. McCanne, V. Jacobsen and M. Vetterli SIGCOMM 1996.
Rate Distortion Optimized Streaming Maryam Hamidirad CMPT 820 Simon Fraser Univerity 1.
IP Telephony Project By: Liane Lewin Shahar Eytan Guided By: Ran Cohen - IBM Vitali Sokhin - Technion.
2001/02/15Chin-Kai Wu, CS, NTHU1 Adaptive Playout Mechanisms for Packetized Audio Applications in Wide-Area Networks Ramachandran Ramjee, Jim Kurose, Don.
Internet Traffic Patterns Learning outcomes –Be aware of how information is transmitted on the Internet –Understand the concept of Internet traffic –Identify.
EE 4272Spring, 2003 Chapter 10 Packet Switching Packet Switching Principles  Switching Techniques  Packet Size  Comparison of Circuit Switching & Packet.
CS525z Multimedia Networking Review. Analog to Digital What is the relationship between –Fidelity and Sample Size –Fidelity and Sample Rate.
Performance Evaluation of IP Telephony over University Network A project funded by University Fast Track By M. Kousa, M Sait, A. Shafi, A. Khan King Fahd.
802.11n MAC layer simulation Submitted by: Niv Tokman Aya Mire Oren Gur-Arie.
Analysis and Simulation of a Fair Queuing Algorithm
Successful Multiparty Audio Communication over the Internet Vicky Hardman, M. Angela Sasse and Isidor Kouvelas Department of Computer Science University.
Adaptive Playout Scheduling Using Time-scale Modification Yi Liang, Nikolaus Färber Bernd Girod, Balaji Prabhakar.
1 689 Lecture 2 Review of Last Lecture Networking basics TCP/UDP review.
Computer Science 335 Data Compression.
An Empirical Study of Delay Jitter Management Policies D. Stone and K. Jeffay Computer Science Department University of North Carolina, Chapel Hill ACM.
1 TCP Transport Control Protocol Reliable In-order delivery Flow control Responds to congestion “Nice” Protocol.
1 End-to-End Detection of Shared Bottlenecks Sridhar Machiraju and Weidong Cui Sahara Winter Retreat 2003.
Nov. 3, 2000 Adaptive Playout Scheduling in Packet Voice Communications.
Chapter 6 Errors, Error Detection, and Error Control
Low Latency Wireless Video Over Networks Using Path Diversity John Apostolopolous Wai-tian Tan Mitchell Trott Hewlett-Packard Laboratories Allen.
Variable Bit Rate Video Coding April 18, 2002 (Compressed Video over Networks: Chapter 9)
1 Real-Time Traffic over the IEEE Medium Access Control Layer Tian He J. Sobrinho and A. krishnakumar.
Computer Networks: Multimedia Applications Ivan Marsic Rutgers University Chapter 3 – Multimedia & Real-time Applications.
Routing Protocol Evaluation David Holmer
1 Multimedia Communication Multimedia Systems(Module 5 Lesson 2) Summary: r Internet Phone Example m Making the Best use of Internet’s Best-Effort Service.
RANI NALAMARU DEPARTMENT OF COMPUTER SCIENCE BALL STATE UNIVERSITY RANI NALAMARU DEPARTMENT OF COMPUTER SCIENCE BALL STATE UNIVERSITY Efficient Transmission.
Wireless TCP Prasun Dewan Department of Computer Science University of North Carolina
1 Lecture 17 – March 21, 2002 Content-delivery services. Multimedia services Reminder  next week individual meetings and project status report are due.
Network Instruments VoIP Analysis. VoIP Basics  What is VoIP?  Packetized voice traffic sent over an IP network  Competes with other traffic on the.
Scheduling policies for real- time embedded systems.
ONLINE GAME NETWORK TRAFFIC OPTIMIZATION Jaewoo kim Youngho yi Minsik cho.
New Models for Perceived Voice Quality Prediction and their Applications in Playout Buffer Optimization for VoIP Networks University of Plymouth United.
1 IEEE Meeting July 19, 2006 Raj Jain Modeling of BCN V2.0 Jinjing Jiang and Raj Jain Washington University in Saint Louis Saint Louis, MO
An Experimental Evaluation of Voice Quality over the Datagram Congestion Control Protocol H. Balan International Univeristy Bremen L. Eggert Nokia Research.
Queueing and Active Queue Management Aditya Akella 02/26/2007.
TCP with Variance Control for Multihop IEEE Wireless Networks Jiwei Chen, Mario Gerla, Yeng-zhong Lee.
1 Real-Time Traffic over the IEEE Medium Access Control Layer Tian He.
Improving Loss Resilience with Multi- Radio Diversity in Wireless Networks by Allen Miu, Hari Balakrishnan and C.E. Koksal Appeared in ACM MOBICOM 2005,
TCP transfers over high latency/bandwidth networks & Grid DT Measurements session PFLDnet February 3- 4, 2003 CERN, Geneva, Switzerland Sylvain Ravot
1 Fair Queuing Hamed Khanmirza Principles of Network University of Tehran.
RTP and playout delay compensation Henning Schulzrinne Dept. of Computer Science Columbia University Fall 2003.
Lecture 7. Building Forwarding Tables There are several methods Static Method Dynamic Methods Centralized Distributed Distance Vector Link State.
Distributed Systems Lecture 5 Time and synchronization 1.
Probabilistic Congestion Control for Non-Adaptable Flows Jörg Widmer, Martin Mauve, Jan Peter Damm (NOSSDAV’02) Presented by Ankur Upadhyaya for CPSC 538A.
Other Methods of Dealing with Congestion
Buffer Management in a Switch
Transport Protocols over Circuits/VCs
Adaptive Playout.
Introduction to Networking
A Framework for Automatic Resource and Accuracy Management in A Cloud Environment Smita Vijayakumar.
CONGESTION CONTROL.
Other Methods of Dealing with Congestion
Smita Vijayakumar Qian Zhu Gagan Agrawal
Low-Latency Adaptive Streaming Over TCP
Project proposal Multi-stream and multi-path audio transmission
Presentation transcript:

Packet audio playout delay adjustment Performance bounds and algorithms Moon, Kurose, Towsley

Overall Idea Because of packet jitter/delay changes, we need a playout buffer Because of packet jitter/delay changes, we need a playout buffer The bigger, the better The bigger, the better But, a large buffer hinders responsive transmission of audio But, a large buffer hinders responsive transmission of audio 400ms/5% loss for voice conversation 400ms/5% loss for voice conversation Interactive media/video conferencing needs the smallest buffers possible Interactive media/video conferencing needs the smallest buffers possible

A solution, and an approximation In the first part of the paper, they give bounds on the size of playout buffer needed under certain losses In the first part of the paper, they give bounds on the size of playout buffer needed under certain losses Not an online algorithm, computationally expensive (the idea is to focus on percentages) Not an online algorithm, computationally expensive (the idea is to focus on percentages) Inelastic medium Inelastic medium In the second part of the paper, they present an on-line algorithm that is computationally feasible to adjust talkspurt playout delay In the second part of the paper, they present an on-line algorithm that is computationally feasible to adjust talkspurt playout delay

Related Work Playout delay adjustments Playout delay adjustments Per-packet and per-talkspurt (assumptions… speech, or music?) Per-packet and per-talkspurt (assumptions… speech, or music?) Network level observations Network level observations Three graphs, probe compression Three graphs, probe compression Baseline doesn’t change much—real advantages in adjusting delay playout occurs in multi- talkburst delay spikes Baseline doesn’t change much—real advantages in adjusting delay playout occurs in multi- talkburst delay spikes

Problem Statement For a given set of losses at the receiver, we get to set the playout delays of each talkspurt anyway we want For a given set of losses at the receiver, we get to set the playout delays of each talkspurt anyway we want Which assignment is the best? Which assignment is the best? For 1 packet lost? 2? 3? 134? For 1 packet lost? 2? 3? 134? First, let’s fix some notation First, let’s fix some notation

Notation t k i – sender timestamp of ith packet of kth talkspurt t k i – sender timestamp of ith packet of kth talkspurt a k i – receiver timestamp of ith packet of kth talkspurt a k i – receiver timestamp of ith packet of kth talkspurt n k – num packets in kth talkspurt (received) n k – num packets in kth talkspurt (received) N – total number of packets in trace (Σ k n k ) N – total number of packets in trace (Σ k n k ) p k i (A) – playout time under algorithm A p k i (A) – playout time under algorithm A Delay: p k i (A) – t k i, loss if p k i (A) < a k i Delay: p k i (A) – t k i, loss if p k i (A) < a k i Indicator if packet is played: Indicator if packet is played: r k i (A) r k i (A)

Notation, (con’t) Total # packets played under A Total # packets played under A N(A) = Σ k M Σ i nk r k i (A) N(A) = Σ k M Σ i nk r k i (A) Average playout delay: Average playout delay: 1/N(A) Σ k M Σ i nk r k i (A)(p k i (A) – t k i ) 1/N(A) Σ k M Σ i nk r k i (A)(p k i (A) – t k i ) Loss rate: Loss rate: l = (N – N(A)) / N * 100 l = (N – N(A)) / N * 100

Notation (con’t) d’ k i : delay between sending and receiving d’ k i : delay between sending and receiving d’: min (d’ k i ) d’: min (d’ k i ) d k i : normalized delay = d’ k i – d’ d k i : normalized delay = d’ k i – d’ d k (i) : ith smallest normalized delay d k (i) : ith smallest normalized delay

Off-line solution w/o collisions To play i packets from the kth talkspurt, the playout delay must be at least (the unknowable) d k (i) To play i packets from the kth talkspurt, the playout delay must be at least (the unknowable) d k (i) Remember that if algorithm A uses a large playout delay for one talkspurt, it could delay subsequent talkspurts (collisions) Remember that if algorithm A uses a large playout delay for one talkspurt, it could delay subsequent talkspurts (collisions) Let’s ignore them for now Let’s ignore them for now Time: O(MN 2 ) Space: O(MN) Time: O(MN 2 ) Space: O(MN)

Off-line solution w/o collisions We assume percentages of loss, not actual loss patterns (to simplify the complexity) We assume percentages of loss, not actual loss patterns (to simplify the complexity) D(k,i) is min playout delay for i packets lost D(k,i) is min playout delay for i packets lost D(k,i) = D(k,i) = 0 if i = 0 0 if i = 0 d k (i) if k = M and i <= n M d k (i) if k = M and i <= n M inf if k = M and i > n M inf if k = M and i > n M min (((i-j)D(k+1,i-j) + jd k (j ))/i) min (((i-j)D(k+1,i-j) + jd k (j ))/i) Proof by contradiction Proof by contradiction

Offline algorithm with collisions We might have to adjust the playout times of some of the talkspurts due to collisions, so D must now take those into account We might have to adjust the playout times of some of the talkspurts due to collisions, so D must now take those into account We define a vector S (captures length of silence) We define a vector S (captures length of silence) We can capture the sum of the increases We can capture the sum of the increases Now D includes C as well (C tracks packets played out at every step of the computation) Now D includes C as well (C tracks packets played out at every step of the computation) D now differs from the old D only in the extra delays incurred by the collisions D now differs from the old D only in the extra delays incurred by the collisions The new D does not capture the optimal, though (why?) The new D does not capture the optimal, though (why?) Time: O(M 2 N 2 ) Space: O(M 2 N 2 ) Time: O(M 2 N 2 ) Space: O(M 2 N 2 )

An online algorithm Algorithm 1: Linear Algorithm 1: Linear Slow to catch up, good at maintaining a solid value Slow to catch up, good at maintaining a solid value Algorithm 2: Depends on spike detection Algorithm 2: Depends on spike detection Quick at catching up, but sometimes overzealous Quick at catching up, but sometimes overzealous Algorithm 3: Two Modes Algorithm 3: Two Modes Track spikes when they are detected Track spikes when they are detected Otherwise update delay and delay varience (q) Otherwise update delay and delay varience (q) Switch when you have a multiple of the delay Switch when you have a multiple of the delay

Evaluation / Conclusion They instrument the senders and the receivers They instrument the senders and the receivers Plot average playout delay vs packet loss rate Plot average playout delay vs packet loss rate Results seem to show that Algorithm 3 gets very close to the optimal Results seem to show that Algorithm 3 gets very close to the optimal However, the results are very close much of the time However, the results are very close much of the time Sometimes 1 is much worse, sometimes 2, but 3 seems to always be pretty stable Sometimes 1 is much worse, sometimes 2, but 3 seems to always be pretty stable

Queue Monitoring A Delay Jitter Management Policy Stone, Jeffay

Display and e2e Jitter Recall the steps for transmitting video: Recall the steps for transmitting video: Acquire, digitize, compress, transmit, decompressed, buffer, display Acquire, digitize, compress, transmit, decompressed, buffer, display Display Latency is acquire to display Display Latency is acquire to display e2e latency is acquire to buffer e2e latency is acquire to buffer What problems can affect this process? What problems can affect this process? Delay Jitter (variance in e2e latency) Delay Jitter (variance in e2e latency) Can we ensure constant e2e latency? Can we ensure constant e2e latency? Even with Isochronous service models? Even with Isochronous service models? We’re going to adjust the display latency instead We’re going to adjust the display latency instead

Audio vs video Recall the audio application Recall the audio application Talkspurts vs Silence Periods Talkspurts vs Silence Periods Analog for video? Analog for video? Are gaps ok during the transmission? Are gaps ok during the transmission? Display perception Display perception Network congestion Network congestion Video as a datatype Video as a datatype Can we repeat frames, leave black spaces, etc? Can we repeat frames, leave black spaces, etc?

Late policies I-policy: I-policy: Discard Discard All frames now have the same display latency All frames now have the same display latency Static Static E-policy: E-policy: Play at earliest convenience Play at earliest convenience Increases latency for subsequent frames Increases latency for subsequent frames Keeps getting higher than observed e2e delay Keeps getting higher than observed e2e delay

Example

Example

I-vs-E I policy’s advantage I policy’s advantage Low jitter and bursts Low jitter and bursts E policy’s advantage E policy’s advantage Good during high latency and low latency, but not good after bursts Good during high latency and low latency, but not good after bursts Hybrid approach: Queue Monitoring Hybrid approach: Queue Monitoring

Queue Monitoring When displaying a frame When displaying a frame Thresholding operation Thresholding operation If qlen is m, then counters 1 through m-1 are incremented If qlen is m, then counters 1 through m-1 are incremented All others are reset All others are reset When the counter exceeds a value, the oldest frame is discarded When the counter exceeds a value, the oldest frame is discarded If the queue has contained more than n frames, then we can reduce the latency (the jitter is stable) If the queue has contained more than n frames, then we can reduce the latency (the jitter is stable) Large variations occur infrequently and smaller variations occur more frequently (still true today)? Large variations occur infrequently and smaller variations occur more frequently (still true today)?

Evaluation The inherent difficulty The inherent difficulty Gaps vs display latency Gaps vs display latency Lexocographic ordering for two axes Lexocographic ordering for two axes Average gap rate Average gap rate Average display latency Average display latency Experimental Design Experimental Design “academic computer science” network “academic computer science” network Time of day, workload seen Time of day, workload seen

Evaluation Results Comparison between I2, I3, and E Comparison between I2, I3, and E Usually the same or better Usually the same or better Except for incomparable results Except for incomparable results In comparison to the E-policy, it seems to be workload/network dependent In comparison to the E-policy, it seems to be workload/network dependent Instantaneous gap rate, delay policy would be better (perhaps) Instantaneous gap rate, delay policy would be better (perhaps) More adaptive I-policy More adaptive I-policy More tests, of course More tests, of course Addressing ad-hoc quality measures Addressing ad-hoc quality measures