IP Library Granted Patent US 9,749,548
Granted Patent B2
US 9,749,548 · App. 14/603,354 · Granted Aug 29, 2017

Virtual linebuffers for image signal processors

Inventors: Qiuling Zhu (San Jose, CA); Ofer Shacham (Palo Alto, CA); Jason Rupert Redgrave (Mountain View, CA); Daniel Frederic Finchelstein (Redwood City, CA); Albert Meixner (Mountain View, CA)
Assignee: Google Inc.
H04N5/262G06T1/60
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 9,749,548
App. No.
14/603,354
Granted
Aug 29, 2017
Kind
B2
Abstract

In a general aspect, an apparatus can include image processing logic (IPL) configured to perform an image processing operation on pixel data corresponding with an image having a width of W pixels and a height of H pixels to produce output pixel data in vertical slices of K pixels using K vertically overlapping stencils of S×S pixels, K being greater than 1 and less than H, S being greater than or equal to 2, and W being greater than S. The apparatus can also include a linebuffer operationally coupled with the IPL, the linebuffer configured to buffer the pixel data for the IPL. The linebuffer can include a full-size buffer having a width of W and a height of (S−1). The linebuffer can also include a sliding buffer having a width of SB and a height of K, SB being greater than or equal to S and less than W.

Claims (45)

1. An apparatus comprising:

image processing logic (IPL) configured to perform an image processing operation on pixel data corresponding with an image having a width of W pixels and a height of H pixels to produce output pixel data in vertical slices of K pixels using K vertically overlapping stencils of S×S pixels, K being greater than 1 and less than H, S being greater than or equal to 2, and W being greater than S; and

a linebuffer operationally coupled with the IPL, the linebuffer configured to buffer the pixel data for the IPL, the linebuffer including:

a full-size buffer having a width of W and a height of (S−1); and

a sliding buffer having a width of SB and a height of K, SB being greater than or equal to S and less than W.

2. The apparatus of claim 1 , wherein the IPL is configured to produce the vertical slices of the output pixel data in a raster order.

3. The apparatus of claim 1 , wherein the IPL is a first IPL, the linebuffer is a first linebuffer, the image processing operation is a first image processing operation and the output pixel data is first output pixel data, the apparatus further comprising:

second IPL configured to perform a second image processing operation on the first output pixel data to produce second output pixel data in vertical slices of L pixels using L overlapping stencils of T×T pixels, L being greater than 1 and less than H, T being greater than or equal to 2; and

a second linebuffer operationally coupled between the first IPL and the second IPL, the second linebuffer configured to buffer the first output pixel data for the second IPL.

4. The apparatus of claim 3 , wherein the full-size buffer is a first full-size buffer and the sliding buffer is a first sliding buffer, the second linebuffer including:

a second full-size buffer having a width of W and a height of (T−1); and

a second sliding buffer having a width of TB and a height of L, TB being greater than or equal to T and less than W.

5. The apparatus of claim 3 , wherein L is equal to K and T is equal to S.

6. The apparatus of claim 3 , wherein L is not equal to K and T is not equal to S.

7. The apparatus of claim 1 , wherein an image processing function of the IPL is programmable.

8. The apparatus of claim 1 , wherein an image processing function of the IPL is fixed.

9. The apparatus of claim 1 , further comprising an image data source operationally coupled with the linebuffer, the image data source being configured to buffer the pixel data corresponding with the image.

10. The apparatus of claim 1 , wherein W is at least an order of magnitude greater than S.

11. The apparatus of claim 1 , wherein the full-size buffer includes a circular data buffer.

12. The apparatus of claim 1 , wherein the sliding buffer includes a first-in-first-out (FIFO) data buffer.

13. An apparatus comprising:

image processing logic (IPL) configured to perform an image processing operation on pixel data corresponding with an image having a width of W pixels and a height of H pixels to produce output pixel data in slices having a height of K pixels and a width of J pixels using K×J overlapping stencils of S×S pixels, K and J being greater than 1 and less than H, S being greater than or equal to 2, and W being greater than S; and

a linebuffer operationally coupled with the IPL, the linebuffer configured to buffer the pixel data for the IPL, the linebuffer including:

a full-size buffer having a width of W and a height of (S−1); and

a sliding buffer having a width of SB and a height of K, SB being greater than or equal to S+(J−1) and less than W.

14. The apparatus of claim 13 , wherein the IPL is a first IPL, the linebuffer is a first linebuffer, the image processing operation is a first image processing operation and the output pixel data is first output pixel data, the apparatus further comprising:

second IPL configured to perform a second image processing operation on the first output pixel data to produce second output pixel data slices; and

a second linebuffer operationally coupled between the first IPL and the second IPL, the second linebuffer configured to buffer the first output pixel data for the second IPL.

15. The apparatus of claim 14 , wherein a slice of the second output pixel data slices produced by the second IPL has a height of K and a width of J.

16. The apparatus of claim 14 , wherein a slice of the second output pixel data slices produced by the second IPL has a height that is not equal to K and a width that is not equal J.

17. The apparatus of claim 13 , wherein the IPL is configured to produce the slices of the output pixel data in a raster order.

18. An image signal processor (ISP) comprising:

an image data source configured to buffer pixel data corresponding with an image having a width of W pixels and a height of H pixels;

a first image processing stage including:

first image processing logic (IPL) configured to perform a first image processing operation on pixel data corresponding with an image having a width of W pixels and a height of H pixels to produce first output pixel data in vertical slices of K pixels using K vertically overlapping stencils of S×S pixels, K being greater than 1 and less than H, S being greater than or equal to 2, and W being greater than S; and

a first linebuffer operationally coupled with the first IPL, the first linebuffer configured to buffer the pixel data for the first IPL, the first linebuffer including:

a first full-size buffer having a width of W and a height of (S−1); and

a first sliding buffer having a width of SB and a height of K, SB being greater than or equal to S and less than W; and

a second image processing stage including:

second IPL configured to perform a second image processing operation on the first output pixel data to produce second output pixel data in vertical slices of L pixels using L overlapping stencils of T×T pixels, L being greater than 1 and less than H, T being greater than or equal to 2; and

a second linebuffer operationally coupled between the first IPL and the second IPL, the second linebuffer configured to buffer the first output pixel data for the second IPL.

19. The ISP of claim 18 , wherein the second linebuffer includes:

a second full-size buffer having a width of W and a height of (T−1); and

a second sliding buffer having a width of TB and a height of L, TB being greater than or equal to T and less than W.

20. The ISP of claim 18 , wherein T is equal to S, and L is equal to K.

Assignments (2)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044097/0658 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 16, 2015
From: ZHU, QIULING; SHACHAM, OFER; REDGRAVE, JASON RUPERT; FINCHELSTEIN, DANIEL FREDERIC; MEIXNER, ALBERT
To: GOOGLE INC.
Reel/Frame 035425/0987 →
Continuity (1)
Related Publication 20160219225A1 · Jul 28, 2016