Wednesday, May 21, 2014

Part 2: Bay Trail Atom NUC as HTPC (DE3815TYKHE)

In the previous article I told you about the new Bay Trail Atom NUC DE3815TYKHE (Amazon) which is mainly targeted for various embedded systems, digital signage, kiosks, etc. In this article I'm going to have a look if this newcomer would be a decent HTPC. It's a bit short on horsepower, but a Raspberry Pi is able to run OpenELEC/XBMC after all...

The Fanless NUC

Installation

I'm going to install the OpenELEC operating system, which is purpose-built for just one task: to run XBMC as your media PC. It's really easy to install, operate and update. I will install it on the internal 4-gigabyte eMMC disk that is built into the NUC. I can imagine that the integrated storage is appealing for embedded systems, but it will also accommodate the OpenELEC operating system nicely! Of course there won't be almost any storage for media files, but even for that you've got two options: either you stream your content from a network drive (NAS) or you can install a 2.5 inch disk in this NUC.

In order to run OpenELEC on the internal eMMC disk, you will need to use release 4.0.2. That's the first release that has the MMC support built into the kernel and the installer is also modified to give you the possibility to copy the files to the MMC. A small detail here, it seems only the quick installation method works in 4.0.2, the custom installation did not find the eMMC drive. In general the installation was easy, just press enter a few times and you've got a nice fanless HTPC. Remove the USB stick, reboot and OE is up and running.

From the push of the power button, the NUC takes approximately 25 seconds to boot into XBMC. Not as fast as a Haswell NUC booting from an SSD disk, but not too slow either. In the previous article I managed to read a bit over 40 megabytes per second from the eMMC disk. And it's dead silent...

First Impression

It seems to work nicely. The interface is slick and everything works pretty much as I'd expect. There doesn't seem to be a big if any difference between this and my i3 NUC. I changed out of the default Confluence skin to Aeon Nox or Aeon MQ5 that are known to be more CPU intensive, but even they work fine. The supercheap ($5, eBay) AR5B95 WiFi adapter works fine and I download a few addons.

If you have a video playing in the background and you summon the EPG or the menus that are overlaid on the video, the transitions in the menus become slightly jerky.

Full HD playback

I try testing out a few 1920x1080 24p videos and the playback seems to be ok. It's good to make sure that the following settings are configured in XBMC:

  • Video - Playback - Adjust display refresh rate to match video: On start/stop
  • Video - Playback - Sync playback to display: Enabled
  • Video - Playback - A/V sync method: Video clock (Drop/Dupe audio)
  • Video - Acceleration - Decoding method: Hardware accelerated
  • Video - Acceleration - Allow hardware acceleration (VDPAU): Disabled
  • Video - Acceleration - Allow hardware acceleration (VAAPI): Enabled
  • Video - Acceleration - Use Mpeg-2 VAAPI: Enabled
  • Video - Acceleration - Use Mpeg-4 VAAPI: Enabled

There are a few very high bitrate test videos at jell.yfish.us that I tried. I tried the 100 Mbps video and even that was fine. Here is a screencapture from the 50 megabit video clip. There were no dropped frames during the playback. There are a few right in the beginning of the playback, but it stabilizes after first second or so. Do note that in real life most of us will not face a video with 50 megabits/s...

Playback of 50 Mbit/s 24p stream

Does It Do 24p?

After the problems that Intel GPUs have had with displaying the 24p content another question everyone had was if the NUC can do proper 24p, meaning not 24 frames per second but 23.976 frames per second. And yes, it seems that the Bay Trail GPU gets the check mark.

Scaling

If you are watching content that is not in 1920x1080 resolution such as a normal SD television, DVD content or even 720p HD content it needs to be scaled up to 1920x1080 resolution by the HTPC. Now comes the bad news, the GPU in this NUC is too slow to support anything except the Bilinear scaling. Bilinear in my opinion is fine for 720p to 1080p scaling, but for SD TV to full HD it produces quite a blocky picture. Especially diagonal lines look bad with bilinear scaling. Note that this is only a concern with SD content, for HD content no scaling is required.

100% crop from a video where SD content has been upscaled.

Deinterlacing

Deinterlacing comes into play if you are watching interlaced content. That is typically live TV content or content recorded by a live TV backend such as Tvheadend. Due to historical reasons TV is often broadcasted in a format where only every other line is drawn on the screen (ie. for 1920x1080i video there's only 540 lines of information at broadcasted at any given moment). This was fine with CRT screens, but modern LCD screens do not really support interlaced content. Thus it needs to be deinterlaced before it can be shown properly. Deinterlacing can be done in many ways and the more sophisticated ways consume more processing power but also provide a better picture.

The graphics drivers for the Intel HD Graphics on Linux are currently in an unfortunate state and the deinterlacing is not really working as it's supposed to work. Thus the alternative is to use CPU for performing the deinterlacing. This works ok for SD content, but for content broadcast in interlaced HD format (1080i) the feeble CPU in the NUC is not able to handle the deinterlacing. Only the plain BOB works, but that provides a jittery image.

Another, rather annoying issue with the software deinterlacing is that you need to enable the option Video - Acceleration - Use SW Filter for VAAPI and then you can choose even Yadif as deinterlacing method (Yadif equals to Deinterlace method De-interlace in the settings) which provides the best result and this is fine for the SD content. However, when you try to play non-interlaced 1080p content, the SW filter option will consume CPU even if there is no deinterlacing to be done. Thus you need to switch off that option if starting to watch a 1080p video.

Again, deinterlacing is probably only an issue if you are watching live TV with your HTPC. Almost all streamed content is in progressive mode and does not need to be deinterlaced. It seems that some work is being done to enable hardware accelerated deinterlacing on the Intel GPUs, so this situation might improve in future.

Live TV

I've successfully installed Tvheadend and watching SD live TV content is not a problem. Interlaced HD TV probably is an issue due to the interlacing woes mentioned above.

Conclusion

The DE3815TYKHE surprised me with its lively performance in the menus and good performance when playing full HD videos. It is totally silent and you do not need to add any storage media as there's an intenal eMMC storage built in. It's significantly faster than a Raspberry Pi for example (but that's an unfair comparison) and OpenELEC works smoothly out of the box on it (version 4.0.2 or newer required).

On the other hand both of the Bay Trail NUCs suffer from having only 4 execution units in their GPU. The DE3815TYKHE model reviewed here gets hit even more, as the GPU is only clocked at 400 MHz vs. the 756 MHz that the DN2820FYKH model does. As a result the upscaling and deinterlacing functionality with the current drivers leaves something to be desired. The same situation applies to all Bay Trail motherboards currently.

Considering that the DE3815TYKHE is sold for more or less the same price as the other Bay Trail NUC DN2820FYKH, I'd say unless you really desperately want a fanless system, go for the DN2820FYKH. Better yet, go for an i3 model and you don't need to ever worry about upscaling or deinterlacing. Don't get me wrong, this NUC is a fine small PC, but you should be aware of its limitations.
 

             

20 comments:

  1. And does it play 3-D movie

    ReplyDelete
    Replies
    1. I don't have a 3D television to test this. The whole 3D situation with XBMC seems a bit confusing for me. Maybe it's time to look into that...

      Delete
    2. Did some reading and this is what XBMC guys say: "For you lovers of 3D out there, we are also pleased to say that we now support 3D movies encoded in the following formats: SBS, TAB, anaglyph, and interlaced (on supported platforms for passive TVs). Unfortunately, XBMC cannot yet support 3D blurays and cannot provide hardware acceleration for FullSBS/TAB movies (therefore limiting those videos to relatively high powered CPUs)."

      I don't think the Atom E3815 can be considered as a relatively high powered CPU. ;-)

      Delete
    3. yes it plays 3d movies (nice)

      Delete
  2. Any info on Power draw (at the outlet) for this configuration ?

    ReplyDelete
  3. How about HD audio bit-streaming?

    ReplyDelete
  4. SO what do you recomend for a XBMC PC that will replace my WD live?

    ReplyDelete
    Replies
    1. If you want something small then get yourself a Haswell NUC (such as D34010WYKH). If you're building from components, you'll have tons of options and full possibility to customize the build to your specific requirements - bit it won't be as small and cute as the NUC is. :)

      Delete
  5. I would say we've come a long way since 2005. In terms of software that is. I think devices such as the Raspberry Pi fueled the development of low client device software.

    With an average CPU mark of 345 this NUC doesn't really packs any punch. The Intel Atom 330 had a CPU mark of 598, which is a processor released in 2008. (That's almost six years ago!). I am not really impressed at all with this processor.

    As for the upscaling, you could try Plex. The client seems to hog more resources than XBMC but it moves the CPU intensive parts such as rendering to the server, not to the client.

    ReplyDelete
  6. I'm trying to install openelec on my INTEL NUC DE3815TYKHE
    but I have an issue about emmc
    When I launch the openelec usb stick
    with 4.0.1, 4.0.2 or 4.03 the tools don't see the path for the 4gb emmc.
    Can you help me ?

    ReplyDelete
    Replies
    1. So you've created the install stick using the OpenELEC install stick creator and it boots ok to the installer. Have you tried to use the quick install or just the custom install? Custom install did not work for me, but quick install was fine. I tested the installation using 4.0.2 and that was fine, so I assume 4.0.3 will be fine as well. 4.0.1 will not work.

      Delete
    2. Ok, I found the check box to activate the emmc memory in the bios (uefi)...
      Now I have a probleme. I can install openelec on the emmc but after I don't fave finish confirmation and when I want select the boot with F10, the system reply no OS on this partition. I don't understand.

      Delete
    3. I've discovered that the NUCs and UEFI are still a bit bad match. If you try to configure the BIOS for legacy boot instead, do you get any better results (not sure if you'd need to reinstall OE after doing that)?

      Delete
  7. Can you send me your Bios setting ? I was already in legacy mode. The system can boot on my hdd with debian installed but not on the emmc. When the openelec installation is finish I don't have any confirmation. Is it normal ?

    ReplyDelete
    Replies
    1. Ok, after several setting changed I can boot on the emmc correctly. OpenElec can play 1080p movie without issue. Better than vlc on debian without optimization. sorry for my frenglish ;-)

      Delete
    2. Good news! I did not have these issues, so I guess I got lucky with the settings. I had other issues with the BIOS though (that I described in the article). Enjoy your media center! And nothing wrong with your English at all.

      Delete
  8. This comment has been removed by a blog administrator.

    ReplyDelete
  9. This comment has been removed by a blog administrator.

    ReplyDelete
  10. Hi, would you please check, whether the GPU supports HDMI CEC? I.e., if you can operate XMLC using your TV's remote.

    thanks

    ReplyDelete
    Replies
    1. i mean "operate XBMC", of course :)

      Delete