The author of the LAV Splitter / Audio Decoder has another nifty tool coded up for HTPC users with NVIDIA cards. Based on the CUDA SDK, it is called LAV CUVID. The video decoder is not a typical CUDA API and does not use CUDA to decode. NVIDIA provides an extension to CUDA called CUVID, which just accesses the hardware decoder.

The only unfortunate aspect of LAV CUVID is that it is restricted to NVIDIA GPUs only. While OpenCL might be an open CUDA, it does not provide a CUVID-like video decoder extension on its own. ATI/AMD has the OpenVideoDecode API, which is an extension to OpenCL. Despite being open, it hasn't gained as much traction as CUDA. The AMD APIs are also fairly new and probably not mature enough for developers to focus attention on them yet. Intel offers a similar API through their Media SDK. Again, the lack of support seems to turn away developers.

On Linux, there is the VA-API abstraction layer, which is natively supported by Intel, and has compatibility layers onto VDPAU (NVIDIA), and OVD (ATI/AMD). So, on Linux it is theoretically possible for developers to create a multi-format video decoder. But, there is no support for HD audio bitstreaming with Linux. For Windows, developers are forced to use DXVA(2) for multi-platform video decoding applications.

Is there an incentive for NVIDIA users to shift from the tried and tested MPC Video Decoder (which uses DXVA(2))? I personally use LAV CUVID as my preferred decoder on NVIDIA systems for the following reasons:

  • Support for uniform hardware acceleration for multiple codecs: Theoretically, everything listed under the supported DXVA modes by DXVA Checker should be utilized by the software decoders. Unfortunately, that is not the case. This is evident when the 'Check DirectShow/MediaFoundation Decoders' feature is used to verify the compatibility of a MPEG-4 or interlaced VC-1 stream. The mode either comes out as 'Unsupported', or, it is active only under DXVA1 for VMR (Video Mixing Renderer). LAV CUVID doesn't show DXVA support under DXVA Checker (because it really doesn't use DXVA). However, analysis of the GPU/CPU load reveals that its performance and usage of the GPU are very similar to that of the DXVA2 decoders. Furthermore, all our GPU stress tests were hardware accelerated except for the MS-MPEG4 clip.
  • Support for choice of renderer: For the average Windows 7 HTPC user, the EVR (Enhanced Video Renderer) is much better than VMR since it contains multiple enhancements which are beyond the scope of this piece.

Almost all DXVA2 decoders can connect to the EVR. Advanced HTPC users are more demanding and want to do more post-processing than what EVR provides. madVR enters the scene here, and has support for multiple post processing steps which we will cover further down in this section. However, it doesn't interface with DXVA decoders. The LAV CUVID decoder can interface to all these renderers, and is not restricted like the other DXVA2 decoders.

Starting with v0.8, LAV CUVID has an installation program. Prior to that, the filters had to be registered manually, as in the gallery below.

After downloading and extracting the archive, the installation batch script needs to be run with administrator privileges. If the filter gets successfully registered, your favorite DirectShow player can be configured to use LAV CUVID. The process setup for MPC-HC is shown in the gallery. Make sure that the internal transform filters for the codecs you want to decode with LAV CUVID are unselected. After that, add LAV CUVID in the External Filters section and set it to 'Prefer'.

Here is a sample screenshot with EVR CP statistics for a MKV file played back with LAV Splitter, Audio Decoder and LAV CUVID Decoder.

Click to Enlarge

Now, let us shift our focus to madVR. It is a renderer replacement for EVR, and can be downloaded here. Currently, madVR does not do deinterlacing, noise reduction, edge enhancement and other post processing steps by itself. These need to be done before the frame is presented to madVR for rendering. When using a DXVA decoder, these steps are enabled from the NVIDIA or AMD control panel settings. With the LAV CUVID decoder, we get the post processing steps as enabled in the drivers. The decoded frames are copied back to the system RAM for madVR to use.

The madVR renderer uses the GPU pixel shader hardware for the following steps:

  1. Chroma upsampling
  2. High bit-depth color conversion
  3. Scaling
  4. Display calibration (optionally, if you have your own meter)
  5. Dithering of the internal calculation bit-depth (32bit+) down to the display bit-depth (8 bit)

All of these things are realized with a higher bit-depth and quality compared to what the standard GPU post processing algorithms do.

The gallery below gives an overview of how to install madVR and configure it appropriately.

After downloading and extracting the archive, run the installation batch script to register the renderer filter. By default, the MPC-HC 'Output' options has madVR grayed out under the 'DirectShow Video' section. After the registration of the madVR filter, it becomes possible to select this option. When you try to play a video with the new output settings, it is possible that a security warning pops up asking for permission to open the madVR control application. Allowing the application to run creates a tray icon to control the madVR settings as shown in the fifth screenshot in the gallery. Screenshots 6 through 12 show the various madVR post processing options.

madVR requires a very powerful GPU for its functioning. Do the GT 430 and GT 520 cut it for the full madVR experience? We will try to find that out in the next section.

Software for HTPCs : LAV Splitter and Audio Decoder Benchmarking LAV CUVID with madVR
Comments Locked

70 Comments

View All Comments

  • casteve - Monday, June 13, 2011 - link

    I hope to see a review of the HD 6670, now that (at least) Sapphire has released a passive version.
  • Drae - Monday, June 13, 2011 - link

    ... it'd be nice to see more use of Linux please. I realise there are a lack of "testing" and "evaluation" tools under Linux but that shouldn't prevent the testing of basic media needs. What's this about no bit streaming support under Linux? Boxee would disagree - as would:

    http://phoronix.com/forums/showthread.php?27348-Tr...

    along with XBMC's audioengine (involving work by the guy in the above link). Maybe Windows 8 will sort out the mess that is WMC and all the messing (or bypassing with MPC-HC) that is required to get it working solidly. But right now if you want something that approaches a plug and play media experience XBMC (and its off-spring Openelec) under Linux is a lot closer than Windows. Equally the more coverage such solutions get the more likely greater time will be spent fixing the remaining issues under the Linux OS - hello there Intel and AMD.

    Finally there is a great move now - go look at AVS' fora for examples - away from large media center pc's to small, quiet (silent) systems. These don't require 300W or 500W power supplies and huge cases with twelve fans and fifty million led's. They are ITX based systems sitting in small ITX sized boxes running 65/80/90/120W PicoPSU's with much greater efficiency and thus lower power use/running costs/silence. Placing these discrete cards in such systems would be a nice test of these picopsu units - given the apparently low power draw shown in the articles (something I'm very interested in seeing right now given the poor support of Linux by Intel on Sandybridge - the GT430 would be a good interim solution for me).

    TLDR: Please don't limit yourselves to Windows testing and ATX/mATX sized systems when writing HTPC articles
  • ganeshts - Monday, June 13, 2011 - link

    Drae, Thanks for the info and the link.

    The issue with Linux HTPCs is the fact that there is a semblance of support from only NVIDIA.

    Don't get me wrong! I am a huge Linux fan, and always prefer free / open-source software. But, from a video perspective, is there a multi-GPU platform similar to DXVA ? Every vendor has their own flavour (NVIDIA - VDPAU / Intel - VA-API / AMD - XvBA). From the audio side, it looks like the link you mention is the only avenue available for bitstreaming, and that too for NVIDIA GPUs only. I will keep close tabs on what is happening in this area, and when the time is right, I will definitely post a piece on Linux HTPCs, considering one card from each of the vendors.
  • cjs150 - Tuesday, June 14, 2011 - link

    As always it depends on what you want from an HTPC. For me I want to play Blu rays, stream HD movies from file server, watch and record TV and do some web browsing but in total silence (or as close to as possible).

    For me ITX systems are the way to go using a 150W PICO-pSU but critical is that they have to work with appropriate IR remote (Logitech DiNovo looks interesting)

    I am happy to use Linux or Windows but it just has to work
  • alfredska - Monday, June 13, 2011 - link

    This kind of quality review is what made AnandTech a name to remember early on. I'm glad to see such thoroughness and well thought out presentation of information. Looking forward to more reviews by Ganesh.
  • UrQuan3 - Wednesday, June 15, 2011 - link

    Agreed, this is an excelent article. I tried cross referencing to the "Zotec Zbox" article from the 9th (I own an E-350) and the earlier benchmarking was useless. I already know the E-350 won't do full processing, but I wanted to know where it sits compared to these platforms that pull 3-10 times the power.

    Think a 'software mode' might have been useful? An i5 could have done a fair amount of this processing without a hardware assist, saving the 70watts the cards were pulling and avoiding some of the integrated's compatability issues.
  • Shadowmaster625 - Monday, June 13, 2011 - link

    I dont get the video card focus in the realm of HTPC. It seems that software is a far more important piece of the picture than a video card. Windows media center and XBMC both work like crap, and/or are unacceptably slow and clunky when it comes to browsing media. I do NOT tolerate that kind of lag, especially on a 3 ghz quadcore with an ssd/hdd drive setup. I dont expect miracles when trying to browse through a gigabyte of media, but still it should be faster. And then there's audio sync problems that like to appear out of nowhere. But you'd never know any of these problems exist from reading these articles. Shrug.

    I have found that VLC media player and windows explorer are the most reliable combination. But using windows explorer on an htpc is ugly and painful.
  • JasonInofuentes - Tuesday, June 14, 2011 - link

    I think part of the problem is the degree to which there's news. A thorough review of Media Center might be warranted, the next time it changes, but was pretty thoroughly covered here (http://www.anandtech.com/show/2864/) and here (http://www.anandtech.com/show/2760). XBMC has a more frequent update cycle than Windows, and there's obviously interest so this might be an idea to explore further.

    As far as the difficulties with each of these platforms, a Z68 platform and SRT might be the solution here. So the size of the files is not really the problem, it's that when you browse to a folder the user wants to be able to scroll around the list or grid and have all of the information pertinent to those files readily available. You don't want to scroll over to a file in your West Wing Season 5 folder and wait for the Title to load so you know whether it's the episode you were looking for, you want that information to be up the instant you scroll to it, or even better for it to be glanceable before you even start scrolling. In order to achieve this the OS's load all of the information for all of the files in the folder. So if you have a few dozen files in a folder that's the metadata for each files, the thumbnail preview and then the usual file system queries the OS would do anytime it accesses the drive. That can add up to a lot of small reads, and that leads to that big stall as you scoot around your media.

    Now, the throw money at it solution is move to ALL SSD storage. But I've got 4TB of media and don't have that kind of money to throw at the problem. SRT should help though. If I recall, the metadata and thumbnail files are stored locally in the folder with the files, but since SRT caches the frequently accessed files, then for a system used exclusively for media the only thing that should populate the SSD cache is going to be these small reads that otherwise slow down your system.

    I am suddenly overwhelmed with an urge to get my hands on a Z68 to try this out! And you are quite right that VLC and Windows Explorer are the most reliable programs for browsing and playing back media, but the price you pay for pretty is often performance.
  • vailr - Monday, June 13, 2011 - link

    As an exercise in "possibility thinking", I'd be interested in a sub-category of a complete "solar powered" desktop-format PC review. Designed (theoretically) for someone living in a remote area, off the electrical grid, yet still having internet via satellite, cell phone signal, or otherwise connected. Designed for ultra low power consumption, mostly dependent on solar and/or wind power produced on site. Yet maximal possible performance (under such power restrictions) for either: generic gaming desktop PC, and also for a HTPC. Using SSD's and/or laptop HD's for storage, and with an energy sipping CPU (dual-core Atom vs. Intel i330, for example), combined with either: on-CPU chip video or a "PCIe bus only" powered video card, and yet somewhat viable as a gaming PC or as a HTPC.
    Maybe even qualify for an article in Home Power magazine? http://homepower.com
  • Penti - Monday, June 13, 2011 - link

    Why? Running a 100 W PC of batteries is pretty pointless.

    Just install FTTH and a powerline if you like to game or do other intensive tasks needing GPU-power, fast cpus or ridiculous amounts of memory (workstation type stuff). It would be the most efficient solution any way. You don't even need any power for any modems. You certainly can run a PC of battery power off grid, but why destroy your work with that. It would be hard to store much electrical power.

    Otherwise you would pretty much had to get by with a low-powered laptop. No monitor.

    Do the unabomber type guys need any gaming? If so they need to install a good damn power line or at least a diesel-generator. They don't have the money and skills to build energy storage and buy panels thats enough to power a modern home any way.

Log in

Don't have an account? Sign up now