IP Library › Granted Patent US 10,728,474
Granted Patent B2
US 10,728,474 · App. 16/303,428 · Granted Jul 28, 2020

Image signal processor for local motion estimation and video codec

Inventors: Bruno César Douady (Bures-sur-Yvette, FR); Sandeep Doshi (Sunnyvale, CA)
Assignee: GoPro, Inc.
H04N5/3572G06T3/0093G06T3/4038G06T5/20G06T5/50G06T7/85H04N5/2258H04N5/23238H04N5/247H04N13/271H04N17/002H04N19/10H04N19/136H04N19/176H04N19/423H04N19/70H04N19/85H04N19/90G06T5/002G06T2207/10016H04N13/122H04N13/239
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,728,474
App. No.
16/303,428
Granted
Jul 28, 2020
Kind
B2
Abstract

Image signal processing including generating image signal processing based encoding hints for motion estimation may include an image signal processor obtaining an input image portion of an input image from the input image signal, generating motion information for the input image portion, processing the input image portion based on the motion information, outputting processed image data, and outputting the motion information as encoding hints, such that the motion information is accessible by an encoder for generating an encoded output bitstream by obtaining the processed image data as source image data, obtaining the motion information, generating prediction data for encoding the source image data based on the motion information, generating encoded image data based on the prediction data, and including the encoded image data in an encoded output bitstream.

Claims (127)

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

obtaining, by an image signal processor, from an image sensor, an input image signal;

obtaining, by the image signal processor, an input image portion of an input image from the input image signal;

generating, by the image signal processor, motion information for the input image portion;

generating, by the image signal processor, a processed image portion by processing the input image portion based on the motion information;

including, by the image signal processor, the processed image portion in processed image data;

outputting, by the image signal processor, the processed image data, such that the processed image data is accessible by an encoder; and

outputting, by the image signal processor, the motion information as an encoding hint, such that the motion information is accessible by the encoder for generating an encoded output bitstream by:

obtaining source image data for a frame, the source image data including the processed image data;

obtaining the motion information;

obtaining a source image portion from the source image data, the source image portion corresponding to the processed image portion;

generating a prediction portion for encoding the source image portion based on the motion information;

generating encoded image data based on the prediction portion; and

including the encoded image data in the encoded output bitstream.

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

obtaining the input image signal includes:

obtaining a first input image signal corresponding to a first input image; and

obtaining a second input image signal corresponding to a second input image;

obtaining the input image portion includes:

obtaining a first input image portion from the first input image signal; and

obtaining a second input image portion from the second input image signal; and

generating the processed image portion includes:

generating the processed image portion by combining the first input image portion and the second input image portion; and

modifying the motion information in accordance with combining the first input image portion and the second input image portion.

3. The non-transitory computer-readable storage medium of claim 1 , wherein:

obtaining the input image portion includes obtaining a current input block from a current input frame;

generating the motion information includes:

obtaining reference image data; and

generating a motion vector indicating a displacement between the input image portion and the reference image data.

4. The non-transitory computer-readable storage medium of claim 1 , wherein obtaining the input image signal includes buffering at least a portion of the input image signal in an internal buffer of the image signal processor.

5. The non-transitory computer-readable storage medium of claim 1 , wherein:

outputting the processed image data includes storing the processed image data in a shared memory unit accessible by the encoder; and

obtaining the source image data includes reading the source image data from the shared memory.

6. The non-transitory computer-readable storage medium of claim 1 , wherein:

outputting the processed image data includes:

transmitting the processed image data to the encoder; and

omits storing the processed image data in a shared memory unit; and obtaining the source image data includes:

receiving the processed image data from the image signal processor as the source image data; and

omits reading the processed image data from the shared memory unit.

7. The non-transitory computer-readable storage medium of claim 1 , wherein:

outputting the motion information includes storing the motion information in a shared memory unit accessible by the encoder; and

obtaining the motion information includes reading the motion information from the shared memory.

8. The non-transitory computer-readable storage medium of claim 1 , wherein outputting the motion information includes outputting the motion information such that the motion information is accessible by the encoder for generating the encoded output bitstream by:

generating the prediction portion for encoding the source image portion based on the motion information, wherein, in response to obtaining the motion information output by the image signal processor, generating the prediction portion for encoding the source image portion based on the motion information omits performing motion estimation.

9. The non-transitory computer-readable storage medium of claim 1 , wherein outputting the motion information includes outputting the motion information such that the motion information is accessible by the encoder for generating the encoded output bitstream by:

generating the prediction portion by performing motion estimation based on the motion information.

10. A method comprising:

obtaining, by an image signal processor, from an image sensor, an input image signal;

obtaining, by the image signal processor, an input image portion of an input image from the input image signal;

generating, by the image signal processor, motion information for the input image portion;

generating, by the image signal processor, a processed image portion by processing the input image portion based on the motion information;

including, by the image signal processor, the processed image portion in processed image data;

outputting, by the image signal processor, the processed image data;

outputting, by the image signal processor, the motion information as an encoding hint;

obtaining, by an encoder, source image data for a frame, the source image data including the processed image data;

obtaining, by the encoder, the motion information;

obtaining, by the encoder, a source image portion from the source image data, the source image portion corresponding to the processed image portion;

generating, by the encoder, a prediction portion for encoding the source image portion based on the motion information;

generating, by the encoder, encoded image data based on the prediction portion; and

outputting, by the encoder, the encoded image data.

11. The method of claim 10 , wherein:

obtaining the input image signal includes:

obtaining a first input image signal corresponding to a first input image; and

obtaining a second input image signal corresponding to a second input image;

obtaining the input image portion includes:

obtaining a first input image portion from the first input image signal; and

obtaining a second input image portion from the second input image signal; and

generating the processed image portion includes:

generating the processed image portion by combining the first input image portion and the second input image portion; and

modifying the motion information in accordance with combining the first input image portion and the second input image portion.

12. The method of claim 10 , wherein:

outputting the processed image data includes storing the processed image data in a shared memory unit accessible by the encoder; and

obtaining the source image data includes reading the source image data from the shared memory.

13. The method of claim 10 , wherein: outputting the processed image data includes:

transmitting the processed image data to the encoder; and

omits storing the processed image data in a shared memory unit; and obtaining the source image data includes:

receiving processed image data from the image signal processor as the source image data; and

omits reading the processed image data from a shared memory unit.

14. The method of claim 10 , wherein:

outputting the motion information includes storing the motion information in a shared memory unit accessible by the encoder; and

obtaining the motion information includes reading the motion information from a shared memory accessible by the image signal processor.

15. The method of claim 10 , wherein the encoder omits performing motion estimation in response to obtaining the motion information output by the image signal processor.

16. The method of claim 10 , wherein generating the prediction portion includes performing motion estimation based on the motion information.

17. An apparatus comprising:

an image sensor;

an image signal processor configured to:

obtain an input image signal from the image sensor;

obtain an input image portion of an input image from the input image signal;

generate motion information for the input image portion;

generate a processed image portion by processing the input image portion based on the motion information;

include the processed image portion in processed image data;

output the processed image data; and

output the motion information as an encoding hint; and

an encoder configured to:

obtain source image data for a frame, the source image data including the processed image data;

obtain the motion information output by the image signal processor;

obtain a source image portion from the source image data, the source image portion corresponding to the processed image portion;

generate a prediction portion for encoding the source image portion based on the motion information;

generate encoded image data based on the prediction portion; and

output the encoded image data.

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

obtain the input image signal by:

obtaining a first input image signal corresponding to a first input image; and

obtaining a second input image signal corresponding to a second input image;

obtain the input image portion by:

obtaining a first input image portion from the first input image signal; and

obtaining a second input image portion from the second input image signal; and

generate the processed image portion by:

generating the processed image portion by combining the first input image portion and the second input image portion; and

modifying the motion information in accordance with combining the first input image portion and the second input image portion.

19. The apparatus of claim 17 , wherein:

the apparatus includes a shared memory unit accessible by the image signal processor and the encoder;

the image signal processor is configured to output the processed image data by storing the processed image data in the shared memory unit; and

the encoder is configured to obtain the source image data by reading the source image data from the shared memory unit.

20. The apparatus of claim 17 , wherein:

the image signal processor is configured to:

omit storing the processed image data in a shared memory unit; and

output the processed image data by transmitting the processed image data to the encoder; and

the encoder is configured to:

omit reading the processed image data from the shared memory unit; and

obtain the source image data by receiving the processed image data from the image signal processor as the source image data.

21. The apparatus of claim 17 , wherein:

the apparatus includes a shared memory unit accessible by the image signal processor and the encoder;

the image signal processor is configured to output the motion information by storing the motion information in the shared memory unit; and

the encoder is configured to obtain the motion information by reading the motion information from the shared memory.

22. The apparatus of claim 17 , wherein the encoder is configured to omit performing motion estimation in response to obtaining the motion information output by the image signal processor.

23. The apparatus of claim 17 , wherein the encoder is configured to generate the prediction portion by performing motion estimation based on the motion information.

Assignments (5)
SECURITY INTEREST Recorded Aug 4, 2025
From: GOPRO, INC.
To: FARALLON CAPITAL MANAGEMENT, L.L.C., AS AGENT
Reel/Frame 072340/0676 →
SECURITY INTEREST Recorded Aug 4, 2025
From: GOPRO, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS AGENT
Reel/Frame 072358/0001 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 10, 2019
From: DOUADY, BRUNO CÉSAR; DOSHI, SANDEEP
To: GOPRO, INC.
Reel/Frame 047948/0734 →
Continuity (5)
Continuation 15399269 · Jan 5, 2017
Continuation 15358495 · Nov 22, 2016
Continuation 15268038 · Sep 16, 2016
Provisional Application 62341580 · May 25, 2016
Related Publication 20190297283A1 · Sep 26, 2019
Cited By (3)
US 12,206,999 US 12,382,164 US 12,579,614