В вычислительной технике сплошное сжатие — это метод сжатия данных нескольких файлов, при котором все несжатые файлы объединяются и обрабатываются как единый блок данных. Такой архив называется сплошным архивом. Он изначально используется в форматах 7z [1] и RAR [2] , а также косвенно всмола-форматы, такие как.tar.gzи.tar.bz2. Напротив, формат ZIP не является сплошным, поскольку он хранит отдельно сжатые файлы (хотя сплошное сжатие можно эмулировать для небольших архивов, объединив файлы в несжатый архивный файл, а затем сжав этот архивный файл во второй сжатый ZIP-файл). [3] [4]
Сжатые форматы файлов часто включают в себя как сжатие (хранение данных в небольшом пространстве), так и архивирование (хранение нескольких файлов и метаданных в одном файле). Их можно объединить двумя естественными способами:
Порядок имеет значение (эти операции не коммутируют ), и последнее представляет собой надежное сжатие.
В Unix сжатие и архивирование традиционно являются отдельными операциями, что позволяет понять это различие:
В этом примере три файла имеют общую часть с одинаковой информацией, уникальную часть с информацией, которой нет в других файлах, и «воздушную» часть с низкоэнтропийной и, соответственно, хорошо сжимаемой информацией.
исходный файл А
исходный файл B
исходный файл C
не сплошной архив:
сплошной архив:
Сплошное сжатие обеспечивает гораздо более высокую степень сжатия, когда все файлы похожи, что часто бывает, если они имеют одинаковый формат файла . Это также может быть эффективно при архивировании большого количества небольших файлов.
С другой стороны, получение одного файла из сплошного архива требует обработки всех файлов до него, поэтому изменение сплошных архивов может быть медленным и неудобным. В более новых форматах, таких как 7-zip, есть опция размера сплошного блока , которая позволяет разбить объединенный блок данных на индивидуально сжатые меньшие блоки, так что для извлечения одного файла необходимо обработать только ограниченное количество данных в блоке. Параметры управляют максимальным размером окна сплошного блока, количеством файлов в блоке и разделением блоков по расширению файла. [5]
Кроме того, если архив даже немного поврежден, некоторые данные (иногда даже все данные) после поврежденной части в блоке могут оказаться непригодными для использования (в зависимости от сжатия и формата архивации), тогда как в формате несплошного архива обычно непригодным для использования оказывается только один файл, а последующие файлы, как правило, все равно можно извлечь.
-ms=on[:] solid archive on