Parallel Rasterization of Self-Contained Graphical Structures
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for rendering electronic documents inefficently utilize computing power, particularly in resource-rich environments, due to the lack of intelligent exploitation of multiple threads in view of self-contained graphical structures within the documents.
Innovation Solution
A method where a main process thread generates a main display list and identifies self-contained graphical structures, creating auxiliary display lists for these structures, which are then rasterized in parallel by separate threads, allowing the main thread to continue generating the main display list, and using the rasterized auxiliary lists to complete the rendering of the main display list.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If the page is partitioned into multiple bands and rasterized in parallel using different processing units, then rasterization throughput is increased, but the complexity of the rendering system increases and self-contained graphical structures are not intelligently exploited
Solution Approach 1:
The rendering system segments the display list generation and rasterization processes into independent units. Each band is processed as a separate segment with its own display list generation and rasterization, allowing parallel execution while maintaining manageable complexity through modular design.
Solution Approach 2:
Display lists for all bands are generated in advance before rasterization begins. This preliminary action separates the complex display list generation phase from the rasterization phase, allowing each to be optimized independently and reducing overall system complexity.
2Ease of manufacture
If traditional rendering methods are used without considering self-contained graphical structures, then the rendering process is simple to implement, but computing power is not efficiently utilized
Solution Approach 1:
The system applies different processing strategies to different parts of the rendering workload. Self-contained graphical structures are identified and processed independently with optimized parallel rendering, while other elements follow traditional rendering paths, allowing efficient utilization of computing power without overcomplicating the entire system.
Solution Approach 2:
An intermediary classification step identifies self-contained graphical structures within the display list. This intermediary process enables the system to selectively apply parallel rendering optimizations only where applicable, maintaining implementation simplicity for the overall system while improving computing power utilization for specific structures.
3Productivity
If the main display list generation is paused to rasterize auxiliary display lists, then parallel processing efficiency is improved, but the control flow complexity increases
Solution Approach 1:
The main process thread continuously generates display lists while rasterization threads continuously process completed bands. This continuous parallel operation maximizes processor utilization and maintains high productivity, with the control flow complexity managed through clear separation of concerns between thread types.
Solution Approach 2:
The system creates separate rasterization thread copies that independently process different bands. This copying approach allows the main thread to focus on display list generation while copied threads handle rasterization, simplifying the control flow for each thread type while achieving efficient parallel processing overall.
Data Source
AI summary
A method for rendering an electronic document (ED) includes: receiving a request to render the ED; initiating, by a main process thread, generation of a main display list (DL) for the ED; identifying, during generation of the main DL, a first self-contained graphical structure (SCGS) within the ED; generating, by the main process thread, a first auxiliary DL for the first SCGS; inserting a reference to the first auxiliary DL into the main DL; initiating, after completion of the first auxiliary DL, rasterization of the first auxiliary DL by a first rasterization thread; resuming, by the main process thread and during rasterization of the first auxiliary DL, generation of the main DL; and rasterizing, after completion of the main DL, the main DL based on a first pixmap generated by rasterization of the first auxiliary DL.


