Other

Video - What is Coding Theory?

December 5, 2012

A short story about the need for digital communication and how it leads to coding theory (variable length source coding) with a lossless compression problem. Source encoding attempts to compress the data from a source in order to transmit it more efficiently.

Transcript

SPEAKER 1: We begin with a problem. Alice and Bob live in tree forts which are far apart, with no line of sight between them. And they need to communicate. So they decide to run a wire between the two houses.

They pull the wire tight and attach a tin can to each end, allowing them to send their voices faintly along the wire. SPEAKER 2: Can you hear me? [INAUDIBLE] SPEAKER 3: I can hear you, but just barely. SPEAKER 2: [INAUDIBLE] SPEAKER 1: However, there is a problem.

Noise. Whenever there is a high wind, it becomes impossible to hear the signal over the noise. So they need a way to increase the energy level of the signal to separate it from the noise. This gives Bob an idea.

They can simply pluck the wire, which is much easier to detect over the noise. But this leads to a new problem. How do they encode their messages as plucks? Well, since they want to play board games across a distance, they tackle the most common messages first.

The outcome of two dice rolls. In this case, the messages they are sending can be thought of as a selection from a finite number of symbols. In this case, the 11 possible numbers, which we call a discrete source. At first, they decide to use the simplest method.

They send the result as the number of plucks. So to send a three, they send three plucks. Nine is nine plucks. And 12 is 12 plucks.

However, they soon realize that this takes much longer than it needs to. From practice, they find that their maximum pluck speed is two plucks per second. Any faster and they will get confused. So two plucks per second can be thought of as the rate, or capacity for sending information in this way.

And it turns out that the most common roll is a seven, so it takes 3.5 seconds to send the number seven. [WIRE VIBRATIONS] Alice then realizes they can do much better if they change their coding strategy. She realizes that the odds of each number being sent follows a simple pattern. There is one way to roll a two, two ways to rule is three, three ways to roll a four, four ways to roll a five, five ways to roll a six, and six ways to rule a seven, the most common.

And five ways to roll an eight, four ways for a nine, and so on, back to one way for a 12. And this is a graph showing the number of ways each result can occur, and the pattern is obvious. So now let's change the graph to number of plucks versus each symbol. She proceeds by mapping the most common number, seven, to the shortest signal, one pluck.

She then proceeds to the next most probable number, and if there is a tie, she picks one at random. In this case, she selects six to be two plucks, and then eight to be three plucks, and then back to five to be four plucks, and nine as five plucks, and back and forth until we reach 12, which is assigned to 11 plucks. Now the most common number, seven, can be sent in less than a second, a huge improvement. This symbol change allows them to send more information in the same amount of time on average.

In fact, this coding strategy is optimal for this simple example in that it's impossible for you to come up with a shorter method of sending two dice rolls using identical plucks. However, after playing with the wire for some time, Bob hits on a new idea.