IP Library Granted Patent US 10,499,085
Granted Patent B1
US 10,499,085 · App. 15/358,495 · Granted Dec 3, 2019

Image signal processing based encoding hints for bitrate control

Inventors: Bruno Cesar Douady-Pleven (Gif-sur-Yvette, FR); Sandeep Doshi (Sunnyvale, CA)
Assignee: GoPro, Inc.
H04N19/90H04N19/10H04N19/136H04N19/176H04N19/423H04N19/70
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,499,085
App. No.
15/358,495
Granted
Dec 3, 2019
Kind
B1
Abstract

Image signal processing based encoding hints for bitrate control may include an image signal processor receiving an input image signal, identifying a block of a frame based on the input image signal, generating processed image data corresponding to the block, determining a processed image indication for the block, and outputting the processed image data and the processed image indication as an encoding hint. Image signal processing based encoding hints for bitrate control may include an encoder receiving source image data for a frame, the source image data including the processed image data corresponding to the block, receiving source image indications for the frame, the source image indications including the processed image indication, determining an encoding parameter for encoding the frame based on the processed image indication, generating an encoded frame by encoding the frame using the encoding parameter, and outputting or storing the encoded frame.

Claims (52)

1. A method comprising:

receiving, by an image signal processor, an input video including a sequence of input frames;

determining, by the image signal processor, image indications based on the input video;

storing the image indications in a shared memory, wherein storing the image indications in the shared memory comprises storing the image indications as encoding hints in the shared memory such that the encoding hints are respectively associated with blocks within a frame of the input video;

reading, by an encoder, the image indications from the shared memory;

determining, by the encoder, an encoding parameter based on the image indications;

generating, by the encoder, an encoded video using the encoding parameter; and

outputting or storing, by the encoder, the encoded video.

2. The method of claim 1 , wherein the image indications for a plurality of frames are stored in the shared memory concurrently.

3. The method of claim 1 , wherein the encoding parameter specifies a number of bits to be used to encode a block within a frame of the encoded video.

4. The method of claim 1 , wherein the encoding parameter specifies a number of bits to be used to encode a frame of the encoded video.

5. The method of claim 1 , wherein the encoding parameter specifies a number of bits to be used to encode a group of pictures of the encoded video.

6. The method of claim 1 , comprising:

quantizing the image indications for blocks within a frame of the input video using one or more thresholds that are determined based in part on a set of image indications for blocks within the frame.

7. The method of claim 6 , wherein the one or more thresholds are determined based on a histogram of image indications for blocks within the frame.

8. The method of claim 6 , wherein the one or more thresholds are determined based on an average value of image indications for blocks within the frame.

9. The method of claim 1 , comprising:

quantizing the image indications for blocks within a plurality of frames in a group of pictures of the encoded video using one or more thresholds that are determined based in part on a set of image indications for blocks within the plurality of frames.

10. The method of claim 9 , wherein the one or more thresholds are determined based on a histogram of image indications for blocks within the plurality of frames.

11. The method of claim 9 , wherein the one or more thresholds are determined based on an average value of image indications for blocks within the plurality of frames.

12. The method of claim 1 , wherein generating, by the encoder, the encoded video using the encoding parameter comprises:

reading frames of video data that have been processed by the image signal processor from the shared memory for encoding using the encoding parameters.

13. The method of claim 1 , wherein generating, by the encoder, the encoded video using the encoding parameter comprises:

receiving video data that has been processed by the image signal processor directly from a buffer of memory within a second stage of the image signal processor, where the buffer of memory stores less than a complete frame of the video data, for encoding using the encoding parameters.

14. The method of claim 1 , wherein determining the image indications comprises determining an activity variance metric for a block within a frame of the input video.

15. The method of claim 14 , wherein a determining the activity variance metric includes determining a sum of absolute differences for the block.

16. The method of claim 1 , wherein determining, by the image signal processor, image indications based on the input video comprises:

determining a difference block between corresponding blocks in successive frames of the input video; and

determining one or more activity variance metrics for the difference block.

17. The method of claim 16 , wherein determining a difference block between corresponding blocks in successive frames of the input video comprises:

applying local motion compensation to the corresponding blocks in successive frames of the input video; and

determining the difference block based on the local motion compensated blocks.

18. The method of claim 16 , wherein the one or more activity variance metrics include a sum of absolute differences between pixels in the difference block.

19. A method comprising:

accessing, by an image signal processor, an input video including a sequence of input frames;

determining, by the image signal processor, image indications based on the input video;

storing the image indications in a shared memory;

reading, by an encoder, the image indications from the shared memory;

determining, by the encoder, an encoding parameter based on the image indications;

generating, by the encoder, an encoded video using the encoding parameter, wherein generating the encoded video using the encoding parameter includes:

accessing video data that has been processed by the image signal processor directly from a buffer of memory within a second stage of the image signal processor, where the buffer of memory stores less than a complete frame of the video data, for encoding using the encoding parameters; and

outputting or storing, by the encoder, the encoded video.

20. A method comprising:

accessing, by an image signal processor, an input video including a sequence of input frames;

determining, by the image signal processor, image indications based on the input video;

storing the image indications in a shared memory;

reading, by an encoder, the image indications from the shared memory;

determining, by the encoder, an encoding parameter based on the image indications, wherein determining, the image indications based on the input video includes:

determining a difference block between corresponding blocks in successive frames of the input video; and

determining one or more activity variance metrics for the difference block;

generating, by the encoder, an encoded video using the encoding parameter; and

outputting or storing, by the encoder, the encoded video.

Assignments (6)
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 →
SECURITY INTEREST Recorded Feb 22, 2017
From: GOPRO, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 041777/0440 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 23, 2016
From: DOUADY-PLEVEN, BRUNO CÉSAR; DOSHI, SANDEEP
To: GOPRO, INC.
Reel/Frame 040409/0757 →
Cited By (4)
US 12,335,483 US 12,382,164 US 12,418,661 US 12,541,671