IP Library Granted Patent US 10,129,355
Granted Patent B2
US 10,129,355 · App. 15/789,471 · Granted Nov 13, 2018

Adaptive content optimization

Inventors: Srinivasan Venkatraman (Belmont, MA); Piotr Galecki (Lexington, MA); Thuy Fernandes (Acton, MA); Paul Alexander (Lexington, MA); John Sievers (Lynnfield, MA)
Assignee: AFFIRMED NETWORKS, INC.
H04L67/2828H04L43/0876H04L43/16H04L47/215H04L47/22H04L43/0882
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,129,355
App. No.
15/789,471
Granted
Nov 13, 2018
Kind
B2
Abstract

Systems and methods are described herein for adaptively transcoding media in a communications network such that computer processing resources are effectively utilized to deal with varying traffic patterns in the communications network. A computing device receives a request to transcode content and determines a first amount of tokens based on a number of CPU cores associated with the computing device, and a currently used amount of tokens. The computing device determines a second amount of tokens associated with transcoding the content and when the first amount of tokens is less than the second amount of tokens, the computing device bypasses transcoding for the content or adjusts a transcoding parameter to reduce a number of tokens associated with transcoding the content.

Claims (48)

1. A computerized method of adaptively transcoding media in a communications network such that computer processing resources are effectively utilized to deal with varying traffic patterns in the communications network, the method comprising:

receiving, by a computing device, a request to transcode content for delivery from a content provider to an end user device;

determining, by the computing device, a number of CPU cores associated with the computing device based on at least one of a number of virtual machines and a number of containers provisioned to transcode the content;

determining, by the computing device, a first amount of tokens based on:

a pooled amount of tokens associated with the number of CPU cores associated with the computing device, and

a currently used amount of tokens, the currently used amount of tokens being associated with a number of other transcoding requests being processed by the computing device;

determining, by the computing device, a second amount of tokens associated with transcoding the content based on at least one of a size of the content, a type of the content, a resolution of the content, and a frame rate of the content; and

when the first amount of tokens is less than the second amount of tokens:

bypassing transcoding for the content, or

adjusting a transcoding parameter to reduce a number of tokens associated with transcoding the content, wherein the reduced number of tokens is less than the first amount of tokens.

2. The computerized method of claim 1 , further comprising adjusting, by the computing device, the pooled amount of tokens based on at least one of:

a level of CPU usage associated with the computing device; and

an amount of available channel bandwidth.

3. The computerized method of claim 1 , wherein the currently used amount of tokens ranges from zero tokens to the pooled amount of tokens.

4. The computerized method of claim 1 , wherein determining the first amount of tokens further comprises subtracting the currently used amount of tokens from the pooled amount of tokens.

5. The computerized method of claim 1 , further comprising transcoding the requested content when the first amount of tokens is greater than or equal to the second amount of tokens.

6. The computerized method of claim 1 , wherein the type of the content comprises at least one of image, audio, text, and video.

7. The computerized method of claim 1 , wherein adjusting the transcoding parameter comprises reducing an amount of transcoding applied to the content.

8. A computing system of adaptively transcoding media in a communications network such that computer processing resources are effectively utilized to deal with varying traffic patterns in the communications network, the computing system comprising:

a processor;

a memory coupled to the processor and including instructions that, when executed by the processor, cause the processor to:

receive a request to transcode content for delivery from a content provider to an end user device;

determine a number of CPU cores associated with the computing system based on at least one of a number of virtual machines and a number of containers provisioned to transcode the content;

determine a first amount of tokens based on:

a pooled amount of tokens associated with the number of CPU cores associated with the computing system, and

a currently used amount of tokens, the currently used amount of tokens being associated with a number of other transcoding requests being processed by the computing system; and

determine a second amount of tokens associated with transcoding the content based on at least one of a size of the content, a type of the content, a resolution of the content, and a frame rate of the content;

when the first amount of tokens is less than the second amount of tokens: bypass transcoding for the content, or adjust a transcoding parameter to reduce a number of tokens associated with transcoding the content, wherein the reduced number of tokens is less than the first amount of tokens.

9. The computing system of claim 8 , wherein the processor is further caused to adjust the pooled amount of tokens based on at least one of:

a level of CPU usage associated with the computing system; and

an amount of available channel bandwidth.

10. The computing system of claim 8 , wherein the currently used amount of tokens ranges from zero tokens to the pooled amount of tokens.

11. The computing system of claim 8 , wherein to determine the first amount of tokens, the processor is further caused to subtract the currently used amount of tokens from the pooled amount of tokens.

12. The computing system of claim 8 , wherein the processor is further caused to transcode the requested content when the first amount of tokens is greater than or equal to the second amount of tokens.

13. The computing system of claim 8 , wherein the type of the content comprises at least one of image, audio, text, and video.

14. The computing system of claim 8 , wherein to adjust the transcoding parameter the processor is further caused to determine an amount of transcoding applied to the content.

15. A non-transitory computer readable medium having executable instructions operable to cause an apparatus to:

receive a request to transcode content for delivery from a content provider to an end user device;

determine a number of CPU cores associated with a computing device based on at least one of a number of virtual machines and a number of containers provisioned to transcode the content;

determine a first amount of tokens based on:

a pooled amount of tokens associated with the number of CPU cores associated with the computing device, and

a currently used amount of tokens, the currently used amount of tokens being associated with a number of other transcoding requests being processed by the computing device; and

determine a second amount of tokens associated with transcoding the content based on at least one of a size of the content, a type of the content, a resolution of the content, and a frame rate of the content;

when the first amount of tokens is less than the second amount of tokens: bypass transcoding for the content, or adjust a transcoding parameter to reduce a number of tokens associated with transcoding the content, when the reduced number of tokens is less than the first amount of tokens.

16. The non-transitory computer readable medium of claim 15 , wherein the apparatus is further caused to adjust the pooled amount of tokens based on at least one of: a level of CPU usage associated with the computing device; and

an amount of available channel bandwidth.

17. The non-transitory computer readable medium of claim 15 , wherein the currently used amount of tokens ranges from zero tokens to the pooled amount of tokens.

18. The non-transitory computer readable medium of claim 15 , wherein to determine the first amount of tokens, the apparatus is further caused to subtract the currently used amount of tokens from the pooled amount of tokens.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 28, 2020
From: AFFIRMED NETWORKS, INC.
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 054234/0746 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 11, 2018
From: VENKATRAMAN, SRINIVASAN; GALECKI, PIOTR; FERNANDES, THUY; ALEXANDER, PAUL; SIEVERS, JOHN
To: AFFIRMED NETWORKS, INC.
Reel/Frame 044592/0836 →
Continuity (2)
Provisional Application 62410929 · Oct 21, 2016
Related Publication 20180115626A1 · Apr 26, 2018