Video frame rate compensation through adjustment of timing of scanout
Systems and methods are configured to adjust the timing of rendered frame scanout in response to fluctuations in a variable frame rate at which source frames are rendered.
1. A method comprising:
rendering a plurality of source frames at a variable frame rate to produce a corresponding plurality of rendered frames;
scanning out the rendered frames; and
compensating for one or more fluctuations of the variable frame rate by adjusting a timing of the scanning out of one or more of the rendered frames to better match a frame rate at which the source frames are rendered in response to the one or more fluctuations in the variable frame rate.
2. The method of claim 1 , further comprising:
compressing one or more source frames of the plurality of source frames.
3. The method of claim 2 , further comprising:
capturing the one or more source frames before said compressing the one or more source frames.
4. The method of claim 2 , further comprising:
capturing the one or more source frames before said compressing the one or more source frames; and
sending a resulting compressed frame to one or more remote devices over a network.
5. The method of claim 1 ,
wherein the one or more fluctuations include one or more downward fluctuations in which the variable frame rate decreases,
wherein said adjusting the timing of the scanning out of the one or more of the rendered frames includes delaying a scan out in response to the one or more downward fluctuations.
6. The method of claim 1 , further comprising:
placing a marker into a memory unit after each of one more source frames are rendered into a frame buffer and tracking a time at which the marker for each of the one or more source frames are placed into the memory unit.
7. The method of claim 1 ,
wherein said adjusting the timing of the scanning out of one or more of the rendered frames includes putting a scanout unit to sleep for a period of time.
8. The method of claim 1 ,
wherein said adjusting the timing of the scanning out of one or more of the rendered frames includes delaying scanout of at least one output frame by changing a register value to a value that delays scanout.
9. A system comprising:
at least one processor unit;
at least one memory unit coupled to the processor unit; and
wherein the processor unit is configured to perform a method, the method comprising:
rendering a plurality of source frames at a variable frame rate to produce a corresponding plurality of rendered frames; and
compensating for one or more fluctuations of the variable frame rate by adjusting a timing of scanning out of one or more of the rendered frames in response to better match a frame rate at which the source frames are rendered to the one or more fluctuations in the variable frame rate.
10. The system of claim 9 , wherein the method further comprises:
compressing one or more source frames of the plurality of source frames.
11. The system of claim 10 , wherein the method further comprises:
capturing the one or more source frames before said compressing the one or more source frames.
12. The system of claim 10 , wherein the method further comprises:
capturing the one or more source frames before said compressing the one or more source frames; and
sending said a resulting compressed frame to one or more remote devices over a network.
13. The system of claim 9 ,
wherein the one or more fluctuations include one or more downward fluctuations in which the variable frame rate decreases,
wherein said adjusting the timing of the scanning out of the one or more of the rendered frames includes delaying a scan out in response to the one or more downward fluctuations.
14. The system of claim 9 , wherein the method further comprises:
placing a marker into a memory unit after each of one or more source frames are rendered into a frame buffer and tracking a time at which the marker for each of the one or more source frames are placed into the memory unit.
15. The system of claim 9 ,
wherein said adjusting the timing of the scanning out of the one or more of the rendered frames includes putting a scanout unit to sleep for a period of time.
16. The system of claim 9 ,
wherein said adjusting the timing of the scanning out of the one or more of the rendered frames includes delaying scanout of at least one output frame by changing a register value to a value that delays scanout.
17. A non-transitory computer readable medium having processor-executable instructions embodied therein, wherein execution of the instructions by a processor causes the processor to implement a method, the method comprising
rendering a plurality of source frames at a variable frame rate to produce a corresponding plurality of rendered frames;
scanning out the rendered frames; and
compensating for one or more fluctuations of the variable frame rate by adjusting a timing of the scanning out of one or more of the rendered frames to better match a frame rate at which the source frames are rendered in response to the one or more fluctuations in the variable frame rate.
18. The non-transitory computer readable medium of claim 17 ,
wherein the one or more fluctuations include one or more downward fluctuations in which the variable frame rate decreases,
wherein said adjusting the timing of the scanning out of the one or more of the rendered frames includes delaying a scan out in response to the one or more downward fluctuations.
19. The non-transitory computer readable medium of claim 17 ,
wherein the one or more fluctuations include one or more downward fluctuations in which the variable frame rate decreases,
wherein said adjusting the timing of the scanning out of the one or more of the rendered frames includes delaying a scan out in response to the one or more downward fluctuations by putting a scanout unit to sleep for a period of time.
20. The non-transitory computer readable medium of claim 17 ,
wherein the method further comprises compressing one or more source frames of the plurality of source frames.