Block Processing Input Data in Graphical Programming

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Graphical programming environments face challenges in efficiently processing large input data, such as images or videos, due to high memory requirements when performing real-time data processing, as existing methods often necessitate temporary storage of processed data, leading to memory burdens.

Innovation Solution

The method involves partitioning input data into smaller blocks, allowing for in-place processing where output data can overwrite input data, reducing memory usage by enabling block processing with user-defined block sizes and processing functions, and reassembling processed blocks to generate output data.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If real-time data processing is performed on large input data (such as images or videos), then processing speed and responsiveness are improved, but memory requirements increase significantly due to temporary storage of processed data

Engineering Contradiction:
Improveprocessing speedVSAvoidmemory requirements
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent divides the input data into smaller blocks that can be processed independently. Each block is processed and stored in a dedicated memory location, allowing the system to process large datasets in chunks rather than loading everything into memory at once. This segmentation enables real-time processing while controlling memory usage.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system pre-allocates memory spaces for output data before processing begins. By reserving memory locations in advance and processing blocks in a structured manner, the system avoids dynamic memory allocation during processing, improving speed while maintaining memory efficiency.

Inventive Principle:
Principle #10Preliminary action

2Ease of manufacture

If temporary storage of processed data is used, then data processing can be performed, but memory burden increases

Engineering Contradiction:
Improvedata processing capabilityVSAvoidtemporary memory storage
Core Design Contradiction:
Ease of manufactureVSQuantity of substance

Solution Approach 1:

The patent merges the input data structure with the output data structure by using the same memory space for both. The processed blocks are written back to the same memory locations where they were read from, eliminating the need for separate temporary storage buffers and reducing overall memory requirements.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

After processing a block, the system discards the original unprocessed data in that block's memory location and recovers/reuses the same location for storing the processed output. This in-place processing approach eliminates permanent temporary storage needs.

Inventive Principle:
Principle #34Discarding and recovering

3Adaptability or versatility

If block processing is implemented with user-defined block sizes, then flexibility and adaptability are improved, but system complexity increases

Engineering Contradiction:
Improveblock size configurationVSAvoidsystem configuration
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system allows dynamic configuration of block sizes through user-defined parameters. The processing system adapts to different block sizes automatically, providing versatility for various data types and processing requirements without requiring complex manual configuration or reconfiguration of the underlying processing architecture.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS8160844B2Block processing of input data in graphical programming environments
Publication Date: 2012.04.17 MATHWORKS INC
  • US8160844B2 patent drawing
  • US8160844B2 patent drawing
  • US8160844B2 patent drawing

AI summary

In one embodiment, a processing block of a block diagram receives input data including a plurality of data elements organized as a matrix of a first size. At least a portion of the input data is partitioned into a plurality of data blocks in response to user-selected parameters. A data block includes selected ones of the plurality of data elements organized as a matrix of a second size. The data processing block performs a data processing function on the plurality of data blocks in a user-specified order to yield processed data corresponding to each data block. The processed data corresponding to each data block is then reassembled to form output data corresponding to the input data and the output data is output from the processing block to another block of the block diagram.