Universiteit Maastricht

Voice over IP in networked virtual environments


Jori Liesenborgs
(jori@lumumba.uhasselt.be)
24th 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
    
    
    
    

Back to the thesis page