H.264 is a great compression standard for a number of reasons. It provides very good quality at relatively low bitrates, and its widespread use means it’s supported by essentially every video playback device made in the past five to ten years. It’s also very versatile, not only allowing compression to small file sizes, but also to high quality, high bitrate files that are suitable for use on Blu-ray discs. While H.264 is doing a pretty good job of delivering compressed videos to users, there’s a better standard out there that offers similar quality at even smaller file sizes. The standard is called HEVC, or High Efficiency Video Codec, and it first appeared in 2013 as a true successor to H.264. For this reason, HEVC is also known as H.265, or MPEG-H Part 2.
HEVC’s main advantage over H.264 is that it offers roughly double the compression ratio for the same quality. This means that a video file encoded with HEVC can occupy half the space of its H.264 equivalent with no noticeable change in quality, or the same amount of space with improved quality. Sounds pretty good, right? HEVC is able to compress files to a greater extent than before by evolving upon the H.264 standard. In both of these standards, motion compensated prediction is used to find areas that are redundant within a single frame or in the frames that follow. When redundant blocks of pixels are identified, they are encoded by referencing another area in the same or following frames. In H.264, these blocks can be up to 16x16 pixels in size, but big gains in compression were made by increasing this to 64x64 in HEVC. Other improvements also help HEVC achieve greater levels of compression, including better variable-block-size segmentation, improved deblocking and motion compensation filters, sample adaptive offset filtering, and better motion vector prediction and precision. This page here from the x265 group has a great explanation of these terms and how it can improve HEVC’s efficiency.
As HEVC is relatively new to the scene, it’s not nearly as compatible with existing playback devices as H.264. Many such devices have dedicated hardware for decoding H.264 streams, while equivalent hardware for decoding HEVC is significantly less common. That’s not to say it’s impossible to decode HEVC on today’s devices - software playback is still possible on a wide variety of hardware, and some hardware decoding solutions exist - but something that can play H.264 is not necessarily HEVC-compatible. Note: This feature was originally published on 02/16/2016. We have briefly revised it and bumped it because it’s as relevant today as it was before (if not more, considering today’s broader 4K support). Part of our #ThrowbackThursday initiative.
Hardware Support
Here’s a quick rundown of well-known hardware that includes dedicated HEVC decoding blocks, which definitely support efficient HEVC playback:
Intel 6th-generation ‘Skylake’ Core processors or newer AMD 6th-generation ‘Carizzo’ APUs or newer AMD ‘Fiji’ GPUs (Radeon R9 Fury/Fury X/Nano) or newer Nvidia GM206 GPUs (GeForce GTX 960/950) or newer Other Nvidia GeForce GTX 900 series GPUs have partial HEVC hardware decoding support Qualcomm Snapdragon 805/615/410/208 SoCs or newer. Support ranges from 720p decoding on low-end parts to 4K playback on high-end parts. Nvidia Tegra X1 SoCs or newer Samsung Exynos 5 Octa 5430 SoCs or newer Apple A8 SoCs or newer Some MediaTek SoCs from mid-2014 onwards
As you can see, most desktop hardware released in 2015, and most mobile hardware from late 2014 onwards, supports dedicated HEVC playback. Hardware designers have been more focused on getting HEVC decoding blocks into mobile hardware first, as the CPUs in these products typically aren’t fast enough for software decoding. Support in desktop hardware has been marginally slower as most desktop-class parts are powerful enough to decode HEVC without dedicated decoding blocks.
If you have a computer or device that doesn’t include the aforementioned hardware, that doesn’t mean you won’t be able to decode HEVC. PCs, even those with entry-level CPUs from several years ago, shouldn’t have much trouble software decoding HEVC videos. One of my HTPCs equipped with a $50 Intel Celeron ‘Ivy Bridge’ CPU from 2012 is more than capable of decoding HEVC, and I’ve even achieved smooth playback on Intel Bay Trail and Qualcomm Snapdragon 801 devices in some circumstances (albeit at high CPU utilization). As a general rule of thumb, if you have an older PC you’d describe as “very slow” it probably won’t be capable of HEVC playback. Anything else will probably suffice. Where you won’t find HEVC playback support is in many dedicated media players on the market today. These products either don’t support HEVC hardware decoding, have too low power SoCs to support smooth software playback, or only support a small handful of popular video formats without the ability to run wide format playback software like VLC.
Streaming Boxes and Console Support
Here’s a quick rundown of popular media playing devices that don’t support HEVC: And here are the media players that do support HEVC: This isn’t an exhaustive list, but you can clearly see that there’s just a handful of very recent devices that support native HEVC playback. The Xbox One is the only console to support playback, although support for HEVC was added through a software update, presumably utilizing software decoding. So while the benefits of HEVC encoding are clear, playback is essentially restricted to PCs, high-end smartphones and tablets, and a very small range of media players and consoles. At this point in time, compatibility is a disadvantage to encoding your media library in HEVC.
As for software that can playback HEVC-encoded files, there are many options out there. On Windows 10, you can natively play HEVC videos in the default Films & TV app or through Windows Media Player. Alternatively, you can use VLC or MPC-HC for playback, which support older operating systems, or popular media center apps like Kodi (version 14 onwards) and Plex Media Player. If you’re running macOS or iOS, VLC is your best bet. On Android devices, you’ll be able to play back HEVC files using MX Player through software decoding if your device is fast enough, or if it is, both MX Player and the Plex app supports native HEVC playback. Note that some devices have HEVC decoding blocks in their SoCs but don’t support native playback at this time.