High-Level Graphics Interface for Memory Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current graphics subsystems face challenges in efficiently managing complex graphics computations and providing a high-level interface for image processing applications, with existing solutions like OpenGL being state machine-based and lacking abstraction, leading to complexity and inefficiency in memory and computation usage.

Innovation Solution

A high-level program interface for graphics operations is introduced, utilizing a graph-like description of image tasks with nodes representing operators and links representing intermediary results, allowing for optimization and efficient resource management between CPU and GPU, and enabling emulation on single processor systems.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If OpenGL state machine interface is used, then hardware compatibility is improved, but program complexity and memory usage increase

Engineering Contradiction:
Improvehardware compatibilityVSAvoidprogram complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces a scene graph data structure as an intermediary layer between the application and the graphics hardware. This scene graph automatically manages OpenGL state machine operations, reducing program complexity while maintaining hardware compatibility. The scene graph serves as a mediator that handles the complexity of state management internally while presenting a simpler interface to developers.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent creates a virtual scene graph representation that copies and abstracts the complex hardware state machine operations. Instead of directly managing OpenGL states, the system works with a simplified scene graph model that replicates the essential graphics operations at a higher level of abstraction, reducing the complexity visible to programmers.

Inventive Principle:
Principle #26Copying

2Reliability

If OpenGL state machine operations are used, then hardware rendering is achieved, but memory consumption increases

Engineering Contradiction:
Improvehardware renderingVSAvoidmemory consumption
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent merges multiple OpenGL state operations and rendering commands into unified scene graph nodes and operations. By combining related state changes and rendering operations into single scene graph elements, the system reduces the total number of separate memory allocations and state storage requirements while maintaining hardware rendering capabilities.

Inventive Principle:
Principle #5Merging (Combining)

3Ease of operation

If high-level abstraction layer is added, then ease of use is improved, but processing overhead increases

Engineering Contradiction:
Improveease of useVSAvoidprocessing overhead
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The patent performs preliminary actions by pre-compiling scene graphs into optimized rendering commands during an initialization phase. This allows the high-level scene graph interface to be maintained while reducing processing overhead during actual rendering, as the complex state machine operations have already been prepared and optimized in advance.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS7911472B2System for reducing the number of programs necessary to render an image
Publication Date: 2011.03.22 APPLE INC
  • US7911472B2 patent drawing
  • US7911472B2 patent drawing
  • US7911472B2 patent drawing

AI summary

Disclosed is as system for reducing memory and computational requirements of graphics operations. The system provides techniques for combining otherwise individual operations to apply filters to images. The combined filter emerging from the combination spares the processor time and the creation of an entire intermediary image. The system further provides for application of these techniques in many contexts including where the operations are fragment programs in for a programmable GPU.