View Full Version : madVR - high quality video renderer (GPU assisted)
vivan
1st August 2012, 20:22
What is TL;DR ?http://lmgtfy.com/?q=TL%3BDR
Keiyakusha
1st August 2012, 21:05
I'm curious as to what's so bad with ffdshow. It's faster than lav, I see nothing's wrong with image quality and it works really good with real time avisynth filter (fk3db is godly with anime) especially combined with madvr.
Nothing "bad" with ffdshow. I like LAV more and can name a lot of reasons why for me it is superrior to ffdshow (not a talk for this thread). You wrong about speed though.
Speaking of f3kdb I agree. I wonder why it is still not adopted by any directshow solution (not counting ffdshow through avisynth).
turbojet
2nd August 2012, 00:12
The only reason I asked about avisynth support in madvr is to filter after resize where sharpening and debanding is often more effective. AFAIK this can only be done with the video renderer but it would probably require gpu resize -> cpu avisynth -> gpu display which may not be practical.
vivan
2nd August 2012, 06:12
You forgot two more steps: converting to RGB and dihtering.
So... in that way avisynth should process either 16-bit 4:4:4 with same output (is it even possible?) or already dihtered RGB (when most filters are YV12). Also I'm not sure if debanding (without dihtering right after it) before resizing is actualy better than after (if all chain is 16-bit with dihtering in the end).
IMO, avisynth should be before scaling. And that could be achieved using ffdshow raw filter... but it couldn't output anything better than YV12. So if madVR could support avisynth processing it would be better, but debanding filter would be much more stable.
6233638
2nd August 2012, 06:19
While having a discussion with a friend, I did a quick comparison from a random disc, saying how bad most commercial DVDs look, and took some images of Lanczos 3-tap with the Anti-Ring filter, Spline 4 (which he was using) and SoftCubic80 as an example of some real-world content. (PAL Glengarry Glen Ross DVD)
Spline 4:
http://www.abload.de/thumb/spline64r9afc.jpg (http://www.abload.de/img/spline64r9afc.jpg)
Lanczos 3 Anti-Ring:
http://www.abload.de/thumb/lanczos3aky7x.jpg (http://www.abload.de/img/lanczos3aky7x.jpg)
SoftCubic 80:
http://www.abload.de/thumb/softcubic802uytx.jpg (http://www.abload.de/img/softcubic802uytx.jpg)
While there are still those diagonal artefacts showing up on Lanczos when the anti-ring filter is used, it's definitely an improvement compared to Spline4, I still prefer SoftCubic 80 with DVDs and other low resolution, poorly compressed content.
There just isn't enough high frequency detail in the source compared to ringing & mosquito noise to make the sharper algorithms worthwhile in my opinion.
I absolutely prefer using the new Lanczos 3 with the 720p content I've tried so far though. (which is mostly video game footage)
mzso
2nd August 2012, 08:18
The only reason I asked about avisynth support in madvr is to filter after resize where sharpening and debanding is often more effective. AFAIK this can only be done with the video renderer but it would probably require gpu resize -> cpu avisynth -> gpu display which may not be practical.
Probably with APU-s it wouldn't be a problem. Especialy future ones. (Kaveri)
naoan
2nd August 2012, 11:09
Nothing "bad" with ffdshow. I like LAV more and can name a lot of reasons why for me it is superrior to ffdshow (not a talk for this thread). You wrong about speed though.
Speaking of f3kdb I agree. I wonder why it is still not adopted by any directshow solution (not counting ffdshow through avisynth).
Nope, ffdshow is always 5-10FPS faster here than lav. You're right this is not the thread to talk about it.
The only reason I asked about avisynth support in madvr is to filter after resize where sharpening and debanding is often more effective. AFAIK this can only be done with the video renderer but it would probably require gpu resize -> cpu avisynth -> gpu display which may not be practical.
With madvr and fk3db, I found that it looks as good (if not better) to deband before resizing.
Keiyakusha
2nd August 2012, 11:35
Nope, ffdshow is always 5-10FPS faster here than lav.
This maybe true for old PCs I don't know. Starting from i7 era it always ahead.
LAV DXVA CB - 84 fps
LAV CUVID - 84 fps
LAV avcodec - 280fps
FFDshow avcodec - 278 fps
---
10bit LAV avcodec - 274 fps
10bit FFDshow avcodec - 257 fps <- not a typo
^ usinng LAV as splitter and null renderer
Edit: however what really speed brings to us? Speed difference doesn't makes one better than another for me as long as it can output at least 60fps. No sane people will use directshow for encoding these days.
naoan
2nd August 2012, 12:32
Probably only on Intel machine since I have AMD.
Speed difference give leeway for more CPU-heavy avisynth filter to be used real-time, depending on your need and CPU.
ryrynz
2nd August 2012, 13:48
Lanczos 3 tap with anti-ringing has replaced Mitchell-Netravali for my luma upscaling and allowed me to ditch LSFmod in Avisynth freeing up some CPU power to improve my anti-aliasing. :) Cheers Madshi, my anime never looked better.
madshi
2nd August 2012, 13:54
While there are still those diagonal artefacts showing up on Lanczos when the anti-ring filter is used
Sample? :D
JarrettH
2nd August 2012, 20:20
Yeah I believe you're right about there just not being enough information in a DVD to use Lanczos in a way that maintains the sharpness, yet gives it a nice smooth appearance like in Mitchell or SoftCubic. You can see that it brings out the noise in that screencap...of course it isn't in motion :p
@madshi: How about being able to use different upscaling per source? 720p and over might get the new lanczos for luma and below that use a softer one
While having a discussion with a friend, I did a quick comparison from a random disc, saying how bad most commercial DVDs look, and took some images of Lanczos 3-tap with the Anti-Ring filter, Spline 4 (which he was using) and SoftCubic80 as an example of some real-world content. (PAL Glengarry Glen Ross DVD)
Spline 4:
http://www.abload.de/thumb/spline64r9afc.jpg (http://www.abload.de/img/spline64r9afc.jpg)
Lanczos 3 Anti-Ring:
http://www.abload.de/thumb/lanczos3aky7x.jpg (http://www.abload.de/img/lanczos3aky7x.jpg)
SoftCubic 80:
http://www.abload.de/thumb/softcubic802uytx.jpg (http://www.abload.de/img/softcubic802uytx.jpg)
While there are still those diagonal artefacts showing up on Lanczos when the anti-ring filter is used, it's definitely an improvement compared to Spline4, I still prefer SoftCubic 80 with DVDs and other low resolution, poorly compressed content.
There just isn't enough high frequency detail in the source compared to ringing & mosquito noise to make the sharper algorithms worthwhile in my opinion.
I absolutely prefer using the new Lanczos 3 with the 720p content I've tried so far though. (which is mostly video game footage)
mzso
2nd August 2012, 20:45
I use bicubic75 for everything. Although I really dislike going under 720p. And mostly watch 1080p content.
leeperry
3rd August 2012, 00:40
anti-ringing also makes sense for downscaling.
sweet! coz I never upscale due to my SuperSampling evil scheme in ffdshow/avisynth, so I'm eagerly looking forward to trying AR for downscaling :thanks:
Mikey2
3rd August 2012, 04:33
I am not sure when this started happening, but I no longer see the OSD displays that show in Fullscreen ExclusiveMode. I do not mean the "Ctrl-J" OSD that shows all of the stats, I mean the one that displays in the top-left for a second or so when I turn the subtitles on/off, change a delay, etc.
Does anyone know what could cause this to no longer work? (I searched for a setting without luck in all of madVR's settings. I even searched in MPC-HC (my application) and LAV Splitter (my container.))
Actually, it appears once, when going in and out of "Windowed" mode. See the following screenshot (with the "Windowed" item on the top-left circled.)
http://i155.photobucket.com/albums/s297/mikeyurkus/WindowedModeOSD.png
But that is all I see, why do the other commands similar to that no longer display?
I should note that the status/progress bar appears just fine when in FullScreen Exclusive.
Thanks much in advance for your help!
MikeY
6233638
3rd August 2012, 05:07
Sample? :DHere you go: http://www.filedropper.com/vts011demuxed
06_taro
3rd August 2012, 08:19
madshi, could you please add an option to set more specific anti-ringing conditions? For example, the resolution of my display is 1366x768, and the anti-ringing algorithm works perfect when I watch SD videos with Lanczos upscaling. But when I watch a 1280x720 video, the ringing produced by lanczos3/4 is too few to be noticeable, so I prefer not applying anti-ringing in this case to save my GPU resources(on my iGPU, when anti-ringing is enabled, the rendering time increases significantly when input resolution increases, about ~34ms for 1280x720, so frame drops for 30fps videos). This can be done by adding an option to set the resolution enlargement factor for anti-ringing condition, say, enable anti-ringing when rendering_resolution / input_resolution >= 1.5, and disable it when rendering_resolution / input_resolution < 1.5.
pururin
3rd August 2012, 13:13
@6233638
You said that "In almost all tests I have done, Mitchell-Netravali is the best option for chroma scaling"
but why do you prefer using SoftCubic 80 on everything, chroma also?
(then again, the new anti-ringing filter may change all this?)
@Madshi
What do you prefer for chroma scaling now? Last I heard year ago, your choice was SoftCubic 100.
Btw Thanks for the AR, it's rock! Have you compare this to Intel gpu's adaptive scaling yet?
-------------
Also I heard there is a rule of thumb for choosing upscaling algorithms: The sharpness of the algorithm used in chroma upscaling section should not exceed the sharpness of the algorithm used in the luma section. It could be the same, but not exceed it.
Why is that?
From what I've seen around here, people choices don't quite concern/follow this rule. :confused:
6233638
3rd August 2012, 18:30
@6233638
You said that "In almost all tests I have done, Mitchell-Netravali is the best option for chroma scaling"
but why do you prefer using SoftCubic 80 on everything, chroma also?
(then again, the new anti-ringing filter may change all this?)Chroma needs to be upsampled with all videos. Even when you are playing back a 1080p video on a 1080p display at 100% size, Chroma needs to be upsampled because it is typically 1/4 the resolution of luma. (4:2:0 encoded video is standard)
The way it now works in madVR is that chroma is upsampled to the native video resolution, and then both chroma & luma are upsampled using the luma algorithm to the target output resolution. (this is done so that results are consistent regardless of input & output video sizes)
So the purpose of chroma upsampling is to have the best fit to the luma information. This is why, unlike luma upsampling where it is up to personal preference (between SoftCubic 80, Mitchell-Netravali and Lanczos 3 Anti-Ring in my opinion) there are objectively bad chroma algorithms to choose. If you use something like SoftCubic on chroma, it blurs things beyond the boundaries of the luma information causing colour bleeding, and desaturation.
If you only look at an artificial resolution test such as the zone plates found on many test discs, Lanczos 8 looks to be a clear winner for example. It has the highest sharpness and the least amount of aliasing by a considerable amount:
Lanczos 8, Bicubic 75, Mitchell-Netravali, SoftCubic 100:
http://www.abload.de/thumb/lanczos-85hqhd.jpg (http://www.abload.de/img/lanczos-85hqhd.jpg) http://www.abload.de/thumb/bicubic-757eq3w.jpg (http://www.abload.de/img/bicubic-757eq3w.jpg) http://www.abload.de/thumb/mitchell-netravalidnp82.jpg (http://www.abload.de/img/mitchell-netravalidnp82.jpg) http://www.abload.de/thumb/softcubic100t2p4q.jpg (http://www.abload.de/img/softcubic100t2p4q.jpg)
However when you look at other tests such as how they handle hard colour boundaries, the results are very different. Nearest Neighbour shows that the source is actually just a red and blue bar next to each other, though it's not possible to use that scaling on real-world content, nor is it possible to recreate that exactly. Here, Mitchell-Netravali is the clear winner with the least amount of colour bleeding or ringing.
Magnified 4x:
http://www.abload.de/thumb/boundariesarqhv.gif (http://www.abload.de/img/boundariesarqhv.gif)
If you look at real-world content, you get a different set of results.
Here is an animated example of chroma ringing from using Lanczos compared to Bicubic 75 at 4x size. Note how the edges get lighter, and if you view it at a distance, it almost seems bevelled rather than a flat area of colour:
http://www.abload.de/img/chroma-ringhipob.gif
Here is the blocky Nearest-Neighbour source (now you see why it's not possible to use it with real video) compared with Bicubic 75 (best algorithm for this image—minimal ringing, and maintains correct colour) and then SoftCubic 100:
http://www.abload.de/img/softcubicqppnm.gif
See how desaturated SoftCubic is compared to Bicubic, and the source material? This even happens at lower levels of SoftCubic, and is why the algorithm is totally unsuitable for Chroma upsampling in my opinion.
And in this example, Mitchell-Netravali also shows some desaturation. Nearest Neighbour (blocky) Bicubic 75 Mitchell-Netravali Softcubic 100http://www.abload.de/img/nn-bc-mn-scpurmv.gif
Ultimately though, I found that the minimal amount of ringing exhibited with Mitchell-Netravali compared to Bicubic 75 meant that it won out in the end with the majority of real-world film sources, compared to artificial tests or games footage. I would have no objections if anyone preferred Bicubic 75 for chroma upsampling over Mitchell-Netravali though.
These are the only two viable options for Chroma upsampling right now though. Any of the other scaling algorithms are consistently worse choices than those two. They are either too soft causing colour to bleed and/or desaturate, or they are too sharp and cause ringing problems.
It's possible that if the Lanczos anti-ring filter is implemented for chroma scaling it might be a better choice than Bicubic 75, but I suspect that it might be too sharp, and that Mitchell-Netravali will remain the best option. I'd be happy to test it out though.
Also I heard there is a rule of thumb for choosing upscaling algorithms: The sharpness of the algorithm used in chroma upscaling section should not exceed the sharpness of the algorithm used in the luma section. It could be the same, but not exceed it.
Why is that? This may have been true back when chroma was upsampled straight to the final output resolution using your selected algorithm, rather than being upsampled to the luma resolution of the video, and then using the luma algorithm to scale both to the final output resolution. I'm not sure that it would be true now, but I can't recommend using really sharp algorithms for chroma anyway.
EDIT: Forgot to post this. Why your Chroma scaling choice shouldn't be affected by your Luma scaling algorithm.
Mitchell-Netravali Chroma scaling with Lanczos 3 Anti-Ring Luma and SoftCubic 80 Luma compared. (2x Luma scaling, 2x Magnification)
http://www.abload.de/img/lumacwa9o.gif
As you can see, Luma scaling primarily affects the sharpness of the image, it does not have a major impact on Chroma. (brightness/saturation, ringing artefacts etc.)
This is why I say that Chroma should only be Mitchell-Netravali or Bicubic 75, and that anything else degrades image quality, whereas my Luma suggestions are just recommendations, and ultimately Luma is based on your personal preference.
naoan
3rd August 2012, 18:53
Thank you for your thorough review 6233638, you should make an article/blog/thread out of it so the knowledge doesn't get lost among sea of post. :)
madshi
3rd August 2012, 20:51
Since all resamplers have their strengths and weaknesses, it's all a matter of taste, as has been said many times in this thread. SoftCubic blurs (= desaturates) chroma, so what? Lanczos rings and Mitchell-Netravali shows aliasing. None of these algorithms is perfect. From my point of view, the chroma channels are often those with the biggest aliasing artifacts (very much depending on source, though), and SoftCubic helps a lot there. But I know it's just my point of view and I know 6233638 has a different opinion. That's why all these are options and everybody can choose what they like best. Depending on the content you use for showing differences, some algorithms will look better than others. If you want to show how bad SoftCubic is for chroma upsampling, choose a sample where blurred chroma is especially obvious. If you want to show how bad Mitchell-Netravali is, choose a sample where aliasing is especially obvious. Maybe there'll be a clear "best" algorithm for chroma upsampling in the future, but I don't think there currently is. You just have to pick your poison on which strengths/weaknesses are most important to you.
6233638
3rd August 2012, 21:48
None of these algorithms is perfect. From my point of view, the chroma channels are often those with the biggest aliasing artifacts (very much depending on source, though), and SoftCubic helps a lot there. But I know it's just my point of view and I know 6233638 has a different opinion. That's why all these are options and everybody can choose what they like best. Depending on the content you use for showing differences, some algorithms will look better than others.Don't get me wrong, I appreciate the work you've put in with all the various scaling algorithms (well, the entire project!) and of course it is up to people to choose what they like. But I think unless you specifically know why you want to not use Mitchell-Netravali or Bicubic 75 for Chroma, you probably shouldn't use anything else. I've done a lot of tests on content of all types; games footage, film, television, 2D & 3D animated content etc. (I've only posted a tiny amount of those results on here) and I've yet to find a compelling reason to use anything sharper than Bicubic 75 for chroma, or anything softer than Mitchell-Netravali. I think they're safer defaults, as it's rare that I find a sample that isn't negatively affected by SoftCubic on chroma to some degree.
I don't know if you have plans on implementing the anti-ring filter for Lanczos chroma scaling (if it's possible) but I definitely think that would be interesting to see, as Lanczos 3 and Bicubic 75 often produce fairly similar results in some of my tests, but eliminating the ringing would probably make a big difference there.
I know that my preference here has always been to minimise ringing at the potential expense of sharpness or other artefacts (because ringing sticks out to me the most) and that's not necessarily the popular choice, but I don't think chroma is really affected by that, as illustrated with the Mitchell-Netravali Chroma, Lanczos 3 Anti-Ring Luma & SoftCubic 80 Luma comparison.
I think the fact that chroma is only ever going to be scaled 200% (assuming 4:2:0) makes it far less variable than luma scaling options. As I said, the goal is to have the best "match" between the final chroma image and the native luma image in terms of edge sharpness and artefacts rather than anything else, whereas your luma scaling option determines how you want the final scaled image to look.
If you use SoftCubic 100 Chroma and Lanczos 8 Luma, you're always going to have soft, desaturated chroma in the image, but if you use Mitchell-Netravali or Bicubic 75, chroma is going to be a good match for luma in terms of sharpness, and should be a good fit with whatever you choose as your luma scaling algorithm, whether it's SoftCubic 100, Lanczos 8, or anything in-between.
Back when chroma was scaled completely independently of luma, it seemed like there was probably more room for variation. (e.g. if you're using a sharp luma algorithm, you might have needed a sharper chroma algorithm to match)
If you want to show how bad Mitchell-Netravali is, choose a sample where aliasing is especially obvious. Maybe there'll be a clear "best" algorithm for chroma upsampling in the future, but I don't think there currently is. You just have to pick your poison on which strengths/weaknesses are most important to you.Well that's just it, I've struggled to find anything where aliasing has been a problem with Mitchell-Netravali when used for Chroma upsampling. The whole reason I avoided it in the beginning and settled on Bicubic 75 is because I found aliasing to be a problem when using it for Luma upsampling. (my first tests were on Luma because it's much easier to see differences there) If anyone has a sample where aliasing is a problem with Mitchell-Netravali chroma, I'd love to see it.
If you do find aliasing to be a problem, I have no issue recommending Bicubic 75 instead. I must admit that I'm still quite torn between the two as the positive and negative aspects are fairly balanced, it's just that Mitchell-Netravali is on the softer side and Bicubic is on the sharper side, though Mitchell-Netravali seems to fare better with real content. (and Bicubic does better in more artificial tests)
Organon
3rd August 2012, 22:13
The new anti-ringing screws up text for me. I've been watching the Olympics and it's easily noticeable with those text overlays (stopwatches etc.) they use. An artificial example:
http://www.abload.de/thumb/l3plainussi6.png (http://www.abload.de/image.php?img=l3plainussi6.png)
http://www.abload.de/thumb/l3armlso7.png (http://www.abload.de/image.php?img=l3armlso7.png)
ryrynz
3rd August 2012, 22:44
Are you sure you're using the second build (http://madshi.net/madVRantiRinging2.rar)?
Organon
3rd August 2012, 22:53
Are you sure you're using the second build (http://madshi.net/madVRantiRinging2.rar)?My bad, that's much better.
Keiyakusha
3rd August 2012, 23:12
BTW I always wanted to ask but forgetting every time. If I encode 720x480 h264 video with 32:27 SAR and will play it (LAV splitter used and it is set to take SAR from stream, not DAR from container). Why madVR scales this video to 1919x1080? Looks like rounding issue somewhere...
cyberbeing
3rd August 2012, 23:35
Why madVR scales this video to 1919x1080? Looks like rounding issue somewhere...
I saw the same issue when scaling from 720x480 to 2560x1440 (2559x1440). It could be a bug in how MPC-HC calculates 'Touch Window From Inside" with anamorphic video.
Keiyakusha
3rd August 2012, 23:39
I saw the same issue when scaling from 720x480 to 2560x1440 (2559x1440). It could be a bug in how MPC-HC calculates 'Touch Window From Inside" with anamorphic video.
Its not MPC-HC (i don't even use it) its every player. So the issue possibly in madVR
Maybe it scales 720x480 -> 853x480 then takes height (1080 in my case) and calculates width 853/480*1080=1919.25 ~1919x1080 I hope in reality its not doing scaling twice Oo
cyberbeing
4th August 2012, 00:20
I guess so then, I only tested MPC-HC the other day.
And speaking of chroma algorithms, I still prefer Catmull-Rom by default on everything but low-quality/low-resolution sources where I use Mitchell-Netravali. I personally find chroma ringing much more visible than chroma aliasing, which I can't say I've ever noticed on HD video. Catmull-Rom also happens to be the softest accurate resizer which doesn't desaturate the chroma on Crowd Run @720p, and barely produces barely any ringing, even on artificial sources.
All chroma algorithms are a comprise and content dependent as madshi says, but I also agree with 6233638 that there is an optimal range for chroma upsampling for average content, where you're not trying to solve a particular problem. What someone suggested earlier, about have different upscaling settings for SD and HD video, I could also see as being useful.
ryrynz
4th August 2012, 00:44
Two user defined ranges for hd and sd would be great.
iSunrise
4th August 2012, 13:15
madshi, I have a feature request and I think that, seeing all this talk about the current scaling options and upcoming future improvements, a lot of madVR users would probably like it as well.
It would really help a lot if you could include fast keyboard switching (STRG, ALT + 0-9 or some other combinations) between at least two or more scaling options so that we donīt always have to do screenshot comparisons between them when deciding what our favourite algorithm actually is.
It would make finding each oneīs preferred algorithms much easier, it would let us switch without actually having to pick the same settings time and time again and it would also help providing you with more useful feedback quickly.
ryrynz
4th August 2012, 13:44
See my post a page back :)
Hoping for something this year, fingers crossed.
pururin
4th August 2012, 16:37
Thanks a lot guys, that is very informative.
There are some folks (or expert as they said in that thread) at AVSforum who also prefer Catmull-Rom.
http://www.avsforum.com/t/1338724/lav-madvr-guide/30#post_20521371
For luma, Catmull-Rom may has aliasing issues. But what about for chroma?
From what I've understood, in general, the best way to upsample chroma is to use a very soft interpolator to remove all the aliasing.
But it seems that chroma aliasing issue is hard to find in real content, using madvr scalings. (as 6233638 and cyberbeing said)
So for Chroma, according to 6233638, aliasing has not been a problem with Mitchell-Netravali.
OTOH ringing has not been a problem with Catmull-Rom either according to cyberbeing (at least on HD content), plus less desaturation problem.
:confused:
I would like to test more about this as well. Do you guys have content suggest for chroma upsampling test?
iSunrise
4th August 2012, 21:28
...This is why I say that Chroma should only be Mitchell-Netravali or Bicubic 75, and that anything else degrades image quality, whereas my Luma suggestions are just recommendations, and ultimately Luma is based on your personal preference.
I must have probably missed this, but did you also do a comparison between Catmull-Rom and Mitchell-Netravali?
I for one currently went for Catmull-Rom (it doesnīt desaturate as much as Mitchell-Netravali compared to Nearest Neighbour) on chroma and SoftCubic 50 on luma.
I must also say that I am impressed with the results I get with madVRīs new anti-ringing algorithm and Lanczos 8 on luma. The only "negative" I could find with that is that it is too sharp for low quality content (when youīre sitting right in front of your PC). Not generally low res, but some content where you want a softer algorithm like SoftCubic to hide some annoying imperfections like aliasing.
Itīs like when you have good audio equipment and some really bad (limited) source, it throws every small imperfection of the recording right into your face, to a point where you actually donīt listen to the music anymore, but the imperfections that keep to annoy you.
6233638
4th August 2012, 23:16
There are some folks (or expert as they said in that thread) at AVSforum who also prefer Catmull-Rom.
http://www.avsforum.com/t/1338724/lav-madvr-guide/30#post_20521371
For luma, Catmull-Rom may has aliasing issues. But what about for chroma?To be clear, Don Munsil's post is from 2004 and not related to madVR, but rather, general image scaling and not specifically chroma scaling.
From what I've understood, in general, the best way to upsample chroma is to use a very soft interpolator to remove all the aliasing.
But it seems that chroma aliasing issue is hard to find in real content, using madvr scalings. (as 6233638 and cyberbeing said)This idea seems to come from the fact that Chroma is 1/4 the resolution of Luma, so people expect that aliasing will be a problem. The reality is that you end up with elements in the image with different sharpness if you use a scaling algorithm that's too soft.
Perhaps Madshi can confirm this, but from my testing, it would appear that Catmull-Rom is the same as Bicubic 50, as I can't see any differences between them. This basically puts it right in the middle between Mitchell-Netravali and Bicubic 75, and the scale of Bicubic-based resamplers based on sharpness is: Bicubic 100 Bicubic 75 Bicubic 60 Bicubic 50/Catmull-Rom Mitchell-Netravali
It actually does have some level of desaturation as well, just less than Mitchell-Netravali, and I think I originally concluded that Bicubic 75 was the first algorithm that doesn't really exhibit that, with the least amount of ringing.
The funny thing is though, going back to doing these comparisons again, I'm leaning back towards the sharper algorithms rather than Mitchell-Netravali for Chroma.
Initially back when I spent some time looking into the various options in madVR, I was deciding between Bicubic 60 and 75 I believe, and settled on 75. Then quite a bit later I was persuaded to use Mitchell-Netravali specifically due to the amount of ringing (or lack thereof) compared to the other Bicubic-based resamplers, and it definitely fared better in the tests that I did at the time, because I was specifically looking for ringing artefacts.
Tonight I've gone through a whole range of HD and SD test material again, and I think I do prefer the sharper algorithms overall, going back to my original decision. I actually found some material tonight which shows some issues with Bicubic 75 though. And when looking at fine details in HD material, Bicubic 75 can actually be too sharp and oversaturate them. (saturation might not actually be the right term, but I'll stick with that for now)
Both Bicubic 60 and Bicubic 50/Catmull-Rom (I did actually test both throughout, even though I think they're the same) showed virtually identical results for fine details in HD video, with Bicubic 75 being too sharp, and Mitchell-Netravali being too soft. If you're looking really close, I'd maybe give it to Catmull-Rom.
With SD material (which should really be the same as HD when chroma is only being scaled to the native luma resolution) Bicubic 60 fared better than Catmull-Rom, being higher saturation with an insignificant increase in ringing. (the difference in saturation seemed greater than the increase in ringing)
So I think I'm leaning towards that as my standard default, as it seems to be the best balance between HD and SD material.
Ultimately it's your decision, but I still don't think you should go outside that range. Anything above Bicubic 60 is too sharp, and below Mitchell-Netravali is too soft. Any of the options between that are all pretty good. I do think that Lanczos 3 has a lot of potential if there wasn't all that ringing though.
I must also say that I am impressed with the results I get with madVRīs new anti-ringing algorithm and Lanczos 8 on luma. The only "negative" I could find with that is that it is too sharp for low quality content (when youīre sitting right in front of your PC). Not generally low res, but some content where you want a softer algorithm like SoftCubic to hide some annoying imperfections like aliasing.You definitely don't want to go above Lanczos 3 with the anti-ring filter in use, that's one thing I can say with 100% certainty. The ringing might have gone, but the impact of it has not.
Lanczos 3 anti-ring (top) and Lanczos 8 anti-ring compared:
http://www.abload.de/img/u7wqvvosvv.jpg
As you can see, there's noticeable distortion when using Lanczos 8. (which would show as visible ringing over that area without the anti-ring filter)
cyberbeing
5th August 2012, 02:40
Ultimately it's your decision, but I still don't think you should go outside that range.
Anything above Bicubic 60 is too sharp, and below Mitchell-Netravali is too soft.
Any of the options between that are all pretty good.
I agree with 6233638, as that's the exact same conclusion I came to when I did my own chroma upsampling tests awhile back.
JarrettH
5th August 2012, 03:22
How about luma tests? They don't require a microscope to see the difference :devil:
ryrynz
5th August 2012, 09:39
The differences are easy to spot close up, they're just minor though except for one thing, I notice is that red brightens considerably with the sharper scalers with chroma at least on content I tried.
Which is the most accurate for color reproduction? I'd rather pick it based on that as that's the only thing I'm likely to notice given I'd be a few meters away from the TV. Catmull looks too bright, Softcubic 100 is dull.
6233638
5th August 2012, 13:12
The differences are easy to spot close up, they're just minor though except for one thing, I notice is that red brightens considerably with the sharper scalers with chroma at least on content I tried.
Which is the most accurate for color reproduction? I'd rather pick it based on that as that's the only thing I'm likely to notice given I'd be a few meters away from the TV. Catmull looks too bright, Softcubic 100 is dull.The thing is, it seems to vary depending on what you're actually looking at. There's no algorithm that seems ideal in all test cases.
When averaged out and looking at fine details in HD content, only Catmull-Rom/Bicubic 50 and Bicubic 60 measured the same as Nearest-Neighbour. Anything softer was duller/less saturated, and anything sharper was brighter.
Perceptually though, I'd say that Lanczos actually does very well if you can look past the ringing, even though it measures worse when averaged out. (that's not a recommendation to use it, just that it may be a good option if anti-ringing can work with chroma)
There's actually a surprising thing that happens with high levels of SoftCubic in some tests. While it definitely looks wrong from a colour perspective, sometimes blurring chroma that much actually makes details easier to see, because it makes the luma portion more visible. In that respect, Mitchell-Netravali is about as sharp as you can go before that starts to become a problem.
For example, SoftCubic 100, Mitchell-Netravali, Catmull-Rom, Lanczos 8:
http://www.abload.de/img/sc-betterhtu4r.jpg
Above, you can see that the red "pilgrims" text is easier to read with SoftCubic 100 rather than the sharper algorithms, where the lower resolution chroma masks the luma information. Mitchell-Netravali seems to be the best balance between clarity and brightness/saturation.
Here's a comparison taken from an HD video that will hopefully give you an idea of the brightness/saturation changes between various scaling algorithms. Because some of this is quite subtle, I've had to use Animated PNGs rather than GIFs, which only a few web browsers support. (I use Firefox which does) so these may appear to be static images for you.
If you want to compare static images rather than animated, here's the Nearest-Neighbour image (http://www.abload.de/img/nny3uiy.png), and you can click each image for a static PNG.
SoftCubic 100:
http://www.abload.de/img/sc100oduva.png (http://www.abload.de/img/sc100z2udx.png)
Mitchell-Netravali:
http://www.abload.de/img/mn42ui3.png (http://www.abload.de/img/mnd9ucq.png)
Catmull-Rom:
http://www.abload.de/img/crg5u2s.png (http://www.abload.de/img/cry9uqg.png)
Bicubic 60:
http://www.abload.de/img/bc60xlubo.png (http://www.abload.de/img/bc60jcu1p.png)
Lanczos 3:
http://www.abload.de/img/l30ruc9.png (http://www.abload.de/img/lanczos3uyuwd.png)
In this video, both Catmull-Rom and Bicubic 60 had the smallest difference from the native source as far as brightness/saturation is concerned.
Overall, I think Bicubic 60 tends to do best if maintaining the source brightness/saturation is your main concern. (there's just too much ringing to consider Lanczos, even though it does well in some tests)
ryrynz
5th August 2012, 14:14
Awesome as always 6233638. Bicubic 60 does look to be the most accurate with regards to brightness & saturation.
dansrfe
5th August 2012, 16:33
So what's the final verdict for chroma, luma upscale and luma downscale? :)
Mangix
5th August 2012, 17:27
there is none and there never will be. choose for yourself.
digitech
5th August 2012, 17:33
So what's the final verdict for chroma, luma upscale and luma downscale? :)
The veredict is: The Beauty of Choices.
Why stick with a blonde or a brunette when you can have them all!:)
l0rdraiden
5th August 2012, 20:02
Hi 6233638, thanks for the tests.
I know that there is not a best choice, but I have been reading most of the latest pages of this thread and I still don't have very clear what is your preference for luma and chroma upscaling (taking into account the new beta madvr) to play HD content (720) on a 1080 screen.
Xaurus
5th August 2012, 20:26
So what's the final verdict for chroma, luma upscale and luma downscale? :)
Based on 6233638's recent posts I have decided to run this:
Chroma upscaling: Bicubic 60
Luma upscaling: Bicubic 75
Luma downscaling: Bicubic 75
Hprd
6th August 2012, 01:39
there is none and there never will be. choose for yourself.
Yeah exactly. I found that "MN" is best IMO, and seemed to have the most accurate colors (without bleeding them I might add, Bicubic60 was perhaps closer to the original saturation and brightness, but did loose some detail because of this "bleeding" effect), and seemed to have a slightly smoother and cleaner picture (compared to BC60), without any noticable loss in detail.
LZ3 with anti-ringing would probably be ideal (which it is for luma scaling IMO, as LZ4 and 8 I found to not be as accurate (they smooth over some aliasing too much, and perhaps are a little too sharp in some ways), and also have been shown to introduce errors as shown by 6233638 on here) but for now it's probably between BC60 and MN for chroma scaling (and 6233638 has pretty much said the same as well, lol).
ryrynz
6th August 2012, 03:42
Hprd, are you able to produce a screenshot for this "bleeding" effect?
ajp_anton
6th August 2012, 03:44
The way it now works in madVR is that chroma is upsampled to the native video resolution, and then both chroma & luma are upsampled using the luma algorithm to the target output resolution. (this is done so that results are consistent regardless of input & output video sizes)Afaik, there is a conversion into RGB between the chroma and "luma" scalings. So the luma scaling should actually be called "RGB scaling".
turbojet
7th August 2012, 13:49
After looking into it more, avisynth resize is only 5-10% of the load. The majority of the load is finesharp and debanding the higher resolution video. I don't think running the 2 filters after madvr resize would solve the issue. So nevermind the request, ffdshow works great for pre-resize avinsyth.
Concerning ringing, is anyone using f3kdb()? It's main purpose is debanding which it does more effectively than ffdshow's deband, gradfun2/3 and variants by retaining detail and light grain rather than blur and use a lot of grain. It also unexpectedly reduced the ringing of the resizer. So much so that I went back to bicubic100 and see much less ringing then I did with ffdshow deband and bicubic75.
I'm having an issue with a dropped frame or two about every 5 seconds using any back buffer other than 1. They don't show as dropped or delayed in madvr status but they are easily detected. I've tried changing everything back to defaults, adjusting cpu/gpu queues, back buffer, flush settings, and resizers with no effect. One thing that did help is enabling directx 11 which reduces the frame drops to about every 10 seconds. With the heavier avisynth, the back buffer at 1 is delaying about 5 frames a minute that show up in madvr's status. If I disable avisynth, back buffer 1 works fine but above that it drops frames. The computer is an Athlon II 620, 6GB RAM (often less than 50% usage), nvidia 9500GT (latest WHQL drivers), windows 7 pro with aero enabled, cpu usage is 30-35% with no core above ~50%, GPU is 25-30% with about 400MB free, 60hz display, cuvid decoding in lavf, changing it to libav, dxva-copy or ffdshow has no effect. nvidia settings are all defaults which is app controlled and ivtc on, disabling it has no effect. According to madvr status the queues are constantly full except for render queue which goes down 1 for a second about every 20 seconds. Does anyone have any suggestions?
My laptop, with a sandy bridge i3, with 4GB, quicksync decoding handles the same avisynth script fine with any number of back buffer. The CPU and GPU load are around 50-60% so I'm pretty sure it's not a load issue on the athlon ii unless something is being misreported.
secvensor
7th August 2012, 14:59
I use:
Chroma upscaling: Bicubic 100
Luma upscaling: Spline 4 or Lancoz 8
Luma downscaling: Spline 4
More beautifully and more accurately.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.