This morning, a gaggle of journalists and I huddled around a table full of smartphones, watching a clip from Netflix’s Stranger Things. There was plenty of grain and blockiness to be sure, but it was sufficiently — even perfectly — watchable. The kicker? That surprisingly decent video is what Netflix told us to expect on a 100 kilobit/second data connection; that’s a fraction of a fraction the LTE speeds we’re used to in the US, but all too common in other parts of the world.
Netflix considers itself a global television service, and since its international launch last year, it has seen countries new to the service lean on smartphones and tablets for their streaming video fixes. It’s no wonder that finding a way to deliver decent video quality at low speeds is so important inside the company. As it turns out, Netflix seems to have cracked the code, and in a way that feels sort of obvious.
The thing to remember is that not all movies (or TV shows, for that matter) are created equally. Long, lingering static shots obviously aren’t as complex as fight scenes, but to date, Netflix has been encoding those videos as though they were the same. That’s where Netflix senior research scientist Ioannis Katsavounidis and a team of 10 come in. They’ve cooked up a way to encode videos with Google’s VP9 codec where static scenes and visually simple videos (like, say, an episode of Bojack Horseman) don’t require as much data as complex scenes.
“You don’t need that many bits to get high definition from ‘Bojack’ when it’s simple animation,” Netflix VP of product Todd Yellin explained. “We started looking at the title and how complex the visuals were and how many bits we would need for high definition and standard definition. And we were able to take ‘Bojack’ and decrease way down the number of bits we would do for an HD stream or an SD stream.”
Long story short: your Netflix mobile queue will look better and your data usage should be smaller. The whole thing sounds sounds deceptively simple, and it is. Just nailing the basics of how watching videos on Netflix works requires a lot of juggling, too, but it’s mainly behind the scenes.
As your network’s bandwidth fluctuates, you’ll switch from one encode of a video to another, sometimes even without knowing it. Katsavounidis says that, on average, a movie or a television show has ten different encodes — generally, if you started watching something in high quality, you won’t get bumped into a lower quality stream unless your network really takes a hit.
With this clever new encoding scheme, you might not see as many of those switches between different versions of the same video, and that video should look better to boot. Here’s the real problem, though: how do you scale that to work with Netflix’s entire library?
“We’re trying to make it as automatic as possible,” Yellin noted. In this case, Netflix developed a machine learning algorithm and used research from two universities that ran studies on hundreds of people to build a general understanding of what quality video looks like. Those algorithms have taken into account that model, and will be used to determine how each of the videos in Netflix’s library are encoded. If all goes well, you won’t even notice the change (except for perhaps on your phone bill). Naturally, there’s value in this sort of on-the-fly quality control on desktops and on TVs too, but that’ll likely launch well after Netflix for mobile gets its big upgrade.
That order of operations seems a little backward, but some extra refinement to the quality model has to happen — you wouldn’t want to watch a movie optimized for a phone in your home theater. In any case, for a company that found its success on big screens, it’s clear the path to continued growth lies in small ones.
Click here to catch up on the latest news from MWC 2017.