Block-Request HTTP Streaming With FEC for Fast Channel Switching
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current media streaming systems face challenges in providing uninterrupted playback and efficient bandwidth utilization, particularly in adapting to changing network conditions and minimizing content zapping time, while also ensuring robust and scalable delivery.
Innovation Solution
A block-request streaming system that uses HTTP streaming with erasure codes and FEC to efficiently decode media data, allowing clients to request and switch between different representations based on available bandwidth and network conditions, while minimizing storage and network resource usage.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of energy
If traditional HTTP streaming is used, then network bandwidth utilization is improved, but content zapping time increases and playback continuity cannot be guaranteed
Solution Approach 1:
The media content is divided into multiple blocks, where each block contains a complete set of source symbols and repair symbols. This segmentation allows the client to request and decode individual blocks independently, enabling fast content zapping without requiring the entire stream to be buffered, thus reducing content zapping time while maintaining efficient bandwidth utilization through parallel HTTP requests.
Solution Approach 2:
Source symbols and repair symbols are pre-encoded and organized into complete blocks before transmission. This preliminary encoding allows the client to receive a complete decodable block in a single HTTP request response, eliminating the need to wait for multiple packets or perform complex real-time encoding, thereby reducing content zapping time while maintaining efficient bandwidth usage.
2Reliability
If more data is buffered to ensure playback continuity, then playback reliability is improved, but storage resource consumption increases
Solution Approach 1:
By segmenting the stream into independent blocks with complete source and repair symbols, the system allows playback to continue from any block without requiring a large continuous buffer. The client can request blocks in parallel and decode them independently, ensuring playback continuity with minimal buffering, thus reducing storage resource consumption while maintaining reliability.
Solution Approach 2:
The system changes the parameter of block size and symbol distribution to optimize buffering requirements. By carefully designing the block structure with appropriate numbers of source and repair symbols, the system achieves playback continuity with smaller buffers, reducing storage resource consumption while maintaining reliability under varying network conditions.
3Reliability
If forward error correction is applied to all data, then transmission reliability is improved, but computational complexity increases
Solution Approach 1:
FEC is applied at the block level rather than continuously across the entire stream. Each block is independently encoded with source and repair symbols, allowing the client to decode only the specific blocks it needs. This segmented approach reduces computational complexity compared to continuous FEC encoding while maintaining transmission reliability through the repair symbols in each block.
Solution Approach 2:
The system applies FEC selectively by including repair symbols in each block without encoding the entire stream continuously. The client requests only the blocks it needs for playback, performing FEC decoding only on those specific blocks rather than processing the entire stream, thus reducing computational complexity while maintaining transmission reliability where needed.
4Speed
If multiple parallel HTTP requests are used, then delivery speed is improved, but network resource management complexity increases
Solution Approach 1:
The stream is segmented into independent blocks that can be requested in parallel through multiple HTTP connections. Each block is self-contained with complete encoding information, allowing the client to manage parallel requests independently without complex coordination, thus improving delivery speed while keeping network resource management complexity manageable through simple block-level parallelism.
Data Source
AI summary
A block-request streaming system provides for improvements in the user experience and bandwidth efficiency of such systems, typically using an ingestion system that generates data in a form to be served by a conventional file server (HTTP, FTP, or the like), wherein the ingestion system intakes content and prepares it as files or data elements to be served by the file server, which might or might not include a cache. A client device can be adapted to take advantage of the ingestion process as well as including improvements that make for a better presentation independent of the ingestion process. In the block-request streaming system, the an ingestion system generates data according to erasure codes and the client device, through various selection and timing of requests for media data and redundant data, can efficiently decode media to provide for presentations.


