is an option meant
to improve compression ratio providing a wider context for compression
algorithm while compressing multiple files.
The ideas behind solid compression are simple and effective:
- when multiple files are processed as a single
(especially similar files, i.e. same type, or even revisions of the
same file), it is possible to find redundant data between the files of
the group, improving efficiency of compressed representation of the
data better than treating each file separately
- when many small files are processed as a single
block, overhead content (marker of file begin/end, checksum, table of
content) is written only once rather than once per file, saving extra
bytes of size for each input object.
Solid compression is used in compressed TAR
files (TAR.GZ, TAR.BZ2,
TGZ, TXZ...), and it is available as option for some archival formats,
like 7Z and RAR.
Main drawbacks of solid compression are:
- the context information is needed also during
compression / extraction to preserve the advantage of solid
compression. So, the partial extraction (a single file or group of file
rather than the whole archive) from a solid archive, or adding or deleting
already existing solid archive, needs more time because all the
relevant context data (usually defined "solid block") must be parsed,
making the process significantly slower than adding / extracting data
from a non solid archive
- for the very same reason, a damage in any part
may make all the data after that point non-usable for lack of context
information needed for extraction, while data corruption in non solid
archive usually harms only the data of a single file.
To mitigate those disadvantages, 7Z format allows to choose the block
size to be used for
solid mode operation (the "window" of data context that is parsed by
compression/extraction algorithm) minimizing overhead during
extraction, and possible impact of data corruption - but for the very
same reason reducing solid block size potentially reduces compression
Solid blocks can be defined by size, number of files in a block, and if
blocks are separated by file extension.
External online resources: solid compression definition
Topics and serach suggestions: solid compression advantages and
drawbacks, manage file extraction from solid archive, optimize data
efficiency, improve compression ratio, solid block size, context
window, RAR, optimization, handle 7Z solid mode file, TAR.GZ/.BZ.