View Full Version : madVR - high quality video renderer (GPU assisted)
James Freeman
3rd October 2013, 10:11
I've been using ArgyllCMS for quite some time now.
What is the benefits of using madTPG over the built in one?
P.S
Over a long email exchange sending back and forth huge Verbose calibration reports, and receiving new fixed beta versions.
Graeme Gill managed to fix the Black Input Offset problems when calibrating to BT.1886 standard (in fact anything with the -f0 command).
Expect new version soon.
leeperry
3rd October 2013, 17:06
Graeme Gill managed to fix the Black Input Offset problems when calibrating to BT.1886 standard (in fact anything with the -f0 command).
Expect new version soon.
Goodie, so I'll soon be able to use the following? dispcal -P 0.5,0.5,2,2 -v -yl -t6500 -f0 -G2.4 -qm bla
I can't make the test pattern area too big otherwise those silly Sammy TV's turn off their backlight completely when sent pure black. I'll get into the process of building a 3DLUT out of it later. But mVR can also trigger Argyll now, I wonder if it could do -f0 -G2.4, need to look it up.
The best picture settings will prove adequate for a HD7730?
I'm pulling the trigger on a 2GB HD7850, hard to refuse for 110€ shipped with some serious cooling too (http://www.vtx3d.com/products_features.asp?id=160) :)
It's only barely slower than a 660 so that should be the bee's knees with mVR for quite a while, I'll reconfirm :cool:
madshi
3rd October 2013, 18:40
So you can have madVR added to the graph in the UI thread and have the graph in another thread (preferably with a message pump). Then the only thing you have to do is to place some madVR calls on the main UI thread (well I had to do it only for SetWindowPosition, so I guess that anything that will somehow change properties on the madVR window requires to be called on the UI thread)
All of this might change some time in the future. I might at some point offer a windowless mode, similar to EVR. That should makes things like this a bit less painful. But it will probably be some time before I get to things like that...
Thanks for your reply. Could you give me a link about the post? I can not find.
Sorry, don't have a link. Would have to search myself. Just search for posts of the user name I gave you and look at the last 100 posts or so. There should be something useful there.
Win7 64-bit, with FSE On (using new path, Present Several Frames in Advance checked), HDMI or VGA out to an external monitor or projector, if I put the computer into Sleep (Standby) and then come out of Sleep, the first time (and only the first time) I go into FSE mode I seem to lose graphics output to the external monitor (the monitor goes into sleep mode) for about 3-4 seconds before finally going into FSE. If I use the old FSE path (Present Several Frames in Advance unchecked) then I have this problem when coming out of FSE mode instead of going into. Very odd. This happens only with Sleep, if I reboot the computer I don't have this problem.
Not sure what this is, but it doesn't sound like it's too much of a problem. I don't think madVR has anything to do with this. You could check if games behave the same way. Then you'd have proof that it's not madVR's fault.
Would absolutely love to get a test build with the deband feature. Pretty excited for this one based on what I've read and seen over on the flash3kyuu thread.
Alright, but no guarantees whatsoever:
http://madshi.net/madVRdeband.rar
You can toggle it by pressing Ctrl+Alt+D, or by using the file name tag "deband=low/high". Not available in the settings dialog yet.
FWIW, this test build also has a nice improvement for FSE mode, where rendering times don't decrease, anymore, when the backbuffer queue is full. In older versions a full backbuffer queue somewhat slowed rendering down. Not anymore (only Vista+).
i have a problem with .avi files when i choose madVR as the video renderer, like this:
[...]
but when i choose enhanced video rendere (custom presenter) works normally
That's a bug in the decoder which just doesn't show with other renderers. Basically the renderer sends the decoder buffers to store decoded frames in. And this specific decoder requires the buffer to contain the contents of the previously decoded frame, only then the image looks correct. madVR works differently, it does not initialize the buffers in any way. And DirectShow does not require it to. I could make the decoder work, but on the cost of quite a bit of raised CPU consumption, so I won't do that. Use a better decoder. Maybe you can get LAV Video Decoder or ffdshow to handle this file instead of the AVI Decompressor.
I need some help regarding external pixel shaders, no matter what I try I fail to apply a shader.
No matter what I do I get 0x80004005 as result...
Do external pixel shaders work when using MPC-HC?
You'll need to have D3D9 installed and updated to the latest version. IIRC it's not installed by default, at least not with all helper dlls etc.
After toggling a few settings, the problem seems to disappear after switching the decoding matrix to BT.601 instead of BT.709, which is what madVR autodetects.
I was getting weird effects in, say Breaking Bad season 3 episode 1, the clouds in the Mexican sky had red blotches.
I don't see how switching between BT.601 and BT.709 could make/fix a blue sky getting red blotches. Sure, switching between BT.601 and BT.709 should change colors a bit. But *not* from blue to red!
I've been using ArgyllCMS for quite some time now.
What is the benefits of using madTPG over the built in one?
(1) madTPG dithers, which helps dispcal accuracy and speed.
(2) You run everything through the same pipeline you later use for video playback. This way there's no potential difference (in colors, levels, whatever) between the test pattern generator pipeline and the video rendering pipeline.
(3) You can run ArgyllCMS on one PC (e.g. your laptop) and madTPG on another (e.g. your HTPC). Such a remote calibration works automatically with madTPG, if you allow the network communication to pass eventual firewalls. With ArgyllCMS' built in test pattern generator you must run ArgyllCMS and the test pattern generator on the same PC, which can be bothersome, depending on your setup.
Over a long email exchange sending back and forth huge Verbose calibration reports, and receiving new fixed beta versions.
Graeme Gill managed to fix the Black Input Offset problems when calibrating to BT.1886 standard (in fact anything with the -f0 command).
Expect new version soon.
Cool. How much of an improvement did the fixes bring? Just slightly better? Or is the result near perfect now?
James Freeman
3rd October 2013, 18:51
-f0 -G2.4
Yes, now it will give you BT.1886 without elevating the 0 black step, thus not sacrificing contrast ratio (tested).
As I have already mentioned, I am not a fan of BT.1886 (on my IPS 870:1 monitor).
I can see compression artifacts on black steps 0 to 3 (out of 255), on the purest blu-rays like The Hobbit.
Looks like random noise or squares.
For me BT.1886 is much too aggressive on my Dell U2410 poor Contrast Ratio.
On the other end, The better the monitor contrast ratio, the better and closer BT.1886 calibrated "Flatpanel" will look like a good CRT.
IMO™, anything below 1000:1, stick with Power law + BLC.
Cheers.
James Freeman
3rd October 2013, 18:55
Cool. How much of an improvement did the fixes bring? Just slightly better? Or is the result near perfect now?
Near Perfect.
The problem was the -f0 raised my native blacks from 0.23 to 0.29 (after calibration) thus destroying the contrast ratio (same with L*).
Now my contrast ratio stays native like the values I see on the "Report Uncalibrated Display" log.
I'll quote one of the mails:
> Can you please explain what did you do to make the calibration more
> accurate,
> for example: tightened the lower 10% dE?
Hi,
not exactly. There was some code that adjusted the
targets (for purposes that are no longer clear - perhaps to
help convergence on difficult devices ?) that I removed,
as well as weighting the stopping criteria to err on the side
of the luminance being lower than the target rather than
higher for the near black points.
Not to say that I actually understood it, but I'm still very grateful.
StephaneM
3rd October 2013, 20:06
All of this might change some time in the future. I might at some point offer a windowless mode, similar to EVR. That should makes things like this a bit less painful. But it will probably be some time before I get to things like that...
This would be an improvment, though once you know that there is a restriction, it's easy to handle (it can be tricky)
Do external pixel shaders work when using MPC-HC?
You'll need to have D3D9 installed and updated to the latest version. IIRC it's not installed by default, at least not with all helper dlls etc.
External pixel shaders are working with MPC-HC (well shaders are applied when madVR is used as the renderer)
For now I'm doing test on Windows 8, so I suppose D3D9 is up to date on this platform...
Thunderbolt8
3rd October 2013, 21:19
I got a new laptop with a GTX 760m, but I found out that I cannot change the graphics processor to NVIDIA for media player classic, because that option is greyed out (whql 327.23). how can I solve this issue?
edit: managed to change it with nvidia inspector, I had to change the "enable application for Optimus" setting to Value "SHIM_RENDERING_MODE_ENABLE". Now I can change all the sub-settings as well.
Thunderbolt8
3rd October 2013, 21:40
regarding the nvidia settigs. its been said that leaving everything to default should be recommended. but what about the setting texture filtering quality? shouldnt that affect the image quality of movies as well? its set to high as default/global, but can be set to very high.
does this indeed improve anything? in combination with this trilinear optimization can also set to off for best image quality.
also, something I noticed is that when I use CUVID in LAV Video as Hardware Acceleration, then my GPU and my CPU usage both is lower (according to task manager and nvidia inspector) than when using no hardware acceleration at all. Can this be right? Shouldnt at the GPU load be higher, because the NVIDIA card is being utilized with LAV Video and madvr at the same time then?
SHaKOL
3rd October 2013, 22:02
That's a bug in the decoder which just doesn't show with other renderers. Basically the renderer sends the decoder buffers to store decoded frames in. And this specific decoder requires the buffer to contain the contents of the previously decoded frame, only then the image looks correct. madVR works differently, it does not initialize the buffers in any way. And DirectShow does not require it to. I could make the decoder work, but on the cost of quite a bit of raised CPU consumption, so I won't do that. Use a better decoder. Maybe you can get LAV Video Decoder or ffdshow to handle this file instead of the AVI Decompressor.
How do i use LAV Video Decoder or ffdshow instead of the AVI Decompressor? because i opened LAV Video Decoder (formats) and didn't find avi :(.
6233638
3rd October 2013, 23:15
Alright, but no guarantees whatsoever:
http://madshi.net/madVRdeband.rar
You can toggle it by pressing Ctrl+Alt+D, or by using the file name tag "deband=low/high". Not available in the settings dialog yet.Debanding is okay, I guess...
http://www.abload.de/thumb/deband-offeps25.png (http://www.abload.de/img/deband-offeps25.png) http://www.abload.de/thumb/deband-low7gstp.png (http://www.abload.de/img/deband-low7gstp.png) http://www.abload.de/thumb/deband-high38s6t.png (http://www.abload.de/img/deband-high38s6t.png)
(brightened in Photoshop)
Asmodian
4th October 2013, 02:55
regarding the nvidia settigs. its been said that leaving everything to default should be recommended. but what about the setting texture filtering quality? shouldnt that affect the image quality of movies as well? its set to high as default/global, but can be set to very high.
does this indeed improve anything? in combination with this trilinear optimization can also set to off for best image quality.
Those do not affect MadVR, they are for rendering textures at an angle (like the ground in a 3D game).
also, something I noticed is that when I use CUVID in LAV Video as Hardware Acceleration, then my GPU and my CPU usage both is lower (according to task manager and nvidia inspector) than when using no hardware acceleration at all. Can this be right? Shouldnt at the GPU load be higher, because the NVIDIA card is being utilized with LAV Video and madvr at the same time then?
CUVID doesn't use the GPU to decode video. It uses the VPU which is a different chip on the card and another sensor in GPU-Z or Nvidia Inspector (I believe it defaults to not displayed in Nvidia Inspector). CUVID will also use memory bandwidth on the video card.
turbojet
4th October 2013, 05:01
Deband works well here with some quick tests is there a way for it to save it's state?
What is F2 save icon when toggling deband?
Speaking of keys ctrl+j conflicts with a hardcoded potplayer key (open webcam), ctrl+alt+j has no conflicts.
sheppaul
4th October 2013, 06:02
turbojet, you can disable the hotkey in preferences.
ryrynz
4th October 2013, 07:33
You can toggle it by pressing Ctrl+Alt+D, or by using the file name tag "deband=low/high". Not available in the settings dialog yet.
Awesome, I'm pretty impressed with the low setting, it not only smoothes out those strong bands but cleans up smaller areas too, giving an overall impressive smoothing. It cleans up a fair amount of artifacts too,
so definitely worth keeping active even on 10bit content which may not suffer as much from banding but still has encoding artifacts that will be improved with having this enabled.
I find the high setting is a little strong for my tastes, is it worthwhile to implement the improved (more demanding) algorithm option with the low setting as well?
Is there a way for it to save it's state?
What is F2 save icon when toggling deband?
Funnily enough this is exactly what you're after. F2 saves the changed state when you press it. As you can can maybe tell it actually doesn't work for deband at this stage, fair enough being a test build.
I too would really like a build where this setting could be saved ;) we'll just have to use the filename tags for now.
madshi
4th October 2013, 10:43
As I have already mentioned, I am not a fan of BT.1886 (on my IPS 870:1 monitor).
I can see compression artifacts on black steps 0 to 3 (out of 255), on the purest blu-rays like The Hobbit.
Looks like random noise or squares.
I think with a display with a higher native contrast ratio, you should see the compression artifacts just as well, if your ambient light level allows it. At least that's how I understand BT.1886.
[...]
http://www.microsoft.com/en-us/download/details.aspx?id=34429
How do i use LAV Video Decoder or ffdshow instead of the AVI Decompressor? because i opened LAV Video Decoder (formats) and didn't find avi :(.
Avi is the container not the codec. Judging from your screenshot the codec is CRAM. Try simply blocking "AVI Decompressor".
Debanding is okay, I guess...
Not sure: Is that irony, or did you really expect better?
Deband works well here with some quick tests
Comparable to your favorite f3kdb() settings? Or better/worse?
I find the high setting is a little strong for my tastes
Well, for good quality content it is probably too strong. But it can be useful for really bad content, especially for Anime. With Anime usually image edges are very sharp while non-edges are usually rather flat. So even in "high" setting there won't be much (if any) detail loss. I could probably even add a "ultra" setting for Anime with even stronger debanding. But I guess "high" should do the trick for most situations already.
is it worthwhile to implement the improved (more demanding) algorithm option with the low setting as well?
The improved algorithm consists of 5 checks instead of 1 check. The "high" setting has all 5 checks in it. The "low" setting still has 4 checks in it. So it's still improved over the original f3kdb() algorithm. But I've removed the 1 check which consumes most of the performance. That cut the rendering time in half. With the test images I can't really see a difference between having this 1 check on/off for the "low" setting, so I believe cutting the rendering times in half is the better solution.
ryrynz
4th October 2013, 11:34
Well, for good quality content it is probably too strong. But it can be useful for really bad content, especially for Anime. With Anime usually image edges are very sharp while non-edges are usually rather flat. So even in "high" setting there won't be much (if any) detail loss. I could probably even add a "ultra" setting for Anime with even stronger debanding. But I guess "high" should do the trick for most situations already.
I guess it depends on how well this fifth check holds up with stronger settings. The ultra setting would likely get very limited use, I do think the high is strong enough, but if you felt so inclined or other people would prefer an ultra setting I wouldn't mind seeing how well it does.
With the test images I can't really see a difference between having this 1 check on/off for the "low" setting, so I believe cutting the rendering times in half is the better solution.
For the general user I totally agree, do you happen to have any of the test images that included this extra check vs without?
I guess with a GPU upgrade coming soon, I wouldn't mind chucking extra GPU at even a small increase in PQ. Would you entertain me a build with the fifth check enabled on the low setting? I'd understand if you'd dismiss it.. Maybe one that includes the ultra setting too? :D
BTW your low setting isn't that far off the detail retention of my flash3kyuu settings. It's a bit softer but it does a better job overall.. I can honestly say I'll be moving flash3kyuu out of the Avisynth chain.
I like that a lot because now I can deband 10bit content without dropping down to 8bit. Pretty cool.. I'm going to watch my first MadVR debanded episodes tonight.
GCRaistlin
4th October 2013, 11:55
As I wrote above (http://forum.doom9.org/showthread.php?p=1645188#post1645188), sometimes madVR incorrectly changes or, on the contrary, doesn't change monitor refresh rate. Is it possible to add the possibility to change refresh rate from madVR's tray icon menu manually?
DarkSpace
4th October 2013, 12:31
I can honestly say I'll be moving flash3kyuu out of the Avisynth chain.
I like that a lot because now I can deband 10bit content without dropping down to 8bit.
Uhm, just for your information, dropping down to 8 bit is not necessary, there's Dither Tools (http://forum.doom9.org/showthread.php?p=1386559#post1386559) for high-bitdepth AviSynth output...
Also, the debanding works well here, but I think I'm getting some kind of spike in rendering times (default: ~14ms, spike ~154ms) every time it is activated from its disabled state or increased from low to high... I suppose that is expected?
Just to be clear, I get maybe 1 or two dropped frames because of this, if at all, and the rendering times do go down again relatively fast, I just want to make sure it's not a bug.
madshi
4th October 2013, 12:43
do you happen to have any of the test images that included this extra check vs without?
Yes, see the f3kdb() thread.
BTW your low setting isn't that far off the detail retention of my flash3kyuu settings. It's a bit softer but it does a better job overall..
Is the whole image softer? Or just certain areas? In the first case it's probably not the debanding itself, but f3kdb() by default adds random grain/noise to the image. For no benefit other than to make the image noisier. I've removed that part from madVR because madVR adds noise for the last dithering step, anyway. If you like the added noise, you could simply switch your display to 7bit instead of 8bit in the madVR device settings. That will increase the amount of noise madVR adds.
As I wrote above (http://forum.doom9.org/showthread.php?p=1645188#post1645188), sometimes madVR incorrectly changes or, on the contrary, doesn't change monitor refresh rate.
I've already replied to your "above" post.
Also, the debanding works well here, but I think I'm getting some kind of spike in rendering times (default: ~14ms, spike ~154ms) every time it is activated from its disabled state or increased from low to high... I suppose that is expected?
Just to be clear, I get maybe 1 or two dropped frames because of this, if at all, and the rendering times do go down again relatively fast, I just want to make sure it's not a bug.
When switching any settings, madVR resets the whole rendering setup which can take a tiny bit of time. Rendering times may spike. But changing debanding settings shouldn't take more time than e.g. changing scaling algorithms.
SHaKOL
4th October 2013, 13:08
Avi is the container not the codec. Judging from your screenshot the codec is CRAM. Try simply blocking "AVI Decompressor".
hmmm i blocked "AVI Decompressor" and then i played the video it says "cannot render the file" shows this:
http://im32.gulfup.com/YhgYC.png
madshi
4th October 2013, 13:48
Both LAV Video Decoder and ffdshow can handle CRAM files on my PC. In LAV Video Decoder the format is called "msvideo1".
SHaKOL
4th October 2013, 14:13
thanks madshi it worked :)
DarkSpace
4th October 2013, 14:42
When switching any settings, madVR resets the whole rendering setup which can take a tiny bit of time. Rendering times may spike. But changing debanding settings shouldn't take more time than e.g. changing scaling algorithms.
Thank you for the confirmation. I guess I simply didn't notice so far because I don't usually switch scaling algorithms...
6233638
4th October 2013, 15:15
Not sure: Is that irony, or did you really expect better?I was being sarcastic; it's very impressive!
http://www.abload.de/thumb/killer-is-dead91bsc.jpg (http://www.abload.de/img/killer-is-dead91bsc.jpg) http://www.abload.de/thumb/killer-is-debandrhbab.jpg (http://www.abload.de/img/killer-is-debandrhbab.jpg)
I will say that after having done quite a bit of testing last night, I'm not sure that it's something I would leave enabled by default, but for specific sources it can work very well.
It works surprisingly well for macroblocking in addition to banding, but I suppose that's really just another type of banding.
I was somewhat disappointed to see that it did not take care of the banding at the beginning of The Fountain Blu-ray, but when I actually brightened that up to look at it, it's clear why - it's a terrible encode; an old MPEG-2 disc.
http://www.abload.de/thumb/the-fountainonsdq.jpg (http://www.abload.de/img/the-fountainonsdq.jpg)
When you look at what the debanding option actually does for the image, it's still impressive:
http://www.abload.de/thumb/fountain-no-debanddgsgn.jpg (http://www.abload.de/img/fountain-no-debanddgsgn.jpg) http://www.abload.de/thumb/fountain-debandpcsqb.jpg (http://www.abload.de/img/fountain-debandpcsqb.jpg)
That said, especially on high, it does seem to act like "noise reduction" some of the time, obscuring fine details. If you look at the images above, you will see that the fingernail disappears.
With some content it may eliminate a lot of the banding/macroblocking, but actually look worse, because what's left now stands out against an otherwise clean image, and is a distraction.
And there are some cases where I thought it would work well, but it hardly does anything:
http://www.abload.de/thumb/digital-factorysfs51.jpg (http://www.abload.de/img/digital-factorysfs51.jpg) http://www.abload.de/thumb/deband-factory5zsxe.jpg (http://www.abload.de/img/deband-factory5zsxe.jpg)
But overall, very impressive and a good addition to madVR.
madshi
4th October 2013, 15:27
I was being sarcastic; it's very impressive!
Thought you meant that, but wasn't sure.
I will say that after having done quite a bit of testing last night, I'm not sure that it's something I would leave enabled by default, but for specific sources it can work very well.
I definitely wouldn't leave "high" on by default, except maybe for Anime content. But did you find "low" to eat away details, too? I would like to have a setting which is low enough to never harm, but to sometimes help. Is the current "low" setting still too agressive for that? I guess I could rename the current "low" setting to "medium" and add a "low" setting which is even more careful. Such a "low" setting probably wouldn't really remove ugly banding artifacts, but it could at least smooth the rough edges away from clean non-dithered 8bit encodes.
That said, especially on high, it does seem to act like "noise reduction" some of the time, obscuring fine details. If you look at the images above, you will see that the fingernail disappears.
With some content it may eliminate a lot of the banding/macroblocking, but actually look worse, because what's left now stands out against an otherwise clean image, and is a distraction.
Yeah. We humans have such a big advantage because we know what a fingernail is supposed to look like. So we know which part of the image is real detail and which is an artifact. A simple debanding algorithm has no way of knowing that. So at least in "high" mode it's always a balance act between debanding and detail removal. I do think in "low" mode usually details are left well enough alive.
And there are some cases where I thought it would work well, but it hardly does anything
Hmmmm... Yes, that one is a bit surprising. I'll have a look at that later when I find some time.
Thunderbolt8
4th October 2013, 15:41
CUVID doesn't use the GPU to decode video. It uses the VPU which is a different chip on the card and another sensor in GPU-Z or Nvidia Inspector (I believe it defaults to not displayed in Nvidia Inspector). CUVID will also use memory bandwidth on the video card.I still dont understand why the load on the nvidia is less when using CUVID and not at least as high as when not using it. the workload of the GPU needed for madvr, this shouldnt change when using CUVID, should it? so in that case the load should be at least be the same as when not using CUVID? or does CUVID indeed influence madvr performance?
aside from that, there are two things Id like to achieve: have my system be as silent as possible when watching movies, but also trying to maximize the length of life of my GPU (because that one of my former laptop died after ~3 years of itensive usage).
so Id say if my CPU and GPU load is lower when using CUVID, then this should mean less heat and less fan noise.
but what about endurance? I guess its a bit of speculation, but would the constant use of CUVID rather lead to an increase or decrease of my nvidia card?
6233638
4th October 2013, 16:17
I definitely wouldn't leave "high" on by default, except maybe for Anime content. But did you find "low" to eat away details, too? I would like to have a setting which is low enough to never harm, but to sometimes help. Is the current "low" setting still too agressive for that? I guess I could rename the current "low" setting to "medium" and add a "low" setting which is even more careful. Such a "low" setting probably wouldn't really remove ugly banding artifacts, but it could at least smooth the rough edges away from clean non-dithered 8bit encodes.I would have to do more testing with good sources before I made a decision on that. On principle alone, I would be inclined to leave it disabled with a good source, but maybe Low would not have any negative effects.
Low seemed to help with banding, but not so much with macroblocking. I was mostly just going through all my bad sources where I remembered banding/macroblocking being a problem than testing with higher quality sources.
madshi
4th October 2013, 16:34
Well, the debanding algorithm was not meant for macroblocking, although at really high levels it fixes some of them, too.
One thing with current Blu-Ray sources is that as clean as they might be, they are still 8bit encodes. That means on a really big screen, there should be some banding in some scenes. Of course the studio can dither the source down before encoding it, but usually the encoder swallows some of that dithering, or even all of it (depending on the bitrate etc). So a very mild debanding might even help with rather clean Blu-Ray sources. This might change when we get to 4K Blu-Ray which will hopefully introduce 10bit or even 12bit encoding. So one thing worth investigating is to find a clean Blu-Ray which shows very mild banding which is caused by nothing else but the limitation of 8bit encoding. Then when we have such samples to test with, we could look for debanding parameters which are low enough to fix just that kind of banding, without changing anything else. I'm pretty sure that at such levels the debanding should almost never harm and could stay active all the time.
Boltron
4th October 2013, 17:33
madshi, you are awesome. That is all.
dansrfe
4th October 2013, 17:39
Well, the debanding algorithm was not meant for macroblocking, although at really high levels it fixes some of them, too.
One thing with current Blu-Ray sources is that as clean as they might be, they are still 8bit encodes. That means on a really big screen, there should be some banding in some scenes. Of course the studio can dither the source down before encoding it, but usually the encoder swallows some of that dithering, or even all of it (depending on the bitrate etc). So a very mild debanding might even help with rather clean Blu-Ray sources. This might change when we get to 4K Blu-Ray which will hopefully introduce 10bit or even 12bit encoding. So one thing worth investigating is to find a clean Blu-Ray which shows very mild banding which is caused by nothing else but the limitation of 8bit encoding. Then when we have such samples to test with, we could look for debanding parameters which are low enough to fix just that kind of banding, without changing anything else. I'm pretty sure that at such levels the debanding should almost never harm and could stay active all the time.
This sounds awesome.
What should we look for in providing samples of banding due to 8bit encoding?
huhn
4th October 2013, 20:44
Well, the debanding algorithm was not meant for macroblocking, although at really high levels it fixes some of them, too.
One thing with current Blu-Ray sources is that as clean as they might be, they are still 8bit encodes. That means on a really big screen, there should be some banding in some scenes. Of course the studio can dither the source down before encoding it, but usually the encoder swallows some of that dithering, or even all of it (depending on the bitrate etc). So a very mild debanding might even help with rather clean Blu-Ray sources. This might change when we get to 4K Blu-Ray which will hopefully introduce 10bit or even 12bit encoding. So one thing worth investigating is to find a clean Blu-Ray which shows very mild banding which is caused by nothing else but the limitation of 8bit encoding. Then when we have such samples to test with, we could look for debanding parameters which are low enough to fix just that kind of banding, without changing anything else. I'm pretty sure that at such levels the debanding should almost never harm and could stay active all the time.
the eva 3 bd has 40 mbit vbr and a sceen like this
http://picload.org/image/olpdcil/00002.m2ts_snaps.png
on my very cheap iiyama (~150€) i can see some branding. on an good ips there should be a lot. on my asus vg 248there is no branding to see but tons of dithering noise. so don't judge this with an normal tn panel. on my tv is was huge but no time for this now.
DeadlyEmbrace
4th October 2013, 22:16
Madshi, you're the man!
Did some rapid testing with the deband test version and the result is amazing! Really looking forward to the next release :D
clsid
4th October 2013, 22:21
madshi, have you considered running post-processing algorithms such as Deband in software using the CPU before copying the data to the GPU?
GPU resources are very scarce, while most here will have plenty of CPU resources to spare. Playing a 1080p video uses less than 10% on a decent CPU.
I know it wouldn't work with DXVA native, but that is hardly a necessity on modern systems. Plus you could offer a Shader implementation as well.
Werewolfy
4th October 2013, 22:28
Hi, this is my first post here. I've tested the new deband function and I think that even at its low setting, it blows away too many details in dark areas.
Here some examples :
deband off http://img12.imageshack.us/img12/5824/jyf5.png
deband low http://img707.imageshack.us/img707/1378/kgsi.png
deband high http://img28.imageshack.us/img28/7330/qf2q.png
Look at the jackets and on the sleeves of the characters, it smooths a little too much details so I would like a very low setting that doesn't blow away any (or almost any) details even if the debanding is a little less effective. I'm using the deband on Ffdshow for many years and I think this function needs many levels of tweaking because it depends a lot of the quality of the video. 4 or 5 levels would be a good choice .
Sorry if I make some mistakes, I'm not used to write in English.
turbojet
4th October 2013, 23:20
madshi: f3kdb(31,dynamic_grain=true,random_algo_ref=2,random_algo_grain=2)
vs. low: f3kdb has more effective debanding but reduced details and more noise, preference depends on the situation
vs. high: f3kdb isn't as effective at debanding, about the same detail, more noise, prefer high over f3kdb
I'm only using f3kdb now for convenience, switching debanding to high every time a new player is opened is annoying when that's no longer an issue high will be default here. Also F2 and Ctrl+J conflict with potplayer without key remapping in madvr or potplayer.
clsid: madshi's reasoning is explained here (http://forum.doom9.org/showthread.php?p=1646495#post1646495) but I also hope at some point there's an option or auto shift to offload some things to the cpu. Are writing shaders much different then cpu code? JanWillem and madshi seem to be the only two doing the former on this board, the latter has many. Luckily debanding isn't a heavy load compared to anti-ringing and smooth motion.
6233638
5th October 2013, 01:15
Hi, this is my first post here. I've tested the new deband function and I think that even at its low setting, it blows away too many details in dark areas.You're right. I did some more testing tonight with Blu-rays rather than poor quality content, and it's definitely blurring things too much in dark areas. I need to start collecting some good examples.
On the other end of the scale, I'm also finding things where I expected the debanding to work well, but it had minimal effect.
http://www.abload.de/thumb/inferno7cumb.png (http://www.abload.de/img/inferno7cumb.png) http://www.abload.de/thumb/inferno-high8luyf.png (http://www.abload.de/img/inferno-high8luyf.png)
And it seems that quite a few films must be using the same tools to add an artificial vignette effect at the start of them, because I found another disc which looks like The Fountain example I posted before:
http://www.abload.de/thumb/killing-them-softly55uk2.png (http://www.abload.de/img/killing-them-softly55uk2.png) http://www.abload.de/thumb/killing-them-low92u0a.png (http://www.abload.de/img/killing-them-low92u0a.png)
It would be nice to have a test build where the variables could be adjusted to have a play around and see what works well for different content.
Coldblackice
5th October 2013, 03:06
In MPC, what variables and measures within madVR's information printout should we watch to determine what might be causing "laggy" playback? For example, I gather that "dropped" (28) and "delayed" (20) frame readouts are important. However, those two counts seem to be staying fairly static.
What else should I look to, to determine what might be the culprit?
truexfan81
5th October 2013, 03:08
Alright, but no guarantees whatsoever:
http://madshi.net/madVRdeband.rar
You can toggle it by pressing Ctrl+Alt+D, or by using the file name tag "deband=low/high". Not available in the settings dialog yet.
FWIW, this test build also has a nice improvement for FSE mode, where rendering times don't decrease, anymore, when the backbuffer queue is full. In older versions a full backbuffer queue somewhat slowed rendering down. Not anymore (only Vista+).
ctrl+alt+D toggles display mode switcher, so how do i toggle deband?
huhn
5th October 2013, 03:36
In MPC, what variables and measures within madVR's information printout should we watch to determine what might be causing "laggy" playback? For example, I gather that "dropped" (28) and "delayed" (20) frame readouts are important. However, those two counts seem to be staying fairly static.
What else should I look to, to determine what might be the culprit?
make sure your refresh rate match's the content you play. or try smooth motion.
as long as dropped frames repeated fraes and delayed frames don't increase madvr should work fine.
you can press control + r to reset the stats
ryrynz
5th October 2013, 03:58
ctrl+alt+D toggles display mode switcher, so how do i toggle deband?
Change your key bindings for the switcher so it's not using CTRL Alt D..
Uhm, just for your information, dropping down to 8 bit is not necessary
I use Avisynth via ffdshow, it converts 10 bit content down to 8 bit.
Low seemed to help with banding, but not so much with macroblocking. I was mostly just going through all my bad sources where I remembered banding/macroblocking being a problem than testing with higher quality sources.
Not only helps with banding but flattens anime content out beautifully without harming line detail. I've used a video for testing that was also used in the flash3k thread (below) and the low setting shows a bit of shadow detail loss in comparison to my conservative f3kdb settings, so I too would like to see a slightly lighter option in madvr.
I think that even at its low setting, it blows away too many details in dark areas.
It's not "blowing away details" it's actually quite conservative, but it does ever so slightly smooth almost the entire picture. It's not limited to dark areas which is interesting as it's
basically acting like a light to almost medium strength denoiser at it's current settings.
I would like a very low setting that doesn't blow away any (or almost any) details even if the debanding is a little less effective.
It would seem the low setting may be a little excessive for some content, with any luck Madshi will release a build that has a lower setting.
I would like to see a setting that could be enabled be default without impacting the image quality, it would seem the current low setting for high definition content only just crosses that line.
4 or 5 levels would be a good choice .
Maybe three or four might be the go.
Madshi, could madDeband have configuration options? Or does it have to be hard coded?
Is the whole image softer? Or just certain areas?
Certain areas, but these areas comprise most of the image. Line detail is beautifully kept (which is why it's so great for anime) but there's a lot of detail that is being considered as banding
which is not obviously visible as such. As a result this small scale banding removal does result in a somewhat noticeably but only slightly softer image.
I'd like to see the same strength debanding but perhaps more of a threshold before it's triggered.. in saying that, part of this code would be great as a denoising filter which could be a separate thing altogether...
A few screenshots showing MadVR's deband in action vs my settings with f3kdb, this is one of the videos used to test f3kdb in SAPikachu's first post. Particular attention should be paid to the bikes on the left in the shadows.
I've brightened this up to show more of what's happening, the f3kdb frame may not be the exact same frame as used in the other screenshots but it's identical enough for a comparison IMO.
I chucked the 7 bit result in there as I was curious as to how it would compare. Madshi said he removed the dithering step from f3kdb and dropping to 7 bit output essentially created the same effect.
Original
http://imageshack.us/a/img19/1906/935k.th.png (http://imageshack.us/photo/my-images/19/935k.png/)
f3kdb (GrainY=8, GrainC=8, keep_tv_range=true, Y=48, Cb=48, Cr=48)
http://imageshack.us/a/img812/8900/pbth.th.png (http://imageshack.us/photo/my-images/812/pbth.png/)
MadVR deband active (low setting)
http://imageshack.us/a/img822/1570/gli7.th.png (http://imageshack.us/photo/my-images/822/gli7.png/)
MadVR deband active (low setting) 7 bit output.
http://imageshack.us/a/img96/4566/9uw7.th.png (http://imageshack.us/photo/my-images/96/9uw7.png/)
Ideally I'm looking for a deband quality improvement over my f3kdb result whilst maintaining that same level of detail. I think most would be happy with having that enabled by default.
Coldblackice
5th October 2013, 09:08
make sure your refresh rate match's the content you play. or try smooth motion.
as long as dropped frames repeated fraes and delayed frames don't increase madvr should work fine.
you can press control + r to reset the stats
Thanks, good to know.
If system resources happened to be an issue, like memory or CPU, would that manifest itself in the form of delayed/repeated/dropped frames? Or could those affect performance while not bearing on those counts?
madshi
5th October 2013, 10:17
What should we look for in providing samples of banding due to 8bit encoding?
Look for Blu-Rays which look clean, but have very slight banding artifacts which are removed when you activate madVR's debanding in "low" setting.
the eva 3 bd has 40 mbit vbr and a sceen like this
http://picload.org/image/olpdcil/00002.m2ts_snaps.png
Does the madVR debanding take care of this?
madshi, have you considered running post-processing algorithms such as Deband in software using the CPU before copying the data to the GPU?
GPU resources are very scarce, while most here will have plenty of CPU resources to spare. Playing a 1080p video uses less than 10% on a decent CPU.
I know it wouldn't work with DXVA native, but that is hardly a necessity on modern systems. Plus you could offer a Shader implementation as well.
Of course the optimal solution would be to have every algorithm available on both CPU and GPU and then do a dynamic load balancing. The problem for me is that writing every algorithm for GPU and CPU means not only twice the amount of work, but actually more than that, because optimizing algorithms like this for CPU is much more difficult than optimizing GPU pixel shaders. SSE2 can do a lot of tricks, but writing really well optimized SSE2 code takes hours.
Another problem is that on the CPU side I have the decoded frames in the format the decoder sent. There are dozens of different pixels formats that the decoder could send. 8bit, 9bit, 10bit, 11bit, 12bit, 16bit. 4:2:0, 4:2:2, 4:4:4. YCbCr or RGB. Planar or interleaved etc etc. I've routines for all those formats to upload them to the GPU with matching texture formats. Once they're on the GPU and after deinterlacing and color conversion I only have one format and pixels shaders are written without caring about whether the texture buffers are 8bit or 16bit or whatever. On the CPU side I would either have to write separate SSE2 routines for every possible pixel format, or I'd have to convert every format to one common "processing" format. But then in order to be able to handle all formats, I'd also have to support chroma upsampling on the CPU, maybe even video mode deinterlacing. And I'd have to do all processing in 16bit instead of 8bit.
I hope you can understand now why I'm currently only writing GPU processing algorithms. Maybe some day far away I could also make some processing steps available on the CPU, but I don't have the resources to do that anytime soon.
If system resources happened to be an issue, like memory or CPU, would that manifest itself in the form of delayed/repeated/dropped frames? Or could those affect performance while not bearing on those counts?
If the CPU or system RAM is too slow/small, probably the decoder queue will go empty in the madVR OSD (Ctrl+J). If the GPU is too slow, the other queues might go empty. As long as there are no frame drops, presentations glitches and delayed frames, everything should be fine. If you still have laggy playback, something else is probably causing it. E.g. maybe your refresh rate doesn't match the movie framerate or something like that...
Hi, this is my first post here. I've tested the new deband function and I think that even at its low setting, it blows away too many details in dark areas.
Here some examples :
deband off http://img12.imageshack.us/img12/5824/jyf5.png
http://www.abload.de/thumb/deband-offeps25.png (http://www.abload.de/img/deband-offeps25.png) http://www.abload.de/thumb/deband-low7gstp.png (http://www.abload.de/img/deband-low7gstp.png) http://www.abload.de/thumb/deband-high38s6t.png (http://www.abload.de/img/deband-high38s6t.png)
http://www.abload.de/thumb/killer-is-dead91bsc.jpg (http://www.abload.de/img/killer-is-dead91bsc.jpg) http://www.abload.de/thumb/killer-is-debandrhbab.jpg (http://www.abload.de/img/killer-is-debandrhbab.jpg)
http://www.abload.de/thumb/inferno7cumb.png (http://www.abload.de/img/inferno7cumb.png) http://www.abload.de/thumb/inferno-high8luyf.png (http://www.abload.de/img/inferno-high8luyf.png)
http://imageshack.us/a/img19/1906/935k.th.png (http://imageshack.us/photo/my-images/19/935k.png/)
Can I have a 5 second (or so) sample from these movie files, which contains the frames you've been testing with?
I've found that the debanding algorithm produces slightly different results when testing with real movie files, compared to PNG files. Might have to do with levels, chroma subsampling or whatever. So in order to really reproduce your results, I need access to a (very small) sample.
Thanks!
ryrynz
5th October 2013, 10:31
As requested. (http://www.mediafire.com/download/dpv9bn7hfb37o2g/Madoka-01.demuxed.m2v)
The particular frame I was using is near the end. Clip is about 30 seconds long.
Werewolfy
5th October 2013, 13:47
Here the sample requested ;) http://www.mediafire.com/download/yag1e9gt0v0sy18/06_Heart_Monitor_(1080p_HD)_-_Copie.mp4
huhn
5th October 2013, 15:54
Does the madVR debanding take care of this?
the top part yes but the rest is not really affected:
http://abload.de/img/eva3s1off93ado.png
http://abload.de/img/eva3s1lowlxzfy.png
http://abload.de/img/eva3s1highc1z64.png
high really eats details in dark scenes:
http://abload.de/img/eva3s2off3tay8.png
http://abload.de/img/eva3s2lowwxl9j.png
http://abload.de/img/eva3s2high4fa8f.png
truexfan81
6th October 2013, 05:42
the top part yes but the rest is not really affected:
http://abload.de/img/eva3s1off93ado.png
http://abload.de/img/eva3s1lowlxzfy.png
http://abload.de/img/eva3s1highc1z64.png
high really eats details in dark scenes:
http://abload.de/img/eva3s2off3tay8.png
http://abload.de/img/eva3s2lowwxl9j.png
http://abload.de/img/eva3s2high4fa8f.png
can someone please make a deband build where pressing F2 to save actually works? i'd like to set it on light one time and forget about it.
thanks
ryrynz
6th October 2013, 07:11
can someone please make a deband build where pressing F2 to save actually works? i'd like to set it on light one time and forget about it.
thanks
Do remember that this was a test build for evaluating this feature only, and also what you've asked for has already been requested and I'm sure Madshi is aware of it.
If you have some videos you want it deband to be active on edit the filename of the videos with deband=low, hopefully a new test build will surface with the ability to save the state.
madshi
6th October 2013, 10:06
As requested. (http://www.mediafire.com/download/dpv9bn7hfb37o2g/Madoka-01.demuxed.m2v)
The particular frame I was using is near the end. Clip is about 30 seconds long.
Here the sample requested ;) http://www.mediafire.com/download/yag1e9gt0v0sy18/06_Heart_Monitor_(1080p_HD)_-_Copie.mp4
Thx.
the top part yes but the rest is not really affected:
http://abload.de/img/eva3s1off93ado.png
http://abload.de/img/eva3s1lowlxzfy.png
http://abload.de/img/eva3s1highc1z64.png
Is that the same image you posted the last time? I don't remember this one. Anyway. I don't see much (if any) banding in the original image? Might be my lacking computer monitor, though.
can someone please make a deband build where pressing F2 to save actually works?
There's only one who can do that, and I won't, because this is just a test build I didn't even plan to release. I just released it because some guys wanted to play with it. It's not meant to be used for actual playback yet. You'll need to have a bit of patience and wait for the official version, which is still some time away...
-------
Do you guys happen to have some images/scenes with typical blocking artifacts (I mean those 8x8 MPEG2 blocks)?
If so, I'd appreciate some screenshots. No samples needed for this, screenshots will do fine, but please use PNG and not JPG. Both (1) images with rather light blocking and (2) images with very heavy blocking would be useful. Thanks!
romulous
6th October 2013, 13:42
Hi madshi,
I have a DVD that has some menus that madVR does not work correctly with (it doesn't correctly highlight the menu options when you mouse over them - EVR works fine). I'm happy to log it into the tracker, but how would I get you a sample of the menus for you to check with?
Thanks!
Werewolfy
6th October 2013, 13:48
Do you guys happen to have some images/scenes with typical blocking artifacts (I mean those 8x8 MPEG2 blocks)?
If so, I'd appreciate some screenshots. No samples needed for this, screenshots will do fine, but please use PNG and not JPG. Both (1) images with rather light blocking and (2) images with very heavy blocking would be useful. Thanks!
Is that what you want? The last one is the picture I use to test deblock filters because when this kind of filter is too high, it blurs the details on the ground.
http://imageshack.us/a/img209/3759/tqwc.th.png (http://imageshack.us/photo/my-images/209/tqwc.png/)
http://imageshack.us/a/img21/4581/sfuy.th.png (http://imageshack.us/photo/my-images/21/sfuy.png/)
http://imageshack.us/a/img585/6959/8hja.th.png (http://imageshack.us/photo/my-images/585/8hja.png/)
http://imageshack.us/a/img571/5517/s1mx.th.png (http://imageshack.us/photo/my-images/571/s1mx.png/)
http://imageshack.us/a/img513/4953/gk5t.th.png (http://imageshack.us/photo/my-images/513/gk5t.png/)
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.