IP Library › Granted Patent US 12,348,399
Granted Patent B2
US 12,348,399 · App. 18/314,874 · Granted Jul 1, 2025

High frequency probing for network bandwidth estimation using video data in real-time video conference

Inventors: Hsien-Po Shiang (Mountain View, CA); Ming Jin (Saratoga, CA); Gabriel Nava Marino (Cupertino, CA); Gurtej Singh G. Chandok (Sunnyvale, CA); Hyeonkuk Jeong (Saratoga, CA); Padmavathy Bhooma (Los Gatos, CA); Christoph Paasch (Cupertino, CA); Christopher M. Garrido (San Jose, CA); David L Biderman (Los Gatos, CA); Erik Vladimir Ortega Gonzalez (Cupertino, CA)
Assignee: APPLE INC.
H04L43/12H04L43/50H04N7/15
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,348,399
App. No.
18/314,874
Granted
Jul 1, 2025
Kind
B2
Abstract

The embodiments described herein can dynamically adjust timing of network bandwidth estimations by adjusting a target frequency for sending probing sequences to one or more receivers of content. The receivers receive these probing sequences from a transmitter and respond to the transmitter with network bandwidth estimations. In one embodiment, the probing sequences can use the content itself to create the probing sequences. The embodiments can be used in video conferencing applications to control how a transmitter of content can adjust transmissions based upon the network bandwidth estimations. In one embodiment, a policy can be used at a transmitter to begin a video transmission with a high frequency target for sending probing sequences (with, e.g., smaller length probing sequences) and transition to a lower frequency target (with, e.g., longer length probing sequences) when network bandwidth deteriorates and then return to the higher frequency target when the network bandwidth improves.

Claims (42)

1. A non-transitory machine readable medium storing executable program instructions which when executed by a device containing a processing system cause the device to perform a method in the device that is transmitting data through one or more networks to one or more receivers, the method comprising:

packetizing content to be transmitted to the one or more receivers;

when a lapsed time since a most recent probing sequence was transmitted to the one or more receivers exceeds a predetermined time:

determining whether the packetized content awaiting transmission has a sufficient size for use as a probing sequence,

when the packetized content awaiting transmission has an insufficient size for use as a probing sequence, creating additional content to add to the packetized content to ensure the packetized content has the sufficient size, wherein the additional content comprises an error correction code and wherein the predetermined time is a maximum probe spacing time,

and

transmitting the packetized content.

2. The medium as in claim 1 , wherein the determining comprises:

monitoring whether content to be transmitted provides an adequate probing sequence for use in estimations that represent network bandwidth.

3. The medium as in claim 2 , wherein the monitoring compares the content to parameters that include a minimum probe size and a minimum number of packets for a probing sequence.

4. The medium as in claim 2 , wherein the monitoring causes a probing sequence to be sent based on a target probe spacing time.

5. The medium as in claim 1 , wherein the transmitting transmits the content and the additional added content as part of a probing sequence.

6. The medium as in claim 5 , wherein the probing sequence includes a marker indicating packets in the one or more first probing sequences are part of a same probing sequence to cause a receiver to estimate and report bandwidth estimation.

7. The medium as in claim 6 , wherein the probing sequence is created by packetizing content into the packets and adding the marker and one or more headers, and wherein the content is displayed at the receiver.

8. The medium as in claim 7 , wherein the content is used as part of the probing sequences, and wherein the first probing sequence frequency is associated with a first target spacing time and a first target probing sequence length and the second probing sequence frequency is associated with a second target spacing time and a second target probing sequence length.

9. The medium as in claim 8 , wherein the first probing sequence frequency is a high frequency, relative to the second probing sequence frequency, and wherein the first probing sequence frequency is greater than 10 probing sequences per second.

10. A method in the device that is transmitting data through one or more networks to one or more receivers, the method comprising:

packetizing content to be transmitted to the one or more receivers;

when a lapsed time since a most recent probing sequence was transmitted to the one or more receivers exceeds a predetermined time:

determining whether the packetized content awaiting transmission has a sufficient size for use as a probing sequence,

when the packetized content awaiting transmission has an insufficient size for use as a probing sequence, creating additional content to add to the packetized content to ensure the packetized content has the sufficient size, wherein the additional content comprises an error correction code and wherein the predetermined time is a maximum probe spacing time, and

transmitting the packetized content.

11. The method as in claim 10 , wherein the determining comprises:

monitoring whether content to be transmitted provides an adequate probing sequence for use in estimations that represent network bandwidth.

12. The method as in claim 11 , wherein the monitoring compares the content to parameters that include a minimum probe size and a minimum number of packets for a probing sequence.

13. The method as in claim 11 , wherein the monitoring causes a probing sequence to be sent based on a target probe spacing time.

14. The method as in claim 10 , wherein the transmitting transmits the content and the additional added content as part of a probing sequence.

15. The method as in claim 14 , wherein the probing sequence includes a marker indicating packets in the one or more first probing sequences are part of a same probing sequence to cause a receiver to estimate and report bandwidth estimation.

16. The method as in claim 15 , wherein the probing sequence is created by packetizing content into the packets and adding the marker and one or more headers, and wherein the content is displayed at the receiver.

17. The method as in claim 16 , wherein the content is used as part of the probing sequences, and wherein the first probing sequence frequency is associated with a first target spacing time and a first target probing sequence length and the second probing sequence frequency is associated with a second target spacing time and a second target probing sequence length.

18. The method as in claim 17 , wherein the first probing sequence frequency is a high frequency, relative to the second probing sequence frequency, and wherein the first probing sequence frequency is greater than 10 probing sequences per second.

19. A non-transitory machine readable medium storing executable program instructions which when executed by a device containing a processing system cause the device to perform a method in the device that is transmitting data through one or more networks to one or more receivers, the method comprising:

packetizing content to be transmitted to the one or more receivers;

when a lapsed time since a most recent probing sequence was transmitted to the one or more receivers exceeds a predetermined time:

determining whether the packetized content awaiting transmission has a sufficient size for use as a probing sequence,

when the estimated amount of available packetized content has the sufficient size, transmitting available packetized content in a new probing sequence, and

when the estimated amount of available packetized content has an insufficient size for use as the probing sequence:

creating additional content to add to the available packetized content, and

transmitting available packetized content and the created additional content in the new probing sequence.

20. The medium of claim 19 , wherein the additional content comprises an error correction code and wherein the predetermined time is a maximum probe spacing time.

21. The medium of claim 19 , wherein the lapsed time exceeds the predetermined time.

22. The medium of claim 19 , wherein the lapsed time is based on a refresh rate of the content.

Continuity (3)
Division 17304312 · Jun 17, 2021
Provisional Application 63041549 · Jun 19, 2020
Related Publication 20230283538A1 · Sep 7, 2023
References Cited (41)
US 8819512B1 · Wang · 2014 [cited by examiner]
US 10931725B2 · Garrido et al. · 2021 [cited by applicant]
US 11121954B2 · Vasseur · 2021 [cited by examiner]
US 20040243335A1 · Gunawardena · 2004 [cited by examiner]
US 20070217448A1 · Luo · 2007 [cited by examiner]
US 20080158339A1 · Civanlar · 2008 [cited by examiner]
US 20090164657A1 · Li · 2009 [cited by examiner]
US 20100153574A1 · Lee · 2010 [cited by examiner]
US 20110149751A1 · Li · 2011 [cited by examiner]
US 20110157298A1 · Huang · 2011 [cited by examiner]
US 20110161836A1 · Mu · 2011 [cited by examiner]
US 20110176429A1 · Johnsson · 2011 [cited by examiner]
US 20130051380A1 · Lundgren · 2013 [cited by examiner]
US 20140052852A1 · Dufour · 2014 [cited by examiner]
US 20140156735A1 · Yamasaki · 2014 [cited by examiner]
US 20140289405A1 · Tychon · 2014 [cited by examiner]
US 20150067137A1 · VerSteeg · 2015 [cited by examiner]
US 20150074285A1 · Gahm · 2015 [cited by examiner]
US 20150332155A1 · Mermoud · 2015 [cited by examiner]
US 20150334030A1 · Vasseur · 2015 [cited by examiner]
US 20150350604A1 · Roy · 2015 [cited by examiner]
US 20160112673A1 · Feng · 2016 [cited by examiner]
US 20160241410A1 · Lemoine · 2016 [cited by examiner]
US 20160344608A1 · Siemens · 2016 [cited by examiner]
US 20170078180A1 · Hagh · 2017 [cited by examiner]
US 20170093670A1 · Dinan · 2017 [cited by examiner]
US 20170251246A1 · Hua · 2017 [cited by examiner]
US 20180152384A1 · Kakadia · 2018 [cited by examiner]
US 20180212798A1 · Shang · 2018 [cited by examiner]
US 20180338338A1 · Baillargeon · 2018 [cited by examiner]
US 20190104163A1 · Garrido · 2019 [cited by examiner]
US 20190104426A1 · Singhal · 2019 [cited by examiner]
US 20190379591A1 · Boughzala · 2019 [cited by examiner]
US 20200052997A1 · Ramanathan · 2020 [cited by examiner]
US 20200273268A1 · Bhattacharyya · 2020 [cited by examiner]
US 20210168088A1 · Momchilov · 2021 [cited by examiner]
US 20210226879A1 · Indiresan · 2021 [cited by examiner]
US 20210367878A1 · Ramanathan · 2021 [cited by examiner]
US 20210385148A1 · Nainar · 2021 [cited by examiner]
US 20210399971A1 · Shiang · 2021 [cited by applicant]
US 20220006717A1 · Yu · 2022 [cited by examiner]