Video Decoding Partitioning for Parallel Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current video decoding methods using multi-core processors are inefficient due to serialized dependencies from context-based entropy coding methods like CABAC, which limit the utilization of computing power by requiring sequential decoding and delaying the processing of macroblock rows until neighboring rows are fully decoded.

Innovation Solution

The method involves dividing a compressed video bitstream into partitions that can be decoded in parallel by multiple processors, where each partition is offset by a specified number of blocks to utilize output from other partitions, allowing for concurrent decoding and breaking up serialized dependencies.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of energy

If context-based entropy coding methods like CABAC are used to improve video compression efficiency, then compression efficiency is improved, but decoding speed deteriorates due to serialized dependencies requiring sequential decoding

Engineering Contradiction:
Improvecompression efficiencyVSAvoiddecoding speed
Core Design Contradiction:
Loss of energyVSProductivity

Solution Approach 1:

The patent divides the video data into multiple partitions (e.g., partition 0, partition 1, partition 2, partition 3) that can be decoded in parallel. Each partition contains specific macroblock rows that are offset from each other, allowing independent processing while maintaining necessary dependencies. This segmentation enables multi-core processors to work simultaneously on different partitions, resolving the contradiction between compression efficiency and decoding speed.

Inventive Principle:
Principle #1Segmentation

2Reliability

If sequential decoding is used to maintain decoding accuracy with context-based entropy coding, then decoding accuracy is preserved, but processing time increases due to serialized processing requirements

Engineering Contradiction:
Improvedecoding accuracyVSAvoidprocessing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent performs preliminary actions by pre-calculating and storing offset values for each partition before parallel decoding begins. Each partition is预先 assigned specific macroblock rows with appropriate offsets to ensure that when parallel decoding starts, all necessary data dependencies are already accounted for. This preliminary organization allows accurate decoding to proceed in parallel without sequential bottlenecks, reducing processing time while maintaining decoding accuracy.

Inventive Principle:
Principle #10Preliminary action

3Power

If multi-core processors are utilized to increase computing power utilization, then processing capacity is improved, but effectiveness is reduced due to serialized dependencies limiting parallel processing capability

Engineering Contradiction:
Improvecomputing power utilizationVSAvoidparallel processing effectiveness
Core Design Contradiction:
PowerVSProductivity

Solution Approach 1:

The patent introduces a new dimension of parallelism by organizing video data into multiple partitions across different processing dimensions. Instead of processing macroblock rows sequentially in a single dimension, the system creates parallel processing paths (partition 0, partition 1, partition 2, partition 3) that can be executed simultaneously on different processor cores. This dimensional transformation enables multi-core processors to effectively utilize their computing power by eliminating serialized dependencies while maintaining decoding accuracy.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Data Source

PatentUS20240080482A1System And Method For Decoding Using Parallel Processing
Publication Date: 2024.03.07 GOOGLE LLC
  • US20240080482A1 patent drawing
  • US20240080482A1 patent drawing
  • US20240080482A1 patent drawing

AI summary

An apparatus for decoding frames of a compressed video data stream having at least one frame divided into partitions, includes a memory and a processor configured to execute instructions stored in the memory to read partition data information indicative of a partition location for at least one of the partitions, decode a first partition of the partitions that includes a first sequence of blocks, decode a second partition of the partitions that includes a second sequence of blocks identified from the partition data information using decoded information of the first partition.