Video Encoding Segmentation for I-Frame Placement

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current distributed video encoding systems struggle with accurately placing I-frames in the output video and efficiently allocating bits per frame, leading to suboptimal video quality and encoding performance, especially when dealing with variable complexity segments and camera movements.

Innovation Solution

The system employs a complexity analyzer to allocate bits per frame based on segment complexity, splits the video into overlapping segments for precise key frame placement, and uses multiple encoders to encode video segments, ensuring accurate I-frame placement and uniform quality across segments, while also performing image stabilization to address camera movements.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If video is split into multiple segments for distributed encoding, then encoding can be performed in parallel improving productivity, but accurate I-frame placement becomes difficult to achieve

Engineering Contradiction:
Improveencoding speedVSAvoidI-frame placement accuracy
Core Design Contradiction:
ProductivityVSManufacturing precision

Solution Approach 1:

The video is divided into multiple segments that can be encoded in parallel by different encoders. Each segment is assigned to a specific encoder, enabling simultaneous processing while maintaining the ability to control I-frame placement within each segment independently.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

I-frames are pre-planned and positioned at specific locations within each video segment before encoding begins. This preliminary planning ensures that when segments are combined, the I-frames appear at the desired locations in the final output video, maintaining temporal consistency across parallel encoding operations.

Inventive Principle:
Principle #10Preliminary action

2Device complexity

If bits are allocated uniformly across all video frames, then encoding is simpler, but video quality suffers in high complexity segments

Engineering Contradiction:
Improveencoding complexityVSAvoidvideo quality
Core Design Contradiction:
Device complexityVSManufacturing precision

Solution Approach 1:

The system analyzes the complexity of each video segment and allocates bits locally based on segment-specific characteristics. High complexity segments receive more bits while low complexity segments receive fewer bits, optimizing overall video quality without requiring uniform high-bitrate encoding across the entire video.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The bit allocation parameter is dynamically adjusted based on segment complexity analysis. The system changes the bitrate parameter for different segments according to their complexity, allowing efficient resource distribution that adapts to local video content requirements.

Inventive Principle:
Principle #35Parameter changes

3Loss of time

If encoding is performed on the user device, then upload time is reduced, but the device may be offline and unable to encode

Engineering Contradiction:
Improveupload timeVSAvoidencoding availability
Core Design Contradiction:
Loss of timeVSReliability

Solution Approach 1:

The system introduces an intermediary encoding approach where video can be encoded either on the user device when online, or on remote servers when the device is offline. This intermediary solution ensures that encoding can proceed regardless of device connectivity status, with results made available when the user next accesses the service.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10063872B2Segment based encoding of video
Publication Date: 2018.08.28 META PLATFORMS INC
  • US10063872B2 patent drawing
  • US10063872B2 patent drawing
  • US10063872B2 patent drawing

AI summary

A distributed video encoding system splits an input video into video segments. The video segments are encoded using multiple video encoding nodes. Prior to the process of splitting the sequence into video segments, the video is analyzed to generate a dependency map. Intelligent segmentation is performed using the dependency map so that each video segment includes all the video frames from which other video frames within that segment have been encoded in the input video. For example, picture headers are inspected to determine the temporal distance of the farthest past and future reference frames used for encoding frames of a video.