Interleaved Block Matching and Convolution for Search Windows
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing data processing techniques for determining similarity measures and performing convolutional operations face challenges in efficiently handling large volumes of data, leading to memory constraints and performance bottlenecks.
Innovation Solution
A processor architecture with an internal memory, handling unit, convolutional engine, and block matching engine is employed for interleaved iterative processing of template and search data, utilizing a search window with offset positions to manage data subsets efficiently, reducing reliance on external memory and enhancing processing efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If conventional sequential processing is used for similarity determination and convolutional operations, then processing simplicity is maintained, but processing speed and throughput deteriorate due to memory constraints and sequential execution
Solution Approach 1:
The patent segments the set of offset positions into multiple subsets, where each subset is processed by a separate processing pipeline (block matching engine or convolutional engine). This segmentation enables parallel processing of different offset position subsets simultaneously, thereby increasing throughput and processing speed without requiring a single complex sequential processor
Solution Approach 2:
The patent merges the block matching engine and convolutional engine into a single integrated processor architecture that shares common resources including internal memory, data pathways, and control logic. This merging allows both processing functions to operate in parallel on different data subsets while utilizing shared hardware resources, improving productivity without proportionally increasing device complexity
2Productivity
If all offset positions are processed simultaneously, then throughput is maximized, but memory requirements and resource constraints worsen
Solution Approach 1:
The set of offset positions is divided into multiple subsets that can be processed in parallel. Each subset is handled by a dedicated processing pipeline that operates independently with its own memory buffer, allowing simultaneous processing of multiple subsets without requiring the entire dataset to reside in memory at once, thus reducing peak memory requirements while maintaining high throughput
Solution Approach 2:
The patent implements preliminary organization of offset positions into subsets before processing begins. This preliminary action allows the system to allocate memory resources efficiently for each subset and establish parallel processing pipelines in advance, enabling high throughput processing while keeping memory requirements manageable through pre-planned resource distribution
3Quantity of substance
If sequential processing of offset positions is used, then memory usage is reduced, but processing latency increases due to downtime between operations
Solution Approach 1:
The patent implements continuous parallel processing by maintaining multiple active processing pipelines that work simultaneously on different offset position subsets. While one pipeline is finishing its current subset, another pipeline is already processing the next subset, ensuring continuous useful action without idle downtime. This approach keeps memory usage low by processing one subset at a time per pipeline while eliminating the sequential wait time between operations
Solution Approach 2:
The patent employs periodic swapping of data subsets between processing pipelines in a round-robin fashion. Each pipeline periodically completes its current subset and receives the next subset to process, creating a rhythmic flow of work that maintains continuous processing activity. This periodic action pattern ensures that memory is efficiently utilized (one subset per pipeline at a time) while minimizing idle time through structured handoff protocols
Data Source
AI summary
A processor, method, and non-transitory computer-readable storage medium for processing template data and search data according to a search window applied to the search data. The search window comprising a set of offset positions. The processing is performed by a block matching engine (BME) that produces a tensor with difference values, and a convolutional engine (CE) that performs a convolutional operation on the tensor. The processing is performed in an iterative interleaved fashion, by dividing the set of offset positions into a plurality of subsets of offset positions. In parallel with processing of the first X offset positions by the CE, the BME generates the next X channels of the tensor, and which are subsequently pipelined through to the CE via an internal storage, etc.


