# US 2014/0192065 A1 · Parallel Image Processing System

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2014/0192065 A1
- Document ID: US20140192065A1
- Status: Published application
- Kind: A1
- Application number: 14/203,174
- Filed: 2014-03-10
- Published: 2014-07-10
- Earliest claimed: 2010-05-19
- Assignees: PineBrook Imaging, Inc.
- Applicants: Pinebrook Imaging, Inc.
- Inventors: BARRY KEANE; THOMAS LAIDIG
- Web page: https://patentgrep.com/patent/US20140192065A1

## CPC

- G06T 1/20: Processor architectures; Processor configuration, e.g. pipelining
- G03F 7/70425: {Imaging strategies, e.g. for increasing throughput or resolution, printing product fields larger than the image field or compensating lithography- or non-lithography errors, e.g. proximity correction, mix-and-match, stitching or double patterning}
- G06T 11/40: Filling planar surfaces by adding surface attributes, e.g. adding colours or textures
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G03F: PHOTOMECHANICAL PRODUCTION OF TEXTURED OR PATTERNED SURFACES, e.g. FOR PRINTING, FOR PROCESSING OF SEMICONDUCTOR DEVICES; MATERIALS THEREFOR; ORIGINALS THEREFOR; APPARATUS SPECIALLY ADAPTED THEREFOR; (phototypographic composing devices B41B; photosensitive materials or processes for photographic purposes G03C; electrophotography, sensitive layers or processes therefor G03G)

## Abstract

System and method for a parallel image processing mechanism for applying mask data patterns to substrate in a lithography manufacturing process are disclosed. In one embodiment, the parallel image processing system includes a graphics engine configured to partition an object into a plurality of trapezoids and form an edge list for representing each of the plurality of trapezoids, and a distributor configured to receive the edge list from the graphics engine and distribute the edge list to a plurality of scan line image processing units. The system further includes a sentinel configured to synchronize operations of the plurality of scan line image processing units, and a plurality of buffers configured to store image data from corresponding scan line image processing units and outputs the stored image data using the sentinel.

## Claims

### Claim 1

A method of performing parallel image processing, comprising:
processing one or more graphical objects to generate a plurality of convex polygons;
forming an edge list for representing each of the plurality of convex polygons;
distributing the edge list to a plurality of scan line image processing units;
processing the plurality of convex polygons described in the edge list in parallel using the plurality of scan line image processing units;
synchronizing operations of the plurality of scan line image processing units using a sentinel, wherein the sentinel includes a unique pattern configured to signal end of a scan line; and
storing image data generated from the scan line image processing units using a plurality of buffers.

### Claim 2 (depends on 1)

The method of claim 1, wherein processing one or more graphical objects comprises:
identifying transitions at the boundaries of the one or more graphical objects according to a scan direction; and
partitioning the one or more graphical objects into the plurality of convex polygons.

### Claim 3 (depends on 1)

The method of claim 1, wherein
each scan line image processing unit includes: a FIFO configured to store items of the edge list, an incremental interpolation update logic configured to update items of the edge list, a multiplexor configured to receive data from a distributor and a previous scan line image processing unit.

### Claim 4 (depends on 1)

The method of claim 1, wherein distributing the edge list comprises:
balancing load of processing the edge list among the plurality of scan line image processing units in accordance with a predetermined interleave factor; and
balancing load of processing the edge list among the plurality of scan line image processing units in accordance with FIFO size of each scan line image processing unit.

### Claim 5 (depends on 1)

The method of claim 1, wherein processing the plurality of convex polygons comprises:
configuring each of scan line image processing unit to process a portion of a convex polygon in a round-robin fashion.

### Claim 6 (depends on 5)

The method of claim 5, further comprising:
scanning the portion of the convex polygon according to a predetermined scan direction;
rasterizing the portion of the convex polygon; and
performing fade operations at boundaries of the portion of the convex polygon.

### Claim 7 (depends on 6)

The method of claim 6, wherein scanning the portion of the convex polygon comprises at least one of:
scanning the portion of the convex polygon along a column; and
scanning the portion of the convex polygon along a row.

### Claim 8 (depends on 6)

The method of claim 6, wherein performing fade operations comprises:
using a second sentinel to control fade operations at boundaries of the portion of the convex polygon; and
outputting data from the fade operations at each of the scan line image processing unit in accordance with the second sentinel.

### Claim 9 (depends on 1)

The method of claim 1, wherein synchronizing operations of the plurality of scan line image processing units comprises:
linking the FIFO in each scan line image processing unit to form a chain of FIFOs for storing the plurality of convex polygons described in the edge list.

### Claim 10 (depends on 1)

The method of claim 1, wherein synchronizing operations of the plurality of scan line image processing units further comprises:
controlling output of image data from the plurality of buffers using the sentinel.

### Claim 11

A parallel image processing system, comprising:
a graphics engine configured to process one or more graphical objects to generate a plurality of convex polygons, and to form an edge list for representing each of the plurality of convex polygons;
a distributor configured to distribute the edge list to a plurality of scan line image processing units;
a plurality of scan line image processing units configured to receive the edge list and to process the plurality of convex polygons in parallel;
control logic configured to synchronize operations of the plurality of scan line image processing units using a sentinel, wherein the sentinel includes a unique pattern configured to signal end of a scan line; and
a plurality of buffers configured to store image data generated from the scan line image processing units.

### Claim 12 (depends on 11)

The system of claim 11, wherein the graphic engine comprises:
control logic configured to identify transitions at the boundaries of the one or more graphical objects according to a scan direction; and
control logic configured to partition the one or more graphical objects into the plurality of convex polygons.

### Claim 13 (depends on 11)

The system of claim 11, wherein
each scan line image processing unit includes: a FIFO configured to store items of the edge list, an incremental interpolation update logic configured to update items of the edge list, a multiplexor configured to receive data from a distributor and a previous scan line image processing unit.

### Claim 14 (depends on 11)

The system of claim 11, wherein the distributor comprises:
control logic configured to balance load of processing the edge list among the plurality of scan line image processing units in accordance with a predetermined interleave factor; and
control logic configured to balance load of processing the edge list among the plurality of scan line image processing units in accordance with FIFO size of each scan line image processing unit.

### Claim 15 (depends on 11)

The system of claim 11, wherein the plurality of scan line image processing units comprise:
control logic configured to process a portion of a convex polygon in a round-robin fashion.

### Claim 16 (depends on 15)

The system of claim 15, wherein each scan line image processing unit further comprises:
control logic configured to scan the portion of the convex polygon according to a predetermined scan direction;
control logic configured to rasterize the portion of the convex polygon; and
control logic configured to perform fade operations at boundaries of the portion of the convex polygon.

### Claim 17 (depends on 16)

The system of claim 16, wherein the control logic configured to scan the portion of the convex polygon comprises at least one of:
control logic configured to scan the portion of the convex polygon along a column; and
control logic configured to scan the portion of the convex polygon along a row.

### Claim 18 (depends on 16)

The system of claim 16, wherein the control logic configured to perform fade operations comprises:
control logic configured to use a second sentinel to control fade operations at boundaries of the portion of the convex polygon; and
control logic configured to output data from the fade operations at each of the scan line image processing unit in accordance with the second sentinel.

### Claim 19 (depends on 11)

The system of claim 11, wherein the control logic configured to synchronize operations of the plurality of scan line image processing units comprises:
control logic configured to link the FIFO in each scan line image processing unit to form a chain of FIFOs for storing the plurality of convex polygons described in the edge list.

### Claim 20 (depends on 11)

The system of claim 11, wherein the control logic configured to synchronize operations of the plurality of scan line image processing units further comprises:
control logic configured to control output of image data from the plurality of buffers using the sentinel.
