Parallel Block Demultiplexing for Media Streaming Latency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
High-resolution media streaming faces delays due to the need for full file download before transcoding can start, and limited storage space on computing systems, especially when dealing with large files and multiplexed data types.
Innovation Solution
A system that provides a file interface allowing access to media files stored locally or remotely, enabling progressive downloading and transcoding in parallel threads, using a cache with a least recently used policy and configurable block sizes, to optimize data transfer and reduce storage needs.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of time
If the entire media file is downloaded before transcoding can start, then transcoding can be performed on complete high-resolution media, but users experience undesirable delay before viewing or listening to the media
Solution Approach 1:
The patent segments the media file into multiple blocks that can be downloaded and transcoded independently. Instead of waiting for the entire file to download, the system divides the file into manageable chunks, allowing parallel download and transcode operations on different segments, thereby reducing overall processing time and enabling earlier media playback.
Solution Approach 2:
The patent performs preliminary actions by starting the download and transcode processes before the complete file is available. The system begins downloading blocks and initiating transcode operations on available segments in advance, rather than waiting for full file completion, thus reducing the perceived delay for users.
2Quantity of substance
If large media files are downloaded to local storage, then complete media files are available for processing, but storage space on computing systems is taxed
Solution Approach 1:
The patent segments the media file into multiple smaller blocks that are downloaded and processed independently. This segmentation allows the system to work with only the portions of the file that are currently needed, rather than requiring the entire file to be stored locally, thus reducing the storage space requirement.
Solution Approach 2:
The patent extracts and processes only the necessary portions of the media file at any given time. Instead of storing and processing the complete file, the system extracts specific blocks as needed, performs transcoding on those extracted segments, and discards the original blocks after processing, thereby minimizing local storage requirements.
3Adaptability or versatility
If different data types are multiplexed in the same media file, then comprehensive media content is provided, but it becomes difficult to demultiplex and transcode the data during download
Solution Approach 1:
The patent segments the multiplexed media file into blocks and processes each block through demultiplexing and transcoding operations. By dividing the complex multiplexed file into smaller manageable segments, the system can apply demultiplexing algorithms to individual blocks more efficiently, reducing the overall complexity compared to processing the entire multiplexed file at once.
Solution Approach 2:
The patent introduces an intermediary processing stage where downloaded blocks are first demultiplexed to separate different data types (video, audio, etc.) before transcoding. This intermediary demultiplexing step acts as a mediator that simplifies the subsequent transcoding process by providing separated data streams, making the overall system more manageable despite handling multiple data types.
Data Source
AI summary
A first set of blocks is caused, by a first computer system, to be downloaded from a file located on a second computer system. A second set of blocks to download from the file is identified, based at least in part on the first set of blocks. A subset of the second set of blocks that are not in a cache of the first computer system are determined. For each determined block in the subset, an available thread is assigned from a thread pool to the determined block, the available thread is caused to download, in concurrence with blocks being downloaded by threads assigned to other determined blocks of the subset, the determined block from a second computer system into the cache of the first computer system.


