Block-Request HTTP Streaming With FEC for Fast Channel Switching

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvebandwidth utilizationVSAvoidcontent zapping time
Core Design Contradiction:
Loss of energyVSLoss of time

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If more data is buffered to ensure playback continuity, then playback reliability is improved, but storage resource consumption increases

Engineering Contradiction:
Improveplayback continuityVSAvoidstorage resource consumption
Core Design Contradiction:
ReliabilityVSVolume of stationary object

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If forward error correction is applied to all data, then transmission reliability is improved, but computational complexity increases

Engineering Contradiction:
Improvetransmission reliabilityVSAvoidcomputational complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #16Partial or excessive action

4Speed

If multiple parallel HTTP requests are used, then delivery speed is improved, but network resource management complexity increases

Engineering Contradiction:
Improvedelivery speedVSAvoidnetwork resource management complexity
Core Design Contradiction:
SpeedVSDevice complexity

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.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9191151B2Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
Publication Date: 2015.11.17 QUALCOMM INC
  • US9191151B2 patent drawing
  • US9191151B2 patent drawing
  • US9191151B2 patent drawing

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.