Кот-ученый (livejohan) wrote,
Кот-ученый
livejohan

Дави его!

Запись опубликована в блоге www.johan.pp.ru

Помните Arj? Это архиватор был такой в стародавние времена :-) Если помните, то помните наверняка и про интересную особенность тогдашних архиваторов: если файл сжать сначала одним (например, arj), а потом другим (скажем, zip), то итоговый размер получался меньше, чем при использовании каждого из этих архиваторов по отдельности (или одного и того же два раза). Причина этого заключалась в несовершенстве алгоритмов сжатия. Принцип работы любого архиватора заключается в устранении избыточности информации: как правило в любом файле некоторые байты (или даже группы байтов) повторяются чаще, нежели остальные. Архиватор заменяет их более короткими блоками, в результате чего размер файла становится меньше, а вместо, например, осмысленного текста он теперь представляет псевдослучайную последовательность непонятных символов. Так вот, когда развитие алгоритмов сжатия только начиналось, архиваторы устраняли избыточность не полностью (хотя сами «считали», что уже как бы всё), при этом другой алгоритм мог «дожать» файл ещё чуть-чуть.

В настоящий момент все современные архиваторы используют возможности своих алгоритмов по максимуму, и вышеописанный способ не работает (по этой же причине не сжимаются картинки в jpeg или фильмы: сжатые картинки и фильмы по сути своей являются архивами, а с точки зрения другого архиватора — случайной последовательностью). Однако, в некоторых случаях архивация файлов в два этапа позволяет уменьшить размер архива в несколько (!) раз. Об этом и пойдет речь в статье.

Самым популярным сейчас является архиватор (точнее, формат) Zip. Самым популярным, но далеко не самым лучшим, однако, если вы хотите, чтобы файл можно было распаковать всегда и везде, лучше использовать именно его. Во всех хороших архиваторах присутствует возможность создания «непрерывного архива», когда несколько упаковываемых файлов обрабатываются как единый поток. При упаковке однотипных файлов это позволяет уменьшить размер архива за счет того, что степень избыточности у них похожая и повторяющиеся фрагменты одинаковые. В Zip такой возможности нет, все файлы он сжимает по отдельности. Поэтому, если вам нужно упаковать несколько файлов, есть смысл предварительно записать их последовательно друг за другом. Логичнее и проще всего сделать это средствами самого архиватора: просто упакуйте файлы с настройкой «Без сжатия», содержимое их при этом не изменится, но вместо нескольких файлов получится один. После этого полученный архив упакуйте с максимальными настройками. Если файлов много и они похожи (html-страницы, например), разница между обычной упаковкой и описанным способом может быть очень существенной.

Но это ещё не всё :-) Если вы пользуетесь, например, пакетом OpenOffice.org, то, возможно, знаете, что документы в нём представляют собой несколько xml-файлов, упакованных в обычный zip-архив с измененным расширением. Однако, степень сжатия у встроенного в OpenOffice алгоритма меньше, чем у отдельных архиваторов, кроме того, zip-архивы имеют описанный выше недостаток, а сжать документ OpenOffice другим архиватором не получится (потому что это уже архив). В этом случае, если вдруг очень нужно сжать документ «по максимуму», можно пойти на хитрость.

  • Переименовываем, например, .odt файл в.zip.
  • Распаковываем его содержимое, запаковываем обратно с настройкой «Без сжатия» и переименовываем обратно в .odt: размер файла увеличится, но он будет продолжать нормально открываться, потому что это всё-таки zip-архив.
  • Если теперь запаковать его хорошим архиватором (например, 7-zip*), то размер полученного файла будет существенно меньше, чем был изначально.

Конечно, описанные здесь хитрости не рассчитаны для ежедневного использования, но в случае, когда, например, файл «не полазит» в почту — кое-что вполне может пригодиться.

__________
* 7-zip не имеет (почти) ничего общего с обычным zip-ом, это архиватор, который сжимает лучше, чем любимый в народе Rar, но при этом он бесплатный, открытый и кросс-платформенный, а кроме того, умеет (очень хорошо) сжимать в zip и распаковывает большинство популярных форматов. Настоятельно рекомендуется к использованию.

Creative Commons License This work is licensed under a Creative Commons Attribution-Noncommercial 3.0 Unported License.


Для тех, кто уже делает, или только планирует ремонт, наверняка будет интересно узнать, где найти стройматериалы в Киеве, а также выяснить, где цены на стройматериалы самые низкие. Интернет-магазин стройматериалов поможет вам в этом.

Tags: 7-zip, hints, howto, openoffice.org, zip, ахривация, софт
Subscribe

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 5 comments