Adaptive Jitter Buffer for Network Packet Timing

Solution Overview

Problem

Existing packet networks face challenges in delivering real-time data streams due to jitter and clock skew, leading to irregular packet arrival times and distorted playback, which impair the quality of voice and other media content.

Innovation Solution

A system with an adaptive jitter buffer and control unit that adjusts packet lengths and applies time-scale modifications to maintain consistent playback, using network statistics and clock synchronization to minimize delays and gaps, thereby improving the quality of media delivery.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a jitter buffer is used to compensate for packet arrival irregularities, then playback continuity is improved, but buffer overflows or underflows occur due to clock skew between transmitter and receiver

Engineering Contradiction:
Core Design Contradiction:
ReliabilityVSManufacturing precision

Solution Approach 1:

The jitter buffer is made dynamic by allowing its read and write rates to adjust based on detected network jitter conditions and clock skew. The buffer dynamically modifies packet lengths using time-scale modification algorithms, changing its operational characteristics in real-time to maintain synchronization between transmitter and receiver clocks while handling variable packet arrival rates.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the parameter of packet length within the jitter buffer to compensate for clock skew. By applying time-scale modification algorithms, packets are dynamically stretched or compressed in time domain, altering their duration parameter to match the receiver's clock rate and prevent buffer overflows or underflows caused by clock desynchronization.

Inventive Principle:
Principle #35Parameter changes

2Device complexity

If packet length is maintained fixed to preserve playout integrity, then packet structure simplicity is improved, but playback quality deteriorates due to unnatural breaks and gaps from jitter and clock skew

Engineering Contradiction:
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The system transitions from static fixed-length packets to dynamic variable-length packets. The jitter buffer dynamically adjusts packet lengths based on real-time network conditions and clock skew detection, allowing packets to be stretched or compressed to eliminate playback gaps while maintaining overall stream continuity and naturalness.

Inventive Principle:
Principle #15Dynamics

3Reliability

If adaptive algorithms are used to handle playout optimization, then playback quality is improved, but computational complexity increases

Engineering Contradiction:
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system implements feedback mechanisms where the jitter buffer continuously monitors packet arrival times, calculates network jitter statistics, and detects clock skew between transmitter and receiver. This feedback information drives adaptive time-scale modification algorithms that adjust packet lengths in real-time, optimizing playback quality while maintaining computational efficiency through targeted adjustments rather than complete reprocessing.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS8937963B1Integrated adaptive jitter buffer
Publication Date: 2015.01.20
  • US8937963B1 patent drawing
  • US8937963B1 patent drawing
  • US8937963B1 patent drawing

AI summary

A system is provided and includes a buffer, an interface, a processor, and an output device. The interface is configured to receive a packet from a network. The processor is configured to: determine a delay of the network in transmitting the packet; prior to storing the packet in the buffer, determine statistics of the buffer, and an amount the buffer is filled; determine a predetermined delay of the buffer based on the delay of the network, and the statistics; estimate an actual delay of the buffer for the packet based on the amount the buffer is filled; generate an error signal based on the predetermined delay and the actual delay; and based on the error signal, one of compress and expand the packet to change a first length of the packet to a second length. The output device is configured to output the packet based on the second length.