Fixed-Point SIMD Macroblock Rotation for Vectorized Bilinear Interpolation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Image rotation is computationally intensive and difficult to vectorize due to the non-linear trigonometric functions involved, leading to challenges in ordered memory access and bilinear interpolation.

Innovation Solution

Efficient bilinear interpolation of rotated pixels is achieved by combining several pixel permutations in novel ways, minimizing operations through vector loads, selections, and coefficient applications to simplify the process of vectorizing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If traditional image rotation methods using non-linear trigonometric functions are used, then image rotation functionality is achieved, but computational complexity and processing time increase significantly

Engineering Contradiction:
Improveimage rotation functionalityVSAvoidcomputational complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent pre-calculates rotation coefficients for various rotation angles and stores them in lookup tables before actual image rotation is needed. When rotation is required, the system simply retrieves pre-computed coefficients based on the desired rotation angle, avoiding real-time trigonometric calculations. This preliminary preparation significantly reduces the computational complexity during actual image rotation operations while maintaining full rotation functionality.

Inventive Principle:
Principle #10Preliminary action

2Measurement precision

If traditional bilinear interpolation methods are used for rotated pixel calculation, then accurate rotated pixel values are obtained, but the number of operations and memory access complexity increase

Engineering Contradiction:
Improverotated pixel accuracyVSAvoidprocessing speed
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent divides the image into fixed-size macroblocks (e.g., 16x16 or 32x32 pixels) and processes each macroblock independently through a series of structured steps: loading source macroblocks, calculating rotated pixel positions, performing bilinear interpolation, and storing results. This segmentation allows the complex bilinear interpolation process to be broken down into manageable, vectorizable operations that can be efficiently parallelized while maintaining pixel accuracy.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transforms the continuous bilinear interpolation calculation into a discrete fixed-point arithmetic process by using pre-computed coefficients and structured macroblock processing. This parameter transformation enables the use of efficient integer-based operations instead of floating-point trigonometric functions, significantly improving processing speed while maintaining sufficient accuracy for practical image rotation applications.

Inventive Principle:
Principle #35Parameter changes

3Measurement precision

If high resolution and color depth images are processed, then image quality is improved, but memory and processor resources required increase

Engineering Contradiction:
Improveimage qualityVSAvoidmemory resources
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

By dividing high-resolution images into smaller macroblocks, the system processes only a subset of pixels at any given time. Each macroblock can be loaded into processor registers and cache memory, allowing high-quality processing of large images without requiring the entire image to reside in memory simultaneously. This segmentation enables efficient handling of high-resolution, high color-depth images with limited memory resources.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS12380666B2Compressed fixed-point SIMD macroblock rotation systems and methods
Publication Date: 2025.08.05 FLIR UNMANNED AERIAL SYST AS
  • US12380666B2 patent drawing
  • US12380666B2 patent drawing
  • US12380666B2 patent drawing

AI summary

Various techniques are provided for efficient bilinear interpolation of rotated pixels. In one example, a method includes identifying a rotation angle for an image; performing a vector load of pixel positions for the image at the rotation angle; performing a vector load of rows of pixels associated with the pixel positions; performing a vector selection of a subset of pixels from the rows of pixels based on the identified pixel positions; performing a vector load of a set of coefficients at the rotation angle; and applying the set of coefficients to the subset of pixels to determine an updated value for the image. Additional methods and systems are also provided.