Parallel HTTP Block Streaming With Erasure Coding for Timely Playback
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 ensuring timely delivery of media data, leading to issues like stalling and excessive storage requirements.
Innovation Solution
A block-request streaming system that uses erasure codes and intelligent client-side request management to efficiently decode media data, allowing for adaptive bit-rate adaptation and timely playback, while minimizing CPU usage and storage needs.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of time
If traditional streaming protocols are used to ensure timely delivery, then playback timeliness is improved, but network bandwidth utilization becomes inefficient
Solution Approach 1:
The media stream is divided into multiple blocks, each encoded with erasure codes to produce multiple coded blocks. The client can request and receive these blocks in parallel through multiple HTTP connections, allowing timely reconstruction of the media data without requiring sequential transmission, thus improving playback timeliness while efficiently utilizing available network bandwidth.
Solution Approach 2:
The system dynamically adjusts the degree of parallelism (number of simultaneous HTTP connections and blocks requested) based on available network bandwidth and client buffer status. By changing transmission parameters adaptively, the system optimizes bandwidth utilization while ensuring timely delivery of media data for uninterrupted playback.
2Speed
If multiple parallel HTTP connections are used to improve delivery speed, then content zapping time is reduced, but system complexity increases
Solution Approach 1:
The client autonomously manages multiple parallel HTTP connections by automatically requesting multiple coded blocks simultaneously, receiving responses, and reconstructing media data without requiring complex server-side coordination. The server simply responds to standard HTTP requests independently, significantly reducing system complexity while maintaining fast content zapping time.
3Reliability
If erasure codes are used to ensure reliable delivery, then playback reliability is improved, but computational overhead increases
Solution Approach 1:
The client requests more coded blocks than the minimum required for reconstruction (excessive action), allowing it to stop requesting once sufficient blocks are received to reconstruct the media data. This partial execution approach ensures reliable playback while minimizing unnecessary computational overhead from processing excess coded blocks.
4Loss of energy
If adaptive bit-rate adaptation is implemented to optimize bandwidth usage, then bandwidth efficiency is improved, but buffer management complexity increases
Solution Approach 1:
The client continuously monitors buffer status and available network bandwidth, using this feedback to dynamically adjust the rate of block requests and the degree of parallelism. When bandwidth is abundant, the client requests blocks more aggressively; when bandwidth is constrained or buffer is full, requests are throttled. This feedback-driven adaptation optimizes bandwidth efficiency while keeping buffer management straightforward.
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.


