Conditional FEC for Predictable Packet Loss Recovery
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing forward error correction techniques in network communications require significant bandwidth to send redundant data, which can be inefficient and increase latency, especially in real-time communication services like VoIP, where packet loss occurs frequently.
Innovation Solution
Conditional forward error correction (FEC) is implemented, where redundant copies of data are only sent if the previous portion of data cannot be predicted with sufficient quality at the receiving device, using parameters like pitch lag and spectral envelope parameters, and backward extrapolation is used to reconstruct lost data, reducing the need for redundant data transmission.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If forward error correction techniques are used to compensate for network packet loss, then the reliability of network communications is improved, but the bandwidth requirement increases significantly
Solution Approach 1:
The patent implements dynamic forward error correction by adjusting the amount of redundant data transmitted based on real-time network conditions and data characteristics. The system monitors packet loss patterns and adapts the FEC strategy, transmitting more redundant data when loss is high and less when conditions are good, thereby resolving the contradiction between reliability and bandwidth consumption
Solution Approach 2:
The system changes parameters such as the redundancy ratio and FEC code selection based on network conditions and data type. By dynamically adjusting these parameters, the system optimizes the balance between communication reliability and bandwidth usage, avoiding the static high-bandwidth approach of traditional FEC
2Reliability
If redundant forward error correction information is sent with every data packet, then data recovery reliability is improved, but network latency increases
Solution Approach 1:
Instead of sending redundant FEC data with every packet, the system employs periodic transmission of redundant information based on measured network conditions. Redundant data is transmitted at intervals determined by packet loss rates and data importance, reducing latency while maintaining adequate recovery capability
Solution Approach 2:
The system applies partial FEC by sending redundant data only for certain packets based on their importance and current network conditions, rather than universally for all packets. This selective approach reduces overall latency while maintaining data recovery reliability for critical information
3Reliability
If forward error correction is applied to all data transmissions, then communication reliability is improved, but the complexity of the communication system increases
Solution Approach 1:
The patent applies forward error correction selectively to specific data streams, packets, or regions based on their importance and vulnerability to loss. Critical data receives robust FEC protection while less critical data uses lighter or no FEC, reducing overall system complexity while maintaining reliability where it matters most
Data Source
Figure 1
Figure 2
Figure 3
AI summary
Techniques are described for performing conditional forward error correction (FEC) of network data. The techniques and solutions can be applied to suppress the transmission of redundant forward error correction information for data (e.g., frames of audio and/or video data) that can be effectively recovered at the receiving device (e.g., at the decoder). For example, a first computing device that is encoding and transmitting data (e.g., encoded audio data) to a second computing device can determine whether portions of data can be predicted (e.g., to a certain quality measure) at the second computing device. If the portions of data can be predicted, then the first computing device can skip sending redundant copies of the portions of data (e.g., can skip sending forward error correction information) in current network packets.