Video Frame Slicing for Balanced Multi-Core Encoding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Multi-core processors face inefficiencies in video encoding due to treating all segments of a video frame equally, leading to uneven processing times and overall slowdowns, especially in real-time applications where complexity varies significantly across different parts of the frame.

Innovation Solution

Dynamic slicing of video frames based on the complexity of each frame, using the complexity of the previous frame as a basis for slice pattern selection, and allocating these slices to multiple processor cores to optimize processing time.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If all segments of a video frame are treated equally in multi-core processing, then the processing approach is simple and uniform, but the overall encoding performance deteriorates due to uneven processing times across different frame segments

Engineering Contradiction:
Improvevideo encoding performanceVSAvoidprocessing distribution complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The video frame is divided into multiple segments or slices, each with different complexity levels. Different processor cores are assigned to different segments based on their processing capabilities and the segment complexity, allowing parallel processing while accounting for varying computational requirements of different frame portions.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Different processing strategies and resource allocations are applied to different segments of the video frame based on their local complexity characteristics. High-complexity segments receive more processing resources or are assigned to more capable cores, while low-complexity segments use fewer resources, optimizing overall encoding performance.

Inventive Principle:
Principle #3Local quality

2Loss of time

If dynamic slicing based on frame complexity is implemented, then processing time distribution is improved and performance increases, but the system complexity and computational overhead increase

Engineering Contradiction:
Improveprocessing time distributionVSAvoidslice pattern selection complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The complexity of the previous frame is analyzed in advance to determine the slice pattern for the current frame. This preliminary analysis allows the system to prepare an optimized slicing strategy before actual encoding begins, reducing runtime complexity while maintaining performance benefits.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system uses feedback from previous frame complexity analysis to dynamically adjust slice patterns. By continuously adapting the slicing strategy based on observed complexity patterns, the system optimizes processing time distribution while managing complexity through learned patterns rather than exhaustive real-time analysis.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS8615039B2Optimized allocation of multi-core computation for video encoding
Publication Date: 2013.12.24 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8615039B2 patent drawing
  • US8615039B2 patent drawing
  • US8615039B2 patent drawing

AI summary

Video encoding computations are optimized by dynamically adjusting slice patterns of video frames based on complexity of each frame and allocating multi-core threading based on the slices. The complexity may be based on predefined parameters such as color, motion, and comparable ones for each slice. Allocation is determined based on capacity and queue of each processing core such that overall computation performance for video encoding is improved.