IP Library Granted Patent US 8,941,675
Granted Patent B2
US 8,941,675 · App. 13/167,512 · Granted Jan 27, 2015

Backing store memory management for rendering scrollable webpage subregions

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 8,941,675
App. No.
13/167,512
Granted
Jan 27, 2015
Kind
B2
Abstract

A device, system and method are provided for managing memory for rendering webpages and other structured documents that contain multiple regions. A backing store is created in memory for storing rendered document content. A main region of the structured document is rendered for display, divided into a set of tiles, and stored in the backing store. A subregion of the document is rendered and stored as tiles in the same backing store as well. At least a portion of the tiles for the main region and subregion intersecting with corresponding viewports are outputted to a display. When an active one of the viewports is changed and additional content of the document is to be rendered for display, tiles in the backing store used to store rendered but undisplayed data for the inactive viewport are released to store new rendered content for the active viewport.

Claims (65)

1. A method in an electronic device for processing a structured document including at least a main region and a subregion within the main region, the method comprising:

creating a backing store for storing rendered content in memory of the electronic device, the backing store including an available pool of tiles for storing image data;

rendering, as main rendered image data, at least a portion of the main region associated with a first viewport;

rendering, as second rendered image data, at least a portion of the subregion associated with a second viewport;

allocating, from the available pool of tiles, a first subset of tiles for storing the main rendered image data and a second subset of tiles for storing the second rendered image data;

storing the main rendered image data in the first subset of tiles;

storing the second rendered image data in the second subset of tiles;

outputting, to a display interface, viewable portions of selected tiles from the first subset of tiles and the second subset of tiles that are within the first viewport and the second viewport;

in response to a change in either the first viewport or the second viewport, when it is determined that rendered image data required for the changed viewport is not stored in the subset of tiles corresponding to the changed viewport and a quantity of unused tiles in the available pool of tiles is insufficient to store the required rendered image data,

deallocating, from an other subset of tiles, tiles storing rendered image data not currently being displayed in the other viewport;

reallocating the deallocated tiles to the subset of tiles corresponding to the changed viewport; and

storing the required rendered image data in the reallocated tiles; and

outputting viewable portions of newly viewable tiles of the subset of tiles corresponding to the changed viewport.

2. The method of claim 1 , wherein the subregion includes content that is larger than a size of the second viewport.

3. The method of claim 1 , wherein the available pool of tiles is filled by storing the main rendered image data in the first subset of tiles and storing the second rendered image data in the second subset of tiles.

4. The method of claim 3 , wherein when if a user interface of the electronic device is interacting with the subregion, allocating the second subset of tiles for storing the second rendered image data includes allocating unused tiles from the available pool of tiles.

5. The method of claim 3 , further comprising:

maintaining the allocation of those tiles of the first subset of tiles storing main rendered image data currently being displayed in the first viewport when allocating the second subset of tiles for the second rendered image data.

6. The method of claim 1 , wherein the main rendered image data comprises at least a portion of the main region extending beyond the first viewport associated with the structured document.

7. The method of claim 1 , wherein the main region is scrollable relative to the viewable area of the display interface, the method further comprising:

in response to a scroll instruction associated with the main region, outputting a different newly displayed portion of the main rendered image data.

8. The method of claim 1 , wherein creating the backing store includes an operation of:

allocating a fixed amount of memory of the electronic device as the backing store.

9. The method of claim 1 , further comprising:

rendering, as third rendered image data, at least a portion of a further subregion associated with a third viewport; and

storing the third rendered image data in a third subset of tiles from the available pool of image tiles in said backing store.

10. The method of claim 9 , further comprising:

maintaining at least a portion of the first subset of tiles in the backing store when storing the third rendered image data in the third subset of tiles.

11. The method of claim 1 , wherein the structured document is a first structured document and the subregion comprises a second structured document that is linked by the first structured document.

12. The method of claim 1 , further comprising:

creating a render tree from the block-level elements in the structured document;

wherein said operations of rendering comprise rendering block-level elements from the render tree that are associated with the main region or subregion, respectively.

13. An electronic device comprising:

a display interface;

memory;

a processor configured to process a structured document including at least a main region and a subregion within the main region by:

creating a backing store for storing rendered content in memory of the electronic device, the backing store including an available pool of tiles for storing image data;

rendering, as main rendered image data, at least a portion of the main region associated a first viewport;

rendering, as second rendered image data, at least a portion of the subregion associated a second viewport;

allocating, from the available pool of tiles, a first subset of tiles for storing the main rendered image data and a second subset of tiles for storing the second rendered image data;

storing the main rendered image data in the first subset of tiles;

storing the second rendered image data in the second subset of tiles;

outputting, to the display interface, viewable portions of selected tiles from the first subset of tiles and the second subset of tiles that are within the first viewport and the second viewport;

in response to a change in either the first viewport or the second viewport, when it is determined that rendered image data required for the changed viewport is not stored in the subset of tiles corresponding to the changed viewport and a quantity of unused tiles in the available pool of tiles is insufficient to store the required rendered image data,

deallocating, from an other subset of tiles, tiles storing rendered image data not currently being displayed in the other viewport;

reallocating the deallocated tiles to the subset of tiles corresponding to the changed viewport; and

storing the required rendered image data in the reallocated tiles; and

outputting viewable portions of newly viewable tiles of the subset of tiles corresponding to the changed viewport.

14. The electronic device of claim 13 , wherein the display interface comprises one of a display apparatus of the electronic device, an interface to an external display apparatus, and a touchscreen display.

15. The electronic device of claim 13 , wherein when a user interface of the electronic device is interacting with the subregion, allocating the second subset of tiles for storing the second rendered image data includes allocating unused tiles from the available pool of tiles for storing the second rendered image data.

16. The electronic device of claim 13 , wherein the main region is scrollable relative to the viewable area of the display interface, and the processor is further configured to process the structured document by, in response to a scroll instruction associated with the main region, outputting a different newly displayed portion of the main rendered image data.

17. The electronic device of claim 13 , wherein the creating the backing store comprises allocating a fixed amount of memory of the electronic device for the backing store.

18. A computer program product comprising a non-transitory computer-readable medium bearing code which, when executed by an electronic device, causes said device to carry out the method of:

creating a backing store for storing rendered content in memory of the electronic device, the backing store including an available pool of tiles for storing image data;

rendering, as main rendered image data, at least a portion of the main region associated with a first viewport;

rendering, as second rendered image data, at least a portion of the subregion associated with a second viewport;

allocating, from the available pool of tiles, a first subset of tiles for storing the main rendered image data and a second subset of tiles for storing the second rendered image data;

storing the main rendered image data in the first subset of tiles;

storing the second rendered image data in the second subset of tiles;

outputting, to a display interface, viewable portions of selected tiles from the first subset of tiles and the second subset of tiles that are within the first viewport and the second viewport;

in response to a change in either the first viewport or the second viewport, when it is determined that rendered image data required for the changed viewport is not stored in the subset of tiles corresponding to the changed viewport and a quantity of unused tiles in the available pool of tiles is insufficient to store the required rendered image data,

deallocating, from an other subset of tiles, tiles storing rendered image data not currently being displayed in the other viewport;

reallocating the deallocated tiles to the subset of tiles corresponding to the changed viewport; and

storing the required rendered image data in the reallocated tiles; and

outputting viewable portions of newly viewable tiles of the subset of tiles corresponding to the changed viewport.

Assignments (6)
NUNC PRO TUNC ASSIGNMENT Recorded Jun 19, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064271/0199 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064104/0103 →
CHANGE OF NAME Recorded Oct 16, 2014
From: RESEARCH IN MOTION LIMITED
To: BLACKBERRY LIMITED
Reel/Frame 034012/0111 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 30, 2011
From: RESEARCH IN MOTION CORPORATION
To: RESEARCH IN MOTION LIMITED
Reel/Frame 026996/0022 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 22, 2011
From: TREAT, ADAM CHESTER
To: RESEARCH IN MOTION CORPORATION
Reel/Frame 026783/0618 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 22, 2011
From: FIDLER, ELI JOSHUA; NETTO, ANTONIO DE A GOMES
To: RESEARCH IN MOTION LIMITED
Reel/Frame 026783/0642 →