Synchronized Jitter Buffers for Seamless Codec Switching
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing real-time communication technologies face challenges in managing jitter buffers during codec switches, leading to data loss and playback disruptions due to limitations in adapting to varying network conditions.
Innovation Solution
Maintaining separate jitter buffers for each codec, synchronized with the same playout timestamp, allows for seamless data reading and switching between codecs without flushing buffers, ensuring continuous playback and handling out-of-order packets.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If multiple codecs and associated jitter buffers are used for a real-time communication session, then adaptability to varying network conditions is improved, but data loss occurs during codec switches and the system cannot handle frequent codec switches
Solution Approach 1:
The system divides the single jitter buffer into multiple separate jitter buffers, with each buffer dedicated to a specific codec. This segmentation allows each buffer to independently manage its own codec's data without interference from codec switches, eliminating data loss during transitions while maintaining adaptability through multiple specialized buffers.
2Adaptability or versatility
If multiple codecs and associated jitter buffers are used for a real-time communication session, then adaptability to varying network conditions is improved, but the system cannot handle frequent codec switches
Solution Approach 1:
By segmenting the jitter buffer system into multiple codec-specific buffers, the system eliminates the need to flush or reconfigure buffers during codec switches. Each buffer independently handles its designated codec's data stream, allowing frequent codec switches to occur without disrupting the buffer management process, thus improving the ability to handle frequent switches.
3Device complexity
If a single codec and associated jitter buffer are used for a real-time communication session, then device complexity is reduced, but adaptability to varying network conditions is limited
Solution Approach 1:
The system implements a universal jitter buffer management architecture where multiple jitter buffers operate under a single synchronized playout timestamp mechanism. This multi-functional design allows the system to handle multiple codecs simultaneously while maintaining unified time management, providing adaptability to varying network conditions without proportionally increasing overall system complexity.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
Techniques are described for managing synchronized jitter buffers for streaming data (e.g., for real-time audio and/or video communications). A separate jitter buffer can be maintained for each codec. For example, as data is received in network packets, the data is added to the jitter buffer corresponding to the codec that is associated with the received data. When data needs to be read, the same amount of data is read from each of the jitter buffers. In other words, at each instance where data needs to be obtained (e.g., for decoding and playback), the same amount of data is obtained from each of the jitter buffers. In addition, the multiple jitter buffers use the same playout timestamp that is synchronized across the multiple of jitter buffers.