IP Library Granted Patent US 11,405,627
Granted Patent B2
US 11,405,627 · App. 17/062,980 · Granted Aug 2, 2022

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: YAHOO ASSETS LLC
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 11,405,627
App. No.
17/062,980
Granted
Aug 2, 2022
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 (81)

1. A method for video encoding, comprising:

receiving a video;

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

in parallel:

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

analyzing the second portion to determine a second complexity 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;

generating a first group of bitrate and complexity pairs for the first portion based upon the first complexity and the first bitrate;

generating an updated first group of bitrate and complexity pairs by:

comparing a first bitrate and complexity pair of the first group of bitrate and complexity pairs to a second bitrate and complexity pair of the first group of bitrate and complexity pairs; and

pruning the first bitrate and complexity pair from the first group of bitrate and complexity pairs responsive to determining that the first bitrate and complexity pair does not achieve a threshold increase in at least one of complexity or bitrate in comparison to the second bitrate and complexity pair of the first group of bitrate and complexity pairs;

selecting one or more bitrates from the updated first group of bitrate and complexity pairs;

encoding the first portion at the one or more bitrates to generate a first encoded portion; and

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

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 1 , comprising:

generating a second group of bitrate and complexity pairs for the second portion based upon the second complexity and the second bitrate.

5. The method of claim 4 , comprising:

generating an updated second group of bitrate and complexity pairs by pruning a third bitrate and complexity pair from the second group of bitrate and complexity pairs responsive to determining that the third bitrate and complexity pair does not achieve a second threshold increase in at least one of complexity or bitrate in comparison to a fourth bitrate and complexity pair of the second group of bitrate and complexity pairs.

6. The method of claim 5 , comprising:

selecting one or more second bitrates from the updated second group of bitrate and complexity pairs.

7. The method of claim 6 , comprising:

encoding the second portion at the one or more second bitrates to generate the second encoded portion.

8. 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;

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

analyzing the first portion to determine a first complexity associated with the first portion;

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

determining a first bitrate associated with the first portion;

determining a second bitrate associated with the second portion;

generating a first group of bitrate and complexity pairs for the first portion based upon the first complexity and the first bitrate;

generating an updated first group of bitrate and complexity pairs by:

comparing a first bitrate and complexity pair of the first group of bitrate and complexity pairs to a second bitrate and complexity pair of the first group of bitrate and complexity pairs; and

pruning the first bitrate and complexity pair from the first group of bitrate and complexity pairs based upon the comparison of the first bitrate and complexity pair to the second bitrate and complexity pair of the first group of bitrate and complexity pairs;

selecting one or more bitrates from the updated first group of bitrate and complexity pairs;

encoding the first portion at the one or more bitrates to generate a first encoded portion; and

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

9. The computing device of claim 8 , wherein the first bitrate and the second bitrate correspond to a first resolution.

10. The computing device of claim 9 , 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.

11. The computing device of claim 8 , comprising:

generating a second group of bitrate and complexity pairs for the second portion based upon the second complexity and the second bitrate.

12. The computing device of claim 11 , comprising:

generating an updated second group of bitrate and complexity pairs by pruning a third bitrate and complexity pair from the second group of bitrate and complexity pairs based upon a comparison of the third bitrate and complexity pair to a fourth bitrate and complexity pair of the second group of bitrate and complexity pairs.

13. The computing device of claim 12 , comprising:

selecting one or more second bitrates from the updated second group of bitrate and complexity pairs.

14. The computing device of claim 13 , comprising:

encoding the second portion at the one or more second bitrates to generate the second encoded portion.

15. 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;

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

analyzing the first portion to determine a first complexity associated with the first portion;

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

determining a first bitrate associated with the first portion;

determining a second bitrate associated with the second portion;

generating a first group of bitrate and complexity pairs for the first portion based upon the first complexity and the first bitrate;

generating an updated first group of bitrate and complexity pairs by:

comparing a first bitrate and complexity pair of the first group of bitrate and complexity pairs to a second bitrate and complexity pair of the first group of bitrate and complexity pairs; and

pruning the first bitrate and complexity pair from the first group of bitrate and complexity pairs based upon the comparison of the first bitrate and complexity pair to the second bitrate and complexity pair of the first group of bitrate and complexity pairs;

selecting one or more bitrates from the updated first group of bitrate and complexity pairs;

encoding the first portion at the one or more bitrates to generate a first encoded portion; and

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

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

17. The non-transitory machine readable medium of claim 15 , comprising:

generating a second group of bitrate and complexity pairs for the second portion based upon the second complexity and the second bitrate.

18. The non-transitory machine readable medium of claim 17 , comprising:

generating an updated second group of bitrate and complexity pairs by pruning a second bitrate and complexity pair from the second group of bitrate and complexity pairs.

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

selecting one or more second bitrates from the updated second group of bitrate and complexity pairs.

20. The non-transitory machine readable medium of claim 19 , comprising:

encoding the second portion at the one or more second bitrates to generate the second encoded portion.

Assignments (2)
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 →