IP Library Granted Patent US 12664605
Granted Patent B2
US 12664605 · App. 18/448,440 · Granted Jun 23, 2026

Multi-context dynamic line buffer management for image processing

Inventors: Vinod Kumar Nahval (Mountain House, CA); Mei Yang (San Diego, CA); Srivaishnavi Sree Krishnan (Sunnyvale, CA); Rohan Desai (San Diego, CA)
Assignee: QUALCOMM Incorporated
G06T1/60G06T1/20H04N25/42H04N25/75H04N25/77
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 12664605
App. No.
18/448,440
Granted
Jun 23, 2026
Kind
B2
Abstract

A system comprises an image signal processor (ISP). The ISP is a discrete hardware unit and includes a line buffer, a memory controller, and one or more image processors. The memory controller is configured to allocate blocks within the line buffer to a plurality of contexts, and for each of the contexts: receive one or more lines of image data associated with a respective context and store the one or more lines of the image data associated with the context in a respective block allocated to the respective context. The one or more image processors of the ISP are configured to, for each respective context of the plurality of contexts, process the one or more lines of the image data associated with the respective context that are stored in the line buffer.

Claims (36)

1 . A system comprising:

an image signal processor (ISP), wherein the ISP is a discrete hardware unit and includes a line buffer, a memory controller, and one or more image processors,

wherein the memory controller is configured to:

for each respective context of a plurality of contexts:

receive one or more lines of image data associated with the respective context, wherein each line of the one or more lines concludes with an end-of-line code indicating an end of the line;

determine, based on the end-of-line code and based on a quantity of lines of the image data the ISP is configured to store for the respective context, a size of a respective block to be allocated within the line buffer to the respective context;

allocate the respective block to the respective context; and

store the one or more lines of the image data associated with the respective context in the respective block allocated to the respective context, and

wherein the one or more image processors of the ISP are configured to, for each respective context of the plurality of contexts, process the one or more lines of the image data associated with the respective context that are stored in the respective block allocated to the respective context in the line buffer.

2 . The system of claim 1 , wherein the memory controller is configured to, for each respective context of the plurality of contexts, determine a respective offset value to indicate a starting location in the line buffer of the respective block allocated to the respective context.

3 . The system of claim 1 , wherein the plurality of contexts includes one or more contexts associated with one or more image sensors.

4 . The system of claim 1 , wherein the plurality of contexts includes one or more contexts associated with one or more regions within image data generated by a single image sensor.

5 . The system of claim 1 , wherein the one or more image processors are further configured to:

for each respective context of the plurality of contexts, execute a thread associated with the respective context, wherein the thread associated with the respective context processes the one or more lines of the image data associated with the respective context that are stored in the line buffer in the respective block allocated to the respective context.

6 . The system of claim 5 , wherein, for each respective context of the plurality of contexts, the thread associated with the respective context is configured to request allocation of a block of the line buffer.

7 . The system of claim 5 , wherein, for at least one context of the plurality of contexts, the ISP is configured to initiate the thread associated with the context in response to a connection of an image sensor to the system.

8 . The system of claim 1 , wherein the one or more image processors are configured to, as part processing the one or more lines of the image data associated with the respective context, apply one or more filters to the one or more lines of the image data associated with the respective context.

9 . The system of claim 1 , further comprising one or more image sensors that generate the image data.

10 . The system of claim 1 , further comprising a plurality of image sensors that generate the image data, wherein two or more image sensors of the plurality of image sensors have different resolutions.

11 . A method of processing image data, the method comprising:

for each respective context of a plurality of contexts:

receiving, by a memory controller of an image signal processor (ISP), one or more lines of image data associated with the respective context, wherein the ISP is a discrete hardware unit and includes one or more image processors and a line buffer, each line of the one or more lines concludes with an end-of-line code indicating an end of the line;

determining, by the memory controller, based on the end-of-line code and based on a quantity of lines of the image data the ISP is configured to store for the respective context, a size of a respective block to be allocated within the line buffer to the respective context;

allocating, by the memory controller, the respective block to the respective context;

storing, by the memory controller, the one or more lines of the image data associated with the respective context in the respective block allocated to the respective context; and

processing, by the one or more of the image processors, the one or more lines of the image data associated with the respective context that are stored in the line buffer.

12 . The method of claim 11 , wherein allocating the respective block comprises determining, by the memory controller, a respective offset value to indicate a starting location in the line buffer of the respective block allocated to the respective context.

13 . The method of claim 11 , wherein:

allocating the respective block comprises allocating, by the memory controller, the respective block to the respective context so that the respective block for the respective context has the determined size.

14 . The method of claim 11 , wherein the plurality of contexts includes one or more contexts associated with one or more image sensors.

15 . The method of claim 11 , wherein the plurality of contexts includes one or more contexts associated with one or more regions within image data generated by a single image sensor.

16 . The method of claim 11 , wherein the method further comprises:

for each respective context of the plurality of contexts, executing, on the one or more image processors of the ISP, a thread associated with the respective context, wherein the thread associated with the respective context processes the one or more lines of image data associated with the respective context that are stored in the line buffer in the respective block allocated to the respective context.

17 . The method of claim 16 , wherein the method further comprises, for each respective context of the plurality of contexts, requesting, by the thread associated with the respective context, allocation of a block of the line buffer.

18 . The method of claim 11 , wherein processing the one or more lines of the image data associated with the respective context comprises applying one or more filters to the one or more lines of the image data associated with the respective context.

19 . The method of claim 11 , wherein the image data includes image data generated by a plurality of image sensors, wherein two or more of the image sensors have different resolutions.