IP Library › Granted Patent US 10,356,406
Granted Patent B2
US 10,356,406 · App. 15/000,097 · Granted Jul 16, 2019

Real-time video encoder rate control using dynamic resolution switching

Inventor: Aki Kuusela (Palo Alto, CA)
Assignee: GOOGLE LLC
H04N19/124H04N19/146H04N19/167H04N19/59H04N19/85H04N19/90
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,356,406
App. No.
15/000,097
Filed
Jan 19, 2016
Granted
Jul 16, 2019
Kind
B2
Art Unit
2482
USPC
375/240.03
Abstract

Dynamic resolution switching achieves a target bitrate for single-pass and two-pass encoding of a video stream. A single-pass encoder determines whether an encoding bitrate for a frame meets a target bitrate. If not, a quantization parameter used to encode the frame is compared against minimum and maximum threshold values to determine whether the video resolution needs to be adjusted. A two-pass encoder encodes an input frame using a quantization parameter and determines whether video resolution for encoding the frame during a second pass may be adjusted based on the bitrate at which the input frame is encoded. The resolution may be adjusted based on encoder limitations with respect to a motion search area used to code a frame.

Claims (62)

1. An apparatus, comprising:

at least one processor configured to execute instructions stored in a non-transitory storage medium to:

identify a first frame of a video stream;

encode the first frame at a first bitrate representative of a quantization parameter;

compare the first bitrate to a target bitrate for the first frame and compare the quantization parameter to one of a minimum quantization threshold or a maximum quantization threshold, the minimum quantization threshold and the maximum quantization threshold corresponding to a resolution of the video stream, the minimum quantization threshold used when the first bitrate is less than the target bitrate, the maximum quantization threshold used when the first bitrate is greater than the target bitrate;

adjust at least one encoding parameter in response to comparing the first bitrate to the target bitrate and comparing the quantization parameter to the one of the minimum

quantization threshold or the maximum quantization threshold;

identify a second frame of the video stream;

encode the second frame at a second bitrate according to the adjusted at least one encoding parameter; and

transmit the encoded first frame and the encoded second frame in an output bitstream,

wherein, when the first bitrate is less than the target bitrate and the quantization parameter is less than or equal to the minimum quantization threshold, adjusting the at least one encoding parameter comprises:

increasing the resolution of the video stream;

increasing the quantization parameter; and

adjusting the minimum quantization threshold and the maximum quantization threshold based on the increased resolution, and

wherein, when the first bitrate is greater than the target bitrate and the quantization parameter is greater than or equal to the maximum quantization threshold, adjusting the at least one encoding parameter comprises:

decreasing the resolution of the video stream;

decreasing the quantization parameter; and

adjusting the minimum quantization threshold and the maximum quantization threshold based on the decreased resolution.

2. The apparatus of claim 1 , wherein, if the first bitrate is less than the target bitrate and the quantization parameter is greater than the minimum quantization threshold, adjusting the at least one encoding parameter comprises:

decreasing the quantization parameter.

3. The apparatus of claim 1 , wherein, if the first bitrate is greater than the target bitrate and the quantization parameter is less than the maximum quantization threshold, adjusting the at least one encoding parameter comprises:

increasing the quantization parameter.

4. The apparatus of claim 1 , the instructions further comprising instructions to identify one or more encoder limitations with respect to a motion search area in response to encoding the first frame,

wherein adjusting the at least one encoding parameter comprises:

decreasing the resolution of the video stream based on the one or more encoder limitations;

determining a reference location of the first frame at the decreased resolution; and

resetting a midpoint location of the motion search area based on the reference location of the first frame.

5. The apparatus of claim 1 wherein the at least one encoding parameter comprises at least one of the resolution of the video stream, the quantization parameter, the minimum quantization threshold, or the maximum quantization threshold.

6. An apparatus, comprising:

at least one processor configured to execute instructions stored in a non-transitory storage medium to:

identify an input frame of a video stream;

encode the input frame using an input quantization parameter;

identify one or more encoder limitations with respect to a motion search area of the encoded input frame;

adjust a resolution of the video stream based on the one or more encoder limitations;

determine a reference location of the input frame at the adjusted resolution;

reset a midpoint location of the motion search area based on the reference location of the input frame;

generate an encoded frame by encoding the input frame according to at least one of the adjusted resolution or the reset midpoint location; and

transmit the encoded frame in an output bitstream.

7. The apparatus of claim 6 , responsive to generating the number of bits, indicate wherein adjusting the resolution of the video stream based on the one or more encoder limitations comprises:

increasing the resolution of the video stream based on the one or more encoder limitations.

8. The apparatus of claim 6 , wherein adjusting the resolution of the video stream based on the one or more encoder limitations comprises:

decreasing the resolution of the video stream based on the one or more encoder limitations.

9. The apparatus of claim 6 , wherein at least one of the input quantization parameter or an encoding quantization parameter used to generate the encoded frame at the adjusted resolution is also adjusted based on the one or more encoder limitations.

10. The apparatus of claim 6 , wherein the input quantization parameter is a constant.

11. An apparatus, comprising:

at least one processor configured to execute instructions stored in a non-transitory storage medium to:

identify an input frame of a video stream;

encode the input frame at a first bitrate representative of a constant quantization parameter;

compare the first bitrate to a minimum target bitrate and a maximum target bitrate for the input frame;

in response to comparing the first bitrate to the minimum target bitrate and the maximum target bitrate, identify one or more encoder limitations with respect to a motion search area of the input frame;

adjust a resolution of the video stream based on the one or more encoder limitations;

determine a reference location of the input frame at the adjusted resolution;

reset a midpoint location of the motion search area based on the reference location of the input frame;

generate an encoded frame by encoding the input frame according to at least one of the adjusted resolution or the reset midpoint location; and

transmit the encoded frame in an output bitstream.

12. The apparatus of claim 11 , wherein, if the first bitrate is less than the minimum target bitrate, adjusting the resolution of the video stream comprises increasing the resolution of the video stream and generating the encoded frame comprises encoding the input frame at the increased resolution.

13. The apparatus of claim 11 , wherein, if the first bitrate is greater than the maximum target bitrate, adjusting the resolution of the video stream comprises decreasing the resolution of the video stream and generating the encoded frame comprises encoding the input frame at the decreased resolution.

14. The apparatus of claim 11 , wherein adjusting the resolution of the video stream based on the one or more encoder limitations comprises:

increasing the resolution of the video stream based on the one or more encoder limitations.

15. The apparatus of claim 11 , wherein adjusting the resolution of the video stream based on the one or more encoder limitations comprises:

decreasing the resolution of the video stream based on the one or more encoder limitations.

16. The apparatus of claim 11 , wherein adjusting the resolution of the video stream based on the one or more encoder limitations comprises adjusting at least one encoding parameter of the video stream based on the one or more encoder limitations, wherein the at least one encoding parameter comprises at least one of the constant quantization parameter, the minimum target bitrate, the maximum target bitrate, an encoding quantization parameter, or the resolution of the video stream.

Assignments (2)
CHANGE OF NAME Recorded Oct 5, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044129/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 22, 2016
From: KUUSELA, AKI
To: GOOGLE INC.
Reel/Frame 037787/0833 →
Continuity (1)
Related Publication 20170208328A1 · Jul 20, 2017
Cited By (2)
US 12,192,477 US 12,739,400