IP Library Granted Patent US 12,267,553
Granted Patent B2
US 12,267,553 · App. 17/304,273 · Granted Apr 1, 2025

Systems and methods of video jitter estimation

Inventors: Luciano M. Verger (San Jose, CA); David L Biderman (Los Gatos, CA); Christopher M. Garrido (San Jose, CA); Karthick Santhanam (San Jose, CA); Brian T. Toombs (San Jose, CA); Gurtej Singh G. Chandok (Sunnyvale, CA); Joshua L Hare (Sunnyvale, CA); Patrick Miauton (Redwood City, CA); Ming Jin (Saratoga, CA); Bradley F. Patterson (San Luis Obispo, CA)
Assignee: APPLE INC.
H04N21/44004H04N21/44008H04N21/44209H04N21/458
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,267,553
App. No.
17/304,273
Granted
Apr 1, 2025
Kind
B2
Abstract

A method and apparatus of a device that uses a video jitter buffer to buffer the video frames for a received video stream is described. The device uses the video jitter buffer to estimate the delay variability of the frames and pick a target delay that will help harmonize the playback with minimal loss and delay. This is achieved by estimating the delay spread, which is the result of performing statistical analysis of the measured lags of the video frames received. The video jitter buffer provides target delay recommendation and reference frame information to the video player in order to anchor the playback and schedule the frames presentation time.

Claims (37)

1. A non-transitory machine-readable medium having executable instructions to cause one or more processing units to perform a method to determine a frame playback scheduling for a video stream, the method comprising:

receiving, on a device, the video stream, wherein the video stream includes a plurality of video frames;

determining a reference frame that is used to measure a target delay for the video stream, wherein the reference frame is a frame that is received after a jitter buffer fills up;

determining the target delay for the video stream, wherein the device uses the reference frame and the target delay to configure frame playback scheduling for the device by, computing a target delay using a percentile of a statistical distribution of multiple frame lag times between the reference frame and a subset of the plurality of video frames, wherein the statistical distribution includes a short time frame lag time distribution and a long time frame lag time distribution.

2. The non-transitory machine-readable medium of claim 1 , wherein the target delay is estimated using a statistical analysis of a plurality of adjusted lag times computed from the plurality of video frames.

3. The non-transitory machine-readable medium of claim 1 , further comprising:

computing a plurality of frame lag times for each of the plurality of video frames.

4. The non-transitory machine-readable medium of claim 3 , wherein the determining of the reference frame is based on at least the plurality of frame lag times.

5. The non-transitory machine-readable medium of claim 3 , wherein the determining of the reference frame further comprises:

computing a statistically meaningful minimum lag by using at least a kurtosis coefficient and a skewness coefficient when one of the plurality of frame lag times is less than a current minimum lag.

6. The non-transitory machine-readable medium of claim 3 , wherein a lag time from the plurality of frame lag times is statistically relevant when that lag time is greater than a minimum lag threshold.

7. The non-transitory machine-readable medium of claim 3 , further comprises:

adjusting the plurality of frame lag time to generate a plurality of adjusted lag times.

8. The non-transitory machine-readable medium of claim 7 , further comprising:

assigning each of the plurality of adjusted lag times to a bin based on a value of that adjusted lag time.

9. The non-transitory machine-readable medium of claim 8 , further comprising:

determining a cumulative distribution function based on the distribution of adjusted lag times.

10. The non-transitory machine-readable medium of claim 9 , wherein the determining of the target delay is from at least the cumulative distribution function.

11. The non-transitory machine-readable medium of claim 1 , wherein the video stream is associated with a mode based on at least a use of the video stream and the mode is used to dynamically adjust jitter buffer behavior for a video jitter buffer.

12. The non-transitory machine-readable medium of claim 11 , wherein the mode can be one of latency sensitive and erasure sensitive.

13. The non-transitory machine-readable medium of claim 11 , wherein the mode of the video stream is based on at least a content type of the video stream.

14. The non-transitory machine-readable medium of claim 1 , wherein at least one of the target delay and reference frame can change based on at least different lag times of the plurality of video frames.

15. The non-transitory machine-readable medium of claim 1 , wherein the device uses the reference frame to anchor frame playback.

16. The non-transitory machine-readable medium of claim 1 , wherein the short time frame lag time distribution has a shorter time window that the long time frame lag time distribution.

17. The non-transitory machine-readable medium of claim 1 , wherein a frame lag time distribution is a cumulative distribution function.

18. A method to determine a frame playback scheduling for a video stream, the method comprising:

receiving, on a device, the video stream, wherein the video stream includes a plurality of video frames;

determining a reference frame that is used to measure a target delay for the video stream, wherein the reference frame is a frame that is received after a jitter buffer fills up;

determining the target delay for the video stream, wherein the device uses the reference frame and the target delay to configure frame playback scheduling for the device by,

computing a target delay using a percentile of a statistical distribution of multiple frame lag times between the reference frame and a subset of the plurality of video frames, wherein the statistical distribution includes a short time frame lag time distribution and a long time frame lag time distribution.

19. The method of claim 18 , further comprising:

computing a plurality of frame lag times for each of the plurality of video frames.

20. The method of claim 19 , wherein the determining of the reference frame is based on at least the plurality of frame lag times.

21. The method of claim 20 , wherein the determining of the reference frame further comprises:

computing a statistically meaningful minimum lag by using at least a kurtosis coefficient and a skewness coefficient when one of the plurality of frame lag times is less than a current minimum lag.

22. The method of claim 18 , wherein the short time frame lag time distribution has a shorter time window that the long frame time lag time distribution.

23. The method of claim 18 , wherein a frame lag time distribution is a cumulative distribution function.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 20, 2021
From: JIN, MING
To: APPLE INC.
Reel/Frame 056915/0818 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 17, 2021
From: VERGER, LUCIANO M.; BIDERMAN, DAVID L.; GARRIDO, CHRISTOPHER M.; SANTHANAM, KARTHICK; TOOMBS, BRIAN T.; CHANDOK, GURTEJ SINGH G.; HARE, JOSHUA L.; MIAUTON, PATRICK; PATTERSON, BRADLEY F.
To: APPLE INC.
Reel/Frame 056575/0805 →
Continuity (2)
Provisional Application 63041663 · Jun 19, 2020
Related Publication 20210400338A1 · Dec 23, 2021
References Cited (17)
US 9014266B1 · Gu · 2015 [cited by examiner]
US 11184649B2 · Dunker · 2021 [cited by examiner]
US 20060088000A1 · Hannu · 2006 [cited by examiner]
US 20070019552A1 · Senarath · 2007 [cited by examiner]
US 20110022471A1 · Brueck · 2011 [cited by examiner]
US 20110299588A1 · Zhou · 2011 [cited by examiner]
US 20120039194A1 · Kure · 2012 [cited by examiner]
US 20130166769A1 · Chang · 2013 [cited by examiner]
US 20130282871A1 · Jung · 2013 [cited by examiner]
US 20150172197A1 · Sun · 2015 [cited by examiner]
US 20150207877A1 · Ito · 2015 [cited by examiner]
US 20150288570A1 · Astigarraga · 2015 [cited by examiner]
US 20150319076A1 · Vasseur · 2015 [cited by examiner]
US 20160142330A1 · Yang · 2016 [cited by examiner]
US 20160173919A1 · Iguchi · 2016 [cited by examiner]
US 20190007698A1 · Tanner · 2019 [cited by examiner]
US 20210243712A1 · Wen · 2021 [cited by examiner]