Tile-Based 3D Vertex Compression With Lossless Random Access
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Tile based 3D computer graphics systems face challenges in efficiently compressing vertex parameter data due to high memory bandwidth requirements, limited silicon area, and the need for fast, lossless compression with random access capabilities, especially when dealing with complex graphics and large triangles.
Innovation Solution
A method and apparatus for compressing vertex parameter data by dividing multiple byte data into individual bytes, grouping corresponding bytes into blocks, and applying different compression algorithms based on content, allowing for fixed-sized data access and efficient random access without decompressing the entire data set.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If vertex parameter data is compressed to reduce memory bandwidth, then memory requirements are reduced, but random access capability is lost
Solution Approach 1:
The patent divides vertex parameter data into fixed-size blocks, where each block contains a header and fixed-length parameter data for multiple vertices. This segmentation enables random access to individual blocks without requiring decompression of the entire data set, resolving the contradiction between compression and random access capability.
Solution Approach 2:
The patent transforms variable-length compressed data into fixed-size blocks with standardized headers and parameter fields. By changing the data structure from variable-length to fixed-length, the system enables efficient random access while maintaining compression benefits, as each block can be independently accessed and decompressed.
2Quantity of substance
If complex compression algorithms are used to achieve high compression ratios, then memory bandwidth is reduced, but processing time increases
Solution Approach 1:
The patent performs compression and block organization in advance during the rendering pipeline, creating fixed-size blocks with headers that contain all necessary metadata. This preliminary action allows the compressed data to be stored efficiently and accessed quickly during tile rendering, reducing both memory bandwidth requirements and processing time during actual rendering operations.
3Speed
If vertex parameter data is stored in uncompressed format for fast access, then processing speed is improved, but memory requirements increase
Solution Approach 1:
By segmenting vertex parameter data into fixed-size blocks with standardized headers, the patent enables the system to load only the specific blocks needed for current tile rendering into fast memory, while the majority of compressed data can remain in slower, high-capacity memory. This segmentation resolves the contradiction by allowing fast access to active data while maintaining compression for the overall data set.
Data Source
AI summary
Data in a processing system is compressed, the data comprising a plurality of values having a same multiple-byte format. Bytes with corresponding byte significance are grouped together to form a plurality of byte blocks, and a byte block of the plurality of byte blocks is compressed using a compression algorithm comprising storing at least one byte from the byte block as a byte origin, and storing at least one remaining byte in the byte block as a difference value from the byte origin.


