Method and apparatus for compressing and decompressing short blocks of data
First Claim
Patent Images
1. A method for coding a data set made up of several short blocks of data, comprising the steps of:
- inputting said data set;
partitioning said data set such that each data block is assigned to a specific cluster of data blocks;
generating a set of encoding tables for each cluster that specify a translation of said data blocks into binary codes, said table generating step further comprising the steps of;
grouping said data blocks according to a selected common characteristic to produce a number of data clusters; and
assigning said data blocks to said data clusters such that the sum;
space="preserve" listing-type="equation">S=S.sub.T +S.sub.Eis minimized, where ST denotes the size of the encoding tables that are stored together with the encoded data blocks, SE denotes the size of the encoded data blocks, and S denotes the total size of the compressed data set;
encoding said data blocks by applying the translation contained in said encoding tables to said data blocks;
generating an index table that references each data block to a corresponding encoding table;
translating said encoding table into a decoding table;
producing a compressed file including said index table, said decoding tables, and said encoded data blocks; and
storing said file on a storage medium.
2 Assignments
0 Petitions
Accused Products
Abstract
A scheme for compression of large sets of short blocks of data for storage in a storage medium, such as a read-only memory. Applications of the scheme include compression of fonts for printers, ROM disks in portable PCs, and others. These applications require random access to individual blocks, and fast, real-time decompression. The scheme applies an asymmetrical three-stage methodology in which a first stage provides training and optimization for a set of data blocks; a second stage effects data compression; and a third stage effects data decompression.
-
Citations
20 Claims
-
1. A method for coding a data set made up of several short blocks of data, comprising the steps of:
-
inputting said data set; partitioning said data set such that each data block is assigned to a specific cluster of data blocks; generating a set of encoding tables for each cluster that specify a translation of said data blocks into binary codes, said table generating step further comprising the steps of; grouping said data blocks according to a selected common characteristic to produce a number of data clusters; and assigning said data blocks to said data clusters such that the sum;
space="preserve" listing-type="equation">S=S.sub.T +S.sub.Eis minimized, where ST denotes the size of the encoding tables that are stored together with the encoded data blocks, SE denotes the size of the encoded data blocks, and S denotes the total size of the compressed data set; encoding said data blocks by applying the translation contained in said encoding tables to said data blocks; generating an index table that references each data block to a corresponding encoding table; translating said encoding table into a decoding table; producing a compressed file including said index table, said decoding tables, and said encoded data blocks; and storing said file on a storage medium. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. An apparatus for coding a data set made up of several short blocks of data, comprising:
-
an input for receiving said data set; means for partitioning said data set such that each data block is assigned to a specific cluster of data blocks; means for generating a set of encoding tables for each cluster that specify a translation of said data blocks into binary codes; means for encoding said data blocks by applying the translation contained in said encoding tables to said data blocks; means for generating an index table that references each data block to a corresponding encoding table, said table generating means further comprising; means for grouping said data blocks according to a selected common characteristic to produce a number of data clusters; and means for assigning said data blocks to said data clusters such that the sum;
space="preserve" listing-type="equation">S=S.sub.T +S.sub.Eis minimized, where ST denotes the size of the encoding tables that are stored together with the encoded data blocks, SE denotes the size of the encoded data blocks, and S denotes the total size of the compressed data set; means for generating a set of decoding tables from said encoding tables; means for producing a compressed file including said index table, said decoding tables, and said encoded data blocks; and means for storing said file on a storage medium. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
Specification