Voice over IP in networked virtual environments
Universiteit Maastricht |
Voice over IP in networked virtual environments
Jori Liesenborgs
([email protected])
24 th May 2000
promotor: Prof. dr. W. Lamotte
afstudeercoördinator: Prof. dr. E. Flerackers
Academiejaar: 1999-2000
``Thesis voorgedragen tot het behalen van de graad van doctorandus in de Kennistechnologie, afstudeervariant Informatica-Multimedia'' |
Contents
Preface | |||
Acknowledgements | |||
Abstract | |||
Dutch summary | |||
S.1 Inleiding | |||
S.2 Het Internet Protocol (IP) | |||
S.3 Communicatie via de stem | |||
S.4 Compressiemethodes | |||
S.5 Verzenden van stemsignalen | |||
S.6 VoIP in virtuele omgevingen | |||
S.7 Gerelateerde onderwerpen | |||
S.8 JRTPLIB | |||
S.9 Een VoIP framework | |||
S.10 VoIP testapplicaties | |||
S.11 Conclusie |
|||
Part I: Introduction |
|||
Chapter 1: Introduction | |||
1.1 What is Voice over IP (VoIP)? | |||
1.2 Thesis subject | |||
1.3 Uses of Voice over IP | |||
1.3.1 Telephone alternative | |||
1.3.2 In virtual environments | |||
1.3.3 Other | |||
1.4 Components of a VoIP system | |||
1.4.1 Grabbing and regeneration | |||
1.4.2 3D effects | |||
1.4.3 Compression and decompression | |||
1.4.4 Transmission and reception | |||
1.5 Outline of this document | |||
1.5.1 Research | |||
1.5.2 Development | |||
1.6 Summary |
|||
Part II: Research |
|||
Chapter 2: The Internet Protocol (IP) | |||
2.1 Network software architecture | |||
2.1.1 Layered design | |||
2.1.2 OSI reference model | |||
2.1.2.1 The physical layer | |||
2.1.2.2 The data link layer | |||
2.1.2.3 The network layer | |||
2.1.2.4 The transport layer | |||
2.1.2.5 The session layer | |||
2.1.2.6 The presentation layer | |||
2.1.2.7 The application layer | |||
2.1.3 TCP/IP reference model | |||
2.1.3.1 The host-to-network layer | |||
2.1.3.2 The internet layer | |||
2.1.3.3 The transport layer | |||
2.1.3.4 The application layer | |||
2.2 How IP works | |||
2.2.1 Packet format | |||
2.2.2 Addressing | |||
2.2.3 Routing | |||
2.2.4 Multicasting | |||
2.3 Characteristics of IP networks | |||
2.4 Higher level protocols | |||
2.4.1 TCP | |||
2.4.2 UDP | |||
2.5 Why use IP? | |||
2.6 IPv6 | |||
2.6.1 Reasons | |||
2.6.2 Description | |||
2.6.2.1 Header | |||
2.6.2.2 Important changes from IPv4 | |||
2.7 Summary |
|||
Chapter 3: Voice communication | |||
3.1 Grabbing and reconstruction | |||
3.1.1 Sampling and quantisation | |||
3.1.2 Reconstruction | |||
3.1.3 Mixing audio signals | |||
3.2 Communication requirements | |||
3.2.1 Error tolerance | |||
3.2.2 Delay requirements | |||
3.2.3 Tolerance for jitter | |||
3.3 Communication patterns | |||
3.4 Impact on VoIP | |||
3.4.1 Sampling rate and quantisation | |||
3.4.2 Packet length | |||
3.4.3 Buffering | |||
3.4.4 Delay | |||
3.4.5 Silence suppression | |||
3.5 Summary |
|||
Chapter 4: Compression techniques | |||
4.1 Preliminaries | |||
4.2 General compression techniques | |||
4.2.1 Lempel-Ziv compression | |||
4.2.2 Huffman coding | |||
4.3 Waveform coding | |||
4.3.1 Differential coding | |||
4.3.1.1 Differential PCM (DPCM) | |||
4.3.1.2 Adaptive DPCM (ADPCM) | |||
4.3.1.3 Delta modulation (DM) | |||
4.3.2 Vector quantisation | |||
4.3.3 Transform coding | |||
4.4 Vocoding | |||
4.4.1 Speech production | |||
4.4.2 Vocoding basics | |||
4.4.3 Linear Predictive Coding (LPC) | |||
4.5 Hybrid coding | |||
4.5.1 Residual Excited Linear Prediction (RELP) | |||
4.5.2 Codebook Excited Linear Prediction (CELP) | |||
4.5.3 Multipulse and Regular Pulse Excited coding (MPE and RPE) | |||
4.6 Other compression techniques | |||
4.7 Delay by compression | |||
4.8 Voice compression standards | |||
4.9 Summary |
|||
Chapter 5: Transmission of voice signals | |||
5.1 Requirements | |||
5.2 Transmission protocols | |||
5.2.1 Why not TCP or UDP? | |||
5.2.2 Real-time Transport Protocol (RTP) | |||
5.2.2.1 RTP | |||
5.2.2.2 RTCP | |||
5.2.3 Packet size | |||
5.3 QoS mechanisms | |||
5.3.1 Assigning priorities to packets | |||
5.3.2 Stream Protocol version two (ST2) | |||
5.3.3 Resource Reservation Protocol (RSVP) | |||
5.3.4 ST2 vs RSVP | |||
5.4 Transmission delay | |||
5.5 Summary |
|||
Chapter 6: Voice in virtual environments | |||
6.1 Where to generate the 3D sound? | |||
6.2 Distribution mechanisms | |||
6.2.1 Unicasting | |||
6.2.2 Multicasting | |||
6.2.2.1 A single group | |||
6.2.2.2 One group per participant | |||
6.3 Generating 3D sound | |||
6.3.1 Perception of 3D sound | |||
6.3.1.1 Primary cues | |||
6.3.1.2 Effect of the outer ear | |||
6.3.1.3 Estimating range | |||
6.3.2 Generating spatialised sound | |||
6.3.2.1 Using ITD and IID | |||
6.3.2.2 Head-Related Transfer Functions (HRTFs) | |||
6.3.2.3 Speakers vs headphones | |||
6.4 Processing delay | |||
6.5 Bandwidth considerations | |||
6.6 Summary |
|||
Chapter 7: Related subjects | |||
7.1 H.323 | |||
7.1.1 Functionality | |||
7.1.2 Components | |||
7.1.3 Architecture | |||
7.2 Session Initiation Protocol (SIP) | |||
7.2.1 User agent (UA) | |||
7.2.2 Network servers | |||
7.2.3 Operation | |||
7.3 H.323 vs SIP | |||
7.4 Real-Time Streaming Protocol (RTSP) | |||
7.5 Summary |
|||
Part III: Development |
|||
Chapter 8: JRTPLIB | |||
8.1 Features | |||
8.1.1 Functionality | |||
8.1.2 Platforms | |||
8.2 Implementation | |||
8.2.1 Overview | |||
8.2.2 Design decisions | |||
8.2.3 Testing | |||
8.3 Publication and reactions | |||
8.4 Summary |
|||
Chapter 9: A VoIP framework | |||
9.1 Framework layout | |||
9.2 Implementation | |||
9.2.1 Main VoiceCall routine | |||
9.2.2 Grabbing and reconstruction | |||
9.2.3 Mixing | |||
9.2.4 Compression schemes | |||
9.2.5 Localisation effects | |||
9.2.6 Transmission | |||
9.3 Encountered problems | |||
9.4 Summary |
|||
Chapter 10: VoIP test applications | |||
10.1 General issues | |||
10.2 An Internet telephony application | |||
10.3 A 3D environment | |||
10.4 Summary |
|||
Part IV: Conclusion |
|||
Conclusion |
|||
Part V: Appendices |
|||
Appendix A: Literature | |||
A.1 References | |||
A.2 Other sources | |||
Appendix B: List of figures | |||
Appendix C: Abbreviations | |||