IP Library Granted Patent US 10,798,395
Granted Patent B2
US 10,798,395 · App. 16/422,000 · Granted Oct 6, 2020

Video encoding with content adaptive resource allocation

Inventors: Jian Zhou (Fremont, CA); Congxia Dai (Campbell, CA); Heri Zhao (Santa Clara, CA); Zhonghua Ma (San Jose, CA); Xumin Wu (Cupertino, CA); Michael Chang-Ping Chen (San Jose, CA); Sagar Dattatraya Bhandare (Bloomington, IN)
Assignee: Oath Inc.
H04N19/436H04N19/115H04N19/127H04N19/132H04N19/14H04N19/147H04N19/15H04N19/167H04N19/172H04N19/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 10,798,395
App. No.
16/422,000
Granted
Oct 6, 2020
Kind
B2
Abstract

One or more computing devices, systems, and/or methods for video encoding are provided. For example, a video file may be segmented into at least a first portion and a second portion. The first portion may be analyzed to determine that the first portion is associated with a first level of complexity, and the second portion may be analyzed to determine that the second portion is associated with a second level of complexity. A first bitrate associated with the first level of complexity may be determined, and a second bitrate associated with the second level of complexity may be determined. The first portion may be encoded at the first bitrate to generate a first encoded portion, and the second portion may be encoded at the second bitrate to generate a second encoded portion. The first encoded portion and the second encoded portion may be assembled to generate an optimized video file.

Claims (91)

1. A method for video encoding, comprising:

receiving a video file;

segmenting the video file into at least a first portion and a second portion;

in parallel:

analyzing the first portion to determine a first value associated with the first portion; and

analyzing the second portion to determine a second value associated with the second portion;

in parallel:

determining a first bitrate associated with the first portion; and

determining a second bitrate associated with the second portion;

at least one of:

determining whether the first value associated with the first portion is within a threshold of the second value associated with the second portion; or

determining whether the first bitrate associated with the first portion is within a second threshold of the second bitrate associated with the second portion;

in response to at least one of determining that the first value associated with the first portion is within the threshold of the second value associated with the second portion or determining that the first bitrate associated with the first portion is within the second threshold of the second bitrate associated with the second portion, in parallel:

encoding the first portion at the first bitrate to generate a first encoded portion; and

encoding the second portion at the second bitrate to generate a second encoded portion; and

assembling the first encoded portion and the second encoded portion to generate a second video file.

2. The method of claim 1 , wherein the first bitrate and the second bitrate correspond to a first resolution.

3. The method of claim 2 , comprising:

in parallel:

determining a third bitrate associated with the first portion; and

determining a fourth bitrate associated with the second portion, wherein the third bitrate and the fourth bitrate correspond to a second resolution different than the first resolution.

4. The method of claim 3 , wherein the second video file corresponds to the first resolution.

5. The method of claim 4 , comprising:

in parallel:

encoding the first portion at the third bitrate to generate a third encoded portion; and

encoding the second portion at the fourth bitrate to generate a fourth encoded portion; and

assembling the third encoded portion and the fourth encoded portion to generate a third video file, wherein the third video file corresponds to the second resolution.

6. The method of claim 5 , wherein the third bitrate is different than the first bitrate and the fourth bitrate is different than the second bitrate.

7. The method of claim 1 , wherein:

the analyzing the first portion comprises determining a first Structural SIMilarity (SSIM) associated with the first portion.

8. The method of claim 7 , wherein:

the analyzing the second portion comprises determining a second SSIM associated with the second portion.

9. The method of claim 1 , wherein:

the analyzing the first portion comprises determining a first Constant Rate Factor (CRF) associated with the first portion.

10. The method of claim 9 , wherein:

the analyzing the second portion comprises determining a second CRF associated with the second portion.

11. The method of claim 1 , wherein:

the analyzing the first portion comprises determining a first peak signal-to-noise ratio (PSNR) associated with the first portion.

12. The method of claim 11 , wherein:

the analyzing the second portion comprises determining a second PSNR associated with the second portion.

13. The method of claim 1 , wherein the first value is at least one of a first Structural SIMilarity (SSIM), a first Constant Rate Factor (CRF) or a first peak signal-to-noise ratio (PSNR), and the second value is at least one of a second SSIM, a second CRF or a second PSNR.

14. The method of claim 1 , wherein a first set of bitrates comprising the first bitrate and the second bitrate corresponds to a first resolution, the method comprising:

determining a third bitrate associated with the first portion;

determining a fourth bitrate associated with the second portion, wherein a second set of bitrates comprising the third bitrate and the fourth bitrate corresponds to a second resolution;

determining whether a difference between the first set of bitrates and the second set of bitrates corresponds to a difference in quality defined by one or more rules; and

in response to determining that the difference between the first bitrate and the second bitrate corresponds to the difference in quality, performing the encoding the first portion and the encoding the second portion.

15. A computing device comprising:

a processor; and

memory comprising processor-executable instructions that when executed by the processor cause performance of operations, the operations comprising:

receiving a video file;

segmenting the video file into at least a first portion and a second portion adjacent to the first portion;

in parallel:

analyzing the first portion to determine a first value associated with the first portion; and

analyzing the second portion to determine a second value associated with the second portion;

in parallel:

determining a first bitrate associated with the first portion, wherein the determining the first bitrate comprises selecting the first bitrate from a plurality of first bitrates in response to determining that the first bitrate is associated with at least a threshold increase in quality over another bitrate of the plurality of first bitrates; and

determining a second bitrate associated with the second portion;

based upon a comparison of the first value associated with the first portion and the second value associated with the second portion, in parallel:

encoding the first portion at the first bitrate to generate a first encoded portion; and

encoding the second portion at the second bitrate to generate a second encoded portion; and

assembling the first encoded portion and the second encoded portion to generate a second video file.

16. The computing device of claim 15 , wherein a first set of bitrates comprising the first bitrate and the second bitrate corresponds to a first resolution, the operations comprising:

determining a third bitrate associated with the first portion;

determining a fourth bitrate associated with the second portion, wherein a second set of bitrates comprising the third bitrate and the fourth bitrate corresponds to a second resolution;

determining whether a difference between the first set of bitrates and the second set of bitrates corresponds to a difference in quality defined by one or more rules; and

in response to determining that the difference between the first bitrate and the second bitrate corresponds to the difference in quality, performing the encoding the first portion and the encoding the second portion.

17. A non-transitory machine readable medium having stored thereon processor-executable instructions that when executed cause performance of operations, the operations comprising:

receiving a video file;

segmenting the video file into at least a first portion and a second portion;

in parallel:

analyzing the first portion to determine a first value associated with the first portion; and

analyzing the second portion to determine a second value associated with the second portion;

in parallel:

determining a first bitrate associated with the first portion; and

determining a second bitrate associated with the second portion, wherein a first set of bitrates comprising the first bitrate and the second bitrate corresponds to a first resolution;

in parallel:

determining a third bitrate associated with the first portion; and

determining a fourth bitrate associated with the second portion, wherein a second set of bitrates comprising the third bitrate and the fourth bitrate corresponds to a second resolution;

based upon a comparison of the first value associated with the first portion and the second value associated with the second portion, at least one of:

in parallel:

encoding the first portion at the first bitrate to generate a first encoded portion; and

encoding the second portion at the second bitrate to generate a second encoded portion; or

in parallel:

encoding the first portion at the third bitrate to generate a third encoded portion; and

encoding the second portion at the fourth bitrate to generate a fourth encoded portion; and

at least one of:

assembling the first encoded portion and the second encoded portion to generate a second video file; or

assembling the third encoded portion and the fourth encoded portion to generate a third video file.

18. The non-transitory machine readable medium of claim 17 , wherein the first resolution is different than the second resolution.

19. The non-transitory machine readable medium of claim 17 , wherein the second video file corresponds to the first resolution and the third video file corresponds to the second resolution.

20. The non-transitory machine readable medium of claim 17 , wherein the first value is at least one of a first Structural SIMilarity (SSIM), a first Constant Rate Factor (CRF) or a first peak signal-to-noise ratio (PSNR), and the second value is at least one of a second SSIM, a second CRF or a second PSNR.

Assignments (3)
PATENT SECURITY AGREEMENT (FIRST LIEN) Recorded Sep 29, 2022
From: YAHOO ASSETS LLC
To: ROYAL BANK OF CANADA, AS COLLATERAL AGENT
Reel/Frame 061571/0773 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 16, 2021
From: YAHOO AD TECH LLC (FORMERLY VERIZON MEDIA INC.)
To: YAHOO ASSETS LLC
Reel/Frame 058982/0282 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 26, 2020
From: OATH INC.
To: VERIZON MEDIA INC.
Reel/Frame 054258/0635 →