Алгоритм сжатия изображения FELICS

FELICS - быстрая и эффективная система сжатия изображения без потерь. Блок-схема алгоритма и описание шагов. Использование иерархического способа обработки пикселей в прогрессивном FELICS. Экспериментальные и сравнительные результаты работы алгоритмов.

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 17.12.2010
Размер файла 1,9 M

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

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

Размещено на http://www.allbest.ru/
FELICS
(Fast and Efficient Lossless Image Compression System)
FELICS
Рисунок 1 - Блок-схема алгоритма на микроуровне
1 шаг: инициализация начальных параметров алгоритма
Исходное изображение:
где - яркость пикселя с координатами ;
- размеры изображения.
Порядок считывания пикселей - строками (начиная с верхней). Каждый пиксель обрабатывается по отдельности.
Выбор соседних пикселей для сжимаемого пикселя:
P - яркость сжимаемого пикселя, N1 и N2 - яркости пикселей окрестности
Рисунок 2 - Расположение пикселей, используемых при сжатии каждого нового пикселя
2 шаг: выполнение условия сохранения значений пикселей исходного изображения
Первые два пикселя (первые пиксели верхней строки изображения) считываются и оставляются без изменений.
3 шаг: вычисление разности максимального и минимального значений пикселей окрестности
,
где - минимальное значение яркости пикселей из окрестности;
- максимальное значение яркости пикселей из окрестности.
4 шаг: определение местоположения значения сжимаемого пикселя по отношению к промежутку
- переход к шагу 5.1;
- переход к шагу 5.2;
- переход к шагу 5.3.
5 шаг: кодирование сжимаемого пикселя
5.1 Кодирование пикселя в случае, когда :
-целые значения, которые необходимо закодировать.
Бинарный код - код, кодовые слова которого - числа, представленные в двоичной форме.
Префиксный код - код, любое кодовое слово которого не является началом какого-либо другого кодового слова.
-
длина кодовых слов бинарного кода, если .
Длина кодовых слов префиксного кода, если :
-
для чисел в центре интервала ;
-
для крайних значений интервала .
Кодовое слово сжатого пикселя: первый бит - 1(0) - означает нахождение внутри интервала ; остальные биты - кодовое слово построенного кода, соответствующее значению, равному .
Переход к шагу 3.
5.2 Кодирование пикселя в случае, когда :
-
значения (целые), которые необходимо закодировать.
Коды Голомба (Райс-коды как частный случай):
кодовое слово состоит из двух частей:
- левая часть - унарный код длиной ,
где - кодируемое целое число,
- параметр кода ( );
- правая часть - 1) для (Райс-коды):
бинарный код значений длиной ;
2) для :
если - код длиной бит;
если - код длиной бит,
где .
Унарный код - кодовое слово содержит единиц и ноль, следующий после единиц.
Рисунок 2 - Коды Голомба для некоторых значений n и m
Подбор параметра кода для кодирования каждого нового пикселя:
Для каждого значения Д хранится сумма, для каждого значения параметра, длин кодовых слов, которые мы бы получили, если бы кодировали кодовым словом с данным параметром любое требуемое значение.
Кодовое слово сжатого пикселя: первый бит - 0(1) - означает то, что ; второй бит - 0(1) - означает то, что ; остальные биты - кодовое слово построенного кода, соответствующее значению, равному .
Переход к шагу 3.
5.3 Кодирование пикселя в случае, когда :
-
значения (целые), которые необходимо закодировать.
Кодовое слово сжатого пикселя: первый бит - 0(1) - означает то, что ; второй бит - 1(0) - означает то, что ; остальные биты - кодовое слово построенного кода, соответствующее значению, равному .
Переход к шагу 3.
Рисунок 3 - Кодирование пикселя в зависимости от местоположения значения его яркости по отношению к промежутку
6 шаг: конечный результат работы алгоритма
,
где - значения яркости первых двух пикселей (в двоичной форме);
- кодовое слово сжатого пикселя.
Прогрессивный FELICS
Использует иерархический способ обработки пикселей:
Рисунок 4 - Иерархический способ обработки пикселей
На начальном уровне известные пиксели образуют сетку, кодируются значения пикселей, расположенных между известными (обозначенные мелкими точками), после чего все известные пиксели образуют «шахматную доску», производится масштабирование и поворот изображения, после которых известные пиксели образуют такую же сетку, как и на первом уровне, кодирование повторяется.
Для кодирования каждого нового пикселя используется окрестность из четырех пикселей, из которых выбираются два со средними значениями. На основании этих двух пикселей производится обработка нового пикселя такая же, как и в FELICSе.
Помимо используемых ранее кодов используются также новые коды - субэкспоненциальные:
-
число единиц унарного кода левой части кодового слова,
где k - параметр Райс-кода,
- число бит бинарного кода правой части.
Длина кодовых слов данного кода, в отличие от кодов Голомба, растет логарифмически.
Рисунок 5 - Субэкспоненциальные коды для некоторых значений n и k
Экспериментальные результаты работы алгоритмов
В таблицах 1 - 4 используются усредненные значения параметров для всех используемых в эксперименте изображений.
Таблица 1 - Результаты работы прогрессивного FELICS при использовании различных префиксных кодов
где
- коэффициент сжатия;
- среднее число бит на пиксель в сжатом изображении;
- неэффективность, %;
- производительность, тыс. пикселей/с.
Таблица 2 - Результаты работы прогрессивного FELICS при использовании различных масштабирующих коэффициентов s
где s (scaling factor) - число, на которое в конце уровня делятся все произведенные вычисления.
Таблица 3 - Результаты работы прогрессивного FELICS при использовании различных значений f (freezing level)
где f (freezing level) - значение длины кодового слова.
сжатие изображение потеря алгоритм пиксель
Таблица 4 - Сравнительные результаты работы различных алгоритмов
где high compression mode - использует коды Голомба без freezing;
fast mode - использует Райс-коды с f=1024;
MLP - метод сжатия, использующий иерархический способ обработки пикселей.
Таблица 5 - Коэффициенты сжатия при работе различных алгоритмов
Рисунок 5 - Изображения, используемые в эксперименте
Выводы: FELICS, по сравнению со стандартным методом сжатия изображений - JPEG, позволяет чуть больше сжать изображение и при этом работает в пять раз быстрее. Прогрессивный FELICS сжимает изображения примерно на 1% лучше, чем FELICS, но работает только в два раза быстрее, чем JPEG.
Размещено на Allbest.ru

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

  • Обзор существующих программ сжатия данных без потерь. Анализ методов сжатия: алгоритмов группы, KWE, Lossless JPEG, кодирование Хаффмана. Обзор составляющих компонентов. Разработка кода программы-архиватора, работающей на основе алгоритма Хаффмена.

    курсовая работа [487,3 K], добавлен 14.07.2011

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

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

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

    курсовая работа [43,5 K], добавлен 14.10.2012

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

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

  • Способ улучшения сжатия файлов формата DjVu. Общая схема алгоритма классификации букв. Основной алгоритм сравнения пары букв. Быстрый отказ для пары разных букв. Дерево разрезов. Получение монохромных изображений. Алгоритм для устранения мусора.

    курсовая работа [64,7 K], добавлен 28.10.2008

  • Векторная графика как способ описания изображения при помощи прямых и изогнутых линий. Пример растрового и векторного представления листа с дерева. Редакторы векторной графики. Особенности растрового изображения. Методы сжатия с потерями и без потерь.

    реферат [2,1 M], добавлен 28.09.2014

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

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

  • Краткий обзор основных теорий сжатия. Концепции идей и их реализация. Сжатие данных с использованием преобразования Барроуза-Вилера. Статический алгоритм Хафмана. Локально адаптивный алгоритм сжатия. Алгоритм Зива-Лемпеля (Welch) и метод Шеннона-Фано.

    практическая работа [188,5 K], добавлен 24.04.2014

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

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

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

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

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