Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
JackTrip
Review
Challenge
JackTrip
Extension
Summary
1/27
JackTrip
A efficient solution for remote audio transmission
Dalong Cheng<[email protected]>
April 5, 2013
JackTrip
Review
Challenge
JackTrip
Extension
Summary
Presentation Outline
1. Keyword, Concept Review
2. Challenges for Audio Transmission
3. JackTrip’s SolutionI MotivationI ArchitectureI Buffer DesignI Redundancy Design
4. A JackTrip’s ExtensionI MotivationI Evaluation MetricsI DesignI Implementation
2/27
JackTrip
Review
Challenge
JackTrip
Extension
Summary
UDP
Figure: UDP3/27
JackTrip
Review
Challenge
JackTrip
Extension
Summary
TCP
Figure: TCP4/27
JackTrip
Review
Challenge
JackTrip
Extension
Summary
LAN & WAN
Figure: LAN & WAN
5/27
JackTrip
Review
Challenge
JackTrip
Extension
Summary
Process & Thread
Figure: Process Model
6/27
JackTrip
Review
Challenge
JackTrip
Extension
Summary
Process & Thread
Figure: Process with Multi-thread
7/27
JackTrip
Review
Challenge
JackTrip
Extension
Summary
Scheduling & Block & Non-Block
Figure: Architecture of HCMP8/27
JackTrip
Review
Challenge
JackTrip
Extension
Summary
Classic Multi-Thread Program Model
Figure: Single-Producer & Consumer Model
I More than one consumer thread (Thread Pool)
I What if more than one producer and consumer
9/27
JackTrip
Review
Challenge
JackTrip
Extension
Summary
Distributed Flavor
Figure: Architecture of HCMP
I A single node to receive all request
I Add a “dispatcher” to assign work
10/27
JackTrip
Review
Challenge
JackTrip
Extension
Summary
“Universal” Distributed System Design Principle
1. Add another layer of indirection & abstraction
2. Add cahce & buffer
11/27
JackTrip
Review
Challenge
JackTrip
Extension
Summary
Problem Definition
1. WAN, Bi-directionl, Audio, Transimition
2. Similar Problems (Not Same!)I LAN Area Studio SystemI Uni-directional WAN Streaming
12/27
JackTrip
Review
Challenge
JackTrip
Extension
Summary
Objective
1. Latency Critical (25ms is upper bound!)
2. Maximize Audio Quality (Tradeoff)
Possible Solution
1. Compressed Audio
2. One way recording techniques
13/27
JackTrip
Review
Challenge
JackTrip
Extension
Summary
Audio Latency
1. Acoustic Delay
2. Analogue to Digital, Digital to Analogue Delay
3. Transmission Delay
4. Settings Chosen for Audio Quality(Etc. Sample Rate, Buffer,Packet Size)
I 96kHz Sample Rate, Audio Buffer 64 samples, deliver64/96000 * 1000 = 0.67ms
14/27
JackTrip
Review
Challenge
JackTrip
Extension
Summary
Basic Approach
I Transfer Uncompresssed Audio(require large bandwidth)
I Use UDP instead of TCPI TCP, Retransmission, Fix-Order, Ack-SchemeI Have to deal with UDP lost packet :(
I Ring buffer
15/27
JackTrip
Review
Challenge
JackTrip
Extension
Summary
Architecture - Sender
Figure: Sender
I Block if empty
I Ring buffer for share
16/27
JackTrip
Review
Challenge
JackTrip
Extension
Summary
Architecture - Receiver
Figure: Receiver
I Never block
I Ring buffer for share
17/27
JackTrip
Review
Challenge
JackTrip
Extension
Summary
Architecture - Whole Picture
Figure: Architecture
18/27
JackTrip
Review
Challenge
JackTrip
Extension
Summary
Ring Buffer Analysis
I Ring buffer is to Inter-thread CommunicationI InitializationI What is ideal situation, What is two possible consequence
Figure: Ring Buffer19/27
JackTrip
Review
Challenge
JackTrip
Extension
Summary
Consequence 1 - Underflow
I Vread > Vwrite
I Reason: packet lost or network jitter
I Solution: send slicent or last received packet
Figure: Ring Buffer Underflow
20/27
JackTrip
Review
Challenge
JackTrip
Extension
Summary
Consequence 2 - Overflow
I Vwrite > Vread
I Reason: clock drift, peer’s clock faster than local clock
I Solution: reset read position (drop samples)
Figure: Ring Buffer Overflow
21/27
JackTrip
Review
Challenge
JackTrip
Extension
Summary
UDP’s Price - Redundancy
Figure: Redundancy
22/27
JackTrip
Review
Challenge
JackTrip
Extension
Summary
A Interesting Extenion
Think of Such Scenario
I You have a muscian friend
I You build a tool for him to use
I He need to tune parameters everytime using the tool
I He don’t understand those parameters
23/27
JackTrip
Review
Challenge
JackTrip
Extension
Summary
Evaluation Metric
Figure: Karplus - Strong string model
I Pinging the network acoustically
I Lpsilaternal be server side
I Contralateral be client side
24/27
JackTrip
Review
Challenge
JackTrip
Extension
Summary
Server Architecture 1
Figure: Server Architecture1
I Pinging the network acousticallyI Lpsilaternal be server sideI Contralateral be client side
25/27
JackTrip
Review
Challenge
JackTrip
Extension
Summary
Server Architecture 2
Figure: Server Architecture2
26/27
JackTrip
Review
Challenge
JackTrip
Extension
Summary
Summary
I Multi-thread model in audio
I Ring buffer
I Use ear to facilitate tuning parameters
27/27