# US 10,321,077 B2 · Line buffer unit for image processor

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

- Number: US 10,321,077 B2
- Document ID: US10321077B2
- Status: Granted
- Kind: B2
- Application number: 15/598,027
- Filed: 2017-05-17
- Published: 2017-09-07
- Granted: 2019-06-11
- Earliest claimed: 2015-04-23
- Assignees: Google Inc.
- Applicants: Google LLC
- Inventors: Neeti Desai; Albert Meixner; Qiuling Zhu; Jason Rupert Redgrave; Ofer Shacham; Daniel Frederic Finchelstein
- Web page: https://patentgrep.com/patent/US10321077B2

## CPC

- H04N 25/701: Line sensors
- G06T 1/60: Memory management
- H04N 5/91: Television signal processing therefor
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL

## Abstract

An apparatus is described that include a line buffer unit composed of a plurality of a line buffer interface units. Each line buffer interface unit is to handle one or more requests by a respective producer to store a respective line group in a memory and handle one or more requests by a respective consumer to fetch and provide the respective line group from memory. The line buffer unit has programmable storage space whose information establishes line group size so that different line group sizes for different image sizes are storable in memory.

## Claims

### Claim 1

A device comprising:
a plurality of line buffer interface units; and
a memory unit configured to store image data partitioned into a plurality of line groups,
wherein the device is configured to assign each line buffer interface unit to manage read and write requests for a respective line group of the plurality of line groups,
wherein each line buffer interface unit is configured to receive a write request from a producer component, to identify a write location within the memory unit corresponding to the write request, and to store data at the write location within the memory unit according to the write request,
wherein each line buffer interface unit is configured to receive a read request from one or more consumer components, to identify a read location within the memory unit corresponding to the read request, and to provide data stored at the read location within the memory unit according to the read request,
wherein, upon a line buffer interface unit completing all outstanding read requests from one or more consumers components for a particular line group, the device is configured to reassign the line buffer interface unit to manage read and write requests for a different line group,
wherein each line buffer interface unit has a dedicated programmable unit configuration space that is configured to store data representing properties of a line group to which the line buffer interface unit is assigned, and
wherein upon a line buffer interface unit being reassigned from a first line group to a second line group, the device is configured to update the data in the programmable unit configuration space of the line buffer interface unit to represent properties of the second line group.

### Claim 2 (depends on 1)

The device of claim 1, wherein the data in the programmable unit configuration space represents a maximum number of consumer components that the line buffer interface unit can service simultaneously, a row width of the line group, or a base linear address in the memory unit of the line group.

### Claim 3 (depends on 1)

The device of claim 1, wherein the device has a programmable global configuration space that is configured to store data representing a total size of an image having image data stored in the memory unit.

### Claim 4 (depends on 3)

The device of claim 3, wherein the programmable global configuration space is configured to store data representing a number of active line buffer interface units.

### Claim 5 (depends on 1)

The device of claim 1, wherein the device is configured to dynamically compute one or more data values in the programmable unit configuration space from one or more data values in a programmable global configuration space of the device.

### Claim 6 (depends on 5)

The device of claim 5, wherein the device is configured to compute a number of full line group rows or a line group base address in the programmable unit configuration space from image size and stencil dimension elements of the programmable global configuration space.

### Claim 7 (depends on 1)

The device of claim 1, wherein each line buffer interface unit has translation circuitry that is configured to convert a pair of values into a linear address within the memory unit.

### Claim 8 (depends on 1)

The device of claim 1, wherein each line buffer interface unit is configured to maintain a pointer to a current or next segment of a line group to be provided on a next read request.

### Claim 9

A method comprising:
assigning, by a device having a plurality of line buffer interface units and a memory unit storing image data partitioned into a plurality of line groups, each line buffer interface unit to manage read and write requests for a respective line group of the plurality of line groups,
receiving, by a particular line buffer interface unit of the plurality of line buffer interface units, a write request from a producer component of the device;
identify, by the particular line buffer interface unit, a write location within the memory unit corresponding to the write request;
storing, by the particular line buffer interface unit, data at the write location within the memory unit according to the write request;
receiving, by the particular line buffer interface unit, a read request from one or more consumer components of the device;
identifying, by the particular line buffer interface unit, a read location within the memory unit corresponding to the read request;
providing, by the particular line buffer interface unit, data stored at the read location within the memory unit according to the read request;
receiving, by the device, an indication that a line buffer interface unit has completed all outstanding read requests from one or more consumers components for a particular line group; and
in response, reassigning, by the device, the line buffer interface unit to manage read and write requests for a different line group,
wherein each line buffer interface unit has a dedicated programmable unit configuration space that is configured to store data representing properties of a line group to which the line buffer interface unit is assigned, and
wherein reassigning the line buffer interface unit comprises updating, by the device, the data in the programmable unit configuration space of the line buffer interface unit to represent properties of the different line group.

### Claim 10 (depends on 9)

The method of claim 9, wherein the data in the programmable unit configuration space represents a maximum number of consumer components that the line buffer interface unit can service simultaneously, a row width of the line group, or a base linear address in the memory unit of the line group.

### Claim 11 (depends on 9)

The method of claim 9, wherein the device has a programmable global configuration space that is configured to store data representing a total size of an image having image data stored in the memory unit.

### Claim 12 (depends on 11)

The method of claim 11, wherein the programmable global configuration space is configured to store data representing a number of active line buffer interface units.

### Claim 13 (depends on 9)

The method of claim 9, further comprising dynamically computing, by the device, one or more data values in the programmable unit configuration space from one or more data values in a programmable global configuration space of the device.

### Claim 14 (depends on 13)

The method of claim 13, further comprising computing, by the device, a number of full line group rows or a line group base address in the programmable unit configuration space from image size and stencil dimension elements of the programmable global configuration space.

### Claim 15 (depends on 9)

The method of claim 9, wherein each line buffer interface unit has translation circuitry, and further comprising: converting, by translation circuitry of the particular line buffer interface unit, a pair of values into a linear address within the memory unit.

### Claim 16 (depends on 9)

The method of claim 9, further comprising maintaining, by the particular line buffer interface unit, a pointer to a current or next segment of a line group to be provided on a next read request.
