К разделу 'Сжатие изображений' сайта AlgoList.

Л. Левкович-Маслюк, А. Переберин. Вейвлет-анализ и его приложения

Многомасштабное представление кривых

Полуортогональные вейвлеты (Semiorthoigonal Wavelets)

Вейвлет-базис называется полуортогональным [1], если для любого уровня разрешения  пространство вейвлетов  ортогонально пространству  (и, следовательно, всем пространствам , ... ). Очевидно, что подклассом полуортогональных вейвлетов является класс ортогональных вейвлетов, для которого дополнительно требуется ортогональность базисных функций . Отсутствие такого ограничение позволяет строить, например, гладкие симметричные вейвлеты с компактным носителем (заметим, что единственными ортогональными симметричными вейвлетами с компактным носителем являются вейвлеты Хаара, которые не обладают даже непрерывностью).

В матричной форме условие полуортогональности можно записать следующим образом:

Если вместо индекса j записать , то, имея ввиду, что
и , условие полуортогональности будет выглядеть так:

.

Если  и  заданы, то  является решением однородной системы уравнений , где  — известная матрица. Если однородная система имеет нетривиальные решения, то их бесконечно много, т.е.  определяется неоднозначно. Поэтому для определенности на  накладывается ряд дополнительных условий. Например, мы хотим, чтобы построенные нами вейвлеты имели компактный носитель и были симметричны. Это значит, что столбцы матрицы  должны иметь наименьшее возможное число подряд идущих ненулевых элементов, причем сами цепочки ненулевых элементов должны быть симметричными.

Сплайновые вейвлеты

Примером полуортогональных вейвлетов являются сплайновые вейвлеты (spline wavelets), разработанные Chui и др. [3, 4]. Сплайновые вейвлеты строятся на основе B-сплайнов [2]. Существуют различные виды сплайновых вейвлетов. Мы рассмотрим вейвлеты, построенные на основе неравномерных B-сплайнов, интерполирующих концевые точки (nonuniform endpoint-interpolating B-splines). Далее для краткости такие сплайны условимся называть просто B-сплайнами, а соответствующие вейвлеты — B-сплайновыми вейвлетами.

Будем строить B-сплайновые вейвлеты на единичном отрезке. Пусть m — степень сплайна, j — уровень разрешения. Пространство  порождается  B-сплайнами, построенными на последовательности узлов

.

Нетрудно показать, что построенные таким образом пространства , ... вложены друг в друга и удовлетворяют всем требованиям многомасштабного анализа. На Рис. 1 показаны наборы кубических () B-сплайновых скейлинг-функций пространств  и . Матрица  (подробности получения этой матрицы см. в [4]) является разреженной, имеет  столбцов и  строк, все столбцы, за исключением m первых и m последних являются сдвинутыми копиями столбца , причем ненулевые элементы этих столбцов являются биномиальными коэффициентами, умноженными на . Ниже приводятся матрицы , и  для кубического случая.

  .
Рис. 1. B-сплайновые скейлинг-функции пространств  и .
Рис. 2. B-сплайновые вейвлеты пространств  и .

Скейлинг-функции  и матрицы  заданы. Взято стандартное скалярное произведение в . Теперь можно искать матрицу . Заметим, что эта матрица должна иметь  столбцов (размерность пространства ) и  строк. Как было отмечено выше, матрица  (и, следовательно, вейвлет-базис) определяется неоднозначно. Finkelstein и Salesin [5] построили матрицу  таким образом, чтобы она была разреженной и содержала минимальное число подряд идущих ненулевых элементов в столбцах. Структура такой матрицы похожа на структуру матрицы : она разреженная и ее столбцы кроме m первых и m последних являются сдвинутыми копиями друг друга. Ниже приводятся матрицы  и  для кубического случая, на Рис. 2 показаны вейвлеты пространств  и .

  

Замечание. Все примеры, приводимые выше и приводимые далее относятся к случаю кубических B-сплайновых вейвлетов, как наиболее часто применяющихся для обработки гладких кривых. При  мы получим квадратичные B-сплайновые вейвлеты, при  — линейные, а при  — уже хорошо известные ортогональные вейвлеты Хаара.

Предлагаем вниманию читателей листинги MatLab-фунций для генерации матриц  и , взятые из [1], с помощью которых  можно подробнее разобраться в устройстве этих матриц и самостоятельно поэкспериментировать со сплайновыми вейвлетами.

Мы получили синтезирующие матрицы  и . Зная их, матрицы для анализа определяются единственным образом:

.

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

.

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

Вейвлет-анализ кривых

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

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

Восстановление исходной кривой (обратное преобразование) выполняется так:

.

Перечислим некоторые задачи, которые удается решать с помощью этих преобразований [1].

Сглаживание кривой. Некоторую кривую  требуется приблизить (в смысле наименьших квадратов) кривой , заданной меньшим числом опорных точек. Пусть кривую  задает набор  управляющих точек . Тогда для любого  можно построить сглаживающую кривую , заданную набором  управляющих точек  (см. пример на Рис. 3). (Очевидно, что для задачи сглаживания вычислять вейвлет-коэффициенты d не нужно).

Наложение условий на число управляющих точек является определенным ограничением. Переход от уровня  к уровню  осуществляется “скачкообразно”. С помощью линейной интерполяции между двумя кривыми соседних уровней можно получить любую кривую “дробного” уровня :

Редактирование кривой. Редактирование осуществляется следующим образом: выполняется декомпозиция исходной кривой, полученные в результате этого коэффициенты некоторым образом изменяются, после чего производится восстановление, но уже по модифицированному набору коэффициентов. Возможны два принципиально различных подхода: изменять низкочастотную часть преобразования или изменять высокочастотную часть. В первом случае можно менять форму кривой “в целом”, сохраняя ее мелкие особенности (Рис. 4), во втором — наоборот — сохраняя форму, менять детали (Рис. 5). Очевидно, что при редактировании кривых активно используется свойство локализации вейвлетов в пространстве, что дает возможность производить манипуляции с отдельными частями кривой.

Рис. 3. Сглаживание кривой: 11, 7 и 5 опорных точек.
Рис. 4. Редактирование кривой: изменение одной опорной точки в низкочастотной части (5 точек) и последующее восстановление (11 точек).
Рис. 5. Редактирование кривой: добавление к исходной кривой (11 точек) дополнительных вейвлет-коэффициентов (35 точек).
 

Литература

  1. Eric J. Stollnitz, Tony DeRose, David H. Salesin. Wavelets for Computer Graphics. Theory and Applications. Morgan Kaufmann Publishers, Inc., San Francisco, California, 1996, pp. 89-97, 109-123.
  2. Е. В. Шикин, А.В. Боресков. Компьютерная графика. Динамика, реалистические изображения. ДИАЛОГ-МИФИ, Москва, 1996, с. 161-189.
  3. Charles K. Chui. An Introduction to Wavelets. Academic Press, Boston, 1992.
  4. Charles K. Chui, Ewald Quak. Wavelets on Bounded Interval. In D. Braess and L.L. Shumaker, editors, Numerical Methods in Approximation Theory, vol. 9, pp. 53-75, Birkhauser Verlag, Basel, 1992.

  5. Adam Finkelstein, David H. Salesin. Multiresolution Curves. In Proceedings of SIGGRAPH’94, pp. 261-268. ACM, New York, 1994.