Document Layout Engine Incremental Rendering

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing online document processing services face inefficiencies in laying out and rendering documents, particularly in web browsers or mobile applications, as they often require relaying the entire page when changes are made, leading to slow performance.

Innovation Solution

The system employs a hierarchical architecture of objects to identify, lay out, and render document elements, using position information to generate and update layout data for positioned elements, allowing for incremental rendering and reducing the need to reformat the entire page.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Manufacturing precision

If the entire page is re-laid out when changes are made, then layout accuracy is maintained, but rendering speed deteriorates

Engineering Contradiction:
Improvelayout accuracyVSAvoidrendering speed
Core Design Contradiction:
Manufacturing precisionVSProductivity

Solution Approach 1:

The patent segments the document into independent positionable elements (paragraphs, images, tables, etc.) and maintains a list of their positions. When changes occur, only the affected elements and their neighboring elements are re-laid out rather than the entire page, resolving the contradiction between maintaining layout accuracy and improving rendering speed.

Inventive Principle:
Principle #1Segmentation

2Manufacturing precision

If position information is maintained for all elements, then layout precision is improved, but system complexity increases

Engineering Contradiction:
Improvelayout precisionVSAvoidsystem complexity
Core Design Contradiction:
Manufacturing precisionVSDevice complexity

Solution Approach 1:

The patent implements self-service through automatic position detection and conflict resolution. The system automatically detects position conflicts between elements and resolves them without requiring manual intervention, maintaining layout precision while reducing the operational complexity of the system.

Inventive Principle:
Principle #25Self-service

3Productivity

If incremental updates are implemented, then rendering efficiency is improved, but position conflict detection becomes more difficult

Engineering Contradiction:
Improverendering efficiencyVSAvoidposition conflict detection
Core Design Contradiction:
ProductivityVSDifficulty of detecting and measuring

Solution Approach 1:

The patent applies preliminary action by pre-establishing a comprehensive list of all positionable elements and their positions before rendering begins. This pre-organization of position information enables efficient incremental updates while simplifying conflict detection, as the system can quickly reference the pre-established list to identify and resolve conflicts during incremental rendering.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8943399B1System and method for maintaining position information for positioned elements in a document, invoking objects to lay out the elements, and displaying the document
Publication Date: 2015.01.27 GOOGLE LLC
  • US8943399B1 patent drawing
  • US8943399B1 patent drawing
  • US8943399B1 patent drawing

AI summary

A list indicating positions of positioned elements on a page of a document is maintained by a page object associated with the page. First position information indicating a first position of a first positioned element having a position that conflicts with a location of a first element associated with the page is transmitted by the page object to a first element object associated with the first element, the first element object being subordinate to the page object within a hierarchy. The first element object generates first layout data. The list is updated by the page object based on a position of a second positioned element having a position that conflicts with the first element. A second element object associated with a second element associated with the page, and subordinate to the page object within the hierarchy, is invoked by the page object to generate second layout data.