SIMD Video Transform Processor for Faster H.264 Compression

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current implementations of the H.264 video compression standard are inefficient, particularly in software-based solutions, which require numerous processor cycles for forward and inverse transformations, and lack the agility of hardware-based solutions.

Innovation Solution

A video processor is designed to perform forward and inverse transformations using Single Instruction Multiple Data (SIMD) instructions, with the transformation matrices hardwired into hardware, allowing for efficient 1-D and 2-D transformations in fewer processor cycles by transposing data during the writeback process, and incorporating Hadamard transforms for enhanced compression.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If software-based implementations of H.264 standard are used, then flexibility and adaptability are maintained, but processing speed and efficiency deteriorate due to numerous processor cycles required

Engineering Contradiction:
ImproveflexibilityVSAvoidprocessing speed
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent replaces the mechanical software-based processing system with a hardware-based video processor that uses SIMD (Single Instruction Multiple Data) architecture. This substitution enables parallel processing of multiple data elements simultaneously, dramatically improving processing speed while maintaining the flexibility of programmable hardware through configurable transform kernels that can be loaded with different transformation matrices.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Productivity

If hardware-based solutions are used, then processing speed improves, but adaptability and flexibility are lost

Engineering Contradiction:
Improveprocessing speedVSAvoidflexibility
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The video processor implements dynamic adaptability through configurable transform kernels that can be loaded with different transformation matrices (e.g., DCT, DST, Hadamard) via memory interfaces. This allows the fixed hardware architecture to dynamically adapt to different video coding standards and transformation requirements, maintaining flexibility while benefiting from hardware-accelerated processing speed.

Inventive Principle:
Principle #15Dynamics

3Reliability

If traditional software implementations perform forward and inverse transformations, then correctness is maintained, but processor cycle consumption increases

Engineering Contradiction:
ImprovecorrectnessVSAvoidprocessor cycles
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The transformation process is segmented into independent 1-D transform operations that can be applied separately to rows and columns of data blocks. The video processor executes these segmented operations using SIMD instructions, processing multiple elements in parallel while maintaining mathematical correctness. This segmentation enables accurate transformation results with significantly reduced processor cycle consumption compared to traditional sequential software implementations.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8798157B1Forward and inverse transformation of data for video compression
Publication Date: 2014.08.05 NVIDIA CORP
  • US8798157B1 patent drawing
  • US8798157B1 patent drawing
  • US8798157B1 patent drawing

AI summary

A video processor is described, which is useful for implementing a forward transform process, in compliance with the H.264 standard. The video processor includes an input, for receiving a block of image data. The image data is loaded into an internal register. In response to receiving a SIMD instruction, a multiplier, which incorporates the H.264 forward transform matrix in its associated hardware, processes the block of image data, and writes the resulting partially transformed pixel data back to the internal register, transposing the data during the process.