System and method for combining multiple video streams
First Claim
1. A method for determining a resolution and rendering an image, comprising the steps of:
- (a) rendering a current image frame into a frame buffer at an image frame resolution;
(b) computing a rendering time determined by how long it takes to render a previous image frame into said frame buffer;
(c) comparing said rendering time to a high-water mark,wherein said high-water mark represents a second rendering time at which an image frame resolution would start to be reduced, andreducing said resolution for a next image frame, if said rendering time exceeds said high-water mark; and
(d) comparing said rendering time to a low-water mark,wherein said low-water mark represents a third rendering time at which an image frame resolution would start to be increased, andexpanding said resolution for a next image frame, if said rendering time is below said low-water mark and said image frame resolution does not equal a target resolution.
3 Assignments
0 Petitions
Accused Products
Abstract
An operation for combining multiple video streams permits combining any number of overlay images and base images regardless of processes performed upon one or more of the images. Specifically, where the base images are dynamically sized and resized to provide a constant frame rate (despite varying frame complexity), the process similarly treats overlay images and even other base images. In the dynamic sizing process, a rendering time is compared to high and low water marks. During dynamic resizing, two double buffering operations and a synchronization operation are performed. After dynamic sizing and resizing, the resulting resized images are combined together, regardless of the frame rate of the individual images. Consequently, multiple video streams at varying frame rates are combined at a constant frame rate.
91 Citations
17 Claims
-
1. A method for determining a resolution and rendering an image, comprising the steps of:
-
(a) rendering a current image frame into a frame buffer at an image frame resolution; (b) computing a rendering time determined by how long it takes to render a previous image frame into said frame buffer; (c) comparing said rendering time to a high-water mark, wherein said high-water mark represents a second rendering time at which an image frame resolution would start to be reduced, and reducing said resolution for a next image frame, if said rendering time exceeds said high-water mark; and (d) comparing said rendering time to a low-water mark, wherein said low-water mark represents a third rendering time at which an image frame resolution would start to be increased, and expanding said resolution for a next image frame, if said rendering time is below said low-water mark and said image frame resolution does not equal a target resolution. - View Dependent Claims (2)
-
-
3. A method for combining image frames 1 through n, wherein n is an integer greater than or equal to two, comprising the steps of:
-
(a) performing a partial rendering of image frames 1 through n; (b) dynamically sizing image frames 1 through n by calculating one or more image frame resolutions, and dynamically resizing the resulting frames to generate resized image frames 1 through n, wherein said dynamic sizing and resizing for image frames 1 through n comprises the steps of (1) rendering the current image frame into a frame buffer at an image frame resolution, (2) computing a rendering time based on how long it takes to render a previous image frame into said frame buffer, (3) comparing said rendering time to a high-water mark, wherein said high-water mark represents a second rendering time at which said image frame resolution would start to be reduced, and reducing said resolution for a next image frame if said rendering time exceeds said high-water mark, and (4) comparing said rendering time to a low-water mark, wherein said low-water mark represents a third rendering time at which said image resolution would start to be increased, and expanding said resolution for a next image frame, if said rendering time is below said low-water mark and said image frame resolution does not equal a target resolution, and (c) combining said resized image frames 1 through n to form a combined image frame for display. - View Dependent Claims (4, 5, 6, 7, 8, 9, 10)
-
-
11. A system for combining image frames 1 through n, wherein n is an integer greater than or equal to two, comprising:
-
means for performing a partial rendering of image frames 1 through n; means for dynamically sizing image frames 1 through n by calculating one or more image frame resolutions, and dynamically resizing the resulting frames to generate resized image frames 1 through n, wherein said dynamic sizing and resizing means comprises means for rendering the current image frame into a frame buffer at an image frame resolution, means for computing a rendering time based on how long it takes to render a previous image frame into said frame buffer, means for comparing said rendering time to a high-water mark, wherein said high-water mark represents a second rendering time at which said image frame resolution would start to be reduced, and wherein said means for comparing said rendering time to a high-water mark reduces said resolution for a next image frame, if said rendering time exceeds said high-water mark, and means for comparing said rendering time to a low-water mark, wherein said low-water mark represents a third rendering time at which said image resolution would start to be increased, and wherein said means for comparing said rendering time to a low-water mark expands said resolution for a next image frame, if said rendering time is below said low-water mark and said image frame resolution does not equal a target resolution; and means for combining said resized image frames 1 through n to form a combined image frame, and displaying said combined image frame. - View Dependent Claims (12, 13, 14, 15, 16, 17)
-
Specification