Практическое сжатие документов OpenDocument в цифрах. Продолжение

Продолжая тему сжатия документов используя форматы OOXML и OpenDocument на сей раз подробнее остановлюсь на OpenDocument и затрону тему преобразования существующих форматов MS Office в формат OpenDocument и сравнение с преобразованием аналогичной выборки в OOXML с помощью b2xtranslator.

Для оценки сжимания документов использовалась выборка из 566 файлов в формате MS Word 2000/XP/2003 (.doc) из архивов Енота Поискуна суммарным объёмом в 70 745 088 байт, а то есть около 70 мегабайт. Эта выборка отличается от выборки из прошлого исследования, так как при анализе результатов преобразования в OOXML с помощью b2xtranslator оказалось что много файлов Excel преобразовались с ошибками (как я и упоминал b2xtraslator всё ещё очень сырой продукт) и для эталонной выборки была взята выборка из документов MS Word.  Впрочем и здесь полагаться на результаты преобразования с помощью b2xtranslator на 100%  нельзя так как он иногда портит файлы (а иногда виснет, но для этого эксперимента файлы где он вис не учитывались).

Для OpenDocument сжатие проводилось в два шага:

1. Преобразование документа в OpenDocument с помощью OpenOffice

2. Дожатие документа различными способами — пережатие контейнера, чистка мусора, сжатие картинок и так далее.

Аналогично для OOXML были два шага:

1. Преобразование документа в OOXML (WordML) с помощью b2xtranslator

2. Дожатие документа пережатием контейнера и сжатием картинок.

Особенность эксперимента в том что картинок то было совсем немного — практически небыло вовсе, отсюда главное что показывал эксперимент — это сжатие и дожатие текстовых структурированных документов.

Первый шаг

При преобразовании документов из .doc в OpenDocument их итоговый объём без пережатия составил 20 511 664 байт или 28,99% от начального объёма.

При преобразовании документов из .doc в OOXML их итоговый объём без пережатия составил 11 266 825 байт или 15,93% от начального объёма

Можно обратить внимание что документы OOXML существенно меньше что, в общем-то, выглядит несколько странно учитывая что данные там одной природы — текстовой. Можно, конечно, предположить что OOXML лучше поддаётся сжатию, но в реальности ситуация более прозаична. О ней я упоминал раньше и опишу далее.

Дожатие OpenDocument

Если в первой части эксперимента оказалось что OOXML создаваемые b2xtranslator меньше чем документы создаваемые при конвертации посредством OpenOffice, то во второй части мы посмотрим насколько они поддаются дожатию.

Для документов OpenDocument к каждому из них применялись следующие способы уменьшения их размера:

1.  Удаление thumbnail и прочего «мусора’ оставляемого OpenOffice’ом

2. Пережатие изображений (если они есть)

3. Пережатие ZIP-контейнера

После всех этих операций итоговый объём документов составил 10 231 845 мегабайт или 14,46% от начального объёма.

Можно обратить внимание что документы OpenDocument после дожатия уменьшились вдвое и это показатель того насколько неэффективно OpenOffice сохраняет документы.

Дожатие OOXML

Для документов OOXML сосздаваемых b2xtranslator применялись те же оптимизационные способы что и в прошлом эксперименте:

1.  Пережатие изображений (если они есть)

2. Пережатие ZIP-контейнера

Необходимость в чистке мусора отсутствовала поскольку b2xtranslator выдаёт максимально «чистый файл», без ненужной для отображения и работы информации.

Итоговый объём документов после дожатия составил 10 937 971 мегабайт или 15,46% от начального объёма

Резюме

По результатам экспериментов можно сказать что OpenDocument ничуть не хуже чем OOXML пригоден для архивного хранения документов. Разница в  1% в пользу OpenDocument по результатам сравнения дожатых документов не столь существенна чтобы говорить о серьёзном преимуществе, но говорить о том что документы OOXML получаются значительно меньше чем OpenDocument будет некорректно.

В то же время, несмотря на положительные результаты сравнения форматов, основной проблемой использования OpenDocument можно назвать OpenOffice. В частности, значительная разница между недожатыми документами OpenDocument и OOXML состоит в том что OpenOffice всегда закладывает в файлы OpenDocument изображение thumbnail и довольно плохо сжимает ZIP-контейнер. В итоге, преобразование документов для архивного хранения в OpenDocument нужно осуществлять без использования OpenOffice, но для этого всё ещё нет подходящих инструментов или же дожимать  созданные в OpenOffice файлы до приемлимого объёма.

P.S. В последнии дни мой основной блог из-за смены хостинга и обновления до WordPress 2.8 работал с перебоями, но зеркало на Livejournal должно работать всегда. Найти его можно тут — ivbeg.livejournal.com.


About This Author

  • Ilya Kashapov

    Иван, а почему в тестах не участвует формат .docx, от MS Word 2007?

  • http://ivan.begtin.name ivbeg

    Я думаю что в следующем тесте добавлю это преобразование, но врядли оно будет лучше чем у b2xtranslator который позиционируется как набор утилит для преобразования большого числа документов и разрабатывается при поддержке Microsoft и на их деньги.

Яндекс.Метрика