1 / 16

Quffman Кроссплатформенная реализация алгоритма сжатия Хаффмана

Quffman Кроссплатформенная реализация алгоритма сжатия Хаффмана. Авторы : Дедков Антон 11 “ А ” , Шевелев Александр 11 “ А ” Научный руководитель : Дединский Илья Рудольфович. Цель работы.

quyn-hill
Download Presentation

Quffman Кроссплатформенная реализация алгоритма сжатия Хаффмана

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. QuffmanКроссплатформенная реализация алгоритма сжатия Хаффмана Авторы: Дедков Антон 11 “А”, Шевелев Александр 11 “А” Научный руководитель: Дединский Илья Рудольфович

  2. Цель работы Создание кроссплатформенной библиотеки для сжатия данных методом Хаффмана, а также CLI и GUI фронтендов для взаимодействия конечного пользователя с ней. Дедков Антон 11 "А". Шевелев Александр 11 "А".

  3. Задачи • Реализация алгоритма сжатия методом Хаффмана • Анализ факторов, влияющих на скорость и качество сжатия • Создание формата хранения сжатых данных • Разработка архитектуры библиотеки сжатия • Реализация CLI (интерфейса командной строки) • Реализация GUI на основе фреймворкаQt Дедков Антон 11 "А". Шевелев Александр 11 "А".

  4. Сжатие данных С искажениями Архив Типы сжатия: • Сжатие с потерями • Сжатие без потерь Виды кодов: • Равномерные • Неравномерные Архив Без искажений A B A C Выигрыш A B A C Дедков Антон 11 "А". Шевелев Александр 11 "А".

  5. Алгоритм Хаффмана Алгоритм Хаффмана - алгоритм построения кодов символов по частоте их встречаемости в файле Этапы: • Создание таблицы частот • Построение дерева • Кодирование Дедков Антон 11 "А". Шевелев Александр 11 "А".

  6. Таблица частот Содержимое входного файла: ABACABADABACABA Послепосимвольного считывания файла получим результат:

  7. Построение дерева 15 8+7 D1 C2 B4 A8 3 2+1 3 2+1 3 2+1 A8 0 1 C2 D1 C2 D1 C2 D1 C2 D1 7 4+3 7 4+3 1 0 0 1 B4 B4 0 1 1 0 1 0

  8. Кодирование 15 8+7 3 2+1 Исходный текст: ABACABADABACABA 1 0 A8 • Кодирование одного из символов ( С ): • Находим лист с символом С • Проходим путь от листа до корня, накапливая биты • Переворачиваем полученную последовательность • Получаем код символа • С ( 110 ) C2 D1 0 1 7 4+3 0 1 B4 (A) ( B )(A) ( C ) (A)( B )(A) ( D ) (A)( B )(A) ( C ) (A)( B )(A) В результате:0 100110010011101001100100

  9. Качество сжатия • Качество и мощность алфавита: Дедков Антон 11 "А". Шевелев Александр 11 "А".

  10. Архитектура библиотеки • Взаимодействие программы происходит только с ядром • Ядро предоставляет инструменты для работы с файловой системой архива • Модуль, отвечающий за кодирование, абстрагирован от каких либо внешних факторов, он взаимодействует лишь с пакетами данных (CompressorData), которые формирует для него ядро lib_quffman Compressor CompressorData Core Application FileSystem Дедков Антон 11 "А". Шевелев Александр 11 "А".

  11. archive.quf DataFormat Root directory (“/”) SystemInfo • Архив содержит всю информацию о данных • Атрибуты: quf, root, subdir, file, block Subdirectory (“/subdir1”) File (“/file1”) File (“/file2”) Subdirectory (“/subdir1/subdir2”) File (“/subdir1/file3”) File4 Block 2 File4 Block 2 File (“/subdir1/subdir2/file4”) DataBlocks quf(root(subdir(“subdir1”,subdir(“subdir2”, file(“file4”))… Дедков Антон 11 "А". Шевелев Александр 11 "А".

  12. Проблемы • Появление в сжатых файлах системной информации • Соотношение скорость/качество сжатия • Проблема переполнения • Проблема “обратного слеша Дедков Антон 11 "А". Шевелев Александр 11 "А".

  13. Итоги • Реализован алгоритм сжатия методом Хаффмана • Создан формат для хранения сжатых данных • Разработана архитектуры библиотеки сжатия • Реализован CLI • Реализован прототип GUI на основе фреймворка Qt Дедков Антон 11 "А". Шевелев Александр 11 "А".

  14. Дальнейшее развитие • Перенос вычислений на многопроцессорные системы с использованием OpenCL • Реализация клиент-серверной архитектуры • Доработка GUI Дедков Антон 11 "А". Шевелев Александр 11 "А".

  15. Спасибо за внимание! Самая свежая версия всегда ждет вас на quffman.googlecode.com Дедков Антон 11 "А". Шевелев Александр 11 "А".

More Related