IP Library Granted Patent US 12684156
Granted Patent B2
US 12684156 · App. 18/640,842 · Granted Jul 14, 2026

Reducing network bandwidth consumption using generically encoded media objects

Inventors: Daniel M. Newman (Littleton, MA); Mark D. Dankberg (Encinitas, CA)
Assignee: VIASAT, INC.
H04N19/463G06F21/6209H04N21/23106
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 12684156
App. No.
18/640,842
Filed
Apr 19, 2024
Granted
Jul 14, 2026
Kind
B2
Examiner
DANG, PHILIP
Art Unit
2488
USPC
375/240.12
Abstract

Described herein are ways to advantageously reduce bandwidth use between an internet service provider and its subscribers by re-encoding media objects to have a generic encoding that can be cached at subscriber devices. When a subscriber makes an authorized request for a media object from a content provider, a cached version of the generically encoded media object may be played by the subscriber even if the subscriber is not a customer of the content provider that originally provided the media object. This can eliminate the need for streaming a new copy of the media object from the content provider. The disclosed systems are configured to identify when differently-encoded media objects represent the same media object so that subscribers can play cached media objects rather than requiring each media object be streamed from different content providers.

Claims (49)

1 . A system comprising:

a network interface;

a non-transitory computer-readable medium; and

a processor communicatively coupled to the network interface and the non-transitory computer-readable medium, the non-transitory computer-readable medium comprising processor-executable instructions configured to cause the processor to:

receive a request from a first subscriber for a media object from a first content provider;

authorize access to the media object from the first content provider using credentials corresponding to the first subscriber;

request the media object from the first content provider;

instantiate, by a content-provider agent, a virtual screen session that executes a content-provider application or browser using the credentials corresponding to the first subscriber;

render, through the virtual screen session, the media object to decode content-provider-specific encryption and digital rights management protections and to generate rendered frames of the media object that are placed into video memory;

extract the rendered frames from the video memory and generically encode the rendered frames into a provider-independent encoding format that removes content-provider-specific encoding as to generate a first generically encoded media object;

transmit the first generically encoded media object to the first subscriber; and

transmit the first generically encoded media object to a second subscriber for storing in cache based on a determination that the second subscriber is likely to order the media object from a second content provider.

2 . The system of claim 1 , wherein the processor-executable instructions further cause the processor to receive a request from the second subscriber for the media object from the second content provider.

3 . The system of claim 2 , wherein the processor-executable instructions further cause the processor to authorize access to the media object from the second content provider using credentials corresponding to the second subscriber.

4 . The system of claim 3 , wherein the processor-executable instructions further cause the processor to request the media object from the second content provider.

5 . The system of claim 4 , wherein the processor-executable instructions further cause the processor to generically encode the media object to generate a second generically encoded media object by encoding the rendered frames of the media object from video memory.

6 . The system of claim 5 , wherein the processor-executable instructions further cause the processor to compare the first generically encoded media object to the second generically encoded media object to determine if they are identical media objects.

7 . The system of claim 6 , wherein the processor-executable instructions further cause the processor to instruct the second subscriber to play the first generically encoded media object from cache responsive to determining that the first generically encoded media object and the second generically encoded media object are identical media objects.

8 . The system of claim 6 , wherein the processor-executable instructions further cause the processor to transmit the second generically encoded media object to the second subscriber responsive to determining that the first generically encoded media object and the second generically encoded media object are not identical media objects.

9 . The system of claim 6 , wherein determining that the first generically encoded media object and the second generically encoded media object are identical media objects comprises comparing metadata of the first generically encoded media object to the second generically encoded media object.

10 . The system of claim 6 , wherein determining that the first generically encoded media object and the second generically encoded media object are identical media objects comprises comparing fingerprints of chunks of each media object.

11 . The system of claim 1 , wherein the processor-executable instructions further cause the processor to initiate the virtual screen session for rendering the media object from the first content provider.

12 . The system of claim 1 , wherein the processor-executable instructions further cause the processor to send information regarding interactions of the first subscriber with a website or application of the first content provider.

13 . The system of claim 12 , wherein the processor-executable instructions further cause the processor to generate an interface that mimics the website or application of the first content provider, the first subscriber interacting with the generated interface.

14 . A method for reducing bandwidth consumption comprising:

receiving a request from a first subscriber for a media object from a first content provider;

authorizing access to the media object from the first content provider using credentials corresponding to the first subscriber;

requesting the media object from the first content provider;

instantiating, by a content-provider agent, a virtual screen session that executes a content-provider application or browser using the credentials corresponding to the first subscriber;

rendering, through the virtual screen session, the media object to decode content-provider-specific encryption and digital rights management protections and to generate rendered frames of the media object that are placed into video memory;

extracting the rendered frames from the video memory and generically encoding the rendered frames into a provider-independent encoding format that removes content-provider-specific encoding so as to generate a first generically encoded media object;

transmitting the first generically encoded media object to the first subscriber;

transmitting the first generically encoded media object to a second subscriber for storing in cache based on a determination that the second subscriber is likely to order the media object from a second content provider;

receiving a request from the second subscriber for the media object from the second content provider;

authorizing access to the media object from the second content provider using credentials corresponding to the second subscriber;

requesting the media object from the second content provider;

instantiating, by the content-provider agent, a second virtual screen session that executes a content-provider application or browser using the credentials corresponding to the second subscriber;

rendering, through the second virtual screen session, the media object to generate second rendered frames that are placed into video memory;

extracting the second rendered frames from the video memory and generically encoding the second rendered frames into the provider-independent encoding format so as to generate a second generically encoded media object;

comparing the first generically encoded media object to the second generically encoded media object to determine if they are identical media objects;

instructing the second subscriber to play the first generically encoded media object from cache responsive to determining that the first generically encoded media object and the second generically encoded media object are identical media objects; and

transmitting the second generically encoded media object to the second subscriber responsive to determining that the first generically encoded media object and the second generically encoded media object are not identical media objects.

15 . The method of claim 14 , wherein determining that the first generically encoded media object and the second generically encoded media object are identical media objects comprises comparing metadata of the first generically encoded media object to the second generically encoded media object.

16 . The method of claim 14 , wherein determining that the first generically encoded media object and the second generically encoded media object are identical media objects comprises comparing fingerprints of chunks of each media object.

17 . The method of claim 14 further comprising initiating the virtual screen session for rendering the media object from the first content provider.

18 . The method of claim 14 further comprising sending information regarding interactions of the first subscriber with a website or application of the first content provider.

19 . The method of claim 18 further comprising generating an interface that mimics the website or application of the first content provider, the first subscriber interacting with the generated interface.

20 . The method of claim 14 further comprising identifying chunks of the second generically encoded media object that do not have a sufficiently similar fingerprint to the first generically encoded media object and storing the identified chunks as an advertisement in a cache.

21 . The method of claim 14 , wherein the media object is received from the first content provider in a first encoding and from the second content provider in a second encoding different from the first encoding.