HEVC Decoding in Linux for Braswell
When I reviewed the Braswell-based NUC5CPYH earlier I wrote that hardware accelerated HEVC (sometimes also known as H.265) video decoding support did not fully exist in Linux. However, the situation has changed very recently. The defacto standard Linux video framework, FFmpeg, codebase now contains the code for hardware decoding on Intel hardware that supports HEVC decoding (currently only Braswell, soon Skylake also).
If you have the knowhow to build yourself a Linux-based Kodi system according to the post #1 in this Kodi forum thread (the post is kept up-to-date), you can get yourself a system that has Kodi 16 alpha version with HEVC HW decoding inbuilt for Intel Braswell. This only makes sense if you have NUC5CPYH or NUC5PPYH of course.
If you have already installed a system according to that post earlier you can update yours by issuing two commands:
sudo apt-get update sudo apt-get dist-upgrade
UPDATE: There’s also development build of OpenELEC with HEVC decoding support for Braswell now. See the post in the Kodi forums here.
HEVC Decoding Performance
I’ve been playing around with my NUC5CPYH and watching various HEVC clips. Obviously anything at the full HD resolution (1080p) works fine, but more interestingly the device is able to decode 4K (3840×2160) HEVC videos rather well. Even if the software is in its very early stages the results are very encouraging.
- 2160p24: playback was smooth
- 2160p30: some videos were totally smooth, on some videos I saw frames skipped
- 2160p50: a small amount of frames skipped and dropped (very watchable still)
- 2160p60: significant amount of frames skipped and dropped (disturbing jerkiness at times, yet surprisingly watchable)
These results are seen on the NUC5CPYH which has the N3050 CPU and 12 execution units in the GPU. Based on my discussions with NUC5PPYH owners, the 16 execution units in the GPU of that model help make a difference when it comes to 50p/60p playback at 4k resolution. One user told me that the statistics show frames being skipped at 60p, but he thought the playback was visually perfect.
All in all, excellent performance from the low-cost NUC. The Braswell NUC has indeed raised the bar. Instead of asking “Will it do proper deinterlacing of SD content?” the question is now “Will it do 4K HEVC at 60 frames per second?” and while the NUC5CPYH won’t do (at least yet) 4k HEVC at 60 frames per second, it comes quite close. And who knows where we’ll end up as the driver and software development goes on. Remember that in any case there’s no way to get more than 4K at 30 fps out from the box as it only has HDMI 1.4a interface and HDMI 1.4a maximum is 4K at 30 fps. 60 fps 4k decoding is only needed for content that is in that format, but it will always need to be scaled down to 1080p or other resolutions.
It’ll probably take a month or two before all the HEVC support is properly integrated in the actual releases of Kodi and OpenELEC. The current development build of OpenELEC delivers good results already now though.