Parallel Tile Locking for Tiled Planar Pixel Arrays

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing digital image processing systems face inefficiencies in writing pixels to tiled planar pixel arrays, particularly due to the computational expense of locking and unlocking multiple tiles for write operations, which can lead to performance issues during image editing operations.

Innovation Solution

The implementation of a multi-threaded approach where one thread coordinates image editing operations and performs lock for write operations on multiple tiles in parallel, allowing for simultaneous data copying and processing, thereby reducing the need for frequent conversions between compact and normal representations and minimizing shared tile copying.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If lock for write operations are performed on each tile sequentially, then data consistency is ensured, but processing time and computational overhead increase significantly

Engineering Contradiction:
Improvedata consistencyVSAvoidprocessing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments the image data into multiple independent tiles that can be processed in parallel. By dividing the large image into smaller tile units, the system can acquire locks on multiple tiles simultaneously rather than sequentially, reducing the total time spent on lock operations while maintaining data consistency within each tile.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary actions by pre-calculating and storing tile boundary information, tile identifiers, and lock acquisition strategies before processing begins. This preliminary setup enables threads to efficiently determine which tiles to lock and in what order, minimizing runtime overhead and reducing processing time.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If multiple threads perform image editing operations simultaneously, then processing speed increases, but coordination overhead and memory access conflicts increase

Engineering Contradiction:
Improveprocessing speedVSAvoidcoordination overhead
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent divides the image processing task into independent tile segments that can be handled by different threads simultaneously. Each thread is assigned specific tiles to process, reducing coordination overhead since threads operate on disjoint data segments. This segmentation enables parallel processing while minimizing thread synchronization requirements.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary data structure that tracks which tiles are currently locked and by which threads. This intermediary mechanism coordinates thread access to tiles without requiring complex inter-thread communication, reducing coordination overhead while enabling multiple threads to work simultaneously on different tiles.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Adaptability or versatility

If tiles are converted between compact and normal representations frequently, then data access flexibility improves, but computational overhead increases

Engineering Contradiction:
Improvedata access flexibilityVSAvoidcomputational overhead
Core Design Contradiction:
Adaptability or versatilityVSUse of energy by moving object

Solution Approach 1:

The patent applies different data representations locally based on the specific processing needs of each tile or operation. Instead of converting all tiles between compact and normal representations uniformly, the system maintains tiles in the representation most suitable for their current processing stage, reducing unnecessary conversions and computational overhead.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent performs representation conversions in advance when tiles are loaded or prepared for processing, rather than converting them on-demand during processing. This preliminary conversion ensures that tiles are in the appropriate representation before processing begins, eliminating the need for frequent conversions during the actual image editing operations.

Inventive Principle:
Principle #10Preliminary action

4Reliability

If shared tiles are copied to ensure thread safety, then data consistency is maintained, but memory bandwidth utilization decreases

Engineering Contradiction:
Improvedata consistencyVSAvoidmemory bandwidth utilization
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the image into independent tiles that can be locked and processed independently by different threads. By dividing the image into non-overlapping tile segments, the system eliminates the need to copy shared tiles, as each thread operates on its own locked tile segment. This segmentation maintains data consistency while avoiding the memory overhead of tile copying.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent selectively copies tile data only when absolutely necessary, such as when a tile needs to be shared between threads or when transitioning between processing stages. By minimizing copying operations and using lock-based protection for the majority of cases, the system maintains data consistency while preserving memory bandwidth utilization for actual processing operations.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS8823715B2Efficient writing of pixels to tiled planar pixel arrays
Publication Date: 2014.09.02 ADOBE INC
  • US8823715B2 patent drawing
  • US8823715B2 patent drawing
  • US8823715B2 patent drawing

AI summary

A method, system, and computer-readable storage medium are disclosed for efficient writing of pixels to tiled planar pixel arrays. An image editing operation is performed by a first thread on an area of an image comprising a plurality of tiles within the area. A lock for write operation is performed by a second thread on each of the plurality of tiles. Results of the lock for write operations are sent from the second thread to the first thread. An output of the image editing operation is sent from the first thread to one or more third thread. The output of the image editing operation is stored in the plurality of tiles by the one or more third threads.