Dynamic Jitter Buffer Adjustment for Media Playback Latency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Networked digital media players face significant latency due to large jitter buffers required for complex media formats, which increases playback latency and is undesirable from a consumer perspective, and this latency is compounded during transport control operations like seeking.

Innovation Solution

Implementing a dynamic adjustment of jitter buffer parameters based on playback performance and historical data to optimize buffer size, allowing for a smaller buffer in most cases while increasing it during starvation and decreasing it when unnecessary to improve responsiveness.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a large jitter buffer is allocated to prevent decoder starvation for complex media formats, then playback reliability is improved, but playback latency increases dramatically

Engineering Contradiction:
Improvedecoder starvation preventionVSAvoidplayback latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The jitter buffer size is made dynamic rather than static. The system continuously monitors playback conditions and adjusts the buffer size in real-time, increasing it when starvation risk is detected and decreasing it when playback is smooth, thereby resolving the contradiction between reliability and latency

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The buffer size parameter is changed from a fixed large value to a variable parameter that adapts to actual playback needs. By modifying this key parameter dynamically based on monitored conditions, the system achieves both low latency and high reliability

Inventive Principle:
Principle #35Parameter changes

2Stability of the object's composition

If a large jitter buffer preroll allocation is used to ensure continuous playback, then playback stability is improved, but transport control operations such as seeking become slower

Engineering Contradiction:
Improveplayback stabilityVSAvoidseek operation latency
Core Design Contradiction:
Stability of the object's compositionVSLoss of time

Solution Approach 1:

The buffer size adapts dynamically during different playback phases. During seeking operations, the buffer is quickly adjusted to a smaller size to enable fast seeking, then increased again to maintain stability during normal playback, thus resolving the contradiction between stability and seek speed

Inventive Principle:
Principle #15Dynamics

3Loss of time

If a small constant jitter buffer size is used to reduce latency, then responsiveness is improved, but playback may starve for demanding media files

Engineering Contradiction:
Improveplayback latencyVSAvoiddecoder data availability
Core Design Contradiction:
Loss of timeVSReliability

Solution Approach 1:

The system implements feedback mechanisms that monitor decoder buffer levels and playback conditions. When the decoder approaches starvation, the feedback triggers an increase in jitter buffer size, ensuring data availability while maintaining low latency during normal operation

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The playback system self-adjusts the jitter buffer size based on its own monitored conditions without external intervention. The system serves itself by automatically detecting when buffer adjustments are needed and making appropriate changes to maintain optimal performance

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS8069260B2Dynamic buffer settings for media playback
Publication Date: 2011.11.29 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8069260B2 patent drawing
  • US8069260B2 patent drawing
  • US8069260B2 patent drawing

AI summary

Improved responsiveness and reduced latency of media playback on a media player is achieved by dynamic adjustment of storage parameters for the jitter buffer in the media player. Decreasing the size of the jitter buffer to a smaller constant value may provide acceptable, starvation-free playback in many cases. Playback of more demanding files requiring more buffered data for decode are addressed by dynamic adjustment of the jitter buffer parameters. An algorithmic or heuristic process is used to dynamically set the size of the jitter buffer before and during media playback. The jitter buffer size and/or preroll duration may be adjusted based upon the quality of playback experience. If playback starves, the jitter buffer size, starvation threshold, and/or preroll duration is increased before rebuffering and resuming playback. If the jitter buffer remains above a defined threshold for a given period of time, the jitter buffer size and/or preroll duration may be decreased, improving the responsiveness of startup and seek and trick mode operations.