View Full Version : madVR - high quality video renderer (GPU assisted)
madshi
6th January 2014, 21:04
FWIW, madVR has all internal pixel shaders precompiled, so it doesn't need any special dlls for basic operation. However, if you want to use custom pixel shaders (e.g. with MPC-HC) the "d3dx9_43.dll" is needed.
clsid
6th January 2014, 21:12
In that case having the DLLs in the same folder as MPC-HC should be sufficient, right?
madshi
6th January 2014, 22:06
In that case having the DLLs in the same folder as MPC-HC should be sufficient, right?
I'm not sure, with my current code. I'm calling LoadLibrary(d3dx9_43.dll) without a path. I'll double check whether adding a LoadLibrary() call with the path of the EXE file is necessary to make it work with MPC-HC's d3dx9_43.dll or not.
nevcairiel
6th January 2014, 22:27
Default DLL loading location includes the path of the executable of the current process. So as long as it executes in MPC-HCs process, it'll find it there.
madshi
6th January 2014, 23:14
You're right, just double checked, to be sure.
dansrfe
7th January 2014, 02:22
How is the frequency of frame drops/repeats computed? The ceiling seems to be 6.07 days instead of ∞...
QBhd
7th January 2014, 05:31
I have seen 1# days or something along those lines... I think that is the max :P
QB
DragonQ
7th January 2014, 12:21
I think the maximum has a J in it...
leeperry
7th January 2014, 13:57
G-Sync fixes this problem by adjusting the display's refresh rate to match the framerate, so it is always synced, without requiring triple-buffering.
There’s apparently already a VESA standard for controlling VBLANK intervals. The GPU’s display engine needs to support it, as do the panel and display hardware itself. If all of the components support this spec however, then you can get what appears to be the equivalent of G-Sync without any extra hardware. (http://www.anandtech.com/show/7641/amd-demonstrates-freesync-free-gsync-alternative-at-ces-2014)
Once mVR will take control of this new VESA standard, this will rock as it won't be tied to nvidia and overpriced 1K:1 CR TN/IPS panels.
This would appear to be the associated patent entry: http://www.google.com/patents/US20080055318
QBhd
7th January 2014, 16:09
I think the maximum has a J in it...
Ah yes... 1#J... I'll have to pay attention the next time I'm watching something to make sure. For me, it will only pop up for a brief moment, then settle down to some high hour value or a low day value. As far as I know it's just an estimate anyway, and I use it only as an indicator that all is well with my setup. If it's in seconds or minutes, I start to look for other issues in my playback chain.
QB
mandarinka
7th January 2014, 21:31
There’s apparently already a VESA standard for controlling VBLANK intervals. The GPU’s display engine needs to support it, as do the panel and display hardware itself. If all of the components support this spec however, then you can get what appears to be the equivalent of G-Sync without any extra hardware. (http://www.anandtech.com/show/7641/amd-demonstrates-freesync-free-gsync-alternative-at-ces-2014)
Once mVR will take control of this new VESA standard, this will rock as it won't be tied to nvidia and overpriced 1K:1 CR TN/IPS panels.
This would appear to be the associated patent entry: http://www.google.com/patents/US20080055318
http://www.anandtech.com/show/7641/amd-demonstrates-freesync-free-gsync-alternative-at-ces-2014
If you guys didn't see it yet.
I don't expect many vendors to issue updates for existing LCDs, but still it is nice, it means that in the future we won't need to obsess about 120 Hz (or even 600 for PAL content) or switch frequency manually based on what video we want to watch - well that is if it catches on.
nevcairiel
7th January 2014, 21:40
Its being marketed as a gaming thing again of course, can just hope that consumer electronics might also pick it up for TVs. Not everyone watches their move in PC screens.
Razoola
7th January 2014, 22:04
It makes you wonder why sony have not jumped on this before now with the PS4 and their TV's.
flashmozzg
7th January 2014, 22:06
Its being marketed as a gaming thing again of course, can just hope that consumer electronics might also pick it up for TVs. Not everyone watches their move in PC screens.
It's already in the in VESA standards. Just needs to be enabled by manufactures if it's not, and implemented in graphics driver.
nevcairiel
7th January 2014, 22:08
Just because its in the standard doesn't mean much though. If the TV people don't see the benefit, it won't get done :(
6233638
7th January 2014, 23:07
It's also unclear at this stage whether it's doing the same thing as Nvidia's G-Sync.
With G-Sync there is no latency, as the display updates as soon as a frame has been rendered. (well technically, I think it's polling every 1ms)
It seems like AMD's solution allows for a variable refresh rate to be set by the GPU, so it has to buffer for X number of frames in advance (I've seen triple-buffering mentioned on a few sites) which adds quite a bit of latency.
Latency doesn't really matter for video purposes, but it's not a good thing for gaming.
Hopefully it basically is equivalent though, as a VESA standard seems more likely to be adopted than G-Sync in televisions and other displays.
DragonQ
7th January 2014, 23:45
It makes you wonder why sony have not jumped on this before now with the PS4 and their TV's.
I don't think Sony or Microsoft care. For a start, they're hyping up TV integration for their latest consoles, yet they don't switch to 50 Hz when appropriate. I envisage a future where everyone's watching 25/50 fps TV on consoles at 60 Hz and acting like the judder is fine. :(
NicolasRobidoux
8th January 2014, 20:04
...
Also, does anyone have a link to an explanation or a paper on the Jinc algorithm? I'm the most interested in this because it seems to be the highest quality, at least for chroma subsampling and image upscaling, but I can't find any documentation on what the algorithm is. I don't mind math-heavy sources.
...
Thanks.
Start here: web.cs.laurentian.ca/nrobidoux/misc/AdamTurcotteMastersThesis.pdf (http://web.cs.laurentian.ca/nrobidoux/misc/AdamTurcotteMastersThesis.pdf).
Continue to the ImageMagick forums where the process of putting it together was documented, in particular http://www.imagemagick.org/discourse-server/viewtopic.php?f=22&t=19636.
Also see Anthony Thyssen's summary here: http://www.imagemagick.org/Usage/filter/.
Details of the methods are in the resize.c and resample.c files of the ImageMagick source code: http://www.imagemagick.org/script/install-source.php.
The documentation is all over the place because I have not had time to put together a self-contained technical description: I'd rather invent new methods (or, in my previous life as a prof., supervise students... or even teach them so they actually learn).
Guest
8th January 2014, 20:09
Your thesis link is dead for me.
nevcairiel
8th January 2014, 20:16
It works if you copy/paste the link, the URL tag seems to be screwed up.
NicolasRobidoux
8th January 2014, 20:29
Your thesis link is dead for me. Fixed.
Guest
8th January 2014, 20:39
Ciao, Nicolas! :thanks:
James Freeman
8th January 2014, 21:36
Any of you guys use for a perfect cinematic experience even though you can't actually see any difference?
I do. :D
Can anyone actually see the single duplicated frame every few seconds/minutes?
I doubt it.
Its not apparent like stutter/judder telecine;
It's a single duplicated frame among thousand+ frames.
Any more benefits?
Madshi mentioned that there is a more "stable" clock for less jitter errors.
Can anyone actually hear the slightly distorted (jittered clock) sound wave?
Being an audio enthusiast with a home studio... No, you can't;
BUT,
because video playback follows the audio clock (that's just how DirectShow works), the video playback will also be jittery (not even),
out-of-sync with the video card clock, and that video un-evennes is more apparent than slight audio deformation/distortion.
If the jitter is severe then you should probably replace your sound card.
Or use ReClock ! :)
Reclock, replaces the default (sound card) Audio clock that windows uses for everything,
with a more accurate and stable "Motherboard/Processor+Video Card" clocks which syncs the video playback and audio to that.
The perfect solution.
Any thoughts?
Asmodian
8th January 2014, 21:50
Hmm? A single duplicated frame every few seconds/minutes is still stutter/judder isn't it? Sure it is not like telecine but at 60 Hz a single duplicated frame is pretty noticeable if it happens during a pan, at least if you are used to noticing such things (if you don't, don't try).
I do not use ReClock anymore, smooth motion works so well I feel no need. :)
balkerman
8th January 2014, 22:18
Yes, i do notice the missing frames and despite playing blu_rays at the right clock on the tv, without reclock my receiver outputs 1-2 loud audio pops during the length of a normal film. I guess the framrate and tv are not close enough... Thanks Nev for helping me figure that one out!
Also i dislike madvr smooth motion, its blurs the picture...
DragonQ
8th January 2014, 22:18
Hmm? A single duplicated frame every few seconds/minutes is still stutter/judder isn't it? Sure it is not like telecine but at 60 Hz a single duplicated frame is pretty noticeable if it happens during a pan, at least if you are used to noticing such things (if you don't, don't try).
I do not use ReClock anymore, smooth motion works so well I feel no need. :)
Yes, I would say that you want a repeated/dropped frame every 2 hours or more, so that you get none during a film. That isn't always possible though, so you just go with the best you can. Even dedicated hardware players don't always clock correctly.
Not sure where Reclock fits into this though, it's not necessary IME. I just use custom refresh rates: for 23.976p I can get 23.97630 Hz, which should be a frame repeat every ~55 minutes. Don't think I've noticed such a frame repeat in a while.
e-t172
8th January 2014, 22:21
How noticeable it is depends on the refresh rate. A duplicate/dropped frame at 24 Hz is much more noticeable than at 60 Hz, because it lasts longer (42 ms vs. 17 ms). For this reason I would always use ReClock for 24p playback. However, since madVR smooth motion was released I tend to simplify things and just run everything at 60 Hz with smooth motion without ReClock, as it makes no difference with native 24p as far as my eyes are concerned.
QBhd
8th January 2014, 22:25
For me... I have a Plasma circa 2007 which has rectangular pixels (1024x768) and for playback I can run either 60Hz or 72Hz. For my setup, ReClock is a noticeable improvement over SmoothMotion (I too find it too blurry at 60Hz).
QB
James Freeman
8th January 2014, 22:29
I do not use ReClock anymore, smooth motion works so well I feel no need. :)
Ahh, but that's where you're wrong.
Smooth Motion still relies on a clock, Audio Card Clock if used without ReClock.
Its just blending the two adjacent frames that want the same instance in time (correct me if I'm wrong).
A more stable (jitter free) clock will give you a more consistent and even Smooth Motion experience.
Meaning, the frames will be spaced more evenly between each other.
Of course it's an ever so slight of a noticeable difference, but if you are a perfectionist....
So even if Reclock might not be needed to avoid frame drops/repeats, anymore, when using madVR’s new FRC algorithm,
you might still want to use Reclock, because it provides a stable and reliable audio clock with very low jitter...
nevcairiel
8th January 2014, 22:38
With smooth motion it makes no difference, since madVR can measure the difference in the audio clock and adjust its behaviour accordingly.
Since refresh rates are never 100% exact anyway, another tiny difference due to audio clock errors won't change anything at all.
e-t172
8th January 2014, 22:45
Ahh, but that's where you're wrong.
Smooth Motion still relies on a clock, Audio Card Clock if used without ReClock.
Its just blending the two adjacent frames that want the same instance in time (correct me if I'm wrong).
A more stable (jitter free) clock will give you a more consistent and even Smooth Motion experience.
Meaning, the frames will be spaced more evenly between each other.
That might be true in principle, but in my experience I was never able to notice any difference between SmoothMotion and SmoothMotion + ReClock. I believe the audio clock from the standard default audio renderer is accurate enough to not make any noticeable difference.
James Freeman
8th January 2014, 22:57
since madVR can measure the difference in the audio clock and adjust its behavior accordingly.
If I understand correctly,
Smooth Motion not only blends the two adjacent frames,
but also does some other magic to remove the "chasing" after the audio clock which resulting in a duplicated frame every few seconds/minutes.
I wonder,
Will it not create even more blended frames to remove the audio clock chase, besides the two blended frames?
That also makes me think, are there any "perfect sync" frames that actually fall on the exact time to display, or are they all blended in some way?
Madshi mentioned that the highter the display refresh and the lower the video fps the better.
Does it mean that there is more chance for a clean (unblended) frames to fall in their exact time, or are they just "less" blended?
Still,
To play a 23.976 clip on a 60Hz display in a perfectly spaced and even way without audio clock chasing, all the frames should be somehow blended?
nevcairiel
8th January 2014, 23:13
Smooth Motion is not a "dumb" algorithm that just blends in a pre-defined pattern to reach 60Hz, it actually simulates an infinte refresh rate display and can render video at any refresh rate, be that 59.9 or 60.1, it'll adapt - so that it can deal with inaccurate refresh rates without frame drops, as well as inaccurate reference clocks.
Of course its possible to hit a "perfect" frame which is not blended with anything else, but with the inaccuracy of video refresh rates its probably not something that happens too often.
ryrynz
8th January 2014, 23:32
Also i dislike madvr smooth motion, its blurs the picture...
Do you have Smooth motion set to Always or only when there's going to be frame drops without it?
Personally I select the latter (I notice too much softness at the Always setting) and enable Intelligent frame creation on my Panasonic at the lowest setting, and I think it's about as perfect as one could hope. Lots of detail with beautiful panning (most noticeable on vertical scrolling credits) without over doing it. Smooth motion is just the cherry on the top when enabled this way.
James Freeman
8th January 2014, 23:36
Of course its possible to hit a "perfect" frame which is not blended with anything else, but with the inaccuracy of video refresh rates its probably not something that happens too often.
Thanks, that's what I wanted to know.
Basically all of the frames are blended to some degree.
There are no "perfect" frames in a moving picture with Smooth Motion.
I still can't see a big difference between 24+SM on 60Hz & 24 on 72Hz.
Which is a very good thing.
Although,
24p on a 72Hz HD monitor in perfect sync, jitter free, and best quality picture, is the closest experience to Cinema I will ever get at home.
That experience requires ReClock & MadVR.
Cheers.:cool:
nevcairiel
8th January 2014, 23:40
Well, sure, if you run a integer multiple like that, SmoothMotion wouldn't be engaged, and not protect you from frame drops/repeats due to audio clock mismatch.
So for that scenario you can't get rid of ReClock. Its probably a better idea to try to fix these drops with ReClock, than activating SM always.
James Freeman
9th January 2014, 00:06
I have done some testing.
Taking screenshots of a Smooth Motion video reveal that there are a lot of "Perfect" frames among the blended ones.
Makes me think that it actually blending the two competing frames but leaves the other frames in perfect sync so that the picture will not get too blurred.
That raises two questions:
1. What Smooth Motion does with Audio Clock deviation?
2. How even the actual frames are?
nevcairiel
9th January 2014, 00:10
Even on screenshots its probably not easy to see a 0.05:0.95 blend, or even smaller percentages for one of the frames. So you should be really sure its really a 100% perfect frame, and not just a very close one.
madshi
9th January 2014, 00:15
FWIW, there can be unblended frames with SmoothMotion FRC, too. If the refresh rate is much higher than the movie framerate it will be quite common, actually. E.g. if the refresh rate is 1000Hz, and if the movie framerate is 24fps, most frames will be unblended. Only those very few of the 1000Hz frames which happen to "cover"/overlap two different movie frames will be blended. With the more common case of 24fps@60Hz, usually 2 out of 5 frames will be blended, and 3 out of 5 will be unblended. That's why I said that the lower the movie framerate and the higher the display refresh rate, the better. Because the lower the movie framrate and the higher the display refresh rate, the more unblended frames there will be (less sharpness loss, less ghosting).
Audio deviation doesn't matter. madVR simply uses blending to make our eyes believe that every frame is shown at exactly the correct timestamp.
I've seen hardware audio clocks with heavy jitter. And I've seen some without much jitter. In the first case Reclock might help (even without any modification/correction), in the latter case it might not be necessary at all.
nevcairiel
9th January 2014, 00:18
Assuming my refresh rate is rather inaccurate, or even pure 60.000 Hz for a 23.976 fps source, something you can't put a clean 3:2 into, wouldn't SM produce much more blended frames then?
madshi
9th January 2014, 00:28
No, for anything near 23-25fps @ 60Hz, it should be around 2 out of 5 frames blended, and 3 out of 5 unblended. At least as far as I remember. Frames are only blended for the duration of "overlap" between movie framerate and display refresh rate. Or let me try to explain it in a different way: Consider every Hz to be the duration in which a digicam shutter is open. Every Hz that sees the same movie frame doesn't need to be blended. Blending is only needed if the movie frame switches within the duration of the digicam shutter. When talking about 24fps @ 60Hz, the digicam shutter is only open for 16ms at a time while the movie frames only switch every 40ms. So there are many digicam shutters which only ever see one movie frame. Those don't need to be blended.
Not sure if that made things easier to understand? It is quite complicated.
James Freeman
9th January 2014, 00:28
Audio deviation doesn't matter. madVR simply uses blending to make our eyes believe that every frame is shown at exactly the correct timestamp.
So, It just blends that clock fixing frame too.
I've seen hardware audio clocks with heavy jitter. And I've seen some without much jitter. In the first case Reclock might help (even without any modification/correction), in the latter case it might not be necessary at all.
With Smooth Motion?
If so, Jitter-less clock helps to play the frames evenly with the unblended smooth motion frames.
Assuming my refresh rate is rather inaccurate, or even pure 60.000 Hz for a 23.976 fps source, something you can't put a clean 3:2 into, wouldn't SM produce much more blended frames then?
That's the million dollar question.
If so,
Reclock will help eliminate more blended frames by producing a perfect 3:2 ratio for Smooth Motion.
Jitterless frame rate will also prevent blended frames by SM, if SM is independent of the clock.
madshi
9th January 2014, 00:37
There is no such thing as a "clock fixing frame". And the only thing Reclock could help with is lower the audio clock = timestamp jitter. Which affects the SmoothMotion blend factors. But the jitter would have to be very very big to be visible. I believe in most cases Reclock should not be necessary. Not with SmoothMotion on, nor with it off. The latter would require, however, that you fine tune your refresh rate very carefully.
James Freeman
9th January 2014, 00:53
No, for anything near 23-25fps @ 60Hz, it should be around 2 out of 5 frames blended, and 3 out of 5 unblended. At least as far as I remember.
Not sure if that made things easier to understand? It is quite complicated.
Yes, it does make it easier to understand.
One of the key words here is around.
They are all pretty much blended to some degree if SM emulates infinite refresh rate.
Correct?
To make it a perfect fraction SM need a perfect sync between the movie fps and the displays refresh rate.
That's exactly what ReClock does.
And the only thing Reclock could help with is lower the audio clock = timestamp jitter. Which affects the Smooth Motion blend factors.
Thanks.
Exactly what I was talking about but in a more professional language.
I believe in most cases Reclock should not be necessary.
No, its not necessary.
But if I currently only have a 60Hz-ish display to play my movies,
My goal is to squeeze every last drop of Quality with MadVR & SM, and to have a perfect "blend factor" so that LESS blended frames are generated...
ReClock is the way to go, even with Smooth Motion.
Even If I will never notice the difference.
KNOWING is where its at.
Ask any Audio/Video-Phille out there. :D
druneau
9th January 2014, 01:23
Have you tried custom refresh rates?
Using ToastyX's Custom Refresh Rate Utility (http://www.monitortests.com/) it's really easy to create refresh rates which are really accurate. On my end I was able to create and use 89.991hz, 95.905hz and 100.00hz. Using them in madVR usually gets me 2-5hours for frame repeat/drop time. Now those refresh rates are high on my end, but I could just as easily create lower multiples that fit within the 60hz limit of typical lcd's. (I realize now that TV's might not take so kindly to custom refresh rates... I don't have any experience with TV's/Projectors. I use computer monitors only.)
I haven't touched reclock in over 2 years.
Asmodian
9th January 2014, 01:24
If so,
Reclock will help eliminate more blended frames by producing a perfect 3:2 ratio.
It sounds like it doesn't though, Reclock will help remove only very few extra blended frames.
This ascii art is actually to scale and I used red to denote blended frames generated by smooth motion.
-|---------|---------|---------|---------|---------|- 24 Hz
|---|---|---|---|---|---|---|---|---|---|---|---|---| 60 Hz
Notice if you change the spacing a small amount for either refresh rate it doesn't change the overall pattern. For example you can never get two blended frames in a row. Actually using 23.976 Hz for the video frame rate or 60.1 Hz for the monitor refresh rate would cause smooth motion to generate one fewer blended frames very rarely.
I do have to admit I am also running a 120 Hz display what does help smooth motion.
-|---------|---------|---------|---------|---------|- 24 Hz
|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-| 120 Hz
dansrfe
9th January 2014, 01:37
Theoretically though, if the refresh rate were to stay rock solid at a multiple of the frame rate then smooth motion wouldn't show any blended frames when set to "Always", right?
DragonQ
9th January 2014, 01:52
I do have to admit I am also running a 120 Hz display what does help smooth motion.
Um with 120 Hz you don't need smooth motion for 24p. Unless you mean 23.976p but then the number of blended frames will be lower than that.
Asmodian
9th January 2014, 01:55
Theoretically though, if the refresh rate were to stay rock solid at a multiple of the frame rate then smooth motion wouldn't show any blended frames when set to "Always", right?
Well they would also have to be perfectly synced to start with but I believe madVR will do that so yes, like my 24 fps into 120 Hz example but starting synced:
|---------|---------|---------|---------|---------|-- 24 Hz
|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-| 120 Hz
Um with 120 Hz you don't need smooth motion for 24p. Unless you mean 23.976p but then the number of blended frames will be lower than that.
Right, but only 1 less blend per 1000 frames. :)
6233638
9th January 2014, 03:56
Can anyone actually see the single duplicated frame every few seconds/minutes?I find it very obvious whenever there's a single dropped or repeated frame.
Its not apparent like stutter/judder telecine;
It's a single duplicated frame among thousand+ frames.Which makes it all the more obvious to me. With continuous judder, it's a lot easier to "get used to" and tune it out.
Any thoughts?I use JRiver's Video Clock feature which acts the same way as ReClock, but it takes its refresh rate data directly from madVR rather than calculating its own. (which may differ)
I find it works very well.
Using ToastyX's Custom Refresh Rate Utility (http://www.monitortests.com/) it's really easy to create refresh rates which are really accurate. On my end I was able to create and use 89.991hz, 95.905hz and 100.00hz. Using them in madVR usually gets me 2-5hours for frame repeat/drop time.In my experience, while there may be one frame drop/repeat every 2-5 hours, it usually manages to occur at some point during the film.
One frame drop every 2-5 hours does not mean that it will only drop a frame after 2 hours of playback, so a 90 minute film won't see dropped frames.
Even with very good and stable clocks, I still find it beneficial to use a solution like ReClock/Video Clock to prevent this from happening.
I also don't find it worthwhile to mess with custom clocks, as each video driver revision - or even rebooting the machine - seems to affect timing to some degree.
On the previous WHQL drivers, my refresh rate was stable at 24.00000±0.00001, with the new drivers it's around 23.99992±0.00002 each time I restart the PC. Not that it really matters.
http://www.abload.de/img/refreshb0jgx.png
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.