# US 10,313,594 B2 · Dynamically configuring memory bandwidth for image generation

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

- Number: US 10,313,594 B2
- Document ID: US10313594B2
- Status: Granted
- Kind: B2
- Application number: 15/473,255
- Filed: 2017-03-29
- Published: 2018-07-05
- Granted: 2019-06-04
- Earliest claimed: 2017-01-05
- Assignees: QUALCOMM Incorporated
- Applicants: QUALCOMM Incorporated
- Inventors: Chandan Gera; Gaurav Gagrani; Srikanth Uyyala
- Web page: https://patentgrep.com/patent/US10313594B2

## CPC

- H04N 23/632: {for displaying or modifying preview images prior to image capturing, e.g. variety of image resolutions or capturing parameters}
- H04N 5/77: between a recording apparatus and a television camera
- H04N 23/62: Control of parameters via user interfaces
- H04N 23/65: Control of camera operation in relation to power supply
- H04N 23/651: {for reducing power consumption by affecting camera operations, e.g. sleep mode, hibernation mode or power off of selective parts of the camera}
- H04N 23/667: Camera operation mode switching, e.g. between still and video, sport and normal or high- and low-resolution modes
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

A device may include one or more processors, an image signal processor, and system memory. The one or more processors are configured to receive a request to accommodate a preview stream and a snapshot stream and output a request to increase a bandwidth between the image signal processor and the system memory to accommodate the preview stream in response to receiving the request to accommodate the preview stream and the snapshot stream. The request to increase the bandwidth to accommodate the preview stream refrains from accommodating the snapshot stream. Responsive to receiving a request to generate an image, for storage at the system memory, that corresponds to an image being output by the preview stream, the one or more processors are further configured to output a request to further increase the bandwidth between the image signal processor and the system memory to accommodate the snapshot stream.

## Claims

### Claim 1

A method for image generation, the method comprising:
receiving, from an application framework operating at a processor, a request to accommodate a preview stream and a snapshot stream, the request to accommodate comprising an instruction to configure a system memory to allocate a bandwidth between an image signal processor and the system memory that accommodates the preview stream and the snapshot stream;
responsive to receiving the request to accommodate the preview stream and the snapshot stream, outputting, to a memory controller for the system memory, a request to increase a bandwidth allocated between the image signal processor and the system memory to accommodate the preview stream, wherein the request to increase the bandwidth allocated between the image signal processor and the system memory to accommodate the preview stream refrains from allocating bandwidth between the image signal processor and the system memory to accommodate the snapshot stream; and
responsive to receiving, from the application framework, a request to generate an image, for storage at the system memory, that corresponds to an image being output by the preview stream, outputting, to the memory controller, a request to further increase the bandwidth allocated between the image signal processor and the system memory to accommodate the snapshot stream.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
generating, with the application framework, the instruction to configure the system memory to accommodate the preview stream and the snapshot stream in response to receiving, from an application operating at the processor, an instruction to operate the image signal processor in a preview mode.

### Claim 3 (depends on 1)

The method of claim 1, wherein receiving the request to generate the image that corresponds to the image being output by the preview stream comprises:
receiving, from the application framework operating at the processor, an instruction to cause the image signal processor to output, in the snapshot stream, the image that corresponds to the image being output by the preview stream.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
instructing the image signal processor to cause one or more camera devices to capture content at a first resolution and to output a representation of the captured content in the preview stream at a second resolution that is less than the first resolution.

### Claim 5 (depends on 4)

The method of claim 4, further comprising:
responsive to receiving the request to generate the image that corresponds to the image being output by the preview stream, causing an output, at a display, of the image that corresponds to the image being output by the preview stream.

### Claim 6 (depends on 5)

The method of claim 5, wherein the image that corresponds to the image being output by the preview stream has the first resolution.

### Claim 7 (depends on 1)

The method of claim 1, wherein the bandwidth is a first bandwidth, the method further comprising:
responsive to receiving the request to accommodate the preview stream and the snapshot stream, calculating a second bandwidth between the image signal processor and the system memory to accommodate additional bandwidth for the preview stream, wherein outputting the request to increase the first bandwidth allocated between the image signal processor and the system memory to accommodate the preview stream indicates the second bandwidth.

### Claim 8 (depends on 7)

The method of claim 7, further comprising:
causing the system memory to operate at a frequency that is determined using the second bandwidth.

### Claim 9 (depends on 1)

The method of claim 1, wherein receiving the request to accommodate the preview stream and the snapshot stream comprises:
receiving a user interaction indicating an instruction to operate the image signal processor in a preview mode,
wherein outputting the request to increase the bandwidth allocated between the image signal processor and the system memory to accommodate the preview stream is in response to receiving the user interaction to operate the image signal processor in the preview mode.

### Claim 10 (depends on 1)

The method of claim 1, wherein receiving the request to generate the image that corresponds to the image being output by the preview stream comprises:
receiving a user interaction indicating an instruction to operate the image signal processor in a snapshot mode,
wherein outputting the request to further increase the bandwidth allocated between the image signal processor and the system memory to accommodate the snapshot stream is in response to receiving the user interaction indicating the instruction to operate the image signal processor in the snapshot mode.

### Claim 11

A device for image generation, the device comprising:
one or more processors;
an image signal processor;
system memory; and
a memory controller for the system memory,
wherein the one or more processors are configured to:
receive, from an application framework operating at the one or more processors, a request to accommodate a preview stream and a snapshot stream, the request to accommodate comprising an instruction to configure the system memory to allocate a bandwidth between the image signal processor and the system memory that accommodates the preview stream and the snapshot stream;
responsive to receiving the request to accommodate the preview stream and the snapshot stream, output, to the memory controller, a request to increase a bandwidth allocated between the image signal processor and the system memory to accommodate the preview stream,
wherein the request to increase the bandwidth allocated between the image signal processor and the system memory to accommodate the preview stream refrains from allocating bandwidth between the image signal processor and the system memory to accommodate the snapshot stream; and
responsive to receiving, from the application framework, a request to generate an image, for storage at the system memory, that corresponds to an image being output by the preview stream, output, to the memory controller, a request to further increase the bandwidth allocated between the image signal processor and the system memory to accommodate the snapshot stream.

### Claim 12 (depends on 11)

The device of claim 11, wherein the one or more processors are further configured to:
generate the instruction to configure the system memory to accommodate the preview stream and the snapshot stream in response to receiving, from an application operating at the one or more processors, an instruction to operate the image signal processor in a preview mode.

### Claim 13 (depends on 11)

The device of claim 11, wherein the one or more processors are further configured to:
generate, with the application framework operating at the one or more processors, an instruction to cause the image signal processor to output, in the snapshot stream, the image that corresponds to the image being output by the preview stream,
wherein the one or more processors are further configured to output the request to further increase the bandwidth allocated between the image signal processor and the system memory to accommodate the snapshot stream further in response to generating the instruction to cause the image signal processor to output, in the snapshot stream, the image that corresponds to the image being output by the preview stream.

### Claim 14 (depends on 11)

The device of claim 11, wherein the one or more processors are further configured to:
instruct the image signal processor to cause one or more camera devices to capture content at a first resolution and to output a representation of the captured content in the preview stream at a second resolution that is less than the first resolution.

### Claim 15 (depends on 14)

The device of claim 14, wherein the one or more processors are further configured to:
responsive to receiving the request to generate the image that corresponds to the image being output by the preview stream, cause an output, at a display, of the image that corresponds to the image being output by the preview stream.

### Claim 16 (depends on 15)

The device of claim 15, wherein the image that corresponds to the image being output by the preview stream has the first resolution.

### Claim 17 (depends on 11)

The device of claim 11, wherein the bandwidth is a first bandwidth and wherein the one or more processors are further configured to:
responsive to receiving the request to accommodate the preview stream and the snapshot stream, calculate a second bandwidth between the image signal processor and the system memory to accommodate additional bandwidth for the preview stream, wherein the request to increase the first bandwidth indicates the second bandwidth.

### Claim 18 (depends on 17)

The device of claim 17, wherein the one or more processors are further configured to:
cause the system memory to operate at a frequency that is determined using the second bandwidth.

### Claim 19 (depends on 11)

The device of claim 11, wherein the one or more processors are further configured to:
receive data indicating a user interaction, the user interaction indicating an instruction to operate the image signal processor in a preview mode,
wherein the one or more processors are further configured to output the request to increase the bandwidth allocated between the image signal processor and the system memory to accommodate the preview stream in response to receiving the data indicating the user interaction.

### Claim 20 (depends on 11)

The device of claim 11, wherein the one or more processors are further configured to:
receive data indicating a user interaction, the user interaction indicating an instruction to operate the image signal processor in a snapshot mode,
wherein the one or more processors are further configured to output the request to further increase the bandwidth allocated between the image signal processor and the system memory to accommodate the snapshot stream in response to receiving the data indicating the user interaction.

### Claim 21

A non-transitory computer-readable medium having instructions stored thereon that, when executed, cause one or more processors to:
receive, from an application framework operating at the one or more processors, a request to accommodate a preview stream and a snapshot stream, the request to accommodate comprising an instruction to configure a system memory to allocate a bandwidth between an image signal processor and the system memory that accommodates the preview stream and the snapshot stream;
responsive to receiving the request to accommodate the preview stream and the snapshot stream, output, to a memory controller for the system memory, a request to increase a bandwidth allocated between the image signal processor and the system memory to accommodate the preview stream,
wherein the request to increase the bandwidth allocated between the image signal processor and the system memory to accommodate the preview stream refrains from allocating bandwidth between the image signal processor and the system memory to accommodate the snapshot stream; and
responsive to receiving, from the application framework, a request to generate an image, for storage at the system memory, that corresponds to an image being output by the preview stream, output, to the memory controller, a request to further increase the bandwidth allocated between the image signal processor and the system memory to accommodate the snapshot stream.

### Claim 22 (depends on 21)

The non-transitory computer-readable medium of claim 21, wherein the instructions further cause the one or more processors to:
generate the instruction to configure the system memory to accommodate the preview stream and the snapshot stream in response to receiving, from an application operating at the one or more processors, an instruction to operate the image signal processor in a preview mode.

### Claim 23 (depends on 21)

The non-transitory computer-readable medium of claim 21, wherein the instructions further cause the one or more processors to:
generate, with the application framework operating at the one or more processors, an instruction to cause the image signal processor to output, in the snapshot stream, the image that corresponds to the image being output by the preview stream,
wherein the one or more processors are configured to output the request to further increase the bandwidth allocated between the image signal processor and the system memory to accommodate the snapshot stream further in response to generating the instruction to cause the image signal processor to output, in the snapshot stream, the image that corresponds to the image being output by the preview stream.

### Claim 24 (depends on 21)

The non-transitory computer-readable medium of claim 21, wherein the instructions further cause the one or more processors to:
instruct the image signal processor to cause one or more camera devices to capture content at a first resolution and to output a representation of the captured content in the preview stream at a second resolution that is less than the first resolution.

### Claim 25 (depends on 24)

The non-transitory computer-readable medium of claim 24, wherein the instructions further cause the one or more processors to:
responsive to receiving the request to generate the image that corresponds to the image being output by the preview stream, cause an output, at a display, of the image that corresponds to the image being output by the preview stream.

### Claim 26 (depends on 25)

The non-transitory computer-readable medium of claim 25, wherein the image that corresponds to the image being output by the preview stream has the first resolution.

### Claim 27

A device for image generation, the device comprising:
means for receiving, from an application framework, a request to accommodate a preview stream and a snapshot stream, the request to accommodate comprising an instruction to configure a system memory to allocate a bandwidth between an image signal processor and the system memory that accommodates the preview stream and the snapshot stream;
means for outputting, to a memory controller for the system memory, a request to increase a bandwidth allocated between the image signal processor and the system memory to accommodate the preview stream in response to receiving the request to accommodate the preview stream and the snapshot stream,
wherein the request to increase the bandwidth allocated between the image signal processor and the system memory to accommodate the preview stream refrains from allocating bandwidth between the image signal processor and the system memory to accommodate the snapshot stream; and
means for outputting, to the memory controller, a request to further increase the bandwidth allocated between the image signal processor and the system memory to accommodate the snapshot stream in response to receiving, from the application framework, a request to generate an image, for storage at the system memory, that corresponds to an image being output by the preview stream.
