An end-to-end
communication system is composed of a system encoder, which maps the
source symbols into channel inputs, and a system decoder, which maps
the channel outputs into noisy reproductions of the original source
symbols. The system encoder can be further broken down into a source
encoder, which maps the source symbols into an intermediate alphabet,
typically a set of binary strings, and a channel encoder, which maps
the binary strings into coded bits or waveforms for transmission over
the channel. Similarly, the system decoder can be broken down into
a channel decoder and a source decoder corresponding to the respective
channel and source encoders. Any system encoder-decoder pair can be
represented in this manner, although the breakdown is not unique.
Shannon's
classical separation result states that we can optimize the end-to-end
system design by separately optimizing the source encoder-decoder
pair and the channel encoder-decoder pair. However, this result holds
only in the limit of infinite source code dimension and infinite channel
code block length. Shannon theory does not provide a design algorithm
for good channel codes with finite block length. In addition, Shannon
theory does not address the design of good source codes when the probability
of channel error is nonzero, which is inevitable for finite-length
channel codes. Thus, for practical systems, a joint source and channel
code design may reduce distortion, as well as complexity and delay.
Current
work in joint source and channel code design combines techniques for
optimizing source codes to match channel noise characteristics with
techniques for optimizing channel codes to match source code characteristics
into a single joint design aimed at minimizing the end-to-end distortion
experienced in the communication system as a whole.
The most important factor in that joint design seems to be the bit
allocation between the source coding bits (used to describe the original
data string) and the channel coding bits (used to protect the source
coding bits from channel errors). The resulting codes may be employed
on a wide range of channels (e.g., AWGN channels and Rayleigh fading
channels with and without receiver side information) with significant
performance benefits.