Parallel Per-Pixel Compositing via Layer Grouping
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Traditional Porter and Duff compositing methods are inefficient for modern printing systems as they are serial in nature and not well-suited for parallel processing, especially when dealing with non-associative compositing operations, leading to unnecessary processing and reduced performance in multi-core CPU systems.
Innovation Solution
The Concurrent Independent Layer Processing (CILP) method groups layers into foreground and background groups, allowing independent instructions to be executed concurrently, with dependent instructions updated only after receiving the background compositing output, enabling parallel processing of multiple layers.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If traditional Porter and Duff compositing is used to ensure correct compositing order, then compositing accuracy is maintained, but processing speed deteriorates due to serial processing requirements
Solution Approach 1:
The patent segments the compositing process into independent per-pixel operations. Each pixel's compositing can be calculated independently using the formula C = S1*α1 + S0*(1-α1), where S1 and α1 are the source layer color and opacity, and S0 is the background color. This segmentation allows parallel processing across multiple pixels simultaneously while maintaining correct compositing results.
Solution Approach 2:
The patent transitions from processing layers in sequential z-order (one dimension) to processing pixels in parallel across the entire image space (two-dimensional parallelism). By reformulating compositing as independent per-pixel operations, the system can utilize multi-core processors and GPUs to compute multiple pixel values simultaneously, achieving massive parallelization while preserving compositing accuracy.
2Productivity
If bottom-up compositing is used to detect opaque layers, then processing efficiency improves by skipping transparent layers, but unnecessary processing occurs because opaque layers are not detected until all beneath layers are processed
Solution Approach 1:
The patent performs preliminary identification of opaque layers before executing the full compositing process. By examining layer opacity values in advance, the system can determine which layers are fully opaque and use this information to optimize the compositing strategy, avoiding unnecessary processing of layers that will be completely obscured by opaque layers above them.
Solution Approach 2:
Instead of processing from the bottom layer upward and hoping to encounter opaque layers, the patent inverts the approach by first identifying opaque layers and then using this information to guide the compositing process. This inversion allows the system to skip processing entirely for regions obscured by opaque layers, dramatically reducing unnecessary computations.
3Measurement precision
If layers are processed in z-order to maintain compositing correctness, then compositing accuracy is preserved, but parallel processing capability deteriorates
Solution Approach 1:
The patent segments the compositing operation into independent per-pixel calculations that can be executed in parallel. By expressing the compositing formula as C = S1*α1 + S0*(1-α1) for each pixel independently, the system enables parallel processing across multiple pixels while maintaining correct compositing results through the mathematical properties of the alpha compositing model.
Solution Approach 2:
The patent changes the parameters of computation from layer-based sequential processing to pixel-based parallel processing. By reformulating the compositing operation in terms of per-pixel color and opacity values, the system enables adaptation to parallel computing architectures such as multi-core CPUs and GPUs, achieving both compositing correctness and parallel processing capability.
4Productivity
If two-pass algorithm is used to locate top-most opaque layer, then processing efficiency improves by starting compositing from opaque layer, but object-level opacity detection is insufficient for pixel-level transparency
Solution Approach 1:
The patent segments opacity detection from object-level to pixel-level precision. Instead of marking entire objects as transparent or opaque, the system evaluates opacity on a per-pixel basis using the formula's components (S1, α1, S0). This segmentation enables accurate detection of partially transparent regions and allows the compositing process to skip only the specific pixels obscured by opaque layers, rather than entire objects.
Solution Approach 2:
The patent inverts the traditional approach by not requiring a preliminary pass to identify opaque layers. Instead, the per-pixel compositing formula naturally handles transparency detection during the main computation, eliminating the need for separate detection passes while maintaining pixel-level precision throughout the process.
Data Source
AI summary
A method of compositing layers by grouping the layers into a foreground group and a background group; identifying independent instructions of compositing model for execution independently from the background group and dependent instructions requiring a compositing output of a background layer in order to composite foreground layers; executing the independent instructions on the foreground layers in parallel with compositing the background layers, a first independent instruction storing a corresponding result in a first buffer and a second independent instruction storing a corresponding result in a second buffer; executing a dependent instruction by updating the second buffer using the background compositing output; and determining a compositing output for the foreground group dependent upon contents of the first buffer and the updated second buffer.


