Тип работы:
Предмет:
Язык работы:


Анализ возможности и эффективности параллельной реализации алгоритма packJPG

Работа №125337

Тип работы

Бакалаврская работа

Предмет

информатика

Объем работы25
Год сдачи2017
Стоимость4750 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
11
Не подходит работа?

Узнай цену на написание


Введение 4
1. Предварительные сведения 5
1.1. Стандарт сжатия изображений JPEG 5
1.1.1. Кодирование 5
1.1.2. Декодирование 8
1.2. Сжатие JPEG изображений без потерь 9
1.3. Технология OpenMP 10
2. Алгоритм packJPG 11
2.1. Paeth предиктор 11
2.2. Использование списков концов блоков 11
2.3. Оптимизированное сканирование 12
2.4. Арифметическое кодирование 12
3. Анализ возможности реализации с помощью технологии OpenMP 14
3.1. Анализ существующего кода приложения 14
3.1.1. JPEG кодирование и декодирование 14
3.1.2. Предиктивное кодирование 14
3.1.3. Арфимитическое кодирование 15
3.2. Рефакторинг существующего кода 17
3.2.1. Реструктуризация исходного кода 17
3.2.2. Дублирование кода 17
3.2.3. Длинные методы 18
3.3. Модификация с помощью технологии OpenMP 18
3.3.1. Поиск узких мест программы 18
3.3.2. Параллельные модификации 19
3.3.3. Проблемы модификации 21
4. Результаты 23
Заключение 24
Список литературы 25

Быстрое развитие IT технологий позволило в настоящее время даже в мобильных устройствах иметь более чем один процессор, что способствует более быстрому выпол­нению трудоемких операций при условии использования алгоритмов параллельных вычислений. Однако, еще далеко не все программы и алгоритмы адаптированы для многопроцессорных (многоядерных) архитектур, такие программы работают неэф­фективно, так как не используют всю мощь современных устройств. Поэтому задача адаптации алгоритмов для параллельных вычислений является важной и актуальной.
В данной работе рассмотрен один из самых эффективных алгоритмов сжатия изоб­ражений без потерь PackJPG, который уступает другим алгоритмам этой области лишь по времени работы. Было проведено исследование возможности адаптации дан­ного алгоритма и его реализация для многопроцессорной архитектуры с помощью технологии OpenMP. Выполнена сравнительная оценка времени работы данного ал­горитма и его параллельной модификации.
Актуальность работы обусловлена еще и тем, что данный алгоритм дает суще­ственную экономию объема JPEG-изображения (до 26%) без потери качества, что недоступно при использовании архиваторов, но требует значительных затрат време­ни на сжатие и распаковку. Скорость кодирования составляет 600 килобайт в секунду. Параллельные вычисления позволили бы сократить это время в несколько раз, до­ведя до приемлемых величин для небольших изображений. Сложность исследования возможности параллельной реализации алгоритма связана с тем, что спецификация программы и математическое описание недоступно в открытой печати , фактически данная работа выполнялась путем анализа алгоритма по исходному коду.

Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


В настоящей дипломной работе был проведен анализ возможности и эффектив­ности параллельной реализации на примере алгоритма packJPG, являющегося ком­понентом одноименной программы. В процессе выполнения работы был изучен стан­дарт изображений JPEG и его представление, кодирование и декодирование. Также осуществлен анализ алгоритмов сжатия JPEG без потерь и выявлены основные пре­имущества и недостатки алгоритма packJPG.
В ходе основного этапа работы был осуществлен анализ кода и выявлены его основные компоненты. Данная процедура потребовала массивного рефакторинга су­ществующего кода. На основе этого было выполнено более детальное описание алго­ритма.
Параллельная реализация осуществлялась с помощью техники инкременатального программирования. Процедура реализации выполнялась итеративно. Итерация пред­ставляла из себя параллельную реализацию фрагмента кода и оценку эффективности этой модификации. В некоторых частях кода ее произвести оказалось невозможным, в связи со спецификой программы.
Проведенная работа может быть продолжена в виде реализации данного алго­ритма для графических вычислительных устройств, так как код наполнен большим количеством циклов, работающих с одноразмерными и двуразмерными векторами. Видеокарта имеет большое количеством ядер для вычисления, что должно увеличить эффективность проведенной реализации, если ее удастся адаптировать для видеокарт.


[1] Mitchell William B. Pennebaker; Joan L. JPEG still image data compression standard.- 1993. -P. 290-293.
[2] Stirner Matthias, Seelmann Gerhard. IMPROVED REDUNDANCY REDUCTION FOR JPEG FILES. - 2007.
[3] А.С. Антонов. Параллельное программирование с использованием OpenMP. — Изд-во МГУ, 2009.
[4] The JPEG Specification // http://www.iso.org/iso/home/store/catalogue_tc/ catalogue_detail.htm?csnumber=59634. — 2012.
[5] The PNG Specification // https://www.w3.org/TR/PNG-Structure.html. — 1996.
[6] The official packJPG site // http://packjpg.encode.ru.
[7] The official OpenMP site // http://www.openmp.org.
[8] The official CMake site // https://cmake.org.
[9] The official valgrind site // http://valgrind.org.


Работу высылаем на протяжении 30 минут после оплаты.




©2025 Cервис помощи студентам в выполнении работ