Multi-pass Image Rotation Reducing Processor Memory
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing image rotation methods in data processing systems are inefficient due to the trade-off between memory access efficiency and memory usage, as they either read and write pixels one at a time or use more memory to read and write groups of adjacent pixels, which does not fully leverage memory efficiencies.
Innovation Solution
A multi-pass image rotation technique where an image processor reads and writes sets of pixels in external memory through a processor memory, regrouping them into blocks to efficiently rotate images by 90 degrees in two passes, allowing for smaller processor memory usage without significant efficiency loss.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If pixels are read and written one at a time, then memory usage is minimized (only one pixel needs to be stored), but memory access efficiency is poor due to non-consecutive address accesses
Solution Approach 1:
The patent divides the image rotation process into multiple passes, where each pass processes a portion of the image. This segmentation allows the system to work with smaller data sets in memory at any given time, improving memory access efficiency without requiring the entire image to be loaded into memory simultaneously.
Solution Approach 2:
The patent performs preliminary actions by pre-calculating and storing rotation parameters and intermediate results in a structured manner. This allows subsequent memory accesses to be more efficient, as the data is already organized for optimal access patterns during the actual rotation operation.
2Productivity
If groups of adjacent pixels are read and written, then memory access efficiency is improved by accessing consecutive addresses, but memory usage increases requiring more processor memory
Solution Approach 1:
The patent dynamically adjusts the amount of data kept in processor memory based on the current processing stage and requirements. By using multiple passes, the system can load and process smaller portions of the image in each pass, dynamically managing memory usage to balance between access efficiency and memory consumption.
Solution Approach 2:
The patent introduces a temporal dimension by using multiple passes through the data. Instead of attempting to process the entire image in a single pass with large memory buffers, the system distributes the processing across multiple temporal passes, each handling a manageable portion of the data.
3Productivity
If 16 adjacent pixels are read and written in a single operation, then fewer memory operations are needed compared to pixel-by-pixel processing, but more memory space is required within the image processor
Solution Approach 1:
The patent segments the image processing into multiple passes, where each pass handles a subset of the total pixels. This allows the use of efficient block processing (reading and writing groups of adjacent pixels) within each pass while keeping the memory requirements manageable by processing only a portion of the image at a time.
Solution Approach 2:
The patent applies partial action by processing the image in multiple passes rather than attempting to process the entire image in a single pass. Each pass performs a partial rotation operation on a subset of pixels, and the results are accumulated across passes to achieve the complete rotation.
Data Source
AI summary
A method of rotating a digital image includes performing a first pass to process a selected image tile of a source image. The first pass includes copying a set of pixels of the selected image tile from a first memory to a processor memory, where the set of pixels comprises a portion of the selected image tile. The first pass further includes grouping the set of pixels into blocks of pixels and writing each of the blocks of pixels to a memory location. The method further includes repeating the first pass until each of the pixels of the selected image tile is processed, performing a second pass to process the blocks of pixels, and repeating the second pass until each of the blocks of pixels is processed. The second pass includes copying blocks of pixels, regrouping the blocks of pixels, and writing the regrouped pixels to a destination image location.


