3D Vertex Data Compression via Sub-Codebook Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for compressing vertex data in 3D image data fail to efficiently utilize the distribution characteristics of residual vectors, leading to wasteful storage of similar codewords, increased encoding time, and suboptimal compression ratios due to the large number of codewords with small Euclidean distances.
Innovation Solution
The method involves dividing residual vectors into groups and generating sub-codebooks with a specified number of codewords for each group, reducing the total number of codewords for smaller moduli and increasing them for larger moduli, and using a quick search method to optimize codeword search, thereby saving storage space and improving encoding quality and efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If a preset compression codebook is generated using LBG algorithm with parallelogram prediction, then vertex data compression is achieved, but large amounts of codewords with very small Euclidean distances are created, wasting storage space
Solution Approach 1:
The codebook is segmented into multiple sub-codebooks based on modulus ranges of residual vectors. Each sub-codebook contains codewords for a specific modulus range, eliminating redundant codewords with very small Euclidean distances that occur when using a single unified codebook. This segmentation reduces the total number of codewords while maintaining compression precision for each specific range.
Solution Approach 2:
Different sub-codebooks are designed with different numbers of codewords according to the local distribution characteristics of residual vectors in different modulus ranges. Sub-codebooks for ranges with dense codeword distribution contain fewer codewords, while other ranges retain appropriate codeword counts, optimizing storage space utilization locally across different regions of the vector space.
2Measurement precision
If Full Search method is used to search for optimal codeword, then optimal match is achieved, but a lot of time is spent traversing similar codewords, affecting compression efficiency
Solution Approach 1:
The search space is segmented into multiple sub-codebooks based on modulus ranges. When searching for an optimal codeword, the algorithm first determines the modulus range of the residual vector and directly searches only the corresponding sub-codebook, rather than traversing the entire codebook. This segmentation dramatically reduces the number of codewords that need to be traversed while maintaining optimal matching precision within each range.
Solution Approach 2:
The residual vector's modulus range is determined in advance before the actual codeword search. This preliminary classification allows the search to be confined to a specific sub-codebook, preventing unnecessary traversal of codewords that would not be optimal matches, thus improving compression efficiency without sacrificing matching precision.
3Reliability
If a compression codebook includes many codewords with small Euclidean distances, then more codeword indices are needed, but this increases the number of bits for codeword indices, preventing improvement of compression ratio
Solution Approach 1:
The codebook is divided into sub-codebooks, each handling a specific modulus range. This segmentation reduces the total number of codewords that need to be indexed, thereby reducing the number of bits required for codeword indices. The segmentation maintains encoding accuracy within each sub-range while eliminating the redundancy of indexing numerous similar codewords that would otherwise be required in a unified codebook.
Solution Approach 2:
The codebook structure is changed from a single unified codebook to multiple sub-codebooks with different sizes and codeword counts. This parameter change in the codebook organization allows for optimized index bit allocation, where each sub-codebook can have an index size matched to its actual codeword count, reducing the overall bits required for representation while maintaining the necessary encoding accuracy.
Data Source
Figure 1~2
Figure 3
AI summary
A device for compressing vertex data in three-dimensional (3D) image data includes a codebook design module and a codeword search module. The codebook design module is configured for: grouping residual vectors of vertices in 3D image data for codebook design; generating, for each group of residual vectors, a sub-codebook formed by a specified number of codewords; and sending the generated sub-codebook corresponding to a group of residual vectors to the codeword search module. The codeword search module is configured for: receiving a sub-codebook sent by the codebook design module; searching for a codeword of optimal match of a to-be-compressed residual vector of a vertex in 3D image data to be compressed; and taking an index of the codeword of optimal match and an index of a sub-codebook where the codeword of optimal match is located as compressed data of the vertex. A method for compressing vertex data in 3D image data is further disclosed. With the disclosure, it is possible to save codeword storage space, enhance encoding quality, improve a compression ratio of vertex data, and increase a compression efficiency.