Video Encoder Rate Control Using Macroblock Complexity Estimates

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing video encoders configured for multi-core systems face inconsistencies and latency in bitrate control due to dependency on final entropy coding output, leading to variable and unpredictable encoding performance.

Innovation Solution

A video encoder that applies quantization based on a complexity estimate for each macroblock, independent of outside quantized macroblocks, allowing for responsive bitrate control and consistent encoding quality by selecting the quantization degree for each macroblock in the current slice based on the expected entropy encoding complexity of a predetermined set of quantized part-encoded macroblocks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If bitrate feedback is obtained from final entropy coding output, then bitrate control accuracy is improved, but encoding latency and inconsistency increase

Engineering Contradiction:
Improvebitrate control accuracyVSAvoidencoding latency
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent applies preliminary action by estimating the bitrate contribution of each macroblock during the transform and quantization stage, before actual entropy coding occurs. This allows the rate control mechanism to make quantization parameter decisions based on predicted rather than actual bitrate values, eliminating the latency caused by waiting for final entropy coding output while maintaining adequate bitrate control accuracy.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If encoding is parallelized across multiple cores with stripe-based processing, then encoding speed is improved, but bitrate control consistency deteriorates

Engineering Contradiction:
Improveencoding speedVSAvoidbitrate control consistency
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent applies segmentation by dividing the frame into slices and further into stripes for parallel processing across multiple cores. Each processing element works independently on its assigned stripe, calculating complexity metrics and selecting quantization parameters without depending on other cores' processing results, thereby maintaining bitrate control consistency while achieving high parallelization efficiency.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements self-service by enabling each processing core to independently determine the complexity metric and select quantization parameters for its assigned macroblocks without requiring feedback or coordination with other cores. This self-contained approach eliminates timing-dependent variations in bitrate control while preserving parallel processing benefits.

Inventive Principle:
Principle #25Self-service

3Manufacturing precision

If quantization depends on all previous macroblocks in output bitstream order, then encoding accuracy is improved, but parallel processing capability is reduced

Engineering Contradiction:
Improveencoding accuracyVSAvoidparallel processing complexity
Core Design Contradiction:
Manufacturing precisionVSDevice complexity

Solution Approach 1:

The patent applies local quality by defining the complexity metric for each macroblock based only on a predetermined set of previously processed macroblocks within the same slice, rather than all previous macroblocks in the entire frame. This localized dependency approach maintains sufficient encoding accuracy for rate control decisions while enabling independent parallel processing of different slices and stripes.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS9906792B2Rate control in video encoding
Publication Date: 2018.02.27 ARM LTD
  • US9906792B2 patent drawing
  • US9906792B2 patent drawing
  • US9906792B2 patent drawing

AI summary

A video encoder and method of video encoding are provided. At an encoding stage a selected degree of quantization is applied to the encoding of macroblocks of the input video sequence and quantized part-encoded macroblocks are generated. Quantization circuitry in the encoding stage is configured to select the selected degree of quantization for each macroblock in a current slice in dependence on a complexity estimate indicative of the expected entropy encoding complexity of a predetermined set of the quantized part-encoded macroblocks defined for that macroblock.