Have you ever noticed that video of falling snow or confetti can look pretty terrible?
As soon as there's stuff floating around in the air,
suddenly the quality of the video you're watching collapses.
You can see it on this incredible clip of 200 kilos of confetti
being blasted at Ed Sheeran on the UK's X Factor.
Now, if you already understand compression, you can pick another video.
Everyone else: let's talk bitrate.
I'm not actually in Norway, by the way, if that wasn't obvious.
I could have tried to find some actual snow or bought a load of confetti,
but this way I can test things with carefully-controlled digital effects.
Which has the added bonus that I don't need to clean up afterwards.
So, to put the problem in one sentence:
there are only so many ones and zeros to go around.
Back in the days of analogue television, video was uncompressed.
The TV camera scanned the signal,
it was transmitted over the air,
and your television played it back.
And yes, it was only standard definition,
but pretty much every bit of detail the camera caught appeared on your screen.
And that's fine when there are only a few television channels
and they're literally going over the air.
But that's really wasteful.
The reason that digital television can have so many channels,
and that web video works at all,
is because of compression.
If you tried to actually transmit every pixel of an HD video, in perfect quality,
you'd need somewhere around a gigabit a second sent over the wire. As I record this,
that would max out over 100 average American broadband connections simultaneously,
or over 50 average South Korean broadband connections.
So if you want YouTube to work: that amount of data, that bitrate,
is going to need to get cut down.
Step 1 is regular, everyday image compression.
Pretty much every photo on the internet is compressed,
mainly by throwing away small bits of detail that the eye probably won't notice.
At least until it gets screenshotted and reposted
twenty different times by twenty different Instagram accounts.
You can take every individual frame of the video
and apply that compression to it.
Step 2 is interframe compression.
Until there's a big scene change, why bother storing whole frames
when you can only store the changes between them?
After all, if I'm just talking against a plain background,
you don't need to keep sending new data for that background every time.
Just tell the video player to repeat what was there before.
Or if I move my body a little as I talk,
just tell the player to move that block of pixels a bit to the right,
and maybe tweak a bit of colour here and there.
That's how you cut down gigabits of video per second
to something you can load on your phone:
Maths. Lots of maths.
But I think a practical demonstration would be better, so:
I'm going to limit the bitrate of this video,
the number of ones and zeros per second that are being used to encode it.
And yes, YouTube will mess about with this after I upload it,
but it can't magically put detail back in:
so even if you're watching in the best quality you can,
what you're seeing now is still the limited version.
This is two hundred kilobits a second,
two hundred thousand ones and zeros going over the wire every second.
Doesn't look too bad with modern encoding,
you might lose some fine detail on my face or hair or hand gestures,
but you can still see what's going on pretty clearly.
But now, let's add a bit of snow.
And suddenly, those bits aren't all being spent on rendering me.
Instead, they're also being used to track the stuff that's flying around.
It's chaotic, it keeps changing direction, it's complicated,
so just saying "move these pixels here" won't work either.
Let's add some confetti, too, all colourful this time.
There we go, now it's all starting to fall apart.
The more stuff there is moving in the frame,
more confetti, there we go,
the more spread out those two hundred kilobits have to be.
More confetti! Here we go.
No matter much the encoder tries to optimise for faces and skin tones,
it just doesn't have the bits spare. More confetti! More snow!
Now, even if I turn the bitrate back up,
put this in the highest quality I can,
it still won't look good right now.
I don't know why I'm yelling, I'm adding the wind noise in later.
But it's not really about the confetti itself. It's about the movement.
If we freeze all this stuff in mid-air,
and make it into a background:
over the next couple of seconds,
the quality of the video will come back.
That's why the picture falls apart when your sports team wins and the confetti drops.
Video literally isn't what it used to be.
[Translating these subtitles? Add your name here!]