HOME

TheInfoList



OR:

In
computing Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithmic processes, and development of both hardware and software. Computing has scientific, e ...
, solid compression is a method for
data compression In information theory, data compression, source coding, or bit-rate reduction is the process of encoding information using fewer bits than the original representation. Any particular compression is either lossy or lossless. Lossless compression ...
of multiple files, wherein all the uncompressed files are concatenated and treated as a single data block. Such an archive is called a solid archive. It is used natively in the 7z and RAR formats, as well as indirectly in tar-based formats such as .tar. gz and .tar. bz2. By contrast, the ZIP format is not solid because it stores separately compressed files (though solid compression can be emulated for small archives by combining the files into an uncompressed archive file and then compressing that archive file inside a second compressed ZIP file).


Explanation

Compressed file formats often feature both compression (storing the data in a small space) and
archiving An archive is an accumulation of historical records or materials – in any medium – or the physical facility in which they are located. Archives contain primary source documents that have accumulated over the course of an individual or ...
(storing multiple files and metadata in a single file). One can combine these in two natural ways: * compress the individual files, and then archive into a single file; * archive into a single data block, and then compress. The order matters (these operations do not
commute Commute, commutation or commutative may refer to: * Commuting, the process of travelling between a place of residence and a place of work Mathematics * Commutative property, a property of a mathematical operation whose result is insensitive to th ...
), and the latter is solid compression. In Unix, compression and archiving are traditionally separate operations, which allows one to understand this distinction: * Compressing individual files and then archiving would be a tar gzip-compressed files this is very uncommon. * Archiving various uncompressed files via tar and compressing yields a compressed archive: a .tar.gz file this is solid compression. ;A rough graphical representation: In this example, three files each have a common part with the same information, a unique part with information not in the other files, and an "air" part with low-entropy and accordingly well-compressible information.

original file A
common unique air
original file B
common unique air
original file C
common unique air
non solid archive:
common A   common B   common C  
solid archive:
common A B C  


Rationale


Benefits

Solid compression allows for much better compression rates when all the files are similar, which is often the case if they are of the same
file format A file format is a standard way that information is encoded for storage in a computer file. It specifies how bits are used to encode information in a digital storage medium. File formats may be either proprietary or free. Some file formats ...
. It can also be efficient when archiving a large number of small files.


Costs

On the other hand, getting a single file out of a solid archive requires processing all the files before it, so modifying solid archives could be slow and inconvenient. On newer formats such as 7-zip, there is a ''solid block size'' option that allows for the concatenated data block to be split into individually-compressed smaller blocks, so that only a limited amount of data in the block must be processed in order to extract one file. Parameters control the maximum solid block window size, the number of files in a block, and whether blocks are separated by file extension. Additionally, if the archive becomes even slightly damaged, some of the data (sometimes even all data) after the damaged part in the block can be unusable (depending on the compression and archiving format), whereas in a non-solid archive format, usually only one file is unusable and the subsequent files can usually still be extracted.


References

{{DEFAULTSORT:Solid Compression Data compression