Nested Task Queues for Parallel Image Processing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing image processing systems face challenges in efficiently managing parallel processing of images due to the high memory requirements for intermediate storage buffers and the need for proper coordination between different types of processors, such as CPUs and GPUs, which can lead to inefficiencies in computational resources.
Innovation Solution
A mechanism for pipelined parallel asynchronous image processing is implemented using nested task queues and multiple computing platforms, where a first processor generates tasks for sheetside images, which are processed in parallel by a second processor, with synchronization barriers ensuring efficient coordination and resource management.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If parallel processing of images is implemented using traditional methods, then processing speed is improved, but memory requirements for intermediate storage buffers increase significantly
Solution Approach 1:
The patent segments image processing into discrete tasks organized in nested task queues. The first processor generates image manager tasks for each sheetside image, which are then divided into stripe tasks and satellite stripe tasks. This segmentation allows parallel processing while reducing memory requirements by processing images in manageable chunks rather than loading entire images into memory simultaneously.
Solution Approach 2:
The patent implements nested task queues where task queues contain tasks that contain sub-tasks. The first task queue contains image manager tasks, which generate stripe tasks stored in second task queues, which in turn generate satellite stripe tasks. This nested structure enables efficient parallel processing with reduced memory footprint by organizing work hierarchically rather than flatly.
2Productivity
If multiple processor types (CPU and GPU) are used for parallel processing, then computational efficiency is improved, but coordination complexity between processors increases
Solution Approach 1:
The patent introduces task queues as intermediary structures between different processor types. The first processor generates image manager tasks that are stored in task queues, which then generate stripe tasks and satellite stripe tasks for the second processor. This intermediary layer abstracts the complexity of direct CPU-GPU coordination, allowing each processor type to operate independently while maintaining synchronization through the task queue mechanism.
Solution Approach 2:
The first processor performs preliminary actions by generating image manager tasks and storing them in task queues before the second processor begins processing. This preliminary task generation and organization simplifies coordination by pre-structuring the workflow, allowing the second processor to simply execute predefined tasks without complex real-time coordination.
3Device complexity
If traditional image processing methods are used, then implementation simplicity is maintained, but processing time for large images increases
Solution Approach 1:
The patent segments large images into stripes and satellite stripes, allowing parallel processing of multiple image regions simultaneously. This segmentation dramatically reduces processing time for large images while maintaining implementation simplicity through the use of standardized task queue mechanisms that can be applied uniformly across different image sizes.
Solution Approach 2:
The patent transitions from sequential processing to parallel processing by adding a temporal dimension to the processing workflow. Through nested task queues, the system processes images in parallel across multiple threads and processors, reducing processing time without increasing implementation complexity.
Data Source
AI summary
A printing system is disclosed. The printing system includes at least one physical memory device having a plurality of task queues and a first processor to generate an image manager task for each of a plurality of sheetside images in print data, store each image manager task in a first task queue, process each of the image manager tasks via a first set of processing threads associated with the first task queue to generate a corresponding plurality of stripe tasks and satellite stripe tasks, store each of the plurality of stripe tasks in a second set of task queues, wherein each task queue in the second set of task queues corresponds to an image manager task, process each of the plurality of stripe tasks via a second set of processing threads to generate a plurality of first processed stripes and transmit the plurality of satellite stripe tasks and the first processed stripes to a second processor for second processing.


