Vector Instructions for Integral Image Computation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The efficiency of calculating integral images, particularly when multiple surface areas with overlapping pixel values are involved, is hindered by the serial and scalar nature of existing methods, leading to inefficiencies and the need for approximations that may compromise accuracy.

Innovation Solution

The introduction of vector-friendly instruction formats and specific instructions that perform parallel ADD operations across input vector elements, allowing for the calculation of summations for different image area widths in a single machine cycle, thereby reducing the computational overhead.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If serial and scalar methods are used for integral image computation, then implementation simplicity is maintained, but computational efficiency deteriorates due to multiple machine cycles being required

Engineering Contradiction:
Improvecomputational efficiencyVSAvoidinstruction format complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the integral image computation into parallel vector operations. Instead of processing pixels serially through multiple machine cycles, the computation is divided into vector lanes that can be processed simultaneously within a single machine cycle, thereby improving productivity while managing complexity through structured segmentation

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transitions from scalar (1D) processing to vector (multi-dimensional) processing by introducing vector-friendly instruction formats with multiple lanes. This dimensional change allows multiple pixel operations to occur in parallel within the same machine cycle, resolving the efficiency- simplicity contradiction

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

2Measurement precision

If approximations are used to handle overlapping pixel values, then computational speed improves, but accuracy deteriorates

Engineering Contradiction:
Improvecomputation accuracyVSAvoidcomputation time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent performs preliminary organization of pixel data into vector-friendly formats before computation. By pre-arranging overlapping pixel values into appropriate vector lanes and using masking techniques to identify valid pixels, the system can accurately process all overlapping regions in parallel without requiring time-consuming sequential corrections, thus maintaining both accuracy and speed

Inventive Principle:
Principle #10Preliminary action

3Speed

If multiple machine cycles are used for precise integral image computation, then accuracy is maintained, but processing speed deteriorates

Engineering Contradiction:
Improveprocessing speedVSAvoidinstruction set complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent creates universal vector-friendly instructions that can handle multiple computation patterns (including overlapping regions, different surface areas, and various pixel formats) within a single instruction framework. This multi-functionality allows the processor to achieve high processing speeds through parallel execution while avoiding the need for complex, specialized instruction sequences for each case

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS9766897B2Method and apparatus for integral image computation instructions
Publication Date: 2017.09.19 INTEL CORP
  • US9766897B2 patent drawing
  • US9766897B2 patent drawing
  • US9766897B2 patent drawing

AI summary

A method is described that performing an image integral calculation by creating a second vector and creating a third vector. The second vector is created by executing a first instruction that adds alternating elements of a first vector to respective neighboring elements of the first vector and presents resulting summations into said second vector. The first instruction also passes through the respective neighboring elements to said second vector. The third vector is created by executing a second instruction that adds elements of one side of the second vector to an element of another side of the second vector and passes through the another side of the second vector.