Log in

View Full Version : EVR/VMR horrendous downscaling. Is it normal?


mzso
2nd June 2014, 10:38
Hello!

Unfortunately I didn't find a DVB program that works with madvr. So I'm forced to use one of these.
All of them produce a really ugly image when I downscale it, horribly aliased. I often have the DVB program window on top in a small size and do something else until something of interest is shown.
It just looks really bad:
http://abload.de/img/evr-ds1raxpe.png

turbojet
2nd June 2014, 12:23
Can you adjust the resizer in the pvr program?

NextPVR supports madvr and dvb also I think JRiver does but it's $.

mzso
2nd June 2014, 12:45
Can you adjust the resizer in the pvr program?

NextPVR supports madvr and dvb also I think JRiver does but it's $.

I tried NextPVR. It's bugged with madVR. It also can't use LAV which has the best deinterlacer available to me.

I use progDVB. Which has EVR-CP but no settings available. So I don't know what's the point.

Maybe I'll have a look at JRiver.

JanWillem32
2nd June 2014, 13:14
The artifacts seen are aliasing problems caused by resizers that do not compensate for the Nyquist frequency. The regular resizer functions of the EVR and VMR don't have lowpass before resizing functionality nor resizers with a reducing sampling kernel. The custom renderer types based on the EVR and VMR don't have such functionality either, except for those I implemented in the experimental builds.

mzso
2nd June 2014, 14:26
The artifacts seen are aliasing problems caused by resizers that do not compensate for the Nyquist frequency. The regular resizer functions of the EVR and VMR don't have lowpass before resizing functionality nor resizers with a reducing sampling kernel. The custom renderer types based on the EVR and VMR don't have such functionality either, except for those I implemented in the experimental builds.

Okay. So that means that I need to find a DVB program with madVR support, to have decent downscaling. "Great"...

STaRGaZeR
2nd June 2014, 17:05
No, it's not normal. That looks like nearest neighbor. Check your GPU drivers and settings.

mzso
2nd June 2014, 17:58
No, it's not normal. That looks like nearest neighbor. Check your GPU drivers and settings.

I'm unavare of any relevant settings. What would I check driver wise?

JanWillem32
2nd June 2014, 18:57
I'm sorry to be the bringer of the bad news, but nearest neighbor-like output is to be expected when you're dealing with aliasing artifacts. The driver is actually at fault here, but you can't change that. It's nothing special; the drivers and the EVR just don't implement this kind of advanced functionality. The control panels that the video drivers offer allow you to set some video-related filters. In some cases some "enhancement" filters will be enabled by default, and those cause distortions that can be annoying. I see some possible sharpening artifacts in that picture, so maybe you can disable the sharpening filter(s).
As for the resizer selection for EVR CP, you can review the setting in the "View", "Options", "Output" menu.

STaRGaZeR
2nd June 2014, 19:50
Lean and mean EVR leaves the resizing up to the driver, as said. If you see that crappy resizing, your GPU/driver is at fault. Unless you have something messed up with the driver, you should get at least basic bilinear. Without more info on your setup there's nothing more to suggest really.

mzso
2nd June 2014, 20:42
As for the resizer selection for EVR CP, you can review the setting in the "View", "Options", "Output" menu.

You seem to assume, I'm using mpc-hc. But I don't, I use progDVB. I mpc-hc doesn't seem to with my tuner card. (And I use madVR with it anyway.)

Lean and mean EVR leaves the resizing up to the driver, as said. If you see that crappy resizing, your GPU/driver is at fault. Unless you have something messed up with the driver, you should get at least basic bilinear. Without more info on your setup there's nothing more to suggest really.

There's nothing interesting in my setup. I have a GTS450 with the latest driver.

QBhd
2nd June 2014, 23:35
Have you tried SmartDVB?

SmartDVB (http://www.dvbsupport.net/)

QB

turbojet
3rd June 2014, 00:06
I use nextpvr with madvr and lav filters and it works well, what problems are you having with it?

Also Potplayer might be able to use your card, it works for 3 different atsc ones for me and you can use whatever renderer and decoder you want but you can in nextpvr too.

mzso
3rd June 2014, 09:52
I use nextpvr with madvr and lav filters and it works well, what problems are you having with it?

Also Potplayer might be able to use your card, it works for 3 different atsc ones for me and you can use whatever renderer and decoder you want but you can in nextpvr too.

Several problems. The video was misaligned sometimes, half outside screen or not scaled. The OSD was wrong too, I forgot how.
But as I understand it's bug for everyone. Are you sure you're actually using madVR?
With LAV I only got a blackscreen. With HW acceleration. Didn't try without, because it's pointless without it and HW deinterlacing.

Potp apparently doesn't support DVB-C.

mzso
3rd June 2014, 09:53
Have you tried SmartDVB?

SmartDVB (http://www.dvbsupport.net/)

QB

I will. But since it also only has EVR...

QBhd
3rd June 2014, 12:55
I will. But since it also only has EVR...

?? I go to that site specifically for PotPlayer... doesn't SmartDVB use PotPlayer, and as such use madVR?

Just spit balling here since I don't use DVB, but I do use PotPlayer and madVR.

QB

mzso
3rd June 2014, 16:01
?? I go to that site specifically for PotPlayer... doesn't SmartDVB use PotPlayer, and as such use madVR?

Just spit balling here since I don't use DVB, but I do use PotPlayer and madVR.

QB

I was actually thinking of another DVB program. I tried this one already. Couldn't get it to work at all with my tuner. Seems DVB-S only.

QBhd
3rd June 2014, 17:15
bummer... Well that is the extent of my DVB knowledge :(

QB

pirlouy
3rd June 2014, 23:46
It' not the original question, but FWIW I use DVB with MPC-HC and madVR. It works well.

If it does not work with you, there are active delopers, so you can open a ticket on their tracker.

mzso
4th June 2014, 10:58
It' not the original question, but FWIW I use DVB with MPC-HC and madVR. It works well.

If it does not work with you, there are active delopers, so you can open a ticket on their tracker.

DVB-C? Didn't work out for me. It found only a few channels but they didn't work. It's settings are weird. It lacks settings for what others have and has ones that others don't. (bandwidth, offset vs symbol rate, modulation.)

pirlouy
4th June 2014, 23:46
Arf no. In my case, it's DVB-T. I don't know for DVB-C.
For settings, indeed you're limited, but for my limited use, it's perfect. A little rectangle in corner of the screen with Madvr and LAV doing good job.

mzso
12th June 2014, 10:11
Okay. So It seems the EVR issue is mabe not generic. I tried it on a different machnine which has an AMD GPU instead of my NVIDIA one, but it happened all the same.
I also tried it with a laptop connected to my monitor. But the image was much better no such disgusting aliasing effects. It was an Intel laptop with Windows 7 on it. The PC-s had Windows 8.1.
Now it's either something related to windows 8 or Intel does it better. (The first feels more likely.)

turbojet
12th June 2014, 14:37
Ivy Bridge and Haswell resizing has been compared to lanczos as opposed to generic bilinear in the madvr thread. Intel also denoises and sharpens by default in the driver settings. Nvidia doesn't, not sure about amd.

I compared pictures of windows 7 and 8.1 with madvr (directx9) and they were identical, I doubt directx11 makes a difference.

Asmodian
12th June 2014, 20:47
Yep, Intel does it better. Oddly enough. ;)

mzso
23rd June 2014, 16:59
Since it's apparently an unavoidable manufacturer dependent driver issue. Is it possible to replace, enhance or modify EVR? (For software that doesn't support madVR)

JanWillem32
4th July 2014, 17:28
Yes, it is possible. Examples are EVR Custom Presenter and EVR Sync. Note that these only replace the presenter part of the full renderer. Replacing the mixer parts is also possible, but takes a lot of work. (The EVR mixer part does chroma up-sampling, deinterlacing, conversion to R'G'B' and handles some minor, mostly timing-related functions.)
As far as I know, the version of the EVR Custom Presenter I wrote is the only custom EVR variant that implements such procedural down-scaling. Note that this functionality is disabled for when the basic nearest neighbor and bilinear resizers are activated, as older, low-end IGPs and GPUs just can't handle the processing load for these routines.

mzso
4th July 2014, 18:41
Yes, it is possible. Examples are EVR Custom Presenter and EVR Sync. Note that these only replace the presenter part of the full renderer. Replacing the mixer parts is also possible, but takes a lot of work. (The EVR mixer part does chroma up-sampling, deinterlacing, conversion to R'G'B' and handles some minor, mostly timing-related functions.)
As far as I know, the version of the EVR Custom Presenter I wrote is the only custom EVR variant that implements such procedural down-scaling. Note that this functionality is disabled for when the basic nearest neighbor and bilinear resizers are activated, as older, low-end IGPs and GPUs just can't handle the processing load for these routines.

These are program specific right? I meant to replace the system's EVR so all programs would use that.

JanWillem32
4th July 2014, 19:29
That won't work. The (basic) EVR is inside the system files evr.dll and dxva2.dll. Custom renderers that use the EVR will load these files as well. (MadVR also has a partial dependency on dxva2.dll as far as I know. This file exports several video adapter-driver functions that can be applied into a D3D rendering chain for video filtering purposes.) Also, replacing any system files will upset Windows Update, the system file integrity checker, and such.
If an application needs functionality beyond what the operating system's extensions provide, it should carry the code to handle such functionality by itself or use an extension to the program (these extensions are generally the non-system .dll, .ax and .ocx files).
Making specific applications load another program extension than they originally intended to do is rather hackish, but possible (on a per-application basis, not system-wide). For the programs where you have source control over, you just don't do that. It's inefficient, and you never get full control over all routines. For programs where you don't have source control over, it's a lot of reverse-engineering work. For the various D3D*.dll libraries it has been done for many years already to modify the functionality of games for example.