Help your Atom netbook play HD 1080p content with DXVA
Introduction
This post describes a couple of discoveries regarding my Acer Aspire 751 11.6″ netbook and playing high definition video content on it.
Since we’re only sporting an Atom Z520 CPU clocked at ~1.3 GHz which is combined with an Intel GMA 500 Poulsbo graphics system, we really do not have much to work with. Without a good combination of video drivers, video codecs and video player software, these netbooks totally choke on HD video when CPU has to do the decoding job. You get crackling sound, frame rates at around 10 fps etc. This post will serve as a record keeper of my discoveries regarding how to solve these issues, have full speed HD video and still rock the 6+h battery life that made you buy the Atom machine in the first place.
I’m running Windows 7 (RC) on this netbook. This has an effect regarding Media Foundation framework, which is supposed to be successor of DirectShow and is not supported on anything less than Vista. Let it be noted that currently (Nov 2009) pretty much everything related to Windows media is still DirectShow-based (players, codecs), which brings up a few issues to be described later. DXVA2 is also only Vista-and-up technology.
Video Drivers
First it’s probably a good idea to get some up to date video drivers. Acer seems to have just recently (end of Oct 2009) put out a whole bunch of Windows 7 drivers for the Aspire One 751, here’s the 8.14.10.2003 video driver download, actual installed driver files are from 18.06.2009:
To get the other W7 drivers, just go ahead and navigate through that Javascript gayness on Acer Support site. Ever heard of permalinks, Acer guys?
Codecs and Players
Key here is to get all the help we can from our Poulsbo graphics chip in the form of DirectX Video Acceleration or DXVA support. This is what lets your slow ass Atom CPU sit back, enjoy the movie and let the graphics chip handle heavy duty stuff. Some monkeying around trying to figure out how to get this working on the Poulsbo netbook led me to this helpful thread: Complete Guide to Play HD 1080p H.264, VC1 and Divx HD files via WMP on SC3. Originally written for Kohjinsha SC3 UMPC, but obviously applies to any netbook sharing the same hardware configuration.
So first get the following codecs:
Install them as instructed in the Complete Guide mentioned earlier. I also installed PowerDVD trial, but haven’t had a HD media clip yet where PowerDVD codecs could do something the existing codecs couldn’t, so perhaps hold off on it, until you’re sure nothing else does the job.
Then we need all sorts of players and helper software:
- Media Player Classic – Home Cinema player (currently 1.3.1249.0) – this player has quite good capabilities to switch codecs on and off so you can really fine tune your approach. If you read Complete Guide, I think you can skip RadLight Filter Manager for now, because MPC also lets you adjust filter merits etc, though I think RadLight does it system wide.
- DXVA Checker (currently 2.1.0.0) – this is a key piece of software. Clicking on ‘Check DirectShow/MediaFoundation Decoder…‘ button lets you choose a media file and DXVA Checker figures out the following:
- what acceleration modes does your hardware and software combination support
- what codecs specifically will be able to play this file
- which of these codecs support hardware acceleration for that silky smoothness you want
- video test playback and benchmark capability
- MediaInfo (currently 0.7.25) – cross-platform tool, GUI + CLI, that displays complete and formatted information about your video files. This is helpful for sharing any problem solving information.
HD video and tweaks
When you test your video playback in DXVA Checker with a DXVA accelerated codec, the playback should be flawless and CPU load should stay very low, as in 20%ish. Yet there was a situation where the Microsoft WMVDECOD.DLL codec was listed as compatible, was marked DXVA, yet performed very below-par, clearly not taking advantage of anything Poulsbo had to offer. I’m guessing there is another layer of hardware-software compatibility that needs to exist, which is why we installed those Intel Media Codecs mentioned before. Hardware from Intel + software from Intel = good performance in this case.
Above I briefly mentioned that the Media Foundation vs DirectShow battle would be bringing a few issues and this is where I ran into them. Intel’s hw-accelerated VC-1 codec is Media Foundation-based and therefore can only be used in a Media Foundation compatible player. Windows Media Player 12 and DXVA Checker are the only ones that I know of, if you know any others please leave a comment. MPC-HC cannot help us with Media Foundation for now. WMP’s out of the box configurability isn’t anything to write home about. I could not find any way to set the Intel codec at a higher merit, like you can do with DirectShow filters. Googling this gives conflicting results, namely that Media Foundation doesn’t have a merit system altogether and then a later dated SDK document saying that MF has a merit system again starting with Windows 7. Either way, WMP was dead set on using C:\WINDOWS\SYSTEM32\WMVDECOD.DLL so I just brute forced it: renamed the DLL to something like WMVDECOD.DLL.disabled and restarted. This leaves Intel’s hardware-accelerated IMC_VC1_DEC_MF.DLL as the only suitable decoder for WMP to use, which is exactly what we want.
Media Files and Benchmarks
Keep in in mind that the benchmark plays through the video as fast as possible, that’s why CPU load is higher. DXVA Checker table I put together myself, media file information comes from running MediaInfo on the file.
Robotica_1080.wmv
DXVA Checker
Codec: [MF] Intel Media Codecs VC-1 Decoder
Mode : NV12 (ModeVC1_VLD) DXVA2
Frame Rate : Avg 67fps / Min 59 / Max 71
CPU Usage : Avg 48% / Min 40 / Max 55
General
Complete name : Robotica_1080.wmv
Format : Windows Media
File size : 19.3 MiB
Duration : 20s 778ms
Overall bit rate mode : Constant
Overall bit rate : 7 812 Kbps
Maximum Overall bit rate : 8 447 Kbps
Encoded date : UTC 2003-12-20 02:30:08.491Video
ID : 2
Format : VC-1
Format profile : MP@HL
Codec ID : WMV3
Codec ID/Info : Windows Media Video 9
Codec ID/Hint : WMV3
Description of the codec : Windows Media Video 9 – Professional
Duration : 20s 792ms
Bit rate mode : Constant
Bit rate : 8 000 Kbps
Width : 1 440 pixels
Height : 1 080 pixels
Display aspect ratio : 4:3
Frame rate : 24.000 fps
Resolution : 24 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.214
Stream size : 19.8 MiB
Language : English (US)Audio
ID : 1
Format : WMA
Format profile : Pro
Codec ID : 162
Codec ID/Info : Windows Media Audio
Description of the codec : Windows Media Audio 9 Professional – 384 kbps, 48 kHz, 5.1 channel 24 bit (A/V) 2-pass CBR
Duration : 20s 778ms
Bit rate mode : Constant
Bit rate : 384 Kbps
Channel(s) : 6 channels
Sampling rate : 48.0 KHz
Resolution : 24 bits
Stream size : 974 KiB (5%)
Language : English (US)
I Am Legend – Trailer.mp4
DXVA Checker
Codec: [MF] Microsoft H264 Video Decoder MFT
Mode : NV12 (ModeH264_VLD_NoFGT) DXVA2
Frame Rate : Avg 77fps / Min 64 / Max 92
CPU Usage : Avg 76% / Min 32 / Max 100
General
Complete name : I Am Legend – Trailer.mp4
Format : MPEG-4
Format profile : Base Media
Codec ID : isom
File size : 121 MiB
Duration : 2mn 3s
Overall bit rate : 8 237 Kbps
Encoded date : UTC 2008-12-01 05:16:01
Tagged date : UTC 2008-12-01 05:16:01Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L4.1
Format settings, CABAC : Yes
Format settings, ReFrames : 3 frames
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 2mn 3s
Bit rate mode : Variable
Bit rate : 8 000 Kbps
Maximum bit rate : 22.4 Mbps
Width : 1 920 pixels
Height : 816 pixels
Display aspect ratio : 2.35:1
Frame rate mode : Constant
Frame rate : 23.976 fps
Resolution : 24 bits
Colorimetry : 4:2:0
Scan type : Progressive
Bits/(Pixel*Frame) : 0.213
Stream size : 117 MiB (97%)
Writing library : x264 core 65 r1040M 1591275
Encoding settings : cabac=1 / ref=3 / deblock=1:-1:-1 / analyse=0x3:0x113 / me=umh / subme=7 / psy_rd=1.0:0.0 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=2 / 8x8dct=1 / cqm=0 / deadzone=21,11 / chroma_qp_offset=-2 / threads=3 / nr=0 / decimate=1 / mbaff=0 / bframes=3 / b_pyramid=0 / b_adapt=2 / b_bias=0 / direct=3 / wpredb=1 / keyint=24 / keyint_min=2 / scenecut=40(pre) / rc=2pass / bitrate=8000 / ratetol=1.0 / qcomp=0.50 / qpmin=10 / qpmax=51 / qpstep=4 / cplxblur=20.0 / qblur=0.5 / vbv_maxrate=40000 / vbv_bufsize=40000 / ip_ratio=1.10 / pb_ratio=1.10 / aq=1:1.00
Encoded date : UTC 2008-12-01 04:50:08
Tagged date : UTC 2008-12-01 05:16:04Audio
ID : 2
Format : AAC
Format/Info : Advanced Audio Codec
Format version : Version 4
Format profile : LC
Format settings, SBR : No
Codec ID : 40
Duration : 2mn 3s
Bit rate mode : Variable
Bit rate : 258 Kbps
Maximum bit rate : 365 Kbps
Channel(s) : 6 channels
Channel positions : Front: L C R, Rear: L R, LFE
Sampling rate : 48.0 KHz
Resolution : 16 bits
Stream size : 3.80 MiB (3%)
Encoded date : UTC 2008-12-01 05:16:04
Tagged date : UTC 2008-12-01 05:16:04
C:\Users\Public\Videos\Sample Videos\Wildlife.wmv
DXVA Checker
Codec: [MF] Intel Media Codecs VC-1 Decoder
Mode : NV12 (ModeVC1_VLD) DXVA2
Frame Rate : Avg 77fps / Min 64 / Max 92
CPU Usage : Avg 76% / Min 32 / Max 100
General
Complete name : C:\Users\Public\Videos\Sample Videos\Wildlife.wmv
Format : Windows Media
File size : 25.0 MiB
Duration : 30s 93ms
Overall bit rate mode : Constant
Overall bit rate : 6 977 Kbps
Maximum Overall bit rate : 6 183 Kbps
Movie name : Wildlife in HD
Encoded date : UTC 2008-08-25 21:11:16.400
Copyright : © 2008 Microsoft Corporation
Comment : Footage: Small World Productions, Inc; Tourism New Zealand | Producer: Gary F. Spradling | Music: Steve Ball
SfOriginalFPS : 299700Video
ID : 2
Format : VC-1
Format profile : AP@L3
Codec ID : WVC1
Codec ID/Hint : Microsoft
Description of the codec : Windows Media Video 9 Advanced Profile
Duration : 30s 67ms
Bit rate mode : Constant
Bit rate : 5 942 Kbps
Width : 1 280 pixels
Height : 720 pixels
Display aspect ratio : 16:9
Frame rate : 29.970 fps
Resolution : 24 bits
Colorimetry : 4:2:0
Scan type : Progressive
Bits/(Pixel*Frame) : 0.215
Stream size : 21.3 MiB (85%)
Language : English (US)Audio
ID : 1
Format : WMA
Format version : Version 2
Codec ID : 161
Codec ID/Info : Windows Media Audio
Description of the codec : Windows Media Audio 9.2 – 192 kbps, 44 kHz, stereo (A/V) 1-pass CBR
Duration : 30s 92ms
Bit rate mode : Constant
Bit rate : 192 Kbps
Channel(s) : 2 channels
Sampling rate : 44.1 KHz
Resolution : 16 bits
Stream size : 705 KiB (3%)
Language : English (US)