Log in

View Full Version : Which decoder has better quality: ffdshow or coreavc?


starsheep
28th April 2007, 15:31
Hi

I hope this is the right forum to ask.
I was just wondering which of the decoders gives the better picture quality, ffdshow or coreavc for x264 encoded movies?

Or is it even possible to say this in general?

Thanks a lot guys

StarSheep

foxyshadis
28th April 2007, 15:50
The h.264 part is supposed to be identical. There are a few bugs in CoreAVC (fixed in latest dev version, but who knows when 1.3 will be made available again), but on the other hand, it does PAFF interlacing where lavc doesn't.

CoreAVC has a more flexible set of output options, which might be important for quality if your graphics driver doesn't map YUV->RGB in the standard way. In ffdshow you have to use the levels filter, or HQ RGB output.

starsheep
28th April 2007, 15:55
Hi

Thanks for the answer but I only understood half of what you said :-) Sorry, I am not that firm with this stuff.

So you are saying I should use coreavc cause ffdshow also has a lot of settings to tweak the picture quality although I don't really understand most of them.

What I really don't like is the flicker I am having for example of country sides etc. Is it possible to get rid of this?

Thanks
StarSheep

iron2000
28th April 2007, 17:18
I have one h.264 video that plays well with ffdshow but shows up as garbage with CoreAVC.

So I think besides quality there is stil compatibility.
But CoreAVC seems to decode faster than ffdshow on those HD material.

starsheep
28th April 2007, 19:18
But if the video plays alike with both decoders quality should be the same right?

Thanks
StarSheep

KoD
28th April 2007, 21:55
Ok, before anyone else confuses you more, here it is:

- all h264 decoders should output the same thing, that's what the standard says; however, there are some bugs in certain decoders which will make them not comply to this

About CoreAVC and libavcodec (what decodes h264 for ffdshow):

- CoreAVC is the fastest software decoder out there at the moment, and it doesn't seem like this will change in the near or distant future; libavcodec is slower
- CoreAVC can use both of your CPU cores for even faster decoding (useful if you use it to decode high resolution and high bitrate material, like 1920x1080 or even 1280x720); libavcodec can only use one core for decoding h264, so having a dual core cpu will not help with decoding
- CoreAVC can decode PAFF and MBAFF interlaced h264, even though it is reported that its software deinterlacing doesn't always work as expected; however, you can configure CoreAVC to let your video card perform deinterlacing which is said to give better results and also uses less cpu; libavcodec inside ffdshow can decode only MBAFF; you will not be doing any interlaced encodes with x264, so this should not be an issue for you
- CoreAVC is known for not decoding properly in some circumstances; the result is blocks in the image where there should be none; however, this is pretty rare; on the same video streams, libavcodec gives no error
- CoreAVC is payware (you pay for it) but at the moment (and quite for some time, really), you can't buy it as the coreavc.com website doesn't allow you to do this; libavcodec is available in ffdshow which is a free download
- CoreAVC has an annoying activation scheme which binds it to one system and one windows os install; moving the license to another system and/or another windows version is known to have problems - either it's not allowed or the license transfer doesn't work as it should; activation requires an internet connection, so you can't activate CoreAVC on a computer that doesn't have an internet connection; you can install ffdshow wherever you wish and how many times you wish

I guess this covers the most important things.

starsheep
28th April 2007, 23:10
Thanks for your answer great to know all this stuff but still I only know a bit what you were saying.

So to sum it up I coulod say that coreavc is the better choice in general right?

BTW what is PAFF and MBAFF ?

Cu
StarSheep

starsheep
28th April 2007, 23:23
OH and one more thing.

I just installed CoreAVC 1.3 and any suggestions what settings I should set for it?
Right now it is on Standard Deblocking and and Software Deinterlacing. Aggressive Deinterlacing is Checked and so is Crop 1088 to 1080.

Any suggestings, thanks

StarSheep

rakf1
29th April 2007, 02:48
I tried HD H.264 playback on a Intel Core 2 Quad processor with ffdshow, CoreAVC 1.3 and Cyberlink H.264 decoders, Cyberlink used the least processor compared to CoreAVC and ffdshow (but not by much though), quality was all same. Cyberlink H.264 decoder is installed with PowerDVD Ultra which is $99, but the decoder actually works without activating the software, the PowerDVD software will not work without activating, but the directshow filters seem to work, so you can play H.264 using WMP. Not sure if it will work forever without activating, but its working for me now.

- CoreAVC can use both of your CPU cores for even faster decoding (useful if you use it to decode high resolution and high bitrate material, like 1920x1080 or even 1280x720); libavcodec can only use one core for decoding h264, so having a dual core cpu will not help with decoding

I dont totally agree with this statement, ffdshow uses only one core initially, but on a Dual Core if one core reaches 100%, it does use the other core, the processing load is just not balanced across all threads.

starsheep
29th April 2007, 09:13
Hi

well if you try x264 playback on a slower machine you will see some big differences. For example for me the cyberlink decover is the slowest and the worst too cause the picture quality with ffshow is much better and coreavc too. With the cyberlink decoder I always have jumpy playback. Mostly I am deregestering the filter to get rid of it.

Maybe ffdshows Post Processing can do something and improve picture quality.

Cu
StarSheep

KoD
29th April 2007, 18:42
Cyberlink's h264 decoder is slower than ffdshow and CoreAVC when it does decoding only in software. When you have a video card that's able to offload some of the decoding tasks, then Cyberlink's decoder will use that, therefore CPU usage is decreased. It's also true that overall cpu load will be lower when assisted by the video card than using a complete software decoder like CoreAVC, but that's usually the case only when decoding really high bitrate or high resolution video. There are also reports that Cyberlink's h264 decoder will sometimes skip the inloop deblocking, which can give an ugly looking result compared to ffdshow or CoreAVC. This depends on whether the video stream does indeed require the inloop deblocker, some do not.

Regarding what you think it happens when ffdshow uses one core 100% and then the second core a little bit as well. What you think it happens is not what's happening. I'm not making assumptions here, I'm stating facts. Libavcodec uses only one core for decoding h264. What you see there is not h264 decoding being done on the second core.

Regarding CoreAVC settings, it depends on what you are most likely to play:
- if you will never see captured tv streams ( .ts files) with interlaced material inside, then it's best to let deinterlacing to "No deinterlacing".
- if you do plan to see such interlaced material, then preferably let it to "DirectShow deinterlacing". This way your video card will help.

Standard deblocking is a must for having the inloop deblocker working (is required by the standard and part of normal h264 decoding).

Aggressive deinterlacing can be checked since lots of streams out there are broken and don't flag they are interlaced as they should.

The "Crop 1088 to 1080" should also be checked since the HDTV standards require broadcasts to be aired at a multiple of 16 vertical resolution (1088) instead of the actual display area of 1080. If you don't enable this cropping you will see those 8 pixels in a band of green or whatever other random color.

Place YV12 and YUY2 at the top of your "Color space output" list. YV12 is the easiest for the video card, but YUY2 will be used in the case of video card assisted deinterlacing.

Don't convert TV scale to PC scale if you are using Windows XP as current generation video drivers for XP seem to do this conversion themselves. If you are using Vista, then enable CoreAVC to do the conversion but only if you are using anything else as a video renderer than the Overlay Mixer.

starsheep
29th April 2007, 19:22
Thank you very much for the explanations they were very helpful.

I set my CoreAVC accordingly.

However I still have that uncalm picture especially in dark areas.
Does anybody know how to get rid of this cause I am pretty sure it is possible to get rif of.

There are also some blocks in dark areas.
Is this always the encoders fault or the playback software can do better?

Thanks
StarSheep

foxyshadis
30th April 2007, 01:35
Yes, it's the encoder's fault if it occurs in both decoders.

I'm smelling piracy here, since that's essentially the only way to get ahold of Core's products lately, when most people have been waiting months for that 24-hour update. This board doesn't condone that in any way, no matter how hard the company tries to drive customers away.

rakf1
30th April 2007, 07:56
Cyberlink's h264 decoder is slower than ffdshow and CoreAVC when it does decoding only in software. When you have a video card that's able to offload some of the decoding tasks, then Cyberlink's decoder will use that, therefore CPU usage is decreased. It's also true that overall cpu load will be lower when assisted by the video card than using a complete software decoder like CoreAVC,

Hah... I'm using NVidia 7800GTX on my system, my be thats the reason Cyberlink decoder is using less CPU... Is there a way to turn OFF video card acceleration so that I can check apples to apples comparison of codecs ?

KoD
30th April 2007, 11:56
I don't know if this is it, but while playing something using Cyberlink's h264 decoder, acces its filter properties (in MPC -> right click on the video surface -> Filters -> Cyberlink... ) and deselect "Use DxVA". Now, that might not be it, though.

arfster
1st May 2007, 14:58
Just a quick point: PowerDVD's decoders have improved a lot lately - I now find they use as low CPU as coreavc, even before you use hardware acceleration.

KoD
1st May 2007, 18:52
Well, I just tried myself and what I saw were artifacts (my card can't accelerate h264 decoding at all, so it was all done in software). Transparent vertical stripes, glass like, moving on the screen and then disappearing are not to my linking.

CruNcher
3rd May 2007, 11:41
Just a quick point: PowerDVD's decoders have improved a lot lately - I now find they use as low CPU as coreavc, even before you use hardware acceleration.

hmm nope not yet, but it's true for DXVA that CoreAVC can't cope with that for very complex high bitrate streams like used for Blu-Ray or HD-DVD on the same CPU.
Where Cyberlink reaches 24 fps CoreAVC just does 15 (real playback) fps max and that was only tested on a 7600 GS without CABAC acceleration wich all the coming GFX generation do now, but still it's the fastest Software renderer and as we can't use DXVA @ Decoding (no one did a GPU streamer yet) it's still very usefull for Editing (where you have no xs to DXVA/GPU accelleration yet).

starsheep
4th May 2007, 20:21
Thanks for all the answers guys, it really helped me a lot.

Thanks again
StarSheep

arfster
6th May 2007, 16:49
hmm nope not yet ....

On a C2D 2.7ghz, Vista, 158.24 drivers, running a 19mbit 1080p25 clip with VMR9:

CoreAVC 1.2 standard deblocking: 46.2dfps
CoreAVC 1.2 skip b-frame deblocking: 51.5dfps
PDVD7.3 2605n software: 52.1dfps
CoreAVC 1.2 no deblocking: 54.1dfps


Cuuldn't get ffdshow to produce a comparable figure, because it would only run at 25fps with neither core anywhere near maxxed.

KoD
6th May 2007, 17:22
Please, use the null renderer, not a system renderer ! Those results seem too good to be true. I get ugly artifacts and high CPU usage on my system when using the PowerDVD decoder for low bitrate and standard definition files. ^^

arfster
6th May 2007, 18:55
It's barely any different with null - coreavc (standard deblock) speeds up to 51.4dfps, Cyberlink to 54.5.
Shouldn't be too surprising this, as 40%-50% CPU is about normal for playback with faster C2Ds.

For lower bitrate stuff, CoreAVC fares better. With a 10mbit 720p file (BBC out of africa wildlife), Cyberlink gives 134.7dfps with null, 167.2dfps for CoreAVC.

I think quality issues with PDVD are mainly down to interaction bugs between the driver and whatever particular card you have. Some people find that even changing 3D settings like anti-aliasing produce all sorts of weird effects with HD-DVDs.

foxyshadis
7th May 2007, 00:34
If both cores added are about 100% of one core or a little more, that's the same as a single core fully used as far as the system is concerned. (Sometimes it'll land on one cpu always, sometimes the thread hops cpus every quantum, just an artifact of the windows thread scheduler.) So you were probably seeing the full ffdshow speed anyway.

arfster
7th May 2007, 23:13
If both cores added are about 100% of one core or a little more,....

Yeah, looks like you're right - they bounce around from 30/70 to 50/50. At least it's multithreading a bit though, so slower CPUs could play without stutter.

amdxp
18th May 2007, 13:04
Why doesn't the 720p movie play on my PC?

Movie: H.264 720p/50 fps
Bitrate: ~20mbit

PC: amd64 +3500
Ati x300

What I need to play this movie?

Sirber
18th May 2007, 15:20
Why doesn't the 720p movie play on my PC?

Movie: H.264 720p/50 fps
Bitrate: ~20mbit

PC: amd64 +3500
Ati x300

What I need to play this movie?
Dual core + CoreAVC or a card with GPU acceleration.

amdxp
18th May 2007, 15:47
Dual core + CoreAVC or a card with GPU acceleration.

Yes, you right. If there are no way to play the movie on this PC, so I need to change my card.

Sirber
18th May 2007, 15:52
Yes, you right. If there are no way to play the movie on this PC, so I need to change my card.

GPU accelerated only work with nvidia (8500/8600) and vista and powerdvd ultra (so far)

amdxp
18th May 2007, 17:02
GPU accelerated only work with nvidia (8500/8600) and vista and powerdvd ultra (so far)

Thank you. I must find something of this two. :)

saint-francis
19th May 2007, 15:03
GPU accelerated only work with nvidia (8500/8600) and vista and powerdvd ultra (so far)

So let me see if I have this right: The 8500/8600 Nvidia h.264 decoding is only usable in Vista and with the latest versions of Powerdvd. So this functionality is useless in XP and with any other player/codec. If this truly is the case then the 85/8600 cards aren't all their cracked up to be. Many people aren't going to use Vista for a long time for various reasons so the dx10 capabilities of those cards is useless, many people aren't going to be using powerdvd to decode their average h.264 movies and the 7000 series cards are just as powerful (if not more in some cases) and for less money.


Am I correct here?

foxyshadis
19th May 2007, 15:19
Nvidia does claim that they'll have an XP-compatible decoding driver available within the next two months. Of course it's best to wait until they actually do, in case they bail, but it looks like they haven't totally given up on XP support. The other GPU-decoding codecs, like nero and windvd, are bound to follow quickly enough.

Delerue
26th May 2007, 10:22
Why doesn't the 720p movie play on my PC?

Movie: H.264 720p/50 fps
Bitrate: ~20mbit

PC: amd64 +3500
Ati x300

What I need to play this movie?

Hmmm... Can you provide a sample?

You know, once I had a Sempron 3000+ running at real 2.6 GHz, and 720p videos could be played perfectly. Sometimes even 1080p videos, like Deep Sea (http://www.apple.com/trailers/imax/imaxdeepsea3d/hd/). I used: MPC + VMR7 windowed (render) + CoreAVC (skip b-frame deblocking) for H.264 videos / Microsoft default WMP11 codecs for WMV videos / Quicktime Alternative plugin for MOV videos / FFDShow for xVid and DivX videos.

amdxp
2nd June 2007, 22:30
Delerue how I can cut a sample from .ts movie?

Now I can play this movie but the quality is not so good. I don't know why that. I'd used MPC + CoreAVC.

Bigmango
3rd June 2007, 00:53
Hi
For example for me the cyberlink decover is the slowest and the worst too cause the picture quality with ffshow is much better and coreavc too. With the cyberlink decoder I always have jumpy playback. Mostly I am deregestering the filter to get rid of it.

As someone has already said above, I also think you were running an older version of PowerDVD. I also had some problems and blockyness with powerdvd in the past. But it has improved a lot (Powerdvd Ultra7.3). On my system it is now the best and the fastest h264 decoder.

I am on a core2duo 2,4 Ghz, with 2Gb ram, vista x64.

CoreAVC has some problems decoding some AVC material.
ffdshow (latest build 1220): When I decode Blu-ray 1080p AVC material ffdshow is stuttering (unbelievable on a c2d !!).

Powerdvd plays everything perfectly with 15% CPU use less than ffdshow (on an x1900xt ATI card). It seems hardware decoding is not supported on vista x64 yet (avivo support seems to be missing in the vista x64 ati drivers), I don't see much difference if I enable it.

And with powerdvd there are also some bonuses like audio DVD, DD+ and DTS+ decoding.

KoD
3rd June 2007, 10:08
I can assure you on my XP 2.4 Ghz P4 (single core) and a video card that definitely has no avc hardware assist (radeon 9700), the avc decoder in latest PowerDVD is much slower than CoreAVC.

Maybe multithreading or even hardware assist (even if you believe the contrary) is what does wonders for you.

And it's no wonder ffdshow is stuttering. Ffdshow decodes avc on a single thread, it doesn't use your both cores in parallel.

Bigmango
3rd June 2007, 21:03
Hmmm.. I don't know, I see the same cpu usage ratio spamming on both cores with the 3 decoders. Powerdvd uses less cpu on both cores, but the usage ratio is about the same for ffdshow and coreavc.

For the same source (1080p AVC blu-ray movie):

- powerdvd 55% core1, 50% core2
- ffdshow 70-75% core1, 65% core2
- coreavc 75-80% core1, 65-70% core2

Coreavc uses the most cpu, but plays perfectly. Ffdshow uses less cpu than coreavc, but is stuttering. Powerdvd is best.

I then did some more tests: I tried to play some low res strongly compressed movies. With these movies powerdvd was showing blockyness. Coreavc and ffdshow use deblocking, so the playback was smooth without blocks.

So it seems that powerdvd is not using deblocking (or less deblocking). I think this (at least partly) explains why poweredvd is using less cpu. I don't know if it is possible to enable (more?) deblocking on powerdvd ?

Edit: due to this lack of deblocking with powerdvd on strongly compressed sources, I am now back to using coreavc.

arfster
3rd June 2007, 21:33
So it seems that powerdvd is not using deblocking (or less deblocking). I think this (at least partly) explains why poweredvd is using less cpu. I don't know if it is possible to enable (more?) deblocking on powerdvd ?


If you have anything other than a 8500/8600, turn off hardware acceleration. Those two deblock with DXVA, others don't.

Bigmango
3rd June 2007, 22:15
If you have anything other than a 8500/8600, turn off hardware acceleration. Those two deblock with DXVA, others don't.

Good to know, thx. I have an ati x1900xt.

I was suspecting this, so I have also tried to disable hardware acceleration in powerdvd. It didn't change anything: the speed/cpu usage and blockiness were the same. As I said, I suspect that the vista x64 ati drivers still don't support avivo acceleration yet.

Delerue
4th June 2007, 19:23
Delerue how I can cut a sample from .ts movie?

I really don't know. Maybe you could provide the link where you downloaded.

Now I can play this movie but the quality is not so good. I don't know why that. I'd used MPC + CoreAVC.

You must check the other things I told you, and also check the CoreAVC configurations.

scott93727
8th December 2010, 03:47
Use VLC Media Player Ver. 1.15 it the BEST !!!!!
www.videolan.org/vlc/
Scott