On the desktop: Nvidia added full hardware acceleration support for HEVC and VP9 in their GM206 GPU only this year. Intel has partial hardware acceleration for both codecs since this year as well, as does AMD. But: Only for decoding.
On mobile, there are some SoCs that can do HEVC and VP9 decoding in 4K in hardware (like Nvidia's Tegra X1), but the large majority of smartphones does not yet have this capability. Encoding is a different story altogether.
And iPhones will only do H.264 anyway for the foreseeable future.
I'm a strong proponent of open standards and I'm really looking forward to VP9 and HEVC, but it will be a while before they'll have good hardware acceleration on all platforms.
“open standard” just means is that there's a spec which you could use to produce a compatible encoder or decoder. It doesn't mean that no country in the world has issued a patent which could conceivably affect your ability to sell a product.
The other thing to remember is that most companies find the presence of a licensing model reassuring because you know the costs up front, as opposed to finding out when someone sues after you've shipped millions of units. That's one of the reasons why VP8 never posed a threat to H.264 – it was almost certain to get bogged down in lawsuits if it became popular – and why HEVC Advance is arguably the biggest threat to H.265 since it removes that comfort zone.
“open standard” just means is that there's a spec which you could use to produce a compatible encoder or decoder.
A published standard has that advantage, but I think when most people talk about "open standards" they are implying a standard that can freely be implemented, in much the same way that for example Open Source software implies more than mere visibility of the source code.
“most” people in certain communities: if you poll open source developers, that's probably true but almost everything you use has components covered by ISO/IETF/ITU-T/etc. standards which do allow licensing at varying levels and all of those people also strongly feel that they work on "open standards” as well.
> in much the same way that for example Open Source software implies more than mere visibility of the source code.
This has a very similar problem: public domain != BSD != Apache != GPL, etc. Depending on who you talk to, only some of those are true open source licenses.
In both cases, the term is too vague to be useful for this level of fine-parsing and you have to talk in more detail about the aspects which you're specifically referring to rather than using a broad term.
I understood the narrow viewpoint leonatan was coming from but I don't think it's helpful to promulgate personal political viewpoints as universal truth. If you say “HEVC isn't an open standard”, a sizable number of people are going to say “This person has no idea what they're talking about”. If instead you say “HEVC is patent encumbered” you avoid all of that and focus on the core problem.
"open standard" does, in various contexts, mean you can use it without paying a royalty, including in the W3C, the EU, and various other national governments and standards bodies:
That discussion reaffirms my point starting with the very first sentence: “open standard” simply doesn't have a fixed definition outside of a few very specific contexts.
Even the exceptions you list are aspirational goals rather than ensured outcomes: the W3C might define an open standard, get everyone involved to agree to some sort of blanket license, and still have the standard in practice be encumbered by an outside company or insufficiently comprehensive legal agreement with a dishonest standards committee member.
It's a fine and worthy goal but it doesn't mean all that much in practice absent changes to IP laws.
The other thing to remember is that most companies find the presence of a licensing model reassuring because you know the costs up front, as opposed to finding out when someone sues after you've shipped millions of units.
This argument doesn't seem very strong. Even if you've paid one group to license their rights, that's no guarantee that someone else won't also assert rights to what you're using as well.
I suggest that the real problem here is having a legal rights framework where such great uncertainties can exist in terms of both the rights involved and the potential costs incurred or actions required as a result.
Many problems in the tech industry would be solved if no-one could interfere with the free exchange of information just by applying laws intended for very different purposes to lock down things like file formats and communication protocols. When these IP laws were first conceived, I don't think legally preventing anyone from offering a DVD player that could skip the ads was what they had in mind.
> I suggest that the real problem here is having a legal rights framework where such great uncertainties can exist in terms of both the rights involved and the potential costs incurred or actions required as a result.
Complete agreement: IP reform would be enormously valuable simply for making it possible for less than massive companies to treat this as anything more survivable than a nuclear hand-grenade duel. Eventually winning a case doesn't help if the litigation bankrupts you.
OpenCL implementations of codecs aren't even as efficient as CPU implementations. Just because there's some pixels in there doesn't make it a good fit. They are entirely useless.
Smartphones are not the only hardware that uses codecs. There are computers, consoles, handhelds, DSLRs, video cameras, security cameras etc. When you actually look at hardware in its totality VP9 has been completely irrelevant.
And from my perspective a ubiquitous codec is infinitely more valuable than an open one.
The worrying part is "x265 is still too slow to be useful in most practical scenarios" and "if your CPU usage target for x264 is anything faster than veryslow, you basically want to keep using x264, since at that same CPU usage target, x265 will give worse quality for the same bitrate than x264."
That can mean that there's a real danger that we'll get a lot of worse content in the future, as those who encode may go to use a bigger-number codec because it's assumed to be better (hey, it's newer!) Most of people never encode with different codecs every material just to compare the actual quality.
I'm pretty sure x265 is just not mature enough. Same thing happened with x264, where it had many issues and bugs. We all know how these fared in the long run.
When occasionally encoding: yes.
When your daily business is encoding larger batches: not necessarily.
edit: Just to clarify: we've got an encoding farm which will have to be siginficantly expanded if a substantial amount of content will have to be transcoded in H.265.
And if you need to have a h.264 fallback anyway, then any alternative codec starts at a disadvantage, as it can only have marginal gains in return for the extra encoding.
I 110% understand the appeal of 60+fps encoding, and the requirement to do so for certain applications.
However, I'm reminded of all of the very useful work I and my colleagues were able to do while using Remote Desktop or VNC over a 56kbit/s or 128kbit/s connection. Choppy remoting is far from a dealbreaker for folks who need to get things done. :)
Chrome has done so much right, why did they develop a case of NIHS with this? I've RDP'd to machine IN CHINA with better performance than I got connecting my uncle across town. The devs that came up with the harebrained idea, should be forced use it with a standard $299 chromebook, not their dev Pixel. Normal chrombooks are way too under powered for this.
- for encoding: libvpx always matches or surpasses the quality of x264 (at a given bitrate or at a given CPU budget), because the red line (libvpx) is always on or above the blue line (x264) here: https://blogs.gnome.org/rbultje/files/2015/09/vp9-x264-x265-... (Except there is no libvpx data for CPU budget under ~0.2 SPF —which is a bit annoying, I know for one I do most of my encodings spending around 0.05-0.15 seconds per frame.)
- for single-threaded decoding: ffvp9 is faster than ffh264
- for multi-threaded decoding: ffvp9 is a bit slower than ffh264
On top of that, the VP9 implementations are bound to become faster (whereas not much more improvement can be made to already-mature H.264 implementations), so VP9 is bound to become even more preferable over H.264 over time.
I think the author's first concluding bullet point ("next-gen codecs provide 50% bitrate improvements over x264, but are 10-20x as slow") is poorly worded. Sure, you can make the next-gen codecs ultra slow by using the highest quality settings, but for libvpx you should choose less agressive settings, and you will still beat the quality of x264 at the same CPU cost.
Edit: in addition, these benchmarks show that as of today out of all these implementations, VP9 even matches or beats HEVC on all aspects (encoding at a given bitrate, encoding at a given CPU budget, single- and multi-threaded decoding). But I expect this to change as HEVC implementations are all quite still immature.
37 comments
[ 4.2 ms ] story [ 71.7 ms ] threadHowever, not mentioned is that a higher bitrate doesn't necessarily correlate with higher perceptual quality.
Additionally, part of H.264's appeal is its widespread hardware support, which enables features like smartphones with 4K video recording.
On mobile, there are some SoCs that can do HEVC and VP9 decoding in 4K in hardware (like Nvidia's Tegra X1), but the large majority of smartphones does not yet have this capability. Encoding is a different story altogether. And iPhones will only do H.264 anyway for the foreseeable future.
I'm a strong proponent of open standards and I'm really looking forward to VP9 and HEVC, but it will be a while before they'll have good hardware acceleration on all platforms.
The other thing to remember is that most companies find the presence of a licensing model reassuring because you know the costs up front, as opposed to finding out when someone sues after you've shipped millions of units. That's one of the reasons why VP8 never posed a threat to H.264 – it was almost certain to get bogged down in lawsuits if it became popular – and why HEVC Advance is arguably the biggest threat to H.265 since it removes that comfort zone.
A published standard has that advantage, but I think when most people talk about "open standards" they are implying a standard that can freely be implemented, in much the same way that for example Open Source software implies more than mere visibility of the source code.
> in much the same way that for example Open Source software implies more than mere visibility of the source code.
This has a very similar problem: public domain != BSD != Apache != GPL, etc. Depending on who you talk to, only some of those are true open source licenses.
In both cases, the term is too vague to be useful for this level of fine-parsing and you have to talk in more detail about the aspects which you're specifically referring to rather than using a broad term.
https://en.wikipedia.org/wiki/Open_standard
Even the exceptions you list are aspirational goals rather than ensured outcomes: the W3C might define an open standard, get everyone involved to agree to some sort of blanket license, and still have the standard in practice be encumbered by an outside company or insufficiently comprehensive legal agreement with a dishonest standards committee member.
It's a fine and worthy goal but it doesn't mean all that much in practice absent changes to IP laws.
This argument doesn't seem very strong. Even if you've paid one group to license their rights, that's no guarantee that someone else won't also assert rights to what you're using as well.
I suggest that the real problem here is having a legal rights framework where such great uncertainties can exist in terms of both the rights involved and the potential costs incurred or actions required as a result.
Many problems in the tech industry would be solved if no-one could interfere with the free exchange of information just by applying laws intended for very different purposes to lock down things like file formats and communication protocols. When these IP laws were first conceived, I don't think legally preventing anyone from offering a DVD player that could skip the ads was what they had in mind.
Complete agreement: IP reform would be enormously valuable simply for making it possible for less than massive companies to treat this as anything more survivable than a nuclear hand-grenade duel. Eventually winning a case doesn't help if the litigation bankrupts you.
And from my perspective a ubiquitous codec is infinitely more valuable than an open one.
That can mean that there's a real danger that we'll get a lot of worse content in the future, as those who encode may go to use a bigger-number codec because it's assumed to be better (hey, it's newer!) Most of people never encode with different codecs every material just to compare the actual quality.
It's only for streaming (videocalls, screen mirroring, VNC) that you really need fast encoding.
When occasionally encoding: yes. When your daily business is encoding larger batches: not necessarily.
edit: Just to clarify: we've got an encoding farm which will have to be siginficantly expanded if a substantial amount of content will have to be transcoded in H.265.
Think about Chromoting (Chrome Remote Desktop). They send VP9 video. If they cannot encode it at 60Hz (15ms per frame), it will look choppy.
(I quickly looked into it yesterday: https://twitter.com/espadrine/status/648158704420941825)
However, I'm reminded of all of the very useful work I and my colleagues were able to do while using Remote Desktop or VNC over a 56kbit/s or 128kbit/s connection. Choppy remoting is far from a dealbreaker for folks who need to get things done. :)
- for encoding: libvpx always matches or surpasses the quality of x264 (at a given bitrate or at a given CPU budget), because the red line (libvpx) is always on or above the blue line (x264) here: https://blogs.gnome.org/rbultje/files/2015/09/vp9-x264-x265-... (Except there is no libvpx data for CPU budget under ~0.2 SPF —which is a bit annoying, I know for one I do most of my encodings spending around 0.05-0.15 seconds per frame.)
- for single-threaded decoding: ffvp9 is faster than ffh264
- for multi-threaded decoding: ffvp9 is a bit slower than ffh264
On top of that, the VP9 implementations are bound to become faster (whereas not much more improvement can be made to already-mature H.264 implementations), so VP9 is bound to become even more preferable over H.264 over time.
I think the author's first concluding bullet point ("next-gen codecs provide 50% bitrate improvements over x264, but are 10-20x as slow") is poorly worded. Sure, you can make the next-gen codecs ultra slow by using the highest quality settings, but for libvpx you should choose less agressive settings, and you will still beat the quality of x264 at the same CPU cost.
Edit: in addition, these benchmarks show that as of today out of all these implementations, VP9 even matches or beats HEVC on all aspects (encoding at a given bitrate, encoding at a given CPU budget, single- and multi-threaded decoding). But I expect this to change as HEVC implementations are all quite still immature.
You might as well compare MPEG-4 Part 2 codecs (known under names like DivX, Xvid or whatnot) with H.264.
http://compression.ru/video/codec_comparison/call_for_codecs...
One of the results that's already leaked shows VP9 ahead of all the HEVC encoders except for x265, which it trails by a couple of percentage points.