Tuesday, June 2, 2009

ATI HD Hardware Accelerated DXVA for H.264 AVC L5.0 / L5.1

HOW TO: Get hardware accelerated DXVA playback of HD AVC High Profile L5.0 / L5.1 MKV / MP4 Files on ATI HD Series.

Well, technically speaking, not DXVA, but hardware accelerated playback of L5.0 / L5.1 files nevertheless. (update: it *is* DXVA - not sure just yet why some decoders work and some don't - possibly because some decoders send more compliant bitstream?)

I've recently built a HTPC from an old Pentium 4 HT. I know it has not enough grunt to decode AVC High Profile video, so I bought an ATI 4350 HD in the hope that it'll do all video decoding on its GPU (or UVD).

To my disappointment, I found this (ATI does not support AVC with High Profile above L4.1) after I bought the card. All my encodes are done with L5.1 as my other PC is a Core 2 Duo which has an NVidia 9600GT. For some reason, the NVidia driver is able to support DXVA for AVC High Profile L5.1, so I simply assumed ATI would be the same. Turns out that the maximum the ATI would do is L4.1 (There's a Quantum of Solace trailer encoded at L5 to test here - http://nunnally.ahmygoddess.net/watching-h264-videos-using-dxva/).

Regardless of which decoder I use, my P4 HT simply isn't powerful enough to playback these files (CPU hits 100% all the time and frames drop very frequently).

Luckily for us ATI owners, there is a solution. With PowerDVD9 and Catalyst 9.5, I finally found a combination that would get 1920x1080 HD videos with ref-frames > 4 to play without taxing my CPU. In fact, I was pleasantly surprised when I reran the Quantum of Solace test video -- my CPU remained at 2% utilization!

I recommend the following setup for ATI users:
  • PowerDVD 9 build 1530 ==> Must be this build! Other builds will not work
  • ATI Catalyst 9.5 (non-hotfix version)
  • AC3Filter
  • Haali Media Splitter (to playback MKV files) ==> version 1.9.42.1 (or later)

*** New:

If you prefer to use Media Player Classic - Home Cinema (MPC-HC), see this.

*** Note1:

Rename .MKV to .MP4 to get PowerDVD to playback MKV files.

*** Note2:

Important
- No other filters (e.g. FFDShow / CoreAVC / Codec Packs) should be installed in your system!


Try it out yourself (you could download the trial version of PowerDVD 9).

MAKE SURE you DO NOT have any other filters installed (for example, CoreAVC or FFDShow which may have a higher merit than PowerDVD's own filter) or PowerDVD will not use its internal H264 decoder. Also, when opening MKV files, PowerDVD will complain that xvidcore.dll could not be found, but will continue playing the video just fine. If you want to suppress the error message, simply download xvidcore.dll and put it in the same folder as the PowerDVD executable (e.g. c:\Program Files\CyberLink\PowerDVD\).

Leave a comment to let me know if it does / doesn't work for you with your card's configuration and OS, for example:
  • HD 4350 PCIe x16 512MB
  • WinXP SP3

*** Update 1:


This clip (the 'Bird Scene' from Planet Earth) is the ultimate L5.1 super high bitrate MKV sample. On my nVidia 9600GT setup with a E7200 CPU @ 3.6GHz, it uses 50% of the CPU (playback using MPC - Home Cinema with driver supporting L5.1 bitstream DXVA). On my Pentium 4 HT (single core CPU) and the HD 4350 setup, I get 25% CPU usage. That is simply mind-boggling! What can we conclude? ATI is A LOT better at decoding H264 streams?

*** Update 2:

I've found that PowerDVD has a problem with H264 encoded files that have been tagged with the wrong IDC. For example, if the file actually contains a high profile L5.1 bitstream but its IDC tag is marked incorrectly (e.g. L4.1), you will get stuttering problems. If that happens, you'll have to change the file's IDC tag back to L5.1 using IDC Multi Changer.

*** Update 3:

While testing my configuration with a ref-frame 12 encode at 1920x800, I found that certain scenes (usually panning slowly) would judder (i.e. a couple of frames get dropped) and they always happen at the exact same time code. I tried remuxing the .mkv file to .ts / .m2ts but to no avail. I also increased the input buffer size to 100000KB from 8192KB in the Haali Media Splitter settings, which also did not help. Having spent a few hours on it, I finally decided to look at PowerDVD's settings itself. Apparently, under Advanced Video Preferences (Right-click Main Screen, click on Configuration, select the Video tab, click Advanced...), there's a group box called Video Quality. I had Normal Mode selected from before when I was using PowerDVD without AVIVO. Setting it to Best Mode solves the problem. GPU and CPU usages remain unchanged at 6-8% and ~12% (DTS is being decoded in software) respectively.

I can only make an educated guess on the reason behind the judder. Video Quality relates to the post processing / de-interlacing / pulldown settings. The judder which I picked up on slow panning scenes are probably due to the lack of pulldown under Normal Mode. When set to Best Mode, pulldown (what is this?) is activated to match the 24fps source to my 1080i LCD panel (1920x1080 at 30Hz).

*** Update 4:

A full update on this topic has been posted here.

90 comments:

Anonymous said...

works

Zach Saw said...

Hello,

I'd appreciate it if you could leave a comment with the config of your card and OS too. Such as,

ASUS HD 4350 PCIe x16 512MB
WinXP SP3

This way, you could be helping others to see if their card supports hardware acceleration of AVC High Profile @ L5.0 / L5.1.

So far, what's confirmed is that UVD 2.2 PCIe x16 cards fully support it. What we need to find out is if any cards with lower specs support it too - UVD+ and below seems to be out (HD 3450) but I'd like to confirm nevertheless.

koelec said...

Works great on
ASUS HD3450 AGP
AMD Atlon 3000+
WINXP SP2

Unknown said...

Windows XP Professional SP2
Sapphire HD3650 Pro 512 MB AGP GDDR2
Intel P4 2667 MHz
1,5 GB RAM

Well... it ran when I renamed it but there's no audio :( so I can't say for sure is it working great or not.

Zach Saw said...

Have you installed the AC3filter decoder? What audio format is your MKV file encoded in?

Unknown said...

I'm not sure. But this morning I tried something else and there was audio. Renamed it back to mkv, installed CoreAVC Pro, do some setting to my KMPlayer and voala - the audio came back. :D
I know that what i post now is different than the one you posted but it could help someone with the same problem like me so I hope you won't mind if I do.
So, if you have this HW configuration
Motherboard: HP Compaq all series
Processor: Pentium IV 2.66 GHz single core
1+ GB RAM
AGP ATI with HDTV support
and you can run mkv but for some reason its audio goes faster and/or you have dropping frames - this is what you can do to watch HDTV as smooth as a normal AVI. Install:
-KMPlayer 2.9.3.1214 (newer can do the job too but they have problem with running DVDs)
-Haali Media Splitter to run mkv files
-Core AVC Pro Codec
-CCCP (combined community codec pack which cointains AC3 Filter)
After you do all this installation open KMPlayer, press F2 and go to "Custom filter manager", click "Add external filter" and add CoreAVC Codec. Second, while you're still in the options menu (F2) go to "External Video Decoders" and at the bottom of the list where is the falling menu for H.264 Video (it says "do nothing") click on it to become selected then press "External Decoder Search", put a tick on H.264, then click on "Add external codec" and in C:\Program Files\CoreAVC (or wherever you have installed CoreAVC) you must find CoreAVC file with extension 'ax'. Select it (if done correct it must appear in the list with a tick on its left side), then close all settings windows, restart KMPlayer and run someone mkv file to test it. Now it should run smoothly as a normal AVI. ;)

Zach Saw said...

Note that if you're using CoreAVC, it means you're not using AVIVO (UVD).

Decoding the killa.sample.x264.mkv clip without hardware acceleration is impossible with CoreAVC on either of my machines (E7200 Dual Core @ 3.6GHz or Pentium 4 HT @ 3.0GHz). Of course, my definition of "impossible" is playback with any noticeable frame drop.

Unknown said...

I'm not really sure what's this AVIVO for if it doesn't work when playing 'mkv'. It's set to work with 'mkv' but quite obvious it wasnt working. If it was the movies wouldn't lag.
About definitions - my definition of "perfect" playing 'mkv' means audio to match video and running as smooth as the eye can see. If there's any frame drop I can't see it.

Anonymous said...

Hi Zach,

Thanks for this nice information.

I have a config similar to the first poster on the AMD forums:

http://forums.amd.com/game/messageview.cfm?catid=279&threadid=106911

I would like to test whether that setup will be able to play L5.1 videos.

However, I do not want to install the PowerDVD bloatware. So, my questions are:

1. Is it possible to use the cl264dec.ax and its associated DLLs ( in ${CyberlinkInstallFolder}/VideoFilter/ ) by some method in MPC-HC without installing the whole PowerDVD ? (There is a videohelp.com thread regarding this with one reply).

2. In order for me to test it out, can you host those files from PowerDVD v9 build 1719 somewhere from where I can download it?

(
PS : I have bought many video related stuff like camcorders / graphics cards, with which PowerDVD install disks were bundled. However, I just hate how it slows down my CPU, and I don't want to install it.

Also, I have tried your suggestion with PowerDVD 8 (the version I have).. It didn't work, and I just uninstalled it.

Just to let you know that I am not intending to literally 'pirate' PDVD9 through you :)
)

Anonymous said...

I am the poster of the previous Anon comment.

Just to clarify further, my 3450 is PCI-E x 16 card. So, I might be able to figure out if this can work as per your posting on the AMD forums.

Zach Saw said...

Hi Anonymous,

I'll have a look into the folder and see what can be done. However, I don't quite get how PowerDVD will hog your CPU. If you don't run the software, how would it take up any resource other than your harddisk space?

Zach Saw said...

Hi Радослав,

Could you test your CoreAVC setup with the killa.sampla.x264.mkv clip and let us know if it's playable on a P4 single core?

AFAIK, CoreAVC does not support AVIVO / UVD (ATI's hardware acceleration for video playback). My HTPC (P4 HT single core) would not cope with any 1080p x264 AVC High Profile video without hardware acceleration.

Anonymous said...

@Zach,

No need to trouble yourself with the VideoFilter folder in CyberLink Install Dir. I installed trial version of Deluxe build 1719, and was able to get the filter cl264dec.ax in the filter list in MPC-HC.

It is not of much use. For the out of spec L5.1 videos, only the intra-frames get displayed properly (The frames which are encoded as stand alone pictures), for the rest I get only garbled pictures with lots of coloured blocks.

Anonymous said...

PS: My config is:

ASUS HD3450 PCI-E x 16
P4 3GHz HT
WINXP SP2

Zach Saw said...

Hi Anonymous,

Did you use Catalyst 9.5?

If that's the case, it would appear then that L5.1 decoding in hardware is only supported with UVD 2 and above.

Zach Saw said...

@Anonymous:

Could you also try playing it within PowerDVD 9?

Anonymous said...

Yes, I used Catalyst 9.5 only.

It is such a pity to see that while Nvidia cards right from the 8000 series onwards can decode out-of-spec videos with the latest drivers, ATI is leaving users in the lurch.

If it weren't for ATI's native support of audio over HDMI, I would have shifted to a Nvidia card long back..

Let us see if ATI driver developers decide to show some concern about 3000 series customers ( unlikely :( )

Anonymous said...

My first attempt was to rename the MKV to MP4 and play it in PowerDVD 9. I realized that the out-of-spec video was playing at the correct frame rate (so it was not dropping frames, and it was definitely using DxVA -- at least trying to), just that the pictures being displayed were corrupted.

Zach Saw said...

Perhaps try another build of PowerDVD 9. For me, going from one build to another gives me vastly different results. For example, one build gives me corrupt keyframes and another gives me completely proper playback.

kekz said...

Hm I still have 100% CPU while playing HD-content. :-(

ATI HD 4350
A64 3500+
Avivo activated in PDVD9
Catalyst 9.5

Zach Saw said...

@kekz

Which OS are you running?
Which build of PDVD9?

Your gfx should be fine to do full hardware acceleration - is that *ALL* HD contents or just L5.0 / L5.1?

white[43] said...

Hello from Russia! =)))

It works... worked. I saw birds, saw J.Bond. It was in the morning. But now I see only artefacts on the screen... =/
And I can't understand what I've done what artefacts back again... =/

Ps. HD4550, W7(x86), Pentium E5200.
Pps. Sorry, inglish is not my native language.

Zach Saw said...

@White[43]

Try re-installing PowerDVD.

white[43] said...

Zach Saw
I uninstalled completly (+ manualy system registry and folders) this program, becouse jitter of picture was much bigger than before installation and I got new problems with sound in those moments.

Thank you for your research, but, unfortunately, I will wait for official bugfix. =(( Your method is not for me... =((

Zach Saw said...

I haven't tried Windows 7 myself, so I really don't know how well the settings will work. With DXVA 2 avaiable on Vista/Win7, it's a different ball game altogether - PowerDVD might think it's better to use DXVA2 and forgoes the one which works in XP SP3 for hardware acceleration.

Teoh Han Hui said...

@white[43]
Microsoft's H264 filter has the highest merit in Windows 7 by default. It attempts to use DXVA for any H264 video and that results in screen artifacts for unsupported videos (the display corruption is not limited to the video player).

I get audio only if I block "Microsoft DTV-DVD Video Decoder" in MPC-HC (with its DXVA H264 filter enabled). I had no luck with Cyberlink's filter but I will give the other versions a try. My card is a 4770.

Zach Saw said...

@Han Hui

You may want to use PowerDVD 9 instead to test the Cyberlink decoders. I think you can no longer register PowerDVD 9's cl264dec.ax to use in MPC-HC. If you could boot into XP and try the settings on my blog, you should find your card capable of accelerating L5.0 / L5.1 contents.

BTW, on a side note, I've got a mate with the exact same name as you (albeit a different surname). Must be a Malaysian / Singaporean?

ZudakaARG said...

After a lot of tests now i can play 1080p L5.1 that have reference frames 16 with hardware accelerated DXVA just fine. I have an ATI HD4550 PCIe x16 512MB with Catalyst 9.6 and using CyberLink H.264/AVC Decoder (PDVD8) version 2.4.1426 throught MPC-HC.
I can post a link with that version of decoder files if needed. ;)

PD: WinXP SP3 OS.

ZudakaARG said...

PD2: MPC-HC build is 1160 and the CyberLink H.264/AVC Decoder (PDVD8) real number version is 2.4.0.1426, so u can google them. ;)

sirDaniel said...

Loool, weird.. weird things happen.
I did what Zudaka said... Googled for that;) version of PDVD8, installed on top regular PDVD9 and... nothing. Then uninstalled that bloat PDVD9 pack and left googled pack untouched. After some testing looks like my full hd samples are now playable up to 9 ref frames but only with MPC internal dxva decoder and EVR Custom Presenter!!!
Thats just black magic.

PS: Im on HD 3450

sirDan said...

That googled pack installed some important system files (.dll's/.ocx's). German VisualBasic runtime files, WDF:UMDF framework library and others. Wonder what caused 5.1l files to get working.

sirDan said...

Oh gosh im getting headache..
When i use VMR windowed bond trailer is unwatchable. When using VMR Renderless the picture is almost clear. When the EVR/EVRCP is used, the picture is clear. And the most funny part is that radeon drivers cant use DXVA 2.0 on Xp. So.. I use evr (which is dxva 2 capable only) in mpc and player falls back to some legacy mode to work with dxva 1 (vmr). But why then just simply choosing vmr as renderer doesnt work?

sirDan said...

Big sorry for quadruple posting, but i have to say that 5.1l playing is repeatable(!!) on 3450. And the most likely the googled;) package installed just few M c++ library. The most used by ati ccc.exe and mom.exe is msvcrt.dll Its also used by MPC HC. So maybe some special version made things working.
Also after restart i loose somehow 5.1l files playback. All i need is to initialize it by opening special_incopatible .wmv (vc-1) file and then back to avc 5.1l.
Special version of evr.dll and dxva.dll may be also a key bec i get perfect playback up to 9 ref frames only with evr checked in mpc output.

Anonymous said...

@SirDan
Are you sure the 2.4.0.1426 is not just in CPU mode when playing under EVR, here it is !!
Please, have a look into the "Filter" submenu of the MPC-HC during playback to see what's really going on and watch your CPU load. What the h.. is this special_incompatible_wmv file ??

ZudakaARG said...

I just made a new test and find out that ArcSoft Mpeg2, AVC, VC1 Decoder v2.25.201.72 is even better than CyberLink H.264/AVC Decoder (PDVD8), absolutely amazing, try with that too ;)

sirDan said...

Unlike Zudaka, I get bond trailer (and other 5.1l files) working only with internal MPC HC filter MPC VIDEO DECODER (evr). And cpu usage is 10% or lower. Also close is arcsoft (vmr) but not perfect. I tested on xp sp3.
Theres no special .wmv file;) "Normal" dxva is working too. I have to open just vc-1 file and then drag and drop bond trailer. Once 5.1l playback is initialized, i can play any files any time up to 9 ref till next boot and then have to initialize again.
Thats all confusing me. Looks like ati doesnt know what is growing in their garden? ;)

Anonymous said...

> ...bond trailer (and other L5.1 files) working only with internal MPC HC filter MPC VIDEO DECODER (evr)...
So, why do you need the Cyberlink 2.4.0.1426 then, if it's not in use?

sirDan said...

Well, i dont need it. Never said this decoder worked on my PC. I suppose i installed some windows library (maybe c++ from hdpack) and after some testing MPC Videodecoder get worked. Also i copied to xp evr.dll and dxva2.dll from vista.

Zach Saw said...

@ZudakaARG

What OS are you running? And with MPC-HC, which renderer did you use?

I'd love to give that a try and see if I could reproduce the same results.

ZudakaARG said...

OS: WinXP SP3
Renderer: VMR9 (renderless)
Splitter: Haali MatroskaSplitter
MPC-HC Build: 1160

Screenshoot playing the AIR OP theme (Tori no Uta):

http://img26.imageshack.us/img26/2817/dxva.jpg

ZudakaARG said...

Now this is a screenshoot playing Transformers.2007.HD-DVDRip.1080p.DTS.2DVD.x264-CHD-Sample.mkv that is L5.1 and reference frames 16. ;)

http://img188.imageshack.us/img188/4243/dxva2.jpg

sirDan said...

hmm.. for Lia - Tori no Uta (long version) in MPC HC i get many small macroblocks only for moving objects. Static part of screen is ok. And no green artifacts

Anonymous said...

With P4 and 3450 PCI-E x 16, I am unable to replicate SirDan's suggestions / Zudaka's hacks :(

The Googled pack's ArcSoft decoder works better picture quality wise compared to the PDVD8 decoder. However, there is still lot of blocking, and in the case of 16 reference frame killa sample, the picture just freezes inbetween (though it doesn't use CPU -- it was just at 10%) using DXVA..

I just wish ATI would get official about extended DXVA support in their Catalyst drivers ... :|

Zach Saw said...

@ZudakaARG

I've tested your setup but doesn't seem to work for me. Only diff is I'm running Cat9.5 and MPC-HC 1120.

I'll probably go back to 9.6 and try it again.

Unknown said...

Hey Zach I wondered if you have tried the Reclock program for your judder issue. I just solved this problem myself with judder even though the CPU usage was well below 100% in either hardware accelerated or software playback with 1080p mkv files.

Seems to have been an issue with syncing between the source file FPS, the video card and the monitor (in my case an HDTV running at 60hz).

Reclock got the video synced up with the other hardware and the video now plays nice and smooth, even on old files i've watched before and never even realized there was an issue. If you haven't tried it, definately give it a shot.

Anonymous said...

DXVA works fine in 90% of the cases now, thanks to this tutorial. But I still do have some problems with playing the killa sample. The sound is good, but the video shows strange artifacts. Flicker, and bad quallity. Wiht all other 1080p video's no problems and plays smoothly. Anyone an idea wat the solution to my problem with the killa sample is?

Anonymous said...

XP SP3
Catalyst 9.6 (hotfix)
Radeon HD 3650 AGP

No luck with DXVA, tried possibly every thing on the internet, not excluding all tips found here.

After a lot of misery I can finally play a 1080p (10Mbit bitrate) video with like 2-3% CPU usage, using PowerDVD 1719 and Haali.

BUT..

I get such extreme color corruption it is unviewable, mostly green and pink, all over the screen flickering, I get like 1 out of 10 frames perfect and from what I can make out, the video seems fine exept the color corruption :(. Note that this is not present in every movie, just some. But still, you don't want this in anyone.

Is there anything I can to with the video files that get all that color corruption to make it go away?

This happened on 2/3 1080p movies, and on 0/3 720p movies, not that I know if there's any difference of just a coincidence.


The only thing I've noticed is that on all the 720p movies and the one 1080p movie that played without corruption, full info about the file were present in a tan called "Media" when inside the properties of the files. On the ones where I get corruption, there was nothing, not even the tab.


Thanks in advance


Thanks in advance

Anonymous said...

It had nothing to do with IDC, the one 1080p file what worked even happened to be in 4.1.

Zach Saw said...

@Magnus:

Changing IDC is only going to be useful if you have a file which is actually encoded at L5.0 / L5.1 but was tagged as L4.1 or lower. The problem is PowerDVD looks at the IDC tag and allocates memory accordingly. But when it encounters frames that reference a frame outside the allocated memory (which will happen since L5.0 / L5.1 basically means the PDB memory is more than the lower levels), you get video corruption.

You'll need to minimize your problem further:

- Is it an issue with only L5.1/L5.0 video?

- Is it a problem with a video encoded in L5.0 but tagged as L4.1?

- Is it a problem with Cat9.6? (I have seen reports that it breaks a few things)

- If the stream is DXVA compliant (L4.1 and below), you should be able to use MPC-HC. See this.

Anonymous said...

I've tried out a few more, even found a 1080p and a 720p movie in 5.1 which worked perfectly, now that I use 8.5. No way right now to know if it has anything to do with the driver since I just downloaded these, and haven't tried them on 9.6

Dunno if I should be happy about this, since the movie I really want to see right now is still madly fucked up :(

Thanks again though, I really appreciate it.

And I almost forgot, DXVA did not work still. I've given up on that one.

Anonymous said...

Back to 9.6, actually only got better. Still have a 1080p in 5.1 running perfectly.

But I have gotten a little bit wiser, one movie, 1080p in 5.0 hade the same flickering as the first movie which I said had "major color corruption and flickering", now I realize I didn't say that it was small bricks, if that tells you anything. Because in this particular movie, there was a lot of flickering, still not as much as in the one that got colored bricks, and then the bricks, now wasn't in pink/green, but in the same color as the image instead.


Hopefully this clears something out.

Ganesh T S said...

Tried this with latest 9.7 Catalyst release on ATI 3450.. Still out of luck :(

Will ATI driver developers ever pay attention to the HTPC community?

white[43] said...

There is two ways to solve this problem.

1. Simple way wich author posted here.
2. And another. It's much more complicated, but will works 100% on every Radeon. Everything you'll need it's reencode all of your High@L5.1 movies to High@L5.1 with ReFrames = 4 (this is very important, not more!!!). Or L4.x with ReFrames 4.

Look at 'Planet Earth' sample via MediaInfo programm.
> Format settings, ReFrames : 16 frames (!!!)
Becouse of this image crashes when playing this sample. Becouse of this image crashes on every another movies. I had tested this with 5 different samples and 5 times it helps.

Anonymous said...

Ok, white43, how do I do this? And how long will it take on a 10gb movie?


Sounds great tbh :)

white[43] said...

Magnus
I used "MainConcept reference" and "MKVToolnix".

How? Hmmm... I'll show.

1. http://img197.imageshack.us/img197/5690/video1l.png
Width, height, aspect ratio, FPS and bitrate must be like in original file.
2. http://img407.imageshack.us/img407/3121/video2.png
Only frame coding.
3. http://img194.imageshack.us/img194/5755/video3.png
Reference frames = 4.
4. http://img407.imageshack.us/img407/1708/video4.png
With *.264 file in the end.
5. http://img33.imageshack.us/img33/5962/video5.png
Uncheck original video, set aspect ratio and FPS like in original file. Save result with new filename.

How long? This sample (92.2 Mb) I encoded in 10 minutes on my Pentium DC E5200. 10Gb in about 17 hours. If your CPU more powerfull, it will take less time.

Original sample you can download here, my reencoded sample is here.

Anonymous said...

Thanks for the help, white!

Zach Saw said...

@white[43]

Note that re-encoding will cause a loss of quality (by how much depends on how good your encoder / encoder-setting is).

Also, the number of ref-frames you can use and still be DXVA compliant (or more accurately High Profile L4.1) is governed by this formula:

nREF = (int) (8388608 / (float) (Height * Width))

E.g. A video with a resolution of 1920x800, you'll get 8388608 / (1920*800) = 5.46 ==> (int) ==> 5 ref frames.

At a resolution of 1920*1088, it's 4 ref frames.

For more information, read this thread.

Omar Villegas said...

Hey Zach, have you try these same full hd files with media player classic?? it uses DxVA as well.

Zach Saw said...

@zag

The whole point of this post was that MPC-HC (note that only HC uses DXVA) only sends bitstream to the GPU and given that ATI's drivers do not have the means of decoding AVC High Profile of a level greater than L4.1 in bitstream DXVA mode, there's no way it could do L5.0 / L5.1.

For anything 'DXVA compliant' (more correctly, Blu-ray specs compliant), you could simply send the bitstream as-is to MPC-HC. NVidia can do L5.0 / L5.1 in bitstream mode but ATI can't, hence the need for this post. It's simply due to ATI choosing to ignore its users and not improving their drivers as I've shown that their GPU is more than capable of decoding 1920x1088 16-ref frames AVC clips.

HTH.

Unknown said...

Watching L5.1 1080P movies with DXVA flawlessly on:

System:
Pentium 4 HT 2.8Ghz
1 GB Ram
XP SP3
Gigabyte HD4350 512mb HDMI

Drivers:
Catalyst 9.7
ATI HDMI Audio Driver

Codec Pack Used:
HD Pack 2.2

Codecs/Splitters/Players Used:
Cyberlink PowerDVD 8 h264 decoder
Haali Media Splitter
AC3Filter
MPC-HC

Kaan Pensatore da Attalia said...
This comment has been removed by the author.
Zach Saw said...

@Kaan Pensatore de Attalia

I think I may have got the build number wrong in the blog - it should be the one before 1719... should be 1530? 1529? Try one of those earlier ones - the 15xx ones.

It's strange that going from one build of PowerDVD to another will often break compatibility.

Steche said...

Same as Brian.
On my test rig:
- Pentium 4 D 2,8 GHz
- 1 Go DDR2
- XP SP3
- MSI HD4350 Cat 9.7

HD Pack 2.2:
- AC3 Filter
- Haali
- PDVD8 h264 codec

MPC-HC build 1207

It works !! Finally after 6 month of testing !! The latest mpc-hc AND cat 9.7 AND PDVD8 decoder are the solution for me.
With cat 9.6 = macroblocking and corruption with ref frame > 14
With mpc-hc prior to 1207 = stuttering, frame skip
With PDVD9 decoder = freeze at beginning of video.

I will do further tests and post my results here :)
I have an HTPC with 780G X2-4850e XP SP3 not tested yet.
Ah la la, almost bought a 9500GT ...

Zach Saw said...

@Steche

Nice.

I tried it with PDVD8 decoder using MPC-HC but somehow it keeps reverting back to software decode when I go beyond 8 ref frames @ 1920x800.

What renderer are u using in MPC-HC?

What version is your PDVD8 H264 decoder?

Kaan Pensatore da Attalia said...
This comment has been removed by the author.
Steche said...

Arrgghh !!
On my HTPC (780G X2-4850e XP SP3), macroblocking, stuttering and image corruption are always here for videos with ref frame > 14 i think.
Maybe the integrated HD3200 is the culprit ?

On the intel rig, VMR9 renderless.
Rescale on 2D surfaces, bicubic ps -1.
PDVD8 v 2.4.0.1426 from hd pack 2.2

Zach Saw said...

@steche

Most likely is. I don't think I've seen anyone getting HD 3000 series to work. HD 4000 series (not all models) have UVD2, which may be the reason L5.0 / L5.1 is working for us.

Anonymous said...

My system have:

Windows XP Pro SP3
Ati driver 9.8
Ati Radeon 3850 (AGP version - motherboard support only AGP 4x: Asus P4PE2-X)
Celeron 2.4 GHz
1 Gb DDR 333 MHz

Klcodec500f (i use MPC-HC that came with codecs)
On OUTPUT - HALI RENDER
On TRANSFORM FILTERS - H264(DXVA) and VC1 (DXVA)
NOTHING on external filters!

I can play any MKV file (1080p and 720p including your 007 trailer - L5,1 profile?) but i have no subtitles.
However on normal XVID files i do have subtitles so i can watch both types of files without changing anything!

Thank you,
Cosmin

Edgar said...

I have a HD4670 pciexpress and Windows 7 32-bit. No luck here i try the tutorial but any video filter i try give me horrible corruption in L5.0/L5.1 profile:
http://img262.imageshack.us/img262/2310/asvid20090825213222.png

i tried with mplayer homecinema internal filter, powerdvd 8/9 and arcsoft and the same result in all :(

Zach Saw said...

@Edgar

Win7 is another cattle of fish altogether. It's similar to Vista to a certain extent but introduces its own DXVA decoder.

Try using MPC-HC with VMR7 as renderer and configure your Arcsoft decoder to use only DXVA 1. This should give you the most similar settings to XP. Even then, there's still an aspect of which will be very different - the graphics driver.

Edgar said...

@Zach

If i chose VMR7 as renderer DXVA don't work anyway configure arcsoft to use DXVA 1 only, but DXVA don't work with VMR7 as renderer so can´t see the change, if i choose EVR Custom DXVA work but i have corruption. My graphic card driver version is 9.8

Edgar said...

After install HDpack 2.2 now work's but only in movies with less than 9 ref frames to it I conform, for the rest this coreavc

Zach Saw said...

@Edgar

VMR7 does support DXVA 1.

Edgar said...

To me only Custom and EVR custom works with DXVA, this in windows vista/7. But now thx to coreavc and frameskip can see 1080p without image freze

Anonymous said...

I think I know a way to watch h264 L5.1 with ATI. (at least HD3450)
But I need to confirm this. Can please someone with ATI card (catalyst 9.x) and Windows 7 try this?

1.- Download MPCHC 1.2.1000 here http://www.xvidvideo.ru/content/view/638/2/
IT HAS TO BE THAT VERSION OR EARLIER or OTHERWISE IT WON’T WORK

2.- Open in MPHC 1.2.1000 the Elfen Lied ED video. (the point here is that MPCHC dxva decoder had to been used)

3.- Close the video with File->Close BUT KEEP THE MPCHC WINDOW OPEN.

4.- Now do double click on James Bond Quantum of Solace trailer or open in Windows Media PLayer 12. TA- DA!!

I’m watching L5.1 profile videos with an AthlonXP 2800+ and a cheap Asus AH3450. How awesome is that?

Anonymous said...

Nice guide... It will be useful...
For the record:
windows 7 RTM
No L5.0 L5.1 support with hd 3850 AGP. (green video) Codec: Microsoft, casimir (?)
Haven't tryed pdvd one... Nice to know "it is possible". I was thinking about an hardware limitation, actually... Why isn't this fixed once and for all by ati/amd? :P Who knows

jones said...

I own radeon hd 3650(agp) and cant get those L5.0/5.1 work. Im so fed up with this that i want to change videocard. The problem is agp-slot on my mobo, which limits options only to radeon hd 4650(agp)

If i buy this card, would ALL 5.0/5.1 videos work DXVA? Even those with 16 RefFrames or what would be the maximum RefFrame to work?

Zach Saw said...

@Jones:

I wouldn't count on it.
ATI drivers are very fickle even on PCIe cards which are supposed to be their mainstream cards.

On the other hand though, I've heard that you could run the exact same driver on AGP as you would on PCIe, so that *might* work. People who have more experience on this might want to comment on this...

Shiro said...

PLEASE someone try this. ATI card (catalyst 9.x) and Windows 7:

1.- Download MPCHC 1.2.1000 here http://www.xvidvideo.ru/content/view/638/2/
IT HAS TO BE THAT VERSION OR EARLIER or OTHERWISE IT WON’T WORK

2.- Open in MPHC 1.2.1000 the Elfen Lied ED video. (the point here is that MPCHC dxva decoder had to been used)

3.- Close the video with File->Close BUT KEEP THE MPCHC WINDOW OPEN.

4.- Now do double click on James Bond Quantum of Solace trailer or open in Windows Media PLayer 12. TA- DA!!

Anonymous said...

are newer HD 5750 any better then HD 4xxx cards for HTPC?
can ATI 5xxx cards handle L5.1/8+ frames?

Zach Saw said...

I don't have a 5000 series card so I can't say, but judging from the problems we've all had with ATI, I'd say it's not any better based on the fact that the problems aren't that the hardware can't handle the streams - it's that ATI doesn't know how to write software (drivers) to handle HTPC needs.

If I were you, I'd stay away from ATI cards for both games and HTPC alike. I've had so many issues with the drivers not installing properly and with it not properly handling DirectX modes I've lost all confidence in ATI.

ChrisK said...

is there a way to get 5.1 dxva using the 9.12 drivers? as they display blu ray correctly (before blacks were grey)

Zach Saw said...

@ChrisK

Nothing's changed from catalyst 9.11 to 9.12 Hotfix in regards to DXVA support. Again, there's nothing wrong with their architecture. The driver team simply sucks. And unfortunately, these days both the GPU + Driver define how good a graphics card is. ATI is no better than Intel.

Pollyplopp said...

Has anyone tried with Catalyst 10.1 ?

Unknown said...

I think this is fixed in the 10.3 previews. At least my old blade runner 1920*800 file which was all corrupted on previous drivers with dxva, looks fine now

pollyplopp said...

can someone confirm that they can HW accelerate a 1080P L5.1 file with 10.3 driver? I'm waiting for a new cpu...

Almost sound too good to be true.

Edgar said...

Catalyst 10.5 http://www.megaupload.com/?d=WH2U3WZG fix this issue. At least 1080p @L5.1 16 ref. frames works ok. with DXVA

Anonymous said...

Can confirm 10.4 support L5.1. Tested on BBC Birds sequence and worked fine (1080p, 16fraMES, l5.1)

Anonymous said...

I posted my findings here:

"ATI HD4250, Catalyst 11.12 flawlessly supports DXVA beyond its specs (L5.1)"

http://forum.doom9.org/showthread.php?t=163652

Nill3D said...

Hi Zach, Plis help me.
I'm already do everything that you said but don't work. I remeber that in the past I used a DXVA, but after a format pc this doesn't work anymore.

Specs
Windows XP SP3 Dual Boot Windows 7 Ultimate both 32bit

3GB ram
Dual Core Processor
ATI Mobility Radeon HD 2300 (M71) Device iD (7211)

you can help me with my GPU card?

sorry my bad english! :D