Compact Floating Point Format for Nonlinear Color Data

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing graphics processors struggle to process nonlinear colorspace data efficiently, leading to visual artifacts and suboptimal performance when reusing texture filtering units designed for linear colorspace data.

Innovation Solution

Converting nonlinear colorspace data into a compact floating point format using an 8-bit explicit mantissa and 3-bit exponent, allowing conventional texture filtering units to maintain precision and performance equivalent to processing 8-bit color values, while avoiding the reduced performance associated with 16-bit floating point conversion.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If nonlinear colorspace data is processed using conventional texture filtering units designed for linear colorspace data, then the existing hardware can be reused, but visual artifacts occur and processing precision deteriorates

Engineering Contradiction:
Improvereusability of texture filtering unitsVSAvoidcolor data precision
Core Design Contradiction:
Adaptability or versatilityVSMeasurement precision

Solution Approach 1:

A colorspace conversion unit is introduced as an intermediary component between the texture memory (storing nonlinear colorspace data) and the conventional texture filtering units. This conversion unit transforms the nonlinear colorspace data into linear colorspace data before it reaches the filtering units, allowing the existing hardware to process the data correctly without visual artifacts while maintaining its reusability

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The colorspace conversion unit changes the parameter representation of color data from nonlinear colorspace format to linear colorspace format. By transforming the data representation rather than changing the hardware architecture, the system maintains compatibility with existing texture filtering units while eliminating visual artifacts and preserving processing precision

Inventive Principle:
Principle #35Parameter changes

2Measurement precision

If nonlinear colorspace data is converted to 16-bit floating point format, then processing precision is maintained, but processing throughput is reduced by half compared to 8-bit color values

Engineering Contradiction:
Improvecolor data precisionVSAvoidprocessing throughput
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

Instead of converting nonlinear colorspace data to standard 16-bit floating point format, the patent transforms it into a custom compact floating point format with reduced precision (fewer mantissa and exponent bits). This parameter change in the data representation allows the texture filtering units to process the converted data at the same high throughput rate as 8-bit color values, rather than being limited to half the throughput that would result from using full 16-bit floating point format

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS7522173B1Conversion of data in an sRGB format to a compact floating point format
Publication Date: 2009.04.21 NVIDIA CORP
  • US7522173B1 patent drawing
  • US7522173B1 patent drawing
  • US7522173B1 patent drawing

AI summary

Systems and methods for processing linear colorspace data may be reused to process nonlinear colorspace data at a comparable performance level while maintaining the precision of the nonlinear colorspace data. Nonlinear colorspace data is converted to a compact floating point format in a linear colorspace used by conventional graphics processors. The compact floating point format includes an 8 bit explicit mantissa (without an implied leading one) and a 3 bit exponent to maintain the precision of the nonlinear colorspace data. The 8 bit mantissa may be processed by conventional texture filtering units designed to process 8 bit (fixed or floating point) color values. The 3 bit exponent may by processed by conventional texture filtering units designed to process floating point color values.