Buffer Management for Plug-in Architectures in Computation Graphs
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional computer vision techniques incur latency due to the inefficient management of input and output buffers in processing pipelines, where buffers are allocated and returned based on the completion of operations rather than data availability, leading to delays between data input, processing, and output.
Innovation Solution
The proposed solution involves managing plug-in buffers in computation graph structure frameworks like OpenVX by allocating, monitoring, and managing buffer memory such that input buffers are acquired when data is available for processing and returned when the last operation executes, and output buffers are acquired when the last operation is ready to process and output data is stored, thereby reducing latency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If buffers are allocated and returned based on operation completion, then resource management is simplified, but processing latency increases
Solution Approach 1:
The system performs preliminary actions by allocating output buffers in advance before the processing operation completes. The buffer management unit allocates an output buffer before the vision node operation finishes, so that when the operation completes, the data can be immediately written to the pre-allocated buffer without waiting for buffer allocation, thereby reducing latency while maintaining simplified management through automated buffer tracking
Solution Approach 2:
A buffer management unit is introduced as an intermediary component that mediates between the vision nodes and buffer resources. This intermediary tracks the state of buffers, automatically allocates and deallocates them based on operation status, and coordinates data flow between input and output buffers, thus reducing latency without significantly increasing system complexity
2Reliability
If buffers are held until the last operation executes, then data consistency is ensured, but processing speed decreases
Solution Approach 1:
The buffer management system dynamically adjusts buffer allocation and deallocation timing based on the actual execution state of operations. Instead of static holding until the last operation, the system dynamically deallocates input buffers as soon as their data is consumed and allocates output buffers when ready, optimizing both data consistency and processing speed through adaptive buffer management
Data Source
AI summary
A computer vision processing device is provided which comprises memory configured to store data and a processor. The processor is configured to store captured image data in a first buffer and acquire access to the captured image data in the first buffer when the captured image data is available for processing. The processor is also configured to execute a first group of operations in a processing pipeline, each of which processes the captured image data accessed from the first buffer and return the first buffer for storing next captured image data when a last operation of the first group of operations executes.


