![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Идея алгоритма заключается в том, что мы сохраняем в файл разницу – число между средними значениями соседних блоков в изображении, которая обычно принимает значения, близкие к .
Так два числа и
всегда можно представить в виде
и
, где
,
.
Это справедливо для последовательности любой длины.
Разберем конкретный пример.
Пусть мы сжимаем строку из значений яркости пикселов
:
. Мы получим следующие последовательности
и
:
и
. Заметим, что значения
достаточно близки к
. Повторим операцию, рассматривая
как
. Данное действие выполняется как бы рекурсивно, откуда и название алгоритма. Мы получим из
:
. Полученные коэффициенты, округлив до целых и сжав, например, с помощью алгоритма Хаффмана с фиксированными таблицами, мы можем поместить в файл.
Заметим, что мы применяли наше преобразование к цепочке только два раза. Реально мы можем позволить себе применение -преобразования
раз. Более того, дополнительное сжатие можно получить, используя таблицы алгоритма Хаффмана с неравномерным шагом (т.е. нам придется сохранять код Хаффмана для ближайшего в таблице значения). Эти приемы позволяют достичь заметных коэффициентов сжатия.
Алгоритм для двумерных данных реализуется аналогично. Если у нас есть квадрат из точек с яркостями
и
, то
Исходное B1 B2
изображение B3 B4
Используя эти формулы, мы для изображения пикселов получим после первого преобразования
матрицы размером
элементов:
![]() |
Рис. 3. Сжатие изображения.
В первой, как легко догадаться, будет храниться уменьшенная копия изображения. Во второй – усредненные разности пар значений пикселов по горизонтали. В третьей – усредненные разности пар значений пикселов по вертикали. В четвертой – усредненные разности значений пикселов по диагонали. По аналогии с двумерным случаем мы можем повторить наше преобразование и получить вместо первой матрицы 4 матрицы размером . Повторив наше преобразование в третий раз, мы получим в итоге:
матрицы
,
матрицы
и
матрицы
. На практике при записи в файл, значениями, получаемыми в последней строке
, обычно пренебрегают (сразу получая выигрыш примерно на треть размера файла –
...).
К достоинствам этого алгоритма можно отнести то, что он очень легко позволяет реализовать возможность постепенного “ проявления ” изображения при передаче изображения по сети. Кроме того, поскольку в начале изображения мы фактически храним его уменьшенную копию, упрощается показ “огрубленного” изображения по заголовку.
В отличие от JPEG и фрактального алгоритма данный метод не оперирует блоками, например, пикселов. Точнее, мы оперируем блоками
,
,
и т.д. Однако за счет того, что коэффициенты для этих блоков мы сохраняем независимо, мы можем достаточно легко избежать дробления изображения на “мозаичные” квадраты.
Характеристики волнового алгоритма:
Коэффициенты компрессии: (задается пользователем).
Класс изображений: как у фрактального и JPEG.
Симметричность:
Характерные особенности: При высокой степени сжатия изображение распадается на отдельные блоки.
Заключение.
В заключение рассмотрим таблицы, в которых сводятся воедино параметры различных алгоритмов сжатия изображений, рассмотренных нами выше.
Дата публикования: 2014-11-26; Прочитано: 268 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!