Алгоритмы сжатия графической информации

Классы алгоритмов, позволяющие уменьшить объем данных, представляющих изображение. Словарь цепочек (созданный по входной последовательности) для кодирования элементов. Замена повторного вхождения строки ссылкой на одну из предыдущих позиций вхождения.

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 03.10.2017
Размер файла 17,5 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Министерство образования и науки Российской Федерации

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

Саратовский государственный университет имени Н.Г. Чернышевского

Кафедра теоретических основ компьютерной безопасности и криптографии

Контрольная работа

На тему: "Алгоритмы сжатия графической информации"

Выполнил: студент 1 курса

Беззуба Дмитрий Владимирович

Научный руководитель: проф., канд. физ.-мат. наук

В.Н. Салий

Саратов, 2012 год

Типичное изображение, полученное цифровой фотокамерой, имеет разрешение порядка 3000x2000, т.е. около 6 мегапикселей; для передачи цвета обычно используется 24 бита на пиксель. Таким образом, объем исходных данных составляет порядка 17 мегабайт. Для профессиональных устройств ввода изображений размер получаемого растра может быть значительно больше, а глубина цвета - достигать 48 бит на пиксель (см. лекцию 2). Соответственно, размер одного изображения может быть больше 200 мегабайт. Поэтому весьма актуальными являются алгоритмы сжатия изображений, или, иными словами, алгоритмы, которые позволяют уменьшить объем данных, представляющих изображение.

Существуют два основных класса алгоритмов:

1) Алгоритм сжатия без потерь.

Если существует алгоритм A-1 (обратный к A) такой, что для любого изображения I:

A(I) = I1

A-1(I1) = I

Изображение I задано как множество значений атрибутов пикселей; после применения к I алгоритма A получаем набор данных I1. Сжатие без потерь применяется в таких графических форматах представления изображений, как: GIF, PCX, PNG, TGA, TIFF.

2) Алгоритм сжатия с потерями.

Такие алгоритмы не обеспечивают возможность точного восстановления исходного изображения. Парный к A алгоритм, обеспечивающий примерное восстановление, будем обозначать как A*: для изображения I:

алгоритм кодирование данные изображение

A(I) = I1

A*(I1) = I2

И при этом полученное восстановленное изображение I2 не обязательно точно совпадает с I. Пара A, A* подбирается так, чтобы обеспечить большие коэффициенты сжатия и, тем не менее, сохранить визуальное качество, т.е. добиться минимальной разницы в восприятии между I и I2. Сжатие с потерями применяется в следующих графических форматах: JPEG, JPEG2000 и т.д.

Алгоритмы RLE. Этот тип алгоритмов базируется на простейшем принципе: будем заменять повторяющиеся группы элементов исходной последовательности на пару (количество, элемент), либо только на количество.

Рассмотрим чёрно-белое изображение. Будем рассматривать исходные данные на уровне последовательности битов. Подряд идет несколько 0 или 1, и можно помнить лишь количество идущих подряд одинаковых цифр. Возникает следующий нюанс: числа, обозначающие количество повторений, также надо кодировать битами. Можно считать, что каждое число повторений изменяется от 0 до 7 (т.е. можно закодировать ровно тремя битами). Для примера, последовательность, состоящая из 21 единицы, 21 нуля, 3 единиц и 7 нулей закодируется так:

111 000 111 000 111 111 000 111 000 111 011 111

т.е. из исходной последовательности, которая имеет длину 51 бит, получили последовательность длиной 36 бит. Идея этого метода используется при передаче факсов.

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

ABCABCABCABCDDEFFFFFFFF

1A 1B 1C 1A 1B 1C 1A 1B 1C 1A 1B 1C 2D 1E 8F

Проблема решается достаточно просто. Алфавит, в котором записаны длины серий, разделяется на две (обычно равные) части. Алфавит целых чисел можно, например, разделить на две части: положительные и отрицательные. Положительные используют для записи количества повторяющихся одинаковых символов, а отрицательные -- для записи количества неодинаковых.

-12ABCABCABCABC 2D 1E 8F

Такая модификация данного алгоритма используется в формате PCX.

Словарные алгоритмы. Главная идея, лежащая в основе алгоритмов данного типа, заключается в том, что вместо кодирования только по одному элементу входящей последовательности производится кодирование цепочки элементов. При этом используется словарь цепочек (созданный по входной последовательности) для кодирования новых.

LZ77 и LZ78 -- алгоритмы сжатия без потерь, опубликованные в статьях Абрахама Лемпеля и Якоба Зива в 1977 и 1978 годах соответственно.

Основная идея алгоритма это замена повторного вхождения строки ссылкой на одну из предыдущих позиций вхождения. Для этого используют метод скользящего окна. Скользящее окно можно представить в виде динамической структуры данных, которая организована так, чтобы запоминать «сказанную» ранее информацию и предоставлять к ней доступ.

Один из достаточно простых вариантов этого алгоритма, например. Предполагает, что во входном потоке идёт либо пара <счётчик, смещение относительно текущей позиции>, либо просто <счётчик> пропускаемых байт и сами значения байтов. При разархивации для пары <счётчик, смещение> копируется <счётчик> байт из выходного массива, полученного в результате разархивации, на <смещение> байт раньше, а <счётчик> (т.е. число равное счётчику) значений пропускаемых байт просто копируется в выходной массив из входного потока. При этом мы получим увеличение размера файла в худшем случае на 32770/32768 (в двух байтах записано что нужно переписать в выходной поток следующие 215 байт), что совсем не плохо. Максимальная степень сжатия составит в пределе 8192 раза. В пределе, поскольку максимальное сжатие мы получаем, превращая 32Кб буфера в 4 байта, а буфер такого размера мы накопим не сразу. Однако, минимальная подстрока, для которой нам выгодно проводить сжатие, должна состоять в общем случае минимум из 5 байт, что и определяет малую ценность данного алгоритма. К достоинствам LZ можно отнести чрезвычайную простоту алгоритма декомпрессии.

Алгоритм Лемпеля-Зива-Велча (Lempel-Ziv-Welch, LZW) -- это универсальный алгоритм сжатия данных без потерь, созданный Абрахамом Лемпелем (англ. Abraham Lempel), Якобом Зивом (англ. Jacob Ziv) и Терри Велчем (англ. Terry Welch). Он был опубликован Велчем в 1984 году, в качестве улучшенной реализации алгоритма LZ78, опубликованного Лемпелем и Зивом в 1978 году. Алгоритм разработан так, чтобы его можно было быстро реализовать, но он не обязательно оптимален, поскольку он не проводит никакого анализа входных данных.

Процесс сжатия выглядит достаточно просто. Мы считываем последовательно символы входного потока и проверяем, есть ли в созданной нами таблице строк такая строка. Обычно таблица инициализируется так, что первые строчки заполнены всеми различными цепочками из одного элемента. Если строка есть, то мы считываем следующий символ, а если строки нет, то мы заносим в поток код для предыдущей найденной строки, заносим строку в таблицу (словарь) и начинаем поиск снова.

В теории на размер таблицы не накладывается ограничений, однако ограничение на размер позволяет улучшить степень сжатия, т.к. накапливаются ненужные (возможно, более не встречающиеся) цепочки. Чем больше вхождений имеет таблица, тем больше информации нужно выделять для хранения кодов. Соответственно резервируется специальный код, обозначающий очистку таблицы (точнее, приведение ее к исходному состоянию).

К достоинствам алгоритма можно отнести высокую степень сжатия и достаточно высокую скорость, как сжатия, так и разжатия. К недостаткам до недавнего времени относили патентную защищенность алгоритма, однако с середины 2004 года этот недостаток не актуален.

Модификации LZW используются во множестве архиваторов общего назначения, а также в таких форматах как GIF и TIFF.

Литература

http://www.sernam.ru/cod_5.php

http://www.intuit.ru/department/graphics/rastrgraph/13/3.html

http://ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%9B%D0%B5%D0%BC%D0%BF%D0%B5%D0%BB%D1%8F_%E2%80%94_%D0%97%D0%B8%D0%B2%D0%B0_%E2%80%94_%D0%92%D0%B5%D0%BB%D1%87%D0%B0

http://www.intuit.ru/department/graphics/rastrgraph/13/3.html

Размещено на Allbest.ru

...

Подобные документы

  • Энтропия и количество информации. Комбинаторная, вероятностная и алгоритмическая оценка количества информации. Моделирование и кодирование. Некоторые алгоритмы сжатия данных. Алгоритм арифметического кодирования. Приращаемая передача и получение.

    курсовая работа [325,1 K], добавлен 28.07.2009

  • Сущность универсального метода упаковки, его преимущества и недостатки. Кодирование путем учета числа повторений. Примеры схем распаковки последовательности байтов. Алгоритмы сжатия звуковой, графической и видеоинформации. Разновидности формата МРЕG.

    презентация [96,2 K], добавлен 19.05.2014

  • Линейные алгоритмы, условия и циклы. Массивы, строки, множества, подпрограммы и файлы. Определение позиций экстремальных элементов в массивах вещественных чисел. Осуществление циклических сдвигов элементов массива. Определение элементов матрицы.

    контрольная работа [719,6 K], добавлен 10.04.2015

  • Методы арифметического кодирования. Основные функции программ, реализующие алгоритмы кодирования по методам Хаффмана, Голомба, Фибоначчи и Элиаса. Разработка программно-аппаратных средств оптимального арифметического кодирования и их экономический расчет.

    дипломная работа [1,1 M], добавлен 26.05.2012

  • Методы компрессии информации. Обзор и характеристика существующих методов сжатия информации, основанных на процедуре кодирования Хаффмена. Алгоритмы динамического кодирования методом FGK и Виттера. Программная реализация и руководство пользователя.

    курсовая работа [33,2 K], добавлен 09.03.2009

  • Положения алгоритмов сжатия изображений. Классы приложений и изображений, критерии сравнения алгоритмов. Проблемы алгоритмов архивации с потерями. Конвейер операций, используемый в алгоритме JPEG. Характеристика фрактального и рекурсивного алгоритмов.

    реферат [242,9 K], добавлен 24.04.2015

  • Методы кодирования изображения: кодированием длины серии, частотно-зависимое кодирование, метод Лемпеля-Зива. Размер строки при 16-битном цвете. Расчет размера всего исходного изображения. Примеры качественного и некачественного сжатия изображения.

    презентация [2,0 M], добавлен 22.10.2013

  • Знакомство с идеей векторного способа представления изображений в цифровом виде. Разработка последовательности команд для кодирования графического объекта. Основные команды; двоичное кодирование графической информации, растровый и векторный варианты.

    презентация [128,5 K], добавлен 05.01.2012

  • Сущность языка программирования, идентификатора, структуры данных. Хранение информации, алгоритмы их обработки и особенности запоминающих устройств. Классификация структур данных и алгоритмов. Операции над структурами данных и технология программирования.

    контрольная работа [19,6 K], добавлен 11.12.2011

  • Применение алгоритмов, обеспечивающих высокую степень сжатия, для увеличения скорости передачи данных по каналам связи. Особенности и методы нахождения сингулярного разложения. Разработка программы, реализующей сжатие изображения с помощью SVD-сжатия.

    дипломная работа [3,3 M], добавлен 13.10.2015

  • Понятие информации и основные принципы ее кодирования, используемые методы и приемы, инструментарий и задачи. Специфические особенности процессов кодирования цифровой и текстовой, графической и звуковой информации. Логические основы работы компьютера.

    курсовая работа [55,8 K], добавлен 23.04.2014

  • Классификация и основные характеристики метода сжатия данных. Вычисление коэффициентов сжатия и оценка их эффективности. Алгоритмы полиноминальных, экстраполяционных и интерполяционных методов сжатия и их сравнение. Оптимальное линейное предсказание.

    курсовая работа [1,1 M], добавлен 17.03.2011

  • Представление графической информации в компьютере. Графические форматы и их преобразование. Информационные технологии обработки графической информации. Формирование и вывод изображений. Файлы векторного формата и растровый графический редактор.

    курсовая работа [1,0 M], добавлен 25.04.2013

  • Представление информации в двоичной системе. Необходимость кодирования в программировании. Кодирование графической информации, чисел, текста, звука. Разница между кодированием и шифрованием. Двоичное кодирование символьной (текстовой) информации.

    реферат [31,7 K], добавлен 27.03.2010

  • Современные методы цифрового сжатия. Классификация алгоритмов сжатия. Оцифровка аналогового сигнала. Алгоритм цифрового кодирования. Последовательное двойное сжатие. Чересстрочность и квантование. Сокращение цифрового потока. Профили, уровни формата MPEG.

    реферат [784,9 K], добавлен 22.01.2013

  • Применение алгоритмов шифрования и дешифрования данных в компьютерной технике в системах сокрытия конфиденциальной и коммерческой информации от злонамеренного использования сторонними лицами. Классический пример - симметричные криптографические алгоритмы.

    дипломная работа [44,9 K], добавлен 08.07.2009

  • Изучение существующих методов и программного обеспечения для извлечения числовых данных из графической информации. Программное обеспечение "graphtrace", его структура и методы обработки данных. Использование этой системы для данных различного типа.

    дипломная работа [3,9 M], добавлен 06.03.2013

  • Описание устройств ввода графической, звуковой информации, их назначение, классификация, конструкция, характеристики. Графические планшеты, сканнеры. Анализ способов представления и кодирования информации. Программные средства для архивации данных.

    контрольная работа [31,2 K], добавлен 22.11.2013

  • Аналоговое и цифровое представление информации. Понятие, классификация и характеристика методов сжатия данных: алгоритмы одно- и двухпараметрической адаптации, линейной экстра- и интерполяции. Кодирование информации и вычисление циклического кода.

    курсовая работа [157,4 K], добавлен 07.12.2012

  • Архивация и компрессия как методы сжатия изображений. Алгоритмы сжатия данных. Вспомогательные средства, которые используются для понижения объемов файлов: изменение цветовой модели изображения, изменение разрешения растрового файла, ресемплирование.

    презентация [45,3 K], добавлен 06.01.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.