jacktrip - a efficient solution for remote audio transmissionmusic/files/13spr/jacktrip... ·...
TRANSCRIPT
![Page 1: JackTrip - A efficient solution for remote audio transmissionmusic/files/13spr/JackTrip... · Figure:Architecture of HCMP I A single node to receive all request I Add a \dispatcher"](https://reader033.vdocuments.us/reader033/viewer/2022060908/60a31cc90475796030783c36/html5/thumbnails/1.jpg)
JackTrip
Review
Challenge
JackTrip
Extension
Summary
1/27
JackTrip
A efficient solution for remote audio transmission
Dalong Cheng<[email protected]>
April 5, 2013
![Page 2: JackTrip - A efficient solution for remote audio transmissionmusic/files/13spr/JackTrip... · Figure:Architecture of HCMP I A single node to receive all request I Add a \dispatcher"](https://reader033.vdocuments.us/reader033/viewer/2022060908/60a31cc90475796030783c36/html5/thumbnails/2.jpg)
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
![Page 3: JackTrip - A efficient solution for remote audio transmissionmusic/files/13spr/JackTrip... · Figure:Architecture of HCMP I A single node to receive all request I Add a \dispatcher"](https://reader033.vdocuments.us/reader033/viewer/2022060908/60a31cc90475796030783c36/html5/thumbnails/3.jpg)
JackTrip
Review
Challenge
JackTrip
Extension
Summary
UDP
Figure: UDP3/27
![Page 4: JackTrip - A efficient solution for remote audio transmissionmusic/files/13spr/JackTrip... · Figure:Architecture of HCMP I A single node to receive all request I Add a \dispatcher"](https://reader033.vdocuments.us/reader033/viewer/2022060908/60a31cc90475796030783c36/html5/thumbnails/4.jpg)
JackTrip
Review
Challenge
JackTrip
Extension
Summary
TCP
Figure: TCP4/27
![Page 5: JackTrip - A efficient solution for remote audio transmissionmusic/files/13spr/JackTrip... · Figure:Architecture of HCMP I A single node to receive all request I Add a \dispatcher"](https://reader033.vdocuments.us/reader033/viewer/2022060908/60a31cc90475796030783c36/html5/thumbnails/5.jpg)
JackTrip
Review
Challenge
JackTrip
Extension
Summary
LAN & WAN
Figure: LAN & WAN
5/27
![Page 6: JackTrip - A efficient solution for remote audio transmissionmusic/files/13spr/JackTrip... · Figure:Architecture of HCMP I A single node to receive all request I Add a \dispatcher"](https://reader033.vdocuments.us/reader033/viewer/2022060908/60a31cc90475796030783c36/html5/thumbnails/6.jpg)
JackTrip
Review
Challenge
JackTrip
Extension
Summary
Process & Thread
Figure: Process Model
6/27
![Page 7: JackTrip - A efficient solution for remote audio transmissionmusic/files/13spr/JackTrip... · Figure:Architecture of HCMP I A single node to receive all request I Add a \dispatcher"](https://reader033.vdocuments.us/reader033/viewer/2022060908/60a31cc90475796030783c36/html5/thumbnails/7.jpg)
JackTrip
Review
Challenge
JackTrip
Extension
Summary
Process & Thread
Figure: Process with Multi-thread
7/27
![Page 8: JackTrip - A efficient solution for remote audio transmissionmusic/files/13spr/JackTrip... · Figure:Architecture of HCMP I A single node to receive all request I Add a \dispatcher"](https://reader033.vdocuments.us/reader033/viewer/2022060908/60a31cc90475796030783c36/html5/thumbnails/8.jpg)
JackTrip
Review
Challenge
JackTrip
Extension
Summary
Scheduling & Block & Non-Block
Figure: Architecture of HCMP8/27
![Page 9: JackTrip - A efficient solution for remote audio transmissionmusic/files/13spr/JackTrip... · Figure:Architecture of HCMP I A single node to receive all request I Add a \dispatcher"](https://reader033.vdocuments.us/reader033/viewer/2022060908/60a31cc90475796030783c36/html5/thumbnails/9.jpg)
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
![Page 10: JackTrip - A efficient solution for remote audio transmissionmusic/files/13spr/JackTrip... · Figure:Architecture of HCMP I A single node to receive all request I Add a \dispatcher"](https://reader033.vdocuments.us/reader033/viewer/2022060908/60a31cc90475796030783c36/html5/thumbnails/10.jpg)
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
![Page 11: JackTrip - A efficient solution for remote audio transmissionmusic/files/13spr/JackTrip... · Figure:Architecture of HCMP I A single node to receive all request I Add a \dispatcher"](https://reader033.vdocuments.us/reader033/viewer/2022060908/60a31cc90475796030783c36/html5/thumbnails/11.jpg)
JackTrip
Review
Challenge
JackTrip
Extension
Summary
“Universal” Distributed System Design Principle
1. Add another layer of indirection & abstraction
2. Add cahce & buffer
11/27
![Page 12: JackTrip - A efficient solution for remote audio transmissionmusic/files/13spr/JackTrip... · Figure:Architecture of HCMP I A single node to receive all request I Add a \dispatcher"](https://reader033.vdocuments.us/reader033/viewer/2022060908/60a31cc90475796030783c36/html5/thumbnails/12.jpg)
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
![Page 13: JackTrip - A efficient solution for remote audio transmissionmusic/files/13spr/JackTrip... · Figure:Architecture of HCMP I A single node to receive all request I Add a \dispatcher"](https://reader033.vdocuments.us/reader033/viewer/2022060908/60a31cc90475796030783c36/html5/thumbnails/13.jpg)
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
![Page 14: JackTrip - A efficient solution for remote audio transmissionmusic/files/13spr/JackTrip... · Figure:Architecture of HCMP I A single node to receive all request I Add a \dispatcher"](https://reader033.vdocuments.us/reader033/viewer/2022060908/60a31cc90475796030783c36/html5/thumbnails/14.jpg)
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
![Page 15: JackTrip - A efficient solution for remote audio transmissionmusic/files/13spr/JackTrip... · Figure:Architecture of HCMP I A single node to receive all request I Add a \dispatcher"](https://reader033.vdocuments.us/reader033/viewer/2022060908/60a31cc90475796030783c36/html5/thumbnails/15.jpg)
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
![Page 16: JackTrip - A efficient solution for remote audio transmissionmusic/files/13spr/JackTrip... · Figure:Architecture of HCMP I A single node to receive all request I Add a \dispatcher"](https://reader033.vdocuments.us/reader033/viewer/2022060908/60a31cc90475796030783c36/html5/thumbnails/16.jpg)
JackTrip
Review
Challenge
JackTrip
Extension
Summary
Architecture - Sender
Figure: Sender
I Block if empty
I Ring buffer for share
16/27
![Page 17: JackTrip - A efficient solution for remote audio transmissionmusic/files/13spr/JackTrip... · Figure:Architecture of HCMP I A single node to receive all request I Add a \dispatcher"](https://reader033.vdocuments.us/reader033/viewer/2022060908/60a31cc90475796030783c36/html5/thumbnails/17.jpg)
JackTrip
Review
Challenge
JackTrip
Extension
Summary
Architecture - Receiver
Figure: Receiver
I Never block
I Ring buffer for share
17/27
![Page 18: JackTrip - A efficient solution for remote audio transmissionmusic/files/13spr/JackTrip... · Figure:Architecture of HCMP I A single node to receive all request I Add a \dispatcher"](https://reader033.vdocuments.us/reader033/viewer/2022060908/60a31cc90475796030783c36/html5/thumbnails/18.jpg)
JackTrip
Review
Challenge
JackTrip
Extension
Summary
Architecture - Whole Picture
Figure: Architecture
18/27
![Page 19: JackTrip - A efficient solution for remote audio transmissionmusic/files/13spr/JackTrip... · Figure:Architecture of HCMP I A single node to receive all request I Add a \dispatcher"](https://reader033.vdocuments.us/reader033/viewer/2022060908/60a31cc90475796030783c36/html5/thumbnails/19.jpg)
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
![Page 20: JackTrip - A efficient solution for remote audio transmissionmusic/files/13spr/JackTrip... · Figure:Architecture of HCMP I A single node to receive all request I Add a \dispatcher"](https://reader033.vdocuments.us/reader033/viewer/2022060908/60a31cc90475796030783c36/html5/thumbnails/20.jpg)
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
![Page 21: JackTrip - A efficient solution for remote audio transmissionmusic/files/13spr/JackTrip... · Figure:Architecture of HCMP I A single node to receive all request I Add a \dispatcher"](https://reader033.vdocuments.us/reader033/viewer/2022060908/60a31cc90475796030783c36/html5/thumbnails/21.jpg)
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
![Page 22: JackTrip - A efficient solution for remote audio transmissionmusic/files/13spr/JackTrip... · Figure:Architecture of HCMP I A single node to receive all request I Add a \dispatcher"](https://reader033.vdocuments.us/reader033/viewer/2022060908/60a31cc90475796030783c36/html5/thumbnails/22.jpg)
JackTrip
Review
Challenge
JackTrip
Extension
Summary
UDP’s Price - Redundancy
Figure: Redundancy
22/27
![Page 23: JackTrip - A efficient solution for remote audio transmissionmusic/files/13spr/JackTrip... · Figure:Architecture of HCMP I A single node to receive all request I Add a \dispatcher"](https://reader033.vdocuments.us/reader033/viewer/2022060908/60a31cc90475796030783c36/html5/thumbnails/23.jpg)
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
![Page 24: JackTrip - A efficient solution for remote audio transmissionmusic/files/13spr/JackTrip... · Figure:Architecture of HCMP I A single node to receive all request I Add a \dispatcher"](https://reader033.vdocuments.us/reader033/viewer/2022060908/60a31cc90475796030783c36/html5/thumbnails/24.jpg)
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
![Page 25: JackTrip - A efficient solution for remote audio transmissionmusic/files/13spr/JackTrip... · Figure:Architecture of HCMP I A single node to receive all request I Add a \dispatcher"](https://reader033.vdocuments.us/reader033/viewer/2022060908/60a31cc90475796030783c36/html5/thumbnails/25.jpg)
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
![Page 26: JackTrip - A efficient solution for remote audio transmissionmusic/files/13spr/JackTrip... · Figure:Architecture of HCMP I A single node to receive all request I Add a \dispatcher"](https://reader033.vdocuments.us/reader033/viewer/2022060908/60a31cc90475796030783c36/html5/thumbnails/26.jpg)
JackTrip
Review
Challenge
JackTrip
Extension
Summary
Server Architecture 2
Figure: Server Architecture2
26/27
![Page 27: JackTrip - A efficient solution for remote audio transmissionmusic/files/13spr/JackTrip... · Figure:Architecture of HCMP I A single node to receive all request I Add a \dispatcher"](https://reader033.vdocuments.us/reader033/viewer/2022060908/60a31cc90475796030783c36/html5/thumbnails/27.jpg)
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