GPU Undo Logic for Digital Art via XOR State Compression

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Digital art applications face challenges in implementing efficient 'Undo' and 'Redo' functionality due to the computational expense of reversing paint operations, which interact with existing pixels and produce entropy, leading to undesirable delays in contemporary computing devices.

Innovation Solution

The solution involves using a graphics processing unit (GPU) to compute and compress 'undo' state information by performing XOR operations on the current and previous state data, storing only the changed data in a circular buffer using run-length encoding, thereby reducing computational load and minimizing user experience delays.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If undo state information is saved by comparing before and after states of paint operations, then undo functionality can be achieved, but computational resources are excessively consumed and user delays occur

Engineering Contradiction:
Improveundo functionalityVSAvoidcomputational efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system performs preliminary actions by saving the previous state information before the paint operation occurs. This allows the undo state to be pre-computed and stored efficiently, avoiding the need for expensive full-state comparisons when the undo command is executed. The GPU computes changed state data by comparing current stroke data with pre-saved previous state data, significantly reducing computational overhead.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If full state information is captured for every paint operation, then complete undo capability is achieved, but memory resources are excessively consumed

Engineering Contradiction:
Improveundo capabilityVSAvoidmemory usage
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The system extracts only the changed state data from the full paint operation state by performing XOR operations between the current and previous states. This extraction process identifies and stores only the differential information that actually changed, eliminating redundant data storage. The run-length encoding further compresses this extracted changed state data, significantly reducing memory consumption while preserving complete undo capability.

Inventive Principle:
Principle #2Taking out (Extraction)

3Speed

If undo state data is stored in uncompressed format, then retrieval speed is improved, but storage capacity is reduced

Engineering Contradiction:
Improveretrieval speedVSAvoidstorage capacity
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The system applies run-length encoding compression to the changed state data, transforming the data representation from uncompressed to compressed format. This parameter change in data encoding allows for efficient storage of undo state information while maintaining fast retrieval capabilities. The compression algorithm is optimized to work with the specific characteristics of paint operation data, ensuring both storage efficiency and retrieval performance.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS9129416B2Digital art undo and redo
Publication Date: 2015.09.08 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9129416B2 patent drawing
  • US9129416B2 patent drawing
  • US9129416B2 patent drawing

AI summary

The subject disclosure is directed towards saving undo state information for a digital art program. Changed state data is computed (e.g., via GPU-side logic) based upon the state information of the current state of a canvas and the previous state information, e.g., via an XOR operation or parallel XOR operations. The changed state data is compressed into compressed state data, e.g., via run-length encoding, and the compressed state data is stored, e.g., in a circular buffer in GPU memory. For an undo command, the compressed data is decompressed into the changed state data, and the bitwise operation reversed.