IP Library Granted Patent US 9,912,956
Granted Patent B2
US 9,912,956 · App. 15/665,129 · Granted Mar 6, 2018

Systems and methods for enhanced video encoding

Inventor: John Torres Fremlin (San Francisco, CA)
Assignee: Facebook, Inc.
H04N19/154H04N19/115H04N19/176H04N19/192
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 9,912,956
App. No.
15/665,129
Granted
Mar 6, 2018
Kind
B2
Abstract

Systems, methods, and non-transitory computer-readable media receive a source video having a source file size. A bit rate at which to encode the source video is determined. The source video is encoded at the determined bit rate to produce an encoded video having a file size less than the source file size. A video quality metric for the encoded video is determined. Whether or not the video quality metric for the encoded video is within an allowable deviation from a target quality metric is determined. The source video is encoded at another determined bit rate when the video quality metric for the encoded video is outside the allowable deviation from the target quality metric. Determining the bit rate and encoding the source video at the determined bit rate can repeat iteratively until the video quality metric for the encoded video is within the allowable deviation from the target quality metric.

Claims (48)

1. A computer-implemented method comprising:

determining, by a computer system, a bit rate at which to encode a source video having a source video file size;

encoding, by the computer system, the source video at the determined bit rate to produce an encoded video that has a file size less than the source video file size;

determining, by the computer system, whether a video quality metric for the encoded video is within an allowable deviation from a target quality metric;

obtaining, by the computer system, information indicative of an amount of detail included in the source video from the encoding of the source video at the determined bit rate;

determining, by the computer system, an optimized video that is similar to the source video, wherein a video quality metric for the optimized video is within the allowable deviation from the target quality metric; and

in response to determining, by the computer system, that the video quality metric for the encoded video is outside the allowable deviation from the target quality metric:

determining, by the computer system, another bit rate at which to encode the source video, based on the information indicative of the amount of detail included in the source video obtained from the encoding of the source video at the determined bit rate and based on historical data associated with the optimized video, the historical data including a bit rate used to encode the optimized video; and

encoding, by the computer system, the source video at the other determined bit rate.

2. The computer-implemented method of claim 1 , wherein the encoding the source video at the other determined bit rate is performed iteratively until the video quality metric for the encoded video is determined to be within the allowable deviation from the target quality metric.

3. The computer-implemented method of claim 2 , wherein the video quality metric for the encoded video is determined to be outside the allowable deviation when the video quality metric for the encoded video is substantially greater than the target quality metric, and wherein the other determined bit rate is selected to be lower than the bit rate at which the source video was encoded in a previous iteration.

4. The computer-implemented method of claim 2 , wherein the video quality metric for the encoded video is determined to be outside the allowable deviation when the video quality metric for the encoded video is substantially less than the target quality metric, and wherein the other determined bit rate is selected to be higher than the bit rate at which the source video was encoded in a previous iteration.

5. The computer-implemented method of claim 1 , wherein the video quality metric for the encoded video corresponds to at least one of a structural similarity (SSIM) index, a multi-scale structural similarity (MS-SSIM) index, or a peak signal-to-noise ratio (P SNR).

6. The computer-implemented method of claim 1 , wherein the target quality metric corresponds to a structural similarity (SSIM) index of 0.975.

7. The computer-implemented method of claim 1 , wherein the determining the bit rate further comprises selecting the bit rate using, at least in part, a root finding algorithm.

8. The computer-implemented method of claim 7 , wherein the root finding algorithm corresponds to at least one of Brent's method, Newton's method, a bisection method, a secant method, an interpolation method, or a combination thereof.

9. The computer-implemented method of claim 1 , wherein the determined bit rate at which to encode the source video is determined based on historical data.

10. The computer-implemented method of claim 1 , further comprising:

receiving an original video prior to receiving the source video; and

applying a first-pass encoding process to the original video to produce the source video having the source video file size.

11. A system comprising:

at least one processor; and

a memory storing instructions configured to instruct the at least one processor to perform:

determining a bit rate at which to encode a source video having a source video file size;

encoding the source video at the determined bit rate to produce an encoded video that has a file size less than the source video file size;

determining whether a video quality metric for the encoded video is within an allowable deviation from a target quality metric;

obtaining information indicative of an amount of detail included in the source video from the encoding of the source video at the determined bit rate;

determining an optimized video that is similar to the source video, wherein a video quality metric for the optimized video is within the allowable deviation from the target quality metric; and

in response to determining that the video quality metric for the encoded video is outside the allowable deviation from the target quality metric:

determining another bit rate at which to encode the source video, based on the information indicative of the amount of detail included in the source video obtained from the encoding of the source video at the determined bit rate and based on historical data associated with the optimized video, the historical data including a bit rate used to encode the optimized video; and

encoding the source video at the other determined bit rate.

12. The system of claim 11 , wherein the encoding the source video at the other determined bit rate is performed iteratively until the video quality metric for the encoded video is determined to be within the allowable deviation from the target quality metric.

13. The system of claim 12 , wherein the video quality metric for the encoded video is determined to be outside the allowable deviation when the video quality metric for the encoded video is substantially greater than the target quality metric, and wherein the other determined bit rate is selected to be lower than the bit rate at which the source video was encoded in a previous iteration.

14. The system of claim 12 , wherein the video quality metric for the encoded video is determined to be outside the allowable deviation when the video quality metric for the encoded video is substantially less than the target quality metric, and wherein the other determined bit rate is selected to be higher than the bit rate at which the source video was encoded in a previous iteration.

15. The system of claim 11 , wherein the video quality metric for the encoded video corresponds to at least one of a structural similarity (SSIM) index, a multi-scale structural similarity (MS-SSIM) index, or a peak signal-to-noise ratio (P SNR).

16. A non-transitory computer storage medium storing computer-executable instructions that, when executed, cause a computer system to perform a computer-implemented method comprising:

determining a bit rate at which to encode a source video having a source video file size;

encoding the source video at the determined bit rate to produce an encoded video that has a file size less than the source video file size;

determining whether a video quality metric for the encoded video is within an allowable deviation from a target quality metric;

obtaining information indicative of an amount of detail included in the source video from the encoding of the source video at the determined bit rate;

determining an optimized video that is similar to the source video, wherein a video quality metric for the optimized video is within the allowable deviation from the target quality metric; and

in response to determining that the video quality metric for the encoded video is outside the allowable deviation from the target quality metric:

determining another bit rate at which to encode the source video, based on the information indicative of the amount of detail included in the source video obtained from the encoding of the source video at the determined bit rate and based on historical data associated with the optimized video, the historical data including a bit rate used to encode the optimized video; and

encoding the source video at the other determined bit rate.

17. The non-transitory computer storage medium of claim 16 , wherein the encoding the source video at the other determined bit rate is performed iteratively until the video quality metric for the encoded video is determined to be within the allowable deviation from the target quality metric.

18. The non-transitory computer storage medium of claim 17 , wherein the video quality metric for the encoded video is determined to be outside the allowable deviation when the video quality metric for the encoded video is substantially greater than the target quality metric, and wherein the other determined bit rate is selected to be lower than the bit rate at which the source video was encoded in a previous iteration.

19. The non-transitory computer storage medium of claim 17 , wherein the video quality metric for the encoded video is determined to be outside the allowable deviation when the video quality metric for the encoded video is substantially less than the target quality metric, and wherein the other determined bit rate is selected to be higher than the bit rate at which the source video was encoded in a previous iteration.

20. The non-transitory computer storage medium of claim 16 , wherein the video quality metric for the encoded video corresponds to at least one of a structural similarity (SSIM) index, a multi-scale structural similarity (MS-SSIM) index, or a peak signal-to-noise ratio (P SNR).

Assignments (1)
CHANGE OF NAME Recorded Dec 2, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058299/0088 →
Continuity (2)
Continuation 14179499 · Feb 12, 2014
Related Publication 20170332082A1 · Nov 16, 2017