Pattern-Based Image Compression for Random Sub-Block Access
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing image data compression methods require decompressing entire blocks to access individual values, which is inefficient for graphics processing units that randomly access small blocks of data, and caching decompressed blocks does not significantly improve efficiency.
Innovation Solution
A pattern-based compression method that divides image data into sub-blocks, encodes each sub-block based on its pattern and unique values, and utilizes pointers for matching sub-blocks to reduce redundancy.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If existing image data compression methods are used, then data is compressed to reduce memory transfer, but the entire block must be decompressed to access individual values which is inefficient for random access
Solution Approach 1:
The patent divides the image data into smaller sub-blocks (e.g., 2x2 pixels) rather than treating the entire block as a single unit. Each sub-block can be independently accessed and decompressed, allowing random access to individual pixels or small regions without decompressing the entire block. This segmentation enables efficient random access while maintaining compression benefits.
Solution Approach 2:
The patent introduces a hierarchical structure with super-blocks containing multiple sub-blocks, adding a dimensional layer to the compression organization. This allows the system to navigate through compressed data using a tree-like structure where individual sub-blocks can be accessed independently, transforming the traditional flat block decomposition into a multi-level hierarchical system that supports random access.
2Loss of time
If caching decompressed blocks is implemented, then access time may be reduced, but memory bandwidth consumption increases and power usage rises
Solution Approach 1:
Instead of caching entire decompressed blocks (excessive action), the patent implements a system where only the necessary sub-blocks are decompressed and cached based on actual access patterns. This partial decomposition and caching approach reduces memory bandwidth consumption and power usage while still providing fast access to frequently accessed regions through the L1 cache.
Solution Approach 2:
The patent implements a dynamic compression/decompression system where the behavior adapts to access patterns. The system can switch between compressed and decompressed states based on whether random access or sequential access is detected, allowing the memory subsystem to optimize its behavior dynamically rather than using a fixed caching strategy.
3Manufacturing precision
If higher quality rendering algorithms are used on fast GPUs, then rendering quality improves, but memory bandwidth becomes a limiting resource
Solution Approach 1:
The patent performs compression of image data in advance, before it needs to be accessed by the rendering pipeline. By pre-compressing the data and organizing it in a hierarchical structure with sub-blocks, the system prepares the data in an efficient format that reduces memory bandwidth requirements during rendering operations, allowing higher quality algorithms to run without bandwidth constraints.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
Methods and compression units for compressing a two-dimensional block of image element values. The method includes: dividing (204) the two-dimensional block of image element values into a plurality of sub-blocks of image element values; identifying (208) which pattern of a plurality of patterns is formed by the image element values of a first sub-block of the plurality of sub-blocks; and forming (210) a compressed block of image element values by encoding the first sub-block in the compressed block of image element values with: (i) information identifying the pattern, and (ii) the image element values of the first sub-block forming the pattern; determining from a mask a set of one or more sub-blocks of the plurality of sub-blocks that have one of one or more predetermined relationships with the first sub-block; determining whether each sub-block in the set of one or more sub-blocks matches the first sub-block; and in response to determining that each sub-block of the set of one or more sub-blocks matches the first sub-block, encoding each sub-block of the set of one or more sub-blocks in the compressed block of image element values with information identifying that the sub-block belongs to a set of sub-blocks that match the first sub-block.