High Efficiency Video Coding (HEVC) is poised to make some big reveals this year with many software developers showing demos of their individual HEVC implementations. In particular Divx, MainConcept, and Ateme all have beta HEVC encoders that should be available before the close of 2013 and there are plenty of other companies that have at least put out press releases that they’re working on similar implementations. There have also been a host of decoders released so far and promises for many more.
HEVC is the successor to the h264 video format and promises similar quality at 50% of the bitrate you would need with h264 video. Further, HEVC is targeted for high resolution video and should see even greater gains when dealing with 4K video and beyond. A detailed look at how HEVC works is available here – be prepared for your brain to hurt if you’re a layman like me.
As wonderful as the promises of HEVC may be we still don’t have much software to evaluate at this point, let alone content making use of the new format. But as I’ve always had an interest in video compression on an abstract level I’ve decided to do a series of articles here looking at what software IS available now, how it performs, and hopefully get an idea of how this new format works.
So to begin with let’s look at the software we can use right now to create and view HEVC video streams. And if you readers happen to know of any further software that should be added to this list please leave a comment with a link so that we can start to figure out this great new format together.
HM10.1 Reference Encoder
For encoding there is only one solution I’m aware of right now that the average user can get their hands on – the HM10.1 reference encoder. This is the encoder that was used to proof-of-concept the bitstream and has very little in the way of optimization for speed or quality. For reference, when the h264 Mpeg4 AVC reference encoder first launched it produced files of worse quality than the leading Mpeg4 ASP encoders of the time such as Xvid. So you can’t expect this software to show ALL of what HEVC can do, but we can use it to create some initial bitstreams and get an idea of HEVC’s potential. In particular I’d note that the reference encoder does not have any psychovisual optimizations at this point which has really been the main refinement in h264 video over the past several years.
I’ve uploaded a build of the HM10.1 reference encoder here: http://www.mediafire.com/download/owe7i0hwgn86btb/hm_10.1_r3419_release.7z This build was pulled from this forum post if you’d like to get it from the source.
Using the reference encoder is a bit tricky as there aren’t many tools to support it at the moment and the configuration settings are not well documented. I’ll be doing further posts detailing the workflow to make use of the reference encoder in the future.
For Playback we have several options available at the moment.
GPAC Osmo4 Player
The Osmo4 player is a standalone video player which supports playback of HEVC streams in the .mp4 container. Of the test decoders linked here it seems to be the slowest at decoding HEVC video but is the only solution that supports playing HEVC streams from a container. This means it’s the only player that will let you mux audio with your video if you’d like to have a complete experience with your content. So overall this is the player I would recommend at the moment and you can grab it here: http://gpac.wp.mines-telecom.fr/player/
Elecard HEVC Player (Alpha)
Elecard HEVC player (Alpha) is a standalone player that only supports reading raw .hevc bitstreams. So you can’t mux audio with your video using this solution, and they plaster a bunch of watermarks on the output so I can’t recommend this software for general use, though it may be useful for testing purposes: http://www.elecard.com/en/technology/researchlab/hevc-player.html
Strongene Lentoid HEVC decoder
Strongene Lentoid HEVC decoder is a directshow filter (I think?) that allows you to decode HEVC bitstream files through Windows Media Player. It’s a bit strange in that it only decodes HEVC bitstream files with the extension .hm10, but you can easily encode examples with TAppEncoder and rename them from out.hevc to out.hm10. This is probably the best solution as far as performance goes with faster seeking and smoother playback than the other two solutions but again it can’t playback .hevc files muxed with audio. You can download it at: http://xhevc.com/en/hevc/decoder/download.jsp You also may want to take a look at their sample video files.
That’s the basic usable software that I’ve found available today. The other option is that you could compile your own HEVC decoder from OpenHEVC or libav Smarter Fork. For myself, I never have luck in building such solutions so I can’t test them here. I will note, however, that the maintainer of lavfilters has stated that lavfilters will support HEVC once libav Smarter Fork makes it into libav Main (which I guess is pretty obvious). Here’s hoping that happens sooner than later.
So – these are exciting times for armchair video compression hobbyists! Now that we have some tools to create and view HEVC files, next time we’ll look at actually creating some content. Until then!