Image Processing Pixel Calculation Order for Memory Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing image processing technologies face inefficiencies in re-sampling and rotating input images to meet fixed size requirements for subsequent processing, particularly in neural networks, due to varying subject distances and orientations, which lead to excessive interpolation and memory access issues.

Innovation Solution

An image processing apparatus that determines an optimal order for calculating output image pixels to maximize data reuse in local memory, allowing for simultaneous data reading and computation, and employs a sampling module to read input image data in bursts across a required width, rather than an entire area, thereby minimizing storage and memory access.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If output image pixels are calculated in order of pixel positions in the output image, then the output image can be generated systematically, but the amount of storage required for local memory and the number of input image read requests increase

Engineering Contradiction:
Improveprocessing speedVSAvoidmemory storage requirement
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent inverts the traditional calculation order by determining pixel calculation sequences based on input data availability rather than output image spatial order. This allows the system to process pixels in an order that maximizes data reuse from input stripes, reducing memory storage requirements while maintaining processing efficiency

Inventive Principle:
Principle #13The other way round (Inversion)

Solution Approach 2:

The patent performs preliminary organization of input image data into stripes before processing. By pre-organizing the input data structure and determining which stripes are needed in advance, the system can efficiently reuse the same stripe data for multiple output pixels without requiring large amounts of local memory storage

Inventive Principle:
Principle #10Preliminary action

2Productivity

If the same set of data is reused for multiple output pixels, then memory access efficiency improves, but the calculation order becomes more complex

Engineering Contradiction:
Improvedata reuse efficiencyVSAvoidcalculation order complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements a dynamic calculation order that adapts based on the spatial relationship between output pixels and input stripes. Rather than using a fixed calculation sequence, the system dynamically determines which output pixels can be calculated from currently available input stripes, allowing flexible data reuse while managing complexity through adaptive processing

Inventive Principle:
Principle #15Dynamics

3Loss of time

If input image data is read in bursts covering required width, then memory access time is reduced, but the data reading complexity increases

Engineering Contradiction:
Improvememory access timeVSAvoiddata reading complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The patent segments the input image into horizontal stripes that can be read in efficient bursts. By dividing the input data into manageable stripe segments corresponding to processor width requirements, the system can read data in optimized batches rather than individual pixels, reducing memory access time while the segmentation structure itself manages the reading complexity

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10853909B2Image processing apparatus
Publication Date: 2020.12.01 FOTONATION LIMITED
  • US10853909B2 patent drawing
  • US10853909B2 patent drawing
  • US10853909B2 patent drawing

AI summary

The present invention relates to an image processing apparatus which determines an order for calculating output image pixels that maximally reuses data in a local memory for computing all relevant output image pixels. Thus, the same set of data is re-used until it is no longer necessary. Output image pixel locations are browsed to determine pixel values in an order imposed by available input data, rather than in an order imposed by pixel positions in the output image. Consequently, the amount of storage required for local memory as well as the number of input image read requests and data read from memory containing the input image is minimized.