Lossless data compression enables reconstruction of all of the original data from a compressed form of the data. During initial data compression, application of a reversible transform typically rearranges the original data into transformed data, and subsequent application of a compression algorithm compresses the transformed data to provide the compressed form of the data.
During data reconstruction, application of a decompression algorithm un-compresses the compressed form of the data to provide the transformed data. Next, application of the reversible transform (i.e., an inverse transform process) rearranges the transformed data back into the original data.
The Burrows-Wheeler Transform (BWT) is an example of a reversible transform which has been successfully applied as a first stage for compression of a data file (e.g., as a front-end to a bzip2 compression process). Along these lines, the file type extension (e.g., .txt, .utx, .jpg, etc.) initially identifies certain characteristics of the contents of the data file such as the true bit-length of the data contained within the data file (i.e., the actual bit-length of the characters/symbols/pixels/etc. within the data file). Once the true bit-length is known, the contents of the data file are correctly parsed into sequence based on the true bit-length for proper data transformation and compression. A description of the BWT is provided in a publication entitled “A Block-sorting Lossless Data Compression Algorithm” by M. Burrows and D. J. Wheeler, the teachings of which are hereby incorporated by reference in their entirety.