MATT FROST: Welcome to the first session on WebM and the
New VP9 Open Video Codec.
We figured that there's no way to really add a little
excitement to a presentation than to change it at the last
minute, and so what we've spent this morning doing is
encoding some VP9 video and H.264 video and putting
together a side by side demonstration just to give you
a taste of what we're working on.
So what you're going to see is a video.
The video is going to be the same on either side.
It's going to be VP9, the new codec on the left,
H.264 on the right.
And H.264, we used the X264 open video encoder, which is
commonly regarded as the best encoder out there.
We used the highest possible settings.
So we've done everything we can to favor H.264 here.
All of this is at the same data rate, so both of the
videos are going to be at the same data rate.
And the bit rate varies.
In some cases, we're using 500K.
In other cases, we've dropped the bit rate down to bit rates
that are actually banned by certain UN conventions for the
compression of HD video.
And so with that, I think that's everything, Ronald?
RONALD BULTJE: Yes.
So like Matt said, what you're looking at here is shots that
we just took this morning.
We've encoded those in just a couple of hours and basically,
what you're looking at here, on the left, VP9 and on the
right, H.264, is what an amazing job we can actually do
at video compression if we're using the very latest
technologies.
MATT FROST: So you can see the blockiness on the right.
On some of this, it's a lot more evident than others, and
especially evident, if you want afterwards to come up and
take a look at this running on the screen,
we can freeze frames.
But you see there on the right especially, all this
blockiness and how much it clears up as it
moves into VP9 territory.
RONALD BULTJE: And a point here really is that for high
definition video, H.264 can do a reasonable job, but we can
do a lot better than that.
And so having said that, let's actually get started on the
presentation.
MATT FROST: So the way that we're going to handle this
presentation is I'm going to do a quick introduction on why
we care about open video, both why does Google--
which has historically been involved with developing
applications around video--
has gotten down deeply into actually helping work on these
next generation compression technologies.
After we talk about that and why, in general, improving
video compression is good for everybody, I'm going to turn
it over to Ronald for really the meat of this presentation,
which will be to show you some more demonstrations, to talk a
little bit about how we measure video quality, talk
about some of the techniques that we're exploiting to
really make this dramatic improvement in compression.
And then finally, after you've seen this, and I hope that
you've started to get a little excited about what this
technology can do for you, we'll go and talk about the
last stages, how we're going to wrap up this project and
how we're going to get these tools into your hands as
quickly as possible.
So to start off with, just taking a quick look at how
Google got into video.
Video at Google started in the same way that so many big
projects at Google start, as an experiment.
And we launched these efforts with just a single full time
engineer and a number of engineers working 20% of their
time on video, really focusing on video-related data.
And then over the last 10 years, obviously, video at
Google has exploded, not only with YouTube but with Google
Talk, Hangouts, lots of applications where you
wouldn't necessarily think of video as playing a core role,
like Chromoting, which is Chrome Remote Desktopping.
But if you look at the really motivating factors for getting
into video compression, there are a couple that
are really of note.
One, of course, is the acquisition of YouTube.
And with the acquisition of YouTube, we all of a sudden
started to focus very heavily on both improving the
experience for users, improving video quality, but
also about the costs associated with all aspects of
running a service like YouTube.
There are costs associated with ingest, transcode of
video formats, storage of multiple different formats,
and then distribution of the video, both to caches and to
the edge, and ultimately to users.
The second was the move from HTML4 to HTML5, which came at
the same time, pretty much, as our launch of Chrome.
And of course, in HTML4, although to the user, it
appeared that video could be supported in a browser, in
fact, video was supported through runtimes and plug-ins.
With HTML5, video becomes a native part of the browser.
And so with the move towards HTML5, we see it filtering
through the addition of the video tag in Chrome and the
launch of HTML5 video for YouTube.
So these are the two factors--
the focus on quality and reducing cost with YouTube,
the need to build a high quality codec into Chrome and
other browsers for the video tag--
that sparked the acquisition in 2010 of On2 Technologies,
the company that I came from and many members of the WebM
team came from, and the launch of the WebM project.
The WebM project is an effort to develop a high quality,
open alternative for web video.
We're very focused on web video, not on video for
Blu-ray discs, not on video for cable television, but
about solving the problems that we find in web video.
In addition, we're very focused on having an open
standard because we believe that the web has evolved as
quickly is it has because it is based on open technologies.
And clearly, multimedia communication has become such
a core part of how we communicate on the web that we
need open technologies that are rapidly evolving to allow
us to keep pace and to make sure that we can develop the
next generation of killer video applications.
We wanted something simple as well.
So we used the VP8 Open Codec, the Vorbis Open Audio Codec,
which was a long existing open audio codec, and then them the
Matroska File Wrapper.
With the launch of VP9 in a matter of months, we're going
to be adding the VP9 Video Codec as well as the brand new
Opus Audio Codec, which is another open audio codec, very
performant and high quality.
So since our launch, obviously, web video has
continued to grow.
And if we just look at what we know very well, which is
YouTube, YouTube has grown to be a global scale video
platform capable of serving video across the globe to
these myriad connected video enabled devices
that we're all using.
It supports a billion monthly users, and those users are
looking at video four billion times a day for a total of six
billion plus hours of video viewed monthly.
Just to think about that number, that is an hour of
video for every person on the planet consumed on YouTube.
And on the creation side, we're seeing
exactly the same trends.
72 hours of video is uploaded per minute, and that video is
increasingly becoming HD video.
So if you look at the graph on the right, blue is 360p
standard definition video, which is slowly declining, but
quickly being matched by uploads of HD video.
And the key here of great importance is that HD video is
obviously more complex.
There's more data for a given HD video than there is for--
unless, of course, you're encoding it in VP9--
than there is for a standard resolution video.
In addition, I think we can all agree that the better the
video is, the higher the resolution, the more
watchable it is.
And then finally, the other trend that's driving both
creation and consumption is the increase in mobile devices
and the move towards 4G networks.
So even this morning, there was an article when I woke up
and was checking my email saying that YouTube video
accounts for 25% of all downstream
web traffic in Europe.
And I think BitTorrent accounted for 13%.
So there alone, between just two web video services, we're
looking at close to 40% of all web data in Europe being video
related data.
And that accords with what we see from the latest Cisco
forecasts, for instance, which is that consumer web video is
going to be close to 90% of all consumer data on the web
within the next three years.
So it's remarkably encouraging to see the growth in video,
but it also represents a real challenge.
Of course, the good news is that we have a technology that
is up to this challenge, and that is VP9.
With next generation video codecs, with the codecs as
good as VP9, we can effectively significantly
increase the size of the internet and we can
significantly increase the speed of the internet.
So obviously, if you're taking VP9--
which, as Ronald will say, halves the bit rate you need
for the very best H.264 to deliver a
given quality video--
you're going to be able to speed the downloaded of a
download and play a video, you're going to be able to
speed, obviously, the buffering of these videos.
So we have the tools to effectively dramatically
increase the size of the internet.
But of course in doing that, in improving the video
experience, in improving the ability to upload video
quickly, we're going to just create the conditions for even
more consumption of video.
And so it's not going to be enough for us to rest on our
laurels with VP9.
We're going to have to turn to VP9 and keep on doing it, keep
on pushing the boundaries of what we're capable of with
video compression.
So with that, I'm going to turn it over to Ronald to show
you some really remarkable demonstrations of this new
technology.
RONALD BULTJE: Thank you.
So to get started, I just briefly want to say some words
about video quality.
So how do we measure quality?
Well, the most typical way to measure quality is to just
look at it, because at the end of the day, the only thing
that we care about is that the video that you're looking at
looks great to your eyes.
But that's, of course, not all there is to it because as
we're developing a new video codec, we cannot spend our
whole day just watching YouTube videos over and over
and over again.
That would be fun, though.
So in addition to visually analyzing and inspecting
video, we're also using metrics.
The most popular metric in the field for measuring video
quality is called PSNR.
It stands for Peak Square Noise Ratio.
And the graph that you're looking at here on the left is
a typical representation of PSNR on the vertical axis and
video bit rate on the horizontal axis to give you
some sort of a feeling of how those two relate.
So the obvious thing to note here is that as you increase
the bit rate, the video quality, as measured by this
metric, increases.
So at the end of the day what that means is that it doesn't
really matter what code you use, as long as you've
infinite bandwidth, you can accomplish any quality.
However, our goal is to make it easier and faster and
simpler to stream video.
So how does PSNR actually compare to visual quality?
So for that, there's a sample clip.
So what you're looking here is a very high penalty shot of
the New York skyline.
I believe that this is the Empire State Building.
And this clip has a lot of detailed textures all across.
So what we've done here is that we've encoded it at
various bit rates, and then every couple of seconds, we're
dropping the bit rate and the metric quality of the video
will slowly decrease.
So this is 45 dB, and what you're seeing slowly at 30 dB
is that some of the detail, or actually a lot of the detail,
in the backgrounds of the buildings just completely
disappears.
And that was the case at 35 dB already also.
As you go to 25 dB, you can see-- we can go really low in
quality, but you do not want to watch this.
Here's a different scene.
Same thing, we start with the original 45 dB.
40 dB looks pretty good.
35 dB starts having a lot of artifacts, and then 30 and 25
are essentially unwatchable.
So what does that mean for video quality?
Well, the typical target quality for high definition
video on the internet lies rounds 40 dB.
You were just looking at the video, and a 40 dB looked
really quite good.
So if you go to YouTube and you try to stream a 720p
video, that's actually about the quality that you will get.
In terms of bit rate, what you should expect to get is a
couple of megabits a second.
For this particular clip, that's one to two megabits a
second, but that's very source material dependent.
So what we've done, then, is we have taken, I think, about
1,000 YouTube CCL licensed uploads, just randomly
selected from whatever users give us, and we've then taken
out particular material that we're not really interested
in, such as stills or video clips that contain garbage
video content.
And then we were left with, I think, about 700 CCL licensed
YouTube uploads, and we've encoded those at various bit
rates-- so at various quality settings--
with our VP9 Video Codec or with H.264 using the X264
encoder at the very best settings that we are aware of.
Then for each of these clips, we've taken the left half of
the resulting compressed file and the right half of the 264
one and we've stitched those back together, and then you
essentially get what you're looking at here.
So left here is VP9, right is 264, and those are at about
the same bit rate.
You will see graphs here on the left and on the right, and
those are actually the effective bit rate for this
particular video clip.
And as you can see, it starts being about equal.
Now, you saw it just jumping up, and that's because we're
gradually increasing the bit rate to allow the 264 encoder
to catch up in quality.
And as you can see, it slowly, slowly starts looking a little
bit better.
And at this point, I would say that it looks about equal on
the left and on the right.
But if you look at the bit rate graphs, you can basically
see that we're spending about two and a half times the bit
rate on a 264 file versus the VP9 file.
So those are the compression savings that you can get if
you do same quality encodings but you use
VP9 instead of 264.
So what you're looking at here is a comparative graph for the
clip that you were just looking at.
The blue line is the 264 encoded version and the red
line is the VP9 encoded version.
And as I said in the beginning, vertical axis is
PSNR as a metric of quality, and the
horizontal axis is bit rate.
So the way that you compare these is that you can pick any
point from the red line--
or from the blue line, for that matter--
and then you can do two things.
Either you can draw a vertical line and find the matching
point on a blue line that matches the points on the red
line that you're looking for and look at what the
difference in quality is.
But what we usually do is we do it the other way around.
So we're drawing a horizontal line for the point on the red
graph, and we're finding the point that matches the
horizontal line on the blue.
And what you're looking at here is that for the point
that we were just looking at, that is, a quality metric
point of about 37.1 dB, the VP9 version takes an average
of 328 kilobits a second to reach that quality, and for
H.264, you need to go up to essentially 800 kilobits a
second to get exactly the same quality.
So what that means is, again, the metrics tell us you can
get a two and a half times lower bit rate and effectively
get the same quality by using VP9 instead of 264.
If you look to the higher end of the graph, you will see
that the differences in quality for the same bit rates
might go slightly down, but that's basically just because
at the higher end, there's a diminishing
returns for bit rate.
So if you look at the high ends of both of those graphs
and you do the horizontal line comparison, so what is the
different bit rate that accomplishes the same quality?
You will see that it about comes down to 2x over the
whole graph.
So let's look at the difference video because I
could just be cheating you with this one video and we
could have optimized our codec for this one video.
So what you're looking at here is, again, the same thing, VP9
on the left, 264 on the right, live bit rate graphs and we
start at the same bit rate.
Then as we do that, we're slowly increasing the bit rate
for the 264 portion video so that it can actually catch up
in quality.
And what you're looking at is that on the right, the floor
is pulsing a lot.
You can actually see, if you focus on the pants of little
boy here or on the plastic box, that it's very noisy.
But eventually, it catches up in quality.
Guess what happened to the bit rate?
It's almost 3x for this particular video.
So here is the [INAUDIBLE] graph for the material that we
were just looking at.
The red line is VP9, the blue line is H.264.
And if we do the same quality different bit rate comparison
at the point that we were just looking at, which is about
38.6 dB, for VP9, you arrive at about 200 kilobits a
second, and for H.264, you need to interpolate between
two points because we don't have an exact match, and it
ends up being around 550 kilobits a second.
So almost 3x more bit rates to accomplish the same quality,
just because you can use VP9 to save this.
So we've done this over many, many clips.
I told you we had about 700 clips that we tested this on
at various bit rates and various quality settings, and
overall, you can save 50% bandwidth by encoding your
videos in VP9 instead of H.264 at the very best settings that
we are aware of.
So how did we do this?
So let's look a little bit at the techniques that we're
using to actually get to this kind of compression
efficiency.
So a typical video sequence consists of a series of video
frames, and then each of these video frames
consist of square blocks.
So for current generation video codecs, like H.264,
these blocks have a size of a maximum 16 by 16 pixels.
We've blown this up a lot.
We have currently gone up to 64 by 64 pixels for each
block, and then at that point, we introduce a
partitioning step.
And in this partitioning step, we allow you to do a vertical
or horizontal partitioning, a four-way split, or no
partitioning at all, resulting in different size sub-blocks.
If you do a four-way split and you have four 32 by 32 blocks,
then for each of these blocks, you go through the same
process again of horizontal, vertical split, four-way
split, or no split at all.
If you do the four-way split, you get down to 16 by 16
pixels, do the same thing again to get to eight by
eight, and eventually four by four pixels.
So what this partitioning step allows you to do is to break
up the video in such a way that it's optimized for your
particular content.
Stuff that has a very stable motion field can use very
large blocks, whereas video content where things are
moving all across all the time, you can go to very small
video blocks.
So what do we you do after that?
So after this partitioning step, we're usually doing
motion vector coding, and basically what that does is
that you pick a reference frame, and you pick a motion
vector, and then the block of that particular size that you
selected in your partitioning step will be coded using a
motion vector pointing in one of the previously coded
reference frames.
These reference frames in VP8 were usually frames that had
previously been encoded, and were therefore temporarily
before the current frame.
What we've added in VP9 is that we have multi-level alt
reference frames, and what that allows you to do is
encode the video sequence in any frame order, and then you
can use any future frame as a reference frame for a frame
that you encode in order, decide to encode after that.
So for this series of frames in the
left, this is six frames.
I could, for example, choose the first thing encode frame
one, then frame six, and then frame three using both a
future as well as a past reference.
And then, now that I have encoded three, I can encode
one and two really efficiently because they have a very
proximate future and past reference.
After I've encoded two and three, I go to five, which has
four and six as close neighbors.
And so that allows for very temporally close reference
frames to be used as a predictor of contents in the
current block.
So once you have a motion vector, you can use subpixel
filtering, and subpixel filtering allows you to
basically pick a point in between two full pixels and
this point in between is then interpolated using a subpixel
interpolation filter.
In VP8, we had only a single subpixel interpolation filter.
Most codecs use just a single subpixel interpolation filter.
We've actually added three in VP9, and those are optimized
for different types of material.
We have a sharp subpixel interpolation filter, which is
really great for material where there's a very sharp
edge somewhere in the middle.
For example, that city clip that we were looking at in the
beginning, if you're thinking of a block that happens to be
somewhere on the border between the sky and a
building, we consider that a sharp edge, and so using an
optimized filter for sharp edges actually maintains a lot
of that detail.
On the other hand, sometimes there's very sharp edges but
those are not consistent across video frames across
different temporal points in the sequence that you're
looking at.
And that point, this will cause a very high frequency
residual artifact, and so for those, we've
added a low pass filter.
And what the low pass filter does is that it basically
removes sharp edges, and it does exactly the opposite as a
sharp filter.
Lastly, we have a regular filter, which is similar to
the one that VP8 had.
After this prediction step, you have predicted block
contents and you have the actual block that you're
trying to get as close as possible to, and then the
difference between these two is the residual signal that
you're going to encode.
So in current generation video codecs, we usually use four by
four or eight by eight cosine based transforms called DCTs
to encode this residual signal.
What we've added in VP9 is much higher resolution DCT
transforms all the way up to 32 by 32 pixels, and in
addition to using the DCT, we've also added an asymmetric
sine based transform called ADST.
And the sine based transform is optimized for a signal that
has a near zero value at the edge of the predicted region,
whereas the cosine is optimized for a residual
signal that has a zero signal in the middle of
the predicted signal.
So those are optimized for different conditions, and
together, they give good gains when used properly.
Basically, the take home message from all of this is
that we've added big resolution increments to our
video codecs, and what that leads to is a codec that is
highly, highly optimized for high definition video coding.
But at the same time, because it is very configurable, it
still performs really well at low resolution content, for
example, SIF-based 320 by 240 video as well.
So I'll hand it back to Matt now, who will take over.
MATT FROST: Thanks, Ronald.
So I just want to give you a quick recap of what we've
discussed and sort of the highlights of this technology,
and then to tell you about the last steps that we're going
through to get VP9 in your hands.
As Ronald said, we're talking about technology here that is
50% better than literally everything that everybody else
out there is using.
And actually, we made a point to say we were using the very
best encoder out there at the very best settings, settings
which I really think you're not seeing very often in the
real world because they're very difficult to use in a
real world encoding environment.
So I hope that there are a number of people in this
audience now who are out there, either with existing
products with video or products to which you're
looking to add video, or just you're thinking about how you
can use these tools to launch a new product and to come out
with a start-up.
This technology has not been used by anyone right now.
YouTube is testing it and we'll talk about that in a
little bit, but if you adopt VP9, as you can very quickly,
you will have a tremendous advantage over anybody out
there with their current offering based
on 264 or even VP8.
It's currently available in Chrome, and the libvpx library
on the WebM project is out there for you to download,
compile, and test.
It's open source.
You will have access to source code.
The terms of the open source license are incredibly liberal
so that you can take the code, improve it, optimize it,
modify it, integrate it with your proprietary technology,
and you're not going to have to give back a line of code to
the project.
You're not going to have to be concerned that you will
inadvertently open source your own proprietary code.
And then finally, it's royalty free.
And obviously, this is something that was of great
importance to us as we sought to open source a video
technology for use in HTML5 and the video tag.
We believe that the best is still to come in terms of
video products on the web, and that in order to make sure
that people are free to innovate and that start-ups
are free to launch great new video products, we have to
make sure that they're not writing $5 or $6 million
checks a year to standards bodies.
We're working very hard on putting this technology into
your hands as soon as possible.
We did a semi freeze of the bit stream just a couple of
weeks ago, and at that time, we said that we were taking
comments on the bit stream for 45 more days.
Specifically, we're looking for comments from a lot of our
hardware partners to some of the software techniques that
we're using just to make sure that we're not doing anything
that's incredibly difficult to implement in hardware.
At the end of the 45 day period on June 17, we're going
to be bit stream frozen, which means that after June 17, any
VP9 encoder that you use is going to be compliant with any
VP9 decoder, and that if you're encoding content with
an encoder that's out after June 17, it's going to be able
to play back in a decoder after the bit stream freeze.
Obviously, getting VP9 in Chrome is very
important to us.
The beta VP9 which you've been seeing today
is already in Chrome.
If you download the latest development version of Chrome
and enable the VP9 experiment, you'll be able to play back
VP9 content immediately.
As soon as we've frozen the bit stream as of June 17,
we're going to roll it into the Dev Channel of Chrome as
well with this final version of VP9, and then that's going
to work through the beta channel and
through the stable channel.
And by the end of the summer, we are going to have VP9 in
stable version of Chrome rolling out to the hundreds of
millions of users.
I think [INAUDIBLE]
today said that there are 750 million users of
Chrome right now.
VP9 is going to be deployed on a massive scale
by the end of summer.
In terms of final development activities that we're going to
be working on, after the bit stream is finalized in the
middle of June, we're going to be focusing on optimizations
both for performance and for platform.
So what that means is we'll be working on making sure that
they encoder is optimized for a production environment.
Obviously, something that's very important to YouTube as
YouTube moves to supporting VP9, that the decoder is
sufficiently fast to play back on many of the PCs
that are out there.
We're also going to be working on platform optimizations that
will be important to Android developers, for instance, and
to people who want to support VP9 on embedded devices.
These are ARM optimizations and
optimizations for other DSPs.
We have hardware designs coming out.
For those of you who may work with semiconductor companies
or are thinking about a technology like this for use
in something like an action camera, these are hardware
designs that get integrated into a larger design for a
semiconductor and allow for a fully accelerated VP9
experience.
Real time optimizations are obviously incredibly important
for video conferencing, Skype style applications, and also
for new applications that are coming out like screencasting
and screen sharing.
By the end of Q3, we should have real time optimizations
which allow for a very good real time performance.
Those optimizations should then allow VP9 to be
integrated into the WebRTC project, which is a sister
project to the WebM project and basically takes the entire
real time communication stack and builds it into Chrome, and
more broadly into HTML5 capable browsers.
And so what this means is that when VP9 is integrated into
WebRTC, you will have tools that are open source, free for
implementation that used to, even four years ago, require
license fees of hundreds of thousands of dollars.
And you, with a few hundred lines of JavaScript, should be
able to build the same sort of rich video conferencing style
applications and screencasting applications that you're
seeing with products like Hangouts.
And finally, in the end of this year moving into Q1 2014,
we're going to see, again, hardware
designs for the encoder.
So just to give you an idea of how usable these technologies
are, we have a VP9 demonstration in YouTube.
If you download the Development Version of Chrome
and flip the VP9 tag, you can play back YouTube VP9 videos.
And one thing this should drive home is this was a
project that was done over the course of two weeks, that VP9
was built into YouTube.
Obviously, we have very capable teams.
Obviously we have people on the WebM team and people on
the YouTube team who know a lot about these tools, but
this demonstration is VP9 in the YouTube operating
environment.
There's nothing canned here.
This is VP9 being encoded and transmitted in the same way
that any other video is.
So this, I hope, again, will give you guys pause to say,
god, we could do this as well.
We could come out very quickly with a VP9 based service that
will be remarkably better than anything that's
out there right now.
So I just want to leave you with some thoughts about what
I hope that you're thinking about coming away from this
presentation.
The WebM project is a true community-based open source
project, and obviously, these sorts of projects thrive on
contributions from the community.
We are coming out of a period where we've been very
intensively focused on algorithm development.
Some of this work is certainly very complicated stuff that
not every--
even incredibly seasoned--
software engineer can work on.
But we're moving into a point where we're focusing on
application development, we're focusing on optimization,
we're focusing on bug fixes and patches, and that's the
sort of thing that people in this room certainly can do.
So we encourage you to contribute and we encourage
you to advocate for use of these technologies.
We build open source technologies, and yet simply
because we build them, that doesn't mean that
people adopt them.
It takes work to get communities to focus on
adopting these sorts of open technologies.
So advocate within your project in your company,
advocate within your company for use of open technologies,
and advocate within the web community as a whole.
We think that with VP9, we've shown the power of a rapidly
developing, open technology, and we hope that people are as
excited about this as we are and that you go out and help
spread the word about this technology.
But most important, we'd like you to use the technology.
We're building this with a purpose, and that is for
people to go out, take advantage of these dramatic
steps forward that we've made with VP9.
And so we hope you will go out, that you'll be charged up
from this presentation, and that you'll immediately
download the Development Version of Chrome and start
playing around with this and start seeing what you can do
with this tool that we've been building for you.
So there are just a couple of other things I'd like to say.
There are a couple of other presentations
related to this project.
There's a presentation on Demystifying Video Encoding,
Encoding for WebM VP8--
and this is certainly relevant to VP9--
and then another on the WebRTC project.
And again, if you're considering a video
conferencing style application, screensharing,
remote desktopping, this is something that you should be
very interested in.
Sorry.
I shouldn't be using PowerPoint.
So with that, we can open it up to questions.
Can we switch to just the Developers Screen, guys?
Do I do that?
AUDIENCE: Hey there.
VP8, VP9 on mobile, do you have any plans releasing for
iOS and integrating with my iOS applications--
Native, Objective C, and stuff?
Do you have any plans for that?
MATT FROST: He's asking if VP8 is in iOS?
AUDIENCE: VP9 on iOS running on top of Objective C.
RONALD BULTJE: So I think as for Android, it's obvious
Android supports VP8 and Android will eventually
support VP9 as well.
For iOS--
MATT FROST: When I was talking about optimizations, platform
optimizations, talking about VP9, that's the sort of work
we're focusing on, ARM optimizations that should
apply across all of these ARM SOCs that are prevalent in
Android devices and iOS devices.
There aren't hardware accelerators and iOS
platforms right now.
Obviously, that's something we'd like to change, but
presently, if you're going to try to support VP8 in iOS,
you're going to have to do it through software.
AUDIENCE: Thank you.
RONALD BULTJE: Yep?
AUDIENCE: Bruce Lawson from Opera.
I've been advocating WebM for a couple of years.
One question.
I expect your answer is yes.
Is it your assumption that the agreement that you came to
with MPEG LA about VP8 equally applies to VP9?
MATT FROST: It does apply to VP9 in a slightly different
way than it does with VP8.
The agreement with MPEG LA and the 11 licensors with respect
to VP9 covers techniques that are common with VP8.
So obviously, we've added back some techniques we were using
in earlier versions, we've added in some new techniques,
so there are some techniques that aren't subject to the
license in VP9.
But yes, the core techniques which are used in VP8 are
covered by the MPEG LA license, and there will be a
VP9 license that will be available for developers and
manufacturers to take advantage of.
AUDIENCE: Super.
Follow up question.
About 18 months ago, the Chrome team announced they
were going to drop H.264 being bundled in the browser, and
that subsequently didn't happen.
Can you comment further on whether Chrome will drop H.264
and concentrate only on VP9?
MATT FROST: I can't really comment
on plans going forward.
What I can say is that having built H.264 in, it's very
difficult to remove a technology.
I think when you look at the difference between VP9 and
H.264, there's not going to be any
competition between the two.
So I think with respect to VP9, H.264 is slightly less
relevant because there was nothing--
we didn't have our finger on the scale for this
presentation.
And especially, we were hoping to drive home with that
initial demonstration which we put together over the last few
hours that we're not looking for the best videos.
We're just out there recording stuff.
So even if 264 remains in Chrome--
which I think is probably likely--
I don't think it's going to be relevant for a next gen codec
because there's just such a difference in quality.
AUDIENCE: Thanks for your answers.
AUDIENCE: Hi there.
I have a question about performance.
Besides the obvious difference in royalty and licensing and
all that, can you comment on VP9 versus HEVC, and do you
hope to achieve the same performance or proof of
[INAUDIBLE]?
RONALD BULTJE: So the question is in terms of quality, how do
VP9 and HEVC compare?
AUDIENCE: Yeah, and bit rate performance, yeah.
RONALD BULTJE: Right.
So testing HEVC is difficult.
I'll answer your question in a second.
Testing HEVC is difficult because there's currently no
either open source software or commercial software available
that can actually encode HEVC unless it's highly
developmental in nature or it is the development model.
The problem with the alpha and beta versions that are
currently on the market for commercial products is that
we're not allowed to use them in comparative settings like
we're doing.
Their license doesn't allow us to do that.
Then the problem with the reference model is it is a
really good encoder, it gives good quality, but it is so
enormously slow.
It can do about 10 frames an hour for a
high definition video.
That's just not something that we can really use in YouTube.
But yes, we've done those tests.
In terms of quality, they're currently about equal.
There's some videos where HEVC, the reference model, is
actually about 10%, 20% better.
There's also a couple of videos where VP9 is about 10%,
20% better.
If you take the average over, for example, all of those CCL
licensed YouTube clips that we looked at, it's about a 1%
difference.
I think that 1% is in favor of HEVC if you so wish, but 1% is
so small that really, we don't think that plays a role.
What does that mean going forward?
Well, we're really more interested in commercial
software that will be out there that actually encodes
HEVC at reasonable speed settings.
And like I said, there's currently nothing on the
market but we're really interested in such products,
so once they are on the market and we can use them, we
certainly will.
AUDIENCE: Follow-up question about the performance.
Is this any reason to not expect this to scale up to 4K
video or [INAUDIBLE]?
RONALD BULTJE: We think that the current high definition
trend is mostly going towards 720p and 1080p.
So if you look at YouTube uploads, there is basically no
4K material there, so it's just really hard to find
testing materials, and that's why we mostly use 720p and
1080p material.
MATT FROST: But certainly when we designed the codec, we
designed it with 4K in mind.
There aren't any limitations which are going to prevent it
from doing 4K.
RONALD BULTJE: Right.
You can use this all the way up to 16K video if that's what
you were asking.
MATT FROST: Sir?
AUDIENCE: Yeah.
Have you been talking to the WebRTC team, and do you know
when they're going to integrate VP9 into their
current products?
MATT FROST: We talk with the WebRTC team regularly.
As I said, we've got to finish our real time enhancements in
order to actually have a codec that works well in a real time
environment before we can expect it to be integrated
into WebRTC.
But I think we're looking at Q4 2013.
AUDIENCE: Great, thanks.
MATT FROST: We're in 2013, right?
RONALD BULTJE: Yeah.
AUDIENCE: Hi.
I just wanted to talk about the rate of
change in video codecs.
I think maybe we can see like VP8, VP9, we're talking about
an accelerating rate of change.
And that's great, and I really wanted to applaud the efforts
to getting this out in Chrome Dev quickly, or
Chrome Stable quickly.
I just wanted to ask about maybe some of your
relationships with other software vendors that are
going to be relevant, like we're talking Mozilla, IE, iOS
was, I think, previously mentioned.
As this kind of rate of innovation in codecs
increases, how are we going to make sure that we can have as
few transcode targets as possible?
My company is working on a video product.
We don't want to have eight different codecs.
And if we can imagine, let's say, that Version 10 comes out
relatively soon, sometime down the road.
How can we make sure that devices stick with a
relatively small subset of compatible decodings?
MATT FROST: I guess I'm a little unsure
of what you're asking.
In terms of how we get support on devices as quickly as
possible, or how we solve the transcoding problem?
AUDIENCE: And just keeping the number of transcoded formats
as small as possible.
If IE only supports H.264, I have to
have an H.264 encoding.
So I was just wondering what kind of relationships you guys
are working on to make sure that as many devices and
platforms as possible can support something like VP9.
MATT FROST: We're certainly working very hard on that, and
as I said in the slide on next steps showing the timeline,
our focus on having hardware designs out there as quickly
as possible is an effort to try to make sure that there's
hardware that supports VP9 more rapidly than hardware has
ever been out to support a new format.
We had a VP9 summit two weeks ago, which was largely
attended by semiconductor companies.
Actually, some other very encouraging companies were
there with great interest in these new technologies.
But we're working very hard with our hardware partners and
with OEMs to make sure that this is supported as quickly
as possible.
I think internally, what we're looking at is probably relying
on VP8 to the extent that we need hardware now and we don't
have it in VP9.
So I think what we've talked about is always falling back
to an earlier version of an open technology that has very
broad hardware support.
But we're trying to think very creatively about things like
transcoding and things that we can do to ensure backwards
compatibility or enhancement layers.
So part of the focus of this open development cycle and
process that we have is to really try to think in very
new ways about how we support new technologies while
maintaining the benefits of hardware support or device
support for older technologies.
AUDIENCE: Excellent.
Thank you.
AUDIENCE: So a key point in any solution is going to be
performance.
Hardware acceleration really solves that, and that was one
of the challenges with the adoption of VP8 in timing
versus H.264, which has broad spectrum hardware
acceleration.
I understand the timing, the delays, and the efforts you
guys are doing to really achieve that hardware
accelerated support for VP9.
But until then, what's the software performance in
comparison to H.264, for either both software,
software, or software, hardware?
RONALD BULTJE: So we've only done software, software
comparisons for that.
Let me start VP8 264.
Currently, VP8 decoding is about twice as fast as 264
decoding using fully optimized decoders.
VP9 is about twice as slow currently as VP8, decoding,
and that basically means that it's exactly at the same speed
as H.264 decoding.
That's not what we're targeting as a final product.
We haven't finished fully optimizing the decoder.
Eventually, what we hope to get is about a 40% slowdown
from VP8 decoding, and that will put it well ahead of the
fastest 264 decoders that are out there in software.
AUDIENCE: Great.
Thank you.
AUDIENCE: Hello.
I was just wanting to get some background on the comparison
between H.264 and VP9.
For H.264, what were you using--
CVR, BVR, and what QP values?
RONALD BULTJE: This is two path encoding at
the target bit rate.
So it's preset very slow.
Since we're doing visual comparison,
there is no tune set.
It's paths one or two, and then just a target bit rate.
We tend to choose target bit rates that are somewhere
between 100 and 1,000 kilobits a second, and then we just
pick the same point for the VP9 one as well to start with.
AUDIENCE: So in both of the comparisons, you were trying
to be very generic so you weren't tuning the encoder in
any way to make it a better quality at that bit rate.
You were just giving it two paths to try to figure it out.
RONALD BULTJE: So you mean visual quality, or--
AUDIENCE: Yes.
RONALD BULTJE: So we haven't tuned either one of them for
any specific setting.
For 264, the default is that it optimizes for visual
experience, and so that's why we optimized it to 6414.
So it's not optimized for SSIM or PSNR in the visual displace
that we did here.
VP9 encoding does not have any such tunes, so we're not
setting any item, of course.
AUDIENCE: So you just used the default settings of
[INAUDIBLE]?
RONALD BULTJE: We're using the default settings, and we've
actually discussed this extensively with the 264
developers.
They agree.
They support this kind of testing methodology, and as
far as I'm aware, they agree with it.
They fully expect the kind of results that
we're getting here.
AUDIENCE: Right.
OK, thanks.
AUDIENCE: Hi.
One more question about performance.
I think you mentioned a little bit about the real time.
So do you think in the future, you can manage to bring an
application like application desktop into the web?
I mean like putting three, four windows in the same
browser, high definition, things like that?
RONALD BULTJE: In terms of decoding or encoding?
AUDIENCE: Both.
RONALD BULTJE: So for encoding, yes.
So there will be real time settings for this codec
eventually.
For no codec will that get you exactly the types of bit rate
quality ratios that you're seeing here.
These are really using very slow settings, and that is by
far not real time.
But if you set the VP9 codec to real time settings, then
yes, eventually it will encode in real time.
It will be able to do four full desktops all at once, and
it will be able to decode all of those also.
You'll probably need a multicore machine for this,
obviously, but it will be able to do it, yes.
AUDIENCE: And you're using the graphics card and
other things like that.
You didn't mention about the hardware, OpenGL or--
RONALD BULTJE: It's future software.
There's no hardware involved.
AUDIENCE: No using the hardware, the card hardware.
RONALD BULTJE: We're not using GPU or anything like that at
this point.
AUDIENCE: Thank you.
AUDIENCE: Hi.
I just want to know, how does a VP9, now or later, compare
to VP8 and H.264 when we're talking about single task CBR,
low bitrate, real time encoding?
Little background is we are part of the screen sharing
utility that currently uses VP8, and we've been
successfully using it for a year, but the biggest gripe
with VP8 is that it doesn't respect bit rate, especially
on low bit rates, unless you enable frame dropping, which
is unacceptable.
So we have to do a bunch of hacks to actually produce
quality and it doesn't behave like H.264
would in that situation.
So how will VP9 address that problem, or is that even on
the roadmap?
RONALD BULTJE: So in general, desktop sharing and
applications like this, also real time communications, yes,
they're on the roadmap, and yes,
they will all be supported.
In terms of your specific problem, I guess the best
thing to do is why don't you come and see us afterwards in
the Chrome [INAUDIBLE], and we can actually look at that.
AUDIENCE: OK, awesome.
RONALD BULTJE: As for VP9, VP9 currently does not
have a one pass mode.
We've removed that to just speed up development, but it
will eventually be re-added, and it will be as fast as the
VP8 one but with a 50% reduction in bit rate.
AUDIENCE: Do you have a timeline for that?
Is it going to this year, or next year?
RONALD BULTJE: Like Matt said, that will happen--
MATT FROST: Late Q3.
RONALD BULTJE: Q3 2013, around then.
We're currently focusing on YouTube, and those kind of
things will come after that.
AUDIENCE: Awesome.
Thank you.
AUDIENCE: I have two questions, unrelated
questions to that.
What is the latency performance of VP8 compared to
VP9 in terms of decoding and encoding?
And the second question is, how does VP9 compare to H.265?
RONALD BULTJE: So I think H.265, I addressed earlier.
So do you want me to go into that further, or was that OK?
AUDIENCE: More in terms of the real time performance.
RONALD BULTJE: So in terms of real time performance, I think
for both, that's really, really hard to say because
there is no real time HEVC encoder and there is no real
time VP9 encoder.
So I can sort of guess, but this is something that the
future will have to tell us.
We will put a lot of effort into writing real time
encoders or adapting our encoder to be real time
capable because that is very important for us.
MATT FROST: But in terms of raw latency, it should be
faster than VP8.
You can decode the first frame, right?
RONALD BULTJE: I think it will be the same as VP8.
So VP8 allows one frame in, one frame out, and VP9 will
allow exactly that same frame control model.
AUDIENCE: So you mentioned that you've asked hardware
manufacturers for any concerns or comments.
Have you gotten any yet?
MATT FROST: Sorry.
Are considering supporting it?
AUDIENCE: Well, in terms of the algorithms and how you
would actually--
MATT FROST: They're working on it quickly.
AUDIENCE: But there's no concerns or comments or
anything yet?
MATT FROST: No concerns.
AUDIENCE: You said you opened up for comments.
MATT FROST: No.
We have received comments.
We have a hardware team internally that took a first
pass at comments.
We've received a couple of comments additionally just
saying, here's some stuff you're doing in software that
doesn't implement well, and hardware.
I don't foresee a lot of additional comments from the
hardware manufacturers.
The other work that we're doing over the next 45 days is
we had a bunch of experiments that we had to close out, and
so we're doing some closing out as well and just
finishing the code.
Absent act of God, this is bit stream final on June 17.
RONALD BULTJE: So we have actually received comments
from some hardware manufacturers, and we are
actively addressing the ones that we're getting.
AUDIENCE: OK, thanks.
AUDIENCE: Hi.
I might have missed this, but when did you say the ARM
optimizations for VP9 are going to come out?
MATT FROST: Actually starting now really, we're focusing on
doing some optimizations by ourselves and with partners.
So I would say that's going to be coming out second half of
the year, and it'll probably be sort of incremental where
you may get an initial pass of ARM optimizations and then
some final optimization.
It's obviously very important for us for Android to be able
to get VP9 working as well as possible, and obviously, ARM
is incredibly important for the Android ecosystem, so
that's an area of significant focus.
AUDIENCE: And in terms of real time encoding, so in order to
blend into WebRTC, you're going to
have to get that working.
So is this going to coincide with the assimilation of VP9
into WebRTC?
MATT FROST: It'll be real time optimizations, which I think
we were sort of thinking about end of Q3, beginning of Q4,
and then integration into WebRTC will follow on that.
Obviously, the one thing I'd say, it's
an open source project.
If you guys think that you see an opportunity, you can go out
and do the optimizations yourselves.
There are contractors who can do it.
So I encourage you guys to think about that, that you can
take the code and you can start working on some of this
stuff yourselves.
Obviously, we'd love it if you'd contribute it back but
we're not going to force you to.
Yeah, I guess last question.
AUDIENCE: This is a question about how VP9 relates to what
the Android team talked about with Google proxy and the
speedy proxy.
You alluded to transcoding real time for backwards
compatible device support.
Do you see Google doing the same thing they're going to do
with images in this proxy and doing video transcoding to
adapt this and use this for compression mode
in the Google proxy?
RONALD BULTJE: That's a really interesting application, and
that's something that we'll have to look into the future.
It's not as easy as it sounds because video transcoding
actually takes some time.
So that would mean that you would actually have to wait a
minute while the video is transcoding until you can
visit that website, and that might not be quite what you're
looking for.
But it's an interesting application and we might look
into that in the future.
MATT FROST: I think that's it.
I think we're out of time.
Sorry, but we're happy to talk to you afterwards.
[APPLAUSE]