Главная > Обработка сигналов > Теория и практика вейвлет-преобразования
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

10.3.2. Алгоритмы Шапиро и Саида-Перельмана

Идеи, лежащие в основе алгоритма Льюиса и Ноулеса, легли в основу многих современных кодеров изображения. Основным недостатком данного алгоритма является возможность ошибочного порождения нульдерева, так как оно генерируется не из реальных данных, а на основе априорных предположений. Если потомки некоторого узла окажутся больше своего родителя (что нечасто, но все-таки бывает), алгоритм Льюиса и Ноулеса приводит к значительным искажениям.

Методы, обсуждаемые ниже, свободны от этого недостатка.

Шапиро разработал элегантный метод, названный алгоритмом вложенного нульдерева (Embedded Zerotree Wavelet coder - EZW). Данный кодер основан на передаче и ненулевых данных, и карты значений. Биты, отводящиеся для кодирования карты значений, могут превалировать в общем потоке бит, особенно на низких скоростях. Однако в карте значений, порождаемой изображениями, существует очень большая избыточность, которая и используется для достижения малых скоростей кодирования. Если имеется незначащий родительский узел, то очень вероятно, что потомки также будут незначимы. Так что в большинстве случаев генерируется символ нульдерева. Если вероятность этого события близка к 1, то количество информации содержащееся в нем, близко к нулю. Значит, среднее число бит, требующихся для кодирования карты значений, мало.

Если один или более потомков незначимого узла является значимым, генерируется символ «изолированного нуля». Вероятность этого события ниже, следовательно, для кодирования требуется большее количество бит. Это плата за то, чтобы не допустить значительного искажения за счет ошибочного порождения нульдерева.

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

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

1) возможность точного регулирования скорости передачи;

2) возможность восстановления всего изображения при прекращении приема декодером бит в любой точке. При этом изображение будет максимально хорошего качества для данного числа бит. Это применимо для передачи по каналам с потерями, а также для приложений вещания. В этом случае кодер генерирует высокоскоростной высококачественный поток, который передается по каналам различной пропускной способности декодерам различной вычислительной возможности. Последние выделяют из него нужные им субпотоки;

3) возможность быстрого просмотра изображений в удаленной базе данных. Для поиска достаточно и грубой копии, а при нахождении нужного изображения оно декодируется полностью.

Алгоритм Шапиро генерирует вложенный код побитовым способом (рис. 10.4). В основе метода EZW лежат следующие основные операции.

Вначале выполняется частичное упорядочивание коэффициентов по амплитуде. Оно реализуется путем сравнения величины каждого вейвлет-коэффициента с некоторым порогом Т. Если то выносится решение о том, что коэффициент значимый, в противном случае - незначимый.

Рис. 10.4. Битовый план для сканирования упорядоченных вейвлет-коэффициентов

Сканирование производится от низкочастотных полос к высокочастотным. Для кодирования знака и позиции всех коэффициентов используется двухбитный символ. Этот символ может быть: знак - показывает, что незначащий; «корень нульдерева» - показывает, что незначащий вместе со всеми данной пространственной области из более высокочастотных полос. Таким образом, используется межполосная, пространственная корреляция После вычисления и передачи карты значений для значащих коэффициентов должны быть переданы биты, уточняющие их значение («карта данных»). Далее карта данных и карта значений сжимаются арифметическим кодером. В том случае, если не исчерпан ресурс скорости передачи, порог Т делится на два и процесс повторяется.

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

А.Саид и В.Перельман улучшили алгоритм Их версия кодера называется «установка подразделений в иерархических деревьях» (Set Partition In Hierarchical Trees - SPIHT). Имеется общедоступная программная реализация этого кодера, которая очень быстра. Так, сжатие изображения размером 512 х 512 в 100 раз занимает на компьютере Р-166 порядка 0.1 секунды. При этом качество восстановленного изображения весьма приемлемо. Вложенные кодеры обладают одной интересной особенностью: чем больше коэффициент сжатия, тем меньше время работы кодера. Это объясняется тем, что требуется осуществление меньшего числа уточнений. SPIHT превосходит EZW примерно на 0.3-0.6 дБ за счет кодирования не одиночных, а параллельных нульдеревьев.

Можно показать, что EZW и SPIHT являются членами большого семейства алгоритмов, в которых карта значений имеет древовидную структуру.

<< Предыдущий параграф Следующий параграф >>
Оглавление