IP Library › Granted Patent US 12,641,320
Granted Patent B2
US 12,641,320 · App. 18/750,847 · Granted May 26, 2026

Multisource media delivery systems and methods

Inventors: Jeffrey Riedmiller (Novato, CA); Mingchao Yu (Sydney, AU); Jason Michael Cloud (Clayton, CA)
H04N21/60H04N21/2183
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 12,641,320
App. No.
18/750,847
Granted
May 26, 2026
Kind
B2
Abstract

A method for delivering media content to one or more clients over a distributed system is disclosed. The method may include generating a plurality of network-coded symbols from a plurality of original symbols representing a first media asset. The method may further include generating an original plurality of coded variants of the first media asset. The method may further include distributing a first coded variant of the original plurality of coded variants to a first cache on a first server device for storage in the first cache. The method may further include distributing a second coded variant of the original plurality of coded variants to a second cache on a second server device for storage in the second cache.

Claims (66)

1 . A method for receiving media content over a distributed system, the method comprising:

transmitting, to a plurality of caches, a request for consumption of a first media asset by a client device,

wherein a coded variant of the first media asset is stored in each cache of the plurality of caches,

wherein each coded variant includes one or more symbols that include at least one of (i) one or more original symbols of a plurality of original symbols representing the first media asset and (ii) one or more network-coded symbols of a plurality of network-coded symbols generated from the plurality of original symbols, downloading, with the client device, a first coded variant from a first cache of the plurality of caches via a first communication link;

downloading, with the client device, a second coded variant from a second cache of the plurality of caches via a second communication link different from the first communication link, wherein the second coded variant is received concurrently with the first coded variant;

decoding, with the client device, at least some of the one or more symbols included in at least one of the first coded variant and the second coded variant to recover the first media asset; and

outputting, with the client device, the first media asset on an output device.

2 . The method of claim 1 , further comprising:

determining, with the client device, that an amount of symbols that have been received from at least one of the first cache and the second cache exceeds a threshold amount of symbols, wherein the threshold amount of symbols is based on an ability of the client device to decode a full representation of the first media asset; and

in response to determining that the amount of symbols received exceeds the threshold amount of symbols, ceasing downloading, with the client device, of at least one of the first coded variant from the first cache and the second coded variant from the second cache.

3 . The method of claim 2 , wherein the threshold amount of symbols is based on a size of the first media asset.

4 . The method of claim 1 , further comprising:

determining, with the client device, that an amount of symbols transmitted from at least one of the first cache and the second cache to the client device exceeds a threshold amount of symbols, wherein the threshold amount of symbols is based on an ability of the client device decode a full representation of the first media asset once the amount of symbols are received by the client device; and

in response to determining that the amount of symbols transmitted from the at least one of the first cache and the second cache to the client device exceeds the threshold amount of symbols, canceling, with the client device, the request for consumption of the first media asset to stop transmission of further data from the at least one of the first cache and the second cache to the client device.

5 . The method of claim 1 , wherein the second communication link is different from the first communication link due to the first communication link and the second communication link including at least one of:

different channels of a single communication modality, and

different communication modalities.

6 . The method of claim 1 , wherein downloading of the first coded variant from the first cache and downloading of the second coded variant from the second cache occur without the first cache and the second cache receiving a portion of the first media asset after the request is received by the first cache and the second cache.

7 . The method of claim 1 , further comprising prior to transmitting the request for consumption of the first media asset:

discovering a plurality of available caches;

identifying the plurality of caches from the plurality of available caches based on determining that each cache of the plurality of caches includes a coded variant of the first media asset; and

connecting to each cache of the plurality of caches.

8 . The method of claim 1 , wherein decoding of the at least some of the one or more symbols included in at least one of the first coded variant and the second coded variant to recover the first media asset includes generating, with the client device and from the one or more symbols included in at least one of the first coded variant and the second coded variant, a plurality of original symbols that were partitioned from the first media asset by an origin device.

9 . The method of claim 8 , further comprising:

generating, with the client device and using network coding, one or more recoded symbols from the plurality of original symbols to create a recoded variant, wherein the recoded variant is functionally-equivalent to the first coded variant and the second coded variant such that an amount of any data that exceeds a threshold amount of data and that is drawn from any one or more of the recoded variant, the first coded variant, and the second coded variant allows for decoding of the amount of any data to recover the first media asset; and

storing, with the client device, the recoded variant for later transmission to at least one of another client device and another cache.

10 . The method of claim 9 , wherein generating the one or more recoded symbols from the plurality of original symbols to create the recoded variant comprises:

determining, with the client device, a storage budget of the client device; and

generating an amount of recoded symbols that will consume storage space less than or equal to the storage budget.

11 . The method of claim 1 , wherein transmitting the request for consumption of the first media asset comprises transmitting, with the client device, the request to the first cache and to the second cache.

12 . The method of claim 1 , wherein transmitting the request for consumption of the first media asset comprises:

transmitting, with the client device, the request to a server device; and

in response to receiving the request, transmitting with the server device the request to the plurality of caches including the first cache and the second cache.

13 . The method of claim 1 , further comprising:

downloading, with a server device communicably coupled to the client device, the first coded variant from the first cache via the first communication link;

downloading, with the server device, the second coded variant from the second cache via the second communication link; and

transmitting, with the server device, a plurality of symbols based on at least one of the first coded variant and the second coded variant to the client device via a third communication link that uses a different communication modality than either of the first communication link and the second communication link.

14 . The method of claim 13 , wherein the plurality of symbols includes at least one of:

coded symbols of the at least one of the first coded variant and the second coded variant that are not decoded by the server device before being transmitted to the client device; and

original symbols that were partitioned from the first media asset by an origin device and that have been generated by the server device through decoding of the coded symbols of the at least one of the first coded variant and the second coded variant.

15 . The method of claim 13 , further comprising:

receiving, with the client device, the plurality of symbols from the server device;

receiving, with the client device, a second plurality of symbols representing the first media asset from another cache; and

decoding, with the client device, at least some symbols of the plurality of symbols and the second plurality of symbols to recover the first media asset.

16 . The method of claim 15 , wherein the another cache is at least one of a local cache and a third cache of a second server device or a remote cache cluster.

17 . The method of claim 1 , wherein each coded variant includes at least one of:

a full-size coded variant that is configured to independently admit recovery of the first media asset through network decoding; and

a partial coded variant that is not configured to independently admit recovery of the first media asset through network decoding.

18 . The method of claim 1 , wherein each coded variant is functionally-equivalent such that an amount of any data that exceeds a threshold amount of data and that is drawn from any one or more coded variants allows for decoding of the amount of any data to recover the first media asset.

19 . The method of claim 1 , wherein the first cache is part of a first access network and wherein the second cache is part of a second access network different from the first access network; and

wherein downloading the first coded variant from the first cache includes communicating over the first access network, and wherein downloading the second coded variant from the second cache includes communicating over the second access network.

20 . The method of claim 19 , wherein the first access network includes a 3 rd Generation Partnership Project (3GPP) network, a fifth generation (5G) mobile network, a sixth generation (6G) mobile network, and another mobile network, and

wherein the second access network includes a 3 rd Generation Partnership Project (3GPP) network, a fifth generation (5G) mobile network, a sixth generation (6G) mobile network, and another mobile network.

21 . The method of claim 19 , wherein the client device is a mobile device, and further comprising:

connecting, with the client device, to the first access network to communicate over the first access network;

downloading, with the client device, the first coded variant from the first cache;

disconnecting, with the client device, from the first access network;

connecting, with the client device, to the second access network to communicate over the second access network; and

downloading, with the client device, the second coded variant from the second cache.

22 . The method of claim 21 , wherein disconnecting from the first access network and connecting to the second access network occurs in response to the client device moving from a first coverage area of the first access network to a second coverage area of the second access network.

23 . A non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of an electronic device including a network interface and an output device, the one or more programs including instructions for performing the method of claim 1 .

24 . An electronic device, comprising:

a network interface;

an output device;

one or more electronic processors; and

a memory storing one or more programs configured to be executed by the one or more electronic processors, the one or more programs including instructions for performing the method of claim 1 .

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 8, 2024
From: RIEDMILLER, JEFFREY; YU, MINGCHAO; CLOUD, JASON MICHAEL
To: DOLBY LABORATORIES LICENSING CORPORATION
Reel/Frame 068838/0841 →
Continuity (3)
Continuation 18256987
Provisional Application 63126265 · Dec 16, 2020
Related Publication 20240348891A1 · Oct 17, 2024
References Cited (26)
US 9258361B2 · Ansari · 2016 [cited by applicant]
US 9270299B2 · Luby · 2016 [cited by applicant]
US 9369541B2 · Medard · 2016 [cited by applicant]
US 9680902B2 · Yu · 2017 [cited by applicant]
US 10057742B2 · Condeixa · 2018 [cited by applicant]
US 10581554B2 · Yu · 2020 [cited by applicant]
US 11489938B2 · Cloud · 2022 [cited by examiner]
US 11509417B2 · Yu · 2022 [cited by applicant]
US 12081841B2 · Riedmiller · 2024 [cited by examiner]
US 20100232518A1 · Coleman, Sr. · 2010 [cited by examiner]
US 20130332621A1 · Keller · 2013 [cited by applicant]
US 20140143439A1 · Ramamurthy · 2014 [cited by applicant]
US 20160148618A1 · Huang · 2016 [cited by examiner]
US 20170201497A1 · Rhyu · 2017 [cited by applicant]
US 20180159915A1 · Westphal · 2018 [cited by applicant]
US 20180212713A1 · Yu · 2018 [cited by applicant]
US 20200260048A1 · Merg · 2020 [cited by examiner]
US 20200275171A1 · Cloud · 2020 [cited by examiner]
US 20200336540A1 · Xu · 2020 [cited by applicant]
CN 102427400B · 2014 [cited by applicant]
CN 105262564A · 2016 [cited by applicant]
CN 109347983B · 2021 [cited by applicant]
EP 1826980B1 · 2009 [cited by applicant]
JP 2004253922A · 2004 [cited by applicant]
Shuo-Yen Robert Li; Raymond W. Yeung; Ning Cai; “Linear Network Coding,” Published in: IEEE Transactions on Information Theory ( vol. 49, Issue: 2, Feb. 2003); pp. 371-381; Date of Publication: Feb. 6, 2003; ISSN Inform… [cited by applicant]
Te Sun Han; “Multicasting Multiple Correlated Sources to Multiple Sinks Over a Noisy Channel Network,” Published in: IEEE Transactions on Information Theory ( vol. 57, Issue: 1, Jan. 2011), pp. 4-13, Date of Publication… [cited by applicant]