1 / 15

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

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

devin
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 “А” Научный руководитель:Дединский Илья Рудольфович

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

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

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

  5. Алгоритм Хаффмана Алгоритм Хаффмана строит коды символов по частоте их встречаемости в файле 1 этап: построение таблицы частот Входной файл: ABACABADABACABA Дедков Антон 11 "А"

  6. 3 2+1 2 этап:построение дерева 3 2+1 15 8+7 C2 D1 3 2+1 A8 C2 B4 D1 C2 D1 A8 min min 0 1 C2 D1 A8 B4 0 1 7 4+3 min min 0 1 7 4+3 0 1 B4 0 1 B4 A8 0 1 min min Дедков Антон 11 "А"

  7. 3 этап: кодирование 15 8+7 3 2+1 Исходный текст: ABACABADABACABA 1 0 A8 • Кодирование одного из символов ( С ): • Находим лист с символом С • Проходим путь от листа до корня, накапливая биты (011) • Переворачиваем полученную последовательность • Получаем код символа • С (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 Дедков Антон 11 "А"

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

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

  10. 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 1 File4 Block 2 File (“/subdir1/subdir2/file4”) DataBlocks quf(root(subdir(“subdir1”,subdir(“subdir2”, file(“file4”))… Дедков Антон 11 "А"

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

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

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

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

More Related