Multi-modal Warp Filter Reduces Memory Bandwidth

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional computer vision systems face inefficiencies in memory access due to limited memory bandwidth, as the memory subsystem is shared among multiple clients, leading to inefficient memory access when supporting arbitrary warp fields.

Innovation Solution

A multi-modal warp filter is implemented to reduce memory bandwidth by analyzing the warp field to determine the current mode of read modes, reading rectangular regions of an input image, and generating an output image by filtering the data with the warp field, thereby prioritizing and minimizing access requests to the arbiter.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a generic warp filter supports arbitrary warp fields, then adaptability is improved, but memory bandwidth is wasted

Engineering Contradiction:
Improvewarp field supportVSAvoidmemory bandwidth
Core Design Contradiction:
Adaptability or versatilityVSLoss of energy

Solution Approach 1:

The warp filter dynamically selects from multiple read modes (box mode, row mode, column mode, pixel mode) based on the characteristics of the input warp field. This dynamic adaptation allows the system to optimize memory access patterns for different warp field types, achieving both high adaptability and efficient memory bandwidth utilization without wasting resources.

Inventive Principle:
Principle #15Dynamics

2Loss of energy

If a warp filter supports only a restricted warp field, then memory bandwidth efficiency is improved, but adaptability deteriorates

Engineering Contradiction:
Improvememory bandwidthVSAvoidwarp field support
Core Design Contradiction:
Loss of energyVSAdaptability or versatility

Solution Approach 1:

The warp filter segments the problem by dividing warp field processing into multiple specialized modes (box mode for simple rectangular regions, row mode for horizontal strips, column mode for vertical strips, pixel mode for individual pixels). Each mode is optimized for specific warp field characteristics, allowing the system to handle diverse warp fields efficiently by selecting the appropriate segment-specific mode.

Inventive Principle:
Principle #1Segmentation

3Loss of energy

If multiple read modes are implemented, then memory bandwidth efficiency is improved, but device complexity increases

Engineering Contradiction:
Improvememory bandwidthVSAvoidread mode implementation
Core Design Contradiction:
Loss of energyVSDevice complexity

Solution Approach 1:

The system implements four distinct read modes (box, row, column, pixel) which may seem excessive, but each mode addresses specific warp field scenarios. The mode selection logic analyzes warp field characteristics and activates only the necessary mode, preventing unnecessary complexity from being executed while maintaining the capability to handle all warp field types efficiently.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS10997688B1Multi-modal warp filter to reduce memory bandwidth
Publication Date: 2021.05.04 AMBARELLA INT LP
  • US10997688B1 patent drawing
  • US10997688B1 patent drawing
  • US10997688B1 patent drawing

AI summary

An apparatus includes a memory and a circuit. The memory may be configured to store data. The circuit may be configured to analyze a warp field and, in a first read mode, (i) generate a first read request for fetching one or more rectangular regions of an input array containing data from the memory, (ii) generate one or more tags defining how the data of the one or more rectangular regions returned by the memory are to be stored in one or more local buffers, and (iii) generate an output array by filtering the data stored in the one or more local buffers with the warp field. The first read request may communicate skip information by including (a) an initial start location of an initial rectangular region to return, (b) a count value indicating a number of rectangular regions to return, (c) a displacement value indicating a default displacement between start locations of each of the number of rectangular regions to return, and (d) a number of flag values indicating whether to modify the default displacement for a respective rectangular region.