Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > Hardware & Software > Software players

Reply
 
Thread Tools Search this Thread Display Modes
Old 7th May 2010, 23:30   #2541  |  Link
yesgrey
Registered User
 
Join Date: Sep 2004
Posts: 1,295
Quote:
Originally Posted by JarrettH View Post
I read the ReadMe for 3dlut a bit...so this should be used? It's a benefit for lower cpu usage and picture quality correct? Do I need a large amount of GPU memory? Does it erase and recreate this offline data for every video watched?
Soon I will start a new thread for discussing all 3DLUT related questions. Let's keep this thread only for madVR related questions, please.

Quote:
Originally Posted by JarrettH View Post
Is there something I need to change in the output of ffdshow when I use 3dlut?
You should check only YV12 in ffdshow's output tab.
yesgrey is offline   Reply With Quote
Old 7th May 2010, 23:49   #2542  |  Link
namaiki
Registered User
 
Join Date: Sep 2009
Location: Sydney, Australia
Posts: 1,073
Quote:
Originally Posted by 6233638 View Post
Magnified 4x:
  1. Nearest Neighbour
  2. Bilinear
  3. SoftCubic 100
  4. Lanczos 3. Saturation is fine but edges are bad in other tests; same with spline.
  5. Bicubic 75
How exactly was spline36? What do you mean by 'edges are bad?' or is it because of the ringing? Though I generally don't like bicubic. It.. it.. produces too much artifacts (too sharp? and too much ringing) for my liking.




Madshi: Any chance that you would ever consider defaulting MadVR to a spline or lanczos scaler? Though I would guess, not without a good reason..

Last edited by namaiki; 7th May 2010 at 23:59.
namaiki is offline   Reply With Quote
Old 8th May 2010, 00:33   #2543  |  Link
6233638
Registered User
 
Join Date: Apr 2009
Posts: 1,019
Quote:
Originally Posted by namaiki View Post
How exactly was spline36? What do you mean by 'edges are bad?' or is it because of the ringing? Though I generally don't like bicubic. It.. it.. produces too much artifacts (too sharp? and too much ringing) for my liking.
With spline, it's hard to describe. It looks like there's too much interpolation being done and the edges of objects are being rounded off too much. Looks like the image is being drawn with curves. (which I think is what spline is actually attempting to do?)

What I don't like about Lanczos is probably the result of ringing (I find it rings quite badly on luma, 4/8 are even worse) but it looks different when it's being done on the chroma. You can almost see it in that example actually - the red circle almost looks like it has a beveled edge when it's just supposed to be a flat red circle.

And I agree that Bicubic 75 causes too much ringing for luma. I've only set it to that for now so that luma/chroma upsampling 'matched' but I plan on changing it. Then again I always watch content at its native (luma) resolution anyway so it's not really an issue for me.

From the limited testing I did some time last year, I decided mitchell-netravali looked best for luma, but it was too taxing for my system and it was nearly impossible to do a comparison on the exact same frame. Now it should be much easier to evaluate because you can change the rendering on a paused frame.

I haven't really seen any problems with Bicubic 75 on chroma so far at least, and it definitely produced the best results in 0.11 which surprised me as I tend not to like bicubic. What I can say though is that I actually like softcubic less than bilinear; that was also surprising, considering it's often recommended here, but it just blurs things too much.
6233638 is offline   Reply With Quote
Old 8th May 2010, 06:32   #2544  |  Link
Jong
Registered User
 
Join Date: Mar 2007
Location: London, UK
Posts: 576
Quote:
Originally Posted by madshi View Post
I prefer not to look at other people's code, but writing my own instead. This is not meant as a disrespect to other people's work, but I think it's sometimes better to start with fresh ideas. Also duplicating code from an open source project into my closed source renderer would be "bad".

I'm confident, though, that I'll be able to work out any remaining problems, sooner or later.
That's fair.

Quote:
Originally Posted by madshi View Post
If I just call "Present()" as soon as a frame is rendered, video will playback too fast, if I play e.g. a 24fps movie on a 60Hz display, the movie will play with 2.5x realtime speed. I *have* to integrate a logic into madVR which doesn't call "Present()" too often. And that means I have to time the "Present()" calls somehow.
Just thinking about it, from a position of blissful ignorance, it seems understandable to me how a renderer could start playback, perform the first "present()" ASAP and then perform each subsequent one the right duration later, but without regard to vsync. That, combined with D3D/Aero is all that would be needed for Reclock vsync to work.

Last edited by Jong; 8th May 2010 at 07:08.
Jong is offline   Reply With Quote
Old 8th May 2010, 07:15   #2545  |  Link
Jong
Registered User
 
Join Date: Mar 2007
Location: London, UK
Posts: 576
Quote:
Originally Posted by madshi View Post
Not sure if we can draw any conclusions from that. I rather think not. If that "tearing fix" is enabled, I'm simply flushing the GPU at some points in my code. If it's disabled, I'm not doing that. That's really all there is to that option.
I think you may have added the bit in italics after my original reply!

Is it possible that when refresh rate and frame rate are "compatible" (e.g. exact multiple) and depending on where in the cycle frames become available for presentation (random after each seek and drifting slowly over time, depending on how "exact" the mutiple is) this flush code might sometimes push availability one side or other of vsync?
Jong is offline   Reply With Quote
Old 8th May 2010, 08:48   #2546  |  Link
djsolidsnake86
Registered User
 
Join Date: Mar 2010
Posts: 139
Quote:
Originally Posted by iSunrise View Post
No problem at all with that video. Itīs perfectly smooth here. Looks like a capture done from a VCR tape. However, by looking at the frame rate it shows 24.967fps, instead of 25.000fps for PAL video.

@6233638:
Same config here, but no reclock. Iīve tried about a hundred different files with madVR 0.12 since yesterday and itīs dead smooth (excluding the 60fps one I posted). Even the OSD shows no dropped frames (sometimes it even starts with 0), but my eyes usually are the judge here. I`ve also tested about a dozen different files from http://w6rz.net/ - even 1080p25@60Hz doesnīt drop frames.
what decoder and video player are you using?
i have this problem with mpc-hc and divx h264 decoder
djsolidsnake86 is offline   Reply With Quote
Old 8th May 2010, 10:00   #2547  |  Link
Jong
Registered User
 
Join Date: Mar 2007
Location: London, UK
Posts: 576
Quote:
Originally Posted by madshi View Post
Doing that might allow Reclock to work as intended. However, with Reclock turned off you'd actually be in danger of getting "synchronised frame rate/refresh rate judder" this way! Furthermore: If I "blindly" call Present() at a specific interval, disregarding where the scanline currently is, and if the movie framerate and display refresh rate match (e.g. 25fps for both), and if I have bad luck, I might always call Present() directly after a VSync event. Which means that Present() would practically always block, leaving no time for rendering at all. Which would result in empty rendering queues and heavy stuttering.
Yes, this would only be an advanced option for users of Reclock using Aero (or exclusive mode if that became available). They could then use Reclock to position "end present" and so "start present". It would be their job to set that position in a good place for madVR.
Jong is offline   Reply With Quote
Old 8th May 2010, 10:01   #2548  |  Link
leeperry
Kid for Today
 
Join Date: Aug 2004
Posts: 3,477
Quote:
Originally Posted by madshi View Post
FWIW. the anti-tearing fix is always on in 0.12, the checkbox in the settings doesn't have any effect in 0.12.

As I said before, there's no hidden secret with the anti-tearing fix and it's not a good lead at all. You'll have to trust me on that
oh ok, well I didn't try it on 0.12 as the associated tearing was very annoying in 0.11 anyway

I'm only telling you what I see, and I can confirm that seeking with Reclock in 0.12 is still a major hit or miss, as it was in 0.11
leeperry is offline   Reply With Quote
Old 8th May 2010, 10:14   #2549  |  Link
madshi
Registered Developer
 
Join Date: Sep 2006
Posts: 9,140
Quote:
Originally Posted by Jong View Post
Yes, this would only be an advanced option for users of Reclock using Aero (or exclusive mode if that became available). They could then use Reclock to position "end present" and so "start present". It would be their job to set that position in a good place for madVR.
I still don't think it would be a good idea. E.g. with Aero, the time you present has to be chosen cleverly: If you present too late, then even although it's still before the VSync, the frame will still not be shown, because Aero still needs to do some internal rendering on top of the video playback rendering. Furthermore, and more importantly: For Aero and fullscreen exclusive mode, I plan to make use of the OS internal queues. Which means that I'll present 5-8 frames in advance, by telling the OS when I want the frames to be presented and for how long. Doing so will make sure that even if rendering/presentation is interrupted, playback will still run smoothly, because at least the fullscreen exclusive mode OS queue is managed by hardware interrupts. So if I prerender 8 frames and send them to the OS queue, rendering/presentation would have to be interrupted for 8 * 40ms, before the interruption would result in noticeable stutter. If I do as you suggested, only one frame is in the OS queue at any time. So if the PC gets busy doing whatever for 40ms and doesn't allow me to render/present during that busy period, playback will stutter.
madshi is offline   Reply With Quote
Old 8th May 2010, 10:17   #2550  |  Link
sepheas
Registered User
 
Join Date: Jan 2010
Posts: 15
hey, first ! I would like to thank madshi for his work.

On my config there's some points :

I don't know why when I use Madvr there's so much cpu usage ?

When I use Madvr with an h.264 file I have a cpu occupation of about 70%
While with haali renderer I have a cpu occupation of 30%

Why Madvr causes so much cpu usage ? He's supposed to do all the work with my graphic card ?

The result is that I must overclock my little pentium dual core (2ghz) to about 2.5ghz to play the video without stutters.

The other point is simply the stability when I start my video. Sometimes media player classic doesn't respond. Sometimes It does.... I've got a gt240 and I'm running seven.
sepheas is offline   Reply With Quote
Old 8th May 2010, 11:41   #2551  |  Link
Jong
Registered User
 
Join Date: Mar 2007
Location: London, UK
Posts: 576
Quote:
Originally Posted by madshi View Post
I still don't think it would be a good idea. E.g. with Aero, the time you present has to be chosen cleverly: If you present too late, then even although it's still before the VSync, the frame will still not be shown, because Aero still needs to do some internal rendering on top of the video playback rendering. Furthermore, and more importantly: For Aero and fullscreen exclusive mode, I plan to make use of the OS internal queues. Which means that I'll present 5-8 frames in advance, by telling the OS when I want the frames to be presented and for how long. Doing so will make sure that even if rendering/presentation is interrupted, playback will still run smoothly, because at least the fullscreen exclusive mode OS queue is managed by hardware interrupts. So if I prerender 8 frames and send them to the OS queue, rendering/presentation would have to be interrupted for 8 * 40ms, before the interruption would result in noticeable stutter. If I do as you suggested, only one frame is in the OS queue at any time. So if the PC gets busy doing whatever for 40ms and doesn't allow me to render/present during that busy period, playback will stutter.
All that sounds great!

However, there is a very good chance the Reclock method should work too. I guess it depends on how much of your valuable time it would take to offer the option.

I admit I have not done extensive testing with Aero, but certainly in exclusive mode Reclock should be able to set the point of presentation very dependably. With EVR sync, start of presentation is normally fixed +/-1.5ms. On XP occasional spikes due to delayed presentation of say 7ms are seen, but if av. point of presentation is set ~17ms for 50Hz and 12ms for 60Hz it is very rare, on a well configured PC, this actually causes a drop (mostly not even one per movie). On W7, with its improved scheduling even these spikes are not seen. So I'd say even if Aero needs more margin it is still likely to be fine. Reclock vsync control is really very reliable in a multitude of players including PDVD and TMT when using an overlay surface, as they do for Blu-ray playback. Here you do not even have exclusive mode to help you.

Offering this advanced option would get around the possible current synchronised judder problem madVR may have, but more importantly it would let people like me who use Reclock vsync correction in PDVD/TMT for Blu-ray disc playback use it also for madVR. Alternatively, we have to use a .reg file to change Reclock settings before using each player to manually turn on or off vsync correction. But I understand it does depend on how hard this would be to implement!

Last edited by Jong; 8th May 2010 at 11:43.
Jong is offline   Reply With Quote
Old 8th May 2010, 11:44   #2552  |  Link
pankov
Registered User
 
Join Date: Mar 2002
Location: Sofia, Bulgaria
Posts: 661
Quote:
Originally Posted by madshi View Post
... In fullscreen exclusive mode all of these problems should go away. Maybe also with Aero, if I write a specific Aero solution...
madshi,
please, do write an Aero solution, and if possible do it before the exclusive one.
I'm begging you for this because the player that I use (ZoomPlayer) doesn't work good in exclusive (no OSD) ... and I think some other players will be affected in the same way too.
pankov is offline   Reply With Quote
Old 8th May 2010, 12:28   #2553  |  Link
namaiki
Registered User
 
Join Date: Sep 2009
Location: Sydney, Australia
Posts: 1,073
Quote:
Originally Posted by madshi View Post
Lanczos *is* default. For Luma, that is.
Sorry, I mean for upscaling the defaults are very soft.

Thing is after you scale up a certain amount using the default scaler settings, blocks can be seen, but that of course depends on the content as well.

default: http://img34.imageshack.us/img34/2494/defa43t.png
something else: http://img263.imageshack.us/img263/3039/bicubic60.png

Last edited by namaiki; 8th May 2010 at 12:46.
namaiki is offline   Reply With Quote
Old 8th May 2010, 12:43   #2554  |  Link
iSunrise
Registered User
 
Join Date: Dec 2008
Posts: 496
Quote:
Originally Posted by madshi
FWIW. the anti-tearing fix is always on in 0.12, the checkbox in the settings doesn't have any effect in 0.12.
That explains why thereīs absolute no difference on my side when enabling/disabling it. Thanks for pointing that out. Since I have perfectly smooth playback either with the fix on or off. I can also enable/disable the 3DLUT (I have it disabled right now, because my CG243W takes care of that) without anything that is affecting smoothness.

Quote:
Originally Posted by leeperry View Post
oh ok, well I didn't try it on 0.12 as the associated tearing was very annoying in 0.11 anyway.

I'm only telling you what I see, and I can confirm that seeking with Reclock in 0.12 is still a major hit or miss, as it was in 0.11
When I seek with 0.12 I have a very responsive KMP and itīs smooth as well, since I got no dropped frames . The only thing that is still slower with madVR 0.12 is switching from windowed-playback to fullscreen and back if I compare it with Haali or EVR C/A (like itīs called in KMP). With madVR I can actually see that the aspect ration correction takes place when going into fullscreen, which is not the case of either EVR or Haali, because the picture already is there too fast to detect it.

Did you already try what 6233638 suggested? Does that make any difference whatsoever? Because he is also using reclock and has smooth playback with 0.12.

@madshi:
Iīm not sure if this is helpful but from experience (having had a CRT until recently before I got the LCD) there is one thing (consider it rather subjective, since 0.12 wasnīt released when I still had my CRT) that I cam across, too. With 0.11 I _never_ could get smooth playback on my CRT on any files, even when playing around a lot with my refresh rates. madVR dropped frames constantly. I have tested 0.11 again with my LCD and it seems that it behaves completely different than my CRT did (I had it connected via BNC, not D-SUB) re: a stable display refresh rate. Because when Iīm looking at madVRīs OSD my LCD only ever fluctuates at the very last 2 digits while my CRT had a hard time of keeping itīs refresh rate constant at all, it fluctuated like crazy. 0.11 even sometimes reported my display refresh completely wrong, at least thatīs what the OSD showed, so Iīm under the assumption that madVR could not calculate some things that it needs to display a smooth image. Just wanted to share that with you, not sure if that helps anything.
iSunrise is offline   Reply With Quote
Old 8th May 2010, 14:00   #2555  |  Link
Grmpf
Registered User
 
Join Date: Apr 2009
Posts: 37
Quote:
Originally Posted by madshi View Post
FWIW. the anti-tearing fix is always on in 0.12, the checkbox in the settings doesn't have any effect in 0.12.
Ok, thats the reason why i get always the same results, with or without the checkbox enabled ;-)

Btw. here a picture with madVR stats from my system - tearing at 23.976hz. Its *always* in the same postion (i marked it red, because i can not screenshot the tearing), no matter if i restart the player, system, use pause, or whatsoever - madVR tears at this position for me and no where else. My system is a Q9550 + ATi 4770, on WinXP SP3, output on a JVC DLA-HD100 (RS2 named in the US) - btw my timings (with powerstrip) are very very tight - i get not a single Repeat/Drop (apart from the starting ones) while bitstreaming AC3/dts in 13+ hours constant playing. With other renderers i can adjust the vsync with reclock to not tear, with madVR its not possible, and after reading your conversation with jong i understand why reclock is not working the way i am used to be.

I cross my fingers that the exclusive mode will fix it, it is a it strange that the tearing is always at the same position or ?

Grmpf is offline   Reply With Quote
Old 8th May 2010, 14:43   #2556  |  Link
TinTime
Registered User
 
Join Date: Jan 2009
Location: UK
Posts: 403
I get exactly the same tearing as you at 23/24Hz with 0.12. I'm also on XP SP3 with an Nvidia 8600GT.

This seems to have been present for me since 0.10. Versions 0.9 and earlier were ok. If there was tearing then it was when play was started and a quick pause / play would fix it, similar to when I use VMR-9.
TinTime is offline   Reply With Quote
Old 8th May 2010, 15:02   #2557  |  Link
Razoola
Registered User
 
Join Date: May 2007
Posts: 454
I don't understand why people think aero is a good thing. In my experiance aero (on win7 x64) is only good in a single display set up, as soon as you have two active displays everything goes wrong with aero enabled.

I have found that aero requires refresh rates of both displays to be good multiples of each other, if not you'll get judder caused by aero thats not seen by the video renderer. For example if you play a 25fps media on a secondary display with 50hz refresh rate you will not get smooth playback unless the primary display also has a refresh rate at a multiple of 25hz. I have this problem with all renderers tried (haali,vmr9, madvr).
Razoola is offline   Reply With Quote
Old 8th May 2010, 15:42   #2558  |  Link
leeperry
Kid for Today
 
Join Date: Aug 2004
Posts: 3,477
Quote:
Originally Posted by iSunrise View Post
When I seek with 0.12 I have a very responsive KMP and itīs smooth as well, since I got no dropped frames.
with Reclock in 24/48/96Hz on XP SP3? the issue seems to be that Reclock fights for VSYNC control over mVR
Quote:
Originally Posted by iSunrise View Post
Did you already try what 6233638 suggested? Does that make any difference whatsoever? Because he is also using reclock and has smooth playback with 0.12
I guess I missed that...what was it?
leeperry is offline   Reply With Quote
Old 8th May 2010, 16:04   #2559  |  Link
6233638
Registered User
 
Join Date: Apr 2009
Posts: 1,019
Quote:
Originally Posted by leeperry View Post
I guess I missed that...what was it?
This is what works for me:
Quote:
Originally Posted by 6233638 View Post
lee, with reclock, disable its V-Sync correction and leave madVR's tearing correction enabled.
  • Windows 7, Aero on - disabling aero usually causes tearing, leave it on.
  • ffdshow decoding: ffmpeg-mt for h.264, libavcodec for mpeg2 and libavcodec for vc-1. Make sure you use libavcodec for vc-1. While the wmv9 decoder uses less cpu and benchmarks better, it is not possible to get smooth playback in MPC-HC + madVR from my testing.
  • Reclock outputting WASAPI, upsampling to 32/192 (best sinc, custom resampler) all v-sync correction off.
  • Haali media splitter. I'm using one from 2009 as the latest don't work with a lot of Bluray m2ts files. (either no audio or video)
  • MPC-HC for playback. KMP looks a lot nicer but I had problems playing back some discs/files. MPC-HC works perfectly.
This setup gets 100% smooth playback with perfect lip-sync and no dropped/skipped frames. Reclock is still used for upsampling, slowing down PAL and making sure audio is in sync with video.
6233638 is offline   Reply With Quote
Old 8th May 2010, 16:29   #2560  |  Link
leeperry
Kid for Today
 
Join Date: Aug 2004
Posts: 3,477
oh ok, thanks for the repeat! but you got Aero watching your back, it'd be more or less like running on XP in D3D exclusive mode I think...it forces Reclock and mVR to play nice as I understand it.
leeperry is offline   Reply With Quote
Reply

Tags
direct compute, dithering, error diffusion, madvr, ngu, nnedi3, quality, renderer, scaling, uhd upscaling, upsampling

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 10:39.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.