Sliding Data Buffer for Image Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing memory management techniques for embedded imaging applications on cost-sensitive platforms with limited on-chip memory are inefficient, either requiring excessive computation or time-consuming data movement, particularly when processing images that require overlapping input data blocks.

Innovation Solution

The sliding buffer method, which loads an initial input data array, performs operations, and iteratively loads new data while resetting an array pointer to the overlap data, eliminating the need for data movement by shifting the array pointer within the buffer, thereby maintaining computation efficiency without data relocation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If history buffering is used to improve computation efficiency, then computation efficiency is improved, but data movement time increases

Engineering Contradiction:
Improvecomputation efficiencyVSAvoiddata movement time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent implements a dynamic buffer management system where the buffer pointer advances automatically with each processing iteration, eliminating the need for static data copying. The buffer dynamically slides through memory space as processing progresses, with the pointer position adjusted based on the overlap width and processing block size, thereby avoiding time-consuming data movement while maintaining computation efficiency.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

Instead of physically copying overlap data to different memory locations, the patent uses a virtual copying mechanism through pointer manipulation. The buffer pointer effectively 'copies' the logical position of data without actual data movement, allowing the same physical memory locations to be reused across iterations after the pointer advances, thus eliminating redundant data transfer operations.

Inventive Principle:
Principle #26Copying

2Manufacturing precision

If block processing with overlapping input blocks is used to handle spatial dependency, then processing accuracy is improved, but memory usage increases

Engineering Contradiction:
Improveprocessing accuracyVSAvoidmemory usage
Core Design Contradiction:
Manufacturing precisionVSQuantity of substance

Solution Approach 1:

The patent employs a dynamic sliding buffer approach where the buffer pointer advances iteratively, allowing the same physical buffer space to serve multiple processing iterations. This dynamic reuse of memory space maintains the required overlap width for accurate spatial processing while preventing memory consumption from growing linearly with the number of iterations, thus resolving the contradiction between processing accuracy and memory usage.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent implements a memory recovery mechanism where previously used buffer space becomes available for new data after processing. As the buffer pointer advances through iterations, old buffer positions are discarded (no longer needed for overlap) and recovered (reused for new input data), maintaining processing accuracy through overlap while preventing memory usage from accumulating, effectively managing limited on-chip memory resources.

Inventive Principle:
Principle #34Discarding and recovering

Data Source

PatentUS7728840B2Sliding data buffering for image processing
Publication Date: 2010.06.01 TEXAS INSTRUMENTS INC
  • US7728840B2 patent drawing
  • US7728840B2 patent drawing
  • US7728840B2 patent drawing

AI summary

A method for managing image processing data buffers for processes having overlap input data between iterations includes loading a data buffer with an initial input data array and performing an image data array operation on the input data array. The method repeats the following steps for plural iterations including loading the data buffer with new input data forming a new input data array for a next iteration and performing the input data array operation on the new input data array. The overlap data consists of pixels at an end of each scan line. Loading new input data includes loading pixels following the overlap data for each scan line.