Patentable/Patents/US-6147695
US-6147695

System and method for combining multiple video streams

PublishedNovember 14, 2000
Assigneenot available in USPTO data we have
Inventorsnot available in USPTO data we have
Technical Abstract

Patent Claims
17 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

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.

2

2. A method according to claim 1, further comprising the steps of: (e) double buffering said current image frame, wherein a first frame buffer receives said current image frame rendered by step (a), and a second frame buffer stores a previously-rendered image frame rendered by step (a); (f) double buffering said image frame resolution, wherein a buffered resolution coefficients register stores said image frame resolution, and wherein a resolution coefficients register stores an image frame resolution for said previously-rendered image frame; and (g) synchronizing said double buffering of said current image frame with said double buffering of said image frame resolution, wherein said first frame buffer and said second frame buffer are swapped concurrently with a transfer of the content of said buffered resolution coefficients register to said resolution coefficients register.

3

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.

4

4. A method according to claim 3, further comprising: (d) repeating steps (a) through (c) if one or more new image frames (n+1) through m are desired to be combined with said combined image frame, wherein m is an integer greater than or equal to three.

5

5. A method according to claim 3, wherein step (a) comprises the steps of: generating one or more vertices describing shapes of desired graphical objects; performing geometry calculations on said vertices to generate one or more primitives; and transmitting said primitives to a system for performing rasterization thereon.

6

6. A method according to claim 3, wherein step (b) comprises one of the steps of: generating and contracting fragments for each of image frames 1 through n wherein the complexity of the image is greater than a threshold level; and generating and expanding fragments for each of image frames 1 through n wherein the complexity of the image is less than a threshold level.

7

7. A method according to claim 6, wherein step (b) further comprises: transforming each of said set of fragments 1 through n into corresponding pixels.

8

8. A method according to claim 3, wherein step (b) further comprises: (5) double buffering said current image frame, wherein a first frame buffer receives said current image frame rendered by step (1), and a second frame buffer stores a previously-rendered image frame rendered by step (1); (6) double buffering said image frame resolution, wherein a buffered resolution coefficients register stores said image frame resolution, and wherein a resolution coefficients register stores an image frame resolution for said previously-rendered image frame; and (7) synchronizing said double buffering of said current image frame with said double buffering of said image frame resolution, wherein said first frame buffer and said second frame buffer are swapped concurrently with a transfer of the content of said buffered resolution coefficients register to said resolution coefficients register.

9

9. A method according to claim 3, further comprising one of the steps of: using a push model, wherein a rasterization system renders said image frames 1 through n to a plurality of frame buffers and pushes said image frames 1 through n to a display system for display; and using a pull model, wherein a rasterization system renders said image frames 1 through n to a plurality of frame buffers, and a display system extracts said image frames 1 through n for display.

10

10. A method according to claim 3, wherein step (c) comprises one of the steps of: (1) using a binary display method, wherein as between a first image frame of image frames 1 through n and a second image frame of image frames 1 through n: a pixel of said first image frame is displayed in lieu of a corresponding pixel of said second image frame if said first image frame pixel is opaque, and said corresponding pixel of said second image frame is displayed if said first image frame pixel is non-opaque; and (2) using a blending display method, wherein pixels of a first image frame of image frames 1 through n and corresponding pixels of a second image frame of image frames 1 through n are blended together.

11

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.

12

12. A system according to claim 11, wherein said performing means comprises: means for generating one or more vertices describing shapes of desired graphical objects; means for performing geometry calculations on said vertices to generate one or more primitives; and means for transmitting said primitives to a system for performing rasterization thereon.

13

13. A system according to claim 12, wherein said dynamic sizing and dynamic resizing means comprises: means for generating and contracting fragments for each of image frames 1 through n wherein the complexity of the image is greater than a threshold level; and means for generating and expanding fragments for each of image frames 1 through n wherein the complexity of the image is less than a threshold level.

14

14. A system according to claim 13, wherein said dynamic sizing and dynamic resizing means comprises: means for transforming each of said set of fragments 1 through n into corresponding pixels.

15

15. A system according to claim 11, wherein said sizing and resizing means further comprises: means for double buffering said current image frame, wherein a first frame buffer receives said current image frame, and a second frame buffer stores a previously-rendered image frame; means for double buffering said image frame resolution, wherein a buffered resolution coefficients register stores said image frame resolution, and wherein a resolution coefficients register stores an image frame resolution for said previously-rendered image frame; and means for synchronizing said current image frame double buffering means and said image frame resolution double buffering means, wherein said first frame buffer and said second frame buffer are swapped concurrently with a transfer of the content of said buffered resolution coefficients register to said resolution coefficients register.

16

16. A system according to claim 11, further comprising one of: push model means, comprising: a rasterization system for rendering said image frames 1 through n to a plurality of frame buffers and for pushing said image frames 1 through n to a display system for display; and pull model means, comprising: a rasterization system for rendering said image frames 1 through n to a plurality of frame buffers, and a display system for extracting said image frames 1 through n for display.

17

17. A system according to claim 11, wherein said means for combining comprises: (i) binary display means, wherein as between a first image frame of image frames 1 through n and a second image frame of image frames 1 through n, said binary display means displays a pixel of said first image frame in lieu of a corresponding pixel of said second image frame if said first image frame pixel is opaque, and said binary display means displays said corresponding pixel of said second image frame if said first image frame pixel is non-opaque; and (ii) blending display means, wherein said blending display means blends pixels of a first image frame of image frames 1 through n and corresponding pixels of a second image frame of image frames 1 through n together to form said combined image frame.

Classification Codes (CPC)

Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.

Patent Metadata

Filing Date

Unknown

Publication Date

November 14, 2000

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “System and method for combining multiple video streams” (US-6147695). https://patentable.app/patents/US-6147695

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.