Image Processing Device Geometry Shader Cache Reuse

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional image processing pipelines face inefficiencies when handling variable size primitives, leading to increased processing costs and memory usage due to the need for repeated processing of the same input in the geometry shader stage.

Innovation Solution

An image processing apparatus with an index buffer and geometry shader that determines whether a primitive sequence is present, storing reference values and sizes, allowing for efficient reuse of output data through a cache buffer, reducing redundant calculations and memory storage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If the geometry shader processes variable size primitives by reading the index buffer sequentially, then the processing algorithm can be simple, but the same input primitive may be processed multiple times increasing processing cost

Engineering Contradiction:
Improveprocessing algorithm complexityVSAvoidprocessing speed
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent applies preliminary action by determining whether a primitive sequence has already been processed before executing the geometry shader. The determination device checks if the same vertex data sequence exists in the processed primitive records, and only processes the primitive if it hasn't been processed before. This prevents redundant processing while maintaining algorithm simplicity.

Inventive Principle:
Principle #10Preliminary action

2Ease of operation

If the index buffer stores complete primitive sequences for variable size primitives, then processing can be straightforward, but memory capacity is consumed for storing duplicate primitive data

Engineering Contradiction:
Improveprocessing easeVSAvoidmemory capacity usage
Core Design Contradiction:
Ease of operationVSQuantity of substance

Solution Approach 1:

The patent uses copying by storing only the index sequence and primitive size information in the index buffer, rather than storing complete primitive data. The determination device copies the index sequence to identify the primitive, and the actual processing uses vertex data from the vertex buffer. This reduces memory usage while maintaining processing ease.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The index buffer serves multiple functions: it stores both the index sequences for vertex data and the size information for variable size primitives. The determination device uses this same buffer structure for both primitive identification and processing control, eliminating the need for separate storage structures and reducing overall memory capacity requirements.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Adaptability or versatility

If multiple outputs of the first geometry shader stage form inputs for the second stage, then complex primitive processing is enabled, but redundant processing occurs when the same input is processed multiple times

Engineering Contradiction:
Improveprimitive processing capabilityVSAvoidprocessing energy consumption
Core Design Contradiction:
Adaptability or versatilityVSLoss of energy

Solution Approach 1:

The patent implements feedback by having the determination device continuously check whether a primitive sequence has already been processed before passing it to the geometry shader. The processed primitive information is fed back into the determination logic, creating a loop that prevents redundant processing. This maintains the ability to handle complex multi-stage primitive processing while reducing energy consumption by eliminating duplicate operations.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9218686B2Image processing device
Publication Date: 2015.12.22 DIGITAL MEDIA PROFESSIONALS
  • US9218686B2 patent drawing
  • US9218686B2 patent drawing
  • US9218686B2 patent drawing

AI summary

The present invention intends to provide an image processing apparatus that can process geometrical primitives rapidly and with restrained memory consumption. A sequence of vertex data of a primitive sequence is stored in an index buffer, and size data of the primitive is stored in the head of the sequence. The result of processing of the primitive sequence in a geometry shader is stored in a cache buffer, and a primitive output, which is the output result stored in the cache buffer, is reused in reprocessing of the primitive processed in the geometry shader.