Log in

View Full Version : Renderers - number of unique colours


hello_hello
9th January 2017, 08:28
Is this due to the way YV12's chroma subsampling is converted to RGB?

I used different renderers (MPC-HC) to display the same image on the TV running fullscreen and Alt+PrintScreen to take screenshots, then saved them as lossless images. The dimensions of the video were 1920x800 so there shouldn't be any resizing. I checked the number of unique colours in each screenshot with Irfanview.

VMR9 - 92466
EVR - 92466
Sync - 92466
Haali - 112157
MadVR (default settings, dithering disabled) - 95912
MadVR (default settings) - 110542

Not that I think I could see any difference. At least in this case.

Asmodian
9th January 2017, 08:37
Yes, but the YV12 to RGB conversion has resizing built into it so it is probably differences in that scaling algorithm, instead of the matrix.

VMR9, EVR, and Sync are all the same because they are all using the same GPU hardware?

Interesting results! :thanks:

What if you turn off colored dithering?

Edit:
I got curious so I did some testing myself:
http://www.mediafire.com/file/o4y9hhx7n4gdosu/2017-01-09_00_50_00-Book1_-_Excel.png

I got a surprising result, very little effect from dithering. This is from a 10-bit 4:2:0 H.264 source, luma is not resized. hello_hello, did you use an 8-bit source?

A different 8-bit source, dithering has more of an effect, maybe?
http://www.mediafire.com/file/97h35t7rf55va8o/8-Bit_Source_Jinc_Dithering.png

I am not sure all this means anything...

huhn
9th January 2017, 09:18
is this EVR CP or normal?

hello_hello
9th January 2017, 20:23
I tested with an 8 bit video. It was EVR Custom Presenter. Maybe it's an XP thing? ;)

It turns out there's no need to use PrintScreen. The same result can be obtained using the File/SaveImage menu.
I'm not sure I'm seeing 10,000 extra colours here, but Irfanview says it can. I reset MadVR to be sure. The only setting change I made was to disable dithering.

VMR9, 33220 colours.
https://s28.postimg.org/jgxuacqrh/VMR9.png

MadVR, 43007 colours.
https://s28.postimg.org/gbhtxvxj1/madvr.png

hello_hello
9th January 2017, 20:46
Ah.... I found a large part of it. I disabled my video card's expansion of the levels from TV to PC, and likewise for MadVR.
I had to use the PrintScreen method this time though, as for some reason MPC-HC's File/SaveImage menu was expanding the levels to full range when MadVR was rendering, but not for VMR9 (although I assume it should). The difference is far smaller now.

VMR9, 31836 colours.
https://s28.postimg.org/9zczapa31/vmr9_TV.png

MadVR, 33211 colours.
https://s28.postimg.org/88ty97sjx/madvr_TV.png

huhn
10th January 2017, 02:30
setting madVR to bilinear should make the number even smaller.

CruNcher
14th January 2017, 16:49
Isn't Hallis Renderer internally YUY2 4:2:2 by Default and wouldn't anyways accept only RGB32 as 2nd option ?

Show OSD

And look for Frame Format

Also what was the input Decoder ?

@huhn
setting it to DXVA should make it exactly the same then ;)

I tested with an 8 bit video. It was EVR Custom Presenter. Maybe it's an XP thing? ;)

It turns out there's no need to use PrintScreen. The same result can be obtained using the File/SaveImage menu.
I'm not sure I'm seeing 10,000 extra colours here, but Irfanview says it can. I reset MadVR to be sure. The only setting change I made was to disable dithering.

VMR9, 33220 colours.
https://s28.postimg.org/jgxuacqrh/VMR9.png

MadVR, 43007 colours.
https://s28.postimg.org/gbhtxvxj1/madvr.png

The only thing you do you highering the bandwidth and complete System overhead and power consumption mostly worth for nothing really, if you use Lav Video it's dithering alone is doing already lot of magic ;)

https://forum.doom9.org/showpost.php?p=1793001&postcount=42011

v0lt
15th January 2017, 09:06
When EVR-CP can be operated using 10-bit integer or 16-bit float textures. In this case, the dithering will be used.

CruNcher
15th January 2017, 11:05
Wait you also Dither then geez way to many useless dither overhead can happen it seems.

huhn
15th January 2017, 11:16
it is not useless what so ever.

the image after chroma upscaling needs dithering the image after YCbCr converstion needs dithering and it needs dithering after scaling.

CruNcher
15th January 2017, 11:19
And you say that is a advantage visually vs the performance impact and compared to the internal hardware processing and efficiency ?

nevcairiel
15th January 2017, 11:40
In any sane rendering chain, you only dither once and keep high-bit-depth before that. Even EVR-CP manages to do that internally. The only case where you get double dithering with EVR-CP is if you play high bitdepth content with eg. LAV Video, because EVR doesn't accept high-bit-depth input, so LAV has to dither.

Basic dithering is not very expensive though, for LAV its basically free, hence also no option to turn it off, since that would always be worse.

CruNcher
15th January 2017, 13:29
Did you just said EVR on Windows 10 doesn't support 10bit either in 10bit Driver Mode yet or did you mean pre Windows 10 now with that ?

I mean it sounded like you said there is no Native 10 Bit DXVA support yet not even in Windows 10 Anniversary with a 10 bit capable Decoder ?