IP Library Granted Patent US 11,079,984
Granted Patent B2
US 11,079,984 · App. 16/588,551 · Granted Aug 3, 2021

Image processing mechanism

Inventors: Walter F. Kailey (Frederick, CO); Stephen Mandry (Longmont, CO)
Assignee: Ricoh Company, Ltd.
G06F3/124G06F9/522G06T1/20H04N1/0096
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,079,984
App. No.
16/588,551
Granted
Aug 3, 2021
Kind
B2
Abstract

A system is disclosed. The system includes at least one physical memory device having a plurality of task queues and a processor to receive print data including a plurality of sheetside images, process one or more of the plurality of sheetside images in parallel via nested task queues, the nested task queues including a first task queue associated with a first set of processing threads and second set of task queues, each associated with a second set of processing threads, each task queue in the second set of task queues corresponding to a thread within the first set of processing threads, wherein execution of tasks via the second set of task queues has a higher priority designation than execution of tasks via the first set of processing threads, which are in the first task queue.

Claims (47)

1. A printing system comprising:

at least one physical memory device having a plurality of task queues; and

a processor to receive print data including a plurality of sheetside images, and process one or more of the plurality of sheetside images in parallel via nested task queues, the nested task queues including a first task queue associated with a first set of processing threads and second set of task queues, each associated with a second set of processing threads, each task queue in the second set of task queues corresponding to a thread within the first set of processing threads, wherein execution of tasks via the second set of task queues has a higher priority designation than execution of tasks via the first set of processing threads, which are in the first task queue.

2. The system of claim 1 , wherein the processor processing the plurality of sheetside images further comprises generating an image manager task for each of the plurality of images, storing each of the image manager tasks in the first task queue and processing the image manager tasks via the first set of processing threads.

3. The system of claim 2 , wherein the processor processing of each of the image manager tasks comprises generating a corresponding set of stripe image components, a corresponding set of stripe tasks and storing the corresponding set of stripe tasks in a first of the second set of task queues.

4. The system of claim 2 , wherein the processor processing the plurality of sheetside images further comprises processing a first image associated with a first of the image manager tasks stored in the first task queue, including generating a first set of stripe image components of the first image, generating a first set of stripe tasks corresponding to each stripe image component in the first set of stripe image components, storing the first set of stripe tasks in a first of the second set of task queues corresponding to a first task queue thread that is executing the first of the image manager tasks, and processing the first set of stripe tasks via the second set of processing threads.

5. The system of claim 4 , wherein the processor processing the first image further comprises creating one or more metadata structures during processing of the first set of stripe tasks, creating one or more synchronization barrier tasks and storing the one or more synchronization barrier tasks in the first of the second set of task queues.

6. The system of claim 5 , wherein the processor processing the first image executes the one or more synchronization barrier tasks, completion of which the synchronization barrier is used by the processor processing the first image to determine that the processing of the first set of stripe tasks is complete.

7. The system of claim 6 , wherein the processor processing the first image further comprises receiving processed data corresponding to the first set of stripe tasks from the second set of threads upon detecting that the one or more synchronization barrier tasks have determined that the processing of the first set of stripe tasks is complete.

8. The system of claim 7 , wherein the processor processing the plurality of sheetside images further comprises processing a second image associated with a second of the image manager tasks stored in the first task queue during processing of the first image manager task.

9. The system of claim 8 , wherein the processor processing the second image task comprises generating a second set of stripe image components of the second image, generating a second set of stripe tasks corresponding to each stripe image component in the second set of stripe image components, storing the second set of stripe tasks in the second of the second set of task queues corresponding to a first task queue thread that is executing the second of the image manager tasks, and processing the second set of stripe tasks via the second set of processing threads.

10. The system of claim 8 , wherein the processor processing the plurality of sheetside images further comprises processing a third image associated with a third of the image manager tasks stored in the first task queue upon receiving the processed data corresponding to the first set of stripe tasks.

11. The system of claim 1 , further comprising a printer to print the plurality of sheetside images.

12. At least one computer readable medium having instructions stored thereon, which when executed by one or more processors, cause the processors to:

receive print data including a plurality of sheetside images; and

process two or more of the plurality of sheetside images in parallel via nested task queues, the nested task queues including a first task queue associated with a first set of processing threads and second set of task queues associated with a second set of processing threads corresponding to a thread in the first set of processing threads, wherein execution of tasks via the second set of processing threads has a higher priority designation than execution of tasks via the first set of processing threads.

13. The computer readable medium of claim 12 , wherein processing the plurality of sheetside images further comprises:

generating an image manager task for each of the plurality of images;

storing each of the image manager tasks in the first task queue; and

processing the image manager tasks via the first set of processing threads.

14. The computer readable medium of claim 13 , wherein processing of each of the image manager tasks comprises:

generating a corresponding set of stripe image components, a corresponding set of stripe tasks; and

storing the corresponding set of stripe tasks in a first of the second set of task queues.

15. The computer readable medium of claim 14 , wherein processing the plurality of sheetside images further comprises processing a first image associated with a first of the image manager tasks stored in the first task queue, including:

generating a first set of stripe image components of the first image;

generating a first set of stripe tasks corresponding to each stripe image component in the first set of stripe image components;

storing the first set of stripe tasks in a first of the second set of task queues corresponding to a first task queue thread that is executing the first of the image manager tasks; and

processing the first set of stripe tasks via the second set of processing threads.

16. The computer readable medium of claim 15 , wherein the processor processing the first image further comprises:

creating one or more metadata structures during processing of the first set of stripe tasks;

creating a one or more synchronization barrier tasks, wherein the one or more synchronization barrier tasks determines that the processing of the first set of stripe tasks is complete; and

storing the one or more synchronization barrier tasks in the first of the second set of task queues.

17. A method comprising:

receiving print data including a plurality of sheetside images; and

processing two or more of the plurality of sheetside images in parallel via nested task queues, the nested task queues including a first task queue associated with a first set of processing threads and second set of task queues associated with a second set of processing threads corresponding to a thread in the first set of processing threads, wherein execution of tasks via the second set of processing threads has a higher priority designation than execution of tasks via the first set of processing threads.

18. The method of claim 17 , wherein processing the plurality of sheetside images further comprises:

generating an image manager task for each of the plurality of images;

storing each of the image manager tasks in the first task queue; and

processing the image manager tasks via the first set of processing threads.

19. The method of claim 18 , wherein processing an image manager task comprises:

generating a corresponding set of stripe image components, a corresponding set of stripe tasks; and

storing the corresponding set of stripe tasks in a first of the second set of task queues corresponding to the image thread which is executing the image manager task.

20. The method of claim 19 , wherein processing the plurality of sheetside images further comprises processing a first image associated with a first of the image manager tasks stored in the first task queue, including:

generating a first set of stripe image components of the first image;

generating a first set of stripe tasks corresponding to each stripe image component in the first set of stripe image components;

storing the first set of stripe tasks in the first of the second set of task queues corresponding to a first task queue thread that is executing the first of the image manager tasks; and

processing the first set of stripe tasks via the threads of the first of the second set of task queues.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 23, 2019
From: KAILEY, WALTER F.; MANDRY, STEPHEN
To: RICOH COMPANY, LTD.
Reel/Frame 050800/0358 →
Continuity (1)
Related Publication 20210096784A1 · Apr 1, 2021