Budget Encoding for Real-Time MP4 Streaming

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The traditional MP4 encoding process is not capable of real-time transcoding, compression, or optimization, as it requires a two-step process that involves generating frames and then arranging boxes in a specific order for streaming, which limits its ability to provide on-the-fly modifications.

Innovation Solution

The budget encoding technique allows for real-time processing by intercepting media downloads, predicting frame sizes, and adjusting encoding parameters to fit within a frame budget, enabling on-the-fly transcoding, compression, and optimization of MP4 files through a proxy server that generates an output moov box and pads frames to meet predicted sizes, allowing for streaming in a single pass.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If traditional two-step MP4 encoding process is used, then frame index can be generated accurately, but real-time processing capability is lost

Engineering Contradiction:
Improveframe index accuracyVSAvoidreal-time processing capability
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent applies preliminary action by predicting frame sizes and generating the moov box before the actual encoding process completes. The system calculates expected frame sizes based on previous frame data and generates the frame index in advance, allowing the moov box to be written before all video frames are encoded. This enables real-time streaming while maintaining accurate frame indexing through predictive calculations.

Inventive Principle:
Principle #10Preliminary action

2Measurement precision

If moov box is written after all frames are encoded, then accurate frame information is available, but streaming cannot begin until entire file is processed

Engineering Contradiction:
Improveframe size accuracyVSAvoidstreaming delay
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The system performs preliminary action by generating the moov box with predicted frame sizes before all frames are encoded. This allows the streaming process to begin immediately without waiting for complete encoding, reducing streaming delay while maintaining acceptable frame size accuracy through predictive algorithms.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent applies dynamics by making the frame size predictions adaptive. The system continuously updates its frame size predictions based on actual encoded frame data, allowing the moov box to be dynamically adjusted as encoding progresses. This dynamic approach maintains accuracy while enabling real-time streaming.

Inventive Principle:
Principle #15Dynamics

3Productivity

If frame sizes are predicted in advance, then real-time encoding is enabled, but additional processing steps are required

Engineering Contradiction:
Improvereal-time encoding capabilityVSAvoidprocessing steps
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies feedback by using actual encoded frame sizes to refine and update the frame size predictions. The system compares predicted sizes with actual sizes and adjusts its prediction algorithm accordingly. This feedback mechanism improves prediction accuracy over time while maintaining the real-time encoding capability, and the adaptive nature reduces the need for complex post-processing corrections.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9749713B2Budget encoding
Publication Date: 2017.08.29 OPTIMORPHIX INC
  • US9749713B2 patent drawing
  • US9749713B2 patent drawing
  • US9749713B2 patent drawing

AI summary

A method includes receiving streaming media data having a media frame and a frame index referencing the media frame; allocating a frame budget for an output media frame by estimating a frame size of the output media frame based on the frame index; generating the output media frame in real-time by processing the media frame based on first processing parameters and, if the allocated frame budget is greater than a frame size of the processed media frame, padding the processed media frame; and providing the output media frame.