Video Encoding Parallelization via QP Dependency Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing video encoding formats, such as MPEG, face challenges in parallelizing the encoding process due to sequential dependencies in quantization parameter (QP) values, which hinder efficient data processing and memory usage.
Innovation Solution
The method involves determining the QP value for a block in a second group before finishing the encoding of the preceding first group, allowing parallel encoding by breaking dependencies and ensuring that encoded blocks in the first group indicate values that enable correct decoding of the second group's QP values.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of substance
If QP values are encoded dependently relative to preceding blocks in raster scan order, then data size is reduced, but parallelization of the encoding process becomes difficult
Solution Approach 1:
The patent divides the video data into multiple independent groups of blocks (e.g., groups of picture blocks or macroblocks). Within each group, QP values are encoded dependently relative to preceding blocks, but between groups, the dependency is broken by allowing each group to start with an absolute QP value or a QP value that does not depend on the previous group's blocks. This segmentation enables different groups to be encoded in parallel while maintaining data size reduction benefits within each group.
Solution Approach 2:
The patent determines and stores absolute QP values for the first block of each group in advance, before the actual encoding of that group begins. This preliminary determination of reference QP values for each group allows multiple groups to be prepared and encoded simultaneously without waiting for sequential QP value calculations, thus enabling parallelization while maintaining dependent encoding within groups.
2Productivity
If QP values are encoded as absolute values, then parallelization is easier, but data size increases
Solution Approach 1:
The patent applies different QP encoding strategies to different locations within the video data structure. Specifically, the first block of each group uses absolute QP encoding (or QP independent of previous groups), while subsequent blocks within the same group use dependent relative QP encoding. This local differentiation optimizes both parallelization capability (at group boundaries) and data size compression (within groups).
3Reliability
If encoding is performed sequentially in raster scan order, then QP dependency is maintained, but processing time increases
Solution Approach 1:
By segmenting the video data into multiple groups where QP dependency is maintained within groups but broken between groups, the patent enables parallel processing of multiple groups simultaneously. This segmentation maintains the reliability of QP encoding accuracy within each group while dramatically reducing total processing time through parallel execution of multiple groups.
Solution Approach 2:
The patent performs preliminary determination of QP values for the first block of each group, storing these reference values in advance. This allows the actual encoding of multiple groups to proceed in parallel without sequential dependency, reducing processing time while maintaining QP encoding accuracy through the pre-determined reference values.
Data Source
AI summary
The technology described herein facilitates parallel encoding of two groups of blocks of data of a sequence of blocks of data, whilst also facilitating the use of dependent encoding across the sequence of data blocks. This is achieved by allocating pairs of first and second groups of data blocks to separate encoding units, and determining an encoding parameter value to be used for encoding the first block of each second group of data blocks. For correct reconstruction of the image, it is ensured that a block belonging to the first group of data blocks of a pair of groups of data blocks is encoded with an encoding parameter value that will cause a decoder to use the determined encoding parameter value when decoding the first block of the second group.


