Вопросы для самоконтроля
1. Какие свойства данных определяют принципиальную возможность их сжатия с помощью LZ-методов?
2. В чем основная разница между алгоритмами семейства LZ77 и семейства LZ78?
3. Какие особенности строения словаря LZ77 позволяют создавать для одного и того же входного файла несколько различных архивных, которые затем можно разжать без потерь информации с помощью одного и того же декодера LZ77? Возможно ли это в случае алгоритма LZ78?
4. Почему в алгоритмах семейства LZ77 короткие строки часто выгоднее сжимать не с помощью словарной замены, а через кодирование как последовательности литералов? Каким образом это связано с величиной смещения фразы, совпадающей со строкой?
5. Приведите пример блока данных, которые в общем случае выгоднее сжимать алгоритмом семейства LZ77, нежели семейства LZ78, а также выбор между алгоритмами семейства LZ77 или семейства LZ78, если задаваться только целью максимизации степени сжатия?
6. Почему дистрибутивы программного обеспечения целесообразно архивировать с помощью алгоритмов семейства LZ77?
7. В каких случаях имеет смысл использовать методы кодирования целых чисел - коды Элиаса, Голомба и 'т. п. - для сжатия потоков смещений и длин совпадения?
8. Применим ли алгоритм "почти оптимального" разбора для методов LZ77, рассмотренный в подразд. "Пути улучшения сжатия для методов LZ", для обработки потоков? Можно ли однозначно сказать, что любая стратегия получения оптимального разбора требует поблочной обработки данных?
9. Почему применение контекстно-зависимых словарей улучшает степень сжатия для алгоритмов семейства LZ78 значительно больше, чем для алгоритмов семейства LZ77?
- Теги:
- 313 просмотров









