Parallel Entropy Encoding for Video Compression

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Serial entropy encoding by a single processor consumes an unacceptably large amount of time in image and video compression, despite optimizations in other encoding steps.

Innovation Solution

Implementing a parallel entropy encoding system with multiple processors that independently encode chunks of image or video data and use buffers to store results, with a post-processor correcting data dependencies to assemble a compressed bit stream.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If serial entropy encoding is performed by a single processor, then data dependencies are handled correctly, but encoding time becomes unacceptably large

Engineering Contradiction:
Improvedata dependency handlingVSAvoidencoding time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent divides the entropy encoding task into separate segments: a parallel encoding phase where multiple processors independently encode blocks, and a post-processing phase where dependencies are resolved. This segmentation allows parallel processing to reduce encoding time while maintaining correctness through subsequent dependency correction.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary entropy encoding of all blocks in parallel before resolving data dependencies. By pre-computing the encoding for all blocks independently and then correcting dependencies in a subsequent post-processing phase, the system achieves both speedup and correctness.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If parallel entropy encoding is implemented with multiple processors, then encoding time is reduced, but device complexity increases

Engineering Contradiction:
Improveencoding speedVSAvoidprocessor configuration
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the encoding system into multiple independent processors for parallel block encoding, plus separate buffer structures for storing intermediate results. This segmentation enables parallel processing and improved productivity while keeping each individual processor simple.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces buffer structures as intermediary elements between the parallel processors and the final output. These buffers store the encoded data from multiple processors and enable the post-processing phase to assemble the correct output, simplifying the overall system architecture.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If multiple buffers are used to store encoding results, then parallel processing is enabled, but buffering requirements increase

Engineering Contradiction:
Improveparallel processing capabilityVSAvoidbuffering memory
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent segments the buffering into separate buffers for each parallel processor, where each buffer stores the encoded data for a specific block. This segmentation enables parallel processing while keeping each buffer relatively small, as each processor only needs to buffer data for its assigned block rather than the entire image.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS7869660B2Parallel entropy encoding of dependent image blocks
Publication Date: 2011.01.11 INTEL CORP
  • US7869660B2 patent drawing
  • US7869660B2 patent drawing
  • US7869660B2 patent drawing

AI summary

A method of entropy encoding image or video data may include entropy encoding a number of blocks independently and in parallel to generate a number of bit streams. At least one of the number of bit streams may include an assumed value in place of a value that would be determined by another bit stream. The method may also include selectively correcting the assumed value based on a value in another one of the number of bit streams. The number of bit streams may be combined into an output, entropy encoded bit stream corresponding to the number of blocks.