Dynamic Buffer Adjustment via Clock Rate Control

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Wireless headsets experience playback issues due to variations in packet arrival time (jitter) caused by interference, leading to skipping or silence in audio playback, and it is challenging to determine a single buffer size that is desirable for all environments and applications without affecting the user experience.

Innovation Solution

The size of the playback buffer can be dynamically adjusted by changing the rate at which streaming content is provided, achieved by slowing down or speeding up the clock signal, allowing seamless adjustments without modifying the application code, based on current system properties such as connection quality and user interaction.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a buffer is used to compensate for packet arrival time variation, then playback reliability is improved, but latency increases

Engineering Contradiction:
Improveplayback reliabilityVSAvoidlatency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent implements dynamic buffer size adjustment based on real-time network conditions. The buffer occupancy is continuously monitored and the buffer size is adaptively changed to match current jitter characteristics, allowing the system to maintain minimal buffer size under good conditions (reducing latency) while expanding buffer size when needed (maintaining reliability).

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the buffer size parameter dynamically based on measured network jitter. By adjusting this key parameter according to actual conditions rather than using a fixed value, the system optimizes the trade-off between reliability and latency for each specific operating context.

Inventive Principle:
Principle #35Parameter changes

2Adaptability or versatility

If a single buffer setting is used for all contexts, then device complexity is reduced, but adaptability to different environments deteriorates

Engineering Contradiction:
Improveadaptability to different environmentsVSAvoidbuffer management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system performs self-adjustment by automatically monitoring its own buffer occupancy and network conditions, then autonomously modifying buffer size without external intervention. This self-service approach enables adaptation to different environments while keeping the control logic relatively simple and localized.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent implements a feedback mechanism where buffer occupancy is continuously measured and fed back to the buffer management logic. This feedback loop enables the system to automatically adapt to changing network conditions and application requirements, achieving high adaptability through a relatively simple closed-loop control structure.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS11595316B2Adaptive and seamless playback buffer adjustment for streaming content
Publication Date: 2023.02.28 APPLE INC
  • US11595316B2 patent drawing
  • US11595316B2 patent drawing
  • US11595316B2 patent drawing

AI summary

A source device executing the application can transmit the streaming content to the playback device. The size of the buffer can be changed during the playback of streaming content. To perform the change seamlessly, embodiments can cause the application to provide the streaming content at an increased or decreased rate, depending on how the size of the playback buffer is to be changed. The new buffer size (i.e., smaller or larger amount) can provide improved playback of the streaming content, e.g., based on a latency-reliability tradeoff as determined using various factors (e.g., quality of connection between the devices). The changed rate for providing the streaming content can be achieved by slowing down or speeding up a clock signal that is provided to the application.