Variable-Size Data Block Storage with Predictable Headers
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing data storage methods for texture data in computer graphics systems face challenges with high storage and bandwidth requirements, particularly in mobile devices, and inefficient use of memory due to fixed memory allocation for variable-sized data.
Innovation Solution
The method involves dividing data into blocks and sub-blocks, with header data blocks stored at predictable memory addresses, allowing for efficient random access and variable-sized data storage without fixed memory allocation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If texture data is stored in compressed form to reduce storage and bandwidth requirements, then storage efficiency improves, but random access capability deteriorates
Solution Approach 1:
The texture data is divided into multiple blocks, each with its own header containing metadata about that block. This segmentation allows the system to access individual blocks independently without decompressing the entire texture, thereby maintaining random access capability while using compressed storage.
Solution Approach 2:
Headers containing metadata (such as block size, compression type, and location information) are prepared and stored in advance for each block. This preliminary action enables the system to quickly locate and access specific compressed blocks without having to process or decompress the entire texture data set.
2Ease of operation
If fixed memory allocation is used for each block to facilitate random access, then access efficiency improves, but memory space utilization deteriorates
Solution Approach 1:
Instead of allocating fixed memory space for each block, the system uses dynamic memory allocation where each block is allocated only the memory space it actually needs. The header for each block contains metadata that enables the system to dynamically locate and access the block at its specific memory position, eliminating the need for fixed allocation and reducing memory waste.
3Quantity of substance
If variable compression rates are applied to texture data, then storage efficiency improves, but access complexity deteriorates
Solution Approach 1:
Each block can have its own compression rate and type applied independently, allowing different parts of the texture to be compressed at different rates based on their specific requirements. The header for each block stores metadata about its specific compression parameters, enabling the access system to handle each block according to its own characteristics without increasing overall system complexity.
Data Source
AI summary
A data array 20 to be stored is first divided into a plurality of blocks 21. Each block 21 is further sub-divided into a set of sub-blocks 22, and a set of data for each sub-block 22 is then stored in one or more body blocks 25. A header data block 23 is stored for each block 21 at a predictable memory address within a header buffer 24. Each header data block contains pointer data indicating the position within a body block 25 where the data for the sub-blocks for the block 21 that that header data block 23 relates to is stored, and data indicating the size of the stored data for each respective sub-block 22.


