IP Library Granted Patent US 10,306,250
Granted Patent B2
US 10,306,250 · App. 15/625,009 · Granted May 28, 2019

Video encoding with content adaptive resource allocation

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,306,250
App. No.
15/625,009
Granted
May 28, 2019
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 (80)

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 that the first portion is associated with a first level of complexity, wherein the analyzing the first portion comprises determining a first value associated with the first portion; and

analyzing the second portion to determine that the second portion is associated with a second level of complexity, wherein the analyzing the second portion comprises determining a second value associated with the second portion;

in parallel:

determining a first bitrate associated with the first level of complexity; and

determining a second bitrate associated with the second level of complexity, the second bitrate different than the first bitrate;

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

in response to determining that the first value associated with the first portion is within the threshold of 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.

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 level of complexity; and

determining a fourth bitrate associated with the second level of complexity, 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 , comprising:

before the encoding the first portion, 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

before the encoding the second portion, selecting the second bitrate from a plurality of second 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 second bitrates.

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 that the first portion is associated with a first level of complexity, wherein the analyzing the first portion comprises determining a first value associated with the first portion; and

analyzing the second portion to determine that the second portion is associated with a second level of complexity, wherein the analyzing the second portion comprises determining a second value associated with the second portion;

in parallel:

determining a first bitrate associated with the first level of complexity; and

determining a second bitrate associated with the second level of complexity, the second bitrate different than the first bitrate;

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

in response to determining that the first value associated with the first portion is within the threshold of 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 , the operations comprising:

before the encoding the first portion, 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

before the encoding the second portion, selecting the second bitrate from a plurality of second 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 second bitrates.

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 that the first portion is associated with a first level of complexity, wherein the analyzing the first portion comprises determining a first value associated with the first portion; and

analyzing the second portion to determine that the second portion is associated with a second level of complexity, wherein the analyzing the second portion comprises determining a second value associated with the second portion;

in parallel:

determining a first bitrate associated with the first level of complexity; and

determining a second bitrate associated with the second level of complexity, the second bitrate different than the first bitrate;

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

in response to determining that the first value associated with the first portion is within the threshold of 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.

18. The non-transitory machine readable medium of claim 17 , wherein the first bitrate and the second bitrate correspond to a first resolution.

19. The non-transitory machine readable medium of claim 18 , the operations comprising:

determining a third bitrate associated with the first level of complexity; and

determining a fourth bitrate associated with the second level of complexity, wherein the third bitrate and the fourth bitrate correspond to a second resolution different than the first 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 (6)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 2, 2018
From: YAHOO HOLDINGS, INC.
To: OATH INC.
Reel/Frame 045240/0310 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 23, 2017
From: YAHOO! INC.
To: YAHOO HOLDINGS, INC.
Reel/Frame 042963/0211 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2017
From: ZHOU, JIAN; DAI, CONGXIA; ZHAO, HERI; MA, ZHONGHUA; WU, XUMIN; CHEN, MICHAEL CHANG-PING; BHANDARE, SAGAR DATTATRAYA
To: YAHOO! INC.
Reel/Frame 042731/0800 →