Image Data Interleaving and Transpose for Parallel Cluster Processing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing data processing systems face challenges in efficiently distributing and rearranging image data for processing by multiple clusters, particularly in applications requiring low latency and reduced memory usage, such as self-driving cars, due to high memory requirements and prolonged reaction times.
Innovation Solution
A method and system for rearranging and distributing image data by logically partitioning the image into uniform regions, interleaving data units across memory positions, transposing them into K-byte words, and transferring bytes to processing clusters in parallel, optimizing data distribution for multi-core parallelization.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If image data is distributed to multiple processing clusters for parallel processing, then processing speed and productivity are improved, but memory requirements and device complexity increase
Solution Approach 1:
The image data is divided into multiple tiles or regions that can be independently processed by different processing clusters. Each cluster receives a specific portion of the image data, enabling parallel processing while reducing the memory burden on each individual cluster. The segmentation allows the system to process large images by breaking them into manageable chunks that fit within the memory constraints of individual processing units.
2Productivity
If image data is distributed to multiple processing clusters, then processing throughput is improved, but reaction time and latency increase
Solution Approach 1:
The system performs preliminary actions by pre-processing and preparing image data before it reaches the main processing clusters. This includes initial filtering, formatting, and organization of data that reduces the computational burden during critical processing phases. By performing these preparatory actions in advance, the system minimizes latency while maintaining high throughput in the main processing pipeline.
3Quantity of substance
If more memory is allocated for image processing, then data availability for processing is improved, but manufacturing costs and device complexity increase
Solution Approach 1:
The patent introduces a time dimension to the data storage and processing architecture by implementing a time-multiplexed memory system. Instead of providing all image data simultaneously to all processing clusters, the system allocates memory resources dynamically across different time periods. This allows the same memory resources to serve multiple processing operations sequentially, effectively increasing data availability without proportionally increasing physical memory capacity or manufacturing costs.
Data Source
AI summary
A system configured to rearrange and distribute data of an incoming image for processing by a number, K≥4, of processing clusters. The incoming image has a number of scanlines, each scanline being arrangeable as a plurality of data units. The system is configured to logically partition the incoming image into K uniform regions corresponding to the number of processing clusters, wherein the K regions are defined by a number, R≥2, of rows and a number, C≥2, of columns, by i) dividing each scanline into a number, C≥2, of uniform line segments, the length of a line segment being equal to the width of a region, ii) dividing each line segment into a number, W≥2, of data units, each having a number, Q≥2, of bytes, i.e. Q-byte data units, and iii) defining a region height of a number, H≥2, of scanlines for each region. The system is configured to store, in an associated memory, data units from different regions interleaved with respect to each other, while consecutive data units of each line segment of each row of regions of the incoming image are stored with an offset of K memory positions such that the consecutive data units are stored K memory addresses apart. The system is configured to transpose each assembly of K number of Q-byte data units stored in said memory into a transposed assembly of Q number of K-byte words, each K-byte word including one byte per cluster, and transfer the bytes of each K-byte word to said processing clusters in parallel, one byte per cluster.


