Signal Processing - March 2017 - 96
Overview
In augmented reality,
the time from a user's
motion until when it
should be reflected in the
user's display should be
fewer than 15-20 ms to
provide the experience of
presence.
In the last decade, we have witnessed an
explosive demand for multimedia streaming applications. A recent study [1] predicts
that Internet protocol (IP) video alone will
constitute 79% of all consumer Internet
traffic in 2018. Some commonly used
applications include Voice over IP (VoIP),
video on demand, videoconferencing,
desktop zsharing, and interactive network
gaming. Emerging applications that require
low latency include augmented reality, virtual reality, and
various IoT applications involving control loops for industrial
processes. The underlying communication network for these
applications must support high reliability, low latency, and
preferably in-order delivery of source packets. Furthermore, it
must include wireless links that are subjected to noise, fading,
mobility, and interference. To combat such impairments, various error-control mechanisms must be implemented.
In the physical layer of wireless systems, powerful errorcorrecting codes, such as turbo codes, are used to combat
short-term fast fading and white Gaussian noise. These codes
cannot always recover from other sources of impairment, such
as slow fading, buffer overflow, congestion, or interference,
which cause packet losses at the application layer. It is well
known that certain loss patterns, such as burst losses, can cause
a significant deterioration in both audio and video streaming
[2], [3]. It therefore becomes necessary to develop error-control techniques at the application layer to mitigate the effect of
packet losses.
Error-control mechanisms at the application layer can be
divided into two classes: error concealment and error correction. Error-concealment techniques, such as interpolation, are used to mask the effect of missing source packets.
These methods are outside the scope of this tutorial. Errorcorrection techniques, such as retransmission and FEC, are
used to achieve reliable transmission over communication
links. In retransmission-based schemes-for example, automatic repeat request (ARQ)-if the transmitter receives no
acknowledgment for a given packet within a certain time,
the packet is retransmitted to the receiver. While retransmission is a simple and effective means of error correction, it
requires point-to-point communication, a feedback channel,
and low round-trip delay. The round-trip delay depends on
a number of factors, such as the distance between the source
and destination, the number of nodes that must be traversed
in between, the processing delay at each node, and the speed
of the links [4]. It is valuable to remember that even if we
operate at the speed of light without any other delays, we
still have end-to-end delay issues. At the speed of light, the
time required to travel along the earth's circumference is
133 ms. This would correspond to the theoretical minimum
round-trip delay between two diametrically opposite points
on the earth's circumference. The original one-way delay of
the packet transmission plus the round-trip delay from ARQ
can produce a minimum latency of about 200 ms. In prac96
tice, this theoretical delay would be longer,
due to the nonideal refractive index of the
optical fiber and nondirect paths between
the nodes. But the International Telecommunication Union recommendation states
that the end-to-end latency in interactive
voice and video applications must be fewer
than 150 ms [5]-[7]. Clearly, even in the
ideal case, the distances involved and the
application constraints preclude the sole
use of retransmission. Applications such as
augmented reality and virtual reality have even tighter delay
constraints. For example, in augmented reality, the time from
a user's motion until when it should be reflected in the user's
display (commonly referred to as motion-to-photon latency)
should be fewer than 15-20 ms to provide the experience
of presence. Similarly, IoT applications that involve control
feedback loops may require 1-ms or submillisecond latency,
depending on the control loop requirements-orders of magnitude tighter delay constraints than traditional applications.
In addition, support for ultralow-latency wireless services
(millisecond level) are defined as a requirement for fifth-generation cellular systems [8].
A common alternative to retransmission is FEC, where
redundant data are derived from the original data using techniques from coding theory. Error-correcting codes such as
low-density parity-check and digital fountain codes [9], [10]
are recommended in the Internet Engineering Task Force's
real-time transport protocol profiles for noninteractive
streaming applications. These codes operate over long block
lengths, typically a few thousand symbols, and are thus suitable in applications in which the delay constraints are not
stringent. In contrast, FEC codes used in interactive applications are often constrained to have short block lengths due
to the delay constraints. Nevertheless, real-world interactive
audio- and videoconferencing applications such as Skype [11]
are known to use FEC with significant advantages.
In this article, we take a principled approach toward
understanding ideal FEC for low-delay interactive applications. In these applications, the FEC-encoding and FECdecoding operations must happen sequentially on the source
and channel streams, respectively. Furthermore, certain
erasure patterns, such as burst losses, can severely degrade
the performance [2], [3], [11]. To illustrate the effect of burst
losses, consider the two types of packet-loss sequences in
Figure 1. Both of these sequences have the same fraction of
lost packets. Sequence 1 in Figure 1 corresponds to packet
losses that are well separated, while sequence 2 corresponds
to packet losses in a burst. In the former case, a short-block
code can be used for error correction. For example a (3, 2)
RS code [12] will guarantee that all the source packets that
have been erased on link 1 will be recovered. This is possible
because there is, at most, one erasure in any three consecutive
packets. For sequence 2 in Figure 1, a (3, 2) block code cannot be used to recover the burst loss of five packets. We will
have to use a longer (15, 10) RS code to recover all the erased
IEEE Signal Processing Magazine
|
March 2017
|
Table of Contents for the Digital Edition of Signal Processing - March 2017
Signal Processing - March 2017 - Cover1
Signal Processing - March 2017 - Cover2
Signal Processing - March 2017 - 1
Signal Processing - March 2017 - 2
Signal Processing - March 2017 - 3
Signal Processing - March 2017 - 4
Signal Processing - March 2017 - 5
Signal Processing - March 2017 - 6
Signal Processing - March 2017 - 7
Signal Processing - March 2017 - 8
Signal Processing - March 2017 - 9
Signal Processing - March 2017 - 10
Signal Processing - March 2017 - 11
Signal Processing - March 2017 - 12
Signal Processing - March 2017 - 13
Signal Processing - March 2017 - 14
Signal Processing - March 2017 - 15
Signal Processing - March 2017 - 16
Signal Processing - March 2017 - 17
Signal Processing - March 2017 - 18
Signal Processing - March 2017 - 19
Signal Processing - March 2017 - 20
Signal Processing - March 2017 - 21
Signal Processing - March 2017 - 22
Signal Processing - March 2017 - 23
Signal Processing - March 2017 - 24
Signal Processing - March 2017 - 25
Signal Processing - March 2017 - 26
Signal Processing - March 2017 - 27
Signal Processing - March 2017 - 28
Signal Processing - March 2017 - 29
Signal Processing - March 2017 - 30
Signal Processing - March 2017 - 31
Signal Processing - March 2017 - 32
Signal Processing - March 2017 - 33
Signal Processing - March 2017 - 34
Signal Processing - March 2017 - 35
Signal Processing - March 2017 - 36
Signal Processing - March 2017 - 37
Signal Processing - March 2017 - 38
Signal Processing - March 2017 - 39
Signal Processing - March 2017 - 40
Signal Processing - March 2017 - 41
Signal Processing - March 2017 - 42
Signal Processing - March 2017 - 43
Signal Processing - March 2017 - 44
Signal Processing - March 2017 - 45
Signal Processing - March 2017 - 46
Signal Processing - March 2017 - 47
Signal Processing - March 2017 - 48
Signal Processing - March 2017 - 49
Signal Processing - March 2017 - 50
Signal Processing - March 2017 - 51
Signal Processing - March 2017 - 52
Signal Processing - March 2017 - 53
Signal Processing - March 2017 - 54
Signal Processing - March 2017 - 55
Signal Processing - March 2017 - 56
Signal Processing - March 2017 - 57
Signal Processing - March 2017 - 58
Signal Processing - March 2017 - 59
Signal Processing - March 2017 - 60
Signal Processing - March 2017 - 61
Signal Processing - March 2017 - 62
Signal Processing - March 2017 - 63
Signal Processing - March 2017 - 64
Signal Processing - March 2017 - 65
Signal Processing - March 2017 - 66
Signal Processing - March 2017 - 67
Signal Processing - March 2017 - 68
Signal Processing - March 2017 - 69
Signal Processing - March 2017 - 70
Signal Processing - March 2017 - 71
Signal Processing - March 2017 - 72
Signal Processing - March 2017 - 73
Signal Processing - March 2017 - 74
Signal Processing - March 2017 - 75
Signal Processing - March 2017 - 76
Signal Processing - March 2017 - 77
Signal Processing - March 2017 - 78
Signal Processing - March 2017 - 79
Signal Processing - March 2017 - 80
Signal Processing - March 2017 - 81
Signal Processing - March 2017 - 82
Signal Processing - March 2017 - 83
Signal Processing - March 2017 - 84
Signal Processing - March 2017 - 85
Signal Processing - March 2017 - 86
Signal Processing - March 2017 - 87
Signal Processing - March 2017 - 88
Signal Processing - March 2017 - 89
Signal Processing - March 2017 - 90
Signal Processing - March 2017 - 91
Signal Processing - March 2017 - 92
Signal Processing - March 2017 - 93
Signal Processing - March 2017 - 94
Signal Processing - March 2017 - 95
Signal Processing - March 2017 - 96
Signal Processing - March 2017 - 97
Signal Processing - March 2017 - 98
Signal Processing - March 2017 - 99
Signal Processing - March 2017 - 100
Signal Processing - March 2017 - 101
Signal Processing - March 2017 - 102
Signal Processing - March 2017 - 103
Signal Processing - March 2017 - 104
Signal Processing - March 2017 - 105
Signal Processing - March 2017 - 106
Signal Processing - March 2017 - 107
Signal Processing - March 2017 - 108
Signal Processing - March 2017 - 109
Signal Processing - March 2017 - 110
Signal Processing - March 2017 - 111
Signal Processing - March 2017 - 112
Signal Processing - March 2017 - 113
Signal Processing - March 2017 - 114
Signal Processing - March 2017 - 115
Signal Processing - March 2017 - 116
Signal Processing - March 2017 - 117
Signal Processing - March 2017 - 118
Signal Processing - March 2017 - 119
Signal Processing - March 2017 - 120
Signal Processing - March 2017 - 121
Signal Processing - March 2017 - 122
Signal Processing - March 2017 - 123
Signal Processing - March 2017 - 124
Signal Processing - March 2017 - Cover3
Signal Processing - March 2017 - Cover4
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_201809
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_201807
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_201805
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_201803
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_201801
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1117
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0917
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0717
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0517
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0317
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0117
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1116
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0916
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0716
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0516
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0316
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0116
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1115
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0915
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0715
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0515
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0315
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0115
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1114
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0914
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0714
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0514
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0314
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0114
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1113
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0913
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0713
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0513
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0313
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0113
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1112
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0912
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0712
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0512
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0312
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0112
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1111
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0911
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0711
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0511
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0311
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0111
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1110
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0910
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0710
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0510
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0310
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0110
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1109
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0909
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0709
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0509
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0309
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0109
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1108
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0908
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0708
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0508
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0308
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0108
https://www.nxtbookmedia.com