PDA

View Full Version : Blocky color blotches playing x264 files on LCD TV


chapas
22nd April 2010, 04:01
Hello guys/gals.

I'm seeing some weird effect mostly in red areas of a 720p mkv video. Seems the transitions between the color shades are not smooth when the scene presents low tonal variance (walls, darkness, etc). So these shades looks blocky and blotchy, all of a single color. I'm struggling to get some samples out for you, but I cannot see this artifacts on my CRT. Why does this happen? How can I mitigate the effect with, for example, ffdshow filters?

Thank you :)

Inspector.Gadget
22nd April 2010, 04:53
Are you using the exact same decoding chain on the same PC except for the display?

Blue_MiSfit
22nd April 2010, 06:09
Add deband (gradfun2db) in ffdshow. This will help a lot. The "magic" number for me is ~1.51, per someone's suggestion.

Also, try using a different renderer, like EVR-CP or MadVR something. This has better chroma upsampling, which can help with issues like this.

~MiSfit

burfadel
22nd April 2010, 06:24
LCDs are naturally prone to that sort of thing due to their colour gamut and the backlighting, as well as some other reasons. The better the TV the less artifacts you will see, not more! Also it depends on the output method you are using from the computer to LCD. Are you using svideo, composite, or HDMI?

Playing around with the TV settings from the meny can help, in addition to the deband filter mentioned previously. Under rgb conversion at the bottom of the ffdshow settings select dithering as well as high quality yv12 to RGB conversion if not already selected.

Another trick is adding noise to the picture, using the noise function. Select mplayer noise, change the luminance value to your liking (10 or more), and completely disable chroma noise. This is a great trick as the noise is very light and makes the picture look higher quality than it really is :)

Blue_MiSfit
22nd April 2010, 08:32
I don't like the idea of doing the RGB conversion in software. It's very high quality but can eat CPU time alive when you're doing 1080p.

I use a noise level of ~5-15 and 2-5 for chroma. It does help hide this kind of thing.

If you're seeing blocking only in dark areas, lower the brightness of your LCD. That can help quite a bit ;)

~MiSfit

chapas
22nd April 2010, 12:24
Guys, thank you for so many replies and suggestions!

The decoding chain is the same for my computer and the HTPC:

PC: MPC -> Haali splitter -> ffdshow decoder (no filters) -> Overly mixer -> 42'' LCD TV via HDMI at 1920x1080p 50/60hz (not the best one around! model is sold by a local unknown brand)
HTPC: MPC -> Haali splitter -> ffdshow decoder (no filters) -> Overly mixer -> 19'' CRT via d-sub at 1600x1200 75hz. (samsung syncmaster)

I will try all the filters Blue_MiSfit and burfadel suggested.

About renderers, EVR-CP I know, can be used in MPC-HC, but what about MadVR?

Thanks again, lots of different things to try!

PS: I suspect my LCD TV has a TN panel, probably 6bit. I will try to watch the same video today at work's LCDs, to see if I can notice the blotches, just to discard the LCD TV as the problem.

LoRd_MuldeR
22nd April 2010, 12:40
About renderers, EVR-CP I know, can be used in MPC-HC, but what about MadVR?

Works in MPC-HC too :)

You only need to get an up-to-date version of MPC-HC and you need to get MadVR:
* http://www.xvidvideo.ru/media-player-classic-home-cinema-x86-x64/
* http://forum.doom9.org/showthread.php?t=146228

bob0r
22nd April 2010, 18:12
chapas this "problem" is around for ages.
It's the way x264 + AQ + all the rest work.
It takes away bits from the "unneeded" parts to make the "needed" parts look very shap and clean.

The effect is amplified when you play x264 720p "zoomed" on a 1080p LCD TV. The bigger the screen, the worst the effect, which ofcourse is logical aswell.

A way to fix it, is stop using x264 to the max, but feed it more bits to play with.
Going from 2-3mbit to 5-6mbit on 720p already makes a huge difference.

Snowknight26
22nd April 2010, 18:28
Also helps to not use a crappy 6-bit panel.

chapas
22nd April 2010, 18:48
LoRd_MuldeR: thanks for the info and links! I'll install it and test again :)

bob0r: Ok, so it's in the encode already. I'll try the suggestions above! (filters, renderers, etc)

Snowknight26: I'm not sure if it's a 6bit panel. I added the info because I suspected it was relevant. Just tested the video with two TN 6bit panels and it's noticeable. Will double check with my CRT.

Thank you all!

chapas
22nd April 2010, 20:33
Ok, results! Tested all this with a TN 6bit panel.

-EVR-CP or MadVR: blotches still there
-Add noise: blotches still there
-deband (gradfun2db) in ffdshow (1.51): all blotches gone!

I tried the "dithering" option under RGB Conversion, but made no difference.

Thanks for the tips, I'll experiment some more with the deband filter and let you know!

Blue_MiSfit
22nd April 2010, 22:15
Awesome :)

gradfun2db is _amazing_ !!

~MiSfit

burfadel
23rd April 2010, 02:19
Yeah it is good :) I actually use it in the encode chain, even though it was designed as a playback tool? Reason being, whats the point of the encoder (in this case x264) wasting bits trying to encode artifacts that are present in the source!

I'd still keep a little noise there anyway, it helps improve other areas of the picture if using the right settings.

Blue_MiSfit
23rd April 2010, 02:46
@burfadel

Gradfun2db doesn't remove artifacts. If anything, it creates them :D

All it really does is add noise in a clever way. This effectively masks banding / blocking in cases like these, but at typical bitrates this dither will not be preserved.

~MiSfit

chapas
23rd April 2010, 02:47
I tried the add noise filter, but with a setting of 10 it was too noisy for me! Will try noise level of ~5-15 and 2-5 for chroma, as Blue_MiSfit suggested. Furthermore, I'll investigate using it in the encode chain, it's just a great idea :) Thanks everyone!