How do monitors display video when frame rate doesn't divide refresh rate?

lefenzy

Senior member
Nov 30, 2004
231
4
81
So if I have a 60 Hz monitor showing a 60 FPS video, I should be able to see every frame because the time between each frame is the same as the time between each monitor refresh.

But what if I'm now trying to watch a 24 FPS video? Or what if I have a 75 Hz monitor showing a 60 FPS video?

I imagine for 60 FPS on a 75 Hz screen, the screen will refresh before the next video frame, so it should be forced to display certain video frames for longer. like so:

Monitor refresh:::: |---|---|---|---|---|
Video frame:::::::: |----|----|----|----|
Frame number shown: 000000001111222233334

But why don't I see stuttering?
 

Flapdrol1337

Golden Member
May 21, 2014
1,677
93
91
I think video players solve it by mixing 2 images in case of a mismatch.

telecine.gif

http://archive.arstechnica.com/guide/audio-visual/video-cleanup/m-cleaning-4.html

something like that, but not entirely the same I guess.
 

lefenzy

Senior member
Nov 30, 2004
231
4
81
I think video players solve it by mixing 2 images in case of a mismatch.

telecine.gif

http://archive.arstechnica.com/guide/audio-visual/video-cleanup/m-cleaning-4.html

something like that, but not entirely the same I guess.

Hmm given that many computer displays minimize input lag, I doubt computer displays do this. Some sort of plugin as TheELF mentioned could do this however.

Looks like the best solution to handling 24, 30, and 60 FPS is a minimum 120 Hz refresh rate.
 

richaron

Golden Member
Mar 27, 2012
1,357
329
136
Hmm given that many computer displays minimize input lag, I doubt computer displays do this. Some sort of plugin as TheELF mentioned could do this however.

Looks like the best solution to handling 24, 30, and 60 FPS is a minimum 120 Hz refresh rate.
Higher refresh rates do minimize observable tearing. This is also an argument as to why many people do not apply VSYNC above the range where a variable refresh rate monitor functions.

And while Flapdrol1337's graphic is both convoluting and overly simplistic (if that's possible), I would take away this example: In your original post you proposed a situation..
Monitor refresh:::: |---|---|---|---|---|
Video frame:::::::: |----|----|----|----|
Frame number shown: 000000001111222233334
I would suggest that since frames are not drawn instantaneously, and as you claimed "many computer displays minimize input lag", there could be a tear on the first non-zero monitor refresh frame which would reduced the perceived "stutter" you are asking about.

Edit: Or tears in other positions depending on what exactly "|" represents. And also remember a real frame zero is rare, in many situations it may also be torn, so it may contain some up to date image; again reducing perceived "stutter" vs what this analogy would imply.

Edit 2: Plus your example assumes both systems are using the same clock. Which I suspect is a bad assumption; even their zero point may never be exactly the same. So the first claim in the OP:
"So if I have a 60 Hz monitor showing a 60 FPS video, I should be able to see every frame because the time between each frame is the same as the time between each monitor refresh."
^This could actually be the worst case scenario, where if the clocks are off within the frame draw window, every single frame could have a tear.
 
Last edited:

Flapdrol1337

Golden Member
May 21, 2014
1,677
93
91
Hmm given that many computer displays minimize input lag, I doubt computer displays do this. Some sort of plugin as TheELF mentioned could do this however.

Looks like the best solution to handling 24, 30, and 60 FPS is a minimum 120 Hz refresh rate.
displays don't do it, video player software does.
 

TheELF

Diamond Member
Dec 22, 2012
4,027
753
126
No need to,the OS drives the monitor at the refresh rate you tell it to,so the OS always knows the refresh rate and any software can access this info.
 

lefenzy

Senior member
Nov 30, 2004
231
4
81
Higher refresh rates do minimize observable tearing. This is also an argument as to why many people do not apply VSYNC above the range where a variable refresh rate monitor functions.

And while Flapdrol1337's graphic is both convoluting and overly simplistic (if that's possible), I would take away this example: In your original post you proposed a situation..

I would suggest that since frames are not drawn instantaneously, and as you claimed "many computer displays minimize input lag", there could be a tear on the first non-zero monitor refresh frame which would reduced the perceived "stutter" you are asking about.

Edit: Or tears in other positions depending on what exactly "|" represents. And also remember a real frame zero is rare, in many situations it may also be torn, so it may contain some up to date image; again reducing perceived "stutter" vs what this analogy would imply.

Edit 2: Plus your example assumes both systems are using the same clock. Which I suspect is a bad assumption; even their zero point may never be exactly the same. So the first claim in the OP:
"So if I have a 60 Hz monitor showing a 60 FPS video, I should be able to see every frame because the time between each frame is the same as the time between each monitor refresh."
^This could actually be the worst case scenario, where if the clocks are off within the frame draw window, every single frame could have a tear.

A lot of what you said makes sense. I was imagining an ideal situation.