Adaptive Exponential Moving Average Filtering for Codec Switching
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing communication systems face challenges in efficiently switching codecs based on noisy and rapidly varying available bandwidth, leading to sub-optimal communication quality due to spurious oscillations and delayed convergence.
Innovation Solution
An adaptive communication controller that dynamically selects or modifies filters based on the estimated available bandwidth, using a strong filter when the bandwidth is below or above certain thresholds and a weak filter when within those thresholds, to smooth the signal and facilitate timely codec switching.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Stability of the object's composition
If a strong filter is used to smooth the bandwidth signal, then the signal smoothing is improved, but the convergence delay increases
Solution Approach 1:
The filter strength is made dynamic by adaptively adjusting it based on the current bandwidth conditions. When bandwidth is stable, a stronger filter is applied for better smoothing. When bandwidth changes rapidly, the filter strength is reduced to minimize convergence delay. This dynamic adaptation resolves the contradiction by making the filter characteristics variable rather than fixed.
Solution Approach 2:
The filter parameters (such as alpha in exponential moving average) are changed based on the observed bandwidth signal characteristics. The system monitors the bandwidth signal and adjusts filter parameters accordingly, transforming the filter from a static component to an adaptive one that optimizes the trade-off between smoothing and response time.
2Speed
If a weak filter is used to reduce convergence delay, then the response speed is improved, but the signal smoothing deteriorates
Solution Approach 1:
The filter strength is made dynamic by adaptively adjusting it based on the current bandwidth conditions. When bandwidth is stable, a stronger filter is applied for better smoothing. When bandwidth changes rapidly, the filter strength is reduced to minimize convergence delay. This dynamic adaptation resolves the contradiction by making the filter characteristics variable rather than fixed.
3Adaptability or versatility
If codec switching is based on noisy bandwidth estimates, then the codec adaptation is improved, but the communication quality deteriorates due to spurious oscillations
Solution Approach 1:
The filter acts as an intermediary between the noisy bandwidth estimator and the codec selection logic. By processing the raw bandwidth estimates through the adaptive filter, the system obtains a smoothed, more reliable signal that accurately reflects true bandwidth conditions without spurious oscillations, enabling robust codec adaptation decisions.
Solution Approach 2:
The system implements feedback by continuously monitoring the filtered bandwidth signal and adjusting codec selection based on this processed information. The feedback loop uses the smoothed signal to make informed decisions, avoiding premature or erroneous codec switches that would occur with direct use of noisy estimates.
Data Source
Figure 1
Figure 2
Figure 3A
AI summary
A method (400) includes establishing communication between a first user device (10a) and a second user device (10b) using a first codec (180) and filtering an input signal (162) indicating an estimated unfiltered available bandwidth for the communications by applying a first filter (220a) when the estimated unfiltered available bandwidth is less than a first threshold value (310a) or greater than a second threshold value (310b) or a second filter (220b) when the estimated unfiltered available bandwidth is between and including the first and second threshold values. The method includes adaptively switching the current filter as a function of the filtered input signal (210) and the first and second threshold values. When the filtered input signal satisfies a channel bandwidth threshold, the method includes switching from using the first codec to using a second codec for the communication between the first and second user devices.