DSP SAD Unit for Dynamic Block Search and Motion Estimation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The computation of sum of absolute differences (SAD) between pixel blocks for determining motion vectors in video compression is computationally intensive, particularly due to the need for full search block matching using single horizontal pixel line searches for specific macro block sizes.

Innovation Solution

A digital signal processor that performs plural sums of absolute values in a single operation using two sets of rows with absolute value difference units and row summers, allowing for offset candidate pixels relative to reference pixels and employing mask inputs to configure different block sizes and search methods, including dual horizontal pixel line searches.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Power

If single horizontal pixel line search is used for full search block matching, then motion vector determination can be performed, but computational intensity and power consumption are excessively high

Engineering Contradiction:
Improvepower consumptionVSAvoidcomputational efficiency
Core Design Contradiction:
PowerVSProductivity

Solution Approach 1:

The pixel data is divided into multiple lanes (e.g., 4 lanes of 16 pixels each) that can be processed simultaneously. Each lane processes a subset of pixels in parallel, breaking down the single-line search into multiple concurrent operations that reduce overall computational burden per operation while maintaining full search capability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Multiple pixel lines are merged into a single wide operation by processing multiple horizontal pixel lines simultaneously using packed pixel data structures. This combines what would traditionally be separate sequential operations into one parallel operation, improving computational efficiency and reducing power consumption per unit of work.

Inventive Principle:
Principle #5Merging (Combining)

2Productivity

If SAD operations are performed sequentially for different block sizes, then accurate motion estimation is achieved, but processing time increases

Engineering Contradiction:
Improveprocessing speedVSAvoidprocessing time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The processor dynamically configures the block size and search area using control registers that can be programmed for different macro block sizes (16×16, 8×8, 4×4) and search ranges. This dynamic reconfiguration allows the same hardware to efficiently handle multiple block sizes without sequential processing, as the parallel architecture adapts to the required configuration.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

A single SAD computation unit is designed to handle multiple block sizes and search configurations through programmable control registers. Instead of having separate dedicated units for each block size, one universal unit can be configured via control registers to perform SAD calculations for 16×16, 8×8, 4×4 blocks and various search areas, reducing processing time through parallel execution capability.

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

Data Source

PatentUS9788011B2Faster and more efficient different precision sum of absolute differences for dynamically configurable block searches for motion estimation
Publication Date: 2017.10.10 TEXAS INSTRUMENTS INC
  • US9788011B2 patent drawing
  • US9788011B2 patent drawing
  • US9788011B2 patent drawing

AI summary

This invention is a digital signal processor form plural sums of absolute values (SAD) in a single operation. An operational unit performing a sum of absolute value operation comprising two sets of a plurality of rows, each row producing a SAD output. Plural absolute value difference units receive corresponding packed candidate pixel data and packed reference pixel data. A row summer sums the output of the absolute value difference units in the row. The candidate pixels are offset relative to the reference pixels by one pixel for each succeeding row in a set of rows. The two sets of rows operate on opposite halves of the candidate pixels packed within an instruction specified operand. The SAD operations can be performed on differing data widths employing carry chain control in the absolute difference unit and the row summers.