Adaptive Jitter Buffer for VoIP Latency Control

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing adaptive jitter buffer systems for VoIP are slow to react to changes in frame jitter, leading to suboptimal call quality due to delays in adjusting latency, which can result in gaps and clipping in reproduced audio.

Innovation Solution

An improved adaptive jitter buffer system comprising a jitter buffer, delay calculation module, output timestamp index module, and histogram module, which dynamically adjusts jitter buffer latency based on calculated delay values and histogram analysis to optimize frame delivery and minimize latency variations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a large jitter buffer with significant delay is used, then the probability of buffer empty or overflow is reduced, but the call quality is degraded due to significant delay

Engineering Contradiction:
Improvebuffer stabilityVSAvoidcall delay
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The jitter buffer size is made dynamic rather than static. The buffer automatically adjusts its size based on real-time network conditions, expanding when jitter increases and contracting when jitter decreases. This dynamic adaptation allows the system to maintain buffer stability when needed while minimizing delay under normal conditions.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system implements feedback mechanisms that continuously monitor buffer status, frame arrival patterns, and jitter levels. This feedback information is used to automatically adjust the buffer size, creating a closed-loop control system that optimizes the balance between buffer stability and call delay without manual intervention.

Inventive Principle:
Principle #23Feedback

2Loss of time

If an adaptive jitter buffer is used to decrease delay when jitter decreases, then overall delay is reduced, but the system is slow to react to changes in frame jitter

Engineering Contradiction:
Improvecall delayVSAvoidreaction speed to jitter changes
Core Design Contradiction:
Loss of timeVSSpeed

Solution Approach 1:

The system performs preliminary analysis of incoming frame patterns and jitter trends to anticipate buffer needs before actual buffer underruns or overflows occur. By detecting early signs of jitter changes and pre-adjusting buffer parameters, the system avoids the latency associated with reactive adjustments after problems manifest.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The adaptive algorithm uses accelerated adjustment mechanisms that allow rapid buffer size changes when significant jitter variations are detected. Instead of gradual incremental adjustments, the system can 'rush through' parameter changes to quickly adapt to new network conditions, reducing the reaction time delay.

Inventive Principle:
Principle #21Skipping (Rushing through)

Data Source

PatentUS7379466B2In band signal detection and presentation for IP phone
Publication Date: 2008.05.27 INNOMEDIA PTE
  • US7379466B2 patent drawing
  • US7379466B2 patent drawing
  • US7379466B2 patent drawing

AI summary

A system for reducing jitter in a packet audio reception device comprises an output time stamp index, a delay calculation module, and a histogram module. The output time stamp index determines an initial output time stamp value upon receipt of a jitter buffer latency value and increments the output time stamp upon release of each of the frames by a jitter buffer. The delay calculation module calculates a delay value for each of the sequence of received frames. The histogram module periodically calculates a target delay value which, based on a buffered history of values representing the delay value of each of a fixed quantity of the most recently received frames, would have resulted in a predetermined portion of the fixed quantity of frames being dropped, and adjusting the jitter buffer latency value to a value equal to the target value.