Video Channel Change System Using Buffering and Random Access Points
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Digital content distribution networks face latency issues when changing video channels, as receiving devices need to perform multiple steps like tuning, demodulating, and demultiplexing, leading to noticeable delays in displaying video streams.
Innovation Solution
Implementing a video channel change system that buffers transport stream packets for adjacent or frequently viewed channels, allowing for immediate display by identifying random access points, such as I-frames, and synchronizing with live streams using System Clock Reference (SCR)/Program Clock Reference (PCR) adjustments and fast-forwarding techniques to minimize delay.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If a receiving device performs tuning, demodulating, and demultiplexing steps to display a video stream, then the video channel can be changed, but latency is introduced causing noticeable delays
Solution Approach 1:
The system performs preliminary actions by buffering transport stream packets for adjacent or frequently viewed channels in advance. This allows the receiving device to have video data ready before a channel change is requested, eliminating the need to perform tuning, demodulating, and demultiplexing steps after the channel change occurs.
Solution Approach 2:
The system dynamically manages multiple video streams by selectively buffering content for adjacent channels and frequently viewed channels based on viewing history. This dynamic approach optimizes memory usage while ensuring that channel changes to these specific channels can occur with minimal or no latency.
2Loss of time
If transport stream packets are buffered for adjacent or frequently viewed channels, then channel change latency is reduced, but system complexity and memory requirements increase
Solution Approach 1:
Instead of buffering all channels uniformly, the system applies local quality by selectively buffering only adjacent channels and frequently viewed channels. This targeted approach reduces the overall buffer memory requirements and simplifies the buffer management logic compared to a universal buffering strategy.
Solution Approach 2:
The system uses the viewer's own viewing history to automatically determine which channels should be buffered. By analyzing frequently viewed channels and adjacent channel relationships, the system self-optimizes its buffer allocation without requiring manual configuration or complex external control.
3Speed
If random access points like I-frames are identified for immediate display, then video stream display speed is improved, but synchronization with live stream may be disrupted
Solution Approach 1:
The system uses SCR/PCR timestamps as feedback mechanisms to monitor and maintain synchronization between buffered video streams and live streams. By continuously comparing timestamps and adjusting playback timing, the system ensures that fast-forwarding to random access points does not cause audio-video desynchronization.
Solution Approach 2:
The system performs preliminary synchronization by buffering complete video frames including I-frames and their associated audio data together. This ensures that when fast-forwarding occurs, both audio and video are resynchronized to the same timestamp reference point, preventing desynchronization.
Data Source
AI summary
A video channel change system may include one or more processors and a memory. The one or more processors may receive first packets including first video frames associated with a first video channel and second packets including second video frames associated with a second video channel. The one or more processors may decode the first packets and display the first video frames while buffering, in a buffer, the second packets. The one or more processors may determine that a packet of the second packets includes a random access point without decoding the packet, discard the second packets from the buffer that were received prior to the packet, buffer additional second packets received subsequent to the packet, and decode the second packets stored in the buffer and display the second video frames included therein, in response to a request to change from the first video channel to the second video channel.


