IP Library Granted Patent US 11,509,423
Granted Patent B2
US 11,509,423 · App. 16/996,799 · Granted Nov 22, 2022

Dynamic redundancy for multimedia content

Inventors: Daniel B. Pollack (San Jose, CA); Karthick Santhanam (San Jose, CA); Qian Sun (Cupertino, CA); Kevin Arthur Robertson (Sunnyvale, CA); Hsien-Po Shiang (Mountain View, CA); Erik Vladimir Ortega Gonzalez (Cupertino, CA); Christopher M. Garrido (Santa Clara, CA); Bradley F. Patterson (Morgan Hill, CA)
Assignee: Apple Inc.
H04L1/08H04L49/90H04L69/04
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,509,423
App. No.
16/996,799
Granted
Nov 22, 2022
Kind
B2
Abstract

A device implementing dynamic redundancy may include at least one processor configured to receive, from another device, packet reception data corresponding to video data previously provided for transmission from the device to the other device and determine, based at least in part on the packet reception data, an amount of redundancy to apply to video data provided for transmission to the other device. The at least one processor may be further configured to determine, based at least in part on the amount of redundancy, an encoding scheme for applying the redundancy to the video data. The at least one processor may be further configured to apply the amount of redundancy to the video data based at least in part on the encoding scheme to generate redundant data items and provide the video data and the redundant data items for transmission to the other device.

Claims (52)

1. A device comprising:

a memory; and

at least one processor configured to:

receive, from another device, packet reception data corresponding to video data packets previously transmitted from the device;

determine, based at least in part on the packet reception data and a video encoding quality of the video data, an amount of redundancy to apply to video data provided for transmission to the other device;

determine, based at least in part on the amount of redundancy, an encoding scheme for applying the redundancy to the video data;

apply the amount of redundancy to the video data based at least in part on the encoding scheme to generate redundant data items; and

provide the video data and the redundant data items for transmission to the other device.

2. The device of claim 1 , wherein the packet reception data comprises a packet loss rate corresponding to the video data previously provided for transmission.

3. The device of claim 1 , wherein the encoding scheme indicates an amount of the video data used to generate a respective redundant data item.

4. The device of claim 3 , wherein the at least one processor is further configured to:

separate the video data into chunks based at least in part on the determined amount of the video data used to generate the respective redundant data item; and

generate the respective redundant data item using the chunks of the video data.

5. The device of claim 3 , wherein the at least one processor is further configured to:

determine a change to the amount of redundancy based at least in part on an other packet reception data received from the other device;

determine, based at least in part on the changed amount of redundancy, another encoding scheme for applying the redundancy; and

applying the changed amount of the redundancy to the video data based at least in part on the other encoding scheme.

6. The device of claim 5 , wherein the amount of the video data used to generate the respective data item indicated by the encoding scheme differs from another amount of the video data used to generate the respective data item indicated by the other encoding scheme.

7. The device of claim 1 , wherein the at least one processor is further configured to:

determine that additional bandwidth is available for transmission of the video data; and

increase the amount of redundancy applied based on the additional bandwidth available and irrespective of the packet reception data.

8. A non-transitory machine readable medium comprising code that, when executed by one or more processors, causes the one or more processors to perform operations, the code comprising:

code to select, based at least in part on a packet loss rate, an encoding tier of a plurality of encoding tiers, wherein the encoding tier indicates both an amount of redundancy to apply to video data provided for transmission to another device and a video encoding quality for the video data;

code to determine, based at least in part on the amount of redundancy, an encoding scheme for applying the redundancy to the video data;

code to apply the amount of redundancy to the video data based at least in part on the encoding scheme to generate redundant data items; and

code to provide the video data and the redundant data items for transmission to the other device.

9. The non-transitory machine readable medium of claim 8 , wherein the encoding scheme indicates an amount of the video data used to generate a respective redundant data item.

10. The non-transitory machine readable medium of claim 9 , wherein the at least code further comprises:

code to separate the video data into chunks based at least in part on the determined amount of the video data used to generate the respective redundant data item; and

code to generate the respective redundant data item using the chunks of the video data.

11. The non-transitory machine readable medium of claim 8 , wherein the packet loss rate corresponds to the video data previously provided for transmission.

12. A method comprising:

receiving, by a device and from another device, packet reception data corresponding to video data packets previously transmitted from the device;

jointly determining, based at least in part on the packet reception data, an amount of redundancy to apply to video data provided for transmission to the other device and a video encoding quality for the video data;

determining, based at least in part on the amount of redundancy, an encoding scheme for applying the redundancy to the video data;

applying the amount of redundancy to the video data based at least in part on the encoding scheme to generate redundant data items; and

providing the video data and the redundant data items for transmission to the other device.

13. The method of claim 12 , wherein the packet reception data comprises a packet loss rate corresponding to the video data previously provided for transmission.

14. The method of claim 12 , wherein the encoding scheme indicates an amount of the video data used to generate a respective redundant data item.

15. The method of claim 14 , further comprising:

separating the video data into chunks based at least in part on the determined amount of the video data used to generate the respective redundant data item; and

generating the respective redundant data item using the chunks of the video data.

16. The method of claim 14 , further comprising:

determining a change to the amount of redundancy based at least in part on an other packet reception data received from the other device;

determining, based at least in part on the changed amount of redundancy, another encoding scheme for applying the redundancy; and

applying the changed amount of the redundancy to the video data based at least in part on the other encoding scheme.

17. The method of claim 16 , wherein the amount of the video data used to generate the respective data item indicated by the encoding scheme differs from another amount of the video data used to generate the respective data item indicated by the other encoding scheme.

18. The method of claim 12 , further comprising:

determining that additional bandwidth is available for transmission of the video data; and

increasing the amount of redundancy applied based on the additional bandwidth available and irrespective of the packet reception data.

19. The non-transitory machine readable medium of claim 8 , wherein each respective tier of the plurality of tiers indicates a respective amount of redundancy to apply to the video data and a respective video encoding quality for the video data.

20. The non-transitory machine readable medium of claim 8 , wherein the code further comprises code to encode the video data in accordance with the video encoding quality indicated by the selected encoding tier of the plurality of encoding tiers.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 21, 2020
From: POLLACK, DANIEL B.; SANTHANAM, KARTHICK; SUN, QIAN; ROBERTSON, KEVIN ARTHUR; SHIANG, HSIEN-PO; ORTEGA GONZALEZ, ERIK VLADIMIR; GARRIDO, CHRISTOPHER M.; PATTERSON, BRADLEY F.
To: APPLE INC.
Reel/Frame 053835/0965 →
Continuity (3)
Provisional Application 62907467 · Sep 27, 2019
Provisional Application 62897987 · Sep 9, 2019
Related Publication 20210075544A1 · Mar 11, 2021