IP Library Granted Patent US 10,404,926
Granted Patent B2
US 10,404,926 · App. 15/399,269 · Granted Sep 3, 2019

Warp processing for image capture

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 10,404,926
App. No.
15/399,269
Granted
Sep 3, 2019
Kind
B2
Abstract

Systems and methods are disclosed for image signal processing. For example, methods may include receiving, by an image signal processor, one or more input image signals from one or more image sensors; determining a mapping based on the input image signal(s), wherein the mapping includes records that associate image portions of an output image with corresponding image portions of the input image signal(s); sorting the records of the mapping according to an order of the corresponding image portions of the input image signal(s); applying, by the image signal processor, image processing to image portions of the input image signal(s) to determine image portions of one or more processed images in the order; and determining, by the image signal processor, the image portions of the output image based at least in part on the mapping and the corresponding image portions of the processed image(s) in the order.

Claims (78)

1. A non-transitory computer-readable storage medium, comprising executable instructions that, when executed by a processor, facilitate performance of operations, comprising:

receiving, by an image signal processor, one or more frames of input video from, respectively, one or more image sensors;

applying, by the image signal processor, a first pass of image processing to the one or more frames of input video to determine one or more partially processed frames;

storing the one or more partially processed frames in a memory;

determining a warp mapping based on the one or more frames of input video, wherein the warp mapping includes records that associate image portions of a frame of output video with corresponding image portions of the one or more frames of input video;

sorting the records of the warp mapping according to a raster order of the corresponding image portions of the one or more frames of input video;

applying, by the image signal processor, a second pass of image processing to image portions of the one or more partially processed frames to determine image portions of one or more processed frames in the raster order;

determining, by the image signal processor, the image portions of the frame of output video based at least in part on the warp mapping and the corresponding image portions of the one or more processed frames in the raster order; and

storing the frame of output video in the memory.

2. The non-transitory computer-readable storage medium of claim 1 , wherein operations comprise:

reading, by an encoder, the frame of output video from the memory;

generating, by the encoder, an encoded video based at least in part on the frame of output video; and

outputting or storing the encoded video.

3. The non-transitory computer-readable storage medium of claim 1 , wherein determining the warp mapping based on the one or more frames of input video comprises:

determining one or more low resolution images based on the one or more frames of input video; and

determining the warp mapping based on the one or more low resolution images.

4. The non-transitory computer-readable storage medium of claim 1 , wherein determining the warp mapping based on the one or more frames of input video comprises:

determining disparity based on two of the one or more frames of input video; and

determining a stitching boundary based in part on the disparity.

5. The non-transitory computer-readable storage medium of claim 4 , wherein determining the warp mapping based on the one or more frames of input video comprises:

determining, based in part on the stitching boundary, blend ratios associated with image portions of a frame of output video and corresponding image portions of the one or more frames of input video.

6. The non-transitory computer-readable storage medium of claim 5 , wherein determining the warp mapping based on the one or more frames of input video comprises:

storing the blend ratios as part of the respective records of the warp mapping.

7. The non-transitory computer-readable storage medium of claim 4 , wherein sizes, in pixels, of the at least some of the corresponding image portions of the one or more frames of input video vary based on a distance of the corresponding image portions from the stitching boundary.

8. The non-transitory computer-readable storage medium of claim 1 , wherein determining the warp mapping based on the one or more frames of input video comprises:

applying lens distortion correction to determine one or more lens corrected frames based on the one or more frames of input video;

applying electronic rolling shutter correction to determine one or more shutter corrected frames based on the one or more lens corrected frames;

determining disparity based on two of the one or more shutter corrected frames;

determining a stitching boundary based in part on the disparity; and

determining an electronic image stabilization rotation based at least in part angular rate measurements for a device including the one or more image sensors.

9. The non-transitory computer-readable storage medium of claim 8 , wherein determining the warp mapping based on the one or more frames of input video comprises:

determining, based in part on the stitching boundary, blend ratios associated with image portions of a frame of output video and corresponding image portions of the one or more frames of input video.

10. The non-transitory computer-readable storage medium of claim 1 , wherein determining the image portions of the frame of output video based at least in part on the warp mapping and the corresponding image portions of the one or more processed frames in the raster order comprises:

warping and blending at least two of the one or more processed frames to generate the frame of output video.

11. A method comprising:

receiving, by an image signal processor, one or more input image signals from one or more image sensors;

determining a mapping based on the one or more input image signals, wherein the mapping includes records that associate image portions of an output image with corresponding image portions of the one or more input image signals;

sorting the records of the mapping according to an order of the corresponding image portions of the one or more input image signals;

applying, by the image signal processor, image processing to image portions of the one or more input image signals to determine image portions of one or more processed images in the order; and

determining, by the image signal processor, the image portions of the output image based at least in part on the mapping and the corresponding image portions of the one or more processed images in the order.

12. The method of claim 11 , wherein determining the mapping based on the one or more input image signals comprises:

determining one or more low resolution images based on the one or more input image signals; and

determining the mapping based on the one or more low resolution images.

13. The method of claim 11 , wherein determining the mapping based on the one or more input image signals comprises:

determining disparity based on two of the one or more input image signals; and

determining a stitching boundary based in part on the disparity.

14. The method of claim 11 , wherein determining the mapping based on the one or more input image signals comprises:

determining blend ratios associated with image portions of the output image and corresponding image portions of the one or more input image signals; and

storing the blend ratios as part of the respective records of the mapping.

15. The method of claim 11 , wherein determining the mapping based on the one or more frames of input image signals comprises:

applying lens distortion correction to determine one or more lens corrected images based on the one or more input image signals;

applying electronic rolling shutter correction to determine one or more shutter corrected images based on the one or more lens corrected images;

determining disparity based on two of the one or more shutter corrected images;

determining a stitching boundary based in part on the disparity; and

determining an electronic image stabilization rotation based at least in part angular rate measurements for a device including the one or more image sensors.

16. The method of claim 11 , wherein determining the image portions of the output image based at least in part on the mapping and the corresponding image portions of the one or more processed images in the order comprises:

warping and blending at least two of the one or more processed images to generate the output image.

17. An image capture apparatus comprising:

one or more image sensors configured to capture input video; and

an image signal processor configured to:

receive one or more frames of input video from the one or more image sensors;

determine a mapping based on the one or more frames of input video, wherein the mapping includes records that associate image portions of a frame of output video with corresponding image portions of the one or more frames of input video;

sort the records of the mapping according to an order of the corresponding image portions of the one or more frames of input video;

apply image processing to image portions of the one or more frames of input video to determine image portions of one or more processed frames in the order; and

determine the image portions of the frame of output video based at least in part on the mapping and the corresponding image portions of the one or more processed frames in the order.

18. The apparatus of claim 17 , comprising:

a memory for storing the frame of output video; and

an encoder configured to:

read the frame of output video from the memory;

generate an encoded video based at least in part on the frame of output video; and

output or store the encoded video.

19. The apparatus of claim 17 , wherein the image signal processor is configured to:

warp and blend at least two of the one or more processed frames to generate the frame of output video.

20. The apparatus of claim 17 , wherein image signal processor comprises at least two front image signal processors that are configured to:

receive frames of input video from, respectively, two of the one or more image sensors;

apply a first pass of image processing to the respective frames of input video to determine two partially processed frames;

determine two low resolution images based on, respectively, the two partially processed frames; and

store the two low resolution images in a memory.

Assignments (7)
SECURITY INTEREST Recorded Aug 4, 2025
From: GOPRO, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS AGENT
Reel/Frame 072358/0001 →
SECURITY INTEREST Recorded Aug 4, 2025
From: GOPRO, INC.
To: FARALLON CAPITAL MANAGEMENT, L.L.C., AS AGENT
Reel/Frame 072340/0676 →
RELEASE OF PATENT SECURITY INTEREST Recorded Jan 25, 2021
From: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
To: GOPRO, INC.
Reel/Frame 055106/0434 →
SECURITY INTEREST Recorded Oct 19, 2020
From: GOPRO, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 054113/0594 →
CORRECTIVE ASSIGNMENT TO CORRECT THE SCHEDULE TO REMOVE APPLICATION 15387383 AND REPLACE WITH 15385383 PREVIOUSLY RECORDED ON REEL 042665 FRAME 0065. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Oct 23, 2019
From: GOPRO, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 050808/0824 →
SECURITY INTEREST Recorded Jun 1, 2017
From: GOPRO, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 042665/0065 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 20, 2017
From: DOUADY-PLEVEN, BRUNO CESAR; DOSHI, SANDEEP; KOK, SOPHANA
To: GOPRO, INC.
Reel/Frame 041026/0855 →
Cited By (2)
US 12,335,483 US 12,382,164