IP Library Granted Patent US 9,251,555
Granted Patent B2
US 9,251,555 · App. 13/492,052 · Granted Feb 2, 2016

Tiled viewport composition

Inventor: Etienne Belanger (Kanata, CA)
Assignee: 2236008 Ontario, Inc.
G06T1/60G09G5/39G09G5/14G09G5/399G09G2360/122G09G2360/125
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,251,555
App. No.
13/492,052
Granted
Feb 2, 2016
Kind
B2
Abstract

A system that buffers an application image reduces bandwidth requirements for accessing memory. The application image may be logically separated into tiles. A viewport may identify a visible portion of the application image, where the visible portion is smaller than the application image. The tiles overlapped by the viewport may be buffered in a front buffer and a back buffer. The tiles not overlapped by the viewport may be buffered in the back buffer but not in the front buffer. A composition manager, with knowledge of the viewport and at least two noncontiguous tile buffers in the front buffer, may extract the visible portion of the application image directly from the noncontiguous tile buffers.

Claims (40)

1. A computer implemented method of buffering an application image comprising:

providing the application image separated into a plurality of tiles;

determining which of the tiles are overlapped by a viewport, wherein the viewport identifies a visible portion of the application image, and the visible portion is smaller than the application image;

buffering the tiles overlapped by the viewport in a front buffer and a back buffer, wherein the visible portion of the application image is extracted from the front buffer, the application image is modified in the back buffer, and the front buffer and the back buffer are in a computer-readable memory; and

buffering the tiles not overlapped by the viewport in the back buffer in which the application image is modified but not in the front buffer from which the visible portion of the application image is extracted even when the front buffer and the back buffer are flipped in a buffer flip.

2. The computer implemented method of claim 1 , further comprising reading, with a composition manager having knowledge of the viewport and at least two noncontiguous tile buffers in the front buffer, a buffered visible portion of the application image directly from the at least two noncontiguous tile buffers.

3. The computer implemented method of claim 1 further comprising adjusting which of a plurality of tile buffers are in the front buffer when the viewport moves such that the tile buffers that are in the front buffer correspond to the tiles overlapped by the viewport but not to the tiles not overlapped by the viewport.

4. The computer implemented method of claim 1 further comprising copying, in response to the buffer flip, a first set of tile buffers in the back buffer to a second set of tile buffers in the front buffer, wherein the tile buffers that are copied represent the tiles overlapped by the viewport but not the tiles not overlapped by the viewport.

5. The computer implemented method of claim 1 further comprising swapping, in response to the buffer flip, a first set of tile buffers associated with the front buffer with a second set of tile buffers associated with the back buffer, wherein the tile buffers that are swapped represent the tiles overlapped by the viewport but not the tiles not overlapped by the viewport.

6. A system for buffering a first application image, the system comprising:

a processor; and

a memory comprising:

a front buffer;

a back buffer; and

a composition manager configured to determine which of a plurality of tiles intersect a viewport, wherein each of the tiles identifies a corresponding area of the first application image, the viewport identifies a visible portion of the first application image, and the visible portion is smaller than the first application image,

wherein the composition manager is further configured to buffer, in the front buffer and the back buffer, the tiles that intersect the viewport, wherein the composition manager extracts the visible portion of the first application image from the front buffer, and the first application image is rendered in the back buffer,

wherein the composition manager is further configured to buffer the tiles that are not intersected by the viewport in the back buffer in which the first application image is rendered but not in the front buffer from which the visible portion of the first application image is extracted even after the front buffer and the back buffer are flipped in a buffer flip, and

wherein the composition manager is further configured to generate a composite image from the visible portion of the first application image and a second application image.

7. The system of claim 6 , wherein the composition manager is further configured to determine that at least two noncontiguous tile buffers in the front buffer intersect the viewport, and the composition manager is further configured to extract the visible portion of the first application image directly from the at least two noncontiguous tile buffers.

8. The system of claim 6 wherein the composition manager is further configured to divide the application image into the tiles in response to a request by an application.

9. The system of claim 6 wherein all of a plurality of tile buffers copied from the back buffer to the front buffer in response to the buffer flip represent only the tiles that intersect the viewport.

10. The system of claim 6 wherein all of a plurality of tile buffers swapped between the front buffer and the back buffer in response to the buffer flip represent only the tiles that intersect the viewport.

11. A non-transitory computer-readable storage medium encoded with computer executable instructions, the computer executable instructions executable with a processor to buffer an application image, the computer-readable storage medium comprising:

instructions executable to separate the application image into a plurality of tiles;

instructions executable to determine which of the tiles are overlapped by a viewport, wherein the viewport identifies a visible portion of the application image, and the visible portion is smaller than the application image;

instructions executable to buffer the tiles overlapped by the viewport in a front buffer and a back buffer, wherein the visible portion of the application image is extracted from the front buffer, the application image is modified in the back buffer; and instructions executable to buffer the tiles not overlapped by the viewport in the back buffer in which the application image is modified but not in the front buffer from which the visible portion of the application image is extracted even after the front buffer is switched with the back buffer in a buffer flip.

12. The computer-readable storage medium of claim 11 , wherein tiles overlapped by the viewport are double buffered with the front buffer and the back buffer, and the tiles not overlapped by the viewport are not double buffered.

13. The computer-readable storage medium of claim 11 , wherein the tiles overlapped by the viewport are multiple buffered with the front buffer and a plurality back buffers that include the back buffer, and wherein the tiles not overlapped by the viewport are not multiple buffered.

14. The computer-readable storage medium of claim 11 further comprising instructions executable to associate a tile buffer that is in the back buffer with the front buffer in response to a movement of the viewport, wherein the tile buffer represents a tile overlapped by the viewport after the movement of the viewport but not before the movement of the viewport.

15. The computer-readable storage medium of claim 14 further comprising instructions executable to copy the contents of the tile buffer between the front buffer and the back buffer in response to the movement of the viewport.

16. A system for buffering a first application image, the system comprising:

a processor; and

a memory comprising:

a front buffer;

a back buffer;

a composition manager; and

an application configured to determine which of a plurality of tiles intersect a viewport, wherein each of the tiles identifies a corresponding area of the first application image, the viewport identifies a visible portion of the first application image, and the visible portion is smaller than the first application image,

wherein the application is further configured to buffer, in the front buffer and the back buffer, the tiles that intersect the viewport, wherein the composition manager extracts the visible portion of the first application image from the front buffer, and the application renders the first application image in the back buffer,

wherein the application is further configured to buffer the tiles that are not intersected by the viewport in the back buffer in which the first application image is rendered but not in the front buffer from which the visible portion of the first application image is extracted regardless of whether the back buffer and the front buffer are flipped in a buffer flip, and

wherein the composition manager is configured to generate a composite image from the visible portion of the first application image and a second application image.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 22, 2020
From: 2236008 ONTARIO INC.
To: BLACKBERRY LIMITED
Reel/Frame 053313/0315 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2014
From: 8758271 CANADA INC.
To: 2236008 ONTARIO INC.
Reel/Frame 032607/0674 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2014
From: QNX SOFTWARE SYSTEMS LIMITED
To: 8758271 CANADA INC.
Reel/Frame 032607/0943 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 13, 2012
From: BELANGER, ETIENNE
To: QNX SOFTWARE SYSTEMS LIMITED
Reel/Frame 028369/0576 →
Continuity (1)
Related Publication 20130328896A1 · Dec 12, 2013